anchor.diff:    /// The carry-over from the previous chunk.
     String _carry;
   
  -  _LogItemSink(this._sink);
  +  /// `true` if non-sequential message blocks should be tolerated
  +  /// or `false` if an exception should be thrown.
  +  /// If `true` then [hasNonSequentialMsgs] will be set `true`
  +  /// if a non sequential block is found.
  +  bool allowNonSequentialMsgs;
  +
  +  /// `true` if [allowNonSequentialMsgs] is `true`
  +  /// and a non sequential block is found.
  +  bool hasNonSequentialMsgs = false;
  +
  +  _LogItemSink(this._sink, this.allowNonSequentialMsgs);
   
     @override
     void addSlice(String chunk, int start, int end, bool isLast) {
  
positive.code:     int nextMsgN = dataMap["msgN"];
      if (lastMsgN != null) {
        if (nextMsgN != lastMsgN + 1) {
          throw "Non-sequential MsgN in file: $lastMsgN, $nextMsgN";
        }
      }
      lastMsgN = nextMsgN;
  
negative.code:     if (sink is! StringConversionSink) {
        sink = new StringConversionSink.from(sink);
      }
      return new _LogItemSink(sink, allowNonSequentialMsgs);
    }
  }
  
  