From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Lutomirski Subject: Re: [RFC PATCH] proc, pidns: Add highpid Date: Mon, 1 Dec 2014 08:48:29 -0800 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: systemd-devel-bounces@lists.freedesktop.org Sender: "systemd-devel" To: Konstantin Khlebnikov Cc: systemd Mailing List , =?UTF-8?B?0JXQvNC10LvRjNGP0L3QvtCyINCf0LDQstC10Ls=?= , Linux API , Linux Kernel Mailing List , Cyrill Gorcunov , Greg Kroah-Hartman , "Eric W. Biederman" , Andrew Morton List-Id: linux-api@vger.kernel.org T24gTW9uLCBEZWMgMSwgMjAxNCBhdCA4OjM5IEFNLCBLb25zdGFudGluIEtobGVibmlrb3YgPGtv Y3Q5aUBnbWFpbC5jb20+IHdyb3RlOgo+IE9uIE1vbiwgRGVjIDEsIDIwMTQgYXQgNzoyMSBQTSwg QW5keSBMdXRvbWlyc2tpIDxsdXRvQGFtYWNhcGl0YWwubmV0PiB3cm90ZToKPj4gT24gU3VuLCBO b3YgMzAsIDIwMTQgYXQgMTE6MDMgUE0sIEtvbnN0YW50aW4gS2hsZWJuaWtvdgo+PiA8a29jdDlp QGdtYWlsLmNvbT4gd3JvdGU6Cj4+PiBIbW0uIFdoYXQgYWJvdXQgcGVyLXRhc2svdGhyZWFkIFVV SUQ/IGV4cG9ydGVkIHZpYSBzZXBhcmF0ZSBmaWxlOiAvcHJvYy9QSUQvdXVpZAo+Pj4gSXQgY291 bGQgYmUgY3JlYXRlZCBhdCB0aGUgZmlyc3QgYWNjZXNzLCB0aHVzIHRoaXMgd291bGRuJ3Qgc2hs b3dkb3duIGNsb25lKCkuCj4+PiBBbHNvIGl0IGNvdWxkIGJlIGRyb3BlZCBhdCBleGVjdmUoKSwg c28gaXQnbGwgZGVzY3JpYmUgZXhlY3V0aW9uCj4+PiBjb250ZXh0IG1vcmUgcHJlY2lzZWx5IHRo YW4gcGlkLgo+Pj4KPj4KPj4gSSdkIGJlIGFsbCBmb3IgdGhpcyBpZiBpdCB3ZXJlbid0IGZvciB0 d28gaXNzdWVzOgo+Pgo+PiAxLiBUaGlzIHRoaW5nIG5lZWRzIHRvIHdvcmsgYXMgc29vbiBhcyBp bml0IGlzIHN0YXJ0ZWQsIGFuZCB3ZSBjYW4ndAo+PiByZWxpYWJseSBnZW5lcmF0ZSByYW5kb20g bnVtYmVycyB0aGF0IGVhcmx5Lgo+Pgo+PiAyLiBNaWdyYXRpb24gLyBDUklVIGlzIHJhdGhlciBm dW5kYW1lbnRhbGx5IGF0IG9kZHMgd2l0aCBtYWtpbmcKPj4gYW55dGhpbmcgdW5pdmVyc2FsbHkg dW5pcXVlLCBhcyBvcHBvc2VkIHRvIGp1c3QgcGVyLXVzZXItbnMuCj4+Cj4+IFNvLCBnaXZlbiB0 aGF0IEkgZG9uJ3QgdGhpbmsgd2UgY2FuIGFjdHVhbGx5IHByb3ZpZGUgYSB1bml2ZXJzYWxseQo+ PiB1bmlxdWUgcGlkLWxpa2UgdGhpbmcsIEknZCByYXRoZXIgbm90IGV2ZW4gdHJ5Lgo+Cj4gV2Vs bC4uLiBhbm90aGVyIGlkZWE6IHdoYXQgYWJvdXQgcGlkIGdlbmVyYXRpb24gY291bnRlcj8gT2Yg Y291cnNlIGl0Cj4gc2hvdWxkIGJlIHBlci1waWQtbnMuCj4gQXMgSSBzZWUgc3RydWN0IHVwaWQg aGFzIG5pY2UgMzItYml0IGhvbGUgbmV4dCB0byAnbnInIGZpZWxkLiAob24KPiA2NC1iaXQgc3lz dGVtcykKPgoKSSB0aG91Z2h0IGFib3V0IHRoYXQsIGJ1dCBpdCBoYXMgdHdvIGlzc3VlczoKCjEu IEltcGxlbWVudGluZyBpdCB3aWxsIGJlIHBhaW4uICBUaGUgcGlkIGFsbG9jYXRpb24gYWxnb3Jp dGhtIGlzCmFscmVhZHkgY29tcGxpY2F0ZWQsIGFuZCBpdCB3YXNuJ3Qgb2J2aW91cyB0byBtZSBo b3cgdG8gYWNjdXJhdGVseQpkZXRlY3Qgd3JhcGFyb3VuZCB3aXRob3V0IHJhY2luZyBhZ2FpbnN0 IG90aGVyIHdyYXBwaW5nIHVzZXJzLgoKMi4gSSBkb24ndCB0aGluayBpdCB3aWxsIGJlIHJlbGlh YmxlLiAgU3VwcG9zZSB0aGF0IHRoZXJlIGFyZSBwaWRfbWF4Ci0gMSBwcm9jZXNzZXMuICBPbmUg b2YgdGhlbSBjYW4gcmVwZWF0ZWRseSBjbG9uZSBhbmQgZXhpdCwKaW5jcmVtZW50aW5nIHRoZSBn ZW5lcmF0aW9uIGNvdW50ZXIgZWFjaCB0aW1lLiAgQWZ0ZXIgMl4zMiBpdGVyYXRpb25zLAp3aGlj aCB3b24ndCB0YWtlIGFsbCB0aGF0IGxvbmcsIHRoZSBwaWQgZ2VuZXJhdGlvbiB3aWxsIHdyYXAu CgotLUFuZHkKCj4+Cj4+IFRoYXQgYmVpbmcgc2FpZCwgSSB3YW50IHRvIHJld29yayB0aGlzIGEg bGl0dGxlIGJpdC4gIEkgdGhpbmsgdGhhdAo+PiBoaWdocGlkIHNob3VsZCBiZSByZXN0cmljdGVk IHRvIHRoZSByYW5nZSAyXjMyIHRocm91Z2ggMl42NCAtIDQwOTYuCj4+IFRoZSBmb3JtZXIgcHJl dmVudHMgYW55b25lIGZyb20gY29uZnVzaW5nIGhpZ2hwaWQgd2l0aCByZWd1bGFyIHBpZCwKPj4g YW5kIHRoZSBsYXR0ZXIgbWVhbnMgdGhhdCB3ZSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGNv bmZ1c2lvbgo+PiBiZXR3ZWVuIGVycm9ycyBhbmQgdmFsaWQgaGlnaHBpZHMgKGUuZy4gLTEgd2ls bCBuZXZlciBiZSBhIGhpZ2hwaWQpLgo+Pgo+PiBJbXBsZW1lbnRpbmcgdGhhdCB3aWxsIGJlIG9u bHkgbWlsZGx5IGFubm95aW5nLgo+Pgo+PiAtLUFuZHkKPj4KPj4+IE9uIFNhdCwgTm92IDI5LCAy MDE0IGF0IDI6MDUgQU0sIEFuZHkgTHV0b21pcnNraSA8bHV0b0BhbWFjYXBpdGFsLm5ldD4gd3Jv dGU6Cj4+Pj4gUGlkIHJldXNlIGlzIGNvbW1vbiwgd2hpY2ggbWVhbnMgdGhhdCBpdCdzIGRpZmZp Y3VsdCBvciBpbXBvc3NpYmxlCj4+Pj4gdG8gcmVhZCBpbmZvcm1hdGlvbiBhYm91dCBhIHBpZCBm cm9tIC9wcm9jIHdpdGhvdXQgcmFjZXMuCj4+Pj4KPj4+PiBUaGlzIGludHJvZHVjZXMgYSBzZWNv bmQgbnVtYmVyIGFzc29jaWF0ZWQgd2l0aCBlYWNoICh0YXNrLCBwaWRucykKPj4+PiBwYWlyIGNh bGxlZCBoaWdocGlkLiAgSGlnaHBpZCBpcyBhIDY0LWJpdCBudW1iZXIsIGFuZCwgYmFycmluZwo+ Pj4+IGV4dHJlbWVseSB1bmxpa2VseSBjaXJjdW1zdGFuY2VzIG9yIG91dHJpZ2h0IGVycm9yLCBh IChoaWdocGlkLCBwaWQpCj4+Pj4gd2lsbCBuZXZlciBiZSByZXVzZWQuCj4+Pj4KPj4+PiBXaXRo IGp1c3QgdGhpcyBjaGFuZ2UsIGEgcHJvZ3JhbSBjYW4gb3BlbiAvcHJvYy9QSUQvc3RhdHVzLCBy ZWFkIHRoZQo+Pj4+ICJIaWdocGlkIiBmaWVsZCwgYW5kIGNvbmZpcm0gdGhhdCBpdCBoYXMgdGhl IGV4cGVjdGVkIHZhbHVlLiAgSWYgdGhlCj4+Pj4gcGlkIGhhcyBiZWVuIHJldXNlZCwgdGhlbiBo aWdocGlkIHdpbGwgYmUgZGlmZmVyZW50Lgo+Pj4+Cj4+Pj4gVGhlIGluaXRpYWwgaW1wbGVtZW50 YXRpb24gaXMgc3RyYWlnaHRmb3J3YXJkOiBoaWdocGlkIGlzIHNpbXBseSBhCj4+Pj4gNjQtYml0 IGNvdW50ZXIuIElmIGEgaGlnaC1lbmQgc3lzdGVtIGNhbiBmb3JrIGV2ZXJ5IDMgbnMgKHdoaWNo Cj4+Pj4gd291bGQgYmUgYW1hemluZywgZ2l2ZW4gdGhhdCBqdXN0IGFsbG9jYXRpbmcgYSBwaWQg cmVxdWlyZXMgYXQKPj4+PiBhdG9taWMgb3BlcmF0aW9uKSwgaXQgd291bGQgdGFrZSB3ZWxsIG92 ZXIgMTAwMCB5ZWFycyBmb3IgaGlnaHBpZCB0bwo+Pj4+IHdyYXAuCj4+Pj4KPj4+PiBGb3IgQ1JJ VSdzIGJlbmVmaXQsIHRoZSBuZXh0IGhpZ2hwaWQgY2FuIGJlIHNldCBieSBhIHByaXZpbGVnZWQK Pj4+PiB1c2VyLgo+Pj4+Cj4+Pj4gTkI6IFRoZSBzeXNjdGwgc3R1ZmYgb25seSB3b3JrcyBvbiA2 NC1iaXQgc3lzdGVtcy4gIElmIHRoZSBhcHByb2FjaAo+Pj4+IGxvb2tzIGdvb2QsIEknbGwgZml4 IHRoYXQgc29tZWhvdy4KPj4+Pgo+Pj4+IFNpZ25lZC1vZmYtYnk6IEFuZHkgTHV0b21pcnNraSA8 bHV0b0BhbWFjYXBpdGFsLm5ldD4KPj4+PiAtLS0KPj4+Pgo+Pj4+IElmIHRoaXMgZ29lcyBpbiwg dGhlcmUncyBwbGVudHkgb2Ygcm9vbSB0byBhZGQgbmV3IGludGVyZmFjZXMgdG8KPj4+PiBtYWtl IHRoaXMgbW9yZSB1c2VmdWwuICBGb3IgZXhhbXBsZSwgd2UgY291bGQgYWRkIGEgZmFuY2llciB0 Z2tpbGwKPj4+PiB0aGF0IGFkZHMgYW5kIHZhbGlkYXRlcyBoaWdodGdpZCBhbmQgaGlnaHBpZCwg YW5kIHdlIG1pZ2h0IHdhbnQgdG8KPj4+PiBhZGQgYSBzeXNjYWxsIHRvIHJlYWQgb25lJ3Mgb3du IGhpZ2h0Z2lkIGFuZCBoaWdocGlkLiAgVGhlc2Ugd291bGQKPj4+PiBiZSBxdWl0ZSB1c2VmdWwg Zm9yIHBpZGZpbGVzLgo+Pj4+Cj4+Pj4gRGF2aWQsIHdvdWxkIHRoaXMgYmUgdXNlZnVsIGZvciBr ZGJ1cz8KPj4+Pgo+Pj4+IENSSVUgcGVvcGxlOiB3aWxsIHRoaXMgYmUgdW5kdWx5IGRpZmZpY3Vs dCB0byBzdXBwb3J0IGluIENSSVU/Cj4+Pj4KPj4+PiBJZiB5b3UgYWxsIHRoaW5rIHRoaXMgaXMg YSBnb29kIGlkZWEsIEknbGwgZml4IHRoZSBzeXNjdGwgc3R1ZmYgYW5kCj4+Pj4gZG9jdW1lbnQg aXQuICBJdCBtaWdodCBhbHNvIGJlIHdvcnRoIGFkZGluZyAiSGlnaHRnaWQiIHRvIHN0YXR1cy4K Pj4+Pgo+Pj4+ICBmcy9wcm9jL2FycmF5LmMgICAgICAgICAgICAgICB8ICA1ICsrKystCj4+Pj4g IGluY2x1ZGUvbGludXgvcGlkLmggICAgICAgICAgIHwgIDIgKysKPj4+PiAgaW5jbHVkZS9saW51 eC9waWRfbmFtZXNwYWNlLmggfCAgMSArCj4+Pj4gIGtlcm5lbC9waWQuYyAgICAgICAgICAgICAg ICAgIHwgMTkgKysrKysrKysrKysrKysrLS0tLQo+Pj4+ICBrZXJuZWwvcGlkX25hbWVzcGFjZS5j ICAgICAgICB8IDIyICsrKysrKysrKysrKysrKysrKysrKysKPj4+PiAgNSBmaWxlcyBjaGFuZ2Vk LCA0NCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBh L2ZzL3Byb2MvYXJyYXkuYyBiL2ZzL3Byb2MvYXJyYXkuYwo+Pj4+IGluZGV4IGNkMzY1M2U0ZjM1 Yy4uZjFlMGU2OWQxOWY5IDEwMDY0NAo+Pj4+IC0tLSBhL2ZzL3Byb2MvYXJyYXkuYwo+Pj4+ICsr KyBiL2ZzL3Byb2MvYXJyYXkuYwo+Pj4+IEBAIC0xNTksNiArMTU5LDcgQEAgc3RhdGljIGlubGlu ZSB2b2lkIHRhc2tfc3RhdGUoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgcGlkX25hbWVzcGFj ZSAqbnMsCj4+Pj4gICAgICAgICBpbnQgZzsKPj4+PiAgICAgICAgIHN0cnVjdCBmZHRhYmxlICpm ZHQgPSBOVUxMOwo+Pj4+ICAgICAgICAgY29uc3Qgc3RydWN0IGNyZWQgKmNyZWQ7Cj4+Pj4gKyAg ICAgICBjb25zdCBzdHJ1Y3QgdXBpZCAqdXBpZDsKPj4+PiAgICAgICAgIHBpZF90IHBwaWQsIHRw aWQ7Cj4+Pj4KPj4+PiAgICAgICAgIHJjdV9yZWFkX2xvY2soKTsKPj4+PiBAQCAtMTcwLDEyICsx NzEsMTQgQEAgc3RhdGljIGlubGluZSB2b2lkIHRhc2tfc3RhdGUoc3RydWN0IHNlcV9maWxlICpt LCBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMsCj4+Pj4gICAgICAgICAgICAgICAgIGlmICh0cmFj ZXIpCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgdHBpZCA9IHRhc2tfcGlkX25yX25zKHRy YWNlciwgbnMpOwo+Pj4+ICAgICAgICAgfQo+Pj4+ICsgICAgICAgdXBpZCA9IHBpZF91cGlkX25z KHBpZCwgbnMpOwo+Pj4+ICAgICAgICAgY3JlZCA9IGdldF90YXNrX2NyZWQocCk7Cj4+Pj4gICAg ICAgICBzZXFfcHJpbnRmKG0sCj4+Pj4gICAgICAgICAgICAgICAgICJTdGF0ZTpcdCVzXG4iCj4+ Pj4gICAgICAgICAgICAgICAgICJUZ2lkOlx0JWRcbiIKPj4+PiAgICAgICAgICAgICAgICAgIk5n aWQ6XHQlZFxuIgo+Pj4+ICAgICAgICAgICAgICAgICAiUGlkOlx0JWRcbiIKPj4+PiArICAgICAg ICAgICAgICAgIkhpZ2hwaWQ6XHQlbGx1XG4iCj4+Pj4gICAgICAgICAgICAgICAgICJQUGlkOlx0 JWRcbiIKPj4+PiAgICAgICAgICAgICAgICAgIlRyYWNlclBpZDpcdCVkXG4iCj4+Pj4gICAgICAg ICAgICAgICAgICJVaWQ6XHQlZFx0JWRcdCVkXHQlZFxuIgo+Pj4+IEBAIC0xODMsNyArMTg2LDcg QEAgc3RhdGljIGlubGluZSB2b2lkIHRhc2tfc3RhdGUoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1 Y3QgcGlkX25hbWVzcGFjZSAqbnMsCj4+Pj4gICAgICAgICAgICAgICAgIGdldF90YXNrX3N0YXRl KHApLAo+Pj4+ICAgICAgICAgICAgICAgICB0YXNrX3RnaWRfbnJfbnMocCwgbnMpLAo+Pj4+ICAg ICAgICAgICAgICAgICB0YXNrX251bWFfZ3JvdXBfaWQocCksCj4+Pj4gLSAgICAgICAgICAgICAg IHBpZF9ucl9ucyhwaWQsIG5zKSwKPj4+PiArICAgICAgICAgICAgICAgdXBpZCA/IHVwaWQtPm5y IDogMCwgdXBpZCA/IHVwaWQtPmhpZ2huciA6IDAsCj4+Pj4gICAgICAgICAgICAgICAgIHBwaWQs IHRwaWQsCj4+Pj4gICAgICAgICAgICAgICAgIGZyb21fa3VpZF9tdW5nZWQodXNlcl9ucywgY3Jl ZC0+dWlkKSwKPj4+PiAgICAgICAgICAgICAgICAgZnJvbV9rdWlkX211bmdlZCh1c2VyX25zLCBj cmVkLT5ldWlkKSwKPj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9waWQuaCBiL2luY2x1 ZGUvbGludXgvcGlkLmgKPj4+PiBpbmRleCAyMzcwNWE1M2FiYmEuLmVjZTcwYjY0ZDA0YyAxMDA2 NDQKPj4+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L3BpZC5oCj4+Pj4gKysrIGIvaW5jbHVkZS9saW51 eC9waWQuaAo+Pj4+IEBAIC01MSw2ICs1MSw3IEBAIHN0cnVjdCB1cGlkIHsKPj4+PiAgICAgICAg IC8qIFRyeSB0byBrZWVwIHBpZF9jaGFpbiBpbiB0aGUgc2FtZSBjYWNoZWxpbmUgYXMgbnIgZm9y IGZpbmRfdnBpZCAqLwo+Pj4+ICAgICAgICAgaW50IG5yOwo+Pj4+ICAgICAgICAgc3RydWN0IHBp ZF9uYW1lc3BhY2UgKm5zOwo+Pj4+ICsgICAgICAgdTY0IGhpZ2hucjsKPj4+PiAgICAgICAgIHN0 cnVjdCBobGlzdF9ub2RlIHBpZF9jaGFpbjsKPj4+PiAgfTsKPj4+Pgo+Pj4+IEBAIC0xNzAsNiAr MTcxLDcgQEAgc3RhdGljIGlubGluZSBwaWRfdCBwaWRfbnIoc3RydWN0IHBpZCAqcGlkKQo+Pj4+ ICB9Cj4+Pj4KPj4+PiAgcGlkX3QgcGlkX25yX25zKHN0cnVjdCBwaWQgKnBpZCwgc3RydWN0IHBp ZF9uYW1lc3BhY2UgKm5zKTsKPj4+PiArY29uc3Qgc3RydWN0IHVwaWQgKnBpZF91cGlkX25zKHN0 cnVjdCBwaWQgKnBpZCwgc3RydWN0IHBpZF9uYW1lc3BhY2UgKm5zKTsKPj4+PiAgcGlkX3QgcGlk X3ZucihzdHJ1Y3QgcGlkICpwaWQpOwo+Pj4+Cj4+Pj4gICNkZWZpbmUgZG9fZWFjaF9waWRfdGFz ayhwaWQsIHR5cGUsIHRhc2spICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+Pj4+IGRp ZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BpZF9uYW1lc3BhY2UuaCBiL2luY2x1ZGUvbGludXgv cGlkX25hbWVzcGFjZS5oCj4+Pj4gaW5kZXggMTk5N2ZmYzI5NWE3Li4xZjlmMDQ1NWQ3ZWYgMTAw NjQ0Cj4+Pj4gLS0tIGEvaW5jbHVkZS9saW51eC9waWRfbmFtZXNwYWNlLmgKPj4+PiArKysgYi9p bmNsdWRlL2xpbnV4L3BpZF9uYW1lc3BhY2UuaAo+Pj4+IEBAIC0yNiw2ICsyNiw3IEBAIHN0cnVj dCBwaWRfbmFtZXNwYWNlIHsKPj4+PiAgICAgICAgIHN0cnVjdCByY3VfaGVhZCByY3U7Cj4+Pj4g ICAgICAgICBpbnQgbGFzdF9waWQ7Cj4+Pj4gICAgICAgICB1bnNpZ25lZCBpbnQgbnJfaGFzaGVk Owo+Pj4+ICsgICAgICAgYXRvbWljNjRfdCBuZXh0X2hpZ2hwaWQ7Cj4+Pj4gICAgICAgICBzdHJ1 Y3QgdGFza19zdHJ1Y3QgKmNoaWxkX3JlYXBlcjsKPj4+PiAgICAgICAgIHN0cnVjdCBrbWVtX2Nh Y2hlICpwaWRfY2FjaGVwOwo+Pj4+ICAgICAgICAgdW5zaWduZWQgaW50IGxldmVsOwo+Pj4+IGRp ZmYgLS1naXQgYS9rZXJuZWwvcGlkLmMgYi9rZXJuZWwvcGlkLmMKPj4+PiBpbmRleCA5YjlhMjY2 OTgxNDQuLjg2M2QxMWE5YmZiZiAxMDA2NDQKPj4+PiAtLS0gYS9rZXJuZWwvcGlkLmMKPj4+PiAr KysgYi9rZXJuZWwvcGlkLmMKPj4+PiBAQCAtMzEyLDYgKzMxMiw4IEBAIHN0cnVjdCBwaWQgKmFs bG9jX3BpZChzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMpCj4+Pj4KPj4+PiAgICAgICAgICAgICAg ICAgcGlkLT5udW1iZXJzW2ldLm5yID0gbnI7Cj4+Pj4gICAgICAgICAgICAgICAgIHBpZC0+bnVt YmVyc1tpXS5ucyA9IHRtcDsKPj4+PiArICAgICAgICAgICAgICAgcGlkLT5udW1iZXJzW2ldLmhp Z2huciA9Cj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgYXRvbWljNjRfaW5jX3JldHVybigm dG1wLT5uZXh0X2hpZ2hwaWQpIC0gMTsKPj4+PiAgICAgICAgICAgICAgICAgdG1wID0gdG1wLT5w YXJlbnQ7Cj4+Pj4gICAgICAgICB9Cj4+Pj4KPj4+PiBAQCAtNDkyLDE3ICs0OTQsMjYgQEAgc3Ry dWN0IHBpZCAqZmluZF9nZXRfcGlkKHBpZF90IG5yKQo+Pj4+ICB9Cj4+Pj4gIEVYUE9SVF9TWU1C T0xfR1BMKGZpbmRfZ2V0X3BpZCk7Cj4+Pj4KPj4+PiAtcGlkX3QgcGlkX25yX25zKHN0cnVjdCBw aWQgKnBpZCwgc3RydWN0IHBpZF9uYW1lc3BhY2UgKm5zKQo+Pj4+ICtjb25zdCBzdHJ1Y3QgdXBp ZCAqcGlkX3VwaWRfbnMoc3RydWN0IHBpZCAqcGlkLCBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMp Cj4+Pj4gIHsKPj4+PiAgICAgICAgIHN0cnVjdCB1cGlkICp1cGlkOwo+Pj4+IC0gICAgICAgcGlk X3QgbnIgPSAwOwo+Pj4+Cj4+Pj4gICAgICAgICBpZiAocGlkICYmIG5zLT5sZXZlbCA8PSBwaWQt PmxldmVsKSB7Cj4+Pj4gICAgICAgICAgICAgICAgIHVwaWQgPSAmcGlkLT5udW1iZXJzW25zLT5s ZXZlbF07Cj4+Pj4gICAgICAgICAgICAgICAgIGlmICh1cGlkLT5ucyA9PSBucykKPj4+PiAtICAg ICAgICAgICAgICAgICAgICAgICBuciA9IHVwaWQtPm5yOwo+Pj4+ICsgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiB1cGlkOwo+Pj4+ICAgICAgICAgfQo+Pj4+IC0gICAgICAgcmV0dXJuIG5y Owo+Pj4+ICsgICAgICAgcmV0dXJuIE5VTEw7Cj4+Pj4gK30KPj4+PiArRVhQT1JUX1NZTUJPTF9H UEwocGlkX3VwaWRfbnMpOwo+Pj4+ICsKPj4+PiArcGlkX3QgcGlkX25yX25zKHN0cnVjdCBwaWQg KnBpZCwgc3RydWN0IHBpZF9uYW1lc3BhY2UgKm5zKQo+Pj4+ICt7Cj4+Pj4gKyAgICAgICBjb25z dCBzdHJ1Y3QgdXBpZCAqdXBpZCA9IHBpZF91cGlkX25zKHBpZCwgbnMpOwo+Pj4+ICsKPj4+PiAr ICAgICAgIGlmICghdXBpZCkKPj4+PiArICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4+Pj4gKyAg ICAgICByZXR1cm4gdXBpZC0+bnI7Cj4+Pj4gIH0KPj4+PiAgRVhQT1JUX1NZTUJPTF9HUEwocGlk X25yX25zKTsKPj4+Pgo+Pj4+IGRpZmYgLS1naXQgYS9rZXJuZWwvcGlkX25hbWVzcGFjZS5jIGIv a2VybmVsL3BpZF9uYW1lc3BhY2UuYwo+Pj4+IGluZGV4IGRiOTVkOGViNzYxYi4uZTI0NjgwMmI0 MzYxIDEwMDY0NAo+Pj4+IC0tLSBhL2tlcm5lbC9waWRfbmFtZXNwYWNlLmMKPj4+PiArKysgYi9r ZXJuZWwvcGlkX25hbWVzcGFjZS5jCj4+Pj4gQEAgLTI2OCw2ICsyNjgsMjIgQEAgc3RhdGljIGlu dCBwaWRfbnNfY3RsX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwK Pj4+PiAgICAgICAgIHJldHVybiBwcm9jX2RvaW50dmVjX21pbm1heCgmdG1wLCB3cml0ZSwgYnVm ZmVyLCBsZW5wLCBwcG9zKTsKPj4+PiAgfQo+Pj4+Cj4+Pj4gK3N0YXRpYyBpbnQgcGlkX25zX25l eHRfaGlnaHBpZF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCj4+ Pj4gKyAgICAgICAgICAgICAgIHZvaWQgX191c2VyICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9m Zl90ICpwcG9zKQo+Pj4+ICt7Cj4+Pj4gKyAgICAgICBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqcGlk X25zID0gdGFza19hY3RpdmVfcGlkX25zKGN1cnJlbnQpOwo+Pj4+ICsgICAgICAgc3RydWN0IGN0 bF90YWJsZSB0bXAgPSAqdGFibGU7Cj4+Pj4gKwo+Pj4+ICsgICAgICAgaWYgKHdyaXRlICYmICFu c19jYXBhYmxlKHBpZF9ucy0+dXNlcl9ucywgQ0FQX1NZU19BRE1JTikpCj4+Pj4gKyAgICAgICAg ICAgICAgIHJldHVybiAtRVBFUk07Cj4+Pj4gKwo+Pj4+ICsgICAgICAgLyogVGhpcyBuZWVkcyB0 byBiZSBmaXhlZC4gKi8KPj4+PiArICAgICAgIEJVSUxEX0JVR19PTihzaXplb2YodTY0KSAhPSBz aXplb2YodW5zaWduZWQgbG9uZykpOwo+Pj4+ICsKPj4+PiArICAgICAgIHRtcC5kYXRhID0gJnBp ZF9ucy0+bmV4dF9oaWdocGlkOwo+Pj4+ICsgICAgICAgcmV0dXJuIHByb2NfZG9pbnR2ZWMoJnRt cCwgd3JpdGUsIGJ1ZmZlciwgbGVucCwgcHBvcyk7Cj4+Pj4gK30KPj4+PiArCj4+Pj4gIGV4dGVy biBpbnQgcGlkX21heDsKPj4+PiAgc3RhdGljIGludCB6ZXJvID0gMDsKPj4+PiAgc3RhdGljIHN0 cnVjdCBjdGxfdGFibGUgcGlkX25zX2N0bF90YWJsZVtdID0gewo+Pj4+IEBAIC0yNzksNiArMjk1 LDEyIEBAIHN0YXRpYyBzdHJ1Y3QgY3RsX3RhYmxlIHBpZF9uc19jdGxfdGFibGVbXSA9IHsKPj4+ PiAgICAgICAgICAgICAgICAgLmV4dHJhMSA9ICZ6ZXJvLAo+Pj4+ICAgICAgICAgICAgICAgICAu ZXh0cmEyID0gJnBpZF9tYXgsCj4+Pj4gICAgICAgICB9LAo+Pj4+ICsgICAgICAgewo+Pj4+ICsg ICAgICAgICAgICAgICAucHJvY25hbWUgPSAibnNfbmV4dF9oaWdocGlkIiwKPj4+PiArICAgICAg ICAgICAgICAgLm1heGxlbiA9IHNpemVvZih1NjQpLAo+Pj4+ICsgICAgICAgICAgICAgICAubW9k ZSA9IDA2NjYsIC8qIHBlcm1pc3Npb25zIGFyZSBjaGVja2VkIGluIHRoZSBoYW5kbGVyICovCj4+ Pj4gKyAgICAgICAgICAgICAgIC5wcm9jX2hhbmRsZXIgPSBwaWRfbnNfbmV4dF9oaWdocGlkX2hh bmRsZXIsCj4+Pj4gKyAgICAgICB9LAo+Pj4+ICAgICAgICAgeyB9Cj4+Pj4gIH07Cj4+Pj4gIHN0 YXRpYyBzdHJ1Y3QgY3RsX3BhdGgga2Vybl9wYXRoW10gPSB7IHsgLnByb2NuYW1lID0gImtlcm5l bCIsIH0sIHsgfSB9Owo+Pj4+IC0tCj4+Pj4gMS45LjMKPj4+Pgo+Pj4+IC0tCj4+Pj4gVG8gdW5z dWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4 LWtlcm5lbCIgaW4KPj4+PiB0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIu a2VybmVsLm9yZwo+Pj4+IE1vcmUgbWFqb3Jkb21vIGluZm8gYXQgIGh0dHA6Ly92Z2VyLmtlcm5l bC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbAo+Pj4+IFBsZWFzZSByZWFkIHRoZSBGQVEgYXQgIGh0 dHA6Ly93d3cudHV4Lm9yZy9sa21sLwo+Pgo+Pgo+Pgo+PiAtLQo+PiBBbmR5IEx1dG9taXJza2kK Pj4gQU1BIENhcGl0YWwgTWFuYWdlbWVudCwgTExDCgoKCi0tIApBbmR5IEx1dG9taXJza2kKQU1B IENhcGl0YWwgTWFuYWdlbWVudCwgTExDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCnN5c3RlbWQtZGV2ZWwgbWFpbGluZyBsaXN0CnN5c3RlbWQtZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9zeXN0ZW1kLWRldmVsCg==