package Ġio . nova foundation . nova . feature _ staking _ impl . domain . recommend ations Ċ Ċ import Ġio . nova foundation . nova . common . utils . apply Filters Ċ import Ġio . nova foundation . nova . feature _ staking _ api . domain . model . Validator Ċ import Ġio . nova foundation . nova . feature _ staking _ impl . domain . recommend ations . settings . Recommendation Settings Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ class ĠValidator Recommend ator ( val Ġavailable Validators : ĠList < Validator >) Ġ{ ĊĊĠĠĠ Ġsuspend Ġfun Ġrecommendations ( settings : ĠRecommend ation Settings ) Ġ= Ġwith Context ( Dispatch ers . Default ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġall Ġ= Ġavailable Validators . apply Filters ( settings . all Filters ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted With ( settings . sorting ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpost processed Ġ= Ġsettings . post Processors . fold ( all ) Ġ{ Ġacc , Ġpost Processor Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Processor ( acc ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsettings . limit ?. let ( post processed :: take ) Ġ?: Ġpost processed ĊĠĠĠ Ġ} Ċ } Ċ