PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX01BWF9EPC90aXRsZT4KCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3N0eWxlcy5jc3MiPgo8L2hlYWQ+Cjxib2R5PgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6ICAwcHg7Ij4KCQlUaGUgPGI+Qk9PU1RfUFBfTUFYX0Q8L2I+IG1hY3JvIGV4cGFuZHMgdG8gdGhlIGdyZWF0ZXIgb2YgaXRzIHNlY29uZCBhbmQgdGhpcmQgYXJndW1lbnRzLiZuYnNwOwoJCUl0IHJlZW50ZXJzIDxiPkJPT1NUX1BQX1dISUxFPC9iPiB3aXRoIG1heGltdW0gZWZmaWNpZW5jeS4KCTwvZGl2PgoJPGg0PlVzYWdlPC9oND4KCQk8ZGl2IGNsYXNzPSJjb2RlIj4KCQkJPGI+Qk9PU1RfUFBfTUFYX0Q8L2I+KDxpPmQ8L2k+LCA8aT54PC9pPiwgPGk+eTwvaT4pCgkJPC9kaXY+Cgk8aDQ+QXJndW1lbnRzPC9oND4KCQk8ZGw+CgkJCTxkdD5kPC9kdD4KCQkJPGRkPgoJCQkJVGhlIG5leHQgYXZhaWxhYmxlIDxiPkJPT1NUX1BQX1dISUxFPC9iPiBpdGVyYXRpb24uJm5ic3A7CgkJCTwvZGQ+CgkJCTxkdD54PC9kdD4KCQkJPGRkPgoJCQkJVGhlIGZpcnN0IG9wZXJhbmQuJm5ic3A7CgkJCQlWYWxpZCB2YWx1ZXMgcmFuZ2UgZnJvbSA8aT4wPC9pPiB0byA8Yj5CT09TVF9QUF9MSU1JVF9NQUc8L2I+LgoJCQk8L2RkPgoJCQk8ZHQ+eTwvZHQ+CgkJCTxkZD4KCQkJCVRoZSBzZWNvbmQgb3BlcmFuZC4mbmJzcDsKCQkJCVZhbGlkIHZhbHVlcyByYW5nZSBmcm9tIDxpPjA8L2k+IHRvIDxiPkJPT1NUX1BQX0xJTUlUX01BRzwvYj4uCgkJCTwvZGQ+CgkJPC9kbD4KCTxoND5SZW1hcmtzPC9oND4KCQk8ZGl2PgoJCQlUaGlzIG1hY3JvIHJldHVybnMgdGhlIGdyZWF0ZXIgb2YgaXRzIGZpcnN0IGFuZCBzZWNvbmQgYXJndW1lbnRzIG9yIHRoZSB2YWx1ZSBvZiBib3RoIGFyZ3VtZW50cyBpZiB0aGV5IGFyZSBlcXVhbC4KCQk8L2Rpdj4KCTxoND5TZWUgQWxzbzwvaDQ+CgkJPHVsPgoJCQk8bGk+PGEgaHJlZj0ibGltaXRfbWFnLmh0bWwiPkJPT1NUX1BQX0xJTUlUX01BRzwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0ibWF4Lmh0bWwiPkJPT1NUX1BQX01BWDwvYT48L2xpPgoJCTwvdWw+Cgk8aDQ+UmVxdWlyZW1lbnRzPC9oND4KCQk8ZGl2PgoJCQk8Yj5IZWFkZXI6PC9iPiAmbmJzcDs8YSBocmVmPSIuLi9oZWFkZXJzL3NlbGVjdGlvbi9tYXguaHRtbCI+Jmx0O2Jvb3N0L3ByZXByb2Nlc3Nvci9zZWxlY3Rpb24vbWF4LmhwcCZndDs8L2E+CgkJPC9kaXY+Cgk8aDQ+U2FtcGxlIENvZGU8L2g0Pgo8ZGl2PjxwcmU+CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL2xpc3QvZm9sZF9sZWZ0Lmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2ZvbGRfbGVmdC5ocHA8L2E+Jmd0OwojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9zZWxlY3Rpb24vbWF4Lmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9zZWxlY3Rpb24vbWF4LmhwcDwvYT4mZ3Q7CgojZGVmaW5lIExJU1QgKDEsICgzLCAoNSwgKDIsICg0LCA8YSBocmVmPSJuaWwuaHRtbCI+Qk9PU1RfUFBfTklMPC9hPikpKSkpCgojZGVmaW5lIE9QKGQsIHN0YXRlLCB4KSA8YSBocmVmPSJtYXhfZC5odG1sIj5CT09TVF9QUF9NQVhfRDwvYT4oZCwgc3RhdGUsIHgpCgojZGVmaW5lIExJU1RfTUFYKGxpc3QpIDxhIGhyZWY9Imxpc3RfZm9sZF9sZWZ0Lmh0bWwiPkJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUPC9hPihPUCwgMCwgTElTVCkKCkxJU1RfTUFYKExJU1QpIC8vIGV4cGFuZHMgdG8gNQo8L3ByZT48L2Rpdj4KCTxociBzaXplPSIxIj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8aT6pIENvcHlyaWdodCA8YSBocmVmPSJodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbSIgdGFyZ2V0PSJfdG9wIj5Ib3VzZW1hcnF1ZSBPeTwvYT4gMjAwMjwvaT4KCQk8L2JyPjxpPqkgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyPC9pPgoJPC9kaXY+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPHA+PHNtYWxsPkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQoJCWFjY29tcGFueWluZyBmaWxlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uL0xJQ0VOU0VfMV8wLnR4dCI+TElDRU5TRV8xXzAudHh0PC9hPiBvcgoJCWNvcHkgYXQgPGEgaHJlZj0KCQkiaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0Ij53d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dDwvYT4pPC9zbWFsbD48L3A+Cgk8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==