<?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>32143</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>46753</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>429593</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>56094</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>32046</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>365869</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>15869</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>2868</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12690</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>2540</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Adobe</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>00724F101</ns1:cusip>
		<ns1:value>210040</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>428278</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>410300</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>17978</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>91967</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>Agnico-Eagle Mines</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>008474108</ns1:cusip>
		<ns1:value>2086</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>26205</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>20000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6205</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>33338</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>111925</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>110000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1925</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>423</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>Alcon</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>H01301128</ns1:cusip>
		<ns1:value>1493</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>26218</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>1218</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>5130</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3500</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1784</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1716</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>6083</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1932</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1611</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>321</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>American Tower</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>03027X100</ns1:cusip>
		<ns1:value>0</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>0</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>0</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>91590</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>360362</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>4262</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Aon PLC</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>G0403H108</ns1:cusip>
		<ns1:value>343</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>266955</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2305108</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>2062400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>242708</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>120599</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>326588</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>326000</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>440</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>15450</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>2950</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Baidu ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>056752108</ns1:cusip>
		<ns1:value>1139</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>9000</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>0</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>2744</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>97615</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>47615</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>2370</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>57149</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>54000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>3149</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>291</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5633</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>5500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>133</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>BlackRock</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>09247X101</ns1:cusip>
		<ns1:value>238</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>423</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>23</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>289</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>169</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>169</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>55362</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>918261</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>894900</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>23361</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>42371</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>398000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>386000</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>31963</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>261200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>260000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1200</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>CGI Group Inc Class A</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>12532H104</ns1:cusip>
		<ns1:value>203</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3000</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>3000</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>814</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3595</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>3595</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>258</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3584</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>3584</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>China Mobile ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>16941M109</ns1:cusip>
		<ns1:value>781</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>24300</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>20000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4300</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>449</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3863</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>1163</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>114464</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1221470</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>19070</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>67338</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1709520</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1655000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>54520</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>42466</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>202055</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>2055</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>41481</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>Constellation Brands</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>21036P108</ns1:cusip>
		<ns1:value>0</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>0</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>0</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>1875</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5282</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>399</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>CRISPR Therapeutics AG</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>H17182108</ns1:cusip>
		<ns1:value>1188</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>14200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>11900</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2300</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>CSW Industrials, Inc.</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>126402106</ns1:cusip>
		<ns1:value>541</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>7000</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>7000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Denali</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>24823R105</ns1:cusip>
		<ns1:value>251</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>7000</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>7000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>DocuSign</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>256163106</ns1:cusip>
		<ns1:value>2691</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>8500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Dominion Energy</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>25746U109</ns1:cusip>
		<ns1:value>221</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2800</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>2800</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Domino's Pizza</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>25754A201</ns1:cusip>
		<ns1:value>766</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1800</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1800</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Duke Energy</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>26441C204</ns1:cusip>
		<ns1:value>351</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3965</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>2600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1365</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>474</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12850</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>12850</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>2578</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12898</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>7143</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5755</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Editas Medicine</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>28106W103</ns1:cusip>
		<ns1:value>286</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>10200</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>10200</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>1770</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>22175</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>17100</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5075</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Elanco Animal Health</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>28414H103</ns1:cusip>
		<ns1:value>537</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>19209</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>19209</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Electronic Arts</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>285512109</ns1:cusip>
		<ns1:value>619</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>4750</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>4700</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>50</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>9479</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>140000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>140000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Energous Corp.</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>29272C103</ns1:cusip>
		<ns1:value>0</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>150</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>150</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>425</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>30200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>30200</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>100356</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>459821</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>1227</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Etsy, Inc.</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>29786A106</ns1:cusip>
		<ns1:value>547</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>Exponent</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>30214U102</ns1:cusip>
		<ns1:value>504</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>7000</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>7000</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>44391</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>984508</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>982800</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1708</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Fidelity National Information Srvcs</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>31620M106</ns1:cusip>
		<ns1:value>1839</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12493</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>11144</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1349</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Fiserv</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>337738108</ns1:cusip>
		<ns1:value>0</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>0</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>0</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>764</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>Fortune Brands Home &amp; Security</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>34964C106</ns1:cusip>
		<ns1:value>424</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>4900</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>4900</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>22584</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>180741</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>741</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>18534</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>37111</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>389940</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>7940</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>GlaxoSmithKline ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>37733W105</ns1:cusip>
		<ns1:value>16571</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>440257</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>396507</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>43750</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>565</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6825</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1800</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5025</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>3391</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12210</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>5550</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6660</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>43150</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>262137</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>261200</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>937</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>ICF International</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>44925C103</ns1:cusip>
		<ns1:value>381</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6200</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>6200</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>1055</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>13200</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>13200</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>61118</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>316331</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>16331</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>919</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2974</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>2974</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>48752</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>941517</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>903500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>38017</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>612</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5000</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>0</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>151626</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>464810</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>14810</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>74648</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>501397</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>482500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>18897</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>456</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>11175</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>5550</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5625</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>340</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>15800</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>15800</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>2760</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>15265</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>7565</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>49506</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>34796</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>235650</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>5650</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>2007</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>42568</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>41326</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1242</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>28367</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>308200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>307000</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>32260</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>135471</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>134500</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>71003</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>428088</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>414100</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>13988</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>15681</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>46371</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>45914</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>457</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>60514</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>311768</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>300500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>11268</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>5412</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5000</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>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>1207</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>14554</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>4554</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>229</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>900</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>900</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>97</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>Microchip Technology</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>595017104</ns1:cusip>
		<ns1:value>52498</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>510875</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>504600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6275</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>1094</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>23300</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>21200</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2100</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>93369</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>443919</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>421358</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>22561</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>422</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1511</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>1511</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>1271</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>15850</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>15850</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>1649</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>Newmont Corporation</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>651639106</ns1:cusip>
		<ns1:value>50461</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>795287</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>772000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>23287</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>291</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1047</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>47</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>9254</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>40759</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>39900</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>859</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>16697</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>133005</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>110276</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>22729</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>54748</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>255845</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>5845</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Novartis ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>66987V109</ns1:cusip>
		<ns1:value>25757</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>296193</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>275350</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>20843</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Novo Nordisk ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>670100205</ns1:cusip>
		<ns1:value>74359</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1070988</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1057145</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>13843</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>NVIDIA</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>67066G104</ns1:cusip>
		<ns1:value>691</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1276</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1200</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>76</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>752</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6025</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>2400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>3625</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Occidental Petroleum Corporation</ns1:nameOfIssuer>
		<ns1:titleOfClass>Warrant</ns1:titleOfClass>
		<ns1:cusip>674599162</ns1:cusip>
		<ns1:value>0</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>58</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>58</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>2435</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>57650</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>57650</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>42061</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>704537</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>674400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>30137</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>208</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>20000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>20000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Otis Worldwide</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>68902V107</ns1:cusip>
		<ns1:value>2222</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>35604</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>35000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>604</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>45438</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>224562</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>224550</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>12</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>PCTEL</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>69325Q105</ns1:cusip>
		<ns1:value>142</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>25000</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>25000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Pennsylvania REIT</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>709102107</ns1:cusip>
		<ns1:value>0</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>350</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>350</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>68411</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>493584</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>486550</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>7034</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>43490</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1185026</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1155500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>29526</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>345</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6659</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>6659</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Pinterest</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>72352L106</ns1:cusip>
		<ns1:value>581</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>14000</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>14000</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>49590</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>406213</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>400700</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>6868</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>49411</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>8261</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Prologis Trust</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>74340W103</ns1:cusip>
		<ns1:value>0</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>0</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>0</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>457</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2050</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>2050</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>99234</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>843257</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>817500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>25757</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>405</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>Rio Tinto ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>767204100</ns1:cusip>
		<ns1:value>2357</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>39035</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>35000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4035</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>66204</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</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>776696106</ns1:cusip>
		<ns1:value>672</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1700</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>1700</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>1467</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>15720</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>7550</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>8170</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>16877</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>203731</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>199400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4331</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>SailPoint Technologies Holdings</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>78781P105</ns1:cusip>
		<ns1:value>554</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>14000</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>14000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Salesforce.com</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>79466L302</ns1:cusip>
		<ns1:value>438</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1743</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>1743</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Sanderson Farms</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>800013104</ns1:cusip>
		<ns1:value>354</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3000</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>3000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>SAP ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>803054204</ns1:cusip>
		<ns1:value>51393</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>329842</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>613</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>321</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>10000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4300</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>SolarWinds</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>83417Q105</ns1:cusip>
		<ns1:value>305</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>15000</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>15000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Sony  ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>835699307</ns1:cusip>
		<ns1:value>2404</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>31320</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>30400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>920</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>14065</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>86714</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>81634</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5080</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>1608</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>18717</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>2330</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>1717</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>55950</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>52150</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>64188</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>308050</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>5050</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>SVMK</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>78489X103</ns1:cusip>
		<ns1:value>458</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>20700</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>20700</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Taiwan Semiconductor ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>874039100</ns1:cusip>
		<ns1:value>173221</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2136685</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>2096769</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>39916</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>1549</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>9375</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>1875</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>595</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6091</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1351</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4740</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Telekomunikasi Indonesia ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>715684106</ns1:cusip>
		<ns1:value>935</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>53800</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>21800</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>2043</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>116000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>108000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>8000</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>1473</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>10319</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>6719</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Thomson Reuters</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>884903709</ns1:cusip>
		<ns1:value>0</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6</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>6</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>67066</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1205133</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1166278</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>38855</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>439</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>9500</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>6500</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>264</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1991</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>991</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>75904</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1558605</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1512000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>46605</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Truist Financial Corp</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>89832Q109</ns1:cusip>
		<ns1:value>0</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>0</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>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Tyler Technologies</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>902252105</ns1:cusip>
		<ns1:value>662</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1900</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>1900</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Unilever ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>904767704</ns1:cusip>
		<ns1:value>25761</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>Unilever NY</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>904784709</ns1:cusip>
		<ns1:value>946</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>15659</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>4300</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>11359</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>60085</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>305203</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>5203</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>805</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>UnitedHealth Group</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>91324P102</ns1:cusip>
		<ns1:value>491</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1575</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>1575</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Unity Biotechnology</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>91381U101</ns1:cusip>
		<ns1:value>104</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>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>30000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Verizon Communications</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>92343V104</ns1:cusip>
		<ns1:value>219</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3677</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>3300</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>377</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>1124</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>16000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Virtu Financial</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>928254101</ns1:cusip>
		<ns1:value>1668</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>72500</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>72500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Visa</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>92826C839</ns1:cusip>
		<ns1:value>202</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1008</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>900</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>108</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>29112</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>Xilinx</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>983919101</ns1:cusip>
		<ns1:value>64473</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>618506</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>611600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6906</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Zoura INC CL A</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>98983V106</ns1:cusip>
		<ns1:value>103</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>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>10000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Zscaler</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>98980G102</ns1:cusip>
		<ns1:value>281</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2000</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>2000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Zynga Inc CL A</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>98986T108</ns1:cusip>
		<ns1:value>720</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>79000</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>79000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
</ns1:informationTable>
