From matthew.lagoe at subrigo.net Mon Aug 3 03:55:05 2015 Content-Type: multipart/mixed; boundary="===============5966085192136069303==" MIME-Version: 1.0 From: Matthew Lagoe To: users at ovirt.org Subject: Re: [ovirt-users] Poor guest write speeds Date: Mon, 03 Aug 2015 00:54:47 -0700 Message-ID: <008e01d0cdc1$ad372940$07a57bc0$@subrigo.net> In-Reply-To: CAKZ1H7_sTBjRzv1-8dqUAABwP1qOaf7Xf-EJtq9wkKB_qGZsVA@mail.gmail.com --===============5966085192136069303== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable This is a multipart message in MIME format. ------=3D_NextPart_000_008F_01D0CD87.00D962B0 Content-Type: text/plain; charset=3D"UTF-8" Content-Transfer-Encoding: quoted-printable With zfs you can use sync=3D3Ddisabled to enable async on the storage side = =3D as well just fyi. =3D20 On one of ours we have 18 x 2tb drives across 6 x 3-way-mirrors with 3 =3D intel 7310 ssds 3 way mirrored for zil =3D20 With about 100 vm=3DE2=3D80=3D99s running I get roughly 1400 iops write and= =3D 2230 read with about 600MBps read and 220 write running the tests from a = =3D windows 2008 r2 vm. =3D20 From: Donny Davis [mailto:donny(a)cloudspin.me]=3D20 Sent: Sunday, August 02, 2015 05:49 PM To: Matthew Lagoe Cc: Alan Murrell; users Subject: Re: [ovirt-users] Poor guest write speeds =3D20 Thank you for reporting back. =3D20 I don't have to use async with my NFS share. Its not the same =3D comparison, but just for metrics I am running an =3D20 HP dl380 with 2x6cores and 24GB of ram, with 16 disks in raidz2 with 4 =3D vdevs. Backend is ZFS. Connections are 10GBE =3D20 I get great performance from my setup. =3D20 On Sat, Aug 1, 2015 at 9:00 PM, Matthew Lagoe =3D wrote: You can run without async so long as your nfs server can handle sync =3D writes quickly -----Original Message----- From: users-bounces(a)ovirt.org [mailto:users-bounces(a)ovirt.org] On Behal= f =3D Of Alan Murrell Sent: Saturday, August 01, 2015 05:37 PM To: users Subject: Re: [ovirt-users] Poor guest write speeds Hi Donny (and everyone else who uses NFS-backed storage) You mentioned that you get really good performance in oVirt and I am =3D curious what you use for your NFS options in exportfs? The 'async' option fixed my performance issues, but of course this would not be a recommended option in a production environment, at least unless the NFS server was running with a BBU on the RAID card. Just curious. Thanks! :-) -Alan _______________________________________________ Users mailing list Users(a)ovirt.org http://lists.ovirt.org/mailman/listinfo/users _______________________________________________ Users mailing list Users(a)ovirt.org http://lists.ovirt.org/mailman/listinfo/users =3D20 --=3D20 Donny Davis ------=3D_NextPart_000_008F_01D0CD87.00D962B0 Content-Type: text/html; charset=3D"UTF-8" Content-Transfer-Encoding: quoted-printable

With zfs you can use sync=3D3Ddisabled to enable async on the storage = =3D side as well just fyi.

 

On one of ours we have 18 x 2tb drives across 6 x 3-way-mirrors with =3D 3 intel 7310 ssds 3 way mirrored for zil

 

With about 100 vm=3DE2=3D80=3D99s running I get roughly 1400 iops write = and =3D 2230 read with about 600MBps read and 220 write running the tests from a = =3D windows 2008 r2 vm.

 

From:= =3D = =3D Donny Davis [mailto:donny(a)cloudspin.me]
Sent: Sunday, August = =3D 02, 2015 05:49 PM
To: Matthew Lagoe
Cc: Alan =3D Murrell; users
Subject: Re: [ovirt-users] Poor guest write =3D speeds

 

Thank = =3D you for reporting back.

 

= I =3D don't have to use async with my NFS share. Its not the same comparison, =3D but just for metrics I am running an

 

 HP dl380 with 2x6cores and 24GB of ram, with 16 = =3D disks in raidz2 with 4 vdevs. Backend is ZFS. Connections are =3D 10GBE

 

= I =3D get great performance from my setup.

 

On Sat= , =3D Aug 1, 2015 at 9:00 PM, Matthew Lagoe <matthew.lagoe(a)subrigo.net> =3D wrote:

You can run without async so = =3D long as your nfs server can handle sync =3D writes
quickly


-----Original Message-----
From: = =3D users-bounces(a)ovirt.org =3D [mailto:users-bounces(a)ovirt.org] = On =3D Behalf Of
Alan Murrell
Sent: Saturday, August 01, 2015 05:37 =3D PM
To: users
Subject: Re: [ovirt-users] Poor guest write =3D speeds

Hi Donny (and everyone else who uses NFS-backed =3D storage)

You mentioned that you get really good performance in =3D oVirt and I am curious
what you use for your NFS options in =3D exportfs?  The 'async'
option fixed my performance issues, but =3D of course this would not be a
recommended option in a production =3D environment, at least unless the NFS
server was running with a BBU on = =3D the RAID card.

Just curious.  Thanks! =3D :-)

-Alan

_______________________________________________
User= =3D s mailing list
Users(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/users

_______________________________________________
Users mailing =3D list
Users(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/users<= =3D /o:p>



 

-- = =3D

Donny =3D Davis

------=3D_NextPart_000_008F_01D0CD87.00D962B0-- --===============5966085192136069303== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" VGhpcyBpcyBhIG11bHRpcGFydCBtZXNzYWdlIGluIE1JTUUgZm9ybWF0LgoKLS0tLS0tPV9OZXh0 UGFydF8wMDBfMDA4Rl8wMUQwQ0Q4Ny4wMEQ5NjJCMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47 CgljaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50 YWJsZQoKV2l0aCB6ZnMgeW91IGNhbiB1c2Ugc3luYz0zRGRpc2FibGVkIHRvIGVuYWJsZSBhc3lu YyBvbiB0aGUgc3RvcmFnZSBzaWRlID0KYXMgd2VsbCBqdXN0IGZ5aS4KCj0yMAoKT24gb25lIG9m IG91cnMgd2UgaGF2ZSAxOCB4IDJ0YiBkcml2ZXMgYWNyb3NzIDYgeCAzLXdheS1taXJyb3JzIHdp dGggMyA9CmludGVsIDczMTAgc3NkcyAzIHdheSBtaXJyb3JlZCBmb3IgemlsCgo9MjAKCldpdGgg YWJvdXQgMTAwIHZtPUUyPTgwPTk5cyBydW5uaW5nIEkgZ2V0IHJvdWdobHkgMTQwMCBpb3BzIHdy aXRlIGFuZCA9CjIyMzAgcmVhZCB3aXRoIGFib3V0IDYwME1CcHMgcmVhZCBhbmQgMjIwIHdyaXRl IHJ1bm5pbmcgdGhlIHRlc3RzIGZyb20gYSA9CndpbmRvd3MgMjAwOCByMiB2bS4KCj0yMAoKRnJv bTogRG9ubnkgRGF2aXMgW21haWx0bzpkb25ueUBjbG91ZHNwaW4ubWVdPTIwClNlbnQ6IFN1bmRh eSwgQXVndXN0IDAyLCAyMDE1IDA1OjQ5IFBNClRvOiBNYXR0aGV3IExhZ29lCkNjOiBBbGFuIE11 cnJlbGw7IHVzZXJzClN1YmplY3Q6IFJlOiBbb3ZpcnQtdXNlcnNdIFBvb3IgZ3Vlc3Qgd3JpdGUg c3BlZWRzCgo9MjAKClRoYW5rIHlvdSBmb3IgcmVwb3J0aW5nIGJhY2suCgo9MjAKCkkgZG9uJ3Qg aGF2ZSB0byB1c2UgYXN5bmMgd2l0aCBteSBORlMgc2hhcmUuIEl0cyBub3QgdGhlIHNhbWUgPQpj b21wYXJpc29uLCBidXQganVzdCBmb3IgbWV0cmljcyBJIGFtIHJ1bm5pbmcgYW4KCj0yMAoKIEhQ IGRsMzgwIHdpdGggMng2Y29yZXMgYW5kIDI0R0Igb2YgcmFtLCB3aXRoIDE2IGRpc2tzIGluIHJh aWR6MiB3aXRoIDQgPQp2ZGV2cy4gQmFja2VuZCBpcyBaRlMuIENvbm5lY3Rpb25zIGFyZSAxMEdC RQoKPTIwCgpJIGdldCBncmVhdCBwZXJmb3JtYW5jZSBmcm9tIG15IHNldHVwLgoKPTIwCgpPbiBT YXQsIEF1ZyAxLCAyMDE1IGF0IDk6MDAgUE0sIE1hdHRoZXcgTGFnb2UgPQo8bWF0dGhldy5sYWdv ZUBzdWJyaWdvLm5ldD4gd3JvdGU6CgpZb3UgY2FuIHJ1biB3aXRob3V0IGFzeW5jIHNvIGxvbmcg YXMgeW91ciBuZnMgc2VydmVyIGNhbiBoYW5kbGUgc3luYyA9CndyaXRlcwpxdWlja2x5CgoKLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KRnJvbTogdXNlcnMtYm91bmNlc0BvdmlydC5vcmcgW21h aWx0bzp1c2Vycy1ib3VuY2VzQG92aXJ0Lm9yZ10gT24gQmVoYWxmID0KT2YKQWxhbiBNdXJyZWxs ClNlbnQ6IFNhdHVyZGF5LCBBdWd1c3QgMDEsIDIwMTUgMDU6MzcgUE0KVG86IHVzZXJzClN1Ympl Y3Q6IFJlOiBbb3ZpcnQtdXNlcnNdIFBvb3IgZ3Vlc3Qgd3JpdGUgc3BlZWRzCgpIaSBEb25ueSAo YW5kIGV2ZXJ5b25lIGVsc2Ugd2hvIHVzZXMgTkZTLWJhY2tlZCBzdG9yYWdlKQoKWW91IG1lbnRp b25lZCB0aGF0IHlvdSBnZXQgcmVhbGx5IGdvb2QgcGVyZm9ybWFuY2UgaW4gb1ZpcnQgYW5kIEkg YW0gPQpjdXJpb3VzCndoYXQgeW91IHVzZSBmb3IgeW91ciBORlMgb3B0aW9ucyBpbiBleHBvcnRm cz8gIFRoZSAnYXN5bmMnCm9wdGlvbiBmaXhlZCBteSBwZXJmb3JtYW5jZSBpc3N1ZXMsIGJ1dCBv ZiBjb3Vyc2UgdGhpcyB3b3VsZCBub3QgYmUgYQpyZWNvbW1lbmRlZCBvcHRpb24gaW4gYSBwcm9k dWN0aW9uIGVudmlyb25tZW50LCBhdCBsZWFzdCB1bmxlc3MgdGhlIE5GUwpzZXJ2ZXIgd2FzIHJ1 bm5pbmcgd2l0aCBhIEJCVSBvbiB0aGUgUkFJRCBjYXJkLgoKSnVzdCBjdXJpb3VzLiAgVGhhbmtz ISA6LSkKCi1BbGFuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpVc2VycyBtYWlsaW5nIGxpc3QKVXNlcnNAb3ZpcnQub3JnCmh0dHA6Ly9saXN0cy5vdmly dC5vcmcvbWFpbG1hbi9saXN0aW5mby91c2VycwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClVzZXJzIG1haWxpbmcgbGlzdApVc2Vyc0BvdmlydC5vcmcK aHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3VzZXJzCgoKCgoKPTIwCgot LT0yMAoKRG9ubnkgRGF2aXMKCgotLS0tLS09X05leHRQYXJ0XzAwMF8wMDhGXzAxRDBDRDg3LjAw RDk2MkIwCkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOwoJY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCjxodG1sIHhtbG5zOnY9M0QidXJu OnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiID0KeG1sbnM6bz0zRCJ1cm46c2NoZW1hcy1taWNy b3NvZnQtY29tOm9mZmljZTpvZmZpY2UiID0KeG1sbnM6dz0zRCJ1cm46c2NoZW1hcy1taWNyb3Nv ZnQtY29tOm9mZmljZTp3b3JkIiA9CnhtbG5zOm09M0QiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0 LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiA9CnhtbG5zPTNEImh0dHA6Ly93d3cudzMub3JnL1RS L1JFQy1odG1sNDAiPjxoZWFkPjxtZXRhID0KaHR0cC1lcXVpdj0zRENvbnRlbnQtVHlwZSBjb250 ZW50PTNEInRleHQvaHRtbDsgY2hhcnNldD0zRHV0Zi04Ij48bWV0YSA9Cm5hbWU9M0RHZW5lcmF0 b3IgY29udGVudD0zRCJNaWNyb3NvZnQgV29yZCAxNCAoZmlsdGVyZWQgPQptZWRpdW0pIj48c3R5 bGU+PCEtLQovKiBGb250IERlZmluaXRpb25zICovCkBmb250LWZhY2UKCXtmb250LWZhbWlseTpD YWxpYnJpOwoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fQpAZm9udC1mYWNlCgl7Zm9u dC1mYW1pbHk6VGFob21hOwoJcGFub3NlLTE6MiAxMSA2IDQgMyA1IDQgNCAyIDQ7fQovKiBTdHls ZSBEZWZpbml0aW9ucyAqLwpwLk1zb05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFs Cgl7bWFyZ2luOjBpbjsKCW1hcmdpbi1ib3R0b206LjAwMDFwdDsKCWZvbnQtc2l6ZToxMi4wcHQ7 Cglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIiwic2VyaWYiO30KYTpsaW5rLCBzcGFuLk1z b0h5cGVybGluawoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsKCWNvbG9yOmJsdWU7Cgl0ZXh0LWRl Y29yYXRpb246dW5kZXJsaW5lO30KYTp2aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2Vk Cgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5OwoJY29sb3I6cHVycGxlOwoJdGV4dC1kZWNvcmF0aW9u OnVuZGVybGluZTt9CnAuTXNvQWNldGF0ZSwgbGkuTXNvQWNldGF0ZSwgZGl2Lk1zb0FjZXRhdGUK CXttc28tc3R5bGUtcHJpb3JpdHk6OTk7Cgltc28tc3R5bGUtbGluazoiQmFsbG9vbiBUZXh0IENo YXIiOwoJbWFyZ2luOjBpbjsKCW1hcmdpbi1ib3R0b206LjAwMDFwdDsKCWZvbnQtc2l6ZTo4LjBw dDsKCWZvbnQtZmFtaWx5OiJUYWhvbWEiLCJzYW5zLXNlcmlmIjt9CnNwYW4uRW1haWxTdHlsZTE3 Cgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtcmVwbHk7Cglmb250LWZhbWlseToiQ2FsaWJyaSIs InNhbnMtc2VyaWYiOwoJY29sb3I6IzFGNDk3RDt9CnNwYW4uQmFsbG9vblRleHRDaGFyCgl7bXNv LXN0eWxlLW5hbWU6IkJhbGxvb24gVGV4dCBDaGFyIjsKCW1zby1zdHlsZS1wcmlvcml0eTo5OTsK CW1zby1zdHlsZS1saW5rOiJCYWxsb29uIFRleHQiOwoJZm9udC1mYW1pbHk6IlRhaG9tYSIsInNh bnMtc2VyaWYiO30KLk1zb0NocERlZmF1bHQKCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsK CWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7fQpAcGFnZSBXb3JkU2VjdGlvbjEK CXtzaXplOjguNWluIDExLjBpbjsKCW1hcmdpbjoxLjBpbiAxLjBpbiAxLjBpbiAxLjBpbjt9CmRp di5Xb3JkU2VjdGlvbjEKCXtwYWdlOldvcmRTZWN0aW9uMTt9Ci0tPjwvc3R5bGU+PCEtLVtpZiBn dGUgbXNvIDldPjx4bWw+CjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9M0QiZWRpdCIgc3BpZG1heD0z RCIxMDI2IiAvPgo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4KPG86 c2hhcGVsYXlvdXQgdjpleHQ9M0QiZWRpdCI+CjxvOmlkbWFwIHY6ZXh0PTNEImVkaXQiIGRhdGE9 M0QiMSIgLz4KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPjwvaGVhZD48Ym9keSBs YW5nPTNERU4tVVMgbGluaz0zRGJsdWUgPQp2bGluaz0zRHB1cnBsZT48ZGl2IGNsYXNzPTNEV29y ZFNlY3Rpb24xPjxwIGNsYXNzPTNETXNvTm9ybWFsPjxzcGFuID0Kc3R5bGU9M0QnZm9udC1zaXpl OjExLjBwdDtmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiO2NvbG9yOiMxRjQ5Nz0K RCc+V2l0aCB6ZnMgeW91IGNhbiB1c2Ugc3luYz0zRGRpc2FibGVkIHRvIGVuYWJsZSBhc3luYyBv biB0aGUgc3RvcmFnZSA9CnNpZGUgYXMgd2VsbCBqdXN0IGZ5aS48bzpwPjwvbzpwPjwvc3Bhbj48 L3A+PHAgY2xhc3M9M0RNc29Ob3JtYWw+PHNwYW4gPQpzdHlsZT0zRCdmb250LXNpemU6MTEuMHB0 O2ZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7Y29sb3I6IzFGNDk3PQpEJz48bzpw PiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9M0RNc29Ob3JtYWw+PHNwYW4gPQpzdHls ZT0zRCdmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7 Y29sb3I6IzFGNDk3PQpEJz5PbiBvbmUgb2Ygb3VycyB3ZSBoYXZlIDE4IHggMnRiIGRyaXZlcyBh Y3Jvc3MgNiB4IDMtd2F5LW1pcnJvcnMgd2l0aCA9CjMgaW50ZWwgNzMxMCBzc2RzIDMgd2F5IG1p cnJvcmVkIGZvciB6aWw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAgPQpjbGFzcz0zRE1zb05vcm1h bD48c3BhbiA9CnN0eWxlPTNEJ2ZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6IkNhbGlicmki LCJzYW5zLXNlcmlmIjtjb2xvcjojMUY0OTc9CkQnPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv cD48cCBjbGFzcz0zRE1zb05vcm1hbD48c3BhbiA9CnN0eWxlPTNEJ2ZvbnQtc2l6ZToxMS4wcHQ7 Zm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjtjb2xvcjojMUY0OTc9CkQnPldpdGgg YWJvdXQgMTAwIHZtPUUyPTgwPTk5cyBydW5uaW5nIEkgZ2V0IHJvdWdobHkgMTQwMCBpb3BzIHdy aXRlIGFuZCA9CjIyMzAgcmVhZCB3aXRoIGFib3V0IDYwME1CcHMgcmVhZCBhbmQgMjIwIHdyaXRl IHJ1bm5pbmcgdGhlIHRlc3RzIGZyb20gYSA9CndpbmRvd3MgMjAwOCByMiB2bS48bzpwPjwvbzpw Pjwvc3Bhbj48L3A+PHAgY2xhc3M9M0RNc29Ob3JtYWw+PHNwYW4gPQpzdHlsZT0zRCdmb250LXNp emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7Y29sb3I6IzFGNDk3 PQpEJz48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9M0RNc29Ob3JtYWw+PGI+ PHNwYW4gPQpzdHlsZT0zRCdmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiJUYWhvbWEiLCJz YW5zLXNlcmlmIic+RnJvbTo8L3NwYW4+PQo8L2I+PHNwYW4gc3R5bGU9M0QnZm9udC1zaXplOjEw LjBwdDtmb250LWZhbWlseToiVGFob21hIiwic2Fucy1zZXJpZiInPiA9CkRvbm55IERhdmlzIFtt YWlsdG86ZG9ubnlAY2xvdWRzcGluLm1lXSA8YnI+PGI+U2VudDo8L2I+IFN1bmRheSwgQXVndXN0 ID0KMDIsIDIwMTUgMDU6NDkgUE08YnI+PGI+VG86PC9iPiBNYXR0aGV3IExhZ29lPGJyPjxiPkNj OjwvYj4gQWxhbiA9Ck11cnJlbGw7IHVzZXJzPGJyPjxiPlN1YmplY3Q6PC9iPiBSZTogW292aXJ0 LXVzZXJzXSBQb29yIGd1ZXN0IHdyaXRlID0Kc3BlZWRzPG86cD48L286cD48L3NwYW4+PC9wPjxw ID0KY2xhc3M9M0RNc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PGRpdj48cCBjbGFzcz0z RE1zb05vcm1hbD5UaGFuayA9CnlvdSBmb3IgcmVwb3J0aW5nIGJhY2suPG86cD48L286cD48L3A+ PGRpdj48cCA9CmNsYXNzPTNETXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjwvZGl2Pjxk aXY+PHAgY2xhc3M9M0RNc29Ob3JtYWw+SSA9CmRvbid0IGhhdmUgdG8gdXNlIGFzeW5jIHdpdGgg bXkgTkZTIHNoYXJlLiBJdHMgbm90IHRoZSBzYW1lIGNvbXBhcmlzb24sID0KYnV0IGp1c3QgZm9y IG1ldHJpY3MgSSBhbSBydW5uaW5nIGFuPG86cD48L286cD48L3A+PC9kaXY+PGRpdj48cCA9CmNs YXNzPTNETXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjwvZGl2PjxkaXY+PHAgPQpjbGFz cz0zRE1zb05vcm1hbD4mbmJzcDtIUCBkbDM4MCB3aXRoIDJ4NmNvcmVzIGFuZCAyNEdCIG9mIHJh bSwgd2l0aCAxNiA9CmRpc2tzIGluIHJhaWR6MiB3aXRoIDQgdmRldnMuIEJhY2tlbmQgaXMgWkZT LiBDb25uZWN0aW9ucyBhcmUgPQoxMEdCRTxvOnA+PC9vOnA+PC9wPjwvZGl2PjxkaXY+PHAgPQpj bGFzcz0zRE1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48L2Rpdj48ZGl2PjxwIGNsYXNz PTNETXNvTm9ybWFsPkkgPQpnZXQgZ3JlYXQgcGVyZm9ybWFuY2UgZnJvbSBteSBzZXR1cC48bzpw PjwvbzpwPjwvcD48L2Rpdj48L2Rpdj48ZGl2PjxwID0KY2xhc3M9M0RNc29Ob3JtYWw+PG86cD4m bmJzcDs8L286cD48L3A+PGRpdj48cCBjbGFzcz0zRE1zb05vcm1hbD5PbiBTYXQsID0KQXVnIDEs IDIwMTUgYXQgOTowMCBQTSwgTWF0dGhldyBMYWdvZSAmbHQ7PGEgPQpocmVmPTNEIm1haWx0bzpt YXR0aGV3LmxhZ29lQHN1YnJpZ28ubmV0IiA9CnRhcmdldD0zRCJfYmxhbmsiPm1hdHRoZXcubGFn b2VAc3Vicmlnby5uZXQ8L2E+Jmd0OyA9Cndyb3RlOjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPTNE TXNvTm9ybWFsPllvdSBjYW4gcnVuIHdpdGhvdXQgYXN5bmMgc28gPQpsb25nIGFzIHlvdXIgbmZz IHNlcnZlciBjYW4gaGFuZGxlIHN5bmMgPQp3cml0ZXM8YnI+cXVpY2tseTxvOnA+PC9vOnA+PC9w PjxkaXY+PGRpdj48cCBjbGFzcz0zRE1zb05vcm1hbCA9CnN0eWxlPTNEJ21hcmdpbi1ib3R0b206 MTIuMHB0Jz48YnI+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS08YnI+RnJvbTogPQo8YSBocmVm PTNEIm1haWx0bzp1c2Vycy1ib3VuY2VzQG92aXJ0Lm9yZyI+dXNlcnMtYm91bmNlc0BvdmlydC5v cmc8L2E+ID0KW21haWx0bzo8YSA9CmhyZWY9M0QibWFpbHRvOnVzZXJzLWJvdW5jZXNAb3ZpcnQu b3JnIj51c2Vycy1ib3VuY2VzQG92aXJ0Lm9yZzwvYT5dIE9uID0KQmVoYWxmIE9mPGJyPkFsYW4g TXVycmVsbDxicj5TZW50OiBTYXR1cmRheSwgQXVndXN0IDAxLCAyMDE1IDA1OjM3ID0KUE08YnI+ VG86IHVzZXJzPGJyPlN1YmplY3Q6IFJlOiBbb3ZpcnQtdXNlcnNdIFBvb3IgZ3Vlc3Qgd3JpdGUg PQpzcGVlZHM8YnI+PGJyPkhpIERvbm55IChhbmQgZXZlcnlvbmUgZWxzZSB3aG8gdXNlcyBORlMt YmFja2VkID0Kc3RvcmFnZSk8YnI+PGJyPllvdSBtZW50aW9uZWQgdGhhdCB5b3UgZ2V0IHJlYWxs eSBnb29kIHBlcmZvcm1hbmNlIGluID0Kb1ZpcnQgYW5kIEkgYW0gY3VyaW91czxicj53aGF0IHlv dSB1c2UgZm9yIHlvdXIgTkZTIG9wdGlvbnMgaW4gPQpleHBvcnRmcz8mbmJzcDsgVGhlICdhc3lu Yyc8YnI+b3B0aW9uIGZpeGVkIG15IHBlcmZvcm1hbmNlIGlzc3VlcywgYnV0ID0Kb2YgY291cnNl IHRoaXMgd291bGQgbm90IGJlIGE8YnI+cmVjb21tZW5kZWQgb3B0aW9uIGluIGEgcHJvZHVjdGlv biA9CmVudmlyb25tZW50LCBhdCBsZWFzdCB1bmxlc3MgdGhlIE5GUzxicj5zZXJ2ZXIgd2FzIHJ1 bm5pbmcgd2l0aCBhIEJCVSBvbiA9CnRoZSBSQUlEIGNhcmQuPGJyPjxicj5KdXN0IGN1cmlvdXMu Jm5ic3A7IFRoYW5rcyEgPQo6LSk8YnI+PGJyPi1BbGFuPG86cD48L286cD48L3A+PC9kaXY+PC9k aXY+PGRpdj48ZGl2PjxwID0KY2xhc3M9M0RNc29Ob3JtYWw+X19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX188YnI+VXNlcj0KcyBtYWlsaW5nIGxpc3Q8YnI+PGEg PQpocmVmPTNEIm1haWx0bzpVc2Vyc0BvdmlydC5vcmciPlVzZXJzQG92aXJ0Lm9yZzwvYT48YnI+ PGEgPQpocmVmPTNEImh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby91c2Vy cyIgPQp0YXJnZXQ9M0QiX2JsYW5rIj5odHRwOi8vbGlzdHMub3ZpcnQub3JnL21haWxtYW4vbGlz dGluZm8vdXNlcnM8L2E+PGJyPjxiPQpyPjxicj5fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXzxicj5Vc2VycyBtYWlsaW5nID0KbGlzdDxicj48YSBocmVmPTNE Im1haWx0bzpVc2Vyc0BvdmlydC5vcmciPlVzZXJzQG92aXJ0Lm9yZzwvYT48YnI+PGEgPQpocmVm PTNEImh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby91c2VycyIgPQp0YXJn ZXQ9M0QiX2JsYW5rIj5odHRwOi8vbGlzdHMub3ZpcnQub3JnL21haWxtYW4vbGlzdGluZm8vdXNl cnM8L2E+PG86cD48PQovbzpwPjwvcD48L2Rpdj48L2Rpdj48L2Rpdj48cCBjbGFzcz0zRE1zb05v cm1hbD48YnI+PGJyID0KY2xlYXI9M0RhbGw+PG86cD48L286cD48L3A+PGRpdj48cCA9CmNsYXNz PTNETXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjwvZGl2PjxwIGNsYXNzPTNETXNvTm9y bWFsPi0tID0KPG86cD48L286cD48L3A+PGRpdj48ZGl2PjxwIGNsYXNzPTNETXNvTm9ybWFsID0K c3R5bGU9M0QnbWFyZ2luLWJvdHRvbToxMi4wcHQnPkRvbm55ID0KRGF2aXM8bzpwPjwvbzpwPjwv cD48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2JvZHk+PC9odG1sPgotLS0tLS09X05leHRQYXJ0 XzAwMF8wMDhGXzAxRDBDRDg3LjAwRDk2MkIwLS0KCgo= --===============5966085192136069303==--