From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH] drm/i915: Fix frontbuffer false positve. Date: Tue, 24 Feb 2015 10:00:39 -0800 Message-ID: <20150224180039.GP594@intel.com> References: <1422920296-2794-1-git-send-email-rodrigo.vivi@intel.com> <20150203162133.GI21349@intel.com> <20150203194015.GV14009@phenom.ffwll.local> <20150213084410.GE24485@phenom.ffwll.local> <20150224021336.GO594@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id D87296E1A6 for ; Tue, 24 Feb 2015 10:00:45 -0800 (PST) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: Ander Conselvan de Oliveira , intel-gfx , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBGZWIgMjQsIDIwMTUgYXQgMDk6MzI6MjVBTSAtMDgwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IE9uIE1vbiwgRmViIDIzLCAyMDE1IGF0IDY6MTMgUE0sIE1hdHQgUm9wZXIgPG1hdHRo ZXcuZC5yb3BlckBpbnRlbC5jb20+IHdyb3RlOgo+ID4gT24gTW9uLCBGZWIgMjMsIDIwMTUgYXQg MDU6NTI6MjRQTSAtMDgwMCwgUm9kcmlnbyBWaXZpIHdyb3RlOgo+ID4+IEhpIERhbmllbCwKPiA+ Pgo+ID4+IEl0IHNlZW1zIHRoYXQgb25lIGNoZWNrIHdpdGggb25lIGdvb2QgY29tbWl0IGZvbGxv d2VkIGJ5IG1hbnkgemVyb2VkCj4gPj4gaW50ZWxfY3J0Yy0+YXRvbWljIGNvbW1pdHMgaXMgYWdh aW4gaW4gcGxhY2UuCj4gPgo+ID4gQ2FuIHlvdSBlbGFib3JhdGUgb24gd2hhdCB5b3UgbWVhbiBi eSB0aGlzPyAgV2l0aCBhdG9taWMgaXQncyBwb3NzaWJsZQo+ID4gdG8gaGF2ZSBhIGNoZWNrIHdp dGggbm8gY29tbWl0IGFmdGVyIGl0IChpZiB0aGUgY2hlY2sgb3IgcHJlcGFyZSBmYWlsLAo+ID4g b3IgaWYgaXQncyBhICd0ZXN0IG9ubHknIG9wZXJhdGlvbiksIGJ1dCBpZiB5b3UncmUgc2VlaW5n IGNvbW1pdHMKPiA+IHdpdGhvdXQgY29ycmVzcG9uZGluZyBjaGVja3MsIHRoYXQgc291bmRzIGxp a2UgYSBidWcuCj4gCj4gQWggc28geWVzLCB0aGlzIGlzIHRoZSBidWcsIHdoZW4gbW92aW5nIGEg Y3Vyc29yIHdlIGhhdmUgbWFueSBjb21taXRzCj4gd2l0aG91dCBjaGVja3MuIFNvIGl0IGlzIG9u bHkgb25lIGNoZWNrIGZvbGxvd2VkIGJ5IG1hbnkgY29tbWl0cy4uLiBzbwo+IGl0IGNvbW1pdHMg d2l0aCBpbnRlbF9jcnRjLT5hdG9taWMgYWxsIHplcm9lZCBieSBhIHByZXZpb3VzCj4gZmluaXNo X2NvbW1pdC4KPiAKPiA+Cj4gPiBDYW4geW91IHByb3ZpZGUgYSBkbWVzZyB3aXRoIGRybS5kZWJ1 ZyB0dXJuZWQgb24gc28gd2UgY2FuIHNlZSB3aGF0J3MKPiA+IGdvaW5nIG9uPyAgT3IgYWRkIHNv bWUgZHVtcF9zdGFjaygpJ3Mgc28gdGhhdCB3ZSBjYW4gc2VlIHRoZSBiYWNrdHJhY2UKPiA+IHRo YXQgbGVkIHVzIHRvIHRoaXMgc2l0dWF0aW9uLgo+IAo+IEkgbG9zdCB0aG9zZSBsb2dzLCBidXQg aWYgeW91IHB1dCBvbmUgcHJpbnQgaW4gY2hlY2sgYW5kIG9uZSBpbiBjb21taXQKPiB5b3UgYWxz byBzaG91bGQgYmUgYWJsZSB0byBzZWUgdGhhdCBzaW5jZSBJIGhlYXJkIGFib3V0IHRoaXMgZmFs c2UKPiBwb3NpdGl2ZSBmcm9tIG1hbnkgcGVvcGxlLgoKSG1tLiAgQXJlIGFsbCBvZiB0aGVzZSBw ZW9wbGUgdXNpbmcgYSBzcGVjaWZpYyBwbGF0Zm9ybT8gIEkgb25seSBoYXZlCmFjY2VzcyB0byBJ VkIgaGFyZHdhcmUgYXQgdGhlIG1vbWVudCwgc28gaXQgY291bGQgYmUgdGhhdCB0aGUgcHJvYmxl bQpsaWVzIG9uIGNvZGVwYXRocyBJIGp1c3QgZG9uJ3QgZXhlcmNpc2Ugb24gbXkgc3lzdGVtLiAg TW9zdCBvZiB0aGUKYXRvbWljIHN0dWZmIGlzIHByZXR0eSBwbGF0Zm9ybS1hZ25vc3RpYywgYnV0 IG1heWJlIHRoZXJlJ3Mgc29tZXRoaW5nIEkKb3Zlcmxvb2tlZC4KCj4gPgo+ID4gQWN0dWFsbHks IEkgd29uZGVyIGlmIHRoZSBwcm9ibGVtIGlzIGFjdHVhbGx5IHRoZSBvcHBvc2l0ZSBvZiB3aGF0 IHlvdQo+ID4gc2F5IGFib3ZlLiAgTm93IHRoYXQgSSBsb29rIGF0IHRoaXMgYWdhaW4sIHdlIG9u bHkgemVybyBvdXQKPiA+IGludGVsX2NydGMtPmF0b21pYyBpbiBpbnRlbF9maW5pc2hfY3J0Y19j b21taXQgd2hpY2ggaXMgcGFydCBvZiB0aGUKPiA+IGNvbW1pdCBwYXRoLgo+IAo+IEZyb20gd2hh dCBJIGhlYXJkIGFuZCB3aGF0IEkgc2F3IG9uIHRoZSBsb2dzIEkgdGhvdWdodCBpdCB3YXMgb2sg dG8KPiBoYXZlIDEgY2hlY2sgdGhhbiBhcyBtYW55IGNvbW1pdHMgYXMgcG9zc2libGUgd2l0aG91 dCB0aGUgY2hlY2suCj4gSWYgdGhhdCB3YXMgdGhlIGNhc2Ugd2Ugd291bGQgaGF2ZSBhIGZhaWwg dGhhdCBpcyB0byB6ZXJvIHRoZQo+IHN0cnVjdHVyZSBvbiBmaW5pc2hfY29tbWl0LiBCdXQgc2Vl bXMgdGhpcyBpc24ndCB0aGUgY2FzZS4gU29ycnkuCgpJIGd1ZXNzIEkgc2hvdWxkIGNsYXJpZnkg dGVybWlub2xvZ3kgYSBsaXR0bGUgYml0IHNpbmNlIHRoaXMgZ2V0cyBraW5kCm9mIGNvbmZ1c2lu Zy4uLgoKRm9yIGF0b21pYywgd2UgaGF2ZSBhIHRvcC1sZXZlbCBhdG9taWNfc3RhdGUgc3RydWN0 dXJlIHRoYXQgY29udGFpbnMKZXZlcnl0aGluZyB0aGF0IHdlIHdhbnQgdG8gdXBkYXRlIGFzIHBh cnQgb2YgYW4gYXRvbWljIHRyYW5zYWN0aW9uCihtdWx0aXBsZSBwbGFuZXMsIGNydGMncywgZXRj LikuICBBdCB0aGUgbW9tZW50LCB3ZSBvbmx5IHN1cHBvcnQgYQpzdWJzZXQgb2YgYXRvbWljLCBz byB5b3UnbGwgb25seSBldmVyIGdldCBvbmUgY3J0YyBiZWluZyBtb2RpZmllZCwgYnV0CnRoZXJl IGNvdWxkIGJlIG11bHRpcGxlIHBsYW5lcyAocHJpbWFyeSwgY3Vyc29yLCAxIG9yIG1vcmUgc3By aXRlCnBsYW5lcykuICBUaGVyZSdzIGEgc3ViLXN0YXRlIHN0cnVjdHVyZSAocGxhbmVfc3RhdGUs IGNydGNfc3RhdGUsIGV0Yy4pCmZvciBlYWNoIERSTSBvYmplY3QgYmVpbmcgdXBkYXRlZC4KCkF0 IHRoZSB0b3AgbGV2ZWwgb2YgYXRvbWljIGhhbmRsaW5nIHdlIGRvICJjaGVjayIgYW5kIHRoZW4g ImNvbW1pdCIgd2l0aAp0aGUgdG9wLWxldmVsIGF0b21pYyBzdGF0ZS4gIElmIHlvdSB0cmFjZSBk b3duIHRocm91Z2ggdGhlIGNvZGVmbG93LCB0aGUKdG9wLWxldmVsIGNoZWNrIGhlcmUgd2lsbCBh Y3R1YWxseSBjYWxsIGEgcGxhbmUtc3BlY2lmaWMgY2hlY2sgZnVuY3Rpb24Kb24gZWFjaCBwbGFu ZSBzdGF0ZSBkdXJpbmcgdGhlIHRvcC1sZXZlbCBjaGVjaywgYW5kIHRoZW4gdGhlIHRvcC1sZXZl bApjb21taXQgZnVuY3Rpb24gd2lsbCBjYWxsIHRoZSBwbGFuZS1zcGVjaWZpYyBjb21taXQgZnVu Y3Rpb24gb24gZWFjaApwbGFuZSBpbnZvbHZlZC4KClNvIHdoZW4gSSBzYXkgIjEgb3IgbW9yZSBj aGVja3MsIGZvbGxvd2VkIGJ5IGV4YWN0bHkgb25lIGNvbW1pdCIgSSdtCnJlZmVycmluZyB0byB0 aGUgdG9wLWxldmVsIGNoZWNrIHRoYXQgZGVhbHMgd2l0aCB0aGUgdG9wLWxldmVsIGF0b21pYwpz dGF0ZS4gIElmIHlvdSdyZSBsb29raW5nIGF0IHRoZSBwbGFuZSBzdGF0ZSBzcGVjaWZpY2FsbHks IHlvdSBtaWdodCBzZWUKbW9yZSBvZiBhbiBuOm4gcmVsYXRpb25zaGlwIGlmIHlvdXIgdHJhbnNh Y3Rpb24gaXMgdXBkYXRpbmcgbXVsdGlwbGUKcGxhbmVzIHRvZ2V0aGVyIChvbmUgY2hlY2sgY2Fs bCBwZXIgcGxhbmUgYmVpbmcgdXBkYXRlZCwgcG9zc2libHkKZm9sbG93ZWQgYnkgb25lIGNvbW1p dCBjYWxsIGZvciBlYWNoIG9mIHRoZW0pLCBidXQgdGhlIGNsZWFyaW5nIG9mCmludGVsX2NydGMt PmF0b21pYyBzaG91bGQgc3RpbGwgaGFwcGVuIGF0IHRoZSBlbmQsIGFmdGVyIGFsbCBvZiB0aGUK aW5kaXZpZHVhbCBwbGFuZXMgaGF2ZSBiZWVuIGNvbW1pdHRlZC4KCj4gPiBTbyBpZiB5b3UgaGFk IGEgY2hlY2sgdGhhdCBuZXZlciBnb3QgYSBjb3JyZXNwb25kaW5nCj4gPiBjb21taXQsIHRoZXJl IG1pZ2h0IHN0aWxsIGJlIGdhcmJhZ2UgbGVmdCBvdmVyIGluIHRoZXJlLgo+IAo+IE5vIGl0IGlz IHRoZSBvcHBvc2l0ZS4gQ29tbWl0cyB3aXRoIG5vIGNoZWNrLiBjYXVzaW5nIGNvbW1pdCBvZgo+ IGludGVsX2NydGMtPmF0b21pYyB6ZXJvZWQuCj4gCj4gPiBVbHRpbWF0ZWx5IHdlCj4gPiBzaG91 bGQgYmUgaGFuZGxpbmcgYWxsIG9mIHRoaXMgd2l0aCByZWFsIGludGVsX2NydGNfc3RhdGUgaGFu ZGxpbmcgd2hpY2gKPiA+IHdlIGRvbid0IHF1aXRlIGhhdmUgeWV0LiAgTWF5YmUgaW4gdGhlIG1l YW50aW1lIHdlIG5lZWQgdG8gYmUgY2xlYXJpbmcKPiA+IG91dCBpbnRlbF9jcnRjLT5hdG9taWMg YXQgdGhlIGJlZ2lubmluZyBvZiBhIHRvcC1sZXZlbCBhdG9taWMKPiA+IHRyYW5zYWN0aW9uPyAg SSdsbCBzZW5kIGEgcGF0Y2ggdGhhdCBtYWtlcyB0aGlzIGNoYW5nZSBmb3IgeW91IHRvIHRyeQo+ ID4gc2hvcnRseS4KPiAKPiBUaGFua3MhIEkgdGhvdWdodCBhYm91dCB0aGlzIGJ1dCBnb3QgYWZy YWlkIHRoYXQgY2xlYXJpbmcgdGhpcyBvbiB0b3AKPiBvZiBjaGVjayBjb3VsZCBjYXVzZSBhIHJh Y2Ugc2luY2Ugb25lIHBsYW5lIGRvaW5nIGEgY2hlY2sgY291bGQgY2xlYW4KPiB0aGUgYXRvbWlj IGJlaW5nIGNvbW1pdGVkIG9uIGN1cnNvciBtb3ZlbWVudCwgdW5sZXNzIHdlIGhhdCB0aGF0IGZv cgo+IHBsYW5lcywgYnV0IHRoZW4gd2Ugd291bGQgaGF2ZSB0byBpdGVyYXRlIG92ZXIgYWxsIHBs YW5lcyBvbgo+IGZpbmlzaF9jb21taXQuCj4gCj4gV2UgY2FuIGFsc28gcHV0IHRoaXMgcGF0Y2gg dGhhdCBmaXggdGhlIG9ubHkga25vd24gaXNzdWUgc28gZmFyIHdpdGggYQo+IEZJWE1FIGNvbW1l bnQgd2hpbGUgd2UgZG9uJ3QgaGF2ZSB0aGUgZmluYWwgZml4LgoKV2VsbCwgYmFzZWQgb24gd2hh dCB5b3Ugc2F5IGFib3ZlLCBpdCBzb3VuZHMgbGlrZSBpdCBwcm9iYWJseSB3b24ndApzb2x2ZSB5 b3VyIGlzc3VlLCBzbyB3ZSdsbCBuZWVkIHRvIGV4cGxvcmUgc29tZSBtb3JlLiAgSSBzdGlsbCBo YXZlbid0Cm1hbmFnZWQgdG8gcmVwcm9kdWNlIHRoaXMgbXlzZWxmLCBzbyBJJ20gbm90IHN1cmUg d2hldGhlciBJJ20gd29ya2luZyBvbgphIGhhcmR3YXJlIHBsYXRmb3JtIHRoYXQgd29uJ3QgdHJp Z2dlciB0aGUgYnVnLCBvciB3aGV0aGVyIEknbSBqdXN0CnVubHVja3kuCgpJcyB0aGVyZSBhIHNw ZWNpZmljIGlndCB0ZXN0IHlvdSd2ZSBiZWVuIHVzaW5nIHRoYXQgdHJpZ2dlcnMgdGhpcwpyZWxp YWJseSBmb3IgeW91PwoKCk1hdHQKCj4gCj4gPgo+ID4KPiA+IE1hdHQKPiA+Cj4gPj4KPiA+PiBT byBJJ20gZ2V0dGluZyB0aGF0IGFubm95aW5nIGZhbHNlIHBvc2l0aXZlcyBvbiBsYXRlc3QgLW5p Z2h0bHkuCj4gPj4KPiA+PiBTaG91bGRuJ3Qgd2UganVzdCBtZXJnZSB0aGlzIHBhdGNoIHdoaWxl IGF0b21pYyBtb2Rlc2V0IGRlc2lnbiBkb2Vzbid0Cj4gPj4gZ2V0IGZpeGVkIGF0IGFsbD8KPiA+ Pgo+ID4+IFVuZm9ydHVuYXRlbHkgbm90aGluZyBjb21lcyB0byBteSBtaW5kIHRoYW4gbW92aW5n IGFsbAo+ID4+IGludGVsX2NydGMtPmF0b21pYyBzZXQgdG8gY29tbWl0IHRpbWUgYW5kIGxldCBw cmVfY29tbWl0IGp1c3Qgd2l0aAo+ID4+IHBtX2dldC4uLgo+ID4+IE9odGVyIHRoYW4gdGhhdCBq dXN0IGEgZnVsbCByZWRlc2lnbiBvZiBhdG9taWMgbW9kZXNldC4KPiA+Pgo+ID4+IFRoYW5rcywK PiA+PiBSb2RyaWdvLgo+ID4+Cj4gPj4KPiA+PiBPbiBGcmksIEZlYiAxMywgMjAxNSBhdCAxMjo0 OCBBTSwgRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90ZToKPiA+PiA+IE9uIFRo dSwgRmViIDEyLCAyMDE1IGF0IDA1OjE3OjA0UE0gLTA4MDAsIFJvZHJpZ28gVml2aSB3cm90ZToK PiA+PiA+PiBObywgd2UgaGFkIHNvbHZlZCBvbGQgZnJvbnRidWZmZXIgZmFsc2UgcG9zaXRpdmVz Li4uIHNvbWUgbWlzc2luZwo+ID4+ID4+IGZsdXNoIHNvbWV3aGVyZSBhdCB0aGF0IHRpbWUuLi4K PiA+PiA+Pgo+ID4+ID4+IFNvLCBJIGFkZGVkIGEgYnVuY2ggb2YgcHJpbnRrIGFuZCBJIGluc2lz dCB0aGF0IGl0IGlzIGNvbmNlcHR1YWxseQo+ID4+ID4+IHdyb25nIHRvIHNldCBpbnRlbF9jcnRj X2F0b21pY19jb21taXQgb24gY2hlY2sgdGltZXMgd2hlbiB5b3UgZG8KPiA+PiA+PiBtZW1zZXQo JmludGVsX2NydGMtPmF0b21pYywgMCwgc2l6ZW9mKGludGVsX2NydGMtPmF0b21pYykpOwo+ID4+ ID4+IG9uIGV2ZXJ5IGZpbmlzaF9jb21taXQuCj4gPj4gPj4KPiA+PiA+PiBXaXRoIGV4Y2VwdGlv biBvZiBhdG9taWMuZGlzYWJsZWRfcGxhbmVzIEkgYmVsaWV2ZSB0aGUgcmVzdCBzaG91bGRuJ3QK PiA+PiA+PiB3b3JrIGluIHRoZSB3YXkgaXQgaXMgaW1wbGVtZW50ZWQgYmVjYXVzZSB5b3UgY2Fu IGhhdmUgb25lIGNoZWNrCj4gPj4gPj4gZm9sbG93ZWQgYnkgbWFueSBjb21taXRzLCBidXQgYWZ0 ZXIgdGhlIGZpcnN0IGNvbW1pdCBhbGwgYXRvbWljCj4gPj4gPj4gdmFyaWFibGVzIGFyZSB6ZXJv ZWQsIGV4Y2VwdCB0aGUgZGlzYWJsZWRfcGxhbmVzIHRoYXQgaXMgc2V0IG91dHNpZGUKPiA+PiA+ PiBjaGVjay4uLgo+ID4+ID4KPiA+PiA+IE9rIGhlcmUncyB0aGUgdHJvdWJsZTogRXZlcnkgY29t bWl0IHNob3VsZCBoYXZlIGF0IGV4YWN0bHkgb25lIGNoZWNrIGZvcgo+ID4+ID4gdGhlIG5ldyBz dGF0ZSBvYmplY3RzLiBVbmZvcnR1bmF0ZWx5IGluIHRoZSB0cmFuc2l0aW9uIHRoYXQgc2VlbXMg dG8gaGF2ZQo+ID4+ID4gYmVlbiBsb3N0IGZvciBzb21lIGNhc2VzLgo+ID4+ID4KPiA+PiA+PiBG b3IgaW5zdGFuY2U6IG9uIGV2ZXJ5IGN1cnNvciBtb3ZlbWVudCBhdG9taWMuZmJfYml0cyB3YXMg MHgwMDAgd2hlbgo+ID4+ID4+IGl0IHNob3VsZCBiZSAweDAwMi4gVGhpcyBpcyB3aHkgdGhpcyBw YXRjaCBzb2x2ZWQgdGhlIGZhbHNlIHBvc2l0aXZlLAo+ID4+ID4+IGkuZS4gc2V0dGluZyBpdCBv biBjb21taXQgaW5zdGVhZCBvbiBjaGVjayB0aW1lIHdlIGdldCBpdCBwcm9wcGVybHkKPiA+PiA+ PiBzZXQuIE9uZSBvZiB0aGUgcHJvYmxlbXMgaXMgdGhlIGZhbHNlIHBvc2l0aXZlIGJ1dCBhbHNv IGl0IGJyZWFrcwo+ID4+ID4+IGVudGlyZWx5IFNXIHRyYWNraW5nIG9uIFZMVi9DSFYuLi4uCj4g Pj4gPj4KPiA+PiA+PiBJIGJlbGlldmUgd2FpdF9mb3IgZmxpcHMsIHVwZGF0ZV9mYmMsIHdhdGVy bWFya3MsIGV0YyBzaG91bGQga2VlcCB0aGUKPiA+PiA+PiB2YWx1ZSBnb3Qgb24gY2hlY2sgZm9y IHRoZSBjb21taXQgb3IgdGhlIGNoZWNrIHNob3VsZCBiZSBkb25lIGF0Cj4gPj4gPj4gY29tbWl0 IHBsYW5lIGluc3RlYWQgb2Ygb24gY2hlY2suCj4gPj4gPj4KPiA+PiA+PiBJIHN0YXJ0ZWQgZG9p bmcgYSBwYXRjaCBoZXJlIHRvIG1vdmUgYWxsIGF0b21pYyBzZXRzIGZyb20gY2hlY2sgdG8KPiA+ PiA+PiBjb21taXQgZnVuY3Rpb25zIGJ1dCBnYXZlIHVwIG9uIG1pZGRsZSB3aGVuIEkgbm90aWNl ZCB0aGUKPiA+PiA+PiBwcmVwYXJlX2NvbW1pdCB3b3VsZCBhbG1vc3QgZ2V0IGVtcHR5Li4uCj4g Pj4gPgo+ID4+ID4gQWxsIHN0YXRlIHByZWNvbXB1dGF0aW9uIG11c3QgYmUgZG9uZSBpbiBjaGVj aywgYXQgY29tbWl0IHRpbWUgeW91IGhhdmUgYQo+ID4+ID4gbG90IGxlc3MgaW5mb3JtYXRpb24g c2luY2UgdGhlIG9sZCBzdGF0ZSBpcyBzb21ld2hhdCBnb25lLiBZb3UgY2FuIHN0aWxsCj4gPj4g PiBnZXQgYXQgaXQsIGJ1dCBhcyBzb29uIGFzIHdlIGFkZCBhbiBhc3luYyBmbGlwIHF1ZXVlIHRo YXQgd2lsbCBnZXQgcmVhbGx5Cj4gPj4gPiB1Z2x5LiBUaGUgY3VycmVudCBwbGFjZW1lbnQgaXMg aW1vIHRoZSBjb3JyZWN0IG9uZS4gSW5zdGVhZCB3ZSBuZWVkIHRvCj4gPj4gPiBmaWd1cmUgb3V0 IHdoZXJlIHdlJ3JlIGRvaW5nIGEgLT5jb21taXQgd2l0aG91dCBwcm9wZXJseSBjYWxsaW5nIC0+ Y2hlY2sKPiA+PiA+IGJlZm9yZWhhbmQuCj4gPj4gPgo+ID4+ID4+IEFub3RoZXIgaWRlYSB3YXMg dG8gbWFrZSBhIGF0b21pYyBzZXQgcGVyIHBsYW5lIGFuZCBqdXN0IG1lbXNldCgwKSBvbgo+ID4+ ID4+IGJlZ2luIG9mIGV2ZXJ5IGNoZWNrLi4uIEJ1dCB0aGlzIHdvdWxkIHJlcXVpcmUgcmVsaWFi bGUgYWNjZXNzIHRvIHRoZQo+ID4+ID4+IHBsYW5lIGJlaW5nIHVwZGF0ZWQgb24gZmluaXNoX2Nv bW1pdC4uLiBJIGJlbGlldmUgbG9vcCBvbiBhbGwgcGxhbmVzCj4gPj4gPj4gd291bGQgYmUgbWVz c3kgYW5kIGNhdXNlIG90aGVyIGlzc3Vlcy4uLgo+ID4+ID4+Cj4gPj4gPj4gU28sIEknbGwgYmUg b3V0IHJldHVybmluZyBvbmx5IG5leHQgd2VkLiBQbGVhc2UgbGV0IG1lIGtub3cgaWYgeW91Cj4g Pj4gPj4gaGF2ZSBhbnkgc3VnZ2VzdGlvbiBvZiBiZXN0IGNoYW5nZXMgdG8gZG8gdGhhdCBJIGNh biBpbXBsZW1lbnQgdGhlCj4gPj4gPj4gY2hhbmdlcy4KPiA+PiA+Cj4gPj4gPiBTaW5jZSB5b3Un dmUgZG9uZSB0aGlzIHRlc3RpbmcgSSd2ZSBsYW5kZWQgTWF0dCdzIHBhdGNoZXMgdG8gc3dpdGNo IGxlZ2FjeQo+ID4+ID4gcGxhbmUgZW50cnkgcG9pbnRzIG92ZXIgdG8gYXRvbWljLiBXaGljaCBt ZWFucyBjdXJzb3IgdXBkYXRlcyBzaG91bGQgbm93Cj4gPj4gPiBiZSBkb25lIHByb3Blcmx5IHVz aW5nIGF0b21pYywgYWx3YXlzLiBCdXQgZXZlbiB0aGVuIHRoZSBvbGQgdHJhbnNpdGlvbmFsCj4g Pj4gPiBwbGFuZSBoZWxwZXJzIHNob3VsZCBoYXZlIGNhbGxlZCB0aGUgY2hlY2sgZnVuY3Rpb25z IC4uLiBTbyBub3Qgc3VyZSB3aGVyZQo+ID4+ID4gZXhhY3RseSB3ZSdyZSBsb29zaW5nIHRoYXQg Y2hlY2sgY2FsbC4KPiA+PiA+Cj4gPj4gPiBNYXR0IFJvcGVyIG1pZ2h0IGhhdmUgbW9yZSBpbnNp Z2h0cy4KPiA+PiA+Cj4gPj4gPiBUaGFua3MsIERhbmllbAo+ID4+ID4gLS0KPiA+PiA+IERhbmll bCBWZXR0ZXIKPiA+PiA+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4+ ID4gKzQxICgwKSA3OSAzNjUgNTcgNDggLSBodHRwOi8vYmxvZy5mZndsbC5jaAo+ID4+Cj4gPj4K PiA+Pgo+ID4+IC0tCj4gPj4gUm9kcmlnbyBWaXZpCj4gPj4gQmxvZzogaHR0cDovL2Jsb2cudml2 aS5lbmcuYnIKPiA+Cj4gPiAtLQo+ID4gTWF0dCBSb3Blcgo+ID4gR3JhcGhpY3MgU29mdHdhcmUg RW5naW5lZXIKPiA+IElvVEcgUGxhdGZvcm0gRW5hYmxpbmcgJiBEZXZlbG9wbWVudAo+ID4gSW50 ZWwgQ29ycG9yYXRpb24KPiA+ICg5MTYpIDM1Ni0yNzk1Cj4gCj4gCj4gCj4gLS0gCj4gUm9kcmln byBWaXZpCj4gQmxvZzogaHR0cDovL2Jsb2cudml2aS5lbmcuYnIKCi0tIApNYXR0IFJvcGVyCkdy YXBoaWNzIFNvZnR3YXJlIEVuZ2luZWVyCklvVEcgUGxhdGZvcm0gRW5hYmxpbmcgJiBEZXZlbG9w bWVudApJbnRlbCBDb3Jwb3JhdGlvbgooOTE2KSAzNTYtMjc5NQpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=