<?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>35075</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>47035</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>429583</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>56084</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>39203</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>3556</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>13615</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>10650</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2965</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>ACI Worldwide</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>004498101</ns1:cusip>
		<ns1:value>615</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>16000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>16000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Adobe</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>00724F101</ns1:cusip>
		<ns1:value>214043</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>427983</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>17683</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>107957</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>1848</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>30607</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>112025</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>2025</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>402</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>1730</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>6115</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3489</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1684</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1805</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>6683</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2052</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1625</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>427</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Amdocs Limited</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>G02602103</ns1:cusip>
		<ns1:value>202</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2850</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>1850</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>82829</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>360252</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>355880</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4372</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>352</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>305754</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2304271</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>241871</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>159418</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>326863</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>863</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>356</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12391</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>4891</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Atlassian Corporation PLC</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>G06242104</ns1:cusip>
		<ns1:value>348</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1490</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1490</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</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>1946</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>2983</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>130928</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>79000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>51928</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>2301</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>53750</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>51600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2150</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>368</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>216</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>300</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>300</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</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>301</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>135</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>135</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>57003</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>918961</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>24061</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>43720</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>40794</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>Cassava Sciences, Inc.</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>14817C107</ns1:cusip>
		<ns1:value>136</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>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>20000</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>476</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6000</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>6000</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>898</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>Chubb</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>H1467J104</ns1:cusip>
		<ns1:value>279</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1810</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1810</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</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>106836</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1224765</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1203400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>21365</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>84368</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1885320</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1830000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>55320</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>40335</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>199755</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>197700</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>45326</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>530066</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>529000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1066</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Columbia Sportswear</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>198516106</ns1:cusip>
		<ns1:value>524</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6000</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>6000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Comfort Systems USA</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>199908104</ns1:cusip>
		<ns1:value>474</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>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>9000</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>2022</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5367</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>484</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>1990</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>13000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>10700</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2300</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>CrowdStrike Holdings Inc Class A</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>22788C105</ns1:cusip>
		<ns1:value>233</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1100</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>1100</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>783</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>586</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>2779</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>Domino's Pizza</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>25754A201</ns1:cusip>
		<ns1:value>690</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 Realty</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>264411505</ns1:cusip>
		<ns1:value>514</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>2956</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>13663</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>7743</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5920</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>708</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>10100</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>10100</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>2069</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>22675</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>5575</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>589</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>919</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6400</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>6400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Eli Lilly</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>532457108</ns1:cusip>
		<ns1:value>155527</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>921148</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>910000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>11148</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>11469</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>125400</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>125400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Equinor ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>29446M102</ns1:cusip>
		<ns1:value>279</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>17000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>17000</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>122400</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>801</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>630</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>36711</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>751808</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>750100</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>1368</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>9668</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>8358</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1310</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>446</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5200</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>5200</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>28937</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>180641</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>179900</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>12283</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>208888</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>208400</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>39498</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>393290</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>11290</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>16025</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>435457</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>391507</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>43950</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>659</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>7050</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>5250</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>3251</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>12240</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>6690</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>55714</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>261937</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>261000</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>832</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>11200</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>11200</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>1268</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>64514</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>316431</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>16431</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>1100</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>46964</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>942682</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>39182</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>544</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>176475</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>464590</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>14590</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Invesco QQQ Trust</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>46090E103</ns1:cusip>
		<ns1:value>324</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1034</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>1034</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>78904</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>501357</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>482215</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>19142</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>41981</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>901075</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>895050</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6025</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>JP Morgan Chase</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>46625H100</ns1:cusip>
		<ns1:value>445</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3501</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1901</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>420</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>18650</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>18650</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>3014</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>14765</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>7200</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>66201</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>31678</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>234950</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>4950</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>2350</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>43388</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>42226</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1162</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>35828</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>35698</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>68972</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>429708</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>15608</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>16693</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>46766</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>46274</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>492</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>59659</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>624046</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>601000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>23046</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>8376</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>1685</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>20597</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>10597</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>258</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>171</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>815</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>5907</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>5907</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>1669</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>22200</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>20200</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2000</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Microsoft</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>594918104</ns1:cusip>
		<ns1:value>98976</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>444994</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>23636</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>1377</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3761</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1750</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>2011</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>1466</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>1651</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>47723</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>796851</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>24851</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>309</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>4000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>4000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>NICE Systems ADR</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>653656108</ns1:cusip>
		<ns1:value>10649</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>37559</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>36700</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>18885</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>133488</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>23212</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>60807</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>255910</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>5910</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>28013</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>296653</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>273750</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>22903</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>74891</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1072163</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1057745</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>14418</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>640</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1226</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>26</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>1045</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6575</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>2750</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>3825</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>2621</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>45626</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>705297</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>30897</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>237</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>2405</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>55003</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>201912</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>201900</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>164</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>PepsiCo</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>713448108</ns1:cusip>
		<ns1:value>72746</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>490530</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>483550</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6980</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>44120</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1198581</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1163500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>35081</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>923</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>PNC Financial Services Group</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>693475105</ns1:cusip>
		<ns1:value>209</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1400</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1400</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</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>57748</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>400413</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>394900</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>6875</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>Public Storage International</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>74460D109</ns1:cusip>
		<ns1:value>814</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>3525</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>3525</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>129316</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>848862</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>821000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>27862</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>533</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>2936</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>75243</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>733</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>1218</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>9920</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1750</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>8170</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Royal Dutch Shell ADR, Class A</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>780259206</ns1:cusip>
		<ns1:value>350</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>9949</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>8900</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1049</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>RPM International</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>749685103</ns1:cusip>
		<ns1:value>18495</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>745</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>388</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>238</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>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1800</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>32962</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>252792</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>252779</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>13</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>245</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>10000</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>10000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Sony  ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>835699307</ns1:cusip>
		<ns1:value>3232</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>31970</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>30900</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1070</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Southwest Airlines</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>844741108</ns1:cusip>
		<ns1:value>583</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>12500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>0</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>15514</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>86884</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>5250</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>2163</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>20217</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>17887</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>2345</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>63165</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>7800</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>55365</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>75535</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>308255</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>5255</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>529</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>Tactile Systems Technology</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>87357P100</ns1:cusip>
		<ns1:value>449</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>Taiwan Semiconductor ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>874039100</ns1:cusip>
		<ns1:value>233084</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>2137601</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>2097169</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>40432</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>1948</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>768</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6341</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>4990</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>1301</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>55300</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>34500</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>20800</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>2269</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>114600</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>106600</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>42762</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>260539</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>253600</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6939</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>82477</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1207743</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>1168278</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>39465</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>367</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6500</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6500</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Toyota Motor ADS</ns1:nameOfIssuer>
		<ns1:titleOfClass>ADR</ns1:titleOfClass>
		<ns1:cusip>892331307</ns1:cusip>
		<ns1:value>308</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>TPI Composites, Inc.</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>87266J104</ns1:cusip>
		<ns1:value>264</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>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5000</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>104088</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>1558905</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>46905</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>829</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>U.S. PHYSICAL THERAPY INC. - O</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>90337L108</ns1:cusip>
		<ns1:value>601</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>0</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>5000</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>29686</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>491815</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>453300</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>38515</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>63592</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>305408</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>5408</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>14372</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>85347</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>75000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>10347</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>552</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>314</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>60000</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>60000</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>216</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>1398</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>16365</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>14800</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>1565</ns1:None>
		</ns1:votingAuthority>
	</ns1:infoTable>
	<ns1:infoTable>
		<ns1:nameOfIssuer>Viatris Inc</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>92556V106</ns1:cusip>
		<ns1:value>617</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>32941</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>28672</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>4269</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>692</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>27500</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>27500</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>220</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>33321</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>86566</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>610606</ns1:sshPrnamt>
			<ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
		</ns1:shrsOrPrnAmt>
		<ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
		<ns1:otherManager>0</ns1:otherManager>
		<ns1:votingAuthority>
			<ns1:Sole>604000</ns1:Sole>
			<ns1:Shared>0</ns1:Shared>
			<ns1:None>6606</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>139</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>399</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>Zumiez</ns1:nameOfIssuer>
		<ns1:titleOfClass>Common Stock</ns1:titleOfClass>
		<ns1:cusip>989817101</ns1:cusip>
		<ns1:value>221</ns1:value>
		<ns1:shrsOrPrnAmt>
			<ns1:sshPrnamt>6000</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>6000</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>780</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>
