def reassemble(protocol, strict=False):
if isinstance(protocol, type) and issubclass(protocol, Protocol):<EOL><INDENT>protocol = protocol.__index__()<EOL><DEDENT>str_check(protocol)<EOL>bool_check(strict)<EOL>if protocol == '<STR_LIT>':<EOL><INDENT>return IPv4_Reassembly(strict=strict)<EOL><DEDENT>elif protocol == '<STR_LIT>':<EOL><INDENT>return IPv6_Reassembly(strict=strict)<EOL><DEDENT>elif protocol == '<STR_LIT>':<EOL><INDENT>return TCP_Reassembly(strict=strict)<EOL><DEDENT>else:<EOL><INDENT>raise FormatError(f'<STR_LIT>')<EOL><DEDENT>
Reassemble fragmented datagrams.

    Keyword arguments:
        * protocol -- str, protocol to be reassembled
        * strict -- bool, if return all datagrams (including those not implemented) when submit (default is False)
                        <keyword> True / False

    Returns:
        * [if protocol is IPv4] IPv4_Reassembly -- a Reassembly object from `pcapkit.reassembly`
        * [if protocol is IPv6] IPv6_Reassembly -- a Reassembly object from `pcapkit.reassembly`
        * [if protocol is TCP] TCP_Reassembly -- a Reassembly object from `pcapkit.reassembly`