ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggNWRlZGFlMC4uYjljNjczOCAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsNCArMSw0IEBACi1UaGlzIGlzIHJlbGVhc2UgMjAwMzAyMTkgb2YgV2luZSwgYSBmcmVlIGltcGxlbWVudGF0aW9uIG9mIFdpbmRvd3Mgb24KK1RoaXMgaXMgcmVsZWFzZSAyMDAzMDMxOCBvZiBXaW5lLCBhIGZyZWUgaW1wbGVtZW50YXRpb24gb2YgV2luZG93cyBvbgogVW5peC4gIFRoaXMgaXMgc3RpbGwgYSBkZXZlbG9wZXJzIG9ubHkgcmVsZWFzZS4gIFRoZXJlIGFyZSBtYW55IGJ1Z3MKIGFuZCB1bmltcGxlbWVudGVkIGZlYXR1cmVzLiAgTW9zdCBhcHBsaWNhdGlvbnMgc3RpbGwgZG8gbm90IHdvcmsKIGNvcnJlY3RseS4KQEAgLTYsMTAgKzYsMTAgQEAKIFBhdGNoZXMgc2hvdWxkIGJlIHN1Ym1pdHRlZCB0byAid2luZS1wYXRjaGVzQHdpbmVocS5jb20iLiAgUGxlYXNlIGRvbid0CiBmb3JnZXQgdG8gaW5jbHVkZSBhIENoYW5nZUxvZyBlbnRyeS4KIAotV0hBVCdTIE5FVyB3aXRoIFdpbmUtMjAwMzAyMTk6IChzZWUgQ2hhbmdlTG9nIGZvciBkZXRhaWxzKQotICAgICAgICAtIEJldHRlciBkZWFkIGtleXMgc3VwcG9ydC4KLSAgICAgICAgLSBNYW55IGRlYnVnZ2VyIGZpeGVzLgotICAgICAgICAtIE1vcmUgRGlyZWN0M0Qgd29yay4KK1dIQVQnUyBORVcgd2l0aCBXaW5lLTIwMDMwMzE4OiAoc2VlIENoYW5nZUxvZyBmb3IgZGV0YWlscykKKyAgICAgICAgLSBNYW55IERpcmVjdCBTb3VuZCBpbXByb3ZlbWVudHMuCisgICAgICAgIC0gRmlsZSBsb2NraW5nIHN1cHBvcnQuCisgICAgICAgIC0gUHJvZ3Jlc3Mgb24ga2VybmVsL250ZGxsIGRsbCBzZXBhcmF0aW9uLgogICAgICAgICAtIExvdHMgb2YgYnVnIGZpeGVzLgogCiBTZWUgdGhlIFJFQURNRSBmaWxlIGluIHRoZSBkaXN0cmlidXRpb24gZm9yIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMuCkBAIC0xOCwxMCArMTgsMTAgQEAKIHRoZSByZWxlYXNlIGlzIGF2YWlsYWJsZSBhdCB0aGUgZnRwIHNpdGVzLiAgVGhlIHNvdXJjZXMgd2lsbCBiZSBhdmFpbGFibGUKIGZyb20gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6CiAKLSAgaHR0cDovL3d3dy5pYmlibGlvLm9yZy9wdWIvTGludXgvQUxQSEEvd2luZS9kZXZlbG9wbWVudC9XaW5lLTIwMDMwMjE5LnRhci5negotICBmdHA6Ly9mdHAuaW5mb21hZ2ljLmNvbS9wdWIvbWlycm9ycy9saW51eC9zdW5zaXRlL0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDAzMDIxOS50YXIuZ3oKLSAgZnRwOi8vZnRwLmZ1LWJlcmxpbi5kZS91bml4L2xpbnV4L21pcnJvcnMvc3Vuc2l0ZS51bmMuZWR1L0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDAzMDIxOS50YXIuZ3oKLSAgZnRwOi8vb3JjdXMucHJvZ3NvYy51dHMuZWR1LmF1L3B1Yi9XaW5lL2RldmVsb3BtZW50L1dpbmUtMjAwMzAyMTkudGFyLmd6CisgIGh0dHA6Ly93d3cuaWJpYmxpby5vcmcvcHViL0xpbnV4L0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDAzMDMxOC50YXIuZ3oKKyAgZnRwOi8vZnRwLmluZm9tYWdpYy5jb20vcHViL21pcnJvcnMvbGludXgvc3Vuc2l0ZS9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwMzAzMTgudGFyLmd6CisgIGZ0cDovL2Z0cC5mdS1iZXJsaW4uZGUvdW5peC9saW51eC9taXJyb3JzL3N1bnNpdGUudW5jLmVkdS9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwMzAzMTgudGFyLmd6CisgIGZ0cDovL29yY3VzLnByb2dzb2MudXRzLmVkdS5hdS9wdWIvV2luZS9kZXZlbG9wbWVudC9XaW5lLTIwMDMwMzE4LnRhci5negogCiBJdCBzaG91bGQgYWxzbyBiZSBhdmFpbGFibGUgZnJvbSBhbnkgb3RoZXIgc2l0ZSB0aGF0IG1pcnJvcnMgaWJpYmxpby5vcmcuCiBUaGVzZSBsb2NhdGlvbnMgYWxzbyBob2xkIHByZS1idWlsdCBkb2N1bWVudGF0aW9uIHBhY2thZ2VzIGluIHZhcmlvdXMKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAyOTcxNmFhLi4wMWEwODEwIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDQgKzEsOTU1IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMDAzLTAzLTE4ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3VzZXIvbWVzc2FnZS5jLCBpbmNsdWRlL3dpbmUvc2VydmVyX3Byb3RvY29sLmgsCisJICBzZXJ2ZXIvcHJvdG9jb2wuZGVmLCBzZXJ2ZXIvcXVldWUuYywgc2VydmVyL3RyYWNlLmM6CisJRml4ZWQgYnVnIHRoYXQgY291bGQgY2F1c2UgU2VuZE1lc3NhZ2UgdG8gcmV0dXJuIHRvbyBlYXJseSBpbiBjZXJ0YWluCisJY2FzZXMuCisKKwkqIGRsbHMvbnRkbGwvbnRkbGwuc3BlYywgZGxscy9udGRsbC9ydGwuYywgaW5jbHVkZS93aW50ZXJubC5oOgorCUltcGxlbWVudGVkIFJ0bCpCeXRlU3dhcCgpIGZ1bmN0aW9ucywgYmFzZWQgb24gYSBwYXRjaCBieSBKb24KKwlHcmlmZml0aHMuCisKKwkqIGRsbHMvbnRkbGwvbnRkbGwuc3BlYywgZGxscy9udGRsbC9ydGwuYywgaW5jbHVkZS93aW50ZXJubC5oOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJQ29ycmVjdCB0aGUgYWd1bWVudCBjb3VudCBmb3IgUnRsSW5pdGlhbGl6ZUdlbmVyaWNUYWJsZSgpLgorCUZpeCBteSBvd24gYnJvd24gcGFwZXIgYmFnIGluIFJ0bEZpbGxNZW1vcnlVbG9uZygpLgorCVJ0bEdldE50VmVyc2lvbk51bWJlcnMoKSBzaG91bGQgbmV2ZXIgcmV0dXJuIDwgNS4KKwlSZW1vdmUgUnRsQ29weU1lbW9yeSgpLCBpdHMgbm90IGFuIG50ZGxsIGV4cG9ydC4KKwlJbXBsZW1lbnQgUnRsQ29tcGFyZU1lbW9yeVVsb25nKCksIFJ0bENvbXB1dGVDcmMzMigpLgorCURvY3VtZW50YXRpb24gdXBkYXRlcy4KKworCSogbG9hZGVyL21vZHVsZS5jOgorCU1ha2UgR2V0TW9kdWxlRmlsZU5hbWVBIGNhbGwgR2V0TW9kdWxlRmlsZU5hbWVXLiBTbWFsbCBjbGVhbnVwcy4KKworCSogZGxscy9udGRsbC90ZXN0cy9ydGxiaXRtYXAuYzogQXZvaWQgZXhwbGljaXQgbG9uZyBsb25nIGNvbnN0YW50cy4KKworCSogaW5jbHVkZS9kZHJhd2kuaDogRml4ZWQgYSBmZXcgZnVuY3Rpb24gcG9pbnRlciB0eXBlZGVmcy4KKworCSogZGxscy9zaGx3YXBpL3NobHdhcGkuc3BlYywgZGxscy9zaGx3YXBpL3VybC5jOgorCU1heGltZSBCZWxsZW5n6SA8bWF4aW1lLmJlbGxlbmdlQGxhcG9zdGUubmV0PgorCVN0dWIgZm9yIFNIQXV0b0NvbXBsZXRlLgorCisJKiBkbGxzL2FkdmFwaTMyL2FkdmFwaS5jLCBkbGxzL2FkdmFwaTMyL3JlZ2lzdHJ5LmMsCisJICBkbGxzL2FkdmFwaTMyL3NlY3VyaXR5LmMsIGRsbHMvY29tY3RsMzIvY29tY3RsMzJ1bmRvYy5jLAorCSAgZGxscy9jb21jdGwzMi9jb21tY3RybC5jLCBkbGxzL2tlcm5lbC90aHVuay5jLCBkbGxzL2tlcm5lbC90aW1lLmMsCisJICBkbGxzL250ZGxsL2NyaXRzZWN0aW9uLmMsIGRsbHMvbnRkbGwvaGVhcC5jLCBkbGxzL250ZGxsL29tLmMsCisJICBkbGxzL250ZGxsL3RpbWUuYywgZGxscy9vbGVhdXQzMi9kaXNwYXRjaC5jLAorCSAgZGxscy9vbGVhdXQzMi9vbGUyZGlzcC5jLCBkbGxzL29sZWF1dDMyL3R5cGVsaWIxNi5jLAorCSAgZGxscy9zaGVsbDMyL3BpZGwuYywgZGxscy9zaGVsbDMyL3NoZWxsLmMsIGRsbHMvc2hlbGwzMi9zaGVsbG9sZS5jLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsb3JkLmMsIGRsbHMvc2hlbGwzMi9zaGZsZHJfZnMuYywKKwkgIGRsbHMvc2hlbGwzMi9zaGxmaWxlb3AuYywgZGxscy9zaGx3YXBpL3BhdGguYywgZGxscy9zaGx3YXBpL3JlZy5jLAorCSAgZGxscy9zaGx3YXBpL3JlZ3N0cmVhbS5jLCBkbGxzL3NobHdhcGkvc2hsd2FwaV9tYWluLmMsCisJICBkbGxzL3NobHdhcGkvc3RyaW5nLmMsIGRsbHMvc2hsd2FwaS90aHJlYWQuYywgZGxscy9zaGx3YXBpL3VybC5jLAorCSAgZGxscy9zaGx3YXBpL3dzcHJpbnRmLmMsIGRsbHMvdXJsbW9uL3Vtb24uYywgZGxscy93c29jazMyL3NlcnZpY2UuYywKKwkgIG9sZS9vbGUybmxzLmMsIHdpbmRvd3MvZGNlLmM6CisJSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCisKKwkqIGRsbHMvbnRkbGwvbG9hZGVyLmMsIGRsbHMvbnRkbGwvbnRkbGwuc3BlYywgaW5jbHVkZS9tb2R1bGUuaCwKKwkgIGluY2x1ZGUvd2ludGVybmwuaCwgbG9hZGVyL21vZHVsZS5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCS0gYWRkZWQgTERSX01PRFVMRSBzdHJ1Y3R1cmUgdG8gV0lORV9NT0RSRUYgYW5kIG1hZGUgZHVtbXkgZmlsbGluZyBvZgorCSAgdGhpcyBzdHJ1Y3R1cmUKKwktIGltcGxlbWVudGF0aW9uIG9mIExkckZpbmRFbnRyeQorCS0gaW1wbGVtZW50YXRpb24gb2YgR2V0TW9kdWxlRmlsZU5hbWVbQVddIG9uIHRvcCBvZiBMZHJGaW5kRW50cnkKKworCSogZGxscy9udGRsbC90ZXN0cy8uY3ZzaWdub3JlLCBkbGxzL250ZGxsL3Rlc3RzL01ha2VmaWxlLmluLAorCSAgZGxscy9udGRsbC90ZXN0cy9zdHJpbmcuYzoKKwlUaG9tYXMgTWVydGVzIDx0aG9tYXMubWVydGVzQGdteC5hdD4KKwlUZXN0cyBmb3IgX2l0b2EsIF9sdG9hLCBfdWx0b2EsIF9pNjR0b2EsIF91aTY0dG9hLCBfaXRvdywgX2x0b3csCisJX3VsdG93LCBfaTY0dG93LCBfdWk2NHRvdywgX2F0b2k2NCwgX3d0b2ksIF93dG9sLCBfd3RvaTY0LgorCisJKiBzZXJ2ZXIvZmQuYywgc2VydmVyL2ZpbGUuaDoKKwlHZXJhbGQgUGZlaWZlciA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KKwlGaXggc2lnbmF0dXJlIG9mIG9wZW5fZmQoKS4KKworCSogZGxscy9tc3ZjcnQvY3BwZXhjZXB0LmMsIGRsbHMvbXN2Y3J0L2NwcGV4Y2VwdC5oOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJQWRkIF9fQ3h4RGV0ZWN0UmV0aHJvdygpLCAgX19DeHhRdWVyeUV4Y2VwdGlvblNpemUoKS4KKwlDb25zdGlmeSBwYXJhbWV0ZXJzIChlbmFibGluZyBzdGF0aWMgUlRUSSkuCisJTW92ZSB0eXBlIGRlZmluaXRpb25zIGludG8gYSBoZWFkZXIgZm9yIHNoYXJpbmcgd2l0aCBjcHAuYyBvYmplY3RzLgorCisJKiB0b29scy93aW5lYnVpbGQvYnVpbGQuaCwgdG9vbHMvd2luZWJ1aWxkL2ltcG9ydC5jLAorCSAgdG9vbHMvd2luZWJ1aWxkL21haW4uYywgdG9vbHMvd2luZWJ1aWxkL3BhcnNlci5jLAorCSAgdG9vbHMvd2luZWJ1aWxkL3NwZWMxNi5jLCB0b29scy93aW5lYnVpbGQvc3BlYzMyLmMsCisJICB0b29scy93aW5lYnVpbGQvdXRpbHMuYywgdG9vbHMvd2luZWJ1aWxkL3dpbmVidWlsZC5tYW4uaW46CisJSGFuZGxlIGVuZCBvZiBsaW5lIGFzIGEgc3ludGFjdGljIGVsZW1lbnQgaW4gdGhlIHNwZWMgZmlsZSBwYXJzZXI7CisJYmFja3NsYXNoZXMgY2FuIGJlIHVzZWQgdG8gY29udGludWUgbGluZXMuIFRoaXMgYWxsb3dzIHVzIHRvIHNraXAgb3ZlcgorCWVycm9ycyB0byBjb250aW51ZSBwYXJzaW5nLCBhbmQgYWxzbyB0byBtYWtlIHNwZWNpZmljYXRpb24gb2YgYW4gZW50cnkKKwlwb2ludCBsaW5rIG5hbWUgb3B0aW9uYWwuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL2ZpbGUuYywgZmlsZXMvZmlsZS5jLCBpbmNsdWRlL3dpbmJhc2UuaCwKKwkgIGluY2x1ZGUvd2luZS9zZXJ2ZXJfcHJvdG9jb2wuaCwgc2VydmVyL2ZkLmMsIHNlcnZlci9maWxlLmMsCisJICBzZXJ2ZXIvZmlsZS5oLCBzZXJ2ZXIvbGlzdC5oLCBzZXJ2ZXIvcHJvY2Vzcy5jLCBzZXJ2ZXIvcHJvY2Vzcy5oLAorCSAgc2VydmVyL3Byb3RvY29sLmRlZiwgc2VydmVyL3RyYWNlLmM6CisJSW1wbGVtZW50ZWQgZmlsZSBsb2NraW5nIGZ1bmN0aW9ucyAocGFydGx5IGJhc2VkIG9uIG15IG9sZCBDb3JlbAorCXBhdGNoKS4gQWRkZWQgYSBmZXcgcmVncmVzc2lvbiB0ZXN0cy4KKworMjAwMy0wMy0xNyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9kc291bmQvbWl4ZXIuYzogT3ZlIEthYXZlbiA8b3Zla0B0cmFuc2dhbWluZy5jb20+CisJU29tZXdoYXQgbW9yZSByZWxpYWJsZSBkc291bmQgcG9zaXRpb24gbm90aWZpY2F0aW9ucy4KKworCSogZGxscy9jb21tZGxnL3ByaW50ZGxnLmM6CisJVG9ueSBMYW1icmVndHMgPHRvbnlfbGFtYnJlZ3RzQHRlbHVzcGxhbmV0Lm5ldD4KKwlKYW5pdG9yaWFsLiBHZXQgcmlkIG9mIFctPkEgY2FsbC4KKworCSogaW5jbHVkZS9tc3ZjcnQvc3lzL3R5cGVzLmgsIGluY2x1ZGUvd2luc29jay5oOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJRGVmaW5lIHRoZSB1X3tjaGFyLHNob3J0LGludCxsb25nfSBpbiBtc3ZjcnQvc3lzL3R5cGVzLmggZm9yIFVuaXgKKwljb21wYXRpYmlsaXR5IChuZWVkZWQgYnkgd2luc29jay5oIGFzIHdlbGwpLgorCisJKiBkbGxzL21zdmNydC9tYWluLmMsIGRsbHMvbXN2Y3J0L21zdmNydC5oOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJTW92ZSBhIGNvdXBsZSBvZiBzaGFyZWQgZGVmaW5pdGlvbnMgaW50byBtc3ZjcnQuaC4KKwlpbml0X3Z0YWJsZXMoKSBpcyByZWR1bmRhbnQgd2l0aCB1cGNvbWluZyBmaXhlcyB0byBjeHggZnVuY3Rpb25zLgorCisJKiBkbGxzL21zdmNydC9tdGRsbC5oOiBKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCV9FWElUX0xPQ0syIGlzIHVzZWQgYnkgdHlwZV9pbmZvIG9iamVjdHMuCisKKwkqIGluY2x1ZGUvd2lucmVnLmg6IEpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJQWRkZWQgcHJvdG90eXBlcyBmb3IgdGhlIFJlbW90ZSBTaHV0ZG93biBBcGkgY2FsbHMuCisKKwkqIGRsbHMvbnRkbGwvc2VjLmM6IEpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgorCisJKiBwcm9ncmFtcy93aW5lY29uc29sZS93aW5lY29uc29sZS5jOgorCVRvbnkgTGFtYnJlZ3RzIDx0b255X2xhbWJyZWd0c0B0ZWx1c3BsYW5ldC5uZXQ+CisJQ29udmVydCBXSU5FX0RQUklOVEYgY2FsbHMgdG8gV0lORV9UUkFDRS4KKworCSogdG9vbHMvd2luZWJ1aWxkL2J1aWxkLmgsIHRvb2xzL3dpbmVidWlsZC9wYXJzZXIuYywKKwkgIHRvb2xzL3dpbmVidWlsZC9zcGVjMzIuYywgdG9vbHMvd2luZWJ1aWxkL3dpbmVidWlsZC5tYW4uaW46CisJUmVtb3ZlZCBzdXBwb3J0IGZvciB0aGUgJ2ZvcndhcmQnIG9yZGluYWwgdHlwZS4KKworCSogZGxscy9jcnRkbGwvY3J0ZGxsLnNwZWMsIGRsbHMvbXN2Y3J0MjAvbXN2Y3J0MjAuc3BlYzoKKwlSZXBsYWNlZCBmb3J3YXJkcyBieSBub3JtYWwgZnVuY3Rpb24gZGVjbGFyYXRpb25zLgorCisJKiBkbGxzL21zdmNydC9tc3ZjcnQuc3BlYzoKKwlGaXhlZCBhIGNvdXBsZSBvZiByZWxheSBhcmd1bWVudHMsIGFuZCB1cGRhdGVkIHNvbWUgb2YgdGhlIHN0dWIKKwljb21tZW50cy4KKworCSogZGxscy9jb21jdGwzMi90YWIuYzogTWlrZSBIZWFybiA8bWlrZUB0aGVvcmV0aWMuY29tPgorCUZpeCB0aGUgdGFiIGhlaWdodCBzbyB0aGUgbGFiZWxzIGRvbid0IGNsaXAsIGFuZCByZXN0b3JlIHRoZSBvZmZzZXQKKwljb25zdGFudCB0byB3aGF0IGl0IHdhcyBiZWZvcmUuCisKKwkqIGRsbHMvY29tY3RsMzIvaW1hZ2VsaXN0LmM6IE1pa2UgSGVhcm4gPG1pa2VAdGhlb3JldGljLmNvbT4KKwlGaXggYSB0eXBvLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGxwYXRoLmMsIGluY2x1ZGUvc2hsb2JqLmg6CisJUGF1bCBSdXBlIDxwcnVwZUBteXJlYWxib3guY29tPgorCUFkZCBDU0lETF9QUk9GSUxFUy4gIEltcHJvdmVkIGxvZ2dpbmcgZm9yIG5vbi1leGlzdGVudCBDU0lETCB2YWx1ZXMuCisKKwkqIGRsbHMvZ2RpL2ZyZWV0eXBlLmM6IFBhdWwgUnVwZSA8cHJ1cGVAbXlyZWFsYm94LmNvbT4KKwlGaXggYSBjb3VwbGUgSU5UL1VJTlQgY29tcGFyaXNvbnMuCisKKwkqIGRsbHMvd2luc29jay9zb2NrZXQuYzogUGF1bCBSdXBlIDxwcnVwZUBteXJlYWxib3guY29tPgorCVRyZWF0IGJsYW5rIHByb3RvY29sIHRoZSBzYW1lIGFzIE5VTEwgaW4gZ2V0c2VydmJ5bmFtZSAmCisJZ2V0c2VydmJ5cG9ydC4KKworCSogZGxscy9hZHZhcGkzMi9hZHZhcGkzMi5zcGVjLCBkbGxzL2RwbGF5L2RwbGF5LnNwZWMsCisJICBkbGxzL2tlcm5lbC9rZXJuZWwzMi5zcGVjLCBkbGxzL21zdmNydC9tc3ZjcnQuc3BlYywKKwkgIGRsbHMvbmV0YXBpMzIvbmV0YXBpMzIuc3BlYywgZGxscy9vbGUzMi9vbGUzMi5zcGVjLAorCSAgZGxscy9vbGVhdXQzMi9vbGVhdXQzMi5zcGVjLCBkbGxzL29sZWNsaS9vbGVjbGkzMi5zcGVjLAorCSAgZGxscy9vbGVwcm8zMi9vbGVwcm8zMi5zcGVjLCBkbGxzL29wZW5nbDMyL29wZW5nbDMyLnNwZWMsCisJICBkbGxzL3NoZWxsMzIvc2hlbGwzMi5zcGVjLCBkbGxzL3NoZm9sZGVyL3NoZm9sZGVyLnNwZWMsCisJICBkbGxzL3NobHdhcGkvc2hsd2FwaS5zcGVjLCBkbGxzL3VybG1vbi91cmxtb24uc3BlYywKKwkgIGRsbHMvdmVyc2lvbi92ZXJzaW9uLnNwZWMsIGRsbHMvd2luMzJzL3czMnNrcm5sLnNwZWMsCisJICBkbGxzL3dpbnNvY2svd3MyXzMyLnNwZWMsIGRsbHMvd293MzIvd293MzIuc3BlYywKKwkgIGRsbHMvd3NvY2szMi93c29jazMyLnNwZWM6CisJUmVwbGFjZWQgZm9yd2FyZHMgYnkgbm9ybWFsIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucy4KKworCSogZGxscy9tc3ZjcnQvbXN2Y3J0LnNwZWMsIGRsbHMvbXN2Y3J0L3Byb2Nlc3MuYzoKKwlJbXBsZW1lbnRlZCBfZ2V0ZGxscHJvY2FkZHIoKSwgaXQgY2Fubm90IGJlIHNpbXBseSBhIGZvcndhcmQgdG8KKwlHZXRQcm9jQWRkcmVzcy4KKworCSogdG9vbHMvd2luZWJ1aWxkL3BhcnNlci5jLCB0b29scy93aW5lYnVpbGQvc3BlYzMyLmMsCisJICB0b29scy93aW5lYnVpbGQvd2luZWJ1aWxkLm1hbi5pbjoKKwlEaXNhYmxlICd2YXJpYWJsZScgaW4gV2luMzIgc3BlYyBmaWxlcy4KKwlBZGRlZCBzdXBwb3J0IGZvciBmb3J3YXJkZWQgJ2V4dGVybicgb3JkaW5hbHMuCisKKwkqIGRsbHMvd2lubW0vd2luZW9zcy9hdWRpby5jOiBBdm9pZCB3YXJuaW5ncy4KKworMjAwMy0wMy0xNiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogdG9vbHMvd2luZWJ1aWxkL2ltcG9ydC5jOgorCURvbid0IGVudGVyIGFuIGltcG9ydGVkIGRsbCBpbiB0aGUgaW1wb3J0IHRhYmxlIGF0IGFsbCBpZiB3ZSBkaWRuJ3QKKwluZWVkIHRvIGltcG9ydCBhbnkgc3ltYm9sIGZyb20gaXQuCisKKwkqIGluY2x1ZGUvYmFzZXRzZC5oLCBpbmNsdWRlL3d0eXBlcy5oLCBpbmNsdWRlL3d0eXBlcy5pZGw6CisJUHJvcGVybHkgaW1wb3J0IGJhc2V0c2QuaCBhbmQgZ3VpZGRlZi5oLgorCisJKiB0b29scy93aWRsL3BhcnNlci5sLCB0b29scy93aWRsL3V0aWxzLmMsIHRvb2xzL3dpZGwvd2lkbC5jOgorCU1ha2Ugc3VyZSB3ZSBkaXNwbGF5IHRoZSBjb3JyZWN0IGZpbGUgbmFtZSBhbmQgbGluZSBpbiBlcnJvciBtZXNzYWdlcy4KKworCSogZGxscy9zaGVsbDMyL3NoZWxsMzJfbWFpbi5jOgorCVZpdGFsaXkgTWFyZ29sZW4gPHdpbmUtcGF0Y2hAa2lldmluZm8uY29tPgorCS0gbWFrZSBTSEdldEZpbGVJbmZvIGhhbmRsZSByZWxhdGl2ZSBwYXRocworCS0gZml4IHJlcXVlc3RzIGZvciBsYXJnZSBpY29ucworCisyMDAzLTAzLTE1ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL21zdmNydC9taXNjLmM6CisJSW1wbGVtZW50ZWQgX2Noa2VzcCwgYmFzZWQgb24gYSBwYXRjaCBieSBKb24gR3JpZmZpdGhzLgorCisJKiBkbGxzL21zdmNydC9NYWtlZmlsZS5pbiwgZGxscy9tc3ZjcnQvZXhpdC5jOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJRGlzcGxheSBhYm5vcm1hbCBleGl0IHRleHQgaW4gYSBtZXNzYWdlIGJveCBmb3IgR1VJIGFwcHMuCisKKwkqIGluY2x1ZGUvd3R5cGVzLmgsIGluY2x1ZGUvd3R5cGVzLmlkbDoKKwlKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCUFkZCBzb21lIG1pc3NpbmcgdHlwZXMgbmVlZGVkIGZvciB0aGUgdXBjb21pbmcgb2NpZGwuaWRsLgorCUFkZCBtaXNzaW5nIHZhcmlhbnQgdHlwZXMuCisJQ29ycmVjdCB0aGUgZGVmaW5pdGlvbiBvZiBERUNJTUFMIHR5cGUuCisKKwkqIGRsbHMvd2lubW0vd2luZW9zcy9hdWRpby5jOiBBZGRlZCAjaWZkZWYgY2hlY2tzIGZvciBTT1VORF9NSVhFUl9JTkZPLgorCisJKiBkb2N1bWVudGF0aW9uL2F1dGhvcnMuZW50OiBBZGRlZCBKb24gR3JpZmZpdGhzLgorCisJKiBNYWtlLnJ1bGVzLmluLCBNYWtlZmlsZS5pbiwgZG9jdW1lbnRhdGlvbi9NYWtlZmlsZS5pbjoKKwlKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCVVwZGF0ZWQgcnVsZXMgZm9yIEFQSSBkb2MgZ2VuZXJhdGlvbi4KKwlBZGQgc2dtbHBhZ2VzIHRhcmdldCBmb3IgbWFraW5nIGEgZG9jYm9vayAnV2luZSBBUEkgR3VpZGUnLgorCisJKiB0b29scy9jMm1hbi5wbDogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlJbXByb3ZlIHRoZSBsb29rL2NvbnRlbnQgb2YgdGhlIG1hbiBwYWdlIG91dHB1dC4KKwlHZW5lcmF0ZSBmb3IgYWxsIGV4cG9ydGVkIGZ1bmN0aW9ucyAodGhhdCBoYXZlIGRvY3MpLgorCUFkZCBkbGwgc3VtbWFyeSBwYWdlLCBIVE1MIGFuZCBTR01MIG91dHB1dC4KKworCSogZG9jdW1lbnRhdGlvbi9kb2N1bWVudGF0aW9uLnNnbWw6CisJSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlEb2N1bWVudCB0aGUgQVBJIGdlbmVyYXRpb24gcHJvY2VzcyBhbmQgZm9ybWF0LgorCVByb3ZpZGUgYW4gb3ZlcnZpZXcgb2YgdGhlIFdpbmUgZG9jdW1lbnRhdGlvbiBzeXN0ZW0uCisJQSBjb3VwbGUgb2YgbWlub3Igb3RoZXIgZml4ZXMuCisKKwkqIGRsbHMvbnRkbGwvbnRkbGwuc3BlYywgZGxscy9udGRsbC9ydGxzdHIuYzoKKwlKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCUFkZCBSdGxEb3duY2FzZVVuaWNvZGVDaGFyKCksIFJ0bEVxdWFsQ29tcHV0ZXJOYW1lKCksCisJUnRsRXF1YWxEb21haW5OYW1lKCkuIERvY3VtZW50YXRpb24gdXBkYXRlcy4KKworCSogZGxscy9zaGx3YXBpL2lzdHJlYW0uYzogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCisKKwkqIGluY2x1ZGUvc2hsd2FwaS5oOiBKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCUFkZCBzb21lIG1pc3NpbmcgcHJvdG90eXBlcy4KKworCSogZGxscy9zaGx3YXBpL3NobHdhcGkuc3BlYzogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlTSENyZWF0ZVRocmVhZCBpcyBleHBvcnRlZCBieSBuYW1lIF9hbmRfIG9yZGluYWwuCisKKwkqIGRsbHMvc2hsd2FwaS9jbGlzdC5jLCBkbGxzL3NobHdhcGkvdGVzdHMvY2xpc3QuYzoKKwlKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCUNvcnJlY3QgYmVoYXZpb3VyIGZvciBzb21lIGVycm9yIGNvbmRpdGlvbnMuCisJRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgorCisJKiBpbmNsdWRlL3dpbmUvZGVidWcuaDogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlSZWFsbHkgZ2V0IHJpZCBvZiBkZWJ1ZyBjb2RlL3N0cmluZ3MgaWYgd2UncmUgYnVpbGRpbmcgd2l0aG91dCB0aGVtLgorCisJKiBkbGxzL21zdmNydC9kYXRhLmMsIGRsbHMvbXN2Y3J0L21zdmNydC5zcGVjOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJSW1wbGVtZW50ZWQgX19wX19wZ21wdHIsIF9wZ21wdHIuCisKKwkqIHRvb2xzL3dpbmVkdW1wL3BlLmM6IEpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJT25seSBzb3J0IHRoZSBudW1iZXIgb2Ygc3ltYm9scyBhY3R1YWxseSBmb3VuZC4KKworCSogdG9vbHMvd2luYXBpL21zdmNtYWtlcjogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlPdXRwdXQgYSBkdW1teSBmdW5jdGlvbiBmb3IgbGlua2luZy4KKwlEZWZpbmUgX19XSU5FX1VTRV9OQVRJVkVfSEVBREVSUyBmb3IgdGVzdHMgdGhhdCBuZWVkIHRvIGNhcmUuCisJQ2hhbmdlIHRoZSBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3JtYXQgdG8gcHJldmVudCB3aW5lZGJnIGZyb20gY3Jhc2hpbmcuCisKKwkqIGluY2x1ZGUvd2luZ2RpLmg6IEpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJUHJvdGVjdCB0aGUgVEVYVE1FVFJJQyBzdHJ1Y3QgZnJvbSByZWRlZmluaXRpb24uCisKKwkqIGNvbnRyb2xzL2xpc3Rib3guYywgY29udHJvbHMvc2Nyb2xsLmMsIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21haW4uYywKKwkgIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21lc2EuYywgZGxscy9kZHJhdy9kZHJhdy9tYWluLmMsCisJICBkbGxzL2RkcmF3L2RzdXJmYWNlL21haW4uYzoKKwlUb255IExhbWJyZWd0cyA8dG9ueV9sYW1icmVndHNAdGVsdXNwbGFuZXQubmV0PgorCVJlcGxhY2UgRFBSSU5URiB3aXRoIFRSQUNFLgorCisJKiBkbGxzL2Rzb3VuZC9idWZmZXIuYywgZGxscy9kc291bmQvY2FwdHVyZS5jLCBkbGxzL2Rzb3VuZC9kc291bmQuc3BlYywKKwkgIGRsbHMvZHNvdW5kL2Rzb3VuZF9tYWluLmMsIGRsbHMvZHNvdW5kL2Rzb3VuZF9wcml2YXRlLmgsCisJICBkbGxzL2Rzb3VuZC9taXhlci5jLCBkbGxzL2Rzb3VuZC9wcmltYXJ5LmMsIGRsbHMvd2lubW0vbG9sdmxkcnYuYywKKwkgIGRsbHMvd2lubW0vd2luZWFsc2EvTWFrZWZpbGUuaW4sIGRsbHMvd2lubW0vd2luZWFsc2EvYXVkaW8uYywKKwkgIGRsbHMvd2lubW0vd2luZW9zcy9hdWRpby5jLCBkb2N1bWVudGF0aW9uL3NhbXBsZXMvY29uZmlnLAorCSAgaW5jbHVkZS9tbWRkay5oOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJQWRkZWQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgZGlyZWN0IHNvdW5kIGRldmljZXMuCisKKwkqIGRsbHMvY29tY2F0L2luZm9ybWF0aW9uLmMsIGRsbHMvZGRyYXcvZDNkZXhlY3V0ZWJ1ZmZlci5jLAorCSAgZGxscy9kZHJhdy9kM2R2ZXJ0ZXhidWZmZXIuYywgZGxscy9kZHJhdy9tYWluLmMsCisJICBkbGxzL2RpbnB1dC9qb3lzdGljay9saW51eC5jLCBkbGxzL2RpbnB1dC9qb3lzdGljay9saW51eGlucHV0LmMsCisJICBkbGxzL2RpbnB1dC9rZXlib2FyZC9tYWluLmMsIGRsbHMvZGlucHV0L21vdXNlL21haW4uYywKKwkgIGRsbHMvb2RiYzMyL3Byb3h5b2RiYy5jLCBkbGxzL3JpY2hlZGl0L3JpY2hlZGl0LmMsCisJICBkbGxzL3NldHVwYXBpL3BhcnNlci5jLCBkbGxzL3ZlcnNpb24vaW5mby5jLAorCSAgZGxscy93aW5hc3BpL3dpbmFzcGkxNi5jLCBkbGxzL3dpbmFzcGkvd2luYXNwaTMyLmMsCisJICBkbGxzL3gxMWRydi9rZXlib2FyZC5jLCBmaWxlcy9zbWIuYzoKKwlUb255IExhbWJyZWd0cyA8dG9ueV9sYW1icmVndHNAdGVsdXNwbGFuZXQubmV0PgorCVJlcGxhY2UgRFBSSU5URiB3aXRoIFRSQUNFLgorCisJKiB3aW5lZGVmYXVsdC5yZWc6IE1heGltZSBCZWxsZW5n6SA8bWF4aW1lLmJlbGxlbmdlQGxhcG9zdGUubmV0PgorCVJlbmFtZSAiU2hvcnRjdXQiIHRvICJEZXNrdG9wIi4KKworCSogc2NoZWR1bGVyL3N5c2RlcHMuYzoKKwlJbml0IHNpZ25hbHMgYmVmb3JlIGNhbGxpbmcgQ0xJRU5UX0luaXRUaHJlYWQgc2luY2Ugd2UgY2FuIHJlY2VpdmUgYQorCXNpZ25hbCB0aGVyZS4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOiBWaXRhbGl5IE1hcmdvbGVuIDx3aW5lLXBhdGNoQGtpZXZpbmZvLmNvbT4KKwlDaGFuZ2VzIGZvciBJY29uIGFuZCBTbWFsbEljb24gbW9kZXM6CisJIC0gZml4IHR5cG8gY2F1c2luZyB3cm9uZyBzY3JvbGwgYm91bmRhcmllcworCSAtIHJldmVyc2UgbW91c2Ugd2hlZWwgc2Nyb2xsIGRpcmVjdGlvbnMKKwkgLSBmaXggbmF2aWdhdGlvbiB3aXRoIGtleWJvYXJkIHdoZW4gYXV0byBhcnJhbmdlZAorCisyMDAzLTAzLTE0ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBsb2FkZXIvbW9kdWxlLmM6IENsZWFuZWQgdXAgbG9hZF9saWJyYXJ5X2FzX2RhdGFmaWxlKCkuCisKKwkqIGRsbHMvbnRkbGwvcmVnLmMsIGRsbHMvbnRkbGwvcnRsLmMsIGRsbHMvbnRkbGwvcnRsc3RyLmMsCisJICBkbGxzL250ZGxsL3NlYy5jOgorCUF2b2lkIEdldFByb2Nlc3NIZWFwKCkgaW5zaWRlIG50ZGxsLgorCisJKiBkbGxzL2tlcm5lbC9rZXJuZWwzMi5zcGVjLCB3aW4zMi9uZXdmbnMuYzoKKwlSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJQWRkZWQgc3R1YiBmb3IgR2V0RGV2aWNlUG93ZXJTdGF0ZSgpLgorCisJKiBkbGxzL21zbmV0MzIvbXNuZXQzMi5zcGVjLCBkbGxzL21zbmV0MzIvbXNuZXRfbWFpbi5jOgorCVJlaW4gS2xhemVzIDxya2xhemVzQHhzNGFsbC5ubD4KKwlBZGRlZCBhIHN0dWIgZm9yIG1zbmV0MzIuNTcKKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCVNwYWNpbmcgaW5mb3JtYXRpb24gaXMgc2lnbmVkIChkZWJ1Z2dlZCBhbmQgZml4ZWQgYnkgVml0YWxpeQorCU1hcmdvbGVuKS4KKwlEZWNvZGUgc3BhY2luZyBpbmZvcm1hdGlvbiBpbiB0aGUgd2luZG93IHByb2NlZHVyZS4KKwlTb21lIHNwZWxsaW5nIGZpeGVzLgorCisJKiBkbGxzL250ZGxsL2xvYWRlci5jLCBkbGxzL250ZGxsL250ZGxsLnNwZWMsIGRsbHMvbnRkbGwvbnRkbGxfbWlzYy5oLAorCSAgaW5jbHVkZS9tb2R1bGUuaCwgaW5jbHVkZS93aW50ZXJubC5oLCBsb2FkZXIvbW9kdWxlLmMsCisJICBsb2FkZXIvcGVfaW1hZ2UuYywgcmVsYXkzMi9idWlsdGluMzIuYzoKKwlFcmljIFBvdWVjaCA8ZXJpYy5wb3VlY2hAd2FuYWRvby5mcj4KKwktIGltcGxlbWVudGF0aW9uIG9mIExkckxvYWREbGwgb3V0IG9mIGxvYWRlci9tb2R1bGUuYworCS0gaW4gaW1wYWN0ZWQgZnVuY3Rpb25zLCBlbnN1cmUgdGhhdCB3ZSBvbmx5IHVzZSBudGRsbCBmdW5jdGlvbnMKKwktIGZvciBpbnRlcm5hbCBsb2FkaW5nLCBzdGFydCB1c2luZyBOVERMTCBzdHlsZSBmb3IgZXJyb3IgcmVwb3J0aW5nCisJLSBtYWtpbmcgdXNlIG9mIG5ldyBMZHJMb2FkRGxsCisKKwkqIGRsbHMvYWR2YXBpMzIvTWFrZWZpbGUuaW4sIGRsbHMvYWR2YXBpMzIvcmVnaXN0cnkuYzoKKwlUb255IExhbWJyZWd0cyA8dG9ueV9sYW1icmVndHNAdGVsdXNwbGFuZXQubmV0PgorCUphbml0b3JpYWwuIEdldCByaWQgb2YgVy0+QSBjYWxscy4KKworCSogZGxscy9jb21jdGwzMi9yZWJhci5jLCB3aW5kb3dzL2RpYWxvZy5jLCB3aW5kb3dzL3dpbi5jLAorCSAgd2luZG93cy93aW5wb3MuYzoKKwlUb255IExhbWJyZWd0cyA8dG9ueV9sYW1icmVndHNAdGVsdXNwbGFuZXQubmV0PgorCVJlcGxhY2UgRFBSSU5URiB3aXRoIFRSQUNFLgorCisJKiBzZXJ2ZXIvbWFpbi5jLCBzZXJ2ZXIvb2JqZWN0LmgsIHNlcnZlci9yZXF1ZXN0LmM6CisJQWRkZWQgLWYgb3B0aW9uIHRvIG1ha2Ugd2luZXNlcnZlciByZW1haW4gaW4gdGhlIGZvcmVncm91bmQgZm9yCisJZGVidWdnaW5nLgorCUNsb3NlIHN0ZGluL3N0ZG91dCB3aGVuIG5vdCBpbiB0aGUgZm9yZWdyb3VuZCAoYmFzZWQgb24gYSBwYXRjaCBieQorCUZyYW5jb2lzIEdvdWdldCkuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL3Byb2ZpbGUuYzogV2FybmluZyBmaXhlcy4KKworCSogZGxscy9udGRsbC9kZWJ1Z3Rvb2xzLmM6CisJT25seSBwcmludCB0aGUgdHJhY2UgaGVhZGVyIHdoZW4gd2UgYXJlIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBuZXcKKwlsaW5lIChzdWdnZXN0ZWQgYnkgRGltaXRyaWUgTy4gUGF1bikuCisKKwkqIGRsbHMvbnRkbGwvbG9hZGVyLmMsIGRsbHMvbnRkbGwvbnRkbGwuc3BlYywgZGxscy9udGRsbC9udGRsbF9taXNjLmgsCisJICBpbmNsdWRlL21vZHVsZS5oLCBsb2FkZXIvbW9kdWxlLmM6CisJRXJpYyBQb3VlY2ggPGVyaWMucG91ZWNoQHdhbmFkb28uZnI+CisJLSBpbXBsZW1lbnRhdGlvbiBvZiBMZHJVbmxvYWREbGwgb3V0IG9mIGxvYWRlci9tb2R1bGUuYworCS0gaW4gaW1wYWN0ZWQgZnVuY3Rpb25zLCBlbnN1cmUgdGhhdCB3ZSBvbmx5IHVzZSBudGRsbCBmdW5jdGlvbnMKKwktIG1ha2luZyB1c2Ugb2YgbmV3IExkclVubG9hZERsbAorCisyMDAzLTAzLTEyICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBzZXJ2ZXIvZmQuYywgc2VydmVyL2ZpbGUuYywgc2VydmVyL2ZpbGUuaCwgc2VydmVyL25hbWVkX3BpcGUuYywKKwkgIHNlcnZlci9waXBlLmMsIHNlcnZlci9wcm9jZXNzLmMsIHNlcnZlci9yZXF1ZXN0LmMsIHNlcnZlci9zZXJpYWwuYywKKwkgIHNlcnZlci9zbWIuYywgc2VydmVyL3NvY2suYywgc2VydmVyL3RocmVhZC5jOgorCUFkZGVkIGFuIGlub2RlIG9iamVjdCB0byBrZWVwIHRyYWNrIG9mIGFsbCBmaWxlIGRlc2NyaXB0b3JzIG9wZW4gZm9yIGEKKwlnaXZlbiBmaWxlLgorCVBsdWdnZWQgYSBjb3VwbGUgb2YgcG90ZW50aWFsIGZpbGUgZGVzY3JpcHRvciBsZWFrcy4KKworCSogZGxscy9tc3ZjcnQvd2NzLmMsIGRsbHMvbnRkbGwvd2NzdHJpbmcuYywgaW5jbHVkZS93aW5lL3VuaWNvZGUuaCwKKwkgIHVuaWNvZGUvc3RyaW5nLmMsIHVuaWNvZGUvd2luZV91bmljb2RlLmRlZjoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAYmFpa2FsLnJ1PgorCU1vdmUgdnNud3ByaW50ZiBpbXBsZW1lbnRhdGlvbiB0byBsaWJ3aW5lX3VuaWNvZGUsIGV4cG9ydCBzbnByaW50ZlcKKwlhbmQgdnNucHJpbnRmVyBmcm9tIHRoZXJlLCBmb3J3YXJkIE1TVkNSVCBhbmQgTlRETEwgZnVuY3Rpb25zIHRvCisJbGlid2luZV91bmljb2RlLgorCisJKiBkbGxzL3NoZWxsMzIvc2hwb2xpY3kuYzogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlDb25zdGlmeSB0aGUgc3RyaW5ncyBpbiB0aGUgcG9saWN5IGNhY2hlLgorCURvY3VtZW50YXRpb24gdXBkYXRlcy4KKworCSogZGxscy9tc3ZjcnQvbXN2Y3J0LnNwZWMsIGRsbHMvbXN2Y3J0L3djcy5jLAorCSAgZGxscy9tc3ZjcnQyMC9tc3ZjcnQyMC5zcGVjOgorCVRob21hcyBNZXJ0ZXMgPHRob21hcy5tZXJ0ZXNAZ214LmF0PgorCUZvcndhcmQgdG8gdGhlIG50ZGxsIGZ1bmN0aW9ucyBfaXRvYSwgX2x0b2EsIF91bHRvYSwgX2k2NHRvYSwKKwlfdWk2NHRvYSwgX2l0b3csIF9sdG93LCBfdWx0b3csIF9pNjR0b3csIF91aTY0dG93LCBfYXRvaTY0LCBfd3RvaSwKKwlfd3RvbCwgX3d0b2k2NCBmcm9tIG1zdmNydCAvIG1zdmNydDIwLgorCisJKiBkbGxzL250ZGxsL250ZGxsLnNwZWMsIGRsbHMvbnRkbGwvc3RyaW5nLmMsIGRsbHMvbnRkbGwvd2NzdHJpbmcuYzoKKwlUaG9tYXMgTWVydGVzIDx0aG9tYXMubWVydGVzQGdteC5hdD4KKwlJbXBsZW1lbnQgX2l0b2EsIF9sdG9hLCBfdWx0b2EsIF9pNjR0b2EsIF91aTY0dG9hLCBfaXRvdywgX2x0b3csCisJX3VsdG93LCBfaTY0dG93LCBfdWk2NHRvdywgX2F0b2k2NCwgX3d0b2ksIF93dG9sLCBfd3RvaTY0LgorCisJKiBkbGxzL2tlcm5lbC9jb21tLmM6IE1hcmN1cyBNZWlzc25lciA8bWVpc3NuZXJAc3VzZS5kZT4KKwlGaXhlZCAyIGZkIGxlYWtzIGluIGNvbW0gZnVuY3Rpb25zLgorCVJlbW92ZWQgZXJyb25lb3VzIEdldExhc3RFcnJvcigpIGNoZWNrIGluIFdhaXRDb21tRXZlbnQoKS4KKworCSogZG9jdW1lbnRhdGlvbi9wYWNrYWdpbmcuc2dtbCwgcHJvZ3JhbXMvd2luZWJvb3Qvd2luZWJvb3QuYzoKKwlTaGFjaGFyIFNoZW1lc2ggPHdpbmUtcGF0Y2hlc0BzdW4uY29uc3VtZXIub3JnLmlsPgorCS0gSW1wbGVtZW50IGZpbmVyIGdyYWluZWQgY29udHJvbCBvdmVyIHdoYXQgZ2V0cyBydW4uCisJLSBJbXBsZW1lbnQgY29tbWFuZCBsaW5lIHRvIGNvbnRyb2wgcHJlc2V0cyBvZiBzYWlkIGNvbnRyb2wgZm9yCisJICB2YXJpb3VzIHNjZW5hcmlvczoKKwkgIG8gc3RhcnQgLSBzZXNzaW9uIHN0YXJ0dXAgLSBydW4gZXZlcnl0aGluZy4KKwkgIG8gcmVzdGFydCAtIHNlc3Npb24gY2xvc2UgKHByZXN1bWVhYmx5IGFmdGVyIHJlYm9vdCkgLSBvbmx5IHBlcmZvcm0KKwkgICAgKm9uY2Ugb3BlcmF0aW9ucy4KKworCSogaW5jbHVkZS93aW5udC5oOiBUb255IExhbWJyZWd0cyA8dG9ueV9sYW1icmVndHNAdGVsdXNwbGFuZXQubmV0PgorCUFkZCBmbGFncyBmb3IgUmVnUmVzdG9yZUtleS4KKworCSogZGxscy9jb21jdGwzMi90YWIuYzogTWlrZSBIZWFybiA8bWlrZUB0aGVvcmV0aWMuY29tPgorCS0gUmVkdWNlZCB0YWIgb2Zmc2V0IGNvbnN0YW50IHNsaWdodGx5IHRvIGF2b2lkIGNsaXBwaW5nIHRoZSBsYWJlbC4KKwktIFByZXZlbnQgbGFiZWwgb3ZlcmRyYXcgb2YgdXBkb3duIGNvbnRyb2wgYnkgcmVkdWNpbmcgdGhlIHdpZHRoIG9mCisJICB0aGUgaW52YWxpZGF0ZWQgcmVnaW9uLgorCisyMDAzLTAzLTExICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBzZXJ2ZXIvY29udGV4dF9pMzg2LmMsIHNlcnZlci9jb250ZXh0X3Bvd2VycGMuYywKKwkgIHNlcnZlci9jb250ZXh0X3NwYXJjLmMsIHNlcnZlci9kZWJ1Z2dlci5jLCBzZXJ2ZXIvcHJvY2Vzcy5jLAorCSAgc2VydmVyL3B0cmFjZS5jLCBzZXJ2ZXIvdGhyZWFkLmg6CisJQXR0YWNoaW5nIHRoZSBkZWJ1Z2dlciB0byBhIHJ1bm5pbmcgcHJvY2VzcyBzaG91bGQgd29yayBhZ2FpbgorCShyZXBvcnRlZCBieSBFcmljIFBvdWVjaCkuIE1pc2MgY2xlYW51cHMuCisKKwkqIGRsbHMvb2xlMzIvTWFrZWZpbGUuaW4sIGRsbHMvb2xlMzIvY29tcG9iai5jLAorCSAgZGxscy9vbGUzMi9jb21wb2JqX3ByaXZhdGUuaCwgZGxscy9vbGUzMi9naXQuYywgd2luZWRlZmF1bHQucmVnLAorCSAgZGxscy9vbGUzMi9tYXJzaGFsLmM6CisJTWlrZSBIZWFybiA8bWlrZUB0aGVvcmV0aWMuY29tPgorCUltcGxlbWVudGVkIHRoZSBnbG9iYWwgaW50ZXJmYWNlIHRhYmxlIG9iamVjdCB1c2luZyBhIHNpbXBsZSBsaW5rZWQKKwlsaXN0LgorCisyMDAzLTAzLTEwICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkb2N1bWVudGF0aW9uL2NvbnNvbGVzLnNnbWwsIGRvY3VtZW50YXRpb24vcnVubmluZy5zZ21sLAorCSAgZG9jdW1lbnRhdGlvbi9zYW1wbGVzL2NvbmZpZzoKKwlFcmljIFBvdWVjaCA8ZXJpYy5wb3VlY2hAd2FuYWRvby5mcj4KKwlQdXQgY29uc29sZSBkb2N1bWVudGF0aW9uIGluIHN5bmMgd2l0aCBjdXJyZW50IGNvbnNvbGUgc3RhdHVzLgorCisJKiBkbGxzL2Rzb3VuZC9zb3VuZDNkLmM6IFJvayBNYW5kZWxqYyA8cm9rbWFuZGVsamNAaG90bWFpbC5jb20+CisJLSBpbXBsZW1lbnRlZCBwYW5uaW5nCisJLSBpbXBsZW1lbnRlZCBjb25pbmcKKwktIG1hbnkgbWlub3IgZml4ZXMKKworCSogcmVsYXkzMi9zbm9vcC5jOiBVd2UgQm9ubmVzIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJU05PT1BfUHJpbnRBcmc6IGRvbid0IHRyeSB0byBkZWNpcGhlciBzbm9vcCBhcmdzIHdoZW4gc2VoIGNoYW5lbCBpcworCW9uLgorCisJKiBzZXJ2ZXIvcHRyYWNlLmM6IEVyaWMgUG91ZWNoIDxlcmljLnBvdWVjaEB3YW5hZG9vLmZyPgorCUZpeGVkIHR5cG8uCisKKwkqIGRsbHMvdXNlci9leHRpY29uLmM6IFZpdGFsaXkgTWFyZ29sZW4gPHdpbmUtcGF0Y2hAa2lldmluZm8uY29tPgorCUZpeGVkIHR5cG8gaW4gUHJpdmF0ZUV4dHJhY3RJY29uRXhXIGZ1bmN0aW9uLgorCisJKiBkbGxzL2NvbWN0bDMyL3RhYi5jOiBNaWtlIEhlYXJuIDxtaWtlQHRoZW9yZXRpYy5jb20+CisJSXQncyBub3QganVzdCBoZWlnaHQgdGhhdCBjYW4gYmUgc2V0IHRvIHRoZSBkZWZhdWx0IGJ5IHBhc3NpbmcgemVybyB0bworCVRDTV9TRVRJVEVNU0laRSwgYnV0IGFsc28gd2lkdGguCisKKwkqIHByb2dyYW1zL3dpbmVjb25zb2xlL3dpbmVjb25zb2xlLmM6CisJRXJpYyBQb3VlY2ggPGVyaWMucG91ZWNoQHdhbmFkb28uZnI+CisJLSBmaXhlZCBhbm90aGVyIHJlZ3Jlc3Npb24gaW4gc3ViLXByb2Nlc3MgY3JlYXRpb24gKGN1cnNlcyBiYWNrZW5kCisJICBtdXN0IGJlIGRlZmF1bHQgZm9yIEFsbG9jQ29uc29sZSgpIGludm9jYXRpb24pCisJLSBmaXhlZCBlbmRsZXNzIGxvb3Agd2hlbiB1bmtub3duIGFyZ3VtZW50IHdhcyBwYXNzZWQgb24gY29tbWFuZGxpbmUKKworCSogZGxscy93aW5tbS93YXZlbWFwL3dhdmVtYXAuYzogRXJpYyBQb3VlY2ggPGVyaWMucG91ZWNoQHdhbmFkb28uZnI+CisJRml4ZWQgZXJyb3IgY29kZSB3aGVuIG5vIG1hcHBpbmcgaXMgZm91bmQgZm9yIHdhdmUgaW5wdXQuCisKKwkqIGRsbHMvc2hsd2FwaS9yZWcuYywgZGxscy9zaGx3YXBpL3NobHdhcGkuc3BlYzoKKwlNYXhpbWUgQmVsbGVuZ+kgPG1heGltZS5iZWxsZW5nZUBsYXBvc3RlLm5ldD4KKwlJbXBsZW1lbnRlZCBTSFJlZ1NldFVTVmFsdWVBIGFuZCBTSFJlZ1NldFVTVmFsdWVXLgorCisyMDAzLTAzLTA3ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL250ZGxsL3J0bGJpdG1hcC5jOgorCVJld3JvdGUgUnRsRmluZHtNb3N0LExlYXN0fVNpZ25pZmljYW50Qml0IGluIGEgbW9yZSBwb3J0YWJsZSB3YXkuCisKKwkqIGRsbHMvZ2RpL2VuaG1mZHJ2L2luaXQuYzoKKwlUb255IExhbWJyZWd0cyA8dG9ueV9sYW1icmVndHNAdGVsdXNwbGFuZXQubmV0PgorCUphbml0b3JpYWwuIEdldCByaWQgb2YgVy0+QSBjYWxsLgorCisJKiBjb250cm9scy9zY3JvbGwuYzogQW5kcmV3IEpvaG5zdG9uIDxqb2huc3RvbmFtQGxvZ2ljYS5jb20+CisJTW92ZSBrZXlib2FyZCBldmVudCBwcm9jZXNzaW5nIGZyb20gV25kUHJvYyBjb2RlIGludG8gdGhlIGV4aXN0aW5nCisJaGVscGVyLgorCUNyZWF0ZSBhIGhlbHBlciBmdW5jdGlvbiBmb3IgdGhlIGNyZWF0ZSBldmVudCBhbmQgY2xlYW4gdXAgY29kZS4KKwlSZW1vdmUgbWFjcm8gZm9yIGRldGVjdGluZyBpbnZhbGlkIFNDUk9MTElORk8gc3RydWN0dXJlcyBhbmQgbWFrZSBpdAorCWFuIGlubGluZSBmdW5jdGlvbi4KKworCSogY29udHJvbHMvbWVudS5jOiBBZGFtIEd1bmR5IDxhcmdAY3liZXJzY2llbmNlLmNvbT4KKwlBbGxvdyBtb2RpZnlpbmcgYSBtZW51IHN0cmluZyB0byBiZSBOVUxMLgorCisJKiBkbGxzL2NvbWN0bDMyL3Rvb2xiYXIuYzogQWRhbSBHdW5keSA8YXJnQGN5YmVyc2NpZW5jZS5jb20+CisJVE9PTEJBUl9BZGRCaXRtYXAoKSBhbmQgVE9PTEJBUl9SZXBsYWNlQml0bWFwKCkgYXJlIG5vdCBzdXBwb3NlZCB0bworCW1vZGlmeSB0aGUgYml0bWFwIC0gd2UgY2FsbCBJbWFnZUxpc3RfQWRkTWFza2VkKCkgd2hpY2ggdHVybnMgYWxsCisJbWFza2VkIHBpeGVscyBibGFjay4gRml4ZWQgYnkgbWFraW5nIGEgY29weSBvZiB0aGUgYml0bWFwIHRvIGdpdmUgdG8KKwlJbWFnZUxpc3RfQWRkTWFza2VkKCkuCisKKwkqIGNvbnRyb2xzL3Njcm9sbC5jOiBBbmRyZXcgSm9obnN0b24gPGpvaG5zdG9uYW1AbG9naWNhLmNvbT4KKwktIEdldFNjcm9sbFJhbmdlIHplcm9zIHRoZSByZXR1cm4gcGFyYW1ldGVycyBmb3Igbm8gaW5mb1B0cgorCS0gR2V0U2Nyb2xsUmFuZ2UsIEdldFNjcm9sbFBvcyBhbmQgR2V0U2Nyb2xsSW5mbyBzZW5kIGEgbWVzc2FnZSB0byB0aGUKKwkgIHdpbmRvdyBmb3IgdGhlIFNCX0NUTCBjYXNlCisJLSBNb3ZlZCBjb2RlIGZvciBHZXRTY3JvbGwqIHRvIGludG8gd29ya2VyIGZ1bmN0aW9ucworCisJKiBkbGxzL3dpbm1tL3dpbmVvc3MvYXVkaW8uYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlGaXhlZCBidWcgd2hlcmUgdGhlIGVuYWJsZSBzdGF0ZSBvZiB0aGUgb3V0cHV0IGFuZCBpbnB1dCB3ZXJlIG5vdCBzZXQKKwlwcm9wZXJseSB3aGVuIGRvaW5nIGZ1bGwgZHVwbGV4LgorCUZpeGVkIGJ1ZyB3aGVyZSByZXNldHRpbmcgdGhlIG91dHB1dCB3b3VsZCBhZmZlY3QgdGhlIGNhcHR1cmUgd2hlbgorCWRvaW5nIGZ1bGwgZHVwbGV4LgorCisJKiBkbGxzL2Rzb3VuZC90ZXN0cy9kc291bmQuYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlGaXhlZCBhIGJ1ZyB3aGVyZSBhIGNhcHR1cmUgZGV2aWNlIHdhcyB1c2VkIGFmdGVyIGl0IGZhaWxlZCB0byBvcGVuCisJZHVlIHRvIGEgbWlzc2luZyBkcml2ZXIuCisJQWRkZWQgdGVzdHMgdG8gdHJ5IGFsbCBwb3NzaWJsZSBjb21iaW5hdGlvbnMgb2Ygc2FtcGxlIHJhdGUsIHNhbXBsZQorCXNpemUgYW5kIG1vbm8vc3RlcmVvLgorCisJKiBkbGxzL3dpbmVwcy9pbml0LmMsIGRsbHMvd2luc3Bvb2wvaW5mby5jOgorCU1hcmN1cyBNZWlzc25lciA8bWVpc3NuZXJAc3VzZS5kZT4KKwlXYXMgdXNpbmcgdGhlIHdyb25nIGRlZmluZSBmb3IgdGhlIENVUFMgc29uYW1lLgorCisJKiBkbGxzL2NvbWN0bDMyL2xpc3R2aWV3LmM6IEFkYW0gR3VuZHkgPGFyZ0BjeWJlcnNjaWVuY2UuY29tPgorCVdoZW4gc2hpZnRpbmcgdGhlIGxpc3QncyBpbmRpY2VzLCB3ZSBtdXN0IG5vdCBzZW5kIG5vdGlmeSBtZXNzYWdlcyBpZgorCXdlIGhhdmUgdG8gcmVmb2N1cy4gSXRlbSBtb2RpZmljYXRpb24gaGFuZGxlcnMgYXJlIG5vdCBzdXBwb3NlZCB0byBiZQorCWNhbGxlZCBoZXJlLgorCisJKiBwcm9ncmFtcy93aW5lY29uc29sZS93aW5lY29uc29sZS5jOgorCUVyaWMgUG91ZWNoIDxlcmljLnBvdWVjaEB3YW5hZG9vLmZyPgorCUZpeGVkIHJlZ3Jlc3Npb24gaW4gc3ViLXByb2Nlc3MgY3JlYXRpb24uCisKKwkqIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21lc2EuYywgZGxscy9kZHJhdy9kZHJhdy91c2VyLmM6CisJTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwktIHNvbWUgQ2FwcyBjbGVhbi11cCB3aGVuIG5vIE9wZW5HTCBjb21waWxlZCBpbgorCS0gZml4IHNvbWUgZm9udHMgZGlzcGxheWluZyBwcm9ibGVtcworCisJKiBkb2N1bWVudGF0aW9uL3BhdGNoZXMuc2dtbDoKKwlUb255IExhbWJyZWd0cyA8dG9ueV9sYW1icmVndHNAdGVsdXNwbGFuZXQubmV0PgorCUNsYXJpZnkgcGF0Y2ggcmVxdWlyZW1lbnRzLgorCisJKiBkbGxzL3dpbm1tL01ha2VmaWxlLmluOiBTdGV2ZW4gRWR3YXJkcyA8c3RldmVuX2VkNDE1M0B5YWhvby5jb20+CisJQWRkIGltcG9ydCBvZiBudGRsbC4KKworCSogZGxscy9jb21jdGwzMi9wcm9wc2hlZXQuYzogQWRhbSBHdW5keSA8YXJnQGN5YmVyc2NpZW5jZS5jb20+CisJUFJPUFNIRUVUX0NyZWF0ZURpYWxvZygpIGlzIGRvY3VtZW50ZWQgdG8gcmV0dXJuIC0xIG9uIGZhaWx1cmUsIGFuZAorCXRoZSBkaWFsb2cgaGFuZGxlIG9uIHN1Y2Nlc3MuCisKKwkqIGRsbHMvY29tbWRsZy9maWxlZGxnOTUuYzogQWRhbSBHdW5keSA8YXJnQGN5YmVyc2NpZW5jZS5jb20+CisJQXJyYW5nZUN0cmxQb3NpdGlvbnMoKSBkaWQgbm90IGNvcGUgY29ycmVjdGx5IHdpdGggYSB0ZW1wbGF0ZWQgZGlhbG9nCisJd2hpY2ggaGFzIGFuIGV4dHJhICdwcmV2aWV3JyBjb250cm9sIHRvIHRoZSByaWdodCBvZiB0aGUgJ21hcmtlcicKKwljb250cm9sLgorCUZJTEVETEc5NV9IYW5kbGVfR2V0RmlsZVBhdGgoKSBkaWQgbm90IHJldHVybiB0aGUgcGF0aCAtIGl0IHdhc24ndAorCWNvbWJpbmluZyB0aGUgcGF0aCB3aXRoIHRoZSBmaWxlbmFtZS4KKworMjAwMy0wMy0wNiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogbGlicmFyeS9sZHQuYzoKKwlIYXJkY29kZSBzZXRfdGhyZWFkX2FyZWEgc3lzY2FsbCBudW1iZXIgdG8gYXZvaWQgdHJvdWJsZSB3aXRoIGJyb2tlbgorCWhlYWRlcnMuCisKKwkqIGRsbHMvbnRkbGwvbG9hZGVyLmMsIGRsbHMvbnRkbGwvbnRkbGxfbWlzYy5oLCBpbmNsdWRlL21vZHVsZS5oLAorCSAgbG9hZGVyL21vZHVsZS5jLCBsb2FkZXIvcGVfaW1hZ2UuYzoKKwlFcmljIFBvdWVjaCA8ZXJpYy5wb3VlY2hAd2FuYWRvby5mcj4KKwktIGltcGxlbWVudGVkIExkckdldFByb2NlZHVyZUFkZHJlc3MgYW5kIG1hZGUgdXNlIG9mIGl0IGZvcgorCSAgR2V0UHJvY0FkZHJlc3MKKwktIGltcGxlbWVudGVkIExkckdldERsbEhhbmRsZSBhbmQgbWFkZSB1c2Ugb2YgaXQgaW4gR2V0TW9kdWxlSGFuZGxlCisJLSByZW1vdmVkIE1PRFVMRV9EbGxUaHJlYWREZXRhY2ggZnJvbSBsb2FkZXIvbW9kdWxlLmMgKHNob3VsZCBoYXZlCisJICBiZWVuIHJlbW92ZWQgaW4gYSBwcmV2aW91cyBwYXRjaCkKKworCSogZGxscy9vcGVuZ2wzMi9tYWtlX29wZW5nbCwgZGxscy9vcGVuZ2wzMi9vcGVuZ2wzMi5zcGVjLCBkbGxzL29wZW5nbDMyL3dnbC5jOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJU3VwcG9ydCAnc3R1Yicgd2dsR2V0RXh0ZW5zaW9uc1N0cmluZ0VYVCBmdW5jdGlvbi4KKworCSogZGxscy9kc291bmQvY2FwdHVyZS5jLCBkbGxzL2Rzb3VuZC9kc291bmRfbWFpbi5jLAorCSAgZGxscy9kc291bmQvZHNvdW5kX3ByaXZhdGUuaCwgZGxscy9kc291bmQvbWl4ZXIuYywKKwkgIGRsbHMvZHNvdW5kL3ByaW1hcnkuYzoKKwlSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUFkZGVkIGEgY29uZmlndXJhdGlvbiBvcHRpb24gZm9yIHNldHRpbmcgdGhlIGhhcmR3YXJlIGFjY2VsZXJhdGlvbgorCWxldmVsIGp1c3QgbGlrZSB0aGUgZGlyZWN0IHNvdW5kIGNvbnRyb2wgcGFuZWwgYXBwLgorCU1vcmUgd29yayBvbiB0aGUgZnVsbCBkdXBsZXggaW50ZXJmYWNlIHNvIHRoZSBjb21waWxlIHdhcm5pbmcgaXMgbm8KKwlsb25nZXIgZ2VuZXJhdGVkLiAgRnVsbCBkdXBsZXggaW50ZXJmYWNlIGlzIHN0aWxsIHN0dWJiZWQgb3V0LgorCU1vdmVkIGZ1bGwgZHVwbGV4IG1peGVyIHJlc2V0IGZpeCBpbnRvIHdpbmVvc3MgZHJpdmVyIHdoZXJlIGl0CisJYmVsb25ncy4KKwlBZGRlZCBzb21lIG1vcmUgbG9ja2luZyBmaXhlcy4KKwlDYXB0dXJlIGFuZCBmdWxsIGR1cGxleCBhcmUgbm93IHN0YWJsZS4KKworCSogaW5jbHVkZS9kc291bmQuaDogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlGaXhlZCBhIEZJWE1FIGZvciBmdWxsIGR1cGxleC4KKworCSogZGxscy9jb21tZGxnL3ByaW50ZGxnLmMsIGRsbHMvY29tY3RsMzIvaW1hZ2VsaXN0LmM6CisJVG9ueSBMYW1icmVndHMgPHRvbnlfbGFtYnJlZ3RzQHRlbHVzcGxhbmV0Lm5ldD4KKwlKYW5pdG9yaWFsLiBHZXQgcmlkIG9mIFctPkEgY2FsbC4KKworCSogZGxscy9vbGVhdXQzMi92YXJpYW50LmM6IEFkYW0gR3VuZHkgPGFyZ0BjeWJlcnNjaWVuY2UuY29tPgorCUhhbmRsZSBjb2VyY2luZyBWVF9ESVNQQVRDSCBpbnRvIFZUX1BUUi4KKworCSogZGxscy9jb21jdGwzMi90cmVldmlldy5jOiBBZGFtIEd1bmR5IDxhcmdAY3liZXJzY2llbmNlLmNvbT4KKwlUUkVFVklFV19VcGRhdGVTY3JvbGxCYXJzKCkgbm93IGNvcGVzIHdpdGggYW4gZW1wdHkgdHJlZS4KKworMjAwMy0wMy0wNSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9udGRsbC9NYWtlZmlsZS5pbiwgZG9jdW1lbnRhdGlvbi9jb25maWd1cmluZy5zZ21sLAorCSAgZG9jdW1lbnRhdGlvbi93aW5lLmNvbmYubWFuLCBkb2N1bWVudGF0aW9uL3dpbmUubWFuLmluLAorCSAgaW5jbHVkZS9tb2R1bGUuaCwgbG9hZGVyL2VsZi5jLCBsb2FkZXIvbG9hZG9yZGVyLmMsIGxvYWRlci9tb2R1bGUuYywKKwkgIGxvYWRlci9uZS9tb2R1bGUuYzoKKwlFcmljIFBvdWVjaCA8ZXJpYy5wb3VlY2hAd2FuYWRvby5mcj4KKwlSZW1vdmVkIFNPIGxvYWRpbmcgdHlwZS4KKworCSogcHJvZ3JhbXMvd2NtZC93Y21kbWFpbi5jOiBTeWx2YWluIFBldHJlb2xsZSA8c3BldHJlb2xsZUB5YWhvby5mcj4KKwlBbGxvdyB0byBydW4gYXV0b2V4ZWMuYmF0IHdoZW4gbGF1bmNoaW5nIHdjbWQsIGl0IHdhcyBicm9rZW4gZHVlIHRvIGEKKwlmdW5jdGlvbiBjaGFuZ2UuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGxmb2xkZXIuYzogVml0YWxpeSBNYXJnb2xlbiA8d2luZS1wYXRjaEBraWV2aW5mby5jb20+CisJQWRkIGZldyBTRkdBT19DQU4qIGF0dHJpYnV0ZXMgdG8gc3VwcG9ydGVkIGxpc3QuCisKKwkqIHRvb2xzL2V4YW1pbmUtcmVsYXk6IER1YW5lIENsYXJrIDxkY2xhcmtAYWthbWFpbC5jb20+CisJQWRkIGZ1bGwgbGlzdGluZyBmb3JtYXQgb3B0aW9uLgorCUZpeCBhbiBpbmZpbml0ZSBsb29wIGlmIHRoZSBsYXN0IGxpbmUgaXMgYSBwYXJ0aWFsIGxpbmUuCisKKwkqIGRsbHMvZHNvdW5kL3NvdW5kM2QuYzogUm9rIE1hbmRlbGpjIDxyb2ttYW5kZWxqY0Bob3RtYWlsLmNvbT4KKwlDaGFuZ2VkIHNvbWUgc3R1ZmYgc28gZGlzdGFuY2UgYXR0ZW51YXRpb24gd29ya3MgZm9yIGJvdGggM2QKKwlwcm9jZXNzaW5nIG1vZGVzLgorCisyMDAzLTAzLTA0ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL250ZGxsL3NpZ25hbF9pMzg2LmMsIGRsbHMvbnRkbGwvc2lnbmFsX3Bvd2VycGMuYywKKwkgIGRsbHMvbnRkbGwvc2lnbmFsX3NwYXJjLmMsIGluY2x1ZGUvd2luZS9zZXJ2ZXJfcHJvdG9jb2wuaCwKKwkgIHNjaGVkdWxlci9jbGllbnQuYywgc2NoZWR1bGVyL3Byb2Nlc3MuYywgc2VydmVyL2NvbnRleHRfaTM4Ni5jLAorCSAgc2VydmVyL2NvbnRleHRfcG93ZXJwYy5jLCBzZXJ2ZXIvY29udGV4dF9zcGFyYy5jLCBzZXJ2ZXIvcHJvY2Vzcy5jLAorCSAgc2VydmVyL3B0cmFjZS5jLCBzZXJ2ZXIvdGhyZWFkLmMsIHNlcnZlci90aHJlYWQuaCwgc2VydmVyL3RyYWNlLmM6CisJVXNlIFNJR1VTUjEgaW5zdGVhZCBvZiBTSUdTVE9QIHRvIHN1c3BlbmQgdGhyZWFkcy4KKworCSogZGxscy93aW5tbS90ZXN0cy93YXZlLmMsIGRsbHMvd2lubW0vd2lubW0uYzoKKwlSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUFkZGVkIHdhdmVJbiB0ZXN0cy4KKworCSogZmlsZXMvcHJvZmlsZS5jOgorCUZpeGVkIGludCBjb252ZXJzaW9uIGluIEdldFByaXZhdGVQcm9maWxlSW50IHNvIHRoYXQgYWxsIHRoZSB0ZXN0cworCXN1Y2NlZWQuCisKKwkqIGRsbHMvbnRkbGwvbG9hZGVyLmMsIGRsbHMvbnRkbGwvbnRkbGwuc3BlYywgaW5jbHVkZS9tb2R1bGUuaCwKKwkgIGluY2x1ZGUvd2ludGVybmwuaCwgbG9hZGVyL21vZHVsZS5jLCBzY2hlZHVsZXIvcHJvY2Vzcy5jLAorCSAgc2NoZWR1bGVyL3RocmVhZC5jOgorCUVyaWMgUG91ZWNoIDxlcmljLnBvdWVjaEB3YW5hZG9vLmZyPgorCS0gYWRkZWQgTGRyKiBpbmZvcm1hdGlvbiB0byBpbmNsdWRlL3dpbnRlcm5sLmgKKwktIGV4cG9ydGVkIGEgZmV3IGZ1bmN0aW9ucy9nbG9iYWwgdmFycyBmcm9tIG1vZHVsZS5oIHdoaWxlIHdlIG1vdmUKKwkgIGNvZGUgZnJvbSBsb2FkZXIvbW9kdWxlLmMgdG8gZGxscy9udGRsbC9sb2FkZXIuYworCS0gaW1wbGVtZW50ZWQgTGRyU2h1dGRvd25Qcm9jZXNzLCBMZHJTaHV0ZG93blRocmVhZCBhbmQKKwkgIExkckRpc2FibGVUaHJlYWRDYWxsb3V0c0ZvckRsbCAoYW5kIG1hZGUgdXNlIG9mIHRoZW0pCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzLy5jdnNpZ25vcmUsIGRsbHMva2VybmVsL3Rlc3RzL01ha2VmaWxlLmluLAorCSAgZGxscy9rZXJuZWwvdGVzdHMvcHJvZmlsZS5jOgorCVN0ZWZhbiBMZWljaHRlciA8U3RlZmFuLkxlaWNodGVyQGNhbUxpbmUuY29tPgorCUFkZGVkIHRlc3RzIGZvciBHZXRQcml2YXRlUHJvZmlsZUludC4KKworCSogZGxscy9jb21jdGwzMi90YWIuYzogVml0YWxpeSBNYXJnb2xlbiA8d2luZS1wYXRjaEBraWV2aW5mby5jb20+CisJRml4IGludmlzaWJsZSB0YWJzIGluIFRhYkNvbnRyb2xzIHdpdGggZml4ZWQgdGFiIHdpZHRoLgorCisJKiBkb2N1bWVudGF0aW9uL3NhbXBsZXMvY29uZmlnOiBTeWx2YWluIFBldHJlb2xsZSA8c3BldHJlb2xsZUB5YWhvby5mcj4KKwlEb2N1bWVudCBbV2luTU1dIGRyaXZlcnMgb3B0aW9ucy4KKworCSogZGxscy9tc3ZjcnQvbXN2Y3J0LnNwZWMsIGRsbHMvbXN2Y3J0L3RpbWUuYzoKKwlNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlBZGRlZCBfZGF5bGlnaHQgc3R1YiBpbnQsIGFuZCBfX3BfX2RheWxpZ2h0IGZ1bmN0aW9uLgorCisJKiBwcm9ncmFtcy93aW5lZGJnL2RiZy55LCBwcm9ncmFtcy93aW5lZGJnL2RlYnVnZ2VyLmgsCisJICBwcm9ncmFtcy93aW5lZGJnL2ludHZhci5oLCBwcm9ncmFtcy93aW5lZGJnL3dpbmVkYmcuYzoKKwlFcmljIFBvdWVjaCA8ZXJpYy5wb3VlY2hAd2FuYWRvby5mcj4KKwlBZGRlZCBzdXBwb3J0IGZvciBDdHJsLUMgaGFuZGxpbmcgaWYgbm90IHJ1bm5pbmcgaW4gYSBjb25zb2xlLgorCUFkZGVkIChtYWludGVuYW5jZSkgY29uZmlndXJhdGlvbiB2YXIgdG8gdHJpZ2dlciBleHRlcm5hbCBkZWJ1Z2dlciBvbgorCXdpbmVkYmcncyBleGNlcHRpb25zLgorCisJKiBkbGxzL3NobHdhcGkvc3RyaW5nLmM6CisJUm9sZiBLYWxiZXJtYXR0ZXIgPHJvbGYua2FsYmVybWF0dGVyQGNpdGVuZy5jb20+CisJRml4IGVuZGxlc3MgbG9vcCBpbiBTdHJQQnJrVy4KKworCSogZGxscy9vcGVuZ2wzMi9tYWtlX29wZW5nbCwgZGxscy9vcGVuZ2wzMi9vcGVuZ2xfZXh0LmM6CisJTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwktIHVwZGF0ZSB0byBsYXRlc3QgR0wgc3BlYyBmaWxlcworCS0gYWRkZWQgS1RYIEJ1ZmZlciBSZWdpb24gZXh0ZW5zaW9uCisKKwkqIGRsbHMvd2luZWRvcy9kb3NleGUuaCwgZGxscy93aW5lZG9zL2Rvc3ZtLmMsIGRsbHMvd2luZWRvcy9pbnQzMS5jLAorCSAgZGxscy93aW5lZG9zL2ludGVycnVwdHMuYzoKKwlKdWtrYSBIZWlub25lbiA8amhlaUBpa2kuZmk+CisJTW92ZSByZWFsIG1vZGUgaW50ZXJydXB0IGVtdWxhdGlvbiBjb2RlIHRvIGZpbGUgaW50ZXJydXB0cy5jLgorCVJlbW92ZSBsYXN0IHdyYXBwZXIgY2hlY2sgZnJvbSBpbnQzMSBoYW5kbGVyLgorCU1vdmUgUk0vUE0gaGFyZHdhcmUgaW50ZXJydXB0IGVtdWxhdGlvbiBjb2RlIHRvIHNlcGFyYXRlIGZ1bmN0aW9ucy4KKworCSogZGxscy9rZXJuZWwva2VybmVsMzIuc3BlYywgZGxscy93aW5lZG9zL2ludDIxLmMsIG1zZG9zL2ludDIxLmM6CisJSnVra2EgSGVpbm9uZW4gPGpoZWlAaWtpLmZpPgorCU1vdmUgZGVjb2Rpbmcgb2YgbG9uZyBmaWxlIG5hbWUgZnVuY3Rpb25zIHRvIHdpbmVkb3MuCisJTW92ZSBzb21lIGludDIxIGZ1bmN0aW9ucyB0byB3aW5lZG9zLgorCisJKiBmaWxlcy9kcml2ZS5jOiBFbnJpY28gSG9ybiA8ZmFybWJveTFAc3ViZGltZW5zaW9uLmNvbT4KKwlTaW1wbGUgd2F5IHRvIGdldCB0aGUgbGFiZWwgb2YgbWl4ZWQtbW9kZSBjZC4KKworCSogY29udHJvbHMvbWVudS5jOiBUb255IExhbWJyZWd0cyA8dG9ueV9sYW1icmVndHNAdGVsdXNwbGFuZXQubmV0PgorCUphbml0b3JpYWwuIEdldCByaWQgb2YgVy0+QSBjYWxsLgorCisJKiBkbGxzL29sZWF1dDMyL3ZhcmlhbnQuYzogTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJVmFyQWRkOiBzZXQgJ3JjJyBjb3JyZWN0bHkgZnJvbSBCU1RSIGFkZGl0aW9uLgorCisJKiBkbGxzL29sZWF1dDMyL3R5cGVsaWIuYzogTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJSGFuZGxlIFZUX1BUUi0+VlRfVkFSSUFOVCBhcmd1bWVudHMgb2YgSW52b2tlLgorCisJKiBwcm9ncmFtcy93aW5lY29uc29sZS93aW5lY29uc29sZS5jOgorCUVyaWMgUG91ZWNoIDxlcmljLnBvdWVjaEB3YW5hZG9vLmZyPgorCS0gYWRkZWQgYWJpbGl0eSB0byB1c2UgLS1iYWNrZW5kPShjdXJzZXN8dXNlcikgYXMgd2luZWNvbnNvbGUgcGFyYW1ldGVyCisJLSByZXdyb3RlIHdpbmVjb25zb2xlIGNvbW1hbmQgbGluZSBvcHRpb24gcGFyc2luZworCisJKiBwcm9ncmFtcy93aW5lY29uc29sZS9jdXJzZXMuYzogRXJpYyBQb3VlY2ggPGVyaWMucG91ZWNoQHdhbmFkb28uZnI+CisJSW4gY3Vyc2VzIGJhY2tlbmQsIGFwcGx5IHRoZSBxdWljay1lZGl0IGRpcmVjdGl2ZSBmcm9tIHJlZ2lzdHJ5LgorCisJKiBkbGxzL2Rzb3VuZC9idWZmZXIuYywgZGxscy9kc291bmQvY2FwdHVyZS5jLAorCSAgZGxscy9kc291bmQvZHNvdW5kX21haW4uYywgZGxscy9kc291bmQvZHNvdW5kX3ByaXZhdGUuaCwKKwkgIGRsbHMvZHNvdW5kL21peGVyLmMsIGRsbHMvZHNvdW5kL3Rlc3RzL2Rzb3VuZC5jOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJRml4ZWQgY29kZSB0byBoYW5kbGUgZnVsbCBkdXBsZXggcHJvcGVybHkuCisJQWRkZWQgc3VwcG9ydCBmb3IgY2FwdHVyZSBkcml2ZXIgKGRpc2FibGVkKS4KKwlGaXhlZCBkaXJlY3Qgc291bmQgY2FwdHVyZSB0ZXN0IHRvIGhhbmRsZSBub3RpZmljYXRpb25zIHByb3Blcmx5LgorCisJKiBkbGxzL3dpbm1tL3dpbmVvc3MvYXVkaW8uYywgaW5jbHVkZS9kc2RyaXZlci5oOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJQ2FwdHVyZSB0aHJlYWQgY2hlY2tzIHF1ZXVlIGZvciBtb3JlIGhlYWRlcnMgYmVmb3JlIGdpdmluZyBlcnJvci4KKwlDYXB0dXJlIGRyaXZlciB3b3JrIHN0YXJ0ZWQuCisKKzIwMDMtMDItMjggIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGxvYWRlci9tb2R1bGUuYzoKKwlPbmx5IGRvIHRoZSB1bmxvYWRfZGxsIHNlcnZlciBjYWxsIGF0IHRoZSB0aW1lIHdlIGFjdHVhbGx5IHVubG9hZCB0aGUKKwlkbGwuCisKKwkqIHNlcnZlci9wcm9jZXNzLmMsIHNlcnZlci90aHJlYWQuYywgc2VydmVyL3RocmVhZC5oOgorCVBldGVyIEh1bm5pc2V0dCA8cGV0ZXJAdHJhbnNnYW1pbmcuY29tPgorCVN1c3BlbmRlZCB0aHJlYWRzIHNob3VsZCBub3QgYWNxdWlyZSBzeW5jaHJvbml6YXRpb24gb2JqZWN0cy4KKworCSogZG9jdW1lbnRhdGlvbi9mYXEuc2dtbDogQW5kcmVhcyBNb2hyIDxhbmRpQHJobHgwMS5maHQtZXNzbGluZ2VuLmRlPgorCS0gc3VwcG9ydGVkIFBsYXRmb3JtcyBkaWRuJ3QgbWVudGlvbiBNYWNPUyBYIHByb21pbmVudGx5IGVub3VnaCBieQorCSAgZmFyLi4uCisJLSBhZGQgc29tZSBVUkxzLCBjb3JyZWN0IFVSTCBoYW5kbGluZworCS0gcmVtb3ZlIGxpbnV4LmNvcmVsLmNvbSwgYXMgaXQncyBERUFEIDotXAorCisyMDAzLTAyLTI3ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL250ZGxsL3NpZ25hbF9pMzg2LmMsIGluY2x1ZGUvdGhyZWFkLmgsIHNjaGVkdWxlci9zeXNkZXBzLmMsCisJICB0b29scy93aW5lYnVpbGQvcmVsYXkuYzoKKwlQcm9wZXJseSBzYXZlL3Jlc3RvcmUgJWdzIHJlZ2lzdGVyIGFjcm9zcyAxNi1iaXQgY2FsbHMuCisKKwkqIGNvbnRyb2xzL2VkaXQuYywgZGxscy9nZGkvLmN2c2lnbm9yZSwgZGxscy9nZGkvTWFrZWZpbGUuaW4sCisJICBkbGxzL2dkaS9nZGkxNi5jLCBkbGxzL2dkaS9wcmludGRydi5jLCBkbGxzL2tlcm5lbC8uY3ZzaWdub3JlLAorCSAgZGxscy9rZXJuZWwvTWFrZWZpbGUuaW4sIGRsbHMva2VybmVsL3V0dGh1bmsuYywKKwkgIGRsbHMvbXN2aWRlby8uY3ZzaWdub3JlLCBkbGxzL21zdmlkZW8vTWFrZWZpbGUuaW4sCisJICBkbGxzL21zdmlkZW8vbXN2aWRlbzE2LmMsIGRsbHMvc2V0dXBhcGkvLmN2c2lnbm9yZSwKKwkgIGRsbHMvc2V0dXBhcGkvTWFrZWZpbGUuaW4sIGRsbHMvc2V0dXBhcGkvdmlydGNvcHkuYywKKwkgIGRsbHMvdXNlci8uY3ZzaWdub3JlLCBkbGxzL3VzZXIvTWFrZWZpbGUuaW4sIGRsbHMvdXNlci9ob29rMTYuYywKKwkgIGRsbHMvdXNlci9kZGUvZGRlbWwxNi5jLCBkbGxzL3VzZXIvcHJvcGVydHkuYywgZGxscy91c2VyL3VzZXIxNi5jLAorCSAgZGxscy91c2VyL3duZDE2LmMsIGRsbHMvd2luYXNwaS8uY3ZzaWdub3JlLCBkbGxzL3dpbmFzcGkvTWFrZWZpbGUuaW4sCisJICBkbGxzL3dpbmFzcGkvd2luYXNwaTE2LmMsIGRsbHMvd2lubW0vLmN2c2lnbm9yZSwKKwkgIGRsbHMvd2lubW0vTWFrZWZpbGUuaW4sIGRsbHMvd2lubW0vbWVzc2FnZTE2LmMsCisJICBkbGxzL3dpbm1tL21tc3lzdGVtLmMsIGluY2x1ZGUvd293bnQzMi5oLCBvYmplY3RzL2RjLmMsCisJICBvYmplY3RzL2ZvbnQuYywgb2JqZWN0cy9tZXRhZmlsZS5jLCB3aW5kb3dzL2RyaXZlci5jLAorCSAgd2luZG93cy9wYWludGluZy5jOgorCVJlcGxhY2VkIG1vc3QgdXNlcyBvZiB0aGUgYXV0by1nZW5lcmF0ZWQgZ2x1ZSBjb2RlIGJ5IGV4cGxpY2l0IGNhbGxzCisJdG8gV09XQ2FsbGJhY2sxNkV4LgorCisJKiBkbGxzL3NoZWxsMzIvc2hsZm9sZGVyLmM6IEFsYmVydG8gTWFzc2FyaSA8YW1hc3NhcmlAcHJvZ3Jlc3MuY29tPgorCUZpeGVzIHRvIElTaGVsbEZvbGRlcjo6R2V0QXR0cmlidXRlc09mOgorCS0gYmVmb3JlIGNvbXB1dGluZyB0aGUgZmxhZ3MgZm9yIHRoZSByZXF1ZXN0ZWQgZW50cnksIHJlc2V0IHRoZSBiaXRzCisJICB3ZSBkb24ndCBzdXBwb3J0LCBvciB3ZSB3aWxsIHRlbGwgc29tZXRoaW5nIHdlIGRpZG4ndCB3YW50IHRvLgorCS0gaW5zdGVhZCBvZiB1c2luZyBhbiBoZXhhZGVjaW1hbCBtYXNrIGZvciB0aGUgdW5zdXBwb3J0ZWQgZmxhZ3MsIHVzZQorCSAgYSBtYXNrIG1hZGUgb2YgdGhlIHN1cHBvcnRlZCBvbmVzCisJLSByZXBsYWNlIHRoZSBvYnNjdXJlIGhleGFkZWNpbWFsIHZhbHVlcyB3aXRoIHRoZSBwcm9wZXIgbWFjcm9zCisKKwkqIGRsbHMva2VybmVsL3dvd3RodW5rLmMsIHNjaGVkdWxlci90aHJlYWQuYzoKKwlNb3ZlZCBDcmVhdGVUaHJlYWQxNiB0byBrZXJuZWwsIGFuZCBtYWRlIGl0IHVzZSBXT1dDYWxsYmFjazE2LgorCisJKiBkb2N1bWVudGF0aW9uL2RlYnVnZ2VyLnNnbWwsIHByb2dyYW1zL3dpbmVkYmcvaW50dmFyLmgsCisJICBwcm9ncmFtcy93aW5lZGJnL3dpbmVkYmcuYzoKKwlFcmljIFBvdWVjaCA8ZXJpYy5wb3VlY2hAd2FuYWRvby5mcj4KKwlSZW1vdmVkIG5vIGxvbmdlciBuZWVkZWQgVXNlWFRlcm0gaW50ZXJuYWwgdmFyaWFibGUuCisKKwkqIHByb2dyYW1zL3djbWQvYnVpbHRpbnMuYywgcHJvZ3JhbXMvd2NtZC9kaXJlY3RvcnkuYywKKwkgIHByb2dyYW1zL3djbWQvd2NtZG1haW4uYzoKKwlFcmljIFBvdWVjaCA8ZXJpYy5wb3VlY2hAd2FuYWRvby5mcj4KKwktIGRvbid0IGNyZWF0ZSBhIG5ldyBjb25zb2xlIHVwb24gc3RhcnR1cAorCS0gbm8gbG9uZ2VyIGFzc3VtZSB3ZSdyZSBhbHdheXMgYXR0YWNoZWQgdG8gYSBjb25zb2xlCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkbGxzL2dkaS9NYWtlZmlsZS5pbjoKKwlHZXQgcmlkIG9mIHdpbjE2ZHJ2IGRpcmVjdG9yeS4KKworCSogZGxscy9nZGkvTWFrZWZpbGUuaW4sIGRsbHMvZ2RpL2RyaXZlci5jLCBkbGxzL2dkaS9nZGkuZXhlLnNwZWM6CisJUmVtb3ZlZCB0aGUgMTYtYml0IGdyYXBoaWNzIGRyaXZlciBzdXBwb3J0OyB0aGlzIGhhcyBiZWVuIGJyb2tlbiBmb3IgYQorCWxvbmcgdGltZSBhbnl3YXkuCisKKzIwMDMtMDItMjYgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMva2VybmVsL2tlcm5lbF9tYWluLmMsIGRsbHMvd2luZWRvcy9pbnQzMS5jLCBpbmNsdWRlL21pc2NlbXUuaCwKKwkgIGluY2x1ZGUvc2VsZWN0b3JzLmgsIGluY2x1ZGUvd2luZS9saWJyYXJ5LmgsIGxpYnJhcnkvbGR0LmMsCisJICBsb2FkZXIvdGFzay5jLCBtZW1vcnkvaW5zdHIuYywgbWVtb3J5L3NlbGVjdG9yLmMsCisJICBzY2hlZHVsZXIvc3lzZGVwcy5jLCBzY2hlZHVsZXIvdGhyZWFkLmM6CisJTW92ZWQgTERUIHNlbGVjdG9yIGFsbG9jYXRpb24gcm91dGluZXMgdG8gbGlid2luZS4KKwlBZGRlZCBzdXBwb3J0IGZvciBjb3JyZWN0IGxvY2tpbmcgb2YgYWxsIExEVCBvcGVyYXRpb25zLgorCUFkZGVkIHNlcGFyYXRlIGZ1bmN0aW9ucyB0byBtYW5pcHVsYXRlIHRoZSAlZnMgc2VsZWN0b3IsIHdoaWNoIGFsbG93cworCXVzaW5nIGEgZ2xvYmFsIEdEVCBzZWxlY3RvciBvbiByZWNlbnQgTGludXgga2VybmVscy4KKworCSogZmlsZXMvZmlsZS5jOgorCU1vdmVGaWxlW0FXXSBzaG91bGQgc2ltcGx5IGNhbGwgTW92ZUZpbGVFeFtBV10uIFNob3VsZCBmaXggaXNzdWUKKwlyZXBvcnRlZCBieSBSb2RlcmljayBDb2xlbmJyYW5kZXIuCisKKwkqIGRsbHMvd2luZWRvcy9zb3VuZGJsYXN0ZXIuYzogU3lsdmFpbiBQZXRyZW9sbGUgPHNwZXRyZW9sbGVAeWFob28uZnI+CisJSW1wbGVtZW50ZWQgRFNQIFZlcnNpb24gY29tbWFuZC4KKworCSogdG9vbHMvd3JjL3dyYy5jLCB0b29scy93cmMvd3JjLmgsIHRvb2xzL3dyYy93cmMubWFuLAorCSAgdG9vbHMvd3JjL3dyaXRlcmVzLmMsIHRvb2xzL3dyYy93cml0ZXJlcy5oOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJUmVtb3ZlIGFzc2VtYmx5IGdlbmVyYXRpb24gZnJvbSB3cmMuCisKKwkqIGRsbHMvd2luZWRvcy9pbnQxMC5jLCBpbmNsdWRlL21pc2NlbXUuaCwgbXNkb3MvZG9zbWVtLmM6CisJSnVra2EgSGVpbm9uZW4gPGpoZWlAaWtpLmZpPgorCU1vdmUgY29udHJvbGxlciBpbmZvIGFuZCBzdGF0ZS9mdW5jdGlvbmFsaXR5IGluZm8gaW5pdGlhbGl6YXRpb24gdG8KKwl3aW5lZG9zLiBDb252ZXJ0IG1hbnkgaW5jb3JyZWN0bHkgc3RhdGljIGZpZWxkcyBpbnRvIGR5bmFtaWMKKwlmaWVsZHMuIEZpeCB2ZXNhIG1vZGUgcmVwb3J0aW5nIGFuZCByZWFsbG9jIG1lbW9yeSBibG9jayBjb25zaXN0ZW5jeQorCWNoZWNrcy4KKworCSogcHJvZ3JhbXMvd2luZWNvbnNvbGUvd2luZWNvbnNvbGUuYzoKKwlFcmljIFBvdWVjaCA8ZXJpYy5wb3VlY2hAd2FuYWRvby5mcj4KKwlGaXhlZCBiZWhhdmlvciB3aGVuIGNoYW5naW5nIGJvdGggc2IgYW5kIHdpbiBzaXplLCBhcyB0aGUgb3JkZXIgb2YKKwlvcGVyYXRpb24gaXMgaW1wb3J0YW50IHRvIGtlZXAgc2IgYWx3YXlzIGJpZ2dlciB0aGFuIHdpbi4KKworCSogc2NoZWR1bGVyL3Byb2Nlc3MuYywgd2luZG93cy93aW5wcm9jLmM6CisJRXJpYyBQb3VlY2ggPGVyaWMucG91ZWNoQHdhbmFkb28uZnI+CisJT25seSBwcmludCA0IGhleGRpZ2l0cyBmb3IgdGlkLgorCisJKiBkbGxzL29sZWF1dDMyL3R5cGVsaWIuYzogTWlrZSBIZWFybiA8bS5oZWFybkBzaWduYWwucWluZXRpcS5jb20+CisJQ2hlY2sgYm90aCBwb2ludGVycyBpbiBHZXRDb250YWluaW5nVHlwZUxpYi4KKworCSogZGxscy9rZXJuZWwva2VybmVsMzIuc3BlYywgaW5jbHVkZS93aW5iYXNlLmgsIG1lbW9yeS9nbG9iYWwuYzoKKwlNaWtlIEhlYXJuIDxtLmhlYXJuQHNpZ25hbC5xaW5ldGlxLmNvbT4KKwlJbXBsZW1lbnRlZCBHbG9iYWxNZW1vcnlTdGF0dXNFeCgpLgorCisJKiBpbmNsdWRlL2RvY29iai5oOiBNaWtlIEhlYXJuIDxtLmhlYXJuQHNpZ25hbC5xaW5ldGlxLmNvbT4KKwlBZGQgc29tZSBPTEVDTURJRHMgcHJlc2VudCBpbiBNUyBoZWFkZXJzLgorCisJKiBkb2N1bWVudGF0aW9uL2F1dGhvcnMuZW50LCBkb2N1bWVudGF0aW9uL3J1bm5pbmcuc2dtbDoKKwlNaWtlIEhlYXJuIDxtLmhlYXJuQHNpZ25hbC5xaW5ldGlxLmNvbT4KKwlBZGRlZCBhICJiYXNpYyB1c2FnZSIgc2VjdGlvbiB0aGF0IGRlYWxzIHdpdGggaW5zdGFsbGF0aW9uLAorCXVuaW5zdGFsbGF0aW9uIGFuZCBjb250cm9sIHBhbmVsIGFwcGxldHMgdG8gdGhlICJSdW5uaW5nIFdpbmUiIHBhcnQgb2YKKwl0aGUgdXNlcnMgZ3VpZGUuCisKKzIwMDMtMDItMjUgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIHNlcnZlci9jb25zb2xlLmMsIHNlcnZlci9kZWJ1Z2dlci5jLCBzZXJ2ZXIvcHJvY2Vzcy5jLAorCSAgc2VydmVyL3B0cmFjZS5jLCBzZXJ2ZXIvdGhyZWFkLmMsIHNlcnZlci90aHJlYWQuaDoKKwlBZGRlZCBzZW5kX3RocmVhZF9zaWduYWwoKSBmdW5jdGlvbiBhbmQgcHJvcGVybHkgaGFuZGxlIGVycm9ycyBjYXVzZWQKKwlieSB0aGUgdGhyZWFkIGhhdmluZyBhbHJlYWR5IGRpZWQgd2hlbiB3ZSBzZW5kIGl0IGEgc2lnbmFsLgorCVVzZSAtMSBpbnN0ZWFkIG9mIDAgYXMgaW52YWxpZCBVbml4IHBpZCB2YWx1ZS4KKworCSogc2VydmVyL3JlZ2lzdHJ5LmM6IEF2b2lkIHNvbWUgcmVkdW5kYW50IGNhbGxzIHRvIHRpbWUoTlVMTCkuCisJdG91Y2hfa2V5KCkgbXVzdCBub3QgYmUgY2FsbGVkIGluIGNyZWF0ZV9rZXkuCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJVHVybiBvZmYgLVdwb2ludGVyLWFyaXRoIGlmIGl0IGdlbmVyYXRlcyB3YXJuaW5ncyB3aGVuIGluY2x1ZGluZworCXN0cmluZy5oLgorCisJKiBkbGxzL2NvbWN0bDMyL3RyZWV2aWV3LmM6IFRpbSBTZWdhbGwgPHRpbUBjb2JiZXIuY29tPgorCUFjY2VwdCBlaXRoZXIgVFZJX1JPT1Qgb3IgTlVMTCBmb3IgdGhlIHBhcmVudCB0byBpbXBseSBzb3J0IHRoZSBlbnRpcmUKKwl0cmVlLgorCisJKiBwcm9ncmFtcy93Y21kL2RpcmVjdG9yeS5jLCBwcm9ncmFtcy93Y21kL3djbWQuaCwKKwkgIHByb2dyYW1zL3djbWQvd2NtZG1haW4uYzoKKwlFcmljIFBvdWVjaCA8ZXJpYy5wb3VlY2hAd2FuYWRvby5mcj4KKwktIG1hZGUgc3VwcG9ydCBmb3IgcGFnZWQgb3V0cHV0IGEgZ2VuZXJpYyBmZWF0dXJlIGluIHdjbWQKKwktIHJld3JvdGUgRElSIGNvbW1hbmQgYWNjb3JkaW5nbHkKKworCSogcHJvZ3JhbXMvd2luZWNvbnNvbGUvdXNlci5jOiBFcmljIFBvdWVjaCA8ZXJpYy5wb3VlY2hAd2FuYWRvby5mcj4KKwlGb3JiaWRzIHNlbGVjdGluZyAoZm9yIGNsaXBib2FyZCkgYXJlYXMgbGFyZ2VyIHRoYW4gdGhlIGFjdHVhbAorCXNjcmVlbi1idWZmZXIgc2l6ZS4KKworCSogZGxscy93aW5pbmV0L2h0dHAuYywgZGxscy93aW5pbmV0L2ludGVybmV0LmMsCisJICBkbGxzL3dpbmluZXQvdGVzdHMvaHR0cC5jOgorCVV3ZSBCb25uZXMgPGJvbkBlbGVrdHJvbi5pa3AucGh5c2lrLnR1LWRhcm1zdGFkdC5kZT4KKwlJbnRlcm5ldE9wZW5VcmxBIChodHRwL3MgY2FzZSk6IFVzZSBjbGllbnQgZm9yIEh0dHBPcGVuUmVxdWVzdEEsIGRvbid0CisJaW5zZXJ0IEhPU1Q6IHR3aWNlLgorCUh0dHBBZGRSZXF1ZXN0SGVhZGVyc0E6IGFsbG93IGxwc3pIZWFkZXIgPT0gTlVMTC4KKworCSogdG9vbHMvd2luZXdyYXAuYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlObyBuZWVkIHRvIHN1cHBvcnQgLW13aW5kb3dzIGFzIGEgc3lub25pbSBmb3IgLW1ndWk6IGl0J3MgYSBnY2MtaXNtCisJdGhhdCBpcyBoYW5kbGVkIGluIHdpbmVnY2MuCisJTGluayBpbiBHREkgb25seSBpbiBndWkgbW9kZS4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvcGlwZS5jOiBEYW4gS2VnZWwgPGRhbmtAa2VnZWwuY29tPgorCU5vdyBjb21waWxlcyBvbiB3aW5kb3dzLiAgQWRkZWQgYSBjb3VwbGUgbW9yZSBjaGVja3MuCisKKwkqIGRsbHMvbnRkbGwvY2Ryb20uYzogR2VyYWxkIFBmZWlmZXIgPHBmZWlmZXJAZGJhaS50dXdpZW4uYWMuYXQ+CisJRGVmaW5lIENEX1NFQ1MgYW5kIENEX0ZSQU1FUyBhbHNvIG9uIG5vbi1MaW51eCBzeXN0ZW1zLiAgQXZvaWQgYQorCW5vbi1wb3J0YWJsZSBUUkFDRSBvbiBub24tTGludXggc3lzdGVtcy4KKworMjAwMy0wMi0yNCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogaW5jbHVkZS93aW5lL3NlcnZlcl9wcm90b2NvbC5oLCBzY2hlZHVsZXIvcHJvY2Vzcy5jLAorCSAgc2VydmVyL3Byb2Nlc3MuYywgc2VydmVyL3Byb3RvY29sLmRlZiwgc2VydmVyL3RocmVhZC5jLAorCSAgc2VydmVyL3RocmVhZC5oLCBzZXJ2ZXIvdHJhY2UuYzoKKwlQYXNzIHRoZSBwaWQgb2YgdGhlIG5ldyBwcm9jZXNzIGluIHRoZSBuZXdfcHJvY2VzcyByZXF1ZXN0LCBkb24ndAorCWRlcGVuZCBvbiB0aGUgcGFyZW50IHBpZCB0byBmaW5kIHRoZSBzdGFydHVwIGluZm8uCisKKwkqIGRsbHMvY29tY3RsMzIvcmViYXIuYywgZGxscy93aW5lZG9zL3ZnYS5jLCBkbGxzL3dpbmluZXQvaW50ZXJuZXQuYywKKwkgIGRsbHMvd2luc29jay9zb2NrZXQuYzoKKwlNaWNoYWVsIFN0ZWZhbml1YyA8bXN0ZWZhbmlAcmVkaGF0LmRlPgorCVJlbW92ZSBzb21lIHVucmVhY2hhYmxlIGNvZGUuCisKKwkqIGRsbHMvZHNvdW5kL3Rlc3RzL2Rzb3VuZC5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUZpeGVkIGEgcHJvYmxlbSBnZXR0aW5nIHRoZSBHVUlEIHRvIGNvbXBpbGUgdW5kZXIgd2luZG93cyBhbmQgd2luZS4KKworCSogZGxscy93aW5lZG9zL2ludDEwLmM6IEdlcmFsZCBQZmVpZmVyIDxwZmVpZmVyQGRiYWkudHV3aWVuLmFjLmF0PgorCUZpeCBUUkFDRSBmb3JtYXQgc3RyaW5nLgorCisJKiBkbGxzL2RpbnB1dC9kaW5wdXRfbWFpbi5jLCBkbGxzL2RpbnB1dC9rZXlib2FyZC9tYWluLmM6CisJTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwlJbXBsZW1lbnQgR2V0RGV2aWNlSW5mbyBhbmQgR2V0T2JqZWN0SW5mbyBmb3IgdGhlIGtleWJvYXJkIGRldmljZS4KKworCSogcHJvZ3JhbXMvd2luZWNvbnNvbGUvZGlhbG9nLmMsCisJICBwcm9ncmFtcy93aW5lY29uc29sZS93aW5lY29uc29sZV9EZS5yYywKKwkgIHByb2dyYW1zL3dpbmVjb25zb2xlL3dpbmVjb25zb2xlX0VuLnJjLAorCSAgcHJvZ3JhbXMvd2luZWNvbnNvbGUvd2luZWNvbnNvbGVfRnIucmMsCisJICBwcm9ncmFtcy93aW5lY29uc29sZS93aW5lY29uc29sZV9IdS5yYywKKwkgIHByb2dyYW1zL3dpbmVjb25zb2xlL3dpbmVjb25zb2xlX1poLnJjLAorCSAgcHJvZ3JhbXMvd2luZWNvbnNvbGUvd2luZWNvbnNvbGVfcmVzLmg6CisJRXJpYyBQb3VlY2ggPGVyaWMucG91ZWNoQHdhbmFkb28uZnI+CisJQWRkZWQgY2hlY2tzIHdoZW4gZWRpdGluZyB3aW5kb3cgYW5kIHNiIHNpemUgc28gdGhhdCB0aGV5IGFyZSBrZXB0CisJY29uc2lzdGVudC4KKworCSogZGxscy9jb21jdGwzMi9wcm9wc2hlZXQuYzogRXJpYyBQb3VlY2ggPGVyaWMucG91ZWNoQHdhbmFkb28uZnI+CisJQWRkZWQgaGFuZGxpbmcgZm9yIFBTTlJFVF9JTlZBTElEIGluIFBTTl9BUFBMWSBub3RpZmljYXRpb24uCisKKwkqIHByb2dyYW1zL3dpbmVjb25zb2xlL3JlZ2lzdHJ5LmM6IEVyaWMgUG91ZWNoIDxlcmljLnBvdWVjaEB3YW5hZG9vLmZyPgorCVNldCBhIGRlZmF1bHQgNTAgbGluZXMgaW4gaGlzdG9yeSBmb3IgY29uc29sZSBhcHBzLgorCisJKiBwcm9ncmFtcy93Y21kL3djbWRtYWluLmM6IERhbiBLZWdlbCA8ZGFua0BrZWdlbC5jb20+CisJTWFrZSAnY21kIC9jIGNsIC9NVU1CTEUgZm9vLmMnIHBhc3MgL01VTUJMRSB0byBjbC4KKworCSogZGxscy9kc291bmQvY2FwdHVyZS5jOiBNaWNoYWVsIFN0ZWZhbml1YyA8bXN0ZWZhbmlAcmVkaGF0LmRlPgorCUFkZCBtaXNzaW5nIExlYXZlQ3JpdGljYWxTZWN0aW9uJ3MgaW4gZXJyb3IgcGF0aC4KKworCSogcHJvZ3JhbXMvd2luZWRiZy93aW5lZGJnLmM6IE1hcmN1cyBNZWlzc25lciA8bWVpc3NuZXJAc3VzZS5kZT4KKwlQcmludCBvdXQgbmFtZSBvZiBmbG9hdCBleGNlcHRpb25zLgorCisJKiB0b29scy93aW5lZ2NjLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJTGluayBpbiBzaGVsbDMyIG9ubHkgaW4gZ3VpIG1vZGUuCisJQWRkIGFsbCB0aGUgc3RhbmRhcmQgZGVmaW5lcyB0aGF0IE1pbkdXIHByb3ZpZGVzICh3aXRoIHRoZSBleGNlcHRpb24KKwlvZiBfX01JTkdXX18sIHRoYXQncyBNaW5HVyBwcmVyb2dhdGl2ZSkuCisJRG8gbm90IHBhc3MgYWxvbmcgbGlua2VyIG9wdGlvbnMgd2hlbiBvbmx5IGNvbXBpbGluZy4KKworCSogaW5jbHVkZS9kc291bmQuaDogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlBZGRlZCBkZWZpbml0aW9ucyBmb3IgRGlyZWN0U291bmRGdWxsRHVwbGV4IGFuZCBtb3ZlZCBzb21lIEdVSURzCisJYXJvdW5kLgorCisyMDAzLTAyLTE5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBBTk5PVU5DRSwgQ2hhbmdlTG9nLCBWRVJTSU9OLCBjb25maWd1cmU6IFJlbGVhc2UgMjAwMzAyMTkuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIwMDMtMDItMTkgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CiAKIAkqIGRsbHMva2VybmVsL3Rlc3RzLy5jdnNpZ25vcmU6IEFkZGVkIHBpcGUub2suCmRpZmYgLS1naXQgYS9WRVJTSU9OIGIvVkVSU0lPTgppbmRleCAwMzFmMjRkLi5iN2YzOTEwIDEwMDY0NAotLS0gYS9WRVJTSU9OCisrKyBiL1ZFUlNJT04KQEAgLTEgKzEgQEAKLVdpbmUgdmVyc2lvbiAyMDAzMDIxOQorV2luZSB2ZXJzaW9uIDIwMDMwMzE4CmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKaW5kZXggYTkwODM0Yy4uNWQyYjZlMiAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtMSw2ICsxLDYgQEAKICMhIC9iaW4vc2gKICMgR3Vlc3MgdmFsdWVzIGZvciBzeXN0ZW0tZGVwZW5kZW50IHZhcmlhYmxlcyBhbmQgY3JlYXRlIE1ha2VmaWxlcy4KLSMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU3IGZvciBXaW5lIDIwMDMwMjE5LgorIyBHZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTcgZm9yIFdpbmUgMjAwMzAzMTguCiAjCiAjIENvcHlyaWdodCAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyCiAjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtMjY2LDggKzI2Niw4IEBACiAjIElkZW50aXR5IG9mIHRoaXMgcGFja2FnZS4KIFBBQ0tBR0VfTkFNRT0nV2luZScKIFBBQ0tBR0VfVEFSTkFNRT0nd2luZScKLVBBQ0tBR0VfVkVSU0lPTj0nMjAwMzAyMTknCi1QQUNLQUdFX1NUUklORz0nV2luZSAyMDAzMDIxOScKK1BBQ0tBR0VfVkVSU0lPTj0nMjAwMzAzMTgnCitQQUNLQUdFX1NUUklORz0nV2luZSAyMDAzMDMxOCcKIFBBQ0tBR0VfQlVHUkVQT1JUPScnCiAKIGFjX3VuaXF1ZV9maWxlPSJzZXJ2ZXIvYXRvbS5jIgpAQCAtNzc3LDcgKzc3Nyw3IEBACiAgICMgT21pdCBzb21lIGludGVybmFsIG9yIG9ic29sZXRlIG9wdGlvbnMgdG8gbWFrZSB0aGUgbGlzdCBsZXNzIGltcG9zaW5nLgogICAjIFRoaXMgbWVzc2FnZSBpcyB0b28gbG9uZyB0byBiZSBhIHN0cmluZyBpbiB0aGUgQS9VWCAzLjEgc2guCiAgIGNhdCA8PF9BQ0VPRgotXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgV2luZSAyMDAzMDIxOSB0byBhZGFwdCB0byBtYW55IGtpbmRzIG9mIHN5c3RlbXMuCitcYGNvbmZpZ3VyZScgY29uZmlndXJlcyBXaW5lIDIwMDMwMzE4IHRvIGFkYXB0IHRvIG1hbnkga2luZHMgb2Ygc3lzdGVtcy4KIAogVXNhZ2U6ICQwIFtPUFRJT05dLi4uIFtWQVI9VkFMVUVdLi4uCiAKQEAgLTg0Miw3ICs4NDIsNyBAQAogCiBpZiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIjsgdGhlbgogICBjYXNlICRhY19pbml0X2hlbHAgaW4KLSAgICAgc2hvcnQgfCByZWN1cnNpdmUgKSBlY2hvICJDb25maWd1cmF0aW9uIG9mIFdpbmUgMjAwMzAyMTk6Ijs7CisgICAgIHNob3J0IHwgcmVjdXJzaXZlICkgZWNobyAiQ29uZmlndXJhdGlvbiBvZiBXaW5lIDIwMDMwMzE4OiI7OwogICAgZXNhYwogICBjYXQgPDxcX0FDRU9GCiAKQEAgLTkzNSw3ICs5MzUsNyBAQAogdGVzdCAtbiAiJGFjX2luaXRfaGVscCIgJiYgZXhpdCAwCiBpZiAkYWNfaW5pdF92ZXJzaW9uOyB0aGVuCiAgIGNhdCA8PFxfQUNFT0YKLVdpbmUgY29uZmlndXJlIDIwMDMwMjE5CitXaW5lIGNvbmZpZ3VyZSAyMDAzMDMxOAogZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU3CiAKIENvcHlyaWdodCAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyCkBAIC05NTAsNyArOTUwLDcgQEAKIFRoaXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCiBydW5uaW5nIGNvbmZpZ3VyZSwgdG8gYWlkIGRlYnVnZ2luZyBpZiBjb25maWd1cmUgbWFrZXMgYSBtaXN0YWtlLgogCi1JdCB3YXMgY3JlYXRlZCBieSBXaW5lICRhc19tZSAyMDAzMDIxOSwgd2hpY2ggd2FzCitJdCB3YXMgY3JlYXRlZCBieSBXaW5lICRhc19tZSAyMDAzMDMxOCwgd2hpY2ggd2FzCiBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTcuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKIAogICAkICQwICRACkBAIC0xNjA1NCw3ICsxNjA1NCw3IEBACiB9ID4mNQogY2F0ID4mNSA8PF9DU0VPRgogCi1UaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IFdpbmUgJGFzX21lIDIwMDMwMjE5LCB3aGljaCB3YXMKK1RoaXMgZmlsZSB3YXMgZXh0ZW5kZWQgYnkgV2luZSAkYXNfbWUgMjAwMzAzMTgsIHdoaWNoIHdhcwogZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU3LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCiAKICAgQ09ORklHX0ZJTEVTICAgID0gJENPTkZJR19GSUxFUwpAQCAtMTYxMTcsNyArMTYxMTcsNyBAQAogCiBjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgogYWNfY3NfdmVyc2lvbj0iXFwKLVdpbmUgY29uZmlnLnN0YXR1cyAyMDAzMDIxOQorV2luZSBjb25maWcuc3RhdHVzIDIwMDMwMzE4CiBjb25maWd1cmVkIGJ5ICQwLCBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTcsCiAgIHdpdGggb3B0aW9ucyBcXCJgZWNobyAiJGFjX2NvbmZpZ3VyZV9hcmdzIiB8IHNlZCAncy9bXFwiIlxgXCRdL1xcXFwmL2cnYFxcIgogCg==