public static void main(String[] args)
	{
		// Load frame from disk 
		byte[] frameBytes = new Frame("data/token.plain").bytes;

		// Setup analyzers
		List<AbstractAnalyzer> analyzers = new LinkedList<>();
		analyzers.add(new StringAnalyzer());
		analyzers.add(new TimestampAnalyzer());
		
		// Run analyzers
		for (AbstractAnalyzer analyzer : analyzers)
		{
			analyzer.setBytes(frameBytes);
			analyzer.analyze();
		}
		
		// Print output with byte map
		StringBuilder output = new StringBuilder();
		output.append("Analyzed frame with ").append(frameBytes.length).append(" bytes. Map:");
		
		for (int i = 0; i < frameBytes.length; i++)
		{
			boolean marked = false;
			
			if (i % BYTEMAP_LINE_SIZE == 0)
			{
				output.append("\n").append(i).append(": ");
			}
			
			for (AbstractAnalyzer analyzer : analyzers)
			{
				if (analyzer.getMark(i) != null)
				{
					output.append(analyzer.getMark(i));
					marked = true;
				}
			}
			
			if (!marked)
			{
				output.append("_");
			}
		}
		
		System.out.println(output);
	}