ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggMWEyNTU3NC4uODRjYzAwYiAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsMTMgKzEsMTIgQEAKLVRoaXMgaXMgcmVsZWFzZSAyMDAzMDUwOCBvZiBXaW5lLCBhIGZyZWUgaW1wbGVtZW50YXRpb24gb2YgV2luZG93cyBvbgorVGhpcyBpcyByZWxlYXNlIDIwMDMwNjE4IG9mIFdpbmUsIGEgZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiBXaW5kb3dzIG9uCiBVbml4LiAgVGhpcyBpcyBzdGlsbCBhIGRldmVsb3BlcnMgb25seSByZWxlYXNlLiAgVGhlcmUgYXJlIG1hbnkgYnVncwogYW5kIHVuaW1wbGVtZW50ZWQgZmVhdHVyZXMuICBNb3N0IGFwcGxpY2F0aW9ucyBzdGlsbCBkbyBub3Qgd29yawogY29ycmVjdGx5LgogCi1XSEFUJ1MgTkVXIHdpdGggV2luZS0yMDAzMDUwODogKHNlZSBDaGFuZ2VMb2cgZm9yIGRldGFpbHMpCi0gICAgICAgIC0gU29tZSBtb3JlIHJlb3JnYW5pemF0aW9ucyBvZiB0aGUgc291cmNlIHRyZWUuCi0gICAgICAgIC0gQSBmZXcgbW9yZSBzdGVwcyB0b3dhcmRzIGtlcm5lbC9udGRsbCBzZXBhcmF0aW9uLgotICAgICAgICAtIE1hbnkgRGlyZWN0M0QgaW1wcm92ZW1lbnRzLgotICAgICAgICAtIE1vcmUgY29tcGF0aWJsZSBDT00gaW50ZXJmYWNlcyBkZWZpbml0aW9ucy4KK1dIQVQnUyBORVcgd2l0aCBXaW5lLTIwMDMwNjE4OiAoc2VlIENoYW5nZUxvZyBmb3IgZGV0YWlscykKKyAgICAgICAgLSBTdGlsbCBtb3JlIERpcmVjdDNEIGFuZCBEaXJlY3RTb3VuZCBpbXByb3ZlbWVudHMuCisgICAgICAgIC0gVG9ucyBvZiBmaXhlcyBtZXJnZWQgZnJvbSBDcm9zc292ZXIgT2ZmaWNlIDIuMC4KKyAgICAgICAgLSBOZXcgaXBobHBhcGkgZGxsLgogICAgICAgICAtIExvdHMgb2YgYnVnIGZpeGVzLgogCiBTZWUgdGhlIFJFQURNRSBmaWxlIGluIHRoZSBkaXN0cmlidXRpb24gZm9yIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMuCkBAIC0xNiw4ICsxNSw4IEBACiB0aGUgcmVsZWFzZSBpcyBhdmFpbGFibGUgYXQgdGhlIGZ0cCBzaXRlcy4gIFRoZSBzb3VyY2VzIHdpbGwgYmUgYXZhaWxhYmxlCiBmcm9tIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOgogCi0gIGh0dHA6Ly93d3cuaWJpYmxpby5vcmcvcHViL0xpbnV4L0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDAzMDUwOC50YXIuZ3oKLSAgaHR0cDovL3ByZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC93aW5lL1dpbmUtMjAwMzA1MDgudGFyLmd6CisgIGh0dHA6Ly93d3cuaWJpYmxpby5vcmcvcHViL0xpbnV4L0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDAzMDYxOC50YXIuZ3oKKyAgaHR0cDovL3ByZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC93aW5lL1dpbmUtMjAwMzA2MTgudGFyLmd6CiAKIEl0IHNob3VsZCBhbHNvIGJlIGF2YWlsYWJsZSBmcm9tIGFueSBvdGhlciBzaXRlIHRoYXQgbWlycm9ycyBpYmlibGlvLm9yZy4KIFRoZXNlIGxvY2F0aW9ucyBhbHNvIGhvbGQgcHJlLWJ1aWx0IGRvY3VtZW50YXRpb24gcGFja2FnZXMgaW4gdmFyaW91cwpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDFlYzE2ZDMuLmZiYzdiY2YgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsNCArMSwyMTA2IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMDAzLTA2LTE4ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2FkdmFwaTMyL3JlZ2lzdHJ5LmMsIGRsbHMvYWR2YXBpMzIvc2VydmljZS5jLAorCSAgZGxscy9jb21jYXQvaW5mb3JtYXRpb24uYywgZGxscy9jb21jYXQvcmVnc3ZyLmMsCisJICBkbGxzL2NvbWN0bDMyL2NvbWN0bDMydW5kb2MuYywgZGxscy9jb21jdGwzMi9wcm9wc2hlZXQuYywKKwkgIGRsbHMvY29tY3RsMzIvdG9vbHRpcHMuYywgZGxscy9kZHJhdy9kZHJhdy90aHVua3MuYywKKwkgIGRsbHMva2VybmVsL3N5bmMuYywgZGxscy9rZXJuZWwvdGVzdHMvZm9ybWF0X21zZy5jLAorCSAgZGxscy9udGRsbC9maWxlLmMsIGRsbHMvb2xlMzIvcmVnc3ZyLmMsIGRsbHMvb2xlMzIvc3RvcmFnZTMyLmMsCisJICBkbGxzL29sZWF1dDMyL3BhcnNlZHQuYywgZGxscy9zZXJpYWx1aS9jb25mZGxnLmMsCisJICBkbGxzL3NldHVwYXBpL2Rldmluc3QuYywgZGxscy9zaGVsbDMyL3NoZWxsbGluay5jLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsb3JkLmMsIGRsbHMvdXNlci9jb21tMTYuYywgZGxscy91c2VyL3Rlc3RzL2NsYXNzLmMsCisJICBkbGxzL3dpbmluZXQvaW50ZXJuZXQuYywgZGxscy93aW5tbS9sb2x2bGRydi5jLAorCSAgZGxscy93aW5zb2NrL3NvY2tldC5jLCBkbGxzL3dpbnNwb29sL2luZm8uYywgZmlsZXMvc21iLmMsCisJICBncmFwaGljcy94MTFkcnYveGZvbnQuYywgcHJvZ3JhbXMvdW5pbnN0YWxsZXIvbWFpbi5jLAorCSAgcHJvZ3JhbXMvd2luZW1lbnVidWlsZGVyL3dpbmVtZW51YnVpbGRlci5jLCBzY2hlZHVsZXIvY2xpZW50LmMsCisJICBzZXJ2ZXIvbmFtZWRfcGlwZS5jLCBzZXJ2ZXIvcmVnaXN0cnkuYywgc2VydmVyL3JlcXVlc3QuYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwknc2l6ZW9mIHR5cGUnIGlzIGJlc3QgYXZvaWRlZCBhcyBpdCB3b24ndCBhbHdheXMgY29tcGlsZSAoZS5nLiAnaW50CisJbWFpbigpIHtyZXR1cm4gc2l6ZW9mIGludDt9JykuIFVzZSAnc2l6ZW9mKHR5cGUpJyBpbnN0ZWFkLgorCisJKiBMSUNFTlNFOiBHZXJhbGQgUGZlaWZlciA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KKwlJbmNsdWRlIDIwMDMgaW4gdGhlIGNvcHlyaWdodCB5ZWFycy4KKworCSogcHJvZ3JhbXMvbm90ZXBhZC9MaWNlbnNlX0VuLmMsIHByb2dyYW1zL25vdGVwYWQvbGljZW5zZS5jOgorCUdlcmFsZCBQZmVpZmVyIDxwZmVpZmVyQGRiYWkudHV3aWVuLmFjLmF0PgorCSNpbmNsdWRlIDx3aW5kb3dzLmg+IGluc3RlYWQgb2YgIndpbmRvd3MuaCIuCisKKwkqIGRsbHMvZHNvdW5kL3ByaW1hcnkuYywgZGxscy9kc291bmQvc291bmQzZC5jOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJRml4ZWQgYSByZWZlcmVuY2UgY291bnRpbmcgYnVnIEkgaW50cm9kdWNlZC4KKworCSogZGxscy9jYWJpbmV0L2NhYmV4dHJhY3QuYywgZGxscy9jYWJpbmV0L2ZkaS5jLAorCSAgZGxscy9jb21jdGwzMi90b29sYmFyLmMsIGRsbHMvY29tY3RsMzIvdXBkb3duLmMsCisJICBkbGxzL2NvbW1kbGcvcHJpbnRkbGcuYywgZGxscy9kcGxheXgvZHBsYXl4X2dsb2JhbC5jLAorCSAgZGxscy9rZXJuZWwvdGVzdHMvcGF0aC5jLCBkbGxzL2tlcm5lbC90ZXN0cy90aHJlYWQuYywKKwkgIHdpbmVkZWZhdWx0LnJlZywgZGxscy9udGRsbC90aW1lLmMsIGRsbHMvb2xlMzIvYW50aW1vbmlrZXIuYywKKwkgIGRsbHMvb2xlMzIvY29tcG9iai5jLCBkbGxzL29sZTMyL2NvbXBvc2l0ZW1vbmlrZXIuYywKKwkgIGRsbHMvb2xlMzIvaXRlbW1vbmlrZXIuYywgZGxscy9vbGVhdXQzMi9zYWZlYXJyYXkuYywKKwkgIGRsbHMvb2xlYXV0MzIvdmFyaWFudC5jLCBkbGxzL3NoZWxsMzIvc2hsZXhlYy5jLAorCSAgZGxscy9zaGVsbDMyL3NobGZvbGRlci5jLCBkbGxzL3NoZWxsMzIvc2hsdmlldy5jLAorCSAgZGxscy9zaGx3YXBpL2NsaXN0LmMsIGRsbHMvc2hsd2FwaS9wYXRoLmMsIGRsbHMvc2hsd2FwaS90aHJlYWQuYywKKwkgIGRsbHMvd2lubW0vd2luZW9zcy9taWRpLmMsIGRvY3VtZW50YXRpb24vSE9XVE8td2luZWxpYiwKKwkgIGRvY3VtZW50YXRpb24vUEFDS0FHSU5HLCBkb2N1bWVudGF0aW9uL2RlYnVnZ2VyLnNnbWwsCisJICBkb2N1bWVudGF0aW9uL2RlYnVnZ2luZy5zZ21sLCBkb2N1bWVudGF0aW9uL2RsbHMuc2dtbCwKKwkgIGRvY3VtZW50YXRpb24vcGF0Y2hlcy5zZ21sLCBkb2N1bWVudGF0aW9uL3NoZWxsMzIsCisJICBkb2N1bWVudGF0aW9uL3N0YXR1cy9kaXJlY3RwbGF5LCBsaWJzL3dwcC9wcGwubCwgb2JqZWN0cy9mb250LmMsCisJICBwcm9ncmFtcy9ub3RlcGFkL21haW4uYywgcHJvZ3JhbXMvdmlldy92aWV3LmMsCisJICBwcm9ncmFtcy93aW5lY2ZnL21haW4uYywgcHJvZ3JhbXMvd2luZWNmZy93aW5lY2ZnLnJjLAorCSAgcHJvZ3JhbXMvd2luZWRiZy9yZWdpc3RlcnMuYywgdG9vbHMvd2luZWR1bXAvUkVBRE1FLAorCSAgdG9vbHMvd3JjL3BhcnNlci55OgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCVR5cG9zL3NwZWxsaW5nIGZpeGVzLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9lbnZpcm9uLmMsIGRsbHMva2VybmVsL3Rlc3RzL3Byb2Nlc3MuYywKKwkgIGRsbHMvbnRkbGwvdGVzdHMvZW52LmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJLSBrZXJuZWwzMidzIGVudmlyb25tZW50IHRlc3RzOiBhIGZldyBtb3JlIHRlc3RzIG5vdyBzdWNjZWVkCisJLSBhZGRlZCBzb21lIGNvbnNvbGUgcmVsYXRlZCB0ZXN0cyB0byBwcm9jZXNzIGNyZWF0aW9uCisJLSBhZGRlZCBhIGZldyBtb3JlIHRlc3QgY2FzZXMgdG8gdGhlIG50ZGxsIGVudmlyb25tZW50IHRlc3RzCisKKwkqIGRsbHMva2VybmVsL2tlcm5lbF9tYWluLmMsIGRsbHMvbnRkbGwvZW52LmMsIGRsbHMvbnRkbGwvbnRkbGxfbWlzYy5oLAorCSAgaW5jbHVkZS93aW50ZXJubC5oLCBtZW1vcnkvZW52aXJvbi5jLCBzY2hlZHVsZXIvcHJvY2Vzcy5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCS0gZml4ZWQgYSBjb3VwbGUgb2YgYnVncyBpbiBudGRsbCBlbnZpcm9ubWVudCBmdW5jdGlvbnMgKG9uZSBpbiB0cmFjZSwKKwkgIHRoZSBvdGhlciBvbmUgaW4gZW52aXJvbm1lbnQgdmFyaWFibGUgZXhwYW5zaW9uKQorCS0gdGhlIHByb2Nlc3MgcGFyYW1ldGVycywgd2hlbiBwYXNzZWQgdGhydSB3aW5lc2VydmVyLCBhcmUgbm93IGZ1bGx5CisJICBoYW5kbGVkIGluIG50ZGxsLCB0aGV5IGFyZSBzdG9yZWQgaW4gdGhlIFJUTF9VU0VSX1BST0NFU1NfUEFSQU1FVEVSUworCSAgc3RydWN0dXJlLgorCS0gbGF0ZXIgb24gaW4ga2VybmVsMzIgbG9hZGluZyBzZXF1ZW5jZSwgdGhvc2UgcGFyYW1ldGVycyBhcmUgY29waWVkCisJICBpbnRvIFNUQVJUVVBJTkZPIHNoYWRvdyBzdHJ1Y3R1cmVzCisJLSBsYXRlciBtb2RpZmljYXRpb24gdG8gdGhvc2UgcGFyYW10ZXJzIGFyZSBub3cgcmVmbGVjdGVkIHRvIHRoZQorCSAgUlRMX1VTRVJfUFJPQ0VTU19QQVJBTUVURVJTIHN0cnVjdHVyZSAoYW5kIFNUQVJUVVBJTkZPIGlzIGtlcHQKKwkgIHVudG91Y2hlZCkgKGZvciBleGFtcGxlLCBTdGRIYW5kbGUgc2V0dGluZykgKFdpbiAyayBiZWhhdmVzIGxpa2UgdGhpcykKKwktIEVOVkRCIGhhcyBiZWVuIHJlbW92ZWQKKwktIGNvbW1hbmQgbGluZSBpbmhlcml0YW5jZSAoZnJvbSB1bml4IGNvbW1hbmQgbGluZSkgaXMgbm93IHB1cmVseSBpbiBudGRsbAorCS0gYWxsIGtlcm5lbDMyIGVudmlyb25tZW50IGZ1bmN0aW9ucyBub3cgcmVseSBvbiB0aGVpciBudGRsbCBjb3VudGVycGFydHMKKwktIGdvb2RpZXM6IGlucHV0L291dHB1dCBoYW5kbGUgaW5oZXJpdGFuY2Ugd2hpbGUgYXNraW5nIGZvciBhIGRldGFjaGVkCisJICBjb25zb2xlIGlzIGJldHRlciBoYW5kbGVkOyBhIGZldyBtb3JlIGtlcm5lbDMyIGVudmlyb25tZW50IHRlc3RzIG5vdworCSAgcGFzcyA7IHNpbGVuY2VkIGEgdmFsZ3JpbmQgd2FybmluZyBpbiBwcm9jZXNzIGNyZWF0aW9uCisKKwkqIHByb2dyYW1zL3dpbmVmaWxlL0VuLnJjLCBwcm9ncmFtcy93aW5lZmlsZS9Gci5yYywKKwkgIHByb2dyYW1zL3dpbmVmaWxlL3JzcmMucmM6CisJU3lsdmFpbiBQZXRyZW9sbGUgPHNwZXRyZW9sbGVAeWFob28uZnI+CisJQWRkZWQgRnJlbmNoIHRyYW5zbGF0aW9uLCBmaW5pc2hlZCBFbmdsaXNoIHRyYW5zbGF0aW9uLgorCisJKiBkb2N1bWVudGF0aW9uL1JFQURNRS5wdDogVG9tIFdpY2tsaW5lIDx0d2lja2xpbmVAc2t5YmVzdC5jb20+CisJVHJhbmxhdGlvbiBvZiBFbmdsaXNoIFJFQURNRSB0byBQb3J0dWd1ZXNlLgorCisJKiBkbGxzL2RtdXNpYy9kbXVzaWNfbG9hZGVyLmMsIGRsbHMvZG11c2ljL2RtdXNpY19wZXJmb3JtYW5jZS5jLAorCSAgZGxscy9kbXVzaWMvZG11c2ljX3NlZ21lbnQuYzoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwktIGFkZCBJRGlyZWN0TXVzaWNDb250YWluZXIgc3VwcG9ydCBpbgorCSAgSURpcmVjdE11c2ljTG9hZGVyOEltcGw6OkxvYWRPYmplY3RGcm9tRmlsZQorCS0gZG9uJ3QgdXNlIElEaXJlY3RNdXNpY1NlZ21lbnQqSW1wbCB3aGVuIElEaXJlY3RNdXNpY1NlZ21lbnQqOEltcGwKKwkgIGNhbiBiZSB1c2VkIGluc3RlYWQgKGF2b2lkIGNvZGUgZHVwbGljYXRpb24pCisKKwkqIGRsbHMvZDNkOC9jdWJldGV4dHVyZS5jLCBkbGxzL2QzZDgvZDNkOF9wcml2YXRlLmgsCisJICBkbGxzL2QzZDgvZGV2aWNlLmMsIGRsbHMvZDNkOC9kcmF3cHJpbS5jLCBkbGxzL2QzZDgvc3RhdGVibG9jay5jLAorCSAgZGxscy9kM2Q4L3N1cmZhY2UuYywgZGxscy9kM2Q4L3RleHR1cmUuYywgZGxscy9kM2Q4L3V0aWxzLmMsCisJICBkbGxzL2QzZDgvdm9sdW1ldGV4dHVyZS5jOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gZHNvdW5kIGFuZCBkM2Qgd29ya3MgYmV0dGVyIHdoZW4geDExZHJ2IGxvY2tzL3VubG9ja3MgYXJlIGNvcnJlY3QKKwktIG1vcmUgdHJhY2VzCisKKzIwMDMtMDYtMTcgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvbXN2Y3J0L2NwcC5jLCBkbGxzL21zdmNydC9tc3ZjcnQuaCwgZGxscy9tc3ZjcnQvbXN2Y3J0LnNwZWMsCisJICBkbGxzL21zdmNydGQvbXN2Y3J0ZC5zcGVjOgorCUFkZGVkIGFuIGFzc2VtYmx5IHdyYXBwZXIgdG8gcmV0cmlldmUgdGhlIHRoaXMgcG9pbnRlciBmcm9tICVlY3ggZm9yCisJX3RoaXNjYWxsIGZ1bmN0aW9ucy4KKwlGaXhlZCBzb21lIGJ1Z3MsIGFuZCBhZGRlZCBhIGZldyBtaXNzaW5nIGZ1bmN0aW9ucy4KKworCSogZGxscy9vbGUzMi9jb21wb2JqLmMsIGRsbHMvb2xlMzIvY29tcG9ial9wcml2YXRlLmgsIGRsbHMvb2xlMzIvZ2l0LmMsCisJICBkbGxzL29sZTMyL29sZXByb3h5LmM6CisJTWlrZSBIZWFybiA8bWlrZUB0aGVvcmV0aWMuY29tPgorCUltcGxlbWVudCBhIGNsYXNzIGZhY3RvcnkgZm9yIHRoZSBHbG9iYWwgSW50ZXJmYWNlIFRhYmxlLgorCisJKiBkbGxzL2NhYmluZXQvY2FiZXh0cmFjdC5jLCBkbGxzL2NhYmluZXQvY2FiaW5ldC5oLCBkbGxzL2NhYmluZXQvZmRpLmM6CisJR3JlZ29yeSBNLiBUdXJuZXIgPGdtdHVybmVyMDA3QGFtZXJpdGVjaC5uZXQ+CisJLSBtb3ZlIG1hY3JvcyBhbmQgY29uc3RhbnRzIGludG8gY2FiaW5ldC5oIHdoZXJlIHRoZXkgY2FuIGJlIHNoYXJlZAorCSAgYmV0d2VlbiBjYWJleHRyYWN0LmMgYW5kIGZkaS5jCisJLSByZW1pbmRlcnMgdG8gZWxpbWluYXRlIGdsb2JhbCB2YXJpYWJsZXMgKGZvciBtdWx0aXRocmVhZAorCSAgY29tcGF0aWJpbGl0eSkKKwktIHJlbW92ZSBzdHJ1Y3QgZmRpX2NhYjogZHVlIHRvIHRoZSBuYXR1cmUgb2YgdGhlIEZESSBBUEksIHdlIGNhbm5vdAorCSAgcHJlbG9hZCBhbGwgdGhlIGNhYmluZXRzOyB0aGlzIGFwcGVhcnMgdG8gb2J2aWF0ZSB0aGUgbmVlZCBmb3Igc3RydWN0CisJICBmZGlfY2FiCisJLSAib3BwcmVzcyIgKHRoYXQgaXMsIGRvIG5vdCBwcm9jZXNzKSBwYXJ0aWFsIGZpbGVzIHdoaWNoIHdlcmUKKwkgIGNvbnRpbnVhdGlvbnMgZnJvbSBhbm90aGVyIGNhYmluZXQKKwktIG1vcmUgdGhhbiBvbmUgcGFydGlhbCBmaWxlIGNhbiBleGlzdCBpbiBhIHNpbmdsZSBjYWJpbmV0IChob3chPykgLS0KKwkgIHNvIG1vdmUgdGhlIHBhcnRpYWwgZmlsZSBub3RpZmljYXRpb24gKGFuZCAib3BwcmVzc2lvbiIgdGhhdCBnb2VzIHdpdGgKKwkgIGl0KSBpbnRvIHRoZSBsb29wIHRoYXQgaXRlcmF0ZXMgdGhyb3VnaCBmaWxlcworCisyMDAzLTA2LTE2ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2RtdXNpYy9kbXVzaWNfbG9hZGVyLmMsIGRsbHMvZG11c2ljL2RtdXNpY19taXNjLmMsCisJICBkbGxzL2RtdXNpYy9kbXVzaWNfcGVyZm9ybWFuY2UuYywgZGxscy9kbXVzaWMvZG11c2ljX3ByaXZhdGUuaDoKKwlDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJQWxsb2NhdGUgbmVjZXNzYXJ5IGRzb3VuZCBidWZmZXJzIGZvciBzdGFuZGFyZCBhdWRpbyBwYXRocyBhbmQgZW5hYmxlCisJcmV0cmlldmFsIG9mIHRoZWlyIGludGVyZmFjZXMgdmlhIEdldE9iamVjdEluUGF0aC4KKwlGaXggYW5kIGNsZWFuIGRzb3VuZCBhbmQgZG11c2ljcyBvYmplY3RzIGFsbG9jYXRpb24gd2hlbiBpbml0aWFsaXppbmcKKwl0aGUgcGVyZm9ybWFuY2Ugb2JqZWN0LgorCVNvbWUgc3R1YnMgaW1wcm92ZW1lbnRzLgorCisJKiBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmM6IExpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJLSByZXdyb3RlIHRoZSBidWZmZXIgdG8gYnVmZmVyIGZhc3QgcGF0aCB1c2luZyBUZXh0dXJlIGVuZ2luZSAobXVjaAorCSAgZmFzdGVyIG9uIG15IE5WSURJQSBoYXJkd2FyZSkKKwktIHNtYWxsIG9wdGltaXphdGlvbnMKKworCSogZGxscy9kaW5wdXQvZGV2aWNlLmMsIGRsbHMvZGlucHV0L2RldmljZV9wcml2YXRlLmgsCisJICBkbGxzL2RpbnB1dC9kaW5wdXQuc3BlYywgZGxscy9kaW5wdXQvZGlucHV0X21haW4uYywKKwkgIGRsbHMvZGlucHV0L2RpbnB1dF9wcml2YXRlLmgsIGRsbHMvZGlucHV0L2pveXN0aWNrL2xpbnV4LmMsCisJICBkbGxzL2RpbnB1dC9qb3lzdGljay9saW51eGlucHV0LmMsIGRsbHMvZGlucHV0L2tleWJvYXJkL21haW4uYywKKwkgIGRsbHMvZGlucHV0L21vdXNlL21haW4uYywgaW5jbHVkZS9kaW5wdXQuaDoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwktIERJbnB1dCBXaWRlQ2hhciBjbGFzc2VzIHN1cHBvcnQuIFRoaXMgdGltZSBhbGwgZGlucHV0IHZlcnNpb25zIGhhdmUKKwkgIHdpZGVjaGFyIGNsYXNzZXMuCisJLSBmaXggYSBzdHVwaWQgYnVnIGluIGNhbGxiYWNrIGhhbmRsaW5nIGNhdWdodCBieSBMaW9uZWwuCisJLSBhZGQgc29tZSBmb3Jnb3R0ZW4gSUlEIG9uIGNsYXNzIGZhY3RvcnkgKGJldHRlciBpZiB3ZSB3YW50IHRvIGFjdGl2ZQorCSAgdGhlIGNvZGUpCisJLSBtYW55IGNsZWFudXBzIG9uIENPTSBNYWNyb3MgKGRvbid0IG5lZWQgQSBhbmQgVyB2YXJpYW50cyBhcyB0aGV5IGFyZQorCSAgdGhlIHNhbWUpCisKKwkqIGRsbHMvZDNkOC9zdXJmYWNlLmM6IFJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCUZpeCBBZGREaXJ0eVJlY3QgdW5jb3JyZWN0IGJlaGF2aW9yIChjcmFzaCBpbiBzb21lIGNhc2VzKS4gQmFzZWQgb24gYQorCXBhdGNoIGZyb20gUm9kZXJpY2sgQ29sZW5icmFuZGVyLgorCisJKiB3aW5lZGVmYXVsdC5yZWc6IFN5bHZhaW4gUGV0cmVvbGxlIDxzcGV0cmVvbGxlQHlhaG9vLmZyPgorCURpc3BsYXkgaWNvbnMgb2YgZXhlY3V0YWJsZXMgaW4gdGhlIE9wZW5GaWxlIGRpYWxvZyBib3hlcy4KKworCSogZGxscy9hZHZhcGkzMi9hZHZhcGkzMi5zcGVjLCBkbGxzL2FkdmFwaTMyL3NlY3VyaXR5LmMsCisJICBkbGxzL250ZGxsL250ZGxsLnNwZWMsIGRsbHMvbnRkbGwvc2VjLmMsIGluY2x1ZGUvd2lubnQuaCwKKwkgIGluY2x1ZGUvd2ludGVybmwuaDoKKwk8bWFAdGVjaG5vcHJpbnQuY2g+CisJQWRkZWQgQWRkQWNjZXNzQWxsb3dkQWNlRXgsIEFkZEFjY2Vzc0RlbmllZEFjZUV4LCBHZXRBY2xJbmZvcm1hdGlvbi4KKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLCBkbGxzL2RkcmF3L2RzdXJmYWNlL21haW4uYywKKwkgIGRsbHMvZGRyYXcvZ2xfYXBpLmgsIGRsbHMvZGRyYXcvZ2xfcHJpdmF0ZS5oLCBkbGxzL2RkcmF3L21lc2EuYzoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCS0gZml4IHNvbWUgcmVncmVzc2lvbnMKKwktIEdldERDIGRvZXMgbm90IGxvY2sgaW4gUmVhZE9ubHkgbW9kZSBhcyBpdCBsZWFkcyB0byBwcm9ibGVtcyB3aXRoCisJICBzb21lIEQzRCBvcHRpbWl6YXRpb25zCisJLSBhZGRlZCBhIGZhc3QgQmFjayA9PiBGcm9udCAvIEZyb250ID0+IEJhY2sgQmx0IGZhc3QgcGF0aAorCisJKiBkbGxzL3NldHVwYXBpL01ha2VmaWxlLmluLCBkbGxzL3NldHVwYXBpL2Rldmluc3QuYywKKwkgIGRsbHMvc2V0dXBhcGkvZGV2aW5zdDE2LmM6CisJU3RldmVuIEVkd2FyZHMgPFN0ZXZlbl9FZDQxNTNAeWFob28uY29tPgorCVNwbGl0IFdpbjE2LzMyIHNldHVwYXBpIGRldmljZSBpbnN0YWxsZXIgc3VwcG9ydC4KKworCSogZGxscy93aW5pbmV0L3VybGNhY2hlLmMsIGRsbHMvd2luaW5ldC93aW5pbmV0LnNwZWM6CisJTWlrZSBIZWFybiA8bWlrZUB0aGVvcmV0aWMuY29tPgorCVN0dWIgb3V0IFNldFVybENhY2hlRW50cnlJbmZvQS9XLgorCisJKiBkbGxzL2NvbWN0bDMyL3RyYWNrYmFyLmM6IE1pa2UgSGVhcm4gPG1pa2VAdGhlb3JldGljLmNvbT4KKwktIFVuYnJlYWsgdmVydGljYWwgdHJhY2tiYXJzCisJLSBNYWtlIGl0IG1vcmUgY2xvc2VseSByZXNlbWJsZSB0aGUgbmF0aXZlIGNvbnRyb2wKKwktIEFkZCBmb2N1cyByZWN0YW5nbGUKKwktIE1pc2MgZml4ZXMgYW5kIGNsZWFudXBzCisKKwkqIGRsbHMvc2hlbGwzMi9jb250cm9sLmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyLnNwZWM6CisJTWlrZSBIZWFybiA8bWlrZUB0aGVvcmV0aWMuY29tPgorCUFkZCBzdHVicyBmb3IgQ29udHJvbF9GaWxsQ2FjaGVfUnVuRExMIGFuc2kvdW5pY29kZSB2YXJpYW50cy4KKworCSogZGxscy9pcGhscGFwaS9pcHN0YXRzLmM6IEdlcmFsZCBQZmVpZmVyIDxwZmVpZmVyQGRiYWkudHV3aWVuLmFjLmF0PgorCVVuYnJlYWsgZ2V0VGNwVGFibGUoKSBvbiBMaW51eC1iYXNlZCBzeXN0ZW1zIGFuZCBtYWtlIGl0IHdvcmsgb24gQlNECisJYW5kIFNvbGFyaXMgYXMgd2VsbC4KKworCSogZGxscy9udGRsbC9jcml0c2VjdGlvbi5jOiBNaWtlIEhlYXJuIDxtaWtlQHRoZW9yZXRpYy5jb20+CisJQWRkIHRoZSBJRCBvZiB0aGUgYmxvY2tpbmcgdGhyZWFkIHRvIHRoZSBlcnJvciBtZXNzYWdlLgorCisJKiBkbGxzL2F2aWZpbDMyL2F2aWZpbGVfU2kucmMsIGRsbHMvYXZpZmlsMzIvcnNyYy5yYywKKwkgIGRsbHMvY29tbWRsZy9jZGxnX1NpLnJjLCBkbGxzL21zdmlkZW8vbXNybGUzMi9tc3JsZV9TaS5yYywKKwkgIGRsbHMvbXN2aWRlby9tc3JsZTMyL3JzcmMucmMsIGRsbHMvdXNlci9yZXNvdXJjZXMvdXNlcjMyLnJjLAorCSAgZGxscy91c2VyL3Jlc291cmNlcy91c2VyMzJfU2kucmMsIGRsbHMvd2luZXBzL3JzcmMucmMsCisJICBkbGxzL3dpbmVwcy93cHNfU2kucmMsIGRsbHMvd2lubW0vd2lubW1fU2kucmMsIHByb2dyYW1zL3N0YXJ0L1NpLnJjLAorCSAgcHJvZ3JhbXMvc3RhcnQvcnNyYy5yYywgcHJvZ3JhbXMvd2luaGVscC9TaS5yYzoKKwlSb2sgTWFuZGVsamMgPHJvay5tYW5kZWxqY0BnaW1iLm9yZz4KKwlVcGRhdGVkIGEgYnVuY2ggb2YgdHJhbnNsYXRpb25zIGZvciBTbG92ZW5pYW4gbGFuZ3VhZ2UuCisKKwkqIGRsbHMvbnRkbGwvbnRkbGwuc3BlYywgZGxscy9udGRsbC9wYXRoLmMsIGluY2x1ZGUvd2ludGVybmwuaDoKKwlFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwlJbXBsZW1lbnRlZDoKKwktIFJ0bERvZXNGaWxlRXhpc3RzX1UgYXMgYSBzdHViCisJLSBSdGxEb3NTZWFyY2hQYXRoX1UKKworCSogZGxscy9kZHJhdy9kM2RfcHJpdmF0ZS5oLCBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmMsCisJICBkbGxzL2RkcmF3L2RkcmF3L21haW4uYywgZGxscy9kZHJhdy9tZXNhLmMsCisJICBkbGxzL2RkcmF3L21lc2FfcHJpdmF0ZS5oOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJLSBHTCBzdGF0ZSBjaGFuZ2Ugb3B0aW1pemF0aW9ucworCS0gc29tZSBtb3JlIHByZXBhcmF0aW9ucyBmb3IgR0wtYWNjZWxlcmF0ZWQgQmx0cworCS0gYWRkZWQgZGVidWcgY29kZSB0byBjb21wdXRlIEZQUyAobmljZSB3aGVuIGFkZGluZyBvcHRpbWl6YXRpb25zKQorCisJKiBkbGxzL25ldGFwaTMyL01ha2VmaWxlLmluLCBkbGxzL25ldGFwaTMyL25ldGFwaTMyLmMsCisJICBkbGxzL25ldGFwaTMyL3drc3RhLmMsIGluY2x1ZGUvbmIzMC5oOgorCUp1YW4gTGFuZyA8anVhbl9sYW5nQHlhaG9vLmNvbT4KKwlVc2UgaXBobHBhcGkgdG8gZW51bWVyYXRlIExBTiBhZGFwdGVycy4KKwlBZGQgbmFtZXMgdG8gTmV0QklPUyB0cmFuc3BvcnRzLCBhbmQgZWxpbWluYXRlcyBsb29wYmFjayBhZGFwdGVycyBmcm9tCisJZW51bWVyYXRlZCBMQU4gYWRhcHRlcnMuCisKKwkqIGluY2x1ZGUvc3RybWlmLmg6IExpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJTWFrZSB0aGUgaGVhZGVyIGluLWxpbmUgd2l0aCBjdXJyZW50IElDT00gbmFtaW5nIGNvbnZlbnRpb25zLgorCisJKiBkbGxzL3gxMWRydi94dmlkbW9kZS5jOiA8bWlycUB6aWVtbmlhay51c3Ryb25pZS5wdy5lZHUucGw+CisJQ29ycmVjdCBtb2RlIG5yIHBhc3NlZCB0byBYMTFEUlZfWEY4NlZNX1NldEN1cnJlbnRNb2RlLgorCisJKiB3aW5lZGVmYXVsdC5yZWc6IExpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJRml4IHRoZSBGaWx0ZXJHcmFwaCBDTFNJRCBkZWNsYXJhdGlvbi4KKworCSogZGxscy9jb21tZGxnL01ha2VmaWxlLmluLCBkbGxzL2NvbW1kbGcvZmlsZWRsZy5jLAorCSAgZGxscy9jb21tZGxnL2ZpbGVkbGcuaCwgZGxscy9jb21tZGxnL2ZpbGVkbGcxNi5jOgorCVN0ZXZlbiBFZHdhcmRzIDxTdGV2ZW5fRWQ0MTUzQHlhaG9vLmNvbT4KKwlTcGxpdCBXaW4xNi8zMiBmaWxlIGRpYWxvZ3MuCisKKwkqIGRsbHMvbnRkbGwvc2lnbmFsX2kzODYuYywgaW5jbHVkZS90aHJlYWQuaDoKKwlKdWtrYSBIZWlub25lbiA8amhlaUBpa2kuZmk+CisJUmVtb3ZlIFNJR0FMUk0gaGFuZGxlci4KKwlSZXNlcnZlIFRFQiBmaWVsZCBmb3IgRFBNSSB2aXJ0dWFsIGludGVycnVwdCBmbGFnLgorCisJKiBkbGxzL3dpbmVkb3MvaW50MjEuYywgbXNkb3MvaW50MjEuYzogSnVra2EgSGVpbm9uZW4gPGpoZWlAaWtpLmZpPgorCU1pZ3JhdGUgY3JlYXRlL29wZW4gZmlsZSBmdW5jdGlvbnMgdG8gd2luZWRvcy4KKwlTb21lIGZpeGVzIGJhc2VkIG9uIHBhdGNoIGJ5IEZlcmVuYyBXYWduZXIuCisKKwkqIGRsbHMvd2luZWRvcy9kb3N2bS5jOiBKdWtrYSBIZWlub25lbiA8amhlaUBpa2kuZmk+CisJTWFrZSBET1NWTV9XYWl0IHdvcmsgaW4gcHJvdGVjdGVkIG1vZGUuCisJUmVwbGFjZSBTSE9VTERfUEVORCBtYWNybyB3aXRoIGEgZnVuY3Rpb24uCisKKwkqIGluY2x1ZGUvY29udHJvbC5oOiBMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCU1ha2UgdGhlIGhlYWRlciBpbi1saW5lIHdpdGggY3VycmVudCBJQ09NIG5hbWluZyBjb252ZW50aW9ucy4KKworMjAwMy0wNi0xNCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogcHJvZ3JhbXMvd2luZWNvbnNvbGUvY3Vyc2VzLmM6CisJRml4ZWQgV0NDVVJTRVNfSW5pdEJhY2tlbmQgcHJvdG90eXBlIGluIHRoZSBubyBjdXJzZXMgY2FzZS4KKworCSogZmlsZXMvZmlsZS5jLCBpbmNsdWRlL3dpbmUvc2VydmVyX3Byb3RvY29sLmgsIHNlcnZlci9uYW1lZF9waXBlLmMsCisJICBzZXJ2ZXIvcHJvdG9jb2wuZGVmLCBzZXJ2ZXIvdHJhY2UuYzoKKwlNYWtlIGl0IHBvc3NpYmxlIHRvIHJldHJpZXZlIGFuIGluaGVyaXRhYmxlIGhhbmRsZSBpbiBvcGVuX25hbWVkX3BpcGUKKwkoc3BvdHRlZCBieSBVd2UgQm9ubmVzKS4KKworMjAwMy0wNi0xMyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogTWFrZS5ydWxlcy5pbiwgZGxscy9NYWtlZGxsLnJ1bGVzLmluLCBkbGxzL01ha2V0ZXN0LnJ1bGVzLmluLAorCSAgZGxscy94MTFkcnYvTWFrZWZpbGUuaW4sIGxpYnMvTWFrZWxpYi5ydWxlcy5pbiwKKwkgIHByb2dyYW1zL01ha2Vwcm9nLnJ1bGVzLmluLCBwcm9ncmFtcy9hdml0b29scy9NYWtlZmlsZS5pbiwKKwkgIHNlcnZlci9NYWtlZmlsZS5pbjoKKwlQcm9wZXIgc3VwcG9ydCBmb3IgQ1BQRkxBR1MgYW5kIExERkxBR1MgKHN1Z2dlc3RlZCBieSBUb2RkIFZpZXJsaW5nKS4KKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jOiBMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCS0gZml4ZXMgdGhlIENPTE9SRklMTCBjYXNlIGZvciBmcm9udC1idWZmZXIKKwktIHNvbWUgcHJlcGFyYXRpb25zIGZvciBHTC1hY2NlbGVyYXRlZCBCbHRzCisJLSBzb21lIHNtYWxsIG9wdGltaXphdGlvbnMgaW4gdGhlIENsZWFyIGNvZGUKKworCSogZGxscy93aW5lZG9zL2ludDMxLmM6IFN5bHZhaW4gUGV0cmVvbGxlIDxzcGV0cmVvbGxlQHlhaG9vLmZyPgorCVRyYWNlIHdoaWNoIHJlYWwgbW9kZSBpbnRlcnJ1cHQgaXMgZW11bGF0ZWQuCisKKwkqIGRsbHMvbXN2aWRlby9tc3JsZTMyL21zcmxlMzIuYywgZGxscy9tc3ZpZGVvL21zcmxlMzIvbXNybGVfcHJpdmF0ZS5oOgorCU1pY2hhZWwgR/xubmV3aWcgPE1pY2hhZWxHdWVubmV3aWdAZ214LmRlPgorCS0gRml4ZWQgZW5kIGZsYWdzIHdoaWxlIGVuY29kaW5nIC0tIG9ubHkgRU9JIGluc3RlYWQgb2YgRU9MIGFuZCBFT0kuCisJLSBGaXhlZCA0LWJpdCBSTEUgZW5jb2Rpbmcgb2Yga2V5ZnJhbWVzLgorCS0gRml4ZWQgc2lnbmVkL3Vuc2lnbmVkIG1pc21hdGNoZXMuCisJLSBBZGRlZCBzb21lIG1pc3NpbmcgY29uc3Qncy4KKworCSogZGxscy9jYWJpbmV0L2ZkaS5jOiBHcmVnb3J5IE0uIFR1cm5lciA8Z210dXJuZXIwMDdAYW1lcml0ZWNoLm5ldD4KKwktIG1vc3Qgb2YgRkRJQ29weSBpcyBub3cgaW1wbGVtZW50ZWQsIGFsdGhvdWdoIHRoZSBhY3R1YWwgZGVjb21wcmVzc2lvbiBpcyBub3QuCisJLSAiY2FuIiAtPiAiZG8iCisJLSBhIG5vdmVsbGEgYWJvdXQgYSBidWcKKwktIGZpeCBzb21lIG1lbW9yeSBsZWFrcworCisJKiBkbGxzL3Jhc2FwaTMyL3Jhc2FwaTMyLnNwZWM6CisJUmVtb3ZlZCBvcmRpbmFscyB0aGF0IGRpZmZlciBiZXR3ZWVuIFdpbmRvd3MgdmVyc2lvbnMuCisKKwkqIGRsbHMvZDNkOC9kM2Q4X3ByaXZhdGUuaCwgZGxscy9kM2Q4L2RldmljZS5jLCBkbGxzL2QzZDgvc3VyZmFjZS5jLAorCSAgZGxscy9kM2Q4L3V0aWxzLmM6CisJSmFzb24gRWRtZWFkZXMgPHVzQHRoZS1lZG1lYWRlcy5kZW1vbi5jby51az4KKwlGaXggdGhlIHRleHR1cmUgb3BlcmF0aW9ucyB0byByZXNvbHZlIGdsaXRjaGVzIHNob3duIGluIFVUMjAwMyB3aGVuCisJZ2V0IHF1YWQgZGFtYWdlLgorCWNoZWNrR0xjYWxsIG11c3Qgbm90IHN1cHBseSBhIFxuIGFzIHRoYXQgaXMgc3VwcGxpZWQgYnkgaXRzCisJZXhwYW5zaW9uLgorCVBlcmZvcm1hbmNlIGZpeGVzIHRvIHNhdmUgYXBwbHlpbmcgdGhlIHNhbWUgc3RhdGVzIDYgdGltZXMgYW5kIHRvCisJcmVkdWNlIGZ1bmN0aW9uIGNhbGxzIHdoZW4gYWNjZXNzaW5nIGZyb250L2JhY2sgYnVmZmVycy4KKwlNYWtlIHRyYWNlcyBtb3JlIHJlYWRhYmxlIGJ5IG1vcmUgY29uc3RhbnRzIC0+IGVuZ2xpc2ggZGVzY3JpcHRpb25zLgorCisJKiBkbGxzL2RtdXNpYy9kbXVzaWNfbG9hZGVyLmMsIGRsbHMvZG11c2ljL2RtdXNpY19tYWluLmMsCisJICBkbGxzL2RtdXNpYy9kbXVzaWNfbWlzYy5jLCBkbGxzL2RtdXNpYy9kbXVzaWNfcGVyZm9ybWFuY2UuYywKKwkgIGRsbHMvZG11c2ljL2RtdXNpY19wcml2YXRlLmg6CisJUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJLSBhbHdheXMgdXNlIElEaXJlY3RNdXNpY1BlcmZvcm1hbmNlOEltcGwgaW5zdGVhZCBvZgorCSAgSURpcmVjdE11c2ljUGVyZm9ybWFuY2VJbXBsIChhcyB0aGUgZmlyc3QgaW5oZXJpdHMgZnJvbSB0aGUgc2Vjb25kKQorCS0gaW1wbGVtZW50IG1hbnkgTG9hZGVyLCBBdWRpb1BhdGggYW5kIFBlcmZvcm1hbmNlOCBzdHVicyAtIGZpeCB0aGUKKwkgIGNsYXNzIGZhY3RvcnkKKwktIG1vcmUgZGVidWcgdHJhY2VzCisJLSBmb3Igbm93IElEaXJlY3RNdXNpY0xvYWRlcjg6OkxvYWRPYmplY3RGcm9tRmlsZSBhbHdheXMgcmV0dXJucyBub3QKKwkgIHN1cHBvcnRlZCBmb3JtYXQKKwktIGZpeCB0aGUgSURpcmVjdE11c2ljUGVyZm9ybWFuY2U4OjpJbml0IChtYW55IGNyYXNoZXMpCisJLSBpbXBsZW1lbnRhdGlvbiBvZiBJRGlyZWN0TXVzaWNQZXJmb3JtYW5jZThJbml0QXVkaW8KKworCSogZGxscy9kaW5wdXQvZGV2aWNlLmMsIGRsbHMvZGlucHV0L2RpbnB1dF9tYWluLmMsCisJICBkbGxzL2RpbnB1dC9kaW5wdXRfcHJpdmF0ZS5oLCBkbGxzL2RpbnB1dC9qb3lzdGljay9saW51eC5jLAorCSAgZGxscy9kaW5wdXQvam95c3RpY2svbGludXhpbnB1dC5jLCBkbGxzL2RpbnB1dC9rZXlib2FyZC9tYWluLmMsCisJICBkbGxzL2RpbnB1dC9tb3VzZS9tYWluLmMsIGluY2x1ZGUvZGlucHV0Lmg6CisJQ2hyaXN0aWFuIENvc3RhIDx0aXRhbi5jb3N0YUB3YW5hZG9vLmZyPgorCU1ha2UgZGlucHV0OCBiZWhhdmlvdXIgbW9yZSBjb3JyZWN0IGZvciBtb3VzZSBhbmQga2V5Ym9hcmQuCisJRml4IHNtYWxsIGJ1ZyB3aGVuIGtleWJvYXJkIGJ1ZmZlciBvdmVyZmxvd3MuCisJVXNlIERJX09LIGluc3RlYWQgb2YgMCBmb3IgcmV0dXJuZWQgdmFsdWVzLgorCisJKiBkbGxzL2RkcmF3L2QzZGV4ZWN1dGVidWZmZXIuYzoKKwlDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJRml4IG1hdHJpeCBtdWx0aXBsaWNhdGlvbi4KKworCSogZGxscy9jYWJpbmV0L2NhYmluZXQuaDogR3JlZ29yeSBNLiBUdXJuZXIgPGdtdHVybmVyMDA3QGFtZXJpdGVjaC5uZXQ+CisJRml4IHNvbWUgdWdsaWVzLgorCisJKiBkbGxzL3gxMWRydi9rZXlib2FyZC5jOiBTeWx2YWluIFBldHJlb2xsZSA8c3BldHJlb2xsZUB5YWhvby5mcj4KKwlBZGRlZCBFdXJvIGFuZCBhbnRpcXVvdGUgdG8gdGhlIEZyZW5jaCBrZXlib2FyZCBsYXlvdXQuCisKKwkqIGRsbHMvZDNkOC9kaXJlY3R4LmM6IEphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJV2hlbiBlbXVsYXRpbmcgZnVsbHNjcmVlbiBpdCBoZWxwcyB0byBub3QgYWxsb2NhdGUgc3BhY2UgZm9yIG1lbnUgYmFycworCWFuZCBib3JkZXJzLiBNYWtlIHRoaXMgd2luZG93IGEgcG9wdXAgd2luZG93LgorCisJKiBkbGxzL3Jhc2FwaTMyL3Jhc2FwaTMyLnNwZWMsIGluY2x1ZGUvcmFzLmg6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQWRkIHN0dWJzIGZvciBSYXNEZWxldGVTdWJFbnRyeSogKG5ldyBpbiBXaW5NZS9XaW5YUCkuCisJQWRkIHByb3RvdHlwZXMgZm9yIFJhc0RlbGV0ZUVudHJ5KiBhbmQgUmFzRGVsZXRlU3ViRW50cnkqIGluIHJhcy5oLgorCisJKiBkbGxzL2QzZDgvTWFrZWZpbGUuaW4sIGRsbHMvZDNkOC9kM2Q4X3ByaXZhdGUuaCwKKwkgIGRsbHMvZDNkOC9kM2Rjb3JlX2dsLmgsIGRsbHMvZDNkOC9kZXZpY2UuYywgZGxscy9kM2Q4L2RyYXdwcmltLmMsCisJICBkbGxzL2QzZDgvc2hhZGVyLmMsIGRsbHMvZDNkOC9zdXJmYWNlLmMsIGRsbHMvZDNkOC91dGlscy5jLAorCSAgZGxscy9kM2Q4L3ZzaGFkZXJkZWNsYXJhdGlvbi5jOgorCUphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJTWFrZSB0aGUgZml4ZWQgZnVuY3Rpb24gcGlwZWxpbmUgc3VwcG9ydCBtdWx0aXBsZSBzdHJlYW1zIGZvciBjcmVhdGVkCisJdmVydGV4IHNoYWRlcnMgd2l0aCBubyBmdW5jdGlvbiBzdXBwbGllZC4gQWxzbyBzcGxpdCBkb3duIGRyYXcKKwlwcmltaXRpdmUgYWxvbmcgdGhlIGxpbmVzIG9mIHRoZSBkM2Rjb3JlIHJlcXVpcmVtZW50cyBhbmQgcHV0IGluIHNvbWUKKwlkaWFnbm9zdGljIGFpZHMuCisKKwkqIGRsbHMvY29tbWRsZy9NYWtlZmlsZS5pbiwgZGxscy9jb21tZGxnL2NvbG9yZGxnLmMsCisJICBkbGxzL2NvbW1kbGcvY29sb3JkbGcuaCwgZGxscy9jb21tZGxnL2NvbG9yZGxnMTYuYzoKKwlTdGV2ZW4gRWR3YXJkcyA8U3RldmVuX0VkNDE1M0B5YWhvby5jb20+CisJU3BsaXQgV2luMTYvMzIgY29sb3IgZGlhbG9nIHN1cHBvcnQuCisJU3VwcG9ydGluZyBjb21waWxpbmcgb3V0IDE2IGJpdCBmaW5kIGRpYWxvZyBzdXBwb3J0LgorCisJKiBpbmNsdWRlL3dpbnNvY2suaDogWW9yaWNrIEhhcmR5IDx5aEBtZXRyb3dlYi5jby56YT4KKwlJbmNsdWRlIHRpbWUuaCBpbnN0ZWFkIG9mIHN5cy90aW1lLmguCisKKwkqIGRsbHMvcXVhcnR6L01ha2VmaWxlLmluLCBkbGxzL3F1YXJ0ei9maWx0ZXJncmFwaC5jLAorCSAgZGxscy9xdWFydHovbWFpbi5jLCBkbGxzL3F1YXJ0ei9xdWFydHpfcHJpdmF0ZS5oLAorCSAgaW5jbHVkZS9NYWtlZmlsZS5pbiwgaW5jbHVkZS9jb250cm9sLmgsIGluY2x1ZGUvZHNob3cuaCwKKwkgIGluY2x1ZGUvc3RybWlmLmgsIGluY2x1ZGUvdXVpZHMuaCwgd2luZWRlZmF1bHQucmVnOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJU3R1YmJlZCBzb21lIGludGVyZmFjZXMgZm9yIHRoZSBGaWx0ZXJHcmFwaCBDTFNJRC4KKworCSogZGxscy93aW5lZG9zL2ludDIxLmMsIG1zZG9zL2ludDIxLmM6IEp1a2thIEhlaW5vbmVuIDxqaGVpQGlraS5maT4KKwlNb3ZlIGdldCBjdXJyZW50IGRpcmVjdG9yeSBhbmQgc2V0IGN1cnJlbnQgZGlyZWN0b3J5IGludDIxCisJc3ViZnVuY3Rpb25zIGludG8gd2luZWRvcy4gRml4IHF1aXRlIGEgZmV3IGJ1Z3MgaW4gdGhlIGltcGxlbWVudGF0aW9uCisJb2YgdGhlc2UgZnVuY3Rpb25zLgorCisJKiBkbGxzL2NhYmluZXQvY2FiaW5ldC5oLCBkbGxzL2NhYmluZXQvZmRpLmM6CisJR3JlZ29yeSBNLiBUdXJuZXIgPGdtdHVybmVyMDA3QGFtZXJpdGVjaC5uZXQ+CisJLSBpbXBsZW1lbnQgRkRJe0NyZWF0ZSxEZXN0cm95LElzQ2FiaW5ldH0KKwktIGZpeCBhIHR5cG8KKwktIGR1cGxpY2F0ZSBhIGJ1ZworCS0gc29tZSBibGF0aGVyaW5nIGFib3V0IGNvZGUgZHVwbGljYXRpb24KKwktIGNoYW5nZSBmZGkuYyBpbmRlbnRhdGlvbiB0byBiZSBjb25zaXN0ZW50IHdpdGggY2FiZXh0cmFjdC5jCisKKwkqIGRsbHMvb2xlYXV0MzIvc2FmZWFycmF5LmMsIGRsbHMvb2xlYXV0MzIvdGVzdHMvc2FmZWFycmF5LmM6CisJTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJRml4ZWQgaW5kZXggaGFuZGxpbmcgZm9yIG11bHRpIGRpbWVuc2lvbmFsIGFycmF5cy4KKworCSogQlVHUzogVG9tIFdpY2tsaW5lIDx0d2lja2xpbmVAc2t5YmVzdC5jb20+CisJLSBjb3NtZXRpYyBmaXhlcworCS0gcmVtb3ZlIG9ic29sZXRlIGxpbmsKKworCSogd2luZWRlZmF1bHQucmVnOiBTeWx2YWluIFBldHJlb2xsZSA8c3BldHJlb2xsZUB5YWhvby5mcj4KKwlTaG93IHRoYXQgVENQL0lQIGlzIGluc3RhbGxlZCB0byB3aW5kb3dzIGFwcHMsIGxpa2Ugd2luaXBjZmcuCisKKwkqIGRsbHMvbnRkbGwvY2Ryb20uYywgaW5jbHVkZS9maWxlLmgsIGluY2x1ZGUvbnRkZHNjc2kuaCwKKwkgIHdpbjMyL2RldmljZS5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCUFkZGVkIHN1cHBvcnQgZm9yIG92ZXJsYXBwZWQgaW9jdGwgcmVxdWVzdHMgKGFuZCBhIGZldyBvdGhlcgorCWNvc21ldGljcykuCisKKwkqIHByb2dyYW1zL3dpbmVjb25zb2xlL2N1cnNlcy5jLCBwcm9ncmFtcy93aW5lY29uc29sZS91c2VyLmMsCisJICBwcm9ncmFtcy93aW5lY29uc29sZS93aW5lY29uX3ByaXZhdGUuaCwKKwkgIHByb2dyYW1zL3dpbmVjb25zb2xlL3dpbmVjb25zb2xlLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJSWYgKG4pY3Vyc2VzIHdhc24ndCBhdmFpbGFibGUgYXQgY29tcGlsZSB0aW1lOgorCS0gcHJpbnQgc2Vuc2libGUgaW5mb3JtYXRpb24KKwktIGZhbGwgYmFjayB0byB1c2VyIGJhY2tlbmQKKworCSogZGxscy9kaW5wdXQvZGV2aWNlLmM6IFBhdWwgQmFpbiA8cHJiYWluQGVzc2V4LmFjLnVrPgorCVB1dCBJSURfSURpcmVjdElucHV0RGV2aWNlMkEgYmFjayBpbgorCUlEaXJlY3RJbnB1dERldmljZTJBSW1wbF9RdWVyeUludGVyZmFjZS4KKworCSogZGxscy9kZHJhdy9kc3VyZmFjZS9tYWluLmM6IExpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJQmUgbW9yZSBzdHJpbmdlbnQgaW4gdGhlICdMb2NrJyBpbnZhbGlkIFJFQ1QgY2hlY2suCisKKwkqIGRsbHMvb3BlbmdsMzIvbWFrZV9vcGVuZ2wsIGRsbHMvb3BlbmdsMzIvb3BlbmdsX2V4dC5jOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJVXBncmFkZSBPcGVuR0wgdGh1bmtzIHdpdGggbGF0ZXN0IHZlcnNpb24gb2YgT3BlbkdMIGV4dGVuc2lvbgorCXJlZ2lzdHJ5LgorCisJKiBkbGxzL2NvbWN0bDMyL3Rvb2xiYXIuYzogUm9iZXJ0IFNoZWFybWFuIDxSLkouU2hlYXJtYW5Ad2Fyd2ljay5hYy51az4KKwktIE1ha2UgYnV0dG9uIHRleHQgY2VudHJlIGNvcnJlY3RseSB3aGVuIGRyb3Bkb3duIGFycm93IGlzIHByZXNlbnQKKwktIENlbnRyZSBkcm9wZG93biBhcnJvdworCisJKiBkbGxzL3BzYXBpL3BzYXBpLnNwZWMsIGRsbHMvc2hkb2N2dy9zaGRvY3Z3LnNwZWMsCisJICBkbGxzL3dpbnRydXN0L3dpbnRydXN0LnNwZWM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQWRkIHN0dWJzIGZvciBzb21lIG5ldyBXaW5YUCBBUElzLgorCisJKiBkbGxzL3VybG1vbi91cmxtb24uc3BlYywgaW5jbHVkZS91cmxtb24uaDoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlBZGQgYSBzdHViIGZvciBDb21wYXJlU2VjdXJpdHlJZHMgKG5ldyBpbiBXaW5YUCkuCisKKwkqIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21lc2EuYzogTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwlGaXggdGhlIEJMVCBDT0xPUl9GSUxMIGNhc2UuCisKKwkqIGRsbHMvd2luZWRvcy9NYWtlZmlsZS5pbiwgZGxscy93aW5lZG9zL2Rvc3ZtLmMsIGRsbHMvd2luZWRvcy90aW1lci5jOgorCUp1a2thIEhlaW5vbmVuIDxqaGVpQGlraS5maT4KKwlTcGxpdCB0aW1lciBjb2RlIGludG8gc2VwYXJhdGUgc291cmNlIGZpbGUuCisJU3RvcCB1c2luZyBTSUdBTFJNIGZvciB0aW1lcnMuCisKKwkqIGRsbHMvY2FiaW5ldC9jYWJleHRyYWN0LmMsIGRsbHMvY2FiaW5ldC9jYWJpbmV0Lmg6CisJR3JlZ29yeSBNLiBUdXJuZXIgPGdtdHVybmVyMDA3QGFtZXJpdGVjaC5uZXQ+CisJLSBwYXJhbm9pYTogZWxpbWluYXRlIHNvbWUgZ2xvYmFsIHZhcmlhYmxlcworCS0gYmV0dGVyIHJlbWluZGVyIG9uIGhvdyB0byBmaXggbWVtb3J5IGxlYWtzCisKKzIwMDMtMDYtMDcgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvZG11c2ljL2RtdXNpYy5jLCBkbGxzL2RtdXNpYy9kbXVzaWNfaW5zdHJ1bWVudC5jLAorCSAgZGxscy9kbXVzaWMvZG11c2ljX2xvYWRlci5jLCBkbGxzL2RtdXNpYy9kbXVzaWNfbWFpbi5jLAorCSAgZGxscy9kbXVzaWMvZG11c2ljX21pc2MuYywgZGxscy9kbXVzaWMvZG11c2ljX3BlcmZvcm1hbmNlLmMsCisJICBkbGxzL2RtdXNpYy9kbXVzaWNfcGx1Z2lucy5jLCBkbGxzL2RtdXNpYy9kbXVzaWNfcG9ydC5jLAorCSAgZGxscy9kbXVzaWMvZG11c2ljX3ByaXZhdGUuaCwgZGxscy9kbXVzaWMvZG11c2ljX3NlZ21lbnQuYywKKwkgIGRsbHMvZG11c2ljL2RtdXNpY19zdHlsZS5jLCBkbGxzL2RtdXNpYy9kbXVzaWNfc3ludGguYzoKKwlSb2sgTWFuZGVsamMgPHJvay5tYW5kZWxqY0BnaW1iLm9yZz4KKwktIGFkZGVkIGRlYnVnCisJLSBpbXBsZW1lbnRlZCBmYWtlIG1pZGkgJiBwZXJmb3JtYW5jZSBjaGFubmVscworCS0gaW1wbGVtZW50ZWQgc29tZSBJRGlyZWN0TXVzaWMqOCogZnVuY3Rpb25zIHdoZXJlIElEaXJlY3RNdXNpYyoKKwkgIGVxdWl2YWxlbnQgZXhpc3RzCisJLSBJRGlyZWN0TXVzaWMqOCBpbnRlcmZhY2VzIGNhbiBub3cgYmUgb2J0YWluZWQgZnJvbSBJRGlyZWN0TXVzaWMKKwkgIGludGVyZmFjZXMgKFF1ZXJ5SW50ZXJmYWNlLi4uKQorCS0gY2hhbm5lbC1yZWxhdGVkIHBlcmZvcm1hbmNlIGZ1bmN0aW9ucyBhcmUga2luZGEgaW1wbGVtZW50ZWQgbm93CisKKwkqIGdyYXBoaWNzL3BhaW50aW5nLmM6IEFyamVuIE5pZW5odWlzIDxhcmplbkBuaWVuaHVpc2JlaGVlci5ubD4KKwlOZXcgaW1wbGVtZW50YXRpb24gb2YgR2RpR3JhZGllbnRGaWxsIHVzaW5nIGludGVnZXIgbWF0aC4KKworCSogZGxscy9kaW5wdXQvbW91c2UvbWFpbi5jOiBDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJRml4IFNldERhdGFGb3JtYXQgYW5kIGltcGxlbWVudCBHZXREZXZpY2VJbmZvIGZvciBtb3VzZSBkZXZpY2UuCisKKwkqIGRvY3VtZW50YXRpb24vc2FtcGxlcy9jb25maWc6IE1pa2UgSGVhcm4gPG1pa2VAdGhlb3JldGljLmNvbT4KKwlBZGQgYSBkcml2ZSBtYXBwaW5nIGZvciByb290IHRvIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZmlsZS4KKworCSogdG9vbHMvd2luZWluc3RhbGw6IE1pa2UgSGVhcm4gPG1pa2VAdGhlb3JldGljLmNvbT4KKwlDaGVjayBmb3IgL2xpYi90bHMgZGlyZWN0b3J5IGZvciBSZWQgSGF0IDkuCisKKwkqIGRsbHMvd2luc29jay9zb2NrZXQuYzoKKwlLZXN0ZXIgTWFkZG9jayA8Q2hyaXN0b3BoZXIuTWFkZG9jay4xQHVuaS5tYXNzZXkuYWMubno+CisJQ2hlY2sgZm9yIGEgbnVsbCBwb2ludGVyIGluIFdTX3NldHNvY2tvcHQuCisKKwkqIGRsbHMvdXNlci9kZGUvbWlzYy5jOiBNaWtlIEhlYXJuIDxtaWtlQHRoZW9yZXRpYy5jb20+CisJUHJvdGVjdCBXRE1MX0dldENvbnYgYWdhaW5zdCBudWxsIGhhbmRsZXMuCisKKwkqIGRsbHMvY29tbWRsZy9NYWtlZmlsZS5pbiwgZGxscy9jb21tZGxnL2ZvbnRkbGcuYywKKwkgIGRsbHMvY29tbWRsZy9mb250ZGxnLmgsIGRsbHMvY29tbWRsZy9mb250ZGxnMTYuYzoKKwlTdGV2ZW4gRWR3YXJkcyA8U3RldmVuX0VkNDE1M0B5YWhvby5jb20+CisJU2VwYXJhdGUgV2luMTYgYW5kIFdpbjMyIGZvbnQgZGlhbG9nIHN1cHBvcnQuCisKKwkqIGRsbHMvbnRkbGwvc2lnbmFsX2kzODYuYzogRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJQ29ycmVjdGx5IGNvbnZlcnQgaW50byBFWENFUFRJT05fUkVDT1JEIFNJR1RSQVBzIHJlY2VpdmVkIGZyb20KKwlEZWJ1Z0JyZWFrUHJvY2Vzcy4KKworMjAwMy0wNi0wNiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy93aW5pbmV0L2ludGVybmV0LmMsIGRsbHMvd2luaW5ldC93aW5pbmV0LnNwZWM6CisJU3lsdmFpbiBQZXRyZW9sbGUgPHNwZXRyZW9sbGVAeWFob28uZnI+CisJSW1wbGVtZW50ZWQgd2luaW5ldC5JbnRlcm5ldEdldENvbm5lY3RlZFN0YXRlRXguCisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlBbGlnbiB0aGUgdGV4dCB2ZXJ0aWNhbGx5IGluIHNpbmdsZSBsaW5lIGxhYmVscyAoc3BvdHRlZCBieSBCaUdnVW4pLgorCisJKiBkbGxzL2QzZDgvZDNkOF9wcml2YXRlLmgsIGRsbHMvZDNkOC9kM2Rjb3JlX2dsLmgsIGRsbHMvZDNkOC9kZXZpY2UuYywKKwkgIGRsbHMvZDNkOC9kaXJlY3R4LmMsIGRsbHMvZDNkOC91dGlscy5jOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCUZpeGVkIGNvbXBpbGF0aW9uIHByb2JsZW1zLgorCisJKiBkbGxzL21zdmNydC9sb2NhbGUuYywgZGxscy9tc3ZjcnQvbXN2Y3J0LnNwZWM6CisJTWFydGluIEZ1Y2hzIDxtYXJ0aW4tZnVjaHNAZ214Lm5ldD4KKwlTdHViIGltcGxlbWVudGF0aW9uIGZvciBfR2V0dG5hbWVzLgorCisJKiBkbGxzL2tlcm5lbC9zeW5jLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBbHdheXMgcmV0dXJuIEZBTFNFIHdoZW4gZG9pbmcgYW4gb3ZlcmxhcHBlZCBDb25uZWN0TmFtZWRQaXBlLgorCisJKiBvYmplY3RzL3RleHQuYzogSW5nbWFyIFRoaWVtYW5uIDxpbmdtYXJAZ2VmYXMuY29tPgorCUltcGxlbWVudGVkIFBvbHlUZXh0T3V0QS9Qb2x5VGV4dE91dFcuCisKKwkqIGRsbHMvc2hlbGwzMi9icnNmb2xkZXIuYywgaW5jbHVkZS9zaGxvYmouaDoKKwlSb2JlcnQgU2hlYXJtYW4gPFIuSi5TaGVhcm1hbkB3YXJ3aWNrLmFjLnVrPgorCS0gU3VwcG9ydCBhIGZldyBtb3JlIGZsYWdzCisJLSBSZXdyaXRlIHRoZSBlbnVtZXJhdGlvbiBsb29wCisJLSBTdXBwb3J0IG5vbi1kZXNrdG9wIHJvb3QKKwktIFNpbGVuY2UgaGFybWxlc3MgYW5kIGltcGxlbWVudGVkIGRlYnVnIG1lc3NhZ2VzCisKKwkqIGRsbHMvd2luZWRvcy9kb3NleGUuaCwgZGxscy93aW5lZG9zL2Rvc3ZtLmM6CisJSnVra2EgSGVpbm9uZW4gPGpoZWlAaWtpLmZpPgorCVBlbmRpbmcgdGltZXIgaW50ZXJydXB0cyBubyBsb25nZXIgZGVhZGxvY2sgRE9TVk1fV2FpdC4KKwlSZXN0b3JlZCBpbnRlcnJ1cHQgcHJpb3JpdGllcyB0byBjb3JyZWN0IHZhbHVlcy4KKworMjAwMy0wNi0wNCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLCBkbGxzL2RkcmF3L21lc2EuYywKKwkgIGRsbHMvZGRyYXcvbWVzYV9wcml2YXRlLmg6CisJTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwktIGZpeCB0aGUgdGV4dHVyZSB1cGxvYWQgY29kZSB3aGVuIFJFQ1QgaXMgYWN0dWFsbHkgdXNlZAorCS0gb3B0aW1pemUgRkIgTG9ja3MgLyBVbmxvY2tzIHdoZW4gUkVDVHMgYXJlIHVzZWQKKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWFpbi5jLCBkbGxzL2RkcmF3L2QzZHZpZXdwb3J0LmM6CisJTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwktIFZpZXdwb3J0IGhhY2sgdG8gZ2V0IHNvbWUgb2xkIEQzRDEgZ2FtZXMgdG8gd29yaworCS0gVFJBQ0VpbmcgZml4CisKKwkqIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21lc2EuYywgZGxscy9kZHJhdy9tZXNhLmM6CisJTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwktIHNtYWxsIFRSQUNFaW5nIGZpeAorCS0gZml4IGJ1ZyBpbiB0ZXh0dXJlIHVwbG9hZCAoSSB3b25kZXIgaG93IEkgbWlzc2VkIHRoaXMgOi0vICkKKwktIGltcHJvdmUgdGhlIEQzRDEvMiB0ZXh0dXJlIG1hcHBpbmcgbW9kZXMKKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLCBkbGxzL2RkcmF3L2QzZGxpZ2h0LmMsCisJICBkbGxzL2RkcmF3L2QzZHRleHR1cmUuYywgZGxscy9kZHJhdy9tZXNhLmM6CisJTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwktIGZpeCAoc3R1cGlkKSByZWdyZXNzaW9ucyBpbnRyb2R1Y2VkIGJ5IGxhc3Qgc2VyaWVzIG9mIHBhdGNoCisJLSAyNCBicHAgaGFuZGxpbmcgZm9yIGxvY2sgLyB1bmxvY2sgY29kZQorCS0gc29tZSBiZXR0ZXIgY2hlY2tzIGZvciBBbHBoYVBpeGVsIHZhbHVlCisJLSBiZXR0ZXIgVFJBQ0VpbmcgdG8gYmV0dGVyIGNhdGNoIHRocmVhZGluZyBwcm9ibGVtcworCisJKiBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmMsIGRsbHMvZGRyYXcvZDNkdGV4dHVyZS5jLAorCSAgZGxscy9kZHJhdy9tZXNhX3ByaXZhdGUuaDoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCS0gc29tZSBHTCBjcml0aWNhbCBzZWN0aW9uIGZpeGVzCisJLSBvbmx5IGJpbmQgdGV4dHVyZXMgYXQgc3RhcnQgb2YgcmVuZGVyaW5nCisJLSBvcHRpbWl6ZWQgdGhlIHRleHR1cmUgcGFyYW1ldGVyIGNvZGUKKwktIG9wdGltaXplIG9mIHRoZSAnZGlydHkgY2hlY2tpbmcgY29kZScgZm9yIG1pcG1hcHBpbmcKKwktIGhhbmRsZXMgdGhlIE1BWE1JUExFVkVMIHRleHR1cmUgcGFyYW1ldGVyCisKKwkqIGRsbHMvZGRyYXcvZDNkX3ByaXZhdGUuaCwgZGxscy9kZHJhdy9kM2RleGVjdXRlYnVmZmVyLmMsCisJICBkbGxzL2RkcmF3L2QzZGxpZ2h0LmMsIGRsbHMvZGRyYXcvZDNkbWF0ZXJpYWwuYywKKwkgIGRsbHMvZGRyYXcvZDNkdGV4dHVyZS5jLCBkbGxzL2RkcmF3L2QzZHZlcnRleGJ1ZmZlci5jLAorCSAgZGxscy9kZHJhdy9kM2R2aWV3cG9ydC5jLCBkbGxzL2RkcmF3L2RkcmF3X3ByaXZhdGUuaCwKKwkgIGRsbHMvZGRyYXcvbWVzYS5jLCBkbGxzL2RkcmF3L21lc2FfcHJpdmF0ZS5oLAorCSAgZGxscy9kZHJhdy9kM2RkZXZpY2UvbWFpbi5jLCBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmMsCisJICBkbGxzL2RkcmF3L2RkcmF3L21haW4uYywgZGxscy9kZHJhdy9kaXJlY3QzZC9tYWluLmMsCisJICBkbGxzL2RkcmF3L2RpcmVjdDNkL21haW4uaCwgZGxscy9kZHJhdy9kaXJlY3QzZC9tZXNhLmMsCisJICBkbGxzL2RkcmF3L2RzdXJmYWNlL2Zha2V6YnVmZmVyLmMsIGRsbHMvZGRyYXcvZHN1cmZhY2UvbWFpbi5jOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJLSBwcm9wZXIgKHRlc3RlZCBvbiBXaW4ySykgcmVmZXJlbmNlIGNvdW50aW5nIGZvciBEaXJlY3QzRCBvYmplY3QKKwktIGZpeCBvbmUgY2FzZSBvZiByZWZlcmVuY2UgY291bnRpbmcgb24gdGV4dHVyZXMKKwktIGZpeCBzdHVwaWQgYnVnIGluIHRleHR1cmUgdXBsb2FkIGNvZGUKKwktIHlldCBhbm90aGVyIHRleHR1cmUgZW51bWVyYXRpb24gcmVvcmRlcmluZworCisJKiBkbGxzL2RkcmF3L2QzZHRleHR1cmUuYzogTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwlGaXhlZCBhIGJ1ZyBpbiB0aGUgRnJhbWVCdWZmZXIgPT4gVGV4dHVyZSBibGl0cy4KKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLCBkbGxzL2RkcmF3L2QzZHRleHR1cmUuYywKKwkgIGRsbHMvZGRyYXcvbWVzYS5jLCBkbGxzL2RkcmF3L21lc2FfcHJpdmF0ZS5oOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJLSBhZGRlZCBSRUNUIHN1cHBvcnQgdG8gdGhlIHRleHR1cmUgdXBsb2FkIGNvZGUKKwktIHVzZSB0aGUgY29tbW9uIGNvZGUgZm9yIHRoZSBGQiBVbmxvY2sgY29kZQorCisJKiBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmMsIGRsbHMvZGRyYXcvZDNkdGV4dHVyZS5jLAorCSAgZGxscy9kZHJhdy9tZXNhLmMsIGRsbHMvZGRyYXcvbWVzYV9wcml2YXRlLmg6CisJTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwktIHNvbWUgY2xlYW4tdXBzIChleHRlbnNpb24gY29kZSB0byBiZSBhZGRlZCBzb29uKQorCS0gc29tZSBpbnRlcmZhY2UgY2hhbmdlcyBmb3IgZnV0dXJlIHJldXNlIGZvciBCbHQgLyBMb2NrIGNvZGUKKwktIGZpeGVkIHNvbWUgUGl0Y2ggcHJvYmxlbXMgaW4gdGV4dHVyZSB1cGxvYWRzIChtb3N0bHkgZm9yICdzbWFsbCcKKwkgIG1pcC1tYXBwaW5nIGxldmVscykKKworCSogZGxscy9kZHJhdy9kM2R0ZXh0dXJlLmMsIGRsbHMvZGRyYXcvbWVzYS5jLAorCSAgZGxscy9kZHJhdy9tZXNhX3ByaXZhdGUuaDoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCVJlZmFjdG9yaW5nIG9mIHRoZSB0ZXh0dXJlIHVwbG9hZCBjb2RlLgorCisJKiBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmM6IExpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJRml4IHRleHR1cmUgcGFyYW1ldGVycyBoYW5kbGluZyBvbiB0ZXh0dXJlIGNoYW5nZS4KKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLCBkbGxzL2RkcmF3L21lc2EuYzoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCS0gcmVtb3ZlIHNvbWUgZXh0cmFuZW91cyBzYXZpbmcgb2YgdGhlIHJlYWQgYnVmZmVyIHNldHRpbmdzCisJLSBjbGVhbmVkLXVwIHRoZSBHTCAvIGRldmljZSBjcml0aWNhbCBzZWN0aW9uIGhhbmRsaW5nCisKKwkqIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21lc2EuYywgZGxscy9kZHJhdy9kM2RleGVjdXRlYnVmZmVyLmM6CisJTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwktIHByb3RlY3Qgdmlld3BvcnQgc2V0dGluZyB3aXRoIEdMIGxvY2sKKwktIG5vIG5lZWQgYW55bW9yZSB0byBmbHVzaCB0byBGQiBvbiBleGVjdXRlIGJ1ZmZlciBjYWxsaW5nCisKKwkqIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21lc2EuYywgZGxscy9kZHJhdy9kM2R0ZXh0dXJlLmM6CisJTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwlTb21lIHRocmVhZGluZyBmaXhlcyAocHJldmVudHMgc29tZSBkZWFkLWxvY2tzKS4KKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLCBkbGxzL2RkcmF3L2QzZHRleHR1cmUuYywKKwkgIGRsbHMvZGRyYXcvZ2xfYXBpLmgsIGRsbHMvZGRyYXcvZ2xfcHJpdmF0ZS5oLAorCSAgZGxscy9kZHJhdy9tZXNhX3ByaXZhdGUuaDoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCS0gaW1wbGVtZW50IEZCID0+IFRleHR1cmUgYmxpdHMKKwktIGZpeCBjb21waWxhdGlvbiBvbiBub24tcmVjZW50IGdsZXh0Lmggc3lzdGVtcworCisJKiBkbGxzL2QzZDgvYmFzZXRleHR1cmUuYywgZGxscy9kM2Q4L2N1YmV0ZXh0dXJlLmMsCisJICBkbGxzL2QzZDgvZDNkOF9wcml2YXRlLmgsIGRsbHMvZDNkOC9kZXZpY2UuYywgZGxscy9kM2Q4L2RpcmVjdHguYywKKwkgIGRsbHMvZDNkOC9zdXJmYWNlLmMsIGRsbHMvZDNkOC90ZXh0dXJlLmMsIGRsbHMvZDNkOC92b2x1bWUuYywKKwkgIGRsbHMvZDNkOC92b2x1bWV0ZXh0dXJlLmM6CisJUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJLSBjbGVhbmluZyBvZiB2b2x1bWUuYy92b2x1bWV0ZXh0dXJlLmMgYXMgZG9uZSBwcmV2aW91c2x5IGZvcgorCSAgc3VyZmFjZS5jLyp0ZXh0dXJlLmMgKHdpdGggYWRkIG9mIGxvY2thYmxlLCBsb2NrZWQgYW5kIERpcnR5IGZsYWdzKQorCS0gYWRkIG9mIGRpcnR5UmVjdC9kaXJ0eUJveCBmb3IgYmV0dGVyIGRpcnRpZmljYXRpb24gbWFuYWdlbWVudCAobm90CisJICB1c2VkIHlldCwgYnV0IGh1Z2Ugb3B0aW1pc2F0aW9uIGNhbiBiZSBwb3NzaWJsZSBub3cpCisJLSBmaXggc29tZSBkZWJ1ZyB0cmFjZXMgKHdlbGwgaXQncyBiZXR0ZXIgdG8gdXNlIGRlYnVnX2QzZHBvb2wpCisJLSBmaXggc29tZSBzdHVwaWQgcmVncmVzc2lvbiBvbiBwb2ludCBwYXJhbWV0ZXJzIChmb3Jnb3QgdG8gY2hlY2sKKwkgIGV4dGVuc2lvbiBvbiBmaWxsY2FwcykKKworCSogZGxscy9kM2Q4L2QzZDhfcHJpdmF0ZS5oLCBkbGxzL2QzZDgvZDNkY29yZV9nbC5oLCBkbGxzL2QzZDgvZGV2aWNlLmMsCisJICBkbGxzL2QzZDgvZGlyZWN0eC5jOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gYWRkIGEgbmV3IHByaXZhdGUgaGVhZGVyIGQzZGNvcmVfZ2wuaCB0aGF0IGRlY2xhcmVzIG5lZWRlZCBvcGVuZ2wKKwkgIGRlZmluZXMgYW5kIHRoZSBjYXBzIGRlZmluZXMKKwktIGNsZWFudXAgb2YgZGV2aWNlLmMgdXNpbmcgdGhlIGNhcHMgZGVmaW5lcyAoYXZvaWQgdGhlICNpZmRlZgorCSAgbmlndGhtYXJlKQorCS0gYWRkIHtTZXQsR2V0fUdhbW1hUmFtcCBzdXBwb3J0CisKKwkqIGRsbHMvZDNkOC9kM2Q4X3ByaXZhdGUuaCwgZGxscy9kM2Q4L2RldmljZS5jLCBkbGxzL2QzZDgvZGlyZWN0eC5jLAorCSAgZGxscy9kM2Q4L3N1cmZhY2UuYywgZGxscy9kM2Q4L3N3YXBjaGFpbi5jOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gc29tZSBjbGVhbnVwIGFuZCB3YXJuaW5nIGZpeGVzCisJLSBzcGxpdCBvZiBDcmVhdGVEZXZpY2UgZ2wvZ3hsIGRldGVjdGlvbiBjb2RlIGludG8gRmlsbEdMQ2FwcworCS0gaW1wbGVtZW50YXRpb24gb2YgcmVzb2x1dGlvbiBjaGFuZ2UgKHVzaW5nIENoYW5nZURpc3BsYXlTZXR0aW5ncykKKwkgIGJ1dCBkZXNhY3RpdmVkIGFzIENoYW5nZURpc3BsYXlTZXR0aW5ncyBkb24ndCBzZWVtIHRvIHdvcmsgd2VsbAorCS0gYmVnaW4gb2Ygc3dhcCBjaGFpbiBzdXBwb3J0IChub3cgbmVlZCB0byBzcGxpdC9jbGVhbgorCSAgZ3hscGJ1ZmZlci9nbHhwaXhtYXAgY29kZSBmb3Igc3dhcCBjaGFpbiB1c2UpCisKKwkqIGRsbHMvZDNkOC9zdXJmYWNlLmM6IEphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJRml4IHRoZSBnbFJlYWQgY2FsbCB3aGVuIHBSZWN0ICE9IE5VTEwsIHJlc29sdmUgdGhlIGZpbGUgZm9ybWF0IG9mIHRoZQorCXNhdmVkIHNuYXBzaG90IGNvcnJlY3RseS4KKworCSogZGxscy9kM2Q4L3N1cmZhY2UuYzogUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJLSBmaXggYW5vdGhlciB0aW1lIHRoZSBzdHVwaWQgbG9ja2luZyBidWcgKGkgaGFkIGFscmVhZHkgZml4ZWQgaXQgaW4KKwkgIEFjdGl2ZVJlbmRlcikKKwktIGZpeCBzdHVwaWQgcmVzY2FsaW5nIG9mIGNvbG9ycyB2YWx1ZXMgb24gU2F2ZVNuYXBzaG90CisKKwkqIGRsbHMvZDNkOC9kM2Q4LnNwZWMsIGRsbHMvZDNkOC9kM2Q4X21haW4uYywgZGxscy9kM2Q4L2QzZDhfcHJpdmF0ZS5oLAorCSAgZGxscy9kM2Q4L2RldmljZS5jLCBkbGxzL2QzZDgvZGlyZWN0eC5jLCBkbGxzL2QzZDgvc2hhZGVyLmM6CisJUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJLSBwaXhlbCBzaGFkZXIgcHJvZ3JhbSBkdW1wIGNvZGUKKwktIHBpeGVsIHNoYWRlciBjb2RlIHNwbGl0IGludG8gYSBuZXcgIkNPTSBvYmplY3QiIChhcyBkb25lIGJlZm9yZSBmb3IKKwkgIHZlcnRleCBzaGFkZXIpCisJLSBzb21lIGZpeGVzIG9uIFZhbGlkYXRlKiBmdW5jdGlvbnMgY2FsbCB0eXBlcworCS0gYWRkIHBpeGVsIHNoYWRlciAoaWUgZnJhZ21lbnRfcHJvZ3JhbSkgZGV0ZWN0aW9uIG9uIGNhcHMgY29kZQorCisJKiBkbGxzL2QzZDgvZGV2aWNlLmMsIGRsbHMvZDNkOC91dGlscy5jOgorCUphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJQWRkIHN1cHBvcnQgZm9yIGEgbG90IG9mIHRoZSByZW1haW5pbmcgdGV4dHVyZSBvcHMsIG1vdmUgY29kZSBpbnRvIHRoZQorCXV0aWxzIG1vZHVsZSwgYW5kIGNsZWFuIHVwIHRoZSBtYWluIGNvZGUgcGF0aC4KKworCSogZGxscy9kM2Q4L2N1YmV0ZXh0dXJlLmMsIGRsbHMvZDNkOC9kM2Q4X3ByaXZhdGUuaCwKKwkgIGRsbHMvZDNkOC9kZXZpY2UuYywgZGxscy9kM2Q4L2RpcmVjdHguYywgZGxscy9kM2Q4L3N1cmZhY2UuYywKKwkgIGRsbHMvZDNkOC90ZXh0dXJlLmMsIGRsbHMvZDNkOC91dGlscy5jLCBkbGxzL2QzZDgvdm9sdW1ldGV4dHVyZS5jOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gc29tZSBjbGVhbnVwcworCS0gbW9yZSBjdWJldGV4dHVyZXMgZml4ZXMgKG5vdyBkM2Q4IHNkayBjdWJlbWFwIHNhbXBsZSB3b3JrIGFsbW9zdAorCSAgcGVyZmVjdGx5KQorCS0gYWRkIGEgbmV3IGRlYnVnIGZ1bmN0aW9uICJkZWJ1Z19kM2Rwb29sIiBhbmQgdXNlIGl0CisJLSBhZGQgYSBuZXcgcGFyYW0gKHRoZSBkZXZpY2UpIGZvciB0aGUgY29udmVyc2lvbnMgZnVuY3Rpb25zIChiZWNhdXNlCisJICB3ZSBuZWVkIHRvIGNoZWNrIGNhcHMgdG8gc2VlIGhvdyB0byBjb252ZXJ0KQorCS0gc29tZSBjcmFzaGVzIGZpeGVkIGluIHJlbmRlciB0byBzdXJmYWNlIGNvZGUgd2l0aCBubyBzdGVuY2lsLWRlcHRoCisJICBzdXJmYWNlCisJLSBhIHZlcnkgc2ltcGxlIGNsaXBsYW5lIGZpeAorCS0gYSBzdHVwaWQgcGFsZXR0ZXMgZml4IChzdHVwaWQgbGFuZ3VhZ2UpCisJLSBiZWdpbiBvZiBhbmlzb3Ryb3BpYyBmaWx0ZXIgc3VwcG9ydAorCS0gYmVnaW4gb2YgY29tcHJlc3NlZCB0ZXh0dXJlcyBzdXBwb3J0CisJLSBhIHZlcnkgdXNlZnVsIGRlYnVnIGZ1bmN0aW9uczogSURpcmVjdDNEU3VyZmFjZThJbXBsX1NhdmVTbmFwc2hvdCB0bworCSAgZHVtcCBzdXJmYWNlcyBhcyBwbmcgOykKKwktIG1hbnkgdXNlZnVsIHN1cmZhY2VzIGRlYnVnIGNvZGUgKHVzaW5nIFNhdmVTbmFwc2hvdCkKKworCSogZGxscy9kM2Q4L2RldmljZS5jLCBkbGxzL2QzZDgvZGlyZWN0eC5jOgorCUphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJQ29ycmVjdCBzcGVjdWxhciBlbmFibGUgcmVuZGVyc3RhdGUuCisKKwkqIGRsbHMvZDNkOC9kM2Q4X3ByaXZhdGUuaCwgZGxscy9kM2Q4L2RldmljZS5jLCBkbGxzL2QzZDgvc3RhdGVibG9jay5jOgorCUphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJQXZvaWQgdGhlIHVzZSBvZiBnbEdldCB3aGVuIHdlIGtub3cgdGhlIGluZm9ybWF0aW9uIGxvY2FsbHkuCisKKwkqIGRsbHMvZDNkOC9kaXJlY3R4LmMsIGRsbHMvZDNkOC91dGlscy5jOgorCUphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJT3BlbmdsIDEuNCBhZGRlZCBzdGVuY2lsIHdyYXAgc3VwcG9ydCBhcyBwZXIgZGlyZWN0eCAoYWxzbyBpbiB0aGUKKwlHTF9FWFRfc3RlbmNpbF93cmFwIGV4dGVuc2lvbikuCisKKwkqIGRsbHMvZDNkOC9NYWtlZmlsZS5pbiwgZGxscy9kM2Q4L2Jhc2V0ZXh0dXJlLmMsCisJICBkbGxzL2QzZDgvY3ViZXRleHR1cmUuYywgZGxscy9kM2Q4L2QzZDhfcHJpdmF0ZS5oLAorCSAgZGxscy9kM2Q4L2RldmljZS5jLCBkbGxzL2QzZDgvZGlyZWN0eC5jLCBkbGxzL2QzZDgvcmVzb3VyY2UuYywKKwkgIGRsbHMvZDNkOC9zaGFkZXIuYywgZGxscy9kM2Q4L3N0YXRlYmxvY2suYywgZGxscy9kM2Q4L3N1cmZhY2UuYywKKwkgIGRsbHMvZDNkOC9zd2FwY2hhaW4uYywgZGxscy9kM2Q4L3RleHR1cmUuYywgZGxscy9kM2Q4L3V0aWxzLmMsCisJICBkbGxzL2QzZDgvdm9sdW1ldGV4dHVyZS5jOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gaW1wbGVtZW50ZWQgcmVuZGVyIHRvIHN1cmZhY2VzIChhbmQgcmVuZGVyIHRvIG5ldyByZW5kZXJ0YXJnZXRzKQorCSAgdXNpbmcgZ2x4IHBidWZmZXJzICh3aXRoIGEgdXNlZnVsIGRlYnVnIGNvZGUgdG8gZGlzcGxheSByZW5kZXJlZAorCSAgc3VyZmFjZSBpbnRvIHdpbmRvdyBkcmF3YWJsZSkKKwktIGJldHRlciBjdWJldGV4dHVyZXMKKwktIHNwbGl0IHV0aWxpdGllcyBmdW5jdGlvbnMgaW50byB1dGlscy5jIGFuZCBhZGRlZCBtb3JlCisJLSBtb3JlIHJlYWRhYmxlIGRlYnVnIGFnYWluCisJLSBhIGJldHRlciBjYXBzIGNvZGUgKG5vdCBwZXJmZWN0IGJ1dCBpJ2xsIHVzZSBnbHggY29kZSBsYXRlcikKKwktIHVzZSBvZiB0aGUgbmV3IGNhcHMgY29kZQorCS0gYmVnaW4gb2YgVXBkYXRlVGV4dHVyZQorCS0gYmVnaW4gb2YgQ3Vyc29yIHN1cHBvcnQKKwktIGNsZWFuaW5nIG1vc3Qgb2YgZGVwcmVjYXRlZCAjaWYgMC8jZW5kaWYKKwktIGNvcnJlY3Qgc29tZSBsb2NrYWJsZS91bmxvY2thYmxlIGJlaGF2aW9yCisJLSBjb3JyZWN0IHNvbWUgcmV0dXJucyBjb2RlCisKKwkqIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21lc2EuYywgZGxscy9kZHJhdy9kM2R0ZXh0dXJlLmM6CisJTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwktIGRvIG5vdCBzZWFyY2ggZm9yIGF0dGFjaGVkIHN1cmZhY2VzIGlmIHRoZSB0ZXh0dXJlIGRvZXNuJ3QgaGF2ZSB0aGUKKwkgIE1JUE1BUCBmbGFnIHNldAorCS0gYWRkIEdMIGNyaXQuIHNlY3Rpb24gc3VwcG9ydCBmb3IgbWF0cml4IHNldHRpbmcKKwktIHN1cHBvcnQgdGhlIHZhcmlvdXMgQkxFTkQgdGV4dHVyZSBvcGVyYXRpb25zCisKKwkqIGRsbHMvZGRyYXcvbWVzYS5jOiBZb3JpY2sgSGFyZHkgPHloQG1ldHJvd2ViLmNvLnphPgorCUFkZGVkIHRoZSBEM0RUQkxFTkRfREVDQUwgcmVuZGVyIHN0YXRlLgorCisJKiBjb250cm9scy9lZGl0LmMsIGRsbHMvc2V0dXBhcGkvcXVldWUuYywgZG9jdW1lbnRhdGlvbi9kZWJ1Z2dpbmcuc2dtbCwKKwkgIGZpbGVzL3Byb2ZpbGUuYywgbWVtb3J5L2dsb2JhbC5jLCBwcm9ncmFtcy9ycGNzcy9ycGNzc19tYWluLmM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJRml4IHNvbWUgdHlwb3MuCisKKwkqIGRsbHMvd2lubW0vd2luZWFsc2EvYXVkaW8uYywgZGxscy93aW5tbS93aW5lYXJ0cy9hdWRpby5jLAorCSAgZGxscy93aW5tbS93aW5lbmFzL2F1ZGlvLmMsIGRsbHMvd2lubW0vd2luZW9zcy9hdWRpby5jOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJQWRkZWQgYSBkeW5hbWljYWxseSBncm93aW5nIHJpbmcgYnVmZmVyIGZvciBvc3MsIGFsc2EsIGFydHMsIGFuZCBuYXMuCisKKwkqIGRvY3VtZW50YXRpb24vYXV0aG9ycy5lbnQ6IFRvbSBXaWNrbGluZSA8dHdpY2tsaW5lQHNreWJlc3QuY29tPgorCVVwZGF0ZWQgbXkgZS1tYWlsIGFkZHJlc3MuCisKKwkqIGxpYnMvd3BwL3BwbC5sOiBQYXVsIExhdWZlciA8UGF1bC5FLkxhdWZlckBqcGwubmFzYS5nb3Y+CisJV29yayBhcm91bmQgZm9yIGZsZXggYnJhaW4gZGFtYWdlLgorCisJKiBkbGxzL21zdmNydC9sb2NhbGUuYywgZGxscy9tc3ZjcnQvbXN2Y3J0LnNwZWM6CisJTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJSW1wbGVtZW50ZWQgbG9jYWxlY29udigpIHdpdGggbGliYyBmdW5jdGlvbi4KKworCSogaW5jbHVkZS9tc3ZjcnQvdGltZS5oOiBBbnRvbmlvIExhcnJvc2EgSmlt6W5leiA8YW50bGFyckB0ZWRpYWwuY29tPgorCUFkZGVkIENMT0NLU19QRVJfU0VDLgorCisJKiBkbGxzL3dpbnNvY2svd3MyXzMyLnNwZWM6CisJQW50b25pbyBMYXJyb3NhIEppbeluZXogPGFudGxhcnJAdGVkaWFsLmNvbT4KKwlBZGRlZCBXU0FTZXRFdmVudCBmb3J3YXJkLgorCisJKiBkb2N1bWVudGF0aW9uL3NhbXBsZXMvd2luLmluaTogVG9tIFdpY2tsaW5lIDx0d2lja2xpbmVAc2t5YmVzdC5jb20+CisJQWRkZWQgMTAgbmV3IG1jaSBleHRlbnNpb25zLgorCisJKiBjb250cm9scy9saXN0Ym94LmM6IE1pa2UgSGVhcm4gPG1pa2VAdGhlb3JldGljLmNvbT4KKwlVcGRhdGUgbGlzdGJveCBkaXJlY3RvcnkgbW9kZSB0byBuZXcgRmluZEZpcnN0RmlsZSBlcnJvciBjb2RlLgorCisJKiBkbGxzL3VzZXIvdGV4dC5jOiBWaXRhbGl5IE1hcmdvbGVuIDx3aW5lLXBhdGNoQGtpZXZpbmZvLmNvbT4KKwlEcmF3VGV4dEV4OiBob25vciBjbGlwcGluZyBmb3IgdW5kZXJzY29yZXMuCisKKwkqIHdpbmVkZWZhdWx0LnJlZzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlBZGRlZCBEaXJlY3RTb3VuZCBlbnRyaWVzLgorCisJKiBncmFwaGljcy94MTFkcnYvcGFsZXR0ZS5jOgorCUphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJV2l0aCA+MjU2IGNvbG91cnMsIHRoZXJlIGlzIG5vIG5lZWQgdG8gcmVhbGl6ZSBhIHBhbGV0dGUsIHNvIHNraXAgaXQKKwlhbmQgcmV0dXJuIHRoYXQgbm8gcGFsZXR0ZSBlbnRyaWVzIGhhZCB0byBjaGFuZ2UuCisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlSZW1vdmUgYkZpcnN0UGFpbiBmdW5reSBvcHRpbWl6YXRpb24sIGl0IGlzIGNhdXNpbmcgdG9vIG11Y2ggZ3JpZWYuCisKKwkqIGRsbHMvd2luZWRvcy9pbnQyMS5jLCBmaWxlcy9kcml2ZS5jLCBpbmNsdWRlL2RyaXZlLmgsIG1zZG9zL2ludDIxLmM6CisJSnVra2EgSGVpbm9uZW4gPGpoZWlAaWtpLmZpPgorCU1pZ3JhdGUgbW9zdCBpbnQyMSBpb2N0bCByb3V0aW5lcyB0byB3aW5lZG9zLgorCU1pZ3JhdGUgaW50MjEgc2V0IGRyaXZlIHJvdXRpbmUgdG8gd2luZWRvcy4KKworCSogZGxscy9rZXJuZWwva2VybmVsMzIuc3BlYywgc2NoZWR1bGVyL3Byb2Nlc3MuYzoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCUltcGxlbWVudGVkIGEgc2VtaS1zdHViIGZvciBHZXRQcm9jZXNzUHJpb3JpdHlCb29zdC4KKworCSogZGxscy91c2VyL2RkZS9zZXJ2ZXIuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZXZlcnQgc29tZSByZWFsbHkgdW53YW50ZWQgY2hhbmdlcyB0byB0aGUgRERFIGNvZGUuCisKKwkqIGRsbHMvbnRkbGwvY2Ryb20uYzogWW9yaWNrIEhhcmR5IDx5aEBtZXRyb3dlYi5jby56YT4KKwlJbXByb3ZlIENEUk9NX0dldElkZUludGVyZmFjZSAoYmVjb21lcyBDRFJPTV9HZXRJbnRlcmZhY2VJbmZvKSwgaW4KKwlvcmRlciB0byBiZXR0ZXIgc3VwcG9ydCBTQ1NJIGRyaXZlcy4KKworCSogaW5jbHVkZS93aW5zb2NrLmg6IFlvcmljayBIYXJkeSA8eWhAbWV0cm93ZWIuY28uemE+CisJSW5jbHVkZSBzeXMvdGltZS5oIGZvciBzdHJ1Y3QgdGltZXZhbCBkZWZpbml0aW9uLgorCisJKiBkbGxzL250ZGxsL3NpZ25hbF9pMzg2LmM6IFlvcmljayBIYXJkeSA8eWhAbWV0cm93ZWIuY28uemE+CisJVXNlIFNBX1JFU1RBUlQgb24gTmV0QlNELgorCisJKiBwcm9ncmFtcy93aW5lY29uc29sZS9jdXJzZXMuYzogSnVra2EgSGVpbm9uZW4gPGpoZWlAaWtpLmZpPgorCVdpbmVjb25zb2xlIGN1cnNlcyBiYWNrZW5kIG5vdyB3b3JrcyBldmVuIGlmIHRlcm1pbmFsIGlzIHNtYWxsZXIgdGhhbgorCWNvbnNvbGUgc2l6ZS4gQ3Vyc29yIGlzIG5vIGxvbmdlciBsZWZ0IGludG8gd3JvbmcgbG9jYXRpb24gYWZ0ZXIKKwlzY3JlZW4gdXBkYXRlcy4KKworCSogZGxscy9udGRsbC9zeW5jLmM6IEp1a2thIEhlaW5vbmVuIDxqaGVpQGlraS5maT4KKwlUaW1lciByb3V0aW5lcyBtdXN0IGNoZWNrIGZvciBOVUxMIHRpbWVyIG5hbWUuCisKKwkqIHByb2dyYW1zL3dpbmhlbHAvU2kucmMsIHByb2dyYW1zL3dpbmhlbHAvU2sucmMsCisJICBwcm9ncmFtcy93aW5oZWxwL2hscGZpbGUuYywgcHJvZ3JhbXMvd2luaGVscC93aW5oZWxwLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJLSBhZGRlZCBzb21lIG1pc3Npbmcgc3RyaW5ncyB0byByZXNvdXJjZXMKKwktIG1hZGUgdGhlIGRlY29tcHJlc3Npb24gY29kZSBhIGJpdCBtb3JlIHBlZGFudGljIHRvIGF2b2lkIGNyYXNoZXMKKwktIGZpeGVkIHN0YXJ0dXAgd2l0aG91dCAuSExQIGZpbGVuYW1lIHBhc3NlZCBvbiBjb21tYW5kIGxpbmUKKwktIHBhc3NlZCBhIGZldyBtb3JlIGNvbW1hbmRzIGZyb20gcmVtb3RlIGFwcGxpY2F0aW9ucyB0byB0aGUgbWFjcm9zCisKKwkqIGRsbHMvZGRyYXcvTWFrZWZpbGUuaW4sIGRsbHMvZGRyYXcvZGRyYXcvaGFsLmMsCisJICBkbGxzL2RkcmF3L2RkcmF3L21haW4uYywgZGxscy9kZHJhdy9kZHJhdy91c2VyLmMsCisJICBkbGxzL2RkcmF3L2RkcmF3X3ByaXZhdGUuaCwgZGxscy9kZHJhdy9kc3VyZmFjZS9tYWluLmMsCisJICBkbGxzL2RkcmF3L2dsX2FwaS5oLCBkbGxzL2RkcmF3L2dsX3ByaXZhdGUuaCwgZGxscy9kZHJhdy9tYWluLmMsCisJICBkbGxzL2RkcmF3L21lc2FfcHJpdmF0ZS5oOgorCSBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJIExpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJTWFrZSBERHJhdyBub3QgbGlua2VkICdzdGF0aWNhbGx5JyB0byBPcGVuR0wuCisKKwkqIGRsbHMvZGlucHV0L2tleWJvYXJkL21haW4uYzogTWFyayBXZXN0Y290dCA8bWFya0Bob3VzZW9mZmlzaC5vcmc+CisJRElucHV0IGtleWJvYXJkIGhhbmRsaW5nIGNoZWNrcyBmb3IgaW5jb21pbmcgWDExIGV2ZW50cy4KKworCSogZGxscy9vbGUzMi9jb21wb2JqLmMsIGRsbHMvb2xlMzIvY29tcG9ial9wcml2YXRlLmgsCisJICBkbGxzL29sZTMyL2Vycm9yaW5mby5jOgorCU92ZSBLYWF2ZW4gPG92ZWtAdHJhbnNnYW1pbmcuY29tPgorCVByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIENPTSBhcGFydG1lbnRzLgorCisJKiBkbGxzL2QzZDgvZGV2aWNlLmMsIGluY2x1ZGUvZDNkOHR5cGVzLmg6CisJSmFzb24gRWRtZWFkZXMgPHVzQHRoZS1lZG1lYWRlcy5kZW1vbi5jby51az4KKwlGaWxsIGluIGxvdHMgb2YgdW5pbXBsZW1lbnRlZCByZW5kZXIgc3RhdGVzLgorCisyMDAzLTA1LTIyICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2Rzb3VuZC9zb3VuZDNkLmM6IER1YW5lIENsYXJrIDxkY2xhcmtAYWthbWFpbC5jb20+CisJRml4IGNvbXBpbGUgZXJyb3IuCisKKwkqIGRsbHMvbnRkbGwvaGVhcC5jLCBkbGxzL250ZGxsL250ZGxsX21pc2MuaCwgaW5jbHVkZS90aHJlYWQuaCwKKwkgIGluY2x1ZGUvd2ludGVybmwuaCwgbG9hZGVyL21vZHVsZS5jLCBtZW1vcnkvaGVhcC5jLAorCSAgcHJvZ3JhbXMvd2luZWRiZy93aW5lZGJnLmMsIHNjaGVkdWxlci90aHJlYWQuYzoKKwlTdGFydCB0byBtYWtlIHVzZSBvZiB0aGUgcHJvcGVyIFBFQiBzdHJ1Y3R1cmUgZm9yIHByb2Nlc3MKKwlpbmZvcm1hdGlvbi4KKworCSogbWlzY2VtdS9tYWluLmM6IFdhcm5pbmcgZml4LgorCisJKiBkbGxzL2tlcm5lbC9rZXJuZWxfbWFpbi5jLCB3aW4zMi9uZXdmbnMuYzoKKwlCZWVwKCkgaXMgc3RpbGwgbmVlZGVkIGluIG50ZGxsLCBtb3ZlIGl0IGJhY2sgdG8gc29tZSByYW5kb20gZmlsZS4KKworCSogbWlzY2VtdS9NYWtlZmlsZS5pbjoKKwlBZGRlZCBkZXBlbmRlbmN5IG9uIGxpYm50ZGxsIHRvIG1ha2Ugc3VyZSB0aGF0IGV2ZXJ5dGhpbmcgbGlua3MKKwlwcm9wZXJseS4KKworCSogZGxscy9kc291bmQvdGVzdHMvZHNvdW5kLmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJQWRkIDNkIHByaW1hcnkgYW5kIHNlY29uZGFyeSBidWZmZXIgdGVzdHMuCisJQ2hlY2sgcmVmZXJlbmNlIGNvdW50IGF0IG9iamVjdCByZWxlYXNlLgorCVJlbW92ZSByZWR1bmRhbnQgY29vcGVyYXRpdmUgbGV2ZWwgc2V0dGluZy4KKworCSogZGxscy9kc291bmQvYnVmZmVyLmMsIGRsbHMvZHNvdW5kL2NhcHR1cmUuYywKKwkgIGRsbHMvZHNvdW5kL2Rzb3VuZF9tYWluLmMsIGRsbHMvZHNvdW5kL21peGVyLmMsCisJICBkbGxzL2Rzb3VuZC9wcmltYXJ5LmMsIGRsbHMvZHNvdW5kL3Byb3BzZXQuYywgZGxscy9kc291bmQvc291bmQzZC5jOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJLSBtYWtlIHBhcmFtZXRlciBjaGVja2luZyBhbmQgZXJyb3Igbm90aWZpY2F0aW9uIGNvbnNpc3RlbnQKKwktIHByb3BhZ2F0ZSBkcml2ZXIgYW5kIGxvY2FsIGZ1bmN0aW9uIGVycm9ycyB3aGVyZSBuZWVkZWQKKwktIGZpeCBlcnJvciByZXR1cm5zIHdoZXJlIHBvaW50ZXIgaXMgZ2l2ZW4gZm9yIHJldHVybmVkIGRhdGEKKwktIGFkZCAzZCBsaXN0ZW5lciB0byBwcmltYXJ5IGJ1ZmZlciB3aGVuIG5lZWRlZAorCS0gY29weSAzZCBwYXJ0IG9mIGJ1ZmZlciB3aGVuIGR1cGxpY2F0ZWQKKwktIGZpeCBidWcgd2hlbiBwcmltYXJ5IGJ1ZmZlciBpcyByZW9wZW5lZCB3aXRoIHNtYWxsZXIgYnVmZmVyCisJLSBsb29zZW4gcmVxdWlyZW1lbnRzIG9uIGNhcHMgZGF0YSBzaXplIGNoZWNrCisJLSBzZXQgY2FwcyBmb3IgZW11bGF0ZWQgbW9kZSBiYXNlZCBvbiBhY3R1YWwgZHJpdmVyIGNhcHMKKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWFpbi5jLCBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmMsCisJICBkbGxzL2RkcmF3L2RzdXJmYWNlL2Zha2V6YnVmZmVyLmM6CisJTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwktIHJlbW92ZSBmb2dnaW5nIHRvbyB3aGVuIGRvaW5nIHRoZSBmbHVzaCBvZiB0aGUgZnJhbWUgYnVmZmVyCisJLSBoYW5kbGUgZGVzdCByZWN0IGluIHRoZSBCbHQgREVQVEhfRklMTCBjYXNlCisJLSBmaXggUXVlcnlJbnRlcmZhY2Ugb24gdGhlIEQzRCBEZXZpY2UKKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOgorCU1heGltZSBCZWxsZW5n6SA8bWF4aW1lLmJlbGxlbmdlQGxhcG9zdGUubmV0PgorCUZpeCBsaXN0dmlldyBjdXN0b20gZHJhdyBub3RpZmljYXRpb24gZm9yIENERFNfSVRFTVBSRVBBSU5UIGFuZAorCUNERFNfU1VCSVRFTVBSRVBBSU5UIG1lc3NhZ2VzLgorCisJKiBkbGxzL29sZTMyL2Rjb20uaCwgZGxscy9vbGUzMi9kY29tLmlkbDoKKwlPdmUgS2FhdmVuIDxvdmVrQHRyYW5zZ2FtaW5nLmNvbT4KKwlEQ09NIElETCBmaWxlIGJhc2VkIG9uIHRoZSBEQ09NIHNwZWNpZmljYXRpb24uCisKKwkqIGRsbHMvcnBjcnQ0L25kcl9taWRsLmMsIGRsbHMvcnBjcnQ0L3JwY19tZXNzYWdlLmMsCisJICBkbGxzL3JwY3J0NC9ycGNfbWlzYy5oLCBkbGxzL3JwY3J0NC9ycGNfc2VydmVyLmM6CisJT3ZlIEthYXZlbiA8b3Zla0B0cmFuc2dhbWluZy5jb20+CisJSW5pdGlhbCBzdXBwb3J0IGZvciBSUEMgY2FsbCBmYWlsdXJlcywgYnkgY2F0Y2hpbmcgUlBDIHNlcnZlcgorCWV4Y2VwdGlvbnMgYW5kIHJldHVybmluZyBzaW1wbGUgZmFpbHVyZSBwYWNrZXRzLCBhbmQgdGhyb3dpbmcKKwlleGNlcHRpb25zIG9uIHRoZSBjbGllbnQgc2lkZSB3aGVuIHVubWFyc2hhbGxpbmcgdGhlIGZhaWx1cmUgcGFja2V0LgorCisJKiBkbGxzL2QzZDgvZGV2aWNlLmM6IEphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJQXZvaWQgc2V0dGluZyBhbmQgcmVzZXR0aW5nIHRoZSBzYW1lIHZhbHVlcyB3aGVuIHRoZXJlIGFyZSBtYW55CisJcmVjdGFuZ2xlcy4KKworCSogZGxscy9jb21jdGwzMi9oZWFkZXIuYzogUm9iZXJ0IFNoZWFybWFuIDxSLkouU2hlYXJtYW5Ad2Fyd2ljay5hYy51az4KKwlVcGRhdGUgb3JkZXJpbmcgb24gaW5zZXJ0aW9uIG9mIGFuIGl0ZW0uCisKKzIwMDMtMDUtMjEgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkbGxzL3NoZWxsMzIvTWFrZWZpbGUuaW4sCisJICBkbGxzL3NoZWxsMzIvbWVtb3J5c3RyZWFtLmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX21haW4uaCwKKwkgIGRsbHMvc2hlbGwzMi9zaGVsbGxpbmsuYywgaW5jbHVkZS93aW5lL29ial9zaGVsbGxpbmsuaCwKKwkgIHByb2dyYW1zL01ha2VmaWxlLmluLCBwcm9ncmFtcy93aW5lbWVudWJ1aWxkZXIvLmN2c2lnbm9yZSwKKwkgIHByb2dyYW1zL3dpbmVtZW51YnVpbGRlci9NYWtlZmlsZS5pbiwKKwkgIHByb2dyYW1zL3dpbmVtZW51YnVpbGRlci93aW5lbWVudWJ1aWxkZXIuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJUmVtb3ZlIGNvZGUgdGhhdCBzdGFydHMgd2luZXNoZWxsbGluaywgaW5zdGVhZCBjcmVhdGUgYSB3aW5kb3dzCisJY29tcGF0aWJsZSBzaG9ydGN1dCAoKi5sbmspIGZpbGUuIEFmdGVyIGNyZWF0aW5nIHRoYXQgZmlsZSwgc3RhcnQgYQorCWxpbmsgcHJvY2Vzc29yICh3aW5lbWVudWJ1aWxkZXIpIG9uIGl0LCB3aGljaCByZWFkcyBpdCBiYWNrIHRoZW4gY2FsbHMKKwl3aW5lc2hlbGxsaW5rLgorCVJld29yayBDcmVhdGVTdHJlYW1Gcm9tRmlsZSB0byBjcmVhdGUgYW4gSVN0cmVhbSBvYmplY3QgdGhhdCBpcworCXdyaXRlYWJsZS4KKworCSogbGlicy9wb3J0L3NwYXduLmM6CisJUmVzZXQgU0lHQ0hMRCBoYW5kbGVyIHRvIGRlZmF1bHQgaWYgd2UgbmVlZCB0byB3YWl0LiBSZXNldCBTSUdQSVBFCisJaGFuZGxlciBiZWZvcmUgZXhlYy4KKworCSogaW5jbHVkZS9tb2R1bGUuaCwgbG9hZGVyL21vZHVsZS5jLCBsb2FkZXIvbmUvbW9kdWxlLmM6CisJTW92ZWQgYSBjb3VwbGUgb2YgMTYtYml0IG1vZHVsZSBmdW5jdGlvbnMgZnJvbSB0byBsb2FkZXIvbmUvbW9kdWxlLmMuCisKKwkqIGRsbHMva2VybmVsL01ha2VmaWxlLmluLCBkbGxzL2tlcm5lbC9jaGFuZ2UuYywgZGxscy9rZXJuZWwvZXJyb3IxNi5jLAorCSAgZGxscy9rZXJuZWwva2VybmVsX21haW4uYywgZGxscy9udGRsbC9NYWtlZmlsZS5pbiwgbWlzYy9lcnJvci5jLAorCSAgbWlzYy9tYWluLmM6CisJTW92ZWQgbWlzYy9lcnJvci5jIHRvIGRsbHMva2VybmVsL2Vycm9yMTYuYy4KKwlHZXQgcmlkIG9mIG1pc2MvbWFpbi5jLgorCisJKiBkbGxzL2dkaS9kcml2ZXIuYywgZGxscy9nZGkvZW5obWZkcnYvZW5obWV0YWZpbGVkcnYuaCwKKwkgIGRsbHMvZ2RpL2VuaG1mZHJ2L2luaXQuYywgZGxscy9nZGkvZW5obWZkcnYvb2JqZWN0cy5jLAorCSAgZGxscy9nZGkvbWZkcnYvaW5pdC5jLCBpbmNsdWRlL2dkaS5oLCBvYmplY3RzL2dkaW9iai5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlJbXBsZW1lbnRlZCBHZGlDb21tZW50IGZvciBlbmhhbmNlZCBtZXRhZmlsZXMuCisKKwkqIGRsbHMvaXBobHBhcGkvaWZlbnVtLmM6CisJRml4ZWQgd3JvbmcgbGVuZ3RoIGFyZ3VtZW50IGluIGdldEludGVyZmFjZVBoeXNpY2FsQnlOYW1lLgorCisJKiBkbGxzL2NvbWN0bDMyL2xpc3R2aWV3LmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJSW5zZXJ0aW5nIGNvbHVtbiB6ZXJvIHNob3VsZCBub3QgbW9kaWZ5IHRoZSBtYWluIGl0ZW0gKHNwb3R0ZWQgYnkKKwlSb2JlcnQgU2hlYXJtYW4pLgorCisJKiBtaXNjL2NwdS5jOiBFcmljIEFuaG9sdCA8ZXRhQGxjbGFyay5lZHU+CisJQWRkZWQgQ1BVIGRldGVjdGlvbiBmb3IgRnJlZUJTRC4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvcGlwZS5jOiBHZXJhbGQgUGZlaWZlciA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KKwlBdm9pZCAibWlnaHQgYmUgdXNlZCB1bmluaXRpYWxpemVkIiB3YXJuaW5nIGluIGV4ZXJjaXplU2VydmVyKCkuCisKKwkqIGRsbHMvcnBjcnQ0L3JwY19tZXNzYWdlLmMsIGRsbHMvcnBjcnQ0L3JwY19zZXJ2ZXIuYzoKKwlPdmUgS2FhdmVuIDxvdmVrQHRyYW5zZ2FtaW5nLmNvbT4KKwlGb3IgUlBDIHNlcnZlcnMsIGRvbid0IGRlYWxsb2NhdGUgdGhlIFJQQyByZXF1ZXN0IHBhY2tldCBiZWZvcmUgdGhlCisJUlBDIHJlcGx5IHBhY2tldCBpcyBzZW50LCBpbiBjYXNlIG1hcnNoYWxsaW5nIHRoZSByZXBseSBuZWVkcyBhbnkgb2YKKwl0aGUgcmVxdWVzdCBkYXRhLgorCisJKiBkbGxzL3JwY3J0NC9uZHJfbWlkbC5jLCBkbGxzL3JwY3J0NC9ycGNydDQuc3BlYzoKKwlPdmUgS2FhdmVuIDxvdmVrQHRyYW5zZ2FtaW5nLmNvbT4KKwlBZGRlZCBzZW1pLXN0dWIgZm9yIE5kclByb3h5RXJyb3JIYW5kbGVyLgorCUZpeGVkIGEgY2FzZSBvZiBwb3RlbnRpYWwgc3RhY2sgdHJhc2hpbmcuCisKKzIwMDMtMDUtMjAgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvbnRkbGwvTWFrZWZpbGUuaW4sIGxvYWRlci9tYWluLmMsIGxvYWRlci90YXNrLmMsCisJICBzY2hlZHVsZXIvcHJvY2Vzcy5jOgorCU1vdmVkIGFsbCBwcm9jZXNzIGluaXRpYWxpc2F0aW9uIGNvZGUgdG8gcHJvY2Vzcy5jIGFuZCByZW1vdmVkCisJbG9hZGVyL21haW4uYy4KKworCSogZGxscy9udGRsbC9udGRsbC5zcGVjLCBkbGxzL250ZGxsL29tLmMsIGluY2x1ZGUvd2ludGVybmwuaDoKKwlFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwlJbXBsZW1lbnRlZCBOdFF1ZXJ5T2JqZWN0IGFuZCBOdFNldEluZm9ybWF0aW9uT2JqZWN0IGZvciB0aGUKKwlPYmplY3REYXRhSW5mb3JtYXRpb24gY2xhc3MuCisKKwkqIG1lbW9yeS9nbG9iYWwuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlNYWtlIHRoZSBHbG9iYWwqIG1lbW9yeSBBUEkgZnVuY3Rpb25zIHRocmVhZCBzYWZlLgorCisJKiBkbGxzL3gxMWRydi94dmlkbW9kZS5jOiBDYXJsb3MgTG96YW5vIDxjbG96YW5vQGFuZGFnby5jb20+CisJQXZvaWQgcHJpbnRpbmcgYW4gdW5pbml0aWFsaXplZCBidWZmZXIuCisKKwkqIGRsbHMvbnRkbGwvY2Ryb20uYzogWW9yaWNrIEhhcmR5IDx5aEBtZXRyb3dlYi5jby56YT4KKwlJbXBsZW1lbnQgQ0RST01fU2NzaVBhc3NUaHJvdWdoIGFuZCBDRFJPTV9TY3NpUGFzc1Rocm91Z2hEaXJlY3Qgb24KKwlOZXRCU0QuCisKKwkqIGRsbHMva2VybmVsL01ha2VmaWxlLmluLCBkbGxzL2tlcm5lbC9zeXN0ZW0uYywKKwkgIGRsbHMvbnRkbGwvTWFrZWZpbGUuaW4sIG1lbW9yeS9pbnN0ci5jLCBtaXNjL3N5c3RlbS5jOgorCU1vdmVkIHN5c3RlbS5kbGwgaW1wbGVtZW50YXRpb24gdG8gZGxscy9rZXJuZWwuCisKKwkqIGRsbHMvb2xlY2xpL01ha2VmaWxlLmluLCBkbGxzL29sZWNsaS9vbGVjbGkxNi5jLAorCSAgZGxscy9vbGVjbGkvb2xlY2xpX21haW4uYzoKKwlTdGV2ZW4gRWR3YXJkcyA8U3RldmVuX0VkNDE1M0B5YWhvby5jb20+CisJV2luMTYvMzIgc2VwYXJhdGlvbiBvZiBvbGVjbGkzMi4KKworCSogZGxscy9kZHJhdy9kM2RfcHJpdmF0ZS5oLCBkbGxzL2RkcmF3L2QzZGNvbW1vbi5jLAorCSAgZGxscy9kZHJhdy9kM2RleGVjdXRlYnVmZmVyLmMsIGRsbHMvZGRyYXcvZDNkbGlnaHQuYywKKwkgIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21haW4uYywgZGxscy9kZHJhdy9kc3VyZmFjZS9mYWtlemJ1ZmZlci5jOgorCUNocmlzdGlhbiBDb3N0YSA8dGl0YW4uY29zdGFAd2FuYWRvby5mcj4KKwlSZW1vdmUgYWxsIG9wZW5HTCBjYWxscyBpbiBleGVjdXRlIGJ1ZmZlcnMgYW5kIHVzZSB0aGUgRGlyZWN0M0Q3IEFQSXMuCisJRW5hYmxlIHJldHJpZXZpbmcgdGhlIHJlbmRlciB0YXJnZXQgc3VyZmFjZSBvZiBhIGRldmljZSB0aHJvdWdoIGl0cworCVF1ZXJ5SW50ZXJmYWNlIG1ldGhvZC4KKwlBdm9pZCBsaWdodHMgdXBkYXRpbmcgd2hlbiBhIHZpZXdwb3J0IGFuZCBhIGRldmljZSBoYXZlIG5vdCBiZWVuCisJYXNzb2NpYXRlZCB0byB0aGVtLgorCUNsZWFyIHRoZSBaIGJ1ZmZlciBvbmx5IHdoZW4gd2UncmUgYXNrZWQgdG8gYnkgQ2hlY2tpbmcgRDNEQlRMX0ZJTEwKKwlmbGFnLgorCisJKiBkbGxzL3dpbmVkb3MvaW50MjEuYzogSnVra2EgSGVpbm9uZW4gPGpoZWlAaWtpLmZpPgorCUFkZGVkIHNvbWUgbG9uZyBmaWxlbmFtZSBmdW5jdGlvbnMuCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBpbmNsdWRlL2NvbmZpZy5oLmluLCBtaXNjL2NwdS5jOgorCVlvcmljayBIYXJkeSA8eWhAbWV0cm93ZWIuY28uemE+CisJSW1wbGVtZW50ZWQgR2V0U3lzdGVtSW5mbyBvbiBOZXRCU0QuCisKKwkqIGRsbHMva2VybmVsL3N5bmMuYywgZGxscy9udGRsbC9NYWtlZmlsZS5pbiwKKwkgIGluY2x1ZGUvd2luZS9zZXJ2ZXJfcHJvdG9jb2wuaCwgc2NoZWR1bGVyL3BpcGUuYywgc2VydmVyL01ha2VmaWxlLmluLAorCSAgc2VydmVyL3BpcGUuYywgc2VydmVyL3Byb3RvY29sLmRlZiwgc2VydmVyL3JlcXVlc3QuaCwgc2VydmVyL3RyYWNlLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJSW1wbGVtZW50IGFub255bW91cyBwaXBlcyBvbiB0b3Agb2YgbmFtZWQgcGlwZXMuCisKKwkqIGRsbHMvZGRyYXcvZDNkX3ByaXZhdGUuaCwgZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLAorCSAgZGxscy9kZHJhdy9kM2RleGVjdXRlYnVmZmVyLmMsIGRsbHMvZGRyYXcvZDNkdmVydGV4YnVmZmVyLmMsCisJICBkbGxzL2RkcmF3L21lc2FfcHJpdmF0ZS5oLCBkbGxzL2RkcmF3L2RzdXJmYWNlL21haW4uYzoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCS0gc29tZSB0cmFjaW5nIGZpeGVzCisJLSBmbHVzaCB0aGUgcmlnaHQgYnVmZmVyIHRvIHRoZSBzY3JlZW4KKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLCBkbGxzL2RkcmF3L2QzZGV4ZWN1dGVidWZmZXIuYywKKwkgIGRsbHMvZGRyYXcvbWVzYV9wcml2YXRlLmg6CisJTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwlObyBuZWVkIHRvIGZsdXNoIHRoZSBzdXJmYWNlIGJhY2sgaWYgbGFzdCBsb2NrIHdhcyBhIFJPIGxvY2suCisKKwkqIGRsbHMva2VybmVsL3N5bmMuYywgZGxscy9udGRsbC9NYWtlZmlsZS5pbiwgc2NoZWR1bGVyL3RpbWVyLmM6CisJTW92ZWQgdGltZXIgZnVuY3Rpb25zIHRvIGRsbHMva2VybmVsLgorCisJKiBkbGxzL29sZWF1dDMyL29sZWF1dC5jOiBPdmUgS2FhdmVuIDxvdmVrQHRyYW5zZ2FtaW5nLmNvbT4KKwlIYW5kbGUgcmVxdWVzdHMgZm9yIENMU0lEX1BTRGlzcGF0Y2guCisKKwkqIGRsbHMvcnBjcnQ0L2Nwcm94eS5jLCBkbGxzL3JwY3J0NC9jcHNmLmMsIGRsbHMvcnBjcnQ0L2Nwc2YuaCwKKwkgIGRsbHMvcnBjcnQ0L2NzdHViLmM6CisJT3ZlIEthYXZlbiA8b3Zla0B0cmFuc2dhbWluZy5jb20+CisJRml4ZWQgTmRyRGxsUmVnaXN0ZXJQcm94eSBzbyBpdCByZWdpc3RlcnMgdGhlIGtleSBuYW1lcyB0aGF0IG9sZTMyCisJZXhwZWN0cy4gQmV0dGVyIGRlYnVnIHRyYWNlcyAoaW5jbHVkZSBuYW1lIG9mIGludGVyZmFjZSkuCisKKwkqIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21haW4uYywgZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLAorCSAgZGxscy9kZHJhdy9kM2R0ZXh0dXJlLmMsIGRsbHMvZGRyYXcvbWVzYV9wcml2YXRlLmg6CisJTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwktIGZpeCBidWcgaW4gJ0JsdCBERVBUSF9GSUxMJyBvdmVycmlkZQorCS0gYWRkZWQgYSBsb2NrIGFyb3VuZCB0aGUgZmx1c2hpbmcgb2YgYSBzdXJmYWNlIHRvIHRoZSBmcmFtZSBidWZmZXIKKwktIG9wdGltaXplIHRleHR1cmUgbG9hZGluZyBteSBtaW5pbWl6aW5nIHRoZSBjYXNlcyB3aGVyZSBhIGNvbnZlcnNpb24KKwkgIG5lZWRzIHRvIG9jY3VyIGFuZCBhbHNvIGJ5IHJldXNpbmcgdGhlIGFsbG9jYXRlZCBtZW1vcnkKKworCSogZGxscy9udGRsbC9udC5jLCBkbGxzL250ZGxsL250ZGxsLnNwZWMsIGRsbHMvbnRkbGwvc3luYy5jLAorCSAgaW5jbHVkZS93aW5lL3NlcnZlcl9wcm90b2NvbC5oLCBpbmNsdWRlL3dpbnRlcm5sLmgsCisJICBzY2hlZHVsZXIvdGltZXIuYywgc2VydmVyL3Byb3RvY29sLmRlZiwgc2VydmVyL3RpbWVyLmMsCisJICBzZXJ2ZXIvdHJhY2UuYzoKKwlFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwlJbXBsZW1lbnRlZCB0aW1lciByZWxhdGVkIGZ1bmN0aW9ucyBpbiBudGRsbCBhbmQgbWFrZSB0aGUga2VybmVsMzIKKwlmdW5jdGlvbnMgdXNlIHRoZW0uCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL3BpcGUuYzogVXNlIHRoZSB0cmFjZSBtYWNybyBmb3IgZGVidWdnaW5nIG91dHB1dC4KKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLCBkbGxzL2RkcmF3L21lc2EuYzoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCUhhdmUgTGlnaHRzIGFuZCBDbGlwcGxhbmVzIHRyYW5zZm9ybWVkIHByb3Blcmx5LgorCisJKiBkbGxzL250ZGxsL2xvYWRlci5jLCBpbmNsdWRlL21vZHVsZS5oLCBsb2FkZXIvbW9kdWxlLmMsCisJICBsb2FkZXIvbmUvbW9kdWxlLmMsIGxvYWRlci9wZV9pbWFnZS5jOgorCU9ubHkgY3JlYXRlIHRoZSAxNi1iaXQgZHVtbXkgbW9kdWxlIHdoZW4gd2UgbmVlZCByZWFsbHkgaXQuCisKKwkqIGRsbHMvd2luZXBzL2VzY2FwZS5jLCBkbGxzL3dpbmVwcy9pbml0LmM6CisJSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlMb29rIHVwIHRoZSBwcmludGVyJ3MgcG9ydCBpbiB0aGUgcmVnaXN0cnkgaWYgbmVpdGhlciBDcmVhdGVEQyBvcgorCVN0YXJ0RG9jIHNwZWNpZnkgb25lLgorCVBob3Rvc2hvcCA3IGhhcyBhIGJ1ZyB0aGF0IHJlc3VsdHMgaW4gY2JJbnB1dCBiZWluZyAyIGxlc3MgdGhhbiB0aGUKKwlsZW5ndGggb2YgdGhlIHN0cmluZyByYXRoZXIgdGhhbiAyIG1vcmUuICBTbyB1c2UgdGhlIFdPUkQgYXQKKwlpbl9kYXRhWzBdIGluc3RlYWQuCisKKwkqIGRsbHMvd2luZXBzL2luaXQuYywgZGxscy93aW5lcHMvcHBkLmMsIGRsbHMvd2luZXBzL3BzZHJ2Lmg6CisJSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlDVVBTIHVzZXMgdGhlIHBwZCBmaWxlIHRvIHN0b3JlIHRoZSBkZWZhdWx0IHBhcGVyIHNpemUsIHNvIHdlJ2xsIHJlYWQKKwlpdCBmcm9tIGhlcmUuCisJSWYgdGhlIHBwZCBkb2Vzbid0IGNvbnRhaW4gYW4gZXhwbGljaXQgcmVzb2x1dGlvbiB0aGVuIGRlZmF1bHQgdG8KKwkzMDBkcGkuCisKKwkqIGRsbHMva2VybmVsL25scy8qLm5scywgaW5jbHVkZS93aW5ubHMuaDoKKwlBZGRlZCB2YWx1ZSBmb3IgZGVmYXVsdCBVbml4IGNvZGVwYWdlIHRvIGFsbCB0aGUgbG9jYWxlIGRlZmluaXRpb25zLgorCisJKiBkbGxzL3JwY3J0NC9uZHJfbWFyc2hhbGwuYywgZGxscy9ycGNydDQvcnBjcnQ0LnNwZWM6CisJT3ZlIEthYXZlbiA8b3Zla0B0cmFuc2dhbWluZy5jb20+CisJSW1wbGVtZW50ZWQgImRlcmVmZXJlbmNlIiBwb2ludGVyIGZsYWcuCisJQWRkZWQgTmRyQ2xlYXJPdXRQYXJhbWV0ZXJzIHN0dWIuCisKKwkqIGRsbHMvcnBjcnQ0L25kcl9vbGUuYzogT3ZlIEthYXZlbiA8b3Zla0B0cmFuc2dhbWluZy5jb20+CisJUG9ydGFiaWxpdHkgZml4LiBCZXR0ZXIgZGVidWcgbWVzc2FnZXMgKGRpc3BsYXkgSUlEIG9mIGludGVyZmFjZSB0bworCW1hcnNoYWwpLgorCisJKiBkb2N1bWVudGF0aW9uL1JFQURNRS5pdDoKKwlGcmFuY2VzY28gRGkgUHVuemlvIDxmcmFuY2VzY29fZGlwdW56aW9AdmlyZ2lsaW8uaXQ+CisJSXRhbGlhbiB0cmFuc2xhdGlvbiBvZiB0aGUgUkVBRE1FIGZpbGUuCisKKwkqIGRsbHMvZGRyYXcvZDNkX3ByaXZhdGUuaCwgZGxscy9kZHJhdy9kM2RkZXZpY2UvbWFpbi5jLAorCSAgZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLCBkbGxzL2RkcmF3L21lc2EuYzoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCS0gaW1wbGVtZW50IHRoZSBURkFDVE9SIHRleHR1cmUgc3RhZ2Ugc3RhdGUKKwktIHN1cHBvcnQgVGV4dHVyZSBtYXRyaWNlcworCS0gdmFyaW91cyBtaXNjLiBjbGVhbi11cHMKKworMjAwMy0wNS0xOSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy91c2VyL2RkZS9jbGllbnQuYywgZGxscy91c2VyL2RkZS9kZGVfcHJpdmF0ZS5oLAorCSAgZGxscy91c2VyL2RkZS9taXNjLmMsIGRsbHMvdXNlci9kZGUvc2VydmVyLmMsIGRsbHMvdXNlci9tZXNzYWdlLmMsCisJICBpbmNsdWRlL2RkZS5oLCBpbmNsdWRlL2RkZW1sLmg6CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlFeHBlY3QgbXVsdGlwbGUgRE5TXyBmbGFncy4KKwlQYXJ0aWFsbHkgaW1wbGVtZW50ZWQgRGRlRW5hYmxlQ2FsbGJhY2suCisJQ2FsbCBhIGNhbGxiYWNrIHdpdGggWFRZUF9DT05ORUNUX0NPTkZJUk0gYWZ0ZXIgYW4gYWNjZXB0ZWQKKwlYVFlQX0NPTk5FQ1QuCisJQWRkZWQgdHJhY2VzLCBjbGFyaWZ5IGRhdGEgdHlwZXMsIG90aGVyIGNvc21ldGljcy4KKworCSogb2JqZWN0cy9mb250LmM6IEZpeGVkIHJldHVybiB2YWx1ZSBvZiBHZXRUZXh0RmFjZUEuCisKKwkqIG9iamVjdHMvZGMuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZnRlciB3ZSB1cGRhdGUgdGhlIG1hcHBpbmcgbW9kZSByZXNlbGVjdCB0aGUgY3VycmVudCBmb250IGJhY2sgaW50bworCXRoZSBkYyBzbyB0aGF0IGl0cyBzaXplIGlzIHJlY2FsY3VsYXRlZC4KKworCSogZGxscy93aW5lcHMvcHMuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlEb24ndCBhZGQgc3BhY2VzIGluIHRoZSBQb3N0U2NyaXB0IGJldHdlZW4gZXZlcnkgcGl4ZWwgLSB0aGlzIG1hZGUKKwlkZWJ1Z2dpbmcgZWFzaWVyIGJ1dCByZXN1bHRzIGluIGFuIGF3ZnVsIGxvdCBvZiB3aGl0ZXNwYWNlIGJlaW5nIHNlbnQKKwl0byB0aGUgcHJpbnRlci4KKwlEb24ndCBnZW5lcmF0ZSB0aGUgJSVPcmllbnRhdGlvbiBEU0MgY29tbWVudC4gIFRoZSBjdXBzIHBzdG9wcyBmaWx0ZXIKKwl0cmllcyB0byByb3RhdGUgdGhlIGltYWdlIGJ5IDkwZGVncyB3aGVuIHRvIGl0IHNlZXMgdGhpcyBjb21tZW50LgorCVN0b3AgYSBjcmFzaCBpZiB0aGUgZG9jdW1lbnQgdGl0bGUgaXMgTlVMTC4KKworCSogZGxscy93aW5lcHMvdHlwZTEuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZXNldCB0aGUgZXNjYXBlbWVudCBiYWNrIHRvIHplcm8gYmVmb3JlIHJldHJpZXZpbmcgdGhlIG91dGxpbmUgKHdlJ3JlCisJYWxyZWFkeSBpbiBhIHJvdGF0ZWQgY29vcmRpbmF0ZSBzeXN0ZW0pLgorCisJKiBkbGxzL3dpbmVwcy90ZXh0LmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJRml4IGhhbmRsaW5nIG9mIHRleHQgYWxpZ24gbW9kZXMgZm9yIHJvdGF0ZWQgdGV4dC4KKworCSogZGxscy93aW5zcG9vbC9NYWtlZmlsZS5pbiwgZGxscy93aW5zcG9vbC9pbmZvLmM6CisJSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlCYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiBFbnVtUG9ydHNBOiBkdW1wIGFsbCB0aGUgc2VyaWFsIGFuZCBwcmludGVyCisJcG9ydCBuYW1lcyBpbnRvIGEgc3RydWN0dXJlLgorCisJKiBwcm9ncmFtcy9ub3RlcGFkL0RhLnJjLCBwcm9ncmFtcy9ub3RlcGFkL0RlLnJjLAorCSAgcHJvZ3JhbXMvbm90ZXBhZC9Fbi5yYywgcHJvZ3JhbXMvbm90ZXBhZC9Fcy5yYywKKwkgIHByb2dyYW1zL25vdGVwYWQvRmkucmMsIHByb2dyYW1zL25vdGVwYWQvRnIucmMsCisJICBwcm9ncmFtcy9ub3RlcGFkL1B0LnJjLCBwcm9ncmFtcy9ub3RlcGFkL1NpLnJjLAorCSAgcHJvZ3JhbXMvbm90ZXBhZC9Tay5yYywgcHJvZ3JhbXMvbm90ZXBhZC9Tdy5yYywKKwkgIHByb2dyYW1zL25vdGVwYWQvV2EucmM6CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZW1vdmVkIHJlZHVuZGFudCBMQU5HVUFHRSBzdGF0ZW1lbnRzLgorCisJKiBwcm9ncmFtcy92aWV3L3ZpZXcuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUZpeCBhbiB1bmluaXRpYWxpemVkIGJ1ZmZlci4KKworCSogc2NoZWR1bGVyL3Byb2Nlc3MuYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggQ3JlYXRlUHJvY2VzcygiYzpcUHJvZ3JhbSBGaWxlc1xoZWxsby5iYXQiKS4KKworCSogd2luZG93cy93aW5wcm9jLmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJV2UgY2FuJ3QgdXNlIFJ0bENyZWF0ZVVuaWNvZGVTdHJpbmdGcm9tQXNjaWl6IGZvciBXTV9TRVRURVhUIGFzIHRoZQorCXJlc3VsdGluZyB1bmljb2RlIHN0cmluZyBtYXkgYmUgZ3JlYXRlciB0aGFuIDB4ZmZmZiBieXRlcy4KKworCSogZGxscy9zaGVsbDMyL3NobHZpZXcuYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlNYWtlIHN1cmUgd2UgZmluZCB0aGUgZHJhZyBhbmQgZHJvcCBmdW5jdGlvbnMgYmVmb3JlIGNhbGxpbmcgdGhlbS4KKworCSogZGxscy91c2VyL3Rlc3RzL2NsYXNzLmMsIHdpbmRvd3MvY2xhc3MuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUdldENsYXNzSW5mbyByZXR1cm5zIGNsYXNzIGF0b20gb24gc3VjY2Vzcy4KKworCSogZGxscy9zaGVsbDMyL2NsYXNzZXMuYywgZGxscy9zaGVsbDMyL3NoZWxsMzJfbWFpbi5oLAorCSAgZGxscy9zaGVsbDMyL3NobGV4ZWMuYzoKKwlVbHJpY2ggQ3pla2FsbGEgPHVjemVrYWxsYUBjb2Rld2VhdmVycy5jb20+CisJSGFuZGxlIFNFRV9NQVNLX0NMQVNTS0VZIGNhc2UgZm9yIFNoZWxsRXhlY3V0ZS4KKworCSogZGxscy9uZXRhcGkzMi9uZXRhcGkzMi5jLCBkbGxzL25ldGFwaTMyL25ldGFwaTMyLnNwZWM6CisJQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBzdHViIGZvciBOZXRTZXJ2ZXJFbnVtLgorCisJKiBkbGxzL2RkcmF3L2QzZGRldmljZS9tYWluLmMsIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21lc2EuYywKKwkgIGRsbHMvZGRyYXcvZDNkdmlld3BvcnQuYzoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCUFkZGVkIHN1cHBvcnQgZm9yIG5vbi1mdWxsIHNjcmVlbiB2aWV3cG9ydHMgYW5kIGNsZWFyaW5nLgorCisJKiBkbGxzL2dkaS9lbmhtZmRydi9kYy5jLCBkbGxzL2dkaS9lbmhtZmRydi9lbmhtZXRhZmlsZWRydi5oLAorCSAgZGxscy9nZGkvZW5obWZkcnYvaW5pdC5jOgorCUh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50ZWQgYSBmZXcgbW9yZSBkZXZpY2UgY2Fwcy4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvZmlsZS5jOiBGZXJlbmMgV2FnbmVyIDx3ZmVyaUB0YmEuZWx0ZS5odT4KKwlOZXcgX2xjcmVhdCB0ZXN0cyBmb3IgZmlsZW5hbWUgZW5kaW5nIGluIGEgc2xhc2ggYW5kIHZvbHVtZSBsYWJlbAorCWF0dHJpYnV0ZS4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRsbHMvbnRkbGwvY2Ryb20uYywgaW5jbHVkZS9jb25maWcuaC5pbjoKKwlZb3JpY2sgSGFyZHkgPHloQG1ldHJvd2ViLmNvLnphPgorCUFkZGVkIHRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgQ0RST01fR2V0SWRlSW50ZXJmYWNlIG9uIE5ldEJTRC4KKworCSogZGxscy9vbGVhdXQzMi9zYWZlYXJyYXkuYzoKKwlSb2JlcnQgU2hlYXJtYW4gPFIuSi5TaGVhcm1hbkB3YXJ3aWNrLmFjLnVrPgorCVVzZSBjb3JyZWN0IHR5cGUgb2YgcG9pbnRlciBpbiBTYWZlQXJyYXlDcmVhdGVWZWN0b3IgdG8gYXZvaWQgbWVtb3J5CisJY29ycnVwdGlvbi4gQWRkIHRyYWNlcy4KKworCSogZGxscy9zaGVsbDMyL2RlYnVnaGxwLmMsIGRsbHMvc2hlbGwzMi9waWRsLmMsIGRsbHMvc2hlbGwzMi9waWRsLmg6CisJUm9iZXJ0IFNoZWFybWFuIDxSLkouU2hlYXJtYW5Ad2Fyd2ljay5hYy51az4KKwlBZGQgYSBQSURMIHR5cGUgRm9yIE5ldHdvcmsgUHJvdmlkZXIuCisKKwkqIGRsbHMvaXBobHBhcGkvaXBobHBhcGlfbWFpbi5jOiBQaWVycmUgZCdIZXJiZW1vbnQgPHN0ZWdlZmluQGZyZWUuZnI+CisJSW5jbHVkZSBhcnBhL25hbWVzZXIuaCBiZWZvcmUgcmVzb2x2LmguCisKKwkqIGNvbnRyb2xzL2VkaXQuYzogUmVpbiBLbGF6ZXMgPHJrbGF6ZXNAeHM0YWxsLm5sPgorCVJldmVydCB0aGUgV01fR0VURExHQ09ERSBoYW5kbGluZyBwYXRjaCBjb21wbGV0ZWx5IHRoaXMgdGltZS4gSXQKKwlicmVha3MgdG9vIG11Y2guCisKKwkqIGRsbHMvd2luZWRvcy9pbnQyMS5jLCBtc2Rvcy9pbnQyMS5jOiBKdWtrYSBIZWlub25lbiA8amhlaUBpa2kuZmk+CisJTW92ZSBnZXQgY3VycmVudCBkcml2ZSBpbnQyMSBmdW5jdGlvbiB0byB3aW5lZG9zLgorCUZpeCBzcGVsbGluZyBtaXN0YWtlcy4KKwlBZGQgc29tZSBkcml2ZSBoYW5kbGluZyBoZWxwZXIgcm91dGluZXMuCisKKwkqIGluY2x1ZGUvd2luZS9vYmpfc2hlbGxmb2xkZXIuaDoKKwlSb2JlcnQgU2hlYXJtYW4gPFIuSi5TaGVhcm1hbkB3YXJ3aWNrLmFjLnVrPgorCUZpeCB2YWx1ZSBvZiBJSURfSVNoZWxsRm9sZGVyMi4KKworCSogZGxscy9kZHJhdy9kc3VyZmFjZS9kaWIuYzogTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwlCZXR0ZXIgaGFuZGxpbmcgb2YgcGl0Y2ggc2V0IHRvIDAuCisKKwkqIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21lc2EuYzogTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwlBZGRlZCBSR0IgMzIgc3VyZmFjZSBsb2NraW5nIChzZWVtcyB0byB3b3JrIGZpbmUgd2l0aG91dCByZXNvcnRpbmcgdG8KKwlBbHBoYSBoYWNrcykuCisKKwkqIGRsbHMveDExZHJ2L3dpbnBvcy5jOgorCU1ha2Ugc3VyZSBkcmF3YWJsZV9vcmcgaXMgc2V0IGNvcnJlY3RseSB3aGVuIHVzaW5nIG9uZSBvZiB0aGUgcGFyZW50cworCWFzIGRyYXdhYmxlIChmb3VuZCBieSBEbWl0cnkgVGltb3Noa292KS4KKworCSogZGxscy94MTFkcnYvd2luZG93LmM6CisJQXZvaWQgdGhlICdCZWxvdycgc3RhY2tpbmcgbW9kZSB3aGVuIGNoYW5naW5nIFogb3JkZXIgc2luY2UgbWFueQorCXdpbmRvdyBtYW5hZ2VycyBkb24ndCBnZXQgaXQgcmlnaHQuCisJRml4IFogb3JkZXIgc3luY2hyb25pemF0aW9uIGZvciBjaGlsZCB3aW5kb3dzIChmb3VuZCBieSBEbWl0cnkKKwlUaW1vc2hrb3YgYW5kIFVscmljaCBDemVrYWxsYSkuCisKKwkqIGRsbHMveDExZHJ2L2V2ZW50LmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJTWFzayBvdXQgTVdNT19XQUlUQUxMIGlmIG9ubHkgc2VydmVyIHF1ZXVlIGhhbmRsZSB3YXMgcGFzc2VkIGluLgorCisJKiBkbGxzL3dpbmVwcy9iaXRibHQuYywgZGxscy93aW5lcHMvYml0bWFwLmMsIGRsbHMvd2luZXBzL2JydXNoLmMsCisJICBkbGxzL3dpbmVwcy9jbGlwcGluZy5jLCBkbGxzL3dpbmVwcy9ncmFwaGljcy5jLCBkbGxzL3dpbmVwcy9wcy5jLAorCSAgZGxscy93aW5lcHMvcHNkcnYuaCwgZGxscy93aW5lcHMvdGV4dC5jOgorCUh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJUmV3b3JrIGNsaXBwaW5nIHNvIHRoYXQgdGhlIFBTIGNsaXAgcGF0aCBpcyBvbmx5IHNldCBqdXN0IGJlZm9yZSBhbnkKKwlncmFwaGljcyBvdXRwdXQgZXZlbnQuIERvaW5nIGl0IHRoaXMgd2F5IG1lYW5zIHdlIGRvbid0IGV2ZXIgbmVlZCB0bworCWNhbGwgaW5pdGNsaXAgd2hpY2ggaXMgYSBHb29kIFRoaW5nLgorCisJKiBmaWxlcy9kb3NfZnMuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVJlbW92ZWQgdW5uZWNlc3NhcnkgY2FzdHMuCisKKwkqIGluY2x1ZGUvd2luZ2RpLmgsIG9iamVjdHMvY2xpcHBpbmcuYywgb2JqZWN0cy9yZWdpb24uYzoKKwlIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUdldFJhbmRvbVJnbiguLi4sMSkgcmV0dXJucyB0aGUgY3VycmVudCBjbGlwcGluZyByZ24uCisJTW92ZWQgR2V0UmFuZG9tUmduIGFuZCB0aGUgTWV0YVJnbiBmdW5jdGlvbnMgdG8gb2JqZWN0cy9jbGlwcGluZy5jLgorCisJKiB3aW5kb3dzL21kaS5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCVJlc3RvcmUgTURJIHdpbmRvdyBpbiB0aGUgY2FzZSBvZiBkaXNhYmxlZCBtYXhpbWl6ZSBidXR0b24uCisKKwkqIHdpbmRvd3MvY3Vyc29yaWNvbi5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUluaXRpYWxpemUgaGJtQ29sb3Igb25seSBmb3IgY29sb3IgaWNvbnMgaW4gR2V0SWNvbkluZm8uCisKKwkqIGRsbHMvdXNlci9tZXNzYWdlLmMsIGluY2x1ZGUvd2luLmgsIHdpbmRvd3Mvd2luLmMsIHdpbmRvd3Mvd2lucG9zLmM6CisJQ2F0Y2ggYnJvYWRjYXN0IHdpbmRvdyBoYW5kbGVzIGluIGZ1bmN0aW9ucyB0aGF0IGFyZSBpbXBsZW1lbnRlZCB1c2luZworCVNlbmRNZXNzYWdlLgorCisJKiBkbGxzL3VzZXIvdXNlcjMyLnNwZWMsIHdpbmRvd3MvbWVzc2FnZS5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlJbXBsZW1lbnRlZCBCcm9hZGNhc3RTeXN0ZW1NZXNzYWdlVy4KKworCSogZGxscy9zaGVsbDMyL3NobGV4ZWMuYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBzdXBwb3J0IGZvciB0aGUgJUwgZXNjYXBlLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGxvcmQuYywgZGxscy9zaGVsbDMyL3VuZG9jc2hlbGwuaDoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50ZWQgUmVhZENhYmluZXRTdGF0ZSBhbmQgV3JpdGVDYWJpbmV0U3RhdGUuCisKKwkqIGRsbHMvc2V0dXBhcGkvTWFrZWZpbGUuaW4sIGRsbHMvc2V0dXBhcGkvaW5mcGFyc2UuYywKKwkgIGRsbHMvc2V0dXBhcGkvcXVldWUuYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCVJlc3BlY3QgdGhlIHZlcnNpb24gU1BfQ09QWSBmbGFncyB3aGVuIGluc3RhbGxpbmcgZmlsZXMuCisJTWFrZSBHZW5JbnN0YWxsMTYgb25seSBjb3B5IGZpbGVzIGlmIHRoZSB2ZXJzaW9uIGlzIG5ldyBvciBzYW1lLgorCisJKiBkbGxzL29sZTMyL29sZTMyLnNwZWMsIGRsbHMvb2xlMzIvb2xlMzJfbWFpbi5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlTZW1pLWNvcnJlY3QgaW1wbGVtZW50YXRpb24gb2YgT2xlTWV0YWZpbGVQaWN0RnJvbUljb25BbmRMYWJlbC4KKworCSogZGxscy9nZGkvZW5obWZkcnYvYml0Ymx0LmMsIGRsbHMvZ2RpL2VuaG1mZHJ2L2luaXQuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50ZWQgU3RyZXRjaERJQml0cyBpbiB0aGUgRU1GIGNvZGUuCisKKwkqIGRsbHMvZ2RpL2VuaG1mZHJ2L2dyYXBoaWNzLmM6CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXhlZCBzb21lIGlzc3VlcyBpbiBFTUZEUlZfRXh0VGV4dE91dC4KKworCSogZGxscy9nZGkvbWZkcnYvaW5pdC5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCVJlY29yZCBlc2NhcGVzIGluIG1ldGFmaWxlcy4KKworMjAwMy0wNS0xNyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9kZHJhdy9kM2RfcHJpdmF0ZS5oLCBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmMsCisJICBkbGxzL2RkcmF3L2QzZGV4ZWN1dGVidWZmZXIuYywgZGxscy9kZHJhdy9kZHJhd19wcml2YXRlLmgsCisJICBkbGxzL2RkcmF3L21lc2FfcHJpdmF0ZS5oOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJU3VwcG9ydCBmb3IgZGV2aWNlIHN1cmZhY2UgbG9ja2luZy4KKworCSogZGxscy9kM2Q4L2Jhc2V0ZXh0dXJlLmMsIGRsbHMvZDNkOC9jdWJldGV4dHVyZS5jLAorCSAgZGxscy9kM2Q4L2QzZDhfcHJpdmF0ZS5oLCBkbGxzL2QzZDgvZGV2aWNlLmMsIGRsbHMvZDNkOC9kaXJlY3R4LmMsCisJICBkbGxzL2QzZDgvcmVzb3VyY2UuYywgZGxscy9kM2Q4L3NoYWRlci5jLCBkbGxzL2QzZDgvc3RhdGVibG9jay5jLAorCSAgZGxscy9kM2Q4L3N1cmZhY2UuYywgZGxscy9kM2Q4L3RleHR1cmUuYywKKwkgIGRsbHMvZDNkOC92c2hhZGVyZGVjbGFyYXRpb24uYzoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwktIG1vciB1c2VmdWxsIGRlYnVnIGZ1bmN0aW9ucyBkZWJ1Z19kM2R1c2FnZSBhbmQgZGVidWdfZDNkZGV2aWNldHlwZQorCS0gZml4IGEgY3Jhc2ggaW4gcGl4ZWwgc2hhZGVyIHBhcnNlciAoaGFwcGVuZWQgd2l0aCB1bnJlYWwyKQorCS0gY3VycmVudGx5IGRlc2FjdGl2ZSBwaXhlbCBzaGFkZXJzIGNhcHMgKHdpdGggI2RlZmluZSkgd2hpbGUgaHcKKwkgIHNoYWRlcnMgY29kZSBpc24ndCBtZXJnZWQKKwktIHdoZW4gd2UgaGF2ZSBhIHNwZWNpYWwgZGVidWcgY2hhbm5lbCBmb3Igc2hhZGVyLCB1c2UgaXQgOykKKwktIGZpeCBhZ2FpbiBzb21lIHN0dWJzIHJldHVybiB2YWx1ZQorCS0gbW9yZSBtb3JlIHJlYWRhYmxlIHRyYWNlcyBub3cgKHByaW5jaXBhbHkgSURpcmVjdDNEOCBjYXBhY2l0aWVzCisJICBjaGVjayBhbmQgc3VyZmFjZSBsb2NraW5nIGNvZGUpIHVzaW5nIG5ldyBkZWJ1ZyBmdW5jdGlvbnMKKwktIGZpeC9jbGVhbmluZyB0aGUgc3VyZmFjZSBsb2NraW5nIGNvZGUKKwktIG5vdyB3ZSBzdXBwb3J0IEQzRFRPUF9TVUJTVFJBQ1Qgc28gZGVjbGFyZSBpdCBpbiBjYXBzCisJLSBub3cgc3VwcG9ydCB0cnVlIDMyYml0ICh3ZWxsIFggMjQgYml0IGNhbiBiZSB1c2VkIGFzIDMyIGJpdCBpbiBjYXBzCisJICBjb2RlKQorCS0gZmlyc3QgdHJ5IHRvIGdldCBEM0RUU1NfVENJX0NBTUVSQVNQQUNFTk9STUFMIGFuZAorCSAgRDNEVFNTX1RDSV9DQU1FUkFTUEFDRVJFRkxFQ1RJT05WRUNUT1IgbG9vayBnb29kCisJLSBuYXRpdmUgc3VwcG9ydCAzMiBiaXQgc3VwcG9ydCAobm93IGFwcGxpY2F0aW9uIGNhbiBjaG9vc2UgMTYgb3IgMzIKKwkgIGJpdCBzdXBwb3J0KSBpZiBjdXJyZW50IHJlc29sdXRpb24gaXMgMjQgYml0IChhcyB3ZSBjYW4gb25seSBsYXVuY2gKKwkgIGdhbWVzIGluIHdpbmRvd2VkIG1vZGUpCisJLSB0ZXh0dXJlcyBwYWxldHRlcyBzdXBwb3J0CisJLSBmaXggcmVmbGV4aW9uIHBsYWNlbWVudCBjb2RlICh0aGUgc2RrIHNhbXBsZSBiZWdpbiB0byB3b3JrKQorCS0gZml4IGEgc3R1cGlkIGNyYXNoIHdoZW4gdXNpbmcgdHJhY2VzIGluIHZzaGFkZXJkZWNsYXJhdGlvbgorCS0gbW9yZSBtb3JlIHJlYWRhYmxlIHRyYWNlcyAoaW5pdC9jYXBzKQorCS0gbW9yZSBjdWJldGV4dHVyZXMgZml4ZXMKKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLCBkbGxzL2RkcmF3L21lc2EuYzoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCVNpbGVuY2Ugc29tZSBUUkFDRXMgdG8gYmV0dGVyIHNwb3QgcmVhbCBlcnJvcnMuCisKKwkqIGRsbHMvb2xlYXV0MzIvdmFyaWFudC5jOgorCVN0ZWZhbiBMZWljaHRlciA8U3RlZmFuLkxlaWNodGVyQGNhbUxpbmUuY29tPgorCVBhcnRpYWwgaW1wbGVtZW50YWlvbiBvZiBWYXJCc3RyRnJvbURlYy4KKworMjAwMy0wNS0xNiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy91c2VyL2hvb2sxNi5jLCBkbGxzL3VzZXIvd25kMTYuYywgbG9hZGVyL3Rhc2suYywKKwkgIHdpbmRvd3MvY3Vyc29yaWNvbi5jOgorCUF2b2lkIHVzaW5nIHRoZSBNYXBITW9kdWxlIGZ1bmN0aW9ucy4KKworCSogZGxscy9rZXJuZWwva2VybmVsMzIuc3BlYywgZGxscy91c2VyL3VzZXJfbWFpbi5jLCBsb2FkZXIvbmUvbW9kdWxlLmM6CisJQ2FsbCB0aGUgdXNlciBzaWduYWwgcHJvYyBmb3IgZXhlIG1vZHVsZXMgdG9vLCB0byBhdm9pZCBkdXBsaWNhdGluZworCXRoZSBtb2R1bGUgY2xlYW51cCBjb2RlLgorCisJKiBkbGxzL2tlcm5lbC9NYWtlZmlsZS5pbiwgZGxscy9rZXJuZWwvbG9jYWwxNi5jLCBtZW1vcnkvaGVhcC5jLAorCSAgbWVtb3J5L2xvY2FsLmM6CisJTW92ZWQgbW9zdCBsb2NhbCBoZWFwIGZ1bmN0aW9ucyB0byBkbGxzL2tlcm5lbC4KKworCSogZGxscy9vbGVhdXQzMi92YXJpYW50LmMsIGluY2x1ZGUvd3R5cGVzLmgsIGluY2x1ZGUvd3R5cGVzLmlkbDoKKwlTdGVmYW4gTGVpY2h0ZXIgPFN0ZWZhbi5MZWljaHRlckBjYW1MaW5lLmNvbT4KKwlGaXhlZCBERUNJTUFMX1NFVFpFUk8KKwlSZW1vdmVkIGEgd29ya2Fyb3VuZCBmb3IgdGhlIGZvcm1lciBwcm9ibGVtLgorCisJKiB0b29scy93aW5laW5zdGFsbDogTWlrZSBIZWFybiA8bWlrZUB0aGVvcmV0aWMuY29tPgorCVNpbGVuY2UgZXJyb3Igb24gbm9uLXJlZGhhdCBzeXN0ZW1zLgorCisJKiB0b29scy9jMm1hbi5wbDogSGFucyBMZWlkZWtrZXIgPGhhbnNAaXQudnUubmw+CisJRm9yY2UgcGVybCB0byB1c2UgYnl0ZSBzZW1hbnRpY3MuCisKKwkqIGRsbHMvd2luaW5ldC9odHRwLmM6CisJVXdlIEJvbm5lcyA8Ym9uQGVsZWt0cm9uLmlrcC5waHlzaWsudHUtZGFybXN0YWR0LmRlPgorCUhUVFBfSHR0cE9wZW5SZXF1ZXN0QTogQ2FsY3VsYXRlIHNpemUgZnJvbSB0aGUgcmlnaHQgYXJndW1lbnQuCisKKwkqIGdyYXBoaWNzL2JpdGJsdC5jOiBKYWVraWwgTGVlIDxKYWVraWwuTGVlQGVmaS5jb20+CisJSW1wbGVtZW50IE1hc2tCbHQgdXNpbmcgQml0Qmx0IChhZGFwdGVkIGJ5IERpbWl0cmllIE8uIFBhdW4pLgorCisJKiBkbGxzL2QzZDgvZGV2aWNlLmM6IEphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJSW1wbGVtZW50IHRleHR1cmUgdHJhbnNmb3JtIGZsYWdzIHRoZSBiZXN0IHdlIGNhbiBmb3Igbm93LgorCisJKiBkbGxzL2tlcm5lbC9NYWtlZmlsZS5pbiwgZGxscy9rZXJuZWwvYXRvbS5jLCBkbGxzL250ZGxsL01ha2VmaWxlLmluLAorCSAgbWVtb3J5L2F0b20uYzoKKwlNb3ZlZCBhdG9tIGZ1bmN0aW9ucyB0byBkbGxzL2tlcm5lbC4KKworCSogZGxscy9kM2Q4L2RldmljZS5jOiBKYXNvbiBFZG1lYWRlcyA8dXNAdGhlLWVkbWVhZGVzLmRlbW9uLmNvLnVrPgorCUZpeGVkIHJhbmdlIGNoZWNraW5nIG9uIHRoZSBudW1iZXIgb2YgbGlnaHRzLgorCVNpbGVuY2UgdGhlIGZpeG1lcy4KKworMjAwMy0wNS0xNSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRsbHMvY29tY3RsMzIvTWFrZWZpbGUuaW4sCisJICBkbGxzL2NvbWN0bDMyL3Rlc3RzLy5jdnNpZ25vcmUsIGRsbHMvY29tY3RsMzIvdGVzdHMvTWFrZWZpbGUuaW4sCisJICBkbGxzL2NvbWN0bDMyL3Rlc3RzL2RwYS5jOgorCVV3ZSBCb25uZXMgPGJvbkBlbGVrdHJvbi5pa3AucGh5c2lrLnR1LWRhcm1zdGFkdC5kZT4KKwlOZXcgY29tY3RsMzIgdGVzdCBkaXJlY3RvcnkgYW5kIHRlc3QgY2FzZSBmb3IgRFBBX1NlYXJjaC4KKworCSogZGxscy9jb21jdGwzMi9jb21jdGwzMnVuZG9jLmM6CisJVXdlIEJvbm5lcyA8Ym9uQGVsZWt0cm9uLmlrcC5waHlzaWsudHUtZGFybXN0YWR0LmRlPgorCURQQV9TZWFyY2g6IEhhbmRsZSBEUEFTX0lOU0VSVEJFRk9SRSBvbiBlbXB0eSBsaXN0LgorCisJKiBkbGxzL01ha2VmaWxlLmluLCBkbGxzL2tlcm5lbC8uY3ZzaWdub3JlLCBkbGxzL2tlcm5lbC9NYWtlZmlsZS5pbiwKKwkgIGRsbHMva2VybmVsL3dwcm9jcy5zcGVjLCBkbGxzL250ZGxsL01ha2VmaWxlLmluLAorCSAgZGxscy93aW5lZG9zLy5jdnNpZ25vcmUsIGRsbHMvd2luZWRvcy9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvd2luZWRvcy92eGQuYywgZGxscy93aW5lZG9zL3dwcm9jcy5zcGVjLCBtc2Rvcy92eGQuYzoKKwlNb3ZlZCB2eGQgc3VwcG9ydCB0byB3aW5lZG9zLgorCisJKiBkbGxzL2QzZDgvZGV2aWNlLmM6IEphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJU3VwcGx5IHRoZSBjb3JyZWN0IGJveCBvbiB0aGUgc2NyZWVuIHRvIGJlIHByb2Nlc3NlZCBkdXJpbmcgdGhlIGNsZWFyCisJY2FsbCwgdXNpbmcgb3BlbmdsIGNvb3JkaW5hdGVzLCBub3QgZGlyZWN0eCBjb29yZGluYXRlcy4KKworCSogZGxscy91c2VyL3VzZXIuZXhlLnNwZWMsIGRsbHMvdXNlci91c2VyMTYuYywgaW5jbHVkZS9tb2R1bGUuaCwKKwkgIGluY2x1ZGUvdXNlci5oLCBsb2FkZXIvbmUvbW9kdWxlLmMsIGxvYWRlci9uZS9zZWdtZW50LmMsCisJICBsb2FkZXIvdGFzay5jLCBzY2hlZHVsZXIvcHJvY2Vzcy5jLCBzY2hlZHVsZXIvdGhyZWFkLmMsCisJICB3aW5kb3dzL3VzZXIuYzoKKwlHZXQgcmlkIG9mIHRoZSAzMi1iaXQgdXNlciBzaWduYWwgcHJvYyBzaW5jZSB3ZSBhbHdheXMgcnVuIGJ1aWx0aW4KKwlVU0VSIG5vdy4gIE1vdmVkIFVTRVIgbW9kdWxlIGNsZWFudXBzIHRvIHRoZSAxNi1iaXQgc2lnbmFsIHByb2MuCisKKwkqIGRsbHMvb2xlYXV0MzIvb2xlYXV0MzIuc3BlYywgZGxscy9vbGVhdXQzMi92YXJpYW50LmM6CisJU3RlZmFuIExlaWNodGVyIDxTdGVmYW4uTGVpY2h0ZXJAY2FtTGluZS5jb20+CisJQWRkZWQgc3R1YiBmb3IgVmFyQnN0ckZyb21EZWMuCisKKwkqIGRsbHMvb2xlYXV0MzIvdHlwZWxpYi5jOiBNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlIYW5kbGUgVlRfSTIgPC0+IFZUX1VTRVJERUZJTkVEL1RLSU5EX0VOVU0gY29udmVyc2lvbnMgdG9vLgorCisJKiBmaWxlcy9maWxlLmM6IFBoaWxpcCBNYXNvbiA8cG1hc29uQHJpY2FyZG8uY29tPgorCUZvcmNlIEZJTEVfR2V0VGVtcEZpbGVOYW1lIHRvIGNvbnRpbnVlIGxvb2tpbmcgZm9yIG5ldyB0ZW1wIGZpbGUgbmFtZQorCWlmIGVycm9yIHJldHVybmVkIGZyb20gQ3JlYXRlRmlsZVcgaXMgRVJST1JfU0hBUklOR19WSU9MQVRJT04uCisKKwkqIGRsbHMvZDNkOC9kZXZpY2UuYzogSmFzb24gRWRtZWFkZXMgPHVzQHRoZS1lZG1lYWRlcy5kZW1vbi5jby51az4KKwlTb2x2ZWQgdGhlIHRyYW5zcGFyZW5jeSBwcm9ibGVtIHNlZW4gaW4gdGhlIENsaXBNaXJyb3IgU0RLIHNhbXBsZQorCXByb3Blcmx5LiBBbHNvIGEgZmV3IHRhYnMtPnNwYWNlcyB0byBjb3JyZWN0IGZvcm1hdHRpbmcuCisKKwkqIGRsbHMvb2xlMzIvTWFrZWZpbGUuaW4sIGRsbHMvb2xlMzIvbWVtbG9ja2J5dGVzLmMsCisJICBkbGxzL29sZTMyL21lbWxvY2tieXRlczE2LmM6CisJU3RldmVuIEVkd2FyZHMgPFN0ZXZlbl9FZDQxNTNAeWFob28uY29tPgorCVNlcGFyYXRlIFdpbjE2IGFuZCBXaW4zMiBpbXBsZW1lbnRhdGlvbnMgaW4gbWVtbG9ja2J5dGVzLgorCisJKiBkbGxzL2lwaGxwYXBpL2lwc3RhdHMuYzogR2VyYWxkIFBmZWlmZXIgPHBmZWlmZXJAZGJhaS50dXdpZW4uYWMuYXQ+CisJSW4gZ2V0VGNwVGFibGUoKSwgZ3VhcmQgTGludXgtc3BlY2lmaWMgY29uc3RhbnRzIGJ5ICNpZmRlZi4KKworCSogZGxscy93aW5lZG9zL2ludDIxLmM6IFRob21hcyBNZXJ0ZXMgPHRob21hcy5tZXJ0ZXNfYXRfZ214LmF0PgorCUltcGxlbWVudCBmaWxlIGNvbnRyb2wgYmxvY2sgKEZDQikgZnVuY3Rpb25zOgorCSAgSU5UMjFfT3BlbkZpbGVVc2luZ0ZDQiBbMHgwZl0sCisJICBJTlQyMV9DbG9zZUZpbGVVc2luZ0ZDQiBbMHgxMF0sCisJICBJTlQyMV9TZXF1ZW5pYWxSZWFkRnJvbUZDQiBbMHgxNF0sCisJICBJTlQyMV9TZXF1ZW5pYWxXcml0ZVRvRkNCIFsweDE1XSwKKwkgIElOVDIxX1JlYWRSYW5kb21SZWNvcmRGcm9tRkNCIFsweDIxXSwKKwkgIElOVDIxX1dyaXRlUmFuZG9tUmVjb3JkVG9GQ0IgWzB4MjJdLAorCSAgSU5UMjFfUmFuZG9tQmxvY2tSZWFkRnJvbUZDQiBbMHgyN10sCisJICBJTlQyMV9SYW5kb21CbG9ja1dyaXRlVG9GQ0IgWzB4MjhdLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9waXBlLmM6IERhbiBLZWdlbCA8ZGFua0BrZWdlbC5jb20+CisJTW9yZSBuYW1lZCBwaXBlcyB0ZXN0cy4KKworCSogZGxscy9NYWtlZmlsZS5pbiwgZGxscy9tYWtlX2RsbHM6CisJRXhwbGljaXRseSBjbGVhbiBnZW5lcmF0ZWQgc3ltbGlua3MuCisJUmVtb3ZlZCBubyBsb25nZXIgbmVlZGVkIGluc3RhbGwgZGVwZW5kZW5jaWVzLgorCisJKiBkbGxzL2tlcm5lbC9zeW5jLmMsIGRsbHMva2VybmVsL3Rlc3RzL3BpcGUuYywgZGxscy9udGRsbC9maWxlLmMsCisJICBpbmNsdWRlL3dpbmUvc2VydmVyX3Byb3RvY29sLmgsIHNlcnZlci9mZC5jLCBzZXJ2ZXIvZmlsZS5jLAorCSAgc2VydmVyL2ZpbGUuaCwgc2VydmVyL2hhbmRsZS5jLCBzZXJ2ZXIvbmFtZWRfcGlwZS5jLAorCSAgc2VydmVyL3Byb3RvY29sLmRlZiwgc2VydmVyL3NlcmlhbC5jLCBzZXJ2ZXIvdHJhY2UuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJLSByZXdyaXRlIG9mIHRoZSBuYW1lZCBwaXBlIGNvZGUKKwktIGFsbG93IE50RmlsZUZsdXNoQnVmZmVycyB0byB3YWl0CisJLSBhbGxvdyBEaXNjb25uZWN0TmFtZWRQaXBlIHRvIGludmFsaWRhdGUgY2xpZW50IGNhY2hlZCBmZAorCS0gZml4IHRoZSBwaXBlIHRlc3Qgbm93IHRoYXQgb25lIGV4dHJhIHRlc3QgcGFzc2VzCisKKwkqIGRsbHMvbnRkbGwvbnRkbGwuc3BlYywgZGxscy9udGRsbC9wYXRoLmMsIGRsbHMvbnRkbGwvcnRsLmMsCisJICBpbmNsdWRlL3dpbnRlcm5sLmgsIHNjaGVkdWxlci9wcm9jZXNzLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJSW1wbGVtZW50ZWQgUnRsRG9zUGF0aE5hbWVUb050UGF0aE5hbWVfVSwgUnRsR2V0Q3VycmVudERpcmVjdG9yeV9VLAorCVJ0bEdldEZ1bGxQYXRoTmFtZV9VIGFuZCBSdGxTZXRDdXJyZW50RGlyZWN0b3J5X1UgKHRoZSBsYXN0IG9uZQorCXBhcnRpYWxseSBhcyB3ZSBjYW4ndCB0ZXN0IHdoZXRoZXIgYSBwYXRoIGV4aXN0cyBvciBub3QpLgorCisJKiBkbGxzL2ltbTMyL2ltbS5jOiBSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwlGaXggYSBudWxsIHBvaW50ZXIgY3Jhc2ggaW4gSW1tR2V0T3BlblN0YXR1cy4KKworCSogZGxscy9kM2Q4L2N1YmV0ZXh0dXJlLmM6IFJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCUZpeCBjb21waWxhdGlvbiBlcnJvciByZXBvcnRlZCBieSBTdGVmYW4gTGVpY2h0ZXIgd2hlbiB1c2luZyBvbGQKKwlvcGVuR0wgaGVhZGVycy4KKworCSogZGxscy9kM2Q4L2RpcmVjdHguYzogSmFzb24gRWRtZWFkZXMgPHVzQHRoZS1lZG1lYWRlcy5kZW1vbi5jby51az4KKwlQcmV2aW91cyB2aWV3cG9ydCBmaXggb25seSB3b3JrcyBmb3IgZnVsbCBzY3JlZW4gYXBwbGljYXRpb25zIGFzIHdlCisJZGlkbid0IGNoYW5nZSB0aGUgYmFjayBidWZmZXIgc2l6ZSBpbmZvcm1hdGlvbiB1bnRpbCBhZnRlciBjb3B5aW5nIHRoZQorCXByZXNlbnRhdGlvbiBwYXJhbWV0ZXJzLCBzbyB3aGVuIHNldHRpbmcgdXAgdGhlIHZpZXdwb3J0IHRoZQorCWJhY2tidWZmZXJ3aWR0aC9oZWlnaHQgd2FzIDAuIE1vdmVkIHRoZSBjb3B5IHVudGlsIGFmdGVyIGl0IGhhcyBiZWVuCisJY29ycmVjdGVkLgorCisJKiBkbGxzL29sZWF1dDMyL29sZWF1dDMyLnNwZWMsIGRsbHMvb2xlYXV0MzIvdmFyaWFudC5jOgorCVN0ZWZhbiBMZWljaHRlciA8U3RlZmFuLkxlaWNodGVyQGNhbUxpbmUuY29tPgorCVBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2YgVmFyRGVjRnJvbVN0ci4KKworCSogY29udHJvbHMvZWRpdC5jOiBSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJUmV2ZXJ0IHRoZSBwcmV2aW91cyBwYXRjaCBmb3IgY2FwdHVyaW5nIGtleXMgaW4gYW4gZWRpdC1saXN0Ym94IGNvbWJvLgorCisyMDAzLTA1LTE0ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL250ZGxsL2xvYWRlci5jLCBpbmNsdWRlL21vZHVsZS5oLCBsb2FkZXIvcGVfaW1hZ2UuYywKKwkgIHNjaGVkdWxlci9wcm9jZXNzLmMsIHNjaGVkdWxlci90aHJlYWQuYzoKKwlSZXdyb3RlIG1vZHVsZSBUTFMgc3VwcG9ydCBhbmQgbW92ZWQgaXQgdG8gbnRkbGwuCisKKwkqIGRsbHMvbnRkbGwvc2lnbmFsX2kzODYuYywgaW5jbHVkZS9taXNjZW11LmgsIG1lbW9yeS9pbnN0ci5jOgorCU1hZGUgSU5TVFJfRW11bGF0ZUluc3RydWN0aW9uIHJldHVybiB0aGUgZXhjZXB0aW9uIGNvZGUuCisJRG9uJ3QgYWxsb3cgaW50WFggaW5zdHJ1Y3Rpb25zIGZyb20gMzItYml0IGNvZGUgKGJhc2VkIG9uIGEgcGF0Y2ggYnkKKwlKdWtrYSBIZWlub25lbikuCisKKwkqIHRvb2xzL3dpbmVidWlsZC9pbXBvcnQuYzoKKwlPbmx5IHByaW50IHdhcm5pbmcgb24gbm0gZmFpbHVyZSBiZWNhdXNlIGl0IGZhaWxzIG9uIGRhcndpbiBpZiB0aGVyZQorCWFyZSBubyBzeW1ib2xzIChyZXBvcnRlZCBieSBQaWVycmUgZCdIZXJiZW1vbnQpLgorCisJKiBkbGxzL3dpbm1tL3dpbmVqYWNrL01ha2VmaWxlLmluOiBNYXJjdXMgTWVpc3NuZXIgPG1laXNzbmVyQHN1c2UuZGU+CisJd2luZWphY2suZHJ2LnNvIG5lZWRzIC1sd2luZV91dWlkIHRvby4KKworCSogZGxscy9kM2Q4L3NoYWRlci5jOiBSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwktIG5ldyBkZWJ1ZyBjaGFubmVsIGZvciBzaGFkZXJzIGNvZGUgJ2QzZF9zaGFkZXInCisJLSBtb3JlIGRlYnVnZ2luZyB0cmFjZXMKKworCSogZGxscy9kM2Q4L2QzZDhfcHJpdmF0ZS5oLCBkbGxzL2QzZDgvZGV2aWNlLmM6CisJUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJLSBkZWNsYXJlIGEgbmV3IGRlYnVnIGNoYW5lbCBmb3IgdmVydGV4IHNoYWRlcnMKKwktIHNvbWUgdXNlZnVsIGRlYnVnIGZ1bmN0aW9ucyBmb3IgdGV4dHVyZXMgZm9ybWF0CisJLSBjb3JyZWN0IERyYXdQcmltaXRpdmUgKFJIVyBjb3JyZWN0bmVzcyBhbmQgdnNoYWRlciBSSFcpCisJLSBtb3JlIGNvcHlyZWN0cyBmaXhlcyAob25seSB0d28gdW5pbXBsZW1lbnRlZCBiZWhhdmlvciByZW1haW4pCisJLSBmaXggR2V0RnJvbnRCdWZmZXIgdG8gZ2V0IHNjcmVlbnNob3RzIHNhbXBsZXMgd29ya2luZworCS0gYWRkIEQzRENPTE9SVE9HTEZMT0FUNCBhbmQgdXNlIGl0CisJLSBmaXJzdCB0cnkgb2YgRDNEUlNfRk9HVEFCTEVNT0RFIHN1cHBvcnQKKworCSogZGxscy9kM2Q4L2RpcmVjdHguYzogUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJRGVjbGFyZSB0aGF0IHdlIGNhbiBzdXBwb3J0IGN1YmUgdGV4dHVyZXMgbm93IChjdXJyZW50bHkgb25seSBjcmVhdGlvbgorCWlzIGRvbmUpLgorCisJKiBpbmNsdWRlL3dpbnVzZXIuaDogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlBZGQgbWlzc2luZyBFTkRTRVNTSU9OX0xPR09GRiBkZWZpbmUuCisKKwkqIGRsbHMvY29tbWRsZy9wcmludGRsZy5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCVVzZSBTZXREbGdJdGVtVGV4dCBpbnN0ZWFkIG9mIHNlbmRpbmcgYSBXTV9TRVRURVhULgorCisJKiBkbGxzL2QzZDgvZGV2aWNlLmM6IEphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJTWFrZSBzdXJlIHRoZSB2aWV3cG9ydCBpcyBmcm9tIHRoZSBHTCAoYm90dG9tIGxlZnQpIG5vdCB0aGUgRGlyZWN0WAorCSh0b3AgbGVmdCkuCisKKzIwMDMtMDUtMTMgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvZ2RpL2VuaG1mZHJ2L2luaXQuYywgZGxscy9nZGkvbWZkcnYvaW5pdC5jLCBkbGxzL3R0eWRydi9kYy5jLAorCSAgZ3JhcGhpY3MveDExZHJ2L2JpdGJsdC5jLCBncmFwaGljcy94MTFkcnYvZGliLmMsCisJICBncmFwaGljcy94MTFkcnYvZ3JhcGhpY3MuYywgZ3JhcGhpY3MveDExZHJ2L2luaXQuYywKKwkgIGdyYXBoaWNzL3gxMWRydi9wYWxldHRlLmMsIGluY2x1ZGUvZ2RpLmgsIG9iamVjdHMvYml0bWFwLmMsCisJICBvYmplY3RzL2RjLmMsIG9iamVjdHMvZ2Rpb2JqLmM6CisJVXNlIGEgZGlmZmVyZW50IG1hZ2ljIGZvciBtZW1vcnkgRENzIGFuZCBnZXQgcmlkIG9mIHRoZSBEQ19NRU1PUlkKKwlmbGFnLgorCisJKiBkbGxzL2QzZDgvdm9sdW1ldGV4dHVyZS5jOiBSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwktIG1vdmVkIGxvYWRpbmcgY29kZSBvZiB2b2x1bWUgdGV4dHVyZSB0byBWb2x1bWVUZXh0dXJlOjpQcmVsb2FkIGFzCisJICBkb25lIGluIFRleHR1cmUvQ3ViZVRleHR1cmUKKwktIGZpeGVkIHNvbWUgc3R1YnMgcmV0dXJuIHZhbHVlcworCisJKiBkbGxzL2QzZDgvY3ViZXRleHR1cmUuYzogUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJLSBjdWJldGV4dHVyZSBsb2FkaW5nL3ByZWxvYWRpbmcKKwktIHNvbWUgc3R1YnMgbXVzdCByZXR1cm4gMCAoYW5kIG5vbiBEM0RfT0spCisJLSBmaXggSURpcmVjdDNEQ3ViZVRleHR1cmU4SW1wbDo6R2V0KiAocG90ZW50aWFscyBDRCkKKworCSogZGxscy9kM2Q4L2RldmljZS5jOiBKYXNvbiBFZG1lYWRlcyA8dXNAdGhlLWVkbWVhZGVzLmRlbW9uLmNvLnVrPgorCVByb3Blcmx5IHN1cHBvcnQgdGV4dHVyZSBjb29yZGluYXRlIGluZGV4ZXMuCisKKwkqIGRsbHMvZDNkOC9kaXJlY3R4LmM6IEphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJTWFrZSBzdXJlIHdlIGFkdmVydGl6ZSBvdXIgY2FwYWJpbGl0ZXMgY29ycmVjdGx5LgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9wYXRoLmM6IE1ha2UgdGhlIHRlc3QgcGFzcyBvbiBOVDQgdG9vLgorCisJKiBkbGxzL2QzZDgvc3RhdGVibG9jay5jOiBKYXNvbiBFZG1lYWRlcyA8dXNAdGhlLWVkbWVhZGVzLmRlbW9uLmNvLnVrPgorCUluaXRpYWxpemUgdGhlIHRleCBjb29yZCBpbmRleCBjb3JyZWN0bHkuCisKKwkqIGRsbHMvZDNkOC9kZXZpY2UuYzogSmFzb24gRWRtZWFkZXMgPHVzQHRoZS1lZG1lYWRlcy5kZW1vbi5jby51az4KKwlDb3B5UmVjdHMgbmVlZHMgdG8gbG9jayB0aGUgYXJlYSBpdCBpcyBjb3B5aW5nIHRvIChlc3AuIGlmIHRoYXQgYXJlYQorCWlzIHRoZSBiYWNrIGJ1ZmZlciwgYXMgbG9ja2luZy91bmxvY2tpbmcgY2F1c2VzIGdscmVhZC9kcmF3IHBpeGVscykuCisKKwkqIGRsbHMvZDNkOC9kaXJlY3R4LmM6IENocmlzdGlhbiBDb3N0YSA8dGl0YW4uY29zdGFAd2FuYWRvby5mcj4KKwlNYXJrIHNvbWUgc3VyZmFjZSBmb3JtYXRzIGFzIG5vdCBzdXBwb3J0ZWQuCisKKwkqIGRsbHMvbXN2Y3J0L3NjYW5mLmgsIGRsbHMvbXN2Y3J0L3Rlc3RzL3NjYW5mLmM6CisJVXdlIEJvbm5lcyA8Ym9uQGVsZWt0cm9uLmlrcC5waHlzaWsudHUtZGFybXN0YWR0LmRlPgorCUZpeCBzb21lIHNzY2FuZiBjYXNlcyBhbmQgdGVzdGNhc2UgdG8gZ2V0IHd4dGlkZTMyLmV4ZSBydW5uaW5nLgorCisJKiBkbGxzL3VzZXIvZXh0aWNvbi5jOiBSb2JlcnQgU2hlYXJtYW4gPFIuSi5TaGVhcm1hbkB3YXJ3aWNrLmFjLnVrPgorCVByaXZhdGVFeHRyYWN0SWNvbiogc2hvdWxkIHNlYXJjaCB0aGUgcGF0aCBmb3IgdGhlIGljb24gZmlsZS4KKworCSogZGxscy9jb21jdGwzMi90b29sYmFyLmM6IFZpdGFsaXkgTWFyZ29sZW4gPHdpbmUtcGF0Y2hAa2lldmluZm8uY29tPgorCVJldmVydCBjaGFuZ2UgZm9yIHJlc2l6aW5nIGJ1dHRvbnMuCisKKwkqIGRsbHMvaXBobHBhcGkvaXBobHBhcGlfbWFpbi5jLCBkbGxzL2lwaGxwYXBpL2lwc3RhdHMuYzoKKwlHZXJhbGQgUGZlaWZlciA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KKwlBZGQgbWlzc2luZyAjaW5jbHVkZXMgZm9yIG5vbi1MaW51eCBzeXN0ZW1zLgorCisJKiB0b29scy93aW5laW5zdGFsbDogTWlrZSBIZWFybiA8bWlrZUB0aGVvcmV0aWMuY29tPgorCU1ha2Ugc3VyZSBwcmVmaXggaXMgYWN0dWFsbHkgaG9ub3VyZWQgYnkgY29uZmlndXJlLgorCVRlbXBvcmFyeSBoYWNrIGZvciByZWRoYXQgdXNlcnMgdG8gZW5hYmxlIE5QVEwuCisKKwkqIGRsbHMva2VybmVsL3Jlc291cmNlLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJRml4IGFuIG9idmlvdXMgdHlwbyBpbiBnZXRfcmVzX25hbWUuIFNwb3R0ZWQgYnkgTWlrZSBNY0Nvcm1hY2suCisKKwkqIGRsbHMvb2xlYXV0MzIvdGVzdHMvc2FmZWFycmF5LmMsIGRsbHMvb2xlYXV0MzIvdGVzdHMvdmFydGVzdC5jOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJTWFrZSBzdXJlIHdpbnNvY2suaCBnZXRzIGluY2x1ZGVkIGJlZm9yZSBzdGRsaWIuaC4KKworCSogZGxscy91c2VyL3VzZXIzMi5zcGVjLCBpbmNsdWRlL3dpbnVzZXIuaCwgd2luZG93cy9xdWV1ZS5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlJbXBsZW1lbnRlZCBTZXRNZXNzYWdlRXh0cmFJbmZvLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9wYXRoLmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJQWRkZWQgYSB0ZXN0IGZvciBHZXRMb25nUGF0aE5hbWVBKCJjOiIpLgorCUFkZGVkIGEgdGVzdCBmb3IgR2V0RnVsbFBhdGhOYW1lQSgiYzoiKS4KKwlGaXggYSBudW1iZXIgb2YgbWVzc2FnZXMgdGhhdCByZWZlcnJlZCB0byBHZXRMb25nUGF0aE5hbWUgaW5zdGVhZCBvZgorCUdldEZ1bGxQYXRoTmFtZS4KKworCSogZGxscy9zaGRvY3Z3Ly5jdnNpZ25vcmUsIGRsbHMvc2hkb2N2dy9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvc2hkb2N2dy92ZXJzaW9uLnJjLCBkbGxzL3dpbnNvY2svLmN2c2lnbm9yZSwKKwkgIGRsbHMvd2luc29jay9NYWtlZmlsZS5pbiwgZGxscy93aW5zb2NrL3ZlcnNpb24ucmMsCisJICBkbGxzL3dzb2NrMzIvLmN2c2lnbm9yZSwgZGxscy93c29jazMyL01ha2VmaWxlLmluLAorCSAgZGxscy93c29jazMyL3ZlcnNpb24ucmM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCB2ZXJzaW9uIGluZm9ybWF0aW9uLgorCisJKiBkbGxzL3dpbnNwb29sL2luZm8uYywgZGxscy93aW5zcG9vbC93aW5zcG9vbC5kcnYuc3BlYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCVN0dWIgQWRkUG9ydEEuCisKKwkqIGRsbHMvdXNlci9tZXNzYWdlLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXhlZCBwYWNraW5nL3VucGFja2luZyBvZiBXTV9XSU5JTklDSEFOR0UuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGVsbDMyLnNwZWMsIGRsbHMvc2hlbGwzMi9zaGVsbG9yZC5jOgorCVVscmljaCBDemVrYWxsYSA8dWN6ZWthbGxhQGNvZGV3ZWF2ZXJzLmNvbT4KKwlQYXJ0aWFsIGltcGxlbWVudGF0aW9uL3N0dWIgb2YgdW5kb2N1bWVudGVkIGZ1bmN0aW9uIHNoZWxsMzIuMjU2LgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGwzMl9tYWluLmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJUGFzcyBjb3JyZWN0IHBvaW50ZXIgdG8gQ29DcmVhdGVJbnN0YW5jZSBpbiBTSExvYWRJblByb2MuCisKKwkqIGRsbHMvc2V0dXBhcGkvZGV2aW5zdC5jLCBkbGxzL3NldHVwYXBpL3NldHVweC5zcGVjOgorCUh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50IGEgbG9hZCBvZiBzZXR1cHggRGkqIHN0dWJzLgorCisJKiBkbGxzL3NldHVwYXBpL2luc3RhbGwuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlVc2Ugc3RydG91bFcgaW5zdGVhZCBvZiBzdHJ0b2xXIGZvciBEV09SRCBjb252ZXJzaW9uLgorCisJKiBkbGxzL29sZWF1dDMyL3R5cGVsaWIuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZW1vdmUgcmVkdW5kYW50IElUeXBlTGliMl9BZGRSZWYncy4gTWFrZXMKKwlMb2FkVHlwZUxpYi9JVHlwZUxpYjJfUmVsZWFzZSB3b3JrLgorCisJKiBkbGxzL29sZTMyL2NvbXBvYmouYywgZGxscy9vbGUzMi9vbGUzMi5zcGVjOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBzdHViIGZvciBPbGVEb0F1dG9Db252ZXJ0LgorCisJKiBkbGxzL2ltbTMyL01ha2VmaWxlLmluLCBkbGxzL2ltbTMyL2ltbS5jOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50ZWQgYSBudW1iZXIgb2YgSU1NIGZ1bmN0aW9ucy4KKwlDcmVhdGUgYSBkZWZhdWx0IEhXTkQgdG8gcHJvY2VzcyBXTV9JTUUgbWVzc2FnZXMuCisKKwkqIGRsbHMvY29tbWRsZy9maWxlZGxnLmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJQmV0dGVyIGhhbmRsaW5nIG9mIE9GTl9OT1ZBTElEQVRFIGZvciB3aW4zMSBzdHlsZSBmaWxlIGRpYWxvZ3MuCisKKwkqIGRsbHMvY29tY3RsMzIvcGFnZXIuYzogVWxyaWNoIEN6ZWthbGxhIDx1Y3pla2FsbGFAY29kZXdlYXZlcnMuY29tPgorCUZpeGVkIGJhZCBub24tY2xpZW50IGNhbGN1bGF0aW9uLgorCisJKiBkbGxzL2NvbWN0bDMyL2RhdGV0aW1lLmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJRml4IERUTV9TRVRTWVNURU1USU1FLgorCU1ha2UgdGhlIHNob3cvaGlkZSBidXR0b24gYWN0dWFsbHkgZG8gc29tZXRoaW5nLgorCUFkZCBzdXBwb3J0IGZvciB0aGUgJ3l5eXknIGZvcm1hdC4KKworCSogZGxscy9pcGhscGFwaS9pZmVudW0uYzogRml4ZWQgc29tZSBzdHJpbmcgb3ZlcmZsb3dzLgorCisJKiBkbGxzL2lwaGxwYXBpLy5jdnNpZ25vcmU6IEFkZGVkIGlwaGxwYXBpLnNwZWMuZGVmLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9waXBlLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJTWFrZSBzdXJlIHdpbnNvY2suaCBnZXRzIGluY2x1ZGVkIGJlZm9yZSBzdGRsaWIuaC4KKworCSogZG9jdW1lbnRhdGlvbi93aW5lbGliLWludHJvLnNnbWw6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJRml4IGEgZmV3IHN0eWxlIGlzc3Vlcy4KKworCSogdG9vbHMvd2luZWR1bXAvbWFpbi5jLCB0b29scy93aW5lZHVtcC9wZS5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCUxpc3RlZCByZWNlbnRseSBhZGRlZCBzZWN0aW9ucycgdHlwZXMgKHJlc291cmNlLCB0bHMpIGZvciBkdW1waW5nIHRvCisJdXNhZ2Ugc3RyaW5ncy4KKwlGaXhlZCBzb21lIGhlYWRlciBzaXplIHRlc3RpbmcuCisKKwkqIHByb2dyYW1zL3dpbmVjb25zb2xlL3JlZ2lzdHJ5LmM6IEVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCVF1aWV0IHNvbWUgdmFsZ3JpbmQgcmVwb3J0cy4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvLmN2c2lnbm9yZSwgZGxscy9rZXJuZWwvdGVzdHMvTWFrZWZpbGUuaW4sCisJICBkbGxzL2tlcm5lbC90ZXN0cy9jb25zb2xlLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJQWRkZWQgYSBzZXQgb2YgdGVzdHMgZm9yIHRoZSBjb25zb2xlIEFQSS4KKworCSogZGxscy9rZXJuZWwvY29uc29sZS5jOiBFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwlGaXhlZCBjb25zb2xlIG91dHB1dCBmb3Igbm9uIHdyYXBwZWQgbW9kZS4KKworCSogZGxscy9udGRsbC90ZXN0cy9lbnYuYzogRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJRW5oYW5jZWQgdGVzdCBmb3IgcXVlcmllcywgYWRkZWQgdGVzdHMgZm9yIGV4cGFuc2lvbi4KKworCSogZGxscy9udGRsbC9lbnYuYywgZGxscy9udGRsbC9udGRsbC5zcGVjLCBpbmNsdWRlL3dpbnRlcm5sLmg6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJSW1wbGVtZW50ZWQgUnRsRXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzX1UgYW5kIGZpeGVkIGFuIGluY29ycmVjdAorCWJlaGF2aW9yIGluIFJ0bFF1ZXJ5RW52aXJvbm1lbnRTdHJpbmcuCisKKwkqIHRvb2xzL3dpbmVnY2MuYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlJZ25vcmUgLW10aHJlYWRzLCBpdCdzIG5vdCBuZWVkZWQgaW4gVW5peC4KKworCSogZGxscy9zaGRvY3Z3L3NoZG9jdncuc3BlYywgZGxscy9zaGRvY3Z3L3NoZG9jdndfbWFpbi5jOgorCUFuZHJlYXMgTW9ociA8YW5kaUByaGx4MDEuZmh0LWVzc2xpbmdlbi5kZT4KKwlBZGRlZCBzb21lIHN0dWJzIG5lZWRlZCBmb3IgV2luOTggZXhwbG9yZXIuZXhlLgorCisJKiBkbGxzL3dzb2NrMzIvTWFrZWZpbGUuaW4sIGRsbHMvd3NvY2szMi9zb2NrZXQuYywKKwkgIGRsbHMvd3NvY2szMi93c2NvbnRyb2wuaDoKKwlKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJQ2hhbmdlZCB3c29jazMyIHRvIHVzZSB0aGUgbmV3IGlwaGxwYXBpIGZvciBpbnRlcmZhY2UgYW5kIHJvdXRlCisJZW51bWVyYXRpb24gaW4gV3NDb250cm9sLgorCisJKiBkbGxzL3dpbnNvY2svTWFrZWZpbGUuaW4sIGRsbHMvd2luc29jay9zb2NrZXQuYzoKKwlKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJVXNlIGlwaGxwYXBpIHRvIGltcGxlbWVudCBTSU9fR0VUX0lOVEVSRkFDRV9MSVNUIGluIFdTQUlvY3RsLCBhbmQKKwljb3JyZWN0cyBpaUZsYWdzIGVudHJ5IGluIHRoZSByZXR1cm5lZCBpbnRlcmZhY2UgbGlzdC4KKworCSogcHJvZ3JhbXMvd2luZWRiZy9nZGJwcm94eS5jOiBVc2UgaW50IGluc3RlYWQgb2Ygc29ja2xlbl90LgorCisJKiBjb250cm9scy9lZGl0LmM6IFZpdGFsaXkgTWFyZ29sZW4gPHdpbmUtcGF0Y2hAa2lldmluZm8uY29tPgorCUZpeCBwcm9ibGVtIHdpdGggY2FwdHVyaW5nIFtyZXR1cm5dIGtleXMgaW4gbXVsdGktbGluZSBlZGl0cy4KKworCSogZGxscy9jb21jdGwzMi90b29sYmFyLmM6IFZpdGFsaXkgTWFyZ29sZW4gPHdpbmUtcGF0Y2hAa2lldmluZm8uY29tPgorCUdldCByaWQgb2YgZGlyZWN0IEltYWdlTGlzdCBhY2Nlc3MgaGFja3MuCisKKwkqIGRsbHMvY29tY3RsMzIvaW1hZ2VsaXN0LmMsIGRsbHMvY29tY3RsMzIvaW1hZ2VsaXN0Lmg6CisJVml0YWxpeSBNYXJnb2xlbiA8d2luZS1wYXRjaEBraWV2aW5mby5jb20+CisJUmVhcnJhbmdlIG1lbWJlcnMgb2YgSElNQUdFTElTVCB0byBtYXRjaCBXaW5kb3dzLgorCVJldXNlIGltYWdlIGFuZCBtYXNrIERDcy4KKworCSogZGxscy9udGRsbC9zaWduYWxfcG93ZXJwYy5jOiBQaWVycmUgZCdIZXJiZW1vbnQgPHN0ZWdlZmluQGZyZWUuZnI+CisJLSBTYXZlIG1vcmUgcmVnaXN0ZXJzIChleGNlcHRpb24sIGZsb2F0Li4uKSBpZiB0aGV5IGFyZSBkZWZpbmVkLgorCS0gQWRkIE1hYyBPUyBYIHNpZ25hbCBzdXBwb3J0LgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGxscy9NYWtlZmlsZS5pbiwgZGxscy9pcGhscGFwaS8uY3ZzaWdub3JlLAorCSAgZGxscy9pcGhscGFwaS9NYWtlZmlsZS5pbiwgZGxscy9pcGhscGFwaS9pZmVudW0uYywKKwkgIGRsbHMvaXBobHBhcGkvaWZlbnVtLmgsIGRsbHMvaXBobHBhcGkvaXBobHBhcGkuc3BlYywKKwkgIGRsbHMvaXBobHBhcGkvaXBobHBhcGlfbWFpbi5jLCBkbGxzL2lwaGxwYXBpL2lwc3RhdHMuYywKKwkgIGRsbHMvaXBobHBhcGkvaXBzdGF0cy5oLCBpbmNsdWRlL01ha2VmaWxlLmluLCBpbmNsdWRlL2NvbmZpZy5oLmluLAorCSAgaW5jbHVkZS9pcGV4cG9ydC5oLCBpbmNsdWRlL2lwaGxwYXBpLmgsIGluY2x1ZGUvaXBpZmNvbnMuaCwKKwkgIGluY2x1ZGUvaXBydHJtaWIuaCwgaW5jbHVkZS9pcHR5cGVzLmg6CisJSnVhbiBMYW5nIDxqdWFuX2xhbmdAeWFob28uY29tPgorCUFkZGVkIGFuIGltcGxlbWVudGF0aW9uIG9mIGlwaGxwYXBpLmRsbDsgbW9zdCBHZXQqIGZ1bmN0aW9ucworCWludHJvZHVjZWQgdGhyb3VnaCBXaW45OCBhcmUgaW5jbHVkZWQuCisKKwkqIGRsbHMva2VybmVsL2tlcm5lbF9tYWluLmMsIHNjaGVkdWxlci9zeXNkZXBzLmMsIHNjaGVkdWxlci90aHJlYWQuYzoKKwlBbGxvY2F0ZS9mcmVlIHRoZSAxNi1iaXQgdGhyZWFkIHN0YWNrIGluIHRoZSBrZXJuZWwgZGxsIGluaXQgcm91dGluZS4KKworCSogZGxscy9nZGkvcHJpbnRkcnYuYzoKKwlSZXNldCBzaWduYWwgaGFuZGxlcnMgd2hlbiBzdGFydGluZyBjaGlsZCBwcm9jZXNzLgorCisJKiBkbGxzL2F2aWZpbDMyL2FjbXN0cmVhbS5jLCBkbGxzL2F2aWZpbDMyL2FwaS5jLAorCSAgZGxscy9hdmlmaWwzMi9hdmlmaWxlLmMsIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21lc2EuYywKKwkgIGRsbHMvZHBsYXl4L25hbWVfc2VydmVyLmMsIGRsbHMva2VybmVsL3Rlc3RzL3BhdGguYywKKwkgIGRsbHMvbXN2Y3J0L2V4Y2VwdC5jLCBkbGxzL250ZGxsL3J0bGJpdG1hcC5jLCBkbGxzL29sZTMyL2NvbXBvYmouYywKKwkgIGRsbHMvb2xlMzIvY29tcG9ial9wcml2YXRlLmgsIGRsbHMvb2xlMzIvZnRtYXJzaGFsLmMsCisJICBkbGxzL29sZTMyL21hcnNoYWwuYywgZGxscy9vbGUzMi9vbGVwcm94eS5jLCBkbGxzL29sZTMyL3N0b3JhZ2UzMi5jLAorCSAgZGxscy9vbGVhdXQzMi90bWFyc2hhbC5jLCBkbGxzL29sZWF1dDMyL3R5cGVsaWIuYywKKwkgIGRsbHMvb2xlYXV0MzIvdXNybWFyc2hhbC5jLCBkbGxzL3JwY3J0NC9ycGNydDRfbWFpbi5jLAorCSAgZGxscy9ycGNydDQvcnBjc3NfbnBfY2xpZW50LmMsIGRsbHMvc2V0dXBhcGkvc2V0dXBhcGkucmMsCisJICBkbGxzL3NoZWxsMzIvc2hyZXMucmMsIGRsbHMvc2hsd2FwaS9wYXRoLmMsCisJICBkb2N1bWVudGF0aW9uL2RvY3VtZW50YXRpb24uc2dtbCwgZG9jdW1lbnRhdGlvbi9wb3J0aW5nLnNnbWwsCisJICBkb2N1bWVudGF0aW9uL3dpbmVsaWItcG9ydGluZy5zZ21sLCBncmFwaGljcy9wYWludGluZy5jLAorCSAgbXNkb3MvcHBkZXYuYywgcHJvZ3JhbXMvcnBjc3MvcnBjc3NfbWFpbi5jLCB0b29scy9jMm1hbi5wbDoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlGaXggbWlzY2VsbGFuZW91cyBzcGVsbGluZyBlcnJvcnMgYW5kIHR5cG9zLgorCisJKiBpbmNsdWRlL3dpbnNvY2suaCwgaW5jbHVkZS93aW5zb2NrMi5oOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJQWRkIHByb3RvdHlwZSBmb3IgX19XU0FGRElzU2V0LiBGaXggc3ludGF4IGVycm9yLgorCisJKiBkbGxzL29sZTMyL29sZTJzdHVicy5jLCBpbmNsdWRlL29iamlkbC5oLCBpbmNsdWRlL29iamlkbC5pZGw6CisJUm9iZXJ0IFNoZWFybWFuIDxSLkouU2hlYXJtYW5Ad2Fyd2ljay5hYy51az4KKwktIEltcGxlbWVudCBhIGZldyBtb3JlIGNhc2VzIGluIFByb3BWYXJpYW50Q2xlYXIuCisJLSBQYXJ0aWFsbHkgaW1wbGVtZW50IFByb3BWYXJpYW50Q29weS4KKwktIEltcGxlbWVudCBGcmVlUHJvcFZhcmlhbnRBcnJheS4KKworCSogZG9jdW1lbnRhdGlvbi9zYW1wbGVzL2NvbmZpZzogTWFyY3VzIE1laXNzbmVyIDxtZWlzc25lckBzdXNlLmRlPgorCUFkZGVkIDIgbW9yZSBJbnN0YWxsU2hpZWxkIHRlbXBvcmFyeSBleGVzIGZvciBEZXNrdG9wIE1vZGUuCisKKwkqIGRsbHMva2VybmVsL3dvd3RodW5rLmM6IEVyaWMgUG91ZWNoIDxlcmljLnBvdWVjaEB3YW5hZG9vLmZyPgorCVN1cHBvcnQgMTQgYW5kIDE1IGFyZ3VtZW50cyBpbiBXT1dfQ2FsbFByb2MzMlcxNi4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOgorCVJvYmVydCBTaGVhcm1hbiA8Ui5KLlNoZWFybWFuQHdhcndpY2suYWMudWs+CisJRml4IHVzZSBvZiBmcmVlZCBtZW1vcnkuCisKKwkqIGRsbHMvbXN2Y3J0L3Rlc3RzL2ZpbGUuYywgZGxscy9zaGx3YXBpL3Rlc3RzL3BhdGguYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlDaGFuZ2UgdGhlICNpbmNsdWRlIG9yZGVyIHNvIHRoZSB0ZXN0IGNvbXBpbGVzIHdpdGggdGhlIE1TVkMgaGVhZGVycy4KKwlGaXggYSBmZXcgc2lnbmVkL3Vuc2lnbmVkIHdhcm5pbmdzLgorCisJKiB0b29scy93aW5hcGkvbXN2Y21ha2VyOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlsaWJyYXJ5L01ha2VmaWxlLmluIGFuZCB1bmljb2RlL01ha2VmaWxlLmluIGRvbid0IGV4aXN0IGFueW1vcmUuCisKKwkqIG1pc2MvbWFpbi5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCVNtYWxsIGRlYnVnIGNoYW5uZWwgY2xlYW51cC4KKworCSogZGxscy9udGRsbC9sb2FkZXIuYzogUm9iZXJ0IFNoZWFybWFuIDxSLkouU2hlYXJtYW5Ad2Fyd2ljay5hYy51az4KKwlGaXggTlVMTCBwb2ludGVyIGVycm9yIHdoZW4gZGlzcGxheWluZyBlcnJvciBtZXNzYWdlIGFib3V0IG1pc3NpbmcKKwlmb3J3YXJkZWQgZXhwb3J0LgorCisyMDAzLTA1LTEyICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3VzZXIvdXNlcjMyLnNwZWM6CisJQ29tbWVudGVkIG91dCB0aGUgbmV3IHdpbjk4IGV4cG9ydHMsIHRoZXkgYXJlIGNhdXNpbmcgdHJvdWJsZS4KKworCSogZGxscy9udGRsbC9udGRsbC5zcGVjOiBBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCVJ0bFVuaWNvZGVUb011bHRpQnl0ZVNpemUgYXJndW1lbnQgaXMgbm90IGEgbnVsbCB0ZXJtaW5hdGVkIHN0cmluZywKKwl1c2UgJ3B0cicuCisKKwkqIGRsbHMvbnRkbGwvaGVhcC5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFkZGVkIG1pc3NpbmcgcmV0dXJuIGluIEhFQVBfVmFsaWRhdGVJblVzZUFyZW5hLgorCisJKiBkbGxzL21zdmNydC9kaXIuYywgZGxscy9tc3ZjcnQvbXN2Y3J0LnNwZWM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudGVkIF93ZnVsbHBhdGguCisKKwkqIGRsbHMvbXByL3B3Y2FjaGUuYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlCZXR0ZXIgZXJyb3IgcmV0dXJuIHZhbHVlcyBmcm9tIHN0dWIgZnVuY3Rpb25zLgorCisJKiBkbGxzL21wci9tcHIuc3BlYywgZGxscy9tcHIvbXByX21haW4uYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUFkZGVkIHN0dWIgZm9yIERsbENhblVubG9hZE5vdy4KKworCSogZGxscy9rZXJuZWwvc3luYy5jOiBBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUlnbm9yZSByZXF1ZXN0ZWQgYWNjZXNzIHJpZ2h0cyB3aGVuIGVtdWxhdGVkIHZlcnNpb24gaXMgbm90IE5ULgorCisJKiBkbGxzL2dkaS9tZmRydi9ncmFwaGljcy5jOiBXYXJyZW4gQmFpcmQgPFdhcnJlbl9CYWlyZEBjaW1tZXRyeS5jb20+CisJRml4IHRoZSBQb2x5UG9seWdvbiBmdW5jdGlvbiBzbyBpdCByZWFsbHkgZ2VuZXJhdGVzIGEgcG9seXBvbHlnb24gYW5kCisJbm90IG11bHRpcGxlIHNldHMgb2YgcG9seWdvbnMuCisKKwkqIGRsbHMvZ2RpL3ByaW50ZHJ2LmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJQWxsb3cgdGhlIGN1cHMgcG9ydCB0byBiZSByZWRpcmVjdGFibGUuICBUaGlzIGdpdmVzIHVzIHRoZSBvcHRpb24gb2YKKwlwaXBpbmcgdGhlIFBvc3RTY3JpcHQgdGhyb3VnaCBzb21ldGhpbmcgYmVmb3JlIGl0IGdldHMgc2VudCB0byB0aGUKKwlwcmludGVyIChsaWtlIHdlIGNhbiBhbHJlYWR5IGRvIGZvciBub24tY3VwcyBzeXN0ZW1zKS4KKworCSogZGxscy9jdGwzZC9jdGwzZDMyLmMsIGRsbHMvY3RsM2QvY3RsM2QzMi5zcGVjOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBvcmRpbmFscyB0byBjdGwzZDMyLmRsbCwgTXlPREJDIHJlZmVyZW5jZXMgaXQgYnkgb3JkaW5hbC4KKworCSogY29udHJvbHMvY29tYm8uYywgY29udHJvbHMvZWRpdC5jOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJQWRkZWQgaGFuZGxpbmcgb2YgV01fSU1FX0NIQVIuCisKKwkqIGNvbnRyb2xzL3N0YXRpYy5jLCBpbmNsdWRlL3dpbnVzZXIuaDoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFkZGVkIGRlZmluaXRpb24gb2YgU1NfVVNFUklURU0uCisKKwkqIGRsbHMvY3J5cHQzMi9jcnlwdDMyLnNwZWMsIGRsbHMvY3J5cHQzMi9tYWluLmMsIGluY2x1ZGUvd2luY3J5cHQuaDoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJQWRkZWQgc3R1YnMgZm9yIENlcnRTYXZlU3RvcmUgYW5kIENlcnRFbnVtQ2VydGlmaWNhdGVzSW5TdG9yZS4KKworCSogZGxscy9jb21jdGwzMi9tb250aGNhbC5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUZpeGVkIGEgcG9zc2libGUgbWVtb3J5IGNvcnJ1cHRpb24uCisJRml4ZWQgYSBtZW1vcnkgbGVhay4KKworCSogY29udHJvbHMvbWVudS5jOiBEb24ndCB0cmFjayB0aGUgc3lzdGVtIG1lbnUgZm9yIG1hbmFnZWQgd2luZG93cy4KKworCSogZGxscy9kM2Q4L2N1YmV0ZXh0dXJlLmMsIGRsbHMvZDNkOC9kM2Q4X3ByaXZhdGUuaCwKKwkgIGRsbHMvZDNkOC9kZXZpY2UuYywgZGxscy9kM2Q4L3N1cmZhY2UuYywgZGxscy9kM2Q4L3RleHR1cmUuYywKKwkgIGRsbHMvZDNkOC92b2x1bWUuYywgZGxscy9kM2Q4L3ZvbHVtZXRleHR1cmUuYzoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwktIHN1cmZhY2UgcG9vbCBpbml0IGZpeGVzCisJLSBtaW5vciBpbmRlbnRhdGlvbiBhbmQgdHJhY2VzIGZpeGVzCisJLSBmaXggbG9ja2luZy91bmxvY2tpbmcvZGlydHkgYmVoYXZpb3IgKGRpcnRpZnkgb24gbG9jaykgKworCSAgb3B0aW1pc2F0aW9ucyAob25seSBjb3B5IHdoZW4gZGlydHkpCisJLSBmaXggSURpcmVjdDNERGV2aWNlODo6Q2xlYXIgYmVoYXZpb3IgKHByb2JsZW0gc2VlbiBhZnRlciBhCisJICBsb2NraW5nL3VubG9ja2luZyBjb2RlIGVycm9yKQorCS0gYmVnaW4gdG8gZml4IHZvbHVtZSBhbmQgY3ViZSB0ZXh0dXJlcyBtYW5hZ2VtZW50CisKKwkqIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21haW4uYywgZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLAorCSAgZGxscy9kZHJhdy9kM2R0ZXh0dXJlLmMsIGRsbHMvZGRyYXcvZGlyZWN0M2QvbWFpbi5jLAorCSAgZGxscy9kZHJhdy9kaXJlY3QzZC9tZXNhLmMsIGRsbHMvZGRyYXcvbWVzYS5jLAorCSAgZGxscy9kZHJhdy9tZXNhX3ByaXZhdGUuaDoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCS0gc2VwYXJhdGUgZ2VvbWV0cnkgdHJhY2luZyBpbiBhIG5ldyBkZWJ1ZyBjaGFubmVsIChkZHJhd19nZW9tKQorCS0gYWRkZWQgaGFuZGxpbmcgZm9yIHNvbWUgbmV3IHRleHR1cmluZyBvcHMKKwktIHByZXBhcmUgZm9yIGFkZGl0aW9uIG9mIG11bHRpLXRleHR1cmluZworCS0gYW5vdGhlciB3YXkgdG8gZml4IHRoZSBkZXZpY2UgZW51bWVyYXRpb24gZm9yIHRoZSByZWZlcmVuY2UgZGV2aWNlCisJLSBmaXggY29tcGlsYXRpb24gd2l0aCBzb21lIGdsZXh0LmggZmlsZXMKKwktIGZpeCBhIGJ1ZyBpbiBvbmUgdGV4dHVyZSBjb252ZXJzaW9uIGZ1bmN0aW9uCisJLSBhZGRlZCBuZXcgdGV4dHVyZSBmb3JtYXQgKGJ1dCBzdGlsbCB0ZXh0dXJpbmcgcHJvYmxlbXMgaW4gM0RNYXJrMjAwMCkKKworCSogZGxscy93c29jazMyL3dzY29udHJvbC5oOiBQaWVycmUgZCdIZXJiZW1vbnQgPHN0ZWdlZmluQGZyZWUuZnI+CisJVW5kZWYgaWZfdHlwZSwgaWZfbXR1IGFuZCBpZl9sYXN0Y2hhbmdlIGZvciBkYXJ3aW4uCisKKwkqIHNlcnZlci9jb250ZXh0X3Bvd2VycGMuYzogUGllcnJlIGQnSGVyYmVtb250IDxzdGVnZWZpbkBmcmVlLmZyPgorCUFkZCBzdXBwb3J0IGZvciBEYXJ3aW4ncyBwdHJhY2UuCisKKzIwMDMtMDUtMTEgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvZGRyYXcvZGRyYXcvbWFpbi5jOiBMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCUluaXRpYWxpemUgdGhlIGR3TWlwbWFwQ291bnQgZmllbGQgZXZlbiBpZiB0aGUgYXBwbGljYXRpb24gZm9yZ2V0cyBpdC4KKworCSogZGxscy9kZHJhdy9kM2RfcHJpdmF0ZS5oLCBkbGxzL2RkcmF3L2QzZGRldmljZS9tYWluLmMsCisJICBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmMsIGRsbHMvZGRyYXcvZDNkdGV4dHVyZS5jOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJLSBhZGRlZCBtaXBtYXBwaW5nIHN1cHBvcnQKKwktIGFkZGVkIGxvY2tpbmcgZm9yIGNvbmN1cnJlbnQgYWNjZXNzIHRvIHRoZSBEM0QgZGV2aWNlCisJLSBpbXByb3ZlZCB0cmFjaW5nCisJLSBhZGRlZCBzdXBwb3J0IGZvciBtb3N0IHRleHR1cmUgY29tYmluZSBzdGFnZXMgKGluc3BpcmVkIGJ5IHRoZSBEM0Q4CisJICBjb2RlKQorCS0gZGlzYWJsZSBjdXJyZW50IGxvY2sgLyB1bmxvY2sgY29kZSBwZW5kaW5nIHByb3BlciBzb2x1dGlvbgorCisJKiBkbGxzL2NvbWN0bDMyL2xpc3R2aWV3LmM6IFN0ZXBoYW4gQmV1emUgPGZiaWdndW5AaG90bWFpbC5jb20+CisJSW1wbGVtZW50ZWQgR2V0L1NldFRvb2xUaXBzIGZ1bmN0aW9ucy4KKworCSogZGxscy9jb21jdGwzMi9jb21jdGwzMi5zcGVjLCBkbGxzL2NvbWN0bDMyL2NvbWN0bDMydW5kb2MuYywKKwkgIGRsbHMvY29tY3RsMzIvY29tbWN0cmwuYzoKKwlPcmRpbmFscyA0MTAtNDEzIGFyZSB0aGUgd2luZG93IHN1YmNsYXNzaW5nIGZ1bmN0aW9ucy4KKworCSogZG9jdW1lbnRhdGlvbi93aW5lLWZhcS5zZ21sOgorCVN0b3JlIHRoZSBIVE1MIGludG8gaW5kZXguaHRtbCBsaWtlIGZvciB0aGUgb3RoZXIgZG9jcy4KKworCSogZGxscy9kM2Q4L2QzZDhfcHJpdmF0ZS5oLCBkbGxzL2QzZDgvZGV2aWNlLmMsIGRsbHMvZDNkOC9kaXJlY3R4LmMsCisJICBkbGxzL2QzZDgvaW5kZXhidWZmZXIuYywgZGxscy9kM2Q4L3Jlc291cmNlLmMsCisJICBkbGxzL2QzZDgvc3RhdGVibG9jay5jLCBkbGxzL2QzZDgvc3VyZmFjZS5jLCBkbGxzL2QzZDgvc3dhcGNoYWluLmMsCisJICBkbGxzL2QzZDgvdmVydGV4YnVmZmVyLmMsIGRsbHMvZDNkOC92b2x1bWUuYywKKwkgIGRsbHMvZDNkOC92b2x1bWV0ZXh0dXJlLmM6CisJUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJLSBtaW5vciBDT00gZml4ZXMgKGZpeGVzIHNvbWUgY3Jhc2hlcyBvbiBzdHVwaWQgZ2FtZXMpCisJLSBtaW5vciBpbmRlbnRhdGlvbiBjaGFuZ2VzCisJLSBmaXggU0VMRUNUQVJHMiBiZWhhdmlvciAod2l0aCBoZWxwIGZyb20gTGlvbmVsIFVsbWVyKQorCS0gc3VyZmFjZSBsb2NraW5nL3VubG9ja2luZyAob25seSByZW5kZXJpbmcgYW5kIHRleHR1cmVzIHN1cmZhY2VzCisJICBzdXBwb3J0ZWQgbm93KQorCS0gYmVnaW5uaW5nIG9mIFRhcmdldC9Gcm9udCBzdXJmYWNlIHN1cHBvcnQKKwktIHRyeSB0byBnZXQgRDNEVE9QX1NFTEVDVEFSR18qIHdvcmtpbmcKKwktIGltcGxlbWVudGVkIEQzRFRPUF9TVUJUUkFDVDogY3VycmVudGx5IG9ubHkgaWYgT3BlbkdMMS4zIGlzIHVzZWQsIHdlCisJICBoYXZlIHRvIHVzZSBHTF9TVUJUUkFDVF9BUkIgZm9yIG90aGVyIHZlcnNpb25zCisKKwkqIGRsbHMvZ2RpL2dkaTMyLnNwZWMsIG9iamVjdHMvZGMuYzoKKwlBZGRlZCBwYXJ0aWFsIHN0dWIgZm9yIEdldFRyYW5zZm9ybS4KKworCSogZGxscy9zaGVsbDMyL3NobGZpbGVvcC5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJQ2xlYW4gdXAgU0hGaWxlT3BlcmF0aW9uQS9XIGRlYnVnZ2luZyBhIGxpdHRsZS4KKworCSogZGxscy93aW5tbS93YXZlbWFwL3dhdmVtYXAuYywgZGxscy93aW5tbS93aW5lb3NzL2F1ZGlvLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJU3RvcCB3YXZlbWFwIGxvb2t1cCBpZiBhIGRldmljZSBpc24ndCBmdW5jdGlvbmFsIChzcG90dGVkIGJ5IExpb25lbAorCVVsbWVyKS4KKworCSogZGxscy93aW5lZG9zL2ludDIxLmM6IEp1a2thIEhlaW5vbmVuIDxqaGVpQGlraS5maT4KKwlNYWtlIHJlYWQgZnJvbSBzdGRpbiB1c2UgYnVmZmVyZWQgaW5wdXQgY29kZSBhbmQgcmVkaXJlY3Qgc3RkZXJyIHRvCisJY29uc29sZS4KKworCSogbXNkb3MvaW9wb3J0cy5jOiBKdWtrYSBIZWlub25lbiA8amhlaUBpa2kuZmk+CisJTWFrZSBpb3BvcnQgaW5zdHJ1Y3Rpb24gZW11bGF0aW9uIGNhbGwgd2luZWRvcyBoYW5kbGVycy4KKworCSogd2luZG93cy9xdWV1ZS5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAYmFpa2FsLnJ1PgorCVBvbGwgWCBldmVudHMgaW4gR2V0SW5wdXRTdGF0ZSB0aGUgc2FtZSB3YXkgYXMgaW4gR2V0UXVldWVTdGF0dXMuCisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlGaXggY3VzdG9tIGRyYXcgZm9yIGl0ZW0gMC4KKworCSogZGxscy9kZHJhdy9kM2RleGVjdXRlYnVmZmVyLmM6CisJQ2hyaXN0aWFuIENvc3RhIDx0aXRhbi5jb3N0YUB3YW5hZG9vLmZyPgorCUVuYWJsZSBicmFuY2ggZm9yd2FyZCBvcGVyYXRpb24gaW4gZXhlY3V0ZSBidWZmZXIuCisKKwkqIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21lc2EuYzogQ2hyaXN0aWFuIENvc3RhIDx0aXRhbi5jb3N0YUB3YW5hZG9vLmZyPgorCVB1dCB0aGUgZGV2aWNlIG5hbWUgc3RyaW5nIG9uIHRoZSBzdGFjayBkdXJpbmcgZGV2aWNlcyBlbnVtZXJhdGlvbi4KKwlEaXNhYmxlIHJlZmVyZW5jZSBlbnVtZXJhdGlvbi4KKworCSogY29udHJvbHMvZWRpdC5jOiBDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJQWRkIG1pc3NpbmcgUmVsZWFzZURDIGluIEVESVRfQnVpbGRMaW5lRGVmc19NTC4KKworCSogb2JqZWN0cy9tZXRhZmlsZS5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCVBsYXliYWNrIGVzY2FwZXMgaW4gbWV0YWZpbGVzLgorCisJKiBkbGxzL250ZGxsL250ZGxsLnNwZWMsIGRsbHMvb2xlYXV0MzIvb2xlYXV0MzIuc3BlYzoKKwlSZW1vdmVkIHVubmVjZXNzYXJ5IGZ1bmN0aW9uIGxpbmsgbmFtZXMuCisKKwkqIE1ha2VmaWxlLmluOiBSZW1vdmUgbGlicy9NYWtlbGliLnJ1bGVzIG9uIGRpc3RjbGVhbi4KKworCSogZGxscy9nZGkvZ2RpMzIuc3BlYywgb2JqZWN0cy9kYy5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUFkZGVkIHN0dWIgZm9yIFNldFZpcnR1YWxSZXNvbHV0aW9uLgorCisJKiBkbGxzL3gxMWRydi9zY3JvbGwuYywgd2luZG93cy9zY3JvbGwuYzoKKwlVbHJpY2ggQ3pla2FsbGEgPHVjemVrYWxsYUBjb2Rld2VhdmVycy5jb20+CisJV2Ugc2hvdWxkIHBhc3MgdGhlIGNhbGxlcnMgY2xpZW50LWFyZWEgcmVjdCBhbmQgY2xpcCByZWN0IHRvIHgxMWRydgorCW90aGVyd2lzZSB3ZSdsbCBmYWlsIHRvIHNjcm9sbCBhbGwgY2hpbGRyZW4uCisKKwkqIGRsbHMvd2lubW0vd2lubW0uYzogQXZvaWQgbG9jYWwgV0lOQVBJIGZ1bmN0aW9uIHBvaW50ZXJzLgorCisJKiBkbGxzL3dpbmluZXQvaW50ZXJuZXQuYywgZGxscy93aW5pbmV0L3dpbmluZXQuc3BlYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50ZWQgSW50ZXJuZXRTZXRPcHRpb25FeEEvVy4KKworCSogZGxscy91c2VyL3BhaW50aW5nLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJRml4IHRoZSBsb2dpYyBmb3Igc2V0dGluZyB0aGUgbHBzLT5mRXJhc2UgZmxhZyBpbiBCZWdpblBhaW50LgorCisJKiBkbGxzL3VzZXIvbWVzc2FnZS5jLCB3aW5kb3dzL3dpbnByb2MuYzoKKwlBZGRlZCBBPC0+VyBtYXBwaW5ncyBmb3IgV01fSU1FX0NIQVIuCisKKwkqIG1lbW9yeS9nbG9iYWwuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlQcm90ZWN0IEdsb2JhbExvY2sgZnJvbSBiYWQgcG9pbnRlcnMuCisKKwkqIGxpYnMvdW5pY29kZS93Y3RvbWIuYzoKKwlIYW5kbGUgb3ZlcmxhcHBpbmcgYnVmZmVycyBwcm9wZXJseSBpbiB3Y3N0b21ic19zYmNzIChzcG90dGVkIGJ5CisJRG1pdHJ5IFRpbW9zaGtvdikuCisKKwkqIGdyYXBoaWNzL3gxMWRydi9jbGlwcGluZy5jOgorCVVscmljaCBDemVrYWxsYSA8dWN6ZWthbGxhQGNvZGV3ZWF2ZXJzLmNvbT4KKwlEb24ndCBkZWxldGUgcmVnaW9uIHVudGlsIGFmdGVyIHdlJ3JlIGRvbmUgd2l0aCBpdC4KKworCSogb2JqZWN0cy9jbGlwcGluZy5jOiBVbHJpY2ggQ3pla2FsbGEgPHVjemVrYWxsYUBjb2Rld2VhdmVycy5jb20+CisJUmV0dXJuIHZhbHVlIG9mIEV4dFNlbGVjdENsaXBSZ24gc2hvdWxkIGNvbnNpZGVyIHZpc2libGUgcmVnaW9uLgorCisJKiBncmFwaGljcy9tYXBwaW5nLmMsIG9iamVjdHMvZW5obWV0YWZpbGUuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCU1ha2UgU2V0TWFwTW9kZSBzZXQgZGVmYXVsdCB3aW5kb3cgYW5kIHZpZXdwb3J0IGV4dGVudHMgYXMgaW4KKwlXaW5kb3dzLgorCisJKiBwcm9ncmFtcy93Y21kL3djbWRtYWluLmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJRml4IGhhbmRsaW5nIG9mIHdjbWQgL2MgImM6XFByb2dyYW0gRmlsZXNcaGVsbG8uYmF0Ii4KKwlNYWtlIC9jIGFuZCAvayBlZmZlY3RpdmVseSBleGNsdXNpdmUsIGxpa2UgdGhlIHJlYWwgY21kIGRvZXMuCisJRml4IGhhbmRsaW5nIG9mIC9xOiBpdCdzIGNvbXBhdGlibGUgd2l0aCAvYyBhbmQgL2suCisJQWRkZWQgY29tcGF0aWJpbGl0eSB3aXRoIC90IC94IGFuZCAveSwganVzdCBpZ25vcmUgdGhlbS4KKworCSogcHJvZ3JhbXMvd2luZXBhdGgvd2luZXBhdGguYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCVJlc2V0IHRoZSByZXN1bHQgYnVmZmVyIGFmdGVyIGVhY2ggYXJndW1lbnQuCisKKwkqIHNlcnZlci9mZC5jOgorCUlnbm9yZSBsb2NraW5nIGZhaWx1cmVzIGNhdXNlZCBieSBtaXNzaW5nIE5GUyBsb2NraW5nIGRhZW1vbi4KKwlIYW5kbGUgRUlOVkFMIHRoZSBzYW1lIHdheSBhcyBFT1ZFUkZMT1cuCisKKwkqIHdpbmRvd3MvbXNnYm94LmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJSWdub3JlIGhpZ2ggd29yZCBvZiB3UGFyYW0gd2hlbiBoYW5kbGluZyBXTV9DT01NQU5EIGluIHRoZSBNZXNzYWdlQm94CisJcHJvYy4KKworCSogd2luZG93cy9pbnB1dC5jOiBEdXNhbiBMYWNrbyA8ZGxhY2tvQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggQUxUIGNvbnRleHQgYml0IGZvciBXTV9LRVlET1dOL1VQLgorCisJKiB3aW5kb3dzL2RpYWxvZy5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCVdpbmRvd3MgdHJlYXRzIGRpYWxvZyBjb250cm9sIGNsYXNzIGlkcyAwLTUgc2FtZSB3YXkgYXMgMHg4MC0weDg1LgorCisJKiBkbGxzL3VzZXIvZGlhbG9nMTYuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlEbyBub3QgYWJvcnQgZGlhbG9nIGNyZWF0aW9uIGlmIERTX05PRkFJTENSRUFURSBhbGxvd3MgdG8gY29udGludWUuCisKKwkqIGRsbHMvcmFzYXBpMzIvcmFzYXBpLmMsIGRsbHMvcmFzYXBpMzIvcmFzYXBpMzIuc3BlYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUFkZGVkIFJhc0VudW1FbnRyaWVzVyBzdHViLgorCisJKiBkbGxzL29sZTMyL29sZTJzdHVicy5jLCBkbGxzL29sZTMyL3N0b3JhZ2UzMi5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlJbXBsZW1lbnRlZCBXcml0ZUZtdFVzZXJUeXBlU3RnIGFuZCBSZWFkRm10VXNlclR5cGVTdGcuCisKKwkqIGRsbHMvY29tbWRsZy9maWxlZGxnOTUuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUZpbGwgdGhlIGZpbGVkaWFsb2c5NSBjb250cm9scyBiZWZvcmUgc2VuZGluZyBhIENETl9JTklURE9ORQorCW5vdGlmaWNhdGlvbi4KKworCSogZGxscy9jb21jdGwzMi9wcm9ncmVzcy5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUludmFsaWRhdGUgdGhlIHdpbmRvdyB3aGVuIHRoZSByYW5nZSBpcyBjaGFuZ2VkLgorCisJKiBkbGxzL2FkdmFwaTMyL2FkdmFwaTMyLnNwZWMsIGRsbHMvYWR2YXBpMzIvc2VjdXJpdHkuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJU3R1YnMgZm9yIEFjY2Vzc0NoZWNrQW5kQXVkaXRBbGFybUEvVy4KKworMjAwMy0wNS0wOCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogVkVSU0lPTiwgY29uZmlndXJlLCBBTk5PVU5DRSwgQ2hhbmdlTG9nOiBSZWxlYXNlIDIwMDMwNTA4LgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAyMDAzLTA1LTA4ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgogCiAJKiBsaWJzL3VuaWNvZGUvdXRmOC5jOgpkaWZmIC0tZ2l0IGEvVkVSU0lPTiBiL1ZFUlNJT04KaW5kZXggYTU0NTdjZS4uZTNhNmMyOCAxMDA2NDQKLS0tIGEvVkVSU0lPTgorKysgYi9WRVJTSU9OCkBAIC0xICsxIEBACi1XaW5lIHZlcnNpb24gMjAwMzA1MDgKK1dpbmUgdmVyc2lvbiAyMDAzMDYxOApkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IGJlNDEzNzkuLjY4NDdlNTggMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysgYi9jb25maWd1cmUKQEAgLTEsNiArMSw2IEBACiAjISAvYmluL3NoCiAjIEd1ZXNzIHZhbHVlcyBmb3Igc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgYW5kIGNyZWF0ZSBNYWtlZmlsZXMuCi0jIEdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41NyBmb3IgV2luZSAyMDAzMDUwOC4KKyMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU3IGZvciBXaW5lIDIwMDMwNjE4LgogIwogIyBDb3B5cmlnaHQgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMgogIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KQEAgLTI2Niw4ICsyNjYsOCBAQAogIyBJZGVudGl0eSBvZiB0aGlzIHBhY2thZ2UuCiBQQUNLQUdFX05BTUU9J1dpbmUnCiBQQUNLQUdFX1RBUk5BTUU9J3dpbmUnCi1QQUNLQUdFX1ZFUlNJT049JzIwMDMwNTA4JwotUEFDS0FHRV9TVFJJTkc9J1dpbmUgMjAwMzA1MDgnCitQQUNLQUdFX1ZFUlNJT049JzIwMDMwNjE4JworUEFDS0FHRV9TVFJJTkc9J1dpbmUgMjAwMzA2MTgnCiBQQUNLQUdFX0JVR1JFUE9SVD0nJwogCiBhY191bmlxdWVfZmlsZT0ic2VydmVyL2F0b20uYyIKQEAgLTc3Nyw3ICs3NzcsNyBAQAogICAjIE9taXQgc29tZSBpbnRlcm5hbCBvciBvYnNvbGV0ZSBvcHRpb25zIHRvIG1ha2UgdGhlIGxpc3QgbGVzcyBpbXBvc2luZy4KICAgIyBUaGlzIG1lc3NhZ2UgaXMgdG9vIGxvbmcgdG8gYmUgYSBzdHJpbmcgaW4gdGhlIEEvVVggMy4xIHNoLgogICBjYXQgPDxfQUNFT0YKLVxgY29uZmlndXJlJyBjb25maWd1cmVzIFdpbmUgMjAwMzA1MDggdG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgorXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgV2luZSAyMDAzMDYxOCB0byBhZGFwdCB0byBtYW55IGtpbmRzIG9mIHN5c3RlbXMuCiAKIFVzYWdlOiAkMCBbT1BUSU9OXS4uLiBbVkFSPVZBTFVFXS4uLgogCkBAIC04NDIsNyArODQyLDcgQEAKIAogaWYgdGVzdCAtbiAiJGFjX2luaXRfaGVscCI7IHRoZW4KICAgY2FzZSAkYWNfaW5pdF9oZWxwIGluCi0gICAgIHNob3J0IHwgcmVjdXJzaXZlICkgZWNobyAiQ29uZmlndXJhdGlvbiBvZiBXaW5lIDIwMDMwNTA4OiI7OworICAgICBzaG9ydCB8IHJlY3Vyc2l2ZSApIGVjaG8gIkNvbmZpZ3VyYXRpb24gb2YgV2luZSAyMDAzMDYxODoiOzsKICAgIGVzYWMKICAgY2F0IDw8XF9BQ0VPRgogCkBAIC05MzYsNyArOTM2LDcgQEAKIHRlc3QgLW4gIiRhY19pbml0X2hlbHAiICYmIGV4aXQgMAogaWYgJGFjX2luaXRfdmVyc2lvbjsgdGhlbgogICBjYXQgPDxcX0FDRU9GCi1XaW5lIGNvbmZpZ3VyZSAyMDAzMDUwOAorV2luZSBjb25maWd1cmUgMjAwMzA2MTgKIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41NwogCiBDb3B5cmlnaHQgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMgpAQCAtOTUxLDcgKzk1MSw3IEBACiBUaGlzIGZpbGUgY29udGFpbnMgYW55IG1lc3NhZ2VzIHByb2R1Y2VkIGJ5IGNvbXBpbGVycyB3aGlsZQogcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2VzIGEgbWlzdGFrZS4KIAotSXQgd2FzIGNyZWF0ZWQgYnkgV2luZSAkYXNfbWUgMjAwMzA1MDgsIHdoaWNoIHdhcworSXQgd2FzIGNyZWF0ZWQgYnkgV2luZSAkYXNfbWUgMjAwMzA2MTgsIHdoaWNoIHdhcwogZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU3LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCiAKICAgJCAkMCAkQApAQCAtMjI0NiwxMyArMjI0NiwxMiBAQAogICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgIGZvciBhY19kZWNsYXJhdGlvbiBpbiBcCi0gICAnJ1wKKyAgICcnIFwKICAgICdleHRlcm4gIkMiIHZvaWQgc3RkOjpleGl0IChpbnQpIHRocm93ICgpOyB1c2luZyBzdGQ6OmV4aXQ7JyBcCiAgICAnZXh0ZXJuICJDIiB2b2lkIHN0ZDo6ZXhpdCAoaW50KTsgdXNpbmcgc3RkOjpleGl0OycgXAogICAgJ2V4dGVybiAiQyIgdm9pZCBleGl0IChpbnQpIHRocm93ICgpOycgXAogICAgJ2V4dGVybiAiQyIgdm9pZCBleGl0IChpbnQpOycgXAotICAgJ3ZvaWQgZXhpdCAoaW50KTsnIFwKLSAgICcjaW5jbHVkZSA8c3RkbGliLmg+JworICAgJ3ZvaWQgZXhpdCAoaW50KTsnCiBkbwogICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKICNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKQEAgLTIyNjEsOCArMjI2MCw4IEBACiBjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKIGNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKIC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxzdGRsaWIuaD4KICRhY19kZWNsYXJhdGlvbgorI2luY2x1ZGUgPHN0ZGxpYi5oPgogaW50CiBtYWluICgpCiB7CkBAIC0xNjQwMSw3ICsxNjQwMCw3IEBACiB9ID4mNQogY2F0ID4mNSA8PF9DU0VPRgogCi1UaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IFdpbmUgJGFzX21lIDIwMDMwNTA4LCB3aGljaCB3YXMKK1RoaXMgZmlsZSB3YXMgZXh0ZW5kZWQgYnkgV2luZSAkYXNfbWUgMjAwMzA2MTgsIHdoaWNoIHdhcwogZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU3LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCiAKICAgQ09ORklHX0ZJTEVTICAgID0gJENPTkZJR19GSUxFUwpAQCAtMTY0NjQsNyArMTY0NjMsNyBAQAogCiBjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgogYWNfY3NfdmVyc2lvbj0iXFwKLVdpbmUgY29uZmlnLnN0YXR1cyAyMDAzMDUwOAorV2luZSBjb25maWcuc3RhdHVzIDIwMDMwNjE4CiBjb25maWd1cmVkIGJ5ICQwLCBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTcsCiAgIHdpdGggb3B0aW9ucyBcXCJgZWNobyAiJGFjX2NvbmZpZ3VyZV9hcmdzIiB8IHNlZCAncy9bXFwiIlxgXCRdL1xcXFwmL2cnYFxcIgogCg==