From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesse Barnes Subject: Re: [PATCH] drm/i915: Add polish to VLV WM shift+mask operations Date: Tue, 10 Mar 2015 14:48:42 -0700 Message-ID: <54FF66BA.3090307@virtuousgeek.org> References: <1425996988-5747-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from gproxy10-pub.mail.unifiedlayer.com (gproxy10-pub.mail.unifiedlayer.com [69.89.20.226]) by gabe.freedesktop.org (Postfix) with SMTP id 595A26E757 for ; Tue, 10 Mar 2015 14:47:49 -0700 (PDT) In-Reply-To: <1425996988-5747-1-git-send-email-ville.syrjala@linux.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.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMDMvMTAvMjAxNSAwNzoxNiBBTSwgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20gd3Jv dGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KPiAKPiBXcmFwIHRoZSBGVyByZWdpc3RlciB2YWx1ZSBzaGlmdCttYXNrIG9wZXJhdGlvbnMg aW50byBhIG1hY3JvIHRvIGhpZGUKPiB0aGUgdWdsaW5lc3MgYSBiaXQuIEFsc28gbWlnaHQgYXZv aWQgYnVncyBkdWUgdG8gdHlwb3MuCj4gCj4gQWxzbyByZW5hbWUgYWxsIHRoZSBwcmltYXJ5L3Nw cml0ZSBwbGFuZSBsb3cgb3JkZXIgYml0IG1hc2tzIHRvIGhhdmUgdGhlCj4gX1ZMViBzdWZmaXgs IHNvIHRoYXQgd2UgY2FuIHVzZSB0aGUgRldfV01fVkxWKCkgbWFjcm8gaW5zdGVhZCBvZiB0aGUK PiBGV19XTSgpIG1hY3JvIGZvciB0aGVtIGluIGEgY29uc2lzdGVudCBtYW5uZXIuIEN1cnNvciBh bmQgYWxsIHRoZSBoaWdoCj4gb3JkZXIgYml0cyBhcmUgbGVmdCB0byB1c2UgdGhlIEZXX1dNKCkg bWFjcm8gYXMgdGhlcmUncyBubyByZWFsCj4gY29uZnVzaW9uIHdpdGggdGhlbS4KPiAKPiBDYzog RGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPgo+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5 cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmggfCAxMCArKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcG0uYyB8IDc0ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKSwgMzggZGVsZXRpb25zKC0p Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggNDk1YjIyYi4uOGZmMDM5ZCAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC00MTYxLDI1ICs0MTYxLDI1IEBAIGVudW0g c2tsX2Rpc3BfcG93ZXJfd2VsbHMgewo+ICAjZGVmaW5lICAgRFNQRldfU1BSSVRFRF9XTTFfU0hJ RlQJMjQKPiAgI2RlZmluZSAgIERTUEZXX1NQUklURURfV00xX01BU0sJKDB4ZmY8PDI0KQo+ICAj ZGVmaW5lICAgRFNQRldfU1BSSVRFRF9TSElGVAkJMTYKPiAtI2RlZmluZSAgIERTUEZXX1NQUklU RURfTUFTSwkJKDB4ZmY8PDE2KQo+ICsjZGVmaW5lICAgRFNQRldfU1BSSVRFRF9NQVNLX1ZMVgko MHhmZjw8MTYpCj4gICNkZWZpbmUgICBEU1BGV19TUFJJVEVDX1dNMV9TSElGVAk4Cj4gICNkZWZp bmUgICBEU1BGV19TUFJJVEVDX1dNMV9NQVNLCSgweGZmPDw4KQo+ICAjZGVmaW5lICAgRFNQRldf U1BSSVRFQ19TSElGVAkJMAo+IC0jZGVmaW5lICAgRFNQRldfU1BSSVRFQ19NQVNLCQkoMHhmZjw8 MCkKPiArI2RlZmluZSAgIERTUEZXX1NQUklURUNfTUFTS19WTFYJKDB4ZmY8PDApCj4gICNkZWZp bmUgRFNQRlc4X0NIVgkJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDcwMGI4KQo+ICAjZGVmaW5lICAg RFNQRldfU1BSSVRFRl9XTTFfU0hJRlQJMjQKPiAgI2RlZmluZSAgIERTUEZXX1NQUklURUZfV00x X01BU0sJKDB4ZmY8PDI0KQo+ICAjZGVmaW5lICAgRFNQRldfU1BSSVRFRl9TSElGVAkJMTYKPiAt I2RlZmluZSAgIERTUEZXX1NQUklURUZfTUFTSwkJKDB4ZmY8PDE2KQo+ICsjZGVmaW5lICAgRFNQ RldfU1BSSVRFRl9NQVNLX1ZMVgkoMHhmZjw8MTYpCj4gICNkZWZpbmUgICBEU1BGV19TUFJJVEVF X1dNMV9TSElGVAk4Cj4gICNkZWZpbmUgICBEU1BGV19TUFJJVEVFX1dNMV9NQVNLCSgweGZmPDw4 KQo+ICAjZGVmaW5lICAgRFNQRldfU1BSSVRFRV9TSElGVAkJMAo+IC0jZGVmaW5lICAgRFNQRldf U1BSSVRFRV9NQVNLCQkoMHhmZjw8MCkKPiArI2RlZmluZSAgIERTUEZXX1NQUklURUVfTUFTS19W TFYJKDB4ZmY8PDApCj4gICNkZWZpbmUgRFNQRlc5X0NIVgkJKFZMVl9ESVNQTEFZX0JBU0UgKyAw eDcwMDdjKSAvKiB3dGYgIzI/ICovCj4gICNkZWZpbmUgICBEU1BGV19QTEFORUNfV00xX1NISUZU CTI0Cj4gICNkZWZpbmUgICBEU1BGV19QTEFORUNfV00xX01BU0sJCSgweGZmPDwyNCkKPiAgI2Rl ZmluZSAgIERTUEZXX1BMQU5FQ19TSElGVAkJMTYKPiAtI2RlZmluZSAgIERTUEZXX1BMQU5FQ19N QVNLCQkoMHhmZjw8MTYpCj4gKyNkZWZpbmUgICBEU1BGV19QTEFORUNfTUFTS19WTFYJCSgweGZm PDwxNikKPiAgI2RlZmluZSAgIERTUEZXX0NVUlNPUkNfV00xX1NISUZUCTgKPiAgI2RlZmluZSAg IERTUEZXX0NVUlNPUkNfV00xX01BU0sJKDB4M2Y8PDE2KQo+ICAjZGVmaW5lICAgRFNQRldfQ1VS U09SQ19TSElGVAkJMAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4IDBlODQ1NTguLjhh YzM1OGQwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gQEAgLTgzNSw2ICs4MzUsMTEg QEAgc3RhdGljIGJvb2wgZzR4X2NvbXB1dGVfc3J3bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ICAJCQkgICAgICBkaXNwbGF5LCBjdXJzb3IpOwo+ICB9Cj4gIAo+ICsjZGVmaW5lIEZXX1dNKHZh bHVlLCBwbGFuZSkgXAo+ICsJKCgodmFsdWUpIDw8IERTUEZXXyAjIyBwbGFuZSAjIyBfU0hJRlQp ICYgRFNQRldfICMjIHBsYW5lICMjIF9NQVNLKQo+ICsjZGVmaW5lIEZXX1dNX1ZMVih2YWx1ZSwg cGxhbmUpIFwKPiArCSgoKHZhbHVlKSA8PCBEU1BGV18gIyMgcGxhbmUgIyMgX1NISUZUKSAmIERT UEZXXyAjIyBwbGFuZSAjIyBfTUFTS19WTFYpCj4gKwo+ICBzdGF0aWMgdm9pZCB2bHZfd3JpdGVf d21fdmFsdWVzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCQkJY29uc3Qgc3RydWN0IHZs dl93bV92YWx1ZXMgKndtKQo+ICB7Cj4gQEAgLTg0OCw1MCArODUzLDUwIEBAIHN0YXRpYyB2b2lk IHZsdl93cml0ZV93bV92YWx1ZXMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAkJICAgKHdt LT5kZGxbcGlwZV0ucHJpbWFyeSA8PCBERExfUExBTkVfU0hJRlQpKTsKPiAgCj4gIAlJOTE1X1dS SVRFKERTUEZXMSwKPiAtCQkgICAoKHdtLT5zci5wbGFuZSA8PCBEU1BGV19TUl9TSElGVCkgJiBE U1BGV19TUl9NQVNLKSB8Cj4gLQkJICAgKCh3bS0+cGlwZVtQSVBFX0JdLmN1cnNvciA8PCBEU1BG V19DVVJTT1JCX1NISUZUKSAmIERTUEZXX0NVUlNPUkJfTUFTSykgfAo+IC0JCSAgICgod20tPnBp cGVbUElQRV9CXS5wcmltYXJ5IDw8IERTUEZXX1BMQU5FQl9TSElGVCkgJiBEU1BGV19QTEFORUJf TUFTS19WTFYpIHwKPiAtCQkgICAoKHdtLT5waXBlW1BJUEVfQV0ucHJpbWFyeSA8PCBEU1BGV19Q TEFORUFfU0hJRlQpICYgRFNQRldfUExBTkVBX01BU0tfVkxWKSk7Cj4gKwkJICAgRldfV00od20t PnNyLnBsYW5lLCBTUikgfAo+ICsJCSAgIEZXX1dNKHdtLT5waXBlW1BJUEVfQl0uY3Vyc29yLCBD VVJTT1JCKSB8Cj4gKwkJICAgRldfV01fVkxWKHdtLT5waXBlW1BJUEVfQl0ucHJpbWFyeSwgUExB TkVCKSB8Cj4gKwkJICAgRldfV01fVkxWKHdtLT5waXBlW1BJUEVfQV0ucHJpbWFyeSwgUExBTkVB KSk7Cj4gIAlJOTE1X1dSSVRFKERTUEZXMiwKPiAtCQkgICAoKHdtLT5waXBlW1BJUEVfQV0uc3By aXRlWzFdIDw8IERTUEZXX1NQUklURUJfU0hJRlQpICYgRFNQRldfU1BSSVRFQl9NQVNLX1ZMVikg fAo+IC0JCSAgICgod20tPnBpcGVbUElQRV9BXS5jdXJzb3IgPDwgRFNQRldfQ1VSU09SQV9TSElG VCkgJiBEU1BGV19DVVJTT1JBX01BU0spIHwKPiAtCQkgICAoKHdtLT5waXBlW1BJUEVfQV0uc3By aXRlWzBdIDw8IERTUEZXX1NQUklURUFfU0hJRlQpICYgRFNQRldfU1BSSVRFQV9NQVNLX1ZMVikp Owo+ICsJCSAgIEZXX1dNX1ZMVih3bS0+cGlwZVtQSVBFX0FdLnNwcml0ZVsxXSwgU1BSSVRFQikg fAo+ICsJCSAgIEZXX1dNKHdtLT5waXBlW1BJUEVfQV0uY3Vyc29yLCBDVVJTT1JBKSB8Cj4gKwkJ ICAgRldfV01fVkxWKHdtLT5waXBlW1BJUEVfQV0uc3ByaXRlWzBdLCBTUFJJVEVBKSk7Cj4gIAlJ OTE1X1dSSVRFKERTUEZXMywKPiAtCQkgICAoKHdtLT5zci5jdXJzb3IgPDwgRFNQRldfQ1VSU09S X1NSX1NISUZUKSAmIERTUEZXX0NVUlNPUl9TUl9NQVNLKSk7Cj4gKwkJICAgRldfV00od20tPnNy LmN1cnNvciwgQ1VSU09SX1NSKSk7Cj4gIAo+ICAJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYp KSB7Cj4gIAkJSTkxNV9XUklURShEU1BGVzdfQ0hWLAo+IC0JCQkgICAoKHdtLT5waXBlW1BJUEVf Ql0uc3ByaXRlWzFdIDw8IERTUEZXX1NQUklURURfU0hJRlQpICYgRFNQRldfU1BSSVRFRF9NQVNL KSB8Cj4gLQkJCSAgICgod20tPnBpcGVbUElQRV9CXS5zcHJpdGVbMF0gPDwgRFNQRldfU1BSSVRF Q19TSElGVCkgJiBEU1BGV19TUFJJVEVDX01BU0spKTsKPiArCQkJICAgRldfV01fVkxWKHdtLT5w aXBlW1BJUEVfQl0uc3ByaXRlWzFdLCBTUFJJVEVEKSB8Cj4gKwkJCSAgIEZXX1dNX1ZMVih3bS0+ cGlwZVtQSVBFX0JdLnNwcml0ZVswXSwgU1BSSVRFQykpOwo+ICAJCUk5MTVfV1JJVEUoRFNQRlc4 X0NIViwKPiAtCQkJICAgKCh3bS0+cGlwZVtQSVBFX0NdLnNwcml0ZVsxXSA8PCBEU1BGV19TUFJJ VEVGX1NISUZUKSAmIERTUEZXX1NQUklURUZfTUFTSykgfAo+IC0JCQkgICAoKHdtLT5waXBlW1BJ UEVfQ10uc3ByaXRlWzBdIDw8IERTUEZXX1NQUklURUVfU0hJRlQpICYgRFNQRldfU1BSSVRFRV9N QVNLKSk7Cj4gKwkJCSAgIEZXX1dNX1ZMVih3bS0+cGlwZVtQSVBFX0NdLnNwcml0ZVsxXSwgU1BS SVRFRikgfAo+ICsJCQkgICBGV19XTV9WTFYod20tPnBpcGVbUElQRV9DXS5zcHJpdGVbMF0sIFNQ UklURUUpKTsKPiAgCQlJOTE1X1dSSVRFKERTUEZXOV9DSFYsCj4gLQkJCSAgICgod20tPnBpcGVb UElQRV9DXS5wcmltYXJ5IDw8IERTUEZXX1BMQU5FQ19TSElGVCkgJiBEU1BGV19QTEFORUNfTUFT SykgfAo+IC0JCQkgICAoKHdtLT5waXBlW1BJUEVfQ10uY3Vyc29yIDw8IERTUEZXX0NVUlNPUkNf U0hJRlQpICYgRFNQRldfQ1VSU09SQ19NQVNLKSk7Cj4gKwkJCSAgIEZXX1dNX1ZMVih3bS0+cGlw ZVtQSVBFX0NdLnByaW1hcnksIFBMQU5FQykgfAo+ICsJCQkgICBGV19XTSh3bS0+cGlwZVtQSVBF X0NdLmN1cnNvciwgQ1VSU09SQykpOwo+ICAJCUk5MTVfV1JJVEUoRFNQSE9XTSwKPiAtCQkJICAg KCgod20tPnNyLnBsYW5lID4+IDkpIDw8IERTUEZXX1NSX0hJX1NISUZUKSAmIERTUEZXX1NSX0hJ X01BU0spIHwKPiAtCQkJICAgKCgod20tPnBpcGVbUElQRV9DXS5zcHJpdGVbMV0gPj4gOCkgPDwg RFNQRldfU1BSSVRFRl9ISV9TSElGVCkgJiBEU1BGV19TUFJJVEVGX0hJX01BU0spIHwKPiAtCQkJ ICAgKCgod20tPnBpcGVbUElQRV9DXS5zcHJpdGVbMF0gPj4gOCkgPDwgRFNQRldfU1BSSVRFRV9I SV9TSElGVCkgJiBEU1BGV19TUFJJVEVFX0hJX01BU0spIHwKPiAtCQkJICAgKCgod20tPnBpcGVb UElQRV9DXS5wcmltYXJ5ID4+IDgpIDw8IERTUEZXX1BMQU5FQ19ISV9TSElGVCkgJiBEU1BGV19Q TEFORUNfSElfTUFTSykgfAo+IC0JCQkgICAoKCh3bS0+cGlwZVtQSVBFX0JdLnNwcml0ZVsxXSA+ PiA4KSA8PCBEU1BGV19TUFJJVEVEX0hJX1NISUZUKSAmIERTUEZXX1NQUklURURfSElfTUFTSykg fAo+IC0JCQkgICAoKCh3bS0+cGlwZVtQSVBFX0JdLnNwcml0ZVswXSA+PiA4KSA8PCBEU1BGV19T UFJJVEVDX0hJX1NISUZUKSAmIERTUEZXX1NQUklURUNfSElfTUFTSykgfAo+IC0JCQkgICAoKCh3 bS0+cGlwZVtQSVBFX0JdLnByaW1hcnkgPj4gOCkgPDwgRFNQRldfUExBTkVCX0hJX1NISUZUKSAm IERTUEZXX1BMQU5FQl9ISV9NQVNLKSB8Cj4gLQkJCSAgICgoKHdtLT5waXBlW1BJUEVfQV0uc3By aXRlWzFdID4+IDgpIDw8IERTUEZXX1NQUklURUJfSElfU0hJRlQpICYgRFNQRldfU1BSSVRFQl9I SV9NQVNLKSB8Cj4gLQkJCSAgICgoKHdtLT5waXBlW1BJUEVfQV0uc3ByaXRlWzBdID4+IDgpIDw8 IERTUEZXX1NQUklURUFfSElfU0hJRlQpICYgRFNQRldfU1BSSVRFQV9ISV9NQVNLKSB8Cj4gLQkJ CSAgICgoKHdtLT5waXBlW1BJUEVfQV0ucHJpbWFyeSA+PiA4KSA8PCBEU1BGV19QTEFORUFfSElf U0hJRlQpICYgRFNQRldfUExBTkVBX0hJX01BU0spKTsKPiArCQkJICAgRldfV00od20tPnNyLnBs YW5lID4+IDksIFNSX0hJKSB8Cj4gKwkJCSAgIEZXX1dNKHdtLT5waXBlW1BJUEVfQ10uc3ByaXRl WzFdID4+IDgsIFNQUklURUZfSEkpIHwKPiArCQkJICAgRldfV00od20tPnBpcGVbUElQRV9DXS5z cHJpdGVbMF0gPj4gOCwgU1BSSVRFRV9ISSkgfAo+ICsJCQkgICBGV19XTSh3bS0+cGlwZVtQSVBF X0NdLnByaW1hcnkgPj4gOCwgUExBTkVDX0hJKSB8Cj4gKwkJCSAgIEZXX1dNKHdtLT5waXBlW1BJ UEVfQl0uc3ByaXRlWzFdID4+IDgsIFNQUklURURfSEkpIHwKPiArCQkJICAgRldfV00od20tPnBp cGVbUElQRV9CXS5zcHJpdGVbMF0gPj4gOCwgU1BSSVRFQ19ISSkgfAo+ICsJCQkgICBGV19XTSh3 bS0+cGlwZVtQSVBFX0JdLnByaW1hcnkgPj4gOCwgUExBTkVCX0hJKSB8Cj4gKwkJCSAgIEZXX1dN KHdtLT5waXBlW1BJUEVfQV0uc3ByaXRlWzFdID4+IDgsIFNQUklURUJfSEkpIHwKPiArCQkJICAg RldfV00od20tPnBpcGVbUElQRV9BXS5zcHJpdGVbMF0gPj4gOCwgU1BSSVRFQV9ISSkgfAo+ICsJ CQkgICBGV19XTSh3bS0+cGlwZVtQSVBFX0FdLnByaW1hcnkgPj4gOCwgUExBTkVBX0hJKSk7Cj4g IAl9IGVsc2Ugewo+ICAJCUk5MTVfV1JJVEUoRFNQRlc3LAo+IC0JCQkgICAoKHdtLT5waXBlW1BJ UEVfQl0uc3ByaXRlWzFdIDw8IERTUEZXX1NQUklURURfU0hJRlQpICYgRFNQRldfU1BSSVRFRF9N QVNLKSB8Cj4gLQkJCSAgICgod20tPnBpcGVbUElQRV9CXS5zcHJpdGVbMF0gPDwgRFNQRldfU1BS SVRFQ19TSElGVCkgJiBEU1BGV19TUFJJVEVDX01BU0spKTsKPiArCQkJICAgRldfV01fVkxWKHdt LT5waXBlW1BJUEVfQl0uc3ByaXRlWzFdLCBTUFJJVEVEKSB8Cj4gKwkJCSAgIEZXX1dNX1ZMVih3 bS0+cGlwZVtQSVBFX0JdLnNwcml0ZVswXSwgU1BSSVRFQykpOwo+ICAJCUk5MTVfV1JJVEUoRFNQ SE9XTSwKPiAtCQkJICAgKCgod20tPnNyLnBsYW5lID4+IDkpIDw8IERTUEZXX1NSX0hJX1NISUZU KSAmIERTUEZXX1NSX0hJX01BU0spIHwKPiAtCQkJICAgKCgod20tPnBpcGVbUElQRV9CXS5zcHJp dGVbMV0gPj4gOCkgPDwgRFNQRldfU1BSSVRFRF9ISV9TSElGVCkgJiBEU1BGV19TUFJJVEVEX0hJ X01BU0spIHwKPiAtCQkJICAgKCgod20tPnBpcGVbUElQRV9CXS5zcHJpdGVbMF0gPj4gOCkgPDwg RFNQRldfU1BSSVRFQ19ISV9TSElGVCkgJiBEU1BGV19TUFJJVEVDX0hJX01BU0spIHwKPiAtCQkJ ICAgKCgod20tPnBpcGVbUElQRV9CXS5wcmltYXJ5ID4+IDgpIDw8IERTUEZXX1BMQU5FQl9ISV9T SElGVCkgJiBEU1BGV19QTEFORUJfSElfTUFTSykgfAo+IC0JCQkgICAoKCh3bS0+cGlwZVtQSVBF X0FdLnNwcml0ZVsxXSA+PiA4KSA8PCBEU1BGV19TUFJJVEVCX0hJX1NISUZUKSAmIERTUEZXX1NQ UklURUJfSElfTUFTSykgfAo+IC0JCQkgICAoKCh3bS0+cGlwZVtQSVBFX0FdLnNwcml0ZVswXSA+ PiA4KSA8PCBEU1BGV19TUFJJVEVBX0hJX1NISUZUKSAmIERTUEZXX1NQUklURUFfSElfTUFTSykg fAo+IC0JCQkgICAoKCh3bS0+cGlwZVtQSVBFX0FdLnByaW1hcnkgPj4gOCkgPDwgRFNQRldfUExB TkVBX0hJX1NISUZUKSAmIERTUEZXX1BMQU5FQV9ISV9NQVNLKSk7Cj4gKwkJCSAgIEZXX1dNKHdt LT5zci5wbGFuZSA+PiA5LCBTUl9ISSkgfAo+ICsJCQkgICBGV19XTSh3bS0+cGlwZVtQSVBFX0Jd LnNwcml0ZVsxXSA+PiA4LCBTUFJJVEVEX0hJKSB8Cj4gKwkJCSAgIEZXX1dNKHdtLT5waXBlW1BJ UEVfQl0uc3ByaXRlWzBdID4+IDgsIFNQUklURUNfSEkpIHwKPiArCQkJICAgRldfV00od20tPnBp cGVbUElQRV9CXS5wcmltYXJ5ID4+IDgsIFBMQU5FQl9ISSkgfAo+ICsJCQkgICBGV19XTSh3bS0+ cGlwZVtQSVBFX0FdLnNwcml0ZVsxXSA+PiA4LCBTUFJJVEVCX0hJKSB8Cj4gKwkJCSAgIEZXX1dN KHdtLT5waXBlW1BJUEVfQV0uc3ByaXRlWzBdID4+IDgsIFNQUklURUFfSEkpIHwKPiArCQkJICAg RldfV00od20tPnBpcGVbUElQRV9BXS5wcmltYXJ5ID4+IDgsIFBMQU5FQV9ISSkpOwo+ICAJfQo+ ICAKPiAgCVBPU1RJTkdfUkVBRChEU1BGVzEpOwo+IEBAIC04OTksNiArOTA0LDkgQEAgc3RhdGlj IHZvaWQgdmx2X3dyaXRlX3dtX3ZhbHVlcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCWRl dl9wcml2LT53bS52bHYgPSAqd207Cj4gIH0KPiAgCj4gKyN1bmRlZiBGV19XTQo+ICsjdW5kZWYg RldfV01fVkxWCj4gKwo+ICBzdGF0aWMgdWludDhfdCB2bHZfY29tcHV0ZV9kcmFpbl9sYXRlbmN5 KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkJCQkgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUp Cj4gIHsKPiAKCkknZCByYXRoZXIgc2VlIHRoZSBtYWNyb3MgcHV0IGluIHRoZSBoZWFkZXIgbmV4 dCB0byB0aGUgRlcgZGVmaW5pdGlvbnMsCmJ1dCB0aGF0J3Mgbm90IGEgYmxvY2tlci4KClJldmll d2VkLWJ5OiBKZXNzZSBCYXJuZXMgPGpiYXJuZXNAdmlydHVvdXNnZWVrLm9yZz4KX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK