code: def _overwrite(self, bs, pos):
          
          assert 0 <= pos < self.len
          if bs is self:
              # Just overwriting with self, so do nothing.
              assert pos == 0
              return
          firstbytepos = (self._offset + pos) // 8
          lastbytepos = (self._offset + pos + bs.len - 1) // 8
          bytepos, bitoffset = divmod(self._offset + pos, 8)
          if firstbytepos == lastbytepos:
              mask = ((1 << bs.len) - 1) << (8 - bs.len - bitoffset)
              self._datastore.setbyte(bytepos, self._datastore.getbyte(bytepos) & (~mask))
              d = offsetcopy(bs._datastore, bitoffset)
              self._datastore.setbyte(bytepos, self._datastore.getbyte(bytepos) | (d.getbyte(0) & mask))
          else:
              # Do first byte
              mask = (1 << (8 - bitoffset)) - 1
              self._datastore.setbyte(bytepos, self._datastore.getbyte(bytepos) & (~mask))
              d = offsetcopy(bs._datastore, bitoffset)
              self._datastore.setbyte(bytepos, self._datastore.getbyte(bytepos) | (d.getbyte(0) & mask))
              # Now do all the full bytes
              self._datastore.setbyteslice(firstbytepos + 1, lastbytepos, d.getbyteslice(1, lastbytepos - firstbytepos))
              # and finally the last byte
              bitsleft = (self._offset + pos + bs.len) % 8
              if not bitsleft:
                  bitsleft = 8
              mask = (1 << (8 - bitsleft)) - 1
              self._datastore.setbyte(lastbytepos, self._datastore.getbyte(lastbytepos) & mask)
              self._datastore.setbyte(lastbytepos,
                                      self._datastore.getbyte(lastbytepos) | (d.getbyte(d.bytelength - 1) & ~mask))
          assert self._assertsanity()
docs: Overwrite with bs at pos.