From Karli.Sjoberg at slu.se Mon Jul 30 05:03:25 2012 Content-Type: multipart/mixed; boundary="===============4708419750383248643==" MIME-Version: 1.0 From: =?utf-8?q?Karli_Sj=C3=B6berg_=3CKarli=2ESjoberg_at_slu=2Ese=3E?= To: users at ovirt.org Subject: Re: [Users] RFE: A manual way of saying that only hostA in a DC shall be used as proxy for power commands Date: Mon, 30 Jul 2012 11:03:22 +0200 Message-ID: <632B7410-C488-4422-B58D-A34F9998BFDF@slu.se> In-Reply-To: 50164D7C.5000801@redhat.com --===============4708419750383248643== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable --_000_632B7410C4884422B58DA34F9998BFDFsluse_ Content-Type: text/plain; charset=3D"iso-8859-1" Content-Transfer-Encoding: quoted-printable 30 jul 2012 kl. 11.01 skrev Itamar Heim: On 07/30/2012 08:56 AM, Karli Sj=3DF6berg wrote: 28 jul 2012 kl. 14.11 skrev Moti Asayag: On 07/26/2012 02:53 PM, Karli Sj=3DF6berg wrote: Hi, In my DC, I have three hosts added: hostA hostB hostC I want a way to force only to use hostA as a proxy for power commands. The algorithm of selection a host to act as a proxy for PM commands is quite naive: any host from the system with status UP. You can see how it is being selected in FencingExecutor.FindVdsToFence() from ovirt-engine/backend/manager/modules/bll/src/main/java/org/ovirt/engine/cor= =3D e/bll/FencingExecutor.java There is no other algorithm for the selection at the moment. How would you handle a case in which hostA isn't responsive ? Wouldn't you prefer trying to perform the fencing using other available host ? Let me explain a little to make you better understand my reasoning behind this configuration. We work with segmented, separated networks. One network for public access, one for storage traffic, one for management and so on. That means that if the nodes themselves have to do their own power-management, the nodes would require three interfaces each, and the metal we are using for hosts just don=3DB4t have that. But if we can use the engine to do that, the hosts would only require two interfaces, which most 1U servers are equipped with as standard (plus one iLO/IPMI/whatev), so we can use them as hosts without issue. Then the backend has one extra interface that it can use to communicate over the power management network to the respective service processor with. Is there a "better" way to achieve what we are aiming for? Ideally, I would like to set up the two NICs in a bond and create VLAN-interfaces on top of that bond. That way, I can have as many virtual interfaces as I want without having more than two physical NICs, but I haven=3DB4t been able to find a good HOWTO explaining the process. I think there is a difference between: 1. allowing engine to fence 2. allowing to choose fencing host per cluster (or per host) it sounds like you actually want #1, but can live with #2, by installing the engine as a host as well. Exactly, I can live with #2, as I have the engine added as hostA in my DC Med V=3DE4nliga H=3DE4lsningar ---------------------------------------------------------------------------= =3D ---- Karli Sj=3DF6berg Swedish University of Agricultural Sciences Box 7079 (Visiting Address Kron=3DE5sv=3DE4gen 8) S-750 07 Uppsala, Sweden Phone: +46-(0)18-67 15 66 karli.sjoberg(a)slu.se --_000_632B7410C4884422B58DA34F9998BFDFsluse_ Content-Type: text/html; charset=3D"iso-8859-1" Content-Transfer-Encoding: quoted-printable
30 jul 2012 = =3D kl. 11.01 skrev Itamar Heim:

<=3D blockquote type=3D3D"cite">
On 07/30/2012 08:56 AM, Karli Sj=3DF6berg w= rote=3D :

2=3D 8 jul 2012 kl. 14.11 skrev Moti Asayag:

On 07/26/2012 02:53 PM, Karli Sj=3DF6berg wrote:
Hi,

=
<=3D blockquote type=3D3D"cite">In my DC, I have three hosts added:

<=3D blockquote type=3D3D"cite">
hostA
hostB
=3D
hostC

<=3D blockquote type=3D3D"cite">
I want a way to forc= e on=3D ly to use hostA as a proxy for power commands.

<= /blo=3D ckquote>
Th=3D e algorithm of selection a host to act as a proxy for PM commands is
=3D quite naive: any host from the system with status UP.

You = can =3D see how it is being selected in FencingExecutor.FindVdsToFence()
= from=3D
ovirt-engine/backend/manager/modules/bll/src/main/java/org/ovirt/eng= =3D ine/core/bll/FencingExecutor.java

<= bloc=3D kquote type=3D3D"cite">
There is no other algori= thm =3D for the selection at the moment.

How would you handle a ca= se i=3D n which hostA isn't responsive ? Wouldn't
you prefer trying to pe= rfor=3D m the fencing using other available host ?


<= /blo=3D ckquote>
Let me explain a little to make you bet= te=3D r understand my reasoning
behin= d =3D this configuration.

We work with segmented, separated networks.= O=3D ne network for public
access, o= ne=3D for storage traffic, one for management and so on. That
means that if the nodes themselves have to do the= ir=3D own
power-management, the node= s =3D would require three interfaces each, and the
metal we are using for hosts just don=3DB4t have that. But if= we =3D can use the
engine to do that, = th=3D e hosts would only require two interfaces, which
most 1U servers are equipped with as standard (plus one=3D
iLO/IPMI/whatev), so we can use th= em=3D as hosts without issue. Then the
backend has one extra interface that it can use to communicate over the
power management network to the r= es=3D pective service processor with.
<=3D br>
Is there a "better" way to achi= ev=3D e what we are aiming for? Ideally, I
would like to set up the two NICs in a bond and create VLAN-interfaces<= =3D br>
on top of that bond. That way, = I =3D can have as many virtual interfaces as
I want without having more than two physical NICs, but I haven=3DB4t = be=3D en
able to find a good HOWTO ex= pl=3D aining the process.


I think there is a difference between:
1. allowing engine to fen= =3D ce
2. allowing to choose fencing host per cluster (or per host)

i= =3D t sounds like you actually want #1, but can live with #2, by installing the engine as a host as well.

E= =3D xactly, I can live with #2, as I have the engine added as hostA in my DC


Med V=3DE4nliga H=3DE4lsningar
-------------------------= ----=3D --------------------------------------------------
Karli Sj=3DF6berg
= Sw=3D edish University of Agricultural Sciences
Box 7079 (Visiting Address Kro= =3D n=3DE5sv=3DE4gen 8)
S-750 07 Uppsala, Sweden
Phone:  +46-(0)18-6= 7 15=3D 66
karli.sjoberg= (a)slu=3D .se

=3D --_000_632B7410C4884422B58DA34F9998BFDFsluse_-- --===============4708419750383248643== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" LS1fMDAwXzYzMkI3NDEwQzQ4ODQ0MjJCNThEQTM0Rjk5OThCRkRGc2x1c2VfCkNvbnRlbnQtVHlw ZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKQ29udGVudC1UcmFuc2Zlci1FbmNv ZGluZzogcXVvdGVkLXByaW50YWJsZQoKCjMwIGp1bCAyMDEyIGtsLiAxMS4wMSBza3JldiBJdGFt YXIgSGVpbToKCk9uIDA3LzMwLzIwMTIgMDg6NTYgQU0sIEthcmxpIFNqPUY2YmVyZyB3cm90ZToK CjI4IGp1bCAyMDEyIGtsLiAxNC4xMSBza3JldiBNb3RpIEFzYXlhZzoKCk9uIDA3LzI2LzIwMTIg MDI6NTMgUE0sIEthcmxpIFNqPUY2YmVyZyB3cm90ZToKSGksCgpJbiBteSBEQywgSSBoYXZlIHRo cmVlIGhvc3RzIGFkZGVkOgoKaG9zdEEKaG9zdEIKaG9zdEMKCkkgd2FudCBhIHdheSB0byBmb3Jj ZSBvbmx5IHRvIHVzZSBob3N0QSBhcyBhIHByb3h5IGZvciBwb3dlciBjb21tYW5kcy4KClRoZSBh bGdvcml0aG0gb2Ygc2VsZWN0aW9uIGEgaG9zdCB0byBhY3QgYXMgYSBwcm94eSBmb3IgUE0gY29t bWFuZHMgaXMKcXVpdGUgbmFpdmU6IGFueSBob3N0IGZyb20gdGhlIHN5c3RlbSB3aXRoIHN0YXR1 cyBVUC4KCllvdSBjYW4gc2VlIGhvdyBpdCBpcyBiZWluZyBzZWxlY3RlZCBpbiBGZW5jaW5nRXhl Y3V0b3IuRmluZFZkc1RvRmVuY2UoKQpmcm9tCm92aXJ0LWVuZ2luZS9iYWNrZW5kL21hbmFnZXIv bW9kdWxlcy9ibGwvc3JjL21haW4vamF2YS9vcmcvb3ZpcnQvZW5naW5lL2Nvcj0KZS9ibGwvRmVu Y2luZ0V4ZWN1dG9yLmphdmEKClRoZXJlIGlzIG5vIG90aGVyIGFsZ29yaXRobSBmb3IgdGhlIHNl bGVjdGlvbiBhdCB0aGUgbW9tZW50LgoKSG93IHdvdWxkIHlvdSBoYW5kbGUgYSBjYXNlIGluIHdo aWNoIGhvc3RBIGlzbid0IHJlc3BvbnNpdmUgPyBXb3VsZG4ndAp5b3UgcHJlZmVyIHRyeWluZyB0 byBwZXJmb3JtIHRoZSBmZW5jaW5nIHVzaW5nIG90aGVyIGF2YWlsYWJsZSBob3N0ID8KCgpMZXQg bWUgZXhwbGFpbiBhIGxpdHRsZSB0byBtYWtlIHlvdSBiZXR0ZXIgdW5kZXJzdGFuZCBteSByZWFz b25pbmcKYmVoaW5kIHRoaXMgY29uZmlndXJhdGlvbi4KCldlIHdvcmsgd2l0aCBzZWdtZW50ZWQs IHNlcGFyYXRlZCBuZXR3b3Jrcy4gT25lIG5ldHdvcmsgZm9yIHB1YmxpYwphY2Nlc3MsIG9uZSBm b3Igc3RvcmFnZSB0cmFmZmljLCBvbmUgZm9yIG1hbmFnZW1lbnQgYW5kIHNvIG9uLiBUaGF0Cm1l YW5zIHRoYXQgaWYgdGhlIG5vZGVzIHRoZW1zZWx2ZXMgaGF2ZSB0byBkbyB0aGVpciBvd24KcG93 ZXItbWFuYWdlbWVudCwgdGhlIG5vZGVzIHdvdWxkIHJlcXVpcmUgdGhyZWUgaW50ZXJmYWNlcyBl YWNoLCBhbmQgdGhlCm1ldGFsIHdlIGFyZSB1c2luZyBmb3IgaG9zdHMganVzdCBkb249QjR0IGhh dmUgdGhhdC4gQnV0IGlmIHdlIGNhbiB1c2UgdGhlCmVuZ2luZSB0byBkbyB0aGF0LCB0aGUgaG9z dHMgd291bGQgb25seSByZXF1aXJlIHR3byBpbnRlcmZhY2VzLCB3aGljaAptb3N0IDFVIHNlcnZl cnMgYXJlIGVxdWlwcGVkIHdpdGggYXMgc3RhbmRhcmQgKHBsdXMgb25lCmlMTy9JUE1JL3doYXRl diksIHNvIHdlIGNhbiB1c2UgdGhlbSBhcyBob3N0cyB3aXRob3V0IGlzc3VlLiBUaGVuIHRoZQpi YWNrZW5kIGhhcyBvbmUgZXh0cmEgaW50ZXJmYWNlIHRoYXQgaXQgY2FuIHVzZSB0byBjb21tdW5p Y2F0ZSBvdmVyIHRoZQpwb3dlciBtYW5hZ2VtZW50IG5ldHdvcmsgdG8gdGhlIHJlc3BlY3RpdmUg c2VydmljZSBwcm9jZXNzb3Igd2l0aC4KCklzIHRoZXJlIGEgImJldHRlciIgd2F5IHRvIGFjaGll dmUgd2hhdCB3ZSBhcmUgYWltaW5nIGZvcj8gSWRlYWxseSwgSQp3b3VsZCBsaWtlIHRvIHNldCB1 cCB0aGUgdHdvIE5JQ3MgaW4gYSBib25kIGFuZCBjcmVhdGUgVkxBTi1pbnRlcmZhY2VzCm9uIHRv cCBvZiB0aGF0IGJvbmQuIFRoYXQgd2F5LCBJIGNhbiBoYXZlIGFzIG1hbnkgdmlydHVhbCBpbnRl cmZhY2VzIGFzCkkgd2FudCB3aXRob3V0IGhhdmluZyBtb3JlIHRoYW4gdHdvIHBoeXNpY2FsIE5J Q3MsIGJ1dCBJIGhhdmVuPUI0dCBiZWVuCmFibGUgdG8gZmluZCBhIGdvb2QgSE9XVE8gZXhwbGFp bmluZyB0aGUgcHJvY2Vzcy4KCgpJIHRoaW5rIHRoZXJlIGlzIGEgZGlmZmVyZW5jZSBiZXR3ZWVu OgoxLiBhbGxvd2luZyBlbmdpbmUgdG8gZmVuY2UKMi4gYWxsb3dpbmcgdG8gY2hvb3NlIGZlbmNp bmcgaG9zdCBwZXIgY2x1c3RlciAob3IgcGVyIGhvc3QpCgppdCBzb3VuZHMgbGlrZSB5b3UgYWN0 dWFsbHkgd2FudCAjMSwgYnV0IGNhbiBsaXZlIHdpdGggIzIsIGJ5IGluc3RhbGxpbmcKdGhlIGVu Z2luZSBhcyBhIGhvc3QgYXMgd2VsbC4KCkV4YWN0bHksIEkgY2FuIGxpdmUgd2l0aCAjMiwgYXMg SSBoYXZlIHRoZSBlbmdpbmUgYWRkZWQgYXMgaG9zdEEgaW4gbXkgREMKCgpNZWQgVj1FNG5saWdh IEg9RTRsc25pbmdhcgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0tLS0KS2FybGkgU2o9RjZiZXJnClN3 ZWRpc2ggVW5pdmVyc2l0eSBvZiBBZ3JpY3VsdHVyYWwgU2NpZW5jZXMKQm94IDcwNzkgKFZpc2l0 aW5nIEFkZHJlc3MgS3Jvbj1FNXN2PUU0Z2VuIDgpClMtNzUwIDA3IFVwcHNhbGEsIFN3ZWRlbgpQ aG9uZTogICs0Ni0oMCkxOC02NyAxNSA2NgprYXJsaS5zam9iZXJnQHNsdS5zZTxtYWlsdG86a2Fy bGkuc2pvYmVyZ0BhZG0uc2x1LnNlPgoKCi0tXzAwMF82MzJCNzQxMEM0ODg0NDIyQjU4REEzNEY5 OTk4QkZERnNsdXNlXwpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD0iaXNvLTg4NTkt MSIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKPGh0bWw+PGhl YWQ+PC9oZWFkPjxib2R5IHN0eWxlPTNEIndvcmQtd3JhcDogYnJlYWstd29yZDsgLXdlYmtpdC1u YnNwLW1vZGU6PQogc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXItd2hpdGUtc3BhY2U7 ICI+PGJyPjxkaXY+PGRpdj4zMCBqdWwgMjAxMiA9CmtsLiAxMS4wMSBza3JldiBJdGFtYXIgSGVp bTo8L2Rpdj48YnIgY2xhc3M9M0QiQXBwbGUtaW50ZXJjaGFuZ2UtbmV3bGluZSI+PD0KYmxvY2tx dW90ZSB0eXBlPTNEImNpdGUiPjxkaXY+T24gMDcvMzAvMjAxMiAwODo1NiBBTSwgS2FybGkgU2o9 RjZiZXJnIHdyb3RlPQo6PGJyPjxibG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI+PGJyPjwvYmxvY2tx dW90ZT48YmxvY2txdW90ZSB0eXBlPTNEImNpdGUiPjI9CjgganVsIDIwMTIga2wuIDE0LjExIHNr cmV2IE1vdGkgQXNheWFnOjxicj48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0zRD0KImNp dGUiPjxicj48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0zRCJjaXRlIj48YmxvY2txdW90 ZSB0eXBlPTNEImNpdGUiPQo+T24gMDcvMjYvMjAxMiAwMjo1MyBQTSwgS2FybGkgU2o9RjZiZXJn IHdyb3RlOjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3Q9CmU+PGJsb2NrcXVvdGUgdHlwZT0z RCJjaXRlIj48YmxvY2txdW90ZSB0eXBlPTNEImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9M0QiYz0K aXRlIj5IaSw8YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2Nr cXVvdGUgdHlwZT0zRCJjaXRlPQoiPjxibG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI+PGJsb2NrcXVv dGUgdHlwZT0zRCJjaXRlIj48YnI+PC9ibG9ja3F1b3RlPjwvYmw9Cm9ja3F1b3RlPjwvYmxvY2tx dW90ZT48YmxvY2txdW90ZSB0eXBlPTNEImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI+ PD0KYmxvY2txdW90ZSB0eXBlPTNEImNpdGUiPkluIG15IERDLCBJIGhhdmUgdGhyZWUgaG9zdHMg YWRkZWQ6PGJyPjwvYmxvY2txdW90PQplPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2Nr cXVvdGUgdHlwZT0zRCJjaXRlIj48YmxvY2txdW90ZSB0eXBlPTNEImM9Cml0ZSI+PGJsb2NrcXVv dGUgdHlwZT0zRCJjaXRlIj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVv dGU+PD0KYmxvY2txdW90ZSB0eXBlPTNEImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI+ PGJsb2NrcXVvdGUgdHlwZT0zRCJjaXRlPQoiPmhvc3RBPGJyPjwvYmxvY2txdW90ZT48L2Jsb2Nr cXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI9Cj48YmxvY2txdW90 ZSB0eXBlPTNEImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI+aG9zdEI8YnI+PC9ibG9j a3F1b3RlPj0KPC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPTNEImNp dGUiPjxibG9ja3F1b3RlIHR5cGU9M0QiY2l0PQplIj48YmxvY2txdW90ZSB0eXBlPTNEImNpdGUi Pmhvc3RDPGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3Q9CmU+PGJsb2Nr cXVvdGUgdHlwZT0zRCJjaXRlIj48YmxvY2txdW90ZSB0eXBlPTNEImNpdGUiPjxibG9ja3F1b3Rl IHR5cGU9M0QiYz0KaXRlIj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVv dGU+PGJsb2NrcXVvdGUgdHlwZT0zRCJjaXRlIj48PQpibG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI+ PGJsb2NrcXVvdGUgdHlwZT0zRCJjaXRlIj5JIHdhbnQgYSB3YXkgdG8gZm9yY2Ugb249Cmx5IHRv IHVzZSBob3N0QSBhcyBhIHByb3h5IGZvciBwb3dlciBjb21tYW5kcy48YnI+PC9ibG9ja3F1b3Rl PjwvYmxvY2txdW90ZT0KPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPTNEImNpdGUiPjxi bG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI+PGJyPjwvYmxvPQpja3F1b3RlPjwvYmxvY2txdW90ZT48 YmxvY2txdW90ZSB0eXBlPTNEImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI+VGg9CmUg YWxnb3JpdGhtIG9mIHNlbGVjdGlvbiBhIGhvc3QgdG8gYWN0IGFzIGEgcHJveHkgZm9yIFBNIGNv bW1hbmRzIGlzPGJyPjwvYj0KbG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBl PTNEImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI+PQpxdWl0ZSBuYWl2ZTogYW55IGhv c3QgZnJvbSB0aGUgc3lzdGVtIHdpdGggc3RhdHVzIFVQLjxicj48L2Jsb2NrcXVvdGU+PC9ibG89 CmNrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0zRCJjaXRlIj48YmxvY2txdW90ZSB0eXBlPTNEImNp dGUiPjxicj48L2Jsb2NrcXVvdD0KZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0zRCJj aXRlIj48YmxvY2txdW90ZSB0eXBlPTNEImNpdGUiPllvdSBjYW4gPQpzZWUgaG93IGl0IGlzIGJl aW5nIHNlbGVjdGVkIGluIEZlbmNpbmdFeGVjdXRvci5GaW5kVmRzVG9GZW5jZSgpPGJyPjwvYmxv Y2s9CnF1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPTNEImNpdGUiPjxibG9ja3F1 b3RlIHR5cGU9M0QiY2l0ZSI+ZnJvbT0KPGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJs b2NrcXVvdGUgdHlwZT0zRCJjaXRlIj48YmxvY2txdW90ZSB0eXBlPTNEPQoiY2l0ZSI+b3ZpcnQt ZW5naW5lL2JhY2tlbmQvbWFuYWdlci9tb2R1bGVzL2JsbC9zcmMvbWFpbi9qYXZhL29yZy9vdmly dC9lbmc9CmluZS9jb3JlL2JsbC9GZW5jaW5nRXhlY3V0b3IuamF2YTxicj48L2Jsb2NrcXVvdGU+ PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlID0KdHlwZT0zRCJjaXRlIj48YmxvY2txdW90ZSB0eXBl PTNEImNpdGUiPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9jPQprcXVvdGUgdHlw ZT0zRCJjaXRlIj48YmxvY2txdW90ZSB0eXBlPTNEImNpdGUiPlRoZXJlIGlzIG5vIG90aGVyIGFs Z29yaXRobSA9CmZvciB0aGUgc2VsZWN0aW9uIGF0IHRoZSBtb21lbnQuPGJyPjwvYmxvY2txdW90 ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdD0KeXBlPTNEImNpdGUiPjxibG9ja3F1b3RlIHR5 cGU9M0QiY2l0ZSI+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrPQpxdW90ZSB0 eXBlPTNEImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI+SG93IHdvdWxkIHlvdSBoYW5k bGUgYSBjYXNlIGk9Cm4gd2hpY2ggaG9zdEEgaXNuJ3QgcmVzcG9uc2l2ZSA/IFdvdWxkbid0PGJy PjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsbz0KY2txdW90ZSB0eXBlPTNEImNpdGUiPjxi bG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI+eW91IHByZWZlciB0cnlpbmcgdG8gcGVyZm9yPQptIHRo ZSBmZW5jaW5nIHVzaW5nIG90aGVyIGF2YWlsYWJsZSBob3N0ID88YnI+PC9ibG9ja3F1b3RlPjwv YmxvY2txdW90ZT48Ymw9Cm9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI+PGJyPjwvYmxvY2txdW90ZT48 YmxvY2txdW90ZSB0eXBlPTNEImNpdGUiPjxicj48L2Jsbz0KY2txdW90ZT48YmxvY2txdW90ZSB0 eXBlPTNEImNpdGUiPkxldCBtZSBleHBsYWluIGEgbGl0dGxlIHRvIG1ha2UgeW91IGJldHRlPQpy IHVuZGVyc3RhbmQgbXkgcmVhc29uaW5nPGJyPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBl PTNEImNpdGUiPmJlaGluZCA9CnRoaXMgY29uZmlndXJhdGlvbi48YnI+PC9ibG9ja3F1b3RlPjxi bG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI+PGJyPjwvYmxvY2txdT0Kb3RlPjxibG9ja3F1b3RlIHR5 cGU9M0QiY2l0ZSI+V2Ugd29yayB3aXRoIHNlZ21lbnRlZCwgc2VwYXJhdGVkIG5ldHdvcmtzLiBP PQpuZSBuZXR3b3JrIGZvciBwdWJsaWM8YnI+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9 M0QiY2l0ZSI+YWNjZXNzLCBvbmU9CiBmb3Igc3RvcmFnZSB0cmFmZmljLCBvbmUgZm9yIG1hbmFn ZW1lbnQgYW5kIHNvIG9uLiBUaGF0PGJyPjwvYmxvY2txdW90ZT48Yj0KbG9ja3F1b3RlIHR5cGU9 M0QiY2l0ZSI+bWVhbnMgdGhhdCBpZiB0aGUgbm9kZXMgdGhlbXNlbHZlcyBoYXZlIHRvIGRvIHRo ZWlyPQogb3duPGJyPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPTNEImNpdGUiPnBvd2Vy LW1hbmFnZW1lbnQsIHRoZSBub2RlcyA9CndvdWxkIHJlcXVpcmUgdGhyZWUgaW50ZXJmYWNlcyBl YWNoLCBhbmQgdGhlPGJyPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eT0KcGU9M0QiY2l0ZSI+ bWV0YWwgd2UgYXJlIHVzaW5nIGZvciBob3N0cyBqdXN0IGRvbj1CNHQgaGF2ZSB0aGF0LiBCdXQg aWYgd2UgPQpjYW4gdXNlIHRoZTxicj48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0zRCJj aXRlIj5lbmdpbmUgdG8gZG8gdGhhdCwgdGg9CmUgaG9zdHMgd291bGQgb25seSByZXF1aXJlIHR3 byBpbnRlcmZhY2VzLCB3aGljaDxicj48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdD0KZSB0eXBlPTNE ImNpdGUiPm1vc3QgMVUgc2VydmVycyBhcmUgZXF1aXBwZWQgd2l0aCBhcyBzdGFuZGFyZCAocGx1 cyBvbmU8YnI+PQo8L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0zRCJjaXRlIj5pTE8vSVBN SS93aGF0ZXYpLCBzbyB3ZSBjYW4gdXNlIHRoZW09CiBhcyBob3N0cyB3aXRob3V0IGlzc3VlLiBU aGVuIHRoZTxicj48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0zRCJjaXRlIj0KPmJhY2tl bmQgaGFzIG9uZSBleHRyYSBpbnRlcmZhY2UgdGhhdCBpdCBjYW4gdXNlIHRvIGNvbW11bmljYXRl IG92ZXIgdGhlPGJyPQo+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI+cG93 ZXIgbWFuYWdlbWVudCBuZXR3b3JrIHRvIHRoZSByZXM9CnBlY3RpdmUgc2VydmljZSBwcm9jZXNz b3Igd2l0aC48YnI+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI+PD0KYnI+ PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI+SXMgdGhlcmUgYSAiYmV0dGVy IiB3YXkgdG8gYWNoaWV2PQplIHdoYXQgd2UgYXJlIGFpbWluZyBmb3I/IElkZWFsbHksIEk8YnI+ PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9M0QiY2k9CnRlIj53b3VsZCBsaWtlIHRvIHNl dCB1cCB0aGUgdHdvIE5JQ3MgaW4gYSBib25kIGFuZCBjcmVhdGUgVkxBTi1pbnRlcmZhY2VzPD0K YnI+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI+b24gdG9wIG9mIHRoYXQg Ym9uZC4gVGhhdCB3YXksIEkgPQpjYW4gaGF2ZSBhcyBtYW55IHZpcnR1YWwgaW50ZXJmYWNlcyBh czxicj48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0zRCI9CmNpdGUiPkkgd2FudCB3aXRo b3V0IGhhdmluZyBtb3JlIHRoYW4gdHdvIHBoeXNpY2FsIE5JQ3MsIGJ1dCBJIGhhdmVuPUI0dCBi ZT0KZW48YnI+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9M0QiY2l0ZSI+YWJsZSB0byBm aW5kIGEgZ29vZCBIT1dUTyBleHBsPQphaW5pbmcgdGhlIHByb2Nlc3MuPGJyPjwvYmxvY2txdW90 ZT48YmxvY2txdW90ZSB0eXBlPTNEImNpdGUiPjxicj48L2Jsb2NrcXU9Cm90ZT48YnI+SSB0aGlu ayB0aGVyZSBpcyBhIGRpZmZlcmVuY2UgYmV0d2Vlbjo8YnI+MS4gYWxsb3dpbmcgZW5naW5lIHRv IGZlbj0KY2U8YnI+Mi4gYWxsb3dpbmcgdG8gY2hvb3NlIGZlbmNpbmcgaG9zdCBwZXIgY2x1c3Rl ciAob3IgcGVyIGhvc3QpPGJyPjxicj5pPQp0IHNvdW5kcyBsaWtlIHlvdSBhY3R1YWxseSB3YW50 ICMxLCBidXQgY2FuIGxpdmUgd2l0aCAjMiwgYnkgaW5zdGFsbGluZyA8YnI9Cj50aGUgZW5naW5l IGFzIGEgaG9zdCBhcyB3ZWxsLjxicj48L2Rpdj48L2Jsb2NrcXVvdGU+PC9kaXY+PGRpdj48YnI+ PC9kaXY+RT0KeGFjdGx5LCBJIGNhbiBsaXZlIHdpdGggIzIsIGFzIEkgaGF2ZSB0aGUgZW5naW5l IGFkZGVkIGFzIGhvc3RBIGluIG15IERDPGJyPQo+PGRpdj4KPHNwYW4gY2xhc3M9M0QiQXBwbGUt c3R5bGUtc3BhbiIgc3R5bGU9M0QiYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsgY29sb3I6PQog cmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBmb250LXN0eWxlOiBub3JtYWw7 IGZvbnQtdmFyaWFudDogbm89CnJtYWw7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxldHRlci1zcGFj aW5nOiBub3JtYWw7IGxpbmUtaGVpZ2h0OiBub3JtYWw7IG9ycD0KaGFuczogMjsgdGV4dC1hbGln bjogLXdlYmtpdC1hdXRvOyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsg PQp3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Vi a2l0LWJvcmRlci1ob3Jpem9udGE9Cmwtc3BhY2luZzogMHB4OyAtd2Via2l0LWJvcmRlci12ZXJ0 aWNhbC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1kZWNvcmF0aT0Kb25zLWluLWVmZmVjdDog bm9uZTsgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBhdXRvOyAtd2Via2l0LXRleHQtc3Ryb2tl LXdpPQpkdGg6IDBweDsgZm9udC1zaXplOiBtZWRpdW07ICI+PGRpdj48YnIgY2xhc3M9M0QiQXBw bGUtaW50ZXJjaGFuZ2UtbmV3bGluZSI9Cj48YnI+PC9kaXY+PGRpdj5NZWQgVj1FNG5saWdhIEg9 RTRsc25pbmdhcjxicj4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08YnI+S2FybGkgU2o9RjZiZXJn PGJyPlN3PQplZGlzaCBVbml2ZXJzaXR5IG9mIEFncmljdWx0dXJhbCBTY2llbmNlczxicj5Cb3gg NzA3OSAoVmlzaXRpbmcgQWRkcmVzcyBLcm89Cm49RTVzdj1FNGdlbiA4KTxicj5TLTc1MCAwNyBV cHBzYWxhLCBTd2VkZW48YnI+UGhvbmU6ICZuYnNwOys0Ni0oMCkxOC02NyAxNT0KIDY2PC9kaXY+ PGRpdj48YSBocmVmPTNEIm1haWx0bzprYXJsaS5zam9iZXJnQGFkbS5zbHUuc2UiPmthcmxpLnNq b2JlcmdAc2x1PQouc2U8L2E+PC9kaXY+PC9zcGFuPgo8L2Rpdj4KPGJyPjwvYm9keT48L2h0bWw+ PQoKLS1fMDAwXzYzMkI3NDEwQzQ4ODQ0MjJCNThEQTM0Rjk5OThCRkRGc2x1c2VfLS0K --===============4708419750383248643==--