]> gitweb.michael.orlitzky.com - dead/htsn-import.git/commitdiff
Add a new module, TSN.XML.AutoRacingSchedule, and its tests.
authorMichael Orlitzky <michael@orlitzky.com>
Thu, 23 Jan 2014 20:38:45 +0000 (15:38 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Thu, 23 Jan 2014 20:38:45 +0000 (15:38 -0500)
src/Main.hs
src/TSN/XML/AutoRacingSchedule.hs [new file with mode: 0644]
test/TestSuite.hs
test/shell/import-duplicates.test
test/xml/Auto_Racing_Schedule_XML.dtd [new file with mode: 0644]
test/xml/Auto_Racing_Schedule_XML.xml [new file with mode: 0644]

index da27b12e9a59ebf8a1e27a4c5fd4a13cf42f85cc..84593976ec9e3eb05300e89bc4fe42e54b7cf663 100644 (file)
@@ -45,6 +45,8 @@ import Network.Services.TSN.Report (
   report_info,
   report_error )
 import TSN.DbImport ( DbImport(..), ImportResult(..) )
+import qualified TSN.XML.AutoRacingSchedule as AutoRacingSchedule (
+  pickle_message )
 import qualified TSN.XML.Heartbeat as Heartbeat ( verify )
 import qualified TSN.XML.Injuries as Injuries ( pickle_message )
 import qualified TSN.XML.InjuriesDetail as InjuriesDetail ( pickle_message )
@@ -151,6 +153,11 @@ import_file cfg path = do
           migrate_and_import m = dbmigrate m >> dbimport m
 
           importer
+            | dtd == "Auto_Racing_Schedule_XML.dtd" = do
+               let m = unpickleDoc AutoRacingSchedule.pickle_message xml
+               let errmsg = "Could not unpickle Auto_Racing_Schedule_XML."
+               maybe (return $ ImportFailed errmsg) migrate_and_import m
+
             | dtd == "injuriesxml.dtd" = do
                let m = unpickleDoc Injuries.pickle_message xml
                let errmsg = "Could not unpickle injuriesxml."
diff --git a/src/TSN/XML/AutoRacingSchedule.hs b/src/TSN/XML/AutoRacingSchedule.hs
new file mode 100644 (file)
index 0000000..62202dd
--- /dev/null
@@ -0,0 +1,472 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE GADTs #-}
+{-# LANGUAGE QuasiQuotes #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE TypeFamilies #-}
+
+-- | Parse TSN XML for the DTD
+--   \"Auto_Racing_Schedule_XML.dtd\". There's a top-level
+--   \<message\>, containing \<Listing\>s, containing \<RaceResults\>,
+--   containing \<RaceResultsListing\>s.
+--
+module TSN.XML.AutoRacingSchedule (
+  pickle_message,
+  -- * Tests
+  auto_racing_schedule_tests,
+  -- * WARNING: these are private but exported to silence warnings
+  AutoRacingScheduleConstructor(..),
+  AutoRacingScheduleListingConstructor(..),
+  AutoRacingScheduleListingRaceResultRaceResultListingConstructor(..) )
+where
+
+-- System imports.
+import Control.Monad ( forM_ )
+import Data.Time ( UTCTime(..) )
+import Data.Tuple.Curry ( uncurryN )
+import Database.Groundhog (
+  countAll,
+  executeRaw,
+  migrate,
+  runMigration,
+  silentMigrationLogger )
+import Database.Groundhog.Core ( DefaultKey )
+import Database.Groundhog.Generic ( runDbConn )
+import Database.Groundhog.Sqlite ( withSqliteConn )
+import Database.Groundhog.TH (
+  groundhog,
+  mkPersist )
+import Test.Tasty ( TestTree, testGroup )
+import Test.Tasty.HUnit ( (@?=), testCase )
+import Text.XML.HXT.Core (
+  PU,
+  xp7Tuple,
+  xp8Tuple,
+  xp10Tuple,
+  xpElem,
+  xpInt,
+  xpList,
+  xpOption,
+  xpText,
+  xpWrap )
+
+-- Local imports.
+import TSN.Codegen (
+  tsn_codegen_config )
+import TSN.DbImport ( DbImport(..), ImportResult(..), run_dbmigrate )
+import TSN.Picklers ( xp_date, xp_tba_time, xp_time_stamp )
+import TSN.XmlImport ( XmlImport(..), XmlImportFk(..) )
+import Xml (
+  FromXml(..),
+  FromXmlFk(..),
+  ToDb(..),
+  pickle_unpickle,
+  unpickleable,
+  unsafe_unpickle )
+
+
+--
+-- DB/XML data types
+--
+
+-- * AutoRacingSchedule/Message
+
+-- | Database representation of a 'Message'.
+--
+data AutoRacingSchedule =
+  AutoRacingSchedule {
+    db_xml_file_id :: Int,
+    db_heading :: String,
+    db_category :: String,
+    db_sport :: String,
+    db_title :: String,
+    db_complete_through :: String,
+    db_time_stamp :: UTCTime }
+  deriving (Eq, Show)
+
+
+-- | XML Representation of an 'AutoRacingSchedule'.
+--
+data Message =
+  Message {
+    xml_xml_file_id :: Int,
+    xml_heading :: String,
+    xml_category :: String,
+    xml_sport :: String,
+    xml_title :: String,
+    xml_complete_through :: String,
+    xml_listings :: [AutoRacingScheduleListingXml],
+    xml_time_stamp :: UTCTime }
+  deriving (Eq, Show)
+
+instance ToDb Message where
+  type Db Message = AutoRacingSchedule
+
+instance FromXml Message where
+  from_xml Message{..} =
+    AutoRacingSchedule {
+      db_xml_file_id = xml_xml_file_id,
+      db_heading = xml_heading,
+      db_category = xml_category,
+      db_sport = xml_sport,
+      db_title = xml_title,
+      db_complete_through = xml_complete_through,
+      db_time_stamp = xml_time_stamp }
+
+instance XmlImport Message
+
+
+-- * AutoRacingScheduleListing/AutoRacingScheduleListingXml
+
+-- | Database representation of a \<Listing\> contained within a
+--   \<Message\>. We combine the race date/time into a single
+--   race_time, drop the race results list, and add a foreign key to
+--   our parent.
+data AutoRacingScheduleListing =
+  AutoRacingScheduleListing {
+    db_auto_racing_schedules_id :: DefaultKey AutoRacingSchedule,
+    db_race_id :: Int,
+    db_race_time :: UTCTime,
+    db_race_name :: String,
+    db_track_name :: String,
+    db_location :: String,
+    db_tv_listing :: Maybe String,
+    db_laps :: Int,
+    db_track_length :: String -- ^ Sometimes the word "miles" shows up.
+  }
+
+-- | XML representation of a \<Listing\> contained within a
+--   \<message\>.
+--
+data AutoRacingScheduleListingXml =
+  AutoRacingScheduleListingXml {
+    xml_race_id :: Int,
+    xml_race_date :: UTCTime,
+    xml_race_time :: Maybe UTCTime,
+    xml_race_name :: String,
+    xml_track_name :: String,
+    xml_location :: String,
+    xml_tv_listing :: Maybe String,
+    xml_laps :: Int,
+    xml_track_length :: String, -- ^ Sometimes the word \"miles\" shows up.
+    xml_race_results :: [AutoRacingScheduleListingRaceResult] }
+  deriving (Eq, Show)
+
+-- | Pseudo-accessor to get the race result listings out of a
+--   'AutoRacingScheduleListingXml'.
+result_listings :: AutoRacingScheduleListingXml
+                -> [AutoRacingScheduleListingRaceResultRaceResultListingXml]
+result_listings = (concatMap xml_race_result_listing) . xml_race_results
+
+
+instance ToDb AutoRacingScheduleListingXml where
+  type Db AutoRacingScheduleListingXml = AutoRacingScheduleListing
+
+instance FromXmlFk AutoRacingScheduleListingXml where
+  type Parent AutoRacingScheduleListingXml = AutoRacingSchedule
+
+  from_xml_fk fk AutoRacingScheduleListingXml{..} =
+    AutoRacingScheduleListing {
+      db_auto_racing_schedules_id = fk,
+      db_race_id = xml_race_id,
+      db_race_time = make_race_time xml_race_date xml_race_time,
+      db_race_name = xml_race_name,
+      db_track_name = xml_track_name,
+      db_location = xml_location,
+      db_tv_listing = xml_tv_listing,
+      db_laps = xml_laps,
+      db_track_length = xml_track_length }
+    where
+      -- Take the day part from one, the time from the other.
+      make_race_time d Nothing = d
+      make_race_time d (Just t) = UTCTime (utctDay d) (utctDayTime t)
+
+instance XmlImportFk AutoRacingScheduleListingXml
+
+-- * AutoRacingScheduleListingRaceResult
+
+-- | The XML representation of \<message\> -> \<Listing\> ->
+--   \<RaceResults\>. This element serves only to contain
+--   \<RaceResultsListing\>s, so we don't store the intermediate table
+--   in the database.
+--
+newtype AutoRacingScheduleListingRaceResult =
+  AutoRacingScheduleListingRaceResult {
+    xml_race_result_listing ::
+      [AutoRacingScheduleListingRaceResultRaceResultListingXml] }
+  deriving (Eq, Show)
+
+-- * AutoRacingScheduleListingRaceResultRaceResultListing /
+--   AutoRacingScheduleListingRaceResultRaceResultListingXml
+
+data AutoRacingScheduleListingRaceResultRaceResultListing =
+  AutoRacingScheduleListingRaceResultRaceResultListing {
+    db_auto_racing_schedules_listings_id ::
+      DefaultKey AutoRacingScheduleListing,
+    db_finish_position :: Int,
+    db_driver_id :: Int,
+    db_name :: String,
+    db_leading_laps :: Int,
+    db_listing_laps :: Int, -- Avoid clash with race's "laps" field.
+    db_earnings :: String, -- Should be an int, but they use commas.
+    db_status :: String }
+
+data AutoRacingScheduleListingRaceResultRaceResultListingXml =
+  AutoRacingScheduleListingRaceResultRaceResultListingXml {
+    xml_finish_position :: Int,
+    xml_driver_id :: Int,
+    xml_name :: String,
+    xml_leading_laps :: Int,
+    xml_listing_laps :: Int, -- Avoid clash with race's "laps" field.
+    xml_earnings :: String, -- Should be an int, but they use commas.
+    xml_status :: String }
+  deriving (Eq, Show)
+
+instance ToDb AutoRacingScheduleListingRaceResultRaceResultListingXml where
+  type Db AutoRacingScheduleListingRaceResultRaceResultListingXml =
+    AutoRacingScheduleListingRaceResultRaceResultListing
+
+instance FromXmlFk AutoRacingScheduleListingRaceResultRaceResultListingXml where
+  type Parent AutoRacingScheduleListingRaceResultRaceResultListingXml =
+    AutoRacingScheduleListing
+
+  from_xml_fk fk AutoRacingScheduleListingRaceResultRaceResultListingXml{..} =
+    AutoRacingScheduleListingRaceResultRaceResultListing {
+      db_auto_racing_schedules_listings_id = fk,
+      db_finish_position = xml_finish_position,
+      db_driver_id = xml_driver_id,
+      db_name = xml_name,
+      db_leading_laps = xml_leading_laps,
+      db_listing_laps = xml_listing_laps,
+      db_earnings = xml_earnings,
+      db_status = xml_earnings }
+
+instance XmlImportFk AutoRacingScheduleListingRaceResultRaceResultListingXml
+
+---
+--- Database stuff.
+---
+
+instance DbImport Message where
+  dbmigrate _ =
+    run_dbmigrate $ do
+      migrate (undefined :: AutoRacingSchedule)
+      migrate (undefined :: AutoRacingScheduleListing)
+      migrate (undefined
+                 :: AutoRacingScheduleListingRaceResultRaceResultListing)
+
+  dbimport m = do
+    msg_id <- insert_xml m
+
+    forM_ (xml_listings m) $ \listing -> do
+      listing_id <- insert_xml_fk msg_id listing
+
+      mapM_ (insert_xml_fk_ listing_id) (result_listings listing)
+
+    return ImportSucceeded
+
+
+mkPersist tsn_codegen_config [groundhog|
+- entity: AutoRacingSchedule
+  dbName: auto_racing_schedules
+  constructors:
+    - name: AutoRacingSchedule
+      uniques:
+        - name: unique_auto_racing_schedule
+          type: constraint
+          # Prevent multiple imports of the same message.
+          fields: [db_xml_file_id]
+
+- entity: AutoRacingScheduleListing
+  dbName: auto_racing_schedules_listings
+  constructors:
+    - name: AutoRacingScheduleListing
+      fields:
+        - name: db_auto_racing_schedules_id
+          reference:
+            onDelete: cascade
+
+- entity: AutoRacingScheduleListingRaceResultRaceResultListing
+  dbName: auto_racing_schedules_listings_race_result_listings
+  constructors:
+    - name: AutoRacingScheduleListingRaceResultRaceResultListing
+      fields:
+        - name: db_auto_racing_schedules_listings_id
+          reference:
+            onDelete: cascade
+|]
+
+
+
+---
+--- Pickling
+---
+
+-- | Pickler for the top-level 'Message'.
+--
+pickle_message :: PU Message
+pickle_message =
+  xpElem "message" $
+    xpWrap (from_tuple, to_tuple) $
+    xp8Tuple (xpElem "XML_File_ID" xpInt)
+             (xpElem "heading" xpText)
+             (xpElem "category" xpText)
+             (xpElem "sport" xpText)
+             (xpElem "Title" xpText)
+             (xpElem "Complete_Through" xpText)
+             (xpList pickle_listing)
+             (xpElem "time_stamp" xp_time_stamp)
+  where
+    from_tuple = uncurryN Message
+    to_tuple m = (xml_xml_file_id m,
+                  xml_heading m,
+                  xml_category m,
+                  xml_sport m,
+                  xml_title m,
+                  xml_complete_through m,
+                  xml_listings m,
+                  xml_time_stamp m)
+
+
+pickle_listing :: PU AutoRacingScheduleListingXml
+pickle_listing =
+  xpElem "Listing" $
+    xpWrap (from_tuple, to_tuple) $
+      xp10Tuple (xpElem "RaceID" xpInt)
+                (xpElem "Race_Date" xp_date)
+                (xpElem "Race_Time" xp_tba_time)
+                (xpElem "RaceName" xpText)
+                (xpElem "TrackName" xpText)
+                (xpElem "Location" xpText)
+                (xpElem "TV_Listing" $ xpOption xpText)
+                (xpElem "Laps" xpInt)
+                (xpElem "TrackLength" xpText)
+                (xpList pickle_race_results)
+  where
+    from_tuple = uncurryN AutoRacingScheduleListingXml
+    to_tuple m = (xml_race_id m,
+                  xml_race_date m,
+                  xml_race_time m,
+                  xml_race_name m,
+                  xml_track_name m,
+                  xml_location m,
+                  xml_tv_listing m,
+                  xml_laps m,
+                  xml_track_length m,
+                  xml_race_results m)
+
+pickle_race_results :: PU AutoRacingScheduleListingRaceResult
+pickle_race_results =
+  xpElem "RaceResults" $
+    xpWrap (to_result, from_result) $
+      xpList pickle_race_results_listing
+  where
+    to_result = AutoRacingScheduleListingRaceResult
+    from_result = xml_race_result_listing
+
+pickle_race_results_listing ::
+  PU AutoRacingScheduleListingRaceResultRaceResultListingXml
+pickle_race_results_listing =
+  xpElem "RaceResultsListing" $
+    xpWrap (from_tuple, to_tuple) $
+      xp7Tuple (xpElem "FinishPosition" xpInt)
+               (xpElem "DriverID" xpInt)
+               (xpElem "Name" xpText)
+               (xpElem "LeadingLaps" xpInt)
+               (xpElem "Laps" xpInt)
+               (xpElem "Earnings" xpText)
+               (xpElem "Status" xpText)
+  where
+    from_tuple =
+      uncurryN AutoRacingScheduleListingRaceResultRaceResultListingXml
+
+    to_tuple m = (xml_finish_position m,
+                  xml_driver_id m,
+                  xml_name m,
+                  xml_leading_laps m,
+                  xml_listing_laps m,
+                  xml_earnings m,
+                  xml_status m)
+
+
+--
+-- Tasty Tests
+--
+
+-- | A list of all tests for this module.
+--
+auto_racing_schedule_tests :: TestTree
+auto_racing_schedule_tests =
+  testGroup
+    "AutoRacingSchedule tests"
+    [ test_on_delete_cascade,
+      test_pickle_of_unpickle_is_identity,
+      test_unpickle_succeeds ]
+
+-- | If we unpickle something and then pickle it, we should wind up
+--   with the same thing we started with. WARNING: success of this
+--   test does not mean that unpickling succeeded.
+--
+test_pickle_of_unpickle_is_identity :: TestTree
+test_pickle_of_unpickle_is_identity = testGroup "pickle-unpickle tests"
+  [ check "pickle composed with unpickle is the identity"
+          "test/xml/Auto_Racing_Schedule_XML.xml",
+
+    check "pickle composed with unpickle is the identity (miles track length)"
+          "test/xml/Auto_Racing_Schedule_XML-miles-track-length.xml" ]
+  where
+    check desc path = testCase desc $ do
+      (expected, actual) <- pickle_unpickle pickle_message path
+      actual @?= expected
+
+
+-- | Make sure we can actually unpickle these things.
+--
+test_unpickle_succeeds :: TestTree
+test_unpickle_succeeds = testGroup "unpickle tests"
+  [ check "unpickling succeeds"
+          "test/xml/Auto_Racing_Schedule_XML.xml",
+
+    check "unpickling succeeds (non-int team_id)"
+          "test/xml/Auto_Racing_Schedule_XML-miles-track-length.xml" ]
+  where
+    check desc path = testCase desc $ do
+      actual <- unpickleable path pickle_message
+      let expected = True
+      actual @?= expected
+
+
+-- | Make sure everything gets deleted when we delete the top-level
+--   record.
+--
+test_on_delete_cascade :: TestTree
+test_on_delete_cascade = testGroup "cascading delete tests"
+    [ check "deleting auto_racing_schedules deletes its children"
+          "test/xml/Auto_Racing_Schedule_XML.xml" ,
+
+    check ("deleting auto_racing_schedules deletes its children " ++
+            "(miles track length)")
+          "test/xml/Auto_Racing_Schedule_XML-miles-track-length.xml" ]
+  where
+    check desc path = testCase desc $ do
+      sched <- unsafe_unpickle path pickle_message
+      let a = undefined :: AutoRacingSchedule
+      let b = undefined :: AutoRacingScheduleListing
+      let c = undefined :: AutoRacingScheduleListingRaceResultRaceResultListing
+
+      actual <- withSqliteConn ":memory:" $ runDbConn $ do
+                  runMigration silentMigrationLogger $ do
+                    migrate a
+                    migrate b
+                    migrate c
+                  _ <- dbimport sched
+                  -- No idea how 'delete' works, so do this instead.
+                  executeRaw False "DELETE FROM auto_racing_schedules;" []
+                  count_a <- countAll a
+                  count_b <- countAll b
+                  count_c <- countAll c
+                  return $ sum [count_a, count_b, count_c]
+      let expected = 0
+      actual @?= expected
index d06efa309c54aa1ffeed18b0920f54d0f428e79d..051d1f01c6c2444a159bacbad770c0fd83772f0e 100644 (file)
@@ -1,5 +1,6 @@
 import Test.Tasty ( TestTree, defaultMain, testGroup )
 
+import TSN.XML.AutoRacingSchedule ( auto_racing_schedule_tests )
 import TSN.XML.Heartbeat ( heartbeat_tests )
 import TSN.XML.Injuries ( injuries_tests )
 import TSN.XML.InjuriesDetail ( injuries_detail_tests )
@@ -10,7 +11,8 @@ import TSN.XML.Weather ( weather_tests )
 tests :: TestTree
 tests = testGroup
           "All tests"
-          [ heartbeat_tests,
+          [ auto_racing_schedule_tests,
+            heartbeat_tests,
             injuries_tests,
             injuries_detail_tests,
             news_tests,
index afce3e51ede8b7ba8ab9ee099cf4a7a9e9426ba5..7bf5456fed8c42ede7a41e9ea4cbc01f8eff52f2 100644 (file)
@@ -15,15 +15,15 @@ rm -f shelltest.sqlite3
 # Heartbeat.xml that doesn't really count.
 find ./test/xml -name '*.xml' | wc -l
 >>>
-12
+14
 >>>= 0
 
 # Run the imports again; we should get complaints about the duplicate
-# xml_file_ids. There are 2 errors for each violation, so we expect 2*11
+# xml_file_ids. There are 2 errors for each violation, so we expect 2*13
 # occurrences of the string 'ERROR'.
 ./dist/build/htsn-import/htsn-import -c 'shelltest.sqlite3' test/xml/*.xml 2>&1 | grep ERROR | wc -l
 >>>
-22
+26
 >>>= 0
 
 # Finally, clean up after ourselves.
diff --git a/test/xml/Auto_Racing_Schedule_XML.dtd b/test/xml/Auto_Racing_Schedule_XML.dtd
new file mode 100644 (file)
index 0000000..167929a
--- /dev/null
@@ -0,0 +1,26 @@
+<!ELEMENT XML_File_ID (#PCDATA)>
+<!ELEMENT heading (#PCDATA)>
+<!ELEMENT category (#PCDATA)>
+<!ELEMENT sport (#PCDATA)>
+<!ELEMENT Title (#PCDATA)>
+<!ELEMENT Complete_Through (#PCDATA)>
+<!ELEMENT RaceID (#PCDATA)>
+<!ELEMENT Race_Date (#PCDATA)>
+<!ELEMENT Race_Time (#PCDATA)>
+<!ELEMENT RaceName (#PCDATA)>
+<!ELEMENT TrackName (#PCDATA)>
+<!ELEMENT Location (#PCDATA)>
+<!ELEMENT TV_Listing (#PCDATA)>
+<!ELEMENT Laps (#PCDATA)>
+<!ELEMENT TrackLength (#PCDATA)>
+<!ELEMENT FinishPosition (#PCDATA)>
+<!ELEMENT DriverID (#PCDATA)>
+<!ELEMENT Name (#PCDATA)>
+<!ELEMENT LeadingLaps (#PCDATA)>
+<!ELEMENT Earnings (#PCDATA)>
+<!ELEMENT Status (#PCDATA)>
+<!ELEMENT RaceResultsListing ( ( FinishPosition, DriverID, Name, LeadingLaps, Laps, Earnings, Status ) )>
+<!ELEMENT RaceResults ( RaceResultsListing* )>
+<!ELEMENT Listing ( ( RaceID, Race_Date, Race_Time, RaceName, TrackName, Location, TV_Listing, Laps, TrackLength, RaceResults ) )>
+<!ELEMENT time_stamp (#PCDATA)>
+<!ELEMENT message ( ( XML_File_ID, heading, category, sport, Title, Complete_Through, Listing*, time_stamp ) )>
diff --git a/test/xml/Auto_Racing_Schedule_XML.xml b/test/xml/Auto_Racing_Schedule_XML.xml
new file mode 100644 (file)
index 0000000..5605102
--- /dev/null
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no" ?>\r<!DOCTYPE message PUBLIC "-//TSN//DTD Leader 1.0/EN" "Auto_Racing_Schedule_XML.dtd">\r<message>\r<XML_File_ID>20136714</XML_File_ID>\r<heading>BFX%SCHEDULE</heading>\r<category>Statistics</category>\r<sport>NASCAR</sport>\r<Title>2013 NASCAR Sprint Cup Schedule</Title>\r<Complete_Through>Complete through </Complete_Through>\r<Listing>\r<RaceID>1492</RaceID>\r<Race_Date>02/16/2013</Race_Date>\r<Race_Time>08:10 PM</Race_Time>\r<RaceName>Sprint Unlimited at Daytona</RaceName>\r<TrackName>Daytona International Speedway</TrackName>\r<Location>Daytona Beach, FL</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>75</Laps>\r<TrackLength>2.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>40</LeadingLaps>\r<Laps>75</Laps>\r<Earnings>205,075</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>49</DriverID>\r<Name>Greg Biffle</Name>\r<LeadingLaps>2</LeadingLaps>\r<Laps>75</Laps>\r<Earnings>101,325</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>75</Laps>\r<Earnings>61,325</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>43</DriverID>\r<Name>Tony Stewart</Name>\r<LeadingLaps>5</LeadingLaps>\r<Laps>75</Laps>\r<Earnings>52,325</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>26</LeadingLaps>\r<Laps>75</Laps>\r<Earnings>51,300</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1493</RaceID>\r<Race_Date>02/21/2013</Race_Date>\r<Race_Time>02:00 PM</Race_Time>\r<RaceName>Budweiser Duel 1</RaceName>\r<TrackName>Daytona International Speedway</TrackName>\r<Location>Daytona Beach, FL</Location>\r<TV_Listing>SPEED</TV_Listing>\r<Laps>60</Laps>\r<TrackLength>2.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>23</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>57,792</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>49</DriverID>\r<Name>Greg Biffle</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>42,789</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>59</DriverID>\r<Name>Juan Pablo Montoya</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>37,789</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>23,789</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>30,789</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1494</RaceID>\r<Race_Date>02/21/2013</Race_Date>\r<Race_Time>04:00 PM</Race_Time>\r<RaceName>Budweiser Duel 2</RaceName>\r<TrackName>Daytona International Speedway</TrackName>\r<Location>Daytona Beach, FL</Location>\r<TV_Listing>SPEED</TV_Listing>\r<Laps>60</Laps>\r<TrackLength>2.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>19</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>58,977</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>43,963</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>1321</DriverID>\r<Name>Austin Dillon</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>38,963</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>1</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>33,963</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>31,963</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1495</RaceID>\r<Race_Date>02/24/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>Daytona 500</RaceName>\r<TrackName>Daytona International Speedway</TrackName>\r<Location>Daytona Beach, FL</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>200</Laps>\r<TrackLength>2.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>17</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>1,525,275</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>1,104,814</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>32</DriverID>\r<Name>Mark Martin</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>817,013</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>433</DriverID>\r<Name>Brad Keselowski</Name>\r<LeadingLaps>13</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>707,855</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>47</DriverID>\r<Name>Ryan Newman</Name>\r<LeadingLaps>3</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>578,471</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1496</RaceID>\r<Race_Date>03/03/2013</Race_Date>\r<Race_Time>03:00 PM</Race_Time>\r<RaceName>Subway Fresh Fit 500</RaceName>\r<TrackName>Phoenix International Raceway</TrackName>\r<Location>Avondale, AZ</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>316</Laps>\r<TrackLength>1.0</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>127</DriverID>\r<Name>Carl Edwards</Name>\r<LeadingLaps>122</LeadingLaps>\r<Laps>316</Laps>\r<Earnings>298,875</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>1</LeadingLaps>\r<Laps>316</Laps>\r<Earnings>209,686</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>490</DriverID>\r<Name>Denny Hamlin</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>316</Laps>\r<Earnings>157,575</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>433</DriverID>\r<Name>Brad Keselowski</Name>\r<LeadingLaps>16</LeadingLaps>\r<Laps>316</Laps>\r<Earnings>168,076</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>47</LeadingLaps>\r<Laps>316</Laps>\r<Earnings>130,750</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1497</RaceID>\r<Race_Date>03/10/2013</Race_Date>\r<Race_Time>03:00 PM</Race_Time>\r<RaceName>Kobalt Tools 400</RaceName>\r<TrackName>Las Vegas Motor Speedway</TrackName>\r<Location>Las Vegas, NV</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>267</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>42</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>408,666</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>114</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>284,340</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>433</DriverID>\r<Name>Brad Keselowski</Name>\r<LeadingLaps>12</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>248,956</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>27</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>208,698</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>127</DriverID>\r<Name>Carl Edwards</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>180,590</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1498</RaceID>\r<Race_Date>03/17/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>Food City 500</RaceName>\r<TrackName>Bristol Motor Speedway</TrackName>\r<Location>Bristol, TN</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>500</Laps>\r<TrackLength>0.533</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>109</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>176,760</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>56</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>188,893</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>433</DriverID>\r<Name>Brad Keselowski</Name>\r<LeadingLaps>62</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>168,651</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>1</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>134,255</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>144,543</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1499</RaceID>\r<Race_Date>03/24/2013</Race_Date>\r<Race_Time>03:00 PM</Race_Time>\r<RaceName>Auto Club 400</RaceName>\r<TrackName>Auto Club Speedway</TrackName>\r<Location>Fontana, CA</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>200</Laps>\r<TrackLength>2.0</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>125</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>334,233</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>212,340</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>41</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>193,673</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>127</DriverID>\r<Name>Carl Edwards</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>181,815</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>146,585</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1500</RaceID>\r<Race_Date>04/07/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>STP Gas Booster 500</RaceName>\r<TrackName>Martinsville Speedway</TrackName>\r<Location>Martinsville, VA</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>500</Laps>\r<TrackLength>0.526</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>346</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>214,471</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>164,893</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>22</DriverID>\r<Name>Jeff Gordon</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>146,446</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>112,385</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>56</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>145,278</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1501</RaceID>\r<Race_Date>04/13/2013</Race_Date>\r<Race_Time>07:30 PM</Race_Time>\r<RaceName>NRA 500</RaceName>\r<TrackName>Texas Motor Speedway</TrackName>\r<Location>Fort Worth, TX</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>334</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>171</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>550,858</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>266</DriverID>\r<Name>Martin Truex Jr.</Name>\r<LeadingLaps>142</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>346,555</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>127</DriverID>\r<Name>Carl Edwards</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>268,605</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>49</DriverID>\r<Name>Greg Biffle</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>214,855</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>1</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>209,913</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1502</RaceID>\r<Race_Date>04/21/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>STP 400</RaceName>\r<TrackName>Kansas Speedway</TrackName>\r<Location>Kansas City, KS</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>267</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>163</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>263,816</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>182,085</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>9</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>185,021</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>266</DriverID>\r<Name>Martin Truex Jr.</Name>\r<LeadingLaps>46</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>155,985</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>156,218</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1503</RaceID>\r<Race_Date>04/27/2013</Race_Date>\r<Race_Time>07:30 PM</Race_Time>\r<RaceName>Toyota Owners 400</RaceName>\r<TrackName>Richmond International Raceway</TrackName>\r<Location>Richmond, VA</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>406</Laps>\r<TrackLength>0.75</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>3</LeadingLaps>\r<Laps>406</Laps>\r<Earnings>242,511</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>113</LeadingLaps>\r<Laps>406</Laps>\r<Earnings>196,668</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>406</Laps>\r<Earnings>161,618</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>59</DriverID>\r<Name>Juan Pablo Montoya</Name>\r<LeadingLaps>67</LeadingLaps>\r<Laps>406</Laps>\r<Earnings>147,474</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>16</DriverID>\r<Name>Jeff Burton</Name>\r<LeadingLaps>7</LeadingLaps>\r<Laps>406</Laps>\r<Earnings>118,435</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1504</RaceID>\r<Race_Date>05/05/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>Aaron's 499</RaceName>\r<TrackName>Talladega Superspeedway</TrackName>\r<Location>Talladega, AL</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>192</Laps>\r<TrackLength>2.66</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>455</DriverID>\r<Name>David Ragan</Name>\r<LeadingLaps>4</LeadingLaps>\r<Laps>192</Laps>\r<Earnings>373,108</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>399</DriverID>\r<Name>David Gilliland</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>192</Laps>\r<Earnings>235,153</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>127</DriverID>\r<Name>Carl Edwards</Name>\r<LeadingLaps>5</LeadingLaps>\r<Laps>192</Laps>\r<Earnings>207,720</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>46</DriverID>\r<Name>Michael Waltrip</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>192</Laps>\r<Earnings>155,620</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>16</LeadingLaps>\r<Laps>192</Laps>\r<Earnings>181,426</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1505</RaceID>\r<Race_Date>05/11/2013</Race_Date>\r<Race_Time>07:00 PM</Race_Time>\r<RaceName>Bojangles Southern 500</RaceName>\r<TrackName>Darlington Raceway</TrackName>\r<Location>Darlington, SC</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>367</Laps>\r<TrackLength>1.366</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>17</LeadingLaps>\r<Laps>367</Laps>\r<Earnings>314,866</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>490</DriverID>\r<Name>Denny Hamlin</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>367</Laps>\r<Earnings>211,465</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>22</DriverID>\r<Name>Jeff Gordon</Name>\r<LeadingLaps>16</LeadingLaps>\r<Laps>367</Laps>\r<Earnings>200,026</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>367</Laps>\r<Earnings>178,876</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>367</Laps>\r<Earnings>165,976</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1506</RaceID>\r<Race_Date>05/18/2013</Race_Date>\r<Race_Time>07:30 PM</Race_Time>\r<RaceName>Sprint Showdown</RaceName>\r<TrackName>Charlotte Motor Speedway</TrackName>\r<Location>Concord, NC</Location>\r<TV_Listing>SPEED</TV_Listing>\r<Laps>40</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>34</DriverID>\r<Name>Jamie McMurray</Name>\r<LeadingLaps>40</LeadingLaps>\r<Laps>40</Laps>\r<Earnings>50,915</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>1341</DriverID>\r<Name>Ricky Stenhouse Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>40</Laps>\r<Earnings>40,915</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>16</DriverID>\r<Name>Jeff Burton</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>40</Laps>\r<Earnings>36,640</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>310</DriverID>\r<Name>Paul Menard</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>40</Laps>\r<Earnings>34,540</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>266</DriverID>\r<Name>Martin Truex Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>40</Laps>\r<Earnings>33,540</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1507</RaceID>\r<Race_Date>05/18/2013</Race_Date>\r<Race_Time>09:00 PM</Race_Time>\r<RaceName>NASCAR Sprint All-Star Race</RaceName>\r<TrackName>Charlotte Motor Speedway</TrackName>\r<Location>Concord, NC</Location>\r<TV_Listing>SPEED</TV_Listing>\r<Laps>90</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>10</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>1,039,175</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>244,175</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>29</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>144,175</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>11</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>114,150</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>29</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>109,150</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1508</RaceID>\r<Race_Date>05/26/2013</Race_Date>\r<Race_Time>06:00 PM</Race_Time>\r<RaceName>Coca-Cola 600</RaceName>\r<TrackName>Charlotte Motor Speedway</TrackName>\r<Location>Concord, NC</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>400</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>28</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>407,011</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>161</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>291,615</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>8</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>218,560</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>490</DriverID>\r<Name>Denny Hamlin</Name>\r<LeadingLaps>6</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>220,915</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>174,823</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1509</RaceID>\r<Race_Date>06/02/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>FedEx 400</RaceName>\r<TrackName>Dover International Speedway</TrackName>\r<Location>Dover, DE</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>400</Laps>\r<TrackLength>1.0</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>43</DriverID>\r<Name>Tony Stewart</Name>\r<LeadingLaps>139</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>318,100</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>59</DriverID>\r<Name>Juan Pablo Montoya</Name>\r<LeadingLaps>19</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>226,504</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>22</DriverID>\r<Name>Jeff Gordon</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>203,051</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>150</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>196,198</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>433</DriverID>\r<Name>Brad Keselowski</Name>\r<LeadingLaps>2</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>177,431</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1510</RaceID>\r<Race_Date>06/09/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>Party in the Poconos 400</RaceName>\r<TrackName>Pocono Raceway</TrackName>\r<Location>Long Pond, PA</Location>\r<TV_Listing>TNT</TV_Listing>\r<Laps>160</Laps>\r<TrackLength>2.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>128</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>244,436</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>49</DriverID>\r<Name>Greg Biffle</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>179,185</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>143,060</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>43</DriverID>\r<Name>Tony Stewart</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>165,810</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>47</DriverID>\r<Name>Ryan Newman</Name>\r<LeadingLaps>19</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>144,343</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1511</RaceID>\r<Race_Date>06/16/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>Quicken Loans 400</RaceName>\r<TrackName>Michigan International Speedway</TrackName>\r<Location>Brooklyn, MI</Location>\r<TV_Listing>TNT</TV_Listing>\r<Laps>200</Laps>\r<TrackLength>2.0</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>49</DriverID>\r<Name>Greg Biffle</Name>\r<LeadingLaps>48</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>240,460</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>173,781</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>266</DriverID>\r<Name>Martin Truex Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>145,670</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>148,803</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>43</DriverID>\r<Name>Tony Stewart</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>142,085</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1513</RaceID>\r<Race_Date>06/23/2013</Race_Date>\r<Race_Time>03:00 PM</Race_Time>\r<RaceName>Toyota/Save Mart 350</RaceName>\r<TrackName>Sonoma Raceway</TrackName>\r<Location>Sonoma, CA</Location>\r<TV_Listing>TNT</TV_Listing>\r<Laps>110</Laps>\r<TrackLength>1.99</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>266</DriverID>\r<Name>Martin Truex Jr.</Name>\r<LeadingLaps>51</LeadingLaps>\r<Laps>110</Laps>\r<Earnings>309,250</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>22</DriverID>\r<Name>Jeff Gordon</Name>\r<LeadingLaps>4</LeadingLaps>\r<Laps>110</Laps>\r<Earnings>240,451</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>127</DriverID>\r<Name>Carl Edwards</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>110</Laps>\r<Earnings>198,140</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>15</LeadingLaps>\r<Laps>110</Laps>\r<Earnings>154,860</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>110</Laps>\r<Earnings>157,548</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1514</RaceID>\r<Race_Date>06/30/2013</Race_Date>\r<Race_Time>12:00 PM</Race_Time>\r<RaceName>Quaker State 400</RaceName>\r<TrackName>Kentucky Speedway</TrackName>\r<Location>Sparta, KY</Location>\r<TV_Listing>TNT</TV_Listing>\r<Laps>267</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>38</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>200,451</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>34</DriverID>\r<Name>Jamie McMurray</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>159,115</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>146,078</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>130,338</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>139,743</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1515</RaceID>\r<Race_Date>07/06/2013</Race_Date>\r<Race_Time>07:30 PM</Race_Time>\r<RaceName>Coke Zero 400</RaceName>\r<TrackName>Daytona International Speedway</TrackName>\r<Location>Daytona Beach, FL</Location>\r<TV_Listing>TNT</TV_Listing>\r<Laps>161</Laps>\r<TrackLength>2.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>94</LeadingLaps>\r<Laps>161</Laps>\r<Earnings>327,961</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>43</DriverID>\r<Name>Tony Stewart</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>161</Laps>\r<Earnings>254,490</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>161</Laps>\r<Earnings>224,301</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>161</Laps>\r<Earnings>182,073</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>46</DriverID>\r<Name>Michael Waltrip</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>161</Laps>\r<Earnings>141,365</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1516</RaceID>\r<Race_Date>07/14/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>Camping World RV Sales 301</RaceName>\r<TrackName>New Hampshire Motor Speedway</TrackName>\r<Location>Loudon, NH</Location>\r<TV_Listing>TNT</TV_Listing>\r<Laps>302</Laps>\r<TrackLength>1.058</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>118</DriverID>\r<Name>Brian Vickers</Name>\r<LeadingLaps>16</LeadingLaps>\r<Laps>302</Laps>\r<Earnings>214,075</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>53</LeadingLaps>\r<Laps>302</Laps>\r<Earnings>228,043</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>16</DriverID>\r<Name>Jeff Burton</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>302</Laps>\r<Earnings>147,135</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>433</DriverID>\r<Name>Brad Keselowski</Name>\r<LeadingLaps>14</LeadingLaps>\r<Laps>302</Laps>\r<Earnings>179,076</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>580</DriverID>\r<Name>Aric Almirola</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>302</Laps>\r<Earnings>152,496</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1517</RaceID>\r<Race_Date>07/28/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>Crown Royal 400 at the Brickyard</RaceName>\r<TrackName>Indianapolis Motor Speedway</TrackName>\r<Location>Indianapolis, IN</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>160</Laps>\r<TrackLength>2.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>47</DriverID>\r<Name>Ryan Newman</Name>\r<LeadingLaps>45</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>423,033</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>73</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>379,736</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>299,500</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>43</DriverID>\r<Name>Tony Stewart</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>300,650</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>273,266</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1518</RaceID>\r<Race_Date>08/04/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>GoBowling.com 400</RaceName>\r<TrackName>Pocono Raceway</TrackName>\r<Location>Long Pond, PA</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>160</Laps>\r<TrackLength>2.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>66</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>208,500</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>22</DriverID>\r<Name>Jeff Gordon</Name>\r<LeadingLaps>7</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>199,221</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>9</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>153,930</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>47</DriverID>\r<Name>Ryan Newman</Name>\r<LeadingLaps>2</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>161,343</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>2</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>130,585</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1519</RaceID>\r<Race_Date>08/11/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>Cheez-It 355 at the Glen</RaceName>\r<TrackName>Watkins Glen International</TrackName>\r<Location>Watkins Glen, NY</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>90</Laps>\r<TrackLength>2.45</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>29</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>236,658</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>433</DriverID>\r<Name>Brad Keselowski</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>204,876</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>266</DriverID>\r<Name>Martin Truex Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>161,735</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>127</DriverID>\r<Name>Carl Edwards</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>149,360</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>59</DriverID>\r<Name>Juan Pablo Montoya</Name>\r<LeadingLaps>1</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>137,524</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1520</RaceID>\r<Race_Date>08/18/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>Pure Michigan 400</RaceName>\r<TrackName>Michigan International Speedway</TrackName>\r<Location>Brooklyn, MI</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>200</Laps>\r<TrackLength>2.0</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>51</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>252,393</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>180,731</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>43</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>136,315</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>310</DriverID>\r<Name>Paul Menard</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>143,486</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>145,493</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1521</RaceID>\r<Race_Date>08/24/2013</Race_Date>\r<Race_Time>07:30 PM</Race_Time>\r<RaceName>IRWIN Tools Night Race</RaceName>\r<TrackName>Bristol Motor Speedway</TrackName>\r<Location>Bristol, TN</Location>\r<TV_Listing>ABC</TV_Listing>\r<Laps>500</Laps>\r<TrackLength>0.533</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>149</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>328,466</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>214,815</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>59</DriverID>\r<Name>Juan Pablo Montoya</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>200,529</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>118</DriverID>\r<Name>Brian Vickers</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>150,315</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>155,973</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1522</RaceID>\r<Race_Date>09/01/2013</Race_Date>\r<Race_Time>07:30 PM</Race_Time>\r<RaceName>AdvoCare 500</RaceName>\r<TrackName>Atlanta Motor Speedway</TrackName>\r<Location>Hampton, GA</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>325</Laps>\r<TrackLength>1.54</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>36</LeadingLaps>\r<Laps>325</Laps>\r<Earnings>338,058</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>78</LeadingLaps>\r<Laps>325</Laps>\r<Earnings>244,473</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>266</DriverID>\r<Name>Martin Truex Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>325</Laps>\r<Earnings>207,065</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>325</Laps>\r<Earnings>165,235</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>47</DriverID>\r<Name>Ryan Newman</Name>\r<LeadingLaps>3</LeadingLaps>\r<Laps>325</Laps>\r<Earnings>167,848</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1523</RaceID>\r<Race_Date>09/07/2013</Race_Date>\r<Race_Time>07:30 PM</Race_Time>\r<RaceName>Federated Auto Parts 400</RaceName>\r<TrackName>Richmond International Raceway</TrackName>\r<Location>Richmond, VA</Location>\r<TV_Listing>ABC</TV_Listing>\r<Laps>400</Laps>\r<TrackLength>0.75</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>127</DriverID>\r<Name>Carl Edwards</Name>\r<LeadingLaps>46</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>286,475</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>73</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>185,355</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>47</DriverID>\r<Name>Ryan Newman</Name>\r<LeadingLaps>4</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>181,443</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>34</DriverID>\r<Name>Jamie McMurray</Name>\r<LeadingLaps>6</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>151,805</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>310</DriverID>\r<Name>Paul Menard</Name>\r<LeadingLaps>3</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>140,701</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1524</RaceID>\r<Race_Date>09/15/2013</Race_Date>\r<Race_Time>02:00 PM</Race_Time>\r<RaceName>GEICO 400</RaceName>\r<TrackName>Chicagoland Speedway</TrackName>\r<Location>Joliet, IL</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>267</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>89</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>334,891</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>67</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>261,048</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>2</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>221,326</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>169,960</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>40</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>176,926</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1525</RaceID>\r<Race_Date>09/22/2013</Race_Date>\r<Race_Time>02:00 PM</Race_Time>\r<RaceName>Sylvania 300</RaceName>\r<TrackName>New Hampshire Motor Speedway</TrackName>\r<Location>Loudon, NH</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>300</Laps>\r<TrackLength>1.058</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>106</LeadingLaps>\r<Laps>300</Laps>\r<Earnings>262,066</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>300</Laps>\r<Earnings>210,143</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>49</DriverID>\r<Name>Greg Biffle</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>300</Laps>\r<Earnings>151,785</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>1</LeadingLaps>\r<Laps>300</Laps>\r<Earnings>160,796</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>34</DriverID>\r<Name>Jamie McMurray</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>300</Laps>\r<Earnings>142,005</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1526</RaceID>\r<Race_Date>09/29/2013</Race_Date>\r<Race_Time>02:00 PM</Race_Time>\r<RaceName>AAA 400</RaceName>\r<TrackName>Dover International Speedway</TrackName>\r<Location>Dover, DE</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>400</Laps>\r<TrackLength>1.0</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>243</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>243,836</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>80</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>197,210</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>166,068</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>22</DriverID>\r<Name>Jeff Gordon</Name>\r<LeadingLaps>3</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>168,296</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>30</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>162,068</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1527</RaceID>\r<Race_Date>10/06/2013</Race_Date>\r<Race_Time>02:00 PM</Race_Time>\r<RaceName>Hollywood Casino 400</RaceName>\r<TrackName>Kansas Speedway</TrackName>\r<Location>Kansas City, KS</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>267</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>138</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>364,636</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>229,810</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>22</DriverID>\r<Name>Jeff Gordon</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>216,776</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>33</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>176,473</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>127</DriverID>\r<Name>Carl Edwards</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>169,965</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1528</RaceID>\r<Race_Date>10/12/2013</Race_Date>\r<Race_Time>07:30 PM</Race_Time>\r<RaceName>Bank of America 500</RaceName>\r<TrackName>Charlotte Motor Speedway</TrackName>\r<Location>Concord, NC</Location>\r<TV_Listing>ABC</TV_Listing>\r<Laps>334</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>433</DriverID>\r<Name>Brad Keselowski</Name>\r<LeadingLaps>11</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>314,441</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>138</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>224,810</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>1</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>199,426</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>130</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>192,721</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>4</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>163,568</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1529</RaceID>\r<Race_Date>10/20/2013</Race_Date>\r<Race_Time>02:00 PM</Race_Time>\r<RaceName>Camping World RV Sales 500</RaceName>\r<TrackName>Talladega Superspeedway</TrackName>\r<Location>Talladega, AL</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>188</Laps>\r<TrackLength>2.66</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>34</DriverID>\r<Name>Jamie McMurray</Name>\r<LeadingLaps>16</LeadingLaps>\r<Laps>188</Laps>\r<Earnings>236,345</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>38</LeadingLaps>\r<Laps>188</Laps>\r<Earnings>185,410</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>1341</DriverID>\r<Name>Ricky Stenhouse Jr.</Name>\r<LeadingLaps>6</LeadingLaps>\r<Laps>188</Laps>\r<Earnings>187,596</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>310</DriverID>\r<Name>Paul Menard</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>188</Laps>\r<Earnings>154,726</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>9</LeadingLaps>\r<Laps>188</Laps>\r<Earnings>162,068</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1530</RaceID>\r<Race_Date>10/27/2013</Race_Date>\r<Race_Time>02:00 PM</Race_Time>\r<RaceName>Goody's Headache Relief Shot 500</RaceName>\r<TrackName>Martinsville Speedway</TrackName>\r<Location>Ridgeway, VA</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>500</Laps>\r<TrackLength>0.526</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>22</DriverID>\r<Name>Jeff Gordon</Name>\r<LeadingLaps>78</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>188,796</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>202</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>177,736</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>60</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>141,478</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>433</DriverID>\r<Name>Brad Keselowski</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>153,436</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>123</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>144,046</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1531</RaceID>\r<Race_Date>11/03/2013</Race_Date>\r<Race_Time>03:00 PM</Race_Time>\r<RaceName>AAA Texas 500</RaceName>\r<TrackName>Texas Motor Speedway</TrackName>\r<Location>Fort Worth, TX</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>334</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>255</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>484,211</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>337,810</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>1</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>256,393</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>3</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>238,776</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>180,585</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1532</RaceID>\r<Race_Date>11/10/2013</Race_Date>\r<Race_Time>03:00 PM</Race_Time>\r<RaceName>AdvoCare 500</RaceName>\r<TrackName>Phoenix International Raceway</TrackName>\r<Location>Avondale, AZ</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>312</Laps>\r<TrackLength>1.0</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>70</LeadingLaps>\r<Laps>312</Laps>\r<Earnings>263,386</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>41</LeadingLaps>\r<Laps>312</Laps>\r<Earnings>171,715</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>1</LeadingLaps>\r<Laps>312</Laps>\r<Earnings>182,326</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>2</LeadingLaps>\r<Laps>312</Laps>\r<Earnings>131,135</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>312</Laps>\r<Earnings>137,630</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1533</RaceID>\r<Race_Date>11/17/2013</Race_Date>\r<Race_Time>03:00 PM</Race_Time>\r<RaceName>Ford EcoBoost 400</RaceName>\r<TrackName>Homestead-Miami Speedway</TrackName>\r<Location>Homestead, FL</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>267</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>490</DriverID>\r<Name>Denny Hamlin</Name>\r<LeadingLaps>72</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>322,350</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>144</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>293,251</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>28</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>203,860</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>266</DriverID>\r<Name>Martin Truex Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>179,435</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>167,968</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<time_stamp> January 13, 2014, at 11:34 AM ET </time_stamp>\r</message>\r
\ No newline at end of file