From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Lutomirski Subject: Re: [PATCH v1 09/47] vidoe: fbdev: atyfb: remove and fix MTRR MMIO "hole" work around Date: Wed, 1 Apr 2015 17:04:08 -0700 Message-ID: References: <1426893517-2511-1-git-send-email-mcgrof@do-not-panic.com> <1426893517-2511-10-git-send-email-mcgrof@do-not-panic.com> <20150321091514.GA22926@sci.fi> <20150327193813.GH5622@wotan.suse.de> <20150327195759.GK5622@wotan.suse.de> <20150327215655.GA29933@sci.fi> <20150328002818.GT5622@wotan.suse.de> <20150328122334.GA32543@sci.fi> <20150401235211.GV5622@wotan.suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1YdScZ-0006Ff-T4 for xen-devel@lists.xenproject.org; Thu, 02 Apr 2015 00:04:32 +0000 Received: by lbbzk7 with SMTP id zk7so31838575lbb.0 for ; Wed, 01 Apr 2015 17:04:29 -0700 (PDT) In-Reply-To: <20150401235211.GV5622@wotan.suse.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: "Luis R. Rodriguez" Cc: Linux Fbdev development list , Daniel Vetter , =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= , Jan Beulich , "H. Peter Anvin" , Suresh Siddha , Tomi Valkeinen , X86 ML , Ingo Molnar , "xen-devel@lists.xenproject.org" , Ingo Molnar , Borislav Petkov , Jean-Christophe Plagniol-Villard , Antonino Daplas , Dave Airlie , Bjorn Helgaas , Thomas Gleixner , Juergen Gross , "Luis R. Rodriguez" , "linux-kernel@vger.kernel.org" , venkatesh.pallipadi@intel.comLinus Torvalds List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBBcHIgMSwgMjAxNSBhdCA0OjUyIFBNLCBMdWlzIFIuIFJvZHJpZ3VleiA8bWNncm9m QHN1c2UuY29tPiB3cm90ZToKPiBPbiBTYXQsIE1hciAyOCwgMjAxNSBhdCAwMjoyMzozNFBNICsw MjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4+IE9uIFNhdCwgTWFyIDI4LCAyMDE1IGF0IDAx OjI4OjE4QU0gKzAxMDAsIEx1aXMgUi4gUm9kcmlndWV6IHdyb3RlOgo+PiA+IE9uIEZyaSwgTWFy IDI3LCAyMDE1IGF0IDAzOjAyOjEwUE0gLTA3MDAsIEFuZHkgTHV0b21pcnNraSB3cm90ZToKPj4g PiA+IE9uIEZyaSwgTWFyIDI3LCAyMDE1IGF0IDI6NTYgUE0sIFZpbGxlIFN5cmrDpGzDpCA8c3ly amFsYUBzY2kuZmk+IHdyb3RlOgo+PiA+ID4gPiBPbiBGcmksIE1hciAyNywgMjAxNSBhdCAwODo1 Nzo1OVBNICswMTAwLCBMdWlzIFIuIFJvZHJpZ3VleiB3cm90ZToKPj4gPiA+ID4+IE9uIEZyaSwg TWFyIDI3LCAyMDE1IGF0IDEyOjQzOjU1UE0gLTA3MDAsIEFuZHkgTHV0b21pcnNraSB3cm90ZToK Pj4gPiA+ID4+ID4gT24gRnJpLCBNYXIgMjcsIDIwMTUgYXQgMTI6MzggUE0sIEx1aXMgUi4gUm9k cmlndWV6IDxtY2dyb2ZAc3VzZS5jb20+IHdyb3RlOgo+PiA+ID4gPj4gPiA+IE9uIFNhdCwgTWFy IDIxLCAyMDE1IGF0IDExOjE1OjE0QU0gKzAyMDAsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPj4g PiA+ID4+ID4gPj4gT24gRnJpLCBNYXIgMjAsIDIwMTUgYXQgMDQ6MTc6NTlQTSAtMDcwMCwgTHVp cyBSLiBSb2RyaWd1ZXogd3JvdGU6Cj4+ID4gPiA+PiA+ID4+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvdmlkZW8vZmJkZXYvYXR5L2F0eWZiX2Jhc2UuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXR5 L2F0eWZiX2Jhc2UuYwo+PiA+ID4gPj4gPiA+PiA+IGluZGV4IDgwMjU2MjQuLjg4NzVlNTYgMTAw NjQ0Cj4+ID4gPiA+PiA+ID4+ID4gLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9hdHkvYXR5ZmJf YmFzZS5jCj4+ID4gPiA+PiA+ID4+ID4gKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9hdHkvYXR5 ZmJfYmFzZS5jCj4+ID4gPiA+PiA+ID4+ID4gQEAgLTI2MzAsMjEgKzI2MzAsMTAgQEAgc3RhdGlj IGludCBhdHlfaW5pdChzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKPj4gPiA+ID4+ID4gPj4gPgo+PiA+ ID4gPj4gPiA+PiA+ICAjaWZkZWYgQ09ORklHX01UUlIKPj4gPiA+ID4+ID4gPj4gPiAgICAgcGFy LT5tdHJyX2FwZXIgPSAtMTsKPj4gPiA+ID4+ID4gPj4gPiAtICAgcGFyLT5tdHJyX3JlZyA9IC0x Owo+PiA+ID4gPj4gPiA+PiA+ICAgICBpZiAoIW5vbXRycikgewo+PiA+ID4gPj4gPiA+PiA+IC0g ICAgICAgICAgIC8qIENvdmVyIHRoZSB3aG9sZSByZXNvdXJjZS4gKi8KPj4gPiA+ID4+ID4gPj4g PiAtICAgICAgICAgICBwYXItPm10cnJfYXBlciA9IG10cnJfYWRkKHBhci0+cmVzX3N0YXJ0LCBw YXItPnJlc19zaXplLAo+PiA+ID4gPj4gPiA+PiA+ICsgICAgICAgICAgIHBhci0+bXRycl9hcGVy ID0gbXRycl9hZGQoaW5mby0+Zml4LnNtZW1fc3RhcnQsCj4+ID4gPiA+PiA+ID4+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLT5maXguc21lbV9sZW4sCj4+ID4g PiA+PiA+ID4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVFJSX1RZ UEVfV1JDT01CLCAxKTsKPj4gPiA+ID4+ID4gPj4KPj4gPiA+ID4+ID4gPj4gTVRSUnMgbmVlZCBw b3dlciBvZiB0d28gc2l6ZSwgc28gaG93IGlzIHRoaXMgc3VwcG9zZWQgdG8gd29yaz8KPj4gPiA+ ID4+ID4gPgo+PiA+ID4gPj4gPiA+IEFzIHBlciBtdHJyX2FkZF9wYWdlKCkgWzBdIHRoZSBiYXNl IGFuZCBzaXplIGFyZSBqdXN0IHN1cHBvc2VkIHRvIGJlIGluIHVuaXRzCj4+ID4gPiA+PiA+ID4g b2YgNCBLaUIsIGFsdGhvdWdoIHRoZSBwcmFjdGljZSBpcyB0byB1c2UgcG93ZXJzIG9mIDIgaW4g KnNvbWUqIGRyaXZlcnMgdGhpcwo+PiA+ID4gPj4gPiA+IGlzIG5vdCBzdGFuZGFyZGl6ZWQgYW5k IGJ5IG5vIG1lYW5zIHJlY29yZGVkIGFzIGEgcmVxdWlyZW1lbnQuIE9idmlvdXNseQo+PiA+ID4g Pj4gPiA+IHBvd2VycyBvZiAyIHdpbGwgd29yayB0b28gYW5kIHlvdSdkIGVuZCB1cCBuZWF0bHkg YWxpZ25lZCBhcyB3ZWxsLiBtdHJyX2FkZCgpCj4+ID4gPiA+PiA+ID4gd2lsbCB1c2UgbXRycl9j aGVjaygpIHRvIHZlcmlmeSB0aGUgdGhlIHNhbWUgcmVxdWlyZW1lbnQuIEZ1cnRoZXJtb3JlLAo+ PiA+ID4gPj4gPiA+IGFzIHBlciBteSBjb21taXQgbG9nIG1lc3NhZ2U6Cj4+ID4gPiA+PiA+Cj4+ ID4gPiA+PiA+IFdoYXRldmVyIHRoZSBjb2RlIG1heSBvciBtYXkgbm90IGRvLCB0aGUgeDg2IGFy Y2hpdGVjdHVyZSB1c2VzCj4+ID4gPiA+PiA+IHBvd2VyLW9mLXR3byBNVFJSIHNpemVzLiAgU28g SSdtIGNvbmZ1c2VkLgo+PiA+ID4gPj4KPj4gPiA+ID4+IFRoZXJlIHNob3VsZCBiZSBubyBjb25m dXNpb24sIEkgc2ltcGx5IGRpZCBub3Qga25vdyB0aGF0ICp3YXMqIHRoZQo+PiA+ID4gPj4gcmVx dWlyZW1lbnQgZm9yIHg4NiwgaWYgdGhhdCBpcyB0aGUgY2FzZSB3ZSBzaG91bGQgYWRkIGEgY2hl Y2sgZm9yIHRoYXQKPj4gPiA+ID4+IGFuZCBwZXJoYXBzIGdlbmVyYWxpemUgYSBoZWxwZXIgdGhh dCBkb2VzIHRoZSBwb3dlciBvZiB0d28gaGVscGVyIGNoYW5nZXMsCj4+ID4gPiA+PiB0aGUgY2xl YW5lc3QgSSBmb3VuZCB3YXMgdGhlIHZlc2FmYiBkcml2ZXIgc29sdXRpb24uCj4+ID4gPiA+Pgo+ PiA+ID4gPj4gVGhvdWdodHM/Cj4+ID4gPiA+Cj4+ID4gPiA+IFRoZSB2ZXNhZmIgc29sdXRpb24g aXMgYmFkIHNpbmNlIHlvdSdsbCBvbmx5IGVuZCB1cCBjb3ZlcmluZyBvbmx5Cj4+ID4gPiA+IHRo ZSBmaXJzdCA0TUIgb2YgdGhlIGZyYW1lYnVmZmVyIGluc3RlYWQgb2YgdGhlIGFsbW9zdCA4TUIg eW91IHdhbnQuCj4+ID4gPiA+IFdoaWNoIGluIHByYWN0aWNlIHdpbGwgbWVhbiB0aHJvd2luZyBh d2F5IGhhbGYgdGhlIFZSQU0gc2luY2UgeW91IHJlYWxseQo+PiA+ID4gPiBkb24ndCB3YW50IHRo ZSBtYXNzaXZlIHBlcmZvcm1hbmNlIGhpdCBmcm9tIGFjY2Vzc2luZyBpdCBhcyBVQy4gQW5kIHRo YXQKPj4gPiA+ID4gd291bGQgbWVhbiBnaXZpbmcgdXAgZGVjZW50IGRpc3BsYXkgcmVzb2x1dGlv bnMgYXMgd2VsbCA6KAo+PiA+ID4gPgo+PiA+ID4gPiBBbmQgdGhlIG90aGVyIG9wdGlvbiBvZiB0 cnlpbmcgdG8gY292ZXIgdGhlIHJlbWFpbmRlciB3aXRoIG11bHRpcGxlIGV2ZXIKPj4gPiA+ID4g c21hbGxlciBNVFJScyBkb2Vzbid0IHdvcmsgZWl0aGVyIHNpbmNlIHlvdSdsbCBydW4gb3V0IG9m IE1UUlJzIHZlcnkKPj4gPiA+ID4gcXVpY2tseS4KPj4gPiA+ID4KPj4gPiA+ID4gVGhpcyBpcyBw cmVjaXNlbHkgd2h5IEkgdXNlZCB0aGUgaG9sZSBtZXRob2QgaW4gYXR5ZmIgaW4gdGhlIGZpcnN0 Cj4+ID4gPiA+IHBsYWNlLgo+PiA+ID4gPgo+PiA+ID4gPiBJIGRvbid0IHJlYWxseSBsaWtlIHRo ZSBpZGVhIG9mIGFueSBuZXcgbXRyciBjb2RlIG5vdCBzdXBwb3J0aW5nIHRoYXQKPj4gPiA+ID4g dXNlIGNhc2UsIGVzcGVjaWFsbHkgYXMgdGhlc2UgdGhpbmdzIHRlbmQgdG8gYmUgcHJlc2VudCBp biBvbGRlciBtYWNoaW5lcwo+PiA+ID4gPiB3aGVyZSBQQVQgaXNuJ3QgYW4gb3B0aW9uLgo+PiA+ ID4KPj4gPiA+IEFjY29yZGluZyB0byB0aGUgSW50ZWwgU0RNLCB2b2x1bWUgMywgc2VjdGlvbiAx MS41LjIuMSwgdGFibGUgMTEtNiwKPj4gPiA+IG5vbi1QQVQgQ1BVcyB0aGF0IGhhdmUgYSBXQyBN VFJSLCBQQ0QgPSAxLCBhbmQgUFdUID0gMSAoYWthIFVDKSBoYXZlCj4+ID4gPiBhbiBlZmZlY3Rp dmUgbWVtb3J5IHR5cGUgb2YgVUMuCj4KPiBUaGlzIGlzIHRydWUgYnV0IG5vbi1QQVQgc3lzdGVt cyB0aGF0IHVzZSBqdXN0IGlvcmVtYXAoKSB3aWxsIGRlZmF1bHQgdG8KPiBfUEFHRV9DQUNIRV9N T0RFX1VDX01JTlVTLCBub3QgX1BBR0VfQ0FDSEVfTU9ERV9VQywgYW5kIF9QQUdFX0NBQ0hFX01P REVfVUNfTUlOVVMKPiBvbiBMaW51eCBoYXMgUENEID0gMSwgUFdUID0gMC4gVGhlIGxpc3QgY29t ZXMgZnJvbToKPgo+IHVpbnQxNl90IF9fY2FjaGVtb2RlMnB0ZV90YmxbX1BBR0VfQ0FDSEVfTU9E RV9OVU1dID0gewo+ICAgICAgICAgW19QQUdFX0NBQ0hFX01PREVfV0IgICAgICBdICAgICA9IDAg ICAgICAgICB8IDAgICAgICAgICwKPiAgICAgICAgIFtfUEFHRV9DQUNIRV9NT0RFX1dDICAgICAg XSAgICAgPSBfUEFHRV9QV1QgfCAwICAgICAgICAsCj4gICAgICAgICBbX1BBR0VfQ0FDSEVfTU9E RV9VQ19NSU5VU10gICAgID0gMCAgICAgICAgIHwgX1BBR0VfUENELAo+ICAgICAgICAgW19QQUdF X0NBQ0hFX01PREVfVUMgICAgICBdICAgICA9IF9QQUdFX1BXVCB8IF9QQUdFX1BDRCwKPiAgICAg ICAgIFtfUEFHRV9DQUNIRV9NT0RFX1dUICAgICAgXSAgICAgPSAwICAgICAgICAgfCBfUEFHRV9Q Q0QsCj4gICAgICAgICBbX1BBR0VfQ0FDSEVfTU9ERV9XUCAgICAgIF0gICAgID0gMCAgICAgICAg IHwgX1BBR0VfUENELAo+IH07Cj4KPiBUaGlzIGNhbiBiZXR0ZXIgYmUgcmVhZCBoZXJlOgo+Cj4g IFBBVAo+ICB8UENECj4gIHx8UFdUCj4gIHx8fAo+ICAwMDAgV0IgICAgICAgICAgX1BBR0VfQ0FD SEVfTU9ERV9XQgo+ICAwMDEgV0MgICAgICAgICAgX1BBR0VfQ0FDSEVfTU9ERV9XQwo+ICAwMTAg VUMtICAgICAgICAgX1BBR0VfQ0FDSEVfTU9ERV9VQ19NSU5VUwo+ICAwMTEgVUMgICAgICAgICAg X1BBR0VfQ0FDSEVfTU9ERV9VQwo+Cj4gT24geDg2IGlvcmVtYXAoKSBkZWZhdWx0cyB0byBpb3Jl bWFwX25vY2FjaGUoKSBhbmQgcmlnaHQgbm93IHRoYXQgdXNlcwo+IF9QQUdFX0NBQ0hFX01PREVf VUNfTUlOVVMgbm90IF9QQUdFX0NBQ0hFX01PREVfVUMuIFdlIGhhdmUgdHdvIGNhc2VzCj4gdG8g Y29uc2lkZXIgZm9yIG5vbi1QQVQgc3lzdGVtcyB0aGVuOgo+Cj4gYSkgUmlnaHQgbm93IGFzIGlv cmVtYXAoKSBhbmQgaW9yZW1hcF9ub2NhY2hlKCkgZGVmYXVsdCB0byBfUEFHRV9DQUNIRV9NT0RF X1VDX01JTlVTCj4gICAgb24geDg2LiBJbiB0aGlzIGNhc2UgdXNpbmcgYSBXQyBNVFJSIHNlZW1z IHRvIHVzZSBQV1Q9MCwgUENEPTEsIGFuZAo+ICAgIHRhYmxlIHRhYmxlIDExLTYgb24gbm9uLVBB VCBzeXN0ZW1zIHNlZW1zIHRvIHBsYWNlIHRoaXMgc2l0dWF0aW9uIGFzCj4gICAgImltcGxlbWVu dGF0aW9uIGRlZmluZWQiIGFuZCBub3QgZW5jb3VyYWdlZC4KPgo+IGEpIHdoZW4gY29tbWl0IGRl MzNjNDQyZSAieDg2IFBBVDogZml4IHBlcmZvcm1hbmNlIGRyb3AgZm9yIGdseCwgdXNlCj4gICAg VUMgbWludXMgZm9yIGlvcmVtYXAoKSwgaW9yZW1hcF9ub2NhY2hlKCkgYW5kIHBjaV9tbWFwX3Bh Z2VfcmFuZ2UoKSIKPiAgICBnZXRzIHJldmVydGVkIGFuZCB3ZSB1c2UgX1BBR0VfQ0FDSEVfTU9E RV9VQyBieSBkZWZhdWx0LiBJbiB0aGlzCj4gICAgY2FzZSBvbiB4ODYgZm9yIGJvdGggaW9yZW1h cCgpIGFuZCBpb3JlbWFwX25vY2FjaGUoKSBhcyB0aGV5IHdpbGwKPiAgICBib3RoIGRlZmF1bHQg dG8gX1BBR0VfQ0FDSEVfTU9ERV9VQyB3ZSdsbCBlbmQgdXAgYXMgeW91IG5vdGUgd2l0aAo+ICAg IGFuIGVmZmVjdGl2ZSBtZW1vcnkgdHlwZSBvZiBVQy4KPgo+IElmIEkndmUgdW5kZXJzdG9vZCB0 aGlzIGNvcnJlY3RseSB0aGVuIG5laXRoZXIgb2YgdGhlc2Ugc2l0dWF0aW9ucyBhcmUgZ29vZCBh bmQKPiBpdHMganVzdCBieSBjaGFuY2UgdGhhdCBvbiBzb21lIHN5c3RlbXMgc2l0dWF0aW9uIGEp IGhhcyBsZWFkIHRvIHByb3BlciBXQy4KPgo+IE9uIGEgUEFUIHN5c3RlbSB3ZSBoYXZlIGEgYml0 IGRpZmZlcmVudCBjb21iaW5hdG9yaWFsIHJlc3VsdHMgKGJhc2VkIG9uIFRhYmxlCj4gMTEtNyk6 Cj4KPiBhKSBSaWdodCBub3cgaW9yZW1hcCgpIGFuZCBpb3JlbWFwX25vY2FjaGUoKSBkZWZhdWx0 aW5nIHRvCj4gICAgIF9QQUdFX0NBQ0hFX01PREVfVUNfTUlOVVMgeWllbGRzICsgTVRSUiBXQyA9 IFdDCj4KPiBiKSBXaGVuIGNvbW1pdCBkZTMzYzQ0MmUgZ2V0cyByZXZlcnRlZCBfUEFHRV9DQUNI RV9NT0RFX1VDICsgTVRSUiBXQyA9IFVDCj4KPiBTbyB0byBiZSBjbGVhciByaWdodCBub3cgYXR5 ZmIgc2hvdWxkIHdvcmsgZmluZSBvbiBQQVQgc3lzdGVtcwo+IHdpdGggZGUzM2M0NDJlIGluIHBs YWNlLCBvbmNlIHJldmVydGVkIGFzLWlzIHJpZ2h0IG5vdyB3ZSdkIGVuZAo+IHVwIHdpdGggVUMg ZWZmZWN0aXZlIG1lbW9yeSB0eXBlLgo+Cj4gRm9yIGJvdGggUEFUIGFuZCBub24tUEFUIHN5c3Rl bXMgd2hlbiBjb21taXQgZGUzM2M0NDJlIGdldHMgcmV2ZXJ0ZWQKPiB3ZSdkIGVuZCB1cCB3aXRo IFVDIGFzIHRoZSBlZmZlY3RpdmUgbWVtb3J5IHR5cGUgZm9yIGF0eWZiLiBSaWdodAo+IG5vdyBp dCBzaG91ZCB3b3JrIG9uIFBBVCBzeXN0ZW1zIGFuZCBieSBjaGFuY2UgaXRzIHN1c3BlY3RlZCB0 byB3b3JrCj4gb24gbm9uLVBBVCBzeXN0ZW1zLiBXZSB3YW50IHRvIHBoYXNlIE1UUlIgdGhvdWdo LCBzcGVjaWFsbHkgdG8gYXZvaWQKPiBhbGwgdGhpcyBpbnNhbmUgY29tYmluYXRvcmlhbCBuaWdo dG13YXJlLgo+Cj4+ID4gPiBIZW5jZSBteSBzdWdnZXN0aW9uIHRvIGFkZAo+PiA+ID4gaW9yZW1h cF94ODZfdWMgYW5kL29yIHNldF9tZW1vcnlfeDg2X3VjIHRvIHB1bmNoIGEgVUMgaG9sZSBpbiBh bgo+PiA+ID4gb3RoZXJ3aXNlIFdDIE1UUlItY292ZXJlZCByZWdpb24uCj4KPiBUbyBiZSBjbGVh ciBJIHRoaW5rIHlvdSBtZWFuIHRoZW4gdGhhdCBpb3JlbWFwX3g4Nl91YygpIHdvdWxkIGhlbHAg dXMgYXZvaWQgdGhlCj4ganVtcHMgYmV0d2VlbiBjb21iaW5hdG9yaWFsIGlzc3VlcyB3aXRoIE1U UlIgb24gUEFUIC8gbm9uLVBBVCBzeXN0ZW1zIGJlZm9yZQo+IGFuZCBhZnRlciBjb21taXQgZGUz M2M0NDJlIGdldHMgcmV2ZXJ0ZWQuIFNvIGZvciBpbnN0YW5jZSBpZiB3ZSBoYWQgb24gdGhlCj4g YXR5ZmIgZHJpdmVyOgo+Cj4gaW9yZW1hcF94ODZfdWMoUENJIEJBUikKPiBpb3JlbWFwX3djKGZy YW1lYnVmZmVyKQo+IGFyY2hfcGh5c19hZGRfd2MoUENJIEJBUikKPgo+IE9uIG5vbi1QQVQgc3lz dGVtcyBvbiB0aGUgTU1JTyByZWdpb24gd2l0aCBQV1Q9MSwgUENEPTEgd2UnZCBlbmQgdXAgd2l0 aCBVQy4KPiBTYWRseSB0aG91Z2ggc2luY2UgX1BBR0VfQ0FDSEVfV0Mgb24gbm9uLVBBVCBoYXMg UFdUPTEsIFBDRD0wLCB0aGUgV0MKPiBNVFJSIHRoYXQgZm9sbG93cyB3b3VsZCBtZWFuIHdlJ2Qg ZW5kIHVwIHdpdGggYW5vdGhlciBncmV5IGFyZWEgKGJ1dAo+IHNpbWlsYXIgdG8gYmVmb3JlIGFz IHRlY2huaWNhbGx5IGFuIGVmZmVjdGl2ZXRoZSBtZW1vcnkgdHlwZSBvZiBXQykuCj4KPiBPbiBQ QVQgc3lzdGVtcyB0aGUgYWJvdmUgd291bGQgbm90IHVzZSBNVFJScyBidXQgd2UnZCBiZSBjb3Vu dGluZyBvbgo+IG92ZXJsYXBwaW5nIG1lbW9yeSB0eXBlcyAtLSBpdHMgbm90IGNsZWFyIGlmIGFs aWFzaW5nIGhlcmUgaXMgYSBwcm9ibGVtLgo+Cj4gQWxzbyBJbnRlbCBTRE0sIHZvbHVtZSAzLCBz ZWN0aW9uICIxMS4xMS40IFJhbmdlIFNpemUgYW5kIEFsaWdubWVudCBSZXF1aXJlbWVudCIKPiBk ZXNjcmliZXMgdGhhdDogInRoZSBtaW5pbXVtIHJhbmdlIHNpemUgaXMgNCBLaUIsIHRoZSBiYXNl IGFkZHJlc3MgbXVzdCBiZSBvbgo+IGEgNCBLaUIgYm91bmRhcnkuIEZvciByYW5nZXMgZ3JlYXRl ciB0aGFuIDQgS2lCIGVhY2ggcmFuZ2UgbXVzdCBiZSBvZiBsZW5ndGgKPiAyXm4gYW5kIGl0cyBi YXNlIGFkZHJlc3MgbXVzdCBiZSBhbGluZ2VkIG9uIGEgMl5uIGJvdW5kYXJ5IHdoZXJlIG4gaXMg YSB2YWx1ZQo+IGVxdWFsIG9yIGdyZWF0YXIgdGhlbiAxMi4gVGhlIGJhc2UtYWRkcmVzcyBhbGln bm1lbnQgdmFsdWUgY2Fubm90IGJlIGxlc3MKPiB0aGFuIGl0cyBsZW5ndGguIEZvciBleGFtcGxl LCBhbiA4LUtpQiByYW5nZSBjYW5ub3QgYmUgYWxpZ25lZCBvbiBhCj4gNC1LaUIgYm91bmRhcnku IEl0IG11c3QgYmUgYWxpZ25lZCBvbiBhdCBsZWFzdCBhbiA4LUtpQiBib3VuZGFyeSIKPgo+IFNv IHRvIGFuc3dlciBteSBvd24gcXVlc3Rpb246IGluZGVlZCwgb3VyIGZyYW1lYnVmZmVyIGJhc2Ug YWRkcmVzcyBtdXN0IGJlCj4gYWxpZ25lZCBvbiBhIDJebiBib3VuZGFyeSwgdGhlIHNpemUgYWxz byBoYXMgdG8gYmUgYSBwb3dlciBvZiAyLiBNVFJSIHN1cHBvcnRzCj4gZml4ZWQgcmFuZ2Ugc2l6 ZXMgYW5kIHZhcmlhYmxlIHJhbmdlIHNpemVzLCBpbiBjYXNlIG9mIHRoZSBNTUlPIHRoYXQgZG9l cwo+IG5vdCBuZWVkIHRvIGFiaWRlIGJ5IHRoZSBwb3dlciBvZiAyIHJ1bGUgYXMgYSBmaXhlZCBy YW5nZSBzaXplIG9mIDQgS2lCCj4gY291bGQgYmUgdXNlZCBhbHRob3VnaCB1cG9uIHJldmlldyBv dWYgb3VyIG93biBpbXBsZW1ldG5hdGlvbiBpdHMgdW5jbGVhciBpZgo+IHRoYXQgaXMgd2hhdCBp cyB1c2VkIGZvciA0IEtpQiBzaXplZCBNVFJScy4KPgo+IEhlbmNlIG15IGFyY2hfcGh5c19hZGRf d2MoUENJIEJBUikgYXMgYWJvdmUuCj4KPj4gPiBPSyBJIHRoaW5rIEkgZ2V0IGl0IG5vdy4KPj4g Pgo+PiA+IEFuZCBJIHRha2UgaXQgdGhpcyB3b3VsZCBob3BlZnVsbHkgb25seSBiZSB1c2VkIGZv ciBub24tUEFUIHN5c3RlbXM/Cj4KPiBTaW5jZSB3ZSBsaWtlbHkgY291bGQgY2FyZSB0byB1c2Ug aW9yZW1hcF94ODZfdWMoKSBvbiBQQVQgc3lzdGVtcyBhcyB3ZWxsIHdlCj4gY291bGQgbWFrZSB0 aGUgZWZmZWN0aXZlIGZvciBib3RoIFBBVCBhbmQgbm9uLVBBVCBvYnZpb3VzbHkgdGhlbi4gIExh dGVyIHdoZW4KPiB3ZSBnZXQgaW9yZW1hcCgpIHRvIGRlZmF1bHQgdG8gc3Ryb25nIFVDIHdlIGNv dWxkIGRyb3AgaW9yZW1hcF94ODZfdWMoKSBhcyB3ZSdkCj4gb25seSBuZWVkIGl0IGFzIHRyYW5z aXRvcnkgdW50aWwgdGhlbiAtLSB0aGF0IGlzIHVubGVzcyB3ZSB3YW50IHBlcmhhcHMgYSBzdHJv bmcKPiBVQyBpb3JlbWFwIHByaW1pdGl2ZSB3aGljaCBpcyBhbHdheXMgZm9sbG93aW5nIHN0cm9u ZyBVQyB3aGVuIGF2YWlsYWJsZSByZWdhcmRsZXNzCj4gb2YgdGhlc2UgZGVmYXVsdCB0cmFuc2l0 aW9ucy4KPgo+IFRoZSBiaWcgaXNzdWUgSSBzZWUgaGVyZSBpcyBzaW1wbHkgdGhlIGNvbWJpbmF0 b3JpYWwgaXNzdWVzLCBzbyBJIGRvIHRoaW5rCj4gaXRzIGJlc3QgdG8gYW5ub3RhdGUgdGhlc2Ug Y29ybmVyIGNhc2VzIHdlbGwgYW5kIGF2b2lkIHRoZW0uCj4KPj4gPiBXb3VsZCB0aGVyZSBiZSBh IHVzZSBjYXNlIGZvciBQQVQgc3lzdGVtcz8gSSB3b25kZXIgaWYgd2UgY2FuIHdyYXAKPj4gPiB0 aGlzIHVuZGVyIHNvbWUgQVBJcyB0byBtYWtlIGl0IGNsZWFuIGFuZCBoaWRlIHRoaXMgZGlydHkg dGhpbmcKPj4gPiBiZWhpbmQgdGhlIHNjZW5lcywgaXQgc2VlbXMgYSBmcmFnaWxlIGFuZCBlcnJv ciBwcm9uZSBhbmQgbXkgaG9wZQo+PiA+IHdvdWxkIGJlIHRoYXQgd2Ugd29uJ3QgbmVlZCBtb3Jl IHNwZWNpYWxpemF0aW9uIGluIHRoaXMgYXJlYSBmb3IKPj4gPiBQQVQgc3lzdGVtcy4KPj4KPj4g T25lIHBvdGVudGlhbCBjb21wbGljYXRpb24gaXMga2VybmVsIHZzLiB1c2Vyc3BhY2UgbW1hcC4g TVRSUiBhcHBsaWVzIHRvCj4+IHRoZSBwaHlzaWNhbCBhZGRyZXNzLCBidXQgUEFUIGFwcGxpZXMg dG8gdGhlIHZpcnR1YWwgYWRkcmVzcywgc28gd2l0aAo+PiB0aGUgV0MgTVRSUiB5b3UgZ2V0IFdD IGZvciB1c2Vyc3BhY2UgImZvciBmcmVlIiBhcyB3ZWxsLgo+Cj4gV2hhdCBpcyB0aGUgcGVyZm9y bWFuY2UgaW1wYWN0IG9mIGhhdmluZyB0aGUgY29udmVyc2lvbiBiZWluZyBkb25lIGJ5IHRoZQo+ IGtlcm5lbD8gSGFzIGFueW9uZSBkb25lIG1lYXN1cmVtZW50cz8gSWYgc2lnbmlmaWNhbnQgY2Fu J3QgdGhlIHN1YnN5c3RlbSBtbWFwKCkKPiBjYWNoZSB0aGUgcGh5cyBhZGRyZXNzIGZvciBQQVQ/ IFNob3VsZG4ndCB0aGUgVExCIHRha2UgY2FyZSBvZiB0aG9zZSBjb25zaWRlcmF0aW9ucwo+IGZv ciB1cz8gSWYgdGhpcyBpcyBnZW5lcmFsbHkgZGVzaXJhYmxlIHNob3VsZG4ndCB3ZSBqdXN0IGdl bmVyYWxpemUgdGhlIGNhY2hlCj4gZm9yIGRldmljZXMgZm9yIE8oMSkgYWNjZXNzIHRocm91Z2gg YSBnZW5lcmljIEFQST8KCldlJ3JlIHByZXR0eSBtdWNoIHJlcXVpcmVkIHRvIGtlZXAgdGhlIFBU RSBtZW1vcnkgdHlwZXMgY29uc2lzdGVudCBmb3IKYWxpYXNzZXMgb2YgdGhlIHNhbWUgcGFnZS4g IEkgdGhpbmsgdGhhdCB0aGUgeDg2IHBhZ2VhdHRyIGNvZGUgaXMKc3VwcG9zZWQgdG8gdGFrZSBj YXJlIG9mIHRoaXMuICBJT1csIGlmIGV2ZXJ5dGhpbmcgaXMgd29ya2luZyByaWdodCwKdGhlbiB0 aGUgc3VwcG9zZWRseSB1bmNhY2hlZCBtbWFwIHNob3VsZCBlaXRoZXIgZmFpbCwgYmUgcHJvbW90 ZWQgdG8KV0MsIG9yIGNhdXNlIHRoZSBleGlzdGluZyBXQyBtYXAgdG8gZGVncmFkZSB0byBVQy4g IFRoZSBjb2RlIGlzIHJlYWxseQpvdmVyY29tcGxpY2F0ZWQgcmlnaHQgbm93LgoKLS1BbmR5Cgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=