@ -2,9 +2,17 @@ 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 "cells": [  
					 
					 
					 
					 "cells": [  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  {  
					 
					 
					 
					  {  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					   "cell_type": "code",  
					 
					 
					 
					   "cell_type": "code",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					   "execution_count": 2 ,  
					 
					 
					 
					   "execution_count": 1 ,  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					   "metadata": {},  
					 
					 
					 
					   "metadata": {},  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					   "outputs": [],  
					 
					 
					 
					   "outputs": [  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    {  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					     "name": "stderr",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					     "output_type": "stream",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					     "text": [  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					      "kj/filesystem-disk-unix.c++:1703: warning: PWD environment variable doesn't match current directory; pwd = /mnt/c/Users/jnewb/AppData/Local/Programs/Microsoft VS Code\n"  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					     ]  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    }  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					   ],  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					   "source": [  
					 
					 
					 
					   "source": [  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    "\"\"\"In this example, we use the public comma car segments database to check if vin fingerprinting is feasible for ford.\"\"\"\n",  
					 
					 
					 
					    "\"\"\"In this example, we use the public comma car segments database to check if vin fingerprinting is feasible for ford.\"\"\"\n",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    "\n",  
					 
					 
					 
					    "\n",  
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -19,7 +27,7 @@ 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  },  
					 
					 
					 
					  },  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  {  
					 
					 
					 
					  {  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					   "cell_type": "code",  
					 
					 
					 
					   "cell_type": "code",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					   "execution_count": 3 ,  
					 
					 
					 
					   "execution_count": 2 ,  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					   "metadata": {},  
					 
					 
					 
					   "metadata": {},  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					   "outputs": [],  
					 
					 
					 
					   "outputs": [],  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					   "source": [  
					 
					 
					 
					   "source": [  
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -54,7 +62,7 @@ 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  },  
					 
					 
					 
					  },  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  {  
					 
					 
					 
					  {  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					   "cell_type": "code",  
					 
					 
					 
					   "cell_type": "code",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					   "execution_count": 4 ,  
					 
					 
					 
					   "execution_count": 3 ,  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					   "metadata": {},  
					 
					 
					 
					   "metadata": {},  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					   "outputs": [  
					 
					 
					 
					   "outputs": [  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    {  
					 
					 
					 
					    {  
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -66,7 +74,7 @@ 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    }  
					 
					 
					 
					    }  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					   ],  
					 
					 
					 
					   ],  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					   "source": [  
					 
					 
					 
					   "source": [  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    "from openpilot.tools.lib.logreader import comma_car_segments_source,  get_first_message\n",  
					 
					 
					 
					    "from openpilot.tools.lib.logreader import get_first_message\n",  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					    "\n",  
					 
					 
					 
					    "\n",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    "\n",  
					 
					 
					 
					    "\n",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    "VINS_TO_CHECK = set()\n",  
					 
					 
					 
					    "VINS_TO_CHECK = set()\n",  
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -77,35 +85,35 @@ 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    "    continue\n",  
					 
					 
					 
					    "    continue\n",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    "\n",  
					 
					 
					 
					    "\n",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    "  for segment in database[platform]:\n",  
					 
					 
					 
					    "  for segment in database[platform]:\n",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    "    lr = LogReader(segment, default_source=comma_car_segments_source )\n",  
					 
					 
					 
					    "    lr = LogReader(segment)\n",  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					    "    CP = get_first_message(lr, \"carParams\").carParams\n",  
					 
					 
					 
					    "    CP = get_first_message(lr, \"carParams\").carParams\n",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    "    VINS_TO_CHECK.add((CP.carVin, CP.carFingerprint))"  
					 
					 
					 
					    "    VINS_TO_CHECK.add((CP.carVin, CP.carFingerprint))"  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					   ]  
					 
					 
					 
					   ]  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  },  
					 
					 
					 
					  },  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  {  
					 
					 
					 
					  {  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					   "cell_type": "code",  
					 
					 
					 
					   "cell_type": "code",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					   "execution_count": 6 ,  
					 
					 
					 
					   "execution_count": 4 ,  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					   "metadata": {},  
					 
					 
					 
					   "metadata": {},  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					   "outputs": [  
					 
					 
					 
					   "outputs": [  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    {  
					 
					 
					 
					    {  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					     "name": "stdout",  
					 
					 
					 
					     "name": "stdout",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					     "output_type": "stream",  
					 
					 
					 
					     "output_type": "stream",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					     "text": [  
					 
					 
					 
					     "text": [  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					      "vin: 3FTTW8E31PRXXXXXX real platform: FORD MAVERICK 1ST GEN              determined platform: mock                              correct: False\n",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      "vin: 1FM5K8GC7LGXXXXXX real platform: FORD EXPLORER 6TH GEN              determined platform: mock                              correct: False\n",  
					 
					 
					 
					      "vin: 1FM5K8GC7LGXXXXXX real platform: FORD EXPLORER 6TH GEN              determined platform: mock                              correct: False\n",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      "vin: 00000000000XXXXXX real platform: FORD ESCAPE 4TH GEN                determined platform: mock                              correct: False\n",  
					 
					 
					 
					      "vin: 3FTTW8E99NRXXXXXX real platform: FORD MAVERICK 1ST GEN              determined platform: mock                              correct: False\n",  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					      "vin: 3FTTW8F98NRXXXXXX real platform: FORD MAVERICK 1ST GEN              determined platform: mock                              correct: False\n",  
					 
					 
					 
					      "vin: 1FM5K8GC7NGXXXXXX real platform: FORD EXPLORER 6TH GEN              determined platform: mock                              correct: False\n",  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					      "vin: 1FTVW1EL4NWXXXXXX real platform: FORD F-150 LIGHTNING 1ST GEN       determined platform: FORD F-150 LIGHTNING 1ST GEN      correct: True\n",  
					 
					 
					 
					 
				
			 
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					      "vin: 1FM5K7LC0MGXXXXXX real platform: FORD EXPLORER 6TH GEN              determined platform: mock                              correct: False\n",  
					 
					 
					 
					      "vin: 1FM5K7LC0MGXXXXXX real platform: FORD EXPLORER 6TH GEN              determined platform: mock                              correct: False\n",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					      "vin: 1FM5K8HC7MGXXXXXX real platform: FORD EXPLORER 6TH GEN              determined platform: mock                              correct: False\n",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					      "vin: 3FMTK3SU0MMXXXXXX real platform: FORD MUSTANG MACH-E 1ST GEN        determined platform: FORD MUSTANG MACH-E 1ST GEN       correct: True\n",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      "vin: WF0NXXGCHNJXXXXXX real platform: FORD FOCUS 4TH GEN                 determined platform: mock                              correct: False\n",  
					 
					 
					 
					      "vin: WF0NXXGCHNJXXXXXX real platform: FORD FOCUS 4TH GEN                 determined platform: mock                              correct: False\n",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      "vin: 1FMCU9J94MUXXXXXX real platform: FORD ESCAPE 4TH GEN                determined platform: mock                              correct: False\n",  
					 
					 
					 
					      "vin: 1FTVW1EL4NWXXXXXX real platform: FORD F-150 LIGHTNING 1ST GEN       determined platform: FORD F-150 LIGHTNING 1ST GEN      correct: True\n",  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					      "vin: 00000000000XXXXXX real platform: FORD ESCAPE 4TH GEN                determined platform: mock                              correct: False\n",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					      "vin: 3FTTW8F98NRXXXXXX real platform: FORD MAVERICK 1ST GEN              determined platform: mock                              correct: False\n",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      "vin: 5LM5J7XC9LGXXXXXX real platform: FORD EXPLORER 6TH GEN              determined platform: mock                              correct: False\n",  
					 
					 
					 
					      "vin: 5LM5J7XC9LGXXXXXX real platform: FORD EXPLORER 6TH GEN              determined platform: mock                              correct: False\n",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      "vin: 3FMCR9B69NRXXXXXX real platform: FORD BRONCO SPORT 1ST GEN          determined platform: mock                              correct: False\n",  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      "vin: 3FMTK3SU0MMXXXXXX real platform: FORD MUSTANG MACH-E 1ST GEN        determined platform: FORD MUSTANG MACH-E 1ST GEN       correct: True\n",  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      "vin: 1FM5K8HC7MGXXXXXX real platform: FORD EXPLORER 6TH GEN              determined platform: mock                              correct: False\n",  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      "vin: 1FM5K8GC7NGXXXXXX real platform: FORD EXPLORER 6TH GEN              determined platform: mock                              correct: False\n",  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      "vin: 5LM5J7XC8MGXXXXXX real platform: FORD EXPLORER 6TH GEN              determined platform: mock                              correct: False\n",  
					 
					 
					 
					      "vin: 5LM5J7XC8MGXXXXXX real platform: FORD EXPLORER 6TH GEN              determined platform: mock                              correct: False\n",  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      "vin: 3FTTW8E31PRXXXXXX real platform: FORD MAVERICK 1ST GEN               determined platform: mock                              correct: False\n",  
					 
					 
					 
					      "vin: 3FMCR9B69NRXXXXXX real platform: FORD BRONCO SPORT 1ST GEN          determined platform: mock                              correct: False\n",  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					      "vin: 3FTTW8E99NRXXXXXX real platform: FORD MAVERICK 1ST GEN               determined platform: mock                              correct: False\n"  
					 
					 
					 
					      "vin: 1FMCU9J94MUXXXXXX real platform: FORD ESCAPE 4TH GEN                determined platform: mock                              correct: False\n"  
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					     ]  
					 
					 
					 
					     ]  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    }  
					 
					 
					 
					    }  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					   ],  
					 
					 
					 
					   ],