From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH i-g-t 4/7] intel-gpu-overlay: Catch-up to new i915 PMU Date: Tue, 26 Sep 2017 11:56:24 +0100 Message-ID: <76bd67ba-c473-668d-c0b8-b5e1f883dfd0@linux.intel.com> References: <20170925151502.7285-1-tvrtko.ursulin@linux.intel.com> <20170925151502.7285-5-tvrtko.ursulin@linux.intel.com> <150635350237.18819.5999673744700670315@mail.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id C322B6E50C for ; Tue, 26 Sep 2017 10:56:27 +0000 (UTC) In-Reply-To: <150635350237.18819.5999673744700670315@mail.alporthouse.com> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , Tvrtko Ursulin , Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDI1LzA5LzIwMTcgMTY6MzEsIENocmlzIFdpbHNvbiB3cm90ZToKPiBRdW90aW5nIFR2cnRr byBVcnN1bGluICgyMDE3LTA5LTI1IDE2OjE0OjU5KQo+PiBGcm9tOiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJz dWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+PiAtLS0KPj4gICBsaWIvaWd0X3BlcmYu aCAgICAgICAgICAgfCA5MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0KPj4gICBvdmVybGF5L2dlbS1pbnRlcnJ1cHRzLmMgfCAgMiArLQo+PiAgIG92ZXJs YXkvZ3B1LWZyZXEuYyAgICAgICB8ICA0ICstLQo+PiAgIG92ZXJsYXkvZ3B1LXRvcC5jICAgICAg ICB8IDY4ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCj4+ICAgb3ZlcmxheS9w b3dlci5jICAgICAgICAgIHwgIDQgKy0tCj4+ICAgb3ZlcmxheS9yYzYuYyAgICAgICAgICAgIHwg IDYgKystLQo+PiAgIDYgZmlsZXMgY2hhbmdlZCwgMTExIGluc2VydGlvbnMoKyksIDY2IGRlbGV0 aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvbGliL2lndF9wZXJmLmggYi9saWIvaWd0X3BlcmYu aAo+PiBpbmRleCA4ZTY3NGMzYTM3NTUuLmUyOTIxNmYwNTAwYSAxMDA2NDQKPj4gLS0tIGEvbGli L2lndF9wZXJmLmgKPj4gKysrIGIvbGliL2lndF9wZXJmLmgKPj4gQEAgLTEsMyArMSwyNyBAQAo+ PiArLyoKPj4gKyAqIENvcHlyaWdodCDCqSAyMDE3IEludGVsIENvcnBvcmF0aW9uCj4+ICsgKgo+ PiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu eSBwZXJzb24gb2J0YWluaW5nIGEKPj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNz b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4+ICsgKiB0byBk ZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91 dCBsaW1pdGF0aW9uCj4+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPj4gKyAqIGFuZC9vciBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQo+ PiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xs b3dpbmcgY29uZGl0aW9uczoKPj4gKyAqCj4+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cj4+ICsgKiBw YXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMgb2YgdGhlCj4+ICsgKiBTb2Z0d2FyZS4KPj4gKyAqCj4+ICsgKiBUSEUgU09GVFdB UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQ UkVTUyBPUgo+PiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPj4g KyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENM QUlNLCBEQU1BR0VTIE9SIE9USEVSCj4+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU SU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwo+PiArICogRlJPTSwg T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBP VEhFUiBERUFMSU5HUwo+PiArICogSU4gVEhFIFNPRlRXQVJFLgo+PiArICoKPj4gKyAqLwo+PiAr Cj4+ICAgI2lmbmRlZiBJOTE1X1BFUkZfSAo+PiAgICNkZWZpbmUgSTkxNV9QRVJGX0gKPj4gICAK Pj4gQEAgLTUsNDEgKzI5LDU2IEBACj4+ICAgCj4+ICAgI2luY2x1ZGUgPGxpbnV4L3BlcmZfZXZl bnQuaD4KPj4gICAKPj4gLSNkZWZpbmUgSTkxNV9TQU1QTEVfQlVTWSAgICAgICAwCj4+IC0jZGVm aW5lIEk5MTVfU0FNUExFX1dBSVQgICAgICAgMQo+PiAtI2RlZmluZSBJOTE1X1NBTVBMRV9TRU1B ICAgICAgIDIKPj4gK2VudW0gZHJtX2k5MTVfZ2VtX2VuZ2luZV9jbGFzcyB7Cj4+ICsgICAgICAg STkxNV9FTkdJTkVfQ0xBU1NfT1RIRVIgPSAwLAo+PiArICAgICAgIEk5MTVfRU5HSU5FX0NMQVNT X1JFTkRFUiA9IDEsCj4+ICsgICAgICAgSTkxNV9FTkdJTkVfQ0xBU1NfQ09QWSA9IDIsCj4+ICsg ICAgICAgSTkxNV9FTkdJTkVfQ0xBU1NfVklERU8gPSAzLAo+PiArICAgICAgIEk5MTVfRU5HSU5F X0NMQVNTX1ZJREVPX0VOSEFOQ0UgPSA0LAo+PiArICAgICAgIEk5MTVfRU5HSU5FX0NMQVNTX01B WCAvKiBub24tQUJJICovCj4+ICt9Owo+PiArCj4+ICtlbnVtIGRybV9pOTE1X3BtdV9lbmdpbmVf c2FtcGxlIHsKPj4gKyAgICAgICBJOTE1X1NBTVBMRV9RVUVVRUQgPSAwLAo+PiArICAgICAgIEk5 MTVfU0FNUExFX0JVU1kgPSAxLAo+PiArICAgICAgIEk5MTVfU0FNUExFX1dBSVQgPSAyLAo+PiAr ICAgICAgIEk5MTVfU0FNUExFX1NFTUEgPSAzLAo+PiArICAgICAgIEk5MTVfRU5HSU5FX1NBTVBM RV9NQVggLyogbm9uLUFCSSAqLwo+PiArfTsKPj4gKwo+PiArI2RlZmluZSBJOTE1X1BNVV9TQU1Q TEVfQklUUyAoNCkKPj4gKyNkZWZpbmUgSTkxNV9QTVVfU0FNUExFX01BU0sgKDB4ZikKPj4gKyNk ZWZpbmUgSTkxNV9QTVVfU0FNUExFX0lOU1RBTkNFX0JJVFMgKDgpCj4+ICsjZGVmaW5lIEk5MTVf UE1VX0NMQVNTX1NISUZUIFwKPj4gKyAgICAgICAoSTkxNV9QTVVfU0FNUExFX0JJVFMgKyBJOTE1 X1BNVV9TQU1QTEVfSU5TVEFOQ0VfQklUUykKPj4gICAKPj4gLSNkZWZpbmUgSTkxNV9TQU1QTEVf UkNTICAgICAgICAgICAgICAgIDAKPj4gLSNkZWZpbmUgSTkxNV9TQU1QTEVfVkNTICAgICAgICAg ICAgICAgIDEKPj4gLSNkZWZpbmUgSTkxNV9TQU1QTEVfQkNTICAgICAgICAgICAgICAgIDIKPj4g LSNkZWZpbmUgSTkxNV9TQU1QTEVfVkVDUyAgICAgICAzCj4+ICsjZGVmaW5lIF9fSTkxNV9QTVVf RU5HSU5FKGNsYXNzLCBpbnN0YW5jZSwgc2FtcGxlKSBcCj4+ICsgICAgICAgKChjbGFzcykgPDwg STkxNV9QTVVfQ0xBU1NfU0hJRlQgfCBcCj4+ICsgICAgICAgKGluc3RhbmNlKSA8PCBJOTE1X1BN VV9TQU1QTEVfQklUUyB8IFwKPj4gKyAgICAgICAoc2FtcGxlKSkKPj4gICAKPj4gLSNkZWZpbmUg X19JOTE1X1BFUkZfQ09VTlQocmluZywgaWQpICgocmluZykgPDwgNCB8IChpZCkpCj4+ICsjZGVm aW5lIEk5MTVfUE1VX0VOR0lORV9RVUVVRUQoY2xhc3MsIGluc3RhbmNlKSBcCj4+ICsgICAgICAg X19JOTE1X1BNVV9FTkdJTkUoY2xhc3MsIGluc3RhbmNlLCBJOTE1X1NBTVBMRV9RVUVVRUQpCj4+ ICAgCj4+IC0jZGVmaW5lIEk5MTVfUEVSRl9DT1VOVF9SQ1NfQlVTWSBfX0k5MTVfUEVSRl9DT1VO VChJOTE1X1NBTVBMRV9SQ1MsIEk5MTVfU0FNUExFX0JVU1kpCj4+IC0jZGVmaW5lIEk5MTVfUEVS Rl9DT1VOVF9SQ1NfV0FJVCBfX0k5MTVfUEVSRl9DT1VOVChJOTE1X1NBTVBMRV9SQ1MsIEk5MTVf U0FNUExFX1dBSVQpCj4+IC0jZGVmaW5lIEk5MTVfUEVSRl9DT1VOVF9SQ1NfU0VNQSBfX0k5MTVf UEVSRl9DT1VOVChJOTE1X1NBTVBMRV9SQ1MsIEk5MTVfU0FNUExFX1NFTUEpCj4+ICsjZGVmaW5l IEk5MTVfUE1VX0VOR0lORV9CVVNZKGNsYXNzLCBpbnN0YW5jZSkgXAo+PiArICAgICAgIF9fSTkx NV9QTVVfRU5HSU5FKGNsYXNzLCBpbnN0YW5jZSwgSTkxNV9TQU1QTEVfQlVTWSkKPj4gICAKPj4g LSNkZWZpbmUgSTkxNV9QRVJGX0NPVU5UX1ZDU19CVVNZIF9fSTkxNV9QRVJGX0NPVU5UKEk5MTVf U0FNUExFX1ZDUywgSTkxNV9TQU1QTEVfQlVTWSkKPj4gLSNkZWZpbmUgSTkxNV9QRVJGX0NPVU5U X1ZDU19XQUlUIF9fSTkxNV9QRVJGX0NPVU5UKEk5MTVfU0FNUExFX1ZDUywgSTkxNV9TQU1QTEVf V0FJVCkKPj4gLSNkZWZpbmUgSTkxNV9QRVJGX0NPVU5UX1ZDU19TRU1BIF9fSTkxNV9QRVJGX0NP VU5UKEk5MTVfU0FNUExFX1ZDUywgSTkxNV9TQU1QTEVfU0VNQSkKPj4gKyNkZWZpbmUgSTkxNV9Q TVVfRU5HSU5FX1dBSVQoY2xhc3MsIGluc3RhbmNlKSBcCj4+ICsgICAgICAgX19JOTE1X1BNVV9F TkdJTkUoY2xhc3MsIGluc3RhbmNlLCBJOTE1X1NBTVBMRV9XQUlUKQo+PiAgIAo+PiAtI2RlZmlu ZSBJOTE1X1BFUkZfQ09VTlRfQkNTX0JVU1kgX19JOTE1X1BFUkZfQ09VTlQoSTkxNV9TQU1QTEVf QkNTLCBJOTE1X1NBTVBMRV9CVVNZKQo+PiAtI2RlZmluZSBJOTE1X1BFUkZfQ09VTlRfQkNTX1dB SVQgX19JOTE1X1BFUkZfQ09VTlQoSTkxNV9TQU1QTEVfQkNTLCBJOTE1X1NBTVBMRV9XQUlUKQo+ PiAtI2RlZmluZSBJOTE1X1BFUkZfQ09VTlRfQkNTX1NFTUEgX19JOTE1X1BFUkZfQ09VTlQoSTkx NV9TQU1QTEVfQkNTLCBJOTE1X1NBTVBMRV9TRU1BKQo+PiArI2RlZmluZSBJOTE1X1BNVV9FTkdJ TkVfU0VNQShjbGFzcywgaW5zdGFuY2UpIFwKPj4gKyAgICAgICBfX0k5MTVfUE1VX0VOR0lORShj bGFzcywgaW5zdGFuY2UsIEk5MTVfU0FNUExFX1NFTUEpCj4+ICAgCj4+IC0jZGVmaW5lIEk5MTVf UEVSRl9DT1VOVF9WRUNTX0JVU1kgX19JOTE1X1BFUkZfQ09VTlQoSTkxNV9TQU1QTEVfVkVDUywg STkxNV9TQU1QTEVfQlVTWSkKPj4gLSNkZWZpbmUgSTkxNV9QRVJGX0NPVU5UX1ZFQ1NfV0FJVCBf X0k5MTVfUEVSRl9DT1VOVChJOTE1X1NBTVBMRV9WRUNTLCBJOTE1X1NBTVBMRV9XQUlUKQo+PiAt I2RlZmluZSBJOTE1X1BFUkZfQ09VTlRfVkVDU19TRU1BIF9fSTkxNV9QRVJGX0NPVU5UKEk5MTVf U0FNUExFX1ZFQ1MsIEk5MTVfU0FNUExFX1NFTUEpCj4+ICsjZGVmaW5lIF9fSTkxNV9QTVVfT1RI RVIoeCkgKF9fSTkxNV9QTVVfRU5HSU5FKDB4ZmYsIDB4ZmYsIDB4ZikgKyAxICsgKHgpKQo+PiAg IAo+PiAtI2RlZmluZSBJOTE1X1BFUkZfQUNUVUFMX0ZSRVFVRU5DWSAzMgo+PiAtI2RlZmluZSBJ OTE1X1BFUkZfUkVRVUVTVEVEX0ZSRVFVRU5DWSAzMwo+PiAtI2RlZmluZSBJOTE1X1BFUkZfRU5F UkdZIDM0Cj4+IC0jZGVmaW5lIEk5MTVfUEVSRl9JTlRFUlJVUFRTIDM1Cj4+ICsjZGVmaW5lIEk5 MTVfUE1VX0FDVFVBTF9GUkVRVUVOQ1kgICAgICBfX0k5MTVfUE1VX09USEVSKDApCj4+ICsjZGVm aW5lIEk5MTVfUE1VX1JFUVVFU1RFRF9GUkVRVUVOQ1kgICBfX0k5MTVfUE1VX09USEVSKDEpCj4+ ICsjZGVmaW5lIEk5MTVfUE1VX0lOVEVSUlVQVFMgICAgICAgICAgICBfX0k5MTVfUE1VX09USEVS KDIpCj4+ICsjZGVmaW5lIEk5MTVfUE1VX1JDNl9SRVNJREVOQ1kgICAgICAgICBfX0k5MTVfUE1V X09USEVSKDMpCj4+ICsjZGVmaW5lIEk5MTVfUE1VX1JDNnBfUkVTSURFTkNZICAgICAgICAgICAg ICAgIF9fSTkxNV9QTVVfT1RIRVIoNCkKPj4gKyNkZWZpbmUgSTkxNV9QTVVfUkM2cHBfUkVTSURF TkNZICAgICAgIF9fSTkxNV9QTVVfT1RIRVIoNSkKPj4gICAKPj4gLSNkZWZpbmUgSTkxNV9QRVJG X1JDNl9SRVNJREVOQ1kgICAgICAgICAgICAgICAgNDAKPj4gLSNkZWZpbmUgSTkxNV9QRVJGX1JD NnBfUkVTSURFTkNZICAgICAgIDQxCj4+IC0jZGVmaW5lIEk5MTVfUEVSRl9SQzZwcF9SRVNJREVO Q1kgICAgICA0Mgo+PiArI2RlZmluZSBJOTE1X1BNVV9MQVNUIEk5MTVfUE1VX1JDNnBwX1JFU0lE RU5DWQo+PiAgIAo+PiAgIHN0YXRpYyBpbmxpbmUgaW50Cj4+ICAgcGVyZl9ldmVudF9vcGVuKHN0 cnVjdCBwZXJmX2V2ZW50X2F0dHIgKmF0dHIsCj4+IGRpZmYgLS1naXQgYS9vdmVybGF5L2dlbS1p bnRlcnJ1cHRzLmMgYi9vdmVybGF5L2dlbS1pbnRlcnJ1cHRzLmMKPj4gaW5kZXggM2VkYTI0ZjRk N2ViLi5hZGQ0YTlkZmQ3MjUgMTAwNjQ0Cj4+IC0tLSBhL292ZXJsYXkvZ2VtLWludGVycnVwdHMu Ywo+PiArKysgYi9vdmVybGF5L2dlbS1pbnRlcnJ1cHRzLmMKPj4gQEAgLTExMyw3ICsxMTMsNyBA QCBpbnQgZ2VtX2ludGVycnVwdHNfaW5pdChzdHJ1Y3QgZ2VtX2ludGVycnVwdHMgKmlycXMpCj4+ ICAgewo+PiAgICAgICAgICBtZW1zZXQoaXJxcywgMCwgc2l6ZW9mKCppcnFzKSk7Cj4+ICAgCj4+ IC0gICAgICAgaXJxcy0+ZmQgPSBwZXJmX2k5MTVfb3BlbihJOTE1X1BFUkZfSU5URVJSVVBUUyk7 Cj4+ICsgICAgICAgaXJxcy0+ZmQgPSBwZXJmX2k5MTVfb3BlbihJOTE1X1BNVV9JTlRFUlJVUFRT KTsKPj4gICAgICAgICAgaWYgKGlycXMtPmZkIDwgMCAmJiBpbnRlcnJ1cHRzX3JlYWQoKSA8IDAp Cj4+ICAgICAgICAgICAgICAgICAgaXJxcy0+ZXJyb3IgPSBFTk9ERVY7Cj4+ICAgCj4+IGRpZmYg LS1naXQgYS9vdmVybGF5L2dwdS1mcmVxLmMgYi9vdmVybGF5L2dwdS1mcmVxLmMKPj4gaW5kZXgg NzZjNWVkOWFjZmQxLi5jNDYxOWI4NzI0MmEgMTAwNjQ0Cj4+IC0tLSBhL292ZXJsYXkvZ3B1LWZy ZXEuYwo+PiArKysgYi9vdmVybGF5L2dwdS1mcmVxLmMKPj4gQEAgLTM3LDggKzM3LDggQEAgc3Rh dGljIGludCBwZXJmX29wZW4odm9pZCkKPj4gICB7Cj4+ICAgICAgICAgIGludCBmZDsKPj4gICAK Pj4gLSAgICAgICBmZCA9IHBlcmZfaTkxNV9vcGVuX2dyb3VwKEk5MTVfUEVSRl9BQ1RVQUxfRlJF UVVFTkNZLCAtMSk7Cj4+IC0gICAgICAgaWYgKHBlcmZfaTkxNV9vcGVuX2dyb3VwKEk5MTVfUEVS Rl9SRVFVRVNURURfRlJFUVVFTkNZLCBmZCkgPCAwKSB7Cj4+ICsgICAgICAgZmQgPSBwZXJmX2k5 MTVfb3Blbl9ncm91cChJOTE1X1BNVV9BQ1RVQUxfRlJFUVVFTkNZLCAtMSk7Cj4+ICsgICAgICAg aWYgKHBlcmZfaTkxNV9vcGVuX2dyb3VwKEk5MTVfUE1VX1JFUVVFU1RFRF9GUkVRVUVOQ1ksIGZk KSA8IDApIHsKPj4gICAgICAgICAgICAgICAgICBjbG9zZShmZCk7Cj4+ICAgICAgICAgICAgICAg ICAgZmQgPSAtMTsKPj4gICAgICAgICAgfQo+PiBkaWZmIC0tZ2l0IGEvb3ZlcmxheS9ncHUtdG9w LmMgYi9vdmVybGF5L2dwdS10b3AuYwo+PiBpbmRleCA4MTJmNDdkNWFjZWQuLjYxYjhmNjJmZDc4 YyAxMDA2NDQKPj4gLS0tIGEvb3ZlcmxheS9ncHUtdG9wLmMKPj4gKysrIGIvb3ZlcmxheS9ncHUt dG9wLmMKPj4gQEAgLTQzLDQ5ICs0Myw1NyBAQAo+PiAgICNkZWZpbmUgICBSSU5HX1dBSVQgICAg ICAgICAgICAoMTw8MTEpCj4+ICAgI2RlZmluZSAgIFJJTkdfV0FJVF9TRU1BUEhPUkUgICgxPDwx MCkKPj4gICAKPj4gLSNkZWZpbmUgX19JOTE1X1BFUkZfUklORyhuKSAoNCpuKQo+PiAtI2RlZmlu ZSBJOTE1X1BFUkZfUklOR19CVVNZKG4pIChfX0k5MTVfUEVSRl9SSU5HKG4pICsgMCkKPj4gLSNk ZWZpbmUgSTkxNV9QRVJGX1JJTkdfV0FJVChuKSAoX19JOTE1X1BFUkZfUklORyhuKSArIDEpCj4+ IC0jZGVmaW5lIEk5MTVfUEVSRl9SSU5HX1NFTUEobikgKF9fSTkxNV9QRVJGX1JJTkcobikgKyAy KQo+PiAtCj4+ICAgc3RhdGljIGludCBwZXJmX2luaXQoc3RydWN0IGdwdV90b3AgKmd0KQo+PiAg IHsKPj4gLSAgICAgICBjb25zdCBjaGFyICpuYW1lc1tdID0gewo+PiAtICAgICAgICAgICAgICAg IlJDUyIsCj4+IC0gICAgICAgICAgICAgICAiQkNTIiwKPj4gLSAgICAgICAgICAgICAgICJWQ1Mw IiwKPj4gLSAgICAgICAgICAgICAgICJWQ1MxIiwKPj4gLSAgICAgICAgICAgICAgIE5VTEwsCj4+ ICsgICAgICAgc3RydWN0IGVuZ2luZV9kZXNjIHsKPj4gKyAgICAgICAgICAgICAgIHVuc2lnbmVk IGNsYXNzLCBpbnN0Owo+PiArICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZTsKPj4gKyAg ICAgICB9ICpkLCBlbmdpbmVzW10gPSB7Cj4+ICsgICAgICAgICAgICAgICB7IEk5MTVfRU5HSU5F X0NMQVNTX1JFTkRFUiwgMCwgInJjczAiIH0sCj4+ICsgICAgICAgICAgICAgICB7IEk5MTVfRU5H SU5FX0NMQVNTX0NPUFksIDAsICJiY3MwIiB9LAo+PiArICAgICAgICAgICAgICAgeyBJOTE1X0VO R0lORV9DTEFTU19WSURFTywgMCwgInZjczAiIH0sCj4+ICsgICAgICAgICAgICAgICB7IEk5MTVf RU5HSU5FX0NMQVNTX1ZJREVPLCAxLCAidmNzMSIgfSwKPj4gKyAgICAgICAgICAgICAgIHsgSTkx NV9FTkdJTkVfQ0xBU1NfVklERU9fRU5IQU5DRSwgMCwgInZlY3MwIiB9LAo+IAo+IEhtbSwgdGhl cmUgaXMgc29tZSBoaWRkZW4gY291cGxpbmcgd2l0aCBjb2xvdXJzIGF0bSwgYnV0IG90aGVyIHRo YW4gdGhhdAo+IHRoZSBvcmRlciBpcyBmbGV4aWJsZSwgaWlyYy4KCldoYXQgZG8geW91IG1lYW4/ IEZpcnN0IHlvdSB0aG91Z2h0IHRoZXJlJ3Mgc29tZSBpc3N1ZSBidXQgdGhlcmUgaXNuJ3QgCmFm dGVyIGFsbD8KCk9oIHJpZ2h0LCBWRUNTIHdhc24ndCBvbiB0aGUgbGlzdCBiZWZvcmUuLiBpdCBz ZWVtcyB0byB3b3JrIGFueXdheS4gSnVzdCAKaGF2ZW4ndCB0cmllZCB3aXRoIGZpdmUgZW5naW5l cy4KCj4gCj4+ICsgICAgICAgICAgICAgICB7IDAsIDAsIE5VTEwgfQo+PiAgICAgICAgICB9Owo+ PiAtICAgICAgIGludCBuOwo+PiAgIAo+PiAtICAgICAgIGd0LT5mZCA9IHBlcmZfaTkxNV9vcGVu X2dyb3VwKEk5MTVfUEVSRl9SSU5HX0JVU1koMCksIC0xKTsKPj4gKyAgICAgICBkID0gJmVuZ2lu ZXNbMF07Cj4+ICsKPj4gKyAgICAgICBndC0+ZmQgPSBwZXJmX2k5MTVfb3Blbl9ncm91cChJOTE1 X1BNVV9FTkdJTkVfQlVTWShkLT5jbGFzcywgZC0+aW5zdCksCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLTEpOwo+PiAgICAgICAgICBpZiAoZ3QtPmZkIDwgMCkKPj4g ICAgICAgICAgICAgICAgICByZXR1cm4gLTE7Cj4+ICAgCj4+IC0gICAgICAgaWYgKHBlcmZfaTkx NV9vcGVuX2dyb3VwKEk5MTVfUEVSRl9SSU5HX1dBSVQoMCksIGd0LT5mZCkgPj0gMCkKPj4gKyAg ICAgICBpZiAocGVyZl9pOTE1X29wZW5fZ3JvdXAoSTkxNV9QTVVfRU5HSU5FX1dBSVQoZC0+Y2xh c3MsIGQtPmluc3QpLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndC0+ZmQp ID49IDApCj4+ICAgICAgICAgICAgICAgICAgZ3QtPmhhdmVfd2FpdCA9IDE7Cj4+ICAgCj4+IC0g ICAgICAgaWYgKHBlcmZfaTkxNV9vcGVuX2dyb3VwKEk5MTVfUEVSRl9SSU5HX1NFTUEoMCksIGd0 LT5mZCkgPj0gMCkKPj4gKyAgICAgICBpZiAocGVyZl9pOTE1X29wZW5fZ3JvdXAoSTkxNV9QTVVf RU5HSU5FX1NFTUEoZC0+Y2xhc3MsIGQtPmluc3QpLAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBndC0+ZmQpID49IDApCj4+ICAgICAgICAgICAgICAgICAgZ3QtPmhhdmVfc2Vt YSA9IDE7Cj4+ICAgCj4+IC0gICAgICAgZ3QtPnJpbmdbMF0ubmFtZSA9IG5hbWVzWzBdOwo+PiAr ICAgICAgIGd0LT5yaW5nWzBdLm5hbWUgPSBkLT5uYW1lOwo+PiAgICAgICAgICBndC0+bnVtX3Jp bmdzID0gMTsKPj4gICAKPj4gLSAgICAgICBmb3IgKG4gPSAxOyBuYW1lc1tuXTsgbisrKSB7Cj4+ IC0gICAgICAgICAgICAgICBpZiAocGVyZl9pOTE1X29wZW5fZ3JvdXAoSTkxNV9QRVJGX1JJTkdf QlVTWShuKSwgZ3QtPmZkKSA+PSAwKSB7Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGlmIChn dC0+aGF2ZV93YWl0ICYmCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJmX2k5MTVf b3Blbl9ncm91cChJOTE1X1BFUkZfUklOR19XQUlUKG4pLAo+PiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3QtPmZkKSA8IDApCj4+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwo+PiAtCj4+IC0gICAgICAgICAgICAgICAg ICAgICAgIGlmIChndC0+aGF2ZV9zZW1hICYmCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICBwZXJmX2k5MTVfb3Blbl9ncm91cChJOTE1X1BFUkZfUklOR19TRU1BKG4pLAo+PiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3QtPmZkKSA8IDApCj4+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwo+PiAtCj4+IC0gICAg ICAgICAgICAgICAgICAgICAgIGd0LT5yaW5nW2d0LT5udW1fcmluZ3MrK10ubmFtZSA9IG5hbWVz W25dOwo+PiAtICAgICAgICAgICAgICAgfQo+PiArICAgICAgIGZvciAoZCsrOyBkLT5uYW1lOyBk KyspIHsKPj4gKyAgICAgICAgICAgICAgIGlmIChwZXJmX2k5MTVfb3Blbl9ncm91cChJOTE1X1BN VV9FTkdJTkVfQlVTWShkLT5jbGFzcywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLT5pbnN0KSwKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0LT5mZCkgPCAwKQo+PiArICAgICAgICAgICAg ICAgICAgICAgICBjb250aW51ZTsKPj4gKwo+PiArICAgICAgICAgICAgICAgaWYgKGd0LT5oYXZl X3dhaXQgJiYKPj4gKyAgICAgICAgICAgICAgICAgICBwZXJmX2k5MTVfb3Blbl9ncm91cChJOTE1 X1BNVV9FTkdJTkVfV0FJVChkLT5jbGFzcywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLT5pbnN0KSwKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndC0+ZmQpIDwgMCkKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIC0xOwo+PiArCj4+ICsgICAgICAgICAgICAgICBpZiAoZ3Qt PmhhdmVfc2VtYSAmJgo+PiArICAgICAgICAgICAgICAgICAgIHBlcmZfaTkxNV9vcGVuX2dyb3Vw KEk5MTVfUE1VX0VOR0lORV9TRU1BKGQtPmNsYXNzLAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQtPmluc3QpLAo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0LT5mZCkgPCAwKQo+PiArICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gLTE7Cj4+ICsKPj4gKyAgICAgICAgICAgICAgIGd0LT5yaW5n W2d0LT5udW1fcmluZ3MrK10ubmFtZSA9IGQtPm5hbWU7Cj4+ICAgICAgICAgIH0KPj4gICAKPj4g ICAgICAgICAgcmV0dXJuIDA7Cj4+IGRpZmYgLS1naXQgYS9vdmVybGF5L3Bvd2VyLmMgYi9vdmVy bGF5L3Bvd2VyLmMKPj4gaW5kZXggZGQ0YWVjNmJmZmQ5Li44MDVmNGNhNzgwNWMgMTAwNjQ0Cj4+ IC0tLSBhL292ZXJsYXkvcG93ZXIuYwo+PiArKysgYi9vdmVybGF5L3Bvd2VyLmMKPj4gQEAgLTQ1 LDkgKzQ1LDcgQEAgaW50IHBvd2VyX2luaXQoc3RydWN0IHBvd2VyICpwb3dlcikKPj4gICAKPj4g ICAgICAgICAgbWVtc2V0KHBvd2VyLCAwLCBzaXplb2YoKnBvd2VyKSk7Cj4+ICAgCj4+IC0gICAg ICAgcG93ZXItPmZkID0gcGVyZl9pOTE1X29wZW4oSTkxNV9QRVJGX0VORVJHWSk7Cj4+IC0gICAg ICAgaWYgKHBvd2VyLT5mZCAhPSAtMSkKPj4gLSAgICAgICAgICAgICAgIHJldHVybiAwOwo+PiAr ICAgICAgIHBvd2VyLT5mZCA9IC0xOwo+IAo+IEhtbSwgZGlkbid0IHlvdSBzYXkgdGhhdCB0aGUg cmFwbCB2YWx1ZXMgd2VyZSBleHBvc2VkIHZpYSBwZXJmIGFzIHdlbGw/CgpZZXMsIEkgcGxhbm5l ZCB0byBhZGQgdGhpcyBiYWNrIGFmdGVyd2FyZHMgYnV0IGNhbiBoYXZlIGl0IGFzIHBhcnQgb2Yg CnRoaXMgc2VyaWVzIGFzIHdlbGwuCgpSZWdhcmRzLAoKVHZydGtvCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=