From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniele Ceraolo Spurio Subject: Re: [PATCH v1] drm/i915/gen11: Preempt-to-idle support in execlists. Date: Fri, 30 Mar 2018 12:45:43 -0700 Message-ID: <55608b6d-59f3-1790-9d1b-e1df9d26f092@intel.com> References: <1522163879-10837-1-git-send-email-tomasz.lis@intel.com> <152219323026.10679.15841903313103368914@mail.alporthouse.com> <9a0aefb3-12cb-2614-d8fb-1d069719b9aa@intel.com> <152227609116.10679.12481725029029254564@mail.alporthouse.com> <5ae13cf3-f96c-7bd5-9d66-2fa6b5c3e433@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 251296E171 for ; Fri, 30 Mar 2018 19:45:45 +0000 (UTC) In-Reply-To: <5ae13cf3-f96c-7bd5-9d66-2fa6b5c3e433@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Lis, Tomasz" , Chris Wilson , intel-gfx@lists.freedesktop.org Cc: mika.kuoppala@intel.com List-Id: intel-gfx@lists.freedesktop.org CgpPbiAzMC8wMy8xOCAwODo0MiwgTGlzLCBUb21hc3ogd3JvdGU6Cj4gCj4gCj4gT24gMjAxOC0w My0yOSAwMDoyOCwgQ2hyaXMgV2lsc29uIHdyb3RlOgo+PiBRdW90aW5nIExpcywgVG9tYXN6ICgy MDE4LTAzLTI4IDE3OjA2OjU4KQo+Pj4KPj4+IE9uIDIwMTgtMDMtMjggMDE6MjcsIENocmlzIFdp bHNvbiB3cm90ZToKPj4+PiBRdW90aW5nIFRvbWFzeiBMaXMgKDIwMTgtMDMtMjcgMTY6MTc6NTkp Cj4+Pj4+IFRoZSBwYXRjaCBhZGRzIHN1cHBvcnQgb2YgcHJlZW1wdC10by1pZGxlIHJlcXVlc3Rp bmcgYnkgc2V0dGluZyBhIAo+Pj4+PiBwcm9wZXIKPj4+Pj4gYml0IHdpdGhpbiBFeGVjbGlzdCBD b250cm9sIFJlZ2lzdGVyLCBhbmQgcmVjZWl2aW5nIHByZWVtcHRpb24gCj4+Pj4+IHJlc3VsdCBm cm9tCj4+Pj4+IENvbnRleHQgU3RhdHVzIEJ1ZmZlci4KPj4+Pj4KPj4+Pj4gUHJlZW1wdGlvbiBp biBwcmV2aW91cyBnZW5zIHJlcXVpcmVkIGEgc3BlY2lhbCBiYXRjaCBidWZmZXIgdG8gYmUgCj4+ Pj4+IGV4ZWN1dGVkLAo+Pj4+PiBzbyB0aGUgQ29tbWFuZCBTdHJlYW1lciBuZXZlciBwcmVlbXB0 ZWQgdG8gaWRsZSBkaXJlY3RseS4gSW4gCj4+Pj4+IEljZWxha2UgaXQgaXMKPj4+Pj4gcG9zc2li bGUsIGFzIHRoZXJlIGlzIGEgaGFyZHdhcmUgbWVjaGFuaXNtIHRvIGluZm9ybSB0aGUga2VybmVs IGFib3V0Cj4+Pj4+IHN0YXR1cyBvZiB0aGUgcHJlZW1wdGlvbiByZXF1ZXN0Lgo+Pj4+Pgo+Pj4+ PiBUaGlzIHBhdGNoIGRvZXMgbm90IGNvdmVyIHVzaW5nIHRoZSBuZXcgcHJlZW1wdGlvbiBtZWNo YW5pc20gd2hlbiAKPj4+Pj4gR3VDIGlzCj4+Pj4+IGFjdGl2ZS4KPj4+Pj4KPj4+Pj4gQnNwZWM6 IDE4OTIyCj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFRvbWFzeiBMaXMgPHRvbWFzei5saXNAaW50ZWwu Y29tPgo+Pj4+PiAtLS0KPj4+Pj4gwqDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o wqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAyICsrCj4+Pj4+IMKgwqAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9wY2kuY8KgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMyArKy0KPj4+Pj4gwqDCoCBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oIHzCoCAxICsKPj4+Pj4gwqDCoCBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuY8KgwqDCoMKgwqDCoMKgwqAgfCA0NSAKPj4+ Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPj4+Pj4gwqDCoCBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9scmMuaMKgwqDCoMKgwqDCoMKgwqAgfMKgIDEgKwo+Pj4+PiDCoMKg IDUgZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKPj4+Pj4K Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggCj4+Pj4+ IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+Pj4+PiBpbmRleCA4MDAyMzBiLi5j MzI1ODBiIDEwMDY0NAo+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o Cj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+Pj4gQEAgLTI1 MTQsNiArMjUxNCw4IEBAIGludGVsX2luZm8oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Cj4+Pj4+ICpkZXZfcHJpdikKPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAoKGRldl9wcml2KS0+aW5mby5oYXNfbG9naWNhbF9yaW5nX2Vsc3EpCj4+Pj4+IMKgwqAgI2Rl ZmluZSBIQVNfTE9HSUNBTF9SSU5HX1BSRUVNUFRJT04oZGV2X3ByaXYpIFwKPj4+Pj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoKGRldl9wcml2KS0+aW5mby5oYXNfbG9naWNh bF9yaW5nX3ByZWVtcHRpb24pCj4+Pj4+ICsjZGVmaW5lIEhBU19IV19QUkVFTVBUX1RPX0lETEUo ZGV2X3ByaXYpIFwKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKChkZXZfcHJp diktPmluZm8uaGFzX2h3X3ByZWVtcHRfdG9faWRsZSkKPj4+Pj4gwqDCoCAjZGVmaW5lIEhBU19F WEVDTElTVFMoZGV2X3ByaXYpIEhBU19MT0dJQ0FMX1JJTkdfQ09OVEVYVFMoZGV2X3ByaXYpCj4+ Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jIAo+Pj4+PiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPj4+Pj4gaW5kZXggNDM2NDkyMi4uNjZi NjcwMCAxMDA2NDQKPj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYwo+ Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCj4+Pj4+IEBAIC01OTUs NyArNTk1LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAKPj4+Pj4g aW50ZWxfY2Fubm9ubGFrZV9pbmZvID0gewo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgR0VOKDEx KSwgXAo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmRkYl9zaXplID0gMjA0OCwgXAo+Pj4+PiDC oMKgwqDCoMKgwqDCoMKgwqAgLmhhc19jc3IgPSAwLCBcCj4+Pj4+IC3CoMKgwqDCoMKgwqAgLmhh c19sb2dpY2FsX3JpbmdfZWxzcSA9IDEKPj4+Pj4gK8KgwqDCoMKgwqDCoCAuaGFzX2xvZ2ljYWxf cmluZ19lbHNxID0gMSwgXAo+Pj4+PiArwqDCoMKgwqDCoMKgIC5oYXNfaHdfcHJlZW1wdF90b19p ZGxlID0gMQo+Pj4+PiDCoMKgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8g aW50ZWxfaWNlbGFrZV8xMV9pbmZvID0gewo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgR0VOMTFf RkVBVFVSRVMsCj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k ZXZpY2VfaW5mby5oIAo+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9p bmZvLmgKPj4+Pj4gaW5kZXggOTMzZTMxNi4uNGViOTdiNSAxMDA2NDQKPj4+Pj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAo+Pj4+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oCj4+Pj4+IEBAIC05OCw2ICs5OCw3IEBA IGVudW0gaW50ZWxfcGxhdGZvcm0gewo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZnVuYyhoYXNf bG9naWNhbF9yaW5nX2NvbnRleHRzKTsgXAo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZnVuYyho YXNfbG9naWNhbF9yaW5nX2Vsc3EpOyBcCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBmdW5jKGhh c19sb2dpY2FsX3JpbmdfcHJlZW1wdGlvbik7IFwKPj4+Pj4gK8KgwqDCoMKgwqDCoCBmdW5jKGhh c19od19wcmVlbXB0X3RvX2lkbGUpOyBcCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBmdW5jKGhh c19vdmVybGF5KTsgXAo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZnVuYyhoYXNfcG9vbGVkX2V1 KTsgXAo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZnVuYyhoYXNfcHNyKTsgXAo+Pj4+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgCj4+Pj4+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPj4+Pj4gaW5kZXggYmE3Zjc4My4uMWEyMmRlNCAx MDA2NDQKPj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPj4+Pj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPj4+Pj4gQEAgLTE1Myw2ICsx NTMsNyBAQAo+Pj4+PiDCoMKgICNkZWZpbmUgR0VOOF9DVFhfU1RBVFVTX0FDVElWRV9JRExFwqDC oMKgICgxIDw8IDMpCj4+Pj4+IMKgwqAgI2RlZmluZSBHRU44X0NUWF9TVEFUVVNfQ09NUExFVEXC oMKgwqDCoMKgwqAgKDEgPDwgNCkKPj4+Pj4gwqDCoCAjZGVmaW5lIEdFTjhfQ1RYX1NUQVRVU19M SVRFX1JFU1RPUkXCoMKgICgxIDw8IDE1KQo+Pj4+PiArI2RlZmluZSBHRU4xMV9DVFhfU1RBVFVT X1BSRUVNUFRfSURMRcKgICgxIDw8IDI5KQo+Pj4+PiDCoMKgICNkZWZpbmUgR0VOOF9DVFhfU1RB VFVTX0NPTVBMRVRFRF9NQVNLIFwKPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgKEdFTjhfQ1RY X1NUQVRVU19DT01QTEVURSB8IEdFTjhfQ1RYX1NUQVRVU19QUkVFTVBURUQpCj4+Pj4+IEBAIC0x ODMsNyArMTg0LDkgQEAgc3RhdGljIGlubGluZSBib29sIG5lZWRfcHJlZW1wdChjb25zdCBzdHJ1 Y3QgCj4+Pj4+IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3Qg c3RydWN0IGk5MTVfcmVxdWVzdCAqbGFzdCwKPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCBwcmlvKQo+Pj4+ PiDCoMKgIHsKPj4+Pj4gLcKgwqDCoMKgwqDCoCByZXR1cm4gZW5naW5lLT5pOTE1LT5wcmVlbXB0 X2NvbnRleHQgJiYgcHJpbyA+IAo+Pj4+PiBtYXgocnFfcHJpbyhsYXN0KSwgMCk7Cj4+Pj4+ICvC oMKgwqDCoMKgwqAgcmV0dXJuIChlbmdpbmUtPmk5MTUtPnByZWVtcHRfY29udGV4dCB8fAo+Pj4+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBIQVNfSFdfUFJFRU1QVF9UT19JRExFKGVu Z2luZS0+aTkxNSkpICYmCj4+Pj4gV2VsbCwgeW91IGhhdmVuJ3QgYWN0dWFsbHkgZGlzYWJsZWQg YWxsb2NhdGluZyB0aGUgcHJlZW1wdF9jb250ZXh0IAo+Pj4+IHNvLi4uCj4+PiBZZXMuLiBJIGhh ZCBtaXhlZCBmZWVsaW5ncyBhYm91dCBjaGFuZ2luZyBuZWVkc19wcmVlbXB0X2NvbnRleHQoKSBu b3csCj4+PiBhcyB0aGF0IHdvdWxkIG1lYW4gYWRkaW5nIGEgdGVtcG9yYXJ5IGNvbmRpdGlvbiBv biBHdUMgdW50aWwgdGhlIEd1Qwo+Pj4gcHJlZW1wdGlvbiBpcyBtZXJnZWQuCj4+PiBJIHdpbGwg YWRkIHRoZSBjb25kaXRpb25zIGFuZCBkaXNhYmxlIHRoZSBhbGxvY2F0aW9uIGluIHYyIG9mIHRo ZSBwYXRjaC4KPj4+PiBCdXQgYXQgYW55IHJhdGUsIG1ha2luZyB0aGlzIGFuIGVuZ2luZS0+Zmxh ZyB3b3VsZCBlbGltaW5hdGUgb25lIAo+Pj4+IHBvaW50ZXIKPj4+PiBkYW5jZS4KPj4+IENvdWxk IGJlIGFuIGludGVyZXN0aW5nIGlkZWEgZm9yIGEgc2VwYXJhdGUgcGF0Y2guCj4+IFRvIGxhbmQg Zmlyc3QgOykKPiA6KQo+IFN1cmUsIEkgY2FuIGRvIHRoYXQuCj4+Pj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgcHJpbyA+IG1heChycV9wcmlvKGxhc3QpLCAwKTsKPj4+Pj4gwqDC oCB9Cj4+Pj4+IMKgwqAgLyoqCj4+Pj4+IEBAIC01MzUsNiArNTM4LDI1IEBAIHN0YXRpYyB2b2lk IGluamVjdF9wcmVlbXB0X2NvbnRleHQoc3RydWN0IAo+Pj4+PiBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGV4ZWNsaXN0c19zZXRfYWN0aXZlKCZlbmdp bmUtPmV4ZWNsaXN0cywgCj4+Pj4+IEVYRUNMSVNUU19BQ1RJVkVfUFJFRU1QVCk7Cj4+Pj4+IMKg wqAgfQo+Pj4+PiArc3RhdGljIHZvaWQgZ2VuMTFfcHJlZW1wdF90b19pZGxlKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKPj4+Pj4gK3sKPj4+Pj4gK8KgwqDCoMKgwqDCoCBzdHJ1Y3Qg aW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwo+ Pj4+PiArCj4+Pj4+ICvCoMKgwqDCoMKgwqAgR0VNX1RSQUNFKCIlc1xuIiwgZW5naW5lLT5uYW1l KTsKPj4+Pj4gKwo+Pj4+PiArwqDCoMKgwqDCoMKgIC8qCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCAq IGhhcmR3YXJlIHdoaWNoIEhBU19IV19QUkVFTVBUX1RPX0lETEUoKSwgYWx3YXlzIGFsc28KPj4+ Pj4gK8KgwqDCoMKgwqDCoMKgICogSEFTX0xPR0lDQUxfUklOR19FTFNRKCksIHNvIHdlIGNhbiBh c3N1bWUgY3RybF9yZWcgaXMgc2V0Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCAqLwo+Pj4+PiArwqDC oMKgwqDCoMKgIEdFTV9CVUdfT04oZXhlY2xpc3RzLT5jdHJsX3JlZyAhPSBOVUxMKTsKPj4+Pj4g Kwo+Pj4+PiArwqDCoMKgwqDCoMKgIC8qIHRyaWdnZXIgcHJlZW1wdGlvbiB0byBpZGxlICovCj4+ Pj4+ICvCoMKgwqDCoMKgwqAgd3JpdGVsKEVMX0NUUkxfUFJFRU1QVF9UT19JRExFLCBleGVjbGlz dHMtPmN0cmxfcmVnKTsKPj4+PiBGdXR1cmUgcGxhbnM/IEJlY2F1c2UganVzdCBpbnNlcnRpbmcg dGhlIGJyYW5jaCBpbnRvIHRoZSBzZXR0ZXIgb2YKPj4+PiBpbmplY3RfcHJlZW1wdF9jb250ZXh0 KCkgcmVzb2x2ZXMgYSBsb3Qgb2YgY29uZmxpY3RzIHdpdGggb3RoZXIgd29yay4KPj4+IE15IGFy Z3VtZW50cyBmb3Igc2VwYXJhdGUgZnVuY3Rpb24gYXJlOgo+Pj4gLSBiZXR0ZXIgY29kZSByZWFk YWJpbGl0eQo+Pj4gLSBrZWVwaW5nIHRoZSBzeW1tZXRyeSBiZXR3ZWVuIGV4ZWNsaXN0IGFuZCBH dUMgZmxvdyAtIEd1QyBwcmVlbXB0aW9uCj4+PiBwYXRjaGVzIHdpbGwgaW50cm9kdWNlIHNlcGFy YXRlIGZ1bmN0aW9uIGFzIHdlbGwKPj4+IC0gb25seSA0IGxpbmVzIG9mIHRoZSBmdW5jdGlvbiB3 b3VsZCBiZSBjb21tb24KPj4+IC0gdGhlIG5hbWUgaW5qZWN0X3ByZWVtcHRfY29udGV4dCgpIHdv dWxkbid0IG1hdGNoIHRoZSBuZXcgcHVycG9zZSwgc28KPj4+IHJlbmFtaW5nIHdvdWxkIGJlIG5l ZWRlZAo+Pj4gLSByZWR1Y2VkIHNlbGYtZG9jdW1lbnRpbmcgY29kZSBkdWUgdG8gdHdvIHNlcGFy YXRlIHByZWVtcHQgbWV0aG9kcyBub3QKPj4+IGhhdmluZyBkaXN0aW5jdCBuYW1lcwo+Pj4KPj4+ IFRoYXQncyBhbGwsIEkgZG9uJ3QgaGF2ZSBhbnkgZnV0dXJlIHBsYW5zIGZvciBpdC4gSWYgeW91 IHdhbnQgbWUgdG8KPj4+IG1lcmdlIHRoZSB0d28sIGxldCBtZSBrbm93Lgo+PiBUaGUgcHJvYmxl bSB0aGF0IEkgYW0gd29ycnlpbmcgYWJvdXQgaXMgdGhhdCB3ZSB3aWxsIGR1cGxpY2F0ZSBidW5j aCBvZgo+PiBvdGhlciBjb2RlLCB0aGUgYWN0dWFsIEVMU1tQUV0gd3JpdGUgaXMgdGhlIHNtYWxs ZXIgcG9ydGlvbi4gUGx1cyB3ZQo+PiBhbHJlYWR5IGhhdmUgdGhlIGJyYW5jaCBvbiBzb21ldGhp bmcgbXVjaCBtb3JlIHBsZWFzYW50Lgo+IEkgc2VlLiBJIGRvbid0IGtub3cgYW55IGRldGFpbHMg dGhlcmUsIHNvIEknbSBub3QgYWJsZSB0byB3ZWlnaCB0aGF0Lgo+IEp1c3QgbGV0IG1lIGtub3cg d2hldGhlciB0aGlzIHBvc3NpYmxlIGR1cGxpY2F0aW9uIG91dHdlaWdodHMgdGhlIAo+IGFyZ3Vt ZW50cyBJIHByb3ZpZGVkLCBhbmQgSSB3aWxsIG1lcmdlIHRoZXNlIGZ1bmN0aW9ucy4KPiBJJ20g bm90IG92ZXJseSBhdHRhY2hlZCB0byBteSBzb2x1dGlvbi4KPj4KPj4+Pj4gQEAgLTk2MiwxMCAr OTg3LDEzIEBAIHN0YXRpYyB2b2lkIAo+Pj4+PiBleGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0 KHVuc2lnbmVkIGxvbmcgZGF0YSkKPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdGF0dXMsIGJ1ZlsyKmhl YWQgKyAxXSwKPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBleGVjbGlzdHMtPmFjdGl2ZSk7Cj4+Pj4+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoc3RhdHVzICYg KEdFTjhfQ1RYX1NUQVRVU19JRExFX0FDVElWRSB8Cj4+Pj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgR0VO OF9DVFhfU1RBVFVTX1BSRUVNUFRFRCkpCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBDaGVjayBpZiBzd2l0Y2hlZCB0byBhY3RpdmUgb3IgcHJl ZW1wdGVkIAo+Pj4+PiB0byBhY3RpdmUgKi8KPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICgoc3RhdHVzICYgKEdFTjhfQ1RYX1NUQVRVU19JRExF X0FDVElWRSB8Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEdFTjhfQ1RYX1NUQVRVU19QUkVF TVBURUQpKSAmJgo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAhKHN0YXR1cyAmIEdFTjExX0NUWF9TVEFUVVNfUFJFRU1QVF9JRExFKSkK Pj4+PiBTZXR0aW5nIEhXQUNLIGhlcmUgaXMgaGFybWxlc3MgYXMgaXQgZ2V0cyBjbGVhcmVkIGFn YWluLiBVbmxlc3MsIHRoZXJlCj4+Pj4gaXMgc29tZSBvZGRpdHkgaW4gdGhlIGNvZGUgZmxvdy4K Pj4+IEkgd2lsbCBjaGVjayBpZiBsYWNrIG9mIHRoZSBjaGFuZ2UgYWZmZWN0cyB0ZXN0IHJlc3Vs dHMuCj4+PiBQZXJzb25hbGx5LCBJIHdvdWxkIGtlZXAgdGhpcyBjaGFuZ2UsIGV2ZW4gaWYgb25s eSBmb3IgYWxsb3dpbmcgc2ltcGxlCj4+PiBkZWZpbml0aW9uIG9mIHdoYXQgSFdBQ0sgZmxhZyBt ZWFucy4KPj4gVGhlIHNpbXBsZSBkZWZpbml0aW9uIGlzIHRoZSBvcHBvc2l0ZSBvbmUsIGltby4g V2Ugc2V0IHRoZSBmbGFnIGFmdGVyIHdlCj4+IGdldCB0aGUgY29ycmVzcG9uZGluZyByZXNwb25z ZSBmcm9tIEhXOyBhbnkgcHJlZW1wdGlvbiBvciBhY3RpdmF0ZSBldmVudAo+PiBtdXN0IGZvbGxv dyB0aGUgbW9zdCByZWNlbnQgRUxTUCB3cml0ZS4gU28gdGhhdCB3aWxsIGluY2x1ZGUgdGhlCj4+ IHByZWVtcHRpb24gZXZlbnQgZm9sbG93aW5nIHRoZSBwcmVlbXB0LWlkbGUgd3JpdGUuCj4+Cj4+ IFRoZW4gb24gZGVjaWRpbmcgdGhhdCB0aGUgSFcgaXMgaWRsZSwgd2UgYXBwbHkgdGhlIGNvbXBs aWNhdGlvbiBzdWNoCj4+IHRoYXQgZXhlY2xpc3RzLT5hY3RpdmUgPT0gMC4gKFRoYXQgcnVsZSBp cyB3aGF0IGJyZWFrcyB0aGUgcGF0dGVybi4pCj4+IC1DaHJpcwo+IE9rLCBJIHdpbGwgcmVtb3Zl IHRoaXMgdW5uZWNlc3NhcnkgY29uZGl0aW9uLgo+IEkgdGVzdGVkIHRoaXMgYW5kIGxhY2sgb2Yg aXQgZG9lc24ndCBzZWVtIHRvIGFmZmVjdCB0aGUgcmVzdWx0cy4KPiAoSSdsbCBiZSBvdXQgbmV4 dCB3ZWVrOyBleHBlY3QgdjIgd2hlbiBJJ20gYmFjaykKPiAtVG9tYXN6Cj4gCgpEbyB3ZSBoYXZl IGFueSB0ZXN0IHRvIGNvdmVyIGEgcHJlZW1wdCB0byBpZGxlIG9uIGFscmVhZHkgaWRsZSBIVyAo d2hpY2ggCmlzIHRoZSBjYXNlIHdlIGNvdmVyIHdpdGggdGhpcyBmbGFnIGhlcmUpPyBJZiBub3Qg bWF5YmUgd2UgY29sZCBhZGQgYSAKc2VsZnRlc3QgZm9yIHRoYXQuCgpEYW5pZWxlCgo+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK