<?xml version="1.0" encoding="windows-1252"?>
<informationTable xmlns="http://www.sec.gov/edgar/document/thirteenf/informationtable" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<infoTable>
  <nameOfIssuer>A10 Networks Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>002121101</cusip>
  <value>6908601</value>
  <shrsOrPrnAmt>
    <sshPrnamt>422803</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>185684</Sole>
    <Shared>0</Shared>
    <None>237119</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Accuray Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>004397105</cusip>
  <value>244423</value>
  <shrsOrPrnAmt>
    <sshPrnamt>136549</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>136549</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>ACI Worldwide Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>004498101</cusip>
  <value>3209890</value>
  <shrsOrPrnAmt>
    <sshPrnamt>58671</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>30551</Sole>
    <Shared>0</Shared>
    <None>28120</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Addus HomeCare Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>006739106</cusip>
  <value>3570918</value>
  <shrsOrPrnAmt>
    <sshPrnamt>36110</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>20256</Sole>
    <Shared>0</Shared>
    <None>15854</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Albany International Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>012348108</cusip>
  <value>5711955</value>
  <shrsOrPrnAmt>
    <sshPrnamt>82734</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>32593</Sole>
    <Shared>0</Shared>
    <None>50141</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Amedisys Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>023436108</cusip>
  <value>3237141</value>
  <shrsOrPrnAmt>
    <sshPrnamt>34947</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>18230</Sole>
    <Shared>0</Shared>
    <None>16717</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>American Eagle Outfitters</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>02553E106</cusip>
  <value>2758762</value>
  <shrsOrPrnAmt>
    <sshPrnamt>237415</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>123525</Sole>
    <Shared>0</Shared>
    <None>113890</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Amphastar Pharma Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>03209R103</cusip>
  <value>3358636</value>
  <shrsOrPrnAmt>
    <sshPrnamt>115855</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>60380</Sole>
    <Shared>0</Shared>
    <None>55475</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Aris Water Solutions</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>04041L106</cusip>
  <value>4784405</value>
  <shrsOrPrnAmt>
    <sshPrnamt>149326</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>88439</Sole>
    <Shared>0</Shared>
    <None>60887</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Badger Meter Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>056525108</cusip>
  <value>5365431</value>
  <shrsOrPrnAmt>
    <sshPrnamt>28202</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10986</Sole>
    <Shared>0</Shared>
    <None>17216</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Bank of Marin Bancorp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>063425102</cusip>
  <value>284416</value>
  <shrsOrPrnAmt>
    <sshPrnamt>12887</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>12887</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Bankwell Financial Group, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>06654A103</cusip>
  <value>396414</value>
  <shrsOrPrnAmt>
    <sshPrnamt>13135</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>13135</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Barrett Business Services Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>068463108</cusip>
  <value>3383641</value>
  <shrsOrPrnAmt>
    <sshPrnamt>82227</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>47684</Sole>
    <Shared>0</Shared>
    <None>34543</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>BGSF, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>05601C105</cusip>
  <value>191548</value>
  <shrsOrPrnAmt>
    <sshPrnamt>52051</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>52051</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Boise Cascade Company</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>09739D100</cusip>
  <value>2095104</value>
  <shrsOrPrnAmt>
    <sshPrnamt>21359</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>11138</Sole>
    <Shared>0</Shared>
    <None>10221</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Cactus, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>127203107</cusip>
  <value>3744403</value>
  <shrsOrPrnAmt>
    <sshPrnamt>81702</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>42500</Sole>
    <Shared>0</Shared>
    <None>39202</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>California Water Service Group</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>130788102</cusip>
  <value>2243601</value>
  <shrsOrPrnAmt>
    <sshPrnamt>46298</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>24102</Sole>
    <Shared>0</Shared>
    <None>22196</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Catalyst Pharmaceuticals</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>14888U101</cusip>
  <value>2846320</value>
  <shrsOrPrnAmt>
    <sshPrnamt>117374</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>61141</Sole>
    <Shared>0</Shared>
    <None>56233</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>CBIZ Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>124805102</cusip>
  <value>6417073</value>
  <shrsOrPrnAmt>
    <sshPrnamt>84591</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>33054</Sole>
    <Shared>0</Shared>
    <None>51537</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Century Communities, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>156504300</cusip>
  <value>4120410</value>
  <shrsOrPrnAmt>
    <sshPrnamt>61407</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>24348</Sole>
    <Shared>0</Shared>
    <None>37059</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Columbus McKinnon Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>199333105</cusip>
  <value>1643598</value>
  <shrsOrPrnAmt>
    <sshPrnamt>97082</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>57225</Sole>
    <Shared>0</Shared>
    <None>39857</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Conmed Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>207410101</cusip>
  <value>2635540</value>
  <shrsOrPrnAmt>
    <sshPrnamt>43642</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>22725</Sole>
    <Shared>0</Shared>
    <None>20917</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Consensus Cloud Solutions Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>20848V105</cusip>
  <value>1677085</value>
  <shrsOrPrnAmt>
    <sshPrnamt>72664</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>43550</Sole>
    <Shared>0</Shared>
    <None>29114</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Corcept Therapeutics Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>218352102</cusip>
  <value>4800552</value>
  <shrsOrPrnAmt>
    <sshPrnamt>42029</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>21919</Sole>
    <Shared>0</Shared>
    <None>20110</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>CRA International, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>12618T105</cusip>
  <value>729518</value>
  <shrsOrPrnAmt>
    <sshPrnamt>4212</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>4212</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Diodes Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>254543101</cusip>
  <value>4746369</value>
  <shrsOrPrnAmt>
    <sshPrnamt>109946</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>43737</Sole>
    <Shared>0</Shared>
    <None>66209</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Donnely Financial</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>25787G100</cusip>
  <value>2077230</value>
  <shrsOrPrnAmt>
    <sshPrnamt>47523</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>28404</Sole>
    <Shared>0</Shared>
    <None>19119</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Dorman Products Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>258278100</cusip>
  <value>5943948</value>
  <shrsOrPrnAmt>
    <sshPrnamt>49311</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>19417</Sole>
    <Shared>0</Shared>
    <None>29894</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Ensign Group Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>29358P101</cusip>
  <value>9990974</value>
  <shrsOrPrnAmt>
    <sshPrnamt>77210</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>30453</Sole>
    <Shared>0</Shared>
    <None>46757</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>ePlus Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>294268107</cusip>
  <value>2879517</value>
  <shrsOrPrnAmt>
    <sshPrnamt>47182</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>24586</Sole>
    <Shared>0</Shared>
    <None>22596</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Evercore Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>29977A105</cusip>
  <value>2586174</value>
  <shrsOrPrnAmt>
    <sshPrnamt>12949</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>6735</Sole>
    <Shared>0</Shared>
    <None>6214</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>EVERTEC, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>30040P103</cusip>
  <value>2518193</value>
  <shrsOrPrnAmt>
    <sshPrnamt>68485</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>35619</Sole>
    <Shared>0</Shared>
    <None>32866</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Exlservice Holdings Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>302081104</cusip>
  <value>5805366</value>
  <shrsOrPrnAmt>
    <sshPrnamt>122969</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>48371</Sole>
    <Shared>0</Shared>
    <None>74598</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Exponent Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>30214U102</cusip>
  <value>4340358</value>
  <shrsOrPrnAmt>
    <sshPrnamt>53545</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>21276</Sole>
    <Shared>0</Shared>
    <None>32269</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Fabrinet</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>G3323L100</cusip>
  <value>4754263</value>
  <shrsOrPrnAmt>
    <sshPrnamt>24071</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>9591</Sole>
    <Shared>0</Shared>
    <None>14480</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>First Financial Bankshares, In</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>32020R109</cusip>
  <value>3680471</value>
  <shrsOrPrnAmt>
    <sshPrnamt>102463</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>53395</Sole>
    <Shared>0</Shared>
    <None>49068</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Franklin Electric Co.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>353514102</cusip>
  <value>3013172</value>
  <shrsOrPrnAmt>
    <sshPrnamt>32096</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>16709</Sole>
    <Shared>0</Shared>
    <None>15387</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Gentherm Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>37253A103</cusip>
  <value>2732106</value>
  <shrsOrPrnAmt>
    <sshPrnamt>102173</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>57798</Sole>
    <Shared>0</Shared>
    <None>44375</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Getty Realty Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>374297109</cusip>
  <value>2631873</value>
  <shrsOrPrnAmt>
    <sshPrnamt>84409</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>43989</Sole>
    <Shared>0</Shared>
    <None>40420</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Glacier Bancorp Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>37637Q105</cusip>
  <value>7144095</value>
  <shrsOrPrnAmt>
    <sshPrnamt>161558</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>63728</Sole>
    <Shared>0</Shared>
    <None>97830</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Globus Medical, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>379577208</cusip>
  <value>8544563</value>
  <shrsOrPrnAmt>
    <sshPrnamt>116729</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>46077</Sole>
    <Shared>0</Shared>
    <None>70652</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Harmony Biosciences Holdings</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>413197104</cusip>
  <value>5334927</value>
  <shrsOrPrnAmt>
    <sshPrnamt>160739</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>64939</Sole>
    <Shared>0</Shared>
    <None>95800</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Healthcare Services Group, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>421906108</cusip>
  <value>1727954</value>
  <shrsOrPrnAmt>
    <sshPrnamt>171424</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>89195</Sole>
    <Shared>0</Shared>
    <None>82229</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>HealthStream Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>42222N103</cusip>
  <value>1883688</value>
  <shrsOrPrnAmt>
    <sshPrnamt>58536</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>33039</Sole>
    <Shared>0</Shared>
    <None>25497</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Hope Bancorp, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>43940T109</cusip>
  <value>2058957</value>
  <shrsOrPrnAmt>
    <sshPrnamt>196653</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>102323</Sole>
    <Shared>0</Shared>
    <None>94330</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Innovex International, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>457651107</cusip>
  <value>3578261</value>
  <shrsOrPrnAmt>
    <sshPrnamt>199235</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>115286</Sole>
    <Shared>0</Shared>
    <None>83949</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Insteel Industries, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>45774W108</cusip>
  <value>3282161</value>
  <shrsOrPrnAmt>
    <sshPrnamt>124797</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>71584</Sole>
    <Shared>0</Shared>
    <None>53213</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>inTEST Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>461147100</cusip>
  <value>308560</value>
  <shrsOrPrnAmt>
    <sshPrnamt>44143</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>44143</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Investors Title Co.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>461804106</cusip>
  <value>507714</value>
  <shrsOrPrnAmt>
    <sshPrnamt>2106</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>2106</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>iRadimed Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>46266A109</cusip>
  <value>3209467</value>
  <shrsOrPrnAmt>
    <sshPrnamt>61156</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>37138</Sole>
    <Shared>0</Shared>
    <None>24018</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>J&amp;J Snack Foods Corp.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>466032109</cusip>
  <value>3010197</value>
  <shrsOrPrnAmt>
    <sshPrnamt>22853</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>11927</Sole>
    <Shared>0</Shared>
    <None>10926</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Jack in the Box Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>466367109</cusip>
  <value>1353246</value>
  <shrsOrPrnAmt>
    <sshPrnamt>49770</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>28867</Sole>
    <Shared>0</Shared>
    <None>20903</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Kulicke Soffa</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>501242101</cusip>
  <value>3286985</value>
  <shrsOrPrnAmt>
    <sshPrnamt>99666</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>51893</Sole>
    <Shared>0</Shared>
    <None>47773</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>La-Z-Boy Incorporated</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>505336107</cusip>
  <value>3780198</value>
  <shrsOrPrnAmt>
    <sshPrnamt>96705</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>50385</Sole>
    <Shared>0</Shared>
    <None>46320</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Lakeland Financial Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>511656100</cusip>
  <value>2186025</value>
  <shrsOrPrnAmt>
    <sshPrnamt>36777</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>19162</Sole>
    <Shared>0</Shared>
    <None>17615</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Landstar System, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>515098101</cusip>
  <value>3845571</value>
  <shrsOrPrnAmt>
    <sshPrnamt>25603</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>13340</Sole>
    <Shared>0</Shared>
    <None>12263</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Lemaitre Vascular Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>525558201</cusip>
  <value>6239895</value>
  <shrsOrPrnAmt>
    <sshPrnamt>74373</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>32191</Sole>
    <Shared>0</Shared>
    <None>42182</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Lithia Motors, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>536797103</cusip>
  <value>6223635</value>
  <shrsOrPrnAmt>
    <sshPrnamt>21202</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>8350</Sole>
    <Shared>0</Shared>
    <None>12852</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>LTC Properties, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>502175102</cusip>
  <value>1568202</value>
  <shrsOrPrnAmt>
    <sshPrnamt>44237</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>23027</Sole>
    <Shared>0</Shared>
    <None>21210</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>MACOM Tech  Solutions</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>55405Y100</cusip>
  <value>5057947</value>
  <shrsOrPrnAmt>
    <sshPrnamt>50388</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>20559</Sole>
    <Shared>0</Shared>
    <None>29829</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>MasTec, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>576323109</cusip>
  <value>4527414</value>
  <shrsOrPrnAmt>
    <sshPrnamt>38792</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>20176</Sole>
    <Shared>0</Shared>
    <None>18616</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Maxiums Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>577933104</cusip>
  <value>1929300</value>
  <shrsOrPrnAmt>
    <sshPrnamt>28293</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>14751</Sole>
    <Shared>0</Shared>
    <None>13542</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>MEDNAX, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>58502B106</cusip>
  <value>2182991</value>
  <shrsOrPrnAmt>
    <sshPrnamt>150655</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>78425</Sole>
    <Shared>0</Shared>
    <None>72230</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Modine Manufacturing Co.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>607828100</cusip>
  <value>4471532</value>
  <shrsOrPrnAmt>
    <sshPrnamt>58261</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>23200</Sole>
    <Shared>0</Shared>
    <None>35061</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>MYR Group</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>55405W104</cusip>
  <value>546451</value>
  <shrsOrPrnAmt>
    <sshPrnamt>4832</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>4832</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Napco Security Technologies</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>630402105</cusip>
  <value>2759937</value>
  <shrsOrPrnAmt>
    <sshPrnamt>119893</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>68575</Sole>
    <Shared>0</Shared>
    <None>51318</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Neogen Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>640491106</cusip>
  <value>3734672</value>
  <shrsOrPrnAmt>
    <sshPrnamt>430758</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>167681</Sole>
    <Shared>0</Shared>
    <None>263077</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>NVE Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>629445206</cusip>
  <value>2329888</value>
  <shrsOrPrnAmt>
    <sshPrnamt>36553</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>22449</Sole>
    <Shared>0</Shared>
    <None>14104</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Ollie&apos;s Bargain Outlet Holding</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>681116109</cusip>
  <value>4269830</value>
  <shrsOrPrnAmt>
    <sshPrnamt>36695</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>19114</Sole>
    <Shared>0</Shared>
    <None>17581</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Omnicell, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>68213N109</cusip>
  <value>1403155</value>
  <shrsOrPrnAmt>
    <sshPrnamt>40136</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>20912</Sole>
    <Shared>0</Shared>
    <None>19224</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Onespan Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>68287N100</cusip>
  <value>272594</value>
  <shrsOrPrnAmt>
    <sshPrnamt>17875</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>17875</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Onto Innovation Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>683344105</cusip>
  <value>981519</value>
  <shrsOrPrnAmt>
    <sshPrnamt>8089</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>4208</Sole>
    <Shared>0</Shared>
    <None>3881</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>OSI Systems, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>671044105</cusip>
  <value>8446599</value>
  <shrsOrPrnAmt>
    <sshPrnamt>43463</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>17201</Sole>
    <Shared>0</Shared>
    <None>26262</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Pacira Biosciences</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>695127100</cusip>
  <value>4277828</value>
  <shrsOrPrnAmt>
    <sshPrnamt>172146</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>95712</Sole>
    <Shared>0</Shared>
    <None>76434</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Park Aerospace Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>70014A104</cusip>
  <value>464993</value>
  <shrsOrPrnAmt>
    <sshPrnamt>34572</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>34572</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Paysign</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>70451A104</cusip>
  <value>228805</value>
  <shrsOrPrnAmt>
    <sshPrnamt>107927</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>107927</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>PDF Solutions Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>693282105</cusip>
  <value>1526793</value>
  <shrsOrPrnAmt>
    <sshPrnamt>79895</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>44698</Sole>
    <Shared>0</Shared>
    <None>35197</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Performance Food Group</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>71377A103</cusip>
  <value>6765718</value>
  <shrsOrPrnAmt>
    <sshPrnamt>86045</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>37515</Sole>
    <Shared>0</Shared>
    <None>48530</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Photronics</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>719405102</cusip>
  <value>1852477</value>
  <shrsOrPrnAmt>
    <sshPrnamt>89233</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>52721</Sole>
    <Shared>0</Shared>
    <None>36512</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Plexus Corp.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>729132100</cusip>
  <value>2342473</value>
  <shrsOrPrnAmt>
    <sshPrnamt>18282</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>9554</Sole>
    <Shared>0</Shared>
    <None>8728</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Quaker Chemical Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>747316107</cusip>
  <value>1979367</value>
  <shrsOrPrnAmt>
    <sshPrnamt>16013</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>8362</Sole>
    <Shared>0</Shared>
    <None>7651</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Qualys Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>74758T303</cusip>
  <value>2672361</value>
  <shrsOrPrnAmt>
    <sshPrnamt>21221</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>11054</Sole>
    <Shared>0</Shared>
    <None>10167</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Quipt Home Medical Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>74880P104</cusip>
  <value>124723</value>
  <shrsOrPrnAmt>
    <sshPrnamt>53529</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>53529</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>RBC Bearings Incorporated</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>75524B104</cusip>
  <value>7676467</value>
  <shrsOrPrnAmt>
    <sshPrnamt>23857</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>9481</Sole>
    <Shared>0</Shared>
    <None>14376</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Rogers Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>775133101</cusip>
  <value>1364646</value>
  <shrsOrPrnAmt>
    <sshPrnamt>20208</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10536</Sole>
    <Shared>0</Shared>
    <None>9672</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>RPC Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>749660106</cusip>
  <value>1548459</value>
  <shrsOrPrnAmt>
    <sshPrnamt>281538</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>146687</Sole>
    <Shared>0</Shared>
    <None>134851</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Select Energy Services, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>81617J301</cusip>
  <value>4013121</value>
  <shrsOrPrnAmt>
    <sshPrnamt>382202</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>222855</Sole>
    <Shared>0</Shared>
    <None>159347</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Shake Shack Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>819047101</cusip>
  <value>2406247</value>
  <shrsOrPrnAmt>
    <sshPrnamt>27291</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>14221</Sole>
    <Shared>0</Shared>
    <None>13070</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>SiteOne Landscape Supply, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>82982L103</cusip>
  <value>3228968</value>
  <shrsOrPrnAmt>
    <sshPrnamt>26589</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>13869</Sole>
    <Shared>0</Shared>
    <None>12720</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>SPS Commerce</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>78463M107</cusip>
  <value>2765031</value>
  <shrsOrPrnAmt>
    <sshPrnamt>20832</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10867</Sole>
    <Shared>0</Shared>
    <None>9965</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Sterling Construction Co</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>859241101</cusip>
  <value>7499483</value>
  <shrsOrPrnAmt>
    <sshPrnamt>66244</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>26153</Sole>
    <Shared>0</Shared>
    <None>40091</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Supernus Pharmaceuticals Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>868459108</cusip>
  <value>3084395</value>
  <shrsOrPrnAmt>
    <sshPrnamt>94180</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>54137</Sole>
    <Shared>0</Shared>
    <None>40043</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Synaptics Incorporated</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>87157D109</cusip>
  <value>1422039</value>
  <shrsOrPrnAmt>
    <sshPrnamt>22317</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>11650</Sole>
    <Shared>0</Shared>
    <None>10667</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Texas Roadhouse Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>882681109</cusip>
  <value>1542327</value>
  <shrsOrPrnAmt>
    <sshPrnamt>9256</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>4809</Sole>
    <Shared>0</Shared>
    <None>4447</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>The Joint Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>47973J102</cusip>
  <value>332746</value>
  <shrsOrPrnAmt>
    <sshPrnamt>26641</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>26641</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>UFP Industries Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>90278Q108</cusip>
  <value>6007406</value>
  <shrsOrPrnAmt>
    <sshPrnamt>56123</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>22107</Sole>
    <Shared>0</Shared>
    <None>34016</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>UFP Technologies Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>902673102</cusip>
  <value>5020360</value>
  <shrsOrPrnAmt>
    <sshPrnamt>24889</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10616</Sole>
    <Shared>0</Shared>
    <None>14273</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Ultra Clean Holdings</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>90385V107</cusip>
  <value>1782875</value>
  <shrsOrPrnAmt>
    <sshPrnamt>83273</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>43485</Sole>
    <Shared>0</Shared>
    <None>39788</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>US Physical Therapy Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>90337L108</cusip>
  <value>3672270</value>
  <shrsOrPrnAmt>
    <sshPrnamt>50750</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>28651</Sole>
    <Shared>0</Shared>
    <None>22099</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Utah Medical Products Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>917488108</cusip>
  <value>286420</value>
  <shrsOrPrnAmt>
    <sshPrnamt>5111</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>5111</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Vishay Precision Group</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>92835K103</cusip>
  <value>2214859</value>
  <shrsOrPrnAmt>
    <sshPrnamt>91941</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>58164</Sole>
    <Shared>0</Shared>
    <None>33777</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>WD-40 CO COM</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>929236107</cusip>
  <value>2345084</value>
  <shrsOrPrnAmt>
    <sshPrnamt>9611</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>5011</Sole>
    <Shared>0</Shared>
    <None>4600</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Wesbanco Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>950810101</cusip>
  <value>3064390</value>
  <shrsOrPrnAmt>
    <sshPrnamt>98979</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>51599</Sole>
    <Shared>0</Shared>
    <None>47380</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>YETI Holdings</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>98585X104</cusip>
  <value>1949160</value>
  <shrsOrPrnAmt>
    <sshPrnamt>58887</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>30648</Sole>
    <Shared>0</Shared>
    <None>28239</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Ziff Davis, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>48123V102</cusip>
  <value>1923420</value>
  <shrsOrPrnAmt>
    <sshPrnamt>51182</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>26672</Sole>
    <Shared>0</Shared>
    <None>24510</None>
  </votingAuthority>
</infoTable>
</informationTable>
