ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggNWQxZDJiMy4uODU1NWY5YyAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsMTUgKzEsMTYgQEAKLVRoaXMgaXMgcmVsZWFzZSAyMDAzMTIxMiBvZiBXaW5lLCBhIGZyZWUgaW1wbGVtZW50YXRpb24gb2YgV2luZG93cyBvbgorVGhpcyBpcyByZWxlYXNlIDIwMDQwMTIxIG9mIFdpbmUsIGEgZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiBXaW5kb3dzIG9uCiBVbml4LiAgVGhpcyBpcyBzdGlsbCBhIGRldmVsb3BlcnMgb25seSByZWxlYXNlLiAgVGhlcmUgYXJlIG1hbnkgYnVncwogYW5kIHVuaW1wbGVtZW50ZWQgZmVhdHVyZXMuICBNb3N0IGFwcGxpY2F0aW9ucyBzdGlsbCBkbyBub3Qgd29yawogY29ycmVjdGx5LgogCi1XSEFUJ1MgTkVXIHdpdGggV2luZS0yMDAzMTIxMjogKHNlZSBDaGFuZ2VMb2cgZm9yIGRldGFpbHMpCi0gICAgICAgIC0gSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBYRE5EIGRyYWcmZHJvcCBzdXBwb3J0LgotICAgICAgICAtIEltcHJvdmVkIHN0YXJ0dXAgcGVyZm9ybWFuY2Ugb24gcmVtb3RlIGRpc3BsYXlzLgotICAgICAgICAtIE1ham9yIGltcHJvdmVtZW50cyBpbiB0aGUgb2xlYXV0MzIgZGxsLgotICAgICAgICAtIFNvbWUgc3VwcG9ydCBmb3IgTmV0YmlvcyBmdW5jdGlvbnMuCi0gICAgICAgIC0gV29yayBhcm91bmQgZm9yIEV4ZWMgU2hpZWxkIGFuZCBwcmVsaW5raW5nIHRyb3VibGVzLgotICAgICAgICAtIE1hbnkgY29kZSBjbGVhbnVwcy4KK1dIQVQnUyBORVcgd2l0aCBXaW5lLTIwMDQwMTIxOiAoc2VlIENoYW5nZUxvZyBmb3IgZGV0YWlscykKKyAgICAgICAgLSBNYW55IGltcHJvdmVtZW50cyBpbiB0aGUgc2hlbGwzMiBkbGwuCisgICAgICAgIC0gQmV0dGVyIHN1cHBvcnQgZm9yIGNvbnN0cnVjdG9ycyBpbiBDKysgV2luZWxpYiBhcHBzLgorICAgICAgICAtIEltcHJvdmVkIFJlZ2VkaXQgdG9vbC4KKyAgICAgICAgLSBGdWxsIHN1cHBvcnQgZm9yIGdyYXBoaWMgdGFibGV0cy4KKyAgICAgICAgLSBMb3RzIG9mIERpcmVjdE11c2ljIGltcHJvdmVtZW50cy4KKyAgICAgICAgLSBCZXR0ZXIgc3VwcG9ydCBmb3IgdmlkZW8gcGxheWJhY2suCisgICAgICAgIC0gRnVsbCBJTUUgc3VwcG9ydCBmb3IgQXNpYW4gbG9jYWxlcy4KICAgICAgICAgLSBMb3RzIG9mIGJ1ZyBmaXhlcy4KIAogU2VlIHRoZSBSRUFETUUgZmlsZSBpbiB0aGUgZGlzdHJpYnV0aW9uIGZvciBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zLgpAQCAtMTgsOCArMTksOCBAQAogdGhlIHJlbGVhc2UgaXMgYXZhaWxhYmxlIGF0IHRoZSBmdHAgc2l0ZXMuICBUaGUgc291cmNlcyB3aWxsIGJlIGF2YWlsYWJsZQogZnJvbSB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczoKIAotICBodHRwOi8vd3d3LmliaWJsaW8ub3JnL3B1Yi9MaW51eC9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwMzEyMTIudGFyLmd6Ci0gIGh0dHA6Ly9wcmRvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvd2luZS9XaW5lLTIwMDMxMjEyLnRhci5negorICBodHRwOi8vd3d3LmliaWJsaW8ub3JnL3B1Yi9MaW51eC9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwNDAxMjEudGFyLmd6CisgIGh0dHA6Ly9wcmRvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvd2luZS9XaW5lLTIwMDQwMTIxLnRhci5negogCiBJdCBzaG91bGQgYWxzbyBiZSBhdmFpbGFibGUgZnJvbSBhbnkgb3RoZXIgc2l0ZSB0aGF0IG1pcnJvcnMgaWJpYmxpby5vcmcuCiBUaGVzZSBsb2NhdGlvbnMgYWxzbyBob2xkIHByZS1idWlsdCBkb2N1bWVudGF0aW9uIHBhY2thZ2VzIGluIHZhcmlvdXMKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlMTE0YTg2Li4xZDYwNDRlIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDQgKzEsMTY2OCBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjAwNC0wMS0yMSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9zaGVsbDMyL3NoZWxscGF0aC5jLCBkbGxzL3NoZWxsMzIvdW5kb2NzaGVsbC5oLAorCSAgaW5jbHVkZS9zaGxvYmouaDoKKwlSb2xmIEthbGJlcm1hdHRlciA8cm9sZi5rYWxiZXJtYXR0ZXJAY2l0ZW5nLmNvbT4KKwlJbXBsZW1lbnQgUGF0aEdldFNob3J0UGF0aEEvVyBhbmQgY2hhbmdlIGl0cyBwcm90b3R5cGUgdG8gbWF0Y2ggdGhlCisJZG9jdW1lbnRhdGlvbiBvbiBNU0ROLgorCisJKiBkbGxzL3NoZWxsMzIvY2xpcGJvYXJkLmM6IE1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJT25seSByZXR1cm4gdmFsaWQgZmlsZSBzeXN0ZW0gbmFtZXMgZnJvbSBSZW5kZXJGSUxFTkFNRUEvVygpIGJ5IHVzaW5nCisJU0hFTExfR2V0UGF0aEZyb21JRExpc3RBL1coKS4KKworCSogZGxscy9zaGVsbDMyL3BpZGwuYywgZGxscy9zaGVsbDMyL3BpZGwuaDoKKwlNYXJ0aW4gRnVjaHMgPG1hcnRpbi1mdWNoc0BnbXgubmV0PgorCUdlIHZhbiBHZWxkb3JwIDxnZUBnc2Uubmw+CisJUmVpbXBsZW1lbnRhdGlvbiBvZiBTSEdldFBhdGhGcm9tSURMaXN0QS9XKCkgdXNpbmcgdGhlIG5ldyBoZWxwZXIKKwlmdW5jdGlvbnMgU0hFTExfR2V0UGF0aEZyb21JRExpc3RBL1coKS4gVGhlIG5ldyBpbXBsZW1lbnRhdGlvbiBhdm9pZHMKKwl1c2luZyBJU2hlbGxGb2xkZXI6OkdldERpc3BsYXlOYW1lT2YoKSwgc28gdGhhdCBpdAorCS0gcmV0dXJucyB0aGUgYWJzb2x1dGUgZmlsZSBzeXN0ZW0gcGF0aCwgbm90IHJlbGF0aXZlIHRvIHRoZSBkZWtzdG9wCisJLSByZXR1cm5zIEZBTFNFIGFzIGVycm9yIGNvZGUgaWYgdGhlIHBhdGggY2FuIG5vdCBjb252ZXJ0ZWQgaW4gYSB2YWxpZAorCSAgZmlsZSBzeXN0ZW0gcGF0aAorCS0gZG9lc24ndCByZXR1cm4gdmlydHVhbCBDTFNJRCBwYXRocworCisJKiBkbGxzL29sZWF1dDMyL01ha2VmaWxlLmluLCBkbGxzL29sZWF1dDMyL29sZWF1dDMyLnNwZWMsCisJICBkbGxzL29sZWF1dDMyL3R5cGVsaWIuaCwgZGxscy9vbGVhdXQzMi90eXBlbGliMi5jOgorCUFsYXN0YWlyIEJyaWRnZXdhdGVyIDxueWVmQHNvZnRob21lLm5ldD4KKwlJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIENyZWF0ZVR5cGVMaWIyKCkgYW5kIHRoZSBJQ3JlYXRlVHlwZUxpYjIgYW5kCisJSUNyZWF0ZVR5cGVJbmZvMiBpbnRlcmZhY2VzLgorCisJKiB3aW5kb3dzL3NweS5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUFkZCBjb3JyZWN0IHRyZWV2aWV3IHN0cnVjdHMgdG8gbWVzc2FnZSBzcHkuCisKKwkqIGRsbHMvY29tY3RsMzIvdHJlZXZpZXcuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlNb3ZlIHRoZSBzZWxlY3Rpb24gdG8gdGhlIHByZXZpb3VzIHNpYmxpbmcgaWYgaXQgY2FuJ3QgZ28gdG8gdGhlIG5leHQKKwlvciB0aGUgcGFyZW50LgorCUZpeCB0aGUgc2VsZWN0aW9uIGNoYW5nZSBsb2dpYy4KKworCSogZGxscy9zaGVsbDMyL2ZvbGRlcnMuYywgZGxscy9zaGVsbDMyL2ljb25jYWNoZS5jLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfbWFpbi5jLCBkbGxzL3NoZWxsMzIvc2hlbGwzMl9tYWluLmg6CisJTWFydGluIEZ1Y2hzIDxtYXJ0aW4tZnVjaHNAZ214Lm5ldD4KKwlVc2UgZnVsbCBwYXRocyBpbnN0ZWFkIG9mIG9ubHkgZmlsZW5hbWVzIGluIGljb24gY2FjaGUgdG8gZGlzdGluZ3Vpc2gKKwliZXR3ZWVuIGRpZmZlcmVudCBmaWxlcyB3aXRoIHRoZSBzYW1lIG5hbWUuCisKKwkqIGRsbHMvc2hlbGwzMi9waWRsLmM6IE1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJSW1wbGVtZW50ZWQgU0hHZXRSZWFsSURMKCkuCisKKwkqIGRsbHMvaW1tMzIvTWFrZWZpbGUuaW4sIGRsbHMvaW1tMzIvaW1tLmMsIGRsbHMvaW1tMzIvaW1tMzIuc3BlYywKKwkgIGRsbHMveDExZHJ2L01ha2VmaWxlLmluLCBkbGxzL3gxMWRydi9ldmVudC5jLCBkbGxzL3gxMWRydi9rZXlib2FyZC5jLAorCSAgZGxscy94MTFkcnYvd2luZG93LmMsIGRsbHMveDExZHJ2L3gxMWRydi5oLCBkbGxzL3gxMWRydi94MTFkcnYuc3BlYywKKwkgIGRsbHMveDExZHJ2L3gxMWRydl9tYWluLmMsIGRsbHMveDExZHJ2L3hpbS5jOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJVXNlIFgxMSBYSU0gY2FsbGJhY2tzIHRvIGVuYWJsZSBmdWxsIElNRSBzdXBwb3J0LgorCUNvcnJlY3Qgc29tZSB0aW1pbmcgaXNzdWVzIHdpdGggWElNIGlucHV0LgorCVN0YXJ0IHRvIHByb3ZpZGUgdGhlIGZyYW1ld29yayBmb3IgdGhlIE1TSU1FIG1lc3NhZ2VzLgorCisJKiBwcm9ncmFtcy9ydW5kbGwzMi9NYWtlZmlsZS5pbiwgcHJvZ3JhbXMvcnVuZGxsMzIvcnVuZGxsMzIuYzoKKwlEb24ndCBsaW5rIGRpcmVjdGx5IHRvIDE2LWJpdCBBUElzIGZvciBwb3J0YWJpbGl0eSByZWFzb25zIChiYXNlZCBvbiBhCisJcGF0Y2ggYnkgU3RldmVuIEVkd2FyZHMpLgorCisJKiB3aW5kb3dzL3BhaW50aW5nLmM6IFJlaW4gS2xhemVzIDxya2xhemVzQHhzNGFsbC5ubD4KKwlJbiBSRFdfVXBkYXRlUmduKCksIGlmIGhSZ24gaXMgemVybywgY2xlYXIgdGhlIHdpbmRvd3MgdXBkYXRlIHJlZ2lvbgorCWlmIGl0IGlzIGFuIGVtcHR5IHJlZ2lvbi4KKworMjAwNC0wMS0yMCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9vbGVhdXQzMi90ZXN0cy92YXJ0ZXN0LmMsIGRsbHMvb2xlYXV0MzIvdGVzdHMvdmFydHlwZS5jOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJUmVtb3ZlIHRlc3RzIHRoYXQgYXJlIGNvdmVyZWQgYnkgdmFydHlwZS5jLgorCUNhbGwgYnkgcG9pbnRlciBmb3IgbW9yZSBmdW5jdGlvbnMgbm90IGF2YWlsYWJsZSBpbiBlYXJseSB2ZXJzaW9ucy4KKwlBZGQgdGVzdHMgZm9yIFZhckZpeC9WYXJJbnQvVmFyTmVnLCBWYXJGb3JtYXQgIm9uL29mZi95ZXMvbm8iLgorCUZpeCB0ZXN0cyB0aGF0IGFzc3VtZWQgcmVsYXRpdmUgZGF0ZXMuCisJTWFrZSBCU1RSIGNvcHkgdGVzdCBzZXBhcmF0ZS4KKworCSogZGxscy9zaGVsbDMyL3BpZGwuYzogTWFydGluIEZ1Y2hzIDxtYXJ0aW4tZnVjaHNAZ214Lm5ldD4KKwktIFNIR2V0RGF0YUZyb21JRExpc3RBL1coKTogaGFuZGxlIGRyaXZlcyB3aGVuIHJldHJpZXZpbmcgZmlsZQorCSAgYXR0cmlidXRlcworCS0gZml4ZWQgZXJyb3IgaGFuZGxpbmcgdG8gYXZvaWQgR1BGcworCisJKiB0b29scy93aW5hcGkvY190eXBlLnBtOiBIYW5zIExlaWRla2tlciA8aGFuc0BpdC52dS5ubD4KKwlGaXhlZCBtaXN1c2Ugb2Ygc2NhbGFyIHJlZmVyZW5jZSB2YXJpYWJsZS4KKworCSogZGxscy9ycGNydDQvcnBjX2JpbmRpbmcuYywgaW5jbHVkZS9ycGNkY2UuaDoKKwlNaWtlIEhlYXJuIDxtaWtlQHRoZW9yZXRpYy5jb20+CisJSW1wbGVtZW50ZWQgUnBjSXNQcm90U2VxVmFsaWQuCisKKwkqIGRsbHMvb3BlbmdsMzIvd2dsLmMsIGRsbHMvb3BlbmdsMzIvd2dsLmgsIGRsbHMvdHR5ZHJ2L2JpdG1hcC5jLAorCSAgZGxscy90dHlkcnYvZ3JhcGhpY3MuYywgZGxscy90dHlkcnYvb2JqZWN0cy5jLCBkbGxzL3R0eWRydi91c2VyLmMsCisJICBkbGxzL3R0eWRydi93bmQuYywgZGxscy93aW5lcHMvZG93bmxvYWQuYywgZGxscy93aW5lcHMvcGVuLmMsCisJICBkbGxzL3gxMWRydi9jbGlwYm9hcmQuYywgZGxscy94MTFkcnYvY2xpcHBpbmcuYywgZGxscy94MTFkcnYvaW5pdC5jLAorCSAgZGxscy94MTFkcnYvb3BlbmdsLmMsIGRsbHMveDExZHJ2L3dpbnBvcy5jLCBkbGxzL3gxMWRydi93aW50YWIuYywKKwkgIGRsbHMveDExZHJ2L3gxMWRydi5oLCBkbGxzL3gxMWRydi94MTFkcnZfbWFpbi5jLAorCSAgZGxscy94MTFkcnYveDExZm9udC5oLCBkbGxzL3gxMWRydi94dmlkbW9kZS5jOgorCVJlbW92ZWQgc29tZSB1bm5lY2Vzc2FyeSBpbmNsdXNpb25zIG9mIGdkaS5oLgorCisJKiBkbGxzL2dkaS9tZmRydi90ZXh0LmMsIGRsbHMva2VybmVsL2xvY2FsZS5jLCBpbmNsdWRlL3dpbmUvdW5pY29kZS5oLAorCSAgbGlicy91bmljb2RlL01ha2VmaWxlLmluLCBsaWJzL3VuaWNvZGUvY18wNDIuYywKKwkgIGxpYnMvdW5pY29kZS9jcG1hcC5wbCwgbGlicy91bmljb2RlL2NwdGFibGUuYywgbGlicy91bmljb2RlL21idG93Yy5jLAorCSAgbGlicy91bmljb2RlL3djdG9tYi5jLCBsaWJzL3VuaWNvZGUvd2luZV91bmljb2RlLmRlZiwgb2JqZWN0cy9mb250LmMsCisJICBvYmplY3RzL3RleHQuYzoKKwlSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJRml4IE11bHRpQnl0ZVRvV2lkZUNoYXIgYW5kIFdpZGVDaGFyVG9NdWx0aUJ5dGUgd2hlbiBjYWxsZWQgd2l0aCBjb2RlCisJcGFnZSBDUF9TWU1CT0wuCisJUmVtb3ZlIHRoZSBzeW1ib2wgZm9udCBmcm9tIHRoZSBjb2RlIHBhZ2UgdGFibGUsIHNvIGl0IGlzIG5vdCByZXBvcnRlZAorCWFzIGEgdmFsaWQvc3VwcG9ydGVkL2luc3RhbGxlZCBjb2RlIHBhZ2UuCisJUmVtb3ZlIHdvcmthcm91bmRzIGZvciB0aGUgYmFkbHkgYmVoYXZlZCBNdWx0aUJ5dGVUb1dpZGVDaGFyIGFuZCBjby4KKwlpbiBhIGZldyBwbGFjZXMuCisKKwkqIGRsbHMvbXN2aWRlby9NYWtlZmlsZS5pbiwgZGxscy91eHRoZW1lL3V4dGhlbWUuc3BlYywKKwkgIGxpYnMvd2luZS93aW5lLmRlZjoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUZpeGVkIHNvbWUgcHJvYmxlbXMgZm91bmQgd2hpbGUgY29tcGlsaW5nIGFuZCBsaW5raW5nIFdpbmUgdW5kZXIKKwlDeWd3aW4uCisKKwkqIGRsbHMvbXN2aWRlby9tY2l3bmQuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlNYWtlIE1DSVduZCBwbGF5IGEgYml0IGJldHRlciBhcyBhbiBNREkgY2hpbGQuCisKKwkqIGRsbHMvd2luZXBzL2J1aWx0aW4uYywgZGxscy93aW5lcHMvcHMuYywgZGxscy94MTFkcnYvYml0Ymx0LmMsCisJICBkbGxzL3gxMWRydi9kaWIuYywgZGxscy94MTFkcnYvZ3JhcGhpY3MuYywgZGxscy94MTFkcnYvcGFsZXR0ZS5jLAorCSAgZGxscy94MTFkcnYvdGV4dC5jLCBkbGxzL3gxMWRydi94Zm9udC5jLCBkbGxzL3gxMWRydi94cmVuZGVyLmM6CisJR2V0IHJpZCBvZiBzb21lIGRpcmVjdCBhY2Nlc3NlcyB0byB0aGUgREMgc3RydWN0dXJlIGZyb20gb3V0c2lkZSBHREkuCisKKwkqIGRsbHMvbXNhY20vaW1hYWRwMzIvaW1hYWRwMzIuYywgZGxscy9tc2FjbS9tc2FjbWRydi5oLAorCSAgZGxscy9tc2FjbS9tc2FkcDMyL21zYWRwMzIuYywgZGxscy9tc2FjbS9tc2c3MTEvbXNnNzExLmMsCisJICBkbGxzL21zYWNtL3dpbmVtcDMvbXBlZ2wzLmMsIGluY2x1ZGUvTWFrZWZpbGUuaW4sIGluY2x1ZGUvbXNhY21kcnYuaDoKKwlNb3ZlZCBtc2FjbWRydi5oIHRvIGluY2x1ZGUgZGlyZWN0b3J5IHRvIGF2b2lkIGludGVyLWRsbCBoZWFkZXIKKwlkZXBlbmRlbmNpZXMuCisKKwkqIGRsbHMvc2V0dXBhcGkvZGV2aW5zdDE2LmMsIGRsbHMvc2V0dXBhcGkvc2V0dXB4LnNwZWM6CisJUmVpbiBLbGF6ZXMgPHJrbGF6ZXNAeHM0YWxsLm5sPgorCVN0dWIgZm9yIERpQnVpbGRDbGFzc0Rydkxpc3QoKS4KKworCSogZGxscy9rZXJuZWwvcHJvY2Vzcy5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCUF2b2lkIGR1cGxpY2F0ZSAnPUM6JyBlbnRyaWVzIGluIHRoZSBjaGlsZCBwcm9jZXNzIGVudmlyb25tZW50LgorCisJKiBkbGxzL2ljY3ZpZC9pY2N2aWQuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudCBJQ01fREVDT01QUkVTU0VYLCBmaXggc29tZSBidWdzLgorCisJKiBkb2N1bWVudGF0aW9uL1JFQURNRS5pdDogSXZhbiBMZW8gTXVycmF5LVNtaXRoIDxwdW90aUBpbndpbmQuaXQ+CisJVXBkYXRlZC4KKworCSogdG9vbHMvd2luYXBpL3dpbmFwaV90ZXN0OiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlHZW5lcmF0ZSBvaygiLi4uXG4iKSBjYWxscy4KKworCSogZGxscy9kc291bmQvdGVzdHMvY2FwdHVyZS5jLCBkbGxzL2Rzb3VuZC90ZXN0cy9kc291bmQuYywKKwkgIGRsbHMvZGRyYXcvdGVzdHMvZGRyYXdtb2Rlcy5jOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUFkZCB0cmFpbGluZyAnXG4ncyB0byBvaygpIGNhbGxzLgorCisJKiBkbGxzL3VzZXIvdGVzdHMvd2luLmMsIGluY2x1ZGUvd2luLmgsIHdpbmRvd3MvbWRpLmMsIHdpbmRvd3Mvd2luLmMsCisJICB3aW5kb3dzL3dpbnByb2MuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCU1lcmdlIHRoZSBNREkgYW5kIGNvbW1vbiB3aW5kb3cgY3JlYXRpb24gY29kZS4gQ2hhbmdlIHRoZSB3YXkgTURJCisJY2hpbGRyZW4gYXJlIG1hbmFnZWQgaW4gTURJQ2xpZW50LgorCUFkZCBzdXBwb3J0IGZvciBNRElDUkVBVEVTVFJVQ1QgQTwtPlcgY29udmVyc2lvbnMuCisJQWRkIHN1cHBvcnQgZm9yIFdNX01ESVJFRlJFU0hNRU5VLgorCisJKiBkbGxzL2tlcm5lbC9wcm9jZXNzLmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJRml4IGEgZmlsZSBkZXNjcmlwdG9yIGxlYWsgaW4gY3JlYXRlX3Byb2Nlc3MoKS4KKworCSogcHJvZ3JhbXMvcmVnZWRpdC9Fcy5yYywgcHJvZ3JhbXMvcmVnZWRpdC9Gci5yYywKKwkgIHByb2dyYW1zL3JlZ2VkaXQvSXQucmMsIHByb2dyYW1zL3JlZ2VkaXQvTmwucmMsCisJICBwcm9ncmFtcy9yZWdlZGl0L1J1LnJjLCBwcm9ncmFtcy9yZWdlZGl0L1NpLnJjOgorCUl2YW4gTGVvIE11cnJheS1TbWl0aCA8cHVvdGlAaW53aW5kLml0PgorCVlldCBhZ2FpbiBjYXRjaGluZyB1cCB3aXRoIEVuLnJjLgorCisJKiBwcm9ncmFtcy93aW5lY2ZnL0VuLnJjLCBwcm9ncmFtcy93aW5lY2ZnL01ha2VmaWxlLmluLAorCSAgcHJvZ3JhbXMvd2luZWNmZy9hdWRpby5jLCBwcm9ncmFtcy93aW5lY2ZnL2RyaXZlLmMsCisJICBwcm9ncmFtcy93aW5lY2ZnL21haW4uYywgcHJvZ3JhbXMvd2luZWNmZy9wcm9wZXJ0aWVzLmMsCisJICBwcm9ncmFtcy93aW5lY2ZnL3Byb3BlcnRpZXMuaCwgcHJvZ3JhbXMvd2luZWNmZy9yZXNvdXJjZS5oLAorCSAgcHJvZ3JhbXMvd2luZWNmZy93aW5lY2ZnLmg6CisJQ2hyaXMgTW9yZ2FuIDxjbW9yZ2FuQGFsdW0ud3BpLmVkdT4KKwlBZGQgYXVkaW8gdGFiIHdpdGggZmlyc3QgcGFzcyBhdCBhdXRvZGV0ZWN0aW9uIG9mIGF1ZGlvIGRyaXZlci4KKwlEb3VibGUgY2xpY2tpbmcgYSBkcml2ZSBlbnRyeSBicmluZ3MgdXAgZHJpdmUgZWRpdCB3aW5kb3cuCisKKwkqIGRsbHMvd2lubW0vd2luZW9zcy9hdWRpby5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUFkZGVkIG5vdGlmeSBhbmQgcHJvcGVydHkgc2V0IHRvIGRzb3VuZCBvdXRwdXQgZHJpdmVyLgorCUNsZWFuZWQgdXAgZXhpc3Rpbmcgbm90aWZ5IGFuZCBwcm9wZXJ0eSBzZXQgZm9yIGNhcHR1cmUuCisKKwkqIGRsbHMvd2lubW0vbWNpYXZpL21jaWF2aS5jLCBkbGxzL3dpbm1tL21jaXNlcS9tY2ltaWRpLmMsCisJICBkbGxzL3dpbm1tL21jaXdhdmUvbWNpd2F2ZS5jLCBkbGxzL3dpbm1tL3BsYXlzb3VuZC5jLAorCSAgZGxscy93aW5tbS93aW5lbW0uaDoKKwlSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUZpeGVkIHRocmVhZCBoYW5kbGUgbGVha3MuCisKKwkqIGRsbHMva2VybmVsL3BhdGguYywgZGxscy9udGRsbC9wYXRoLmMsIGZpbGVzL2Rvc19mcy5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCS0gUnRsR2V0RnVsbFBhdGhOYW1lX1U6IHJld3JpdHRlbiBzbyB0aGF0IHRoZSBzb3VyY2UgJiBkZXN0aW5hdGlvbgorCSAgYnVmZmVyIGNhbiBiZSB0aGUgc2FtZQorCS0gR2V0RnVsbFBhdGhOYW1lW0FXXTogbm93IGNhbGwgUnRsR2V0RnVsbFBhdGhOYW1lX1UKKwktIEdldFNob3J0UGF0aE5hbWVXOiBmaXhlZCByZWdyZXNzaW9uIGludHJvZHVjZWQgaW4gbGFzdCBwYXRjaAorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGwzMl9tYWluLmgsIGRsbHMvc2hlbGwzMi9zaGVsbGxpbmsuYywKKwkgIGRsbHMvc2hlbGwzMi9zaGZsZHJfZGVza3RvcC5jLCBkbGxzL3NoZWxsMzIvc2hmbGRyX2ZzLmMsCisJICBkbGxzL3NoZWxsMzIvc2hmbGRyX215Y29tcC5jOgorCU1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJLSBmaXggdHlwb3MgaW4gc2hlbGxsaW5rLmMgaGVhZGVyIGNvbW1lbnQgYW5kIGEgc3RydWN0IGNvbW1lbnQKKwktIGNvcnJlY3RlZCBTQ0ZfVU5JQ09ERSBjb25zdGFudCBhbmQgdXNlIHRoZSB2YWx1ZSBvZiBTQ0ZfVU5DIGluc3RlYWQKKwktIGltcGxlbWVudGVkIElTaGVsbExpbmtfQ29uc3RydWN0RnJvbUZpbGUoKSB0byByZWFkIHNoZWxsIGxpbmtzIGZyb20KKwkgIGZpbGVzCisJLSBjYWxsIElTaGVsbExpbmtfQ29uc3RydWN0RnJvbUZpbGUoKSBpbiBJU0ZfLi4uX2ZuR2V0VUlPYmplY3RPZigpCisJICB3aGVuIGJlaW5nIHF1ZXJpZWQgZm9yIElTaGVsbExpbmsgaW50ZXJmYWNlCisKKwkqIHByb2dyYW1zL3JlZ2VkaXQvLmN2c2lnbm9yZSwgcHJvZ3JhbXMvcmVnZWRpdC9NYWtlZmlsZS5pbiwKKwkgIHByb2dyYW1zL3JlZ2VkaXQvcmVzb3VyY2UuaCwgcHJvZ3JhbXMvcmVnZWRpdC9yZXNvdXJjZS5yYywKKwkgIHByb2dyYW1zL3JlZ2VkaXQvdHJlZXZpZXcuYzoKKwlUaG9tYXMgV2VpZGVubXVlbGxlciA8aW5mb0B3M3NlZWsuZGU+CisJUmVnZWRpdCBHVUkgZW5oYW5jZW1lbnRzIHdpdGggbmV3IFdpbmRvd3MtbGlrZSBpY29ucy4KKworCSogZGxscy9zaGVsbDMyL3NoZmxkci5oOiBNYXJ0aW4gRnVjaHMgPG1hcnRpbi1mdWNoc0BnbXgubmV0PgorCS0gZml4IHR5cG8KKwktIHJldHVybiBzdHJpbmcgbGVuZ3RoIGZyb20gU0hFTEwzMl9HVUlEVG9TdHJpbmdBKCkKKworCSogZGxscy93aW5lZG9zL21vZHVsZS5jOiBNaWNoYWVsIFN0ZWZhbml1YyA8bXN0ZWZhbmlAcmVkaGF0LmRlPgorCUZpeGVkIERPUyBFWEUgbG9hZGVyIGZvciB0aGUgY2FzZSB3aGVyZSB3ZSByZWFseSBoYXZlIG9ubHkgNCBieXRlcyBvbgorCXRoZSBsYXN0IHBhZ2Ugb2YgdGhlIGV4ZS4KKworCSogcHJvZ3JhbXMvcmVnZWRpdC9JdC5yYzogSXZhbiBMZW8gTXVycmF5LVNtaXRoIDxwdW90aUBpbndpbmQuaXQ+CisJWWV0IGFub3RoZXIgdXBkYXRlLgorCisJKiBkb2N1bWVudGF0aW9uL3ByaW50aW5nLnNnbWw6IEl2YW4gTGVvIE11cnJheS1TbWl0aCA8cHVvdGlAaW53aW5kLml0PgorCVJlbW92ZSBvYnNvbGV0ZSBpbmZvcm1hdGlvbiBhYm91dCB3aW4zLjEgZHJpdmVycy4KKworCSogbG9hZGVyL21haW4uYzoKKwlEaXNhYmxlIHRoZSBleGVjIHNoaWVsZCB3b3JrYXJvdW5kIGZvciBub3csIGl0J3MgY2F1c2luZyB0b28gbXVjaAorCXRyb3VibGUuCisKKwkqIGluY2x1ZGUvcHNocGFjazguaDogUmVtb3ZlZCB1c2VsZXNzIHdhcm5pbmcuCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkbGxzL01ha2VmaWxlLmluLCBkbGxzL2RtYmFuZC9iYW5kLmMsCisJICBkbGxzL2RtYmFuZC9iYW5kdHJhY2suYywgZGxscy9kbWJhbmQvZG1iYW5kX21haW4uYywKKwkgIGRsbHMvZG1iYW5kL2RtYmFuZF9wcml2YXRlLmgsIGRsbHMvZG1iYW5kL3JlZ3N2ci5jLAorCSAgZGxscy9kbWJhbmQvdmVyc2lvbi5yYywgZGxscy9kbWNvbXBvcy9jaG9yZG1hcC5jLAorCSAgZGxscy9kbWNvbXBvcy9jaG9yZG1hcHRyYWNrLmMsIGRsbHMvZG1jb21wb3MvY29tcG9zZXIuYywKKwkgIGRsbHMvZG1jb21wb3MvZG1jb21wb3NfbWFpbi5jLCBkbGxzL2RtY29tcG9zL2RtY29tcG9zX3ByaXZhdGUuaCwKKwkgIGRsbHMvZG1jb21wb3MvcmVnc3ZyLmMsIGRsbHMvZG1jb21wb3Mvc2lnbnBvc3R0cmFjay5jLAorCSAgZGxscy9kbWNvbXBvcy92ZXJzaW9uLnJjLCBkbGxzL2RtaW1lL01ha2VmaWxlLmluLAorCSAgZGxscy9kbWltZS9hdWRpb3BhdGguYywgZGxscy9kbWltZS9kbWltZV9tYWluLmMsCisJICBkbGxzL2RtaW1lL2RtaW1lX3ByaXZhdGUuaCwgZGxscy9kbWltZS9ncmFwaC5jLAorCSAgZGxscy9kbWltZS9seXJpY3N0cmFjay5jLCBkbGxzL2RtaW1lL21hcmtlcnRyYWNrLmMsCisJICBkbGxzL2RtaW1lL3BhcmFtY29udHJvbHRyYWNrLmMsIGRsbHMvZG1pbWUvcGF0dGVybnRyYWNrLmMsCisJICBkbGxzL2RtaW1lL3BlcmZvcm1hbmNlLmMsIGRsbHMvZG1pbWUvcmVnc3ZyLmMsIGRsbHMvZG1pbWUvc2VnbWVudC5jLAorCSAgZGxscy9kbWltZS9zZWdtZW50c3RhdGUuYywgZGxscy9kbWltZS9zZWd0cmlnZ2VydHJhY2suYywKKwkgIGRsbHMvZG1pbWUvc2VxdHJhY2suYywgZGxscy9kbWltZS9zb25nLmMsIGRsbHMvZG1pbWUvc3lzZXh0cmFjay5jLAorCSAgZGxscy9kbWltZS90ZW1wb3RyYWNrLmMsIGRsbHMvZG1pbWUvdGltZXNpZ3RyYWNrLmMsCisJICBkbGxzL2RtaW1lL3Rvb2wuYywgZGxscy9kbWltZS92ZXJzaW9uLnJjLCBkbGxzL2RtaW1lL3dhdmV0cmFjay5jLAorCSAgd2luZWRlZmF1bHQucmVnLCBkbGxzL2RtbG9hZGVyL2NvbnRhaW5lci5jLAorCSAgZGxscy9kbWxvYWRlci9kbWxvYWRlcl9tYWluLmMsIGRsbHMvZG1sb2FkZXIvZG1sb2FkZXJfcHJpdmF0ZS5oLAorCSAgZGxscy9kbWxvYWRlci9sb2FkZXIuYywgZGxscy9kbWxvYWRlci9sb2FkZXJzdHJlYW0uYywKKwkgIGRsbHMvZG1sb2FkZXIvcmVnc3ZyLmMsIGRsbHMvZG1sb2FkZXIvdmVyc2lvbi5yYywKKwkgIGRsbHMvZG1zY3JpcHQvZG1zY3JpcHRfbWFpbi5jLCBkbGxzL2Rtc2NyaXB0L2Rtc2NyaXB0X3ByaXZhdGUuaCwKKwkgIGRsbHMvZG1zY3JpcHQvcmVnc3ZyLmMsIGRsbHMvZG1zY3JpcHQvc2NyaXB0LmMsCisJICBkbGxzL2Rtc2NyaXB0L3NjcmlwdHRyYWNrLmMsIGRsbHMvZG1zY3JpcHQvdmVyc2lvbi5yYywKKwkgIGRsbHMvZG1zdHlsZS9NYWtlZmlsZS5pbiwgZGxscy9kbXN0eWxlL2F1ZGl0aW9udHJhY2suYywKKwkgIGRsbHMvZG1zdHlsZS9jaG9yZHRyYWNrLmMsIGRsbHMvZG1zdHlsZS9jb21tYW5kdHJhY2suYywKKwkgIGRsbHMvZG1zdHlsZS9kbXN0eWxlX21haW4uYywgZGxscy9kbXN0eWxlL2Rtc3R5bGVfcHJpdmF0ZS5oLAorCSAgZGxscy9kbXN0eWxlL21lbG9keWZvcm11bGF0aW9udHJhY2suYywgZGxscy9kbXN0eWxlL21vdGlmdHJhY2suYywKKwkgIGRsbHMvZG1zdHlsZS9tdXRldHJhY2suYywgZGxscy9kbXN0eWxlL3JlZ3N2ci5jLAorCSAgZGxscy9kbXN0eWxlL3N0eWxlLmMsIGRsbHMvZG1zdHlsZS9zdHlsZXRyYWNrLmMsCisJICBkbGxzL2Rtc3R5bGUvdmVyc2lvbi5yYywgZGxscy9kbXN5bnRoL2Rtc3ludGhfbWFpbi5jLAorCSAgZGxscy9kbXN5bnRoL2Rtc3ludGhfcHJpdmF0ZS5oLCBkbGxzL2Rtc3ludGgvcmVnc3ZyLmMsCisJICBkbGxzL2Rtc3ludGgvc3ludGguYywgZGxscy9kbXN5bnRoL3N5bnRoc2luay5jLAorCSAgZGxscy9kbXN5bnRoL3ZlcnNpb24ucmMsIGRsbHMvZG11c2ljL2J1ZmZlci5jLCBkbGxzL2RtdXNpYy9jbG9jay5jLAorCSAgZGxscy9kbXVzaWMvY29sbGVjdGlvbi5jLCBkbGxzL2RtdXNpYy9kbXVzaWMuYywKKwkgIGRsbHMvZG11c2ljL2RtdXNpY19tYWluLmMsIGRsbHMvZG11c2ljL2RtdXNpY19wcml2YXRlLmgsCisJICBkbGxzL2RtdXNpYy9kb3dubG9hZC5jLCBkbGxzL2RtdXNpYy9kb3dubG9hZGVkaW5zdHJ1bWVudC5jLAorCSAgZGxscy9kbXVzaWMvaGVscGVyLmMsIGRsbHMvZG11c2ljL2luc3RydW1lbnQuYywgZGxscy9kbXVzaWMvcG9ydC5jLAorCSAgZGxscy9kbXVzaWMvcG9ydGRvd25sb2FkLmMsIGRsbHMvZG11c2ljL3JlZ3N2ci5jLCBkbGxzL2RtdXNpYy90aHJ1LmMsCisJICBkbGxzL2RtdXNpYy92ZXJzaW9uLnJjLCBkbGxzL2RtdXNpYzMyL2RtdXNpYzMyX21haW4uYywKKwkgIGRsbHMvZG11c2ljMzIvdmVyc2lvbi5yYywgZGxscy9kc3dhdmUvLmN2c2lnbm9yZSwKKwkgIGRsbHMvZHN3YXZlL01ha2VmaWxlLmluLCBkbGxzL2Rzd2F2ZS9kc3dhdmUuYywKKwkgIGRsbHMvZHN3YXZlL2Rzd2F2ZS5zcGVjLCBkbGxzL2Rzd2F2ZS9kc3dhdmVfbWFpbi5jLAorCSAgZGxscy9kc3dhdmUvZHN3YXZlX3ByaXZhdGUuaCwgZGxscy9kc3dhdmUvcmVnc3ZyLmMsCisJICBkbGxzL2Rzd2F2ZS92ZXJzaW9uLnJjLCBpbmNsdWRlL01ha2VmaWxlLmluLCBpbmNsdWRlL2RsczEuaCwKKwkgIGluY2x1ZGUvZGxzMi5oLCBpbmNsdWRlL2RtZGxzLmgsIGluY2x1ZGUvZG1lcnJvci5oLAorCSAgaW5jbHVkZS9kbXBsdWdpbi5oLCBpbmNsdWRlL2RtdXNidWZmLmgsIGluY2x1ZGUvZG11c2ljYy5oLAorCSAgaW5jbHVkZS9kbXVzaWNmLmgsIGluY2x1ZGUvZG11c2ljaS5oLCBpbmNsdWRlL2RtdXNpY3MuaCwKKwkgIGxpYnMvdXVpZC9keGd1aWQuYzoKKwlSb2sgTWFuZGVsamMgPHJvay5tYW5kZWxqY0BnaW1iLm9yZz4KKwktIHVwZGF0ZWQgcmVzb3VyY2VzIHRvIERYOQorCS0gY29tcGxldGVseSByZXdyaXR0ZW4gaGVhZGVycyAoRFg5IGNvbXBhdC47IGxvb2sgbXVjaCBuaWNlciBub3cgOz0pCisJLSByZW1vdmVkIElEaXJlY3RNdXNpY1NvbmcgYW5kIElEaXJlY3RNdXNpY01lbG9keUZvcm11bGF0aW9uVHJhY2sKKwkgICh3aGljaCBhcmUgcmVtb3ZlZCBmcm9tIERYOTsgd2VyZW4ndCBpbXBsZW1lbnRlZCBpbiBEWDggYW55d2F5KQorCS0gY29tYmluZWQvc2ltcGxpZmllZCBJRGlyZWN0TXVzaWNTb21ldGhpbmcgLyBJRGlyZWN0TXVzaWNPYmplY3QgLworCSAgSVBlcnNpc3RTdHJlYW0gZm9yIG9iamVjdHMgdGhhdCBzdXBwb3J0IGxvYWRpbmcKKwktIGltcGxlbWVudGVkIElEaXJlY3RNdXNpY09iamVjdCBvbiBhbGwgc3VjaCBvYmplY3RzOyB2aWEgZ2VuZXJpYworCSAgZnVuY3Rpb25zCisJLSBjb21iaW5lZCBJRGlyZWN0TXVzaWNUcmFjayg4KS9JUGVyc2lzdFN0cmVhbSBvbiBhbGwgdHJhY2tzCisJLSBmdWxseSBpbXBsZW1lbnRlZCBJRGlyZWN0TXVzaWNDb250YWluZXIgKGF0IGxlYXN0IDkwJSBpZiB0aGVyZSBhcmUKKwkgIG5vIHByaXZhdGUgaW50ZXJmYWNlcykKKwktIGltcGxlbWVudGVkIElEaXJlY3RNdXNpY0NvbGxlY3Rpb24gKDk5JSB3b3JrICYgTVMgY29tcGxpYW50CisJICBiZWhhdmlvdXI7IGV4Y2VwdCBmb3IgaW5zdHJ1bWVudHMpCisJLSB0cmllZCB0byBpbXBsZW1lbnQgSURpcmVjdE11c2ljSW5zdHJ1bWVudCAodW5mb3J0dW5hdGVseSB1c2VzIHNvbWUKKwkgIGRpcnR5IHByaXZhdGUgaW50ZXJmYWNlcy4uLiA6KAorCS0gYWRkZWQgZHN3YXZlLmRsbDsgRGlyZWN0TXVzaWMgV2F2ZQorCS0gc29tZSBjaGFuZ2VzIGluIHN0eWxlCisJLSBtYW55LCBtYW55IG1vcmUgOykKKworMjAwNC0wMS0xOSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9zaGVsbDMyL3NoZmxkci5oLCBkbGxzL3NoZWxsMzIvc2hmbGRyX2Rlc2t0b3AuYywKKwkgIGRsbHMvc2hlbGwzMi9zaGZsZHJfZnMuYzoKKwlNYXJ0aW4gRnVjaHMgPG1hcnRpbi1mdWNoc0BnbXgubmV0PgorCS0gbW92ZSBJU2hlbGxGb2xkZXJfZm5HZXREaXNwbGF5TmFtZU9mKCkgY29udGVudHMgaW50byBhIG5ldyBmdW5jdGlvbgorCSAgU0hFTExfRlNfUHJvY2Vzc0Rpc3BsYXlGaWxlbmFtZSgpIHRvIGNhbGwgaXQgYWxzbyBpbgorCSAgSVNGX0Rlc2t0b3BfZm5HZXREaXNwbGF5TmFtZU9mKCkgYW5kIGRvIHRoZSBzYW1lIGZpbGUgc3lzdGVtCisJICBwcm9jZXNzaW5nIGZvciB0aGUgZGVza3RvcCBsZXZlbAorCS0gaGFuZGxlIGhpZGRlbiBmaWxlIGV4dGVuc2lvbnMgaW4gU0hFTExfRlNfUHJvY2Vzc0Rpc3BsYXlGaWxlbmFtZSgpLAorCSAgdGhhdCBhcmUgY29uZmlndXJlZCBieSAiTmV2ZXJTaG93RXh0IiBpbiB0aGUgcmVnaXN0cnkKKworCSogZGxscy9vbGUzMi9pZnMuYzogR2UgdmFuIEdlbGRvcnAgPGdlQGdzZS5ubD4KKwlTd2FwIGFyZ3VtZW50cyBvZiBMb2NhbEFsbG9jIGFuZCBvbmx5IHVwZGF0ZSBNYWxsb2MzMiBibG9jayBvbgorCXN1Y2Nlc3NmdWwgYWxsb2NhdGlvbi4KKworCSogZG9jdW1lbnRhdGlvbi9idWdzLnNnbWw6IEl2YW4gTGVvIE11cnJheS1TbWl0aCA8cHVvdGlAaW53aW5kLml0PgorCUFkZGVkIGEgbGluayB0byB0aGUgTWljcm9zb2Z0IGRvd25sb2FkIHBhZ2Ugb2YgdGhlIFZpc3VhbCBCYXNpYworCXJ1bnRpbWUgZW52aXJvbm1lbnQuCisKKwkqIGRsbHMvbnRkbGwvc2VydmVyLmM6IEZpeGVkIGFuIGVycm9yIG1lc3NhZ2UuCisKKwkqIGRsbHMvdXh0aGVtZS9tc3N0eWxlcy5jLCBkbGxzL3V4dGhlbWUvbXNzdHlsZXMuaCwKKwkgIGRsbHMvdXh0aGVtZS9zdHlsZW1hcC5jLCBkbGxzL3V4dGhlbWUvc3lzdGVtLmMsIGRsbHMvdXh0aGVtZS91eGluaS5jLAorCSAgZGxscy91eHRoZW1lL3V4dGhlbWUuc3BlYzoKKwlLZXZpbiBLb2x0emF1IDxrZXZpbkBwbG9wLm9yZz4KKwlGdWxsIGltcGxlbWVudGF0aW9uIG9mIE9wZW5UaGVtZURhdGEsIENsb3NlVGhlbWVEYXRhLCBhbmQKKwlJc1RoZW1lUGFydERlZmluZWQKKwlFeHBvcnQgdW5kb2N1bWVudGVkIGZ1bmN0aW9ucyBieSBvcmRpbmFsIG9ubHkgKHRvIG1hdGNoIE1pY3Jvc29mdCdzCisJdXh0aGVtZSkuCisKKwkqIGRsbHMvZ2RpL2ZyZWV0eXBlLmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJRml4IGNvbXBpbGF0aW9uIGlmIEZyZWV0eXBlIGlzbid0IGluc3RhbGxlZC4KKworCSogZGxscy9jb21tZGxnL2ZpbGVkbGcuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlEaXJlY3RseSB1c2UgdGhlIGhvb2sgcHJvYyBmb3IgdGhlIGN1c3RvbSB0ZW1wbGF0ZSBkaWFsb2cgcmF0aGVyIHRoYW4KKwljYWxsaW5nIGl0IHRocm91Z2ggYW5vdGhlciBkbGdwcm9jLgorCURlbGl2ZXIgdGhlIG9sZCBzdHlsZSBmaWxlX29rIG1lc3NhZ2Ugd2l0aCBTZW5kTWVzc2FnZSwgdGhpcyBhbGxvd3MKKwl0aGUgZGlhbG9nIHRvIGJlIHN1YmNsYXNzZWQgKGFzIEFUTC9XVEwgZG9lcykuCisJT25seSBkZWxpdmVyIHRoaXMgbWVzc2FnZSBpZiB0aGUgYXBwIGRpZG4ndCByZWplY3QgdGhlIFdNX05PVElGWQorCW1lc3NhZ2UuCisKKwkqIGRsbHMvb2xlYXV0MzIvdGVzdHMvdmFydHlwZS5jOiBIYW5zIExlaWRla2tlciA8aGFuc0BpdC52dS5ubD4KKwlBZGQgbWlzc2luZyBjb21tYS4KKworCSogZGxscy9jb21jdGwzMi90ZXN0cy9kcGEuYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJRFBBX0NyZWF0ZSBpcyBtaXNzaW5nIGZyb20gYWxsIHJlY2VudCBpbXBvcnQgbGlicmFyaWVzIHNvIHVzZQorCUdldFByb2NBZGRyZXNzIHRvIGxvYWQgaXQuCisJQWRkICdcbicgdG8gJ29rJyBjYWxscy4KKworCSogZGxscy9zaGx3YXBpL3BhdGguYywgZGxscy9zaGx3YXBpL3NobHdhcGkuc3BlYywgaW5jbHVkZS9zaGx3YXBpLmg6CisJUm9sZiBLYWxiZXJtYXR0ZXIgPHJvbGYua2FsYmVybWF0dGVyQGNpdGVuZy5jb20+CisJSW1wbGVtZW50ZWQgUGF0aEZpbGVFeGlzdHNBbmRBdHRyaWJ1dGVzQS9XIGZ1bmN0aW9uLgorCisJKiBkbGxzL29sZTMyL3N0Z19iaWdibG9ja2ZpbGUuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCURvbid0IHVzZSBDcmVhdGVGaWxlTWFwcGluZyBvbiBhIHplcm8gbGVuZ3RoIGZpbGUuCisKKwkqIGRsbHMvY29tY3RsMzIvdGVzdHMvdGFiLmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUFkZCB0cmFpbGluZyAnXG4ncyB0byBvaygpIGNhbGxzLgorCisyMDA0LTAxLTE4ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2dkaS9mcmVldHlwZS5jLCBkbGxzL2dkaS9nZGlfcHJpdmF0ZS5oLCBkbGxzL3dpbmVwcy9idWlsdGluLmMsCisJICBkbGxzL3gxMWRydi94MTFkcnYuaCwgZGxscy94MTFkcnYveGZvbnQuYywgaW5jbHVkZS9nZGkuaCwKKwkgIG9iamVjdHMvZm9udC5jOgorCVVzZSB0aGUgZXhwb3J0ZWQgRk9OVEVOVU1QUk9DVyBhcyBwYXJhbWV0ZXIgaW4gdGhlIEVudW1EZXZpY2VGb250cworCWRyaXZlciBmdW5jdGlvbiBpbnN0ZWFkIG9mIGRlZmluaW5nIGEgcHJpdmF0ZSBmdW5jdGlvbiB0eXBlLgorCisJKiB0b29scy9iaW4ycmVzLmM6CisJV2luZG93cyByZW5hbWUoKSBuZWVkcyBhbiB1bmxpbmsoKSBmaXJzdCAocmVwb3J0ZWQgYnkgU3RldmVuCisJRWR3YXJkcykuCisKKwkqIHRvb2xzL3dyYy9NYWtlZmlsZS5pbiwgdG9vbHMvd3JjL3RyYW5zbGF0aW9uLmMsIHRvb2xzL3dyYy93cmMuYzoKKwlWaW5jZW50IELpcm9uIDx2YmVyb25AbWVjYW5vLmdtZS51c2hlcmIuY2E+CisJQWRkZWQgYSBuZXcgZmxhZyB0byB3cmMsIHRvIGJlIHVzZWQgdG8gYXNzZXNzIHRyYW5zbGF0aW9ucworCWFkdmFuY2VtZW50LgorCisJKiBkbGxzL29sZWRsZy9vbGVkbGdfUHQucmMsIGRsbHMvb2xlZGxnL3JzcmMucmMsCisJICBwcm9ncmFtcy9yZWdlZGl0L0VuLnJjLCBwcm9ncmFtcy9yZWdlZGl0L1B0LnJjLAorCSAgcHJvZ3JhbXMvd2luZWNmZy9QdC5yYzoKKwlNYXJjZWxvIER1YXJ0ZSA8d2luZS1kZXZlbEBib2wuY29tLmJyPgorCVVwZGF0ZSBvZiBQb3J0dWd1ZXNlIHJlc291cmNlcy4KKworCSogZGxscy9zaGVsbDMyL2ljb25jYWNoZS5jLCBkbGxzL3NoZWxsMzIvc2hsdmlldy5jOgorCU1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJU2hlbGxWaWV3X0NyZWF0ZUxpc3QoKSwgU0lDX0luaXRpYWxpemUoKTogZW5hYmxlIHRyYW5zcGFyZW50IGljb25zIG9uCisJdGhlIGRlc2t0b3AuCisKKwkqIGRsbHMvc2hlbGwzMi9tZW1vcnlzdHJlYW0uYzogTWFydGluIEZ1Y2hzIDxtYXJ0aW4tZnVjaHNAZ214Lm5ldD4KKwlJU3RyZWFtX2ZuV3JpdGU6IG9ubHkgcmV0dXJuIHdyaXRlIGNvdW50IGlmIHRoZSBnaXZlbiBwb2ludGVyCisJcGFyYW1ldGVyIGlzIG5vdCBOVUxMLgorCisJKiBkbGxzL3R0eWRydi9kYy5jLCBkbGxzL3dpbmVwcy9pbml0LmMsIGRsbHMveDExZHJ2L2JpdGJsdC5jLAorCSAgZGxscy94MTFkcnYvYml0bWFwLmMsIGRsbHMveDExZHJ2L2JydXNoLmMsIGRsbHMveDExZHJ2L2RpYi5jLAorCSAgZGxscy94MTFkcnYvZ3JhcGhpY3MuYywgZGxscy94MTFkcnYvaW5pdC5jLCBkbGxzL3gxMWRydi9wYWxldHRlLmMsCisJICBkbGxzL3gxMWRydi94MTFkcnYuaCwgZGxscy94MTFkcnYveHJlbmRlci5jLCBncmFwaGljcy9iaXRibHQuYywKKwkgIGluY2x1ZGUvZ2RpLmgsIG9iamVjdHMvYml0bWFwLmMsIG9iamVjdHMvZGMuYzoKKwlSZW1vdmVkIHRoZSBiaXRzUGVyUGl4ZWwgZmllbGQgaW4gdGhlIGdlbmVyaWMgREMgc3RydWN0dXJlLCBhbmQgbGVhdmUKKwlpdCB1cCB0byB0aGUgZ3JhcGhpY3MgZHJpdmVyIHRvIGRlZmluZSBpdCBpZiBuZWNlc3NhcnkuCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOiBNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlEbyBub3QgY2FjaGUgcmVzdWx0cyBvZiBjaGVja3Mgd2l0aCBzaWRlIGVmZmVjdHMuCisKKwkqIGRvY3VtZW50YXRpb24vZ2V0dGluZy5zZ21sOiBJdmFuIExlbyBNdXJyYXktU21pdGggPHB1b3RpQGlud2luZC5pdD4KKwlVbmlmb3JtaXplIHRoZSBjdnMgZG93bmxvYWQgaW5zdHJ1Y3Rpb25zIHdpdGggdGhlIG9uZXMgb24gV2luZUhRLgorCisJKiBkbGxzL2tlcm5lbC9sb2NhbGUuYywgZGxscy9udGRsbC9udGRsbC5zcGVjLCBkbGxzL250ZGxsL250ZGxsX21pc2MuaCwKKwkgIGRsbHMvbnRkbGwvcnRsc3RyLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJQWRkZWQgc3VwcG9ydCBmb3IgVW5peCBjb2RlIHBhZ2UgaW4gTlRETEwuCisKKwkqIGRsbHMvdXNlci90ZXN0cy9pbnB1dC5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlBZGQgdHJhaWxpbmcgJ1xuJ3MgdG8gb2soKSBjYWxscy4KKworCSogZGxscy94MTFkcnYveGZvbnQuYzogTWFyY2VsbyBEdWFydGUgPHdpbmUtZGV2ZWxAYm9sLmNvbS5icj4KKwlGaXhlZCB0eXBvcy4KKworCSogdG9vbHMvd2luYXBpX2NoZWNrL21vZHVsZXMuZGF0LCB0b29scy93aW5hcGlfY2hlY2svbW9kdWxlcy5wbSwKKwkgIHRvb2xzL3dpbmFwaV9jaGVjay93aW5hcGlfZ2xvYmFsLnBtOgorCUhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCUdldCByaWQgb2YgdGhlIHN0YXRpYyBtb2R1bGUgbGlzdC4KKworCSogZGxscy9zaGVsbDMyL2RlYnVnaGxwLmMsIGRsbHMvc2hlbGwzMi9waWRsLmMsIGRsbHMvc2hlbGwzMi9waWRsLmg6CisJTWFydGluIEZ1Y2hzIDxtYXJ0aW4tZnVjaHNAZ214Lm5ldD4KKwktIGRlY2xhcmUgUFRfUkFTX0ZPTERFUiBmb3IgdGhlICJSQVMgQ29ubmVjdGlvbnMiIGZvbGRlcgorCS0gaGFuZGxlIFBUX1JBU19GT0xERVIgYW5kIFBUX05FVFBST1ZJREVSIGluIGRlYnVnZ2luZyBmdW5jdGlvbnMgYW5kCisJICBfSUxHZXRUZXh0UG9pbnRlcigpIC8gX0lMR2V0U1RleHRQb2ludGVyKCkKKworCSogZGxscy9zaGx3YXBpL3JlZy5jLCBkbGxzL3NobHdhcGkvc2hsd2FwaS5zcGVjOgorCVN0ZWZhbiBMZWljaHRlciA8U3RlZmFuLkxlaWNodGVyQGNhbUxpbmUuY29tPgorCUFkZGVkIHN0dWIgZm9yIFNIUmVnaXN0ZXJWYWxpZGF0ZVRlbXBsYXRlLgorCisJKiBkbGxzL3NoZWxsMzIvbWVtb3J5c3RyZWFtLmM6IE1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJQ3JlYXRlU3RyZWFtT25GaWxlKCk6IHVzZSBmbGFnIEZJTEVfU0hBUkVfUkVBRCBmb3Igb3BlbmluZyBPTEUgc3RyZWFtCisJZmlsZXMgdG8gZW5hYmxlIGZpbGUgc2hhcmluZy4KKworMjAwNC0wMS0xNiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9tc2h0bWwvTWFrZWZpbGUuaW4sIGRsbHMvbXNodG1sL2RvY3VtZW50LmMsIGRsbHMvbXNodG1sL21haW4uYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJVHJ5IHVzaW5nIHRoZSBNb3ppbGxhIEFjdGl2ZSBYIGNvbnRyb2wgaW4gTVNIVE1MLgorCisJKiBkbGxzL3NoZWxsMzIvY2xhc3Nlcy5jLCBkbGxzL3NoZWxsMzIvc2hlbGwzMl9tYWluLmgsCisJICBkbGxzL3NoZWxsMzIvc2hsZXhlYy5jOgorCUZpeGVkIEhDUl9HZXRFeGVjdXRlQ29tbWFuZFcoKSBiZWhhdmlvciB3aXRoIGEgY2xhc3MgbmFtZSAoYmFzZWQgb24gYQorCXBhdGNoIGJ5IE1hcnRpbiBGdWNocykuCisJUmVtb3ZlZCBhIGNvdXBsZSBvZiBubyBsb25nZXIgdXNlZCBmdW5jdGlvbnMuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGVsbDMyLnNwZWMsIGRsbHMvc2hlbGwzMi9zaGVsbHBhdGguYywKKwkgIGRsbHMvc2hlbGwzMi91bmRvY3NoZWxsLmg6CisJTWFydGluIEZ1Y2hzIDxtYXJ0aW4tZnVjaHNAZ214Lm5ldD4KKwlDb3JyZWN0ZWQgZGVmaW5pdGlvbiBvZiBQYXRoWWV0QW5vdGhlck1ha2VVbmlxdWVOYW1lKCkuCisKKwkqIGRsbHMvbXNhY20vZm9ybWF0LmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJRml4IGltcHJvcGVyIFdBVkVGT1JNQVRFWCBzaXplIGNhbGN1bGF0aW9uIGZvciBub24gUENNIGZvcm1hdHMuCisKKwkqIHByb2dyYW1zL3JlZ2VkaXQvZWRpdC5jLCBwcm9ncmFtcy9yZWdlZGl0L2ZyYW1ld25kLmMsCisJICBwcm9ncmFtcy9yZWdlZGl0L2xpc3R2aWV3LmMsIHByb2dyYW1zL3JlZ2VkaXQvbWFpbi5oOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJRml4IHZhbHVlIHJlbmFtaW5nLiBDbGVhbnVwIGNvZGUsIGZpeCBhIGZldyBsZWFrcy4KKworCSogZGxscy9rZXJuZWwvZGVidWdnZXIuYywgZGxscy9rZXJuZWwvZWRpdGxpbmUuYywgZGxscy9vbGUzMi9jb21wb2JqLmMsCisJICBkbGxzL3NoZWxsMzIvc2hsZm9sZGVyLmMsIGRsbHMvd2ludGFiMzIvd2ludGFiMzIuYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlBc3NvcnRlZCBzcGVsbGluZyBmaXhlcy4KKworCSogZGxscy91eHRoZW1lL01ha2VmaWxlLmluLCBkbGxzL3V4dGhlbWUvbWFpbi5jLAorCSAgZGxscy91eHRoZW1lL21zc3R5bGVzLmMsIGRsbHMvdXh0aGVtZS9tc3N0eWxlcy5oLAorCSAgZGxscy91eHRoZW1lL3Byb3BlcnR5LmMsIGRsbHMvdXh0aGVtZS9zdHlsZW1hcC5jLAorCSAgZGxscy91eHRoZW1lL3N5c3RlbS5jLCBkbGxzL3V4dGhlbWUvdXhpbmkuYywKKwkgIGRsbHMvdXh0aGVtZS91eHRoZW1lZGxsLmg6CisJS2V2aW4gS29sdHphdSA8a2V2aW5AcGxvcC5vcmc+CisJQWRkIElOSSBmaWxlIHByb2Nlc3NpbmcuCisJRnVsbCBpbXBsZW1lbnRhdGlvbiBvZiBHZXRUaGVtZURvY3VtZW50YXRpb25Qcm9wZXJ0eS4KKwlEZWZpbmUgc3RyaW5nIG1hcHMgZm9yIHBhcnNpbmcgSU5JIGZpbGVzIGludG8gdXNlYWJsZSBmb3JtLgorCUltcGxlbWVudGVkICh1bmRvY3VtZW50ZWQpIEFwcGx5VGhlbWUgdG8gc2VsZWN0IGN1cnJlbnQgdGhlbWUuCisKKwkqIGRsbHMva2VybmVsL2ZpbGUuYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJUmV0dXJuIEhGSUxFX0VSUk9SIGluc3RlYWQgb2YgLTEgaW4gX2xyZWFkLgorCisJKiBkbGxzL29sZTMyL2hnbG9iYWxzdHJlYW0uYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlUcmFjZSB0aGUgaGlnaCBwYXJ0IG9mIHRoZSBTZWVrIG9mZnNldC4KKworCSogaW5jbHVkZS93aW5iYXNlLmg6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBTeXN0ZW1UaW1lVG9UelNwZWNpZmljTG9jYWxUaW1lIGRlZmluaXRpb24uCisKKwkqIGluY2x1ZGUvdXJsbW9uLmgsIGluY2x1ZGUvdXJsbW9uLmlkbDoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCUFkZCBhIGNvdXBsZSBvZiBtaXNzaW5nIGRlZmluaXRpb25zIHRvIHVybG1vbi5oLgorCisJKiBwcm9ncmFtcy9yZWdlZGl0L2NoaWxkd25kLmMsIHByb2dyYW1zL3JlZ2VkaXQvbGlzdHZpZXcuYywKKwkgIHByb2dyYW1zL3JlZ2VkaXQvbWFpbi5jOgorCVRob21hcyBXZWlkZW5tdWVsbGVyIDxpbmZvQHczc2Vlay5kZT4KKwlGaXhlZCBoYW5kbGluZyBvZiBjb250cm9sIGZvY3VzLgorCisJKiBwcm9ncmFtcy9yZWdlZGl0L0VuLnJjOiBUaG9tYXMgV2VpZGVubXVlbGxlciA8aW5mb0B3M3NlZWsuZGU+CisJRW5hYmxlIHRoZSBoZWxwIG1lbnUgZm9yIHJlZ2VkaXQuCisKKwkqIGRsbHMvbnRkbGwvdmlydHVhbC5jOgorCUNoZWNrIGZvciBvdmVybGFwcGluZyBtZW1vcnkgdmlld3MgYW5kIGRlbGV0ZSB0aGUgb2ZmZW5kaW5nIHZpZXcgaWYKKwluZWNlc3NhcnksIHRvIGVuc3VyZSB3ZSBuZXZlciBoYXZlIHR3byB2aWV3cyBjb3ZlcmluZyB0aGUgc2FtZQorCWFkZHJlc3MuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL2ZpbGUuYywgZmlsZXMvZmlsZS5jOgorCU1pa2UgSGVhcm4gPG1pa2VAdGhlb3JldGljLmNvbT4KKwktIEVuc3VyZSB3ZSBjb3JyZWN0bHkgYWRkIGEgYmFja3NsYXNoIGxpa2UgV2luZG93cyA5OC9YUCBkby4KKwktIEdlbmVyYXRlIGZpbGVuYW1lcyB0aGF0IGxvb2sgbGlrZSBXaW5kb3dzIGRvZXMgKG5vIGxlZnQgZGlnaXQKKwkgIHBhZGRpbmcpLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGxwYXRoLmM6IEZpbGlwIE5hdmFyYSA8eG5hdmFyYUB2b2xueS5jej4KKwktIE1vdmVkIGFjdHVhbCBjb2RlIGZyb20gU0hHZXRTcGVjaWFsRm9sZGVyUGF0aEEgdG8gU0hHZXRGb2xkZXJQYXRoVywKKwkgIGFkanVzdGVkIGFuZCB1bmljb2RpZmllZCBpdC4KKwktIFJld3JvdGUgU0hHZXRGb2xkZXJQYXRoQSB0byBjYWxsIFNIR2V0Rm9sZGVyUGF0aFcuCisJLSBSZXdyb3RlIFNIR2V0U3BlY2lhbEZvbGRlclBhdGhbQVddIHRvIGNhbGwgU0hHZXRGb2xkZXJQYXRoW0FXXS4KKworCSogZGxscy9zaGVsbDMyL3NoZWxsMzJfQ3MucmMsIGRsbHMvc2hlbGwzMi9zaHJlc2RlZi5oOgorCUZpbGlwIE5hdmFyYSA8eG5hdmFyYUB2b2xueS5jej4KKwlDb21wbGV0ZSBDemVjaCB0cmFuc2xhdGlvbiBvZiBzaGVsbDMyIHJlc291cmNlcy4KKworCSogZGxscy9hZHZhcGkzMi9hZHZhcGkzMi5zcGVjLCBkbGxzL2FkdmFwaTMyL3JlZ2lzdHJ5LmM6CisJUm9iZXJ0IFNoZWFybWFuIDxSLkouU2hlYXJtYW5Ad2Fyd2ljay5hYy51az4KKwlQYXJ0aWFsbHkgaW1wbGVtZW50IFJlZ09wZW5Vc2VyQ2xhc3Nlc1Jvb3QuCisKKwkqIGRvY3VtZW50YXRpb24vZ2V0dGluZy5zZ21sOiBJdmFuIExlbyBNdXJyYXktU21pdGggPHB1b3RpQGlud2luZC5pdD4KKwlXZSBub3cgaGF2ZSBvZmZpY2lhbCBwYWNrYWdlcy4KKworCSogcHJvZ3JhbXMvcmVnZWRpdC9lZGl0LmMsIHByb2dyYW1zL3JlZ2VkaXQvZnJhbWV3bmQuYywKKwkgIHByb2dyYW1zL3JlZ2VkaXQvbWFpbi5oOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJU3RyZWFtbGluZSB0aGUgZWRpdGluZyBpbnRlcmZhY2VzIGEgYml0LgorCU9wZW4gdGhlIHJlZ2lzdHJ5IHdpdGggb25seSB0aGUgcmVxdWlyZWQgcGVybWlzc2lvbnMgZm9yIHRoZQorCW9wZXJhdGlvbi4gRml4IGEgZmV3IGxlYWtzLgorCisJKiBkbGxzL2tlcm5lbC9jb21tLmM6IFZpbmNlbnQgQulyb24gPHZiZXJvbkBtZWNhbm8uZ21lLnVzaGVyYi5jYT4KKwlNb3ZlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBHZXREZWZhdWx0Q29tbUNvbmZpZyBmcm9tIEEgdG8gVy4KKwlHZXQgcmlkIG9mIGEgVy0+QSBjcm9zcyBjYWxsIGF0IHRoZSBzYW1lIHRpbWUuCisKKwkqIGRsbHMva2VybmVsL2NvbW0uYzogVmluY2VudCBC6XJvbiA8dmJlcm9uQG1lY2Fuby5nbWUudXNoZXJiLmNhPgorCVVuaWNvZGlmeSBzb21lIGNvbW0gZnVuY3Rpb25zLgorCUdldCByaWQgb2Ygc29tZSBXLT5BIGNyb3NzIGNhbGxzIGFsb25nIHRoZSB3YXkuCisKKwkqIHByb2dyYW1zL3JlZ2VkaXQvRW4ucmMsIHByb2dyYW1zL3JlZ2VkaXQvbGlzdHZpZXcuYywKKwkgIHByb2dyYW1zL3JlZ2VkaXQvbWFpbi5jLCBwcm9ncmFtcy9yZWdlZGl0L21haW4uaCwKKwkgIHByb2dyYW1zL3JlZ2VkaXQvcmVzb3VyY2UuaDoKKwlUaG9tYXMgV2VpZGVubXVlbGxlciA8aW5mb0B3M3NlZWsuZGU+CisJQWRkZWQgY29udGV4dCBtZW51IHN1cHBvcnQuCisKKwkqIGRsbHMvd2luaW5ldC90ZXN0cy9odHRwLmM6IE1pa2UgSGVhcm4gPG1pa2VAdGhlb3JldGljLmNvbT4KKwlDaGFuZ2UgVVJMIHVzZWQgaW4gaHR0cCB0ZXN0cyB0byBiZSBhICNkZWZpbmUgc28gaXQgY2FuIGJlIGNoYW5nZWQKKwllYXNpbHkgaW4gZnV0dXJlLCBhbmQgbWFrZSBpdCBwb2ludCB0byB3aW5laHEuCisKKwkqIGRsbHMvdXNlci90ZXN0cy9pbnB1dC5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlUaGUgTVNWQyBoZWFkZXJzIHdvbid0IGdpdmUgYSBuYW1lIHRvIHRoZSBuYW1lbGVzcyB1bmlvbiBvZiBJTlBVVAorCWRlc3BpdGUgb3VyIHJlcXVlc3QgKE5PTkFNRUxFU1NVTklPTikuIFNvIGRlZmluZSBvdXIgb3duIHR5cGUgYW5kIHVzZQorCWl0IGluc3RlYWQuCisJUmVtb3ZlIHVzZWxlc3MgTk9OQU1FTEVTU1NUUlVDVC4KKwlGaXggc2lnbmVkL3Vuc2lnbmVkIHdhcm5pbmcuCisKKwkqIGRsbHMvdXNlci90ZXN0cy9jbGFzcy5jLCBkbGxzL3VzZXIvdGVzdHMvd2luLmM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJV2UgbmVlZCB0byBzZXQgX1dJTjMyX1dJTk5UIHRvIDB4NTAxIHRvIGdldCBDU19EUk9QU0hBRE9XIGFuZAorCUlDT05fU01BTEwyLgorCisJKiBkbGxzL3NobHdhcGkvdGVzdHMvY2xzaWQuYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJTVNWQyBkb2VzIG5vdCB3YW50ICdleHRlcm4nIHZhcmlhYmxlcyB0byBiZSBpbml0aWFsaXplZCBpbnNpZGUKKwlmdW5jdGlvbnMuCisKKwkqIGRsbHMvY29tY3RsMzIvaW1hZ2VsaXN0LmM6CisJVmluY2VudCBC6XJvbiA8dmJlcm9uQG1lY2Fuby5nbWUudXNoZXJiLmNhPgorCUdldCByaWQgb2YgYSBXLT5BIGNyb3NzIGNhbGwgaW4gSW1hZ2VMaXN0X0xvYWRJbWFnZVcuCisKKwkqIGRsbHMvZ2RpL2JpZGkuYzogVmluY2VudCBC6XJvbiA8dmJlcm9uQG1lY2Fuby5nbWUudXNoZXJiLmNhPgorCUZpeCBjb21waWxhdGlvbiB3aXRoIElDVSBhZnRlciBpbnRyb2R1Y3Rpb24gb2YgZ2RpX3ByaXZhdGUuaC4KKworCSogZGxscy90d2Fpbi9kc21fY3RybC5jOiBWaW5jZW50IELpcm9uIDx2YmVyb25AbWVjYW5vLmdtZS51c2hlcmIuY2E+CisJSW5pdGlhbGl6ZSBhIHBvaW50ZXIgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQuCisKKwkqIHRvb2xzL3dpbmFwaV9jaGVjay9tb2R1bGVzLmRhdDoKKwlWaW5jZW50IELpcm9uIDx2YmVyb25AbWVjYW5vLmdtZS51c2hlcmIuY2E+CisJWWV0IGFub3RoZXIgbmV3IHNwZWMgZmlsZSwgdGhpcyB0aW1lIGljY3ZpZC5zcGVjLgorCisJKiBkbGxzL250ZGxsL3NpZ25hbF9pMzg2LmM6IFJvYmVydCBMdW5ub24gPGJvYmxAb3B0dXNob21lLmNvbS5hdT4KKwlTYXZlIFVFU1AgaW5zdGVhZCBvZiBFU1Agd2hlcmUgVUVTUCBkZWZpbmVkLgorCisJKiBwcm9ncmFtcy9yZWdlZGl0L2ZyYW1ld25kLmM6IFRob21hcyBXZWlkZW5tdWVsbGVyIDxpbmZvQHczc2Vlay5kZT4KKwlJbXBsZW1lbnRlZCBWaWV3fFNwbGl0LgorCisJKiBwcm9ncmFtcy9yZWdlZGl0L01ha2VmaWxlLmluLCBwcm9ncmFtcy9yZWdlZGl0L2Fib3V0LmM6CisJVGhvbWFzIFdlaWRlbm11ZWxsZXIgPGluZm9AdzNzZWVrLmRlPgorCVNpbXBsaWZ5IHRoZSBBYm91dCBkaWFsb2cgY29kZS4KKworCSogcHJvZ3JhbXMvcmVnZWRpdC90cmVldmlldy5jOiBUaG9tYXMgV2VpZGVubXVlbGxlciA8aW5mb0B3M3NlZWsuZGU+CisJRXhwYW5kIHRoZSB0cmVldmlldyBvbiBzdGFydHVwLgorCisyMDA0LTAxLTE1ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2dkaS9mcmVldHlwZS5jLCBkbGxzL3dpbmVwcy9kb3dubG9hZC5jLCBkbGxzL3dpbmVwcy9ncmFwaGljcy5jLAorCSAgZGxscy93aW5lcHMvcGVuLmMsIGRsbHMvd2luZXBzL3BzZHJ2LmgsIGRsbHMvd2luZXBzL3RleHQuYywKKwkgIGRsbHMveDExZHJ2L2dyYXBoaWNzLmMsIGRsbHMveDExZHJ2L3Blbi5jLCBkbGxzL3gxMWRydi90ZXh0LmMsCisJICBkbGxzL3gxMWRydi94MTFkcnYuaCwgZGxscy94MTFkcnYveGZvbnQuYywgZGxscy94MTFkcnYveHJlbmRlci5jLAorCSAgaW5jbHVkZS9nZGkuaDoKKwlHZXQgcmlkIG9mIHRoZSBnbG9iYWwgSU5URVJOQUxfW1hZXVdTVE9EUyBtYWNyb3MuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGVsbC5jLCBkbGxzL3NoZWxsMzIvc2hlbGwzMl9tYWluLmgsCisJICBkbGxzL3NoZWxsMzIvc2hsZXhlYy5jOgorCU1hcmNlbG8gRHVhcnRlIDx3aW5lLWRldmVsQGJvbC5jb20uYnI+CisJLSBHZXQgcmlkIG9mIFctPkEgY2FsbHMgZm9yIHNobGV4ZWMuCisJLSBJbXBsZW1lbnRhdGlvbiBvZiBGaW5kRXhlY3V0YWJsZVcuCisKKwkqIHRvb2xzL3dpbmVidWlsZC9zcGVjMzIuYzoKKwlUd2Vha2VkIHRoZSBpbml0IGNvZGUgc28gdGhhdCBpdCB3b3JrcyBwcm9wZXJseSBubyBtYXR0ZXIgd2hhdCBsaW5rZXIKKwlvcHRpb25zIGFyZSB1c2VkLgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGxscy9NYWtlZmlsZS5pbiwgZGxscy9pY2N2aWQvLmN2c2lnbm9yZSwKKwkgIGRsbHMvaWNjdmlkL01ha2VmaWxlLmluLCBkbGxzL2ljY3ZpZC9pY2N2aWQuYywKKwkgIGRsbHMvaWNjdmlkL2ljY3ZpZC5zcGVjOgorCVRpbSBGZXJndXNvbiA8VGltLkZlcmd1c29uQGluZm90ZWNoLm1vbmFzaC5lZHUuYXU+CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVBvcnQgVGltIEZlcmd1c29uJ3MgSUNDVklEIGNvZGVjIHRvIFdpbmUuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL3BhdGguYywgZmlsZXMvZG9zX2ZzLmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVByZXNlcnZlIHRyYWlsaW5nIGJhY2tzbGFzaGVzIGluIEdldEZ1bGxQYXRoTmFtZS4KKworCSogcHJvZ3JhbXMvd2luZXRlc3QvLmN2c2lnbm9yZSwgcHJvZ3JhbXMvd2luZXRlc3QvTWFrZWZpbGUuaW4sCisJICBwcm9ncmFtcy93aW5ldGVzdC9ndWkuYywgcHJvZ3JhbXMvd2luZXRlc3QvZ3VpLnJjLAorCSAgcHJvZ3JhbXMvd2luZXRlc3QvZ3VpcmVzLmgsIHByb2dyYW1zL3dpbmV0ZXN0L21haW4uYywKKwkgIHByb2dyYW1zL3dpbmV0ZXN0L3NlbmQuYywgcHJvZ3JhbXMvd2luZXRlc3QvdXRpbC5jLAorCSAgcHJvZ3JhbXMvd2luZXRlc3Qvd2luZXRlc3QuaDoKKwlGZXJlbmMgV2FnbmVyIDx3ZmVyaUBhZmF2YW50LmVsdGUuaHU+CisJQWRkZWQgZ3JhcGhpY2FsIGZlZWRiYWNrLgorCisJKiB0b29scy93aW5lZHVtcC9tYWluLmMsIHRvb2xzL3dpbmVkdW1wL3BlLmMsCisJICB0b29scy93aW5lZHVtcC93aW5lZHVtcC5oOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCUJlIG1vcmUgc3RyaWN0IGFib3V0IGNoZWNrcyAoZXNwZWNpYWxseSBpbiBSVkEgdHJhbnNsYXRpb25zKS4KKworCSogZGxscy9nZGkvZHJpdmVyLmMsIGRsbHMvZ2RpL2VuaG1mZHJ2L2luaXQuYywKKwkgIGRsbHMvZ2RpL2VuaG1mZHJ2L29iamVjdHMuYywgZGxscy9nZGkvZnJlZXR5cGUuYywgZGxscy9nZGkvZ2RpMTYuYywKKwkgIGRsbHMvZ2RpL2dkaV9tYWluLmMsIGRsbHMvZ2RpL2dkaV9wcml2YXRlLmgsIGRsbHMvZ2RpL21mZHJ2L2luaXQuYywKKwkgIGRsbHMvZ2RpL21mZHJ2L21hcHBpbmcuYywgZGxscy9nZGkvbWZkcnYvb2JqZWN0cy5jLAorCSAgZGxscy9nZGkvcHJpbnRkcnYuYywgZGxscy9nZGkvd2luZy5jLCBkbGxzL3gxMWRydi9iaXRibHQuYywKKwkgIGRsbHMveDExZHJ2L2JpdG1hcC5jLCBkbGxzL3gxMWRydi9ncmFwaGljcy5jLCBkbGxzL3gxMWRydi9pbml0LmMsCisJICBkbGxzL3gxMWRydi90ZXh0LmMsIGRsbHMveDExZHJ2L3hyZW5kZXIuYywgZ3JhcGhpY3MvYml0Ymx0LmMsCisJICBncmFwaGljcy9lc2NhcGUuYywgZ3JhcGhpY3MvbWFwcGluZy5jLCBncmFwaGljcy9wYWludGluZy5jLAorCSAgZ3JhcGhpY3MvcGF0aC5jLCBpbmNsdWRlL2dkaS5oLCBpbmNsdWRlL3dpbmUvd2luZ2RpMTYuaCwKKwkgIG9iamVjdHMvYml0bWFwLmMsIG9iamVjdHMvYnJ1c2guYywgb2JqZWN0cy9jbGlwcGluZy5jLCBvYmplY3RzL2RjLmMsCisJICBvYmplY3RzL2RjdmFsdWVzLmMsIG9iamVjdHMvZGliLmMsIG9iamVjdHMvZW5obWV0YWZpbGUuYywKKwkgIG9iamVjdHMvZm9udC5jLCBvYmplY3RzL2dkaW9iai5jLCBvYmplY3RzL21ldGFmaWxlLmMsCisJICBvYmplY3RzL3BhbGV0dGUuYywgb2JqZWN0cy9wZW4uYywgb2JqZWN0cy9yZWdpb24uYywgb2JqZWN0cy90ZXh0LmMsCisJICB3aW5kb3dzL2RjZS5jLCB3aW5kb3dzL25vbmNsaWVudC5jLCB3aW5kb3dzL3BhaW50aW5nLmM6CisJTW92ZWQgYSBidW5jaCBvZiBkZWZpbml0aW9ucyBmcm9tIGdkaS5oIGludG8gYSBuZXcgZ2RpX3ByaXZhdGUuaCB0bworCW1ha2Ugc3VyZSB3ZSBkb24ndCB1c2UgdGhlbSBvdXRzaWRlIG9mIGdkaTMyLgorCisJKiBkbGxzL2lwaGxwYXBpL2lwaGxwYXBpX21haW4uYywgZGxscy9rZXJuZWwvZGV2aWNlLmMsCisJICBkbGxzL25ldGFwaTMyL25idC5jOgorCURlZmluZSBJTkFERFJfTk9ORSBpZiBuZWVkZWQgKHJlcG9ydGVkIGJ5IFJvYmVydCBMdW5ub24pLgorCisJKiBwcm9ncmFtcy93aW5ldGVzdC9NYWtlZmlsZS5pbjoKKwlBdm9pZCBub24tcG9ydGFibGUgc3RyaXAgLXMgKHJlcG9ydGVkIGJ5IFJvYmVydCBMdW5ub24pLgorCisJKiBkbGxzL2tlcm5lbC9NYWtlZmlsZS5pbiwgZGxscy9rZXJuZWwvcGF0aC5jLAorCSAgZGxscy9rZXJuZWwvdGVzdHMvcGF0aC5jLCBkbGxzL250ZGxsL3BhdGguYywgZmlsZXMvZG9zX2ZzLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJUmVpbXBsZW1lbnRlZCBHZXR7U2hvcnR8TG9uZ31QYXRoTmFtZSBhbmQgdXBkYXRlZCB0aGUgcmVncmVzc2lvbgorCXRlc3RzLgorCisyMDA0LTAxLTE0ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3dpbm1tL3dpbmVhdWRpb2lvL2F1ZGlvLmM6IFJvYmVydCBMdW5ub24gPGJvYmxAb3B0dXNob21lLmNvbS5hdT4KKwlGaXhlZCB0eXBlIG1pc21hdGNoIGluIHdpZERzQ3JlYXRlLgorCisJKiBkbGxzL2lwaGxwYXBpL2lmZW51bS5jOiBSb2JlcnQgTHVubm9uIDxib2JsQG9wdHVzaG9tZS5jb20uYXU+CisJQ29ycmVjdGVkIGNvZGUgdG8gYWNxdWlyZSBtdHUgdW5kZXIgU29sYXJpcy4KKworCSogZGxscy9udGRsbC9zaWduYWxfaTM4Ni5jOgorCUZpeGVkIF9fc2lnaW5mbyB0eXBlIGZvciBTb2xhcmlzIChiYXNlZCBvbiBhIHBhdGNoIGJ5IFJvYmVydCBMdW5ub24pLgorCisJKiBkbGxzL25ldGFwaTMyL25idC5jOiBSb2JlcnQgTHVubm9uIDxib2JsQG9wdHVzaG9tZS5jb20uYXU+CisJRkRfU0VUIGlzIG5vdCBhIHR5cGUgY2hhbmdlZCB0byBzdHJ1Y3QgZmRfc2V0LgorCVJlb3JkZXJlZCBoZWFkZXJzIHRvIGF2b2lkIGluY2x1ZGluZyBzeXMvc2VsZWN0LmggYmVmb3JlIHdpbmJhc2UuaC4KKworCSogdG9vbHMvYmluMnJlcy5jOiBSb2JlcnQgTHVubm9uIDxib2JsQG9wdHVzaG9tZS5jb20uYXU+CisJSW5jbHVkZWQgbGltaXRzLmggdG8gcmVzb2x2ZSBtaXNzaW5nIG1hY3JvIGRlZmluaXRpb24uCisKKwkqIExJQ0VOU0UsIGluY2x1ZGUvd2luZS93aW5lX2NvbW1vbl92ZXIucmM6CisJSXZhbiBMZW8gTXVycmF5LVNtaXRoIDxwdW90aUBpbndpbmQuaXQ+CisJVXBkYXRlZCBjb3B5cmlnaHQgaW5mb3JtYXRpb24uCisKKwkqIGRsbHMvZ2RpL2dkaTMyLnNwZWMsIGRsbHMveDExZHJ2L2NsaXBwaW5nLmMsIGRsbHMveDExZHJ2L2luaXQuYywKKwkgIGRsbHMveDExZHJ2L3Njcm9sbC5jLCBkbGxzL3gxMWRydi93aW5wb3MuYywgZGxscy94MTFkcnYveDExZHJ2Lmg6CisJTW92ZWQgU2V0RHJhd2FibGUsIFN0YXJ0R3JhcGhpY3NFeHBvc3VyZXMgYW5kIEVuZEdyYXBoaWNzRXhwb3N1cmVzCisJZnVuY3Rpb25hbGl0eSB0byB4MTFkcnYgZXNjYXBlcyBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gYWNjZXNzIHRoZSBEQworCXN0cnVjdHVyZSBkaXJlY3RseS4KKworCSogZGxscy9rZXJuZWwvZmlsZS5jLCBkbGxzL2tlcm5lbC9maWxlMTYuYywgZGxscy9rZXJuZWwva2VybmVsMzIuc3BlYywKKwkgIGRsbHMvd2luZWRvcy9pbnQyMS5jLCBmaWxlcy9maWxlLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJLSBnb3QgcmlkIG9mIEZJTEVfRHVwMiBleHBvcnQgZnJvbSBrZXJuZWwzMgorCS0gbW92ZSBhbGwgZG9zIGhhbmRsZSByZWxhdGVkIGNvZGUgaW50byBkbGxzL2tlcm5lbDMyCisKKzIwMDQtMDEtMTMgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvZ2RpL2dkaTMyLnNwZWMsIGRsbHMveDExZHJ2L2JpdG1hcC5jLCBkbGxzL3gxMWRydi9icnVzaC5jLAorCSAgZGxscy94MTFkcnYvZGliLmMsIGRsbHMveDExZHJ2L3gxMWRydi5oLCBpbmNsdWRlL2JpdG1hcC5oLAorCSAgb2JqZWN0cy9kaWIuYywgd2luZG93cy9jdXJzb3JpY29uLmM6CisJTW92ZWQgc29tZSBjb2RlIGFyb3VuZCB0byBhdm9pZCBleHBvcnRpbmcgRElCIGZ1bmN0aW9ucyBmcm9tIGdkaTMyLgorCisJKiBwcm9ncmFtcy9yZWdlZGl0L2VkaXQuYywgcHJvZ3JhbXMvcmVnZWRpdC9mcmFtZXduZC5jLAorCSAgcHJvZ3JhbXMvcmVnZWRpdC9saXN0dmlldy5jLCBwcm9ncmFtcy9yZWdlZGl0L21haW4uaDoKKwlEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCUFkZCB2YWx1ZSByZW5hbWUgc3VwcG9ydCB0byByZWdlZGl0LgorCisJKiBkbGxzL29sZWF1dDMyL29sZWF1dDMyLnNwZWMsIGRsbHMvb2xlYXV0MzIvdmFyaWFudC5jOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJSW1wbGVtZW50ZWQgVmFySW50LCBWYXJGaXgsIFZhck5lZy4KKworCSogZGxscy9vbGVhdXQzMi92YXJ0eXBlLmM6IEpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJVXNlIGludGVnZXIgbWF0aCBpbiBWYXJDeUludCwgZG9jcy4KKworCSogZGxscy9tc3ZjcnQvbWFpbi5jLCBkbGxzL21zdmNydC9tc3ZjcnQuaCwgZGxscy9tc3ZjcnQvbXN2Y3J0LnNwZWM6CisJUmVpbiBLbGF6ZXMgPHJrbGF6ZXNAeHM0YWxsLm5sPgorCVR3byAidW5rbm93biIgcGFyYW1ldGVycyBvZiBfdW5ETmFtZSgpIHR1cm4gb3V0IHRvIGJlIHRoZSBvdXRwdXQKKwlzdHJpbmcgYW5kIGl0IGxlbmd0aC4gSWYgcG9zc2libGUsIHVzZSB0aGVzZSBpbnN0ZWFkIG9mIGFsbG9jYXRpbmcgYQorCW5ldyBvbmUuIFB1dCB0aGUgY29kZSBpbiBfdW5ETmFtZUV4KCkgYW5kIGNhbGwgdGhhdCBmcm9tIF91bkROYW1lKCkuCisKKwkqIGRsbHMvYXZpZmlsMzIvcnNyYy5yYzogVG9tIFdpY2tsaW5lIDx0d2lja2xpbmVAc2t5YmVzdC5jb20+CisJRml4ZWQgdmVyc2lvbiBpbmZvLgorCisJKiBwcm9ncmFtcy93aW5lYnJvd3Nlci9tYWluLmM6IFRvbSBXaWNrbGluZSA8dHdpY2tsaW5lQHNreWJlc3QuY29tPgorCUFkZCBkaWxsbyBhcyBhIGJyb3dzZXIgdG8gc2VhcmNoIGZvci4KKworCSogZGxscy9tc3ZjcnQvTWFrZWZpbGUuaW4sIGRsbHMvbXN2Y3J0L2Rpci5jLCBkbGxzL21zdmNydC9lcnJuby5jLAorCSAgZGxscy9tc3ZjcnQvZXhpdC5jLCBkbGxzL21zdmNydC9maWxlLmMsIGRsbHMvbXN2Y3J0L2xjb252LmMsCisJICBkbGxzL21zdmNydC9sb2NhbGUuYywgZGxscy9tc3ZjcnQvbWF0aC5jLCBkbGxzL21zdmNydC9tc3ZjcnQuaCwKKwkgIGRsbHMvbXN2Y3J0L21zdmNydC5zcGVjOgorCUltcGxlbWVudGVkIHRoZSByZW1haW5pbmcgNjQtYml0IGZpbGUgZnVuY3Rpb25zLCBhbmQgYWRkZWQgYSBmZXcgb3RoZXIKKwlmdW5jdGlvbnMgYW5kIGV4cG9ydGVkIHZhcmlhYmxlcy4KKwlSZW1vdmVkIHRoZSBhbG1vc3QgZW1wdHkgbGNvbnYuYyBmaWxlLgorCisJKiBkbGxzL21zdmNydGQvZGVidWcuYywgZGxscy9tc3ZjcnRkL21zdmNydGQuc3BlYzoKKwlJbXBsZW1lbnRlZCBhIGZldyBtb3JlIGNydCogZnVuY3Rpb25zLgorCVJlcGxhY2VkIG1vc3QgcmVtYWluaW5nIHN0dWJzIGJ5IGZvcndhcmRzIHRvIG1zdmNydC4KKworCSogZGxscy94MTFkcnYvZGliLmM6IEF2b2lkIGRpcmVjdCBhY2Nlc3MgdG8gdGhlIHBhbGV0dGUgc3RydWN0dXJlLgorCisJKiBkbGxzL2dkaS9NYWtlZmlsZS5pbiwgZGxscy9nZGkvZ2RpMzIuc3BlYywgZGxscy9nZGkvaWNtLmMsCisJICBpbmNsdWRlL3dpbmdkaS5oOgorCU1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUFkZGVkIHN0dWIgZm9yIEVudW1JQ01Qcm9maWxlc0EvVy4KKworCSogZGxscy93aW5zb2NrL3Rlc3RzL3NvY2suYzogSmVyZW15IFdoaXRlIDxqd2hpdGVAY29kZXdlYXZlcnMuY29tPgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJVGVzdCB0aGUgYmVoYXZpb3Igb2YgYmluZCgpIHdydC4gU09fUkVVU0VBRERSLgorCisJKiBkbGxzL3dpbnNvY2svc29ja2V0LmM6IEplcmVteSBTaGF3IDxqZXJlbXkuc2hhd0BsaW5kb3dzLmNvbT4KKwlSZW1vdmUgZm9yY2VkIFdTX1NPX1JFVVNFQUREUiBvbiBhbGwgYmluZHMuCisKKwkqIGRsbHMvY29tY3RsMzIvYW5pbWF0ZS5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCUZpeCBhIHJhY2UgdGhhdCBjYXVzZWQgdGhlIE1pY3Jvc29mdCBWaWV3ZXJzICdmaWxlIGV4dHJhY3Rpb24nCisJYW5pbWF0aW9uIHRvIHNvbWV0aW1lcyBoYXZlIGEgcGluayBiYWNrZ3JvdW5kLgorCisJKiBwcm9ncmFtcy9yZWdlZGl0L3JlZ2VkaXQuYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlEbyBhIFNlYXJjaFBhdGggYmVmb3JlIG9wZW5pbmcgdGhlIGZpbGUgdG8gaW1wcm92ZSBjb21wYXRpYmlsaXR5IHdpdGgKKwl0aGUgbmF0aXZlIHJlZ2VkaXQuCisKKwkqIHByb2dyYW1zL3JlZ2VkaXQvdGVzdHMvb3JpZy5yZWcsIHByb2dyYW1zL3JlZ2VkaXQvdGVzdHMvcmVnZWRpdC5wbDoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlSZW1vdmUgcmVmZXJlbmNlcyB0byByZWdhcGkuCisKKwkqIHRvb2xzL3dpbmFwaV9jaGVjay9tb2R1bGVzLmRhdDoKKwlWaW5jZW50IELpcm9uIDx2YmVyb25AbWVjYW5vLmdtZS51c2hlcmIuY2E+CisJQWRkIHlldCBhbm90aGVyIHNwZWMgZmlsZSBmb3IgYSBuZXcgZGxsLgorCisJKiBkbGxzL250ZGxsL3Rlc3RzL2Vudi5jOiBWaW5jZW50IELpcm9uIDx2YmVyb25AbWVjYW5vLmdtZS51c2hlcmIuY2E+CisJUmVtb3ZlIGEgIlwiIGZyb20gYSBtdWx0aWxpbmUgc3RyaW5nIGNvbnN0YW50IGJ5IHNwbGl0dGluZyBpdCBpbiB0d28uCisKKwkqIG9iamVjdHMvbWV0YWZpbGUuYzogVmluY2VudCBC6XJvbiA8dmJlcm9uQG1lY2Fuby5nbWUudXNoZXJiLmNhPgorCVJlbW92ZWQgYSBXLT5BIGNyb3NzLWNhbGwgKENvcHlNZXRhRmlsZVctPkNvcHlNZXRhRmlsZUEpLgorCisJKiBkbGxzL21zdmNydDQwL21zdmNydDQwLnNwZWM6IEFkZGVkIGFsbCB0aGUgbWlzc2luZyBmdW5jdGlvbnMuCisKKwkqIGRsbHMvbXN2Y3J0L21zdmNydC5zcGVjOiBfc2V0X2Vycm9yX21vZGUgaXMgY2RlY2wgbm90IHN0ZGNhbGwuCisKKwkqIGRsbHMvbXN2Y3J0ZC9tc3ZjcnRkLnNwZWM6IEFuZHLpIEpvaGFuc2VuIDxhbmRyZWpvaEBjMmkubmV0PgorCUZvcndhcmQgX3NldF9lcnJvcl9tb2RlIHRvIG1zdmNydC4KKworCSogZGxscy93aW5lcHMvaW5pdC5jLCBpbmNsdWRlL2dkaS5oLCBvYmplY3RzL2RjLmM6CisJVmluY2VudCBC6XJvbiA8dmJlcm9uQG1lY2Fuby5nbWUudXNoZXJiLmNhPgorCUdldCByaWQgb2YgYSBXLT5BIGNyb3NzY2FsbCAoUmVzZXREQ0EtPlJlc2V0RENXKS4KKworCSogZGxscy93aW5tbS93aW5lYWxzYS9taWRpLmM6IENocmlzdGlhbiBDb3N0YSA8dGl0YW4uY29zdGFAd2FuYWRvby5mcj4KKwlBZGRlZCBNaWRpIElOIHN1cHBvcnQuCisKKzIwMDQtMDEtMTIgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvY29tbWRsZy9maWxlZGxnLmM6IFJlaW4gS2xhemVzIDxya2xhemVzQHhzNGFsbC5ubD4KKwlIYW5kbGUgdGhlIGNhc2VzIHdoZW4gaW5pdGRpciBpcyBlaXRoZXIgaW52YWxpZCwgb3Igc3BlY2lmaWVzIGEgZmlsZS4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRsbHMvTWFrZWZpbGUuaW4sIGRsbHMvbXN2Y3J0NDAvLmN2c2lnbm9yZSwKKwkgIGRsbHMvbXN2Y3J0NDAvTWFrZWZpbGUuaW4sIGRsbHMvbXN2Y3J0NDAvbXN2Y3J0NDAuYywKKwkgIGRsbHMvbXN2Y3J0NDAvbXN2Y3J0NDAuc3BlYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJU3R1YiBlbm91Z2ggb2YgTVNWQ1JUNDAgdG8gbWFrZSBJRTQgaW5zdGFsbCB3b3JrLgorCisJKiBkbGxzL3VzZXIvdXNlcl9tYWluLmMsIGRsbHMveDExZHJ2L3Njcm9sbC5jLCBkbGxzL3gxMWRydi94MTFkcnYuc3BlYywKKwkgIGluY2x1ZGUvdXNlci5oLCB3aW5kb3dzL3Njcm9sbC5jOgorCVNjcm9sbERDIGRvZXNuJ3QgbmVlZCB0byBiZSBpbiB0aGUgZ3JhcGhpY3MgZHJpdmVyLgorCisJKiBvYmplY3RzL2RjLmM6IE1pa2UgSGVhcm4gPG1pa2VAdGhlb3JldGljLmNvbT4KKwlDaGFuZ2UgR2V0VHJhbnNmb3JtIHN0dWIgdG8gdXNlIHRoZSBzdGFuZGFyZCBGSVhNRSByYXRoZXIgdGhhbiBFUlIuCisKKwkqIGRsbHMvd2luZXBzL3dpbmVwcy5zcGVjOiBWaW5jZW50IELpcm9uIDx2YmVyb25AbWVjYW5vLmdtZS51c2hlcmIuY2E+CisJQ3JlYXRlREMgaXMgVW5pY29kZSBub3csIGNoYW5nZSB0aGUgc3BlYyBmaWxlIGFjY29yZGluZ2x5LgorCisJKiB0b29scy93aW5hcGlfY2hlY2svbW9kdWxlcy5kYXQ6CisJVmluY2VudCBC6XJvbiA8dmJlcm9uQG1lY2Fuby5nbWUudXNoZXJiLmNhPgorCUFkZCBzcGVjIGZpbGVzIGZvciBuZXcgZGxscy4KKworCSogZGxscy9yaWNoZWRpdC9yZWFkZXIuYzogQmlsbCBNZWRsYW5kIDxiaWxsbWVkbGFuZEBtZXJjdXJ5c3BlZWQuY29tPgorCUNvcnJlY3QgaGFuZGxpbmcgb2YgZm9udCB0YWJsZSB3aGVuIHRoZSBmb250IG5hbWUgaXMgbm90IHRoZSBsYXN0CisJdGhpbmcgaW4gdGhlIGVudHJ5IChpLmUuIGlzIGZvbGxvd2VkIGJ5IHRoZSBmb250IGFsdG5hbWUgaW4gYSBncm91cCkuCisKKwkqIGRsbHMvb2xlYXV0MzIvc2FmZWFycmF5LmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCVNhZmVBcnJheVJlZGltOiBVc2UgdGhlIGNvcnJlY3Qgc2l6ZSBmb3IgcmVzaXplIHRvby4KKworCSogZGxscy9rZXJuZWwva2VybmVsMzIuc3BlYywgZGxscy9rZXJuZWwvdG9vbGhlbHAuYywKKwkgIGluY2x1ZGUvdGxoZWxwMzIuaDoKKwlFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwlJbXBsZW1lbnRlZCBUb29saGVscDMyUmVhZFByb2Nlc3NNZW1vcnkuCisKKwkqIGRsbHMvd2lubW0vbW1zeXN0ZW0uYywgZGxscy93aW5tbS90aW1lLmMsIGRsbHMvd2lubW0vd2luZW1tLmg6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJLSBpbXBsZW1lbnRlZCBUSU1FX0tJTExfU1lDSFJPTk9VUyB0aW1lciBmbGFncworCS0gdGltZUtpbGxUaW1lciBpcyBub3cgdGhyZWFkIHNhZmUKKwktIHJlcGxhY2VkIHNvbWUgaURhdGEgYXR0cmlidXRlcyBieSBnbG9iYWwgdmFyaWFibGVzCisKKwkqIGRsbHMvZHNvdW5kL2Rzb3VuZF9wcml2YXRlLmgsIGRsbHMvZHNvdW5kL21peGVyLmM6CisJUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlSZWR1Y2UgdGhlIHVzZSBvZiB0aGUgZHNvdW5kIGdsb2JhbCB2YXJpYWJsZSBieSBwYXNzaW5nIGFkZHJlc3MgdG8KKwlmdW5jdGlvbnMuCisKKzIwMDQtMDEtMDkgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMva2VybmVsL2hlYXAuYywgZGxscy9rZXJuZWwvbG9jYWwxNi5jLCBkbGxzL29sZWF1dDMyL3RtYXJzaGFsLmMsCisJICBkbGxzL3JwY3J0NC9jcHJveHkuYywgZGxscy93aW5lZG9zL21vZHVsZS5jLCBkbGxzL3dpbmVkb3MveG1zLmMsCisJICBpbmNsdWRlL2N1cnNvcmljb24uaCwgaW5jbHVkZS9taXNjZW11LmgsIGluY2x1ZGUvbW9kdWxlLmgsCisJICBpbmNsdWRlL3dpbmUvd2luYmFzZTE2LmgsIGluY2x1ZGUvd2luZS93aW51c2VyMTYuaCwgaW5jbHVkZS93aW5udC5oLAorCSAgaW5jbHVkZS93aW51c2VyLmg6CisJR2V0IHJpZCBvZiBubyBsb25nZXIgbmVlZGVkIFdJTkVfUEFDS0VEIGRlZmluZS4KKworCSogZGxscy9kc291bmQvYnVmZmVyLmMsIGRsbHMvZHNvdW5kL2Rzb3VuZF9tYWluLmMsCisJICBkbGxzL2Rzb3VuZC9kc291bmRfcHJpdmF0ZS5oLCBkbGxzL2Rzb3VuZC9wcmltYXJ5LmMsCisJICBpbmNsdWRlL2Rzb3VuZC5oOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJQWRkZWQgc29tZSBtaXNzaW5nIGRlZmluZXMgYW5kIGEgc3RydWN0LgorCUZpeGVkIHNvbWUgY29uc3QgKiBhcmd1bWVudHMuCisKKwkqIGRsbHMvbnRkbGwvZmlsZS5jOiBNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlBbGxvdyBvZmZzZXQgb2YgTlVMTCB0byBOdFdyaXRlRmlsZS4KKworCSogZGxscy93aW5tbS93aW5lYXJ0cy9hdWRpby5jOiBNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlGaXhlZCBIZWFwUmVhbGxvYyB0eXBvLgorCisJKiB0b29scy93aW5lZ2NjL3dpbmV3cmFwLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJUmVtb3ZlIHRoZSB3cmFwcGVyIGdlbmVyYXRpb24gZnJvbSB3aW5ld3JhcCwgaXQgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeQorCShmaXhlZCBieSBBbGV4YW5kcmUncyBjb25zdHJ1Y3RvciBwYXRjaCkuCisKKwkqIGRsbHMvY29tbWRsZy9wcmludGRsZy5jLCBkbGxzL2NvbW1kbGcvcHJpbnRkbGcuaCwKKwkgIGRsbHMvY29tbWRsZy9wcmludGRsZzE2LmM6CisJU29tZSBtb3JlIFdpbjE2L1dpbjMyIHNlcGFyYXRpb24gKGJhc2VkIG9uIGEgcGF0Y2ggYnkgU3RldmVuCisJRWR3YXJkcykuCisKKwkqIGRsbHMvd2luZWRvcy9pbnQxMC5jOiBNaWNoYWVsIFN0ZWZhbml1YyA8bXN0ZWZhbmlAcmVkaGF0LmRlPgorCS0gYWRkIFZFU0EgbW9kZSAweDZhIChzYW1lIGFzIDB4MTAyKQorCS0gYWRkIGEgbWFjcm8gdG8gY2hlY2sgaWYgYSBtb2RlIGlzIGEgVkVTQSBtb2RlCisJLSBvdXRwdXQgdGhlIHVuc3VwcG9ydGVkIFZHQSBtb2RlIGluIGhleCAoYWxsIFZHQS9WRVNBIGRvY3MgdXNlIGhleAorCSAgZm9yIHRoYXQpCisKKwkqIGRsbHMvd2lubW0vd2luZWphY2svYXVkaW8uYywgZGxscy93aW5tbS93aW5lamFjay93aW5lamFjay5kcnYuc3BlYywKKwkgIGRsbHMvd2lubW0vd2luZWFydHMvYXVkaW8uYywgZGxscy93aW5tbS93aW5lYXJ0cy93aW5lYXJ0cy5kcnYuc3BlYzoKKwlKZXJlbXkgU2hhdyA8amVyZW15LnNoYXdAbGluZG93cy5jb20+CisJQWRkZWQgd2F2ZS1pbiBzdXBwb3J0IGFuZCBmaXhlZCBhIGZldyBidWdzIGluIHRoZSB3YXZlLW91dCBjb2RlLgorCisJKiBkbGxzL3gxMWRydi94MTFkcnZfbWFpbi5jOgorCVJlbW92ZWQgWEluaXRUaHJlYWRzIGNhbGwsIHRoZSBYIGxpYnJhcmllcyBzdGlsbCBoYXZlIHRvbyBtYW55IGJ1Z3MgdG8KKwltYWtlIHRoaXMgdmlhYmxlLgorCisJKiBkbGxzL29sZWF1dDMyL3NhZmVhcnJheS5jLCBkbGxzL29sZWF1dDMyL3Rlc3RzL3ZhcnR5cGUuYywKKwkgIGRsbHMvb2xlYXV0MzIvdmFyaWFudC5jOgorCU1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUNvcHkgQlNUUnMgYnl0ZSB3aXNlLgorCUFkZGVkIGEgdGVzdGNhc2UgZm9yIGJ5dGUgd2lzZSBjb3B5IG9mIFZUX0JTVFIgdmFyaWFudCB3aXRoCisJVmFyaWFudENvcHkoKS4KKworCSogaW5jbHVkZS9NYWtlZmlsZS5pbiwgaW5jbHVkZS9kYnQuaDoKKwlVbHJpY2ggQ3pla2FsbGEgPHVscmljaC5jemVrYWxsYUB1dG9yb250by5jYT4KKwlBZGRlZCBoZWFkZXIgZGJ0LmguCisKKwkqIGRsbHMvdXNlci90ZXN0cy8uY3ZzaWdub3JlLCBkbGxzL3VzZXIvdGVzdHMvTWFrZWZpbGUuaW4sCisJICBkbGxzL3VzZXIvdGVzdHMvcmVzb3VyY2UuYywgZGxscy91c2VyL3Rlc3RzL3Jlc291cmNlLnJjOgorCUZlcmVuYyBXYWduZXIgPHdmZXJpQGFmYXZhbnQuZWx0ZS5odT4KKwlQaW4gZG93biBMb2FkU3RyaW5nQSBiZWhhdmlvdXIgb24gZGlmZmVyZW50IGJ1ZmZlciBsZW5ndGhzLgorCisJKiBkbGxzL3NoZWxsMzIvc2h2X2JnX2NtZW51LmM6CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggYW4gSUUgY3Jhc2ggYW5kIG1ha2UgdGhlICJDcmVhdGUgRm9sZGVyIiBmdW5jdGlvbmFsaXR5IGluCisJRmF2b3JpdGVzIHdvcmsuCisKKwkqIGRsbHMvcnBjcnQ0L3JwY19zZXJ2ZXIuYzogT3ZlIEthYXZlbiA8b3Zla0B0cmFuc2dhbWluZy5jb20+CisJQXZvaWQgZnJlZWluZyByZXF1ZXN0IHBhY2tldCB0b28gZWFybHkgaWYgYW4gZXhjZXB0aW9uIG9jY3Vycy4KKworCSogZGxscy9ycGNydDQvcnBjX2JpbmRpbmcuYzogT3ZlIEthYXZlbiA8b3Zla0B0cmFuc2dhbWluZy5jb20+CisJUHJvcGVybHkgaGFuZGxlIGRlc3Ryb3lpbmcgdGhlIGZpcnN0IGNvbm5lY3Rpb24gaW4gdGhlIGNvbm5lY3Rpb24KKwljYWNoZS4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvZmlsZS5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJUmVncmVzc2lvbiB0ZXN0IGZvciBmaWxlcyB3aXRoIHplcm8gbGVuZ3RoLgorCisJKiBzZXJ2ZXIvbWFwcGluZy5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJTWFwcGluZyBhIHplcm8gc2l6ZSBmaWxlIHNob3VsZCBmYWlsLgorCisJKiB0b29scy93aW5lZ2NjL3dpbmV3cmFwLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJRG8gbm90IGZhaWwgaWYgd2UgY2FuJ3QgbG9hZCBzb21lIGxpYnMgaW4gdGhlIHdyYXBwZXIuCisJTm8gbmVlZCB0byBsaW5rIHRoZSB3cmFwcGVyIHdpdGggYWxsIGxpYnMsIHdlIGtub3cgd2hhdCB3ZSBuZWVkLgorCisJKiB0b29scy93aW5lZ2NjL3dpbmV3cmFwLmM6CisJSWYgc3VwcG9ydGVkLCBhZGQgLWluaXQgYW5kIC1maW5pIGZsYWdzIHRvIHRoZSBsaW5rZXIgaW52b2NhdGlvbi4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRsbHMvd2ludGFiMzIvTWFrZWZpbGUuaW4sCisJICBkbGxzL3dpbnRhYjMyL2NvbnRleHQuYywgZGxscy93aW50YWIzMi93aW50YWIzMi5jLAorCSAgZGxscy93aW50YWIzMi93aW50YWJfaW50ZXJuYWwuaCwgZGxscy94MTFkcnYvTWFrZWZpbGUuaW4sCisJICBkbGxzL3gxMWRydi9ldmVudC5jLCBkbGxzL3gxMWRydi93aW50YWIuYywgZGxscy94MTFkcnYveDExZHJ2LmgsCisJICBkbGxzL3gxMWRydi94MTFkcnYuc3BlYywgaW5jbHVkZS9jb25maWcuaC5pbiwgaW5jbHVkZS93aW50YWIuaDoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUVuYWJsZSBUYWJsZXQgc3VwcG9ydCB3aXRoIGJvdGggVGlsdCBhbmQgUHJlc3N1cmUuCisKKzIwMDQtMDEtMDggIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvZDNkOC9kM2Rjb3JlX2dsLmgsIGRsbHMvdHdhaW4vdHdhaW4uaCwgaW5jbHVkZS93aW5lL21tc3lzdGVtMTYuaDoKKwlUaGVyZSdzIG5vIG5lZWQgZm9yIERVTU1ZVU5JT05OQU1FIGluIHByaXZhdGUgaGVhZGVycy4KKworCSogaW5jbHVkZS9jb21tZGxnLmg6IEtldmluIEtvbHR6YXUgPGtldmluQHBsb3Aub3JnPgorCURlZmluZSBPUEVORklMRU5BTUVfU0laRV9WRVJTSU9OXzQwMC4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGluY2x1ZGUvY29uZmlnLmguaW4sIGluY2x1ZGUvd2luZS9wb3J0LmgsCisJICBsaWJzL3BvcnQvTWFrZWZpbGUuaW4sIGxpYnMvcG9ydC9yZWFkbGluay5jOgorCUFkZGVkIGNvbmZpZ3VyZSBjaGVjayBmb3IgcmVhZGxpbmsuCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkbGxzL2tlcm5lbC9wcm9jZXNzLmMsIGRsbHMvbnRkbGwvbG9hZGVyLmMsCisJICBpbmNsdWRlL2NvbmZpZy5oLmluLCB0b29scy93aW5lYnVpbGQvc3BlYzMyLmM6CisJSWYgc3VwcG9ydGVkIGJ5IHRoZSBsaW5rZXIsIHByZXZlbnQgdGhlIEVMRiBsb2FkZXIgZnJvbSBjYWxsaW5nIHRoZQorCWRsbCBjb25zdHJ1Y3RvcnMgYXQgbG9hZCB0aW1lIGFuZCBjYWxsIHRoZW0gZnJvbSB0aGUgZGxsIGVudHJ5IHBvaW50CisJaW5zdGVhZC4KKworCSogZGxscy9rZXJuZWwvdGh1bmsuYzogTWlrZSBIZWFybiA8bWlrZUB0aGVvcmV0aWMuY29tPgorCUFsd2F5cyBwcmludCBhIG1lc3NhZ2UgZm9yIGdlbmVyaWMgc3R1YnMuCisKKwkqIGRsbHMveDExZHJ2L2NsaXBib2FyZC5jLCBkb2N1bWVudGF0aW9uL3NhbXBsZXMvY29uZmlnOgorCVVscmljaCBDemVrYWxsYSA8dWxyaWNoQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgb3B0aW9uIHRvIHVzZSB0aGUgcHJpbWFyeSBzZWxlY3Rpb24gaW4gYWRkaXRpb24gdG8gdGhlIGNsaXBib2FyZAorCXNlbGVjdGlvbi4KKworCSogZGxscy9jYWJpbmV0L2NhYmV4dHJhY3QuYywgZGxscy9jYWJpbmV0L2NhYmluZXQuaCwKKwkgIGRsbHMvY2FiaW5ldC9jYWJpbmV0X21haW4uYzoKKwlTdGVmYW4gTGVpY2h0ZXIgPFN0ZWZhbi5MZWljaHRlckBjYW1MaW5lLmNvbT4KKwlBZGRlZCB0aGUgbGlua2VkIGxpc3Qgd2l0aCB0aGUgbmFtZSBvZiBmaWxlcyBvZiB0aGUgQ0FCIGFyY2hpdmUuCisKKwkqIGRsbHMvd2lubW0vbWNpYW5pbS9tY2lhbmltLmMsIGRsbHMvd2lubW0vbWNpY2RhL21jaWNkYS5jLAorCSAgZGxscy93aW5tbS9tY2lzZXEvbWNpbWlkaS5jLCBkbGxzL3dpbm1tL21jaXdhdmUvbWNpd2F2ZS5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCS0gQXBwbGllZCB0byBhbGwgTUNJIGRyaXZlcnMgRG1pdHJ5J3MgZml4IGZvciBNQ0lfU1RBVFVTX1RJTUVfRk9STUFUCisJICAod2Fzbid0IHJldHVybmluZyBzdHJpbmcgcmVzb3VyY2UgSUQpLgorCS0gRml4ZWQgbWNpc2VxIHdoZW4gb3BlbmVkIHdpdGhvdXQgYSBmaWxlbmFtZS4KKworCSogZGxscy9pcGhscGFwaS90ZXN0cy9pcGhscGFwaS5jOiBIYW5zIExlaWRla2tlciA8aGFuc0BpdC52dS5ubD4KKwlSZW1vdmUgc29tZSB1bnVzZWQgaGVhZGVycy4KKworCSogcHJvZ3JhbXMvcmVnZWRpdC9JdC5yYzogSXZhbiBMZW8gTXVycmF5LVNtaXRoIDxwdW90aUBpbndpbmQuaXQ+CisJQnJvdWdodCB1cCB0byBkYXRlIHRvIERpbWkncyBsYXRlc3QgcGF0Y2guCisKKwkqIGluY2x1ZGUvTWFrZWZpbGUuaW4sIGluY2x1ZGUvaWNtLmg6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUFkZCBpY20uaCBmb3IgY29sb3VyIG1hbmFnZW1lbnQuCisKKwkqIGluY2x1ZGUvc2hsb2JqLmg6IEtldmluIEtvbHR6YXUgPGtldmluQHBsb3Aub3JnPgorCURlZmluZSBzdHJ1Y3RzIEZJTEVERVNDUklQVE9SIGFuZCBGSUxFR1JPVVBERVNDUklQVE9SIHVzZWQgd2l0aCB0aGUKKwljbGlwYm9hcmQgZm9ybWF0IENGX0ZJTEVHUk9VUERFU0NSSVBUT1IuCisKKzIwMDQtMDEtMDcgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMva2VybmVsL2tlcm5lbF9wcml2YXRlLmgsIGRsbHMva2VybmVsL3Byb2Nlc3MuYywKKwkgIGRsbHMva2VybmVsL3B0aHJlYWQuYywgZGxscy9udGRsbC9kZWJ1Z3Rvb2xzLmMsCisJICBkbGxzL250ZGxsL250ZGxsX21pc2MuaCwgZGxscy9udGRsbC90aHJlYWQuYywgZGxscy9udGRsbC92aXJ0dWFsLmM6CisJRG9uJ3QgdXNlIGNvbnN0cnVjdG9ycyBmb3IgbnRkbGwgYW5kIGtlcm5lbDMyIGluaXRpYWxpemF0aW9uLgorCisJKiB0b29scy93aWRsL01ha2VmaWxlLmluLCB0b29scy93aWRsL2hlYWRlci5jLCB0b29scy93aWRsL2hlYWRlci5oLAorCSAgdG9vbHMvd2lkbC9wYXJzZXIubCwgdG9vbHMvd2lkbC9wYXJzZXIueSwgdG9vbHMvd2lkbC9wcm94eS5jLAorCSAgdG9vbHMvd2lkbC9wcm94eS5oLCB0b29scy93aWRsL3R5cGVsaWIuYywgdG9vbHMvd2lkbC90eXBlbGliLmgsCisJICB0b29scy93aWRsL3dpZGwuYywgdG9vbHMvd2lkbC93aWRsLmgsIHRvb2xzL3dpZGwvd2lkbHR5cGVzLmg6CisJT3ZlIEthYXZlbiA8b3Zla0BhcmN0aWNuZXQubm8+CisJQWRkZWQgcnVsZXMgdG8gcGFyc2UgbGlicmFyeSwgY29jbGFzcywgZGlzcGludGVyZmFjZSwgYW5kIG1vZHVsZQorCWRlZmluaXRpb25zLCBhbmQgYSBudW1iZXIgb2YgYXR0cmlidXRlcywgYW5kIGNsZWFuZWQgdXAgYSBmZXcgdGhpbmdzLgorCVN0YXJ0ZWQgb24gYSB0eXBlbGliIGdlbmVyYXRpb24gZnJhbWV3b3JrLgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGxscy9pcGhscGFwaS9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvaXBobHBhcGkvaXBobHBhcGlfbWFpbi5jLCBkbGxzL2lwaGxwYXBpL3Rlc3RzLy5jdnNpZ25vcmUsCisJICBkbGxzL2lwaGxwYXBpL3Rlc3RzL01ha2VmaWxlLmluLCBkbGxzL2lwaGxwYXBpL3Rlc3RzL2lwaGxwYXBpLmM6CisJSnVhbiBMYW5nIDxqdWFuX2xhbmdAeWFob28uY29tPgorCUZpeGVkIHRoZSBkd0JDYXN0QWRkciBtZW1iZXIgb2YgTUlCX0lQQUREUlJPVywgYWRkZWQgYSB0ZXN0IHByb2dyYW0uCisKKwkqIGRsbHMvY29tY3RsMzIvdHJlZXZpZXcuYywgZGxscy9tc2kvc3VtaW5mby5jLAorCSAgZGxscy9zaGVsbDMyL2Jyc2ZvbGRlci5jOgorCVJlbW92ZWQgaW5jb3JyZWN0IHVzZXMgb2YgRFVNTVlVTklPTk5BTUUuCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOiAgV2ltIExld2lzIDx3aW1sQHVuZGVyaGlsbC5oaGhoLm9yZz4KKwlGaXhlZCBzaGVsbCBxdW90aW5nIG9mIHRoZSBpbmxpbmUtYXNtIHRlc3RzIHNvIHRoYXQgdGhleSB3b3JrIHByb3Blcmx5CisJd2l0aCB0aGUgcGRrc2ggdGhhdCBzaGlwcyB3aXRoIE9wZW5CU0QuCisKKwkqIHByb2dyYW1zL3dpbmVjZmcvRW4ucmMsIHByb2dyYW1zL3dpbmVjZmcvRXMucmMsCisJICBwcm9ncmFtcy93aW5lY2ZnL01ha2VmaWxlLmluLCBwcm9ncmFtcy93aW5lY2ZnL1B0LnJjLAorCSAgcHJvZ3JhbXMvd2luZWNmZy9SdS5yYywgcHJvZ3JhbXMvd2luZWNmZy9TaS5yYywKKwkgIHByb2dyYW1zL3dpbmVjZmcvbGlicmFyaWVzLmMsIHByb2dyYW1zL3dpbmVjZmcvbWFpbi5jLAorCSAgcHJvZ3JhbXMvd2luZWNmZy9yZXNvdXJjZS5oLCBwcm9ncmFtcy93aW5lY2ZnL3dpbmVjZmcuYywKKwkgIHByb2dyYW1zL3dpbmVjZmcvd2luZWNmZy5oOgorCVJvYmVydCB2YW4gSGVyayA8cm9iZXJ0QHJvYmVydHZhbmhlcmsubmw+CisJQWRkZWQgYSB0YWJzaGVldCB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBjaGFuZ2UgdGhlIGRsbCBvdmVycmlkZXMsCisJYm90aCBnbG9iYWxseSBhbmQgcGVyIGFwcC4KKworMjAwNC0wMS0wNiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9jb21jdGwzMi90YWIuYywgZGxscy9jb21tZGxnL2ZpbGVkbGcuYywKKwkgIGRsbHMvY29tbWRsZy9maW5kZGxnMzIuYywgZGxscy9kM2Q4L2QzZDhfcHJpdmF0ZS5oLAorCSAgZGxscy9kM2Q4L2RldmljZS5jLCBkbGxzL2QzZDgvZGlyZWN0eC5jLCBkbGxzL2QzZDgvZHJhd3ByaW0uYywKKwkgIGRsbHMvZDNkOC9zdGF0ZWJsb2NrLmMsIGRsbHMvZDNkOC9zdXJmYWNlLmMsIGRsbHMvZDNkOC91dGlscy5jLAorCSAgZGxscy9kM2Q4L3ZvbHVtZS5jLCBkbGxzL2RpbnB1dC9qb3lzdGljay9saW51eGlucHV0LmMsCisJICBkbGxzL2RpbnB1dC9tb3VzZS9tYWluLmMsIGRsbHMvaWNtcC9pcC5oLCBkbGxzL2tlcm5lbC90ZXN0cy9sb2NhbGUuYywKKwkgIGRsbHMvbXN2Y3J0L2ZpbGUuYywgZGxscy9tc3ZjcnQvbWFpbi5jLCBkbGxzL29sZTMyL2NsaXBib2FyZC5jLAorCSAgZGxscy9vbGUzMi9jb21wb3NpdGVtb25pa2VyLmMsIGRsbHMvb2xlMzIvZXJyb3JpbmZvLmMsCisJICBkbGxzL29sZTMyL2ZpbGVtb25pa2VyLmMsIGRsbHMvb2xlYXV0MzIvb2xlYXV0LmMsCisJICBkbGxzL29sZWF1dDMyL3Rlc3RzL3ZhcnRlc3QuYywgZGxscy9vbGVhdXQzMi90ZXN0cy92YXJ0eXBlLmMsCisJICBkbGxzL29sZWF1dDMyL3ZhcmZvcm1hdC5jLCBkbGxzL29sZWF1dDMyL3ZhcmlhbnQuYywKKwkgIGRsbHMvb2xlYXV0MzIvdmFydHlwZS5jLCBkbGxzL3NoZWxsMzIvcGlkbC5oLCBkbGxzL3NoZWxsMzIvc2hsZXhlYy5jLAorCSAgZGxscy9zaGVsbDMyL3NobG1lbnUuYywgZGxscy9zaGx3YXBpL3BhdGguYywgZGxscy91c2VyL3Jlc291cmNlLmMsCisJICBkbGxzL3V4dGhlbWUvc3lzdGVtLmMsIGRsbHMvdXh0aGVtZS91eHRoZW1lZGxsLmgsCisJICBkbGxzL3dpbmVkb3MvaW50MTAuYywgZGxscy93aW5tbS93aW5lYXVkaW9pby9hdWRpby5jLAorCSAgZGxscy93aW5tbS93aW5lbW0uaCwgZGxscy93aW5zcG9vbC9pbmZvLmMsIGRsbHMveDExZHJ2L3hmb250LmMsCisJICBkb2N1bWVudGF0aW9uL2dldHRpbmcuc2dtbCwgZmlsZXMvZmlsZS5jLCBpbmNsdWRlL3NobHdhcGkuaCwKKwkgIHByb2dyYW1zL3djbWQvd2NtZG1haW4uYywgdG9vbHMvYzJtYW4ucGwsIHRvb2xzL3dpbmVkdW1wL1JFQURNRSwKKwkgIHRvb2xzL3dpbmVpbnN0YWxsOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUFzc29ydGVkIHNwZWxsaW5nIGZpeGVzLgorCisJKiBpbmNsdWRlL3NobGd1aWQuaCwgaW5jbHVkZS9zaG9iamlkbC5oLCBpbmNsdWRlL3Nob2JqaWRsLmlkbDoKKwlNYXJ0aW4gRnVjaHMgPG1hcnRpbi1mdWNoc0BnbXgubmV0PgorCURlZmluZSBJU2hlbGxFeGVjdXRlSG9vayBpbnRlcmZhY2UuCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOiBIYW5zIExlaWRla2tlciA8aGFuc0BpdC52dS5ubD4KKwlVc2UgZ2NjJ3MgLXBpcGUgb3B0aW9uIHRvIHJlZHVjZSBjb21waWxlIHRpbWUuCisKKwkqIGRsbHMvbXN2Y3J0L3NjYW5mLmgsIGRsbHMvbXN2Y3J0L3Rlc3RzL3NjYW5mLmM6CisJUGV0ZXIgQmVyZyBMYXJzZW4gPHBlYmxAbWF0aC5rdS5kaz4KKwklW2Etel0gYW5kICVbei1hXSBhcmUgaW50ZXJwcmV0ZWQgYXMgZXF1aXZhbGVudCB0byAlW2FiY2RlLi4uel0uCisJQWRkZWQgc29tZSBzY2FuZiB0ZXN0cy4KKworCSogd2luZG93cy9kaWFsb2cuYzogQ29udmVydGVkIERsZ0Rpckxpc3QgdG8gVW5pY29kZS4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIHByb2dyYW1zL01ha2VmaWxlLmluLCBwcm9ncmFtcy9tYWtlX3Byb2dzLAorCSAgd2luZWRlZmF1bHQucmVnLCBwcm9ncmFtcy93aW5lYnJvd3Nlci8uY3ZzaWdub3JlLAorCSAgcHJvZ3JhbXMvd2luZWJyb3dzZXIvTWFrZWZpbGUuaW4sIHByb2dyYW1zL3dpbmVicm93c2VyL21haW4uYywKKwkgIHRvb2xzL3dpbmVpbnN0YWxsOgorCUNocmlzIE1vcmdhbiA8Y21vcmdhbkBhbHVtLndwaS5lZHU+CisJQWRkZWQgd2luZWJyb3dzZXIgYXBwIHRoYXQgbGF1bmNoZXMgYSBVbml4IGJyb3dzZXIuCisKKwkqIGRsbHMvYXZpZmlsMzIvYXBpLmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyLnNwZWMsCisJICBkbGxzL3NoZWxsMzIvc2hlbGxvbGUuYywgZGxscy9zaGVsbDMyL3VuZG9jc2hlbGwuaCwgaW5jbHVkZS9zaGxvYmouaDoKKwlTSENvQ3JlYXRlSW5zdGFuY2UgaXMgbm93IGRvY3VtZW50ZWQgKHNwb3R0ZWQgYnkgRnJhbmNvaXMgR291Z2V0KS4KKwlJdHMgZmlyc3QgYXJndW1lbnQgc2hvdWxkIGJlIGEgVW5pY29kZSBzdHJpbmcuCisKKwkqIHdpbmRvd3MvcXVldWUuYzogUm9iZXJ0IFNoZWFybWFuIDxSLkouU2hlYXJtYW5Ad2Fyd2ljay5hYy51az4KKwlBZGQgbWlzc2luZyBcbiBvbiBlcnJvciBtZXNzYWdlLgorCisJKiBkbGxzL2FkdmFwaTMyL2NyeXB0LmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBtaXNzaW5nIExGIGluIHRyYWNlLgorCisJKiBkbGxzL3NoZWxsMzIvTWFrZWZpbGUuaW46IEhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCU1ha2Ugc3VyZSBzZWQgdXNlcyB0aGUgcmlnaHQgbG9jYWxlLgorCisJKiBkbGxzL3dpbm1tL21jaWF2aS9tY2lhdmkuYywgZGxscy93aW5tbS9tY2lhdmkvcHJpdmF0ZV9tY2lhdmkuaCwKKwkgIGRsbHMvd2lubW0vbWNpYXZpL3duZC5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJUmVnaXN0ZXIgd2luZG93IGNsYXNzIG9uIG1jaWF2aSBkcml2ZXIgbG9hZGluZywgYW5kIHVucmVnaXN0ZXIgaXQgb24KKwlkcml2ZXIgdW5sb2FkaW5nLgorCisJKiBkbGxzL3dpbm1tL21jaWF2aS9pbmZvLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJUmV0dXJuIGNvcnJlY3QgcmVzb3VyY2UgaWQgZm9yIHRpbWUgZm9ybWF0IHN0cmluZ3MuCisKKwkqIHByb2dyYW1zL3dpbmVtZW51YnVpbGRlci93aW5lbWVudWJ1aWxkZXIuYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCUltcHJvdmUgZXJyb3IgcmVwb3J0aW5nLgorCisJKiBwcm9ncmFtcy9yZWdlZGl0L0VuLnJjLCBwcm9ncmFtcy9yZWdlZGl0L2VkaXQuYywKKwkgIHByb2dyYW1zL3JlZ2VkaXQvZnJhbWV3bmQuYywgcHJvZ3JhbXMvcmVnZWRpdC9tYWluLmgsCisJICBwcm9ncmFtcy9yZWdlZGl0L3Jlc291cmNlLmg6CisJRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlBZGQgbmV3IHZhbHVlIHN1cHBvcnQuIE1pc2MgaW1wcm92ZW1lbnRzIGFuZCBjbGVhbnVwcy4KKworCSogZGxscy9tc3ZjcnQvc2NhbmYuaDogUGV0ZXIgQmVyZyBMYXJzZW4gPHBlYmxAbWF0aC5rdS5kaz4KKwlBZGRlZCBfQklUTUFQU0laRV8gYW5kIHNwbGl0IF9DT05WRVJUXyBtYWNybyB0byByZW1vdmUgI2lmZGVmcy4KKworCSogcHJvZ3JhbXMvcmVnZWRpdC9JdC5yYzogSXZhbiBMZW8gTXVycmF5LVNtaXRoIDxwdW90aUBpbndpbmQuaXQ+CisJVXBkYXRlZCBJdGFsaWFuIHJlc291cmNlcy4KKworCSogb2JqZWN0cy9lbmhtZXRhZmlsZS5jOiBNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwl4TnVtIHNob3VsZCBiZSB5TnVtIGluIG9uZSBwbGFjZS4KKworCSogZGxscy9kM2Q4L2RyYXdwcmltLmM6IEphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJRml4IHRoZSBkcmF3KnByaW1pdGl2ZVVQIGNhbGxzIHNvIHRoZXkgd29yayBkaXJlY3RseSBhZnRlciBhIGRyYXcKKwl3aGljaCB1c2VzIHZlcnRleCBzaGFkZXJzLgorCisJKiBkbGxzL29wZW5nbDMyL21ha2Vfb3BlbmdsLCBkbGxzL29wZW5nbDMyL29wZW5nbDMyLnNwZWMsCisJICBkbGxzL29wZW5nbDMyL3dnbC5jOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJSW1wbGVtZW50IHdnbFVzZUZvbnRCaXRtYXBzVy4KKworMjAwNC0wMS0wNSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9nZGkvZnJlZXR5cGUuYywgZGxscy9nZGkvcHJpbnRkcnYuYywgZGxscy9rZXJuZWwva2VybmVsMzIuc3BlYywKKwkgIGRsbHMvd2luZWRvcy9kb3Njb25mLmMsIGZpbGVzL2Rvc19mcy5jLCBpbmNsdWRlL3dpbmJhc2UuaCwKKwkgIHByb2dyYW1zL3dpbmVtZW51YnVpbGRlci93aW5lbWVudWJ1aWxkZXIuYywKKwkgIHByb2dyYW1zL3dpbmVwYXRoL3dpbmVwYXRoLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJTWFkZSB3aW5lX2dldF91bml4X2ZpbGVfbmFtZSB0YWtlIGEgVW5pY29kZSBzdHJpbmcgcG9pbnRlci4KKworCSogZGxscy93aW5tbS9tY2lhdmkvbW1vdXRwdXQuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFjY2VwdCBhbGwgc3RhbmRhcmQgRElCIGNvbXByZXNzaW9ucyBpbiB0aGUgbWNpYXZpIGRyaXZlci4KKworCSogZGxscy9udGRsbC9sb2Fkb3JkZXIuYywgZG9jdW1lbnRhdGlvbi9zYW1wbGVzL2NvbmZpZywKKwkgIGRvY3VtZW50YXRpb24vd2luZS5jb25mLm1hbiwgZG9jdW1lbnRhdGlvbi93aW5lLm1hbi5pbjoKKwlVcGRhdGVzIGZvciB0aGUgbmV3IGxvYWRvcmRlciBoYW5kbGluZyBvZiAxNi1iaXQgZGxscy4KKworCSogZG9jdW1lbnRhdGlvbi9jb25maWd1cmluZy5zZ21sLCBkb2N1bWVudGF0aW9uL2dldHRpbmcuc2dtbDoKKwlJdmFuIExlbyBNdXJyYXktU21pdGggPHB1b3RpQGlud2luZC5pdD4KKwlEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCisKKwkqIHByb2dyYW1zL3JlZ2VkaXQvRW4ucmMsIHByb2dyYW1zL3JlZ2VkaXQvZWRpdC5jLAorCSAgcHJvZ3JhbXMvcmVnZWRpdC9mcmFtZXduZC5jLCBwcm9ncmFtcy9yZWdlZGl0L21haW4uaCwKKwkgIHByb2dyYW1zL3JlZ2VkaXQvcmVzb3VyY2UuaCwgcHJvZ3JhbXMvcmVnZWRpdC90cmVldmlldy5jOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJQWRkIHZhbHVlIGRlbGV0ZSwgYW5kIGR3b3JkIGVkaXQgc3VwcG9ydC4KKworCSogZGxscy93aW5tbS9tY2lhdmkvbW1vdXRwdXQuYywgZGxscy93aW5tbS9tY2lhdmkvcHJpdmF0ZV9tY2lhdmkuaDoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCURlY29kZSBzdHJlYW0gbnVtYmVyIGZyb20gQVZJIGZyYW1lIGRhdGEgYW5kIGFzc2lnbiB0aGUgZGF0YSB0bworCWFwcHJvcHJpYXRlIHN0cmVhbXMuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGxmaWxlb3AuYywgaW5jbHVkZS9zaGVsbGFwaS5oOgorCU1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJQ29ycmVjdCByZXR1cm4gdHlwZSBvZiBTSEZpbGVPcGVyYXRpb25BL1cuCisKKwkqIGRsbHMvc2V0dXBhcGkvcGFyc2VyLmMsIGRsbHMvc2V0dXBhcGkvc3R1YnMuYywgaW5jbHVkZS9zZXR1cGFwaS5oOgorCVN0ZXZlbiBFZHdhcmRzIDxzdGV2ZW5fZWQ0MTUzQHlhaG9vLmNvbT4KKwlNU1ZDIHBvcnRpbmcgZml4ZXMuCisKKwkqIGRvY3VtZW50YXRpb24vcmVnaXN0cnkuc2dtbDogTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJRHJvcCBwYXJhZ3JhcGggZGVzY3JpYmluZyBubyBsb25nZXIgZXhpc3RpbmcgcmVnY2xlYW4uZXhlLgorCisJKiBkbGxzL2RpbnB1dC9qb3lzdGljay9saW51eC5jLCBkbGxzL2RpbnB1dC9qb3lzdGljay9saW51eGlucHV0LmM6CisJTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJSGFuZGxlIERJSk9ZU1RBVEUgYW5kIERJSk9ZU1RBVEUyIHN0cnVjdHMsIGZhaWwgb24gdW5rbm93biBzaXplcy4KKworMjAwNC0wMS0wMyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9rZXJuZWwvbmVfbW9kdWxlLmM6CisJQWx3YXlzIHRyeSB0byBsb2FkIHRoZSAzMi1iaXQgb3duZXIgZGxsIGluc3RlYWQgb2YgZGlyZWN0bHkgbG9hZGluZworCXRoZSAuc28gZmlsZSBmb3IgMTYtYml0IGJ1aWx0aW5zLiBNYWtlIHRoZSBsb2FkIG9yZGVyIGZvciAxNi1iaXQgZGxscworCWFsd2F5cyBtYXRjaCB0aGUgbG9hZCBvcmRlciBvZiB0aGVpciAzMi1iaXQgb3duZXIgKGlmIGFueSkuCisKKwkqIGRsbHMvZG1pbWUvZG1pbWVfcHJpdmF0ZS5oLCBkbGxzL2RtdXNpYy9kbXVzaWNfcHJpdmF0ZS5oOgorCUF2b2lkIHJlZmVyZW5jaW5nIGEgcHJpdmF0ZSBoZWFkZXIgaW4gYW5vdGhlciBkbGwuCisKKwkqIGRsbHMvYWR2YXBpMzIvcmVnaXN0cnkuYywgZGxscy9rZXJuZWwvdnhkLmMsIGRsbHMvbnRkbGwvcmVnLmMsCisJICBpbmNsdWRlL3dpbmUvc2VydmVyX3Byb3RvY29sLmgsIHNlcnZlci9wcm90b2NvbC5kZWYsCisJICBzZXJ2ZXIvcmVnaXN0cnkuYywgc2VydmVyL3JlcXVlc3QuaCwgc2VydmVyL3RyYWNlLmM6CisJTWlrZSBIZWFybiA8bWlrZUB0aGVvcmV0aWMuY29tPgorCUltcGxlbWVudGVkIFJlZ0ZsdXNoS2V5IGFuZCBOdEZsdXNoS2V5LgorCisJKiBwcm9ncmFtcy9yZWdlZGl0L0VuLnJjLCBwcm9ncmFtcy9yZWdlZGl0L2VkaXQuYywKKwkgIHByb2dyYW1zL3JlZ2VkaXQvZnJhbWV3bmQuYywgcHJvZ3JhbXMvcmVnZWRpdC9tYWluLmgsCisJICBwcm9ncmFtcy9yZWdlZGl0L3Jlc291cmNlLmg6CisJWmltbGVyIEF0dGlsYSA8aGlqYXN6dUBobGZzbGludXguaHU+CisJQWRkZWQgc3VwcG9ydCBmb3IgY3JlYXRpbmcgbmV3IGtleXMuCisKKzIwMDQtMDEtMDIgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvd2luZWRvcy9pbnQxMC5jOiBNaWNoYWVsIFN0ZWZhbml1YyA8bXN0ZWZhbmlAcmVkaGF0LmRlPgorCUZpbGwgaW4gdGhlIGNvbG9yIE1hc2tTaXplIGFuZCBGaWVsZFBvc2l0aW9uIGZpZWxkcyBpbiB0aGUKKwlNb2RlSW5mb0Jsb2NrLgorCisJKiBpbmNsdWRlL3dpbmUvbGlicmFyeS5oLCBsaWJzL3dpbmUvbG9hZGVyLmMsIGxpYnMvd2luZS93aW5lLmRlZjoKKwlBZGRlZCB3aW5lX2RsbF9nZXRfb3duZXIgZnVuY3Rpb24gdGhhdCByZXRyaWV2ZXMgdGhlIDMyLWJpdCBkbGwKKwljb250YWluaW5nIGEgZ2l2ZW4gMTYtYml0IGRsbCBieSByZWFkaW5nIHRoZSBzeW1saW5rLCBzbyB0aGF0IHdlIGRvbid0CisJbmVlZCB0byBkbG9wZW4gaXQuCisKKwkqIGRsbHMvTWFrZWZpbGUuaW4sIGRsbHMvbWFrZV9kbGxzOgorCU1ha2Ugc3ltbGlua3MgZm9yIDE2LWJpdCBmaWxlcyBwb2ludCB0byB0aGUgMzItYml0IHN5bWxpbmsgc28gdGhhdAorCXRoZXkgZG9uJ3QgY29udGFpbiBhIHBhdGguCisKKwkqIGRsbHMvdXNlci93bmQxNi5jLCB3aW5kb3dzL21kaS5jOgorCVN0ZXZlbiBFZHdhcmRzIDxzdGV2ZW5fZWQ0MTUzQHlhaG9vLmNvbT4KKwlTcGxpdCB1cCB0aGUgV2luMTYvMzIgTURJIHN1cHBvcnQgYSBiaXQuCisKKwkqIGRsbHMvY29tY3RsMzIvcmViYXIuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCU9uIGEgUkJfU0VUQkFORElORk8gbWVzc2FnZSBvbmx5IHJlZHJhdyB0aGUgcmViYXIgaWYgc29tZXRoaW5nCisJY2hhbmdlZC4KKworCSogZGxscy93aW5lZG9zL2ludDEwLmM6IE1pY2hhZWwgU3RlZmFuaXVjIDxtc3RlZmFuaUByZWRoYXQuZGU+CisJVXNlIGEgc3RydWN0IGFzIHNwZWNpZmllZCBpbiB0aGUgVkJFIDMuMCBzdGFuZGFyZCBmb3IgdGhlCisJTW9kZUluZm9CbG9jay4gQ29kZSB3aXNlIHRoaXMgaXMgYSBOT1AuCisKKwkqIGRsbHMvbmV0YXBpMzIvbmJjbWRxdWV1ZS5jLCBkbGxzL25ldGFwaTMyL25idC5jLAorCSAgZGxscy9uZXRhcGkzMi9uZXRiaW9zLmgsIGluY2x1ZGUvbmIzMC5oOgorCVN0ZXZlbiBFZHdhcmRzIDxzdGV2ZW5fZWQ0MTUzQHlhaG9vLmNvbT4KKwlGaXggY29tcGlsaW5nIG5ldGFwaTMyIG9uIE1TVkMgd2l0aCBQU0RLIGhlYWRlcnMuCisKKwkqIGRsbHMvd2lubW0vd2luZWFsc2EvYXVkaW8uYzogQ2hyaXN0aWFuIENvc3RhIDx0aXRhbi5jb3N0YUB3YW5hZG9vLmZyPgorCUZpeCBjb21waWxhdGlvbiBpc3N1ZSB3aXRoIEFMU0EgMC41LgorCisJKiBkbGxzL2NhYmluZXQvY2FiaW5ldF9tYWluLmM6IE1pa2UgSGVhcm4gPG1pa2VAdGhlb3JldGljLmNvbT4KKwlyZXN1bHQyIHNlZW1zIHRvIGJlIG9wdGlvbmFsLCBtYWtpbmcgaXQgMCBhbGxvd3MgSUUgdG8gY29udGludWUuCisKKwkqIGRsbHMvc2hlbGwzMi9zeXN0cmF5LmM6IFN0ZXZlbiBFZHdhcmRzIDxzdGV2ZW5fZWQ0MTUzQHlhaG9vLmNvbT4KKwlVcGRhdGUgdGhlIG5vdGVzIG9uIGhvdyBXSU5FIHVzZXMgdGhlIFN5c3RyYXkgdW5kZXIgS0RFLgorCisJKiB0b29scy93cmMvcGFyc2VyLnk6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBdm9pZCBhIGNyYXNoIGlmIHRoZSBkaWFsb2cgc3R5bGUgaXMgbWlzc2luZy4KKworCSogZGxscy93aW5zb2NrL3NvY2tldC5jOiBXaW0gTGV3aXMgPHdpbWxAaGhoaC5vcmc+CisJQ2xlYXIgc3RydWN0IHNvY2thZGRyX2lweCBkaXJlY3RseSBpbnN0ZWFkIG9mIGp1c3QgdGhlIHNpcHhfemVybworCWZpZWxkLgorCisJKiBzZXJ2ZXIvZmQuYywgc2VydmVyL2ZpbGUuYzogV2ltIExld2lzIDx3aW1sQGhoaGgub3JnPgorCUVPVkVSRkxPVyBkb2VzIG5vdCBleGlzdCBvbiBPcGVuQlNELgorCisJKiBkbGxzL3dpbmVkb3MvaW50MTAuYzogTWljaGFlbCBTdGVmYW5pdWMgPG1zdGVmYW5pQHJlZGhhdC5kZT4KKwlTZXQgdGhlICJieXRlcyBwZXIgc2NhbiBsaW5lIiBmaWVsZCB3aGVuIGdlbmVyYXRpbmcgdGhlIG1vZGUgaW5mbworCWJsb2NrLgorCisJKiBkbGxzL2NyeXB0MzIvY3J5cHQzMi5zcGVjLCBkbGxzL2NyeXB0MzIvbWFpbi5jOgorCVJvYmVydCBTaGVhcm1hbiA8Ui5KLlNoZWFybWFuQHdhcndpY2suYWMudWs+CisJQWRkZWQgc3R1YiBmb3IgQ2VydEZyZWVDZXJ0aWZpY2F0ZUNvbnRleHQuCisKKwkqIGRsbHMvdXNlci9yZXNvdXJjZXMvdXNlcjMyX0l0LnJjOgorCUl2YW4gTGVvIE11cnJheS1TbWl0aCA8cHVvdGlAaW53aW5kLml0PgorCUNvbXBsZXRlZCBJdGFsaWFuIGxhbmd1YWdlIHN1cHBvcnQuCisKKwkqIGRsbHMvbmV0YXBpMzIvbmJ0LmM6IEp1YW4gTGFuZyA8anVhbl9sYW5nQHlhaG9vLmNvbT4KKwlGaXggY29uZmxpY3RpbmcgcmVnaXN0cnkgdmFsdWUgbmFtZXMsIGFuZCB0cnkgYm90aCBXaW45eCBhbmQgV2luTlQKKwlsb2NhdGlvbnMgZm9yIE5ldEJUIHJlZ2lzdHJ5IHZhbHVlcy4KKworCSogZGxscy9rZXJuZWwvZGV2aWNlLmM6IEp1YW4gTGFuZyA8anVhbl9sYW5nQHlhaG9vLmNvbT4KKwlQcm9wZXJseSBMMi1lbmNvZGUgdGhlIE5ldEJJT1Mgc2NvcGUgSUQgaW4gRGV2aWNlSW9fVk5CLCBzbworCWlwY29uZmlnLmV4ZSBhbmQgd2luaXBjZmcuZXhlIGRpc3BsYXkgaXQuCisKKwkqIGRsbHMvaXBobHBhcGkvaXBobHBhcGlfbWFpbi5jOiBKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJQWRkIHRyYWNpbmcsIGFkZCBXSU5TIGNvbmZpZ3VyYXRpb24gdG8gR2V0QWRhcHRlcnNJbmZvLCBjb3JyZWN0CisJU2NvcGVJRCByZWFkaW5nIGluIEdldEZpeGVkSW5mby4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCVdoZW4gY2hlY2tpbmcgZm9yIGdldGhvc3RieW5hbWVfcl82IG5vdCB0cnkgdG8gY29tcGlsZSBidXQgdHJ5IHRvCisJbGluay4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGluY2x1ZGUvY29uZmlnLmguaW46CisJVXBkYXRlZCBjb25maWd1cmUgd2l0aCBhdXRvY29uZiAyLjU4LiBTZXQgdGhlIGJ1ZyByZXBvcnQgYWRkcmVzcy4KKworCSogZGxscy9vbGVhdXQzMi90ZXN0cy92YXJ0ZXN0LmMsIGRsbHMvb2xlYXV0MzIvdGVzdHMvdmFydHlwZS5jOgorCUNvbW1lbnRlZCBvdXQgdGVzdHMgdGhhdCBhc3N1bWUgdGhhdCB0aGUgY3VycmVudCB5ZWFyIGlzIDIwMDMuCisKKwkqIGRsbHMvdXNlci9yZXNvdXJjZXMvdXNlcjMyX0NhLnJjLCBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMl9EZS5yYywKKwkgIGRsbHMvdXNlci9yZXNvdXJjZXMvdXNlcjMyX0VuLnJjLCBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMl9GaS5yYywKKwkgIGRsbHMvdXNlci9yZXNvdXJjZXMvdXNlcjMyX0ZyLnJjLCBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMl9ObC5yYywKKwkgIGRsbHMvdXNlci9yZXNvdXJjZXMvdXNlcjMyX1B0LnJjLCB3aW5kb3dzL25vbmNsaWVudC5jOgorCUNocmlzIE1vcmdhbiA8Y21vcmdhbkBhbHVtLndwaS5lZHU+CisJTWFrZSB0aGUgZGVidWcgbWFyayBwcmludGluZyB1bmNvbmRpdGlvbmFsIGluc3RlYWQgb2YgY29uZGl0aW9uYWwgdXBvbgorCXRoZSAgU0hFTEwgZGVidWcgY2hhbm5lbC4gIE1ha2UgbWFyayB0ZXh0IG9idmlvdXMgYnkgY2hhbmdpbmcgdGhlCisJb3V0cHV0IHRleHQgdG8gJ0RlYnVnIG1hcmsgcmVxdWVzdGVkIGJ5IHVzZXInIGFuZCBhZGRpbmcgJ0RlYnVnIG1hcmsnCisJdG8gdGhlIG1lbnUgcmVzb3VyY2UgdGV4dC4KKworCSogcHJvZ3JhbXMvd2luZWZpbGUvSXQucmMsIHByb2dyYW1zL3dpbmVmaWxlL3JzcmMucmM6CisJSXZhbiBMZW8gTXVycmF5LVNtaXRoIDxwdW90aUBpbndpbmQuaXQ+CisJQWRkZWQgSXRhbGlhbiByZXNvdXJjZXMuCisKKwkqIGRsbHMvY29tbWRsZy9wcmludGRsZy5jLCBkbGxzL2NvbW1kbGcvcHJpbnRkbGcuaCwKKwkgIGRsbHMvY29tbWRsZy9wcmludGRsZzE2LmMsIGRsbHMvd2luc3Bvb2wvaW5mby5jOgorCVJvYmVydCBTaGVhcm1hbiA8Ui5KLlNoZWFybWFuQHdhcndpY2suYWMudWs+CisJUmVtb3ZlIFBSSU5URExHX0dldERlZmF1bHRQcmludGVyTmFtZTsgdXNlIFdpbjMyIEdldERlZmF1bHRQcmludGVyQS9XCisJaW5zdGVhZC4KKworCSogZGxscy93aW5tbS9tY2lhdmkvbW1vdXRwdXQuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCVJlbW92ZSBhIHN0cmF5IExlYXZlQ3JpdGljYWxTZWN0aW9uKCkuCisKKwkqIGRsbHMvbXN2aWRlby9tY2l3bmQuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlUcmFja2JhciByYW5nZSBzaG91bGQgYmUgZml4ZWQgb25seSBpbiB0aGUgY2FzZSBvZiBzdWNjZXNzZnVsCisJbWNpU2VuZFN0cmluZ1cuIEl0J3MgYmV0dGVyIHRvIGluaXRpYWxpemUgZHdDYWxsYmFjayBwYXJhbWV0ZXIgaWYKKwlNQ0lfTk9USUZZIGlzIHNwZWNpZmllZC4KKworCSogZGxscy9jb21tZGxnL2NkbGdfQ24ucmMsIGRsbHMvY29tbWRsZy9jZGxnX0RlLnJjLAorCSAgZGxscy9jb21tZGxnL2NkbGdfRW4ucmMsIGRsbHMvY29tbWRsZy9jZGxnX0ZyLnJjLAorCSAgZGxscy9jb21tZGxnL2NkbGdfUHQucmMsIGRsbHMvY29tbWRsZy9jZGxnX1J1LnJjLAorCSAgZGxscy9jb21tZGxnL2NkbGdfU2kucmMsIGRsbHMvY29tbWRsZy9jZGxnX1NrLnJjLAorCSAgZGxscy9jb21tZGxnL2NkbGdfU3YucmMsIGRsbHMvY29tbWRsZy9jZGxnX1poLnJjLAorCSAgZGxscy9jb21tZGxnL2ZpbGVkbGcuYywgZGxscy9jb21tZGxnL2ZpbGVkbGdicm93c2VyLmg6CisJUGhpbCBLcnlsb3YgPHBoaWxAbmV3c3Rhci5yaW5ldC5ydT4KKwlJbXBsZW1lbnRlZCBPRk5fT1ZFUldSSVRFUFJPTVBUIGFuZCBPRk5fRVhURU5TSU9ORElGRkVSRU5UIGZsYWdzLgorCUNoYW5nZWQgSURMX09WRVJXUklURUZJTEUgc3RyaW5nIHJlc291cmNlIElEIHRvIElEU19PVkVSV1JJVEVGSUxFLgorCVVzZSB0aGUgZXh0ZW5kZWQgVUkgZm9yIHRoZSAiTG9vayBJbiIgY29tYm8uCisJU2VsZWN0IHRoZSB0ZXh0IGluIHRoZSAiRmlsZSBuYW1lIiBmaWVsZCBhZnRlciBmaWxsaW5nIGl0LgorCisyMDA0LTAxLTAxICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3dpbm1tL21jaS5jLCBkbGxzL3dpbm1tL21jaWF2aS9pbmZvLmMsCisJICBkbGxzL3dpbm1tL21jaWF2aS9tY2lhdmkuYywgZGxscy93aW5tbS9tY2lhdmkvbW1vdXRwdXQuYywKKwkgIGRsbHMvd2lubW0vbWNpYXZpL3ByaXZhdGVfbWNpYXZpLmgsIGRsbHMvd2lubW0vbWNpYXZpL3duZC5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJTXVjaCBpbXByb3ZlZCBtY2lhdmkgZHJpdmVyLiBGaXhlZCBzeW5jaHJvbml6YXRpb24sIFJJRkYgZmlsZSB3aXRoCisJbWFueSBzdHJlYW1zIHBhcnNpbmcsIGFkZGVkIHN1cHBvcnQgZm9yIHNvbWUgTUNJX1BVVCBhbmQgTUNJX1dIRVJFCisJY2FzZXMuCisKKwkqIGRsbHMvbXN2aWRlby9tY2l3bmQuYywgZGxscy9tc3ZpZGVvL21zdmZ3MzIuc3BlYywgaW5jbHVkZS92ZncuaDoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzdXBwb3J0IGZvciBtYW55IE1DSVdORE1fIG1lc3NhZ2VzIGFuZCBzb21lIE1DSV8gY29tbWFuZHMgaW4gdGhlCisJTUNJV25kQ2xhc3MgaW1wbGVtZW50YXRpb24uCisJTUNJV25kUmVnaXN0ZXJDbGFzcygpIHRha2VzIG5vIHBhcmFtZXRlcnMgYWNjb3JkaW5nIHRvIFBsYXRmb3JtIFNESworCWhlYWRlcnMuCisKKwkqIGRsbHMvd2lubW0vZHJpdmVyLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJVXNlIGNvcnJlY3QgcG9pbnRlciB0byBhbiBpbnRlcm5hbCBkcml2ZXIgZGVzY3JpcHRpb24uCisKKwkqIGRsbHMvd2lubW0vd2lubW0uYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgTUNJX1NZU0lORk8gY29tbWFuZCBXIHRvIEEgbWFwcGluZy4KKworMjAwMy0xMi0zMSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy91c2VyL3Rlc3RzL3dpbi5jLCBkbGxzL3gxMWRydi93aW5kb3cuYywgaW5jbHVkZS91c2VyLmgsCisJICBpbmNsdWRlL3dpbi5oLCB3aW5kb3dzL2RlZnduZC5jLCB3aW5kb3dzL25vbmNsaWVudC5jLCB3aW5kb3dzL3dpbi5jOgorCVN0b3JlIHdpbmRvdyBpY29ucyBpbiB0aGUgd2luZG93IHN0cnVjdHVyZSBzbyB0aGF0IFdNX1NFVElDT04gY2FuIGRvCisJdGhlIHJpZ2h0IHRoaW5nIChiYXNlZCBvbiBhIHBhdGNoIGJ5IEFyaWMgU3Rld2FydCkuCisKKwkqIGRsbHMvd2lubW0vam95c3RpY2suYywgZGxscy93aW5tbS9sb2x2bGRydi5jLCBkbGxzL3dpbm1tL21tc3lzdGVtLmMsCisJICBkbGxzL3dpbm1tL3RpbWUuYywgZGxscy93aW5tbS93aW5lbW0uaCwgZGxscy93aW5tbS93aW5tbS5jLAorCSAgaW5jbHVkZS9kaWdpdGFsdi5oLCBpbmNsdWRlL21tc3lzdGVtLmg6CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggbWFueSBmdW5jdGlvbiBwcm90b3R5cGVzIGFuZCBkYXRhIHR5cGVzIGFjY29yZGluZyB0byBQbGF0Zm9ybSBTREsKKwlkZWZpbml0aW9ucy4KKworCSogZGxscy9tc3ZpZGVvL21jaXduZC5jLCBkbGxzL3dpbm1tL21jaS5jLCBkbGxzL3dpbm1tL21jaWF2aS9pbmZvLmMsCisJICBkbGxzL3dpbm1tL21jaWF2aS9tY2lhdmkuYywgZGxscy93aW5tbS9tY2lhdmkvbW1vdXRwdXQuYywKKwkgIGRsbHMvd2lubW0vbWNpYXZpL3ByaXZhdGVfbWNpYXZpLmgsIGRsbHMvd2lubW0vbWNpYXZpL3duZC5jLAorCSAgZGxscy93aW5tbS93aW5tbS5jLCBpbmNsdWRlL21tc3lzdGVtLmg6CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgVW5pY29kZS0+QU5TSSBNQ0kgbWVzc2FnZSBtYXBwaW5nLCBpbXBsZW1lbnQgbWNpU2VuZENvbW1hbmRXLCBmaXgKKwlhIGJ1ZyB3aXRoIGEgd2luZG93IGNyZWF0aW9uIGJlbG9uZ2luZyB0byBhbm90aGVyIGhJbnN0YW5jZSwgYWRkCisJc3VwcG9ydCBmb3IgTUNJX1dJTkRPVyBjb21tYW5kIGluIG1jaWF2aS5kcnYsIGFkZCBzdXBwb3J0IGZvciBNQ0lfUExBWQorCWFuZCBNQ0lfU1RPUCBpbiB0aGUgTUNJV25kQ2xhc3MgaW1wbGVtZW50YXRpb24uCisKKwkqIGRsbHMvb2xlYXV0MzIvc2FmZWFycmF5LmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUZpeGVkIHNpemUgY2FsY3VsYXRpb24gb24gcmVkaW0gaWYgb2xkIHNpemUgd2FzIDAuCisKKwkqIGRsbHMvd2lubW0vd2luZW9zcy9hdWRpby5jOiBHZXJhbGQgUGZlaWZlciA8Z2VyYWxkQHBmZWlmZXIuY29tPgorCUltcHJvdmUgZXJyb3IgbWVzc2FnZXMgaW4gT1NTX1dhdmVPdXRJbml0KCkgYW5kIE9TU19XYXZlSW5Jbml0KCkgYW5kCisJd2FybiBpbnN0ZWFkIG9mIGFib3J0aW5nIGluIGNhc2Ugb2YgcHJvYmxlbXMgcmVhZGluZyBtaXhlciBpbmZvLgorCisJKiBkbGxzL2NhYmluZXQvLmN2c2lnbm9yZSwgZGxscy9jYWJpbmV0L01ha2VmaWxlLmluLAorCSAgZGxscy9jYWJpbmV0L2NhYmluZXQucmM6CisJU3RlZmFuIExlaWNodGVyIDxTdGVmYW4uTGVpY2h0ZXJAY2FtTGluZS5jb20+CisJQWRkZWQgZmlsZSB2ZXJzaW9uIHJlc291cmNlLgorCisJKiBkbGxzL3VzZXIvbXNnMTYuYzogUmVpbiBLbGF6ZXMgPHJrbGF6ZXNAeHM0YWxsLm5sPgorCUlzZGlhbG9nTWVzc2FnZTE2IG11c3Qgbm90IHByb2Nlc3MgbWVzc2FnZXMgdGhhdCBhcmUgbm90IGludGVuZGVkIGZvcgorCXRoZSBkaWFsb2cgYm94LgorCisJKiBkb2N1bWVudGF0aW9uL3NhbXBsZXMvY29uZmlnOiBNaWtlIEhlYXJuIDxtaWtlQHRoZW9yZXRpYy5jb20+CisJUmVtb3ZlIERDT00gY29uZmlnIGZpbGUgZW50cmllcywgYXMgdGhleSBoYXZlIG5vIGVmZmVjdC4KKworCSogZGxscy9rZXJuZWwvbW9kdWxlLmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCVJlbW92ZWQgdG9vIHN0cmljdCBoZWFkZXIgY2hlY2sgdG8gZW5hYmxlIGV4ZWN1dGlvbiBvZiBoYW5kY29kZWQgUEUKKwlleGVzLgorCisJKiBkbGxzL250ZGxsL2xvYWRlci5jOiBNaWtlIEhlYXJuIDxtaWtlQHRoZW9yZXRpYy5jb20+CisJUHJpbnQgZXhlIG5hbWUgd2hlbiBpbml0aWFsaXphdGlvbiBmYWlscy4KKworCSogREVWRUxPUEVSUy1ISU5UUzogVG9tIFdpY2tsaW5lIDx0d2lja2xpbmVAc2t5YmVzdC5jb20+CisJQWRkIG5ld2RldiwgdXBkYXRlZCBETXVzaWMgc2VjdGlvbiwgc21hbGwgZml4IHRvIGRwbmhwYXN0LgorCisJKiBkbGxzL3dpbmluZXQvdXJsY2FjaGUuYzogR2VyYWxkIFBmZWlmZXIgPGdlcmFsZEBwZmVpZmVyLmNvbT4KKwlSZW1vdmUgVVJMQ2FjaGVfRmluZEVudHJ5KCkgd2hpY2ggaXMgbm90IHVzZWQgYW55IGxvbmdlci4KKworMjAwMy0xMi0zMCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRsbHMvTWFrZWZpbGUuaW4sIGRsbHMvbmV3ZGV2Ly5jdnNpZ25vcmUsCisJICBkbGxzL25ld2Rldi9NYWtlZmlsZS5pbiwgZGxscy9uZXdkZXYvbWFpbi5jLCBkbGxzL25ld2Rldi9uZXdkZXYuc3BlYzoKKwlVbHJpY2ggQ3pla2FsbGEgPHVscmljaC5jemVrYWxsYUB1dG9yb250by5jYT4KKwlBZGQgc3R1YmJlZCB2ZXJzaW9uIG9mIG5ld2Rldi5kbGwuCisKKwkqIGRsbHMvY29tbWRsZy8uY3ZzaWdub3JlLCBkbGxzL2NvbW1kbGcvTWFrZWZpbGUuaW4sCisJICBkbGxzL2NvbW1kbGcvY2RsZy5oLCBkbGxzL2NvbW1kbGcvY2RsZ194eC5yYywgZGxscy9jb21tZGxnL2ZvbnRkbGcuYywKKwkgIGRsbHMvY29tbWRsZy9mb250ZGxnMTYuYywgaW5jbHVkZS93aW5nZGkuaDoKKwlSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJLSBBZGQgYSBiaXRtYXAgcmVzb3VyY2Ugd2l0aCB0aGUgZm9udCBpY29uczogVHJ1ZVR5cGUsIHByaW50ZXIsCisJICBPcGVuVHlwZSBhbmQgVHlwZSAxLiBNb2RpZnkgdGhlIGNvZGUgc28gdGhhdCB0aGV5IHdpbGwgYmUgdXNlZCBpZiBvcgorCSAgd2hlbiB0aGUgbmVlZGVkIGJpdHMgYXJlIHBhc3NlZCB0byB0aGUgRm9udEVudW1Qcm9jLgorCS0gVXNlIEVudW1Gb250RmFtaWxpZXNFeCBpbnN0ZWFkIG9mIEVudW1Gb250RmFtaWxpZXMuCisJLSBGaXggdGhlIGZpeG1lIGluIHRoZSBXTV9NRUFTVVJFSVRFTSBtZXNzYWdlIGhhbmRsZXIuCisKKwkqIGRsbHMvY2FiaW5ldC9jYWJleHRyYWN0LmMsIGRsbHMvY2FiaW5ldC9jYWJpbmV0LmgsCisJICBkbGxzL2NhYmluZXQvY2FiaW5ldF9tYWluLmM6CisJU3RlZmFuIExlaWNodGVyIDxTdGVmYW4uTGVpY2h0ZXJAY2FtTGluZS5jb20+CisJTWFrZSB1c2Ugb2YvaGFuZGxlIHRoZSBmaXJzdCBwYXJhbWV0ZXIgb2YgdGhlIGZ1bmN0aW9uIEV4dHJhY3QuCisKKwkqIGRsbHMvdXNlci90ZXN0cy93aW4uYywgd2luZG93cy9tZGkuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFkZCBNREkgY2hpbGQgY3JlYXRpb24gdGVzdHMuCisKKwkqIGxvYWRlci9rdGhyZWFkLmM6IERhdmlkIEJlY2sgPGRiZWNrQGJlY2tncm91bmQuaHU+CisJQWRkZWQgUkZUSFJFQUQgZmxhZyBpbiByZm9yayBjYWxsLgorCisJKiBkbGxzL2RldmVudW0vY3JlYXRlZGV2ZW51bS5jLCBkbGxzL2RldmVudW0vZGV2ZW51bV9tYWluLmMsCisJICBkbGxzL2RldmVudW0vbWVkaWFjYXRlbnVtLmMsIGRsbHMvZGV2ZW51bS9wYXJzZWRpc3BsYXluYW1lLmMsCisJICBkbGxzL3F1YXJ0ei9maWx0ZXJtYXBwZXIuYzoKKwlSb2JlcnQgU2hlYXJtYW4gPFIuSi5TaGVhcm1hbkB3YXJ3aWNrLmFjLnVrPgorCS0gRml4ZWQgYnVmZmVyIG92ZXJmbG93IGluIElGaWx0ZXJNYXBwZXIyOjpSZWdpc3RlckZpbHRlci4KKwktIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyBpbiBERVZFTlVNX0lQcm9wZXJ0eUJhZ19SZWFkLgorCS0gRml4ZWQgTlVMTCBwb2ludGVyIGRlLXJlZiBpbiBEbGxSZWdpc3RlclNlcnZlciB3aGVuIElGaWx0ZXJNYXBwZXIyCisJICBpcyBub3QgcmVnaXN0ZXJlZC4KKwktIEFsbG93ZWQgcmV0dXJuaW5nIHRoZSBtb25pa2VyIGluIElGaWx0ZXJNYXBwZXIyOjpSZWdpc3RlckZpbHRlci4KKwktIEVudW1lcmF0ZSBzcGVjaWFsIGNhdGVnb3JpZXMgd2l0aG91dCBjYXVzaW5nIGluZmluaXRlIGxvb3AuCisKKwkqIGRsbHMvZHBsYXl4L2RwbGF5LmM6IFNhbWkgQWFyaW8gPHNhbWkuYWFyaW9Ac3VyZmV1LmZpPgorCUZpeCBzb21lIHJldHVybiB2YWx1ZXMgb2YgZHBsYXl4IEFQSSBjYWxscy4KKworCSogZGxscy9udGRsbC9leGNlcHRpb24uYzoKKwlGaXhlZCBSdGxVbndpbmQgc2lnbmF0dXJlIChyZXBvcnRlZCBieSBQaWVycmUgZCdIZXJiZW1vbnQpLgorCisJKiBkbGxzL3NoZWxsMzIvcGlkbC5jLCBkbGxzL3NoZWxsMzIvc2hmbGRyLmgsCisJICBkbGxzL3NoZWxsMzIvc2hmbGRyX2Rlc2t0b3AuYywgZGxscy9zaGVsbDMyL3NoZmxkcl9teWNvbXAuYzoKKwlNYXJ0aW4gRnVjaHMgPG1hcnRpbi1mdWNoc0BnbXgubmV0PgorCS0gY29ycmVjdCByZXR1cm4gdmFsdWUgb2YgU0hHZXRQYXRoRnJvbUlETGlzdFtBV10oKSBmb3IgdmlydHVhbAorCSAgZm9sZGVycyBsaWtlICJNeSBDb21wdXRlciIKKwktIGNvcnJlY3QgcGF0aCBwYXJzaW5nIGluIElTRl9EZXNrdG9wX2ZuUGFyc2VEaXNwbGF5TmFtZSgpCisJLSBoYW5kbGUgQ0xTSUQgcGF0aHMgaW4gSVNGX015Q29tcHV0ZXJfZm5QYXJzZURpc3BsYXlOYW1lKCkKKwktIHJldHVybiBDTFNJRCBwYXRoIGluIElTRl9NeUNvbXB1dGVyX2ZuR2V0RGlzcGxheU5hbWVPZigpCisKKwkqIGRsbHMvYWR2YXBpMzIvc2VjdXJpdHkuYzogSnVhbiBMYW5nIDxqdWFuX2xhbmdAeWFob28uY29tPgorCVJlYWQgdGhlIFBvbGljeXtBY2NvdW50LFByaW1hcnl9RG9tYWluSW5mb3JtYXRpb24gZnJvbSB0aGUgcmVnaXN0cnksCisJcmF0aGVyIHRoYW4gaGFyZGNvZGluZyBpdCB0byAiRE9NQUlOIi4KKworCSogZGxscy9zaGVsbDMyL3NobGV4ZWMuYzogR2UgdmFuIEdlbGRvcnAgPGdlQGdzZS5ubD4KKwlFbmNsb3NlIGFwcGxpY2F0aW9uIG5hbWUgaW4gZG91YmxlIHF1b3RhdGlvbiBtYXJrcywgYXMgaXQgbWF5IGNvbnRhaW4KKwlzcGFjZXMuCisKKwkqIGRsbHMvd2luaW5ldC91cmxjYWNoZS5jOiBNaWNoYWVsIFN0ZWZhbml1YyA8bXN0ZWZhbmlAcmVkaGF0LmRlPgorCUZpeGVkIG1lbSBsZWFrIG9uIGVycm9yIHBhdGguCisKKwkqIGRsbHMvY29tbWRsZy9jZGxnX0phLnJjLCBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMl9KYS5yYzoKKwlWaWsgS3VtYXIgPHZpa0B6b25lODEuY29tPgorCUZpeGVkIE1TIFVJIEdvdGhpYyBmb250IG5hbWVzLgorCisJKiBkbGxzL21zdmlkZW8vbXNybGUzMi9tc3JsZV9ObC5yYywgZGxscy9tc3ZpZGVvL21zcmxlMzIvcnNyYy5yYywKKwkgIGRsbHMvb2xlZGxnL29sZWRsZ19ObC5yYywgZGxscy9vbGVkbGcvcnNyYy5yYzoKKwlIYW5zIExlaWRla2tlciA8aGFuc0BpdC52dS5ubD4KKwlUcmFuc2xhdGUgbXNybGUzMiBhbmQgb2xlZGxnIHJlc291cmNlcy4KKworCSogcHJvZ3JhbXMvd2NtZC9idWlsdGlucy5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJU29ydCB0aGUgb3V0cHV0IG9mIHdjbWQncyBzZXQgY29tbWFuZC4KKworCSogZGxscy9udGRsbC9udC5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJUmV0dXJuIGFuIFNJRCB3aGVuIEdldFRva2VuSW5mb3JtYXRpb24gaXMgY2FsbGVkIHdpdGggY2xhc3MKKwlUb2tlbk93bmVyLgorCisJKiBkbGxzL3dpbmluZXQvaW50ZXJuZXQuYzogU3lsdmFpbiBQZXRyZW9sbGUgPHNwZXRyZW9sbGVAeWFob28uZnI+CisJQWRkZWQgc3R1YnMgZm9yIG9wdGlvbnMgQ09OTkVDVF9USU1FT1VUIGFuZCBEQVRBX1JFQ0VJVkVfVElNRU9VVC4KKworCSogZGxscy9jb21tZGxnL2ZvbnRkbGcuYzogTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJRFdMX1VTRVIgbWlnaHQgYmUgdXNlZCBvdGhlcndpc2UsIHNvIHVzZSBhbiBpbnRlcm5hbCB3aW5kb3cgcHJvcGVydHkKKwlmb3IgZGF0YSBzdG9yYWdlLgorCisJKiBkbGxzL3gxMWRydi9rZXlib2FyZC5jOiBaaW1sZXIgQXR0aWxhIDxoaWphc3p1QGhsZnNsaW51eC5odT4KKwlGaXhlZCBIdW5nYXJpYW4ga2V5Ym9hcmQgbGF5b3V0LgorCisJKiBkbGxzL3gxMWRydi9jbGlwYm9hcmQuYzogU2FtaSBBYXJpbyA8c2FtaS5hYXJpb0BzdXJmZXUuZmk+CisJRml4ZWQgYSB0eXBvLgorCisJKiBkbGxzL21zaHRtbC9tc2h0bWwuc3BlYzogRGF2aWQgTWlsbGVyIDxjb21wc29sQHB0ZC5uZXQ+CisJUmVtb3ZlZCBleHBsaWNpdCBvcmRpbmFscy4KKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jOiBMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCUFsc28gcmVtb3ZlIGluIHRoZSBEM0QgY29kZSB0aGUgcGVkYW50aWMgY2hlY2sgb24gdGhlIEdldFByb2NBZGRyZXNzCisJZXh0ZW5zaW9uLgorCisJKiBkbGxzL3F1YXJ0ei9maWx0ZXJncmFwaC5jLCBkbGxzL3F1YXJ0ei9yZWdzdnIuYzoKKwlSb2JlcnQgU2hlYXJtYW4gPFIuSi5TaGVhcm1hbkB3YXJ3aWNrLmFjLnVrPgorCS0gRml4IElHcmFwaEJ1aWxkZXI6OkNvbm5lY3REaXJlY3QuCisJLSBSZWdpc3RlciBJRmlsdGVyTWFwcGVyIGFuZCBJRmlsdGVyTWFwcGVyMiBpbiBEbGxSZWdpc3RlclNlcnZlci4KKworCSogcHJvZ3JhbXMvcHJvZ21hbi9JdC5yYywgcHJvZ3JhbXMvdW5pbnN0YWxsZXIvcnNyYy5yYywKKwkgIHByb2dyYW1zL3ZpZXcvSXQucmM6CisJSXZhbiBMZW8gTXVycmF5LVNtaXRoIDxwdW90aUBpbndpbmQuaXQ+CisJVXBkYXRlZCBJdGFsaWFuIHRyYW5zbGF0aW9ucy4KKworCSogZGxscy9jb21tZGxnL2ZpbGVkbGcxNi5jOiBSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJV2hlbiBhIGRpcmVjdG9yeSBpcyBlbnRlcmVkIGluIHRoZSAxNiBiaXRzIGZpbGUgZGlhbG9nLCBpdCBzaG91bGQgbm90CisJYmUgcmV0dXJuZWQgdGhlIHVzZXIuIEluc3RlYWQgdGhlIGRpcmVjdG9yeSBtdXN0IGJlIGNoYW5nZWQgYW5kIHRoZQorCWRpYWxvZyB3b3JrIGZyb20gdGhlcmUuCisKKwkqIGRsbHMvY29tY3RsMzIvdHJhY2tiYXIuYzogRHVhbmUgQ2xhcmsgPGRjbGFya0Bha2FtYWlsLmNvbT4KKwlSZWluaXRpYWxpemUgdGh1bWIgd2hlbiB0cmFja2JhciBzaXplIGlzIGNoYW5nZWQuCisKKwkqIHdpbmRvd3Mvd2luLmM6IE1pa2UgSGVhcm4gPG1pa2VAdGhlb3JldGljLmNvbT4KKwlQcmV2ZW50IGZhbHNlIG1hdGNoZXMgaW4gV0lOX0ZpbmRXaW5kb3cuCisKKwkqIHByb2dyYW1zL3dpbmV0ZXN0L21ha2V0ZXN0OiBGZXJlbmMgV2FnbmVyIDx3ZmVyaUBhZmF2YW50LmVsdGUuaHU+CisJU29sYXJpcyBzaCBwb3J0YWJpbGl0eSBmaXguCisKKwkqIGRsbHMvbXN2Y3J0L3Rlc3RzL2ZpbGUuYzogRmVyZW5jIFdhZ25lciA8d2ZlcmlAYWZhdmFudC5lbHRlLmh1PgorCUZpeCB1bmRlbGV0ZWQgdGVtcG9yYXJ5IGZpbGUuCisJQ29ycmVjdCBlcnJvciBtZXNzYWdlcyBhbmQgY29tbWVudHMsIGJyZWFrIGxvbmcgbGluZXMuCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOiBNaWNoYWVsIFN0ZWZhbml1YyA8bXN0ZWZhbmlAcmVkaGF0LmRlPgorCVNlYXJjaCBmb3IgbWluZ3ctJHByb2cgdG9vLgorCisJKiBkbGxzL29sZWF1dDMyL3NhZmVhcnJheS5jLCBkbGxzL29sZWF1dDMyL3Rlc3RzL3NhZmVhcnJheS5jOgorCU1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCURpbWVuc2lvbnMgd2l0aCBjRWxlbWVudHM9MCBhcmUgdmFsaWQgYW5kIG5lZWRlZCBieSBJbnN0YWxsU2hpZWxkLgorCVNhZmVBcnJheUdldEVsZW1lbnQ6IGZpeGVkIEJTVFIgYW5kIExQVU5LTk9XTiBoYW5kbGluZy4KKwlBZGRlZCB0ZXN0Y2FzZXMgZm9yIGFib3ZlIGNhc2VzLgorCisJKiBkbGxzL29sZWF1dDMyL3R5cGVsaWIuYzogTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJQWRkZWQgbW9yZSBhcmd1bWVudCBudW1iZXJzIGZvciBfaW52b2tlKCkuCisKKzIwMDMtMTItMTUgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvb2xlYXV0MzIvdGVzdHMvc2FmZWFycmF5LmM6CisJSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlJOC9VSTggYXJlIGFjY2VwdGVkIGluIGFycmF5cyBpbiByZWNlbnQgbmF0aXZlIGRsbHMuCisJVGVzdCBVRFRzLCBhcnJheSBjb2VyY2lvbiBhbmQgbmV3IGZ1bmN0aW9ucy4KKworCSogZGxscy9vbGVhdXQzMi92YXJpYW50LmM6IEpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJVXNlIHRoZSBTYWZlQXJyYXkgY29udmVyc2lvbiBmdW5jdGlvbnMgd2hlbiBjb2VyY2luZyBhcnJheXMuCisJU2ltcGxpZnkgVmFyaWFudENoYW5nZVR5cGVFeC4KKwlSZXBsYWNlIGNhbGxzIHRvIGR1bXBfVmFyaWFudCgpIHdpdGggVFJBQ0Uncy4KKworCSogZGxscy9vbGVhdXQzMi9vbGVhdXQzMi5zcGVjLCBkbGxzL29sZWF1dDMyL3NhZmVhcnJheS5jOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJUmV3cml0ZTogU3VwcG9ydCBJOC9VSTgsUkVDT1JELgorCVN0b3JlIGFycmF5IGJvdW5kcyBpbiB0aGUgc2FtZSBvcmRlciBhcyBuYXRpdmUuCisJQWRkIENyZWF0ZUV4LCBDcmVhdGVWZWN0b3JFeCwgVmVjdG9yRnJvbUJzdHIsIEJzdHJGcm9tVmVjdG9yLgorCisJKiB0b29scy93aW5lbWFrZXI6IEtpcmlsbCBTbWVsa292IDxraXJyQGxhbmRhdS5waHlzLnNwYnUucnU+CisJQWRkZWQgbWZjL0luY2x1ZGUgYW5kIG1mYy9zcmMgYXMgcG9zc2libGUgcGxhY2VzIGZvciBpbmNsdWRlcyBhbmQgdGhlCisJbGlicmFyeS4KKworCSogZGxscy9tc3ZjcnQvc2NhbmYuaCwgZGxscy9tc3ZjcnQvdGVzdHMvc2NhbmYuYzoKKwlVd2UgQm9ubmVzIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJUGF0Y2ggYW5kIHRlc3QgZm9yIHNjYW5mICVpLgorCisJKiBkbGxzL250ZGxsL3Rlc3RzL2Vudi5jLCBkbGxzL250ZGxsL3Rlc3RzL2xhcmdlX2ludC5jLAorCSAgZGxscy9udGRsbC90ZXN0cy9wYXRoLmMsIGRsbHMvbnRkbGwvdGVzdHMvcnRsLmMsCisJICBkbGxzL250ZGxsL3Rlc3RzL3N0cmluZy5jOgorCUhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCUNoZWNrIGlmIGEgZnVuY3Rpb24gZXhpc3RzIGJlZm9yZSB0ZXN0aW5nIGl0LgorCisJKiBkbGxzL21zdmlkZW8vTWFrZWZpbGUuaW4sIGRsbHMvbXN2aWRlby9tY2l3bmQuYywKKwkgIGRsbHMvbXN2aWRlby9tc3ZmdzMyLnNwZWMsIGRsbHMvbXN2aWRlby9tc3ZpZGVvX21haW4uYywKKwkgIGluY2x1ZGUvdmZ3Lmg6CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlJbXBsZW1lbnQgc3VwcG9ydCBmb3IgbWFueSBNQ0lXbmRDbGFzcyBNQ0lfIGFuZCBNQ0lXTkRNXyBtZXNzYWdlcy4KKwlDb252ZXJ0IE1DSVduZENsYXNzIGltcGxlbWVudGF0aW9uIHRvIHVuaWNvZGUuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL2ZpbGUuYywgZmlsZXMvZmlsZS5jOgorCUhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCU1vdmVGaWxlIHJldHVybnMgRVJST1JfQUxSRUFEWV9FWElTVFMsIG5vdCBFUlJPUl9GSUxFX0VYSVNUUy4KKworCSogZGxscy9vbGVhdXQzMi9vbGVhdXQzMi5zcGVjLCBkbGxzL29sZWF1dDMyL3ZhcmlhbnQuYywKKwkgIGRsbHMvb2xlYXV0MzIvdGVzdHMvdmFydGVzdC5jOgorCU1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUltcGxlbWVudGVkIFZhckludCwgVmFyUG93LgorCUFkZGVkIFI0IChmbG9hdCkgc3VwcG9ydCB0byBWYXJBZGQuCisJQWRkZWQgREFURSBzdXBwb3J0IHRvIFZhclN1Yi4KKworCSogZG9jdW1lbnRhdGlvbi9kZWJ1Z2dlci5zZ21sLCBwcm9ncmFtcy93aW5lZGJnL2JyZWFrLmMsCisJICBwcm9ncmFtcy93aW5lZGJnL2RiX2Rpc2FzbS5jLCBwcm9ncmFtcy93aW5lZGJnL2RiZy55LAorCSAgcHJvZ3JhbXMvd2luZWRiZy9kZWJ1Zy5sLCBwcm9ncmFtcy93aW5lZGJnL2RlYnVnZ2VyLmgsCisJICBwcm9ncmFtcy93aW5lZGJnL2Rpc3BsYXkuYywgcHJvZ3JhbXMvd2luZWRiZy9leHByLmMsCisJICBwcm9ncmFtcy93aW5lZGJnL2dkYnByb3h5LmMsIHByb2dyYW1zL3dpbmVkYmcvaGFzaC5jLAorCSAgcHJvZ3JhbXMvd2luZWRiZy9pbmZvLmMsIHByb2dyYW1zL3dpbmVkYmcvaW50dmFyLmgsCisJICBwcm9ncmFtcy93aW5lZGJnL21lbW9yeS5jLCBwcm9ncmFtcy93aW5lZGJnL21vZHVsZS5jLAorCSAgcHJvZ3JhbXMvd2luZWRiZy9tc2MuYywgcHJvZ3JhbXMvd2luZWRiZy9yZWdpc3RlcnMuYywKKwkgIHByb2dyYW1zL3dpbmVkYmcvc291cmNlLmMsIHByb2dyYW1zL3dpbmVkYmcvc3RhYnMuYywKKwkgIHByb2dyYW1zL3dpbmVkYmcvc3RhY2suYywgcHJvZ3JhbXMvd2luZWRiZy90eXBlcy5jLAorCSAgcHJvZ3JhbXMvd2luZWRiZy93aW5lZGJnLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJLSBnZXQgcmlkIG9mIHdpbmVkYmcgaW50ZXJuYWwgY2hhbm5lbHMgZm9yIG91dHB1dAorCS0gbW92ZSBhbGwgc3RhbmRhcmQgKG9sZCBNRVNHIGNoYW5uZWwpIG91dHB1dCB0byBzdGRvdXQKKwktIG1vdmUgYWxsIG90aGVyIG91dHB1dHMgKFRSQUNFLCBXQVJOLi4uKSB0byBhIG5ldyB3aW5lIGRlYnVnZ2luZworCSAgY2hhbm5lbCAod2luZWRiZykKKwktIHJlcGxhY2VkIHF1aXRlIGEgZmV3ICNpZmRlZjplZCBvdXQgb3V0cHV0IHRvIG5ldyBjaGFubmVscyAobWFpbmx5IGluCisJICBzeW1ib2wgbWFuYWdlbWVudCBhcmVhLi4uKQorCS0gYWRkZWQgYSBuZXcgbWFpbnRlbmFuY2UgY29tbWFuZHMgdG8gZWFzZSB1cCBkZWJ1Z2dpbmcKKwktIHVwZGF0ZWQgZG9jdW1lbnRhdGlvbiBhY2NvcmRpbmdseQorCisJKiBkbGxzL3dpbm1tL3dpbm1tX0VuLnJjLCBkbGxzL3dpbm1tL3dpbm1tX0VzLnJjLAorCSAgZGxscy93aW5tbS93aW5tbV9Gci5yYywgZGxscy93aW5tbS93aW5tbV9JdC5yYywKKwkgIGRsbHMvd2lubW0vd2lubW1fUHQucmMsIGRsbHMvd2lubW0vd2lubW1fUnUucmMsCisJICBkbGxzL3dpbm1tL3dpbm1tX1NrLnJjOgorCVN0ZXZlbiBFZHdhcmRzIDxzdGV2ZW5fZWQ0MTUzQHlhaG9vLmNvbT4KKwlQb3J0aW5nIGZpeCBmb3Igd2lubW0gcmVzb3VyY2VzIChwYXRjaCBieSBGaWxpcCBOYXZhcmEpLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9oZWFwLmM6IEhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCVtHbG9iYWx8TG9jYWxdUmVBbGxvYyBkb24ndCBmYWlsIHdpdGggc2l6ZSAwLgorCUZpeGVkIHR5cG9zLgorCisJKiBkbGxzL2dkaS9mcmVldHlwZS5jOiBNYXJjdXMgTWVpc3NuZXIgPG1laXNzbmVyQHN1c2UuZGU+CisJT2xkZXIgdmVyc2lvbnMgb2YgZnJlZXR5cGUgZG8gbm90IGhhdmUgRlRfR2V0X0ZpcnN0X0NoYXIuCisKKwkqIHRvb2xzL3dpbmFwaS9tc3ZjbWFrZXI6IE1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJRml4ZWQgb3B0aW9ucyBmb3Igd2luZWJ1aWxkLgorCisJKiBkbGxzL2tlcm5lbC9kZXZpY2UuYzogTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJRXhwbGljaXRseSBjbGVhciB2bTg2IGZsYWcgaW4gRElPQ1JlZ3NfMl9DT05URVhULgorCisJKiBkbGxzL21zdmNydC90ZXN0cy9zY2FuZi5jOiBGZXJlbmMgV2FnbmVyIDx3ZmVyaUBhZmF2YW50LmVsdGUuaHU+CisJQWRkZWQgc25wcmludGYgdGVzdC4KKworCSogZGxscy9jb21tZGxnL2NkbGdfeHgucmM6IFN0ZXZlbiBFZHdhcmRzIDxzdGV2ZW5fZWQ0MTUzQHlhaG9vLmNvbT4KKwlQb3J0aW5nIGZpeC4KKworCSogZGxscy9zaGVsbDMyL2ljb25jYWNoZS5jOiBNYXJ0aW4gRnVjaHMgPG1hcnRpbi1mdWNoc0BnbXgubmV0PgorCUFkZGVkIGluY2x1ZGUgb2YgIndpbmUvcG9ydC5oIiBmb3IgTVNWQy4KKworCSogZGxscy93aW5tbS93aW5lYWxzYS93aW5lYWxzYS5kcnYuc3BlYzoKKwlDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJRXhwb3J0ZWQgd2lkTWVzc2FnZSBmdW5jdGlvbi4KKworCSogZGxscy9vbGVhdXQzMi90eXBlbGliLmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCVlldCBhbm90aGVyIHVzZWZ1bCBoaW50IGZvciBtaXNzaW5nIHN0ZG9sZTMyLnRsYi4KKworCSogZGxscy93aW5pbmV0L2h0dHAuYzoKKwlVd2UgQm9ubmVzIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJSFRUUF9EZWFsV2l0aFByb3h5OiBPbmx5IGFkZCBodHRwOi8vIHRvIHByb3h5IHN0cmluZyB3aGVuIG5lZWRlZC4KKworCSogZGxscy9vbGVhdXQzMi92YXJ0eXBlLmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCURvIG5vdCBjbGVhciB0aGUgcG9pbnRlciB3ZSBqdXN0IGFsbG9jYXRlZCwganVzdCB0aGUgZmlyc3QgYnl0ZSBpdAorCXBvaW50cyB0by4KKworCSogZGxscy9udGRsbC9jZHJvbS5jOiBNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlGaXhlZCBwb3RlbnRpYWxseSB1bmluaXRpYWxpc2VkIHN6LgorCisJKiB0b29scy93aW5lbWFrZXI6IEtpcmlsbCBTbWVsa292IDxraXJyQGxhbmRhdS5waHlzLnNwYnUucnU+CisJQWRkZWQgdGVzdCBmb3IgLWZtcy1leHRlbnNpb25zIHRvIGdlbmVyYXRlZCBjb25maWd1cmUuYWMuCisKKzIwMDMtMTItMTIgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIEFOTk9VTkNFLCBDaGFuZ2VMb2csIFZFUlNJT04sIGNvbmZpZ3VyZTogUmVsZWFzZSAyMDAzMTIxMi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMjAwMy0xMi0xMiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KIAogCSogZGxscy91c2VyL3RleHQuYzogR2UgdmFuIEdlbGRvcnAgPGdlQGdzZS5ubD4KZGlmZiAtLWdpdCBhL1ZFUlNJT04gYi9WRVJTSU9OCmluZGV4IGE1MTllZTkuLmZkOTZlYTEgMTAwNjQ0Ci0tLSBhL1ZFUlNJT04KKysrIGIvVkVSU0lPTgpAQCAtMSArMSBAQAotV2luZSB2ZXJzaW9uIDIwMDMxMjEyCitXaW5lIHZlcnNpb24gMjAwNDAxMjEKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRleCAzZDljMjA5Li5iNDZmNjAwIDEwMDc1NQotLS0gYS9jb25maWd1cmUKKysrIGIvY29uZmlndXJlCkBAIC0xLDYgKzEsNiBAQAogIyEgL2Jpbi9zaAogIyBHdWVzcyB2YWx1ZXMgZm9yIHN5c3RlbS1kZXBlbmRlbnQgdmFyaWFibGVzIGFuZCBjcmVhdGUgTWFrZWZpbGVzLgotIyBHZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTggZm9yIFdpbmUgMjAwMzEyMTIuCisjIEdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OCBmb3IgV2luZSAyMDA0MDEyMS4KICMKICMgUmVwb3J0IGJ1Z3MgdG8gPHdpbmUtZGV2ZWxAd2luZWhxLm9yZz4uCiAjCkBAIC0yNjksOCArMjY5LDggQEAKICMgSWRlbnRpdHkgb2YgdGhpcyBwYWNrYWdlLgogUEFDS0FHRV9OQU1FPSdXaW5lJwogUEFDS0FHRV9UQVJOQU1FPSd3aW5lJwotUEFDS0FHRV9WRVJTSU9OPScyMDAzMTIxMicKLVBBQ0tBR0VfU1RSSU5HPSdXaW5lIDIwMDMxMjEyJworUEFDS0FHRV9WRVJTSU9OPScyMDA0MDEyMScKK1BBQ0tBR0VfU1RSSU5HPSdXaW5lIDIwMDQwMTIxJwogUEFDS0FHRV9CVUdSRVBPUlQ9J3dpbmUtZGV2ZWxAd2luZWhxLm9yZycKIAogYWNfdW5pcXVlX2ZpbGU9InNlcnZlci9hdG9tLmMiCkBAIC03ODAsNyArNzgwLDcgQEAKICAgIyBPbWl0IHNvbWUgaW50ZXJuYWwgb3Igb2Jzb2xldGUgb3B0aW9ucyB0byBtYWtlIHRoZSBsaXN0IGxlc3MgaW1wb3NpbmcuCiAgICMgVGhpcyBtZXNzYWdlIGlzIHRvbyBsb25nIHRvIGJlIGEgc3RyaW5nIGluIHRoZSBBL1VYIDMuMSBzaC4KICAgY2F0IDw8X0FDRU9GCi1cYGNvbmZpZ3VyZScgY29uZmlndXJlcyBXaW5lIDIwMDMxMjEyIHRvIGFkYXB0IHRvIG1hbnkga2luZHMgb2Ygc3lzdGVtcy4KK1xgY29uZmlndXJlJyBjb25maWd1cmVzIFdpbmUgMjAwNDAxMjEgdG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgogCiBVc2FnZTogJDAgW09QVElPTl0uLi4gW1ZBUj1WQUxVRV0uLi4KIApAQCAtODQ1LDcgKzg0NSw3IEBACiAKIGlmIHRlc3QgLW4gIiRhY19pbml0X2hlbHAiOyB0aGVuCiAgIGNhc2UgJGFjX2luaXRfaGVscCBpbgotICAgICBzaG9ydCB8IHJlY3Vyc2l2ZSApIGVjaG8gIkNvbmZpZ3VyYXRpb24gb2YgV2luZSAyMDAzMTIxMjoiOzsKKyAgICAgc2hvcnQgfCByZWN1cnNpdmUgKSBlY2hvICJDb25maWd1cmF0aW9uIG9mIFdpbmUgMjAwNDAxMjE6Ijs7CiAgICBlc2FjCiAgIGNhdCA8PFxfQUNFT0YKIApAQCAtOTgzLDcgKzk4Myw3IEBACiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIiAmJiBleGl0IDAKIGlmICRhY19pbml0X3ZlcnNpb247IHRoZW4KICAgY2F0IDw8XF9BQ0VPRgotV2luZSBjb25maWd1cmUgMjAwMzEyMTIKK1dpbmUgY29uZmlndXJlIDIwMDQwMTIxCiBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTgKIAogQ29weXJpZ2h0IChDKSAyMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtOTk3LDcgKzk5Nyw3IEBACiBUaGlzIGZpbGUgY29udGFpbnMgYW55IG1lc3NhZ2VzIHByb2R1Y2VkIGJ5IGNvbXBpbGVycyB3aGlsZQogcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2VzIGEgbWlzdGFrZS4KIAotSXQgd2FzIGNyZWF0ZWQgYnkgV2luZSAkYXNfbWUgMjAwMzEyMTIsIHdoaWNoIHdhcworSXQgd2FzIGNyZWF0ZWQgYnkgV2luZSAkYXNfbWUgMjAwNDAxMjEsIHdoaWNoIHdhcwogZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU4LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCiAKICAgJCAkMCAkQApAQCAtMTk0MzUsNyArMTk0MzUsNyBAQAogfSA+JjUKIGNhdCA+JjUgPDxfQ1NFT0YKIAotVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBXaW5lICRhc19tZSAyMDAzMTIxMiwgd2hpY2ggd2FzCitUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IFdpbmUgJGFzX21lIDIwMDQwMTIxLCB3aGljaCB3YXMKIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OC4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwogCiAgIENPTkZJR19GSUxFUyAgICA9ICRDT05GSUdfRklMRVMKQEAgLTE5NDk4LDcgKzE5NDk4LDcgQEAKIAogY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YKIGFjX2NzX3ZlcnNpb249IlxcCi1XaW5lIGNvbmZpZy5zdGF0dXMgMjAwMzEyMTIKK1dpbmUgY29uZmlnLnN0YXR1cyAyMDA0MDEyMQogY29uZmlndXJlZCBieSAkMCwgZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU4LAogICB3aXRoIG9wdGlvbnMgXFwiYGVjaG8gIiRhY19jb25maWd1cmVfYXJncyIgfCBzZWQgJ3MvW1xcIiJcYFwkXS9cXFxcJi9nJ2BcXCIKIAo=