-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 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
1 parent
b7286a7
commit a7f7ffd
Showing
24 changed files
with
248 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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** | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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,] |
Oops, something went wrong.