def revealed_attrs(proof: dict) -> dict:
rv = {}<EOL>for sub_index in range(len(proof['<STR_LIT>'])):<EOL><INDENT>cd_id = proof['<STR_LIT>'][sub_index]['<STR_LIT>']<EOL>rv[cd_id] = {<EOL>attr: decode(proof['<STR_LIT>']['<STR_LIT>'][sub_index]['<STR_LIT>']['<STR_LIT>']['<STR_LIT>'][attr])<EOL>for attr in proof['<STR_LIT>']['<STR_LIT>'][sub_index]['<STR_LIT>']['<STR_LIT>']['<STR_LIT>']<EOL>}<EOL><DEDENT>return rv<EOL>
Fetch revealed attributes from input proof and return dict mapping credential definition identifiers
to dicts, each dict mapping attribute names to (decoded) values, for processing in further creds downstream.

:param: indy-sdk proof as dict
:return: dict mapping cred-ids to dicts, each mapping revealed attribute names to (decoded) values