From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v9 24/27] xsplice: Stacking build-id dependency checking. Date: Mon, 25 Apr 2016 11:35:11 -0400 Message-ID: <1461598514-5440-25-git-send-email-konrad.wilk@oracle.com> References: <1461598514-5440-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1auiYU-00049k-2x for xen-devel@lists.xenproject.org; Mon, 25 Apr 2016 15:36:10 +0000 In-Reply-To: <1461598514-5440-1-git-send-email-konrad.wilk@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: konrad@kernel.org, xen-devel@lists.xenproject.org, sasha.levin@oracle.com, andrew.cooper3@citrix.com, ross.lagerwall@citrix.com, mpohlack@amazon.de Cc: Keir Fraser , Jan Beulich , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org V2Ugbm93IGV4cGVjdCB0aGF0IHRoZSBFTEYgcGF5bG9hZHMgYmUgYnVpbHQgd2l0aCB0aGUKLS1i dWlsZC1pZC4KCkFsc28gdGhlIC54c3BsaWNlLmRlcHMgc2VjdGlvbiBoYXMgdG8gaGF2ZSB0aGUg Y29udGVudHMKb2YgdGhlIGh5cGVydmlzb3IgKG9yIGEgcHJlY2VkaW5nIHBheWxvYWQpIGJ1aWxk LWlkLgoKV2UgYWxyZWFkeSBoYXZlIHRoZSBjb2RlIHRvIHZlcmlmeSB0aGUgRWxmX05vdGUgYnVp bGQtaWQKc28gZXhwb3J0IHBhcnRzIG9mIGl0LgoKVGhpcyBkZXBlbmRlbmN5IG1lYW5zIHRoZSBo eXBlcnZpc29yIE1VU1QgYmUgY29tcGlsZWQgd2l0aAotLWJ1aWxkLWlkIC0gc28gd2UgZ2F0ZSB0 aGUgYnVpbGQgb2YgeFNwbGljZSBvbiB0aGUgYXZhaWxhYmlsaXR5Cm9mIHNhaWQgZnVuY3Rpb25h bGl0eS4KClRoaXMgZG9lcyBub3QgaW1wYWN0IHRoZSBvcmRlcmluZyBvZiBob3cgdGhlIHBheWxv YWRzIGNhbgpiZSBsb2FkZWQsIGJ1dCBpdCBkb2VzIGVuZm9yY2UgYW4gU1RSSUNUIG9yZGVyaW5n IHdoZW4gdGhlCnBheWxvYWRzIGFyZSBhcHBsaWVkLiBBbHNvIHRoZSBSRVBMQUNFIGlzIHNwZWNp YWwgLSB3ZSBuZWVkCnRvIGNoZWNrIHRoYXQgaXRzIGRlcGVuZGVuY3kgYWdhaW5zdCB0aGUgaHlw ZXJ2aXNvciAtIG5vdAp0aGUgbGFzdCBhcHBsaWVkIHBhdGNoLgoKVG8gbWFrZSB0aGlzIGVhc2ll ciB0byB0ZXN0IHdlIGFsc28gYWRkIGFuIGV4dHJhIHRlc3QtY2FzZQp0byBiZSB1c2VkIC0gd2hp Y2ggY2FuIG9ubHkgYmUgYXBwbGllZCBvbiB0b3Agb2YgdGhlCnhlbl9oZWxsb193b3JsZCBwYXls b2FkLgoKQXMgaW4sIG9uZSBjYW4gYXBwbHkgeGVuX2hlbGxvX3dvcmxkIGFuZCB0aGVuIHhlbl9i eWVfd29ybGQKb24gdG9wIG9mIHRoYXQuIE5vdCB0aGUgb3RoZXIgd2F5LgoKV2UgYWxzbyBwcmlu dCB0aGUgZGVwZW5kZW5jeSBhbmQgcGF5bG9hZHMgYnVpbGRfaW4gdGhlIGtleWhhbmRsZXIuCgpT aWduZWQtb2ZmLWJ5OiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5j b20+ClJldmlld2VkLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29t PgoKLS0tCkNjOiBLZWlyIEZyYXNlciA8a2VpckB4ZW4ub3JnPgpDYzogSmFuIEJldWxpY2ggPGpi ZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4 LmNvbT4KCnYzOiBGaXJzdCB0aW1lIGluY2x1ZGVkLgp2NDogQW5kcmV3IGZpeCBhZ2FpbnN0IHRo ZSBidWlsZF9pZC5vIG11dGlsYXRpb25zLgogICAgQW5kcmV3IGZpeCB0byBub3QgaW5jbHVkZSBl eHRyYSBzeW1ib2xzIGluIGJpbmFyeS5pZAp2NTogcy9zc2l6ZV90L3Vuc2lnbmVkIGludC8KdjY6 IHMvYW4gTlRfR05VLi4vYSBOVF9HTlUvCiAgIC0gU3F1YXNoICJ4c3BsaWNlOiBQcmludCBkZXBl bmRlbmN5IGFuZCBwYXlsb2FkcyBidWlsZF9pZCBpbiB0aGUga2V5aGFuZGxlciIKICAgICBpbiB0 aGlzIHBhdGNoLgogICAtIEFkZCBpbiB4ZW5fYnVpbGRfaWRfY2hlY2sgc2l6ZSBvZiBzZWN0aW9u IGZvciBiZXR0ZXIgY2hlY2tpbmcuCnY3OiBBZGRlZCBBbmRyZXcncyByZXZpZXdlZC1ieS4KICAg IENoYW5nZSB0aGUgLm5hbWUgaW4gdGVzdC1jYXNlIHRvIGFkaGVyZSB0byBzcGVjLgogICAgRHJv cHBlZCBOVF9HTlVfQlVJTERfSUQgYW5kIG1vdmVkIHRoYXQgdG8gZWFybGllciBwYXRjaAogICAg KGJ1aWxkX2lkOiBQcm92aWRlIGxkLWVtYmVkZGVkIGJ1aWxkLWlkcykKICAgIEFtZW5kZWQgc3Bl YyBhbmQgY29kZSB0byBvbmx5IGhhdmUgb25lIG9mIC54c3BsaWNlLmRlcGVuZHMgYW5kCiAgICAu bm90ZS5nbnUuYnVpbGQtaWQKICAgIEV4cGFuZGVkIGNvbW1lbnQgYWJvdXQgbm90ZS5vIGFuZCB3 aHkgd2UgZG9uJ3QgdXNlIGFyY2gveDg2L25vdGUuby5iaW4KICAgIE1vdmVkIHhlbl9idWlsZF9p ZF9jaGVjayBkZWZpbml0aW9uIHRvIHhzcGxpY2UuaCBmcm9tIHZlcnNpb24uaAogICAgKGFuZCBk cm9wcGluZyB0aGUgI2luY2x1ZGUncyBpbiB2ZXJzaW9uLmgpCiAgICBTb3J0IGhlYWRlciBmaWxl cyBpbiB0ZXN0cy4Kdjg6CiAtIENoYW5nZSB0d28gb2YgdGhlIGRwcmlua3QgZnJvbSBYRU5MT0df REVCVUcgdG8gWEVOTE9HX0VSUgp2OToKIC0gRHJvcHBlZCB0aGUgKHVuc2lnbmVkIGxvbmcpIGNh c3RzIHNpbmNlIHdlIHVzZSB2b2lkLgogLSBNYWtlIHRoZSAueHNwbGljZV9kZXBlbmRzIGFuZCAu bm90ZS5nbnVfYnVpbGRfaWQgYmUgI2RlZmluZXMuCiAtIE1ha2UgdGhlIGJ1aWxkIHNlY3Rpb24g dXNlICQoWFNQTElDRV9CWUUpCiAtIE1ha2UgdGhlIHRlc3RjYXNlIGluY2x1ZGUgPHB1YmxpYy9z eXNjdGwuaD4KIC0gTWFkZSBjb21wYXJpc29ucyBvbiBkZXNjc3ogYW5kIG5hbWVzeiBhIGJpdCBk aWZmZXJlbnQgKG92ZXJmbG93CiAgIGNoZWNrcywgYWdhaW5zdCB2YWx1ZSBvZiA0LCBhbmQgYWdh aW5zdCBzaXplKQotLS0KIC5naXRpZ25vcmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAxICsKIENvbmZpZy5tayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGRv Y3MvbWlzYy94c3BsaWNlLm1hcmtkb3duICAgICAgICAgICAgIHwgIDk5ICsrKysrKysrKysrKysr KysrLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUgICAgICAgICAgICAgfCAg NDkgKysrKysrKysrKysrLS0KIHhlbi9hcmNoL3g4Ni90ZXN0L3hlbl9ieWVfd29ybGQuYyAgICAg IHwgIDM0ICsrKysrKysrKysKIHhlbi9hcmNoL3g4Ni90ZXN0L3hlbl9ieWVfd29ybGRfZnVuYy5j IHwgIDIyICsrKysrKwogeGVuL2NvbW1vbi9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgfCAg IDYgKy0KIHhlbi9jb21tb24vdmVyc2lvbi5jICAgICAgICAgICAgICAgICAgIHwgIDQ1ICsrKysr KysrKystLS0KIHhlbi9jb21tb24veHNwbGljZS5jICAgICAgICAgICAgICAgICAgIHwgMTE5ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogeGVuL2luY2x1ZGUveGVuL3hzcGxpY2Uu aCAgICAgICAgICAgICAgfCAgIDQgKysKIDEwIGZpbGVzIGNoYW5nZWQsIDMyNSBpbnNlcnRpb25z KCspLCA1NSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC94ODYvdGVz dC94ZW5fYnllX3dvcmxkLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC94ODYvdGVzdC94 ZW5fYnllX3dvcmxkX2Z1bmMuYwoKZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3Jl CmluZGV4IDRhODFmNDMuLjg4Y2VjMWQgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdp dGlnbm9yZQpAQCAtMjQ4LDYgKzI0OCw3IEBAIHhlbi9hcmNoL3g4Ni9lZmkvZGlzYWJsZWQKIHhl bi9hcmNoL3g4Ni9lZmkvbWtyZWxvYwogeGVuL2FyY2gveDg2L3Rlc3QvY29uZmlnLmgKIHhlbi9h cmNoL3g4Ni90ZXN0L3hlbl9oZWxsb193b3JsZC54c3BsaWNlCit4ZW4vYXJjaC94ODYvdGVzdC94 ZW5fYnllX3dvcmxkLnhzcGxpY2UKIHhlbi9hcmNoLyovZWZpL2Jvb3QuYwogeGVuL2FyY2gvKi9l ZmkvY29tcGF0LmMKIHhlbi9hcmNoLyovZWZpL2VmaS5oCmRpZmYgLS1naXQgYS9Db25maWcubWsg Yi9Db25maWcubWsKaW5kZXggNDFmOGM0NC4uNjE0ZGM5ZSAxMDA2NDQKLS0tIGEvQ29uZmlnLm1r CisrKyBiL0NvbmZpZy5tawpAQCAtMTM0LDYgKzEzNCw3IEBAIGlmZXEgKCQoY2FsbCBsZC12ZXIt YnVpbGQtaWQsJChMRCkpLG4pCiBidWlsZF9pZF9saW5rZXIgOj0KIGVsc2UKIENGTEFHUyArPSAt REJVSUxEX0lECitleHBvcnQgWEVOX0hBU19CVUlMRF9JRD15CiBidWlsZF9pZF9saW5rZXIgOj0g LS1idWlsZC1pZD1zaGExCiBlbmRpZgogCmRpZmYgLS1naXQgYS9kb2NzL21pc2MveHNwbGljZS5t YXJrZG93biBiL2RvY3MvbWlzYy94c3BsaWNlLm1hcmtkb3duCmluZGV4IDYyZjE0M2UuLjM3N2Vk NmEgMTAwNjQ0Ci0tLSBhL2RvY3MvbWlzYy94c3BsaWNlLm1hcmtkb3duCisrKyBiL2RvY3MvbWlz Yy94c3BsaWNlLm1hcmtkb3duCkBAIC0yODMsOCArMjgzLDE3IEBAIFRoZSB4U3BsaWNlIGNvcmUg Y29kZSBsb2FkcyB0aGUgcGF5bG9hZCBhcyBhIHN0YW5kYXJkIEVMRiBiaW5hcnksIHJlbG9jYXRl cyBpdAogYW5kIGhhbmRsZXMgdGhlIGFyY2hpdGVjdHVyZS1zcGVjaWZjIHNlY3Rpb25zIGFzIG5l ZWRlZC4gVGhpcyBwcm9jZXNzIGlzIG11Y2gKIGxpa2Ugd2hhdCB0aGUgTGludXgga2VybmVsIG1v ZHVsZSBsb2FkZXIgZG9lcy4KIAotVGhlIHBheWxvYWQgY29udGFpbnMgYSBzZWN0aW9uICh4c3Bs aWNlX3BhdGNoX2Z1bmMpIHdpdGggYW4gYXJyYXkgb2Ygc3RydWN0dXJlcwotZGVzY3JpYmluZyB0 aGUgZnVuY3Rpb25zIHRvIGJlIHBhdGNoZWQ6CitUaGUgcGF5bG9hZCBjb250YWlucyBhdCBsZWFz dCB0aHJlZSBzZWN0aW9uczoKKworICogYC54c3BsaWNlLmZ1bmNzYCAtIHdoaWNoIGlzIGFuIGFy cmF5IG9mIHhzcGxpY2VfcGF0Y2hfZnVuYyBzdHJ1Y3R1cmVzLgorICogYC54c3BsaWNlLmRlcGVu ZHNgIC0gd2hpY2ggaXMgYW4gRUxGIE5vdGUgdGhhdCBkZXNjcmliZXMgd2hhdCB0aGUgcGF5bG9h ZAorICAgIGRlcGVuZHMgb24uICoqTVVTVCoqIGhhdmUgb25lLgorICogIGAubm90ZS5nbnUuYnVp bGQtaWRgIC0gdGhlIGJ1aWxkLWlkIG9mIHRoaXMgcGF5bG9hZC4gKipNVVNUKiogaGF2ZSBvbmUu CisKKyMjIyAueHNwbGljZS5mdW5jcworCitUaGUgYC54c3BsaWNlLmZ1bmNzYCBjb250YWlucyBh biBhcnJheSBvZiB4c3BsaWNlX3BhdGNoX2Z1bmMgc3RydWN0dXJlcword2hpY2ggZGVzY3JpYmUg dGhlIGZ1bmN0aW9ucyB0byBiZSBwYXRjaGVkOgogCiA8cHJlPgogc3RydWN0IHhzcGxpY2VfcGF0 Y2hfZnVuYyB7ICAKQEAgLTM2OCw2ICszNzcsMjMgQEAgc3RydWN0IHhzcGxpY2VfcGF0Y2hfZnVu YyB4c3BsaWNlX2hlbGxvX3dvcmxkID0gewogCiBDb2RlIG11c3QgYmUgY29tcGlsZWQgd2l0aCAt ZlBJQy4KIAorIyMjIC54c3BsaWNlLmRlcGVuZHMgYW5kIC5ub3RlLmdudS5idWlsZC1pZAorCitU byBzdXBwb3J0IGRlcGVuZGVuY2llcyBjaGVja2luZyBhbmQgc2FmZSBsb2FkaW5nICh0byBsb2Fk IHRoZQorYXBwcm9waWF0ZSBwYXlsb2FkIGFnYWluc3QgdGhlIHJpZ2h0IGh5cGVydmlzb3IpIHRo ZXJlIGlzIGEgbmVlZAordG8gZW1iYmVkIGFuIGJ1aWxkLWlkIGRlcGVuZGVuY3kuCisKK1RoaXMg aXMgZG9uZSBieSB0aGUgcGF5bG9hZCBjb250YWluaW5nIGFuIHNlY3Rpb24gYC54c3BsaWNlLmRl cGVuZHNgCit3aGljaCBmb2xsb3dzIHRoZSBmb3JtYXQgb2YgYW4gRUxGIE5vdGUuIFRoZSBjb250 ZW50cyBvZiB0aGlzCisobmFtZSwgYW5kIGRlc2NyaXB0aW9uKSBhcmUgc3BlY2lmaWMgdG8gdGhl IGxpbmtlciB1dGlsaXplZCB0bworYnVpbGQgdGhlIGh5cGV2aXNvciBhbmQgcGF5bG9hZC4KKwor SWYgR05VIGxpbmtlciBpcyB1c2VkIHRoZW4gdGhlIG5hbWUgaXMgYEdOVWAgYW5kIHRoZSBkZXNj cmlwdGlvbgoraXMgYSBOVF9HTlVfQlVJTERfSUQgdHlwZSBJRC4gVGhlIGRlc2NyaXB0aW9uIGNh biBiZSBhbiBTSEExCitjaGVja3N1bSwgTUQ1IGNoZWNrc3VtIG9yIGFueSB1bmlxdWUgdmFsdWUu CisKK1RoZSBzaXplIG9mIHRoZXNlIHN0cnVjdHVyZXMgdmFyaWVzIHdpdGggdGhlIC0tYnVpbGQt aWQgbGlua2VyIG9wdGlvbi4KKwogIyMgSHlwZXJjYWxscwogCiBXZSB3aWxsIGVtcGxveSB0aGUg c3ViIG9wZXJhdGlvbnMgb2YgdGhlIHN5c3RlbSBtYW5hZ2VtZW50IGh5cGVyY2FsbCAoc3lzY3Rs KS4KQEAgLTg2Myw2ICs4ODksNDIgQEAgVGhpcyBpcyBpbXBsZW1lbnRlZCBpbiB0aGUgWGVuIFBy b2plY3QgaHlwZXJ2aXNvci4KIAogT25seSB0aGUgcHJpdmlsZWdlZCBkb21haW4gc2hvdWxkIGJl IGFsbG93ZWQgdG8gZG8gdGhpcyBvcGVyYXRpb24uCiAKKyMjIyB4U3BsaWNlIGludGVyZGVwZW5k ZW5jaWVzCisKK3hTcGxpY2UgcGF0Y2hlcyBpbnRlcmRlcGVuZGVuY2llcyBhcmUgdHJpY2t5Lgor CitUaGVyZSBhcmUgdGhlIHdheXMgdGhpcyBjYW4gYmUgYWRkcmVzc2VkOgorICogQSBzaW5nbGUg bGFyZ2UgcGF0Y2ggdGhhdCBzdWJzdW1lcyBhbmQgcmVwbGFjZXMgYWxsIHByZXZpb3VzIG9uZXMu CisgICBPdmVyIHRoZSBsaWZlLXRpbWUgb2YgcGF0Y2hpbmcgdGhlIGh5cGVydmlzb3IgdGhpcyBs YXJnZSBwYXRjaAorICAgZ3Jvd3MgdG8gYWNjdW11bGF0ZSBhbGwgdGhlIGNvZGUgY2hhbmdlcy4K KyAqIEhvdHBhdGNoIHN0YWNrIC0gd2hlcmUgYW4gbWVjaGFuaXNtIGV4aXN0cyB0aGF0IGxvYWRz IHRoZSBob3RwYXRjaGVzCisgICBpbiB0aGUgc2FtZSBvcmRlciB0aGV5IHdlcmUgYnVpbHQgaW4u IFdlIHdvdWxkIG5lZWQgYW4gYnVpbGQtaWQKKyAgIG9mIHRoZSBoeXBldmlzb3IgdG8gbWFrZSBz dXJlIHRoZSBob3QtcGF0Y2hlcyBhcmUgYnVpbGQgYWdhaW5zdCB0aGUKKyAgIGNvcnJlY3QgYnVp bGQuCisgKiBQYXlsb2FkIGNvbnRhaW5pbmcgdGhlIG9sZCBjb2RlIHRvIGNoZWNrIGFnYWluc3Qg dGhhdC4gVGhhdCBhbGxvd3MKKyAgIHRoZSBob3RwYXRjaGVzIHRvIGJlIGxvYWRlZCBpbmRlcGVk ZW50bHkgKGlmIHRoZXkgZG9uJ3Qgb3ZlcmxhcCkgLSBvcgorICAgaWYgdGhlIG9sZCBjb2RlIGFs c28gY29udGFpbnN0IHByZXZpb3VzbHkgcGF0Y2hlZCBjb2RlIC0gZXZlbiBpZiB0aGV5CisgICBv dmVybGFwLgorCitUaGUgZGlzYWR2YW50YWdlIG9mIHRoZSBmaXJzdCBsYXJnZSBwYXRjaCBpcyB0 aGF0IGl0IGNhbiBncm93IG92ZXIKK3RpbWUgYW5kIG5vdCBwcm92aWRlIGFuIGJpc2VjdGlvbiBt ZWNoYW5pc20gdG8gaWRlbnRpZnkgZmF1bHR5IHBhdGNoZXMuCisKK1RoZSBob3QtcGF0Y2ggc3Rh Y2sgcHV0cyBzdHJpY3RzIHJlcXVpcmVtZW50cyBvbiB0aGUgb3JkZXIgb2YgdGhlIHBhdGNoZXMK K2JlaW5nIGxvYWRlZCBhbmQgcmVxdWlyZXMgYW4gaHlwZXJ2aXNvciBidWlsZC1pZCB0byBtYXRj aCBhZ2FpbnN0LgorCitUaGUgb2xkIGNvZGUgYWxsb3dzIG11Y2ggbW9yZSBmbGV4aWJpbGl0eSBh bmQgYW4gYWRkaXRpb25hbCBndWFyZCwKK2J1dCBpcyBtb3JlIGNvbXBsZXggdG8gaW1wbGVtZW50 LgorCitUaGUgc2Vjb25kIG9wdGlvbiB3aGljaCByZXF1aXJlcyBhbiBidWlsZC1pZCBvZiB0aGUg aHlwZXJ2aXNvcgoraXMgaW1wbGVtZW50ZWQgaW4gdGhlIFhlbiBQcm9qZWN0IGh5cGVydmlzb3Iu CisKK1NwZWNpZmljYWxseSBlYWNoIHBheWxvYWQgaGFzIHR3byBidWlsZC1pZCBFTEYgbm90ZXM6 CisgKiBUaGUgYnVpbGQtaWQgb2YgdGhlIHBheWxvYWQgaXRzZWxmIChnZW5lcmF0ZWQgdmlhIC0t YnVpbGQtaWQpLgorICogVGhlIGJ1aWxkLWlkIG9mIHRoZSBwYXlsb2FkIGl0IGRlcGVuZHMgb24g KGV4dHJhY3RlZCBmcm9tIHRoZQorICAgdGhlIHByZXZpb3VzIHBheWxvYWQgb3IgaHlwZXJ2aXNv ciBkdXJpbmcgYnVpbGQgdGltZSkuCisKK1RoaXMgbWVhbnMgdGhhdCB0aGUgdmVyeSBmaXJzdCBw YXlsb2FkIGRlcGVuZHMgb24gdGhlIGh5cGVydmlzb3IKK2J1aWxkLWlkLgogCiAjIE5vdCBZZXQg RG9uZQogCkBAIC04ODIsMTMgKzk0NCw2IEBAIFRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IGFsc28g aGF2ZSBhIG1lY2hhbmlzbSBmb3IgKGluIG5vIHBhcnRpY3VsYXIgb3JkZXIpOgogICogTk9QIG91 dCB0aGUgY29kZSBzZXF1ZW5jZSBpZiBgbmV3X3NpemVgIGlzIHplcm8uCiAgKiBEZWFsIHdpdGgg b3RoZXIgcmVsb2NhdGlvbiB0eXBlczogIFJfWDg2XzY0X1s4LDE2LDMyLDMyU10sIFJfWDg2XzY0 X1BDWzgsMTYsNjRdCiAgICBpbiBwYXlsb2FkIGZpbGUuCi0gKiBBbiBkZXBlbmRlbmN5IG1lY2hh bmlzbSBmb3IgdGhlIHBheWxvYWRzLiBUbyB1c2UgdGhhdCBpbmZvcm1hdGlvbiB0byBsb2FkOgot ICAgIC0gVGhlIGFwcHJvcGlhdGUgcGF5bG9hZC4gVG8gdmVyaWZ5IHRoYXQgcGF5bG9hZCBpcyBi dWlsdCBhZ2FpbnN0IHRoZQotICAgICAgaHlwZXJ2aXNvci4gVGhpcyBjYW4gYmUgZG9uZSB2aWEg dGhlIGBidWlsZC1pZGAKLSAgICAgIG9yIHZpYSBwcm92aWRpbmcgYW4gY29weSBvZiB0aGUgb2xk IGNvZGUgLSBzbyB0aGF0IHRoZSBoeXBlcnZpc29yIGNhbgotICAgICAgIHZlcmlmeSBpdCBhZ2Fp bnN0IHRoZSBjb2RlIGluIG1lbW9yeS4KLSAgICAtIFRvIGNvbnN0cnVjdCBhbiBhcHByb3BpYXRl IG9yZGVyIG9mIHBheWxvYWRzIHRvIGxvYWQgaW4gY2FzZSB0aGV5Ci0gICAgICBkZXBlbmQgb24g ZWFjaCBvdGhlci4KIAogIyMjIEhhbmRsZSBpbmxpbmVkIF9fTElORV9fCiAKQEAgLTk1MywzMiAr MTAwOCw2IEBAIHRoZSBmdW5jdGlvbiBpdHNlbGYuCiBTaW1pbGFyIGNvbnNpZGVyYXRpb25zIGFy ZSB0cnVlIHRvIGEgbGVzc2VyIGV4dGVudCBmb3IgX19GSUxFX18sIGJ1dCBpdAogY291bGQgYmUg YXJndWVkIHRoYXQgZmlsZSByZW5hbWluZyBzaG91bGQgYmUgZG9uZSBvdXRzaWRlIG9mIGhvdHBh dGNoZXMuCiAKLSMjIyB4U3BsaWNlIGludGVyZGVwZW5kZW5jaWVzCi0KLXhTcGxpY2UgcGF0Y2hl cyBpbnRlcmRlcGVuZGVuY2llcyBhcmUgdHJpY2t5LgotCi1UaGVyZSBhcmUgdGhlIHdheXMgdGhp cyBjYW4gYmUgYWRkcmVzc2VkOgotICogQSBzaW5nbGUgbGFyZ2UgcGF0Y2ggdGhhdCBzdWJzdW1l cyBhbmQgcmVwbGFjZXMgYWxsIHByZXZpb3VzIG9uZXMuCi0gICBPdmVyIHRoZSBsaWZlLXRpbWUg b2YgcGF0Y2hpbmcgdGhlIGh5cGVydmlzb3IgdGhpcyBsYXJnZSBwYXRjaAotICAgZ3Jvd3MgdG8g YWNjdW11bGF0ZSBhbGwgdGhlIGNvZGUgY2hhbmdlcy4KLSAqIEhvdHBhdGNoIHN0YWNrIC0gd2hl cmUgYW4gbWVjaGFuaXNtIGV4aXN0cyB0aGF0IGxvYWRzIHRoZSBob3RwYXRjaGVzCi0gICBpbiB0 aGUgc2FtZSBvcmRlciB0aGV5IHdlcmUgYnVpbHQgaW4uIFdlIHdvdWxkIG5lZWQgYW4gYnVpbGQt aWQKLSAgIG9mIHRoZSBoeXBldmlzb3IgdG8gbWFrZSBzdXJlIHRoZSBob3QtcGF0Y2hlcyBhcmUg YnVpbGQgYWdhaW5zdCB0aGUKLSAgIGNvcnJlY3QgYnVpbGQuCi0gKiBQYXlsb2FkIGNvbnRhaW5p bmcgdGhlIG9sZCBjb2RlIHRvIGNoZWNrIGFnYWluc3QgdGhhdC4gVGhhdCBhbGxvd3MKLSAgIHRo ZSBob3RwYXRjaGVzIHRvIGJlIGxvYWRlZCBpbmRlcGVkZW50bHkgKGlmIHRoZXkgZG9uJ3Qgb3Zl cmxhcCkgLSBvcgotICAgaWYgdGhlIG9sZCBjb2RlIGFsc28gY29udGFpbnN0IHByZXZpb3VzbHkg cGF0Y2hlZCBjb2RlIC0gZXZlbiBpZiB0aGV5Ci0gICBvdmVybGFwLgotCi1UaGUgZGlzYWR2YW50 YWdlIG9mIHRoZSBmaXJzdCBsYXJnZSBwYXRjaCBpcyB0aGF0IGl0IGNhbiBncm93IG92ZXIKLXRp bWUgYW5kIG5vdCBwcm92aWRlIGFuIGJpc2VjdGlvbiBtZWNoYW5pc20gdG8gaWRlbnRpZnkgZmF1 bHR5IHBhdGNoZXMuCi0KLVRoZSBob3QtcGF0Y2ggc3RhY2sgcHV0cyBzdHJpY3RzIHJlcXVpcmVt ZW50cyBvbiB0aGUgb3JkZXIgb2YgdGhlIHBhdGNoZXMKLWJlaW5nIGxvYWRlZCBhbmQgcmVxdWly ZXMgYW4gaHlwZXJ2aXNvciBidWlsZC1pZCB0byBtYXRjaCBhZ2FpbnN0LgotCi1UaGUgb2xkIGNv ZGUgYWxsb3dzIG11Y2ggbW9yZSBmbGV4aWJpbGl0eSBhbmQgYW4gYWRkaXRpb25hbCBndWFyZCwK LWJ1dCBpcyBtb3JlIGNvbXBsZXggdG8gaW1wbGVtZW50LgotCiAjIyBTaWduYXR1cmUgY2hlY2tp bmcgcmVxdWlyZW1lbnRzLgogCiBUaGUgc2lnbmF0dXJlIGNoZWNraW5nIHJlcXVpcmVzIHRoYXQg dGhlIGxheW91dCBvZiB0aGUgZGF0YSBpbiBtZW1vcnkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni90ZXN0L01ha2VmaWxlIGIveGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUKaW5kZXggYWY3MmFm Zi4uODNkNGMwNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUKKysrIGIv eGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUKQEAgLTYsMTcgKzYsMjAgQEAgQ09ERV9TWj0kKHNo ZWxsIG5tIC0tZGVmaW5lZCAtUyAkKDEpIHwgZ3JlcCAkKDIpIHwgYXdrICd7IHByaW50ICIweCIk JDJ9JykKIC5QSE9OWTogZGVmYXVsdAogCiBYU1BMSUNFIDo9IHhlbl9oZWxsb193b3JsZC54c3Bs aWNlCitYU1BMSUNFX0JZRSA6PSB4ZW5fYnllX3dvcmxkLnhzcGxpY2UKIAogZGVmYXVsdDogeHNw bGljZQogCiBpbnN0YWxsOiB4c3BsaWNlCiAJJChJTlNUQUxMX0RBVEEpICQoWFNQTElDRSkgJChE RVNURElSKSQoREVCVUdfRElSKS8kKFhTUExJQ0UpCisJJChJTlNUQUxMX0RBVEEpICQoWFNQTElD RV9CWUUpICQoREVTVERJUikkKERFQlVHX0RJUikvJChYU1BMSUNFX0JZRSkKIHVuaW5zdGFsbDoK IAlybSAtZiAkKERFU1RESVIpJChERUJVR19ESVIpLyQoWFNQTElDRSkKKwlybSAtZiAkKERFU1RE SVIpJChERUJVR19ESVIpLyQoWFNQTElDRV9CWUUpCiAKIC5QSE9OWTogY2xlYW4KIGNsZWFuOjoK LQlybSAtZiAqLm8gLiouby5kICQoWFNQTElDRSkgY29uZmlnLmgKKwlybSAtZiAqLm8gLiouby5k ICQoWFNQTElDRSkgJChYU1BMSUNFX0JZRSkgY29uZmlnLmggKi5iaW4KIAogIwogIyBUbyBjb21w dXRlIHRoZXNlIHZhbHVlcyB3ZSBuZWVkIHRoZSBiaW5hcnkgZmlsZXM6IHhlbi1zeW1zCkBAIC0y NSw3ICsyOCw3IEBAIGNsZWFuOjoKIC5QSE9OWTogY29uZmlnLmgKIGNvbmZpZy5oOiBPTERfQ09E RV9TWj0kKGNhbGwgQ09ERV9TWiwkKEJBU0VESVIpL3hlbi1zeW1zLHhlbl9leHRyYV92ZXJzaW9u KQogY29uZmlnLmg6IE5FV19DT0RFX1NaPSQoY2FsbCBDT0RFX1NaLCQ8LHhlbl9oZWxsb193b3Js ZCkKLWNvbmZpZy5oOiB4ZW5faGVsbG9fd29ybGRfZnVuYy5vCitjb25maWcuaDogeGVuX2hlbGxv X3dvcmxkX2Z1bmMubyB4ZW5fYnllX3dvcmxkX2Z1bmMubwogCShzZXQgLWU7IFwKIAkgZWNobyAi I2RlZmluZSBORVdfQ09ERV9TWiAkKE5FV19DT0RFX1NaKSI7IFwKIAkgZWNobyAiI2RlZmluZSBP TERfQ09ERV9TWiAkKE9MRF9DT0RFX1NaKSIpID4gJEAKQEAgLTMzLDkgKzM2LDQzIEBAIGNvbmZp Zy5oOiB4ZW5faGVsbG9fd29ybGRfZnVuYy5vCiB4ZW5faGVsbG9fd29ybGQubzogeGVuX2hlbGxv X3dvcmxkX2Z1bmMubwogCiAuUEhPTlk6ICQoWFNQTElDRSkKLSQoWFNQTElDRSk6IGNvbmZpZy5o IHhlbl9oZWxsb193b3JsZF9mdW5jLm8geGVuX2hlbGxvX3dvcmxkLm8KLQkkKExEKSAkKExERkxB R1MpIC1yIC1vICQoWFNQTElDRSkgeGVuX2hlbGxvX3dvcmxkX2Z1bmMubyBcCi0JCXhlbl9oZWxs b193b3JsZC5vCiskKFhTUExJQ0UpOiBjb25maWcuaCB4ZW5faGVsbG9fd29ybGRfZnVuYy5vIHhl bl9oZWxsb193b3JsZC5vIG5vdGUubworCSQoTEQpICQoTERGTEFHUykgJChidWlsZF9pZF9saW5r ZXIpIC1yIC1vICQoWFNQTElDRSkgXAorCQl4ZW5faGVsbG9fd29ybGRfZnVuYy5vIHhlbl9oZWxs b193b3JsZC5vIG5vdGUubworIworIyBUaGlzIHRhcmdldCBpcyBvbmx5IGFjY2Vzc2libGUgaWYg Q09ORklHX1hTUExJQ0UgaXMgZGVmaW5lZCwgd2hpY2gKKyMgZGVwZW5kcyBvbiAkKGJ1aWxkX2lk X2xpbmtlcikgYmVpbmcgYXZhaWxhYmxlLiBIZW5jZSB3ZSBkbyBub3QKKyMgbmVlZCBhbnkgY2hl Y2tzLgorIworIyBOLkIuIFRoZSByZWFzb24gd2UgZG9uJ3QgdXNlIGFyY2gveDg2L25vdGUubyBp cyB0aGF0IGl0IG1heQorIyBub3QgYmUgYnVpbHQgKGl0IGlzIGZvciBFRkkgYnVpbGRzKSwgYW5k IHRoYXQgd2UgZG8gbm90IGhhdmUKKyMgdGhlIG5vdGUuby5iaW4gdG8gbXVjayB3aXRoIChhcyBp dCBnZXRzIGRlbGV0ZWQpCisjCisuUEhPTlk6IG5vdGUubworbm90ZS5vOgorCSQoT0JKQ09QWSkg LU8gYmluYXJ5IC0tb25seS1zZWN0aW9uPS5ub3RlLmdudS5idWlsZC1pZCAkKEJBU0VESVIpL3hl bi1zeW1zICRALmJpbgorCSQoT0JKQ09QWSkgLUkgYmluYXJ5IC1PIGVsZjY0LXg4Ni02NCAtQiBp Mzg2Ong4Ni02NCBcCisJCSAgIC0tcmVuYW1lLXNlY3Rpb249LmRhdGE9LnhzcGxpY2UuZGVwZW5k cyAtUyAkQC5iaW4gJEAKKwlybSAtZiAkQC5iaW4KKworIworIyBFeHRyYWN0IHRoZSBidWlsZC1p ZCBvZiB0aGUgeGVuX2hlbGxvX3dvcmxkLnhzcGxpY2UKKyMgKHdoaWNoIHhlbl9ieWVfd29ybGQg d2lsbCBkZXBlbmQgb24pLgorIworLlBIT05ZOiBoZWxsb193b3JsZF9ub3RlLm8KK2hlbGxvX3dv cmxkX25vdGUubzogJChYU1BMSUNFKQorCSQoT0JKQ09QWSkgLU8gYmluYXJ5IC0tb25seS1zZWN0 aW9uPS5ub3RlLmdudS5idWlsZC1pZCAkKFhTUExJQ0UpICRALmJpbgorCSQoT0JKQ09QWSkgIC1J IGJpbmFyeSAtTyBlbGY2NC14ODYtNjQgLUIgaTM4Njp4ODYtNjQgXAorCQkgICAtLXJlbmFtZS1z ZWN0aW9uPS5kYXRhPS54c3BsaWNlLmRlcGVuZHMgLVMgJEAuYmluICRACisJcm0gLWYgJEAuYmlu CisKK3hlbl9ieWVfd29ybGQubzogeGVuX2J5ZV93b3JsZF9mdW5jLm8KKworLlBIT05ZOiAkKFhT UExJQ0VfQllFKQorJChYU1BMSUNFX0JZRSk6ICQoWFNQTElDRSkgY29uZmlnLmggeGVuX2J5ZV93 b3JsZF9mdW5jLm8geGVuX2J5ZV93b3JsZC5vIGhlbGxvX3dvcmxkX25vdGUubworCSQoTEQpICQo TERGTEFHUykgJChidWlsZF9pZF9saW5rZXIpIC1yIC1vICQoWFNQTElDRV9CWUUpIFwKKwkJeGVu X2J5ZV93b3JsZF9mdW5jLm8geGVuX2J5ZV93b3JsZC5vIGhlbGxvX3dvcmxkX25vdGUubworCiAK IC5QSE9OWTogeHNwbGljZQoteHNwbGljZTogJChYU1BMSUNFKQoreHNwbGljZTogJChYU1BMSUNF KSAkKFhTUExJQ0VfQllFKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3Rlc3QveGVuX2J5ZV93 b3JsZC5jIGIveGVuL2FyY2gveDg2L3Rlc3QveGVuX2J5ZV93b3JsZC5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5M2Y5NjkKLS0tIC9kZXYvbnVsbAorKysgYi94ZW4vYXJj aC94ODYvdGVzdC94ZW5fYnllX3dvcmxkLmMKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHly aWdodCAoYykgMjAxNiBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJl c2VydmVkLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSA8eGVuL2xp Yi5oPgorI2luY2x1ZGUgPHhlbi90eXBlcy5oPgorI2luY2x1ZGUgPHhlbi92ZXJzaW9uLmg+Cisj aW5jbHVkZSA8eGVuL3hzcGxpY2UuaD4KKworI2luY2x1ZGUgPHB1YmxpYy9zeXNjdGwuaD4KKwor c3RhdGljIGNoYXIgYnllX3dvcmxkX3BhdGNoX3RoaXNfZm5jW10gPSAieGVuX2V4dHJhX3ZlcnNp b24iOworZXh0ZXJuIGNvbnN0IGNoYXIgKnhlbl9ieWVfd29ybGQodm9pZCk7CisKK3N0cnVjdCB4 c3BsaWNlX3BhdGNoX2Z1bmMgX19zZWN0aW9uKCIueHNwbGljZS5mdW5jcyIpIHhzcGxpY2VfeGVu X2J5ZV93b3JsZCA9IHsKKyAgICAudmVyc2lvbiA9IFhTUExJQ0VfUEFZTE9BRF9WRVJTSU9OLAor ICAgIC5uYW1lID0gYnllX3dvcmxkX3BhdGNoX3RoaXNfZm5jLAorICAgIC5uZXdfYWRkciA9IHhl bl9ieWVfd29ybGQsCisgICAgLm9sZF9hZGRyID0geGVuX2V4dHJhX3ZlcnNpb24sCisgICAgLm5l d19zaXplID0gTkVXX0NPREVfU1osCisgICAgLm9sZF9zaXplID0gT0xEX0NPREVfU1osCit9Owor CisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAi QlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRh YnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90ZXN0 L3hlbl9ieWVfd29ybGRfZnVuYy5jIGIveGVuL2FyY2gveDg2L3Rlc3QveGVuX2J5ZV93b3JsZF9m dW5jLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzJlZjM0MQotLS0gL2Rl di9udWxsCisrKyBiL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9ieWVfd29ybGRfZnVuYy5jCkBAIC0w LDAgKzEsMjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgT3JhY2xlIGFuZC9vciBpdHMg YWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKi8KKworI2luY2x1ZGUgPHhl bi90eXBlcy5oPgorCisvKiBPdXIgcmVwbGFjZW1lbnQgZnVuY3Rpb24gZm9yIHhlbl9oZWxsb193 b3JsZC4gKi8KK2NvbnN0IGNoYXIgKnhlbl9ieWVfd29ybGQodm9pZCkKK3sKKyAgICByZXR1cm4g IkJ5ZSBXb3JsZCEiOworfQorCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQwor ICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0 aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBh L3hlbi9jb21tb24vS2NvbmZpZyBiL3hlbi9jb21tb24vS2NvbmZpZwppbmRleCBlNGY4NmMyLi45 MWVhOTA0IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL0tjb25maWcKKysrIGIveGVuL2NvbW1vbi9L Y29uZmlnCkBAIC02MCw2ICs2MCwxMCBAQCBjb25maWcgSEFTX0dEQlNYCiBjb25maWcgSEFTX0lP UE9SVFMKIAlib29sCiAKK2NvbmZpZyBIQVNfQlVJTERfSUQKKwlzdHJpbmcKKwlvcHRpb24gZW52 PSJYRU5fSEFTX0JVSUxEX0lEIgorCiAjIEVuYWJsZS9EaXNhYmxlIGtleGVjIHN1cHBvcnQKIGNv bmZpZyBLRVhFQwogCWJvb2wgImtleGVjIHN1cHBvcnQiCkBAIC0xOTIsNyArMTk2LDcgQEAgZW5k bWVudQogY29uZmlnIFhTUExJQ0UKIAlib29sICJ4U3BsaWNlIGxpdmUgcGF0Y2hpbmcgc3VwcG9y dCAoVEVDSCBQUkVWSUVXKSIKIAlkZWZhdWx0IG4KLQlkZXBlbmRzIG9uIFg4NgorCWRlcGVuZHMg b24gWDg2ICYmIEhBU19CVUlMRF9JRCA9ICJ5IgogCS0tLWhlbHAtLS0KIAkgIEFsbG93cyBhIHJ1 bm5pbmcgWGVuIGh5cGVydmlzb3IgdG8gYmUgZHluYW1pY2FsbHkgcGF0Y2hlZCB1c2luZwogCSAg YmluYXJ5IHBhdGNoZXMgd2l0aG91dCByZWJvb3RpbmcuIFRoaXMgaXMgcHJpbWFyaWx5IHVzZWQg dG8gYmluYXJpbHkKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vdmVyc2lvbi5jIGIveGVuL2NvbW1v bi92ZXJzaW9uLmMKaW5kZXggMzA1NzhhNi4uNzQ0ZmJlMyAxMDA2NDQKLS0tIGEveGVuL2NvbW1v bi92ZXJzaW9uLmMKKysrIGIveGVuL2NvbW1vbi92ZXJzaW9uLmMKQEAgLTg2LDkgKzg2LDQxIEBA IGludCB4ZW5fYnVpbGRfaWQoY29uc3Qgdm9pZCAqKnAsIHVuc2lnbmVkIGludCAqbGVuKQogLyog RGVmaW5lZCBpbiBsaW5rZXIgc2NyaXB0LiAqLwogZXh0ZXJuIGNvbnN0IEVsZl9Ob3RlIF9fbm90 ZV9nbnVfYnVpbGRfaWRfc3RhcnRbXSwgX19ub3RlX2dudV9idWlsZF9pZF9lbmRbXTsKIAoraW50 IHhlbl9idWlsZF9pZF9jaGVjayhjb25zdCBFbGZfTm90ZSAqbiwgdW5zaWduZWQgaW50IG5fc3os CisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKipwLCB1bnNpZ25lZCBpbnQgKmxl bikKK3sKKyAgICAvKiBDaGVjayBpZiB3ZSByZWFsbHkgaGF2ZSBhIGJ1aWxkLWlkLiAqLworICAg IGlmICggTlRfR05VX0JVSUxEX0lEICE9IG4tPnR5cGUgKQorICAgICAgICByZXR1cm4gLUVOT0RB VEE7CisKKyAgICBpZiAoIG5fc3ogPD0gc2l6ZW9mKCpuKSApCisgICAgICAgIHJldHVybiAtRUlO VkFMOworCisgICAgaWYgKCBuLT5uYW1lc3ogKyBuLT5kZXNjc3ogPiBVSU5UX01BWCApCisgICAg ICAgIHJldHVybiAtRUlOVkFMOworCisgICAgaWYgKCBuLT5uYW1lc3ogIT0gNCAvKiBHTlVcMCAq LykKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICBpZiAoIG4tPm5hbWVzeiArIG4tPmRl c2NzeiArIHNpemVvZigqbikgPiBuX3N6ICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAg ICAvKiBTYW5pdHkgY2hlY2ssIG5hbWUgc2hvdWxkIGJlICJHTlUiIGZvciBsZC1nZW5lcmF0ZWQg YnVpbGQtaWQuICovCisgICAgaWYgKCBzdHJuY21wKEVMRk5PVEVfTkFNRShuKSwgIkdOVSIsIG4t Pm5hbWVzeikgIT0gMCApCisgICAgICAgIHJldHVybiAtRU5PREFUQTsKKworICAgIGlmICggbGVu ICkKKyAgICAgICAgKmxlbiA9IG4tPmRlc2NzejsKKyAgICBpZiAoIHAgKQorICAgICAgICAqcCA9 IEVMRk5PVEVfREVTQyhuKTsKKworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgaW50IF9faW5p dCB4ZW5fYnVpbGRfaW5pdCh2b2lkKQogewogICAgIGNvbnN0IEVsZl9Ob3RlICpuID0gX19ub3Rl X2dudV9idWlsZF9pZF9zdGFydDsKKyAgICBzaXplX3Qgc3o7CiAKICAgICAvKiAtLWJ1aWxkLWlk IGludm9rZWQgd2l0aCB3cm9uZyBwYXJhbWV0ZXJzLiAqLwogICAgIGlmICggX19ub3RlX2dudV9i dWlsZF9pZF9lbmQgPD0gJm5bMF0gKQpAQCAtOTgsMTggKzEzMCw5IEBAIHN0YXRpYyBpbnQgX19p bml0IHhlbl9idWlsZF9pbml0KHZvaWQpCiAgICAgaWYgKCAmblsxXSA+IF9fbm90ZV9nbnVfYnVp bGRfaWRfZW5kICkKICAgICAgICAgcmV0dXJuIC1FTk9EQVRBOzsKIAotICAgIC8qIENoZWNrIGlm IHdlIHJlYWxseSBoYXZlIGEgYnVpbGQtaWQuICovCi0gICAgaWYgKCBOVF9HTlVfQlVJTERfSUQg IT0gbi0+dHlwZSApCi0gICAgICAgIHJldHVybiAtRU5PREFUQTsKKyAgICBzeiA9IChzaXplX3Qp X19ub3RlX2dudV9idWlsZF9pZF9lbmQgLSAoc2l6ZV90KW47CiAKLSAgICAvKiBTYW5pdHkgY2hl Y2ssIG5hbWUgc2hvdWxkIGJlICJHTlUiIGZvciBsZC1nZW5lcmF0ZWQgYnVpbGQtaWQuICovCi0g ICAgaWYgKCBzdHJuY21wKEVMRk5PVEVfTkFNRShuKSwgIkdOVSIsIG4tPm5hbWVzeikgIT0gMCAp Ci0gICAgICAgIHJldHVybiAtRU5PREFUQTsKLQotICAgIGJ1aWxkX2lkX2xlbiA9IG4tPmRlc2Nz ejsKLSAgICBidWlsZF9pZF9wID0gRUxGTk9URV9ERVNDKG4pOwotCi0gICAgcmV0dXJuIDA7Cisg ICAgcmV0dXJuIHhlbl9idWlsZF9pZF9jaGVjayhuLCBzeiwgJmJ1aWxkX2lkX3AsICZidWlsZF9p ZF9sZW4pOwogfQogX19pbml0Y2FsbCh4ZW5fYnVpbGRfaW5pdCk7CiAjZW5kaWYKZGlmZiAtLWdp dCBhL3hlbi9jb21tb24veHNwbGljZS5jIGIveGVuL2NvbW1vbi94c3BsaWNlLmMKaW5kZXggOTM0 ZGQyMi4uYThiMjA4ZCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi94c3BsaWNlLmMKKysrIGIveGVu L2NvbW1vbi94c3BsaWNlLmMKQEAgLTQsNiArNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgPHhlbi9j cHUuaD4KKyNpbmNsdWRlIDx4ZW4vZWxmLmg+CiAjaW5jbHVkZSA8eGVuL2Vyci5oPgogI2luY2x1 ZGUgPHhlbi9ndWVzdF9hY2Nlc3MuaD4KICNpbmNsdWRlIDx4ZW4va2V5aGFuZGxlci5oPgpAQCAt NDIsNiArNDMsMTIgQEAgc3RhdGljIExJU1RfSEVBRChhcHBsaWVkX2xpc3QpOwogc3RhdGljIHVu c2lnbmVkIGludCBwYXlsb2FkX2NudDsKIHN0YXRpYyB1bnNpZ25lZCBpbnQgcGF5bG9hZF92ZXJz aW9uID0gMTsKIAorLyogVG8gY29udGFpbiB0aGUgRUxGIE5vdGUgaGVhZGVyLiAqLworc3RydWN0 IHhzcGxpY2VfYnVpbGRfaWQgeworICAgY29uc3Qgdm9pZCAqcDsKKyAgIHVuc2lnbmVkIGludCBs ZW47Cit9OworCiBzdHJ1Y3QgcGF5bG9hZCB7CiAgICAgdWludDMyX3Qgc3RhdGU7ICAgICAgICAg ICAgICAgICAgICAgIC8qIE9uZSBvZiB0aGUgWFNQTElDRV9TVEFURV8qLiAqLwogICAgIGludDMy X3QgcmM7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwIG9yIC1YRU5fRVhYLiAqLwpAQCAt NjEsNiArNjgsOCBAQCBzdHJ1Y3QgcGF5bG9hZCB7CiAgICAgc3RydWN0IHZpcnR1YWxfcmVnaW9u IHJlZ2lvbjsgICAgICAgIC8qIHN5bWJvbCwgYnVnLmZyYW1lIHBhdGNoaW5nIGFuZAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHRpb24gdGFibGUgKHg4 NikuICovCiAgICAgdW5zaWduZWQgaW50IG5zeW1zOyAgICAgICAgICAgICAgICAgIC8qIE5yIG9m IGVudHJpZXMgaW4gLnN0cnRhYiBhbmQgc3ltYm9scy4gKi8KKyAgICBzdHJ1Y3QgeHNwbGljZV9i dWlsZF9pZCBpZDsgICAgICAgICAgLyogRUxGTk9URV9ERVNDKC5ub3RlLmdudS5idWlsZC1pZCkg b2YgdGhlIHBheWxvYWQuICovCisgICAgc3RydWN0IHhzcGxpY2VfYnVpbGRfaWQgZGVwOyAgICAg ICAgIC8qIEVMRk5PVEVfREVTQygueHNwbGljZS5kZXBlbmRzKS4gKi8KICAgICBjaGFyIG5hbWVb WEVOX1hTUExJQ0VfTkFNRV9TSVpFXTsgICAgLyogTmFtZSBvZiBpdC4gKi8KIH07CiAKQEAgLTQx MCw4ICs0MTksMTAgQEAgc3RhdGljIGludCBzZWN1cmVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAq cGF5bG9hZCwgc3RydWN0IHhzcGxpY2VfZWxmICplbGYpCiBzdGF0aWMgaW50IGNoZWNrX3NwZWNp YWxfc2VjdGlvbnMoY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmICplbGYpCiB7CiAgICAgdW5zaWdu ZWQgaW50IGk7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG5hbWVzW10gPSB7IEVMRl9Y U1BMSUNFX0ZVTkMgfTsKLSAgICBib29sX3QgY291bnRbQVJSQVlfU0laRShuYW1lcyldID0geyAw IH07CisgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG5hbWVzW10gPSB7IEVMRl9YU1BMSUNF X0ZVTkMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVMRl9YU1BM SUNFX0RFUEVORFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVM Rl9CVUlMRF9JRF9OT1RFfTsKKyAgICBib29sX3QgY291bnRbQVJSQVlfU0laRShuYW1lcyldID0g eyAwLCAwLCAwIH07CiAKICAgICBmb3IgKCBpID0gMDsgaSA8IEFSUkFZX1NJWkUobmFtZXMpOyBp KysgKQogICAgIHsKQEAgLTQ0OSw2ICs0NjAsNyBAQCBzdGF0aWMgaW50IHByZXBhcmVfcGF5bG9h ZChzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwKICAgICB1bnNpZ25lZCBpbnQgaTsKICAgICBzdHJ1 Y3QgeHNwbGljZV9wYXRjaF9mdW5jICpmOwogICAgIHN0cnVjdCB2aXJ0dWFsX3JlZ2lvbiAqcmVn aW9uOworICAgIGNvbnN0IEVsZl9Ob3RlICpuOwogCiAgICAgc2VjID0geHNwbGljZV9lbGZfc2Vj X2J5X25hbWUoZWxmLCBFTEZfWFNQTElDRV9GVU5DKTsKICAgICBBU1NFUlQoc2VjKTsKQEAgLTUw NSw2ICs1MTcsMzcgQEAgc3RhdGljIGludCBwcmVwYXJlX3BheWxvYWQoc3RydWN0IHBheWxvYWQg KnBheWxvYWQsCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBzZWMgPSB4c3BsaWNlX2VsZl9zZWNf YnlfbmFtZShlbGYsIEVMRl9CVUlMRF9JRF9OT1RFKTsKKyAgICBpZiAoIHNlYyApCisgICAgewor ICAgICAgICBuID0gc2VjLT5sb2FkX2FkZHI7CisKKyAgICAgICAgaWYgKCBzZWMtPnNlYy0+c2hf c2l6ZSA8PSBzaXplb2YoKm4pICkKKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAg ICAgIGlmICggeGVuX2J1aWxkX2lkX2NoZWNrKG4sIHNlYy0+c2VjLT5zaF9zaXplLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmcGF5bG9hZC0+aWQucCwgJnBheWxvYWQtPmlkLmxl bikgKQorICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICAgICAgaWYgKCAhcGF5bG9h ZC0+aWQubGVuIHx8ICFwYXlsb2FkLT5pZC5wICkKKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFM OworICAgIH0KKworICAgIHNlYyA9IHhzcGxpY2VfZWxmX3NlY19ieV9uYW1lKGVsZiwgRUxGX1hT UExJQ0VfREVQRU5EUyk7CisgICAgeworICAgICAgICBuID0gc2VjLT5sb2FkX2FkZHI7CisKKyAg ICAgICAgaWYgKCBzZWMtPnNlYy0+c2hfc2l6ZSA8PSBzaXplb2YoKm4pICkKKyAgICAgICAgICAg IHJldHVybiAtRUlOVkFMOworCisgICAgICAgIGlmICggeGVuX2J1aWxkX2lkX2NoZWNrKG4sIHNl Yy0+c2VjLT5zaF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGF5bG9h ZC0+ZGVwLnAsICZwYXlsb2FkLT5kZXAubGVuKSApCisgICAgICAgICAgICByZXR1cm4gLUVJTlZB TDsKKworICAgICAgICBpZiAoICFwYXlsb2FkLT5kZXAubGVuIHx8ICFwYXlsb2FkLT5kZXAucCAp CisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKICAgICAvKiBTZXR1cCB0aGUg dmlydHVhbCByZWdpb24gd2l0aCBwcm9wZXIgZGF0YS4gKi8KICAgICByZWdpb24gPSAmcGF5bG9h ZC0+cmVnaW9uOwogCkBAIC0xMjM0LDYgKzEyNzcsNTUgQEAgdm9pZCBjaGVja19mb3JfeHNwbGlj ZV93b3JrKHZvaWQpCiAgICAgfQogfQogCisvKgorICogT25seSBhbGxvdyBkZXBlbmRlbnQgcGF5 bG9hZCBpcyBhcHBsaWVkIG9uIHRvcCBvZiB0aGUgY29ycmVjdAorICogYnVpbGQtaWQuCisgKgor ICogVGhpcyBlbmZvcmNlcyBhbiBzdGFja2luZyBvcmRlciAtIHRoZSBmaXJzdCBwYXlsb2FkIE1V U1QgYmUgYWdhaW5zdCB0aGUKKyAqIGh5cGVydmlzb3IuIFRoZSBzZWNvbmQgYWdhaW5zdCB0aGUg Zmlyc3QgcGF5bG9hZCwgYW5kIHNvIG9uLgorICoKKyAqIFVubGVzcyB0aGUgJ2ludGVybmFsJyBw YXJhbWV0ZXIgaXMgdXNlZCAtIGluIHdoaWNoIGNhc2Ugd2Ugb25seQorICogY2hlY2sgYWdhaW5z dCB0aGUgaHlwZXJ2aXNvci4KKyAqLworc3RhdGljIGludCBidWlsZF9pZF9kZXAoc3RydWN0IHBh eWxvYWQgKnBheWxvYWQsIGJvb2xfdCBpbnRlcm5hbCkKK3sKKyAgICBjb25zdCB2b2lkICppZCA9 IE5VTEw7CisgICAgdW5zaWduZWQgaW50IGxlbiA9IDA7CisgICAgaW50IHJjOworICAgIGNvbnN0 IGNoYXIgKm5hbWUgPSAiaHlwZXJ2aXNvciI7CisKKyAgICBBU1NFUlQocGF5bG9hZC0+ZGVwLmxl biAmJiBwYXlsb2FkLT5kZXAucCk7CisKKyAgICAvKiBGaXJzdCB0aW1lIHVzZXIgaXMgYWdhaW5z dCBoeXBlcnZpc29yLiAqLworICAgIGlmICggaW50ZXJuYWwgKQorICAgIHsKKyAgICAgICAgcmMg PSB4ZW5fYnVpbGRfaWQoJmlkLCAmbGVuKTsKKyAgICAgICAgaWYgKCByYyApCisgICAgICAgICAg ICByZXR1cm4gcmM7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIC8qIFdlIHNob3Vs ZCBiZSBhZ2FpbnN0IHRoZSBsYXN0IGFwcGxpZWQgb25lLiAqLworICAgICAgICBjb25zdCBzdHJ1 Y3QgcGF5bG9hZCAqZGF0YTsKKworICAgICAgICBkYXRhID0gbGlzdF9sYXN0X2VudHJ5KCZhcHBs aWVkX2xpc3QsIHN0cnVjdCBwYXlsb2FkLCBhcHBsaWVkX2xpc3QpOworCisgICAgICAgIGlkID0g ZGF0YS0+aWQucDsKKyAgICAgICAgbGVuID0gZGF0YS0+aWQubGVuOworICAgICAgICBuYW1lID0g ZGF0YS0+bmFtZTsKKyAgICB9CisKKyAgICBpZiAoIHBheWxvYWQtPmRlcC5sZW4gIT0gbGVuIHx8 CisgICAgICAgICBtZW1jbXAoaWQsIHBheWxvYWQtPmRlcC5wLCBsZW4pICkKKyAgICB7CisgICAg ICAgIGRwcmludGsoWEVOTE9HX0VSUiwgIiVzJXM6IGNoZWNrIGFnYWluc3QgJXMgYnVpbGQtaWQg ZmFpbGVkIVxuIiwKKyAgICAgICAgICAgICAgICBYU1BMSUNFLCBwYXlsb2FkLT5uYW1lLCBuYW1l KTsKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisK IHN0YXRpYyBpbnQgeHNwbGljZV9hY3Rpb24oeGVuX3N5c2N0bF94c3BsaWNlX2FjdGlvbl90ICph Y3Rpb24pCiB7CiAgICAgc3RydWN0IHBheWxvYWQgKmRhdGE7CkBAIC0xMjgyLDYgKzEzNzQsMTgg QEAgc3RhdGljIGludCB4c3BsaWNlX2FjdGlvbih4ZW5fc3lzY3RsX3hzcGxpY2VfYWN0aW9uX3Qg KmFjdGlvbikKICAgICBjYXNlIFhTUExJQ0VfQUNUSU9OX1JFVkVSVDoKICAgICAgICAgaWYgKCBk YXRhLT5zdGF0ZSA9PSBYU1BMSUNFX1NUQVRFX0FQUExJRUQgKQogICAgICAgICB7CisgICAgICAg ICAgICBjb25zdCBzdHJ1Y3QgcGF5bG9hZCAqcDsKKworICAgICAgICAgICAgcCA9IGxpc3RfbGFz dF9lbnRyeSgmYXBwbGllZF9saXN0LCBzdHJ1Y3QgcGF5bG9hZCwgYXBwbGllZF9saXN0KTsKKyAg ICAgICAgICAgIEFTU0VSVChwKTsKKyAgICAgICAgICAgIC8qIFdlIHNob3VsZCBiZSB0aGUgbGFz dCBhcHBsaWVkIG9uZS4gKi8KKyAgICAgICAgICAgIGlmICggcCAhPSBkYXRhICkKKyAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsICIlcyVzOiBjYW4ndCB1 bmxvYWQuIFRvcCBpcyAlcyFcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBYU1BMSUNFLCBk YXRhLT5uYW1lLCBwLT5uYW1lKTsKKyAgICAgICAgICAgICAgICByYyA9IC1FQlVTWTsKKyAgICAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGRhdGEtPnJjID0g LUVBR0FJTjsKICAgICAgICAgICAgIHJjID0gc2NoZWR1bGVfd29yayhkYXRhLCBhY3Rpb24tPmNt ZCwgYWN0aW9uLT50aW1lb3V0KTsKICAgICAgICAgfQpAQCAtMTI5MCw2ICsxMzk0LDkgQEAgc3Rh dGljIGludCB4c3BsaWNlX2FjdGlvbih4ZW5fc3lzY3RsX3hzcGxpY2VfYWN0aW9uX3QgKmFjdGlv bikKICAgICBjYXNlIFhTUExJQ0VfQUNUSU9OX0FQUExZOgogICAgICAgICBpZiAoIGRhdGEtPnN0 YXRlID09IFhTUExJQ0VfU1RBVEVfQ0hFQ0tFRCApCiAgICAgICAgIHsKKyAgICAgICAgICAgIHJj ID0gYnVpbGRfaWRfZGVwKGRhdGEsICEhbGlzdF9lbXB0eSgmYXBwbGllZF9saXN0KSk7CisgICAg ICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRh dGEtPnJjID0gLUVBR0FJTjsKICAgICAgICAgICAgIHJjID0gc2NoZWR1bGVfd29yayhkYXRhLCBh Y3Rpb24tPmNtZCwgYWN0aW9uLT50aW1lb3V0KTsKICAgICAgICAgfQpAQCAtMTI5OCw2ICsxNDA1 LDkgQEAgc3RhdGljIGludCB4c3BsaWNlX2FjdGlvbih4ZW5fc3lzY3RsX3hzcGxpY2VfYWN0aW9u X3QgKmFjdGlvbikKICAgICBjYXNlIFhTUExJQ0VfQUNUSU9OX1JFUExBQ0U6CiAgICAgICAgIGlm ICggZGF0YS0+c3RhdGUgPT0gWFNQTElDRV9TVEFURV9DSEVDS0VEICkKICAgICAgICAgeworICAg ICAgICAgICAgcmMgPSBidWlsZF9pZF9kZXAoZGF0YSwgMSAvKiBhZ2FpbnN0IGh5cGVydmlzb3Iu ICovKTsKKyAgICAgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgICAgIGJyZWFrOwogICAg ICAgICAgICAgZGF0YS0+cmMgPSAtRUFHQUlOOwogICAgICAgICAgICAgcmMgPSBzY2hlZHVsZV93 b3JrKGRhdGEsIGFjdGlvbi0+Y21kLCBhY3Rpb24tPnRpbWVvdXQpOwogICAgICAgICB9CkBAIC0x NDAyLDYgKzE1MTIsMTEgQEAgc3RhdGljIHZvaWQgeHNwbGljZV9wcmludGFsbCh1bnNpZ25lZCBj aGFyIGtleSkKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyAg ICAgICAgaWYgKCBkYXRhLT5pZC5sZW4gKQorICAgICAgICAgICAgcHJpbnRrKCJidWlsZC1pZD0l KnBoTlxuIiwgZGF0YS0+aWQubGVuLCBkYXRhLT5pZC5wKTsKKworICAgICAgICBpZiAoIGRhdGEt PmRlcC5sZW4gKQorICAgICAgICAgICAgcHJpbnRrKCJkZXBlbmQtb249JSpwaE5cbiIsIGRhdGEt PmRlcC5sZW4sIGRhdGEtPmRlcC5wKTsKICAgICB9CiAKICAgICBzcGluX3VubG9jaygmcGF5bG9h ZF9sb2NrKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi94c3BsaWNlLmggYi94ZW4vaW5j bHVkZS94ZW4veHNwbGljZS5oCmluZGV4IGNiZGJmZjEuLjAwNWNmMTggMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL3hlbi94c3BsaWNlLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3hzcGxpY2UuaApA QCAtMjgsNiArMjgsOCBAQCBzdHJ1Y3QgeGVuX3N5c2N0bF94c3BsaWNlX29wOwogI2RlZmluZSBY U1BMSUNFICAgICAgICAgICAgICJ4c3BsaWNlOiAiCiAvKiBFTEYgcGF5bG9hZCBzcGVjaWFsIHNl Y3Rpb24gbmFtZXMuICovCiAjZGVmaW5lIEVMRl9YU1BMSUNFX0ZVTkMgICAgIi54c3BsaWNlLmZ1 bmNzIgorI2RlZmluZSBFTEZfWFNQTElDRV9ERVBFTkRTICIueHNwbGljZS5kZXBlbmRzIgorI2Rl ZmluZSBFTEZfQlVJTERfSURfTk9URSAgICIubm90ZS5nbnUuYnVpbGQtaWQiCiAKIHN0cnVjdCB4 c3BsaWNlX3N5bWJvbCB7CiAgICAgY29uc3QgY2hhciAqbmFtZTsKQEAgLTQwLDYgKzQyLDggQEAg aW50IHhzcGxpY2Vfb3Aoc3RydWN0IHhlbl9zeXNjdGxfeHNwbGljZV9vcCAqKTsKIHZvaWQgY2hl Y2tfZm9yX3hzcGxpY2Vfd29yayh2b2lkKTsKIHZvaWQgKnhzcGxpY2Vfc3ltYm9sc19sb29rdXBf YnlfbmFtZShjb25zdCBjaGFyICpzeW1uYW1lKTsKIGJvb2xfdCBpc19wYXRjaChjb25zdCB2b2lk ICphZGRyKTsKK2ludCB4ZW5fYnVpbGRfaWRfY2hlY2soY29uc3QgRWxmX05vdGUgKm4sIHVuc2ln bmVkIGludCBuX3N6LAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICoqcCwgdW5z aWduZWQgaW50ICpsZW4pOwogCiAvKiBBcmNoIGhvb2tzLiAqLwogaW50IGFyY2hfeHNwbGljZV92 ZXJpZnlfZWxmKGNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmKTsKLS0gCjIuNS4wCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK