From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC 5/6] drm/i915: Allow fb modifier to set framebuffer tiling Date: Tue, 3 Feb 2015 12:41:51 +0100 Message-ID: <20150203114151.GK14009@phenom.ffwll.local> References: <1422639418-28845-1-git-send-email-tvrtko.ursulin@linux.intel.com> <1422639418-28845-6-git-send-email-tvrtko.ursulin@linux.intel.com> <20150202095430.GT14009@phenom.ffwll.local> <54CF532E.10100@linux.intel.com> <20150202171551.GA14009@phenom.ffwll.local> <54CFB43C.3000806@linux.intel.com> <20150202201742.GD14009@phenom.ffwll.local> <54D0A5ED.6000905@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-we0-f181.google.com (mail-we0-f181.google.com [74.125.82.181]) by gabe.freedesktop.org (Postfix) with ESMTP id 12C886E4EF for ; Tue, 3 Feb 2015 03:40:30 -0800 (PST) Received: by mail-we0-f181.google.com with SMTP id k48so44469323wev.12 for ; Tue, 03 Feb 2015 03:40:29 -0800 (PST) Content-Disposition: inline In-Reply-To: <54D0A5ED.6000905@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBGZWIgMDMsIDIwMTUgYXQgMTA6NDE6NDlBTSArMDAwMCwgVHZydGtvIFVyc3VsaW4g d3JvdGU6Cj4gCj4gT24gMDIvMDIvMjAxNSAwODoxNyBQTSwgRGFuaWVsIFZldHRlciB3cm90ZToK PiA+T24gTW9uLCBGZWIgMDIsIDIwMTUgYXQgMDU6MzA6MzZQTSArMDAwMCwgVHZydGtvIFVyc3Vs aW4gd3JvdGU6Cj4gPj4KPiA+Pk9uIDAyLzAyLzIwMTUgMDU6MTUgUE0sIERhbmllbCBWZXR0ZXIg d3JvdGU6Cj4gPj4+T24gTW9uLCBGZWIgMDIsIDIwMTUgYXQgMTA6MzY6MzBBTSArMDAwMCwgVHZy dGtvIFVyc3VsaW4gd3JvdGU6Cj4gPj4+Pgo+ID4+Pj5PbiAwMi8wMi8yMDE1IDA5OjU0IEFNLCBE YW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4+Pj4+T24gRnJpLCBKYW4gMzAsIDIwMTUgYXQgMDU6MzY6 NTdQTSArMDAwMCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4gPj4+Pj4+RnJvbTogVHZydGtvIFVy c3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPiA+Pj4+Pj4KPiA+Pj4+Pj5Vc2UgdGhl IGZiIG1vZGlmaWVyIGlmIGl0IHdhcyBzcGVjaWZpZWQgb3ZlciBvYmplY3QgdGlsaW5nIG1vZGUu Cj4gPj4+Pj4+Cj4gPj4+Pj4+U2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51 cnN1bGluQGludGVsLmNvbT4KPiA+Pj4+Pj4tLS0KPiA+Pj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyB8IDQwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLQo+ID4+Pj4+PiAgMSBmaWxlIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDcgZGVsZXRp b25zKC0pCj4gPj4+Pj4+Cj4gPj4+Pj4+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ ID4+Pj4+PmluZGV4IGUyMmFmYmUuLmNhNjlkYTAgMTAwNjQ0Cj4gPj4+Pj4+LS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPj4+Pj4+KysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPj4+Pj4+QEAgLTEyNjcxLDYgKzEyNjcxLDIwIEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzIGludGVsX2ZiX2Z1bmNz ID0gewo+ID4+Pj4+PiAgCS5jcmVhdGVfaGFuZGxlID0gaW50ZWxfdXNlcl9mcmFtZWJ1ZmZlcl9j cmVhdGVfaGFuZGxlLAo+ID4+Pj4+PiAgfTsKPiA+Pj4+Pj4KPiA+Pj4+Pj4rc3RhdGljIHVuc2ln bmVkIGludAo+ID4+Pj4+PitpbnRlbF9mYl9tb2RpZmllcl90b190aWxpbmcodTY0IG1vZGlmaWVy KQo+ID4+Pj4+Pit7Cj4gPj4+Pj4+Kwlzd2l0Y2ggKG1vZGlmaWVyKSB7Cj4gPj4+Pj4+KwljYXNl IEk5MTVfRk9STUFUX01PRF9YX1RJTEVEOgo+ID4+Pj4+PisJCXJldHVybiBJOTE1X1RJTElOR19Y Owo+ID4+Pj4+PisJZGVmYXVsdDoKPiA+Pj4+Pj4rCWNhc2UgSTkxNV9GT1JNQVRfTU9EX05PTkU6 Cj4gPj4+Pj4+KwkJYnJlYWs7Cj4gPj4+Pj4+Kwl9Cj4gPj4+Pj4+Kwo+ID4+Pj4+PisJcmV0dXJu IEk5MTVfVElMSU5HX05PTkU7Cj4gPj4+Pj4+K30KPiA+Pj4+Pj4rCj4gPj4+Pj4+ICBzdGF0aWMg aW50IGludGVsX2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+Pj4+ Pj4gIAkJCQkgIHN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAqaW50ZWxfZmIsCj4gPj4+Pj4+ICAJ CQkJICBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQsCj4gPj4+Pj4+QEAgLTEyNjc4 LDExICsxMjY5MiwyMyBAQCBzdGF0aWMgaW50IGludGVsX2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPiA+Pj4+Pj4gIHsKPiA+Pj4+Pj4gIAlpbnQgYWxpZ25lZF9oZWln aHQ7Cj4gPj4+Pj4+ICAJaW50IHBpdGNoX2xpbWl0Owo+ID4+Pj4+PisJdW5zaWduZWQgaW50IHRp bGluZ19tb2RlID0gb2JqLT50aWxpbmdfbW9kZTsKPiA+Pj4+Pj4gIAlpbnQgcmV0Owo+ID4+Pj4+ Pgo+ID4+Pj4+PiAgCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmZGV2LT5zdHJ1Y3RfbXV0ZXgp KTsKPiA+Pj4+Pj4KPiA+Pj4+Pj4tCWlmIChvYmotPnRpbGluZ19tb2RlID09IEk5MTVfVElMSU5H X1kpIHsKPiA+Pj4+Pj4rCWlmIChtb2RlX2NtZC0+ZmxhZ3MgJiBEUk1fTU9ERV9GQl9NT0RJRklF UlMpIHsKPiA+Pj4+Pj4rCQl0aWxpbmdfbW9kZSA9Cj4gPj4+Pj4+KwkJCWludGVsX2ZiX21vZGlm aWVyX3RvX3RpbGluZyhtb2RlX2NtZC0+bW9kaWZpZXJbMF0pOwo+ID4+Pj4+PisJCWlmICh0aWxp bmdfbW9kZSAhPSBvYmotPnRpbGluZ19tb2RlICYmCj4gPj4+Pj4+KwkJCW9iai0+dGlsaW5nX21v ZGUgIT0gSTkxNV9USUxJTkdfTk9ORSkgewo+ID4+Pj4+PisJCQlEUk1fRVJST1IoIlRpbGluZyBt b2RpZmllciBtaXNtYXRjaCAldSB2cyBvYmogJXUhXG4iLAo+ID4+Pj4+PisJCQkJCXRpbGluZ19t b2RlLCBvYmotPnRpbGluZ19tb2RlKTsKPiA+Pj4+Pj4rCQkJcmV0dXJuIC1FSU5WQUw7Cj4gPj4+ Pj4+KwkJfQo+ID4+Pj4+PisJfQo+ID4+Pj4+Cj4gPj4+Pj5BaCwgaGVyZSBjb21lcyB0aGUgbWFn aWMuIEkgdGhpbmsgdGhpcyBtaWdodCBiZSBzaW1wbGVyIGlmIHdlIGp1c3QgdXNlCj4gPj4+Pj4t Pm1vZGlmaWVyIChhbmQgZml4IGl0IHVwIGlmIEZCX01PRElGSUVSUyBpc24ndCBzZXQpLgo+ID4+ Pj4+Cj4gPj4+Pj5CdHcgYW5vdGhlciByZWFzb24gZm9yIHRoaXMgc3BsaXQgaXMgdGhhdCB0aGlz IHdheSB3ZSBoYXZlIGEgY2xlYXIKPiA+Pj4+PnNlcGFyYXRpb24gYmV0d2VlbiB0aGUgdGlsaW5n IG1vZGVzIHN1cHBvcnRlZCBnZW5lcmFsbHkgKGFzIGZiIG1vZGlmaWVycykKPiA+Pj4+PmFuZCB0 aGUgdGlsaW5nIG1vZGVzIHN1cHBvcnRlZCBieSBmZW5jZXMuIEl0IG1pZ2h0IHRoZXJlZm9yZSBt YWtlIHNlbnNlIHRvCj4gPj4+Pj5yZW5hbWUgb2JqLT50aWxpbmdfbW9kZSB3aXRoIGEgY29jY2kg cGF0Y2ggdG8gb2JqLT5mZW5jaW5nX21vZGUgb3IKPiA+Pj4+Pi0+ZmVuY2VfdGlsaW5nX21vZGUp LiBUbyBtYWtlIGl0IHJlYWxseSBjbGVhciB0aGF0IGl0J3MganVzdCBhYm91dCB0aGUKPiA+Pj4+ Pmdsb2JhbCBndHQgZmVuY2VzIGFuZCBub3RoaW5nIG1vcmUuCj4gPj4+Pgo+ID4+Pj5JIGRvbid0 IHJlYWxseSBsaWtlIHVzaW5nIC0+bW9kaWZpZXIgZGlyZWN0bHkgaW4gdGlsaW5nIHBhdGNoIHNp bmNlIGl0IGlzIGFuCj4gPj4+PmJhZyBvZiB1bnJlbGF0ZWQgc3R1ZmYsIG5vdCBvbmx5IGEgc3Vw ZXJzZXQuIFVucmVsYXRlZCBlc3BlY2lhbGx5LCBidXQgbm90Cj4gPj4+Pm9ubHksIGZyb20gdGhl IHBvaW50IG9mIHZpZXcgb2YgY2FsbCBzaXRlcyAvIHVzZXJzLgo+ID4+Pj4KPiA+Pj4+VGhlcmVm b3JlIEkgc2VlIHNvbWUgZGVzaWduIGVsZWdhbmNlIGluIGV4dHJhY3RpbmcgdGhlIHRpbGluZywg b3IgYW55IG90aGVyCj4gPj4+PmxvZ2ljYWwgZ3JvdXAgb2YgbW9kaWZpZXJzIGJlZm9yZSBoYW5k Lgo+ID4+Pj4KPiA+Pj4+QXQgdGhlIHZlcnkgbGVhc3Qgd291bGQgY2FsbCBzb21ldGhpbmcgbGlr ZSBpbnRlbF9mYl9tb2RpZmllcl90b190aWxpbmcoKSwKPiA+Pj4+YnV0LCBpdCBpcyB2ZXJ5IHVn bHkgdG8gaGF2ZSBhIGR5bmFtaWMgY29zdCBhdCBldmVyeSBjYWxsIHNpdGUuIFdoaWNoIGlzCj4g Pj4+PmFub3RoZXIgcmVhc29uIHdoeSBJIHByZWZlcnJlZCB0byBleHRyYWN0IHRoZSBkYXRhIGJl Zm9yZSBoYW5kLgo+ID4+Pgo+ID4+PlRoZSByZWFzb24gaXMgdGhhdCB0aGUgY3VycmVudCB0aWxp bmdfbW9kZSBlbnVtIGlzIHVzZXJzcGFjZSBBQkksIGFuZAo+ID4+Pml0J3MganVzdCBmb3IgaG93 IHRvIGZlbmNlIGdsb2JhbCBndHQgbWFwcGluZ3MuIFRoYXQncyB0aGUgcG9pbnQgb2YKPiA+Pj5z cGxpdHRpbmcgdGhlIGZiIG1vZGlmaWVycyBvdXQgbGlrZSBpbiB0aGlzIHJmYy4KPiA+Pj4KPiA+ Pj5TbyBpZiB5b3UgYWRkIHlvdXIgZmFuY3kgbmV3IHRpbGluZyBtb2RlIHlvdSBjYW4ndCBkbyB0 aGF0LCBzaW5jZSB5b3UKPiA+Pj5jYW4ndCBleHRlbmQgdGhlIHRpbGluZ19tb2RlIGVudW0uIEFk ZGluZyBhbm90aGVyIGVudW0gYWxzbyBzZWVtcyBhIGJpdAo+ID4+Cj4gPj5XaHkgbm90PyBJdCBp cyBub3QgY2hhbmdpbmcgdGhlIEFCSSBzaW5jZSBvYmotPnRpbGluZ19tb2RlIHN0YXlzIGV4YWN0 bHkgdGhlCj4gPj5zYW1lIGFzIGl0IGlzIHRvZGF5Lgo+ID4+Cj4gPj5EbyB5b3Ugd29ycnkgYWJv dXQgbGVha2luZyBuZXcgZGF0YSBvdXQgaW4gaTkxNV9kcm0uaCwgdW5kZXIgdGhlCj4gPj5JOTE1 X1RJTElOR18qICNkZWZpbmVzPyBJIGRvbid0IHNlZSB0aGF0IHdlIGhhdmUgdG8gY2hhbmdlIHRo YXQgYXQgYWxsLgo+ID4KPiA+SSBwcmVmZXIgdG8ga2VlcCBlbnVtcyBmb3IgZGlmZmVyZW50IHR5 cGVzIG9mIHZhbHVlcyBzZXBhcmF0ZSB0byBhdm9pZAo+ID5jb25mdXNpb24uCj4gPgo+ID4+PnRv byBtdWNoIHdoZW4gd2UgYWxyZWFkeSBoYXZlIGZiX21vZGlmaWVycy4KPiA+Pj4KPiA+Pj5BbmQg aWYgZmJfbW9kaWZpZXJzIGdldCB0b28gY29tcGxpY2F0ZWQgd2UgY2FuIGFkZCBoZWxwZXIgZnVu Y3Rpb25zIHdoaWNoCj4gPj4+bm9ybWFsaXplIHN0dWZmLCBlLmcuIGV4dHJhY3QganVzdCB0aGUg YmFzZSB0aWxpbmcgbW9kZSBhbmQgcmVtb3ZlIG90aGVyCj4gPj4+dGhpbmdzIChsaWtlIGNvbXBy ZXNzaW9uIG1vZGUgb3Igd2hhdGV2ZXIgaXQncyBnb2luZyB0byBiZSkuCj4gPj4KPiA+PlNvIHlv dSBhcmUgc3Ryb25nbHkgZm9yICJsb29raW5nIGludG8gYSBiYWcgb2Ygc3R1ZmYiIHRvIHNlZSBp ZiBhbnl0aGluZwo+ID4+aW50ZXJlc3RpbmcgaXMgdGhlcmUgb24gZXZlcnkgY2FsbCBzaXRlPwo+ ID4+Cj4gPj5IZWxwZXIgZnVuY3Rpb25zIGluIG15IHZpZXcgb25seSBtYXJnaW5hbGx5IGhlbHAg dGhlcmUgLSB0aGV5IG1ha2UgdGhlIGNvZGUKPiA+Pm5lYXRlciBidXQgZGVzaWduIGlzIGNvbmNl cHR1YWxseSBzdGlsbCB1bnRpZHkuIEFuZCB5b3UgYWRkIHBvaW50bGVzcwo+ID4+cHJvY2Vzc2lu ZyBvbiBldmVyeSBjYWxsIHNpdGUuCj4gPj4KPiA+PkkganVzdCBkb24ndCBzZWUgd2hhdCBpcyB0 aGUgcHJvYmxlbSB3aXRoIGV4dHJhY3RpbmcgdGhlIGludGVyZXN0aW5nIGRhdGEKPiA+PiJmcm9t IHRoZSBiYWciIGF0IGZiIGluaXQgdGltZS4gSWYgeW91IHRyaWVkIHRvIG1ha2Ugc29tZSBzeW5j aHJvbml6YXRpb24KPiA+PmFyZ3VtZW50IGluIHRoZSBvdGhlciByZXBseSBJIGRvbid0IGdldCBp dC4KPiA+Cj4gPlNvIGFmYWlrIGF0IG1vc3Qgd2UnbGwgZ2V0IGEgZmV3IG1vcmUgYml0cyBmb3Ig Y29tcHJlc3Npb24sIHBlcmhhcHMKPiA+c3dpenpsaW5nIChhbHRob3VnaCB0aGF0J3MgZGVhZCBv biBnZW44KyksIHdoYXRlbHNlLiBJZiB3ZSBsYXkgb3V0IHRoZQo+ID5kZWZpbmVzIGluIHRoZSBp bnRlbCB2ZW5kb3IgbW9kaWZpZXIgc3BhY2Ugd2UgY2FuIGdldCBhdCB0aGF0IGJ5IHNpbXBsZQo+ ID5tYXNraW5nLiBBbHNvLCBrbXMgb3BlcmF0aW9ucyBhcmUgZG9uZSBhdCBhYm91dCA2MGZwcyBy YXRlLCBzbyBjb21wdXRhdGlvbgo+ID5vdmVyaGVhZCBpcyB0b3RhbGx5IGlycmVsZXZhbnQgKHdl bGwgYXMgbG9uZyBhcyB3ZSBqdXN0IHdhc3RlIGEgZmV3Cj4gPmN5Y2xlcykuCj4gPgo+ID5UaGUg c3luY2hyb25pemF0aW9uIGFyZ3VtZW50IGlzIHRoYXQgYW55IGtpbmQgb2YgZHVwbGljYXRlZCBk YXRhIHdpbGwgZ2V0Cj4gPm91dCBvZiBzeW5jIHNvb25lciBvciBsYXRlciBpbiBteSBleHBlcmll bmNlLiBXZSBjYW4ndCBzbWFzaCBldmVyeXRoaW5nCj4gPmludG8gb2JqLT50aWxpbmcgd2l0aCB0 aGUgYWRkZmIyLjUgYWJpIChhbmQgYmVjYXVzZSB0aGV5J3JlIGFsc28gZm9yCj4gPmRpZmZlcmVu dCB0aGluZ3MpLCBidXQgd2UgY2FuIGF2b2lkIGR1cGxpY2F0aW5nIGluZm9ybWF0aW9uIGJldHdl ZW4KPiA+ZmItPm1vZGlmaWVyIGFuZCBpbnRlbF9mYi0+dGlsaW5nX21vZGUgYnkgbm90IGhhdmlu ZyB0aGUgc2Vjb25kLgo+ID4KPiA+WWVzIHRoYXQgbWVhbnMgd2UgbmVlZCB0byBmaXggdXAgLT5t b2RpZmllciAod2hpY2ggeW91ciBwYXRjaGVzIGRvbnQgZG8pLgo+ID5CdXQgc29vbmVyIG9yIGxh dGVyIHNvbWVvbmUgd2lsbCBsb29rIGF0IC0+bW9kaWZpZXIgYW5kIG5vdCAtPnRpbGluZ19tb2Rl Cj4gPihiZWNhdXNlIGhleSBpdCB3b3JrZWQgb24gbmV3IHVzZXJzcGFjZSkgYW5kIHRoZW4gKmJv b20qIHdlIGhhdmUgYSBuaWNlCj4gPmNvbmZ1c2luZyByZWdyZXNzaW9uIHJlcG9ydCBmcm9tIHNv bWVvbmUuIE9yIHNvbWVvbmUgbG9va3MgYXQKPiA+b2JqLT50aWxpbmdfbW9kZSBpbnN0ZWFkIG9m IGludGVsX2ZiLT50aWxpbmdfbW9kZSAoaGV5IGl0IHdvcmtzLCBiZWNhdXNlCj4gPnRoZXkncmUg dXNpbmcgdGhlIHNhbWUgZW51bSB2YWx1ZXMpIHVudGlsIHRoZSBuZXdmYW5nbGVkIHRpbGluZyB0 aGluZwo+ID5zaG93cyB1cC4KPiA+Cj4gPj5mYi0+bW9kaWZpZXJbMF0gc2hvdWxkIGJlLCBpbiBt eSBvcGluaW9uLCB2aWV3ZWQgYXMgaW1tdXRhYmxlLiBBbmQgaXQgbGl2ZXMKPiA+PmF0IHRoZSBi YXNlIGNsYXNzIGxldmVsIHdoaWxlIGluIGludGVsX2ZyYW1idWZmZXIgc3ViLWNsYXNzIGl0IHNo b3VsZCBiZQo+ID4+anVzdCBmaW5lIHRvICJwYXJzZSIgdGhhdCBpbnRvIGRpcmVjdGx5IHVzYWJs ZSBkYXRhIHN0b3JlZCBhdCB0aGUgc3ViLWNsYXNzCj4gPj5sZXZlbC4KPiA+Cj4gPkZ1bGx5IGFn cmVlZCBvbiBpbW11dGFibGUsIGJ1dCB0aGF0IGRvZXNuJ3QgZXhjbHVkZSBjb21wdXRpbmcgYW4K PiA+YXBwcm9wcmlhdGUgdmFsdWUgYXQgZmIgaW5pdCB0aW1lLgo+IAo+IFNvIHlvdSB3YW50IHRv IGNhcmVmdWxseSBsYXkgb3V0IG91ciBmYiBtb2RpZmllcnMgc28gd2UgY2FuIGdldCBvdXIgZGF0 YSBvdXQKPiBlYXNpbHkgcmF0aGVyIHRoYW4gZXh0cmFjdCB0aGUgZGF0YSBhdCBmYiBjcmVhdGlv biBhbmQgaGF2ZSBubyBzdWNoCj4gY29uc3RyYWludHM/CgpOb3Qgc3VyZSBpdCdsbCBiZSB0aGF0 IGJhZCByZWFsbHksIG9mdGVuIGl0IHNob3VsZCBsb29rIGxpa2UgdGhpcyBJIGV4cGVjdAoodG90 YWxseSBtYWRlIHVwIGV4YW1wbGUpOgoKCXN3aXRjaChmYi0+bW9kaWZpZXIpIHsKCQljYXNlIE1P RF9OT05FOgoJCQlicmVhazsKCQljYXNlIE1PRF9YOgoJCQlwbGFuZV9tb2RlIHw9IFRJTEVfWAoJ CQlicmVhazsKCQljYXNlIE1PRF9GQU5DWV9USUxJTkdfV0lUSF9DT01QUkVTU0lPTjoKCQkJcGxh bmVfbW9kZSB8PSBDT01QUkVTU0VEOwoJCWNhc2UgTU9EX0ZBTkNZX1RJTElORzoKCQkJcGxhbmVf bW9kZSB8PSBUSUxFX0ZBTkNZOwoJCQlicmVhazsKCQlkZWZhdWx0OgoJCQkvKiB0aGlzIHBsYW5l IGRvZXNuJ3Qgc3VwcG9ydCBhbnkgb3RoZXIKCQkJICogY29tYmluYXRpb24gKi8KCQkJTUlTU0lO R19DQVNFKGZiLT5tb2RpZmllcik7Cgl9CgpTbyBub3QgZXZlbiBzdXJlIHdlJ2QgbmVlZCB0byBz cGxpdCBzdHVmZiB1cCB0aGF0IGJhZGx5IGFuZCBtYWtlIGl0IGFsbAptYXNrYWJsZS4gSW4gYW55 IGNhc2UgNTYgYml0cyBnaXZlcyB1cyBhIGxvdCBvZiBwbGFjZXMgZm9yIHN1Ym1hc2tzLCBJCmRv bid0IHRoaW5rIHRoYXQncyBhIHNldmVyZSByZXN0cmljdGlvbiByZWFsbHkuCgo+IE9yIGluIG90 aGVyIHdvcmRzIHlvdSB3YW50IHRvIHJlc2VydmUgc29tZSBiaXRzIGZvciB0aWxpbmcgYW5kIGRl ZmluZSBhIG1hc2sKPiBzdHJhaWdodCBhd2F5LCBkaWQgSSBnZXQgdGhhdCByaWdodD8gTm90IGxp a2UgdGhpczoKPiAKPiAxLgo+IAo+IGludGVsX2ZiIGNyZWF0aW9uCj4gICAgLT4gcGFyc2UgZmIg bW9kaWZpZXIgYW5kIGV4dHJhY3QgcHJpdmF0ZSBhdHRyaWJ1dGVzIGZvciBmdXR1cmUgdXNlCj4g ICAgICAgLT4gdGlsaW5nX21vZGUKPiAgICAgICAtPiBjb21wcmVzc2lvbl9tb2RlIChlZy4pCj4g ICAgICAgLT4gc3dpenpsaW5nX21vZGUgKGVnLikKPiAKPiB0aWxpbmdfbW9kZSB1c2Ugc2l0ZXMK PiAgICAtPiBqdXN0IHVzZSBpbnRlbF9mYi0+dGlsaW5nX21vZGUKPiAKPiBCdXQgbGlrZSB0aGlz Ogo+IAo+IDIuCj4gCj4gaW50ZWxfZmIgY3JlYXRpb24KPiAgICAtPiBkbyBub3RoaW5nCgpzL2Rv IG5vdGhpbmcvZml4dXAgZmIgbW9kaWZpZXIgZm9yIGxlZ2FjeSB1c2Vyc3BhY2Ugbm90IHVzaW5n IGl0LwoKPiBjYWxsIHNpdGVzCj4gICAgLT4gZXh0cmFjdCB0aWxpbmdfbW9kZSBmcm9tIGZiIG1v ZGlmaWVyCj4gCj4gKiBOb3RlIHRoaXMgc3RpbGwgbmVlZHMgdG8gbWFwIHRvIHNhbWUgImVudW0i IHNwYWNlIGFzIHRvZGF5IGF0IGxlYXN0IGluCj4gcGxhY2VzIHdoaWNoIHByb2dyYW0gdGhlIGhh cmR3YXJlLgo+IAo+IFlvdSB3YW50IG9wdGlvbiAyLCBjb3JyZWN0PwoKWWVzLCBJIHRoaW5rIHRo YXQgb3ZlcmFsbCBoYXMgbGVzcyBvcHBvcnR1bml0aWVzIGZvciBhY2NpZGVudGFsIGJ1Z3MuCi1E YW5pZWwKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0 aW9uCis0MSAoMCkgNzkgMzY1IDU3IDQ4IC0gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK