From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Lis, Tomasz" Subject: Re: [PATCH 08/21] drm/i915/guc: Make use of the SW counter field in the context descriptor Date: Thu, 30 Aug 2018 16:15:05 +0200 Message-ID: References: <20180829191056.63760-1-michal.wajdeczko@intel.com> <20180829191602.73476-1-michal.wajdeczko@intel.com> <7686aaf1-1307-1777-2246-f9bcd59cefc6@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1584689A94 for ; Thu, 30 Aug 2018 14:18:28 +0000 (UTC) In-Reply-To: <7686aaf1-1307-1777-2246-f9bcd59cefc6@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: Lionel Landwerlin , Michal Wajdeczko , intel-gfx@lists.freedesktop.org Cc: Oscar Mateo , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org CgpPbiAyMDE4LTA4LTMwIDAyOjA4LCBMaW9uZWwgTGFuZHdlcmxpbiB3cm90ZToKPiBPbiAyOS8w OC8yMDE4IDIwOjE2LCBNaWNoYWwgV2FqZGVjemtvIHdyb3RlOgo+PiBUaGUgbmV3IGNvbnRleHQg ZGVzY3JpcHRvciBmb3JtYXQgY29udGFpbnMgdHdvIGFzc2lnbmFibGUgZmllbGRzOgo+PiB0aGUg U1cgQ29udGV4dCBJRCAodGVjaG5pY2FsbHkgMTEgYml0cywgYnV0IHByYWN0aWNhbGx5IGxpbWl0 ZWQgdG8gMjAzMgo+PiBlbnRyaWVzIGR1ZSB0byBzb21lIGJlaW5nIHJlc2VydmVkIGZvciBmdXR1 cmUgdXNlIGJ5IHRoZSBHdUMpIGFuZCB0aGUKPj4gU1cgQ291bnRlciAoNiBiaXRzKS4KPj4KPj4g V2UgZG9uJ3Qgd2FudCB0byBsaW1pdCBvdXJzZWx2ZXMgdG9vIG11Y2ggaW4gdGhlIG1heGltdW0g bnVtYmVyIG9mCj4+IGNvbmN1cnJlbnQgY29udGV4dHMgd2Ugd2FudCB0byBhbGxvdywgc28gaWRl YWxseSB3ZSB3YW50IHRvIGVtcGxveQo+PiBldmVyeSBwb3NzaWJsZSBiaXQgYXZhaWxhYmxlLiBV bmZvcnR1bmF0ZWx5LCBhIGZ1cnRoZXIgbGltaXRhdGlvbiBpbgo+PiB0aGUgaW50ZXJmYWNlIHdp dGggdGhlIEd1QyBtZWFucyB0aGUgY29tYmluYXRpb24gb2YgU1cgQ29udGV4dCBJRCArCj4+IFNX IENvdW50ZXIgaGFzIHRvIGJlIHVuaXF1ZSB3aXRoaW4gdGhlIHNhbWUgZW5naW5lIGNsYXNzIChh cyB3ZSB1c2UKPj4gdGhlIFNXIENvbnRleHQgSUQgdG8gaW5kZXggaW4gdGhlIEd1QyBzdGFnZSBk ZXNjcmlwdG9yIHBvb2wsIGFuZCB0aGUKPj4gRW5naW5lIENsYXNzICsgU1cgQ291bnRlciB0byBp bmRleCBpbiB0aGUgMi1kaW1lbnNpb25hbCBscmMgYXJyYXkpLgo+PiBUaGlzIGVzc2VudGlhbGx5 IG1lYW5zIHdlIG5lZWQgdG8gc29tZWhvdyBlbmNvZGUgdGhlIGVuZ2luZSBpbnN0YW5jZS4KPj4K Pj4gU2luY2UgdGhlIEJTcGVjIGFsbG93cyA2IGJpdHMgZm9yIGVuZ2luZSBpbnN0YW5jZSwgd2Ug dXNlIHRoZSB3aG9sZQo+PiBTVyBjb3VudGVyIGZvciB0aGlzIHRhc2suIElmIHRoZSBsaW1pdGF0 aW9uIG9mIDIwMzIgbWF4aW11bSBzaW11bHRhbmVvdXMKPj4gY29udGV4dHMgaXMgdG9vIHJlc3Ry aWN0aXZlLCB3ZSBjYW4gYWx3YXlzIHNxdWVlemUgdGhpbmdzIGEgYml0IG1vcmUKPj4gKDMgZXh0 cmFzIGJpdHMgZm9yIGh3X2lkLCAzIGJpdHMgZm9yIGluc3RhbmNlKSBhbmQgdGhpbmdzIHdpbGwg c3RpbGwKPj4gd29yayAoR2VuMTEgZG9lcyBub3QgaW5zdGFuY2UgbW9yZSB0aGFuIDggZW5naW5l cyBvZiBhbnkgY2xhc3MpLgo+Pgo+PiBBbm90aGVyIGFsdGVybmF0aXZlIHdvdWxkIGJlIHRvIGdl bmVyYXRlIHRoZSBod19pZCBwZXIgSFcgY29udGV4dAo+PiBpbnN0ZWFkIG9mIHBlciBHRU0gY29u dGV4dCwgYnV0IHRoYXQgaGFzIG90aGVyIHByb2JsZW1zIChlLmcuIG1heGltdW0KPj4gbnVtYmVy IG9mIHVzZXItY3JlYXRlZCBjb250ZXh0cyB3b3VsZCBiZSB2YXJpYWJsZSwgbm8gcmVsYXRpb25z aGlwCj4+IGJldHdlZW4gYSBHdUMgcHJpbmNpcGFsIGRlc2NyaXB0b3IgYW5kIHRoZSBwcm94eSBk ZXNjcmlwdG9yIGl0IHVzZXMsIAo+PiAuLi4pCj4+Cj4+IEJzcGVjOiAxMjI1NAo+Pgo+PiBTaWdu ZWQtb2ZmLWJ5OiBPc2NhciBNYXRlbyA8b3NjYXIubWF0ZW9AaW50ZWwuY29tPgo+PiBTaWduZWQt b2ZmLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4+IFNpZ25lZC1v ZmYtYnk6IE1pY2hhbCBXYWpkZWN6a28gPG1pY2hhbC53YWpkZWN6a29AaW50ZWwuY29tPgo+PiBD YzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgo+PiBD YzogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNv bT4KPj4gQ2M6IE1pY2hlbCBUaGllcnJ5IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5jb20+ClRlc3Rl ZC1ieTogVG9tYXN6IExpcyA8dG9tYXN6Lmxpc0BpbnRlbC5jb20+Cj4+IC0tLQo+PiDCoCBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5owqDCoMKgwqDCoMKgwqDCoCB8IDE1ICsrKysrKysr KysrLS0tLQo+PiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgfMKg IDUgKysrKy0KPj4gwqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5oIHzC oCAyICsrCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmjCoMKgwqDCoMKgwqDC oMKgIHzCoCAyICsrCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jwqDCoMKg wqDCoMKgwqAgfCAxMiArKysrKysrKystLS0KPj4gwqAgNSBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNl cnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o Cj4+IGluZGV4IGU1YjlkM2MuLjM0ZjU0OTUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+PiBAQCAtMTg2NiwxNCArMTg2NiwyMSBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4+ IMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgbGxpc3RfaGVhZCBmcmVlX2xpc3Q7Cj4+IMKgwqDC oMKgwqDCoMKgwqDCoCBzdHJ1Y3Qgd29ya19zdHJ1Y3QgZnJlZV93b3JrOwo+PiDCoCAtwqDCoMKg wqDCoMKgwqAgLyogVGhlIGh3IHdhbnRzIHRvIGhhdmUgYSBzdGFibGUgY29udGV4dCBpZGVudGlm aWVyIGZvciB0aGUKPj4gK8KgwqDCoMKgwqDCoMKgIC8qCj4+ICvCoMKgwqDCoMKgwqDCoMKgICog VGhlIEhXIHdhbnRzIHRvIGhhdmUgYSBzdGFibGUgY29udGV4dCBpZGVudGlmaWVyIGZvciB0aGUK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBsaWZldGltZSBvZiB0aGUgY29udGV4dCAoZm9yIE9B LCBQQVNJRCwgZmF1bHRzLCBldGMpLgo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIFRoaXMgaXMg bGltaXRlZCBpbiBleGVjbGlzdHMgdG8gMjEgYml0cy4KPj4gK8KgwqDCoMKgwqDCoMKgwqAgKiBJ biBlbmhhbmNlZCBleGVjbGlzdCAoR0VOMTErKSB0aGlzIGlzIGxpbWl0ZWQgdG8gMTEgYml0cwo+ PiArwqDCoMKgwqDCoMKgwqDCoCAqICh0aGUgU1cgQ29udGV4dCBJRCBmaWVsZCkgYnV0IEd1QyBs aW1pdHMgaXQgYSBiaXQgZnVydGhlcgo+PiArwqDCoMKgwqDCoMKgwqDCoCAqICgxMSBiaXRzIC0g MTYpIGR1ZSB0byBzb21lIGVudHJpZXMgYmVpbmcgcmVzZXJ2ZWQgZm9yIGZ1dHVyZQo+PiArwqDC oMKgwqDCoMKgwqDCoCAqIHVzZSAoc28gdGhlIGZpcm13YXJlIG9ubHkgc3VwcG9ydHMgYSBHdUMg c3RhZ2UgZGVzY3JpcHRvcgo+PiArwqDCoMKgwqDCoMKgwqDCoCAqIHBvb2wgb2YgMjAzMiBlbnRy aWVzKS4KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgKi8KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHN0 cnVjdCBpZGEgaHdfaWRhOwo+PiAtI2RlZmluZSBNQVhfQ09OVEVYVF9IV19JRCAoMTw8MjEpIC8q IGV4Y2x1c2l2ZSAqLwo+PiAtI2RlZmluZSBNQVhfR1VDX0NPTlRFWFRfSFdfSUQgKDEgPDwgMjAp IC8qIGV4Y2x1c2l2ZSAqLwo+PiAtI2RlZmluZSBHRU4xMV9NQVhfQ09OVEVYVF9IV19JRCAoMTw8 MTEpIC8qIGV4Y2x1c2l2ZSAqLwo+PiArI2RlZmluZSBNQVhfQ09OVEVYVF9IV19JRMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgKDEgPDwgMjEpIC8qIGV4Y2x1c2l2ZSAqLwo+PiArI2RlZmluZSBNQVhf R1VDX0NPTlRFWFRfSFdfSUTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICgxIDw8IDIwKSAvKiBleGNs dXNpdmUgKi8KPj4gKyNkZWZpbmUgR0VOMTFfTUFYX0NPTlRFWFRfSFdfSUTCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICgxIDw8IDExKSAvKiBleGNsdXNpdmUgKi8KPj4gKyNkZWZpbmUgR0VOMTFfTUFY X0NPTlRFWFRfSFdfSURfV0lUSF9HVUMgKEdFTjExX01BWF9DT05URVhUX0hXX0lEIC0gMTYpCj4+ IMKgwqDCoMKgwqAgfSBjb250ZXh0czsKPj4gwqAgwqDCoMKgwqDCoCB1MzIgZmRpX3J4X2NvbmZp ZzsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQu YyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPj4gaW5kZXgg ZjE1YTAzOS4uZTNiNTAwYyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fY29udGV4dC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Nv bnRleHQuYwo+PiBAQCAtMjA5LDcgKzIwOSwxMCBAQCBzdGF0aWMgaW50IGFzc2lnbl9od19pZChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAKPj4gKmRldl9wcml2LCB1bnNpZ25lZCAqb3V0KQo+PiDC oMKgwqDCoMKgIHVuc2lnbmVkIGludCBtYXg7Cj4+IMKgIMKgwqDCoMKgwqAgaWYgKElOVEVMX0dF TihkZXZfcHJpdikgPj0gMTEpIHsKPj4gLcKgwqDCoMKgwqDCoMKgIG1heCA9IEdFTjExX01BWF9D T05URVhUX0hXX0lEOwo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKFVTRVNfR1VDX1NVQk1JU1NJT04o ZGV2X3ByaXYpKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtYXggPSBHRU4xMV9NQVhfQ09O VEVYVF9IV19JRF9XSVRIX0dVQzsKPj4gK8KgwqDCoMKgwqDCoMKgIGVsc2UKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgbWF4ID0gR0VOMTFfTUFYX0NPTlRFWFRfSFdfSUQ7Cj4+IMKgwqDCoMKg wqAgfSBlbHNlIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC8qCj4+IMKgwqDCoMKgwqDCoMKgwqDC oMKgICogV2hlbiB1c2luZyBHdUMgaW4gcHJveHkgc3VibWlzc2lvbiwgR3VDIGNvbnN1bWVzIHRo ZQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5o IAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaAo+PiBpbmRleCA4 NTFkYWQ2Li40Yjg3ZjVkIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9jb250ZXh0LmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5oCj4+IEBAIC0xNTQsNiArMTU0LDggQEAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgewo+ PiDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGludGVsX3JpbmcgKnJpbmc7Cj4+IMKgwqDCoMKg wqDCoMKgwqDCoCB1MzIgKmxyY19yZWdfc3RhdGU7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB1NjQg bHJjX2Rlc2M7Cj4+ICvCoMKgwqDCoMKgwqDCoCB1MzIgc3dfY29udGV4dF9pZDsKPj4gK8KgwqDC oMKgwqDCoMKgIHUzMiBzd19jb3VudGVyOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IHBpbl9j b3VudDsKPj4gwqAgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IHN0cnVjdCBpbnRlbF9jb250ZXh0 X29wcyAqb3BzOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aCAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+IGluZGV4IGYyMzIxNzgu LmVhNjVkN2IgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgK Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+PiBAQCAtMzkwMCw2ICsz OTAwLDggQEAgZW51bSB7Cj4+IMKgICNkZWZpbmUgR0VOOF9DVFhfSURfV0lEVEggMjEKPj4gwqAg I2RlZmluZSBHRU4xMV9TV19DVFhfSURfU0hJRlQgMzcKPj4gwqAgI2RlZmluZSBHRU4xMV9TV19D VFhfSURfV0lEVEggMTEKPj4gKyNkZWZpbmUgR0VOMTFfU1dfQ09VTlRFUl9TSElGVCA1NQo+PiAr I2RlZmluZSBHRU4xMV9TV19DT1VOVEVSX1dJRFRIIDYKPj4gwqAgI2RlZmluZSBHRU4xMV9FTkdJ TkVfQ0xBU1NfU0hJRlQgNjEKPj4gwqAgI2RlZmluZSBHRU4xMV9FTkdJTkVfQ0xBU1NfV0lEVEgg Mwo+PiDCoCAjZGVmaW5lIEdFTjExX0VOR0lORV9JTlNUQU5DRV9TSElGVCA0OAo+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgCj4+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMKPj4gaW5kZXggZjRiOTk3Mi4uMzAwMWExNCAxMDA2NDQKPj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPj4gQEAgLTI0MCwxNCArMjQwLDE1IEBAIHN0YXRpYyBp bmxpbmUgYm9vbCBuZWVkX3ByZWVtcHQoY29uc3Qgc3RydWN0IAo+PiBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSwKPj4gwqDCoMKgwqDCoMKgICogYW55dGhpbmcgYmVsb3cuCj4+IMKgwqDCoMKgwqDC oCAqLwo+PiDCoMKgwqDCoMKgIGlmIChJTlRFTF9HRU4oY3R4LT5pOTE1KSA+PSAxMSkgewo+Cj4K PiBIZXkgTWljaGFsLAo+Cj4gVGhlcmUgaXMgYSBjb21tZW50IGp1c3QgYWJvdmUgdGhlIGlmICgp IGFib3V0IHVwZGF0aW5nIHRoZSBpOTE1X3BlcmYuYyAKPiAob2FfZ2V0X3JlbmRlcl9jdHhfaWQp IHdoZW4gZGVzY3JpcHRvciBpcyB1cGRhdGVkLgo+IE90aGVyd2lzZSB0aGlzIHdpbGwgYnJlYWsg c29tZSBwYXJ0IG9mIHRoZSBvYnNlcnZhYmlsaXR5IGZlYXR1cmUuCj4gWW91IGNhbiB2ZXJpZnkg dGhpcyB3aXRoIHRoZSBJR1QgdGVzdHMvcGVyZiAKPiAtLXJ1bi1zdWJ0ZXN0PWdlbjgtdW5wcml2 aWxlZ2VkLXNpbmdsZS1jdHgtY291bnRlcnMKPgo+IFRoYW5rcyBhIGxvdCwKPgo+IC0KPiBMaW9u ZWwKVGVzdGVkIG9uIEtCTDsgd29ya3MgZmluZSBmb3IgYm90aCBlbmFibGVfZ3VjPTIgYW5kIGVu YWJsZV9ndWM9My4KCi4vdGVzdHMvcGVyZiAtLXJ1bi1zdWJ0ZXN0PWdlbjgtdW5wcml2aWxlZ2Vk LXNpbmdsZS1jdHgtY291bnRlcnMKSUdULVZlcnNpb246IDEuMjItZzExZGI2ODAgKHg4Nl82NCkg KExpbnV4OiA0LjE5LjAtcmMxdGxpKyB4ODZfNjQpClN1YnRlc3QgZ2VuOC11bnByaXZpbGVnZWQt c2luZ2xlLWN0eC1jb3VudGVyczogU1VDQ0VTUyAoMCwwNThzKQoKLVRvbWFzego+PiAtwqDCoMKg wqDCoMKgwqAgR0VNX0JVR19PTihjdHgtPmh3X2lkID49IEJJVChHRU4xMV9TV19DVFhfSURfV0lE VEgpKTsKPj4gLcKgwqDCoMKgwqDCoMKgIGRlc2MgfD0gKHU2NCljdHgtPmh3X2lkIDw8IEdFTjEx X1NXX0NUWF9JRF9TSElGVDsKPj4gK8KgwqDCoMKgwqDCoMKgIEdFTV9CVUdfT04oY2UtPnN3X2Nv bnRleHRfaWQgPj0gQklUKEdFTjExX1NXX0NUWF9JRF9XSURUSCkpOwo+PiArwqDCoMKgwqDCoMKg wqAgZGVzYyB8PSAodTY0KWNlLT5zd19jb250ZXh0X2lkIDw8IEdFTjExX1NXX0NUWF9JRF9TSElG VDsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIC8qIGJpdHMgMzctNDcgKi8KPj4gwqAgwqDCoMKgwqDCoMKgwqDCoMKg IGRlc2MgfD0gKHU2NCllbmdpbmUtPmluc3RhbmNlIDw8IAo+PiBHRU4xMV9FTkdJTkVfSU5TVEFO Q0VfU0hJRlQ7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBiaXRzIDQ4LTUzICovCj4+IMKgIC3CoMKgwqDCoMKg wqDCoCAvKiBUT0RPOiBkZWNpZGUgd2hhdCB0byBkbyB3aXRoIFNXIGNvdW50ZXIgKGJpdHMgNTUt NjApICovCj4+ICvCoMKgwqDCoMKgwqDCoCBkZXNjIHw9ICh1NjQpY2UtPnN3X2NvdW50ZXIgPDwg R0VOMTFfU1dfQ09VTlRFUl9TSElGVDsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIGJpdHMgNTUtNjAgKi8KPj4gwqAg wqDCoMKgwqDCoMKgwqDCoMKgIC8qCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgICogQWx0aG91Z2gg R3VDIHdpbGwgbmV2ZXIgc2VlIHRoaXMgdXBwZXIgcGFydCBhcyBpdCBmaWxscwo+PiBAQCAtMjc3 MSw2ICsyNzcyLDExIEBAIHN0YXRpYyBpbnQgCj4+IGV4ZWNsaXN0c19jb250ZXh0X2RlZmVycmVk X2FsbG9jKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4+IMKgwqDCoMKgwqAgY2UtPnJp bmcgPSByaW5nOwo+PiDCoMKgwqDCoMKgIGNlLT5zdGF0ZSA9IHZtYTsKPj4gwqAgK8KgwqDCoCBp ZiAoSU5URUxfR0VOKGN0eC0+aTkxNSkgPj0gMTEpIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGNlLT5z d19jb250ZXh0X2lkID0gY3R4LT5od19pZDsKPj4gK8KgwqDCoMKgwqDCoMKgIGNlLT5zd19jb3Vu dGVyID0gZW5naW5lLT5pbnN0YW5jZTsKPj4gK8KgwqDCoCB9Cj4+ICsKPj4gwqDCoMKgwqDCoCBy ZXR1cm4gMDsKPj4gwqAgwqAgZXJyb3JfcmluZ19mcmVlOgo+Cj4KPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QK PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=