anchor.diff:  
     void handlePointerUpEvent(PointerUpEvent event) {
       pointerPositions.remove(event.pointer);
  +    usedAndroidPointerIds.remove(pointerProperties[event.pointer].id);
       pointerProperties.remove(event.pointer);
       if (pointerProperties.isEmpty) {
  -      nextPointerId = 0;
         downTimeMillis = null;
       }
     }
  
positive.code:     _pointTransformer = transformer;
    }
  
    int nextPointerId = 0;
    int downTimeMillis;
  
    void handlePointerDownEvent(PointerDownEvent event) {
      if (nextPointerId == 0) {
        downTimeMillis = event.timeStamp.inMilliseconds;
      }
      pointerProperties[event.pointer] = propertiesFor(event, nextPointerId++);
    }
  
    void updatePointerPositions(PointerEvent event) {
  
negative.code:   void handlePointerCancelEvent(PointerCancelEvent event) {
      pointerPositions.clear();
      pointerProperties.clear();
      usedAndroidPointerIds.clear();
      downTimeMillis = null;
    }
  
  