def tracers(tracersfile):
if not tracersfile.is_file():<EOL><INDENT>return None<EOL><DEDENT>tra = {}<EOL>with tracersfile.open('<STR_LIT:rb>') as fid:<EOL><INDENT>readbin = partial(_readbin, fid)<EOL>magic = readbin()<EOL>if magic > <NUM_LIT>:  <EOL><INDENT>magic -= <NUM_LIT><EOL>readbin()<EOL>readbin = partial(readbin, file64=True)<EOL><DEDENT>if magic < <NUM_LIT:100>:<EOL><INDENT>raise ParsingError(tracersfile,<EOL>'<STR_LIT>')<EOL><DEDENT>nblk = magic % <NUM_LIT:100><EOL>readbin('<STR_LIT:f>', <NUM_LIT:2>)  <EOL>readbin()  <EOL>readbin('<STR_LIT:f>')  <EOL>ninfo = readbin()<EOL>ntra = readbin(nwords=nblk, unpack=False)<EOL>readbin('<STR_LIT:f>')  <EOL>curv = readbin()<EOL>if curv:<EOL><INDENT>readbin('<STR_LIT:f>')  <EOL><DEDENT>infos = []  <EOL>for _ in range(ninfo):<EOL><INDENT>infos.append(b'<STR_LIT>'.join(readbin('<STR_LIT:b>', <NUM_LIT:16>)).strip().decode())<EOL>tra[infos[-<NUM_LIT:1>]] = []<EOL><DEDENT>if magic > <NUM_LIT:200>:<EOL><INDENT>ntrace_elt = readbin()<EOL>if ntrace_elt > <NUM_LIT:0>:<EOL><INDENT>readbin('<STR_LIT:f>', ntrace_elt)  <EOL><DEDENT><DEDENT>for ntrab in ntra:  <EOL><INDENT>data = readbin('<STR_LIT:f>', ntrab * ninfo)<EOL>for idx, info in enumerate(infos):<EOL><INDENT>tra[info].append(data[idx::ninfo])<EOL><DEDENT><DEDENT><DEDENT>return tra<EOL>
Extract tracers data.

    Args:
        tracersfile (:class:`pathlib.Path`): path of the binary tracers file.

    Returns:
        dict of list of numpy.array:
            Tracers data organized by attribute and block.