PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0lURVJBVElPTjwvdGl0bGU+Cgk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9zdHlsZXMuY3NzIj4KPC9oZWFkPgo8Ym9keT4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAgMHB4OyI+CgkJVGhlIDxiPkJPT1NUX1BQX0lURVJBVElPTjwvYj4gbWFjcm8gZXhwYW5kcyB0byB0aGUgaXRlcmF0aW9uIHZhbHVlIG9mIHRoZSBjdXJyZW50IDxpPmZpbGUtaXRlcmF0aW9uPC9pPiBkZXB0aC4KCTwvZGl2PgoJPGg0PlVzYWdlPC9oND4KCQk8ZGl2IGNsYXNzPSJjb2RlIj4KCQkJPGI+Qk9PU1RfUFBfSVRFUkFUSU9OPC9iPigpCgkJPC9kaXY+Cgk8aDQ+UmVtYXJrczwvaDQ+CgkJPGRpdj4KCQkJVGhpcyBtYWNybyBpcyBvbmx5IHZhbGlkIHdoZW4gYSA8aT5maWxlLWl0ZXJhdGlvbjwvaT4gaXMgaW4gcHJvZ3Jlc3MuCgkJPC9kaXY+Cgk8aDQ+UmVxdWlyZW1lbnRzPC9oND4KCQk8ZGl2PgoJCQk8Yj5IZWFkZXI6PC9iPiAmbmJzcDs8YSBocmVmPSIuLi9oZWFkZXJzL2l0ZXJhdGlvbi9pdGVyYXRlLmh0bWwiPiZsdDtib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2l0ZXJhdGUuaHBwJmd0OzwvYT4KCQk8L2Rpdj4KCTxoND5TYW1wbGUgQ29kZTwvaDQ+CjxkaXY+PHByZT4KLy8gZmlsZS5oCiNpZiAhPGEgaHJlZj0iaXNfaXRlcmF0aW5nLmh0bWwiPkJPT1NUX1BQX0lTX0lURVJBVElORzwvYT4KCiAgICNpZm5kZWYgRklMRV9IXwogICAjZGVmaW5lIEZJTEVfSF8KCiAgICNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL2l0ZXJhdGlvbi9pdGVyYXRlLmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vaXRlcmF0ZS5ocHA8L2E+Jmd0OwoKICAgI2RlZmluZSA8YSBocmVmPSJpdGVyYXRpb25fcGFyYW1zX3guaHRtbCI+Qk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xPC9hPiAoMywgKDEsIDMsICJmaWxlLmgiKSkKICAgI2luY2x1ZGUgPGEgaHJlZj0iaXRlcmF0ZS5odG1sIj5CT09TVF9QUF9JVEVSQVRFPC9hPigpCgogICAjZW5kaWYKCiNlbGlmIDxhIGhyZWY9Iml0ZXJhdGlvbl9kZXB0aC5odG1sIj5CT09TVF9QUF9JVEVSQVRJT05fREVQVEg8L2E+KCkgPT0gMQoKICAgdmFsdWUgPT0gPGEgaHJlZj0iaXRlcmF0aW9uLmh0bWwiPkJPT1NUX1BQX0lURVJBVElPTjwvYT4oKQoKI2VuZGlmCjwvcHJlPjwvZGl2PgoJPGhyIHNpemU9IjEiPgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxpPqkgQ29weXJpZ2h0IDxhIGhyZWY9Imh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tIiB0YXJnZXQ9Il90b3AiPkhvdXNlbWFycXVlIE95PC9hPiAyMDAyPC9pPgoJCTwvYnI+PGk+qSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDI8L2k+Cgk8L2Rpdj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8cD48c21hbGw+RGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCgkJYWNjb21wYW55aW5nIGZpbGUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vTElDRU5TRV8xXzAudHh0Ij5MSUNFTlNFXzFfMC50eHQ8L2E+IG9yCgkJY29weSBhdCA8YSBocmVmPQoJCSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiPnd3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPik8L3NtYWxsPjwvcD4KCTwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K