From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH i-g-t 5/8] tools/intel_vbt_decode: unify child device printing across versions Date: Fri, 20 Oct 2017 16:17:06 +0300 Message-ID: <874lquj6wd.fsf@intel.com> References: <20171019152259.31615-1-jani.nikula@intel.com> <20171019152259.31615-6-jani.nikula@intel.com> <20171019172410.GZ10981@intel.com> <87a80mjdf8.fsf@intel.com> <20171020113352.GF10981@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id BE1CB6E27C for ; Fri, 20 Oct 2017 13:15:38 +0000 (UTC) In-Reply-To: <20171020113352.GF10981@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?utf-8?B?U3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMCBPY3QgMjAxNywgVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4gd3JvdGU6Cj4gT24gRnJpLCBPY3QgMjAsIDIwMTcgYXQgMDE6NTY6MTFQTSAr MDMwMCwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4+IE9uIFRodSwgMTkgT2N0IDIwMTcsIFZpbGxlIFN5 cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+IHdyb3RlOgo+PiA+IE9uIFRo dSwgT2N0IDE5LCAyMDE3IGF0IDA2OjIyOjU2UE0gKzAzMDAsIEphbmkgTmlrdWxhIHdyb3RlOgo+ PiA+PiBNYWtlIGl0IGVhc2llciB0byBjb21wYXJlIGR1bXBpbmcgYWdhaW5zdCB0aGUgc3RydWN0 IGRlZmluaXRpb24uCj4+ID4+IAo+PiA+PiBTaWduZWQtb2ZmLWJ5OiBKYW5pIE5pa3VsYSA8amFu aS5uaWt1bGFAaW50ZWwuY29tPgo+PiA+PiAtLS0KPj4gPj4gIHRvb2xzL2ludGVsX3ZidF9kZWNv ZGUuYyB8IDEyOCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t LQo+PiA+PiAgMSBmaWxlIGNoYW5nZWQsIDcxIGluc2VydGlvbnMoKyksIDU3IGRlbGV0aW9ucygt KQo+PiA+PiAKPj4gPj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2ludGVsX3ZidF9kZWNvZGUuYyBiL3Rv b2xzL2ludGVsX3ZidF9kZWNvZGUuYwo+PiA+PiBpbmRleCA2OWNmMWU0YzZjYzYuLmJjNWYzODEx MjYxOSAxMDA2NDQKPj4gPj4gLS0tIGEvdG9vbHMvaW50ZWxfdmJ0X2RlY29kZS5jCj4+ID4+ICsr KyBiL3Rvb2xzL2ludGVsX3ZidF9kZWNvZGUuYwo+PiA+PiBAQCAtNDAxLDc0ICs0MDEsODggQEAg c3RhdGljIGNvbnN0IGNoYXIgKm1pcGlfYnJpZGdlX3R5cGUodWludDhfdCB0eXBlKQo+PiA+PiAg c3RhdGljIHZvaWQgZHVtcF9jaGlsZF9kZXZpY2Uoc3RydWN0IGNvbnRleHQgKmNvbnRleHQsCj4+ ID4+ICAJCQkgICAgICBjb25zdCBzdHJ1Y3QgY2hpbGRfZGV2aWNlX2NvbmZpZyAqY2hpbGQpCj4+ ID4+ICB7Cj4+ID4+IC0JY29uc3Qgc3RydWN0IGNoaWxkX2RldmljZV9jb25maWcgKmVmcCA9IGNo aWxkOwo+PiA+PiAtCj4+ID4+ICAJaWYgKCFjaGlsZC0+ZGV2aWNlX3R5cGUpCj4+ID4+ICAJCXJl dHVybjsKPj4gPj4gIAo+PiA+PiArCXByaW50ZigiXHRDaGlsZCBkZXZpY2UgaW5mbzpcbiIpOwo+ PiA+PiArCXByaW50ZigiXHRcdERldmljZSBoYW5kbGU6IDB4JTA0eCAoJXMpXG4iLCBjaGlsZC0+ aGFuZGxlLAo+PiA+PiArCSAgICAgICBjaGlsZF9kZXZpY2VfaGFuZGxlKGNoaWxkLT5oYW5kbGUp KTsKPj4gPj4gKwlwcmludGYoIlx0XHREZXZpY2UgdHlwZTogMHglMDR4ICglcylcbiIsIGNoaWxk LT5kZXZpY2VfdHlwZSwKPj4gPj4gKwkgICAgICAgY2hpbGRfZGV2aWNlX3R5cGUoY2hpbGQtPmRl dmljZV90eXBlKSk7Cj4+ID4+ICsJZHVtcF9jaGlsZF9kZXZpY2VfdHlwZV9iaXRzKGNoaWxkLT5k ZXZpY2VfdHlwZSk7Cj4+ID4+ICsKPj4gPj4gIAlpZiAoY29udGV4dC0+YmRiLT52ZXJzaW9uIDwg MTUyKSB7Cj4+ID4+IC0JCXByaW50ZigiXHRDaGlsZCBkZXZpY2UgaW5mbzpcbiIpOwo+PiA+PiAt CQlwcmludGYoIlx0XHREZXZpY2UgdHlwZTogJTA0eCAoJXMpXG4iLCBjaGlsZC0+ZGV2aWNlX3R5 cGUsCj4+ID4+IC0JCSAgICAgICBjaGlsZF9kZXZpY2VfdHlwZShjaGlsZC0+ZGV2aWNlX3R5cGUp KTsKPj4gPj4gIAkJcHJpbnRmKCJcdFx0U2lnbmF0dXJlOiAlLipzXG4iLCAoaW50KXNpemVvZihj aGlsZC0+ZGV2aWNlX2lkKSwgY2hpbGQtPmRldmljZV9pZCk7Cj4+ID4+IC0JCXByaW50ZigiXHRc dEFJTSBvZmZzZXQ6ICVkXG4iLCBjaGlsZC0+YWRkaW5fb2Zmc2V0KTsKPj4gPj4gLQkJcHJpbnRm KCJcdFx0RFZPIHBvcnQ6IDB4JTAyeFxuIiwgY2hpbGQtPmR2b19wb3J0KTsKPj4gPj4gLQl9IGVs c2UgeyAvKiAxNTIrIGhhdmUgRUZQIGJsb2NrcyBoZXJlICovCj4+ID4+IC0JCXByaW50ZigiXHRF RlAgZGV2aWNlIGluZm86XG4iKTsKPj4gPj4gLQkJcHJpbnRmKCJcdFx0RGV2aWNlIGhhbmRsZTog MHglMDR4ICglcylcbiIsIGVmcC0+aGFuZGxlLAo+PiA+PiAtCQkgICAgICAgY2hpbGRfZGV2aWNl X2hhbmRsZShlZnAtPmhhbmRsZSkpOwo+PiA+PiAtCQlwcmludGYoIlx0XHREZXZpY2UgdHlwZTog MHglMDR4ICglcylcbiIsIGVmcC0+ZGV2aWNlX3R5cGUsCj4+ID4+IC0JCSAgICAgICBjaGlsZF9k ZXZpY2VfdHlwZShlZnAtPmRldmljZV90eXBlKSk7Cj4+ID4+IC0JCWR1bXBfY2hpbGRfZGV2aWNl X3R5cGVfYml0cyhlZnAtPmRldmljZV90eXBlKTsKPj4gPj4gLQkJcHJpbnRmKCJcdFx0STJDIHNw ZWVkOiAweCUwMnhcbiIsIGVmcC0+aTJjX3NwZWVkKTsKPj4gPj4gLQkJcHJpbnRmKCJcdFx0RFAg b25ib2FyZCByZWRyaXZlcjogMHglMDJ4XG4iLCBlZnAtPmRwX29uYm9hcmRfcmVkcml2ZXIpOwo+ PiA+PiAtCQlwcmludGYoIlx0XHREUCBvbmRvY2sgcmVkcml2ZXI6IDB4JTAyeFxuIiwgZWZwLT5k cF9vbmRvY2tfcmVkcml2ZXIpOwo+PiA+PiAtCQlwcmludGYoIlx0XHRIRE1JIG1heCBkYXRhIHJh dGU6IDB4JTAyeFxuIiwgZWZwLT5oZG1pX21heF9kYXRhX3JhdGUpOwo+PiA+PiAtCQlwcmludGYo Ilx0XHRIRE1JIGxldmVsIHNoaWZ0ZXIgdmFsdWU6IDB4JTAyeFxuIiwgZWZwLT5oZG1pX2xldmVs X3NoaWZ0ZXJfdmFsdWUpOwo+PiA+PiAtCQlwcmludGYoIlx0XHRPZmZzZXQgdG8gRFREIGJ1ZmZl ciBmb3IgZWRpZGxlc3MgRUZQOiAweCUwMnhcbiIsIGVmcC0+ZHRkX2J1Zl9wdHIpOwo+PiA+PiAt CQlwcmludGYoIlx0XHREdWFsIHBpcGUgZ2FuZ2VkIGVEUDogJXNcbiIsIFlFU05PKGVmcC0+Z2Fu Z2VkX2VkcCkpOwo+PiA+PiAtCQlwcmludGYoIlx0XHRDb21wcmVzc2lvbiBtZXRob2QgQ1BTOiAl c1xuIiwgWUVTTk8oZWZwLT5jb21wcmVzc2lvbl9tZXRob2QpKTsKPj4gPj4gLQkJcHJpbnRmKCJc dFx0Q29tcHJlc3Npb24gZW5hYmxlOiAlc1xuIiwgWUVTTk8oZWZwLT5jb21wcmVzc2lvbl9lbmFi bGUpKTsKPj4gPj4gLQkJcHJpbnRmKCJcdFx0RWRpZGxlc3MgRUZQOiAlc1xuIiwgWUVTTk8oZWZw LT5lZGlkbGVzc19lZnApKTsKPj4gPj4gLQkJcHJpbnRmKCJcdFx0Q29tcHJlc3Npb24gc3RydWN0 dXJlIGluZGV4OiAweCUwMngpXG4iLCBlZnAtPmNvbXByZXNzaW9uX3N0cnVjdHVyZV9pbmRleCk7 Cj4+ID4+IC0JCXByaW50ZigiXHRcdFNsYXZlIERESSBwb3J0OiAweCUwMnggKCVzKVxuIiwgZWZw LT5zbGF2ZV9wb3J0LCBkdm9fcG9ydChlZnAtPnNsYXZlX3BvcnQpKTsKPj4gPj4gLQkJcHJpbnRm KCJcdFx0QUlNIG9mZnNldDogJWRcbiIsIGNoaWxkLT5hZGRpbl9vZmZzZXQpOwo+PiA+PiAtCQlw cmludGYoIlx0XHRQb3J0OiAweCUwMnggKCVzKVxuIiwgZWZwLT5kdm9fcG9ydCwgZHZvX3BvcnQo ZWZwLT5kdm9fcG9ydCkpOwo+PiA+PiAtCQlwcmludGYoIlx0XHRBSU0gSTJDIHBpbjogMHglMDJ4 XG4iLCBlZnAtPmkyY19waW4pOwo+PiA+PiAtCQlwcmludGYoIlx0XHRBSU0gU2xhdmUgYWRkcmVz czogMHglMDJ4XG4iLCBlZnAtPnNsYXZlX2FkZHIpOwo+PiA+PiAtCQlwcmludGYoIlx0XHREREMg cGluOiAweCUwMnhcbiIsIGVmcC0+ZGRjX3Bpbik7Cj4+ID4+IC0JCXByaW50ZigiXHRcdEVESUQg YnVmZmVyIHB0cjogMHglMDJ4XG4iLCBlZnAtPmVkaWRfcHRyKTsKPj4gPj4gLQkJcHJpbnRmKCJc dFx0RFZPIGNvbmZpZzogMHglMDJ4XG4iLCBlZnAtPmR2b19jZmcpOwo+PiA+PiAtCQlwcmludGYo Ilx0XHRIUEQgc2Vuc2UgaW52ZXJ0OiAlc1xuIiwgWUVTTk8oZWZwLT5ocGRfaW52ZXJ0KSk7Cj4+ ID4+IC0JCXByaW50ZigiXHRcdElib29zdCBlbmFibGU6ICVzXG4iLCBZRVNOTyhlZnAtPmlib29z dCkpOwo+PiA+PiAtCQlwcmludGYoIlx0XHRPbmJvYXJkIExTUENPTjogJXNcbiIsIFlFU05PKGVm cC0+bHNwY29uKSk7Cj4+ID4+IC0JCXByaW50ZigiXHRcdExhbmUgcmV2ZXJzYWw6ICVzXG4iLCBZ RVNOTyhlZnAtPmxhbmVfcmV2ZXJzYWwpKTsKPj4gPj4gLQkJcHJpbnRmKCJcdFx0RUZQIHJvdXRl ZCB0aHJvdWdoIGRvY2s6ICVzXG4iLCBZRVNOTyhlZnAtPmVmcF9yb3V0ZWQpKTsKPj4gPj4gLQkJ cHJpbnRmKCJcdFx0SERNSSBjb21wYXRpYmxlPyAlc1xuIiwgWUVTTk8oZWZwLT5oZG1pX3N1cHBv cnQpKTsKPj4gPj4gLQkJcHJpbnRmKCJcdFx0RFAgY29tcGF0aWJsZT8gJXNcbiIsIFlFU05PKGVm cC0+ZHBfc3VwcG9ydCkpOwo+PiA+PiAtCQlwcmludGYoIlx0XHRUTURTIGNvbXBhdGlibGU/ICVz XG4iLCBZRVNOTyhlZnAtPnRtZHNfc3VwcG9ydCkpOwo+PiA+PiAtCQlwcmludGYoIlx0XHRBdXgg Y2hhbm5lbDogMHglMDJ4XG4iLCBlZnAtPmF1eF9jaGFubmVsKTsKPj4gPj4gLQkJcHJpbnRmKCJc dFx0RG9uZ2xlIGRldGVjdDogMHglMDJ4XG4iLCBlZnAtPmRvbmdsZV9kZXRlY3QpOwo+PiA+PiAt CQlwcmludGYoIlx0XHRJbnRlZ3JhdGVkIGVuY29kZXIgaW5zdGVhZCBvZiBTRFZPOiAlc1xuIiwg WUVTTk8oZWZwLT5pbnRlZ3JhdGVkX2VuY29kZXIpKTsKPj4gPj4gLQkJcHJpbnRmKCJcdFx0SG90 cGx1IGNvbm5lY3Qgc3RhdHVzOiAweCUwMnhcbiIsIGVmcC0+aHBkX3N0YXR1cyk7Cj4+ID4+IC0J CXByaW50ZigiXHRcdFNEVk8gc3RhbGwgc2lnbmFsIGF2YWlsYWJsZTogJXNcbiIsIFlFU05PKGVm cC0+c2R2b19zdGFsbCkpOwo+PiA+PiAtCQlwcmludGYoIlx0XHRQaXBlIGNhcGFiaWxpdGllczog MHglMDJ4XG4iLCBlZnAtPnBpcGVfY2FwKTsKPj4gPj4gLQkJcHJpbnRmKCJcdFx0RFZPIHdpcmlu ZzogMHglMDJ4XG4iLCBlZnAtPmR2b193aXJpbmcpOwo+PiA+PiAtCQlwcmludGYoIlx0XHRNSVBJ IGJyaWRnZSB0eXBlOiAlMDJ4ICglcylcbiIsIGVmcC0+bWlwaV9icmlkZ2VfdHlwZSwKPj4gPj4g LQkJICAgICAgIG1pcGlfYnJpZGdlX3R5cGUoZWZwLT5taXBpX2JyaWRnZV90eXBlKSk7Cj4+ID4+ IC0JCXByaW50ZigiXHRcdERldmljZSBjbGFzcyBleHRlbmRzaW9uOiAweCUwMnhcbiIsIGVmcC0+ ZXh0ZW5kZWRfdHlwZSk7Cj4+ID4+IC0JCXByaW50ZigiXHRcdERWTyBmdW5jdGlvbjogMHglMDJ4 XG4iLCBlZnAtPmR2b19mdW5jdGlvbik7Cj4+ID4+ICsJfSBlbHNlIHsKPj4gPj4gKwkJcHJpbnRm KCJcdFx0STJDIHNwZWVkOiAweCUwMnhcbiIsIGNoaWxkLT5pMmNfc3BlZWQpOwo+PiA+PiArCQlw cmludGYoIlx0XHREUCBvbmJvYXJkIHJlZHJpdmVyOiAweCUwMnhcbiIsIGNoaWxkLT5kcF9vbmJv YXJkX3JlZHJpdmVyKTsKPj4gPj4gKwkJcHJpbnRmKCJcdFx0RFAgb25kb2NrIHJlZHJpdmVyOiAw eCUwMnhcbiIsIGNoaWxkLT5kcF9vbmRvY2tfcmVkcml2ZXIpOwo+PiA+PiArCQlwcmludGYoIlx0 XHRIRE1JIGxldmVsIHNoaWZ0ZXIgdmFsdWU6IDB4JTAyeFxuIiwgY2hpbGQtPmhkbWlfbGV2ZWxf c2hpZnRlcl92YWx1ZSk7Cj4+ID4+ICsJCXByaW50ZigiXHRcdEhETUkgbWF4IGRhdGEgcmF0ZTog MHglMDJ4XG4iLCBjaGlsZC0+aGRtaV9tYXhfZGF0YV9yYXRlKTsKPj4gPj4gKwkJcHJpbnRmKCJc dFx0T2Zmc2V0IHRvIERURCBidWZmZXIgZm9yIGVkaWRsZXNzIENISUxEOiAweCUwMnhcbiIsIGNo aWxkLT5kdGRfYnVmX3B0cik7Cj4+ID4+ICsJCXByaW50ZigiXHRcdEVkaWRsZXNzIEVGUDogJXNc biIsIFlFU05PKGNoaWxkLT5lZGlkbGVzc19lZnApKTsKPj4gPj4gKwkJcHJpbnRmKCJcdFx0Q29t cHJlc3Npb24gZW5hYmxlOiAlc1xuIiwgWUVTTk8oY2hpbGQtPmNvbXByZXNzaW9uX2VuYWJsZSkp Owo+PiA+PiArCQlwcmludGYoIlx0XHRDb21wcmVzc2lvbiBtZXRob2QgQ1BTOiAlc1xuIiwgWUVT Tk8oY2hpbGQtPmNvbXByZXNzaW9uX21ldGhvZCkpOwo+PiA+PiArCQlwcmludGYoIlx0XHREdWFs IHBpcGUgZ2FuZ2VkIGVEUDogJXNcbiIsIFlFU05PKGNoaWxkLT5nYW5nZWRfZWRwKSk7Cj4+ID4+ ICsJCXByaW50ZigiXHRcdENvbXByZXNzaW9uIHN0cnVjdHVyZSBpbmRleDogMHglMDJ4KVxuIiwg Y2hpbGQtPmNvbXByZXNzaW9uX3N0cnVjdHVyZV9pbmRleCk7Cj4+ID4+ICsJCXByaW50ZigiXHRc dFNsYXZlIERESSBwb3J0OiAweCUwMnggKCVzKVxuIiwgY2hpbGQtPnNsYXZlX3BvcnQsIGR2b19w b3J0KGNoaWxkLT5zbGF2ZV9wb3J0KSk7Cj4+ID4+ICsJfQo+PiA+PiArCj4+ID4+ICsJcHJpbnRm KCJcdFx0QUlNIG9mZnNldDogJWRcbiIsIGNoaWxkLT5hZGRpbl9vZmZzZXQpOwo+PiA+PiArCXBy aW50ZigiXHRcdERWTyBQb3J0OiAweCUwMnggKCVzKVxuIiwgY2hpbGQtPmR2b19wb3J0LCBkdm9f cG9ydChjaGlsZC0+ZHZvX3BvcnQpKTsKPj4gPj4gKwo+PiA+PiArCWlmIChjb250ZXh0LT5iZGIt PnZlcnNpb24gPCAxNTIpCj4+ID4+ICsJCXJldHVybjsKPj4gPj4gKwo+PiA+PiArCXByaW50Zigi XHRcdEFJTSBJMkMgcGluOiAweCUwMnhcbiIsIGNoaWxkLT5pMmNfcGluKTsKPj4gPj4gKwlwcmlu dGYoIlx0XHRBSU0gU2xhdmUgYWRkcmVzczogMHglMDJ4XG4iLCBjaGlsZC0+c2xhdmVfYWRkcik7 Cj4+ID4+ICsJcHJpbnRmKCJcdFx0RERDIHBpbjogMHglMDJ4XG4iLCBjaGlsZC0+ZGRjX3Bpbik7 Cj4+ID4+ICsJcHJpbnRmKCJcdFx0RURJRCBidWZmZXIgcHRyOiAweCUwMnhcbiIsIGNoaWxkLT5l ZGlkX3B0cik7Cj4+ID4+ICsJcHJpbnRmKCJcdFx0RFZPIGNvbmZpZzogMHglMDJ4XG4iLCBjaGls ZC0+ZHZvX2NmZyk7Cj4+ID4+ICsKPj4gPj4gKwlpZiAoY29udGV4dC0+YmRiLT52ZXJzaW9uIDwg MTU4KSB7Cj4+ID4+ICsJCXByaW50ZigiXHRcdERWTzIgUG9ydDogMHglMDJ4ICglcylcbiIsIGNo aWxkLT5kdm8yX3BvcnQsIGR2b19wb3J0KGNoaWxkLT5kdm8yX3BvcnQpKTsKPj4gPj4gKwkJcHJp bnRmKCJcdFx0STJDMiBwaW46IDB4JTAyeFxuIiwgY2hpbGQtPmkyYzJfcGluKTsKPj4gPj4gKwkJ cHJpbnRmKCJcdFx0U2xhdmUyIGFkZHJlc3M6IDB4JTAyeFxuIiwgY2hpbGQtPnNsYXZlMl9hZGRy KTsKPj4gPj4gKwkJcHJpbnRmKCJcdFx0RERDMiBwaW46IDB4JTAyeFxuIiwgY2hpbGQtPmRkYzJf cGluKTsKPj4gPj4gKwl9IGVsc2Ugewo+PiA+PiArCQlwcmludGYoIlx0XHRFRlAgcm91dGVkIHRo cm91Z2ggZG9jazogJXNcbiIsIFlFU05PKGNoaWxkLT5lZnBfcm91dGVkKSk7Cj4+ID4+ICsJCXBy aW50ZigiXHRcdExhbmUgcmV2ZXJzYWw6ICVzXG4iLCBZRVNOTyhjaGlsZC0+bGFuZV9yZXZlcnNh bCkpOwo+PiA+PiArCQlwcmludGYoIlx0XHRPbmJvYXJkIExTUENPTjogJXNcbiIsIFlFU05PKGNo aWxkLT5sc3Bjb24pKTsKPj4gPj4gKwkJcHJpbnRmKCJcdFx0SWJvb3N0IGVuYWJsZTogJXNcbiIs IFlFU05PKGNoaWxkLT5pYm9vc3QpKTsKPj4gPj4gKwkJcHJpbnRmKCJcdFx0SFBEIHNlbnNlIGlu dmVydDogJXNcbiIsIFlFU05PKGNoaWxkLT5ocGRfaW52ZXJ0KSk7Cj4+ID4+ICsJCXByaW50Zigi XHRcdEhETUkgY29tcGF0aWJsZT8gJXNcbiIsIFlFU05PKGNoaWxkLT5oZG1pX3N1cHBvcnQpKTsK Pj4gPj4gKwkJcHJpbnRmKCJcdFx0RFAgY29tcGF0aWJsZT8gJXNcbiIsIFlFU05PKGNoaWxkLT5k cF9zdXBwb3J0KSk7Cj4+ID4+ICsJCXByaW50ZigiXHRcdFRNRFMgY29tcGF0aWJsZT8gJXNcbiIs IFlFU05PKGNoaWxkLT50bWRzX3N1cHBvcnQpKTsKPj4gPj4gKwkJcHJpbnRmKCJcdFx0QXV4IGNo YW5uZWw6IDB4JTAyeFxuIiwgY2hpbGQtPmF1eF9jaGFubmVsKTsKPj4gPj4gKwkJcHJpbnRmKCJc dFx0RG9uZ2xlIGRldGVjdDogMHglMDJ4XG4iLCBjaGlsZC0+ZG9uZ2xlX2RldGVjdCk7Cj4+ID4K Pj4gPiBUaGUgdmVyc2lvbiBvZiB0aGUgc3BlYyBJIGhhdmUgYXQgaGFuZCBzYXlzIGF1eCBhbmQg ZG9uZ2xlIGFyZQo+PiA+IGFscmVhZHkgcGFydCBvZiB2ZXJzaW9uIDE1NS4KPj4gCj4+IFNlZW1z IGxpa2UgZHZvMi9pMmMyL3NsYXZlMi9kZGMyIHdlcmUgY29udmVydGVkIHRvIGZsYWdzIGF0IDE1 NS4gT2theSBpZgo+PiBJIGp1c3QgY2hhbmdlIHRoZSBjb25kaXRpb24gYWJvdmUgZnJvbSA8IDE1 OCB0byA8IDE1NT8KPgo+IEF5ZS4KPgo+IEkgZGlkbid0IHRyYXdsIHRocm91Z2ggYWxsIHRoZSBn cml0dHkgZGV0YWlscyBvZiB0aGUgZW50aXJlIHNlcmllcywgYnV0Cj4gd2hhdCBJIGRvIHNlZSBJ IGxpa2UsIHNvIGZvciB0aGUgc2VyaWVzCj4gQWNrZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CgpUaGFua3MsIHB1c2hlZCB0aGUgbG90LgoKPiBJ IHdvbmRlciBpZiB3ZSBzaG91bGQgYWRkIG1vcmUgdmVyc2lvbiBjaGVja3Mgc28gdGhhdCB3ZSB3 b3VsZG4ndCBkdW1wCj4gdGhpbmdzIHRoYXQgYXJlbid0IGFjdHVhbGx5IHNwZWNpZmllZD8gT25l IGNyYXp5IGlkZWEgSSBoYWQgaXMgdGhhdCB3ZQo+IGNvdWxkIGRlZmluZSBhIHBhcmFsbGVsIHN0 cnVjdHVyZSB3aGljaCB3b3VsZCBoYXZlIGEgbWF0Y2hpbmcgdTggbWVtYmVyCj4gdG8gZXZlcnl0 aGluZyBpbiB0aGUgY2hpbGRfZGV2aWNlX2NvbmZpZywgYW5kIHdlIHdvdWxkIGluaXRpYWxpemUK PiBlYWNoIG1lbWJlciB3aXRoIHRoZSBjb3JyZWN0IHZlcnNpb24gbnVtYmVyLiBUaGVuIHdlIGNv dWxkIGhhdmUgc29tZQo+IGtpbmQgb2YgbmljZSBkdW1wIG1hY3JvL2Z1bmN0aW9uIHRoYXQgY2hl Y2tzIHRoZSBjdXJyZW50IFZCVCB2ZXJzaW9uCj4gYWdhaW5zdCB0aGUgbnVtYmVyIGZyb20gc2Fp ZCBwYXJhbGxlbCBzdHJ1Y3R1cmUuCgpPdmVyZW5naW5lZXJpbmc/IDspCgpCUiwKSmFuaS4KCgo+ Cj4+IAo+PiBCUiwKPj4gSmFuaS4KPj4gCj4+IAo+PiA+Cj4+ID4+ICsJfQo+PiA+PiArCj4+ID4+ ICsJcHJpbnRmKCJcdFx0UGlwZSBjYXBhYmlsaXRpZXM6IDB4JTAyeFxuIiwgY2hpbGQtPnBpcGVf Y2FwKTsKPj4gPj4gKwlwcmludGYoIlx0XHRTRFZPIHN0YWxsIHNpZ25hbCBhdmFpbGFibGU6ICVz XG4iLCBZRVNOTyhjaGlsZC0+c2R2b19zdGFsbCkpOwo+PiA+PiArCXByaW50ZigiXHRcdEhvdHBs dSBjb25uZWN0IHN0YXR1czogMHglMDJ4XG4iLCBjaGlsZC0+aHBkX3N0YXR1cyk7Cj4+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgICBeCj4+ID4gUHJlLWV4aXN0aW5nIHR5cG8KPj4gPgo+PiA+ PiArCXByaW50ZigiXHRcdEludGVncmF0ZWQgZW5jb2RlciBpbnN0ZWFkIG9mIFNEVk86ICVzXG4i LCBZRVNOTyhjaGlsZC0+aW50ZWdyYXRlZF9lbmNvZGVyKSk7Cj4+ID4+ICsJcHJpbnRmKCJcdFx0 RFZPIHdpcmluZzogMHglMDJ4XG4iLCBjaGlsZC0+ZHZvX3dpcmluZyk7Cj4+ID4+ICsKPj4gPj4g KwlpZiAoY29udGV4dC0+YmRiLT52ZXJzaW9uIDwgMTcxKSB7Cj4+ID4+ICsJCXByaW50ZigiXHRc dERWTzIgd2lyaW5nOiAweCUwMnhcbiIsIGNoaWxkLT5kdm8yX3dpcmluZyk7Cj4+ID4+ICsJfSBl bHNlIHsKPj4gPj4gKwkJcHJpbnRmKCJcdFx0TUlQSSBicmlkZ2UgdHlwZTogJTAyeCAoJXMpXG4i LCBjaGlsZC0+bWlwaV9icmlkZ2VfdHlwZSwKPj4gPj4gKwkJICAgICAgIG1pcGlfYnJpZGdlX3R5 cGUoY2hpbGQtPm1pcGlfYnJpZGdlX3R5cGUpKTsKPj4gPj4gIAl9Cj4+ID4+ICAKPj4gPj4gKwlw cmludGYoIlx0XHREZXZpY2UgY2xhc3MgZXh0ZW5kc2lvbjogMHglMDJ4XG4iLCBjaGlsZC0+ZXh0 ZW5kZWRfdHlwZSk7Cj4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Cj4+ID4gZGl0dG8KPj4gPgo+PiA+PiArCXByaW50ZigiXHRcdERWTyBmdW5jdGlvbjogMHglMDJ4 XG4iLCBjaGlsZC0+ZHZvX2Z1bmN0aW9uKTsKPj4gPj4gKwo+PiA+PiAgCWlmIChjb250ZXh0LT5i ZGItPnZlcnNpb24gPj0gMTk1KSB7Cj4+ID4+IC0JCXByaW50ZigiXHRcdERQIFVTQiB0eXBlIEMg c3VwcG9ydDogJXNcbiIsIFlFU05PKGVmcC0+ZHBfdXNiX3R5cGVfYykpOwo+PiA+PiAtCQlwcmlu dGYoIlx0XHQyWCBEUCBHUElPIGluZGV4OiAweCUwMnhcbiIsIGVmcC0+ZHBfZ3Bpb19pbmRleCk7 Cj4+ID4+IC0JCXByaW50ZigiXHRcdDJYIERQIEdQSU8gcGluIG51bWJlcjogMHglMDJ4XG4iLCBl ZnAtPmRwX2dwaW9fcGluX251bSk7Cj4+ID4+ICsJCXByaW50ZigiXHRcdERQIFVTQiB0eXBlIEMg c3VwcG9ydDogJXNcbiIsIFlFU05PKGNoaWxkLT5kcF91c2JfdHlwZV9jKSk7Cj4+ID4+ICsJCXBy aW50ZigiXHRcdDJYIERQIEdQSU8gaW5kZXg6IDB4JTAyeFxuIiwgY2hpbGQtPmRwX2dwaW9faW5k ZXgpOwo+PiA+PiArCQlwcmludGYoIlx0XHQyWCBEUCBHUElPIHBpbiBudW1iZXI6IDB4JTAyeFxu IiwgY2hpbGQtPmRwX2dwaW9fcGluX251bSk7Cj4+ID4+ICAJfQo+PiA+PiAgCj4+ID4+ICAJaWYg KGNvbnRleHQtPmJkYi0+dmVyc2lvbiA+PSAxOTYpIHsKPj4gPj4gLQkJcHJpbnRmKCJcdFx0SUJv b3N0IGxldmVsIGZvciBIRE1JOiAweCUwMnhcbiIsIGVmcC0+aGRtaV9pYm9vc3RfbGV2ZWwpOwo+ PiA+PiAtCQlwcmludGYoIlx0XHRJQm9vc3QgbGV2ZWwgZm9yIERQL2VEUDogMHglMDJ4XG4iLCBl ZnAtPmRwX2lib29zdF9sZXZlbCk7Cj4+ID4+ICsJCXByaW50ZigiXHRcdElCb29zdCBsZXZlbCBm b3IgSERNSTogMHglMDJ4XG4iLCBjaGlsZC0+aGRtaV9pYm9vc3RfbGV2ZWwpOwo+PiA+PiArCQlw cmludGYoIlx0XHRJQm9vc3QgbGV2ZWwgZm9yIERQL2VEUDogMHglMDJ4XG4iLCBjaGlsZC0+ZHBf aWJvb3N0X2xldmVsKTsKPj4gPj4gIAl9Cj4+ID4+ICB9Cj4+ID4+ICAKPj4gPj4gLS0gCj4+ID4+ IDIuMTEuMAo+PiAKPj4gLS0gCj4+IEphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNo bm9sb2d5IENlbnRlcgoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9s b2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK