From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 3/5] drm/i915: merge gen checks to use range Date: Fri, 2 Nov 2018 15:12:18 -0700 Message-ID: <20181102221218.GP2233@intel.com> References: <20181101083517.20193-1-lucas.demarchi@intel.com> <20181101083517.20193-4-lucas.demarchi@intel.com> <4d341fa0-538a-d4aa-29bb-307ce04523ff@linux.intel.com> <20181102181008.GA10689@ldmartin-desk.jf.intel.com> <20181102191913.GG2233@intel.com> <20181102194728.GA2824@ldmartin-desk.jf.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 706D66E60F for ; Fri, 2 Nov 2018 22:12:21 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181102194728.GA2824@ldmartin-desk.jf.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lucas De Marchi Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBOb3YgMDIsIDIwMTggYXQgMTI6NDc6MjhQTSAtMDcwMCwgTHVjYXMgRGUgTWFyY2hp IHdyb3RlOgo+IE9uIEZyaSwgTm92IDAyLCAyMDE4IGF0IDEyOjE5OjEzUE0gLTA3MDAsIFJvZHJp Z28gVml2aSB3cm90ZToKPiA+IE9uIEZyaSwgTm92IDAyLCAyMDE4IGF0IDExOjEwOjEwQU0gLTA3 MDAsIEx1Y2FzIERlIE1hcmNoaSB3cm90ZToKPiA+ID4gT24gVGh1LCBOb3YgMDEsIDIwMTggYXQg MTE6MzE6MjVBTSArMDAwMCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4gPiA+ID4gCj4gPiA+ID4g T24gMDEvMTEvMjAxOCAwODozNSwgTHVjYXMgRGUgTWFyY2hpIHdyb3RlOgo+ID4gPiA+ID4gSW5z dGVhZCBvZiB1c2luZyBzZXZlcmFsIElTX0dFTigpLCBpdCdzIHBvc3NpYmxlIHRvIHBhc3MgdGhl Cj4gPiA+ID4gPiByYW5nZSBhcyBhcmd1bWVudC4gQnkgY29kZSBpbnNwZWN0aW9uIHRoZXNlIHdl cmUgdGhlIHJhbmdlcyBkZWVtZWQKPiA+ID4gPiA+IG5lY2Vzc2FyeSBmb3Igc3BhdGNoOgo+ID4g PiA+ID4gCj4gPiA+ID4gPiBAQAo+ID4gPiA+ID4gZXhwcmVzc2lvbiBlOwo+ID4gPiA+ID4gQEAK PiA+ID4gPiA+ICgKPiA+ID4gPiA+IC0gSVNfR0VOKGUsIDMpIHx8IElTX0dFTihlLCA0KQo+ID4g PiA+ID4gKyBJU19HRU4oZSwgMywgNCkKPiA+ID4gPiA+IHwKPiA+ID4gPiA+IC0gSVNfR0VOKGUs IDUpIHx8IElTX0dFTihlLCA2KQo+ID4gPiA+ID4gKyBJU19HRU4oZSwgNSwgNikKPiA+ID4gPiA+ IHwKPiA+ID4gPiA+IC0gSVNfR0VOKGUsIDYpIHx8IElTX0dFTihlLCA3KQo+ID4gPiA+ID4gKyBJ U19HRU4oZSwgNiwgNykKPiA+ID4gPiA+IHwKPiA+ID4gPiA+IC0gSVNfR0VOKGUsIDcpIHx8IElT X0dFTihlLCA4KQo+ID4gPiA+ID4gKyBJU19HRU4oZSwgNywgOCkKPiA+ID4gPiA+IHwKPiA+ID4g PiA+IC0gSVNfR0VOKGUsIDgpIHx8IElTX0dFTihlLCA5KQo+ID4gPiA+ID4gKyBJU19HRU4oZSwg OCwgOSkKPiA+ID4gPiA+IHwKPiA+ID4gPiA+IC0gSVNfR0VOKGUsIDEwKSB8fCBJU19HRU4oZSwg OSkKPiA+ID4gPiA+ICsgSVNfR0VOKGUsIDksIDEwKQo+ID4gPiA+ID4gfAo+ID4gPiA+ID4gLSBJ U19HRU4oZSwgOSkgfHwgSVNfR0VOKGUsIDEwKQo+ID4gPiA+ID4gKyBJU19HRU4oZSwgOSwgMTAp Cj4gPiA+ID4gPiApCj4gPiA+ID4gPiAKPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEx1Y2FzIERl IE1hcmNoaSA8bHVjYXMuZGVtYXJjaGlAaW50ZWwuY29tPgo+ID4gPiA+ID4gLS0tCj4gPiA+ID4g PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAgICB8IDYgKysrLS0t Cj4gPiA+ID4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgICAgICB8 IDIgKy0KPiA+ID4gPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgICAgICAg ICAgIHwgMiArLQo+ID4gPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYyAg ICAgICAgICAgfCAyICstCj4gPiA+ID4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rl dmljZV9pbmZvLmMgICB8IDIgKy0KPiA+ID4gPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jICAgICAgIHwgMiArLQo+ID4gPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9lbmdpbmVfY3MuYyAgICAgfCAyICstCj4gPiA+ID4gPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2ZpZm9fdW5kZXJydW4uYyB8IDIgKy0KPiA+ID4gPiA+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcGlwZV9jcmMuYyAgICAgIHwgNCArKy0tCj4gPiA+ID4gPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jICAgICAgICB8IDYgKysrLS0tCj4gPiA+ ID4gPiAgIDEwIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygt KQo+ID4gPiA+ID4gCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ID4g PiA+ID4gaW5kZXggMjhkOTVmOWQwYjBlLi5mMmZiYzAxNmJkN2YgMTAwNjQ0Cj4gPiA+ID4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ID4gPiA+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+ID4gPiA+IEBAIC0yMDMwLDcg KzIwMzAsNyBAQCBzdGF0aWMgaW50IGk5MTVfc3dpenpsZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAq bSwgdm9pZCAqZGF0YSkKPiA+ID4gPiA+ICAgCXNlcV9wcmludGYobSwgImJpdDYgc3dpenpsZSBm b3IgWS10aWxpbmcgPSAlc1xuIiwKPiA+ID4gPiA+ICAgCQkgICBzd2l6emxlX3N0cmluZyhkZXZf cHJpdi0+bW0uYml0XzZfc3dpenpsZV95KSk7Cj4gPiA+ID4gPiAtCWlmIChJU19HRU4oZGV2X3By aXYsIDMpIHx8IElTX0dFTihkZXZfcHJpdiwgNCkpIHsKPiA+ID4gPiA+ICsJaWYgKElTX0dFTihk ZXZfcHJpdiwgMywgNCkpIHsKPiA+ID4gPiAKPiA+ID4gPiBJIGNhbiBzZWUgdmFsdWUgaW4gaXQg YnV0IHRoaW5rIGl0IHdvdWxkIHJlYWQgYmV0dGVyIHdpdGggSVNfR0VOX1JBTkdFLgo+ID4gPiAK PiA+ID4gT2ssIGl0IHNlZW1zIHRoZXJlJ3MgYSByb3VnaCBjb25zZW5zdXMgb2Ygcy9JU19HRU4v SVNfR0VOX1JBTkdFLyBhbiB0aGVuCj4gPiA+IGJyaW5nIHRoZSBwYXRjaGVzIHRoYXQgbWFrZSBz ZW5zZSBoZXJlLiBUaGVyZSB3YXMgYSByZWNlbnQgcGF0Y2ggZnJvbSBSb2RyaWdvCj4gPiA+IGRv aW5nIHRoYXQuIEknbGwgaW5jbHVkZSBpdCBpbiBuZXh0IHZlcnNpb24uCj4gPiAKPiA+IEkgbGlr ZWQgdGhlIGRvdWJsZSBhcmdzIGlkZWEgYnV0IGFmdGVyIHJlYWRpbmcgSSBiZWxpZXZlCj4gPiBp dCBnZXRzIGNsZWFyIElTX0dFTl9SQU5HRS4KPiA+IAo+ID4gPiAKPiA+ID4gPiAKPiA+ID4gPiBB cmUgdGhlcmUgYW55IGNhc2VzIG9mIG9yLWVkIElTX0dFTiBjaGVja3Mgd2l0aCBzb21ldGhpbmcg c2FuZHdpY2hlZCBpbgo+ID4gPiA+IGJldHdlZW4gdGhlbiwgd2hpY2ggdGhlIGFib3ZlIHNwYXRj aCB3b3VsZCBtaXNzPwo+ID4gPiAKPiA+ID4gQnkgbWFudWFsbHkgaW5zcGVjdGluZyB0aGUgcmVz dWx0IG9mIGBgZ2l0IGdyZXAgLW5lICJJU19HRU4oLioiIC0tIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2BgCj4gPiA+IEkgZGlkbid0IGZpbmQgYW55LiBUaGUgb25seSB0aGluZyBJIGZvdW5kIHdhcyBh IG1pc3NlZCBjYXNlIGZvciBnZW4zIHx8IGdlbjIKPiA+ID4gdGhhdCB3YXMgbm90IGNvdmVyZWQg YnkgdGhlIHNwYXRjaC4KPiA+ID4gCj4gPiA+ID4gCj4gPiA+ID4gSG93IG1hbnkgbm9uLWNvbnNl Y3V0aXZlIElTX0dFTiBnZW4gY2hlY2tzIGFyZSB0aGVyZT8gVG8gZ2l2ZSB1cyBzb21lIGlkZWFz Cj4gPiA+ID4gaWYgdGhlIHVzdWFsIHBhdHRlcm4gaXMgcmFuZ2UsIG9yIHBlcmhhcHMgY2hlY2tz IGFnYWluc3QgYSBsaXN0IG9mIGdlbnMgYWxzbwo+ID4gPiA+IGV4aXN0cz8gKEd1dCBmZWVsaW5n IHNheXMgbm8uKQo+ID4gPiAKPiA+ID4gb25seSBjYXNlcyBvZiA8PSwgPCwgPj0sID4uCj4gPiAK PiA+IEZvciB0aGVzZSBjYXNlcyBvbiBwYXRjaGVzIDQgYW5kIDU6Ogo+ID4gCj4gPiBXaGF0IGFi b3V0IGNvbnZlcnRpbmcgYWxsIDwgbiB0byA8PSBuLTEgYW5kIGFsbCA+IG4gdG8gPj0gbiArIDEK PiA+IGdldCBGT1JWRVIgYmFjayBhbmQgaW50cm9kdWNlIElTX0dFTl9VTlRJTCA/Cj4gPiAKPiA+ IElTX0dFTl9VTlRJTChkZXZfcHJpdiwgZSkKPiA+IElTX0dFTl9SQU5HRShkZXZfcHJpdiwgcywg Rk9SRVZFUikKPiA+IAo+ID4gc28gd2UgY2FuIGFsc28ga2lsbCBJTlRFTF9HRU4uCj4gPiAKPiA+ IEFub3RoZXIgZGlmZmVyZW50IGlkZWEgb24gdG9wIG9mIHRoYXQuCj4gPiAKPiA+IFdoYXQgYWJv dXQgcmVtb3ZpbmcgYWxsICJJU18iPwo+ID4gCj4gPiBzbyBlbmQgcmVzdWx0IGNvdWxkIGJlIHNv bWV0aGluZyBsaWtlIHRoYXQ6Cj4gPiAKPiA+IElOVEVMX0dFTihkZXZfcHJpdiwgbikKPiA+IERJ U1BMQVlfR0VOKGRldl9wcml2LCBuKQo+ID4gSU5URUxfR0VOX1JBTkdFKGRldl9wcml2LCBzLCBl KSAjb3IgZSA9IEZPUkVWRVIKPiA+IERJU1BMQVlfR0VOX1JBTkdFKGRldl9wcml2LCBzLCBlKSAj b3IgZSA9IEZPUkVWRVIKPiA+IElOVEVMX0dFTl9VTlRJTChkZXZfcHJpdiwgZSkKPiA+IERJU1BM QVlfR0VOX1VOVElMKGRldl9wcml2LCBlKQo+ID4gCj4gPiAobWF5YmUgcy9JTlRFTC9HVCkKPiAK PiBJIGxpa2UgaXQuIEknbSBqdXN0IG5vdCBzdXJlIGFib3V0IFVOVElMLCBiZWNhdXNlIEkgd2ls bCBhbHdheXMgaGF2ZSBkb3VidHMgaWYKPiBpdCdzIGluY2x1c2l2ZSBvciBub3QuIEJ1dCBJIGd1 ZXNzIHdlIGhhdmUgdGhlIHNhbWUgdG9kYXkgd2l0aCBSQU5HRSBhbmQgd2UKPiBqdXN0IGdldCB1 c2VkIHRvIGl0LiBCeSBtYWtpbmcgYWxsIG9mIHRoZW0gaW5jbHVzaXZlLCBpdCB3aWxsIGJlIGVh c2llci4KPiAKPiBBbnl3YXksIG15IHByZWZlcmVuY2UgaXM6Cj4gCj4gR1RfR0VOKGRldl9wcml2 LCBuKQo+IEdUX0dFTl9SQU5HRShkZXZfcHJpdiwgcywgZSkKPiAgICAgYW5kIGUgY2FuIGJlIEdF Tl9GT1JFVkVSLCBha2EgLTEuIFRoZSBtYWNybyBoYXMgZW5vdWdoIGtub3dsZWRnZSB0byB3b3Jr IG91dAoKb25lIG5pcHRpawpJIHByZWZlciBGT1JFVkVSIGFsb25lIHRoYW4gR0VOX0ZPUkVWRVIg YmVjYXVzZSBtYWNybyBhbHJlYWR5IGhhcyAiR0VOIgoKPiAgICAgdGhlIG1hc2ssIGUuZy4gcyA9 PSAxMCwgZSA9PSBGT1JFVkVSID0+IG1hc2sgPT0gfihCSVQocykgfCAoQklUKHMpIC0gMSkpCj4g Cj4gQW5kIHRoZSBESVNQTEFZX0dFTiogY291bnRlcnBhcnRzLgo+IAo+IElNTyB0aGVyZSdzIG5v IG5lZWQgdG8gaGF2ZSBfVU5USUwgYmVjYXVzZSBpdCBjYW4gYWxzbyBiZSBleHByZXNzZWQgYXMK PiBHVF9HRU5fUkFOR0UoZGV2X3ByaXYsIEdFTl9GT1JFVkVSLCAxMCkuCgpZZWFwLCB0aGUgR0VO X0ZPUkVWRVIgSSBoYWQganVzdCBraWxsZWQgbGFzdCB3ZWVrIGNvdmVyZWQgdGhpcyBjYXNlLApi dXQgbXkgYnJhaW4gcmVmdXNlcyB0byB1c2UgYW5kIGFjY2VwdCBGT1JFVkVSIHRvIHNvbWV0aGlu ZyBpbiB0aGUgcGFzdC4KCm1heWJlIEdUX0dFTl9SQU5HRShkZXZfcHJpdiwgMCwgMTApIGluc3Rl YWQgb2YgVU5USUwgPwoKb3IgR1RfR0VOX1JBTkdFKGRldl9wcml2LCBCRUdJTiwgMTApID8KCj4g Cj4gVGhpcyB3YXkgd2UgY2FuIGFsc28ga2lsbCB0aGUgY29tcGFyaXNvbnMgSU5URUxfR0VOKGRl dl9wcml2KSA9PSB4LCBzbyB3ZSBhbHdheXMKPiB3b3JrIHdpdGggdGhlIGdlbl9tYXNrIGZpZWxk LiBXaGljaCBtZWFucyB0aGUgY29tcGlsZXIgY2FuIGRvIGEgc2luZ2xlIGNvbXBhcmlzb24KPiAo L21lIGhvcGluZyBpdCBhY3R1YWxseSBnZW5lcmF0ZXMgZ29vZCBjb2RlKQoKeWVhcCEKCj4gCj4g VGhlcmUgYXJlIGNvcm5lciBjYXNlcyB0aG91Z2g6Cj4gCj4gV2hhdCBzaG91bGQgd2UgZG8gd2l0 aCBlLmcuIElTX0dFTjlfTFAoKSBhbmQgZnJpZW5kcz8KCiNkZWZpbmUgR1RfR0VOX0xQKGRldl9w cml2LCBuKSBHVF9HRU4oZGV2X3ByaXYsIG4pICYmIElTX0xQKGRldl9wcml2KQojZGVmaW5lIERJ U1BMQVlfR0VOX0xQKGRldl9wcml2LCBuKSBESVNQTEFZX0dFTihkZXZfcHJpdiwgbikgJiYgSVNf TFAoZGV2X3ByaXYpCiNkZWZpbmUgR1RfR0VOX0JDKGRldl9wcml2LCBuKSBHVF9HRU4oZGV2X3By aXYsIG4pICYmICFJU19MUChkZXZfcHJpdikKI2RlZmluZSBESVNQTEFZX0dFTl9CQyhkZXZfcHJp diwgbikgRElTUExBWV9HRU4oZGV2X3ByaXYsIG4pICYmICFJU19MUChkZXZfcHJpdikKCkkgdGhp bmsgdGhpcyB3b3VsZCBiZSB1c2VmdWwgdG8gcmVwbGFjZSBtYW55IElTX1ZBTExFWVZJRVcgfHwg SVNfQ0hFUlJZVklFVwp0byBESVNQTEFZX0dFTl9MUChkZXZfcHJpdiwgNykKCmVpdGhlciB0aGlz IGFib3ZlIG9yIHNpbXBseSBraWxsIGl0IGluIGZhdm9yIG9mIGEgbW9yZSB2ZXJib3NlIHZlcnNp b24gZXZlcnl3aGVyZQpHVF9HRU4oZGV2X3ByaXYsIDkpICYmIElTX0xQKGRldl9wcml2KSA/ISA6 LwoKPiAKPiAKPiBBbnkgY29udmVyc2lvbiBsaWtlIHRoZXNlIHdpbGwgY3JlYXRlIGEgbG90IG9m IG5vaXNlLCBub3Qgb25seSBmb3IgaW5mbGlnaHQgcGF0Y2hlcywKPiBidXQgYWxzbyBmb3Igc3Rh YmxlIGJhY2twb3J0cy4gIFNvIElNTyBhbnl0aGluZyB3ZSBkbyBuZWVkcyB0byBiZSBzY3JpcHRh YmxlLgoKSSBmdWxseSBhZ3JlZS4KClRoYW5rcywKUm9kcmlnby4KCj4gCj4gTHVjYXMgRGUgTWFy Y2hpCj4gCj4gPiAKPiA+IGFuZCBncm91cCBhbGwgb2YgdGhlc2UgdG9nZXRoZXIsIGJlY2F1c2Ug dG9kYXkKPiA+IHRoZXkgYXJlIHNwcmVhZGRlZCBhcGFydC4KPiA+IAo+ID4gVGhhbmtzLAo+ID4g Um9kcmlnby4KPiA+IAo+ID4gPiAKPiA+ID4gCj4gPiA+IHRoYW5rcwo+ID4gPiBMdWNhcyBEZSBN YXJjaGkKPiA+ID4gCj4gPiA+ID4gCj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiAKPiA+ID4gPiBU dnJ0a28KPiA+ID4gPiAKPiA+ID4gPiA+ICAgCQlzZXFfcHJpbnRmKG0sICJEREMgPSAweCUwOHhc biIsCj4gPiA+ID4gPiAgIAkJCSAgIEk5MTVfUkVBRChEQ0MpKTsKPiA+ID4gPiA+ICAgCQlzZXFf cHJpbnRmKG0sICJEREMyID0gMHglMDh4XG4iLAo+ID4gPiA+ID4gQEAgLTQyNjAsNyArNDI2MCw3 IEBAIGk5MTVfY2FjaGVfc2hhcmluZ19nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpCj4gPiA+ID4g PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkYXRhOwo+ID4gPiA+ID4g ICAJdTMyIHNucGNyOwo+ID4gPiA+ID4gLQlpZiAoIShJU19HRU4oZGV2X3ByaXYsIDYpIHx8IElT X0dFTihkZXZfcHJpdiwgNykpKQo+ID4gPiA+ID4gKwlpZiAoIShJU19HRU4oZGV2X3ByaXYsIDYs IDcpKSkKPiA+ID4gPiA+ICAgCQlyZXR1cm4gLUVOT0RFVjsKPiA+ID4gPiA+ICAgCWludGVsX3J1 bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKPiA+ID4gPiA+IEBAIC00MjgwLDcgKzQyODAsNyBAQCBp OTE1X2NhY2hlX3NoYXJpbmdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpCj4gPiA+ID4gPiAgIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkYXRhOwo+ID4gPiA+ID4gICAJdTMy IHNucGNyOwo+ID4gPiA+ID4gLQlpZiAoIShJU19HRU4oZGV2X3ByaXYsIDYpIHx8IElTX0dFTihk ZXZfcHJpdiwgNykpKQo+ID4gPiA+ID4gKwlpZiAoIShJU19HRU4oZGV2X3ByaXYsIDYsIDcpKSkK PiA+ID4gPiA+ICAgCQlyZXR1cm4gLUVOT0RFVjsKPiA+ID4gPiA+ICAgCWlmICh2YWwgPiAzKQo+ ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9y LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj4gPiA+ID4gPiBpbmRl eCBjOWY4YWE0NzAwNWEuLjk2OTY5MWU1MGMwNCAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKPiA+ID4gPiA+IEBAIC0xNjczLDcgKzE2NzMs NyBAQCBzdGF0aWMgdm9pZCBjYXB0dXJlX3JlZ19zdGF0ZShzdHJ1Y3QgaTkxNV9ncHVfc3RhdGUg KmVycm9yKQo+ID4gPiA+ID4gICAJCWVycm9yLT5jY2lkID0gSTkxNV9SRUFEKENDSUQpOwo+ID4g PiA+ID4gICAJLyogMzogRmVhdHVyZSBzcGVjaWZpYyByZWdpc3RlcnMgKi8KPiA+ID4gPiA+IC0J aWYgKElTX0dFTihkZXZfcHJpdiwgNikgfHwgSVNfR0VOKGRldl9wcml2LCA3KSkgewo+ID4gPiA+ ID4gKwlpZiAoSVNfR0VOKGRldl9wcml2LCA2LCA3KSkgewo+ID4gPiA+ID4gICAJCWVycm9yLT5n YW1fZWNvY2hrID0gSTkxNV9SRUFEKEdBTV9FQ09DSEspOwo+ID4gPiA+ID4gICAJCWVycm9yLT5n YWNfZWNvID0gSTkxNV9SRUFEKEdBQ19FQ09fQklUUyk7Cj4gPiA+ID4gPiAgIAl9Cj4gPiA+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwo+ID4gPiA+ID4gaW5kZXggOTJkYWRkZjc5Y2IwLi5i YWFhN2I3MGZmYTAgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3BlcmYuYwo+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJm LmMKPiA+ID4gPiA+IEBAIC0zNDQ5LDcgKzM0NDksNyBAQCB2b2lkIGk5MTVfcGVyZl9pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ID4gPiA+ICAgCQlkZXZfcHJpdi0+ cGVyZi5vYS5vcHMucmVhZCA9IGdlbjhfb2FfcmVhZDsKPiA+ID4gPiA+ICAgCQlkZXZfcHJpdi0+ cGVyZi5vYS5vcHMub2FfaHdfdGFpbF9yZWFkID0gZ2VuOF9vYV9od190YWlsX3JlYWQ7Cj4gPiA+ ID4gPiAtCQlpZiAoSVNfR0VOKGRldl9wcml2LCA4KSB8fCBJU19HRU4oZGV2X3ByaXYsIDkpKSB7 Cj4gPiA+ID4gPiArCQlpZiAoSVNfR0VOKGRldl9wcml2LCA4LCA5KSkgewo+ID4gPiA+ID4gICAJ CQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfYl9jb3VudGVyX3JlZyA9Cj4gPiA+ID4g PiAgIAkJCQlnZW43X2lzX3ZhbGlkX2JfY291bnRlcl9hZGRyOwo+ID4gPiA+ID4gICAJCQlkZXZf cHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9Cj4gPiA+ID4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9jcnQuYwo+ID4gPiA+ID4gaW5kZXggYmY0ZmQ3MzliNjhjLi4xODIyZGNjYjE5MTQg MTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYwo+ ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMKPiA+ID4gPiA+ IEBAIC0zMjIsNyArMzIyLDcgQEAgaW50ZWxfY3J0X21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciwKPiA+ID4gPiA+ICAgCQkgKiBEQUMgbGltaXQgc3VwcG9zZWRseSAz NTUgTUh6Lgo+ID4gPiA+ID4gICAJCSAqLwo+ID4gPiA+ID4gICAJCW1heF9jbG9jayA9IDI3MDAw MDsKPiA+ID4gPiA+IC0JZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCAzKSB8fCBJU19HRU4oZGV2 X3ByaXYsIDQpKQo+ID4gPiA+ID4gKwllbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDMsIDQpKQo+ ID4gPiA+ID4gICAJCW1heF9jbG9jayA9IDQwMDAwMDsKPiA+ID4gPiA+ICAgCWVsc2UKPiA+ID4g PiA+ICAgCQltYXhfY2xvY2sgPSAzNTAwMDA7Cj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RldmljZV9pbmZvLmMKPiA+ID4gPiA+IGluZGV4IDg3M2YzN2I3Yjc5Ni4uYTFiMDQ2 YzMyMmQ1IDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGV2aWNlX2luZm8uYwo+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGV2aWNlX2luZm8uYwo+ID4gPiA+ID4gQEAgLTc4Myw3ICs3ODMsNyBAQCB2b2lkIGludGVsX2Rl dmljZV9pbmZvX3J1bnRpbWVfaW5pdChzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKmluZm8pCj4g PiA+ID4gPiAgIAkJRFJNX0lORk8oIkRpc3BsYXkgZGlzYWJsZWQgKG1vZHVsZSBwYXJhbWV0ZXIp XG4iKTsKPiA+ID4gPiA+ICAgCQlpbmZvLT5udW1fcGlwZXMgPSAwOwo+ID4gPiA+ID4gICAJfSBl bHNlIGlmIChpbmZvLT5udW1fcGlwZXMgPiAwICYmCj4gPiA+ID4gPiAtCQkgICAoSVNfR0VOKGRl dl9wcml2LCA3KSB8fCBJU19HRU4oZGV2X3ByaXYsIDgpKSAmJgo+ID4gPiA+ID4gKwkJICAgKElT X0dFTihkZXZfcHJpdiwgNywgOCkpICYmCj4gPiA+ID4gPiAgIAkJICAgSEFTX1BDSF9TUExJVChk ZXZfcHJpdikpIHsKPiA+ID4gPiA+ICAgCQl1MzIgZnVzZV9zdHJhcCA9IEk5MTVfUkVBRChGVVNF X1NUUkFQKTsKPiA+ID4gPiA+ICAgCQl1MzIgc2Z1c2Vfc3RyYXAgPSBJOTE1X1JFQUQoU0ZVU0Vf U1RSQVApOwo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+ ID4gaW5kZXggODRjNDMyY2JkZjViLi4wMmIzMzhiMWQ4YmUgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+ID4gQEAgLTEwNjc3LDcg KzEwNjc3LDcgQEAgaW50IGludGVsX3BsYW5lX2F0b21pY19jYWxjX2NoYW5nZXMoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXQKPiA+ID4gPiA+ICAgCSAqIHRoZSB3 L2Egb24gYWxsIHRocmVlIHBsYXRmb3Jtcy4KPiA+ID4gPiA+ICAgCSAqLwo+ID4gPiA+ID4gICAJ aWYgKHBsYW5lLT5pZCA9PSBQTEFORV9TUFJJVEUwICYmCj4gPiA+ID4gPiAtCSAgICAoSVNfR0VO KGRldl9wcml2LCA1KSB8fCBJU19HRU4oZGV2X3ByaXYsIDYpIHx8Cj4gPiA+ID4gPiArCSAgICAo SVNfR0VOKGRldl9wcml2LCA1LCA2KSB8fAo+ID4gPiA+ID4gICAJICAgICBJU19JVllCUklER0Uo ZGV2X3ByaXYpKSAmJgo+ID4gPiA+ID4gICAJICAgICh0dXJuX29uIHx8ICghbmVlZHNfc2NhbGlu ZyhvbGRfcGxhbmVfc3RhdGUpICYmCj4gPiA+ID4gPiAgIAkJCSBuZWVkc19zY2FsaW5nKHRvX2lu dGVsX3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKSkpKSkKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gPiA+ID4gPiBpbmRleCA3NjQyZjY2MzRmN2IuLjc3OWM2 ODNiNDhhYiAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2VuZ2luZV9jcy5jCj4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9l bmdpbmVfY3MuYwo+ID4gPiA+ID4gQEAgLTQzOCw3ICs0MzgsNyBAQCB2b2lkIGludGVsX2VuZ2lu ZV9pbml0X2dsb2JhbF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBz ZXFubykKPiA+ID4gPiA+ICAgCSAqIHRoZSBzZW1hcGhvcmUgdmFsdWUsIHRoZW4gd2hlbiB0aGUg c2Vxbm8gbW92ZXMgYmFja3dhcmRzIGFsbAo+ID4gPiA+ID4gICAJICogZnV0dXJlIHdhaXRzIHdp bGwgY29tcGxldGUgaW5zdGFudGx5IChjYXVzaW5nIHJlbmRlcmluZyBjb3JydXB0aW9uKS4KPiA+ ID4gPiA+ICAgCSAqLwo+ID4gPiA+ID4gLQlpZiAoSVNfR0VOKGRldl9wcml2LCA2KSB8fCBJU19H RU4oZGV2X3ByaXYsIDcpKSB7Cj4gPiA+ID4gPiArCWlmIChJU19HRU4oZGV2X3ByaXYsIDYsIDcp KSB7Cj4gPiA+ID4gPiAgIAkJSTkxNV9XUklURShSSU5HX1NZTkNfMChlbmdpbmUtPm1taW9fYmFz ZSksIDApOwo+ID4gPiA+ID4gICAJCUk5MTVfV1JJVEUoUklOR19TWU5DXzEoZW5naW5lLT5tbWlv X2Jhc2UpLCAwKTsKPiA+ID4gPiA+ICAgCQlpZiAoSEFTX1ZFQk9YKGRldl9wcml2KSkKPiA+ID4g PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9maWZvX3VuZGVycnVu LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9maWZvX3VuZGVycnVuLmMKPiA+ID4gPiA+ IGluZGV4IGZmMjc0M2NjYmVjZS4uYTE2YjQ2M2E1MjdkIDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmlmb191bmRlcnJ1bi5jCj4gPiA+ID4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9maWZvX3VuZGVycnVuLmMKPiA+ID4gPiA+IEBA IC0yNjAsNyArMjYwLDcgQEAgc3RhdGljIGJvb2wgX19pbnRlbF9zZXRfY3B1X2ZpZm9fdW5kZXJy dW5fcmVwb3J0aW5nKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiA+ID4gPiAgIAlpZiAoSEFT X0dNQ0hfRElTUExBWShkZXZfcHJpdikpCj4gPiA+ID4gPiAgIAkJaTl4eF9zZXRfZmlmb191bmRl cnJ1bl9yZXBvcnRpbmcoZGV2LCBwaXBlLCBlbmFibGUsIG9sZCk7Cj4gPiA+ID4gPiAtCWVsc2Ug aWYgKElTX0dFTihkZXZfcHJpdiwgNSkgfHwgSVNfR0VOKGRldl9wcml2LCA2KSkKPiA+ID4gPiA+ ICsJZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA1LCA2KSkKPiA+ID4gPiA+ICAgCQlpcm9ubGFr ZV9zZXRfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2LCBwaXBlLCBlbmFibGUpOwo+ID4gPiA+ ID4gICAJZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA3KSkKPiA+ID4gPiA+ICAgCQlpdnlicmlk Z2Vfc2V0X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldiwgcGlwZSwgZW5hYmxlLCBvbGQpOwo+ ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BpcGVfY3Jj LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9waXBlX2NyYy5jCj4gPiA+ID4gPiBpbmRl eCA5ZTg3MGNhZjgxMDQuLjNlMDY1NzAzMzdiNiAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BpcGVfY3JjLmMKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BpcGVfY3JjLmMKPiA+ID4gPiA+IEBAIC00MzMsNyArNDMzLDcg QEAgc3RhdGljIGludCBnZXRfbmV3X2NyY19jdGxfcmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiA+ID4gPiA+ICAgCQlyZXR1cm4gaTl4eF9waXBlX2NyY19jdGxfcmVnKGRl dl9wcml2LCBwaXBlLCBzb3VyY2UsIHZhbCk7Cj4gPiA+ID4gPiAgIAllbHNlIGlmIChJU19WQUxM RVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiA+ID4gPiA+ICAg CQlyZXR1cm4gdmx2X3BpcGVfY3JjX2N0bF9yZWcoZGV2X3ByaXYsIHBpcGUsIHNvdXJjZSwgdmFs KTsKPiA+ID4gPiA+IC0JZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA1KSB8fCBJU19HRU4oZGV2 X3ByaXYsIDYpKQo+ID4gPiA+ID4gKwllbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDUsIDYpKQo+ ID4gPiA+ID4gICAJCXJldHVybiBpbGtfcGlwZV9jcmNfY3RsX3JlZyhzb3VyY2UsIHZhbCk7Cj4g PiA+ID4gPiAgIAllbHNlCj4gPiA+ID4gPiAgIAkJcmV0dXJuIGl2Yl9waXBlX2NyY19jdGxfcmVn KGRldl9wcml2LCBwaXBlLCBzb3VyY2UsIHZhbCwgc2V0X3dhKTsKPiA+ID4gPiA+IEBAIC01NTAs NyArNTUwLDcgQEAgaW50ZWxfaXNfdmFsaWRfY3JjX3NvdXJjZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gPiA+ID4gPiAgIAkJcmV0dXJuIGk5eHhfY3JjX3NvdXJjZV92YWxp ZChkZXZfcHJpdiwgc291cmNlKTsKPiA+ID4gPiA+ICAgCWVsc2UgaWYgKElTX1ZBTExFWVZJRVco ZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ID4gPiA+ID4gICAJCXJldHVy biB2bHZfY3JjX3NvdXJjZV92YWxpZChkZXZfcHJpdiwgc291cmNlKTsKPiA+ID4gPiA+IC0JZWxz ZSBpZiAoSVNfR0VOKGRldl9wcml2LCA1KSB8fCBJU19HRU4oZGV2X3ByaXYsIDYpKQo+ID4gPiA+ ID4gKwllbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDUsIDYpKQo+ID4gPiA+ID4gICAJCXJldHVy biBpbGtfY3JjX3NvdXJjZV92YWxpZChkZXZfcHJpdiwgc291cmNlKTsKPiA+ID4gPiA+ICAgCWVs c2UKPiA+ID4gPiA+ICAgCQlyZXR1cm4gaXZiX2NyY19zb3VyY2VfdmFsaWQoZGV2X3ByaXYsIHNv dXJjZSk7Cj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf dW5jb3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwo+ID4gPiA+ID4g aW5kZXggYzM2NDUzZDY2ZDkzLi44OGNiZDMyZDY5NjQgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwo+ID4gPiA+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKPiA+ID4gPiA+IEBAIC01MjgsNyArNTI4LDcg QEAgY2hlY2tfZm9yX3VuY2xhaW1lZF9tbWlvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiA+ID4gPiA+ICAgCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVS UllWSUVXKGRldl9wcml2KSkKPiA+ID4gPiA+ICAgCQlyZXQgfD0gdmx2X2NoZWNrX2Zvcl91bmNs YWltZWRfbW1pbyhkZXZfcHJpdik7Cj4gPiA+ID4gPiAtCWlmIChJU19HRU4oZGV2X3ByaXYsIDYp IHx8IElTX0dFTihkZXZfcHJpdiwgNykpCj4gPiA+ID4gPiArCWlmIChJU19HRU4oZGV2X3ByaXYs IDYsIDcpKQo+ID4gPiA+ID4gICAJCXJldCB8PSBnZW42X2NoZWNrX2Zvcl9maWZvX2RlYnVnKGRl dl9wcml2KTsKPiA+ID4gPiA+ICAgCXJldHVybiByZXQ7Cj4gPiA+ID4gPiBAQCAtNTU2LDcgKzU1 Niw3IEBAIHN0YXRpYyB2b2lkIF9faW50ZWxfdW5jb3JlX2Vhcmx5X3Nhbml0aXplKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gPiA+ICAgCQlkZXZfcHJpdi0+dW5jb3Jl LmZ1bmNzLmZvcmNlX3dha2VfZ2V0KGRldl9wcml2LAo+ID4gPiA+ID4gICAJCQkJCQkgICAgICBy ZXN0b3JlX2ZvcmNld2FrZSk7Cj4gPiA+ID4gPiAtCQlpZiAoSVNfR0VOKGRldl9wcml2LCA2KSB8 fCBJU19HRU4oZGV2X3ByaXYsIDcpKQo+ID4gPiA+ID4gKwkJaWYgKElTX0dFTihkZXZfcHJpdiwg NiwgNykpCj4gPiA+ID4gPiAgIAkJCWRldl9wcml2LT51bmNvcmUuZmlmb19jb3VudCA9Cj4gPiA+ ID4gPiAgIAkJCQlmaWZvX2ZyZWVfZW50cmllcyhkZXZfcHJpdik7Cj4gPiA+ID4gPiAgIAkJc3Bp bl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2spOwo+ID4gPiA+ID4gQEAgLTE0Mzcs NyArMTQzNyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3VuY29yZV9md19kb21haW5zX2luaXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gPiA+ID4gICAJCQkJICAgICAgIEZP UkNFV0FLRV9NRURJQV9WRUJPWF9HRU4xMShpKSwKPiA+ID4gPiA+ICAgCQkJCSAgICAgICBGT1JD RVdBS0VfQUNLX01FRElBX1ZFQk9YX0dFTjExKGkpKTsKPiA+ID4gPiA+ICAgCQl9Cj4gPiA+ID4g PiAtCX0gZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCAxMCkgfHwgSVNfR0VOKGRldl9wcml2LCA5 KSkgewo+ID4gPiA+ID4gKwl9IGVsc2UgaWYgKElTX0dFTihkZXZfcHJpdiwgOSwgMTApKSB7Cj4g PiA+ID4gPiAgIAkJZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX2dldCA9Cj4gPiA+ ID4gPiAgIAkJCWZ3X2RvbWFpbnNfZ2V0X3dpdGhfZmFsbGJhY2s7Cj4gPiA+ID4gPiAgIAkJZGV2 X3ByaXYtPnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX3B1dCA9IGZ3X2RvbWFpbnNfcHV0Owo+ID4g PiA+ID4gCj4gPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPiA+ID4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiA+ID4gSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=