From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 43536 invoked by alias); 17 Oct 2017 07:57:13 -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 43516 invoked by uid 89); 17 Oct 2017 07:57:12 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.6 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,MIME_BASE64_BLANKS,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mga09.intel.com Received: from mga09.intel.com (HELO mga09.intel.com) (134.134.136.24) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 17 Oct 2017 07:57:09 +0000 Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Oct 2017 00:57:06 -0700 X-ExtLoop1: 1 Received: from irsmsx151.ger.corp.intel.com ([163.33.192.59]) by fmsmga005.fm.intel.com with ESMTP; 17 Oct 2017 00:57:05 -0700 Received: from irsmsx112.ger.corp.intel.com (10.108.20.5) by IRSMSX151.ger.corp.intel.com (163.33.192.59) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 17 Oct 2017 08:57:04 +0100 Received: from irsmsx104.ger.corp.intel.com ([169.254.5.248]) by irsmsx112.ger.corp.intel.com ([169.254.1.12]) with mapi id 14.03.0319.002; Tue, 17 Oct 2017 08:57:04 +0100 From: "Tedeschi, Walfred" To: Simon Marchi , "palves@redhat.com" , "simon.marchi@polymtl.ca" CC: "gdb-patches@sourceware.org" Subject: RE: [PATCH v2] symlookup: improves symbol lookup when a file is specified. Date: Tue, 17 Oct 2017 07:57:00 -0000 Message-ID: References: <1507727728-30540-1-git-send-email-walfred.tedeschi@intel.com> <88efd84d-5449-f2d3-3757-c16c6f201506@ericsson.com> In-Reply-To: <88efd84d-5449-f2d3-3757-c16c6f201506@ericsson.com> 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: 2017-10/txt/msg00496.txt.bz2 U2ltb24sDQoNClRoYW5rcyBmb3IgeW91ciByZXZpZXchDQoNClNvbWUgY29t bWVudHMgYmVsb3cuLi4NCg0KPiBGcm9tOiBTaW1vbiBNYXJjaGkgW21haWx0 bzpzaW1vbi5tYXJjaGlAZXJpY3Nzb24uY29tXQ0KPiBTZW50OiBNb25kYXks IE9jdG9iZXIgMTYsIDIwMTcgNzowNiBQTQ0KPiBUbzogVGVkZXNjaGksIFdh bGZyZWQgPHdhbGZyZWQudGVkZXNjaGlAaW50ZWwuY29tPjsgcGFsdmVzQHJl ZGhhdC5jb207DQo+IHNpbW9uLm1hcmNoaUBwb2x5bXRsLmNhDQo+IENjOiBn ZGItcGF0Y2hlc0Bzb3VyY2V3YXJlLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BB VENIIHYyXSBzeW1sb29rdXA6IGltcHJvdmVzIHN5bWJvbCBsb29rdXAgd2hl biBhIGZpbGUgaXMNCj4gc3BlY2lmaWVkLg0KPiANCj4gT24gMjAxNy0xMC0x MSAwOToxNSBBTSwgV2FsZnJlZCBUZWRlc2NoaSB3cm90ZToNCj4gPiBUaGUg cHJvdmlkZWQgcGF0Y2ggYWRkcyBhIHNjb3BlIGxvb2t1cCB3aXRoIGhpZ2hl ciBwcmlvcml0eSBpbiB0aGUNCj4gPiBjYXNlIGEgYSBmaWxlIGlzIHByb3Zp ZGVkIGZvciB0aGUgZXZhbHVhdGlvbi4NCkxvb2tzIGxpa2Ugd2UgaGF2ZSBh bHNvIGhlcmUgYSBkb3VibGUgImEiDQoNCj4gPg0KPiA+IFVzdWFsIHN5bWJv bCBsb29rdXAgZnJvbSBHREIgZm9sbG93cyBsaW5rZXIgbG9naWMuICBUaGlz IGlzIHdoYXQgaXMNCj4gPiBkZXNpcmVkIG1vc3Qgb2YgdGhlIHRpbWUuICBJ biB0aGUgdXNhZ2UgY2FzZSBwcmVzZW50ZWQgYSBmdWxsDQo+ID4gcXVhbGlm aWVkIHNjb3BlIGlzIHByb3ZpZGVkIHByb3ZpZGVkLCBzbyB0aGUgbG9va3Vw IGhhcyB0byBmb2xsb3cgdGhpcw0KPiA+IHByaW9yaXR5LiAgRmFpbGluZyBp bg0KPiANCj4gInByb3ZpZGVkIHByb3ZpZGVkIg0KDQpPayENCg0KPiANCj4g PiBmaW5kaW5nIHRoZSBzeW1ib2wgYXQgdGhpcyBzY29wZSB1c3VhbCBwYXRo IGlzIGZvbGxvd2VkLg0KPiA+DQo+ID4gQXMgdXNlIGFuZCB0ZXN0IGNhc2Ug aXQgaXMgcHJlc2VudGVkIHR3byBzaGFyZWQgb2JqZWN0cyBoYXZpbmcgYQ0K PiA+IGdsb2JhbCB2YXJpYWJsZSB3aXRoIHRoZSBzYW1lIG5hbWUgYnV0IGNv bW1pbmcgZnJvbSBkaWZmZXJlbnQgc291cmNlDQo+IGZpbGVzLg0KPiA+IFdp dGhvdXQgdGhlIHBhdGNoIGV2YWx1YXRpbmcgdGhvc2UgdmFyaWFibGVzIHBy b3ZpZGluZyB0aGUgZmlsZSBzY29wZQ0KPiA+IHJldHVybnMgdGhlIHdyb25n IHZhbHVlOyAgSXQgcmV0dXJucyB0aGUgdmFsdWUgc2VlbiBpbiB0aGUgZmly c3QNCj4gPiBsb2FkZWQgc2hhcmVkIG9iamVjdC4gVXNpbmcgdGhlIHBhdGNo IHRoZSB2YWx1ZSBkZWZpbmVkIGluIHRoZSBmaWxlDQo+ID4gc2NvcGUgaXMg dGhlIG9uZSByZXR1cm5lZC4NCj4gPg0KPiA+IE9uZSBvZiB0aGUgYWxyZWFk eSBleGlzdGluZyB0ZXN0IGNhc2VzIGluIHByaW50LWZpbGUtdmFyLmV4cCBz dGFydHMgdG8NCj4gPiBmYWlsIGFmdGVyIGFwbHlpbmcgdGhpcyBwYXRjaC4g IEluIGZhY3QgdGhlIHZhbHVlIHRoYXQgdGhlIGxpbmtlciBzZWVzDQo+ID4g aXMgZGlmZmVyZW50IHRoZW4gdGhlIG9uZSBkZWJ1Z2dlciBjYW4gcmVhZCBm cm9tIHRoZSBzaGFyZWQgb2JqZWN0Lg0KPiA+IEluIHRoaXMgc2Vuc2UgaXQg bG9va3MgbGlrZSB0byBtZSB0aGF0IHRoZSB0ZXN0IGhhcyB0byBiZSBjaGFu Z2VkLg0KPiA+IFRoZSBmYWlsIGlzIGluIHRoZSBjYWxsOg0KPiA+ICAgcHJp bnQgJ3ByaW50LWZpbGUtdmFyLWxpYjIuYyc6OnRoaXNfdmVyc2lvbl9pZCA9 PSB2Mg0KPiA+DQo+ID4gRHVyaW5nIGxvYWQgb2YgdGhlIGxpYnJhcmllcyBs aW5rZXIgcmVzb2x2ZXMgdGhlIHN5bWJvbCBhcyB0aGUgZmlyc3QNCj4gPiBv bmUgbG9hZGVkIGFuZCBpbmRlcGVuZGVudCBvZiB0aGUgc2NvcGUgdGhlIHN5 bWJvbCB3aWxsIGhhdmUgdGhlIHNhbWUNCj4gPiB2YWx1ZSwgYXMgZGVmaW5l ZCBpbiB0aGUgZmlyc3QgbGlicmFyeSBsb2FkZWQuDQo+ID4gSG93ZXZlciwg d2hlbiBkZWZpbmluZyB0aGUgc2NvcGUgdGhlIHZhbHVlIHNob3VsZCByZXBy ZXNlbnQgdGhlIHZhbHVlDQo+ID4gaW4gdGhhdCBjb250ZXh0LiBEaWZlcmVu dCBldmFsdWF0aW9ucyBvZiB0aGUgc2FtZSBzeW1ib2xzIG1pZ2h0IGFsc28N Cj4gPiBiZXR0ZXIgc3BvdCB0aGUgaXNzdWUgaW4gdXNlcnMgY29kZS4NCj4g Pg0KPiA+IC0gSSBoYXZlbid0IGNoYW5nZWQgdGhlIHRlc3QgYmVjYXVzZSBJ IHdhbnRlZCB0byBoZWFyIHRoZSBjb21tdW5pdHkNCj4gPiB0aG91Z2h0IG9u IHRoZSBzdWJqZWN0Lg0KPiANCj4gSSBjYW4ndCByZWFsbHkgY29tbWVudCBv biBob3cgcmlnaHQgdGhlIGZpeCBpcywgYnV0IEkgY2FuIHNlZSB0aGF0IHRo ZSBjdXJyZW50DQo+IGJlaGF2aW9yIGlzIGNsZWFybHkgd3Jvbmc6DQo+IA0K DQpJIHdpbGwgYWRkIHRoYXQgaW4gdGhlIGNvbW1pdCBtZXNzYWdlLCBJIHRo aW5rIGl0IG1pZ2h0IG1ha2UgaXQgY2xlYXJlci4NCg0KPiAoZ2RiKSBwICdw cmludC1maWxlLXZhci1kbG9wZW4tbGliMS5jJzo6dGhpc192ZXJzaW9uX2lk DQo+ICQxID0gMTA0DQo+IChnZGIpIHAgJ3ByaW50LWZpbGUtdmFyLWRsb3Bl bi1saWIyLmMnOjp0aGlzX3ZlcnNpb25faWQNCj4gJDIgPSAxMDQNCj4gDQo+ IEFuZCB0aGF0IHlvdXIgcGF0Y2ggZml4ZXMgaXQ6DQo+IA0KPiAoZ2RiKSBw ICdwcmludC1maWxlLXZhci1kbG9wZW4tbGliMS5jJzo6dGhpc192ZXJzaW9u X2lkDQo+ICQxID0gMTA0DQo+IChnZGIpIHAgJ3ByaW50LWZpbGUtdmFyLWRs b3Blbi1saWIyLmMnOjp0aGlzX3ZlcnNpb25faWQNCj4gJDIgPSAyMDMNCj4g DQo+ID4gMjAxNy0wNy0xMyAgV2FsZnJlZCBUZWRlc2NoaSAgPHdhbGZyZWQu dGVkZXNjaGlAaW50ZWwuY29tPg0KPiA+DQo+ID4gZ2RiL0NoYW5nZUxvZzoN Cj4gPg0KPiA+IAkqIHN5bXRhYi5jIChsb29rdXBfZ2xvYmFsX3N5bWJvbCk6 IEFkZCBuZXcgbG9va3VwIHRvIGVuc3VyZQ0KPiA+IAlwcmlvcml0eSBvbiBn aXZlbiBibG9jay4NCj4gPg0KPiA+IGdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9n Og0KPiA+DQo+ID4gCSogZ2RiLmJhc2UvcHJpbnQtZmlsZS12YXItZGxvcGVu LW1haW4uYzogTmV3IGZpbGUuDQo+ID4gCSogZ2RiLmJhc2UvcHJpbnQtZmls ZS12YXItZGxvcGVuLmV4cDogTmV3IHRlc3QgYmFzZWQgb24NCj4gPiAJcHJp bnQtZmlsZS12YXIuZXhwLg0KPiA+IAkqIGdkYi5iYXNlL3ByaW50LWZpbGUt dmFyLWRsb3Blbi1saWIxLmM6IE5ldyBmaWxlLg0KPiA+IAkqIGdkYi5iYXNl L3ByaW50LWZpbGUtdmFyLWRsb3Blbi1saWIyLmM6IE5ldyBmaWxlLg0KPiA+ DQo+ID4NCj4gPiAtLS0NCj4gPiAgZ2RiL3N5bXRhYi5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKw0KPiA+ICAuLi4v Z2RiLmJhc2UvcHJpbnQtZmlsZS12YXItZGxvcGVuLWxpYjEuYyAgICAgICAg ICB8ICAyNSArKysrKw0KPiA+ICAuLi4vZ2RiLmJhc2UvcHJpbnQtZmlsZS12 YXItZGxvcGVuLWxpYjIuYyAgICAgICAgICB8ICAyNSArKysrKw0KPiA+ICAu Li4vZ2RiLmJhc2UvcHJpbnQtZmlsZS12YXItZGxvcGVuLW1haW4uYyAgICAg ICAgICB8ICA2MSArKysrKysrKysrKw0KPiA+ICBnZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL3ByaW50LWZpbGUtdmFyLWRsb3Blbi5leHAgICB8IDExMw0KPiAr KysrKysrKysrKysrKysrKysrKysNCj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCAy MjggaW5zZXJ0aW9ucygrKQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4g PiBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ByaW50LWZpbGUtdmFyLWRsb3Bl bi1saWIxLmMNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9wcmludC1maWxlLXZhci1kbG9wZW4tbGliMi5j DQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+IGdkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvcHJpbnQtZmlsZS12YXItZGxvcGVuLW1haW4uYw0KPiA+ICBj cmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9wcmlu dC1maWxlLXZhci1kbG9wZW4uZXhwDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEv Z2RiL3N5bXRhYi5jIGIvZ2RiL3N5bXRhYi5jIGluZGV4IDE2YTZiMmUuLmEy YzMwN2YgMTAwNjQ0DQo+ID4gLS0tIGEvZ2RiL3N5bXRhYi5jDQo+ID4gKysr IGIvZ2RiL3N5bXRhYi5jDQo+ID4gQEAgLTI1ODksNiArMjU4OSwxMCBAQCBs b29rdXBfZ2xvYmFsX3N5bWJvbCAoY29uc3QgY2hhciAqbmFtZSwNCj4gPiAg ICBpZiAob2JqZmlsZSAhPSBOVUxMKQ0KPiA+ICAgICAgcmVzdWx0ID0gc29s aWJfZ2xvYmFsX2xvb2t1cCAob2JqZmlsZSwgbmFtZSwgZG9tYWluKTsNCj4g Pg0KPiA+ICsgIC8qIFdlIHN0aWxsIG5lZWQgdG8gbG9vayBvbiB0aGUgZ2xv YmFsIHNjb3BlIG9mIGN1cnJlbnQgb2JqZWN0DQo+ID4gKyBmaWxlLiAgKi8g IGlmIChyZXN1bHQuc3ltYm9sID09IE5VTEwgJiYgb2JqZmlsZSAhPSBOVUxM KQ0KPiA+ICsgICAgcmVzdWx0ID0gbG9va3VwX3N5bWJvbF9pbl9vYmpmaWxl IChvYmpmaWxlLCBHTE9CQUxfQkxPQ0ssIG5hbWUsDQo+ID4gKyBkb21haW4p Ow0KPiA+ICsNCj4gPiAgICAvKiBJZiB0aGF0IGRpZG4ndCB3b3JrIGdvIGEg Z2xvYmFsIHNlYXJjaCAob2YgZ2xvYmFsIGJsb2NrcywgaGVoKS4gICovDQo+ ID4gICAgaWYgKHJlc3VsdC5zeW1ib2wgPT0gTlVMTCkNCj4gPiAgICAgIHsN Cj4gPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9wcmlu dC1maWxlLXZhci1kbG9wZW4tbGliMS5jDQo+ID4gYi9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL3ByaW50LWZpbGUtdmFyLWRsb3Blbi1saWIxLmMNCj4gPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAuLjA5ZWM5 NDcNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9wcmludC1maWxlLXZhci1kbG9wZW4tbGliMS5jDQo+ID4g QEAgLTAsMCArMSwyNSBAQA0KPiA+ICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBh cnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLg0KPiA+ICsgICBDb3B5cmln aHQgMjAxMi0yMDE3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0K PiANCj4gQXJlIHRoZSB5ZWFycyByaWdodCBoZXJlICh0aGUgMjAxMik/DQoN Cg0KSSBoYXZlIGltcHJvdmVkIGEgdGVzdCBjYXNlIGZyb20gMjAxMiB0byBk byB0aGlzIG9uZS4NCg0KPiANCj4gPiArDQo+ID4gKyAgIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5DQo+ID4gKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 DQo+ID4gKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yDQo+ID4gKyAgIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQo+ID4gKw0KPiA+ICsg ICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwNCj4gPiArICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YNCj4gPiArICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KPiA+ICsgICBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KPiA+ICsN Cj4gPiArICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCj4gPiArICAgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZQ0KPiA+ICsgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8NCj4gPiArDQo+ID4gK2lu dCB0aGlzX3ZlcnNpb25faWQgPSAxMDQ7DQo+ID4gKw0KPiA+ICtpbnQNCj4g PiArZ2V0X3ZlcnNpb24gKHZvaWQpDQo+ID4gK3sNCj4gPiArICBzdGF0aWMg aW50IHRlc3Q7DQo+ID4gKyAgdGVzdCA9IHRoaXNfdmVyc2lvbl9pZDsNCj4g PiArICByZXR1cm4gdGVzdDsNCj4gPiArfQ0KPiA+IGRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ByaW50LWZpbGUtdmFyLWRsb3Blbi1s aWIyLmMNCj4gPiBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvcHJpbnQtZmls ZS12YXItZGxvcGVuLWxpYjIuYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+ID4gaW5kZXggMDAwMDAwMC4uYjA5N2NkMg0KPiA+IC0tLSAvZGV2L251 bGwNCj4gPiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ByaW50LWZp bGUtdmFyLWRsb3Blbi1saWIyLmMNCj4gPiBAQCAtMCwwICsxLDI1IEBADQo+ ID4gKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUg ZGVidWdnZXIuDQo+ID4gKyAgIENvcHlyaWdodCAyMDEyLTIwMTcgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQo+ID4gKw0KPiA+ICsgICBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQ0KPiA+ICsgICBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQ0KPiA+ICsgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcg0KPiA+ICsg ICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KPiA+ICsN Cj4gPiArICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQo+ID4gKyAgIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mDQo+ID4gKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCj4gPiArICAg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4N Cj4gPiArDQo+ID4gKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQo+ID4gKyAg IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUNCj4gPiAr IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovDQo+ID4gKw0K PiA+ICtpbnQgdGhpc192ZXJzaW9uX2lkID0gMjAzOw0KPiA+ICsNCj4gPiAr aW50DQo+ID4gK2dldF92ZXJzaW9uICh2b2lkKQ0KPiA+ICt7DQo+ID4gKyAg c3RhdGljIGludCB0ZXN0Ow0KPiA+ICsgIHRlc3QgPSB0aGlzX3ZlcnNpb25f aWQ7DQo+ID4gKyAgcmV0dXJuIHRlc3Q7DQo+ID4gK30NCj4gPiBkaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9wcmludC1maWxlLXZhci1k bG9wZW4tbWFpbi5jDQo+ID4gYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3By aW50LWZpbGUtdmFyLWRsb3Blbi1tYWluLmMNCj4gPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAuLjk1NGE2NGUNCj4gPiAtLS0g L2Rldi9udWxsDQo+ID4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9w cmludC1maWxlLXZhci1kbG9wZW4tbWFpbi5jDQo+ID4gQEAgLTAsMCArMSw2 MSBAQA0KPiA+ICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0 aGUgR05VIGRlYnVnZ2VyLg0KPiA+ICsgICBDb3B5cmlnaHQgMjAxNyBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCj4gPiArDQo+ID4gKyAgIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQo+ID4gKyAgIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5DQo+ID4gKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yDQo+ID4g KyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQo+ID4g Kw0KPiA+ICsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCj4gPiArICAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YNCj4gPiArICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KPiA+ICsg ICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz Lg0KPiA+ICsNCj4gPiArICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCj4gPiAr ICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZQ0KPiA+ ICsgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8NCj4gPiAr DQo+ID4gKyNpbmNsdWRlIDxkbGZjbi5oPg0KPiA+ICsjaW5jbHVkZSA8c3Rk aW8uaD4NCj4gPiArI2luY2x1ZGUgPHN0ZGxpYi5oPg0KPiA+ICsNCj4gPiAr aW50DQo+ID4gK2R1bW15ICh2b2lkKQ0KPiA+ICt7DQo+ID4gKyAgcmV0dXJu IDE7DQo+ID4gK30NCj4gPiArDQo+ID4gK2ludA0KPiA+ICttYWluICh2b2lk KQ0KPiA+ICt7DQo+ID4gKyAgaW50ICgqZ2V0X3ZlcnNpb24xKSAodm9pZCk7 DQo+ID4gKyAgaW50ICgqZ2V0X3ZlcnNpb24yKSAodm9pZCk7DQo+ID4gKyAg aW50IHYxLCB2MjsNCj4gPiArDQo+ID4gKyAgdm9pZCAqbGliMSA9IGRsb3Bl biAoInByaW50LWZpbGUtdmFyLWRsb3Blbi1saWIxLnNvIiwgUlRMRF9MQVpZ KTsNCj4gPiArIHZvaWQgKmxpYjIgPSBkbG9wZW4gKCJwcmludC1maWxlLXZh ci1kbG9wZW4tbGliMi5zbyIsIFJUTERfTEFaWSk7DQo+ID4gKw0KPiA+ICsg IGlmIChsaWIxID09IE5VTEwgfHwgbGliMiA9PSBOVUxMKQ0KPiA+ICsgICAg cmV0dXJuIDE7DQo+ID4gKw0KPiA+ICsgICooaW50ICoqKSAoJmdldF92ZXJz aW9uMSkgPSBkbHN5bSAobGliMSwgImdldF92ZXJzaW9uIik7ICAqKGludCAq KikNCj4gPiArICgmZ2V0X3ZlcnNpb24yKSA9IGRsc3ltIChsaWIyLCAiZ2V0 X3ZlcnNpb24iKTsNCj4gPiArDQo+ID4gKyAgaWYgKGdldF92ZXJzaW9uMSAh PSBOVUxMDQo+ID4gKyAgICAgICYmIGdldF92ZXJzaW9uMiAhPSBOVUxMKQ0K PiA+ICsgICAgew0KPiA+ICsgICAgICB2MSA9IGdldF92ZXJzaW9uMSgpOw0K PiA+ICsgICAgICB2MiA9IGdldF92ZXJzaW9uMigpOw0KPiA+ICsgICAgfQ0K PiA+ICsNCj4gPiArDQo+ID4gKyAgaWYgKHYxICE9IDEwNCB8fCB2MiAhPSAy MDMpDQo+ID4gKyAgICByZXR1cm4gMTsNCj4gPiArDQo+ID4gKyAgZHVtbXkg KCk7IC8qIFNUT1AgICovDQo+ID4gKw0KPiA+ICsgIGRsY2xvc2UgKGxpYjEp Ow0KPiA+ICsgIGRsY2xvc2UgKGxpYjIpOw0KPiA+ICsNCj4gPiArICByZXR1 cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9wcmludC1maWxlLXZhci1kbG9wZW4uZXhwDQo+ ID4gYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ByaW50LWZpbGUtdmFyLWRs b3Blbi5leHANCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4 IDAwMDAwMDAuLjFjMzMxYmENCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysr IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9wcmludC1maWxlLXZhci1kbG9w ZW4uZXhwDQo+ID4gQEAgLTAsMCArMSwxMTMgQEANCj4gPiArIyBDb3B5cmln aHQgMjAxNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCj4gPiAr DQo+ID4gKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcg0KPiA+ICttb2RpZnkgIyBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzDQo+ID4gK3B1Ymxpc2hlZCBieSAjIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlDQo+ID4gK0xp Y2Vuc2UsIG9yICMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4NCj4gPiArIw0KPiA+ICsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAjDQo+ID4g K2J1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mICMNCj4gPiArTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSAj DQo+IEdOVQ0KPiA+ICtHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuDQo+ID4gKyMNCj4gPiArIyBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSAjDQo+ID4gK2Fsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KPiA+ICsqLw0K PiA+ICsNCj4gPiAraWYge1tza2lwX3NobGliX3Rlc3RzXX0gew0KPiA+ICsg ICAgcmV0dXJuIDANCj4gPiArfQ0KPiA+ICsNCj4gPiArc2V0IGV4ZWN1dGFi bGUgcHJpbnQtZmlsZS12YXItZGxvcGVuLW1haW4NCj4gPiArDQo+ID4gK3Nl dCBsaWIxICJwcmludC1maWxlLXZhci1kbG9wZW4tbGliMSINCj4gPiArc2V0 IGxpYjIgInByaW50LWZpbGUtdmFyLWRsb3Blbi1saWIyIg0KPiA+ICtzZXQg bGlic3JjMSAkc3JjZGlyLyRzdWJkaXIvJHtsaWIxfS5jIHNldCBsaWJzcmMy DQo+ID4gKyRzcmNkaXIvJHN1YmRpci8ke2xpYjJ9LmMgc2V0IGxpYm9iajEg W3N0YW5kYXJkX291dHB1dF9maWxlDQo+ID4gKyR7bGliMX0uc29dIHNldCBs aWJvYmoyIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAke2xpYjJ9LnNvXSBzZXQN Cj4gPiArbGliX2Rsb3BlbjEgW3NobGliX3RhcmdldF9maWxlICR7bGlib2Jq MX1dIHNldCBsaWJfZGxvcGVuMg0KPiA+ICtbc2hsaWJfdGFyZ2V0X2ZpbGUg JHtsaWJvYmoyfV0NCj4gPiArDQo+ID4gK3NldCBzcmNmaWxlICRzcmNkaXIv JHN1YmRpci8kZXhlY3V0YWJsZS5jIHNldCBiaW5maWxlDQo+ID4gK1tzdGFu ZGFyZF9vdXRwdXRfZmlsZSAkZXhlY3V0YWJsZV0gc2V0IHNobGliZGlyIFtz dGFuZGFyZF9vdXRwdXRfZmlsZQ0KPiA+ICt7fV0NCj4gPiArDQo+ID4gK3Nl dCBsaWJfb3B0cyBkZWJ1Zw0KPiA+ICtzZXQgZXhlY19vcHRzIFtsaXN0IGRl YnVnIHNobGliX2xvYWQNCj4gPiArYWRkaXRpb25hbF9mbGFncz0tRFNITElC X05BTUU9XCIke2xpYl9kbG9wZW4xfVwiDQo+ID4gK2FkZGl0aW9uYWxfZmxh Z3M9LURTSExJQl9OQU1FMj1cIiR7bGliX2Rsb3BlbjJ9XCJdDQo+ID4gKw0K PiA+ICtpZiB7IFtnZGJfY29tcGlsZV9zaGxpYiAkbGlic3JjMSAkbGlib2Jq MSAkbGliX29wdHNdICE9ICIiDQo+ID4gKyAgICAgfHwgW2dkYl9jb21waWxl X3NobGliICRsaWJzcmMyICRsaWJvYmoyICRsaWJfb3B0c10gIT0gIiINCj4g PiArICAgICB8fCBbZ2RiX2NvbXBpbGUgJHNyY2ZpbGUgJGJpbmZpbGUgZXhl Y3V0YWJsZSAkZXhlY19vcHRzXSAhPSAiIn0gew0KPiA+ICsgICAgdW50ZXN0 ZWQgImZhaWxlZCB0byBjb21waWxlIg0KPiA+ICsgICAgcmV0dXJuIC0xDQo+ ID4gK30NCj4gPiArDQo+ID4gK2lmIHsgW2dkYl9jb21waWxlX3NobGliICR7 c3JjZGlyfS8ke3N1YmRpcn0vJHtsaWIxfS5jIFwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgJHtsaWJvYmoxfSBcDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICR7bGliX29wdHN9IF0gIT0gIiIgfSB7DQo+ID4gKyAg ICByZXR1cm4gLTENCj4gPiArfQ0KPiA+ICtpZiB7IFtnZGJfY29tcGlsZV9z aGxpYiAke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7bGliMn0uYyBcDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICR7bGlib2JqMn0gXA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAke2xpYl9vcHRzfSBdICE9ICIiIH0gew0K PiA+ICsgICAgcmV0dXJuIC0xDQo+ID4gK30NCj4gPiAraWYgeyBbZ2RiX2Nv bXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtleGVjdXRhYmxlfS5jIiBc DQo+ID4gKyAgICAgICAgICAgICAgICAgIFtzdGFuZGFyZF9vdXRwdXRfZmls ZSAke2V4ZWN1dGFibGV9XSBcDQo+ID4gKyAgICAgICAgICAgICAgICAgIGV4 ZWN1dGFibGUgXA0KPiA+ICsgICAgICAgICAgICAgICAgICBbbGlzdCBkZWJ1 ZyBzaGxpYj0tbGRsXV0NCj4gPiArICAgICAhPSAiIn0gew0KPiA+ICsgICAg cmV0dXJuIC0xDQo+ID4gK30NCj4gPiArDQo+ID4gKw0KPiA+ICtjbGVhbl9y ZXN0YXJ0ICRleGVjdXRhYmxlDQo+ID4gKw0KPiA+ICtpZiAhW3J1bnRvX21h aW5dIHsNCj4gPiArICAgIHVudGVzdGVkICJjb3VsZCBub3QgcnVuIHRvIG1h aW4iDQo+ID4gKyAgICByZXR1cm4gLTENCj4gPiArfQ0KPiA+ICsNCj4gPiAr IyBUcnkgcHJpbnRpbmcgInRoaXNfdmVyc2lvbl9udW0iIHF1YWxpZmllZCB3 aXRoIHRoZSBuYW1lIG9mIHRoZSBmaWxlDQo+ID4gKyMgd2hlcmUgdGhlIHZh cmlhYmxlcyBhcmUgZGVmaW5lZC4gIFRoZXJlIGFyZSB0d28gZ2xvYmFsIHZh cmlhYmxlcyAjDQo+ID4gK3dpdGggdGhhdCBuYW1lLCBhbmQgc29tZSBzeXN0 ZW1zIHN1Y2ggYXMgR05VL0xpbnV4IG1lcmdlIHRoZW0gIyBpbnRvDQo+ID4g K29uZSBzaW5nbGUgZW50aXR5LCB3aGlsZSBzb21lIG90aGVyIHN5c3RlbXMg c3VjaCBhcyBXaW5kb3dzICMga2VlcA0KPiA+ICt0aGVtIHNlcGFyYXRlLg0K PiANCj4gSSBkb24ndCByZWFsbHkgdW5kZXJzdGFuZCB3aGF0IHlvdSBtZWFu IGJ5ICJHTlUvTGludXggbWVyZ2UgdGhlbSBpbnRvDQo+IG9uZSBzaW5nbGUg ZW50aXR5Ii4gIFRoZXJlIGFyZSBzdGlsbCB0d28gZGlzdGluY3QgdmFyaWFi bGVzLCBubz8NCg0KVGhpcyBjb21tZW50IGNvbWVzIGZyb20gdGhlIG90aGVy IHRlc3QsIHdlIGRvIG5vdCBuZWVkIGl0IGFueW1vcmUuDQoNCj4gDQo+ID4g K2dkYl90ZXN0ICJjb250aW51ZSIgXA0KPiA+ICsgICAgICAgICAiQnJlYWtw b2ludCBcWzAtOVxdKywgbWFpbiBcXChcXCkgYXQuKiIgXA0KPiA+ICsgICAg ICAgICAiY29udGludWUgdG8gU1RPUCBtYXJrZXIiDQo+IA0KPiBZb3UgY291 bGQgdXNlIGdkYl9jb250aW51ZV90b19icmVha3BvaW50Lg0KDQpUaGFuayB5 b3UhDQoNCj4gDQo+IFNpbW9uDQoNCkludGVsIERldXRzY2hsYW5kIEdtYkgK UmVnaXN0ZXJlZCBBZGRyZXNzOiBBbSBDYW1wZW9uIDEwLTEyLCA4NTU3OSBO ZXViaWJlcmcsIEdlcm1hbnkKVGVsOiArNDkgODkgOTkgODg1My0wLCB3d3cu aW50ZWwuZGUKTWFuYWdpbmcgRGlyZWN0b3JzOiBDaHJpc3RpbiBFaXNlbnNj aG1pZCwgQ2hyaXN0aWFuIExhbXByZWNodGVyCkNoYWlycGVyc29uIG9mIHRo ZSBTdXBlcnZpc29yeSBCb2FyZDogTmljb2xlIExhdQpSZWdpc3RlcmVkIE9m ZmljZTogTXVuaWNoCkNvbW1lcmNpYWwgUmVnaXN0ZXI6IEFtdHNnZXJpY2h0 IE11ZW5jaGVuIEhSQiAxODY5MjgK