:orphan:

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

* Processed 1078 changesets 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%)
   ================================  =====
