2018-02-06 22:10:21

by Mkrtchyan, Tigran

[permalink] [raw]
Subject: wrong latency info for flexfiles on layout return



Hi Trond et al.

by exploring data provided on layoutreturn I can see that some
information is wrong, in particular the IO latency completition
time for write:

{
"iostats":[
{
"deviceAddr":"tcp://192.168.178.40.128.2",
"duration":{
"seconds":5,
"nseconds":285924462
},
"readInfo":{
"bytes":0,
"latency":{
"completitionTime":{
"seconds":0,
"nseconds":0
},
"bytesRequested":0,
"opsCompleted":0,
"busyTime":{
"seconds":0,
"nseconds":0
},
"opsRequested":0,
"bytesCompleted":0,
"bytesNotDelivered":0
},
"count":0
},
"fh":"01caffee00000000b1f9635e000d00000800000000000000050130",
"writeInfo":{
"bytes":624193536,
"latency":{
"completitionTime":{
"seconds":25737,
"nseconds":816217921
},
"bytesRequested":624193536,
"opsCompleted":9526,
"busyTime":{
"seconds":5,
"nseconds":224017937
},
"opsRequested":9526,
"bytesCompleted":624193536,
"bytesNotDelivered":0
},
"count":9526
},
"deviceId":"00000001000000000000000000000000",
"open-stateid":"5a7a259b0000000100000004"
}
]
}


you can see this with wireshark as well.

Regards,
Tigran.


2018-02-06 22:29:54

by Trond Myklebust

[permalink] [raw]
Subject: Re: wrong latency info for flexfiles on layout return

T24gVHVlLCAyMDE4LTAyLTA2IGF0IDIzOjEwICswMTAwLCBNa3J0Y2h5YW4sIFRpZ3JhbiB3cm90
ZToNCj4gDQo+IEhpIFRyb25kIGV0IGFsLg0KPiANCj4gYnkgZXhwbG9yaW5nIGRhdGEgcHJvdmlk
ZWQgb24gbGF5b3V0cmV0dXJuIEkgY2FuIHNlZSB0aGF0IHNvbWUNCj4gaW5mb3JtYXRpb24gaXMg
d3JvbmcsIGluIHBhcnRpY3VsYXIgdGhlIElPIGxhdGVuY3kgY29tcGxldGl0aW9uDQo+IHRpbWUg
Zm9yIHdyaXRlOg0KPiANCj4gew0KPiAgICAiaW9zdGF0cyI6Ww0KPiAgICAgICB7DQo+ICAgICAg
ICAgICJkZXZpY2VBZGRyIjoidGNwOi8vMTkyLjE2OC4xNzguNDAuMTI4LjIiLA0KPiAgICAgICAg
ICAiZHVyYXRpb24iOnsNCj4gICAgICAgICAgICAgInNlY29uZHMiOjUsDQo+ICAgICAgICAgICAg
ICJuc2Vjb25kcyI6Mjg1OTI0NDYyDQo+ICAgICAgICAgIH0sDQo+ICAgICAgICAgICJyZWFkSW5m
byI6ew0KPiAgICAgICAgICAgICAiYnl0ZXMiOjAsDQo+ICAgICAgICAgICAgICJsYXRlbmN5Ijp7
DQo+ICAgICAgICAgICAgICAgICJjb21wbGV0aXRpb25UaW1lIjp7DQo+ICAgICAgICAgICAgICAg
ICAgICJzZWNvbmRzIjowLA0KPiAgICAgICAgICAgICAgICAgICAibnNlY29uZHMiOjANCj4gICAg
ICAgICAgICAgICAgfSwNCj4gICAgICAgICAgICAgICAgImJ5dGVzUmVxdWVzdGVkIjowLA0KPiAg
ICAgICAgICAgICAgICAib3BzQ29tcGxldGVkIjowLA0KPiAgICAgICAgICAgICAgICAiYnVzeVRp
bWUiOnsNCj4gICAgICAgICAgICAgICAgICAgInNlY29uZHMiOjAsDQo+ICAgICAgICAgICAgICAg
ICAgICJuc2Vjb25kcyI6MA0KPiAgICAgICAgICAgICAgICB9LA0KPiAgICAgICAgICAgICAgICAi
b3BzUmVxdWVzdGVkIjowLA0KPiAgICAgICAgICAgICAgICAiYnl0ZXNDb21wbGV0ZWQiOjAsDQo+
ICAgICAgICAgICAgICAgICJieXRlc05vdERlbGl2ZXJlZCI6MA0KPiAgICAgICAgICAgICB9LA0K
PiAgICAgICAgICAgICAiY291bnQiOjANCj4gICAgICAgICAgfSwNCj4gICAgICAgICAgImZoIjoi
MDFjYWZmZWUwMDAwMDAwMGIxZjk2MzVlMDAwZDAwMDAwODAwMDAwMDAwMDAwMDAwMDUwMTMwDQo+
ICIsDQo+ICAgICAgICAgICJ3cml0ZUluZm8iOnsNCj4gICAgICAgICAgICAgImJ5dGVzIjo2MjQx
OTM1MzYsDQo+ICAgICAgICAgICAgICJsYXRlbmN5Ijp7DQo+ICAgICAgICAgICAgICAgICJjb21w
bGV0aXRpb25UaW1lIjp7DQo+ICAgICAgICAgICAgICAgICAgICJzZWNvbmRzIjoyNTczNywNCj4g
ICAgICAgICAgICAgICAgICAgIm5zZWNvbmRzIjo4MTYyMTc5MjENCj4gICAgICAgICAgICAgICAg
fSwNCj4gICAgICAgICAgICAgICAgImJ5dGVzUmVxdWVzdGVkIjo2MjQxOTM1MzYsDQo+ICAgICAg
ICAgICAgICAgICJvcHNDb21wbGV0ZWQiOjk1MjYsDQo+ICAgICAgICAgICAgICAgICJidXN5VGlt
ZSI6ew0KPiAgICAgICAgICAgICAgICAgICAic2Vjb25kcyI6NSwNCj4gICAgICAgICAgICAgICAg
ICAgIm5zZWNvbmRzIjoyMjQwMTc5MzcNCj4gICAgICAgICAgICAgICAgfSwNCj4gICAgICAgICAg
ICAgICAgIm9wc1JlcXVlc3RlZCI6OTUyNiwNCj4gICAgICAgICAgICAgICAgImJ5dGVzQ29tcGxl
dGVkIjo2MjQxOTM1MzYsDQo+ICAgICAgICAgICAgICAgICJieXRlc05vdERlbGl2ZXJlZCI6MA0K
PiAgICAgICAgICAgICB9LA0KPiAgICAgICAgICAgICAiY291bnQiOjk1MjYNCj4gICAgICAgICAg
fSwNCj4gICAgICAgICAgImRldmljZUlkIjoiMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAiLA0KPiAgICAgICAgICAib3Blbi1zdGF0ZWlkIjoiNWE3YTI1OWIwMDAwMDAwMTAwMDAwMDA0
Ig0KPiAgICAgICB9DQo+ICAgIF0NCj4gfQ0KPiANCj4gDQo+IHlvdSBjYW4gc2VlIHRoaXMgd2l0
aCB3aXJlc2hhcmsgYXMgd2VsbC4NCj4gDQoNCkNhbiB5b3UgZXhwbGFpbiB3aGF0IHlvdSB0aGlu
ayBpcyB3cm9uZz8gV2l0aCB0aGUgYWJvdmUgYWdncmVnYXRlDQpjb21wbGV0aW9uIHRpbWUsIEkg
Z2V0IGFuIGF2ZXJhZ2UgcGVyLW9wIHJvdW5kLXRyaXAgdGltZSBvZg0KMjU3MzcuODE2Lzk1MjYg
PSAyLjdzLCB3aGljaCBsb29rcyBhIGxpdHRsZSBoaWdoIGdpdmVuIHRoYXQgdGhlDQpkdXJhdGlv
biBpcyBvbmx5IDUgc2Vjb25kcywgYnV0IGl0J3Mgbm90IGhvcnJpYmx5IHVubGlrZWx5IGlmIHlv
dXIgRFNlcw0KYXJlIHByb2Nlc3NpbmcgbW9zdCBvZiB0aGVzZSBvcGVyYXRpb25zIGluIHBhcmFs
bGVsLg0KDQotLSANClRyb25kIE15a2xlYnVzdA0KTGludXggTkZTIGNsaWVudCBtYWludGFpbmVy
LCBQcmltYXJ5RGF0YQ0KdHJvbmQubXlrbGVidXN0QHByaW1hcnlkYXRhLmNvbQ0K


2018-02-07 08:03:38

by Mkrtchyan, Tigran

[permalink] [raw]
Subject: Re: wrong latency info for flexfiles on layout return

If I understand you correctly, then completion time is the sum of all IO re=
quests sent from a client to the server.
Then with average per-op round-trip of 2.7s I should see at lease one reque=
st which takes longer than average.
However, the longest rpc request round-trip time I see with wireshark is 1=
70ms. Do I miss something?

Thanks,
Tigran.

----- Original Message -----
> From: "Trond Myklebust" <[email protected]>
> To: "Tigran Mkrtchyan" <[email protected]>, "linux-nfs" <linux-nfs=
@vger.kernel.org>
> Sent: Tuesday, February 6, 2018 11:29:48 PM
> Subject: Re: wrong latency info for flexfiles on layout return

> On Tue, 2018-02-06 at 23:10 +0100, Mkrtchyan, Tigran wrote:
>>=20
>> Hi Trond et al.
>>=20
>> by exploring data provided on layoutreturn I can see that some
>> information is wrong, in particular the IO latency completition
>> time for write:
>>=20
>> {
>> "iostats":[
>> {
>> "deviceAddr":"tcp://192.168.178.40.128.2",
>> "duration":{
>> "seconds":5,
>> "nseconds":285924462
>> },
>> "readInfo":{
>> "bytes":0,
>> "latency":{
>> "completitionTime":{
>> "seconds":0,
>> "nseconds":0
>> },
>> "bytesRequested":0,
>> "opsCompleted":0,
>> "busyTime":{
>> "seconds":0,
>> "nseconds":0
>> },
>> "opsRequested":0,
>> "bytesCompleted":0,
>> "bytesNotDelivered":0
>> },
>> "count":0
>> },
>> "fh":"01caffee00000000b1f9635e000d00000800000000000000050130
>> ",
>> "writeInfo":{
>> "bytes":624193536,
>> "latency":{
>> "completitionTime":{
>> "seconds":25737,
>> "nseconds":816217921
>> },
>> "bytesRequested":624193536,
>> "opsCompleted":9526,
>> "busyTime":{
>> "seconds":5,
>> "nseconds":224017937
>> },
>> "opsRequested":9526,
>> "bytesCompleted":624193536,
>> "bytesNotDelivered":0
>> },
>> "count":9526
>> },
>> "deviceId":"00000001000000000000000000000000",
>> "open-stateid":"5a7a259b0000000100000004"
>> }
>> ]
>> }
>>=20
>>=20
>> you can see this with wireshark as well.
>>=20
>=20
> Can you explain what you think is wrong? With the above aggregate
> completion time, I get an average per-op round-trip time of
> 25737.816/9526 =3D 2.7s, which looks a little high given that the
> duration is only 5 seconds, but it's not horribly unlikely if your DSes
> are processing most of these operations in parallel.
>=20
> --
> Trond Myklebust
> Linux NFS client maintainer, PrimaryData
> [email protected]
> N=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BDr=EF=BF=BD=EF=BF=BDy=EF=BF=
=BD=EF=BF=BD=EF=BF=BDb=EF=BF=BDX=EF=BF=BD=EF=BF=BD=C7=A7v=EF=BF=BD^=EF=BF=
=BD)=DE=BA{.n=EF=BF=BD+=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD{=EF=BF=BD=EF=BF=
=BD=EF=BF=BD"=EF=BF=BD=EF=BF=BD^n=EF=BF=BDr=EF=BF=BD=EF=BF=BD=EF=BF=BDz=EF=
=BF=BD=EF=BF=BD=EF=BF=BDh=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD&=EF=BF=BD=EF=
=BF=BD=EF=BF=BDG=EF=BF=BD=EF=BF=BD=EF=BF=BDh=EF=BF=BD(=EF=BF=BD=E9=9A=8E=EF=
=BF=BD=DD=A2j"=EF=BF=BD=EF=BF=BD=EF=BF=BDm=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=
=BD=EF=BF=BDz=EF=BF=BD=DE=96=EF=BF=BD=EF=BF=BD=EF=BF=BDf=EF=BF=BD=EF=BF=BD=
=EF=BF=BDh=EF=BF=BD=EF=BF=BD=EF=BF=BD~=EF=BF=BDm=EF=BF=BD

2018-02-07 11:54:32

by Trond Myklebust

[permalink] [raw]
Subject: Re: wrong latency info for flexfiles on layout return

T24gV2VkLCAyMDE4LTAyLTA3IGF0IDA5OjAzICswMTAwLCBNa3J0Y2h5YW4sIFRpZ3JhbiB3cm90
ZToNCj4gSWYgSSB1bmRlcnN0YW5kIHlvdSBjb3JyZWN0bHksIHRoZW4gY29tcGxldGlvbiB0aW1l
IGlzIHRoZSBzdW0gb2YgYWxsDQo+IElPIHJlcXVlc3RzIHNlbnQgZnJvbSBhIGNsaWVudCB0byB0
aGUgc2VydmVyLg0KDQpZZXMuIFBsZWFzZSBzZWUgdGhlIGRyYWZ0IGZsZXhmaWxlcyBzcGVjLCB3
aGljaCBkb2N1bWVudHMgdGhpcyAoYW5kDQpwbGVhc2UgbGV0IFRvbSBrbm93IGlmIHlvdSBmaW5k
IGhpcyB0ZXh0IHRvIGJlIHVuY2xlYXIpLg0KDQo+IFRoZW4gd2l0aCBhdmVyYWdlIHBlci1vcCBy
b3VuZC10cmlwIG9mIDIuN3MgSSBzaG91bGQgc2VlIGF0IGxlYXNlIG9uZQ0KPiByZXF1ZXN0IHdo
aWNoIHRha2VzIGxvbmdlciB0aGFuIGF2ZXJhZ2UuDQo+IEhvd2V2ZXIsIHRoZSBsb25nZXN0IHJw
YyByZXF1ZXN0IHJvdW5kLXRyaXAgdGltZSBJIHNlZSB3aXRoIHdpcmVzaGFyaw0KPiBpcyAgMTcw
bXMuICBEbyBJIG1pc3Mgc29tZXRoaW5nPw0KDQpJbiB0aGF0IGNhc2UsIEkgc3VzcGVjdCBtb3N0
IG9mIHRoZSAybXMgaXMgY29uZ2VzdGlvbiBpbiB5b3VyIFJQQw0KbGF5ZXIuIFRoZSBpbnRlbnRp
b24gb2YgdGhlIGxheW91dHN0YXRzIGlzIHRvIGNvbnZleSB0aGUgX2FwcGxpY2F0aW9uXw0Kdmll
dyBvZiBwZXJmb3JtYW5jZSwgc28gaXQgZG9lcyBpbmNsdWRlIHF1ZXVlIGxhdGVuY3kgd2hpbGUg
d2FpdGluZyB0bw0Kd3JpdGUgdG8gdGhlIHNvY2tldC4NCg0KPiANCj4gVGhhbmtzLA0KPiAgICBU
aWdyYW4uDQo+IA0KPiAtLS0tLSBPcmlnaW5hbCBNZXNzYWdlIC0tLS0tDQo+ID4gRnJvbTogIlRy
b25kIE15a2xlYnVzdCIgPHRyb25kbXlAcHJpbWFyeWRhdGEuY29tPg0KPiA+IFRvOiAiVGlncmFu
IE1rcnRjaHlhbiIgPHRpZ3Jhbi5ta3J0Y2h5YW5AZGVzeS5kZT4sICJsaW51eC1uZnMiIDxsaW4N
Cj4gPiB1eC1uZnNAdmdlci5rZXJuZWwub3JnPg0KPiA+IFNlbnQ6IFR1ZXNkYXksIEZlYnJ1YXJ5
IDYsIDIwMTggMTE6Mjk6NDggUE0NCj4gPiBTdWJqZWN0OiBSZTogd3JvbmcgbGF0ZW5jeSBpbmZv
IGZvciBmbGV4ZmlsZXMgb24gbGF5b3V0IHJldHVybg0KPiA+IE9uIFR1ZSwgMjAxOC0wMi0wNiBh
dCAyMzoxMCArMDEwMCwgTWtydGNoeWFuLCBUaWdyYW4gd3JvdGU6DQo+ID4gPiANCj4gPiA+IEhp
IFRyb25kIGV0IGFsLg0KPiA+ID4gDQo+ID4gPiBieSBleHBsb3JpbmcgZGF0YSBwcm92aWRlZCBv
biBsYXlvdXRyZXR1cm4gSSBjYW4gc2VlIHRoYXQgc29tZQ0KPiA+ID4gaW5mb3JtYXRpb24gaXMg
d3JvbmcsIGluIHBhcnRpY3VsYXIgdGhlIElPIGxhdGVuY3kgY29tcGxldGl0aW9uDQo+ID4gPiB0
aW1lIGZvciB3cml0ZToNCj4gPiA+IA0KPiA+ID4gew0KPiA+ID4gICAgImlvc3RhdHMiOlsNCj4g
PiA+ICAgICAgIHsNCj4gPiA+ICAgICAgICAgICJkZXZpY2VBZGRyIjoidGNwOi8vMTkyLjE2OC4x
NzguNDAuMTI4LjIiLA0KPiA+ID4gICAgICAgICAgImR1cmF0aW9uIjp7DQo+ID4gPiAgICAgICAg
ICAgICAic2Vjb25kcyI6NSwNCj4gPiA+ICAgICAgICAgICAgICJuc2Vjb25kcyI6Mjg1OTI0NDYy
DQo+ID4gPiAgICAgICAgICB9LA0KPiA+ID4gICAgICAgICAgInJlYWRJbmZvIjp7DQo+ID4gPiAg
ICAgICAgICAgICAiYnl0ZXMiOjAsDQo+ID4gPiAgICAgICAgICAgICAibGF0ZW5jeSI6ew0KPiA+
ID4gICAgICAgICAgICAgICAgImNvbXBsZXRpdGlvblRpbWUiOnsNCj4gPiA+ICAgICAgICAgICAg
ICAgICAgICJzZWNvbmRzIjowLA0KPiA+ID4gICAgICAgICAgICAgICAgICAgIm5zZWNvbmRzIjow
DQo+ID4gPiAgICAgICAgICAgICAgICB9LA0KPiA+ID4gICAgICAgICAgICAgICAgImJ5dGVzUmVx
dWVzdGVkIjowLA0KPiA+ID4gICAgICAgICAgICAgICAgIm9wc0NvbXBsZXRlZCI6MCwNCj4gPiA+
ICAgICAgICAgICAgICAgICJidXN5VGltZSI6ew0KPiA+ID4gICAgICAgICAgICAgICAgICAgInNl
Y29uZHMiOjAsDQo+ID4gPiAgICAgICAgICAgICAgICAgICAibnNlY29uZHMiOjANCj4gPiA+ICAg
ICAgICAgICAgICAgIH0sDQo+ID4gPiAgICAgICAgICAgICAgICAib3BzUmVxdWVzdGVkIjowLA0K
PiA+ID4gICAgICAgICAgICAgICAgImJ5dGVzQ29tcGxldGVkIjowLA0KPiA+ID4gICAgICAgICAg
ICAgICAgImJ5dGVzTm90RGVsaXZlcmVkIjowDQo+ID4gPiAgICAgICAgICAgICB9LA0KPiA+ID4g
ICAgICAgICAgICAgImNvdW50IjowDQo+ID4gPiAgICAgICAgICB9LA0KPiA+ID4gICAgICAgICAg
ImZoIjoiMDFjYWZmZWUwMDAwMDAwMGIxZjk2MzVlMDAwZDAwMDAwODAwMDAwMDAwMDAwMDAwMDUN
Cj4gPiA+IDAxMzANCj4gPiA+ICIsDQo+ID4gPiAgICAgICAgICAid3JpdGVJbmZvIjp7DQo+ID4g
PiAgICAgICAgICAgICAiYnl0ZXMiOjYyNDE5MzUzNiwNCj4gPiA+ICAgICAgICAgICAgICJsYXRl
bmN5Ijp7DQo+ID4gPiAgICAgICAgICAgICAgICAiY29tcGxldGl0aW9uVGltZSI6ew0KPiA+ID4g
ICAgICAgICAgICAgICAgICAgInNlY29uZHMiOjI1NzM3LA0KPiA+ID4gICAgICAgICAgICAgICAg
ICAgIm5zZWNvbmRzIjo4MTYyMTc5MjENCj4gPiA+ICAgICAgICAgICAgICAgIH0sDQo+ID4gPiAg
ICAgICAgICAgICAgICAiYnl0ZXNSZXF1ZXN0ZWQiOjYyNDE5MzUzNiwNCj4gPiA+ICAgICAgICAg
ICAgICAgICJvcHNDb21wbGV0ZWQiOjk1MjYsDQo+ID4gPiAgICAgICAgICAgICAgICAiYnVzeVRp
bWUiOnsNCj4gPiA+ICAgICAgICAgICAgICAgICAgICJzZWNvbmRzIjo1LA0KPiA+ID4gICAgICAg
ICAgICAgICAgICAgIm5zZWNvbmRzIjoyMjQwMTc5MzcNCj4gPiA+ICAgICAgICAgICAgICAgIH0s
DQo+ID4gPiAgICAgICAgICAgICAgICAib3BzUmVxdWVzdGVkIjo5NTI2LA0KPiA+ID4gICAgICAg
ICAgICAgICAgImJ5dGVzQ29tcGxldGVkIjo2MjQxOTM1MzYsDQo+ID4gPiAgICAgICAgICAgICAg
ICAiYnl0ZXNOb3REZWxpdmVyZWQiOjANCj4gPiA+ICAgICAgICAgICAgIH0sDQo+ID4gPiAgICAg
ICAgICAgICAiY291bnQiOjk1MjYNCj4gPiA+ICAgICAgICAgIH0sDQo+ID4gPiAgICAgICAgICAi
ZGV2aWNlSWQiOiIwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsDQo+ID4gPiAgICAg
ICAgICAib3Blbi1zdGF0ZWlkIjoiNWE3YTI1OWIwMDAwMDAwMTAwMDAwMDA0Ig0KPiA+ID4gICAg
ICAgfQ0KPiA+ID4gICAgXQ0KPiA+ID4gfQ0KPiA+ID4gDQo+ID4gPiANCj4gPiA+IHlvdSBjYW4g
c2VlIHRoaXMgd2l0aCB3aXJlc2hhcmsgYXMgd2VsbC4NCj4gPiA+IA0KPiA+IA0KPiA+IENhbiB5
b3UgZXhwbGFpbiB3aGF0IHlvdSB0aGluayBpcyB3cm9uZz8gV2l0aCB0aGUgYWJvdmUgYWdncmVn
YXRlDQo+ID4gY29tcGxldGlvbiB0aW1lLCBJIGdldCBhbiBhdmVyYWdlIHBlci1vcCByb3VuZC10
cmlwIHRpbWUgb2YNCj4gPiAyNTczNy44MTYvOTUyNiA9IDIuN3MsIHdoaWNoIGxvb2tzIGEgbGl0
dGxlIGhpZ2ggZ2l2ZW4gdGhhdCB0aGUNCj4gPiBkdXJhdGlvbiBpcyBvbmx5IDUgc2Vjb25kcywg
YnV0IGl0J3Mgbm90IGhvcnJpYmx5IHVubGlrZWx5IGlmIHlvdXINCj4gPiBEU2VzDQo+ID4gYXJl
IHByb2Nlc3NpbmcgbW9zdCBvZiB0aGVzZSBvcGVyYXRpb25zIGluIHBhcmFsbGVsLg0KPiA+IA0K
PiA+IC0tDQo+ID4gVHJvbmQgTXlrbGVidXN0DQo+ID4gTGludXggTkZTIGNsaWVudCBtYWludGFp
bmVyLCBQcmltYXJ5RGF0YQ0KPiA+IHRyb25kLm15a2xlYnVzdEBwcmltYXJ5ZGF0YS5jb20NCj4g
PiBO77+977+977+977+977+9cu+/ve+/vXnvv73vv73vv71i77+9WO+/ve+/vcendu+/vV7vv70p
3rp7Lm7vv70r77+977+977+977+9e++/ve+/ve+/vSLvv73vv71ebu+/vXLvv73vv73vv71677+9
77+977+9aO+/ve+/ve+/ve+/vSbvv73vv73vv71H77+977+977+9aO+/vQ0KPiA+ICjvv73pmo7v
v73domoi77+977+977+9be+/ve+/ve+/ve+/ve+/vXrvv73elu+/ve+/ve+/vWbvv73vv73vv71o
77+977+977+9fu+/vW3vv70NCj4gDQo+IA0KLS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5G
UyBjbGllbnQgbWFpbnRhaW5lciwgUHJpbWFyeURhdGENCnRyb25kLm15a2xlYnVzdEBwcmltYXJ5
ZGF0YS5jb20NCg==