From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============4709472480281436318==" MIME-Version: 1.0 From: Sreeni (Sreenivasa) Busam (Stellus) Subject: Re: [SPDK] Program core dumps when I/O is issued in thread. Date: Mon, 20 Nov 2017 20:49:31 +0000 Message-ID: <176deaeece5a47d183f29b64da5012f5@stellus.com> In-Reply-To: CGME20171120204932uscas1p1b94e52de81bea7d923c63a19ab4339ac@uscas1p1.samsung.com List-ID: To: spdk@lists.01.org --===============4709472480281436318== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Paul/Jim, I am trying to create some threads and issue I/O write and read by creating= qpair in each of the thread. If the I/O commands are run in main thread th= en the program works fine, but if I create a thread, the programs crashes a= nd fails in qpair allocation spdk_nvme_ctrlr_alloc_io_qpair(). I have attached the complete program. Here is the trace where crash happens. 0x0000000000412844 in nvme_pcie_qpair_process_completions ( qpair=3D0x103ffe9310, max_completions=3D127) at nvme_pcie.c:1893 #1 0x000000000040da10 in nvme_transport_qpair_process_completions ( qpair=3D0x103ffe9310, max_completions=3D0) at nvme_transport.c:201 #2 0x000000000040b4d4 in spdk_nvme_qpair_process_completions ( qpair=3D0x103ffe9310, max_completions=3D0) at nvme_qpair.c:368 #3 0x000000000041166f in _nvme_pcie_ctrlr_create_io_qpair ( ctrlr=3D0x103ffe93c0, qpair=3D0x103ff8ec90, qid=3D1) at nvme_pcie.c:1360 #4 0x00000000004118db in nvme_pcie_ctrlr_create_io_qpair (ctrlr=3D0x103ffe= 93c0, qid=3D1, opts=3D0x7f012053ecf0) at nvme_pcie.c:1426 #5 0x000000000040d7d7 in nvme_transport_ctrlr_create_io_qpair ( ctrlr=3D0x103ffe93c0, qid=3D1, opts=3D0x7f012053ecf0) at nvme_transport= .c:153 #6 0x000000000040512b in spdk_nvme_ctrlr_alloc_io_qpair (ctrlr=3D0x103ffe9= 3c0, user_opts=3D0x0, opts_size=3D0) at nvme_ctrlr.c:281 #7 0x000000000040441c in test_io_func1 (arg=3D0x7fff327fba48) at iostat.c:= 288 #8 0x00007f01211126ba in start_thread (arg=3D0x7f012053f700) at pthread_create.c:333 #9 0x00007f0120e483dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S please take a look and let know any pointers to debug the issue. I changed the ns_entry as shown here. struct ns_entry { struct spdk_nvme_ctrlr *ctrlr; struct spdk_nvme_ns *ns; int nsid; char ctrlr_name[MAX_CTRLR_NAME]; struct ns_entry *next; struct spdk_nvme_qpair *qpair[5]; int qpair_allocated; } Thanks, Sreeni From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Luse, Paul E Sent: Friday, November 17, 2017 11:02 AM To: Storage Performance Development Kit Subject: Re: [SPDK] Regarding NVMe driver command queue depth. Cool, so working as you would expect now? From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Sreeni (Sreeni= vasa) Busam (Stellus) Sent: Friday, November 17, 2017 11:52 AM To: Storage Performance Development Kit > Subject: Re: [SPDK] Regarding NVMe driver command queue depth. Hi Jim, Thanks for taking a look at the problem. It is a logical bug. I fixed it. The memory for the qpair was allocated outside the ns_entry loop. I have two SSD devices and the memory was not allocated for the qpair for s= econd ns_entry. Here is the problem. ns_entry =3D g_namespaces; ns_entry->qpair_2 =3D spdk_nvme_ctrlr_alloc_io_qpair(ns_entry->ctrlr, = NULL, 0); if (ns_entry->qpair_2 =3D=3D NULL) { printf("The qpair allocation failed.\n"); exit (0); } while (ns_entry !=3D NULL) { cnt =3D 1; while (cnt) { // Fails to be successfully submit rc =3D stellus_spdk_nvme_ns_cmd_write(ns_entry, ns_entry->q= pair_2, sequence->buf, 0, /* LBA start */ 1, /* number of LBAs */ io_complete, sequence, 0) =E2=80=A6. Sreeni From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Harris, James R Sent: Friday, November 17, 2017 8:44 AM To: Storage Performance Development Kit > Subject: Re: [SPDK] Regarding NVMe driver command queue depth. Hi Sreeni, Can you step through your second call to spdk_nvme_ctrlr_alloc_io_qpair? T= he callstack clearly shows that qpair=3D0x0 was passed into stellus_spdk_nv= me_ns_cmd_write() at frame #3. So I think we should back up and figure out= why no I/O qpair was allocated (or maybe it was allocated but not saved in= a structure or something). -Jim From: SPDK = > on behalf of "Sreeni (Sreenivasa) Busam (Stellus)" > Reply-To: Storage Performance Development Kit > Date: Thursday, November 16, 2017 at 4:57 PM To: Storage Performance Development Kit > Subject: Re: [SPDK] Regarding NVMe driver command queue depth. I have been trying to test the number of commands that can be given to the = device at a time. I verified that a maximum of 254 commands could be issued= for a qpair. So I created a 2nd qpair for ns_entry and issued the I/O comm= ands, it was failing in the first command itself. Is it invalid to create 2= qpair for the same ns_entry and send command to device? The qpair is succe= ssfully created, but I could not submit command. I modified the hello_world program to test this and attached the related co= de. Please take a look and let me know what is the problem. 0x000000000040bae2 in nvme_allocate_request (qpair=3D0x0, payload=3D0x7fffa4726ba0, payload_size=3D512, cb_fn=3D0x4041a4 , cb_arg=3D0x7b4270) at nvme.c:85 #1 0x000000000040996c in _nvme_ns_cmd_rw (ns=3D0x100ff8ee40, qpair=3D0x0, payload=3D0x7fffa4726ba0, payload_offset=3D0, md_offset=3D0, lba=3D0, l= ba_count=3D1, cb_fn=3D0x4041a4 , cb_arg=3D0x7b4270, opc=3D1, io_flags= =3D0, apptag_mask=3D0, apptag=3D0, check_sgl=3Dtrue) at nvme_ns_cmd.c:440 #2 0x0000000000409fea in spdk_nvme_ns_cmd_write (ns=3D0x100ff8ee40, qpair= =3D0x0, buffer=3D0x10000f7000, lba=3D0, lba_count=3D1, cb_fn=3D0x4041a4 , cb_arg=3D0x7b4270, io_flags=3D0) at nvme_ns_cmd.c:649 #3 0x000000000040439d in stellus_spdk_nvme_ns_cmd_write (ns_entry=3D0x7b13= c0, qpair=3D0x0, buffer=3D0x10000f7000, lba=3D0, lba_count=3D1, cb_fn=3D0x40420d , cb_arg=3D0x7b4270, ioflags=3D0) at iost= at.c:233 #4 0x00000000004046b8 in test_io_func1 () at iostat.c:342 #5 0x0000000000404a94 in main (argc=3D1, argv=3D0x7fffa4726db8) at iostat.= c:503 (gdb) f 3 #3 0x000000000040439d in stellus_spdk_nvme_ns_cmd_write (ns_entry=3D0x7b13= c0, qpair=3D0x0, buffer=3D0x10000f7000, lba=3D0, lba_count=3D1, cb_fn=3D0x40420d , cb_arg=3D0x7b4270, ioflags=3D0) at iost= at.c:233 233 rc =3D spdk_nvme_ns_cmd_write(ns_entry->ns, qpair, = buffer, (gdb) p qpair $1 =3D (struct spdk_nvme_qpair *) 0x0 If any of you get time, please look at it. Thank you for your suggestion. From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Sreeni (Sreeni= vasa) Busam (Stellus) Sent: Thursday, November 16, 2017 11:26 AM To: spdk(a)lists.01.org Subject: [SPDK] Regarding NVMe driver command queue depth. Hi Paul, I was reading about the driver from SPDK site, and interested in understand= ing the queue depth for a device. =E2=80=9CThe specification allows for thousands, but most devices support b= etween 32 and 128. The specification makes no guarantees about the performa= nce available from each queue pair, but in practice the full performance of= a device is almost always achievable using just one queue pair. For exampl= e, if a device claims to be capable of 450,000 I/O per second at queue dept= h 128, in practice it does not matter if the driver is using 4 queue pairs = each with queue depth 32, or a single queue pair with queue depth 128=E2=80= =9D When queue depth is mentioned for device, is it the number of commands that= can be issued from application to controller, and outstanding at any time? Is there NVMe driver API to set the queue depth? Is my understanding correc= t if I think that the size of queue is at firmware level? Please give some detail about the parameter. Thanks, Sreeni --===============4709472480281436318== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6 Ik1hbGd1biBHb3RoaWMiOw0KCXBhbm9zZS0xOjIgMTEgNSAzIDIgMCAwIDIgMCA0O30NCkBmb250 LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1IDUgMiAyIDIgNCAz IDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OiJcQE1hbGd1biBHb3RoaWMiOw0KCXBh bm9zZS0xOjIgMTEgNSAzIDIgMCAwIDIgMCA0O30NCi8qIFN0eWxlIERlZmluaXRpb25zICovDQpw Lk1zb05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsDQoJe21hcmdpbjowaW47DQoJ bWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1pbHk6 IkNhbGlicmkiLHNhbnMtc2VyaWY7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28t c3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6IzA1NjNDMTsNCgl0ZXh0LWRlY29yYXRpb246dW5k ZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dlZA0KCXttc28tc3R5 bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6Izk1NEY3MjsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJs aW5lO30NCnNwYW4uRW1haWxTdHlsZTE3DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsOw0KCWZv bnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0Kc3Bh bi5FbWFpbFN0eWxlMTgNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWw7DQoJZm9udC1mYW1pbHk6 IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJY29sb3I6IzFGNDk3RDt9DQpzcGFuLkVtYWlsU3R5bGUx OQ0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fu cy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCnNwYW4uRW1haWxTdHlsZTIwDQoJe21zby1z dHlsZS10eXBlOnBlcnNvbmFsOw0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0K CWNvbG9yOiMxRjQ5N0Q7fQ0Kc3Bhbi5FbWFpbFN0eWxlMjENCgl7bXNvLXN0eWxlLXR5cGU6cGVy c29uYWw7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJY29sb3I6IzFGNDk3 RDt9DQpzcGFuLkVtYWlsU3R5bGUyMg0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsN Cglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjojMUY0OTdEO30NCi5N c29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtc2l6ZTox MC4wcHQ7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6OC41aW4gMTEuMGluOw0KCW1hcmdp bjoxLjBpbiAxLjBpbiAxLjBpbiAxLjBpbjt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6V29y ZFNlY3Rpb24xO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFw ZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+PCFbZW5kaWZd LS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2OmV4dD0iZWRpdCI+ DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFwZWxheW91dD48L3ht bD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGJnY29sb3I9IndoaXRlIiBsYW5nPSJFTi1V UyIgbGluaz0iIzA1NjNDMSIgdmxpbms9IiM5NTRGNzIiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rp b24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5I aSBQYXVsL0ppbSw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48 c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0K PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPkkgYW0gdHJ5 aW5nIHRvIGNyZWF0ZSBzb21lIHRocmVhZHMgYW5kIGlzc3VlIEkvTyB3cml0ZSBhbmQgcmVhZCBi eSBjcmVhdGluZyBxcGFpciBpbiBlYWNoIG9mIHRoZSB0aHJlYWQuIElmIHRoZSBJL08gY29tbWFu ZHMgYXJlIHJ1biBpbiBtYWluIHRocmVhZCB0aGVuIHRoZSBwcm9ncmFtIHdvcmtzIGZpbmUsIGJ1 dCBpZiBJIGNyZWF0ZSBhIHRocmVhZCwgdGhlIHByb2dyYW1zDQogY3Jhc2hlcyBhbmQgZmFpbHMg aW4gcXBhaXIgYWxsb2NhdGlvbiBzcGRrX252bWVfY3RybHJfYWxsb2NfaW9fcXBhaXIoKS48bzpw PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29s b3I6IzFGNDk3RCI+SSBoYXZlIGF0dGFjaGVkIHRoZSBjb21wbGV0ZSBwcm9ncmFtLiBIZXJlIGlz IHRoZSB0cmFjZSB3aGVyZSBjcmFzaCBoYXBwZW5zLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4weDAwMDAwMDAw MDA0MTI4NDQgaW4gbnZtZV9wY2llX3FwYWlyX3Byb2Nlc3NfY29tcGxldGlvbnMgKDxvOnA+PC9v OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjoj MUY0OTdEIj4mbmJzcDsmbmJzcDsmbmJzcDsgcXBhaXI9MHgxMDNmZmU5MzEwLCBtYXhfY29tcGxl dGlvbnM9MTI3KSBhdCBudm1lX3BjaWUuYzoxODkzPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiMxJm5ic3A7IDB4 MDAwMDAwMDAwMDQwZGExMCBpbiBudm1lX3RyYW5zcG9ydF9xcGFpcl9wcm9jZXNzX2NvbXBsZXRp b25zICg8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz dHlsZT0iY29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHFwYWlyPTB4MTAzZmZlOTMx MCwgbWF4X2NvbXBsZXRpb25zPTApIGF0IG52bWVfdHJhbnNwb3J0LmM6MjAxPG86cD48L286cD48 L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5 N0QiPiMyJm5ic3A7IDB4MDAwMDAwMDAwMDQwYjRkNCBpbiBzcGRrX252bWVfcXBhaXJfcHJvY2Vz c19jb21wbGV0aW9ucyAoPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h bCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyBxcGFpcj0w eDEwM2ZmZTkzMTAsIG1heF9jb21wbGV0aW9ucz0wKSBhdCBudm1lX3FwYWlyLmM6MzY4PG86cD48 L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9y OiMxRjQ5N0QiPiMzJm5ic3A7IDB4MDAwMDAwMDAwMDQxMTY2ZiBpbiBfbnZtZV9wY2llX2N0cmxy X2NyZWF0ZV9pb19xcGFpciAoPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v cm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyBjdHJs cj0weDEwM2ZmZTkzYzAsIHFwYWlyPTB4MTAzZmY4ZWM5MCwgcWlkPTEpIGF0IG52bWVfcGNpZS5j OjEzNjA8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz dHlsZT0iY29sb3I6IzFGNDk3RCI+IzQmbmJzcDsgMHgwMDAwMDAwMDAwNDExOGRiIGluIG52bWVf cGNpZV9jdHJscl9jcmVhdGVfaW9fcXBhaXIgKGN0cmxyPTB4MTAzZmZlOTNjMCw8bzpwPjwvbzpw Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFG NDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHFpZD0xLCBvcHRzPTB4N2YwMTIwNTNlY2YwKSBhdCBu dm1lX3BjaWUuYzoxNDI2PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h bCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiM1Jm5ic3A7IDB4MDAwMDAwMDAwMDQwZDdk NyBpbiBudm1lX3RyYW5zcG9ydF9jdHJscl9jcmVhdGVfaW9fcXBhaXIgKDxvOnA+PC9vOnA+PC9z cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdE Ij4mbmJzcDsmbmJzcDsmbmJzcDsgY3RybHI9MHgxMDNmZmU5M2MwLCBxaWQ9MSwgb3B0cz0weDdm MDEyMDUzZWNmMCkgYXQgbnZtZV90cmFuc3BvcnQuYzoxNTM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+IzYmbmJz cDsgMHgwMDAwMDAwMDAwNDA1MTJiIGluIHNwZGtfbnZtZV9jdHJscl9hbGxvY19pb19xcGFpciAo Y3RybHI9MHgxMDNmZmU5M2MwLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDsmbmJzcDsmbmJzcDsgdXNl cl9vcHRzPTB4MCwgb3B0c19zaXplPTApIGF0IG52bWVfY3RybHIuYzoyODE8bzpwPjwvbzpwPjwv c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3 RCI+IzcmbmJzcDsgMHgwMDAwMDAwMDAwNDA0NDFjIGluIHRlc3RfaW9fZnVuYzEgKGFyZz0weDdm ZmYzMjdmYmE0OCkgYXQgaW9zdGF0LmM6Mjg4PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiM4Jm5ic3A7IDB4MDAw MDdmMDEyMTExMjZiYSBpbiBzdGFydF90aHJlYWQgKGFyZz0weDdmMDEyMDUzZjcwMCk8bzpwPjwv bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6 IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGF0IHB0aHJlYWRfY3JlYXRlLmM6MzMzPG86cD48 L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9y OiMxRjQ5N0QiPiM5Jm5ic3A7IDB4MDAwMDdmMDEyMGU0ODNkZCBpbiBjbG9uZSAoKTxvOnA+PC9v OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjoj MUY0OTdEIj4mbmJzcDsmbmJzcDsmbmJzcDsgYXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgv eDg2XzY0L2Nsb25lLlM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+cGxlYXNlIHRha2UgYSBsb29rIGFuZCBsZXQg a25vdyBhbnkgcG9pbnRlcnMgdG8gZGVidWcgdGhlIGlzc3VlLg0KPG86cD48L286cD48L3NwYW4+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPkkg Y2hhbmdlZCB0aGUgbnNfZW50cnkgYXMgc2hvd24gaGVyZS48bzpwPjwvbzpwPjwvc3Bhbj48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0idGV4dC1hdXRvc3BhY2U6bm9uZSI+PHNwYW4g c3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij5zdHJ1Y3QgbnNfZW50 cnkgezxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJ0 ZXh0LWF1dG9zcGFjZTpub25lIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291cmll ciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBzdHJ1Y3Qgc3Bka19udm1lX2N0 cmxyJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICpjdHJscjs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0idGV4dC1hdXRvc3BhY2U6bm9uZSI+PHNwYW4g c3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij4mbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsgc3RydWN0IHNwZGtfbnZtZV9ucyZuYnNwOyZuYnNwOyAqbnM7PG86cD48L286 cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9InRleHQtYXV0b3NwYWNl Om5vbmUiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+ Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGludCBuc2lkOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJ0ZXh0LWF1dG9zcGFjZTpub25lIj48c3BhbiBz dHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyBjaGFyIGN0cmxyX25hbWVbTUFYX0NUUkxSX05BTUVdOzxvOnA+PC9vOnA+PC9z cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJ0ZXh0LWF1dG9zcGFjZTpub25l Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyBzdHJ1Y3QgbnNfZW50cnkmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgKm5leHQ7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z b05vcm1hbCIgc3R5bGU9InRleHQtYXV0b3NwYWNlOm5vbmUiPjxzcGFuIHN0eWxlPSJmb250LWZh bWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0 cnVjdCBzcGRrX252bWVfcXBhaXImbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKnFwYWlyWzVdOzxv OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm b250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7IGludCBxcGFpcl9hbGxvY2F0ZWQ7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1 b3Q7Ij59PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj48bzpwPjwvbzpwPjwvc3Bh bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+ PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g c3R5bGU9ImNvbG9yOiMxRjQ5N0QiPlRoYW5rcyw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+U3JlZW5pPG86cD48 L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGEgbmFtZT0iX01haWxFbmRD b21wb3NlIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3Nw YW4+PC9hPjwvcD4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNv bGlkICNFMUUxRTEgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIj48Yj5Gcm9tOjwvYj4gU1BESyBbbWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4w MS5vcmddIDxiPk9uIEJlaGFsZiBPZg0KPC9iPkx1c2UsIFBhdWwgRTxicj4NCjxiPlNlbnQ6PC9i PiBGcmlkYXksIE5vdmVtYmVyIDE3LCAyMDE3IDExOjAyIEFNPGJyPg0KPGI+VG86PC9iPiBTdG9y YWdlIFBlcmZvcm1hbmNlIERldmVsb3BtZW50IEtpdCAmbHQ7c3Bka0BsaXN0cy4wMS5vcmcmZ3Q7 PGJyPg0KPGI+U3ViamVjdDo8L2I+IFJlOiBbU1BES10gUmVnYXJkaW5nIE5WTWUgZHJpdmVyIGNv bW1hbmQgcXVldWUgZGVwdGguPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+Q29vbCwgc28gd29ya2luZyBhcyB5b3Ugd291 bGQgZXhwZWN0IG5vdz88bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9w Pg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0UxRTFF MSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi PjxhIG5hbWU9Il9fX19fcmVwbHlzZXBhcmF0b3IiPjwvYT48Yj5Gcm9tOjwvYj4gU1BESyBbPGEg aHJlZj0ibWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmciPm1haWx0bzpzcGRrLWJvdW5j ZXNAbGlzdHMuMDEub3JnPC9hPl0NCjxiPk9uIEJlaGFsZiBPZiA8L2I+U3JlZW5pIChTcmVlbml2 YXNhKSBCdXNhbSAoU3RlbGx1cyk8YnI+DQo8Yj5TZW50OjwvYj4gRnJpZGF5LCBOb3ZlbWJlciAx NywgMjAxNyAxMTo1MiBBTTxicj4NCjxiPlRvOjwvYj4gU3RvcmFnZSBQZXJmb3JtYW5jZSBEZXZl bG9wbWVudCBLaXQgJmx0OzxhIGhyZWY9Im1haWx0bzpzcGRrQGxpc3RzLjAxLm9yZyI+c3Bka0Bs aXN0cy4wMS5vcmc8L2E+Jmd0Ozxicj4NCjxiPlN1YmplY3Q6PC9iPiBSZTogW1NQREtdIFJlZ2Fy ZGluZyBOVk1lIGRyaXZlciBjb21tYW5kIHF1ZXVlIGRlcHRoLjxvOnA+PC9vOnA+PC9wPg0KPC9k aXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0K PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPkhpIEppbSw8 bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z b05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPlRoYW5rcyBmb3IgdGFraW5nIGEg bG9vayBhdCB0aGUgcHJvYmxlbS4gSXQgaXMgYSBsb2dpY2FsIGJ1Zy4gSSBmaXhlZCBpdC4NCjxv OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJj b2xvcjojMUY0OTdEIj5UaGUgbWVtb3J5IGZvciB0aGUgcXBhaXIgd2FzIGFsbG9jYXRlZCBvdXRz aWRlIHRoZSBuc19lbnRyeSBsb29wLg0KPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPkkgaGF2ZSB0d28gU1NEIGRl dmljZXMgYW5kIHRoZSBtZW1vcnkgd2FzIG5vdCBhbGxvY2F0ZWQgZm9yIHRoZSBxcGFpciBmb3Ig c2Vjb25kIG5zX2VudHJ5LjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5IZXJlIGlzIHRoZSBwcm9ibGVtLjxvOnA+ PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJ0ZXh0LWF1dG9z cGFjZTpub25lIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVv dDsiPm5zX2VudHJ5ID0gZ19uYW1lc3BhY2VzOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJ0ZXh0LWF1dG9zcGFjZTpub25lIj48c3BhbiBzdHlsZT0i Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOw0KPGI+bnNfZW50cnktJmd0O3FwYWlyXzIgPSBzcGRrX252bWVfY3RybHJfYWxsb2NfaW9f cXBhaXIobnNfZW50cnktJmd0O2N0cmxyLCBOVUxMLCAwKTs8bzpwPjwvbzpwPjwvYj48L3NwYW4+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9InRleHQtYXV0b3NwYWNlOm5vbmUiPjxz cGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7IGlmIChuc19lbnRyeS0mZ3Q7cXBhaXJfMiA9PSBOVUxMKSB7PG86cD48 L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9InRleHQtYXV0b3Nw YWNlOm5vbmUiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90 OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7IHByaW50ZigmcXVvdDtUaGUgcXBhaXIgYWxsb2NhdGlvbiBmYWlsZWQuXG4mcXVvdDsp OzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJ0ZXh0 LWF1dG9zcGFjZTpub25lIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBO ZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyBleGl0ICgwKTs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIiBzdHlsZT0idGV4dC1hdXRvc3BhY2U6bm9uZSI+PHNwYW4gc3R5bGU9ImZvbnQt ZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg fTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl PSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7IHdoaWxlIChuc19lbnRyeSAhPSBOVUxMKSB7PG86cD48L286cD48L3NwYW4+PC9wPg0K PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9InRleHQtYXV0b3NwYWNlOm5vbmUiPjxzcGFuIHN0 eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNudCA9IDE7PG86 cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9InRleHQtYXV0 b3NwYWNlOm5vbmUiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZx dW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7IHdoaWxlIChjbnQpIHs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIiBzdHlsZT0idGV4dC1hdXRvc3BhY2U6bm9uZSI+PHNwYW4gc3R5bGU9ImZvbnQt ZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgLy8gRmFpbHMgdG8gYmUgc3VjY2Vz c2Z1bGx5IHN1Ym1pdDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi IHN0eWxlPSJ0ZXh0LWF1dG9zcGFjZTpub25lIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1 b3Q7Q291cmllciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBy YyA9IHN0ZWxsdXNfc3Bka19udm1lX25zX2NtZF93cml0ZShuc19lbnRyeSwgbnNfZW50cnktJmd0 O3FwYWlyXzIsIHNlcXVlbmNlLSZndDtidWYsPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCIgc3R5bGU9InRleHQtYXV0b3NwYWNlOm5vbmUiPjxzcGFuIHN0eWxlPSJm b250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 ICZuYnNwOyZuYnNwOyZuYnNwOyAwLCAvKiBMQkEgc3RhcnQgKi88bzpwPjwvbzpwPjwvc3Bhbj48 L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0idGV4dC1hdXRvc3BhY2U6bm9uZSI+PHNw YW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij4mbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7IDEsIC8qIG51bWJlciBvZiBMQkFzICovPG86 cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZv bnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlvX2NvbXBsZXRlLCBzZXF1ZW5jZSwgMCk8bzpwPjwvbzpwPjwv c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6 JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyDigKYuPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xv cjojMUY0OTdEIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48 c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0K PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5i c3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJj b2xvcjojMUY0OTdEIj5TcmVlbmk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv Tm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3Nw YW4+PC9wPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQg I0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGluIj4NCjxwIGNsYXNzPSJNc29O b3JtYWwiPjxiPkZyb206PC9iPiBTUERLIFs8YSBocmVmPSJtYWlsdG86c3Bkay1ib3VuY2VzQGxp c3RzLjAxLm9yZyI+bWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmc8L2E+XQ0KPGI+T24g QmVoYWxmIE9mIDwvYj5IYXJyaXMsIEphbWVzIFI8YnI+DQo8Yj5TZW50OjwvYj4gRnJpZGF5LCBO b3ZlbWJlciAxNywgMjAxNyA4OjQ0IEFNPGJyPg0KPGI+VG86PC9iPiBTdG9yYWdlIFBlcmZvcm1h bmNlIERldmVsb3BtZW50IEtpdCAmbHQ7PGEgaHJlZj0ibWFpbHRvOnNwZGtAbGlzdHMuMDEub3Jn Ij5zcGRrQGxpc3RzLjAxLm9yZzwvYT4mZ3Q7PGJyPg0KPGI+U3ViamVjdDo8L2I+IFJlOiBbU1BE S10gUmVnYXJkaW5nIE5WTWUgZHJpdmVyIGNvbW1hbmQgcXVldWUgZGVwdGguPG86cD48L286cD48 L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286 cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5IaSBTcmVlbmksPG86cD48L286cD48L3A+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiPkNhbiB5b3Ugc3RlcCB0aHJvdWdoIHlvdXIgc2Vjb25kIGNhbGwgdG8gc3Bka19udm1l X2N0cmxyX2FsbG9jX2lvX3FwYWlyPyZuYnNwOyBUaGUgY2FsbHN0YWNrIGNsZWFybHkgc2hvd3Mg dGhhdCBxcGFpcj0weDAgd2FzIHBhc3NlZCBpbnRvIHN0ZWxsdXNfc3Bka19udm1lX25zX2NtZF93 cml0ZSgpIGF0IGZyYW1lICMzLiZuYnNwOyBTbyBJIHRoaW5rIHdlIHNob3VsZCBiYWNrIHVwIGFu ZCBmaWd1cmUgb3V0IHdoeSBubyBJL08gcXBhaXINCiB3YXMgYWxsb2NhdGVkIChvciBtYXliZSBp dCB3YXMgYWxsb2NhdGVkIGJ1dCBub3Qgc2F2ZWQgaW4gYSBzdHJ1Y3R1cmUgb3Igc29tZXRoaW5n KS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+LUppbTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48 bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6 c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGluIj4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48Yj48c3BhbiBzdHlsZT0iY29s b3I6YmxhY2siPkZyb206IDwvc3Bhbj4NCjwvYj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPlNQ REsgJmx0OzxhIGhyZWY9Im1haWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnIj5zcGRrLWJv dW5jZXNAbGlzdHMuMDEub3JnPC9hPiZndDsgb24gYmVoYWxmIG9mICZxdW90O1NyZWVuaSAoU3Jl ZW5pdmFzYSkgQnVzYW0gKFN0ZWxsdXMpJnF1b3Q7ICZsdDs8YSBocmVmPSJtYWlsdG86cy5idXNh bUBzdGVsbHVzLmNvbSI+cy5idXNhbUBzdGVsbHVzLmNvbTwvYT4mZ3Q7PGJyPg0KPGI+UmVwbHkt VG86IDwvYj5TdG9yYWdlIFBlcmZvcm1hbmNlIERldmVsb3BtZW50IEtpdCAmbHQ7PGEgaHJlZj0i bWFpbHRvOnNwZGtAbGlzdHMuMDEub3JnIj5zcGRrQGxpc3RzLjAxLm9yZzwvYT4mZ3Q7PGJyPg0K PGI+RGF0ZTogPC9iPlRodXJzZGF5LCBOb3ZlbWJlciAxNiwgMjAxNyBhdCA0OjU3IFBNPGJyPg0K PGI+VG86IDwvYj5TdG9yYWdlIFBlcmZvcm1hbmNlIERldmVsb3BtZW50IEtpdCAmbHQ7PGEgaHJl Zj0ibWFpbHRvOnNwZGtAbGlzdHMuMDEub3JnIj5zcGRrQGxpc3RzLjAxLm9yZzwvYT4mZ3Q7PGJy Pg0KPGI+U3ViamVjdDogPC9iPlJlOiBbU1BES10gUmVnYXJkaW5nIE5WTWUgZHJpdmVyIGNvbW1h bmQgcXVldWUgZGVwdGguPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0O2NvbG9y OmJsYWNrIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4gc3R5bGU9ImZvbnQtZmFt aWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyxzZXJpZiI+PG86cD4mbmJzcDs8L286cD48 L3NwYW4+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxl ZnQ6LjVpbiI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPkkgaGF2ZSBiZWVuIHRyeWluZyB0 byB0ZXN0IHRoZSBudW1iZXIgb2YgY29tbWFuZHMgdGhhdCBjYW4gYmUgZ2l2ZW4gdG8gdGhlIGRl dmljZSBhdCBhIHRpbWUuIEkgdmVyaWZpZWQgdGhhdCBhIG1heGltdW0gb2YgMjU0IGNvbW1hbmRz IGNvdWxkIGJlIGlzc3VlZCBmb3IgYSBxcGFpci4gU28gSSBjcmVhdGVkIGEgMjxzdXA+bmQ8L3N1 cD4NCiBxcGFpciBmb3IgbnNfZW50cnkgYW5kIGlzc3VlZCB0aGUgSS9PIGNvbW1hbmRzLCBpdCB3 YXMgZmFpbGluZyBpbiB0aGUgZmlyc3QgY29tbWFuZCBpdHNlbGYuIElzIGl0IGludmFsaWQgdG8g Y3JlYXRlIDIgcXBhaXIgZm9yIHRoZSBzYW1lIG5zX2VudHJ5IGFuZCBzZW5kIGNvbW1hbmQgdG8g ZGV2aWNlPyBUaGUgcXBhaXIgaXMgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQsIGJ1dCBJIGNvdWxkIG5v dCBzdWJtaXQgY29tbWFuZC48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0Qi PkkgbW9kaWZpZWQgdGhlIGhlbGxvX3dvcmxkIHByb2dyYW0gdG8gdGVzdCB0aGlzIGFuZCBhdHRh Y2hlZCB0aGUgcmVsYXRlZCBjb2RlLiAmbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBj bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4gc3R5bGU9ImNv bG9yOiMxRjQ5N0QiPlBsZWFzZSB0YWtlIGEgbG9vayBhbmQgbGV0IG1lIGtub3cgd2hhdCBpcyB0 aGUgcHJvYmxlbS48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz dHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNw Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJn aW4tbGVmdDouNWluO3RleHQtYXV0b3NwYWNlOm5vbmUiPjxzcGFuIHN0eWxlPSJmb250LWZhbWls eTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+MHgwMDAwMDAwMDAwNDBiYWUyIGluIG52bWVfYWxs b2NhdGVfcmVxdWVzdCAocXBhaXI9MHgwLDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluO3RleHQtYXV0b3NwYWNlOm5vbmUi PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7 Jm5ic3A7Jm5ic3A7IHBheWxvYWQ9MHg3ZmZmYTQ3MjZiYTAsIHBheWxvYWRfc2l6ZT01MTIsIGNi X2ZuPTB4NDA0MWE0ICZsdDt3cml0ZV9jb21wbGV0ZSZndDssPC9zcGFuPjxvOnA+PC9vOnA+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW47dGV4dC1hdXRv c3BhY2U6bm9uZSI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1 b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsgY2JfYXJnPTB4N2I0MjcwKSBhdCBudm1lLmM6ODU8L3Nw YW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxl ZnQ6LjVpbjt0ZXh0LWF1dG9zcGFjZTpub25lIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1 b3Q7Q291cmllciBOZXcmcXVvdDsiPiMxJm5ic3A7IDB4MDAwMDAwMDAwMDQwOTk2YyBpbiBfbnZt ZV9uc19jbWRfcncgKG5zPTB4MTAwZmY4ZWU0MCwgcXBhaXI9MHgwLDwvc3Bhbj48bzpwPjwvbzpw PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluO3RleHQt YXV0b3NwYWNlOm5vbmUiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5l dyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHBheWxvYWQ9MHg3ZmZmYTQ3MjZiYTAsIHBheWxv YWRfb2Zmc2V0PTAsIG1kX29mZnNldD0wLCBsYmE9MCwgbGJhX2NvdW50PTEsPC9zcGFuPjxvOnA+ PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW47 dGV4dC1hdXRvc3BhY2U6bm9uZSI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NvdXJp ZXIgTmV3JnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsgY2JfZm49MHg0MDQxYTQgJmx0O3dyaXRl X2NvbXBsZXRlJmd0OywgY2JfYXJnPTB4N2I0MjcwLCBvcGM9MSwgaW9fZmxhZ3M9MCw8L3NwYW4+ PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6 LjVpbjt0ZXh0LWF1dG9zcGFjZTpub25lIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7 Q291cmllciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyBhcHB0YWdfbWFzaz0wLCBhcHB0 YWc9MCwgY2hlY2tfc2dsPXRydWUpIGF0IG52bWVfbnNfY21kLmM6NDQwPC9zcGFuPjxvOnA+PC9v OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW47dGV4 dC1hdXRvc3BhY2U6bm9uZSI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIg TmV3JnF1b3Q7Ij4jMiZuYnNwOyAweDAwMDAwMDAwMDA0MDlmZWEgaW4gc3Bka19udm1lX25zX2Nt ZF93cml0ZSAobnM9MHgxMDBmZjhlZTQwLCBxcGFpcj0weDAsPC9zcGFuPjxvOnA+PC9vOnA+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW47dGV4dC1hdXRv c3BhY2U6bm9uZSI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1 b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsgYnVmZmVyPTB4MTAwMDBmNzAwMCwgbGJhPTAsIGxiYV9j b3VudD0xLCBjYl9mbj0weDQwNDFhNCAmbHQ7d3JpdGVfY29tcGxldGUmZ3Q7LDwvc3Bhbj48bzpw PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWlu O3RleHQtYXV0b3NwYWNlOm5vbmUiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3Vy aWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNiX2FyZz0weDdiNDI3MCwgaW9fZmxh Z3M9MCkgYXQgbnZtZV9uc19jbWQuYzo2NDk8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbjt0ZXh0LWF1dG9zcGFjZTpub25l Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiMzJm5i c3A7IDB4MDAwMDAwMDAwMDQwNDM5ZCBpbiBzdGVsbHVzX3NwZGtfbnZtZV9uc19jbWRfd3JpdGUg KG5zX2VudHJ5PTB4N2IxM2MwLDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluO3RleHQtYXV0b3NwYWNlOm5vbmUiPjxzcGFu IHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7 Jm5ic3A7IHFwYWlyPTB4MCwgYnVmZmVyPTB4MTAwMDBmNzAwMCwgbGJhPTAsIGxiYV9jb3VudD0x LDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJn aW4tbGVmdDouNWluO3RleHQtYXV0b3NwYWNlOm5vbmUiPjxzcGFuIHN0eWxlPSJmb250LWZhbWls eTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNiX2ZuPTB4NDA0 MjBkICZsdDtpb19jb21wbGV0ZSZndDssIGNiX2FyZz0weDdiNDI3MCwgaW9mbGFncz0wKSBhdCBp b3N0YXQuYzoyMzM8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz dHlsZT0ibWFyZ2luLWxlZnQ6LjVpbjt0ZXh0LWF1dG9zcGFjZTpub25lIj48c3BhbiBzdHlsZT0i Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiM0Jm5ic3A7IDB4MDAwMDAwMDAw MDQwNDZiOCBpbiB0ZXN0X2lvX2Z1bmMxICgpIGF0IGlvc3RhdC5jOjM0Mjwvc3Bhbj48bzpwPjwv bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluO3Rl eHQtYXV0b3NwYWNlOm5vbmUiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVy IE5ldyZxdW90OyI+IzUmbmJzcDsgMHgwMDAwMDAwMDAwNDA0YTk0IGluIG1haW4gKGFyZ2M9MSwg YXJndj0weDdmZmZhNDcyNmRiOCkgYXQgaW9zdGF0LmM6NTAzPC9zcGFuPjxvOnA+PC9vOnA+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW47dGV4dC1hdXRv c3BhY2U6bm9uZSI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1 b3Q7Ij4oZ2RiKSBmIDM8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs IiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbjt0ZXh0LWF1dG9zcGFjZTpub25lIj48c3BhbiBzdHls ZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiMzJm5ic3A7IDB4MDAwMDAw MDAwMDQwNDM5ZCBpbiBzdGVsbHVzX3NwZGtfbnZtZV9uc19jbWRfd3JpdGUgKG5zX2VudHJ5PTB4 N2IxM2MwLDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl PSJtYXJnaW4tbGVmdDouNWluO3RleHQtYXV0b3NwYWNlOm5vbmUiPjxzcGFuIHN0eWxlPSJmb250 LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHFwYWly PTB4MCwgYnVmZmVyPTB4MTAwMDBmNzAwMCwgbGJhPTAsIGxiYV9jb3VudD0xLDwvc3Bhbj48bzpw PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWlu O3RleHQtYXV0b3NwYWNlOm5vbmUiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3Vy aWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNiX2ZuPTB4NDA0MjBkICZsdDtpb19j b21wbGV0ZSZndDssIGNiX2FyZz0weDdiNDI3MCwgaW9mbGFncz0wKSBhdCBpb3N0YXQuYzoyMzM8 L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2lu LWxlZnQ6LjVpbjt0ZXh0LWF1dG9zcGFjZTpub25lIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6 JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPjIzMyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByYyA9IHNwZGtfbnZtZV9uc19jbWRf d3JpdGUobnNfZW50cnktJmd0O25zLCBxcGFpciwgYnVmZmVyLDwvc3Bhbj48bzpwPjwvbzpwPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluO3RleHQtYXV0 b3NwYWNlOm5vbmUiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZx dW90OyI+KGdkYikgcCBxcGFpcjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6 JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiQxID0gKHN0cnVjdCBzcGRrX252bWVfcXBhaXIgKikg MHgwPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1h cmdpbi1sZWZ0Oi41aW4iPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+ PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6 LjVpbiI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPklmIGFueSBvZiB5b3UgZ2V0IHRpbWUs IHBsZWFzZSBsb29rIGF0IGl0LiBUaGFuayB5b3UgZm9yIHlvdXIgc3VnZ2VzdGlvbi4NCjwvc3Bh bj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVm dDouNWluIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9v OnA+PC9wPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQg I0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGluIj4NCjxwIGNsYXNzPSJNc29O b3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48Yj5Gcm9tOjwvYj4gU1BESyBbPGEgaHJl Zj0ibWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmciPm1haWx0bzpzcGRrLWJvdW5jZXNA bGlzdHMuMDEub3JnPC9hPl0NCjxiPk9uIEJlaGFsZiBPZiA8L2I+U3JlZW5pIChTcmVlbml2YXNh KSBCdXNhbSAoU3RlbGx1cyk8YnI+DQo8Yj5TZW50OjwvYj4gVGh1cnNkYXksIE5vdmVtYmVyIDE2 LCAyMDE3IDExOjI2IEFNPGJyPg0KPGI+VG86PC9iPiA8YSBocmVmPSJtYWlsdG86c3Bka0BsaXN0 cy4wMS5vcmciPnNwZGtAbGlzdHMuMDEub3JnPC9hPjxicj4NCjxiPlN1YmplY3Q6PC9iPiBbU1BE S10gUmVnYXJkaW5nIE5WTWUgZHJpdmVyIGNvbW1hbmQgcXVldWUgZGVwdGguPG86cD48L286cD48 L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1s ZWZ0Oi41aW4iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5 bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPkhpIFBhdWwsPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+Jm5ic3A7PG86cD48L286cD48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+SSB3YXMgcmVh ZGluZyBhYm91dCB0aGUgZHJpdmVyIGZyb20gU1BESyBzaXRlLCBhbmQgaW50ZXJlc3RlZCBpbiB1 bmRlcnN0YW5kaW5nIHRoZSBxdWV1ZSBkZXB0aCBmb3IgYSBkZXZpY2UuPG86cD48L286cD48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4gc3R5 bGU9ImZvbnQtc2l6ZToxMy41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1z ZXJpZjtjb2xvcjojMzMzMzMzO2JhY2tncm91bmQ6d2hpdGUiPuKAnFRoZSBzcGVjaWZpY2F0aW9u IGFsbG93cyBmb3IgdGhvdXNhbmRzLCBidXQgbW9zdCBkZXZpY2VzIHN1cHBvcnQgYmV0d2VlbiAz MiBhbmQgMTI4LiBUaGUgc3BlY2lmaWNhdGlvbiBtYWtlcyBubyBndWFyYW50ZWVzDQogYWJvdXQg dGhlIHBlcmZvcm1hbmNlIGF2YWlsYWJsZSBmcm9tIGVhY2ggcXVldWUgcGFpciwgYnV0IGluIHBy YWN0aWNlIHRoZSBmdWxsIHBlcmZvcm1hbmNlIG9mIGEgZGV2aWNlIGlzIGFsbW9zdCBhbHdheXMg YWNoaWV2YWJsZSB1c2luZyBqdXN0IG9uZSBxdWV1ZSBwYWlyLiBGb3IgZXhhbXBsZSwgaWYgYSBk ZXZpY2UgY2xhaW1zIHRvIGJlIGNhcGFibGUgb2YgNDUwLDAwMCBJL08gcGVyIHNlY29uZCBhdCBx dWV1ZSBkZXB0aCAxMjgsIGluIHByYWN0aWNlDQogaXQgZG9lcyBub3QgbWF0dGVyIGlmIHRoZSBk cml2ZXIgaXMgdXNpbmcgNCBxdWV1ZSBwYWlycyBlYWNoIHdpdGggcXVldWUgZGVwdGggMzIsIG9y IGEgc2luZ2xlIHF1ZXVlIHBhaXIgd2l0aCBxdWV1ZSBkZXB0aCAxMjjigJ08L3NwYW4+PG86cD48 L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+ V2hlbiBxdWV1ZSBkZXB0aCBpcyBtZW50aW9uZWQgZm9yIGRldmljZSwgaXMgaXQgdGhlIG51bWJl ciBvZiBjb21tYW5kcyB0aGF0IGNhbiBiZSBpc3N1ZWQgZnJvbSBhcHBsaWNhdGlvbiB0byBjb250 cm9sbGVyLCBhbmQgb3V0c3RhbmRpbmcgYXQgYW55IHRpbWU/DQo8bzpwPjwvbzpwPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj5JcyB0aGVyZSBOVk1l IGRyaXZlciBBUEkgdG8gc2V0IHRoZSBxdWV1ZSBkZXB0aD8gSXMgbXkgdW5kZXJzdGFuZGluZyBj b3JyZWN0IGlmIEkgdGhpbmsgdGhhdCB0aGUgc2l6ZSBvZiBxdWV1ZSBpcyBhdCBmaXJtd2FyZSBs ZXZlbD8NCjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdp bi1sZWZ0Oi41aW4iPlBsZWFzZSBnaXZlIHNvbWUgZGV0YWlsIGFib3V0IHRoZSBwYXJhbWV0ZXIu PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6 LjVpbiI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i bWFyZ2luLWxlZnQ6LjVpbiI+VGhhbmtzLDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v cm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPlNyZWVuaTxvOnA+PC9vOnA+PC9wPg0KPC9k aXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo= --===============4709472480281436318==--