anchor.diff:          }
           if (data is Uint8List) {
             for (int i = 0; i < data.length; i++) {
  -            list[i] = data[i] ^ maskBytes[i % 4];
  +            list[i] = data[i] ^ maskBytes[i & 3];
             }
           } else {
             for (int i = 0; i < data.length; i++) {
  
positive.code: 
      Random random = new Random();
      // Generate 16 random bytes.
      List<int> nonceData = new List<int>(16);
      for (int i = 0; i < 16; i++) {
        nonceData[i] = random.nextInt(256);
      }
  
negative.code:   static const int CLOSED = 5;
    static const int FAILURE = 6;
  
    int _state = START;
    bool _fin = false;
    int _opcode = -1;
    int _len = -1;
    bool _masked = false;
    int _remainingLenBytes = -1;
    int _remainingMaskingKeyBytes = 4;
    int _remainingPayloadBytes = -1;
    int _unmaskingIndex = 0;
    int _currentMessageType = _WebSocketMessageType.NONE;
    int closeCode = WebSocketStatus.NO_STATUS_RECEIVED;
    String closeReason = "";
  
    EventSink _eventSink;
  
    final bool _serverSide;
    final List _maskingBytes = new List(4);
    final BytesBuilder _payload = new BytesBuilder();
  
    _WebSocketProtocolTransformer([this._serverSide = false]);
  
    Stream bind(Stream stream) {
      return new Stream.eventTransformed(
  