anchor.diff:  List<int> encodeGifAnimation(Animation anim) {
     return new GifEncoder().encodeAnimation(anim);
   }
  +
  +/**
  + * Decode a TIFF formatted image.
  + */
  +Image decodeTiff(List<int> bytes) {
  +  return new TiffDecoder().decodeImage(bytes);
  +}
  +
  +/**
  + * Decode an multi-image (animated) TIFF file.  If the tiff doesn't have
  + * multiple images, the animation will contain a single frame with the tiff's
  + * image.
  + */
  +Animation decodeTiffAnimation(List<int> bytes) {
  +  return new TiffDecoder().decodeAnimation(bytes);
  +}
  
positive.code:   if (n.endsWith('.gif')) {
      return new GifDecoder();
    }
    return null;
  }
  
  
negative.code:     return webp;
    }
  
    TiffDecoder tiff = new TiffDecoder();
    if (tiff.isValidFile(bytes)) {
      return tiff;
    }
  
    return null;
  }
  
  