From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm: Add timestamp of last modification to GETCONNECTOR ioctl Date: Fri, 21 Oct 2016 18:55:45 +0200 Message-ID: <20161021165545.GL20761@phenom.ffwll.local> References: <20161021131736.GM25629@nuc-i3427.alporthouse.com> <20161021134212.28311-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id C526B6ED8A for ; Fri, 21 Oct 2016 16:55:49 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id d199so387745wmd.1 for ; Fri, 21 Oct 2016 09:55:49 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20161021134212.28311-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Chris Wilson Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBPY3QgMjEsIDIwMTYgYXQgMDI6NDI6MTJQTSArMDEwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IEFmdGVyIGhvdHBsdWcgbm90aWZpY2F0aW9uLCB1c2Vyc3BhY2UgaGFzIHRvIHJlcHJv YmUgYWxsIGNvbm5lY3RvcnMgdG8KPiBkZXRlY3QgYW55IGNoYW5nZXMuIFRoaXMgY2FuIGJlIGV4 cGVuc2l2ZSAoc29tZSBvdXRwdXRzIG1heSByZXF1aXJlIHRpbWUKPiBjb25zdW1pbmcgbG9hZCBk ZXRlY3Rpb24sIHNvbWUgb3V0cHV0cyBtYXkgc2ltcGx5IGJlIHNsb3cgdG8gcmVzcG9uZCkKPiBh bmQgbm90IGFsbCBvdXRwdXRzIG5lZWQgdG8gYmUgY2hlY2tlZCBldmVyeXRpbWUuIFRoZSBrZXJu ZWwgaXMgdXN1YWxseQo+IGluIGEgdmVyeSBnb29kIHBvc2l0aW9uIHRvIGtub3cgd2hpY2ggb3V0 cHV0cyBuZWVkIHRvIGJlIHJlcHJvYmVkIChzaW5jZQo+IGl0IGhhcyBqdXN0IHJlc3BvbmRlZCB0 byB0aGUgaGFyZHdhcmUgbm90aWZpY2F0aW9uKSBhbmQgY2FuIGNvbnZleSB0aGlzCj4gaW5mb3Jt YXRpb24gdG8gdXNlcnNwYWNlIGJ5IHRyYWNraW5nIHRoZSB0aW1lc3RhbXAgb2YgdGhlIGxhc3Qg Y29ubmVjdG9yCj4gY2hhbmdlIG9udG8gdGhlIEdFVENPTk5FQ1RPUiBxdWVyeS4KPiAKPiBTaWdu ZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAtLS0K PiBBZGRpbmcgYW4gZXBvY2gvdGltZXN0YW1wIGZpZWxkIHdvdWxkIGxvb2sgc29tZXRoaW5nIGxp a2UgdGhpcy4gVGhlcmUgYXJlCj4gcHJvYmFibHkgYSBmZXcgbW9yZSBwbGFjZXMgd2hlcmUgdGhl IGhhcmR3YXJlIGluZGljYXRlcyBhIHJlYWwgY2hhbmdlCj4gKG1vcmUgdGhhbiBqdXN0IHN0YXR1 cykuCj4gCj4gVGhhdCB1cGRhdGVfdGltZXN0YW1wKCkgc2hvdWxkIHByb2JhYmx5IGJlCj4gCWF0 b21pYzY0X3NldCgmdGltZXN0YW1wLCBrdGltZV9nZXRfbnMoKSk7CgpIbSwgSSB0aG91Z2h0IHdl J2QganVzdCBhZGQgYSBuZXcgZXBvY2ggcHJvcGVydHksIGF0dGFjaCBpdCB0byBldmVyeQpjb25u ZWN0b3IsIGFuZCB1c2Vyc3BhY2Ugd291bGQgaW5xdWlyZSBhYm91dCBpdCB1c2luZwpEUk1fSU9D VExfTU9ERV9PQkpfR0VUUFJPUEVSVElFUy4KClRoZSBvbmx5IG5pdHBpY2svcG9saXNoIHdvdWxk IGJlIHRvIGF1ZGl0CmRybV9tb2RlX29ial9nZXRfcHJvcGVydGllc19pb2N0bCBhbmQgZmlndXJl IG91dCBob3cgbXVjaCBsb2NraW5nIGl0CnJlYWxseSBuZWVkcyAocHJvYmFibHkgYWxtb3N0IG5v dGhpbmcgYXQgYWxsKS4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMg ICAgICAgICAgICAgfCAgNCArKystCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jICAgICAg ICAgICAgICAgICAgfCAgNCArKystCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVy LmMgICAgICAgICAgfCAgNiArKysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9tZGZsZF9k c2lfZHBpLmMgICAgICB8ICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9tZGZsZF9kc2lf b3V0cHV0LmMgICB8ICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAg ICAgICAgICB8ICA0ICsrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMg ICAgICAgICB8ICAyICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hvdHBsdWcuYyAg ICAgICAgfCAgNSArKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMgICAg ICAgICAgIHwgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Nvbm5lY3Rv ci5jIHwgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9sZHUuYyAgICAgICAg IHwgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zY3JuLmMgICAgICAgIHwg IDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMgICAgICAgIHwgIDEg Kwo+ICBpbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggICAgICAgICAgICAgICAgIHwgIDggKysr KysrKysKPiAgaW5jbHVkZS91YXBpL2RybS9kcm0uaCAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCj4gIGluY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCAgICAgICAgICAgICAgICAgfCAyNiAr KysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAxNiBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNlcnRp b25zKCspLCA1IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+IGluZGV4 IDJkYjdmYjUxMGI2Yy4uY2QzZDg1ZTk0YjkxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fY29ubmVjdG9yLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5j Cj4gQEAgLTIyNyw2ICsyMjcsNyBAQCBpbnQgZHJtX2Nvbm5lY3Rvcl9pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gIAlJTklUX0xJU1RfSEVBRCgmY29ubmVjdG9yLT5tb2Rlcyk7Cj4gIAlj b25uZWN0b3ItPmVkaWRfYmxvYl9wdHIgPSBOVUxMOwo+ICAJY29ubmVjdG9yLT5zdGF0dXMgPSBj b25uZWN0b3Jfc3RhdHVzX3Vua25vd247Cj4gKwlkcm1fY29ubmVjdG9yX3VwZGF0ZV90aW1lc3Rh bXAoY29ubmVjdG9yKTsKPiAgCj4gIAlkcm1fY29ubmVjdG9yX2dldF9jbWRsaW5lX21vZGUoY29u bmVjdG9yKTsKPiAgCj4gQEAgLTEwMTAsNyArMTAxMSw3IEBAIHN0YXRpYyBib29sIGRybV9tb2Rl X2V4cG9zZV90b191c2Vyc3BhY2UoY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUs Cj4gIGludCBkcm1fbW9kZV9nZXRjb25uZWN0b3Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9p ZCAqZGF0YSwKPiAgCQkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKPiAgewo+IC0Jc3Ry dWN0IGRybV9tb2RlX2dldF9jb25uZWN0b3IgKm91dF9yZXNwID0gZGF0YTsKPiArCXN0cnVjdCBk cm1fbW9kZV9nZXRfY29ubmVjdG9yX3YyICpvdXRfcmVzcCA9IGRhdGE7Cj4gIAlzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ICAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwo+ ICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7Cj4gQEAgLTEwNTgsNiArMTA1OSw3IEBA IGludCBkcm1fbW9kZV9nZXRjb25uZWN0b3Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAq ZGF0YSwKPiAgCW91dF9yZXNwLT5tbV9oZWlnaHQgPSBjb25uZWN0b3ItPmRpc3BsYXlfaW5mby5o ZWlnaHRfbW07Cj4gIAlvdXRfcmVzcC0+c3VicGl4ZWwgPSBjb25uZWN0b3ItPmRpc3BsYXlfaW5m by5zdWJwaXhlbF9vcmRlcjsKPiAgCW91dF9yZXNwLT5jb25uZWN0aW9uID0gY29ubmVjdG9yLT5z dGF0dXM7Cj4gKwlvdXRfcmVzcC0+dGltZXN0YW1wID0ga3RpbWVfdG9fbnMoY29ubmVjdG9yLT50 aW1lc3RhbXApOwo+ICAKPiAgCWRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9jb25maWcuY29u bmVjdGlvbl9tdXRleCwgTlVMTCk7Cj4gIAllbmNvZGVyID0gZHJtX2Nvbm5lY3Rvcl9nZXRfZW5j b2Rlcihjb25uZWN0b3IpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMu YyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj4gaW5kZXggNzg4ZDZjZGM0OWEwLi44NjY4 ZTk1YmI1YjEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwo+IEBAIC05NDksOSArOTQ5LDExIEBAIHZvaWQg ZHJtX21vZGVfY29uZmlnX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJCWVuY29k ZXItPmZ1bmNzLT5yZXNldChlbmNvZGVyKTsKPiAgCj4gIAltdXRleF9sb2NrKCZkZXYtPm1vZGVf Y29uZmlnLm11dGV4KTsKPiAtCWRybV9mb3JfZWFjaF9jb25uZWN0b3IoY29ubmVjdG9yLCBkZXYp Cj4gKwlkcm1fZm9yX2VhY2hfY29ubmVjdG9yKGNvbm5lY3RvciwgZGV2KSB7Cj4gKwkJZHJtX2Nv bm5lY3Rvcl91cGRhdGVfdGltZXN0YW1wKGNvbm5lY3Rvcik7Cj4gIAkJaWYgKGNvbm5lY3Rvci0+ ZnVuY3MtPnJlc2V0KQo+ICAJCQljb25uZWN0b3ItPmZ1bmNzLT5yZXNldChjb25uZWN0b3IpOwo+ ICsJfQo+ICAJbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKPiAgfQo+ICBF WFBPUlRfU1lNQk9MKGRybV9tb2RlX2NvbmZpZ19yZXNldCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3Byb2Jl X2hlbHBlci5jCj4gaW5kZXggODc5MGVlMzVhN2NkLi40YjY4ODJlZGMzZmIgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fcHJvYmVfaGVscGVyLmMKPiBAQCAtMjQ5LDYgKzI0OSw3IEBAIGludCBkcm1faGVs cGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciwKPiAgCSAqIGNoZWNrIGhlcmUsIGFuZCBpZiBhbnl0aGluZyBjaGFuZ2VkIHN0YXJ0 IHRoZSBob3RwbHVnIGNvZGUuCj4gIAkgKi8KPiAgCWlmIChvbGRfc3RhdHVzICE9IGNvbm5lY3Rv ci0+c3RhdHVzKSB7Cj4gKwkJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfdGltZXN0YW1wKGNvbm5lY3Rv cik7Cj4gIAkJRFJNX0RFQlVHX0tNUygiW0NPTk5FQ1RPUjolZDolc10gc3RhdHVzIHVwZGF0ZWQg ZnJvbSAlcyB0byAlc1xuIiwKPiAgCQkJICAgICAgY29ubmVjdG9yLT5iYXNlLmlkLAo+ICAJCQkg ICAgICBjb25uZWN0b3ItPm5hbWUsCj4gQEAgLTQzOCw2ICs0MzksNyBAQCBzdGF0aWMgdm9pZCBv dXRwdXRfcG9sbF9leGVjdXRlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAgCQkJCSAgICAg IGNvbm5lY3Rvci0+bmFtZSwKPiAgCQkJCSAgICAgIG9sZCwgbmV3KTsKPiAgCj4gKwkJCWRybV9j b25uZWN0b3JfdXBkYXRlX3RpbWVzdGFtcChjb25uZWN0b3IpOwo+ICAJCQljaGFuZ2VkID0gdHJ1 ZTsKPiAgCQl9Cj4gIAl9Cj4gQEAgLTU3Myw4ICs1NzUsMTAgQEAgYm9vbCBkcm1faGVscGVyX2hw ZF9pcnFfZXZlbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQkJICAgICAgY29ubmVjdG9y LT5uYW1lLAo+ICAJCQkgICAgICBkcm1fZ2V0X2Nvbm5lY3Rvcl9zdGF0dXNfbmFtZShvbGRfc3Rh dHVzKSwKPiAgCQkJICAgICAgZHJtX2dldF9jb25uZWN0b3Jfc3RhdHVzX25hbWUoY29ubmVjdG9y LT5zdGF0dXMpKTsKPiAtCQlpZiAob2xkX3N0YXR1cyAhPSBjb25uZWN0b3ItPnN0YXR1cykKPiAr CQlpZiAob2xkX3N0YXR1cyAhPSBjb25uZWN0b3ItPnN0YXR1cykgewo+ICsJCQlkcm1fY29ubmVj dG9yX3VwZGF0ZV90aW1lc3RhbXAoY29ubmVjdG9yKTsKPiAgCQkJY2hhbmdlZCA9IHRydWU7Cj4g KwkJfQo+ICAJfQo+ICAKPiAgCW11dGV4X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7 CgpJIHRoaW5rIHdpdGggdGhlIGFib3ZlIHVwZGF0ZXMgaW4gcHJvYmUgaGVscGVycyBhbmQgX2lu aXQgeW91IGRvbid0IHJlYWxseQpuZWVkIGFueSBvZiB0aGUgYmVsb3cgaW4gZWl0aGVyIGRyaXZl ciBpbml0IG9yIHByb2JlIGNvZGUuIEFueXRoaW5nIGluCmRyaXZlciBsb2FkIGNvZGUgaXNuJ3Qg bmVlZGVkIGFueXdheSBzaW5jZSB3aXRoIHByb3BlciBsb2FkIG9yZGVyaW5nCnVzZXJzcGFjZSBj YW4ndCBzZWUgdGhlIGNvbm5lY3RvciBiZWZvcmUgaXQncyBmaW5hbGl6ZWQuCgpPbmUgYWRkaXRp b25hbCBvbmUgd2hpY2ggd2UgcHJvYmFibHkgd2FudCBpcyBpbiB0aGUgZWRpZCB1cGRhdGUgZnVu Y3Rpb24sCnRvIGNhdGNoIGFueSBjaGFuZ2VzIGluIGVkaWQuIFBsdXMgbWF5YmUgdGhlIHNhbWUg dGhpbmcgaW4gdGhlIGVsZAp1cGRhdGVyIChhbHRob3VnaCB0aGF0J3MganVzdCBkZXJpdmVkLCBi dXQgeW91IG5ldmVyIGtub3cgLi4uKS4KCk9mIGNvdXJzZSB3ZSdsbCBzdGlsbCBuZWVkIGFkZGl0 aW9uYWwgY2FsbHMgKGluIHNob3J0IHB1bHNlIGhhbmRsZXJzIG9yCndoZXJldmVyKSwgYnV0IHRo YXQgc2hvdWxkIHJlZHVjZSB0aGUgbmVlZCBmb3IgdGhlbSBhIGxvdC4KCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvbWRmbGRfZHNpX2RwaS5jIGIvZHJpdmVycy9ncHUvZHJt L2dtYTUwMC9tZGZsZF9kc2lfZHBpLmMKPiBpbmRleCBhMDVjMDIwNjAyYmQuLjg5ODBkN2EwOGM1 ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL21kZmxkX2RzaV9kcGkuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvbWRmbGRfZHNpX2RwaS5jCj4gQEAgLTk3MSw2 ICs5NzEsNyBAQCBzdHJ1Y3QgbWRmbGRfZHNpX2VuY29kZXIgKm1kZmxkX2RzaV9kcGlfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQlEUk1fSU5GTygicGlwZSAlZCBwb3dlciBtb2Rl IDB4JXhcbiIsIHBpcGUsIGRhdGEpOwo+ICAJCQlkc2lfY29ubmVjdG9yLT5zdGF0dXMgPSBjb25u ZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZDsKPiAgCQl9Cj4gKwkJZHJtX2Nvbm5lY3Rvcl91cGRhdGVf dGltZXN0YW1wKGNvbm5lY3Rvcik7Cj4gIAl9Cj4gIAo+ICAJZHBpX291dHB1dCA9IGt6YWxsb2Mo c2l6ZW9mKHN0cnVjdCBtZGZsZF9kc2lfZHBpX291dHB1dCksIEdGUF9LRVJORUwpOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL21kZmxkX2RzaV9vdXRwdXQuYyBiL2RyaXZl cnMvZ3B1L2RybS9nbWE1MDAvbWRmbGRfZHNpX291dHB1dC5jCj4gaW5kZXggYWNiMzg0OGVmMWM5 Li5mMjg4ZDlhYzliMTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9tZGZs ZF9kc2lfb3V0cHV0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL21kZmxkX2RzaV9v dXRwdXQuYwo+IEBAIC0yMzgsNiArMjM4LDcgQEAgbWRmbGRfZHNpX2Nvbm5lY3Rvcl9kZXRlY3Qo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiAgCQk9IG1kZmxk X2RzaV9jb25uZWN0b3IoY29ubmVjdG9yKTsKPiAgCj4gIAlkc2lfY29ubmVjdG9yLT5zdGF0dXMg PSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZDsKPiArCWRybV9jb25uZWN0b3JfdXBkYXRlX3Rp bWVzdGFtcChjb25uZWN0b3IpOwo+ICAKPiAgCXJldHVybiBkc2lfY29ubmVjdG9yLT5zdGF0dXM7 Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBpbmRleCA1OWNkMTg1Njg5YzAuLjU2ZmNj NzM4ZWRjMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IEBAIC0zOTgwLDYgKzM5ODAs MTAgQEAgaW50ZWxfZHBfY2hlY2tfbXN0X3N0YXR1cyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQo+ICAJCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgdG8gZ2V0IEVTSSAtIGRldmljZSBtYXkgaGF2 ZSBmYWlsZWRcbiIpOwo+ICAJCQlpbnRlbF9kcC0+aXNfbXN0ID0gZmFsc2U7Cj4gIAkJCWRybV9k cF9tc3RfdG9wb2xvZ3lfbWdyX3NldF9tc3QoJmludGVsX2RwLT5tc3RfbWdyLCBpbnRlbF9kcC0+ aXNfbXN0KTsKPiArCj4gKwkJCWlmIChpbnRlbF9kcC0+YXR0YWNoZWRfY29ubmVjdG9yKQo+ICsJ CQkJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfdGltZXN0YW1wKCZpbnRlbF9kcC0+YXR0YWNoZWRfY29u bmVjdG9yLT5iYXNlKTsKPiArCj4gIAkJCS8qIHNlbmQgYSBob3RwbHVnIGV2ZW50ICovCj4gIAkJ CWRybV9rbXNfaGVscGVyX2hvdHBsdWdfZXZlbnQoaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5k ZXYsCj4gIAkJCQkJCSAgICAgJmludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3ItPmJhc2UpOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gaW5kZXggMmJkNDhhOTg3OTM0Li5kNjZl NTc2ZWZmODMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0 LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+IEBAIC00OTMs NiArNDkzLDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfbXN0X2hvdHBsdWcoc3RydWN0IGRybV9k cF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IpCj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpp bnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKPiAgCj4gKwlpZiAo aW50ZWxfZHAtPmF0dGFjaGVkX2Nvbm5lY3RvcikKPiArCQlkcm1fY29ubmVjdG9yX3VwZGF0ZV90 aW1lc3RhbXAoJmludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3ItPmJhc2UpOwo+ICAJZHJtX2tt c19oZWxwZXJfaG90cGx1Z19ldmVudChkZXYsICZpbnRlbF9kcC0+YXR0YWNoZWRfY29ubmVjdG9y LT5iYXNlKTsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfaG90cGx1Zy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jCj4gaW5k ZXggZGEwNjQ5YWZmNzM0Li5mM2MyNzQ3YmUxODMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfaG90cGx1Zy5jCj4gQEAgLTIzOCw2ICsyMzgsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9ocGRf aXJxX2V2ZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlpZiAob2xkX3N0YXR1cyA9PSBj b25uZWN0b3ItPnN0YXR1cykKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+ICsJZHJtX2Nvbm5lY3Rv cl91cGRhdGVfdGltZXN0YW1wKGNvbm5lY3Rvcik7Cj4gIAlEUk1fREVCVUdfS01TKCJbQ09OTkVD VE9SOiVkOiVzXSBzdGF0dXMgdXBkYXRlZCBmcm9tICVzIHRvICVzXG4iLAo+ICAJCSAgICAgIGNv bm5lY3Rvci0+YmFzZS5pZCwKPiAgCQkgICAgICBjb25uZWN0b3ItPm5hbWUsCj4gQEAgLTMzMyw4 ICszMzQsMTAgQEAgc3RhdGljIHZvaWQgaTkxNV9ob3RwbHVnX3dvcmtfZnVuYyhzdHJ1Y3Qgd29y a19zdHJ1Y3QgKndvcmspCj4gIAkJCQkgICAgICBjb25uZWN0b3ItPm5hbWUsIGludGVsX2VuY29k ZXItPmhwZF9waW4pOwo+ICAJCQlpZiAoaW50ZWxfZW5jb2Rlci0+aG90X3BsdWcpCj4gIAkJCQlp bnRlbF9lbmNvZGVyLT5ob3RfcGx1ZyhpbnRlbF9lbmNvZGVyKTsKPiAtCQkJaWYgKGludGVsX2hw ZF9pcnFfZXZlbnQoZGV2LCBjb25uZWN0b3IpKQo+ICsJCQlpZiAoaW50ZWxfaHBkX2lycV9ldmVu dChkZXYsIGNvbm5lY3RvcikpIHsKPiArCQkJCWRybV9jb25uZWN0b3JfdXBkYXRlX3RpbWVzdGFt cChjb25uZWN0b3IpOwo+ICAJCQkJY2hhbmdlZCA9IHRydWU7Cj4gKwkJCX0KPiAgCQl9Cj4gIAl9 Cj4gIAltdXRleF91bmxvY2soJm1vZGVfY29uZmlnLT5tdXRleCk7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2x2ZHMuYwo+IGluZGV4IDE5OWI5MGM3OTA3YS4uMjdmNzA0NDMwMGZmIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2x2ZHMuYwo+IEBAIC01NDUsNiArNTQ1LDcgQEAgc3RhdGljIGludCBp bnRlbF9saWRfbm90aWZ5KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcg dmFsLAo+ICAJICogdGhlIExJRCBub2ZpY2F0aW9uIGV2ZW50Lgo+ICAJICovCj4gIAljb25uZWN0 b3ItPnN0YXR1cyA9IGNvbm5lY3Rvci0+ZnVuY3MtPmRldGVjdChjb25uZWN0b3IsIGZhbHNlKTsK PiArCWRybV9jb25uZWN0b3JfdXBkYXRlX3RpbWVzdGFtcChjb25uZWN0b3IpOwo+ICAKPiAgCS8q IERvbid0IGZvcmNlIG1vZGVzZXQgb24gbWFjaGluZXMgd2hlcmUgaXQgY2F1c2VzIGEgR1BVIGxv Y2t1cCAqLwo+ICAJaWYgKGRtaV9jaGVja19zeXN0ZW0oaW50ZWxfbm9fbW9kZXNldF9vbl9saWQp KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Nvbm5lY3Rv ci5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9jb25uZWN0b3IuYwo+IGluZGV4 IGMxMDg0MDg4ZjllNC4uNDdlZTQ4NDg5Y2YzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L25vdXZlYXVfY29ubmVjdG9yLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9ub3V2ZWF1X2Nvbm5lY3Rvci5jCj4gQEAgLTQ1NSw2ICs0NTUsNyBAQCBub3V2ZWF1X2Nv bm5lY3Rvcl9mb3JjZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAJCU5WX0VS Uk9SKGRybSwgImNhbid0IGZpbmQgZW5jb2RlciB0byBmb3JjZSAlcyBvbiFcbiIsCj4gIAkJCSBj b25uZWN0b3ItPm5hbWUpOwo+ICAJCWNvbm5lY3Rvci0+c3RhdHVzID0gY29ubmVjdG9yX3N0YXR1 c19kaXNjb25uZWN0ZWQ7Cj4gKwkJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfdGltZXN0YW1wKGNvbm5l Y3Rvcik7Cj4gIAkJcmV0dXJuOwo+ICAJfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfbGR1LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9s ZHUuYwo+IGluZGV4IDYxYTNjY2UwOGRmZS4uNDUwMDcyM2NjODU2IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2xkdS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfbGR1LmMKPiBAQCAtMzYzLDYgKzM2Myw3IEBAIHN0YXRpYyBpbnQgdm13 X2xkdV9pbml0KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsIHVuc2lnbmVkIHVuaXQpCj4g IAlkcm1fY29ubmVjdG9yX2luaXQoZGV2LCBjb25uZWN0b3IsICZ2bXdfbGVnYWN5X2Nvbm5lY3Rv cl9mdW5jcywKPiAgCQkJICAgRFJNX01PREVfQ09OTkVDVE9SX1ZJUlRVQUwpOwo+ICAJY29ubmVj dG9yLT5zdGF0dXMgPSB2bXdfZHVfY29ubmVjdG9yX2RldGVjdChjb25uZWN0b3IsIHRydWUpOwo+ ICsJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfdGltZXN0YW1wKGNvbm5lY3Rvcik7Cj4gIAo+ICAJZHJt X2VuY29kZXJfaW5pdChkZXYsIGVuY29kZXIsICZ2bXdfbGVnYWN5X2VuY29kZXJfZnVuY3MsCj4g IAkJCSBEUk1fTU9ERV9FTkNPREVSX1ZJUlRVQUwsIE5VTEwpOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zY3JuLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9zY3JuLmMKPiBpbmRleCA1NzNjNzQwN2MzMmMuLmFjZDc5ZTBlZGY1YSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zY3JuLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zY3JuLmMKPiBAQCAtNTI0LDYgKzUyNCw3IEBAIHN0 YXRpYyBpbnQgdm13X3NvdV9pbml0KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsIHVuc2ln bmVkIHVuaXQpCj4gIAlkcm1fY29ubmVjdG9yX2luaXQoZGV2LCBjb25uZWN0b3IsICZ2bXdfc291 X2Nvbm5lY3Rvcl9mdW5jcywKPiAgCQkJICAgRFJNX01PREVfQ09OTkVDVE9SX1ZJUlRVQUwpOwo+ ICAJY29ubmVjdG9yLT5zdGF0dXMgPSB2bXdfZHVfY29ubmVjdG9yX2RldGVjdChjb25uZWN0b3Is IHRydWUpOwo+ICsJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfdGltZXN0YW1wKGNvbm5lY3Rvcik7Cj4g IAo+ICAJZHJtX2VuY29kZXJfaW5pdChkZXYsIGVuY29kZXIsICZ2bXdfc2NyZWVuX29iamVjdF9l bmNvZGVyX2Z1bmNzLAo+ICAJCQkgRFJNX01PREVfRU5DT0RFUl9WSVJUVUFMLCBOVUxMKTsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3RkdS5jIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3RkdS5jCj4gaW5kZXggMDFjNGQ1NzRmYTc4Li4zYzJi NzFlNjA1ZDYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3Rk dS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3RkdS5jCj4gQEAgLTEx MTcsNiArMTExNyw3IEBAIHN0YXRpYyBpbnQgdm13X3N0ZHVfaW5pdChzdHJ1Y3Qgdm13X3ByaXZh dGUgKmRldl9wcml2LCB1bnNpZ25lZCB1bml0KQo+ICAJZHJtX2Nvbm5lY3Rvcl9pbml0KGRldiwg Y29ubmVjdG9yLCAmdm13X3N0ZHVfY29ubmVjdG9yX2Z1bmNzLAo+ICAJCQkgICBEUk1fTU9ERV9D T05ORUNUT1JfVklSVFVBTCk7Cj4gIAljb25uZWN0b3ItPnN0YXR1cyA9IHZtd19kdV9jb25uZWN0 b3JfZGV0ZWN0KGNvbm5lY3RvciwgZmFsc2UpOwo+ICsJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfdGlt ZXN0YW1wKGNvbm5lY3Rvcik7Cj4gIAo+ICAJZHJtX2VuY29kZXJfaW5pdChkZXYsIGVuY29kZXIs ICZ2bXdfc3RkdV9lbmNvZGVyX2Z1bmNzLAo+ICAJCQkgRFJNX01PREVfRU5DT0RFUl9WSVJUVUFM LCBOVUxMKTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oIGIvaW5j bHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gaW5kZXggYWM5ZDdkOGUwZTQzLi42OThkODZhNmFm ODMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gKysrIGIvaW5j bHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gQEAgLTI1LDYgKzI1LDcgQEAKPiAgCj4gICNpbmNs dWRlIDxsaW51eC9saXN0Lmg+Cj4gICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgo+ICsjaW5jbHVk ZSA8bGludXgva3RpbWUuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fbW9kZV9vYmplY3QuaD4KPiAg Cj4gICNpbmNsdWRlIDx1YXBpL2RybS9kcm1fbW9kZS5oPgo+IEBAIC01NzYsNiArNTc3LDcgQEAg c3RydWN0IGRybV9jb25uZWN0b3Igewo+ICAJc3RydWN0IGxpc3RfaGVhZCBtb2RlczsgLyogbGlz dCBvZiBtb2RlcyBvbiB0aGlzIGNvbm5lY3RvciAqLwo+ICAKPiAgCWVudW0gZHJtX2Nvbm5lY3Rv cl9zdGF0dXMgc3RhdHVzOwo+ICsJa3RpbWVfdCB0aW1lc3RhbXA7Cj4gIAo+ICAJLyogdGhlc2Ug YXJlIG1vZGVzIGFkZGVkIGJ5IHByb2Jpbmcgd2l0aCBEREMgb3IgdGhlIEJJT1MgKi8KPiAgCXN0 cnVjdCBsaXN0X2hlYWQgcHJvYmVkX21vZGVzOwo+IEBAIC03NjEsNiArNzYzLDEyIEBAIGludCBk cm1fbW9kZV9jb25uZWN0b3Jfc2V0X3RpbGVfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3Rvcik7Cj4gIGludCBkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVy dHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCQkJCQkgICAgY29uc3Qgc3Ry dWN0IGVkaWQgKmVkaWQpOwo+ICAKPiArc3RhdGljIGlubGluZSB2b2lkCj4gK2RybV9jb25uZWN0 b3JfdXBkYXRlX3RpbWVzdGFtcChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoKTmVl ZHMgc29tZSBrZXJuZWxkb2MuIE90aGVyd2lzZSBJIGxpa2UuCj4gK3sKPiArCWNvbm5lY3Rvci0+ dGltZXN0YW1wID0ga3RpbWVfZ2V0KCk7CgpTaG91bGQgd2UgbWFrZSBzdXJlIHRoYXQgdGhlIG5l dyB2YWx1ZSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgY3VycmVudCBvbmUsCmFuZCBpZiBub3QsIGp1 c3QgYWRkIDE/IFdlIHdhbnQgdG8gZ3VhcmFudGVlIHRoYXQgaXQncyBpbmNyZWFzaW5nIG9uIGV2 ZXJ5CmNoYW5nZS4KCkNoZWVycywgRGFuaWVsCgo+ICt9Cj4gKwo+ICAvKioKPiAgICogZHJtX2Zv cl9lYWNoX2Nvbm5lY3RvciAtIGl0ZXJhdGUgb3ZlciBhbGwgY29ubmVjdG9ycwo+ICAgKiBAY29u bmVjdG9yOiB0aGUgbG9vcCBjdXJzb3IKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9k cm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKPiBpbmRleCBiMmM1Mjg0M2JjNzAuLjVjNTk0 MWFlZGQ4YyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oCj4gKysrIGIvaW5j bHVkZS91YXBpL2RybS9kcm0uaAo+IEBAIC03ODcsNyArNzg3LDcgQEAgZXh0ZXJuICJDIiB7Cj4g ICNkZWZpbmUgRFJNX0lPQ1RMX01PREVfR0VUR0FNTUEJCURSTV9JT1dSKDB4QTQsIHN0cnVjdCBk cm1fbW9kZV9jcnRjX2x1dCkKPiAgI2RlZmluZSBEUk1fSU9DVExfTU9ERV9TRVRHQU1NQQkJRFJN X0lPV1IoMHhBNSwgc3RydWN0IGRybV9tb2RlX2NydGNfbHV0KQo+ICAjZGVmaW5lIERSTV9JT0NU TF9NT0RFX0dFVEVOQ09ERVIJRFJNX0lPV1IoMHhBNiwgc3RydWN0IGRybV9tb2RlX2dldF9lbmNv ZGVyKQo+IC0jZGVmaW5lIERSTV9JT0NUTF9NT0RFX0dFVENPTk5FQ1RPUglEUk1fSU9XUigweEE3 LCBzdHJ1Y3QgZHJtX21vZGVfZ2V0X2Nvbm5lY3RvcikKPiArI2RlZmluZSBEUk1fSU9DVExfTU9E RV9HRVRDT05ORUNUT1IJRFJNX0lPV1IoMHhBNywgc3RydWN0IGRybV9tb2RlX2dldF9jb25uZWN0 b3JfdjIpCj4gICNkZWZpbmUgRFJNX0lPQ1RMX01PREVfQVRUQUNITU9ERQlEUk1fSU9XUigweEE4 LCBzdHJ1Y3QgZHJtX21vZGVfbW9kZV9jbWQpIC8qIGRlcHJlY2F0ZWQgKG5ldmVyIHdvcmtlZCkg Ki8KPiAgI2RlZmluZSBEUk1fSU9DVExfTU9ERV9ERVRBQ0hNT0RFCURSTV9JT1dSKDB4QTksIHN0 cnVjdCBkcm1fbW9kZV9tb2RlX2NtZCkgLyogZGVwcmVjYXRlZCAobmV2ZXIgd29ya2VkKSAqLwo+ ICAKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIGIvaW5jbHVkZS91 YXBpL2RybS9kcm1fbW9kZS5oCj4gaW5kZXggMDg0YjUwYTAyZGM1Li5kM2VjYjU0NjkxOGMgMTAw NjQ0Cj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCj4gKysrIGIvaW5jbHVkZS91 YXBpL2RybS9kcm1fbW9kZS5oCj4gQEAgLTI4Niw2ICsyODYsMzIgQEAgc3RydWN0IGRybV9tb2Rl X2dldF9jb25uZWN0b3Igewo+ICAJX191MzIgcGFkOwo+ICB9Owo+ICAKPiArc3RydWN0IGRybV9t b2RlX2dldF9jb25uZWN0b3JfdjIgewo+ICsKPiArCV9fdTY0IGVuY29kZXJzX3B0cjsKPiArCV9f dTY0IG1vZGVzX3B0cjsKPiArCV9fdTY0IHByb3BzX3B0cjsKPiArCV9fdTY0IHByb3BfdmFsdWVz X3B0cjsKPiArCj4gKwlfX3UzMiBjb3VudF9tb2RlczsKPiArCV9fdTMyIGNvdW50X3Byb3BzOwo+ ICsJX191MzIgY291bnRfZW5jb2RlcnM7Cj4gKwo+ICsJX191MzIgZW5jb2Rlcl9pZDsgLyoqPCBD dXJyZW50IEVuY29kZXIgKi8KPiArCV9fdTMyIGNvbm5lY3Rvcl9pZDsgLyoqPCBJZCAqLwo+ICsJ X191MzIgY29ubmVjdG9yX3R5cGU7Cj4gKwlfX3UzMiBjb25uZWN0b3JfdHlwZV9pZDsKPiArCj4g KwlfX3UzMiBjb25uZWN0aW9uOwo+ICsJX191MzIgbW1fd2lkdGg7ICAvKio8IHdpZHRoIGluIG1p bGxpbWV0ZXJzICovCj4gKwlfX3UzMiBtbV9oZWlnaHQ7IC8qKjwgaGVpZ2h0IGluIG1pbGxpbWV0 ZXJzICovCj4gKwlfX3UzMiBzdWJwaXhlbDsKPiArCj4gKwlfX3UzMiBwYWQ7IC8qIGFsaWduIHRv IHU2NCAqLwo+ICsKPiArCV9fdTY0IHRpbWVzdGFtcDsKPiArfTsKPiArCj4gICNkZWZpbmUgRFJN X01PREVfUFJPUF9QRU5ESU5HCSgxPDwwKQo+ICAjZGVmaW5lIERSTV9NT0RFX1BST1BfUkFOR0UJ KDE8PDEpCj4gICNkZWZpbmUgRFJNX01PREVfUFJPUF9JTU1VVEFCTEUJKDE8PDIpCj4gLS0gCj4g Mi45LjMKPiAKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jw b3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK