From mrose at power-soft.com Tue Jan 27 20:10:34 2015 Content-Type: multipart/mixed; boundary="===============1824801237874106410==" MIME-Version: 1.0 From: Mikola Rose To: users at ovirt.org Subject: [ovirt-users] oVirt 3.5.1 - VM "hostedengine" Failing to start Date: Wed, 28 Jan 2015 01:10:33 +0000 Message-ID: --===============1824801237874106410== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable --_000_DDFE403B96084E3CA029EFC39908A6C9powersoftcom_ Content-Type: text/plain; charset=3D"us-ascii" Content-Transfer-Encoding: quoted-printable Hi there, I seem to have run into a problem. my hosted engine vm is failing to start= =3D ; vdsm.log; Thread-20::DEBUG::2015-01-27 16:53:37,999::fileSD::152::Storage.StorageDoma= =3D in::(__init__) Reading domain in path /rhev/data-center/mnt/192.168.1.32:_V= =3D olumes_Raid1/443b4931-667f-441f-98d8-51384e67a0af Thread-20::ERROR::2015-01-27 16:53:38,000::domainMonitor::256::Storage.Doma= =3D inMonitorThread::(_monitorDomain) Error while collecting domain 443b4931-66= =3D 7f-441f-98d8-51384e67a0af monitoring information Traceback (most recent call last): File "/usr/share/vdsm/storage/domainMonitor.py", line 221, in _monitorDom= =3D ain self.domain =3D3D sdCache.produce(self.sdUUID) File "/usr/share/vdsm/storage/sdc.py", line 98, in produce domain.getRealDomain() File "/usr/share/vdsm/storage/sdc.py", line 52, in getRealDomain return self._cache._realProduce(self._sdUUID) File "/usr/share/vdsm/storage/sdc.py", line 122, in _realProduce domain =3D3D self._findDomain(sdUUID) File "/usr/share/vdsm/storage/sdc.py", line 141, in _findDomain dom =3D3D findMethod(sdUUID) File "/usr/share/vdsm/storage/nfsSD.py", line 122, in findDomain return NfsStorageDomain(NfsStorageDomain.findDomainPath(sdUUID)) File "/usr/share/vdsm/storage/fileSD.py", line 159, in __init__ validateFileSystemFeatures(sdUUID, self.mountpoint) File "/usr/share/vdsm/storage/fileSD.py", line 88, in validateFileSystemF= =3D eatures oop.getProcessPool(sdUUID).directTouch(testFilePath) File "/usr/share/vdsm/storage/outOfProcess.py", line 320, in directTouch ioproc.touch(path, flags, mode) File "/usr/lib/python2.6/site-packages/ioprocess/__init__.py", line 507, = =3D in touch self.timeout) File "/usr/lib/python2.6/site-packages/ioprocess/__init__.py", line 391, = =3D in _sendCommand raise OSError(errcode, errstr) OSError: [Errno 13] Permission denied I assume this is an nfs issue so I checked to see if I could create a file = =3D in the mounts from the host machine, which I could. My test bed is usign an old OS X NFS via xraid adn the export is ; /Volumes/Raid1 -maproot=3D3Droot:wheel -network 192.168.1.0 -mask 255.255.2= 55=3D .0 drwxr-xr-x 6 vdsm kvm 204 Jan 27 16:30 443b4931-667f-441f-98d8-51= =3D 384e67a0af drwxr-xr-x 4 vdsm kvm 136 Jan 27 12:32 data drwxr-xr-x 4 vdsm kvm 136 Jan 27 00:18 iso drwxr-xr-x 3 vdsm kvm 102 Jan 26 09:43 vm the host machine seems to mount the shares fine.... drwxr-xr-x 5 vdsm kvm 4096 Jan 27 12:28 . drwxr-xr-x 3 vdsm kvm 4096 Jan 27 10:04 .. drwxr-xr-x 13 vdsm kvm 544 Jan 27 00:12 192.168.1.32:_Volumes_Raid1 drwxr-xr-x 2 vdsm kvm 4096 Jan 27 00:12 192.168.1.32:_Volumes_Raid1_data drwxr-xr-x 2 vdsm kvm 4096 Jan 27 00:24 192.168.1.32:_Volumes_Raid1_iso and as I said above I can create files in any one of those mounts Is there a place I can look at to find the offending file? If that is the = =3D issue... Oddly enough everything worked until i rebooted, so I must have e= =3D ither changed something or something is buggered. --_000_DDFE403B96084E3CA029EFC39908A6C9powersoftcom_ Content-Type: text/html; charset=3D"us-ascii" Content-ID: <24D10F8AA975974E9791EA01D2A22C0E(a)power-soft.net> Content-Transfer-Encoding: quoted-printable Hi there,


I seem to have run into a problem.  my hosted engine= v=3D m is failing to start;

vdsm.log;


Thread-20::DEBUG::2015-01-27 16:53:37,999::fileSD::152::Storage.StorageDom= =3D ain::(__init__) Reading domain in path /rhev/data-center/mnt/192.168.1.32:_= =3D Volumes_Raid1/443b4931-667f-441f-98d8-51384e67a0af
Thread-20::ERROR::2015-01-27 16:53:38,000::domainMonitor::256::Storage.Dom= =3D ainMonitorThread::(_monitorDomain) Error while collecting domain 443b4931-6= =3D 67f-441f-98d8-51384e67a0af monitoring information
Traceback (most recent call last):
  File "/usr/share/vdsm/storage/domainMonitor.py", line 221= =3D , in _monitorDomain
    self.domain =3D3D sdCache.produce(self.sdUUID)
  File "/usr/share/vdsm/storage/sdc.py", line 98, in produc= =3D e
    domain.getRealDomain()
  File "/usr/share/vdsm/storage/sdc.py", line 52, in getRea= =3D lDomain
    return self._cache._realProduce(self._sdUUID)
  File "/usr/share/vdsm/storage/sdc.py", line 122, in _real= =3D Produce
    domain =3D3D self._findDomain(sdUUID)
  File "/usr/share/vdsm/storage/sdc.py", line 141, in _find= =3D Domain
    dom =3D3D findMethod(sdUUID)
  File "/usr/share/vdsm/storage/nfsSD.py", line 122, in fin= =3D dDomain
    return NfsStorageDomain(NfsStorageDomain.findDomainPath(sdUU= =3D ID))
  File "/usr/share/vdsm/storage/fileSD.py", line 159, in __= =3D init__
    validateFileSystemFeatures(sdUUID, self.mountpoint)
  File "/usr/share/vdsm/storage/fileSD.py", line 88, in val= =3D idateFileSystemFeatures
    oop.getProcessPool(sdUUID).directTouch(testFilePath)
  File "/usr/share/vdsm/storage/outOfProcess.py", line 320,= =3D in directTouch
    ioproc.touch(path, flags, mode)
  File "/usr/lib/python2.6/site-packages/ioprocess/__init__.py&q= =3D uot;, line 507, in touch
    self.timeout)
  File "/usr/lib/python2.6/site-packages/ioprocess/__init__.py&q= =3D uot;, line 391, in _sendCommand
    raise OSError(errcode, errstr)
OSError: [Errno 13] Permission denied

I assume this is an nfs issue so I checked to see if I co= ul=3D d create a file in the mounts from the host machine,  which I could.

My test bed is usign an old OS X NFS via xraid adn the ex= po=3D rt is ;
/Volumes/Raid1 -maproot=3D3Droot:wheel -network 192.168.1.0 -mask 255.255.= 25=3D 5.0

drwxr-xr-x    6 vdsm   kvm      204 Jan 27 1= =3D 6:30 443b4931-667f-441f-98d8-51384e67a0af
drwxr-xr-x    4 vdsm &= nbsp=3D ; kvm      136 Jan 27 12:32 data
drwxr-xr-x    4 vdsm &= nbsp=3D ; kvm      136 Jan 27 00:18 iso
drwxr-xr-x    3 vdsm &= nbsp=3D ; kvm      102 Jan 26 09:43 vm

the host machine seems to mount = the =3D shares fine....

drwxr-xr-x  5 vdsm kvm 4096= Jan=3D 27 12:28 .
drwxr-xr-x  3 vdsm kvm 4096= Jan=3D 27 10:04 ..
drwxr-xr-x 13 vdsm kvm  544= Jan=3D 27 00:12 192.168.1.32:_Volumes_Raid1
drwxr-xr-x  2 vdsm kvm 4096= Jan=3D 27 00:12 192.168.1.32:_Volumes_Raid1_data
drwxr-xr-x  2 vdsm kvm 4096= Jan=3D 27 00:24 192.168.1.32:_Volumes_Raid1_iso

and as I said above I can create files in any one of thos= e =3D mounts


Is there a place I can look at to find the offending file= ? =3D  If that is the issue...  Oddly enough everything worked until i = =3D rebooted, so I must have either changed something or something is buggered.= =3D



--_000_DDFE403B96084E3CA029EFC39908A6C9powersoftcom_-- --===============1824801237874106410== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" LS1fMDAwX0RERkU0MDNCOTYwODRFM0NBMDI5RUZDMzk5MDhBNkM5cG93ZXJzb2Z0Y29tXwpDb250 ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9InVzLWFzY2lpIgpDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpIaSB0aGVyZSwKCgpJIHNlZW0gdG8gaGF2ZSBy dW4gaW50byBhIHByb2JsZW0uICBteSBob3N0ZWQgZW5naW5lIHZtIGlzIGZhaWxpbmcgdG8gc3Rh cnQ9CjsKCnZkc20ubG9nOwoKClRocmVhZC0yMDo6REVCVUc6OjIwMTUtMDEtMjcgMTY6NTM6Mzcs OTk5OjpmaWxlU0Q6OjE1Mjo6U3RvcmFnZS5TdG9yYWdlRG9tYT0KaW46OihfX2luaXRfXykgUmVh ZGluZyBkb21haW4gaW4gcGF0aCAvcmhldi9kYXRhLWNlbnRlci9tbnQvMTkyLjE2OC4xLjMyOl9W PQpvbHVtZXNfUmFpZDEvNDQzYjQ5MzEtNjY3Zi00NDFmLTk4ZDgtNTEzODRlNjdhMGFmClRocmVh ZC0yMDo6RVJST1I6OjIwMTUtMDEtMjcgMTY6NTM6MzgsMDAwOjpkb21haW5Nb25pdG9yOjoyNTY6 OlN0b3JhZ2UuRG9tYT0KaW5Nb25pdG9yVGhyZWFkOjooX21vbml0b3JEb21haW4pIEVycm9yIHdo aWxlIGNvbGxlY3RpbmcgZG9tYWluIDQ0M2I0OTMxLTY2PQo3Zi00NDFmLTk4ZDgtNTEzODRlNjdh MGFmIG1vbml0b3JpbmcgaW5mb3JtYXRpb24KVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh c3QpOgogIEZpbGUgIi91c3Ivc2hhcmUvdmRzbS9zdG9yYWdlL2RvbWFpbk1vbml0b3IucHkiLCBs aW5lIDIyMSwgaW4gX21vbml0b3JEb209CmFpbgogICAgc2VsZi5kb21haW4gPTNEIHNkQ2FjaGUu cHJvZHVjZShzZWxmLnNkVVVJRCkKICBGaWxlICIvdXNyL3NoYXJlL3Zkc20vc3RvcmFnZS9zZGMu cHkiLCBsaW5lIDk4LCBpbiBwcm9kdWNlCiAgICBkb21haW4uZ2V0UmVhbERvbWFpbigpCiAgRmls ZSAiL3Vzci9zaGFyZS92ZHNtL3N0b3JhZ2Uvc2RjLnB5IiwgbGluZSA1MiwgaW4gZ2V0UmVhbERv bWFpbgogICAgcmV0dXJuIHNlbGYuX2NhY2hlLl9yZWFsUHJvZHVjZShzZWxmLl9zZFVVSUQpCiAg RmlsZSAiL3Vzci9zaGFyZS92ZHNtL3N0b3JhZ2Uvc2RjLnB5IiwgbGluZSAxMjIsIGluIF9yZWFs UHJvZHVjZQogICAgZG9tYWluID0zRCBzZWxmLl9maW5kRG9tYWluKHNkVVVJRCkKICBGaWxlICIv dXNyL3NoYXJlL3Zkc20vc3RvcmFnZS9zZGMucHkiLCBsaW5lIDE0MSwgaW4gX2ZpbmREb21haW4K ICAgIGRvbSA9M0QgZmluZE1ldGhvZChzZFVVSUQpCiAgRmlsZSAiL3Vzci9zaGFyZS92ZHNtL3N0 b3JhZ2UvbmZzU0QucHkiLCBsaW5lIDEyMiwgaW4gZmluZERvbWFpbgogICAgcmV0dXJuIE5mc1N0 b3JhZ2VEb21haW4oTmZzU3RvcmFnZURvbWFpbi5maW5kRG9tYWluUGF0aChzZFVVSUQpKQogIEZp bGUgIi91c3Ivc2hhcmUvdmRzbS9zdG9yYWdlL2ZpbGVTRC5weSIsIGxpbmUgMTU5LCBpbiBfX2lu aXRfXwogICAgdmFsaWRhdGVGaWxlU3lzdGVtRmVhdHVyZXMoc2RVVUlELCBzZWxmLm1vdW50cG9p bnQpCiAgRmlsZSAiL3Vzci9zaGFyZS92ZHNtL3N0b3JhZ2UvZmlsZVNELnB5IiwgbGluZSA4OCwg aW4gdmFsaWRhdGVGaWxlU3lzdGVtRj0KZWF0dXJlcwogICAgb29wLmdldFByb2Nlc3NQb29sKHNk VVVJRCkuZGlyZWN0VG91Y2godGVzdEZpbGVQYXRoKQogIEZpbGUgIi91c3Ivc2hhcmUvdmRzbS9z dG9yYWdlL291dE9mUHJvY2Vzcy5weSIsIGxpbmUgMzIwLCBpbiBkaXJlY3RUb3VjaAogICAgaW9w cm9jLnRvdWNoKHBhdGgsIGZsYWdzLCBtb2RlKQogIEZpbGUgIi91c3IvbGliL3B5dGhvbjIuNi9z aXRlLXBhY2thZ2VzL2lvcHJvY2Vzcy9fX2luaXRfXy5weSIsIGxpbmUgNTA3LCA9CmluIHRvdWNo CiAgICBzZWxmLnRpbWVvdXQpCiAgRmlsZSAiL3Vzci9saWIvcHl0aG9uMi42L3NpdGUtcGFja2Fn ZXMvaW9wcm9jZXNzL19faW5pdF9fLnB5IiwgbGluZSAzOTEsID0KaW4gX3NlbmRDb21tYW5kCiAg ICByYWlzZSBPU0Vycm9yKGVycmNvZGUsIGVycnN0cikKT1NFcnJvcjogW0Vycm5vIDEzXSBQZXJt aXNzaW9uIGRlbmllZAoKSSBhc3N1bWUgdGhpcyBpcyBhbiBuZnMgaXNzdWUgc28gSSBjaGVja2Vk IHRvIHNlZSBpZiBJIGNvdWxkIGNyZWF0ZSBhIGZpbGUgPQppbiB0aGUgbW91bnRzIGZyb20gdGhl IGhvc3QgbWFjaGluZSwgIHdoaWNoIEkgY291bGQuCgpNeSB0ZXN0IGJlZCBpcyB1c2lnbiBhbiBv bGQgT1MgWCBORlMgdmlhIHhyYWlkIGFkbiB0aGUgZXhwb3J0IGlzIDsKL1ZvbHVtZXMvUmFpZDEg LW1hcHJvb3Q9M0Ryb290OndoZWVsIC1uZXR3b3JrIDE5Mi4xNjguMS4wIC1tYXNrIDI1NS4yNTUu MjU1PQouMAoKZHJ3eHIteHIteCAgICA2IHZkc20gICBrdm0gICAgICAyMDQgSmFuIDI3IDE2OjMw IDQ0M2I0OTMxLTY2N2YtNDQxZi05OGQ4LTUxPQozODRlNjdhMGFmCmRyd3hyLXhyLXggICAgNCB2 ZHNtICAga3ZtICAgICAgMTM2IEphbiAyNyAxMjozMiBkYXRhCmRyd3hyLXhyLXggICAgNCB2ZHNt ICAga3ZtICAgICAgMTM2IEphbiAyNyAwMDoxOCBpc28KZHJ3eHIteHIteCAgICAzIHZkc20gICBr dm0gICAgICAxMDIgSmFuIDI2IDA5OjQzIHZtCgp0aGUgaG9zdCBtYWNoaW5lIHNlZW1zIHRvIG1v dW50IHRoZSBzaGFyZXMgZmluZS4uLi4KCmRyd3hyLXhyLXggIDUgdmRzbSBrdm0gNDA5NiBKYW4g MjcgMTI6MjggLgpkcnd4ci14ci14ICAzIHZkc20ga3ZtIDQwOTYgSmFuIDI3IDEwOjA0IC4uCmRy d3hyLXhyLXggMTMgdmRzbSBrdm0gIDU0NCBKYW4gMjcgMDA6MTIgMTkyLjE2OC4xLjMyOl9Wb2x1 bWVzX1JhaWQxCmRyd3hyLXhyLXggIDIgdmRzbSBrdm0gNDA5NiBKYW4gMjcgMDA6MTIgMTkyLjE2 OC4xLjMyOl9Wb2x1bWVzX1JhaWQxX2RhdGEKZHJ3eHIteHIteCAgMiB2ZHNtIGt2bSA0MDk2IEph biAyNyAwMDoyNCAxOTIuMTY4LjEuMzI6X1ZvbHVtZXNfUmFpZDFfaXNvCgphbmQgYXMgSSBzYWlk IGFib3ZlIEkgY2FuIGNyZWF0ZSBmaWxlcyBpbiBhbnkgb25lIG9mIHRob3NlIG1vdW50cwoKCklz IHRoZXJlIGEgcGxhY2UgSSBjYW4gbG9vayBhdCB0byBmaW5kIHRoZSBvZmZlbmRpbmcgZmlsZT8g IElmIHRoYXQgaXMgdGhlID0KaXNzdWUuLi4gIE9kZGx5IGVub3VnaCBldmVyeXRoaW5nIHdvcmtl ZCB1bnRpbCBpIHJlYm9vdGVkLCBzbyBJIG11c3QgaGF2ZSBlPQppdGhlciBjaGFuZ2VkIHNvbWV0 aGluZyBvciBzb21ldGhpbmcgaXMgYnVnZ2VyZWQuCgoKCgotLV8wMDBfRERGRTQwM0I5NjA4NEUz Q0EwMjlFRkMzOTkwOEE2Qzlwb3dlcnNvZnRjb21fCkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBj aGFyc2V0PSJ1cy1hc2NpaSIKQ29udGVudC1JRDogPDI0RDEwRjhBQTk3NTk3NEU5NzkxRUEwMUQy QTIyQzBFQHBvd2VyLXNvZnQubmV0PgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQt cHJpbnRhYmxlCgo8aHRtbD4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9M0QiQ29udGVudC1UeXBl IiBjb250ZW50PTNEInRleHQvaHRtbDsgY2hhcnNldD0zRHVzLWFzY2lpIj0KPgo8L2hlYWQ+Cjxi b2R5IHN0eWxlPTNEIndvcmQtd3JhcDogYnJlYWstd29yZDsgLXdlYmtpdC1uYnNwLW1vZGU6IHNw YWNlOyAtd2Via2l0LWxpbj0KZS1icmVhazogYWZ0ZXItd2hpdGUtc3BhY2U7IiBjbGFzcz0zRCIi PgpIaSB0aGVyZSwKPGRpdiBjbGFzcz0zRCIiPjxiciBjbGFzcz0zRCIiPgo8L2Rpdj4KPGRpdiBj bGFzcz0zRCIiPjxiciBjbGFzcz0zRCIiPgo8L2Rpdj4KPGRpdiBjbGFzcz0zRCIiPkkgc2VlbSB0 byBoYXZlIHJ1biBpbnRvIGEgcHJvYmxlbS4gJm5ic3A7bXkgaG9zdGVkIGVuZ2luZSB2PQptIGlz IGZhaWxpbmcgdG8gc3RhcnQ7PC9kaXY+CjxkaXYgY2xhc3M9M0QiIj48YnIgY2xhc3M9M0QiIj4K PC9kaXY+CjxkaXYgY2xhc3M9M0QiIj52ZHNtLmxvZzs8L2Rpdj4KPGRpdiBjbGFzcz0zRCIiPjxi ciBjbGFzcz0zRCIiPgo8L2Rpdj4KPGRpdiBjbGFzcz0zRCIiPjxiciBjbGFzcz0zRCIiPgo8L2Rp dj4KPGRpdiBjbGFzcz0zRCIiPgo8ZGl2IHN0eWxlPTNEIm1hcmdpbjogMHB4OyBmb250LXNpemU6 IDExcHg7IGZvbnQtZmFtaWx5OiBNZW5sbzsiIGNsYXNzPTNEIiI9Cj5UaHJlYWQtMjA6OkRFQlVH OjoyMDE1LTAxLTI3IDE2OjUzOjM3LDk5OTo6ZmlsZVNEOjoxNTI6OlN0b3JhZ2UuU3RvcmFnZURv bT0KYWluOjooX19pbml0X18pIFJlYWRpbmcgZG9tYWluIGluIHBhdGggL3JoZXYvZGF0YS1jZW50 ZXIvbW50LzE5Mi4xNjguMS4zMjpfPQpWb2x1bWVzX1JhaWQxLzQ0M2I0OTMxLTY2N2YtNDQxZi05 OGQ4LTUxMzg0ZTY3YTBhZjwvZGl2Pgo8ZGl2IHN0eWxlPTNEIm1hcmdpbjogMHB4OyBmb250LXNp emU6IDExcHg7IGZvbnQtZmFtaWx5OiBNZW5sbzsiIGNsYXNzPTNEIiI9Cj5UaHJlYWQtMjA6OkVS Uk9SOjoyMDE1LTAxLTI3IDE2OjUzOjM4LDAwMDo6ZG9tYWluTW9uaXRvcjo6MjU2OjpTdG9yYWdl LkRvbT0KYWluTW9uaXRvclRocmVhZDo6KF9tb25pdG9yRG9tYWluKSBFcnJvciB3aGlsZSBjb2xs ZWN0aW5nIGRvbWFpbiA0NDNiNDkzMS02PQo2N2YtNDQxZi05OGQ4LTUxMzg0ZTY3YTBhZiBtb25p dG9yaW5nCiBpbmZvcm1hdGlvbjwvZGl2Pgo8ZGl2IHN0eWxlPTNEIm1hcmdpbjogMHB4OyBmb250 LXNpemU6IDExcHg7IGZvbnQtZmFtaWx5OiBNZW5sbzsiIGNsYXNzPTNEIiI9Cj5UcmFjZWJhY2sg KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6PC9kaXY+CjxkaXYgc3R5bGU9M0QibWFyZ2luOiAwcHg7 IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IE1lbmxvOyIgY2xhc3M9M0QiIj0KPiZuYnNw OyBGaWxlICZxdW90Oy91c3Ivc2hhcmUvdmRzbS9zdG9yYWdlL2RvbWFpbk1vbml0b3IucHkmcXVv dDssIGxpbmUgMjIxPQosIGluIF9tb25pdG9yRG9tYWluPC9kaXY+CjxkaXYgc3R5bGU9M0QibWFy Z2luOiAwcHg7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IE1lbmxvOyIgY2xhc3M9M0Qi Ij0KPiZuYnNwOyAmbmJzcDsgc2VsZi5kb21haW4gPTNEIHNkQ2FjaGUucHJvZHVjZShzZWxmLnNk VVVJRCk8L2Rpdj4KPGRpdiBzdHlsZT0zRCJtYXJnaW46IDBweDsgZm9udC1zaXplOiAxMXB4OyBm b250LWZhbWlseTogTWVubG87IiBjbGFzcz0zRCIiPQo+Jm5ic3A7IEZpbGUgJnF1b3Q7L3Vzci9z aGFyZS92ZHNtL3N0b3JhZ2Uvc2RjLnB5JnF1b3Q7LCBsaW5lIDk4LCBpbiBwcm9kdWM9CmU8L2Rp dj4KPGRpdiBzdHlsZT0zRCJtYXJnaW46IDBweDsgZm9udC1zaXplOiAxMXB4OyBmb250LWZhbWls eTogTWVubG87IiBjbGFzcz0zRCIiPQo+Jm5ic3A7ICZuYnNwOyBkb21haW4uZ2V0UmVhbERvbWFp bigpPC9kaXY+CjxkaXYgc3R5bGU9M0QibWFyZ2luOiAwcHg7IGZvbnQtc2l6ZTogMTFweDsgZm9u dC1mYW1pbHk6IE1lbmxvOyIgY2xhc3M9M0QiIj0KPiZuYnNwOyBGaWxlICZxdW90Oy91c3Ivc2hh cmUvdmRzbS9zdG9yYWdlL3NkYy5weSZxdW90OywgbGluZSA1MiwgaW4gZ2V0UmVhPQpsRG9tYWlu PC9kaXY+CjxkaXYgc3R5bGU9M0QibWFyZ2luOiAwcHg7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1m YW1pbHk6IE1lbmxvOyIgY2xhc3M9M0QiIj0KPiZuYnNwOyAmbmJzcDsgcmV0dXJuIHNlbGYuX2Nh Y2hlLl9yZWFsUHJvZHVjZShzZWxmLl9zZFVVSUQpPC9kaXY+CjxkaXYgc3R5bGU9M0QibWFyZ2lu OiAwcHg7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IE1lbmxvOyIgY2xhc3M9M0QiIj0K PiZuYnNwOyBGaWxlICZxdW90Oy91c3Ivc2hhcmUvdmRzbS9zdG9yYWdlL3NkYy5weSZxdW90Oywg bGluZSAxMjIsIGluIF9yZWFsPQpQcm9kdWNlPC9kaXY+CjxkaXYgc3R5bGU9M0QibWFyZ2luOiAw cHg7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IE1lbmxvOyIgY2xhc3M9M0QiIj0KPiZu YnNwOyAmbmJzcDsgZG9tYWluID0zRCBzZWxmLl9maW5kRG9tYWluKHNkVVVJRCk8L2Rpdj4KPGRp diBzdHlsZT0zRCJtYXJnaW46IDBweDsgZm9udC1zaXplOiAxMXB4OyBmb250LWZhbWlseTogTWVu bG87IiBjbGFzcz0zRCIiPQo+Jm5ic3A7IEZpbGUgJnF1b3Q7L3Vzci9zaGFyZS92ZHNtL3N0b3Jh Z2Uvc2RjLnB5JnF1b3Q7LCBsaW5lIDE0MSwgaW4gX2ZpbmQ9CkRvbWFpbjwvZGl2Pgo8ZGl2IHN0 eWxlPTNEIm1hcmdpbjogMHB4OyBmb250LXNpemU6IDExcHg7IGZvbnQtZmFtaWx5OiBNZW5sbzsi IGNsYXNzPTNEIiI9Cj4mbmJzcDsgJm5ic3A7IGRvbSA9M0QgZmluZE1ldGhvZChzZFVVSUQpPC9k aXY+CjxkaXYgc3R5bGU9M0QibWFyZ2luOiAwcHg7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1p bHk6IE1lbmxvOyIgY2xhc3M9M0QiIj0KPiZuYnNwOyBGaWxlICZxdW90Oy91c3Ivc2hhcmUvdmRz bS9zdG9yYWdlL25mc1NELnB5JnF1b3Q7LCBsaW5lIDEyMiwgaW4gZmluPQpkRG9tYWluPC9kaXY+ CjxkaXYgc3R5bGU9M0QibWFyZ2luOiAwcHg7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6 IE1lbmxvOyIgY2xhc3M9M0QiIj0KPiZuYnNwOyAmbmJzcDsgcmV0dXJuIE5mc1N0b3JhZ2VEb21h aW4oTmZzU3RvcmFnZURvbWFpbi5maW5kRG9tYWluUGF0aChzZFVVPQpJRCkpPC9kaXY+CjxkaXYg c3R5bGU9M0QibWFyZ2luOiAwcHg7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IE1lbmxv OyIgY2xhc3M9M0QiIj0KPiZuYnNwOyBGaWxlICZxdW90Oy91c3Ivc2hhcmUvdmRzbS9zdG9yYWdl L2ZpbGVTRC5weSZxdW90OywgbGluZSAxNTksIGluIF9fPQppbml0X188L2Rpdj4KPGRpdiBzdHls ZT0zRCJtYXJnaW46IDBweDsgZm9udC1zaXplOiAxMXB4OyBmb250LWZhbWlseTogTWVubG87IiBj bGFzcz0zRCIiPQo+Jm5ic3A7ICZuYnNwOyB2YWxpZGF0ZUZpbGVTeXN0ZW1GZWF0dXJlcyhzZFVV SUQsIHNlbGYubW91bnRwb2ludCk8L2Rpdj4KPGRpdiBzdHlsZT0zRCJtYXJnaW46IDBweDsgZm9u dC1zaXplOiAxMXB4OyBmb250LWZhbWlseTogTWVubG87IiBjbGFzcz0zRCIiPQo+Jm5ic3A7IEZp bGUgJnF1b3Q7L3Vzci9zaGFyZS92ZHNtL3N0b3JhZ2UvZmlsZVNELnB5JnF1b3Q7LCBsaW5lIDg4 LCBpbiB2YWw9CmlkYXRlRmlsZVN5c3RlbUZlYXR1cmVzPC9kaXY+CjxkaXYgc3R5bGU9M0QibWFy Z2luOiAwcHg7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IE1lbmxvOyIgY2xhc3M9M0Qi Ij0KPiZuYnNwOyAmbmJzcDsgb29wLmdldFByb2Nlc3NQb29sKHNkVVVJRCkuZGlyZWN0VG91Y2go dGVzdEZpbGVQYXRoKTwvZGl2Pgo8ZGl2IHN0eWxlPTNEIm1hcmdpbjogMHB4OyBmb250LXNpemU6 IDExcHg7IGZvbnQtZmFtaWx5OiBNZW5sbzsiIGNsYXNzPTNEIiI9Cj4mbmJzcDsgRmlsZSAmcXVv dDsvdXNyL3NoYXJlL3Zkc20vc3RvcmFnZS9vdXRPZlByb2Nlc3MucHkmcXVvdDssIGxpbmUgMzIw LD0KIGluIGRpcmVjdFRvdWNoPC9kaXY+CjxkaXYgc3R5bGU9M0QibWFyZ2luOiAwcHg7IGZvbnQt c2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IE1lbmxvOyIgY2xhc3M9M0QiIj0KPiZuYnNwOyAmbmJz cDsgaW9wcm9jLnRvdWNoKHBhdGgsIGZsYWdzLCBtb2RlKTwvZGl2Pgo8ZGl2IHN0eWxlPTNEIm1h cmdpbjogMHB4OyBmb250LXNpemU6IDExcHg7IGZvbnQtZmFtaWx5OiBNZW5sbzsiIGNsYXNzPTNE IiI9Cj4mbmJzcDsgRmlsZSAmcXVvdDsvdXNyL2xpYi9weXRob24yLjYvc2l0ZS1wYWNrYWdlcy9p b3Byb2Nlc3MvX19pbml0X18ucHkmcT0KdW90OywgbGluZSA1MDcsIGluIHRvdWNoPC9kaXY+Cjxk aXYgc3R5bGU9M0QibWFyZ2luOiAwcHg7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IE1l bmxvOyIgY2xhc3M9M0QiIj0KPiZuYnNwOyAmbmJzcDsgc2VsZi50aW1lb3V0KTwvZGl2Pgo8ZGl2 IHN0eWxlPTNEIm1hcmdpbjogMHB4OyBmb250LXNpemU6IDExcHg7IGZvbnQtZmFtaWx5OiBNZW5s bzsiIGNsYXNzPTNEIiI9Cj4mbmJzcDsgRmlsZSAmcXVvdDsvdXNyL2xpYi9weXRob24yLjYvc2l0 ZS1wYWNrYWdlcy9pb3Byb2Nlc3MvX19pbml0X18ucHkmcT0KdW90OywgbGluZSAzOTEsIGluIF9z ZW5kQ29tbWFuZDwvZGl2Pgo8ZGl2IHN0eWxlPTNEIm1hcmdpbjogMHB4OyBmb250LXNpemU6IDEx cHg7IGZvbnQtZmFtaWx5OiBNZW5sbzsiIGNsYXNzPTNEIiI9Cj4mbmJzcDsgJm5ic3A7IHJhaXNl IE9TRXJyb3IoZXJyY29kZSwgZXJyc3RyKTwvZGl2Pgo8ZGl2IHN0eWxlPTNEIm1hcmdpbjogMHB4 OyBmb250LXNpemU6IDExcHg7IGZvbnQtZmFtaWx5OiBNZW5sbzsiIGNsYXNzPTNEIiI9Cj5PU0Vy cm9yOiBbRXJybm8gMTNdIFBlcm1pc3Npb24gZGVuaWVkPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNz PTNEIiI+PGJyIGNsYXNzPTNEIiI+CjwvZGl2Pgo8ZGl2IGNsYXNzPTNEIiI+SSBhc3N1bWUgdGhp cyBpcyBhbiBuZnMgaXNzdWUgc28gSSBjaGVja2VkIHRvIHNlZSBpZiBJIGNvdWw9CmQgY3JlYXRl IGEgZmlsZSBpbiB0aGUgbW91bnRzIGZyb20gdGhlIGhvc3QgbWFjaGluZSwgJm5ic3A7d2hpY2gg SSBjb3VsZC48Lz0KZGl2Pgo8ZGl2IGNsYXNzPTNEIiI+PGJyIGNsYXNzPTNEIiI+CjwvZGl2Pgo8 ZGl2IGNsYXNzPTNEIiI+TXkgdGVzdCBiZWQgaXMgdXNpZ24gYW4gb2xkIE9TIFggTkZTIHZpYSB4 cmFpZCBhZG4gdGhlIGV4cG89CnJ0IGlzIDs8L2Rpdj4KPGRpdiBjbGFzcz0zRCIiPgo8ZGl2IHN0 eWxlPTNEIm1hcmdpbjogMHB4OyBmb250LXNpemU6IDExcHg7IGZvbnQtZmFtaWx5OiBNZW5sbzsi IGNsYXNzPTNEIiI9Cj4vVm9sdW1lcy9SYWlkMSAtbWFwcm9vdD0zRHJvb3Q6d2hlZWwgLW5ldHdv cmsgMTkyLjE2OC4xLjAgLW1hc2sgMjU1LjI1NS4yNT0KNS4wPC9kaXY+CjwvZGl2Pgo8ZGl2IGNs YXNzPTNEIiI+PGJyIGNsYXNzPTNEIiI+CjwvZGl2Pgo8ZGl2IGNsYXNzPTNEIiI+CjxkaXYgc3R5 bGU9M0QibWFyZ2luOiAwcHg7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IE1lbmxvOyIg Y2xhc3M9M0QiIj0KPmRyd3hyLXhyLXgmbmJzcDsgJm5ic3A7IDYgdmRzbSAmbmJzcDsga3ZtJm5i c3A7ICZuYnNwOyAmbmJzcDsgMjA0IEphbiAyNyAxPQo2OjMwIDQ0M2I0OTMxLTY2N2YtNDQxZi05 OGQ4LTUxMzg0ZTY3YTBhZjwvZGl2Pgo8L2Rpdj4KPGRpdiBzdHlsZT0zRCJtYXJnaW46IDBweDsg Zm9udC1zaXplOiAxMXB4OyBmb250LWZhbWlseTogTWVubG87IiBjbGFzcz0zRCIiPQo+CjxkaXYg c3R5bGU9M0QibWFyZ2luOiAwcHg7IiBjbGFzcz0zRCIiPmRyd3hyLXhyLXgmbmJzcDsgJm5ic3A7 IDQgdmRzbSAmbmJzcD0KOyBrdm0mbmJzcDsgJm5ic3A7ICZuYnNwOyAxMzYgSmFuIDI3IDEyOjMy IGRhdGE8L2Rpdj4KPGRpdiBzdHlsZT0zRCJtYXJnaW46IDBweDsiIGNsYXNzPTNEIiI+CjxkaXYg c3R5bGU9M0QibWFyZ2luOiAwcHg7IiBjbGFzcz0zRCIiPmRyd3hyLXhyLXgmbmJzcDsgJm5ic3A7 IDQgdmRzbSAmbmJzcD0KOyBrdm0mbmJzcDsgJm5ic3A7ICZuYnNwOyAxMzYgSmFuIDI3IDAwOjE4 IGlzbzwvZGl2Pgo8ZGl2IHN0eWxlPTNEIm1hcmdpbjogMHB4OyIgY2xhc3M9M0QiIj4KPGRpdiBz dHlsZT0zRCJtYXJnaW46IDBweDsiIGNsYXNzPTNEIiI+ZHJ3eHIteHIteCZuYnNwOyAmbmJzcDsg MyB2ZHNtICZuYnNwPQo7IGt2bSZuYnNwOyAmbmJzcDsgJm5ic3A7IDEwMiBKYW4gMjYgMDk6NDMg dm08L2Rpdj4KPGRpdiBzdHlsZT0zRCJtYXJnaW46IDBweDsiIGNsYXNzPTNEIiI+PGJyIGNsYXNz PTNEIiI+CjwvZGl2Pgo8ZGl2IHN0eWxlPTNEIm1hcmdpbjogMHB4OyIgY2xhc3M9M0QiIj50aGUg aG9zdCBtYWNoaW5lIHNlZW1zIHRvIG1vdW50IHRoZSA9CnNoYXJlcyBmaW5lLi4uLjwvZGl2Pgo8 ZGl2IHN0eWxlPTNEIm1hcmdpbjogMHB4OyIgY2xhc3M9M0QiIj48YnIgY2xhc3M9M0QiIj4KPC9k aXY+CjxkaXYgc3R5bGU9M0QibWFyZ2luOiAwcHg7IiBjbGFzcz0zRCIiPgo8ZGl2IHN0eWxlPTNE Im1hcmdpbjogMHB4OyIgY2xhc3M9M0QiIj5kcnd4ci14ci14Jm5ic3A7IDUgdmRzbSBrdm0gNDA5 NiBKYW49CiAyNyAxMjoyOCA8c3BhbiBzdHlsZT0zRCJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBu by1jb21tb24tbGlnYXR1cmVzOyBjb2xvcj0KOiAjNGM3YWZmIiBjbGFzcz0zRCIiPgouPC9zcGFu PjwvZGl2Pgo8ZGl2IHN0eWxlPTNEIm1hcmdpbjogMHB4OyIgY2xhc3M9M0QiIj5kcnd4ci14ci14 Jm5ic3A7IDMgdmRzbSBrdm0gNDA5NiBKYW49CiAyNyAxMDowNCA8c3BhbiBzdHlsZT0zRCJmb250 LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xvcj0KOiAjNGM3YWZm IiBjbGFzcz0zRCIiPgouLjwvc3Bhbj48L2Rpdj4KPGRpdiBzdHlsZT0zRCJtYXJnaW46IDBweDsi IGNsYXNzPTNEIiI+ZHJ3eHIteHIteCAxMyB2ZHNtIGt2bSZuYnNwOyA1NDQgSmFuPQogMjcgMDA6 MTIgPHNwYW4gc3R5bGU9M0QiZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0 dXJlczsgY29sb3I9CjogIzRjN2FmZiIgY2xhc3M9M0QiIj4KMTkyLjE2OC4xLjMyOl9Wb2x1bWVz X1JhaWQxPC9zcGFuPjwvZGl2Pgo8ZGl2IHN0eWxlPTNEIm1hcmdpbjogMHB4OyIgY2xhc3M9M0Qi Ij5kcnd4ci14ci14Jm5ic3A7IDIgdmRzbSBrdm0gNDA5NiBKYW49CiAyNyAwMDoxMiA8c3BhbiBz dHlsZT0zRCJmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBuby1jb21tb24tbGlnYXR1cmVzOyBjb2xv cj0KOiAjNGM3YWZmIiBjbGFzcz0zRCIiPgoxOTIuMTY4LjEuMzI6X1ZvbHVtZXNfUmFpZDFfZGF0 YTwvc3Bhbj48L2Rpdj4KPGRpdiBzdHlsZT0zRCJtYXJnaW46IDBweDsiIGNsYXNzPTNEIiI+ZHJ3 eHIteHIteCZuYnNwOyAyIHZkc20ga3ZtIDQwOTYgSmFuPQogMjcgMDA6MjQgPHNwYW4gc3R5bGU9 M0QiZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm8tY29tbW9uLWxpZ2F0dXJlczsgY29sb3I9Cjog IzRjN2FmZiIgY2xhc3M9M0QiIj4KMTkyLjE2OC4xLjMyOl9Wb2x1bWVzX1JhaWQxX2lzbzwvc3Bh bj48L2Rpdj4KPC9kaXY+CjxkaXYgc3R5bGU9M0QibWFyZ2luOiAwcHg7IiBjbGFzcz0zRCIiPjxi ciBjbGFzcz0zRCIiPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0zRCIi PmFuZCBhcyBJIHNhaWQgYWJvdmUgSSBjYW4gY3JlYXRlIGZpbGVzIGluIGFueSBvbmUgb2YgdGhv c2UgPQptb3VudHM8L2Rpdj4KPGRpdiBjbGFzcz0zRCIiPjxiciBjbGFzcz0zRCIiPgo8L2Rpdj4K PGRpdiBjbGFzcz0zRCIiPjxiciBjbGFzcz0zRCIiPgo8L2Rpdj4KPGRpdiBjbGFzcz0zRCIiPklz IHRoZXJlIGEgcGxhY2UgSSBjYW4gbG9vayBhdCB0byBmaW5kIHRoZSBvZmZlbmRpbmcgZmlsZT8g PQombmJzcDtJZiB0aGF0IGlzIHRoZSBpc3N1ZS4uLiAmbmJzcDtPZGRseSBlbm91Z2ggZXZlcnl0 aGluZyB3b3JrZWQgdW50aWwgaSA9CnJlYm9vdGVkLCBzbyBJIG11c3QgaGF2ZSBlaXRoZXIgY2hh bmdlZCBzb21ldGhpbmcgb3Igc29tZXRoaW5nIGlzIGJ1Z2dlcmVkLj0KPC9kaXY+CjxkaXYgY2xh c3M9M0QiIj48YnIgY2xhc3M9M0QiIj4KPC9kaXY+CjxkaXYgY2xhc3M9M0QiIj48YnIgY2xhc3M9 M0QiIj4KPC9kaXY+CjxkaXYgY2xhc3M9M0QiIj48YnIgY2xhc3M9M0QiIj4KPC9kaXY+CjwvYm9k eT4KPC9odG1sPgoKLS1fMDAwX0RERkU0MDNCOTYwODRFM0NBMDI5RUZDMzk5MDhBNkM5cG93ZXJz b2Z0Y29tXy0tCg== --===============1824801237874106410==--