<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[47733] trunk/src/wp-includes: External Libraries: Update the SimplePie library to the latest version (1.5.5).</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/47733">47733</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/47733","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>desrosj</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2020-05-01 14:24:42 +0000 (Fri, 01 May 2020)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>External Libraries: Update the SimplePie library to the latest version (1.5.5).

This brings SimplePie in sync with the most up to date version, 1.5.5.

This update brings many bug fixes, small enhancements, and PHP compatibility fixes for newer versions of PHP.

For a full list of changes, see https://github.com/simplepie/simplepie/blob/master/CHANGELOG.md<a href="https://core.trac.wordpress.org/ticket/155">#155</a>-may-1-2020.

Props dshanske, slushman, etruel, wpshades, dmenard, desrosj, hareesh-pillai, stevenkword, jrf, Ipstenu, johnbillion.
Fixes <a href="https://core.trac.wordpress.org/ticket/36669">#36669</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcwpincludesSimplePieAuthorphp">trunk/src/wp-includes/SimplePie/Author.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieCacheBasephp">trunk/src/wp-includes/SimplePie/Cache/Base.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieCacheDBphp">trunk/src/wp-includes/SimplePie/Cache/DB.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieCacheFilephp">trunk/src/wp-includes/SimplePie/Cache/File.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieCacheMemcachephp">trunk/src/wp-includes/SimplePie/Cache/Memcache.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieCacheMySQLphp">trunk/src/wp-includes/SimplePie/Cache/MySQL.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieCachephp">trunk/src/wp-includes/SimplePie/Cache.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieCaptionphp">trunk/src/wp-includes/SimplePie/Caption.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieCategoryphp">trunk/src/wp-includes/SimplePie/Category.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieContentTypeSnifferphp">trunk/src/wp-includes/SimplePie/Content/Type/Sniffer.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieCopyrightphp">trunk/src/wp-includes/SimplePie/Copyright.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieCorephp">trunk/src/wp-includes/SimplePie/Core.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieCreditphp">trunk/src/wp-includes/SimplePie/Credit.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieDecodeHTMLEntitiesphp">trunk/src/wp-includes/SimplePie/Decode/HTML/Entities.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieEnclosurephp">trunk/src/wp-includes/SimplePie/Enclosure.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieExceptionphp">trunk/src/wp-includes/SimplePie/Exception.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieFilephp">trunk/src/wp-includes/SimplePie/File.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieHTTPParserphp">trunk/src/wp-includes/SimplePie/HTTP/Parser.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieIRIphp">trunk/src/wp-includes/SimplePie/IRI.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieItemphp">trunk/src/wp-includes/SimplePie/Item.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieLocatorphp">trunk/src/wp-includes/SimplePie/Locator.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieMiscphp">trunk/src/wp-includes/SimplePie/Misc.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieNetIPv6php">trunk/src/wp-includes/SimplePie/Net/IPv6.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieParseDatephp">trunk/src/wp-includes/SimplePie/Parse/Date.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieParserphp">trunk/src/wp-includes/SimplePie/Parser.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieRatingphp">trunk/src/wp-includes/SimplePie/Rating.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieRegistryphp">trunk/src/wp-includes/SimplePie/Registry.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieRestrictionphp">trunk/src/wp-includes/SimplePie/Restriction.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieSanitizephp">trunk/src/wp-includes/SimplePie/Sanitize.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieSourcephp">trunk/src/wp-includes/SimplePie/Source.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieXMLDeclarationParserphp">trunk/src/wp-includes/SimplePie/XML/Declaration/Parser.php</a></li>
<li><a href="#trunksrcwpincludesSimplePiegzdecodephp">trunk/src/wp-includes/SimplePie/gzdecode.php</a></li>
<li><a href="#trunksrcwpincludesclasssimplepiephp">trunk/src/wp-includes/class-simplepie.php</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunksrcwpincludesSimplePieCacheMemcachedphp">trunk/src/wp-includes/SimplePie/Cache/Memcached.php</a></li>
<li><a href="#trunksrcwpincludesSimplePieCacheRedisphp">trunk/src/wp-includes/SimplePie/Cache/Redis.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcwpincludesSimplePieAuthorphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Author.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Author.php        2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Author.php  2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -114,10 +113,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->name;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -131,10 +128,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->link;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -148,10 +143,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->email;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
</del></span></pre></div>
<a id="trunksrcwpincludesSimplePieCacheBasephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Cache/Base.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Cache/Base.php    2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Cache/Base.php      2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span></span></pre></div>
<a id="trunksrcwpincludesSimplePieCacheDBphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Cache/DB.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Cache/DB.php      2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Cache/DB.php        2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span></span></pre></div>
<a id="trunksrcwpincludesSimplePieCacheFilephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Cache/File.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Cache/File.php    2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Cache/File.php      2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -102,7 +101,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function save($data)
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if (file_exists($this->name) && is_writeable($this->name) || file_exists($this->location) && is_writeable($this->location))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if (file_exists($this->name) && is_writable($this->name) || file_exists($this->location) && is_writable($this->location))
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><span class="cx" style="display: block; padding: 0 10px">                        if ($data instanceof SimplePie)
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -136,11 +135,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function mtime()
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if (file_exists($this->name))
-               {
-                       return filemtime($this->name);
-               }
-               return false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         return @filemtime($this->name);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -150,11 +145,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function touch()
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if (file_exists($this->name))
-               {
-                       return touch($this->name);
-               }
-               return false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         return @touch($this->name);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span></span></pre></div>
<a id="trunksrcwpincludesSimplePieCacheMemcachephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Cache/Memcache.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Cache/Memcache.php        2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Cache/Memcache.php  2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -95,10 +94,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                'prefix' => 'simplepie_',
</span><span class="cx" style="display: block; padding: 0 10px">                        ),
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $parsed = SimplePie_Cache::parse_URL($location);
-               $this->options['host'] = empty($parsed['host']) ? $this->options['host'] : $parsed['host'];
-               $this->options['port'] = empty($parsed['port']) ? $this->options['port'] : $parsed['port'];
-               $this->options['extras'] = array_merge($this->options['extras'], $parsed['extras']);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->options = SimplePie_Misc::array_merge_recursive($this->options, SimplePie_Cache::parse_URL($location));
+
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->name = $this->options['extras']['prefix'] . md5("$name:$type");
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $this->cache = new Memcache();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -147,7 +144,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                if ($data !== false)
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        // essentially ignore the mtime because Memcache expires on it's own
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 // essentially ignore the mtime because Memcache expires on its own
</ins><span class="cx" style="display: block; padding: 0 10px">                         return time();
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -165,7 +162,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                if ($data !== false)
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return $this->cache->set($this->name, $data, MEMCACHE_COMPRESSED, (int) $this->duration);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 return $this->cache->set($this->name, $data, MEMCACHE_COMPRESSED, (int) $this->options['extras']['timeout']);
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                return false;
</span></span></pre></div>
<a id="trunksrcwpincludesSimplePieCacheMemcachedphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-includes/SimplePie/Cache/Memcached.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Cache/Memcached.php                               (rev 0)
+++ trunk/src/wp-includes/SimplePie/Cache/Memcached.php 2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,166 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ *     * Redistributions of source code must retain the above copyright notice, this list of
+ *       conditions and the following disclaimer.
+ *
+ *     * Redistributions in binary form must reproduce the above copyright notice, this list
+ *       of conditions and the following disclaimer in the documentation and/or other materials
+ *       provided with the distribution.
+ *
+ *     * Neither the name of the SimplePie Team nor the names of its contributors may be used
+ *       to endorse or promote products derived from this software without specific prior
+ *       written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Sam Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Caches data to memcached
+ *
+ * Registered for URLs with the "memcached" protocol
+ *
+ * For example, `memcached://localhost:11211/?timeout=3600&prefix=sp_` will
+ * connect to memcached on `localhost` on port 11211. All tables will be
+ * prefixed with `sp_` and data will expire after 3600 seconds
+ *
+ * @package    SimplePie
+ * @subpackage Caching
+ * @author     Paul L. McNeely
+ * @uses       Memcached
+ */
+class SimplePie_Cache_Memcached implements SimplePie_Cache_Base
+{
+    /**
+     * Memcached instance
+     * @var Memcached
+     */
+    protected $cache;
+
+    /**
+     * Options
+     * @var array
+     */
+    protected $options;
+
+    /**
+     * Cache name
+     * @var string
+     */
+    protected $name;
+
+    /**
+     * Create a new cache object
+     * @param string $location Location string (from SimplePie::$cache_location)
+     * @param string $name     Unique ID for the cache
+     * @param string $type     Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
+     */
+    public function __construct($location, $name, $type) {
+        $this->options = array(
+            'host'   => '127.0.0.1',
+            'port'   => 11211,
+            'extras' => array(
+                'timeout' => 3600, // one hour
+                'prefix'  => 'simplepie_',
+            ),
+        );
+        $this->options = SimplePie_Misc::array_merge_recursive($this->options, SimplePie_Cache::parse_URL($location));
+
+        $this->name = $this->options['extras']['prefix'] . md5("$name:$type");
+
+        $this->cache = new Memcached();
+        $this->cache->addServer($this->options['host'], (int)$this->options['port']);
+    }
+
+    /**
+     * Save data to the cache
+     * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
+     * @return bool Successfulness
+     */
+    public function save($data) {
+        if ($data instanceof SimplePie) {
+            $data = $data->data;
+        }
+
+        return $this->setData(serialize($data));
+    }
+
+    /**
+     * Retrieve the data saved to the cache
+     * @return array Data for SimplePie::$data
+     */
+    public function load() {
+        $data = $this->cache->get($this->name);
+
+        if ($data !== false) {
+            return unserialize($data);
+        }
+        return false;
+    }
+
+    /**
+     * Retrieve the last modified time for the cache
+     * @return int Timestamp
+     */
+    public function mtime() {
+        $data = $this->cache->get($this->name . '_mtime');
+        return (int) $data;
+    }
+
+    /**
+     * Set the last modified time to the current time
+     * @return bool Success status
+     */
+    public function touch() {
+        $data = $this->cache->get($this->name);
+        return $this->setData($data);
+    }
+
+    /**
+     * Remove the cache
+     * @return bool Success status
+     */
+    public function unlink() {
+        return $this->cache->delete($this->name, 0);
+    }
+
+    /**
+     * Set the last modified time and data to Memcached
+     * @return bool Success status
+     */
+    private function setData($data) {
+
+        if ($data !== false) {
+            $this->cache->set($this->name . '_mtime', time(), (int)$this->options['extras']['timeout']);
+            return $this->cache->set($this->name, $data, (int)$this->options['extras']['timeout']);
+        }
+
+        return false;
+    }
+}
</ins><span class="cx" style="display: block; padding: 0 10px">Property changes on: trunk/src/wp-includes/SimplePie/Cache/Memcached.php
</span><span class="cx" style="display: block; padding: 0 10px">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: svn:eol-style</h4></div>
<ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+native
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of property
</span><a id="svnexecutable"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: svn:executable</h4></div>
<ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+*
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of property
</span><a id="trunksrcwpincludesSimplePieCacheMySQLphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Cache/MySQL.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Cache/MySQL.php   2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Cache/MySQL.php     2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -94,10 +93,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        'path' => '',
</span><span class="cx" style="display: block; padding: 0 10px">                        'extras' => array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'prefix' => '',
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                'cache_purge_time' => 2592000
</ins><span class="cx" style="display: block; padding: 0 10px">                         ),
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->options = array_merge_recursive($this->options, SimplePie_Cache::parse_URL($location));
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                $this->options = SimplePie_Misc::array_merge_recursive($this->options, SimplePie_Cache::parse_URL($location));
+
</ins><span class="cx" style="display: block; padding: 0 10px">                 // Path is prefixed with a "/"
</span><span class="cx" style="display: block; padding: 0 10px">                $this->options['dbname'] = substr($this->options['path'], 1);
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -130,16 +131,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        $query = $this->mysql->exec('CREATE TABLE `' . $this->options['extras']['prefix'] . 'cache_data` (`id` TEXT CHARACTER SET utf8 NOT NULL, `items` SMALLINT NOT NULL DEFAULT 0, `data` BLOB NOT NULL, `mtime` INT UNSIGNED NOT NULL, UNIQUE (`id`(125)))');
</span><span class="cx" style="display: block; padding: 0 10px">                        if ($query === false)
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                trigger_error("Can't create " . $this->options['extras']['prefix'] . "cache_data table, check permissions", E_USER_WARNING);
</ins><span class="cx" style="display: block; padding: 0 10px">                                 $this->mysql = null;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                return;
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                if (!in_array($this->options['extras']['prefix'] . 'items', $db))
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $query = $this->mysql->exec('CREATE TABLE `' . $this->options['extras']['prefix'] . 'items` (`feed_id` TEXT CHARACTER SET utf8 NOT NULL, `id` TEXT CHARACTER SET utf8 NOT NULL, `data` TEXT CHARACTER SET utf8 NOT NULL, `posted` INT UNSIGNED NOT NULL, INDEX `feed_id` (`feed_id`(125)))');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $query = $this->mysql->exec('CREATE TABLE `' . $this->options['extras']['prefix'] . 'items` (`feed_id` TEXT CHARACTER SET utf8 NOT NULL, `id` TEXT CHARACTER SET utf8 NOT NULL, `data` MEDIUMBLOB NOT NULL, `posted` INT UNSIGNED NOT NULL, INDEX `feed_id` (`feed_id`(125)))');
</ins><span class="cx" style="display: block; padding: 0 10px">                         if ($query === false)
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                trigger_error("Can't create " . $this->options['extras']['prefix'] . "items table, check permissions", E_USER_WARNING);
</ins><span class="cx" style="display: block; padding: 0 10px">                                 $this->mysql = null;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                return;
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -157,6 +162,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        return false;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                $query = $this->mysql->prepare('DELETE i, cd FROM `' . $this->options['extras']['prefix'] . 'cache_data` cd, ' .
+                       '`' . $this->options['extras']['prefix'] . 'items` i ' .
+                       'WHERE cd.id = i.feed_id ' .
+                       'AND cd.mtime < (unix_timestamp() - :purge_time)');
+               $query->bindValue(':purge_time', $this->options['extras']['cache_purge_time']);
+
+               if (!$query->execute())
+               {
+                       return false;
+               }
+
</ins><span class="cx" style="display: block; padding: 0 10px">                 if ($data instanceof SimplePie)
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        $data = clone $data;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -379,10 +395,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $time;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return false;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return false;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -400,14 +414,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $query = $this->mysql->prepare('UPDATE `' . $this->options['extras']['prefix'] . 'cache_data` SET `mtime` = :time WHERE `id` = :id');
</span><span class="cx" style="display: block; padding: 0 10px">                $query->bindValue(':time', time());
</span><span class="cx" style="display: block; padding: 0 10px">                $query->bindValue(':id', $this->id);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ($query->execute() && $query->rowCount() > 0)
-               {
-                       return true;
-               }
-               else
-               {
-                       return false;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return $query->execute() && $query->rowCount() > 0;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -426,13 +434,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $query->bindValue(':id', $this->id);
</span><span class="cx" style="display: block; padding: 0 10px">                $query2 = $this->mysql->prepare('DELETE FROM `' . $this->options['extras']['prefix'] . 'items` WHERE `feed_id` = :id');
</span><span class="cx" style="display: block; padding: 0 10px">                $query2->bindValue(':id', $this->id);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ($query->execute() && $query2->execute())
-               {
-                       return true;
-               }
-               else
-               {
-                       return false;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return $query->execute() && $query2->execute();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span></span></pre></div>
<a id="trunksrcwpincludesSimplePieCacheRedisphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-includes/SimplePie/Cache/Redis.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Cache/Redis.php                           (rev 0)
+++ trunk/src/wp-includes/SimplePie/Cache/Redis.php     2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,172 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+/**
+ * SimplePie Redis Cache Extension
+ *
+ * @package SimplePie
+ * @author Jan Kozak <galvani78@gmail.com>
+ * @link http://galvani.cz/
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ * @version 0.2.9
+ */
+
+
+/**
+ * Caches data to redis
+ *
+ * Registered for URLs with the "redis" protocol
+ *
+ * For example, `redis://localhost:6379/?timeout=3600&prefix=sp_&dbIndex=0` will
+ * connect to redis on `localhost` on port 6379. All tables will be
+ * prefixed with `simple_primary-` and data will expire after 3600 seconds
+ *
+ * @package SimplePie
+ * @subpackage Caching
+ * @uses Redis
+ */
+class SimplePie_Cache_Redis implements SimplePie_Cache_Base {
+    /**
+     * Redis instance
+     *
+     * @var \Redis
+     */
+    protected $cache;
+
+    /**
+     * Options
+     *
+     * @var array
+     */
+    protected $options;
+
+    /**
+     * Cache name
+     *
+     * @var string
+     */
+    protected $name;
+
+    /**
+     * Cache Data
+     *
+     * @var type
+     */
+    protected $data;
+
+    /**
+     * Create a new cache object
+     *
+     * @param string $location Location string (from SimplePie::$cache_location)
+     * @param string $name Unique ID for the cache
+     * @param string $type Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
+     */
+    public function __construct($location, $name, $options = null) {
+        //$this->cache = \flow\simple\cache\Redis::getRedisClientInstance();
+        $parsed = SimplePie_Cache::parse_URL($location);
+        $redis = new Redis();
+        $redis->connect($parsed['host'], $parsed['port']);
+        if (isset($parsed['pass'])) {
+            $redis->auth($parsed['pass']);
+        }
+        if (isset($parsed['path'])) {
+            $redis->select((int)substr($parsed['path'], 1));
+        }
+        $this->cache = $redis;
+
+        if (!is_null($options) && is_array($options)) {
+            $this->options = $options;
+        } else {
+            $this->options = array (
+                'prefix' => 'rss:simple_primary:',
+                'expire' => 0,
+            );
+        }
+
+        $this->name = $this->options['prefix'] . $name;
+    }
+
+    /**
+     * @param \Redis $cache
+     */
+    public function setRedisClient(\Redis $cache) {
+        $this->cache = $cache;
+    }
+
+    /**
+     * Save data to the cache
+     *
+     * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
+     * @return bool Successfulness
+     */
+    public function save($data) {
+        if ($data instanceof SimplePie) {
+            $data = $data->data;
+        }
+        $response = $this->cache->set($this->name, serialize($data));
+        if ($this->options['expire']) {
+            $this->cache->expire($this->name, $this->options['expire']);
+        }
+
+        return $response;
+    }
+
+    /**
+     * Retrieve the data saved to the cache
+     *
+     * @return array Data for SimplePie::$data
+     */
+    public function load() {
+        $data = $this->cache->get($this->name);
+
+        if ($data !== false) {
+            return unserialize($data);
+        }
+        return false;
+    }
+
+    /**
+     * Retrieve the last modified time for the cache
+     *
+     * @return int Timestamp
+     */
+    public function mtime() {
+
+        $data = $this->cache->get($this->name);
+
+        if ($data !== false) {
+            return time();
+        }
+
+        return false;
+    }
+
+    /**
+     * Set the last modified time to the current time
+     *
+     * @return bool Success status
+     */
+    public function touch() {
+
+        $data = $this->cache->get($this->name);
+
+        if ($data !== false) {
+            $return = $this->cache->set($this->name, $data);
+            if ($this->options['expire']) {
+                return $this->cache->expire($this->name, $this->ttl);
+            }
+            return $return;
+        }
+
+        return false;
+    }
+
+    /**
+     * Remove the cache
+     *
+     * @return bool Success status
+     */
+    public function unlink() {
+        return $this->cache->set($this->name, null);
+    }
+
+}
</ins><span class="cx" style="display: block; padding: 0 10px">Property changes on: trunk/src/wp-includes/SimplePie/Cache/Redis.php
</span><span class="cx" style="display: block; padding: 0 10px">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: svn:eol-style</h4></div>
<ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+native
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of property
</span><a id="trunksrcwpincludesSimplePieCachephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Cache.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Cache.php 2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Cache.php   2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -62,8 +61,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @var array
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        protected static $handlers = array(
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                'mysql' => 'SimplePie_Cache_MySQL',
-               'memcache' => 'SimplePie_Cache_Memcache',
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         'mysql'     => 'SimplePie_Cache_MySQL',
+               'memcache'  => 'SimplePie_Cache_Memcache',
+               'memcached' => 'SimplePie_Cache_Memcached',
+               'redis'     => 'SimplePie_Cache_Redis'
</ins><span class="cx" style="display: block; padding: 0 10px">         );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span></span></pre></div>
<a id="trunksrcwpincludesSimplePieCaptionphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Caption.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Caption.php       2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Caption.php 2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -132,10 +131,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->endTime;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -150,10 +147,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->lang;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -167,10 +162,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->startTime;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -184,10 +177,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->text;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -201,10 +192,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->type;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
</del></span></pre></div>
<a id="trunksrcwpincludesSimplePieCategoryphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Category.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Category.php      2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Category.php        2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -57,7 +56,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="cx" style="display: block; padding: 0 10px">         * Category identifier
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @var string
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @var string|null
</ins><span class="cx" style="display: block; padding: 0 10px">          * @see get_term
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        var $term;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -65,7 +64,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="cx" style="display: block; padding: 0 10px">         * Categorization scheme identifier
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @var string
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @var string|null
</ins><span class="cx" style="display: block; padding: 0 10px">          * @see get_scheme()
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        var $scheme;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -73,23 +72,36 @@
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="cx" style="display: block; padding: 0 10px">         * Human readable label
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @var string
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @var string|null
</ins><span class="cx" style="display: block; padding: 0 10px">          * @see get_label()
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        var $label;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * Category type
+        * 
+        * category for <category>
+        * subject for <dc:subject>
+        *
+        * @var string|null
+        * @see get_type()
+        */
+       var $type;
+
+       /**
</ins><span class="cx" style="display: block; padding: 0 10px">          * Constructor, used to input the data
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param string $term
-        * @param string $scheme
-        * @param string $label
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param string|null $term
+        * @param string|null $scheme
+        * @param string|null $label
+        * @param string|null $type
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function __construct($term = null, $scheme = null, $label = null)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function __construct($term = null, $scheme = null, $label = null, $type = null)
</ins><span class="cx" style="display: block; padding: 0 10px">         {
</span><span class="cx" style="display: block; padding: 0 10px">                $this->term = $term;
</span><span class="cx" style="display: block; padding: 0 10px">                $this->scheme = $scheme;
</span><span class="cx" style="display: block; padding: 0 10px">                $this->label = $label;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                $this->type = $type;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -110,14 +122,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_term()
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ($this->term !== null)
-               {
-                       return $this->term;
-               }
-               else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         return $this->term;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -127,31 +132,32 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_scheme()
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ($this->scheme !== null)
-               {
-                       return $this->scheme;
-               }
-               else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         return $this->scheme;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="cx" style="display: block; padding: 0 10px">         * Get the human readable label
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * @param bool $strict
</ins><span class="cx" style="display: block; padding: 0 10px">          * @return string|null
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function get_label()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function get_label($strict = false)
</ins><span class="cx" style="display: block; padding: 0 10px">         {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ($this->label !== null)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ($this->label === null && $strict !== true)
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return $this->label;
-               }
-               else
-               {
</del><span class="cx" style="display: block; padding: 0 10px">                         return $this->get_term();
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                return $this->label;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+       /**
+        * Get the category type
+        *
+        * @return string|null
+        */
+       public function get_type()
+       {
+               return $this->type;
+       }
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre></div>
<a id="trunksrcwpincludesSimplePieContentTypeSnifferphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Content/Type/Sniffer.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Content/Type/Sniffer.php  2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Content/Type/Sniffer.php    2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -121,24 +120,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                {
</span><span class="cx" style="display: block; padding: 0 10px">                                        return $return;
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                else
-                               {
-                                       return $official;
-                               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+                               return $official;
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px">                        elseif ($official === 'text/html')
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><span class="cx" style="display: block; padding: 0 10px">                                return $this->feed_or_html();
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        else
-                       {
-                               return $official;
-                       }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+                       return $official;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return $this->unknown();
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return $this->unknown();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -159,10 +152,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return 'application/octect-stream';
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return 'text/plain';
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return 'text/plain';
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -208,10 +199,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return 'image/vnd.microsoft.icon';
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return $this->text_or_binary();
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return $this->text_or_binary();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -242,10 +231,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return 'image/vnd.microsoft.icon';
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return false;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return false;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -256,7 +243,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public function feed_or_html()
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><span class="cx" style="display: block; padding: 0 10px">                $len = strlen($this->file->body);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $pos = strspn($this->file->body, "\x09\x0A\x0D\x20");
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $pos = strspn($this->file->body, "\x09\x0A\x0D\x20\xEF\xBB\xBF");
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                while ($pos < $len)
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -329,4 +316,3 @@
</span><span class="cx" style="display: block; padding: 0 10px">                return 'text/html';
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
</del></span></pre></div>
<a id="trunksrcwpincludesSimplePieCopyrightphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Copyright.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Copyright.php     2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Copyright.php       2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -104,10 +103,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->url;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -121,10 +118,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->label;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
</del></span></pre></div>
<a id="trunksrcwpincludesSimplePieCorephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Core.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Core.php  2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Core.php    2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2009, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span></span></pre></div>
<a id="trunksrcwpincludesSimplePieCreditphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Credit.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Credit.php        2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Credit.php  2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -113,10 +112,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->role;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -130,10 +127,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->scheme;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -147,10 +142,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->name;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
</del></span></pre></div>
<a id="trunksrcwpincludesSimplePieDecodeHTMLEntitiesphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Decode/HTML/Entities.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Decode/HTML/Entities.php  2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Decode/HTML/Entities.php    2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -118,10 +117,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        $this->consumed .= $this->data[$this->position];
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->data[$this->position++];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return false;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return false;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -140,10 +137,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        $this->position += $len;
</span><span class="cx" style="display: block; padding: 0 10px">                        return $data;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return false;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return false;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -169,7 +164,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        case "\x09":
</span><span class="cx" style="display: block; padding: 0 10px">                        case "\x0A":
</span><span class="cx" style="display: block; padding: 0 10px">                        case "\x0B":
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        case "\x0B":
</del><span class="cx" style="display: block; padding: 0 10px">                         case "\x0C":
</span><span class="cx" style="display: block; padding: 0 10px">                        case "\x20":
</span><span class="cx" style="display: block; padding: 0 10px">                        case "\x3C":
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -614,4 +608,3 @@
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
</del></span></pre></div>
<a id="trunksrcwpincludesSimplePieEnclosurephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Enclosure.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Enclosure.php     2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Enclosure.php       2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -283,10 +282,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->bitrate;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -302,10 +299,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $captions[$key];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -319,10 +314,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->captions;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -338,10 +331,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $categories[$key];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -355,10 +346,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->categories;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -372,10 +361,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->channels;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -389,10 +376,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->copyright;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -408,10 +393,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $credits[$key];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -425,10 +408,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->credits;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -442,16 +423,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->description;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="cx" style="display: block; padding: 0 10px">         * Get the duration of the enclosure
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param string $convert Convert seconds into hh:mm:ss
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param bool $convert Convert seconds into hh:mm:ss
</ins><span class="cx" style="display: block; padding: 0 10px">          * @return string|int|null 'hh:mm:ss' string if `$convert` was specified, otherwise integer (or null if none found)
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_duration($convert = false)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -463,15 +442,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                $time = SimplePie_Misc::time_hms($this->duration);
</span><span class="cx" style="display: block; padding: 0 10px">                                return $time;
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        else
-                       {
-                               return $this->duration;
-                       }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+                       return $this->duration;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -485,10 +460,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->expression;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return 'full';
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return 'full';
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -520,10 +493,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->framerate;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -550,10 +521,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $hashes[$key];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -567,10 +536,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->hashes;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -584,10 +551,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->height;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -602,10 +567,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->lang;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -621,10 +584,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $keywords[$key];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -638,10 +599,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->keywords;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -655,10 +614,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->length;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -672,10 +629,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return urldecode($this->link);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -690,10 +645,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->medium;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -708,10 +661,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->player;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -727,10 +678,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $ratings[$key];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -744,10 +693,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->ratings;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -763,10 +710,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $restrictions[$key];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -780,10 +725,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->restrictions;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -797,10 +740,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->samplingrate;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -815,10 +756,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return round($length/1048576, 2);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -834,10 +773,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $thumbnails[$key];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -851,10 +788,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->thumbnails;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -868,10 +803,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->title;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -886,10 +819,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->type;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -903,10 +834,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->width;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -942,7 +871,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * - `height` (integer): The height of the embedded media. Accepts any
</span><span class="cx" style="display: block; padding: 0 10px">         *    numeric pixel value (such as `360`) or `auto`. Defaults to `auto`,
</span><span class="cx" style="display: block; padding: 0 10px">         *    and it is recommended that you use this default.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * - `loop` (boolean): Do you want the media to loop when its done?
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * - `loop` (boolean): Do you want the media to loop when it's done?
</ins><span class="cx" style="display: block; padding: 0 10px">          *    Defaults to `false`.
</span><span class="cx" style="display: block; padding: 0 10px">         * - `mediaplayer` (string): The location of the included
</span><span class="cx" style="display: block; padding: 0 10px">         *    `mediaplayer.swf` file. This allows for the playback of Flash Video
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1366,15 +1295,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><span class="cx" style="display: block; padding: 0 10px">                                return 'mp3';
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        else
-                       {
-                               return null;
-                       }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+                       return null;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return $type;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return $type;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
</del></span></pre></div>
<a id="trunksrcwpincludesSimplePieExceptionphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Exception.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Exception.php     2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Exception.php       2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.4-dev
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span></span></pre></div>
<a id="trunksrcwpincludesSimplePieFilephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/File.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/File.php  2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/File.php    2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -64,16 +63,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">        var $redirects = 0;
</span><span class="cx" style="display: block; padding: 0 10px">        var $error;
</span><span class="cx" style="display: block; padding: 0 10px">        var $method = SIMPLEPIE_FILE_SOURCE_NONE;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var $permanent_url;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function __construct($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function __construct($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false, $curl_options = array())
</ins><span class="cx" style="display: block; padding: 0 10px">         {
</span><span class="cx" style="display: block; padding: 0 10px">                if (class_exists('idna_convert'))
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        $idn = new idna_convert();
</span><span class="cx" style="display: block; padding: 0 10px">                        $parsed = SimplePie_Misc::parse_url($url);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $url = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $url = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], NULL);
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">                $this->url = $url;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                $this->permanent_url = $url;
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->useragent = $useragent;
</span><span class="cx" style="display: block; padding: 0 10px">                if (preg_match('/^http(s)?:\/\//i', $url))
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -102,16 +103,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                curl_setopt($fp, CURLOPT_URL, $url);
</span><span class="cx" style="display: block; padding: 0 10px">                                curl_setopt($fp, CURLOPT_HEADER, 1);
</span><span class="cx" style="display: block; padding: 0 10px">                                curl_setopt($fp, CURLOPT_RETURNTRANSFER, 1);
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                curl_setopt($fp, CURLOPT_FAILONERROR, 1);
</ins><span class="cx" style="display: block; padding: 0 10px">                                 curl_setopt($fp, CURLOPT_TIMEOUT, $timeout);
</span><span class="cx" style="display: block; padding: 0 10px">                                curl_setopt($fp, CURLOPT_CONNECTTIMEOUT, $timeout);
</span><span class="cx" style="display: block; padding: 0 10px">                                curl_setopt($fp, CURLOPT_REFERER, $url);
</span><span class="cx" style="display: block; padding: 0 10px">                                curl_setopt($fp, CURLOPT_USERAGENT, $useragent);
</span><span class="cx" style="display: block; padding: 0 10px">                                curl_setopt($fp, CURLOPT_HTTPHEADER, $headers2);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                if (!ini_get('open_basedir') && !ini_get('safe_mode') && version_compare(SimplePie_Misc::get_curl_version(), '7.15.2', '>='))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         if (!ini_get('open_basedir') && version_compare(SimplePie_Misc::get_curl_version(), '7.15.2', '>='))
</ins><span class="cx" style="display: block; padding: 0 10px">                                 {
</span><span class="cx" style="display: block; padding: 0 10px">                                        curl_setopt($fp, CURLOPT_FOLLOWLOCATION, 1);
</span><span class="cx" style="display: block; padding: 0 10px">                                        curl_setopt($fp, CURLOPT_MAXREDIRS, $redirects);
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                foreach ($curl_options as $curl_param => $curl_value) {
+                                       curl_setopt($fp, $curl_param, $curl_value);
+                               }
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                                $this->headers = curl_exec($fp);
</span><span class="cx" style="display: block; padding: 0 10px">                                if (curl_errno($fp) === 23 || curl_errno($fp) === 61)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -126,21 +131,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><span class="cx" style="display: block; padding: 0 10px">                                else
</span><span class="cx" style="display: block; padding: 0 10px">                                {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        $info = curl_getinfo($fp);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 // Use the updated url provided by curl_getinfo after any redirects.
+                                       if ($info = curl_getinfo($fp)) {
+                                               $this->url = $info['url'];
+                                       }
</ins><span class="cx" style="display: block; padding: 0 10px">                                         curl_close($fp);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        $this->headers = explode("\r\n\r\n", $this->headers, $info['redirect_count'] + 1);
-                                       $this->headers = array_pop($this->headers);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 $this->headers = SimplePie_HTTP_Parser::prepareHeaders($this->headers, $info['redirect_count'] + 1);
</ins><span class="cx" style="display: block; padding: 0 10px">                                         $parser = new SimplePie_HTTP_Parser($this->headers);
</span><span class="cx" style="display: block; padding: 0 10px">                                        if ($parser->parse())
</span><span class="cx" style="display: block; padding: 0 10px">                                        {
</span><span class="cx" style="display: block; padding: 0 10px">                                                $this->headers = $parser->headers;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                                $this->body = $parser->body;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                         $this->body = trim($parser->body);
</ins><span class="cx" style="display: block; padding: 0 10px">                                                 $this->status_code = $parser->status_code;
</span><span class="cx" style="display: block; padding: 0 10px">                                                if ((in_array($this->status_code, array(300, 301, 302, 303, 307)) || $this->status_code > 307 && $this->status_code < 400) && isset($this->headers['location']) && $this->redirects < $redirects)
</span><span class="cx" style="display: block; padding: 0 10px">                                                {
</span><span class="cx" style="display: block; padding: 0 10px">                                                        $this->redirects++;
</span><span class="cx" style="display: block; padding: 0 10px">                                                        $location = SimplePie_Misc::absolutize_url($this->headers['location'], $url);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                                        return $this->__construct($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                                 $previousStatusCode = $this->status_code;
+                                                       $this->__construct($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen);
+                                                       $this->permanent_url = ($previousStatusCode == 301) ? $location : $url;
+                                                       return;
</ins><span class="cx" style="display: block; padding: 0 10px">                                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -222,7 +232,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                                        {
</span><span class="cx" style="display: block; padding: 0 10px">                                                                $this->redirects++;
</span><span class="cx" style="display: block; padding: 0 10px">                                                                $location = SimplePie_Misc::absolutize_url($this->headers['location'], $url);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                                                return $this->__construct($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                                         $previousStatusCode = $this->status_code;
+                                                               $this->__construct($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen);
+                                                               $this->permanent_url = ($previousStatusCode == 301) ? $location : $url;
+                                                               return;
</ins><span class="cx" style="display: block; padding: 0 10px">                                                         }
</span><span class="cx" style="display: block; padding: 0 10px">                                                        if (isset($this->headers['content-encoding']))
</span><span class="cx" style="display: block; padding: 0 10px">                                                        {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -239,7 +252,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                                                                }
</span><span class="cx" style="display: block; padding: 0 10px">                                                                                else
</span><span class="cx" style="display: block; padding: 0 10px">                                                                                {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                                                                        $this->body = $decoder->data;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                                                                 $this->body = trim($decoder->data);
</ins><span class="cx" style="display: block; padding: 0 10px">                                                                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                                                                                break;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -282,7 +295,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                else
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        $this->method = SIMPLEPIE_FILE_SOURCE_LOCAL | SIMPLEPIE_FILE_SOURCE_FILE_GET_CONTENTS;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        if (!$this->body = file_get_contents($url))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 if (empty($url) || !($this->body = trim(file_get_contents($url))))
</ins><span class="cx" style="display: block; padding: 0 10px">                         {
</span><span class="cx" style="display: block; padding: 0 10px">                                $this->error = 'file_get_contents could not read the file';
</span><span class="cx" style="display: block; padding: 0 10px">                                $this->success = false;
</span></span></pre></div>
<a id="trunksrcwpincludesSimplePieHTTPParserphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/HTTP/Parser.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/HTTP/Parser.php   2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/HTTP/Parser.php     2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -156,15 +155,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return true;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       $this->http_version = '';
-                       $this->status_code = '';
-                       $this->reason = '';
-                       $this->headers = array();
-                       $this->body = '';
-                       return false;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               $this->http_version = '';
+               $this->status_code = '';
+               $this->reason = '';
+               $this->headers = array();
+               $this->body = '';
+               return false;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -497,4 +494,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+       /**
+        * Prepare headers (take care of proxies headers)
+        *
+        * @param string  $headers Raw headers
+        * @param integer $count   Redirection count. Default to 1.
+        *
+        * @return string
+        */
+       static public function prepareHeaders($headers, $count = 1)
+       {
+               $data = explode("\r\n\r\n", $headers, $count);
+               $data = array_pop($data);
+               if (false !== stripos($data, "HTTP/1.0 200 Connection established\r\n\r\n")) {
+                       $data = str_ireplace("HTTP/1.0 200 Connection established\r\n\r\n", '', $data);
+               }
+               if (false !== stripos($data, "HTTP/1.1 200 Connection established\r\n\r\n")) {
+                       $data = str_ireplace("HTTP/1.1 200 Connection established\r\n\r\n", '', $data);
+               }
+               return $data;
+       }
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span></span></pre></div>
<a id="trunksrcwpincludesSimplePieIRIphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/IRI.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/IRI.php   2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/IRI.php     2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -47,10 +46,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @subpackage HTTP
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Steve Minutillo
</span><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @copyright 2007-2012 Geoffrey Sneddon, Steve Minutillo, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2007-2012 Sam Sneddon, Steve Minutillo, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> class SimplePie_IRI
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -212,10 +211,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->normalization[$this->scheme][$name];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return $return;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return $return;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -226,14 +223,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function __isset($name)
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if (method_exists($this, 'get_' . $name) || isset($this->$name))
-               {
-                       return true;
-               }
-               else
-               {
-                       return false;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         return method_exists($this, 'get_' . $name) || isset($this->$name);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -260,6 +250,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * Clean up
+        */
+       public function __destruct() {
+           $this->set_iri(null, true);
+           $this->set_path(null, true);
+           $this->set_authority(null, true);
+       }
+
+       /**
</ins><span class="cx" style="display: block; padding: 0 10px">          * Create a new IRI object by resolving a relative IRI
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * Returns false if $base is not absolute, otherwise an IRI.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -348,10 +347,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                $target->scheme_normalization();
</span><span class="cx" style="display: block; padding: 0 10px">                                return $target;
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        else
-                       {
-                               return false;
-                       }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+                       return false;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -388,11 +385,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                        return $match;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       // This can occur when a paragraph is accidentally parsed as a URI
-                       return false;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               // This can occur when a paragraph is accidentally parsed as a URI
+               return false;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -768,25 +763,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function is_valid()
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $isauthority = $this->iuserinfo !== null || $this->ihost !== null || $this->port !== null;
-               if ($this->ipath !== '' &&
-                       (
-                               $isauthority && (
-                                       $this->ipath[0] !== '/' ||
-                                       substr($this->ipath, 0, 2) === '//'
-                               ) ||
-                               (
-                                       $this->scheme === null &&
-                                       !$isauthority &&
-                                       strpos($this->ipath, ':') !== false &&
-                                       (strpos($this->ipath, '/') === false ? true : strpos($this->ipath, ':') < strpos($this->ipath, '/'))
-                               )
-                       )
-               )
-               {
-                       return false;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ($this->ipath === '') return true;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                $isauthority = $this->iuserinfo !== null || $this->ihost !== null ||
+                       $this->port !== null;
+               if ($isauthority && $this->ipath[0] === '/') return true;
+
+               if (!$isauthority && (substr($this->ipath, 0, 2) === '//')) return false;
+
+               // Relative urls cannot have a colon in the first path segment (and the
+               // slashes themselves are not included so skip the first character).
+               if (!$this->scheme && !$isauthority &&
+                   strpos($this->ipath, ':') !== false &&
+                   strpos($this->ipath, '/', 1) !== false &&
+                   strpos($this->ipath, ':') < strpos($this->ipath, '/', 1)) return false;
+
</ins><span class="cx" style="display: block; padding: 0 10px">                 return true;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -797,9 +788,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @param string $iri
</span><span class="cx" style="display: block; padding: 0 10px">         * @return bool
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function set_iri($iri)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function set_iri($iri, $clear_cache = false)
</ins><span class="cx" style="display: block; padding: 0 10px">         {
</span><span class="cx" style="display: block; padding: 0 10px">                static $cache;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                if ($clear_cache)
+               {
+                       $cache = null;
+                       return;
+               }
</ins><span class="cx" style="display: block; padding: 0 10px">                 if (!$cache)
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        $cache = array();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -821,30 +817,28 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                 $return) = $cache[$iri];
</span><span class="cx" style="display: block; padding: 0 10px">                        return $return;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               $parsed = $this->parse_iri((string) $iri);
+               if (!$parsed)
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $parsed = $this->parse_iri((string) $iri);
-                       if (!$parsed)
-                       {
-                               return false;
-                       }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 return false;
+               }
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $return = $this->set_scheme($parsed['scheme'])
-                               && $this->set_authority($parsed['authority'])
-                               && $this->set_path($parsed['path'])
-                               && $this->set_query($parsed['query'])
-                               && $this->set_fragment($parsed['fragment']);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $return = $this->set_scheme($parsed['scheme'])
+                       && $this->set_authority($parsed['authority'])
+                       && $this->set_path($parsed['path'])
+                       && $this->set_query($parsed['query'])
+                       && $this->set_fragment($parsed['fragment']);
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $cache[$iri] = array($this->scheme,
-                                                                $this->iuserinfo,
-                                                                $this->ihost,
-                                                                $this->port,
-                                                                $this->ipath,
-                                                                $this->iquery,
-                                                                $this->ifragment,
-                                                                $return);
-                       return $return;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $cache[$iri] = array($this->scheme,
+                                                        $this->iuserinfo,
+                                                        $this->ihost,
+                                                        $this->port,
+                                                        $this->ipath,
+                                                        $this->iquery,
+                                                        $this->ifragment,
+                                                        $return);
+               return $return;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -879,9 +873,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @param string $authority
</span><span class="cx" style="display: block; padding: 0 10px">         * @return bool
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function set_authority($authority)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function set_authority($authority, $clear_cache = false)
</ins><span class="cx" style="display: block; padding: 0 10px">         {
</span><span class="cx" style="display: block; padding: 0 10px">                static $cache;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                if ($clear_cache)
+               {
+                       $cache = null;
+                       return;
+               }
</ins><span class="cx" style="display: block; padding: 0 10px">                 if (!$cache)
</span><span class="cx" style="display: block; padding: 0 10px">                        $cache = array();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -901,42 +900,40 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        return $return;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               $remaining = $authority;
+               if (($iuserinfo_end = strrpos($remaining, '@')) !== false)
+               {
+                       $iuserinfo = substr($remaining, 0, $iuserinfo_end);
+                       $remaining = substr($remaining, $iuserinfo_end + 1);
+               }
</ins><span class="cx" style="display: block; padding: 0 10px">                 else
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $remaining = $authority;
-                       if (($iuserinfo_end = strrpos($remaining, '@')) !== false)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $iuserinfo = null;
+               }
+               if (($port_start = strpos($remaining, ':', strpos($remaining, ']'))) !== false)
+               {
+                       if (($port = substr($remaining, $port_start + 1)) === false)
</ins><span class="cx" style="display: block; padding: 0 10px">                         {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                $iuserinfo = substr($remaining, 0, $iuserinfo_end);
-                               $remaining = substr($remaining, $iuserinfo_end + 1);
-                       }
-                       else
-                       {
-                               $iuserinfo = null;
-                       }
-                       if (($port_start = strpos($remaining, ':', strpos($remaining, ']'))) !== false)
-                       {
-                               if (($port = substr($remaining, $port_start + 1)) === false)
-                               {
-                                       $port = null;
-                               }
-                               $remaining = substr($remaining, 0, $port_start);
-                       }
-                       else
-                       {
</del><span class="cx" style="display: block; padding: 0 10px">                                 $port = null;
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                        $remaining = substr($remaining, 0, $port_start);
+               }
+               else
+               {
+                       $port = null;
+               }
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $return = $this->set_userinfo($iuserinfo) &&
-                                         $this->set_host($remaining) &&
-                                         $this->set_port($port);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $return = $this->set_userinfo($iuserinfo) &&
+                                 $this->set_host($remaining) &&
+                                 $this->set_port($port);
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $cache[$authority] = array($this->iuserinfo,
-                                                                          $this->ihost,
-                                                                          $this->port,
-                                                                          $return);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $cache[$authority] = array($this->iuserinfo,
+                                                                  $this->ihost,
+                                                                  $this->port,
+                                                                  $return);
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return $return;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         return $return;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1036,11 +1033,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        $this->scheme_normalization();
</span><span class="cx" style="display: block; padding: 0 10px">                        return true;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       $this->port = null;
-                       return false;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               $this->port = null;
+               return false;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1049,9 +1044,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @param string $ipath
</span><span class="cx" style="display: block; padding: 0 10px">         * @return bool
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function set_path($ipath)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function set_path($ipath, $clear_cache = false)
</ins><span class="cx" style="display: block; padding: 0 10px">         {
</span><span class="cx" style="display: block; padding: 0 10px">                static $cache;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                if ($clear_cache)
+               {
+                       $cache = null;
+                       return;
+               }
</ins><span class="cx" style="display: block; padding: 0 10px">                 if (!$cache)
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        $cache = array();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1166,7 +1166,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        $iri .= $this->ipath;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                elseif (!empty($this->normalization[$this->scheme]['ipath']) && $iauthority !== null && $iauthority !== '')
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        elseif (!empty($this->normalization[$this->scheme]['ipath']) && $iauthority !== null && $iauthority !== '')
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><span class="cx" style="display: block; padding: 0 10px">                        $iri .= $this->normalization[$this->scheme]['ipath'];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1210,16 +1210,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><span class="cx" style="display: block; padding: 0 10px">                                $iauthority .= $this->ihost;
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        if ($this->port !== null)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            if ($this->port !== null && $this->port !== 0)
</ins><span class="cx" style="display: block; padding: 0 10px">                         {
</span><span class="cx" style="display: block; padding: 0 10px">                                $iauthority .= ':' . $this->port;
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                        return $iauthority;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1232,7 +1230,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $iauthority = $this->get_iauthority();
</span><span class="cx" style="display: block; padding: 0 10px">                if (is_string($iauthority))
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->to_uri($iauthority);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-                       return $iauthority;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return $iauthority;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span></span></pre></div>
<a id="trunksrcwpincludesSimplePieItemphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Item.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Item.php  2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Item.php    2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -122,7 +121,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function __destruct()
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ((version_compare(PHP_VERSION, '5.3', '<') || !gc_enabled()) && !ini_get('zend.ze1_compatibility_mode'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if (!gc_enabled())
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><span class="cx" style="display: block; padding: 0 10px">                        unset($this->feed);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -148,10 +147,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->data['child'][$namespace][$tag];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -203,14 +200,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * Uses `<atom:id>`, `<guid>`, `<dc:identifier>` or the `about` attribute
</span><span class="cx" style="display: block; padding: 0 10px">         * for RDF. If none of these are supplied (or `$hash` is true), creates an
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * MD5 hash based on the permalink and title. If either of those are not
-        * supplied, creates a hash based on the full feed data.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * MD5 hash based on the permalink, title and content.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since Beta 2
</span><span class="cx" style="display: block; padding: 0 10px">         * @param boolean $hash Should we force using a hash instead of the supplied ID?
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @return string
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param string|false $fn User-supplied function to generate an hash
+        * @return string|null
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function get_id($hash = false)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function get_id($hash = false, $fn = 'md5')
</ins><span class="cx" style="display: block; padding: 0 10px">         {
</span><span class="cx" style="display: block; padding: 0 10px">                if (!$hash)
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -238,23 +235,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><span class="cx" style="display: block; padding: 0 10px">                                return $this->sanitize($this->data['attribs'][SIMPLEPIE_NAMESPACE_RDF]['about'], SIMPLEPIE_CONSTRUCT_TEXT);
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        elseif (($return = $this->get_permalink()) !== null)
-                       {
-                               return $return;
-                       }
-                       elseif (($return = $this->get_title()) !== null)
-                       {
-                               return $return;
-                       }
</del><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ($this->get_permalink() !== null || $this->get_title() !== null)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ($fn === false)
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return md5($this->get_permalink() . $this->get_title());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 return null;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         elseif (!is_callable($fn))
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return md5(serialize($this->data));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 trigger_error('User-supplied function $fn must be callable', E_USER_WARNING);
+                       $fn = 'md5';
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                return call_user_func($fn,
+                      $this->get_permalink().$this->get_title().$this->get_content());
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -322,41 +314,50 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_description($description_only = false)
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'summary'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'summary')) &&
+                   ($return = $this->sanitize($tags[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($tags[0]['attribs'])), $this->get_base($tags[0]))))
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 return $return;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'summary'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'summary')) &&
+                       ($return = $this->sanitize($tags[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($tags[0]['attribs'])), $this->get_base($tags[0]))))
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 return $return;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description')) &&
+                       ($return = $this->sanitize($tags[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($tags[0]))))
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 return $return;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'description'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'description')) &&
+                       ($return = $this->sanitize($tags[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($tags[0]))))
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 return $return;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description')) &&
+                       ($return = $this->sanitize($tags[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)))
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 return $return;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description')) &&
+                       ($return = $this->sanitize($tags[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)))
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 return $return;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary')) &&
+                       ($return = $this->sanitize($tags[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($tags[0]))))
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 return $return;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle')) &&
+                       ($return = $this->sanitize($tags[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)))
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 return $return;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'description'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'description')) &&
+                       ($return = $this->sanitize($tags[0]['data'], SIMPLEPIE_CONSTRUCT_HTML)))
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 return $return;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                elseif (!$description_only)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -363,10 +364,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->get_content(true);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -385,26 +384,51 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_content($content_only = false)
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'content'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'content')) &&
+                   ($return = $this->sanitize($tags[0]['data'], $this->registry->call('Misc', 'atom_10_content_construct_type', array($tags[0]['attribs'])), $this->get_base($tags[0]))))
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_content_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 return $return;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'content'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'content')) &&
+                       ($return = $this->sanitize($tags[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($tags[0]['attribs'])), $this->get_base($tags[0]))))
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 return $return;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10_MODULES_CONTENT, 'encoded'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10_MODULES_CONTENT, 'encoded')) &&
+                       ($return = $this->sanitize($tags[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($tags[0]))))
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 return $return;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">                elseif (!$content_only)
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->get_description(true);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
+       }
+
+       /**
+        * Get the media:thumbnail of the item
+        *
+        * Uses `<media:thumbnail>`
+        *
+        *
+        * @return array|null
+        */
+       public function get_thumbnail()
+       {
+               if (!isset($this->data['thumbnail']))
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return null;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'thumbnail'))
+                       {
+                               $this->data['thumbnail'] = $return[0]['attribs'][''];
+                       }
+                       else
+                       {
+                               $this->data['thumbnail'] = null;
+                       }
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                return $this->data['thumbnail'];
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -421,10 +445,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $categories[$key];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -433,13 +455,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * Uses `<atom:category>`, `<category>` or `<dc:subject>`
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since Beta 3
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @return array|null List of {@see SimplePie_Category} objects
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @return SimplePie_Category[]|null List of {@see SimplePie_Category} objects
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_categories()
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><span class="cx" style="display: block; padding: 0 10px">                $categories = array();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $type = 'category';
+               foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, $type) as $category)
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><span class="cx" style="display: block; padding: 0 10px">                        $term = null;
</span><span class="cx" style="display: block; padding: 0 10px">                        $scheme = null;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -456,9 +479,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><span class="cx" style="display: block; padding: 0 10px">                                $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $categories[] = $this->registry->create('Category', array($term, $scheme, $label));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $categories[] = $this->registry->create('Category', array($term, $scheme, $label, $type));
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'category') as $category)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, $type) as $category)
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><span class="cx" style="display: block; padding: 0 10px">                        // This is really the label, but keep this as the term also for BC.
</span><span class="cx" style="display: block; padding: 0 10px">                        // Label will also work on retrieving because that falls back to term.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -471,15 +494,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><span class="cx" style="display: block; padding: 0 10px">                                $scheme = null;
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $categories[] = $this->registry->create('Category', array($term, $scheme, null));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $categories[] = $this->registry->create('Category', array($term, $scheme, null, $type));
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               $type = 'subject';
+               foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, $type) as $category)
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null, $type));
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, $type) as $category)
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null, $type));
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                if (!empty($categories))
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -486,10 +511,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return array_unique($categories);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -506,10 +529,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $authors[$key];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -526,10 +547,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $contributors[$key];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -538,7 +557,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * Uses `<atom:contributor>`
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 1.1
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @return array|null List of {@see SimplePie_Author} objects
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @return SimplePie_Author[]|null List of {@see SimplePie_Author} objects
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_contributors()
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -592,10 +611,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return array_unique($contributors);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -604,7 +621,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * Uses `<atom:author>`, `<author>`, `<dc:creator>` or `<itunes:author>`
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since Beta 2
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @return array|null List of {@see SimplePie_Author} objects
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @return SimplePie_Author[]|null List of {@see SimplePie_Author} objects
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_authors()
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -682,10 +699,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $authors;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -710,10 +725,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -738,31 +751,31 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><span class="cx" style="display: block; padding: 0 10px">                                $this->data['date']['raw'] = $return[0]['data'];
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'updated'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'pubDate'))
</ins><span class="cx" style="display: block; padding: 0 10px">                         {
</span><span class="cx" style="display: block; padding: 0 10px">                                $this->data['date']['raw'] = $return[0]['data'];
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'issued'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'date'))
</ins><span class="cx" style="display: block; padding: 0 10px">                         {
</span><span class="cx" style="display: block; padding: 0 10px">                                $this->data['date']['raw'] = $return[0]['data'];
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'created'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'date'))
</ins><span class="cx" style="display: block; padding: 0 10px">                         {
</span><span class="cx" style="display: block; padding: 0 10px">                                $this->data['date']['raw'] = $return[0]['data'];
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'modified'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'updated'))
</ins><span class="cx" style="display: block; padding: 0 10px">                         {
</span><span class="cx" style="display: block; padding: 0 10px">                                $this->data['date']['raw'] = $return[0]['data'];
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'pubDate'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'issued'))
</ins><span class="cx" style="display: block; padding: 0 10px">                         {
</span><span class="cx" style="display: block; padding: 0 10px">                                $this->data['date']['raw'] = $return[0]['data'];
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'date'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'created'))
</ins><span class="cx" style="display: block; padding: 0 10px">                         {
</span><span class="cx" style="display: block; padding: 0 10px">                                $this->data['date']['raw'] = $return[0]['data'];
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'date'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'modified'))
</ins><span class="cx" style="display: block; padding: 0 10px">                         {
</span><span class="cx" style="display: block; padding: 0 10px">                                $this->data['date']['raw'] = $return[0]['data'];
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -792,10 +805,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        return date($date_format, $this->data['date']['parsed']);
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -821,7 +832,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        if (!empty($this->data['updated']['raw']))
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><span class="cx" style="display: block; padding: 0 10px">                                $parser = $this->registry->call('Parse_Date', 'get');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                $this->data['updated']['parsed'] = $parser->parse($this->data['date']['raw']);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         $this->data['updated']['parsed'] = $parser->parse($this->data['updated']['raw']);
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px">                        else
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -843,10 +854,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        return date($date_format, $this->data['updated']['parsed']);
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -872,10 +881,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return strftime($date_format, $date);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -936,10 +943,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $enclosure->get_link();
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -953,14 +958,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_link($key = 0, $rel = 'alternate')
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><span class="cx" style="display: block; padding: 0 10px">                $links = $this->get_links($rel);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ($links[$key] !== null)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ($links && $links[$key] !== null)
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $links[$key];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1040,10 +1043,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->data['links'][$rel];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1063,10 +1064,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $enclosures[$key];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1080,8 +1079,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since Beta 2
</span><span class="cx" style="display: block; padding: 0 10px">         * @todo Add support for end-user defined sorting of enclosures by type/handler (so we can prefer the faster-loading FLV over MP4).
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @todo If an element exists at a level, but it's value is empty, we should fall back to the value from the parent (if it exists).
-        * @return array|null List of SimplePie_Enclosure items
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @todo If an element exists at a level, but its value is empty, we should fall back to the value from the parent (if it exists).
+        * @return SimplePie_Enclosure[]|null List of SimplePie_Enclosure items
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_enclosures()
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2658,7 +2657,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                                // PLAYER
</span><span class="cx" style="display: block; padding: 0 10px">                                                if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
</span><span class="cx" style="display: block; padding: 0 10px">                                                {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                                        $player = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                                 if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'])) {
+                                                               $player = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
+                                                       }
</ins><span class="cx" style="display: block; padding: 0 10px">                                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                                                else
</span><span class="cx" style="display: block; padding: 0 10px">                                                {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2733,7 +2734,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                                {
</span><span class="cx" style="display: block; padding: 0 10px">                                                        foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail)
</span><span class="cx" style="display: block; padding: 0 10px">                                                        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                                                $thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                                         if (isset($thumbnail['attribs']['']['url'])) {
+                                                                       $thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
+                                                               }
</ins><span class="cx" style="display: block; padding: 0 10px">                                                         }
</span><span class="cx" style="display: block; padding: 0 10px">                                                        if (is_array($thumbnails))
</span><span class="cx" style="display: block; padding: 0 10px">                                                        {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2789,9 +2792,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        {
</span><span class="cx" style="display: block; padding: 0 10px">                                                $length = ceil($link['attribs']['']['length']);
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                        if (isset($link['attribs']['']['title']))
+                                       {
+                                               $title = $this->sanitize($link['attribs']['']['title'], SIMPLEPIE_CONSTRUCT_TEXT);
+                                       }
+                                       else
+                                       {
+                                               $title = $title_parent;
+                                       }
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                                        // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        $this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 $this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title, $width));
</ins><span class="cx" style="display: block; padding: 0 10px">                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2877,10 +2888,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->data['enclosures'];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2905,10 +2914,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return (float) $match[1];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2937,10 +2944,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return (float) $match[2];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2955,10 +2960,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->registry->create('Source', array($this, $return[0]));
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
</del></span></pre></div>
<a id="trunksrcwpincludesSimplePieLocatorphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Locator.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Locator.php       2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Locator.php 2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -63,14 +62,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">        var $base_location = 0;
</span><span class="cx" style="display: block; padding: 0 10px">        var $checked_feeds = 0;
</span><span class="cx" style="display: block; padding: 0 10px">        var $max_checked_feeds = 10;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        var $force_fsockopen = false;
+       var $curl_options = array();
</ins><span class="cx" style="display: block; padding: 0 10px">         protected $registry;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function __construct(SimplePie_File $file, $timeout = 10, $useragent = null, $max_checked_feeds = 10)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function __construct(SimplePie_File $file, $timeout = 10, $useragent = null, $max_checked_feeds = 10, $force_fsockopen = false, $curl_options = array())
</ins><span class="cx" style="display: block; padding: 0 10px">         {
</span><span class="cx" style="display: block; padding: 0 10px">                $this->file = $file;
</span><span class="cx" style="display: block; padding: 0 10px">                $this->useragent = $useragent;
</span><span class="cx" style="display: block; padding: 0 10px">                $this->timeout = $timeout;
</span><span class="cx" style="display: block; padding: 0 10px">                $this->max_checked_feeds = $max_checked_feeds;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                $this->force_fsockopen = $force_fsockopen;
+               $this->curl_options = $curl_options;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                if (class_exists('DOMDocument'))
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -121,41 +124,42 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        if ($type & SIMPLEPIE_LOCATOR_LOCAL_EXTENSION && $working = $this->extension($this->local))
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                return $working;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         return $working[0];
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        if ($type & SIMPLEPIE_LOCATOR_LOCAL_BODY && $working = $this->body($this->local))
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                return $working;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         return $working[0];
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        if ($type & SIMPLEPIE_LOCATOR_REMOTE_EXTENSION && $working = $this->extension($this->elsewhere))
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                return $working;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         return $working[0];
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        if ($type & SIMPLEPIE_LOCATOR_REMOTE_BODY && $working = $this->body($this->elsewhere))
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                return $working;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         return $working[0];
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">                return null;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function is_feed($file)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function is_feed($file, $check_html = false)
</ins><span class="cx" style="display: block; padding: 0 10px">         {
</span><span class="cx" style="display: block; padding: 0 10px">                if ($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE)
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        $sniffer = $this->registry->create('Content_Type_Sniffer', array($file));
</span><span class="cx" style="display: block; padding: 0 10px">                        $sniffed = $sniffer->get_type();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        if (in_array($sniffed, array('application/rss+xml', 'application/rdf+xml', 'text/rdf', 'application/atom+xml', 'text/xml', 'application/xml')))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $mime_types = array('application/rss+xml', 'application/rdf+xml',
+                                           'text/rdf', 'application/atom+xml', 'text/xml',
+                                           'application/xml', 'application/x-rss+xml');
+                       if ($check_html)
</ins><span class="cx" style="display: block; padding: 0 10px">                         {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                return true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         $mime_types[] = 'text/html';
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        else
-                       {
-                               return false;
-                       }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+                       return in_array($sniffed, $mime_types);
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">                elseif ($file->method & SIMPLEPIE_FILE_SOURCE_LOCAL)
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -204,10 +208,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return array_values($feeds);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        protected function search_elements_by_tag($name, &$done, $feeds)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -226,7 +228,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                        if ($link->hasAttribute('href') && $link->hasAttribute('rel'))
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                $rel = array_unique($this->registry->call('Misc', 'space_seperated_tokens', array(strtolower($link->getAttribute('rel')))));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         $rel = array_unique($this->registry->call('Misc', 'space_separated_tokens', array(strtolower($link->getAttribute('rel')))));
</ins><span class="cx" style="display: block; padding: 0 10px">                                 $line = method_exists($link, 'getLineNo') ? $link->getLineNo() : 1;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                                if ($this->base_location < $line)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -242,14 +244,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        continue;
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                if (!in_array($href, $done) && in_array('feed', $rel) || (in_array('alternate', $rel) && !in_array('stylesheet', $rel) && $link->hasAttribute('type') && in_array(strtolower($this->registry->call('Misc', 'parse_mime', array($link->getAttribute('type')))), array('application/rss+xml', 'application/atom+xml'))) && !isset($feeds[$href]))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         if (!in_array($href, $done) && in_array('feed', $rel) || (in_array('alternate', $rel) && !in_array('stylesheet', $rel) && $link->hasAttribute('type') && in_array(strtolower($this->registry->call('Misc', 'parse_mime', array($link->getAttribute('type')))), array('text/html', 'application/rss+xml', 'application/atom+xml'))) && !isset($feeds[$href]))
</ins><span class="cx" style="display: block; padding: 0 10px">                                 {
</span><span class="cx" style="display: block; padding: 0 10px">                                        $this->checked_feeds++;
</span><span class="cx" style="display: block; padding: 0 10px">                                        $headers = array(
</span><span class="cx" style="display: block; padding: 0 10px">                                                'Accept' => 'application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1',
</span><span class="cx" style="display: block; padding: 0 10px">                                        );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        $feed = $this->registry->create('File', array($href, $this->timeout, 5, $headers, $this->useragent));
-                                       if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 $feed = $this->registry->create('File', array($href, $this->timeout, 5, $headers, $this->useragent, $this->force_fsockopen, $this->curl_options));
+                                       if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed, true))
</ins><span class="cx" style="display: block; padding: 0 10px">                                         {
</span><span class="cx" style="display: block; padding: 0 10px">                                                $feeds[$href] = $feed;
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -275,7 +277,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><span class="cx" style="display: block; padding: 0 10px">                                $href = trim($link->getAttribute('href'));
</span><span class="cx" style="display: block; padding: 0 10px">                                $parsed = $this->registry->call('Misc', 'parse_url', array($href));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                if ($parsed['scheme'] === '' || preg_match('/^(http(s)|feed)?$/i', $parsed['scheme']))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         if ($parsed['scheme'] === '' || preg_match('/^(https?|feed)?$/i', $parsed['scheme']))
</ins><span class="cx" style="display: block; padding: 0 10px">                                 {
</span><span class="cx" style="display: block; padding: 0 10px">                                        if (method_exists($link, 'getLineNo') && $this->base_location < $link->getLineNo())
</span><span class="cx" style="display: block; padding: 0 10px">                                        {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -312,6 +314,57 @@
</span><span class="cx" style="display: block; padding: 0 10px">                return null;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        public function get_rel_link($rel)
+       {
+               if ($this->dom === null)
+               {
+                       throw new SimplePie_Exception('DOMDocument not found, unable to use '.
+                                                     'locator');
+               }
+               if (!class_exists('DOMXpath'))
+               {
+                       throw new SimplePie_Exception('DOMXpath not found, unable to use '.
+                                                     'get_rel_link');
+               }
+
+               $xpath = new DOMXpath($this->dom);
+               $query = '//a[@rel and @href] | //link[@rel and @href]';
+               foreach ($xpath->query($query) as $link)
+               {
+                       $href = trim($link->getAttribute('href'));
+                       $parsed = $this->registry->call('Misc', 'parse_url', array($href));
+                       if ($parsed['scheme'] === '' ||
+                           preg_match('/^https?$/i', $parsed['scheme']))
+                       {
+                               if (method_exists($link, 'getLineNo') &&
+                                   $this->base_location < $link->getLineNo())
+                               {
+                                       $href =
+                                               $this->registry->call('Misc', 'absolutize_url',
+                                                                     array(trim($link->getAttribute('href')),
+                                                                           $this->base));
+                               }
+                               else
+                               {
+                                       $href =
+                                               $this->registry->call('Misc', 'absolutize_url',
+                                                                     array(trim($link->getAttribute('href')),
+                                                                           $this->http_base));
+                               }
+                               if ($href === false)
+                               {
+                                       return null;
+                               }
+                               $rel_values = explode(' ', strtolower($link->getAttribute('rel')));
+                               if (in_array($rel, $rel_values))
+                               {
+                                       return $href;
+                               }
+                       }
+               }
+               return null;
+       }
+
</ins><span class="cx" style="display: block; padding: 0 10px">         public function extension(&$array)
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><span class="cx" style="display: block; padding: 0 10px">                foreach ($array as $key => $value)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -327,10 +380,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                $headers = array(
</span><span class="cx" style="display: block; padding: 0 10px">                                        'Accept' => 'application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1',
</span><span class="cx" style="display: block; padding: 0 10px">                                );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                $feed = $this->registry->create('File', array($value, $this->timeout, 5, $headers, $this->useragent));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         $feed = $this->registry->create('File', array($value, $this->timeout, 5, $headers, $this->useragent, $this->force_fsockopen, $this->curl_options));
</ins><span class="cx" style="display: block; padding: 0 10px">                                 if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed))
</span><span class="cx" style="display: block; padding: 0 10px">                                {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        return $feed;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 return array($feed);
</ins><span class="cx" style="display: block; padding: 0 10px">                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                                else
</span><span class="cx" style="display: block; padding: 0 10px">                                {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -349,16 +402,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><span class="cx" style="display: block; padding: 0 10px">                                break;
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        if (preg_match('/(rss|rdf|atom|xml)/i', $value))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 if (preg_match('/(feed|rss|rdf|atom|xml)/i', $value))
</ins><span class="cx" style="display: block; padding: 0 10px">                         {
</span><span class="cx" style="display: block; padding: 0 10px">                                $this->checked_feeds++;
</span><span class="cx" style="display: block; padding: 0 10px">                                $headers = array(
</span><span class="cx" style="display: block; padding: 0 10px">                                        'Accept' => 'application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1',
</span><span class="cx" style="display: block; padding: 0 10px">                                );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                $feed = $this->registry->create('File', array($value, $this->timeout, 5, null, $this->useragent));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         $feed = $this->registry->create('File', array($value, $this->timeout, 5, null, $this->useragent, $this->force_fsockopen, $this->curl_options));
</ins><span class="cx" style="display: block; padding: 0 10px">                                 if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed))
</span><span class="cx" style="display: block; padding: 0 10px">                                {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        return $feed;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 return array($feed);
</ins><span class="cx" style="display: block; padding: 0 10px">                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                                else
</span><span class="cx" style="display: block; padding: 0 10px">                                {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -369,4 +422,3 @@
</span><span class="cx" style="display: block; padding: 0 10px">                return null;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
</del></span></pre></div>
<a id="trunksrcwpincludesSimplePieMiscphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Misc.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Misc.php  2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Misc.php    2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -138,7 +137,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                foreach ($element['attribs'] as $key => $value)
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        $key = strtolower($key);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $full .= " $key=\"" . htmlspecialchars($value['data']) . '"';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $full .= " $key=\"" . htmlspecialchars($value['data'], ENT_COMPAT, 'UTF-8') . '"';
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">                if ($element['self_closing'])
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -218,10 +217,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return substr_replace($url, 'itpc', 0, 4);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return $url;
+       }
+
+       public static function array_merge_recursive($array1, $array2)
+       {
+               foreach ($array2 as $key => $value)
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return $url;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 if (is_array($value))
+                       {
+                               $array1[$key] = SimplePie_Misc::array_merge_recursive($array1[$key], $value);
+                       }
+                       else
+                       {
+                               $array1[$key] = $value;
+                       }
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return $array1;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public static function parse_url($url)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -260,10 +274,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return chr($integer);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return strtoupper($match[0]);
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return strtoupper($match[0]);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -317,16 +329,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $return;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                // This is last, as behaviour of this varies with OS userland and PHP version
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         // This is third, as behaviour of this varies with OS userland and PHP version
</ins><span class="cx" style="display: block; padding: 0 10px">                 elseif (function_exists('iconv') && ($return = SimplePie_Misc::change_encoding_iconv($data, $input, $output)))
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $return;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                // If we can't do anything, just fail
-               else
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         // This is last, as behaviour of this varies with OS userland and PHP version
+               elseif (class_exists('\UConverter') && ($return = SimplePie_Misc::change_encoding_uconverter($data, $input, $output)))
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 return $return;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               // If we can't do anything, just fail
+               return false;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        protected static function change_encoding_mbstring($data, $input, $output)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -373,6 +388,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * @param string $data
+        * @param string $input
+        * @param string $output
+        * @return string|false
+        */
+       protected static function change_encoding_uconverter($data, $input, $output)
+       {
+               return @\UConverter::transcode($data, $output, $input);
+       }
+
+       /**
</ins><span class="cx" style="display: block; padding: 0 10px">          * Normalize an encoding name
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * This is automatically generated by create.php
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1826,10 +1852,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return trim($mime);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return trim(substr($mime, 0, $pos));
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return trim(substr($mime, 0, $pos));
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public static function atom_03_construct_type($attribs)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1862,10 +1886,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        return SIMPLEPIE_CONSTRUCT_NONE | $mode;
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return SIMPLEPIE_CONSTRUCT_TEXT | $mode;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return SIMPLEPIE_CONSTRUCT_TEXT | $mode;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public static function atom_10_construct_type($attribs)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1915,10 +1937,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                return SIMPLEPIE_CONSTRUCT_BASE64;
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return SIMPLEPIE_CONSTRUCT_TEXT;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return SIMPLEPIE_CONSTRUCT_TEXT;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public static function is_isegment_nz_nc($string)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1926,7 +1946,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                return (bool) preg_match('/^([A-Za-z0-9\-._~\x{A0}-\x{D7FF}\x{F900}-\x{FDCF}\x{FDF0}-\x{FFEF}\x{10000}-\x{1FFFD}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}\x{40000}-\x{4FFFD}\x{50000}-\x{5FFFD}\x{60000}-\x{6FFFD}\x{70000}-\x{7FFFD}\x{80000}-\x{8FFFD}\x{90000}-\x{9FFFD}\x{A0000}-\x{AFFFD}\x{B0000}-\x{BFFFD}\x{C0000}-\x{CFFFD}\x{D0000}-\x{DFFFD}\x{E1000}-\x{EFFFD}!$&\'()*+,;=@]|(%[0-9ABCDEF]{2}))+$/u', $string);
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public static function space_seperated_tokens($string)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public static function space_separated_tokens($string)
</ins><span class="cx" style="display: block; padding: 0 10px">         {
</span><span class="cx" style="display: block; padding: 0 10px">                $space_characters = "\x20\x09\x0A\x0B\x0C\x0D";
</span><span class="cx" style="display: block; padding: 0 10px">                $string_length = strlen($string);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1975,11 +1995,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return chr(0xf0 | ($codepoint >> 18)) . chr(0x80 | (($codepoint >> 12) & 0x3f)) . chr(0x80 | (($codepoint >> 6) & 0x3f)) . chr(0x80 | ($codepoint & 0x3f));
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       // U+FFFD REPLACEMENT CHARACTER
-                       return "\xEF\xBF\xBD";
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               // U+FFFD REPLACEMENT CHARACTER
+               return "\xEF\xBF\xBD";
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2183,10 +2201,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return filemtime(dirname(__FILE__) . '/Core.php');
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return filemtime(__FILE__);
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return filemtime(__FILE__);
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2244,4 +2260,3 @@
</span><span class="cx" style="display: block; padding: 0 10px">                // No-op
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
</del></span></pre></div>
<a id="trunksrcwpincludesSimplePieNetIPv6php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Net/IPv6.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Net/IPv6.php      2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Net/IPv6.php        2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -54,7 +53,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * @author Alexander Merz <alexander.merz@web.de>
</span><span class="cx" style="display: block; padding: 0 10px">  * @author elfrink at introweb dot nl
</span><span class="cx" style="display: block; padding: 0 10px">  * @author Josh Peck <jmp at joshpeck dot org>
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon <geoffers@gmail.com>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon <geoffers@gmail.com>
</ins><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> class SimplePie_Net_IPv6
</span><span class="cx" style="display: block; padding: 0 10px"> {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -174,10 +173,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return implode(':', $ip_parts);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return $ip_parts[0];
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return $ip_parts[0];
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -201,10 +198,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        $ipv4_part = substr($ip, $pos + 1);
</span><span class="cx" style="display: block; padding: 0 10px">                        return array($ipv6_part, $ipv4_part);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return array($ip, '');
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return array($ip, '');
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -254,10 +249,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                        return true;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return false;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return false;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span></span></pre></div>
<a id="trunksrcwpincludesSimplePieParseDatephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Parse/Date.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Parse/Date.php    2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Parse/Date.php      2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -99,12 +98,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">                'dimanche' => 7,
</span><span class="cx" style="display: block; padding: 0 10px">                // German
</span><span class="cx" style="display: block; padding: 0 10px">                'montag' => 1,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                'mo' => 1,
</ins><span class="cx" style="display: block; padding: 0 10px">                 'dienstag' => 2,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                'di' => 2,
</ins><span class="cx" style="display: block; padding: 0 10px">                 'mittwoch' => 3,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                'mi' => 3,
</ins><span class="cx" style="display: block; padding: 0 10px">                 'donnerstag' => 4,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                'do' => 4,
</ins><span class="cx" style="display: block; padding: 0 10px">                 'freitag' => 5,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                'fr' => 5,
</ins><span class="cx" style="display: block; padding: 0 10px">                 'samstag' => 6,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                'sa' => 6,
</ins><span class="cx" style="display: block; padding: 0 10px">                 'sonnabend' => 6,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                // AFAIK no short form for sonnabend
+               'so' => 7,
</ins><span class="cx" style="display: block; padding: 0 10px">                 'sonntag' => 7,
</span><span class="cx" style="display: block; padding: 0 10px">                // Italian
</span><span class="cx" style="display: block; padding: 0 10px">                'lunedì' => 1,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -146,6 +153,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">                'Παρ' => 5,
</span><span class="cx" style="display: block; padding: 0 10px">                'Σαβ' => 6,
</span><span class="cx" style="display: block; padding: 0 10px">                'Κυρ' => 7,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                // Russian
+               'Пн.' => 1,
+               'Вт.' => 2,
+               'Ср.' => 3,
+               'Чт.' => 4,
+               'Пт.' => 5,
+               'Сб.' => 6,
+               'Вс.' => 7,
</ins><span class="cx" style="display: block; padding: 0 10px">         );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -173,7 +188,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                'aug' => 8,
</span><span class="cx" style="display: block; padding: 0 10px">                'august' => 8,
</span><span class="cx" style="display: block; padding: 0 10px">                'sep' => 9,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                'september' => 8,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         'september' => 9,
</ins><span class="cx" style="display: block; padding: 0 10px">                 'oct' => 10,
</span><span class="cx" style="display: block; padding: 0 10px">                'october' => 10,
</span><span class="cx" style="display: block; padding: 0 10px">                'nov' => 11,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -208,17 +223,28 @@
</span><span class="cx" style="display: block; padding: 0 10px">                'décembre' => 12,
</span><span class="cx" style="display: block; padding: 0 10px">                // German
</span><span class="cx" style="display: block; padding: 0 10px">                'januar' => 1,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                'jan' => 1,
</ins><span class="cx" style="display: block; padding: 0 10px">                 'februar' => 2,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                'feb' => 2,
</ins><span class="cx" style="display: block; padding: 0 10px">                 'märz' => 3,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                'mär' => 3,
</ins><span class="cx" style="display: block; padding: 0 10px">                 'april' => 4,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                'mai' => 5,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         'apr' => 4,
+               'mai' => 5, // no short form for may
</ins><span class="cx" style="display: block; padding: 0 10px">                 'juni' => 6,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                'jun' => 6,
</ins><span class="cx" style="display: block; padding: 0 10px">                 'juli' => 7,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                'jul' => 7,
</ins><span class="cx" style="display: block; padding: 0 10px">                 'august' => 8,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                'aug' => 8,
</ins><span class="cx" style="display: block; padding: 0 10px">                 'september' => 9,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                'sep' => 9,
</ins><span class="cx" style="display: block; padding: 0 10px">                 'oktober' => 10,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                'okt' => 10,
</ins><span class="cx" style="display: block; padding: 0 10px">                 'november' => 11,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                'nov' => 11,
</ins><span class="cx" style="display: block; padding: 0 10px">                 'dezember' => 12,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                'dez' => 12,
</ins><span class="cx" style="display: block; padding: 0 10px">                 // Italian
</span><span class="cx" style="display: block; padding: 0 10px">                'gennaio' => 1,
</span><span class="cx" style="display: block; padding: 0 10px">                'febbraio' => 2,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -290,7 +316,33 @@
</span><span class="cx" style="display: block; padding: 0 10px">                'Σεπ' => 9,
</span><span class="cx" style="display: block; padding: 0 10px">                'Οκτ' => 10,
</span><span class="cx" style="display: block; padding: 0 10px">                'Νοέ' => 11,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                'Δεκ' => 12,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         'Δεκ' => 12,              
+               // Russian
+               'Янв' => 1,
+               'января' => 1,
+               'Фев' => 2,
+               'февраля' => 2,
+               'Мар' => 3,
+               'марта' => 3,
+               'Апр' => 4,
+               'апреля' => 4,
+               'Май' => 5,
+               'мая' => 5,
+               'Июн' => 6,
+               'июня' => 6,
+               'Июл' => 7,
+               'июля' => 7,
+               'Авг' => 8,
+               'августа' => 8,
+               'Сен' => 9,
+               'сентября' => 9,
+               'Окт' => 10,
+               'октября' => 10,
+               'Ноя' => 11,
+               'ноября' => 11,
+               'Дек' => 12,
+               'декабря' => 12,
+
</ins><span class="cx" style="display: block; padding: 0 10px">         );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -614,7 +666,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @final
</span><span class="cx" style="display: block; padding: 0 10px">         * @access public
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param callable $callback
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param callback $callback
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        public function add_callback($callback)
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -631,7 +683,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="cx" style="display: block; padding: 0 10px">         * Parse a superset of W3C-DTF (allows hyphens and colons to be omitted, as
</span><span class="cx" style="display: block; padding: 0 10px">         * well as allowing any of upper or lower case "T", horizontal tabs, or
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * spaces to be used as the time seperator (including more than one))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * spaces to be used as the time separator (including more than one))
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @access protected
</span><span class="cx" style="display: block; padding: 0 10px">         * @return int Timestamp
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -691,14 +743,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        // Convert the number of seconds to an integer, taking decimals into account
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $second = round($match[6] + $match[7] / pow(10, strlen($match[7])));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $second = round((int)$match[6] + (int)$match[7] / (10 ** strlen($match[7])));
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        return gmmktime($match[4], $match[5], $second, $match[2], $match[3], $match[1]) - $timezone;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return false;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return false;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -721,7 +771,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        $output .= substr($string, $position, $pos - $position);
</span><span class="cx" style="display: block; padding: 0 10px">                        $position = $pos + 1;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        if ($string[$pos - 1] !== '\\')
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 if ($pos === 0 || $string[$pos - 1] !== '\\')
</ins><span class="cx" style="display: block; padding: 0 10px">                         {
</span><span class="cx" style="display: block; padding: 0 10px">                                $depth++;
</span><span class="cx" style="display: block; padding: 0 10px">                                while ($depth && $position < $length)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -849,10 +899,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        return gmmktime($match[5], $match[6], $second, $month, $match[2], $match[4]) - $timezone;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return false;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return false;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -914,10 +962,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        return gmmktime($match[5], $match[6], $match[7], $month, $match[2], $match[4]) - $timezone;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return false;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return false;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -956,10 +1002,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        $month = $this->month[strtolower($match[2])];
</span><span class="cx" style="display: block; padding: 0 10px">                        return gmmktime($match[4], $match[5], $match[6], $month, $match[3], $match[7]);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return false;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return false;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -975,10 +1019,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return false;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return $strtotime;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return $strtotime;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
</del></span></pre></div>
<a id="trunksrcwpincludesSimplePieParserphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Parser.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Parser.php        2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Parser.php  2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -75,8 +74,22 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $this->registry = $registry;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function parse(&$data, $encoding)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function parse(&$data, $encoding, $url = '')
</ins><span class="cx" style="display: block; padding: 0 10px">         {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                if (class_exists('DOMXpath') && function_exists('Mf2\parse')) {
+                       $doc = new DOMDocument();
+                       @$doc->loadHTML($data);
+                       $xpath = new DOMXpath($doc);
+                       // Check for both h-feed and h-entry, as both a feed with no entries
+                       // and a list of entries without an h-feed wrapper are both valid.
+                       $query = '//*[contains(concat(" ", @class, " "), " h-feed ") or '.
+                               'contains(concat(" ", @class, " "), " h-entry ")]';
+                       $result = $xpath->query($query);
+                       if ($result->length !== 0) {
+                               return $this->parse_microformats($data, $url);
+                       }
+               }
+
</ins><span class="cx" style="display: block; padding: 0 10px">                 // Use UTF-8 if we get passed US-ASCII, as every US-ASCII character is a UTF-8 character
</span><span class="cx" style="display: block; padding: 0 10px">                if (strtoupper($encoding) === 'US-ASCII')
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -120,7 +133,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        if ($declaration->parse())
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><span class="cx" style="display: block; padding: 0 10px">                                $data = substr($data, $pos + 2);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                $data = '<?xml version="' . $declaration->version . '" encoding="' . $encoding . '" standalone="' . (($declaration->standalone) ? 'yes' : 'no') . '"?>' . $data;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         $data = '<?xml version="' . $declaration->version . '" encoding="' . $encoding . '" standalone="' . (($declaration->standalone) ? 'yes' : 'no') . '"?>' ."\n". $this->declare_html_entities() . $data;
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px">                        else
</span><span class="cx" style="display: block; padding: 0 10px">                        {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -163,76 +176,72 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        xml_parser_free($xml);
</span><span class="cx" style="display: block; padding: 0 10px">                        return $return;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               libxml_clear_errors();
+               $xml = new XMLReader();
+               $xml->xml($data);
+               while (@$xml->read())
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        libxml_clear_errors();
-                       $xml = new XMLReader();
-                       $xml->xml($data);
-                       while (@$xml->read())
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 switch ($xml->nodeType)
</ins><span class="cx" style="display: block; padding: 0 10px">                         {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                switch ($xml->nodeType)
-                               {
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        case constant('XMLReader::END_ELEMENT'):
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         case constant('XMLReader::END_ELEMENT'):
+                                       if ($xml->namespaceURI !== '')
+                                       {
+                                               $tagName = $xml->namespaceURI . $this->separator . $xml->localName;
+                                       }
+                                       else
+                                       {
+                                               $tagName = $xml->localName;
+                                       }
+                                       $this->tag_close(null, $tagName);
+                                       break;
+                               case constant('XMLReader::ELEMENT'):
+                                       $empty = $xml->isEmptyElement;
+                                       if ($xml->namespaceURI !== '')
+                                       {
+                                               $tagName = $xml->namespaceURI . $this->separator . $xml->localName;
+                                       }
+                                       else
+                                       {
+                                               $tagName = $xml->localName;
+                                       }
+                                       $attributes = array();
+                                       while ($xml->moveToNextAttribute())
+                                       {
</ins><span class="cx" style="display: block; padding: 0 10px">                                                 if ($xml->namespaceURI !== '')
</span><span class="cx" style="display: block; padding: 0 10px">                                                {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                                        $tagName = $xml->namespaceURI . $this->separator . $xml->localName;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                                 $attrName = $xml->namespaceURI . $this->separator . $xml->localName;
</ins><span class="cx" style="display: block; padding: 0 10px">                                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                                                else
</span><span class="cx" style="display: block; padding: 0 10px">                                                {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                                        $tagName = $xml->localName;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                                 $attrName = $xml->localName;
</ins><span class="cx" style="display: block; padding: 0 10px">                                                 }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                                $attributes[$attrName] = $xml->value;
+                                       }
+                                       $this->tag_open(null, $tagName, $attributes);
+                                       if ($empty)
+                                       {
</ins><span class="cx" style="display: block; padding: 0 10px">                                                 $this->tag_close(null, $tagName);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                                break;
-                                       case constant('XMLReader::ELEMENT'):
-                                               $empty = $xml->isEmptyElement;
-                                               if ($xml->namespaceURI !== '')
-                                               {
-                                                       $tagName = $xml->namespaceURI . $this->separator . $xml->localName;
-                                               }
-                                               else
-                                               {
-                                                       $tagName = $xml->localName;
-                                               }
-                                               $attributes = array();
-                                               while ($xml->moveToNextAttribute())
-                                               {
-                                                       if ($xml->namespaceURI !== '')
-                                                       {
-                                                               $attrName = $xml->namespaceURI . $this->separator . $xml->localName;
-                                                       }
-                                                       else
-                                                       {
-                                                               $attrName = $xml->localName;
-                                                       }
-                                                       $attributes[$attrName] = $xml->value;
-                                               }
-                                               $this->tag_open(null, $tagName, $attributes);
-                                               if ($empty)
-                                               {
-                                                       $this->tag_close(null, $tagName);
-                                               }
-                                               break;
-                                       case constant('XMLReader::TEXT'):
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 }
+                                       break;
+                               case constant('XMLReader::TEXT'):
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        case constant('XMLReader::CDATA'):
-                                               $this->cdata(null, $xml->value);
-                                               break;
-                               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         case constant('XMLReader::CDATA'):
+                                       $this->cdata(null, $xml->value);
+                                       break;
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        if ($error = libxml_get_last_error())
-                       {
-                               $this->error_code = $error->code;
-                               $this->error_string = $error->message;
-                               $this->current_line = $error->line;
-                               $this->current_column = $error->column;
-                               return false;
-                       }
-                       else
-                       {
-                               return true;
-                       }
</del><span class="cx" style="display: block; padding: 0 10px">                 }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                if ($error = libxml_get_last_error())
+               {
+                       $this->error_code = $error->code;
+                       $this->error_string = $error->message;
+                       $this->current_line = $error->line;
+                       $this->current_column = $error->column;
+                       return false;
+               }
+
+               return true;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_error_code()
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -404,4 +413,249 @@
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">                return $cache[$string];
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+       private function parse_hcard($data, $category = false) {
+               $name = '';
+               $link = '';
+               // Check if h-card is set and pass that information on in the link.
+               if (isset($data['type']) && in_array('h-card', $data['type'])) {
+                       if (isset($data['properties']['name'][0])) {
+                               $name = $data['properties']['name'][0];
+                       }
+                       if (isset($data['properties']['url'][0])) {
+                               $link = $data['properties']['url'][0];
+                               if ($name === '') {
+                                       $name = $link;
+                               }
+                               else {
+                                       // can't have commas in categories.
+                                       $name = str_replace(',', '', $name);
+                               }
+                               $person_tag = $category ? '<span class="person-tag"></span>' : '';
+                               return '<a class="h-card" href="'.$link.'">'.$person_tag.$name.'</a>';
+                       }
+               }
+               return isset($data['value']) ? $data['value'] : '';
+       }
+
+       private function parse_microformats(&$data, $url) {
+               $feed_title = '';
+               $feed_author = NULL;
+               $author_cache = array();
+               $items = array();
+               $entries = array();
+               $mf = Mf2\parse($data, $url);
+               // First look for an h-feed.
+               $h_feed = array();
+               foreach ($mf['items'] as $mf_item) {
+                       if (in_array('h-feed', $mf_item['type'])) {
+                               $h_feed = $mf_item;
+                               break;
+                       }
+                       // Also look for h-feed or h-entry in the children of each top level item.
+                       if (!isset($mf_item['children'][0]['type'])) continue;
+                       if (in_array('h-feed', $mf_item['children'][0]['type'])) {
+                               $h_feed = $mf_item['children'][0];
+                               // In this case the parent of the h-feed may be an h-card, so use it as
+                               // the feed_author.
+                               if (in_array('h-card', $mf_item['type'])) $feed_author = $mf_item;
+                               break;
+                       }
+                       else if (in_array('h-entry', $mf_item['children'][0]['type'])) {
+                               $entries = $mf_item['children'];
+                               // In this case the parent of the h-entry list may be an h-card, so use
+                               // it as the feed_author.
+                               if (in_array('h-card', $mf_item['type'])) $feed_author = $mf_item;
+                               break;
+                       }
+               }
+               if (isset($h_feed['children'])) {
+                       $entries = $h_feed['children'];
+                       // Also set the feed title and store author from the h-feed if available.
+                       if (isset($mf['items'][0]['properties']['name'][0])) {
+                               $feed_title = $mf['items'][0]['properties']['name'][0];
+                       }
+                       if (isset($mf['items'][0]['properties']['author'][0])) {
+                               $feed_author = $mf['items'][0]['properties']['author'][0];
+                       }
+               }
+               else if (count($entries) === 0) {
+                       $entries = $mf['items'];
+               }
+               for ($i = 0; $i < count($entries); $i++) {
+                       $entry = $entries[$i];
+                       if (in_array('h-entry', $entry['type'])) {
+                               $item = array();
+                               $title = '';
+                               $description = '';
+                               if (isset($entry['properties']['url'][0])) {
+                                       $link = $entry['properties']['url'][0];
+                                       if (isset($link['value'])) $link = $link['value'];
+                                       $item['link'] = array(array('data' => $link));
+                               }
+                               if (isset($entry['properties']['uid'][0])) {
+                                       $guid = $entry['properties']['uid'][0];
+                                       if (isset($guid['value'])) $guid = $guid['value'];
+                                       $item['guid'] = array(array('data' => $guid));
+                               }
+                               if (isset($entry['properties']['name'][0])) {
+                                       $title = $entry['properties']['name'][0];
+                                       if (isset($title['value'])) $title = $title['value'];
+                                       $item['title'] = array(array('data' => $title));
+                               }
+                               if (isset($entry['properties']['author'][0]) || isset($feed_author)) {
+                                       // author is a special case, it can be plain text or an h-card array.
+                                       // If it's plain text it can also be a url that should be followed to
+                                       // get the actual h-card.
+                                       $author = isset($entry['properties']['author'][0]) ?
+                                               $entry['properties']['author'][0] : $feed_author;
+                                       if (!is_string($author)) {
+                                               $author = $this->parse_hcard($author);
+                                       }
+                                       else if (strpos($author, 'http') === 0) {
+                                               if (isset($author_cache[$author])) {
+                                                       $author = $author_cache[$author];
+                                               }
+                                               else {
+                                                       $mf = Mf2\fetch($author);
+                                                       foreach ($mf['items'] as $hcard) {
+                                                               // Only interested in an h-card by itself in this case.
+                                                               if (!in_array('h-card', $hcard['type'])) {
+                                                                       continue;
+                                                               }
+                                                               // It must have a url property matching what we fetched.
+                                                               if (!isset($hcard['properties']['url']) ||
+                                                                               !(in_array($author, $hcard['properties']['url']))) {
+                                                                       continue;
+                                                               }
+                                                               // Save parse_hcard the trouble of finding the correct url.
+                                                               $hcard['properties']['url'][0] = $author;
+                                                               // Cache this h-card for the next h-entry to check.
+                                                               $author_cache[$author] = $this->parse_hcard($hcard);
+                                                               $author = $author_cache[$author];
+                                                               break;
+                                                       }
+                                               }
+                                       }
+                                       $item['author'] = array(array('data' => $author));
+                               }
+                               if (isset($entry['properties']['photo'][0])) {
+                                       // If a photo is also in content, don't need to add it again here.
+                                       $content = '';
+                                       if (isset($entry['properties']['content'][0]['html'])) {
+                                               $content = $entry['properties']['content'][0]['html'];
+                                       }
+                                       $photo_list = array();
+                                       for ($j = 0; $j < count($entry['properties']['photo']); $j++) {
+                                               $photo = $entry['properties']['photo'][$j];
+                                               if (!empty($photo) && strpos($content, $photo) === false) {
+                                                       $photo_list[] = $photo;
+                                               }
+                                       }
+                                       // When there's more than one photo show the first and use a lightbox.
+                                       // Need a permanent, unique name for the image set, but don't have
+                                       // anything unique except for the content itself, so use that.
+                                       $count = count($photo_list);
+                                       if ($count > 1) {
+                                               $image_set_id = preg_replace('/[[:^alnum:]]/', '', $photo_list[0]);
+                                               $description = '<p>';
+                                               for ($j = 0; $j < $count; $j++) {
+                                                       $hidden = $j === 0 ? '' : 'class="hidden" ';
+                                                       $description .= '<a href="'.$photo_list[$j].'" '.$hidden.
+                                                               'data-lightbox="image-set-'.$image_set_id.'">'.
+                                                               '<img src="'.$photo_list[$j].'"></a>';
+                                               }
+                                               $description .= '<br><b>'.$count.' photos</b></p>';
+                                       }
+                                       else if ($count == 1) {
+                                               $description = '<p><img src="'.$photo_list[0].'"></p>';
+                                       }
+                               }
+                               if (isset($entry['properties']['content'][0]['html'])) {
+                                       // e-content['value'] is the same as p-name when they are on the same
+                                       // element. Use this to replace title with a strip_tags version so
+                                       // that alt text from images is not included in the title.
+                                       if ($entry['properties']['content'][0]['value'] === $title) {
+                                               $title = strip_tags($entry['properties']['content'][0]['html']);
+                                               $item['title'] = array(array('data' => $title));
+                                       }
+                                       $description .= $entry['properties']['content'][0]['html'];
+                                       if (isset($entry['properties']['in-reply-to'][0])) {
+                                               $in_reply_to = '';
+                                               if (is_string($entry['properties']['in-reply-to'][0])) {
+                                                       $in_reply_to = $entry['properties']['in-reply-to'][0];
+                                               }
+                                               else if (isset($entry['properties']['in-reply-to'][0]['value'])) {
+                                                       $in_reply_to = $entry['properties']['in-reply-to'][0]['value'];
+                                               }
+                                               if ($in_reply_to !== '') {
+                                                       $description .= '<p><span class="in-reply-to"></span> '.
+                                                               '<a href="'.$in_reply_to.'">'.$in_reply_to.'</a><p>';
+                                               }
+                                       }
+                                       $item['description'] = array(array('data' => $description));
+                               }
+                               if (isset($entry['properties']['category'])) {
+                                       $category_csv = '';
+                                       // Categories can also contain h-cards.
+                                       foreach ($entry['properties']['category'] as $category) {
+                                               if ($category_csv !== '') $category_csv .= ', ';
+                                               if (is_string($category)) {
+                                                       // Can't have commas in categories.
+                                                       $category_csv .= str_replace(',', '', $category);
+                                               }
+                                               else {
+                                                       $category_csv .= $this->parse_hcard($category, true);
+                                               }
+                                       }
+                                       $item['category'] = array(array('data' => $category_csv));
+                               }
+                               if (isset($entry['properties']['published'][0])) {
+                                       $timestamp = strtotime($entry['properties']['published'][0]);
+                                       $pub_date = date('F j Y g:ia', $timestamp).' GMT';
+                                       $item['pubDate'] = array(array('data' => $pub_date));
+                               }
+                               // The title and description are set to the empty string to represent
+                               // a deleted item (which also makes it an invalid rss item).
+                               if (isset($entry['properties']['deleted'][0])) {
+                                       $item['title'] = array(array('data' => ''));
+                                       $item['description'] = array(array('data' => ''));
+                               }
+                               $items[] = array('child' => array('' => $item));
+                       }
+               }
+               // Mimic RSS data format when storing microformats.
+               $link = array(array('data' => $url));
+               $image = '';
+               if (!is_string($feed_author) &&
+                               isset($feed_author['properties']['photo'][0])) {
+                       $image = array(array('child' => array('' => array('url' =>
+                               array(array('data' => $feed_author['properties']['photo'][0]))))));
+               }
+               // Use the name given for the h-feed, or get the title from the html.
+               if ($feed_title !== '') {
+                       $feed_title = array(array('data' => htmlspecialchars($feed_title)));
+               }
+               else if ($position = strpos($data, '<title>')) {
+                       $start = $position < 200 ? 0 : $position - 200;
+                       $check = substr($data, $start, 400);
+                       $matches = array();
+                       if (preg_match('/<title>(.+)<\/title>/', $check, $matches)) {
+                               $feed_title = array(array('data' => htmlspecialchars($matches[1])));
+                       }
+               }
+               $channel = array('channel' => array(array('child' => array('' =>
+                       array('link' => $link, 'image' => $image, 'title' => $feed_title,
+                             'item' => $items)))));
+               $rss = array(array('attribs' => array('' => array('version' => '2.0')),
+                                  'child' => array('' => $channel)));
+               $this->data = array('child' => array('' => array('rss' => $rss)));
+               return true;
+       }
+
+       private function declare_html_entities() {
+               // This is required because the RSS specification says that entity-encoded
+               // html is allowed, but the xml specification says they must be declared.
+               return '<!DOCTYPE html [ <!ENTITY nbsp "&#x00A0;"> <!ENTITY iexcl "&#x00A1;"> <!ENTITY cent "&#x00A2;"> <!ENTITY pound "&#x00A3;"> <!ENTITY curren "&#x00A4;"> <!ENTITY yen "&#x00A5;"> <!ENTITY brvbar "&#x00A6;"> <!ENTITY sect "&#x00A7;"> <!ENTITY uml "&#x00A8;"> <!ENTITY copy "&#x00A9;"> <!ENTITY ordf "&#x00AA;"> <!ENTITY laquo "&#x00AB;"> <!ENTITY not "&#x00AC;"> <!ENTITY shy "&#x00AD;"> <!ENTITY reg "&#x00AE;"> <!ENTITY macr "&#x00AF;"> <!ENTITY deg "&#x00B0;"> <!ENTITY plusmn "&#x00B1;"> <!ENTITY sup2 "&#x00B2;"> <!ENTITY sup3 "&#x00B3;"> <!ENTITY acute "&#x00B4;"&g
 t; <!ENTITY micro "&#x00B5;"> <!ENTITY para "&#x00B6;"> <!ENTITY middot "&#x00B7;"> <!ENTITY cedil "&#x00B8;"> <!ENTITY sup1 "&#x00B9;"> <!ENTITY ordm "&#x00BA;"> <!ENTITY raquo "&#x00BB;"> <!ENTITY frac14 "&#x00BC;"> <!ENTITY frac12 "&#x00BD;"> <!ENTITY frac34 "&#x00BE;"> <!ENTITY iquest "&#x00BF;"> <!ENTITY Agrave "&#x00C0;"> <!ENTITY Aacute "&#x00C1;"> <!ENTITY Acirc "&#x00C2;"> <!ENTITY Atilde "&#x00C3;"> <!ENTITY Auml "&#x00C4;"> <!ENTITY Aring "&#x00C5;"> <!ENTITY AElig "&#x00C6;"> <!ENTITY Ccedil "&#x00C7;"> <!ENTITY Egrave "&#x00C8;"> <!ENTITY Eacute "&#x00C9;"> 
 <!ENTITY Ecirc "&#x00CA;"> <!ENTITY Euml "&#x00CB;"> <!ENTITY Igrave "&#x00CC;"> <!ENTITY Iacute "&#x00CD;"> <!ENTITY Icirc "&#x00CE;"> <!ENTITY Iuml "&#x00CF;"> <!ENTITY ETH "&#x00D0;"> <!ENTITY Ntilde "&#x00D1;"> <!ENTITY Ograve "&#x00D2;"> <!ENTITY Oacute "&#x00D3;"> <!ENTITY Ocirc "&#x00D4;"> <!ENTITY Otilde "&#x00D5;"> <!ENTITY Ouml "&#x00D6;"> <!ENTITY times "&#x00D7;"> <!ENTITY Oslash "&#x00D8;"> <!ENTITY Ugrave "&#x00D9;"> <!ENTITY Uacute "&#x00DA;"> <!ENTITY Ucirc "&#x00DB;"> <!ENTITY Uuml "&#x00DC;"> <!ENTITY Yacute "&#x00DD;"> <!ENTITY THORN "&#x00DE;"> <!E
 NTITY szlig "&#x00DF;"> <!ENTITY agrave "&#x00E0;"> <!ENTITY aacute "&#x00E1;"> <!ENTITY acirc "&#x00E2;"> <!ENTITY atilde "&#x00E3;"> <!ENTITY auml "&#x00E4;"> <!ENTITY aring "&#x00E5;"> <!ENTITY aelig "&#x00E6;"> <!ENTITY ccedil "&#x00E7;"> <!ENTITY egrave "&#x00E8;"> <!ENTITY eacute "&#x00E9;"> <!ENTITY ecirc "&#x00EA;"> <!ENTITY euml "&#x00EB;"> <!ENTITY igrave "&#x00EC;"> <!ENTITY iacute "&#x00ED;"> <!ENTITY icirc "&#x00EE;"> <!ENTITY iuml "&#x00EF;"> <!ENTITY eth "&#x00F0;"> <!ENTITY ntilde "&#x00F1;"> <!ENTITY ograve "&#x00F2;"> <!ENTITY oacute "&#x00F3;"> <!ENTIT
 Y ocirc "&#x00F4;"> <!ENTITY otilde "&#x00F5;"> <!ENTITY ouml "&#x00F6;"> <!ENTITY divide "&#x00F7;"> <!ENTITY oslash "&#x00F8;"> <!ENTITY ugrave "&#x00F9;"> <!ENTITY uacute "&#x00FA;"> <!ENTITY ucirc "&#x00FB;"> <!ENTITY uuml "&#x00FC;"> <!ENTITY yacute "&#x00FD;"> <!ENTITY thorn "&#x00FE;"> <!ENTITY yuml "&#x00FF;"> <!ENTITY OElig "&#x0152;"> <!ENTITY oelig "&#x0153;"> <!ENTITY Scaron "&#x0160;"> <!ENTITY scaron "&#x0161;"> <!ENTITY Yuml "&#x0178;"> <!ENTITY fnof "&#x0192;"> <!ENTITY circ "&#x02C6;"> <!ENTITY tilde "&#x02DC;"> <!ENTITY Alpha "&#x0391;"> <!ENTITY Beta &
 quot;&#x0392;"> <!ENTITY Gamma "&#x0393;"> <!ENTITY Epsilon "&#x0395;"> <!ENTITY Zeta "&#x0396;"> <!ENTITY Eta "&#x0397;"> <!ENTITY Theta "&#x0398;"> <!ENTITY Iota "&#x0399;"> <!ENTITY Kappa "&#x039A;"> <!ENTITY Lambda "&#x039B;"> <!ENTITY Mu "&#x039C;"> <!ENTITY Nu "&#x039D;"> <!ENTITY Xi "&#x039E;"> <!ENTITY Omicron "&#x039F;"> <!ENTITY Pi "&#x03A0;"> <!ENTITY Rho "&#x03A1;"> <!ENTITY Sigma "&#x03A3;"> <!ENTITY Tau "&#x03A4;"> <!ENTITY Upsilon "&#x03A5;"> <!ENTITY Phi "&#x03A6;"> <!ENTITY Chi "&#x03A7;"> <!ENTITY Psi "&#x03A8;"> <!ENTITY Omega "&#x03A9;"> &
 lt;!ENTITY alpha "&#x03B1;"> <!ENTITY beta "&#x03B2;"> <!ENTITY gamma "&#x03B3;"> <!ENTITY delta "&#x03B4;"> <!ENTITY epsilon "&#x03B5;"> <!ENTITY zeta "&#x03B6;"> <!ENTITY eta "&#x03B7;"> <!ENTITY theta "&#x03B8;"> <!ENTITY iota "&#x03B9;"> <!ENTITY kappa "&#x03BA;"> <!ENTITY lambda "&#x03BB;"> <!ENTITY mu "&#x03BC;"> <!ENTITY nu "&#x03BD;"> <!ENTITY xi "&#x03BE;"> <!ENTITY omicron "&#x03BF;"> <!ENTITY pi "&#x03C0;"> <!ENTITY rho "&#x03C1;"> <!ENTITY sigmaf "&#x03C2;"> <!ENTITY sigma "&#x03C3;"> <!ENTITY tau "&#x03C4;"> <!ENTITY upsilon "&#x03C5;"> <!ENTITY phi "&a
 mp;#x03C6;"> <!ENTITY chi "&#x03C7;"> <!ENTITY psi "&#x03C8;"> <!ENTITY omega "&#x03C9;"> <!ENTITY thetasym "&#x03D1;"> <!ENTITY upsih "&#x03D2;"> <!ENTITY piv "&#x03D6;"> <!ENTITY ensp "&#x2002;"> <!ENTITY emsp "&#x2003;"> <!ENTITY thinsp "&#x2009;"> <!ENTITY zwnj "&#x200C;"> <!ENTITY zwj "&#x200D;"> <!ENTITY lrm "&#x200E;"> <!ENTITY rlm "&#x200F;"> <!ENTITY ndash "&#x2013;"> <!ENTITY mdash "&#x2014;"> <!ENTITY lsquo "&#x2018;"> <!ENTITY rsquo "&#x2019;"> <!ENTITY sbquo "&#x201A;"> <!ENTITY ldquo "&#x201C;"> <!ENTITY rdquo "&#x201D;"> <!ENTITY bdquo "&#x201E;"> 
 <!ENTITY dagger "&#x2020;"> <!ENTITY Dagger "&#x2021;"> <!ENTITY bull "&#x2022;"> <!ENTITY hellip "&#x2026;"> <!ENTITY permil "&#x2030;"> <!ENTITY prime "&#x2032;"> <!ENTITY Prime "&#x2033;"> <!ENTITY lsaquo "&#x2039;"> <!ENTITY rsaquo "&#x203A;"> <!ENTITY oline "&#x203E;"> <!ENTITY frasl "&#x2044;"> <!ENTITY euro "&#x20AC;"> <!ENTITY image "&#x2111;"> <!ENTITY weierp "&#x2118;"> <!ENTITY real "&#x211C;"> <!ENTITY trade "&#x2122;"> <!ENTITY alefsym "&#x2135;"> <!ENTITY larr "&#x2190;"> <!ENTITY uarr "&#x2191;"> <!ENTITY rarr "&#x2192;"> <!ENTITY darr "&#x2193;"> <!ENT
 ITY harr "&#x2194;"> <!ENTITY crarr "&#x21B5;"> <!ENTITY lArr "&#x21D0;"> <!ENTITY uArr "&#x21D1;"> <!ENTITY rArr "&#x21D2;"> <!ENTITY dArr "&#x21D3;"> <!ENTITY hArr "&#x21D4;"> <!ENTITY forall "&#x2200;"> <!ENTITY part "&#x2202;"> <!ENTITY exist "&#x2203;"> <!ENTITY empty "&#x2205;"> <!ENTITY nabla "&#x2207;"> <!ENTITY isin "&#x2208;"> <!ENTITY notin "&#x2209;"> <!ENTITY ni "&#x220B;"> <!ENTITY prod "&#x220F;"> <!ENTITY sum "&#x2211;"> <!ENTITY minus "&#x2212;"> <!ENTITY lowast "&#x2217;"> <!ENTITY radic "&#x221A;"> <!ENTITY prop "&#x221D;"> <!ENTITY infin "&#x
 221E;"> <!ENTITY ang "&#x2220;"> <!ENTITY and "&#x2227;"> <!ENTITY or "&#x2228;"> <!ENTITY cap "&#x2229;"> <!ENTITY cup "&#x222A;"> <!ENTITY int "&#x222B;"> <!ENTITY there4 "&#x2234;"> <!ENTITY sim "&#x223C;"> <!ENTITY cong "&#x2245;"> <!ENTITY asymp "&#x2248;"> <!ENTITY ne "&#x2260;"> <!ENTITY equiv "&#x2261;"> <!ENTITY le "&#x2264;"> <!ENTITY ge "&#x2265;"> <!ENTITY sub "&#x2282;"> <!ENTITY sup "&#x2283;"> <!ENTITY nsub "&#x2284;"> <!ENTITY sube "&#x2286;"> <!ENTITY supe "&#x2287;"> <!ENTITY oplus "&#x2295;"> <!ENTITY otimes "&#x2297;"> <!ENTITY perp "&
 amp;#x22A5;"> <!ENTITY sdot "&#x22C5;"> <!ENTITY lceil "&#x2308;"> <!ENTITY rceil "&#x2309;"> <!ENTITY lfloor "&#x230A;"> <!ENTITY rfloor "&#x230B;"> <!ENTITY lang "&#x2329;"> <!ENTITY rang "&#x232A;"> <!ENTITY loz "&#x25CA;"> <!ENTITY spades "&#x2660;"> <!ENTITY clubs "&#x2663;"> <!ENTITY hearts "&#x2665;"> <!ENTITY diams "&#x2666;"> ]>';
+       }
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span></span></pre></div>
<a id="trunksrcwpincludesSimplePieRatingphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Rating.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Rating.php        2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Rating.php  2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -104,10 +103,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->scheme;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -121,9 +118,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->value;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span></span></pre></div>
<a id="trunksrcwpincludesSimplePieRegistryphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Registry.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Registry.php      2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Registry.php        2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -113,7 +112,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function register($type, $class, $legacy = false)
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if (!is_subclass_of($class, $this->default[$type]))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if (!@is_subclass_of($class, $this->default[$type]))
</ins><span class="cx" style="display: block; padding: 0 10px">                 {
</span><span class="cx" style="display: block; padding: 0 10px">                        return false;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -222,4 +221,4 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $result = call_user_func_array(array($class, $method), $parameters);
</span><span class="cx" style="display: block; padding: 0 10px">                return $result;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesSimplePieRestrictionphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Restriction.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Restriction.php   2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Restriction.php     2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -113,10 +112,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->relationship;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -130,10 +127,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->type;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -147,9 +142,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->value;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span></span></pre></div>
<a id="trunksrcwpincludesSimplePieSanitizephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Sanitize.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Sanitize.php      2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Sanitize.php        2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -61,7 +60,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">        var $image_handler = '';
</span><span class="cx" style="display: block; padding: 0 10px">        var $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style');
</span><span class="cx" style="display: block; padding: 0 10px">        var $encode_instead_of_strip = false;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ var $strip_attributes = array('bgsound', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc');
+       var $add_attributes = array('audio' => array('preload' => 'none'), 'iframe' => array('sandbox' => 'allow-scripts allow-same-origin'), 'video' => array('preload' => 'none'));
</ins><span class="cx" style="display: block; padding: 0 10px">         var $strip_comments = false;
</span><span class="cx" style="display: block; padding: 0 10px">        var $output_encoding = 'UTF-8';
</span><span class="cx" style="display: block; padding: 0 10px">        var $enable_cache = true;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -160,7 +160,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $this->encode_instead_of_strip = (bool) $encode;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function strip_attributes($attribs = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc'))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function strip_attributes($attribs = array('bgsound', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc'))
</ins><span class="cx" style="display: block; padding: 0 10px">         {
</span><span class="cx" style="display: block; padding: 0 10px">                if ($attribs)
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -179,6 +179,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        public function add_attributes($attribs = array('audio' => array('preload' => 'none'), 'iframe' => array('sandbox' => 'allow-scripts allow-same-origin'), 'video' => array('preload' => 'none')))
+       {
+               if ($attribs)
+               {
+                       if (is_array($attribs))
+                       {
+                               $this->add_attributes = $attribs;
+                       }
+                       else
+                       {
+                               $this->add_attributes = explode(',', $attribs);
+                       }
+               }
+               else
+               {
+                       $this->add_attributes = false;
+               }
+       }
+
</ins><span class="cx" style="display: block; padding: 0 10px">         public function strip_comments($strip = false)
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><span class="cx" style="display: block; padding: 0 10px">                $this->strip_comments = (bool) $strip;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -249,11 +268,11 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                                if (!class_exists('DOMDocument'))
</span><span class="cx" style="display: block; padding: 0 10px">                                {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        $this->registry->call('Misc', 'error', array('DOMDocument not found, unable to use sanitizer', E_USER_WARNING, __FILE__, __LINE__));
-                                       return '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 throw new SimplePie_Exception('DOMDocument not found, unable to use sanitizer');
</ins><span class="cx" style="display: block; padding: 0 10px">                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                                $document = new DOMDocument();
</span><span class="cx" style="display: block; padding: 0 10px">                                $document->encoding = 'UTF-8';
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                                 $data = $this->preprocess($data, $type);
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                                set_error_handler(array('SimplePie_Misc', 'silence_errors'));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -260,10 +279,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                $document->loadHTML($data);
</span><span class="cx" style="display: block; padding: 0 10px">                                restore_error_handler();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                $xpath = new DOMXPath($document);
+
</ins><span class="cx" style="display: block; padding: 0 10px">                                 // Strip comments
</span><span class="cx" style="display: block; padding: 0 10px">                                if ($this->strip_comments)
</span><span class="cx" style="display: block; padding: 0 10px">                                {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        $xpath = new DOMXPath($document);
</del><span class="cx" style="display: block; padding: 0 10px">                                         $comments = $xpath->query('//comment()');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                                        foreach ($comments as $comment)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -279,7 +299,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                {
</span><span class="cx" style="display: block; padding: 0 10px">                                        foreach ($this->strip_htmltags as $tag)
</span><span class="cx" style="display: block; padding: 0 10px">                                        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                                $this->strip_tag($tag, $document, $type);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                         $this->strip_tag($tag, $document, $xpath, $type);
</ins><span class="cx" style="display: block; padding: 0 10px">                                         }
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -287,10 +307,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                {
</span><span class="cx" style="display: block; padding: 0 10px">                                        foreach ($this->strip_attributes as $attrib)
</span><span class="cx" style="display: block; padding: 0 10px">                                        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                                $this->strip_attr($attrib, $document);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                         $this->strip_attr($attrib, $xpath);
</ins><span class="cx" style="display: block; padding: 0 10px">                                         }
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                if ($this->add_attributes)
+                               {
+                                       foreach ($this->add_attributes as $tag => $valuePairs)
+                                       {
+                                               $this->add_attr($tag, $valuePairs, $document);
+                                       }
+                               }
+
</ins><span class="cx" style="display: block; padding: 0 10px">                                 // Replace relative URLs
</span><span class="cx" style="display: block; padding: 0 10px">                                $this->base = $base;
</span><span class="cx" style="display: block; padding: 0 10px">                                foreach ($this->replace_url_attributes as $element => $attributes)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -326,7 +354,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                                                        }
</span><span class="cx" style="display: block; padding: 0 10px">                                                                        else
</span><span class="cx" style="display: block; padding: 0 10px">                                                                        {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                                                                trigger_error("$this->cache_location is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                                                         trigger_error("$this->cache_location is not writable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING);
</ins><span class="cx" style="display: block; padding: 0 10px">                                                                         }
</span><span class="cx" style="display: block; padding: 0 10px">                                                                }
</span><span class="cx" style="display: block; padding: 0 10px">                                                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -334,19 +362,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                // Remove the DOCTYPE
-                               // Seems to cause segfaulting if we don't do this
-                               if ($document->firstChild instanceof DOMDocumentType)
-                               {
-                                       $document->removeChild($document->firstChild);
-                               }
-
-                               // Move everything from the body to the root
-                               $real_body = $document->getElementsByTagName('body')->item(0)->childNodes->item(0);
-                               $document->replaceChild($real_body, $document->firstChild);
-
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         // Get content node
+                               $div = $document->getElementsByTagName('body')->item(0)->firstChild;
</ins><span class="cx" style="display: block; padding: 0 10px">                                 // Finally, convert to a HTML string
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                $data = trim($document->saveHTML());
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         $data = trim($document->saveHTML($div));
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                                if ($this->remove_div)
</span><span class="cx" style="display: block; padding: 0 10px">                                {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -384,6 +403,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        protected function preprocess($html, $type)
</span><span class="cx" style="display: block; padding: 0 10px">        {
</span><span class="cx" style="display: block; padding: 0 10px">                $ret = '';
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                $html = preg_replace('%</?(?:html|body)[^>]*?'.'>%is', '', $html);
</ins><span class="cx" style="display: block; padding: 0 10px">                 if ($type & ~SIMPLEPIE_CONSTRUCT_XHTML)
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        // Atom XHTML constructs are wrapped with a div by default
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -456,9 +476,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        protected function strip_tag($tag, $document, $type)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ protected function strip_tag($tag, $document, $xpath, $type)
</ins><span class="cx" style="display: block; padding: 0 10px">         {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $xpath = new DOMXPath($document);
</del><span class="cx" style="display: block; padding: 0 10px">                 $elements = $xpath->query('body//' . $tag);
</span><span class="cx" style="display: block; padding: 0 10px">                if ($this->encode_instead_of_strip)
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -541,9 +560,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        protected function strip_attr($attrib, $document)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ protected function strip_attr($attrib, $xpath)
</ins><span class="cx" style="display: block; padding: 0 10px">         {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $xpath = new DOMXPath($document);
</del><span class="cx" style="display: block; padding: 0 10px">                 $elements = $xpath->query('//*[@' . $attrib . ']');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                foreach ($elements as $element)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -551,4 +569,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        $element->removeAttribute($attrib);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+       protected function add_attr($tag, $valuePairs, $document)
+       {
+               $elements = $document->getElementsByTagName($tag);
+               foreach ($elements as $element)
+               {
+                       foreach ($valuePairs as $attrib => $value)
+                       {
+                               $element->setAttribute($attrib, $value);
+                       }
+               }
+       }
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span></span></pre></div>
<a id="trunksrcwpincludesSimplePieSourcephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/SimplePie/Source.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/SimplePie/Source.php        2020-05-01 13:01:47 UTC (rev 47732)
+++ trunk/src/wp-includes/SimplePie/Source.php  2020-05-01 14:24:42 UTC (rev 47733)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,7 +5,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * A PHP-Based RSS and Atom Feed Framework.
</span><span class="cx" style="display: block; padding: 0 10px">  * Takes the hard work out of managing a complete RSS/Atom solution.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
</ins><span class="cx" style="display: block; padding: 0 10px">  * All rights reserved.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Redistribution and use in source and binary forms, with or without modification, are
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -33,10 +33,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package SimplePie
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @version 1.3.1
- * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan Parman
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @author Geoffrey Sneddon
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @author Sam Sneddon
</ins><span class="cx" style="display: block; padding: 0 10px">  * @author Ryan McCue
</span><span class="cx" style="display: block; padding: 0 10px">  * @link http://simplepie.org/ SimplePie
</span><span class="cx" style="display: block; padding: 0 10px">  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -80,10 +79,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->data['child'][$namespace][$tag];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_base($element = array())
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -131,10 +128,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_category($key = 0)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -144,10 +139,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $categories[$key];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_categories()
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -201,10 +194,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return array_unique($categories);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_author($key = 0)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -214,10 +205,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $authors[$key];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_authors()
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -284,10 +273,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return array_unique($authors);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_contributor($key = 0)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -297,10 +284,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $contributors[$key];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_contributors()
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -355,10 +340,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return array_unique($contributors);
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_link($key = 0, $rel = 'alternate')
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -368,10 +351,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="cx" style="display: block; padding: 0 10px">                        return $links[$key];
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                else
-               {
-                       return null;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return null;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -450,10 +431,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">