From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============5180713473672972570==" MIME-Version: 1.0 From: Harris, James R Subject: Re: [SPDK] SPDK performance benchmarking guidelines and using FIO_plugin Date: Thu, 30 Mar 2017 18:39:22 +0000 Message-ID: <794D6EDA-6C33-4A36-967A-012D91498EB2@intel.com> In-Reply-To: C517176C-A7DF-4C24-9A5A-438BB9A3DD8F@cloudsimple.com List-ID: To: spdk@lists.01.org --===============5180713473672972570== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable On Mar 30, 2017, at 5:43 AM, Kiran Dikshit > wrote: Hi All, I have 2 part question relating to performance benchmarking of the SPDK and= fio_plugin. 1. Is there any reference document specifying the workload types , queue de= pth and block size used for benchmarking the SPDK performance numbers. Is there any OS level performance tuning to be done. It will be great i= f we can get some insight on the performance testbed used. Note : I did find the DPDK performance optimisation guidelines https://lists= .01.org/pipermail/spdk/2016-June/000035.html. Which is useful. Hi Kiran, Most of the tests we run for driver performance comparisons are with 4KB ra= ndom reads. This puts the most stress on the driver, since on NAND SSDs, r= andom read performance is typically much higher than random write performan= ce. For throughput tests, queue depth is typically tested at 128. For lat= ency tests, queue depth is typically tested at 1. 2. I am trying fio_plugin for benchmarking the performance, the jobs are c= ompleting with following error =E2=80=9Cnvme_pcie.c: 996:nvme_pcie_qpair_complete_pending_admin_request: *= **ERROR*** the active process (pid 6700) is not found for this controller.= =E2=80=9D I found that the nvme_pcie_qpair_complete_pending_admin_request()is checki= ng if the process exist, this is where the error message is coming from. I am not sure how this process is getting killed even before completion. Th= ere is no there operation done on this system apart from running fio plugin. Was any similar issue seen in the past, which might be of help to get aroun= d this error. Could you post the contents of your fio job file? Note that the SPDK fio p= lugin is currently limited to a single job. I would expect to see an error= like this if specifying multiple jobs and without -thread (meaning a separ= ate process per job). Thanks, -Jim Below is my setup details OS : fedora 25 ( server edition ) Kernel version : 4.8.6-300 DPDK version : 6.11 I have attached a single nvme drive of 745GB from Intel on which i am runni= ng the FIO Below workaround were tried and the issue still persists not sure how to ge= t around this. workaround 1. Tried different workloads in FIO 2. I did detach the NVMe and attach a new NVMe drive 3. Re-installed the DPDK , SPDK and FIO tool Note : Following links were used to install and setup SPDK and FIO plugin https://github.com/spdk/spdk =E2=80=94> SPDK https://github.com/spdk/spdk/tree/master/examples/nvme/fio_plugin =E2=80=94= > FIO_plugin Thank you Kiran _______________________________________________ SPDK mailing list SPDK(a)lists.01.org https://lists.01.org/mailman/listinfo/spdk --===============5180713473672972570== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJ3b3JkLXdy YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJy ZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KPGJyIGNsYXNzPSIiPg0KPGRpdj4N CjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiIGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj5PbiBNYXIg MzAsIDIwMTcsIGF0IDU6NDMgQU0sIEtpcmFuIERpa3NoaXQgJmx0OzxhIGhyZWY9Im1haWx0bzpr ZGlrc2hpdEBjbG91ZHNpbXBsZS5jb20iIGNsYXNzPSIiPmtkaWtzaGl0QGNsb3Vkc2ltcGxlLmNv bTwvYT4mZ3Q7IHdyb3RlOjwvZGl2Pg0KPGJyIGNsYXNzPSJBcHBsZS1pbnRlcmNoYW5nZS1uZXds aW5lIj4NCjxkaXYgY2xhc3M9IiI+DQo8ZGl2IHN0eWxlPSJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7 IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBhZnRlci13aGl0 ZS1zcGFjZTsiIGNsYXNzPSIiPg0KPGRpdiBkaXI9ImF1dG8iIHN0eWxlPSJ3b3JkLXdyYXA6IGJy ZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBh ZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KPGRpdiBkaXI9ImF1dG8iIHN0eWxlPSJ3b3Jk LXdyYXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5l LWJyZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KPGRpdiBkaXI9ImF1dG8iIHN0 eWxlPSJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdl YmtpdC1saW5lLWJyZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KSGkgQWxsLDwv ZGl2Pg0KPGRpdiBkaXI9ImF1dG8iIHN0eWxlPSJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IC13ZWJr aXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBhZnRlci13aGl0ZS1zcGFj ZTsiIGNsYXNzPSIiPg0KPGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGRpcj0iYXV0byIgc3R5 bGU9IndvcmQtd3JhcDogYnJlYWstd29yZDsgLXdlYmtpdC1uYnNwLW1vZGU6IHNwYWNlOyAtd2Vi a2l0LWxpbmUtYnJlYWs6IGFmdGVyLXdoaXRlLXNwYWNlOyIgY2xhc3M9IiI+DQo8YnIgY2xhc3M9 IiI+DQo8L2Rpdj4NCjxkaXYgZGlyPSJhdXRvIiBzdHlsZT0id29yZC13cmFwOiBicmVhay13b3Jk OyAtd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXItd2hp dGUtc3BhY2U7IiBjbGFzcz0iIj4NCkkgaGF2ZSAyIHBhcnQgcXVlc3Rpb24gcmVsYXRpbmcgdG8g cGVyZm9ybWFuY2UgYmVuY2htYXJraW5nIG9mIHRoZSBTUERLIGFuZCBmaW9fcGx1Z2luLiZuYnNw OzwvZGl2Pg0KPGRpdiBkaXI9ImF1dG8iIHN0eWxlPSJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IC13 ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBhZnRlci13aGl0ZS1z cGFjZTsiIGNsYXNzPSIiPg0KPGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGRpcj0iYXV0byIg c3R5bGU9IndvcmQtd3JhcDogYnJlYWstd29yZDsgLXdlYmtpdC1uYnNwLW1vZGU6IHNwYWNlOyAt d2Via2l0LWxpbmUtYnJlYWs6IGFmdGVyLXdoaXRlLXNwYWNlOyIgY2xhc3M9IiI+DQoxLiBJcyB0 aGVyZSBhbnkgcmVmZXJlbmNlIGRvY3VtZW50IHNwZWNpZnlpbmcgdGhlIHdvcmtsb2FkIHR5cGVz ICwgcXVldWUgZGVwdGggYW5kIGJsb2NrIHNpemUgdXNlZCBmb3IgYmVuY2htYXJraW5nIHRoZSBT UERLIHBlcmZvcm1hbmNlIG51bWJlcnMuJm5ic3A7PC9kaXY+DQo8ZGl2IGRpcj0iYXV0byIgc3R5 bGU9IndvcmQtd3JhcDogYnJlYWstd29yZDsgLXdlYmtpdC1uYnNwLW1vZGU6IHNwYWNlOyAtd2Vi a2l0LWxpbmUtYnJlYWs6IGFmdGVyLXdoaXRlLXNwYWNlOyIgY2xhc3M9IiI+DQombmJzcDsgJm5i c3A7IElzIHRoZXJlIGFueSBPUyBsZXZlbCBwZXJmb3JtYW5jZSB0dW5pbmcgdG8gYmUgZG9uZS4g SXQgd2lsbCBiZSBncmVhdCBpZiB3ZSBjYW4gZ2V0IHNvbWUgaW5zaWdodCBvbiB0aGUgcGVyZm9y bWFuY2UgdGVzdGJlZCB1c2VkLjwvZGl2Pg0KPGRpdiBkaXI9ImF1dG8iIHN0eWxlPSJ3b3JkLXdy YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJy ZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KPGJyIGNsYXNzPSIiPg0KPC9kaXY+ DQo8ZGl2IGRpcj0iYXV0byIgc3R5bGU9IndvcmQtd3JhcDogYnJlYWstd29yZDsgLXdlYmtpdC1u YnNwLW1vZGU6IHNwYWNlOyAtd2Via2l0LWxpbmUtYnJlYWs6IGFmdGVyLXdoaXRlLXNwYWNlOyIg Y2xhc3M9IiI+DQo8c3BhbiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPjwvc3Bhbj5Ob3RlIDombmJzcDs8L2Rpdj4NCjxkaXYgZGlyPSJhdXRvIiBzdHlsZT0i d29yZC13cmFwOiBicmVhay13b3JkOyAtd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IC13ZWJraXQt bGluZS1icmVhazogYWZ0ZXItd2hpdGUtc3BhY2U7IiBjbGFzcz0iIj4NCjxzcGFuIGNsYXNzPSJB cHBsZS10YWItc3BhbiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+PC9zcGFuPiZuYnNwOyAmbmJz cDsgJm5ic3A7SSBkaWQgZmluZCB0aGUgRFBESyAmbmJzcDtwZXJmb3JtYW5jZSBvcHRpbWlzYXRp b24gZ3VpZGVsaW5lcyZuYnNwOzxhIGhyZWY9Imh0dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFp bC9zcGRrLzIwMTYtSnVuZS8wMDAwMzUuaHRtbCIgY2xhc3M9IiI+aHR0cHM6Ly9saXN0cy4wMS5v cmcvcGlwZXJtYWlsL3NwZGsvMjAxNi1KdW5lLzAwMDAzNS5odG1sPC9hPi4NCiBXaGljaCBpcyB1 c2VmdWwuJm5ic3A7PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0K PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2PjxiciBj bGFzcz0iIj4NCjwvZGl2Pg0KPGRpdj5IaSBLaXJhbiw8L2Rpdj4NCjxkaXY+PGJyIGNsYXNzPSIi Pg0KPC9kaXY+DQo8ZGl2Pk1vc3Qgb2YgdGhlIHRlc3RzIHdlIHJ1biBmb3IgZHJpdmVyIHBlcmZv cm1hbmNlIGNvbXBhcmlzb25zIGFyZSB3aXRoIDRLQiByYW5kb20gcmVhZHMuICZuYnNwO1RoaXMg cHV0cyB0aGUgbW9zdCBzdHJlc3Mgb24gdGhlIGRyaXZlciwgc2luY2Ugb24gTkFORCBTU0RzLCBy YW5kb20gcmVhZCBwZXJmb3JtYW5jZSBpcyB0eXBpY2FsbHkgbXVjaCBoaWdoZXIgdGhhbiByYW5k b20gd3JpdGUgcGVyZm9ybWFuY2UuICZuYnNwO0ZvciB0aHJvdWdocHV0IHRlc3RzLA0KIHF1ZXVl IGRlcHRoIGlzIHR5cGljYWxseSB0ZXN0ZWQgYXQgMTI4LiAmbmJzcDtGb3IgbGF0ZW5jeSB0ZXN0 cywgcXVldWUgZGVwdGggaXMgdHlwaWNhbGx5IHRlc3RlZCBhdCAxLjwvZGl2Pg0KPGRpdj48YnIg Y2xhc3M9IiI+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiIGNsYXNzPSIiPg0KPGRp diBjbGFzcz0iIj4NCjxkaXYgc3R5bGU9IndvcmQtd3JhcDogYnJlYWstd29yZDsgLXdlYmtpdC1u YnNwLW1vZGU6IHNwYWNlOyAtd2Via2l0LWxpbmUtYnJlYWs6IGFmdGVyLXdoaXRlLXNwYWNlOyIg Y2xhc3M9IiI+DQo8ZGl2IGRpcj0iYXV0byIgc3R5bGU9IndvcmQtd3JhcDogYnJlYWstd29yZDsg LXdlYmtpdC1uYnNwLW1vZGU6IHNwYWNlOyAtd2Via2l0LWxpbmUtYnJlYWs6IGFmdGVyLXdoaXRl LXNwYWNlOyIgY2xhc3M9IiI+DQo8ZGl2IGRpcj0iYXV0byIgc3R5bGU9IndvcmQtd3JhcDogYnJl YWstd29yZDsgLXdlYmtpdC1uYnNwLW1vZGU6IHNwYWNlOyAtd2Via2l0LWxpbmUtYnJlYWs6IGFm dGVyLXdoaXRlLXNwYWNlOyIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4N CjwvZGl2Pg0KPGRpdiBkaXI9ImF1dG8iIHN0eWxlPSJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IC13 ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBhZnRlci13aGl0ZS1z cGFjZTsiIGNsYXNzPSIiPg0KMi4gJm5ic3A7SSBhbSB0cnlpbmcgZmlvX3BsdWdpbiBmb3IgYmVu Y2htYXJraW5nIHRoZSBwZXJmb3JtYW5jZSwgdGhlIGpvYnMgYXJlIGNvbXBsZXRpbmcgd2l0aCBm b2xsb3dpbmcgZXJyb3ImbmJzcDs8L2Rpdj4NCjxkaXYgZGlyPSJhdXRvIiBzdHlsZT0id29yZC13 cmFwOiBicmVhay13b3JkOyAtd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IC13ZWJraXQtbGluZS1i cmVhazogYWZ0ZXItd2hpdGUtc3BhY2U7IiBjbGFzcz0iIj4NCjxiciBjbGFzcz0iIj4NCjwvZGl2 Pg0KPGRpdiBkaXI9ImF1dG8iIHN0eWxlPSJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQt bmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsi IGNsYXNzPSIiPg0KPGkgY2xhc3M9IiI+4oCcPC9pPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3IiBj bGFzcz0iIj48YiBjbGFzcz0iIj5udm1lX3BjaWUuYzogOTk2Om52bWVfcGNpZV9xcGFpcl9jb21w bGV0ZV9wZW5kaW5nX2FkbWluX3JlcXVlc3Q6ICoqKkVSUk9SKioqIHRoZSBhY3RpdmUgcHJvY2Vz cyAocGlkIDY3MDApIGlzIG5vdCBmb3VuZCBmb3IgdGhpcyBjb250cm9sbGVyLjwvYj48L2ZvbnQ+ PGkgY2xhc3M9IiI+4oCdPC9pPjwvZGl2Pg0KPGRpdiBkaXI9ImF1dG8iIHN0eWxlPSJ3b3JkLXdy YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJy ZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KPGkgY2xhc3M9IiI+PGJyIGNsYXNz PSIiPg0KPC9pPjwvZGl2Pg0KPGRpdiBkaXI9ImF1dG8iIHN0eWxlPSJ3b3JkLXdyYXA6IGJyZWFr LXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBhZnRl ci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KSSBmb3VuZCB0aGF0IHRoZSAmbmJzcDs8Zm9udCBm YWNlPSJDb3VyaWVyIE5ldyIgY2xhc3M9IiI+PGIgY2xhc3M9IiI+bnZtZV9wY2llX3FwYWlyX2Nv bXBsZXRlX3BlbmRpbmdfYWRtaW5fcmVxdWVzdCgpPC9iPjwvZm9udD5pcyBjaGVja2luZyBpZiB0 aGUgcHJvY2VzcyBleGlzdCwgdGhpcyBpcyB3aGVyZSB0aGUgZXJyb3IgbWVzc2FnZSBpcyBjb21p bmcgZnJvbS48L2Rpdj4NCjxkaXYgZGlyPSJhdXRvIiBzdHlsZT0id29yZC13cmFwOiBicmVhay13 b3JkOyAtd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXIt d2hpdGUtc3BhY2U7IiBjbGFzcz0iIj4NCkkgYW0gbm90IHN1cmUgaG93IHRoaXMgcHJvY2VzcyBp cyBnZXR0aW5nIGtpbGxlZCBldmVuIGJlZm9yZSBjb21wbGV0aW9uLiBUaGVyZSBpcyBubyB0aGVy ZSBvcGVyYXRpb24gZG9uZSBvbiB0aGlzIHN5c3RlbSBhcGFydCBmcm9tIHJ1bm5pbmcgZmlvIHBs dWdpbi48L2Rpdj4NCjxkaXYgZGlyPSJhdXRvIiBzdHlsZT0id29yZC13cmFwOiBicmVhay13b3Jk OyAtd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXItd2hp dGUtc3BhY2U7IiBjbGFzcz0iIj4NCldhcyBhbnkgc2ltaWxhciBpc3N1ZSBzZWVuIGluIHRoZSBw YXN0LCB3aGljaCBtaWdodCBiZSBvZiBoZWxwIHRvIGdldCBhcm91bmQgdGhpcyBlcnJvci48L2Rp dj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj48 YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCkNvdWxkIHlvdSBwb3N0IHRoZSBjb250ZW50cyBvZiB5b3Vy IGZpbyBqb2IgZmlsZT8gJm5ic3A7Tm90ZSB0aGF0IHRoZSBTUERLIGZpbyBwbHVnaW4gaXMgY3Vy cmVudGx5IGxpbWl0ZWQgdG8gYSBzaW5nbGUgam9iLiAmbmJzcDtJIHdvdWxkIGV4cGVjdCB0byBz ZWUgYW4gZXJyb3IgbGlrZSB0aGlzIGlmIHNwZWNpZnlpbmcgbXVsdGlwbGUgam9icyBhbmQgd2l0 aG91dCAtdGhyZWFkIChtZWFuaW5nIGEgc2VwYXJhdGUgcHJvY2VzcyBwZXIgam9iKS48L2Rpdj4N CjxkaXY+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2PlRoYW5rcyw8L2Rpdj4NCjxkaXY+PGJy IGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2Pi1KaW08L2Rpdj4NCjxkaXY+PGJyIGNsYXNzPSIiPg0K PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPg0KPGRpdiBz dHlsZT0id29yZC13cmFwOiBicmVhay13b3JkOyAtd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IC13 ZWJraXQtbGluZS1icmVhazogYWZ0ZXItd2hpdGUtc3BhY2U7IiBjbGFzcz0iIj4NCjxkaXYgZGly PSJhdXRvIiBzdHlsZT0id29yZC13cmFwOiBicmVhay13b3JkOyAtd2Via2l0LW5ic3AtbW9kZTog c3BhY2U7IC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXItd2hpdGUtc3BhY2U7IiBjbGFzcz0iIj4N CjxkaXYgZGlyPSJhdXRvIiBzdHlsZT0id29yZC13cmFwOiBicmVhay13b3JkOyAtd2Via2l0LW5i c3AtbW9kZTogc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXItd2hpdGUtc3BhY2U7IiBj bGFzcz0iIj4NCjxkaXYgZGlyPSJhdXRvIiBzdHlsZT0id29yZC13cmFwOiBicmVhay13b3JkOyAt d2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXItd2hpdGUt c3BhY2U7IiBjbGFzcz0iIj4NCjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBkaXI9ImF1dG8i IHN0eWxlPSJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsg LXdlYmtpdC1saW5lLWJyZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KPGIgY2xh c3M9IiI+QmVsb3cgaXMgbXkmbmJzcDtzZXR1cCBkZXRhaWxzJm5ic3A7PC9iPjwvZGl2Pg0KPGRp diBkaXI9ImF1dG8iIHN0eWxlPSJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1t b2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNz PSIiPg0KPGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGRpcj0iYXV0byIgc3R5bGU9IndvcmQt d3JhcDogYnJlYWstd29yZDsgLXdlYmtpdC1uYnNwLW1vZGU6IHNwYWNlOyAtd2Via2l0LWxpbmUt YnJlYWs6IGFmdGVyLXdoaXRlLXNwYWNlOyIgY2xhc3M9IiI+DQpPUyA6IGZlZG9yYSAyNSAoIHNl cnZlciBlZGl0aW9uICk8L2Rpdj4NCjxkaXYgZGlyPSJhdXRvIiBzdHlsZT0id29yZC13cmFwOiBi cmVhay13b3JkOyAtd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazog YWZ0ZXItd2hpdGUtc3BhY2U7IiBjbGFzcz0iIj4NCktlcm5lbCB2ZXJzaW9uIDombmJzcDs0Ljgu Ni0zMDA8L2Rpdj4NCjxkaXYgZGlyPSJhdXRvIiBzdHlsZT0id29yZC13cmFwOiBicmVhay13b3Jk OyAtd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXItd2hp dGUtc3BhY2U7IiBjbGFzcz0iIj4NCkRQREsgdmVyc2lvbiA6IDYuMTE8L2Rpdj4NCjxkaXYgZGly PSJhdXRvIiBzdHlsZT0id29yZC13cmFwOiBicmVhay13b3JkOyAtd2Via2l0LW5ic3AtbW9kZTog c3BhY2U7IC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXItd2hpdGUtc3BhY2U7IiBjbGFzcz0iIj4N CjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBkaXI9ImF1dG8iIHN0eWxlPSJ3b3JkLXdyYXA6 IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFr OiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KSSBoYXZlIGF0dGFjaGVkIGEmbmJzcDtz aW5nbGUmbmJzcDtudm1lIGRyaXZlIG9mIDc0NUdCIGZyb20mbmJzcDtJbnRlbCBvbiB3aGljaCBp IGFtIHJ1bm5pbmcgdGhlIEZJTyZuYnNwOzwvZGl2Pg0KPGRpdiBkaXI9ImF1dG8iIHN0eWxlPSJ3 b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1s aW5lLWJyZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KPGJyIGNsYXNzPSIiPg0K PC9kaXY+DQo8ZGl2IGRpcj0iYXV0byIgc3R5bGU9IndvcmQtd3JhcDogYnJlYWstd29yZDsgLXdl YmtpdC1uYnNwLW1vZGU6IHNwYWNlOyAtd2Via2l0LWxpbmUtYnJlYWs6IGFmdGVyLXdoaXRlLXNw YWNlOyIgY2xhc3M9IiI+DQpCZWxvdyB3b3JrYXJvdW5kIHdlcmUgdHJpZWQgYW5kIHRoZSBpc3N1 ZSBzdGlsbCBwZXJzaXN0cyBub3Qgc3VyZSBob3cgdG8gZ2V0IGFyb3VuZCB0aGlzLiZuYnNwOzwv ZGl2Pg0KPGRpdiBkaXI9ImF1dG8iIHN0eWxlPSJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IC13ZWJr aXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBhZnRlci13aGl0ZS1zcGFj ZTsiIGNsYXNzPSIiPg0KPGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGRpcj0iYXV0byIgc3R5 bGU9IndvcmQtd3JhcDogYnJlYWstd29yZDsgLXdlYmtpdC1uYnNwLW1vZGU6IHNwYWNlOyAtd2Vi a2l0LWxpbmUtYnJlYWs6IGFmdGVyLXdoaXRlLXNwYWNlOyIgY2xhc3M9IiI+DQo8YiBjbGFzcz0i Ij53b3JrYXJvdW5kPC9iPjwvZGl2Pg0KPGRpdiBkaXI9ImF1dG8iIHN0eWxlPSJ3b3JkLXdyYXA6 IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFr OiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KPGIgY2xhc3M9IiI+PGJyIGNsYXNzPSIi Pg0KPC9iPjwvZGl2Pg0KPGRpdiBkaXI9ImF1dG8iIHN0eWxlPSJ3b3JkLXdyYXA6IGJyZWFrLXdv cmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBhZnRlci13 aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KMS4gVHJpZWQgZGlmZmVyZW50IHdvcmtsb2FkcyBpbiBG SU8mbmJzcDs8L2Rpdj4NCjxkaXYgZGlyPSJhdXRvIiBzdHlsZT0id29yZC13cmFwOiBicmVhay13 b3JkOyAtd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXIt d2hpdGUtc3BhY2U7IiBjbGFzcz0iIj4NCjIuIEkgZGlkIGRldGFjaCB0aGUgTlZNZSBhbmQgYXR0 YWNoIGEgbmV3IE5WTWUgZHJpdmUmbmJzcDs8L2Rpdj4NCjxkaXYgZGlyPSJhdXRvIiBzdHlsZT0i d29yZC13cmFwOiBicmVhay13b3JkOyAtd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IC13ZWJraXQt bGluZS1icmVhazogYWZ0ZXItd2hpdGUtc3BhY2U7IiBjbGFzcz0iIj4NCjMuIFJlLWluc3RhbGxl ZCB0aGUgRFBESyAsIFNQREsgYW5kIEZJTyB0b29sPC9kaXY+DQo8ZGl2IGRpcj0iYXV0byIgc3R5 bGU9IndvcmQtd3JhcDogYnJlYWstd29yZDsgLXdlYmtpdC1uYnNwLW1vZGU6IHNwYWNlOyAtd2Vi a2l0LWxpbmUtYnJlYWs6IGFmdGVyLXdoaXRlLXNwYWNlOyIgY2xhc3M9IiI+DQo8YnIgY2xhc3M9 IiI+DQo8L2Rpdj4NCjxkaXYgZGlyPSJhdXRvIiBzdHlsZT0id29yZC13cmFwOiBicmVhay13b3Jk OyAtd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXItd2hp dGUtc3BhY2U7IiBjbGFzcz0iIj4NCjxiIGNsYXNzPSIiPk5vdGUgOjwvYj48L2Rpdj4NCjxkaXYg ZGlyPSJhdXRvIiBzdHlsZT0id29yZC13cmFwOiBicmVhay13b3JkOyAtd2Via2l0LW5ic3AtbW9k ZTogc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXItd2hpdGUtc3BhY2U7IiBjbGFzcz0i Ij4NCjxzcGFuIGNsYXNzPSJBcHBsZS10YWItc3BhbiIgc3R5bGU9IndoaXRlLXNwYWNlOiBwcmU7 Ij48L3NwYW4+Rm9sbG93aW5nIGxpbmtzIHdlcmUgdXNlZCB0byBpbnN0YWxsIGFuZCBzZXR1cCBT UERLIGFuZCBGSU8gcGx1Z2luPC9kaXY+DQo8ZGl2IGRpcj0iYXV0byIgc3R5bGU9IndvcmQtd3Jh cDogYnJlYWstd29yZDsgLXdlYmtpdC1uYnNwLW1vZGU6IHNwYWNlOyAtd2Via2l0LWxpbmUtYnJl YWs6IGFmdGVyLXdoaXRlLXNwYWNlOyIgY2xhc3M9IiI+DQo8YiBjbGFzcz0iIj48c3BhbiBjbGFz cz0iQXBwbGUtdGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPjwvc3Bhbj48L2I+PGEg aHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3NwZGsvc3BkayIgY2xhc3M9IiI+aHR0cHM6Ly9naXRo dWIuY29tL3NwZGsvc3BkazwvYT4mbmJzcDvigJQmZ3Q7IFNQREsmbmJzcDs8L2Rpdj4NCjxkaXYg ZGlyPSJhdXRvIiBzdHlsZT0id29yZC13cmFwOiBicmVhay13b3JkOyAtd2Via2l0LW5ic3AtbW9k ZTogc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXItd2hpdGUtc3BhY2U7IiBjbGFzcz0i Ij4NCjxzcGFuIGNsYXNzPSJBcHBsZS10YWItc3BhbiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ PC9zcGFuPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9zcGRrL3NwZGsvdHJlZS9tYXN0ZXIv ZXhhbXBsZXMvbnZtZS9maW9fcGx1Z2luIiBjbGFzcz0iIj5odHRwczovL2dpdGh1Yi5jb20vc3Bk ay9zcGRrL3RyZWUvbWFzdGVyL2V4YW1wbGVzL252bWUvZmlvX3BsdWdpbjwvYT4mbmJzcDvigJQm Z3Q7IEZJT19wbHVnaW48L2Rpdj4NCjxkaXYgZGlyPSJhdXRvIiBzdHlsZT0id29yZC13cmFwOiBi cmVhay13b3JkOyAtd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazog YWZ0ZXItd2hpdGUtc3BhY2U7IiBjbGFzcz0iIj4NCjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRp diBkaXI9ImF1dG8iIHN0eWxlPSJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1t b2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNz PSIiPg0KPGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGRpcj0iYXV0byIgc3R5bGU9IndvcmQt d3JhcDogYnJlYWstd29yZDsgLXdlYmtpdC1uYnNwLW1vZGU6IHNwYWNlOyAtd2Via2l0LWxpbmUt YnJlYWs6IGFmdGVyLXdoaXRlLXNwYWNlOyIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPlRoYW5r IHlvdTwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5LaXJhbjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwv ZGl2Pg0KPC9kaXY+DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXzxiciBjbGFzcz0iIj4NClNQREsgbWFpbGluZyBsaXN0PGJyIGNsYXNzPSIiPg0KPGEgaHJl Zj0ibWFpbHRvOlNQREtAbGlzdHMuMDEub3JnIiBjbGFzcz0iIj5TUERLQGxpc3RzLjAxLm9yZzwv YT48YnIgY2xhc3M9IiI+DQpodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3Nw ZGs8YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPGJyIGNsYXNz PSIiPg0KPC9ib2R5Pg0KPC9odG1sPg0K --===============5180713473672972570==--