From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 85193 invoked by alias); 9 Apr 2018 14:20:08 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 85180 invoked by uid 89); 9 Apr 2018 14:20:07 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-23.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_SHORT,KAM_STOCKGEN,MIME_BASE64_BLANKS,SPF_PASS autolearn=ham version=3.3.2 spammy=stepped, 2*, sk:additio, choices X-HELO: mga11.intel.com Received: from mga11.intel.com (HELO mga11.intel.com) (192.55.52.93) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 09 Apr 2018 14:20:03 +0000 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Apr 2018 07:19:54 -0700 X-ExtLoop1: 1 Received: from irsmsx107.ger.corp.intel.com ([163.33.3.99]) by orsmga005.jf.intel.com with ESMTP; 09 Apr 2018 07:19:52 -0700 Received: from irsmsx103.ger.corp.intel.com ([169.254.3.61]) by IRSMSX107.ger.corp.intel.com ([169.254.10.157]) with mapi id 14.03.0319.002; Mon, 9 Apr 2018 15:19:51 +0100 From: "Metzger, Markus T" To: Pedro Alves , "gdb-patches@sourceware.org" Subject: RE: [PATCH] infrun: step through indirect branch thunks Date: Mon, 09 Apr 2018 14:20:00 -0000 Message-ID: References: <1519017382-24335-1-git-send-email-markus.t.metzger@intel.com> <4dfab882-016f-01b5-bb28-67cd6637acea@redhat.com> In-Reply-To: <4dfab882-016f-01b5-bb28-67cd6637acea@redhat.com> x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYTY4YWVlMzQtZmI1Zi00NTRlLWJmYTItMjMwMTI2Y2IwODg1IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJ6MnJ2SkRPQlFVWUhUbEVUaG04SXBLbDZqeE9yeHUrVEdTXC9DcE9Ndzd5M3VhSlBqZ1R1TEZNSW5TTlNoSzdiaCJ9 dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 X-IsSubscribed: yes X-SW-Source: 2018-04/txt/msg00143.txt.bz2 SGVsbG8gUGVkcm8sDQoNClRoYW5rcyBmb3IgeW91ciByZXZpZXcuDQoNCj4g PiBXaXRoIHZlcnNpb24gNy4zIEdDQyBzdXBwb3J0cyBuZXcgb3B0aW9ucw0K PiA+DQo+ID4gICAgLW1pbmRpcmVjdC1icmFuY2g9PGNob2ljZT4NCj4gPiAg ICAtbWZ1bmN0aW9uLXJldHVybj08Y2hvaWNlPg0KPiA+DQo+ID4gVGhlIGNo b2ljZXMgYXJlOg0KPiA+DQo+ID4gICAgIGtlZXAgICAgICAgICAgICAgICAg YmVoYXZlcyBhcyBiZWZvcmUNCj4gPiAgICAgdGh1bmsgICAgICAgICAgICAg ICBqdW1wcyB0aHJvdWdoIGEgdGh1bmsNCj4gPiAgICAgdGh1bmstZXh0ZXJu YWwgICAgICBqdW1wcyB0aHJvdWdoIGFuIGV4dGVybmFsIHRodW5rDQo+ID4g ICAgIHRodW5rLWlubGluZSAgICAgICAganVtcHMgdGhyb3VnaCBhbiBpbmxp bmVkIHRodW5rDQo+ID4NCj4gPiBGb3IgdGh1bmsgYW5kIHRodW5rLWV4dGVy bmFsLCBHREIgd291bGQsIG9uIGEgY2FsbCB0byB0aGUgdGh1bmssIHN0ZXAg aW50byB0aGUNCj4gPiB0aHVuayBhbmQgdGhlbiByZXN1bWUgdG8gaXRzIGNh bGxlciBhc3N1bWluZyB0aGF0IHRoaXMgaXMgYW4gdW5kZWJ1Z2dhYmxlDQo+ ID4gZnVuY3Rpb24uICBPbiBhIHJldHVybiB0aHVuaywgR0RCIHdvdWxkIHN0 b3AgaW5zaWRlIHRoZSB0aHVuay4NCj4gDQo+IEkgd2FzIGV4cGVjdGluZyB0 byBzZWUgdGhlIHRlc3RzY2FzZSBsb29waW5nIG92ZXIgYWxsIHBvc3NpYmxl DQo+IGNvbWJpbmF0aW9ucywgYnV0IG9ubHkgInRodW5rIiBpcyB0ZXN0ZWQs IGl0IHNlZW1zLiAgV2h5IGlzIHRoYXQ/DQoNClRodW5rIGFuZCB0aHVuay1l eHRlcm5hbCByZXN1bHQgaW4gdGhlIHNhbWUgY29kZSwgZXhjZXB0IHRoYXQg dGhlIGZvcm1lcg0KY29udGFpbnMgdGhlIHRodW5rIGluIGEgY29tZGF0IHNl Y3Rpb24gYW5kIHRoZSBsYXR0ZXIgb25seSBjb250YWlucyBhIHJlZmVyZW5j ZQ0KdG8gYW4gZXh0ZXJuYWwgdGh1bmsgdGhhdCB3b3VsZCBuZWVkIHRvIGJl IHByb3ZpZGVkIHNlcGFyYXRlbHkuDQoNCkFuIGlubGluZSB0aHVuayB3aWxs IGJlIHBhcnQgb2YgdGhlIGNhbGxlciBhbmQgd29uJ3QgdHJpZ2dlciBHREIn cw0Kc3RlcC1vdmVyLXVuZGVidWdnYWJsZSBoZXVyaXN0aWMuDQoNCkFuZCBr ZWVwIHdvdWxkIG5vdCB1c2UgYSB0aHVuayBzbyBpdCBzaG91bGQgYmUgY292 ZXJlZCBieSBleGlzdGluZyBzdGVwcGluZw0KdGVzdHMuDQoNCg0KPiA+IFRo ZSB0ZXN0cyBhc3N1bWUgYSBmaXhlZCBudW1iZXIgb2YgaW5zdHJ1Y3Rpb24g c3RlcHMgdG8gcmVhY2ggYSB0aHVuay4gIFRoaXMNCj4gPiBkZXBlbmRzIG9u IHRoZSBjb21waWxlciBhcyB3ZWxsIGFzIHRoZSBhcmNoaXRlY3R1cmUuICBU aGV5IG1heSBuZWVkDQo+IGFkanVzdG1lbnRzDQo+ID4gd2hlbiB3ZSBhZGQg c3VwcG9ydCBmb3IgbW9yZSBhcmNoaXRlY3R1cmVzLiAgT3Igd2UgY2FuIHNp bXBseSBkcm9wIHRob3NlDQo+IHRlc3RzDQo+ID4gdGhhdCBjb3ZlciBiZWlu ZyBhYmxlIHRvIHN0ZXAgaW50byB0aHVua3MgdXNpbmcgaW5zdHJ1Y3Rpb24g c3RlcHBpbmcuDQo+IA0KPiBUaGUgdGVzdHMgc291bmQgdXNlZnVsLCBidXQg aXNuJ3QgdGhlcmUgc29tZSB3YXkgd2UgY2FuIG1ha2UgdGhlbSBtb3JlDQo+ IHJvYnVzdCB0byBjb21waWxlcidzIHdoaW1zPyAgTWF5YmUgYW4gdXBwZXIt Ym91bmRlZCBudW1iZXIgb2YgaW5zdHJ1Y3Rpb24NCj4gc3RlcHMNCj4gdW50 aWwgc29tZSBwYXR0ZXJuPw0KDQpUaGF0IG1pZ2h0IHdvcmsuDQoNCg0KPiBH dWVzcyBhbGwgdGhpcyBjb2RlIGNvdWxkIGJlIHNoYXJlZCBiZXR3ZWUgMzIt Yml0LzY0LWJpdCwNCj4gaWYgeW91IG1hZGUgdGhpcyB0YWtlIHRoZSBuYW1l cyBhcnJheSBhbmQgYSByYW5nZSBhcyBwYXJhbWV0ZXJzOg0KDQpTbyBmYXIs IGFtZDY0LXRkZXAuYyB3YXMgdXNpbmcgZnVuY3Rpb25zIGZyb20gaTM4Ni10 ZGVwLmMgYnV0IGl0IGxvb2tzDQpjbGVhbmVyIGlmIHdlIHB1dCB0aG9zZSBp bnRvIGEgY29tbW9uIHg4Ni10ZGVwLmMuICBJJ20gYWRkaW5nIG9uZS4NCg0K DQo+ID4gKy8qIENoZWNrIHdoZXRoZXIgUEMgbGllcyBpbnNpZGUgYW4gaW5k aXJlY3QgYnJhbmNoIHRodW5rLiAgKi8NCj4gPiArDQo+ID4gK3N0YXRpYyBp bnQNCj4gPiAraW5faW5kaXJlY3RfYnJhbmNoX3RodW5rIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERSIHBjKQ0KPiA+ICt7DQo+ID4gKyAg aWYgKCFnZGJhcmNoX2luX2luZGlyZWN0X2JyYW5jaF90aHVua19wIChnZGJh cmNoKSkNCj4gPiArICAgIHJldHVybiAwOw0KPiANCj4gRG8gd2UgbmVlZCB0 byBjaGVjayB0aGUgX3AgcHJlZGljYXRlIGVsc2V3aGVyZT8gIFdoeSBub3Qg anVzdA0KPiBtYWtlIHRoZSBkZWZhdWx0IHJldHVybiBmYWxzZSwgYW5kIGFs d2F5cyBjYWxsIHRoZSBob29rPw0KDQpPSy4NCg0KIA0KPiBTaG91bGQgdGhl IGdkYi5iYXNlLyB0ZXN0Y2FzZSBoYXZlIHRlc3RzIGZvciBzdGVwcGluZyBp bnRvIHRoZSB0aHVua3M/DQoNCkl0IGlzIHVzaW5nIHRoZSBzYW1lIGNvZGUg cGF0aCBhcyBmb3IgdGhlIHJlY29yZCB0ZXN0cy4gIEJ1dCB0aGF0IGhvbGRz IGZvcg0KYWxsIHRoZSBuZXcgZ2RiLmJhc2UvIHRlc3RzIEkgYWRkZWQuICBJ J2xsIGFkZCBpdC4NCg0KQmVsb3cgaXMgdGhlIHVwZGF0ZWQgcGF0Y2guICBJ IHJhbiB0aGUgbmV3IHRlc3RzIG9uIDY0LWJpdCBhbmQgMzItYml0IElBLg0K SSBwcmV2aW91c2x5IHJhbiB0aGUgZnVsbCBzdWl0ZSBmb3IgdjEgb2YgdGhp cyBwYXRjaCBvbiA2NC1iaXQgSUEuDQoNCldoaWxlIHJlZ2VuZXJhdGluZyBn ZGJhcmNoLCBJIG5vdGljZWQgdGhhdCBpdCBnZW5lcmF0ZWQgdGhlIGZvbGxv d2luZw0KdW5yZWxhdGVkIGNoYW5nZXM6DQoNCi0tLSBnZGJhcmNoLmMgICAy MDE4LTA0LTA5IDE0OjU2OjA4Ljk3NjgxNDAwMCArMDIwMA0KKysrIG5ldy1n ZGJhcmNoLmMgICAgICAgMjAxOC0wNC0wOSAxNDo1NzozMy45MTQ2NjgwMDAg KzAyMDANCkBAIC00NCw3ICs0NCw3IEBADQogI2luY2x1ZGUgInJlZ2dyb3Vw cy5oIg0KICNpbmNsdWRlICJvc2FiaS5oIg0KICNpbmNsdWRlICJnZGJfb2Jz dGFjay5oIg0KLSNpbmNsdWRlICJvYnNlcnZhYmxlLmgiDQorI2luY2x1ZGUg Im9ic2VydmVyLmgiDQogI2luY2x1ZGUgInJlZ2NhY2hlLmgiDQogI2luY2x1 ZGUgIm9iamZpbGVzLmgiDQogI2luY2x1ZGUgImF1eHYuaCINCkBAIC01NDgw LDcgKzU0ODAsNyBAQA0KICAgZ2RiX2Fzc2VydCAobmV3X2dkYmFyY2ggIT0g TlVMTCk7DQogICBnZGJfYXNzZXJ0IChuZXdfZ2RiYXJjaC0+aW5pdGlhbGl6 ZWRfcCk7DQogICBjdXJyZW50X2luZmVyaW9yICgpLT5nZGJhcmNoID0gbmV3 X2dkYmFyY2g7DQotICBnZGI6Om9ic2VydmVyczo6YXJjaGl0ZWN0dXJlX2No YW5nZWQubm90aWZ5IChuZXdfZ2RiYXJjaCk7DQorICBvYnNlcnZlcl9ub3Rp ZnlfYXJjaGl0ZWN0dXJlX2NoYW5nZWQgKG5ld19nZGJhcmNoKTsNCiAgIHJl Z2lzdGVyc19jaGFuZ2VkICgpOw0KIH0NCg0KLCB3aGljaCByZXN1bHQgaW4g YSBidWlsZCBlcnJvcjoNCg0KLi4uL2dkYi9nZGJhcmNoLmM6NDc6MTA6IGZh dGFsIGVycm9yOiBvYnNlcnZlci5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5DQogI2luY2x1ZGUgIm9ic2VydmVyLmgiDQogICAgICAgICAgXn5+fn5+ fn5+fn5+DQpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLg0KDQpJIGV4Y2x1ZGVk IHRob3NlIGZyb20gbXkgcGF0Y2guDQoNClJlZ2FyZHMsDQpNYXJrdXMuDQoN Ci0tLQ0KDQpjb21taXQgOWQ0MDY2YTk2YzEzMmViYzhjNjcxZTU0ZGQyNjMz OGY3M2E4Y2YxOA0KQXV0aG9yOiBNYXJrdXMgTWV0emdlciA8bWFya3VzLnQu bWV0emdlckBpbnRlbC5jb20+DQpEYXRlOiAgIFdlZCBGZWIgMTQgMTQ6MzA6 NTcgMjAxOCArMDEwMA0KDQogICAgaW5mcnVuOiBzdGVwIHRocm91Z2ggaW5k aXJlY3QgYnJhbmNoIHRodW5rcw0KICAgIA0KICAgIFdpdGggdmVyc2lvbiA3 LjMgR0NDIHN1cHBvcnRzIG5ldyBvcHRpb25zDQogICAgDQogICAgICAgLW1p bmRpcmVjdC1icmFuY2g9PGNob2ljZT4NCiAgICAgICAtbWZ1bmN0aW9uLXJl dHVybj08Y2hvaWNlPg0KICAgIA0KICAgIFRoZSBjaG9pY2VzIGFyZToNCiAg ICANCiAgICAgICAga2VlcCAgICAgICAgICAgICAgICBiZWhhdmVzIGFzIGJl Zm9yZQ0KICAgICAgICB0aHVuayAgICAgICAgICAgICAgIGp1bXBzIHRocm91 Z2ggYSB0aHVuaw0KICAgICAgICB0aHVuay1leHRlcm5hbCAgICAgIGp1bXBz IHRocm91Z2ggYW4gZXh0ZXJuYWwgdGh1bmsNCiAgICAgICAgdGh1bmstaW5s aW5lICAgICAgICBqdW1wcyB0aHJvdWdoIGFuIGlubGluZWQgdGh1bmsNCiAg ICANCiAgICBGb3IgdGh1bmsgYW5kIHRodW5rLWV4dGVybmFsLCBHREIgd291 bGQsIG9uIGEgY2FsbCB0byB0aGUgdGh1bmssIHN0ZXAgaW50bw0KICAgIHRo ZSB0aHVuayBhbmQgdGhlbiByZXN1bWUgdG8gaXRzIGNhbGxlciBhc3N1bWlu ZyB0aGF0IHRoaXMgaXMgYW4NCiAgICB1bmRlYnVnZ2FibGUgZnVuY3Rpb24u ICBPbiBhIHJldHVybiB0aHVuaywgR0RCIHdvdWxkIHN0b3AgaW5zaWRlIHRo ZQ0KICAgIHRodW5rLg0KICAgIA0KICAgIE1ha2UgR0RCIHN0ZXAgdGhyb3Vn aCBzdWNoIHRodW5rcyBpbnN0ZWFkLg0KICAgIA0KICAgIEJlZm9yZToNCiAg ICAgICAgVGVtcG9yYXJ5IGJyZWFrcG9pbnQgMSwgbWFpbiAoKQ0KICAgICAg ICAgICAgYXQgZ2RiLmJhc2Uvc3RlcC1pbmRpcmVjdC1jYWxsLXRodW5rLmM6 MzcNCiAgICAgICAgMzcgICAgICAgIHggPSBhcHBseSAoaW5jLCA0MSk7DQog ICAgICAgIChnZGIpIHMNCiAgICAgICAgYXBwbHkgKG9wPTB4ODA0ODNlNiA8 aW5jPiwgeD00MSkNCiAgICAgICAgICAgIGF0IGdkYi5iYXNlL3N0ZXAtaW5k aXJlY3QtY2FsbC10aHVuay5jOjI5DQogICAgICAgIDI5ICAgICAgICByZXR1 cm4gb3AgKHgpOw0KICAgICAgICAoZ2RiKQ0KICAgICAgICAzMCAgICAgIH0N CiAgICANCiAgICBBZnRlcjoNCiAgICAgICAgVGVtcG9yYXJ5IGJyZWFrcG9p bnQgMSwgbWFpbiAoKQ0KICAgICAgICAgICAgYXQgZ2RiLmJhc2Uvc3RlcC1p bmRpcmVjdC1jYWxsLXRodW5rLmM6MzcNCiAgICAgICAgMzcgICAgICAgIHgg PSBhcHBseSAoaW5jLCA0MSk7DQogICAgICAgIChnZGIpIHMNCiAgICAgICAg YXBwbHkgKG9wPTB4ODA0ODNlNiA8aW5jPiwgeD00MSkNCiAgICAgICAgICAg IGF0IGdkYi5iYXNlL3N0ZXAtaW5kaXJlY3QtY2FsbC10aHVuay5jOjI5DQog ICAgICAgIDI5ICAgICAgICByZXR1cm4gb3AgKHgpOw0KICAgICAgICAoZ2Ri KQ0KICAgICAgICBpbmMgKHg9NDEpIGF0IGdkYi5iYXNlL3N0ZXAtaW5kaXJl Y3QtY2FsbC10aHVuay5jOjIzDQogICAgICAgIDIzICAgICAgICByZXR1cm4g eCArIDE7DQogICAgDQogICAgVGhpcyBpcyBpbmRlcGVuZGVudCBvZiB0aGUg c3RlcC1tb2RlLiAgSW4gb3JkZXIgdG8gc3RlcCBpbnRvIHRoZSB0aHVuaywN CiAgICB5b3Ugd291bGQgbmVlZCB0byB1c2Ugc3RlcGkuDQogICAgDQogICAg V2hlbiBzdGVwcGluZyBvdmVyIGFuIGluZGlyZWN0IGNhbGwgdGh1bmssIEdE QiB3b3VsZCBmaXJzdCBzdGVwIHRocm91Z2gNCiAgICB0aGUgdGh1bmssIHRo ZW4gcmVjb2duaXplIHRoYXQgaXQgc3RlcHBlZCBpbnRvIGEgc3ViLXJvdXRp bmUgYW5kIHJlc3VtZSB0bw0KICAgIHRoZSBjYWxsZXIgKG9mIHRoZSB0aHVu aykuICBOb3Qgc3VyZSB3aGV0aGVyIHRoaXMgaXMgd29ydGggb3B0aW1pemlu Zy4NCiAgICANCiAgICBUaHVuayBkZXRlY3Rpb24gaXMgaW1wbGVtZW50ZWQg dmlhIGdkYmFyY2guICBJIGltcGxlbWVudGVkIHRoZSBtZXRob2RzIGZvcg0K ICAgIElBLiAgT3RoZXIgYXJjaGl0ZWN0dXJlcyBtYXkgcnVuIGludG8gdW5l eHBlY3RlZCBmYWlscy4NCiAgICANCiAgICBUaGUgdGVzdHMgYXNzdW1lIGEg Zml4ZWQgbnVtYmVyIG9mIGluc3RydWN0aW9uIHN0ZXBzIHRvIHJlYWNoIGEg dGh1bmsuDQogICAgVGhpcyBkZXBlbmRzIG9uIHRoZSBjb21waWxlciBhcyB3 ZWxsIGFzIHRoZSBhcmNoaXRlY3R1cmUuICBUaGV5IG1heSBuZWVkDQogICAg YWRqdXN0bWVudHMgd2hlbiB3ZSBhZGQgc3VwcG9ydCBmb3IgbW9yZSBhcmNo aXRlY3R1cmVzLiAgT3Igd2UgY2FuIHNpbXBseQ0KICAgIGRyb3AgdGhvc2Ug dGVzdHMgdGhhdCBjb3ZlciBiZWluZyBhYmxlIHRvIHN0ZXAgaW50byB0aHVu a3MgdXNpbmcNCiAgICBpbnN0cnVjdGlvbiBzdGVwcGluZy4NCiAgICANCiAg ICBXaGVuIHVzaW5nIGFuIG9sZGVyIEdDQywgdGhlIHRlc3RzIHdpbGwgZmFp bCB0byBidWlsZCBhbmQgd2lsbCBiZSByZXBvcnRlZA0KICAgIGFzIHVudGVz dGVkOg0KICAgIA0KICAgICAgICBSdW5uaW5nIC4uLi9nZGIuYmFzZS9zdGVw LWluZGlyZWN0LWNhbGwtdGh1bmsuZXhwIC4uLg0KICAgICAgICBnZGIgY29t cGlsZSBmYWlsZWQsIFwNCiAgICAgICAgZ2NjOiBlcnJvcjogdW5yZWNvZ25p emVkIGNvbW1hbmQgbGluZSBvcHRpb24gJy1taW5kaXJlY3QtYnJhbmNoPXRo dW5rJw0KICAgICAgICBnY2M6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFu ZCBsaW5lIG9wdGlvbiAnLW1mdW5jdGlvbi1yZXR1cm49dGh1bmsnDQogICAg DQogICAgICAgICAgICAgICAgICAgICAgICA9PT0gZ2RiIFN1bW1hcnkgPT09 DQogICAgDQogICAgICAgICMgb2YgdW50ZXN0ZWQgdGVzdGNhc2VzICAgICAg ICAgMQ0KICAgIA0KICAgIDIwMTgtMDQtMDkgIE1hcmt1cyBNZXR6Z2VyICA8 bWFya3VzLnQubWV0emdlckBpbnRlbC5jb20+DQogICAgDQogICAgZ2RiLw0K ICAgIAkqIGluZnJ1bi5jIChwcm9jZXNzX2V2ZW50X3N0b3BfdGVzdCk6DQog ICAgCUNhbGwgZ2RiYXJjaF9pbl9pbmRpcmVjdF9icmFuY2hfdGh1bmsuDQog ICAgCSogZ2RiYXJjaC5zaCAoaW5faW5kaXJlY3RfYnJhbmNoX3RodW5rKTog TmV3Lg0KICAgIAkqIGdkYmFyY2guYzogUmVnZW5lcmF0ZWQuDQogICAgCSog Z2RiYXJjaC5oOiBSZWdlbmVyYXRlZC4NCiAgICAJKiB4ODYtdGRlcC5oOiBO ZXcuDQogICAgCSogeDg2LXRkZXAuYzogTmV3Lg0KICAgIAkqIE1ha2VmaWxl LmluIChBTExfVEFSR0VUX09CUyk6IEFkZCB4ODYtdGRlcC5vLg0KICAgIAko SEZJTEVTX05PX1NSQ0RJUik6IEFkZCB4ODYtdGRlcC5oLg0KICAgIAkoQUxM REVQRklMRVMpOiBBZGQgeDg2LXRkZXAuYy4NCiAgICAJKiBhcmNoLXV0aWxz LmggKGRlZmF1bHRfaW5faW5kaXJlY3RfYnJhbmNoX3RodW5rKTogTmV3Lg0K ICAgIAkqIGFyY2gtdXRpbHMuYyAoZGVmYXVsdF9pbl9pbmRpcmVjdF9icmFu Y2hfdGh1bmspOiBOZXcuDQogICAgCSogaTM4Ni10ZGVwOiBJbmNsdWRlIHg4 Ni10ZGVwLmguDQogICAgCShpMzg2X2luX2luZGlyZWN0X2JyYW5jaF90aHVu ayk6IE5ldy4NCiAgICAJKGkzODZfZWxmX2luaXRfYWJpKTogU2V0IGluX2lu ZGlyZWN0X2JyYW5jaF90aHVuayBnZGJhcmNoIGZ1bmN0aW9uLg0KICAgIAkq IGFtZDY0LXRkZXA6IEluY2x1ZGUgeDg2LXRkZXAuaC4NCiAgICAJKGFtZDY0 X2luX2luZGlyZWN0X2JyYW5jaF90aHVuayk6IE5ldy4NCiAgICAJKGFtZDY0 X2luaXRfYWJpKTogU2V0IGluX2luZGlyZWN0X2JyYW5jaF90aHVuayBnZGJh cmNoIGZ1bmN0aW9uLg0KICAgIA0KICAgIHRlc3RzdWl0ZS8NCiAgICAJKiBn ZGIuYmFzZS9zdGVwLWluZGlyZWN0LWNhbGwtdGh1bmsuZXhwOiBOZXcuDQog ICAgCSogZ2RiLmJhc2Uvc3RlcC1pbmRpcmVjdC1jYWxsLXRodW5rLmM6IE5l dy4NCiAgICAJKiBnZGIucmV2ZXJzZS9zdGVwLWluZGlyZWN0LWNhbGwtdGh1 bmsuZXhwOiBOZXcuDQogICAgCSogZ2RiLnJldmVyc2Uvc3RlcC1pbmRpcmVj dC1jYWxsLXRodW5rLmM6IE5ldy4NCg0KZGlmZiAtLWdpdCBhL2dkYi9NYWtl ZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbg0KaW5kZXggMGEwN2NhYi4uZWI4 YmUyZCAxMDA2NDQNCi0tLSBhL2dkYi9NYWtlZmlsZS5pbg0KKysrIGIvZ2Ri L01ha2VmaWxlLmluDQpAQCAtNzkyLDYgKzc5Miw3IEBAIEFMTF9UQVJHRVRf T0JTID0gXA0KIAl2YXgtbmJzZC10ZGVwLm8gXA0KIAl2YXgtdGRlcC5vIFwN CiAJd2luZG93cy10ZGVwLm8gXA0KKwl4ODYtdGRlcC5vIFwNCiAJeGNvZmZy ZWFkLm8gXA0KIAl4c3Rvcm15MTYtdGRlcC5vIFwNCiAJeHRlbnNhLWNvbmZp Zy5vIFwNCkBAIC0xNTIwLDcgKzE1MjEsOCBAQCBIRklMRVNfTk9fU1JDRElS ID0gXA0KIAl0dWkvdHVpLXdpbi5oIFwNCiAJdHVpL3R1aS13aW5kYXRhLmgg XA0KIAl0dWkvdHVpLXdpbmdlbmVyYWwuaCBcDQotCXR1aS90dWktd2luc291 cmNlLmgNCisJdHVpL3R1aS13aW5zb3VyY2UuaCBcDQorCXg4Ni10ZGVwLmgN CiANCiAjIEhlYWRlciBmaWxlcyB0aGF0IGFscmVhZHkgaGF2ZSBzcmNkaXIg aW4gdGhlbSwgb3Igd2hpY2ggYXJlIGluIG9iamRpci4NCiANCkBAIC0yMzYy LDYgKzIzNjQsNyBAQCBBTExERVBGSUxFUyA9IFwNCiAJd2luZG93cy1uYXQu YyBcDQogCXdpbmRvd3MtdGRlcC5jIFwNCiAJeDg2LW5hdC5jIFwNCisJeDg2 LXRkZXAuYyBcDQogCXhjb2ZmcmVhZC5jIFwNCiAJeHN0b3JteTE2LXRkZXAu YyBcDQogCXh0ZW5zYS1jb25maWcuYyBcDQpkaWZmIC0tZ2l0IGEvZ2RiL2Ft ZDY0LXRkZXAuYyBiL2dkYi9hbWQ2NC10ZGVwLmMNCmluZGV4IGJjZWI2ZTEu LjFmZWEyNjQgMTAwNjQ0DQotLS0gYS9nZGIvYW1kNjQtdGRlcC5jDQorKysg Yi9nZGIvYW1kNjQtdGRlcC5jDQpAQCAtNDgsNiArNDgsNyBAQA0KICNpbmNs dWRlICJheC1nZGIuaCINCiAjaW5jbHVkZSAiY29tbW9uL2J5dGUtdmVjdG9y LmgiDQogI2luY2x1ZGUgIm9zYWJpLmgiDQorI2luY2x1ZGUgIng4Ni10ZGVw LmgiDQogDQogLyogTm90ZSB0aGF0IHRoZSBBTUQ2NCBhcmNoaXRlY3R1cmUg d2FzIHByZXZpb3VzbHkga25vd24gYXMgeDg2LTY0Lg0KICAgIFRoZSBsYXR0 ZXIgaXMgKGZvcmV2ZXIpIGVuZ3JhdmVkIGludG8gdGhlIGNhbm9uaWNhbCBz eXN0ZW0gbmFtZSBhcw0KQEAgLTMwMzQsNiArMzAzNSwxNiBAQCBzdGF0aWMg Y29uc3QgaW50IGFtZDY0X3JlY29yZF9yZWdtYXBbXSA9DQogICBBTUQ2NF9E U19SRUdOVU0sIEFNRDY0X0VTX1JFR05VTSwgQU1ENjRfRlNfUkVHTlVNLCBB TUQ2NF9HU19SRUdOVU0NCiB9Ow0KIA0KKy8qIEltcGxlbWVudCB0aGUgImlu X2luZGlyZWN0X2JyYW5jaF90aHVuayIgZ2RiYXJjaCBmdW5jdGlvbi4gICov DQorDQorc3RhdGljIGJvb2wNCithbWQ2NF9pbl9pbmRpcmVjdF9icmFuY2hf dGh1bmsgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIgcGMp DQorew0KKyAgcmV0dXJuIHg4Nl9pbl9pbmRpcmVjdF9icmFuY2hfdGh1bmsg KHBjLCBhbWQ2NF9yZWdpc3Rlcl9uYW1lcywNCisJCQkJICAgICAgIEFNRDY0 X1JBWF9SRUdOVU0sDQorCQkJCSAgICAgICBBTUQ2NF9SSVBfUkVHTlVNKTsN Cit9DQorDQogdm9pZA0KIGFtZDY0X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJj aF9pbmZvIGluZm8sIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLA0KIAkJY29u c3QgdGFyZ2V0X2Rlc2MgKmRlZmF1bHRfdGRlc2MpDQpAQCAtMzIwNiw2ICsz MjE3LDkgQEAgYW1kNjRfaW5pdF9hYmkgKHN0cnVjdCBnZGJhcmNoX2luZm8g aW5mbywgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsDQogICBzZXRfZ2RiYXJj aF9pbnNuX2lzX2NhbGwgKGdkYmFyY2gsIGFtZDY0X2luc25faXNfY2FsbCk7 DQogICBzZXRfZ2RiYXJjaF9pbnNuX2lzX3JldCAoZ2RiYXJjaCwgYW1kNjRf aW5zbl9pc19yZXQpOw0KICAgc2V0X2dkYmFyY2hfaW5zbl9pc19qdW1wIChn ZGJhcmNoLCBhbWQ2NF9pbnNuX2lzX2p1bXApOw0KKw0KKyAgc2V0X2dkYmFy Y2hfaW5faW5kaXJlY3RfYnJhbmNoX3RodW5rIChnZGJhcmNoLA0KKwkJCQkJ YW1kNjRfaW5faW5kaXJlY3RfYnJhbmNoX3RodW5rKTsNCiB9DQogDQogLyog SW5pdGlhbGl6ZSBBUkNIIGZvciB4ODYtNjQsIG5vIG9zYWJpLiAgKi8NCmRp ZmYgLS1naXQgYS9nZGIvYXJjaC11dGlscy5jIGIvZ2RiL2FyY2gtdXRpbHMu Yw0KaW5kZXggNTk4NmVkNi4uNzdiMzcwYyAxMDA2NDQNCi0tLSBhL2dkYi9h cmNoLXV0aWxzLmMNCisrKyBiL2dkYi9hcmNoLXV0aWxzLmMNCkBAIC05Nzks NiArOTc5LDEzIEBAIGdkYmFyY2hfc2tpcF9wcm9sb2d1ZV9ub2V4Y2VwdCAo Z2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERSIHBjKSBub2V4Y2VwdA0KICAg cmV0dXJuIG5ld19wYzsNCiB9DQogDQorLyogU2VlIGFyY2gtdXRpbHMuaC4g ICovDQorDQorYm9vbCBkZWZhdWx0X2luX2luZGlyZWN0X2JyYW5jaF90aHVu ayAoZ2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERSIHBjKQ0KK3sNCisgIHJl dHVybiBmYWxzZTsNCit9DQorDQogdm9pZA0KIF9pbml0aWFsaXplX2dkYmFy Y2hfdXRpbHMgKHZvaWQpDQogew0KZGlmZiAtLWdpdCBhL2dkYi9hcmNoLXV0 aWxzLmggYi9nZGIvYXJjaC11dGlscy5oDQppbmRleCAzNDA3YTE2Li5iNzg1 YjI0IDEwMDY0NA0KLS0tIGEvZ2RiL2FyY2gtdXRpbHMuaA0KKysrIGIvZ2Ri L2FyY2gtdXRpbHMuaA0KQEAgLTI2Miw0ICsyNjIsOSBAQCBleHRlcm4gaW50 IGRlZmF1bHRfcHJpbnRfaW5zbiAoYmZkX3ZtYSBtZW1hZGRyLCBkaXNhc3Nl bWJsZV9pbmZvICppbmZvKTsNCiBleHRlcm4gQ09SRV9BRERSIGdkYmFyY2hf c2tpcF9wcm9sb2d1ZV9ub2V4Y2VwdCAoZ2RiYXJjaCAqZ2RiYXJjaCwNCiAJ CQkJCQkgQ09SRV9BRERSIHBjKSBub2V4Y2VwdDsNCiANCisvKiBEZWZhdWx0 IGltcGxlbWVudGF0aW9uIG9mIGdkYmFyY2hfaW5faW5kaXJlY3RfYnJhbmNo X3RodW5rIHRoYXQgcmV0dXJucw0KKyAgIGZhbHNlLiAgKi8NCitleHRlcm4g Ym9vbCBkZWZhdWx0X2luX2luZGlyZWN0X2JyYW5jaF90aHVuayAoZ2RiYXJj aCAqZ2RiYXJjaCwNCisJCQkJCSAgICAgIENPUkVfQUREUiBwYyk7DQorDQog I2VuZGlmDQpkaWZmIC0tZ2l0IGEvZ2RiL2dkYmFyY2guYyBiL2dkYi9nZGJh cmNoLmMNCmluZGV4IGRkYWZlMjUuLjEzNTljMmYgMTAwNjQ0DQotLS0gYS9n ZGIvZ2RiYXJjaC5jDQorKysgYi9nZGIvZ2RiYXJjaC5jDQpAQCAtMjY2LDYg KzI2Niw3IEBAIHN0cnVjdCBnZGJhcmNoDQogICBnZGJhcmNoX3NraXBfdHJh bXBvbGluZV9jb2RlX2Z0eXBlICpza2lwX3RyYW1wb2xpbmVfY29kZTsNCiAg IGdkYmFyY2hfc2tpcF9zb2xpYl9yZXNvbHZlcl9mdHlwZSAqc2tpcF9zb2xp Yl9yZXNvbHZlcjsNCiAgIGdkYmFyY2hfaW5fc29saWJfcmV0dXJuX3RyYW1w b2xpbmVfZnR5cGUgKmluX3NvbGliX3JldHVybl90cmFtcG9saW5lOw0KKyAg Z2RiYXJjaF9pbl9pbmRpcmVjdF9icmFuY2hfdGh1bmtfZnR5cGUgKmluX2lu ZGlyZWN0X2JyYW5jaF90aHVuazsNCiAgIGdkYmFyY2hfc3RhY2tfZnJhbWVf ZGVzdHJveWVkX3BfZnR5cGUgKnN0YWNrX2ZyYW1lX2Rlc3Ryb3llZF9wOw0K ICAgZ2RiYXJjaF9lbGZfbWFrZV9tc3ltYm9sX3NwZWNpYWxfZnR5cGUgKmVs Zl9tYWtlX21zeW1ib2xfc3BlY2lhbDsNCiAgIGdkYmFyY2hfY29mZl9tYWtl X21zeW1ib2xfc3BlY2lhbF9mdHlwZSAqY29mZl9tYWtlX21zeW1ib2xfc3Bl Y2lhbDsNCkBAIC00MzMsNiArNDM0LDcgQEAgZ2RiYXJjaF9hbGxvYyAoY29u c3Qgc3RydWN0IGdkYmFyY2hfaW5mbyAqaW5mbywNCiAgIGdkYmFyY2gtPnNr aXBfdHJhbXBvbGluZV9jb2RlID0gZ2VuZXJpY19za2lwX3RyYW1wb2xpbmVf Y29kZTsNCiAgIGdkYmFyY2gtPnNraXBfc29saWJfcmVzb2x2ZXIgPSBnZW5l cmljX3NraXBfc29saWJfcmVzb2x2ZXI7DQogICBnZGJhcmNoLT5pbl9zb2xp Yl9yZXR1cm5fdHJhbXBvbGluZSA9IGdlbmVyaWNfaW5fc29saWJfcmV0dXJu X3RyYW1wb2xpbmU7DQorICBnZGJhcmNoLT5pbl9pbmRpcmVjdF9icmFuY2hf dGh1bmsgPSBkZWZhdWx0X2luX2luZGlyZWN0X2JyYW5jaF90aHVuazsNCiAg IGdkYmFyY2gtPnN0YWNrX2ZyYW1lX2Rlc3Ryb3llZF9wID0gZ2VuZXJpY19z dGFja19mcmFtZV9kZXN0cm95ZWRfcDsNCiAgIGdkYmFyY2gtPmNvZmZfbWFr ZV9tc3ltYm9sX3NwZWNpYWwgPSBkZWZhdWx0X2NvZmZfbWFrZV9tc3ltYm9s X3NwZWNpYWw7DQogICBnZGJhcmNoLT5tYWtlX3N5bWJvbF9zcGVjaWFsID0g ZGVmYXVsdF9tYWtlX3N5bWJvbF9zcGVjaWFsOw0KQEAgLTYyNyw2ICs2Mjks NyBAQCB2ZXJpZnlfZ2RiYXJjaCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gp DQogICAvKiBTa2lwIHZlcmlmeSBvZiBza2lwX3RyYW1wb2xpbmVfY29kZSwg aW52YWxpZF9wID09IDAgKi8NCiAgIC8qIFNraXAgdmVyaWZ5IG9mIHNraXBf c29saWJfcmVzb2x2ZXIsIGludmFsaWRfcCA9PSAwICovDQogICAvKiBTa2lw IHZlcmlmeSBvZiBpbl9zb2xpYl9yZXR1cm5fdHJhbXBvbGluZSwgaW52YWxp ZF9wID09IDAgKi8NCisgIC8qIFNraXAgdmVyaWZ5IG9mIGluX2luZGlyZWN0 X2JyYW5jaF90aHVuaywgaW52YWxpZF9wID09IDAgKi8NCiAgIC8qIFNraXAg dmVyaWZ5IG9mIHN0YWNrX2ZyYW1lX2Rlc3Ryb3llZF9wLCBpbnZhbGlkX3Ag PT0gMCAqLw0KICAgLyogU2tpcCB2ZXJpZnkgb2YgZWxmX21ha2VfbXN5bWJv bF9zcGVjaWFsLCBoYXMgcHJlZGljYXRlLiAgKi8NCiAgIC8qIFNraXAgdmVy aWZ5IG9mIGNvZmZfbWFrZV9tc3ltYm9sX3NwZWNpYWwsIGludmFsaWRfcCA9 PSAwICovDQpAQCAtMTEwMyw2ICsxMTA2LDkgQEAgZ2RiYXJjaF9kdW1wIChz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHVpX2ZpbGUgKmZpbGUp DQogICAgICAgICAgICAgICAgICAgICAgICJnZGJhcmNoX2R1bXA6IGhhdmVf bm9uc3RlcHBhYmxlX3dhdGNocG9pbnQgPSAlc1xuIiwNCiAgICAgICAgICAg ICAgICAgICAgICAgcGxvbmdlc3QgKGdkYmFyY2gtPmhhdmVfbm9uc3RlcHBh YmxlX3dhdGNocG9pbnQpKTsNCiAgIGZwcmludGZfdW5maWx0ZXJlZCAoZmls ZSwNCisgICAgICAgICAgICAgICAgICAgICAgImdkYmFyY2hfZHVtcDogaW5f aW5kaXJlY3RfYnJhbmNoX3RodW5rID0gPCVzPlxuIiwNCisgICAgICAgICAg ICAgICAgICAgICAgaG9zdF9hZGRyZXNzX3RvX3N0cmluZyAoZ2RiYXJjaC0+ aW5faW5kaXJlY3RfYnJhbmNoX3RodW5rKSk7DQorICBmcHJpbnRmX3VuZmls dGVyZWQgKGZpbGUsDQogICAgICAgICAgICAgICAgICAgICAgICJnZGJhcmNo X2R1bXA6IGluX3NvbGliX3JldHVybl90cmFtcG9saW5lID0gPCVzPlxuIiwN CiAgICAgICAgICAgICAgICAgICAgICAgaG9zdF9hZGRyZXNzX3RvX3N0cmlu ZyAoZ2RiYXJjaC0+aW5fc29saWJfcmV0dXJuX3RyYW1wb2xpbmUpKTsNCiAg IGZwcmludGZfdW5maWx0ZXJlZCAoZmlsZSwNCkBAIC0zMzUzLDYgKzMzNTks MjMgQEAgc2V0X2dkYmFyY2hfaW5fc29saWJfcmV0dXJuX3RyYW1wb2xpbmUg KHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLA0KICAgZ2RiYXJjaC0+aW5fc29s aWJfcmV0dXJuX3RyYW1wb2xpbmUgPSBpbl9zb2xpYl9yZXR1cm5fdHJhbXBv bGluZTsNCiB9DQogDQorYm9vbA0KK2dkYmFyY2hfaW5faW5kaXJlY3RfYnJh bmNoX3RodW5rIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERS IHBjKQ0KK3sNCisgIGdkYl9hc3NlcnQgKGdkYmFyY2ggIT0gTlVMTCk7DQor ICBnZGJfYXNzZXJ0IChnZGJhcmNoLT5pbl9pbmRpcmVjdF9icmFuY2hfdGh1 bmsgIT0gTlVMTCk7DQorICBpZiAoZ2RiYXJjaF9kZWJ1ZyA+PSAyKQ0KKyAg ICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csICJnZGJhcmNoX2lu X2luZGlyZWN0X2JyYW5jaF90aHVuayBjYWxsZWRcbiIpOw0KKyAgcmV0dXJu IGdkYmFyY2gtPmluX2luZGlyZWN0X2JyYW5jaF90aHVuayAoZ2RiYXJjaCwg cGMpOw0KK30NCisNCit2b2lkDQorc2V0X2dkYmFyY2hfaW5faW5kaXJlY3Rf YnJhbmNoX3RodW5rIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdkYmFyY2hfaW5f aW5kaXJlY3RfYnJhbmNoX3RodW5rX2Z0eXBlIGluX2luZGlyZWN0X2JyYW5j aF90aHVuaykNCit7DQorICBnZGJhcmNoLT5pbl9pbmRpcmVjdF9icmFuY2hf dGh1bmsgPSBpbl9pbmRpcmVjdF9icmFuY2hfdGh1bms7DQorfQ0KKw0KIGlu dA0KIGdkYmFyY2hfc3RhY2tfZnJhbWVfZGVzdHJveWVkX3AgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIgYWRkcikNCiB7DQpkaWZmIC0t Z2l0IGEvZ2RiL2dkYmFyY2guaCBiL2dkYi9nZGJhcmNoLmgNCmluZGV4IDVj YjEzMWQuLjAwODRmMTkgMTAwNjQ0DQotLS0gYS9nZGIvZ2RiYXJjaC5oDQor KysgYi9nZGIvZ2RiYXJjaC5oDQpAQCAtNzQxLDYgKzc0MSwxMiBAQCB0eXBl ZGVmIGludCAoZ2RiYXJjaF9pbl9zb2xpYl9yZXR1cm5fdHJhbXBvbGluZV9m dHlwZSkgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLA0KIGV4dGVybiBpbnQg Z2RiYXJjaF9pbl9zb2xpYl9yZXR1cm5fdHJhbXBvbGluZSAoc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gsIENPUkVfQUREUiBwYywgY29uc3QgY2hhciAqbmFt ZSk7DQogZXh0ZXJuIHZvaWQgc2V0X2dkYmFyY2hfaW5fc29saWJfcmV0dXJu X3RyYW1wb2xpbmUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBnZGJhcmNo X2luX3NvbGliX3JldHVybl90cmFtcG9saW5lX2Z0eXBlICppbl9zb2xpYl9y ZXR1cm5fdHJhbXBvbGluZSk7DQogDQorLyogUmV0dXJuIHRydWUgaWYgUEMg bGllcyBpbnNpZGUgYW4gaW5kaXJlY3QgYnJhbmNoIHRodW5rLiAqLw0KKw0K K3R5cGVkZWYgYm9vbCAoZ2RiYXJjaF9pbl9pbmRpcmVjdF9icmFuY2hfdGh1 bmtfZnR5cGUpIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERS IHBjKTsNCitleHRlcm4gYm9vbCBnZGJhcmNoX2luX2luZGlyZWN0X2JyYW5j aF90aHVuayAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIENPUkVfQUREUiBw Yyk7DQorZXh0ZXJuIHZvaWQgc2V0X2dkYmFyY2hfaW5faW5kaXJlY3RfYnJh bmNoX3RodW5rIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgZ2RiYXJjaF9p bl9pbmRpcmVjdF9icmFuY2hfdGh1bmtfZnR5cGUgKmluX2luZGlyZWN0X2Jy YW5jaF90aHVuayk7DQorDQogLyogQSB0YXJnZXQgbWlnaHQgaGF2ZSBwcm9i bGVtcyB3aXRoIHdhdGNocG9pbnRzIGFzIHNvb24gYXMgdGhlIHN0YWNrDQog ICAgZnJhbWUgb2YgdGhlIGN1cnJlbnQgZnVuY3Rpb24gaGFzIGJlZW4gZGVz dHJveWVkLiAgVGhpcyBtb3N0bHkgaGFwcGVucw0KICAgIGFzIHRoZSBmaXJz dCBhY3Rpb24gaW4gYSBmdW5jdGlvbidzIGVwaWxvZ3VlLiAgc3RhY2tfZnJh bWVfZGVzdHJveWVkX3AoKQ0KZGlmZiAtLWdpdCBhL2dkYi9nZGJhcmNoLnNo IGIvZ2RiL2dkYmFyY2guc2gNCmluZGV4IDMzZGZhNmIuLmI5MjE5NTAgMTAw NzU1DQotLS0gYS9nZGIvZ2RiYXJjaC5zaA0KKysrIGIvZ2RiL2dkYmFyY2gu c2gNCkBAIC02NjAsNiArNjYwLDkgQEAgbTtDT1JFX0FERFI7c2tpcF9zb2xp Yl9yZXNvbHZlcjtDT1JFX0FERFIgcGM7cGM7O2dlbmVyaWNfc2tpcF9zb2xp Yl9yZXNvbHZlcjs7MA0KICMgU29tZSBzeXN0ZW1zIGFsc28gaGF2ZSB0cmFt cG9saW5lIGNvZGUgZm9yIHJldHVybmluZyBmcm9tIHNoYXJlZCBsaWJzLg0K IG07aW50O2luX3NvbGliX3JldHVybl90cmFtcG9saW5lO0NPUkVfQUREUiBw YywgY29uc3QgY2hhciAqbmFtZTtwYywgbmFtZTs7Z2VuZXJpY19pbl9zb2xp Yl9yZXR1cm5fdHJhbXBvbGluZTs7MA0KIA0KKyMgUmV0dXJuIHRydWUgaWYg UEMgbGllcyBpbnNpZGUgYW4gaW5kaXJlY3QgYnJhbmNoIHRodW5rLg0KK207 Ym9vbDtpbl9pbmRpcmVjdF9icmFuY2hfdGh1bms7Q09SRV9BRERSIHBjO3Bj OztkZWZhdWx0X2luX2luZGlyZWN0X2JyYW5jaF90aHVuazs7MA0KKw0KICMg QSB0YXJnZXQgbWlnaHQgaGF2ZSBwcm9ibGVtcyB3aXRoIHdhdGNocG9pbnRz IGFzIHNvb24gYXMgdGhlIHN0YWNrDQogIyBmcmFtZSBvZiB0aGUgY3VycmVu dCBmdW5jdGlvbiBoYXMgYmVlbiBkZXN0cm95ZWQuICBUaGlzIG1vc3RseSBo YXBwZW5zDQogIyBhcyB0aGUgZmlyc3QgYWN0aW9uIGluIGEgZnVuY3Rpb24n cyBlcGlsb2d1ZS4gIHN0YWNrX2ZyYW1lX2Rlc3Ryb3llZF9wKCkNCmRpZmYg LS1naXQgYS9nZGIvaTM4Ni10ZGVwLmMgYi9nZGIvaTM4Ni10ZGVwLmMNCmlu ZGV4IDYwZGM4MDEuLmJmNGNhNTQgMTAwNjQ0DQotLS0gYS9nZGIvaTM4Ni10 ZGVwLmMNCisrKyBiL2dkYi9pMzg2LXRkZXAuYw0KQEAgLTQ3LDYgKzQ3LDcg QEANCiAjaW5jbHVkZSAiaTM4Ni10ZGVwLmgiDQogI2luY2x1ZGUgImkzODct dGRlcC5oIg0KICNpbmNsdWRlICJ4ODYteHN0YXRlLmgiDQorI2luY2x1ZGUg Ing4Ni10ZGVwLmgiDQogDQogI2luY2x1ZGUgInJlY29yZC5oIg0KICNpbmNs dWRlICJyZWNvcmQtZnVsbC5oIg0KQEAgLTQ0MjEsNiArNDQyMiwxNSBAQCBp Mzg2X2dudV90cmlwbGV0X3JlZ2V4cCAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gpDQogDQogDQoNCiANCisvKiBJbXBsZW1lbnQgdGhlICJpbl9pbmRpcmVj dF9icmFuY2hfdGh1bmsiIGdkYmFyY2ggZnVuY3Rpb24uICAqLw0KKw0KK3N0 YXRpYyBib29sDQoraTM4Nl9pbl9pbmRpcmVjdF9icmFuY2hfdGh1bmsgKHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIgcGMpDQorew0KKyAg cmV0dXJuIHg4Nl9pbl9pbmRpcmVjdF9icmFuY2hfdGh1bmsgKHBjLCBpMzg2 X3JlZ2lzdGVyX25hbWVzLA0KKwkJCQkgICAgICAgSTM4Nl9FQVhfUkVHTlVN LCBJMzg2X0VJUF9SRUdOVU0pOw0KK30NCisNCiAvKiBHZW5lcmljIEVMRi4g ICovDQogDQogdm9pZA0KQEAgLTQ0NDcsNiArNDQ1Nyw5IEBAIGkzODZfZWxm X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGluZm8sIHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoKQ0KIAkJCQkgICAgICBpMzg2X3N0YXBfaXNfc2lu Z2xlX29wZXJhbmQpOw0KICAgc2V0X2dkYmFyY2hfc3RhcF9wYXJzZV9zcGVj aWFsX3Rva2VuIChnZGJhcmNoLA0KIAkJCQkJaTM4Nl9zdGFwX3BhcnNlX3Nw ZWNpYWxfdG9rZW4pOw0KKw0KKyAgc2V0X2dkYmFyY2hfaW5faW5kaXJlY3Rf YnJhbmNoX3RodW5rIChnZGJhcmNoLA0KKwkJCQkJaTM4Nl9pbl9pbmRpcmVj dF9icmFuY2hfdGh1bmspOw0KIH0NCiANCiAvKiBTeXN0ZW0gViBSZWxlYXNl IDQgKFNWUjQpLiAgKi8NCmRpZmYgLS1naXQgYS9nZGIvaW5mcnVuLmMgYi9n ZGIvaW5mcnVuLmMNCmluZGV4IGQ4OWY4MTMuLjBkZjhlNGQgMTAwNjQ0DQot LS0gYS9nZGIvaW5mcnVuLmMNCisrKyBiL2dkYi9pbmZydW4uYw0KQEAgLTY1 NzAsNiArNjU3MCwxNyBAQCBwcm9jZXNzX2V2ZW50X3N0b3BfdGVzdCAoc3Ry dWN0IGV4ZWN1dGlvbl9jb250cm9sX3N0YXRlICplY3MpDQogICAgICAgcmV0 dXJuOw0KICAgICB9DQogDQorICAvKiBTdGVwIHRocm91Z2ggYW4gaW5kaXJl Y3QgYnJhbmNoIHRodW5rLiAgKi8NCisgIGlmIChlY3MtPmV2ZW50X3RocmVh ZC0+Y29udHJvbC5zdGVwX292ZXJfY2FsbHMgIT0gU1RFUF9PVkVSX05PTkUN CisgICAgICAmJiBnZGJhcmNoX2luX2luZGlyZWN0X2JyYW5jaF90aHVuayAo Z2RiYXJjaCwgc3RvcF9wYykpDQorICAgIHsNCisgICAgICBpZiAoZGVidWdf aW5mcnVuKQ0KKwkgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLA0K KwkJCSAgICAgImluZnJ1bjogc3RlcHBlZCBpbnRvIGluZGlyZWN0IGJyYW5j aCB0aHVua1xuIik7DQorICAgICAga2VlcF9nb2luZyAoZWNzKTsNCisgICAg ICByZXR1cm47DQorICAgIH0NCisNCiAgIGlmIChlY3MtPmV2ZW50X3RocmVh ZC0+Y29udHJvbC5zdGVwX3JhbmdlX2VuZCAhPSAxDQogICAgICAgJiYgKGVj cy0+ZXZlbnRfdGhyZWFkLT5jb250cm9sLnN0ZXBfb3Zlcl9jYWxscyA9PSBT VEVQX09WRVJfVU5ERUJVR0dBQkxFDQogCSAgfHwgZWNzLT5ldmVudF90aHJl YWQtPmNvbnRyb2wuc3RlcF9vdmVyX2NhbGxzID09IFNURVBfT1ZFUl9BTEwp DQpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zdGVwLWlu ZGlyZWN0LWNhbGwtdGh1bmsuYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv c3RlcC1pbmRpcmVjdC1jYWxsLXRodW5rLmMNCm5ldyBmaWxlIG1vZGUgMTAw NjQ0DQppbmRleCAwMDAwMDAwLi5iZDIyZWE2DQotLS0gL2Rldi9udWxsDQor KysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3N0ZXAtaW5kaXJlY3QtY2Fs bC10aHVuay5jDQpAQCAtMCwwICsxLDQyIEBADQorLyogVGhpcyB0ZXN0Y2Fz ZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4NCisNCisgICBD b3B5cmlnaHQgMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4N CisNCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KKyAgIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5DQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3INCisg ICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KKw0KKyAg IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLA0KKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQor ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQ0KKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQorDQorICAgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UNCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4NCisNCisq Lw0KKw0KK3N0YXRpYyBpbnQNCitpbmMgKGludCB4KQ0KK3sgICAgICAgICAg ICAgICAgLyogaW5jLjEgKi8NCisgIHJldHVybiB4ICsgMTsgIC8qIGluYy4y ICovDQorfSAgICAgICAgICAgICAgICAvKiBpbmMuMyAqLw0KKw0KK3N0YXRp YyBpbnQNCit0aHJpY2UgKGludCAoKm9wKShpbnQpLCBpbnQgeCkNCit7ICAg ICAgICAgICAgICAgICAvKiB0aHJpY2UuMSAqLw0KKyAgeCA9IG9wICh4KTsg ICAgIC8qIHRocmljZS4yICovDQorICB4ID0gb3AgKHgpOyAgICAgLyogdGhy aWNlLjMgKi8NCisgIHJldHVybiBvcCAoeCk7ICAvKiB0aHJpY2UuNCAqLw0K K30gICAgICAgICAgICAgICAgIC8qIHRocmljZS41ICovDQorDQoraW50DQor bWFpbiAoKQ0KK3sNCisgIGludCB4Ow0KKw0KKyAgeCA9IHRocmljZSAoaW5j LCA0MCk7DQorDQorICByZXR1cm4geDsNCit9DQpkaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9zdGVwLWluZGlyZWN0LWNhbGwtdGh1bmsu ZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zdGVwLWluZGlyZWN0LWNh bGwtdGh1bmsuZXhwDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMC4uN2Y5YWI2MA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9zdGVwLWluZGlyZWN0LWNhbGwtdGh1bmsuZXhwDQpA QCAtMCwwICsxLDYxIEBADQorIyBDb3B5cmlnaHQgMjAxOCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4NCisNCisjIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5DQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KKyMgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3INCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uDQorIw0KKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQorIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZg0KKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KKyMgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCisjDQor IyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KKyMgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uDQorDQorc3RhbmRhcmRfdGVzdGZpbGUNCisNCitzZXQgY2ZsYWdz ICItbWluZGlyZWN0LWJyYW5jaD10aHVuayAtbWZ1bmN0aW9uLXJldHVybj10 aHVuayINCitpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8g cHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlIFwNCisgICAgICAgIFtsaXN0 IGRlYnVnICJhZGRpdGlvbmFsX2ZsYWdzPSRjZmxhZ3MiXV0gfSB7DQorICAg IHJldHVybiAtMQ0KK30NCisNCitpZiB7ICFbcnVudG9fbWFpbl0gfSB7DQor ICAgIHVudGVzdGVkICJmYWlsZWQgdG8gcnVuIHRvIG1haW4iDQorICAgIHJl dHVybiAtMQ0KK30NCisNCitwcm9jIHN0ZXBpX3VudGlsIHsgY3VycmVudCB0 YXJnZXQgdGVzdCB9IHsNCisgICAgZ2xvYmFsIGdkYl9wcm9tcHQNCisNCisg ICAgZ2RiX3Rlc3RfbXVsdGlwbGUgInN0ZXBpIiAiJHRlc3Q6IHN0ZXBpIiB7 DQorICAgICAgICAtcmUgIiRjdXJyZW50LiokZ2RiX3Byb21wdCAkIiB7DQor ICAgICAgICAgICAgc2VuZF9nZGIgInN0ZXBpXG4iDQorICAgICAgICAgICAg ZXhwX2NvbnRpbnVlDQorICAgICAgICB9DQorICAgICAgICAtcmUgIiR0YXJn ZXQuKiRnZGJfcHJvbXB0ICQiIHsNCisgICAgICAgICAgICBwYXNzICIkdGVz dDogJHRhcmdldCByZWFjaGVkIg0KKyAgICAgICAgfQ0KKyAgICAgICAgLXJl ICIkZ2RiX3Byb21wdCAkIiB7DQorICAgICAgICAgICAgZmFpbCAiJHRlc3Q6 ICR0YXJnZXQgbm90IHJlYWNoZWQiDQorICAgICAgICB9DQorICAgICAgICB0 aW1lb3V0IHsNCisgICAgICAgICAgICBmYWlsICIkdGVzdDogdGltZW91dCIN CisgICAgICAgIH0NCisgICAgfQ0KK30NCisNCisjIE5vcm1hbCBzdGVwcGlu ZyBzdGVwcyB0aHJvdWdoIGFsbCB0aHVua3MuDQorZ2RiX3Rlc3QgInN0ZXAi ICJ0aHJpY2VcLjIuKiIgInN0ZXAgaW50byB0aHJpY2UiDQorZ2RiX3Rlc3Qg Im5leHQiICJ0aHJpY2VcLjMuKiIgInN0ZXAgdGhyb3VnaCB0aHVua3MgYW5k IG92ZXIgaW5jIg0KK2dkYl90ZXN0ICJzdGVwIiAiaW5jXC4yLioiICJzdGVw IHRocm91Z2ggY2FsbCB0aHVuayBpbnRvIGluYyINCitnZGJfdGVzdCAic3Rl cCIgImluY1wuMy4qIiAic3RlcCBpbnNpZGUgaW5jIg0KK2dkYl90ZXN0ICJz dGVwIiAidGhyaWNlXC40LioiICJzdGVwIHRocm91Z2ggcmV0dXJuIHRodW5r IGJhY2sgaW50byB0aHJpY2UiDQorDQorIyBXZSBjYW4gdXNlIGluc3RydWN0 aW9uIHN0ZXBwaW5nIHRvIHN0ZXAgaW50byB0aHVua3MuDQorc3RlcGlfdW50 aWwgInRocmljZSIgImluZGlyZWN0X3RodW5rIiAic3RlcGkgaW50byBjYWxs IHRodW5rIg0KK3N0ZXBpX3VudGlsICJpbmRpcmVjdF90aHVuayIgImluYy4i ICJzdGVwaSBvdXQgb2YgY2FsbCB0aHVuayBpbnRvIGluYyINCitzdGVwaV91 bnRpbCAiaW5jIiAicmV0dXJuX3RodW5rIiAic3RlcGkgaW50byByZXR1cm4g dGh1bmsiDQorc3RlcGlfdW50aWwgInJldHVybl90aHVuayIgInRocmljZSIg XA0KKyAgICAic3RlcGkgb3V0IG9mIHJldHVybiB0aHVuayBiYWNrIGludG8g dGhyaWNlIg0KZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnJldmVy c2Uvc3RlcC1pbmRpcmVjdC1jYWxsLXRodW5rLmMgYi9nZGIvdGVzdHN1aXRl L2dkYi5yZXZlcnNlL3N0ZXAtaW5kaXJlY3QtY2FsbC10aHVuay5jDQpuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uODU0NjRjMw0KLS0t IC9kZXYvbnVsbA0KKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucmV2ZXJzZS9z dGVwLWluZGlyZWN0LWNhbGwtdGh1bmsuYw0KQEAgLTAsMCArMSwzNiBAQA0K Ky8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVi dWdnZXIuDQorDQorICAgQ29weXJpZ2h0IDIwMTggRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuDQorDQorICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkNCisgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KKyAgIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhl IExpY2Vuc2UsIG9yDQorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4NCisNCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCisgICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZg0KKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCisgICBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KKw0K KyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQorICAgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uDQorDQorKi8NCisNCitzdGF0aWMgaW50DQoraW5jIChpbnQg eCkNCit7ICAgICAgICAgICAgICAgIC8qIGluYy4xICovDQorICByZXR1cm4g eCArIDE7ICAvKiBpbmMuMiAqLw0KK30gICAgICAgICAgICAgICAgLyogaW5j LjMgKi8NCisNCitzdGF0aWMgaW50DQorYXBwbHkgKGludCAoKm9wKShpbnQp LCBpbnQgeCkNCit7ICAgICAgICAgICAgICAgICAvKiBhcHBseS4xICovDQor ICByZXR1cm4gb3AgKHgpOyAgLyogYXBwbHkuMiAqLw0KK30gICAgICAgICAg ICAgICAgIC8qIGFwcGx5LjMgKi8NCisNCitpbnQNCittYWluICgpDQoreyAg ICAgICAgICAgICAgICAgICAgICAgICAvKiBtYWluLjEgKi8NCisgIHJldHVy biBhcHBseSAoaW5jLCA0MSk7IC8qIG1haW4uMiAqLw0KK30gICAgICAgICAg ICAgICAgICAgICAgICAgLyogbWFpbi4zICovDQpkaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIucmV2ZXJzZS9zdGVwLWluZGlyZWN0LWNhbGwtdGh1 bmsuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucmV2ZXJzZS9zdGVwLWluZGly ZWN0LWNhbGwtdGh1bmsuZXhwDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5k ZXggMDAwMDAwMC4uOTNiYWMzMQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIucmV2ZXJzZS9zdGVwLWluZGlyZWN0LWNhbGwtdGh1 bmsuZXhwDQpAQCAtMCwwICsxLDg3IEBADQorIyBDb3B5cmlnaHQgMjAxOCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCisNCisjIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5DQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0K KyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3INCisjIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uDQorIw0KKyMgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws DQorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KKyMgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0K KyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4NCisjDQorIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KKyMgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uDQorDQoraWYgeyAhW3N1cHBvcnRzX3JldmVyc2Vd IH0gew0KKwl1bnRlc3RlZCAidGFyZ2V0IGRvZXMgbm90IHN1cHBvcnQgcmVj b3JkIg0KKyAgICByZXR1cm4gLTENCit9DQorDQorc3RhbmRhcmRfdGVzdGZp bGUNCisNCitzZXQgY2ZsYWdzICItbWluZGlyZWN0LWJyYW5jaD10aHVuayAt bWZ1bmN0aW9uLXJldHVybj10aHVuayINCitpZiB7IFtwcmVwYXJlX2Zvcl90 ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxl IFwNCisgICAgICAgIFtsaXN0IGRlYnVnICJhZGRpdGlvbmFsX2ZsYWdzPSRj ZmxhZ3MiXV0gfSB7DQorICAgIHJldHVybiAtMQ0KK30NCisNCitpZiB7ICFb cnVudG9fbWFpbl0gfSB7DQorICAgIHVudGVzdGVkICJmYWlsZWQgdG8gcnVu IHRvIG1haW4iDQorICAgIHJldHVybiAtMQ0KK30NCisNCitwcm9jIHN0ZXBf dW50aWwgeyBjb21tYW5kIGN1cnJlbnQgdGFyZ2V0IHRlc3QgfSB7DQorICAg IGdsb2JhbCBnZGJfcHJvbXB0DQorDQorICAgIGdkYl90ZXN0X211bHRpcGxl ICIkY29tbWFuZCIgIiR0ZXN0OiAkY29tbWFuZCIgew0KKyAgICAgICAgLXJl ICIkY3VycmVudC4qJGdkYl9wcm9tcHQgJCIgew0KKyAgICAgICAgICAgIHNl bmRfZ2RiICIkY29tbWFuZFxuIg0KKyAgICAgICAgICAgIGV4cF9jb250aW51 ZQ0KKyAgICAgICAgfQ0KKyAgICAgICAgLXJlICIkdGFyZ2V0LiokZ2RiX3By b21wdCAkIiB7DQorICAgICAgICAgICAgcGFzcyAiJHRlc3Q6ICR0YXJnZXQg cmVhY2hlZCINCisgICAgICAgIH0NCisgICAgICAgIC1yZSAiJGdkYl9wcm9t cHQgJCIgew0KKyAgICAgICAgICAgIGZhaWwgIiR0ZXN0OiAkdGFyZ2V0IG5v dCByZWFjaGVkIg0KKyAgICAgICAgfQ0KKyAgICAgICAgdGltZW91dCB7DQor ICAgICAgICAgICAgZmFpbCAiJHRlc3Q6IHRpbWVvdXQiDQorICAgICAgICB9 DQorICAgIH0NCit9DQorDQorZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJyZWNvcmQi DQorZ2RiX3Rlc3QgIm5leHQiICIuKiIgInJlY29yZCB0cmFjZSINCisNCisj IE5vcm1hbCBzdGVwcGluZyBzdGVwcyB0aHJvdWdoIGFsbCB0aHVua3MuDQor Z2RiX3Rlc3QgInJldmVyc2Utc3RlcCIgImFwcGx5XC4zLioiICJyZXZlcnNl LXN0ZXAgaW50byBhcHBseSINCitnZGJfdGVzdCAicmV2ZXJzZS1zdGVwIiAi aW5jXC4zLioiICJyZXZlcnNlLXN0ZXAgaW50byBpbmMiDQorZ2RiX3Rlc3Qg InJldmVyc2Utc3RlcCIgImluY1wuMi4qIiAicmV2ZXJzZS1zdGVwIGluc2lk ZSBpbmMiDQorZ2RiX3Rlc3QgInJldmVyc2Utc3RlcCIgImFwcGx5XC4yLioi IFwNCisgICAgInJldmVyc2Utc3RlcCB0aHJvdWdoIGNhbGwgdGh1bmsgaW50 byBhcHBseSINCitnZGJfdGVzdCAicmV2ZXJzZS1zdGVwIiAibWFpblwuMi4q IiAicmV2ZXJzZS1zdGVwIGludG8gbWFpbiINCitnZGJfdGVzdCAic3RlcCIg ImFwcGx5XC4yLioiICJzdGVwIGludG8gYXBwbHkiDQorZ2RiX3Rlc3QgInN0 ZXAiICJpbmNcLjIuKiIgInN0ZXAgdGhyb3VnaCBjYWxsIHRodW5rIGludG8g aW5jIg0KK2dkYl90ZXN0ICJyZXZlcnNlLXN0ZXAiICJhcHBseVwuMi4qIiBc DQorICAgICJyZXZlcnNlLXN0ZXAgdGhyb3VnaCBjYWxsIHRodW5rIGludG8g YXBwbHkiDQorZ2RiX3Rlc3QgIm5leHQiICJhcHBseVwuMy4qIiAic3RlcCB0 aHJvdWdoIHRodW5rcyBhbmQgb3ZlciBpbmMiDQorZ2RiX3Rlc3QgInJldmVy c2UtbmV4dCIgImFwcGx5XC4yLioiIFwNCisgICAgInJldmVyc2Utc3RlcCB0 aHJvdWdoIHRodW5rcyBhbmQgb3ZlciBpbmMiDQorDQorIyBXZSBjYW4gdXNl IGluc3RydWN0aW9uIHN0ZXBwaW5nIHRvIHN0ZXAgaW50byB0aHVua3MuDQor c3RlcF91bnRpbCAic3RlcGkiICJhcHBseVwuMiIgImluZGlyZWN0X3RodW5r IiAic3RlcGkgaW50byBjYWxsIHRodW5rIg0KK3N0ZXBfdW50aWwgInN0ZXBp IiAiaW5kaXJlY3RfdGh1bmsiICJpbmMiIFwNCisgICAgInN0ZXBpIG91dCBv ZiBjYWxsIHRodW5rIGludG8gaW5jIg0KK3N0ZXBfdW50aWwgInN0ZXBpIiAi aW5jIiAicmV0dXJuX3RodW5rIiAic3RlcGkgaW50byByZXR1cm4gdGh1bmsi DQorc3RlcF91bnRpbCAic3RlcGkiICJyZXR1cm5fdGh1bmsiICJhcHBseSIg XA0KKyAgICAic3RlcGkgb3V0IG9mIHJldHVybiB0aHVuayBiYWNrIGludG8g YXBwbHkiDQorDQorc3RlcF91bnRpbCAicmV2ZXJzZS1zdGVwaSIgImFwcGx5 IiAicmV0dXJuX3RodW5rIiBcDQorICAgICJyZXZlcnNlLXN0ZXBpIGludG8g cmV0dXJuIHRodW5rIg0KK3N0ZXBfdW50aWwgInJldmVyc2Utc3RlcGkiICJy ZXR1cm5fdGh1bmsiICJpbmMiIFwNCisgICAgInJldmVyc2Utc3RlcGkgb3V0 IG9mIHJldHVybiB0aHVuayBpbnRvIGluYyINCitzdGVwX3VudGlsICJyZXZl cnNlLXN0ZXBpIiAiaW5jIiAiaW5kaXJlY3RfdGh1bmsiIFwNCisgICAgInJl dmVyc2Utc3RlcGkgaW50byBjYWxsIHRodW5rIg0KK3N0ZXBfdW50aWwgInJl dmVyc2Utc3RlcGkiICJpbmRpcmVjdF90aHVuayIgImFwcGx5IiBcDQorICAg ICJyZXZlcnNlLXN0ZXBpIG91dCBvZiBjYWxsIHRodW5rIGludG8gYXBwbHki DQpkaWZmIC0tZ2l0IGEvZ2RiL3g4Ni10ZGVwLmMgYi9nZGIveDg2LXRkZXAu Yw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmZmNjI5 NDcNCi0tLSAvZGV2L251bGwNCisrKyBiL2dkYi94ODYtdGRlcC5jDQpAQCAt MCwwICsxLDc1IEBADQorLyogVGFyZ2V0LWRlcGVuZGVudCBjb2RlIGZvciBY ODYtYmFzZWQgdGFyZ2V0cy4NCisNCisgICBDb3B5cmlnaHQgKEMpIDIwMTgg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQorDQorICAgVGhpcyBm aWxlIGlzIHBhcnQgb2YgR0RCLg0KKw0KKyAgIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5DQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCisgICB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9m IHRoZSBMaWNlbnNlLCBvcg0KKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uDQorDQorICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQorICAg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YNCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQorICAg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4N CisNCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KKyAgIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LiAgKi8NCisNCisjaW5jbHVkZSAieDg2LXRkZXAuaCIN CisNCisNCisvKiBDaGVjayB3aGV0aGVyIE5BTUUgaXMgaW5jbHVkZWQgaW4g TkFNRVNbTE9dIChpbmNsdXNpdmUpIHRvIE5BTUVTW0hJXQ0KKyAgIChleGNs dXNpdmUpLiAgKi8NCisNCitzdGF0aWMgYm9vbA0KK3g4Nl9pc190aHVua19y ZWdpc3Rlcl9uYW1lIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICoq bmFtZXMsIGludCBsbywNCisJCQkgICAgaW50IGhpKQ0KK3sNCisgIGludCBy ZWc7DQorICBmb3IgKHJlZyA9IGxvOyByZWcgPCBoaTsgKytyZWcpDQorICAg IGlmIChzdHJjbXAgKG5hbWUsIG5hbWVzW3JlZ10pID09IDApDQorICAgICAg cmV0dXJuIHRydWU7DQorDQorICByZXR1cm4gZmFsc2U7DQorfQ0KKw0KKy8q IFNlZSB4ODYtdGRlcC5oLiAgKi8NCisNCitib29sDQoreDg2X2luX2luZGly ZWN0X2JyYW5jaF90aHVuayAoQ09SRV9BRERSIHBjLCBjb25zdCBjaGFyICoq cmVnaXN0ZXJfbmFtZXMsDQorCQkJICAgICAgaW50IGxvLCBpbnQgaGkpDQor ew0KKyAgc3RydWN0IGJvdW5kX21pbmltYWxfc3ltYm9sIGJtZnVuID0gbG9v a3VwX21pbmltYWxfc3ltYm9sX2J5X3BjIChwYyk7DQorICBpZiAoYm1mdW4u bWluc3ltID09IG51bGxwdHIpDQorICAgIHJldHVybiBmYWxzZTsNCisNCisg IGNvbnN0IGNoYXIgKm5hbWUgPSBNU1lNQk9MX0xJTktBR0VfTkFNRSAoYm1m dW4ubWluc3ltKTsNCisgIGlmIChuYW1lID09IG51bGxwdHIpDQorICAgIHJl dHVybiBmYWxzZTsNCisNCisgIC8qIENoZWNrIHRoZSBpbmRpcmVjdCByZXR1 cm4gdGh1bmsgZmlyc3QuICAqLw0KKyAgaWYgKHN0cmNtcCAobmFtZSwgIl9f eDg2X3JldHVybl90aHVuayIpID09IDApDQorICAgIHJldHVybiB0cnVlOw0K Kw0KKyAgLyogVGhlbiBjaGVjayBhIGZhbWlseSBvZiBpbmRpcmVjdCBjYWxs L2p1bXAgdGh1bmtzLiAgKi8NCisgIHN0YXRpYyBjb25zdCBjaGFyIHRodW5r W10gPSAiX194ODZfaW5kaXJlY3RfdGh1bmsiOw0KKyAgc3RhdGljIGNvbnN0 IHNpemVfdCBsZW5ndGggPSBzaXplb2YgKHRodW5rKSAtIDE7DQorICBpZiAo c3RybmNtcCAobmFtZSwgdGh1bmssIGxlbmd0aCkgIT0gMCkNCisgICAgcmV0 dXJuIGZhbHNlOw0KKw0KKyAgLyogSWYgdGhhdCdzIHRoZSBjb21wbGV0ZSBu YW1lLCB3ZSdyZSBpbiB0aGUgbWVtb3J5IHRodW5rLiAgKi8NCisgIG5hbWUg Kz0gbGVuZ3RoOw0KKyAgaWYgKCpuYW1lID09IDApDQorICAgIHJldHVybiB0 cnVlOw0KKw0KKyAgLyogQ2hlY2sgZm9yIHN1ZmZpeGVzLiAgKi8NCisgIGlm ICgqbmFtZSsrICE9ICdfJykNCisgICAgcmV0dXJuIGZhbHNlOw0KKw0KKyAg aWYgKHg4Nl9pc190aHVua19yZWdpc3Rlcl9uYW1lIChuYW1lLCByZWdpc3Rl cl9uYW1lcywgbG8sIGhpKSkNCisgICAgcmV0dXJuIHRydWU7DQorDQorICBy ZXR1cm4gZmFsc2U7DQorfQ0KZGlmZiAtLWdpdCBhL2dkYi94ODYtdGRlcC5o IGIvZ2RiL3g4Ni10ZGVwLmgNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl eCAwMDAwMDAwLi5mMzU2OWVmDQotLS0gL2Rldi9udWxsDQorKysgYi9nZGIv eDg2LXRkZXAuaA0KQEAgLTAsMCArMSwzMiBAQA0KKy8qIFRhcmdldC1kZXBl bmRlbnQgY29kZSBmb3IgWDg2LWJhc2VkIHRhcmdldHMuDQorDQorICAgQ29w eXJpZ2h0IChDKSAyMDE4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j Lg0KKw0KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4NCisNCisgICBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KKyAgIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5DQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3INCisgICAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KKw0KKyAgIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLA0KKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQorICAgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQ0KKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuDQorDQorICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UN CisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovDQorDQorI2lmbmRl ZiBYODZfVERFUF9IDQorI2RlZmluZSBYODZfVERFUF9IDQorDQorI2luY2x1 ZGUgImRlZnMuaCINCisNCisvKiBDaGVja3Mgd2hldGhlciBQQyBsaWVzIGlu IGFuIGluZGlyZWN0IGJyYW5jaCB0aHVuayB1c2luZyByZWdpc3RlcnMNCisg ICBSRUdJU1RFUl9OQU1FU1tMT10gKGluY2x1c2l2ZSkgdG8gUkVHSVNURVJf TkFNRVNbSEldIChleGNsdXNpdmUpLiAgKi8NCisNCitleHRlcm4gYm9vbCB4 ODZfaW5faW5kaXJlY3RfYnJhbmNoX3RodW5rIChDT1JFX0FERFIgcGMsDQor CQkJCQkgIGNvbnN0IGNoYXIgKipyZWdpc3Rlcl9uYW1lcywNCisJCQkJCSAg aW50IGxvLCBpbnQgaGkpOw0KKw0KKyNlbmRpZiAvKiB4ODYtdGRlcC5oICov DQoNCkludGVsIERldXRzY2hsYW5kIEdtYkgKUmVnaXN0ZXJlZCBBZGRyZXNz OiBBbSBDYW1wZW9uIDEwLTEyLCA4NTU3OSBOZXViaWJlcmcsIEdlcm1hbnkK VGVsOiArNDkgODkgOTkgODg1My0wLCB3d3cuaW50ZWwuZGUKTWFuYWdpbmcg RGlyZWN0b3JzOiBDaHJpc3RpbiBFaXNlbnNjaG1pZCwgQ2hyaXN0aWFuIExh bXByZWNodGVyCkNoYWlycGVyc29uIG9mIHRoZSBTdXBlcnZpc29yeSBCb2Fy ZDogTmljb2xlIExhdQpSZWdpc3RlcmVkIE9mZmljZTogTXVuaWNoCkNvbW1l cmNpYWwgUmVnaXN0ZXI6IEFtdHNnZXJpY2h0IE11ZW5jaGVuIEhSQiAxODY5 MjgK