Skip to content

Commit

Permalink
Measure ESP NOW latency (#7)
Browse files Browse the repository at this point in the history
* Creates the documentation for a measurement

* Add scritp to monitoring

* Create special folder for temporary measurement data

* Create function to display priniting status

* Create function to display priniting status

* Create function to display priniting status

* Save data from `A1` scenario

* Script is loading a measurement data

* Script display a graphs for all scenarios

* Scenario `A1`

* Add testing loop

* Add function to measure error messages

* Specify measured data

* Create graphs
  • Loading branch information
petrkucerak authored Jan 20, 2023
1 parent b7286a7 commit a7f7ffd
Show file tree
Hide file tree
Showing 24 changed files with 248 additions and 10 deletions.
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,8 @@
.vscode/.browse.c_cpp.db*
.vscode/c_cpp_properties.json
.vscode/launch.json
.vscode/ipch
.vscode/ipch

# generated file
measure/logs/*
!measure/logs/README.md
105 changes: 105 additions & 0 deletions measure/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# Meření

Tato složka obsahuje výsledky měření vlastností protokolu ESP NOW na zařízeních ESP32-S2.

## Infrastruktura

Měření je prováděno mezi 2 zařízeními, konkrétně `ESP32-S2-LCD` a `ESP32-S2-pico`.

## Software

Na obou dvou zařízení běží program, který se snaží simulovat v budoucnu žádaný provoz.

Konkrétně:
1. odeslat data pomocí *broadcastu/unicastu* `(device 1)`
2. počkat na data `(device 2)`
3. uložit data pomoci *handleru* `(device 2)`
4. odeslat odpověď `(device 2)`
5. počkat na odpověď `(device 1)`
6. změřit dobu celého procesu `(device 1)`

*Přesná implementace viz: [3.0.2](https://github.com/petrkucerak/rafting-button/tree/3.0.2).*

## Scénáře

Měření byly sledovány následující paramtery:
- prostředí, v němž bylo měření prováděno
- překážka mezi zařízeními
- vzdálenost mezi zařízeními
- velikost zprávy *(payload)* - maximální veliksot zprávy je 255 bajtů
- počet odeslaných zpráv
- typ odesílání: ***broadcast*** / ***unicast***
- počet chybných zpráv (až u pozdějších měření)

## Skripty

```pw
C:\.platformio\penv\Scripts\platformio.exe device monitor > measure/logs/log-<A1>.txt
```

*Skripty nejsou univerzální, záleží na místě instalace PlatformIO.*
### A scénaře

Scénáře typu A se snaží zmapovat vliv velikosti zprávy na zpoždění odeslání a typu odesílání (*broadcastu/uniscastu*).

#### Broadcast

| SCÉNÁŘ | A11 | A12 | A13 | A14 | A15 |
| -------------- | ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
| **prostředí** | byt (s WiFi sítěmi) | byt (s WiFi sítěmi) | byt (s WiFi sítěmi) | byt (s WiFi sítěmi) | byt (s WiFi sítěmi) |
| **překážka** | volný vzduch | volný vzduch | volný vzduch | volný vzduch | volný vzduch |
| **vzdálenost** | 50 cm | 50 cm | 50 cm | 50 cm | 50 cm |
| **velikost** | **1 bajt** | **10 bajt** | **50 bajt** | **120 bajt** | **250 bajt** |
| **počet** | **10 000 zpráv** | **10 000 zpráv** | **10 000 zpráv** | **1 000 zpráv** | **5 000 zpráv** |
| **typ** | **broadcast** | **broadcast** | **broadcast** | **broadcast** | **broadcast** |

#### Unicast

| SCÉNÁŘ | A21 | A22 | A23 | A24 | A25 |
| -------------- | ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
| **prostředí** | byt (s WiFi sítěmi) | byt (s WiFi sítěmi) | byt (s WiFi sítěmi) | byt (s WiFi sítěmi) | byt (s WiFi sítěmi) |
| **překážka** | volný vzduch | volný vzduch | volný vzduch | volný vzduch | volný vzduch |
| **vzdálenost** | 50 cm | 50 cm | 50 cm | 50 cm | 50 cm |
| **velikost** | **1 bajt** | **10 bajt** | **50 bajt** | **120 bajt** | **250 bajt** |
| **počet** | 10 000 zpráv | 10 000 zpráv | 10 000 zpráv | 10 000 zpráv | 10 000 zpráv |
| **typ** | **unicast** | **unicast** | **unicast** | **unicast** | **unicast** |

### B scénaře
Scénáře typu **B** se snaží analyzovat dobou odeslání v závislosti na překážce v cestě 2 modulů.

#### Scénář B1

| PARAMETR | HODNOTA |
| -------------- | ----------------------------------------------- |
| **prostředí** | byt, v kterém se je rušení několika WiFi sítěmi |
| **překážka** | zeď se skříní |
| **vzdálenost** | cca 6 m |
| **velikost** | 120 bajtů |
| **počet** | 10 000 zpráv |
| **typ** | unicast |

### C scénaře
Scénáře typu **C** se snaží analyzovat dobou odeslání v závislosti na vzdálenosti 2 modulů v čistém prostředí v obou typech odesílání (*unicast/brodcast*).

| SCÉNÁŘ | C1 | C2 | C3 | C4 | C5 | C6 |
| ------------------------ | ----------------- | ----------------- | ----------------- | ----------------- | ----------------- | ----------------- |
| **prostředí** | les (bez 2.4 GHz) | les (bez 2.4 GHz) | les (bez 2.4 GHz) | les (bez 2.4 GHz) | les (bez 2.4 GHz) | les (bez 2.4 GHz) |
| **překážka** | vzduch | vzduch | vzduch | vzduch | vzduch | vzduch |
| **vzdálenost** | **0,5 m** | **25 m** | **50 m** | **100 m** | **100 m** | **50 m** |
| **velikost** | 125 bajtů | 125 bajtů | 125 bajtů | 125 bajtů | 125 bajtů | 125 bajtů |
| **počet** | 5 000 zpráv | 5 000 zpráv | 5 000 zpráv | 5 000 zpráv | 5 000 zpráv | 5 000 zpráv |
| **počet chybných zpráv** | 0 zpráv | 3 zpráv | 15 zpráv | 35 zpráv | 15 zpráv | 6 zpráv |
| **typ** | **unicast** | **unicast** | **unicast** | **unicast** | **brodcast** | **brodcast** |

### D scénář
V rámci scénáře typu D jsem se snažil otestovat technologii při maximální vzdálenosti a poměřit úspěch úspěšně odeslaných a neodeslaných zpráv.

| SCÉNÁŘ | D1 |
| ------------------------ | ---------------- |
| **prostředí** | pole (s 2.4 GHz) |
| **překážka** | vzduch |
| **vzdálenost** | **577 m** |
| **velikost** | 125 bajtů |
| **počet** | 1 000 zpráv |
| **počet chybných zpráv** | 50 zpráv |
| **typ** | **unicast** |
42 changes: 42 additions & 0 deletions measure/data2graph.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import matplotlib.pyplot as plt
import os

dir_list = os.listdir("./measure/scenarios")
for folder in dir_list:
folder_path = "./measure/scenarios/" + folder
print(folder_path)
sub_dir_list = os.listdir(folder_path)
for file in sub_dir_list:
print("Read file: ", file)
path = folder_path + "/" + file
f = open(path)

label = file.replace("-data.txt", "") + " scenario"

x = f.readline()
y = f.readline()

f.close()

x = x.replace("time=[", "")
x = x.replace(",]\n", "")
y = y.replace("value=[", "")
y = y.replace(",]", "")

x = list(map(int, x.split(",")))
y = list(map(int, y.split(",")))

bins = 10000

# plt.hist(y, bins=bins, density=True, histtype='step', cumulative=-1, label = label)
plt.plot(x, y, label=label)

plt.xlabel("Time [μs]")
plt.ylabel("Number of messages")
plt.legend()
plt.grid(True)
plt.yscale('log')
plt.xscale('linear')
plt.title("Round-trip time with ESP NOW in different scenarios")

plt.show()
3 changes: 3 additions & 0 deletions measure/logs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Logs

Tato složka obashuje dočasné soubory, které se generují při měření. Celá složka je v `.gitignore` pravidle, tedy se nic nenahrává na git.
2 changes: 2 additions & 0 deletions measure/scenarios/A1x/A11-data.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
time=[3695,3704,3707,3708,3709,3711,3712,3713,3714,3715,3716,3717,3718,3719,3720,3721,3723,3724,3726,3727,3728,3729,3730,3731,3732,3733,3734,3736,3737,3738,3739,3740,3742,3743,3744,3745,3746,3747,3748,3749,3750,3751,3752,3753,3754,3755,3756,3757,3758,3759,3760,3761,3762,3763,3764,3765,3766,3767,3768,3770,3772,3773,3774,3776,3777,3778,3779,3781,3782,3783,3784,3786,3787,3788,3789,3791,3793,3795,3797,3799,3802,3804,3805,3807,3810,3811,3813,3814,3816,3817,3818,3819,3820,3821,3823,3824,3825,3826,3827,3828,3829,3831,3833,3834,3835,3836,3837,3841,3842,3844,3845,3847,3850,3852,3853,3855,3856,3857,3864,3865,3866,3867,3868,3869,3871,3872,3873,3874,3875,3877,3878,3879,3880,3881,3882,3883,3885,3886,3887,3888,3896,3897,3898,3900,3903,3904,3905,3906,3907,3908,3909,3911,3914,3915,3917,3919,3920,3922,3923,3924,3927,3928,3930,3933,3934,3935,3936,3937,3938,3939,3941,3943,3944,3946,3948,3949,3950,3953,3954,3955,3956,3960,3962,3963,3965,3968,3973,3974,3976,3978,3981,3984,3989,3991,3992,3994,3995,3996,3997,3998,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,4012,4014,4016,4019,4022,4025,4029,4030,4032,4036,4040,4043,4044,4045,4046,4048,4049,4051,4052,4053,4054,4057,4062,4063,4064,4065,4066,4067,4068,4070,4071,4074,4075,4079,4081,4082,4084,4085,4086,4090,4092,4093,4094,4098,4100,4102,4103,4104,4106,4108,4110,4111,4112,4113,4119,4123,4124,4125,4127,4128,4130,4131,4132,4133,4134,4135,4136,4137,4138,4140,4141,4142,4143,4146,4148,4149,4151,4152,4153,4158,4159,4162,4165,4167,4168,4173,4176,4178,4179,4181,4187,4190,4191,4192,4193,4194,4195,4201,4202,4203,4204,4205,4206,4208,4209,4210,4211,4212,4213,4214,4218,4221,4223,4224,4226,4227,4228,4229,4231,4233,4234,4235,4236,4237,4238,4240,4241,4242,4243,4244,4245,4246,4248,4249,4250,4251,4252,4253,4254,4255,4256,4257,4258,4259,4260,4262,4264,4265,4266,4269,4270,4272,4273,4275,4276,4277,4278,4279,4280,4281,4282,4283,4284,4285,4286,4287,4288,4289,4290,4291,4292,4293,4294,4295,4296,4297,4299,4301,4304,4306,4307,4309,4311,4313,4314,4315,4317,4319,4322,4324,4326,4328,4329,4330,4331,4332,4336,4337,4338,4339,4340,4343,4346,4348,4349,4351,4354,4355,4356,4358,4360,4364,4365,4368,4369,4373,4374,4376,4377,4378,4379,4380,4381,4382,4383,4385,4386,4387,4388,4389,4391,4393,4394,4396,4397,4398,4399,4401,4407,4409,4410,4412,4413,4414,4415,4416,4417,4419,4420,4422,4425,4426,4428,4429,4430,4431,4432,4436,4437,4438,4439,4440,4441,4442,4443,4444,4445,4446,4447,4448,4449,4450,4451,4452,4454,4455,4456,4459,4462,4467,4468,4473,4474,4476,4477,4478,4480,4481,4485,4486,4488,4489,4491,4493,4494,4495,4497,4499,4500,4501,4503,4504,4505,4506,4507,4508,4509,4510,4511,4512,4513,4515,4516,4521,4522,4525,4528,4529,4531,4534,4535,4537,4538,4542,4544,4545,4547,4550,4553,4554,4555,4556,4561,4562,4563,4564,4565,4566,4568,4570,4571,4573,4576,4579,4581,4582,4586,4587,4588,4589,4590,4591,4593,4594,4596,4597,4598,4601,4602,4603,4604,4610,4611,4612,4613,4614,4616,4617,4619,4620,4622,4624,4625,4627,4628,4629,4630,4631,4632,4633,4634,4635,4636,4637,4639,4640,4641,4646,4648,4649,4650,4651,4652,4653,4654,4655,4656,4658,4660,4662,4663,4664,4665,4666,4667,4668,4669,4670,4671,4672,4674,4675,4676,4677,4678,4680,4681,4682,4683,4684,4685,4686,4687,4688,4689,4690,4692,4693,4694,4695,4697,4698,4700,4703,4704,4705,4709,4717,4721,4722,4723,4724,4725,4728,4729,4730,4732,4735,4736,4737,4739,4742,4744,4747,4749,4750,4751,4752,4753,4754,4755,4756,4757,4759,4760,4761,4762,4770,4772,4778,4779,4780,4782,4784,4786,4789,4797,4802,4803,4804,4805,4807,4808,4813,4815,4816,4818,4820,4821,4823,4824,4825,4826,4827,4828,4829,4830,4831,4834,4836,4839,4841,4842,4844,4845,4846,4847,4849,4850,4852,4858,4863,4871,4875,4879,4880,4881,4882,4883,4884,4885,4886,4888,4890,4895,4901,4902,4928,4934,4941,4948,4962,4975,4992,4998,5002,5003,5004,5006,5008,5021,5022,5031,5041,5043,5048,5051,5056,5061,5063,5064,5065,5066,5068,5069,5071,5073,5075,5077,5082,5083,5085,5086,5088,5091,5093,5094,5097,5100,5102,5106,5108,5109,5110,5118,5121,5122,5125,5128,5129,5130,5132,5133,5134,5135,5136,5138,5139,5140,5141,5145,5149,5152,5155,5159,5162,5166,5168,5174,5176,5179,5181,5182,5184,5189,5190,5194,5195,5199,5203,5204,5207,5208,5210,5212,5213,5214,5216,5217,5219,5220,5221,5227,5228,5229,5231,5234,5236,5239,5240,5243,5244,5248,5249,5250,5253,5255,5256,5257,5258,5259,5260,5261,5262,5263,5265,5268,5271,5272,5274,5275,5280,5284,5288,5291,5294,5295,5296,5299,5307,5309,5314,5315,5317,5318,5323,5325,5333,5334,5338,5339,5341,5342,5362,5364,5370,5376,5378,5380,5381,5383,5384,5386,5387,5390,5395,5397,5401,5403,5405,5406,5417,5418,5422,5425,5428,5431,5433,5446,5449,5458,5459,5462,5465,5468,5470,5471,5472,5476,5483,5484,5488,5489,5495,5501,5503,5505,5506,5507,5509,5510,5512,5520,5521,5525,5540,5545,5550,5554,5560,5561,5565,5567,5568,5571,5576,5585,5588,5592,5593,5597,5600,5601,5606,5609,5610,5611,5612,5615,5618,5621,5624,5625,5627,5629,5630,5631,5632,5633,5634,5635,5636,5637,5639,5640,5646,5648,5651,5652,5653,5657,5659,5665,5670,5671,5672,5674,5675,5678,5679,5683,5684,5685,5686,5687,5688,5689,5690,5692,5695,5698,5705,5709,5711,5716,5718,5724,5726,5727,5741,5751,5752,5754,5755,5756,5757,5758,5759,5761,5763,5765,5784,5785,5793,5795,5797,5802,5803,5810,5812,5813,5817,5818,5822,5828,5831,5834,5835,5839,5844,5846,5848,5849,5855,5860,5863,5864,5868,5872,5874,5875,5877,5878,5879,5880,5881,5883,5887,5888,5896,5899,5906,5909,5921,5923,5928,5934,5939,5941,5942,5946,5953,5955,5956,5962,5968,5978,5984,5987,5990,5992,5998,6000,6001,6002,6003,6004,6005,6006,6011,6022,6028,6033,6034,6042,6043,6045,6047,6048,6049,6051,6052,6062,6065,6068,6070,6072,6073,6078,6082,6085,6086,6087,6088,6090,6091,6094,6098,6099,6100,6104,6106,6109,6116,6120,6127,6130,6131,6132,6133,6135,6137,6138,6140,6161,6166,6169,6170,6171,6175,6176,6178,6179,6181,6187,6192,6193,6194,6198,6200,6205,6207,6213,6215,6217,6220,6223,6229,6230,6232,6235,6245,6246,6248,6250,6253,6254,6255,6256,6257,6258,6259,6260,6261,6262,6264,6265,6271,6279,6282,6283,6288,6290,6293,6294,6295,6297,6301,6304,6307,6314,6317,6318,6319,6322,6323,6326,6330,6335,6337,6345,6348,6353,6354,6358,6359,6362,6365,6370,6373,6378,6380,6381,6382,6383,6385,6386,6387,6392,6393,6396,6419,6426,6428,6431,6433,6436,6444,6463,6466,6468,6471,6476,6477,6488,6494,6500,6501,6503,6505,6506,6507,6509,6511,6512,6514,6515,6521,6524,6528,6531,6533,6540,6542,6544,6558,6566,6568,6570,6571,6583,6587,6588,6593,6595,6598,6599,6601,6611,6612,6618,6628,6629,6630,6631,6632,6633,6634,6636,6637,6638,6639,6644,6646,6648,6651,6660,6662,6664,6668,6669,6672,6676,6679,6680,6681,6682,6685,6688,6690,6691,6692,6695,6697,6700,6709,6716,6723,6728,6732,6742,6744,6747,6749,6752,6753,6754,6755,6756,6757,6774,6775,6777,6778,6780,6784,6786,6805,6811,6827,6828,6831,6834,6839,6841,6844,6845,6855,6856,6858,6860,6865,6869,6875,6878,6879,6880,6881,6883,6888,6903,6904,6908,6909,6937,6948,6949,6967,6968,6969,6976,6982,6984,6994,7000,7002,7003,7004,7006,7009,7010,7021,7027,7030,7043,7050,7055,7056,7066,7072,7076,7090,7095,7118,7127,7128,7130,7132,7133,7134,7135,7138,7154,7159,7179,7189,7191,7192,7201,7214,7219,7222,7226,7233,7240,7241,7245,7250,7255,7256,7257,7258,7259,7262,7264,7272,7273,7289,7291,7301,7304,7310,7311,7318,7333,7336,7358,7363,7364,7367,7378,7380,7381,7384,7385,7387,7390,7401,7402,7403,7410,7420,7428,7439,7453,7478,7486,7488,7505,7506,7507,7509,7532,7539,7546,7566,7569,7572,7577,7585,7588,7605,7609,7622,7627,7629,7630,7631,7632,7633,7634,7636,7637,7660,7672,7678,7712,7742,7754,7755,7757,7761,7778,7803,7809,7816,7818,7819,7822,7833,7839,7842,7845,7850,7861,7871,7877,7878,7879,7880,7881,7883,7885,7888,7894,7903,7905,7907,7937,7948,7957,7973,7984,7986,7990,8002,8003,8004,8006,8007,8027,8036,8052,8060,8132,8133,8135,8138,8155,8174,8187,8223,8230,8247,8255,8256,8257,8279,8284,8285,8286,8290,8292,8299,8304,8308,8311,8345,8359,8368,8376,8378,8380,8381,8383,8400,8418,8428,8435,8471,8472,8475,8485,8486,8487,8505,8506,8507,8512,8521,8524,8565,8577,8601,8618,8630,8632,8633,8634,8636,8655,8656,8676,8681,8686,8690,8692,8697,8726,8748,8753,8754,8755,8757,8764,8770,8791,8794,8797,8804,8825,8833,8840,8855,8876,8879,8880,8881,8887,8934,8944,8950,8952,8974,8977,8984,9000,9001,9002,9003,9004,9006,9009,9010,9020,9064,9087,9123,9125,9132,9133,9135,9138,9151,9165,9189,9224,9253,9255,9256,9257,9259,9284,9314,9319,9359,9365,9380,9381,9383,9384,9430,9443,9482,9505,9506,9507,9509,9537,9540,9547,9568,9579,9629,9630,9633,9634,9674,9688,9699,9744,9754,9757,9825,9880,9881,9885,9901,9917,9948,9954,]
value=[2,1,1,2,4,3,1,1,1,7,2,8,4,4,1,1,4,4,4,3,7,2,5,1,11,1,5,9,1,7,1,9,4,1,6,1,7,2,4,3,5,1,8,1,6,2,7,2,11,2,3,4,4,2,3,3,5,2,5,3,2,2,4,5,1,2,2,4,2,1,1,2,2,3,1,1,1,1,3,2,2,1,1,4,1,2,2,1,1,2,2,3,4,3,3,3,10,7,5,2,5,7,4,4,6,5,1,1,2,1,2,2,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,5,3,10,15,177,289,156,3,63,4,3,1,2,1,2,1,1,1,1,1,1,1,1,1,1,3,2,3,1,1,1,1,1,1,2,1,2,4,1,5,6,3,9,3,2,2,1,2,2,1,1,1,1,1,1,1,1,1,3,3,1,3,2,1,2,1,1,1,3,1,1,4,3,3,2,125,191,80,2,41,7,1,4,2,1,1,1,1,1,3,1,1,2,2,1,3,2,1,1,3,2,3,4,3,1,1,2,1,2,3,4,6,2,2,1,4,1,1,1,1,1,3,1,1,2,1,2,1,1,4,1,1,1,1,2,1,1,1,1,2,2,1,1,3,5,8,3,363,371,2,69,3,1,6,4,2,1,2,1,2,1,1,1,1,1,1,1,2,1,1,3,1,1,2,1,1,3,2,3,1,2,1,1,2,1,1,1,1,3,3,1,1,1,1,2,1,1,1,2,2,2,4,1,1,1,2,1,1,2,3,2,3,6,1,1,1,1,2,2,2,4,3,16,2,180,343,254,5,57,4,10,2,1,1,1,1,3,2,3,2,2,2,1,4,3,3,3,3,1,3,2,2,6,2,8,2,1,1,1,1,1,2,2,3,3,1,4,1,2,6,3,5,2,2,1,1,1,1,1,1,4,1,1,2,1,2,3,2,2,4,1,1,1,1,3,1,1,1,1,1,4,1,4,1,7,1,200,396,5,64,3,4,4,1,4,1,2,1,1,2,1,2,1,1,1,1,2,1,1,3,3,1,2,1,2,1,1,3,6,2,1,2,1,1,2,2,2,2,2,1,1,5,3,1,2,1,1,2,1,3,2,4,1,1,2,1,1,2,1,1,2,1,1,1,1,2,1,1,2,1,2,1,2,3,2,16,3,258,335,129,1,63,5,2,14,1,3,1,2,1,1,2,2,1,2,2,2,2,2,1,2,1,3,3,1,4,3,3,1,8,4,8,1,5,2,2,1,1,1,1,3,1,2,2,1,2,3,1,1,1,3,1,4,1,2,1,4,2,2,3,1,1,1,5,2,1,2,3,7,1,178,179,5,165,72,200,2,40,4,5,1,1,1,3,1,1,3,2,3,3,1,5,1,1,6,1,2,7,1,6,10,1,1,9,7,8,2,3,4,9,10,3,2,1,9,7,8,1,7,6,16,6,2,1,9,4,1,7,3,1,1,3,2,3,2,3,1,1,2,1,1,1,1,1,1,2,2,2,2,1,3,4,9,1,220,176,2,53,1,1,4,1,1,1,2,2,2,1,7,1,1,2,1,1,1,1,1,1,3,1,1,2,1,1,1,1,1,2,2,10,2,2,7,6,3,12,1,1,4,1,1,2,1,1,2,1,1,1,1,37,51,16,2,13,1,2,1,1,1,1,2,1,1,1,1,1,1,1,4,1,10,17,7,1,1,1,1,1,1,3,1,1,2,1,1,1,2,1,3,1,1,2,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,2,1,1,1,1,1,1,1,1,66,45,1,13,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,3,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,3,1,2,1,2,18,49,20,1,5,2,1,2,1,1,1,2,1,1,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,2,3,24,38,10,1,2,2,1,1,1,2,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,30,58,17,7,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,2,25,19,1,16,11,15,1,5,2,2,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,3,1,1,3,2,1,1,1,1,1,3,1,1,1,2,1,1,1,1,1,26,22,1,22,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,1,2,2,1,1,1,1,1,1,2,1,1,1,2,4,5,18,31,18,7,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,2,2,1,16,13,7,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,37,34,7,1,2,1,1,1,1,1,1,1,2,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,20,39,20,2,6,3,2,1,2,1,1,1,1,1,3,1,1,1,1,2,1,1,1,2,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,4,22,44,1,5,1,2,2,1,1,1,2,1,1,1,2,1,1,2,1,1,1,1,1,1,1,2,3,2,27,23,12,3,1,1,1,2,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,20,18,2,10,8,13,2,1,2,2,2,1,1,1,1,2,2,1,1,1,1,1,3,2,1,1,3,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,21,30,1,14,1,1,1,1,1,1,1,2,1,1,3,1,2,1,2,1,1,1,2,1,1,1,1,1,1,19,20,6,6,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,7,2,1,1,1,1,2,1,1,1,3,1,1,1,1,1,1,1,1,1,2,19,16,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,13,15,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,20,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,4,20,5,3,1,1,1,1,1,1,1,1,1,1,1,1,2,4,4,1,2,2,2,4,1,1,1,1,1,1,8,11,5,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,12,3,3,1,1,2,1,1,1,1,1,1,1,1,1,1,7,5,3,1,1,1,1,1,1,3,4,1,1,1,1,1,1,1,1,6,10,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,11,1,1,1,1,1,2,1,1,1,1,1,8,8,4,2,1,1,3,1,1,1,3,1,2,2,2,1,1,1,1,1,1,2,1,1,1,1,3,9,3,1,1,1,1,1,1,1,1,1,1,1,2,6,2,1,1,1,1,1,1,1,1,1,1,4,5,2,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,3,8,3,4,2,1,1,1,1,3,6,1,1,1,1,1,5,3,2,2,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,]
Loading

0 comments on commit a7f7ffd

Please # to comment.