PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX1JQQVJFTjwvdGl0bGU+Cgk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9zdHlsZXMuY3NzIj4KPC9oZWFkPgo8Ym9keT4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAgMHB4OyI+CgkJVGhlIDxiPkJPT1NUX1BQX1JQQVJFTjwvYj4gbWFjcm8gZXhwYW5kcyB0byBhIHJpZ2h0IHBhcmVudGhlc2lzLgoJPC9kaXY+Cgk8aDQ+VXNhZ2U8L2g0PgoJCTxkaXYgY2xhc3M9ImNvZGUiPgoJCQk8Yj5CT09TVF9QUF9SUEFSRU48L2I+KCkKCQk8L2Rpdj4KCTxoND5SZW1hcmtzPC9oND4KCQk8ZGl2PgoJCQlUaGUgcHJlcHJvY2Vzc29yIGludGVycHJldHMgcGFyZW50aGVzZXMgYXMgZGVsaW1pdGVycyBpbiBtYWNybyBpbnZvY2F0aW9ucy4mbmJzcDsKCQkJQmVjYXVzZSBvZiB0aGlzLCBwYXJlbnRoZXNlcyByZXF1aXJlIHNwZWNpYWwgaGFuZGxpbmcuCgkJPC9kaXY+Cgk8aDQ+U2VlIEFsc288L2g0PgoJCTx1bD4KCQkJPGxpPjxhIGhyZWY9ImxwYXJlbi5odG1sIj5CT09TVF9QUF9MUEFSRU48L2E+PC9saT4KCQk8L3VsPgoJPGg0PlJlcXVpcmVtZW50czwvaDQ+CgkJPGRpdj4KCQkJPGI+SGVhZGVyOjwvYj4gJm5ic3A7PGEgaHJlZj0iLi4vaGVhZGVycy9wdW5jdHVhdGlvbi9wYXJlbi5odG1sIj4mbHQ7Ym9vc3QvcHJlcHJvY2Vzc29yL3B1bmN0dWF0aW9uL3BhcmVuLmhwcCZndDs8L2E+CgkJPC9kaXY+Cgk8aDQ+U2FtcGxlIENvZGU8L2g0Pgo8ZGl2PjxwcmU+CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL2ZhY2lsaXRpZXMvZW1wdHkuaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvZW1wdHkuaHBwPC9hPiZndDsKI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvcHVuY3R1YXRpb24vcGFyZW4uaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL3B1bmN0dWF0aW9uL3BhcmVuLmhwcDwvYT4mZ3Q7CgojZGVmaW5lIFgoeCkgeAojZGVmaW5lIE1BQ1JPKHgsIHApIFggKCB4IHAKCk1BQ1JPKGFiYywgPGEgaHJlZj0icnBhcmVuLmh0bWwiPkJPT1NUX1BQX1JQQVJFTjwvYT4oKSkgLy8gZXhwYW5kcyB0byBhYmMKCiNkZWZpbmUgWSh4KQoKTUFDUk8oPGEgaHJlZj0iZW1wdHkuaHRtbCI+Qk9PU1RfUFBfRU1QVFk8L2E+IDxhIGhyZWY9InJwYXJlbi5odG1sIj5CT09TVF9QUF9SUEFSRU48L2E+KCkoKSwgMTApIC8vIGV4cGFuZHMgdG8gMTAKPC9wcmU+PC9kaXY+Cgk8aHIgc2l6ZT0iMSI+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPGk+qSBDb3B5cmlnaHQgPGEgaHJlZj0iaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20iIHRhcmdldD0iX3RvcCI+SG91c2VtYXJxdWUgT3k8L2E+IDIwMDI8L2k+CgkJPC9icj48aT6pIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMjwvaT4KCTwvZGl2PgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxwPjxzbWFsbD5EaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKCQlhY2NvbXBhbnlpbmcgZmlsZSA8YSBocmVmPSIuLi8uLi8uLi8uLi9MSUNFTlNFXzFfMC50eHQiPkxJQ0VOU0VfMV8wLnR4dDwvYT4gb3IKCQljb3B5IGF0IDxhIGhyZWY9CgkJImh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCI+d3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQ8L2E+KTwvc21hbGw+PC9wPgoJPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=