PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0xJU1RfQ0FUX0Q8L3RpdGxlPgoJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vc3R5bGVzLmNzcyI+CjwvaGVhZD4KPGJvZHk+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogIDBweDsiPgoJCVRoZSA8Yj5CT09TVF9QUF9MSVNUX0NBVF9EPC9iPiBtYWNybyBjb25jYXRlbmF0ZXMgYWxsIGVsZW1lbnRzIGluIGEgPGk+bGlzdDwvaT4uJm5ic3A7CgkJSXQgcmVlbnRlcnMgPGI+Qk9PU1RfUFBfV0hJTEU8L2I+IHdpdGggbWF4aW11bSBlZmZpY2llbmN5LgoJPC9kaXY+Cgk8aDQ+VXNhZ2U8L2g0PgoJCTxkaXYgY2xhc3M9ImNvZGUiPgoJCQk8Yj5CT09TVF9QUF9MSVNUX0NBVF9EPC9iPig8aT5kPC9pPiwgPGk+bGlzdDwvaT4pCgkJPC9kaXY+Cgk8aDQ+QXJndW1lbnRzPC9oND4KCQk8ZGw+CgkJCTxkdD5kPC9kdD4KCQkJPGRkPgoJCQkJVGhlIG5leHQgYXZhaWxhYmxlIDxiPkJPT1NUX1BQX1dISUxFPC9iPiBpdGVyYXRpb24uCgkJCTwvZGQ+CgkJCTxkdD5saXN0PC9kdD4KCQkJPGRkPgoJCQkJVGhlIDxpPmxpc3Q8L2k+IHdob3NlIGVsZW1lbnRzIGFyZSB0byBiZSBjb25jYXRlbmF0ZWQuCgkJCTwvZGQ+CgkJPC9kbD4KCTxoND5SZW1hcmtzPC9oND4KCQk8ZGl2PgoJCQlFbGVtZW50cyBhcmUgY29uY2F0ZW5hdGVkIGxlZnQtdG8tcmlnaHQgc3RhcnRpbmcgd2l0aCBpbmRleCA8aT4wPC9pPi4KCQk8L2Rpdj4KCTxoND5TZWUgQWxzbzwvaDQ+CgkJPHVsPgoJCQk8bGk+PGEgaHJlZj0ibGlzdF9jYXQuaHRtbCI+Qk9PU1RfUFBfTElTVF9DQVQ8L2E+PC9saT4KCQk8L3VsPgoJPGg0PlJlcXVpcmVtZW50czwvaDQ+CgkJPGRpdj4KCQkJPGI+SGVhZGVyOjwvYj4gJm5ic3A7PGEgaHJlZj0iLi4vaGVhZGVycy9saXN0L2NhdC5odG1sIj4mbHQ7Ym9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvY2F0LmhwcCZndDs8L2E+Cgk8L2Rpdj4KCTxoND5TYW1wbGUgQ29kZTwvaDQ+CjxkaXY+PHByZT4KI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvY2F0Lmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPC9hPiZndDsKI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvbGlzdC9jYXQuaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvY2F0LmhwcDwvYT4mZ3Q7CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL2xpc3QvZm9sZF9sZWZ0Lmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2ZvbGRfbGVmdC5ocHA8L2E+Jmd0OwoKI2RlZmluZSBMSVNUUyBcCiAgICgoYSwgKGIsIDxhIGhyZWY9Im5pbC5odG1sIj5CT09TVF9QUF9OSUw8L2E+KSksIFwKICAgICAgKChjLCAoZCwgPGEgaHJlZj0ibmlsLmh0bWwiPkJPT1NUX1BQX05JTDwvYT4pKSwgXAogICAgICAgICAoKGUsIChmLCA8YSBocmVmPSJuaWwuaHRtbCI+Qk9PU1RfUFBfTklMPC9hPikpLCBcCiAgICAgICAgICAgIDxhIGhyZWY9Im5pbC5odG1sIj5CT09TVF9QUF9OSUw8L2E+KSkpIFwKICAgLyoqLwoKI2RlZmluZSBPUChkLCBzdGF0ZSwgeCkgPGEgaHJlZj0iY2F0Lmh0bWwiPkJPT1NUX1BQX0NBVDwvYT4oc3RhdGUsIDxhIGhyZWY9Imxpc3RfY2F0X2QuaHRtbCI+Qk9PU1RfUFBfTElTVF9DQVRfRDwvYT4oZCwgeCkpCgo8YSBocmVmPSJsaXN0X2ZvbGRfbGVmdC5odG1sIj5CT09TVF9QUF9MSVNUX0ZPTERfTEVGVDwvYT4oT1AsIF8sIExJU1RTKSAvLyBleHBhbmRzIHRvIF9hYmNkZWYKPC9wcmU+PC9kaXY+Cgk8aHIgc2l6ZT0iMSI+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPGk+qSBDb3B5cmlnaHQgPGEgaHJlZj0iaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20iIHRhcmdldD0iX3RvcCI+SG91c2VtYXJxdWUgT3k8L2E+IDIwMDI8L2k+CgkJPC9icj48aT6pIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMjwvaT4KCTwvZGl2PgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxwPjxzbWFsbD5EaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKCQlhY2NvbXBhbnlpbmcgZmlsZSA8YSBocmVmPSIuLi8uLi8uLi8uLi9MSUNFTlNFXzFfMC50eHQiPkxJQ0VOU0VfMV8wLnR4dDwvYT4gb3IKCQljb3B5IGF0IDxhIGhyZWY9CgkJImh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCI+d3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQ8L2E+KTwvc21hbGw+PC9wPgoJPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=