PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0xJU1RfUkVTVF9OX0Q8L3RpdGxlPgoJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vc3R5bGVzLmNzcyI+CjwvaGVhZD4KPGJvZHk+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogIDBweDsiPgoJCVRoZSA8Yj5CT09TVF9QUF9MSVNUX1JFU1RfTl9EPC9iPiBtYWNybyBleHBhbmRzIHRvIGEgPGk+bGlzdDwvaT4gb2YgYWxsIGJ1dCB0aGUgZmlyc3QgPGk+Y291bnQ8L2k+IGVsZW1lbnRzIG9mIGEgPGk+bGlzdDwvaT4uJm5ic3A7CgkJSXQgcmVlbnRlcnMgPGI+Qk9PU1RfUFBfV0hJTEU8L2I+IHdpdGggbWF4aW11bSBlZmZpY2llbmN5LgoJPC9kaXY+Cgk8aDQ+VXNhZ2U8L2g0PgoJCTxkaXYgY2xhc3M9ImNvZGUiPgoJCQk8Yj5CT09TVF9QUF9MSVNUX1JFU1RfTl9EPC9iPig8aT5kPC9pPiwgPGk+Y291bnQ8L2k+LCA8aT5saXN0PC9pPikKCQk8L2Rpdj4KCTxoND5Bcmd1bWVudHM8L2g0PgoJCTxkbD4KCQkJPGR0PmQ8L2R0PgoJCQk8ZGQ+CgkJCQlUaGUgbmV4dCBhdmFpbGFibGUgPGI+Qk9PU1RfUFBfV0hJTEU8L2I+IGl0ZXJhdGlvbi4KCQkJPC9kZD4KCQkJPGR0PmNvdW50PC9kdD4KCQkJPGRkPgoJCQkJVGhlIG51bWJlciBvZiBlbGVtZW50cyB0byByZW1vdmUgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIDxpPmxpc3Q8L2k+LgoJCQk8L2RkPgoJCQk8ZHQ+bGlzdDwvZHQ+CgkJCTxkZD4KCQkJCVRoZSA8aT5saXN0PC9pPiBmcm9tIHdoaWNoIHRoZSBlbGVtZW50cyBhcmUgZXh0cmFjdGVkLgoJCQk8L2RkPgoJCTwvZGw+Cgk8aDQ+UmVtYXJrczwvaDQ+CgkJPGRpdj4KCQkJVGhpcyBtYWNybyByZW1vdmVzIDxpPmNvdW50PC9pPiBlbGVtZW50cyBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgPGk+bGlzdDwvaT4gYW5kIHJldHVybnMgdGhlIHJlbWFpbmRlciBhcyBhIDxpPmxpc3Q8L2k+CgkJPC9kaXY+Cgk8aDQ+U2VlIEFsc288L2g0PgoJCTx1bD4KCQkJPGxpPjxhIGhyZWY9Imxpc3RfcmVzdF9uLmh0bWwiPkJPT1NUX1BQX0xJU1RfUkVTVF9OPC9hPjwvbGk+CgkJPC91bD4KCTxoND5SZXF1aXJlbWVudHM8L2g0PgoJCTxkaXY+CgkJCTxiPkhlYWRlcjo8L2I+ICZuYnNwOzxhIGhyZWY9Ii4uL2hlYWRlcnMvbGlzdC9yZXN0X24uaHRtbCI+Jmx0O2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L3Jlc3Rfbi5ocHAmZ3Q7PC9hPgoJCTwvZGl2PgoJPGg0PlNhbXBsZSBDb2RlPC9oND4KPGRpdj48cHJlPgojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9saXN0L2ZvbGRfcmlnaHQuaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZm9sZF9yaWdodC5ocHA8L2E+Jmd0OwojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9saXN0L3Jlc3Rfbi5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9yZXN0X24uaHBwPC9hPiZndDsKCiNkZWZpbmUgTDEgKGEsIChiLCAoYywgKGQsIDxhIGhyZWY9Im5pbC5odG1sIj5CT09TVF9QUF9OSUw8L2E+KSkpKQojZGVmaW5lIEwyIChMMSwgKEwxLCAoTDEsIDxhIGhyZWY9Im5pbC5odG1sIj5CT09TVF9QUF9OSUw8L2E+KSkpCgojZGVmaW5lIE9QKGQsIHN0YXRlLCB4KSAoPGEgaHJlZj0ibGlzdF9yZXN0X25fZC5odG1sIj5CT09TVF9QUF9MSVNUX1JFU1RfTl9EPC9hPihkLCAyLCB4KSwgc3RhdGUpCgo8YSBocmVmPSJsaXN0X2ZvbGRfcmlnaHQuaHRtbCI+Qk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUPC9hPihPUCwgPGEgaHJlZj0ibmlsLmh0bWwiPkJPT1NUX1BQX05JTDwvYT4sIEwyKQovKgogICBleHBhbmRzIHRvLi4uCiAgICgoYywgKGQsIDxhIGhyZWY9Im5pbC5odG1sIj5CT09TVF9QUF9OSUw8L2E+KSksICgoYywgKGQsIDxhIGhyZWY9Im5pbC5odG1sIj5CT09TVF9QUF9OSUw8L2E+KSksCiAgICgoYywgKGQsIDxhIGhyZWY9Im5pbC5odG1sIj5CT09TVF9QUF9OSUw8L2E+KSksIDxhIGhyZWY9Im5pbC5odG1sIj5CT09TVF9QUF9OSUw8L2E+KSkpCiovCjwvcHJlPjwvZGl2PgoJPGhyIHNpemU9IjEiPgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxpPqkgQ29weXJpZ2h0IDxhIGhyZWY9Imh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tIiB0YXJnZXQ9Il90b3AiPkhvdXNlbWFycXVlIE95PC9hPiAyMDAyPC9pPgoJCTwvYnI+PGk+qSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDI8L2k+Cgk8L2Rpdj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8cD48c21hbGw+RGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCgkJYWNjb21wYW55aW5nIGZpbGUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vTElDRU5TRV8xXzAudHh0Ij5MSUNFTlNFXzFfMC50eHQ8L2E+IG9yCgkJY29weSBhdCA8YSBocmVmPQoJCSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiPnd3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPik8L3NtYWxsPjwvcD4KCTwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K