From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v8 18/25] build_id: Provide ld-embedded build-ids Date: Wed, 13 Apr 2016 17:09:49 -0400 Message-ID: <1460581796-30071-19-git-send-email-konrad.wilk@oracle.com> References: <1460581796-30071-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 1aqS3r-00077R-PX for xen-devel@lists.xenproject.org; Wed, 13 Apr 2016 21:10:55 +0000 In-Reply-To: <1460581796-30071-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: Julien Grall , Stefano Stabellini , Keir Fraser , Jan Beulich , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBlbmFibGVzIHRoZSBFbGYgdG8gYmUgYnVpbHQgd2l0aCB0aGUgYnVpbGQtaWQK YW5kIHByb3ZpZGUgaW4gdGhlIFhlbiBoeXBlcnZpc29yIHRoZSBjb2RlIHRvIGV4dHJhY3QgaXQu CgpUaGUgbWFuLXBhZ2UgZm9yIGxkIC0tYnVpbGQtaWQgc2F5cyBpdCBpczoKCiJSZXF1ZXN0IHRo ZSBjcmVhdGlvbiBvZiBhICIubm90ZS5nbnUuYnVpbGQtaWQiIEVMRiBub3RlCnNlY3Rpb24gb3Ig YSAiLmJ1aWxkLWlkIiBDT0ZGIHNlY3Rpb24uICBUaGUgY29udGVudHMgb2YgdGhlCm5vdGUgYXJl IHVuaXF1ZSBiaXRzIGlkZW50aWZ5aW5nIHRoaXMgbGlua2VkIGZpbGUuIHN0eWxlIGNhbiBiZQoi dXVpZCIgdG8gdXNlIDEyOCByYW5kb20gYml0cywgInNoYTEiIHRvIHVzZSBhIDE2MC1iaXQgU0hB MSBoYXNoCm9uIHRoZSBub3JtYXRpdmUgcGFydHMgb2YgdGhlIG91dHB1dCBjb250ZW50cywgLi4u IgoKT25lIGNhbiBhbHNvIHJldHJpZXZlIHRoZSB2YWx1ZSBvZiB0aGUgYnVpbGQtaWQgYnkgZG9p bmcKJ3JlYWRlbGYgLW4geGVuLXN5bXMnLgoKRm9yIEVGSSBidWlsZHMgd2UgcmUtdXNlIHRoZSBz YW1lIGJ1aWxkLWlkIHRoYXQgdGhlIHhlbi1zeW1zCndhcyBidWlsdCB3aXRoLgoKVGhlIHZlcnNp b24gb2YgbGQgdGhhdCBmaXJzdCBpbXBsZW1lbnRlZCAtLWJ1aWxkLWlkIGlzIHYyLjE4LgpXZSBj aGVjayBmb3IgdG8gc2VlIGlmIHRoZSBsaW5rZXIgc3VwcG9ydHMgdGhlIC0tYnVpbGQtaWQKcGFy YW1ldGVyIGFuZCBpZiBzbyB1c2UgaXQuCgpGb3IgeDg2IHdlIGhhdmUgdHdvIGJpbmFyaWVzIC0g dGhlIHhlbi1zeW1zIGFuZCB0aGUgeGVuIC0gYW4Kc21hbGxlciB2ZXJzaW9uIHdpdGggbG90cyBv ZiBzZWN0aW9ucyByZW1vdmVkLiBUbyBtYWtlIGl0IHBvc3NpYmxlCmZvciByZWFkZWxmIC1uIHhl biB3ZSBhbHNvIG1vZGlmeSBta2VsZjMyIGFuZCB4ZW4ubGRzLlMgdG8gaW5jbHVkZQp0aGUgUFRf Tk9URSBFTEYgc2VjdGlvbi4KClRoZSBFRkkgYmluYXJ5IGlzIG1vcmUgY29tcGxpY2F0ZWQuIFdl IG9ubHkgYnVpbGQgb25lIHR5cGUgb2YKYmluYXJ5IGFuZCBleHBhbmRpbmcgdGhlIGFtb3VudCBv ZiBzZWN0aW9ucyB0aGUgRUZJIGJpbmFyeSBoYXMgdG8KaW5jbHVkZSBhbiAubm90ZSBvbmUgaXMg cG9pbnRsZXNzIC0gYXMgdGhlcmUgaXMgbm8gY29uY2VwdCBvZgpQVF9OT1RFLiBUaGUgYmVzdCB3 ZSBjYW4gZG8gaXMgbW92ZSB0aGlzIC5ub3RlIGluIHRoZSAucm9kYXRhIHNlY3Rpb24uCgpGdXJ0 aGVyIGRldmVsb3BtZW50IHdpc2Ugc2hvdWxkIG1vdmUgaXQgdG8gLmJ1aWxkaWQgc2VjdGlvbgpz byB0aGF0IERhdGFEaXJlY3RvcnkgZGVidWcgZGF0YSBub3IgQ29kZVZpZXcgY2FuIHZpZXcgaXQu CihUaGUgYXV0aG9yIGhhcyBubyBjbHVlIHdoYXQgdGhvc2UgYXJlKS4KCk5vdGUgdGhhdCBpbiBl YXJsaWVyIHBhdGNoZXMgdGhlIGxpbmtlciBzY3JpcHQgaGFkOgoKIF9fbm90ZV9nbnVfYnVpbGRf aWRfc3RhcnQgPSAuOwogKigucm9kYXRhLm5vdGUuZ251LmJ1aWxkLWlkKQogX19ub3RlX2dudV9i dWlsZF9pZF9lbmQgPSAuOwogKigubm90ZSkKICooLm5vdGUuKikKCldoaWNoIG1lYW50IHlvdSBj b3VsZCBoYXZlIGRpZmZlcmVudCBFTEYgbm90ZXMgX291dHNpZGVfIHRoZQpfX25vdGVfZ251X2J1 aWxkX2lkX2VuZC4gSG93ZXZlciBmb3IgRUZJIGJ1aWxkcyB3ZSB0YWtlIHRoZSB3aG9sZQoubm90 ZSogc2VjdGlvbiBhbmQgamFtIGl0IGluIHRoZSBFRkkgdG8gYmUgYmV0d2VlbgpfX25vdGVfZ251 X2J1aWxkX2lkX3N0YXJ0IGFuZCBfX25vdGVfZ251X2J1aWxkX2lkX2VuZC4KVG8gbm90IG1ha2Ug dGhpcyBoYXBwZW5kIHdlIG1ha2Ugb24gdGhlIEVMRiBidWlsZCB0aGUgc2VjdGlvbgpiZSBjYWxs ZWQgLm5vdGUuZ251LmJ1aWxkLWlkICAoaW5zdGVhZCBvZiBqdXN0IC5ub3RlKS4KSWYgdGhlcmUg aXMgYSBuZWVkIGZvciBhIGRpZmZlcmVudCB0eXBlIG9mIG5vdGUgb3RoZXIgZm9sa3MKY2FuIGFk ZCBpdCBhcyBhIGRpZmZlcmVudCBzZWN0aW9uIG5hbWUuCgpOb3RlIHRoYXQgd2UgZG8gY2FsbCAt LWJpbmFyeS1pZD1zaGExIG9uIGFsbCBsaW5rZXIgaW52b2NhdGlvbnMuCldlIGhhdmUgdG8gZG8g dG8gZW5mb3JjZSB0aGF0IHRoZSBzeW1ib2wgb2Zmc2V0cyBkb24ndCBjaGFuZ2VzCih0aGUgc2lk ZSBlZmZlY3QgaXMgdGhhdCB3ZSB3ZSB3b3VsZCBoYXZlIG11bHRpcGxlIGJpbmFyeSBpZHMgLQpl eGNlcHQgdGhhdCB0aGUgbGFzdCBvbmUgaXMgdGhlIGZpbmFsIG9uZSkuCgpXaXRob3V0IHRoaXMg d29ya2luZyB0aGUgc3ltYm9sIHRhYmxlIGVtYmVkZGVkIGluIFhlbiBlbmRzCnVwIGluY29ycmVj dCAtIHNvbWUgb2YgdGhlIHZhbHVlcyBpdCBjb250YWlucyB3b3VsZCBiZSBvZmZzZXQgYnkgdGhl CnNpemUgb2YgdGhlIGluY2x1ZGVkIGJ1aWxkIGlkLgoKVGhpcyBvYnZpb3VzbHkgY2F1c2VzIHBy b2JsZW1zIHdoZW4gcmVzb2x2aW5nIHN5bWJvbHMuCgpXZSBhbHNvIGRlZmluZSB0aGUgTlRfR05V X0JVSUxEX0lEIGluIHRoZSBlbGZzdHJ1Y3RzLmggYXMgd2UKbmVlZCB0byB1c2UgaXQgaW4gdmFy aW91cyBwbGFjZXMuCgpTdWdnZXN0ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIz QGNpdHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IE1hcnRpbiBQb2hsYWNrIDxtcG9obGFja0BhbWF6 b24uZGU+ClNpZ25lZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtA b3JhY2xlLmNvbT4KQWNrZWQtYnk6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+ ClJldmlld2VkLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgoK LS0tCkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBK dWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpDYzogS2VpciBGcmFzZXIgPGtlaXJA eGVuLm9yZz4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBD b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Cgp2MTogUmViYXNlIGl0IG9uIE1hcnRp bidzIGluaXRpYWwgcGF0Y2gKdjI6IE1vdmUgaXQgdG8gWEVOVkVSIGh5cGVyY2FsbAp2MzogRml4 IEVGSSBidWlsZGluZyAoUm9zcydzIGZpeCkKICAgIERvbid0IHVzZSB0aGUgdGhpcmQgYXJndW1l bnQgZm9yIGxlbmd0aC4KICAgIFVzZSBuZXcgc3RydWN0dXJlIGZvciBYRU5WRVJfYnVpbGRfaWQg d2l0aCB2YXJpYWJsZSBidWYuCiAgICBJbmNsdWRlIFJvc3MncyBmaXguCiAgICBJbmNsdWRlIGRl dGVjdGlvbiBvZiBiaW4tdXRpbHMgZm9yIGJ1aWxkLWlkIHN1cHBvcnQsIGFkZAogICAgcHJvYmlu ZyBmb3Igc2l6ZSwgYW5kIHJldHVybiAtRVBFUk0gZm9yIFhTTSBkZW5pZWQgY2FsbHMuCiAgICBC dWlsZCB4ZW5fYnVpbGRfaWQgdW5kZXIgQVJNLCByZXF1aXJlZCBhZGRpbmcgRUxGU0laRSBpbiBw cm9wZXIgZmlsZS4KICAgIFJlYmFzZSBvbiB0b3AgWFNNIHZlcnNpb24gY2xhc3MuCnY0OgogICAg SW5jbHVkZSB0aGUgYnVpbGQtaWQgLm5vdGUgaW4gdGhlIHhlbiBFTEYgYmluYXJ5LgogICAgcy9i dWlsZF9pZC9idWlsZF9pZF9saW5rZXIvCiAgICBGb3IgRUZJIGJ1aWxkLCBtb3ZlZCB0aGUgLS1i dWlsZC1pZCB2YWx1ZXMgaW4gLmRhdGEgc2VjdGlvbgogICAgUmViYXNlIG9uIHN0YWdpbmcuCiAg ICBTcGxpdCBwYXRjaCBpbiB0d28uIEFsd2F5cyBkbyAtLWJ1aWxkLWlkIGNhbGwuIEluY2x1ZGUg dGhlIC5ub3RlIGluCiAgICAucm9kYXRhLiBVU2UgY29uc3Qgdm9pZCAqIGFuZCBzc2l6ZV90CiAg ICBVc2UgLVMgdG8gbWFrZSBidWlsZF9pZC5vIGFuZCBvYmpjb3B5IGRpZmZlcmVudGx5IChBbmRy ZXcgc3VnZ2VzdGVkKQp2NTogUHV0IGJhY2sgdGhlICNpZmRlZiBMT0NLX1BST0ZJTEUgb24gQVJN LiAoQmFkIGNoYW5nZSkuIE1vdmUgdGhlIF9lcm9kYXRhCiAgICBhcm91bmQuIHMvc3NpemVfdC91 bnNpZ25lZCBpbnQvCnY2OiBSZWRpZCBpdCBwZXIgSmFuJ3MgcmV2aWV3Lgp2NzogTW92ZSBidWls ZC1pZCBub3RlIGluIC5yb2RhdGEubm90ZSBmb3IgRUZJIGJ1aWxkcyBvbmx5LgogICAgTW92ZSBi dWlsZC1pZCBub3RlIGluIC5yb2RhdGEgZm9yIEVGSSBidWlsZHMgb25seS4gUmV0YWluCiAgICBp dCBpbiAubm90ZS4gQ2hhbmdlIG5hbWUgb2Ygb2JqZWN0IGZpbGUgdXNlZCBieSBFRkkgYnVpbGRz IHRvIG5vdGVzLm8KICAgIE1ha2Ugb24gRUxGIGJ1aWxkcyB0aGUgUFRfTk9URSBzZWN0aW9uIG5h bWUgYmUgLm5vdGUuZ251LmJ1aWxkLWlkIGFuZAogICAgaW5nZXN0IHRoYXQgaW4gRUxGIGJ1aWxk LgogICAgRGVmaW5lIE5UX0dOVV9CVUlMRF9JRCBpbiBlbGZzdHJ1Y3RzLmgKdjg6IHMvbnVtX3Bo ZHJzL25vdGVzX3BoZHJzLwogICBBZGRlZCBBbmRyZXcncyBSZXZpZXdlZC1ieQotLS0KLS0tCiBD b25maWcubWsgICAgICAgICAgICAgICAgICAgIHwgIDExICsrKysKIHhlbi9hcmNoL2FybS9NYWtl ZmlsZSAgICAgICAgfCAgIDIgKy0KIHhlbi9hcmNoL2FybS94ZW4ubGRzLlMgICAgICAgfCAgMTUg KysrKy0KIHhlbi9hcmNoL3g4Ni9NYWtlZmlsZSAgICAgICAgfCAgMzAgKysrKysrKystLQogeGVu L2FyY2gveDg2L2Jvb3QvbWtlbGYzMi5jICB8IDEyOSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tCiB4ZW4vYXJjaC94ODYveGVuLmxkcy5TICAgICAgIHwgIDI4ICsr KysrKysrKysKIHhlbi9jb21tb24vdmVyc2lvbi5jICAgICAgICAgfCAgNTAgKysrKysrKysrKysr KysrKysKIHhlbi9pbmNsdWRlL3hlbi9lbGZzdHJ1Y3RzLmggfCAgIDMgKwogeGVuL2luY2x1ZGUv eGVuL3ZlcnNpb24uaCAgICB8ICAgMSArCiA5IGZpbGVzIGNoYW5nZWQsIDI0NyBpbnNlcnRpb25z KCspLCAyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Db25maWcubWsgYi9Db25maWcubWsK aW5kZXggNzllYjJiZC4uZGI3MDYzOCAxMDA2NDQKLS0tIGEvQ29uZmlnLm1rCisrKyBiL0NvbmZp Zy5tawpAQCAtMTI2LDYgKzEyNiwxNyBAQCBlbmRlZgogY2hlY2stJChnY2MpID0gJChjYWxsIGNj LXZlci1jaGVjayxDQywweDA0MDEwMCwiWGVuIHJlcXVpcmVzIGF0IGxlYXN0IGdjYy00LjEiKQog JChldmFsICQoY2hlY2steSkpCiAKK2xkLXZlci1idWlsZC1pZCA9ICQoc2hlbGwgJCgxKSAtLWJ1 aWxkLWlkIDI+JjEgfCBcCisJCQkJCWdyZXAgLXEgdW5yZWNvZ25pemVkICYmIGVjaG8gbiB8fCBl Y2hvIHkpCisKK2V4cG9ydCBYRU5fSEFTX0JVSUxEX0lEID89IG4KK2lmZXEgKCQoY2FsbCBsZC12 ZXItYnVpbGQtaWQsJChMRCkpLG4pCitidWlsZF9pZF9saW5rZXIgOj0KK2Vsc2UKK0NGTEFHUyAr PSAtREJVSUxEX0lECitidWlsZF9pZF9saW5rZXIgOj0gLS1idWlsZC1pZD1zaGExCitlbmRpZgor CiAjIGFzLWluc246IENoZWNrIHdoZXRoZXIgYXNzZW1ibGVyIHN1cHBvcnRzIGFuIGluc3RydWN0 aW9uLgogIyBVc2FnZTogY2ZsYWdzLXkgKz0gJChjYWxsIGFzLWluc24gImluc24iLG9wdGlvbi15 ZXMsb3B0aW9uLW5vKQogYXMtaW5zbiA9ICQoaWYgJChzaGVsbCBlY2hvICd2b2lkIF8odm9pZCkg eyBhc20gdm9sYXRpbGUgKCAkKDIpICk7IH0nIFwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9N YWtlZmlsZSBiL3hlbi9hcmNoL2FybS9NYWtlZmlsZQppbmRleCAwYWZhNDE0Li5mY2FlMjkwIDEw MDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vTWFrZWZpbGUKKysrIGIveGVuL2FyY2gvYXJtL01ha2Vm aWxlCkBAIC05Miw3ICs5Miw3IEBAICQoVEFSR0VUKS1zeW1zOiBwcmVsaW5rLm8geGVuLmxkcyAk KEJBU0VESVIpL2NvbW1vbi9zeW1ib2xzLWR1bW15Lm8KIAkkKE5NKSAtcGEgLS1mb3JtYXQ9c3lz diAkKEBEKS8uJChARikuMSBcCiAJCXwgJChCQVNFRElSKS90b29scy9zeW1ib2xzIC0tc3lzdiAt LXNvcnQgPiQoQEQpLy4kKEBGKS4xLlMKIAkkKE1BS0UpIC1mICQoQkFTRURJUikvUnVsZXMubWsg JChARCkvLiQoQEYpLjEubwotCSQoTEQpICQoTERGTEFHUykgLVQgeGVuLmxkcyAtTiBwcmVsaW5r Lm8gXAorCSQoTEQpICQoTERGTEFHUykgLVQgeGVuLmxkcyAtTiBwcmVsaW5rLm8gJChidWlsZF9p ZF9saW5rZXIpIFwKIAkgICAgJChARCkvLiQoQEYpLjEubyAtbyAkQAogCXJtIC1mICQoQEQpLy4k KEBGKS5bMC05XSoKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3hlbi5sZHMuUyBiL3hlbi9h cmNoL2FybS94ZW4ubGRzLlMKaW5kZXggOTkwOTU5NS4uMWYwMTBiZCAxMDA2NDQKLS0tIGEveGVu L2FyY2gvYXJtL3hlbi5sZHMuUworKysgYi94ZW4vYXJjaC9hcm0veGVuLmxkcy5TCkBAIC0yMiw2 ICsyMiw5IEBAIE9VVFBVVF9BUkNIKEZPUk1BVCkKIFBIRFJTCiB7CiAgIHRleHQgUFRfTE9BRCAv KiBYWFggc2hvdWxkIGJlIEFUICggWEVOX1BIWVNfU1RBUlQgKSAqLyA7CisjaWYgZGVmaW5lZChC VUlMRF9JRCkKKyAgbm90ZSBQVF9OT1RFIDsKKyNlbmRpZgogfQogU0VDVElPTlMKIHsKQEAgLTU3 LDEwICs2MCwxOCBAQCBTRUNUSU9OUwogICAgICAgICooLmxvY2twcm9maWxlLmRhdGEpCiAgICAg ICAgX19sb2NrX3Byb2ZpbGVfZW5kID0gLjsKICNlbmRpZgotCi0gICAgICAgIF9lcm9kYXRhID0g LjsgICAgICAgICAgLyogRW5kIG9mIHJlYWQtb25seSBkYXRhICovCiAgIH0gOnRleHQKIAorI2lm IGRlZmluZWQoQlVJTERfSUQpCisgIC4gPSBBTElHTig0KTsKKyAgLm5vdGUuZ251LmJ1aWxkLWlk IDogeworICAgICAgIF9fbm90ZV9nbnVfYnVpbGRfaWRfc3RhcnQgPSAuOworICAgICAgICooLm5v dGUuZ251LmJ1aWxkLWlkKQorICAgICAgIF9fbm90ZV9nbnVfYnVpbGRfaWRfZW5kID0gLjsKKyAg fSA6bm90ZSA6dGV4dAorI2VuZGlmCisgIF9lcm9kYXRhID0gLjsgICAgICAgICAgICAgICAgLyog RW5kIG9mIHJlYWQtb25seSBkYXRhICovCisKICAgLmRhdGEgOiB7ICAgICAgICAgICAgICAgICAg ICAvKiBEYXRhICovCiAgICAgICAgLiA9IEFMSUdOKFBBR0VfU0laRSk7CiAgICAgICAgKiguZGF0 YS5wYWdlX2FsaWduZWQpCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvTWFrZWZpbGUgYi94ZW4v YXJjaC94ODYvTWFrZWZpbGUKaW5kZXggZGE1YTEzNS4uNDg1ZjY4MSAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L01ha2VmaWxlCisrKyBiL3hlbi9hcmNoL3g4Ni9NYWtlZmlsZQpAQCAtNzYsNiAr NzYsMTIgQEAgZWZpLXkgOj0gJChzaGVsbCBpZiBbICEgLXIgJChCQVNFRElSKS9pbmNsdWRlL3hl bi9jb21waWxlLmggLW8gXAogICAgICAgICAgICAgICAgICAgICAgIC1PICQoQkFTRURJUikvaW5j bHVkZS94ZW4vY29tcGlsZS5oIF07IHRoZW4gXAogICAgICAgICAgICAgICAgICAgICAgICAgIGVj aG8gJyQoVEFSR0VUKS5lZmknOyBmaSkKIAoraWZuZXEgKCQoYnVpbGRfaWRfbGlua2VyKSwpCitu b3Rlc19waGRycyA9IC0tbm90ZXMKK2Vsc2UKK25vdGVzX3BoZHJzID0KK2VuZGlmCisKIGlmZGVm IENPTkZJR19YU1BMSUNFCiBhbGxfc3ltYm9scyA9IC0tYWxsLXN5bWJvbHMKIGlmZGVmIENPTkZJ R19GQVNUX1NZTUJPTF9MT09LVVAKQEAgLTg3LDcgKzkzLDggQEAgZW5kaWYKIAogJChUQVJHRVQp OiAkKFRBUkdFVCktc3ltcyAkKGVmaS15KSBib290L21rZWxmMzIKIAkuL2Jvb3QvbWtlbGYzMiAk KFRBUkdFVCktc3ltcyAkKFRBUkdFVCkgMHgxMDAwMDAgXAotCWAkKE5NKSAtbnIgJChUQVJHRVQp LXN5bXMgfCBoZWFkIC1uIDEgfCBzZWQgLWUgJ3MvXlwoW14gXSpcKS4qLzB4XDEvJ2AKKwlgJChO TSkgLW5yICQoVEFSR0VUKS1zeW1zIHwgaGVhZCAtbiAxIHwgc2VkIC1lICdzL15cKFteIF0qXCku Ki8weFwxLydgIFwKKwkkKG5vdGVzX3BoZHJzKQogCiAuUEhPTlk6IHRlc3RzCiB0ZXN0czoKQEAg LTEyMSwyMiArMTI4LDI4IEBAICQoQkFTRURJUikvY29tbW9uL3N5bWJvbHMtZHVtbXkubzoKIAkk KE1BS0UpIC1mICQoQkFTRURJUikvUnVsZXMubWsgLUMgJChCQVNFRElSKS9jb21tb24gc3ltYm9s cy1kdW1teS5vCiAKICQoVEFSR0VUKS1zeW1zOiBwcmVsaW5rLm8geGVuLmxkcyAkKEJBU0VESVIp L2NvbW1vbi9zeW1ib2xzLWR1bW15Lm8KLQkkKExEKSAkKExERkxBR1MpIC1UIHhlbi5sZHMgLU4g cHJlbGluay5vIFwKKwkkKExEKSAkKExERkxBR1MpIC1UIHhlbi5sZHMgLU4gcHJlbGluay5vICQo YnVpbGRfaWRfbGlua2VyKSBcCiAJICAgICQoQkFTRURJUikvY29tbW9uL3N5bWJvbHMtZHVtbXku byAtbyAkKEBEKS8uJChARikuMAogCSQoTk0pIC1wYSAtLWZvcm1hdD1zeXN2ICQoQEQpLy4kKEBG KS4wIFwKIAkJfCAkKEJBU0VESVIpL3Rvb2xzL3N5bWJvbHMgJChhbGxfc3ltYm9scykgLS1zeXN2 IC0tc29ydCBcCiAJCT4kKEBEKS8uJChARikuMC5TCiAJJChNQUtFKSAtZiAkKEJBU0VESVIpL1J1 bGVzLm1rICQoQEQpLy4kKEBGKS4wLm8KLQkkKExEKSAkKExERkxBR1MpIC1UIHhlbi5sZHMgLU4g cHJlbGluay5vIFwKKwkkKExEKSAkKExERkxBR1MpIC1UIHhlbi5sZHMgLU4gcHJlbGluay5vICQo YnVpbGRfaWRfbGlua2VyKSBcCiAJICAgICQoQEQpLy4kKEBGKS4wLm8gLW8gJChARCkvLiQoQEYp LjEKIAkkKE5NKSAtcGEgLS1mb3JtYXQ9c3lzdiAkKEBEKS8uJChARikuMSBcCiAJCXwgJChCQVNF RElSKS90b29scy9zeW1ib2xzICQoYWxsX3N5bWJvbHMpIC0tc3lzdiAtLXNvcnQgLS13YXJuLWR1 cCBcCiAJCT4kKEBEKS8uJChARikuMS5TCiAJJChNQUtFKSAtZiAkKEJBU0VESVIpL1J1bGVzLm1r ICQoQEQpLy4kKEBGKS4xLm8KLQkkKExEKSAkKExERkxBR1MpIC1UIHhlbi5sZHMgLU4gcHJlbGlu ay5vIFwKKwkkKExEKSAkKExERkxBR1MpIC1UIHhlbi5sZHMgLU4gcHJlbGluay5vICQoYnVpbGRf aWRfbGlua2VyKSBcCiAJICAgICQoQEQpLy4kKEBGKS4xLm8gLW8gJEAKIAlybSAtZiAkKEBEKS8u JChARikuWzAtOV0qCiAKK25vdGUubzogJChUQVJHRVQpLXN5bXMKKwkkKE9CSkNPUFkpIC1PIGJp bmFyeSAtLW9ubHktc2VjdGlvbj0ubm90ZS5nbnUuYnVpbGQtaWQgICQoQkFTRURJUikveGVuLXN5 bXMgJEAuYmluCisJJChPQkpDT1BZKSAtSSBiaW5hcnkgLU8gZWxmNjQteDg2LTY0IC1CIGkzODY6 eDg2LTY0IFwKKwkJLS1yZW5hbWUtc2VjdGlvbj0uZGF0YT0ubm90ZS5nbnUuYnVpbGQtaWQgLVMg JEAuYmluICRACisJcm0gLWYgJEAuYmluCisKIEVGSV9MREZMQUdTID0gJChwYXRzdWJzdCAtbSUs LW1pMzg2cGVwLCQoTERGTEFHUykpIC0tc3Vic3lzdGVtPTEwCiBFRklfTERGTEFHUyArPSAtLWlt YWdlLWJhc2U9JCgxKSAtLXN0YWNrPTAsMCAtLWhlYXA9MCwwIC0tc3RyaXAtZGVidWcKIEVGSV9M REZMQUdTICs9IC0tc2VjdGlvbi1hbGlnbm1lbnQ9MHgyMDAwMDAgLS1maWxlLWFsaWdubWVudD0w eDIwCkBAIC0xNDksNiArMTYyLDEzIEBAICQoVEFSR0VUKS5lZmk6IFZJUlRfQkFTRSA9IDB4JChz aGVsbCAkKE5NKSBlZmkvcmVsb2NzLWR1bW15Lm8gfCBzZWQgLW4gJ3MsIEEgVklSCiAkKFRBUkdF VCkuZWZpOiBBTFRfQkFTRSA9IDB4JChzaGVsbCAkKE5NKSBlZmkvcmVsb2NzLWR1bW15Lm8gfCBz ZWQgLW4gJ3MsIEEgQUxUX1NUQVJUJCQsLHAnKQogIyBEb24ndCB1c2UgJCh3aWxkY2FyZCAuLi4p IGhlcmUgLSBhdCBsZWFzdCBtYWtlIDMuODAgZXhwYW5kcyB0aGlzIHRvbyBlYXJseSEKICQoVEFS R0VUKS5lZmk6IGd1YXJkID0gJChpZiAkKHNoZWxsIGVjaG8gZWZpL2RpcyogfCBncmVwIGRpc2Fi bGVkKSw6KQoraWZuZXEgKCQoYnVpbGRfaWRfbGlua2VyKSwpCiskKFRBUkdFVCkuZWZpOiBub3Rl Lm8KK25vdGVfZmlsZSA6PSBub3RlLm8KK2Vsc2UKK25vdGVfZmlsZSA6PQorZW5kaWYKKwogJChU QVJHRVQpLmVmaTogcHJlbGluay1lZmkubyBlZmkubGRzIGVmaS9yZWxvY3MtZHVtbXkubyAkKEJB U0VESVIpL2NvbW1vbi9zeW1ib2xzLWR1bW15Lm8gZWZpL21rcmVsb2MKIAkkKGZvcmVhY2ggYmFz ZSwgJChWSVJUX0JBU0UpICQoQUxUX0JBU0UpLCBcCiAJICAgICAgICAgICQoZ3VhcmQpICQoTEQp ICQoY2FsbCBFRklfTERGTEFHUywkKGJhc2UpKSAtVCBlZmkubGRzIC1OICQ8IGVmaS9yZWxvY3Mt ZHVtbXkubyBcCkBAIC0xNjUsNyArMTg1LDcgQEAgJChUQVJHRVQpLmVmaTogcHJlbGluay1lZmku byBlZmkubGRzIGVmaS9yZWxvY3MtZHVtbXkubyAkKEJBU0VESVIpL2NvbW1vbi9zeW1ib2wKIAkJ fCAkKGd1YXJkKSAkKEJBU0VESVIpL3Rvb2xzL3N5bWJvbHMgJChhbGxfc3ltYm9scykgLS1zeXN2 IC0tc29ydCA+JChARCkvLiQoQEYpLjFzLlMKIAkkKGd1YXJkKSAkKE1BS0UpIC1mICQoQkFTRURJ UikvUnVsZXMubWsgJChARCkvLiQoQEYpLjFyLm8gJChARCkvLiQoQEYpLjFzLm8KIAkkKGd1YXJk KSAkKExEKSAkKGNhbGwgRUZJX0xERkxBR1MsJChWSVJUX0JBU0UpKSAtVCBlZmkubGRzIC1OICQ8 IFwKLQkgICAgICAgICAgICAgICAgJChARCkvLiQoQEYpLjFyLm8gJChARCkvLiQoQEYpLjFzLm8g LW8gJEAKKwkgICAgICAgICAgICAgICAgJChARCkvLiQoQEYpLjFyLm8gJChARCkvLiQoQEYpLjFz Lm8gJChub3RlX2ZpbGUpIC1vICRACiAJaWYgJChndWFyZCkgZmFsc2U7IHRoZW4gcm0gLWYgJEA7 IGVjaG8gJ0VGSSBzdXBwb3J0IGRpc2FibGVkJzsgZmkKIAlybSAtZiAkKEBEKS8uJChARikuWzAt OV0qCiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9ib290L21rZWxmMzIuYyBiL3hlbi9hcmNo L3g4Ni9ib290L21rZWxmMzIuYwppbmRleCA5OTNhN2VlLi5mY2UxNzE2IDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvYm9vdC9ta2VsZjMyLmMKKysrIGIveGVuL2FyY2gveDg2L2Jvb3QvbWtlbGYz Mi5jCkBAIC00NSw5ICs0NSw5IEBAIHN0YXRpYyBFbGYzMl9FaGRyIG91dF9laGRyID0gewogICAg IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZV9mbGFncyAqLwog ICAgIHNpemVvZihFbGYzMl9FaGRyKSwgICAgICAgICAgICAgICAgICAgICAgLyogZV9laHNpemUg Ki8KICAgICBzaXplb2YoRWxmMzJfUGhkciksICAgICAgICAgICAgICAgICAgICAgIC8qIGVfcGhl bnRzaXplICovCi0gICAgMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiBlX3BobnVtICovCisgICAgMSwgIC8qIG1vZGlmeSBiYXNlZCBvbiBudW1fcGhkcnMgKi8gICAg ICAvKiBlX3BobnVtICovCiAgICAgc2l6ZW9mKEVsZjMyX1NoZHIpLCAgICAgICAgICAgICAgICAg ICAgICAvKiBlX3NoZW50c2l6ZSAqLwotICAgIDMsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogZV9zaG51bSAqLworICAgIDMsICAvKiBtb2RpZnkgYmFzZWQgb24gbnVt X3BoZHJzICovICAgICAgLyogZV9zaG51bSAqLwogICAgIDIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogZV9zaHN0cm5keCAqLwogfTsKIApAQCAtNjEsOCArNjEsMjAg QEAgc3RhdGljIEVsZjMyX1BoZHIgb3V0X3BoZHIgPSB7CiAgICAgUEZfUnxQRl9XfFBGX1gsICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiBwX2ZsYWdzICovCiAgICAgNjQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBwX2FsaWduICovCiB9Oworc3RhdGljIEVsZjMy X1BoZHIgbm90ZV9waGRyID0geworICAgIFBUX05PVEUsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogcF90eXBlICovCisgICAgRFlOQU1JQ0FMTFlfRklMTEVELCAgICAgICAgICAg ICAgICAgICAgICAvKiBwX29mZnNldCAqLworICAgIERZTkFNSUNBTExZX0ZJTExFRCwgICAgICAg ICAgICAgICAgICAgICAgLyogcF92YWRkciAqLworICAgIERZTkFNSUNBTExZX0ZJTExFRCwgICAg ICAgICAgICAgICAgICAgICAgLyogcF9wYWRkciAqLworICAgIERZTkFNSUNBTExZX0ZJTExFRCwg ICAgICAgICAgICAgICAgICAgICAgLyogcF9maWxlc3ogKi8KKyAgICBEWU5BTUlDQUxMWV9GSUxM RUQsICAgICAgICAgICAgICAgICAgICAgIC8qIHBfbWVtc3ogKi8KKyAgICBQRl9SLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHBfZmxhZ3MgKi8KKyAgICA0ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHBfYWxpZ24gKi8KK307CiAKIHN0YXRp YyB1OCBvdXRfc2hzdHJ0YWJbXSA9ICJcMC50ZXh0XDAuc2hzdHJ0YWIiOworLyogSWYgbnVtX3Bo ZHJzID49IDIsIHdlIG5lZWQgdG8gdGFjayB0aGUgLm5vdGUuICovCitzdGF0aWMgdTggb3V0X3No c3RydGFiX2V4dHJhW10gPSAiLm5vdGVcMCI7CiAKIHN0YXRpYyBFbGYzMl9TaGRyIG91dF9zaGRy W10gPSB7CiAgICAgeyAwIH0sCkBAIC05MCw2ICsxMDIsMjMgQEAgc3RhdGljIEVsZjMyX1NoZHIg b3V0X3NoZHJbXSA9IHsKICAgICB9CiB9OwogCisvKgorICogVGhlIDE3IHBvaW50cyB0byB0aGUg Jy5ub3RlJyBpbiB0aGUgb3V0X3Noc3RydGFiIGFuZCBvdXRfc2hzdHJ0YWJfZXh0cmEKKyAqIGxh aWQgb3V0IGluIHRoZSBmaWxlLgorICovCitzdGF0aWMgRWxmMzJfU2hkciBvdXRfc2hkcl9ub3Rl ID0geworICAgICAgMTcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc2hf bmFtZSAqLworICAgICAgU0hUX05PVEUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog c2hfdHlwZSAqLworICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Lyogc2hfZmxhZ3MgKi8KKyAgICAgIERZTkFNSUNBTExZX0ZJTExFRCwgICAgICAgICAgICAgICAg ICAgIC8qIHNoX2FkZHIgKi8KKyAgICAgIERZTkFNSUNBTExZX0ZJTExFRCwgICAgICAgICAgICAg ICAgICAgIC8qIHNoX29mZnNldCAqLworICAgICAgRFlOQU1JQ0FMTFlfRklMTEVELCAgICAgICAg ICAgICAgICAgICAgLyogc2hfc2l6ZSAqLworICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogc2hfbGluayAqLworICAgICAgMCwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogc2hfaW5mbyAqLworICAgICAgNCwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogc2hfYWRkcmFsaWduICovCisgICAgICAwICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzaF9lbnRzaXplICovCit9OworCiAvKiBT b21lIHN5c3RlbSBoZWFkZXIgZmlsZXMgZGVmaW5lIHRoZXNlIG1hY3JvcyBhbmQgcG9sbHV0ZSBv dXIgbmFtZXNwYWNlLiAqLwogI3VuZGVmIHN3YXAxNgogI3VuZGVmIHN3YXAzMgpAQCAtMjI4LDIx ICsyNTcsMjIgQEAgc3RhdGljIHZvaWQgZG9fcmVhZChpbnQgZmQsIHZvaWQgKmRhdGEsIGludCBs ZW4pCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAgICAgdTY0ICAgICAgICBm aW5hbF9leGVjX2FkZHI7Ci0gICAgdTMyICAgICAgICBsb2FkYmFzZSwgZGF0X3NpeiwgbWVtX3Np ejsKKyAgICB1MzIgICAgICAgIGxvYWRiYXNlLCBkYXRfc2l6LCBtZW1fc2l6LCBub3RlX2Jhc2Us IG5vdGVfc3osIG9mZnNldDsKICAgICBjaGFyICAgICAgKmluaW1hZ2UsICpvdXRpbWFnZTsKICAg ICBpbnQgICAgICAgIGluZmQsIG91dGZkOwogICAgIGNoYXIgICAgICAgYnVmZmVyWzEwMjRdOwog ICAgIGludCAgICAgICAgYnl0ZXMsIHRvZG8sIGk7CisgICAgaW50ICAgICAgICBudW1fcGhkcnMg PSAxOwogCiAgICAgRWxmMzJfRWhkciBpbjMyX2VoZHI7CiAKICAgICBFbGY2NF9FaGRyIGluNjRf ZWhkcjsKICAgICBFbGY2NF9QaGRyIGluNjRfcGhkcjsKIAotICAgIGlmICggYXJnYyAhPSA1ICkK KyAgICBpZiAoIGFyZ2MgPCA1ICkKICAgICB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVXNh Z2U6IG1rZWxmMzIgPGluLWltYWdlPiA8b3V0LWltYWdlPiAiCi0gICAgICAgICAgICAgICAgIjxs b2FkLWJhc2U+IDxmaW5hbC1leGVjLWFkZHI+XG4iKTsKKyAgICAgICAgICAgICAgICAiPGxvYWQt YmFzZT4gPGZpbmFsLWV4ZWMtYWRkcj4gPG51bWJlciBvZiBwcm9ncmFtIGhlYWRlcnM+IFstLW5v dGVzXVxuIik7CiAgICAgICAgIHJldHVybiAxOwogICAgIH0KIApAQCAtMjUwLDYgKzI4MCw4IEBA IGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICBvdXRpbWFnZSA9IGFyZ3ZbMl07 CiAgICAgbG9hZGJhc2UgPSBzdHJ0b3VsKGFyZ3ZbM10sIE5VTEwsIDE2KTsKICAgICBmaW5hbF9l eGVjX2FkZHIgPSBzdHJ0b3VsbChhcmd2WzRdLCBOVUxMLCAxNik7CisgICAgaWYgKCBhcmd2WzVd ICYmICghc3RyY21wKGFyZ3ZbNV0sICItLW5vdGVzIikpICkKKyAgICAgICAgbnVtX3BoZHJzID0g MjsKIAogICAgIGluZmQgPSBvcGVuKGluaW1hZ2UsIE9fUkRPTkxZKTsKICAgICBpZiAoIGluZmQg PT0gLTEgKQpAQCAtMjg1LDExICszMTcsMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KQogICAgICAgICAgICAgICAgIChpbnQpaW42NF9laGRyLmVfcGhlbnRzaXplLCAoaW50KXNp emVvZihpbjY0X3BoZHIpKTsKICAgICAgICAgcmV0dXJuIDE7CiAgICAgfQotCi0gICAgaWYgKCBp bjY0X2VoZHIuZV9waG51bSAhPSAxICkKKyAgICBpZiAoIGluNjRfZWhkci5lX3BobnVtICE9IG51 bV9waGRycyApCiAgICAgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkV4cGVjdCBwcmVjaXNs eSAxIHByb2dyYW0gaGVhZGVyOyBmb3VuZCAlZC5cbiIsCi0gICAgICAgICAgICAgICAgKGludClp bjY0X2VoZHIuZV9waG51bSk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXhwZWN0IHByZWNp c2x5ICVkIHByb2dyYW0gaGVhZGVyOyBmb3VuZCAlZC5cbiIsCisgICAgICAgICAgICAgICAgbnVt X3BoZHJzLCAoaW50KWluNjRfZWhkci5lX3BobnVtKTsKICAgICAgICAgcmV0dXJuIDE7CiAgICAg fQogCkBAIC0zMDQsNiArMzM1LDMyIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK ICAgICAvKm1lbV9zaXogPSAodTMyKWluNjRfcGhkci5wX21lbXN6OyovCiAgICAgbWVtX3NpeiA9 ICh1MzIpKGZpbmFsX2V4ZWNfYWRkciAtIGluNjRfcGhkci5wX3ZhZGRyKTsKIAorICAgIG5vdGVf c3ogPSBub3RlX2Jhc2UgPSBvZmZzZXQgPSAwOworICAgIGlmICggbnVtX3BoZHJzID4gMSApCisg ICAgeworICAgICAgICBvZmZzZXQgPSBpbjY0X3BoZHIucF9vZmZzZXQ7CisgICAgICAgIG5vdGVf YmFzZSA9IGluNjRfcGhkci5wX3ZhZGRyOworCisgICAgICAgICh2b2lkKWxzZWVrKGluZmQsIGlu NjRfZWhkci5lX3Bob2ZmK3NpemVvZihpbjY0X3BoZHIpLCBTRUVLX1NFVCk7CisgICAgICAgIGRv X3JlYWQoaW5mZCwgJmluNjRfcGhkciwgc2l6ZW9mKGluNjRfcGhkcikpOworICAgICAgICBlbmRp YW5hZGp1c3RfcGhkcjY0KCZpbjY0X3BoZHIpOworCisgICAgICAgICh2b2lkKWxzZWVrKGluZmQs IG9mZnNldCwgU0VFS19TRVQpOworCisgICAgICAgIG5vdGVfc3ogPSBpbjY0X3BoZHIucF9tZW1z ejsKKyAgICAgICAgbm90ZV9iYXNlID0gaW42NF9waGRyLnBfdmFkZHIgLSBub3RlX2Jhc2U7CisK KyAgICAgICAgaWYgKCBpbjY0X3BoZHIucF9vZmZzZXQgPiBkYXRfc2l6IHx8IG9mZnNldCA+IGlu NjRfcGhkci5wX29mZnNldCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJy LCAiRXhwZWN0ZWQgLm5vdGUgc2VjdGlvbiB3aXRoaW4gLnRleHQgc2VjdGlvbiFcbiIgXAorICAg ICAgICAgICAgICAgICAgICAiT2Zmc2V0ICVsZCBub3Qgd2l0aGluICVkIVxuIiwKKyAgICAgICAg ICAgICAgICAgICAgaW42NF9waGRyLnBfb2Zmc2V0LCBkYXRfc2l6KTsKKyAgICAgICAgICAgIHJl dHVybiAxOworICAgICAgICB9CisgICAgICAgIC8qIEdldHMgdXMgdGhlIGFic29sdXRlIG9mZnNl dCB3aXRoaW4gdGhlIC50ZXh0IHNlY3Rpb24uICovCisgICAgICAgIG9mZnNldCA9IGluNjRfcGhk ci5wX29mZnNldCAtIG9mZnNldDsKKyAgICB9CisKICAgICAvKgogICAgICAqIEVuZCB0aGUgaW1h Z2Ugb24gYSBwYWdlIGJvdW5kYXJ5LiBUaGlzIGdldHMgcm91bmQgYWxpZ25tZW50IGJ1Z3MKICAg ICAgKiBpbiB0aGUgYm9vdC0gb3IgY2hhaW4tbG9hZGVyIChlLmcuLCBrZXhlYyBvbiB0aGUgWGVu b0Jvb3QgQ0QpLgpAQCAtMzIyLDYgKzM3OSwzMSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpCiAgICAgb3V0X3NoZHJbMV0uc2hfc2l6ZSAgID0gZGF0X3NpejsKICAgICBvdXRfc2hk clsyXS5zaF9vZmZzZXQgPSBSQVdfT0ZGU0VUICsgZGF0X3NpeiArIHNpemVvZihvdXRfc2hkcik7 CiAKKyAgICBpZiAoIG51bV9waGRycyA+IDEgKQorICAgIHsKKyAgICAgICAgLyogV2UgaGF2ZSB0 d28gb2YgdGhlbSEgKi8KKyAgICAgICAgb3V0X2VoZHIuZV9waG51bSA9IG51bV9waGRyczsKKyAg ICAgICAgLyogRXh0cmEgLm5vdGUgc2VjdGlvbi4gKi8KKyAgICAgICAgb3V0X2VoZHIuZV9zaG51 bSsrOworCisgICAgICAgIC8qIEZpbGwgb3V0IHRoZSBQVF9OT1RFIHByb2dyYW0gaGVhZGVyLiAq LworICAgICAgICBub3RlX3BoZHIucF92YWRkciAgID0gbm90ZV9iYXNlOworICAgICAgICBub3Rl X3BoZHIucF9wYWRkciAgID0gbm90ZV9iYXNlOworICAgICAgICBub3RlX3BoZHIucF9maWxlc3og ID0gbm90ZV9zejsKKyAgICAgICAgbm90ZV9waGRyLnBfbWVtc3ogICA9IG5vdGVfc3o7CisgICAg ICAgIG5vdGVfcGhkci5wX29mZnNldCAgPSBvZmZzZXQ7CisKKyAgICAgICAgLyogVGFjayBvbiB0 aGUgLm5vdGVcMCAqLworICAgICAgICBvdXRfc2hkclsyXS5zaF9zaXplICs9IHNpemVvZihvdXRf c2hzdHJ0YWJfZXh0cmEpOworICAgICAgICAvKiBBbmQgbW92ZSBpdCBwYXN0IHRoZSAubm90ZSBz ZWN0aW9uLiAqLworICAgICAgICBvdXRfc2hkclsyXS5zaF9vZmZzZXQgKz0gc2l6ZW9mKG91dF9z aGRyX25vdGUpOworCisgICAgICAgIC8qIEZpbGwgb3V0IHRoZSAubm90ZSBzZWN0aW9uLiAqLwor ICAgICAgICBvdXRfc2hkcl9ub3RlLnNoX3NpemUgPSBub3RlX3N6OworICAgICAgICBvdXRfc2hk cl9ub3RlLnNoX2FkZHIgPSBub3RlX2Jhc2U7CisgICAgICAgIG91dF9zaGRyX25vdGUuc2hfb2Zm c2V0ID0gUkFXX09GRlNFVCArIG9mZnNldDsKKyAgICB9CisKICAgICBvdXRmZCA9IG9wZW4ob3V0 aW1hZ2UsIE9fV1JPTkxZfE9fQ1JFQVR8T19UUlVOQywgMDc3NSk7CiAgICAgaWYgKCBvdXRmZCA9 PSAtMSApCiAgICAgewpAQCAtMzM1LDggKzQxNywxNCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hh ciAqKmFyZ3YpCiAKICAgICBlbmRpYW5hZGp1c3RfcGhkcjMyKCZvdXRfcGhkcik7CiAgICAgZG9f d3JpdGUob3V0ZmQsICZvdXRfcGhkciwgc2l6ZW9mKG91dF9waGRyKSk7Ci0gICAgCi0gICAgaWYg KCAoYnl0ZXMgPSBSQVdfT0ZGU0VUIC0gc2l6ZW9mKG91dF9laGRyKSAtIHNpemVvZihvdXRfcGhk cikpIDwgMCApCisKKyAgICBpZiAoIG51bV9waGRycyA+IDEgKQorICAgIHsKKyAgICAgICAgZW5k aWFuYWRqdXN0X3BoZHIzMigmbm90ZV9waGRyKTsKKyAgICAgICAgZG9fd3JpdGUob3V0ZmQsICZu b3RlX3BoZHIsIHNpemVvZihub3RlX3BoZHIpKTsKKyAgICB9CisKKyAgICBpZiAoIChieXRlcyA9 IFJBV19PRkZTRVQgLSBzaXplb2Yob3V0X2VoZHIpIC0gKG51bV9waGRycyAqIHNpemVvZihvdXRf cGhkcikpICkgPCAwICkKICAgICB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiSGVhZGVyIG92 ZXJmbG93LlxuIik7CiAgICAgICAgIHJldHVybiAxOwpAQCAtMzU1LDkgKzQ0MywyMiBAQCBpbnQg bWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgIGVuZGlhbmFkanVzdF9zaGRyMzIo Jm91dF9zaGRyW2ldKTsKICAgICBkb193cml0ZShvdXRmZCwgJm91dF9zaGRyWzBdLCBzaXplb2Yo b3V0X3NoZHIpKTsKIAotICAgIGRvX3dyaXRlKG91dGZkLCBvdXRfc2hzdHJ0YWIsIHNpemVvZihv dXRfc2hzdHJ0YWIpKTsKLSAgICBkb193cml0ZShvdXRmZCwgYnVmZmVyLCA0LSgoc2l6ZW9mKG91 dF9zaHN0cnRhYikrZGF0X3NpeikmMykpOwotCisgICAgaWYgKCBudW1fcGhkcnMgPiAxICkKKyAg ICB7CisgICAgICAgIGVuZGlhbmFkanVzdF9zaGRyMzIoJm91dF9zaGRyX25vdGUpOworICAgICAg ICAvKiBBcHBlbmQgdGhlIC5ub3RlIHNlY3Rpb24uICovCisgICAgICAgIGRvX3dyaXRlKG91dGZk LCAmb3V0X3NoZHJfbm90ZSwgc2l6ZW9mKG91dF9zaGRyX25vdGUpKTsKKyAgICAgICAgLyogVGhl IG5vcm1hbCBzdHJpbmdzIC0gLnRleHRcMC4uICovCisgICAgICAgIGRvX3dyaXRlKG91dGZkLCBv dXRfc2hzdHJ0YWIsIHNpemVvZihvdXRfc2hzdHJ0YWIpKTsKKyAgICAgICAgLyogT3VyIC5ub3Rl ICovCisgICAgICAgIGRvX3dyaXRlKG91dGZkLCBvdXRfc2hzdHJ0YWJfZXh0cmEsIHNpemVvZihv dXRfc2hzdHJ0YWJfZXh0cmEpKTsKKyAgICAgICAgZG9fd3JpdGUob3V0ZmQsIGJ1ZmZlciwgNC0o KHNpemVvZihvdXRfc2hzdHJ0YWIpK3NpemVvZihvdXRfc2hzdHJ0YWJfZXh0cmEpK2RhdF9zaXop JjMpKTsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgZG9fd3JpdGUob3V0ZmQsIG91 dF9zaHN0cnRhYiwgc2l6ZW9mKG91dF9zaHN0cnRhYikpOworICAgICAgICBkb193cml0ZShvdXRm ZCwgYnVmZmVyLCA0LSgoc2l6ZW9mKG91dF9zaHN0cnRhYikrZGF0X3NpeikmMykpOworICAgIH0K ICAgICBjbG9zZShpbmZkKTsKICAgICBjbG9zZShvdXRmZCk7CiAKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni94ZW4ubGRzLlMgYi94ZW4vYXJjaC94ODYveGVuLmxkcy5TCmluZGV4IDVlYjgyNWUu LmIzZDg4MGYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ZW4ubGRzLlMKKysrIGIveGVuL2Fy Y2gveDg2L3hlbi5sZHMuUwpAQCAtMzEsNiArMzEsOSBAQCBPVVRQVVRfQVJDSChpMzg2Ong4Ni02 NCkKIFBIRFJTCiB7CiAgIHRleHQgUFRfTE9BRCA7CisjaWYgZGVmaW5lZChCVUlMRF9JRCkgJiYg IWRlZmluZWQoRUZJKQorICBub3RlIFBUX05PVEUgOworI2VuZGlmCiB9CiBTRUNUSU9OUwogewpA QCAtNzksNiArODIsMTYgQEAgU0VDVElPTlMKICAgICAgICAqKC5yb2RhdGEpCiAgICAgICAgKigu cm9kYXRhLiopCiAKKyNpZiBkZWZpbmVkKEJVSUxEX0lEKSAmJiBkZWZpbmVkKEVGSSkKKy8qCisg KiBObyBtZWNoYW5pc20gdG8gcHV0IGFuIFBUX05PVEUgaW4gdGhlIEVGSSBmaWxlIC0gc28gcHV0 CisgKiBpdCBpbiAucm9kYXRhIHNlY3Rpb24uIChub3Rlcy5vIHN1cHBsaWVzIHVzIHdpdGggLm5v dGUuZ251LmJ1aWxkLWlkKS4KKyAqLworICAgICAgIC4gPSBBTElHTig0KTsKKyAgICAgICBfX25v dGVfZ251X2J1aWxkX2lkX3N0YXJ0ID0gLjsKKyAgICAgICAqKC5ub3RlLmdudS5idWlsZC1pZCkK KyAgICAgICBfX25vdGVfZ251X2J1aWxkX2lkX2VuZCA9IC47CisjZW5kaWYKICAgICAgICAuID0g QUxJR04oOCk7CiAgICAgICAgLyogRXhjZXB0aW9uIHRhYmxlICovCiAgICAgICAgX19zdGFydF9f X2V4X3RhYmxlID0gLjsKQEAgLTk5LDYgKzExMiwyMSBAQCBTRUNUSU9OUwogICAgICAgIF9lcm9k YXRhID0gLjsKICAgfSA6dGV4dAogCisjaWYgZGVmaW5lZChCVUlMRF9JRCkgJiYgIWRlZmluZWQo RUZJKQorLyoKKyAqIFdoYXQgYSBzdHJhbmdlIHNlY3Rpb24gbmFtZS4gVGhlIHJlYXNvbiBpcyB0 aGF0IG9uIEVMRiBidWlsZHMgdGhpcyBzZWN0aW9uCisgKiBpcyBleHRyYWN0ZWQgdG8gbm90ZXMu byAod2hpY2ggdGhlbiBpcyBpbmdlc3RlZCBpbiB0aGUgRUZJIGZpbGUpLiBCdXQgdGhlCisgKiBj b21waWxlciBtYXkgd2FudCB0byBpbmplY3Qgb3RoZXIgdGhpbmdzIGluIHRoZSAubm90ZSB3aGlj aCB3ZSBkb24ndCBjYXJlCisgKiBhYm91dCAtIGhlbmNlIHRoaXMgdW5pcXVlIG5hbWUuCisgKi8K KyAgLiA9IEFMSUdOKDQpOworICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7CisgICAgICAgX19ub3Rl X2dudV9idWlsZF9pZF9zdGFydCA9IC47CisgICAgICAgKigubm90ZS5nbnUuYnVpbGQtaWQpCisg ICAgICAgX19ub3RlX2dudV9idWlsZF9pZF9lbmQgPSAuOworICB9IDpub3RlIDp0ZXh0CisjZW5k aWYKKwogI2lmZGVmIEVGSQogICAuID0gQUxJR04oTUIoMikpOwogI2Vsc2UKZGlmZiAtLWdpdCBh L3hlbi9jb21tb24vdmVyc2lvbi5jIGIveGVuL2NvbW1vbi92ZXJzaW9uLmMKaW5kZXggZmM5YmY0 Mi4uMDFkOTQwOSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi92ZXJzaW9uLmMKKysrIGIveGVuL2Nv bW1vbi92ZXJzaW9uLmMKQEAgLTEsNCArMSw5IEBACiAjaW5jbHVkZSA8eGVuL2NvbXBpbGUuaD4K KyNpbmNsdWRlIDx4ZW4vaW5pdC5oPgorI2luY2x1ZGUgPHhlbi9lcnJuby5oPgorI2luY2x1ZGUg PHhlbi9zdHJpbmcuaD4KKyNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KKyNpbmNsdWRlIDx4ZW4vZWxm Lmg+CiAjaW5jbHVkZSA8eGVuL3ZlcnNpb24uaD4KIAogY29uc3QgY2hhciAqeGVuX2NvbXBpbGVf ZGF0ZSh2b2lkKQpAQCAtNjEsNiArNjYsNTEgQEAgY29uc3QgY2hhciAqeGVuX2Rlbnkodm9pZCkK ICAgICByZXR1cm4gIjxkZW5pZWQ+IjsKIH0KIAorc3RhdGljIGNvbnN0IHZvaWQgKmJ1aWxkX2lk X3A7CitzdGF0aWMgdW5zaWduZWQgaW50IGJ1aWxkX2lkX2xlbjsKKworaW50IHhlbl9idWlsZF9p ZChjb25zdCB2b2lkICoqcCwgdW5zaWduZWQgaW50ICpsZW4pCit7CisgICAgaWYgKCAhYnVpbGRf aWRfbGVuICkKKyAgICAgICAgcmV0dXJuIC1FTk9EQVRBOworCisgICAgKmxlbiA9IGJ1aWxkX2lk X2xlbjsKKyAgICAqcCA9IGJ1aWxkX2lkX3A7CisKKyAgICByZXR1cm4gMDsKK30KKworI2lmZGVm IEJVSUxEX0lECisvKiBEZWZpbmVkIGluIGxpbmtlciBzY3JpcHQuICovCitleHRlcm4gY29uc3Qg RWxmX05vdGUgX19ub3RlX2dudV9idWlsZF9pZF9zdGFydFtdLCBfX25vdGVfZ251X2J1aWxkX2lk X2VuZFtdOworCitzdGF0aWMgaW50IF9faW5pdCB4ZW5fYnVpbGRfaW5pdCh2b2lkKQoreworICAg IGNvbnN0IEVsZl9Ob3RlICpuID0gX19ub3RlX2dudV9idWlsZF9pZF9zdGFydDsKKworICAgIC8q IC0tYnVpbGQtaWQgaW52b2tlZCB3aXRoIHdyb25nIHBhcmFtZXRlcnMuICovCisgICAgaWYgKCBf X25vdGVfZ251X2J1aWxkX2lkX2VuZCA8PSAmblswXSApCisgICAgICAgIHJldHVybiAtRU5PREFU QTsKKworICAgIC8qIENoZWNrIGZvciBmdWxsIE5vdGUgaGVhZGVyLiAqLworICAgIGlmICggJm5b MV0gPiBfX25vdGVfZ251X2J1aWxkX2lkX2VuZCApCisgICAgICAgIHJldHVybiAtRU5PREFUQTs7 CisKKyAgICAvKiBDaGVjayBpZiB3ZSByZWFsbHkgaGF2ZSBhIGJ1aWxkLWlkLiAqLworICAgIGlm ICggTlRfR05VX0JVSUxEX0lEICE9IG4tPnR5cGUgKQorICAgICAgICByZXR1cm4gLUVOT0RBVEE7 CisKKyAgICAvKiBTYW5pdHkgY2hlY2ssIG5hbWUgc2hvdWxkIGJlICJHTlUiIGZvciBsZC1nZW5l cmF0ZWQgYnVpbGQtaWQuICovCisgICAgaWYgKCBzdHJuY21wKEVMRk5PVEVfTkFNRShuKSwgIkdO VSIsIG4tPm5hbWVzeikgIT0gMCApCisgICAgICAgIHJldHVybiAtRU5PREFUQTsKKworICAgIGJ1 aWxkX2lkX2xlbiA9IG4tPmRlc2NzejsKKyAgICBidWlsZF9pZF9wID0gRUxGTk9URV9ERVNDKG4p OworCisgICAgcmV0dXJuIDA7Cit9CitfX2luaXRjYWxsKHhlbl9idWlsZF9pbml0KTsKKyNlbmRp ZgogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAqIG1vZGU6IEMKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL3hlbi9lbGZzdHJ1Y3RzLmggYi94ZW4vaW5jbHVkZS94ZW4vZWxmc3RydWN0cy5oCmlu ZGV4IGJlNTU5ODUuLjViYWJhYzcgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9lbGZzdHJ1 Y3RzLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2VsZnN0cnVjdHMuaApAQCAtNDAsNiArNDAsOSBA QCB0eXBlZGVmIHVpbnQzMl90CUVsZjY0X1dvcmQ7CiB0eXBlZGVmIGludDY0X3QJCUVsZjY0X1N4 d29yZDsKIHR5cGVkZWYgdWludDY0X3QJRWxmNjRfWHdvcmQ7CiAKKy8qIFVuaXF1ZSBidWlsZCBp ZCBzdHJpbmcgZm9ybWF0IHdoZW4gdXNpbmcgLS1idWlsZC1pZC4gKi8KKyNkZWZpbmUgTlRfR05V X0JVSUxEX0lEIDMKKwogLyoKICAqIGVfaWRlbnRbXSBpZGVudGlmaWNhdGlvbiBpbmRleGVzCiAg KiBTZWUgaHR0cDovL3d3dy5jYWxkZXJhLmNvbS9kZXZlbG9wZXJzL2dhYmkvMjAwMC0wNy0xNy9j aDQuZWhlYWRlci5odG1sIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3ZlcnNpb24uaCBi L3hlbi9pbmNsdWRlL3hlbi92ZXJzaW9uLmgKaW5kZXggMjAxNWMwYi4uNDAwMTYwZiAxMDA2NDQK LS0tIGEveGVuL2luY2x1ZGUveGVuL3ZlcnNpb24uaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vdmVy c2lvbi5oCkBAIC0xMyw1ICsxMyw2IEBAIGNvbnN0IGNoYXIgKnhlbl9leHRyYV92ZXJzaW9uKHZv aWQpOwogY29uc3QgY2hhciAqeGVuX2NoYW5nZXNldCh2b2lkKTsKIGNvbnN0IGNoYXIgKnhlbl9i YW5uZXIodm9pZCk7CiBjb25zdCBjaGFyICp4ZW5fZGVueSh2b2lkKTsKK2ludCB4ZW5fYnVpbGRf aWQoY29uc3Qgdm9pZCAqKnAsIHVuc2lnbmVkIGludCAqbGVuKTsKIAogI2VuZGlmIC8qIF9fWEVO X1ZFUlNJT05fSF9fICovCi0tIAoyLjUuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz Lnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==