<?xml version="1.0"?>
<!--
Copyright (C) 2016 Apple, Inc. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
2. 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.

THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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.
-->

<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>WebKit</title>
    <link>https://trac.webkit.org/timeline</link>
    <description>Trac Timeline</description>
    <language>en-US</language>
    <generator>Trac 0.12.3</generator>
    <image>
      <title>WebKit</title>
      <url>https://trac.webkit.org/chrome/site/favicon.png</url>
      <link>https://trac.webkit.org/timeline</link>
    </image>
    <item>
      <title>Changeset [33025]: Ita prorsus inquam Ad corpus diceres pertinere, sed ea, quae dixi</title>
      
        <author>george@webkit.org</author>

      <pubDate>Tue, 26 Jan 2016 22:48:15 GMT</pubDate>
      <link>https://trac.webkit.org/changeset/33025</link>
      <guid isPermaLink="false">https://trac.webkit.org/changeset/33025/1453848495332569</guid>
      <description>Description</description>
      <category>changeset</category>
    </item><item>
      <title>Changeset [33024]: An eum discere ea mavis, quae cum plane perdidiceriti nihil sciat</title>
      
        <author>paul@webkit.org</author>

      <pubDate>Tue, 26 Jan 2016 22:22:25 GMT</pubDate>
      <link>https://trac.webkit.org/changeset/33024</link>
      <guid isPermaLink="false">https://trac.webkit.org/changeset/33024/1453846945244007</guid>
      <description>Description</description>
      <category>changeset</category>
    </item><item>
      <title>Changeset [33023]: Lorem ipsum dolor sit amet, consectetur adipiscing elit.</title>
      
        <author>john@webkit.org</author>

      <pubDate>Tue, 26 Jan 2016 22:22:14 GMT</pubDate>
      <link>https://trac.webkit.org/changeset/33023</link>
      <guid isPermaLink="false">https://trac.webkit.org/changeset/33023/1453846934034550</guid>
      <description>Description</description>
      <category>changeset</category>
    </item>
   </channel>
</rss>