PGh0bWw+Cgk8aGVhZD4KCQk8dGl0bGU+Qk9PU1RfUFBfU0VRX0ZPTERfUklHSFQ8L3RpdGxlPgoJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3N0eWxlcy5jc3MiPgoJPC9oZWFkPgoJPGJvZHk+CgkJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6ICAwcHg7Ij4KCQkJVGhlIDxiPkJPT1NUX1BQX1NFUV9GT0xEX1JJR0hUPC9iPiBtYWNybyBmb2xkcyAob3IgYWNjdW11bGF0ZXMpIHRoZSBlbGVtZW50cyBvZiAKCQkJYSA8aT5zZXE8L2k+IHJpZ2h0LXRvLWxlZnQuCgkJPC9kaXY+CgkJPGg0PgoJCQlVc2FnZQoJCTwvaDQ+CgkJPGRpdiBjbGFzcz0iY29kZSI+CgkJCTxiPkJPT1NUX1BQX1NFUV9GT0xEX1JJR0hUPC9iPig8aT5vcDwvaT4sIDxpPnN0YXRlPC9pPiwgPGk+c2VxPC9pPikKCQk8L2Rpdj4KCQk8aDQ+CgkJCUFyZ3VtZW50cwoJCTwvaDQ+CgkJPGRsPgoJCQk8ZHQ+b3A8L2R0PgoJCQk8ZGQ+CgkJCQlBIHRlcm5hcnkgb3BlcmF0aW9uIG9mIHRoZSBmb3JtIDxpPm9wPC9pPig8aT5zPC9pPiwgPGk+c3RhdGU8L2k+LCA8aT5lbGVtPC9pPikuJm5ic3A7IAoJCQkJVGhpcyBtYWNybyBpcyBjYWxsZWQgZm9yIGVhY2ggZWxlbWVudCBpbiA8aT5zZXE8L2k+LS1lYWNoIHRpbWUgcmV0dXJuaW5nIGEgbmV3IDxpPnN0YXRlPC9pPi4mbmJzcDsgCgkJCQlUaGlzIG9wZXJhdGlvbiBpcyBleHBhbmRlZCBieSA8Yj5CT09TVF9QUF9TRVFfRk9MRF9SSUdIVDwvYj4gd2l0aCB0aGUgbmV4dCAKCQkJCWF2YWlsYWJsZSBmb2xkIHN0ZXAsIHRoZSBjdXJyZW50IDxpPnN0YXRlPC9pPiwgYW5kIHRoZSBjdXJyZW50IGVsZW1lbnQuCgkJCTwvZGQ+CgkJCTxkdD5zdGF0ZTwvZHQ+CgkJCTxkZD4KCQkJCVRoZSBpbml0aWFsIHN0YXRlIG9mIHRoZSBmb2xkLgoJCQk8L2RkPgoJCQk8ZHQ+c2VxPC9kdD4KCQkJPGRkPgoJCQkJVGhlIDxpPnNlcTwvaT4gdG8gYmUgZm9sZGVkLgoJCQk8L2RkPgoJCTwvZGw+CgkJPGg0PgoJCQlSZW1hcmtzCgkJPC9oND4KCQk8ZGl2PgoJCQlGb3IgdGhlIDxpPnNlcTwvaT4sICg8aT4wPC9pPikoPGk+MTwvaT4pKDxpPjI8L2k+KSwgdGhpcyBtYWNybyBleHBhbmRzIHRvOgoJCQk8ZGl2PgoJCQkJPGk+b3A8L2k+KDxpPnM8L2k+LCA8aT5vcDwvaT4oPGk+czwvaT4sIDxpPm9wPC9pPig8aT5zPC9pPiwgPGk+c3RhdGU8L2k+LCA8aT4yPC9pPiksCgkJCQk8aT4xPC9pPiksIDxpPjA8L2k+KQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCQk8ZGl2PgoJCQlGb3IgbWF4aW11bSBlZmZpY2llbmN5LCA8Yj5CT09TVF9QUF9TRVFfRk9MRF9SSUdIVDwvYj4gY2FuIGJlIHJlZW50ZXJlZCB3aXRoIDxiPkJPT1NUX1BQX1NFUV9GT0xEX1JJR0hUXzxpPnM8L2k+PC9iPi4KCQk8L2Rpdj4KCQk8aDQ+CgkJCVNlZSBBbHNvCgkJPC9oND4KCQk8dWw+CgkJCTxsaT4KCQkJCTxhIGhyZWY9InNlcV9mb2xkX3JpZ2h0X3MuaHRtbCI+Qk9PU1RfUFBfU0VRX0ZPTERfUklHSFRfPGk+czwvaT48L2E+PC9saT4KCQk8L3VsPgoJCTxoND4KCQkJUmVxdWlyZW1lbnRzCgkJPC9oND4KCQk8ZGl2PgoJCQk8Yj5IZWFkZXI6PC9iPiAmbmJzcDs8YSBocmVmPSIuLi9oZWFkZXJzL3NlcS9mb2xkX3JpZ2h0Lmh0bWwiPiZsdDtib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2ZvbGRfcmlnaHQuaHBwJmd0OzwvYT4KCQk8L2Rpdj4KCQk8aDQ+CgkJCVNhbXBsZSBDb2RlCgkJPC9oND4KCQk8ZGl2PgoJCQk8cHJlPgojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9jYXQuaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA8L2E+Jmd0OwojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9zZXEvZWxlbS5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2VsZW0uaHBwPC9hPiZndDsKI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvc2VxL2ZvbGRfcmlnaHQuaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL3NlcS9mb2xkX3JpZ2h0LmhwcDwvYT4mZ3Q7CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL3NlcS9wb3BfYmFjay5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL3BvcF9iYWNrLmhwcDwvYT4mZ3Q7CgojZGVmaW5lIFNFUSAodCkocykobykobykoYikKCiNkZWZpbmUgT1Aocywgc3RhdGUsIHgpIDxhIGhyZWY9ImNhdC5odG1sIj5CT09TVF9QUF9DQVQ8L2E+KHN0YXRlLCB4KQoKPGEgaHJlZj0ic2VxX2ZvbGRfcmlnaHQuaHRtbCI+Qk9PU1RfUFBfU0VRX0ZPTERfUklHSFQ8L2E+KE9QLCA8YSBocmVmPSJzZXFfZWxlbS5odG1sIj5CT09TVF9QUF9TRVFfRUxFTTwvYT4oNCwgU0VRKSwgPGEgaHJlZj0ic2VxX3BvcF9iYWNrLmh0bWwiPkJPT1NUX1BQX1NFUV9QT1BfQkFDSzwvYT4oU0VRKSkgLy8gZXhwYW5kcyB0byBib29zdAo8L3ByZT4KCQk8L2Rpdj4KCTxociBzaXplPSIxIj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8aT6pIENvcHlyaWdodCA8YSBocmVmPSJodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbSIgdGFyZ2V0PSJfdG9wIj5Ib3VzZW1hcnF1ZSBPeTwvYT4gMjAwMjwvaT4KCQk8L2JyPjxpPqkgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyPC9pPgoJPC9kaXY+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPHA+PHNtYWxsPkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQoJCWFjY29tcGFueWluZyBmaWxlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uL0xJQ0VOU0VfMV8wLnR4dCI+TElDRU5TRV8xXzAudHh0PC9hPiBvcgoJCWNvcHkgYXQgPGEgaHJlZj0KCQkiaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0Ij53d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dDwvYT4pPC9zbWFsbD48L3A+Cgk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPgo=