class MimetypesReport extends Report {

    @Override
    public void write(PrintWriter writer, StatisticsTracker stats) {<FILL_FUNCTION_BODY>}

    @Override
    public String getFilename() {
        return "mimetype-report.txt";
    }

}

        // header
        writer.print("[#urls] [#bytes] [mime-types]\n");
        DisposableStoredSortedMap<Long,String> fd = stats.getReverseSortedCopy(stats.getFileDistribution());
        for (Map.Entry<Long,String> entry : fd.entrySet()) {
            // key is -count, value is type
            writer.print(Math.abs(entry.getKey()));
            writer.print(" ");
            writer.print(stats.getBytesPerFileType(entry.getValue()));
            writer.print(" ");
            writer.print(entry.getValue());
            writer.print("\n");
        }
        fd.dispose();
    
<methods>public void <init>() ,public abstract java.lang.String getFilename() ,public boolean getShouldReportAtEndOfCrawl() ,public boolean getShouldReportDuringCrawl() ,public void setShouldReportAtEndOfCrawl(boolean) ,public void setShouldReportDuringCrawl(boolean) ,public abstract void write(java.io.PrintWriter, org.archive.crawler.reporting.StatisticsTracker) <variables>private boolean shouldReportAtEndOfCrawl,private boolean shouldReportDuringCrawl