anchor.diff:      Map<int, Image> fontPages = {0: page};
   
       XmlDocument doc;
  -
  -    if (fnt.startsWith('<font>')) {
  +    fnt = fnt.trimLeft();
  +
  +    if (fnt.startsWith('<?xml') || fnt.startsWith('<font>')) {
         doc = parse(fnt);
         if (doc == null) {
           throw ImageException('Invalid font XML');
  
positive.code:       n.children.whereType<XmlElement>();
  
    void _parseFnt(XmlDocument xml, Map<int, Image> fontPages, [Archive arc]) {
      if (xml.children.length != 1) {
        throw ImageException('Invalid font XML');
      }
  
      var font = xml.children[0];
  
      for (var c in _childElements(font)) {
        String name = c.name.toString();
  
negative.code:       throw ImageException('Invalid font archive');
      }
  
      /// Remove leading whitespace so xml detection is correct
      String font_str = String.fromCharCodes(font_file.content as List<int>).trimLeft();
      XmlDocument xml;
  
      /// Added <?xml which may be present, appropriately
      if (font_str.startsWith('<?xml') || font_str.startsWith('<font>')) {
        xml = parse(font_str);
        if (xml == null) {
          throw ImageException('Invalid font XML');
  