Skip to content

Instantly share code, notes, and snippets.

@dloss
Created April 19, 2014 16:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dloss/11089724 to your computer and use it in GitHub Desktop.
Save dloss/11089724 to your computer and use it in GitHub Desktop.
OpenSSL Repository Mining
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"OpenSSL Repository Mining"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Dirk Loss / @dloss, v1.0, 2014-04-17"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The OpenSSL project has a public git repository. Let's clone it and see if we can use it to answer some simple questions."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%time !git clone git://git.openssl.org/openssl.git"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Cloning into 'openssl'...\r\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Counting objects: 85346 \u001b[K\r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Counting objects: 138452, done.\u001b[K\r\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Compressing objects: 0% (1/29938) \u001b[K\r",
"remote: Compressing objects: 1% (300/29938) \u001b[K\r",
"remote: Compressing objects: 2% (599/29938) \u001b[K\r",
"remote: Compressing objects: 3% (899/29938) \u001b[K\r",
"remote: Compressing objects: 4% (1198/29938) \u001b[K\r",
"remote: Compressing objects: 5% (1497/29938) \u001b[K\r",
"remote: Compressing objects: 6% (1797/29938) \u001b[K\r",
"remote: Compressing objects: 7% (2096/29938) \u001b[K\r",
"remote: Compressing objects: 8% (2396/29938) \u001b[K\r",
"remote: Compressing objects: 9% (2695/29938) \u001b[K\r",
"remote: Compressing objects: 10% (2994/29938) \u001b[K\r",
"remote: Compressing objects: 11% (3294/29938) \u001b[K\r",
"remote: Compressing objects: 12% (3593/29938) \u001b[K\r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Compressing objects: 13% (3892/29938) \u001b[K\r",
"remote: Compressing objects: 14% (4192/29938) \u001b[K\r",
"remote: Compressing objects: 15% (4491/29938) \u001b[K\r",
"remote: Compressing objects: 16% (4791/29938) \u001b[K\r",
"remote: Compressing objects: 17% (5090/29938) \u001b[K\r",
"remote: Compressing objects: 18% (5389/29938) \u001b[K\r",
"remote: Compressing objects: 19% (5689/29938) \u001b[K\r",
"remote: Compressing objects: 20% (5988/29938) \u001b[K\r",
"remote: Compressing objects: 21% (6287/29938) \u001b[K\r",
"remote: Compressing objects: 22% (6587/29938) \u001b[K\r",
"remote: Compressing objects: 23% (6886/29938) \u001b[K\r",
"remote: Compressing objects: 24% (7186/29938) \u001b[K\r",
"remote: Compressing objects: 25% (7485/29938) \u001b[K\r",
"remote: Compressing objects: 26% (7784/29938) \u001b[K\r",
"remote: Compressing objects: 27% (8084/29938) \u001b[K\r",
"remote: Compressing objects: 28% (8383/29938) \u001b[K\r",
"remote: Compressing objects: 29% (8683/29938) \u001b[K\r",
"remote: Compressing objects: 30% (8982/29938) \u001b[K\r",
"remote: Compressing objects: 31% (9281/29938) \u001b[K\r",
"remote: Compressing objects: 32% (9581/29938) \u001b[K\r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Compressing objects: 33% (9880/29938) \u001b[K\r",
"remote: Compressing objects: 34% (10179/29938) \u001b[K\r",
"remote: Compressing objects: 35% (10479/29938) \u001b[K\r",
"remote: Compressing objects: 36% (10778/29938) \u001b[K\r",
"remote: Compressing objects: 37% (11078/29938) \u001b[K\r",
"remote: Compressing objects: 38% (11377/29938) \u001b[K\r",
"remote: Compressing objects: 39% (11676/29938) \u001b[K\r",
"remote: Compressing objects: 40% (11976/29938) \u001b[K\r",
"remote: Compressing objects: 41% (12275/29938) \u001b[K\r",
"remote: Compressing objects: 42% (12574/29938) \u001b[K\r",
"remote: Compressing objects: 43% (12874/29938) \u001b[K\r",
"remote: Compressing objects: 44% (13173/29938) \u001b[K\r",
"remote: Compressing objects: 45% (13473/29938) \u001b[K\r",
"remote: Compressing objects: 46% (13772/29938) \u001b[K\r",
"remote: Compressing objects: 47% (14071/29938) \u001b[K\r",
"remote: Compressing objects: 48% (14371/29938) \u001b[K\r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Compressing objects: 49% (14670/29938) \u001b[K\r",
"remote: Compressing objects: 50% (14969/29938) \u001b[K\r",
"remote: Compressing objects: 51% (15269/29938) \u001b[K\r",
"remote: Compressing objects: 52% (15568/29938) \u001b[K\r",
"remote: Compressing objects: 53% (15868/29938) \u001b[K\r",
"remote: Compressing objects: 54% (16167/29938) \u001b[K\r",
"remote: Compressing objects: 55% (16466/29938) \u001b[K\r",
"remote: Compressing objects: 56% (16766/29938) \u001b[K\r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Compressing objects: 57% (17065/29938) \u001b[K\r",
"remote: Compressing objects: 58% (17365/29938) \u001b[K\r",
"remote: Compressing objects: 59% (17664/29938) \u001b[K\r",
"remote: Compressing objects: 60% (17963/29938) \u001b[K\r",
"remote: Compressing objects: 61% (18263/29938) \u001b[K\r",
"remote: Compressing objects: 62% (18562/29938) \u001b[K\r",
"remote: Compressing objects: 63% (18861/29938) \u001b[K\r",
"remote: Compressing objects: 64% (19161/29938) \u001b[K\r",
"remote: Compressing objects: 65% (19460/29938) \u001b[K\r",
"remote: Compressing objects: 66% (19760/29938) \u001b[K\r",
"remote: Compressing objects: 67% (20059/29938) \u001b[K\r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Compressing objects: 68% (20358/29938) \u001b[K\r",
"remote: Compressing objects: 69% (20658/29938) \u001b[K\r",
"remote: Compressing objects: 70% (20957/29938) \u001b[K\r",
"remote: Compressing objects: 71% (21256/29938) \u001b[K\r",
"remote: Compressing objects: 72% (21556/29938) \u001b[K\r",
"remote: Compressing objects: 73% (21855/29938) \u001b[K\r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Compressing objects: 74% (22155/29938) \u001b[K\r",
"remote: Compressing objects: 75% (22454/29938) \u001b[K\r",
"remote: Compressing objects: 76% (22753/29938) \u001b[K\r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Compressing objects: 77% (23053/29938) \u001b[K\r",
"remote: Compressing objects: 78% (23352/29938) \u001b[K\r",
"remote: Compressing objects: 79% (23652/29938) \u001b[K\r",
"remote: Compressing objects: 80% (23951/29938) \u001b[K\r",
"remote: Compressing objects: 81% (24250/29938) \u001b[K\r",
"remote: Compressing objects: 82% (24550/29938) \u001b[K\r",
"remote: Compressing objects: 83% (24849/29938) \u001b[K\r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Compressing objects: 84% (25148/29938) \u001b[K\r",
"remote: Compressing objects: 85% (25448/29938) \u001b[K\r",
"remote: Compressing objects: 86% (25747/29938) \u001b[K\r",
"remote: Compressing objects: 87% (26047/29938) \u001b[K\r",
"remote: Compressing objects: 88% (26346/29938) \u001b[K\r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Compressing objects: 89% (26645/29938) \u001b[K\r",
"remote: Compressing objects: 90% (26945/29938) \u001b[K\r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Compressing objects: 91% (27244/29938) \u001b[K\r",
"remote: Compressing objects: 92% (27543/29938) \u001b[K\r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Compressing objects: 93% (27843/29938) \u001b[K\r",
"remote: Compressing objects: 94% (28142/29938) \u001b[K\r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Compressing objects: 95% (28442/29938) \u001b[K\r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Compressing objects: 96% (28741/29938) \u001b[K\r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Compressing objects: 97% (29040/29938) \u001b[K\r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Compressing objects: 98% (29340/29938) \u001b[K\r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Compressing objects: 98% (29626/29938) \u001b[K\r",
"remote: Compressing objects: 99% (29639/29938) \u001b[K\r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Compressing objects: 100% (29938/29938) \u001b[K\r",
"remote: Compressing objects: 100% (29938/29938), done.\u001b[K\r\n",
"Receiving objects: 0% (1/138452) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 1% (1385/138452) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 2% (2770/138452), 324.00 KiB | 624.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 2% (3715/138452), 324.00 KiB | 624.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 3% (4154/138452), 756.00 KiB | 741.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 4% (5539/138452), 1.08 MiB | 721.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 5% (6923/138452), 1.08 MiB | 721.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 5% (7285/138452), 1.08 MiB | 721.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 6% (8308/138452), 1.45 MiB | 726.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 7% (9692/138452), 1.86 MiB | 745.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 8% (11077/138452), 1.86 MiB | 745.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 8% (11387/138452), 1.86 MiB | 745.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 9% (12461/138452), 2.22 MiB | 745.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 10% (13846/138452), 2.57 MiB | 738.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 10% (14773/138452), 2.57 MiB | 738.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 11% (15230/138452), 2.92 MiB | 735.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 12% (16615/138452), 2.92 MiB | 735.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 13% (17999/138452), 3.28 MiB | 735.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 13% (18178/138452), 3.28 MiB | 735.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 14% (19384/138452), 3.63 MiB | 744.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 15% (20768/138452), 3.99 MiB | 732.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 15% (21967/138452), 3.99 MiB | 732.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 16% (22153/138452), 4.36 MiB | 740.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 16% (22499/138452), 4.75 MiB | 743.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 16% (23111/138452), 5.58 MiB | 758.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 17% (23537/138452), 6.42 MiB | 787.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 17% (23792/138452), 6.42 MiB | 787.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 17% (24498/138452), 7.25 MiB | 816.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 18% (24922/138452), 7.68 MiB | 829.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 18% (25222/138452), 8.07 MiB | 834.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 18% (25947/138452), 8.91 MiB | 843.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 19% (26306/138452), 9.32 MiB | 839.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 20% (27691/138452), 9.72 MiB | 835.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 20% (28446/138452), 9.72 MiB | 835.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 21% (29075/138452), 9.72 MiB | 835.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 22% (30460/138452), 10.53 MiB | 832.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 22% (30839/138452), 10.53 MiB | 832.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 23% (31844/138452), 10.93 MiB | 828.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 23% (32642/138452), 11.35 MiB | 825.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 24% (33229/138452), 11.77 MiB | 830.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 25% (34613/138452), 12.18 MiB | 828.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 25% (35515/138452), 12.18 MiB | 828.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 26% (35998/138452), 12.61 MiB | 832.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 27% (37383/138452), 13.04 MiB | 836.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 27% (37782/138452), 13.04 MiB | 836.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 28% (38767/138452), 13.38 MiB | 823.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 28% (39960/138452), 13.78 MiB | 822.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 29% (40152/138452), 13.78 MiB | 822.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 30% (41536/138452), 14.44 MiB | 787.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 30% (41802/138452), 14.44 MiB | 787.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 31% (42921/138452), 14.93 MiB | 707.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 31% (43014/138452), 14.93 MiB | 707.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 32% (44305/138452), 15.30 MiB | 603.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 32% (44473/138452), 15.30 MiB | 603.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 32% (45463/138452), 15.80 MiB | 542.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 33% (45690/138452), 15.80 MiB | 542.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 33% (46675/138452), 16.23 MiB | 463.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 34% (47074/138452), 16.46 MiB | 451.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 34% (48055/138452), 16.69 MiB | 446.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 35% (48459/138452), 16.69 MiB | 446.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 35% (49646/138452), 17.14 MiB | 453.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 36% (49843/138452), 17.14 MiB | 453.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 37% (51228/138452), 17.67 MiB | 470.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 37% (51309/138452), 17.67 MiB | 470.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 38% (52612/138452), 18.19 MiB | 484.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 38% (52781/138452), 18.19 MiB | 484.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 39% (53997/138452), 18.46 MiB | 496.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 39% (54239/138452), 18.69 MiB | 498.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 39% (54984/138452), 19.21 MiB | 511.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 40% (55381/138452), 19.21 MiB | 511.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 41% (56766/138452), 19.51 MiB | 527.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 41% (57258/138452), 19.81 MiB | 541.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 42% (58150/138452), 19.81 MiB | 541.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 42% (59201/138452), 20.54 MiB | 576.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 43% (59535/138452), 20.54 MiB | 576.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 44% (60919/138452), 20.96 MiB | 618.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 44% (61280/138452), 21.39 MiB | 641.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 45% (62304/138452), 21.39 MiB | 641.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 45% (63564/138452), 21.86 MiB | 692.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 46% (63688/138452), 22.28 MiB | 726.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 47% (65073/138452), 22.70 MiB | 765.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 47% (65905/138452), 22.70 MiB | 765.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 48% (66457/138452), 23.13 MiB | 796.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 49% (67842/138452), 23.55 MiB | 826.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 49% (68422/138452), 23.55 MiB | 826.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 50% (69226/138452), 23.97 MiB | 844.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 50% (70002/138452), 24.36 MiB | 845.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 51% (70611/138452), 24.71 MiB | 827.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 51% (71440/138452), 25.13 MiB | 845.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 52% (71996/138452), 25.55 MiB | 835.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 53% (73380/138452), 25.97 MiB | 834.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 53% (73728/138452), 25.97 MiB | 834.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 54% (74765/138452), 26.39 MiB | 835.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 55% (76149/138452), 26.82 MiB | 834.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 56% (77534/138452), 26.82 MiB | 834.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 56% (77613/138452), 26.82 MiB | 834.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 57% (78918/138452), 27.24 MiB | 833.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 58% (80303/138452), 27.24 MiB | 833.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 59% (81687/138452), 27.24 MiB | 833.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 60% (83072/138452), 27.66 MiB | 832.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 61% (84456/138452), 27.66 MiB | 832.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 61% (85590/138452), 27.66 MiB | 832.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 62% (85841/138452), 28.08 MiB | 838.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 63% (87225/138452), 28.08 MiB | 838.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 64% (88610/138452), 28.51 MiB | 857.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 65% (89994/138452), 28.51 MiB | 857.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 65% (90969/138452), 28.51 MiB | 857.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 66% (91379/138452), 28.51 MiB | 857.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 67% (92763/138452), 28.93 MiB | 858.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 68% (94148/138452), 28.93 MiB | 858.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 68% (95071/138452), 29.36 MiB | 857.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 69% (95532/138452), 29.76 MiB | 854.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 70% (96917/138452), 29.76 MiB | 854.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 71% (98301/138452), 29.76 MiB | 854.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 72% (99686/138452), 30.11 MiB | 836.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 72% (100867/138452), 30.11 MiB | 836.00 KiB/s \r",
"Receiving objects: 73% (101070/138452), 30.11 MiB | 836.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 74% (102455/138452), 30.50 MiB | 830.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 75% (103839/138452), 30.89 MiB | 822.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 75% (104723/138452), 30.89 MiB | 822.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 76% (105224/138452), 31.23 MiB | 806.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 77% (106609/138452), 31.23 MiB | 806.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 78% (107993/138452), 31.57 MiB | 788.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 78% (108457/138452), 31.57 MiB | 788.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 79% (109378/138452), 31.93 MiB | 773.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 79% (109921/138452), 32.31 MiB | 761.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 80% (110762/138452), 33.05 MiB | 741.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 80% (111800/138452), 33.05 MiB | 741.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 81% (112147/138452), 33.05 MiB | 741.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 82% (113531/138452), 33.43 MiB | 746.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 83% (114916/138452), 33.43 MiB | 746.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 84% (116300/138452), 33.83 MiB | 748.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 84% (117521/138452), 33.83 MiB | 748.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 85% (117685/138452), 33.83 MiB | 748.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 86% (119069/138452), 34.25 MiB | 757.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 87% (120454/138452), 34.25 MiB | 757.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 88% (121838/138452), 34.25 MiB | 757.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 89% (123223/138452), 34.66 MiB | 757.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 89% (123576/138452), 34.66 MiB | 757.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 90% (124607/138452), 34.66 MiB | 757.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 91% (125992/138452), 35.05 MiB | 769.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 92% (127376/138452), 35.05 MiB | 769.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 92% (128371/138452), 35.39 MiB | 764.00 KiB/s \r",
"Receiving objects: 93% (128761/138452), 35.39 MiB | 764.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 94% (130145/138452), 35.75 MiB | 760.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 95% (131530/138452), 36.04 MiB | 743.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 95% (132006/138452), 36.04 MiB | 743.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 96% (132914/138452), 36.36 MiB | 732.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 97% (134299/138452), 36.36 MiB | 732.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 97% (135432/138452), 36.68 MiB | 721.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 98% (135683/138452), 36.68 MiB | 721.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 98% (136771/138452), 37.09 MiB | 624.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 99% (137068/138452), 37.27 MiB | 583.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Receiving objects: 99% (138081/138452), 37.46 MiB | 538.00 KiB/s \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"remote: Total 138452 (delta 110293), reused 135887 (delta 108259)\u001b[K\r\n",
"Receiving objects: 100% (138452/138452), 37.68 MiB | 507.00 KiB/s \r",
"Receiving objects: 100% (138452/138452), 37.76 MiB | 481.00 KiB/s, done.\r\n",
"Resolving deltas: 0% (0/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 1% (1227/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 2% (2351/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 3% (3406/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 4% (4746/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 5% (5708/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 6% (6668/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 7% (7875/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 8% (8865/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 9% (10148/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 10% (11035/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 11% (12456/110293) \r",
"Resolving deltas: 12% (13383/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 13% (14426/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 14% (15443/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 15% (16548/110293) \r",
"Resolving deltas: 15% (16905/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 16% (17653/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 17% (18762/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 18% (19862/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 19% (20970/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 20% (22059/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 21% (23162/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 22% (24288/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 23% (25380/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 24% (26490/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 25% (27576/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 26% (28677/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 27% (29783/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 28% (30891/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 29% (31989/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 30% (33088/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 31% (34192/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 32% (35311/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 33% (36413/110293) \r",
"Resolving deltas: 33% (36694/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 34% (37507/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 35% (38604/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 36% (39713/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 37% (40822/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 38% (41915/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 39% (43027/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 40% (44126/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 41% (45223/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 42% (46339/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 43% (47426/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 44% (48536/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 45% (49635/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 46% (50753/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 47% (51840/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 48% (52966/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 49% (54050/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 50% (55160/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 51% (56260/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 52% (57355/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 52% (58158/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 53% (58728/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 55% (61011/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 56% (61878/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 57% (62958/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 58% (64106/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 59% (65169/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 60% (66301/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 61% (67371/110293) \r",
"Resolving deltas: 61% (67870/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 62% (68434/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 63% (69539/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 64% (70691/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 65% (71747/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 66% (73018/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 67% (74083/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 68% (75069/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 69% (76132/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 70% (77266/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 71% (78312/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 72% (79440/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 73% (80518/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 74% (82094/110293) \r",
"Resolving deltas: 75% (82738/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 76% (84156/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 77% (84932/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 78% (86069/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 79% (87203/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 80% (88265/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 81% (89351/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 82% (90449/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 83% (91665/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 84% (93201/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 85% (93836/110293) \r",
"Resolving deltas: 85% (94255/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 86% (94878/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 87% (96072/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 88% (97157/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 89% (98161/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 90% (99284/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 91% (100380/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 92% (101474/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 93% (102574/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 94% (103686/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 95% (104792/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 96% (105888/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 97% (106989/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 98% (108097/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 99% (109192/110293) \r"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Resolving deltas: 99% (109979/110293) \r",
"Resolving deltas: 100% (110293/110293) \r",
"Resolving deltas: 100% (110293/110293), done.\r\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Checking connectivity... done.\r\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"CPU times: user 513 ms, sys: 137 ms, total: 650 ms\n",
"Wall time: 1min 6s\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Which part of OpenSSL's history is publicly available?"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from IPython.display import IFrame"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"IFrame(\"http://en.wikipedia.org/wiki/OpenSSL#History_of_the_OpenSSL_project\", 800, 400)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"\n",
" <iframe\n",
" width=\"800\"\n",
" height=400\"\n",
" src=\"http://en.wikipedia.org/wiki/OpenSSL#History_of_the_OpenSSL_project\"\n",
" frameborder=\"0\"\n",
" allowfullscreen\n",
" ></iframe>\n",
" "
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": [
"<IPython.lib.display.IFrame at 0x103d3fe90>"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So the official start of the OpenSSL project was on December 23, 1998. Now let's see what we have in our repository:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"cd openssl/"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"/Users/dirk/projekte/openssl-git/openssl\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"!git log --reverse | head -40"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"commit 90718ac5274e07cd7b1933f068e9546d12e621f5\r\n",
"Author: Ralf S. Engelschall <rse@openssl.org>\r\n",
"Date: Mon Dec 21 10:52:45 1998 +0000\r\n",
"\r\n",
" This commit was generated by cvs2svn to track changes on a CVS vendor\r\n",
" branch.\r\n",
"\r\n",
"commit ec96f926b98721d6b84c7023fde0ecc5fe98e644\r\n",
"Author: Ralf S. Engelschall <rse@openssl.org>\r\n",
"Date: Mon Dec 21 10:52:45 1998 +0000\r\n",
"\r\n",
" Import of old SSLeay release: SSLeay 0.8.1b\r\n",
"\r\n",
"commit b7896b3cb86d80206af14a14d69b0717786f2729\r\n",
"Merge: 90718ac d02b48c\r\n",
"Author: Ralf S. Engelschall <rse@openssl.org>\r\n",
"Date: Mon Dec 21 10:52:47 1998 +0000\r\n",
"\r\n",
" This commit was generated by cvs2svn to track changes on a CVS vendor\r\n",
" branch.\r\n",
"\r\n",
"commit d02b48c63a58ea4367a0e905979f140b7d090f86\r\n",
"Author: Ralf S. Engelschall <rse@openssl.org>\r\n",
"Date: Mon Dec 21 10:52:47 1998 +0000\r\n",
"\r\n",
" Import of old SSLeay release: SSLeay 0.8.1b\r\n",
"\r\n",
"commit eda1f21f1af8b6f77327e7b37573af9c1ba73726\r\n",
"Merge: b7896b3 c7e9169\r\n",
"Author: Ralf S. Engelschall <rse@openssl.org>\r\n",
"Date: Mon Dec 21 10:56:30 1998 +0000\r\n",
"\r\n",
" This commit was generated by cvs2svn to track changes on a CVS vendor\r\n",
" branch.\r\n",
"\r\n",
"commit c7e91699977f0dcf5025c00670d9dde0c2296641\r\n",
"Author: Ralf S. Engelschall <rse@openssl.org>\r\n",
"Date: Mon Dec 21 10:56:30 1998 +0000\r\n",
"\r\n",
" Import of old SSLeay release: SSLeay 0.9.0b\r\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"!git log -1"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\u001b[33mcommit 300b9f0b704048f60776881f1d378c74d9c32fbd\u001b[m\r\n",
"Author: Dr. Stephen Henson <steve@openssl.org>\r\n",
"Date: Tue Apr 15 18:48:54 2014 +0100\r\n",
"\r\n",
" Extension checking fixes.\r\n",
" \r\n",
" When looking for an extension we need to set the last found\r\n",
" position to -1 to properly search all extensions.\r\n",
" \r\n",
" PR#3309.\r\n"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So we have commits from two days earlier that the official start up to today. More than 15 years of history. Good."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"!git log --oneline | wc -l"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
" 11856\r\n"
]
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"About twelve thousand commits."
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"How large is the code base?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First let's see how much space the current checkout (excluding the .git repo) takes:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"!du -hs -I\\.git"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
" 28M\t.\r\n"
]
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For a deeper analysis, we use David Wheeler's [SLOCCount](http://www.dwheeler.com/sloccount/):"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"!sloccount ."
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Have a non-directory at the top, so creating directory top_dir\r\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Adding /Users/dirk/projekte/openssl-git/openssl/./ACKNOWLEDGMENTS to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./CHANGES to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./CHANGES.SSLeay to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./Configure to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./FAQ to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./GitConfigure to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./GitMake to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./INSTALL to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./INSTALL.DJGPP to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./INSTALL.MacOS to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./INSTALL.NW to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./INSTALL.OS2 to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./INSTALL.VMS to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./INSTALL.W32 to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./INSTALL.W64 to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./INSTALL.WCE to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./LICENSE to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./Makefile.fips to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./Makefile.org to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./Makefile.shared to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./NEWS to top_dir\r\n",
"Creating filelist for Netware\r\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Adding /Users/dirk/projekte/openssl-git/openssl/./PROBLEMS to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./README to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./README.ASN1 to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./README.ECC to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./README.ENGINE to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./README.FIPS to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./TABLE to top_dir\r\n",
"Creating filelist for VMS\r\n",
"Creating filelist for apps\r\n",
"Creating filelist for bugs\r\n",
"Creating filelist for certs\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./config to top_dir\r\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Creating filelist for crypto\r\n",
"Creating filelist for demos\r\n",
"Creating filelist for doc\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./e_os.h to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./e_os2.h to top_dir\r\n",
"Creating filelist for engines\r\n",
"Creating filelist for fips\r\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Creating filelist for include\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./install.com to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./makevms.com to top_dir\r\n",
"Creating filelist for ms\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./openssl.doxy to top_dir\r\n",
"Adding /Users/dirk/projekte/openssl-git/openssl/./openssl.spec to top_dir\r\n",
"Creating filelist for os2\r\n",
"Creating filelist for perl\r\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Creating filelist for shlib\r\n",
"Creating filelist for ssl\r\n",
"Creating filelist for test\r\n",
"Creating filelist for times\r\n",
"Creating filelist for tools\r\n",
"Creating filelist for util\r\n",
"Categorizing files.\r\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Finding a working MD5 command....\r\n",
"Found a working MD5 command.\r\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Computing results.\r\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"pod without closing cut in file /Users/dirk/projekte/openssl-git/openssl/crypto/sha/asm/sha256-c64xplus.pl\r\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\r\n",
"\r\n",
"SLOC\tDirectory\tSLOC-by-Language (Sorted)\r\n",
"283856 crypto ansic=184902,perl=88876,asm=9463,cpp=605,sh=10\r\n",
"46606 ssl ansic=46606\r\n",
"36042 apps ansic=35535,perl=355,sh=152\r\n",
"20548 fips ansic=18413,perl=2017,sh=118\r\n",
"17520 engines ansic=16476,perl=1044\r\n",
"10418 demos ansic=9638,sh=550,cpp=218,perl=12\r\n",
"7769 util perl=7207,sh=562\r\n",
"3554 test perl=1562,sh=1304,ansic=688\r\n",
"1471 top_dir sh=764,ansic=707\r\n",
"543 ms ansic=320,perl=223\r\n",
"446 Netware perl=446\r\n",
"260 shlib sh=260\r\n",
"241 times cpp=225,perl=16\r\n",
"177 tools perl=146,sh=31\r\n",
"166 bugs ansic=166\r\n",
"31 VMS perl=31\r\n",
"27 os2 perl=27\r\n",
"24 doc lisp=24\r\n",
"0 certs (none)\r\n",
"0 include (none)\r\n",
"0 perl (none)\r\n",
"\r\n",
"\r\n",
"Totals grouped by language (dominant language first):\r\n",
"ansic: 313451 (72.95%)\r\n",
"perl: 101962 (23.73%)\r\n",
"asm: 9463 (2.20%)\r\n",
"sh: 3751 (0.87%)\r\n",
"cpp: 1048 (0.24%)\r\n",
"lisp: 24 (0.01%)\r\n",
"\r\n",
"\r\n",
"\r\n",
"\r\n",
"Total Physical Source Lines of Code (SLOC) = 429,699\r\n",
"Development Effort Estimate, Person-Years (Person-Months) = 116.37 (1,396.48)\r\n",
" (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))\r\n",
"Schedule Estimate, Years (Months) = 3.26 (39.18)\r\n",
" (Basic COCOMO model, Months = 2.5 * (person-months**0.38))\r\n",
"Estimated Average Number of Developers (Effort/Schedule) = 35.64\r\n",
"Total Estimated Cost to Develop = $ 15,720,421\r\n",
" (average salary = $56,286/year, overhead = 2.40).\r\n",
"SLOCCount, Copyright (C) 2001-2004 David A. Wheeler\r\n",
"SLOCCount is Open Source Software/Free Software, licensed under the GNU GPL.\r\n",
"SLOCCount comes with ABSOLUTELY NO WARRANTY, and you are welcome to\r\n",
"redistribute it under certain conditions as specified by the GNU GPL license;\r\n",
"see the documentation for details.\r\n",
"Please credit this data as \"generated using David A. Wheeler's 'SLOCCount'.\"\r\n"
]
}
],
"prompt_number": 9
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So we have nearly 430kSLOC -- mostly C as expected, but roughly a quarter is Perl. And we have nearly 10000 lines of assembler code."
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Who contributed to OpenSSL over the years?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I'll save the commit authors and timestamps as a CSV file, that can be imported and analysed using the excellent [pandas](http://pandas.pydata.org/) library:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"!git log --format=format:\"%ai,%an,%H\" > ../commits"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 10
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"cd .."
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"/Users/dirk/projekte/openssl-git\n"
]
}
],
"prompt_number": 11
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import pandas as pd"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 12
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df=pd.read_csv(\"commits\", header=None, names=[\"time\", \"author\", \"id\"], index_col=\"time\", parse_dates=True)\n",
"df.sort(ascending=True, inplace=True)\n",
"df.head()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>author</th>\n",
" <th>id</th>\n",
" </tr>\n",
" <tr>\n",
" <th>time</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1998-12-21 10:52:45</th>\n",
" <td> Ralf S. Engelschall</td>\n",
" <td> 90718ac5274e07cd7b1933f068e9546d12e621f5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1998-12-21 10:52:45</th>\n",
" <td> Ralf S. Engelschall</td>\n",
" <td> ec96f926b98721d6b84c7023fde0ecc5fe98e644</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1998-12-21 10:52:47</th>\n",
" <td> Ralf S. Engelschall</td>\n",
" <td> b7896b3cb86d80206af14a14d69b0717786f2729</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1998-12-21 10:52:47</th>\n",
" <td> Ralf S. Engelschall</td>\n",
" <td> d02b48c63a58ea4367a0e905979f140b7d090f86</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1998-12-21 10:56:30</th>\n",
" <td> Ralf S. Engelschall</td>\n",
" <td> eda1f21f1af8b6f77327e7b37573af9c1ba73726</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows \u00d7 2 columns</p>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 13,
"text": [
" author \\\n",
"time \n",
"1998-12-21 10:52:45 Ralf S. Engelschall \n",
"1998-12-21 10:52:45 Ralf S. Engelschall \n",
"1998-12-21 10:52:47 Ralf S. Engelschall \n",
"1998-12-21 10:52:47 Ralf S. Engelschall \n",
"1998-12-21 10:56:30 Ralf S. Engelschall \n",
"\n",
" id \n",
"time \n",
"1998-12-21 10:52:45 90718ac5274e07cd7b1933f068e9546d12e621f5 \n",
"1998-12-21 10:52:45 ec96f926b98721d6b84c7023fde0ecc5fe98e644 \n",
"1998-12-21 10:52:47 b7896b3cb86d80206af14a14d69b0717786f2729 \n",
"1998-12-21 10:52:47 d02b48c63a58ea4367a0e905979f140b7d090f86 \n",
"1998-12-21 10:56:30 eda1f21f1af8b6f77327e7b37573af9c1ba73726 \n",
"\n",
"[5 rows x 2 columns]"
]
}
],
"prompt_number": 13
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pandas provides a convenience function that shows how often each value occurs in a given column:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"commits_per_author=df.author.value_counts()\n",
"commits_per_author"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 14,
"text": [
"Dr. Stephen Henson 3558\n",
"Richard Levitte 2331\n",
"Andy Polyakov 1800\n",
"Bodo M\u00f6ller 1699\n",
"Ulf M\u00f6ller 661\n",
"Ben Laurie 590\n",
"Geoff Thorpe 408\n",
"Lutz J\u00e4nicke 300\n",
"Nils Larsch 197\n",
"Ralf S. Engelschall 189\n",
"Mark J. Cox 18\n",
"Paul C. Sutton 11\n",
"Adam Langley 11\n",
"Daniel Kahn Gillmor 10\n",
"Rob Stradling 10\n",
"Scott Deboy 7\n",
"stephen 5\n",
"Trevor Perrin 5\n",
"Carlos Alberto Lopez Perez 4\n",
"Bodo Moeller 4\n",
"Trevor 3\n",
"Piotr Sikora 3\n",
"Michael Tuexen 3\n",
"Lubomir Rintel 2\n",
"Robin Seggelmann 2\n",
"Kurt Roeckx 2\n",
"Matt Caswell 2\n",
"Jeff Trawick 2\n",
"Scott Schaefer 2\n",
"Kaspar Brand 2\n",
"Nick Mathewson 2\n",
"Krzysztof Kwiatkowski 1\n",
"Emilia Kasper 1\n",
"Lutz Jaenicke 1\n",
"Steve Marquess 1\n",
"Eric Young 1\n",
"Ard Biesheuvel 1\n",
"David Woodhouse 1\n",
"Veres Lajos 1\n",
"Klaus-Peter Junghanns 1\n",
"Mat 1\n",
"Tim Hudson 1\n",
"Jeff Walton 1\n",
"Nick Alcock 1\n",
"dtype: int64"
]
}
],
"prompt_number": 14
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So we have 10 People with more than 100 commits. Not a lot. But no suprises, either: The top 11 committers are exactly the current development team mentioned on the [OpenSSL homepage]( https://www.openssl.org/about/)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's visualize the commit counts with [Matplotlib](http://matplotlib.org/). But first import [seaborn](http://www.stanford.edu/~mwaskom/software/seaborn/), which gives us much prettier graphics:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import seaborn as sns"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 15
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%matplotlib inline"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 16
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"commits_per_author.plot(kind=\"bar\", figsize=(10,6))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 17,
"text": [
"<matplotlib.axes.AxesSubplot at 0x109a5e7d0>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nAADAAoQsAAAACxCyAAAALEDIAgAAsAAhCwAAwAKELAAAAAsQsgAAACxAyAIAALAAIQsAAMAChCwA\nAAALELIAAAAsQMgCAACwACELAADAAoQsAAAACxCyAAAALEDIAgAAsAAhCwAAwAKELAAAAAsQsgAA\nACxAyAIAALAAIQsAAMAChCwAAAALELIAAAAsQMgCAACwACELAADAAoQsAAAACwR5e7C0tFQTJ07U\noUOHVFJSouTkZP3617/WiBEj1KRJE0lSYmKiunXrpqysLC1btkxBQUFKTk5Wp06dVFRUpKeeekoO\nh0OhoaGaNWuWIiMjz8e4AAAALiivIeu9995TZGSk5syZo5MnT6pXr14aOXKkBg8erEcffdRdLi8v\nTxkZGVq+fLmKi4uVkJCgDh06KDMzUy1atNCoUaO0atUqLVq0SKmpqZYPCgAA4ELzerqwa9euevzx\nxyVJ5eXlCgoK0s6dO7V+/XoNHDhQqampKiws1Pbt2xUbG6vg4GCFhYUpKipKubm52rZtm+Li4iRJ\nHTt21JYtW6wfEQAAQC3g9UhW3bp1JUlOp1NjxozR2LFjVVxcrPj4eN18881avHixFixYoFatWik8\nPNxdLzQ0VE6nU06nU6Ghoe5tBQUFFg4FAACg9vAasiTp8OHDGjVqlAYMGKAHH3xQBQUF7kB1//33\n6+mnn1a7du1UWFjorlNYWKjw8HCFhYW5txcWFioiIsK0Q/Xr11VQUKDy88N8HkRkZJgaNAj3+Li3\nxy5kncu5X4zd2jb8qXOptOFPncu5X4zd2jb8qXOptOFPnUulDRevIevYsWMaPHiwpkyZojvvvFOS\nNHToUKWmpiomJkabN29W69atFRMTo3nz5qmkpETFxcXas2ePmjdvrtjYWGVnZysmJkbZ2dlq27at\naYfy809LkhwOp8+DcDicysur/ihZgwbhHh/z5HzUuZz7xdgZe22qczn3i7Ez9tpU52Jtw1sA8xqy\nFi9erIKCAi1cuFALFy6UJE2cOFEzZ85UUFCQGjZsqOnTpys0NFRJSUlKTExUeXm5UlJSFBISooSE\nBI0bN06JiYkKCQlRenp6jQYGAABwsfIastLS0pSWllZle2ZmZpVtdrtddru90rY6depo/vz5P7OL\nAAAAFx8WIwUAALAAIQsAAMAChCwAAAALELIAAAAsQMgCAACwACELAADAAoQsAAAACxCyAAAALEDI\n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\n6zX0WOb0yaOa/1RPRUd7X0YDAAD8fISsS0jdeg0VVv+6C90NAAAg5mQBAABYgpAFAABgAUIWAACA\nBQhZAAAAFiBkAQAAWICQBQAAYAGWcLhM+bp4qcQCpgAA+IOQdZnyZfFSiQVMAQDwFyHrMsbipQAA\nWIc5WQAAABYgZAEAAFiAkAUAAGABQhYAAIAFCFkAAAAWIGQBAABYgCUc4DNfFzCtuHhpdXVY8BQA\ncDkgZMFnvixgeu7ipf7UAQDgUkDIQo34s4Api54CAC5HzMkCAACwACELAADAAoQsAAAACxCyAAAA\nLEDIAgAAsAAhCwAAwAKELAAAAAsQsgAAACxAyAIAALAAIQsAAMAClt9Wp7y8XFOnTtXu3bsVHBys\nZ599VjfccIPVzQIAAFxQlh/JWr16tUpLS/XGG2/oySef1KxZs6xuEgAA4IKz/EjWtm3b1LFjR0lS\nmzZt9NVXX1ndJC5iZWVl2r9/b5Xt+flhcjiclbY1adJUgYGBPtepaXkr6ngrDwC4tFgespxOp8LC\nwtz/DwwMVHl5uQICqj+IdvvtrSVJpaWlcpw6LVvA2Z1Pe/vT1ZbfvGyi+vy7roKDgyvV+aXKb3lz\nkozysip1OvSf4VN511hu6DDcY3lJVdowK39unaysFTp98ugvWr5ine3bcyWpSh2z8ufWObe8q46G\nr5Uk7d+/V8MnvaI6YZGSpC//s6BKeUlqcVeiXnp6qKKjm1Wq80uVb/P7USpyOqrUyd201GN5SVXq\nxHXuJJut6mu9uvKSFBPTokrZwMAAvfXWu5W2ucrffntrlZaWVqmzYcP6SmGuYnlJVeqcW95Vx1P5\nFStWVhsY4+P7uP9dsY4/5aWqobRPn+7u91XFOq7y59Y5t7yrjrfykqq0UbF8xTqu8ufWycpaoXPl\n54fp7rs7+V2+Yp3PP/9Ke/Z8U6XObbf1VFlZebXlJVWpc255Vx1P5fv06a7AwIAqdSq+3yvWcT0/\n59apafkVK1a6X8MV61R8/ivWcf2+zq3zc8pXrFPx9VCxji/v35qWr1jH1/e7q86FfL9LVd+/FctX\nrPNLvt8l7+9fK97v3313QJ7YDMMwPD76C5g1a5batGmjbt26SZLuvvtubdiwwcomAQAALjjL52TF\nxsYqOztbkvTFF1+oRYuqyR0AAOBSY/mRLMMwNHXqVOXmnj08PHPmTN14441WNgkAAHDBWR6yAAAA\nLkcsRgoAAGABQhYAAIAFCFkAAAAWIGQBAABYwPLFSH+u8vJy7dixQyUlJTIMQzabTe3atTOtt2/f\nPn333XdyTgmjAAAgAElEQVRq0aKFGjZs6HHxUxeHw6HIyEif+/XKK69o6NChPpeXpC1btqh9+/Y1\nquOPmo5dkgoKCvTDDz/o+uuvV2hoqGl5h8OhoqIi9/+vvfbaasu98cYb1W632Wzq37+/aTsuZWVl\ntWJV9FOnTikiIqJGdbZu3SqbzeZ+/QYFBalRo0b69a9/7bHO9u3bFRMT83O765XT6VR2draKi4sl\nnf2d9O7d22P5d955p9Ljr732mv7whz94bcOf56umSktLtWPHDpWVlam8vFx5eXnq3r271zq+jv2u\nu+6SzWar9mds3LjRaxuHDh3SypUrVVJS4t42atQor3UKCwsrvf8OHz6sRo0a/aL92r17t5o3by7p\n7Ofryy+/rBEjRngsP3PmTE2YMMHrz3QZNGhQtdttNpv++c9/eq27ePFivfLKK6pTp457W3VjWbt2\nre65554qny2+fKakpKTo+eef91qmIqfTqZdffllHjx7VPffco+bNmysqKsrn+p5+f+dasKDyosiu\nz4gHHnig0qKX6enp1da32WxKSUnx2saZM2e0YsUKHTp0SB06dFB0dHSN9nneFhH/JcrXxPHjx93v\nXcnz/ufn1qmotLS0ysLGvqj1IWv06NFyOByVXqhmISsjI0OrV6/WyZMn1atXLx08eFCTJ0/2WmfI\nkCG64YYbFB8fr7vuusu0Xxs2bNAf/vAHBQX5/hS+8MILNQpZu3fv1tSpU3Xq1Cn17t1b0dHR6ty5\ns9c6/oz9gw8+0OLFi1VWVqbf//73CggI0B//+EeP5SdNmqQtW7bo6quvdm9btmxZtWXz8vI87gy8\neeKJJzRjxgzVrVtXBw8e1FNPPeUxsLn4+iFd0UMPPaSePXuqd+/euuqqq0z7NXz4cNN+nGv+/PnK\ny8tT69atlZOTo+DgYBUXF8tut2vYsGHV1vn73/+uH374Qb169VLPnj1Ng8qKFSv00ksvVQoNa9as\n8VonOTlZ11xzjU87AUmaNm2atmzZohkzZigwMFBr1qwxDVn+PF81/QIzatQonTlzRkeOHFF5eblu\nvvlm05Dl69g3bdrkcz/ONWbMGHXo0MHn51eSEhISNHv2bLVs2VL/+c9/NG/ePH3wwQe/aL9SU1OV\nnp4um82m8ePHKzo62mv5b7/9VidPnlS9evVMf/b8+fMlSbNnz1aPHj3Utm1bffHFF3r//fdN677/\n/vv6+OOPdeWVV3otd/LkSUn+fbaUlpZq165duvHGG911Q0JCPJafOHGiOnbsqK1bt+qqq67SxIkT\ntWTJEq9tvPzyy4qIiNCpU6e0YsUK/e53v9PEiRO91snNzdUVV1zhfr4OHz6shg0bauPGjZozZ467\nXMV+19TkyZN1zTXXaNOmTfrNb36jcePG6eWXX/Za51//+pcCAwNVUlKiOXPmaMiQIV7fmzUtL0kv\nvvhipf1Nenq6/vSnP3ksP3XqVGVnZ6tBgwbubZ72Pz+nzksvvaThw8/eeSU3N1fjxo3TO++847VO\ntYxarn///n7VOXPmjDFw4EDDMAyjT58+PtX78ssvjalTpxoPPfSQsXDhQq9lu3fvbtx5551Gv379\njPj4eJ/6mZiYaCQnJxuzZ8825s6da6Snp3stP2jQIGPfvn3GwIEDjR9//NGncfgz9v79+xtFRUXG\nwIEDjdLSUqN3795ey9vtdqO8vNz05xqGYezZs8fjH2/eeust46GHHjJeffVVo0ePHsZ///tf07a6\nd+9unD592qd+uZw4ccJ4/fXXjf79+xtPPPGEsXHjRq/lR4wYYbz22mvG+vXrjezsbOPjjz82bWPw\n4MFGUVGRYRiGUVxcbAwbNswoLi42+vXr57Vefn6+8frrrxuPPPKIkZKS4vU56Natm7F//36jqKjI\n/ceM6zXiq4EDBxqZmZnG8OHDjdOnTxuDBg0yreN6vjZs2ODz8+V6HfrKbrcbhmEYEydONE6fPm2M\nHDnSpzZqIjc310hISDAefPBB45VXXjHWrl1rWucPf/hDjdowDMP45ptvDLvdbiQnJxujR482jh8/\nXm25sWPHVvsnJSXFtI39+/cb/fr1M7p3725s2rTJtHynTp2Mli1bGu3btzfuuusu46677jKtc+7z\n68vznZycbJSVlZmWc9m1a5f732VlZcbixYtN6zz44ING586d3X/uuecer+Vd/Xb9nZCQYNpGv379\njOLiYmPgwIFGeXm5T2M/973keu08/PDD1ZYvLS01srKyjHnz5hmffPKJx9dJReeOxZd91kMPPWQ4\nHA7jkUceMYqKiozExMRfrHxWVpYRHx9vxMbGGvHx8UZ8fLzRr18/o1evXl7b6NOnT41eJ/7WefLJ\nJ42lS5caL7/8stG9e3fjs88+q1F9l1p/JOvGG2/UkSNHdM0119SoXsXDlFdccYVPdZo1a6Zbb71V\nBw4c0Oeff+617KJFi2r8jaJv3741rtOkSRNJ0jXXXOPTaTyp5mMPCAhwlwsKClLdunW9lm/QoIGc\nTqfCw8NNf/aUKVM8PpaRkeHxsQceeEAbNmzQiy++qCFDhui3v/2taVvXX3+9z79rl3r16mnAgAG6\n8847tXDhQj355JO67rrrNHz4cHXp0qVK+auuukq7du3Srl273Nt+97vfeW0jPz/f/W05ODjY/X/D\nZIm648eP69ChQ8rPz9dNN92kDz/8UG+++abmzp1bpewNN9xQo9MYktSiRQt98cUXuvnmm93bvH2r\nl6SHH35YERERGjJkiMrLy72Wlfx7vk6cOKGOHTuqcePGCggIkM1m83o07Morr5RhGDp9+rSuvPJK\n5efnm/arpmN/5plnNGPGDE2aNEndu3dXcnKy6VHlZs2a6f3331erVq3c73uzhZhdz2lJSYmCgoI8\nnm6peFrM18+Uis/hbbfdpo8//ljfffedDh486PU027p163z6+RUFBgbqzTff1C233KLPP//c9OiU\ndHbMPXr0UPPmzWWz2WSz2TyeHpOktLS0Gh2Rk6SVK133yMvXVVddZfrc2Ww27dmzR5L0448/+jRl\nITAwUMeOHVODBg1ks9kqnaLyxOl0uqesOBwOFRQUqKSkpNKUjIpcR6U2b96s1q1b+3RUqqysTA6H\nw92eL6fyXGcFwsLCdMUVV6isrOwXK9+rVy+1b99eixcvVnJysgzDUEBAgH71q195beOGG25QUVGR\n6X7q59Z57rnn9OSTT8rhcOitt96q8b7FpdaHrM8//1ydO3dW/fr13W8Is1NADz74oAYMGKBDhw5p\n6NChuu+++0zbmTBhgr744gv9/ve/1/Tp09W4cWOv5YOCgjR37lw5HA5169ZNzZs313XXXee1Ts+e\nPbVixQr98MMP6tChg2666Sav5a+66iplZmbqp59+0sqVK32a2+LP2G+//XalpKTo6NGjmjx5sm65\n5ZZqy7k+iB0Oh7p06aLrr7/e/WHoaSfoKUhVnKdSHbvdrn79+mn27NmaPXu2hgwZor/97W9e69T0\nQ1qSlixZon/9618KDQ2V3W7Xc889p7KyMtnt9mpD1qxZs7R79259++23atKkSaWdtCf33nuvEhIS\nFBMTox07dujee+/V0qVL1axZM4917Ha76tSpI7vdrjFjxrgDwJAhQ6otf8UVV2jIkCHuHbovczQ+\n+eQTrV27ttK2c/9fkSsgPPDAAwoLC9OYMWO8/nzp7PO1b98+HThwQC1atPDpy9K5X2DMwuj999+v\nhQsXqmXLloqPj/dph17TsUs1/8Lz9ddf6+uvv660zdsXC0kaO3asZs6cqZiYGH3wwQdKTEzUqlWr\nqpRzfemobs6QJxVPr0VEROjBBx/UsWPHTMdRcdpCnz591LRpU9OAOXfuXC1evFgffPCBoqOjNXv2\nbNN2hg0bVqMvoXPnztWf/vQnFRUVacKECerQoYNpna1bt2r69OkqKytTt27d1KhRI9ntdo/lU1NT\nNWHCBO3du1ejR4/W1KlTTdv47W9/q4EDB2ru3LmaMWOG7r77btM6o0ePVnx8vMLCwlRYWKhJkybp\ntddeU79+/aotf/DgQc2YMUOfffaZ7rvvPr3yyiumbTzxxBNKSEhQXl6e4uPjlZqaalrHNYVm4sSJ\nWrBggelt8WpSPiQkRI0bN9aUKVPccyoNw9C2bdu8nu4/fPiwOnfurKioKNP9jz91Kn7hKC0t1e7d\nu5WUlORTO9W5JFd8Ly0t1YEDB7R79241bdpUjRo1Mp1PsHbtWnXq1MnniXrDhg3T4MGD9eKLL2rS\npElKTU3Vm2++6bXOxIkT3efEhw8frmXLlnn99lFQUKDFixfrm2++UdOmTfXYY4/5NG9oz5492r17\nt2688Ua1bNnSp/Fs2LBBu3fvVnR0tO65555qy3z//feS5J7ELZ19rkNCQkwDZmZmpl577TWdOXNG\nhmEoNDRU7733nsfyOTk5lQLM6tWrTQPjJ598UuVD+o477vBaZ968eerXr5+uv/76Stu3bdum2NjY\nKuX/+c9/auXKlWrTpo3+97//qWvXrj7NH9q1a5f27t2rm266Sc2bN5fD4aj0xeFc+/bt04033qjj\nx4+rfv36pq/L5cuXV/lZffr08VDaf66LKpo3b65rrrnGtF/+zBE8fPiwZs6cqW+//VY33nijJkyY\n4PVLz5YtW3TnnXfKZrNp165datKkSaV5ed74ekTj8ccfV/v27fX222/rD3/4g/79739r4cKFPrVR\nE06nU2FhYe7/f/rpp17noD7++OOKi4vT22+/rZSUFM2fP1+vv/661zYOHDig7du3q0ePHkpPT1f/\n/v29Pr9JSUmaPn26Jk2apLlz5yo5OVnLly83HcuxY8cqzRE0m2hcUFCgF1980f17/+Mf/1jt513F\nHd3evXv18ccfu+cGmk18T0xM1MKFC/X4449r0aJFGjRokFasWOG1TxWP2Hv6XPCkpKTE9OiwS3l5\nuRwOh66++mrT12NiYqIWLFigMWPGaNGiRRo+fLiWLl3qUzsOh0Ph4eE+T+J2XYyRl5dXaU7TL1V+\nxIgRVeZUVne03uX777+v8iXM7KBITer8nP1cdWr9Eg67du1S3759ddddd6l3797auXOnx7JHjx7V\n3r17NWDAAAUGBqply5YKDg72+O2/omuvvVZ2u92ndiSpqKjIPYm9efPmPn2oHzx4UGPGjNEVV1yh\n++67TwUFBdWWO3z4sKSz3zz79u2r8ePHKz4+3qfTIPv27dPcuXP1l7/8RYsWLXL/LG9Wrlypu+++\nW8OGDVPr1q09Pl+NGzdW48aNtXHjRi1ZskSNGzfWM888o08//dS0jaVLl+qf//yn4uLiNGPGDNNv\nnfXr19fjjz+uBx54QCNHjvQpLN58881at26dXn75Za1evdrrt3qXYcOG6a233tKECRO0evVqHThw\nQJI8fpCuXLlSS5cuVWpqqjIzM6s9ynCuQ4cOKTs7W3v37tWHH36oBQsWKDIy0usH6ZEjR3Tvvfdq\n8ODBuvfee02P3vbs2VNnzpzRgQMHdN1113n99jxt2jRJZ3dIFf88/PDDXtvIyMjQ1KlT3ZOxn3nm\nGa/lpbOTmf/+978rPDxcjz76qL744gvTOmlpaerVq5cyMzPVp08f02/cL7zwgvu5bNmypU/vxa1b\nt6p79+5KTEzUCy+8YPoFacaMGfr+++9Vv359ffXVV3r22WdN21ixYoW6deume+65R/fcc4/uvfde\n0zoTJkxwf7C/8cYbpmPPz89Xv379FBQUpHbt2vl0CnfcuHHuHUxcXJxPRzRqehRv6tSpio+PV0pK\nilJSUjR27FjTOhMnTlSjRo00duxYXXvttRo/fny15fLy8nTs2DEdO3ZMEREReuCBB5SXl6e8vDzT\nNgICAlS/fn1JZ09pVQy01Rk5cqSKiopUWlqq9PR0TZ8+3bSNf/3rX1q5cqWWL1+uu+++26ejTBs3\nbtTw4cM1duxYJSUlKSkpyWt511GpnTt3Kj4+XiNHjvS5X+vXr1dcXJxP/dq1a5eSkpJ01113adiw\nYab7xZycHM2ePVsTJkzQ888/79NVqfn5+frb3/6mNm3a6O233/Z4itQlMDBQzz33nIYNG6YZM2aY\n/vya1vk5+7lq+TWT6zwaOHCg8fXXXxuGYRg5OTleJ+t9+OGHxsCBA422bdsaAwcONAYOHGgkJSUZ\n8+bN+0XbMQzDGDp0qLFhwwYjMTHR2LZtmzF48GDTNhISEozjx48bAwcONAoKCjxOonz22WfdfTr3\njxm73W6sXbvWOHHihLFu3TojKSnJtM6QIUOMtWvXGv/+97+NLl26GCtXrvRavlevXkZJSYlhGIZR\nUlLinnjsjev5efLJJyv931v51atXGydOnDA++ugjn8YxatQo4x//+Iexc+dO49VXXzVGjBhhWmf0\n6NFGVlaW8fDDDxtbt241ndh57lh9mTzar18/4/nnnzcyMzPdf8z079/f+PHHHw3DMIwff/zR6Nu3\nr9fyEyZMMP785z8bdrvd+Oijj4yhQ4d6LJuXl2cYhmF8++23xsGDByv9MeuTPxdVVJz862kib0Xn\nvs7Nfic1vaDEMM6+Fx0Oh/u9aHaxx7kXwsydO9e0DX8uRli6dKnxpz/9yRg+fLjx5JNPGidOnPBa\nftCgQca3335rDBw40Dh8+LBPnxHnvmbN6owePdpYunSp0bdvX+O9994z/vjHP5q24c9E43P7YfZa\nKS8vN06dOmUUFBQYK1asMPLz803bmDBhgjFnzhyje/fuxuLFi43/+7//81p+zZo1xuDBg41+/foZ\n8+bNc3/ueVPTyeKGYRgPPPCAsWnTJuPbb791//EmJyfHMAzDOH78uM/Psz/9qul+sUePHkZWVpax\nYcMG98UuZpKSkozy8nLjiSeeMAzD/P3uz77Bnzr+7OeqU+vnZBmG4T6K0apVK69LJtx///26//77\nq6zn45q4+Eu1I0nTp0/Xc889p/z8fP3973/36Vy9r+fEXZf73n333TVei+vKK690z5fo1KmTXn31\nVdM6L7zwgpKTk1VcXKylS5dWWpqhOoGBge7nx9vk3IrCwsL00UcfKSAgQJmZmTp69KjX8iUlJe5v\n/vfdd59P4zhx4oT7G+DNN9+s//znP6Z18vPzZbfb9e6776pdu3am839iY2M1evRo3X777dq2bZtu\nu+020zbCwsJ8+iZfUVBQkHv+0jXXXGN6dKYmczRcE0vT0tKUmZlZo37V9KIKf+YIlpWVadeuXWrZ\nsqVyc3NNT534c0GJr0c03nzzTb311lv69ttvtWHDBklnT+uUlpZ6vcxcqtnFCK45in379tXp06e1\nefNmn46WueYM7dmzx+c5Q+Hh4Vq2bJluvfVWbd++3eORKdcaZzNmzNCiRYtqdBTPn4nGxcXFOnr0\nqBo2bKi8vDzT9+LYsWPVqVMn/e9//5NhGProo49MT+FOmzZNb775ptq2bau6devq6aefrrbc3r17\nZbPZ1KRJE7Vr107//e9/1atXL33//femFy/UdLK4dPZMii9zylz+/Oc/68SJE+rbt6+6d+/u0/Ps\nT79qul9s0KCB1zlu1enSpYsWLlyoVq1aKT4+3nQs/uwb/Knjz36uOrU+ZAUEBGjt2rVq166dPv30\nU6/nt3Nzc3X06FG9+uqr7h1JWVmZ0tPT9e677/4i7bg+DK+++mqfJnNWdMcdd+g///mP6XwcF3/W\n4oqKitKSJUvUoUMHffnll6pbt677EO9vfvObSmUrToy+4oortH37dj377LOmE8bvvfdeJSYmKiYm\nRjk5OR7ncFX07LPP6rvvvlNKSopeffVVpaWleS1f0x2tVPMPaanmVw+NHz9e69at0969e/XQQw+p\nU6dOpm34c5VZaGioMjIy1LZtW3322Wemcwr9uXLoyiuv1IwZM9SkSRP3VXze5rT4E5gGDRqk9u3b\n65tvvvF5jmBaWpomTpyovLw8NWzY0PS0ZM+ePbVs2TJ3GwkJCaZt3HDDDZo7d65OnDihv/71rx7n\nC1V3BVRgYKDpFxGpZhcjdO3a1eM2bxPyv/nmG/397383Pe1V0XPPPacXX3xRH330kaKjoz2ePhkx\nYoQyMzM1Z84c9ylmX/kzOXnMmDFKSEhQWFiYnE6n6e/96NGj6t27t95++21lZGSYrtkmnX2flJSU\nuBfK9PQ+qe6qaNdcQrOLF2o6WVw6uz+ZPHmyex6q2Xvxr3/9q44ePap3331XgwcPVnR0tGn49adf\nNdn/StJ1112nl156Sa1atXKPw9PVxBVPJbp+Hw0bNjTd3/mzb/Cnjj/7uerU+onv33//vWbPnq29\ne/eqadOmGjdunMfJZ59++qnefvttbdy4UR07dpR09pfcpk0b0wmRvrbj7Yn29GHoqW2zD54ePXro\n2LFjPl/KLsnrOfCZM2dW+v+5E8WN/29Fcsl8wnhOTo7279+vpk2b+rTjPHXqlDZt2uQ+3262unhO\nTo7S0tIq7Whdb1xPNm3apMmTJ1f6kDZb/DU3N1eTJk3Snj171LRpU02dOrVKGK3o4MGDWrt2baUJ\nvZ4WFHWpbhVssw/qU6dOadGiRe7X42OPPeY1aG3dulWTJk3S0aNH1ahRI6WmppouqnvuKtOS9xXJ\n9+zZI8Mw3BeUePu9/5yVqVevXq3OnTv7vML/hAkTFBERoXbt2umTTz7RyZMnTb8AnTlzRllZWe6L\nPfr37+91B1LxzhMuZosi+3MxgmEY+vHHH9WoUSOfVv1ftGiRNm7cqPDwcN1///269957PV4c41p9\nfO/evZW222y2akP/oEGDVFhYqAMHDlS6EtqXz6FzJxpL8mnSsGEYys/PV0REhOnONj4+XkOHDtWW\nLVs0evRojRgxwnRu3ciRI3XDDTfo9ttv1+eff67jx497fa0UFxdrz549uvnmm7V69WrFxcX5NJG9\nppO/K84rdDG7O8ChQ4f0zjvvaN26dWrVqpVP88Vq2q+a7H+ls19Czx3Hufsdlx49eqioqEg9evSo\nckbAtf+ujj/7Bn/qSGevEN63b5/P+7nq1PqQJcl9u4wvvvhCbdq0MX2R79y50+uOsjo//vhjpduc\nvP/++3rwwQf96u+5fvjhB4+PeXvBVlfP7IOqJrfAcFmzZo2++uorjRkzRsOGDVNSUpLXF/muXbt0\n+vRpBQQE6Pnnn9djjz1meqh70KBBaty4caU1UDydbql4Cx2n06krrrjCpythXDsl15HCTz/91DQs\n1lSPHj3UpUuXSstpPPLII79oGy5r167Vvn371KJFC9O1pVx8PUoq1fwWIw8//LDPlzBXFzBczILG\n9OnTtXXrVt17773VXvl5rsTExEpXVvXv3990NefMzEz3Ea/S0lI9//zzGjdunMfyI0eOrHLnCbPn\nznW7H9cVtUePHlWPHj281pk8ebKioqI0ZMgQzZgxQ+Xl5aZHfaWzr/1nnnlGOTk5+uqrr6otM2PG\nDE2cONHn0F9WVqYjR45oypQp7tOQrt2F2dVc+/fv1wcffOAee15enmkIqOlq4R9++KHef/99TZgw\nQcuWLVNMTIzp0hIJCQmVTpGf+/9zjR49Wp06dVLfvn31yiuv6OuvvzZdFsafO3XU9LM+KSlJJSUl\n6tu3rx588EGfThdWt1/wFIBct5Cpbqmd4OBgv1edP1dubq7effdd7dixQ23btlWvXr1qtN7foUOH\nfLo9zrp16yr9DlatWqUHHnjAa52aXuXsSa0/XfjMM88oOjpahw4dUk5Ojn71q1/pueeeq7bstGnT\nNGXKFE2bNq3Si8CXb16PP/64Fi9erKCgIE2bNk0nTpyoNmT5c1TK2/37vH2rr+7SYrNvNzW5BYbL\nCy+84L6v2PPPP6+hQ4d6DVlTpkzR5MmT9Ze//EVjx47VnDlzfJpP4OkNXdHu3bv1xz/+UW+//bbq\n1aunLVu2aNasWVq8eLHHdaU+++wzffvtt3rttdf06KOPSjq7g1iyZInH23n4e++3Ro0aafTo0abj\nkM5+QL/wwgvVtmV2teDTTz+t48eP69Zbb9WyZcv0ySefeJ0DlJWVpX/84x/66aefJPl2W52a3mKk\nbt26Pp9e9OVbsieTJ09WSUmJ1qxZo2nTpunMmTN67bXXPJYvKSnR6dOnVbduXf30008+XWH3xRdf\n6LPPPtPQoUM1depUr6936ezCsDVdI6e62/2YhaydO3e6w8jEiROVmJjotfwzzzyjHTt2qH79+urR\no4dmzZrlsaxrrmf//v3VqVMn01OMgYGBuvbaa7Vo0aIq97wz86c//UldunTRtm3b1LBhQ/f8N2/+\n+c9/6pVXXtHYsWO1fv16DR482GvI2rdvn8aMGaNf//rXPq3ZJp29SjI3N1ctWrTQ999/b3rLoyNH\njqhv376SpKFDh3q8N2NFFReu7dGjh08L17r2A4Zh6Pvvv1dUVJTX8JeamurT6b6KunXrJpvNpvLy\ncuXk5HidFztu3Dg9//zz1Z7GLisrU5s2bfSXv/ylymM1vbVZixYt9NRTT0k6eyYqPT1dP/74o7Ky\nsjzWqclti9atW6dt27Zp5cqV+t///ufu/5o1a0xDVlpamhITE9W2bVt9+umnSk1N1T/+8Q+vdapT\n60PWV199pbS0NA0aNEgZGRlejxq4LmOdPXu2goODfZqT45KamqqRI0fK6XQqKSnJ4+S9it9ifF0w\n0d/7TbnWS3G9KXzZeezdu1d33nlnpbWVzHbowcHB7iMz4eHhpqdpQkJCdNNNN+nMmTO67bbbvJZ3\nfRNq3Lixtm3bptatW1f6Oed65plnNG/ePHdIvP/++3X11Vfr2Wef9bijjYiIUF5enkpKStyXcdts\nNv3f//2fx375e++3zp07a+7cubrpppvcp1c9nfZ84YUX/G4rJyfH/SH7yCOPmM4zyszM1EsvvWS6\n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\n",
"text": [
"<matplotlib.figure.Figure at 0x109a5e110>"
]
}
],
"prompt_number": 17
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[Dr. Stephen Henson](http://www.drh-consultancy.demon.co.uk/) clearly dominates."
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Has development speed increased or slowed down over time?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Introduce counter:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"df[\"c\"]=1 # counter\n",
"commits_over_time=df.c.cumsum().plot()\n",
"commits_over_time"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 18,
"text": [
"<matplotlib.axes.AxesSubplot at 0x10999ded0>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n5YrAKyakiAAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x109ac6350>"
]
}
],
"prompt_number": 18
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Has the number of authors increased or decreased over time?"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"authors = commits_per_author.index\n",
"timelines=pd.DataFrame(index=df.index)\n",
"for author in authors:\n",
" timelines[author]=df.c.where(df.author==author)\n",
"timelines.head()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Dr. Stephen Henson</th>\n",
" <th>Richard Levitte</th>\n",
" <th>Andy Polyakov</th>\n",
" <th>Bodo M\u00f6ller</th>\n",
" <th>Ulf M\u00f6ller</th>\n",
" <th>Ben Laurie</th>\n",
" <th>Geoff Thorpe</th>\n",
" <th>Lutz J\u00e4nicke</th>\n",
" <th>Nils Larsch</th>\n",
" <th>Ralf S. Engelschall</th>\n",
" <th>Mark J. Cox</th>\n",
" <th>Paul C. Sutton</th>\n",
" <th>Adam Langley</th>\n",
" <th>Daniel Kahn Gillmor</th>\n",
" <th>Rob Stradling</th>\n",
" <th>Scott Deboy</th>\n",
" <th>stephen</th>\n",
" <th>Trevor Perrin</th>\n",
" <th>Carlos Alberto Lopez Perez</th>\n",
" <th>Bodo Moeller</th>\n",
" <th></th>\n",
" </tr>\n",
" <tr>\n",
" <th>time</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1998-12-21 10:52:45</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td> 1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1998-12-21 10:52:45</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td> 1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1998-12-21 10:52:47</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td> 1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1998-12-21 10:52:47</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td> 1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1998-12-21 10:56:30</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td> 1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows \u00d7 44 columns</p>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 19,
"text": [
" Dr. Stephen Henson Richard Levitte Andy Polyakov \\\n",
"time \n",
"1998-12-21 10:52:45 NaN NaN NaN \n",
"1998-12-21 10:52:45 NaN NaN NaN \n",
"1998-12-21 10:52:47 NaN NaN NaN \n",
"1998-12-21 10:52:47 NaN NaN NaN \n",
"1998-12-21 10:56:30 NaN NaN NaN \n",
"\n",
" Bodo M\u00f6ller Ulf M\u00f6ller Ben Laurie Geoff Thorpe \\\n",
"time \n",
"1998-12-21 10:52:45 NaN NaN NaN NaN \n",
"1998-12-21 10:52:45 NaN NaN NaN NaN \n",
"1998-12-21 10:52:47 NaN NaN NaN NaN \n",
"1998-12-21 10:52:47 NaN NaN NaN NaN \n",
"1998-12-21 10:56:30 NaN NaN NaN NaN \n",
"\n",
" Lutz J\u00e4nicke Nils Larsch Ralf S. Engelschall \\\n",
"time \n",
"1998-12-21 10:52:45 NaN NaN 1 \n",
"1998-12-21 10:52:45 NaN NaN 1 \n",
"1998-12-21 10:52:47 NaN NaN 1 \n",
"1998-12-21 10:52:47 NaN NaN 1 \n",
"1998-12-21 10:56:30 NaN NaN 1 \n",
"\n",
" Mark J. Cox Paul C. Sutton Adam Langley \\\n",
"time \n",
"1998-12-21 10:52:45 NaN NaN NaN \n",
"1998-12-21 10:52:45 NaN NaN NaN \n",
"1998-12-21 10:52:47 NaN NaN NaN \n",
"1998-12-21 10:52:47 NaN NaN NaN \n",
"1998-12-21 10:56:30 NaN NaN NaN \n",
"\n",
" Daniel Kahn Gillmor Rob Stradling Scott Deboy stephen \\\n",
"time \n",
"1998-12-21 10:52:45 NaN NaN NaN NaN \n",
"1998-12-21 10:52:45 NaN NaN NaN NaN \n",
"1998-12-21 10:52:47 NaN NaN NaN NaN \n",
"1998-12-21 10:52:47 NaN NaN NaN NaN \n",
"1998-12-21 10:56:30 NaN NaN NaN NaN \n",
"\n",
" Trevor Perrin Carlos Alberto Lopez Perez Bodo Moeller \\\n",
"time \n",
"1998-12-21 10:52:45 NaN NaN NaN \n",
"1998-12-21 10:52:45 NaN NaN NaN \n",
"1998-12-21 10:52:47 NaN NaN NaN \n",
"1998-12-21 10:52:47 NaN NaN NaN \n",
"1998-12-21 10:56:30 NaN NaN NaN \n",
"\n",
" \n",
"time \n",
"1998-12-21 10:52:45 ... \n",
"1998-12-21 10:52:45 ... \n",
"1998-12-21 10:52:47 ... \n",
"1998-12-21 10:52:47 ... \n",
"1998-12-21 10:56:30 ... \n",
"\n",
"[5 rows x 44 columns]"
]
}
],
"prompt_number": 19
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"default_palette = sns.color_palette()"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 20
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"sns.set_palette(\"Set1\")\n",
"top_authors=authors[:10]\n",
"timelines[top_authors].cumsum().plot(style=\"o\",figsize=(20,10))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 21,
"text": [
"<matplotlib.axes.AxesSubplot at 0x109f9dd10>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAABIcAAAIzCAYAAACa+nnCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Wd4VNX+9vHvnkwmQEghkNAJRZpglA4KKEdAUFQUpKkg\nRghIApHeIVIDhF5FLCAHREGw4d+DjQdFEQMqVUR6TUJJgWRS5nkRGAkECJkJZXJ/vLyc2WWttYef\nL7ivtdY2bDabDRERERERERERyZdMd3oAIiIiIiIiIiJy5ygcEhERERERERHJxxQOiYiIiIiIiIjk\nYwqHRERERERERETyMYVDIiIiIiIiIiL5mMIhEREREREREZF8LEfhUFxcHI8++igHDhzg0KFDdO7c\nmRdffJGxY8dis9kAWLVqFe3ataNjx458//33ACQnJxMWFsaLL75Iz549OXPmTJ49iIiIiIiIiIiI\n3LqbhkOpqamMHj2aggULYrPZmDRpEv3792f58uXYbDa++eYbYmJiWLZsGStXrmTJkiVERUVhtVpZ\nsWIFVatWZfny5bRt25YFCxbcjmcSEREREREREZEcumk4NGXKFDp37oy/vz8Au3btol69egA0bdqU\nn376iT///JPatWvj7u5O4cKFCQwMZO/evURHR9O0aVMAmjRpwubNm/PwUURERERERERE5FbdMBxa\ns2YNfn5+NG7cGACbzWZfRgbg6elJQkICiYmJeHl5ZTmemJhIYmIinp6eWa4VEREREREREZG7h/lG\nJ9esWYNhGPz000/s2bOHoUOHcvbsWfv5xMREvL29KVy4MElJSfbjSUlJeHl5ZTmelJSEt7f3TQeU\nlpaO2eyW2+cREREREREREZFbcMNw6IMPPrB/fvnll4mIiGDKlCls2bKF+vXrs3HjRho1akRQUBAz\nZszAarWSkpLC/v37qVKlCrVr12bjxo0EBQWxceNG6tate9MBnT17AQB/fy9iYjTTSByjOhJnUB2J\no1RD4gyqI3EG1ZE4SjUkzqA6ujP8/b2ue+6G4dDVDMNg6NChjBo1itTUVCpVqkSrVq0wDIOuXbvS\npUsXMjIy6N+/PxaLhc6dOzNkyBC6dOmCxWIhKirK4YcRERERERERERHnMWxXbiJ0F7icHipJFGdQ\nHYkzqI7EUaohcQbVkTiD6kgcpRoSZ1Ad3Rk3mjl007eViYiIiIiIiIiI61I4JCIiIiIiIiKSjykc\n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\nIiIiItKF/T9SrzDOxgsCLAAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x109d0a950>"
]
}
],
"prompt_number": 21
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"sns.set_palette(default_palette)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 22
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see how many authors where active together, e.g. during a 3 month period:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"per_months=timelines.resample(\"3M\", how=\"sum\")\n",
"per_months[\"nauthors\"]=per_months.applymap(lambda x: min(x, 1)).sum(axis=1)\n",
"per_months[\"nauthors\"].plot(kind=\"bar\", figsize=(20,5))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 23,
"text": [
"<matplotlib.axes.AxesSubplot at 0x10a16d550>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\niuO/4+K4JsDa53rYU1W1STfc+4IKu/dO+Wv27Nqu/7j5Yg0YcFKEzeKB/QVsngcdyWgvJ46s7jPc\nrwAAcRXHf8fFcU2Atc/1sEeSCrv3VnHP47JdI7bYX8DmecBzKTmrvWGPAQBxFcd/x8VxTYAl3rMH\nAAAAAAAgRhj2AAAAAAAAxAjDHgAAAAAAgBhh2AMAAAAAABAjDHsAAAAAAABihGEPAAAAAABAjDDs\nAQAAAAAAiBGGPQAAAAAAADHCsAcAAAAAACBGGPYAAAAAAADECMMeAAAAAACAGGHYAwAAAAAAECMM\newAAAAAAAGKkw8Oe6upqjRgxQh988IFlHwAAAAAAAByFDg17mpqaNGvWLH3xi1+07gMAAAAAAICj\n0KFhzy9+8QtNmjRJZWVl1n0AAAAAAABwFNIe9jz33HMqLS3VN7/5TUlSCMG8FAAAAAAAADqmIN0v\neO6555SXl6cVK1bovffe08yZMzV//nz16tUrin4AAAAADCUSCVVVbUr68draYtXU1Lf7sX79TlR+\nfn7G+mS6i5W4rcnqzHQ0x+u+eOPtuY32Zep5kPaw5ze/+U3rP0+dOlWzZ88+7KCnZ89CFRSkXqis\nrOSIn1NbW5xy3meVlha3ybfIiUMXqxzWFG0XqxxPa4qii1VOHLpY5bCmaLtY5bCmz08XqxzWFG0X\nq5wo1rRhwwbdcO8LKuzeO62MPbu2a8HdkzVw4MCUvyaV1/Yd6XNwF6v9PZJUP9diTVZ9PJ0Zq33x\ndL3j+Nz2tCZPXaxyMnV/SHvYk67a2j0pf25ZWYl27Kg74uclm0am8nWfzbfIiUMXqxzWFG0XqxxP\na4qii1VOHLpY5bCmaLtY5bCmz08XqxzWFG0Xq5yo1lTYvbeKex531H0OJ53X9h3pE8X+Hk6q6zmQ\ne7Rrsurj6cxY7Yun6x3H57a3NXnpYpVjeX843EDyqIY9CxYsOJovBwAAAAAAgLEO/TYuAAAAAAAA\n+MSwBwAAAAAAIEYY9gAAAAAAAMQIwx4AAAAAAIAYYdgDAAAAAAAQIwx7AAAAAAAAYoRhDwAAAAAA\nQIww7AEAAAAAAIgRhj0AAAAAAAAxwrAHAAAAAAAgRhj2AAAAAAAAxAjDHgAAAAAAgBhh2AMAAAAA\nABAjDHsAAAAAAABihGEPAAAAAABAjDDsAQAAAAAAiJGCTP5liURCVVWbkn68trZYNTX1hzzer9+J\n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\nVt6zJ5FIqE+fPm0e69Onjzp1Sq+OpxxPXaxyPHWxyqFLtDmeuljleOpileOpi1UOXaLN8dTFKsdT\nF6scT12scugSbY6nLlY5nrpY5Vh1aW5u1r59+9o8tnfv3qzkeOri6Vpb5XjqYpXjqYtVjlWXZApM\nUtI0YsQITZs2TcOGDVNJSYkaGhq0fPlyDR8+PGdzPHVhTXRhTawpV7rEcU2eurCm3OjCmujCmlhT\nJrpMnz5dY8eO1QknnNCas3nzZs2cOTPjOZ66eLrWVjmeurCm6Lskk5X37JGkdevWadWqVaqvr1dx\ncbHKy8s1aNCgnM7x1MUqx1MXqxy6RJvjqYtVjqcuVjmeuljl0CXaHE9drHI8dbHK8dTFKocu0eZ4\n6mKV46mLVY5Vl6amJm3atKk1Z8CAASooSP///7fI8dTF07W2yvHUxSrHUxerHKsu7cnKd/ZIUqdO\nndTY2Kj9+/erS5cuSiQSOZ/jqYtVjqcuVjl0iTbHUxerHE9drHI8dbHKoUu0OZ66WOV46mKV46mL\nVQ5dos3x1MUqx1MXqxyLjH379mnhwoV64403VFdXp27duun000/XlClT0voNQBY5nrpIvq61VY6n\nLlY5nrpY5Vh1aU9WfvX63LlztXTpUvXv31+9evVSc3Oznn32WW3cuFFnnnlmTuZ46sKa6MKaWFOu\ndInjmjx1YU250YU10YU1saZMdLn55ptVWlqqiRMnavTo0Ro6dKiqqqr05JNP6sILL8xojqcunq61\nVY6nLqwp+i5JmbzNc5omTpx4yGMtLS1pv+u0pxxPXaxyPHWxyqFLtDmeuljleOpileOpi1UOXaLN\n8dTFKsdTF6scT12scugSbY6nLlY5nrpY5Vh1mTx5csr5Ued46uLpWlvleOpileOpi1WOVZdksvbb\nuD766KM2j23ZskX5+fk5m+Opi1WOpy5WOXSJNsdTF6scT12scjx1scqhS7Q5nrpY5XjqYpXjqYtV\nDl2izfHUxSrHUxerHKsuXbp00ZIlS1RdXa3GxkbV1NTo+eefV1FRUcZzPHXxdK2tcjx1scrx1MUq\nx6pLMll5g+Y1a9aooqJCjY2NKi4uVkNDgzp37qw777xTQ4YMyckcT11YE11YE2vKlS5xXJOnLqwp\nN7qwJrqwJtaUiS41NTWaP3/+IW8Ge+211+qYY47JaI6nLp6utVWOpy6sKfouyWTtt3FJUn19feuT\n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\nbO7N0e6LxN4kw74kx94kF9XecA9OjjPTPs5McpyZ5HJ5b9iX5Nib5Lzdg2tqatTQ0KCSkhL16NGj\nw39/TU2N6uvrVVJSktYbPLeX0a1bt6Pq4kkcz4wV7sHtszgz7XE17ElXTU2NfvnLX+qNN95QXV2d\nunXrptNPP10/+MEPdMwxx2Q0x6qLFU9r8rQ3ntbkaV+s+njaXyve1sTeRNvFgqd9scyx4GlNnvbF\nqo+n/bXiaU2e9sWqj6f9teJtTZ72Zu3atZo9e7YSiYSKiorU0NCgEIJmzZql8vLyjOZYdbHg7Vp7\nOjOe1uRpX6z6RL2mrAx7brrpJkk65OdD8/Ly0nrX6auvvlqXXHKJzjnnnNabxLJly7R48eK03lHe\nIseqi6e98bS/ks3eeFqTp32x6uNpf6X4nRmrHE9nxiqHMxNtDmcmOU9742l/pfg9nzzti1UfT/sr\nxe/MWOVYnZmJEyfqgQceUJ8+fVof27Ztm66//nr97ne/y2iOVZfvfOc7qq2tbfdjy5cvTynD07W2\nyvF0n7HK8XSfsepjtaakTH4YLE0vvfRSuOCCC8L//u//tvnfypUr08o5+F3cD5g0aVLGc6y6eNob\nT/sbgs3eeFqTp32x6uNpf0OI35mxyvF0ZqxyODPR5nBmkvO0N572N4T4PZ887YtVH0/7G0L8zoxV\njtWZae+3FrW0tITx48dnPMeqS1VVVbj00kvDnj170vq6z/J0ra1yPN1nrHI83Wes+litKZmCox8X\npe+8887TypUrVV1drdGjR3c4p7S0VHPnztXw4cNVXFys+vp6LVu2LK13grfKseriaW887a9kszee\n1uRpX6z6eNpfKX5nxirH05mxyuHMRJvDmUnO09542l8pfs8nT/ti1cfT/krxOzNWOVZnZsSIEZo2\nbZq++c1vqri4WA0NDVq+fLmGDx+e8RyrLn379tXUqVO1cuVKnXvuuWl97QGerrVVjqf7jFWOp/uM\nVR+rNSWT0+/Zs2/fPj399NNatWqV6uvrVVxcrPLyck2aNEldu3bNaI5VFyue1uRpbzytydO+WPXx\ntL9WvK2JvYm2iwVP+2KZY8HTmjzti1UfT/trxdOaPO2LVR9P+2vF25o87Y0krVu3Tn/5y1/U0NDQ\n2mXQoEFZybHqcrS8XWtPZ8bTmjzti1WfyNdk8v1BR2nx4sWxy/HUxSrHUxerHLpEm+Opi1WOpy5W\nOZ66WOXQJdocT12scjx1scrx1MUqhy7R5njqYpXjqYtVjlWXn/zkJ25yPHXxdK2tcjx1scrx1MUq\nx6rLAZ2Oflx09JYuXRq7HE9drHI8dbHKoUu0OZ66WOV46mKV46mLVQ5dos3x1MUqx1MXqxxPXaxy\n6BJtjqcuVjmeuljlWHV5//333eR46uLpWlvleOpileOpi1WOVZcDXAx7AAAAAACZU1RU5CbHUxcg\nNky/T6iDNm/eHLscT12scjx1scqpqqoyaGKT46lLCJyZKDO85XjqYpXjqYu357an+5Wn6+Spi1WO\npy5WOXSJNsdTF6scT12scqy6oH2errVVjqcuVjmeuljlWD+3szLs2bFjR7jnnnvC/fffH6qqqsJ3\nvvOdMHLkyLBixYq0crZu3RquvfbacPrpp4dBgwaFb3/722HmzJmhuro64zmeuoQQQnV1dfjpT38a\nLrzwwjB8+PBw0UUXhYqKirBz586MZnjMQftWr14dxowZEyZOnBgqKytbH58+fXpGM7zlfPLJJ+Gn\nP/1pePDBB8P69evDt7/97XD++eeHVatWpdXFU45Vl/3797f535QpU1r/OdM5nrrcf//9IYQQNm3a\nFMaOHRvOOeecMGHChLBp06a0unjKsery2muvhV//+tfhww8/DJdffnkYNmxYGD9+fHj33XcznuOp\nSwghDBs2LLz++utpfU0UGd5yrF4zWuR46hJCPF+/WuR4e93p6TU52ufpdadVjlWXOL5+9fQ62Or1\nazJZGfZcccUV4Zlnngm/+tWvwrBhw8J7770Xtm/fHiZMmJBWzpVXXhlWrFgR9u7dG/7whz+ERx55\nJPzxj38M11xzTcZzPHUJIYTvfe974Q9/+EPYvXt3SCQSYffu3eH3v/99mDZtWkYzvOXMmDEjzJgx\nI9x4441t/jdjxoy0uljkeOoSQmj9D7cNGzaESy65JCxbtiyEEMKUKVMymuEt54orrgjPPfdcePDB\nB8NZZ50VNm7cGD7++OMwefLktLp4yrHqMnTo0HD22WeHkSNHhpEjR4ZTTz01jBw5MnzrW9/KeI6n\nLgfO1/e+973w1ltvhRBCWL9+fbjiiivS6uIpx6rL2LFjwyeffBK+973vhTfffLM157LLLst4jqcu\nIYRw8cUXh2uuuSb86Ec/Ch9++GFaX2uZ4S3H6jWjRY6nLiHE8/WrRY6n151WOVZdLrroojBs2LB2\n/5fpHE9dPL3utMqx6hLH16+eXgdbvX5NpiAbPzrW1NSk8ePHS5KeffZZffWrX5Uk5efnp5Wzd+9e\nnag6SlIAAA7pSURBVHXWWZKk0aNHa8qUKfrNb36jX//61xnP8dRFkhoaGjR69OjWP5eUlOjCCy/U\nU089ldEMbzkXXHCB5syZo4qKijaP5+XlpdXFIsdTF0nq3Lmz+vfvL0l65JFH9N3vfle9e/fOeIa3\nnKamJo0ZM0aSVFlZqRNPPFGS1KlTem955inHqsuiRYv085//XDNmzNDXvvY1TZ06VQsWLEgrwyrH\nU5cD9u3bp6FDh0qSvva1r6m5uTnnc442o3Pnzjr22GOVl5enb3zjG6056bLI8dRFkrp166aHHnpI\nL730km688UZ169ZNw4cP11e+8hX94z/+Y8YyvOVYvWa0yPHURYrn61eLHE+vO61yrLrMnTtXM2bM\n0G9+8xt98YtfTOtrrXM8dfH0utMqx6pLHF+/enodbPm6sz1ZGfaUlJTovvvu06effqqWlhY988wz\nKi4uVpcuXdLK6datmx555BGdc845euWVV/SVr3xFq1evTvs/ci1yPHWRpNLSUs2dO1fDhw9XUVGR\nGhoatGzZMpWVlWU0w1vOeeedp5UrV6q6urrNvzTTZZHjqYv09ze0e/LJJzVhwgSVlZXp/vvv1w03\n3KCmpqaMZnjLKSkp0fz58/X9739fTzzxhCRpyZIlad+vPOVYdRkwYIDmzJmjWbNmacSIEWl9rXWO\npy5VVVX6/ve/r/r6ev3pT3/St771LT3xxBNpv2mkpxyrLoMGDdKdd96p0047TbfeeqvOPfdcvfba\naxowYEDGczx1+axRo0Zp1KhR+utf/6oVK1bo9ddfT2vAYpXhJcfqNaNFjqcuUjxfv1rkfPb1YnFx\nserr64/6dWe2c6y69O3bV1OnTtXKlSt17rnnpvW11jmeunh63WmVY9Uljq9fPb0Otnr9mkxeCCGY\npx7B3r17tWTJEnXt2lXnnXeefv7zn2vPnj2aMWOGjjvuuJRzdu3apYceekgbN27UySefrKuvvrp1\nOnfCCSdkNMdTF+nv/+/r008/rVWrVqm+vl7FxcUqLy/XpEmT1LVr14xleMxB++rq6vT444/riiuu\nUElJiSTpr3/9q+bMmaP58+dnLMNbzp49e7R48WJNmzat9bGHH35Y48aN0zHHHJNyF085Vl0OCCFo\n7ty5evHFF/XSSy+l/fWWOR66hBD04Ycfat26derdu7f+4R/+QfPmzdPVV1/deg5zLceqSyKR0NKl\nS/X666+rtrZWPXr00NChQzV+/Hh94QtfyGiOpy7S3/+f16uvvjrlz48qw1uO1WtGixxPXaR4vn61\nyPH2utPTa3K0z9PrTqscqy5xfP3q8XWw1evXg2Vl2CNJO3fu1Jo1a7Rv3z716NFDX//611VcXNzh\nnL1796q0tFRDhgzJWo6nLpLU2Nio999/X/X19SopKdHAgQPTeuFpleEtp6mpSe+9957q6+vVrVs3\nnXTSSR3qYpHjqYvUdn87mmOR4S3HUxernCi6ZPu57amLt+e2p/uVp+vkqcvBOZ6e29nO8XSdPHU5\nOIczgyNpbGxM+rF09tgix1MXIK6yMuz5/e9/r4ceekgnnXSSVq9ercGDB2vjxo26+eab0/r2O085\nnrpI0p///Gfdf//96tu3b+uPPG3cuFEzZszQeeedl7EMbzl0YU2syVeXOK7JUxfWlBtdWBNdWJNd\njrchgqfByPnnn6/q6mp169atzeN5eXl65ZVXMprjqYuna22V46mLVY6nLlY5kQ8rTd7mOU0TJkxo\n/XViNTU1YcaMGWH37t1h/PjxOZvjqUsIIVx22WWhrq6uzWO7d+8OY8aMyWiGtxy6RJvjqYtVjqcu\nVjmeuljl0CXaHE9drHI8dbHK8dTFKocu0eZ46mKVM2rUqDB06NDW325z4H/p/nYbTzlWXaqrq8M/\n//M/h9ra2rS+LoocT108XWurHE9dWFP0XZLJyhs079+/v/Wfv/CFL2jbtm0qKSlRS0tLzuZ46iJJ\nzc3Nh7zJVJcuXdJ6l3GLDG85dIk2x1MXqxxPXaxyPHWxyqFLtDmeuljleOpileOpi1UOXaLN8dTF\nKufpp5/WlVdeqccff1w9evRI6+/3mmPVpbS0VDfddJPeffddnX322VnN8dTF07W2yvHUxSrHUxer\nHKsuyWRl2HPxxRdr/PjxOuOMM/TWW2/p8ssv1+OPP65BgwblbI6nLpI0YcIEXXrppSovL1dJSYka\nGhr01ltv6V/+5V8ymuEthy6siTX56hLHNXnqwppyowtrogtrssvxNESwyrHqIknnnHPOUX29ZY6X\nLp6utVWOpy5WOZ66WOVYPrfbk7U3aN6wYYM2btyogQMHasCAAaqpqVFpaWlO53jqIkk7duzQ//3f\n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\nAAAASJE/ADlbTIdEo7mAAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x10a16f390>"
]
}
],
"prompt_number": 23
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So there have been 3 to 13 authors per quarter year. "
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"How much has the code base increased over time?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For now we just cound the number of files:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"cd openssl/"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"/Users/dirk/projekte/openssl-git/openssl\n"
]
}
],
"prompt_number": 24
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%time \n",
"filecounts = []\n",
"for commit in df[\"id\"]:\n",
" cfiles =! git ls-tree -r --name-only $commit\n",
" filecounts.append(len(cfiles))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"CPU times: user 16.7 s, sys: 36.6 s, total: 53.3 s\n",
"Wall time: 4min 2s\n"
]
}
],
"prompt_number": 25
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"filestats=pd.DataFrame({\"filecount\": filecounts}, index=df.index)\n",
"filestats.plot(figsize=(10,6))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 26,
"text": [
"<matplotlib.axes.AxesSubplot at 0x109d19f10>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAlkAAAFpCAYAAACvaj13AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8VOXd///XmS3LZCMhYQ1hjywGDASVTay1oqJoFRVo\naUVQaVFbbr2lojcutdBSSttb0Vt/2p8iZalb615xSwUVBAEBCYvshBDINjNJZv/+ERhBIMOSk/X9\nfDx8ZOacM3Ou83Fy8uY611zHCIfDYURERESkTlkaugEiIiIizZFCloiIiIgJFLJERERETKCQJSIi\nImIChSwREREREyhkiYiIiJjAVtvKYDDIgw8+yM6dOzEMg0ceeQSHw8H06dOxWCz06NGDmTNnYhgG\nS5cuZcmSJdhsNqZMmcKIESOorq7mvvvuo6SkBKfTyezZs0lNTa2vYxMRERFpMLWGrI8++giLxcKi\nRYtYuXIlf/rTnwCYNm0aeXl5zJw5kw8++IB+/fqxYMECXn31VbxeL2PHjmXw4MEsWrSI7Oxspk6d\nyttvv81TTz3FjBkz6uXARERERBpSrSHrhz/8IZdeeikA+/btIzk5mRUrVpCXlwfA8OHDWb58ORaL\nhdzcXOx2O3a7naysLAoKClizZg2TJ08GYNiwYcyfP9/kwxERERFpHKKOybJarUyfPp3HH3+ca665\nhmMniHc6nbhcLtxuN4mJicctd7vduN1unE7ncduKiIiItAS19mQdNXv2bA4dOsSYMWPw+XyR5W63\nm6SkJBISEvB4PJHlHo+HxMTE45Z7PB6SkpKi7isQCGKzWc/0OEREREQalVpD1uuvv05RURF33HEH\nsbGxWCwW+vbty8qVKxk0aBD5+flcfPHF5OTkMG/ePHw+H16vl+3bt9OzZ09yc3PJz88nJyeH/Px8\nBg4cGLVBpaWVpKcnUlysXq/aqEbRqUa1U32iU42iU42iU42ia8o1Sk9PPOW6WkPWyJEjmT59Oj/5\nyU8IBALMmDGDrl278tBDD+H3++nWrRsjR47EMAwmTJjAuHHjCIVCTJs2DYfDwdixY7n//vsZN24c\nDoeDuXPn1vnBiYiIiDRGRvjYQVaNQHGxq0kn2vqiGkWnGtVO9YlONYpONYpONYquKdeotp4sTUYq\nIiIiYgKFLBERERETKGSJiIiImEAhS0RERMQEClkiIiIiJlDIEhERETGBQpaIiIg0qGAwyF133cF1\n113Ju+++xZo1XzJz5gP13o6iogMsX/6fOnu/07qtjoiIiLQMSz/cxqrNB+v0PfPOy+CmH3Q/5fqi\noiIqKyt5/fV3APjqq9V1uv/TtXr1Knbv3sWQIcPq5P0UskRERKRBzZw5k717dzNnzu/o0SObrKzO\nkXUffriMpUv/jsViISenP3feOZXS0lIef3wmHo+bcBgefPARkpNTeOyxh6isrCQYDDB58i/IzR3I\njTdew6JFr2K323nqqf+lc+cutG3bjpdeegGHw87+/fu47LIf8ZOf/JyXXvr/8Xq9nH9+vzoJWgpZ\nIiIiEnHTD7rX2utkhocffpi77rqHtLTWxy2vqKjg+eef4bnnFhATE8Njj/0Pq1Z9wfLl/2HYsBGM\nHv1jNmxYz6ZNG9myZTODBl3EjTfewqFDxUyZMol//OOfGIYReb9jHxcVHeDFFxfj8/m47rqRTJgw\nkZ/+9Fb1ZImIiEjzcao7/O3bt4eyslLuvfduAKqqqti3by979uzmmmuuA6Bv3xz69s1h2bJ3ueKK\nqwBo3Todp9NJaWnJKffTrVs3LBYLsbGxxMTERNbX5d0GFbJERESkUWrXrgMZGW3485/nY7VaefPN\nf3Leeb3Zs2cX33yzgW7durN27Ro+/3wFWVldWLduDT169KS4+CBut4ukpGQcDgeHDhXTtm07tm7d\nQufOXY68u3HC/iwWC6FQqM7ar5AlIiIiDeroZbzvX9pLSUnhllvGM3XqZILBEO3atefyy0fy059O\nZNasR3jvvXewWCxMn/4QTmcCs2Y9yscff4jXW81///cMrFYr48ZN4L777qFt23YkJSWdsM8jzwDo\n1q07L774PNnZvbjsssvP/bjCddkvVgeKi11N+m7c9UU1ik41qp3qE51qFJ1qFJ1qFF1TrlF6euIp\n12meLBERERETKGSJiIiImEAhS0RERMQEClkiIiIiJlDIEhERETGBQpaIiIiICRSyREREREygkCUi\nIiJiAoUsERERERMoZImIiIiYQCFLRERExAQKWSIiIiImUMgSERERMYFCloiIiIgJFLJERERETKCQ\nJSIiImIChSwREREREyhkiYiIiJhAIUtERETEBApZIiIiIiZQyBIRERExgUKWiIiIiAkUskRERERM\noJAlIiIiYgKFLBERERETKGSJiIiImEAhS0RERMQEClkiIiIiJrA1dANEREREtuwp4+O1+5h4VS9s\n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\n4H+eXs6jdw5pst2G9aUpd63WF9WodqpPdKpRdKpRdKpRdE25RnV6uVBEREREomt0IeurrYcaugki\nIiIi56zRhSwRERGR5kAhS0RERMQEClkiIiIiJlDIEhERETGBQpaIiIiICRSyREREREygkCUiIiJi\nAoUsERERERMoZImIiIiYQCFLRERExAQKWSIiIiImUMgSERERMYFCloiIiIgJFLJERERETKCQJSIi\nImIChSwREREREyhkiYiIiJhAIUtERETEBApZIiIiIiZQyBIRERExgUKWiIiIiAkUskRERERMoJAl\nIiIiYgKFLBERERETKGSJiIiImEAhS0RERMQEClkiIiIiJlDIEhERETGBQpaIiIiICRSyREREREyg\nkCUiIiJiAoUsERERERMoZImIiIiYQCFLRERExAQKWSIiIiImUMgSERERMYFCloiIiIgJFLJERERE\nTKCQJSIiImIChSwRERERE9jO9oXXX389CQkJAGRmZnLHHXcwffp0LBYLPXr0YObMmRiGwdKlS1my\nZAk2m40pU6YwYsSIumq7iIiISKN1ViHL6/UCsGDBgsiyO++8k2nTppGXl8fMmTP54IMP6NevHwsW\nLODVV1/F6/UyduxYBg8ejMPhqJvWi4iIiDRSZxWyNm/eTFVVFbfddhuBQIBf//rXbNq0iby8PACG\nDx/O8uXLsVgs5ObmYrfbsdvtZGVlUVBQwPnnn1+nByEiIiLS2JxVyIqLi+O2225jzJgx7Ny5k0mT\nJh233ul04nK5cLvdJCYmHrfc7XafW4tFREREmoCzClmdO3cmKysr8jglJYVvvvkmst7tdpOUlERC\nQgIejyey3OPxkJSUdFr7SE9PjL5RC6caRaca1U71iU41ik41ik41iq451uisQtarr75KQUEBM2fO\npKioCI/Hw5AhQ1i5ciWDBg0iPz+fiy++mJycHObNm4fP58Pr9bJ9+3Z69OhxWvsoLnadTdNajPT0\nRNUoCtWodqpPdKpRdKpRdKpRdE25RrWFw7MKWTfeeCO/+c1vGD9+PACzZs0iJSWFhx56CL/fT7du\n3Rg5ciSGYTBhwgTGjRtHKBRi2rRpGvQuIiIiLcJZhSybzcacOXNOWH7stw2PGjNmDGPGjDmb3YiI\niIg0WZqMVERERMQEClkiIiIiJlDIEhERETGBQpaIiIiICRSyREREREygkCUiIiJiAoUsERERERMo\nZImIiIiYQCFLRERExAQKWSIiIiImUMgSERERMYFCloiIiIgJFLJERERETKCQJSIiImIChSwRERER\nEyhkiYiIiJhAIUtERETEBApZIiIiIiZQyBIRERExgUKWiIiIiAkUskRERERMoJAlIiIiYgKFLBER\nERETKGSJiIiImEAhS0RERMQEClkiIiIiJlDIEhERETGBQpaIiIiICRSyREREREygkCUiIiJiAoUs\nERERERMoZImIiIiYQCFLRERExAQKWSIiIiImUMgSERERMYFCloiIiIgJFLJERERETKCQJSIiImIC\nhSwREREREyhkiYiIiJhAIUtERETEBApZIiIiIiZQyBIRERExgc3sHYRCIR5++GG2bNmC3W7n8ccf\np1OnTmbvVkRERKRBmd6TtWzZMvx+P4sXL+bee+9l9uzZZu9SREREpMGZHrLWrFnDsGHDAOjXrx8b\nNmwwe5ciIiIiDc70y4Vut5uEhITIc6vVSigUwmI5eb57Y+5oANLTE81uWpOnGkWnGtVO9YlONYpO\nNYpONYquOdbI9J6shIQEPB5P5HltAUtERESkuTA97eTm5pKfnw/A2rVryc7ONnuXIiIiIg3OCIfD\nYTN3EA6HefjhhykoKABg1qxZdOnSxcxdioiIiDQ400OWiIiISEukwVEiIiIiJlDIEhERETGBQpaI\nCDXjR0VE6pJCViP2xRdf8PLLLwP6AyBnr7Ky8rhpVOREZWVlHDp0qKGbIU3c5s2bgZqpikSgAUPW\nzp07I48VIE7u3Xff5f333+fQoUMYhtHQzWl0XnzxRZ5//nk2btzY0E1ptBYsWMC0adMiJ3850Wuv\nvcYVV1zBokWLGropjdKLL77Ic889x5dfftnQTWnU1q9fz6RJk/B6vZoL8iRa6vm63j8JK1as4NZb\nb2XevHnMmDGDHTt2YBiGghYQDAYjjz/55BO2bNlChw4dWLBgQQO2qvHxeDzcfffdbN68GYfDwfPP\nP8+2bdsaulmNyuHDhxk5ciQlJSX88Y9/ZMCAAZF1+l2rsWbNGm677TbWrl1L3759GTp0KKBeiKPc\nbje//OUvKSgooE2bNvz+97/nvffeA1Sj76usrOTNN9+kqqqKOXPmAKrRUZWVlS36fF3vIWvx4sWM\nGTOGv/zlL7Rt25bf/OY3AC26p8br9fLYY4/x17/+lTfeeAOAPn36cOuttzJu3Dh2797N+vXrgZb9\nB/JoCA2Hw9jtdh566CHGjh2Lw+EgMbH53Y7hbBytUVpaGt26dSMrK4v58+czY8YM/vCHPwAt+3cN\nvqvR/v37mTRpEo888ghDhw6NnPhbei/E0foEg0ESEhK47777GDVqFGPGjOHxxx8HVCOo+Vu2ePFi\nAFwuF926deOTTz7h3//+N1u3bsVisbTo8/VRPp+PmJiYFnu+tj788MMPm7mDqqoq1q1bFzmxf/bZ\nZ1x11VWkpKTQvn17/vznP9OrVy+6dOlCOBxucX8Aqqur+etf/4rdbufKK69kzpw5tGvXjuzsbLp3\n705MTAwlJSWsXLmSSy65pMXVB2pC6KxZs/jqq6+oqKggKyuL1q1b06VLF5555hmWLFlCRUUFW7du\nZcCAAYRCoRZXp2NrdPDgQc477zzcbjcLFy5k6NChjB8/nhdffJEDBw6Ql5fXomu0evVqKioquOqq\nq8jMzCQQCPDKK6+Ql5dHZmZmi6wNnPh71rp1a95//3369+9PamoqPp+P999/H5vNRk5OTos8Xx/r\nb3/7G2+99RY33XQTKSkpxMbG0rZtW6qqqli0aBHXX399i63P4sWL2bBhA3379qWoqIjMzMwWe742\n9Z8jn3zyCddddx3/+te/uOuuu9izZw8ej4ePP/6YPXv28M0333DttdeycOFCoGX9C7u4uBgAm83G\n119/zfXXX0/v3r2ZNGkSH374Idu3bwfA6XQydOhQSkpKIr1cLUl1dTV/+ctfiI2N5YorrmD+/Pl8\n+eWXXHjhhQAMGTKETz/9lJ/85CcsXryYqqqqFvev7O/X6Pnnn2f58uV07tyZn/3sZ4wePZq0tDRm\nzpzJsmXLWuSYkWNrdOWVV/LUU0/xySef4Ha7sdlsdO7cmXfeeQdomb003/8MPfnkk+zdu5e2bdvy\nwgsv8Nvf/pZFixYxYcIEvvrqK/x+f4s6X8N352yArVu3kpCQQOfOnZk7dy4AXbt2BeAXv/gFJSUl\nvPXWW0DLvPqwatUq/u///o+qqiqysrK46KKLABg6dGiLO1+b1pPl9/t57rnnmDhxIj//+c85fPgw\na9euZdCgQQQCARYtWkRpaSk33HAD5eXl5OXlYRhGs//FLSwsZPbs2bz11lu43W7S0tIwDIMtW7Yw\ncOBAsrOz+eSTTzAMg169egEQHx9PXFwcHTt2JCMjo4GPoH4UFxfjdDoBeOaZZ7jzzjvJzs4mISGB\nTz/9lMzMTNLS0nA4HCQlJUXG9rWk3r5T1Sg+Pp7PP/+cCy64gCFDhlBaWorT6eTrr78mPj6ewYMH\nN3DL60+0z1GXLl0in6N9+/bRrVs3EhISGrjV9edU9YmLi2PVqlVcddVVDB8+nAMHDnDbbbdRUVFB\nYmIiubm5Ddzy+nPsObuyspLk5GRat25N9+7duemmm/jd737H0KFDSUtLw+v1YrPZSEpK4uWXX+a6\n665rEeejYz9HW7duZfPmzVgsFgoKChg+fHikt8put7e483Wdhqz9+/ezZMkS4uLiSEhIYPXq1QSD\nQfr370+3bt34wx/+wAUXXMCNN95Iq1atGDZsGP/4xz+wWCwtothQ8w2L2NhY7rjjDtauXcunn35K\nVlYWBw8exOFw0L59ewzD4KWXXuKGG24Aanq7unbt2iIC1umGUKvVimEYLFiwgBdffJFVq1YxevRo\nsrKyGvoQTBetRueddx4fffQRdrudYDDI/PnzWbx4MevXr2fUqFFkZmY29CGY7nQ/RwC9e/emsLCQ\nlStX0qNHD/2eHfkMvf/++zgcDnr37k1RURELFy5k5cqVjBo1ivbt2zf0IdSbY8/Za9asYcWKFQwe\nPJi2bdvicDhwuVy8+eabXHXVVVitVgCys7O57rrrGrjl5osWQB9//PFIAP3yyy95+eWXeeGFF1rU\n+brOQtZbb73Fww8/TJs2bfj6669ZuXIlubm5LFu2jOTkZFauXInf7+fgwYNcfvnl7Ny5kz//+c/0\n6dOHu+++uy6a0Gi98sorvPDCCxQUFLBv3z5+9rOfkZmZSXp6Ort27eLgwYN0796d1157jauuuop1\n69YRFxdHXl5es+9K/b7TCaEAixYtYtKkSVxwwQWkpaVxzz330KlTpwZuff04nRqFw2GWLFnC7bff\nzogRI8jIyOCuu+5qEQELTv8fMwsWLOCGG26gbdu2JCcn079//4Zuer043fosWrSIW265hVatWmGz\n2Zg+fXqLCFinOme3adOGgoICdu3aFfmsDBo0iFmzZtGpUye6devWIjoLjjqdAPrGG29w9dVXk5GR\nQW5ubos7X59zyNq8eTOtW7fmnXfe4eabb+aWW26hdevW/Pvf/6Zz585ceumlfPzxx8TExPCrX/2K\nt956ixEjRpCdnc1VV13FoEGD6uhQGp9wOMzcuXP5+uuvmThxIu+99x5vvfUWdrudIUOGEBcXB8Du\n3bu55ppr2L59Oy+//DKrVq1i8uTJpKenN/AR1I+zCaEOh4MBAwYQFxdHly5dGvoQTHemNVq/fj0x\nMTEMGDAAh8PRIk5oZ/M5io+PZ8CAAVitVjp06NDQh2Cqs6lPTEwMAwcOJCkpiezs7IY+BNOdzjnb\nYrGwceNG+vbtS2xsbGRoR4cOHUhNTW3oQzDdmQbQ2bNnk5mZSY8ePXA4HC3ifH2scwpZO3fu5O67\n72b06NH885//pKqqigsvvJD4+Hjy8/P59ttvGTt2LMFgkJSUFJ5++mk6d+4cuTRos9nq8FAaH8Mw\nePfdd7nuuusYMGAAqampOJ1O3n33XS688ELatWuHy+Xiq6++4pprruHCCy9k0KBB/PSnPyUtLa2h\nm2+6cwmhd9xxR4u4rHMuNbr99ttVo9P4x0xzr5E+Q6fvdM7ZHo+HdevWcdlll2GxWDAMg8zMzGYf\nsBRAz85Zp5xgMMg//vEP3G43f/vb35g+fTo33HADHTt2ZM2aNWRlZVFaWsqBAwfo3LkzCxYs4Ic/\n/CHXXHNNXba/UQuFQlxxxRXk5OQA8Pbbb3PZZZfRo0cPfve73/Hoo4/y2WefUV5eTlVVFXFxcS2m\n9wpqTmgVFRXcfPPN9OnTh/Hjx5ORkcGbb77JqFGj6N27N61atcLj8dCmTRv+67/+i7KyMtVINTqO\nalQ71ef0nc45e8WKFZSVlREKhVrUcI7T+RwdHfzvdDojU3xcfPHFDd30BnVOnxCn08nChQtZtWoV\nZWVlLFy4kOrqagYNGsTEiROprq4mPT2dHj168Oijj7aogAU1XwUfMmQITqcTt9vNxo0b6dWrF7fc\ncgtDhgxhyZIlbN68mRkzZkT+NdmSnOyENnz4cH7xi1/wu9/9jm+//fa4EGq321vciV81ik41qp3q\nc/rO5JwdGxvb0M2tV6fzOWqpAbQ2Z92TZbVaufnmm0lLS+Pqq69mzpw5PPPMM8TExBAMBvnlL39J\nbm4uMTExLb7ghmFQVFTE4MGDcblc/Pa3v6Vnz57ce++92O32hm5egzl6QguHw5ET2tSpU7nkkkso\nLS1lyZIlHD58uMWGUFCNTodqVDvV58zpnH2iM/kctbQAWptzGhR1dNzQtddey/Lly3n99dcZNWoU\n//rXv/jlL3/Z4rsJj7Vy5UqeffZZNm3axLXXXsvo0aMbukmNhk5o0alG0alGtVN9zozO2Senz9GZ\nqZOR53Fxcfz4xz/mpZdeYtSoUdx444118bbNisPh4J577mHSpEn6IJ6ETmjRqUbRqUa1U31On87Z\np6bP0ekzwnU4538wGIxMxibHa+n3+YrmlVde4eDBgzqh1UI1ik41qp3qc/p0zj41fY5OX52GLJGz\npRNadKpRdKpR7VQfqQv6HJ0+hSwRERERE7Tcr/yJiIiImEghS0RERMQEClkiIiIiJlDIEhERETGB\nQpaIiIiICRSyRKRJKy8v5/rrr6ewsJCrr766oZsjIhKhKRxEpEnbuXMnl156KTt27GjopoiIHEc9\nWSLSpN19993s37+fH//4x3Tp0gWAn//850ydOpX+/fvTuXNnXn/9dW644Qa6d+/OvffeC9TcoWLa\ntGkMGDCA/v378+c//7khD0NEmqE6uXehiEhD+d///V9GjBjBvHnzGDFiRGR5YWEha9eu5cUXX+TW\nW29l69atxMbG0qFDB/7nf/6Hv//97xiGwerVq/F6vVxxxRUMHDiQoUOHNtzBiEizopAlIk3ayUY8\nGIbBlVdeCUCnTp3o27cvrVu3BiA1NZXS0lKWLVvGunXr+PDDDwHweDxs2LBBIUtE6oxClog0S8fe\nuNZmO/FUFwqFmDNnDtdddx0AxcXFJCYm1lv7RKT505gsEWnSbDYbgUDguB6t0/k+zw9+8AOeeeYZ\nAoEAbrebYcOGsXLlSjObKiItjHqyRKRJa9u2LZ06dWLixIkYhgHUXC482eOjDMPgzjvvZOvWrVxw\nwQUEAgFuu+02hg8fXu/tF5HmS1M4iIiIiJhAlwtFRERETKCQJf+v3ToWAAAAABjkbz2KfUURADCQ\nLACAgWQBAAwkCwBgIFkAAAPJAgAYBEp9CWKhzWPyAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x10a1560d0>"
]
}
],
"prompt_number": 26
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we have seen before, at the beginning code was imported from SSLeay, so the graph starts with more than 1000 files."
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Which files have been changed most often?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The idea for the following git command comes from Gary Bernhardt's [gitchurn](https://github.com/garybernhardt/dotfiles/blob/master/bin/git-churn). We can simplify it though, because we have Python and pandas:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"file_changes =! git log --all -M -C --name-only --format='format:' | grep -v '^$'\n",
"dfc = pd.Series(list(file_changes))\n",
"dfc.value_counts()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 27,
"text": [
"CHANGES 2993\n",
"Configure 1440\n",
"Makefile.org 713\n",
"ssl/ssl.h 665\n",
"TABLE 628\n",
"util/libeay.num 567\n",
"ssl/s3_srvr.c 539\n",
"STATUS 513\n",
"ssl/ssl_lib.c 484\n",
"apps/s_server.c 439\n",
"ssl/s3_clnt.c 435\n",
"FAQ 407\n",
"ssl/t1_lib.c 387\n",
"config 384\n",
"ssl/s3_lib.c 376\n",
"...\n",
"fips/sha/fips_sha.h 1\n",
"VMS/compaq/cpq-axpvms-ssl-t0100--1.pcsi$text 1\n",
"fips/testvectors/des3/sample/TCBCinvperm.sam 1\n",
"fips/testvectors/des3/sample/TOFBvarkey.sam 1\n",
"fips/testvectors/des2/req/TCFB1permop.req 1\n",
"fips/testvectors/dsa/req/SigVer.req 1\n",
"cpq-axpvms-ssl-t0100--1.pcsi$desc 1\n",
"fips/testvectors/des3/req/TCFB8Monte2.req 1\n",
"doc/crypto/d2i_ASN1_OBJECT.pod 1\n",
"fips/testvectors/des2/sample/TCFB64MMT2.sam 1\n",
"fips/testvectors/des2/req/TECBinvperm.req 1\n",
"demos/vms_examples/ssl$simple_serv.c 1\n",
"fips-1.0/fipsalgtest.pl 1\n",
"fips/testvectors/des3/sample/TCBCvarkey.sam 1\n",
"fips/testvectors/des3/req/TCBCMonte2.req 1\n",
"Length: 4236, dtype: int64"
]
}
],
"prompt_number": 27
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"c_changes=dfc.where(dfc.str.endswith(\".c\")).value_counts()\n",
"c_changes"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 28,
"text": [
"ssl/s3_srvr.c 539\n",
"ssl/ssl_lib.c 484\n",
"apps/s_server.c 439\n",
"ssl/s3_clnt.c 435\n",
"ssl/t1_lib.c 387\n",
"ssl/s3_lib.c 376\n",
"apps/s_client.c 375\n",
"apps/apps.c 321\n",
"apps/ca.c 296\n",
"apps/speed.c 286\n",
"ssl/ssltest.c 269\n",
"crypto/x509/x509_vfy.c 248\n",
"ssl/ssl_err.c 248\n",
"ssl/s3_pkt.c 237\n",
"ssl/ssl_ciph.c 236\n",
"...\n",
"fips/ecdsa/fips_ecdsa_lib.c 1\n",
"demos/vms_examples/ssl$serv_sess_reuse.c 1\n",
"demos/err/main.c 1\n",
"crypto/evp/evp_aead.c 1\n",
"fips/sha/fips_sha1dgst.c 1\n",
"demos/vms_examples/ssl$serv_verify_client.c 1\n",
"demos/vms_examples/ssl$serv_sess_reuse_cli_ver.c 1\n",
"crypto/poly1305/poly1305_arm.c 1\n",
"engines/ccgost/md_gost.c 1\n",
"demos/vms_examples/ssl$cli_sess_renego.c 1\n",
"crypto/poly1305/poly1305.c 1\n",
"engines/ccgost/pmeth.c 1\n",
"demos/vms_examples/ssl$simple_cli.c 1\n",
"crypto/ts/ts_resp_sign.c 1\n",
"crypto/poly1305/poly1305test.c 1\n",
"Length: 1288, dtype: int64"
]
}
],
"prompt_number": 28
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"c_changes.plot()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 29,
"text": [
"<matplotlib.axes.AxesSubplot at 0x10b498390>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nmWzDhg306dOH7777jgEDBvDxxx/X6DdZUzWt7/zfK1R9NuPHj2fJkiWO5ZWXl/P222+TkpLCkiVL\nMBqNrFs8fsIrAAAWZUlEQVR3kZs21MBlL5g6cuQIEydORKvVYrPZmDlzJhMmTMBut2OxWJg6deo5\nQxykp6cTGhqKxWLh2WefxWQyUVZWxtixY+nZsyc//PADKpWK06dPY7PZ0GovfXnwokWL+M9//oNK\npSI8PJyioiI2b96M1WpFr9djsVjw9vYmMTGRhQsXcurUKRISEhg1ahStW7cmNzeXjh07cuLECZo3\nb87p06dJTU2lvLycBQsWcPvttzNp0iRsNhuKojB58mTCw8PZvHkz3bp1A6qC7rHHHqOkpIS4uDge\nfPBBBg8ezOnTp8nLy6OiooIhQ4awfft2cnJyePDBB1m0aBEGg4H169eza9cuXnrpJZKTk8nKysLd\n3R2VSkVwcDAqlYr09HQ+//xzYmJizqllxIgRfPDBB5hMJjw8POjfvz8Gg4H77ruPOXPmYLPZuO++\n+yguLqZ///4cP36cVq1a4eHhQV5eHlOnTgWgV69eTJs2ja+//hqj0cizzz7LrFmz6NSpE3/88Qft\n2rVj48aNJCUlMWbMGHr06MG9997L4MGDefXVV9m7dy979uxh6NCh+Pj4YLPZyMzMJC8vjyVLlrB+\n/XpycnJISUnhu+++44UXXgBg0qRJZGdnc8899xASEsKJEycIDw/nlVde4f3332fnzp2MHj2ayZMn\nM3HiRHbt2kWbNm2w2Wz4+/tz+PBhx/UW33//PT/++CMmk4mAgABuv/12UlJSqKysRKPREBUVRWho\nKFD1Q+revTvl5eXY7XZatmxJRkYG7u7urFmzhoCAAJ588kk+//xz3n77bQAGDRpETEwMycnJ6HQ6\ntFotffr0oVGjRixfvpzCwkL69OnDxIkTeffdd0lPT2fAgAEkJyczf/58srKyMBqNbNy4kc2bN/Pn\nn39is9l49NFH+eWXX1i5ciUhISE888wzbNy4kR49evDpp58SFhbGDz/8gMVioUWLFtx9990sWrQI\nf39/AgMDeeWVVwgODgaguLiYDz74gMcff5zg4OBz3s958+axbds2br/9dnQ6HW5ubpSWlpKXl8f3\n33+Poij07t2b7t278+2335KUlASATqcjOTmZiIgIx+cHcPfdd9OmTRsWLFhARUUF5eXl6HQ6Xn75\n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\nAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x109fa4c90>"
]
}
],
"prompt_number": 29
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As expected, a few files are changed very often and most files are changed infrequently."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What about header files?"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"h_changes=dfc.where(dfc.str.endswith(\".h\")).value_counts()\n",
"h_changes"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 30,
"text": [
"ssl/ssl.h 665\n",
"crypto/evp/evp.h 366\n",
"ssl/ssl_locl.h 343\n",
"crypto/opensslv.h 329\n",
"crypto/asn1/asn1.h 280\n",
"crypto/x509/x509.h 260\n",
"crypto/objects/obj_dat.h 234\n",
"crypto/bn/bn.h 225\n",
"e_os.h 214\n",
"crypto/objects/obj_mac.h 194\n",
"crypto/rsa/rsa.h 190\n",
"crypto/crypto.h 190\n",
"apps/apps.h 189\n",
"crypto/x509v3/x509v3.h 182\n",
"ssl/ssl3.h 176\n",
"...\n",
"engines/ccgost/keywrap.h 1\n",
"apps/term_sock.h 1\n",
"fips/sha/fips_md32_common.h 1\n",
"crypto/poly1305/poly1305.h 1\n",
"engines/vendor_defns/cswift.h 1\n",
"fips/sha/fips_sha_locl.h 1\n",
"engines/ccgost/paramset.h 1\n",
"fips/sha/fips_sha.h 1\n",
"crypto/o_dir.h 1\n",
"crypto/engine/vendor_defns/keyclient.h 1\n",
"demos/err/test_err.h 1\n",
"crypto/chacha/chacha.h 1\n",
"engines/vendor_defns/hw_4758_cca.h 1\n",
"engines/vendor_defns/hw_ubsec.h 1\n",
"engines/vendor_defns/atalla.h 1\n",
"Length: 270, dtype: int64"
]
}
],
"prompt_number": 30
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To be continued... ;-)"
]
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment