PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0RJVl9EPC90aXRsZT4KCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3N0eWxlcy5jc3MiPgo8L2hlYWQ+Cjxib2R5PgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6ICAwcHg7Ij4KCQlUaGUgPGI+Qk9PU1RfUFBfRElWX0Q8L2I+IG1hY3JvIGV4cGFuZHMgdG8gdGhlIHF1b3RpZW50IG9mIGl0cyBzZWNvbmQgYW5kIHRoaXJkIGFyZ3VtZW50cy4mbmJzcDsKCQlJdCByZWVudGVycyA8Yj5CT09TVF9QUF9XSElMRTwvYj4gd2l0aCBtYXhpbXVtIGVmZmljaWVuY3kuCgk8L2Rpdj4KCTxoND5Vc2FnZTwvaDQ+CgkJPGRpdiBjbGFzcz0iY29kZSI+CgkJCTxiPkJPT1NUX1BQX0RJVl9EPC9iPig8aT5kPC9pPiwgPGk+eDwvaT4sIDxpPnk8L2k+KQoJCTwvZGl2PgoJPGg0PkFyZ3VtZW50czwvaDQ+CgkJPGRsPgoJCQk8ZHQ+ZDwvZHQ+CgkJCTxkZD4KCQkJCVRoZSBuZXh0IGF2YWlsYWJsZSA8Yj5CT09TVF9QUF9XSElMRTwvYj4gaXRlcmF0aW9uLiZuYnNwOwoJCQk8L2RkPgoJCQk8ZHQ+eDwvZHQ+CgkJCTxkZD4KCQkJCVRoZSBkaXZpZGVuZCAobnVtZXJhdG9yKSBvZiB0aGUgb3BlcmF0aW9uLiZuYnNwOwoJCQkJVmFsaWQgdmFsdWVzIHJhbmdlIGZyb20gPGk+MDwvaT4gdG8gPGI+Qk9PU1RfUFBfTElNSVRfTUFHPC9iPi4KCQkJPC9kZD4KCQkJPGR0Pnk8L2R0PgoJCQk8ZGQ+CgkJCQlUaGUgZGl2aXNvciAoZGVub21pbmF0b3IpIG9mIHRoZSBvcGVyYXRpb24uJm5ic3A7CgkJCQlWYWxpZCB2YWx1ZXMgcmFuZ2UgZnJvbSA8aT4xPC9pPiB0byA8Yj5CT09TVF9QUF9MSU1JVF9NQUc8L2I+LgoJCQk8L2RkPgoJCTwvZGw+Cgk8aDQ+UmVtYXJrczwvaDQ+CgkJPGRpdj4KCQkJSWYgPGk+eTwvaT4gaXMgPGk+MDwvaT4sIHRoZSByZXN1bHQgaXMgdW5kZWZpbmVkLgoJCTwvZGl2PgoJPGg0PlNlZSBBbHNvPC9oND4KCQk8dWw+CgkJCTxsaT48YSBocmVmPSJkaXYuaHRtbCI+Qk9PU1RfUFBfRElWPC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJsaW1pdF9tYWcuaHRtbCI+Qk9PU1RfUFBfTElNSVRfTUFHPC9hPjwvbGk+CgkJPC91bD4KCTxoND5SZXF1aXJlbWVudHM8L2g0PgoJCTxkaXY+CgkJCTxiPkhlYWRlcjo8L2I+ICZuYnNwOzxhIGhyZWY9Ii4uL2hlYWRlcnMvYXJpdGhtZXRpYy9kaXYuaHRtbCI+Jmx0O2Jvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2Rpdi5ocHAmZ3Q7PC9hPgoJCTwvZGl2PgoJPGg0PlNhbXBsZSBDb2RlPC9oND4KPGRpdj48cHJlPgojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9hcml0aG1ldGljL2RlYy5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9kZWMuaHBwPC9hPiZndDsKI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvYXJpdGhtZXRpYy9kaXYuaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvZGl2LmhwcDwvYT4mZ3Q7CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL2NvbnRyb2wvd2hpbGUuaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvd2hpbGUuaHBwPC9hPiZndDsKI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvdHVwbGUvZWxlbS5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHA8L2E+Jmd0OwoKI2RlZmluZSBQUkVEKGQsIGRhdGEpIDxhIGhyZWY9InR1cGxlX2VsZW0uaHRtbCI+Qk9PU1RfUFBfVFVQTEVfRUxFTTwvYT4oMiwgMCwgZGF0YSkKCiNkZWZpbmUgT1AoZCwgZGF0YSkgXAogICAoIFwKICAgICAgPGEgaHJlZj0iZGVjLmh0bWwiPkJPT1NUX1BQX0RFQzwvYT4oIFwKICAgICAgICAgPGEgaHJlZj0idHVwbGVfZWxlbS5odG1sIj5CT09TVF9QUF9UVVBMRV9FTEVNPC9hPigyLCAwLCBkYXRhKSBcCiAgICAgICksIFwKICAgICAgPGEgaHJlZj0iZGl2X2QuaHRtbCI+Qk9PU1RfUFBfRElWX0Q8L2E+KCBcCiAgICAgICAgIGQsIFwKICAgICAgICAgPGEgaHJlZj0idHVwbGVfZWxlbS5odG1sIj5CT09TVF9QUF9UVVBMRV9FTEVNPC9hPigyLCAxLCBkYXRhKSwgXAogICAgICAgICAyIFwKICAgICAgKSBcCiAgICkgXAogICAvKiovCgovLyBoYWx2ZSAneCcgJ24nIHRpbWVzCiNkZWZpbmUgSEFMVkUoeCwgbikgPGEgaHJlZj0idHVwbGVfZWxlbS5odG1sIj5CT09TVF9QUF9UVVBMRV9FTEVNPC9hPigyLCAxLCA8YSBocmVmPSJ3aGlsZS5odG1sIj5CT09TVF9QUF9XSElMRTwvYT4oUFJFRCwgT1AsIChuLCB4KSkpCgpIQUxWRSg4LCAyKSAvLyBleHBhbmRzIHRvIDIKSEFMVkUoMTYsIDEpIC8vIGV4cGFuZHMgdG8gOAo8L3ByZT48L2Rpdj4KCTxociBzaXplPSIxIj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8aT6pIENvcHlyaWdodCA8YSBocmVmPSJodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbSIgdGFyZ2V0PSJfdG9wIj5Ib3VzZW1hcnF1ZSBPeTwvYT4gMjAwMjwvaT4KCQk8L2JyPjxpPqkgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyPC9pPgoJPC9kaXY+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPHA+PHNtYWxsPkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQoJCWFjY29tcGFueWluZyBmaWxlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uL0xJQ0VOU0VfMV8wLnR4dCI+TElDRU5TRV8xXzAudHh0PC9hPiBvcgoJCWNvcHkgYXQgPGEgaHJlZj0KCQkiaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0Ij53d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dDwvYT4pPC9zbWFsbD48L3A+Cgk8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==