From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============2436259351392417229==" MIME-Version: 1.0 From: Kumaraparameshwaran Rathnavel Subject: Re: [SPDK] Netlist storage card Date: Thu, 01 Dec 2016 09:36:30 +0530 Message-ID: <33E32D9D-812B-4F05-93DB-87967F97747C@cloudsimple.com> In-Reply-To: CAGcKcXTGwmk80O7c3DGjyWhtPfjxNAts8is+cqAiP=2M-bXZOw@mail.gmail.com List-ID: To: spdk@lists.01.org --===============2436259351392417229== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Dale, When you compile your SPDK application try giving DPDK_DIR=3D/path/to/dpdk/= x86_build folder. This should solve your problem. From SPDK directory give = make and the DPDK_DIR. Regards, Param. > On 01-Dec-2016, at 9:23 AM, Dale Corlett wrot= e: > = > Hello again, > = > When I was trying to run iscsi_tgt (as instructed in http://www.spdk.io/s= pdk/doc/iscsi_getting_started.html ) I found that the app/iscsi_tgt.c was not compiled, and wh= en I tried to compile it I got the following error: > iscsi_tgt.c:38:24: fatal error: rte_config.h: No such file or directory > From an online search I have seen that many other people get a similar er= ror to do with missing the rte_config.h file, but there do not seem to be a= ny resolutions. > I have found a rte_config.h file in one of the dpdk directories. I tried = putting this in the /usr/include directory, but this did not fix it. > = > Does anyone have any ideas of how to fix this? Has anyone encountered thi= s problem before? > = > Thanks, > Dale > = > = > = > On Thu, Dec 1, 2016 at 5:46 AM, Walker, Benjamin > wrote: > Note also that running the iSCSI target will not create a block device on= your local system by itself. It=E2=80=99s just a C executable that=E2=80= =99s opening up some listening sockets. To see a block device on a system, = you have to connect to the target using an iSCSI initiator. The one we use = is iscsiadm, which is not part of SPDK but is in wide use and is packaged o= n all mainstream Linux distributions. This is the same iSCSI initiator peop= le use with the Linux kernel iSCSI target. > = > = > = > All of the above is covered in that guide you linked. > = > =C2=A0 <> > <>From: SPDK [mailto:spdk-bounces(a)lists.01.org ] On Behalf Of Harris, James R > Sent: Tuesday, November 29, 2016 6:07 PM > = > = > To: Storage Performance Development Kit > > Subject: Re: [SPDK] Netlist storage card > = > = > = > Hi Dale, > = > = > = > You can pass the name of your config file to the iscsi_tgt app using the = =E2=80=93c option. > = > = > = > -Jim > = > = > = > = > = > From: SPDK > on behalf of Dale Corlett > > Reply-To: Storage Performance Development Kit > > Date: Tuesday, November 29, 2016 at 3:38 PM > To: Storage Performance Development Kit > > Subject: Re: [SPDK] Netlist storage card > = > = > = > Hi, > = > = > = > I have added the [AIO] section to the config file: /home/dale/spdk/etc/sp= dk/iscsi.conf.in but I cannot figure out how to "ru= n" SPDK to create the SPDK block device called AIO0. = > = > = > = > I have tried following the guid for the iscsi block device: http://www.sp= dk.io/spdk/doc/iscsi_getting_started.html but I am not sure if I have used the correct config= file. > = > = > = > Thanks, > = > Dale > = > = > = > On Wed, Nov 30, 2016 at 10:41 AM, Daniel Verkamp > wrote: > = > On 11/29/2016 02:15 PM, Dale Corlett wrote: > > Hi, > > > > Thank you all for your replies. > > > > Jim, I think that I will first try the AIO first, and then try > > writing the userspace driver and bdev module. I am not sure of what I > > should do with the config files, or how to get the .ko file for the > > AIO module. Is there a makefile that gets the .ko module file or do I > > have to create one? > > > > Also, when trying to use ./scripts/setup.sh I found that it did not > > work because I got then message: "logname: no login name". I think > > that this is a problem with the 16.04 version of Ubuntu: > > https://bugs.launchpad.net/ubuntu/+source/gnome-terminal/+bug/1537645 <= https://bugs.launchpad.net/ubuntu/+source/gnome-terminal/+bug/1537645> > > so I changed line 177 to: username=3D `echo whoami` and this seems to > > work. > > > > Thanks, Dale > = > Hi Dale, > = > You do not need any special kernel modules to use the SPDK AIO bdev - > it uses the libaio userspace library provided by glibc and the block > devices that are exposed by the usual kernel drivers for any block > device that is supported by Linux. > = > Thanks for the report about logname - I'll prepare a patch to work > around that issue. The only time the username provided by logname is > used is to provide access to an unprivileged user to the VFIO device, > so if you are running the programs using SPDK as root, there should have > no negative effect. > = > Thanks, > -- Daniel > = > _______________________________________________ > 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 --===============2436259351392417229== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0 L2h0bWwgY2hhcnNldD11dGYtOCI+PC9oZWFkPjxib2R5IHN0eWxlPSJ3b3JkLXdyYXA6IGJyZWFr LXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBhZnRl ci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPkhpIERhbGUsPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9 IiI+PC9kaXY+PGRpdiBjbGFzcz0iIj5XaGVuIHlvdSBjb21waWxlIHlvdXIgU1BESyBhcHBsaWNh dGlvbiB0cnkgZ2l2aW5nIERQREtfRElSPS9wYXRoL3RvL2RwZGsveDg2X2J1aWxkIGZvbGRlci4g VGhpcyBzaG91bGQgc29sdmUgeW91ciBwcm9ibGVtLiBGcm9tIFNQREsgZGlyZWN0b3J5IGdpdmUg bWFrZSBhbmQgdGhlIERQREtfRElSLjwvZGl2PjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPjwv ZGl2PjxkaXYgY2xhc3M9IiI+UmVnYXJkcyw8L2Rpdj48ZGl2IGNsYXNzPSIiPlBhcmFtLjxiciBj bGFzcz0iIj48ZGl2PjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiIGNsYXNzPSIiPjxkaXYgY2xhc3M9 IiI+T24gMDEtRGVjLTIwMTYsIGF0IDk6MjMgQU0sIERhbGUgQ29ybGV0dCAmbHQ7PGEgaHJlZj0i bWFpbHRvOmRhbGUuY29ybGV0dEBueXJpYWQuY29tIiBjbGFzcz0iIj5kYWxlLmNvcmxldHRAbnly aWFkLmNvbTwvYT4mZ3Q7IHdyb3RlOjwvZGl2PjxiciBjbGFzcz0iQXBwbGUtaW50ZXJjaGFuZ2Ut bmV3bGluZSI+PGRpdiBjbGFzcz0iIj48ZGl2IGRpcj0ibHRyIiBjbGFzcz0iIj5IZWxsbyBhZ2Fp biw8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj48L2Rpdj48ZGl2IGNsYXNzPSIiPldoZW4gSSB3 YXMgdHJ5aW5nIHRvIHJ1biBpc2NzaV90Z3QgKGFzIGluc3RydWN0ZWQgaW4mbmJzcDs8YSBocmVm PSJodHRwOi8vd3d3LnNwZGsuaW8vc3Bkay9kb2MvaXNjc2lfZ2V0dGluZ19zdGFydGVkLmh0bWwi IHRhcmdldD0iX2JsYW5rIiBzdHlsZT0iZm9udC1zaXplOjEyLjhweCIgY2xhc3M9IiI+aHR0cDov L3d3dy5zcGRrLmlvL3NwZGsvZG9jLzx3YnIgY2xhc3M9IiI+aXNjc2lfZ2V0dGluZ19zdGFydGVk Lmh0bWw8L2E+KSZuYnNwO0kgZm91bmQgdGhhdCB0aGUgYXBwL2lzY3NpX3RndC5jIHdhcyBub3Qg Y29tcGlsZWQsIGFuZCB3aGVuIEkgdHJpZWQgdG8gY29tcGlsZSBpdCBJIGdvdCB0aGUgZm9sbG93 aW5nIGVycm9yOjwvZGl2PjxkaXYgY2xhc3M9IiI+aXNjc2lfdGd0LmM6Mzg6MjQ6IGZhdGFsIGVy cm9yOiBydGVfY29uZmlnLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rvcnk8L2Rpdj48ZGl2IGNs YXNzPSIiPkZyb20gYW4gb25saW5lIHNlYXJjaCBJIGhhdmUgc2VlbiB0aGF0IG1hbnkgb3RoZXIg cGVvcGxlIGdldCBhIHNpbWlsYXIgZXJyb3IgdG8gZG8gd2l0aCBtaXNzaW5nIHRoZSBydGVfY29u ZmlnLmggZmlsZSwgYnV0IHRoZXJlIGRvIG5vdCBzZWVtIHRvIGJlIGFueSByZXNvbHV0aW9ucy48 L2Rpdj48ZGl2IGNsYXNzPSIiPkkgaGF2ZSBmb3VuZCBhIHJ0ZV9jb25maWcuaCBmaWxlIGluIG9u ZSBvZiB0aGUgZHBkayBkaXJlY3Rvcmllcy4gSSB0cmllZCBwdXR0aW5nIHRoaXMgaW4gdGhlIC91 c3IvaW5jbHVkZSBkaXJlY3RvcnksIGJ1dCB0aGlzIGRpZCBub3QgZml4IGl0LjwvZGl2PjxkaXYg Y2xhc3M9IiI+PGJyIGNsYXNzPSIiPjwvZGl2PjxkaXYgY2xhc3M9IiI+RG9lcyBhbnlvbmUgaGF2 ZSBhbnkgaWRlYXMgb2YgaG93IHRvIGZpeCB0aGlzPyBIYXMgYW55b25lIGVuY291bnRlcmVkIHRo aXMgcHJvYmxlbSBiZWZvcmU/PC9kaXY+PGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+PC9kaXY+ PGRpdiBjbGFzcz0iIj5UaGFua3MsPC9kaXY+PGRpdiBjbGFzcz0iIj5EYWxlPC9kaXY+PGRpdiBj bGFzcz0iIj48ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj48L2Rpdj48ZGl2IGNsYXNzPSIiPjxi ciBjbGFzcz0iIj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJnbWFpbF9leHRyYSI+PGJy IGNsYXNzPSIiPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj5PbiBUaHUsIERlYyAxLCAyMDE2IGF0 IDU6NDYgQU0sIFdhbGtlciwgQmVuamFtaW4gPHNwYW4gZGlyPSJsdHIiIGNsYXNzPSIiPiZsdDs8 YSBocmVmPSJtYWlsdG86YmVuamFtaW4ud2Fsa2VyQGludGVsLmNvbSIgdGFyZ2V0PSJfYmxhbmsi IGNsYXNzPSIiPmJlbmphbWluLndhbGtlckBpbnRlbC5jb208L2E+Jmd0Ozwvc3Bhbj4gd3JvdGU6 PGJyIGNsYXNzPSIiPjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdp bjowIDAgMCAuOGV4O2JvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgi PgoKCgoKCjxkaXYgYmdjb2xvcj0id2hpdGUiIGxhbmc9IkVOLVVTIiBsaW5rPSJibHVlIiB2bGlu az0icHVycGxlIiBjbGFzcz0iIj4KPGRpdiBjbGFzcz0ibV8tMTk1MTA5MzM1NzgwOTc0ODY4MVdv cmRTZWN0aW9uMSI+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx ZjQ5N2QiIGNsYXNzPSIiPk5vdGUgYWxzbyB0aGF0IHJ1bm5pbmcgdGhlIGlTQ1NJIHRhcmdldCB3 aWxsIG5vdCBjcmVhdGUgYSBibG9jayBkZXZpY2Ugb24geW91ciBsb2NhbCBzeXN0ZW0gYnkgaXRz ZWxmLiBJdOKAmXMganVzdCBhIEMgZXhlY3V0YWJsZSB0aGF04oCZcyBvcGVuaW5nIHVwIHNvbWUg bGlzdGVuaW5nCiBzb2NrZXRzLiBUbyBzZWUgYSBibG9jayBkZXZpY2Ugb24gYSBzeXN0ZW0sIHlv dSBoYXZlIHRvIGNvbm5lY3QgdG8gdGhlIHRhcmdldCB1c2luZyBhbiBpU0NTSSBpbml0aWF0b3Iu IFRoZSBvbmUgd2UgdXNlIGlzIGlzY3NpYWRtLCB3aGljaCBpcyBub3QgcGFydCBvZiBTUERLIGJ1 dCBpcyBpbiB3aWRlIHVzZSBhbmQgaXMgcGFja2FnZWQgb24gYWxsIG1haW5zdHJlYW0gTGludXgg ZGlzdHJpYnV0aW9ucy4gVGhpcyBpcyB0aGUgc2FtZSBpU0NTSSBpbml0aWF0b3IKIHBlb3BsZSB1 c2Ugd2l0aCB0aGUgTGludXgga2VybmVsIGlTQ1NJIHRhcmdldC48dSBjbGFzcz0iIj48L3U+PHUg Y2xhc3M9IiI+PC91Pjwvc3Bhbj48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9 ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl cmlmO2NvbG9yOiMxZjQ5N2QiIGNsYXNzPSIiPjx1IGNsYXNzPSIiPjwvdT4mbmJzcDs8dSBjbGFz cz0iIj48L3U+PC9zcGFuPjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7 Y29sb3I6IzFmNDk3ZCIgY2xhc3M9IiI+QWxsIG9mIHRoZSBhYm92ZSBpcyBjb3ZlcmVkIGluIHRo YXQgZ3VpZGUgeW91IGxpbmtlZC48dSBjbGFzcz0iIj48L3U+PHUgY2xhc3M9IiI+PC91Pjwvc3Bh bj48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGEgbmFtZT0ibV8tMTk1MTA5MzM1NzgwOTc0ODY4 MV9fTWFpbEVuZENvbXBvc2UiIGNsYXNzPSIiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0 O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMWY0OTdk IiBjbGFzcz0iIj48dSBjbGFzcz0iIj48L3U+Jm5ic3A7PHUgY2xhc3M9IiI+PC91Pjwvc3Bhbj48 L2E+PC9wPgo8ZGl2IGNsYXNzPSIiPgo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9w OnNvbGlkICNlMWUxZTEgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiIgY2xhc3M9IiI+ PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGEgbmFtZT0ibV8tMTk1MTA5MzM1NzgwOTc0ODY4MV9fX19f X3JlcGx5c2VwYXJhdG9yIiBjbGFzcz0iIj48L2E+PGIgY2xhc3M9IiI+PHNwYW4gc3R5bGU9ImZv bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm IiBjbGFzcz0iIj5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7 Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIiBjbGFzcz0iIj4gU1BE SyBbbWFpbHRvOjxhIGhyZWY9Im1haWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnIiB0YXJn ZXQ9Il9ibGFuayIgY2xhc3M9IiI+c3Bkay1ib3VuY2VzQGxpc3RzLjAxLjx3YnIgY2xhc3M9IiI+ b3JnPC9hPl0KPGIgY2xhc3M9IiI+T24gQmVoYWxmIE9mIDwvYj5IYXJyaXMsIEphbWVzIFI8YnIg Y2xhc3M9IiI+CjxiIGNsYXNzPSIiPlNlbnQ6PC9iPiBUdWVzZGF5LCBOb3ZlbWJlciAyOSwgMjAx NiA2OjA3IFBNPC9zcGFuPjwvcD48ZGl2IGNsYXNzPSIiPjxkaXYgY2xhc3M9Img1Ij48YnIgY2xh c3M9IiI+CjxiIGNsYXNzPSIiPlRvOjwvYj4gU3RvcmFnZSBQZXJmb3JtYW5jZSBEZXZlbG9wbWVu dCBLaXQgJmx0OzxhIGhyZWY9Im1haWx0bzpzcGRrQGxpc3RzLjAxLm9yZyIgdGFyZ2V0PSJfYmxh bmsiIGNsYXNzPSIiPnNwZGtAbGlzdHMuMDEub3JnPC9hPiZndDs8YnIgY2xhc3M9IiI+CjxiIGNs YXNzPSIiPlN1YmplY3Q6PC9iPiBSZTogW1NQREtdIE5ldGxpc3Qgc3RvcmFnZSBjYXJkPHUgY2xh c3M9IiI+PC91Pjx1IGNsYXNzPSIiPjwvdT48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSIiPjxiciBj bGFzcz0id2Via2l0LWJsb2NrLXBsYWNlaG9sZGVyIj48L2Rpdj4KPC9kaXY+CjwvZGl2PjxkaXYg Y2xhc3M9IiI+PGRpdiBjbGFzcz0iaDUiPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjx1IGNsYXNzPSIi PjwvdT4mbmJzcDs8dSBjbGFzcz0iIj48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss c2Fucy1zZXJpZiIgY2xhc3M9IiI+SGkgRGFsZSw8dSBjbGFzcz0iIj48L3U+PHUgY2xhc3M9IiI+ PC91Pjwvc3Bhbj48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6 ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIiBjbGFz cz0iIj48dSBjbGFzcz0iIj48L3U+Jm5ic3A7PHUgY2xhc3M9IiI+PC91Pjwvc3Bhbj48L3A+PHAg Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIiBjbGFzcz0iIj5Zb3UgY2FuIHBhc3Mg dGhlIG5hbWUgb2YgeW91ciBjb25maWcgZmlsZSB0byB0aGUgaXNjc2lfdGd0IGFwcCB1c2luZyB0 aGUg4oCTYyBvcHRpb24uPHUgY2xhc3M9IiI+PC91Pjx1IGNsYXNzPSIiPjwvdT48L3NwYW4+PC9w PjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiIgY2xhc3M9IiI+PHUgY2xhc3M9 IiI+PC91PiZuYnNwOzx1IGNsYXNzPSIiPjwvdT48L3NwYW4+PC9wPjxwIGNsYXNzPSJNc29Ob3Jt YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli cmkmcXVvdDssc2Fucy1zZXJpZiIgY2xhc3M9IiI+LUppbTx1IGNsYXNzPSIiPjwvdT48dSBjbGFz cz0iIj48L3U+PC9zcGFuPjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYi IGNsYXNzPSIiPjx1IGNsYXNzPSIiPjwvdT4mbmJzcDs8dSBjbGFzcz0iIj48L3U+PC9zcGFuPjwv cD48cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250 LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiIGNsYXNzPSIiPjx1IGNsYXNz PSIiPjwvdT4mbmJzcDs8dSBjbGFzcz0iIj48L3U+PC9zcGFuPjwvcD4KPGRpdiBzdHlsZT0iYm9y ZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjYjVjNGRmIDEuMHB0O3BhZGRpbmc6My4wcHQgMGlu IDBpbiAwaW4iIGNsYXNzPSIiPjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVm dDouNWluIj48YiBjbGFzcz0iIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IENhbGlicmksIHNh bnMtc2VyaWY7IiBjbGFzcz0iIj5Gcm9tOgo8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LWZh bWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsiIGNsYXNzPSIiPlNQREsgJmx0OzxhIGhyZWY9Im1h aWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9IiI+ c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZzwvYT4mZ3Q7IG9uIGJlaGFsZiBvZiBEYWxlIENvcmxl dHQgJmx0OzxhIGhyZWY9Im1haWx0bzpkYWxlLmNvcmxldHRAbnlyaWFkLmNvbSIgdGFyZ2V0PSJf YmxhbmsiIGNsYXNzPSIiPmRhbGUuY29ybGV0dEBueXJpYWQuY29tPC9hPiZndDs8YnIgY2xhc3M9 IiI+CjxiIGNsYXNzPSIiPlJlcGx5LVRvOiA8L2I+U3RvcmFnZSBQZXJmb3JtYW5jZSBEZXZlbG9w bWVudCBLaXQgJmx0OzxhIGhyZWY9Im1haWx0bzpzcGRrQGxpc3RzLjAxLm9yZyIgdGFyZ2V0PSJf YmxhbmsiIGNsYXNzPSIiPnNwZGtAbGlzdHMuMDEub3JnPC9hPiZndDs8YnIgY2xhc3M9IiI+Cjxi IGNsYXNzPSIiPkRhdGU6IDwvYj5UdWVzZGF5LCBOb3ZlbWJlciAyOSwgMjAxNiBhdCAzOjM4IFBN PGJyIGNsYXNzPSIiPgo8YiBjbGFzcz0iIj5UbzogPC9iPlN0b3JhZ2UgUGVyZm9ybWFuY2UgRGV2 ZWxvcG1lbnQgS2l0ICZsdDs8YSBocmVmPSJtYWlsdG86c3Bka0BsaXN0cy4wMS5vcmciIHRhcmdl dD0iX2JsYW5rIiBjbGFzcz0iIj5zcGRrQGxpc3RzLjAxLm9yZzwvYT4mZ3Q7PGJyIGNsYXNzPSIi Pgo8YiBjbGFzcz0iIj5TdWJqZWN0OiA8L2I+UmU6IFtTUERLXSBOZXRsaXN0IHN0b3JhZ2UgY2Fy ZDx1IGNsYXNzPSIiPjwvdT48dSBjbGFzcz0iIj48L3U+PC9zcGFuPjwvcD4KPC9kaXY+CjxkaXYg Y2xhc3M9IiI+PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPjx1 IGNsYXNzPSIiPjwvdT4mbmJzcDs8dSBjbGFzcz0iIj48L3U+PC9wPgo8L2Rpdj4KPGRpdiBjbGFz cz0iIj48cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+SGksIDx1 IGNsYXNzPSIiPjwvdT48dSBjbGFzcz0iIj48L3U+PC9wPgo8ZGl2IGNsYXNzPSIiPjxwIGNsYXNz PSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48dSBjbGFzcz0iIj48L3U+Jm5i c3A7PHUgY2xhc3M9IiI+PC91PjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9IiI+PHAgY2xhc3M9Ik1z b05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPkkgaGF2ZSBhZGRlZCB0aGUgW0FJT10g c2VjdGlvbiB0byB0aGUgY29uZmlnIGZpbGU6Jm5ic3A7L2hvbWUvZGFsZS9zcGRrL2V0Yy88d2Jy IGNsYXNzPSIiPnNwZGsvPGEgaHJlZj0iaHR0cDovL2lzY3NpLmNvbmYuaW4vIiB0YXJnZXQ9Il9i bGFuayIgY2xhc3M9IiI+aXNjc2kuY29uZi5pbjwvYT4gYnV0IEkgY2Fubm90IGZpZ3VyZSBvdXQg aG93IHRvICJydW4iIFNQREsgdG8gY3JlYXRlIHRoZSBTUERLIGJsb2NrIGRldmljZSBjYWxsZWQg QUlPMC4mbmJzcDs8dSBjbGFzcz0iIj48L3U+PHUgY2xhc3M9IiI+PC91PjwvcD4KPC9kaXY+Cjxk aXYgY2xhc3M9IiI+PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4i Pjx1IGNsYXNzPSIiPjwvdT4mbmJzcDs8dSBjbGFzcz0iIj48L3U+PC9wPgo8L2Rpdj4KPGRpdiBj bGFzcz0iIj48cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+SSBo YXZlIHRyaWVkIGZvbGxvd2luZyB0aGUgZ3VpZCBmb3IgdGhlIGlzY3NpIGJsb2NrIGRldmljZToK PGEgaHJlZj0iaHR0cDovL3d3dy5zcGRrLmlvL3NwZGsvZG9jL2lzY3NpX2dldHRpbmdfc3RhcnRl ZC5odG1sIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9IiI+aHR0cDovL3d3dy5zcGRrLmlvL3NwZGsv ZG9jLzx3YnIgY2xhc3M9IiI+aXNjc2lfZ2V0dGluZ19zdGFydGVkLmh0bWw8L2E+IGJ1dCBJIGFt IG5vdCBzdXJlIGlmIEkgaGF2ZSB1c2VkIHRoZSBjb3JyZWN0IGNvbmZpZyBmaWxlLjx1IGNsYXNz PSIiPjwvdT48dSBjbGFzcz0iIj48L3U+PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0iIj48cCBjbGFz cz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHUgY2xhc3M9IiI+PC91PiZu YnNwOzx1IGNsYXNzPSIiPjwvdT48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSIiPjxwIGNsYXNzPSJN c29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj5UaGFua3MsPHUgY2xhc3M9IiI+PC91 Pjx1IGNsYXNzPSIiPjwvdT48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSIiPjxwIGNsYXNzPSJNc29O b3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj5EYWxlPHUgY2xhc3M9IiI+PC91Pjx1IGNs YXNzPSIiPjwvdT48L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iIj48cCBjbGFzcz0iTXNv Tm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHUgY2xhc3M9IiI+PC91PiZuYnNwOzx1 IGNsYXNzPSIiPjwvdT48L3A+CjxkaXYgY2xhc3M9IiI+PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5 bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPk9uIFdlZCwgTm92IDMwLCAyMDE2IGF0IDEwOjQxIEFNLCBE YW5pZWwgVmVya2FtcCAmbHQ7PGEgaHJlZj0ibWFpbHRvOmRhbmllbC52ZXJrYW1wQGludGVsLmNv bSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSIiPmRhbmllbC52ZXJrYW1wQGludGVsLmNvbTwvYT4m Z3Q7IHdyb3RlOjx1IGNsYXNzPSIiPjwvdT48dSBjbGFzcz0iIj48L3U+PC9wPgo8YmxvY2txdW90 ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgI2NjY2NjYyAxLjBwdDtwYWRk aW5nOjBpbiAwaW4gMGluIDYuMHB0O21hcmdpbi1sZWZ0OjQuOHB0O21hcmdpbi10b3A6NS4wcHQ7 bWFyZ2luLXJpZ2h0OjBpbjttYXJnaW4tYm90dG9tOjUuMHB0IiBjbGFzcz0iIj48cCBjbGFzcz0i TXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+T24gMTEvMjkvMjAxNiAwMjoxNSBQ TSwgRGFsZSBDb3JsZXR0IHdyb3RlOjxiciBjbGFzcz0iIj4KJmd0OyBIaSw8YnIgY2xhc3M9IiI+ CiZndDs8YnIgY2xhc3M9IiI+CiZndDsgVGhhbmsgeW91IGFsbCBmb3IgeW91ciByZXBsaWVzLjxi ciBjbGFzcz0iIj4KJmd0OzxiciBjbGFzcz0iIj4KJmd0OyBKaW0sIEkgdGhpbmsgdGhhdCBJIHdp bGwgZmlyc3QgdHJ5IHRoZSBBSU8gZmlyc3QsIGFuZCB0aGVuIHRyeTxiciBjbGFzcz0iIj4KJmd0 OyB3cml0aW5nIHRoZSB1c2Vyc3BhY2UgZHJpdmVyIGFuZCBiZGV2IG1vZHVsZS4gSSBhbSBub3Qg c3VyZSBvZiB3aGF0IEk8YnIgY2xhc3M9IiI+CiZndDsgc2hvdWxkIGRvIHdpdGggdGhlIGNvbmZp ZyBmaWxlcywgb3IgaG93IHRvIGdldCB0aGUgLmtvIGZpbGUgZm9yIHRoZTxiciBjbGFzcz0iIj4K Jmd0OyBBSU8gbW9kdWxlLiBJcyB0aGVyZSBhIG1ha2VmaWxlIHRoYXQgZ2V0cyB0aGUgLmtvIG1v ZHVsZSBmaWxlIG9yIGRvIEk8YnIgY2xhc3M9IiI+CiZndDsgaGF2ZSB0byBjcmVhdGUgb25lPzxi ciBjbGFzcz0iIj4KJmd0OzxiciBjbGFzcz0iIj4KJmd0OyBBbHNvLCB3aGVuIHRyeWluZyB0byB1 c2UgLi9zY3JpcHRzL3NldHVwLnNoIEkgZm91bmQgdGhhdCBpdCBkaWQgbm90PGJyIGNsYXNzPSIi PgomZ3Q7IHdvcmsgYmVjYXVzZSBJIGdvdCB0aGVuIG1lc3NhZ2U6ICJsb2duYW1lOiBubyBsb2dp biBuYW1lIi4gSSB0aGluazxiciBjbGFzcz0iIj4KJmd0OyB0aGF0IHRoaXMgaXMgYSBwcm9ibGVt IHdpdGggdGhlIDE2LjA0IHZlcnNpb24gb2YgVWJ1bnR1OjxiciBjbGFzcz0iIj4KJmd0OyA8YSBo cmVmPSJodHRwczovL2J1Z3MubGF1bmNocGFkLm5ldC91YnVudHUvK3NvdXJjZS9nbm9tZS10ZXJt aW5hbC8rYnVnLzE1Mzc2NDUiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iIj4KaHR0cHM6Ly9idWdz LmxhdW5jaHBhZC5uZXQvPHdiciBjbGFzcz0iIj51YnVudHUvK3NvdXJjZS9nbm9tZS10ZXJtaW5h bC88d2JyIGNsYXNzPSIiPitidWcvMTUzNzY0NTwvYT48YnIgY2xhc3M9IiI+CiZndDsgc28gSSBj aGFuZ2VkIGxpbmUgMTc3IHRvOiB1c2VybmFtZT0gYGVjaG8gd2hvYW1pYCBhbmQgdGhpcyBzZWVt cyB0bzxiciBjbGFzcz0iIj4KJmd0OyB3b3JrLjxiciBjbGFzcz0iIj4KJmd0OzxiciBjbGFzcz0i Ij4KJmd0OyBUaGFua3MsIERhbGU8YnIgY2xhc3M9IiI+CjxiciBjbGFzcz0iIj4KSGkgRGFsZSw8 YnIgY2xhc3M9IiI+CjxiciBjbGFzcz0iIj4KWW91IGRvIG5vdCBuZWVkIGFueSBzcGVjaWFsIGtl cm5lbCBtb2R1bGVzIHRvIHVzZSB0aGUgU1BESyBBSU8gYmRldiAtPGJyIGNsYXNzPSIiPgppdCB1 c2VzIHRoZSBsaWJhaW8gdXNlcnNwYWNlIGxpYnJhcnkgcHJvdmlkZWQgYnkgZ2xpYmMgYW5kIHRo ZSBibG9jazxiciBjbGFzcz0iIj4KZGV2aWNlcyB0aGF0IGFyZSBleHBvc2VkIGJ5IHRoZSB1c3Vh bCBrZXJuZWwgZHJpdmVycyBmb3IgYW55IGJsb2NrPGJyIGNsYXNzPSIiPgpkZXZpY2UgdGhhdCBp cyBzdXBwb3J0ZWQgYnkgTGludXguPGJyIGNsYXNzPSIiPgo8YnIgY2xhc3M9IiI+ClRoYW5rcyBm b3IgdGhlIHJlcG9ydCBhYm91dCBsb2duYW1lIC0gSSdsbCBwcmVwYXJlIGEgcGF0Y2ggdG8gd29y azxiciBjbGFzcz0iIj4KYXJvdW5kIHRoYXQgaXNzdWUuIFRoZSBvbmx5IHRpbWUgdGhlIHVzZXJu YW1lIHByb3ZpZGVkIGJ5IGxvZ25hbWUgaXM8YnIgY2xhc3M9IiI+CnVzZWQgaXMgdG8gcHJvdmlk ZSBhY2Nlc3MgdG8gYW4gdW5wcml2aWxlZ2VkIHVzZXIgdG8gdGhlIFZGSU8gZGV2aWNlLDxiciBj bGFzcz0iIj4Kc28gaWYgeW91IGFyZSBydW5uaW5nIHRoZSBwcm9ncmFtcyB1c2luZyBTUERLIGFz IHJvb3QsIHRoZXJlIHNob3VsZCBoYXZlPGJyIGNsYXNzPSIiPgpubyBuZWdhdGl2ZSBlZmZlY3Qu PGJyIGNsYXNzPSIiPgo8YnIgY2xhc3M9IiI+ClRoYW5rcyw8YnIgY2xhc3M9IiI+Ci0tIERhbmll bDx1IGNsYXNzPSIiPjwvdT48dSBjbGFzcz0iIj48L3U+PC9wPgo8ZGl2IGNsYXNzPSIiPgo8ZGl2 IGNsYXNzPSIiPjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj5f X19fX19fX19fX19fX19fX19fX19fX19fX19fX188d2JyIGNsYXNzPSIiPl9fX19fX19fX19fX19f X19fPGJyIGNsYXNzPSIiPgpTUERLIG1haWxpbmcgbGlzdDxiciBjbGFzcz0iIj4KPGEgaHJlZj0i bWFpbHRvOlNQREtAbGlzdHMuMDEub3JnIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9IiI+U1BES0Bs aXN0cy4wMS5vcmc8L2E+PGJyIGNsYXNzPSIiPgo8YSBocmVmPSJodHRwczovL2xpc3RzLjAxLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL3NwZGsiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iIj5odHRwczov L2xpc3RzLjAxLm9yZy9tYWlsbWFuLzx3YnIgY2xhc3M9IiI+bGlzdGluZm8vc3BkazwvYT48dSBj bGFzcz0iIj48L3U+PHUgY2xhc3M9IiI+PC91PjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2Jsb2NrcXVv dGU+CjwvZGl2PjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48 dSBjbGFzcz0iIj48L3U+Jm5ic3A7PHUgY2xhc3M9IiI+PC91PjwvcD4KPC9kaXY+CjwvZGl2Pjwv ZGl2PjwvZGl2Pgo8L2Rpdj4KCjxiciBjbGFzcz0iIj5fX19fX19fX19fX19fX19fX19fX19fX19f X19fX188d2JyIGNsYXNzPSIiPl9fX19fX19fX19fX19fX19fPGJyIGNsYXNzPSIiPgpTUERLIG1h aWxpbmcgbGlzdDxiciBjbGFzcz0iIj4KPGEgaHJlZj0ibWFpbHRvOlNQREtAbGlzdHMuMDEub3Jn IiBjbGFzcz0iIj5TUERLQGxpc3RzLjAxLm9yZzwvYT48YnIgY2xhc3M9IiI+CjxhIGhyZWY9Imh0 dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vc3BkayIgcmVsPSJub3JlZmVycmVy IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9IiI+aHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi88 d2JyIGNsYXNzPSIiPmxpc3RpbmZvL3NwZGs8L2E+PGJyIGNsYXNzPSIiPgo8YnIgY2xhc3M9IiI+ PC9ibG9ja3F1b3RlPjwvZGl2PjxiciBjbGFzcz0iIj48L2Rpdj4KX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnIgY2xhc3M9IiI+U1BESyBtYWlsaW5nIGxp c3Q8YnIgY2xhc3M9IiI+PGEgaHJlZj0ibWFpbHRvOlNQREtAbGlzdHMuMDEub3JnIiBjbGFzcz0i Ij5TUERLQGxpc3RzLjAxLm9yZzwvYT48YnIgY2xhc3M9IiI+aHR0cHM6Ly9saXN0cy4wMS5vcmcv bWFpbG1hbi9saXN0aW5mby9zcGRrPGJyIGNsYXNzPSIiPjwvZGl2PjwvYmxvY2txdW90ZT48L2Rp dj48YnIgY2xhc3M9IiI+PC9kaXY+PC9ib2R5PjwvaHRtbD4= --===============2436259351392417229==--