code: def submit(self, buf, *, bufid):
          
          datagram = []           # reassembled datagram
          HDL = buf.pop('hdl')    # hole descriptor list (remove from dict)
  
          # check through every buffer with ACK
          for (ack, buffer) in buf.items():
              # if this buffer is not implemented
              # go through every hole and extract received payload
              if len(HDL) > 2 and self._strflg:
                  data = []
                  start = stop = 0
                  for hole in HDL:
                      stop = hole.first
                      byte = buffer['raw'][start:stop]
                      start = hole.last
                      if byte:    # strip empty payload
                          data.append(byte)
                  byte = buffer['raw'][start:]
                  if byte:    # strip empty payload
                      data.append(byte)
                  if data:    # strip empty buffer
                      packet = Info(
                          NotImplemented=True,
                          id=Info(
                              src=(bufid[0], bufid[2]),
                              dst=(bufid[1], bufid[3]),
                              ack=ack,
                          ),
                          index=tuple(buffer['ind']),
                          payload=tuple(data) or None,
                          packets=tuple(analyse(io.BytesIO(frag), len(frag)) for frag in data),
                      )
                      datagram.append(packet)
              # if this buffer is implemented
              # export payload data & convert into bytes
              else:
                  data = buffer['raw']
                  if data:    # strip empty buffer
                      packet = Info(
                          NotImplemented=False,
                          id=Info(
                              src=(bufid[0], bufid[2]),
                              dst=(bufid[1], bufid[3]),
                              ack=ack,
                          ),
                          index=tuple(buffer['ind']),
                          payload=bytes(data) or None,
                          packets=(analyse(io.BytesIO(data), len(data)),),
                      )
                      datagram.append(packet)
          return datagram
docs: Submit reassembled payload.
  
          Positional arguments:
              * buf -- dict, buffer dict of reassembled packets
  
          Keyword arguments:
              * bufid -- tuple, buffer identifier
  
          Returns:
              * list -- reassembled packets