From mboxrd@z Thu Jan 1 00:00:00 1970 From: ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org (Eric W. Biederman) Subject: Re: [PATCH 1/4] proc.5: Document /proc/[pid]/uid_map and /proc/[pid]/gid_map Date: Tue, 01 Jan 2013 02:12:10 -0800 Message-ID: <87r4m51abp.fsf@xmission.com> References: <87a9u4rmz0.fsf@xmission.com> <874nkbrhyv.fsf@xmission.com> <87obhfxwhb.fsf@xmission.com> <87vcbldgbj.fsf@xmission.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: (Michael Kerrisk's message of "Tue, 1 Jan 2013 10:37:02 +0100") List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org Cc: Linux API , Linux Containers List-Id: containers.vger.kernel.org Ik1pY2hhZWwgS2VycmlzayAobWFuLXBhZ2VzKSIgPG10ay5tYW5wYWdlc0BnbWFpbC5jb20+IHdy aXRlczoKCj4gSGkgRXJpYywKPgo+IE9uIEZyaSwgRGVjIDI4LCAyMDEyIGF0IDEwOjIwIFBNLCBF cmljIFcuIEJpZWRlcm1hbgo+IDxlYmllZGVybUB4bWlzc2lvbi5jb20+IHdyb3RlOgo+PiAiTWlj aGFlbCBLZXJyaXNrIChtYW4tcGFnZXMpIiA8bXRrLm1hbnBhZ2VzQGdtYWlsLmNvbT4gd3JpdGVz Ogo+Cj4gWy4uLl0KPgo+Pj4+IEZvciB3cml0aW5nIHlvdSBhcmUgY29ycmVjdCBhYm91dCB0aGUg bWFwcGluZyB0byB0aGUgcGFyZW50IChidXQgdGhhdCBpcwo+Pj4+IG5vdCBhbiBleGNlcHRpb24g dGhhdCBpcyBhIHJlc3RyaWN0aW9uIG9uIHdobyBjYW4gd3JpdGUgdG8gdGhlIGZpbGUpLgo+Pj4K Pj4+IFNvLCBieSB0aGUgd2F5LCBJIGFkZGVkIHRoaXMgc2VudGVuY2UgdG8gdGhlIHBhZ2U6Cj4+ Pgo+Pj4gICAgICAgICAgICAgICBJbiAgIG9yZGVyICAgdG8gICB3cml0ZSAgIHRvICAgdGhlICAg L3Byb2MvW3BpZF0vdWlkX21hcAo+Pj4gICAgICAgICAgICAgICAoL3Byb2MvW3BpZF0vZ2lkX21h cCkgZmlsZSwgIGEgIHByb2Nlc3MgIG11c3QgIGhhdmUgIHRoZQo+Pj4gICAgICAgICAgICAgICBD QVBfU0VUVUlEIChDQVBfU0VUR0lEKSBjYXBhYmlsaXR5IGluIHRoZSB1c2VyIG5hbWVzcGFjZQo+ Pj4gICAgICAgICAgICAgICBvZiB0aGUgcHJvY2VzcyBwaWQuCj4+Pgo+Pj4gSXMgdGhhdCBjb3Jy ZWN0Pwo+Pgo+PiBZZXMuCj4+Cj4+PiBCdXQsIHRoZXJlIGFwcGVhciB0byBiZSBtb3JlIHJ1bGVz IHRoYW4gdGhpcyBnb3Zlcm5pbmcgd2hldGhlciBhCj4+PiBwcm9jZXNzIGNhbiB3cml0ZSB0byB0 aGUgZmlsZSAoaS5lLiwgdmFyaW91cyBvdGhlciAtRVBFUk0gY2FzZXMpLiBXaGF0Cj4+PiBhcmUg dGhlIHJ1bGVzPwo+Pgo+PiBJbiBnZW5lcmFsIHlvdSBtdXN0IGFsc28gaGF2ZSBDQVBfU0VUVUlE IChDQVBfU0VUR0lEKSBpbiB0aGUgcGFyZW50IHVzZXIKPj4gbmFtZXNwYWNlIGFzIHdlbGwuICBU aGUgb25lIGV4Y2VwdGlvbiB0byB0aGF0IGlzIGlmIHlvdSBhcmUgbWFwcGluZwo+PiB5b3VyIGN1 cnJlbnQgdWlkIGFuZCBnaWQuCj4KPiBDYW4geW91IGNsYXJpZnkgd2hhdCB5b3UgbWVhbiBieSAi bWFwcGluZyB5b3VyIG93biBVSUQgYW5kIEdJRCIgcGxlYXNlCj4gKGkuZS4sIHdobyBpcyAieW91 IiBpbiB0aGF0IHNlbnRlbmNlKS4KCkF0IHRoZSB0aW1lIG9mIGNsb25lKCkgb3IgdW5zaGFyZSgp IHRoYXQgY3JlYXRlcyBhIG5ldyB1c2VyIG5hbWVzcGFjZSwKdGhlIGt1aWQgYW5kIHRoZSBrZ2lk IG9mIHRoZSBwcm9jZXNzIGRvZXMgbm90IGNoYW5nZS4KCnNldHVpZCBhbmQgc2V0Z2lkIGZhaWwg YmVmb3JlIGFueSBtYXBwaW5ncyBhcmUgc2V0IHVwLgoKVGhlcmVmb3JlIHRoZSBjYWxsZXIgaXMg YWxsb3dlZCB0byBtYXAgYW55IHNpbmdsZSB1aWQgdG8gdGhlIHVpZCBvZiB0aGUKY2FsbGVyIGlu IHRoZSBwYXJlbnQgdXNlciBuYW1lc3BhY2UuICBMaWtld2lzZSB0aGUgY2FsbGVyIGlzIGFsbG93 ZWQgdG8KbWFwIGFueSBzaW5nbGUgZ2lkIHRvIHRoZSBnaWQgb2YgdGhlIGNhbGxlciBpbiB0aGUg cGFyZW50IHVzZXIKbmFtZXNwYWNlLgoKPj4gQSByb3NlIGJ5IGFueSBvdGhlciBuYW1lIHdpbGwg c21lbGwgYXMKPj4gc3dlZXQuICBJbiBwcmFjdGljZSB0aGlzIG1lYW5zIHlvdSBtdXN0IGJlIHJv b3QgdG8gbWFwIHRvIHVpZCBvciBnaWRzCj4+IG90aGVyIHRoYW4geW91ciBvd24sIHdoaWNoIHBy ZXNlcnZlcyB0aGUgY3VycmVudCBsaW1pdHMgb24gc2V0dWlkIGFuZAo+PiBzZXRnaWQuCj4+Cj4+ IEFkZGl0aW9uYWxseSB0aGUgd3JpdGVyIG11c3Qgc2VlIHRoZSBtYXAgZmlsZSB3aXRoIHRoZSBs b3dlciB1c2VyCj4+IG5hbWVzcGFjZSBiZWluZyB0aGUgcGFyZW50IHVzZXIgbmFtZXNwYWNlLiAg V2hpY2ggbWVhbnMgeW91IG11c3QgYmUKPj4gaW5zaWRlIHRoZSB1c2VyIG5hbWVzcGFjZSBpdHNl bGYgb3IgaW4gdGhlIHBhcmVudCB1c2VyIG5hbWVzcGFjZSB0bwo+PiB3cml0ZSB0byB0aGUgdXNl ciBuYW1lc3BhY2VzIG1hcHBpbmcgZmlsZS4KPgo+IE9rYXkgLS0gSSBhZGRlZCBzb21lIHdvcmRz IG9uIHRoaXMgcG9pbnQuCj4KPj4gRm9yIC9wcm9jL1twaWRdL3Byb2ppZF9tYXAgd2hpY2ggd2ls bCBiZSBpbnRlcmVzdGluZyBvbmNlIHhmcwo+PiBoYXMga3VpZC9rZ2lkIHN1cHBvcnQgdGhlcmUg YXJlIG5vIGNhcGFiaWxpdHkgY2hlY2tzIGJlY2F1c2UgeGZzIGxldCdzCj4+IGFueW9uZSBoYXZl IGFueSBwcm9qaWQuCj4+Cj4+IFRoaXMgaXMgb25lIG9mIHRoZSBmZXcgY2FzZXMgd2hlcmUgaXQg YWxtb3N0IG1hdHRlcnMgdG8gdW5kZXJzdGFuZAo+PiBob3cgbnNfY2FwYWJsZSB3b3JrcyB3aGVu IHlvdSBhcmUgbm90IGluIHRoZSB1c2VyIG5hbWVzcGFjZSBpbiBxdWVzdGlvbiwKPj4gYW5kIHRo YXQgZ29lcyB0byB3aGF0IGlzIGEgcGFyZW50IHVzZXIgbmFtZXNwYWNlLiAgSWYgeW91IHdvdWxk IGxpa2UKPj4gc29tZSBtb3JlIGRldGFpbCBvbiB0aGF0IHBsZWFzZSBhc2suCj4+Cj4+Pj4gVGhl IGNvbXBsZXRlIHJ1bGUgaXMgZm9yIHRoZSB1c2VyIG5hbWVzcGFjZSBvZiB0aGUgc2Vjb25kIHZh bHVlIGlzOgo+Pj4+Cj4+Pj4gLSBJZiB0aGUgdXNlciBuYW1lc3BhY2Ugb2YgdGhlIG9wZW5lciBv ZiB0aGUgZmlsZSBhbmQgdGhlIHVzZXIgbmFtZXNwYWNlCj4+Pj4gICBvZiB0aGUgcHJvY2VzcyBk byBub3QgbWF0Y2guICBUaGUgdXNlciBuYW1lc3BhY2Ugb2YgdGhlIG9wZW5lciBvZiB0aGUKPj4+ PiAgIGZpbGUgaXMgdXNlZC4KPj4+Pgo+Pj4+IC0gSWYgdGhlIHVzZXIgbmFtZXNwYWNlIG9mIHRo ZSBvcGVuZXIgb2YgdGhlIGZpbGUgYW5kIHRoZSB1c2VyIG5hbWVzcGFjZQo+Pj4+ICAgb2YgdGhl IHByb2Nlc3MgYXJlIHRoZSBzYW1lLiAgVGhlIHBhcmVudCB1c2VyIG5hbWVzcGFjZSBvZiB0aGUg cHJvY2Vzcwo+Pj4+ICAgaXMgdXNlZCBmb3IgdGhlIHNlY29uZCB2YWx1ZS4KPj4+Cj4+PiBDb3Vs ZCB5b3UgZ2l2ZSBhbiBleGFtcGxlIG9mIHRoZSBsYXN0IGNhc2U/IChXaGF0IEknbSByZWFsbHkg c2Vla2luZywKPj4+IEkgdGhpbmssIGlzIGNsYXJpZmljYXRpb24gb2YgInBhcmVudCB1c2VyIG5h bWVzcGFjZSIuIERvZXMgdGhhdCBtZWFuCj4+PiAidXNlciBuYW1lc3BhY2Ugb2YgdGhlIHByb2Nl c3MgdGhhdCBjcmVhdGVkIHRoZSB1c2VyIG5hbWVzcGFjZSBvZiB0aGlzCj4+PiBwcm9jZXNzIj8p Cj4+Cj4+IFVzZXIgbmFtZXNwYWNlcyBmb3JtIGEgdHJlZS4gIFdoYXQgeW91IGNhbiBkbyBpbiBv bmUgdXNlciBuYW1lc3BhY2UgaXMgYQo+PiBzdWJzZXQgb2Ygd2hhdCB5b3UgY2FuIGRvIGluIHRo ZSBwYXJlbnQgdXNlciBuYW1lc3BhY2UuCj4+Cj4+IFRoZSBwYXJlbnQgdXNlciBuYW1lc3BhY2Ug aXMgdGhlIHVzZXIgbmFtZXNwYWNlIG9mIHRoZSBwcm9jZXNzIHRoYXQKPj4gY2FsbHMgdW5zaGFy ZSBvciBjbG9uZSB3aXRoIENMT05FX05FV1VTRVIuCj4KPiBUaGFua3MuCj4KPj4gVGhlIGxhc3Qg Y2FzZSBpcyB0aGUgY29tbW9uIGNhc2Ugb2YgL3Byb2Mvc2VsZi91aWRfbWFwLiAgQW5kIHlvdSBz ZWUgaG93Cj4+IHlvdXIgdWlkcyBtYXAgaW50byB0aGUgdXNlciBuYW1lc3BhY2Ugb2YgdGhlIGNy ZWF0b3Igb2YgeW91ciB1c2VyCj4+IG5hbWVzcGFjZS4KPgo+IE9rYXkgLS0gZ290IGl0IG5vdy4K Pgo+PiBXaXRoIHRoZSBkZWZhdWx0IGJlaW5nIGp1c3Q6ICAgICAgICAgMCAgICAgICAgICAwIDQy OTQ5NjcyOTUKPgo+IFJpZ2h0Lgo+Cj4+Pj4gV2hpbGUgdmVyeSB3b3JkeSBJIHRoaW5rIHRoZSBy dWxlIG1ha2VzIGEgbG90IG9mIGludHVpdGl2ZSBhbmQgcHJhY3RpY2FsCj4+Pj4gc2Vuc2UuICBF c3BlY2lhbGx5IHNpbmNlIGl0IGlzIG5vbi10cml2aWFsIHRvIGNvbWUgdXAgd2l0aCB0aGUgY2hh aW4gb2YKPj4+PiB1c2VyIG5hbWVzcGFjZXMgYSBwcm9jZXNzIGlzIGluLgo+Cj4gWWVzLCBJIHNl ZSB3aGF0IHlvdSBtZWFuLgo+Cj4gWy4uLl0KPgo+PiBUaGFuayB5b3UgdmVyeSBtdWNoIGZvciB5 b3VyIHRpbWUgYW5kIHBhdGllbmNlIGluIGdldHRpbmcgYSBnb29kCj4+IGRlc2NyaXB0aW9uIG9m IHRoZSB1c2VyIG5hbWVzcGFjZS4KPgo+IFdlbGwsIHdlJ3JlIG5vdCBkb25lIHlldCwgYnV0IHdl J3JlIGdldHRpbmcgdGhlcmUuIEJlbG93LCBJJ3ZlIHBhc3RlZAo+IHRoZSBjdXJyZW50IHRleHQg ZnJvbSBwcm9jKDUpLiBDb3VsZCB5b3UgcGxlYXNlIHRha2UgYSBsb29rLCBhbmQgbGV0Cj4gbWUg a25vdyBvZiBhbnkgZXJyb3JzIG9yIGltcHJvdmVtZW50cy4KPgo+IENoZWVycywKPgo+IE1pY2hh ZWwKPgo+ICAgICAgICAvcHJvYy9bcGlkXS91aWRfbWFwLCAvcHJvYy9bcGlkXS9naWRfbWFwIChz aW5jZSBMaW51eCAzLjUpCj4gICAgICAgICAgICAgICBUaGVzZSAgZmlsZXMgIGV4cG9zZSB0aGUg bWFwcGluZ3MgZm9yIHVzZXIgYW5kIGdyb3VwIElEcwo+ICAgICAgICAgICAgICAgaW5zaWRlIHRo ZSB1c2VyIG5hbWVzcGFjZSAgZm9yICB0aGUgIHByb2Nlc3MgIHBpZC4gICBUaGUKPiAgICAgICAg ICAgICAgIGRlc2NyaXB0aW9uICBoZXJlICBleHBsYWlucyAgdGhlICBkZXRhaWxzICBmb3IgIHVp ZF9tYXA7Cj4gICAgICAgICAgICAgICBnaWRfbWFwIGlzIGV4YWN0bHkgdGhlIHNhbWUsIGJ1dCBl YWNoIGluc3RhbmNlIG9mICAidXNlcgo+ICAgICAgICAgICAgICAgSUQiIGlzIHJlcGxhY2VkIGJ5 ICJncm91cCBJRCIuCj4KPiAgICAgICAgICAgICAgIFRoZSAgdWlkX21hcCAgZmlsZSAgZXhwb3Nl cyB0aGUgbWFwcGluZyBvZiB1c2VyIElEcyBmcm9tCj4gICAgICAgICAgICAgICB0aGUgdXNlciBu YW1lc3BhY2Ugb2YgdGhlIHByb2Nlc3MgcGlkIHRvIHRoZSB1c2VyIG5hbWVz4oCQCj4gICAgICAg ICAgICAgICBwYWNlIG9mIHRoZSBwcm9jZXNzIHRoYXQgb3BlbmVkIHVpZF9tYXAgKGJ1dCBzZWUg YSBxdWFs4oCQCj4gICAgICAgICAgICAgICBpZmljYXRpb24gdG8gdGhpcyBwb2ludCBiZWxvdyku ICBJbiAgb3RoZXIgIHdvcmRzLCAgcHJv4oCQCj4gICAgICAgICAgICAgICBjZXNzZXMgdGhhdCBh cmUgaW4gZGlmZmVyZW50IHVzZXIgbmFtZXNwYWNlcyB3aWxsIHBvdGVu4oCQCj4gICAgICAgICAg ICAgICB0aWFsbHkgc2VlIGRpZmZlcmVudCB2YWx1ZXMgd2hlbiByZWFkaW5nIGZyb20gYSBwYXJ0 aWN14oCQCj4gICAgICAgICAgICAgICBsYXIgIHVpZF9tYXAgZmlsZSwgZGVwZW5kaW5nIG9uIHRo ZSB1c2VyIElEIG1hcHBpbmdzIGZvcgo+ICAgICAgICAgICAgICAgdGhlIHVzZXIgbmFtZXNwYWNl cyBvZiB0aGUgcmVhZGluZyBwcm9jZXNzZXMuCj4KPiAgICAgICAgICAgICAgIEVhY2ggbGluZSBp biB0aGUgZmlsZSBzcGVjaWZpZXMgYSAxLXRvLTEgIG1hcHBpbmcgIG9mICBhCj4gICAgICAgICAg ICAgICByYW5nZSAgb2YgIGNvbnRpZ3VvdXMgIGJldHdlZW4gdHdvIHVzZXIgbmFtZXNwYWNlcy4g IFRoZQo+ICAgICAgICAgICAgICAgc3BlY2lmaWNhdGlvbiBpbiBlYWNoIGxpbmUgdGFrZXMgdGhl IGZvcm0gb2YgdGhyZWUgIG51beKAkAo+ICAgICAgICAgICAgICAgYmVycyAgZGVsaW1pdGVkICBi eSAgd2hpdGUgc3BhY2UuICBUaGUgZmlyc3QgdHdvIG51bWJlcnMKPiAgICAgICAgICAgICAgIHNw ZWNpZnkgdGhlIHN0YXJ0aW5nIHVzZXIgSUQgIGluICBlYWNoICB1c2VyICBuYW1lc3BhY2UuCj4g ICAgICAgICAgICAgICBUaGUgIHRoaXJkICBudW1iZXIgIHNwZWNpZmllcyAgdGhlICBsZW5ndGgg b2YgdGhlIG1hcHBlZAo+ICAgICAgICAgICAgICAgcmFuZ2UuICBJbiBkZXRhaWwsIHRoZSBmaWVs ZHMgYXJlICBpbnRlcnByZXRlZCAgYXMgIGZvbOKAkAo+ICAgICAgICAgICAgICAgbG93czoKPgo+ ICAgICAgICAgICAgICAgKDEpIFRoZSAgc3RhcnQgIG9mICB0aGUgIHJhbmdlICBvZiAgdXNlciBJ RHMgaW4gdGhlIHVzZXIKPiAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2Ugb2YgdGhlIHByb2Nl c3MgcGlkLgo+Cj4gICAgICAgICAgICAgICAoMikgVGhlIHN0YXJ0IG9mIHRoZSByYW5nZSBvZiB1 c2VyIElEcyB0byB3aGljaCB0aGUgdXNlcgo+ICAgICAgICAgICAgICAgICAgIElEcyAgc3BlY2lm aWVkICBieSAgZmllbGQgb25lIG1hcC4gIEhvdyBmaWVsZCB0d28gaXMKPiAgICAgICAgICAgICAg ICAgICBpbnRlcnByZXRlZCBkZXBlbmRzICBvbiAgd2hldGhlciAgdGhlICBwcm9jZXNzICB0aGF0 Cj4gICAgICAgICAgICAgICAgICAgb3BlbmVkICB1aWRfbWFwICBhbmQgdGhlIHByb2Nlc3MgcGlk IGFyZSBpbiB0aGUgc2FtZQo+ICAgICAgICAgICAgICAgICAgIHVzZXIgbmFtZXNwYWNlLCBhcyBm b2xsb3dzOgo+Cj4gICAgICAgICAgICAgICAgICAgYSkgSWYgdGhlIHR3byBwcm9jZXNzZXMgYXJl IGluIGRpZmZlcmVudCB1c2VyIG5hbWVz4oCQCj4gICAgICAgICAgICAgICAgICAgICAgcGFjZXM6 ICBmaWVsZCB0d28gaXMgdGhlIHN0YXJ0IG9mIGEgcmFuZ2Ugb2YgdXNlcgo+ICAgICAgICAgICAg ICAgICAgICAgIElEcyBpbiB0aGUgdXNlciBuYW1lc3BhY2UgIG9mICB0aGUgIHByb2Nlc3MgIHRo YXQKPiAgICAgICAgICAgICAgICAgICAgICBvcGVuZWQgdWlkX21hcC4KPgo+ICAgICAgICAgICAg ICAgICAgIGIpIElmICB0aGUgdHdvIHByb2Nlc3NlcyBhcmUgaW4gdGhlIHNhbWUgdXNlciBuYW1l c+KAkAo+ICAgICAgICAgICAgICAgICAgICAgIHBhY2U6IGZpZWxkIHR3byBpcyB0aGUgc3RhcnQg b2YgdGhlIHJhbmdlIG9mIHVzZXIKPiAgICAgICAgICAgICAgICAgICAgICBJRHMgIGluICB0aGUg cGFyZW50IHVzZXIgbmFtZXNwYWNlIG9mIHRoZSBwcm9jZXNzCj4gICAgICAgICAgICAgICAgICAg ICAgcGlkLiAgKFRoZSAicGFyZW50IHVzZXIgbmFtZXNwYWNlIiAgaXMgIHRoZSAgdXNlcgo+ICAg ICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZSAgb2YgIHRoZSAgcHJvY2VzcyAgdGhhdCAgY3Jl YXRlZCBhIHVzZXIKPiAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2UgdmlhIGEgY2FsbCB0 byAgdW5zaGFyZSgyKSAgb3IgIGNsb25lKDIpCj4gICAgICAgICAgICAgICAgICAgICAgd2l0aCAg dGhlIENMT05FX05FV1VTRVIgZmxhZy4pICBUaGlzIGNhc2UgZW5hYmxlcwo+ICAgICAgICAgICAg ICAgICAgICAgIHRoZSBvcGVuZXIgb2YgdWlkX21hcCAodGhlIGNvbW1vbiAgY2FzZSAgaGVyZSAg aXMKPiAgICAgICAgICAgICAgICAgICAgICBvcGVuaW5nIC9wcm9jL3NlbGYvdWlkX21hcCkgdG8g c2VlIHRoZSBtYXBwaW5nIG9mCj4gICAgICAgICAgICAgICAgICAgICAgdXNlciBJRHMgaW50byB0 aGUgdXNlciBuYW1lc3BhY2Ugb2YgIHRoZSAgcHJvY2Vzcwo+ICAgICAgICAgICAgICAgICAgICAg IHRoYXQgY3JlYXRlZCB0aGlzIHVzZXIgbmFtZXNwYWNlLgo+Cj4gICAgICAgICAgICAgICAoMykg VGhlICBsZW5ndGggIG9mIHRoZSByYW5nZSBvZiB1c2VyIElEcyB0aGF0IGlzIG1hcHBlZAo+ICAg ICAgICAgICAgICAgICAgIGJldHdlZW4gdGhlIHR3byB1c2VyIG5hbWVzcGFjZXMuCj4KPiAgICAg ICAgICAgICAgIEFmdGVyIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyB1c2VyIG5hbWVzcGFjZSwgdGhl ICB1aWRfbWFwCj4gICAgICAgICAgICAgICBmaWxlICBtYXkgYmUgd3JpdHRlbiB0byBleGFjdGx5 IG9uY2UgdG8gc3BlY2lmeSB0aGUgbWFw4oCQCj4gICAgICAgICAgICAgICBwaW5nIG9mIHVzZXIg SURzIGluIHRoZSBuZXcgdXNlciBuYW1lc3BhY2UuICAoQW4gYXR0ZW1wdAo+ICAgICAgICAgICAg ICAgdG8gd3JpdGUgbW9yZSB0aGFuIG9uY2UgdG8gdGhlIGZpbGUgZmFpbHMgd2l0aCB0aGUgZXJy b3IKPiAgICAgICAgICAgICAgIEVQRVJNLikKPgo+ICAgICAgICAgICAgICAgVGhlIGxpbmVzIHdy aXR0ZW4gdG8gdWlkX21hcCBtdXN0IGNvbmZvcm0gdG8gdGhlIGZvbGxvd+KAkAo+ICAgICAgICAg ICAgICAgaW5nIHJ1bGVzOgo+Cj4gICAgICAgICAgICAgICAqICBUaGUgIHRocmVlIGZpZWxkcyBt dXN0IGJlIHZhbGlkIG51bWJlcnMsIGFuZCB0aGUgbGFzdAo+ICAgICAgICAgICAgICAgICAgZmll bGQgbXVzdCBiZSBncmVhdGVyIHRoYW4gMC4KPgo+ICAgICAgICAgICAgICAgKiAgTGluZXMgYXJl IHRlcm1pbmF0ZWQgYnkgbmV3bGluZSBjaGFyYWN0ZXJzLgo+Cj4gICAgICAgICAgICAgICAqICBU aGVyZSBpcyBhbiAoYXJiaXRyYXJ5KSBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mICBsaW5lcwo+ICAg ICAgICAgICAgICAgICAgaW4gIHRoZSAgZmlsZS4gICBBcyAgYXQgIExpbnV4IDMuOCwgdGhlIGxp bWl0IGlzIGZpdmUKPiAgICAgICAgICAgICAgICAgIGxpbmVzLgo+Cj4gICAgICAgICAgICAgICAq ICBUaGUgcmFuZ2Ugb2YgdXNlciBJRHMgc3BlY2lmaWVkIGluIGVhY2ggIGxpbmUgIGNhbm5vdAo+ ICAgICAgICAgICAgICAgICAgb3ZlcmxhcCAgd2l0aCAgdGhlIHJhbmdlcyBpbiBhbnkgb3RoZXIg bGluZXMuICBJbiB0aGUKPiAgICAgICAgICAgICAgICAgIGN1cnJlbnQgaW1wbGVtZW50YXRpb24g KExpbnV4IDMuOCksIHRoaXMgIHJlcXVpcmVtZW50Cj4gICAgICAgICAgICAgICAgICBpcyAgc2F0 aXNpZmllZCAgYnkgIGEgIHNpbXBsaXN0aWMgaW1wbGVtZW50YXRpb24gdGhhdAo+ICAgICAgICAg ICAgICAgICAgaW1wb3NlcyB0aGUgZnVydGhlciByZXF1aXJlbWVudCB0aGF0ICB0aGUgIHZhbHVl cyAgaW4KPiAgICAgICAgICAgICAgICAgIGJvdGggIGZpZWxkIDEgYW5kIGZpZWxkIDIgb2Ygc3Vj Y2Vzc2l2ZSBsaW5lcyBtdXN0IGJlCj4gICAgICAgICAgICAgICAgICBpbiBhc2NlbmRpbmcgbnVt ZXJpY2FsIG9yZGVyLgo+Cj4gICAgICAgICAgICAgICBXcml0ZXMgdGhhdCB2aW9sYXRlIHRoZSBh Ym92ZSBydWxlcyBmYWlsIHdpdGggdGhlICBlcnJvcgo+ICAgICAgICAgICAgICAgRUlOVkFMLgo+ Cj4gICAgICAgICAgICAgICBJbiAgICBvcmRlciAgICBmb3IgICBhICAgcHJvY2VzcyAgIHRvICAg d3JpdGUgICB0byAgIHRoZQo+ICAgICAgICAgICAgICAgL3Byb2MvW3BpZF0vdWlkX21hcCAoL3By b2MvW3BpZF0vZ2lkX21hcCkgZmlsZSwgdGhlIGZvbOKAkAo+ICAgICAgICAgICAgICAgbG93aW5n IHJlcXVpcmVtZW50cyBtdXN0IGJlIG1ldDoKPgo+ICAgICAgICAgICAgICAgKiAgVGhlICBwcm9j ZXNzICBtdXN0ICBoYXZlICB0aGUgQ0FQX1NFVFVJRCAoQ0FQX1NFVEdJRCkKPiAgICAgICAgICAg ICAgICAgIGNhcGFiaWxpdHkgaW4gdGhlIHVzZXIgbmFtZXNwYWNlIG9mIHRoZSBwcm9jZXNzIHBp ZC4KPgo+ICAgICAgICAgICAgICAgKiAgVGhlIHByb2Nlc3MgbXVzdCAgaGF2ZSAgdGhlICBDQVBf U0VUVUlEICAoQ0FQX1NFVEdJRCkKPiAgICAgICAgICAgICAgICAgIGNhcGFiaWxpdHkgaW4gdGhl IHBhcmVudCB1c2VyIG5hbWVzcGFjZS4KPgo+ICAgICAgICAgICAgICAgKiAgVGhlICBwcm9jZXNz ICBtdXN0IGJlIGluIGVpdGhlciB0aGUgdXNlciBuYW1lc3BhY2Ugb2YKPiAgICAgICAgICAgICAg ICAgIHRoZSBwcm9jZXNzIHBpZCBvciBpbnNpZGUgdGhlIHBhcmVudCAgdXNlciAgbmFtZXNwYWNl Cj4gICAgICAgICAgICAgICAgICBvZiB0aGUgcHJvY2VzcyBwaWQuCgpUaGF0IHNvdW5kcyByaWdo dC4KCkluIGFkZGl0aW9uIC9wcm9jL1twaWRdL3Byb2ppZF9tYXAgd2FzIGFkZGVkIGluIDMuNywg YW5kIG9iZXlzIHRoZSBzYW1lCnJ1bGVzIGV4Y2VwdCB0aGF0IHRoZXJlIGFyZSBubyBjYXBhYmls aXRpZXMgcmVxdWlyZWQgdG8gc2V0IHRoZSBtYXBwaW5nLgoKSSBzdXNwZWN0IGl0IGlzIHByb2Jh Ymx5IGVhc2llciB0byBhZGQgYSBxdWljayBtZW50aW9uIG9mIHByb2ppZF9tYXAKaW5zdGVhZCBv ZiByZXBlYXRpbmcgYWxsIG9mIHRoZSB0ZXh0IGJ1ZyBJIGNvdWxkIGJlIHdyb25nLiAgSW4gYW55 IGV2ZW50Ckkgd2lsbCBsZWF2ZSBvZmYgd2l0aCBwcm9qaWRfbWFwIHVudGlsIHdlIGdldCB0aGUg dWlkX21hcCBhbmQgZ2lkX21hcApleHQgc29saWQuCgpFcmljCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkNvbnRhaW5lcnMgbWFpbGluZyBsaXN0CkNvbnRh aW5lcnNAbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6Ly9saXN0cy5saW51eGZvdW5k YXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vY29udGFpbmVycw==