From fabrice.bacchella at icloud.com Fri Jun 17 05:42:00 2016 Content-Type: multipart/mixed; boundary="===============4587376170834677376==" MIME-Version: 1.0 From: Fabrice Bacchella To: users at ovirt.org Subject: [ovirt-users] migration failed with permission denied Date: Fri, 17 Jun 2016 11:41:51 +0200 Message-ID: <2244C48C-52C6-40F2-976F-5BDCD030234C@icloud.com> --===============4587376170834677376== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable --Apple-Mail=3D_5B67002A-DE5B-43FB-ACC9-D4A23FB178C4 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=3Dus-ascii I'm running an up to date ovirt setup. I tried to put an host in maintenance mode, with one VM running on it. It failed with this message in vdsm.log: Thread-351083::ERROR::2016-06-17 =3D 11:30:04,732::migration::209::virt.vm::(_recover) =3D vmId=3D3D`b82209c9-42ff-457c-bb98-b6a2034833fc`::internal error: process = =3D exited while connecting to monitor: 2016-06-17T09:30:04.429323Z =3D qemu-kvm: -chardev =3D socket,id=3D3Dcharchannel0,path=3D3D/var/lib/libvirt/qemu/channels/b82209c9= -42=3D ff-457c-bb98-b6a2034833fc.com.redhat.rhevm.vdsm,server,nowait: Failed to = =3D bind socket to =3D /var/lib/libvirt/qemu/channels/b82209c9-42ff-457c-bb98-b6a2034833fc.com.re= =3D dhat.rhevm.vdsm: Permission denied ... Traceback (most recent call last): File "/usr/share/vdsm/virt/migration.py", line 298, in run self._startUnderlyingMigration(time.time()) File "/usr/share/vdsm/virt/migration.py", line 364, in =3D _startUnderlyingMigration self._perform_migration(duri, muri) File "/usr/share/vdsm/virt/migration.py", line 403, in =3D _perform_migration self._vm._dom.migrateToURI3(duri, params, flags) File "/usr/share/vdsm/virt/virdomain.py", line 68, in f ret =3D3D attr(*args, **kwargs) File "/usr/lib/python2.7/site-packages/vdsm/libvirtconnection.py", =3D line 124, in wrapper ret =3D3D f(*args, **kwargs) File "/usr/lib/python2.7/site-packages/vdsm/utils.py", line 1313, in =3D wrapper return func(inst, *args, **kwargs) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 1836, in =3D migrateToURI3 if ret =3D3D=3D3D -1: raise libvirtError ('virDomainMigrateToURI3() =3D failed', dom=3D3Dself) libvirtError: internal error: process exited while connecting to =3D monitor: 2016-06-17T09:30:04.429323Z qemu-kvm: -chardev =3D socket,id=3D3Dcharchannel0,path=3D3D/var/lib/libvirt/qemu/channels/b82209c9= -42=3D ff-457c-bb98-b6a2034833fc.com.redhat.rhevm.vdsm,server,nowait: Failed to = =3D bind socket to =3D /var/lib/libvirt/qemu/channels/b82209c9-42ff-457c-bb98-b6a2034833fc.com.re= =3D dhat.rhevm.vdsm: Permission denied If i check the file, I see : srwxrwxr-x 1 qemu qemu 0 May 31 16:21 =3D /var/lib/libvirt/qemu/channels/b82209c9-42ff-457c-bb98-b6a2034833fc.com.re= =3D dhat.rhevm.vdsm And on all my hosts, the permissions are the same: srwxrwxr-x 1 qemu qemu /var/lib/libvirt/qemu/channels/* And vdsm is running vdsm: 4 S vdsm 3816 1 0 60 -20 - 947345 poll_s May25 ? =3D 02:21:58 /usr/bin/python /usr/share/vdsm/vdsm If I check vdsm groups: ~# id vdsm uid=3D3D36(vdsm) gid=3D3D36(kvm) groups=3D3D36(kvm),179(sanlock),107(qemu) --Apple-Mail=3D_5B67002A-DE5B-43FB-ACC9-D4A23FB178C4 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=3Dus-ascii I'm running an up to date ovirt setup.

I tried to put an host in maintenance = =3D mode, with one VM running on it.

It failed with this message in =3D vdsm.log:

<= div =3D class=3D3D"">Thread-351083::ERROR::2016-06-17 =3D 11:30:04,732::migration::209::virt.vm::(_recover) =3D vmId=3D3D`b82209c9-42ff-457c-bb98-b6a2034833fc`::internal error: process = =3D exited while connecting to monitor: 2016-06-17T09:30:04.429323Z =3D qemu-kvm: -chardev =3D socket,id=3D3Dcharchannel0,path=3D3D/var/lib/libvirt/qemu/channels/b82209c9= -42=3D ff-457c-bb98-b6a2034833fc.com.redhat.rhevm.vdsm,server,nowait: Failed to = =3D bind socket to =3D /var/lib/libvirt/qemu/channels/b82209c9-42ff-457c-bb98-b6a2034833fc.com.re= =3D dhat.rhevm.vdsm: Permission denied
...
Traceback (most recent call last):
  File "/usr/share/vdsm/virt/migration.py", line 298, in = =3D run
    =3D self._startUnderlyingMigration(time.time())
  File "/usr/share/vdsm/virt/migration.py", line 364, in = =3D _startUnderlyingMigration
    =3D self._perform_migration(duri, muri)
  File =3D "/usr/share/vdsm/virt/migration.py", line 403, in =3D _perform_migration
    =3D self._vm._dom.migrateToURI3(duri, params, flags)
  File "/usr/share/vdsm/virt/virdomain.py", line 68, in = =3D f
    ret =3D3D attr(*args, =3D **kwargs)
  File =3D "/usr/lib/python2.7/site-packages/vdsm/libvirtconnection.py", line 124, =3D in wrapper
    ret =3D3D f(*args, = =3D **kwargs)
  File =3D "/usr/lib/python2.7/site-packages/vdsm/utils.py", line 1313, in =3D wrapper
    return func(inst, = =3D *args, **kwargs)
  File =3D "/usr/lib64/python2.7/site-packages/libvirt.py", line 1836, in =3D migrateToURI3
    if ret =3D3D=3D3D -= 1: =3D raise libvirtError ('virDomainMigrateToURI3() failed', =3D dom=3D3Dself)
libvirtError: internal error: =3D process exited while connecting to monitor: 2016-06-17T09:30:04.429323Z =3D qemu-kvm: -chardev =3D socket,id=3D3Dcharchannel0,path=3D3D/var/lib/libvirt/qemu/channels/b82209c9= -42=3D ff-457c-bb98-b6a2034833fc.com.redhat.rhevm.vdsm,server,nowait: Failed to = =3D bind socket to =3D /var/lib/libvirt/qemu/channels/b82209c9-42ff-457c-bb98-b6a2034833fc.com.re= =3D dhat.rhevm.vdsm: Permission denied

If i check the file, I see :

srwxrwxr-x 1 qemu qemu 0 May 31 16:21 =3D /var/lib/libvirt/qemu/channels/b82209c9-42ff-457c-bb98-b6a2034833fc.com.re= =3D dhat.rhevm.vdsm

And=3D on all my hosts, the permissions are the same:
srwxrwxr-x 1 qemu =3D qemu /var/lib/libvirt/qemu/channels/*

And vdsm is running =3D vdsm:
4 S vdsm      3816     1  =3D 0  60 -20 - 947345 poll_s May25 ?       02:21:58 =3D /usr/bin/python /usr/share/vdsm/vdsm

If I check vdsm groups:
~# id vdsm
uid=3D3D36(vdsm) gid=3D3D36(kvm) =3D groups=3D3D36(kvm),179(sanlock),107(qemu)



=3D --Apple-Mail=3D_5B67002A-DE5B-43FB-ACC9-D4A23FB178C4-- --===============4587376170834677376== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" Ci0tQXBwbGUtTWFpbD1fNUI2NzAwMkEtREU1Qi00M0ZCLUFDQzktRDRBMjNGQjE3OEM0CkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOwoJY2hhcnNldD11cy1hc2NpaQoKSSdtIHJ1bm5pbmcgYW4gdXAgdG8gZGF0ZSBvdmly dCBzZXR1cC4KCkkgdHJpZWQgdG8gcHV0IGFuIGhvc3QgaW4gbWFpbnRlbmFuY2UgbW9kZSwgd2l0 aCBvbmUgVk0gcnVubmluZyBvbiBpdC4KCkl0IGZhaWxlZCB3aXRoIHRoaXMgbWVzc2FnZSBpbiB2 ZHNtLmxvZzoKClRocmVhZC0zNTEwODM6OkVSUk9SOjoyMDE2LTA2LTE3ID0KMTE6MzA6MDQsNzMy OjptaWdyYXRpb246OjIwOTo6dmlydC52bTo6KF9yZWNvdmVyKSA9CnZtSWQ9M0RgYjgyMjA5Yzkt NDJmZi00NTdjLWJiOTgtYjZhMjAzNDgzM2ZjYDo6aW50ZXJuYWwgZXJyb3I6IHByb2Nlc3MgPQpl eGl0ZWQgd2hpbGUgY29ubmVjdGluZyB0byBtb25pdG9yOiAyMDE2LTA2LTE3VDA5OjMwOjA0LjQy OTMyM1ogPQpxZW11LWt2bTogLWNoYXJkZXYgPQpzb2NrZXQsaWQ9M0RjaGFyY2hhbm5lbDAscGF0 aD0zRC92YXIvbGliL2xpYnZpcnQvcWVtdS9jaGFubmVscy9iODIyMDljOS00Mj0KZmYtNDU3Yy1i Yjk4LWI2YTIwMzQ4MzNmYy5jb20ucmVkaGF0LnJoZXZtLnZkc20sc2VydmVyLG5vd2FpdDogRmFp bGVkIHRvID0KYmluZCBzb2NrZXQgdG8gPQovdmFyL2xpYi9saWJ2aXJ0L3FlbXUvY2hhbm5lbHMv YjgyMjA5YzktNDJmZi00NTdjLWJiOTgtYjZhMjAzNDgzM2ZjLmNvbS5yZT0KZGhhdC5yaGV2bS52 ZHNtOiBQZXJtaXNzaW9uIGRlbmllZAouLi4KVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh c3QpOgogIEZpbGUgIi91c3Ivc2hhcmUvdmRzbS92aXJ0L21pZ3JhdGlvbi5weSIsIGxpbmUgMjk4 LCBpbiBydW4KICAgIHNlbGYuX3N0YXJ0VW5kZXJseWluZ01pZ3JhdGlvbih0aW1lLnRpbWUoKSkK ICBGaWxlICIvdXNyL3NoYXJlL3Zkc20vdmlydC9taWdyYXRpb24ucHkiLCBsaW5lIDM2NCwgaW4g PQpfc3RhcnRVbmRlcmx5aW5nTWlncmF0aW9uCiAgICBzZWxmLl9wZXJmb3JtX21pZ3JhdGlvbihk dXJpLCBtdXJpKQogIEZpbGUgIi91c3Ivc2hhcmUvdmRzbS92aXJ0L21pZ3JhdGlvbi5weSIsIGxp bmUgNDAzLCBpbiA9Cl9wZXJmb3JtX21pZ3JhdGlvbgogICAgc2VsZi5fdm0uX2RvbS5taWdyYXRl VG9VUkkzKGR1cmksIHBhcmFtcywgZmxhZ3MpCiAgRmlsZSAiL3Vzci9zaGFyZS92ZHNtL3ZpcnQv dmlyZG9tYWluLnB5IiwgbGluZSA2OCwgaW4gZgogICAgcmV0ID0zRCBhdHRyKCphcmdzLCAqKmt3 YXJncykKICBGaWxlICIvdXNyL2xpYi9weXRob24yLjcvc2l0ZS1wYWNrYWdlcy92ZHNtL2xpYnZp cnRjb25uZWN0aW9uLnB5IiwgPQpsaW5lIDEyNCwgaW4gd3JhcHBlcgogICAgcmV0ID0zRCBmKCph cmdzLCAqKmt3YXJncykKICBGaWxlICIvdXNyL2xpYi9weXRob24yLjcvc2l0ZS1wYWNrYWdlcy92 ZHNtL3V0aWxzLnB5IiwgbGluZSAxMzEzLCBpbiA9CndyYXBwZXIKICAgIHJldHVybiBmdW5jKGlu c3QsICphcmdzLCAqKmt3YXJncykKICBGaWxlICIvdXNyL2xpYjY0L3B5dGhvbjIuNy9zaXRlLXBh Y2thZ2VzL2xpYnZpcnQucHkiLCBsaW5lIDE4MzYsIGluID0KbWlncmF0ZVRvVVJJMwogICAgaWYg cmV0ID0zRD0zRCAtMTogcmFpc2UgbGlidmlydEVycm9yICgndmlyRG9tYWluTWlncmF0ZVRvVVJJ MygpID0KZmFpbGVkJywgZG9tPTNEc2VsZikKbGlidmlydEVycm9yOiBpbnRlcm5hbCBlcnJvcjog cHJvY2VzcyBleGl0ZWQgd2hpbGUgY29ubmVjdGluZyB0byA9Cm1vbml0b3I6IDIwMTYtMDYtMTdU MDk6MzA6MDQuNDI5MzIzWiBxZW11LWt2bTogLWNoYXJkZXYgPQpzb2NrZXQsaWQ9M0RjaGFyY2hh bm5lbDAscGF0aD0zRC92YXIvbGliL2xpYnZpcnQvcWVtdS9jaGFubmVscy9iODIyMDljOS00Mj0K ZmYtNDU3Yy1iYjk4LWI2YTIwMzQ4MzNmYy5jb20ucmVkaGF0LnJoZXZtLnZkc20sc2VydmVyLG5v d2FpdDogRmFpbGVkIHRvID0KYmluZCBzb2NrZXQgdG8gPQovdmFyL2xpYi9saWJ2aXJ0L3FlbXUv Y2hhbm5lbHMvYjgyMjA5YzktNDJmZi00NTdjLWJiOTgtYjZhMjAzNDgzM2ZjLmNvbS5yZT0KZGhh dC5yaGV2bS52ZHNtOiBQZXJtaXNzaW9uIGRlbmllZAoKSWYgaSBjaGVjayB0aGUgZmlsZSwgSSBz ZWUgOgoKc3J3eHJ3eHIteCAxIHFlbXUgcWVtdSAwIE1heSAzMSAxNjoyMSA9Ci92YXIvbGliL2xp YnZpcnQvcWVtdS9jaGFubmVscy9iODIyMDljOS00MmZmLTQ1N2MtYmI5OC1iNmEyMDM0ODMzZmMu Y29tLnJlPQpkaGF0LnJoZXZtLnZkc20KCkFuZCBvbiBhbGwgbXkgaG9zdHMsIHRoZSBwZXJtaXNz aW9ucyBhcmUgdGhlIHNhbWU6CnNyd3hyd3hyLXggMSBxZW11IHFlbXUgL3Zhci9saWIvbGlidmly dC9xZW11L2NoYW5uZWxzLyoKCkFuZCB2ZHNtIGlzIHJ1bm5pbmcgdmRzbToKNCBTIHZkc20gICAg ICAzODE2ICAgICAxICAwICA2MCAtMjAgLSA5NDczNDUgcG9sbF9zIE1heTI1ID8gICAgICAgPQow MjoyMTo1OCAvdXNyL2Jpbi9weXRob24gL3Vzci9zaGFyZS92ZHNtL3Zkc20KCklmIEkgY2hlY2sg dmRzbSBncm91cHM6Cn4jIGlkIHZkc20KdWlkPTNEMzYodmRzbSkgZ2lkPTNEMzYoa3ZtKSBncm91 cHM9M0QzNihrdm0pLDE3OShzYW5sb2NrKSwxMDcocWVtdSkKCgoKCgotLUFwcGxlLU1haWw9XzVC NjcwMDJBLURFNUItNDNGQi1BQ0M5LUQ0QTIzRkIxNzhDNApDb250ZW50LVRyYW5zZmVyLUVuY29k aW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOwoJY2hhcnNldD11 cy1hc2NpaQoKPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0zRCJDb250ZW50LVR5cGUiIGNv bnRlbnQ9M0QidGV4dC9odG1sID0KY2hhcnNldD0zRHVzLWFzY2lpIj48L2hlYWQ+PGJvZHkgc3R5 bGU9M0Qid29yZC13cmFwOiBicmVhay13b3JkOyA9Ci13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsg LXdlYmtpdC1saW5lLWJyZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiID0KY2xhc3M9M0QiIj5JJ20g cnVubmluZyBhbiB1cCB0byBkYXRlIG92aXJ0IHNldHVwLjxkaXYgY2xhc3M9M0QiIj48YnIgPQpj bGFzcz0zRCIiPjwvZGl2PjxkaXYgY2xhc3M9M0QiIj5JIHRyaWVkIHRvIHB1dCBhbiBob3N0IGlu IG1haW50ZW5hbmNlID0KbW9kZSwgd2l0aCBvbmUgVk0gcnVubmluZyBvbiBpdC48L2Rpdj48ZGl2 IGNsYXNzPTNEIiI+PGJyID0KY2xhc3M9M0QiIj48L2Rpdj48ZGl2IGNsYXNzPTNEIiI+SXQgZmFp bGVkIHdpdGggdGhpcyBtZXNzYWdlIGluID0KdmRzbS5sb2c6PC9kaXY+PGRpdiBjbGFzcz0zRCIi PjxiciBjbGFzcz0zRCIiPjwvZGl2PjxkaXYgY2xhc3M9M0QiIj48ZGl2ID0KY2xhc3M9M0QiIj48 Zm9udCBmYWNlPTNEIk1lbmxvIiBzdHlsZT0zRCJmb250LXNpemU6IDExcHg7IiA9CmNsYXNzPTNE IiI+VGhyZWFkLTM1MTA4Mzo6RVJST1I6OjIwMTYtMDYtMTcgPQoxMTozMDowNCw3MzI6Om1pZ3Jh dGlvbjo6MjA5Ojp2aXJ0LnZtOjooX3JlY292ZXIpID0Kdm1JZD0zRGBiODIyMDljOS00MmZmLTQ1 N2MtYmI5OC1iNmEyMDM0ODMzZmNgOjppbnRlcm5hbCBlcnJvcjogcHJvY2VzcyA9CmV4aXRlZCB3 aGlsZSBjb25uZWN0aW5nIHRvIG1vbml0b3I6IDIwMTYtMDYtMTdUMDk6MzA6MDQuNDI5MzIzWiA9 CnFlbXUta3ZtOiAtY2hhcmRldiA9CnNvY2tldCxpZD0zRGNoYXJjaGFubmVsMCxwYXRoPTNEL3Zh ci9saWIvbGlidmlydC9xZW11L2NoYW5uZWxzL2I4MjIwOWM5LTQyPQpmZi00NTdjLWJiOTgtYjZh MjAzNDgzM2ZjLmNvbS5yZWRoYXQucmhldm0udmRzbSxzZXJ2ZXIsbm93YWl0OiBGYWlsZWQgdG8g PQpiaW5kIHNvY2tldCB0byA9Ci92YXIvbGliL2xpYnZpcnQvcWVtdS9jaGFubmVscy9iODIyMDlj OS00MmZmLTQ1N2MtYmI5OC1iNmEyMDM0ODMzZmMuY29tLnJlPQpkaGF0LnJoZXZtLnZkc206IFBl cm1pc3Npb24gZGVuaWVkPC9mb250PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9M0QiIj48Zm9udD0K IGZhY2U9M0QiTWVubG8iIHN0eWxlPTNEImZvbnQtc2l6ZTogMTFweDsiIGNsYXNzPTNEIiI+Li4u PC9mb250PjwvZGl2PjxkaXY9CiBjbGFzcz0zRCIiPjxkaXYgY2xhc3M9M0QiIj48Zm9udCBmYWNl PTNEIk1lbmxvIiBzdHlsZT0zRCJmb250LXNpemU6ID0KMTFweDsiIGNsYXNzPTNEIiI+VHJhY2Vi YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOjwvZm9udD48L2Rpdj48ZGl2ID0KY2xhc3M9M0Qi Ij48Zm9udCBmYWNlPTNEIk1lbmxvIiBzdHlsZT0zRCJmb250LXNpemU6IDExcHg7IiA9CmNsYXNz PTNEIiI+Jm5ic3A7IEZpbGUgIi91c3Ivc2hhcmUvdmRzbS92aXJ0L21pZ3JhdGlvbi5weSIsIGxp bmUgMjk4LCBpbiA9CnJ1bjwvZm9udD48L2Rpdj48ZGl2IGNsYXNzPTNEIiI+PGZvbnQgZmFjZT0z RCJNZW5sbyIgc3R5bGU9M0QiZm9udC1zaXplOiA9CjExcHg7IiBjbGFzcz0zRCIiPiZuYnNwOyAm bmJzcDsgPQpzZWxmLl9zdGFydFVuZGVybHlpbmdNaWdyYXRpb24odGltZS50aW1lKCkpPC9mb250 PjwvZGl2PjxkaXYgPQpjbGFzcz0zRCIiPjxmb250IGZhY2U9M0QiTWVubG8iIHN0eWxlPTNEImZv bnQtc2l6ZTogMTFweDsiID0KY2xhc3M9M0QiIj4mbmJzcDsgRmlsZSAiL3Vzci9zaGFyZS92ZHNt L3ZpcnQvbWlncmF0aW9uLnB5IiwgbGluZSAzNjQsIGluID0KX3N0YXJ0VW5kZXJseWluZ01pZ3Jh dGlvbjwvZm9udD48L2Rpdj48ZGl2IGNsYXNzPTNEIiI+PGZvbnQgZmFjZT0zRCJNZW5sbyI9CiBz dHlsZT0zRCJmb250LXNpemU6IDExcHg7IiBjbGFzcz0zRCIiPiZuYnNwOyAmbmJzcDsgPQpzZWxm Ll9wZXJmb3JtX21pZ3JhdGlvbihkdXJpLCBtdXJpKTwvZm9udD48L2Rpdj48ZGl2IGNsYXNzPTNE IiI+PGZvbnQgPQpmYWNlPTNEIk1lbmxvIiBzdHlsZT0zRCJmb250LXNpemU6IDExcHg7IiBjbGFz cz0zRCIiPiZuYnNwOyBGaWxlID0KIi91c3Ivc2hhcmUvdmRzbS92aXJ0L21pZ3JhdGlvbi5weSIs IGxpbmUgNDAzLCBpbiA9Cl9wZXJmb3JtX21pZ3JhdGlvbjwvZm9udD48L2Rpdj48ZGl2IGNsYXNz PTNEIiI+PGZvbnQgZmFjZT0zRCJNZW5sbyIgPQpzdHlsZT0zRCJmb250LXNpemU6IDExcHg7IiBj bGFzcz0zRCIiPiZuYnNwOyAmbmJzcDsgPQpzZWxmLl92bS5fZG9tLm1pZ3JhdGVUb1VSSTMoZHVy aSwgcGFyYW1zLCBmbGFncyk8L2ZvbnQ+PC9kaXY+PGRpdiA9CmNsYXNzPTNEIiI+PGZvbnQgZmFj ZT0zRCJNZW5sbyIgc3R5bGU9M0QiZm9udC1zaXplOiAxMXB4OyIgPQpjbGFzcz0zRCIiPiZuYnNw OyBGaWxlICIvdXNyL3NoYXJlL3Zkc20vdmlydC92aXJkb21haW4ucHkiLCBsaW5lIDY4LCBpbiA9 CmY8L2ZvbnQ+PC9kaXY+PGRpdiBjbGFzcz0zRCIiPjxmb250IGZhY2U9M0QiTWVubG8iIHN0eWxl PTNEImZvbnQtc2l6ZTogPQoxMXB4OyIgY2xhc3M9M0QiIj4mbmJzcDsgJm5ic3A7IHJldCA9M0Qg YXR0cigqYXJncywgPQoqKmt3YXJncyk8L2ZvbnQ+PC9kaXY+PGRpdiBjbGFzcz0zRCIiPjxmb250 IGZhY2U9M0QiTWVubG8iID0Kc3R5bGU9M0QiZm9udC1zaXplOiAxMXB4OyIgY2xhc3M9M0QiIj4m bmJzcDsgRmlsZSA9CiIvdXNyL2xpYi9weXRob24yLjcvc2l0ZS1wYWNrYWdlcy92ZHNtL2xpYnZp cnRjb25uZWN0aW9uLnB5IiwgbGluZSAxMjQsID0KaW4gd3JhcHBlcjwvZm9udD48L2Rpdj48ZGl2 IGNsYXNzPTNEIiI+PGZvbnQgZmFjZT0zRCJNZW5sbyIgPQpzdHlsZT0zRCJmb250LXNpemU6IDEx cHg7IiBjbGFzcz0zRCIiPiZuYnNwOyAmbmJzcDsgcmV0ID0zRCBmKCphcmdzLCA9Cioqa3dhcmdz KTwvZm9udD48L2Rpdj48ZGl2IGNsYXNzPTNEIiI+PGZvbnQgZmFjZT0zRCJNZW5sbyIgPQpzdHls ZT0zRCJmb250LXNpemU6IDExcHg7IiBjbGFzcz0zRCIiPiZuYnNwOyBGaWxlID0KIi91c3IvbGli L3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL3Zkc20vdXRpbHMucHkiLCBsaW5lIDEzMTMsIGluID0K d3JhcHBlcjwvZm9udD48L2Rpdj48ZGl2IGNsYXNzPTNEIiI+PGZvbnQgZmFjZT0zRCJNZW5sbyIg PQpzdHlsZT0zRCJmb250LXNpemU6IDExcHg7IiBjbGFzcz0zRCIiPiZuYnNwOyAmbmJzcDsgcmV0 dXJuIGZ1bmMoaW5zdCwgPQoqYXJncywgKiprd2FyZ3MpPC9mb250PjwvZGl2PjxkaXYgY2xhc3M9 M0QiIj48Zm9udCBmYWNlPTNEIk1lbmxvIiA9CnN0eWxlPTNEImZvbnQtc2l6ZTogMTFweDsiIGNs YXNzPTNEIiI+Jm5ic3A7IEZpbGUgPQoiL3Vzci9saWI2NC9weXRob24yLjcvc2l0ZS1wYWNrYWdl cy9saWJ2aXJ0LnB5IiwgbGluZSAxODM2LCBpbiA9Cm1pZ3JhdGVUb1VSSTM8L2ZvbnQ+PC9kaXY+ PGRpdiBjbGFzcz0zRCIiPjxmb250IGZhY2U9M0QiTWVubG8iID0Kc3R5bGU9M0QiZm9udC1zaXpl OiAxMXB4OyIgY2xhc3M9M0QiIj4mbmJzcDsgJm5ic3A7IGlmIHJldCA9M0Q9M0QgLTE6ID0KcmFp c2UgbGlidmlydEVycm9yICgndmlyRG9tYWluTWlncmF0ZVRvVVJJMygpIGZhaWxlZCcsID0KZG9t PTNEc2VsZik8L2ZvbnQ+PC9kaXY+PGRpdiBjbGFzcz0zRCIiPjxmb250IGZhY2U9M0QiTWVubG8i ID0Kc3R5bGU9M0QiZm9udC1zaXplOiAxMXB4OyIgY2xhc3M9M0QiIj5saWJ2aXJ0RXJyb3I6IGlu dGVybmFsIGVycm9yOiA9CnByb2Nlc3MgZXhpdGVkIHdoaWxlIGNvbm5lY3RpbmcgdG8gbW9uaXRv cjogMjAxNi0wNi0xN1QwOTozMDowNC40MjkzMjNaID0KcWVtdS1rdm06IC1jaGFyZGV2ID0Kc29j a2V0LGlkPTNEY2hhcmNoYW5uZWwwLHBhdGg9M0QvdmFyL2xpYi9saWJ2aXJ0L3FlbXUvY2hhbm5l bHMvYjgyMjA5YzktNDI9CmZmLTQ1N2MtYmI5OC1iNmEyMDM0ODMzZmMuY29tLnJlZGhhdC5yaGV2 bS52ZHNtLHNlcnZlcixub3dhaXQ6IEZhaWxlZCB0byA9CmJpbmQgc29ja2V0IHRvID0KL3Zhci9s aWIvbGlidmlydC9xZW11L2NoYW5uZWxzL2I4MjIwOWM5LTQyZmYtNDU3Yy1iYjk4LWI2YTIwMzQ4 MzNmYy5jb20ucmU9CmRoYXQucmhldm0udmRzbTogUGVybWlzc2lvbiBkZW5pZWQ8L2ZvbnQ+PC9k aXY+PC9kaXY+PGRpdiBjbGFzcz0zRCIiPjxiciA9CmNsYXNzPTNEIiI+PC9kaXY+PGRpdiBjbGFz cz0zRCIiPklmIGkgY2hlY2sgdGhlIGZpbGUsIEkgc2VlIDo8L2Rpdj48ZGl2ID0KY2xhc3M9M0Qi Ij48YnIgY2xhc3M9M0QiIj48L2Rpdj48ZGl2IGNsYXNzPTNEIiI+PGRpdiBzdHlsZT0zRCJtYXJn aW46ID0KMHB4OyIgY2xhc3M9M0QiIj48Zm9udCBmYWNlPTNEIk1lbmxvIiBzdHlsZT0zRCJmb250 LXNpemU6IDExcHg7IiA9CmNsYXNzPTNEIiI+c3J3eHJ3eHIteCAxIHFlbXUgcWVtdSAwIE1heSAz MSAxNjoyMSA9Ci92YXIvbGliL2xpYnZpcnQvcWVtdS9jaGFubmVscy9iODIyMDljOS00MmZmLTQ1 N2MtYmI5OC1iNmEyMDM0ODMzZmMuY29tLnJlPQpkaGF0LnJoZXZtLnZkc208L2ZvbnQ+PC9kaXY+ PC9kaXY+PGRpdiBzdHlsZT0zRCJtYXJnaW46IDBweDsiID0KY2xhc3M9M0QiIj48YnIgY2xhc3M9 M0QiIj48L2Rpdj48ZGl2IHN0eWxlPTNEIm1hcmdpbjogMHB4OyIgY2xhc3M9M0QiIj5BbmQ9CiBv biBhbGwgbXkgaG9zdHMsIHRoZSBwZXJtaXNzaW9ucyBhcmUgdGhlIHNhbWU6PC9kaXY+PGRpdiBz dHlsZT0zRCJtYXJnaW46PQogMHB4OyIgY2xhc3M9M0QiIj48Zm9udCBmYWNlPTNEIk1lbmxvIiBz dHlsZT0zRCJmb250LXNpemU6IDExcHg7IiA9CmNsYXNzPTNEIiI+PGZvbnQgY2xhc3M9M0QiIj5z cnd4cnd4ci14IDEgcWVtdSA9CnFlbXUmbmJzcDs8L2ZvbnQ+L3Zhci9saWIvbGlidmlydC9xZW11 L2NoYW5uZWxzLyo8L2ZvbnQ+PC9kaXY+PGRpdiA9CnN0eWxlPTNEIm1hcmdpbjogMHB4OyIgY2xh c3M9M0QiIj48YnIgY2xhc3M9M0QiIj48L2Rpdj48ZGl2ID0Kc3R5bGU9M0QibWFyZ2luOiAwcHg7 IiBjbGFzcz0zRCIiPkFuZCZuYnNwO3Zkc20mbmJzcDtpcyBydW5uaW5nID0KdmRzbTo8L2Rpdj48 ZGl2IHN0eWxlPTNEIm1hcmdpbjogMHB4OyIgY2xhc3M9M0QiIj48ZGl2IHN0eWxlPTNEIm1hcmdp bjogPQowcHg7IiBjbGFzcz0zRCIiPjxmb250IGZhY2U9M0QiTWVubG8iIHN0eWxlPTNEImZvbnQt c2l6ZTogMTFweDsiID0KY2xhc3M9M0QiIj40IFMgdmRzbSZuYnNwOyAmbmJzcDsgJm5ic3A7IDM4 MTYgJm5ic3A7ICZuYnNwOyAxJm5ic3A7ID0KMCZuYnNwOyA2MCAtMjAgLSA5NDczNDUgcG9sbF9z IE1heTI1ID8gJm5ic3A7ICZuYnNwOyAmbmJzcDsgMDI6MjE6NTggPQovdXNyL2Jpbi9weXRob24g L3Vzci9zaGFyZS92ZHNtL3Zkc208L2ZvbnQ+PC9kaXY+PGRpdiBzdHlsZT0zRCJtYXJnaW46ID0K MHB4OyIgY2xhc3M9M0QiIj48YnIgY2xhc3M9M0QiIj48L2Rpdj48ZGl2IHN0eWxlPTNEIm1hcmdp bjogMHB4OyIgPQpjbGFzcz0zRCIiPklmIEkgY2hlY2sgdmRzbSBncm91cHM6PC9kaXY+PGRpdiBz dHlsZT0zRCJtYXJnaW46IDBweDsiID0KY2xhc3M9M0QiIj48ZGl2IHN0eWxlPTNEIm1hcmdpbjog MHB4OyIgY2xhc3M9M0QiIj48Zm9udCBmYWNlPTNEIk1lbmxvIiA9CnN0eWxlPTNEImZvbnQtc2l6 ZTogMTFweDsiIGNsYXNzPTNEIiI+fiMgaWQgdmRzbTwvZm9udD48L2Rpdj48ZGl2ID0Kc3R5bGU9 M0QibWFyZ2luOiAwcHg7IiBjbGFzcz0zRCIiPjxmb250IGZhY2U9M0QiTWVubG8iIHN0eWxlPTNE ImZvbnQtc2l6ZTo9CiAxMXB4OyIgY2xhc3M9M0QiIj51aWQ9M0QzNih2ZHNtKSBnaWQ9M0QzNihr dm0pID0KZ3JvdXBzPTNEMzYoa3ZtKSwxNzkoc2FubG9jayksMTA3KHFlbXUpPC9mb250PjwvZGl2 PjxkaXYgY2xhc3M9M0QiIj48YnIgPQpjbGFzcz0zRCIiPjwvZGl2PjxkaXYgY2xhc3M9M0QiIj48 YnIgY2xhc3M9M0QiIj48L2Rpdj48L2Rpdj48ZGl2ID0KY2xhc3M9M0QiIj48YnIgY2xhc3M9M0Qi Ij48L2Rpdj48ZGl2IGNsYXNzPTNEIiI+PGJyID0KY2xhc3M9M0QiIj48L2Rpdj48L2Rpdj48L2Jv ZHk+PC9odG1sPj0KCi0tQXBwbGUtTWFpbD1fNUI2NzAwMkEtREU1Qi00M0ZCLUFDQzktRDRBMjNG QjE3OEM0LS0K --===============4587376170834677376==--