From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Belgaumkar, Vinay" Subject: Re: [PATCH v2 i-g-t] tests/gem_softpin: Use offset addresses in canonical form Date: Thu, 7 Jan 2016 13:34:23 -0800 Message-ID: <20160107213423.GA13110@torourke-desk1> References: <1449843255-32640-1-git-send-email-michel.thierry@intel.com> <1452092439-12345-1-git-send-email-michel.thierry@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id D8E626E36F for ; Thu, 7 Jan 2016 13:34:23 -0800 (PST) Content-Disposition: inline In-Reply-To: <1452092439-12345-1-git-send-email-michel.thierry@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Michel Thierry Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKYW4gMDYsIDIwMTYgYXQgMDM6MDA6MzlQTSArMDAwMCwgTWljaGVsIFRoaWVycnkg d3JvdGU6Cj4gaTkxNSB2YWxpZGF0ZXMgdGhhdCByZXF1ZXN0ZWQgb2Zmc2V0IGlzIGluIGNhbm9u aWNhbCBmb3JtLCBzbyB0ZXN0cyBuZWVkCj4gdG8gY29udmVydCB0aGUgb2Zmc2V0cyBhcyByZXF1 aXJlZC4KPiAKPiBBbHNvIGFkZCB0ZXN0IHRvIHZlcmlmeSBub24tY2Fub25pY2FsIDQ4LWJpdCBh ZGRyZXNzIHdpbGwgYmUgcmVqZWN0ZWQuCj4gCj4gdjI6IFVzZSBzaWduX2V4dGVuZDY0IGZvciBj b252ZXJ0aW5nIHRvIGNhbm9uaWNhbCBmb3JtIChUdnJ0a28pCj4gCj4gQ2M6IFZpbmF5IEJlbGdh dW1rYXIgPHZpbmF5LmJlbGdhdW1rYXJAaW50ZWwuY29tPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AbGludXguaW50ZWwuY29tPgo+IFJldmlld2VkLWJ5OiBWaW5heSBCZWxn YXVta2FyIDx2aW5heS5iZWxnYXVta2FyQGludGVsLmNvbT4gKHYxKQo+IFNpZ25lZC1vZmYtYnk6 IE1pY2hlbCBUaGllcnJ5IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5jb20+Cj4gUmV2aWV3ZWQtYnk6 IFZpbmF5IEJlbGdhdW1rYXIgPHZpbmF5LmJlbGdhdW1rYXJAaW50ZWwuY29tPiAKPiAtLS0KPiAg dGVzdHMvZ2VtX3NvZnRwaW4uYyB8IDY5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCsp LCAyMCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX3NvZnRwaW4uYyBi L3Rlc3RzL2dlbV9zb2Z0cGluLmMKPiBpbmRleCAwOTE5NzE2Li4xY2JkZTRlIDEwMDY0NAo+IC0t LSBhL3Rlc3RzL2dlbV9zb2Z0cGluLmMKPiArKysgYi90ZXN0cy9nZW1fc29mdHBpbi5jCj4gQEAg LTY3LDcgKzY3LDcgQEAgc3RhdGljIHZvaWQgKmNyZWF0ZV9tZW1fYnVmZmVyKHVpbnQ2NF90IHNp emUpOwo+ICBzdGF0aWMgaW50IGdlbV9jYWxsX3VzZXJwdHJfaW9jdGwoaW50IGZkLCBpOTE1X2dl bV91c2VycHRyICp1c2VycHRyKTsKPiAgc3RhdGljIHZvaWQgZ2VtX3Bpbl91c2VycHRyX3Rlc3Qo dm9pZCk7Cj4gIHN0YXRpYyB2b2lkIGdlbV9waW5fYm9fdGVzdCh2b2lkKTsKPiAtc3RhdGljIHZv aWQgZ2VtX3Bpbl9pbnZhbGlkX3ZtYV90ZXN0KGJvb2wgdGVzdF9kZWNvdXBsZV9mbGFncyk7Cj4g K3N0YXRpYyB2b2lkIGdlbV9waW5faW52YWxpZF92bWFfdGVzdChib29sIHRlc3RfZGVjb3VwbGVf ZmxhZ3MsIGJvb2wgdGVzdF9jYW5vbmljYWxfb2Zmc2V0KTsKPiAgc3RhdGljIHZvaWQgZ2VtX3Bp bl9vdmVybGFwX3Rlc3Qodm9pZCk7Cj4gIHN0YXRpYyB2b2lkIGdlbV9waW5faGlnaF9hZGRyZXNz X3Rlc3Qodm9pZCk7Cj4gIAo+IEBAIC0xOTgsNiArMTk4LDE4IEBAIHN0YXRpYyB2b2lkIHNldHVw X2V4ZWNfb2JqKHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyICpleGVjLAo+ICAJZXhl Yy0+b2Zmc2V0ID0gb2Zmc2V0Owo+ICB9Cj4gIAo+ICsvKiBnZW44X2Nhbm9uaWNhbF9hZGRyCj4g KyAqIFVzZWQgdG8gY29udmVydCBhbnkgYWRkcmVzcyBpbnRvIGNhbm9uaWNhbCBmb3JtLCBpLmUu IFs2Mzo0OF0gPT0gWzQ3XS4KPiArICogQmFzZWQgb24ga2VybmVsJ3Mgc2lnbl9leHRlbmQ2NCBp bXBsZW1lbnRhdGlvbi4KPiArICogQGFkZHJlc3MgLSBhIHZpcnR1YWwgYWRkcmVzcwo+ICsqLwo+ ICsjZGVmaW5lIEdFTjhfSElHSF9BRERSRVNTX0JJVCA0Nwo+ICtzdGF0aWMgdWludDY0X3QgZ2Vu OF9jYW5vbmljYWxfYWRkcih1aW50NjRfdCBhZGRyZXNzKQo+ICt7Cj4gKwlfX3U4IHNoaWZ0ID0g NjMgLSBHRU44X0hJR0hfQUREUkVTU19CSVQ7Cj4gKwlyZXR1cm4gKF9fczY0KShhZGRyZXNzIDw8 IHNoaWZ0KSA+PiBzaGlmdDsKPiArfQo+ICsKPiAgLyogZ2VtX3N0b3JlX2RhdGFfc3ZtCj4gICAq IHBvcHVsYXRlIGJhdGNoIGJ1ZmZlciB3aXRoIE1JX1NUT1JFX0RXT1JEX0lNTSBjb21tYW5kCj4g ICAqIEBmZDogZHJtIGZpbGUgZGVzY3JpcHRvcgo+IEBAIC02MzAsNiArNjQyLDcgQEAgc3RhdGlj IHZvaWQgZ2VtX3Bpbl9vdmVybGFwX3Rlc3Qodm9pZCkKPiAgICogU2hhcmUgd2l0aCBHUFUgdXNp bmcgdXNlcnB0ciBpb2N0bAo+ICAgKiBDcmVhdGUgYmF0Y2ggYnVmZmVyIHRvIHdyaXRlIERBVEEg aW4gZmlyc3QgZWxlbWVudCBvZiBlYWNoIGJ1ZmZlcgo+ICAgKiBQaW4gZWFjaCBidWZmZXIgdG8g dmFyeWluZyBhZGRyZXNzZXMgc3RhcnRpbmcgZnJvbSAweDgwMDAwMDAwMDAwMCBnb2luZyBiZWxv dwo+ICsgKiAocmVxdWlyZXMgb2Zmc2V0cyBpbiBjYW5vbmljYWwgZm9ybSkKPiAgICogRXhlY3V0 ZSBCYXRjaCBCdWZmZXIgb24gQmxpdCByaW5nIFNUUkVTU19OVU1fTE9PUFMgdGltZXMKPiAgICog VmFsaWRhdGUgZXZlcnkgYnVmZmVyIGhhcyBEQVRBIGluIGZpcnN0IGVsZW1lbnQKPiAgICogUmlu c2UgYW5kIFJlcGVhdCBvbiBSZW5kZXIgcmluZwo+IEBAIC02MzcsNyArNjUwLDcgQEAgc3RhdGlj IHZvaWQgZ2VtX3Bpbl9vdmVybGFwX3Rlc3Qodm9pZCkKPiAgI2RlZmluZSBTVFJFU1NfTlVNX0JV RkZFUlMgMTAwMDAwCj4gICNkZWZpbmUgU1RSRVNTX05VTV9MT09QUyAxMDAKPiAgI2RlZmluZSBT VFJFU1NfU1RPUkVfQ09NTUFORFMgNCAqIFNUUkVTU19OVU1fQlVGRkVSUwo+IC0KPiArI2RlZmlu ZSBTVFJFU1NfU1RBUlRfQUREUkVTUyAweDgwMDAwMDAwMDAwMAo+ICBzdGF0aWMgdm9pZCBnZW1f c29mdHBpbl9zdHJlc3NfdGVzdCh2b2lkKQo+ICB7Cj4gIAlpOTE1X2dlbV91c2VycHRyIHVzZXJw dHI7Cj4gQEAgLTY1MCw3ICs2NjMsNyBAQCBzdGF0aWMgdm9pZCBnZW1fc29mdHBpbl9zdHJlc3Nf dGVzdCh2b2lkKQo+ICAJdWludDMyX3QgYmF0Y2hfYnVmX2hhbmRsZTsKPiAgCWludCByaW5nLCBs ZW47Cj4gIAlpbnQgYnVmLCBsb29wOwo+IC0JdWludDY0X3QgcGlubmluZ19vZmZzZXQgPSAweDgw MDAwMDAwMDAwMDsKPiArCXVpbnQ2NF90IHBpbm5pbmdfb2Zmc2V0ID0gU1RSRVNTX1NUQVJUX0FE RFJFU1M7Cj4gIAo+ICAJZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKPiAgCWln dF9yZXF1aXJlKHVzZXNfZnVsbF9wcGd0dChmZCwgRlVMTF80OF9CSVRfUFBHVFQpKTsKPiBAQCAt NjgwLDEwICs2OTMsMTAgQEAgc3RhdGljIHZvaWQgZ2VtX3NvZnRwaW5fc3RyZXNzX3Rlc3Qodm9p ZCkKPiAgCQlzZXR1cF9leGVjX29iaigmZXhlY19vYmplY3QyW2J1Zl0sIHNoYXJlZF9oYW5kbGVb YnVmXSwKPiAgCQkJICAgICAgIEVYRUNfT0JKRUNUX1BJTk5FRCB8Cj4gIAkJCSAgICAgICBFWEVD X09CSkVDVF9TVVBQT1JUU180OEJfQUREUkVTUywKPiAtCQkJICAgICAgIHBpbm5pbmdfb2Zmc2V0 KTsKPiArCQkJICAgICAgIGdlbjhfY2Fub25pY2FsX2FkZHIocGlubmluZ19vZmZzZXQpKTsKPiAg CQlsZW4gKz0gZ2VtX3N0b3JlX2RhdGFfc3ZtKGZkLCBiYXRjaF9idWZmZXIgKyAobGVuLzQpLAo+ IC0JCQkJCSAgcGlubmluZ19vZmZzZXQsIGJ1ZiwKPiAtCQkJCQkgIChidWYgPT0gU1RSRVNTX05V TV9CVUZGRVJTLTEpPyBcCj4gKwkJCQkJICBnZW44X2Nhbm9uaWNhbF9hZGRyKHBpbm5pbmdfb2Zm c2V0KSwKPiArCQkJCQkgIGJ1ZiwgKGJ1ZiA9PSBTVFJFU1NfTlVNX0JVRkZFUlMtMSk/IFwKPiAg CQkJCQkgIHRydWU6ZmFsc2UpOwo+ICAKPiAgCQkvKiBkZWNyZW1lbnRhbCA0SyBhbGlnbmVkIGFk ZHJlc3MgKi8KPiBAQCAtNzA1LDEwICs3MTgsMTEgQEAgc3RhdGljIHZvaWQgZ2VtX3NvZnRwaW5f c3RyZXNzX3Rlc3Qodm9pZCkKPiAgCQlmb3IgKGxvb3AgPSAwOyBsb29wIDwgU1RSRVNTX05VTV9M T09QUzsgbG9vcCsrKSB7Cj4gIAkJCXN1Ym1pdF9hbmRfc3luYyhmZCwgJmV4ZWNidWYsIGJhdGNo X2J1Zl9oYW5kbGUpOwo+ICAJCQkvKiBTZXQgcGlubmluZyBvZmZzZXQgYmFjayB0byBvcmlnaW5h bCB2YWx1ZSAqLwo+IC0JCQlwaW5uaW5nX29mZnNldCA9IDB4ODAwMDAwMDAwMDAwOwo+ICsJCQlw aW5uaW5nX29mZnNldCA9IFNUUkVTU19TVEFSVF9BRERSRVNTOwo+ICAJCQlmb3IoYnVmID0gMDsg YnVmIDwgU1RSRVNTX05VTV9CVUZGRVJTOyBidWYrKykgewo+ICAJCQkJZ2VtX3VzZXJwdHJfc3lu YyhmZCwgc2hhcmVkX2hhbmRsZVtidWZdKTsKPiAtCQkJCWlndF9hc3NlcnQoZXhlY19vYmplY3Qy W2J1Zl0ub2Zmc2V0ID09IHBpbm5pbmdfb2Zmc2V0KTsKPiArCQkJCWlndF9hc3NlcnQoZXhlY19v YmplY3QyW2J1Zl0ub2Zmc2V0ID09Cj4gKwkJCQkJZ2VuOF9jYW5vbmljYWxfYWRkcihwaW5uaW5n X29mZnNldCkpOwo+ICAJCQkJaWd0X2ZhaWxfb25fZigqc2hhcmVkX2J1ZmZlcltidWZdICE9IGJ1 ZiwgXAo+ICAJCQkJIk1pc21hdGNoIGluIGJ1ZmZlciAlZCwgaXRlcmF0aW9uICVkOiAweCUwOFhc biIsIFwKPiAgCQkJCWJ1ZiwgbG9vcCwgKnNoYXJlZF9idWZmZXJbYnVmXSk7Cj4gQEAgLTcyNywx MCArNzQxLDExIEBAIHN0YXRpYyB2b2lkIGdlbV9zb2Z0cGluX3N0cmVzc190ZXN0KHZvaWQpCj4g IAkJCSBTVFJFU1NfTlVNX0JVRkZFUlMgKyAxLCBsZW4pOwo+ICAJZm9yIChsb29wID0gMDsgbG9v cCA8IFNUUkVTU19OVU1fTE9PUFM7IGxvb3ArKykgewo+ICAJCXN1Ym1pdF9hbmRfc3luYyhmZCwg JmV4ZWNidWYsIGJhdGNoX2J1Zl9oYW5kbGUpOwo+IC0JCXBpbm5pbmdfb2Zmc2V0ID0gMHg4MDAw MDAwMDAwMDA7Cj4gKwkJcGlubmluZ19vZmZzZXQgPSBTVFJFU1NfU1RBUlRfQUREUkVTUzsKPiAg CQlmb3IoYnVmID0gMDsgYnVmIDwgU1RSRVNTX05VTV9CVUZGRVJTOyBidWYrKykgewo+ICAJCQln ZW1fdXNlcnB0cl9zeW5jKGZkLCBzaGFyZWRfaGFuZGxlW2J1Zl0pOwo+IC0JCQlpZ3RfYXNzZXJ0 KGV4ZWNfb2JqZWN0MltidWZdLm9mZnNldCA9PSBwaW5uaW5nX29mZnNldCk7Cj4gKwkJCWlndF9h c3NlcnQoZXhlY19vYmplY3QyW2J1Zl0ub2Zmc2V0ID09Cj4gKwkJCQlnZW44X2Nhbm9uaWNhbF9h ZGRyKHBpbm5pbmdfb2Zmc2V0KSk7Cj4gIAkJCWlndF9mYWlsX29uX2YoKnNoYXJlZF9idWZmZXJb YnVmXSAhPSBidWYsIFwKPiAgCQkJIk1pc21hdGNoIGluIGJ1ZmZlciAlZCwgXAo+ICAJCQlpdGVy YXRpb24gJWQ6IDB4JTA4WFxuIiwgYnVmLCBsb29wLCAqc2hhcmVkX2J1ZmZlcltidWZdKTsKPiBA QCAtODM3LDEyICs4NTIsMTQgQEAgc3RhdGljIHZvaWQgZ2VtX3dyaXRlX211bHRpcGFnZV9idWZm ZXJfdGVzdCh2b2lkKQo+ICAgKiBUaGlzIHRlc3Qgd2lsbCByZXF1ZXN0IHRvIHBpbiBhIHNoYXJl ZCBidWZmZXIgdG8gYW4gaW52YWxpZAo+ICAgKiBWTUEgID4gNDgtYml0IGFkZHJlc3MgaWYgc3lz dGVtIHN1cHBvcnRzIDQ4QiBQUEdUVDsgaXQgYWxzbwo+ICAgKiB3aWxsIHRlc3QgdGhhdCBhbnkg YXR0ZW1wdCBvZiB1c2luZyBhIDQ4LWJpdCBhZGRyZXNzIHJlcXVpcmVzCj4gLSAqIHRoZSBTVVBQ T1JUU180OEJfQUREUkVTUyBmbGFnLgo+ICsgKiB0aGUgU1VQUE9SVFNfNDhCX0FERFJFU1MgZmxh ZywgYW5kIHRoYXQgNDgtYml0IGFkZHJlc3MgbmVlZCB0byBiZQo+ICsgKiBpbiBjYW5vbmljYWwg Zm9ybSAoYml0cyBbNjM6NDhdID09IFs0N10pLgo+ICAgKiBJZiBzeXN0ZW0gc3VwcG9ydHMgMzJC IFBQR1RULCBpdCB3aWxsIHRlc3QgdGhlIGVxdWl2YWxlbnQgaW52YWxpZCBWTUEKPiAgICogQ3Jl YXRlIHNoYXJlZCBidWZmZXIgb2Ygc2l6ZSA0Swo+ICAgKiBUcnkgYW5kIFBpbiBvYmplY3QgdG8g aW52YWxpZCBhZGRyZXNzCj4gICovCj4gLXN0YXRpYyB2b2lkIGdlbV9waW5faW52YWxpZF92bWFf dGVzdChib29sIHRlc3RfZGVjb3VwbGVfZmxhZ3MpCj4gK3N0YXRpYyB2b2lkIGdlbV9waW5faW52 YWxpZF92bWFfdGVzdChib29sIHRlc3RfZGVjb3VwbGVfZmxhZ3MsCj4gKwkJCQkgICAgIGJvb2wg dGVzdF9jYW5vbmljYWxfb2Zmc2V0KQo+ICB7Cj4gIAlpOTE1X2dlbV91c2VycHRyIHVzZXJwdHI7 Cj4gIAlpbnQgZmQsIHJldDsKPiBAQCAtODUyLDYgKzg2OSw3IEBAIHN0YXRpYyB2b2lkIGdlbV9w aW5faW52YWxpZF92bWFfdGVzdChib29sIHRlc3RfZGVjb3VwbGVfZmxhZ3MpCj4gIAl1aW50MzJf dCBzaGFyZWRfYnVmX2hhbmRsZTsKPiAgCWludCByaW5nOwo+ICAJdWludDY0X3QgaW52YWxpZF9h ZGRyZXNzX2Zvcl80OGIgPSAweDkwMDAwMDAwMDAwMDA7IC8qIDUyIGJpdCBhZGRyZXNzICovCj4g Kwl1aW50NjRfdCBub25jYW5vbmljYWxfYWRkcmVzc19mb3JfNDhiID0gMHhGRjAwMDAwMDAwMDA7 IC8qIDQ4IGJpdCBhZGRyZXNzIGluIG5vbmNhbm9uaWNhbCBmb3JtICovCj4gIAl1aW50NjRfdCBp bnZhbGlkX2FkZHJlc3NfZm9yXzMyYiA9IDB4OTAwMDAwMDAwOyAvKiAzNiBiaXQgYWRkcmVzcyAq Lwo+ICAKPiAgCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7Cj4gQEAgLTg2NSw3 ICs4ODMsMTEgQEAgc3RhdGljIHZvaWQgZ2VtX3Bpbl9pbnZhbGlkX3ZtYV90ZXN0KGJvb2wgdGVz dF9kZWNvdXBsZV9mbGFncykKPiAgCS8qIHNoYXJlIHdpdGggR1BVICovCj4gIAlzaGFyZWRfYnVm X2hhbmRsZSA9IGluaXRfdXNlcnB0cihmZCwgJnVzZXJwdHIsIHNoYXJlZF9idWZmZXIsIEJPX1NJ WkUpOwo+ICAKPiAtCWlmICh1c2VzX2Z1bGxfcHBndHQoZmQsIEZVTExfNDhfQklUX1BQR1RUKSAm JiAhdGVzdF9kZWNvdXBsZV9mbGFncykgewo+ICsJaWYgKHVzZXNfZnVsbF9wcGd0dChmZCwgRlVM TF80OF9CSVRfUFBHVFQpICYmIHRlc3RfY2Fub25pY2FsX29mZnNldCkgewo+ICsJCXNldHVwX2V4 ZWNfb2JqKCZleGVjX29iamVjdDJbMF0sIHNoYXJlZF9idWZfaGFuZGxlLAo+ICsJCQkgICAgICAg RVhFQ19PQkpFQ1RfUElOTkVEIHwgRVhFQ19PQkpFQ1RfU1VQUE9SVFNfNDhCX0FERFJFU1MsCj4g KwkJCSAgICAgICBub25jYW5vbmljYWxfYWRkcmVzc19mb3JfNDhiKTsKPiArCX0gZWxzZSBpZiAo dXNlc19mdWxsX3BwZ3R0KGZkLCBGVUxMXzQ4X0JJVF9QUEdUVCkgJiYgIXRlc3RfZGVjb3VwbGVf ZmxhZ3MpIHsKPiAgCQlzZXR1cF9leGVjX29iaigmZXhlY19vYmplY3QyWzBdLCBzaGFyZWRfYnVm X2hhbmRsZSwKPiAgCQkJICAgICAgIEVYRUNfT0JKRUNUX1BJTk5FRCB8IEVYRUNfT0JKRUNUX1NV UFBPUlRTXzQ4Ql9BRERSRVNTLAo+ICAJCQkgICAgICAgaW52YWxpZF9hZGRyZXNzX2Zvcl80OGIp Owo+IEBAIC05NjUsNyArOTg3LDEwIEBAIHN0YXRpYyB2b2lkIGdlbV9waW5faGlnaF9hZGRyZXNz X3Rlc3Qodm9pZCkKPiAgICogVGhpcyB0ZXN0IHdpbGwgY3JlYXRlIGEgc2hhcmVkIGJ1ZmZlciwK PiAgICogYW5kIGNyZWF0ZSBhIGNvbW1hbmQgZm9yIEdQVSB0byB3cml0ZSBkYXRhIGluIGl0LiBJ dCB3aWxsIGF0dGVtcHQKPiAgICogdG8gcGluIHRoZSBidWZmZXIgYXQgYWRkcmVzcyA+IDQ3IGJp dHMgPD0gNDgtYml0Lgo+IC0gKiBDUFUgd2lsbCByZWFkIGFuZCBtYWtlIHN1cmUgZXhwZWN0ZWQg dmFsdWUgaXMgb2J0YWluZWQKPiArICogQ1BVIHdpbGwgcmVhZCBhbmQgbWFrZSBzdXJlIGV4cGVj dGVkIHZhbHVlIGlzIG9idGFpbmVkLgo+ICsgKiBOb3RlIHRoYXQgd2UgbXVzdCBzdWJtaXQgYWRk cmVzc2VzIGluIGNhbm9uaWNhbCBmb3JtLCBub3Qgb25seQo+ICsgKiBiZWNhdXNlIHRoZSBhZGRy ZXNzcyB3aWxsIGJlIHZhbGlkYXRlZCwgYnV0IGFsc28gdGhlIHJldHVybmVkIG9mZnNldAo+ICsg KiB3aWxsIGJlIGluIHRoaXMgZm9ybWF0Lgo+ICAKPiAgICogTWFsbG9jIGEgNEsgYnVmZmVyCj4g ICAqIFNoYXJlIGJ1ZmZlciB3aXRoIHdpdGggR1BVIGJ5IHVzaW5nIHVzZXJwdHIgaW9jdGwKPiBA QCAtOTkwLDcgKzEwMTUsNyBAQCBzdGF0aWMgdm9pZCBnZW1fcGluX25lYXJfNDhCaXRfdGVzdCh2 b2lkKQo+ICAJdWludDMyX3QgYmF0Y2hfYnVmX2hhbmRsZSwgc2hhcmVkX2J1Zl9oYW5kbGU7Cj4g IAlpbnQgcmluZywgbGVuOwo+ICAJY29uc3QgdWludDMyX3QgZGF0YSA9IDB4MTIzNDU2Nzg7Cj4g LQl1aW50NjRfdCBoaWdoX2FkZHJlc3M7Cj4gKwl1aW50NjRfdCBoaWdoX2FkZHJlc3MsIGNhbl9o aWdoX2FkZHJlc3M7Cj4gIAo+ICAJZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsK PiAgCWlndF9yZXF1aXJlKHVzZXNfZnVsbF9wcGd0dChmZCwgRlVMTF80OF9CSVRfUFBHVFQpKTsK PiBAQCAtMTAwNywxNCArMTAzMiwxNSBAQCBzdGF0aWMgdm9pZCBnZW1fcGluX25lYXJfNDhCaXRf dGVzdCh2b2lkKQo+ICAKPiAgCWZvciAoaGlnaF9hZGRyZXNzID0gQkVHSU5fSElHSF9BRERSRVNT OyBoaWdoX2FkZHJlc3MgPD0gRU5EX0hJR0hfQUREUkVTUzsKPiAgCQkJCQkJaGlnaF9hZGRyZXNz Kz1BRERSRVNTX0lOQ1JFTUVOVCkgewo+ICsJCWNhbl9oaWdoX2FkZHJlc3MgPSBnZW44X2Nhbm9u aWNhbF9hZGRyKGhpZ2hfYWRkcmVzcyk7Cj4gIAkJLyogY3JlYXRlIGNvbW1hbmQgYnVmZmVyIHdp dGggd3JpdGUgY29tbWFuZCAqLwo+IC0JCWxlbiA9IGdlbV9zdG9yZV9kYXRhX3N2bShmZCwgYmF0 Y2hfYnVmZmVyLCBoaWdoX2FkZHJlc3MsCj4gKwkJbGVuID0gZ2VtX3N0b3JlX2RhdGFfc3ZtKGZk LCBiYXRjaF9idWZmZXIsIGNhbl9oaWdoX2FkZHJlc3MsCj4gIAkJCQkJZGF0YSwgdHJ1ZSk7Cj4g IAkJZ2VtX3dyaXRlKGZkLCBiYXRjaF9idWZfaGFuZGxlLCAwLCBiYXRjaF9idWZmZXIsIGxlbik7 Cj4gIAkJLyogc3VibWl0IGNvbW1hbmQgYnVmZmVyICovCj4gIAkJc2V0dXBfZXhlY19vYmooJmV4 ZWNfb2JqZWN0MlswXSwgc2hhcmVkX2J1Zl9oYW5kbGUsCj4gIAkJCSAgICAgICBFWEVDX09CSkVD VF9QSU5ORUQgfCBFWEVDX09CSkVDVF9TVVBQT1JUU180OEJfQUREUkVTUywKPiAtCQkJICAgICAg IGhpZ2hfYWRkcmVzcyk7Cj4gKwkJCSAgICAgICBjYW5faGlnaF9hZGRyZXNzKTsKPiAgCQlzZXR1 cF9leGVjX29iaigmZXhlY19vYmplY3QyWzFdLCBiYXRjaF9idWZfaGFuZGxlLCAwLCAwKTsKPiAg Cj4gIAkJcmluZyA9IEk5MTVfRVhFQ19SRU5ERVI7Cj4gQEAgLTEwMjIsNyArMTA0OCw3IEBAIHN0 YXRpYyB2b2lkIGdlbV9waW5fbmVhcl80OEJpdF90ZXN0KHZvaWQpCj4gIAkJc3VibWl0X2FuZF9z eW5jKGZkLCAmZXhlY2J1ZiwgYmF0Y2hfYnVmX2hhbmRsZSk7Cj4gIAkJZ2VtX3VzZXJwdHJfc3lu YyhmZCwgc2hhcmVkX2J1Zl9oYW5kbGUpOwo+ICAKPiAtCQlpZ3RfYXNzZXJ0KGV4ZWNfb2JqZWN0 MlswXS5vZmZzZXQgPT0gaGlnaF9hZGRyZXNzKTsKPiArCQlpZ3RfYXNzZXJ0KGV4ZWNfb2JqZWN0 MlswXS5vZmZzZXQgPT0gY2FuX2hpZ2hfYWRkcmVzcyk7Cj4gIAkJLyogY2hlY2sgb24gQ1BVIHRv IHNlZSBpZiB2YWx1ZSBjaGFuZ2VzICovCj4gIAkJaWd0X2ZhaWxfb25fZihzaGFyZWRfYnVmZmVy WzBdICE9IGRhdGEsCj4gIAkJIlxuQ1BVIHJlYWQgZG9lcyBub3QgbWF0Y2ggR1BVIHdyaXRlLCBl eHBlY3RlZDogMHgleCwgXAo+IEBAIC0xMDYzLDEyICsxMDg5LDE1IEBAIGludCBtYWluKGludCBh cmdjLCBjaGFyKiBhcmd2W10pCj4gIAo+ICAJLyogRm9sbG93aW5nIHRlc3RzIG5lZWQgMzIvNDgg Qml0IFBQR1RUIHN1cHBvcnQgKi8KPiAgCWlndF9zdWJ0ZXN0KCJnZW1fcGluX2ludmFsaWRfdm1h Iikgewo+IC0JCWdlbV9waW5faW52YWxpZF92bWFfdGVzdChmYWxzZSk7Cj4gKwkJZ2VtX3Bpbl9p bnZhbGlkX3ZtYV90ZXN0KGZhbHNlLCBmYWxzZSk7Cj4gIAl9Cj4gIAo+ICAJLyogRm9sbG93aW5n IHRlc3RzIG5lZWQgNDggQml0IFBQR1RUIHN1cHBvcnQgKi8KPiArCWlndF9zdWJ0ZXN0KCJnZW5f cGluX25vbmNhbm9uaWNhbF9oaWdoX2FkZHJlc3MiKSB7Cj4gKwkJZ2VtX3Bpbl9pbnZhbGlkX3Zt YV90ZXN0KGZhbHNlLCB0cnVlKTsKPiArCX0KPiAgCWlndF9zdWJ0ZXN0KCJnZW1fcGluX2hpZ2hf YWRkcmVzc193aXRob3V0X2NvcnJlY3RfZmxhZyIpIHsKPiAtCQlnZW1fcGluX2ludmFsaWRfdm1h X3Rlc3QodHJ1ZSk7Cj4gKwkJZ2VtX3Bpbl9pbnZhbGlkX3ZtYV90ZXN0KHRydWUsIGZhbHNlKTsK PiAgCX0KPiAgCWlndF9zdWJ0ZXN0KCJnZW1fc29mdHBpbl9zdHJlc3MiKSB7Cj4gIAkJZ2VtX3Nv ZnRwaW5fc3RyZXNzX3Rlc3QoKTsKPiAtLSAKPiAyLjUuMAo+IApfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=