<?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>8086965</value>
  <shrsOrPrnAmt>
    <sshPrnamt>417931</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>180812</Sole>
    <Shared>0</Shared>
    <None>237119</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Accuray Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>004397105</cusip>
  <value>182424</value>
  <shrsOrPrnAmt>
    <sshPrnamt>133156</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>133156</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>ACI Worldwide Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>004498101</cusip>
  <value>4949098</value>
  <shrsOrPrnAmt>
    <sshPrnamt>107800</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>41975</Sole>
    <Shared>0</Shared>
    <None>65825</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Addus Homecare Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>006739106</cusip>
  <value>4097308</value>
  <shrsOrPrnAmt>
    <sshPrnamt>35570</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>19716</Sole>
    <Shared>0</Shared>
    <None>15854</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Albany Intl Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>012348108</cusip>
  <value>5740982</value>
  <shrsOrPrnAmt>
    <sshPrnamt>81862</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>31721</Sole>
    <Shared>0</Shared>
    <None>50141</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Amedisys Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>023436108</cusip>
  <value>3390027</value>
  <shrsOrPrnAmt>
    <sshPrnamt>34455</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>17738</Sole>
    <Shared>0</Shared>
    <None>16717</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>American Eagle Outfitters Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>02553E106</cusip>
  <value>2253466</value>
  <shrsOrPrnAmt>
    <sshPrnamt>234248</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>120358</Sole>
    <Shared>0</Shared>
    <None>113890</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Amphastar Pharmaceuticals Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>03209R103</cusip>
  <value>3183266</value>
  <shrsOrPrnAmt>
    <sshPrnamt>138644</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>71205</Sole>
    <Shared>0</Shared>
    <None>67439</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Aris Water Solutions Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>04041L106</cusip>
  <value>4121273</value>
  <shrsOrPrnAmt>
    <sshPrnamt>174261</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>100220</Sole>
    <Shared>0</Shared>
    <None>74041</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Badger Meter Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>056525108</cusip>
  <value>5920442</value>
  <shrsOrPrnAmt>
    <sshPrnamt>24170</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>9515</Sole>
    <Shared>0</Shared>
    <None>14655</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Bank Marin Bancorp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>063425102</cusip>
  <value>287007</value>
  <shrsOrPrnAmt>
    <sshPrnamt>12566</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>12566</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Bankwell Financial Group Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>06654A103</cusip>
  <value>461508</value>
  <shrsOrPrnAmt>
    <sshPrnamt>12809</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>12809</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Barrett Business Services Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>068463108</cusip>
  <value>3375347</value>
  <shrsOrPrnAmt>
    <sshPrnamt>80963</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>46420</Sole>
    <Shared>0</Shared>
    <None>34543</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Bgsf Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>05601C105</cusip>
  <value>323386</value>
  <shrsOrPrnAmt>
    <sshPrnamt>50767</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>50767</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Boise Cascade Co</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>09739D100</cusip>
  <value>1828516</value>
  <shrsOrPrnAmt>
    <sshPrnamt>21061</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10840</Sole>
    <Shared>0</Shared>
    <None>10221</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Cactus Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>127203107</cusip>
  <value>3521646</value>
  <shrsOrPrnAmt>
    <sshPrnamt>80550</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>41348</Sole>
    <Shared>0</Shared>
    <None>39202</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>California Wtr Svc Group</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>130788102</cusip>
  <value>2076162</value>
  <shrsOrPrnAmt>
    <sshPrnamt>45650</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>23454</Sole>
    <Shared>0</Shared>
    <None>22196</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Catalyst Pharmaceuticals Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>14888U101</cusip>
  <value>2514618</value>
  <shrsOrPrnAmt>
    <sshPrnamt>115881</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>59648</Sole>
    <Shared>0</Shared>
    <None>56233</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>CBIZ Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>124805102</cusip>
  <value>6002414</value>
  <shrsOrPrnAmt>
    <sshPrnamt>83704</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>32167</Sole>
    <Shared>0</Shared>
    <None>51537</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Century Communities Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>156504300</cusip>
  <value>4125891</value>
  <shrsOrPrnAmt>
    <sshPrnamt>73258</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>28881</Sole>
    <Shared>0</Shared>
    <None>44377</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Cognex Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>192422103</cusip>
  <value>2722654</value>
  <shrsOrPrnAmt>
    <sshPrnamt>85834</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>44204</Sole>
    <Shared>0</Shared>
    <None>41630</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Columbus McKinnon Corp NY</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>199333105</cusip>
  <value>1494414</value>
  <shrsOrPrnAmt>
    <sshPrnamt>97866</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>58009</Sole>
    <Shared>0</Shared>
    <None>39857</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Conmed Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>207410101</cusip>
  <value>2241002</value>
  <shrsOrPrnAmt>
    <sshPrnamt>43030</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>22113</Sole>
    <Shared>0</Shared>
    <None>20917</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Consensus Cloud Solutions Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>20848V105</cusip>
  <value>1649297</value>
  <shrsOrPrnAmt>
    <sshPrnamt>71522</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>42408</Sole>
    <Shared>0</Shared>
    <None>29114</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Corcept Therapeutics Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>218352102</cusip>
  <value>1434383</value>
  <shrsOrPrnAmt>
    <sshPrnamt>19542</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10101</Sole>
    <Shared>0</Shared>
    <None>9441</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>CRA Intl Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>12618T105</cusip>
  <value>769716</value>
  <shrsOrPrnAmt>
    <sshPrnamt>4108</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>4108</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Credo Technology Group Holding</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>G25457105</cusip>
  <value>3210743</value>
  <shrsOrPrnAmt>
    <sshPrnamt>34677</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>17895</Sole>
    <Shared>0</Shared>
    <None>16782</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Diodes Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>254543101</cusip>
  <value>5755701</value>
  <shrsOrPrnAmt>
    <sshPrnamt>108824</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>42615</Sole>
    <Shared>0</Shared>
    <None>66209</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Donnelley Financial Solutions </nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>25787G100</cusip>
  <value>2938177</value>
  <shrsOrPrnAmt>
    <sshPrnamt>47659</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>28540</Sole>
    <Shared>0</Shared>
    <None>19119</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Dorman Prods Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>258278100</cusip>
  <value>5984579</value>
  <shrsOrPrnAmt>
    <sshPrnamt>48786</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>18892</Sole>
    <Shared>0</Shared>
    <None>29894</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Ensign Group Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>29358P101</cusip>
  <value>11228123</value>
  <shrsOrPrnAmt>
    <sshPrnamt>72787</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>27808</Sole>
    <Shared>0</Shared>
    <None>44979</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>ePlus Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>294268107</cusip>
  <value>3865642</value>
  <shrsOrPrnAmt>
    <sshPrnamt>53615</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>27491</Sole>
    <Shared>0</Shared>
    <None>26124</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Evercore Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>29977A105</cusip>
  <value>3447345</value>
  <shrsOrPrnAmt>
    <sshPrnamt>12767</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>6553</Sole>
    <Shared>0</Shared>
    <None>6214</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Evertec Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>30040P103</cusip>
  <value>2433736</value>
  <shrsOrPrnAmt>
    <sshPrnamt>67510</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>34644</Sole>
    <Shared>0</Shared>
    <None>32866</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>ExlService Holdings Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>302081104</cusip>
  <value>5328630</value>
  <shrsOrPrnAmt>
    <sshPrnamt>121686</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>47088</Sole>
    <Shared>0</Shared>
    <None>74598</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Exponent Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>30214U102</cusip>
  <value>3033226</value>
  <shrsOrPrnAmt>
    <sshPrnamt>40600</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>20700</Sole>
    <Shared>0</Shared>
    <None>19900</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Fabrinet</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>G3323L100</cusip>
  <value>7016920</value>
  <shrsOrPrnAmt>
    <sshPrnamt>23812</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>9332</Sole>
    <Shared>0</Shared>
    <None>14480</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>First Financial Bankshares Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>32020R109</cusip>
  <value>4220562</value>
  <shrsOrPrnAmt>
    <sshPrnamt>117303</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>60303</Sole>
    <Shared>0</Shared>
    <None>57000</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Franklin Electric Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>353514102</cusip>
  <value>2840450</value>
  <shrsOrPrnAmt>
    <sshPrnamt>31652</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>16265</Sole>
    <Shared>0</Shared>
    <None>15387</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Gentherm Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>37253A103</cusip>
  <value>2846794</value>
  <shrsOrPrnAmt>
    <sshPrnamt>100629</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>56254</Sole>
    <Shared>0</Shared>
    <None>44375</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Getty Realty Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>374297109</cusip>
  <value>2300367</value>
  <shrsOrPrnAmt>
    <sshPrnamt>83226</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>42806</Sole>
    <Shared>0</Shared>
    <None>40420</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Glacier Bancorp Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>37637Q105</cusip>
  <value>7306282</value>
  <shrsOrPrnAmt>
    <sshPrnamt>169598</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>66978</Sole>
    <Shared>0</Shared>
    <None>102620</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Globus Med Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>379577208</cusip>
  <value>6816279</value>
  <shrsOrPrnAmt>
    <sshPrnamt>115491</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>44839</Sole>
    <Shared>0</Shared>
    <None>70652</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Harmony Biosciences Holdings I</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>413197104</cusip>
  <value>5140182</value>
  <shrsOrPrnAmt>
    <sshPrnamt>162664</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>63234</Sole>
    <Shared>0</Shared>
    <None>99430</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Healthcare Services Group Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>421906108</cusip>
  <value>2539905</value>
  <shrsOrPrnAmt>
    <sshPrnamt>168989</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>86760</Sole>
    <Shared>0</Shared>
    <None>82229</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>HealthStream Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>42222N103</cusip>
  <value>1631894</value>
  <shrsOrPrnAmt>
    <sshPrnamt>58977</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>33480</Sole>
    <Shared>0</Shared>
    <None>25497</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Hope Bancorp Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>43940T109</cusip>
  <value>2080139</value>
  <shrsOrPrnAmt>
    <sshPrnamt>193862</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>99532</Sole>
    <Shared>0</Shared>
    <None>94330</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Innovex International Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>457651107</cusip>
  <value>3064722</value>
  <shrsOrPrnAmt>
    <sshPrnamt>196205</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>112256</Sole>
    <Shared>0</Shared>
    <None>83949</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Insteel Industries Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>45774W108</cusip>
  <value>4572997</value>
  <shrsOrPrnAmt>
    <sshPrnamt>122897</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>69684</Sole>
    <Shared>0</Shared>
    <None>53213</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>inTEST Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>461147100</cusip>
  <value>313375</value>
  <shrsOrPrnAmt>
    <sshPrnamt>43046</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>43046</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Investors Title Co NC</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>461804106</cusip>
  <value>375269</value>
  <shrsOrPrnAmt>
    <sshPrnamt>1776</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>1776</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Iradimed Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>46266A109</cusip>
  <value>3598043</value>
  <shrsOrPrnAmt>
    <sshPrnamt>60178</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>36160</Sole>
    <Shared>0</Shared>
    <None>24018</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>iShares</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>464287648</cusip>
  <value>215538</value>
  <shrsOrPrnAmt>
    <sshPrnamt>754</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>754</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>J &amp; J Snack Foods Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>466032109</cusip>
  <value>2556148</value>
  <shrsOrPrnAmt>
    <sshPrnamt>22539</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>11613</Sole>
    <Shared>0</Shared>
    <None>10926</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Jack in the Box Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>466367109</cusip>
  <value>855662</value>
  <shrsOrPrnAmt>
    <sshPrnamt>49007</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>28104</Sole>
    <Shared>0</Shared>
    <None>20903</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Joint Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>47973J102</cusip>
  <value>299798</value>
  <shrsOrPrnAmt>
    <sshPrnamt>25979</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>25979</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Kulicke &amp; Soffa Industries Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>501242101</cusip>
  <value>3399969</value>
  <shrsOrPrnAmt>
    <sshPrnamt>98265</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>50492</Sole>
    <Shared>0</Shared>
    <None>47773</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>La-Z-Boy Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>505336107</cusip>
  <value>3544457</value>
  <shrsOrPrnAmt>
    <sshPrnamt>95358</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>49038</Sole>
    <Shared>0</Shared>
    <None>46320</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Lakeland Financial Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>511656100</cusip>
  <value>2228300</value>
  <shrsOrPrnAmt>
    <sshPrnamt>36262</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>18647</Sole>
    <Shared>0</Shared>
    <None>17615</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Landstar Systems Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>515098101</cusip>
  <value>3510950</value>
  <shrsOrPrnAmt>
    <sshPrnamt>25255</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>12992</Sole>
    <Shared>0</Shared>
    <None>12263</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Lemaitre Vascular Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>525558201</cusip>
  <value>6108244</value>
  <shrsOrPrnAmt>
    <sshPrnamt>73549</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>31367</Sole>
    <Shared>0</Shared>
    <None>42182</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Lithia Motors Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>536797103</cusip>
  <value>7087126</value>
  <shrsOrPrnAmt>
    <sshPrnamt>20979</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>8127</Sole>
    <Shared>0</Shared>
    <None>12852</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>LTC Properties Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>502175102</cusip>
  <value>1509307</value>
  <shrsOrPrnAmt>
    <sshPrnamt>43609</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>22399</Sole>
    <Shared>0</Shared>
    <None>21210</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Macom Tech Solutions Holdings </nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>55405Y100</cusip>
  <value>7281568</value>
  <shrsOrPrnAmt>
    <sshPrnamt>50817</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>20028</Sole>
    <Shared>0</Shared>
    <None>30789</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Mastec Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>576323109</cusip>
  <value>8411914</value>
  <shrsOrPrnAmt>
    <sshPrnamt>49357</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>19623</Sole>
    <Shared>0</Shared>
    <None>29734</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Maximus Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>577933104</cusip>
  <value>1958229</value>
  <shrsOrPrnAmt>
    <sshPrnamt>27895</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>14353</Sole>
    <Shared>0</Shared>
    <None>13542</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Modine Manufacturing Co</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>607828100</cusip>
  <value>5678821</value>
  <shrsOrPrnAmt>
    <sshPrnamt>57653</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>22592</Sole>
    <Shared>0</Shared>
    <None>35061</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>MYR Group Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>55405W104</cusip>
  <value>854992</value>
  <shrsOrPrnAmt>
    <sshPrnamt>4712</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>4712</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Napco Security Technologies In</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>630402105</cusip>
  <value>3509803</value>
  <shrsOrPrnAmt>
    <sshPrnamt>118215</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>66897</Sole>
    <Shared>0</Shared>
    <None>51318</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>NVE Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>629445206</cusip>
  <value>2647310</value>
  <shrsOrPrnAmt>
    <sshPrnamt>35964</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>21860</Sole>
    <Shared>0</Shared>
    <None>14104</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Ollies Bargain Outlet Holdings</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>681116109</cusip>
  <value>4767273</value>
  <shrsOrPrnAmt>
    <sshPrnamt>36176</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>18595</Sole>
    <Shared>0</Shared>
    <None>17581</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Omnicell </nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>68213N109</cusip>
  <value>1163446</value>
  <shrsOrPrnAmt>
    <sshPrnamt>39573</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>20349</Sole>
    <Shared>0</Shared>
    <None>19224</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Onespan Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>68287N100</cusip>
  <value>290907</value>
  <shrsOrPrnAmt>
    <sshPrnamt>17430</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>17430</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Onto Innovation Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>683344105</cusip>
  <value>1639709</value>
  <shrsOrPrnAmt>
    <sshPrnamt>16246</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>8376</Sole>
    <Shared>0</Shared>
    <None>7870</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>OSI Systems Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>671044105</cusip>
  <value>7618707</value>
  <shrsOrPrnAmt>
    <sshPrnamt>33882</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>13473</Sole>
    <Shared>0</Shared>
    <None>20409</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Pacira Biosciences Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>695127100</cusip>
  <value>4055185</value>
  <shrsOrPrnAmt>
    <sshPrnamt>169673</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>93239</Sole>
    <Shared>0</Shared>
    <None>76434</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Park Aerospace Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>70014A104</cusip>
  <value>497926</value>
  <shrsOrPrnAmt>
    <sshPrnamt>33712</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>33712</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>PDF Solutions Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>693282105</cusip>
  <value>1790511</value>
  <shrsOrPrnAmt>
    <sshPrnamt>83747</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>48550</Sole>
    <Shared>0</Shared>
    <None>35197</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Pediatrix Medical Group Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>58502B106</cusip>
  <value>2131592</value>
  <shrsOrPrnAmt>
    <sshPrnamt>148543</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>76313</Sole>
    <Shared>0</Shared>
    <None>72230</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Performance Food Group Co</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>71377A103</cusip>
  <value>7376258</value>
  <shrsOrPrnAmt>
    <sshPrnamt>84329</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>36499</Sole>
    <Shared>0</Shared>
    <None>47830</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Photronics Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>719405102</cusip>
  <value>2587637</value>
  <shrsOrPrnAmt>
    <sshPrnamt>137421</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>77856</Sole>
    <Shared>0</Shared>
    <None>59565</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Pjt Partners Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>69343T107</cusip>
  <value>1703728</value>
  <shrsOrPrnAmt>
    <sshPrnamt>10325</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>5310</Sole>
    <Shared>0</Shared>
    <None>5015</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Plexus Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>729132100</cusip>
  <value>2441398</value>
  <shrsOrPrnAmt>
    <sshPrnamt>18043</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>9315</Sole>
    <Shared>0</Shared>
    <None>8728</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Quaker Houghton</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>747316107</cusip>
  <value>1767756</value>
  <shrsOrPrnAmt>
    <sshPrnamt>15792</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>8141</Sole>
    <Shared>0</Shared>
    <None>7651</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Qualys Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>74758T303</cusip>
  <value>2989555</value>
  <shrsOrPrnAmt>
    <sshPrnamt>20925</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10758</Sole>
    <Shared>0</Shared>
    <None>10167</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Quipt Home Medical Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>74880P104</cusip>
  <value>93436</value>
  <shrsOrPrnAmt>
    <sshPrnamt>52199</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>52199</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>RBC Bearings Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>75524B104</cusip>
  <value>7294269</value>
  <shrsOrPrnAmt>
    <sshPrnamt>18956</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>7459</Sole>
    <Shared>0</Shared>
    <None>11497</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Rogers Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>775133101</cusip>
  <value>1994275</value>
  <shrsOrPrnAmt>
    <sshPrnamt>29122</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>15000</Sole>
    <Shared>0</Shared>
    <None>14122</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>RPC Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>749660106</cusip>
  <value>1312934</value>
  <shrsOrPrnAmt>
    <sshPrnamt>277576</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>142725</Sole>
    <Shared>0</Shared>
    <None>134851</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Select Water Solutions Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>81617J301</cusip>
  <value>3273627</value>
  <shrsOrPrnAmt>
    <sshPrnamt>378892</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>219545</Sole>
    <Shared>0</Shared>
    <None>159347</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Shake Shack Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>819047101</cusip>
  <value>3059315</value>
  <shrsOrPrnAmt>
    <sshPrnamt>21759</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>11188</Sole>
    <Shared>0</Shared>
    <None>10571</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Siteone Landscape Supply Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>82982L103</cusip>
  <value>3171168</value>
  <shrsOrPrnAmt>
    <sshPrnamt>26221</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>13501</Sole>
    <Shared>0</Shared>
    <None>12720</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>SPS Communications Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>78463M107</cusip>
  <value>2797194</value>
  <shrsOrPrnAmt>
    <sshPrnamt>20554</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10589</Sole>
    <Shared>0</Shared>
    <None>9965</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Sterling Infrastructure Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>859241101</cusip>
  <value>11692243</value>
  <shrsOrPrnAmt>
    <sshPrnamt>50675</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>19496</Sole>
    <Shared>0</Shared>
    <None>31179</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Supernus Pharmaceuticals Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>868459108</cusip>
  <value>2922944</value>
  <shrsOrPrnAmt>
    <sshPrnamt>92733</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>52690</Sole>
    <Shared>0</Shared>
    <None>40043</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Synaptics Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>87157D109</cusip>
  <value>2228836</value>
  <shrsOrPrnAmt>
    <sshPrnamt>34385</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>17762</Sole>
    <Shared>0</Shared>
    <None>16623</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Texas Roadhouse Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>882681109</cusip>
  <value>1710304</value>
  <shrsOrPrnAmt>
    <sshPrnamt>9126</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>4679</Sole>
    <Shared>0</Shared>
    <None>4447</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Ufp Industries Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>90278Q108</cusip>
  <value>5377959</value>
  <shrsOrPrnAmt>
    <sshPrnamt>54126</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>21520</Sole>
    <Shared>0</Shared>
    <None>32606</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>UFP Technologies Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>902673102</cusip>
  <value>6447289</value>
  <shrsOrPrnAmt>
    <sshPrnamt>26406</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10333</Sole>
    <Shared>0</Shared>
    <None>16073</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Ultra Clean Holdings Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>90385V107</cusip>
  <value>1853358</value>
  <shrsOrPrnAmt>
    <sshPrnamt>82116</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>42328</Sole>
    <Shared>0</Shared>
    <None>39788</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>US Physical Therapy</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>90337L108</cusip>
  <value>3909218</value>
  <shrsOrPrnAmt>
    <sshPrnamt>49990</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>27891</Sole>
    <Shared>0</Shared>
    <None>22099</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Utah Med Prods Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>917488108</cusip>
  <value>283689</value>
  <shrsOrPrnAmt>
    <sshPrnamt>4984</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>4984</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Vishay Precision Group Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>92835K103</cusip>
  <value>2540746</value>
  <shrsOrPrnAmt>
    <sshPrnamt>90418</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>56641</Sole>
    <Shared>0</Shared>
    <None>33777</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Wd 40 Co</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>929236107</cusip>
  <value>2161837</value>
  <shrsOrPrnAmt>
    <sshPrnamt>9478</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>4878</Sole>
    <Shared>0</Shared>
    <None>4600</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>WesBanco Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>950810101</cusip>
  <value>3086803</value>
  <shrsOrPrnAmt>
    <sshPrnamt>97591</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>50211</Sole>
    <Shared>0</Shared>
    <None>47380</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Yeti Holdings Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>98585X104</cusip>
  <value>2634095</value>
  <shrsOrPrnAmt>
    <sshPrnamt>83569</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>43025</Sole>
    <Shared>0</Shared>
    <None>40544</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Ziff Davis Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>48123V102</cusip>
  <value>1527636</value>
  <shrsOrPrnAmt>
    <sshPrnamt>50467</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>25957</Sole>
    <Shared>0</Shared>
    <None>24510</None>
  </votingAuthority>
</infoTable>
</informationTable>
