anchor.diff:    }
   }
   
  +abstract class VectorGraphicsController {
  +  const VectorGraphicsController();
  +
  +  Future<ui.Picture> load();
  +
  +  bool equivalent(VectorGraphicsController other) => false;
  +}
  +
  +class VectorGraphicsAssetController extends VectorGraphicsController {
  +  const VectorGraphicsAssetController({
  +    required this.assetName,
  +    this.packageName,
  +    required this.assetBundle,
  +  });
  +
  +  final String assetName;
  +  final String? packageName;
  +  final AssetBundle assetBundle;
  +
  +  @override
  +  bool equivalent(VectorGraphicsController other) {
  +    return other is VectorGraphicsAssetController &&
  +      other.assetName == assetName &&
  +      other.packageName == packageName &&
  +      other.assetBundle == assetBundle;
  +  }
  +
  +  @override
  +  Future<ui.Picture> load() {
  +    return assetBundle.load(assetName).then((ByteData data) {
  +      final FlutterVectorGraphicsListener listener =
  +          FlutterVectorGraphicsListener();
  +      _codec.decode(data, listener);
  +      return listener.toPicture();
  +    });
  +  }
  +}
  +
   class _RawVectorGraphicsWidget extends SingleChildRenderObjectWidget {
  -  const _RawVectorGraphicsWidget({Key? key, required this.picture}) : super(key: key);
  +  const _RawVectorGraphicsWidget({Key? key, required this.picture})
  +      : super(key: key);
   
     final ui.Picture picture;
   
  
positive.code:   }
  
    @override
    void didUpdateWidget(covariant VectorGraphicsWidget oldWidget) {
      if (oldWidget.assetName != widget.assetName) {
        _loadAssetBytes();
      }
      super.didUpdateWidget(oldWidget);
  
negative.code:   }
  
    @override
    void updateRenderObject(
        BuildContext context, covariant _RenderVectorGraphics renderObject) {
      renderObject.picture = picture;
    }
  }
  