<s> def _table ( n ) : <EOL> return [ x << n for x in [ <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ] <EOL> ltab = [ _table ( i ) for i in range ( <NUM_LIT:7> , - <NUM_LIT:1> , - <NUM_LIT:1> ) ] <EOL> def rotate ( src ) : <EOL> """<STR_LIT>""" <EOL> assert len ( src ) == <NUM_LIT:8> <EOL> low = <NUM_LIT:0> <EOL> hi = <NUM_LIT:0> <EOL> for i in range ( <NUM_LIT:8> ) : <EOL> value = src [ i ] <EOL> assert <NUM_LIT:0> <= value < <NUM_LIT> , '<STR_LIT>' . format ( i , value ) <EOL> low |= ltab [ i ] [ value & <NUM_LIT> ] <EOL> hi |= ltab [ i ] [ value >> <NUM_LIT:4> ] <EOL> return [ int ( val >> i & <NUM_LIT> ) for val in [ low , hi ] for i in [ <NUM_LIT:0> , <NUM_LIT:8> , <NUM_LIT:16> , <NUM_LIT> ] ] </s>
