PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0xJU1RfVE9fVFVQTEVfUjwvdGl0bGU+Cgk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9zdHlsZXMuY3NzIj4KPC9oZWFkPgo8Ym9keT4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAgMHB4OyI+CgkJVGhlIDxiPkJPT1NUX1BQX0xJU1RfVE9fVFVQTEVfUjwvYj4gbWFjcm8gY29udmVydHMgYSA8aT5saXN0PC9pPiB0byBhIDxpPnR1cGxlPC9pPi4mbmJzcDsKCQlJdCByZWVudGVycyA8Yj5CT09TVF9QUF9GT1I8L2I+IHdpdGggbWF4aW11bSBlZmZpY2llbmN5LgoJPC9kaXY+Cgk8aDQ+VXNhZ2U8L2g0PgoJCTxkaXYgY2xhc3M9ImNvZGUiPgoJCQk8Yj5CT09TVF9QUF9MSVNUX1RPX1RVUExFX1I8L2I+KDxpPnI8L2k+LCA8aT5saXN0PC9pPikKCQk8L2Rpdj4KCTxoND5Bcmd1bWVudHM8L2g0PgoJCTxkbD4KCQkJPGR0PnI8L2R0PgoJCQk8ZGQ+CgkJCQlUaGUgbmV4dCBhdmFpbGFibGUgPGI+Qk9PU1RfUFBfRk9SPC9iPiByZXBldGl0aW9uLgoJCQk8L2RkPgoJCQk8ZHQ+bGlzdDwvZHQ+CgkJCTxkZD4KCQkJCVRoZSA8aT5saXN0PC9pPiB0byBiZSBjb252ZXJ0ZWQuCgkJCTwvZGQ+CgkJPC9kbD4KCTxoND5SZW1hcmtzPC9oND4KCQk8ZGl2PgoJCQlJZiA8aT5saXN0PC9pPiBpcywgZm9yIGV4YW1wbGUsICg8aT5hPC9pPiwgKDxpPmI8L2k+LCAoPGk+YzwvaT4sIDxiPkJPT1NUX1BQX05JTDwvYj4pKSksCgkJCXRoaXMgbWFjcm8gd2lsbCBwcm9kdWNlOgoJCQk8ZGl2PgoJCQkJKDxpPmE8L2k+LCA8aT5iPC9pPiwgPGk+YzwvaT4pCgkJCTwvZGl2PgoJCTwvZGl2PgoJPGg0PlNlZSBBbHNvPC9oND4KCQk8dWw+CgkJCTxsaT48YSBocmVmPSJsaXN0X3RvX3R1cGxlLmh0bWwiPkJPT1NUX1BQX0xJU1RfVE9fVFVQTEU8L2E+PC9saT4KCQk8L3VsPgoJPGg0PlJlcXVpcmVtZW50czwvaDQ+CgkJPGRpdj4KCQkJPGI+SGVhZGVyOjwvYj4gJm5ic3A7PGEgaHJlZj0iLi4vaGVhZGVycy9saXN0L3RvX3R1cGxlLmh0bWwiPiZsdDtib29zdC9wcmVwcm9jZXNzb3IvbGlzdC90b190dXBsZS5ocHAmZ3Q7PC9hPgoJCTwvZGl2PgoJPGg0PlNhbXBsZSBDb2RlPC9oND4KPGRpdj48cHJlPgojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9saXN0L2FkdC5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9hZHQuaHBwPC9hPiZndDsKI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvbGlzdC90b190dXBsZS5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC90b190dXBsZS5ocHA8L2E+Jmd0OwojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9yZXBldGl0aW9uL2Zvci5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9mb3IuaHBwPC9hPiZndDsKCiNkZWZpbmUgTElTVCAoeCwgKHksICh6LCA8YSBocmVmPSJuaWwuaHRtbCI+Qk9PU1RfUFBfTklMPC9hPikpKQoKI2RlZmluZSBQUkVEKHIsIHN0YXRlKSA8YSBocmVmPSJsaXN0X2lzX2NvbnMuaHRtbCI+Qk9PU1RfUFBfTElTVF9JU19DT05TPC9hPihzdGF0ZSkKI2RlZmluZSBPUChyLCBzdGF0ZSkgPGEgaHJlZj0ibGlzdF9yZXN0Lmh0bWwiPkJPT1NUX1BQX0xJU1RfUkVTVDwvYT4oc3RhdGUpCiNkZWZpbmUgTUFDUk8ociwgc3RhdGUpIDxhIGhyZWY9Imxpc3RfdG9fdHVwbGVfci5odG1sIj5CT09TVF9QUF9MSVNUX1RPX1RVUExFX1I8L2E+KHIsIHN0YXRlKQoKPGEgaHJlZj0iZm9yLmh0bWwiPkJPT1NUX1BQX0ZPUjwvYT4oTElTVCwgUFJFRCwgT1AsIE1BQ1JPKQogICAvLyBleHBhbmRzIHRvICh4LCB5LCB6KSAoeSwgeikgKHopCjwvcHJlPjwvZGl2PgoJPGhyIHNpemU9IjEiPgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxpPqkgQ29weXJpZ2h0IDxhIGhyZWY9Imh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tIiB0YXJnZXQ9Il90b3AiPkhvdXNlbWFycXVlIE95PC9hPiAyMDAyPC9pPgoJCTwvYnI+PGk+qSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDI8L2k+Cgk8L2Rpdj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8cD48c21hbGw+RGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCgkJYWNjb21wYW55aW5nIGZpbGUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vTElDRU5TRV8xXzAudHh0Ij5MSUNFTlNFXzFfMC50eHQ8L2E+IG9yCgkJY29weSBhdCA8YSBocmVmPQoJCSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiPnd3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPik8L3NtYWxsPjwvcD4KCTwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K