anchor.diff:        });
       });
     }
  +
     void _startResponseFile(hetima.HetiSocket socket, hetima.HetimaFile file) {
       hetima.ArrayBuilder response = new hetima.ArrayBuilder();
       file.getLength().then((int length) {
  
positive.code:     int start = index;
      responseTask() {
        int end = start + 256 * 1024;
        if (end > (index+length)) {
          end = (index+length);
        }
        print("####### ${start} ${end}");
        file.read(start, end).then((hetima.ReadResult readResult) {
          return socket.send(readResult.buffer);
        }).then((hetima.HetiSendInfo i) {
          if (end >= (index+length)) {
            socket.close();
          } else {
            start = end;
  
negative.code:         }
        }).catchError((e) {
          socket.close();
        }).catchError((e){
          
        });
      }
      responseTask();
  