From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============2956276330052618840==" MIME-Version: 1.0 From: Kumaraparameshwaran Rathnavel Subject: Re: [SPDK] Performance Date: Tue, 06 Dec 2016 18:38:32 +0530 Message-ID: In-Reply-To: CANvN+ekyYV+TnoCuRf5zSi6Fcjbp7h2=JvE_kZhfkmvXGVOo8Q@mail.gmail.com List-ID: To: spdk@lists.01.org --===============2956276330052618840== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable What was the Reactor mask and did you assign different cores=10? What was t= he queues per connection number in the target side? I had all as default va= lues. Regards, Param. > On 06-Dec-2016, at 6:35 PM, Andrey Kuzmin w= rote: > = > Same as yours, essentially, although run about a year ago. > = > On Dec 6, 2016 15:57, "Kumaraparameshwaran Rathnavel" > wrote: > Can you briefly describe your setup if you don=E2=80=99t mind. > = > It will be of great help. > = > Regards, > Param. >> On 06-Dec-2016, at 6:24 PM, Andrey Kuzmin > wrote: >> = >> = >> = >> On Tue, Dec 6, 2016, 15:49 Kumaraparameshwaran Rathnavel > wrote: >> The setup is the default setup of NVMf target with Direct attached Subsy= stem. The FIO plugin was at the target side and the IOPS from SPDK was foun= d to be around 2.5K and the IOPS from kernel was found to be 100k. >> = >> Sounds like a setup issue to me. In my tests, SPDK typically matched or = surpassed kernel stack in IOPS while using 2-3x less CPU. >> = >> Regards, >> Andrey >> = >> Regards, >> Param. >> = >>> On 06-Dec-2016, at 5:57 PM, Andrey Kuzmin > wrote: >>> = >>> = >>> = >>> On Tue, Dec 6, 2016, 15:24 Kumaraparameshwaran Rathnavel > wrote: >>> Hi All, >>> = >>> Is there any benchmarking done to prove that SPDK is better than the Ke= rnel driver? >>> = >>> We did run the sample driver provided from the SPDK and compared with t= he kernel interface and found that SPDK is very slow. We did run FIO. >>> = >>> It's worth publishing your setup and results first. >>> = >>> Regards, >>> Andrey >>> = >>> Can you describe the setup for the performance measurement between Kern= el and SPDK driver. >>> = >>> Regards, >>> Param. >>> _______________________________________________ >>> SPDK mailing list >>> SPDK(a)lists.01.org >>> https://lists.01.org/mailman/listinfo/spdk >>> -- = >>> Regards, >>> Andrey >>> = >>> _______________________________________________ >>> SPDK mailing list >>> SPDK(a)lists.01.org >>> https://lists.01.org/mailman/listinfo/spdk >> = >> _______________________________________________ >> SPDK mailing list >> SPDK(a)lists.01.org >> https://lists.01.org/mailman/listinfo/spdk >> -- = >> Regards, >> Andrey >> = >> _______________________________________________ >> SPDK mailing list >> SPDK(a)lists.01.org >> https://lists.01.org/mailman/listinfo/spdk > = > _______________________________________________ > SPDK mailing list > SPDK(a)lists.01.org > https://lists.01.org/mailman/listinfo/spdk > = > _______________________________________________ > SPDK mailing list > SPDK(a)lists.01.org > https://lists.01.org/mailman/listinfo/spdk --===============2956276330052618840== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0 L2h0bWwgY2hhcnNldD11dGYtOCI+PC9oZWFkPjxib2R5IHN0eWxlPSJ3b3JkLXdyYXA6IGJyZWFr LXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBhZnRl ci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPldoYXQgd2FzIHRoZSBSZWFjdG9yIG1hc2sgYW5kIGRp ZCB5b3UgYXNzaWduIGRpZmZlcmVudCBjb3JlcxA/IFdoYXQgd2FzIHRoZSBxdWV1ZXMgcGVyIGNv bm5lY3Rpb24gbnVtYmVyIGluIHRoZSB0YXJnZXQgc2lkZT8gSSBoYWQgYWxsIGFzIGRlZmF1bHQg dmFsdWVzLjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPjwvZGl2PjxkaXYgY2xhc3M9IiI+UmVn YXJkcyw8L2Rpdj48ZGl2IGNsYXNzPSIiPlBhcmFtLjxiciBjbGFzcz0iIj48ZGl2PjxibG9ja3F1 b3RlIHR5cGU9ImNpdGUiIGNsYXNzPSIiPjxkaXYgY2xhc3M9IiI+T24gMDYtRGVjLTIwMTYsIGF0 IDY6MzUgUE0sIEFuZHJleSBLdXptaW4gJmx0OzxhIGhyZWY9Im1haWx0bzphbmRyZXkudi5rdXpt aW5AZ21haWwuY29tIiBjbGFzcz0iIj5hbmRyZXkudi5rdXptaW5AZ21haWwuY29tPC9hPiZndDsg d3JvdGU6PC9kaXY+PGJyIGNsYXNzPSJBcHBsZS1pbnRlcmNoYW5nZS1uZXdsaW5lIj48ZGl2IGNs YXNzPSIiPjxkaXYgZGlyPSJhdXRvIiBjbGFzcz0iIj5TYW1lIGFzIHlvdXJzLCBlc3NlbnRpYWxs eSwgYWx0aG91Z2ggcnVuIGFib3V0IGEgeWVhciBhZ28uPC9kaXY+PGRpdiBjbGFzcz0iZ21haWxf ZXh0cmEiPjxiciBjbGFzcz0iIj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+T24gRGVjIDYsIDIw MTYgMTU6NTcsICJLdW1hcmFwYXJhbWVzaHdhcmFuIFJhdGhuYXZlbCIgJmx0OzxhIGhyZWY9Im1h aWx0bzprcmF0aEBjbG91ZHNpbXBsZS5jb20iIGNsYXNzPSIiPmtyYXRoQGNsb3Vkc2ltcGxlLmNv bTwvYT4mZ3Q7IHdyb3RlOjxiciB0eXBlPSJhdHRyaWJ1dGlvbiIgY2xhc3M9IiI+PGJsb2NrcXVv dGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7Ym9yZGVyLWxl ZnQ6MXB4ICNjY2Mgc29saWQ7cGFkZGluZy1sZWZ0OjFleCI+PGRpdiBzdHlsZT0id29yZC13cmFw OmJyZWFrLXdvcmQiIGNsYXNzPSIiPkNhbiB5b3UgYnJpZWZseSBkZXNjcmliZSB5b3VyIHNldHVw IGlmIHlvdSBkb27igJl0IG1pbmQuPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+PC9kaXY+PGRp diBjbGFzcz0iIj5JdCB3aWxsIGJlIG9mIGdyZWF0IGhlbHAuPC9kaXY+PGRpdiBjbGFzcz0iIj48 YnIgY2xhc3M9IiI+PC9kaXY+PGRpdiBjbGFzcz0iIj5SZWdhcmRzLDwvZGl2PjxkaXYgY2xhc3M9 IiI+UGFyYW0uPGJyIGNsYXNzPSIiPjxkaXYgY2xhc3M9IiI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0 ZSIgY2xhc3M9IiI+PGRpdiBjbGFzcz0iIj5PbiAwNi1EZWMtMjAxNiwgYXQgNjoyNCBQTSwgQW5k cmV5IEt1em1pbiAmbHQ7PGEgaHJlZj0ibWFpbHRvOmFuZHJleS52Lmt1em1pbkBnbWFpbC5jb20i IHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iIj5hbmRyZXkudi5rdXptaW5AZ21haWwuY29tPC9hPiZn dDsgd3JvdGU6PC9kaXY+PGJyIGNsYXNzPSJtXzc1NDMwNzkwNTEwNjA4NjE5OTdBcHBsZS1pbnRl cmNoYW5nZS1uZXdsaW5lIj48ZGl2IGNsYXNzPSIiPjxiciBzdHlsZT0iZm9udC1mYW1pbHk6SGVs dmV0aWNhO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBz Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3RleHQtYWxp Z246c3RhcnQ7dGV4dC1pbmRlbnQ6MHB4O3RleHQtdHJhbnNmb3JtOm5vbmU7d2hpdGUtc3BhY2U6 bm9ybWFsO3dvcmQtc3BhY2luZzowcHgiIGNsYXNzPSIiPjxiciBzdHlsZT0iZm9udC1mYW1pbHk6 SGVsdmV0aWNhO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudC1j YXBzOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3RleHQt YWxpZ246c3RhcnQ7dGV4dC1pbmRlbnQ6MHB4O3RleHQtdHJhbnNmb3JtOm5vbmU7d2hpdGUtc3Bh Y2U6bm9ybWFsO3dvcmQtc3BhY2luZzowcHgiIGNsYXNzPSIiPjxkaXYgY2xhc3M9ImdtYWlsX3F1 b3RlIiBzdHlsZT0iZm9udC1mYW1pbHk6SGVsdmV0aWNhO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtc3R5 bGU6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7bGV0 dGVyLXNwYWNpbmc6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7dGV4dC1pbmRlbnQ6MHB4O3RleHQt dHJhbnNmb3JtOm5vbmU7d2hpdGUtc3BhY2U6bm9ybWFsO3dvcmQtc3BhY2luZzowcHgiPjxkaXYg ZGlyPSJsdHIiIGNsYXNzPSIiPk9uIFR1ZSwgRGVjIDYsIDIwMTYsIDE1OjQ5IEt1bWFyYXBhcmFt ZXNod2FyYW4gUmF0aG5hdmVsICZsdDs8YSBocmVmPSJtYWlsdG86a3JhdGhAY2xvdWRzaW1wbGUu Y29tIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9IiI+a3JhdGhAY2xvdWRzaW1wbGUuY29tPC9hPiZn dDsgd3JvdGU6PGJyIGNsYXNzPSIiPjwvZGl2PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90 ZSIgc3R5bGU9Im1hcmdpbjowcHggMHB4IDBweCAwLjhleDtib3JkZXItbGVmdC13aWR0aDoxcHg7 Ym9yZGVyLWxlZnQtY29sb3I6cmdiKDIwNCwyMDQsMjA0KTtib3JkZXItbGVmdC1zdHlsZTpzb2xp ZDtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2IGNsYXNzPSJtXzc1NDMwNzkwNTEwNjA4NjE5OTdnbWFp bF9tc2ciIHN0eWxlPSJ3b3JkLXdyYXA6YnJlYWstd29yZCI+VGhlIHNldHVwIGlzIHRoZSBkZWZh dWx0IHNldHVwIG9mIE5WTWYgdGFyZ2V0IHdpdGggRGlyZWN0IGF0dGFjaGVkIFN1YnN5c3RlbS4g VGhlIEZJTyBwbHVnaW4gd2FzIGF0IHRoZSB0YXJnZXQgc2lkZSBhbmQgdGhlIElPUFMgZnJvbSBT UERLIHdhcyBmb3VuZCB0byBiZSBhcm91bmQgMi41SyBhbmQgdGhlIElPUFMgZnJvbSBrZXJuZWwg d2FzIGZvdW5kIHRvIGJlIDEwMGsuPC9kaXY+PC9ibG9ja3F1b3RlPjwvZGl2PjxkaXYgc3R5bGU9 ImZvbnQtZmFtaWx5OkhlbHZldGljYTtmb250LXNpemU6MTJweDtmb250LXN0eWxlOm5vcm1hbDtm b250LXZhcmlhbnQtY2Fwczpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2xldHRlci1zcGFjaW5n Om5vcm1hbDt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtaW5kZW50OjBweDt0ZXh0LXRyYW5zZm9ybTpu b25lO3doaXRlLXNwYWNlOm5vcm1hbDt3b3JkLXNwYWNpbmc6MHB4IiBjbGFzcz0iIj48YnIgY2xh c3M9IiI+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6SGVsdmV0aWNhO2ZvbnQtc2l6ZTox MnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXdlaWdo dDpub3JtYWw7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7dGV4dC1pbmRl bnQ6MHB4O3RleHQtdHJhbnNmb3JtOm5vbmU7d2hpdGUtc3BhY2U6bm9ybWFsO3dvcmQtc3BhY2lu ZzowcHgiIGNsYXNzPSIiPlNvdW5kcyBsaWtlIGEgc2V0dXAgaXNzdWUgdG8gbWUuIEluIG15IHRl c3RzLCBTUERLIHR5cGljYWxseSBtYXRjaGVkIG9yIHN1cnBhc3NlZCBrZXJuZWwgc3RhY2sgaW4g SU9QUyB3aGlsZSB1c2luZyAyLTN4IGxlc3MgQ1BVLjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFt aWx5OkhlbHZldGljYTtmb250LXNpemU6MTJweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlh bnQtY2Fwczpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2xldHRlci1zcGFjaW5nOm5vcm1hbDt0 ZXh0LWFsaWduOnN0YXJ0O3RleHQtaW5kZW50OjBweDt0ZXh0LXRyYW5zZm9ybTpub25lO3doaXRl LXNwYWNlOm5vcm1hbDt3b3JkLXNwYWNpbmc6MHB4IiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+PC9k aXY+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6SGVsdmV0aWNhO2ZvbnQtc2l6ZToxMnB4O2ZvbnQt c3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7 bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7dGV4dC1pbmRlbnQ6MHB4O3Rl eHQtdHJhbnNmb3JtOm5vbmU7d2hpdGUtc3BhY2U6bm9ybWFsO3dvcmQtc3BhY2luZzowcHgiIGNs YXNzPSIiPlJlZ2FyZHMsPC9kaXY+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6SGVsdmV0aWNhO2Zv bnQtc2l6ZToxMnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtm b250LXdlaWdodDpub3JtYWw7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7 dGV4dC1pbmRlbnQ6MHB4O3RleHQtdHJhbnNmb3JtOm5vbmU7d2hpdGUtc3BhY2U6bm9ybWFsO3dv cmQtc3BhY2luZzowcHgiIGNsYXNzPSIiPkFuZHJleTwvZGl2PjxkaXYgY2xhc3M9ImdtYWlsX3F1 b3RlIiBzdHlsZT0iZm9udC1mYW1pbHk6SGVsdmV0aWNhO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtc3R5 bGU6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7bGV0 dGVyLXNwYWNpbmc6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7dGV4dC1pbmRlbnQ6MHB4O3RleHQt dHJhbnNmb3JtOm5vbmU7d2hpdGUtc3BhY2U6bm9ybWFsO3dvcmQtc3BhY2luZzowcHgiPjxibG9j a3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowcHggMHB4IDBweCAwLjhl eDtib3JkZXItbGVmdC13aWR0aDoxcHg7Ym9yZGVyLWxlZnQtY29sb3I6cmdiKDIwNCwyMDQsMjA0 KTtib3JkZXItbGVmdC1zdHlsZTpzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2IGNsYXNzPSJt Xzc1NDMwNzkwNTEwNjA4NjE5OTdnbWFpbF9tc2ciIHN0eWxlPSJ3b3JkLXdyYXA6YnJlYWstd29y ZCI+PGRpdiBjbGFzcz0ibV83NTQzMDc5MDUxMDYwODYxOTk3Z21haWxfbXNnIj48YnIgY2xhc3M9 Im1fNzU0MzA3OTA1MTA2MDg2MTk5N2dtYWlsX21zZyI+PC9kaXY+PGRpdiBjbGFzcz0ibV83NTQz MDc5MDUxMDYwODYxOTk3Z21haWxfbXNnIj5SZWdhcmRzLDwvZGl2PjxkaXYgY2xhc3M9Im1fNzU0 MzA3OTA1MTA2MDg2MTk5N2dtYWlsX21zZyI+UGFyYW0uPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0i bV83NTQzMDc5MDUxMDYwODYxOTk3Z21haWxfbXNnIiBzdHlsZT0id29yZC13cmFwOmJyZWFrLXdv cmQiPjxkaXYgY2xhc3M9Im1fNzU0MzA3OTA1MTA2MDg2MTk5N2dtYWlsX21zZyI+PGJyIGNsYXNz PSJtXzc1NDMwNzkwNTEwNjA4NjE5OTdnbWFpbF9tc2ciPjxkaXYgY2xhc3M9Im1fNzU0MzA3OTA1 MTA2MDg2MTk5N2dtYWlsX21zZyI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2xhc3M9Im1fNzU0 MzA3OTA1MTA2MDg2MTk5N2dtYWlsX21zZyI+PGRpdiBjbGFzcz0ibV83NTQzMDc5MDUxMDYwODYx OTk3Z21haWxfbXNnIj5PbiAwNi1EZWMtMjAxNiwgYXQgNTo1NyBQTSwgQW5kcmV5IEt1em1pbiAm bHQ7PGEgaHJlZj0ibWFpbHRvOmFuZHJleS52Lmt1em1pbkBnbWFpbC5jb20iIGNsYXNzPSJtXzc1 NDMwNzkwNTEwNjA4NjE5OTdnbWFpbF9tc2ciIHRhcmdldD0iX2JsYW5rIj5hbmRyZXkudi5rdXpt aW5AZ21haWwuY29tPC9hPiZndDsgd3JvdGU6PC9kaXY+PGJyIGNsYXNzPSJtXzc1NDMwNzkwNTEw NjA4NjE5OTdnbWFpbF9tc2cgbV83NTQzMDc5MDUxMDYwODYxOTk3bV8tMTA2OTE5NjczMjgyODQ5 MjIwMEFwcGxlLWludGVyY2hhbmdlLW5ld2xpbmUiPjxkaXYgY2xhc3M9Im1fNzU0MzA3OTA1MTA2 MDg2MTk5N2dtYWlsX21zZyI+PGJyIGNsYXNzPSJtXzc1NDMwNzkwNTEwNjA4NjE5OTdnbWFpbF9t c2ciPjxiciBjbGFzcz0ibV83NTQzMDc5MDUxMDYwODYxOTk3Z21haWxfbXNnIj48ZGl2IGNsYXNz PSJnbWFpbF9xdW90ZSBtXzc1NDMwNzkwNTEwNjA4NjE5OTdnbWFpbF9tc2ciPjxkaXYgZGlyPSJs dHIiIGNsYXNzPSJtXzc1NDMwNzkwNTEwNjA4NjE5OTdnbWFpbF9tc2ciPk9uIFR1ZSwgRGVjIDYs IDIwMTYsIDE1OjI0IEt1bWFyYXBhcmFtZXNod2FyYW4gUmF0aG5hdmVsICZsdDs8YSBocmVmPSJt YWlsdG86a3JhdGhAY2xvdWRzaW1wbGUuY29tIiBjbGFzcz0ibV83NTQzMDc5MDUxMDYwODYxOTk3 Z21haWxfbXNnIiB0YXJnZXQ9Il9ibGFuayI+a3JhdGhAY2xvdWRzaW1wbGUuY29tPC9hPiZndDsg d3JvdGU6PGJyIGNsYXNzPSJtXzc1NDMwNzkwNTEwNjA4NjE5OTdnbWFpbF9tc2ciPjwvZGl2Pjxi bG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSBtXzc1NDMwNzkwNTEwNjA4NjE5OTdnbWFpbF9t c2ciIHN0eWxlPSJtYXJnaW46MHB4IDBweCAwcHggMC44ZXg7Ym9yZGVyLWxlZnQtd2lkdGg6MXB4 O2JvcmRlci1sZWZ0LWNvbG9yOnJnYigyMDQsMjA0LDIwNCk7Ym9yZGVyLWxlZnQtc3R5bGU6c29s aWQ7cGFkZGluZy1sZWZ0OjFleCI+SGkgQWxsLDxiciBjbGFzcz0ibV83NTQzMDc5MDUxMDYwODYx OTk3Z21haWxfbXNnIj48YnIgY2xhc3M9Im1fNzU0MzA3OTA1MTA2MDg2MTk5N2dtYWlsX21zZyI+ SXMgdGhlcmUgYW55IGJlbmNobWFya2luZyBkb25lIHRvIHByb3ZlIHRoYXQgU1BESyBpcyBiZXR0 ZXIgdGhhbiB0aGUgS2VybmVsIGRyaXZlcj88YnIgY2xhc3M9Im1fNzU0MzA3OTA1MTA2MDg2MTk5 N2dtYWlsX21zZyI+PGJyIGNsYXNzPSJtXzc1NDMwNzkwNTEwNjA4NjE5OTdnbWFpbF9tc2ciPldl IGRpZCBydW4gdGhlIHNhbXBsZSBkcml2ZXIgcHJvdmlkZWQgZnJvbSB0aGUgU1BESyBhbmQgY29t cGFyZWQgd2l0aCB0aGUga2VybmVsIGludGVyZmFjZSBhbmQgZm91bmQgdGhhdCBTUERLIGlzIHZl cnkgc2xvdy4gV2UgZGlkIHJ1biBGSU8uPGJyIGNsYXNzPSJtXzc1NDMwNzkwNTEwNjA4NjE5OTdn bWFpbF9tc2ciPjwvYmxvY2txdW90ZT48L2Rpdj48ZGl2IGNsYXNzPSJtXzc1NDMwNzkwNTEwNjA4 NjE5OTdnbWFpbF9tc2ciPjxiciBjbGFzcz0ibV83NTQzMDc5MDUxMDYwODYxOTk3Z21haWxfbXNn Ij48L2Rpdj48ZGl2IGNsYXNzPSJtXzc1NDMwNzkwNTEwNjA4NjE5OTdnbWFpbF9tc2ciPkl0J3Mg d29ydGggcHVibGlzaGluZyB5b3VyIHNldHVwIGFuZCByZXN1bHRzIGZpcnN0LjwvZGl2PjxkaXYg Y2xhc3M9Im1fNzU0MzA3OTA1MTA2MDg2MTk5N2dtYWlsX21zZyI+PGJyIGNsYXNzPSJtXzc1NDMw NzkwNTEwNjA4NjE5OTdnbWFpbF9tc2ciPjwvZGl2PjxkaXYgY2xhc3M9Im1fNzU0MzA3OTA1MTA2 MDg2MTk5N2dtYWlsX21zZyI+UmVnYXJkcyw8L2Rpdj48ZGl2IGNsYXNzPSJtXzc1NDMwNzkwNTEw NjA4NjE5OTdnbWFpbF9tc2ciPkFuZHJleTwvZGl2PjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIG1f NzU0MzA3OTA1MTA2MDg2MTk5N2dtYWlsX21zZyI+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1 b3RlIG1fNzU0MzA3OTA1MTA2MDg2MTk5N2dtYWlsX21zZyIgc3R5bGU9Im1hcmdpbjowcHggMHB4 IDBweCAwLjhleDtib3JkZXItbGVmdC13aWR0aDoxcHg7Ym9yZGVyLWxlZnQtY29sb3I6cmdiKDIw NCwyMDQsMjA0KTtib3JkZXItbGVmdC1zdHlsZTpzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij48YnIg Y2xhc3M9Im1fNzU0MzA3OTA1MTA2MDg2MTk5N2dtYWlsX21zZyI+Q2FuIHlvdSBkZXNjcmliZSB0 aGUgc2V0dXAgZm9yIHRoZSBwZXJmb3JtYW5jZSBtZWFzdXJlbWVudCBiZXR3ZWVuIEtlcm5lbCBh bmQgU1BESyBkcml2ZXIuPGJyIGNsYXNzPSJtXzc1NDMwNzkwNTEwNjA4NjE5OTdnbWFpbF9tc2ci PjxiciBjbGFzcz0ibV83NTQzMDc5MDUxMDYwODYxOTk3Z21haWxfbXNnIj5SZWdhcmRzLDxiciBj bGFzcz0ibV83NTQzMDc5MDUxMDYwODYxOTk3Z21haWxfbXNnIj5QYXJhbS48YnIgY2xhc3M9Im1f NzU0MzA3OTA1MTA2MDg2MTk5N2dtYWlsX21zZyI+X19fX19fX19fX19fX19fX19fX19fX19fX19f X19fPHdiciBjbGFzcz0iIj5fX19fX19fX19fX19fX19fXzxiciBjbGFzcz0ibV83NTQzMDc5MDUx MDYwODYxOTk3Z21haWxfbXNnIj5TUERLIG1haWxpbmcgbGlzdDxiciBjbGFzcz0ibV83NTQzMDc5 MDUxMDYwODYxOTk3Z21haWxfbXNnIj48YSBocmVmPSJtYWlsdG86U1BES0BsaXN0cy4wMS5vcmci IGNsYXNzPSJtXzc1NDMwNzkwNTEwNjA4NjE5OTdnbWFpbF9tc2ciIHRhcmdldD0iX2JsYW5rIj5T UERLQGxpc3RzLjAxLm9yZzwvYT48YnIgY2xhc3M9Im1fNzU0MzA3OTA1MTA2MDg2MTk5N2dtYWls X21zZyI+PGEgaHJlZj0iaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9zcGRr IiByZWw9Im5vcmVmZXJyZXIiIGNsYXNzPSJtXzc1NDMwNzkwNTEwNjA4NjE5OTdnbWFpbF9tc2ci IHRhcmdldD0iX2JsYW5rIj5odHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuLzx3YnIgY2xhc3M9 IiI+bGlzdGluZm8vc3BkazwvYT48YnIgY2xhc3M9Im1fNzU0MzA3OTA1MTA2MDg2MTk5N2dtYWls X21zZyI+PC9ibG9ja3F1b3RlPjwvZGl2PjxkaXYgZGlyPSJsdHIiIGNsYXNzPSJtXzc1NDMwNzkw NTEwNjA4NjE5OTdnbWFpbF9tc2ciPi0tPHNwYW4gY2xhc3M9Im1fNzU0MzA3OTA1MTA2MDg2MTk5 N0FwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjxiciBjbGFzcz0ibV83NTQzMDc5 MDUxMDYwODYxOTk3Z21haWxfbXNnIj48L2Rpdj48ZGl2IGRhdGEtc21hcnRtYWlsPSJnbWFpbF9z aWduYXR1cmUiIGNsYXNzPSJtXzc1NDMwNzkwNTEwNjA4NjE5OTdnbWFpbF9tc2ciPjxwIGRpcj0i bHRyIiBjbGFzcz0ibV83NTQzMDc5MDUxMDYwODYxOTk3Z21haWxfbXNnIj5SZWdhcmRzLDxiciBj bGFzcz0ibV83NTQzMDc5MDUxMDYwODYxOTk3Z21haWxfbXNnIj5BbmRyZXk8L3A+PC9kaXY+X19f X19fX19fX19fX19fX19fX19fX19fX19fX19fPHdiciBjbGFzcz0iIj5fX19fX19fX19fX19fX19f XzxiciBjbGFzcz0ibV83NTQzMDc5MDUxMDYwODYxOTk3Z21haWxfbXNnIj5TUERLIG1haWxpbmcg bGlzdDxiciBjbGFzcz0ibV83NTQzMDc5MDUxMDYwODYxOTk3Z21haWxfbXNnIj48YSBocmVmPSJt YWlsdG86U1BES0BsaXN0cy4wMS5vcmciIGNsYXNzPSJtXzc1NDMwNzkwNTEwNjA4NjE5OTdnbWFp bF9tc2ciIHRhcmdldD0iX2JsYW5rIj5TUERLQGxpc3RzLjAxLm9yZzwvYT48YnIgY2xhc3M9Im1f NzU0MzA3OTA1MTA2MDg2MTk5N2dtYWlsX21zZyI+PGEgaHJlZj0iaHR0cHM6Ly9saXN0cy4wMS5v cmcvbWFpbG1hbi9saXN0aW5mby9zcGRrIiBjbGFzcz0ibV83NTQzMDc5MDUxMDYwODYxOTk3Z21h aWxfbXNnIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi88d2Jy IGNsYXNzPSIiPmxpc3RpbmZvL3NwZGs8L2E+PGJyIGNsYXNzPSJtXzc1NDMwNzkwNTEwNjA4NjE5 OTdnbWFpbF9tc2ciPjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48YnIgY2xhc3M9Im1fNzU0MzA3 OTA1MTA2MDg2MTk5N2dtYWlsX21zZyI+PC9kaXY+PC9kaXY+X19fX19fX19fX19fX19fX19fX19f X19fX19fX19fPHdiciBjbGFzcz0iIj5fX19fX19fX19fX19fX19fXzxiciBjbGFzcz0ibV83NTQz MDc5MDUxMDYwODYxOTk3Z21haWxfbXNnIj5TUERLIG1haWxpbmcgbGlzdDxiciBjbGFzcz0ibV83 NTQzMDc5MDUxMDYwODYxOTk3Z21haWxfbXNnIj48YSBocmVmPSJtYWlsdG86U1BES0BsaXN0cy4w MS5vcmciIGNsYXNzPSJtXzc1NDMwNzkwNTEwNjA4NjE5OTdnbWFpbF9tc2ciIHRhcmdldD0iX2Js YW5rIj5TUERLQGxpc3RzLjAxLm9yZzwvYT48YnIgY2xhc3M9Im1fNzU0MzA3OTA1MTA2MDg2MTk5 N2dtYWlsX21zZyI+PGEgaHJlZj0iaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5m by9zcGRrIiByZWw9Im5vcmVmZXJyZXIiIGNsYXNzPSJtXzc1NDMwNzkwNTEwNjA4NjE5OTdnbWFp bF9tc2ciIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuLzx3YnIg Y2xhc3M9IiI+bGlzdGluZm8vc3BkazwvYT48YnIgY2xhc3M9Im1fNzU0MzA3OTA1MTA2MDg2MTk5 N2dtYWlsX21zZyI+PC9ibG9ja3F1b3RlPjwvZGl2PjxkaXYgZGlyPSJsdHIiIHN0eWxlPSJmb250 LWZhbWlseTpIZWx2ZXRpY2E7Zm9udC1zaXplOjEycHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12 YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtsZXR0ZXItc3BhY2luZzpub3Jt YWw7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWluZGVudDowcHg7dGV4dC10cmFuc2Zvcm06bm9uZTt3 aGl0ZS1zcGFjZTpub3JtYWw7d29yZC1zcGFjaW5nOjBweCIgY2xhc3M9IiI+LS08c3BhbiBjbGFz cz0ibV83NTQzMDc5MDUxMDYwODYxOTk3QXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3Nw YW4+PGJyIGNsYXNzPSIiPjwvZGl2PjxkaXYgZGF0YS1zbWFydG1haWw9ImdtYWlsX3NpZ25hdHVy ZSIgc3R5bGU9ImZvbnQtZmFtaWx5OkhlbHZldGljYTtmb250LXNpemU6MTJweDtmb250LXN0eWxl Om5vcm1hbDtmb250LXZhcmlhbnQtY2Fwczpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2xldHRl ci1zcGFjaW5nOm5vcm1hbDt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtaW5kZW50OjBweDt0ZXh0LXRy YW5zZm9ybTpub25lO3doaXRlLXNwYWNlOm5vcm1hbDt3b3JkLXNwYWNpbmc6MHB4IiBjbGFzcz0i Ij48cCBkaXI9Imx0ciIgY2xhc3M9IiI+UmVnYXJkcyw8YnIgY2xhc3M9IiI+QW5kcmV5PC9wPjwv ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpIZWx2ZXRpY2E7Zm9udC1zaXplOjEycHg7Zm9u dC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1h bDtsZXR0ZXItc3BhY2luZzpub3JtYWw7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWluZGVudDowcHg7 dGV4dC10cmFuc2Zvcm06bm9uZTt3aGl0ZS1zcGFjZTpub3JtYWw7d29yZC1zcGFjaW5nOjBweDtm bG9hdDpub25lO2Rpc3BsYXk6aW5saW5lIWltcG9ydGFudCIgY2xhc3M9IiI+X19fX19fX19fX19f X19fX19fX19fX19fX19fX19fPHdiciBjbGFzcz0iIj5fX19fX19fX19fX19fX19fXzwvc3Bhbj48 YnIgc3R5bGU9ImZvbnQtZmFtaWx5OkhlbHZldGljYTtmb250LXNpemU6MTJweDtmb250LXN0eWxl Om5vcm1hbDtmb250LXZhcmlhbnQtY2Fwczpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2xldHRl ci1zcGFjaW5nOm5vcm1hbDt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtaW5kZW50OjBweDt0ZXh0LXRy YW5zZm9ybTpub25lO3doaXRlLXNwYWNlOm5vcm1hbDt3b3JkLXNwYWNpbmc6MHB4IiBjbGFzcz0i Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6SGVsdmV0aWNhO2ZvbnQtc2l6ZToxMnB4O2ZvbnQt c3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7 bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7dGV4dC1pbmRlbnQ6MHB4O3Rl eHQtdHJhbnNmb3JtOm5vbmU7d2hpdGUtc3BhY2U6bm9ybWFsO3dvcmQtc3BhY2luZzowcHg7Zmxv YXQ6bm9uZTtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnQiIGNsYXNzPSIiPlNQREsgbWFpbGluZyBs aXN0PC9zcGFuPjxiciBzdHlsZT0iZm9udC1mYW1pbHk6SGVsdmV0aWNhO2ZvbnQtc2l6ZToxMnB4 O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXdlaWdodDpu b3JtYWw7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7dGV4dC1pbmRlbnQ6 MHB4O3RleHQtdHJhbnNmb3JtOm5vbmU7d2hpdGUtc3BhY2U6bm9ybWFsO3dvcmQtc3BhY2luZzow cHgiIGNsYXNzPSIiPjxhIGhyZWY9Im1haWx0bzpTUERLQGxpc3RzLjAxLm9yZyIgc3R5bGU9ImZv bnQtZmFtaWx5OkhlbHZldGljYTtmb250LXNpemU6MTJweDtmb250LXN0eWxlOm5vcm1hbDtmb250 LXZhcmlhbnQtY2Fwczpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2xldHRlci1zcGFjaW5nOm5v cm1hbDt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtaW5kZW50OjBweDt0ZXh0LXRyYW5zZm9ybTpub25l O3doaXRlLXNwYWNlOm5vcm1hbDt3b3JkLXNwYWNpbmc6MHB4IiB0YXJnZXQ9Il9ibGFuayIgY2xh c3M9IiI+U1BES0BsaXN0cy4wMS5vcmc8L2E+PGJyIHN0eWxlPSJmb250LWZhbWlseTpIZWx2ZXRp Y2E7Zm9udC1zaXplOjEycHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9y bWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtsZXR0ZXItc3BhY2luZzpub3JtYWw7dGV4dC1hbGlnbjpz dGFydDt0ZXh0LWluZGVudDowcHg7dGV4dC10cmFuc2Zvcm06bm9uZTt3aGl0ZS1zcGFjZTpub3Jt YWw7d29yZC1zcGFjaW5nOjBweCIgY2xhc3M9IiI+PGEgaHJlZj0iaHR0cHM6Ly9saXN0cy4wMS5v cmcvbWFpbG1hbi9saXN0aW5mby9zcGRrIiBzdHlsZT0iZm9udC1mYW1pbHk6SGVsdmV0aWNhO2Zv bnQtc2l6ZToxMnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtm b250LXdlaWdodDpub3JtYWw7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7 dGV4dC1pbmRlbnQ6MHB4O3RleHQtdHJhbnNmb3JtOm5vbmU7d2hpdGUtc3BhY2U6bm9ybWFsO3dv cmQtc3BhY2luZzowcHgiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iIj5odHRwczovL2xpc3RzLjAx Lm9yZy9tYWlsbWFuLzx3YnIgY2xhc3M9IiI+bGlzdGluZm8vc3BkazwvYT48L2Rpdj48L2Jsb2Nr cXVvdGU+PC9kaXY+PGJyIGNsYXNzPSIiPjwvZGl2PjwvZGl2PjxiciBjbGFzcz0iIj5fX19fX19f X19fX19fX19fX19fX19fX19fX19fX188d2JyIGNsYXNzPSIiPl9fX19fX19fX19fX19fX19fPGJy IGNsYXNzPSIiPgpTUERLIG1haWxpbmcgbGlzdDxiciBjbGFzcz0iIj4KPGEgaHJlZj0ibWFpbHRv OlNQREtAbGlzdHMuMDEub3JnIiBjbGFzcz0iIj5TUERLQGxpc3RzLjAxLm9yZzwvYT48YnIgY2xh c3M9IiI+CjxhIGhyZWY9Imh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vc3Bk ayIgcmVsPSJub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9IiI+aHR0cHM6Ly9saXN0 cy4wMS5vcmcvbWFpbG1hbi88d2JyIGNsYXNzPSIiPmxpc3RpbmZvL3NwZGs8L2E+PGJyIGNsYXNz PSIiPgo8YnIgY2xhc3M9IiI+PC9ibG9ja3F1b3RlPjwvZGl2PjwvZGl2PgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzxiciBjbGFzcz0iIj5TUERLIG1haWxp bmcgbGlzdDxiciBjbGFzcz0iIj48YSBocmVmPSJtYWlsdG86U1BES0BsaXN0cy4wMS5vcmciIGNs YXNzPSIiPlNQREtAbGlzdHMuMDEub3JnPC9hPjxiciBjbGFzcz0iIj5odHRwczovL2xpc3RzLjAx Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3NwZGs8YnIgY2xhc3M9IiI+PC9kaXY+PC9ibG9ja3F1b3Rl PjwvZGl2PjxiciBjbGFzcz0iIj48L2Rpdj48L2JvZHk+PC9odG1sPg== --===============2956276330052618840==--