binpow + cpp tpl change