<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns1:informationTable xmlns:ns1="http://www.sec.gov/edgar/document/thirteenf/informationtable">
	<ns1:infoTable>
		<ns1:nameOfIssuer>3M</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>88579Y101</ns1:cusip>
		<ns1:value>34784</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>200667</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>200000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>667</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Abbott Laboratories</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>002824100</ns1:cusip>
		<ns1:value>36106</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>429325</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>373499</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>55826</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>AbbVie</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>00287Y109</ns1:cusip>
		<ns1:value>29195</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>401476</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>380000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>21476</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Accenture, Class A</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>G1151C101</ns1:cusip>
		<ns1:value>2319</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12552</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>10150</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2402</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Adobe Inc.</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>00724F101</ns1:cusip>
		<ns1:value>142030</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>482029</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>460300</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>21729</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Agilent Technologies</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>00846U101</ns1:cusip>
		<ns1:value>68032</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>911103</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>900000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>11103</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Air Products &amp; Chemicals</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>009158106</ns1:cusip>
		<ns1:value>45614</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>201500</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>200000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1500</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Akamai Technologies</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>00971T101</ns1:cusip>
		<ns1:value>307</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3825</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>3825</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Alaska Air</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>011659109</ns1:cusip>
		<ns1:value>554</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>8672</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>7422</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1250</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Alcon</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>H01301128</ns1:cusip>
		<ns1:value>3431</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>55288</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>54060</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1228</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Ally Financial</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>02005N100</ns1:cusip>
		<ns1:value>1448</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>46732</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>41100</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5632</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Alphabet, Class A</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>02079K305</ns1:cusip>
		<ns1:value>3091</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2855</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1684</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1171</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Amazon.com</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>023135106</ns1:cusip>
		<ns1:value>3537</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1868</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1589</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>279</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Amdocs Limited</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>G02602103</ns1:cusip>
		<ns1:value>296</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>4770</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>3000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1770</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Amgen</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>031162100</ns1:cusip>
		<ns1:value>66446</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>360570</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>356100</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4470</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Aon PLC</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>G0408V102</ns1:cusip>
		<ns1:value>321</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1664</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1664</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Apple</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>037833100</ns1:cusip>
		<ns1:value>120209</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>607361</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>519620</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>87741</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Applied Materials</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>038222105</ns1:cusip>
		<ns1:value>332</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>7400</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>7400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>ASML Holding NY</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>N07059210</ns1:cusip>
		<ns1:value>68323</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>328588</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>328000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>588</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>AT&amp;T</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>00206R102</ns1:cusip>
		<ns1:value>251</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>7500</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>7500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Avista</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>05379B107</ns1:cusip>
		<ns1:value>201</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>4500</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4500</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Baidu ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>056752108</ns1:cusip>
		<ns1:value>634</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5400</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>5400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Banco Santander ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>05964H105</ns1:cusip>
		<ns1:value>47</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>10214</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>10081</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>133</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Bank of America</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>060505104</ns1:cusip>
		<ns1:value>235</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>8113</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>8113</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Barrick Gold</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>067901108</ns1:cusip>
		<ns1:value>1017</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>64518</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>62812</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1706</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>BCE</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>05534B760</ns1:cusip>
		<ns1:value>2582</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>56769</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>53300</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>3469</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Becton, Dickinson &amp; Co.</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>075887109</ns1:cusip>
		<ns1:value>403</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1600</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1600</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>BHP Biliton ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>088606108</ns1:cusip>
		<ns1:value>240</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>4133</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>4000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>133</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Booking Holdings</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>09857L108</ns1:cusip>
		<ns1:value>1104</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>589</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>189</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Bristol-Myers Squibb</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>110122108</ns1:cusip>
		<ns1:value>30759</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>678264</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>668900</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>9364</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Canadian National Railway</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>136375102</ns1:cusip>
		<ns1:value>50642</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>547600</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>535600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>12000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Carlisle</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>142339100</ns1:cusip>
		<ns1:value>46581</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>331750</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>330550</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1200</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Celgene</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>151020104</ns1:cusip>
		<ns1:value>19023</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>205789</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>200000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5789</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Charles River Laboratories</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>159864107</ns1:cusip>
		<ns1:value>340</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2395</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2395</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Chevron Corporation</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>166764100</ns1:cusip>
		<ns1:value>513</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>4126</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4126</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Chubb</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>H1467J104</ns1:cusip>
		<ns1:value>489</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3317</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1830</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1487</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Church &amp; Dwight</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>171340102</ns1:cusip>
		<ns1:value>89161</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1220387</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1202400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>17987</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Cisco Systems</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>17275R102</ns1:cusip>
		<ns1:value>92623</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1692359</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1650000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>42359</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Clorox</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>189054109</ns1:cusip>
		<ns1:value>38489</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>251384</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>250000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1384</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Colgate-Palmolive</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>194162103</ns1:cusip>
		<ns1:value>38535</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>537666</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>536600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1066</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Columbia Sportswear</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>198516106</ns1:cusip>
		<ns1:value>321</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>3200</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>ConocoPhillips</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>20825C104</ns1:cusip>
		<ns1:value>379</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6208</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1490</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4718</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Copa Holdings, Class A</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>P31076105</ns1:cusip>
		<ns1:value>3717</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>38100</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>34000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4100</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Corteva Inc</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>22052L104</ns1:cusip>
		<ns1:value>6362</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>215153</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>213666</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1487</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Costco Wholesale</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>22160K105</ns1:cusip>
		<ns1:value>1326</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5018</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>4883</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>135</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Culp</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>230215105</ns1:cusip>
		<ns1:value>304</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>16000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>16000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Delta Air Lines</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>247361702</ns1:cusip>
		<ns1:value>468</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>8250</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>8250</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>DocuSign Inc.</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>256163106</ns1:cusip>
		<ns1:value>323</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6500</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6500</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Dow Inc</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>260557103</ns1:cusip>
		<ns1:value>10580</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>214558</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>213666</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>892</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Duke Realty</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>264411505</ns1:cusip>
		<ns1:value>215</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6800</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6800</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Duluth Holdings, Inc. Class B</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>26443V101</ns1:cusip>
		<ns1:value>353</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>26000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>26000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Dupont De Nemours</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>26614N102</ns1:cusip>
		<ns1:value>16152</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>215153</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>213666</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1487</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Ecolab</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>278865100</ns1:cusip>
		<ns1:value>2324</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>11773</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>6966</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4807</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Edwards Lifesciences</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>28176E108</ns1:cusip>
		<ns1:value>1298</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>7025</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>5700</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1325</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Elanco Animal Health, Inc.</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>28414H103</ns1:cusip>
		<ns1:value>545</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>16129</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>16129</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Eli Lilly</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>532457108</ns1:cusip>
		<ns1:value>108720</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>981318</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>970000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>11318</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>EMCOR Group</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>29084Q100</ns1:cusip>
		<ns1:value>60150</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>682750</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>682750</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Enel Americas ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>29274F104</ns1:cusip>
		<ns1:value>89</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>10000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>10000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Equinor ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>29446M102</ns1:cusip>
		<ns1:value>366</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>18500</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>18500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Estee Lauder, Class A</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>518439104</ns1:cusip>
		<ns1:value>84126</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>459427</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>458594</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>833</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Exponent</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>30214U102</ns1:cusip>
		<ns1:value>328</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5600</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5600</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Exxon Mobil</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>30231G102</ns1:cusip>
		<ns1:value>478</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6241</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6241</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Fastenal</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>311900104</ns1:cusip>
		<ns1:value>39438</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1210128</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1204500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5628</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Fomento Economico Mex ADR (FEMSA)</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>344419106</ns1:cusip>
		<ns1:value>2903</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>30000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>30000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Fortune Brands Home &amp; Security</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>34964C106</ns1:cusip>
		<ns1:value>240</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>4200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4200</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Gartner</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>366651107</ns1:cusip>
		<ns1:value>29089</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>180745</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>180000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>745</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>General Mills</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>370334104</ns1:cusip>
		<ns1:value>15782</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>300488</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>300000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>488</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Genuine Parts</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>372460105</ns1:cusip>
		<ns1:value>40020</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>386365</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>382000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4365</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>GlaxoSmithKline ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>37733W105</ns1:cusip>
		<ns1:value>16816</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>420202</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>389507</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>30695</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Grupo Aeroportuario Sureste ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>40051E202</ns1:cusip>
		<ns1:value>219</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1350</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1350</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Hasbro</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>418056107</ns1:cusip>
		<ns1:value>520</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>4921</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4321</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Home Depot</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>437076102</ns1:cusip>
		<ns1:value>2117</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>10178</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>5450</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4728</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Honeywell International</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>438516106</ns1:cusip>
		<ns1:value>53574</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>306856</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>306000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>856</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Humana</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>444859102</ns1:cusip>
		<ns1:value>990</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3733</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>3733</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Idacorp</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>451107106</ns1:cusip>
		<ns1:value>1436</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>14300</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>14300</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Illinois Tool Works</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>452308109</ns1:cusip>
		<ns1:value>47698</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>316281</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>300000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>16281</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Illumina</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>452327109</ns1:cusip>
		<ns1:value>635</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1724</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1724</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Intel</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>458140100</ns1:cusip>
		<ns1:value>44788</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>935622</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>902300</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>33322</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>International Flavors &amp; Fragrances</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>459506101</ns1:cusip>
		<ns1:value>746</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5142</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>5000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>142</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Intuit</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>461202103</ns1:cusip>
		<ns1:value>122279</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>467909</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>450000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>17909</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Itau Unibanco Holding ADR, Class A</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>465562106</ns1:cusip>
		<ns1:value>237</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>25202</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>25000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>202</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Johnson &amp; Johnson</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>478160104</ns1:cusip>
		<ns1:value>93728</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>672946</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>651600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>21346</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Johnson Controls International</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>G51502105</ns1:cusip>
		<ns1:value>20817</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>503925</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>503450</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>475</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>JP Morgan Chase</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>46625H100</ns1:cusip>
		<ns1:value>1368</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12237</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>10217</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2020</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Juniper Networks</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>48203R104</ns1:cusip>
		<ns1:value>362</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>13608</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>13608</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Kansas City Southern Industries</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>485170302</ns1:cusip>
		<ns1:value>1829</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>15015</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>7700</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>7315</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Keysight Technologies</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>49338L103</ns1:cusip>
		<ns1:value>45011</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>501179</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>500000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1179</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Kimberly-Clark</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>494368103</ns1:cusip>
		<ns1:value>31214</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>234200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>230000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4200</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Koninklijke Philips</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>500472303</ns1:cusip>
		<ns1:value>1333</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>30586</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>29819</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>767</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Lincoln Electric Holdings</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>533900106</ns1:cusip>
		<ns1:value>29734</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>361200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>360000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1200</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Linde</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>G5494J103</ns1:cusip>
		<ns1:value>32524</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>161971</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>161000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>971</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Lowe's</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>548661107</ns1:cusip>
		<ns1:value>43130</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>427406</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>413350</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>14056</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Mastercard, Class A</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>57636Q104</ns1:cusip>
		<ns1:value>2687</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>10157</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>9738</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>419</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>McCormick &amp; Co</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>579780206</ns1:cusip>
		<ns1:value>55167</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>355891</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>350000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5891</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>MercadoLibre</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>58733R102</ns1:cusip>
		<ns1:value>6118</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>10000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>10000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Merck &amp; Co</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>58933Y105</ns1:cusip>
		<ns1:value>513</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6121</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>5000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1121</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Mesa Laboratories</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>59064R109</ns1:cusip>
		<ns1:value>293</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1200</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Methanex</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>59151K108</ns1:cusip>
		<ns1:value>13956</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>307000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>300000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>7000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Micro Focus International plc Spons</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>594837403</ns1:cusip>
		<ns1:value>317</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12111</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>12111</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Microchip Technology</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>595017104</ns1:cusip>
		<ns1:value>44916</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>518060</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>508100</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>9960</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Micron Technology</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>595112103</ns1:cusip>
		<ns1:value>787</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>20400</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>18400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Microsoft</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>594918104</ns1:cusip>
		<ns1:value>79056</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>590143</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>571258</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>18885</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Mitsubishi UFJ Financial ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>606822104</ns1:cusip>
		<ns1:value>950</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>200000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>200000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Monolithic Power Systems</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>609839105</ns1:cusip>
		<ns1:value>314</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2311</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2311</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Monster Beverage</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>61174X109</ns1:cusip>
		<ns1:value>1978</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>30989</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>30989</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Moody's</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>615369105</ns1:cusip>
		<ns1:value>1111</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5689</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5689</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>NextEra Energy</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>65339F101</ns1:cusip>
		<ns1:value>205</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>NICE Systems ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>653656108</ns1:cusip>
		<ns1:value>5562</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>40599</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>40000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>599</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Nike, Class B</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>654106103</ns1:cusip>
		<ns1:value>2681</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>31930</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>10276</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>21654</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Norfolk Southern</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>655844108</ns1:cusip>
		<ns1:value>60956</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>305803</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>300000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5803</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Novartis ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>66987V109</ns1:cusip>
		<ns1:value>26160</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>286494</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>270300</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>16194</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Novo Nordisk ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>670100205</ns1:cusip>
		<ns1:value>54461</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1067028</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1055614</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>11414</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Nutrien</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>67077M108</ns1:cusip>
		<ns1:value>11697</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>218808</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>195000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>23808</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>NXP Semiconductors</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>N6596X109</ns1:cusip>
		<ns1:value>471</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>4825</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1900</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2925</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Open Text Corp US</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>683715106</ns1:cusip>
		<ns1:value>1891</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>45900</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>45900</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Oracle</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>68389X105</ns1:cusip>
		<ns1:value>39436</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>692229</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>664400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>27829</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Orange ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>684060106</ns1:cusip>
		<ns1:value>197</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12526</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>12500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>26</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Parker Hannifin</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>701094104</ns1:cusip>
		<ns1:value>46899</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>275862</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>275850</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>12</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>PCTEL, Inc.</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>69325Q105</ns1:cusip>
		<ns1:value>55</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12500</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>12500</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>PepsiCo</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>713448108</ns1:cusip>
		<ns1:value>64707</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>493455</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>486350</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>7105</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Pfizer</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>717081103</ns1:cusip>
		<ns1:value>51518</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1189238</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1154700</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>34538</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Phillips 66</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>718546104</ns1:cusip>
		<ns1:value>571</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6109</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6109</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>PNC Financial Services Group</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>693475105</ns1:cusip>
		<ns1:value>332</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2417</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1690</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>727</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>PPG Industries</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>693506107</ns1:cusip>
		<ns1:value>47479</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>406813</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>401300</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5513</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Procter &amp; Gamble</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>742718109</ns1:cusip>
		<ns1:value>5451</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>49711</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>41150</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>8561</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Public Storage International</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>74460D109</ns1:cusip>
		<ns1:value>232</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>975</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>975</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Qualcomm</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>747525103</ns1:cusip>
		<ns1:value>63509</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>834882</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>807000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>27882</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Raymond James Financial</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>754730109</ns1:cusip>
		<ns1:value>471</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5568</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5568</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Resideo Technologies</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>76118Y104</ns1:cusip>
		<ns1:value>1099</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>50116</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>50000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>116</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Rio Tinto ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>767204100</ns1:cusip>
		<ns1:value>8231</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>132035</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>130000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2035</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Rockwell Automation</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>773903109</ns1:cusip>
		<ns1:value>49149</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>300000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>300000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Roper Technologies Inc</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>776696106</ns1:cusip>
		<ns1:value>476</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1300</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1300</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Ross Stores</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>778296103</ns1:cusip>
		<ns1:value>2034</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>20519</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>13350</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>7169</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Royal Dutch Shell ADR, Class A</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>780259206</ns1:cusip>
		<ns1:value>316</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>4849</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>3800</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1049</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>RPM International</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>749685103</ns1:cusip>
		<ns1:value>12484</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>204284</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>200400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>3884</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>SAP ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>803054204</ns1:cusip>
		<ns1:value>45204</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>330442</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>329229</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1213</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Semtech</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>816850101</ns1:cusip>
		<ns1:value>290</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6030</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6030</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Sensata Technologies Holding</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>G8060N102</ns1:cusip>
		<ns1:value>650</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>13272</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>11370</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1902</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>SK Telecom ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>78440P108</ns1:cusip>
		<ns1:value>340</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>13750</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>9000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4750</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Stanley Black &amp; Decker</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>854502101</ns1:cusip>
		<ns1:value>16401</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>113414</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>108684</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4730</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Starbucks</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>855244109</ns1:cusip>
		<ns1:value>1550</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>18487</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>16387</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2100</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>STMicroelectronics (NY shares)</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>861012102</ns1:cusip>
		<ns1:value>979</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>55550</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>3800</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>51750</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Stryker</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>863667101</ns1:cusip>
		<ns1:value>62942</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>306170</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>303000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>3170</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>SVMK, Inc.</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>78489X103</ns1:cusip>
		<ns1:value>358</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>21700</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>21700</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>SYNNEX Corporation</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>87162W100</ns1:cusip>
		<ns1:value>4367</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>44379</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>44335</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>44</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Tableau Software, Cl A</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>87336U105</ns1:cusip>
		<ns1:value>212</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1275</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1275</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Taiwan Semiconductor ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>874039100</ns1:cusip>
		<ns1:value>83745</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2137998</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>2099169</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>38829</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Take-Two Interactive Software</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>874054109</ns1:cusip>
		<ns1:value>869</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>7650</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>6000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1650</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>TE Connectivity</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>H84989104</ns1:cusip>
		<ns1:value>1378</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>14392</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>6351</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>8041</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Telekomunikasi Indonesia ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>715684106</ns1:cusip>
		<ns1:value>1877</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>64200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>32000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>32200</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Telus</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>87971M103</ns1:cusip>
		<ns1:value>1993</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>54000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>50000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Texas Instruments</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>882508104</ns1:cusip>
		<ns1:value>794</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6919</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>3600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>3319</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>TJX Companies</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>872540109</ns1:cusip>
		<ns1:value>76570</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1447993</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1416278</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>31715</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Toronto-Dominion Bank</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>891160509</ns1:cusip>
		<ns1:value>4007</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>68653</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>56965</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>11688</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Total ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>89151E109</ns1:cusip>
		<ns1:value>2576</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>46175</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>45482</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>693</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Toyota Motor ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>892331307</ns1:cusip>
		<ns1:value>1466</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>11824</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>11000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>824</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Trimble</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>896239100</ns1:cusip>
		<ns1:value>70676</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1566755</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1524000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>42755</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Unilever</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>904784709</ns1:cusip>
		<ns1:value>809</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>13330</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>2700</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>10630</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Unilever ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>904767704</ns1:cusip>
		<ns1:value>25882</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>417653</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>392600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>25053</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Union Pacific</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>907818108</ns1:cusip>
		<ns1:value>51574</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>304972</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>300000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4972</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>United Parcel Service, Class B</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>911312106</ns1:cusip>
		<ns1:value>499</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>4831</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4831</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>United Technologies</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>913017109</ns1:cusip>
		<ns1:value>20989</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>161209</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>160000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1209</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>UnitedHealth Group</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>91324P102</ns1:cusip>
		<ns1:value>1538</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6305</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>800</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5505</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>VF</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>918204108</ns1:cusip>
		<ns1:value>1188</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>13600</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>13600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>W.W. Grainger</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>384802104</ns1:cusip>
		<ns1:value>21888</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>81600</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>80000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1600</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Western Digital</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>958102105</ns1:cusip>
		<ns1:value>309</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6500</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>5000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1500</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Worldpay, Class A</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>981558109</ns1:cusip>
		<ns1:value>1551</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12653</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>12000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>653</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Xilinx</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>983919101</ns1:cusip>
		<ns1:value>73403</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>622481</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>610200</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>12281</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
</ns1:informationTable>
