From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v10 17/24] build_id: Provide ld-embedded build-ids Date: Wed, 27 Apr 2016 15:27:14 -0400 Message-ID: <1461785241-4481-18-git-send-email-konrad.wilk@oracle.com> References: <1461785241-4481-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1avV8j-00059B-O2 for xen-devel@lists.xenproject.org; Wed, 27 Apr 2016 19:28:49 +0000 In-Reply-To: <1461785241-4481-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+ ClJldmlld2VkLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpB Y2tlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgoKLS0tCkNjOiBTdGVmYW5v IFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBKdWxpZW4gR3JhbGwgPGp1 bGllbi5ncmFsbEBhcm0uY29tPgpDYzogS2VpciBGcmFzZXIgPGtlaXJAeGVuLm9yZz4KQ2M6IEph biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5j b29wZXIzQGNpdHJpeC5jb20+Cgp2MTogUmViYXNlIGl0IG9uIE1hcnRpbidzIGluaXRpYWwgcGF0 Y2gKdjI6IE1vdmUgaXQgdG8gWEVOVkVSIGh5cGVyY2FsbAp2MzogRml4IEVGSSBidWlsZGluZyAo Um9zcydzIGZpeCkKICAgIERvbid0IHVzZSB0aGUgdGhpcmQgYXJndW1lbnQgZm9yIGxlbmd0aC4K ICAgIFVzZSBuZXcgc3RydWN0dXJlIGZvciBYRU5WRVJfYnVpbGRfaWQgd2l0aCB2YXJpYWJsZSBi dWYuCiAgICBJbmNsdWRlIFJvc3MncyBmaXguCiAgICBJbmNsdWRlIGRldGVjdGlvbiBvZiBiaW4t dXRpbHMgZm9yIGJ1aWxkLWlkIHN1cHBvcnQsIGFkZAogICAgcHJvYmluZyBmb3Igc2l6ZSwgYW5k IHJldHVybiAtRVBFUk0gZm9yIFhTTSBkZW5pZWQgY2FsbHMuCiAgICBCdWlsZCB4ZW5fYnVpbGRf aWQgdW5kZXIgQVJNLCByZXF1aXJlZCBhZGRpbmcgRUxGU0laRSBpbiBwcm9wZXIgZmlsZS4KICAg IFJlYmFzZSBvbiB0b3AgWFNNIHZlcnNpb24gY2xhc3MuCnY0OgogICAgSW5jbHVkZSB0aGUgYnVp bGQtaWQgLm5vdGUgaW4gdGhlIHhlbiBFTEYgYmluYXJ5LgogICAgcy9idWlsZF9pZC9idWlsZF9p ZF9saW5rZXIvCiAgICBGb3IgRUZJIGJ1aWxkLCBtb3ZlZCB0aGUgLS1idWlsZC1pZCB2YWx1ZXMg aW4gLmRhdGEgc2VjdGlvbgogICAgUmViYXNlIG9uIHN0YWdpbmcuCiAgICBTcGxpdCBwYXRjaCBp biB0d28uIEFsd2F5cyBkbyAtLWJ1aWxkLWlkIGNhbGwuIEluY2x1ZGUgdGhlIC5ub3RlIGluCiAg ICAucm9kYXRhLiBVU2UgY29uc3Qgdm9pZCAqIGFuZCBzc2l6ZV90CiAgICBVc2UgLVMgdG8gbWFr ZSBidWlsZF9pZC5vIGFuZCBvYmpjb3B5IGRpZmZlcmVudGx5IChBbmRyZXcgc3VnZ2VzdGVkKQp2 NTogUHV0IGJhY2sgdGhlICNpZmRlZiBMT0NLX1BST0ZJTEUgb24gQVJNLiAoQmFkIGNoYW5nZSku IE1vdmUgdGhlIF9lcm9kYXRhCiAgICBhcm91bmQuIHMvc3NpemVfdC91bnNpZ25lZCBpbnQvCnY2 OiBSZWRpZCBpdCBwZXIgSmFuJ3MgcmV2aWV3Lgp2NzogTW92ZSBidWlsZC1pZCBub3RlIGluIC5y b2RhdGEubm90ZSBmb3IgRUZJIGJ1aWxkcyBvbmx5LgogICAgTW92ZSBidWlsZC1pZCBub3RlIGlu IC5yb2RhdGEgZm9yIEVGSSBidWlsZHMgb25seS4gUmV0YWluCiAgICBpdCBpbiAubm90ZS4gQ2hh bmdlIG5hbWUgb2Ygb2JqZWN0IGZpbGUgdXNlZCBieSBFRkkgYnVpbGRzIHRvIG5vdGVzLm8KICAg IE1ha2Ugb24gRUxGIGJ1aWxkcyB0aGUgUFRfTk9URSBzZWN0aW9uIG5hbWUgYmUgLm5vdGUuZ251 LmJ1aWxkLWlkIGFuZAogICAgaW5nZXN0IHRoYXQgaW4gRUxGIGJ1aWxkLgogICAgRGVmaW5lIE5U X0dOVV9CVUlMRF9JRCBpbiBlbGZzdHJ1Y3RzLmgKdjg6IHMvbnVtX3BoZHJzL25vdGVzX3BoZHJz LwogICBBZGRlZCBBbmRyZXcncyBSZXZpZXdlZC1ieQp2OToKICAgTWFkZSBta2VsZjMyIHBhcnNl IC0tbm90ZXMgYXMgZmlyc3QgYXJndW1lbnQKICAgTW92ZWQgX2Vyb2RhdGEgcGFzdCAubm90ZS5n bnUuLiBzZWN0aW9uCiAgIEFkZGVkIHJtIC1mIG5vdGUubyBvbiBjbGVhbiB0YXJnZXQuCiAgIE1h a2UgYnVpbGRfaWRfW3B8bGVuXSBiZSBfX3JlYWRfbW9zdGx5CiAgIEFkZCBKYW4ncyBBY2tlZC1i eQogICBNYWRlIHRoZSBkZXRlY3Rpb24gYmUgc21hcnRlciBhbmQganVzdCBjaGVjayBmb3Igb3B0 aW9uIHJlcXVlc3RlZCBiZWluZyBtaXJyb3JlZC4KICAgKFRoYXQgdGFrZXMgY2FyZSBvZiBjaGVj a2luZyB1bnJlY29nbml6ZWQgaW4gZGlmZmVyZW50IGxhbmd1YWdlcykuCi0tLQogQ29uZmlnLm1r ICAgICAgICAgICAgICAgICAgICB8ICAxMSArKysrCiB4ZW4vYXJjaC9hcm0vTWFrZWZpbGUgICAg ICAgIHwgICAyICstCiB4ZW4vYXJjaC9hcm0veGVuLmxkcy5TICAgICAgIHwgIDE1ICsrKystCiB4 ZW4vYXJjaC94ODYvTWFrZWZpbGUgICAgICAgIHwgIDMwICsrKysrKystLQogeGVuL2FyY2gveDg2 L2Jvb3QvbWtlbGYzMi5jICB8IDE0MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tCiB4ZW4vYXJjaC94ODYveGVuLmxkcy5TICAgICAgIHwgIDMwICsrKysrKysrLQog eGVuL2NvbW1vbi92ZXJzaW9uLmMgICAgICAgICB8ICA1MiArKysrKysrKysrKysrKysrCiB4ZW4v aW5jbHVkZS94ZW4vZWxmc3RydWN0cy5oIHwgICAzICsKIHhlbi9pbmNsdWRlL3hlbi92ZXJzaW9u LmggICAgfCAgIDEgKwogOSBmaWxlcyBjaGFuZ2VkLCAyNTggaW5zZXJ0aW9ucygrKSwgMjggZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvQ29uZmlnLm1rIGIvQ29uZmlnLm1rCmluZGV4IDRhNWVi ZWQuLjc1OWYzYzcgMTAwNjQ0Ci0tLSBhL0NvbmZpZy5taworKysgYi9Db25maWcubWsKQEAgLTEy OSw2ICsxMjksMTcgQEAgZW5kZWYKIGNoZWNrLSQoZ2NjKSA9ICQoY2FsbCBjYy12ZXItY2hlY2ss Q0MsMHgwNDAxMDAsIlhlbiByZXF1aXJlcyBhdCBsZWFzdCBnY2MtNC4xIikKICQoZXZhbCAkKGNo ZWNrLXkpKQogCitsZC12ZXItYnVpbGQtaWQgPSAkKHNoZWxsICQoMSkgLS1idWlsZC1pZCAyPiYx IHwgXAorCQkJCQlncmVwIC1xIGJ1aWxkLWlkICYmIGVjaG8gbiB8fCBlY2hvIHkpCisKK2V4cG9y dCBYRU5fSEFTX0JVSUxEX0lEID89IG4KK2lmZXEgKCQoY2FsbCBsZC12ZXItYnVpbGQtaWQsJChM RCkpLG4pCitidWlsZF9pZF9saW5rZXIgOj0KK2Vsc2UKK0NGTEFHUyArPSAtREJVSUxEX0lECiti dWlsZF9pZF9saW5rZXIgOj0gLS1idWlsZC1pZD1zaGExCitlbmRpZgorCiAjIGFzLWluc246IENo ZWNrIHdoZXRoZXIgYXNzZW1ibGVyIHN1cHBvcnRzIGFuIGluc3RydWN0aW9uLgogIyBVc2FnZTog Y2ZsYWdzLXkgKz0gJChjYWxsIGFzLWluc24gImluc24iLG9wdGlvbi15ZXMsb3B0aW9uLW5vKQog YXMtaW5zbiA9ICQoaWYgJChzaGVsbCBlY2hvICd2b2lkIF8odm9pZCkgeyBhc20gdm9sYXRpbGUg KCAkKDIpICk7IH0nIFwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9NYWtlZmlsZSBiL3hlbi9h cmNoL2FybS9NYWtlZmlsZQppbmRleCBmNzdmOGRiLi5lYWQwY2MwIDEwMDY0NAotLS0gYS94ZW4v YXJjaC9hcm0vTWFrZWZpbGUKKysrIGIveGVuL2FyY2gvYXJtL01ha2VmaWxlCkBAIC05Myw3ICs5 Myw3IEBAICQoVEFSR0VUKS1zeW1zOiBwcmVsaW5rLm8geGVuLmxkcyAkKEJBU0VESVIpL2NvbW1v bi9zeW1ib2xzLWR1bW15Lm8KIAkkKE5NKSAtcGEgLS1mb3JtYXQ9c3lzdiAkKEBEKS8uJChARiku MSBcCiAJCXwgJChCQVNFRElSKS90b29scy9zeW1ib2xzIC0tc3lzdiAtLXNvcnQgPiQoQEQpLy4k KEBGKS4xLlMKIAkkKE1BS0UpIC1mICQoQkFTRURJUikvUnVsZXMubWsgJChARCkvLiQoQEYpLjEu bwotCSQoTEQpICQoTERGTEFHUykgLVQgeGVuLmxkcyAtTiBwcmVsaW5rLm8gXAorCSQoTEQpICQo TERGTEFHUykgLVQgeGVuLmxkcyAtTiBwcmVsaW5rLm8gJChidWlsZF9pZF9saW5rZXIpIFwKIAkg ICAgJChARCkvLiQoQEYpLjEubyAtbyAkQAogCXJtIC1mICQoQEQpLy4kKEBGKS5bMC05XSoKIApk aWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3hlbi5sZHMuUyBiL3hlbi9hcmNoL2FybS94ZW4ubGRz LlMKaW5kZXggOTkwOTU5NS4uMWYwMTBiZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3hlbi5s ZHMuUworKysgYi94ZW4vYXJjaC9hcm0veGVuLmxkcy5TCkBAIC0yMiw2ICsyMiw5IEBAIE9VVFBV VF9BUkNIKEZPUk1BVCkKIFBIRFJTCiB7CiAgIHRleHQgUFRfTE9BRCAvKiBYWFggc2hvdWxkIGJl IEFUICggWEVOX1BIWVNfU1RBUlQgKSAqLyA7CisjaWYgZGVmaW5lZChCVUlMRF9JRCkKKyAgbm90 ZSBQVF9OT1RFIDsKKyNlbmRpZgogfQogU0VDVElPTlMKIHsKQEAgLTU3LDEwICs2MCwxOCBAQCBT RUNUSU9OUwogICAgICAgICooLmxvY2twcm9maWxlLmRhdGEpCiAgICAgICAgX19sb2NrX3Byb2Zp bGVfZW5kID0gLjsKICNlbmRpZgotCi0gICAgICAgIF9lcm9kYXRhID0gLjsgICAgICAgICAgLyog RW5kIG9mIHJlYWQtb25seSBkYXRhICovCiAgIH0gOnRleHQKIAorI2lmIGRlZmluZWQoQlVJTERf SUQpCisgIC4gPSBBTElHTig0KTsKKyAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeworICAgICAgIF9f bm90ZV9nbnVfYnVpbGRfaWRfc3RhcnQgPSAuOworICAgICAgICooLm5vdGUuZ251LmJ1aWxkLWlk KQorICAgICAgIF9fbm90ZV9nbnVfYnVpbGRfaWRfZW5kID0gLjsKKyAgfSA6bm90ZSA6dGV4dAor I2VuZGlmCisgIF9lcm9kYXRhID0gLjsgICAgICAgICAgICAgICAgLyogRW5kIG9mIHJlYWQtb25s eSBkYXRhICovCisKICAgLmRhdGEgOiB7ICAgICAgICAgICAgICAgICAgICAvKiBEYXRhICovCiAg ICAgICAgLiA9IEFMSUdOKFBBR0VfU0laRSk7CiAgICAgICAgKiguZGF0YS5wYWdlX2FsaWduZWQp CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvTWFrZWZpbGUgYi94ZW4vYXJjaC94ODYvTWFrZWZp bGUKaW5kZXggYmQ3YmE5Zi4uNDY2NWE2OCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L01ha2Vm aWxlCisrKyBiL3hlbi9hcmNoL3g4Ni9NYWtlZmlsZQpAQCAtNzQsNiArNzQsMTIgQEAgZWZpLXkg Oj0gJChzaGVsbCBpZiBbICEgLXIgJChCQVNFRElSKS9pbmNsdWRlL3hlbi9jb21waWxlLmggLW8g XAogICAgICAgICAgICAgICAgICAgICAgIC1PICQoQkFTRURJUikvaW5jbHVkZS94ZW4vY29tcGls ZS5oIF07IHRoZW4gXAogICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJyQoVEFSR0VUKS5l ZmknOyBmaSkKIAoraWZuZXEgKCQoYnVpbGRfaWRfbGlua2VyKSwpCitub3Rlc19waGRycyA9IC0t bm90ZXMKK2Vsc2UKK25vdGVzX3BoZHJzID0KK2VuZGlmCisKIGlmZGVmIENPTkZJR19YU1BMSUNF CiBhbGxfc3ltYm9scyA9IC0tYWxsLXN5bWJvbHMKIGlmZGVmIENPTkZJR19GQVNUX1NZTUJPTF9M T09LVVAKQEAgLTg0LDcgKzkwLDcgQEAgYWxsX3N5bWJvbHMgPQogZW5kaWYKIAogJChUQVJHRVQp OiAkKFRBUkdFVCktc3ltcyAkKGVmaS15KSBib290L21rZWxmMzIKLQkuL2Jvb3QvbWtlbGYzMiAk KFRBUkdFVCktc3ltcyAkKFRBUkdFVCkgMHgxMDAwMDAgXAorCS4vYm9vdC9ta2VsZjMyICQobm90 ZXNfcGhkcnMpICQoVEFSR0VUKS1zeW1zICQoVEFSR0VUKSAweDEwMDAwMCBcCiAJYCQoTk0pIC1u ciAkKFRBUkdFVCktc3ltcyB8IGhlYWQgLW4gMSB8IHNlZCAtZSAncy9eXChbXiBdKlwpLiovMHhc MS8nYAogCiAuUEhPTlk6IHRlc3RzCkBAIC0xMTksMjIgKzEyNSwyOCBAQCAkKEJBU0VESVIpL2Nv bW1vbi9zeW1ib2xzLWR1bW15Lm86CiAJJChNQUtFKSAtZiAkKEJBU0VESVIpL1J1bGVzLm1rIC1D ICQoQkFTRURJUikvY29tbW9uIHN5bWJvbHMtZHVtbXkubwogCiAkKFRBUkdFVCktc3ltczogcHJl bGluay5vIHhlbi5sZHMgJChCQVNFRElSKS9jb21tb24vc3ltYm9scy1kdW1teS5vCi0JJChMRCkg JChMREZMQUdTKSAtVCB4ZW4ubGRzIC1OIHByZWxpbmsubyBcCisJJChMRCkgJChMREZMQUdTKSAt VCB4ZW4ubGRzIC1OIHByZWxpbmsubyAkKGJ1aWxkX2lkX2xpbmtlcikgXAogCSAgICAkKEJBU0VE SVIpL2NvbW1vbi9zeW1ib2xzLWR1bW15Lm8gLW8gJChARCkvLiQoQEYpLjAKIAkkKE5NKSAtcGEg LS1mb3JtYXQ9c3lzdiAkKEBEKS8uJChARikuMCBcCiAJCXwgJChCQVNFRElSKS90b29scy9zeW1i b2xzICQoYWxsX3N5bWJvbHMpIC0tc3lzdiAtLXNvcnQgXAogCQk+JChARCkvLiQoQEYpLjAuUwog CSQoTUFLRSkgLWYgJChCQVNFRElSKS9SdWxlcy5tayAkKEBEKS8uJChARikuMC5vCi0JJChMRCkg JChMREZMQUdTKSAtVCB4ZW4ubGRzIC1OIHByZWxpbmsubyBcCisJJChMRCkgJChMREZMQUdTKSAt VCB4ZW4ubGRzIC1OIHByZWxpbmsubyAkKGJ1aWxkX2lkX2xpbmtlcikgXAogCSAgICAkKEBEKS8u JChARikuMC5vIC1vICQoQEQpLy4kKEBGKS4xCiAJJChOTSkgLXBhIC0tZm9ybWF0PXN5c3YgJChA RCkvLiQoQEYpLjEgXAogCQl8ICQoQkFTRURJUikvdG9vbHMvc3ltYm9scyAkKGFsbF9zeW1ib2xz KSAtLXN5c3YgLS1zb3J0IC0td2Fybi1kdXAgXAogCQk+JChARCkvLiQoQEYpLjEuUwogCSQoTUFL RSkgLWYgJChCQVNFRElSKS9SdWxlcy5tayAkKEBEKS8uJChARikuMS5vCi0JJChMRCkgJChMREZM QUdTKSAtVCB4ZW4ubGRzIC1OIHByZWxpbmsubyBcCisJJChMRCkgJChMREZMQUdTKSAtVCB4ZW4u bGRzIC1OIHByZWxpbmsubyAkKGJ1aWxkX2lkX2xpbmtlcikgXAogCSAgICAkKEBEKS8uJChARiku MS5vIC1vICRACiAJcm0gLWYgJChARCkvLiQoQEYpLlswLTldKgogCitub3RlLm86ICQoVEFSR0VU KS1zeW1zCisJJChPQkpDT1BZKSAtTyBiaW5hcnkgLS1vbmx5LXNlY3Rpb249Lm5vdGUuZ251LmJ1 aWxkLWlkICAkKEJBU0VESVIpL3hlbi1zeW1zICRALmJpbgorCSQoT0JKQ09QWSkgLUkgYmluYXJ5 IC1PIGVsZjY0LXg4Ni02NCAtQiBpMzg2Ong4Ni02NCBcCisJCS0tcmVuYW1lLXNlY3Rpb249LmRh dGE9Lm5vdGUuZ251LmJ1aWxkLWlkIC1TICRALmJpbiAkQAorCXJtIC1mICRALmJpbgorCiBFRklf TERGTEFHUyA9ICQocGF0c3Vic3QgLW0lLC1taTM4NnBlcCwkKExERkxBR1MpKSAtLXN1YnN5c3Rl bT0xMAogRUZJX0xERkxBR1MgKz0gLS1pbWFnZS1iYXNlPSQoMSkgLS1zdGFjaz0wLDAgLS1oZWFw PTAsMCAtLXN0cmlwLWRlYnVnCiBFRklfTERGTEFHUyArPSAtLXNlY3Rpb24tYWxpZ25tZW50PTB4 MjAwMDAwIC0tZmlsZS1hbGlnbm1lbnQ9MHgyMApAQCAtMTQ3LDYgKzE1OSwxMyBAQCAkKFRBUkdF VCkuZWZpOiBWSVJUX0JBU0UgPSAweCQoc2hlbGwgJChOTSkgZWZpL3JlbG9jcy1kdW1teS5vIHwg c2VkIC1uICdzLCBBIFZJUgogJChUQVJHRVQpLmVmaTogQUxUX0JBU0UgPSAweCQoc2hlbGwgJChO TSkgZWZpL3JlbG9jcy1kdW1teS5vIHwgc2VkIC1uICdzLCBBIEFMVF9TVEFSVCQkLCxwJykKICMg RG9uJ3QgdXNlICQod2lsZGNhcmQgLi4uKSBoZXJlIC0gYXQgbGVhc3QgbWFrZSAzLjgwIGV4cGFu ZHMgdGhpcyB0b28gZWFybHkhCiAkKFRBUkdFVCkuZWZpOiBndWFyZCA9ICQoaWYgJChzaGVsbCBl Y2hvIGVmaS9kaXMqIHwgZ3JlcCBkaXNhYmxlZCksOikKK2lmbmVxICgkKGJ1aWxkX2lkX2xpbmtl ciksKQorJChUQVJHRVQpLmVmaTogbm90ZS5vCitub3RlX2ZpbGUgOj0gbm90ZS5vCitlbHNlCitu b3RlX2ZpbGUgOj0KK2VuZGlmCisKICQoVEFSR0VUKS5lZmk6IHByZWxpbmstZWZpLm8gZWZpLmxk cyBlZmkvcmVsb2NzLWR1bW15Lm8gJChCQVNFRElSKS9jb21tb24vc3ltYm9scy1kdW1teS5vIGVm aS9ta3JlbG9jCiAJJChmb3JlYWNoIGJhc2UsICQoVklSVF9CQVNFKSAkKEFMVF9CQVNFKSwgXAog CSAgICAgICAgICAkKGd1YXJkKSAkKExEKSAkKGNhbGwgRUZJX0xERkxBR1MsJChiYXNlKSkgLVQg ZWZpLmxkcyAtTiAkPCBlZmkvcmVsb2NzLWR1bW15Lm8gXApAQCAtMTYzLDcgKzE4Miw3IEBAICQo VEFSR0VUKS5lZmk6IHByZWxpbmstZWZpLm8gZWZpLmxkcyBlZmkvcmVsb2NzLWR1bW15Lm8gJChC QVNFRElSKS9jb21tb24vc3ltYm9sCiAJCXwgJChndWFyZCkgJChCQVNFRElSKS90b29scy9zeW1i b2xzICQoYWxsX3N5bWJvbHMpIC0tc3lzdiAtLXNvcnQgPiQoQEQpLy4kKEBGKS4xcy5TCiAJJChn dWFyZCkgJChNQUtFKSAtZiAkKEJBU0VESVIpL1J1bGVzLm1rICQoQEQpLy4kKEBGKS4xci5vICQo QEQpLy4kKEBGKS4xcy5vCiAJJChndWFyZCkgJChMRCkgJChjYWxsIEVGSV9MREZMQUdTLCQoVklS VF9CQVNFKSkgLVQgZWZpLmxkcyAtTiAkPCBcCi0JICAgICAgICAgICAgICAgICQoQEQpLy4kKEBG KS4xci5vICQoQEQpLy4kKEBGKS4xcy5vIC1vICRACisJICAgICAgICAgICAgICAgICQoQEQpLy4k KEBGKS4xci5vICQoQEQpLy4kKEBGKS4xcy5vICQobm90ZV9maWxlKSAtbyAkQAogCWlmICQoZ3Vh cmQpIGZhbHNlOyB0aGVuIHJtIC1mICRAOyBlY2hvICdFRkkgc3VwcG9ydCBkaXNhYmxlZCc7IGZp CiAJcm0gLWYgJChARCkvLiQoQEYpLlswLTldKgogCkBAIC0xOTUsNCArMjE0LDUgQEAgY2xlYW46 OgogCXJtIC1mICQoQkFTRURJUikvLnhlbi1zeW1zLlswLTldKiBib290Ly4qLmQKIAlybSAtZiAk KEJBU0VESVIpLy54ZW4uZWZpLlswLTldKiBlZmkvKi5vIGVmaS8uKi5kIGVmaS8qLmVmaSBlZmkv ZGlzYWJsZWQgZWZpL21rcmVsb2MKIAlybSAtZiBib290L3JlbG9jLlMgYm9vdC9yZWxvYy5sbmsg Ym9vdC9yZWxvYy5iaW4KKwlybSAtZiBub3RlLm8KIAkkKE1BS0UpIC1mICQoQkFTRURJUikvUnVs ZXMubWsgLUMgdGVzdCBjbGVhbgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2Jvb3QvbWtlbGYz Mi5jIGIveGVuL2FyY2gveDg2L2Jvb3QvbWtlbGYzMi5jCmluZGV4IDk5M2E3ZWUuLjhjNTE5OTAg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L21rZWxmMzIuYworKysgYi94ZW4vYXJjaC94 ODYvYm9vdC9ta2VsZjMyLmMKQEAgLTQ1LDkgKzQ1LDkgQEAgc3RhdGljIEVsZjMyX0VoZHIgb3V0 X2VoZHIgPSB7CiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiBlX2ZsYWdzICovCiAgICAgc2l6ZW9mKEVsZjMyX0VoZHIpLCAgICAgICAgICAgICAgICAgICAg ICAvKiBlX2Voc2l6ZSAqLwogICAgIHNpemVvZihFbGYzMl9QaGRyKSwgICAgICAgICAgICAgICAg ICAgICAgLyogZV9waGVudHNpemUgKi8KLSAgICAxLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIGVfcGhudW0gKi8KKyAgICAxLCAgLyogbW9kaWZ5IGJhc2VkIG9uIG51 bV9waGRycyAqLyAgICAgIC8qIGVfcGhudW0gKi8KICAgICBzaXplb2YoRWxmMzJfU2hkciksICAg ICAgICAgICAgICAgICAgICAgIC8qIGVfc2hlbnRzaXplICovCi0gICAgMywgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBlX3NobnVtICovCisgICAgMywgIC8qIG1vZGlm eSBiYXNlZCBvbiBudW1fcGhkcnMgKi8gICAgICAvKiBlX3NobnVtICovCiAgICAgMiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBlX3Noc3RybmR4ICovCiB9OwogCkBA IC02MSw4ICs2MSwyMCBAQCBzdGF0aWMgRWxmMzJfUGhkciBvdXRfcGhkciA9IHsKICAgICBQRl9S fFBGX1d8UEZfWCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHBfZmxhZ3MgKi8KICAgICA2 NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHBfYWxpZ24gKi8KIH07 CitzdGF0aWMgRWxmMzJfUGhkciBub3RlX3BoZHIgPSB7CisgICAgUFRfTk9URSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiBwX3R5cGUgKi8KKyAgICBEWU5BTUlDQUxMWV9GSUxM RUQsICAgICAgICAgICAgICAgICAgICAgIC8qIHBfb2Zmc2V0ICovCisgICAgRFlOQU1JQ0FMTFlf RklMTEVELCAgICAgICAgICAgICAgICAgICAgICAvKiBwX3ZhZGRyICovCisgICAgRFlOQU1JQ0FM TFlfRklMTEVELCAgICAgICAgICAgICAgICAgICAgICAvKiBwX3BhZGRyICovCisgICAgRFlOQU1J Q0FMTFlfRklMTEVELCAgICAgICAgICAgICAgICAgICAgICAvKiBwX2ZpbGVzeiAqLworICAgIERZ TkFNSUNBTExZX0ZJTExFRCwgICAgICAgICAgICAgICAgICAgICAgLyogcF9tZW1zeiAqLworICAg IFBGX1IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcF9mbGFncyAqLwor ICAgIDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcF9hbGlnbiAq LworfTsKIAogc3RhdGljIHU4IG91dF9zaHN0cnRhYltdID0gIlwwLnRleHRcMC5zaHN0cnRhYiI7 CisvKiBJZiBudW1fcGhkcnMgPj0gMiwgd2UgbmVlZCB0byB0YWNrIHRoZSAubm90ZS4gKi8KK3N0 YXRpYyB1OCBvdXRfc2hzdHJ0YWJfZXh0cmFbXSA9ICIubm90ZVwwIjsKIAogc3RhdGljIEVsZjMy X1NoZHIgb3V0X3NoZHJbXSA9IHsKICAgICB7IDAgfSwKQEAgLTkwLDYgKzEwMiwyMyBAQCBzdGF0 aWMgRWxmMzJfU2hkciBvdXRfc2hkcltdID0gewogICAgIH0KIH07CiAKKy8qCisgKiBUaGUgMTcg cG9pbnRzIHRvIHRoZSAnLm5vdGUnIGluIHRoZSBvdXRfc2hzdHJ0YWIgYW5kIG91dF9zaHN0cnRh Yl9leHRyYQorICogbGFpZCBvdXQgaW4gdGhlIGZpbGUuCisgKi8KK3N0YXRpYyBFbGYzMl9TaGRy IG91dF9zaGRyX25vdGUgPSB7CisgICAgICAxNywgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiBzaF9uYW1lICovCisgICAgICBTSFRfTk9URSwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiBzaF90eXBlICovCisgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiBzaF9mbGFncyAqLworICAgICAgRFlOQU1JQ0FMTFlfRklMTEVELCAg ICAgICAgICAgICAgICAgICAgLyogc2hfYWRkciAqLworICAgICAgRFlOQU1JQ0FMTFlfRklMTEVE LCAgICAgICAgICAgICAgICAgICAgLyogc2hfb2Zmc2V0ICovCisgICAgICBEWU5BTUlDQUxMWV9G SUxMRUQsICAgICAgICAgICAgICAgICAgICAvKiBzaF9zaXplICovCisgICAgICAwLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzaF9saW5rICovCisgICAgICAwLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzaF9pbmZvICovCisgICAgICA0LCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzaF9hZGRyYWxpZ24gKi8KKyAg ICAgIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNoX2VudHNpemUg Ki8KK307CisKIC8qIFNvbWUgc3lzdGVtIGhlYWRlciBmaWxlcyBkZWZpbmUgdGhlc2UgbWFjcm9z IGFuZCBwb2xsdXRlIG91ciBuYW1lc3BhY2UuICovCiAjdW5kZWYgc3dhcDE2CiAjdW5kZWYgc3dh cDMyCkBAIC0yMjgsMjggKzI1NywzNCBAQCBzdGF0aWMgdm9pZCBkb19yZWFkKGludCBmZCwgdm9p ZCAqZGF0YSwgaW50IGxlbikKIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKICAg ICB1NjQgICAgICAgIGZpbmFsX2V4ZWNfYWRkcjsKLSAgICB1MzIgICAgICAgIGxvYWRiYXNlLCBk YXRfc2l6LCBtZW1fc2l6OworICAgIHUzMiAgICAgICAgbG9hZGJhc2UsIGRhdF9zaXosIG1lbV9z aXosIG5vdGVfYmFzZSwgbm90ZV9zeiwgb2Zmc2V0OwogICAgIGNoYXIgICAgICAqaW5pbWFnZSwg Km91dGltYWdlOwogICAgIGludCAgICAgICAgaW5mZCwgb3V0ZmQ7CiAgICAgY2hhciAgICAgICBi dWZmZXJbMTAyNF07Ci0gICAgaW50ICAgICAgICBieXRlcywgdG9kbywgaTsKKyAgICBpbnQgICAg ICAgIGJ5dGVzLCB0b2RvLCBpID0gMTsKKyAgICBpbnQgICAgICAgIG51bV9waGRycyA9IDE7CiAK ICAgICBFbGYzMl9FaGRyIGluMzJfZWhkcjsKIAogICAgIEVsZjY0X0VoZHIgaW42NF9laGRyOwog ICAgIEVsZjY0X1BoZHIgaW42NF9waGRyOwogCi0gICAgaWYgKCBhcmdjICE9IDUgKQorICAgIGlm ICggYXJnYyA8IDUgKQogICAgIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJVc2FnZTogbWtl bGYzMiA8aW4taW1hZ2U+IDxvdXQtaW1hZ2U+ICIKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJV c2FnZTogbWtlbGYzMiBbLS1ub3Rlc10gPGluLWltYWdlPiA8b3V0LWltYWdlPiAiCiAgICAgICAg ICAgICAgICAgIjxsb2FkLWJhc2U+IDxmaW5hbC1leGVjLWFkZHI+XG4iKTsKICAgICAgICAgcmV0 dXJuIDE7CiAgICAgfQogCi0gICAgaW5pbWFnZSAgPSBhcmd2WzFdOwotICAgIG91dGltYWdlID0g YXJndlsyXTsKLSAgICBsb2FkYmFzZSA9IHN0cnRvdWwoYXJndlszXSwgTlVMTCwgMTYpOwotICAg IGZpbmFsX2V4ZWNfYWRkciA9IHN0cnRvdWxsKGFyZ3ZbNF0sIE5VTEwsIDE2KTsKKyAgICBpZiAo ICFzdHJjbXAoYXJndlsxXSwgIi0tbm90ZXMiKSApCisgICAgeworICAgICAgICBpID0gMjsKKyAg ICAgICAgbnVtX3BoZHJzID0gMjsKKyAgICB9CisgICAgaW5pbWFnZSAgPSBhcmd2W2krK107Cisg ICAgb3V0aW1hZ2UgPSBhcmd2W2krK107CisgICAgbG9hZGJhc2UgPSBzdHJ0b3VsKGFyZ3ZbaSsr XSwgTlVMTCwgMTYpOworICAgIGZpbmFsX2V4ZWNfYWRkciA9IHN0cnRvdWxsKGFyZ3ZbaSsrXSwg TlVMTCwgMTYpOwogCiAgICAgaW5mZCA9IG9wZW4oaW5pbWFnZSwgT19SRE9OTFkpOwogICAgIGlm ICggaW5mZCA9PSAtMSApCkBAIC0yODUsMTEgKzMyMCwxMCBAQCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCiAgICAgICAgICAgICAgICAgKGludClpbjY0X2VoZHIuZV9waGVudHNpemUs IChpbnQpc2l6ZW9mKGluNjRfcGhkcikpOwogICAgICAgICByZXR1cm4gMTsKICAgICB9Ci0KLSAg ICBpZiAoIGluNjRfZWhkci5lX3BobnVtICE9IDEgKQorICAgIGlmICggaW42NF9laGRyLmVfcGhu dW0gIT0gbnVtX3BoZHJzICkKICAgICB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXhwZWN0 IHByZWNpc2x5IDEgcHJvZ3JhbSBoZWFkZXI7IGZvdW5kICVkLlxuIiwKLSAgICAgICAgICAgICAg ICAoaW50KWluNjRfZWhkci5lX3BobnVtKTsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJFeHBl Y3QgcHJlY2lzbHkgJWQgcHJvZ3JhbSBoZWFkZXI7IGZvdW5kICVkLlxuIiwKKyAgICAgICAgICAg ICAgICBudW1fcGhkcnMsIChpbnQpaW42NF9laGRyLmVfcGhudW0pOwogICAgICAgICByZXR1cm4g MTsKICAgICB9CiAKQEAgLTMwNCw2ICszMzgsMzIgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQogICAgIC8qbWVtX3NpeiA9ICh1MzIpaW42NF9waGRyLnBfbWVtc3o7Ki8KICAgICBt ZW1fc2l6ID0gKHUzMikoZmluYWxfZXhlY19hZGRyIC0gaW42NF9waGRyLnBfdmFkZHIpOwogCisg ICAgbm90ZV9zeiA9IG5vdGVfYmFzZSA9IG9mZnNldCA9IDA7CisgICAgaWYgKCBudW1fcGhkcnMg PiAxICkKKyAgICB7CisgICAgICAgIG9mZnNldCA9IGluNjRfcGhkci5wX29mZnNldDsKKyAgICAg ICAgbm90ZV9iYXNlID0gaW42NF9waGRyLnBfdmFkZHI7CisKKyAgICAgICAgKHZvaWQpbHNlZWso aW5mZCwgaW42NF9laGRyLmVfcGhvZmYrc2l6ZW9mKGluNjRfcGhkciksIFNFRUtfU0VUKTsKKyAg ICAgICAgZG9fcmVhZChpbmZkLCAmaW42NF9waGRyLCBzaXplb2YoaW42NF9waGRyKSk7CisgICAg ICAgIGVuZGlhbmFkanVzdF9waGRyNjQoJmluNjRfcGhkcik7CisKKyAgICAgICAgKHZvaWQpbHNl ZWsoaW5mZCwgb2Zmc2V0LCBTRUVLX1NFVCk7CisKKyAgICAgICAgbm90ZV9zeiA9IGluNjRfcGhk ci5wX21lbXN6OworICAgICAgICBub3RlX2Jhc2UgPSBpbjY0X3BoZHIucF92YWRkciAtIG5vdGVf YmFzZTsKKworICAgICAgICBpZiAoIGluNjRfcGhkci5wX29mZnNldCA+IGRhdF9zaXogfHwgb2Zm c2V0ID4gaW42NF9waGRyLnBfb2Zmc2V0ICkKKyAgICAgICAgeworICAgICAgICAgICAgZnByaW50 ZihzdGRlcnIsICJFeHBlY3RlZCAubm90ZSBzZWN0aW9uIHdpdGhpbiAudGV4dCBzZWN0aW9uIVxu IiBcCisgICAgICAgICAgICAgICAgICAgICJPZmZzZXQgJWxkIG5vdCB3aXRoaW4gJWQhXG4iLAor ICAgICAgICAgICAgICAgICAgICBpbjY0X3BoZHIucF9vZmZzZXQsIGRhdF9zaXopOworICAgICAg ICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICAgICAgLyogR2V0cyB1cyB0aGUgYWJzb2x1 dGUgb2Zmc2V0IHdpdGhpbiB0aGUgLnRleHQgc2VjdGlvbi4gKi8KKyAgICAgICAgb2Zmc2V0ID0g aW42NF9waGRyLnBfb2Zmc2V0IC0gb2Zmc2V0OworICAgIH0KKwogICAgIC8qCiAgICAgICogRW5k IHRoZSBpbWFnZSBvbiBhIHBhZ2UgYm91bmRhcnkuIFRoaXMgZ2V0cyByb3VuZCBhbGlnbm1lbnQg YnVncwogICAgICAqIGluIHRoZSBib290LSBvciBjaGFpbi1sb2FkZXIgKGUuZy4sIGtleGVjIG9u IHRoZSBYZW5vQm9vdCBDRCkuCkBAIC0zMjIsNiArMzgyLDMxIEBAIGludCBtYWluKGludCBhcmdj LCBjaGFyICoqYXJndikKICAgICBvdXRfc2hkclsxXS5zaF9zaXplICAgPSBkYXRfc2l6OwogICAg IG91dF9zaGRyWzJdLnNoX29mZnNldCA9IFJBV19PRkZTRVQgKyBkYXRfc2l6ICsgc2l6ZW9mKG91 dF9zaGRyKTsKIAorICAgIGlmICggbnVtX3BoZHJzID4gMSApCisgICAgeworICAgICAgICAvKiBX ZSBoYXZlIHR3byBvZiB0aGVtISAqLworICAgICAgICBvdXRfZWhkci5lX3BobnVtID0gbnVtX3Bo ZHJzOworICAgICAgICAvKiBFeHRyYSAubm90ZSBzZWN0aW9uLiAqLworICAgICAgICBvdXRfZWhk ci5lX3NobnVtKys7CisKKyAgICAgICAgLyogRmlsbCBvdXQgdGhlIFBUX05PVEUgcHJvZ3JhbSBo ZWFkZXIuICovCisgICAgICAgIG5vdGVfcGhkci5wX3ZhZGRyICAgPSBub3RlX2Jhc2U7CisgICAg ICAgIG5vdGVfcGhkci5wX3BhZGRyICAgPSBub3RlX2Jhc2U7CisgICAgICAgIG5vdGVfcGhkci5w X2ZpbGVzeiAgPSBub3RlX3N6OworICAgICAgICBub3RlX3BoZHIucF9tZW1zeiAgID0gbm90ZV9z ejsKKyAgICAgICAgbm90ZV9waGRyLnBfb2Zmc2V0ICA9IG9mZnNldDsKKworICAgICAgICAvKiBU YWNrIG9uIHRoZSAubm90ZVwwICovCisgICAgICAgIG91dF9zaGRyWzJdLnNoX3NpemUgKz0gc2l6 ZW9mKG91dF9zaHN0cnRhYl9leHRyYSk7CisgICAgICAgIC8qIEFuZCBtb3ZlIGl0IHBhc3QgdGhl IC5ub3RlIHNlY3Rpb24uICovCisgICAgICAgIG91dF9zaGRyWzJdLnNoX29mZnNldCArPSBzaXpl b2Yob3V0X3NoZHJfbm90ZSk7CisKKyAgICAgICAgLyogRmlsbCBvdXQgdGhlIC5ub3RlIHNlY3Rp b24uICovCisgICAgICAgIG91dF9zaGRyX25vdGUuc2hfc2l6ZSA9IG5vdGVfc3o7CisgICAgICAg IG91dF9zaGRyX25vdGUuc2hfYWRkciA9IG5vdGVfYmFzZTsKKyAgICAgICAgb3V0X3NoZHJfbm90 ZS5zaF9vZmZzZXQgPSBSQVdfT0ZGU0VUICsgb2Zmc2V0OworICAgIH0KKwogICAgIG91dGZkID0g b3BlbihvdXRpbWFnZSwgT19XUk9OTFl8T19DUkVBVHxPX1RSVU5DLCAwNzc1KTsKICAgICBpZiAo IG91dGZkID09IC0xICkKICAgICB7CkBAIC0zMzUsOCArNDIwLDE0IEBAIGludCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKIAogICAgIGVuZGlhbmFkanVzdF9waGRyMzIoJm91dF9waGRyKTsK ICAgICBkb193cml0ZShvdXRmZCwgJm91dF9waGRyLCBzaXplb2Yob3V0X3BoZHIpKTsKLSAgICAK LSAgICBpZiAoIChieXRlcyA9IFJBV19PRkZTRVQgLSBzaXplb2Yob3V0X2VoZHIpIC0gc2l6ZW9m KG91dF9waGRyKSkgPCAwICkKKworICAgIGlmICggbnVtX3BoZHJzID4gMSApCisgICAgeworICAg ICAgICBlbmRpYW5hZGp1c3RfcGhkcjMyKCZub3RlX3BoZHIpOworICAgICAgICBkb193cml0ZShv dXRmZCwgJm5vdGVfcGhkciwgc2l6ZW9mKG5vdGVfcGhkcikpOworICAgIH0KKworICAgIGlmICgg KGJ5dGVzID0gUkFXX09GRlNFVCAtIHNpemVvZihvdXRfZWhkcikgLSAobnVtX3BoZHJzICogc2l6 ZW9mKG91dF9waGRyKSkgKSA8IDAgKQogICAgIHsKICAgICAgICAgZnByaW50ZihzdGRlcnIsICJI ZWFkZXIgb3ZlcmZsb3cuXG4iKTsKICAgICAgICAgcmV0dXJuIDE7CkBAIC0zNTUsOSArNDQ2LDIy IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgICAgZW5kaWFuYWRqdXN0 X3NoZHIzMigmb3V0X3NoZHJbaV0pOwogICAgIGRvX3dyaXRlKG91dGZkLCAmb3V0X3NoZHJbMF0s IHNpemVvZihvdXRfc2hkcikpOwogCi0gICAgZG9fd3JpdGUob3V0ZmQsIG91dF9zaHN0cnRhYiwg c2l6ZW9mKG91dF9zaHN0cnRhYikpOwotICAgIGRvX3dyaXRlKG91dGZkLCBidWZmZXIsIDQtKChz aXplb2Yob3V0X3Noc3RydGFiKStkYXRfc2l6KSYzKSk7Ci0KKyAgICBpZiAoIG51bV9waGRycyA+ IDEgKQorICAgIHsKKyAgICAgICAgZW5kaWFuYWRqdXN0X3NoZHIzMigmb3V0X3NoZHJfbm90ZSk7 CisgICAgICAgIC8qIEFwcGVuZCB0aGUgLm5vdGUgc2VjdGlvbi4gKi8KKyAgICAgICAgZG9fd3Jp dGUob3V0ZmQsICZvdXRfc2hkcl9ub3RlLCBzaXplb2Yob3V0X3NoZHJfbm90ZSkpOworICAgICAg ICAvKiBUaGUgbm9ybWFsIHN0cmluZ3MgLSAudGV4dFwwLi4gKi8KKyAgICAgICAgZG9fd3JpdGUo b3V0ZmQsIG91dF9zaHN0cnRhYiwgc2l6ZW9mKG91dF9zaHN0cnRhYikpOworICAgICAgICAvKiBP dXIgLm5vdGUgKi8KKyAgICAgICAgZG9fd3JpdGUob3V0ZmQsIG91dF9zaHN0cnRhYl9leHRyYSwg c2l6ZW9mKG91dF9zaHN0cnRhYl9leHRyYSkpOworICAgICAgICBkb193cml0ZShvdXRmZCwgYnVm ZmVyLCA0LSgoc2l6ZW9mKG91dF9zaHN0cnRhYikrc2l6ZW9mKG91dF9zaHN0cnRhYl9leHRyYSkr ZGF0X3NpeikmMykpOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBkb193cml0ZShv dXRmZCwgb3V0X3Noc3RydGFiLCBzaXplb2Yob3V0X3Noc3RydGFiKSk7CisgICAgICAgIGRvX3dy aXRlKG91dGZkLCBidWZmZXIsIDQtKChzaXplb2Yob3V0X3Noc3RydGFiKStkYXRfc2l6KSYzKSk7 CisgICAgfQogICAgIGNsb3NlKGluZmQpOwogICAgIGNsb3NlKG91dGZkKTsKIApkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L3hlbi5sZHMuUyBiL3hlbi9hcmNoL3g4Ni94ZW4ubGRzLlMKaW5kZXgg NWViODI1ZS4uYjE0YmNkMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3hlbi5sZHMuUworKysg Yi94ZW4vYXJjaC94ODYveGVuLmxkcy5TCkBAIC0zMSw2ICszMSw5IEBAIE9VVFBVVF9BUkNIKGkz ODY6eDg2LTY0KQogUEhEUlMKIHsKICAgdGV4dCBQVF9MT0FEIDsKKyNpZiBkZWZpbmVkKEJVSUxE X0lEKSAmJiAhZGVmaW5lZChFRkkpCisgIG5vdGUgUFRfTk9URSA7CisjZW5kaWYKIH0KIFNFQ1RJ T05TCiB7CkBAIC03OSw2ICs4MiwxNiBAQCBTRUNUSU9OUwogICAgICAgICooLnJvZGF0YSkKICAg ICAgICAqKC5yb2RhdGEuKikKIAorI2lmIGRlZmluZWQoQlVJTERfSUQpICYmIGRlZmluZWQoRUZJ KQorLyoKKyAqIE5vIG1lY2hhbmlzbSB0byBwdXQgYW4gUFRfTk9URSBpbiB0aGUgRUZJIGZpbGUg LSBzbyBwdXQKKyAqIGl0IGluIC5yb2RhdGEgc2VjdGlvbi4gKG5vdGVzLm8gc3VwcGxpZXMgdXMg d2l0aCAubm90ZS5nbnUuYnVpbGQtaWQpLgorICovCisgICAgICAgLiA9IEFMSUdOKDQpOworICAg ICAgIF9fbm90ZV9nbnVfYnVpbGRfaWRfc3RhcnQgPSAuOworICAgICAgICooLm5vdGUuZ251LmJ1 aWxkLWlkKQorICAgICAgIF9fbm90ZV9nbnVfYnVpbGRfaWRfZW5kID0gLjsKKyNlbmRpZgogICAg ICAgIC4gPSBBTElHTig4KTsKICAgICAgICAvKiBFeGNlcHRpb24gdGFibGUgKi8KICAgICAgICBf X3N0YXJ0X19fZXhfdGFibGUgPSAuOwpAQCAtOTYsOSArMTA5LDI0IEBAIFNFQ1RJT05TCiAgICAg ICAgKigubG9ja3Byb2ZpbGUuZGF0YSkKICAgICAgICBfX2xvY2tfcHJvZmlsZV9lbmQgPSAuOwog I2VuZGlmCi0gICAgICAgX2Vyb2RhdGEgPSAuOwogICB9IDp0ZXh0CiAKKyNpZiBkZWZpbmVkKEJV SUxEX0lEKSAmJiAhZGVmaW5lZChFRkkpCisvKgorICogV2hhdCBhIHN0cmFuZ2Ugc2VjdGlvbiBu YW1lLiBUaGUgcmVhc29uIGlzIHRoYXQgb24gRUxGIGJ1aWxkcyB0aGlzIHNlY3Rpb24KKyAqIGlz IGV4dHJhY3RlZCB0byBub3Rlcy5vICh3aGljaCB0aGVuIGlzIGluZ2VzdGVkIGluIHRoZSBFRkkg ZmlsZSkuIEJ1dCB0aGUKKyAqIGNvbXBpbGVyIG1heSB3YW50IHRvIGluamVjdCBvdGhlciB0aGlu Z3MgaW4gdGhlIC5ub3RlIHdoaWNoIHdlIGRvbid0IGNhcmUKKyAqIGFib3V0IC0gaGVuY2UgdGhp cyB1bmlxdWUgbmFtZS4KKyAqLworICAuID0gQUxJR04oNCk7CisgIC5ub3RlLmdudS5idWlsZC1p ZCA6IHsKKyAgICAgICBfX25vdGVfZ251X2J1aWxkX2lkX3N0YXJ0ID0gLjsKKyAgICAgICAqKC5u b3RlLmdudS5idWlsZC1pZCkKKyAgICAgICBfX25vdGVfZ251X2J1aWxkX2lkX2VuZCA9IC47Cisg IH0gOm5vdGUgOnRleHQKKyNlbmRpZgorICBfZXJvZGF0YSA9IC47CisKICNpZmRlZiBFRkkKICAg LiA9IEFMSUdOKE1CKDIpKTsKICNlbHNlCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3ZlcnNpb24u YyBiL3hlbi9jb21tb24vdmVyc2lvbi5jCmluZGV4IGZjOWJmNDIuLjMwNTc4YTYgMTAwNjQ0Ci0t LSBhL3hlbi9jb21tb24vdmVyc2lvbi5jCisrKyBiL3hlbi9jb21tb24vdmVyc2lvbi5jCkBAIC0x LDYgKzEsMTMgQEAKICNpbmNsdWRlIDx4ZW4vY29tcGlsZS5oPgorI2luY2x1ZGUgPHhlbi9pbml0 Lmg+CisjaW5jbHVkZSA8eGVuL2Vycm5vLmg+CisjaW5jbHVkZSA8eGVuL3N0cmluZy5oPgorI2lu Y2x1ZGUgPHhlbi90eXBlcy5oPgorI2luY2x1ZGUgPHhlbi9lbGYuaD4KICNpbmNsdWRlIDx4ZW4v dmVyc2lvbi5oPgogCisjaW5jbHVkZSA8YXNtL2NhY2hlLmg+CisKIGNvbnN0IGNoYXIgKnhlbl9j b21waWxlX2RhdGUodm9pZCkKIHsKICAgICByZXR1cm4gWEVOX0NPTVBJTEVfREFURTsKQEAgLTYx LDYgKzY4LDUxIEBAIGNvbnN0IGNoYXIgKnhlbl9kZW55KHZvaWQpCiAgICAgcmV0dXJuICI8ZGVu aWVkPiI7CiB9CiAKK3N0YXRpYyBjb25zdCB2b2lkICpidWlsZF9pZF9wIF9fcmVhZF9tb3N0bHk7 CitzdGF0aWMgdW5zaWduZWQgaW50IGJ1aWxkX2lkX2xlbiBfX3JlYWRfbW9zdGx5OworCitpbnQg eGVuX2J1aWxkX2lkKGNvbnN0IHZvaWQgKipwLCB1bnNpZ25lZCBpbnQgKmxlbikKK3sKKyAgICBp ZiAoICFidWlsZF9pZF9sZW4gKQorICAgICAgICByZXR1cm4gLUVOT0RBVEE7CisKKyAgICAqbGVu ID0gYnVpbGRfaWRfbGVuOworICAgICpwID0gYnVpbGRfaWRfcDsKKworICAgIHJldHVybiAwOwor fQorCisjaWZkZWYgQlVJTERfSUQKKy8qIERlZmluZWQgaW4gbGlua2VyIHNjcmlwdC4gKi8KK2V4 dGVybiBjb25zdCBFbGZfTm90ZSBfX25vdGVfZ251X2J1aWxkX2lkX3N0YXJ0W10sIF9fbm90ZV9n bnVfYnVpbGRfaWRfZW5kW107CisKK3N0YXRpYyBpbnQgX19pbml0IHhlbl9idWlsZF9pbml0KHZv aWQpCit7CisgICAgY29uc3QgRWxmX05vdGUgKm4gPSBfX25vdGVfZ251X2J1aWxkX2lkX3N0YXJ0 OworCisgICAgLyogLS1idWlsZC1pZCBpbnZva2VkIHdpdGggd3JvbmcgcGFyYW1ldGVycy4gKi8K KyAgICBpZiAoIF9fbm90ZV9nbnVfYnVpbGRfaWRfZW5kIDw9ICZuWzBdICkKKyAgICAgICAgcmV0 dXJuIC1FTk9EQVRBOworCisgICAgLyogQ2hlY2sgZm9yIGZ1bGwgTm90ZSBoZWFkZXIuICovCisg ICAgaWYgKCAmblsxXSA+IF9fbm90ZV9nbnVfYnVpbGRfaWRfZW5kICkKKyAgICAgICAgcmV0dXJu IC1FTk9EQVRBOzsKKworICAgIC8qIENoZWNrIGlmIHdlIHJlYWxseSBoYXZlIGEgYnVpbGQtaWQu ICovCisgICAgaWYgKCBOVF9HTlVfQlVJTERfSUQgIT0gbi0+dHlwZSApCisgICAgICAgIHJldHVy biAtRU5PREFUQTsKKworICAgIC8qIFNhbml0eSBjaGVjaywgbmFtZSBzaG91bGQgYmUgIkdOVSIg Zm9yIGxkLWdlbmVyYXRlZCBidWlsZC1pZC4gKi8KKyAgICBpZiAoIHN0cm5jbXAoRUxGTk9URV9O QU1FKG4pLCAiR05VIiwgbi0+bmFtZXN6KSAhPSAwICkKKyAgICAgICAgcmV0dXJuIC1FTk9EQVRB OworCisgICAgYnVpbGRfaWRfbGVuID0gbi0+ZGVzY3N6OworICAgIGJ1aWxkX2lkX3AgPSBFTEZO T1RFX0RFU0Mobik7CisKKyAgICByZXR1cm4gMDsKK30KK19faW5pdGNhbGwoeGVuX2J1aWxkX2lu aXQpOworI2VuZGlmCiAvKgogICogTG9jYWwgdmFyaWFibGVzOgogICogbW9kZTogQwpkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUveGVuL2VsZnN0cnVjdHMuaCBiL3hlbi9pbmNsdWRlL3hlbi9lbGZz dHJ1Y3RzLmgKaW5kZXggYWI5YjFlYS4uNjE1ZWIwNiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv eGVuL2VsZnN0cnVjdHMuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vZWxmc3RydWN0cy5oCkBAIC00 MCw2ICs0MCw5IEBAIHR5cGVkZWYgdWludDMyX3QJRWxmNjRfV29yZDsKIHR5cGVkZWYgaW50NjRf dAkJRWxmNjRfU3h3b3JkOwogdHlwZWRlZiB1aW50NjRfdAlFbGY2NF9Yd29yZDsKIAorLyogVW5p cXVlIGJ1aWxkIGlkIHN0cmluZyBmb3JtYXQgd2hlbiB1c2luZyAtLWJ1aWxkLWlkLiAqLworI2Rl ZmluZSBOVF9HTlVfQlVJTERfSUQgMworCiAvKgogICogZV9pZGVudFtdIGlkZW50aWZpY2F0aW9u IGluZGV4ZXMKICAqIFNlZSBodHRwOi8vd3d3LmNhbGRlcmEuY29tL2RldmVsb3BlcnMvZ2FiaS8y MDAwLTA3LTE3L2NoNC5laGVhZGVyLmh0bWwgCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4v dmVyc2lvbi5oIGIveGVuL2luY2x1ZGUveGVuL3ZlcnNpb24uaAppbmRleCAyMDE1YzBiLi40MDAx NjBmIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vdmVyc2lvbi5oCisrKyBiL3hlbi9pbmNs dWRlL3hlbi92ZXJzaW9uLmgKQEAgLTEzLDUgKzEzLDYgQEAgY29uc3QgY2hhciAqeGVuX2V4dHJh X3ZlcnNpb24odm9pZCk7CiBjb25zdCBjaGFyICp4ZW5fY2hhbmdlc2V0KHZvaWQpOwogY29uc3Qg Y2hhciAqeGVuX2Jhbm5lcih2b2lkKTsKIGNvbnN0IGNoYXIgKnhlbl9kZW55KHZvaWQpOworaW50 IHhlbl9idWlsZF9pZChjb25zdCB2b2lkICoqcCwgdW5zaWduZWQgaW50ICpsZW4pOwogCiAjZW5k aWYgLyogX19YRU5fVkVSU0lPTl9IX18gKi8KLS0gCjIuNS4wCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK