From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 1/5] drm/i915: Enable edp psr error interrupts on hsw Date: Thu, 22 Mar 2018 13:39:07 -0700 Message-ID: <20180322203907.GE2557@intel.com> References: <20180320224151.6009-1-dhinakaran.pandiyan@intel.com> <20180320224151.6009-2-dhinakaran.pandiyan@intel.com> <20180321185913.GA5453@intel.com> <1521661444.19788.9.camel@dk-H97M-D3H> <20180321192944.GB5453@intel.com> <1521683012.19788.40.camel@dk-H97M-D3H> <20180322113310.GH5453@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7F6F06E033 for ; Thu, 22 Mar 2018 20:39:09 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180322113310.GH5453@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 =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: "Vetter, Daniel" , "intel-gfx@lists.freedesktop.org" , "Pandiyan, Dhinakaran" , "daniel.vetter@ffwll.ch" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBNYXIgMjIsIDIwMTggYXQgMDE6MzM6MTBQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFRodSwgTWFyIDIyLCAyMDE4IGF0IDAxOjE5OjE5QU0gKzAwMDAsIFBhbmRp eWFuLCBEaGluYWthcmFuIHdyb3RlOgo+ID4gCj4gPiAKPiA+IAo+ID4gT24gV2VkLCAyMDE4LTAz LTIxIGF0IDIxOjI5ICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+IE9uIFdlZCwg TWFyIDIxLCAyMDE4IGF0IDA3OjE5OjUzUE0gKzAwMDAsIFBhbmRpeWFuLCBEaGluYWthcmFuIHdy b3RlOgo+ID4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+IE9uIFdlZCwgMjAxOC0wMy0y MSBhdCAyMDo1OSArMDIwMCwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ID4gPiA+ID4gT24gVHVl LCBNYXIgMjAsIDIwMTggYXQgMDM6NDE6NDdQTSAtMDcwMCwgRGhpbmFrYXJhbiBQYW5kaXlhbiB3 cm90ZToKPiA+ID4gPiA+ID4gRnJvbTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZnds bC5jaD4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IFRoZSBkZWZpbml0aW9ucyBmb3IgdGhlIGVy cm9yIHJlZ2lzdGVyIHNob3VsZCBiZSB2YWxpZCBvbiBiZHcvc2tsIHRvbywKPiA+ID4gPiA+ID4g YnV0IHRoZXJlIHdlIGhhdmVuJ3QgZXZlbiBlbmFibGVkIERFX01JU0MgaGFuZGxpbmcgeWV0Lgo+ ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gU29tZXdoYXQgY29uZnVzaW5nIHRoZSB0aGUgbW92ZWQg cmVnaXN0ZXIgb2Zmc2V0IG9uIGJkdyBpcyBvbmx5IGZvcgo+ID4gPiA+ID4gPiB0aGUgX0NUTC9f QVVYIHJlZ2lzdGVyLCBhbmQgdGhhdCBfSUlSL0lNUiBzdGF5ZWQgd2hlcmUgdGhleSBoYXZlIGJl ZW4KPiA+ID4gPiA+ID4gb24gYmR3Lgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gdjI6IEZpeGVz IGZyb20gVmlsbGUuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiB2MzogRnJvbSBESwo+ID4gPiA+ ID4gPiAgKiBSZWJhc2VkIG9uIGRybS10aXAKPiA+ID4gPiA+ID4gICogUmVtb3ZlZCBCRFcgSUlS IGJpdCBkZWZpbml0aW9uLCBsb29rcyBsaWtlIGFuIHVuaW50ZW50aW9uYWwgY2hhbmdlIHRoYXQK PiA+ID4gPiA+ID4gc2hvdWxkIGJlIGluIHRoZSBmb2xsb3dpbmcgcGF0Y2guCj4gPiA+ID4gPiA+ IAo+ID4gPiA+ID4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbT4KPiA+ID4gPiA+ID4gQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVs LmNvbT4KPiA+ID4gPiA+ID4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwu Y29tPgo+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0 dGVyQGludGVsLmNvbT4KPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogRGhpbmFrYXJhbiBQYW5k aXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Cj4gPiA+ID4gPiA+IC0tLQo+ID4g PiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgfCAzNCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCj4gPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oICB8ICA4ICsrKysrKysrCj4gPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wc3IuYyB8ICAzICsrLQo+ID4gPiA+ID4gPiAgMyBmaWxlcyBjaGFuZ2VkLCA0 NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMKPiA+ID4gPiA+ID4gaW5kZXggNDRlZWYzNTVlMTJjLi5lOTRh ODM1Yjc1MTUgMTAwNjQ0Cj4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfaXJxLmMKPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEu Ywo+ID4gPiA+ID4gPiBAQCAtMjM5Miw2ICsyMzkyLDI2IEBAIHN0YXRpYyB2b2lkIGlsa19kaXNw bGF5X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4g PiA+ID4gIAkJaXJvbmxha2VfcnBzX2NoYW5nZV9pcnFfaGFuZGxlcihkZXZfcHJpdik7Cj4gPiA+ ID4gPiA+ICB9Cj4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gK3N0YXRpYyB2b2lkIGhzd19lZHBf cHNyX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ID4g PiA+ID4gK3sKPiA+ID4gPiA+ID4gKwl1MzIgZWRwX3Bzcl9paXIgPSBJOTE1X1JFQUQoRURQX1BT Ul9JSVIpOwo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICsJaWYgKGVkcF9wc3JfaWlyICYgRURQ X1BTUl9FUlJPUikKPiA+ID4gPiA+ID4gKwkJRFJNX0RFQlVHX0tNUygiUFNSIGVycm9yXG4iKTsK PiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiArCWlmIChlZHBfcHNyX2lpciAmIEVEUF9QU1JfUFJF X0VOVFJZKSB7Cj4gPiA+ID4gPiA+ICsJCURSTV9ERUJVR19LTVMoIlBTUiBwcmVwYXJlIGVudHJ5 IGluIDIgdmJsYW5rc1xuIik7Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IEkgZG91YnQgd2Ugd2FudCB0 byBoYXZlIHRoZSBlbnRyeS9leGl0IGludGVycnVwdHMgZ2VuZXJhdGUgYWxsIHRoaXMKPiA+ID4g PiA+IG5vaXNlIGluIGRtZXNnIGFsbCB0aGUgdGltZS4gV2Ugc2hvdWxkIHByb2JhYmx5IG9ubHkg ZW5hYmxlIHRoZQo+ID4gPiA+ID4gaW50ZXJydXB0cyBmb3IgdGVzdGluZy4gVGhlIGVycm9yIGlu dGVycnVwdCBJIHN1cHBvc2Ugd2Ugd2FudCBhbHdheXMsCj4gPiA+ID4gPiBtaWdodCBldmVuIHdh bnQgRFJNX0VSUk9SIG9uIGl0Lgo+ID4gPiA+IAo+ID4gPiA+IEkgaW1wbGVtZW50IGRlYnVnZnMg Y29udHJvbCBpbiBQYXRjaCA0LzUsIGFncmVlZCBvbiBEUk1fRVJST1IuCj4gPiA+IAo+ID4gPiBS aWdodC4gSXQncyBhIGJpdCBoYXJkIHRvIHJlYWQgdGhpcyB3aXRoIHN0dWZmIGdldHRpbmcKPiA+ ID4gYWRkZWQvcmVtb3ZlL21vdmVkIG1vcmUgb3IgbGVzcyByYW5kb21seS4KPiA+ID4gCj4gPiA+ ID4gCj4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gKwkJSTkxNV9XUklURShFRFBfUFNSX0lNUiwgRURQ X1BTUl9QUkVfRU5UUlkpOwo+ID4gPiA+ID4gPiArCX0KPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4g PiArCWlmIChlZHBfcHNyX2lpciAmIEVEUF9QU1JfUE9TVF9FWElUKSB7Cj4gPiA+ID4gPiA+ICsJ CURSTV9ERUJVR19LTVMoIlBTUiBleGl0IGNvbXBsZXRlZFxuIik7Cj4gPiA+ID4gPiA+ICsJCUk5 MTVfV1JJVEUoRURQX1BTUl9JTVIsIDApOwo+ID4gPiA+ID4gPiArCX0KPiA+ID4gPiA+ID4gKwo+ ID4gPiA+ID4gPiArCUk5MTVfV1JJVEUoRURQX1BTUl9JSVIsIGVkcF9wc3JfaWlyKTsKPiA+ID4g PiA+ID4gK30KPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiAgc3RhdGljIHZvaWQgaXZiX2Rpc3Bs YXlfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiA+ ID4gPiAgCQkJCSAgICB1MzIgZGVfaWlyKQo+ID4gPiA+ID4gPiAgewo+ID4gPiA+ID4gPiBAQCAt MjQwNCw2ICsyNDI0LDkgQEAgc3RhdGljIHZvaWQgaXZiX2Rpc3BsYXlfaXJxX2hhbmRsZXIoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiA+ID4gPiAgCWlmIChkZV9paXIg JiBERV9FUlJfSU5UX0lWQikKPiA+ID4gPiA+ID4gIAkJaXZiX2Vycl9pbnRfaGFuZGxlcihkZXZf cHJpdik7Cj4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gKwlpZiAoZGVfaWlyICYgREVfRURQX1BT Ul9JTlRfSFNXKQo+ID4gPiA+ID4gPiArCQloc3dfZWRwX3Bzcl9pcnFfaGFuZGxlcihkZXZfcHJp dik7Cj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gIAlpZiAoZGVfaWlyICYgREVfQVVYX0NIQU5O RUxfQV9JVkIpCj4gPiA+ID4gPiA+ICAJCWRwX2F1eF9pcnFfaGFuZGxlcihkZXZfcHJpdik7Cj4g PiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gQEAgLTMyNTIsNiArMzI3NSwxMSBAQCBzdGF0aWMgdm9p ZCBpcm9ubGFrZV9pcnFfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ID4gPiA+ID4g IAlpZiAoSVNfR0VONyhkZXZfcHJpdikpCj4gPiA+ID4gPiA+ICAJCUk5MTVfV1JJVEUoR0VON19F UlJfSU5ULCAweGZmZmZmZmZmKTsKPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiArCWlmIChJU19I QVNXRUxMKGRldl9wcml2KSkgewo+ID4gPiA+ID4gPiArCQlJOTE1X1dSSVRFKEVEUF9QU1JfSU1S LCAweGZmZmZmZmZmKTsKPiA+ID4gPiA+ID4gKwkJSTkxNV9XUklURShFRFBfUFNSX0lJUiwgMHhm ZmZmZmZmZik7Cj4gPiA+ID4gPiA+ICsJfQo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICAJZ2Vu NV9ndF9pcnFfcmVzZXQoZGV2X3ByaXYpOwo+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ICAJaWJ4 X2lycV9yZXNldChkZXZfcHJpdik7Cj4gPiA+ID4gPiA+IEBAIC0zNjYzLDYgKzM2OTEsMTIgQEAg c3RhdGljIGludCBpcm9ubGFrZV9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiA+ID4gPiA+ID4gIAkJCSAgICAgIERFX0RQX0FfSE9UUExVRyk7Cj4gPiA+ID4gPiA+ICAJ fQo+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ICsJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7 Cj4gPiA+ID4gPiA+ICsJCWdlbjNfYXNzZXJ0X2lpcl9pc196ZXJvKGRldl9wcml2LCBFRFBfUFNS X0lJUik7Cj4gPiA+ID4gPiA+ICsJCUk5MTVfV1JJVEUoRURQX1BTUl9JTVIsIDApOwo+ID4gPiA+ ID4gPiArCQlkaXNwbGF5X21hc2sgfD0gREVfRURQX1BTUl9JTlRfSFNXOwo+ID4gPiA+ID4gPiAr CX0KPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiAgCWRldl9wcml2LT5pcnFfbWFzayA9IH5kaXNw bGF5X21hc2s7Cj4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gIAlpYnhfaXJxX3ByZV9wb3N0aW5z dGFsbChkZXYpOwo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ID4gPiA+ID4g aW5kZXggMWUwMDBmMzAwNGNiLi4zNDQ3ZjAzZWFjM2QgMTAwNjQ0Cj4gPiA+ID4gPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiA+ID4gPiBAQCAtMzgyOCw2ICszODI4LDEz IEBAIGVudW0gewo+ID4gPiA+ID4gPiAgI2RlZmluZSAgIEVEUF9QU1JfVFAxX1RJTUVfMHVzCQkJ KDM8PDQpCj4gPiA+ID4gPiA+ICAjZGVmaW5lICAgRURQX1BTUl9JRExFX0ZSQU1FX1NISUZUCQkw Cj4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gKy8qIEJzcGVjIGNsYWltcyB0aG9zZSBhcmVuJ3Qg c2hpZnRlZCBidXQgc3RheSBhdCAweDY0ODAwICovCj4gPiA+ID4gPiA+ICsjZGVmaW5lIEVEUF9Q U1JfSU1SCQkJCV9NTUlPKDB4NjQ4MzQpCj4gPiA+ID4gPiA+ICsjZGVmaW5lIEVEUF9QU1JfSUlS CQkJCV9NTUlPKDB4NjQ4MzgpCj4gPiA+ID4gPiA+ICsjZGVmaW5lICAgRURQX1BTUl9FUlJPUgkJ CQkoMTw8MikKPiA+ID4gPiA+ID4gKyNkZWZpbmUgICBFRFBfUFNSX1BPU1RfRVhJVAkJCSgxPDwx KQo+ID4gPiA+ID4gPiArI2RlZmluZSAgIEVEUF9QU1JfUFJFX0VOVFJZCQkJKDE8PDApCj4gPiA+ ID4gPiA+ICsKPiA+ID4gPiA+ID4gICNkZWZpbmUgRURQX1BTUl9BVVhfQ1RMCQkJCV9NTUlPKGRl dl9wcml2LT5wc3JfbW1pb19iYXNlICsgMHgxMCkKPiA+ID4gPiA+ID4gICNkZWZpbmUgRURQX1BT Ul9BVVhfREFUQShpKQkJCV9NTUlPKGRldl9wcml2LT5wc3JfbW1pb19iYXNlICsgMHgxNCArIChp KSAqIDQpIC8qIDUgcmVnaXN0ZXJzICovCj4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gQEAgLTY2 MjgsNiArNjYzNSw3IEBAIGVudW0gewo+ID4gPiA+ID4gPiAgI2RlZmluZSBERV9QQ0hfRVZFTlRf SVZCCQkoMTw8MjgpCj4gPiA+ID4gPiA+ICAjZGVmaW5lIERFX0RQX0FfSE9UUExVR19JVkIJCSgx PDwyNykKPiA+ID4gPiA+ID4gICNkZWZpbmUgREVfQVVYX0NIQU5ORUxfQV9JVkIJCSgxPDwyNikK PiA+ID4gPiA+ID4gKyNkZWZpbmUgREVfRURQX1BTUl9JTlRfSFNXCQkoMTw8MTkpCj4gPiA+ID4g PiA+ICAjZGVmaW5lIERFX1NQUklURUNfRkxJUF9ET05FX0lWQgkoMTw8MTQpCj4gPiA+ID4gPiA+ ICAjZGVmaW5lIERFX1BMQU5FQ19GTElQX0RPTkVfSVZCCQkoMTw8MTMpCj4gPiA+ID4gPiA+ICAj ZGVmaW5lIERFX1BJUEVDX1ZCTEFOS19JVkIJCSgxPDwxMCkKPiA+ID4gPiA+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcHNyLmMKPiA+ID4gPiA+ID4gaW5kZXggMzE3Y2I0YTEyNjkzLi4yN2RmZDUwN2E0 ZjcgMTAwNjQ0Cj4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bz ci5jCj4gPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4g PiA+ID4gPiA+IEBAIC02MTMsNyArNjEzLDggQEAgc3RhdGljIHZvaWQgaHN3X3Bzcl9lbmFibGVf c291cmNlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiA+ID4gPiA+ICAJCUk5MTVfV1JJ VEUoRURQX1BTUl9ERUJVRywKPiA+ID4gPiA+ID4gIAkJCSAgIEVEUF9QU1JfREVCVUdfTUFTS19N RU1VUCB8Cj4gPiA+ID4gPiA+ICAJCQkgICBFRFBfUFNSX0RFQlVHX01BU0tfSFBEIHwKPiA+ID4g PiA+ID4gLQkJCSAgIEVEUF9QU1JfREVCVUdfTUFTS19MUFNQKTsKPiA+ID4gPiA+ID4gKwkJCSAg IEVEUF9QU1JfREVCVUdfTUFTS19MUFNQIHwKPiA+ID4gPiA+ID4gKwkJCSAgIEVEUF9QU1JfREVC VUdfTUFTS19SRUdfV1JJVEUpOwo+ID4gPiA+ID4gCj4gPiA+ID4gPiBJIGRvbid0IHRoaW5rIERh bmllbCdzIG9yaWdpbmFsIGhhZCB0aGlzIGFjdHVhbGx5LiBJIHRoaW5rIEkgYWRkZWQgaXQKPiA+ ID4gPiA+IGJlY2F1c2UgSSBkaWRuJ3Qgd2FudCBtbWlvIHRvIG1lc3MgdXAgbXkgdGVzdGluZy4K PiA+ID4gPiAKPiA+ID4gPiBJdCBnZXRzIHJlbW92ZWQgaW4gYSBzZXBhcmF0ZSBwYXRjaCAoMi81 KS4gU28gSSBhc3N1bWVkIERhbmllbCBhZGRlZCBpdAo+ID4gPiA+IGFuZCB5b3UgcmVtb3ZlZCBp dC4KPiA+ID4gCj4gPiA+IEhtbS4gVGhhdCBjb3VsZCBpbmRlZWQgYmUgdGhlIGNhc2UuCj4gPiA+ IAo+ID4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+ID4gSW4gZ2VuZXJhbCBJJ2QgcmVhbGx5Cj4gPiA+ ID4gPiBwcmVmZXIgdG8gbWFzayBldmVyeXRoaW5nIHNvIHRoYXQgd2UgY2FuIGJlIHN1cmUgdGhh dCB0aGUgUFNSIGV4aXRzCj4gPiA+ID4gPiBoYXBwZW4gd2hlbiB3ZSB3YW50L25lZWQgdGhlbSBh bmQgbm90IHJhbmRvbWx5IGR1ZSB0byBvdGhlciBhY3Rpdml0eS4KPiA+ID4gPiA+IAo+ID4gPiA+ ID4gSWYgYW55IHJhbmRvbSBtbWlvIGNhbiBjYXVzZSBhIFBTUiBleGl0IGl0J3MgZ29pbmcgdG8g aGFyZCB0byBwcm92ZSB0aGF0Cj4gPiA+ID4gPiB3ZSdyZSBkb2luZyB0aGUgY29ycmVjdCB0aGlu Zy4gQWxzbyBzZWVtcyBwcmV0dHkgd2FzdGVmdWwgaWYgZWcuIEdUCj4gPiA+ID4gPiBpbnRlcnJ1 cHRzIGNhbiBjYXVzZSBQU1IgZXhpdHMgZm9yIG5vIGdvb2QgcmVhc29uLiBJIG5ldmVyIHRlc3Rl ZCB0byBzZWUKPiA+ID4gPiA+IHdoaWNoIHJlZ2lzdGVycyBjYXVzZSB0aGUgUFNSIGV4aXQuIFRo YXQgd291bGQgYmUgZ29vZCB0byBrbm93Lgo+ID4gPiA+ID4gCj4gPiA+ID4gCj4gPiA+ID4gVGhl IHNhbWUgYml0IG9uIFNLTCsgaXMgY2FsbGVkICJNYXNrIERpc3BsYXkgUmVnIFdyaXRlIiwgc28g aXQgZWl0aGVyCj4gPiA+ID4gbWVhbnMKPiA+ID4gPiAxKSBIU1cgYW5kIEJEVyBleGl0IG9ubHkg b24gZGlzcGxheSByZWdpc3RlciB3cml0ZXMgYW5kIHRoZSBic3BlYwo+ID4gPiA+IGRlc2NyaXB0 aW9uIGlzIGFtYmlndW91cyBvciAKPiA+ID4gCj4gPiA+IFRoZSBwcm9ibGVtIGlzIHRoYXQgZWcu IHNvbWUgb2YgdGhlIGludGVycnVwdCByZWdpc3RlcnMgbGl2ZSBpbiB0aGUKPiA+ID4gZGlzcGxh eSBibG9jay4gSGVuY2UgYW55IGludGVycnVwdCBjb3VsZCBwb3RlbnRpYWxseSBjYXVzZSB0aGUg UFNSIGV4aXQuCj4gPiA+IEFzIGNvdWxkIGFueSByZWdpc3RlciByZWFkIHdlIGRvIGZvciBkZWJ1 ZyBwdXJwb3NlIGV0Yy4gU28gYXQgbGVhc3QgSQo+ID4gPiB3b3VsZCBmZWVsIHNhZmVyIGlmIFBT UiBjYW4gYmUgbWFkZSB0byB3b3JrIHJlbGlhYmx5IHdpdGggbW9yZSBvciBsZXNzCj4gPiA+IGV2 ZXJ5dGhpbmcgbWFza2VkLgo+ID4gPiAKPiA+IFRoZSBpZGVhIGlzIHRvIG1vdmUgdG93YXJkcyBo YXJkd2FyZSB0cmlnZ2VyZWQgZXhpdHMgc2luY2UgdGhhdCdzIHdoYXQKPiA+IGlzIG5lY2Vzc2Fy eSBmb3IgUFNSMiBzZWxlY3RpdmUgdXBkYXRlc1sxXS4gTW9yZSBpbXBvcnRhbnRseSwgdGhlcmUg YXJlCj4gPiBwbGFjZXMgaW4gdGhlIGRyaXZlciB3aGVyZSB3ZSBjYW4ndCBtYW51YWxseSBleGl0 IFBTUiB3aXRob3V0Cj4gPiBjaXJjdW12ZW50aW5nIGxvY2tpbmcgaXNzdWVzIC0gZnJvbSB2Ymxh bmsgZW5hYmxlIGZvciBpbnN0YW5jZS4gUmVseWluZwo+ID4gb24gaGFyZHdhcmUgdHJpZ2dlcmVk IGV4aXRzIGluIHRoZSBtb2Rlc2V0L2NvbW1pdCBwYXRoIGtlZXBzIGl0Cj4gPiBjb25zaXN0ZW50 IElNTy4KPiAKPiBXaGF0J3MgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgaGFyZHdhcmUgYmVo YXZpb3VyIGJldHdlZW4gIndyaXRlIGFueQo+IHJhbmRvbSBtbWlvIHRvIHRyaWdnZXIgYW4gZXhp dCIgdnMuICJ3cml0ZSBzb21lIHNwZWNpZmljIHJlZ2lzdGVyIHRvCj4gdHJpZ2dlciBhbiBleGl0 Ii4gSSBwcmVzdW1lIHRoZXJlIGlzIGEgd2F5IHRvIHRyaWdnZXIgdGhlIGV4aXQKPiBleHBsaWNp dGx5PwoKVGhlcmUgaXNuJ3QuIDooCgpUaGlzIGlzIHRoZSBtYWluIHJlYXNvbiB3aHkgcHNyX2V4 aXQgd2FzIHN0aWxsIGRlZmluZWQgZm9yIGNvcmUgcGxhdGZvcm1zCmFzIHBzcl9kaXNhYmxlLngK Cj4gCj4gLS0gCj4gVmlsbGUgU3lyasOkbMOkCj4gSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=