phhprpprprrptpptsttsppspslpslsslsplspsspscpcphspspprrrrpspptptsssptptrssssslppsssspplcscsprpplsrcpppptstpppprlllpppppsscphtplssrscsphpstsrpslpspstlsppslsrhsppslsspslcsrsphsplspsphctthpspppplscsprplssl