:orphan:

Release Statistics for U-Boot v2016.07
======================================

* Processed 1078 csets from 133 developers

* 27 employers found

* A total of 87409 lines added, 35501 removed (delta 51908)

.. table:: Developers with the most changesets
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Simon Glass                       143 (13.3%)
   Masahiro Yamada                   84 (7.8%)
   Bin Meng                          78 (7.2%)
   Marek Vasut                       57 (5.3%)
   Michal Simek                      49 (4.5%)
   Lokesh Vutla                      40 (3.7%)
   Peng Fan                          35 (3.2%)
   Stephen Warren                    30 (2.8%)
   Heiko Schocher                    26 (2.4%)
   Tim Harvey                        22 (2.0%)
   Alexander Graf                    21 (1.9%)
   Chen-Yu Tsai                      21 (1.9%)
   Paul Burton                       21 (1.9%)
   Wills Wang                        21 (1.9%)
   mario.six@gdsys.cc                16 (1.5%)
   Yuan Yao                          15 (1.4%)
   Mugunthan V N                     14 (1.3%)
   Hans de Goede                     13 (1.2%)
   Steve Rae                         13 (1.2%)
   Miao Yan                          13 (1.2%)
   Prabhakar Kushwaha                12 (1.1%)
   Nikita Kiryanov                   12 (1.1%)
   Tom Rini                          11 (1.0%)
   Gong Qianyu                       10 (0.9%)
   Shengzhou Liu                     9 (0.8%)
   Daniel Allred                     9 (0.8%)
   York Sun                          8 (0.7%)
   Alexey Brodkin                    8 (0.7%)
   Stefan Roese                      8 (0.7%)
   Boris Brezillon                   8 (0.7%)
   Robert P. J. Day                  8 (0.7%)
   Srinivas, Madan                   8 (0.7%)
   Thomas Abraham                    8 (0.7%)
   Andre Przywara                    7 (0.6%)
   Sjoerd Simons                     7 (0.6%)
   Andre Renaud                      7 (0.6%)
   Wenyou Yang                       7 (0.6%)
   Dan Murphy                        7 (0.6%)
   Eric Nelson                       7 (0.6%)
   Scott Wood                        6 (0.6%)
   Andrew Shadura                    6 (0.6%)
   Andreas Fenkart                   6 (0.6%)
   Daniel Schwierzeck                5 (0.5%)
   Sriram Dash                       5 (0.5%)
   Roger Quadros                     5 (0.5%)
   Joe Hershberger                   4 (0.4%)
   Andreas Dannenberg                4 (0.4%)
   Keerthy                           4 (0.4%)
   Dirk Eibach                       4 (0.4%)
   Suman Anna                        4 (0.4%)
   Beniamino Galvani                 4 (0.4%)
   Stanislav Galabov                 4 (0.4%)
   Alex Porosanu                     4 (0.4%)
   Abhimanyu Saini                   3 (0.3%)
   Fabio Estevam                     3 (0.3%)
   Max Krummenacher                  3 (0.3%)
   Angelo Dureghello                 3 (0.3%)
   Marco Franchi                     3 (0.3%)
   Siarhei Siamashka                 3 (0.3%)
   Purna Chandra Mandal              3 (0.3%)
   Chris Packham                     3 (0.3%)
   Siva Durga Prasad Paladugu        3 (0.3%)
   Vincent Siles                     3 (0.3%)
   Stefan Agner                      3 (0.3%)
   Stefano Babic                     2 (0.2%)
   Mingkai Hu                        2 (0.2%)
   Mateusz Kulikowski                2 (0.2%)
   Ye Li                             2 (0.2%)
   Hannes Schmelzer                  2 (0.2%)
   Vagrant Cascadian                 2 (0.2%)
   Carlo Caione                      2 (0.2%)
   Michael Trimarchi                 2 (0.2%)
   Teddy Reed                        2 (0.2%)
   Sergey Kubushyn                   2 (0.2%)
   Guillaume GARDET                  2 (0.2%)
   Petr Kulhavy                      2 (0.2%)
   Shaohui Xie                       2 (0.2%)
   Sebastien Bourdelin               2 (0.2%)
   Ying Zhang                        2 (0.2%)
   Aneesh Bansal                     2 (0.2%)
   Kevin Smith                       2 (0.2%)
   Alison Wang                       2 (0.2%)
   Ziyuan Xu                         1 (0.1%)
   Oleksandr Tymoshenko              1 (0.1%)
   Ralf Hubert                       1 (0.1%)
   Bernhard Nortmann                 1 (0.1%)
   Quentin Schulz                    1 (0.1%)
   Olliver Schinagl                  1 (0.1%)
   Jaehoon Chung                     1 (0.1%)
   Praneeth Bajjuri                  1 (0.1%)
   Ravi Babu                         1 (0.1%)
   Pratiyush Mohan Srivastava        1 (0.1%)
   Andreas Bießmann                  1 (0.1%)
   Rajesh Bhagat                     1 (0.1%)
   Chris Brand                       1 (0.1%)
   Andrej Rosano                     1 (0.1%)
   Joris Lijssens                    1 (0.1%)
   Daniel Gorsulowski                1 (0.1%)
   Hou Zhiqiang                      1 (0.1%)
   Nathan Rossi                      1 (0.1%)
   Alexey Firago                     1 (0.1%)
   Stefan Wahren                     1 (0.1%)
   Fabian Mewes                      1 (0.1%)
   Thomas Lange                      1 (0.1%)
   Eran Matityahu                    1 (0.1%)
   Schuyler Patton                   1 (0.1%)
   Eddy Petrișor                     1 (0.1%)
   Stoica Cosmin-Stefan              1 (0.1%)
   Marcin Niestroj                   1 (0.1%)
   Andrew F. Davis                   1 (0.1%)
   George McCollister                1 (0.1%)
   Yunhui Cui                        1 (0.1%)
   Samuel Egli                       1 (0.1%)
   Pavel Machek                      1 (0.1%)
   Michael Heimpold                  1 (0.1%)
   Kimmo Surakka                     1 (0.1%)
   Ladislav Michl                    1 (0.1%)
   Peter Howard                      1 (0.1%)
   Ed Swarthout                      1 (0.1%)
   Sumit Garg                        1 (0.1%)
   Bogdan Purcareata                 1 (0.1%)
   Yangbo Lu                         1 (0.1%)
   Sylvain Lesne                     1 (0.1%)
   Peter Robinson                    1 (0.1%)
   Lukasz Majewski                   1 (0.1%)
   Kunihiko Hayashi                  1 (0.1%)
   Patrick Delaunay                  1 (0.1%)
   Stefan Mavrodiev                  1 (0.1%)
   Damien Riegel                     1 (0.1%)
   Martin Hejnfelt                   1 (0.1%)
   Tim Chick                         1 (0.1%)
   Po Liu                            1 (0.1%)
   Adrian Alonso                     1 (0.1%)
   ================================  =====


.. table:: Developers with the most changed lines
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Bin Meng                          17039 (16.1%)
   Simon Glass                       13892 (13.1%)
   Heiko Schocher                    8276 (7.8%)
   Marek Vasut                       7755 (7.3%)
   Stephen Warren                    5584 (5.3%)
   Wills Wang                        4848 (4.6%)
   Lokesh Vutla                      3682 (3.5%)
   Andre Renaud                      3544 (3.3%)
   Steve Rae                         2874 (2.7%)
   Eddy Petrișor                     2792 (2.6%)
   Robert P. J. Day                  2791 (2.6%)
   Scott Wood                        2791 (2.6%)
   Masahiro Yamada                   2626 (2.5%)
   Prabhakar Kushwaha                2453 (2.3%)
   Michal Simek                      1728 (1.6%)
   Kevin Smith                       1677 (1.6%)
   Hans de Goede                     1668 (1.6%)
   Pavel Machek                      1527 (1.4%)
   Thomas Abraham                    1334 (1.3%)
   Nikita Kiryanov                   1166 (1.1%)
   Chen-Yu Tsai                      1033 (1.0%)
   Peng Fan                          1015 (1.0%)
   Alexander Graf                    967 (0.9%)
   Beniamino Galvani                 958 (0.9%)
   Purna Chandra Mandal              913 (0.9%)
   mario.six@gdsys.cc                784 (0.7%)
   Tom Rini                          650 (0.6%)
   Daniel Allred                     593 (0.6%)
   Miao Yan                          585 (0.6%)
   Wenyou Yang                       564 (0.5%)
   Paul Burton                       522 (0.5%)
   Andre Przywara                    455 (0.4%)
   Boris Brezillon                   428 (0.4%)
   Schuyler Patton                   396 (0.4%)
   Quentin Schulz                    393 (0.4%)
   Yuan Yao                          384 (0.4%)
   Tim Harvey                        337 (0.3%)
   Angelo Dureghello                 329 (0.3%)
   Sriram Dash                       321 (0.3%)
   Shengzhou Liu                     316 (0.3%)
   Mugunthan V N                     264 (0.2%)
   Alex Porosanu                     229 (0.2%)
   Stoica Cosmin-Stefan              224 (0.2%)
   Dan Murphy                        192 (0.2%)
   Keerthy                           192 (0.2%)
   Sjoerd Simons                     183 (0.2%)
   Srinivas, Madan                   164 (0.2%)
   Dirk Eibach                       164 (0.2%)
   Daniel Schwierzeck                149 (0.1%)
   Stefan Roese                      121 (0.1%)
   Andreas Fenkart                   121 (0.1%)
   Abhimanyu Saini                   116 (0.1%)
   Roger Quadros                     115 (0.1%)
   Alexey Brodkin                    107 (0.1%)
   Marco Franchi                     101 (0.1%)
   Eric Nelson                       91 (0.1%)
   Suman Anna                        77 (0.1%)
   Stanislav Galabov                 76 (0.1%)
   Joe Hershberger                   71 (0.1%)
   Gong Qianyu                       63 (0.1%)
   Teddy Reed                        62 (0.1%)
   Eran Matityahu                    57 (0.1%)
   Chris Packham                     52 (0.0%)
   Andrew Shadura                    51 (0.0%)
   Carlo Caione                      49 (0.0%)
   Michael Trimarchi                 47 (0.0%)
   Max Krummenacher                  45 (0.0%)
   Alison Wang                       44 (0.0%)
   Hannes Schmelzer                  43 (0.0%)
   Vagrant Cascadian                 43 (0.0%)
   Pratiyush Mohan Srivastava        39 (0.0%)
   Mingkai Hu                        36 (0.0%)
   Aneesh Bansal                     31 (0.0%)
   Alexey Firago                     26 (0.0%)
   York Sun                          22 (0.0%)
   Andreas Dannenberg                22 (0.0%)
   Siarhei Siamashka                 21 (0.0%)
   Marcin Niestroj                   21 (0.0%)
   Po Liu                            21 (0.0%)
   Martin Hejnfelt                   20 (0.0%)
   Siva Durga Prasad Paladugu        19 (0.0%)
   Stefano Babic                     18 (0.0%)
   Guillaume GARDET                  17 (0.0%)
   Joris Lijssens                    16 (0.0%)
   Yunhui Cui                        13 (0.0%)
   Damien Riegel                     13 (0.0%)
   Sumit Garg                        12 (0.0%)
   Sebastien Bourdelin               10 (0.0%)
   Bernhard Nortmann                 9 (0.0%)
   Andrej Rosano                     9 (0.0%)
   Vincent Siles                     8 (0.0%)
   Ye Li                             8 (0.0%)
   Fabio Estevam                     7 (0.0%)
   Mateusz Kulikowski                7 (0.0%)
   Shaohui Xie                       7 (0.0%)
   Stefan Agner                      6 (0.0%)
   Ying Zhang                        6 (0.0%)
   Ralf Hubert                       6 (0.0%)
   George McCollister                6 (0.0%)
   Peter Howard                      6 (0.0%)
   Bogdan Purcareata                 6 (0.0%)
   Chris Brand                       5 (0.0%)
   Hou Zhiqiang                      5 (0.0%)
   Yangbo Lu                         5 (0.0%)
   Nathan Rossi                      4 (0.0%)
   Stefan Wahren                     4 (0.0%)
   Stefan Mavrodiev                  4 (0.0%)
   Petr Kulhavy                      3 (0.0%)
   Kimmo Surakka                     3 (0.0%)
   Sylvain Lesne                     3 (0.0%)
   Lukasz Majewski                   3 (0.0%)
   Kunihiko Hayashi                  3 (0.0%)
   Sergey Kubushyn                   2 (0.0%)
   Oleksandr Tymoshenko              2 (0.0%)
   Olliver Schinagl                  2 (0.0%)
   Jaehoon Chung                     2 (0.0%)
   Andreas Bießmann                  2 (0.0%)
   Rajesh Bhagat                     2 (0.0%)
   Thomas Lange                      2 (0.0%)
   Samuel Egli                       2 (0.0%)
   Michael Heimpold                  2 (0.0%)
   Ladislav Michl                    2 (0.0%)
   Tim Chick                         2 (0.0%)
   Ziyuan Xu                         1 (0.0%)
   Praneeth Bajjuri                  1 (0.0%)
   Ravi Babu                         1 (0.0%)
   Daniel Gorsulowski                1 (0.0%)
   Fabian Mewes                      1 (0.0%)
   Andrew F. Davis                   1 (0.0%)
   Ed Swarthout                      1 (0.0%)
   Peter Robinson                    1 (0.0%)
   Patrick Delaunay                  1 (0.0%)
   Adrian Alonso                     1 (0.0%)
   ================================  =====


.. table:: Developers with the most lines removed
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Robert P. J. Day                  2538 (7.1%)
   Scott Wood                        1385 (3.9%)
   Hans de Goede                     258 (0.7%)
   Abhimanyu Saini                   96 (0.3%)
   Eric Nelson                       27 (0.1%)
   Chris Packham                     21 (0.1%)
   Chris Brand                       4 (0.0%)
   Fabio Estevam                     3 (0.0%)
   Nathan Rossi                      3 (0.0%)
   Yangbo Lu                         1 (0.0%)
   Petr Kulhavy                      1 (0.0%)
   Lukasz Majewski                   1 (0.0%)
   Andrew F. Davis                   1 (0.0%)
   ================================  =====


.. table:: Developers with the most signoffs (total 190)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Minkyu Kang                       36 (18.9%)
   Hans de Goede                     31 (16.3%)
   Tom Warren                        15 (7.9%)
   Tom Rini                          11 (5.8%)
   Srinivas, Madan                   9 (4.7%)
   Daniel Schwierzeck                8 (4.2%)
   Simon Glass                       8 (4.2%)
   Calvin Johnson                    7 (3.7%)
   Prabhakar Kushwaha                7 (3.7%)
   Andreas Bießmann                  6 (3.2%)
   Daniel Allred                     6 (3.2%)
   Michal Simek                      6 (3.2%)
   Rajesh Bhagat                     5 (2.6%)
   Pratiyush Mohan Srivastava        5 (2.6%)
   Scott Wood                        3 (1.6%)
   Ye Li                             2 (1.1%)
   Gong Qianyu                       2 (1.1%)
   Stefan Roese                      2 (1.1%)
   Peng Fan                          2 (1.1%)
   Steve Rae                         2 (1.1%)
   Lokesh Vutla                      2 (1.1%)
   Abhimanyu Saini                   1 (0.5%)
   Ravi Babu                         1 (0.5%)
   Nishanth Menon                    1 (0.5%)
   Makarand Pawagi                   1 (0.5%)
   Michal Marek                      1 (0.5%)
   Samuel Egli                       1 (0.5%)
   Andreas Dannenberg                1 (0.5%)
   Andrew Shadura                    1 (0.5%)
   Roger Quadros                     1 (0.5%)
   Mingkai Hu                        1 (0.5%)
   Shengzhou Liu                     1 (0.5%)
   Masahiro Yamada                   1 (0.5%)
   Eddy Petrișor                     1 (0.5%)
   Marek Vasut                       1 (0.5%)
   Heiko Schocher                    1 (0.5%)
   ================================  =====


.. table:: Developers with the most reviews (total 566)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Simon Glass                       157 (27.7%)
   Tom Rini                          105 (18.6%)
   York Sun                          81 (14.3%)
   Stefan Roese                      43 (7.6%)
   Andreas Bießmann                  35 (6.2%)
   Joe Hershberger                   28 (4.9%)
   Heiko Schocher                    19 (3.4%)
   Bin Meng                          18 (3.2%)
   Lokesh Vutla                      17 (3.0%)
   Hans de Goede                     16 (2.8%)
   Fabio Estevam                     8 (1.4%)
   Daniel Schwierzeck                5 (0.9%)
   Peng Fan                          5 (0.9%)
   Masahiro Yamada                   4 (0.7%)
   Mugunthan V N                     4 (0.7%)
   Stephen Warren                    4 (0.7%)
   Michal Simek                      3 (0.5%)
   Alexander Graf                    3 (0.5%)
   Thomas Chou                       2 (0.4%)
   Nishanth Menon                    1 (0.2%)
   Andreas Dannenberg                1 (0.2%)
   George McCollister                1 (0.2%)
   Sylvain Lesne                     1 (0.2%)
   Maxime Ripard                     1 (0.2%)
   Benoît Thébaudeau                 1 (0.2%)
   Tony O'Brien                      1 (0.2%)
   Stefano Babic                     1 (0.2%)
   Purna Chandra Mandal              1 (0.2%)
   ================================  =====


.. table:: Developers with the most test credits (total 61)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Stefan Roese                      22 (36.1%)
   Andreas Dannenberg                8 (13.1%)
   Heiko Schocher                    7 (11.5%)
   Michal Simek                      6 (9.8%)
   Mugunthan V N                     5 (8.2%)
   Fabio Estevam                     4 (6.6%)
   George McCollister                2 (3.3%)
   Simon Glass                       1 (1.6%)
   Tom Rini                          1 (1.6%)
   Masahiro Yamada                   1 (1.6%)
   Sylvain Lesne                     1 (1.6%)
   Jaehoon Chung                     1 (1.6%)
   Daiane Angolini                   1 (1.6%)
   Peter Robinson                    1 (1.6%)
   ================================  =====


.. table:: Developers who gave the most tested-by credits (total 61)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Bin Meng                          23 (37.7%)
   Simon Glass                       6 (9.8%)
   Dan Murphy                        6 (9.8%)
   Peng Fan                          4 (6.6%)
   Srinivas, Madan                   4 (6.6%)
   Lokesh Vutla                      3 (4.9%)
   Daniel Allred                     3 (4.9%)
   Steve Rae                         2 (3.3%)
   Fabio Estevam                     1 (1.6%)
   Masahiro Yamada                   1 (1.6%)
   Stephen Warren                    1 (1.6%)
   Alexander Graf                    1 (1.6%)
   Scott Wood                        1 (1.6%)
   Ye Li                             1 (1.6%)
   Marek Vasut                       1 (1.6%)
   Siva Durga Prasad Paladugu        1 (1.6%)
   Ed Swarthout                      1 (1.6%)
   Marco Franchi                     1 (1.6%)
   ================================  =====


.. table:: Developers with the most report credits (total 10)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Srinivas, Madan                   1 (10.0%)
   Daiane Angolini                   1 (10.0%)
   Peter Robinson                    1 (10.0%)
   Nishanth Menon                    1 (10.0%)
   Chris Brand                       1 (10.0%)
   Jonathan Gray                     1 (10.0%)
   Richard Woodruff                  1 (10.0%)
   Bernhard Nortmann                 1 (10.0%)
   Suman Anna                        1 (10.0%)
   Pavel Machek                      1 (10.0%)
   ================================  =====


.. table:: Developers who gave the most report credits (total 10)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Lokesh Vutla                      2 (20.0%)
   Keerthy                           2 (20.0%)
   Peng Fan                          1 (10.0%)
   Steve Rae                         1 (10.0%)
   Fabio Estevam                     1 (10.0%)
   Alexander Graf                    1 (10.0%)
   Stefan Roese                      1 (10.0%)
   Hans de Goede                     1 (10.0%)
   ================================  =====


.. table:: Top changeset contributors by employer
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         341 (31.6%)
   Google, Inc.                      143 (13.3%)
   Texas Instruments                 99 (9.2%)
   NXP                               95 (8.8%)
   DENX Software Engineering         94 (8.7%)
   Socionext Inc.                    85 (7.9%)
   AMD                               49 (4.5%)
   NVidia                            30 (2.8%)
   MIPS                              21 (1.9%)
   Guntermann & Drunck               20 (1.9%)
   Collabora Ltd.                    13 (1.2%)
   Red Hat                           13 (1.2%)
   Broadcom                          12 (1.1%)
   CompuLab                          12 (1.1%)
   Konsulko Group                    11 (1.0%)
   Samsung                           9 (0.8%)
   ARM                               7 (0.6%)
   Atmel                             7 (0.6%)
   National Instruments              4 (0.4%)
   Xilinx                            3 (0.3%)
   Amarula Solutions                 2 (0.2%)
   Debian.org                        2 (0.2%)
   Sergey Kubushyn                   2 (0.2%)
   ESD Electronics                   1 (0.1%)
   Free Electrons                    1 (0.1%)
   General Electric                  1 (0.1%)
   Siemens                           1 (0.1%)
   ================================  =====


.. table:: Top lines changed by employer
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         43154 (40.8%)
   DENX Software Engineering         17697 (16.7%)
   Google, Inc.                      13892 (13.1%)
   Texas Instruments                 5700 (5.4%)
   NVidia                            5584 (5.3%)
   NXP                               4473 (4.2%)
   Broadcom                          2864 (2.7%)
   Socionext Inc.                    2629 (2.5%)
   AMD                               1728 (1.6%)
   Red Hat                           1668 (1.6%)
   Samsung                           1336 (1.3%)
   CompuLab                          1166 (1.1%)
   Guntermann & Drunck               948 (0.9%)
   Konsulko Group                    650 (0.6%)
   Atmel                             564 (0.5%)
   MIPS                              522 (0.5%)
   ARM                               455 (0.4%)
   Free Electrons                    393 (0.4%)
   Collabora Ltd.                    234 (0.2%)
   National Instruments              71 (0.1%)
   Amarula Solutions                 47 (0.0%)
   Debian.org                        43 (0.0%)
   Xilinx                            19 (0.0%)
   General Electric                  3 (0.0%)
   Sergey Kubushyn                   2 (0.0%)
   Siemens                           2 (0.0%)
   ESD Electronics                   1 (0.0%)
   ================================  =====


.. table:: Employers with the most signoffs (total 190)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Samsung                           36 (18.9%)
   NXP                               32 (16.8%)
   Red Hat                           31 (16.3%)
   Texas Instruments                 21 (11.1%)
   (Unknown)                         20 (10.5%)
   NVidia                            15 (7.9%)
   Konsulko Group                    11 (5.8%)
   Google, Inc.                      8 (4.2%)
   Xilinx                            6 (3.2%)
   DENX Software Engineering         4 (2.1%)
   Broadcom                          2 (1.1%)
   Socionext Inc.                    1 (0.5%)
   Collabora Ltd.                    1 (0.5%)
   Siemens                           1 (0.5%)
   Novell                            1 (0.5%)
   ================================  =====


.. table:: Employers with the most hackers (total 134)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         61 (45.5%)
   NXP                               27 (20.1%)
   Texas Instruments                 13 (9.7%)
   DENX Software Engineering         5 (3.7%)
   Samsung                           2 (1.5%)
   Broadcom                          2 (1.5%)
   Socionext Inc.                    2 (1.5%)
   Collabora Ltd.                    2 (1.5%)
   Guntermann & Drunck               2 (1.5%)
   Red Hat                           1 (0.7%)
   NVidia                            1 (0.7%)
   Konsulko Group                    1 (0.7%)
   Google, Inc.                      1 (0.7%)
   Xilinx                            1 (0.7%)
   Siemens                           1 (0.7%)
   AMD                               1 (0.7%)
   CompuLab                          1 (0.7%)
   Atmel                             1 (0.7%)
   MIPS                              1 (0.7%)
   ARM                               1 (0.7%)
   Free Electrons                    1 (0.7%)
   National Instruments              1 (0.7%)
   Amarula Solutions                 1 (0.7%)
   Debian.org                        1 (0.7%)
   General Electric                  1 (0.7%)
   Sergey Kubushyn                   1 (0.7%)
   ESD Electronics                   1 (0.7%)
   ================================  =====
