From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: Funky new vblank counter regressions in Linux 4.4-rc1 Date: Mon, 23 Nov 2015 17:51:09 +0200 Message-ID: <20151123155109.GB4437@intel.com> References: <564E0AF4.3050406@gmail.com> <20151119182051.GU4437@intel.com> <564E1F18.5070508@gmail.com> <20151119194557.GB4437@intel.com> <564F3B42.5050803@gmail.com> <20151120153435.GR4437@intel.com> <56532F69.9080001@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 9C2896E669 for ; Mon, 30 Nov 2015 12:13:38 -0800 (PST) Resent-Message-ID: <20151130201325.GG4437@intel.com> Resent-To: dri-devel@lists.freedesktop.org Content-Disposition: inline In-Reply-To: <56532F69.9080001@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Mario Kleiner Cc: Michel =?iso-8859-1?Q?D=E4nzer?= List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBOb3YgMjMsIDIwMTUgYXQgMDQ6MjM6MjFQTSArMDEwMCwgTWFyaW8gS2xlaW5lciB3 cm90ZToKPiBPbiAxMS8yMC8yMDE1IDA0OjM0IFBNLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4g PiBPbiBGcmksIE5vdiAyMCwgMjAxNSBhdCAwNDoyNDo1MFBNICswMTAwLCBNYXJpbyBLbGVpbmVy IHdyb3RlOgo+IAo+IC4uLgo+IAo+ID4+IFdoYXQgd2UgZG8gaW4gcmFkZW9uLWttcyBpcyBzaW1p bGFyLiBJZiBEUk1fQ0FMTEVEX0ZST01fVkJMSVJRIGFuZCB3ZQo+ID4+IGFyZSBubyBtb3JlIHRo YW4gMSUgb2YgdGhlIGRpc3BsYXkgaGVpZ2h0IGF3YXkgZnJvbSBzdGFydCBvZiB2Ymxhbmsgd2UK PiA+PiBmdWRnZSBzY2Fub3V0IHBvc2l0aW9uIGluIGEgd2F5IHNvIHRoYXQgdGhlIHRpbWVzdGFt cCBnZXRzIGNvbXB1dGVkIGZvcgo+ID4+IHRoZSBzb29uLXRvLWJlZ2luIHZibGFuaywgbm90IHRo ZSBvbGQgb25lLgo+ID4KPiA+IFRoZSBwcm9ibGVtIHdpdGggYmFzaW5nIHRoYXQgZnVkZ2luZyBw dXJlbHkgb24gRFJNX0NBTExFRF9GUk9NX1ZCTElSUSBpcwo+ID4gdGhhdCBpZiB5b3UgY2FsbCAu Z2V0X3NjYW5vdXRfcG9zaXRvbigpIGZyb20gYSBub24taXJxIGNvbnRleHQgYmV0d2Vlbgo+ID4g dGhlIGlycSBmaXJpbmcgYW5kIHN0YXJ0IG9mIHZibGFuaywgeW91J2xsIHRoaW5rIHlvdSdyZSBz dGlsbCBpbiB0aGUKPiA+IHByZXZpb3VzIGZyYW1lLiBIZW5jZSBteSBzdWdnZXN0aW9uIHRvIG5v dGUgZG93biB0aGUgZnJhbWUgY291bnRlciB3aGVuCj4gPiBjYWxsZWQgZnJvbSB0aGUgaXJxLCBh bmQgdGhlbiBrZWVwIGRvaW5nIHRoZSBmdWRnaW5nIHVudGlsIHlvdSd2ZSB0cnVseQo+ID4gY3Jv c3NlZCB0aGUgc3RhcnQgb2YgdmJsYW5rLgo+ID4KPiAKPiBPaywgYnV0IHdoeSB3b3VsZCB0aGF0 IGJlIGEgYmFkIHRoaW5nPyBJIHRoaW5rIHdlIHdhbnQgaXQgdG8gdGhpbmsgaXQgaXMgCj4gaW4g dGhlIHByZXZpb3VzIGZyYW1lIGlmIGl0IGlzIGNhbGxlZCBvdXRzaWRlIHRoZSB2YmxhbmsgaXJx IGNvbnRleHQuIAo+IFRoZSBvbmx5IHJlYXNvbiB3ZSBmdWRnZSBpdCB0byB0aGUgbmV4dCBmcmFt ZXMgdmJsYW5rIGlmIGkgdmJsYW5rIGlycSBpcyAKPiBiZWNhdXNlIHdlIGtub3cgdGhlIHZibGFu ayBpcnEgaGFuZGxlciB3ZSBhcmUgZXhlY3V0aW5nIGF0bS4gd2FzIG1lYW50IAo+IHRvIGV4ZWN1 dGUgd2l0aGluIHRoZSB1cGNvbWluZyB2YmxhbmsgZm9yIHRoZSBuZXh0IGZyYW1lLCBzbyB3ZSBm dWRnZSAKPiB0aGUgc2Nhbm91dCBwb3NpdGlvbnMgYW5kIHRoZXJlYnkgdGltZXN0YW1wIHRvIGNv cnJlc3BvbmQgdG8gdGhhdCBuZXcgCj4gZnJhbWUuIEJ1dCBpZiBzb21ldGhpbmcgY2FsbGVkIG91 dHNpZGUgaXJxIGNvbnRleHQgaXQgc2hvdWxkIGdldCBhIAo+IHNjYW5vdXQgcG9zaXRpb24vdGlt ZXN0YW1wIHRoYXQgY29ycmVzcG9uZHMgdG8gInJlYWxpdHkiLgoKSXQgd291bGQgYmUgYSBiYWQg dGhpbmcgc2luY2UgaXQgd291bGQgY2F1c2UgdGhlIHRpbWVzdGFtcCB0byBqdW1wCmJhY2t3YXJk cywgYW5kIHRoYXQgd291bGQgYWxzbyBjYXVzZSB0aGUgZnJhbWUgY291bnQgZ3Vlc3N0aW1hdGUg dG8gZ28KYmFja3dhcmRzLgoKPiAKPiBJdCB3b3VsZCBtYXliZSBiZSBhIHByb2JsZW0gdG8gZ2V0 IGRpZmZlcmVudCBhbnN3ZXJzIGZvciBhIHF1ZXJ5IGF0IHRoZSAKPiBzYW1lIHNjYW5vdXQgcG9z aXRpb24gaWYgd2UgdXNlZCAuZ2V0X3NjYW5vdXRfcG9zaXRpb24oKSBmb3Igc29tZXRoaW5nIAo+ IGVsc2UgdGhhbiBmb3IgY2FsY3VsYXRpbmcgdmJsYW5rIHRpbWVzdGFtcHMsIGJ1dCB3ZSBkb24n dCBkbyB0aGF0IGF0bS4KPiAKPiBNYXliZSBpJ20gb3Zlcmxvb2tpbmcgc29tZXRoaW5nIGhlcmUg cmVsYXRlZCB0byB0aGUgc29tZXdoYXQgcmV3cml0dGVuIAo+IGNvZGUgZnJvbSB0aGUgbGFzdCB5 ZWFyIG9yIHNvPyBCdXQgaW4gdGhlIG9yaWdpbmFsIGRlc2lnbiB0aGlzIHdvdWxkIGJlIAo+IGV4 YWN0bHkgd2hhdCBpIGludGVuZGVkPwo+IAo+IC4uLgo+IAo+ID4+IFNvIGl0J3MgZ29vZCBlbm91 Z2ggZm9yIHR5cGljYWwgZGVza3RvcAo+ID4+IGFwcGxpY2F0aW9ucy9jb21wb3NpdG9ycy9nYW1l cy9tZWRpYSBwbGF5ZXJzLCBhbmQgYSBuaWNlIGltcHJvdmVtZW50Cj4gPj4gb3ZlciB0aGUgcHJl dmlvdXMgc3RhdGUsIGJ1dCBub3QgcXVpdGUgc3VmZmljaWVudCBmb3IgYXBwbGljYXRpb25zIHRo YXQKPiA+PiBuZWVkIGxvbmcgdGltZSBjb25zaXN0ZW50IHZibGFuayBjb3VudHMgZm9yIGxvbmcg d2FpdHMgb2YgbXVsdGlwbGUKPiA+PiBzZWNvbmRzIG9yIGV2ZW4gbWludXRlcy4gU28gaXQncyBz dGlsbCBnb29kIHRvIGhhdmUgaHcgY291bnRlcnMgaWYgd2UKPiA+PiBjYW4gZ2V0IHNvbWUgdGhh dCBhcmUgcmVsaWFibGUgZW5vdWdoLgo+ID4KPiA+IEFoLCBJIGRpZG4ndCByZWFsaXplIHlvdSBj YXJlIGFib3V0IHNtYWxsIGVycm9ycyBpbiB0aGUgY291bnRlciBmb3IKPiA+IHN1Y2ggbG9uZyBw ZXJpb2RzIG9mIHZibGFuayBvZmYuCj4gPgo+IAo+IEFjdHVhbGx5LCB5b3UgYXJlIHJpZ2h0LCBp IHdhcyBzdHVwaWQgLSBub3QgZW5vdWdoIHNsZWVwIGxhc3QgZnJpZGF5LiBJIAo+IGRvIGNhcmUg YWJvdXQgc3VjaCBzbWFsbCBlcnJvcnMsIGJ1dCB0aGUgbG9uZyB2Ymxhbmsgb2ZmIHBlcmlvZHMg ZG9uJ3QgCj4gbWF0dGVyIGF0IGFsbCB0aGUgd2F5IG15IHNvZnR3YXJlIHdvcmtzLiBJIHF1ZXJ5 IHRoZSBjdXJyZW50IGNvdW50IGFuZCAKPiB0aW1lc3RhbXAgKGdsWEdldFN5bmNWYWx1ZXNPTUwp LCBjYWxjdWxhdGUgYSB0YXJnZXQgY291bnQgYmFzZWQgb24gdGhvc2UgCj4gYW5kIHRoZW4gc2No ZWR1bGUgYSBzd2FwIGZvciB0aGF0IHRhcmdldCBjb3VudCB2aWEgZ2xYU3dhcEJ1ZmZlcnNNc2NP TUwuIAo+IFRoYXQgc3dhcGJ1ZmZlcnMgY2FsbCB3aWxsIGtlZXAgdmJsYW5rIGlycXMgb24gdW50 aWwgdGhlIGttcyBwYWdlZmxpcCBpcyAKPiBxdWV1ZWQuIFNvIGkgb25seSBjYXJlIGFib3V0IHZi bGFuayBjb3VudHMvdGltZXN0YW1wcyBiZWluZyBjb25zaXN0ZW50IAo+IGZvciBzaG9ydCBhbW91 bnRzIG9mIHRpbWUsIHR5cGljYWxseSAxIHZpZGVvIHJlZnJlc2ggZnJvbSB2YmxhbmsgcXVlcnkg Cj4gdG8gcXVldWVpbmcgYSB2YmxhbmsgZXZlbnQsIGFuZCB0aGVuIGZyb20gcmVjZXB0aW9uIG9m IHRoYXQgCj4gZXZlbnQvcXVldWluZyB0aGUgcGFnZWZsaXAgdG8gcGFnZWZsaXAgY29tcGxldGlv biBldmVudC4gU28gZXZlbiBpZiB0aGUgCj4gc3lzdGVtIHdvdWxkIGJlIGhlYXZpbHkgbG9hZGVk IGFuZCBteSBjb2RlIHdvdWxkIGhhdmUgYmlnIHByZWVtcHRpb24gCj4gZGVsYXlzIGkgdGhpbmsg Y291bnRzIHRoYXQgYXJlIGNvbnNpc3RlbnQgb3ZlciBhIGZldyBzZWNvbmRzIHdvdWxkIGJlIAo+ IGVub3VnaCB0byBrZWVwIHRoaW5ncyB3b3JraW5nLiBPdGhlcndpc2UgaXQgd291bGRuJ3Qgd29y ayBub3cgZWl0aGVyIAo+IHdpdGggYSB2Ymxhbmsgb2ZmIGFmdGVyIDUgc2Vjb25kcyBhbmQgbm91 dmVhdSBub3QgaGF2aW5nIHZibGFuayBodyBjb3VudGVycy4KPiAKPiAtbWFyaW8KPiAKPiAKPiA+ Pgo+ID4+IC1tYXJpbwo+ID4+Cj4gPj4KPiA+Pj4+Cj4gPj4+PiAtbWFyaW8KPiA+Pj4+Cj4gPj4+ Pj4+Cj4gPj4+Pj4+IEl0IGFsbW9zdCBzb3J0IG9mIHdvcmtzIG9uIHRoZSByczYwMCBjb2RlIHBh dGgsIGJ1dCBpIG5lZWQgYSBiaXQgb2YgaW5mbwo+ID4+Pj4+PiBmcm9tIHlvdToKPiA+Pj4+Pj4K PiA+Pj4+Pj4gMS4gVGhlcmUncyB0aGlzIHJlZ2lzdGVyIGZyb20gdGhlIG9sZCBzcGVjcyBmb3Ig bTc2LnBkZiwgd2hpY2ggaXMgbm90Cj4gPj4+Pj4+IHBhcnQgb2YgdGhlIGN1cnJlbnQgcmVnaXN0 ZXIgZGVmaW5lcyBmb3IgcmFkZW9uLWttczoKPiA+Pj4+Pj4KPiA+Pj4+Pj4gIkQxQ1JUQ19TVEFU VVNfVkZfQ09VTlQgLSBSVyAtIDMyIGJpdHMgLSBbR3B1RjBNTVJlZzoweDYwQThdIgo+ID4+Pj4+ Pgo+ID4+Pj4+PiBJdCBjb250YWlucyB0aGUgbG93ZXIgMTYgYml0cyBvZiBmcmFtZWNvdW50ZXIg YW5kIHRoZSAxMyBiaXRzIG9mCj4gPj4+Pj4+IHZlcnRpY2FsIHNjYW5vdXQgcG9zaXRpb24uIEl0 IHNlZW1zIHRvIGdpdmUgdGhlIHNhbWUgcmVhZGluZ3MgYXMgdGhlIDI0Cj4gPj4+Pj4+IGJpdCBS XzAwNjBBNF9EMUNSVENfU1RBVFVTX0ZSQU1FX0NPVU5UIHdlIHVzZSBmb3IgdGhlIGh3IGNvdW50 ZXIuIFRoaXMKPiA+Pj4+Pj4gd291bGQgY29tZSBoYW5keS4KPiA+Pj4+Pj4KPiA+Pj4+Pj4gRG9l cyBFdmVyZ3JlZW4gYW5kIGxhdGVyIGhhdmUgYSBzYW1lL3NpbWlsYXIgcmVnaXN0ZXIgYW5kIHdo ZXJlIGlzIGl0Pwo+ID4+Pj4+Pgo+ID4+Pj4+PiAyLiBUaGUgaHcgZnJhbWVjb3VudGVyIHNlZW1z IHRvIGluY3JlbWVudCB3aGVuIHRoZSB2ZXJ0aWNhbCBzY2Fub3V0Cj4gPj4+Pj4+IHBvc2l0aW9u IHdyYXBzIGJhY2sgZnJvbSAoVlRPVEFMIC0gMSkgdG8gMCwgYXQgbGVhc3Qgb24gdGhlIG9uZSBE Q0UtMwo+ID4+Pj4+PiBncHUgaSB0ZXN0ZWQgc28gZmFyLiBJcyB0aGlzIHNvIG9uIGFsbCBhc2lj cz8gQW5kIGlzIHRoZSBodyBjb3VudGVyCj4gPj4+Pj4+IGluY3JlbWVudCBoYXBwZW5pbmcgZXhh Y3RseSBhdCB0aGUgbW9tZW50IHRoYXQgdmVydGljYWwgc2Nhbm91dCBwb3NpdGlvbgo+ID4+Pj4+ PiBqdW1wcyBiYWNrIHRvIHplcm8sIGllLiBib3RoIGV2ZW50cyBhcmUgZHJpdmVuIGJ5IHRoZSBz YW1lIHNpZ25hbD8gT3IgaXMKPiA+Pj4+Pj4gdGhlIGZyYW1lY291bnRlciBpbmNyZW1lbnQganVz dCBoYXBwZW5pbmcgc29tZXdoZXJlIGluc2lkZSBlaXRoZXIKPiA+Pj4+Pj4gc2NhbmxpbmUgVlRP VEFMLTEgb3Igc2NhbmxpbmUgMD8KPiA+Pj4+Pj4KPiA+Pj4+Pj4KPiA+Pj4+Pj4gSWYgd2UgY2Fu IGZpeCB0aGlzIGFuZCBnZXQgaXQgaW50byByYzIgb3IgcmMzIHRoZW4gd2UgY291bGQgYXZvaWQg YSBiYWQKPiA+Pj4+Pj4gcmVncmVzc2lvbiBhbmQgd2l0aCBhIGJpdCBvZiBsdWNrIGF0IHRoZSBz YW1lIHRpbWUgaW1wcm92ZSBieSBiZWluZyBhYmxlCj4gPj4+Pj4+IHRvIHNldCBkZXYtPnZibGFu a19kaXNhYmxlX2ltbWVkaWF0ZSA9IHRydWUgdGhlbiBhbmQgYWxsb3cgdmJsYW5rIGlycXMKPiA+ Pj4+Pj4gdG8gZ2V0IHR1cm5lZCBvZmYgbW9yZSBhZ2dyZXNzaXZlbHkgZm9yIGEgYml0IG9mIGV4 dHJhIHBvd2VyIHNhdmluZy4KPiA+Pj4+Pj4KPiA+Pj4+Pj4gdGhhbmtzLAo+ID4+Pj4+PiAtbWFy aW8KPiA+Pj4+Pgo+ID4+Pj4+PiAtLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMKPiA+Pj4+ Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYwo+ID4+Pj4+PiBAQCAtMTcyLDkgKzE3 MiwxMSBAQCBzdGF0aWMgdm9pZCBkcm1fdXBkYXRlX3ZibGFua19jb3VudChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKPiA+Pj4+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFncykKPiA+Pj4+Pj4gICAgIHsK PiA+Pj4+Pj4gICAgICAgICAgICBzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSAmZGV2 LT52YmxhbmtbcGlwZV07Cj4gPj4+Pj4+IC0gICAgICAgdTMyIGN1cl92YmxhbmssIGRpZmY7Cj4g Pj4+Pj4+ICsgICAgICAgdTMyIGN1cl92YmxhbmssIGRpZmYgPSAwOwo+ID4+Pj4+PiAgICAgICAg ICAgIGJvb2wgcmM7Cj4gPj4+Pj4+ICAgICAgICAgICAgc3RydWN0IHRpbWV2YWwgdF92Ymxhbms7 Cj4gPj4+Pj4+ICsgICAgICAgY29uc3Qgc3RydWN0IHRpbWV2YWwgKnRfb2xkOwo+ID4+Pj4+PiAr ICAgICAgIHU2NCBkaWZmX25zOwo+ID4+Pj4+PiAgICAgICAgICAgIGludCBjb3VudCA9IERSTV9U SU1FU1RBTVBfTUFYUkVUUklFUzsKPiA+Pj4+Pj4gICAgICAgICAgICBpbnQgZnJhbWVkdXJfbnMg PSB2YmxhbmstPmZyYW1lZHVyX25zOwo+ID4+Pj4+Pgo+ID4+Pj4+PiBAQCAtMTk1LDEzICsxOTcs MTUgQEAgc3RhdGljIHZvaWQgZHJtX3VwZGF0ZV92YmxhbmtfY291bnQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCj4gPj4+Pj4+ICAgICAgICAgICAgICAgICAgICBy YyA9IGRybV9nZXRfbGFzdF92Ymx0aW1lc3RhbXAoZGV2LCBwaXBlLCAmdF92YmxhbmssIGZsYWdz KTsKPiA+Pj4+Pj4gICAgICAgICAgICB9IHdoaWxlIChjdXJfdmJsYW5rICE9IGRldi0+ZHJpdmVy LT5nZXRfdmJsYW5rX2NvdW50ZXIoZGV2LCBwaXBlKSAmJiAtLWNvdW50ID4gMCk7Cj4gPj4+Pj4+ Cj4gPj4+Pj4+IC0gICAgICAgaWYgKGRldi0+bWF4X3ZibGFua19jb3VudCAhPSAwKSB7Cj4gPj4+ Pj4+IC0gICAgICAgICAgICAgICAvKiB0cnVzdCB0aGUgaHcgY291bnRlciB3aGVuIGl0J3MgYXJv dW5kICovCj4gPj4+Pj4+IC0gICAgICAgICAgICAgICBkaWZmID0gKGN1cl92YmxhbmsgLSB2Ymxh bmstPmxhc3QpICYgZGV2LT5tYXhfdmJsYW5rX2NvdW50Owo+ID4+Pj4+PiAtICAgICAgIH0gZWxz ZSBpZiAocmMgJiYgZnJhbWVkdXJfbnMpIHsKPiA+Pj4+Pj4gLSAgICAgICAgICAgICAgIGNvbnN0 IHN0cnVjdCB0aW1ldmFsICp0X29sZDsKPiA+Pj4+Pj4gLSAgICAgICAgICAgICAgIHU2NCBkaWZm X25zOwo+ID4+Pj4+PiAtCj4gPj4+Pj4+ICsgICAgICAgLyoKPiA+Pj4+Pj4gKyAgICAgICAgKiBB bHdheXMgdXNlIHZibGFuayB0aW1lc3RhbXBpbmcgYmFzZWQgbWV0aG9kIGlmIHN1cHBvcnRlZCB0 byByZWplY3QKPiA+Pj4+Pj4gKyAgICAgICAgKiByZWR1bmRhbnQgdmJsYW5rIGlycXMuIEUuZy4s IEFNRCBoYXJkd2FyZSBuZWVkcyB0aGlzIHRvIG5vdCBzY3JldyB1cAo+ID4+Pj4+PiArICAgICAg ICAqIGR1ZSB0byBzb21lIGlycSBoYW5kbGluZyBxdWlyay4KPiA+Pj4+Pgo+ID4+Pj4+IEhtbS4g SSdtIHRoaW5raW5nIGl0IHdvdWxkIGJlIGJldHRlciB0byBzaW1wbHkgbm90IGNsYWltIHRoYXQg dGhlcmUncyBhIGh3Cj4gPj4+Pj4gY291bnRlciBpZiBpdCBpc24ndCByZWxpYWJsZS4KPiA+Pj4+ Pgo+ID4+Pj4+PiArICAgICAgICAqCj4gPj4+Pj4+ICsgICAgICAgICogVGhpcyBhbHNvIHNldHMg dGhlIGRpZmYgdmFsdWUgZm9yIHVzZSBhcyBmYWxsYmFjayBiZWxvdyBpbiBjYXNlIHRoZQo+ID4+ Pj4+PiArICAgICAgICAqIGh3IGRvZXMgbm90IHN1cHBvcnQgYSBzdWl0YWJsZSBodyB2Ymxhbmsg Y291bnRlci4KPiA+Pj4+Pj4gKyAgICAgICAgKi8KPiA+Pj4+Pj4gKyAgICAgICBpZiAocmMgJiYg ZnJhbWVkdXJfbnMpIHsKPiA+Pj4+Pj4gICAgICAgICAgICAgICAgICAgIHRfb2xkID0gJnZibGFu a3RpbWVzdGFtcChkZXYsIHBpcGUsIHZibGFuay0+Y291bnQpOwo+ID4+Pj4+PiAgICAgICAgICAg ICAgICAgICAgZGlmZl9ucyA9IHRpbWV2YWxfdG9fbnMoJnRfdmJsYW5rKSAtIHRpbWV2YWxfdG9f bnModF9vbGQpOwo+ID4+Pj4+Pgo+ID4+Pj4+PiBAQCAtMjEyLDExICsyMTYsMjggQEAgc3RhdGlj IHZvaWQgZHJtX3VwZGF0ZV92YmxhbmtfY291bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5z aWduZWQgaW50IHBpcGUsCj4gPj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgKi8KPiA+Pj4+Pj4g ICAgICAgICAgICAgICAgICAgIGRpZmYgPSBESVZfUk9VTkRfQ0xPU0VTVF9VTEwoZGlmZl9ucywg ZnJhbWVkdXJfbnMpOwo+ID4+Pj4+Pgo+ID4+Pj4+PiAtICAgICAgICAgICAgICAgaWYgKGRpZmYg PT0gMCAmJiBmbGFncyAmIERSTV9DQUxMRURfRlJPTV9WQkxJUlEpCj4gPj4+Pj4+IC0gICAgICAg ICAgICAgICAgICAgICAgIERSTV9ERUJVR19WQkwoImNydGMgJXU6IFJlZHVuZGFudCB2YmxpcnEg aWdub3JlZC4iCj4gPj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IiBkaWZmX25zID0gJWxsZCwgZnJhbWVkdXJfbnMgPSAlZClcbiIsCj4gPj4+Pj4+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlwZSwgKGxvbmcgbG9uZykgZGlmZl9ucywg ZnJhbWVkdXJfbnMpOwo+ID4+Pj4+PiAtICAgICAgIH0gZWxzZSB7Cj4gPj4+Pj4+ICsgICAgICAg ICAgICAgICBpZiAoZGlmZiA9PSAwICYmIGZsYWdzICYgRFJNX0NBTExFRF9GUk9NX1ZCTElSUSkg ewo+ID4+Pj4+PiArICAgICAgICAgICAgICAgICAgIERSTV9ERUJVR19WQkwoImNydGMgJXU6IFJl ZHVuZGFudCB2YmxpcnEgaWdub3JlZC4iCj4gPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgIiBk aWZmX25zID0gJWxsZCwgZnJhbWVkdXJfbnMgPSAlZClcbiIsCj4gPj4+Pj4+ICsgICAgICAgICAg ICAgICAgICAgcGlwZSwgKGxvbmcgbG9uZykgZGlmZl9ucywgZnJhbWVkdXJfbnMpOwo+ID4+Pj4+ PiArCj4gPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgLyogVHJlYXQgdGhpcyByZWR1bmRhbnQg aW52b2NhdGlvbiBhcyBuby1vcC4gKi8KPiA+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICBXQVJO X09OX09OQ0UoY3VyX3ZibGFuayAhPSB2YmxhbmstPmxhc3QpOwo+ID4+Pj4+PiArICAgICAgICAg ICAgICAgICAgIHJldHVybjsKPiA+Pj4+Pj4gKyAgICAgICAgICAgICAgIH0KPiA+Pj4+Pj4gKyAg ICAgICB9Cj4gPj4+Pj4+ICsKPiA+Pj4+Pj4gKyAgICAgICAvKgo+ID4+Pj4+PiArICAgICAgICAq IGh3IGNvdW50ZXJzLCBpZiBtYXJrZWQgYXMgc3VwcG9ydGVkIHZpYSBtYXhfdmJsYW5rX2NvdW50 ICE9IDAsCj4gPj4+Pj4+ICsgICAgICAgICogKm11c3QqIGluY3JlbWVudCBhdCBsZWFkaW5nIGVk Z2Ugb2YgdmJsYW5rIGFuZCBpbiBzeW5jIHdpdGgKPiA+Pj4+Pj4gKyAgICAgICAgKiB0aGUgZmly aW5nIG9mIHRoZSBodyB2YmxhbmsgaXJxLCBvdGhlcndpc2Ugd2UgaGF2ZSBhIHJhY2UgaGVyZQo+ ID4+Pj4+PiArICAgICAgICAqIGJldHdlZW4gZ3B1IGFuZCB1cywgd2hlcmUgc21hbGwgdmFyaWF0 aW9ucyBpbiBvdXIgZXhlY3V0aW9uCj4gPj4+Pj4+ICsgICAgICAgICogdGltaW5nIGNhbiBjYXVz ZSBvZmYtYnktb25lIG1pc2NvdW50aW5nIG9mIHZibGFua3MuCj4gPj4+Pj4+ICsgICAgICAgICov Cj4gPj4+Pj4+ICsgICAgICAgaWYgKGRldi0+bWF4X3ZibGFua19jb3VudCAhPSAwKSB7Cj4gPj4+ Pj4+ICsgICAgICAgICAgICAgICAvKiB0cnVzdCB0aGUgaHcgY291bnRlciB3aGVuIGl0J3MgYXJv dW5kICovCj4gPj4+Pj4+ICsgICAgICAgICAgICAgICBkaWZmID0gKGN1cl92YmxhbmsgLSB2Ymxh bmstPmxhc3QpICYgZGV2LT5tYXhfdmJsYW5rX2NvdW50Owo+ID4+Pj4+PiArICAgICAgIH0gZWxz ZSBpZiAoIShyYyAmJiBmcmFtZWR1cl9ucykpIHsKPiA+Pj4+Pj4gICAgICAgICAgICAgICAgICAg IC8qIHNvbWUga2luZCBvZiBkZWZhdWx0IGZvciBkcml2ZXJzIHcvbyBhY2N1cmF0ZSB2YmwgdGlt ZXN0YW1waW5nICovCj4gPj4+Pj4+ICAgICAgICAgICAgICAgICAgICBkaWZmID0gKGZsYWdzICYg RFJNX0NBTExFRF9GUk9NX1ZCTElSUSkgIT0gMDsKPiA+Pj4+Pj4gICAgICAgICAgICB9Cj4gPj4+ Pj4KPiA+Pj4+Pgo+ID4+Pgo+ID4KCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==