Re: [ovirt-users] Cannot retrieve answer file from 1st HE host when setting up 2nd host

On Tue, Dec 22, 2015 at 3:06 PM, Will Dennis <wdennis@nec-labs.com> wrote:
See attached for requested logs
Thanks, the issue is here: Dec 21 19:40:53 ovirt-node-03 etc-glusterfs-glusterd.vol[1079]: [2015-12-22 00:40:53.496109] C [MSGID: 106002] [glusterd-server-quorum.c:351:glusterd_do_volume_quorum_action] 0-management: Server quorum lost for volume engine. Stopping local bricks. Dec 21 19:40:53 ovirt-node-03 etc-glusterfs-glusterd.vol[1079]: [2015-12-22 00:40:53.496410] C [MSGID: 106002] [glusterd-server-quorum.c:351:glusterd_do_volume_quorum_action] 0-management: Server quorum lost for volume vmdata. Stopping local bricks. So at that point gluster lost its quorum and the fail system got read-only. On the getStorageDomainsList VDSM internally raises cause the file-system is read only: Thread-141::DEBUG::2015-12-21 11:29:59,666::fileSD::157::Storage.StorageDomainManifest::(__init__) Reading domain in path /rhev/data-center/mnt/glusterSD/localhost:_engine/e89b6e64-bd7d-4846-b970-9af32a3295ee Thread-141::DEBUG::2015-12-21 11:29:59,666::__init__::320::IOProcessClient::(_run) Starting IOProcess... Thread-141::DEBUG::2015-12-21 11:29:59,680::persistentDict::192::Storage.PersistentDict::(__init__) Created a persistent dict with FileMetadataRW backend Thread-141::ERROR::2015-12-21 11:29:59,686::hsm::2898::Storage.HSM::(getStorageDomainsList) Unexpected error Traceback (most recent call last): File "/usr/share/vdsm/storage/hsm.py", line 2882, in getStorageDomainsList dom = sdCache.produce(sdUUID=sdUUID) File "/usr/share/vdsm/storage/sdc.py", line 100, 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 124, in _realProduce domain = self._findDomain(sdUUID) File "/usr/share/vdsm/storage/sdc.py", line 143, in _findDomain dom = findMethod(sdUUID) File "/usr/share/vdsm/storage/glusterSD.py", line 32, in findDomain return GlusterStorageDomain(GlusterStorageDomain.findDomainPath(sdUUID)) File "/usr/share/vdsm/storage/fileSD.py", line 198, in __init__ validateFileSystemFeatures(manifest.sdUUID, manifest.mountpoint) File "/usr/share/vdsm/storage/fileSD.py", line 93, in validateFileSystemFeatures oop.getProcessPool(sdUUID).directTouch(testFilePath) File "/usr/share/vdsm/storage/outOfProcess.py", line 350, in directTouch ioproc.touch(path, flags, mode) File "/usr/lib/python2.7/site-packages/ioprocess/__init__.py", line 543, in touch self.timeout) File "/usr/lib/python2.7/site-packages/ioprocess/__init__.py", line 427, in _sendCommand raise OSError(errcode, errstr) OSError: [Errno 30] Read-only file system But instead of reporting a failure to hosted-engine-setup, it reported a successfully execution where it wasn't able to find any storage domain there ( this one is a real bug, I'm going to open a bug on that, can I attach your logs there? ): Thread-141::INFO::2015-12-21 11:29:59,702::logUtils::51::dispatcher::(wrapper) Run and protect: getStorageDomainsList, Return response: {'domlist': []} Thread-141::DEBUG::2015-12-21 11:29:59,702::task::1191::Storage.TaskManager.Task::(prepare) Task=`96a9ea03-dc13-483e-9b17-b55a759c9b44`::finished: {'domlist': []} Thread-141::DEBUG::2015-12-21 11:29:59,702::task::595::Storage.TaskManager.Task::(_updateState) Task=`96a9ea03-dc13-483e-9b17-b55a759c9b44`::moving from state preparing -> state finished Thread-141::DEBUG::2015-12-21 11:29:59,703::resourceManager::940::Storage.ResourceManager.Owner::(releaseAll) Owner.releaseAll requests {} resources {} Thread-141::DEBUG::2015-12-21 11:29:59,703::resourceManager::977::Storage.ResourceManager.Owner::(cancelAll) Owner.cancelAll requests {} Thread-141::DEBUG::2015-12-21 11:29:59,703::task::993::Storage.TaskManager.Task::(_decref) Task=`96a9ea03-dc13-483e-9b17-b55a759c9b44`::ref 0 aborting False Thread-141::INFO::2015-12-21 11:29:59,704::xmlrpc::92::vds.XMLRPCServer::(_process_requests) Request handler for 127.0.0.1:39718 stopped And so, cause VDSM doesn't report any existing storage domain, hosted-engine-setup assumes that you are going to deploy the first host and so your original issue.
*From:* Simone Tiraboschi [mailto:stirabos@redhat.com] *Sent:* Tuesday, December 22, 2015 8:56 AM *To:* Will Dennis *Cc:* Sahina Bose; Yedidyah Bar David
*Subject:* Re: [ovirt-users] Cannot retrieve answer file from 1st HE host when setting up 2nd host
On Tue, Dec 22, 2015 at 2:44 PM, Will Dennis <wdennis@nec-labs.com> wrote:
Which logs are needed?
Let's start with vdsm.log and /var/log/messages Then it's quite strange that you have that amount of data in mom.log so also that one could be interesting.
/var/log/vdsm
total 24M
drwxr-xr-x 3 vdsm kvm 4.0K Dec 18 20:10 .
drwxr-xr-x. 13 root root 4.0K Dec 20 03:15 ..
drwxr-xr-x 2 vdsm kvm 6 Dec 9 03:24 backup
-rw-r--r-- 1 vdsm kvm 2.5K Dec 21 11:29 connectivity.log
-rw-r--r-- 1 vdsm kvm 173K Dec 21 11:21 mom.log
-rw-r--r-- 1 vdsm kvm 2.0M Dec 17 10:09 mom.log.1
-rw-r--r-- 1 vdsm kvm 2.0M Dec 17 04:06 mom.log.2
-rw-r--r-- 1 vdsm kvm 2.0M Dec 16 22:03 mom.log.3
-rw-r--r-- 1 vdsm kvm 2.0M Dec 16 16:00 mom.log.4
-rw-r--r-- 1 vdsm kvm 2.0M Dec 16 09:57 mom.log.5
-rw-r--r-- 1 root root 115K Dec 21 11:29 supervdsm.log
-rw-r--r-- 1 root root 2.7K Oct 16 11:38 upgrade.log
-rw-r--r-- 1 vdsm kvm 13M Dec 22 08:44 vdsm.log
*From:* Simone Tiraboschi [mailto:stirabos@redhat.com] *Sent:* Tuesday, December 22, 2015 3:58 AM *To:* Will Dennis; Sahina Bose *Cc:* Yedidyah Bar David; users *Subject:* Re: [ovirt-users] Cannot retrieve answer file from 1st HE host when setting up 2nd host
On Tue, Dec 22, 2015 at 2:09 AM, Will Dennis <wdennis@nec-labs.com> wrote:
2015-12-21 11:28:39 DEBUG otopi.plugins.otopi.dialog.human dialog.__logString:219 DIALOG:SEND Please specify the full shared storage connection path to use (example: host:/path): 2015-12-21 11:28:55 DEBUG otopi.plugins.otopi.dialog.human dialog.__logString:219 DIALOG:RECEIVE localhost:/engine
OK, so you are trying to deploy hosted-engine on GlusterFS in a hyper-converged way (using the same hosts for virtualization and for serving GlusterFS). Unfortunately I've to advise you that this is not a supported configuration on oVirt 3.6 due to different open bugs.
So I'm glad you can help us testing it but I prefer to advise that today that schema is not production ready.
In your case it seams that VDSM correctly connects the GlusterFS volume seeing all the bricks
2015-12-21 11:28:55 DEBUG otopi.plugins.ovirt_hosted_engine_setup.storage.nfs plugin.execute:936 execute-output: ('/sbin/gluster', '--mode=script', '--xml', 'volume', 'info', 'engine', '--remote-host=localhost') stdout: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <cliOutput> <opRet>0</opRet> <opErrno>0</opErrno> <opErrstr/> <volInfo> <volumes> <volume> <name>engine</name> <id>974c9da4-b236-4fc1-b26a-645f14601db8</id> <status>1</status> <statusStr>Started</statusStr> <brickCount>6</brickCount> <distCount>3</distCount>
but then VDSM doesn't find any storage domain there:
otopi.plugins.ovirt_hosted_engine_setup.storage.storage.Plugin._late_customization 2015-12-21 11:29:58 DEBUG otopi.plugins.ovirt_hosted_engine_setup.storage.storage storage._getExistingDomain:476 _getExistingDomain 2015-12-21 11:29:58 DEBUG otopi.plugins.ovirt_hosted_engine_setup.storage.storage storage._storageServerConnection:638 connectStorageServer 2015-12-21 11:29:58 DEBUG otopi.plugins.ovirt_hosted_engine_setup.storage.storage storage._storageServerConnection:701 {'status': {'message': 'OK', 'code': 0}, 'statuslist': [{'status': 0, 'id': '67ece152-dd66-444c-8d18-4249d1b8f488'}]} 2015-12-21 11:29:58 DEBUG otopi.plugins.ovirt_hosted_engine_setup.storage.storage storage._getStorageDomainsList:595 getStorageDomainsList 2015-12-21 11:29:59 DEBUG otopi.plugins.ovirt_hosted_engine_setup.storage.storage storage._getStorageDomainsList:598 {'status': {'message': 'OK', 'code': 0}, 'domlist': []}
Can you please attach also the correspondent VDSM logs?
Adding Sahina here.
On Dec 21, 2015, at 11:58 AM, Simone Tiraboschi <stirabos@redhat.com <mailto:stirabos@redhat.com>> wrote:
On Mon, Dec 21, 2015 at 5:52 PM, Will Dennis <wdennis@nec-labs.com<mailto: wdennis@nec-labs.com>> wrote:
However, when I went to the 3rd host and did the setup, I selected 'glusterfs' and gave the path of the engine volume, it came back and incorrectly identified it as the first host, instead of an additional host... How does setup determine that? I confirmed that on this 3rd host that the engine volume is available and has the GUID subfolder of the hosted engine...
Can you please attach a log of hosted-engine-setup also from there?

--_000_F3282EEAFF180F43BAF1AD0A7C34739D38F171njmailneclabscom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 WWVzLCBPSyB0byBhdHRhY2hlZCBuZWVkZWQgbG9ncyB0byBidWcgcmVwb3J0Li4uDQoNCg0KRnJv bTogU2ltb25lIFRpcmFib3NjaGkgW21haWx0bzpzdGlyYWJvc0ByZWRoYXQuY29tXQ0KU2VudDog VHVlc2RheSwgRGVjZW1iZXIgMjIsIDIwMTUgOToyNyBBTQ0KVG86IFdpbGwgRGVubmlzOyB1c2Vy cw0KQ2M6IFNhaGluYSBCb3NlOyBZZWRpZHlhaCBCYXIgRGF2aWQ7IE5pciBTb2ZmZXINClN1Ympl Y3Q6IFJlOiBbb3ZpcnQtdXNlcnNdIENhbm5vdCByZXRyaWV2ZSBhbnN3ZXIgZmlsZSBmcm9tIDFz dCBIRSBob3N0IHdoZW4gc2V0dGluZyB1cCAybmQgaG9zdA0KDQoNCg0KT24gVHVlLCBEZWMgMjIs IDIwMTUgYXQgMzowNiBQTSwgV2lsbCBEZW5uaXMgPHdkZW5uaXNAbmVjLWxhYnMuY29tPG1haWx0 bzp3ZGVubmlzQG5lYy1sYWJzLmNvbT4+IHdyb3RlOg0KU2VlIGF0dGFjaGVkIGZvciByZXF1ZXN0 ZWQgbG9ncw0KDQoNClRoYW5rcywgdGhlIGlzc3VlIGlzIGhlcmU6DQpEZWMgMjEgMTk6NDA6NTMg b3ZpcnQtbm9kZS0wMyBldGMtZ2x1c3RlcmZzLWdsdXN0ZXJkLnZvbFsxMDc5XTogWzIwMTUtMTIt MjIgMDA6NDA6NTMuNDk2MTA5XSBDIFtNU0dJRDogMTA2MDAyXSBbZ2x1c3RlcmQtc2VydmVyLXF1 b3J1bS5jOjM1MTpnbHVzdGVyZF9kb192b2x1bWVfcXVvcnVtX2FjdGlvbl0gMC1tYW5hZ2VtZW50 OiBTZXJ2ZXIgcXVvcnVtIGxvc3QgZm9yIHZvbHVtZSBlbmdpbmUuIFN0b3BwaW5nIGxvY2FsIGJy aWNrcy4NCkRlYyAyMSAxOTo0MDo1MyBvdmlydC1ub2RlLTAzIGV0Yy1nbHVzdGVyZnMtZ2x1c3Rl cmQudm9sWzEwNzldOiBbMjAxNS0xMi0yMiAwMDo0MDo1My40OTY0MTBdIEMgW01TR0lEOiAxMDYw MDJdIFtnbHVzdGVyZC1zZXJ2ZXItcXVvcnVtLmM6MzUxOmdsdXN0ZXJkX2RvX3ZvbHVtZV9xdW9y dW1fYWN0aW9uXSAwLW1hbmFnZW1lbnQ6IFNlcnZlciBxdW9ydW0gbG9zdCBmb3Igdm9sdW1lIHZt ZGF0YS4gU3RvcHBpbmcgbG9jYWwgYnJpY2tzLg0KDQpTbyBhdCB0aGF0IHBvaW50IGdsdXN0ZXIg bG9zdCBpdHMgcXVvcnVtIGFuZCB0aGUgZmFpbCBzeXN0ZW0gZ290IHJlYWQtb25seS4NCg0KT24g dGhlIGdldFN0b3JhZ2VEb21haW5zTGlzdCBWRFNNIGludGVybmFsbHkgcmFpc2VzIGNhdXNlIHRo ZSBmaWxlLXN5c3RlbSBpcyByZWFkIG9ubHk6DQoNClRocmVhZC0xNDE6OkRFQlVHOjoyMDE1LTEy LTIxIDExOjI5OjU5LDY2Njo6ZmlsZVNEOjoxNTc6OlN0b3JhZ2UuU3RvcmFnZURvbWFpbk1hbmlm ZXN0OjooX19pbml0X18pIFJlYWRpbmcgZG9tYWluIGluIHBhdGggL3JoZXYvZGF0YS1jZW50ZXIv bW50L2dsdXN0ZXJTRC9sb2NhbGhvc3Q6X2VuZ2luZS9lODliNmU2NC1iZDdkLTQ4NDYtYjk3MC05 YWYzMmEzMjk1ZWUNClRocmVhZC0xNDE6OkRFQlVHOjoyMDE1LTEyLTIxIDExOjI5OjU5LDY2Njo6 X19pbml0X186OjMyMDo6SU9Qcm9jZXNzQ2xpZW50OjooX3J1bikgU3RhcnRpbmcgSU9Qcm9jZXNz Li4uDQpUaHJlYWQtMTQxOjpERUJVRzo6MjAxNS0xMi0yMSAxMToyOTo1OSw2ODA6OnBlcnNpc3Rl bnREaWN0OjoxOTI6OlN0b3JhZ2UuUGVyc2lzdGVudERpY3Q6OihfX2luaXRfXykgQ3JlYXRlZCBh IHBlcnNpc3RlbnQgZGljdCB3aXRoIEZpbGVNZXRhZGF0YVJXIGJhY2tlbmQNClRocmVhZC0xNDE6 OkVSUk9SOjoyMDE1LTEyLTIxIDExOjI5OjU5LDY4Njo6aHNtOjoyODk4OjpTdG9yYWdlLkhTTTo6 KGdldFN0b3JhZ2VEb21haW5zTGlzdCkgVW5leHBlY3RlZCBlcnJvcg0KVHJhY2ViYWNrIChtb3N0 IHJlY2VudCBjYWxsIGxhc3QpOg0KICBGaWxlICIvdXNyL3NoYXJlL3Zkc20vc3RvcmFnZS9oc20u cHkiLCBsaW5lIDI4ODIsIGluIGdldFN0b3JhZ2VEb21haW5zTGlzdA0KICAgIGRvbSA9IHNkQ2Fj aGUucHJvZHVjZShzZFVVSUQ9c2RVVUlEKQ0KICBGaWxlICIvdXNyL3NoYXJlL3Zkc20vc3RvcmFn ZS9zZGMucHkiLCBsaW5lIDEwMCwgaW4gcHJvZHVjZQ0KICAgIGRvbWFpbi5nZXRSZWFsRG9tYWlu KCkNCiAgRmlsZSAiL3Vzci9zaGFyZS92ZHNtL3N0b3JhZ2Uvc2RjLnB5IiwgbGluZSA1MiwgaW4g Z2V0UmVhbERvbWFpbg0KICAgIHJldHVybiBzZWxmLl9jYWNoZS5fcmVhbFByb2R1Y2Uoc2VsZi5f c2RVVUlEKQ0KICBGaWxlICIvdXNyL3NoYXJlL3Zkc20vc3RvcmFnZS9zZGMucHkiLCBsaW5lIDEy NCwgaW4gX3JlYWxQcm9kdWNlDQogICAgZG9tYWluID0gc2VsZi5fZmluZERvbWFpbihzZFVVSUQp DQogIEZpbGUgIi91c3Ivc2hhcmUvdmRzbS9zdG9yYWdlL3NkYy5weSIsIGxpbmUgMTQzLCBpbiBf ZmluZERvbWFpbg0KICAgIGRvbSA9IGZpbmRNZXRob2Qoc2RVVUlEKQ0KICBGaWxlICIvdXNyL3No YXJlL3Zkc20vc3RvcmFnZS9nbHVzdGVyU0QucHkiLCBsaW5lIDMyLCBpbiBmaW5kRG9tYWluDQog ICAgcmV0dXJuIEdsdXN0ZXJTdG9yYWdlRG9tYWluKEdsdXN0ZXJTdG9yYWdlRG9tYWluLmZpbmRE b21haW5QYXRoKHNkVVVJRCkpDQogIEZpbGUgIi91c3Ivc2hhcmUvdmRzbS9zdG9yYWdlL2ZpbGVT RC5weSIsIGxpbmUgMTk4LCBpbiBfX2luaXRfXw0KICAgIHZhbGlkYXRlRmlsZVN5c3RlbUZlYXR1 cmVzKG1hbmlmZXN0LnNkVVVJRCwgbWFuaWZlc3QubW91bnRwb2ludCkNCiAgRmlsZSAiL3Vzci9z aGFyZS92ZHNtL3N0b3JhZ2UvZmlsZVNELnB5IiwgbGluZSA5MywgaW4gdmFsaWRhdGVGaWxlU3lz dGVtRmVhdHVyZXMNCiAgICBvb3AuZ2V0UHJvY2Vzc1Bvb2woc2RVVUlEKS5kaXJlY3RUb3VjaCh0 ZXN0RmlsZVBhdGgpDQogIEZpbGUgIi91c3Ivc2hhcmUvdmRzbS9zdG9yYWdlL291dE9mUHJvY2Vz cy5weSIsIGxpbmUgMzUwLCBpbiBkaXJlY3RUb3VjaA0KICAgIGlvcHJvYy50b3VjaChwYXRoLCBm bGFncywgbW9kZSkNCiAgRmlsZSAiL3Vzci9saWIvcHl0aG9uMi43L3NpdGUtcGFja2FnZXMvaW9w cm9jZXNzL19faW5pdF9fLnB5IiwgbGluZSA1NDMsIGluIHRvdWNoDQogICAgc2VsZi50aW1lb3V0 KQ0KICBGaWxlICIvdXNyL2xpYi9weXRob24yLjcvc2l0ZS1wYWNrYWdlcy9pb3Byb2Nlc3MvX19p bml0X18ucHkiLCBsaW5lIDQyNywgaW4gX3NlbmRDb21tYW5kDQogICAgcmFpc2UgT1NFcnJvcihl cnJjb2RlLCBlcnJzdHIpDQpPU0Vycm9yOiBbRXJybm8gMzBdIFJlYWQtb25seSBmaWxlIHN5c3Rl bQ0KDQpCdXQgaW5zdGVhZCBvZiByZXBvcnRpbmcgYSBmYWlsdXJlIHRvIGhvc3RlZC1lbmdpbmUt c2V0dXAsIGl0IHJlcG9ydGVkIGEgc3VjY2Vzc2Z1bGx5IGV4ZWN1dGlvbiB3aGVyZSBpdCB3YXNu J3QgYWJsZSB0byBmaW5kIGFueSBzdG9yYWdlIGRvbWFpbiB0aGVyZSAoIHRoaXMgb25lIGlzIGEg cmVhbCBidWcsIEknbSBnb2luZyB0byBvcGVuIGEgYnVnIG9uIHRoYXQsIGNhbiBJIGF0dGFjaCB5 b3VyIGxvZ3MgdGhlcmU/ICk6DQoNClRocmVhZC0xNDE6OklORk86OjIwMTUtMTItMjEgMTE6Mjk6 NTksNzAyOjpsb2dVdGlsczo6NTE6OmRpc3BhdGNoZXI6Oih3cmFwcGVyKSBSdW4gYW5kIHByb3Rl Y3Q6IGdldFN0b3JhZ2VEb21haW5zTGlzdCwgUmV0dXJuIHJlc3BvbnNlOiB7J2RvbWxpc3QnOiBb XX0NClRocmVhZC0xNDE6OkRFQlVHOjoyMDE1LTEyLTIxIDExOjI5OjU5LDcwMjo6dGFzazo6MTE5 MTo6U3RvcmFnZS5UYXNrTWFuYWdlci5UYXNrOjoocHJlcGFyZSkgVGFzaz1gOTZhOWVhMDMtZGMx My00ODNlLTliMTctYjU1YTc1OWM5YjQ0YDo6ZmluaXNoZWQ6IHsnZG9tbGlzdCc6IFtdfQ0KVGhy ZWFkLTE0MTo6REVCVUc6OjIwMTUtMTItMjEgMTE6Mjk6NTksNzAyOjp0YXNrOjo1OTU6OlN0b3Jh Z2UuVGFza01hbmFnZXIuVGFzazo6KF91cGRhdGVTdGF0ZSkgVGFzaz1gOTZhOWVhMDMtZGMxMy00 ODNlLTliMTctYjU1YTc1OWM5YjQ0YDo6bW92aW5nIGZyb20gc3RhdGUgcHJlcGFyaW5nIC0+IHN0 YXRlIGZpbmlzaGVkDQpUaHJlYWQtMTQxOjpERUJVRzo6MjAxNS0xMi0yMSAxMToyOTo1OSw3MDM6 OnJlc291cmNlTWFuYWdlcjo6OTQwOjpTdG9yYWdlLlJlc291cmNlTWFuYWdlci5Pd25lcjo6KHJl bGVhc2VBbGwpIE93bmVyLnJlbGVhc2VBbGwgcmVxdWVzdHMge30gcmVzb3VyY2VzIHt9DQpUaHJl YWQtMTQxOjpERUJVRzo6MjAxNS0xMi0yMSAxMToyOTo1OSw3MDM6OnJlc291cmNlTWFuYWdlcjo6 OTc3OjpTdG9yYWdlLlJlc291cmNlTWFuYWdlci5Pd25lcjo6KGNhbmNlbEFsbCkgT3duZXIuY2Fu Y2VsQWxsIHJlcXVlc3RzIHt9DQpUaHJlYWQtMTQxOjpERUJVRzo6MjAxNS0xMi0yMSAxMToyOTo1 OSw3MDM6OnRhc2s6Ojk5Mzo6U3RvcmFnZS5UYXNrTWFuYWdlci5UYXNrOjooX2RlY3JlZikgVGFz az1gOTZhOWVhMDMtZGMxMy00ODNlLTliMTctYjU1YTc1OWM5YjQ0YDo6cmVmIDAgYWJvcnRpbmcg RmFsc2UNClRocmVhZC0xNDE6OklORk86OjIwMTUtMTItMjEgMTE6Mjk6NTksNzA0Ojp4bWxycGM6 OjkyOjp2ZHMuWE1MUlBDU2VydmVyOjooX3Byb2Nlc3NfcmVxdWVzdHMpIFJlcXVlc3QgaGFuZGxl ciBmb3IgMTI3LjAuMC4xOjM5NzE4PGh0dHA6Ly8xMjcuMC4wLjE6Mzk3MTg+IHN0b3BwZWQNCg0K QW5kIHNvLCBjYXVzZSBWRFNNIGRvZXNuJ3QgcmVwb3J0IGFueSBleGlzdGluZyBzdG9yYWdlIGRv bWFpbiwgaG9zdGVkLWVuZ2luZS1zZXR1cCBhc3N1bWVzIHRoYXQgeW91IGFyZSBnb2luZyB0byBk ZXBsb3kgdGhlIGZpcnN0IGhvc3QgYW5kIHNvIHlvdXIgb3JpZ2luYWwgaXNzdWUuDQoNCg0KDQpG cm9tOiBTaW1vbmUgVGlyYWJvc2NoaSBbbWFpbHRvOnN0aXJhYm9zQHJlZGhhdC5jb208bWFpbHRv OnN0aXJhYm9zQHJlZGhhdC5jb20+XQ0KU2VudDogVHVlc2RheSwgRGVjZW1iZXIgMjIsIDIwMTUg ODo1NiBBTQ0KVG86IFdpbGwgRGVubmlzDQpDYzogU2FoaW5hIEJvc2U7IFllZGlkeWFoIEJhciBE YXZpZA0KDQpTdWJqZWN0OiBSZTogW292aXJ0LXVzZXJzXSBDYW5ub3QgcmV0cmlldmUgYW5zd2Vy IGZpbGUgZnJvbSAxc3QgSEUgaG9zdCB3aGVuIHNldHRpbmcgdXAgMm5kIGhvc3QNCg0KDQpPbiBU dWUsIERlYyAyMiwgMjAxNSBhdCAyOjQ0IFBNLCBXaWxsIERlbm5pcyA8d2Rlbm5pc0BuZWMtbGFi cy5jb208bWFpbHRvOndkZW5uaXNAbmVjLWxhYnMuY29tPj4gd3JvdGU6DQpXaGljaCBsb2dzIGFy ZSBuZWVkZWQ/DQoNCkxldCdzIHN0YXJ0IHdpdGggdmRzbS5sb2cgYW5kIC92YXIvbG9nL21lc3Nh Z2VzDQpUaGVuIGl0J3MgcXVpdGUgc3RyYW5nZSB0aGF0IHlvdSBoYXZlIHRoYXQgYW1vdW50IG9m IGRhdGEgaW4gbW9tLmxvZyBzbyBhbHNvIHRoYXQgb25lIGNvdWxkIGJlIGludGVyZXN0aW5nLg0K DQoNCi92YXIvbG9nL3Zkc20NCnRvdGFsIDI0TQ0KZHJ3eHIteHIteCAgIDMgdmRzbSBrdm0gIDQu MEsgRGVjIDE4IDIwOjEwIC4NCmRyd3hyLXhyLXguIDEzIHJvb3Qgcm9vdCA0LjBLIERlYyAyMCAw MzoxNSAuLg0KZHJ3eHIteHIteCAgIDIgdmRzbSBrdm0gICAgIDYgRGVjICA5IDAzOjI0IGJhY2t1 cA0KLXJ3LXItLXItLSAgIDEgdmRzbSBrdm0gIDIuNUsgRGVjIDIxIDExOjI5IGNvbm5lY3Rpdml0 eS5sb2cNCi1ydy1yLS1yLS0gICAxIHZkc20ga3ZtICAxNzNLIERlYyAyMSAxMToyMSBtb20ubG9n DQotcnctci0tci0tICAgMSB2ZHNtIGt2bSAgMi4wTSBEZWMgMTcgMTA6MDkgbW9tLmxvZy4xDQot cnctci0tci0tICAgMSB2ZHNtIGt2bSAgMi4wTSBEZWMgMTcgMDQ6MDYgbW9tLmxvZy4yDQotcnct ci0tci0tICAgMSB2ZHNtIGt2bSAgMi4wTSBEZWMgMTYgMjI6MDMgbW9tLmxvZy4zDQotcnctci0t ci0tICAgMSB2ZHNtIGt2bSAgMi4wTSBEZWMgMTYgMTY6MDAgbW9tLmxvZy40DQotcnctci0tci0t ICAgMSB2ZHNtIGt2bSAgMi4wTSBEZWMgMTYgMDk6NTcgbW9tLmxvZy41DQotcnctci0tci0tICAg MSByb290IHJvb3QgMTE1SyBEZWMgMjEgMTE6Mjkgc3VwZXJ2ZHNtLmxvZw0KLXJ3LXItLXItLSAg IDEgcm9vdCByb290IDIuN0sgT2N0IDE2IDExOjM4IHVwZ3JhZGUubG9nDQotcnctci0tci0tICAg MSB2ZHNtIGt2bSAgIDEzTSBEZWMgMjIgMDg6NDQgdmRzbS5sb2cNCg0KDQpGcm9tOiBTaW1vbmUg VGlyYWJvc2NoaSBbbWFpbHRvOnN0aXJhYm9zQHJlZGhhdC5jb208bWFpbHRvOnN0aXJhYm9zQHJl ZGhhdC5jb20+XQ0KU2VudDogVHVlc2RheSwgRGVjZW1iZXIgMjIsIDIwMTUgMzo1OCBBTQ0KVG86 IFdpbGwgRGVubmlzOyBTYWhpbmEgQm9zZQ0KQ2M6IFllZGlkeWFoIEJhciBEYXZpZDsgdXNlcnMN ClN1YmplY3Q6IFJlOiBbb3ZpcnQtdXNlcnNdIENhbm5vdCByZXRyaWV2ZSBhbnN3ZXIgZmlsZSBm cm9tIDFzdCBIRSBob3N0IHdoZW4gc2V0dGluZyB1cCAybmQgaG9zdA0KDQoNCg0KT24gVHVlLCBE ZWMgMjIsIDIwMTUgYXQgMjowOSBBTSwgV2lsbCBEZW5uaXMgPHdkZW5uaXNAbmVjLWxhYnMuY29t PG1haWx0bzp3ZGVubmlzQG5lYy1sYWJzLmNvbT4+IHdyb3RlOg0KaHR0cDovL3VyMS5jYS9vY3N0 Zg0KDQoNCjIwMTUtMTItMjEgMTE6Mjg6MzkgREVCVUcgb3RvcGkucGx1Z2lucy5vdG9waS5kaWFs b2cuaHVtYW4gZGlhbG9nLl9fbG9nU3RyaW5nOjIxOSBESUFMT0c6U0VORCAgICAgICAgICAgICAg ICAgUGxlYXNlIHNwZWNpZnkgdGhlIGZ1bGwgc2hhcmVkIHN0b3JhZ2UgY29ubmVjdGlvbiBwYXRo IHRvIHVzZSAoZXhhbXBsZTogaG9zdDovcGF0aCk6DQoyMDE1LTEyLTIxIDExOjI4OjU1IERFQlVH IG90b3BpLnBsdWdpbnMub3RvcGkuZGlhbG9nLmh1bWFuIGRpYWxvZy5fX2xvZ1N0cmluZzoyMTkg RElBTE9HOlJFQ0VJVkUgICAgbG9jYWxob3N0Oi9lbmdpbmUNCg0KT0ssIHNvIHlvdSBhcmUgdHJ5 aW5nIHRvIGRlcGxveSBob3N0ZWQtZW5naW5lIG9uIEdsdXN0ZXJGUyBpbiBhIGh5cGVyLWNvbnZl cmdlZCB3YXkgKHVzaW5nIHRoZSBzYW1lIGhvc3RzIGZvciB2aXJ0dWFsaXphdGlvbiBhbmQgZm9y IHNlcnZpbmcgR2x1c3RlckZTKS4gVW5mb3J0dW5hdGVseSBJJ3ZlIHRvIGFkdmlzZSB5b3UgdGhh dCB0aGlzIGlzIG5vdCBhIHN1cHBvcnRlZCBjb25maWd1cmF0aW9uIG9uIG9WaXJ0IDMuNiBkdWUg dG8gZGlmZmVyZW50IG9wZW4gYnVncy4NClNvIEknbSBnbGFkIHlvdSBjYW4gaGVscCB1cyB0ZXN0 aW5nIGl0IGJ1dCBJIHByZWZlciB0byBhZHZpc2UgdGhhdCB0b2RheSB0aGF0IHNjaGVtYSBpcyBu b3QgcHJvZHVjdGlvbiByZWFkeS4NCg0KSW4geW91ciBjYXNlIGl0IHNlYW1zIHRoYXQgVkRTTSBj b3JyZWN0bHkgY29ubmVjdHMgdGhlIEdsdXN0ZXJGUyB2b2x1bWUgc2VlaW5nIGFsbCB0aGUgYnJp Y2tzDQoNCjIwMTUtMTItMjEgMTE6Mjg6NTUgREVCVUcgb3RvcGkucGx1Z2lucy5vdmlydF9ob3N0 ZWRfZW5naW5lX3NldHVwLnN0b3JhZ2UubmZzIHBsdWdpbi5leGVjdXRlOjkzNiBleGVjdXRlLW91 dHB1dDogKCcvc2Jpbi9nbHVzdGVyJywgJy0tbW9kZT1zY3JpcHQnLCAnLS14bWwnLCAndm9sdW1l JywgJ2luZm8nLCAnZW5naW5lJywgJy0tcmVtb3RlLWhvc3Q9bG9jYWxob3N0Jykgc3Rkb3V0Og0K PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0K PGNsaU91dHB1dD4NCiAgPG9wUmV0PjA8L29wUmV0Pg0KICA8b3BFcnJubz4wPC9vcEVycm5vPg0K ICA8b3BFcnJzdHIvPg0KICA8dm9sSW5mbz4NCiAgICA8dm9sdW1lcz4NCiAgICAgIDx2b2x1bWU+ DQogICAgICAgIDxuYW1lPmVuZ2luZTwvbmFtZT4NCiAgICAgICAgPGlkPjk3NGM5ZGE0LWIyMzYt NGZjMS1iMjZhLTY0NWYxNDYwMWRiODwvaWQ+DQogICAgICAgIDxzdGF0dXM+MTwvc3RhdHVzPg0K ICAgICAgICA8c3RhdHVzU3RyPlN0YXJ0ZWQ8L3N0YXR1c1N0cj4NCiAgICAgICAgPGJyaWNrQ291 bnQ+NjwvYnJpY2tDb3VudD4NCiAgICAgICAgPGRpc3RDb3VudD4zPC9kaXN0Q291bnQ+DQoNCmJ1 dCB0aGVuIFZEU00gZG9lc24ndCBmaW5kIGFueSBzdG9yYWdlIGRvbWFpbiB0aGVyZToNCg0Kb3Rv cGkucGx1Z2lucy5vdmlydF9ob3N0ZWRfZW5naW5lX3NldHVwLnN0b3JhZ2Uuc3RvcmFnZS5QbHVn aW4uX2xhdGVfY3VzdG9taXphdGlvbg0KMjAxNS0xMi0yMSAxMToyOTo1OCBERUJVRyBvdG9waS5w bHVnaW5zLm92aXJ0X2hvc3RlZF9lbmdpbmVfc2V0dXAuc3RvcmFnZS5zdG9yYWdlIHN0b3JhZ2Uu X2dldEV4aXN0aW5nRG9tYWluOjQ3NiBfZ2V0RXhpc3RpbmdEb21haW4NCjIwMTUtMTItMjEgMTE6 Mjk6NTggREVCVUcgb3RvcGkucGx1Z2lucy5vdmlydF9ob3N0ZWRfZW5naW5lX3NldHVwLnN0b3Jh Z2Uuc3RvcmFnZSBzdG9yYWdlLl9zdG9yYWdlU2VydmVyQ29ubmVjdGlvbjo2MzggY29ubmVjdFN0 b3JhZ2VTZXJ2ZXINCjIwMTUtMTItMjEgMTE6Mjk6NTggREVCVUcgb3RvcGkucGx1Z2lucy5vdmly dF9ob3N0ZWRfZW5naW5lX3NldHVwLnN0b3JhZ2Uuc3RvcmFnZSBzdG9yYWdlLl9zdG9yYWdlU2Vy dmVyQ29ubmVjdGlvbjo3MDEgeydzdGF0dXMnOiB7J21lc3NhZ2UnOiAnT0snLCAnY29kZSc6IDB9 LCAnc3RhdHVzbGlzdCc6IFt7J3N0YXR1cyc6IDAsICdpZCc6ICc2N2VjZTE1Mi1kZDY2LTQ0NGMt OGQxOC00MjQ5ZDFiOGY0ODgnfV19DQoyMDE1LTEyLTIxIDExOjI5OjU4IERFQlVHIG90b3BpLnBs dWdpbnMub3ZpcnRfaG9zdGVkX2VuZ2luZV9zZXR1cC5zdG9yYWdlLnN0b3JhZ2Ugc3RvcmFnZS5f Z2V0U3RvcmFnZURvbWFpbnNMaXN0OjU5NSBnZXRTdG9yYWdlRG9tYWluc0xpc3QNCjIwMTUtMTIt MjEgMTE6Mjk6NTkgREVCVUcgb3RvcGkucGx1Z2lucy5vdmlydF9ob3N0ZWRfZW5naW5lX3NldHVw LnN0b3JhZ2Uuc3RvcmFnZSBzdG9yYWdlLl9nZXRTdG9yYWdlRG9tYWluc0xpc3Q6NTk4IHsnc3Rh dHVzJzogeydtZXNzYWdlJzogJ09LJywgJ2NvZGUnOiAwfSwgJ2RvbWxpc3QnOiBbXX0NCg0KQ2Fu IHlvdSBwbGVhc2UgYXR0YWNoIGFsc28gdGhlIGNvcnJlc3BvbmRlbnQgVkRTTSBsb2dzPw0KDQpB ZGRpbmcgU2FoaW5hIGhlcmUuDQoNCg0KT24gRGVjIDIxLCAyMDE1LCBhdCAxMTo1OCBBTSwgU2lt b25lIFRpcmFib3NjaGkgPHN0aXJhYm9zQHJlZGhhdC5jb208bWFpbHRvOnN0aXJhYm9zQHJlZGhh dC5jb20+PG1haWx0bzpzdGlyYWJvc0ByZWRoYXQuY29tPG1haWx0bzpzdGlyYWJvc0ByZWRoYXQu Y29tPj4+IHdyb3RlOg0KDQpPbiBNb24sIERlYyAyMSwgMjAxNSBhdCA1OjUyIFBNLCBXaWxsIERl bm5pcyA8d2Rlbm5pc0BuZWMtbGFicy5jb208bWFpbHRvOndkZW5uaXNAbmVjLWxhYnMuY29tPjxt YWlsdG86d2Rlbm5pc0BuZWMtbGFicy5jb208bWFpbHRvOndkZW5uaXNAbmVjLWxhYnMuY29tPj4+ IHdyb3RlOg0KDQpIb3dldmVyLCB3aGVuIEkgd2VudCB0byB0aGUgM3JkIGhvc3QgYW5kIGRpZCB0 aGUgc2V0dXAsIEkgc2VsZWN0ZWQgJ2dsdXN0ZXJmcycgYW5kIGdhdmUgdGhlIHBhdGggb2YgdGhl IGVuZ2luZSB2b2x1bWUsIGl0IGNhbWUgYmFjayBhbmQgaW5jb3JyZWN0bHkgaWRlbnRpZmllZCBp dCBhcyB0aGUgZmlyc3QgaG9zdCwgaW5zdGVhZCBvZiBhbiBhZGRpdGlvbmFsIGhvc3QuLi4gSG93 IGRvZXMgc2V0dXAgZGV0ZXJtaW5lIHRoYXQ/IEkgY29uZmlybWVkIHRoYXQgb24gdGhpcyAzcmQg aG9zdCB0aGF0IHRoZSBlbmdpbmUgdm9sdW1lIGlzIGF2YWlsYWJsZSBhbmQgaGFzIHRoZSBHVUlE IHN1YmZvbGRlciBvZiB0aGUgaG9zdGVkIGVuZ2luZS4uLg0KDQoNCkNhbiB5b3UgcGxlYXNlIGF0 dGFjaCBhIGxvZyBvZiBob3N0ZWQtZW5naW5lLXNldHVwIGFsc28gZnJvbSB0aGVyZT8NCg0KDQoN Cg== --_000_F3282EEAFF180F43BAF1AD0A7C34739D38F171njmailneclabscom_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6 IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy IDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpUYWhvbWE7DQoJcGFub3NlLTE6MiAxMSA2 IDQgMyA1IDQgNCAyIDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBs aS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9t Oi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJv bWFuIiwic2VyaWYiO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXBy aW9yaXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQph OnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5 Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnANCgl7 bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1hcmdp bi1yaWdodDowaW47DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxlZnQ6 MGluOw0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIs InNlcmlmIjt9DQpwLk1zb0FjZXRhdGUsIGxpLk1zb0FjZXRhdGUsIGRpdi5Nc29BY2V0YXRlDQoJ e21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtbGluazoiQmFsbG9vbiBUZXh0IENo YXIiOw0KCW1hcmdpbjowaW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZTo4 LjBwdDsNCglmb250LWZhbWlseToiVGFob21hIiwic2Fucy1zZXJpZiI7fQ0Kc3Bhbi5FbWFpbFN0 eWxlMTgNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtcmVwbHk7DQoJZm9udC1mYW1pbHk6IkNh bGlicmkiLCJzYW5zLXNlcmlmIjsNCgljb2xvcjojMUY0OTdEO30NCnNwYW4uQmFsbG9vblRleHRD aGFyDQoJe21zby1zdHlsZS1uYW1lOiJCYWxsb29uIFRleHQgQ2hhciI7DQoJbXNvLXN0eWxlLXBy aW9yaXR5Ojk5Ow0KCW1zby1zdHlsZS1saW5rOiJCYWxsb29uIFRleHQiOw0KCWZvbnQtZmFtaWx5 OiJUYWhvbWEiLCJzYW5zLXNlcmlmIjt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlw ZTpleHBvcnQtb25seTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiO30NCkBw YWdlIFdvcmRTZWN0aW9uMQ0KCXtzaXplOjguNWluIDExLjBpbjsNCgltYXJnaW46MS4waW4gMS4w aW4gMS4waW4gMS4waW47fQ0KZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9 DQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2 OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg Z3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAg djpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZd LS0+DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1VUyIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBs ZSI+DQo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90 OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlllcywgT0sgdG8gYXR0YWNo ZWQgbmVlZGVkIGxvZ3MgdG8gYnVnIHJlcG9ydC4uLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt aWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0 OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48 c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1 b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286 cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQt c2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2Vy aWYmcXVvdDsiPkZyb206PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtm b250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+IFNp bW9uZSBUaXJhYm9zY2hpIFttYWlsdG86c3RpcmFib3NAcmVkaGF0LmNvbV0NCjxicj4NCjxiPlNl bnQ6PC9iPiBUdWVzZGF5LCBEZWNlbWJlciAyMiwgMjAxNSA5OjI3IEFNPGJyPg0KPGI+VG86PC9i PiBXaWxsIERlbm5pczsgdXNlcnM8YnI+DQo8Yj5DYzo8L2I+IFNhaGluYSBCb3NlOyBZZWRpZHlh aCBCYXIgRGF2aWQ7IE5pciBTb2ZmZXI8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IFtvdmlydC11 c2Vyc10gQ2Fubm90IHJldHJpZXZlIGFuc3dlciBmaWxlIGZyb20gMXN0IEhFIGhvc3Qgd2hlbiBz ZXR0aW5nIHVwIDJuZCBob3N0PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v cm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4m bmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T24gVHVlLCBEZWMg MjIsIDIwMTUgYXQgMzowNiBQTSwgV2lsbCBEZW5uaXMgJmx0OzxhIGhyZWY9Im1haWx0bzp3ZGVu bmlzQG5lYy1sYWJzLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPndkZW5uaXNAbmVjLWxhYnMuY29tPC9h PiZndDsgd3JvdGU6PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h bHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7 Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlNlZSBh dHRhY2hlZCBmb3IgcmVxdWVzdGVkIGxvZ3M8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4N CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9w Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48 L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaGFua3MsIHRoZSBpc3N1 ZSBpcyBoZXJlOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPkRlYyAyMSAxOTo0MDo1MyBvdmlydC1ub2RlLTAzIGV0Yy1nbHVzdGVyZnMt Z2x1c3RlcmQudm9sWzEwNzldOiBbMjAxNS0xMi0yMiAwMDo0MDo1My40OTYxMDldIEMgW01TR0lE OiAxMDYwMDJdIFtnbHVzdGVyZC1zZXJ2ZXItcXVvcnVtLmM6MzUxOmdsdXN0ZXJkX2RvX3ZvbHVt ZV9xdW9ydW1fYWN0aW9uXSAwLW1hbmFnZW1lbnQ6IFNlcnZlciBxdW9ydW0gbG9zdCBmb3Igdm9s dW1lIGVuZ2luZS4gU3RvcHBpbmcNCiBsb2NhbCBicmlja3MuPG86cD48L286cD48L3A+DQo8L2Rp dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5EZWMgMjEgMTk6NDA6NTMgb3ZpcnQtbm9k ZS0wMyBldGMtZ2x1c3RlcmZzLWdsdXN0ZXJkLnZvbFsxMDc5XTogWzIwMTUtMTItMjIgMDA6NDA6 NTMuNDk2NDEwXSBDIFtNU0dJRDogMTA2MDAyXSBbZ2x1c3RlcmQtc2VydmVyLXF1b3J1bS5jOjM1 MTpnbHVzdGVyZF9kb192b2x1bWVfcXVvcnVtX2FjdGlvbl0gMC1tYW5hZ2VtZW50OiBTZXJ2ZXIg cXVvcnVtIGxvc3QgZm9yIHZvbHVtZSB2bWRhdGEuIFN0b3BwaW5nDQogbG9jYWwgYnJpY2tzLjxv OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiPlNvIGF0IHRoYXQgcG9pbnQgZ2x1c3RlciBsb3N0IGl0cyBxdW9ydW0gYW5kIHRoZSBmYWls IHN5c3RlbSBnb3QgcmVhZC1vbmx5LjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIj5PbiB0aGUgZ2V0U3RvcmFnZURvbWFpbnNMaXN0IFZEU00gaW50 ZXJuYWxseSByYWlzZXMgY2F1c2UgdGhlIGZpbGUtc3lzdGVtIGlzIHJlYWQgb25seTo8bzpwPjwv bzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7 PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj5UaHJlYWQtMTQxOjpERUJVRzo6MjAxNS0xMi0yMSAxMToyOTo1OSw2NjY6OmZpbGVTRDo6 MTU3OjpTdG9yYWdlLlN0b3JhZ2VEb21haW5NYW5pZmVzdDo6KF9faW5pdF9fKSBSZWFkaW5nIGRv bWFpbiBpbiBwYXRoIC9yaGV2L2RhdGEtY2VudGVyL21udC9nbHVzdGVyU0QvbG9jYWxob3N0Ol9l bmdpbmUvZTg5YjZlNjQtYmQ3ZC00ODQ2LWI5NzAtOWFmMzJhMzI5NWVlPG86cD48L286cD48L3A+ DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaHJlYWQtMTQxOjpERUJVRzo6 MjAxNS0xMi0yMSAxMToyOTo1OSw2NjY6Ol9faW5pdF9fOjozMjA6OklPUHJvY2Vzc0NsaWVudDo6 KF9ydW4pIFN0YXJ0aW5nIElPUHJvY2Vzcy4uLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2 Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhyZWFkLTE0MTo6REVCVUc6OjIwMTUtMTItMjEgMTE6 Mjk6NTksNjgwOjpwZXJzaXN0ZW50RGljdDo6MTkyOjpTdG9yYWdlLlBlcnNpc3RlbnREaWN0Ojoo X19pbml0X18pIENyZWF0ZWQgYSBwZXJzaXN0ZW50IGRpY3Qgd2l0aCBGaWxlTWV0YWRhdGFSVyBi YWNrZW5kPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij5UaHJlYWQtMTQxOjpFUlJPUjo6MjAxNS0xMi0yMSAxMToyOTo1OSw2ODY6OmhzbTo6Mjg5ODo6 U3RvcmFnZS5IU006OihnZXRTdG9yYWdlRG9tYWluc0xpc3QpIFVuZXhwZWN0ZWQgZXJyb3I8bzpw PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRyYWNlYmFj ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+ DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7IEZpbGUgJnF1b3Q7L3Vzci9zaGFy ZS92ZHNtL3N0b3JhZ2UvaHNtLnB5JnF1b3Q7LCBsaW5lIDI4ODIsIGluIGdldFN0b3JhZ2VEb21h aW5zTGlzdDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h bCI+Jm5ic3A7ICZuYnNwOyBkb20gPSBzZENhY2hlLnByb2R1Y2Uoc2RVVUlEPXNkVVVJRCk8bzpw PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyBG aWxlICZxdW90Oy91c3Ivc2hhcmUvdmRzbS9zdG9yYWdlL3NkYy5weSZxdW90OywgbGluZSAxMDAs IGluIHByb2R1Y2U8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O b3JtYWwiPiZuYnNwOyAmbmJzcDsgZG9tYWluLmdldFJlYWxEb21haW4oKTxvOnA+PC9vOnA+PC9w Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7IEZpbGUgJnF1b3Q7 L3Vzci9zaGFyZS92ZHNtL3N0b3JhZ2Uvc2RjLnB5JnF1b3Q7LCBsaW5lIDUyLCBpbiBnZXRSZWFs RG9tYWluPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij4mbmJzcDsgJm5ic3A7IHJldHVybiBzZWxmLl9jYWNoZS5fcmVhbFByb2R1Y2Uoc2VsZi5fc2RV VUlEKTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ Jm5ic3A7IEZpbGUgJnF1b3Q7L3Vzci9zaGFyZS92ZHNtL3N0b3JhZ2Uvc2RjLnB5JnF1b3Q7LCBs aW5lIDEyNCwgaW4gX3JlYWxQcm9kdWNlPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgJm5ic3A7IGRvbWFpbiA9IHNlbGYuX2ZpbmREb21h aW4oc2RVVUlEKTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v cm1hbCI+Jm5ic3A7IEZpbGUgJnF1b3Q7L3Vzci9zaGFyZS92ZHNtL3N0b3JhZ2Uvc2RjLnB5JnF1 b3Q7LCBsaW5lIDE0MywgaW4gX2ZpbmREb21haW48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRp dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyAmbmJzcDsgZG9tID0gZmluZE1ldGhvZChz ZFVVSUQpPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij4mbmJzcDsgRmlsZSAmcXVvdDsvdXNyL3NoYXJlL3Zkc20vc3RvcmFnZS9nbHVzdGVyU0QucHkm cXVvdDssIGxpbmUgMzIsIGluIGZpbmREb21haW48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRp dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyAmbmJzcDsgcmV0dXJuIEdsdXN0ZXJTdG9y YWdlRG9tYWluKEdsdXN0ZXJTdG9yYWdlRG9tYWluLmZpbmREb21haW5QYXRoKHNkVVVJRCkpPG86 cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsg RmlsZSAmcXVvdDsvdXNyL3NoYXJlL3Zkc20vc3RvcmFnZS9maWxlU0QucHkmcXVvdDssIGxpbmUg MTk4LCBpbiBfX2luaXRfXzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+Jm5ic3A7ICZuYnNwOyB2YWxpZGF0ZUZpbGVTeXN0ZW1GZWF0dXJlcyhtYW5p ZmVzdC5zZFVVSUQsIG1hbmlmZXN0Lm1vdW50cG9pbnQpPG86cD48L286cD48L3A+DQo8L2Rpdj4N CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgRmlsZSAmcXVvdDsvdXNyL3NoYXJl L3Zkc20vc3RvcmFnZS9maWxlU0QucHkmcXVvdDssIGxpbmUgOTMsIGluIHZhbGlkYXRlRmlsZVN5 c3RlbUZlYXR1cmVzPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv Tm9ybWFsIj4mbmJzcDsgJm5ic3A7IG9vcC5nZXRQcm9jZXNzUG9vbChzZFVVSUQpLmRpcmVjdFRv dWNoKHRlc3RGaWxlUGF0aCk8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPiZuYnNwOyBGaWxlICZxdW90Oy91c3Ivc2hhcmUvdmRzbS9zdG9yYWdlL291 dE9mUHJvY2Vzcy5weSZxdW90OywgbGluZSAzNTAsIGluIGRpcmVjdFRvdWNoPG86cD48L286cD48 L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgJm5ic3A7IGlv cHJvYy50b3VjaChwYXRoLCBmbGFncywgbW9kZSk8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRp dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyBGaWxlICZxdW90Oy91c3IvbGliL3B5dGhv bjIuNy9zaXRlLXBhY2thZ2VzL2lvcHJvY2Vzcy9fX2luaXRfXy5weSZxdW90OywgbGluZSA1NDMs IGluIHRvdWNoPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj4mbmJzcDsgJm5ic3A7IHNlbGYudGltZW91dCk8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyBGaWxlICZxdW90Oy91c3IvbGliL3B5 dGhvbjIuNy9zaXRlLXBhY2thZ2VzL2lvcHJvY2Vzcy9fX2luaXRfXy5weSZxdW90OywgbGluZSA0 MjcsIGluIF9zZW5kQ29tbWFuZDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+Jm5ic3A7ICZuYnNwOyByYWlzZSBPU0Vycm9yKGVycmNvZGUsIGVycnN0 cik8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPk9T RXJyb3I6IFtFcnJubyAzMF0gUmVhZC1vbmx5IGZpbGUgc3lzdGVtPG86cD48L286cD48L3A+DQo8 L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4N CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkJ1dCBpbnN0ZWFkIG9mIHJlcG9y dGluZyBhIGZhaWx1cmUgdG8gaG9zdGVkLWVuZ2luZS1zZXR1cCwgaXQgcmVwb3J0ZWQgYSBzdWNj ZXNzZnVsbHkgZXhlY3V0aW9uIHdoZXJlIGl0IHdhc24ndCBhYmxlIHRvIGZpbmQgYW55IHN0b3Jh Z2UgZG9tYWluIHRoZXJlICggdGhpcyBvbmUgaXMgYSByZWFsIGJ1ZywgSSdtIGdvaW5nIHRvIG9w ZW4gYSBidWcgb24gdGhhdCwgY2FuIEkgYXR0YWNoIHlvdXIgbG9ncyB0aGVyZT8NCiApOiZuYnNw OzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86 cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v cm1hbCI+VGhyZWFkLTE0MTo6SU5GTzo6MjAxNS0xMi0yMSAxMToyOTo1OSw3MDI6OmxvZ1V0aWxz Ojo1MTo6ZGlzcGF0Y2hlcjo6KHdyYXBwZXIpIFJ1biBhbmQgcHJvdGVjdDogZ2V0U3RvcmFnZURv bWFpbnNMaXN0LCBSZXR1cm4gcmVzcG9uc2U6IHsnZG9tbGlzdCc6IFtdfTxvOnA+PC9vOnA+PC9w Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhyZWFkLTE0MTo6REVCVUc6 OjIwMTUtMTItMjEgMTE6Mjk6NTksNzAyOjp0YXNrOjoxMTkxOjpTdG9yYWdlLlRhc2tNYW5hZ2Vy LlRhc2s6OihwcmVwYXJlKSBUYXNrPWA5NmE5ZWEwMy1kYzEzLTQ4M2UtOWIxNy1iNTVhNzU5Yzli NDRgOjpmaW5pc2hlZDogeydkb21saXN0JzogW119PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxk aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaHJlYWQtMTQxOjpERUJVRzo6MjAxNS0xMi0yMSAx MToyOTo1OSw3MDI6OnRhc2s6OjU5NTo6U3RvcmFnZS5UYXNrTWFuYWdlci5UYXNrOjooX3VwZGF0 ZVN0YXRlKSBUYXNrPWA5NmE5ZWEwMy1kYzEzLTQ4M2UtOWIxNy1iNTVhNzU5YzliNDRgOjptb3Zp bmcgZnJvbSBzdGF0ZSBwcmVwYXJpbmcgLSZndDsgc3RhdGUgZmluaXNoZWQ8bzpwPjwvbzpwPjwv cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRocmVhZC0xNDE6OkRFQlVH OjoyMDE1LTEyLTIxIDExOjI5OjU5LDcwMzo6cmVzb3VyY2VNYW5hZ2VyOjo5NDA6OlN0b3JhZ2Uu UmVzb3VyY2VNYW5hZ2VyLk93bmVyOjoocmVsZWFzZUFsbCkgT3duZXIucmVsZWFzZUFsbCByZXF1 ZXN0cyB7fSByZXNvdXJjZXMge308bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs YXNzPSJNc29Ob3JtYWwiPlRocmVhZC0xNDE6OkRFQlVHOjoyMDE1LTEyLTIxIDExOjI5OjU5LDcw Mzo6cmVzb3VyY2VNYW5hZ2VyOjo5Nzc6OlN0b3JhZ2UuUmVzb3VyY2VNYW5hZ2VyLk93bmVyOjoo Y2FuY2VsQWxsKSBPd25lci5jYW5jZWxBbGwgcmVxdWVzdHMge308bzpwPjwvbzpwPjwvcD4NCjwv ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRocmVhZC0xNDE6OkRFQlVHOjoyMDE1 LTEyLTIxIDExOjI5OjU5LDcwMzo6dGFzazo6OTkzOjpTdG9yYWdlLlRhc2tNYW5hZ2VyLlRhc2s6 OihfZGVjcmVmKSBUYXNrPWA5NmE5ZWEwMy1kYzEzLTQ4M2UtOWIxNy1iNTVhNzU5YzliNDRgOjpy ZWYgMCBhYm9ydGluZyBGYWxzZTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+VGhyZWFkLTE0MTo6SU5GTzo6MjAxNS0xMi0yMSAxMToyOTo1OSw3MDQ6 OnhtbHJwYzo6OTI6OnZkcy5YTUxSUENTZXJ2ZXI6OihfcHJvY2Vzc19yZXF1ZXN0cykgUmVxdWVz dCBoYW5kbGVyIGZvcg0KPGEgaHJlZj0iaHR0cDovLzEyNy4wLjAuMTozOTcxOCI+MTI3LjAuMC4x OjM5NzE4PC9hPiBzdG9wcGVkPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+ DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rp dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5BbmQgc28sIGNhdXNlIFZEU00gZG9lc24n dCByZXBvcnQgYW55IGV4aXN0aW5nIHN0b3JhZ2UgZG9tYWluLCBob3N0ZWQtZW5naW5lLXNldHVw IGFzc3VtZXMgdGhhdCB5b3UgYXJlIGdvaW5nIHRvIGRlcGxveSB0aGUgZmlyc3QgaG9zdCBhbmQg c28geW91ciBvcmlnaW5hbCBpc3N1ZS48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K PHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxibG9j a3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0 O3BhZGRpbmc6MGluIDBpbiAwaW4gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0 OjBpbiI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9 ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtz YW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4w cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsi PkZyb206PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWls eTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+IFNpbW9uZSBUaXJh Ym9zY2hpIFttYWlsdG86PGEgaHJlZj0ibWFpbHRvOnN0aXJhYm9zQHJlZGhhdC5jb20iIHRhcmdl dD0iX2JsYW5rIj5zdGlyYWJvc0ByZWRoYXQuY29tPC9hPl0NCjxicj4NCjxiPlNlbnQ6PC9iPiBU dWVzZGF5LCBEZWNlbWJlciAyMiwgMjAxNSA4OjU2IEFNPGJyPg0KPGI+VG86PC9iPiBXaWxsIERl bm5pczxicj4NCjxiPkNjOjwvYj4gU2FoaW5hIEJvc2U7IFllZGlkeWFoIEJhciBEYXZpZDwvc3Bh bj48bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGJy Pg0KPGI+U3ViamVjdDo8L2I+IFJlOiBbb3ZpcnQtdXNlcnNdIENhbm5vdCByZXRyaWV2ZSBhbnN3 ZXIgZmlsZSBmcm9tIDFzdCBIRSBob3N0IHdoZW4gc2V0dGluZyB1cCAybmQgaG9zdDxvOnA+PC9v OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph dXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs dDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1 dG8iPk9uIFR1ZSwgRGVjIDIyLCAyMDE1IGF0IDI6NDQgUE0sIFdpbGwgRGVubmlzICZsdDs8YSBo cmVmPSJtYWlsdG86d2Rlbm5pc0BuZWMtbGFicy5jb20iIHRhcmdldD0iX2JsYW5rIj53ZGVubmlz QG5lYy1sYWJzLmNvbTwvYT4mZ3Q7IHdyb3RlOjxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxkaXY+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xv cjojMUY0OTdEIj5XaGljaCBsb2dzIGFyZSBuZWVkZWQ/PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K PC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGJyPg0KTGV0J3Mgc3RhcnQg d2l0aCB2ZHNtLmxvZyBhbmQgL3Zhci9sb2cvbWVzc2FnZXM8YnI+DQpUaGVuIGl0J3MgcXVpdGUg c3RyYW5nZSB0aGF0IHlvdSBoYXZlIHRoYXQgYW1vdW50IG9mIGRhdGEgaW4gbW9tLmxvZyBzbyBh bHNvIHRoYXQgb25lIGNvdWxkIGJlIGludGVyZXN0aW5nLiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0K PC9kaXY+DQo8ZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0 OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzowaW4gMGluIDBpbiA2LjBwdDttYXJnaW4tbGVm dDo0LjhwdDttYXJnaW4tdG9wOjUuMHB0O21hcmdpbi1yaWdodDowaW47bWFyZ2luLWJvdHRvbTo1 LjBwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1 dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPGRp dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0 OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6 MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZx dW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i b3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5 OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdE Ij4vdmFyL2xvZy92ZHNtPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph dXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp YnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+dG90YWwgMjRN PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHls ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90 O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+ZHJ3eHIteHIteCZuYnNwOyZuYnNwOyAz IHZkc20ga3ZtJm5ic3A7IDQuMEsgRGVjIDE4IDIwOjEwIC48L3NwYW4+PG86cD48L286cD48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xv cjojMUY0OTdEIj5kcnd4ci14ci14LiAxMyByb290IHJvb3QgNC4wSyBEZWMgMjAgMDM6MTUgLi48 L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxl PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7 c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5kcnd4ci14ci14Jm5ic3A7Jm5ic3A7IDIg dmRzbSBrdm0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgNiBEZWMmbmJzcDsgOSAwMzoyNCBiYWNr dXA8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0 eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1 b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4tcnctci0tci0tJm5ic3A7Jm5ic3A7 IDEgdmRzbSBrdm0mbmJzcDsgMi41SyBEZWMgMjEgMTE6MjkgY29ubmVjdGl2aXR5LmxvZzwvc3Bh bj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZv bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5z LXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPi1ydy1yLS1yLS0mbmJzcDsmbmJzcDsgMSB2ZHNt IGt2bSZuYnNwOyAxNzNLIERlYyAyMSAxMToyMSBtb20ubG9nPC9zcGFuPjxvOnA+PC9vOnA+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z by1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29s b3I6IzFGNDk3RCI+LXJ3LXItLXItLSZuYnNwOyZuYnNwOyAxIHZkc20ga3ZtJm5ic3A7IDIuME0g RGVjIDE3IDEwOjA5IG1vbS5sb2cuMTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv bS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1 b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPi1y dy1yLS1yLS0mbmJzcDsmbmJzcDsgMSB2ZHNtIGt2bSZuYnNwOyAyLjBNIERlYyAxNyAwNDowNiBt b20ubG9nLjI8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxz cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4tcnctci0tci0tJm5ic3A7 Jm5ic3A7IDEgdmRzbSBrdm0mbmJzcDsgMi4wTSBEZWMgMTYgMjI6MDMgbW9tLmxvZy4zPC9zcGFu PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9u dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMt c2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+LXJ3LXItLXItLSZuYnNwOyZuYnNwOyAxIHZkc20g a3ZtJm5ic3A7IDIuME0gRGVjIDE2IDE2OjAwIG1vbS5sb2cuNDwvc3Bhbj48bzpwPjwvbzpwPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7 Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2Nv bG9yOiMxRjQ5N0QiPi1ydy1yLS1yLS0mbmJzcDsmbmJzcDsgMSB2ZHNtIGt2bSZuYnNwOyAyLjBN IERlYyAxNiAwOTo1NyBtb20ubG9nLjU8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0 b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx dW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4t cnctci0tci0tJm5ic3A7Jm5ic3A7IDEgcm9vdCByb290IDExNUsgRGVjIDIxIDExOjI5IHN1cGVy dmRzbS5sb2c8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxz cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4tcnctci0tci0tJm5ic3A7 Jm5ic3A7IDEgcm9vdCByb290IDIuN0sgT2N0IDE2IDExOjM4IHVwZ3JhZGUubG9nPC9zcGFuPjxv OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1z aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2Vy aWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+LXJ3LXItLXItLSZuYnNwOyZuYnNwOyAxIHZkc20ga3Zt Jm5ic3A7Jm5ic3A7IDEzTSBEZWMgMjIgMDg6NDQgdmRzbS5sb2c8L3NwYW4+PG86cD48L286cD48 L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87 bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0 O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztj b2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t YWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90 O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJz cDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxiPjxzcGFu IHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90Oywm cXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQt c2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2Vy aWYmcXVvdDsiPiBTaW1vbmUgVGlyYWJvc2NoaSBbbWFpbHRvOjxhIGhyZWY9Im1haWx0bzpzdGly YWJvc0ByZWRoYXQuY29tIiB0YXJnZXQ9Il9ibGFuayI+c3RpcmFib3NAcmVkaGF0LmNvbTwvYT5d DQo8YnI+DQo8Yj5TZW50OjwvYj4gVHVlc2RheSwgRGVjZW1iZXIgMjIsIDIwMTUgMzo1OCBBTTxi cj4NCjxiPlRvOjwvYj4gV2lsbCBEZW5uaXM7IFNhaGluYSBCb3NlPGJyPg0KPGI+Q2M6PC9iPiBZ ZWRpZHlhaCBCYXIgRGF2aWQ7IHVzZXJzPGJyPg0KPGI+U3ViamVjdDo8L2I+IFJlOiBbb3ZpcnQt dXNlcnNdIENhbm5vdCByZXRyaWV2ZSBhbnN3ZXIgZmlsZSBmcm9tIDFzdCBIRSBob3N0IHdoZW4g c2V0dGluZyB1cCAybmQgaG9zdDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h bHQ6YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph dXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i PiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+T24g VHVlLCBEZWMgMjIsIDIwMTUgYXQgMjowOSBBTSwgV2lsbCBEZW5uaXMgJmx0OzxhIGhyZWY9Im1h aWx0bzp3ZGVubmlzQG5lYy1sYWJzLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPndkZW5uaXNAbmVjLWxh YnMuY29tPC9hPiZndDsgd3JvdGU6PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttYXJnaW4tYm90 dG9tOjEyLjBwdCI+PGEgaHJlZj0iaHR0cDovL3VyMS5jYS9vY3N0ZiIgdGFyZ2V0PSJfYmxhbmsi Pmh0dHA6Ly91cjEuY2Evb2NzdGY8L2E+PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90 dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1z b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t LWFsdDphdXRvIj48YnI+DQoyMDE1LTEyLTIxIDExOjI4OjM5IERFQlVHIG90b3BpLnBsdWdpbnMu b3RvcGkuZGlhbG9nLmh1bWFuIGRpYWxvZy5fX2xvZ1N0cmluZzoyMTkgRElBTE9HOlNFTkQgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBQbGVh c2Ugc3BlY2lmeSB0aGUgZnVsbCBzaGFyZWQgc3RvcmFnZSBjb25uZWN0aW9uIHBhdGggdG8gdXNl IChleGFtcGxlOiBob3N0Oi9wYXRoKTo8YnI+DQoyMDE1LTEyLTIxIDExOjI4OjU1IERFQlVHIG90 b3BpLnBsdWdpbnMub3RvcGkuZGlhbG9nLmh1bWFuIGRpYWxvZy5fX2xvZ1N0cmluZzoyMTkgRElB TE9HOlJFQ0VJVkUgJm5ic3A7ICZuYnNwO2xvY2FsaG9zdDovZW5naW5lPG86cD48L286cD48L3A+ DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0 b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h bHQ6YXV0byI+T0ssIHNvIHlvdSBhcmUgdHJ5aW5nIHRvIGRlcGxveSBob3N0ZWQtZW5naW5lIG9u IEdsdXN0ZXJGUyBpbiBhIGh5cGVyLWNvbnZlcmdlZCB3YXkgKHVzaW5nIHRoZSBzYW1lIGhvc3Rz IGZvciB2aXJ0dWFsaXphdGlvbiBhbmQgZm9yIHNlcnZpbmcgR2x1c3RlckZTKS4gVW5mb3J0dW5h dGVseSBJJ3ZlIHRvIGFkdmlzZQ0KIHlvdSB0aGF0IHRoaXMgaXMgbm90IGEgc3VwcG9ydGVkIGNv bmZpZ3VyYXRpb24gb24gb1ZpcnQgMy42IGR1ZSB0byBkaWZmZXJlbnQgb3BlbiBidWdzLjxvOnA+ PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5TbyBJJ20g Z2xhZCB5b3UgY2FuIGhlbHAgdXMgdGVzdGluZyBpdCBidXQgSSBwcmVmZXIgdG8gYWR2aXNlIHRo YXQgdG9kYXkgdGhhdCBzY2hlbWEgaXMgbm90IHByb2R1Y3Rpb24gcmVhZHkuPG86cD48L286cD48 L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9v OnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5JbiB5b3VyIGNh c2UgaXQgc2VhbXMgdGhhdCBWRFNNIGNvcnJlY3RseSBjb25uZWN0cyB0aGUgR2x1c3RlckZTIHZv bHVtZSBzZWVpbmcgYWxsIHRoZSBicmlja3M8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGJyPg0KMjAxNS0xMi0yMSAxMToyODo1NSBERUJVRyBv dG9waS5wbHVnaW5zLm92aXJ0X2hvc3RlZF9lbmdpbmVfc2V0dXAuc3RvcmFnZS5uZnMgcGx1Z2lu LmV4ZWN1dGU6OTM2IGV4ZWN1dGUtb3V0cHV0OiAoJy9zYmluL2dsdXN0ZXInLCAnLS1tb2RlPXNj cmlwdCcsICctLXhtbCcsICd2b2x1bWUnLCAnaW5mbycsICdlbmdpbmUnLCAnLS1yZW1vdGUtaG9z dD1sb2NhbGhvc3QnKSBzdGRvdXQ6PGJyPg0KJmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVv dDsgZW5jb2Rpbmc9JnF1b3Q7VVRGLTgmcXVvdDsgc3RhbmRhbG9uZT0mcXVvdDt5ZXMmcXVvdDs/ Jmd0Ozxicj4NCiZsdDtjbGlPdXRwdXQmZ3Q7PGJyPg0KJm5ic3A7ICZsdDtvcFJldCZndDswJmx0 Oy9vcFJldCZndDs8YnI+DQombmJzcDsgJmx0O29wRXJybm8mZ3Q7MCZsdDsvb3BFcnJubyZndDs8 YnI+DQombmJzcDsgJmx0O29wRXJyc3RyLyZndDs8YnI+DQombmJzcDsgJmx0O3ZvbEluZm8mZ3Q7 PGJyPg0KJm5ic3A7ICZuYnNwOyAmbHQ7dm9sdW1lcyZndDs8YnI+DQombmJzcDsgJm5ic3A7ICZu YnNwOyAmbHQ7dm9sdW1lJmd0Ozxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbHQ7 bmFtZSZndDtlbmdpbmUmbHQ7L25hbWUmZ3Q7PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZsdDtpZCZndDs5NzRjOWRhNC1iMjM2LTRmYzEtYjI2YS02NDVmMTQ2MDFkYjgmbHQ7L2lk Jmd0Ozxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbHQ7c3RhdHVzJmd0OzEmbHQ7 L3N0YXR1cyZndDs8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJmx0O3N0YXR1c1N0 ciZndDtTdGFydGVkJmx0Oy9zdGF0dXNTdHImZ3Q7PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZsdDticmlja0NvdW50Jmd0OzYmbHQ7L2JyaWNrQ291bnQmZ3Q7PGJyPg0KJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZsdDtkaXN0Q291bnQmZ3Q7MyZsdDsvZGlzdENvdW50Jmd0 OyZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph dXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h bHQ6YXV0byI+YnV0IHRoZW4gVkRTTSBkb2Vzbid0IGZpbmQgYW55IHN0b3JhZ2UgZG9tYWluIHRo ZXJlOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6 YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7O2Nv bG9yOmJsYWNrIj5vdG9waS5wbHVnaW5zLm92aXJ0X2hvc3RlZF9lbmdpbmVfc2V0dXAuc3RvcmFn ZS5zdG9yYWdlLlBsdWdpbi5fbGF0ZV9jdXN0b21pemF0aW9uPC9zcGFuPjxicj4NCjxzcGFuIHN0 eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90Oztjb2xvcjpibGFjayI+MjAx NS0xMi0yMSAxMToyOTo1OCBERUJVRyBvdG9waS5wbHVnaW5zLm92aXJ0X2hvc3RlZF9lbmdpbmVf c2V0dXAuc3RvcmFnZS5zdG9yYWdlIHN0b3JhZ2UuX2dldEV4aXN0aW5nRG9tYWluOjQ3NiBfZ2V0 RXhpc3RpbmdEb21haW48L3NwYW4+PGJyPg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90 O0NvdXJpZXIgTmV3JnF1b3Q7O2NvbG9yOmJsYWNrIj4yMDE1LTEyLTIxIDExOjI5OjU4IERFQlVH IG90b3BpLnBsdWdpbnMub3ZpcnRfaG9zdGVkX2VuZ2luZV9zZXR1cC5zdG9yYWdlLnN0b3JhZ2Ug c3RvcmFnZS5fc3RvcmFnZVNlcnZlckNvbm5lY3Rpb246NjM4IGNvbm5lY3RTdG9yYWdlU2VydmVy PC9zcGFuPjxicj4NCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZx dW90Oztjb2xvcjpibGFjayI+MjAxNS0xMi0yMSAxMToyOTo1OCBERUJVRyBvdG9waS5wbHVnaW5z Lm92aXJ0X2hvc3RlZF9lbmdpbmVfc2V0dXAuc3RvcmFnZS5zdG9yYWdlIHN0b3JhZ2UuX3N0b3Jh Z2VTZXJ2ZXJDb25uZWN0aW9uOjcwMSB7J3N0YXR1cyc6IHsnbWVzc2FnZSc6ICdPSycsICdjb2Rl JzogMH0sICdzdGF0dXNsaXN0JzogW3snc3RhdHVzJzogMCwgJ2lkJzogJzY3ZWNlMTUyLWRkNjYt NDQ0Yy04ZDE4LTQyNDlkMWI4ZjQ4OCd9XX08L3NwYW4+PGJyPg0KPHNwYW4gc3R5bGU9ImZvbnQt ZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7O2NvbG9yOmJsYWNrIj4yMDE1LTEyLTIxIDEx OjI5OjU4IERFQlVHIG90b3BpLnBsdWdpbnMub3ZpcnRfaG9zdGVkX2VuZ2luZV9zZXR1cC5zdG9y YWdlLnN0b3JhZ2Ugc3RvcmFnZS5fZ2V0U3RvcmFnZURvbWFpbnNMaXN0OjU5NSBnZXRTdG9yYWdl RG9tYWluc0xpc3Q8L3NwYW4+PGJyPg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0Nv dXJpZXIgTmV3JnF1b3Q7O2NvbG9yOmJsYWNrIj4yMDE1LTEyLTIxIDExOjI5OjU5IERFQlVHIG90 b3BpLnBsdWdpbnMub3ZpcnRfaG9zdGVkX2VuZ2luZV9zZXR1cC5zdG9yYWdlLnN0b3JhZ2Ugc3Rv cmFnZS5fZ2V0U3RvcmFnZURvbWFpbnNMaXN0OjU5OCB7J3N0YXR1cyc6IHsnbWVzc2FnZSc6ICdP SycsICdjb2RlJzogMH0sICdkb21saXN0JzogW119PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9k aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4N CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Q2FuIHlvdSBwbGVhc2UgYXR0 YWNoIGFsc28gdGhlIGNvcnJlc3BvbmRlbnQgVkRTTSBsb2dzPzxvOnA+PC9vOnA+PC9wPg0KPC9k aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4N CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+QWRkaW5nIFNhaGluYSBoZXJl LjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5 bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4m bmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi IHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0 byI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3Jk ZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGluIDBpbiAw aW4gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tcmlnaHQ6 MGluO21hcmdpbi1ib3R0b206NS4wcHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5PbiBEZWMg MjEsIDIwMTUsIGF0IDExOjU4IEFNLCBTaW1vbmUgVGlyYWJvc2NoaSAmbHQ7PGEgaHJlZj0ibWFp bHRvOnN0aXJhYm9zQHJlZGhhdC5jb20iIHRhcmdldD0iX2JsYW5rIj5zdGlyYWJvc0ByZWRoYXQu Y29tPC9hPiZsdDttYWlsdG86PGEgaHJlZj0ibWFpbHRvOnN0aXJhYm9zQHJlZGhhdC5jb20iIHRh cmdldD0iX2JsYW5rIj5zdGlyYWJvc0ByZWRoYXQuY29tPC9hPiZndDsmZ3Q7DQogd3JvdGU6PG86 cD48L286cD48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttYXJnaW4tYm90dG9tOjEyLjBwdCI+PGJyPg0KT24gTW9u LCBEZWMgMjEsIDIwMTUgYXQgNTo1MiBQTSwgV2lsbCBEZW5uaXMgJmx0OzxhIGhyZWY9Im1haWx0 bzp3ZGVubmlzQG5lYy1sYWJzLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPndkZW5uaXNAbmVjLWxhYnMu Y29tPC9hPiZsdDttYWlsdG86PGEgaHJlZj0ibWFpbHRvOndkZW5uaXNAbmVjLWxhYnMuY29tIiB0 YXJnZXQ9Il9ibGFuayI+d2Rlbm5pc0BuZWMtbGFicy5jb208L2E+Jmd0OyZndDsgd3JvdGU6PGJy Pg0KPGJyPg0KSG93ZXZlciwgd2hlbiBJIHdlbnQgdG8gdGhlIDNyZCBob3N0IGFuZCBkaWQgdGhl IHNldHVwLCBJIHNlbGVjdGVkICdnbHVzdGVyZnMnIGFuZCBnYXZlIHRoZSBwYXRoIG9mIHRoZSBl bmdpbmUgdm9sdW1lLCBpdCBjYW1lIGJhY2sgYW5kIGluY29ycmVjdGx5IGlkZW50aWZpZWQgaXQg YXMgdGhlIGZpcnN0IGhvc3QsIGluc3RlYWQgb2YgYW4gYWRkaXRpb25hbCBob3N0Li4uIEhvdyBk b2VzIHNldHVwIGRldGVybWluZSB0aGF0PyBJIGNvbmZpcm1lZA0KIHRoYXQgb24gdGhpcyAzcmQg aG9zdCB0aGF0IHRoZSBlbmdpbmUgdm9sdW1lIGlzIGF2YWlsYWJsZSBhbmQgaGFzIHRoZSBHVUlE IHN1YmZvbGRlciBvZiB0aGUgaG9zdGVkIGVuZ2luZS4uLjxicj4NCjxicj4NCjxicj4NCkNhbiB5 b3UgcGxlYXNlIGF0dGFjaCBhIGxvZyBvZiBob3N0ZWQtZW5naW5lLXNldHVwIGFsc28gZnJvbSB0 aGVyZT88bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rp dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4N CjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8 L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0 bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rp dj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+ DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9k aXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K --_000_F3282EEAFF180F43BAF1AD0A7C34739D38F171njmailneclabscom_--

On Tue, Dec 22, 2015 at 3:31 PM, Will Dennis <wdennis@nec-labs.com> wrote:
Yes, OK to attached needed logs to bug report...
Done, thanks. https://bugzilla.redhat.com/show_bug.cgi?id=1293666
*From:* Simone Tiraboschi [mailto:stirabos@redhat.com] *Sent:* Tuesday, December 22, 2015 9:27 AM *To:* Will Dennis; users *Cc:* Sahina Bose; Yedidyah Bar David; Nir Soffer
*Subject:* Re: [ovirt-users] Cannot retrieve answer file from 1st HE host when setting up 2nd host
On Tue, Dec 22, 2015 at 3:06 PM, Will Dennis <wdennis@nec-labs.com> wrote:
See attached for requested logs
Thanks, the issue is here:
Dec 21 19:40:53 ovirt-node-03 etc-glusterfs-glusterd.vol[1079]: [2015-12-22 00:40:53.496109] C [MSGID: 106002] [glusterd-server-quorum.c:351:glusterd_do_volume_quorum_action] 0-management: Server quorum lost for volume engine. Stopping local bricks.
Dec 21 19:40:53 ovirt-node-03 etc-glusterfs-glusterd.vol[1079]: [2015-12-22 00:40:53.496410] C [MSGID: 106002] [glusterd-server-quorum.c:351:glusterd_do_volume_quorum_action] 0-management: Server quorum lost for volume vmdata. Stopping local bricks.
So at that point gluster lost its quorum and the fail system got read-only.
On the getStorageDomainsList VDSM internally raises cause the file-system is read only:
Thread-141::DEBUG::2015-12-21 11:29:59,666::fileSD::157::Storage.StorageDomainManifest::(__init__) Reading domain in path /rhev/data-center/mnt/glusterSD/localhost:_engine/e89b6e64-bd7d-4846-b970-9af32a3295ee
Thread-141::DEBUG::2015-12-21 11:29:59,666::__init__::320::IOProcessClient::(_run) Starting IOProcess...
Thread-141::DEBUG::2015-12-21 11:29:59,680::persistentDict::192::Storage.PersistentDict::(__init__) Created a persistent dict with FileMetadataRW backend
Thread-141::ERROR::2015-12-21 11:29:59,686::hsm::2898::Storage.HSM::(getStorageDomainsList) Unexpected error
Traceback (most recent call last):
File "/usr/share/vdsm/storage/hsm.py", line 2882, in getStorageDomainsList
dom = sdCache.produce(sdUUID=sdUUID)
File "/usr/share/vdsm/storage/sdc.py", line 100, 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 124, in _realProduce
domain = self._findDomain(sdUUID)
File "/usr/share/vdsm/storage/sdc.py", line 143, in _findDomain
dom = findMethod(sdUUID)
File "/usr/share/vdsm/storage/glusterSD.py", line 32, in findDomain
return GlusterStorageDomain(GlusterStorageDomain.findDomainPath(sdUUID))
File "/usr/share/vdsm/storage/fileSD.py", line 198, in __init__
validateFileSystemFeatures(manifest.sdUUID, manifest.mountpoint)
File "/usr/share/vdsm/storage/fileSD.py", line 93, in validateFileSystemFeatures
oop.getProcessPool(sdUUID).directTouch(testFilePath)
File "/usr/share/vdsm/storage/outOfProcess.py", line 350, in directTouch
ioproc.touch(path, flags, mode)
File "/usr/lib/python2.7/site-packages/ioprocess/__init__.py", line 543, in touch
self.timeout)
File "/usr/lib/python2.7/site-packages/ioprocess/__init__.py", line 427, in _sendCommand
raise OSError(errcode, errstr)
OSError: [Errno 30] Read-only file system
But instead of reporting a failure to hosted-engine-setup, it reported a successfully execution where it wasn't able to find any storage domain there ( this one is a real bug, I'm going to open a bug on that, can I attach your logs there? ):
Thread-141::INFO::2015-12-21 11:29:59,702::logUtils::51::dispatcher::(wrapper) Run and protect: getStorageDomainsList, Return response: {'domlist': []}
Thread-141::DEBUG::2015-12-21 11:29:59,702::task::1191::Storage.TaskManager.Task::(prepare) Task=`96a9ea03-dc13-483e-9b17-b55a759c9b44`::finished: {'domlist': []}
Thread-141::DEBUG::2015-12-21 11:29:59,702::task::595::Storage.TaskManager.Task::(_updateState) Task=`96a9ea03-dc13-483e-9b17-b55a759c9b44`::moving from state preparing -> state finished
Thread-141::DEBUG::2015-12-21 11:29:59,703::resourceManager::940::Storage.ResourceManager.Owner::(releaseAll) Owner.releaseAll requests {} resources {}
Thread-141::DEBUG::2015-12-21 11:29:59,703::resourceManager::977::Storage.ResourceManager.Owner::(cancelAll) Owner.cancelAll requests {}
Thread-141::DEBUG::2015-12-21 11:29:59,703::task::993::Storage.TaskManager.Task::(_decref) Task=`96a9ea03-dc13-483e-9b17-b55a759c9b44`::ref 0 aborting False
Thread-141::INFO::2015-12-21 11:29:59,704::xmlrpc::92::vds.XMLRPCServer::(_process_requests) Request handler for 127.0.0.1:39718 stopped
And so, cause VDSM doesn't report any existing storage domain, hosted-engine-setup assumes that you are going to deploy the first host and so your original issue.
*From:* Simone Tiraboschi [mailto:stirabos@redhat.com] *Sent:* Tuesday, December 22, 2015 8:56 AM *To:* Will Dennis *Cc:* Sahina Bose; Yedidyah Bar David
*Subject:* Re: [ovirt-users] Cannot retrieve answer file from 1st HE host when setting up 2nd host
On Tue, Dec 22, 2015 at 2:44 PM, Will Dennis <wdennis@nec-labs.com> wrote:
Which logs are needed?
Let's start with vdsm.log and /var/log/messages Then it's quite strange that you have that amount of data in mom.log so also that one could be interesting.
/var/log/vdsm
total 24M
drwxr-xr-x 3 vdsm kvm 4.0K Dec 18 20:10 .
drwxr-xr-x. 13 root root 4.0K Dec 20 03:15 ..
drwxr-xr-x 2 vdsm kvm 6 Dec 9 03:24 backup
-rw-r--r-- 1 vdsm kvm 2.5K Dec 21 11:29 connectivity.log
-rw-r--r-- 1 vdsm kvm 173K Dec 21 11:21 mom.log
-rw-r--r-- 1 vdsm kvm 2.0M Dec 17 10:09 mom.log.1
-rw-r--r-- 1 vdsm kvm 2.0M Dec 17 04:06 mom.log.2
-rw-r--r-- 1 vdsm kvm 2.0M Dec 16 22:03 mom.log.3
-rw-r--r-- 1 vdsm kvm 2.0M Dec 16 16:00 mom.log.4
-rw-r--r-- 1 vdsm kvm 2.0M Dec 16 09:57 mom.log.5
-rw-r--r-- 1 root root 115K Dec 21 11:29 supervdsm.log
-rw-r--r-- 1 root root 2.7K Oct 16 11:38 upgrade.log
-rw-r--r-- 1 vdsm kvm 13M Dec 22 08:44 vdsm.log
*From:* Simone Tiraboschi [mailto:stirabos@redhat.com] *Sent:* Tuesday, December 22, 2015 3:58 AM *To:* Will Dennis; Sahina Bose *Cc:* Yedidyah Bar David; users *Subject:* Re: [ovirt-users] Cannot retrieve answer file from 1st HE host when setting up 2nd host
On Tue, Dec 22, 2015 at 2:09 AM, Will Dennis <wdennis@nec-labs.com> wrote:
2015-12-21 11:28:39 DEBUG otopi.plugins.otopi.dialog.human dialog.__logString:219 DIALOG:SEND Please specify the full shared storage connection path to use (example: host:/path): 2015-12-21 11:28:55 DEBUG otopi.plugins.otopi.dialog.human dialog.__logString:219 DIALOG:RECEIVE localhost:/engine
OK, so you are trying to deploy hosted-engine on GlusterFS in a hyper-converged way (using the same hosts for virtualization and for serving GlusterFS). Unfortunately I've to advise you that this is not a supported configuration on oVirt 3.6 due to different open bugs.
So I'm glad you can help us testing it but I prefer to advise that today that schema is not production ready.
In your case it seams that VDSM correctly connects the GlusterFS volume seeing all the bricks
2015-12-21 11:28:55 DEBUG otopi.plugins.ovirt_hosted_engine_setup.storage.nfs plugin.execute:936 execute-output: ('/sbin/gluster', '--mode=script', '--xml', 'volume', 'info', 'engine', '--remote-host=localhost') stdout: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <cliOutput> <opRet>0</opRet> <opErrno>0</opErrno> <opErrstr/> <volInfo> <volumes> <volume> <name>engine</name> <id>974c9da4-b236-4fc1-b26a-645f14601db8</id> <status>1</status> <statusStr>Started</statusStr> <brickCount>6</brickCount> <distCount>3</distCount>
but then VDSM doesn't find any storage domain there:
otopi.plugins.ovirt_hosted_engine_setup.storage.storage.Plugin._late_customization 2015-12-21 11:29:58 DEBUG otopi.plugins.ovirt_hosted_engine_setup.storage.storage storage._getExistingDomain:476 _getExistingDomain 2015-12-21 11:29:58 DEBUG otopi.plugins.ovirt_hosted_engine_setup.storage.storage storage._storageServerConnection:638 connectStorageServer 2015-12-21 11:29:58 DEBUG otopi.plugins.ovirt_hosted_engine_setup.storage.storage storage._storageServerConnection:701 {'status': {'message': 'OK', 'code': 0}, 'statuslist': [{'status': 0, 'id': '67ece152-dd66-444c-8d18-4249d1b8f488'}]} 2015-12-21 11:29:58 DEBUG otopi.plugins.ovirt_hosted_engine_setup.storage.storage storage._getStorageDomainsList:595 getStorageDomainsList 2015-12-21 11:29:59 DEBUG otopi.plugins.ovirt_hosted_engine_setup.storage.storage storage._getStorageDomainsList:598 {'status': {'message': 'OK', 'code': 0}, 'domlist': []}
Can you please attach also the correspondent VDSM logs?
Adding Sahina here.
On Dec 21, 2015, at 11:58 AM, Simone Tiraboschi <stirabos@redhat.com <mailto:stirabos@redhat.com>> wrote:
On Mon, Dec 21, 2015 at 5:52 PM, Will Dennis <wdennis@nec-labs.com<mailto: wdennis@nec-labs.com>> wrote:
However, when I went to the 3rd host and did the setup, I selected 'glusterfs' and gave the path of the engine volume, it came back and incorrectly identified it as the first host, instead of an additional host... How does setup determine that? I confirmed that on this 3rd host that the engine volume is available and has the GUID subfolder of the hosted engine...
Can you please attach a log of hosted-engine-setup also from there?
participants (2)
-
Simone Tiraboschi
-
Will Dennis