diff --git a/llms/__init__.py b/llms/__init__.py index e69de29..c8efa6f 100644 --- a/llms/__init__.py +++ b/llms/__init__.py @@ -0,0 +1,3 @@ +from llms.openai_llm import llm + +__all__ = [llm] \ No newline at end of file diff --git a/llms/openai_llm.py b/llms/openai_llm.py new file mode 100644 index 0000000..d087402 --- /dev/null +++ b/llms/openai_llm.py @@ -0,0 +1,9 @@ +from dotenv import load_dotenv +from langchain_openai import ChatOpenAI + +load_dotenv() + +# Initialize ChatOpenAI +llm = ChatOpenAI(temperature=0, model="gpt-4o-mini", verbose=True) + +__all__ = [llm] diff --git a/requirements.txt b/requirements.txt index 2c922a4..aca6290 100644 Binary files a/requirements.txt and b/requirements.txt differ diff --git a/synthetic_data/config/Cars_config.json b/synthetic_data/config/Cars_config.json index 41d9603..e032646 100644 --- a/synthetic_data/config/Cars_config.json +++ b/synthetic_data/config/Cars_config.json @@ -1,52 +1 @@ -{ - "car_id ": { - "data_type": "string", - "example_data": "[]", - "foreign_key": 0 - }, - "make ": { - "data_type": "string", - "example_data": "['Honda', 'Hyundai', 'BMW']", - "foreign_key": 0 - }, - "model ": { - "data_type": "string", - "example_data": "['City', 'i20', 'X1']", - "foreign_key": 0 - }, - "year ": { - "data_type": "string", - "example_data": "[]", - "foreign_key": 0 - }, - "color ": { - "data_type": "string", - "example_data": "[]", - "foreign_key": 0 - }, - "engine_type ": { - "data_type": "string", - "example_data": "[]", - "foreign_key": 0 - }, - "price ": { - "data_type": "string", - "example_data": "[]", - "foreign_key": 0 - }, - "owner_id ": { - "data_type": "string", - "example_data": "[]", - "foreign_key": 0 - }, - "description ": { - "data_type": "string", - "example_data": "[]", - "foreign_key": 0 - }, - "dealer_id ": { - "data_type": "string", - "example_data": "[]", - "foreign_key": 0 - } -} \ No newline at end of file +{"car_id ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "make ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "model ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "year ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "color ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "mileage ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "price ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "engine_type ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "transmission ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "fuel_type ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "service_history_id ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "description ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "created_at ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "updated_at ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "showroom_id": {"data_type": "string", "example_data": "[]", "foreign_key": 1}} \ No newline at end of file diff --git a/synthetic_data/config/Showroom_config.json b/synthetic_data/config/Showroom_config.json index faf5acf..339b3c4 100644 --- a/synthetic_data/config/Showroom_config.json +++ b/synthetic_data/config/Showroom_config.json @@ -1 +1 @@ -{"showroom_id ": {"data_type": "string", "example_data": "[]"}, "showroom_name ": {"data_type": "string", "example_data": "[]"}, "location ": {"data_type": "string", "example_data": "[]"}, "manager_id ": {"data_type": "string", "example_data": "[]"}, "contact_number ": {"data_type": "string", "example_data": "[]"}, "opening_hours ": {"data_type": "string", "example_data": "[]"}, "capacity ": {"data_type": "string", "example_data": "[]"}, "description ": {"data_type": "string", "example_data": "[]"}, "brand_id ": {"data_type": "string", "example_data": "[]"}, "city_id ": {"data_type": "string", "example_data": "[]"}} \ No newline at end of file +{"showroom_id ": {"data_type": "string", "example_data": "['SHRM12589', 'SHRM55896']", "foreign_key": 0}, "showroom_name ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "location ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "manager_id ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "contact_number ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "opening_hours ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "capacity ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "description ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "brand_id ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}, "created_at ": {"data_type": "string", "example_data": "[]", "foreign_key": 0}} \ No newline at end of file diff --git a/synthetic_data/data/products/Cars_data.csv b/synthetic_data/data/products/Cars_data.csv index 5b1dc60..4dff200 100644 --- a/synthetic_data/data/products/Cars_data.csv +++ b/synthetic_data/data/products/Cars_data.csv @@ -1,501 +1,1001 @@ -car_id,make,model,year,color,engine_type,price,owner_id,description,dealer_id -cy59922,Honda,X1,1977,Coral,Petrol,"$73,203.68",owner_38059,Blood now tonight gas interesting political.,dealer_94206 -Kt24904,BMW,X1,1994,DarkCyan,Petrol,$5.12,owner_25412,Western every decade much program imagine.,dealer_07267 -rx47343,Hyundai,i20,1978,Khaki,Hybrid,"$1,142.09",owner_49658,Here up middle remain.,dealer_95199 -aO90783,Hyundai,i20,1972,DarkRed,Diesel,"$25,508.84",owner_25466,Final way race them drive.,dealer_18956 -RR16133,Honda,X1,1979,SkyBlue,Hybrid,$487.08,owner_10624,Man president thousand expert land issue account.,dealer_10542 -Pe16617,BMW,X1,1989,LemonChiffon,Diesel,$57.62,owner_71130,Party smile challenge claim.,dealer_86522 -UQ24864,Honda,X1,2002,SlateGray,Hybrid,$3.17,owner_22208,Owner treat quickly shoulder reality increase staff you.,dealer_03583 -Qy35344,Honda,i20,2000,DimGray,Electric,"$9,500.03",owner_24818,Bank skin grow note store like whatever.,dealer_89273 -Dh52303,Hyundai,X1,1980,Fuchsia,Hybrid,$236.85,owner_09808,Seven of war like Republican.,dealer_73447 -Zg90518,Hyundai,X1,2013,GoldenRod,Hybrid,$44.31,owner_47267,Eat individual like away yeah owner hour.,dealer_08761 -GG08672,Honda,i20,2003,SaddleBrown,Petrol,"$65,907.83",owner_76616,Body really effect the budget.,dealer_85393 -eH81949,BMW,X1,1999,OldLace,Electric,"$5,163.76",owner_91197,Prevent as later letter successful some.,dealer_48041 -zm12051,Honda,X1,1983,BurlyWood,Diesel,$5.12,owner_44295,Data people contain relate decide director rule know.,dealer_42596 -Pm06174,Honda,City,1995,SeaGreen,Petrol,$7.27,owner_49823,Test character special ask approach magazine see.,dealer_98121 -AX05548,BMW,i20,2013,RosyBrown,Hybrid,$52.65,owner_52460,Throw mind car pressure collection.,dealer_67243 -Ko80956,BMW,X1,2017,RosyBrown,Electric,"$70,537.37",owner_65528,Type much affect blood seek number leader.,dealer_80265 -Cy11254,Hyundai,X1,2005,DimGray,Petrol,"$7,107.26",owner_91934,Machine guy town must later compare.,dealer_94501 -Oq48873,Hyundai,X1,1973,BlanchedAlmond,Petrol,$3.02,owner_85785,Cell strong team these voice national your.,dealer_67077 -eQ52554,Honda,X1,2015,SeaShell,Petrol,$149.00,owner_80691,Trade girl board street better community strong.,dealer_40557 -KT79795,Hyundai,X1,2019,Blue,Diesel,"$3,148.28",owner_87865,Model central when save former.,dealer_28110 -QR59253,Honda,i20,1978,LightSeaGreen,Petrol,$6.62,owner_08897,Reality image fill whose position interesting.,dealer_47169 -Fv16422,Hyundai,X1,1995,Khaki,Hybrid,"$6,333.35",owner_21919,According answer general probably.,dealer_53882 -JQ15363,Hyundai,City,1976,SeaGreen,Electric,"$7,142.20",owner_34382,She politics upon finish rather.,dealer_15839 -Qg15796,Honda,i20,1995,LightGreen,Petrol,$6.91,owner_57578,Since apply hot lead law charge whether administration.,dealer_94339 -pW89261,BMW,City,1981,DarkOrchid,Diesel,$80.35,owner_95474,Live like crime together.,dealer_95948 -wO25322,Honda,X1,2013,Magenta,Petrol,"$6,404.26",owner_24175,While cup surface run put sort project.,dealer_87398 -vH64356,Honda,i20,1993,BlanchedAlmond,Petrol,$0.92,owner_28410,Continue third provide him.,dealer_37355 -MZ78343,Hyundai,City,1984,Peru,Electric,"$2,187.21",owner_69303,Rule despite hotel heart western low war join.,dealer_24145 -ju62182,BMW,i20,2009,FloralWhite,Petrol,$602.84,owner_90421,Throw end group drive and analysis entire.,dealer_74243 -ha64218,Honda,X1,1972,Chartreuse,Petrol,"$97,707.17",owner_25013,Gas already could.,dealer_92203 -Lf91352,BMW,i20,2003,DarkOrange,Electric,$29.64,owner_69558,Might respond indeed.,dealer_88787 -Uw08455,Hyundai,City,1996,OrangeRed,Hybrid,$3.10,owner_19997,Site defense picture eight tax.,dealer_74729 -Sk52982,BMW,X1,1991,Violet,Petrol,$162.80,owner_56176,End share this defense sell feel.,dealer_86246 -me07745,Honda,i20,2020,IndianRed,Petrol,$8.48,owner_02890,Something while pull.,dealer_83184 -iD25454,Hyundai,i20,1974,Crimson,Petrol,$8.12,owner_63104,Seven break toward she market.,dealer_22771 -qJ85438,Hyundai,i20,2013,Peru,Electric,"$9,013.65",owner_83465,Kid between probably whom full.,dealer_42626 -bs95360,BMW,X1,2006,SaddleBrown,Diesel,"$17,981.46",owner_40646,How within hit born two model animal.,dealer_62497 -Pj94389,BMW,City,2009,Green,Hybrid,$991.04,owner_68961,Quality wonder specific where.,dealer_59397 -eg76118,Honda,X1,1996,Orchid,Diesel,"$9,201.75",owner_76585,Camera front detail realize final over.,dealer_28712 -tk29803,Hyundai,City,2011,HotPink,Petrol,$406.54,owner_05574,Create yard society.,dealer_79743 -Yc29664,Honda,City,1971,Pink,Electric,$8.00,owner_78187,What possible month college southern here.,dealer_82017 -cF66321,Hyundai,i20,1974,MediumAquaMarine,Petrol,$44.19,owner_04820,Forward student scientist accept task character.,dealer_25211 -ra20032,Hyundai,City,1980,Bisque,Hybrid,$9.13,owner_48110,Run remember about forward church conference.,dealer_66800 -Ca42224,Hyundai,X1,1993,HoneyDew,Electric,$545.20,owner_40692,Language side ask.,dealer_08528 -MW98172,Honda,i20,1986,MediumBlue,Electric,"$3,521.84",owner_52650,Field any success television.,dealer_52046 -UO49142,BMW,X1,1994,Orange,Hybrid,$1.29,owner_01200,Carry yard leave open.,dealer_67633 -Ya52368,BMW,X1,1976,SlateGray,Diesel,$4.59,owner_98897,Everyone shoulder chance yeah.,dealer_84900 -Db37233,Hyundai,X1,1976,Khaki,Hybrid,$286.06,owner_20653,Already beyond couple total take painting clearly community.,dealer_60011 -CE21780,BMW,City,2011,Orchid,Diesel,$97.80,owner_01852,Like Mr her appear institution.,dealer_10805 -iA17070,BMW,City,1975,Wheat,Electric,$92.88,owner_38658,Him fund by movie.,dealer_04545 -EJ89106,Hyundai,X1,1989,LightGray,Electric,"$2,551.73",owner_12857,Show financial late boy most quite.,dealer_06629 -Ws66649,BMW,i20,1979,Crimson,Electric,$78.50,owner_37581,Before let author admit instead message.,dealer_03271 -tP28012,Honda,i20,2006,Silver,Hybrid,$96.14,owner_96178,Interest war keep run young.,dealer_10272 -Qd52693,Honda,City,2007,PeachPuff,Electric,"$5,216.96",owner_06100,Authority couple almost series discuss candidate know.,dealer_78077 -RS14581,BMW,X1,2007,SeaGreen,Hybrid,$838.37,owner_67033,Color enter may.,dealer_61313 -Ht96204,Hyundai,i20,1988,ForestGreen,Hybrid,$414.75,owner_46642,Agent lot discussion away culture close thus.,dealer_34025 -OY50655,Honda,X1,2011,Khaki,Diesel,"$75,054.06",owner_86724,Loss own forward work enjoy quite.,dealer_57669 -Mj60340,BMW,X1,2013,Sienna,Petrol,"$8,939.53",owner_58140,Capital court college.,dealer_56715 -Ey05061,BMW,i20,2007,DarkSlateGray,Hybrid,"$7,574.49",owner_01097,Realize organization without community.,dealer_57029 -AL10278,BMW,City,1998,Gainsboro,Electric,$6.61,owner_42251,You building reveal add item term morning.,dealer_36300 -lk23341,BMW,City,1982,FireBrick,Electric,$592.89,owner_64524,Baby or week leader reason later ago good.,dealer_94905 -fA14821,BMW,X1,2015,Beige,Electric,$668.99,owner_73849,Physical rich particular.,dealer_21379 -ev11141,BMW,City,2006,Magenta,Diesel,"$62,464.97",owner_95684,Military billion though worker as science.,dealer_14851 -GQ15957,Hyundai,i20,1990,Bisque,Hybrid,$732.85,owner_58705,Figure identify street because time.,dealer_49125 -sa72870,Honda,i20,1995,Indigo,Electric,$187.60,owner_06705,Teacher what relationship.,dealer_91598 -wI57113,Hyundai,X1,1976,Aqua,Diesel,$76.24,owner_20202,Economy him guess decide spring.,dealer_80988 -Wx27350,BMW,X1,2022,LightSkyBlue,Hybrid,$88.69,owner_82223,Yard necessary father color game anything president.,dealer_73029 -XW86159,BMW,X1,1985,Chocolate,Petrol,$554.48,owner_64649,Maintain stuff seek break.,dealer_95468 -OS60114,Hyundai,X1,1998,Silver,Petrol,"$96,734.93",owner_59327,Character third own toward think.,dealer_01813 -Tk32930,BMW,i20,1993,Thistle,Electric,$35.97,owner_98666,Nearly whatever money president.,dealer_96063 -sp78567,BMW,City,1997,OliveDrab,Hybrid,$62.65,owner_05092,Quality look court brother drop because.,dealer_09065 -Ww44472,Honda,i20,2024,ForestGreen,Petrol,$2.80,owner_55375,Challenge beyond look understand recognize tell.,dealer_64860 -nA21913,Hyundai,X1,2007,Aquamarine,Petrol,$9.46,owner_18463,Start young when travel seek.,dealer_62302 -Rr10504,Honda,City,1984,Lime,Hybrid,$52.88,owner_94803,Relationship teacher however stay sort force including.,dealer_30151 -Sa27890,Hyundai,i20,1982,Violet,Diesel,$303.30,owner_32836,Red rock effect student analysis.,dealer_99967 -gU30493,Honda,City,2008,Thistle,Hybrid,"$46,408.62",owner_33797,Peace product certain per good.,dealer_26251 -nj81156,BMW,i20,1993,Aquamarine,Hybrid,$9.41,owner_58943,Town country respond exist third newspaper bank.,dealer_13852 -rq28309,Honda,City,1981,BlanchedAlmond,Hybrid,"$3,458.95",owner_81204,Party question bad space.,dealer_69001 -xY67420,Hyundai,X1,1973,SlateBlue,Electric,$960.26,owner_94568,Play mother catch man growth sense recently.,dealer_25135 -lX81500,BMW,City,1995,DarkMagenta,Petrol,$6.19,owner_85132,Anything animal language time every on.,dealer_13848 -TR65255,Honda,X1,1979,Salmon,Hybrid,$20.49,owner_13888,Clear attack instead establish.,dealer_81907 -kP94327,Hyundai,i20,1971,WhiteSmoke,Electric,"$84,516.38",owner_20223,Car fund summer manager something exist.,dealer_48351 -RO23720,BMW,City,1972,Lavender,Hybrid,$7.14,owner_42049,Bring real computer control.,dealer_44838 -yy13521,BMW,X1,1990,DodgerBlue,Petrol,$7.05,owner_59914,Everyone author third gas central.,dealer_72885 -Pw79932,BMW,X1,2009,Cyan,Petrol,$795.21,owner_73022,Hospital safe new.,dealer_26398 -nt85197,BMW,X1,1998,LightSalmon,Diesel,"$96,150.93",owner_08592,Your wrong run agree stand bed.,dealer_81939 -tH17379,BMW,X1,1987,Wheat,Hybrid,"$37,331.64",owner_81545,They enter ok develop story peace experience.,dealer_74219 -JH39585,Honda,i20,1978,SeaShell,Hybrid,"$4,329.94",owner_28717,Without will clear light.,dealer_81660 -Oh45831,Honda,i20,1976,DarkGreen,Petrol,$9.15,owner_40643,Action miss window create country.,dealer_02793 -uW08251,Hyundai,City,2020,Sienna,Hybrid,$161.78,owner_80598,Region water figure white.,dealer_92147 -lg71874,Honda,X1,1989,Sienna,Hybrid,$77.72,owner_81315,My eight would.,dealer_84950 -jy95444,Honda,City,2021,DarkRed,Diesel,$18.14,owner_91564,Themselves notice window toward suggest to.,dealer_62294 -pJ93005,Hyundai,X1,1994,SandyBrown,Diesel,"$28,031.80",owner_04831,Teacher same plan great or office fast size.,dealer_11196 -fT36201,Hyundai,X1,2013,DarkOrchid,Diesel,"$99,257.15",owner_97753,Main sell success through stage program member.,dealer_86406 -bK29028,BMW,X1,1984,PaleTurquoise,Petrol,$534.73,owner_65578,Way feel news page.,dealer_94907 -Lc99100,Hyundai,i20,1995,OrangeRed,Petrol,"$6,753.02",owner_91339,Keep past seat box.,dealer_88297 -Uc10948,Honda,X1,1991,BlueViolet,Electric,$0.46,owner_51875,Article range apply civil look wall important.,dealer_38214 -eP28562,BMW,i20,2002,PapayaWhip,Petrol,$4.25,owner_39846,Catch speak describe article top.,dealer_42759 -Fo28280,BMW,X1,2016,Orchid,Diesel,"$7,060.54",owner_53030,Certain similar environmental assume.,dealer_46207 -NM95398,Honda,i20,2007,LightGreen,Petrol,$7.28,owner_83014,Discover cost account bill image PM east standard.,dealer_29372 -Aq16839,Hyundai,X1,1991,Salmon,Hybrid,$983.21,owner_13261,Perform often movement quite affect cell.,dealer_62115 -Fw00397,Honda,X1,1990,RosyBrown,Hybrid,$407.14,owner_50190,Free door common case better yet style.,dealer_49745 -Ef80009,BMW,i20,1981,Peru,Diesel,$61.81,owner_14463,Company from design ask not.,dealer_52765 -Kx15490,Honda,City,1982,MediumBlue,Diesel,$14.30,owner_21480,Into life third memory never.,dealer_19879 -Yn85065,Honda,X1,2023,Chocolate,Diesel,$2.91,owner_54846,Off cause Democrat probably series for.,dealer_83128 -sM58523,BMW,City,2008,Gold,Electric,$30.79,owner_15928,National doctor performance hour material.,dealer_59931 -Ki20261,BMW,X1,1976,LightYellow,Electric,"$75,292.49",owner_35488,Begin reveal necessary rule population some southern political.,dealer_61359 -sx35249,Honda,X1,1970,MediumAquaMarine,Electric,$45.88,owner_85273,Boy remain large community.,dealer_64103 -HO42416,Honda,i20,1978,Salmon,Petrol,$27.29,owner_36337,Possible involve nor building challenge put fact.,dealer_02374 -ob49904,Honda,X1,2000,Sienna,Diesel,$67.86,owner_66754,Step most allow court rise everybody.,dealer_25408 -eJ08517,BMW,X1,2010,LightYellow,Petrol,"$12,501.81",owner_03303,Country out positive almost occur price fund chair.,dealer_58846 -qx79828,BMW,X1,2011,Ivory,Electric,"$98,390.88",owner_22000,Leader view prove interesting do perhaps page play.,dealer_11550 -mD06938,Honda,i20,2019,HoneyDew,Petrol,$1.98,owner_56570,Add group remain.,dealer_43680 -af98498,Hyundai,i20,1994,DarkGreen,Hybrid,"$44,042.98",owner_43628,Him left nor since statement film professional.,dealer_47173 -Dc87844,Hyundai,i20,1995,PaleGreen,Diesel,$9.37,owner_57080,About pattern mission task low thought turn.,dealer_63485 -CU95916,Hyundai,City,1989,CornflowerBlue,Hybrid,$2.98,owner_82050,Particularly particular tree environment station spend design.,dealer_03918 -fJ41239,Honda,City,2000,MidnightBlue,Electric,$3.89,owner_91821,Often play sea skin decide baby.,dealer_10109 -RQ18398,BMW,i20,2008,LightGreen,Electric,$73.42,owner_39748,Near arm second camera yard five.,dealer_13559 -Vl05397,BMW,X1,2014,Purple,Electric,$832.63,owner_72898,Interest team than.,dealer_41631 -Xk21251,Honda,X1,1971,GreenYellow,Hybrid,$91.69,owner_88056,Board eye threat.,dealer_37700 -gV71817,Honda,i20,1997,LightSteelBlue,Diesel,$678.73,owner_14000,Bring manage defense big couple.,dealer_55444 -eT51032,Hyundai,X1,1980,GreenYellow,Electric,$0.26,owner_20023,Describe idea six discuss west news.,dealer_44621 -BR80666,Hyundai,City,1971,MediumVioletRed,Hybrid,$41.18,owner_65273,Model company happen gas ahead herself.,dealer_13590 -bb15932,BMW,City,2005,Green,Hybrid,$67.96,owner_27426,Success believe perform end discover.,dealer_11017 -qG80899,Hyundai,City,1981,Aquamarine,Petrol,"$79,707.87",owner_34203,Night believe position sport.,dealer_52274 -Pl20131,Hyundai,i20,2002,Wheat,Petrol,$72.34,owner_04057,Scene until source small environmental travel.,dealer_38883 -Tr81294,Hyundai,i20,1982,SaddleBrown,Hybrid,$3.54,owner_96333,Name hundred staff near of.,dealer_36812 -zA60775,Honda,City,2023,DarkSlateGray,Diesel,$624.51,owner_88533,More tell student a situation.,dealer_21872 -ic27261,Hyundai,i20,2021,Silver,Diesel,$877.72,owner_23380,Decision some realize.,dealer_94555 -lv87334,BMW,i20,2001,LemonChiffon,Electric,"$5,070.42",owner_37718,Issue best job one.,dealer_83298 -bK21425,BMW,City,2015,Tan,Hybrid,$50.54,owner_79753,Film certainly throughout last system also oil.,dealer_79504 -qe71098,BMW,X1,2016,Turquoise,Petrol,"$7,619.28",owner_84283,Practice attorney college cost lot.,dealer_00373 -SC55058,Honda,i20,1994,FloralWhite,Petrol,"$53,466.99",owner_65574,Party hand thousand us writer community continue current.,dealer_98531 -ki83437,Honda,i20,2012,SpringGreen,Electric,$96.27,owner_26705,Team create develop reflect cup should floor.,dealer_69415 -SV08129,BMW,City,1996,Sienna,Electric,"$3,470.37",owner_07134,Enter speak position night law remain.,dealer_92408 -lf90620,BMW,City,1999,LightSlateGray,Hybrid,"$57,504.72",owner_61062,Commercial decision floor trip remain offer growth choose.,dealer_09982 -tp19323,Honda,City,1981,SteelBlue,Hybrid,$9.77,owner_35332,Beyond glass kind laugh wall she.,dealer_15960 -HD64988,BMW,City,2000,MintCream,Hybrid,"$2,784.91",owner_69539,Blue according although size perform public simple.,dealer_52294 -NB99942,BMW,City,1995,ForestGreen,Petrol,$464.70,owner_34352,Check model member economy push raise.,dealer_25558 -gB57854,Hyundai,City,1991,Olive,Diesel,$2.61,owner_60752,Media age hundred long for.,dealer_84059 -xI98148,Hyundai,X1,2013,DarkSeaGreen,Hybrid,$2.56,owner_15521,Late provide style put.,dealer_20402 -UU73834,BMW,X1,2022,LightYellow,Diesel,$186.71,owner_98914,Rather name else design whom together.,dealer_93515 -uv81721,BMW,City,2003,LightSeaGreen,Diesel,"$28,438.38",owner_40941,Reduce goal ever meeting watch figure research.,dealer_06409 -dC13333,Hyundai,City,1995,Indigo,Electric,"$80,593.14",owner_72347,Hotel even practice such dog.,dealer_91037 -uG11972,BMW,i20,1994,Salmon,Hybrid,$26.76,owner_66134,Indeed hard would them when example answer.,dealer_59116 -nX77116,Hyundai,X1,2003,Lavender,Electric,$222.27,owner_55585,By guy Mr difficult western.,dealer_83596 -vf91351,Honda,i20,2005,MediumSpringGreen,Petrol,$776.68,owner_82911,Himself main size nice where test simply.,dealer_93187 -vz07551,Hyundai,X1,2012,OrangeRed,Petrol,$1.68,owner_52254,Star need admit direction mind series.,dealer_57958 -ya18625,BMW,City,2007,PaleTurquoise,Diesel,$892.18,owner_32481,Develop onto tax challenge different remember authority.,dealer_27594 -lT59233,BMW,i20,1975,RoyalBlue,Diesel,"$3,517.11",owner_03622,Collection improve play.,dealer_20830 -Uy43963,Honda,City,1994,Orange,Petrol,$6.44,owner_81753,Tough my develop hospital.,dealer_19391 -kk46550,BMW,i20,1970,BlanchedAlmond,Petrol,"$18,482.59",owner_12011,Charge argue word clearly number skill course offer.,dealer_84984 -Vp00926,Hyundai,i20,1983,White,Petrol,$7.44,owner_03469,North table final large issue.,dealer_10926 -Je37482,BMW,i20,1984,GoldenRod,Petrol,$92.31,owner_27986,People feel who time soldier itself.,dealer_49678 -De48742,Honda,City,1993,DarkCyan,Electric,$781.09,owner_29010,Should your body.,dealer_27690 -pT88299,Hyundai,City,1991,Orange,Diesel,$6.61,owner_83915,Less bring use for trip memory establish.,dealer_49513 -aq53930,Hyundai,City,1976,CadetBlue,Electric,$4.77,owner_67352,Case partner him dark per.,dealer_27379 -sB77418,BMW,i20,2000,LimeGreen,Petrol,"$96,677.33",owner_77602,Foreign side group prevent after.,dealer_92164 -lH01392,Honda,City,1977,SaddleBrown,Electric,$778.35,owner_44067,Today manager sell foreign loss.,dealer_10399 -Wq43757,Hyundai,i20,1975,Violet,Electric,"$3,347.57",owner_32049,Mr oil partner raise radio positive pattern.,dealer_41815 -VL49742,BMW,X1,1995,AntiqueWhite,Hybrid,$28.94,owner_79934,Much exactly home rate media must similar hospital.,dealer_72913 -Fb09172,BMW,i20,1993,DarkSeaGreen,Petrol,$56.52,owner_93464,National travel marriage move.,dealer_91295 -Gq32811,Hyundai,City,1996,DarkMagenta,Petrol,"$1,648.57",owner_67772,Watch standard case other.,dealer_36033 -NJ46904,Hyundai,i20,2023,MidnightBlue,Petrol,"$56,874.56",owner_79876,Certainly good everything production age.,dealer_67398 -aR92865,Hyundai,X1,2007,LavenderBlush,Petrol,"$8,753.18",owner_85858,Provide compare else beyond professional month.,dealer_57992 -UC53048,BMW,X1,1990,Gray,Hybrid,"$22,668.59",owner_14760,Party interesting cover same.,dealer_89994 -sk66016,Hyundai,X1,2021,Peru,Electric,$2.25,owner_60517,Yeah theory trade raise bar music.,dealer_07937 -sF81450,Honda,X1,1999,Indigo,Electric,$89.76,owner_72509,My member message.,dealer_45271 -tk82788,Honda,X1,1977,CornflowerBlue,Petrol,"$8,613.93",owner_08949,Decade civil woman none community court culture.,dealer_64897 -Cq51717,Honda,City,1972,PapayaWhip,Petrol,$34.45,owner_83821,Popular character attack certainly window work.,dealer_39957 -Ip18928,BMW,City,1992,Coral,Diesel,$9.75,owner_61198,End ok trade toward turn assume both.,dealer_47876 -Gy63803,BMW,City,2015,Yellow,Hybrid,"$48,927.42",owner_60483,Might need finally man explain force.,dealer_61571 -Sr40543,Honda,i20,2007,SlateBlue,Diesel,$571.87,owner_07637,Arrive bag lay.,dealer_68656 -WI43488,BMW,i20,1993,Salmon,Hybrid,"$3,183.97",owner_38004,We suffer sister who natural from enough.,dealer_31908 -jk00791,Hyundai,X1,2011,Magenta,Diesel,$7.98,owner_42621,Project here social make store raise game fill.,dealer_33155 -zR76005,Honda,X1,2022,MediumSpringGreen,Hybrid,"$7,265.70",owner_54248,Big local as.,dealer_24600 -aM30388,Honda,i20,1971,Chocolate,Petrol,$6.60,owner_88574,Foot work purpose happen girl go.,dealer_67177 -YT82370,Hyundai,X1,1992,SlateGray,Petrol,"$22,976.38",owner_51132,Daughter hard ability role.,dealer_89912 -mt66203,Honda,City,1998,RoyalBlue,Diesel,"$4,642.11",owner_44574,Between PM society sometimes.,dealer_15187 -bR11211,BMW,City,2003,MintCream,Electric,"$3,898.80",owner_81877,Yard ground door fund try establish along.,dealer_50117 -zJ45488,BMW,i20,2011,White,Hybrid,"$7,274.20",owner_29311,North guy hold student color.,dealer_20588 -vZ64214,BMW,City,2016,SandyBrown,Diesel,"$6,037.15",owner_19398,Discussion identify above white former deal.,dealer_24910 -MT78898,Honda,i20,2010,SlateBlue,Electric,$7.09,owner_63337,Growth born discuss line receive speech recently.,dealer_56370 -yD26688,Honda,City,1990,Ivory,Hybrid,"$62,711.96",owner_68553,Claim write end central in series various cultural.,dealer_37325 -lg53376,Hyundai,i20,1996,Plum,Hybrid,"$6,588.84",owner_20297,Mother drive street establish final.,dealer_15259 -Ti98144,Honda,City,2010,DarkViolet,Hybrid,"$20,086.40",owner_81147,Minute high research can adult science treat world.,dealer_23138 -qC43107,Honda,City,2020,Silver,Petrol,"$6,444.23",owner_60092,Rise hard treat visit.,dealer_97919 -wY47453,Honda,X1,2016,Moccasin,Petrol,"$82,257.17",owner_74087,Describe eat size measure.,dealer_50293 -cq61173,Hyundai,i20,1978,DarkCyan,Petrol,$19.74,owner_43527,Single sing laugh amount good.,dealer_60864 -EC03788,BMW,City,2006,Ivory,Petrol,$867.04,owner_24554,Person would well movie.,dealer_64304 -iL22704,Hyundai,City,1990,MediumVioletRed,Electric,"$7,659.51",owner_15376,Organization power finish forward picture.,dealer_13725 -Em99487,Hyundai,i20,1984,Aquamarine,Hybrid,$96.79,owner_39510,Poor what need leader position she skin coach.,dealer_50663 -El27833,Hyundai,X1,2000,HoneyDew,Petrol,$951.26,owner_37702,Action shoulder debate talk.,dealer_46951 -PW88781,Hyundai,X1,2001,MediumSlateBlue,Electric,$354.72,owner_13231,Go increase during choose.,dealer_12167 -Yg90879,Hyundai,i20,1979,Pink,Hybrid,$35.22,owner_57337,Four as into natural trouble how product.,dealer_12204 -qY58714,Hyundai,City,1984,Pink,Diesel,$29.13,owner_04124,Strategy this each page toward.,dealer_28545 -KG40758,Honda,City,1989,Plum,Electric,$212.64,owner_97183,World over approach by various back list.,dealer_58121 -pg97256,BMW,X1,1987,MistyRose,Hybrid,"$1,549.76",owner_04653,Father current just rather voice happy.,dealer_66727 -Fn63927,Hyundai,i20,2014,OldLace,Petrol,$238.72,owner_23830,Give outside over compare doctor.,dealer_00243 -Cg27081,Honda,X1,1984,LimeGreen,Electric,"$8,016.76",owner_82654,Produce relate including all sing sea people remain.,dealer_65112 -ba05385,BMW,City,1990,LightSlateGray,Diesel,$9.73,owner_98518,Add draw rule ball site.,dealer_42102 -uk51775,Honda,i20,2017,DarkTurquoise,Petrol,"$6,264.62",owner_09654,Difficult nation catch popular.,dealer_75374 -Gj63989,BMW,City,2022,Lime,Petrol,"$8,352.63",owner_01783,Usually society concern time guess.,dealer_71459 -xc62855,BMW,X1,1978,SandyBrown,Electric,$159.48,owner_13026,Then east those old possible large.,dealer_06913 -Iy45606,BMW,City,2006,Orange,Petrol,$533.78,owner_78579,Them school able past wonder from I which.,dealer_77416 -zN55525,Hyundai,City,2001,Aqua,Petrol,"$90,569.26",owner_34619,Yes break discover goal dinner us.,dealer_25347 -ED74683,Hyundai,City,2023,Pink,Petrol,$487.19,owner_20339,Realize within enjoy would.,dealer_61342 -CH22007,Hyundai,X1,1979,Plum,Diesel,$988.98,owner_52807,Federal lead her author out computer summer.,dealer_08380 -ca35984,Honda,X1,1998,BlanchedAlmond,Petrol,$7.77,owner_80606,Morning my member conference keep factor.,dealer_22154 -xD89297,Hyundai,i20,1972,DarkTurquoise,Petrol,$68.09,owner_76806,Everybody new else loss difficult on.,dealer_31745 -Bt45761,BMW,City,1999,MediumVioletRed,Petrol,"$5,801.81",owner_45935,Produce box remember market.,dealer_49620 -Np25200,Hyundai,i20,1991,Snow,Diesel,"$5,739.20",owner_68598,Nothing ahead threat yeah everyone sound.,dealer_50070 -rI86953,Honda,X1,1975,DarkViolet,Hybrid,"$3,047.72",owner_65483,Purpose than which from bag.,dealer_96623 -Jy89445,Hyundai,X1,2000,SandyBrown,Hybrid,"$1,262.96",owner_21817,Military for relate late peace.,dealer_63288 -Dc92952,Hyundai,i20,2011,DarkOrange,Hybrid,"$7,836.06",owner_36672,Season quickly social unit maintain focus.,dealer_52419 -Rn80812,Hyundai,X1,2012,Cornsilk,Diesel,"$3,241.79",owner_88188,Major particularly believe price two father.,dealer_93161 -gu85564,Honda,City,2008,MediumVioletRed,Petrol,"$4,042.88",owner_78646,Sign at father east Mr risk.,dealer_77156 -ow30585,Honda,i20,2013,DarkMagenta,Hybrid,$9.06,owner_98031,Ready step alone full step bill.,dealer_45073 -nG72265,BMW,City,1976,FloralWhite,Hybrid,"$1,167.12",owner_03686,Card alone moment trouble allow stand.,dealer_76573 -jl78133,Honda,X1,2023,SeaGreen,Petrol,"$10,804.73",owner_17681,Follow red yeah can ability specific former.,dealer_24888 -Sy84437,Honda,i20,2012,Gold,Diesel,"$16,171.51",owner_86460,Team play mission there citizen.,dealer_50484 -qr14787,BMW,City,1997,LemonChiffon,Hybrid,"$93,813.19",owner_91932,Let stand social degree red discover.,dealer_00964 -nL29092,BMW,City,2013,DarkGray,Diesel,"$25,451.93",owner_74107,Author office night.,dealer_29307 -Fg28880,Hyundai,City,1976,DarkOliveGreen,Diesel,$62.28,owner_72122,Move development safe maybe believe present others.,dealer_06961 -ep77432,Honda,City,1973,LightSkyBlue,Petrol,"$6,097.92",owner_55932,Big side ago floor agent.,dealer_38976 -es64020,Hyundai,X1,1997,DeepPink,Electric,"$37,846.89",owner_07646,Nice else executive international in stop building.,dealer_06537 -TS08161,BMW,X1,1980,IndianRed,Diesel,"$75,578.65",owner_17044,Cell open moment population street.,dealer_98442 -GG75194,BMW,City,1990,Yellow,Petrol,"$34,502.47",owner_44176,Only know third plan laugh son.,dealer_14718 -Eu53021,Honda,X1,1981,DarkRed,Diesel,"$84,204.45",owner_10313,Each fund owner others dinner middle.,dealer_39712 -Dy80684,BMW,City,2018,Cyan,Petrol,$27.56,owner_91730,Commercial affect reason behavior push establish.,dealer_36818 -gQ08544,Hyundai,City,2017,BlueViolet,Diesel,"$4,153.30",owner_43144,Education light avoid follow five evidence.,dealer_82706 -ua07301,Hyundai,i20,2005,SkyBlue,Petrol,"$1,869.69",owner_29529,Of small least food girl top stand.,dealer_34030 -Cr25792,Hyundai,City,1990,GoldenRod,Electric,"$91,764.20",owner_53270,Growth another black hold six pay day.,dealer_49324 -nE38659,BMW,X1,2023,DarkSlateGray,Hybrid,$506.75,owner_16223,Memory friend name reason face strategy go.,dealer_11791 -TP20162,BMW,City,1997,DeepSkyBlue,Hybrid,$3.57,owner_45145,Above guess man notice meet travel.,dealer_45032 -JK45731,Hyundai,City,1988,DarkSlateGray,Petrol,"$7,843.67",owner_95380,Form long unit factor situation.,dealer_48497 -sR77182,Honda,City,1988,AntiqueWhite,Electric,$777.78,owner_39304,Friend bad do simple.,dealer_84850 -ZW00207,BMW,X1,2023,Khaki,Diesel,$196.80,owner_61389,Three that include reflect little open.,dealer_90851 -Ft42030,BMW,City,2000,FloralWhite,Diesel,$997.05,owner_38040,Argue mother way end.,dealer_49147 -Ig05323,Hyundai,X1,2006,DarkOrange,Electric,"$37,115.42",owner_49017,Past capital even off area country.,dealer_16510 -uy49205,BMW,X1,2006,DeepPink,Diesel,"$9,176.64",owner_72930,Less we some international source.,dealer_67267 -KN88097,Honda,City,2012,LightSlateGray,Petrol,$53.21,owner_01735,Actually artist however alone rest just.,dealer_84797 -nt42840,BMW,X1,1970,Magenta,Petrol,$60.49,owner_81066,Get beat worry activity fall create.,dealer_55769 -Ku47151,BMW,X1,2022,LightPink,Electric,$42.62,owner_93547,Mean senior stop air door.,dealer_88375 -sy36097,Hyundai,i20,1998,DarkOrange,Electric,$594.05,owner_11187,Money letter language property.,dealer_24772 -KV99326,Hyundai,City,2018,LightSeaGreen,Diesel,$697.47,owner_48209,Charge claim six later represent.,dealer_98337 -KF79933,Honda,City,2011,DarkGreen,Electric,$656.42,owner_14310,Seat through third student answer sometimes follow.,dealer_54699 -iB58645,BMW,i20,2010,FireBrick,Petrol,"$5,580.69",owner_50086,Focus might catch method professional.,dealer_32624 -QP26069,BMW,City,2009,MediumBlue,Hybrid,$69.74,owner_55262,Present interest money would collection.,dealer_29104 -qr72493,Honda,i20,2022,NavajoWhite,Hybrid,"$47,136.68",owner_64519,Indeed art sport section help event.,dealer_99551 -qE07746,Honda,City,1982,LightPink,Hybrid,$6.67,owner_61754,Movement change war stock bag.,dealer_38535 -OC66094,Hyundai,City,1978,LightPink,Petrol,$32.45,owner_75139,Against toward ok floor white kind country.,dealer_27803 -ts28217,Honda,City,2007,ForestGreen,Petrol,$460.84,owner_95271,Country mouth these million something nothing though knowledge.,dealer_69838 -Fm27915,Hyundai,City,1979,OrangeRed,Petrol,"$1,028.90",owner_69761,Fear throw nearly something leg good option.,dealer_16216 -qU76158,Honda,i20,2024,LightPink,Hybrid,$2.01,owner_99355,Mother Democrat voice real set whatever garden shake.,dealer_80075 -Cc49063,Honda,i20,1972,MistyRose,Hybrid,$1.94,owner_99505,Worker cold hold full area floor open.,dealer_66792 -Di25032,Honda,City,2009,Brown,Electric,"$5,721.11",owner_88498,Either response so want report whatever.,dealer_37782 -uE97686,BMW,City,2003,MediumSpringGreen,Diesel,$859.47,owner_83176,The along help such most moment clear he.,dealer_34195 -lf16663,Hyundai,i20,2008,DarkRed,Petrol,$3.55,owner_69062,Central office inside teach yourself deal.,dealer_44549 -ex21752,Hyundai,X1,2010,LightGray,Petrol,$301.47,owner_68303,Front turn produce Republican two bring.,dealer_99444 -XC81812,Hyundai,i20,1970,Maroon,Electric,"$31,606.92",owner_39480,Address bed help nice.,dealer_72490 -vs48637,Honda,i20,1971,LightGray,Petrol,"$13,005.21",owner_17247,Song section they letter.,dealer_64014 -tW84327,Honda,i20,1976,Ivory,Diesel,$8.22,owner_25297,Yes guy place system.,dealer_31179 -Ly16891,Honda,X1,2016,LavenderBlush,Petrol,$1.57,owner_97289,Begin education foreign job choose.,dealer_76267 -of84630,Hyundai,i20,2021,SeaShell,Hybrid,"$60,708.24",owner_14143,Source cut everyone approach hundred value leave his.,dealer_95712 -Qa20636,Honda,City,1975,SteelBlue,Diesel,$7.55,owner_39670,Society have wife nice office special.,dealer_92732 -XT82848,BMW,City,1974,HoneyDew,Diesel,"$74,705.70",owner_08606,Candidate let would base time lay other hear.,dealer_98447 -zK86092,Honda,i20,2022,Teal,Petrol,"$5,623.30",owner_10945,Store she eight challenge baby.,dealer_09816 -SS73424,Hyundai,City,1990,Linen,Electric,$57.26,owner_66583,Since national together discuss.,dealer_95612 -DH84086,Hyundai,City,2014,Moccasin,Diesel,$520.46,owner_45153,Remain when actually read drop.,dealer_51494 -pY82537,Honda,X1,2018,HotPink,Hybrid,"$30,416.34",owner_23014,Bag with technology include action occur material.,dealer_86455 -Cf49963,Honda,City,2005,DarkGray,Electric,$88.28,owner_28061,West indicate administration fight sit management keep participant.,dealer_19582 -Wu54111,BMW,X1,2018,White,Electric,$0.10,owner_57459,With protect scientist ahead rate.,dealer_50749 -oX69161,Honda,X1,2011,SteelBlue,Diesel,"$2,300.43",owner_26150,Among step agency top.,dealer_48417 -NJ21744,Honda,City,2000,LightGray,Electric,"$3,720.72",owner_87684,Tend science his yard miss never.,dealer_54058 -IC85541,Honda,X1,1998,Sienna,Diesel,$467.72,owner_56994,Space senior nor day lawyer statement history.,dealer_24705 -Tb17825,Hyundai,X1,1988,BurlyWood,Petrol,$9.46,owner_99881,Light onto authority present.,dealer_94228 -wZ49896,BMW,X1,1981,FloralWhite,Diesel,"$6,819.11",owner_31932,Edge chair stuff different.,dealer_59297 -df83423,Honda,X1,1976,HoneyDew,Diesel,$78.81,owner_07641,Sure find sport east very instead smile conference.,dealer_44144 -dI83417,BMW,City,2007,Azure,Petrol,$78.60,owner_96710,Return employee little six me.,dealer_10000 -oN47355,BMW,City,1992,Violet,Diesel,$22.38,owner_79718,Do realize meet camera.,dealer_44879 -Xh00127,BMW,X1,2011,YellowGreen,Hybrid,$82.62,owner_37819,Thing machine type yet mother claim.,dealer_41075 -bN45068,Honda,X1,1980,Green,Electric,$3.25,owner_39889,Mention benefit building local whose final partner.,dealer_17600 -Ck51231,Honda,i20,1980,Linen,Diesel,$96.99,owner_95734,Community country national save send senior standard.,dealer_73001 -fb82755,BMW,X1,2010,Silver,Diesel,"$36,062.21",owner_67695,Trial middle stand land worker.,dealer_83835 -io01711,BMW,X1,2007,MediumSeaGreen,Petrol,$807.17,owner_70386,Wait meet generation job statement board.,dealer_11443 -kl28316,Honda,X1,1987,LightSteelBlue,Diesel,"$4,753.11",owner_16596,Finally ever happen center majority anyone also.,dealer_00323 -UH04514,Hyundai,City,2019,Thistle,Petrol,$7.05,owner_93835,Actually attorney each turn degree color item.,dealer_33856 -yr96400,BMW,i20,1999,Silver,Electric,"$2,114.56",owner_25189,Example weight painting the.,dealer_17315 -Fo02136,BMW,X1,2011,SeaShell,Petrol,$68.58,owner_34310,Whole along certain explain ever prove color.,dealer_55280 -EQ20658,Hyundai,X1,1999,MidnightBlue,Hybrid,$972.50,owner_97810,Really figure site these down return.,dealer_05178 -cs23804,Hyundai,X1,1984,LimeGreen,Hybrid,"$78,320.21",owner_25516,Tell road plan fill grow local now increase.,dealer_08648 -jy28361,Hyundai,X1,1975,Plum,Hybrid,$605.08,owner_08430,Production herself growth number.,dealer_77155 -QZ78163,Hyundai,i20,1981,PaleGoldenRod,Diesel,$601.01,owner_21655,Bed bar town common artist black.,dealer_36548 -ZX47908,BMW,X1,1996,Peru,Diesel,$525.36,owner_03280,Feeling meeting order send.,dealer_71176 -Ti95867,Hyundai,City,1973,LightPink,Hybrid,"$5,458.73",owner_14600,Office long continue possible run oil summer.,dealer_12484 -OJ55007,Honda,City,1970,MediumTurquoise,Hybrid,"$82,312.52",owner_90858,Although close floor current parent.,dealer_64076 -Tk87124,Hyundai,X1,2010,Yellow,Electric,$0.91,owner_70000,Growth cup growth team.,dealer_66550 -BW14674,BMW,i20,1973,DarkGreen,Hybrid,"$3,317.31",owner_61301,Analysis Congress seven follow game radio.,dealer_61455 -Ck35659,Hyundai,City,1983,SeaGreen,Electric,$9.95,owner_60883,Wall kind member nothing memory serious.,dealer_64433 -Lu37661,Hyundai,City,1976,Turquoise,Electric,"$8,687.38",owner_86674,Huge process major prove seem.,dealer_19528 -US54988,Honda,City,2004,Moccasin,Petrol,$8.78,owner_08390,Treatment goal new nothing realize long foreign.,dealer_61439 -pD49674,Hyundai,i20,2018,DarkSalmon,Hybrid,$731.85,owner_88736,Anyone once grow pressure avoid.,dealer_80374 -pj91331,Honda,i20,1992,DarkSlateGray,Electric,$65.99,owner_16766,Shake wonder six tonight.,dealer_75469 -wn22066,Honda,X1,2018,Black,Electric,"$2,804.23",owner_56651,Visit size because provide.,dealer_39180 -Iz01734,BMW,City,1995,Magenta,Electric,"$12,436.70",owner_26200,Civil live tonight factor tree half order.,dealer_36806 -nm52811,BMW,X1,1987,Tan,Electric,"$1,018.66",owner_75041,None audience head recent lot tree sell generation.,dealer_70626 -hG96444,Hyundai,City,2014,DarkSeaGreen,Electric,"$9,519.41",owner_43541,Office sort how radio bad.,dealer_82954 -hv61860,BMW,City,2012,HoneyDew,Hybrid,$2.77,owner_56771,Fine type give according class sort.,dealer_65138 -Jv85091,Honda,X1,1976,LavenderBlush,Petrol,$265.94,owner_30963,Official really opportunity still word natural consider.,dealer_68674 -vu19415,Honda,X1,2014,SaddleBrown,Hybrid,$140.97,owner_66038,Picture keep pass police bit.,dealer_36547 -Uw33666,BMW,X1,1979,SlateBlue,Hybrid,"$77,474.77",owner_19376,Seem thank door news plant exactly.,dealer_78685 -Gt56015,Honda,i20,1973,LemonChiffon,Diesel,"$48,485.71",owner_98839,Bill left keep way each.,dealer_49917 -RP60409,Hyundai,X1,1972,Magenta,Electric,$504.42,owner_62846,Letter under resource want heavy option.,dealer_62911 -CP49369,Hyundai,X1,1979,Thistle,Diesel,"$2,365.89",owner_45900,Camera traditional some seem.,dealer_62861 -Zi90640,Hyundai,X1,2021,AliceBlue,Petrol,$8.58,owner_46252,Trade pattern guy sort down day push and.,dealer_96609 -bG38766,Hyundai,i20,2013,MediumBlue,Diesel,$507.62,owner_40334,Agreement model employee most hand near.,dealer_15678 -fz13340,BMW,X1,1988,SlateBlue,Diesel,"$13,632.34",owner_06424,Heavy white control beat stop campaign recently read.,dealer_60537 -JL03288,Honda,City,1991,Red,Petrol,$878.22,owner_58886,Enough news fine break thus face low.,dealer_84692 -sU08003,Hyundai,i20,2003,Khaki,Petrol,$14.33,owner_55592,Action smile them style toward director.,dealer_37239 -ZQ20805,Hyundai,City,2023,FireBrick,Electric,"$41,081.99",owner_83642,Yard price recent sell type water arm.,dealer_06203 -Fh87571,Honda,City,2004,Cornsilk,Hybrid,$99.85,owner_80975,Page model control effort people central.,dealer_96493 -wP59541,Hyundai,X1,1992,Plum,Petrol,"$5,425.85",owner_43226,Somebody need wall take window.,dealer_81817 -di86789,Hyundai,City,1996,AntiqueWhite,Petrol,"$41,667.90",owner_89999,Spend despite one maintain computer.,dealer_00950 -Ah32383,BMW,X1,1993,Pink,Hybrid,"$74,804.01",owner_68516,Computer see song American hard day to.,dealer_14839 -Dl35187,Hyundai,i20,2006,Purple,Electric,"$67,745.34",owner_71900,Experience she much sport.,dealer_46338 -oS95849,Honda,X1,1975,Maroon,Electric,"$61,059.30",owner_17165,Suddenly moment rest or character network single.,dealer_05883 -tx65887,Honda,City,2015,Green,Diesel,$302.31,owner_05789,Better thus area Congress.,dealer_75806 -Ye06903,Honda,i20,1988,Gainsboro,Hybrid,$9.91,owner_10266,Behind culture arm subject free position spring view.,dealer_35951 -PI19594,Hyundai,City,1998,Sienna,Petrol,"$41,032.60",owner_16999,Eight home keep movement.,dealer_37442 -Ie95540,Hyundai,i20,1974,Tomato,Hybrid,$7.50,owner_75543,Reveal very my scene commercial green.,dealer_02057 -eT69460,Hyundai,i20,1984,Bisque,Electric,"$25,777.74",owner_52864,Public society spend we hard for.,dealer_83419 -mJ26733,Hyundai,i20,2013,SandyBrown,Petrol,"$3,105.28",owner_68631,Field us look protect focus all someone money.,dealer_26582 -Po09728,Hyundai,i20,1995,PaleGoldenRod,Hybrid,$718.66,owner_23038,Along there less share respond.,dealer_00434 -Nh88730,Honda,X1,1990,Azure,Electric,"$52,531.61",owner_46376,Statement billion suggest different east state.,dealer_79268 -Hd84673,Hyundai,i20,2019,ForestGreen,Petrol,"$77,595.14",owner_99525,Growth before thing serve spring seek hold.,dealer_48994 -qo57325,BMW,X1,2020,Gray,Electric,$391.62,owner_17983,Culture relate hit quite letter.,dealer_17004 -Rn45767,Hyundai,City,2023,Indigo,Petrol,"$20,520.77",owner_83186,After name generation guy indeed example authority.,dealer_16429 -VE91387,Honda,City,1976,NavajoWhite,Petrol,$97.84,owner_20145,Yeah short and big.,dealer_92396 -Tw47874,Hyundai,City,1972,Aquamarine,Hybrid,$729.34,owner_73475,Black today school process key particularly thousand room.,dealer_67151 -Np08234,Hyundai,X1,1978,Gray,Electric,"$98,823.91",owner_97237,Particular spend push try available reason to manager.,dealer_95912 -Xf98012,BMW,X1,2022,Fuchsia,Petrol,$1.42,owner_04523,Only trip idea wonder picture area military.,dealer_36153 -hX29331,BMW,X1,1992,Sienna,Diesel,"$9,191.88",owner_07465,Between democratic certain both.,dealer_25186 -Jo85097,Hyundai,City,1986,LightSkyBlue,Petrol,$3.67,owner_08918,None lot direction man job none edge blood.,dealer_43887 -pi57551,BMW,City,1998,Coral,Electric,$1.27,owner_39361,Base accept sort fast.,dealer_71820 -Mk30364,Hyundai,i20,2003,SteelBlue,Hybrid,$0.02,owner_39026,Consider member quite expert mind.,dealer_47059 -mL72863,Hyundai,i20,1999,SlateBlue,Petrol,$358.02,owner_59710,Western process no measure such.,dealer_75290 -qZ80657,Honda,City,1994,Pink,Petrol,$9.06,owner_96245,Bag shake yet PM.,dealer_18135 -Rh28280,BMW,i20,1983,BurlyWood,Petrol,"$25,509.42",owner_26609,Shake language ago citizen affect.,dealer_10144 -qw86241,Honda,City,1984,OrangeRed,Hybrid,$5.51,owner_21279,Tend allow hold do everybody power.,dealer_32597 -QM07352,Honda,City,1971,Gray,Electric,"$9,577.62",owner_81531,Today site send total.,dealer_20899 -IC74332,Honda,X1,1998,Sienna,Petrol,$4.07,owner_52919,Forget heart only possible quite though.,dealer_67321 -ew19919,Hyundai,i20,1996,SlateBlue,Petrol,"$74,360.60",owner_84128,Simple its different catch budget finish by.,dealer_77840 -LA84333,Hyundai,X1,1970,LightYellow,Petrol,$1.91,owner_16717,Subject if what eat when.,dealer_45592 -xf29019,BMW,i20,1983,Orchid,Diesel,$49.10,owner_40498,Law message moment ok them pressure hear.,dealer_09155 -wT12825,Hyundai,X1,2003,SeaShell,Diesel,$94.60,owner_29146,Garden center child build operation.,dealer_29367 -ZR86690,Hyundai,City,1996,MintCream,Diesel,"$86,539.41",owner_04503,State animal low mind process.,dealer_59698 -sO40858,Hyundai,X1,2005,MediumSeaGreen,Diesel,$62.92,owner_25424,Still hair now scientist fine size.,dealer_46404 -FK49490,Hyundai,X1,1986,Orange,Petrol,$54.90,owner_08328,East animal charge network break join process toward.,dealer_59485 -ir00434,Honda,X1,1971,DimGray,Electric,"$2,961.82",owner_44070,Agree give special return yes between develop.,dealer_11140 -VI43880,Honda,X1,2022,MistyRose,Petrol,"$8,007.45",owner_69218,South without pass expect.,dealer_81032 -NA51143,Honda,X1,1979,PaleGoldenRod,Electric,$3.01,owner_37854,Event consumer miss.,dealer_93801 -aO96987,Hyundai,City,1986,Magenta,Petrol,$81.33,owner_50075,Usually any build idea should carry.,dealer_92508 -np54047,Honda,City,2014,Bisque,Hybrid,$99.04,owner_64876,Imagine smile great capital forward.,dealer_55593 -eY71966,BMW,City,1998,DarkGray,Diesel,$110.81,owner_55195,Interest center say fact.,dealer_75243 -DZ83339,Honda,X1,1992,HoneyDew,Hybrid,"$29,155.60",owner_97983,Recently finally full mean grow.,dealer_81283 -Qq75322,Hyundai,City,2004,IndianRed,Electric,"$82,426.46",owner_02835,Far until expert eat.,dealer_14790 -AM08745,Hyundai,City,1972,LightSteelBlue,Electric,"$6,680.54",owner_18791,But first movement occur.,dealer_33571 -ci84698,BMW,X1,2022,YellowGreen,Petrol,"$87,563.16",owner_04044,Occur across sound offer well example dog group.,dealer_70108 -XX97747,BMW,City,1994,LightSlateGray,Petrol,$165.29,owner_81471,Boy street strategy community.,dealer_68052 -wW07299,Honda,City,1977,DeepPink,Petrol,$273.97,owner_68569,Practice find keep wrong give.,dealer_13409 -ZQ16265,BMW,i20,2022,Linen,Petrol,"$48,940.54",owner_09509,Training this production east leave.,dealer_51726 -Gn61678,Hyundai,City,1972,Teal,Diesel,"$98,760.51",owner_61058,Report her long much.,dealer_04376 -ri18384,BMW,X1,1988,Crimson,Petrol,"$34,436.07",owner_70586,Music base trip religious him throw site.,dealer_56869 -fB28264,Hyundai,City,1991,PapayaWhip,Hybrid,$967.23,owner_18831,Baby organization step human miss green week democratic.,dealer_38303 -Om21180,BMW,X1,1980,LightSlateGray,Hybrid,"$82,095.19",owner_55705,Contain local recent owner rather.,dealer_64778 -FV15894,Honda,City,1983,DarkSeaGreen,Hybrid,$30.53,owner_13822,Strategy decision raise no trip particular later.,dealer_68165 -cF49640,Hyundai,i20,2018,Moccasin,Diesel,"$14,897.59",owner_96628,Cover ask city nothing go.,dealer_56868 -eP68219,Hyundai,i20,1981,Crimson,Hybrid,$745.70,owner_76077,Bag vote community toward.,dealer_86177 -kl63883,Hyundai,X1,1985,DodgerBlue,Diesel,"$42,772.26",owner_03753,Ten study again their lead.,dealer_68682 -Nf16301,BMW,X1,1978,LightSalmon,Petrol,"$9,391.75",owner_62839,Draw watch want free.,dealer_81255 -gD68555,Hyundai,i20,2022,DodgerBlue,Diesel,$80.05,owner_21436,They seem city base local situation.,dealer_62696 -eU42379,BMW,i20,2022,Azure,Diesel,$64.71,owner_10653,Art simply place real several important.,dealer_11852 -cD76363,BMW,i20,1990,Chocolate,Petrol,$595.59,owner_79850,Top spend decade.,dealer_07376 -my85722,Honda,i20,2019,RosyBrown,Hybrid,"$3,084.71",owner_31494,Wish into consider daughter throw third.,dealer_71795 -qY58108,Honda,X1,1975,DimGray,Electric,$571.97,owner_25292,Assume could heavy here similar.,dealer_91457 -sW86310,BMW,City,1997,DarkOrange,Diesel,"$4,031.26",owner_80134,Weight address that hear institution.,dealer_86049 -hO04271,Honda,i20,1999,BurlyWood,Diesel,$5.81,owner_58861,Team financial situation ask.,dealer_79878 -DJ55623,Honda,i20,2012,Tomato,Electric,$5.31,owner_26822,Organization teacher production training.,dealer_09330 -Ez45489,Honda,i20,2007,DarkViolet,Petrol,$6.63,owner_91168,Watch system word dream lawyer.,dealer_20217 -vo00190,Hyundai,X1,2011,Tomato,Diesel,$382.68,owner_89723,Program new more draw edge.,dealer_01135 -eR42593,BMW,City,1974,Pink,Electric,$854.28,owner_50279,Loss fight show history break list.,dealer_16092 -Hc18462,Honda,City,1976,Khaki,Electric,"$3,099.46",owner_64441,Trouble claim visit standard strategy.,dealer_45397 -KA27827,Honda,City,2018,Orchid,Petrol,$278.08,owner_63576,Table including moment defense.,dealer_95416 -Zu68373,BMW,i20,1993,DarkBlue,Electric,"$97,661.49",owner_28439,Positive campaign figure for it.,dealer_09689 -OM61239,BMW,i20,2022,NavajoWhite,Diesel,$58.92,owner_75673,Without read ask involve behind place he beautiful.,dealer_61310 -Aq04045,Honda,X1,2017,Cornsilk,Hybrid,$69.43,owner_17430,Machine she everyone nor reveal peace.,dealer_22165 -UJ62709,BMW,X1,1975,Wheat,Petrol,$49.42,owner_26251,Benefit full term blood knowledge than before edge.,dealer_87444 -dU19237,Hyundai,X1,1990,OldLace,Electric,$61.40,owner_58196,Laugh area approach material tax.,dealer_96117 -NH15168,Hyundai,i20,1993,Tan,Hybrid,$763.62,owner_04310,Mean instead language wide wide support.,dealer_63857 -lt84987,Honda,City,1985,AntiqueWhite,Diesel,$774.21,owner_31224,Among experience future head section get both.,dealer_40583 -rm13453,BMW,City,2014,Purple,Petrol,$280.07,owner_47923,Accept about sound window add national crime.,dealer_05832 -uE20324,Honda,City,1981,CornflowerBlue,Hybrid,"$9,861.14",owner_82240,Ask person conference stage.,dealer_09204 -kL92532,Honda,City,1993,Lavender,Hybrid,$80.58,owner_82759,Floor kind spend.,dealer_38155 -RW25127,Honda,City,2012,OrangeRed,Hybrid,$43.57,owner_07979,Beat source foot which use situation.,dealer_47433 -ME50121,BMW,i20,1990,Teal,Electric,$14.10,owner_53004,Maybe generation prevent suggest.,dealer_59509 -Dc86354,Honda,i20,1984,FireBrick,Hybrid,"$3,096.94",owner_55434,Rate word magazine character me risk.,dealer_01203 -Jz05498,Honda,i20,2020,FloralWhite,Diesel,"$13,285.15",owner_46542,Experience seat option bed tell.,dealer_41085 -ey10203,Honda,i20,2021,BurlyWood,Hybrid,"$8,834.78",owner_66967,Truth degree relationship.,dealer_37471 -gq55041,BMW,X1,1985,Salmon,Hybrid,"$3,073.45",owner_54128,Hold computer difference able could.,dealer_54964 -jn45632,Honda,i20,2005,White,Petrol,"$9,120.27",owner_09482,Sometimes plant floor relationship writer final writer.,dealer_55683 -JF85020,BMW,City,2011,Lime,Petrol,"$88,988.48",owner_36268,Pass most purpose man.,dealer_85662 -Cb20147,BMW,City,1982,Khaki,Diesel,"$9,076.29",owner_30526,Record computer collection very.,dealer_98285 -ah65447,Hyundai,i20,1995,Moccasin,Electric,$4.16,owner_95387,Off seem land receive east stand rock.,dealer_23700 -AC49600,BMW,X1,2010,Gainsboro,Diesel,$201.73,owner_04463,Stand always improve grow everybody you.,dealer_63252 -Li46446,Hyundai,City,1988,LightGray,Diesel,$9.96,owner_47618,Factor sea remember time loss.,dealer_26181 -Xe63938,Honda,City,1992,OrangeRed,Electric,$668.80,owner_65416,Sometimes relationship development best.,dealer_50994 -DU05605,Hyundai,X1,1975,DarkSlateGray,Hybrid,$4.77,owner_57570,Worker order nice still involve.,dealer_01434 -TX02697,Honda,City,1980,Fuchsia,Diesel,"$3,477.55",owner_80298,Explain network or ask carry.,dealer_66335 -ux63032,BMW,X1,2021,CadetBlue,Petrol,"$8,986.53",owner_52338,Leg house station by nor rest have audience.,dealer_96501 -vY31104,BMW,i20,1987,DeepPink,Petrol,"$18,897.47",owner_55930,Down best property billion.,dealer_67919 -bz98557,BMW,X1,1989,LightCyan,Electric,"$62,137.87",owner_36695,Minute rise leader court race teach relationship wonder.,dealer_97672 -ft62073,BMW,X1,2009,CadetBlue,Electric,"$3,368.05",owner_97413,Suffer military another will speak every sort.,dealer_76472 -op83202,Hyundai,i20,1989,RosyBrown,Hybrid,$54.01,owner_26809,Former body music.,dealer_51915 -Hp55422,Hyundai,City,1976,Beige,Diesel,"$29,466.95",owner_24540,Mind measure way fish.,dealer_42585 -fq32739,BMW,i20,1989,Bisque,Petrol,"$35,380.09",owner_57976,Century soon glass third address management site.,dealer_55037 -yH58712,BMW,i20,1998,Chocolate,Hybrid,$189.24,owner_24488,Of see doctor nature break set until.,dealer_65491 -Xz50261,Honda,i20,1996,DarkOliveGreen,Petrol,"$7,077.99",owner_08639,Research early author far wear.,dealer_46807 -HE87227,Hyundai,X1,1977,DeepPink,Electric,"$29,613.33",owner_51274,Maybe different through almost century couple style.,dealer_77109 -Ex09630,Hyundai,i20,2008,AliceBlue,Electric,"$88,405.07",owner_77464,Law first that sell him around mouth.,dealer_42894 -Lb70832,BMW,City,1973,LightGoldenRodYellow,Electric,$85.43,owner_18997,Onto security such body other travel everything.,dealer_40393 -bx01033,BMW,City,2011,Crimson,Diesel,$8.07,owner_77988,Design speech public wish thing Mr.,dealer_43516 -nE72149,Honda,i20,2003,GreenYellow,Electric,$8.19,owner_24133,Red bag public get lose here.,dealer_18636 -tU87762,Hyundai,X1,1975,DarkViolet,Petrol,$13.02,owner_94942,Reduce number half identify.,dealer_49210 -vy64038,Honda,i20,1980,Cyan,Petrol,"$36,222.41",owner_95357,Yeah relationship meet win hair south.,dealer_78256 -bg38613,BMW,i20,2000,Chocolate,Petrol,$184.97,owner_65710,Spend take team generation sister or organization.,dealer_90194 -uN33611,BMW,i20,2016,LightGray,Electric,"$1,082.58",owner_03069,Happen turn leave seem market city.,dealer_12254 -Eb70630,BMW,i20,1989,Peru,Hybrid,$6.46,owner_10451,Fine reveal nothing his green structure.,dealer_84710 -SU59415,BMW,City,2011,OldLace,Electric,$695.26,owner_04314,Hotel visit practice guess step send relationship maintain.,dealer_26993 -cH51701,Honda,City,1978,Chartreuse,Electric,$340.06,owner_12637,Identify former police away another part.,dealer_26170 -Ro99394,Hyundai,City,1975,DarkKhaki,Electric,$490.11,owner_04756,Heavy appear various stop.,dealer_71378 -Rd70867,Hyundai,City,2015,MidnightBlue,Petrol,"$22,817.16",owner_85919,Development even assume development mouth full glass.,dealer_92604 -Zk09167,Hyundai,i20,1989,Aquamarine,Hybrid,$86.44,owner_08020,Phone environment small fund agreement instead ground.,dealer_87805 -MU75789,Hyundai,City,1972,Wheat,Diesel,$332.91,owner_21237,No fall next none floor.,dealer_01019 -Vm50802,BMW,i20,2004,Orchid,Electric,$53.31,owner_16140,Mission role type increase agent woman establish.,dealer_69145 -Vh52626,BMW,X1,2016,DarkTurquoise,Petrol,$67.90,owner_29459,Rise pick nice.,dealer_09624 -tt77961,Hyundai,i20,1971,DarkOliveGreen,Electric,$442.09,owner_07804,Significant factor people.,dealer_24714 -UC98444,BMW,X1,2009,PapayaWhip,Electric,$300.86,owner_02093,Best use number.,dealer_31248 -dv78716,Honda,City,2015,FireBrick,Electric,"$7,618.34",owner_85404,When improve range next next letter day.,dealer_20769 -bZ98537,Hyundai,i20,1988,Aqua,Hybrid,"$9,326.57",owner_25957,Phone term down how either loss.,dealer_83749 -no53642,Hyundai,X1,1982,DarkOliveGreen,Diesel,$59.87,owner_16505,Ok see knowledge should what.,dealer_82817 -bj70064,BMW,X1,2024,Violet,Hybrid,$684.48,owner_67733,Training cause its hair can make story.,dealer_63817 -vt84755,Hyundai,City,1972,HoneyDew,Hybrid,$231.05,owner_00285,Safe age religious moment allow painting too respond.,dealer_05311 -ed42151,BMW,i20,2009,LightCoral,Electric,"$83,105.71",owner_36566,Popular teach carry.,dealer_75076 -tB77927,BMW,City,1999,Teal,Diesel,"$9,570.34",owner_35046,Program high manage manage service watch.,dealer_92419 -FB70607,Honda,X1,2004,PeachPuff,Diesel,$85.18,owner_24006,Pretty reality piece southern another.,dealer_93431 -Xj82004,BMW,X1,2001,PaleGoldenRod,Diesel,$7.98,owner_82745,War himself share left.,dealer_64467 -kh91331,Honda,City,1983,LawnGreen,Diesel,"$95,006.84",owner_04098,Huge decade nor yes.,dealer_71965 -uF88945,Honda,i20,2018,Azure,Electric,$73.66,owner_10740,Contain window his reduce fact.,dealer_49048 -dc45476,BMW,i20,1970,LightSeaGreen,Hybrid,"$91,876.10",owner_97976,Know gas read moment.,dealer_46555 -zX99111,Honda,X1,1981,DarkKhaki,Electric,$814.17,owner_37476,Coach model management ground family way cost.,dealer_29703 -fs77100,BMW,i20,2017,RoyalBlue,Hybrid,$6.59,owner_79601,Amount marriage until direction pull successful tend.,dealer_26996 -aq55541,Honda,i20,2024,Bisque,Diesel,$2.92,owner_60233,Pretty painting individual though.,dealer_73654 -qz85619,Hyundai,i20,2020,Aquamarine,Hybrid,$521.05,owner_48603,Follow himself decade increase modern current view.,dealer_25502 -eI08395,BMW,X1,2009,WhiteSmoke,Electric,"$1,278.42",owner_88976,Special want walk really eat.,dealer_96790 -XW34113,Honda,City,2012,Indigo,Petrol,$7.30,owner_61673,True life any war should view point.,dealer_47105 -Zf18362,Honda,i20,1994,SlateBlue,Diesel,$97.29,owner_13725,Nature add contain break provide throughout.,dealer_65215 -TY12635,BMW,X1,1983,Lavender,Diesel,$3.48,owner_07048,Phone power air range understand green trial.,dealer_97910 -hl09152,Honda,i20,1993,DarkCyan,Electric,$38.00,owner_37268,Eight argue just forget remain develop suddenly.,dealer_66548 -Jh34810,Hyundai,X1,2014,Indigo,Diesel,"$23,087.26",owner_03372,Need present term war no step away.,dealer_06597 -jj19759,BMW,i20,1976,FloralWhite,Hybrid,"$3,306.93",owner_11572,Experience PM coach especially.,dealer_40664 -OB74530,Honda,City,1984,SkyBlue,Electric,$323.43,owner_15470,Yard attack partner plant four travel.,dealer_07117 -BA31247,BMW,X1,1971,MediumSlateBlue,Electric,"$4,419.61",owner_20720,Yourself well say add strategy safe.,dealer_18215 -zw76292,BMW,i20,1977,MediumSlateBlue,Diesel,$770.68,owner_39633,Pick pay part despite soldier.,dealer_00448 -Cl78478,BMW,X1,1993,LightCoral,Diesel,$4.65,owner_09626,Pull sign cultural front use near.,dealer_50011 -wu55333,BMW,City,1978,GreenYellow,Hybrid,$477.51,owner_66110,Body pick war.,dealer_07409 -rL24855,Honda,City,2004,SkyBlue,Electric,$0.50,owner_33653,Debate professor music argue would Democrat you.,dealer_12761 -lf70028,Hyundai,X1,2002,DarkCyan,Petrol,$458.60,owner_99817,Hundred require skin across candidate condition nice.,dealer_22267 -ma84727,Hyundai,X1,1980,DarkOliveGreen,Diesel,$36.92,owner_10146,Keep watch glass form as positive.,dealer_83425 -ye15884,BMW,City,1993,White,Petrol,"$46,460.89",owner_23334,Marriage threat something place time.,dealer_21615 -Ua67739,Honda,i20,1981,Orchid,Electric,$814.15,owner_85580,Six enough meeting chance.,dealer_10481 -kY29766,Hyundai,i20,1996,Orange,Electric,"$8,823.53",owner_32111,Too present current especially.,dealer_31186 -AG50415,Hyundai,i20,2023,DarkMagenta,Electric,$12.84,owner_86151,Stage discuss audience point strategy thus term.,dealer_96222 -aC29645,Hyundai,X1,1995,HotPink,Diesel,$5.39,owner_82667,Argue just ever trial.,dealer_43060 -US51311,BMW,i20,2008,OliveDrab,Electric,"$8,699.33",owner_24260,Onto government head church.,dealer_34821 -xJ13353,BMW,i20,1993,Chartreuse,Petrol,$40.29,owner_55794,Create mean group Mrs there.,dealer_16138 -xR22609,Honda,i20,1978,MediumSlateBlue,Hybrid,"$25,149.67",owner_13837,Age food possible ready cup unit.,dealer_70941 -EL13016,Honda,City,1989,Snow,Hybrid,"$9,016.50",owner_04788,Home group letter join media question life.,dealer_85427 -lj31003,Hyundai,City,1978,LightSlateGray,Diesel,$30.82,owner_67977,Policy partner lead without exactly five general.,dealer_25746 -FP07191,Hyundai,X1,2020,Chocolate,Hybrid,"$74,134.42",owner_18512,Factor beat debate book at any.,dealer_39417 -Ap38333,Hyundai,i20,2019,AliceBlue,Diesel,$0.74,owner_20171,Argue society truth today example we.,dealer_87373 -if01645,BMW,X1,1979,DarkKhaki,Petrol,$1.40,owner_70484,Direction case response might clear performance special.,dealer_00898 -kT87419,Hyundai,i20,2006,SlateGray,Hybrid,"$55,752.00",owner_66307,Region half civil send standard have.,dealer_76142 -hc28628,BMW,i20,1972,RoyalBlue,Hybrid,$900.91,owner_60786,Deep player Republican.,dealer_91546 -Ow70788,Hyundai,City,1998,LawnGreen,Petrol,$9.27,owner_67190,Most opportunity analysis usually from find it world.,dealer_15414 -cG50594,Honda,X1,1984,LightGreen,Hybrid,$13.75,owner_23996,College positive training window cause play.,dealer_42591 -jg16767,Hyundai,i20,2012,LemonChiffon,Electric,$497.27,owner_50971,Clear enjoy deal key.,dealer_09977 -hX20692,Hyundai,i20,1979,Maroon,Petrol,$712.01,owner_93279,Health answer fire college anyone.,dealer_45581 -ID23520,BMW,City,1998,Olive,Hybrid,"$86,987.59",owner_58345,Which trial affect.,dealer_75019 -Gw13885,BMW,i20,1973,MediumPurple,Electric,$402.82,owner_29995,Young third hot growth thus.,dealer_73511 +car_id,make,model,year,color,mileage,price,engine_type,transmission,fuel_type,service_history_id,description,created_at,updated_at,showroom_id +tm37076,Toyota,Civic,2011,Blue,"480,726 miles","9717,688",Hybrid,Automatic,Hybrid,SH77274,Security new century course according eye which yet movie support.,2022-12-23T23:29:30,2023-02-24T18:49:50,SHRM20203 +KV97525,Nissan,Civic,2003,Silver,"353,022 miles","6082,325",V6,Manual,Diesel,SH84086,Notice police meeting mean value court door remember whole ten growth indeed.,2022-02-24T06:38:22,2023-04-15T22:31:15,SHRM14642 +Fy39066,Honda,Model S,2016,Gray,"138,866 miles","4174,801",V6,Manual,Petrol,SH48881,Medical effort relationship course something follow pass just.,2024-07-25T21:30:39,2024-03-16T21:54:41,SHRM05095 +Zs21298,Honda,F-150,1988,Gray,"816,218 miles","6644,722",V8,Automatic,Diesel,SH52659,Window surface drug different toward right artist admit find challenge today black player.,2024-11-16T05:46:59,2020-03-06T15:13:13,SHRM92013 +af83323,Chevrolet,F-150,2002,Orange,"001,193 miles","3300,171",Electric,Automatic,Electric,SH18388,Subject project else game fund remain above.,2020-02-07T05:45:09,2021-05-13T14:59:08,SHRM56795 +hu97773,BMW,Model S,1975,Blue,"280,259 miles","3782,413",Electric,Automatic,Hybrid,SH71207,Long draw moment participant moment when structure mission.,2021-06-26T17:43:45,2023-10-26T20:32:30,SHRM36403 +Uw36966,Volkswagen,Elantra,2002,Red,"003,884 miles","5097,926",I6,Manual,Diesel,SH31687,Most different part guess check project official product deal.,2021-05-17T23:32:42,2022-10-06T13:35:19,SHRM80656 +qV43208,Volkswagen,Soul,1986,White,"027,085 miles","5362,103",Electric,Manual,Petrol,SH33008,Mean then matter four put better win yard commercial you.,2023-08-09T10:57:44,2023-02-04T18:00:33,SHRM10507 +sS30200,Honda,3 Series,1977,Orange,"006,840 miles","9700,542",I4,Automatic,Hybrid,SH96636,Population success long couple market provide happy late law brother bar across fly.,2021-03-16T23:36:56,2024-08-16T02:42:36,SHRM76563 +nN48824,Hyundai,Elantra,2004,Brown,"290,588 miles","5034,584",I4,Automatic,Electric,SH25874,He say author threat little surface.,2023-12-11T15:50:39,2021-04-09T02:13:33,SHRM27380 +sv70136,Mercedes,F-150,2007,Orange,"070,784 miles","8053,017",V8,CVT,Diesel,SH24162,Rate sure fact likely white modern apply read message finally view generation wide.,2023-05-22T03:34:47,2021-05-28T15:53:33,SHRM48672 +sL47247,Honda,Elantra,2006,Yellow,"027,680 miles","4061,613",V8,Automatic,Hybrid,SH52158,Poor its official decision arrive away they floor.,2021-10-31T11:01:10,2020-08-25T01:46:11,SHRM64680 +eQ48974,Mercedes,Camry,1982,Yellow,"505,256 miles","4158,029",Hybrid,Automatic,Hybrid,SH57641,Reduce so shake kid police personal street her early later voice environment organization.,2022-10-02T15:44:24,2020-11-25T06:07:21,SHRM05095 +OW23863,Mercedes,Accord,2011,Orange,"289,091 miles","7860,301",V6,Automatic,Petrol,SH24517,Wind family professor staff charge trip nature specific.,2022-10-22T10:35:04,2022-05-02T10:27:38,SHRM65874 +QQ27561,BMW,Soul,1994,Blue,"158,395 miles","5769,153",V8,Manual,Hybrid,SH50413,Run treat other once police others present yes.,2022-09-27T13:13:07,2022-06-13T14:21:17,SHRM33387 +aS99437,Volkswagen,Elantra,1972,Blue,"892,940 miles","3770,588",V6,CVT,Petrol,SH45691,Record itself relate himself school effect current win fill city air look.,2021-11-07T06:08:12,2024-11-13T05:13:47,SHRM53675 +yV21445,Toyota,Elantra,2009,Black,"800,652 miles","7634,655",V6,Automatic,Electric,SH05329,Agency since space article war other same large also.,2024-04-20T13:51:29,2023-07-06T03:12:24,SHRM33387 +hx15348,Mercedes,Golf,1990,Brown,"715,768 miles","6669,390",Hybrid,CVT,Hybrid,SH46492,Easy call soon something our million power research friend government admit accept why.,2023-05-29T20:43:14,2020-04-19T08:21:00,SHRM33387 +aX41755,Kia,Model S,2014,Green,"718,192 miles","5538,718",I6,Manual,Electric,SH70606,Party race return country direction issue term exactly.,2022-05-06T04:19:36,2022-05-21T22:50:02,SHRM84204 +UF18835,Hyundai,F-150,1977,Silver,"250,355 miles","5398,439",V8,Automatic,Diesel,SH88277,Trial during house no idea size together without production.,2023-01-17T06:50:24,2023-08-07T11:46:52,SHRM98132 +LZ26911,Ford,Model S,1978,Gray,"579,316 miles","8118,474",Electric,Automatic,Electric,SH78235,So art lot name hot customer.,2022-01-15T02:30:07,2023-01-04T14:34:12,SHRM18797 +cw13028,Ford,Camry,2001,Black,"174,972 miles","4610,614",I4,Automatic,Electric,SH99002,Approach should ready mother per meet professional be.,2024-12-06T20:14:49,2021-03-13T18:26:32,SHRM30726 +KY73683,Mercedes,Golf,1991,Yellow,"071,954 miles","2005,224",I4,Manual,Diesel,SH79251,Thing idea already raise win home institution early present world agreement hope store.,2020-05-11T04:43:39,2024-04-22T01:27:33,SHRM80648 +tR06163,BMW,Golf,1982,Blue,"493,796 miles","7377,115",Electric,Manual,Petrol,SH03245,Music be arrive approach everybody both such project center company moment energy.,2024-07-13T00:53:55,2020-07-03T23:15:38,SHRM45128 +aN51074,Nissan,A4,1972,Green,"340,373 miles","8235,419",Electric,CVT,Hybrid,SH52710,Kind attorney house three fine assume different put seat us.,2024-09-11T03:41:48,2021-01-21T02:36:47,SHRM75661 +Ho19161,Ford,Model S,1999,Red,"784,897 miles","2543,942",I4,Automatic,Hybrid,SH41174,Pressure compare far same region class international least beat local try very.,2021-09-26T23:10:25,2024-01-23T03:50:02,SHRM06633 +Ax42390,Hyundai,Accord,1983,Red,"014,182 miles","6685,848",Electric,Manual,Hybrid,SH69982,Either economic conference prove theory claim.,2024-11-15T02:40:06,2022-02-26T07:29:22,SHRM75661 +cW56257,Mercedes,A4,2023,Gray,"535,037 miles","3796,942",I6,Manual,Petrol,SH12513,Sound truth respond newspaper trouble improve including well raise throughout develop wait.,2020-05-16T07:57:22,2024-08-01T13:24:45,SHRM14642 +xe93958,Volkswagen,F-150,1987,Green,"058,190 miles","3036,699",Hybrid,Manual,Electric,SH29910,Must at writer policy anyone provide late herself.,2024-04-07T19:42:53,2024-05-28T22:40:12,SHRM63916 +Ra53965,Honda,Golf,1971,Orange,"199,934 miles","6603,660",Electric,CVT,Hybrid,SH09213,End health sea entire history especially commercial market particularly.,2020-08-08T17:20:51,2021-02-22T17:38:09,SHRM53675 +br83751,Volkswagen,Golf,2021,Gray,"077,888 miles","9272,713",I6,Automatic,Hybrid,SH92077,Central dream perform enjoy majority market herself Democrat her clearly.,2021-05-12T21:43:07,2023-10-23T18:49:00,SHRM85786 +lA66017,Chevrolet,F-150,2004,Gray,"934,236 miles","3472,310",Hybrid,Manual,Hybrid,SH13372,Ask responsibility best realize line enough social.,2020-06-07T07:28:53,2023-07-10T11:17:23,SHRM32006 +Bt55909,Chevrolet,Elantra,2006,Orange,"110,728 miles","5415,417",V8,Manual,Diesel,SH75707,Realize really campaign candidate television director ask media quickly but position.,2024-07-05T03:05:22,2023-12-30T10:04:44,SHRM29303 +rc12810,BMW,3 Series,2022,Brown,"257,833 miles","6462,456",I4,Manual,Hybrid,SH87508,Charge doctor brother garden sometimes affect guy size best.,2021-06-29T03:43:07,2021-11-30T07:34:08,SHRM14642 +me65752,Volkswagen,Golf,2018,Gray,"167,585 miles","5758,797",V6,Automatic,Petrol,SH01581,Page remember evidence often vote society you American response rich develop.,2024-05-06T18:51:08,2022-05-02T04:02:02,SHRM66167 +YP95341,Honda,Civic,1992,Yellow,"338,939 miles","5260,125",Hybrid,CVT,Hybrid,SH65142,By town draw rate leg theory whole sing.,2023-06-10T15:50:52,2023-09-20T22:10:22,SHRM55232 +MQ36245,Toyota,Golf,2024,White,"665,303 miles","2656,918",V8,Manual,Petrol,SH25637,Age effect believe doctor base admit personal minute she laugh.,2024-02-03T07:33:18,2023-11-24T06:59:04,SHRM48672 +eo86905,Toyota,Civic,2007,Gray,"777,139 miles","8629,862",Hybrid,Automatic,Electric,SH07379,Gas nice boy technology under measure water skin particular group trouble.,2021-01-04T15:28:37,2021-02-10T15:58:15,SHRM36403 +tn38051,Ford,Elantra,2014,Brown,"496,836 miles","3373,838",I4,Automatic,Hybrid,SH37611,Force hotel week thank perhaps official street late must site capital.,2024-07-18T01:59:51,2022-04-17T16:09:05,SHRM12392 +cX55968,Chevrolet,Accord,1982,Yellow,"060,088 miles","5883,095",I4,Automatic,Diesel,SH76369,To measure leave smile really decide if officer by standard every.,2020-09-11T16:05:27,2024-07-14T01:42:05,SHRM72270 +ir15910,Mercedes,Accord,1972,Yellow,"288,947 miles","4046,308",I6,CVT,Hybrid,SH73835,Seat resource just so if government.,2024-02-09T08:48:30,2022-03-26T10:52:16,SHRM30726 +nk40249,BMW,3 Series,1990,Green,"065,164 miles","9821,284",V6,Automatic,Diesel,SH91024,Economic receive join interesting lay suggest letter one quality public.,2021-02-05T15:08:38,2024-12-21T06:12:34,SHRM68831 +zm59348,Honda,3 Series,2008,Gray,"725,324 miles","7512,171",Electric,Automatic,Hybrid,SH23559,Partner city with everybody involve both color hear describe.,2020-01-08T15:25:32,2021-05-05T17:17:05,SHRM01151 +cO20458,Chevrolet,Civic,2020,Blue,"590,563 miles","4288,980",I6,Manual,Diesel,SH26265,Tend Democrat yeah room yet person increase issue unit seek world other knowledge.,2024-04-29T23:00:15,2021-04-03T09:35:16,SHRM81940 +Oe51762,Chevrolet,Golf,1974,Black,"126,278 miles","3671,383",I6,CVT,Electric,SH07920,Quality else should these draw expert knowledge light.,2022-10-02T11:31:16,2024-04-07T16:41:50,SHRM81940 +oU86871,Hyundai,Soul,2003,Black,"937,692 miles","7468,488",V6,CVT,Petrol,SH30302,Reality on interesting wide job employee industry tree network again.,2020-06-09T02:36:40,2024-03-30T21:57:33,SHRM96927 +fE72708,Mercedes,Soul,2010,Black,"108,010 miles","8133,708",V6,CVT,Hybrid,SH41025,Director claim method cell leg appear.,2022-07-26T13:33:33,2024-06-21T01:16:05,SHRM85786 +uz64255,Chevrolet,Civic,1989,Black,"312,071 miles","8171,434",Hybrid,Automatic,Petrol,SH93058,Mouth lose into product maintain pay similar.,2020-05-10T07:46:33,2020-10-17T21:45:36,SHRM46991 +mS30952,Nissan,Camry,2022,Brown,"756,228 miles","5505,117",I4,CVT,Diesel,SH07828,Peace TV sister exist bit office and believe structure.,2024-10-10T15:32:07,2024-11-06T15:12:35,SHRM30726 +NF36951,BMW,A4,1970,Orange,"109,777 miles","9858,779",Hybrid,Automatic,Electric,SH33215,Throughout wait management fly lose them let TV their lead none policy.,2023-03-21T04:54:09,2020-10-25T16:42:20,SHRM45822 +oQ50882,Ford,3 Series,1976,Silver,"457,119 miles","2697,529",I4,CVT,Petrol,SH77111,Picture ahead address just strong ability candidate.,2024-09-28T11:48:49,2023-11-07T03:44:01,SHRM77296 +Lj20642,Kia,Model S,2014,Orange,"583,903 miles","8274,694",V6,CVT,Petrol,SH07644,Company sit deal rather all newspaper attorney onto road service.,2021-10-05T04:42:09,2024-11-12T14:46:19,SHRM48989 +oK07006,Toyota,A4,2022,Yellow,"810,490 miles","3360,651",I6,CVT,Electric,SH29135,Husband hand down answer myself collection green.,2025-01-16T09:27:01,2023-06-09T03:45:42,SHRM97744 +QI72260,Mercedes,A4,2002,Black,"349,322 miles","6129,666",V6,Automatic,Electric,SH68717,Professor husband official state me institution go stop.,2024-10-25T17:38:16,2023-02-10T20:18:41,SHRM65147 +Iw42571,Honda,A4,1999,Black,"971,952 miles","9515,372",I6,Automatic,Electric,SH53473,Career hope nor international against fire program.,2022-03-20T00:51:08,2024-01-29T14:12:01,SHRM32006 +cc18214,BMW,Accord,1979,Orange,"849,046 miles","2116,448",I6,Manual,Hybrid,SH85479,Recognize event myself only bring example national left people store site large film.,2020-07-23T23:18:29,2020-06-20T04:31:24,SHRM72061 +BX53189,BMW,Soul,1981,Black,"484,878 miles","7214,796",Electric,Manual,Diesel,SH13205,Trade claim analysis plan produce cultural environmental value commercial.,2024-06-26T18:59:10,2022-05-24T04:45:17,SHRM48989 +KZ68232,Nissan,Camry,1971,Gray,"159,228 miles","3027,846",V6,CVT,Diesel,SH84722,Expert base song dinner down less.,2024-11-04T18:53:41,2021-01-12T15:57:06,SHRM30726 +SO73123,BMW,Model S,1983,Yellow,"702,886 miles","5386,845",Hybrid,Automatic,Electric,SH07612,Maybe attention tree your month red.,2021-12-22T02:26:27,2020-03-04T01:26:13,SHRM97501 +ts76516,Toyota,Elantra,1981,Yellow,"057,619 miles","8648,271",V6,Manual,Petrol,SH91369,American stuff north newspaper themselves bag admit administration forget wall around truth.,2021-08-25T02:52:54,2020-02-24T18:30:01,SHRM96540 +Vo64705,BMW,Camry,1996,Yellow,"407,744 miles","7288,029",V6,Automatic,Electric,SH53590,Professional authority back condition family all their consider enjoy camera.,2024-07-03T20:30:30,2024-02-13T22:03:20,SHRM29303 +ze65568,BMW,Golf,1973,Silver,"833,539 miles","4277,143",Hybrid,Automatic,Electric,SH29012,Nice yeah trouble five age project hand at customer worker also public.,2021-12-09T15:01:36,2021-01-12T00:14:14,SHRM97501 +ps90088,Honda,Model S,2021,Silver,"157,253 miles","8018,254",I4,CVT,Petrol,SH99922,Large strategy hair court option whatever tonight effect social.,2022-01-25T08:09:02,2024-12-02T06:32:38,SHRM83284 +Mc52988,Honda,Soul,2001,Silver,"534,718 miles","8561,293",Electric,CVT,Diesel,SH47954,Some wind clearly meet ability father material million hold section fast.,2020-03-18T12:12:36,2020-05-01T04:45:10,SHRM21921 +CF80442,BMW,Camry,2009,Black,"649,421 miles","3034,648",V8,CVT,Electric,SH36886,Technology least last former work each news like suddenly.,2022-03-22T21:17:46,2024-02-20T17:49:20,SHRM55232 +hp22766,Ford,F-150,1974,Green,"453,561 miles","9126,523",V6,Manual,Electric,SH41989,They level interview how available speech compare possible beyond clearly technology left artist.,2020-10-13T11:57:46,2021-03-14T08:46:15,SHRM40245 +Ed98427,Hyundai,Soul,2004,Silver,"878,952 miles","3520,231",V6,CVT,Electric,SH32006,Training time hour discuss why institution blood improve sea beyond outside several.,2024-05-27T05:09:54,2022-08-22T00:04:02,SHRM01151 +jg19736,Hyundai,Civic,2001,Brown,"238,982 miles","4578,518",V6,Automatic,Electric,SH04574,Hard pattern ability attack produce hold argue.,2021-08-12T13:59:44,2024-08-15T04:13:45,SHRM01151 +Qm25291,BMW,A4,2017,Blue,"992,424 miles","5274,246",I4,CVT,Electric,SH04283,Company assume official easy professor somebody modern system television challenge.,2024-08-14T16:26:54,2023-04-03T07:07:51,SHRM51457 +wz34190,Kia,Elantra,1984,Silver,"943,135 miles","4938,607",V8,Manual,Diesel,SH10704,Table maybe away rate remain maintain as special who city maintain.,2020-03-30T04:53:10,2024-07-13T13:27:35,SHRM16616 +GK61751,Volkswagen,Camry,2020,Red,"614,692 miles","4982,084",I6,Manual,Petrol,SH02946,This drop son them whose occur.,2023-06-08T04:16:36,2024-08-31T12:18:49,SHRM45252 +QJ30644,Chevrolet,Civic,1978,Silver,"306,313 miles","7786,060",Hybrid,Automatic,Petrol,SH94583,Third himself if green level person clearly hold daughter wall away challenge.,2023-09-02T14:18:45,2024-01-27T20:04:27,SHRM53675 +Yk59632,BMW,Soul,1975,Green,"722,709 miles","4021,684",Electric,Automatic,Hybrid,SH83294,Success wrong onto leader work guess detail thus use message color activity.,2024-08-21T12:07:46,2023-02-07T15:09:25,SHRM62517 +nD29673,Mercedes,Accord,2018,White,"020,581 miles","8049,502",V6,Manual,Hybrid,SH68606,Unit meeting newspaper east charge see chair ground rather mean money model game.,2023-05-15T18:57:35,2022-11-07T07:19:29,SHRM97309 +Uv77358,Chevrolet,A4,1989,Red,"422,231 miles","7004,474",V6,Automatic,Diesel,SH42164,Push piece point since specific join chair to rate air write.,2024-08-11T03:07:12,2022-08-14T13:26:03,SHRM61538 +yQ30715,Hyundai,Camry,1994,Red,"041,388 miles","9725,998",Hybrid,CVT,Diesel,SH27058,Affect human adult computer set yard west very stay.,2021-10-31T02:44:35,2023-12-21T13:02:50,SHRM96540 +Gh02366,Ford,Camry,2007,Blue,"871,091 miles","9060,863",Electric,Automatic,Petrol,SH35587,Simply art what responsibility quickly in long four other.,2021-11-14T19:16:58,2020-12-29T19:00:19,SHRM79043 +Yd66054,BMW,3 Series,1975,Gray,"250,610 miles","2412,665",V8,Manual,Diesel,SH48581,Issue new no weight growth the rather.,2021-12-02T05:57:22,2020-12-03T18:07:39,SHRM85338 +kr83067,BMW,Model S,1971,Green,"214,039 miles","5658,500",I4,Automatic,Hybrid,SH01684,She perhaps city street culture impact continue shake.,2023-06-19T05:53:51,2024-08-24T04:48:27,SHRM21696 +td19965,Chevrolet,Camry,2019,Orange,"389,703 miles","2265,101",I4,Manual,Petrol,SH96520,Education start still notice play consider left final board trade thus group.,2020-03-13T17:25:01,2023-10-13T07:30:46,SHRM84204 +BT53892,BMW,Civic,2007,Brown,"624,212 miles","4604,370",I6,CVT,Diesel,SH46426,Put many movie trip interview them certainly determine until.,2021-03-04T19:47:38,2024-01-15T19:04:57,SHRM51457 +Ix96509,Volkswagen,Elantra,2017,Green,"940,271 miles","4072,191",Hybrid,Manual,Electric,SH84301,Fall compare enjoy task shake opportunity.,2020-02-01T09:58:50,2024-09-07T09:49:28,SHRM05095 +we08401,Hyundai,Model S,2004,Silver,"073,025 miles","4225,484",V6,CVT,Electric,SH38039,Make note never listen question star about father sport but.,2024-06-11T03:51:32,2020-02-06T08:10:11,SHRM96927 +Lw82782,Ford,Soul,2003,Orange,"318,544 miles","8767,072",V8,Automatic,Diesel,SH42213,Development bag sort dog fly war sense course wear station.,2023-09-27T11:31:25,2022-11-30T11:04:26,SHRM14642 +FT79830,Honda,A4,2017,Green,"581,519 miles","9861,286",Hybrid,Automatic,Petrol,SH68338,Dark also office approach indicate hand market thing allow.,2024-12-01T01:11:06,2022-02-26T04:58:52,SHRM66167 +wU36764,Mercedes,3 Series,2001,White,"513,842 miles","6006,501",Electric,Manual,Electric,SH10976,Often factor black name site candidate.,2023-01-11T01:38:17,2023-11-09T02:15:15,SHRM72270 +Xk33585,Ford,3 Series,1971,Red,"895,400 miles","7197,928",I4,CVT,Petrol,SH40257,During table military ahead born upon in ask.,2024-09-03T06:41:09,2024-01-18T02:05:14,SHRM96423 +cp03028,Nissan,Golf,1989,Orange,"832,587 miles","6276,509",V6,CVT,Electric,SH63964,Meeting return travel poor stuff herself girl political town take listen a send.,2024-05-30T14:43:19,2023-06-05T14:27:33,SHRM78528 +ey07194,Hyundai,A4,2024,Silver,"189,838 miles","6532,572",Electric,Manual,Hybrid,SH27093,Story others money yet region sure he though fall game main baby today.,2024-07-13T13:11:40,2020-06-18T19:29:02,SHRM12392 +qk19833,Nissan,3 Series,2003,Orange,"101,305 miles","2067,827",V8,Manual,Hybrid,SH03048,Former across audience employee read indeed write.,2021-01-05T01:27:46,2022-12-08T04:02:39,SHRM60762 +TU55358,Nissan,Civic,1974,Brown,"419,325 miles","2059,429",Hybrid,Manual,Hybrid,SH49884,Artist large recent rich such government draw ever sit save development.,2022-06-27T07:44:07,2023-03-06T00:25:33,SHRM70777 +ny83990,Ford,Soul,1973,Orange,"630,963 miles","4781,228",V8,CVT,Petrol,SH74694,But quite service push cover newspaper trip chair.,2022-12-23T01:07:40,2024-07-10T07:10:41,SHRM07326 +wy79075,Chevrolet,F-150,1985,Blue,"321,631 miles","5977,976",Electric,Automatic,Hybrid,SH25140,Image necessary answer current father public record try customer anyone section include.,2024-12-11T22:20:42,2023-11-10T05:06:55,SHRM32903 +Vs20648,Mercedes,Camry,1996,Orange,"552,586 miles","4820,474",V8,Automatic,Petrol,SH75609,Maybe least few less western everyone medical bank teach partner.,2022-08-30T18:54:48,2021-11-29T07:49:24,SHRM85338 +cS82310,Nissan,3 Series,1989,White,"793,358 miles","8064,568",V8,CVT,Diesel,SH45146,Media other learn newspaper my board long.,2022-12-08T04:07:58,2022-11-04T16:07:54,SHRM79015 +BR20968,Hyundai,A4,2012,Red,"326,969 miles","9107,259",I4,Automatic,Hybrid,SH55437,Talk test economy issue hospital usually cost education best.,2024-09-15T01:50:39,2020-05-19T18:47:53,SHRM78570 +rp96781,BMW,Golf,2007,Brown,"914,340 miles","5079,292",V6,Manual,Diesel,SH37437,Region everyone investment agreement class office indicate fight possible voice organization election answer.,2023-10-10T10:52:51,2020-06-10T19:00:55,SHRM16616 +aR48679,Toyota,A4,1994,Blue,"717,093 miles","9578,867",I6,Manual,Diesel,SH97838,Amount media place body difference church.,2022-06-04T21:59:34,2020-08-14T06:53:57,SHRM96540 +dI19081,Honda,Accord,2006,Yellow,"863,287 miles","3309,039",I6,CVT,Hybrid,SH02393,Try protect street Democrat think eight say unit mission effort bit someone billion.,2023-01-05T12:11:37,2020-05-06T08:12:44,SHRM56795 +cT65454,Nissan,Elantra,2002,Yellow,"481,268 miles","4174,370",V6,CVT,Electric,SH37327,Everyone method available American onto new dog class continue rise successful.,2023-01-23T00:52:02,2022-05-01T16:11:03,SHRM65874 +LE82064,BMW,Elantra,1984,Green,"653,670 miles","2630,073",V8,Automatic,Petrol,SH43061,Such simply interesting close believe green pay exist feeling rate address much gun.,2022-03-07T07:13:44,2024-02-27T15:59:56,SHRM56795 +AS42342,Toyota,Accord,2010,Green,"003,542 miles","4438,231",I4,Manual,Hybrid,SH41023,Information have long enter music benefit scientist happy.,2020-04-06T11:12:15,2022-07-14T21:18:18,SHRM61195 +ff54216,Hyundai,A4,1995,Black,"707,798 miles","3936,968",I6,Manual,Hybrid,SH30297,Kitchen probably while pay billion certainly for leader near him.,2024-07-29T01:41:03,2020-09-04T06:48:49,SHRM48672 +GQ88076,Kia,Accord,1989,Silver,"691,735 miles","7376,465",V6,CVT,Electric,SH34850,Whatever first her range and get ok health draw oil.,2020-10-18T22:51:05,2021-06-29T23:08:20,SHRM51457 +ER79126,BMW,3 Series,2004,Silver,"211,079 miles","3332,261",I6,CVT,Hybrid,SH22015,Stock laugh though agree goal most than collection keep remain skill under.,2021-01-13T05:46:35,2020-12-15T08:11:08,SHRM10264 +ZL64952,BMW,Accord,2009,Orange,"773,510 miles","8494,402",I4,CVT,Diesel,SH34753,This age specific far majority own real million story computer statement argue specific.,2021-08-15T01:00:44,2023-08-22T20:56:42,SHRM60762 +Wt66568,Mercedes,Civic,1991,Silver,"434,323 miles","7617,602",I4,CVT,Electric,SH38898,Room well pretty include painting land leader.,2021-10-24T21:17:27,2023-12-18T16:01:51,SHRM79043 +fP65953,Chevrolet,Golf,1971,Silver,"452,341 miles","3739,097",I4,Manual,Diesel,SH31305,Best visit outside yeah floor must fight near crime page.,2021-11-02T03:25:25,2022-09-13T19:51:24,SHRM14642 +hm92093,Mercedes,Accord,1988,Silver,"536,986 miles","7077,714",Electric,Manual,Petrol,SH29031,Some though if nearly know change decision.,2020-02-15T08:37:03,2022-01-16T09:11:52,SHRM57464 +Es81672,Kia,Soul,1987,Red,"004,429 miles","7911,204",V8,Automatic,Hybrid,SH25100,Scientist identify form important yard analysis star necessary day nature measure.,2022-01-07T19:25:04,2024-03-11T03:20:19,SHRM32713 +pK38594,Chevrolet,Soul,2000,Orange,"573,698 miles","7438,063",V8,Automatic,Hybrid,SH93529,Wall change end stand reflect talk argue.,2021-06-30T19:50:45,2023-02-07T11:55:28,SHRM70777 +Rb74035,Honda,Camry,2020,Blue,"827,345 miles","3306,497",I4,CVT,Petrol,SH55476,Under attention political new significant hear impact.,2023-11-17T11:04:23,2020-06-11T09:07:42,SHRM84204 +NV20482,Chevrolet,Civic,2017,Red,"901,250 miles","8108,044",V6,CVT,Electric,SH58471,Me order food large reduce half.,2022-11-07T02:06:25,2021-04-18T15:53:23,SHRM80648 +Bp40478,Toyota,Model S,2015,Brown,"706,955 miles","4811,448",V6,Automatic,Diesel,SH92125,Prepare city not stop everything time people partner.,2023-11-18T15:23:56,2023-05-27T02:45:20,SHRM72270 +KO22456,Chevrolet,A4,1992,Silver,"003,182 miles","5283,321",Electric,Automatic,Diesel,SH54477,Understand between table occur toward goal concern attorney health poor maintain.,2020-11-24T09:12:38,2023-10-12T19:24:12,SHRM56795 +GD22455,Ford,Elantra,2014,Red,"482,089 miles","7943,059",I4,Manual,Hybrid,SH75378,Decision many beat dark issue American.,2024-03-22T13:32:16,2023-01-13T11:13:15,SHRM48989 +po32589,Kia,Accord,1978,Yellow,"919,470 miles","8678,935",I4,Manual,Electric,SH31710,Race dog hold former stage report development wrong hard card sign try.,2021-05-06T08:30:34,2023-10-26T02:46:30,SHRM20203 +sc44616,Chevrolet,Accord,1971,Orange,"505,364 miles","6230,215",V6,Manual,Electric,SH18194,Often major project third evidence debate.,2024-05-02T16:09:56,2020-02-17T22:15:31,SHRM80656 +wq92781,Chevrolet,Camry,2023,Brown,"804,770 miles","2536,964",I4,Automatic,Electric,SH12243,Popular meet suddenly meet general notice catch administration fly six science.,2024-01-17T16:10:53,2023-08-01T09:40:33,SHRM21921 +LS06925,Ford,Golf,2000,Orange,"338,898 miles","2147,224",Electric,Automatic,Diesel,SH73482,Environment drug word unit hotel TV word unit everyone south then.,2020-06-11T12:28:38,2020-12-17T18:16:08,SHRM16616 +VO77063,Volkswagen,Soul,2003,Brown,"184,509 miles","9332,936",Hybrid,Automatic,Hybrid,SH81740,Difficult pretty down end throw charge ground lose.,2022-07-23T00:49:25,2020-10-25T23:51:01,SHRM05095 +eK69855,Ford,Soul,1972,Brown,"983,469 miles","2496,141",I6,CVT,Petrol,SH23796,Significant study tax child customer group director list performance out will threat represent throw.,2020-03-05T08:24:48,2024-01-19T20:26:50,SHRM92013 +HK38465,Hyundai,Accord,1972,Orange,"262,394 miles","9938,080",Hybrid,CVT,Hybrid,SH85303,Simple chance behind suggest others present start three under grow cost now.,2024-12-11T21:40:05,2020-07-19T21:04:51,SHRM06633 +cO89611,Kia,Elantra,1982,Green,"438,936 miles","9320,676",I6,Manual,Hybrid,SH76310,Role leave attack spend firm matter company natural middle data story once.,2024-03-12T00:49:02,2021-03-01T15:05:41,SHRM66167 +pn18434,Nissan,Elantra,2002,Yellow,"575,289 miles","7467,689",I4,Automatic,Hybrid,SH56144,One marriage beautiful power share throughout easy in arm people medical customer family.,2024-05-09T09:22:12,2023-11-21T04:26:49,SHRM27380 +iE24374,Volkswagen,Model S,2017,Red,"578,536 miles","4123,715",I6,Automatic,Electric,SH64790,Arm until watch wall point because significant question expert through set.,2023-02-06T21:51:48,2022-05-19T15:46:57,SHRM48672 +Nm45614,Chevrolet,Camry,1976,Green,"655,936 miles","6855,502",Electric,Manual,Petrol,SH12778,Pattern see front include score something off major law look beat.,2021-01-23T02:46:44,2024-03-14T08:11:33,SHRM66167 +qn11745,Hyundai,Accord,2006,Green,"421,069 miles","9260,851",V6,CVT,Petrol,SH43926,Occur election remain both two alone goal speech.,2023-02-10T03:16:57,2021-08-10T17:39:27,SHRM32903 +Gw38769,Nissan,Accord,2022,Orange,"983,964 miles","9620,855",Electric,Automatic,Hybrid,SH57604,Fear ground to kid population ok help hair.,2024-06-20T03:56:25,2024-11-08T15:07:52,SHRM79043 +KO47690,Nissan,Camry,1993,White,"694,660 miles","8510,290",I4,Automatic,Diesel,SH43839,Side provide low civil visit trade training might money study defense follow.,2024-01-08T18:01:02,2024-05-20T16:46:56,SHRM45822 +DC74227,Kia,Soul,2020,Green,"221,081 miles","7243,562",Hybrid,CVT,Petrol,SH17626,Stuff themselves degree bring once interest forward.,2020-07-01T03:11:50,2023-06-11T22:08:19,SHRM85786 +Wt65708,Kia,Model S,1986,Red,"237,868 miles","5122,830",I6,Automatic,Petrol,SH03161,Only concern certainly foreign successful provide power area seat customer consumer.,2022-09-15T10:37:31,2020-11-29T15:56:53,SHRM68831 +Ye23627,Nissan,Golf,2001,Yellow,"332,319 miles","4739,651",I4,Automatic,Petrol,SH62207,Go speech pressure serious glass member task place occur college morning dog.,2023-11-06T10:13:48,2020-10-14T03:53:21,SHRM32006 +nU76138,Toyota,Civic,1970,Blue,"778,297 miles","4903,458",Hybrid,Automatic,Petrol,SH90783,Laugh board present budget enjoy around scene son.,2022-09-02T19:13:44,2024-09-24T19:29:19,SHRM59804 +ru63826,BMW,3 Series,1993,Brown,"815,730 miles","3816,453",Hybrid,Manual,Electric,SH71216,Computer stage dream discuss cultural other ball though real write himself bring.,2024-08-19T02:53:19,2021-01-11T10:52:19,SHRM96927 +rl48691,Nissan,Soul,2008,Silver,"009,604 miles","8235,618",Hybrid,Manual,Petrol,SH15991,Six read measure though contain again make site away.,2021-07-31T23:58:26,2024-04-21T16:26:38,SHRM86483 +uM86506,Chevrolet,Model S,2015,Brown,"721,919 miles","9661,745",I6,CVT,Electric,SH06930,Sell agent have picture position for girl.,2020-02-26T18:36:06,2021-09-16T21:40:54,SHRM74494 +mG24760,Hyundai,Soul,1995,Green,"808,138 miles","5545,346",Electric,CVT,Diesel,SH08809,Enjoy decade maybe on sister still candidate.,2024-01-25T00:36:41,2020-01-22T20:04:01,SHRM32903 +oB21502,Nissan,A4,1979,Blue,"344,663 miles","4908,561",V8,CVT,Electric,SH71638,Opportunity information trouble choice morning feeling bag.,2021-03-31T21:56:48,2023-10-11T21:39:38,SHRM32713 +Ab98068,Hyundai,F-150,1985,White,"021,742 miles","3883,435",Hybrid,Manual,Petrol,SH30911,Mrs everybody serve lay system community lose behind top heavy by economic little.,2022-06-03T01:08:16,2021-05-24T02:46:09,SHRM81940 +Lp31998,Volkswagen,Accord,2015,Gray,"169,624 miles","9218,001",Hybrid,CVT,Electric,SH89291,Society popular suddenly increase career security similar remember rich I laugh list.,2021-08-21T06:29:19,2020-02-17T03:04:32,SHRM20203 +BE47131,Mercedes,Camry,1989,Gray,"744,919 miles","6608,972",Electric,Manual,Petrol,SH98807,And member so everything beautiful customer herself western career.,2020-08-30T22:36:35,2024-02-15T04:15:01,SHRM80648 +Ea19172,Honda,A4,2005,Brown,"843,631 miles","9291,512",V6,Automatic,Hybrid,SH00166,Along cost treatment reveal keep instead prove someone.,2020-01-24T23:24:47,2020-06-18T15:41:51,SHRM69497 +pb39039,Mercedes,Model S,1984,Green,"662,725 miles","2147,224",I6,CVT,Electric,SH73976,Technology enough after item traditional sea record.,2021-11-30T18:07:56,2024-05-16T04:25:55,SHRM45822 +oE46385,Honda,Civic,1991,White,"140,766 miles","3631,072",Hybrid,CVT,Electric,SH32359,Debate agent newspaper significant save watch artist.,2022-08-20T07:39:42,2020-02-23T05:50:08,SHRM45128 +rh31317,Hyundai,F-150,2007,White,"260,974 miles","2679,606",Electric,Automatic,Petrol,SH50449,Understand pretty official fill can expert decide bit take challenge.,2023-03-10T06:34:52,2024-06-21T11:29:11,SHRM63916 +mK30337,Kia,Civic,1984,White,"423,611 miles","7452,015",Hybrid,CVT,Hybrid,SH25161,High hundred decide maybe must cut.,2024-04-04T10:49:29,2023-10-19T20:47:28,SHRM69497 +hp43676,Toyota,Golf,2021,Black,"691,211 miles","8525,400",I4,CVT,Electric,SH87997,Low father pressure unit local each.,2022-12-06T08:01:39,2023-06-07T06:36:52,SHRM31233 +ws93712,Hyundai,Model S,1990,Gray,"990,406 miles","3322,834",V6,Automatic,Petrol,SH40107,Get capital energy specific medical scene dog control.,2020-03-27T19:06:05,2023-11-29T01:52:14,SHRM31233 +qv53356,Hyundai,Elantra,1995,Silver,"391,917 miles","8509,109",V6,Automatic,Petrol,SH93130,Himself economic full exist road stay away.,2020-01-24T09:53:57,2022-09-13T17:17:39,SHRM48989 +bL52939,BMW,A4,1974,White,"886,812 miles","6338,459",V6,CVT,Diesel,SH26890,Very ever move well term marriage billion help.,2021-03-26T21:43:06,2020-09-11T09:04:53,SHRM76563 +dA94750,Volkswagen,Soul,1988,Red,"850,925 miles","4989,536",V6,Manual,Electric,SH10700,Get kind shoulder offer walk pick everything thought my.,2024-08-04T08:04:56,2020-06-28T10:43:37,SHRM10507 +Mo00720,Hyundai,Accord,1994,Green,"048,779 miles","3295,916",Hybrid,Automatic,Electric,SH18654,Enter cut yard born per record Mr dinner former rock open.,2024-04-24T16:38:39,2024-11-25T13:04:59,SHRM84636 +Bh89258,Volkswagen,A4,1996,Brown,"458,094 miles","5200,328",Electric,Automatic,Hybrid,SH11903,New catch yeah at general happen pretty tend bar spend.,2024-07-19T10:17:35,2022-02-24T17:06:16,SHRM16616 +TU98439,Kia,3 Series,2003,Yellow,"239,779 miles","8570,184",I4,Manual,Diesel,SH85721,Likely music move wind me thank election news way heavy short how.,2024-02-25T07:16:49,2021-02-04T18:30:58,SHRM40639 +oe61689,Mercedes,Civic,2015,Yellow,"175,753 miles","6299,612",Hybrid,Manual,Petrol,SH61103,Realize task culture trouble major at Mr tonight send.,2021-05-30T10:13:14,2020-11-30T01:19:40,SHRM10507 +TP96103,Hyundai,F-150,2019,Blue,"829,513 miles","3756,385",I6,Automatic,Electric,SH89317,Near culture woman executive expert weight his.,2024-01-13T22:44:44,2021-03-12T16:24:31,SHRM51457 +rk57810,Kia,A4,1986,Black,"922,961 miles","2372,020",I6,Automatic,Electric,SH57648,Data them later computer blue degree sing theory.,2022-03-23T02:23:29,2023-10-14T12:05:19,SHRM53675 +nw64635,Volkswagen,Soul,2009,Blue,"157,998 miles","3540,468",Hybrid,CVT,Electric,SH35160,North a reveal upon affect already piece Mrs yard stuff detail.,2022-10-26T14:09:49,2021-09-01T21:28:29,SHRM09690 +cM51776,Volkswagen,Model S,1989,Red,"546,851 miles","3429,685",V8,Automatic,Diesel,SH09481,Sure follow traditional enjoy action marriage model contain interview.,2023-02-11T20:29:36,2024-02-04T06:05:10,SHRM48672 +vZ01816,Hyundai,Elantra,2014,White,"493,145 miles","9344,573",V8,CVT,Hybrid,SH53345,Crime mention soldier between land thank war yourself coach difficult huge human.,2023-08-02T16:19:48,2020-07-27T17:15:06,SHRM16616 +FS68404,Kia,A4,2006,Yellow,"093,288 miles","8394,031",V6,Manual,Petrol,SH50779,Especially data white meeting stand positive apply affect.,2021-06-13T04:38:56,2021-07-31T05:10:00,SHRM76509 +eb20224,Ford,A4,1990,Silver,"711,095 miles","9862,363",V6,Manual,Petrol,SH90531,Source professor rise art adult chair.,2024-02-08T17:54:27,2023-03-02T15:22:18,SHRM58052 +Zn96315,BMW,Elantra,2008,Blue,"115,810 miles","3150,086",Hybrid,CVT,Diesel,SH80434,Contain box move analysis Republican while attack former receive soon page require central.,2020-02-24T03:38:22,2022-09-15T21:59:53,SHRM98132 +MX84958,Ford,F-150,2009,Blue,"810,013 miles","2967,267",V6,CVT,Electric,SH95010,Ask simply perform when artist finally community.,2023-01-22T07:41:58,2021-04-05T08:11:10,SHRM72061 +Xi49155,Honda,Elantra,1977,Black,"863,372 miles","5420,963",Electric,Manual,Petrol,SH46511,Speak hotel decade religious provide plan.,2022-01-18T01:37:33,2020-08-10T17:54:22,SHRM66167 +EZ35086,Ford,Elantra,2024,Orange,"213,785 miles","9394,300",I4,Automatic,Petrol,SH96899,Heart can decade out still power tough spend people away play close.,2021-10-22T22:50:04,2021-09-16T00:30:33,SHRM94558 +fY16465,Kia,Camry,1977,Gray,"017,303 miles","3993,409",Electric,Manual,Petrol,SH42615,By form agree local clear tell have down name enter lead clearly eight.,2023-06-03T09:42:26,2021-05-20T01:24:49,SHRM16616 +rI76819,Nissan,Elantra,2011,Gray,"601,197 miles","9970,589",V8,Manual,Petrol,SH00702,Main thousand south within north know bar small.,2022-02-20T23:23:16,2020-07-30T01:03:16,SHRM98132 +Ph40779,Nissan,Golf,1976,Red,"025,547 miles","5801,879",V8,Automatic,Hybrid,SH68456,Sense boy today memory decade economy sometimes bit receive pull present.,2021-12-28T18:42:24,2021-12-31T23:22:07,SHRM31233 +qU16616,Toyota,A4,1988,Silver,"184,034 miles","3318,621",Electric,Manual,Hybrid,SH93129,View it share first fact particular technology turn fire effort everybody.,2024-11-02T14:08:29,2024-04-30T20:46:13,SHRM05095 +YM57337,Hyundai,Accord,2024,Black,"914,016 miles","3437,807",V6,Automatic,Electric,SH87087,Whose building now almost lose simple room you reflect wide important.,2024-12-31T14:22:17,2022-05-24T14:33:24,SHRM45822 +Wn48325,Volkswagen,F-150,1996,Blue,"308,174 miles","3185,436",Hybrid,Manual,Electric,SH25013,Crime lose couple question example board age though before issue commercial piece.,2020-01-26T21:24:52,2020-04-23T16:45:50,SHRM65202 +lx31759,BMW,Soul,1988,Green,"421,374 miles","4926,892",Electric,Manual,Petrol,SH97739,Watch issue arrive every shoulder size it guy.,2021-03-04T23:56:42,2024-11-09T22:06:27,SHRM80648 +yV85217,Volkswagen,Elantra,1983,Blue,"122,164 miles","7463,532",Electric,CVT,Petrol,SH25088,Goal practice size design daughter pattern doctor.,2022-01-11T00:48:49,2020-03-08T17:42:28,SHRM72270 +jM71969,Ford,Camry,2000,Silver,"964,571 miles","9259,669",I4,CVT,Electric,SH46045,Nothing past when trip believe education not until suddenly.,2023-03-06T13:53:51,2021-12-28T01:26:16,SHRM58052 +xy78703,Honda,A4,2017,Green,"325,348 miles","6256,643",I6,Manual,Electric,SH29675,Some win street hospital important section.,2020-03-26T02:45:45,2022-07-04T00:10:34,SHRM46991 +WJ33504,Volkswagen,Camry,2007,Yellow,"349,722 miles","3236,669",Electric,Manual,Diesel,SH25110,Spend international pretty them wind data specific these something firm listen.,2020-07-09T18:56:29,2022-06-09T11:42:01,SHRM45822 +cv24740,BMW,Camry,1986,Silver,"168,906 miles","5593,319",V6,Automatic,Petrol,SH30956,About degree tax its expect out magazine many mention large director first.,2024-08-28T02:27:18,2021-03-04T17:56:34,SHRM21115 +yK91902,Ford,Golf,1978,Yellow,"311,913 miles","4200,733",Hybrid,CVT,Petrol,SH90615,Still expert war news summer development perform program environmental hard whose cause finally.,2020-01-04T03:26:33,2021-11-24T05:31:37,SHRM79043 +KM08114,Toyota,Civic,2011,Red,"768,793 miles","8884,324",Hybrid,Automatic,Diesel,SH68253,Evening live finish store owner nice owner teacher feel year exist information.,2023-12-11T20:33:06,2021-06-18T05:48:13,SHRM32713 +qm18676,Nissan,Civic,1975,Brown,"627,240 miles","2515,765",Electric,Manual,Hybrid,SH56527,That capital news couple hand kid right factor south newspaper field grow modern.,2022-07-21T08:12:51,2023-04-16T02:43:04,SHRM20203 +AM78470,Ford,Civic,2001,Red,"708,592 miles","3871,745",I4,Automatic,Diesel,SH24625,Year notice what know hundred director arrive machine consumer where.,2020-05-20T12:19:25,2024-03-18T17:38:51,SHRM58052 +Ir15081,Chevrolet,Elantra,2005,Black,"225,873 miles","5409,017",V8,Automatic,Diesel,SH06161,Raise decision democratic commercial account stage feeling especially miss wrong television ok.,2020-07-03T07:10:21,2021-06-26T01:41:00,SHRM33387 +kR10359,Ford,Civic,2015,Brown,"499,159 miles","4334,047",V6,Manual,Diesel,SH62662,Thousand man behavior there against join clearly guy sell knowledge thousand.,2024-12-25T00:21:01,2022-08-20T04:22:40,SHRM99149 +mZ23736,Chevrolet,Golf,1984,Orange,"555,026 miles","3978,965",I6,Automatic,Hybrid,SH97027,Former really job popular age police south machine field.,2023-10-12T20:54:36,2024-11-06T22:18:53,SHRM55232 +xA30603,Nissan,Civic,1992,Green,"603,051 miles","6100,721",I6,CVT,Hybrid,SH51582,Eat central doctor book keep parent style conference prepare meeting without artist.,2022-08-14T00:44:11,2020-06-25T05:56:53,SHRM69497 +cw12009,Ford,A4,1980,Blue,"837,428 miles","7539,108",I6,Manual,Electric,SH10669,Health wonder what world most protect see.,2024-11-14T20:42:43,2020-10-25T07:24:29,SHRM21115 +VP60731,Chevrolet,A4,1996,Orange,"571,214 miles","3767,544",I6,Manual,Hybrid,SH44555,Science health marriage national poor hour build.,2021-01-20T14:58:41,2024-07-06T21:36:41,SHRM66167 +DX99251,BMW,Model S,1978,Green,"646,184 miles","7255,498",Electric,CVT,Hybrid,SH98117,Support never follow plan network girl.,2022-06-10T01:24:26,2021-02-07T17:33:55,SHRM62517 +Jv66213,Chevrolet,Elantra,1983,Blue,"783,831 miles","8407,708",I6,Manual,Electric,SH28796,Occur building television any kid build station decision clearly share.,2021-12-01T15:14:41,2022-08-21T08:06:16,SHRM30726 +Vf97071,Hyundai,Camry,1974,Green,"764,686 miles","5228,871",I6,Automatic,Hybrid,SH71992,Force appear time at majority activity able dinner seven only.,2024-07-30T07:04:19,2021-03-01T13:33:01,SHRM77296 +ET54220,Volkswagen,Model S,2010,Silver,"533,190 miles","9692,055",V6,Manual,Petrol,SH84683,Left security long possible nation Mrs hour.,2024-09-12T09:34:03,2023-08-05T15:44:31,SHRM51457 +nQ11852,Kia,Model S,1994,Gray,"515,532 miles","9562,782",V8,CVT,Electric,SH98894,Statement arrive may smile want whether wall.,2023-08-11T17:10:17,2024-11-03T09:35:00,SHRM83284 +qT05764,Chevrolet,Golf,1981,Yellow,"151,471 miles","6819,839",Hybrid,CVT,Diesel,SH99936,Turn once pull way long interest up sign who doctor.,2021-10-06T05:15:28,2024-03-29T17:57:04,SHRM66167 +Dd87624,Ford,Golf,2018,Red,"563,653 miles","2583,139",I4,CVT,Electric,SH01677,Until somebody couple well employee born.,2023-01-12T18:53:19,2024-11-30T16:23:13,SHRM76563 +VW98013,Honda,A4,1993,Red,"471,254 miles","9814,533",V8,CVT,Hybrid,SH91124,Almost task before heart common guess hotel order.,2020-11-25T13:58:56,2021-06-25T15:54:27,SHRM32006 +zY24608,BMW,Elantra,1992,Yellow,"175,269 miles","7762,248",Hybrid,CVT,Electric,SH60185,Right learn after gun cup buy stand gas.,2022-12-07T03:36:21,2023-12-27T01:17:51,SHRM72061 +dC89967,Toyota,F-150,1987,Gray,"218,421 miles","4285,025",I6,Automatic,Diesel,SH47207,Pick lay travel building other minute everything.,2022-03-30T07:02:03,2021-01-31T17:30:32,SHRM36032 +Xq50235,Mercedes,Civic,2016,Yellow,"248,532 miles","6781,014",I6,Manual,Electric,SH43648,Wish prevent author traditional clearly country success structure particularly wide economic show market.,2023-06-17T09:52:38,2022-06-10T13:28:07,SHRM32173 +Cg99006,Chevrolet,Soul,1971,Gray,"441,321 miles","8435,091",I4,Manual,Petrol,SH57714,Particular deep try second attention special.,2020-10-03T21:50:38,2022-04-10T21:53:20,SHRM33387 +tm70413,Mercedes,Elantra,2011,Blue,"193,253 miles","4149,066",I6,CVT,Electric,SH74690,Thought send still history beat consider movie.,2023-01-28T12:42:18,2023-03-11T08:28:00,SHRM51457 +cs18794,BMW,3 Series,2020,Orange,"371,796 miles","7443,699",Electric,Manual,Electric,SH65527,Stock on face most talk student.,2021-08-08T17:09:30,2021-02-04T17:37:02,SHRM30726 +tH99264,Volkswagen,Soul,1997,Yellow,"065,729 miles","8611,517",I4,Manual,Diesel,SH50581,While cut somebody human measure national care news.,2022-04-27T03:15:04,2024-09-29T09:13:15,SHRM56795 +bd19137,Kia,Soul,2014,Orange,"565,547 miles","9271,327",Hybrid,Automatic,Electric,SH61797,Report ago forward minute then two voice stop but relationship exist until.,2020-01-01T13:41:19,2021-11-17T06:12:43,SHRM85338 +di35370,Nissan,Elantra,2016,Brown,"561,544 miles","5987,780",V6,CVT,Petrol,SH76560,Across song ball avoid job education laugh very must.,2020-01-13T04:54:06,2021-02-14T02:38:15,SHRM65147 +gi42411,BMW,A4,1982,Red,"563,978 miles","6374,791",Hybrid,Manual,Electric,SH71917,Collection point seat experience large rule set.,2023-12-25T23:26:57,2023-04-06T16:33:45,SHRM68542 +dO38467,Honda,Elantra,2023,Red,"175,845 miles","6528,252",I4,Automatic,Petrol,SH36579,Be herself TV value drive sport conference best factor.,2025-01-15T23:23:53,2020-01-08T11:14:00,SHRM45252 +Rl45894,Honda,A4,1977,Yellow,"504,610 miles","3274,575",I4,Manual,Hybrid,SH60828,Develop natural if special structure two visit job loss second modern black.,2024-02-01T13:41:59,2024-11-27T00:35:30,SHRM29303 +QF14274,Mercedes,3 Series,1972,Silver,"634,597 miles","3253,794",I6,Automatic,Diesel,SH45301,Story decide clear my drop air truth.,2022-01-16T06:27:56,2020-09-02T19:28:33,SHRM31233 +yA90346,Honda,F-150,1984,Blue,"608,563 miles","2500,600",Hybrid,Manual,Petrol,SH40515,Others arm present sell at beyond bed adult end.,2023-01-11T14:15:34,2023-12-02T00:01:57,SHRM96927 +DZ98393,Toyota,Model S,2002,Orange,"830,954 miles","4459,640",Electric,CVT,Petrol,SH81544,Recognize operation clear all room service try lot I guess old economic.,2024-08-04T19:57:35,2022-01-05T12:51:44,SHRM69497 +dm74744,Toyota,Camry,1980,Orange,"134,434 miles","6846,725",V8,Manual,Petrol,SH04978,Vote stage hold choose already should mouth service.,2021-09-21T08:18:39,2020-01-10T03:13:36,SHRM32903 +hi61130,Nissan,Soul,1988,Black,"860,403 miles","7151,463",V6,CVT,Electric,SH89823,Couple political together each sea radio likely star blue responsibility.,2020-06-30T15:22:17,2022-04-30T07:19:24,SHRM59804 +Av48304,Ford,Elantra,1987,Green,"634,984 miles","6080,738",I6,Automatic,Petrol,SH37291,Hold kind time theory possible since easy feel draw hold.,2021-10-19T18:25:03,2024-09-29T06:57:38,SHRM20203 +Fb93414,Volkswagen,Accord,2017,Gray,"758,657 miles","8128,550",V8,CVT,Electric,SH96582,Red final sound modern remain write wife probably rule own structure care.,2023-12-28T19:01:00,2025-01-09T20:07:37,SHRM14642 +bJ51683,Toyota,Golf,2020,Silver,"232,797 miles","2573,717",Electric,Automatic,Petrol,SH74396,Life share probably very season author.,2024-10-11T00:52:49,2024-08-30T19:39:45,SHRM77296 +to09998,Chevrolet,Civic,1971,Blue,"689,258 miles","9416,908",Electric,Manual,Hybrid,SH12644,Area understand third front voice agent prevent.,2023-05-03T23:00:28,2020-01-24T09:30:14,SHRM92013 +iv87824,Nissan,3 Series,1977,White,"045,646 miles","2334,209",I4,Manual,Diesel,SH07268,Edge article understand way true might be nothing his student major memory.,2021-08-27T21:18:44,2020-11-28T02:42:30,SHRM05095 +YT29962,Chevrolet,3 Series,2001,Blue,"500,285 miles","5353,152",V6,Manual,Petrol,SH57259,However admit sign glass church only perhaps ground.,2024-06-18T15:12:09,2022-09-27T17:10:59,SHRM42852 +Cm26373,Honda,3 Series,2006,Black,"152,781 miles","4600,921",V8,Automatic,Petrol,SH62406,Fight include blue area account significant compare organization fall total pull somebody public.,2021-05-29T07:38:22,2021-10-13T05:53:11,SHRM91035 +Sz18016,Mercedes,3 Series,1999,Brown,"450,438 miles","9637,323",V6,Automatic,Electric,SH53064,Local year discuss crime information vote force near Mrs range exist threat the.,2022-07-15T12:03:22,2020-01-25T21:57:56,SHRM56795 +HG45302,Volkswagen,F-150,1980,Brown,"939,769 miles","5035,448",V6,Manual,Diesel,SH58274,Of book meet almost American study.,2020-01-26T04:22:30,2021-12-05T19:10:44,SHRM64680 +te87026,Kia,Golf,1997,Silver,"116,137 miles","2516,791",Electric,CVT,Hybrid,SH38057,Public section keep question assume successful window.,2022-08-17T09:03:12,2024-03-17T00:59:20,SHRM97744 +sg47319,Nissan,F-150,1987,Blue,"289,553 miles","8420,750",I4,Manual,Electric,SH99604,Despite argue police from join development actually instead hand none cause.,2021-09-05T14:24:25,2021-03-05T00:44:43,SHRM55232 +CS29890,Volkswagen,Model S,1976,Black,"131,064 miles","5955,276",I6,Automatic,Diesel,SH73674,Store ready lay simple many child everything.,2023-10-08T17:44:19,2021-10-01T22:48:04,SHRM21115 +sP67442,Toyota,Elantra,1985,Blue,"154,694 miles","3448,980",V6,CVT,Hybrid,SH29212,Throughout thousand thing middle back vote administration.,2023-05-22T12:49:00,2020-02-10T14:17:24,SHRM96927 +tK13928,Hyundai,Elantra,1981,White,"409,933 miles","7293,389",I4,Automatic,Diesel,SH53515,Region well suffer two region staff kid southern likely technology yourself.,2021-11-10T08:24:04,2023-12-29T07:27:37,SHRM32173 +pV75052,Honda,Model S,1990,Green,"054,922 miles","3720,688",I6,Manual,Hybrid,SH01196,Any model thought company despite few.,2024-04-11T13:09:12,2023-07-09T11:56:42,SHRM85786 +zP92895,Mercedes,Civic,2011,Brown,"000,297 miles","3446,671",I6,CVT,Electric,SH23572,Speech continue single animal who each point among worry western sometimes reason establish.,2022-05-01T23:43:43,2025-01-17T01:01:51,SHRM53675 +Xu20829,Honda,Camry,1999,Blue,"767,594 miles","3383,568",V6,CVT,Electric,SH59807,Mean city prove mind protect natural change chance.,2020-05-20T09:09:25,2022-11-14T05:21:49,SHRM19000 +qX65307,BMW,3 Series,2004,Brown,"301,430 miles","9800,070",I6,Manual,Petrol,SH74012,Shake newspaper city age yet my write foreign.,2024-08-22T21:06:54,2024-04-26T10:51:52,SHRM84204 +Sd29019,Mercedes,Civic,2022,Yellow,"071,595 miles","5785,783",V6,Automatic,Diesel,SH09665,Arm different wish partner class bed garden event exist prevent manager bill.,2021-11-23T15:24:25,2023-04-01T06:05:50,SHRM40245 +xo85022,BMW,Model S,1970,Yellow,"012,093 miles","7200,341",I4,CVT,Diesel,SH31598,Can rich determine many west quickly religious process market.,2021-01-13T15:39:48,2020-10-04T13:07:04,SHRM66167 +he17855,Chevrolet,A4,2000,Yellow,"933,176 miles","8015,336",I4,Manual,Electric,SH15095,Democratic letter although least start several including play amount church.,2020-05-07T20:49:24,2020-12-09T10:56:43,SHRM76563 +sJ14603,Hyundai,Civic,2014,Silver,"526,988 miles","2646,080",I4,Manual,Petrol,SH80587,Fund brother guess hard present any citizen.,2023-07-25T11:30:22,2024-06-16T19:10:57,SHRM63916 +iY51724,Volkswagen,Model S,2016,Blue,"413,865 miles","9646,631",V8,Manual,Hybrid,SH18630,Also never order take store alone ten catch art blue.,2024-03-26T15:03:30,2023-08-23T00:58:59,SHRM74494 +OS33637,Nissan,Elantra,2016,Gray,"706,134 miles","9408,340",Electric,Automatic,Petrol,SH11138,Way serious finally interesting social serve also.,2023-09-17T08:33:19,2021-08-27T22:55:10,SHRM40245 +wL28404,Mercedes,Accord,1979,Red,"825,407 miles","8965,021",I4,CVT,Petrol,SH24232,Answer administration husband college laugh court total go should risk measure series night.,2024-01-23T21:58:10,2023-02-17T06:42:34,SHRM80648 +zc02091,Nissan,Camry,1993,Brown,"372,675 miles","7339,309",I4,CVT,Diesel,SH91378,Agreement under only move adult rock wish effect trip admit nature situation.,2020-09-08T11:14:13,2023-12-17T17:31:54,SHRM48989 +Rn50251,Nissan,Elantra,2004,Yellow,"952,247 miles","5486,940",I4,CVT,Petrol,SH88879,Help never development space agree responsibility there art opportunity do bag every.,2024-03-20T06:27:09,2020-01-21T12:39:22,SHRM21921 +uB41185,Toyota,Golf,1994,Brown,"208,267 miles","5605,904",Hybrid,CVT,Diesel,SH21930,Analysis response quality American factor financial day find top.,2020-12-24T10:38:14,2024-10-20T17:37:35,SHRM70777 +mY69997,Chevrolet,Model S,2000,Green,"180,508 miles","8366,117",Hybrid,Automatic,Electric,SH60539,Table better often political usually appear station condition soldier break stock.,2020-03-02T05:23:12,2021-06-06T18:30:01,SHRM81940 +zp88962,Hyundai,3 Series,1974,Brown,"957,811 miles","2593,102",V8,Automatic,Diesel,SH31529,Produce building have rather lay lot like thing.,2020-01-03T21:53:51,2023-06-12T05:47:42,SHRM59804 +Qk09346,Honda,Model S,1998,Silver,"363,087 miles","7065,987",Electric,Manual,Petrol,SH77829,Military form allow which you stop commercial have page since rule.,2023-12-31T01:42:00,2021-09-04T01:07:27,SHRM10507 +oQ90949,BMW,A4,1980,Brown,"574,331 miles","3665,198",I4,Automatic,Electric,SH85153,Skin four including clear would day.,2024-12-09T21:42:04,2021-12-13T22:44:21,SHRM36719 +Dx81338,Honda,F-150,2018,Blue,"123,702 miles","4023,098",V8,Manual,Electric,SH87931,Throw article successful south partner popular voice yes former.,2023-06-29T04:37:54,2020-05-13T05:26:53,SHRM66167 +Dd15659,Kia,Elantra,2017,Green,"872,497 miles","5089,008",Hybrid,Manual,Hybrid,SH84025,Road how black audience shoulder against decision find national pay certain.,2024-01-02T17:09:19,2023-01-16T23:50:29,SHRM21921 +Uz53569,Chevrolet,Model S,1970,Green,"214,573 miles","5028,013",I4,CVT,Diesel,SH57177,Wait now American would financial practice compare shake letter coach owner possible.,2023-03-18T20:43:47,2022-09-06T11:42:06,SHRM97744 +ce41613,Chevrolet,Elantra,1996,Gray,"027,343 miles","7892,839",I6,Automatic,Diesel,SH41940,Buy human source few grow best these wish ever to art move east.,2024-11-17T08:47:36,2020-06-22T14:32:07,SHRM33669 +qo66664,Nissan,A4,1996,White,"405,586 miles","3933,005",I4,Automatic,Electric,SH14146,Amount entire raise top turn build wonder traditional produce like seat walk.,2021-10-19T19:18:38,2023-03-05T21:42:55,SHRM85338 +Zy63252,Chevrolet,F-150,2000,Black,"977,195 miles","2439,538",V8,Manual,Diesel,SH32167,Range a miss be last laugh money wall recent my design job decade.,2022-03-09T19:57:50,2024-03-09T21:05:14,SHRM62517 +Xd81841,Honda,Civic,2000,Green,"084,060 miles","4988,753",I6,Automatic,Petrol,SH60928,Movie stop or writer key put.,2022-04-12T19:33:20,2022-08-20T04:24:20,SHRM63916 +nd53092,Chevrolet,3 Series,1989,Gray,"506,097 miles","7307,131",Electric,CVT,Electric,SH60076,Yes stage general front court tough hold subject begin nor finish.,2020-03-26T05:55:40,2023-07-07T12:13:22,SHRM65202 +Ly54278,Honda,Accord,2007,Green,"402,884 miles","4142,060",Electric,CVT,Electric,SH61767,Task rise carry open source of artist religious.,2020-05-23T01:22:02,2024-07-26T22:22:23,SHRM45252 +PR52807,Honda,Model S,1989,Silver,"635,916 miles","7168,532",I6,Automatic,Hybrid,SH32543,Certainly chance describe their opportunity final name decade.,2021-12-16T01:34:20,2020-07-09T03:56:49,SHRM57464 +df47254,BMW,Golf,2023,White,"444,828 miles","9948,984",V8,Manual,Electric,SH92683,Guy beautiful article student activity away stand lead.,2023-10-18T08:27:38,2024-06-09T06:56:36,SHRM65147 +wp95581,Chevrolet,Soul,2009,Red,"897,415 miles","9467,179",I6,Manual,Petrol,SH50234,Lawyer her many summer start read defense.,2020-05-12T10:31:38,2020-01-14T06:20:23,SHRM29303 +mH24961,Mercedes,Model S,1992,Black,"827,543 miles","3414,295",Hybrid,Automatic,Hybrid,SH65447,Fire a measure picture late determine short focus.,2023-11-03T03:47:21,2021-08-17T11:30:23,SHRM65874 +XY92944,Ford,Elantra,2000,Green,"036,815 miles","8103,765",I4,Automatic,Electric,SH96081,Structure add some picture campaign husband have bar degree.,2020-05-02T01:44:41,2021-12-12T17:30:48,SHRM09690 +bo53989,Chevrolet,A4,1994,Green,"736,677 miles","3932,120",V8,Manual,Diesel,SH94898,Bring chair level couple company head ball you guy firm staff.,2023-07-03T07:03:01,2022-01-07T05:45:54,SHRM53675 +et75357,Hyundai,Model S,1972,Red,"720,814 miles","5783,684",I4,CVT,Petrol,SH00321,Place seven expert identify would peace opportunity.,2020-04-21T06:57:17,2021-01-11T06:59:28,SHRM29303 +CH01493,Hyundai,Civic,2011,Green,"910,578 miles","7484,401",Electric,Automatic,Hybrid,SH58121,Lose mother open force west evidence task message make guess knowledge although.,2020-02-04T18:23:42,2024-05-30T23:00:23,SHRM06633 +HX82996,Ford,Soul,1996,Blue,"136,782 miles","7722,536",Electric,Manual,Hybrid,SH08388,One question treatment cover guy challenge.,2021-11-02T16:18:53,2021-09-19T11:19:05,SHRM68831 +WB94852,Nissan,Soul,2002,Black,"667,896 miles","4164,267",Electric,Manual,Electric,SH66444,Baby perform film close majority clear today car read play modern.,2021-08-10T22:42:21,2020-11-19T06:56:14,SHRM06633 +HA30147,Honda,Civic,1998,Black,"488,878 miles","3360,598",Electric,Automatic,Electric,SH05921,Community record forget activity human wish clear military.,2021-09-24T18:56:28,2023-11-25T19:34:37,SHRM40639 +vc17561,Ford,Soul,1976,Silver,"707,662 miles","9696,663",V8,CVT,Electric,SH59221,Thank job return seat hear consumer that cut.,2020-09-17T15:36:46,2022-11-10T20:19:07,SHRM33387 +QN76328,Toyota,Elantra,2009,Yellow,"225,458 miles","9849,556",Hybrid,Manual,Electric,SH04519,Senior same paper recent beautiful war when about.,2020-03-22T13:55:02,2022-11-08T13:30:00,SHRM48672 +Dh42622,Nissan,3 Series,1992,Red,"183,861 miles","2886,546",Electric,Automatic,Petrol,SH58915,Treatment old action subject among sense produce approach authority behind already evidence claim.,2021-03-05T21:19:57,2024-08-16T10:44:55,SHRM27380 +Mo60582,Kia,Accord,2022,Silver,"615,009 miles","9422,370",I6,Manual,Petrol,SH16981,There reason ok same candidate happy last.,2023-01-17T01:56:57,2023-01-10T10:25:19,SHRM98132 +XD17392,Kia,Camry,1990,Red,"839,876 miles","2576,012",V6,Automatic,Electric,SH76818,Course difficult inside forget cup region surface sister strategy more during.,2024-10-25T08:05:54,2023-02-15T02:06:09,SHRM27464 +Tj78113,Nissan,Camry,1976,Brown,"653,006 miles","7791,612",I4,Automatic,Hybrid,SH19043,Sign near government lawyer stay street face company certain game leader Mrs throw.,2024-01-05T03:44:10,2024-01-21T18:57:38,SHRM32903 +wE43638,BMW,Soul,1978,Green,"930,434 miles","2904,950",I4,CVT,Hybrid,SH75239,A student require care after indeed Democrat knowledge.,2020-11-11T05:46:21,2021-12-07T16:43:52,SHRM06633 +Pv46133,BMW,Model S,1996,Black,"755,304 miles","6963,279",I4,CVT,Petrol,SH92228,Morning mission phone high wind rate project computer the tonight kind store concern.,2020-07-25T07:01:05,2024-11-05T16:06:02,SHRM85786 +ns69353,Kia,F-150,1991,Red,"561,807 miles","5945,249",I6,CVT,Petrol,SH61764,World political history another citizen election enjoy race never upon.,2021-05-08T12:16:47,2024-02-01T17:24:24,SHRM72061 +uZ82258,Hyundai,Model S,1994,Brown,"472,777 miles","3164,696",Hybrid,Automatic,Electric,SH89595,Go treat thousand arrive themselves Mr window write rate since sort last sure.,2024-01-15T22:01:50,2020-07-16T10:28:06,SHRM36403 +Is79706,Volkswagen,3 Series,1971,Red,"447,868 miles","2990,469",V8,Automatic,Petrol,SH23666,And star international particularly gun measure heart suggest voice girl science.,2020-11-12T01:12:58,2020-08-07T16:48:08,SHRM33387 +Nk61075,Mercedes,Elantra,1995,White,"236,410 miles","8776,455",Electric,Automatic,Diesel,SH06389,Others for few process capital every by president doctor hear through practice fall.,2020-01-31T16:22:48,2023-07-16T16:44:29,SHRM56795 +gR51810,Nissan,Civic,2019,White,"848,768 miles","3155,183",Electric,Manual,Hybrid,SH47731,Cell back position decision near authority father fill front.,2020-12-10T21:44:10,2021-02-27T16:39:59,SHRM42852 +LO59244,Mercedes,F-150,2022,Green,"611,833 miles","3584,198",V8,CVT,Electric,SH59473,Why maintain player course left loss through good food nor drug.,2024-12-24T16:54:29,2021-06-21T02:47:29,SHRM94558 +Oe39960,Ford,Elantra,1981,Gray,"662,633 miles","9523,876",Hybrid,Manual,Diesel,SH38226,Camera over deal do letter head within since discussion radio threat step.,2021-05-19T21:57:38,2021-05-20T00:10:55,SHRM30726 +QT44689,Toyota,Model S,1982,Orange,"901,573 miles","6194,289",I6,Automatic,Petrol,SH95678,Difficult western about speak reality field personal court power discover woman.,2025-01-07T22:51:56,2020-03-14T12:40:37,SHRM84636 +lK23117,Ford,Civic,1978,Gray,"535,993 miles","9082,219",I6,CVT,Diesel,SH18477,Today suffer force house defense family however yard whatever.,2022-01-13T17:33:14,2023-12-31T07:38:31,SHRM32173 +fq95838,BMW,Golf,1973,Black,"124,927 miles","3669,846",Electric,Automatic,Hybrid,SH52765,Where per purpose lead she quite.,2021-09-24T19:28:41,2021-07-24T14:39:50,SHRM78570 +Fi47980,Mercedes,Soul,1995,White,"720,090 miles","6268,105",Electric,CVT,Hybrid,SH73776,Lot major foot wrong gas machine become high item.,2023-08-20T01:36:00,2020-06-02T13:13:59,SHRM94558 +nF65561,Honda,F-150,1994,Red,"760,773 miles","4958,667",V8,Manual,Petrol,SH16410,Catch bit east day turn three way what body happy practice.,2024-08-21T07:25:32,2023-12-21T19:48:37,SHRM78570 +hz06747,Toyota,Accord,2007,White,"268,988 miles","3340,054",I4,CVT,Diesel,SH97769,Around it significant small training none heavy return sister up administration.,2023-05-22T14:30:25,2021-10-10T19:55:04,SHRM74494 +ET34636,Chevrolet,Civic,2024,Brown,"926,949 miles","3109,525",I4,Manual,Diesel,SH72848,Should individual morning central crime there thing those beat evening structure remember.,2023-02-15T17:55:33,2022-08-06T11:27:20,SHRM32173 +wT14010,Honda,Golf,2021,Gray,"704,454 miles","7811,300",V6,Automatic,Diesel,SH03325,Sense group step large notice respond treat experience later name guy sport respond.,2022-02-03T06:54:59,2023-10-31T10:26:28,SHRM61195 +kB94431,Toyota,Model S,2013,Blue,"934,608 miles","5685,331",I6,Manual,Hybrid,SH96446,Doctor admit born fire three practice he tree of pay very why bed.,2023-08-06T05:42:22,2020-06-21T23:05:13,SHRM99149 +GK73287,Chevrolet,Soul,2015,Blue,"182,888 miles","7632,699",V6,CVT,Hybrid,SH96786,Second store policy high event major fire.,2021-04-02T11:15:57,2021-09-04T02:53:26,SHRM27464 +jz66839,Kia,Elantra,2012,Black,"094,445 miles","2946,471",V8,Manual,Hybrid,SH38334,Near cell test thought daughter television.,2021-12-17T18:10:45,2022-06-15T08:53:58,SHRM96540 +zg82290,Toyota,Camry,1973,Silver,"542,060 miles","4974,027",Electric,Manual,Hybrid,SH16647,Certainly man have talk easy ability letter happen benefit compare.,2024-10-19T08:42:15,2024-09-09T08:50:40,SHRM48989 +Ey43200,Hyundai,Soul,2011,Yellow,"607,583 miles","8885,337",Electric,CVT,Electric,SH36439,Quickly sort Congress policy real fear model mission she try go.,2022-12-25T08:12:03,2021-08-19T08:28:18,SHRM45252 +ze68114,Mercedes,Accord,1997,Gray,"336,347 miles","2194,208",I4,Automatic,Hybrid,SH34089,Skin far down wind positive expect.,2020-05-30T19:43:39,2021-03-27T04:20:27,SHRM21921 +pt12771,Mercedes,F-150,2003,Black,"150,854 miles","5172,154",Electric,Manual,Diesel,SH15007,Seem operation join model process off gas.,2024-03-13T09:23:23,2021-03-31T10:35:39,SHRM72061 +TV67738,Nissan,Camry,1988,Black,"326,444 miles","2401,778",Hybrid,Automatic,Hybrid,SH48409,Special attorney term professional leave bring vote.,2022-10-09T05:04:25,2023-11-07T18:37:00,SHRM40245 +Xb44172,Honda,3 Series,1995,White,"510,245 miles","4915,912",I4,Manual,Petrol,SH48361,Director most you friend use today remember build up third trade what.,2022-07-08T01:38:24,2022-03-03T04:07:44,SHRM61195 +wA85401,Kia,Golf,1984,Silver,"079,692 miles","8700,910",Hybrid,Automatic,Petrol,SH60977,Pass national suddenly ground film full.,2024-03-15T07:44:20,2023-12-12T12:44:11,SHRM75661 +BF47040,BMW,Camry,2018,Brown,"757,666 miles","3476,571",V6,Automatic,Petrol,SH13532,Local forward board management parent act option decade.,2024-07-21T07:14:43,2024-04-15T13:14:21,SHRM40639 +LI94765,Mercedes,A4,2012,Blue,"406,157 miles","2041,330",Electric,Manual,Diesel,SH06575,President set story social star environment color.,2023-02-08T21:52:22,2022-06-23T17:45:25,SHRM56795 +rW87106,Mercedes,A4,1999,White,"667,356 miles","5817,936",I4,CVT,Diesel,SH81466,Participant foot animal policy fire brother science.,2024-06-30T02:02:25,2021-07-02T13:31:12,SHRM10264 +ky56044,Nissan,Golf,1999,Gray,"353,962 miles","8678,131",Hybrid,Manual,Hybrid,SH64640,Receive rule stop charge what friend buy land administration general finally final upon.,2020-11-12T17:07:52,2020-08-14T05:56:50,SHRM01151 +Op28192,Ford,Model S,1987,Red,"317,334 miles","3511,200",V6,CVT,Hybrid,SH62742,Sure argue drive candidate pretty available student sit.,2022-08-02T10:25:08,2023-09-17T22:12:11,SHRM56795 +cQ81887,BMW,F-150,2011,White,"144,584 miles","4090,147",V6,CVT,Diesel,SH27513,Customer authority series who study truth knowledge certainly price throughout series.,2023-11-07T19:09:41,2023-08-04T22:12:37,SHRM45128 +Pd07493,Ford,Model S,1979,Orange,"495,263 miles","7752,556",Electric,Automatic,Diesel,SH59369,School note director market clearly share evidence activity then until report born learn.,2023-07-21T01:17:01,2024-05-14T05:52:29,SHRM42433 +oG50741,Hyundai,Golf,1983,Orange,"329,357 miles","2948,934",I6,CVT,Electric,SH02285,Six allow statement job personal half yourself home group second street they probably.,2022-02-22T19:15:44,2023-04-25T04:12:04,SHRM10264 +Wr20680,Kia,Model S,1971,Green,"678,633 miles","5641,264",I4,Automatic,Diesel,SH37798,Save total professional expert government this item personal bit family.,2024-11-12T11:37:41,2020-06-18T00:57:30,SHRM57073 +qw75659,BMW,A4,2004,Yellow,"398,869 miles","3433,432",I4,Manual,Hybrid,SH75009,Structure often could break those impact actually government indeed generation own ten.,2021-07-06T22:56:24,2020-02-18T18:36:09,SHRM97744 +gH08136,Hyundai,Model S,2007,Green,"784,179 miles","7484,087",V8,CVT,Hybrid,SH55615,Act its really hope you network summer majority practice language good gas gas.,2020-10-02T15:19:05,2023-05-09T03:35:32,SHRM83284 +nh73544,Volkswagen,Soul,1997,White,"623,999 miles","8559,771",I6,Automatic,Electric,SH60910,International wide sort whatever spring consumer it son identify sit idea investment.,2021-05-05T13:51:52,2023-03-16T03:49:43,SHRM45252 +zZ84183,Mercedes,Accord,2010,Green,"533,009 miles","8147,121",Hybrid,Manual,Hybrid,SH21453,Yes appear population employee no production type particular image arm parent when charge.,2022-12-05T09:58:18,2025-01-11T02:14:54,SHRM30726 +Kg44606,Chevrolet,Elantra,1976,Orange,"786,233 miles","4573,414",V8,CVT,Petrol,SH00288,Place minute involve pretty talk enter arm financial letter.,2023-01-14T03:25:36,2022-07-06T20:12:35,SHRM30726 +JG14189,Kia,Elantra,2015,White,"131,240 miles","7355,404",I6,CVT,Electric,SH41455,Very region cause maintain mother positive address culture gas start energy.,2020-12-28T05:09:49,2020-01-18T03:35:19,SHRM97744 +dB02867,Chevrolet,Golf,1980,Orange,"188,787 miles","9992,120",Hybrid,CVT,Petrol,SH84611,Learn art half or boy side.,2022-03-08T21:57:44,2021-02-20T21:26:22,SHRM07326 +KY90615,Nissan,3 Series,1994,Red,"378,272 miles","6096,730",Electric,Manual,Diesel,SH70073,Exist choice form watch bank standard team itself.,2022-02-14T10:49:59,2024-12-02T14:01:31,SHRM48989 +Ud11515,Honda,A4,2019,Blue,"843,178 miles","3786,388",Hybrid,Automatic,Petrol,SH91502,Couple on direction conference peace speak when letter beat sing candidate focus draw.,2020-11-17T08:41:34,2021-04-26T09:00:15,SHRM82317 +qt65675,Honda,3 Series,2002,Red,"948,241 miles","8173,369",Hybrid,CVT,Diesel,SH90172,Hair top turn would race natural everything act.,2022-04-05T01:30:08,2022-08-07T20:06:46,SHRM33387 +FC28284,Volkswagen,Model S,1999,Black,"621,181 miles","6705,839",V8,Manual,Diesel,SH98142,Subject line understand group source she group radio.,2023-06-15T16:23:27,2023-08-28T06:05:28,SHRM56795 +ls37188,Toyota,Accord,2012,White,"854,268 miles","9609,903",I4,Automatic,Electric,SH51060,Little Congress my brother its through then professional happen several.,2022-03-29T23:27:05,2023-05-26T04:39:51,SHRM78528 +AP69436,Volkswagen,Civic,1994,Green,"662,661 miles","8784,611",I6,Automatic,Diesel,SH04970,Nation future particularly these total tell environmental manage truth.,2020-08-18T16:41:27,2023-12-15T05:14:27,SHRM80656 +KA72230,Toyota,Model S,2008,Yellow,"695,378 miles","2290,284",V8,Automatic,Hybrid,SH37445,Still choice worker pick reflect attorney.,2021-08-04T02:41:54,2022-12-15T13:14:47,SHRM32006 +EI34686,Mercedes,Soul,1982,Brown,"418,988 miles","6482,810",Electric,Automatic,Hybrid,SH19707,Less question hand western cost box yard.,2020-05-01T19:31:00,2022-10-26T13:02:21,SHRM42852 +zS93966,BMW,Elantra,1977,Yellow,"725,676 miles","6026,411",V8,CVT,Petrol,SH54659,Letter citizen cultural establish office toward action sport.,2020-01-16T10:21:55,2024-11-05T02:43:41,SHRM72061 +Sg29800,Honda,Elantra,1974,White,"594,341 miles","6924,625",I6,Manual,Diesel,SH35316,Alone somebody whatever stuff possible police account economy hard law.,2020-11-17T02:49:22,2022-12-05T16:02:31,SHRM32713 +zE40350,BMW,A4,1993,Blue,"388,204 miles","4466,208",Electric,Automatic,Hybrid,SH43715,System data position simple customer enjoy glass front.,2022-07-24T12:31:59,2022-10-03T21:17:40,SHRM31233 +AX69722,Honda,Soul,1989,Red,"004,303 miles","5789,883",Hybrid,Manual,Hybrid,SH78070,Court man let girl yes read.,2021-05-17T09:28:34,2024-09-08T14:57:50,SHRM85338 +lY26016,Mercedes,Model S,2007,Red,"322,162 miles","7395,447",Hybrid,Manual,Hybrid,SH21180,Result likely use agent writer day already accept every big audience soon.,2022-02-01T14:58:03,2022-08-31T20:15:14,SHRM32006 +Le80469,Ford,3 Series,1982,Orange,"405,984 miles","4953,435",I6,Automatic,Hybrid,SH40355,Hit discussion know worry including lay discuss fill big contain wall director sit.,2024-12-13T14:33:40,2021-07-10T04:36:47,SHRM51457 +JI89681,Mercedes,A4,1992,Green,"269,307 miles","9092,136",Hybrid,Automatic,Hybrid,SH84184,Color our well miss in appear hundred drug.,2023-11-12T13:11:01,2022-04-16T11:12:15,SHRM21696 +dn01056,Honda,F-150,1983,Silver,"168,102 miles","8228,855",I6,CVT,Electric,SH06171,Field environmental activity black see bad himself main personal seek scene.,2021-03-18T06:31:31,2024-07-31T03:58:46,SHRM29303 +JC07304,Nissan,Elantra,1995,Green,"613,934 miles","8407,858",V6,Automatic,Diesel,SH39938,Sell wait today put threat else feel agree difference continue.,2024-11-05T13:12:10,2021-10-22T02:34:22,SHRM79043 +rk45929,Kia,Elantra,1995,Yellow,"052,717 miles","7926,762",I4,CVT,Diesel,SH60349,Likely north movement instead offer technology international ever day himself citizen tonight.,2022-03-27T01:05:57,2024-07-14T06:08:20,SHRM36032 +MF25471,BMW,Camry,1993,Green,"313,796 miles","9334,025",I6,Manual,Hybrid,SH28054,Card condition Republican happen mouth difference letter baby coach price.,2022-02-14T10:08:43,2024-06-04T11:20:47,SHRM42433 +pL98459,Ford,Soul,1981,Yellow,"534,952 miles","8445,647",I4,Manual,Petrol,SH17334,Number environmental wall almost build task.,2022-02-08T08:27:31,2024-07-03T23:11:53,SHRM83284 +uN20321,Honda,Model S,1985,Red,"716,368 miles","6223,900",V6,Manual,Diesel,SH73991,Behavior evidence administration brother nature ball upon nor it certainly structure cover hand.,2023-02-02T00:59:04,2023-03-02T12:21:54,SHRM76509 +ei37230,Ford,Camry,1984,Black,"688,253 miles","6933,399",I4,CVT,Diesel,SH49777,Mouth degree before down total drive physical although state doctor full west what.,2025-01-16T12:54:17,2020-09-18T15:51:24,SHRM48989 +Gd27532,BMW,Model S,1982,Red,"072,308 miles","6822,632",I6,Automatic,Diesel,SH30692,We professor whether feel a as newspaper fine.,2022-02-06T14:46:56,2021-07-23T21:57:58,SHRM31233 +KM04356,Volkswagen,A4,1970,Orange,"661,178 miles","7462,072",V6,Automatic,Diesel,SH52654,Mr those close have south life I.,2023-07-13T10:24:17,2023-08-15T08:28:26,SHRM62517 +iH85247,Volkswagen,3 Series,2005,Blue,"352,627 miles","4055,473",Hybrid,Automatic,Hybrid,SH33540,Add daughter friend but among civil blood crime near front blue.,2021-09-13T20:20:04,2022-08-23T05:07:03,SHRM77296 +qI43615,Ford,F-150,1982,Gray,"429,383 miles","6057,577",V8,Automatic,Petrol,SH12912,Different available ability debate always response relationship be work.,2020-04-17T22:24:50,2024-10-15T11:52:10,SHRM05095 +ta61354,Honda,Civic,1982,White,"025,489 miles","3554,596",V8,Automatic,Hybrid,SH23827,Visit town range the establish country.,2021-04-19T17:13:48,2022-08-02T23:15:05,SHRM64680 +GT00306,Hyundai,Soul,1998,Red,"667,935 miles","9558,796",I6,Manual,Petrol,SH24598,Weight firm with hear popular agent authority force call knowledge PM market training.,2022-01-06T13:33:52,2021-11-16T08:35:00,SHRM09690 +Bx24287,Nissan,Civic,1979,Red,"695,906 miles","7529,210",Hybrid,Automatic,Hybrid,SH28421,Brother determine suddenly class four recent contain account show most remain relate heavy.,2024-01-02T03:16:22,2021-01-25T10:03:35,SHRM68542 +BV04902,Volkswagen,F-150,1997,Gray,"316,694 miles","8002,333",I6,Manual,Electric,SH91211,Whether will teacher hard people model soldier purpose environment.,2021-05-03T07:45:45,2022-06-29T04:11:04,SHRM79043 +wq72826,Chevrolet,Civic,1973,Green,"675,863 miles","5953,969",V8,Automatic,Hybrid,SH78742,Thank stand top material voice offer show parent general oil realize.,2024-07-05T10:30:44,2021-12-02T08:59:28,SHRM70777 +eR14696,Hyundai,Model S,1998,Gray,"907,999 miles","3322,421",Hybrid,CVT,Petrol,SH94864,Expert same she head stay wish inside sister service information check card report himself.,2020-02-10T13:17:07,2021-12-15T02:24:53,SHRM85338 +Ay91398,Hyundai,3 Series,2022,Black,"991,546 miles","6954,983",V6,Automatic,Electric,SH81281,Business music doctor walk put him herself science.,2024-05-03T13:27:42,2024-03-18T01:21:10,SHRM98132 +Hb90228,Nissan,A4,1973,Gray,"421,599 miles","3054,719",I6,Automatic,Electric,SH16934,Agree late official so necessary past image or matter end scientist performance.,2023-08-07T15:10:22,2022-02-08T19:03:25,SHRM27380 +nB99469,Mercedes,Accord,1993,Red,"481,134 miles","2928,345",V8,Automatic,Electric,SH48374,Behind customer along difficult prepare teach myself strong read institution crime where.,2021-09-02T21:26:28,2022-06-12T08:59:26,SHRM10507 +cH72160,Nissan,Model S,1992,Silver,"963,228 miles","3164,933",V8,Automatic,Petrol,SH39897,Develop turn guy spring while sense manager hospital.,2024-04-26T01:37:32,2020-10-24T11:19:49,SHRM45822 +gC64408,Nissan,Soul,2012,Silver,"036,245 miles","9945,338",I6,Automatic,Diesel,SH96194,Car career perform red really economy according state lawyer general play can.,2024-06-28T20:22:34,2023-03-03T08:36:10,SHRM09690 +qN34440,Hyundai,3 Series,1982,Orange,"415,621 miles","6675,619",Hybrid,Automatic,Hybrid,SH17547,Technology though land five future dark according fact work right director.,2024-09-20T22:52:40,2024-03-13T01:42:21,SHRM45252 +Pr39016,Nissan,Elantra,1994,White,"289,906 miles","8099,344",Hybrid,CVT,Petrol,SH90007,After whole which down toward really security.,2021-06-18T03:44:19,2022-03-09T21:18:56,SHRM86483 +gY26845,Mercedes,Civic,2002,White,"878,623 miles","6716,360",Hybrid,Manual,Electric,SH97399,Husband walk experience least six crime.,2020-03-25T21:48:40,2020-06-08T04:13:09,SHRM96540 +MD62710,BMW,F-150,1994,Gray,"366,563 miles","5739,407",V8,Automatic,Electric,SH45102,Officer news gun occur visit every sure suggest whole.,2022-10-31T11:40:23,2021-08-02T09:38:29,SHRM55232 +XR73340,Mercedes,Civic,1995,Yellow,"433,982 miles","2444,780",Hybrid,Manual,Electric,SH26918,First degree budget detail senior growth fill still ability.,2022-11-17T00:27:32,2023-03-17T06:25:51,SHRM98132 +fl30558,Chevrolet,Golf,2021,Green,"128,583 miles","5078,187",Hybrid,CVT,Electric,SH29925,Car no can other various physical Mr decade year practice model plan.,2021-02-18T17:47:04,2022-01-25T15:19:58,SHRM78570 +EA31207,Toyota,Model S,2018,Black,"525,058 miles","2672,895",V6,CVT,Electric,SH22278,Two across would response option line a carry.,2020-10-01T03:11:56,2020-09-18T00:54:02,SHRM57073 +UQ38981,Toyota,F-150,1991,Yellow,"163,584 miles","7522,154",Electric,Manual,Hybrid,SH11064,Effort reduce wrong natural yourself order probably sell green pressure much letter.,2023-10-27T04:42:43,2023-10-03T07:08:45,SHRM82965 +pJ41364,Mercedes,Golf,2016,Green,"703,484 miles","4977,651",I6,Automatic,Electric,SH24405,Appear player possible compare local phone them one we occur example budget dream.,2023-04-16T20:36:08,2023-09-03T12:22:23,SHRM68831 +DQ18028,Hyundai,Model S,1981,White,"418,064 miles","4668,793",I6,CVT,Diesel,SH00690,Apply live social best character floor economy former wife science girl.,2024-08-02T19:08:36,2023-03-13T15:10:36,SHRM05095 +GJ67014,Volkswagen,Elantra,1971,Orange,"399,029 miles","7443,563",I6,Manual,Diesel,SH99069,Security himself present admit meeting detail assume show talk together.,2021-05-25T16:54:27,2024-09-10T19:04:44,SHRM27380 +gR05896,Chevrolet,Soul,1977,Green,"801,752 miles","3216,516",I6,Automatic,Diesel,SH34500,Outside leave either capital song card hope large state billion.,2021-05-19T02:10:17,2020-03-24T03:39:04,SHRM42433 +qk83008,Volkswagen,Model S,1983,White,"211,981 miles","4969,704",V6,CVT,Hybrid,SH99935,Tonight receive couple hand claim wish just leg how.,2021-01-27T02:27:01,2023-02-25T06:48:27,SHRM57073 +tX62459,Toyota,Civic,2024,Black,"092,466 miles","6823,924",Electric,CVT,Petrol,SH70466,Four consider walk quickly must white box world deep.,2022-08-18T18:11:05,2024-12-17T16:37:55,SHRM79043 +hE53368,Kia,Elantra,1976,Yellow,"177,836 miles","9228,458",I4,CVT,Petrol,SH01676,Former usually shoulder certainly upon man surface mouth happen civil what turn explain.,2023-10-11T23:27:30,2022-09-09T09:17:34,SHRM01151 +iO63097,Chevrolet,3 Series,1984,Green,"051,035 miles","8940,024",Electric,Automatic,Hybrid,SH58036,Have garden check nothing turn field as author if nation reality.,2023-06-10T16:03:36,2025-01-15T02:52:01,SHRM96540 +Uo03296,Ford,Camry,2023,Orange,"259,638 miles","9266,418",I6,Automatic,Diesel,SH02588,Bit staff and house fire believe tough address law green into billion.,2020-09-03T18:58:39,2020-12-12T22:09:12,SHRM32006 +KK65071,Volkswagen,A4,2020,Gray,"279,377 miles","8606,988",V8,CVT,Diesel,SH24949,Avoid then onto voice scientist end door east thought yard energy dog.,2024-09-19T23:47:46,2021-12-26T07:23:14,SHRM32173 +ea94921,Kia,A4,1976,Green,"944,938 miles","6725,889",I4,Manual,Hybrid,SH17569,Business purpose arm those kitchen say claim turn not.,2022-02-24T04:03:48,2024-09-24T10:27:28,SHRM64680 +Fq29194,Chevrolet,F-150,2021,Orange,"962,389 miles","5731,626",I4,Manual,Electric,SH30259,Fine with reality plan wish practice hear.,2021-02-08T00:03:21,2022-05-28T19:39:41,SHRM91035 +qG07763,Chevrolet,A4,1990,Blue,"566,402 miles","2025,771",V6,Automatic,Electric,SH69080,Behavior political agency while if vote candidate when lawyer century foreign fly.,2021-09-11T00:49:09,2023-08-27T01:07:33,SHRM32713 +Ri38538,Volkswagen,A4,1999,Blue,"965,078 miles","2638,801",Hybrid,CVT,Hybrid,SH71222,Oil evening her third question her.,2022-03-22T17:46:46,2024-08-07T10:24:17,SHRM10507 +Cc86178,BMW,Camry,1997,White,"943,060 miles","3524,279",I6,Automatic,Electric,SH98597,School area blue house how recently.,2024-03-07T06:39:53,2022-07-16T14:41:59,SHRM65147 +zt82677,Chevrolet,3 Series,2014,Green,"948,927 miles","4628,001",V6,CVT,Diesel,SH89964,Authority turn last ask now respond for board better product reveal administration build.,2024-08-29T11:42:13,2022-04-21T02:03:50,SHRM40245 +kb35722,Volkswagen,Golf,2003,Orange,"196,586 miles","5461,110",V6,Manual,Hybrid,SH24361,Responsibility more high its miss green thousand affect us tend see.,2024-06-25T09:41:56,2020-04-29T17:32:00,SHRM19000 +Nx52476,Volkswagen,A4,1989,Gray,"006,389 miles","5249,335",V8,Manual,Hybrid,SH44676,Probably argue use case laugh several drive five image dark.,2023-12-07T04:36:17,2021-12-01T13:29:39,SHRM72270 +GA83963,Honda,Model S,1982,Green,"918,192 miles","4256,036",Electric,Automatic,Diesel,SH67075,Chance lot avoid ten past amount inside organization key.,2024-10-26T21:09:21,2020-05-12T18:03:21,SHRM51457 +qD55945,Toyota,Elantra,2009,White,"020,490 miles","6837,906",V6,Automatic,Diesel,SH59044,Break store success source adult baby suffer laugh bring good high.,2020-04-12T07:51:07,2024-10-30T00:07:16,SHRM09690 +ht90757,Chevrolet,Golf,1986,Blue,"520,792 miles","2711,191",V8,Manual,Petrol,SH16517,Guess history enjoy arrive year head world group water general.,2023-05-28T15:19:40,2020-11-25T14:19:25,SHRM19000 +ZM47510,Honda,F-150,2023,Gray,"655,087 miles","2689,991",V8,Automatic,Petrol,SH37782,Red past nearly movie spend democratic east ever matter run.,2022-07-01T21:15:17,2024-08-13T14:10:53,SHRM55232 +kb17361,Toyota,Civic,2001,Orange,"009,810 miles","3834,845",Electric,Automatic,Hybrid,SH41935,Performance to land today measure goal bit role treat up keep their.,2020-10-12T03:45:26,2021-06-23T14:50:01,SHRM85338 +IY26684,Volkswagen,3 Series,2006,Orange,"206,275 miles","9608,582",Electric,CVT,Hybrid,SH49273,Clearly hour through even buy billion three live memory four.,2022-06-28T00:43:58,2024-10-23T15:29:37,SHRM40639 +Zj62338,Ford,A4,1995,Brown,"186,611 miles","4999,866",I6,Automatic,Electric,SH11189,Total side follow section though find.,2021-04-12T01:40:08,2024-06-01T14:03:42,SHRM81940 +Ak57776,Honda,Model S,1993,Yellow,"485,166 miles","5123,947",I4,Manual,Hybrid,SH35836,Within themselves specific more play bank worry imagine view.,2023-01-30T12:36:15,2021-02-27T20:49:28,SHRM56795 +Ze90764,Kia,3 Series,1988,Red,"472,247 miles","4641,427",V8,Automatic,Hybrid,SH61303,Enjoy off situation trade response action into bag several north practice go.,2022-06-09T03:59:59,2020-11-08T14:23:06,SHRM65147 +So41953,Nissan,Golf,1980,Green,"831,175 miles","7437,955",V6,CVT,Diesel,SH30526,Start sit about director officer success policy although show shoulder.,2020-02-04T01:00:45,2024-11-15T09:30:30,SHRM40639 +uM49196,Volkswagen,A4,2001,Silver,"524,231 miles","4101,083",Hybrid,Automatic,Petrol,SH60774,Mother note century image argue box writer.,2022-08-11T20:22:48,2020-03-11T10:23:56,SHRM45252 +Bk87737,Ford,3 Series,2023,Green,"907,425 miles","6040,841",Electric,CVT,Petrol,SH49143,Smile claim card quickly important where budget suggest value television foot practice nation.,2020-11-27T05:06:55,2022-05-23T09:18:24,SHRM96540 +La06945,Volkswagen,Elantra,1982,Yellow,"899,298 miles","4162,034",I6,CVT,Diesel,SH48228,Small cause debate short next song particularly behind recent.,2020-08-28T02:10:07,2024-08-01T09:49:56,SHRM05095 +Bn98745,Kia,Elantra,1975,Black,"691,378 miles","3343,343",V6,Manual,Hybrid,SH63877,Air medical politics vote media magazine material Congress story.,2021-11-29T19:07:33,2020-10-28T10:39:48,SHRM79043 +gq34499,Hyundai,Elantra,1972,Yellow,"232,331 miles","4665,865",I6,Manual,Petrol,SH89512,Poor wear future word hit discuss mission rest quite enter low.,2021-09-23T08:11:28,2021-11-10T02:40:54,SHRM79043 +aE14963,Hyundai,Accord,2000,Blue,"463,136 miles","9255,921",Electric,CVT,Electric,SH94767,Item majority page occur before public late left series tax everything.,2023-10-02T00:23:11,2024-07-14T03:26:35,SHRM14642 +hc44819,BMW,Model S,1978,Orange,"658,821 miles","6272,256",Hybrid,Manual,Diesel,SH21203,Take behavior group find range wrong state reason already.,2023-05-31T15:16:45,2020-08-16T11:29:53,SHRM16616 +Oo58315,Chevrolet,Soul,2006,White,"158,035 miles","4989,364",Hybrid,CVT,Hybrid,SH44082,By occur late fire source exist by people factor.,2023-07-25T17:46:01,2024-07-27T01:31:04,SHRM82317 +RD75201,Honda,Model S,1988,Green,"909,686 miles","5921,331",V8,Automatic,Petrol,SH91952,For Mr week support alone base imagine soon world possible Mrs ability security.,2021-10-30T17:07:27,2024-11-15T23:20:36,SHRM94558 +OJ21786,BMW,F-150,2004,Blue,"456,618 miles","4183,856",V6,Automatic,Electric,SH88336,Gun success response full north food successful miss between south within everyone player.,2020-05-17T14:09:37,2021-06-07T00:52:13,SHRM64680 +DH57535,Volkswagen,3 Series,1975,Brown,"207,817 miles","6042,478",V6,CVT,Hybrid,SH84454,Organization box itself see begin expert if.,2021-10-11T13:54:49,2021-01-05T09:22:28,SHRM45128 +JG60593,Toyota,Golf,1975,White,"689,910 miles","2242,006",Electric,CVT,Petrol,SH70942,Understand second information assume brother lawyer leg gas.,2023-09-17T05:54:31,2024-02-04T00:06:28,SHRM68831 +eH08379,Mercedes,3 Series,1992,Yellow,"147,668 miles","6210,049",I6,CVT,Petrol,SH99422,Raise especially area few image travel network forward activity appear scientist inside go.,2024-12-28T14:58:20,2023-10-20T05:24:32,SHRM32173 +wf11522,Hyundai,A4,2015,Green,"716,784 miles","7179,718",Hybrid,CVT,Petrol,SH30430,Ask family compare leave increase girl change player admit near whose.,2024-01-26T02:05:36,2024-12-19T14:58:14,SHRM74494 +rR25036,Nissan,Accord,1985,Blue,"267,292 miles","9528,793",Hybrid,CVT,Petrol,SH79425,Hand law life personal you reach thus idea gun.,2022-11-10T01:16:04,2020-10-31T02:26:34,SHRM44307 +su16726,Ford,Golf,1976,White,"142,175 miles","9778,426",I4,CVT,Petrol,SH56209,Check however drop bit only everyone shake modern heavy real here.,2021-01-01T13:25:48,2022-07-10T19:43:21,SHRM53675 +sg83238,Ford,Civic,2012,Green,"331,568 miles","9314,102",I4,CVT,Petrol,SH38401,Mission country get rock serious early over debate game good money.,2021-08-21T17:07:06,2021-05-27T15:26:12,SHRM32903 +Fb99920,Chevrolet,F-150,2000,Blue,"026,473 miles","3403,993",I6,Manual,Hybrid,SH62730,Similar as toward challenge either bad.,2023-05-27T00:53:07,2024-11-16T13:38:02,SHRM46991 +vp11458,Ford,Accord,1990,Red,"236,901 miles","9043,527",Electric,Automatic,Hybrid,SH29270,Say blue agency will make entire book.,2020-12-24T21:18:06,2020-12-28T01:48:59,SHRM55232 +oW76912,Chevrolet,Civic,2018,White,"612,591 miles","5752,377",V6,CVT,Hybrid,SH29412,Author wind artist maintain message save film choose.,2022-08-21T10:59:05,2020-12-16T11:17:57,SHRM61195 +PH50128,Honda,Civic,2015,White,"293,335 miles","9527,010",I6,Automatic,Hybrid,SH61403,Pull population mean fine out attention common visit although effect.,2023-02-08T08:44:19,2021-09-02T00:49:01,SHRM10264 +NS00240,Volkswagen,Camry,2005,Brown,"816,421 miles","5873,285",Electric,Manual,Electric,SH67312,Office enter ask else girl red worker rock role build size paper trouble.,2020-03-08T16:27:46,2023-10-26T22:36:36,SHRM80648 +Bw11279,Volkswagen,Camry,1997,Red,"029,855 miles","9771,237",Electric,CVT,Petrol,SH54876,Dark soldier purpose reflect participant man relate base goal bed.,2024-05-26T01:47:31,2023-04-17T22:53:37,SHRM98132 +Fl71016,Chevrolet,3 Series,2010,Blue,"748,395 miles","4407,036",Hybrid,CVT,Petrol,SH53954,Individual land smile within head and film training about occur behind door ok.,2025-01-04T14:37:07,2023-02-22T07:01:01,SHRM10507 +Lt94143,Chevrolet,Soul,2011,Orange,"651,071 miles","3170,252",Electric,CVT,Diesel,SH62153,Threat or next perform him point recognize article game dinner possible trial out interesting.,2022-07-01T14:04:16,2024-08-06T05:18:29,SHRM32006 +WI94253,Mercedes,3 Series,1989,Black,"112,979 miles","4006,305",I4,Manual,Petrol,SH70278,Hospital college shake natural pay beat knowledge middle.,2024-07-18T01:50:30,2021-06-04T13:06:26,SHRM46991 +CG92711,Honda,Civic,1999,Gray,"535,886 miles","3780,442",V6,Manual,Hybrid,SH48446,However everything order within carry course education star single also.,2022-03-02T23:14:54,2024-08-31T11:16:15,SHRM30726 +QI56078,Chevrolet,Accord,2002,Green,"930,182 miles","2669,039",I6,CVT,Electric,SH21058,Could data method expect bring maintain.,2020-12-19T15:54:44,2021-10-09T23:09:52,SHRM80648 +wD77953,Ford,Soul,1990,Brown,"299,317 miles","3928,907",Hybrid,CVT,Diesel,SH79947,Both carry hospital road production sell.,2023-11-18T21:59:09,2021-03-22T10:04:37,SHRM97744 +tV18440,Nissan,Model S,2012,Green,"035,125 miles","2518,718",I6,CVT,Petrol,SH21707,Long mind change set involve end help state.,2020-12-01T03:54:37,2024-07-03T16:10:03,SHRM01151 +tX39641,BMW,Model S,2003,Blue,"192,363 miles","2875,708",Electric,Automatic,Electric,SH74613,Beyond fact couple possible simple central material table see.,2024-07-07T18:41:29,2022-10-11T13:30:56,SHRM96540 +Mz20148,Nissan,F-150,2007,Blue,"980,101 miles","5997,825",Hybrid,Automatic,Electric,SH32240,Once else grow yes city build strong situation form glass edge.,2020-09-25T14:31:53,2020-08-28T16:52:12,SHRM01151 +sU95875,Toyota,Soul,1989,Black,"630,090 miles","9475,960",V8,CVT,Electric,SH50011,Of push bad pay economy especially tree shoulder.,2021-04-14T09:28:32,2021-11-03T20:31:55,SHRM97501 +rg32877,Kia,Model S,1999,Brown,"070,511 miles","6030,875",V6,CVT,Petrol,SH22958,Wide eight subject challenge guy security onto hand.,2021-08-14T15:42:47,2023-11-12T22:38:06,SHRM32903 +NE54140,BMW,Soul,1998,Orange,"194,935 miles","4184,892",Hybrid,Manual,Electric,SH37168,Still within war particular difference positive meet.,2024-03-03T20:24:23,2022-11-09T00:47:42,SHRM21921 +Oz27517,Mercedes,3 Series,1982,Gray,"733,818 miles","3086,004",I4,Manual,Electric,SH78369,Conference our direction material anything already race garden relationship.,2022-04-27T15:39:40,2021-02-17T16:19:49,SHRM80648 +NY73705,Honda,Soul,1975,Green,"849,724 miles","4773,362",I4,Manual,Hybrid,SH70576,Up just improve site ten remember fund simply form woman couple age.,2022-02-16T01:24:16,2022-08-29T20:53:28,SHRM45252 +em17549,Nissan,Elantra,2016,Black,"855,059 miles","9053,857",V6,CVT,Electric,SH57941,Beyond onto property still baby director.,2022-01-25T01:27:04,2020-06-14T03:26:27,SHRM10264 +ak52345,Volkswagen,Camry,2006,Red,"032,955 miles","5124,241",I4,Manual,Electric,SH89972,Upon soldier phone fight radio strategy speech the on out later.,2021-05-25T22:04:21,2022-04-18T11:57:47,SHRM80648 +fV49464,Hyundai,Accord,2024,Green,"459,346 miles","5244,205",V6,CVT,Hybrid,SH90296,Agency inside raise draw those me.,2021-08-08T12:31:44,2021-09-28T00:57:54,SHRM69497 +gU06629,Mercedes,Civic,1985,Silver,"802,587 miles","2683,144",V8,CVT,Hybrid,SH50526,Coach reduce agree western face practice teach pull rule certain.,2020-01-11T21:27:46,2024-05-28T10:35:30,SHRM27380 +mz65509,Mercedes,Soul,1992,Gray,"593,219 miles","3695,215",I6,Manual,Petrol,SH96360,Little party former dream other someone once guy high long easy million spend.,2024-07-11T17:39:52,2023-03-22T22:00:02,SHRM79015 +tg70780,Toyota,A4,2003,Green,"540,049 miles","3965,842",I6,Automatic,Electric,SH95946,Special could in bring question glass example fish force.,2023-06-12T10:18:34,2022-03-11T03:37:33,SHRM98132 +an93873,Chevrolet,Soul,2013,White,"987,976 miles","2675,907",Electric,Automatic,Petrol,SH54809,Red charge interesting surface send apply community partner design thought.,2020-02-28T08:12:34,2022-07-17T17:14:14,SHRM96927 +SR55256,Ford,Camry,2002,Orange,"616,684 miles","2436,843",V6,Automatic,Hybrid,SH98703,Affect turn their interesting third industry western lot national.,2024-10-26T18:05:05,2022-10-26T16:48:40,SHRM09690 +yG20751,Mercedes,Soul,2020,Red,"661,272 miles","5867,067",V8,Manual,Hybrid,SH87821,Able article authority woman government per.,2020-12-26T03:02:05,2022-04-06T17:24:47,SHRM92013 +JM37621,Kia,A4,2002,Yellow,"524,142 miles","9063,355",Electric,CVT,Petrol,SH72983,Simple indeed blue firm street response time key.,2021-04-09T18:31:06,2024-08-07T11:23:41,SHRM21921 +zV16775,Ford,Accord,2012,Orange,"719,466 miles","4683,538",Electric,Manual,Diesel,SH66457,Fall hour he teach second majority sort business explain program.,2023-05-20T13:36:05,2020-12-24T17:30:55,SHRM80656 +ho45318,Mercedes,Accord,1980,Black,"214,838 miles","4839,186",Electric,Automatic,Hybrid,SH04952,Nation prevent require significant near staff.,2023-11-05T21:29:43,2022-05-09T01:04:09,SHRM75661 +fV81998,Mercedes,Soul,2011,Orange,"549,974 miles","8918,128",I4,CVT,Petrol,SH27243,Pass law general him church enter.,2023-07-22T05:00:32,2022-10-28T01:56:46,SHRM85786 +Qn13682,Hyundai,Elantra,1994,Black,"302,309 miles","5923,063",V6,Manual,Petrol,SH64074,Friend room radio class spend plan amount south.,2021-12-11T13:26:48,2021-09-02T21:25:40,SHRM48989 +Ij60858,Nissan,Camry,2022,White,"021,637 miles","3535,846",Hybrid,CVT,Electric,SH63000,Level term method often base teacher policy.,2021-09-14T06:46:26,2024-02-15T22:58:36,SHRM57464 +pR11441,Honda,Elantra,2012,Blue,"319,965 miles","5351,167",V8,Automatic,Electric,SH69079,Magazine worry staff explain street page stuff animal investment.,2024-08-10T14:31:00,2020-05-10T23:28:42,SHRM78570 +zH72506,Nissan,Elantra,1996,White,"366,088 miles","9963,672",Electric,CVT,Hybrid,SH93441,Pull follow different wrong town student religious spend body investment everyone.,2022-07-18T03:29:55,2020-07-06T03:19:39,SHRM81940 +By54777,Nissan,3 Series,1984,Black,"357,387 miles","4749,971",V8,Manual,Hybrid,SH27003,Poor it conference themselves a movement all Democrat food partner eye upon teacher.,2023-05-01T10:24:48,2022-11-12T17:41:25,SHRM40043 +Ke27400,Toyota,Golf,2024,Orange,"411,377 miles","6996,269",V6,Automatic,Hybrid,SH91781,Any and seek while sometimes agree simply determine from hour morning end.,2022-05-16T08:49:48,2020-11-29T15:32:19,SHRM40245 +Wr92576,Toyota,3 Series,1999,Black,"024,251 miles","3790,214",I6,Automatic,Petrol,SH62678,Success majority well better note three specific.,2022-03-16T05:26:39,2024-09-22T17:25:50,SHRM66167 +we17498,Toyota,Accord,2021,Orange,"709,883 miles","4792,549",Electric,Manual,Hybrid,SH58890,Argue skin discover itself moment fast eat drug community either around economic.,2020-03-17T01:51:10,2022-07-17T07:10:20,SHRM80648 +mJ82005,Chevrolet,Soul,1987,Gray,"741,719 miles","6315,886",V6,CVT,Electric,SH48976,Phone condition administration discussion always its important.,2021-12-14T05:42:15,2023-06-08T02:14:04,SHRM65147 +mP17117,Ford,Model S,1983,White,"823,216 miles","7840,684",Electric,Automatic,Hybrid,SH79986,Behavior field send notice age natural start.,2024-02-13T04:48:45,2021-08-10T19:57:11,SHRM56795 +Je74876,Honda,3 Series,2020,Silver,"644,774 miles","2735,096",Hybrid,Manual,Diesel,SH62913,Husband teach goal view everyone reach station step.,2024-07-06T09:58:44,2020-01-30T13:02:01,SHRM40639 +kg81935,Honda,3 Series,1977,Silver,"615,731 miles","7238,885",Hybrid,CVT,Electric,SH23378,Anything day across exactly goal sign after a speak.,2022-02-15T19:17:30,2022-12-12T04:18:37,SHRM36719 +Vv21645,Toyota,Elantra,2000,Black,"215,528 miles","8776,509",I4,Manual,Diesel,SH06444,Respond field after away up court argue sign measure affect student.,2025-01-12T09:27:33,2022-06-27T00:33:09,SHRM30726 +NR95622,Honda,Soul,1989,Orange,"539,588 miles","8847,441",I4,Manual,Electric,SH15094,Especially red them save product eye most market contain section between.,2020-11-18T03:32:12,2024-03-28T09:39:09,SHRM42433 +CB08718,Mercedes,Accord,2016,Green,"863,731 miles","7145,050",I6,Automatic,Electric,SH88782,Improve red nearly instead when least certain nation scene black common.,2022-08-17T18:47:10,2022-09-28T19:05:28,SHRM21115 +Pd60652,Chevrolet,Accord,1989,Gray,"155,473 miles","2140,054",V6,CVT,Diesel,SH16496,Pretty federal region low too so debate building.,2023-06-21T18:04:39,2021-03-12T05:07:13,SHRM60762 +Ib46886,Chevrolet,Accord,1993,Blue,"247,497 miles","6680,108",I6,Automatic,Petrol,SH41513,Ok seven interview Congress difference need attention million can office senior.,2024-03-20T17:25:10,2022-07-04T04:41:24,SHRM63916 +JC25725,Hyundai,3 Series,2002,White,"866,765 miles","4980,802",Hybrid,Manual,Diesel,SH44413,Family dark explain area media type size both tonight put international recent.,2020-02-05T23:59:18,2021-04-25T18:40:52,SHRM51457 +FK03868,BMW,F-150,1980,Black,"657,681 miles","7618,057",V8,Manual,Diesel,SH75196,Ask law land base occur run ten.,2024-04-22T21:21:33,2021-06-12T13:08:17,SHRM75661 +kA11360,Nissan,Civic,2022,Red,"669,084 miles","4418,212",Hybrid,CVT,Hybrid,SH57128,Edge water prevent hope forget study.,2021-11-19T12:01:16,2020-08-27T18:11:10,SHRM27464 +jn69508,Kia,Soul,1980,White,"547,784 miles","5486,695",V6,Automatic,Electric,SH66856,Firm art future change floor charge stuff research.,2022-12-02T02:20:40,2023-12-22T09:19:44,SHRM16616 +eC55737,Toyota,Elantra,1971,Green,"870,315 miles","8895,161",Hybrid,Automatic,Diesel,SH90390,Several enough measure between nation early scientist.,2022-05-11T21:35:36,2021-01-30T10:42:14,SHRM79043 +Mb69070,Volkswagen,3 Series,1986,Yellow,"322,185 miles","6324,541",I4,CVT,Diesel,SH02754,Reveal nice road customer speak fact enjoy attention unit partner analysis agency.,2020-09-25T15:06:57,2024-04-16T15:52:43,SHRM83284 +zY04260,Chevrolet,3 Series,2012,Green,"018,316 miles","6863,757",V8,Automatic,Hybrid,SH60780,Teacher all skin interview course yourself candidate American.,2021-04-30T11:23:48,2024-10-14T13:44:44,SHRM19000 +Sc29753,Mercedes,A4,1999,Orange,"211,939 miles","4088,428",I6,Automatic,Hybrid,SH95849,Real picture a bill fact economic marriage team reflect year myself.,2023-04-09T00:05:08,2024-06-11T19:43:15,SHRM84204 +Pi91649,BMW,Model S,1993,Green,"644,706 miles","5329,118",I6,CVT,Hybrid,SH73304,Recognize sure mother use tend into rock wish leave might everything.,2025-01-19T18:31:16,2022-10-20T07:04:16,SHRM29303 +Lk63351,Toyota,Camry,1992,Red,"205,545 miles","7655,313",Hybrid,CVT,Diesel,SH08932,Much idea yes provide watch know he thing company force.,2025-01-16T14:48:02,2023-06-05T09:13:26,SHRM09690 +Se62173,Nissan,F-150,1976,Blue,"881,891 miles","5543,762",V8,Manual,Electric,SH00981,Happy bring argue within movement star.,2020-09-27T08:43:43,2021-09-11T16:13:18,SHRM72270 +nk21900,BMW,3 Series,1971,Orange,"072,915 miles","2278,816",I4,Manual,Electric,SH65646,Late fear but try according soon free seem woman realize area.,2023-05-25T01:45:22,2020-01-18T16:31:38,SHRM42433 +tz22482,Hyundai,Golf,1983,Blue,"415,290 miles","5452,576",V6,Manual,Hybrid,SH95515,Blood necessary subject Mr change admit election trouble least mission.,2024-11-07T18:38:28,2024-09-13T22:06:55,SHRM32006 +fK94831,Chevrolet,A4,2016,Orange,"100,654 miles","2784,424",I4,Automatic,Diesel,SH52576,Ago join international coach analysis attention to discuss.,2023-12-26T11:49:03,2020-04-30T15:54:55,SHRM62517 +Us05801,BMW,Elantra,2005,Brown,"007,610 miles","4104,689",Electric,Manual,Hybrid,SH94403,Two commercial bag event information fear three.,2020-07-07T12:57:31,2022-06-23T17:19:15,SHRM21115 +yd99718,Nissan,Elantra,2004,Orange,"396,602 miles","6874,471",I4,Manual,Diesel,SH39944,Same discover check foot lead generation more perhaps national.,2023-08-14T12:54:59,2022-05-07T11:44:02,SHRM10507 +ZC17273,Nissan,Civic,1980,Gray,"797,353 miles","2487,849",V8,Automatic,Hybrid,SH64184,Risk bag along human above week source office fly quickly tree bill note.,2022-06-23T03:42:09,2020-11-24T08:25:39,SHRM72270 +zx63342,Nissan,F-150,1980,Black,"363,766 miles","5143,045",Electric,CVT,Hybrid,SH20013,Exactly care road prevent indicate leave.,2021-07-03T01:19:11,2021-12-24T01:53:45,SHRM94558 +tK13590,Honda,Golf,2000,Silver,"642,096 miles","8315,914",I4,CVT,Hybrid,SH49772,Subject type piece toward general bed less writer.,2020-06-15T22:10:52,2021-04-01T08:17:39,SHRM55232 +tp00942,Toyota,Soul,2015,Silver,"175,178 miles","2640,773",V6,Manual,Electric,SH03560,Know move different upon ago same often generation special way.,2020-11-30T13:05:00,2024-06-11T12:29:42,SHRM72061 +VV75179,Mercedes,Elantra,1998,Silver,"391,568 miles","8176,702",V8,CVT,Petrol,SH16230,Her experience form also lot rise seem set suggest face claim different protect.,2023-03-14T01:10:47,2021-05-06T06:06:23,SHRM40043 +Gx96413,Volkswagen,Golf,1983,Brown,"278,848 miles","3073,879",I6,Automatic,Hybrid,SH62509,Training civil else quickly financial continue role task meet.,2024-02-03T03:11:58,2024-04-13T00:05:31,SHRM45128 +IK94369,BMW,A4,2006,Orange,"403,311 miles","5016,485",I4,CVT,Electric,SH79123,Social indicate federal impact specific read understand.,2022-10-30T04:58:03,2024-11-17T09:47:17,SHRM84204 +kx50847,Nissan,Elantra,1974,White,"111,006 miles","8584,859",I4,Manual,Petrol,SH26220,Represent citizen receive open school situation small same specific.,2024-06-04T14:05:42,2024-03-13T10:05:38,SHRM51457 +qU51864,Chevrolet,F-150,1970,Gray,"895,458 miles","5270,374",I6,Manual,Diesel,SH14240,While prove star technology lot while stuff happy reduce again small difficult.,2022-07-04T17:52:29,2024-02-01T14:54:49,SHRM40639 +og28215,Mercedes,Model S,1990,Yellow,"848,515 miles","6153,678",V6,Manual,Electric,SH16205,Apply first wall question theory enter believe land benefit such sit want.,2022-09-01T04:40:41,2021-11-24T14:40:50,SHRM55232 +kh44932,Kia,Civic,1981,Red,"050,567 miles","3585,009",I6,Automatic,Electric,SH55899,Bar none position their history back provide behavior.,2022-12-09T23:20:12,2022-05-24T21:20:36,SHRM48989 +zE75729,Chevrolet,3 Series,2011,Gray,"846,611 miles","7391,944",Hybrid,Automatic,Diesel,SH71740,Natural growth want official meet force most.,2023-10-16T02:55:49,2024-01-06T21:35:05,SHRM58052 +Tp56354,Hyundai,Elantra,1972,Red,"627,316 miles","2257,585",Electric,Automatic,Petrol,SH04390,Society rather cost low happy end shoulder never economy example war.,2022-11-01T23:31:55,2020-12-08T09:34:42,SHRM40043 +mh62170,Chevrolet,Golf,1992,Black,"094,183 miles","2055,805",V8,Automatic,Hybrid,SH86461,Food receive office allow concern newspaper direction third.,2022-05-22T02:03:50,2020-09-20T10:55:08,SHRM61195 +DY85902,Mercedes,F-150,1983,Red,"060,062 miles","2199,912",I6,Automatic,Diesel,SH74328,Eye third sing else middle father game a along road improve.,2021-02-21T18:31:37,2022-07-10T12:25:01,SHRM33387 +rj21200,Chevrolet,Civic,2018,Orange,"387,195 miles","3204,688",V6,Automatic,Diesel,SH30991,Security office friend son stock sort read system when attention candidate level.,2022-09-10T21:21:31,2021-12-28T08:20:54,SHRM27464 +gE41801,Volkswagen,Accord,1986,Black,"545,199 miles","7200,188",V6,Manual,Petrol,SH93750,Exactly shoulder travel service property together around author article.,2024-06-11T06:38:59,2024-06-11T17:28:26,SHRM69497 +BO50823,Hyundai,F-150,1986,Yellow,"831,912 miles","8536,324",I4,Manual,Electric,SH23731,Growth who few teach successful table degree run purpose into base road plan.,2020-09-24T07:32:35,2022-07-24T04:44:27,SHRM31233 +aj83184,Chevrolet,F-150,1988,Red,"617,259 miles","2339,384",V6,Manual,Diesel,SH38774,I how service ok check institution too land huge energy animal fast.,2024-04-06T02:14:32,2021-03-24T07:05:35,SHRM40245 +ax53635,Volkswagen,A4,2008,Silver,"684,894 miles","5220,007",I6,Manual,Electric,SH34695,Enter politics available person skin audience.,2022-05-30T00:34:44,2020-03-17T09:56:44,SHRM33068 +Eo18393,Honda,Elantra,2013,Brown,"905,249 miles","3795,522",V6,Automatic,Diesel,SH83146,Control my yard anything total rise seat matter add hope finish tonight according.,2024-03-14T07:58:30,2024-04-01T05:00:11,SHRM18797 +nW53115,Mercedes,Camry,1973,Gray,"115,201 miles","7624,175",Hybrid,Manual,Hybrid,SH35637,Him conference effort society deep along inside sound.,2022-01-18T06:07:17,2021-07-17T16:28:49,SHRM21921 +oc64379,Nissan,Elantra,1977,White,"777,817 miles","3016,350",V8,Automatic,Electric,SH93656,Test finally population adult tell lose.,2023-09-02T19:54:19,2021-12-02T12:22:56,SHRM75661 +QC38509,Chevrolet,Golf,1984,Silver,"018,636 miles","7164,584",I4,Manual,Electric,SH58157,Friend cold head investment large eye full amount for leave woman.,2022-12-15T02:01:13,2022-03-22T00:22:09,SHRM82317 +hJ67067,Ford,Elantra,1986,Yellow,"476,546 miles","7315,511",Hybrid,Automatic,Petrol,SH94505,Keep friend away check recent per include resource miss exist concern.,2021-12-11T08:12:09,2022-08-10T10:01:42,SHRM80656 +Fc23310,BMW,Civic,1990,Orange,"659,847 miles","2730,669",V6,Automatic,Diesel,SH76215,Certain walk exactly they some subject serious main.,2022-09-06T20:47:01,2022-06-15T06:44:43,SHRM21115 +rB16529,Honda,Accord,2000,Silver,"891,485 miles","3391,365",Electric,Automatic,Petrol,SH46060,Business present employee new ever compare create buy already responsibility rate.,2023-04-28T22:55:48,2024-06-22T16:27:01,SHRM97501 +eU76425,Chevrolet,A4,2002,Gray,"800,434 miles","9880,242",Electric,Manual,Electric,SH40118,He rock key church often live.,2020-05-10T19:09:45,2021-07-27T12:02:23,SHRM21115 +Pe98248,Chevrolet,A4,2020,Orange,"323,113 miles","6673,088",I6,Manual,Hybrid,SH47538,Deep capital claim kid everything drug respond central recent.,2020-03-10T13:58:30,2020-09-19T00:33:57,SHRM36032 +Ve85276,Honda,F-150,2024,Red,"065,977 miles","8670,306",V8,Manual,Electric,SH36644,Similar reflect most both he scene visit follow everybody by office example.,2021-02-27T18:50:13,2021-10-23T12:37:52,SHRM76509 +iC12757,Hyundai,Elantra,1985,Red,"153,222 miles","4610,448",Electric,Manual,Diesel,SH30047,Live physical system thing yard cover although first partner such federal.,2020-04-12T15:55:12,2024-06-16T05:28:55,SHRM70777 +VV70781,Chevrolet,F-150,1988,Blue,"515,987 miles","7610,050",I4,CVT,Hybrid,SH52188,Role color democratic situation front energy believe collection ok.,2021-02-04T04:36:40,2022-07-10T03:00:48,SHRM31233 +Cn95046,Honda,F-150,1995,White,"785,438 miles","2629,843",Electric,CVT,Hybrid,SH80902,Total result not traditional according college large indicate rich.,2020-05-11T13:16:39,2023-10-24T13:16:33,SHRM77296 +Nb06308,Ford,Civic,2001,Red,"151,959 miles","7586,540",V6,Manual,Hybrid,SH45844,Stand full water after each including assume.,2024-07-27T07:35:12,2020-06-30T01:41:54,SHRM48989 +XW54980,BMW,F-150,2016,White,"663,331 miles","2884,401",I4,CVT,Diesel,SH84131,Teach thing miss focus practice sort market model person anything need our however.,2022-05-12T20:19:50,2024-10-20T17:22:59,SHRM21921 +Xb54995,Mercedes,3 Series,2010,Red,"424,472 miles","2858,529",I4,CVT,Diesel,SH67631,Small vote writer over drop where edge loss professional hospital hand man instead.,2024-04-10T07:49:19,2022-12-29T03:14:53,SHRM33387 +eH58807,Honda,Camry,1992,Orange,"623,767 miles","2491,517",Electric,Manual,Diesel,SH38848,Garden card court national both performance how recent certainly save full teach door.,2021-10-03T03:51:10,2020-02-05T13:37:52,SHRM77296 +SA51311,Kia,Soul,1978,Gray,"533,563 miles","4633,748",Hybrid,CVT,Petrol,SH21022,Without democratic consumer her defense of least general a Congress sort form skin.,2023-03-02T02:30:39,2022-10-14T22:49:24,SHRM18797 +uu52925,Volkswagen,Civic,2001,Gray,"321,789 miles","5327,964",Electric,CVT,Hybrid,SH65855,Cold serious growth theory specific us individual everyone professor.,2021-02-06T04:03:13,2023-09-03T01:39:48,SHRM96423 +Dz75717,Toyota,Model S,2001,Black,"364,920 miles","7445,333",V6,Automatic,Electric,SH99083,Participant ago hot watch able apply sit police look.,2021-05-04T01:22:23,2022-04-30T05:08:13,SHRM12392 +Ea34452,Mercedes,Camry,2007,Yellow,"334,768 miles","8982,844",V8,CVT,Electric,SH74796,Country remain fear firm ever serve thus fact possible record among simply away.,2023-03-31T21:10:34,2022-01-18T08:34:16,SHRM31233 +GS70237,Nissan,Elantra,2001,Red,"504,543 miles","9673,223",V8,CVT,Electric,SH01828,Explain change language leave participant not then federal.,2022-08-19T07:28:50,2023-05-08T04:59:37,SHRM42852 +EC08169,Hyundai,Camry,2018,Gray,"038,997 miles","3657,073",Hybrid,Automatic,Diesel,SH00897,Cut cause across century environment policy hour.,2022-02-18T02:46:17,2020-08-06T06:44:02,SHRM33669 +MM98374,Chevrolet,Golf,1977,Silver,"245,667 miles","6209,853",I4,Manual,Petrol,SH39810,Skill father leave successful chance job.,2024-12-15T17:59:26,2021-03-16T16:23:23,SHRM10507 +kX17027,Mercedes,Accord,1978,White,"382,372 miles","6316,447",I4,Automatic,Petrol,SH81486,Themselves population keep take consider card attention able.,2021-02-25T13:43:13,2020-12-16T15:03:08,SHRM48672 +ZW42938,Kia,Soul,1971,Red,"042,152 miles","4910,783",I6,Automatic,Hybrid,SH91375,Use should line black from perform several evening red.,2022-12-19T18:34:02,2021-03-21T18:33:49,SHRM74494 +nE63245,Nissan,A4,1988,Orange,"185,718 miles","9245,889",V6,Automatic,Petrol,SH68457,Own some across owner treat seem scientist interest act structure too production.,2021-10-14T17:16:43,2021-01-14T02:44:24,SHRM53675 +ov60813,Chevrolet,Soul,1974,Green,"148,395 miles","3994,588",Hybrid,Automatic,Petrol,SH03684,Middle politics get pretty player media agency marriage small.,2022-06-29T06:06:08,2022-09-27T15:17:06,SHRM30726 +pr36944,Chevrolet,A4,1985,Orange,"453,672 miles","2296,768",I4,Manual,Hybrid,SH53695,Evidence huge politics stage person society.,2023-04-14T03:46:34,2022-04-29T20:48:17,SHRM74494 +hH59814,Hyundai,Model S,2015,Red,"540,419 miles","7790,890",I6,CVT,Hybrid,SH71620,Attention court camera bit discuss could call thousand maintain responsibility.,2020-05-01T02:38:29,2022-10-03T20:24:10,SHRM64680 +Rc58100,Kia,Soul,1979,Black,"210,546 miles","5821,918",Hybrid,CVT,Hybrid,SH08777,Majority be thus relationship role mention team culture.,2022-07-21T23:01:47,2021-08-03T06:32:31,SHRM78570 +Ub91916,Nissan,F-150,2003,Orange,"630,621 miles","7794,220",V6,Automatic,Diesel,SH05686,Growth training debate check feeling kid direction sea alone image before present during middle.,2022-03-18T18:46:18,2022-06-02T18:25:36,SHRM57464 +XQ86050,Honda,A4,2024,Brown,"909,010 miles","5794,684",Hybrid,Automatic,Petrol,SH57399,Audience firm as state agree ball or never however involve note.,2024-12-29T00:45:44,2020-03-19T18:13:56,SHRM74494 +sB11260,Nissan,Civic,1993,Blue,"402,731 miles","5080,171",V6,CVT,Hybrid,SH34554,Great story social determine kind surface.,2022-10-24T22:47:04,2022-01-29T02:12:41,SHRM05095 +nt37638,Hyundai,F-150,2007,Silver,"580,443 miles","4497,173",I4,CVT,Electric,SH32801,Reality remember method tell hour thousand major father pay threat report town view.,2021-08-01T04:10:35,2021-11-09T07:33:24,SHRM30726 +eQ71055,Chevrolet,A4,2023,Brown,"183,770 miles","6880,735",Hybrid,CVT,Hybrid,SH96202,First goal lot increase everything design study reduce lawyer set left one west.,2024-03-15T14:41:36,2022-04-05T05:52:24,SHRM30726 +ak32666,Toyota,Accord,2013,Red,"924,057 miles","7909,791",Electric,CVT,Electric,SH17925,Pattern when measure the product something.,2024-11-25T11:10:57,2020-07-23T05:53:10,SHRM94558 +wk16875,Honda,Camry,2017,Green,"148,831 miles","8999,033",V6,Manual,Hybrid,SH49706,Hear new traditional family involve that.,2023-03-17T22:58:40,2022-03-26T07:38:45,SHRM27464 +bv47735,Volkswagen,Elantra,2010,White,"419,435 miles","9325,644",V6,Manual,Hybrid,SH27357,Should collection idea reach base research think customer us reveal box million stuff.,2022-12-03T05:47:44,2022-08-06T12:22:39,SHRM42433 +UW99376,Honda,Golf,1994,Gray,"689,049 miles","6799,914",Electric,Automatic,Hybrid,SH36621,Science media their which rock possible.,2023-09-12T15:08:08,2021-07-11T06:30:32,SHRM56795 +Kd94640,Chevrolet,A4,2007,Silver,"312,024 miles","5579,269",Hybrid,CVT,Hybrid,SH41539,Focus section long political owner structure then goal fire pick require.,2024-09-20T17:51:30,2022-02-15T21:33:35,SHRM61195 +UH69461,Nissan,Model S,1991,Green,"088,736 miles","2608,441",I4,Manual,Hybrid,SH33507,Mind teacher look score example it among her former both eye.,2023-02-21T15:19:34,2023-08-01T00:36:24,SHRM75661 +Eo59057,Volkswagen,F-150,2011,Silver,"420,065 miles","7540,349",V6,Automatic,Hybrid,SH87790,Toward hear about dream start choose behavior name themselves day.,2023-05-04T23:31:48,2023-07-11T03:35:36,SHRM66167 +wj71835,Hyundai,Accord,1981,Blue,"931,846 miles","4963,509",Electric,Automatic,Diesel,SH33318,Nature begin feeling make foot specific.,2022-06-06T11:21:32,2020-12-29T04:59:11,SHRM61538 +cy66937,Honda,A4,1979,Green,"808,237 miles","8159,649",I4,Automatic,Electric,SH04038,Occur truth market full course government per husband yourself else.,2021-05-18T20:42:57,2020-11-18T12:28:28,SHRM40245 +Ue75031,Chevrolet,Soul,1983,Gray,"347,197 miles","8118,215",V6,Automatic,Electric,SH61401,Left draw carry store coach evidence gun.,2021-02-02T17:16:02,2022-07-15T22:27:22,SHRM16616 +xK13729,Chevrolet,Accord,2007,Brown,"154,909 miles","4233,232",V6,Automatic,Petrol,SH63546,Street simply employee sell strategy stuff.,2023-11-21T00:58:26,2021-05-22T12:09:43,SHRM81940 +rH83205,Kia,Golf,1997,Brown,"641,999 miles","8674,229",Electric,Manual,Hybrid,SH06302,Heart modern race he ago already letter side.,2022-06-19T20:19:39,2020-03-30T20:46:41,SHRM45822 +qZ50794,Hyundai,F-150,2023,Brown,"448,007 miles","3594,958",Hybrid,CVT,Electric,SH81024,Remain movie law condition cover college accept base unit whose.,2023-08-16T06:08:05,2024-03-05T08:14:19,SHRM85338 +IA75678,Mercedes,Accord,1971,Brown,"238,475 miles","5657,791",Electric,CVT,Diesel,SH14038,Painting man treatment actually summer college who carry every away example plan company.,2024-10-21T12:09:13,2020-04-29T13:34:17,SHRM55232 +zj13149,Mercedes,Model S,1999,Black,"984,839 miles","9707,425",I4,Manual,Diesel,SH84139,History under sell today require work marriage.,2023-01-16T11:17:40,2021-08-14T14:01:46,SHRM68831 +kN53457,Mercedes,Model S,2010,Gray,"925,177 miles","5535,538",I6,Automatic,Electric,SH49049,Create all hair million return green down chair difference first.,2023-02-10T03:33:49,2023-03-05T05:13:16,SHRM68831 +pb90391,Toyota,Soul,1978,Blue,"068,215 miles","6781,877",I4,Automatic,Electric,SH81972,Degree hundred senior world much subject out impact share.,2023-03-23T11:15:34,2024-11-14T08:10:03,SHRM98132 +HW83627,Volkswagen,Soul,1994,White,"556,372 miles","9830,862",V6,Automatic,Petrol,SH30735,Marriage trip operation garden bad recognize.,2020-09-21T04:47:29,2021-12-28T17:05:04,SHRM75661 +Fy81153,Mercedes,Accord,1974,Yellow,"420,669 miles","6622,637",I6,Manual,Diesel,SH90562,Issue various cut would keep rise.,2023-07-22T17:08:11,2022-07-10T19:45:30,SHRM63916 +Nj18988,Nissan,Camry,2006,Yellow,"807,372 miles","5014,773",I6,Automatic,Petrol,SH15552,Serve whom shoulder rest everybody series make ground.,2021-03-04T23:49:19,2022-04-17T01:37:44,SHRM45252 +KJ10093,Toyota,F-150,2006,Green,"858,774 miles","6190,423",V8,Manual,Diesel,SH24116,Movie threat young itself all along fish.,2022-11-07T09:16:44,2023-09-07T01:22:29,SHRM31233 +gD54676,Nissan,3 Series,2021,Black,"008,997 miles","8701,812",I4,CVT,Diesel,SH68688,Material specific crime region floor everything ready all arrive their figure sure begin.,2020-10-07T22:16:48,2024-12-13T00:50:44,SHRM10507 +fQ93095,Mercedes,Camry,1986,White,"585,183 miles","5927,662",V8,Automatic,Hybrid,SH81453,Expert computer glass money food later late land hour staff expect Mrs full.,2024-02-11T22:57:05,2025-01-08T00:50:22,SHRM45822 +fX81136,BMW,Golf,2012,Gray,"583,380 miles","7048,194",Hybrid,Manual,Hybrid,SH58675,Kind pressure process grow bad more land discover push two investment safe control.,2021-12-23T08:16:56,2021-11-07T17:26:57,SHRM72270 +od81185,Toyota,F-150,1980,Green,"550,124 miles","9366,100",I6,Manual,Electric,SH24606,Take fast offer food all else seat box event rest.,2024-07-06T23:08:34,2023-01-18T00:56:09,SHRM32903 +dZ92487,Mercedes,Soul,1989,Yellow,"519,705 miles","2005,542",V8,CVT,Hybrid,SH45588,Its see many yes late former serve everyone.,2020-06-16T04:24:21,2024-11-14T08:46:34,SHRM63916 +mB14343,BMW,Civic,1992,White,"187,719 miles","8203,963",V6,Manual,Petrol,SH28579,Where success heavy administration probably teacher standard whatever hospital talk.,2020-10-29T06:27:03,2021-04-19T11:12:45,SHRM10264 +hF87750,Volkswagen,A4,1987,Orange,"513,781 miles","7432,789",I6,CVT,Hybrid,SH98493,Above interview benefit community provide Congress very focus themselves same while.,2020-09-03T09:29:44,2023-05-08T18:11:19,SHRM65874 +mP70906,Mercedes,Elantra,2005,Yellow,"784,727 miles","3894,265",V6,CVT,Electric,SH22367,Sometimes business entire national commercial fear opportunity include young.,2021-03-12T15:11:51,2023-09-22T14:34:36,SHRM84636 +Le69345,Chevrolet,Golf,2007,Silver,"795,672 miles","8670,766",V6,Manual,Diesel,SH34026,Follow each mention run risk determine town hospital represent themselves beyond.,2021-04-30T12:14:27,2024-04-14T18:10:28,SHRM96423 +EF92145,Mercedes,F-150,2006,Orange,"109,815 miles","6884,893",V8,Automatic,Hybrid,SH98886,Record consumer message can actually car but establish give together.,2023-03-23T04:22:52,2023-12-30T06:26:58,SHRM32006 +nR61127,BMW,F-150,1988,White,"694,397 miles","9313,620",V6,Manual,Diesel,SH59655,Onto seven live now loss standard will offer second purpose affect truth floor.,2023-08-31T03:10:32,2022-07-28T08:36:35,SHRM27464 +nG89153,Nissan,Accord,1992,White,"832,413 miles","7240,149",I6,Automatic,Hybrid,SH78576,Western project position today heavy assume according professor.,2024-05-15T11:52:03,2020-03-20T09:24:34,SHRM82965 +rG12571,Ford,F-150,1972,Silver,"302,055 miles","8088,757",I4,CVT,Diesel,SH36429,Money consumer shake floor gas great throughout stage.,2021-10-10T06:31:41,2024-04-13T19:15:25,SHRM45128 +AK02713,Chevrolet,Soul,1993,Blue,"168,650 miles","4447,745",I4,Automatic,Diesel,SH83151,Here hold matter develop mother station person.,2023-08-29T18:09:20,2024-12-04T22:08:36,SHRM97309 +yx01529,Nissan,3 Series,1988,Orange,"745,321 miles","9369,448",I4,CVT,Petrol,SH95397,Boy lawyer whatever your central up election board or require.,2023-11-15T11:44:12,2023-11-05T23:25:24,SHRM63916 +uo95152,Chevrolet,Camry,1971,Green,"543,502 miles","6929,393",Electric,Automatic,Electric,SH50662,Morning value thousand money tax decade street road generation character simply.,2023-09-22T19:02:28,2023-04-19T04:39:34,SHRM55232 +fk15450,Chevrolet,Civic,2014,White,"320,194 miles","7582,577",V8,Automatic,Diesel,SH80196,Eight upon coach figure month sell ahead book media quite keep.,2021-03-01T15:09:15,2024-01-29T05:25:19,SHRM98132 +TM13731,Volkswagen,Elantra,1974,White,"674,495 miles","7708,367",V6,Automatic,Petrol,SH49128,Skill page as top meet agent person simple against.,2020-11-07T13:56:40,2020-01-13T00:11:43,SHRM21696 +GF77353,Mercedes,Accord,2010,Gray,"398,740 miles","5406,108",Hybrid,Automatic,Diesel,SH44678,Respond couple hear wish reveal want audience her.,2023-07-18T17:51:51,2021-10-11T02:47:02,SHRM45822 +rv33567,Hyundai,A4,2017,Yellow,"460,683 miles","3233,920",Electric,CVT,Electric,SH55559,Collection matter enough girl six step fly up by particularly.,2023-05-07T05:24:11,2023-09-30T08:15:24,SHRM48989 +ky87633,Mercedes,Soul,2021,Red,"620,047 miles","2045,236",V6,Manual,Diesel,SH87576,Continue them full job entire thing.,2020-05-07T07:45:07,2023-07-07T19:28:42,SHRM48672 +Ed52611,Volkswagen,F-150,1979,White,"576,997 miles","7790,588",I6,Automatic,Petrol,SH78588,Inside matter relate speech compare natural full.,2024-06-20T01:38:49,2022-03-03T23:38:55,SHRM53675 +Im83653,Toyota,Elantra,1981,Green,"663,149 miles","8872,164",Electric,Automatic,Petrol,SH31268,Color the hot ahead institution cut control.,2022-12-28T07:41:34,2021-01-27T21:03:48,SHRM45822 +Lr62836,Mercedes,3 Series,2015,White,"444,888 miles","6609,425",V8,Manual,Petrol,SH62602,Make represent effort financial ahead health change maintain tax create south.,2022-03-05T16:10:36,2023-12-18T01:16:37,SHRM64680 +uA89888,Volkswagen,Civic,2011,Blue,"661,997 miles","4466,316",V8,CVT,Electric,SH33102,Him section adult head analysis right.,2021-02-28T06:44:51,2021-11-09T19:16:59,SHRM36719 +NU83796,BMW,Golf,1978,White,"051,929 miles","5237,033",I6,CVT,Hybrid,SH42810,Series catch indicate our garden put.,2020-05-02T17:39:47,2023-03-06T06:59:46,SHRM55232 +st70528,Honda,Golf,1996,White,"507,590 miles","3827,536",Hybrid,CVT,Hybrid,SH40601,Civil help and where put performance decide whose.,2020-04-16T08:26:29,2022-05-28T14:19:16,SHRM98132 +yY25395,Honda,3 Series,1992,White,"103,841 miles","6702,805",V6,Manual,Petrol,SH70803,Place chair west similar fill painting easy produce first.,2021-10-11T14:27:55,2021-02-23T00:35:51,SHRM97501 +QW22911,Nissan,A4,1984,White,"195,750 miles","5288,174",I6,Manual,Hybrid,SH67903,Candidate right sign simple best company perform.,2020-06-09T03:53:25,2022-07-29T09:56:56,SHRM48989 +uO62915,Volkswagen,A4,2011,Yellow,"224,165 miles","5722,372",Hybrid,Automatic,Electric,SH76809,Laugh development wall individual where against tend item list.,2023-09-19T18:32:48,2024-08-19T05:28:24,SHRM01151 +TQ36012,Toyota,Soul,2009,Blue,"600,339 miles","7265,411",V8,Automatic,Hybrid,SH69772,Several thing need pull either law relationship ok.,2022-04-20T10:17:43,2023-11-26T22:24:50,SHRM58052 +YY69239,Mercedes,Accord,2016,Orange,"802,844 miles","7936,237",V8,Manual,Electric,SH51148,Position analysis grow every serve impact approach big reveal perhaps situation.,2024-12-12T01:52:09,2022-11-22T07:26:48,SHRM62517 +aF64031,Mercedes,A4,2018,White,"544,500 miles","8832,041",V6,Automatic,Hybrid,SH20439,Spring same might language again attorney magazine kid stage number happen large.,2021-06-29T04:13:31,2023-08-25T16:52:57,SHRM66167 +PI58090,Volkswagen,F-150,1984,White,"603,869 miles","6560,646",V8,Manual,Diesel,SH64537,After or lot shake performance wrong especially whether fast help him office arrive.,2023-05-25T20:28:21,2023-04-21T18:38:14,SHRM32713 +Lu88888,Ford,Soul,2012,Orange,"775,289 miles","2195,383",I4,Manual,Electric,SH35388,Price admit experience fear about court ahead notice case off.,2023-01-16T07:11:56,2021-11-06T10:52:51,SHRM81940 +gw44980,Chevrolet,3 Series,2018,Brown,"430,713 miles","2220,369",I6,Manual,Electric,SH54070,Market bank amount member argue term TV fact.,2020-07-11T10:55:20,2023-05-04T19:51:12,SHRM40245 +ue90736,Ford,Model S,2015,Gray,"953,357 miles","6145,765",V8,Manual,Petrol,SH12571,Focus vote agency skill thus expert sure rest Republican sense these.,2023-09-14T04:34:49,2020-09-17T02:48:15,SHRM16616 +vd24792,Mercedes,3 Series,2001,Yellow,"383,159 miles","3744,133",I6,Automatic,Petrol,SH50800,Glass real sing great lay again outside family.,2022-08-13T15:34:39,2020-04-29T12:13:33,SHRM96540 +Ed58212,Chevrolet,Accord,2017,Gray,"089,128 miles","7352,642",V8,Manual,Petrol,SH10608,Drive choice your cup guess capital catch dog.,2024-02-04T17:18:30,2020-05-04T08:29:51,SHRM74494 +tR16744,Kia,Accord,2021,Black,"430,604 miles","2364,113",Hybrid,CVT,Petrol,SH65020,Decade number security newspaper story hold local family mission inside box receive bank media.,2022-05-12T15:40:13,2020-06-23T10:27:02,SHRM98132 +tZ66671,Nissan,Elantra,2004,Red,"479,498 miles","3337,533",Hybrid,CVT,Diesel,SH12281,Drop finally ball idea receive one first tough choose attorney.,2022-10-29T01:51:25,2024-09-05T05:51:43,SHRM01151 +SR88743,Ford,A4,1977,Blue,"942,785 miles","9486,791",V6,Automatic,Electric,SH87252,Rock everything interview ago article relationship hold line although live positive all else.,2021-08-23T20:34:45,2024-04-29T03:24:48,SHRM64680 +jr54987,Chevrolet,Elantra,1978,Brown,"679,251 miles","4352,663",Hybrid,Manual,Electric,SH67484,Century common laugh trouble increase whole general plan help skill defense.,2023-11-25T08:15:38,2023-12-27T22:25:23,SHRM99149 +RU70551,Volkswagen,Soul,2012,Red,"886,686 miles","4438,069",I6,Manual,Petrol,SH41894,Audience address thus left lot size result image write memory top billion gun bar.,2022-05-05T12:53:17,2022-10-14T20:39:50,SHRM85786 +ar33899,Kia,Civic,2001,White,"241,765 miles","9619,985",Electric,Automatic,Diesel,SH52218,She plan reality act account herself nature I capital.,2021-01-13T07:43:29,2020-07-13T09:50:37,SHRM21921 +Ds12426,Toyota,F-150,1986,Yellow,"438,365 miles","9658,929",V8,Manual,Electric,SH46658,They base your need explain model.,2022-05-13T04:45:35,2024-09-28T00:11:30,SHRM42852 +PK75118,Nissan,A4,1984,Black,"786,892 miles","9661,206",I4,Automatic,Electric,SH08407,Food thing event behind various good born hand.,2024-12-15T17:36:50,2024-11-30T08:19:05,SHRM01151 +tt70497,BMW,A4,1998,Yellow,"866,718 miles","9942,403",I4,CVT,Petrol,SH61475,Example have central human national attention.,2021-05-22T15:06:14,2020-06-11T23:00:42,SHRM01151 +Fh03183,Toyota,3 Series,2012,Gray,"679,057 miles","9656,786",V8,Manual,Diesel,SH30005,Ok college popular newspaper country onto each west often.,2023-05-15T08:31:22,2024-08-01T12:35:53,SHRM20203 +vY25282,Ford,Model S,1980,Brown,"920,616 miles","3870,471",Electric,CVT,Hybrid,SH70518,Forward professional goal about space mission now despite.,2020-07-12T04:11:41,2023-05-27T12:23:34,SHRM96540 +AJ31224,BMW,Civic,1972,White,"836,918 miles","6181,276",I6,Manual,Petrol,SH41659,Could administration fight smile according cut this.,2021-07-29T20:46:04,2021-03-13T19:05:07,SHRM16616 +Mz03836,Ford,F-150,2013,Yellow,"105,808 miles","3031,854",I4,Automatic,Petrol,SH03902,Phone happen heavy city wish politics notice.,2025-01-18T00:48:23,2024-05-24T03:11:00,SHRM58052 +vC96070,Chevrolet,Elantra,2014,Silver,"273,847 miles","3625,447",Electric,CVT,Electric,SH16658,Court prepare response spring last technology soon safe.,2023-11-28T17:19:08,2020-10-05T00:12:19,SHRM30726 +Kx57593,Hyundai,Accord,2016,Yellow,"846,481 miles","3389,446",I4,Manual,Diesel,SH79758,Least team suffer north conference baby hair treat top major improve process record.,2020-02-19T13:40:23,2023-04-28T12:41:14,SHRM46991 +pV11918,Honda,A4,2018,Red,"909,799 miles","8354,527",I6,Manual,Diesel,SH95629,Born mean attack mention point national way democratic month here church teach.,2024-06-24T17:24:39,2023-08-13T10:53:57,SHRM45252 +da47170,BMW,A4,1973,Brown,"677,938 miles","6464,160",Hybrid,CVT,Hybrid,SH12943,Energy rate hot at believe show.,2022-06-12T16:35:27,2022-12-05T22:29:00,SHRM36032 +Ki66851,Nissan,F-150,1982,Brown,"324,735 miles","7709,367",I4,CVT,Hybrid,SH95180,Water dream theory enough move when specific pull.,2021-11-09T20:28:18,2023-04-22T13:19:11,SHRM42433 +Xo45751,Kia,Camry,2020,White,"455,296 miles","2753,678",V6,CVT,Electric,SH69974,Push hand campaign pull remain benefit concern person paper.,2020-01-27T19:39:24,2022-08-29T09:55:19,SHRM32173 +lk00063,Toyota,3 Series,2019,Silver,"029,389 miles","4066,286",Hybrid,Manual,Hybrid,SH01913,Theory miss serious produce stop require loss test upon century measure during.,2021-07-20T18:35:20,2021-06-07T11:19:31,SHRM40043 +jf11246,Volkswagen,Civic,2012,Blue,"517,169 miles","6996,055",I6,Automatic,Petrol,SH22648,Give machine recognize prove people image care.,2022-08-15T23:49:56,2022-11-14T04:11:31,SHRM65147 +gh77599,Volkswagen,Soul,1981,White,"868,005 miles","6104,397",V8,CVT,Petrol,SH26916,Indeed blood during material college something.,2023-04-07T12:07:52,2024-05-27T20:44:24,SHRM96540 +kF15463,BMW,A4,2009,Brown,"297,165 miles","2140,084",V8,CVT,Petrol,SH54994,Address partner religious cause save safe almost develop air beat generation rule.,2021-12-26T14:04:24,2024-02-26T16:27:55,SHRM31233 +hz63824,Toyota,3 Series,2004,Green,"610,301 miles","3144,717",I4,Automatic,Electric,SH19713,Though price hear create discussion help six whose drop identify case season.,2022-10-06T16:08:27,2020-06-16T12:10:34,SHRM29303 +aE15125,BMW,Civic,1983,Blue,"010,385 miles","2710,406",V8,Manual,Petrol,SH98163,Book man very include quickly result list.,2021-07-03T22:29:15,2023-08-01T10:59:09,SHRM75661 +Ib85821,Kia,Soul,1976,Black,"176,500 miles","6519,649",V8,CVT,Electric,SH29108,Always cause modern offer field large star future they position.,2023-01-04T04:01:10,2021-09-07T00:35:52,SHRM53675 +nk00998,Kia,Soul,2004,Red,"927,007 miles","6312,474",V8,Automatic,Petrol,SH45628,Second condition note feeling citizen certain speech.,2021-09-14T11:48:24,2022-04-01T21:00:17,SHRM91035 +HL46637,Mercedes,A4,1983,Blue,"431,312 miles","3768,216",Hybrid,Automatic,Electric,SH36902,Sister mouth far term nation though.,2021-04-01T05:28:11,2024-04-16T05:30:13,SHRM96423 +ad79405,Hyundai,Camry,1997,Gray,"639,905 miles","3611,303",I6,Manual,Petrol,SH68961,Meeting occur who state we parent life improve number loss each service.,2023-01-16T16:28:01,2021-08-30T06:38:09,SHRM05095 +Wd25619,Nissan,3 Series,2008,Green,"594,315 miles","4342,733",Electric,Automatic,Petrol,SH55304,Care describe sign with kid seven employee federal movement low whom edge check.,2021-03-31T05:08:43,2023-09-29T12:05:23,SHRM12392 +ke70215,Chevrolet,Golf,2001,Yellow,"956,402 miles","4519,654",V8,Automatic,Electric,SH50087,Pattern exactly story simply marriage operation this his short.,2023-07-04T03:38:10,2020-07-04T12:37:59,SHRM80648 +un98892,Hyundai,Soul,1975,Silver,"276,295 miles","7220,325",I4,Automatic,Electric,SH04926,Art hospital professional little television against.,2020-06-20T19:48:13,2023-04-18T14:14:47,SHRM59804 +RC15533,Chevrolet,Civic,2008,Gray,"672,038 miles","6066,497",V6,Manual,Petrol,SH38397,While another agent image next instead our husband measure sit.,2022-01-08T00:27:42,2022-03-04T15:49:52,SHRM63916 +qr92157,Volkswagen,Elantra,1982,Red,"126,370 miles","7528,600",I6,CVT,Petrol,SH52259,Wide such today computer improve star determine soldier.,2022-04-05T02:15:01,2021-10-19T00:35:12,SHRM81940 +pE12901,Nissan,Accord,1973,Red,"383,025 miles","5426,253",Electric,CVT,Diesel,SH83721,Door image food former the window.,2020-05-31T23:57:08,2023-12-27T09:45:34,SHRM10264 +Pk65903,Hyundai,Model S,1990,Silver,"738,972 miles","3923,781",I6,Manual,Petrol,SH01051,Recent apply since different think goal ever worker family fact lawyer late.,2024-06-25T11:32:05,2021-07-19T11:02:37,SHRM81459 +YR34509,Chevrolet,Camry,1983,Silver,"584,214 miles","3728,381",Electric,Manual,Electric,SH71589,Movie defense body may indicate part subject be heart side yes police.,2020-04-19T23:42:47,2020-08-12T14:16:46,SHRM63916 +WF98233,Volkswagen,F-150,2011,Green,"634,123 miles","6412,333",Electric,Manual,Petrol,SH28581,Structure close deal professional sea sell miss knowledge number large.,2020-12-01T21:44:29,2025-01-20T04:35:00,SHRM01151 +tW93552,Hyundai,Soul,1984,White,"934,042 miles","8787,497",I4,Manual,Petrol,SH79560,Use guy moment recognize share six.,2023-10-20T03:24:14,2021-05-01T04:34:19,SHRM68542 +gT15484,Mercedes,Accord,1997,Red,"178,286 miles","9523,753",I6,Manual,Petrol,SH05465,Talk owner become because staff out yeah fill decision.,2021-07-22T04:32:51,2024-03-24T08:01:33,SHRM32903 +aK04985,Chevrolet,Model S,1987,Yellow,"715,788 miles","4024,541",V8,Manual,Hybrid,SH39931,Really TV middle manage else purpose pull cup while eight poor.,2021-03-05T06:54:22,2024-08-01T11:28:31,SHRM78570 +qM83583,Nissan,3 Series,1993,Green,"085,074 miles","8588,885",Hybrid,Automatic,Electric,SH43015,Management interview really onto push manager sing bar rather wide seek.,2021-12-14T02:33:52,2022-04-05T19:49:39,SHRM98132 +Fx02226,Mercedes,Camry,1995,Black,"675,388 miles","7296,212",Hybrid,Manual,Hybrid,SH49352,Son wide concern speech anything whatever society.,2022-08-04T13:49:07,2021-05-24T17:00:28,SHRM61538 +vS80603,Chevrolet,Elantra,2013,Brown,"886,827 miles","3453,499",I6,CVT,Electric,SH83960,Season evening position throw house world after.,2024-12-20T05:34:22,2024-03-19T18:57:18,SHRM16616 +aL06123,Honda,Model S,1981,Black,"608,026 miles","2356,488",I4,Manual,Hybrid,SH33198,Respond indicate budget expect step sort large look.,2020-10-04T06:53:03,2022-02-11T18:02:49,SHRM05095 +ml38698,Honda,3 Series,1971,White,"454,007 miles","5952,818",I6,Automatic,Hybrid,SH78311,Something left last summer fire may.,2023-01-29T15:46:21,2024-02-22T00:43:02,SHRM85338 +AX55170,Kia,A4,2017,Gray,"949,136 miles","3719,576",V6,Manual,Hybrid,SH24462,Until property floor major bag dog conference oil door quite.,2024-12-17T17:52:07,2022-06-27T01:50:05,SHRM60762 +EX83036,Chevrolet,Elantra,1979,Silver,"550,328 miles","3356,883",V6,CVT,Diesel,SH17175,Decade myself room mention reality quality if game computer single especially.,2024-11-04T07:39:33,2024-06-04T05:58:18,SHRM79043 +DV07789,Mercedes,Accord,1985,Yellow,"205,873 miles","9752,752",Electric,Manual,Diesel,SH41449,Them such require compare number really.,2022-04-13T15:15:12,2020-02-07T13:02:44,SHRM76563 +ww97861,Honda,Model S,1995,Yellow,"686,394 miles","8828,588",Hybrid,Automatic,Petrol,SH49687,Thing prove assume discuss course morning.,2023-02-20T14:38:26,2023-11-24T10:02:09,SHRM96540 +sg80887,Honda,Elantra,1992,Orange,"341,713 miles","8366,668",V6,Automatic,Diesel,SH23992,Per choice different mother know kid important why partner.,2021-10-21T06:14:37,2023-11-18T21:36:32,SHRM92013 +Ff94627,Ford,3 Series,1975,Silver,"042,192 miles","7649,883",V6,Manual,Petrol,SH59551,Loss rise reduce guy space structure ready half seven sort.,2020-11-03T21:27:05,2020-02-26T11:36:58,SHRM96540 +ZP38674,Kia,Accord,2000,Red,"849,032 miles","5999,352",V8,Automatic,Electric,SH54895,Skin standard manager her month quite woman color never.,2023-10-30T06:55:21,2024-03-07T16:12:21,SHRM36032 +Lj02922,Mercedes,Accord,2003,Yellow,"055,572 miles","9216,829",I4,Manual,Hybrid,SH33523,Site resource sort floor deal table police.,2023-01-04T21:16:54,2023-04-24T19:31:51,SHRM85338 +mb21308,Nissan,A4,1999,Brown,"342,549 miles","5675,785",I6,CVT,Diesel,SH65382,Capital say surface among set industry social easy.,2023-02-04T22:20:12,2021-10-22T15:01:40,SHRM96927 +Lr30196,Kia,A4,1996,Red,"549,004 miles","7709,323",V8,Manual,Petrol,SH80163,Take writer voice project building station sense.,2023-10-25T00:31:06,2021-06-16T18:48:40,SHRM19000 +vQ59230,Nissan,Elantra,2001,Red,"459,079 miles","8311,899",V8,CVT,Electric,SH71165,Plant test single tree shoulder offer we across model with off dinner.,2020-04-29T10:08:36,2025-01-11T01:43:15,SHRM64680 +zv92387,Mercedes,Elantra,2017,White,"761,864 miles","7513,823",I4,CVT,Diesel,SH54112,Point best adult stage attack tough per.,2023-11-30T14:19:37,2023-11-19T20:04:26,SHRM33387 +jE36554,Toyota,A4,1971,Black,"567,054 miles","7906,039",V8,CVT,Petrol,SH22600,Lay good shake day culture dog citizen.,2020-02-18T04:18:54,2021-09-26T00:22:24,SHRM48989 +wb88684,Chevrolet,Camry,1988,White,"641,356 miles","7521,508",V6,Manual,Electric,SH34335,Toward create collection attorney as big policy thus item.,2022-12-11T08:09:37,2022-11-16T13:36:38,SHRM10264 +tS61713,Toyota,Camry,1996,Orange,"826,141 miles","6818,962",V6,Automatic,Electric,SH47248,Best stuff include traditional while play.,2020-07-14T02:22:39,2022-01-13T01:50:34,SHRM21921 +dQ16465,Toyota,A4,1990,Brown,"806,657 miles","7047,913",I4,Automatic,Electric,SH03502,Hear mouth quality born whose mouth easy reason my create move girl product.,2021-11-29T21:43:04,2023-02-09T20:27:16,SHRM53675 +xc10298,Kia,Model S,1984,Blue,"259,442 miles","9775,684",I4,Automatic,Hybrid,SH48269,Ago environmental save bad accept federal necessary foreign order wait him future.,2020-04-16T07:01:28,2023-01-03T13:57:33,SHRM85786 +DU72347,Mercedes,Civic,1986,Black,"227,976 miles","6868,566",I4,Automatic,Petrol,SH83683,Debate camera never start realize see knowledge information maybe near whatever yes.,2020-02-08T03:35:20,2024-09-23T03:26:00,SHRM16616 +Ba81236,Ford,F-150,2009,White,"928,982 miles","6235,413",I6,Manual,Petrol,SH14531,Long number part job record these note argue audience ask question.,2021-01-23T20:07:29,2025-01-03T04:16:58,SHRM45822 +Cj58475,Mercedes,A4,2016,Yellow,"892,722 miles","2903,137",Electric,Automatic,Petrol,SH03134,Contain health worry growth themselves choose kitchen center with people as message follow.,2024-05-30T22:13:05,2023-07-21T19:04:39,SHRM10264 +pR99671,Kia,Soul,1984,Silver,"643,092 miles","5530,898",I6,Manual,Electric,SH09218,Effort surface cultural history reflect forward us argue develop difference his stage fine.,2023-07-23T15:41:08,2024-10-18T17:41:05,SHRM60762 +ck45868,BMW,Accord,1992,Red,"918,854 miles","4322,578",I4,CVT,Hybrid,SH20958,By future everyone value point ever situation six investment space.,2022-05-05T04:32:50,2020-02-25T02:02:58,SHRM97501 +Nl74031,Toyota,Elantra,2002,Silver,"372,729 miles","5952,245",V8,CVT,Diesel,SH61691,Away this imagine collection among include former fire remember adult financial.,2023-07-16T06:34:01,2022-01-18T08:43:24,SHRM45822 +Cw32375,Hyundai,Soul,2012,Yellow,"298,631 miles","4126,085",I6,Manual,Electric,SH52101,Learn reach blue character very admit positive work cultural stay.,2020-12-09T20:04:04,2022-04-27T11:19:45,SHRM06633 +ue51966,Kia,Camry,1981,Red,"399,326 miles","2502,603",V6,Manual,Hybrid,SH17882,Friend ready send market quickly statement product opportunity like myself cell event believe.,2020-04-14T04:08:25,2024-09-22T06:43:27,SHRM09690 +cv67613,Kia,Elantra,1972,Black,"571,280 miles","3543,671",Electric,Automatic,Electric,SH52148,Ten always attack and sing safe else should yourself discuss show tree maintain.,2025-01-15T09:40:17,2023-01-01T21:17:07,SHRM16616 +Kd43948,Kia,Soul,1991,White,"048,584 miles","7773,006",V8,Automatic,Diesel,SH75353,Past individual let beat church fill since business just should federal hospital.,2022-02-10T16:02:54,2023-10-14T00:07:11,SHRM61538 +PS86591,BMW,A4,2000,Blue,"036,558 miles","3349,108",I4,Automatic,Hybrid,SH63134,Particularly discover water process body fine method.,2020-07-24T14:34:30,2021-08-26T12:04:12,SHRM69497 +SK03965,Nissan,Soul,2017,Blue,"236,919 miles","8787,454",I6,Automatic,Electric,SH36778,Price work head week anyone tell authority successful growth exactly light.,2024-08-19T20:48:13,2021-05-27T18:34:42,SHRM99149 +yv84329,Hyundai,Soul,2007,Blue,"997,536 miles","4197,900",I6,Manual,Electric,SH68851,Yard she opportunity author experience travel fish father foot cultural man.,2023-07-01T22:08:14,2024-11-26T08:46:22,SHRM63916 +Kz03181,Nissan,Accord,1988,White,"104,297 miles","4786,572",Hybrid,Manual,Diesel,SH98092,Might push air brother say management ever vote animal he choose.,2022-04-21T18:10:15,2023-11-14T10:18:43,SHRM83284 +Bl35370,Kia,Soul,2021,Yellow,"990,883 miles","6074,324",I6,Manual,Electric,SH56095,Support after nothing power building owner industry choice read.,2021-04-10T19:22:33,2021-01-26T13:50:58,SHRM32006 +pu04394,Hyundai,Model S,2007,Yellow,"518,385 miles","3876,023",I4,Manual,Electric,SH29597,Blood manage such so color want.,2022-03-21T08:43:16,2023-11-27T22:07:29,SHRM80648 +tO36562,Kia,Accord,2006,Black,"600,735 miles","5112,879",V6,CVT,Hybrid,SH17484,Early model interest collection third determine might opportunity president we sit.,2023-01-01T09:36:40,2020-10-13T23:47:12,SHRM46991 +Qn12602,BMW,Golf,2003,Orange,"494,175 miles","3451,584",I6,Automatic,Hybrid,SH05622,Central official operation attack animal paper inside describe.,2020-04-23T04:42:45,2022-03-01T12:13:59,SHRM61538 +qd35063,Kia,Model S,1975,Black,"274,230 miles","6419,090",Hybrid,Manual,Diesel,SH35595,Why structure give after fast report sport everybody.,2024-11-25T12:42:22,2021-06-29T21:46:58,SHRM32173 +cL64749,Ford,F-150,2001,Brown,"918,856 miles","4866,118",V8,CVT,Diesel,SH41932,Civil total top quality here day indeed whether can expect.,2024-05-11T12:21:34,2021-11-24T06:52:46,SHRM46991 +qZ01963,Mercedes,3 Series,1972,Red,"639,861 miles","5039,936",I4,Manual,Electric,SH82802,Edge possible speech son edge great wife quickly.,2020-09-23T16:35:13,2020-07-15T17:51:13,SHRM65874 +En30556,Chevrolet,Soul,1974,Brown,"123,617 miles","2554,322",I4,Manual,Diesel,SH46414,Investment campaign land development practice because threat much pass peace still keep open.,2020-06-16T02:41:31,2024-07-28T03:38:29,SHRM40639 +dY22112,Kia,Model S,2013,Green,"509,011 miles","2592,289",I4,Manual,Diesel,SH84378,Gun major article TV before position let most area.,2022-12-26T07:18:44,2020-04-17T15:39:15,SHRM29303 +nx29805,Hyundai,Golf,2017,Brown,"365,493 miles","5169,230",Electric,Manual,Diesel,SH25939,Body standard current need religious who guess time.,2022-08-17T05:58:07,2021-12-26T10:55:48,SHRM56795 +wD62043,Nissan,Elantra,2015,Brown,"698,577 miles","9145,458",I6,Automatic,Diesel,SH23876,Possible land accept yet science friend budget air lot recently behavior finally across contain.,2020-05-17T13:50:58,2020-01-10T13:15:30,SHRM85786 +Fr88987,Chevrolet,Accord,2006,Green,"002,021 miles","2014,536",I4,Automatic,Petrol,SH62737,National section there shoulder space son network dog attack treat.,2023-06-11T17:18:22,2021-05-08T19:44:29,SHRM51457 +mo23136,Hyundai,Camry,1989,Black,"641,389 miles","4365,263",V8,Manual,Hybrid,SH42657,Happy song similar throughout avoid important building glass north establish see piece dinner.,2022-05-30T00:12:45,2024-02-03T16:55:13,SHRM48989 +BV08531,Nissan,F-150,1994,Green,"180,019 miles","5443,643",I6,CVT,Electric,SH81864,Officer where rich investment employee build citizen.,2022-11-15T01:59:32,2021-09-17T11:52:29,SHRM92013 +Tj98816,Kia,F-150,1994,Green,"044,789 miles","2704,604",I4,Manual,Hybrid,SH07513,To feeling data growth thing difficult yes part determine difficult.,2021-05-19T06:27:53,2021-11-10T18:33:52,SHRM20203 +yK52522,Honda,Elantra,1998,Orange,"844,238 miles","9127,593",Hybrid,Automatic,Diesel,SH49925,Sister kind career edge industry wind.,2023-01-16T11:29:19,2022-09-28T03:30:26,SHRM40639 +as89504,Toyota,Camry,1996,Yellow,"599,930 miles","6444,368",Hybrid,CVT,Diesel,SH10322,Movie specific front test this make.,2020-05-13T01:39:59,2021-05-15T05:02:17,SHRM40245 +eg44309,Kia,Soul,1983,Brown,"016,500 miles","3936,019",V6,Manual,Hybrid,SH27813,Television against tree expert democratic these skill improve last pass TV southern beat.,2022-01-23T19:58:23,2022-04-25T07:59:07,SHRM21921 +Qj59713,Ford,Civic,1998,Brown,"732,374 miles","9518,429",I6,CVT,Electric,SH68712,Identify human only strong cultural research range hand up.,2023-06-10T14:56:28,2023-06-25T01:18:12,SHRM61538 +wu58766,Nissan,Accord,1981,Silver,"467,192 miles","5760,077",Hybrid,CVT,Electric,SH43321,Phone air design child magazine training behind reduce why.,2022-04-27T22:00:55,2022-06-15T11:11:59,SHRM63916 +Ao78097,Honda,Soul,1985,Blue,"376,582 miles","2203,372",V6,Automatic,Petrol,SH74401,Candidate easy community you debate physical city care.,2021-09-12T20:52:44,2021-12-19T07:01:51,SHRM53675 +Zl10132,Nissan,Camry,2017,Green,"381,179 miles","9720,067",I6,Automatic,Diesel,SH26485,Site prepare natural child above day sit beautiful grow sort.,2023-01-24T16:23:29,2020-08-03T14:04:12,SHRM33068 +nI33519,Mercedes,Golf,2020,Red,"142,343 miles","5450,305",V8,Automatic,Hybrid,SH68945,Baby wonder report bad successful such fly letter.,2023-04-01T16:19:28,2020-02-06T02:26:47,SHRM72061 +Az30050,Nissan,Accord,1989,Gray,"736,380 miles","7539,973",Hybrid,CVT,Electric,SH68875,Imagine not whatever stage speech new beat feeling fear indicate million.,2025-01-17T17:03:03,2021-06-03T10:14:36,SHRM40043 +IE97123,Hyundai,Accord,1998,Gray,"488,169 miles","8619,034",Electric,Automatic,Diesel,SH63557,Final red hold parent themselves trial system machine between but.,2024-11-07T13:52:42,2024-10-07T02:54:59,SHRM86483 +rf59916,Kia,3 Series,2007,White,"943,269 miles","3767,951",Hybrid,Manual,Hybrid,SH30160,Onto approach case entire western behavior knowledge quite rise again.,2024-10-08T20:15:17,2020-10-31T18:59:33,SHRM63916 +IJ08602,Volkswagen,Camry,1996,Blue,"243,651 miles","5376,754",I4,Manual,Electric,SH86291,Their language detail friend fund likely.,2023-04-15T03:27:24,2025-01-18T00:45:36,SHRM56795 +OL17749,Mercedes,Civic,1983,Brown,"580,622 miles","6136,358",V6,Automatic,Petrol,SH31596,Cold experience tax letter wind trade section car claim agree bill.,2024-08-29T01:03:22,2020-06-01T04:28:42,SHRM83284 +hr28432,Chevrolet,Accord,2002,Blue,"784,285 miles","6628,718",I6,Automatic,Diesel,SH94300,Gun sing matter score cut exist set image after investment role.,2024-04-24T13:13:34,2022-07-17T03:42:23,SHRM40245 +Uy62831,Ford,Camry,1991,Silver,"020,807 miles","2239,301",V8,Automatic,Petrol,SH94883,Memory program sing boy author large imagine.,2024-05-31T08:13:32,2024-03-25T04:24:08,SHRM65147 +Za20399,Ford,Civic,2022,Orange,"288,145 miles","7401,701",I6,CVT,Hybrid,SH03951,Report draw political sister police they nice performance common tree.,2024-10-08T20:01:07,2020-03-30T07:26:31,SHRM63916 +xK96109,Honda,Civic,1988,Green,"074,524 miles","8557,326",I4,Manual,Petrol,SH49520,Least identify leave feel consumer land reflect avoid series mention they perhaps.,2021-11-17T12:14:26,2020-09-09T23:43:10,SHRM55232 +Ve22545,Mercedes,3 Series,2011,Orange,"256,175 miles","9814,741",V8,CVT,Electric,SH85119,Offer heart mind would relationship magazine probably thing evening.,2021-06-29T22:53:09,2023-02-10T15:19:56,SHRM97501 +iw87001,Chevrolet,Golf,2024,Brown,"901,841 miles","8960,413",I6,Automatic,Electric,SH10050,Near son better military box room plant material family wall.,2024-06-10T14:09:55,2023-02-05T19:21:56,SHRM01151 +jr85519,Hyundai,Model S,2022,Gray,"599,512 miles","7428,719",I6,CVT,Petrol,SH34257,Toward organization day already own wait ask within girl technology her record.,2022-05-16T12:48:37,2021-01-16T18:04:08,SHRM44307 +ZD17896,Toyota,Model S,1993,Blue,"300,466 miles","9262,895",I6,Manual,Electric,SH01355,Language across away answer report type blood.,2024-10-03T23:33:33,2023-03-20T23:30:36,SHRM51457 +lY56583,Ford,A4,2018,Red,"501,074 miles","8599,192",Electric,Automatic,Electric,SH37897,Down nation bad across two end north image stand.,2023-09-20T12:34:58,2023-05-20T08:04:17,SHRM45252 +Bj12620,Volkswagen,3 Series,1978,Black,"762,296 miles","8959,770",I4,Automatic,Electric,SH30804,Hit pull heart consumer tree light any.,2022-12-25T07:20:31,2024-05-31T07:49:15,SHRM61195 +nA85953,Ford,A4,2003,Red,"173,505 miles","6859,108",I4,CVT,Diesel,SH82226,Message box bank action because admit your score available.,2023-12-05T10:48:49,2022-11-02T21:06:49,SHRM74494 +tH64453,Kia,Golf,2000,Brown,"602,896 miles","4168,576",V8,Manual,Hybrid,SH30220,Source picture story society staff son.,2020-09-04T19:11:56,2022-02-15T15:21:14,SHRM96423 +in99898,Kia,Golf,1979,Brown,"659,770 miles","2205,967",Hybrid,Automatic,Diesel,SH83020,Lot idea down everyone race any say wonder resource remain where key.,2021-09-17T21:23:13,2020-04-13T23:33:56,SHRM48989 +Zj20059,Nissan,A4,2008,Red,"389,033 miles","5775,231",Electric,CVT,Diesel,SH36783,Boy trip evidence thus television senior.,2021-02-08T20:32:42,2023-07-08T13:35:08,SHRM68542 +PM47887,Kia,F-150,1975,White,"668,073 miles","5898,683",V8,Manual,Diesel,SH88415,Her floor treatment three film find walk.,2020-04-05T11:58:09,2023-05-18T05:15:04,SHRM09690 +sV09462,BMW,Elantra,1970,Yellow,"818,268 miles","5610,392",Hybrid,Manual,Hybrid,SH61418,Whether meet style mother chance TV former network dinner.,2020-04-06T08:22:30,2022-04-13T18:30:29,SHRM33068 +vh13425,Mercedes,Soul,2001,Red,"945,829 miles","6271,208",I6,Manual,Electric,SH49393,During man color body arrive by including wind school move.,2022-08-28T04:24:12,2021-03-29T21:32:30,SHRM99149 +ud43815,Mercedes,3 Series,2020,Orange,"002,845 miles","3545,012",Electric,Manual,Hybrid,SH35336,Assume high better act front group commercial fall follow today agent.,2022-05-12T23:55:42,2021-04-12T18:31:24,SHRM30726 +KV44443,BMW,Accord,2004,Red,"677,035 miles","4351,759",V8,Automatic,Diesel,SH13615,Edge value increase item run step worker.,2024-05-12T01:02:16,2024-09-14T00:20:07,SHRM79015 +wo83193,Honda,3 Series,2021,Brown,"312,180 miles","5490,057",Hybrid,Automatic,Electric,SH01135,Often approach manage close support house seven wait century age recognize company boy.,2023-09-17T04:31:48,2021-11-29T14:51:14,SHRM16616 +eC06357,Volkswagen,Model S,1993,Gray,"765,226 miles","4834,843",Electric,Manual,Hybrid,SH17034,Our specific all music poor available.,2021-06-13T08:18:50,2021-08-17T01:03:29,SHRM99149 +ZR18968,Kia,Camry,2009,White,"720,974 miles","3939,119",I4,Manual,Hybrid,SH12336,Free section these I others always.,2021-05-19T01:00:18,2021-07-06T07:48:46,SHRM68831 +Dl65403,Nissan,Soul,1973,White,"715,834 miles","3787,491",Hybrid,Automatic,Electric,SH52598,Half trouble low all exist stand why.,2020-04-25T05:56:29,2022-06-22T17:51:48,SHRM70777 +gd83977,Ford,Elantra,2005,Silver,"190,503 miles","9465,178",V6,CVT,Electric,SH57684,Model story or accept author increase natural school hot local actually better little.,2024-10-01T07:44:32,2021-05-11T15:01:59,SHRM72270 +GW84764,Honda,Model S,1977,Gray,"965,195 miles","4438,412",V6,Automatic,Electric,SH77541,Sport risk team arm face fight Mr coach school my.,2022-03-07T02:22:32,2020-02-22T17:19:31,SHRM58052 +Sc83262,Volkswagen,Model S,2021,Gray,"875,728 miles","5927,005",I4,Automatic,Petrol,SH09387,Everybody forget write down true look billion far.,2022-04-09T23:37:30,2024-09-30T19:16:07,SHRM81940 +Xn08818,Volkswagen,3 Series,2014,Green,"935,022 miles","7411,923",I4,CVT,Diesel,SH47580,Economic walk attack anyone material big home kitchen billion especially fish serve.,2024-12-23T09:14:41,2024-10-03T06:37:09,SHRM57464 +gV82329,Ford,A4,1978,Black,"536,082 miles","5578,011",V8,Automatic,Diesel,SH87634,Discuss southern present tell agent need.,2020-06-29T21:28:14,2023-07-17T09:31:25,SHRM56795 +Mg84717,Kia,Model S,1991,Blue,"760,361 miles","7664,516",V6,CVT,Petrol,SH66485,Show tonight minute involve point activity.,2025-01-13T20:44:29,2020-12-11T08:07:27,SHRM40639 +vJ20894,Kia,Model S,1980,Blue,"924,183 miles","9634,439",Hybrid,Manual,Diesel,SH58149,Build class whole develop provide media action goal collection trip.,2024-05-19T07:11:10,2024-09-11T20:14:05,SHRM72270 +VY32277,Toyota,Elantra,2019,Red,"983,774 miles","3723,536",I4,CVT,Hybrid,SH07011,Carry big huge radio mother to sell rate add market box.,2022-11-07T03:37:04,2021-04-19T16:27:09,SHRM33387 +yq10838,Toyota,Camry,2007,Silver,"861,220 miles","2673,312",I4,Manual,Diesel,SH10509,Manager appear federal industry standard feeling already even feeling though high within throughout.,2022-01-09T10:06:06,2022-02-14T17:11:41,SHRM12392 +BN84101,Mercedes,F-150,1975,White,"436,883 miles","8862,855",Electric,Manual,Hybrid,SH64371,We couple through tell and ago likely camera main force save.,2021-04-06T22:53:30,2023-03-01T13:27:16,SHRM66167 +OG93173,Mercedes,Golf,1983,Silver,"176,857 miles","2360,710",I4,Automatic,Electric,SH44015,Design become hair authority condition somebody recent.,2023-12-07T18:23:37,2023-08-21T21:58:16,SHRM32713 +cN05717,Volkswagen,Elantra,2016,Red,"089,424 miles","9749,544",V8,Automatic,Petrol,SH94550,Least side miss strategy blue behavior third prepare once.,2020-08-16T21:22:58,2021-12-04T16:12:14,SHRM96927 +Zv60518,Mercedes,Golf,2018,White,"277,028 miles","8640,492",I6,Automatic,Petrol,SH40580,Responsibility policy not born continue stop protect practice land.,2024-08-06T03:43:09,2024-07-06T23:09:03,SHRM78570 +Qj58590,Volkswagen,Golf,1990,Green,"208,125 miles","7617,385",I4,Automatic,Hybrid,SH33486,North could live other better eye data take coach individual economy show.,2024-01-25T18:04:25,2023-12-10T20:38:14,SHRM82317 +xM96216,Mercedes,Camry,2004,Black,"375,471 miles","8541,887",V6,Manual,Petrol,SH06859,Charge single population do available since feeling draw.,2020-08-25T06:44:50,2022-03-25T16:00:42,SHRM48672 +Sh13165,Nissan,Soul,1992,Green,"383,946 miles","2822,414",Electric,Automatic,Electric,SH05643,Such concern edge including Republican miss draw dog research reason hand.,2024-02-07T04:12:50,2024-11-25T04:01:39,SHRM85338 +pI12386,Chevrolet,Elantra,2006,Gray,"251,255 miles","4441,887",V8,Automatic,Petrol,SH11094,Bank process check event box country lose hear raise example fire data.,2021-09-12T11:10:43,2021-03-23T00:14:42,SHRM91035 +un59395,BMW,Elantra,1985,White,"616,824 miles","2594,387",I6,Automatic,Diesel,SH87926,Begin media ten matter sing change space institution already fish want sort can.,2020-05-02T17:07:16,2022-09-05T12:28:17,SHRM80648 +wh24278,Volkswagen,Soul,1997,White,"377,597 miles","2761,574",Hybrid,Automatic,Petrol,SH07433,Investment nothing term president evidence how ground my attention need far team.,2024-10-09T14:40:25,2021-07-20T16:21:54,SHRM77296 +NS08442,Mercedes,A4,1977,Red,"603,234 miles","3002,596",Hybrid,Automatic,Hybrid,SH58430,Race evidence cold amount perform analysis laugh hope.,2023-12-18T09:08:48,2020-02-04T03:40:02,SHRM65147 +Oi68740,BMW,A4,1998,Blue,"004,755 miles","6194,538",V6,Manual,Diesel,SH36539,Listen surface pass rise film within instead reduce before between spend talk.,2023-02-14T16:04:18,2020-11-15T07:49:06,SHRM05095 +rF60063,Honda,Camry,2024,Brown,"064,165 miles","7070,223",I6,Manual,Hybrid,SH75643,College full matter strong book exist could anything there participant person environment culture.,2022-11-14T18:23:30,2022-02-06T13:34:15,SHRM51457 +um10257,Ford,Camry,2020,Gray,"119,628 miles","5592,381",I4,Automatic,Electric,SH01780,Image today beat red establish impact friend series goal air lose mother letter.,2021-09-20T18:59:52,2020-11-20T22:45:50,SHRM97744 +TH79016,Honda,Camry,1996,Red,"476,262 miles","2256,848",V8,Automatic,Hybrid,SH43344,Ok military page claim different nearly remain herself during because color performance course.,2020-12-13T13:19:53,2023-04-03T20:23:54,SHRM97309 +ut65851,Chevrolet,Civic,2002,Black,"915,531 miles","3894,714",I6,Manual,Hybrid,SH22379,Way these evidence street protect voice direction accept.,2024-09-05T05:01:18,2021-06-19T02:21:12,SHRM96540 +tk73417,BMW,F-150,2023,Green,"238,490 miles","4903,597",I4,Automatic,Electric,SH81988,At front authority year investment son reduce bank still resource degree.,2021-12-24T10:39:45,2021-08-26T07:00:13,SHRM55232 +uW05441,Volkswagen,Camry,1972,Brown,"940,217 miles","4840,882",V6,CVT,Hybrid,SH48339,Make risk model source task nearly later fact near sport keep item TV race.,2020-06-17T09:41:44,2022-03-24T02:09:37,SHRM99149 +Ng57036,BMW,F-150,1984,Orange,"109,497 miles","8882,693",I4,Manual,Diesel,SH41351,Again field our various choice often lose pass.,2020-12-22T00:27:59,2023-04-13T18:19:44,SHRM62517 +Ou95115,Ford,Elantra,1975,Brown,"010,417 miles","6435,040",V6,Manual,Hybrid,SH73819,Imagine cost area health ability message against site senior never whatever turn specific.,2021-03-24T20:42:44,2023-01-25T10:18:31,SHRM62517 +Sh91158,Volkswagen,Elantra,1974,White,"003,915 miles","9247,391",I6,Automatic,Electric,SH95077,Stop total rise anyone accept life husband meet describe near perhaps.,2020-05-18T10:29:37,2022-02-06T22:30:49,SHRM68831 +tM63135,Kia,3 Series,2014,Blue,"063,084 miles","2626,612",V6,CVT,Petrol,SH48200,News onto write certain look break piece reality behavior.,2023-03-20T09:53:15,2023-12-25T16:42:13,SHRM83284 +TV31897,Nissan,F-150,2022,Gray,"495,809 miles","7261,997",I4,CVT,Diesel,SH72193,Pm wife low relationship city much Democrat.,2022-05-10T22:40:54,2023-07-05T11:49:03,SHRM33068 +Eb95445,Mercedes,Model S,1988,Red,"869,590 miles","8799,753",V8,Automatic,Petrol,SH53086,Research begin mind health environmental range huge wind enjoy reality garden investment.,2022-07-01T22:49:21,2023-06-30T01:29:10,SHRM59804 +Gi13269,Chevrolet,Civic,1997,Blue,"775,330 miles","7153,564",I4,Automatic,Petrol,SH47780,Benefit police popular own give boy before quickly.,2022-12-30T19:27:45,2020-07-24T13:29:58,SHRM65202 +eC76259,Nissan,A4,1986,Yellow,"615,261 miles","2881,101",I6,Automatic,Hybrid,SH03241,Then my our generation mother up product actually.,2024-05-27T23:11:52,2022-10-31T13:54:19,SHRM40043 +gU94128,Nissan,3 Series,1998,Orange,"034,610 miles","8279,650",Electric,CVT,Diesel,SH69582,Produce law establish treatment positive traditional go enter yeah answer standard.,2023-08-09T01:01:00,2023-02-15T20:29:19,SHRM33669 +lf65993,Hyundai,Model S,1973,Blue,"740,764 miles","2198,430",V6,Automatic,Diesel,SH03961,Around chance medical serve cover technology.,2021-01-16T20:12:48,2020-04-21T12:21:19,SHRM33387 +Rn83767,Nissan,Camry,2018,Gray,"613,834 miles","6925,355",V8,Manual,Diesel,SH12728,Remember force speech our north threat see financial.,2021-07-22T23:37:06,2022-02-26T07:45:14,SHRM05095 +bi83267,BMW,Camry,2013,Blue,"601,666 miles","7923,656",V6,Manual,Diesel,SH16054,Become project will good official American new take really which couple system.,2021-04-02T18:50:58,2021-04-01T12:50:40,SHRM97501 +jX85315,Kia,A4,2014,Yellow,"539,786 miles","7878,354",V8,Manual,Diesel,SH77840,Space develop wall black size that dog imagine.,2024-06-30T10:02:18,2021-01-10T08:18:54,SHRM62517 +tF68366,Chevrolet,Soul,2020,Yellow,"059,595 miles","3412,346",V8,CVT,Electric,SH56261,Stage edge goal especially life argue.,2022-07-26T05:55:44,2020-02-23T21:33:46,SHRM33387 +FC53543,Toyota,A4,1982,Black,"461,151 miles","5362,742",I6,Automatic,Diesel,SH72829,Less area political until weight clear when meeting voice popular technology.,2025-01-05T15:11:13,2020-02-29T16:10:34,SHRM32173 +Gu99882,Nissan,Accord,1986,Black,"702,822 miles","7937,589",V6,Automatic,Hybrid,SH78980,Real store single we nor task politics major early small part.,2024-01-26T01:35:26,2023-07-22T10:03:29,SHRM33387 +pX18904,Kia,Accord,1996,Blue,"177,618 miles","2932,498",Electric,Manual,Diesel,SH19868,Industry develop away when fly success wife arrive show buy short.,2022-01-06T02:03:55,2024-03-30T11:42:58,SHRM97744 +II73050,Toyota,3 Series,1986,Yellow,"923,412 miles","9691,574",I4,Manual,Hybrid,SH47903,Listen listen itself somebody in gas special.,2020-10-12T22:57:50,2021-06-28T13:19:12,SHRM32713 +Ei87226,Ford,Camry,1981,Orange,"735,240 miles","4214,037",V8,Automatic,Hybrid,SH57826,Front main man scientist majority north know sign south.,2023-05-23T12:13:48,2022-12-10T23:44:00,SHRM21115 +QQ40205,Volkswagen,Accord,2022,Gray,"342,385 miles","6322,549",I6,Manual,Diesel,SH56591,Imagine student become mission experience door challenge always far sit above.,2021-06-12T03:15:14,2024-06-15T11:41:30,SHRM57464 +xb60286,Chevrolet,Elantra,1980,Orange,"605,660 miles","2479,587",Hybrid,CVT,Diesel,SH04079,Save them page step current kid natural discuss unit difference mind field.,2024-03-10T20:42:07,2024-11-25T04:14:22,SHRM72061 +cn84075,BMW,A4,2014,Brown,"436,500 miles","6720,946",Electric,Automatic,Petrol,SH74023,Vote religious while get cultural tough save.,2023-01-25T14:30:32,2022-05-29T18:01:40,SHRM85786 +Je30813,Honda,F-150,1995,Silver,"072,105 miles","6352,821",Electric,CVT,Petrol,SH37139,International sometimes care local successful size others loss toward.,2022-10-18T22:23:11,2022-04-18T05:42:17,SHRM98132 +iJ21402,Mercedes,Civic,1973,Blue,"949,188 miles","8464,778",Hybrid,Manual,Electric,SH46097,Throughout law performance middle security election suggest loss writer either side teacher beat.,2024-11-27T12:49:37,2023-10-10T06:24:04,SHRM58052 +vi44067,Nissan,A4,1997,White,"511,693 miles","6143,368",V6,CVT,Hybrid,SH06181,Decision make reason voice call positive blood how according than up among serve.,2020-01-03T09:59:23,2023-05-10T17:40:25,SHRM63916 +AJ36108,Hyundai,Civic,1974,Black,"774,898 miles","2902,446",Electric,Automatic,Diesel,SH21763,Window present everybody difference although same car nearly maybe deep stock.,2022-09-20T09:00:01,2022-03-23T14:52:41,SHRM36719 +yN06299,Hyundai,F-150,1974,Gray,"318,240 miles","2705,865",Hybrid,Manual,Diesel,SH86552,Blue kind assume improve than hold fear week day sing physical already follow.,2020-07-10T04:13:15,2024-01-30T10:14:29,SHRM78528 +Ku14212,Ford,3 Series,1989,Yellow,"271,195 miles","6661,880",V8,CVT,Electric,SH19789,Ball industry third various country late send right two value sign office born leader.,2022-10-08T05:43:10,2020-03-01T08:39:34,SHRM61195 +QI68560,Kia,Accord,1984,Black,"937,499 miles","6384,571",V8,Manual,Electric,SH47337,Environmental boy low gun TV perhaps movie raise research.,2020-12-12T09:38:36,2023-06-03T10:56:02,SHRM32713 +LK90429,BMW,Soul,1980,Orange,"501,423 miles","4544,737",Electric,CVT,Electric,SH07921,Mean action want wife happen weight final rock more.,2024-07-12T18:03:07,2020-03-26T10:53:46,SHRM65147 +Ii52201,Hyundai,F-150,2009,Yellow,"758,485 miles","6588,677",V8,Manual,Hybrid,SH47791,Money face defense decide important program statement.,2023-04-07T17:18:40,2021-09-05T03:51:59,SHRM97309 +OQ19156,Toyota,Soul,1994,Yellow,"418,514 miles","8397,065",Hybrid,CVT,Petrol,SH46966,History exist goal billion consider give bring site culture yes billion down.,2021-01-31T14:58:48,2021-10-14T22:48:03,SHRM05095 +gB78778,Kia,Model S,1977,Silver,"414,142 miles","3891,662",V6,Automatic,Electric,SH19178,Leader shake large within take account.,2021-09-09T11:00:06,2024-11-05T16:48:01,SHRM48989 +jG82743,Mercedes,Golf,2002,Blue,"712,027 miles","2992,518",I4,Manual,Petrol,SH49883,Mind their its certain carry color focus place.,2023-08-06T11:01:42,2024-08-17T19:52:24,SHRM82965 +NP87156,Chevrolet,Camry,1974,Yellow,"082,974 miles","2036,226",V8,Automatic,Hybrid,SH18863,Item can next security star too computer never manager agreement stage.,2021-11-16T22:43:01,2023-11-26T00:44:22,SHRM45252 +tR35939,Volkswagen,Golf,2007,Yellow,"268,606 miles","4351,082",V6,Automatic,Hybrid,SH95759,Edge use machine employee can natural.,2023-12-05T12:00:44,2024-12-17T05:19:27,SHRM32903 +xh40168,Ford,3 Series,2018,Yellow,"460,054 miles","9256,716",V6,Manual,Diesel,SH01412,Yes fly them which there in white million.,2024-05-14T19:02:50,2023-10-07T23:00:22,SHRM96927 +eh08291,BMW,Golf,2006,Yellow,"268,302 miles","3717,016",V6,CVT,Electric,SH65411,Contain according capital produce hundred will group force plan.,2023-02-01T19:56:23,2021-09-16T22:37:58,SHRM55232 +sL16585,Kia,Civic,1983,Red,"586,968 miles","4251,834",V6,Automatic,Electric,SH66447,Interesting last act tell hotel Democrat ask.,2021-11-02T03:56:13,2022-08-28T23:32:27,SHRM21115 +wH82831,Ford,Camry,2002,Orange,"136,873 miles","8097,553",V8,CVT,Electric,SH84594,New treat important open official society century day sometimes produce kind drop herself.,2025-01-10T07:41:45,2020-05-26T04:49:45,SHRM77296 +ZN12247,Volkswagen,Camry,2008,Green,"584,140 miles","2976,575",Hybrid,Automatic,Electric,SH21303,Tough bed skin material indicate nor she explain teach example walk best under.,2024-04-12T03:04:03,2023-07-07T17:37:40,SHRM51457 +iA08683,Toyota,F-150,2012,Brown,"638,392 miles","7505,672",V8,Automatic,Petrol,SH05768,Throughout however whether somebody audience resource daughter or worker coach call way.,2020-08-24T03:54:03,2024-09-28T07:08:10,SHRM10507 +nI84798,Hyundai,Camry,2001,Yellow,"804,707 miles","8844,507",Hybrid,Manual,Hybrid,SH22922,Again particularly history lead treat majority remember.,2022-10-09T21:59:37,2021-01-09T08:36:51,SHRM62517 +mi27307,Volkswagen,Civic,2005,White,"211,271 miles","3664,047",V8,Automatic,Petrol,SH90022,History box she number strong street low.,2021-08-08T07:01:01,2021-05-04T00:16:21,SHRM53675 +oA67931,Chevrolet,Golf,2004,Black,"282,270 miles","8612,494",V6,Manual,Hybrid,SH13117,And last win miss discussion big.,2024-08-07T22:22:26,2020-07-30T06:06:35,SHRM40639 +jf16945,Toyota,Golf,1983,Silver,"357,251 miles","5438,132",Hybrid,Manual,Hybrid,SH99231,Win admit center professor tough become type view generation.,2021-10-08T00:53:07,2024-03-31T08:24:17,SHRM79043 +vc99789,Hyundai,Golf,1978,Brown,"459,183 miles","7309,338",Electric,CVT,Petrol,SH88513,Anything act Democrat eat yet dark leader daughter box final various between result.,2024-10-04T08:22:10,2020-10-31T03:23:07,SHRM20203 +zt55694,Mercedes,Elantra,2021,Brown,"623,824 miles","6229,837",Hybrid,Automatic,Petrol,SH92873,Century actually just nation respond low wind they religious.,2024-02-05T02:56:54,2024-10-23T02:03:56,SHRM14642 +dz25541,Mercedes,Civic,1972,Silver,"844,697 miles","7487,686",Electric,Manual,Hybrid,SH60027,Maybe media write toward always always member but political.,2021-01-19T01:24:48,2023-10-04T13:11:32,SHRM51457 +ub69721,Kia,F-150,1999,Black,"444,552 miles","5102,601",Electric,CVT,Petrol,SH37343,Behavior major discover ready generation machine threat.,2023-05-06T08:46:10,2020-05-04T09:56:06,SHRM97501 +gW04723,Hyundai,A4,2006,Red,"900,844 miles","7623,507",Hybrid,CVT,Electric,SH20764,Debate inside even fall series attorney both about smile character what.,2023-08-03T04:07:17,2022-09-05T12:33:02,SHRM68542 +UT99991,Ford,Model S,1990,Green,"352,598 miles","4204,200",Hybrid,Automatic,Diesel,SH52756,Season more mouth baby crime pressure evidence government room shoulder personal different rate.,2024-05-12T20:16:52,2022-09-27T13:28:18,SHRM33387 +QI18468,Volkswagen,Civic,1993,Red,"789,427 miles","6825,265",Hybrid,Automatic,Diesel,SH03095,Light center explain during page rate affect.,2021-10-17T15:02:13,2021-04-14T19:59:00,SHRM40043 +ia81503,BMW,Elantra,1989,White,"667,669 miles","3942,404",Hybrid,Automatic,Diesel,SH66890,Value history record teacher performance behind by believe girl.,2020-07-23T02:21:58,2023-09-21T20:30:07,SHRM36719 +rw44829,Nissan,A4,2019,Green,"605,230 miles","4609,139",I6,Manual,Diesel,SH66350,Stage if talk bed able friend ready community.,2023-09-20T03:54:12,2021-11-11T19:34:16,SHRM85786 +RA35737,Honda,3 Series,2002,Black,"674,502 miles","5952,513",I4,Manual,Diesel,SH55414,Recently southern break miss no rule course suffer religious part use.,2025-01-02T10:06:25,2024-08-20T22:04:04,SHRM42852 +jV49094,Kia,Accord,1991,Red,"057,693 miles","8200,033",I4,Manual,Petrol,SH57479,Each cost rest leg wall happy office.,2023-02-15T08:19:35,2024-05-12T03:45:58,SHRM29303 +MA85595,Hyundai,3 Series,1985,Yellow,"828,885 miles","3909,887",Hybrid,CVT,Diesel,SH44421,Toward subject year two food ten experience base away way happen reach through.,2024-01-31T14:28:02,2020-07-03T17:43:26,SHRM32173 +cR85389,Mercedes,A4,2021,Black,"405,664 miles","8884,816",V6,Manual,Hybrid,SH04255,Then catch design also see happen as serve group note simple health.,2023-01-22T08:38:45,2021-04-23T11:14:10,SHRM05095 +qm59356,Honda,Civic,1996,Brown,"977,759 miles","3476,338",Hybrid,CVT,Hybrid,SH23245,Manage history because for matter condition everyone own war through however.,2022-04-05T03:50:23,2024-02-22T09:52:15,SHRM05095 +Sb65388,Honda,Golf,2014,White,"477,054 miles","2533,891",V8,Manual,Petrol,SH86007,Recent difficult measure final five system north shake community keep future.,2024-05-11T04:56:20,2021-05-16T00:52:46,SHRM21921 +iJ02000,Nissan,Camry,2017,Silver,"929,850 miles","2099,705",V8,Manual,Diesel,SH97498,Admit herself street hair family stock officer really cup way.,2023-12-05T18:46:16,2023-10-30T11:43:49,SHRM36032 +DV67046,Hyundai,Civic,1976,White,"762,166 miles","5520,214",I4,Manual,Hybrid,SH32640,Apply material owner fall line deal natural value experience popular street find.,2020-03-09T01:22:15,2024-04-11T14:53:17,SHRM79015 +DD58289,Toyota,Camry,1976,Silver,"196,796 miles","5261,664",V8,CVT,Petrol,SH04695,Effect call serve environment during possible together here moment impact.,2023-04-02T15:06:09,2024-12-17T23:45:43,SHRM97309 +Kr17120,Toyota,Camry,1979,Orange,"796,094 miles","8120,810",V6,Automatic,Diesel,SH80459,North thank firm rate still brother smile painting ability rock into nearly difficult.,2024-08-31T05:09:05,2021-08-30T19:53:13,SHRM76563 +Cr67802,BMW,Elantra,2013,Gray,"299,090 miles","6500,434",V8,CVT,Electric,SH67600,Again so discussion hair national far we star.,2021-08-21T00:12:26,2024-04-12T17:51:19,SHRM79015 +QB95744,Toyota,F-150,1996,Blue,"573,524 miles","2707,185",I4,CVT,Hybrid,SH64799,Tonight without stock today will marriage suffer.,2024-06-01T20:06:11,2024-08-28T05:25:29,SHRM45252 +Oo54632,Toyota,Civic,2021,Red,"530,837 miles","8724,525",V6,CVT,Diesel,SH41385,Cultural responsibility positive team debate land cost available citizen discover now.,2024-06-17T12:23:23,2021-05-29T07:41:33,SHRM48672 +zA01529,Nissan,3 Series,2008,White,"067,351 miles","3188,241",V8,Manual,Electric,SH93238,Write small nearly shoulder already suddenly chair reason respond.,2024-04-27T04:50:43,2021-05-08T00:52:26,SHRM40043 +Cu37182,Nissan,Soul,1985,Brown,"406,741 miles","3920,085",I6,Manual,Petrol,SH03299,Staff crime knowledge trouble rest campaign might man one point able there.,2023-11-23T18:59:41,2025-01-09T19:27:40,SHRM96540 +GE28878,Hyundai,Model S,1974,Green,"850,242 miles","5124,494",I6,Manual,Petrol,SH78357,Owner now project practice there easy wait leg find name.,2021-07-22T21:07:03,2022-04-01T22:56:07,SHRM05095 +cl67578,Toyota,Golf,1976,Silver,"491,294 miles","7278,587",Electric,Automatic,Hybrid,SH74667,Hope threat hold or sign care along student.,2021-08-28T23:45:29,2025-01-17T23:06:11,SHRM66167 +ks20822,Volkswagen,3 Series,2001,Orange,"497,558 miles","9612,266",I4,Automatic,Petrol,SH96378,Perhaps before detail how chance it take thus improve economic how feel.,2024-09-06T06:39:48,2020-06-03T20:57:14,SHRM96927 +zk66293,Chevrolet,F-150,1993,Blue,"709,563 miles","9635,942",V8,CVT,Petrol,SH89944,Run church business can approach plan leave firm tree compare place challenge.,2023-11-19T22:30:17,2024-01-28T16:25:47,SHRM36032 +ll95539,Kia,Camry,1984,White,"957,903 miles","5428,624",V8,CVT,Diesel,SH33040,Note church table think maybe benefit continue all two major western such candidate.,2023-10-17T11:26:45,2020-11-22T22:24:47,SHRM36032 +YK83182,Toyota,Model S,1987,Brown,"224,806 miles","8784,761",V8,Automatic,Hybrid,SH22779,Amount while safe effect through up eat.,2021-05-30T05:59:44,2022-06-02T17:42:35,SHRM79015 +Tw11992,Mercedes,Soul,2005,Brown,"553,172 miles","7005,343",I4,CVT,Hybrid,SH70115,Partner question someone often often accept rock television until best property seem between right.,2020-08-29T15:28:30,2023-10-07T07:47:17,SHRM18797 +KA26845,Toyota,Golf,2021,Black,"692,170 miles","6770,618",Hybrid,Manual,Hybrid,SH44636,Stand southern theory probably respond organization field wind customer property that across.,2022-07-31T10:03:01,2023-10-09T23:55:03,SHRM01151 +EM84470,Ford,Soul,2001,Brown,"653,213 miles","3237,938",V6,Automatic,Hybrid,SH83576,Officer way bit difficult hundred few partner data realize cause hand organization.,2020-11-08T15:48:44,2021-04-14T11:59:12,SHRM85338 +Jf72467,Mercedes,A4,2013,Orange,"648,690 miles","2410,186",Hybrid,Automatic,Diesel,SH47395,Magazine understand kid listen hope culture Congress put.,2024-11-12T11:59:33,2023-04-04T00:30:43,SHRM48989 +eU18173,Kia,Model S,1989,Gray,"609,207 miles","8387,289",V8,CVT,Hybrid,SH56228,Number owner protect dream have page certain study leader fine Republican accept second.,2024-06-29T17:58:27,2022-05-31T14:52:52,SHRM66167 +FR88298,Kia,Golf,1991,White,"333,717 miles","3010,132",V6,Manual,Hybrid,SH15854,Television upon Democrat peace debate floor address man in occur guess mission race.,2022-05-01T08:36:11,2022-01-17T17:25:30,SHRM21921 +xi86558,Mercedes,A4,1988,White,"804,549 miles","2111,209",Hybrid,CVT,Electric,SH67255,Why tell adult go produce wide open.,2023-10-13T19:58:55,2023-03-05T03:31:59,SHRM31233 +ct12021,Nissan,Civic,1978,Brown,"771,728 miles","5553,124",I6,Manual,Hybrid,SH50377,Mother field drop research south late.,2024-06-23T11:51:02,2024-09-29T07:34:54,SHRM45128 +oN38414,Mercedes,Elantra,1993,Brown,"546,744 miles","9643,734",Hybrid,CVT,Electric,SH79916,Century test site start land might environment before.,2022-09-09T15:00:12,2020-12-09T00:38:10,SHRM01151 +Gf52130,Ford,Camry,1985,Yellow,"577,215 miles","4715,758",V6,CVT,Hybrid,SH59241,Security consider speak discover radio also artist report suddenly bill.,2021-02-12T07:07:03,2022-10-24T02:40:20,SHRM98132 +CC10333,Kia,Elantra,1979,Brown,"594,507 miles","3364,067",Electric,Automatic,Hybrid,SH42067,Past mind benefit join inside hospital security year.,2020-02-25T20:42:59,2020-02-08T16:24:33,SHRM20203 +wu34350,Kia,F-150,2013,Black,"725,256 miles","7757,712",Electric,Manual,Diesel,SH62111,Author affect around until goal newspaper the.,2022-06-25T03:32:42,2020-06-05T14:17:00,SHRM86483 +fc69507,Nissan,Golf,1991,Black,"921,068 miles","3811,262",V8,CVT,Hybrid,SH53305,Rest morning attack everything before their.,2021-04-15T09:33:36,2022-05-15T00:04:13,SHRM45822 +HR73261,Mercedes,3 Series,2023,Red,"211,881 miles","2102,453",I6,CVT,Diesel,SH00620,Between whole available away body argue attorney black though I send of.,2022-01-28T04:22:20,2022-08-10T23:41:04,SHRM21115 +CX90404,Toyota,3 Series,1992,Black,"496,347 miles","4805,278",Electric,Automatic,Diesel,SH41044,Certainly eight face me anything occur scientist pay amount choice himself.,2024-12-06T18:04:09,2020-08-24T00:57:47,SHRM48989 +nV44164,Volkswagen,F-150,1999,Silver,"243,005 miles","9386,963",V6,Manual,Hybrid,SH79222,Garden leave economic black environmental off thousand scientist budget seat.,2024-03-04T09:45:31,2021-09-30T06:49:25,SHRM32903 +rq51417,Mercedes,3 Series,2000,Green,"524,644 miles","8383,050",V6,CVT,Hybrid,SH60449,Why shoulder positive drug such job high state.,2020-11-12T10:23:16,2022-03-09T20:10:34,SHRM36719 +UL71624,Toyota,3 Series,2017,Orange,"024,177 miles","5433,709",I6,Manual,Diesel,SH78079,Style your fill leader eye week Congress today.,2020-01-21T01:42:06,2021-02-17T10:00:18,SHRM63916 +kz69067,Honda,Model S,1992,Red,"818,046 miles","4407,370",I6,Automatic,Petrol,SH22663,Hair in front financial entire character thing writer late manage.,2021-04-25T23:15:32,2023-08-18T04:28:45,SHRM76563 +ya49807,Toyota,Golf,1996,Black,"463,031 miles","2052,337",Electric,CVT,Diesel,SH25119,Particular one officer second recently group crime design wrong both during base.,2021-01-26T16:39:47,2023-08-30T14:00:36,SHRM46991 +RP12017,Honda,Soul,1980,Gray,"433,333 miles","4865,882",I6,CVT,Diesel,SH24604,Marriage campaign situation present who similar a compare score keep participant together.,2023-01-02T11:25:53,2024-07-17T10:28:56,SHRM97309 +LD49124,BMW,Golf,2017,Silver,"464,826 miles","9207,151",V8,CVT,Diesel,SH99106,Letter call want ever same coach performance a similar despite.,2022-08-22T20:42:30,2024-01-11T00:01:37,SHRM33669 +JZ33641,Kia,Soul,1971,Black,"553,771 miles","5008,220",I4,Automatic,Petrol,SH14500,Table house drop friend official stuff dark.,2022-09-16T12:22:43,2022-02-09T17:29:58,SHRM42852 +gO23452,Ford,Golf,2024,Red,"695,441 miles","6528,721",V6,CVT,Hybrid,SH44905,Mention better quickly for those world mean central.,2022-08-19T04:02:16,2021-07-18T01:31:09,SHRM72270 +xE91004,Ford,Elantra,2005,Red,"231,368 miles","3434,481",I4,CVT,Petrol,SH70011,Board easy to part third nice run from.,2023-07-30T15:24:30,2020-04-26T13:22:17,SHRM97309 +PL80924,Kia,F-150,2018,Black,"907,767 miles","7529,033",V6,Automatic,Electric,SH90956,Mother start many situation common work certain heart ready major.,2022-05-01T00:49:45,2023-06-25T09:11:58,SHRM91035 +Nv43485,Ford,Model S,1973,Orange,"635,368 miles","9086,551",V8,Manual,Diesel,SH74182,Manage else maintain environment beyond green.,2022-12-11T18:54:19,2022-11-29T20:31:05,SHRM72270 +SC62403,Mercedes,Model S,2013,Gray,"911,342 miles","2958,575",V6,Automatic,Electric,SH43424,Benefit talk reduce hand military those value growth red four per.,2020-11-05T05:36:49,2023-03-26T01:59:38,SHRM32006 +tW10072,Ford,Model S,1989,Silver,"991,945 miles","8396,145",Hybrid,Automatic,Petrol,SH09319,Cover short people computer article raise most.,2021-10-24T08:32:37,2024-05-28T15:44:50,SHRM45822 +Hj52877,Toyota,Civic,2010,Black,"657,625 miles","3987,495",I4,CVT,Hybrid,SH20598,System house stock lay security range blue them lot avoid once do of.,2022-09-28T05:38:32,2021-05-31T19:15:09,SHRM40043 +AJ33410,Volkswagen,Civic,2000,Blue,"026,102 miles","3439,457",Hybrid,CVT,Hybrid,SH11939,Character travel prevent success forward medical keep our for book ground activity.,2020-01-30T10:18:54,2022-10-14T08:26:44,SHRM77296 +kI07532,Volkswagen,Golf,1989,Black,"314,694 miles","5404,656",V8,Manual,Hybrid,SH09752,Treat charge meeting parent my own camera with run born hotel leg can door.,2020-08-25T22:40:26,2023-10-14T19:41:42,SHRM66167 +Hk14539,Honda,Civic,1996,Black,"582,787 miles","3203,157",V8,CVT,Electric,SH15876,Note relationship employee big call parent push.,2022-11-24T23:34:50,2020-11-26T11:23:01,SHRM18797 +Lz42379,Chevrolet,Civic,1995,Orange,"422,869 miles","4791,780",Hybrid,CVT,Petrol,SH78499,Month hotel majority future recently economic community mention.,2023-10-21T16:44:16,2024-06-14T02:18:34,SHRM30726 +id57646,Toyota,Camry,1983,Yellow,"106,426 miles","3065,770",V6,Manual,Electric,SH55955,Education word shoulder far middle toward coach mention management this.,2021-05-19T04:05:20,2024-08-08T02:21:23,SHRM99149 +HP92558,Nissan,Model S,1991,Gray,"796,421 miles","9642,547",I4,Automatic,Petrol,SH75752,Girl out end over she white market across all gun worry pull letter.,2024-05-14T12:02:42,2023-01-13T12:59:27,SHRM77296 +tW74032,Chevrolet,Camry,1974,Brown,"040,553 miles","3570,328",V6,Automatic,Petrol,SH95503,Method environment message gas fish left economy appear by a care decide.,2020-11-22T22:37:41,2024-09-14T17:03:35,SHRM20203 +nl38785,Volkswagen,Golf,1981,Black,"320,323 miles","7276,946",I4,Automatic,Electric,SH78333,Country him someone whatever and bring.,2021-06-29T11:36:17,2020-10-22T23:44:43,SHRM30726 +bG52903,Toyota,Soul,1987,Green,"717,222 miles","8275,417",V8,Automatic,Hybrid,SH59195,Fly thank you nor every administration provide official American.,2025-01-18T04:41:52,2024-04-05T08:59:20,SHRM59804 +lr89820,Toyota,Camry,2010,Black,"710,644 miles","4278,083",I6,CVT,Petrol,SH66334,None street state Mr real store owner.,2021-04-13T10:29:15,2021-05-19T10:58:16,SHRM30726 +UX05040,Toyota,3 Series,1989,Brown,"598,626 miles","9667,682",I6,CVT,Electric,SH18103,Add hot direction necessary save close take media.,2020-11-03T23:32:40,2021-12-06T15:08:00,SHRM45252 +UF49289,Toyota,Golf,2011,Yellow,"886,229 miles","4283,700",Hybrid,CVT,Electric,SH82020,Animal run particularly eye its first peace.,2022-05-05T23:42:32,2024-08-05T05:23:01,SHRM30726 +PJ80144,Toyota,Accord,2012,Silver,"780,624 miles","3687,646",I4,Manual,Hybrid,SH62389,Amount suffer discuss administration course manager live single training support.,2020-07-18T07:50:16,2021-01-27T07:14:53,SHRM68831 +DW72263,Kia,A4,1983,Yellow,"461,074 miles","7227,956",I4,Automatic,Hybrid,SH18708,Per feeling community member never machine specific.,2021-04-01T08:02:59,2020-04-04T04:25:46,SHRM42852 +TN88441,Chevrolet,Camry,2002,Yellow,"718,728 miles","4313,144",V8,Manual,Diesel,SH95884,Recognize young mean trip either yourself relationship dark rich your agent decide provide.,2022-10-07T19:46:04,2020-04-07T15:48:47,SHRM53675 +ak85560,Toyota,A4,1994,Brown,"085,584 miles","2145,305",Electric,Manual,Petrol,SH58248,Provide seem cultural foot sure let need sing away beyond.,2020-02-29T14:45:46,2022-12-21T16:10:12,SHRM72061 +OJ81178,Ford,Model S,1985,White,"331,710 miles","6393,601",Hybrid,Manual,Diesel,SH95170,Land add range example development consumer data option country born statement view shoulder.,2024-07-31T05:34:06,2024-04-01T15:15:41,SHRM56795 +wu96009,Hyundai,Accord,2001,Brown,"863,008 miles","4655,710",V8,Manual,Diesel,SH42952,Couple outside blood yes from down middle point.,2023-06-16T21:29:48,2023-03-16T09:34:07,SHRM68831 +Uc55063,Hyundai,F-150,2009,White,"512,333 miles","4802,262",I4,Automatic,Electric,SH55985,Including push next edge successful way attention.,2020-11-19T20:12:12,2022-04-20T09:42:07,SHRM63916 +uG61565,Honda,Elantra,1976,Gray,"157,774 miles","4458,760",Electric,Automatic,Hybrid,SH56756,Pull concern hand along money subject recognize be better around service also.,2024-12-31T12:31:30,2022-06-29T14:18:29,SHRM97501 +sP74643,Nissan,F-150,2002,Blue,"521,653 miles","3205,020",Electric,Automatic,Diesel,SH08381,Whole carry civil film everyone discover report prevent day woman if more out hear.,2021-04-30T08:50:55,2023-05-03T03:38:29,SHRM42433 +Gq51356,Kia,Soul,1980,Blue,"101,225 miles","3819,461",I4,CVT,Electric,SH41621,Next season arrive poor increase hit piece economy movie.,2020-10-16T07:04:23,2021-09-14T18:03:31,SHRM16616 +Mj59619,BMW,Golf,1990,Silver,"098,106 miles","4129,224",V8,Manual,Hybrid,SH63800,Audience to ground among act consider movement.,2022-05-08T20:25:28,2022-02-08T04:08:08,SHRM69497 +Iy91829,Mercedes,A4,2002,White,"194,739 miles","5497,904",I4,Manual,Electric,SH03830,Coach kind sea assume space read director daughter.,2023-08-16T04:39:53,2021-11-25T21:04:19,SHRM42852 +Xs47432,Mercedes,Golf,1995,Yellow,"750,383 miles","6507,539",Hybrid,CVT,Electric,SH62136,Call Mrs however allow under address sport.,2023-07-17T23:12:59,2024-03-31T05:49:30,SHRM32713 +Ak12606,Kia,Golf,2003,Silver,"958,625 miles","4465,353",Electric,CVT,Hybrid,SH50892,Well program wall federal wonder money statement ever that.,2023-02-14T16:15:29,2024-06-18T19:53:05,SHRM42433 +PO52087,Honda,Soul,1995,Orange,"729,028 miles","8102,493",V6,Manual,Diesel,SH14882,Out hit home modern girl use bank hundred ground believe.,2022-07-25T06:25:29,2020-12-03T05:24:37,SHRM96927 +FR50089,Hyundai,Camry,1999,Orange,"550,960 miles","9224,954",Hybrid,Automatic,Petrol,SH66884,Significant work condition fly knowledge hour throughout be must relate exactly deal dinner indeed.,2020-02-08T19:55:41,2022-07-27T18:59:47,SHRM76563 +le40802,BMW,Golf,1976,Blue,"872,931 miles","6313,872",I6,CVT,Diesel,SH30450,Big article campaign your bill Mr final.,2022-04-25T21:15:19,2022-04-29T18:28:48,SHRM45252 +Ih56991,Ford,Accord,2017,Silver,"612,502 miles","7815,357",V8,Manual,Diesel,SH13257,Growth occur share sing responsibility start protect charge child approach.,2023-07-26T23:37:42,2020-05-29T11:24:18,SHRM92013 +Tw60685,Honda,Soul,2010,Red,"349,182 miles","3536,459",Hybrid,CVT,Petrol,SH74762,Us ok talk organization wide dream move important blue author guy statement.,2020-05-06T02:00:23,2023-08-14T18:09:24,SHRM40043 +hx65904,Ford,Accord,2000,Orange,"485,360 miles","8506,107",Hybrid,Automatic,Hybrid,SH03277,Share second already local center career wife deep role field.,2020-06-27T12:40:42,2020-09-04T04:59:06,SHRM75661 +Ki13039,Volkswagen,Civic,1996,Gray,"322,342 miles","9865,362",I4,Manual,Petrol,SH44572,Animal natural by pretty ok best require maybe expect father current food expert.,2024-07-04T00:11:11,2021-08-07T10:59:54,SHRM85786 +Mf27380,Ford,Model S,2003,Orange,"507,393 miles","9897,960",I4,Automatic,Hybrid,SH04240,Measure get free rock her determine stay himself start family back.,2020-09-01T19:56:16,2021-10-18T18:47:26,SHRM31233 +sQ45925,Chevrolet,3 Series,1979,Red,"200,785 miles","8026,120",Hybrid,Manual,Electric,SH88720,Herself money focus audience very list piece the Republican.,2020-10-15T07:51:50,2023-01-16T12:51:24,SHRM48989 +ds75966,Chevrolet,3 Series,2024,Brown,"420,311 miles","5890,591",V6,Manual,Electric,SH58295,Still certainly radio hospital place left prevent at great voice himself morning heart.,2020-01-20T13:09:23,2022-08-16T15:14:07,SHRM33387 +pm54572,Volkswagen,A4,2009,Green,"847,483 miles","6131,924",V6,CVT,Electric,SH50059,Worker over bed bring offer must decision record task word.,2021-02-23T22:03:54,2023-05-22T22:36:52,SHRM57073 +CY36131,Kia,3 Series,1975,Yellow,"569,234 miles","7287,397",I4,Automatic,Petrol,SH01436,Doctor million explain cut eye draw lawyer travel allow.,2021-02-26T06:18:35,2021-07-17T22:02:09,SHRM86483 +dD26772,Toyota,Model S,1976,Brown,"359,444 miles","5854,405",Hybrid,Manual,Diesel,SH79412,Hear interesting police run process between realize special attack site show billion discuss.,2023-09-04T20:30:45,2021-08-03T00:10:25,SHRM96927 +WZ76267,Chevrolet,3 Series,1970,Yellow,"002,764 miles","2098,495",I4,Manual,Electric,SH77381,Yes military mouth quickly term if good large allow people pass similar.,2024-01-12T09:52:58,2021-04-01T04:18:55,SHRM84636 +wb62371,Toyota,Golf,2012,Orange,"440,173 miles","5857,934",V6,Manual,Hybrid,SH61860,Public Republican finish close among wind identify movie military free will most.,2024-08-01T12:49:24,2020-10-19T02:32:34,SHRM46991 +np81419,Honda,F-150,2009,Brown,"663,802 miles","4802,652",V6,CVT,Electric,SH72021,Conference training why both whose set eye society.,2021-08-10T09:45:38,2023-03-12T23:05:13,SHRM32713 +LR74597,Honda,Camry,2007,Yellow,"704,891 miles","5153,669",I4,Automatic,Electric,SH08116,Purpose fall defense order little draw space simply.,2021-03-30T17:20:31,2022-03-11T14:56:52,SHRM72061 +or98660,Kia,F-150,2011,Blue,"208,205 miles","9982,220",Electric,CVT,Hybrid,SH83605,Talk west fact cell admit today consider rich let buy character discuss.,2022-07-18T01:27:12,2022-10-23T11:02:34,SHRM05095 +fN56461,BMW,F-150,1996,Black,"850,607 miles","3802,242",I4,CVT,Diesel,SH58620,Rock card after resource away establish national service have stock.,2022-01-11T12:39:25,2023-06-25T11:50:46,SHRM76563 +Kz39825,Hyundai,Model S,1970,Silver,"689,227 miles","4553,934",V8,Manual,Hybrid,SH80345,Third worry show change owner camera least plan job authority member.,2023-07-31T06:40:15,2023-05-03T00:55:27,SHRM60762 +RF44147,Chevrolet,A4,1997,Green,"697,951 miles","3930,544",Hybrid,Manual,Electric,SH80266,Sometimes yard recently walk when door them contain their value make.,2021-06-25T23:16:29,2024-02-16T13:45:34,SHRM06633 +et82872,Honda,3 Series,2010,Red,"044,831 miles","2465,491",V8,Manual,Electric,SH50167,Economy want job consumer clear break yet news step.,2021-09-22T10:08:55,2021-08-26T07:36:13,SHRM44307 +Zq01911,Volkswagen,3 Series,2012,Yellow,"760,213 miles","5710,546",Electric,CVT,Diesel,SH75338,Training when perform coach gas conference total base.,2023-11-17T13:47:04,2022-12-18T17:30:25,SHRM56795 +yf89881,Kia,Accord,1988,Blue,"548,211 miles","6554,118",I6,Manual,Diesel,SH22492,Maybe conference live into popular style team way.,2022-11-09T11:05:34,2022-07-22T17:33:00,SHRM79015 +fq80628,Chevrolet,F-150,2010,Blue,"658,581 miles","3941,986",V6,CVT,Diesel,SH01297,Author mind stuff assume page bad race able another explain recent.,2024-11-18T11:52:07,2022-11-17T10:19:02,SHRM45822 +xX17930,Toyota,Elantra,2012,Gray,"270,999 miles","6342,350",Hybrid,Manual,Electric,SH84829,Candidate there must I performance site only.,2020-11-10T01:08:40,2021-04-04T00:06:11,SHRM32713 +Ln90408,Nissan,Civic,2014,Blue,"900,429 miles","5776,830",V6,Manual,Petrol,SH12265,Might wrong page fact rule land who reduce able despite before check.,2023-01-04T11:40:59,2023-06-02T19:06:12,SHRM68831 +KX27518,Kia,F-150,1995,Red,"194,379 miles","5882,057",V8,CVT,Hybrid,SH13181,Special stock series push much force financial increase must.,2022-10-11T10:57:50,2024-04-22T22:02:28,SHRM40639 +CD98287,Nissan,Golf,2021,Orange,"093,177 miles","3194,429",V6,Manual,Hybrid,SH05010,Management deep student cut do ground food whether office treat magazine bring project.,2020-02-03T15:01:32,2020-09-05T06:08:44,SHRM42433 +pz72853,Ford,Model S,1974,White,"694,842 miles","5945,030",V6,Automatic,Petrol,SH41924,Nearly single recognize decision responsibility word goal force sit break worker.,2020-12-15T14:50:24,2024-04-26T23:10:30,SHRM91035 +Wc51144,Honda,Camry,1994,White,"638,138 miles","3056,698",Electric,CVT,Diesel,SH65027,Within help southern during whom authority.,2024-04-27T21:12:39,2020-06-16T03:58:07,SHRM97309 +Nj94011,Kia,Model S,1980,Brown,"095,611 miles","4785,843",Electric,CVT,Diesel,SH52806,Question design population fast remember quickly.,2021-11-27T03:59:28,2024-07-27T17:49:07,SHRM09690 +sf69139,Toyota,Civic,1989,Yellow,"924,882 miles","6320,868",Hybrid,Automatic,Petrol,SH20550,Team buy once network statement address game.,2024-03-31T10:25:47,2020-02-11T11:42:08,SHRM63916 +wB87330,Volkswagen,Golf,2000,Orange,"000,294 miles","4531,442",I6,CVT,Diesel,SH11703,Back speech side type letter early movie quickly wear.,2021-02-16T22:01:36,2023-09-12T04:01:58,SHRM33387 +tK28347,Kia,Accord,1979,Black,"747,960 miles","8508,664",V6,Manual,Diesel,SH14972,Both relate require mouth tax these marriage.,2022-05-19T05:32:16,2021-04-14T20:46:17,SHRM31233 +zH31307,Nissan,Soul,2002,Green,"428,449 miles","4313,420",I6,CVT,Electric,SH63173,Federal attention property dog reveal piece analysis recognize office save local eat join.,2020-11-08T02:35:21,2024-06-06T18:18:39,SHRM42852 +Hb82026,BMW,F-150,2002,Black,"131,024 miles","6133,758",Hybrid,Manual,Petrol,SH40428,Arrive after newspaper deep network name why bar one.,2021-07-29T00:51:13,2024-08-07T19:54:10,SHRM60762 +Ch67348,Nissan,3 Series,2008,Gray,"494,205 miles","4203,041",I6,CVT,Electric,SH91342,Natural especially respond half one then high lay.,2022-11-10T02:59:39,2024-11-27T23:46:29,SHRM65874 +MN03881,Toyota,Accord,1974,White,"448,588 miles","6198,057",Electric,Manual,Hybrid,SH05574,After remember among eat agreement director build senior side imagine wind.,2022-03-09T08:53:25,2025-01-20T08:20:53,SHRM33387 +WE63837,BMW,Elantra,2017,Gray,"415,463 miles","7421,279",Hybrid,Manual,Hybrid,SH65098,Scientist certain consumer out television door contain range our clearly.,2024-09-22T04:02:56,2020-03-28T22:39:19,SHRM46991 +hj56962,BMW,Accord,1991,Red,"231,672 miles","3422,320",I6,Automatic,Electric,SH63165,Long year least true life low easy beyond owner.,2022-03-30T11:51:05,2024-11-23T22:43:44,SHRM53675 +XP62675,Mercedes,Soul,1985,Brown,"660,385 miles","3053,947",Electric,Manual,Hybrid,SH99487,Among ago but individual charge lose agree student forget prevent none wait.,2023-02-12T12:56:16,2020-04-09T13:53:31,SHRM33387 +io08747,Mercedes,Civic,1997,Silver,"396,814 miles","2529,893",Hybrid,Automatic,Petrol,SH70079,Myself nature concern each visit according nation local black sign free plant relate.,2020-12-06T12:04:18,2023-12-15T16:46:49,SHRM96927 +EM20364,Chevrolet,Accord,2011,Brown,"677,265 miles","3869,584",Hybrid,Automatic,Petrol,SH00856,Magazine plan sell about bad approach measure chance same as rise add.,2020-12-31T10:00:17,2020-12-04T02:57:54,SHRM40245 +kY42960,Chevrolet,Civic,2014,Blue,"132,462 miles","8666,254",Electric,Automatic,Petrol,SH37137,Article tell remain various future hot effect blue college join would military.,2022-08-03T14:25:48,2020-05-01T21:07:57,SHRM05095 +sg36226,Nissan,Model S,1977,White,"849,843 miles","3096,925",Hybrid,CVT,Electric,SH26654,Financial stage culture side nearly whom common.,2024-03-30T19:01:49,2022-11-18T11:56:02,SHRM64680 +rg92440,Toyota,F-150,1974,Black,"053,554 miles","2941,920",I6,CVT,Hybrid,SH02107,Five six book include imagine save certain catch eat eat buy maintain.,2024-08-08T15:23:34,2021-11-23T16:17:22,SHRM05095 +MC99247,Volkswagen,Golf,2000,Red,"796,508 miles","9168,609",V8,Automatic,Hybrid,SH61009,Green air poor rule risk follow radio care.,2022-05-17T19:35:58,2020-08-17T10:53:05,SHRM33387 +BC28940,Toyota,Elantra,1986,Yellow,"802,222 miles","4822,480",I6,Manual,Diesel,SH22100,System follow detail final view improve hope team mission.,2022-02-28T17:34:05,2022-11-06T12:24:35,SHRM80648 +Ht18499,Nissan,Golf,2005,Red,"832,055 miles","6601,202",Hybrid,Manual,Hybrid,SH25996,Minute him dark every character find player vote myself kid four.,2023-03-28T18:45:22,2021-10-09T14:35:16,SHRM62517 +MB70808,Chevrolet,F-150,2020,Yellow,"483,255 miles","6336,949",V6,Automatic,Hybrid,SH19547,In not sister suddenly middle smile discover management no exist ready majority represent.,2023-10-24T13:07:06,2024-04-08T01:59:32,SHRM68831 +JL82339,Kia,F-150,1973,Orange,"128,193 miles","3244,637",Electric,Manual,Petrol,SH11633,Race most its a reduce also ever food present travel cover hot.,2022-02-28T07:34:40,2024-04-28T19:52:16,SHRM20203 +ch14525,BMW,Camry,1988,Green,"517,144 miles","8400,947",Hybrid,CVT,Electric,SH91799,Lay above bit final benefit green against despite say huge shake.,2021-03-09T09:01:54,2024-02-11T21:29:17,SHRM42433 +mc23449,Toyota,Soul,1999,Green,"952,102 miles","5856,493",I6,CVT,Diesel,SH84244,Company chance mother although away child operation.,2024-10-26T06:57:03,2023-08-22T21:31:03,SHRM80648 +le41856,Kia,A4,2022,Blue,"040,310 miles","3635,644",V8,Automatic,Diesel,SH07334,Laugh would despite hit quickly present.,2024-09-10T04:54:47,2023-03-01T07:22:07,SHRM09690 +Du91764,Mercedes,A4,2009,Green,"589,332 miles","4306,666",I4,Automatic,Petrol,SH06241,Manager yeah moment reality thought ball report house probably age.,2022-10-18T19:33:35,2022-03-04T23:01:31,SHRM40639 +pg74393,Nissan,Soul,1987,White,"830,059 miles","8395,643",Hybrid,Manual,Electric,SH25343,Trade better player station create senior.,2020-03-09T00:31:28,2021-02-03T23:54:44,SHRM57073 +bx92371,Chevrolet,Civic,1985,Blue,"523,464 miles","5454,414",I4,CVT,Hybrid,SH01232,Stay center your recent more factor network radio why.,2024-11-13T01:25:46,2024-02-03T14:07:38,SHRM36032 +oY19752,Toyota,Model S,1975,Silver,"751,485 miles","5061,427",V6,Manual,Hybrid,SH15092,Paper stay player note former significant international certainly national plan shake western play.,2020-03-21T21:22:35,2021-03-31T01:53:02,SHRM99149 +aU23666,BMW,Golf,1996,Black,"961,480 miles","6105,170",I6,CVT,Electric,SH25810,Smile job war play foreign child part consider allow.,2021-08-25T22:39:06,2022-04-25T07:47:15,SHRM69497 +bD22990,Ford,Accord,1977,Silver,"408,969 miles","9535,493",Electric,CVT,Hybrid,SH45630,Follow plant enough have read service effort air know writer name none yourself building.,2023-08-02T03:53:58,2022-03-10T19:39:25,SHRM62517 +Cx75109,Toyota,A4,1978,Brown,"992,919 miles","6163,764",V8,CVT,Diesel,SH33373,Mind role Mrs social include person choose what.,2023-11-22T00:21:35,2022-10-30T15:55:01,SHRM97501 +sf72394,Ford,F-150,2022,Silver,"844,528 miles","9720,399",I4,Manual,Hybrid,SH62139,Until give order ahead movie election deep away.,2023-11-09T08:21:37,2023-12-15T22:21:26,SHRM97309 +Wk74839,Hyundai,Civic,2023,Red,"215,461 miles","7633,947",Hybrid,CVT,Electric,SH55604,Provide probably under mother fear agent cover believe visit former sense.,2021-03-24T12:36:42,2024-04-05T16:14:49,SHRM36719 +II57037,Chevrolet,Soul,2020,White,"542,636 miles","3391,675",I4,Manual,Diesel,SH14029,Medical management game power early can open current drop minute.,2022-05-08T22:13:28,2020-09-27T22:40:36,SHRM96927 +ek65361,BMW,Golf,1982,Red,"045,667 miles","2572,314",Hybrid,Automatic,Hybrid,SH44787,Trial parent yet member art conference can effect stuff your nation.,2023-07-14T03:31:17,2023-07-27T22:09:23,SHRM56795 +el67264,Kia,Model S,1971,Red,"232,560 miles","7834,395",Electric,Manual,Electric,SH19032,Majority how want traditional blue main evidence item article.,2022-09-02T09:41:30,2022-05-11T01:40:25,SHRM69497 +gD34061,Mercedes,Accord,1990,Black,"829,978 miles","5840,059",V8,CVT,Diesel,SH25690,Hour lot event above difference put.,2023-09-27T07:46:45,2024-03-28T08:37:14,SHRM44307 +MJ05409,Volkswagen,Golf,1997,Brown,"001,020 miles","8364,457",V6,Automatic,Diesel,SH52827,Else trade agency color year security leg operation professional sound during decision drug.,2021-10-18T21:22:05,2023-07-27T03:07:21,SHRM33387 +uP90610,Toyota,A4,1975,Yellow,"956,356 miles","5121,819",V6,Manual,Petrol,SH45201,All summer kind what fund medical open address almost six easy.,2024-07-20T20:59:09,2020-10-04T20:24:42,SHRM40639 +Bz48489,Nissan,Civic,1973,Orange,"373,108 miles","7667,942",Electric,Automatic,Diesel,SH34378,Idea about board design he election.,2020-06-18T01:35:03,2021-12-24T04:01:30,SHRM91035 +WC00613,Mercedes,Elantra,1993,White,"619,647 miles","6694,640",I4,CVT,Petrol,SH44801,Suddenly sell when member respond she manage.,2021-07-05T20:52:22,2023-10-13T18:21:17,SHRM83284 +oQ87344,Toyota,F-150,1981,Black,"170,246 miles","9629,366",V6,Manual,Electric,SH49606,Ground boy summer arm go national industry but view get garden pull general simply.,2020-10-25T13:41:03,2022-01-30T21:27:34,SHRM19000 +Wf65689,Chevrolet,F-150,2006,Black,"019,299 miles","7862,838",Electric,Manual,Hybrid,SH29071,Trial report green effort weight research truth activity most successful ahead test enough.,2023-07-09T17:29:38,2024-03-25T05:13:16,SHRM30726 +kH02584,Nissan,Golf,1981,White,"417,306 miles","4900,741",V6,Manual,Diesel,SH41687,Offer whom central section least suddenly among born line join surface already move.,2023-09-16T18:52:04,2022-08-23T21:02:27,SHRM85786 +XR72126,BMW,A4,2016,Red,"603,546 miles","5296,560",V6,CVT,Petrol,SH98007,Partner appear blood president why individual pretty station decade method here above ground.,2023-08-11T05:15:33,2021-06-09T10:51:01,SHRM58052 +LX82298,Toyota,Golf,2010,Black,"991,230 miles","4376,056",V6,Manual,Hybrid,SH62443,Western consumer follow however staff own heavy happen sure probably money.,2020-04-15T08:51:36,2022-03-24T21:39:35,SHRM78570 +Up54179,Toyota,Elantra,2003,White,"249,742 miles","5072,147",I6,CVT,Diesel,SH84647,Entire win program share record mention outside democratic I student during main.,2024-10-26T15:17:13,2020-03-30T22:30:15,SHRM60762 +Jx76415,Honda,Model S,1980,Silver,"397,506 miles","2592,378",Electric,CVT,Electric,SH57679,Per its somebody song could pick or challenge case by interest opportunity.,2023-02-11T22:38:19,2024-02-14T23:50:41,SHRM48672 +qG63496,Nissan,F-150,1989,Red,"305,131 miles","5795,351",I4,Manual,Hybrid,SH19331,Statement suggest religious blue early success hard wait success amount.,2022-09-10T00:51:43,2023-03-25T09:20:56,SHRM48989 +dJ71851,Nissan,F-150,2016,Red,"290,451 miles","3624,912",Hybrid,CVT,Petrol,SH92843,Beyond support doctor treat like their.,2024-12-28T07:51:53,2023-01-01T15:30:46,SHRM33387 +Nw12485,Toyota,Soul,2012,Red,"740,360 miles","4269,525",Hybrid,Manual,Petrol,SH23366,Land feel tree owner adult later full time within true building specific many.,2022-09-26T09:48:20,2020-02-01T21:17:22,SHRM57073 +WK49099,Chevrolet,A4,1986,Orange,"063,266 miles","5512,290",V6,CVT,Hybrid,SH82362,Want administration price bed never usually room by over way prove.,2024-02-10T18:00:15,2024-01-15T08:33:09,SHRM42433 +RB04072,Chevrolet,Camry,2017,Yellow,"863,317 miles","7876,557",I6,Manual,Hybrid,SH12447,Coach any myself he hold rich not add purpose reduce suggest.,2021-09-09T11:58:18,2024-10-12T05:37:34,SHRM97501 +uu69275,Hyundai,Soul,1991,Orange,"061,366 miles","5468,030",Hybrid,CVT,Hybrid,SH72690,Result provide chair compare land whole.,2021-08-28T17:01:46,2023-11-12T05:17:04,SHRM46991 +zn69952,Toyota,Civic,1998,Green,"229,432 miles","9081,430",V6,Automatic,Diesel,SH59610,Leg meet amount country result health.,2024-01-02T20:03:39,2021-06-28T16:54:07,SHRM91035 +hR09044,Hyundai,Elantra,1992,Black,"712,711 miles","4266,958",V6,Automatic,Hybrid,SH41323,Century behind easy factor fire beat cell other five well account street.,2021-03-01T21:09:35,2024-10-15T14:52:30,SHRM55232 +Yk47286,Hyundai,A4,2022,Red,"953,070 miles","3186,215",V8,CVT,Petrol,SH36372,Wear establish their parent there lay.,2023-08-02T05:04:22,2020-03-03T09:12:31,SHRM16616 +rg96475,BMW,Model S,1999,Blue,"977,015 miles","4469,190",Electric,CVT,Hybrid,SH73320,Two someone design produce member study author.,2023-05-31T18:20:21,2023-04-25T00:32:09,SHRM61538 +ol67619,Mercedes,Elantra,2001,White,"902,282 miles","9259,935",V8,Manual,Hybrid,SH30762,Check clear compare office day green bag in through number act.,2020-04-28T11:37:07,2022-10-22T15:12:19,SHRM09690 +NU89781,Mercedes,Golf,1994,Gray,"066,909 miles","5112,878",I4,Automatic,Hybrid,SH63262,General ever degree opportunity central religious.,2022-01-24T02:30:29,2020-02-03T20:20:06,SHRM64680 +Rw92172,Nissan,Accord,1987,Black,"452,270 miles","6307,018",I4,Manual,Petrol,SH66561,Impact too wait ahead away son several act part read money case assume.,2022-01-16T20:21:36,2022-10-23T23:53:39,SHRM16616 +FK36271,Nissan,A4,1987,Black,"206,130 miles","5324,407",Hybrid,Manual,Diesel,SH02431,Matter name cup whatever stuff soon.,2024-09-01T15:15:25,2024-12-03T04:36:27,SHRM21696 +aR95773,Toyota,3 Series,2021,Red,"109,437 miles","3259,635",Hybrid,Automatic,Hybrid,SH21643,Happen over side win receive maybe hot very listen.,2020-10-14T03:08:49,2021-12-11T02:52:26,SHRM40245 +NW81942,Chevrolet,F-150,1992,Red,"909,454 miles","9728,152",I6,CVT,Hybrid,SH73023,Total different loss bad fact ask.,2024-03-19T23:36:31,2024-06-14T23:51:44,SHRM79043 +QQ93167,Toyota,A4,2011,Red,"834,626 miles","2793,764",V6,CVT,Electric,SH82385,Even environment than factor similar anything but record sit.,2022-04-25T12:00:37,2021-05-31T16:16:45,SHRM84636 +Bh91428,Chevrolet,A4,2024,Silver,"356,363 miles","3633,271",Hybrid,Manual,Diesel,SH77559,Next message begin else fish security environmental situation follow civil.,2021-08-03T23:02:46,2022-07-31T13:05:32,SHRM56795 +Js22033,Nissan,A4,2006,Black,"918,238 miles","2662,375",Hybrid,CVT,Petrol,SH16872,Professional agreement assume company member hand allow.,2023-10-23T20:38:25,2020-09-12T13:40:17,SHRM20203 +gs87661,Mercedes,Civic,1996,Red,"407,149 miles","5948,540",Hybrid,Manual,Petrol,SH12423,Tax agent order read month talk simple likely financial defense low artist early.,2023-06-10T03:53:00,2021-12-19T09:30:20,SHRM36719 +Bd70708,Toyota,Camry,1982,Black,"391,112 miles","8398,034",V6,Manual,Petrol,SH63991,Huge laugh son occur soon state general night great.,2020-04-13T20:48:30,2020-03-15T18:09:27,SHRM10507 +Ee49050,Nissan,A4,1971,Gray,"982,887 miles","3448,544",Hybrid,Manual,Hybrid,SH00379,Before person majority remember itself such quite.,2024-07-05T23:05:52,2021-12-02T15:29:12,SHRM81940 +xt58863,Mercedes,Accord,1996,Blue,"169,126 miles","5578,386",I6,Manual,Electric,SH52257,Major wrong return audience agreement before leg rather arm health agree.,2023-06-01T15:40:41,2023-12-18T23:19:18,SHRM14642 +xC98488,Kia,Elantra,1996,Yellow,"544,065 miles","9087,987",V6,Manual,Electric,SH82543,Best sure run event author war soon animal major act cup nor.,2024-08-27T22:15:24,2024-10-11T03:33:18,SHRM58052 +FY57465,Ford,F-150,2022,Black,"206,334 miles","6493,921",I6,Automatic,Diesel,SH27372,Even ask economic respond establish local industry describe land natural.,2020-06-11T13:19:00,2024-06-05T18:00:01,SHRM78570 +Nv20935,Nissan,Civic,1977,Yellow,"902,850 miles","7840,669",I6,CVT,Hybrid,SH12057,Bed big professional few tough admit feel rather expect claim.,2021-08-12T22:51:05,2024-03-24T06:13:10,SHRM32713 +pl95108,Chevrolet,3 Series,1999,Black,"464,415 miles","4798,112",V8,CVT,Electric,SH33365,Sometimes believe throw wrong always wife as serve style seven.,2024-08-18T19:19:20,2024-07-31T13:00:00,SHRM97744 +fD54923,Honda,3 Series,1975,Green,"236,649 miles","2271,194",V8,CVT,Diesel,SH81397,Family third risk dark when affect talk strategy professional heart letter foot listen test.,2020-11-29T11:29:53,2021-12-28T15:45:41,SHRM60762 +Kj86100,Volkswagen,Accord,2000,Blue,"433,395 miles","3015,379",V6,Manual,Hybrid,SH21583,Change free represent term issue vote recent term water green or successful tonight.,2020-01-17T20:59:13,2020-10-19T21:54:18,SHRM53675 +xv34231,Kia,Model S,1978,Yellow,"976,844 miles","3180,468",V6,Automatic,Diesel,SH45499,Avoid game space help program ten.,2020-08-02T09:06:25,2021-03-10T16:51:36,SHRM40245 +fb45192,Honda,Soul,2003,Blue,"555,825 miles","2374,434",I4,CVT,Diesel,SH04412,General almost attorney account hair at thing base single.,2022-06-27T22:16:00,2020-06-30T05:06:48,SHRM83284 +qO23674,Toyota,Civic,1995,Blue,"043,386 miles","7730,844",V8,CVT,Hybrid,SH85007,Health baby at need weight picture enter technology Congress you trouble black me.,2021-07-22T22:23:24,2021-12-19T19:51:16,SHRM82965 +dz55703,Hyundai,Elantra,2014,Gray,"619,727 miles","5271,695",I4,Automatic,Petrol,SH77659,Five red source law standard sing institution beautiful.,2023-08-17T01:13:48,2021-04-29T09:24:19,SHRM91035 +kj24455,Chevrolet,Golf,1979,Gray,"657,603 miles","2665,326",I4,Manual,Hybrid,SH10175,These respond place military stuff hand light manage.,2025-01-08T02:06:09,2023-07-10T21:06:29,SHRM40245 +Wg98969,Kia,Elantra,1984,Orange,"928,228 miles","3625,227",V6,CVT,Diesel,SH98795,Tend total two letter owner read throw fire support watch common me.,2021-12-29T06:34:24,2023-07-31T22:19:41,SHRM48989 +oN02500,Nissan,3 Series,1996,Blue,"281,230 miles","5342,823",Electric,CVT,Electric,SH98878,Decide direction mean them many expert left write compare data thank.,2021-10-14T02:01:48,2024-08-24T16:16:56,SHRM33669 +yM31991,Honda,A4,1976,Green,"630,767 miles","4135,842",V8,Automatic,Hybrid,SH52453,Financial life policy cause friend issue different out benefit accept beat we visit.,2021-03-12T18:20:26,2020-08-04T06:44:20,SHRM55232 +SH12548,Kia,Soul,2016,Blue,"431,268 miles","6752,097",I4,CVT,Diesel,SH88593,Wrong wrong my even leader history air manage action also to.,2022-04-12T09:17:11,2022-10-18T03:31:09,SHRM69497 +fB68683,Chevrolet,F-150,1993,Blue,"921,951 miles","9748,293",Hybrid,Manual,Diesel,SH36471,News lose past structure want agreement base partner stay.,2022-08-23T03:28:36,2023-07-21T00:05:09,SHRM45252 +vS94316,Ford,Camry,1998,Black,"049,355 miles","9498,549",V6,CVT,Electric,SH91687,During reduce base position generation movie like but company safe hospital sign effort.,2021-01-31T11:13:27,2022-07-16T02:36:12,SHRM68831 +uD30127,BMW,Model S,1989,Red,"509,578 miles","4559,308",Hybrid,Manual,Electric,SH83090,Section performance measure seem heavy appear stop better government anything.,2022-04-01T14:26:49,2021-03-23T09:27:05,SHRM46991 +Ug33801,Chevrolet,3 Series,1994,Red,"479,973 miles","7734,874",Electric,Automatic,Petrol,SH64935,Compare top perhaps why wish mother point network newspaper spring drop court fund.,2023-10-14T14:14:21,2023-07-22T07:13:17,SHRM65202 +ib96525,Nissan,Soul,2018,Yellow,"237,133 miles","4021,224",V6,Manual,Diesel,SH61321,Half might whole quality improve TV that vote stay one owner recently.,2024-06-06T04:47:20,2022-05-25T19:02:42,SHRM32903 +cy83694,Kia,F-150,1992,Orange,"293,804 miles","9688,932",Hybrid,Automatic,Petrol,SH83596,Production number agency Congress heavy for increase mother soon growth agreement positive.,2021-04-22T21:49:21,2020-12-17T13:50:14,SHRM55232 +Sq54205,Mercedes,Camry,1996,Orange,"806,617 miles","5409,137",V8,CVT,Petrol,SH79218,Friend front occur region vote four.,2023-11-09T21:02:05,2021-07-24T13:54:28,SHRM10507 +Dm95897,Mercedes,Elantra,2006,Red,"164,912 miles","8420,091",V6,CVT,Electric,SH99650,Blue easy money out one trip.,2020-02-05T00:32:32,2020-11-30T02:43:59,SHRM57464 +AM09114,Kia,Civic,2010,Green,"820,415 miles","5164,189",I4,Automatic,Diesel,SH52198,Degree suffer pay friend direction study.,2024-01-08T21:31:04,2022-07-18T18:06:15,SHRM72270 diff --git a/synthetic_data/data/products/Showroom_data.csv b/synthetic_data/data/products/Showroom_data.csv index acda988..1a86270 100644 --- a/synthetic_data/data/products/Showroom_data.csv +++ b/synthetic_data/data/products/Showroom_data.csv @@ -1,6 +1,101 @@ -showroom_id ,showroom_name ,location ,manager_id ,contact_number ,opening_hours ,capacity ,description ,brand_id ,city_id -SR001,Elite Motors,1234 Elm St,MG001,1234567890,9 AM - 7 PM,50,Elite Motors is a premier car showroom offering a wide range of luxury and sports cars designed to cater to the most discerning customers in the city,BR001,C001 -SR002,City Auto Mall,5678 Oak Ave,MG002,0987654321,10 AM - 8 PM,75,City Auto Mall showcases the latest models from various manufacturers providing a one-stop solution for all automotive needs in a spacious and modern environment,BR002,C002 -SR003,Driveway Showroom,9101 Pine Rd,MG003,1122334455,8 AM - 6 PM,40,Driveway Showroom specializes in family-friendly vehicles and eco-friendly options ensuring that every customer finds the perfect fit for their lifestyle and values,BR003,C003 -SR004,Prestige Cars,1213 Maple Blvd,MG004,2233445566,9 AM - 5 PM,60,Prestige Cars is dedicated to providing exceptional customer service and a curated selection of high-end vehicles that stand out for their quality and performance,BR004,C004 -SR005,Auto Hub,1415 Birch Ct,MG005,3344556677,10 AM - 7 PM,80,Auto Hub offers an extensive inventory of both new and pre-owned vehicles along with financing options making it a popular choice for car buyers in the region,BR005,C005 +showroom_id,showroom_name,location,manager_id,contact_number,opening_hours,capacity,description,brand_id,created_at +SHRM56795,Morales-Harris,Port Sara,MGR02475,288.281.4896x6809,21:50:31,166,Their who benefit culture.,BRND08671,2021-12-06 07:23:58 +SHRM55232,Carr-Ramirez,Port Mark,MGR13459,930.346.1584x40286,05:38:19,334,Yard sing reality sport relationship page.,BRND37038,2020-02-10 19:11:24 +SHRM61195,"Rodriguez, Clarke and Black",Meadowsfurt,MGR30914,+1-371-266-1301x33914,19:33:47,346,Down avoid manager discuss group nor.,BRND54331,2021-09-09 22:52:28 +SHRM42852,"Torres, Sosa and Esparza",Dorseyberg,MGR95335,905.630.5614x91980,15:59:41,289,Within itself without protect.,BRND85417,2021-01-09 09:57:32 +SHRM14642,"Hutchinson, Jones and Merritt",Alyssashire,MGR86850,(296)765-1835x46021,07:55:18,41,Fill leg pressure born around.,BRND65179,2024-12-14 17:59:06 +SHRM44307,Hill-Roy,West Amberchester,MGR66151,3756683605,21:21:11,110,To thank while.,BRND18589,2023-03-30 01:04:03 +SHRM76509,Fields and Sons,West Ashleyton,MGR41432,9139176134,00:10:57,23,When always all statement.,BRND42041,2020-09-01 02:10:36 +SHRM32903,Lewis-Young,West Emilyhaven,MGR75228,(518)847-9911x7626,09:55:07,272,Lot later perhaps happen tend campaign either.,BRND77836,2020-03-06 20:23:35 +SHRM58052,Esparza-Cooper,North Denise,MGR87339,839-353-6082x51950,15:10:27,128,Ask since rather particularly.,BRND17771,2024-01-21 08:26:17 +SHRM06633,Potts-Scott,Lake Cassidy,MGR69051,001-260-326-5114,05:38:52,122,Tell station standard might.,BRND24460,2021-08-11 10:26:32 +SHRM07326,"Watson, Brooks and Watts",Jonesbury,MGR90164,886.520.1985,18:08:09,57,Respond recognize process along party.,BRND65405,2021-10-19 06:18:03 +SHRM97501,Howe-Anderson,Scottmouth,MGR82906,2929774415,10:28:49,487,Song among these interesting stuff.,BRND63089,2020-09-12 01:34:00 +SHRM96423,Powers-Elliott,Veronicastad,MGR48488,909-220-7929,13:46:51,176,Analysis shake high data week education bring.,BRND38416,2023-01-06 08:03:57 +SHRM45822,"Johnson, Gilbert and Parker",Port Erikastad,MGR52661,001-606-553-4244x6924,15:29:33,350,Ask easy father medical consumer small.,BRND69852,2023-07-28 18:45:10 +SHRM36719,"Gonzales, Sanders and Ballard",Alvarezville,MGR93640,(401)715-5634x94610,09:19:00,84,Husband artist old at black.,BRND76579,2023-05-19 03:24:07 +SHRM72061,Mcclain PLC,North Sara,MGR34417,001-921-540-6185,16:11:15,150,Increase project late reality put.,BRND57253,2021-11-12 13:26:28 +SHRM85338,"Hernandez, Wright and Hill",Thomasview,MGR10524,+1-926-296-1353x764,01:03:32,253,Clearly low find international.,BRND06314,2021-04-15 15:01:20 +SHRM31233,Kelly-Williamson,Justinton,MGR78222,(229)457-5871,07:38:40,49,Heart ground wind investment player.,BRND35687,2020-04-11 15:37:43 +SHRM01151,Conrad-York,Anneside,MGR75594,+1-749-733-7989x40320,15:32:48,179,Article later control house collection black force.,BRND72547,2022-04-13 17:47:38 +SHRM78528,"Fisher, Higgins and Williams",Tiffanybury,MGR09278,(278)843-4035,21:55:39,161,There minute however successful bring particularly.,BRND41418,2025-01-06 01:13:12 +SHRM91035,Hill LLC,East Michaelburgh,MGR44131,001-492-276-1434x11524,06:26:44,130,My not peace specific citizen beautiful.,BRND34749,2024-10-31 19:58:22 +SHRM82317,Miller-Weiss,Alvarezport,MGR23980,216.840.8942x121,18:13:46,95,Rock wind physical special task.,BRND87596,2023-05-08 16:19:41 +SHRM81940,"Graham, Abbott and Stephens",Hayesville,MGR78347,001-975-459-3495x6091,02:25:23,47,Indicate western whole matter response partner.,BRND11479,2024-05-24 14:44:01 +SHRM60762,Clark Ltd,South Williamland,MGR95535,001-831-243-3262,18:04:46,15,Sea school fear wear onto per behavior.,BRND10897,2024-08-08 06:50:51 +SHRM51457,May PLC,South Mitchell,MGR56000,(407)865-9559x56914,20:07:15,273,Building hair situation there guy.,BRND94303,2023-08-05 19:49:12 +SHRM30726,"Maldonado, Flores and Moreno",West Alexfort,MGR85027,(846)697-6412,11:05:08,171,Choose risk very contain team.,BRND15294,2024-12-20 21:53:18 +SHRM19000,Keith Group,East Roy,MGR69459,519.222.6874x06344,03:42:13,30,Attorney often state material act another.,BRND36554,2024-12-15 18:28:25 +SHRM74494,Holmes LLC,Aguilarville,MGR07539,885.469.1215x9662,06:44:38,100,Buy rest treatment whole wear life quality key.,BRND71247,2021-09-07 04:30:51 +SHRM77296,"Haley, Miller and Sutton",New Jerrymouth,MGR34052,599.550.6097,20:08:19,372,Coach feeling behind capital low standard national design.,BRND87755,2023-01-30 03:29:55 +SHRM40043,Wilson-Mahoney,East Robertmouth,MGR18437,9299575274,07:55:37,74,Almost turn land thus stuff.,BRND76273,2022-05-31 22:07:17 +SHRM81459,Sosa-Lewis,North Thomasmouth,MGR99455,(693)487-6509x528,06:42:11,475,Many affect run western quite first.,BRND81331,2020-11-20 04:37:11 +SHRM96927,Cain Inc,Port Megan,MGR10646,(556)858-9338x3587,13:19:42,413,Enough you appear prevent blood allow poor.,BRND53657,2022-05-27 10:19:52 +SHRM05095,"Kim, Bradford and Cain",Ryanmouth,MGR10187,895.560.1976,07:29:28,321,Shoulder do mind.,BRND84951,2020-07-12 13:16:20 +SHRM68542,"Harris, Hartman and Becker",Davismouth,MGR23558,(324)520-5367,17:47:19,214,Power size follow truth thank necessary.,BRND39866,2020-09-03 18:44:42 +SHRM21115,Webb Ltd,North Johnmouth,MGR12921,001-927-648-7804x5593,12:22:22,286,Owner including type central letter pull.,BRND70983,2023-07-06 04:34:21 +SHRM32006,Hart Group,Heatherberg,MGR25558,+1-644-872-4875x7979,07:21:00,1,Of meet water collection stand.,BRND66429,2020-05-05 18:20:56 +SHRM33068,"Wagner, Lindsey and Walker",Jameshaven,MGR53967,669.226.4602x1466,12:25:29,400,Check concern character heart.,BRND92709,2024-09-24 11:44:56 +SHRM12392,Daniels-Taylor,North Stevenstad,MGR86282,702-818-3027,02:13:25,340,Forward TV outside during mouth feeling character radio.,BRND24748,2020-02-05 23:09:08 +SHRM68831,"Roberts, Pollard and Jones",New Howard,MGR89162,2393007856,08:30:06,330,Seem radio young those risk quite college.,BRND41662,2022-11-19 19:24:13 +SHRM36403,"Clark, Gonzalez and Wolfe",North Erinland,MGR62099,867-800-5326,15:12:16,359,Feel they start her class public commercial success.,BRND12186,2022-08-28 18:48:43 +SHRM59973,Archer Inc,South Michael,MGR91317,540.608.3758,21:50:25,317,Address class impact road the rule fill.,BRND16188,2024-10-07 14:31:09 +SHRM69497,Miller-Pugh,Emmaville,MGR09395,(297)363-9649x21165,13:30:22,207,Station white number single take least.,BRND17135,2020-10-29 04:14:43 +SHRM82965,Boone-Thompson,Danielmouth,MGR20741,232-717-0271x0057,12:20:25,223,General various once.,BRND86349,2021-08-24 01:47:24 +SHRM40245,"Thomas, Castillo and Gutierrez",Parkerport,MGR65646,001-245-276-7996,18:45:09,492,Eye billion hand build do back.,BRND81157,2021-02-05 09:52:54 +SHRM84636,"Price, Wiggins and Combs",Cynthiastad,MGR50778,727.452.6658,07:14:37,137,Store back statement choose position.,BRND15154,2023-05-16 20:46:29 +SHRM79015,"Munoz, Rodgers and Hanna",New Amy,MGR73405,249.923.9262,05:48:57,20,Let still computer environmental produce.,BRND04144,2022-02-06 08:44:54 +SHRM53675,Williams-Hutchinson,Lake Jenniferside,MGR26390,(823)365-6859x324,04:00:39,132,North subject real their.,BRND07428,2024-12-24 02:05:36 +SHRM32713,"Perez, Duke and Moore",East Nicholas,MGR80430,656.793.0662x3290,00:30:00,229,Low nor summer fast matter bring.,BRND81589,2021-09-13 09:12:11 +SHRM20203,"Best, Cortez and Coleman",North Kimberlychester,MGR95314,690-299-5913,13:40:09,133,Listen surface economic often trip produce subject.,BRND03105,2020-10-18 10:54:55 +SHRM70777,Baker-Ortiz,Warrenhaven,MGR76023,914.976.1492x9591,02:01:15,353,Time education similar north common life whether.,BRND94892,2021-11-01 00:23:20 +SHRM80648,Estrada Group,New Lisaton,MGR12976,001-368-835-0913x186,07:38:45,464,Least item eye.,BRND98905,2023-03-11 11:31:26 +SHRM79043,Torres-Howard,Melissaton,MGR80991,(661)468-0273x19165,12:59:32,177,Generation fear contain scientist without show realize task.,BRND02394,2023-01-04 04:49:56 +SHRM78570,"Griffin, Torres and Cruz",East Gina,MGR17557,782.652.7982x737,18:03:23,58,Class case clear why always center end.,BRND26705,2022-11-07 09:42:22 +SHRM63916,"Clark, Jordan and Bowers",Frenchmouth,MGR41240,495-332-6824,23:29:51,302,Defense draw evening increase much.,BRND42804,2023-02-01 15:13:08 +SHRM98132,"Mckinney, Richardson and Green",East Lisa,MGR65077,711-225-5194,14:25:58,291,Hold right security me language item.,BRND29430,2023-10-15 18:30:48 +SHRM48672,"Wilson, Thornton and Howard",North Jefferyberg,MGR33625,580-720-0874x949,20:34:03,472,Black real suggest year poor particular.,BRND47809,2023-06-22 16:54:43 +SHRM57464,Fox-Turner,Romanfort,MGR57888,(348)862-0677x085,04:19:38,385,Feel news skin reach go mission yeah.,BRND46662,2023-06-14 09:44:04 +SHRM66167,Mason and Sons,West Meghan,MGR16812,001-332-242-8503x048,02:44:33,347,Soon whatever standard window lot interest nothing already.,BRND97175,2021-04-14 23:33:46 +SHRM46991,"Huff, Walsh and West",Douglasfort,MGR29850,699-847-2391,21:47:12,485,Treatment week newspaper and.,BRND46066,2024-11-14 21:36:59 +SHRM32173,"Campbell, Harris and Hudson",Nobleview,MGR18854,531-712-4786x101,19:23:17,13,Peace view yeah tell.,BRND17043,2020-05-30 14:55:59 +SHRM09690,Allen Group,Brendaville,MGR98708,386-454-5804,14:23:50,89,Hospital present success yes white control.,BRND90318,2024-10-09 12:21:15 +SHRM48989,Tucker-Weeks,Markborough,MGR84323,(766)965-5132x24631,08:19:48,338,Result add country none.,BRND99129,2024-12-07 11:18:10 +SHRM10507,"Taylor, Kennedy and Miller",Lake Dawnville,MGR12347,789.308.7454x7527,00:10:13,48,Ever politics opportunity her.,BRND54103,2020-07-14 13:25:41 +SHRM59804,Williams Inc,East Jenniferborough,MGR42836,216-410-3874,04:12:54,424,Role wait manager.,BRND62374,2020-02-27 13:48:15 +SHRM94558,Novak Inc,Lopezborough,MGR12015,001-936-697-6797,20:55:04,406,Doctor here expert back image.,BRND37090,2021-11-06 07:38:46 +SHRM40639,"Ingram, Yu and Cobb",Lake Samanthafurt,MGR08953,+1-516-710-3624x96459,07:52:57,12,Attorney part the or traditional others score.,BRND20168,2021-12-05 04:11:53 +SHRM80656,Johnson Ltd,East Kathleen,MGR49902,(809)602-4788,18:10:55,92,Sort political social young small subject.,BRND72142,2022-02-21 02:37:18 +SHRM33669,Jacobson Inc,Whiteborough,MGR22491,(357)376-7124,17:12:59,235,Place former space yes either need picture.,BRND41454,2020-06-05 11:55:21 +SHRM85786,"Burton, Jones and Bowman",Johnsonfurt,MGR49331,(824)344-4406,07:48:06,326,Letter involve sister sure local response.,BRND65207,2021-05-25 19:32:33 +SHRM61538,"Shelton, Pollard and Pierce",East Aliciaport,MGR07685,542.743.4091,17:31:58,99,Do soon tend of institution senior play.,BRND38960,2020-07-03 19:13:08 +SHRM27464,Horn-Wilkins,Foxborough,MGR59826,001-262-823-3377x7123,02:41:29,231,Today pick impact people.,BRND66843,2025-01-05 22:28:10 +SHRM64680,"Gaines, Williams and Snyder",Lake Jasonchester,MGR37358,(935)538-3606,14:11:49,305,Computer if painting.,BRND45785,2020-12-28 09:55:43 +SHRM84204,Harrison Ltd,Barnesfurt,MGR24772,511.713.4725x0012,12:37:10,92,Modern bit career ago cup law step.,BRND27285,2021-02-07 20:16:16 +SHRM86483,Dunn and Sons,Martinville,MGR36634,001-872-950-1331x4839,20:35:23,276,Source half assume view cup show authority.,BRND13681,2023-09-07 18:47:50 +SHRM42433,Rowland Inc,Alexandraview,MGR69944,001-469-413-0912x12549,12:30:55,436,Page gas strong different experience.,BRND54754,2020-09-09 17:01:31 +SHRM65147,Welch-Fritz,Danielview,MGR35481,252.855.1156x70482,07:38:16,28,Leg talk return ball bank population drop.,BRND64809,2024-03-24 08:17:25 +SHRM97744,Winters Group,South Jacquelinechester,MGR73863,(498)480-5450x993,10:43:16,34,Mother world instead still themselves current final through.,BRND76063,2021-10-13 02:27:25 +SHRM75661,Rhodes-Bird,East Ryanmouth,MGR00697,(743)400-8199x815,10:08:08,351,Leg vote pass argue deal serious.,BRND64310,2024-01-03 00:55:42 +SHRM18797,Stout-Clark,Autumnmouth,MGR63371,217-237-8728x4406,23:42:36,300,Head room vote artist stop great fill answer.,BRND66438,2020-05-12 19:14:33 +SHRM97309,Collins Ltd,Carrieland,MGR54703,001-257-829-0010,18:27:37,378,Happen check green total describe top.,BRND00089,2021-01-22 15:39:59 +SHRM57073,Rich-Mason,Port Brandontown,MGR22838,315.354.2770,03:52:27,438,Half away stop century.,BRND53445,2020-08-31 08:33:03 +SHRM27380,"Green, Rowe and Mcclain",Lake Stacyland,MGR77284,001-354-605-5094x9333,23:04:35,292,Institution ahead tend ok.,BRND62858,2024-06-21 21:18:00 +SHRM21696,"Lang, Stephens and Thompson",West Johnville,MGR63134,857.768.3205x060,09:30:25,100,Cause likely them.,BRND62937,2020-06-16 20:03:07 +SHRM65202,Gardner-Hayden,Susanchester,MGR02117,490-363-3773x20399,02:12:09,144,Defense authority certainly compare population.,BRND43629,2024-07-17 22:31:22 +SHRM96540,"Sanchez, Gordon and Perez",Port Ashley,MGR97184,703.611.2434x41175,04:28:51,192,Someone simply ten police bill use animal.,BRND98716,2020-11-16 03:11:02 +SHRM45252,Bates-Alvarez,South Beverlyton,MGR63234,471-336-1172x32232,07:04:29,267,Sense attorney program decade consider.,BRND07946,2023-12-30 13:39:42 +SHRM65874,Carter Group,Allenport,MGR18168,436.516.2895,10:21:51,394,Continue task save report.,BRND83942,2022-12-21 13:16:06 +SHRM10264,Graham Inc,Jenniferville,MGR77258,(255)858-8712x72275,22:45:50,173,Respond billion keep want fund authority cover tree.,BRND84475,2020-06-10 14:07:29 +SHRM62517,Mosley-Johnson,Johnmouth,MGR83074,711.978.1294x5019,21:32:15,205,Apply that beautiful music.,BRND41183,2024-06-15 01:11:19 +SHRM16616,"Carey, Harrison and Henderson",Williamsmouth,MGR56941,+1-331-508-6897x932,00:43:25,162,Television artist small skin few suffer less.,BRND63504,2021-04-24 04:29:56 +SHRM92013,"Hodge, Scott and Cook",East Courtneytown,MGR16578,(572)399-0702,13:09:11,242,Contain again crime we especially.,BRND07847,2020-08-13 09:29:35 +SHRM21921,Wong and Sons,Buckton,MGR24502,402.490.6098x661,07:46:04,399,Would view agree way clear serve hear.,BRND71863,2022-11-13 09:50:39 +SHRM45128,Burton-Castro,Villanuevaview,MGR93544,001-832-430-3965,10:52:45,451,Position all least like although rather.,BRND44743,2020-01-24 03:23:40 +SHRM72270,Garrett-Hayes,New Josephton,MGR87920,001-977-276-9395x41400,20:13:25,167,Democrat fine plant song site daughter.,BRND51551,2024-08-03 11:49:46 +SHRM76563,Williams-Thompson,Gallegosberg,MGR81458,(413)703-8258,08:47:31,129,Research this hundred bill quickly itself soon structure.,BRND21481,2024-04-10 21:31:35 +SHRM29303,"King, Gomez and Wright",Jefferyport,MGR24494,326-585-8867x946,16:33:40,410,Detail commercial thought still go after amount.,BRND66762,2024-10-18 01:11:24 +SHRM36032,"Hale, Jordan and Anderson",Acostachester,MGR02595,001-720-480-7846,00:36:05,297,Each relationship federal under adult future.,BRND67663,2022-05-25 10:19:34 +SHRM83284,Hayden-Rodriguez,Morrisfort,MGR67179,476.304.0217x595,15:16:04,442,Entire student majority to skill rich everybody reveal.,BRND74872,2020-01-17 05:40:03 +SHRM33387,Valdez-Diaz,Russellmouth,MGR99978,478.637.1081,06:05:09,151,Only despite wear make.,BRND26718,2022-04-14 01:03:02 +SHRM99149,"Brewer, Walsh and Williams",Conradbury,MGR42527,+1-491-621-6620x37667,12:59:09,6,Family town mention trouble executive political enter.,BRND00224,2020-07-25 03:41:19 diff --git a/youtube_transcripts/UI/main.py b/youtube_transcripts/UI/main.py new file mode 100644 index 0000000..78887d2 --- /dev/null +++ b/youtube_transcripts/UI/main.py @@ -0,0 +1,27 @@ +from dotenv import load_dotenv +import streamlit as st +from youtube_transcripts import retrieval_chain +from youtube_transcripts.langfuse.callbackHandler import langfuseHandler + +# Set page configuration and set page icon to youtube logo +st.set_page_config(page_title="Ask Youtube", page_icon="📹", layout="centered") + +st.title("Q&A") + +# Input widget for user question +question = st.text_input("Enter your question here") + +if question: + btn = st.button("Ask") + if btn: + # Invoke Retrieval Chain using Pinecone as Vector Store with QA prompt from LangChain Hub + result = retrieval_chain.invoke( + { + "input": question + }, + config={ + "callbacks": [langfuseHandler], + "run_name": "langfuse-trace-qa", + } + ) + st.write(result["answer"]) diff --git a/youtube_transcripts/__init__.py b/youtube_transcripts/__init__.py new file mode 100644 index 0000000..f0e4639 --- /dev/null +++ b/youtube_transcripts/__init__.py @@ -0,0 +1,7 @@ +from youtube_transcripts.openai_llm import llm +from youtube_transcripts.retrieve_transcripts.retriever import retrieval_chain +from youtube_transcripts.transcripts_loaders.video_transcripts_loaders import load_youtube_transcripts +from youtube_transcripts.summarizer.export_transcript import export_transcript_text +from youtube_transcripts.langfuse.callbackHandler import langfuseHandler + +__all__ = [llm, load_youtube_transcripts, export_transcript_text, retrieval_chain] diff --git a/youtube_transcripts/ingest_transcript/ingest.py b/youtube_transcripts/ingest_transcript/ingest.py new file mode 100644 index 0000000..e81838d --- /dev/null +++ b/youtube_transcripts/ingest_transcript/ingest.py @@ -0,0 +1,39 @@ +from dotenv import load_dotenv +import os +from langchain_pinecone import PineconeVectorStore +from langchain_community.embeddings import OllamaEmbeddings +from youtube_transcripts import llm, export_transcript_text +from langchain_text_splitters import RecursiveCharacterTextSplitter + +load_dotenv() + +path = "../summarizer/long_video/transcript.txt" +transcript = export_transcript_text(path) + +pinecone_api_key = os.getenv('PINECONE_API_KEY') +pinecone_index = "youtube-transcripts" +try: + + textSplitter = RecursiveCharacterTextSplitter( + chunk_size=2000, + chunk_overlap=0, + length_function=len, + keep_separator=True, + separators=["", "\n"] + ) + + chunks = textSplitter.split_text(transcript) + + embeddings = OllamaEmbeddings(model="llama3:latest", num_gpu=1) + + # Create new Pinecone Vector Store + vector_store = PineconeVectorStore.from_texts( + index_name=pinecone_index, + embedding=embeddings, + texts=chunks + ) + + print("Pinecone Vector Store Created") + +except Exception as e: + print(f"Error: {e}") diff --git a/youtube_transcripts/langfuse/callbackHandler.py b/youtube_transcripts/langfuse/callbackHandler.py new file mode 100644 index 0000000..9358669 --- /dev/null +++ b/youtube_transcripts/langfuse/callbackHandler.py @@ -0,0 +1,13 @@ +import os +from dotenv import load_dotenv +from langfuse.callback import CallbackHandler + +load_dotenv() + +langfuseHandler = CallbackHandler( + secret_key=os.getenv("LANGFUSE_SECRET_KEY"), + public_key=os.getenv("LANGFUSE_PUBLIC_KEY"), + host=os.getenv("LANGFUSE_HOST") +) + +__all__ = [langfuseHandler] \ No newline at end of file diff --git a/youtube_transcripts/openai_llm.py b/youtube_transcripts/openai_llm.py new file mode 100644 index 0000000..ecf82ba --- /dev/null +++ b/youtube_transcripts/openai_llm.py @@ -0,0 +1,9 @@ +from dotenv import load_dotenv +from langchain_openai import ChatOpenAI + +load_dotenv() + +# Initialize OpenAI LLM +llm = ChatOpenAI(temperature=0, model="gpt-4o-mini", verbose=True, stream_usage=True) + +__all__ = [llm] \ No newline at end of file diff --git a/youtube_transcripts/retrieve_transcripts/retriever.py b/youtube_transcripts/retrieve_transcripts/retriever.py new file mode 100644 index 0000000..e1b2a3f --- /dev/null +++ b/youtube_transcripts/retrieve_transcripts/retriever.py @@ -0,0 +1,31 @@ +from langchain.chains.combine_documents import create_stuff_documents_chain +from youtube_transcripts import llm +from langchain import hub +from langchain_community.embeddings import OllamaEmbeddings +from langchain_pinecone import PineconeVectorStore +from langchain.chains.retrieval import create_retrieval_chain + + +#pinecone_api_key = os.getenv('PINECONE_API_KEY') +pinecone_index = "youtube-transcripts" + +# Pull the prompt for qa-chain from LangChain Hub +retrieval_qa_chat_prompt = hub.pull("langchain-ai/retrieval-qa-chat") + +# Initialise Embeddings +embeddings = OllamaEmbeddings(model="llama3:latest") + +# Intialise vector store +vector_store = PineconeVectorStore(index_name=pinecone_index, embedding=embeddings) + +# Create the chain of type document stuff +combine_docs_chain = create_stuff_documents_chain(llm, retrieval_qa_chat_prompt) + +# Create the Retrieval Chain +retrieval_chain = create_retrieval_chain( + retriever=vector_store.as_retriever(), combine_docs_chain=combine_docs_chain +) + +__all__ = [ + retrieval_chain +] diff --git a/youtube_transcripts/summarizer/export_transcript.py b/youtube_transcripts/summarizer/export_transcript.py new file mode 100644 index 0000000..21be9d3 --- /dev/null +++ b/youtube_transcripts/summarizer/export_transcript.py @@ -0,0 +1,19 @@ +import os + +# Export the text of summary.txt file +def export_transcript_text(file_path: str): + transcript = "" + + # Check if the file exists + if os.path.exists(file_path): + try: + with open(file_path, "r") as file: + transcript = file.read() + except Exception as e: + print(f"An error occurred while reading the file: {e}") + else: + print(f"File not found: {file_path}") + + return transcript + +__all__ = [export_transcript_text] \ No newline at end of file diff --git a/youtube_transcripts/summarizer/long_video/summary.txt b/youtube_transcripts/summarizer/long_video/summary.txt new file mode 100644 index 0000000..4ea40bb --- /dev/null +++ b/youtube_transcripts/summarizer/long_video/summary.txt @@ -0,0 +1 @@ +In this course, Lance Martin from LangChain teaches how to implement Retrieval-Augmented Generation (RAG) to enhance large language models (LLMs) using private data. The curriculum covers the entire RAG pipeline, including data indexing, document retrieval, and answer generation, while exploring techniques like query translation and multi-query approaches. Advanced methods such as hierarchical indexing and corrective RAG are also discussed to improve retrieval accuracy. The course aims to equip learners with practical skills to build effective RAG systems that integrate public and private data. \ No newline at end of file diff --git a/youtube_transcripts/summarizer/long_video/transcript.txt b/youtube_transcripts/summarizer/long_video/transcript.txt new file mode 100644 index 0000000..c7f8030 --- /dev/null +++ b/youtube_transcripts/summarizer/long_video/transcript.txt @@ -0,0 +1 @@ +in this course Lance Martin will teach you how to implement rag from scratch Lance is a software engineer at Lang chain and Lang chain is one of the most common ways to implement rag Lance will help you understand how to use rag to combine custom data with llms hi this is Lance Martin I'm a software engineer at Lang chain I'm going to be giving a short course focused on rag or retrieval augmented generation which is one of the most popular kind of ideas and in llms today so really the motivation for this is that most of the world's data is private um whereas llms are trained on publicly available data so you can kind of see on the bottom on the x-axis the number of tokens using pre-training various llms so it kind of varies from say 1.5 trillion tokens in the case of smaller models like 52 out to some very large number that we actually don't know for proprietary models like GPT 4 CLA three but what's really interesting is that the context window or the ability to feed external information into these LMS is actually getting larger so about a year ago context windows were between 4 and 8,000 tokens you know that's like maybe a dozen pages of text we've recently seen models all the way out to a million tokens which is thousands of pages of text so while these llms are trained on large scale public data it's increasingly feasible to feed them this huge mass of private data that they've never seen that private data can be your kind of personal data it can be corporate data or you know other information that you want to pass to an LM that's not natively in his training set and so this is kind of the main motivation for rag it's really the idea that llms one are kind of the the center of a new kind of operating system and two it's increasingly critical to be able to feed information from external sources such as private data into llms for processing so that's kind of the overarching motivation for Rag and now rag refers to retrieval augmented generation and you can think of it in three very general steps there's a process of indexing of external data so you can think about this as you know building a database for example um many companies already have large scale databases in different forms they could be SQL DBS relational DBS um they could be Vector Stores um or otherwise but the point is that documents are indexed such that they can be retrieved based upon some heuristics relative to an input like a question and those relevant documents can be passed to an llm and the llm can produce answers that are grounded in that retrieved information so that's kind of the centerpiece or central idea behind Rag and why it's really powerful technology because it's really uniting the the knowledge and processing capacity of llms with large scale private external data source for which most of the important data in the world still lives and in the following short videos we're going to kind of build up a complete understanding of the rag landscape and we're going to be covering a bunch of interesting papers and techniques that explain kind of how to do rag and I've really broken it down into a few different sections so starting with a question on the left the first kind of section is what I call query trans translation so this captures a bunch of different methods to take a question from a user and modify it in some way to make it better suited for retrieval from you know one of these indexes we've talked about that can use methods like query writing it can be decomposing the query into you know constituent sub questions then there's a question of routing so taking that decomposed a Rewritten question and routing it to the right place you might have multiple Vector stores a relational DB graph DB and a vector store so it's the challenge of getting a question to the right Source then there's a there's kind of the challenge of query construction which is basically taking natural language and converting it into the DSL necessary for whatever data source you want to work with a classic example here is text a SQL which is kind of a very kind of well studied process but text a cipher for graph DV is very interesting text to metadata filters for Vector DBS is also a very big area of study um then there's indexing so that's the process of taking your documents and processing them in some way so they can be easily retrieved and there's a bunch of techniques for that we'll talk through we'll talk through different embedding methods we'll talk about different indexing strategies after retrieval there are different techniques to rerank or filter retrieve documents um and then finally we'll talk about generation and kind of an interesting new set of methods to do what we might call as active rag so in that retrieval or generation stage grade documents grade answers um grade for relevance to the question grade for faithfulness to the documents I.E check for hallucinations and if either fail feedback uh re- retrieve or rewrite the question uh regenerate the qu regenerate the answer and so forth so there's a really interesting set of methods we're going to talk through that cover that like retrieval and generation with feedback and you know in terms of General outline we'll cover the basics first it'll go through indexing retrieval and generation kind of in the Bare Bones and then we'll talk through more advanced techniques that we just saw on the prior slide career Transformations routing uh construction and so forth hi this is Lance from Lang chain this the second video in our series rack from scratch focused on indexing so in the past video you saw the main kind of overall components of rag pipelines indexing retrieval and generation and here we're going to kind of Deep dive on indexing and give like just a quick overview of it so the first aspect of indexing is we have some external documents that we actually want to load and put into what we're trying to call Retriever and the goal of this retriever is simply given an input question I want to fish out doents that are related to my question in some way now the way to establish that relationship or relevance or similarity is typically done using some kind of numerical representation of documents and the reason is that it's very easy to compare vectors for example of numbers uh relative to you know just free form text and so a lot of approaches have been a developed over the years to take text documents and compress them down into a numerical rep presentation that then can be very easily searched now there's a few ways to do that so Google and others came up with many interesting statistical methods where you take a document you look at the frequency of words and you build what they call sparse vectors such that the vector locations are you know a large vocabulary of possible words each value represents the number of occurrences of that particular word and it's sparse because there's of course many zeros it's a very large vocabulary relative to what's present in the document and there's very good search methods over this this type of numerical representation now a bit more recently uh embedding methods that are machine learned so you take a document and you build a compressed fixed length representation of that document um have been developed with correspondingly very strong search methods over embeddings um so the intuition here is that we take documents and we typically split them because embedding models actually have limited context windows so you know on the order of maybe 512 tokens up to 8,000 tokens or Beyond but they're not infinitely large so documents are split and each document is compressed into a vector and that Vector captures a semantic meaning of the document itself the vectors are indexed questions can be embedded in the exactly same way and then numerical kind of comparison in some form you know using very different types of methods can be performed on these vectors to fish out relevant documents relative to my question um and let's just do a quick code walk through on some of these points so I have my notebook here I've installed here um now I've set a few API keys for lsmith which are very useful for tracing which we'll see shortly um previously I walked through this this kind of quick start that just showed overall how to lay out these rag pipelines and here what I'll do is I'll Deep dive a little bit more on indexing and I'm going to take a question and a document and first I'm just going to compute the number of tokens in for example the question and this is interesting because embedding models in llms more generally operate on tokens and so it's kind of nice to understand how large the documents are that I'm trying to feed in in this case it's obviously a very small in this case question now I'm going to specify open eye embeddings I specify an embedding model here and I just say embed embed query I can pass my question my document and what you can see here is that runs and this is mapped to now a vector of length 1536 and that fixed length Vector representation will be computed for both documents and really for any document so you're always is kind of computing this fix length Vector that encodes the semantics of the text that you've passed now I can do things like cosine similarity to compare them and as we'll see here I can load some documents this is just like we saw previously I can split them and I can index them here just like we did before but we can see under the hood really what we're doing is we're taking each split we're embedding it using open eye embeddings into this this kind of this Vector representation and that's stored with a link to the rod document itself in our Vector store and next we'll see how to actually do retrieval using this Vector store hi this is Lance from Lang chain and this is the third video in our series rag from scratch building up a lot of the motivations for rag uh from the very basic components um so we're going to be talking about retrieval today in the last two uh short videos I outlined indexing and gave kind of an overview of this flow which starts with indexing of our documents retrieval of documents relevant to our question and then generation of answers based on the retriev documents and so we saw that the indexing process basically makes documents easy to retrieve and it goes through a flow that basically looks like you take our documents you split them in some way into these smaller chunks that can be easily embedded um those embeddings are then numerical representations of those documents that are easily searchable and they're stored in an index when given a question that's also embedded the index performs a similarity search and returns splits that are relevant to the question now if we dig a little bit more under the hood we can think about it like this if we take a document and embed it let's imagine that embedding just had three dimensions so you know each document is projected into some point in this 3D space now the point is that the location in space is determined by the semantic meaning or content in that document so to follow that then documents in similar locations in space contain similar semantic information and this very simple idea is really the Cornerstone for a lot of search and retrieval methods that you'll see with modern Vector stores so in particular we take our documents we embed them into this in this case a toy 3D space we take our question do the same we can then do a search like a local neighborhood search you can think about in this 3D space around our question to say hey what documents are nearby and these nearby neighbors are then retrieved because they can they have similar semantics relative to our question and that's really what's going on here so again we took our documents we split them we embed them and now they exist in this high dimensional space we've taken our question embedded it projected in that same space and we just do a search around the question from nearby documents and grab ones that are close and we can pick some number we can say we want one or two or three or n documents close to my question in this embedding space and there's a lot of really interesting methods that implement this very effectively I I link one here um and we have a lot of really nice uh Integrations to play with this general idea so many different embedding models many different indexes lots of document loaders um and lots of Splitters that can be kind of recombined to test different ways of doing this kind of indexing or retrieval um so now I'll show a bit of a code walkth through so here we defined um we kind of had walked through this previously this is our notebook we've installed a few packages we've set a few environment variables using lsmith and we showed this previously this is just an overview showing how to run rag like kind of end to end in the last uh short talk we went through indexing um and what I'm going to do very simply is I'm just going to reload our documents so now I have our documents I'm going to resplit them and we saw before how we can build our index now here let's actually do the same thing but in the slide we actually showed kind of that notion of search in that 3D space and a nice parameter to think about in building your your retriever is K so K tells you the number of nearby neighbors to fetch when you do that retrieval process and we talked about you know in that 3D space do I want one nearby neighbor or two or three so here we can specify k equals 1 for example now we're building our index so we're taking every split embedding it storing it now what's nice is I asked a a question what is Task decomposition this is related to the blog post and I'm going to run get relevant documents so I run that and now how many documents do I get back I get one as expected based upon k equals 1 so this retrieve document should be related to my question now I can go to lsmith and we can open it up and we can look at our Retriever and we can see here was our question here's the one document we got back and okay so that makes sense this document pertains to task ke decomposition in particular and it kind of lays out a number of different approaches that can be used to do that this all kind of makes sense and this shows kind of in practice how you can implement this this NE this kind of KNN or k nearest neighbor search uh really easily uh just using a few lines of code and next we're going to talk about generation thanks hey this is Lance from Lang chain this is the fourth uh short video in our rack from scratch series that's going to be focused on generation now in the past few videos we walked through the general flow uh for kind of basic rag starting with indexing Fall by retrieval then generation of an answer based upon the documents that we retrieved that are relevant to our question this is kind of the the very basic flow now an important consideration in generation is really what's happening is we're taking the documents you retrieve and we're stuffing them into the llm context window so if we kind of walk back through the process we take documents we split them for convenience or embedding we then embed each split and we store that in a vector store as this kind of easily searchable numerical representation or vector and we take a question embed it to produce a similar kind of numerical representation we can then search for example using something like KN andn in this kind of dimensional space for documents that are similar to our question based on their proximity or location in this space in this case you can see 3D is a toy kind of toy example now we've recovered relevant splits to our question we pack those into the context window and we produce our answer now this introduces the notion of a prompt so the prompt is kind of a you can think have a placeholder that has for example you know in our case B keys so those keys can be like context and question so they basically are like buckets that we're going to take those retrieve documents and Slot them in we're going to take our question and also slot it in and if you kind of walk through this flow you can kind of see that we can build like a dictionary from our retrieve documents and from our question and then we can basically populate our prompt template with the values from the dict and then becomes a prompt value which can be passed to llm like a chat model resulting in chat messages which we then parse into a string and get our answer so that's like the basic workflow that we're going to see and let's just walk through that in code very quickly to kind of give you like a Hands-On intuition so we had our notebook we walk through previously install a few packages I'm setting a few lsmith environment variables we'll see it's it's nice for uh kind of observing and debugging our traces um previously we did this quick start we're going to skip that over um and what I will do is I'm going to build our retriever so again I'm going to take documents and load them uh and then I'm going to split them here we've kind of done this previously so I'll go through this kind of quickly and then we're going to embed them and store them in our index so now we have this retriever object here now I'm going to jump down here now here's where it's kind of fun this is the generation bit and you can see here I'm defining something new this is a prompt template and what my prompt template is something really simple it's just going to say answer the following question based on this context it's going to have this context variable and a question so now I'm building my prompt so great now I have this prompt let's define an llm I'll choose 35 now this introdu the notion of a chain so in Lang chain we have an expression language called L Cel Lang chain expression language which lets you really easily compose things like prompts LMS parsers retrievers and other things but the very simple kind of you know example here is just let's just take our prompt which you defined right here and connect it to an LM which you defined right here into this chain so there's our chain now all we're doing is we're invoking that chain so every L expression language chain has a few common methods like invoke bat stream in this case we just invoke it with a dict so context and question that maps to the expected Keys here in our template and so if we run invoke what we see is it's just going to execute that chain and we get our answer now if we zoom over to Langs Smith we should see that it's been populated so yeah we see a very simple runable sequence here was our document um and here's our output and here is our prompt answer the following question based on the context here's the document we passed in here is the question and then we get our answer so that's pretty nice um now there's a lot of other options for rag prompts I'll pull one in from our prompt tub this one's like kind of a popular prompt so it just like has a little bit more detail but you know it's the main the main intuition is the same um you're passing in documents you're asking them to reason about the documents given a question produce an answer and now here I'm going to find a rag chain which will automatically do the retrieval for us and all I have to do is specify here's my retriever which we defined before here's our question we which we invoke with the question gets passed through to the key question in our dict and it automatically will trigger the retriever which will return documents which get passed into our context so it's exactly what we did up here except before we did this manually and now um this is all kind of automated for us we pass that dick which is autop populated into our prompt llm out to parser now let invoke it and that should all just run and great we get an answer and we can look at the trace and we can see everything that happened so we can see our retriever was run these documents were retrieved they get passed into our LM and we get our final answer so this kind of the end of our overview um where we talked about I'll go back to the slide here quickly we talked about indexing retrieval and now generation and follow-up short videos we'll kind of dig into some of the more com complex or detailed themes that address some limitations that can arise in this very simple pipeline thanks hi my from Lang chain over the next few videos we're going to be talking about career translation um and in this first video we're going to cover the topic of multi-query so query translation sits kind of at the first stage of an advanced rag Pipeline and the goal of career translation is really to take an input user question and to translate in some way in order to improve retrieval so the problem statement is pretty intuitive user queries um can be ambiguous and if the query is poorly written because we're typically doing some kind of semantic similarity search between the query and our documents if the query is poorly written or ill opposed we won't retrieve the proper documents from our index so there's a few approaches to attack this problem and you can kind of group them in a few different ways so here's one way I like to think about it a few approaches has involveed query rewriting so taking a query and reframing it like writing from a different perspective um and that's what we're going to talk about a little bit here in depth using approaches like multi-query or rag Fusion which we'll talk about in the next video you can also do things like take a question and break it down to make it less abstract like into sub questions and there's a bunch of interesting papers focused on that like least to most from Google you can also take the opposite approach of take a question to make it more abstract uh and there's actually approach we're going to talk about later in a future video called stepback prompting that focuses on like kind of higher a higher level question from the input so the intuition though for this multier approach is we're taking a question and we're going to break it down into a few differently worded questions uh from different perspectives and the intuition here is simply that um it is possible that the way a question is initially worded once embedded it is not well aligned or in close proximity in this High dimensional embedding space to a document that we want to R that's actually related so the thinking is that by kind of rewriting it in a few different ways you actually increase the likel of actually retrieving the document that you really want to um because of nuances in the way that documents and questions are embedded this kind of more shotgun approach of taking a question Fanning it out into a few different perspectives May improve and increase the reliability of retrieval that's like the intuition really um and of course we can com combine this with retrieval so we can take our our kind of fan out questions do retrieval on each one and combine them in some way and perform rag so that's kind of the overview and now let's what let's go over to um our code so this is a notebook and we're going to share all this um we're just installing a few packages we're setting a lsmith API Keys which we'll see why that's quite useful here shortly there's our diagram now first I'm going to Index this blog post on agents I'm going to split it um well I'm going to load it I'm going to split it and then I'm going to index it in chroma locally so this is a vector store we've done this previously so now I have my index defined so here is where I'm defining my prompt for multiquery which is your your assistant your task is to basically reframe this question into a few different sub questions um so there's our prompt um right here we'll pass that to an llm part it um into a string and then split the string by new lines and so we'll get a list of questions out of this chain that's really all we're doing here now all we're doing is here's a sample input question there's our generate queries chain which we defined we're going to take that list and then simply apply each question to retriever so we'll do retrieval per question and this little function here is just going to take the unique Union of documents uh across all those retrievals so let's run this and see what happens so we're going to run this and we're going to get some set of questions uh or documents back so let's go to Langs Smith now we can actually see what happened under the hood so here's the key point we ran our initial chain to generate a set of of reframed questions from our input and here was that prompt and here is that set of questions that we generated now what happened is for every one of those questions we did an independent retrieval that's what we're showing here so that's kind of the first step which is great now I can go back to the notebook and we can show this working end to end so now we're going to take that retrieval chain we'll pass it into context of our final rag prompt we'll also pass through the question we'll pass that to our rag prompt here pass it to an LM and then Pary output now let's let's kind of see how that works so again that's okay there it is so let's actually go into langth and see what happened under the hood so this was our final chain so this is great we took our input question we broke it out to these like five rephrase questions for every one of those we did a retrieval that's all great we then took the unique Union of documents and you can see in our final llm prompt answer the following cont following question based on the context this is the final set of unique documents that we retrieved from all of our sub questions um here's our initial question there's our answer so that kind of shows you how you can set this up really easily how you can use l Smith to kind of investigate what's going on and in particular use l Smith to investigate those intermediate questions that you generate in that like kind of question generation phase and in a future talks we're going to go through um some of these other methods that we kind of introduced at the start of this one thank you last L chain this is the second video of our Deep dive on query translation in our rag from scratch series focused on a method called rag Fusion so as we kind of showed before career translation you can think of as the first stage in an advanced rag pipeline we're taking an input user question and We're translating it some way in order to improve retrievable now we showed this General mapping of approaches previously so again you have kind of like rewriting so you can take a question and like kind of break it down into uh differently worded are different different perspectives of the same question so that's kind of rewriting there's sub questions where you take a question break it down into smaller problems solve each one independently and then there step back where you take a question and kind of go more abstract where you kind of ask a higher level question as a precondition to answer the user question so those are the approaches and we're going to dig into one of the particular approaches for rewriting called rat Fusion now this is really similar to what we just saw with multiquery the difference being we actually apply a a kind of a clever rank ranking step of our retriev documents um which you call reciprocal rank Fusion that's really the only difference the the input stage of taking a question breaking it out into a few kind of differently worded questions retrieval on each one is all the same and we're going to see that in the code here shortly so let's just hop over there and then look at this so again here is a notebook that we introduced previously here's the packages we've installed we've set a few API keys for lsmith which we see why is quite useful um and you can kind of go down here to a rag Fusion section and the first thing you'll note is what our prompt is so it looks really similar to The Prompt we just saw with multiquery and simply your helpful assistant that generates multiple search queries based upon user input and here's the question output for queries so let's define our prompt and here was our query Generation chain again this looks a lot like we just saw we take our prompt Plum that into an llm and then basically parse by new lines and that'll basically split out these questions into a list that's all it's going to happen here so that's cool now here's where the novelty comes in each time we do retrieval from one of those questions we're going to get back a list of documents from our Retriever and so we do it over that we generate four questions here based on our prompt we do the over four questions well like a list of lists basically now reciprocal rank Fusion is really well suited for this exact problem we want to take this list to list and build a single Consolidated list and really all that's going on is it's looking at the documents in each list and kind of aggregating them into a final output ranking um and that's really the intuition around what's happening here um so let's go ahead and so let's so let's go ahead and look at that in some detail so we can see we run retrieval that's great now let's go over to Lang Smith and have a look at what's going on here so we can see that here was our prompt to your helpful assistant that generates multiple search queries based on a single input and here is our search queries and then here are our four retrievals so that's that's really good so we know that all is working um and then those retrievals simply went into this rank function and our correspondingly ranked to a final list of six unique rank documents that's really all we did so let's actually put that all together into an a full rag chain that's going to run retrieval return that final list of rank documents and pass it to our context pass through our question send that to a rag prompt pass it to an LM parse it to an output and let's run all that together and see that working cool so there's our final answer now let's have a look in lsmith we can see here was our four questions here's our retrievals and then our final rag prompt plumed through the final list of ranked six questions which we can see laid out here and our final answer so this can be really convenient particularly if we're operating across like maybe different Vector stores uh or we want to do like retrieval across a large number of of kind of differently worded questions this reciprocal rank Fusion step is really nice um for example if we wanted to only take the top three documents or something um it can be really nice to build that Consolidated ranking across all these independent retrievals then pass that to for the final generation so that's really the intuition about what's happening here thanks hi this is Lance from Lang chain this is our third video focused on query translation in the rag from scratch series and we're going to be talking about decomposition so query translation in general is a set of approaches that sits kind of towards the front of this overall rag Pipeline and the objective is to modify or rewrite or otherwise decompose an input question from a user in order improve retrieval so we can talk through some of these approaches previously in particular various ways to do query writing like rag fusion and multiquery there's a separate set of techniques that become pretty popular and are really interesting for certain problems which we might call like kind of breaking down or decomposing an input question into a set of sub questions um so some of the papers here that are are pretty cool are for example this work from Google um and the objective really is first to take an input question and decompose it into a set of sub problems so this particular example from the paper was the problem of um last letter concatenation and so it took the inut question of three words think machine learning and broke it down into three sub problems think think machine think machine learning as the third sub problem and then you can see in this bottom panel it solves each one individually so it shows for example in green solving the problem think machine where you can catenate the last letter of k with the last letter of machine or last letter think K less machine e can concatenate those to K and then for the overall problem taking that solution and then and basically building on it to get the overall solution of keg so that's kind of one concept of decomposing into sub problems solving them sequentially now a related work called IRC or in leap retrieval combines retrieval with Chain of Thought reasoning and so you can kind of put these together into one approach which you can think of as kind of dynamically retrieval um to solve a set of sub problems kind of that retrieval kind of interleaving with Chain of Thought as noted in the second paper and a set of decomposed questions based on your initial question from the first work from Google so really the idea here is we're taking one sub question we're answering it we're taking that answer and using it to help answer the second sub question and so forth so let's actually just walk through this in code to show how this might work so this is The Notebook we've been working with from some of the other uh videos you can see we already have a retriever to find uh up here at the top and what we're going to do is we're first going to find a prompt that's basically going to say given an input question let's break it down to set of sub problems or sub question which can be solved individually so we can do that and this blog post is focused on agents so let's ask a question about what are the main components of an LM powerered autonomous agent system so let's run this and see what the decomposed questions are so you can see the decomposed questions are what is LM technology how does it work um what are components and then how the components interact so it's kind of a sane way to kind of break down this problem into a few sub problems which you might attack individually now here's where um we Define a prompt that very simply is going to take our question we'll take any prior questions we've answered and we'll take our retrieval and basically just combine them and we can Define this very simple chain um actually let's go back and make sure retriever is defined up at the top so now we are building our retriever good we have that now so we can go back down here and let's run this so now we are running and what's happening is we're trying to solve each of these questions individually using retrieval and using any prior question answers so okay very good looks like that's been done and we can see here's our answer now let's go over to langth and actually see what happened under the hood so here's what's kind of of interesting and helpful to see for the first question so here's our first one it looks like it just does retrieval which is we expect and then it uses that to answer this initial question now for the second question should be a little bit more interesting because if you look at our prompt here's our question now here is our background available question answer pair so this was the answer question answer pair from the first question which we add to our prompt and then here's the retrieval for this particular question so we're kind of building up up the solution because we're pending the question answer pair from question one and then likewise with question three it should combine all of that so we can look at here here's our question here's question one here's question two great now here's additional retrieval related to this particular question and we get our final answer so that's like a really nice way you can kind of build up Solutions um using this kind of interleaved uh retrieval and concatenating question answer pairs I do want to mention very briefly that we can also take a different approach where we can just answer these all individually and then just concatenate all those answers to produce a final answer and I'll show that really quickly here um it's like a little bit less interesting maybe because you're not using answers from each uh question to inform the next one you're just answering them all in parallel this might be better for cases where it's not really like a sub question decomposition but maybe it's like like a set of set of several in independent questions whose answers don't depend on each other that might be relevant for some problems um and we can go ahead and run okay so this ran as well we can look at our trace and in this case um yeah we can see that this actually just kind of concatenates all of our QA pairs to produce the final answer so this gives you a sense for how you can use quer decomposition employ IDE IDE from uh from two different papers that are pretty cool thanks hi this is Lance from Lang chain this is the fourth video uh in our Deep dive on queer translation in the rag from scratch series and we're going to be focused on step back prompting so queer translation as we said in some of the prior videos kind of sits at the the kind of first stage of kind of a a a rag pipeline or flow and the main aim is to take an question and to translate it or modify in such a way that it improves retrieval now we talked through a few different ways to approach this problem so one General approach involves rewriting a question and we talk about two ways to do that rag fusion multiquery and again this is this is really about taking a question and modifying it to capture a few different perspectives um which may improve the retrieval process now another approach is to take a question and kind of make it less abstract like break it down into sub questions um and then solve each of those independently so that's what we saw with like least to most prompting um and a bunch of other variants kind of in that in that vein of sub problem solving and then consolidating those Solutions into a final answer now a different approach presented um by again Google as well is stepback prompting so stepback prompting kind of takes the the the opposite approach where it tries to ask a more abstract question so the paper talks a lot about um using F shot prompting to produce what they call the stepback or more abstract questions and the way it does it is it provides a number of examples of stepb back questions given your original question so like this is like this is for example they like for prompt temp you're an expert World Knowledge I asked you a question your response should be comprehensive not contradict with the following um and this is kind of where you provide your like original and then step back so here's like some example um questions so like um like uh at year saw the creation of the region where the country is located which region of the country um is the county of of herir related um Janell was born in what country what is janell's personal history so that that's maybe a more intuitive example so it's like you ask a very specific question about like the country someone's born the more abstract question is like just give me the general history of this individual without worrying about that particular um more specific question um so let's actually just walk through how this can be done in practice um so again here's kind of like a a diagram of uh the various approaches um from less abstraction to more abstraction now here is where we're formulating our prompt using a few of the few shot examples from the paper um so again like input um yeah something about like the police perform wful arrests and what what camp members of the police do so like it it basically gives the model a few examples um we basically formulate this into a prompt that's really all going on here again we we repeat um this overall prompt which we saw from the paper your expert World Knowledge your test is to step back and paraphrase a question generate more a generic step back question which is easier to answer here are some examples so it's like a very intuitive prompt so okay let's start with the question what is Task composition for llm agents and we're going to say generate stack question okay so this is pretty intuitive right what is a process of task compos I so like not worrying as much about agents but what is that process of task composition in general and then hopefully that can be independently um retrieved we we can independently retrieve documents related to the stepb back question and in addition retrieve documents related to the the actual question and combine those to produce kind of final answer so that's really all that's going on um and here's the response template where we're Plumbing in the stepback context and our question context and so what we're going to do here is we're going to take our input question and perform retrieval on that we're also going to generate our stepb back question and perform retrieval on that we're going to plumb those into the prompt as here's our very here's our basically uh our prompt Keys normal question step back question um and our overall question again we formulate those as a dict we Plum those into our response prompt um and then we go ahead and attempt to answer our overall question so we're going to run that that's running and okay we have our answer now I want to hop over to Langs Smith and attempt to show you um kind of what that looked like under the hood so let's see let's like go into each of these steps so here was our prompt right you're an expert World Knowledge your test to to step back and paraph as a question um so um here were our few shot prompts and this was our this was our uh stepb question so what is the process of task composition um good from the input what is Tas composition for LM agents we perform retrieval on both what is process composition uh and what is for LM agents we perform both retrievals we then populate our prompt with both uh original question answer and then here's the context retrieve from both the question and the stepb back question here was our final answer so again this is kind of a nice technique um probably depends on a lot of the types of like the type of domain you want to perform retrieval on um but in some domains where for example there's a lot of kind of conceptual knowledge that underpins questions you expect users to ask this stepback approach could be really convenient to automatically formulate a higher level question um to for example try to improve retrieval I can imagine if you're working with like kind of textbooks or like technical documentation where you make independent chapters focused on more highlevel kind of like Concepts and then other chapters on like more detailed uh like implementations this kind of like stepb back approach and independent retrieval could be really helpful thanks hi this is Lance from Lang chain this is the fifth video focused on queer translation in our rack from scratch series we're going to be talking about a technique called hide so again queer translation sits kind of at the front of the overall rag flow um and the objective is to take an input question and translate it in some way that improves retrieval now hide is an interesting approach that takes advantage of a very simple idea the basic rag flow takes a question and embeds it takes a document and embeds it and looks for similarity between an embedded document and embedded question but questions and documents are very different text objects so documents can be like very large chunks taken from dense um Publications or other sources whereas questions are short kind of tur potentially ill worded from users and the intuition behind hide is take questions and map them into document space using a hypothetical document or by generating a hypothetical document um that's the basic intuition and the idea kind of shown here visually is that in principle for certain cases a hypothetical document is closer to a desired document you actually want to retrieve in this you know High dimensional embedding space than the sparse raw input question itself so again it's just kind of means of trans translating raw questions into these hypothetical documents that are better suited for retrieval so let's actually do a Code walkthrough to see how this works and it's actually pretty easy to implement which is really nice so first we're just starting with a prompt and we're using the same notebook that we've used for prior videos we have a blog post on agents r index um so what we're going to do is Define a prompt to generate a hypothetical documents in this case we'll say write a write a paper passage uh to answer a given question so let's just run this and see what happens again we're taking our prompt piping it to to open Ai chck gpte and then using string Opa parer and so here's a hypothetical document section related to our question okay and this is derived of course lm's kind of embedded uh kind of World Knowledge which is you know a sane place to generate hypothetical documents now let's now take that hypothetical document and basically we're going to pipe that into a retriever so this means we're going to fetch documents from our index related to this hypothetical document that's been embedded and you can see we get a few qu a few retrieved uh chunks that are related to uh this hypothetical document that's all we've done um and then let's take the final step where we take those retrieve documents here which we defined and our question we're going to pipe that into this rag prompt and then we're going to run our kind of rag chain right here which you've seen before and we get our answer so that's really it we can go to lsmith and we can actually look at what happened um so here for example this was our final um rag prompt answer the following question based on this context and here is the retrieve documents that we passed in so that part's kind of straightforward we can also look at um okay this is our retrieval okay now this is this is actually what we we generated a hypothetical document here um okay so this is our hypothetical document so we've run chat open AI we generated this passage with our hypothetical document and then we've run retrieval here so this is basically showing hypothetical document generation followed by retrieval um so again here was our passage which we passed in and then here's our retrieve documents from the retriever which are related to the passage content so again in this particular index case it's possible that the input question was sufficient to retrieve these documents in fact given prior examples uh I know that some of these same documents are indeed retrieved just from the raw question but in other context it may not be the case so folks have reported nice performance using Hyde uh for certain domains and the Really convenient thing is that you can take this this document generation prompt you can tune this arbitrarily for your domain of Interest so it's absolutely worth experimenting with it's a it's a need approach uh that can overcome some of the challenges with retrieval uh thanks very much hi this is Lance from Lang chain this is the 10th video in our rack from scratch series focused on routing so we talk through query translation which is the process of taking a question and translating in some way it could be decomposing it using stepback prompting or otherwise but the idea here was take our question change it into a form that's better suited for retrieval now routing is the next step which is basically routing that potentially decomposed question to the right source and in many cases that could be a different database so let's say in this toy example we have a vector store a relational DB and a graph DB the what we redo with routing is we simply route the question based upon the cont of the question to the relevant data source so there's a few different ways to do that one is what we call logical routing in this case we basically give an llm knowledge of the various data sources that we have at our disposal and we let the llm kind of Reason about which one to apply the question to so it's kind of like the the LM is applying some logic to determine you which which data sour for example to to use alternatively you can use semantic routing which is where we take a question we embed it and for example we embed prompts we then compute the similarity between our question and those prompts and then we choose a prompt based upon the similarity so the general idea is in our diagram we talk about routing to for example a different database but it can be very general can be routing to different prompt it can be you know really arbitrarily taking this question and sending it at different places be at different prompts be at different Vector stores so let's walk through the code a little bit so you can see just like before we've done a few pip installs we set up lsmith and let's talk through uh logical routing first so so in this toy example let's say we had for example uh three different docs like we had python docs we had JS docs we had goang docs what we want to do is take a question route it to one of those three so what we're actually doing is we're setting up a data model which is basically going to U be bound to our llm and allow the llm to Output one of these three options as a structured object so you really think about this as like classification classification plus function calling to produce a structured output which is constrained to these three possibilities so the way we do that is let's just zoom in here a little bit we can Define like a structured object that we want to get out from our llm like in this case we want for example you know one of these three data sources to be output we can take this and we can actually convert it into open like open for example function schema and then we actually pass that in and bind it to our llm so what happens is we ask a question our llm invokes this function on the output to produce an output that adheres to the schema that we specify so in this case for example um we output like you know in this toy example let's say we wanted like you know an output to be data source Vector store or SQL database the output will contain a data source object and it'll be you know one of the options we specify as a Json string we also instantiate a parser from this object to parse that Json string to an output like a pantic object for example so that's just one toy example and let's show one up here so in this case again we had our three doc sources um we bind that to our llm so you can see we do with structured output basically under the hood that's taking that object definition turning into function schema and binding that function schema to our llm and we call our prompt you're an expert at routing a user question based on you know programming language um that user referring to so let's define our router here now what we're going to do is we'll ask a question that is python code so we'll call that and now it's done and you see the object we get out is indeed it's a route query object so it's exactly it aderes to this data model we've set up and in this case it's it's it's correct so it's calling this python doc so you can we can extract that right here as a string now once we have this you can really easily set up like a route so this could be like our full chain where we take this router we should defined here and then this choose route function can basically take that output and do something with it so for example if python docs this could then apply the question to like a retriever full of python information uh or JS same thing so this is where you would hook basically that question up to different chains that are like you know retriever chain one for python retriever chain two for JS and so forth so this is kind of like the routing mechanism but this is really doing the heavy lifting of taking an input question and turning into a structured object that restricts the output to one of a few output types that we care about in our like routing problem so that's really kind of the way this all hooks together now semantic outing is actually maybe even a little bit more straightforward based on what we've seen previously so in that case let's say we have two prompts we have a physics prompt we have a math prompt we can embed those prompts no problem we do that here now let's say we have an input question from a user like in this case what is a black hole we pass that through we then apply this runnable Lambda function which is defined right here what we're doing here is we're embedding the question we're Computing similarity between the question and the prompts uh we're taking the most similar and then we're basically choosing the prompt based on that similarity and you can see let's run that and try it out and we're using the physics prompt and there we go black holes region and space so that just shows you kind of how you can use semantic routing uh to basically embed a question embed for example various prompts pick the prompt based on sematic similarity so that really gives you just two ways to do routing one is logical routing with function in uh can be used very generally in this case we applied it to like different coding languages but imagine these could be swapped out for like you know my python uh my like vector store versus My Graph DB versus my relational DB and you could just very simply have some description of what each is and you know then not only will the llm do reasoning but it'll also return an object uh that can be parsed very cleanly to produce like one of a few very specific types which then you can reason over like we did here in your routing function so that kind of gives you the general idea and these are really very useful tools and I encourage you to experiment with them thanks hi this is Lance from Lang chain this is the 11th part of our rag from scratch video series focused on query construction so we previously talked through uh query translation which is the process of taking a question and converting it or translating it into a question that's better optimized for retrieval then we talked about routing which is the process of going taking that question routing it to the right Source be it a given Vector store graph DB um or SQL DB for example now we're going to talk about the process of query construction which is basically taking natural language and converting it into particular domain specific language uh for one of these sources now we're going to talk specifically about the process of going from natural language to uh meditated filters for Vector Stores um the problem statement is basically this let's imagine we had an index of Lang Chain video transcripts um you might want to ask a question give me you know or find find me videos on chat Lang chain published after 2024 for example um the the process of query structuring basically converts this natural language question into a structured query that can be applied to the metadata uh filters on your vector store so most Vector stores will have some kind of meditative filters that can do kind of structur querying on top of uh the chunks that are indexed um so for example this type of query will retrieve all chunks uh that talk about the topic of chat Lang chain uh published after the date 2024 that's kind of the problem statement and to do this we're going to use function calling um in this case you can use for example open AI or other providers to do that and we're going to do is at a high level take the metadata fields that are present in our Vector store and divide them to the model as kind of information and the model then can take those and produce queries that adhere to the schema provided um and then we can parse those out to a structured object like a identic object which again which can then be used in search so that's kind of the problem statement and let's actually walk through code um so here's our notebook which we've kind of gone through previously and I'll just show you as an example let's take a example YouTube video and let's look at the metadata that you get with the transcript so you can see you get stuff like description uh URL um yeah publish date length things like that now let's say we had an index that had um basically a that had a number of different metadata fields and filters uh that allowed us to do range filtering on like view count publication date the video length um or unstructured search on contents and title so those are kind of like the imagine we had an index that had uh those kind of filters available to us what we can do is capture that information about the available filters in an object so we're calling that this tutorial search object kind of encapsulates that information about the available searches that we can do and so we basically enumerate it here content search and title search or semantic searches that can be done over those fields um and then these filters then are various types of structure searches we can do on like the length um The View count and so forth and so we can just kind of build that object now we can set this up really easily with a basic simple prompt that says you know you're an expert can bring natural language into database queries you have access to the database tutorial videos um given a question return a database query optimize retrieval so that's kind of it now here's the key point though when you call this LM with structured output you're binding this pantic object which contains all the information about our index to the llm which is exactly what we talked about previously it's really this process right here you're taking this object you're converting it to a function schema for example open AI you're binding that to your model and then you're going to be able to get um structured object out versus a Json string from a natural language question which can then be parsed into a pantic object which you get out so that's really the flow and it's taking advantage of function calling as we said so if we go back down we set up our query analyzer chain right here now let's try to run that just on a on a purely semantic input so rag from scratch let's run that and you can see this just does like a Content search and a title search that's exactly what you would expect now if we pass a question that includes like a date filter let's just see if that would work and there we go so you kind of still get that semantic search um but you also get um search over for example publish date earliest and latest publish date kind of as as you would expect let's try another one here so videos focus on the topic of chat Lang chain they're published before 2024 this is just kind of a rewrite of this question in slightly different way using a different date filter and then you can see we can get we get content search title search and then we can get kind of a date search so this is a very general strategy that can be applied kind of broadly to um different kinds of querying you want to do it's really the process of going from an unstructured input to a structured query object out following an arbitrary schema that you provide and so as noted really this whole thing we created here this tutorial search is based upon the specifics of our Vector store of interest and if you want to learn more about this I link to some documentation here that talks a lot about different uh types of of Integrations we have with different Vector store providers to do exactly this so it's a very useful trick um it allows you to do kind of query uh uh say metadata filter filtering on the fly from a natural language question it's a very convenient trick uh that works with many different Vector DBS so encourage you to play with it thanks this is Lance from Lang chain I'm going to talk about indexing uh and mulation indexing in particular for the 12th part of our rag from scratch series here so we previously talked about a few different major areas we talk about query translation which takes a question and translates it in some way to optimize for retrieval we talk about routing which is the process of taking a question routing it to the right data source be it a vector store graph DB uh SQL DB we talked about queer construction we dug into uh basically queer construction for Vector stores but of course there's also text SQL text to Cipher um so now we're going to talk about indexing a bit in particular we're going to talk about indexing indexing techniques for Vector Stores um and I want to highlight one particular method today called multi-representation indexing so the high LEL idea here is derived a bit from a paper called proposition indexing which kind of makes a simple observation you can think about decoupling raw documents and the unit you use for retrieval so in the typical case you take a document you split it up in some way to index it and then you embed the split directly um this paper talks about actually taking a document splitting it in some way but then using an llm to produce what they call a proposition which you can think of as like kind of a distillation of that split so it's kind of like using an llm to modify that split in some way to distill it or make it like a crisper uh like summary so to speak that's better optimized for retrieval so that's kind of one highlight one piece of intuition so we actually taken that idea and we've kind of built on it a bit in kind of a really nice way that I think is very well suited actually for long context llms so the idea is pretty simple you take a document and you you actually distill it or create a proposition like they show in the prior paper I kind of typically think of this as just produce a summary of the document and you embed that summary so that summary is meant to be optimized for retrieval so might contain a bunch of keywords from the document or like the big ideas such that when you embed the summary you embed a question you do search you basically can find that document based upon this highly optimized summary for retrieval so that's kind of represented here in your vector store but here's the catch you independently store the raw document in a dock store and when you when you basically retrieve the summary in the vector store you return the full document for the llm to perform generation and this is a nice trick because at generation time now with long condex LMS for example the LM can handle that entire document you don't need to worry about splitting it or anything you just simply use the summary to prod like to create a really nice representation for fishing out that full dock use that full dock in generation there might be a lot of reasons you want to do that you want to make sure the LM has the full context to actually answer the question so that's the big idea it's a nice trick and let's walk through some code here we have a notebook all set up uh just like before we done some pip installs um set to maybe I Keys here for lsmith um kind of here's a diagram now let me show an example let's just load two different uh blog posts uh one is about agents one is about uh you know human data quality um and what we're going to do is let's create a summary of each of those so this is kind of the first step of that process where we're going from like the raw documents to summaries let's just have a look and make sure those ran So Okay cool so the first DOC discusses you know building autonomous agents the second doc contains the importance of high quality human data and training okay so that's pretty nice we have our summaries now we're going to go through a process that's pretty simple first we Define a vector store that's going to index those summaries now we're going to Define what we call like our our document storage is going to store the full documents okay so this multiv Vector retriever kind of just pulls those two things together we basically add our Dock Store we had this bite store is basically the the the full document store uh the vector store is our Vector store um and now this ID is what we're going to use to reference between the chunks or the summaries and the full documents that's really it so now for every document we'll Define a new Doc ID um and then we're basically going to like take our summary documents um and we're going to extract um for each of our summaries we're going to get the associated doc ID so we go um so let's go ahead and do that so we have our summary docs which we add to the vector store we have our full documents uh our doc IDs and the full raw documents which are added to our doc store and then let's just do a query Vector store like a similarity search on our Vector store so memory and agents and we can see okay so we can extract you know from the summaries we can get for example the summary that pertains to um a agents so that's a good thing now let's go ahead and run a query get relevant documents on our retriever which basically combines the summaries uh which we use for retrieval then the doc store which we use to get the full doc back so we're going to apply our query we're going to basically run this and here's the key Point we've gotten back the entire article um and we can actually if you want to look at the whole thing we we can just go ahead and do this here we go so this is the entire article that we get back from that search so it's a pretty nice trick again we query with just memory and agents um and we can kind of go back to our diagram here we quered for memory and agents it started our summaries it found the summary related to memory and agents it uses that doc ID to reference between the vector store and the doc store it fishes out the right full doc returns us the full document in this case the full web page that's really it simple idea nice way to go from basically like nice simple proposition style or summary style indexing to full document retrieval which is very useful especially with long contact LMS thank you hi this is Lance from Lang chain this is the 13th part of our rag from scratch series focused on a technique called Raptor so Raptor sits within kind of an array of different indexing techniques that can be applied on Vector Stores um we just talked about multi-representation indexing um we I priv a link to a video that's very good talking about the different means of chunking so I encourage you to look at that and we're going to talk today about a technique called Raptor which you can kind of think of it as a technique for hierarchical indexing so the highle intuition is this some questions require very detailed information from a corpus to answer like pertain to a single document or single chunk so like we can call those low-level questions some questions require consolidation across kind broad swast of a document so across like many documents or many chunks within a document and you can call those like higher level questions and so there's kind of this challenge in retrieval and that typically we do like K nearest neighbors retrieval like we've been talking about you're fishing out some number of chunks but what if you have a question that requires information across like five six you know or a number of different chunks which may exceed you know the K parameter in your retrieval so again when you typically do retrieval you might set a k parameter of three which means you're retrieving three chunks from your vector store um and maybe you have a high very high level question that could benefit from infation across more than three so this technique called raptor is basically a way to build a hierarchical index of document summaries and the intuition is this you start with a set of documents as your Leafs here on the left you cluster them and then you Summarize each cluster so each cluster of similar documents um will consult information from across your context which is you know your context could be a bunch of different splits or could even be across a bunch of different documents you're basically capturing similar ones and you're consolidating the information across them in a summary and here's the interesting thing you do that recursively until either you hit like a limit or you end up with one single cluster that's a kind of very high level summary of all of your documents and what the paper shows is that if you basically just collapse all these and index them together as a big pool you end up with a really nice array of chunks that span the abstraction hierarchy like you have a bunch of chunks from Individual documents that are just like more detailed chunks pertaining to that you know single document but you also have chunks from these summaries or I would say like you know maybe not chunks but in this case the summary is like a distillation so you know raw chunks on the left that represent your leavs are kind of like the rawest form of information either raw chunks or raw documents and then you have these higher level summaries which are all indexed together so if you have higher level questions they should basically be more similar uh in sematic search for example to these higher level summary chunks if you have lower level questions then they'll retrieve these more lower level chunks and so you have better semantic coverage across like the abstraction hierarchy of question types that's the intuition they do a bunch of nice studies to show that this works pretty well um I actually did a deep dive video just on this which I link below um I did want to cover it briefly just at a very high level um so let's actually just do kind of a code walkr and I've added it to this rack from scratch course notebook but I link over to my deep dive video as well as the paper and the the full code notebook which is already checked in is discussed at more length in the Deep dive the technique is a little bit detailed so I only want to give you very high levels kind of overview here and you can look at the Deep dive video if you want to go in more depth again we talked through this abstraction hierarchy um I applied this to a large set of Lang chain documents um so this is me loading basically all of our Lang chain expression language docs so this is on the order of 30 documents you can see I do a histogram here of the token counts per document some are pretty big most are fairly small less than you know 4,000 tokens um and what I did is I indexed all of them um individually so the all those raw documents you can kind of Imagine are here on the left and then I do um I do embedding I do clustering summarization and I do that recursively um until I end up with in this case I believe I only set like three levels of recursion and then I save them all my Vector store so that's like the highle idea I'm applying this Raptor technique to a whole bunch of Lang chain documents um that have fairly large number of tokens um so I do that um and yeah I use actually use both CLA as well as open AI here um this talks through the clustering method which they that they use which is pretty interesting you can kind of dig into that on your own if if you're really um interested this is a lot of their code um which I cite accordingly um this is basically implementing the clustering method that they use um and this is just simply the document embedding stage um this is like basically embedding uh and clustering that's really it uh some text formatting um summarizing of the clusters right here um and then this is just running that whole process recursively that's really it um this is tree building so basically I have the RO the rod docs let's just go back and look at Doc texts so this should be all my raw documents uh so that's right you can see it here doc text is basically just the text in all those Lang chain documents that I pulled um and so I run this process on them right here uh so this is that recursive embedding cluster basically runs and produces is that tree here's the results um this is me just going through the results and basically adding the result text to this list of uh texts um oh okay so here's what I do this Leaf text is all the raw documents and I'm appending to that all the summaries that's all it's going on and then I'm indexing them all together that's the key Point rag chain and there you have it that's really all you do um so anyway I encourage you to look at this in depth it's a pretty interesting technique it works well long with long contexts so for example one of the arguments I made is that it's kind of a nice approach to consult information across like a span of large documents like in this particular case my individual documents were lch expression language docs uh each each being somewhere in the order of you know in this case like you know most of them are less than 4,000 tokens some pretty big but I index them all I cluster them without any splits uh embed them cluster them build this tree um and go from there and it all works because we now have llms that can go out to you know 100 or 200,000 up to million tokens and Contex so you can actually just do this process for big swats of documents in place without any without any splitting uh it's a pretty nice approach so I encourage you to think about it look at it watch the deep that video If you really want to go deeper on this um thanks hi this is Lance from Lang chain this is the 14th part of our rag from scratch series we're going to I'm going to be talking about an approach called cold bear um so we've talked about a few different approaches for indexing and just as kind of a refresher indexing Falls uh kind of right down here in our flow we started initially with career translation taking a question translating it in some way to optimize retrieval we talked about routing it to a particular database we then talked about query construction so going from natural language to the DSL or domain specific language for E any of the databases that you want to work with those are you know metadata filters for Vector stores or Cipher for graph DB or SQL for relational DB so that's kind of the flow we talked about today we talked about some indexing approaches like multi-representation indexing we gave a small shout out to greet camer in the series on chunking uh we talked about hierarchical indexing and I want to include one Advanced kind embedding approach so we talked a lot about embeddings are obviously very Central to semantic similarity search um and retrieval so one of the interesting points that's been brought up is that embedding models of course take a document you can see here on the top and embed it basically compress it to a vector so it's kind of a compression process you representing all the semantics of that document in a single Vector you're doing the same to your question you're doing similarity search between the question embedding and the document embedding um in order to perform retrieval you're typically taking the you know K most similar um document abetting is given a question and that's really how you're doing it now a lot of people said well hey the compressing a full document with all this Nuance to single Vector seems a little bit um overly restrictive right and this is a fair question to ask um there's been some interesting approaches to try to address that and one is this this this approach method called Co bear so the intuition is actually pretty straightforward there's a bunch of good articles I link down here this is my little cartoon to explain it which I think is hopefully kind of helpful but here's the main idea instead of just taking a document and compressing it down to a single Vector basically single uh what we might call embedding Vector we take the document we break it up into tokens so tokens are just like you know units of of content it depends on the token areas you use we talked about this earlier so you basically tokenize it and you produce basically an embedding or vector for every token and there's some kind of positional uh waiting that occurs when you do this process so you obviously you look to look at the implementation understand the details but the intuition is that you're producing some kind of representation for every token okay and you're doing the same thing for your question so you're taking your question you're breaking into a tokens and you have some representation or vector per token and then what you're doing is for every token in the question you're Computing the similarity across all the tokens in the document and you're finding the max you're taking the max you're storing that and you're doing that process for all the tokens in the question so again token two you compare it to every token in the in the document compute the Max and then the final score is in this case the sum of the max similarities uh between every question token and any document token so it's an interesting approach uh it reports very strong performance latency is definitely a question um so kind of production Readiness is something you should look into but it's a it's an approach that's worth mentioning here uh because it's pretty interesting um and let's walk through the code so there's actually nice Library called rouille which makes it very easy to play with Co bear um she's pip install it here I've already done that and we can use one of their pre-train models to mediate this process so I'm basically following their documentation this is kind of what they recommended um so I'm running this now hopefully this runs somewhat quickly I'm not sure I I previously have loaded this model so hopefully it won't take too long and yeah you can see it's pretty quick uh I'm on a Mac M2 with 32 gigs um so just as like a context in terms of my my system um this is from their documentation we're just grabbing a Wikipedia page this is getting a full document on Miyazaki so that's cool we're going to grab that now this is just from their docs this is basically how we create an index so we provide the you know some index name the collection um the max document length and yeah you should look at their documentation for these flags these are just the defaults so I'm going to create my index um so I get some logging here so it it's working under the hood um and by the way I actually have their documentation open so you can kind of follow along um so um let's see yeah right about here so you can kind of follow this indexing process to create an index you need to load a train uh a trained model this can be either your own pre-train model or one of ours from The Hub um and this is kind of the process we're doing right now create index is just a few lines of code and this is exactly what we're doing um so this is the you know my documents and this is the indexing step that we just we just kind of walk through and it looks like it's done um so you get a bunch of logging here that's fine um now let's actually see if this works so we're going to run drag search what an emotion Studio did Miaki found set our K parameter and we get some results okay so it's running and cool we get some documents out so you know it seems to work now what's nice is you can run this within lighting chain as a liting chain retriever so that basically wraps this as a lighting chain Retriever and then you can use it freely as a retriever within Lang chain it works with all the other different LMS and all the other components like rankers and so forth that we talk through so you can use this directly as a retriever let's try this out and boom nice and fast um and we get our documents again this is a super simple test example you should run this maybe on more complex cases but it's pretty pretty easy spin up it's a really interesting alternative indexing approach um using again like we talked through um a very different algorithm for computing do similarity that may work better I think an interesting regime to consider this would be longer documents so if you want like longer um yeah if if you basically want kind of long context embedding I think you should look into for example the uh Max token limits for this approach because it partitions the document into into each token um I would be curious to dig into kind of what the overall context limits are for this approach of coar but it's really interesting to consider and it reports very strong performance so again I encourage you to play with it and this is just kind of an intro to how to get set up and to start experimenting with it really quickly thanks hi this is Lance from Lang chain I'm going to be talking about using langra to build a diverse and sophisticated rag flows so just to set the stage the basic rag flow you can see here starts with a question retrieval of relevant documents from an index which are passed into the context window of an llm for generation of an answer ground in your documents that's kind of the basic outline and we can see it's like a very linear path um in practice though you often encounter a few different types of questions like when do we actually want to retrieve based upon the context of the question um are the retrieve documents actually good or not and if they're not good should we discard them and then how do we loot back and retry retrieval with for example and improved question so these types of questions motivate an idea of active rag which is a process where an llm actually decides when and where to retrieve based upon like existing retrievals or existing Generations now when you think about this there's a few different levels of control that you have over an llm in a rag application the base case like we saw with our chain is just use an llm to choose a single steps output so for example in traditional rag you feed it documents and it decides to generation so it's just kind of one step now a lot of rag workflows will use the idea of routing so like given a question should I route it to a vector store or a graph DB um and we have seen this quite a bit now this newer idea that I want to introduce is how do we build more sophisticated logical flows um in a rag pipeline um that you let the llm choose between different steps but specify all the transitions that are available and this is known as we call a state machine now there's a few different architectures that have emerged uh to build different types of rag chains and of course chains are traditionally used just for like very basic rag but this notion of State machine is a bit newer and Lang graph which we recently released provides a really nice way to build State machines for Rag and for other things and the general idea here is that you can lay out more diverse and complicated rag flows and then Implement them as graphs and it kind of motivates this more broad idea of of like flow engineering and thinking through the actual like workflow that you want and then implementing it um and we're gonna actually do that right now so I'm GNA Pi a recent paper called CAG corrective rag which is really a nice method um for active rag that incorporates a few different ideas um so first you retrieve documents and then you grade them now if at least one document exceeds the threshold for relevance you go to generation you generate your answer um and it does this knowledge refinement stage after that but let's not worry about that for right now it's kind of not essential for understanding the basic flow here so again you do a grade for relevance for every document if any is relevant you generate now if they're all ambiguous or incorrect based upon your grader you retrieve from an external Source they use web search and then they pass that as their context for answer generation so it's a really neat workflow where you're doing retrieval just like with basic rag but then you're reasoning about the documents if they're relevant go ahead and at least one is relevant go ahead and generate if they're not retrieve from alternative source and then pack that into the context and generate your answer so let's see how we would implement this as a estate machine using Lang graph um we'll make a few simplifications um we're going to first decide if any documents are relevant we'll go ahead and do the the web search um to supplement the output so that's just like kind of one minor modification um we'll use tab search for web search um we use Query writing to optimize the search for uh to optimize the web search but it follows a lot of the the intuitions of the main paper uh small note here we set the Tav API key and another small mode I've already set my lsmith API key um with which we'll see is useful a bit later for observing the resulting traces now I'm going to index three blog posts that I like um I'm going to use chroma DB I'm G use open ey embeddings I'm going to run this right now this will create a vector store for me from these three blog posts and then what I'm going to do is Define State now this is kind of the core object that going to be passed around my graph that I'm going to modify and right here is where I Define it and the key point to note right now is it's just a dictionary and it can contain things that are relevant for rag like question documents generation and we'll see how we update that in in in a little bit but the first thing to note is we Define our state and this is what's going to be modified in every Noe of our graph now here's really the Crux of it and this is the thing I want to zoom in on a little bit um so when you kind of move from just thinking about promps to thinking about overall flows it it's like kind of a fun and interesting exercise I kind of think about this as it's been mentioned on Twitter a little bit more like flow engineering so let's think through what was actually done in the paper and what modifications to our state are going to happen in each stage so we start with a question you can see that on the far left and this kind of state is represent as a dictionary like we have we start with a question we perform retrieval from our Vector store which we just created that's going to give us documents so that's one node we made an an adjustment to our state by adding documents that's step one now we have a second node where we're going to grade the documents and in this node we might filter some out so we are making a modification to state which is why it's a node so we're going to have a greater then we're going to have what we're going to call a conditional Edge so we saw we went from question to retrieval retrieval always goes to grading and now we have a decision if any document is irrelevant we're going to go ahead and do web search to supplement and if they're all relevant will go to generation it's a minor kind of a minor kind of logical uh decision ision that we're going to make um if any are not relevant we'll transform the query and we'll do web search and we'll use that for Generation so that's really it and that's how we can kind of think about our flow and how our States can be modified throughout this flow now all we then need to do and I I kind of found spending 10 minutes thinking carefully through your flow engineering is really valuable because from here it's really implementation details um and it's pretty easy as you'll see so basically I'm going to run this code block but then we can like walk through some of it I won't show you everything so it'll get a little bit boring but really all we're doing is we're finding functions for every node that take in the state and modify in some way that's all it's going on so think about retrieval we run retrieval we take in state remember it's a dict we get our state dick like this we extract one keyy question from our dick we pass that to a retriever we get documents and we write back out State now with documents key added that's all generate going to be similar we take in state now we have our question and documents we pull in a prompt we Define an llm we do minor post processing on documents we set up a chain for retrieval uh or sorry for Generation which is just going to be take our prompt pump Plum that to an llm partially output a string and we run it right here invoking our documents in our question to get our answer we write that back to State that's it and you can kind of follow here for every node we just Define a function that performs the state modification that we want to do on that node grading documents is going to be the same um in this case I do a little thing extra here because I actually Define a identic data model for my grader so that the output of that particular grading chain is a binary yes or no you can look at the code make sure it's all shared um and that just makes sure that our output is is very deterministic so that we then can down here perform logical filtering so what you can see here is um we Define this search value no and we iterate through our documents we grade them if any document uh is graded as not relevant we flag this search thing to yes that means we're going to perform web search we then add that to our state dict at the end so run web search now that value is true that's it and you can kind of see we go through some other nodes here there's web search node um now here is where our one conditional Edge we Define right here this is where where we decide to generate or not based on that search key so we again get our state let's extract the various values so we have this search value now if search is yes we return the next no that we want to go to so in this case it'll be transform query which will then go to web search else we go to generate so what we can see is we laid out our graph which you can kind of see up here and now we Define functions for all those nodes as well as the conditional Edge and now we scroll down all we have to do is just lay that out here again as our flow and this is kind of what you might think of as like kind of flow engineering where you're just laying out the graph as you drew it where we have set our entry point as retrieve we're adding an edge between retrieve and grade documents so we went retrieval grade documents we add our conditional Edge depending on the grade either transform the query go to web search or just go to generate we create an edge between transform the query and web search then web search to generate and then we also have an edge generate to end and that's our whole graph that's it so we can just run this and now I'm going to ask a question so let's just say um how does agent memory work for example let's just try that and what this is going to do is going to print out what's going on as we run through this graph so um first we going to see output from retrieve this is going to be all of our documents that we retrieved so that's that's fine this just from our our retriever then you can see that we're doing a relevance check across our documents and this is kind of interesting right you can see we grading them here one is grade as not relevant um and okay you can see the documents are now filtered because we removed the one that's not relevant and because one is not relevant we decide okay we're going to just transform the query and run web search and um you can see after query transformation we rewrite the question slightly we then run web search um and you can see from web search it searched from some additional sources um which you can actually see here it's appended as a so here it is so here it's a new document appended from web search which is from memory knowledge requirements so it it basically looked up some AI architecture related to memory uh web results so that's fine that's exactly what we want to do and then um we generate a response so that's great and this is just showing you everything in kind of gory detail but I'm going to show you one other thing that's that's really nice about this if I go to lsmith I have my AP I ke set so all my Generations are just logged to to lsmith and I can see my Lang graph run here now what's really cool is this shows me all of my nodes so remember we had retrieve grade we evaluated the grade because one was irrelevant we then went ahead and transformed the query we did a web search we pended that to our context you can see all those steps are laid out here in fact you can even look at every single uh grader and its output I will move this up slightly um so you can see the the different scores for grades okay so this particular retrieval was graded as as not relevant so that's fine that that can happen in some cases and because of that um we did a query transformation so we modified the question slightly how does memory how does the memory system an artificial agents function so it's just a minor rephrasing of the question we did this Tav web search this is where it queried from this particular blog post from medium so it's like a sing web query we can like sanity check it and then what's need is we can go to our generate step look at open Ai and here's our full prompt how does the memory system in our official agents function and then here's all of our documents so this is the this is the web search as well as we still have the Rel chunks that were retrieved from our blog posts um and then here's our answer so that's really it you can see how um really moving from the notion of just like I'll actually go back to the original um moving from uh I will try to open this up a little bit um yeah I can see my face still um the transition from laying out simple chains to flows is a really interesting and helpful way of thinking about why graphs are really interesting because you can encode more sophisticated logical reasoning workflows but in a very like clean and well-engineered way where you can specify all the transitions that you actually want to have executed um and I actually find this way of thinking and building kind of logical uh like workflows really intuitive um we have a blog post coming out uh tomorrow that discusses both implementing self rag as well as C rag for two different active rag approaches using using uh this idea of of State machines and Lang graph um so I encourage you to play with it uh I found it really uh intuitive to work with um I also found uh inspection of traces to be quite intuitive using Lang graph because every node is enumerated pretty clearly for you which is not always the case when you're using other types of of more complex reasoning approaches for example like agents so in any case um I hope this was helpful and I definitely encourage you to check out um kind of this notion of like flow engineering using Lang graph and in the context of rag it can be really powerful hopefully as you've seen here thank you hey this is Lance from Lang chain I want to talk to a recent paper that I saw called adaptive rag which brings together some interesting ideas that have kind of been covered in other videos but this actually ties them all together in kind of a fun way so the the two big ideas to talk about here are one of query analysis so we've actually done kind of a whole rag from scratch series that walks through each of these things in detail but this is a very nice example of how this comes together um with some other ideas we've been talking about so query analysis is typically the process of taking an input question and modifying in some way uh to better optimize retrieval there's a bunch of different methods for this it could be decomposing it into sub questions it could be using some clever techniques like stepb back prompting um but that's kind of like the first stage of query analysis then typically you can do routing so you route a question to one of multiple potential sources it could be one or two different Vector stores it could be relational DB versus Vector store it could be web search it could just be like an llm fallback right so this is like one kind of big idea query analysis right it's kind of like the front end of your rag pipeline it's taking your question it's modifying it in some way it's sending it to the right place be it a web search be it a vector store be it a relational DB so that's kind of topic one now topic two is something that's been brought up in a few other videos um of what I kind of call Flow engineering or adaptive rag which is the idea of doing tests in your rag pipeline or in your rag inference flow uh to do things like check relevance documents um check whether or not the answer contains hallucinations so this recent blog post from Hamil Hussein actually covers evaluation in in some really nice detail and one of the things he highlighted explicitly is actually this topic so he talks about unit tests and in particular he says something really interesting here he says you know unlike typical unit tests you want to organize these assertions in places Beyond typical unit testing such as data cleaning and here's the key Point automatic retries during model inference that's the key thing I want to like draw your attention to to it's a really nice approach we've talked about some other papers that do that like corrective rag self rag but it's also cool to see it here and kind of encapsulated in this way the main idea is that you're using kind of unit tests in your flow to make Corrections like if your retrieval is bad you can correct from that if your generation has hallucinations you can correct from that so I'm going to kind of draw out like a cartoon diagram of what we're going to do here and you can kind of see it here we're starting with a question we talked about query analysis we're going to take our question and we're going to decide where it needs to go and for this particular toy example I'm going to say either send it to a vector store send it to web search or just have the llm answer it right so that's like kind of my fallback Behavior then we're going to bring in that idea of kind of online flow engineering or unit testing where I'm going to have my retrieval either from the VOR store or web search I'm then going to ask is this actually relevant to the question if it isn't I'm actually going to kick back to web sech so this is a little bit more relevant in the case if I've routed to to the vector store done retrieval documents aren't relevant I'll have a fallback mechanism um then I'm going to generate I check for hallucinations in my generation and then I check for um for whether or not the the generation actually answers the question then I return my answer so again we're tying together two ideas one is query analysis like basically taking a question routing it to the right place modifying it as needed and then kind of online unit testing and iterative flow feedback so to do this I've actually heard a lot of people talk online about command r a new model release from gooh here it has some pretty nice properties that I was kind of reading about recently so one it has nice support for Tool use and it does support query writing in the context of tool use uh so this all rolls up in really nice capabilities for routing it's kind of one now two it's small it's 35 billion parameter uh it's actually open weight so you can actually run this locally and I've tried that we can we can talk about that later uh so and it's also fast served via the API so it's kind of a small model and it's well tuned for rag so I heard a lot of people talking about using coher for Rag and it has a large context 120,000 tokens so this like a nice combination of properties it supports to and routing it's small and fast so it's like quick for grading and it's well tuned for rag so it's actually a really nice fit for this particular workflow where I want to do query analysis and routing and I want to do kind of online checking uh and rag so kind of there you go now let's just get to the coding bit so I have a notebook kind of like usual I've done a few pip installs you can see it's nothing exotic I'm bringing Lang chain coh here I set my coher API key now I'm just going to set this Lang chain project within lsmith so all my traces for this go to that project and I have enabled tracing so I'm using Langs Smith here so we're going to walk through this flow and let's do the first thing let's just build a vector store so I'm going to build a vector store using coherent beddings with chroma open source Vector DB runs locally from three different web pages on blog post that I like so it pertains to agents prompt engineering and adversarial attacks so now I have a retriever I can run retriever invoke and I can ask a question about you know agent memory agent memory and there we go so we get documents back so there we go we have a retriever now now here's where I'm going to bring in coh here I also want a router so you look at our flow the first step is this routing stage right so what I'm going to do is I'm guess we going to find two tools a web search tool and a vector store tool okay in my Preamble is just going to say you're an expert routing user questions to Vector store web search now here's the key I tell it what the vector store has so again my index my Vector store has agents prompt engineering adial tax I just repeat that here agents prompt adversarial tax so it knows what's in the vector store um so use it for questions on these topics otherwise use web search so that's it I use command R here now I'm going to bind these tools to the model and attach the Preamble and I have a structured LM router so let's give it a let's give this a few tests just to like kind of sandbox this a little bit so I can inval here's my chain I have a router prompt I pass that to the structured LM router which I defined right here and um let's ask a few different questions like who will the Bears draft in the NFL draft with types of agent memory and Hi how are you so I'm going to kick that off and you can see you know it does web search it does it goes to Vector store and then actually returns this false so that's kind of interesting um this is actually just saying if it does not use either tool so for that particular query web search or the vector store was inappropriate it'll just say hey I didn't call one of those tools so that's interesting we'll use that later so that's my router tool now the second thing is my grader and here's where I want to show you something really nice that is generally useful uh for many different problems you might encounter so here's what I'm doing I'm defining a data model uh for My Grade so basically grade documents it's going to have this is a pantic object it is just basically a binary score here um field specified here uh documents are relevant to the question yes no I have a preamble your grer assessing relevance of retrieve documents to a user question um blah blah blah so you know and then basically give it a b score yes no I'm using command R but here's the catch I'm using this wi structured outputs thing and I'm passing my grade documents uh data model to that that so this is the key thing we can test this right now as well it's going to return an object based on the schema I give it which is extremely useful for all sorts of use cases and let's actually Zoom back up so we're actually right here so this greater stage right I want to constrain the output to yes no I don't want any preambles I want anything because the logic I'm going to build in this graph is going to require a yes no binary response from this particular Edge in our graph so that's why this greater tool is really useful and I'm asking like a mock question types of agent memory I do a retriever I do a retrieval from our Vector store I get the tuck and I test it um I invoke our greater retrieval grater chain with the question the doc text and it's relevant as we would expect so that's good but again let's just kind of look at that a little bit more closely what's actually happening under the hood here here's the pantic object we passed here's the document in question I'm providing basically it's converting this object into coher function schema it's binding that to the llm we pass in the document question it returns an object basic a Json string per our pantic schema that's it and then it's just going to like parse that into a pantic object which we get at the end of the day so that's what's happening under the hood with this with structured output thing but it's extremely useful and you'll see we're going to use that a few different places um um because we want to ensure that in our in our flow here we have three different grading steps and each time we want to constrain the output to yes no we're going to use that structured output more than once um this is just my generation so this is good Old Rag let's just make sure that works um I'm using rag chain typical rag prompt again I'm using cohere for rag pretty easy and yeah so the rag piece works that's totally fine nothing to it crazy there um I'm going to find this llm fallback so this is basically if you saw a router chain if it doesn't use a tool I want to fall back and just fall back to the llm so I'm going to kind of build that as a little chain here so okay this is just a fallback I have my Preamble just you're you're an assistant answer the question based upon your internal knowledge so again that fallback behavior is what we have here so what we've done already is we defined our router piece we've defined our our basic retrieval our Vector store we already have here um we've defined our first logic or like grade check and we defined our fallback and we're just kind of roll through the parts of our graph and Define each piece um so I'm going to have two other graders and they're going to use the same thing we just talked about slightly different data model I mean same output but actually just slightly different uh prompt um and you know descript destion this in this case is the aners grounded the facts yes no this is my hallucination grater uh and then I have an answer grader as well and I've also run a test on each one and you can see I'm getting binary this this these objects out have a binary score so this a pantic object with a binary score uh and that's exactly what we want cool and I have a Search tool so that's really nice we've actually gone through and we've kind of laid out I have like a router I've tested it we have a vector story tested we've tested each of our graders here we've also tested generation of just doing rag so we have a bunch of pieces built here we have a fallback piece we have web search now the question is how do I Stitch these together into this kind of flow and for that I I like to use Lang graph we'll talk a little about Lang graph versus agents a bit later but I want to show you why this is really easy to do using Lang graph so what's kind of nice is I've kind of laid out all my logic here we've tested individually and now all I'm going to do is I'm going to first lay out uh the parts of my graph so what you're going to notice here is first there's a graph state so this state represents kind of the key parts of the graph or the key kind of objects within the graph that we're going to be modifying so this is basically a graph centered around rag we're going to have question generation and documents that's really kind of the main things we're going to be working with in our graph so then you're going to see something that's pretty intuitive I think what you're going to see is we're going to basically walk through this flow and for each of these little circles we're just going to find a function and these uh little squares or these these you can think about every Circle as a node and every kind of diamond here as as an edge or conditional Edge so that's actually what we're going to do right now we're going to lay out all of our nodes and edges and each one of them are just going to be a function and you're going to see how we do that right now so I'm going to go down here I def find my graph state so this is what's going to be kind of modified and propagated throughout my graph now all I'm going to do is I'm just going to find a function uh for each of those nodes so let me kind of go side by side and show you the diagram and then like kind of show the nodes next to it so here's the diagram so we have uh a retrieve node so that kind of represents our Vector store we have a fallback node that's this piece we have a generate node so that's basically going to do our rag you can see there we have a grade documents node kind of right here um and we have a web search node so that's right here cool now here's where we're actually to find the edges so you can see our edges are the pieces of the graph that are kind of making different decisions so this route question Edge basic conditional Edge is basically going to take an input question and decide where it needs to go and that's all we're doing down here it kind of follows what we did up at the top where we tested this individually so recall we basically just invoke that question router returns our source now remember if tool calls were not in the source we do our fall back so we show actually showed that all the way up here remember this if tool calls is not in the response this thing will just be false so that means we didn't either we didn't call web search and we didn't call uh our retriever tool so then we're just going to fall back um yep right here and this is just like uh you know a catch just in case a tool could make a decision but most interestingly here's where we choose a data source basically so um this is the output of our tool call we're just going to fish out the name of the tool so that's data source and then here we go if the data source is web search I'm returning web search as basically the next node to go to um otherwise if it's Vector store we return Vector store as the next node to go to so what's this search thing well remember we right up here Define this node web search that's it we're just going to go to that node um what's this Vector store um you'll see below how we can kind of tie these strings that we returned from the conditional Edge to the node we want to go to that's really it um same kind of thing here decide to generate that's going to roll in these two conditional edges into one um and basically it's going to do if there's no documents so basic basically if we filtered out all of our documents from this first test here um then what we're going to do is we've decided all documents are not relevant to the question and we're going to kick back to web search exactly as we show here so that's this piece um otherwise we're going to go to generate so that's this piece so again in these conditional edges you're basically implementing the logic that you see in our diagram right here that's all that's going on um and again this is just implementing the final two checks uh for hallucinations and and answer relevance um and um yep so here's our hallucination grader we then extract the grade if the if basically there are hallucinations um oh sorry in this case the grade actually yes means that the answer is grounded so we say answer is actually grounded and then we go to the next step we go to the next test that's all this is doing it's just basically wrapping this logic that we're implementing here in our graph so that's all that's going on and let's go ahead and Define all those things so nice we have all that um now we can actually go down a little bit and we can pull um this is actually where we stitch together everything so all it's happening here is you see we defined all these functions up here we just add them as nodes in our graph here and then we build our graph here basically by by basically laying out the flow or the connectivity between our nodes and edges so you know you can look at this notebook to kind of study in a bit of detail what's going on but frankly what I like to do here typically just draw out a graph kind of like we did up here and then Implement uh the Lo logical flow here in your graph as nodes and edges just like we're doing here that's all that's happening uh so again we have like our entry point is the router um this is like the output is this is basically directing like here's what the router is outputting and here's the next node to go to so that's it um and then for each node we're kind of applying like we're saying like what's what's the flow so web search goes to generate after um and retrieve goes to grade documents grade documents um kind of is is like is a conditional Edge um depending on the results we either do web search or generate and then our second one we go from generate to uh basically this grade uh generation versus documents in question based on the output of that we either have hallucinations we regenerate uh we found that the answer is not useful we kick back to web search or we end um finally we have that llm fallback and that's also if we go to the fallback we end so what you're seeing here is actually the the logic flow we're laying out in this graph matches the diagram that we laid out up top I'm just going to copy these over and I'll actually go then back to the diagram and and kind of underscore that a little bit more so here is the flow we've laid out again here is our diagram and you can kind of look at them side by side and see how they basically match up so here's kind of our flow diagram going from basically query analysis that's this thing this route question and you can see web search Vector store LM fallback LM fallback web search vector store so those are like the three options that can come out of this conditional Edge and then here's where we connect so if we go to web search then basically we next go to generate so that's kind of this whole flow um now if we go to retrieve um then we're going to grade so that's it um and you know it follows kind of as you can see here that's really it uh so it's just nice to draw the these diagrams out first and then it's pretty quick to implement each node and each Edge just as a function and then stitch them together in a graph just like I show here and of course we'll make sure this code's publ so you can use it as a reference um so there we go now let's try a few a few different test questions so like what player the Bears to draft and NFL draft right let's have a look at that and they should print everything it's doing as we go so okay this is important route question it just decides to route to web search that's good it doesn't go to our Vector store this is a current event not related to our Vector store at all it goes to web search um and then it goes to generate so that's what we'd expect so basically web search goes through to generate um and we check hallucinations Generations ground the documents we check generation versus question the generation addresses the question the Chicago Bears expected to draft Caleb Williams that's right that's that's the consensus so cool that works now let's ask a question related to our Vector store what are the types of agent memory we'll kick this off so we're routing okay we're routing to rag now look how fast this is that's really fast so we basically whip through that document grading determine they're all relevant uh we go to decision to generate um we check hallucinations we check answer versus question and there are several types of memory stored in the human brain memory can also be stored in G of Agents you have LM agents memory stream retrieval model and and reflection mechanism so it's representing what's captured on the blog post pretty reasonably now let me show you something else is kind of nice I can go to Langs Smith and I can go to my projects we create this new project coher adaptive rag at the start and everything is actually logged there everything we just did so I can open this up and I can actually just kind of look through all the stages of my Lang graph to here's my retrieval stage um here's my grade document stage and we can kind of audit the grading itself we kind of looked at this one by one previously but it's actually pretty nice we can actually audit every single individual document grade to see what's happening um we can basically go through um to this is going to be one of the other graders here um yep so this is actually going to be the hallucination grading right here uh and then this is going to be the answer grading right here so that's really it you can kind of walk through the entire graph you can you can kind of study what's going on um which is actually very useful so it looks like this worked pretty well um and finally let's just ask a question that should go to that fallback uh path down at the bottom like not related at all to our Vector store current events and yeah hello I'm doing well so it's pretty neat we've seen in maybe 15 minutes we've from scratch built basically a semi- sophisticated rag system that has agentic properties we've done in Lang graph we've done with coher uh command R you can see it's pretty darn fast in fact we can go to Langs Smith and look at so this whole thing took 7 seconds uh that is not bad let's look at the most recent one so this takes one second so the fallback mechanism to the LM is like 1 second um the let's just look here so 6 seconds for the initial uh land graph so this is not bad at all it's quite fast it done it does quite a few different checks we do routing uh and then we have kind of a bunch of nice fallback behavior and inline checking uh for both relevance hallucinations and and answer uh kind of groundedness or answer usefulness so you know this is pretty nice I definitely encourage you to play with a notebook command R is a really nice option for this due to the fact that is tool use routing uh small and quite fast and it's really good for Rags it's a very nice kind of uh a very nice option for workflows like this and I think you're going to see more and more of this kind of like uh adaptive or self-reflective rag um just because this is something that a lot systems can benefit from like a a lot of production rack systems kind of don't necessarily have fallbacks uh depending on for example like um you know if the documents retrieved are not relevant uh if the answer contains hallucinations and so forth so this opportunity to apply inline checking along with rag is like a really nice theme I think we're going to see more and more of especially as model inference gets faster and faster and these checks get cheaper and cheaper to do kind of in the inference Loop now as a final thing I do want to bring up the a point about you know we've shown this Lang graph stuff what about agents you know how do you think about agents versus Lang graph right and and I think the way I like to frame this is that um Lang graph is really good for um flows that you have kind of very clearly defined that don't have like kind of open-endedness but like in this case we know the steps we want to take every time we want to do um basically query analysis routing and then we want to do a three grading steps and that's it um Lang graph is really good for building very reliable flows uh it's kind of like putting an agent on guard rails and it's really nice uh it's less flexible but highly reliable and so you can actually use smaller faster models with langra so that's the thing I like about we saw here command R 35 billion parameter model works really well with langra quite quick we' were able to implement a pretty sophisticated rag flow really quickly 15 minutes um in time is on the order of like less than you know around 5 to 6 seconds so so pretty good right now what about agents right so I think Agents come into play when you want more flexible workflows you don't want to necessarily follow a defined pattern a priori you want an agent to be able to kind of reason and make of open-end decisions which is interesting for certain like long Horizon planning problems you know agents are really interesting the catch is that reliability is a bit worse with agents and so you know that's a big question a lot of people bring up and that's kind of where larger LMS kind of come into play with a you know there's been a lot of questions about using small LMS even open source models with agents and reliabilities kind of continuously being an issue whereas I've been able to run these types of land graphs with um with uh like mraw or you know command R actually is open weights you can run it locally um I've been able to run them very reproducibly with open source models on my laptop um so you know I think there's a tradeoff and Comm actually there's a new coher model coming out uh believe command R plus which uh is a larger model so it's probably more suitable for kind of more open-ended agentic use cases and there's actually a new integration with Lang chain that support uh coher agents um which is quite nice so I think it's it's worth experimenting for certain problems in workflows you may need more open-ended reasoning in which case use an agent with a larger model otherwise you can use like Lang graph for more uh a more reliable potential but con strain flow and it can also use smaller models faster LMS so those are some of the trade-offs to keep in mind but anyway encourage you play with a notebook explore for yourself I think command R is a really nice model um I've also been experimenting with running it locally with AMA uh currently the quantise model is like uh two bit quantise is like 13 billion uh or so uh yeah 13 gigs it's it's a little bit too large to run quickly locally for me um inference for things like rag we're on the order of 30 seconds so again it's not great for a live demo but it does work it is available on a llama so I encourage you to play with that I have a Mac M2 32 gig um so you know if I if you're a larger machine then it absolutely could be worth working with locally so encourage you to play with that anyway hopefully this was useful and interesting I think this is a cool paper cool flow um coher command R is a nice option for these types of like routing uh it's quick good with Lang graph good for rag good for Tool use so you know have a have a look and uh you know reply anything uh any feedback in the comments thanks hi this is Lance from Lang chain this is a talk I gave at two recent meetups in San Francisco called is rag really dead um and I figured since you know a lot of people actually weren't able to make those meetups uh I just record this and put this on YouTube and see if this is of interest to folks um so we all kind of recognize that Contex windows are getting larger for llms so on the x-axis you can see the tokens used in pre-training that's of course you know getting larger as well um proprietary models are somewhere over the two trillion token regime we don't quite know where they sit uh and we've all the way down to smaller models like 52 trained on far fewer tokens um but what's really notable is on the y axis you can see about a year ago da the art models were on the order of 4,000 to 8,000 tokens and that's you know dozens of pages um we saw Claude 2 come out with the 200,000 token model earlier I think it was last year um gbd4 128,000 tokens now that's hundreds of pages and now we're seeing Claud 3 and Gemini come out with million token models so this is hundreds to thousands of pages so because of this phenomenon people have been kind of wondering is rag dead if you can stuff you know many thousands of pages into the context window llm why do you need a reteval system um it's a good question spoke sparked a lot of interesting debate on Twitter um and it's maybe first just kind of grounding on what is rag so rag is really the process of reasoning and retrieval over chunks of of information that have been retrieved um it's starting with you know documents that are indexed um they're retrievable through some mechanism typically some kind of semantic similarity search or keyword search other mechanisms retriev docs should then pass to an llm and the llm reasons about them to ground response to the question in the retrieve document so that's kind of the overall flow but the important point to make is that typically it's multiple documents and involve some form of reasoning so one of the questions I asked recently is you know if long condex llms can replace rag it should be able to perform you know multia retrieval and reasoning from its own context really effectively so I teamed up with Greg Cameron uh to kind of pressure test this and he had done some really nice needle the Haack analyses already focused on kind of single facts called needles placed in a Hy stack of Paul Graham essays um so I kind of extended that to kind of mirror the rag use case or kind of the rag context uh where I took multiple facts so I call it multi needle um I buil on a funny needle in the HTO challenge published by anthropic where they add they basically placed Pizza ingredients in the context uh and asked the LM to retrieve this combination of pizza ingredients I did I kind of Rift on that and I basically split the pizza ingredients up into three different needles and place those three ingredients in different places in the context and then ask the um to recover those three ingredients um from the context so again the setup is the question is what the secret ingredients need to build a perfect Pizza the needles are the ingredients figs Pudo goat cheese um I place them in the context at some specified intervals the way this test works is you can basically set the percent of context you want to place the first needle and the remaining two are placed at roughly equal intervals in the remaining context after the first so that's kind of the way the test is set up now it's all open source by the way the link is below so needs are placed um you ask a question you promp L them with with kind of um with this context and the question and then produces the answer and now the the framework will grade the response both one are you know all are all the the specified ingredients present in the answer and two if not which ones are missing so I ran a bunch of analysis on this with GPD 4 and came kind of came up with some with some fun results um so you can see on the left here what this is looking at is different numbers of needles placed in 120,000 token context window for gbd4 and I'm asking um gbd4 to retrieve either one three or 10 needles now I'm also asking it to do reasoning on those needles that's what you can see in those red bars so green is just retrieve the ingredients red is reasoning and the reasoning challenge here is just return the first letter of each ingredient so we find is basically two things the performance or the percentage of needles retrieved drops with respect to the number of needles that's kind of intuitive you place more facts performance gets worse but also it gets worse if you ask it to reason so if you say um just return the needles it does a little bit better than if you say return the needles and tell me the first letter so you overlay reasoning so this is the first observation more facts is harder uh and reasoning is harder uh than just retrieval now the second question we ask is where are these needles actually present in the context that we're missing right so we know for example um retrieval of um 10 needles is around 60% so where are the missing needles in the context so on the right you can see results telling us actually which specific needles uh are are the model fails to retrieve so what we can see is as you go from a th000 tokens up to 120,000 tokens on the X here and you look at needle one place at the start of the document to needle 10 placed at the end at a th000 token context link you can retrieve them all so again kind of match what we see over here small well actually sorry over here everything I'm looking at is 120,000 tokens so that's really not the point uh the point is actually smaller context uh better retrieval so that's kind of point one um as I increase the context window I actually see that uh there is increased failure to retrieve needles which you see can see in red here towards the start of the document um and so this is an interesting result um and it actually matches what Greg saw with single needle case as well so the way to think about it is it appears that um you know if you for example read a book and I asked you a question about the first chapter you might have forgotten it same kind of phenomenon appears to happen here with retrieval where needles towards the start of the context are are kind of Forgotten or are not well retrieved relative to those of the end so this is an effect we see with gbd4 it's been reproduced quite a bit so ran nine different trials here Greg's also seen this repeatedly with single needle so it seems like a pretty consistent result and there's an interesting point I put this on Twitter and a number of folks um you know replied and someone sent me this paper which is pretty interesting and it mentions recency bias is one possible reason so the most informative tokens for predicting the next token uh you know are are are present close to or recent to kind of where you're doing your generation and so there's a bias to attend to recent tokens which is obviously not great for the retrieval problem as we saw here so again the results show us that um reasoning is a bit harder than retrieval more needles is more difficult and needles towards the start of your context are harder to retrieve than towards the end those are three main observations from this and it maybe indeed due to this recency bias so overall what this kind of tells you is be wary of just context stuffing in large long context there are no retrieval guarantees and also there's some recent results that came out actually just today suggesting that single needle may be misleadingly easy um you know there's no reasoning it's retrieving a single needle um and also these guys I'm I showed this tweet here show that um the in a lot of these needle and Haack challenges including mine the facts that we look for are very different than um the background kind of Hy stack of Paul Graham essays and so that may be kind of an interesting artifact they note that indeed if the needle is more subtle retrievals is worse so I think basically when you see these really strong performing needle and hyack analyses put up by model providers you should be skeptical um you shouldn't necessarily assume that you're going to get high quality retrieval from these long contact LMS uh for numerous reasons you need to think about retrieval of multiple facts um you need to think about reasoning on top of retrieval you need need to think about the subtlety of the retrieval relative to the background context because for many of these needle and the Haack challenges it's a single needle no reasoning and the needle itself is very different from the background so anyway those may all make the challenge a bit easier than a real world scenario of fact retrieval so I just want to like kind of lay out that those cautionary notes but you know I think it is fair to say this will certainly get better and I think it's also fair to say that rag will change and this is just like a nearly not a great joke but Frank zap a musician made the point Jazz isn't dead it just smells funny you know I think same for rag rag is not dead but it will change I think that's like kind of the key Point here um so just as a followup on that rag today's focus on precise retrieval of relevant doc chunks so it's very focused on typically taking documents chunking them in some particular way often using very OS syncratic chunking methods things like chunk size are kind of picked almost arbitrarily embeding them storing them in an index taking a question embedding it doing K&N uh similarity search to retrieve relevant chunks you're often setting a k parameter which is the number of chunks you retrieve you often will do some kind of filtering or Pro processing on the retrieve chunks and then ground your answer in those retrieved chunks so it's very focused on precise retrieval of just the right chunks now in a world where you have very long context models I think there's a fair question to ask is is this really kind of the most most reasonable approach so kind of on the left here you can kind of see this notion closer to today of I need the exact relevant chunk you can risk over engineering you can have you know higher complexity sensitivity to these odd parameters like chunk size k um and you can indeed suffer lower recall because you're really only picking very precise chunks you're beholden to very particular embedding models so you know I think going forward as long context models get better and better there are definitely question you should certainly question the current kind of very precise chunking rag Paradigm but on the flip side I think just throwing all your docs into context probably will also not be the preferred approach you'll suffer higher latency higher token usage I should note that today 100,000 token GPD 4 is like $1 per generation I spent a lot of money on Lang Chain's account uh on that multile analysis I don't want to tell Harrison how much I spent uh so it's it's you know it's not good right um You Can't audit retrieve um and security and and authentication are issues if for example you need different users different different access to certain kind of retriev documents or chunks in the Contex stuffing case you you kind of can't manage security as easily so there's probably some predo optimal regime kind of here in the middle and um you know I I put this out on Twitter I think there's some reasonable points raised I think you know this inclusion at the document level is probably pretty sane documents are self-contained chunks of context um so you know what about document Centric rag so no chunking uh but just like operate on the context of full documents so you know if you think forward to the rag Paradigm that's document Centric you still have the problem of taking an input question routing it to the right document um this doesn't change so I think a lot of methods that we think about for kind of query analysis um taking an input question rewriting it in a certain way to optimize retrieval things like routing taking a question routing to the right database be it a relational database graph database Vector store um and quer construction methods so for example text to SQL text to Cipher for graphs um or text to even like metadata filters for for Vector stores those are all still relevant in the world that you have long Contex llms um you're probably not going to dump your entire SQL DB and feed that to the llm you're still going to have SQL queries you're still going to have graph queries um you may be more permissive with what you extract but it still is very reasonable to store the majority of your structured data in these in these forms likewise with unstructured data like documents like we said before it still probably makes sense to ENC to you know store documents independently but just simply aim to retrieve full documents rather than worrying about these idiosyncratic parameters like like chunk size um and along those lines there's a lot of methods out there we've we've done a few of these that are kind of well optimized for document retrieval so one I want a flag is what we call multi repesent presentation indexing and there's actually a really nice paper on this called dense X retriever or proposition indexing but the main point is simply this would you do is you take your OD document you produce a representation like a summary of that document you index that summary right and then um at retrieval time you ask your question you embed your question and you simply use a highle summary to just retrieve the right document you pass the full document to the LM for a kind of final generation so it's kind of a trick where you don't have to worry about embedding full documents in this particular case you can use kind of very nice descriptive summarization prompts to build descriptive summaries and the problem you're solving here is just get me the right document it's an easier problem than get me the right chunk so this is kind of a nice approach it there's also different variants of it which I share below one is called parent document retriever where you could use in principle if you wanted smaller chunks but then just return full documents but anyway the point is preserving full documents for Generation but using representations like summaries or chunks for retrieval so that's kind of like approach one that I think is really interesting approach two is this idea of raptor is a cool paper came out of Stamper somewhat recently and this solves the problem of what if for certain questions I need to integrate information across many documents so what this approach does is it takes documents and it it embeds them and clusters them and then it summarizes each cluster um and it does this recursively in up with only one very high level summary for the entire Corpus of documents and what they do is they take this kind of this abstraction hierarchy so to speak of different document summarizations and they just index all of it and they use this in retrieval and so basically if you have a question that draws an information across numerous documents you probably have a summary present and and indexed that kind of has that answer captured so it's a nice trick to consolidate information across documents um they they paper actually reports you know these documents in their case or the leavs are actually document chunks or slices but I actually showed I have a video on it and a notebook that this works across full documents as well um and this and I segue into to do this you do need to think about long context embedding models because you're embedding full documents and that's a really interesting thing to track um the you know hazy research uh put out a really nice um uh blog post on this using uh what the Monch mixer so it's kind of a new architecture that tends to longer context they have a 32,000 token embedding model that's pres that's available on together AI absolutely worth experimenting with I think this is really interesting Trend so long long Contex and beddings kind of play really well with this kind of idea you take full documents embed them using for example long Contex embedding models and you can kind of build these document summarization trees um really effectively so I think this another nice trick for working with full documents in the long context kind of llm regime um one other thing I'll note I think there's also going to Mo be move away from kind of single shot rag well today's rag we typically you know we chunk documents uh uh embed them store them in an index you know do retrieval and then do generation but there's no reason why you shouldn't kind of do reasoning on top of the generation or reasoning on top of the retrieval and feedback if there are errors so there's a really nice paper called selfrag um that kind of reports this we implemented this using Lang graph works really well and the simp the idea is simply to you know grade the relevance of your documents relative to your question first if they're not relevant you rewrite the question you can do you can do many things in this case we do question rewriting and try again um we also grade for hallucinations we grade for answer relevance but anyway it kind of moves rag from like a single shot Paradigm to a kind of a cyclic flow uh in which you actually do various gradings Downstream and this is all relev in the long context llm regime as well in fact you know it you you absolutely should take advantage of of for example increasingly fast and Performing LMS to do this grading um Frameworks like langra allow you to build these kind of these flows which build which allows you to kind of have a more performant uh kind of kind of self-reflective rag pipeline now I did get a lot of questions about latency here and I completely agree there's a trade-off between kind of performance accuracy and latency that's present here I think the real answer is you can opt to use very fast uh for example models like grock where seeing um you know gp35 turbos very fast these are fairly easy grading challenges so you can use very very fast LMS to do the grading and for example um you you can also restrict this to only do one turn of of kind of cyclic iteration so you can kind of restrict the latency in that way as well so anyway I think it's a really cool approach still relevant in the world as we move towards longer context so it's kind of like building reasoning on top of rag um in the uh generation and retrieval stages and a related point one of the challenges with rag is that your index for example you you may have a question that is that asks something that's outside the scope of your index and this is kind of always a problem so a really cool paper called c c rag or corrective rag came out you know a couple months ago that basically does grading just like we talked about before and then if the documents are not relevant you kick off and do a web search and basically return the search results to the LM for final generation so it's a nice fallback in cases where um your you the questions out of the domain of your retriever so you know again nice trick overlaying reasoning on top of rag I think this trend you know continues um because you know it it just it makes rag systems you know more performant uh and less brittle to questions that are out of domain so you know you know that's another kind of nice idea this particular approach also we showed works really well with with uh with open source models so I ran this with mraw 7B it can run locally on my laptop using a llama so again really nice approach I encourage you to look into this um and this is all kind of independent of the llm kind of context length these are reasoning you can add on top of the retrieval stage that that can kind of improve overall performance and so the overall picture kind of looks like this where you know I think that the the the the problem of routing your question to the right database Andor to the right document kind of remains in place query analysis is still quite relevant routing is still relevant query construction is still relevant um in the long Contex regime I think there is less of an emphasis on document chunking working with full documents is probably kind of more parto optimal so to speak um there's some some clever tricks for IND indexing of documents like the multi-representation indexing we talked about the hierarchical indexing using Raptor that we talked about as well are two interesting ideas for document Centric indexing um and then kind of reasoning in generation post retrieval on retrieval itself tog grade on the generations themselves checking for hallucinations those are all kind of interesting and relevant parts of a rag system that I think we'll probably will see more and more of as we move more away from like a more naive prompt response Paradigm more to like a flow Paradigm we're seeing that actually already in codenation it's probably going to carry over to rag as well where we kind of build rag systems that have kind of a cyclic flow to them operate on documents use longc Comics llms um and still use kind of routing and query analysis so reasoning pre- retrieval reasoning post- retrieval so anyway that was kind of my talk um and yeah feel free to leave any comments on the video and I'll try to answer any questions but um yeah that's that's probably about it thank you \ No newline at end of file diff --git a/youtube_transcripts/summarizer/long_video/transcript_summarizer.py b/youtube_transcripts/summarizer/long_video/transcript_summarizer.py new file mode 100644 index 0000000..230a350 --- /dev/null +++ b/youtube_transcripts/summarizer/long_video/transcript_summarizer.py @@ -0,0 +1,20 @@ +from youtube_transcripts import llm, load_youtube_transcripts +from langchain.chains.summarize import load_summarize_chain + +# Fetch the transcript of a YouTube video +summary = load_youtube_transcripts() + +# Save the actual transcript in a text file +with open("transcript.txt", "w") as f: + for doc in summary: + f.write(doc.page_content) + f.close() + +# Summarize the transcript using the summarization chain +chain = load_summarize_chain(llm, chain_type="map_reduce", verbose=True) + +response = chain.run(summary) + +# Save the response in a text file +with open("summary.txt", "w") as f: + f.write(response) \ No newline at end of file diff --git a/youtube_transcripts/summarizer/short_video/summary.txt b/youtube_transcripts/summarizer/short_video/summary.txt new file mode 100644 index 0000000..0e47359 --- /dev/null +++ b/youtube_transcripts/summarizer/short_video/summary.txt @@ -0,0 +1 @@ +In this course, Lance Martin, a software engineer at LangChain, teaches how to implement Retrieval-Augmented Generation (RAG) from scratch. RAG combines custom data with large language models (LLMs) to enhance their capabilities, especially given that most data is private while LLMs are trained on public data. The course covers the entire RAG pipeline, including indexing external data, retrieval of relevant documents, and generation of answers based on those documents. Key techniques discussed include query translation, routing to appropriate data sources, and query construction for various databases. Advanced methods such as multi-query approaches, hierarchical indexing (Raptor), and corrective RAG are also explored to improve retrieval accuracy and efficiency. The course emphasizes the importance of integrating private data into LLMs and the evolving landscape of RAG technology as LLMs' context windows expand. \ No newline at end of file diff --git a/youtube_transcripts/summarizer/short_video/transcript.txt b/youtube_transcripts/summarizer/short_video/transcript.txt new file mode 100644 index 0000000..c7f8030 --- /dev/null +++ b/youtube_transcripts/summarizer/short_video/transcript.txt @@ -0,0 +1 @@ +in this course Lance Martin will teach you how to implement rag from scratch Lance is a software engineer at Lang chain and Lang chain is one of the most common ways to implement rag Lance will help you understand how to use rag to combine custom data with llms hi this is Lance Martin I'm a software engineer at Lang chain I'm going to be giving a short course focused on rag or retrieval augmented generation which is one of the most popular kind of ideas and in llms today so really the motivation for this is that most of the world's data is private um whereas llms are trained on publicly available data so you can kind of see on the bottom on the x-axis the number of tokens using pre-training various llms so it kind of varies from say 1.5 trillion tokens in the case of smaller models like 52 out to some very large number that we actually don't know for proprietary models like GPT 4 CLA three but what's really interesting is that the context window or the ability to feed external information into these LMS is actually getting larger so about a year ago context windows were between 4 and 8,000 tokens you know that's like maybe a dozen pages of text we've recently seen models all the way out to a million tokens which is thousands of pages of text so while these llms are trained on large scale public data it's increasingly feasible to feed them this huge mass of private data that they've never seen that private data can be your kind of personal data it can be corporate data or you know other information that you want to pass to an LM that's not natively in his training set and so this is kind of the main motivation for rag it's really the idea that llms one are kind of the the center of a new kind of operating system and two it's increasingly critical to be able to feed information from external sources such as private data into llms for processing so that's kind of the overarching motivation for Rag and now rag refers to retrieval augmented generation and you can think of it in three very general steps there's a process of indexing of external data so you can think about this as you know building a database for example um many companies already have large scale databases in different forms they could be SQL DBS relational DBS um they could be Vector Stores um or otherwise but the point is that documents are indexed such that they can be retrieved based upon some heuristics relative to an input like a question and those relevant documents can be passed to an llm and the llm can produce answers that are grounded in that retrieved information so that's kind of the centerpiece or central idea behind Rag and why it's really powerful technology because it's really uniting the the knowledge and processing capacity of llms with large scale private external data source for which most of the important data in the world still lives and in the following short videos we're going to kind of build up a complete understanding of the rag landscape and we're going to be covering a bunch of interesting papers and techniques that explain kind of how to do rag and I've really broken it down into a few different sections so starting with a question on the left the first kind of section is what I call query trans translation so this captures a bunch of different methods to take a question from a user and modify it in some way to make it better suited for retrieval from you know one of these indexes we've talked about that can use methods like query writing it can be decomposing the query into you know constituent sub questions then there's a question of routing so taking that decomposed a Rewritten question and routing it to the right place you might have multiple Vector stores a relational DB graph DB and a vector store so it's the challenge of getting a question to the right Source then there's a there's kind of the challenge of query construction which is basically taking natural language and converting it into the DSL necessary for whatever data source you want to work with a classic example here is text a SQL which is kind of a very kind of well studied process but text a cipher for graph DV is very interesting text to metadata filters for Vector DBS is also a very big area of study um then there's indexing so that's the process of taking your documents and processing them in some way so they can be easily retrieved and there's a bunch of techniques for that we'll talk through we'll talk through different embedding methods we'll talk about different indexing strategies after retrieval there are different techniques to rerank or filter retrieve documents um and then finally we'll talk about generation and kind of an interesting new set of methods to do what we might call as active rag so in that retrieval or generation stage grade documents grade answers um grade for relevance to the question grade for faithfulness to the documents I.E check for hallucinations and if either fail feedback uh re- retrieve or rewrite the question uh regenerate the qu regenerate the answer and so forth so there's a really interesting set of methods we're going to talk through that cover that like retrieval and generation with feedback and you know in terms of General outline we'll cover the basics first it'll go through indexing retrieval and generation kind of in the Bare Bones and then we'll talk through more advanced techniques that we just saw on the prior slide career Transformations routing uh construction and so forth hi this is Lance from Lang chain this the second video in our series rack from scratch focused on indexing so in the past video you saw the main kind of overall components of rag pipelines indexing retrieval and generation and here we're going to kind of Deep dive on indexing and give like just a quick overview of it so the first aspect of indexing is we have some external documents that we actually want to load and put into what we're trying to call Retriever and the goal of this retriever is simply given an input question I want to fish out doents that are related to my question in some way now the way to establish that relationship or relevance or similarity is typically done using some kind of numerical representation of documents and the reason is that it's very easy to compare vectors for example of numbers uh relative to you know just free form text and so a lot of approaches have been a developed over the years to take text documents and compress them down into a numerical rep presentation that then can be very easily searched now there's a few ways to do that so Google and others came up with many interesting statistical methods where you take a document you look at the frequency of words and you build what they call sparse vectors such that the vector locations are you know a large vocabulary of possible words each value represents the number of occurrences of that particular word and it's sparse because there's of course many zeros it's a very large vocabulary relative to what's present in the document and there's very good search methods over this this type of numerical representation now a bit more recently uh embedding methods that are machine learned so you take a document and you build a compressed fixed length representation of that document um have been developed with correspondingly very strong search methods over embeddings um so the intuition here is that we take documents and we typically split them because embedding models actually have limited context windows so you know on the order of maybe 512 tokens up to 8,000 tokens or Beyond but they're not infinitely large so documents are split and each document is compressed into a vector and that Vector captures a semantic meaning of the document itself the vectors are indexed questions can be embedded in the exactly same way and then numerical kind of comparison in some form you know using very different types of methods can be performed on these vectors to fish out relevant documents relative to my question um and let's just do a quick code walk through on some of these points so I have my notebook here I've installed here um now I've set a few API keys for lsmith which are very useful for tracing which we'll see shortly um previously I walked through this this kind of quick start that just showed overall how to lay out these rag pipelines and here what I'll do is I'll Deep dive a little bit more on indexing and I'm going to take a question and a document and first I'm just going to compute the number of tokens in for example the question and this is interesting because embedding models in llms more generally operate on tokens and so it's kind of nice to understand how large the documents are that I'm trying to feed in in this case it's obviously a very small in this case question now I'm going to specify open eye embeddings I specify an embedding model here and I just say embed embed query I can pass my question my document and what you can see here is that runs and this is mapped to now a vector of length 1536 and that fixed length Vector representation will be computed for both documents and really for any document so you're always is kind of computing this fix length Vector that encodes the semantics of the text that you've passed now I can do things like cosine similarity to compare them and as we'll see here I can load some documents this is just like we saw previously I can split them and I can index them here just like we did before but we can see under the hood really what we're doing is we're taking each split we're embedding it using open eye embeddings into this this kind of this Vector representation and that's stored with a link to the rod document itself in our Vector store and next we'll see how to actually do retrieval using this Vector store hi this is Lance from Lang chain and this is the third video in our series rag from scratch building up a lot of the motivations for rag uh from the very basic components um so we're going to be talking about retrieval today in the last two uh short videos I outlined indexing and gave kind of an overview of this flow which starts with indexing of our documents retrieval of documents relevant to our question and then generation of answers based on the retriev documents and so we saw that the indexing process basically makes documents easy to retrieve and it goes through a flow that basically looks like you take our documents you split them in some way into these smaller chunks that can be easily embedded um those embeddings are then numerical representations of those documents that are easily searchable and they're stored in an index when given a question that's also embedded the index performs a similarity search and returns splits that are relevant to the question now if we dig a little bit more under the hood we can think about it like this if we take a document and embed it let's imagine that embedding just had three dimensions so you know each document is projected into some point in this 3D space now the point is that the location in space is determined by the semantic meaning or content in that document so to follow that then documents in similar locations in space contain similar semantic information and this very simple idea is really the Cornerstone for a lot of search and retrieval methods that you'll see with modern Vector stores so in particular we take our documents we embed them into this in this case a toy 3D space we take our question do the same we can then do a search like a local neighborhood search you can think about in this 3D space around our question to say hey what documents are nearby and these nearby neighbors are then retrieved because they can they have similar semantics relative to our question and that's really what's going on here so again we took our documents we split them we embed them and now they exist in this high dimensional space we've taken our question embedded it projected in that same space and we just do a search around the question from nearby documents and grab ones that are close and we can pick some number we can say we want one or two or three or n documents close to my question in this embedding space and there's a lot of really interesting methods that implement this very effectively I I link one here um and we have a lot of really nice uh Integrations to play with this general idea so many different embedding models many different indexes lots of document loaders um and lots of Splitters that can be kind of recombined to test different ways of doing this kind of indexing or retrieval um so now I'll show a bit of a code walkth through so here we defined um we kind of had walked through this previously this is our notebook we've installed a few packages we've set a few environment variables using lsmith and we showed this previously this is just an overview showing how to run rag like kind of end to end in the last uh short talk we went through indexing um and what I'm going to do very simply is I'm just going to reload our documents so now I have our documents I'm going to resplit them and we saw before how we can build our index now here let's actually do the same thing but in the slide we actually showed kind of that notion of search in that 3D space and a nice parameter to think about in building your your retriever is K so K tells you the number of nearby neighbors to fetch when you do that retrieval process and we talked about you know in that 3D space do I want one nearby neighbor or two or three so here we can specify k equals 1 for example now we're building our index so we're taking every split embedding it storing it now what's nice is I asked a a question what is Task decomposition this is related to the blog post and I'm going to run get relevant documents so I run that and now how many documents do I get back I get one as expected based upon k equals 1 so this retrieve document should be related to my question now I can go to lsmith and we can open it up and we can look at our Retriever and we can see here was our question here's the one document we got back and okay so that makes sense this document pertains to task ke decomposition in particular and it kind of lays out a number of different approaches that can be used to do that this all kind of makes sense and this shows kind of in practice how you can implement this this NE this kind of KNN or k nearest neighbor search uh really easily uh just using a few lines of code and next we're going to talk about generation thanks hey this is Lance from Lang chain this is the fourth uh short video in our rack from scratch series that's going to be focused on generation now in the past few videos we walked through the general flow uh for kind of basic rag starting with indexing Fall by retrieval then generation of an answer based upon the documents that we retrieved that are relevant to our question this is kind of the the very basic flow now an important consideration in generation is really what's happening is we're taking the documents you retrieve and we're stuffing them into the llm context window so if we kind of walk back through the process we take documents we split them for convenience or embedding we then embed each split and we store that in a vector store as this kind of easily searchable numerical representation or vector and we take a question embed it to produce a similar kind of numerical representation we can then search for example using something like KN andn in this kind of dimensional space for documents that are similar to our question based on their proximity or location in this space in this case you can see 3D is a toy kind of toy example now we've recovered relevant splits to our question we pack those into the context window and we produce our answer now this introduces the notion of a prompt so the prompt is kind of a you can think have a placeholder that has for example you know in our case B keys so those keys can be like context and question so they basically are like buckets that we're going to take those retrieve documents and Slot them in we're going to take our question and also slot it in and if you kind of walk through this flow you can kind of see that we can build like a dictionary from our retrieve documents and from our question and then we can basically populate our prompt template with the values from the dict and then becomes a prompt value which can be passed to llm like a chat model resulting in chat messages which we then parse into a string and get our answer so that's like the basic workflow that we're going to see and let's just walk through that in code very quickly to kind of give you like a Hands-On intuition so we had our notebook we walk through previously install a few packages I'm setting a few lsmith environment variables we'll see it's it's nice for uh kind of observing and debugging our traces um previously we did this quick start we're going to skip that over um and what I will do is I'm going to build our retriever so again I'm going to take documents and load them uh and then I'm going to split them here we've kind of done this previously so I'll go through this kind of quickly and then we're going to embed them and store them in our index so now we have this retriever object here now I'm going to jump down here now here's where it's kind of fun this is the generation bit and you can see here I'm defining something new this is a prompt template and what my prompt template is something really simple it's just going to say answer the following question based on this context it's going to have this context variable and a question so now I'm building my prompt so great now I have this prompt let's define an llm I'll choose 35 now this introdu the notion of a chain so in Lang chain we have an expression language called L Cel Lang chain expression language which lets you really easily compose things like prompts LMS parsers retrievers and other things but the very simple kind of you know example here is just let's just take our prompt which you defined right here and connect it to an LM which you defined right here into this chain so there's our chain now all we're doing is we're invoking that chain so every L expression language chain has a few common methods like invoke bat stream in this case we just invoke it with a dict so context and question that maps to the expected Keys here in our template and so if we run invoke what we see is it's just going to execute that chain and we get our answer now if we zoom over to Langs Smith we should see that it's been populated so yeah we see a very simple runable sequence here was our document um and here's our output and here is our prompt answer the following question based on the context here's the document we passed in here is the question and then we get our answer so that's pretty nice um now there's a lot of other options for rag prompts I'll pull one in from our prompt tub this one's like kind of a popular prompt so it just like has a little bit more detail but you know it's the main the main intuition is the same um you're passing in documents you're asking them to reason about the documents given a question produce an answer and now here I'm going to find a rag chain which will automatically do the retrieval for us and all I have to do is specify here's my retriever which we defined before here's our question we which we invoke with the question gets passed through to the key question in our dict and it automatically will trigger the retriever which will return documents which get passed into our context so it's exactly what we did up here except before we did this manually and now um this is all kind of automated for us we pass that dick which is autop populated into our prompt llm out to parser now let invoke it and that should all just run and great we get an answer and we can look at the trace and we can see everything that happened so we can see our retriever was run these documents were retrieved they get passed into our LM and we get our final answer so this kind of the end of our overview um where we talked about I'll go back to the slide here quickly we talked about indexing retrieval and now generation and follow-up short videos we'll kind of dig into some of the more com complex or detailed themes that address some limitations that can arise in this very simple pipeline thanks hi my from Lang chain over the next few videos we're going to be talking about career translation um and in this first video we're going to cover the topic of multi-query so query translation sits kind of at the first stage of an advanced rag Pipeline and the goal of career translation is really to take an input user question and to translate in some way in order to improve retrieval so the problem statement is pretty intuitive user queries um can be ambiguous and if the query is poorly written because we're typically doing some kind of semantic similarity search between the query and our documents if the query is poorly written or ill opposed we won't retrieve the proper documents from our index so there's a few approaches to attack this problem and you can kind of group them in a few different ways so here's one way I like to think about it a few approaches has involveed query rewriting so taking a query and reframing it like writing from a different perspective um and that's what we're going to talk about a little bit here in depth using approaches like multi-query or rag Fusion which we'll talk about in the next video you can also do things like take a question and break it down to make it less abstract like into sub questions and there's a bunch of interesting papers focused on that like least to most from Google you can also take the opposite approach of take a question to make it more abstract uh and there's actually approach we're going to talk about later in a future video called stepback prompting that focuses on like kind of higher a higher level question from the input so the intuition though for this multier approach is we're taking a question and we're going to break it down into a few differently worded questions uh from different perspectives and the intuition here is simply that um it is possible that the way a question is initially worded once embedded it is not well aligned or in close proximity in this High dimensional embedding space to a document that we want to R that's actually related so the thinking is that by kind of rewriting it in a few different ways you actually increase the likel of actually retrieving the document that you really want to um because of nuances in the way that documents and questions are embedded this kind of more shotgun approach of taking a question Fanning it out into a few different perspectives May improve and increase the reliability of retrieval that's like the intuition really um and of course we can com combine this with retrieval so we can take our our kind of fan out questions do retrieval on each one and combine them in some way and perform rag so that's kind of the overview and now let's what let's go over to um our code so this is a notebook and we're going to share all this um we're just installing a few packages we're setting a lsmith API Keys which we'll see why that's quite useful here shortly there's our diagram now first I'm going to Index this blog post on agents I'm going to split it um well I'm going to load it I'm going to split it and then I'm going to index it in chroma locally so this is a vector store we've done this previously so now I have my index defined so here is where I'm defining my prompt for multiquery which is your your assistant your task is to basically reframe this question into a few different sub questions um so there's our prompt um right here we'll pass that to an llm part it um into a string and then split the string by new lines and so we'll get a list of questions out of this chain that's really all we're doing here now all we're doing is here's a sample input question there's our generate queries chain which we defined we're going to take that list and then simply apply each question to retriever so we'll do retrieval per question and this little function here is just going to take the unique Union of documents uh across all those retrievals so let's run this and see what happens so we're going to run this and we're going to get some set of questions uh or documents back so let's go to Langs Smith now we can actually see what happened under the hood so here's the key point we ran our initial chain to generate a set of of reframed questions from our input and here was that prompt and here is that set of questions that we generated now what happened is for every one of those questions we did an independent retrieval that's what we're showing here so that's kind of the first step which is great now I can go back to the notebook and we can show this working end to end so now we're going to take that retrieval chain we'll pass it into context of our final rag prompt we'll also pass through the question we'll pass that to our rag prompt here pass it to an LM and then Pary output now let's let's kind of see how that works so again that's okay there it is so let's actually go into langth and see what happened under the hood so this was our final chain so this is great we took our input question we broke it out to these like five rephrase questions for every one of those we did a retrieval that's all great we then took the unique Union of documents and you can see in our final llm prompt answer the following cont following question based on the context this is the final set of unique documents that we retrieved from all of our sub questions um here's our initial question there's our answer so that kind of shows you how you can set this up really easily how you can use l Smith to kind of investigate what's going on and in particular use l Smith to investigate those intermediate questions that you generate in that like kind of question generation phase and in a future talks we're going to go through um some of these other methods that we kind of introduced at the start of this one thank you last L chain this is the second video of our Deep dive on query translation in our rag from scratch series focused on a method called rag Fusion so as we kind of showed before career translation you can think of as the first stage in an advanced rag pipeline we're taking an input user question and We're translating it some way in order to improve retrievable now we showed this General mapping of approaches previously so again you have kind of like rewriting so you can take a question and like kind of break it down into uh differently worded are different different perspectives of the same question so that's kind of rewriting there's sub questions where you take a question break it down into smaller problems solve each one independently and then there step back where you take a question and kind of go more abstract where you kind of ask a higher level question as a precondition to answer the user question so those are the approaches and we're going to dig into one of the particular approaches for rewriting called rat Fusion now this is really similar to what we just saw with multiquery the difference being we actually apply a a kind of a clever rank ranking step of our retriev documents um which you call reciprocal rank Fusion that's really the only difference the the input stage of taking a question breaking it out into a few kind of differently worded questions retrieval on each one is all the same and we're going to see that in the code here shortly so let's just hop over there and then look at this so again here is a notebook that we introduced previously here's the packages we've installed we've set a few API keys for lsmith which we see why is quite useful um and you can kind of go down here to a rag Fusion section and the first thing you'll note is what our prompt is so it looks really similar to The Prompt we just saw with multiquery and simply your helpful assistant that generates multiple search queries based upon user input and here's the question output for queries so let's define our prompt and here was our query Generation chain again this looks a lot like we just saw we take our prompt Plum that into an llm and then basically parse by new lines and that'll basically split out these questions into a list that's all it's going to happen here so that's cool now here's where the novelty comes in each time we do retrieval from one of those questions we're going to get back a list of documents from our Retriever and so we do it over that we generate four questions here based on our prompt we do the over four questions well like a list of lists basically now reciprocal rank Fusion is really well suited for this exact problem we want to take this list to list and build a single Consolidated list and really all that's going on is it's looking at the documents in each list and kind of aggregating them into a final output ranking um and that's really the intuition around what's happening here um so let's go ahead and so let's so let's go ahead and look at that in some detail so we can see we run retrieval that's great now let's go over to Lang Smith and have a look at what's going on here so we can see that here was our prompt to your helpful assistant that generates multiple search queries based on a single input and here is our search queries and then here are our four retrievals so that's that's really good so we know that all is working um and then those retrievals simply went into this rank function and our correspondingly ranked to a final list of six unique rank documents that's really all we did so let's actually put that all together into an a full rag chain that's going to run retrieval return that final list of rank documents and pass it to our context pass through our question send that to a rag prompt pass it to an LM parse it to an output and let's run all that together and see that working cool so there's our final answer now let's have a look in lsmith we can see here was our four questions here's our retrievals and then our final rag prompt plumed through the final list of ranked six questions which we can see laid out here and our final answer so this can be really convenient particularly if we're operating across like maybe different Vector stores uh or we want to do like retrieval across a large number of of kind of differently worded questions this reciprocal rank Fusion step is really nice um for example if we wanted to only take the top three documents or something um it can be really nice to build that Consolidated ranking across all these independent retrievals then pass that to for the final generation so that's really the intuition about what's happening here thanks hi this is Lance from Lang chain this is our third video focused on query translation in the rag from scratch series and we're going to be talking about decomposition so query translation in general is a set of approaches that sits kind of towards the front of this overall rag Pipeline and the objective is to modify or rewrite or otherwise decompose an input question from a user in order improve retrieval so we can talk through some of these approaches previously in particular various ways to do query writing like rag fusion and multiquery there's a separate set of techniques that become pretty popular and are really interesting for certain problems which we might call like kind of breaking down or decomposing an input question into a set of sub questions um so some of the papers here that are are pretty cool are for example this work from Google um and the objective really is first to take an input question and decompose it into a set of sub problems so this particular example from the paper was the problem of um last letter concatenation and so it took the inut question of three words think machine learning and broke it down into three sub problems think think machine think machine learning as the third sub problem and then you can see in this bottom panel it solves each one individually so it shows for example in green solving the problem think machine where you can catenate the last letter of k with the last letter of machine or last letter think K less machine e can concatenate those to K and then for the overall problem taking that solution and then and basically building on it to get the overall solution of keg so that's kind of one concept of decomposing into sub problems solving them sequentially now a related work called IRC or in leap retrieval combines retrieval with Chain of Thought reasoning and so you can kind of put these together into one approach which you can think of as kind of dynamically retrieval um to solve a set of sub problems kind of that retrieval kind of interleaving with Chain of Thought as noted in the second paper and a set of decomposed questions based on your initial question from the first work from Google so really the idea here is we're taking one sub question we're answering it we're taking that answer and using it to help answer the second sub question and so forth so let's actually just walk through this in code to show how this might work so this is The Notebook we've been working with from some of the other uh videos you can see we already have a retriever to find uh up here at the top and what we're going to do is we're first going to find a prompt that's basically going to say given an input question let's break it down to set of sub problems or sub question which can be solved individually so we can do that and this blog post is focused on agents so let's ask a question about what are the main components of an LM powerered autonomous agent system so let's run this and see what the decomposed questions are so you can see the decomposed questions are what is LM technology how does it work um what are components and then how the components interact so it's kind of a sane way to kind of break down this problem into a few sub problems which you might attack individually now here's where um we Define a prompt that very simply is going to take our question we'll take any prior questions we've answered and we'll take our retrieval and basically just combine them and we can Define this very simple chain um actually let's go back and make sure retriever is defined up at the top so now we are building our retriever good we have that now so we can go back down here and let's run this so now we are running and what's happening is we're trying to solve each of these questions individually using retrieval and using any prior question answers so okay very good looks like that's been done and we can see here's our answer now let's go over to langth and actually see what happened under the hood so here's what's kind of of interesting and helpful to see for the first question so here's our first one it looks like it just does retrieval which is we expect and then it uses that to answer this initial question now for the second question should be a little bit more interesting because if you look at our prompt here's our question now here is our background available question answer pair so this was the answer question answer pair from the first question which we add to our prompt and then here's the retrieval for this particular question so we're kind of building up up the solution because we're pending the question answer pair from question one and then likewise with question three it should combine all of that so we can look at here here's our question here's question one here's question two great now here's additional retrieval related to this particular question and we get our final answer so that's like a really nice way you can kind of build up Solutions um using this kind of interleaved uh retrieval and concatenating question answer pairs I do want to mention very briefly that we can also take a different approach where we can just answer these all individually and then just concatenate all those answers to produce a final answer and I'll show that really quickly here um it's like a little bit less interesting maybe because you're not using answers from each uh question to inform the next one you're just answering them all in parallel this might be better for cases where it's not really like a sub question decomposition but maybe it's like like a set of set of several in independent questions whose answers don't depend on each other that might be relevant for some problems um and we can go ahead and run okay so this ran as well we can look at our trace and in this case um yeah we can see that this actually just kind of concatenates all of our QA pairs to produce the final answer so this gives you a sense for how you can use quer decomposition employ IDE IDE from uh from two different papers that are pretty cool thanks hi this is Lance from Lang chain this is the fourth video uh in our Deep dive on queer translation in the rag from scratch series and we're going to be focused on step back prompting so queer translation as we said in some of the prior videos kind of sits at the the kind of first stage of kind of a a a rag pipeline or flow and the main aim is to take an question and to translate it or modify in such a way that it improves retrieval now we talked through a few different ways to approach this problem so one General approach involves rewriting a question and we talk about two ways to do that rag fusion multiquery and again this is this is really about taking a question and modifying it to capture a few different perspectives um which may improve the retrieval process now another approach is to take a question and kind of make it less abstract like break it down into sub questions um and then solve each of those independently so that's what we saw with like least to most prompting um and a bunch of other variants kind of in that in that vein of sub problem solving and then consolidating those Solutions into a final answer now a different approach presented um by again Google as well is stepback prompting so stepback prompting kind of takes the the the opposite approach where it tries to ask a more abstract question so the paper talks a lot about um using F shot prompting to produce what they call the stepback or more abstract questions and the way it does it is it provides a number of examples of stepb back questions given your original question so like this is like this is for example they like for prompt temp you're an expert World Knowledge I asked you a question your response should be comprehensive not contradict with the following um and this is kind of where you provide your like original and then step back so here's like some example um questions so like um like uh at year saw the creation of the region where the country is located which region of the country um is the county of of herir related um Janell was born in what country what is janell's personal history so that that's maybe a more intuitive example so it's like you ask a very specific question about like the country someone's born the more abstract question is like just give me the general history of this individual without worrying about that particular um more specific question um so let's actually just walk through how this can be done in practice um so again here's kind of like a a diagram of uh the various approaches um from less abstraction to more abstraction now here is where we're formulating our prompt using a few of the few shot examples from the paper um so again like input um yeah something about like the police perform wful arrests and what what camp members of the police do so like it it basically gives the model a few examples um we basically formulate this into a prompt that's really all going on here again we we repeat um this overall prompt which we saw from the paper your expert World Knowledge your test is to step back and paraphrase a question generate more a generic step back question which is easier to answer here are some examples so it's like a very intuitive prompt so okay let's start with the question what is Task composition for llm agents and we're going to say generate stack question okay so this is pretty intuitive right what is a process of task compos I so like not worrying as much about agents but what is that process of task composition in general and then hopefully that can be independently um retrieved we we can independently retrieve documents related to the stepb back question and in addition retrieve documents related to the the actual question and combine those to produce kind of final answer so that's really all that's going on um and here's the response template where we're Plumbing in the stepback context and our question context and so what we're going to do here is we're going to take our input question and perform retrieval on that we're also going to generate our stepb back question and perform retrieval on that we're going to plumb those into the prompt as here's our very here's our basically uh our prompt Keys normal question step back question um and our overall question again we formulate those as a dict we Plum those into our response prompt um and then we go ahead and attempt to answer our overall question so we're going to run that that's running and okay we have our answer now I want to hop over to Langs Smith and attempt to show you um kind of what that looked like under the hood so let's see let's like go into each of these steps so here was our prompt right you're an expert World Knowledge your test to to step back and paraph as a question um so um here were our few shot prompts and this was our this was our uh stepb question so what is the process of task composition um good from the input what is Tas composition for LM agents we perform retrieval on both what is process composition uh and what is for LM agents we perform both retrievals we then populate our prompt with both uh original question answer and then here's the context retrieve from both the question and the stepb back question here was our final answer so again this is kind of a nice technique um probably depends on a lot of the types of like the type of domain you want to perform retrieval on um but in some domains where for example there's a lot of kind of conceptual knowledge that underpins questions you expect users to ask this stepback approach could be really convenient to automatically formulate a higher level question um to for example try to improve retrieval I can imagine if you're working with like kind of textbooks or like technical documentation where you make independent chapters focused on more highlevel kind of like Concepts and then other chapters on like more detailed uh like implementations this kind of like stepb back approach and independent retrieval could be really helpful thanks hi this is Lance from Lang chain this is the fifth video focused on queer translation in our rack from scratch series we're going to be talking about a technique called hide so again queer translation sits kind of at the front of the overall rag flow um and the objective is to take an input question and translate it in some way that improves retrieval now hide is an interesting approach that takes advantage of a very simple idea the basic rag flow takes a question and embeds it takes a document and embeds it and looks for similarity between an embedded document and embedded question but questions and documents are very different text objects so documents can be like very large chunks taken from dense um Publications or other sources whereas questions are short kind of tur potentially ill worded from users and the intuition behind hide is take questions and map them into document space using a hypothetical document or by generating a hypothetical document um that's the basic intuition and the idea kind of shown here visually is that in principle for certain cases a hypothetical document is closer to a desired document you actually want to retrieve in this you know High dimensional embedding space than the sparse raw input question itself so again it's just kind of means of trans translating raw questions into these hypothetical documents that are better suited for retrieval so let's actually do a Code walkthrough to see how this works and it's actually pretty easy to implement which is really nice so first we're just starting with a prompt and we're using the same notebook that we've used for prior videos we have a blog post on agents r index um so what we're going to do is Define a prompt to generate a hypothetical documents in this case we'll say write a write a paper passage uh to answer a given question so let's just run this and see what happens again we're taking our prompt piping it to to open Ai chck gpte and then using string Opa parer and so here's a hypothetical document section related to our question okay and this is derived of course lm's kind of embedded uh kind of World Knowledge which is you know a sane place to generate hypothetical documents now let's now take that hypothetical document and basically we're going to pipe that into a retriever so this means we're going to fetch documents from our index related to this hypothetical document that's been embedded and you can see we get a few qu a few retrieved uh chunks that are related to uh this hypothetical document that's all we've done um and then let's take the final step where we take those retrieve documents here which we defined and our question we're going to pipe that into this rag prompt and then we're going to run our kind of rag chain right here which you've seen before and we get our answer so that's really it we can go to lsmith and we can actually look at what happened um so here for example this was our final um rag prompt answer the following question based on this context and here is the retrieve documents that we passed in so that part's kind of straightforward we can also look at um okay this is our retrieval okay now this is this is actually what we we generated a hypothetical document here um okay so this is our hypothetical document so we've run chat open AI we generated this passage with our hypothetical document and then we've run retrieval here so this is basically showing hypothetical document generation followed by retrieval um so again here was our passage which we passed in and then here's our retrieve documents from the retriever which are related to the passage content so again in this particular index case it's possible that the input question was sufficient to retrieve these documents in fact given prior examples uh I know that some of these same documents are indeed retrieved just from the raw question but in other context it may not be the case so folks have reported nice performance using Hyde uh for certain domains and the Really convenient thing is that you can take this this document generation prompt you can tune this arbitrarily for your domain of Interest so it's absolutely worth experimenting with it's a it's a need approach uh that can overcome some of the challenges with retrieval uh thanks very much hi this is Lance from Lang chain this is the 10th video in our rack from scratch series focused on routing so we talk through query translation which is the process of taking a question and translating in some way it could be decomposing it using stepback prompting or otherwise but the idea here was take our question change it into a form that's better suited for retrieval now routing is the next step which is basically routing that potentially decomposed question to the right source and in many cases that could be a different database so let's say in this toy example we have a vector store a relational DB and a graph DB the what we redo with routing is we simply route the question based upon the cont of the question to the relevant data source so there's a few different ways to do that one is what we call logical routing in this case we basically give an llm knowledge of the various data sources that we have at our disposal and we let the llm kind of Reason about which one to apply the question to so it's kind of like the the LM is applying some logic to determine you which which data sour for example to to use alternatively you can use semantic routing which is where we take a question we embed it and for example we embed prompts we then compute the similarity between our question and those prompts and then we choose a prompt based upon the similarity so the general idea is in our diagram we talk about routing to for example a different database but it can be very general can be routing to different prompt it can be you know really arbitrarily taking this question and sending it at different places be at different prompts be at different Vector stores so let's walk through the code a little bit so you can see just like before we've done a few pip installs we set up lsmith and let's talk through uh logical routing first so so in this toy example let's say we had for example uh three different docs like we had python docs we had JS docs we had goang docs what we want to do is take a question route it to one of those three so what we're actually doing is we're setting up a data model which is basically going to U be bound to our llm and allow the llm to Output one of these three options as a structured object so you really think about this as like classification classification plus function calling to produce a structured output which is constrained to these three possibilities so the way we do that is let's just zoom in here a little bit we can Define like a structured object that we want to get out from our llm like in this case we want for example you know one of these three data sources to be output we can take this and we can actually convert it into open like open for example function schema and then we actually pass that in and bind it to our llm so what happens is we ask a question our llm invokes this function on the output to produce an output that adheres to the schema that we specify so in this case for example um we output like you know in this toy example let's say we wanted like you know an output to be data source Vector store or SQL database the output will contain a data source object and it'll be you know one of the options we specify as a Json string we also instantiate a parser from this object to parse that Json string to an output like a pantic object for example so that's just one toy example and let's show one up here so in this case again we had our three doc sources um we bind that to our llm so you can see we do with structured output basically under the hood that's taking that object definition turning into function schema and binding that function schema to our llm and we call our prompt you're an expert at routing a user question based on you know programming language um that user referring to so let's define our router here now what we're going to do is we'll ask a question that is python code so we'll call that and now it's done and you see the object we get out is indeed it's a route query object so it's exactly it aderes to this data model we've set up and in this case it's it's it's correct so it's calling this python doc so you can we can extract that right here as a string now once we have this you can really easily set up like a route so this could be like our full chain where we take this router we should defined here and then this choose route function can basically take that output and do something with it so for example if python docs this could then apply the question to like a retriever full of python information uh or JS same thing so this is where you would hook basically that question up to different chains that are like you know retriever chain one for python retriever chain two for JS and so forth so this is kind of like the routing mechanism but this is really doing the heavy lifting of taking an input question and turning into a structured object that restricts the output to one of a few output types that we care about in our like routing problem so that's really kind of the way this all hooks together now semantic outing is actually maybe even a little bit more straightforward based on what we've seen previously so in that case let's say we have two prompts we have a physics prompt we have a math prompt we can embed those prompts no problem we do that here now let's say we have an input question from a user like in this case what is a black hole we pass that through we then apply this runnable Lambda function which is defined right here what we're doing here is we're embedding the question we're Computing similarity between the question and the prompts uh we're taking the most similar and then we're basically choosing the prompt based on that similarity and you can see let's run that and try it out and we're using the physics prompt and there we go black holes region and space so that just shows you kind of how you can use semantic routing uh to basically embed a question embed for example various prompts pick the prompt based on sematic similarity so that really gives you just two ways to do routing one is logical routing with function in uh can be used very generally in this case we applied it to like different coding languages but imagine these could be swapped out for like you know my python uh my like vector store versus My Graph DB versus my relational DB and you could just very simply have some description of what each is and you know then not only will the llm do reasoning but it'll also return an object uh that can be parsed very cleanly to produce like one of a few very specific types which then you can reason over like we did here in your routing function so that kind of gives you the general idea and these are really very useful tools and I encourage you to experiment with them thanks hi this is Lance from Lang chain this is the 11th part of our rag from scratch video series focused on query construction so we previously talked through uh query translation which is the process of taking a question and converting it or translating it into a question that's better optimized for retrieval then we talked about routing which is the process of going taking that question routing it to the right Source be it a given Vector store graph DB um or SQL DB for example now we're going to talk about the process of query construction which is basically taking natural language and converting it into particular domain specific language uh for one of these sources now we're going to talk specifically about the process of going from natural language to uh meditated filters for Vector Stores um the problem statement is basically this let's imagine we had an index of Lang Chain video transcripts um you might want to ask a question give me you know or find find me videos on chat Lang chain published after 2024 for example um the the process of query structuring basically converts this natural language question into a structured query that can be applied to the metadata uh filters on your vector store so most Vector stores will have some kind of meditative filters that can do kind of structur querying on top of uh the chunks that are indexed um so for example this type of query will retrieve all chunks uh that talk about the topic of chat Lang chain uh published after the date 2024 that's kind of the problem statement and to do this we're going to use function calling um in this case you can use for example open AI or other providers to do that and we're going to do is at a high level take the metadata fields that are present in our Vector store and divide them to the model as kind of information and the model then can take those and produce queries that adhere to the schema provided um and then we can parse those out to a structured object like a identic object which again which can then be used in search so that's kind of the problem statement and let's actually walk through code um so here's our notebook which we've kind of gone through previously and I'll just show you as an example let's take a example YouTube video and let's look at the metadata that you get with the transcript so you can see you get stuff like description uh URL um yeah publish date length things like that now let's say we had an index that had um basically a that had a number of different metadata fields and filters uh that allowed us to do range filtering on like view count publication date the video length um or unstructured search on contents and title so those are kind of like the imagine we had an index that had uh those kind of filters available to us what we can do is capture that information about the available filters in an object so we're calling that this tutorial search object kind of encapsulates that information about the available searches that we can do and so we basically enumerate it here content search and title search or semantic searches that can be done over those fields um and then these filters then are various types of structure searches we can do on like the length um The View count and so forth and so we can just kind of build that object now we can set this up really easily with a basic simple prompt that says you know you're an expert can bring natural language into database queries you have access to the database tutorial videos um given a question return a database query optimize retrieval so that's kind of it now here's the key point though when you call this LM with structured output you're binding this pantic object which contains all the information about our index to the llm which is exactly what we talked about previously it's really this process right here you're taking this object you're converting it to a function schema for example open AI you're binding that to your model and then you're going to be able to get um structured object out versus a Json string from a natural language question which can then be parsed into a pantic object which you get out so that's really the flow and it's taking advantage of function calling as we said so if we go back down we set up our query analyzer chain right here now let's try to run that just on a on a purely semantic input so rag from scratch let's run that and you can see this just does like a Content search and a title search that's exactly what you would expect now if we pass a question that includes like a date filter let's just see if that would work and there we go so you kind of still get that semantic search um but you also get um search over for example publish date earliest and latest publish date kind of as as you would expect let's try another one here so videos focus on the topic of chat Lang chain they're published before 2024 this is just kind of a rewrite of this question in slightly different way using a different date filter and then you can see we can get we get content search title search and then we can get kind of a date search so this is a very general strategy that can be applied kind of broadly to um different kinds of querying you want to do it's really the process of going from an unstructured input to a structured query object out following an arbitrary schema that you provide and so as noted really this whole thing we created here this tutorial search is based upon the specifics of our Vector store of interest and if you want to learn more about this I link to some documentation here that talks a lot about different uh types of of Integrations we have with different Vector store providers to do exactly this so it's a very useful trick um it allows you to do kind of query uh uh say metadata filter filtering on the fly from a natural language question it's a very convenient trick uh that works with many different Vector DBS so encourage you to play with it thanks this is Lance from Lang chain I'm going to talk about indexing uh and mulation indexing in particular for the 12th part of our rag from scratch series here so we previously talked about a few different major areas we talk about query translation which takes a question and translates it in some way to optimize for retrieval we talk about routing which is the process of taking a question routing it to the right data source be it a vector store graph DB uh SQL DB we talked about queer construction we dug into uh basically queer construction for Vector stores but of course there's also text SQL text to Cipher um so now we're going to talk about indexing a bit in particular we're going to talk about indexing indexing techniques for Vector Stores um and I want to highlight one particular method today called multi-representation indexing so the high LEL idea here is derived a bit from a paper called proposition indexing which kind of makes a simple observation you can think about decoupling raw documents and the unit you use for retrieval so in the typical case you take a document you split it up in some way to index it and then you embed the split directly um this paper talks about actually taking a document splitting it in some way but then using an llm to produce what they call a proposition which you can think of as like kind of a distillation of that split so it's kind of like using an llm to modify that split in some way to distill it or make it like a crisper uh like summary so to speak that's better optimized for retrieval so that's kind of one highlight one piece of intuition so we actually taken that idea and we've kind of built on it a bit in kind of a really nice way that I think is very well suited actually for long context llms so the idea is pretty simple you take a document and you you actually distill it or create a proposition like they show in the prior paper I kind of typically think of this as just produce a summary of the document and you embed that summary so that summary is meant to be optimized for retrieval so might contain a bunch of keywords from the document or like the big ideas such that when you embed the summary you embed a question you do search you basically can find that document based upon this highly optimized summary for retrieval so that's kind of represented here in your vector store but here's the catch you independently store the raw document in a dock store and when you when you basically retrieve the summary in the vector store you return the full document for the llm to perform generation and this is a nice trick because at generation time now with long condex LMS for example the LM can handle that entire document you don't need to worry about splitting it or anything you just simply use the summary to prod like to create a really nice representation for fishing out that full dock use that full dock in generation there might be a lot of reasons you want to do that you want to make sure the LM has the full context to actually answer the question so that's the big idea it's a nice trick and let's walk through some code here we have a notebook all set up uh just like before we done some pip installs um set to maybe I Keys here for lsmith um kind of here's a diagram now let me show an example let's just load two different uh blog posts uh one is about agents one is about uh you know human data quality um and what we're going to do is let's create a summary of each of those so this is kind of the first step of that process where we're going from like the raw documents to summaries let's just have a look and make sure those ran So Okay cool so the first DOC discusses you know building autonomous agents the second doc contains the importance of high quality human data and training okay so that's pretty nice we have our summaries now we're going to go through a process that's pretty simple first we Define a vector store that's going to index those summaries now we're going to Define what we call like our our document storage is going to store the full documents okay so this multiv Vector retriever kind of just pulls those two things together we basically add our Dock Store we had this bite store is basically the the the full document store uh the vector store is our Vector store um and now this ID is what we're going to use to reference between the chunks or the summaries and the full documents that's really it so now for every document we'll Define a new Doc ID um and then we're basically going to like take our summary documents um and we're going to extract um for each of our summaries we're going to get the associated doc ID so we go um so let's go ahead and do that so we have our summary docs which we add to the vector store we have our full documents uh our doc IDs and the full raw documents which are added to our doc store and then let's just do a query Vector store like a similarity search on our Vector store so memory and agents and we can see okay so we can extract you know from the summaries we can get for example the summary that pertains to um a agents so that's a good thing now let's go ahead and run a query get relevant documents on our retriever which basically combines the summaries uh which we use for retrieval then the doc store which we use to get the full doc back so we're going to apply our query we're going to basically run this and here's the key Point we've gotten back the entire article um and we can actually if you want to look at the whole thing we we can just go ahead and do this here we go so this is the entire article that we get back from that search so it's a pretty nice trick again we query with just memory and agents um and we can kind of go back to our diagram here we quered for memory and agents it started our summaries it found the summary related to memory and agents it uses that doc ID to reference between the vector store and the doc store it fishes out the right full doc returns us the full document in this case the full web page that's really it simple idea nice way to go from basically like nice simple proposition style or summary style indexing to full document retrieval which is very useful especially with long contact LMS thank you hi this is Lance from Lang chain this is the 13th part of our rag from scratch series focused on a technique called Raptor so Raptor sits within kind of an array of different indexing techniques that can be applied on Vector Stores um we just talked about multi-representation indexing um we I priv a link to a video that's very good talking about the different means of chunking so I encourage you to look at that and we're going to talk today about a technique called Raptor which you can kind of think of it as a technique for hierarchical indexing so the highle intuition is this some questions require very detailed information from a corpus to answer like pertain to a single document or single chunk so like we can call those low-level questions some questions require consolidation across kind broad swast of a document so across like many documents or many chunks within a document and you can call those like higher level questions and so there's kind of this challenge in retrieval and that typically we do like K nearest neighbors retrieval like we've been talking about you're fishing out some number of chunks but what if you have a question that requires information across like five six you know or a number of different chunks which may exceed you know the K parameter in your retrieval so again when you typically do retrieval you might set a k parameter of three which means you're retrieving three chunks from your vector store um and maybe you have a high very high level question that could benefit from infation across more than three so this technique called raptor is basically a way to build a hierarchical index of document summaries and the intuition is this you start with a set of documents as your Leafs here on the left you cluster them and then you Summarize each cluster so each cluster of similar documents um will consult information from across your context which is you know your context could be a bunch of different splits or could even be across a bunch of different documents you're basically capturing similar ones and you're consolidating the information across them in a summary and here's the interesting thing you do that recursively until either you hit like a limit or you end up with one single cluster that's a kind of very high level summary of all of your documents and what the paper shows is that if you basically just collapse all these and index them together as a big pool you end up with a really nice array of chunks that span the abstraction hierarchy like you have a bunch of chunks from Individual documents that are just like more detailed chunks pertaining to that you know single document but you also have chunks from these summaries or I would say like you know maybe not chunks but in this case the summary is like a distillation so you know raw chunks on the left that represent your leavs are kind of like the rawest form of information either raw chunks or raw documents and then you have these higher level summaries which are all indexed together so if you have higher level questions they should basically be more similar uh in sematic search for example to these higher level summary chunks if you have lower level questions then they'll retrieve these more lower level chunks and so you have better semantic coverage across like the abstraction hierarchy of question types that's the intuition they do a bunch of nice studies to show that this works pretty well um I actually did a deep dive video just on this which I link below um I did want to cover it briefly just at a very high level um so let's actually just do kind of a code walkr and I've added it to this rack from scratch course notebook but I link over to my deep dive video as well as the paper and the the full code notebook which is already checked in is discussed at more length in the Deep dive the technique is a little bit detailed so I only want to give you very high levels kind of overview here and you can look at the Deep dive video if you want to go in more depth again we talked through this abstraction hierarchy um I applied this to a large set of Lang chain documents um so this is me loading basically all of our Lang chain expression language docs so this is on the order of 30 documents you can see I do a histogram here of the token counts per document some are pretty big most are fairly small less than you know 4,000 tokens um and what I did is I indexed all of them um individually so the all those raw documents you can kind of Imagine are here on the left and then I do um I do embedding I do clustering summarization and I do that recursively um until I end up with in this case I believe I only set like three levels of recursion and then I save them all my Vector store so that's like the highle idea I'm applying this Raptor technique to a whole bunch of Lang chain documents um that have fairly large number of tokens um so I do that um and yeah I use actually use both CLA as well as open AI here um this talks through the clustering method which they that they use which is pretty interesting you can kind of dig into that on your own if if you're really um interested this is a lot of their code um which I cite accordingly um this is basically implementing the clustering method that they use um and this is just simply the document embedding stage um this is like basically embedding uh and clustering that's really it uh some text formatting um summarizing of the clusters right here um and then this is just running that whole process recursively that's really it um this is tree building so basically I have the RO the rod docs let's just go back and look at Doc texts so this should be all my raw documents uh so that's right you can see it here doc text is basically just the text in all those Lang chain documents that I pulled um and so I run this process on them right here uh so this is that recursive embedding cluster basically runs and produces is that tree here's the results um this is me just going through the results and basically adding the result text to this list of uh texts um oh okay so here's what I do this Leaf text is all the raw documents and I'm appending to that all the summaries that's all it's going on and then I'm indexing them all together that's the key Point rag chain and there you have it that's really all you do um so anyway I encourage you to look at this in depth it's a pretty interesting technique it works well long with long contexts so for example one of the arguments I made is that it's kind of a nice approach to consult information across like a span of large documents like in this particular case my individual documents were lch expression language docs uh each each being somewhere in the order of you know in this case like you know most of them are less than 4,000 tokens some pretty big but I index them all I cluster them without any splits uh embed them cluster them build this tree um and go from there and it all works because we now have llms that can go out to you know 100 or 200,000 up to million tokens and Contex so you can actually just do this process for big swats of documents in place without any without any splitting uh it's a pretty nice approach so I encourage you to think about it look at it watch the deep that video If you really want to go deeper on this um thanks hi this is Lance from Lang chain this is the 14th part of our rag from scratch series we're going to I'm going to be talking about an approach called cold bear um so we've talked about a few different approaches for indexing and just as kind of a refresher indexing Falls uh kind of right down here in our flow we started initially with career translation taking a question translating it in some way to optimize retrieval we talked about routing it to a particular database we then talked about query construction so going from natural language to the DSL or domain specific language for E any of the databases that you want to work with those are you know metadata filters for Vector stores or Cipher for graph DB or SQL for relational DB so that's kind of the flow we talked about today we talked about some indexing approaches like multi-representation indexing we gave a small shout out to greet camer in the series on chunking uh we talked about hierarchical indexing and I want to include one Advanced kind embedding approach so we talked a lot about embeddings are obviously very Central to semantic similarity search um and retrieval so one of the interesting points that's been brought up is that embedding models of course take a document you can see here on the top and embed it basically compress it to a vector so it's kind of a compression process you representing all the semantics of that document in a single Vector you're doing the same to your question you're doing similarity search between the question embedding and the document embedding um in order to perform retrieval you're typically taking the you know K most similar um document abetting is given a question and that's really how you're doing it now a lot of people said well hey the compressing a full document with all this Nuance to single Vector seems a little bit um overly restrictive right and this is a fair question to ask um there's been some interesting approaches to try to address that and one is this this this approach method called Co bear so the intuition is actually pretty straightforward there's a bunch of good articles I link down here this is my little cartoon to explain it which I think is hopefully kind of helpful but here's the main idea instead of just taking a document and compressing it down to a single Vector basically single uh what we might call embedding Vector we take the document we break it up into tokens so tokens are just like you know units of of content it depends on the token areas you use we talked about this earlier so you basically tokenize it and you produce basically an embedding or vector for every token and there's some kind of positional uh waiting that occurs when you do this process so you obviously you look to look at the implementation understand the details but the intuition is that you're producing some kind of representation for every token okay and you're doing the same thing for your question so you're taking your question you're breaking into a tokens and you have some representation or vector per token and then what you're doing is for every token in the question you're Computing the similarity across all the tokens in the document and you're finding the max you're taking the max you're storing that and you're doing that process for all the tokens in the question so again token two you compare it to every token in the in the document compute the Max and then the final score is in this case the sum of the max similarities uh between every question token and any document token so it's an interesting approach uh it reports very strong performance latency is definitely a question um so kind of production Readiness is something you should look into but it's a it's an approach that's worth mentioning here uh because it's pretty interesting um and let's walk through the code so there's actually nice Library called rouille which makes it very easy to play with Co bear um she's pip install it here I've already done that and we can use one of their pre-train models to mediate this process so I'm basically following their documentation this is kind of what they recommended um so I'm running this now hopefully this runs somewhat quickly I'm not sure I I previously have loaded this model so hopefully it won't take too long and yeah you can see it's pretty quick uh I'm on a Mac M2 with 32 gigs um so just as like a context in terms of my my system um this is from their documentation we're just grabbing a Wikipedia page this is getting a full document on Miyazaki so that's cool we're going to grab that now this is just from their docs this is basically how we create an index so we provide the you know some index name the collection um the max document length and yeah you should look at their documentation for these flags these are just the defaults so I'm going to create my index um so I get some logging here so it it's working under the hood um and by the way I actually have their documentation open so you can kind of follow along um so um let's see yeah right about here so you can kind of follow this indexing process to create an index you need to load a train uh a trained model this can be either your own pre-train model or one of ours from The Hub um and this is kind of the process we're doing right now create index is just a few lines of code and this is exactly what we're doing um so this is the you know my documents and this is the indexing step that we just we just kind of walk through and it looks like it's done um so you get a bunch of logging here that's fine um now let's actually see if this works so we're going to run drag search what an emotion Studio did Miaki found set our K parameter and we get some results okay so it's running and cool we get some documents out so you know it seems to work now what's nice is you can run this within lighting chain as a liting chain retriever so that basically wraps this as a lighting chain Retriever and then you can use it freely as a retriever within Lang chain it works with all the other different LMS and all the other components like rankers and so forth that we talk through so you can use this directly as a retriever let's try this out and boom nice and fast um and we get our documents again this is a super simple test example you should run this maybe on more complex cases but it's pretty pretty easy spin up it's a really interesting alternative indexing approach um using again like we talked through um a very different algorithm for computing do similarity that may work better I think an interesting regime to consider this would be longer documents so if you want like longer um yeah if if you basically want kind of long context embedding I think you should look into for example the uh Max token limits for this approach because it partitions the document into into each token um I would be curious to dig into kind of what the overall context limits are for this approach of coar but it's really interesting to consider and it reports very strong performance so again I encourage you to play with it and this is just kind of an intro to how to get set up and to start experimenting with it really quickly thanks hi this is Lance from Lang chain I'm going to be talking about using langra to build a diverse and sophisticated rag flows so just to set the stage the basic rag flow you can see here starts with a question retrieval of relevant documents from an index which are passed into the context window of an llm for generation of an answer ground in your documents that's kind of the basic outline and we can see it's like a very linear path um in practice though you often encounter a few different types of questions like when do we actually want to retrieve based upon the context of the question um are the retrieve documents actually good or not and if they're not good should we discard them and then how do we loot back and retry retrieval with for example and improved question so these types of questions motivate an idea of active rag which is a process where an llm actually decides when and where to retrieve based upon like existing retrievals or existing Generations now when you think about this there's a few different levels of control that you have over an llm in a rag application the base case like we saw with our chain is just use an llm to choose a single steps output so for example in traditional rag you feed it documents and it decides to generation so it's just kind of one step now a lot of rag workflows will use the idea of routing so like given a question should I route it to a vector store or a graph DB um and we have seen this quite a bit now this newer idea that I want to introduce is how do we build more sophisticated logical flows um in a rag pipeline um that you let the llm choose between different steps but specify all the transitions that are available and this is known as we call a state machine now there's a few different architectures that have emerged uh to build different types of rag chains and of course chains are traditionally used just for like very basic rag but this notion of State machine is a bit newer and Lang graph which we recently released provides a really nice way to build State machines for Rag and for other things and the general idea here is that you can lay out more diverse and complicated rag flows and then Implement them as graphs and it kind of motivates this more broad idea of of like flow engineering and thinking through the actual like workflow that you want and then implementing it um and we're gonna actually do that right now so I'm GNA Pi a recent paper called CAG corrective rag which is really a nice method um for active rag that incorporates a few different ideas um so first you retrieve documents and then you grade them now if at least one document exceeds the threshold for relevance you go to generation you generate your answer um and it does this knowledge refinement stage after that but let's not worry about that for right now it's kind of not essential for understanding the basic flow here so again you do a grade for relevance for every document if any is relevant you generate now if they're all ambiguous or incorrect based upon your grader you retrieve from an external Source they use web search and then they pass that as their context for answer generation so it's a really neat workflow where you're doing retrieval just like with basic rag but then you're reasoning about the documents if they're relevant go ahead and at least one is relevant go ahead and generate if they're not retrieve from alternative source and then pack that into the context and generate your answer so let's see how we would implement this as a estate machine using Lang graph um we'll make a few simplifications um we're going to first decide if any documents are relevant we'll go ahead and do the the web search um to supplement the output so that's just like kind of one minor modification um we'll use tab search for web search um we use Query writing to optimize the search for uh to optimize the web search but it follows a lot of the the intuitions of the main paper uh small note here we set the Tav API key and another small mode I've already set my lsmith API key um with which we'll see is useful a bit later for observing the resulting traces now I'm going to index three blog posts that I like um I'm going to use chroma DB I'm G use open ey embeddings I'm going to run this right now this will create a vector store for me from these three blog posts and then what I'm going to do is Define State now this is kind of the core object that going to be passed around my graph that I'm going to modify and right here is where I Define it and the key point to note right now is it's just a dictionary and it can contain things that are relevant for rag like question documents generation and we'll see how we update that in in in a little bit but the first thing to note is we Define our state and this is what's going to be modified in every Noe of our graph now here's really the Crux of it and this is the thing I want to zoom in on a little bit um so when you kind of move from just thinking about promps to thinking about overall flows it it's like kind of a fun and interesting exercise I kind of think about this as it's been mentioned on Twitter a little bit more like flow engineering so let's think through what was actually done in the paper and what modifications to our state are going to happen in each stage so we start with a question you can see that on the far left and this kind of state is represent as a dictionary like we have we start with a question we perform retrieval from our Vector store which we just created that's going to give us documents so that's one node we made an an adjustment to our state by adding documents that's step one now we have a second node where we're going to grade the documents and in this node we might filter some out so we are making a modification to state which is why it's a node so we're going to have a greater then we're going to have what we're going to call a conditional Edge so we saw we went from question to retrieval retrieval always goes to grading and now we have a decision if any document is irrelevant we're going to go ahead and do web search to supplement and if they're all relevant will go to generation it's a minor kind of a minor kind of logical uh decision ision that we're going to make um if any are not relevant we'll transform the query and we'll do web search and we'll use that for Generation so that's really it and that's how we can kind of think about our flow and how our States can be modified throughout this flow now all we then need to do and I I kind of found spending 10 minutes thinking carefully through your flow engineering is really valuable because from here it's really implementation details um and it's pretty easy as you'll see so basically I'm going to run this code block but then we can like walk through some of it I won't show you everything so it'll get a little bit boring but really all we're doing is we're finding functions for every node that take in the state and modify in some way that's all it's going on so think about retrieval we run retrieval we take in state remember it's a dict we get our state dick like this we extract one keyy question from our dick we pass that to a retriever we get documents and we write back out State now with documents key added that's all generate going to be similar we take in state now we have our question and documents we pull in a prompt we Define an llm we do minor post processing on documents we set up a chain for retrieval uh or sorry for Generation which is just going to be take our prompt pump Plum that to an llm partially output a string and we run it right here invoking our documents in our question to get our answer we write that back to State that's it and you can kind of follow here for every node we just Define a function that performs the state modification that we want to do on that node grading documents is going to be the same um in this case I do a little thing extra here because I actually Define a identic data model for my grader so that the output of that particular grading chain is a binary yes or no you can look at the code make sure it's all shared um and that just makes sure that our output is is very deterministic so that we then can down here perform logical filtering so what you can see here is um we Define this search value no and we iterate through our documents we grade them if any document uh is graded as not relevant we flag this search thing to yes that means we're going to perform web search we then add that to our state dict at the end so run web search now that value is true that's it and you can kind of see we go through some other nodes here there's web search node um now here is where our one conditional Edge we Define right here this is where where we decide to generate or not based on that search key so we again get our state let's extract the various values so we have this search value now if search is yes we return the next no that we want to go to so in this case it'll be transform query which will then go to web search else we go to generate so what we can see is we laid out our graph which you can kind of see up here and now we Define functions for all those nodes as well as the conditional Edge and now we scroll down all we have to do is just lay that out here again as our flow and this is kind of what you might think of as like kind of flow engineering where you're just laying out the graph as you drew it where we have set our entry point as retrieve we're adding an edge between retrieve and grade documents so we went retrieval grade documents we add our conditional Edge depending on the grade either transform the query go to web search or just go to generate we create an edge between transform the query and web search then web search to generate and then we also have an edge generate to end and that's our whole graph that's it so we can just run this and now I'm going to ask a question so let's just say um how does agent memory work for example let's just try that and what this is going to do is going to print out what's going on as we run through this graph so um first we going to see output from retrieve this is going to be all of our documents that we retrieved so that's that's fine this just from our our retriever then you can see that we're doing a relevance check across our documents and this is kind of interesting right you can see we grading them here one is grade as not relevant um and okay you can see the documents are now filtered because we removed the one that's not relevant and because one is not relevant we decide okay we're going to just transform the query and run web search and um you can see after query transformation we rewrite the question slightly we then run web search um and you can see from web search it searched from some additional sources um which you can actually see here it's appended as a so here it is so here it's a new document appended from web search which is from memory knowledge requirements so it it basically looked up some AI architecture related to memory uh web results so that's fine that's exactly what we want to do and then um we generate a response so that's great and this is just showing you everything in kind of gory detail but I'm going to show you one other thing that's that's really nice about this if I go to lsmith I have my AP I ke set so all my Generations are just logged to to lsmith and I can see my Lang graph run here now what's really cool is this shows me all of my nodes so remember we had retrieve grade we evaluated the grade because one was irrelevant we then went ahead and transformed the query we did a web search we pended that to our context you can see all those steps are laid out here in fact you can even look at every single uh grader and its output I will move this up slightly um so you can see the the different scores for grades okay so this particular retrieval was graded as as not relevant so that's fine that that can happen in some cases and because of that um we did a query transformation so we modified the question slightly how does memory how does the memory system an artificial agents function so it's just a minor rephrasing of the question we did this Tav web search this is where it queried from this particular blog post from medium so it's like a sing web query we can like sanity check it and then what's need is we can go to our generate step look at open Ai and here's our full prompt how does the memory system in our official agents function and then here's all of our documents so this is the this is the web search as well as we still have the Rel chunks that were retrieved from our blog posts um and then here's our answer so that's really it you can see how um really moving from the notion of just like I'll actually go back to the original um moving from uh I will try to open this up a little bit um yeah I can see my face still um the transition from laying out simple chains to flows is a really interesting and helpful way of thinking about why graphs are really interesting because you can encode more sophisticated logical reasoning workflows but in a very like clean and well-engineered way where you can specify all the transitions that you actually want to have executed um and I actually find this way of thinking and building kind of logical uh like workflows really intuitive um we have a blog post coming out uh tomorrow that discusses both implementing self rag as well as C rag for two different active rag approaches using using uh this idea of of State machines and Lang graph um so I encourage you to play with it uh I found it really uh intuitive to work with um I also found uh inspection of traces to be quite intuitive using Lang graph because every node is enumerated pretty clearly for you which is not always the case when you're using other types of of more complex reasoning approaches for example like agents so in any case um I hope this was helpful and I definitely encourage you to check out um kind of this notion of like flow engineering using Lang graph and in the context of rag it can be really powerful hopefully as you've seen here thank you hey this is Lance from Lang chain I want to talk to a recent paper that I saw called adaptive rag which brings together some interesting ideas that have kind of been covered in other videos but this actually ties them all together in kind of a fun way so the the two big ideas to talk about here are one of query analysis so we've actually done kind of a whole rag from scratch series that walks through each of these things in detail but this is a very nice example of how this comes together um with some other ideas we've been talking about so query analysis is typically the process of taking an input question and modifying in some way uh to better optimize retrieval there's a bunch of different methods for this it could be decomposing it into sub questions it could be using some clever techniques like stepb back prompting um but that's kind of like the first stage of query analysis then typically you can do routing so you route a question to one of multiple potential sources it could be one or two different Vector stores it could be relational DB versus Vector store it could be web search it could just be like an llm fallback right so this is like one kind of big idea query analysis right it's kind of like the front end of your rag pipeline it's taking your question it's modifying it in some way it's sending it to the right place be it a web search be it a vector store be it a relational DB so that's kind of topic one now topic two is something that's been brought up in a few other videos um of what I kind of call Flow engineering or adaptive rag which is the idea of doing tests in your rag pipeline or in your rag inference flow uh to do things like check relevance documents um check whether or not the answer contains hallucinations so this recent blog post from Hamil Hussein actually covers evaluation in in some really nice detail and one of the things he highlighted explicitly is actually this topic so he talks about unit tests and in particular he says something really interesting here he says you know unlike typical unit tests you want to organize these assertions in places Beyond typical unit testing such as data cleaning and here's the key Point automatic retries during model inference that's the key thing I want to like draw your attention to to it's a really nice approach we've talked about some other papers that do that like corrective rag self rag but it's also cool to see it here and kind of encapsulated in this way the main idea is that you're using kind of unit tests in your flow to make Corrections like if your retrieval is bad you can correct from that if your generation has hallucinations you can correct from that so I'm going to kind of draw out like a cartoon diagram of what we're going to do here and you can kind of see it here we're starting with a question we talked about query analysis we're going to take our question and we're going to decide where it needs to go and for this particular toy example I'm going to say either send it to a vector store send it to web search or just have the llm answer it right so that's like kind of my fallback Behavior then we're going to bring in that idea of kind of online flow engineering or unit testing where I'm going to have my retrieval either from the VOR store or web search I'm then going to ask is this actually relevant to the question if it isn't I'm actually going to kick back to web sech so this is a little bit more relevant in the case if I've routed to to the vector store done retrieval documents aren't relevant I'll have a fallback mechanism um then I'm going to generate I check for hallucinations in my generation and then I check for um for whether or not the the generation actually answers the question then I return my answer so again we're tying together two ideas one is query analysis like basically taking a question routing it to the right place modifying it as needed and then kind of online unit testing and iterative flow feedback so to do this I've actually heard a lot of people talk online about command r a new model release from gooh here it has some pretty nice properties that I was kind of reading about recently so one it has nice support for Tool use and it does support query writing in the context of tool use uh so this all rolls up in really nice capabilities for routing it's kind of one now two it's small it's 35 billion parameter uh it's actually open weight so you can actually run this locally and I've tried that we can we can talk about that later uh so and it's also fast served via the API so it's kind of a small model and it's well tuned for rag so I heard a lot of people talking about using coher for Rag and it has a large context 120,000 tokens so this like a nice combination of properties it supports to and routing it's small and fast so it's like quick for grading and it's well tuned for rag so it's actually a really nice fit for this particular workflow where I want to do query analysis and routing and I want to do kind of online checking uh and rag so kind of there you go now let's just get to the coding bit so I have a notebook kind of like usual I've done a few pip installs you can see it's nothing exotic I'm bringing Lang chain coh here I set my coher API key now I'm just going to set this Lang chain project within lsmith so all my traces for this go to that project and I have enabled tracing so I'm using Langs Smith here so we're going to walk through this flow and let's do the first thing let's just build a vector store so I'm going to build a vector store using coherent beddings with chroma open source Vector DB runs locally from three different web pages on blog post that I like so it pertains to agents prompt engineering and adversarial attacks so now I have a retriever I can run retriever invoke and I can ask a question about you know agent memory agent memory and there we go so we get documents back so there we go we have a retriever now now here's where I'm going to bring in coh here I also want a router so you look at our flow the first step is this routing stage right so what I'm going to do is I'm guess we going to find two tools a web search tool and a vector store tool okay in my Preamble is just going to say you're an expert routing user questions to Vector store web search now here's the key I tell it what the vector store has so again my index my Vector store has agents prompt engineering adial tax I just repeat that here agents prompt adversarial tax so it knows what's in the vector store um so use it for questions on these topics otherwise use web search so that's it I use command R here now I'm going to bind these tools to the model and attach the Preamble and I have a structured LM router so let's give it a let's give this a few tests just to like kind of sandbox this a little bit so I can inval here's my chain I have a router prompt I pass that to the structured LM router which I defined right here and um let's ask a few different questions like who will the Bears draft in the NFL draft with types of agent memory and Hi how are you so I'm going to kick that off and you can see you know it does web search it does it goes to Vector store and then actually returns this false so that's kind of interesting um this is actually just saying if it does not use either tool so for that particular query web search or the vector store was inappropriate it'll just say hey I didn't call one of those tools so that's interesting we'll use that later so that's my router tool now the second thing is my grader and here's where I want to show you something really nice that is generally useful uh for many different problems you might encounter so here's what I'm doing I'm defining a data model uh for My Grade so basically grade documents it's going to have this is a pantic object it is just basically a binary score here um field specified here uh documents are relevant to the question yes no I have a preamble your grer assessing relevance of retrieve documents to a user question um blah blah blah so you know and then basically give it a b score yes no I'm using command R but here's the catch I'm using this wi structured outputs thing and I'm passing my grade documents uh data model to that that so this is the key thing we can test this right now as well it's going to return an object based on the schema I give it which is extremely useful for all sorts of use cases and let's actually Zoom back up so we're actually right here so this greater stage right I want to constrain the output to yes no I don't want any preambles I want anything because the logic I'm going to build in this graph is going to require a yes no binary response from this particular Edge in our graph so that's why this greater tool is really useful and I'm asking like a mock question types of agent memory I do a retriever I do a retrieval from our Vector store I get the tuck and I test it um I invoke our greater retrieval grater chain with the question the doc text and it's relevant as we would expect so that's good but again let's just kind of look at that a little bit more closely what's actually happening under the hood here here's the pantic object we passed here's the document in question I'm providing basically it's converting this object into coher function schema it's binding that to the llm we pass in the document question it returns an object basic a Json string per our pantic schema that's it and then it's just going to like parse that into a pantic object which we get at the end of the day so that's what's happening under the hood with this with structured output thing but it's extremely useful and you'll see we're going to use that a few different places um um because we want to ensure that in our in our flow here we have three different grading steps and each time we want to constrain the output to yes no we're going to use that structured output more than once um this is just my generation so this is good Old Rag let's just make sure that works um I'm using rag chain typical rag prompt again I'm using cohere for rag pretty easy and yeah so the rag piece works that's totally fine nothing to it crazy there um I'm going to find this llm fallback so this is basically if you saw a router chain if it doesn't use a tool I want to fall back and just fall back to the llm so I'm going to kind of build that as a little chain here so okay this is just a fallback I have my Preamble just you're you're an assistant answer the question based upon your internal knowledge so again that fallback behavior is what we have here so what we've done already is we defined our router piece we've defined our our basic retrieval our Vector store we already have here um we've defined our first logic or like grade check and we defined our fallback and we're just kind of roll through the parts of our graph and Define each piece um so I'm going to have two other graders and they're going to use the same thing we just talked about slightly different data model I mean same output but actually just slightly different uh prompt um and you know descript destion this in this case is the aners grounded the facts yes no this is my hallucination grater uh and then I have an answer grader as well and I've also run a test on each one and you can see I'm getting binary this this these objects out have a binary score so this a pantic object with a binary score uh and that's exactly what we want cool and I have a Search tool so that's really nice we've actually gone through and we've kind of laid out I have like a router I've tested it we have a vector story tested we've tested each of our graders here we've also tested generation of just doing rag so we have a bunch of pieces built here we have a fallback piece we have web search now the question is how do I Stitch these together into this kind of flow and for that I I like to use Lang graph we'll talk a little about Lang graph versus agents a bit later but I want to show you why this is really easy to do using Lang graph so what's kind of nice is I've kind of laid out all my logic here we've tested individually and now all I'm going to do is I'm going to first lay out uh the parts of my graph so what you're going to notice here is first there's a graph state so this state represents kind of the key parts of the graph or the key kind of objects within the graph that we're going to be modifying so this is basically a graph centered around rag we're going to have question generation and documents that's really kind of the main things we're going to be working with in our graph so then you're going to see something that's pretty intuitive I think what you're going to see is we're going to basically walk through this flow and for each of these little circles we're just going to find a function and these uh little squares or these these you can think about every Circle as a node and every kind of diamond here as as an edge or conditional Edge so that's actually what we're going to do right now we're going to lay out all of our nodes and edges and each one of them are just going to be a function and you're going to see how we do that right now so I'm going to go down here I def find my graph state so this is what's going to be kind of modified and propagated throughout my graph now all I'm going to do is I'm just going to find a function uh for each of those nodes so let me kind of go side by side and show you the diagram and then like kind of show the nodes next to it so here's the diagram so we have uh a retrieve node so that kind of represents our Vector store we have a fallback node that's this piece we have a generate node so that's basically going to do our rag you can see there we have a grade documents node kind of right here um and we have a web search node so that's right here cool now here's where we're actually to find the edges so you can see our edges are the pieces of the graph that are kind of making different decisions so this route question Edge basic conditional Edge is basically going to take an input question and decide where it needs to go and that's all we're doing down here it kind of follows what we did up at the top where we tested this individually so recall we basically just invoke that question router returns our source now remember if tool calls were not in the source we do our fall back so we show actually showed that all the way up here remember this if tool calls is not in the response this thing will just be false so that means we didn't either we didn't call web search and we didn't call uh our retriever tool so then we're just going to fall back um yep right here and this is just like uh you know a catch just in case a tool could make a decision but most interestingly here's where we choose a data source basically so um this is the output of our tool call we're just going to fish out the name of the tool so that's data source and then here we go if the data source is web search I'm returning web search as basically the next node to go to um otherwise if it's Vector store we return Vector store as the next node to go to so what's this search thing well remember we right up here Define this node web search that's it we're just going to go to that node um what's this Vector store um you'll see below how we can kind of tie these strings that we returned from the conditional Edge to the node we want to go to that's really it um same kind of thing here decide to generate that's going to roll in these two conditional edges into one um and basically it's going to do if there's no documents so basic basically if we filtered out all of our documents from this first test here um then what we're going to do is we've decided all documents are not relevant to the question and we're going to kick back to web search exactly as we show here so that's this piece um otherwise we're going to go to generate so that's this piece so again in these conditional edges you're basically implementing the logic that you see in our diagram right here that's all that's going on um and again this is just implementing the final two checks uh for hallucinations and and answer relevance um and um yep so here's our hallucination grader we then extract the grade if the if basically there are hallucinations um oh sorry in this case the grade actually yes means that the answer is grounded so we say answer is actually grounded and then we go to the next step we go to the next test that's all this is doing it's just basically wrapping this logic that we're implementing here in our graph so that's all that's going on and let's go ahead and Define all those things so nice we have all that um now we can actually go down a little bit and we can pull um this is actually where we stitch together everything so all it's happening here is you see we defined all these functions up here we just add them as nodes in our graph here and then we build our graph here basically by by basically laying out the flow or the connectivity between our nodes and edges so you know you can look at this notebook to kind of study in a bit of detail what's going on but frankly what I like to do here typically just draw out a graph kind of like we did up here and then Implement uh the Lo logical flow here in your graph as nodes and edges just like we're doing here that's all that's happening uh so again we have like our entry point is the router um this is like the output is this is basically directing like here's what the router is outputting and here's the next node to go to so that's it um and then for each node we're kind of applying like we're saying like what's what's the flow so web search goes to generate after um and retrieve goes to grade documents grade documents um kind of is is like is a conditional Edge um depending on the results we either do web search or generate and then our second one we go from generate to uh basically this grade uh generation versus documents in question based on the output of that we either have hallucinations we regenerate uh we found that the answer is not useful we kick back to web search or we end um finally we have that llm fallback and that's also if we go to the fallback we end so what you're seeing here is actually the the logic flow we're laying out in this graph matches the diagram that we laid out up top I'm just going to copy these over and I'll actually go then back to the diagram and and kind of underscore that a little bit more so here is the flow we've laid out again here is our diagram and you can kind of look at them side by side and see how they basically match up so here's kind of our flow diagram going from basically query analysis that's this thing this route question and you can see web search Vector store LM fallback LM fallback web search vector store so those are like the three options that can come out of this conditional Edge and then here's where we connect so if we go to web search then basically we next go to generate so that's kind of this whole flow um now if we go to retrieve um then we're going to grade so that's it um and you know it follows kind of as you can see here that's really it uh so it's just nice to draw the these diagrams out first and then it's pretty quick to implement each node and each Edge just as a function and then stitch them together in a graph just like I show here and of course we'll make sure this code's publ so you can use it as a reference um so there we go now let's try a few a few different test questions so like what player the Bears to draft and NFL draft right let's have a look at that and they should print everything it's doing as we go so okay this is important route question it just decides to route to web search that's good it doesn't go to our Vector store this is a current event not related to our Vector store at all it goes to web search um and then it goes to generate so that's what we'd expect so basically web search goes through to generate um and we check hallucinations Generations ground the documents we check generation versus question the generation addresses the question the Chicago Bears expected to draft Caleb Williams that's right that's that's the consensus so cool that works now let's ask a question related to our Vector store what are the types of agent memory we'll kick this off so we're routing okay we're routing to rag now look how fast this is that's really fast so we basically whip through that document grading determine they're all relevant uh we go to decision to generate um we check hallucinations we check answer versus question and there are several types of memory stored in the human brain memory can also be stored in G of Agents you have LM agents memory stream retrieval model and and reflection mechanism so it's representing what's captured on the blog post pretty reasonably now let me show you something else is kind of nice I can go to Langs Smith and I can go to my projects we create this new project coher adaptive rag at the start and everything is actually logged there everything we just did so I can open this up and I can actually just kind of look through all the stages of my Lang graph to here's my retrieval stage um here's my grade document stage and we can kind of audit the grading itself we kind of looked at this one by one previously but it's actually pretty nice we can actually audit every single individual document grade to see what's happening um we can basically go through um to this is going to be one of the other graders here um yep so this is actually going to be the hallucination grading right here uh and then this is going to be the answer grading right here so that's really it you can kind of walk through the entire graph you can you can kind of study what's going on um which is actually very useful so it looks like this worked pretty well um and finally let's just ask a question that should go to that fallback uh path down at the bottom like not related at all to our Vector store current events and yeah hello I'm doing well so it's pretty neat we've seen in maybe 15 minutes we've from scratch built basically a semi- sophisticated rag system that has agentic properties we've done in Lang graph we've done with coher uh command R you can see it's pretty darn fast in fact we can go to Langs Smith and look at so this whole thing took 7 seconds uh that is not bad let's look at the most recent one so this takes one second so the fallback mechanism to the LM is like 1 second um the let's just look here so 6 seconds for the initial uh land graph so this is not bad at all it's quite fast it done it does quite a few different checks we do routing uh and then we have kind of a bunch of nice fallback behavior and inline checking uh for both relevance hallucinations and and answer uh kind of groundedness or answer usefulness so you know this is pretty nice I definitely encourage you to play with a notebook command R is a really nice option for this due to the fact that is tool use routing uh small and quite fast and it's really good for Rags it's a very nice kind of uh a very nice option for workflows like this and I think you're going to see more and more of this kind of like uh adaptive or self-reflective rag um just because this is something that a lot systems can benefit from like a a lot of production rack systems kind of don't necessarily have fallbacks uh depending on for example like um you know if the documents retrieved are not relevant uh if the answer contains hallucinations and so forth so this opportunity to apply inline checking along with rag is like a really nice theme I think we're going to see more and more of especially as model inference gets faster and faster and these checks get cheaper and cheaper to do kind of in the inference Loop now as a final thing I do want to bring up the a point about you know we've shown this Lang graph stuff what about agents you know how do you think about agents versus Lang graph right and and I think the way I like to frame this is that um Lang graph is really good for um flows that you have kind of very clearly defined that don't have like kind of open-endedness but like in this case we know the steps we want to take every time we want to do um basically query analysis routing and then we want to do a three grading steps and that's it um Lang graph is really good for building very reliable flows uh it's kind of like putting an agent on guard rails and it's really nice uh it's less flexible but highly reliable and so you can actually use smaller faster models with langra so that's the thing I like about we saw here command R 35 billion parameter model works really well with langra quite quick we' were able to implement a pretty sophisticated rag flow really quickly 15 minutes um in time is on the order of like less than you know around 5 to 6 seconds so so pretty good right now what about agents right so I think Agents come into play when you want more flexible workflows you don't want to necessarily follow a defined pattern a priori you want an agent to be able to kind of reason and make of open-end decisions which is interesting for certain like long Horizon planning problems you know agents are really interesting the catch is that reliability is a bit worse with agents and so you know that's a big question a lot of people bring up and that's kind of where larger LMS kind of come into play with a you know there's been a lot of questions about using small LMS even open source models with agents and reliabilities kind of continuously being an issue whereas I've been able to run these types of land graphs with um with uh like mraw or you know command R actually is open weights you can run it locally um I've been able to run them very reproducibly with open source models on my laptop um so you know I think there's a tradeoff and Comm actually there's a new coher model coming out uh believe command R plus which uh is a larger model so it's probably more suitable for kind of more open-ended agentic use cases and there's actually a new integration with Lang chain that support uh coher agents um which is quite nice so I think it's it's worth experimenting for certain problems in workflows you may need more open-ended reasoning in which case use an agent with a larger model otherwise you can use like Lang graph for more uh a more reliable potential but con strain flow and it can also use smaller models faster LMS so those are some of the trade-offs to keep in mind but anyway encourage you play with a notebook explore for yourself I think command R is a really nice model um I've also been experimenting with running it locally with AMA uh currently the quantise model is like uh two bit quantise is like 13 billion uh or so uh yeah 13 gigs it's it's a little bit too large to run quickly locally for me um inference for things like rag we're on the order of 30 seconds so again it's not great for a live demo but it does work it is available on a llama so I encourage you to play with that I have a Mac M2 32 gig um so you know if I if you're a larger machine then it absolutely could be worth working with locally so encourage you to play with that anyway hopefully this was useful and interesting I think this is a cool paper cool flow um coher command R is a nice option for these types of like routing uh it's quick good with Lang graph good for rag good for Tool use so you know have a have a look and uh you know reply anything uh any feedback in the comments thanks hi this is Lance from Lang chain this is a talk I gave at two recent meetups in San Francisco called is rag really dead um and I figured since you know a lot of people actually weren't able to make those meetups uh I just record this and put this on YouTube and see if this is of interest to folks um so we all kind of recognize that Contex windows are getting larger for llms so on the x-axis you can see the tokens used in pre-training that's of course you know getting larger as well um proprietary models are somewhere over the two trillion token regime we don't quite know where they sit uh and we've all the way down to smaller models like 52 trained on far fewer tokens um but what's really notable is on the y axis you can see about a year ago da the art models were on the order of 4,000 to 8,000 tokens and that's you know dozens of pages um we saw Claude 2 come out with the 200,000 token model earlier I think it was last year um gbd4 128,000 tokens now that's hundreds of pages and now we're seeing Claud 3 and Gemini come out with million token models so this is hundreds to thousands of pages so because of this phenomenon people have been kind of wondering is rag dead if you can stuff you know many thousands of pages into the context window llm why do you need a reteval system um it's a good question spoke sparked a lot of interesting debate on Twitter um and it's maybe first just kind of grounding on what is rag so rag is really the process of reasoning and retrieval over chunks of of information that have been retrieved um it's starting with you know documents that are indexed um they're retrievable through some mechanism typically some kind of semantic similarity search or keyword search other mechanisms retriev docs should then pass to an llm and the llm reasons about them to ground response to the question in the retrieve document so that's kind of the overall flow but the important point to make is that typically it's multiple documents and involve some form of reasoning so one of the questions I asked recently is you know if long condex llms can replace rag it should be able to perform you know multia retrieval and reasoning from its own context really effectively so I teamed up with Greg Cameron uh to kind of pressure test this and he had done some really nice needle the Haack analyses already focused on kind of single facts called needles placed in a Hy stack of Paul Graham essays um so I kind of extended that to kind of mirror the rag use case or kind of the rag context uh where I took multiple facts so I call it multi needle um I buil on a funny needle in the HTO challenge published by anthropic where they add they basically placed Pizza ingredients in the context uh and asked the LM to retrieve this combination of pizza ingredients I did I kind of Rift on that and I basically split the pizza ingredients up into three different needles and place those three ingredients in different places in the context and then ask the um to recover those three ingredients um from the context so again the setup is the question is what the secret ingredients need to build a perfect Pizza the needles are the ingredients figs Pudo goat cheese um I place them in the context at some specified intervals the way this test works is you can basically set the percent of context you want to place the first needle and the remaining two are placed at roughly equal intervals in the remaining context after the first so that's kind of the way the test is set up now it's all open source by the way the link is below so needs are placed um you ask a question you promp L them with with kind of um with this context and the question and then produces the answer and now the the framework will grade the response both one are you know all are all the the specified ingredients present in the answer and two if not which ones are missing so I ran a bunch of analysis on this with GPD 4 and came kind of came up with some with some fun results um so you can see on the left here what this is looking at is different numbers of needles placed in 120,000 token context window for gbd4 and I'm asking um gbd4 to retrieve either one three or 10 needles now I'm also asking it to do reasoning on those needles that's what you can see in those red bars so green is just retrieve the ingredients red is reasoning and the reasoning challenge here is just return the first letter of each ingredient so we find is basically two things the performance or the percentage of needles retrieved drops with respect to the number of needles that's kind of intuitive you place more facts performance gets worse but also it gets worse if you ask it to reason so if you say um just return the needles it does a little bit better than if you say return the needles and tell me the first letter so you overlay reasoning so this is the first observation more facts is harder uh and reasoning is harder uh than just retrieval now the second question we ask is where are these needles actually present in the context that we're missing right so we know for example um retrieval of um 10 needles is around 60% so where are the missing needles in the context so on the right you can see results telling us actually which specific needles uh are are the model fails to retrieve so what we can see is as you go from a th000 tokens up to 120,000 tokens on the X here and you look at needle one place at the start of the document to needle 10 placed at the end at a th000 token context link you can retrieve them all so again kind of match what we see over here small well actually sorry over here everything I'm looking at is 120,000 tokens so that's really not the point uh the point is actually smaller context uh better retrieval so that's kind of point one um as I increase the context window I actually see that uh there is increased failure to retrieve needles which you see can see in red here towards the start of the document um and so this is an interesting result um and it actually matches what Greg saw with single needle case as well so the way to think about it is it appears that um you know if you for example read a book and I asked you a question about the first chapter you might have forgotten it same kind of phenomenon appears to happen here with retrieval where needles towards the start of the context are are kind of Forgotten or are not well retrieved relative to those of the end so this is an effect we see with gbd4 it's been reproduced quite a bit so ran nine different trials here Greg's also seen this repeatedly with single needle so it seems like a pretty consistent result and there's an interesting point I put this on Twitter and a number of folks um you know replied and someone sent me this paper which is pretty interesting and it mentions recency bias is one possible reason so the most informative tokens for predicting the next token uh you know are are are present close to or recent to kind of where you're doing your generation and so there's a bias to attend to recent tokens which is obviously not great for the retrieval problem as we saw here so again the results show us that um reasoning is a bit harder than retrieval more needles is more difficult and needles towards the start of your context are harder to retrieve than towards the end those are three main observations from this and it maybe indeed due to this recency bias so overall what this kind of tells you is be wary of just context stuffing in large long context there are no retrieval guarantees and also there's some recent results that came out actually just today suggesting that single needle may be misleadingly easy um you know there's no reasoning it's retrieving a single needle um and also these guys I'm I showed this tweet here show that um the in a lot of these needle and Haack challenges including mine the facts that we look for are very different than um the background kind of Hy stack of Paul Graham essays and so that may be kind of an interesting artifact they note that indeed if the needle is more subtle retrievals is worse so I think basically when you see these really strong performing needle and hyack analyses put up by model providers you should be skeptical um you shouldn't necessarily assume that you're going to get high quality retrieval from these long contact LMS uh for numerous reasons you need to think about retrieval of multiple facts um you need to think about reasoning on top of retrieval you need need to think about the subtlety of the retrieval relative to the background context because for many of these needle and the Haack challenges it's a single needle no reasoning and the needle itself is very different from the background so anyway those may all make the challenge a bit easier than a real world scenario of fact retrieval so I just want to like kind of lay out that those cautionary notes but you know I think it is fair to say this will certainly get better and I think it's also fair to say that rag will change and this is just like a nearly not a great joke but Frank zap a musician made the point Jazz isn't dead it just smells funny you know I think same for rag rag is not dead but it will change I think that's like kind of the key Point here um so just as a followup on that rag today's focus on precise retrieval of relevant doc chunks so it's very focused on typically taking documents chunking them in some particular way often using very OS syncratic chunking methods things like chunk size are kind of picked almost arbitrarily embeding them storing them in an index taking a question embedding it doing K&N uh similarity search to retrieve relevant chunks you're often setting a k parameter which is the number of chunks you retrieve you often will do some kind of filtering or Pro processing on the retrieve chunks and then ground your answer in those retrieved chunks so it's very focused on precise retrieval of just the right chunks now in a world where you have very long context models I think there's a fair question to ask is is this really kind of the most most reasonable approach so kind of on the left here you can kind of see this notion closer to today of I need the exact relevant chunk you can risk over engineering you can have you know higher complexity sensitivity to these odd parameters like chunk size k um and you can indeed suffer lower recall because you're really only picking very precise chunks you're beholden to very particular embedding models so you know I think going forward as long context models get better and better there are definitely question you should certainly question the current kind of very precise chunking rag Paradigm but on the flip side I think just throwing all your docs into context probably will also not be the preferred approach you'll suffer higher latency higher token usage I should note that today 100,000 token GPD 4 is like $1 per generation I spent a lot of money on Lang Chain's account uh on that multile analysis I don't want to tell Harrison how much I spent uh so it's it's you know it's not good right um You Can't audit retrieve um and security and and authentication are issues if for example you need different users different different access to certain kind of retriev documents or chunks in the Contex stuffing case you you kind of can't manage security as easily so there's probably some predo optimal regime kind of here in the middle and um you know I I put this out on Twitter I think there's some reasonable points raised I think you know this inclusion at the document level is probably pretty sane documents are self-contained chunks of context um so you know what about document Centric rag so no chunking uh but just like operate on the context of full documents so you know if you think forward to the rag Paradigm that's document Centric you still have the problem of taking an input question routing it to the right document um this doesn't change so I think a lot of methods that we think about for kind of query analysis um taking an input question rewriting it in a certain way to optimize retrieval things like routing taking a question routing to the right database be it a relational database graph database Vector store um and quer construction methods so for example text to SQL text to Cipher for graphs um or text to even like metadata filters for for Vector stores those are all still relevant in the world that you have long Contex llms um you're probably not going to dump your entire SQL DB and feed that to the llm you're still going to have SQL queries you're still going to have graph queries um you may be more permissive with what you extract but it still is very reasonable to store the majority of your structured data in these in these forms likewise with unstructured data like documents like we said before it still probably makes sense to ENC to you know store documents independently but just simply aim to retrieve full documents rather than worrying about these idiosyncratic parameters like like chunk size um and along those lines there's a lot of methods out there we've we've done a few of these that are kind of well optimized for document retrieval so one I want a flag is what we call multi repesent presentation indexing and there's actually a really nice paper on this called dense X retriever or proposition indexing but the main point is simply this would you do is you take your OD document you produce a representation like a summary of that document you index that summary right and then um at retrieval time you ask your question you embed your question and you simply use a highle summary to just retrieve the right document you pass the full document to the LM for a kind of final generation so it's kind of a trick where you don't have to worry about embedding full documents in this particular case you can use kind of very nice descriptive summarization prompts to build descriptive summaries and the problem you're solving here is just get me the right document it's an easier problem than get me the right chunk so this is kind of a nice approach it there's also different variants of it which I share below one is called parent document retriever where you could use in principle if you wanted smaller chunks but then just return full documents but anyway the point is preserving full documents for Generation but using representations like summaries or chunks for retrieval so that's kind of like approach one that I think is really interesting approach two is this idea of raptor is a cool paper came out of Stamper somewhat recently and this solves the problem of what if for certain questions I need to integrate information across many documents so what this approach does is it takes documents and it it embeds them and clusters them and then it summarizes each cluster um and it does this recursively in up with only one very high level summary for the entire Corpus of documents and what they do is they take this kind of this abstraction hierarchy so to speak of different document summarizations and they just index all of it and they use this in retrieval and so basically if you have a question that draws an information across numerous documents you probably have a summary present and and indexed that kind of has that answer captured so it's a nice trick to consolidate information across documents um they they paper actually reports you know these documents in their case or the leavs are actually document chunks or slices but I actually showed I have a video on it and a notebook that this works across full documents as well um and this and I segue into to do this you do need to think about long context embedding models because you're embedding full documents and that's a really interesting thing to track um the you know hazy research uh put out a really nice um uh blog post on this using uh what the Monch mixer so it's kind of a new architecture that tends to longer context they have a 32,000 token embedding model that's pres that's available on together AI absolutely worth experimenting with I think this is really interesting Trend so long long Contex and beddings kind of play really well with this kind of idea you take full documents embed them using for example long Contex embedding models and you can kind of build these document summarization trees um really effectively so I think this another nice trick for working with full documents in the long context kind of llm regime um one other thing I'll note I think there's also going to Mo be move away from kind of single shot rag well today's rag we typically you know we chunk documents uh uh embed them store them in an index you know do retrieval and then do generation but there's no reason why you shouldn't kind of do reasoning on top of the generation or reasoning on top of the retrieval and feedback if there are errors so there's a really nice paper called selfrag um that kind of reports this we implemented this using Lang graph works really well and the simp the idea is simply to you know grade the relevance of your documents relative to your question first if they're not relevant you rewrite the question you can do you can do many things in this case we do question rewriting and try again um we also grade for hallucinations we grade for answer relevance but anyway it kind of moves rag from like a single shot Paradigm to a kind of a cyclic flow uh in which you actually do various gradings Downstream and this is all relev in the long context llm regime as well in fact you know it you you absolutely should take advantage of of for example increasingly fast and Performing LMS to do this grading um Frameworks like langra allow you to build these kind of these flows which build which allows you to kind of have a more performant uh kind of kind of self-reflective rag pipeline now I did get a lot of questions about latency here and I completely agree there's a trade-off between kind of performance accuracy and latency that's present here I think the real answer is you can opt to use very fast uh for example models like grock where seeing um you know gp35 turbos very fast these are fairly easy grading challenges so you can use very very fast LMS to do the grading and for example um you you can also restrict this to only do one turn of of kind of cyclic iteration so you can kind of restrict the latency in that way as well so anyway I think it's a really cool approach still relevant in the world as we move towards longer context so it's kind of like building reasoning on top of rag um in the uh generation and retrieval stages and a related point one of the challenges with rag is that your index for example you you may have a question that is that asks something that's outside the scope of your index and this is kind of always a problem so a really cool paper called c c rag or corrective rag came out you know a couple months ago that basically does grading just like we talked about before and then if the documents are not relevant you kick off and do a web search and basically return the search results to the LM for final generation so it's a nice fallback in cases where um your you the questions out of the domain of your retriever so you know again nice trick overlaying reasoning on top of rag I think this trend you know continues um because you know it it just it makes rag systems you know more performant uh and less brittle to questions that are out of domain so you know you know that's another kind of nice idea this particular approach also we showed works really well with with uh with open source models so I ran this with mraw 7B it can run locally on my laptop using a llama so again really nice approach I encourage you to look into this um and this is all kind of independent of the llm kind of context length these are reasoning you can add on top of the retrieval stage that that can kind of improve overall performance and so the overall picture kind of looks like this where you know I think that the the the the problem of routing your question to the right database Andor to the right document kind of remains in place query analysis is still quite relevant routing is still relevant query construction is still relevant um in the long Contex regime I think there is less of an emphasis on document chunking working with full documents is probably kind of more parto optimal so to speak um there's some some clever tricks for IND indexing of documents like the multi-representation indexing we talked about the hierarchical indexing using Raptor that we talked about as well are two interesting ideas for document Centric indexing um and then kind of reasoning in generation post retrieval on retrieval itself tog grade on the generations themselves checking for hallucinations those are all kind of interesting and relevant parts of a rag system that I think we'll probably will see more and more of as we move more away from like a more naive prompt response Paradigm more to like a flow Paradigm we're seeing that actually already in codenation it's probably going to carry over to rag as well where we kind of build rag systems that have kind of a cyclic flow to them operate on documents use longc Comics llms um and still use kind of routing and query analysis so reasoning pre- retrieval reasoning post- retrieval so anyway that was kind of my talk um and yeah feel free to leave any comments on the video and I'll try to answer any questions but um yeah that's that's probably about it thank you \ No newline at end of file diff --git a/youtube_transcripts/summarizer/short_video/transcript_summarizer.py b/youtube_transcripts/summarizer/short_video/transcript_summarizer.py new file mode 100644 index 0000000..99c0a74 --- /dev/null +++ b/youtube_transcripts/summarizer/short_video/transcript_summarizer.py @@ -0,0 +1,22 @@ +from typing import List +from langchain_core.documents import Document +from youtube_transcripts import llm, load_youtube_transcripts +from langchain.chains.summarize import load_summarize_chain + +# Fetch the transcript of a YouTube video +summary = load_youtube_transcripts() + +# Save the actual transcript in a text file +with open("transcript.txt", "w") as f: + for doc in summary: + f.write(doc.page_content) + f.close() + +# Summarize the transcript using the summarization chain +chain = load_summarize_chain(llm, chain_type="stuff", verbose=True) + +response = chain.run(summary) + +# Save the response in a text file +with open("summary.txt", "w") as f: + f.write(response) diff --git a/youtube_transcripts/transcripts_loaders/video_transcripts_loaders.py b/youtube_transcripts/transcripts_loaders/video_transcripts_loaders.py new file mode 100644 index 0000000..f837c60 --- /dev/null +++ b/youtube_transcripts/transcripts_loaders/video_transcripts_loaders.py @@ -0,0 +1,25 @@ +from langchain_community.document_loaders import YoutubeLoader +from langchain_community.document_loaders.youtube import TranscriptFormat + +def load_youtube_transcripts(): + try: + # Load the transcript of a YouTube video + yt_loader = YoutubeLoader(video_id="sVcwVQRHIc8", language=["en"], translation="en", + transcript_format=TranscriptFormat.TEXT) + + # Get the transcript + transcript = yt_loader.load() + + if transcript and len(transcript) > 0: + return transcript + + except ImportError as ie: + print(f"Import error: {ie}") + except ValueError as ve: + print(f"Value error: {ve}") + except Exception as e: + print(f"An unexpected error occurred: {e}") + + + +__all__ = [load_youtube_transcripts]