From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 12/20] drm/doc: Update drm_framebuffer docs Date: Fri, 12 Aug 2016 22:09:31 +0200 Message-ID: <20160812200931.GU6232@phenom.ffwll.local> References: <1470750091-16627-1-git-send-email-daniel.vetter@ffwll.ch> <1470750091-16627-13-git-send-email-daniel.vetter@ffwll.ch> <20160810151556.GU4329@intel.com> 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 0963E6EC24 for ; Fri, 12 Aug 2016 20:09:36 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id i138so4825589wmf.3 for ; Fri, 12 Aug 2016 13:09:35 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20160810151556.GU4329@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: Daniel Vetter , Intel Graphics Development , DRI Development , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBBdWcgMTAsIDIwMTYgYXQgMDY6MTU6NTZQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFR1ZSwgQXVnIDA5LCAyMDE2IGF0IDAzOjQxOjIzUE0gKzAyMDAsIERhbmll bCBWZXR0ZXIgd3JvdGU6Cj4gPiAtIE1vdmUgdGhlIGludHJvIHNlY3Rpb24gaW50byBhIERPQyBj b21tZW50LCBhbmQgdXBkYXRlIGl0IHNsaWdodGx5Lgo+ID4gLSBrZXJuZWwtZG9jIGZvciBzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyIQo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVy IDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KPiA+IC0tLQo+ID4gIERvY3VtZW50YXRpb24vZ3B1 L2RybS1rbXMucnN0ICAgICB8IDI2ICstLS0tLS0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2Ry bV9mcmFtZWJ1ZmZlci5jIHwgMzUgKysrKysrKysrKysrKysrCj4gPiAgaW5jbHVkZS9kcm0vZHJt X2ZyYW1lYnVmZmVyLmggICAgIHwgOTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tCj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCAxMTggaW5zZXJ0aW9ucygrKSwgMzcgZGVsZXRp b25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLnJz dCBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMucnN0Cj4gPiBpbmRleCA4MjY0YTg4YTg2OTUu LmQyNDRlMDM2NThjYyAxMDA2NDQKPiA+IC0tLSBhL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMu cnN0Cj4gPiArKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLnJzdAo+ID4gQEAgLTM5LDMw ICszOSw4IEBAIEF0b21pYyBNb2RlIFNldHRpbmcgRnVuY3Rpb24gUmVmZXJlbmNlCj4gPiAgRnJh bWUgQnVmZmVyIEFic3RyYWN0aW9uCj4gPiAgPT09PT09PT09PT09PT09PT09PT09PT09Cj4gPiAg Cj4gPiAtRnJhbWUgYnVmZmVycyBhcmUgYWJzdHJhY3QgbWVtb3J5IG9iamVjdHMgdGhhdCBwcm92 aWRlIGEgc291cmNlIG9mCj4gPiAtcGl4ZWxzIHRvIHNjYW5vdXQgdG8gYSBDUlRDLiBBcHBsaWNh dGlvbnMgZXhwbGljaXRseSByZXF1ZXN0IHRoZQo+ID4gLWNyZWF0aW9uIG9mIGZyYW1lIGJ1ZmZl cnMgdGhyb3VnaCB0aGUgRFJNX0lPQ1RMX01PREVfQURERkIoMikgaW9jdGxzCj4gPiAtYW5kIHJl Y2VpdmUgYW4gb3BhcXVlIGhhbmRsZSB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gdGhlIEtNUyBDUlRD IGNvbnRyb2wsCj4gPiAtcGxhbmUgY29uZmlndXJhdGlvbiBhbmQgcGFnZSBmbGlwIGZ1bmN0aW9u cy4KPiA+IC0KPiA+IC1GcmFtZSBidWZmZXJzIHJlbHkgb24gdGhlIHVuZGVybmVhdGggbWVtb3J5 IG1hbmFnZXIgZm9yIGxvdy1sZXZlbCBtZW1vcnkKPiA+IC1vcGVyYXRpb25zLiBXaGVuIGNyZWF0 aW5nIGEgZnJhbWUgYnVmZmVyIGFwcGxpY2F0aW9ucyBwYXNzIGEgbWVtb3J5Cj4gPiAtaGFuZGxl IChvciBhIGxpc3Qgb2YgbWVtb3J5IGhhbmRsZXMgZm9yIG11bHRpLXBsYW5hciBmb3JtYXRzKSB0 aHJvdWdoCj4gPiAtdGhlIGBgZHJtX21vZGVfZmJfY21kMmBgIGFyZ3VtZW50LiBGb3IgZHJpdmVy cyB1c2luZyBHRU0gYXMgdGhlaXIKPiA+IC11c2Vyc3BhY2UgYnVmZmVyIG1hbmFnZW1lbnQgaW50 ZXJmYWNlIHRoaXMgd291bGQgYmUgYSBHRU0gaGFuZGxlLgo+ID4gLURyaXZlcnMgYXJlIGhvd2V2 ZXIgZnJlZSB0byB1c2UgdGhlaXIgb3duIGJhY2tpbmcgc3RvcmFnZSBvYmplY3QKPiA+IC1oYW5k bGVzLCBlLmcuIHZtd2dmeCBkaXJlY3RseSBleHBvc2VzIHNwZWNpYWwgVFRNIGhhbmRsZXMgdG8g dXNlcnNwYWNlCj4gPiAtYW5kIHNvIGV4cGVjdHMgVFRNIGhhbmRsZXMgaW4gdGhlIGNyZWF0ZSBp b2N0bCBhbmQgbm90IEdFTSBoYW5kbGVzLgo+ID4gLQo+ID4gLVRoZSBsaWZldGltZSBvZiBhIGRy bSBmcmFtZWJ1ZmZlciBpcyBjb250cm9sbGVkIHdpdGggYSByZWZlcmVuY2UgY291bnQsCj4gPiAt ZHJpdmVycyBjYW4gZ3JhYiBhZGRpdGlvbmFsIHJlZmVyZW5jZXMgd2l0aAo+ID4gLTpjOmZ1bmM6 YGRybV9mcmFtZWJ1ZmZlcl9yZWZlcmVuY2UoKWBhbmQgZHJvcCB0aGVtIGFnYWluIHdpdGgKPiA+ IC06YzpmdW5jOmBkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2UoKWAuIEZvciBkcml2ZXItcHJp dmF0ZQo+ID4gLWZyYW1lYnVmZmVycyBmb3Igd2hpY2ggdGhlIGxhc3QgcmVmZXJlbmNlIGlzIG5l dmVyIGRyb3BwZWQgKGUuZy4gZm9yIHRoZQo+ID4gLWZiZGV2IGZyYW1lYnVmZmVyIHdoZW4gdGhl IHN0cnVjdCA6Yzp0eXBlOmBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyCj4gPiAtPGRybV9mcmFtZWJ1 ZmZlcj5gIGlzIGVtYmVkZGVkIGludG8gdGhlIGZiZGV2IGhlbHBlciBzdHJ1Y3QpCj4gPiAtZHJp dmVycyBjYW4gbWFudWFsbHkgY2xlYW4gdXAgYSBmcmFtZWJ1ZmZlciBhdCBtb2R1bGUgdW5sb2Fk IHRpbWUgd2l0aAo+ID4gLTpjOmZ1bmM6YGRybV9mcmFtZWJ1ZmZlcl91bnJlZ2lzdGVyX3ByaXZh dGUoKWAuCj4gPiArLi4ga2VybmVsLWRvYzo6IGRyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZm ZXIuYwo+ID4gKyAgIDpkb2M6IG92ZXJ2aWV3Cj4gPiAgCj4gPiAgRnJhbWUgQnVmZmVyIEZ1bmN0 aW9ucyBSZWZlcmVuY2UKPiA+ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwo+ID4gaW5kZXggYzdhOGE2MjNiMzM2Li5mMmY0OTI4 YzcyNjIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMK PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwo+ID4gQEAgLTI4LDYg KzI4LDQxIEBACj4gPiAgI2luY2x1ZGUgImRybV9jcnRjX2ludGVybmFsLmgiCj4gPiAgCj4gPiAg LyoqCj4gPiArICogRE9DOiBvdmVydmlldwo+ID4gKyAqCj4gPiArICogRnJhbWUgYnVmZmVycyBh cmUgYWJzdHJhY3QgbWVtb3J5IG9iamVjdHMgdGhhdCBwcm92aWRlIGEgc291cmNlIG9mIHBpeGVs cyB0bwo+ID4gKyAqIHNjYW5vdXQgdG8gYSBDUlRDLiBBcHBsaWNhdGlvbnMgZXhwbGljaXRseSBy ZXF1ZXN0IHRoZSBjcmVhdGlvbiBvZiBmcmFtZQo+ID4gKyAqIGJ1ZmZlcnMgdGhyb3VnaCB0aGUg RFJNX0lPQ1RMX01PREVfQURERkIoMikgaW9jdGxzIGFuZCByZWNlaXZlIGFuIG9wYXF1ZQo+ID4g KyAqIGhhbmRsZSB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gdGhlIEtNUyBDUlRDIGNvbnRyb2wsIHBs YW5lIGNvbmZpZ3VyYXRpb24gYW5kCj4gPiArICogcGFnZSBmbGlwIGZ1bmN0aW9ucy4KPiA+ICsg Kgo+ID4gKyAqIEZyYW1lIGJ1ZmZlcnMgcmVseSBvbiB0aGUgdW5kZXJseWluZyBtZW1vcnkgbWFu YWdlciBmb3IgYWxsb2NhdGluZyBiYWNraW5nCj4gPiArICogc3RvcmFnZS4gV2hlbiBjcmVhdGlu ZyBhIGZyYW1lIGJ1ZmZlciBhcHBsaWNhdGlvbnMgcGFzcyBhIG1lbW9yeSBoYW5kbGUKPiA+ICsg KiAob3IgYSBsaXN0IG9mIG1lbW9yeSBoYW5kbGVzIGZvciBtdWx0aS1wbGFuYXIgZm9ybWF0cykg dGhyb3VnaCB0aGUKPiA+ICsgKiBzdHJ1Y3QgJmRybV9tb2RlX2ZiX2NtZDIgYXJndW1lbnQuIEZv ciBkcml2ZXJzIHVzaW5nIEdFTSBhcyB0aGVpciB1c2Vyc3BhY2UKPiA+ICsgKiBidWZmZXIgbWFu YWdlbWVudCBpbnRlcmZhY2UgdGhpcyB3b3VsZCBiZSBhIEdFTSBoYW5kbGUuICBEcml2ZXJzIGFy ZSBob3dldmVyCj4gPiArICogZnJlZSB0byB1c2UgdGhlaXIgb3duIGJhY2tpbmcgc3RvcmFnZSBv YmplY3QgaGFuZGxlcywgZS5nLiB2bXdnZnggZGlyZWN0bHkKPiA+ICsgKiBleHBvc2VzIHNwZWNp YWwgVFRNIGhhbmRsZXMgdG8gdXNlcnNwYWNlIGFuZCBzbyBleHBlY3RzIFRUTSBoYW5kbGVzIGlu IHRoZQo+ID4gKyAqIGNyZWF0ZSBpb2N0bCBhbmQgbm90IEdFTSBoYW5kbGVzLgo+ID4gKyAqCj4g PiArICogRnJhbWVidWZmZXJzIGFyZSB0cmFja2VkIHdpdGggc3RydWN0ICZkcm1fZnJhbWVidWZm ZXIuIFRoZXkgYXJlIHB1Ymxpc2hlZAo+ID4gKyAqIHVzaW5nIGRybV9mcmFtZWJ1ZmZlcl9pbml0 KCkgLSBhZnRlciBjYWxsaW5nIHRoYXQgZnVuY3Rpb24gdXNlcnNwYWNlIGNhbiB1c2UKPiA+ICsg KiBhbmQgYWNjZXNzIHRoZSBmcmFtZWJ1ZmZlciBvYmplY3QuIFRoZSBoZWxwZXIgZnVuY3Rpb24K PiA+ICsgKiBkcm1faGVscGVyX21vZGVfZmlsbF9mYl9zdHJ1Y3QoKSBjYW4gYmUgdXNlZCB0byBw cmUtZmlsbCB0aGUgcmVxdWlyZWQKPiA+ICsgKiBtZXRhZGF0YSBmaWVsZHMuCj4gPiArICoKPiA+ ICsgKiBUaGUgbGlmZXRpbWUgb2YgYSBkcm0gZnJhbWVidWZmZXIgaXMgY29udHJvbGxlZCB3aXRo IGEgcmVmZXJlbmNlIGNvdW50LAo+ID4gKyAqIGRyaXZlcnMgY2FuIGdyYWIgYWRkaXRpb25hbCBy ZWZlcmVuY2VzIHdpdGggZHJtX2ZyYW1lYnVmZmVyX3JlZmVyZW5jZSgpIGFuZAo+ID4gKyAqIGRy b3AgdGhlbSBhZ2FpbiB3aXRoIGRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZSgpLiBGb3IgZHJp dmVyLXByaXZhdGUKPiA+ICsgKiBmcmFtZWJ1ZmZlcnMgZm9yIHdoaWNoIHRoZSBsYXN0IHJlZmVy ZW5jZSBpcyBuZXZlciBkcm9wcGVkIChlLmcuIGZvciB0aGUKPiA+ICsgKiBmYmRldiBmcmFtZWJ1 ZmZlciB3aGVuIHRoZSBzdHJ1Y3Qgc3RydWN0ICZkcm1fZnJhbWVidWZmZXIgaXMgZW1iZWRkZWQg aW50bwo+ID4gKyAqIHRoZSBmYmRldiBoZWxwZXIgc3RydWN0KSBkcml2ZXJzIGNhbiBtYW51YWxs eSBjbGVhbiB1cCBhIGZyYW1lYnVmZmVyIGF0Cj4gPiArICogbW9kdWxlIHVubG9hZCB0aW1lIHdp dGggZHJtX2ZyYW1lYnVmZmVyX3VucmVnaXN0ZXJfcHJpdmF0ZSgpLiBCdXQgZG9pbmcgdGhpcwo+ ID4gKyAqIGlzIG5vdCByZWNvbW1lbmRlZCwgYW5kIGl0J3MgYmV0dGVyIHRvIGhhdmUgYSBub3Jt YWwgZnJlZS1zdGFuZGluZyBzdHJ1Y3QKPiA+ICsgKiAmZHJtX2ZyYW1lYnVmZmVyLgo+ID4gKyAq Lwo+ID4gKwo+ID4gKy8qKgo+ID4gICAqIGRybV9tb2RlX2FkZGZiIC0gYWRkIGFuIEZCIHRvIHRo ZSBncmFwaGljcyBjb25maWd1cmF0aW9uCj4gPiAgICogQGRldjogZHJtIGRldmljZSBmb3IgdGhl IGlvY3RsCj4gPiAgICogQGRhdGE6IGRhdGEgcG9pbnRlciBmb3IgdGhlIGlvY3RsCj4gPiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmggYi9pbmNsdWRlL2RybS9kcm1f ZnJhbWVidWZmZXIuaAo+ID4gaW5kZXggNDZhYmRhY2U4ZmE1Li42ODVlMDYyZTU3ZDcgMTAwNjQ0 Cj4gPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZnJhbWVidWZmZXIuaAo+ID4gKysrIGIvaW5jbHVk ZS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmgKPiA+IEBAIC05MiwzNyArOTIsMTA1IEBAIHN0cnVjdCBk cm1fZnJhbWVidWZmZXJfZnVuY3Mgewo+ID4gIAkJICAgICB1bnNpZ25lZCBudW1fY2xpcHMpOwo+ ID4gIH07Cj4gPiAgCj4gPiArLyoqCj4gPiArICogc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAtIGZy YW1lIGJ1ZmZlciBvYmplY3QKPiA+ICsgKgo+ID4gKyAqIE5vdGUgdGhhdCB0aGUgZmIgaXMgcmVm Y291bnRlZCBmb3IgdGhlIGJlbmVmaXQgb2YgZHJpdmVyIGludGVybmFscywKPiA+ICsgKiBmb3Ig ZXhhbXBsZSBzb21lIGh3LCBkaXNhYmxpbmcgYSBDUlRDL3BsYW5lIGlzIGFzeW5jaHJvbm91cywg YW5kCj4gPiArICogc2Nhbm91dCBkb2VzIG5vdCBhY3R1YWxseSBjb21wbGV0ZSB1bnRpbCB0aGUg bmV4dCB2YmxhbmsuICBTbyBzb21lCj4gPiArICogY2xlYW51cCAobGlrZSByZWxlYXNpbmcgdGhl IHJlZmVyZW5jZShzKSBvbiB0aGUgYmFja2luZyBHRU0gYm8ocykpCj4gPiArICogc2hvdWxkIGJl IGRlZmVycmVkLiAgSW4gY2FzZXMgbGlrZSB0aGlzLCB0aGUgZHJpdmVyIHdvdWxkIGxpa2UgdG8K PiA+ICsgKiBob2xkIGEgcmVmIHRvIHRoZSBmYiBldmVuIHRob3VnaCBpdCBoYXMgYWxyZWFkeSBi ZWVuIHJlbW92ZWQgZnJvbQo+ID4gKyAqIHVzZXJzcGFjZSBwZXJzcGVjdGl2ZS4gU2VlIGRybV9m cmFtZWJ1ZmZlcl9yZWZlcmVuY2UoKSBhbmQKPiA+ICsgKiBkcm1fZnJhbWVidWZmZXJfdW5yZWZl cmVuY2UoKS4KPiA+ICsgKgo+ID4gKyAqIFRoZSByZWZjb3VudCBpcyBzdG9yZWQgaW5zaWRlIHRo ZSBtb2RlIG9iamVjdCBAYmFzZS4KPiA+ICsgKi8KPiA+ICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy IHsKPiA+ICsJLyoqCj4gPiArCSAqIEBkZXY6IERSTSBkZXZpY2UgdGhpcyBmcmFtZWJ1ZmZlciBi ZWxvbmdzIHRvCj4gPiArCSAqLwo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2Owo+ID4gLQkv Kgo+ID4gLQkgKiBOb3RlIHRoYXQgdGhlIGZiIGlzIHJlZmNvdW50ZWQgZm9yIHRoZSBiZW5lZml0 IG9mIGRyaXZlciBpbnRlcm5hbHMsCj4gPiAtCSAqIGZvciBleGFtcGxlIHNvbWUgaHcsIGRpc2Fi bGluZyBhIENSVEMvcGxhbmUgaXMgYXN5bmNocm9ub3VzLCBhbmQKPiA+IC0JICogc2Nhbm91dCBk b2VzIG5vdCBhY3R1YWxseSBjb21wbGV0ZSB1bnRpbCB0aGUgbmV4dCB2YmxhbmsuICBTbyBzb21l Cj4gPiAtCSAqIGNsZWFudXAgKGxpa2UgcmVsZWFzaW5nIHRoZSByZWZlcmVuY2Uocykgb24gdGhl IGJhY2tpbmcgR0VNIGJvKHMpKQo+ID4gLQkgKiBzaG91bGQgYmUgZGVmZXJyZWQuICBJbiBjYXNl cyBsaWtlIHRoaXMsIHRoZSBkcml2ZXIgd291bGQgbGlrZSB0bwo+ID4gLQkgKiBob2xkIGEgcmVm IHRvIHRoZSBmYiBldmVuIHRob3VnaCBpdCBoYXMgYWxyZWFkeSBiZWVuIHJlbW92ZWQgZnJvbQo+ ID4gLQkgKiB1c2Vyc3BhY2UgcGVyc3BlY3RpdmUuCj4gPiAtCSAqIFRoZSByZWZjb3VudCBpcyBz dG9yZWQgaW5zaWRlIHRoZSBtb2RlIG9iamVjdC4KPiA+IC0JICovCj4gPiAtCS8qCj4gPiAtCSAq IFBsYWNlIG9uIHRoZSBkZXYtPm1vZGVfY29uZmlnLmZiX2xpc3QsIGFjY2VzcyBwcm90ZWN0ZWQg YnkKPiA+ICsJLyoqCj4gPiArCSAqIEBoZWFkOiBQbGFjZSBvbiB0aGUgZGV2LT5tb2RlX2NvbmZp Zy5mYl9saXN0LCBhY2Nlc3MgcHJvdGVjdGVkIGJ5Cj4gPiAgCSAqIGRldi0+bW9kZV9jb25maWcu ZmJfbG9jay4KPiA+ICAJICovCj4gPiAgCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsKPiA+ICsKPiA+ ICsJLyoqCj4gPiArCSAqIEBiYXNlOiBiYXNlIG1vZGVzZXQgb2JqZWN0IHN0cnVjdHVyZSwgY29u dGFpbnMgdGhlIHJlZmVyZW5jZSBjb3VudC4KPiA+ICsJICovCj4gPiAgCXN0cnVjdCBkcm1fbW9k ZV9vYmplY3QgYmFzZTsKPiA+ICsJLyoqCj4gPiArCSAqIEBmdW5jczogZnJhbWVidWZmZXIgdmZ1 bmMgdGFibGUKPiA+ICsJICovCj4gPiAgCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVu Y3MgKmZ1bmNzOwo+ID4gKwkvKioKPiA+ICsJICogQHBpdGNoZXM6IExpbmUgc3RyaWRlIHBlciBi dWZmZXIuIEZvciB1c2Vyc3BhY2UgY3JlYXRlZCBvYmplY3QgdGhpcwo+ID4gKwkgKiBpcyBjb3Bp ZWQgZnJvbSBkcm1fbW9kZV9mYl9jbWQyLgo+IAo+IGluIGJ5dGVzCj4gCj4gPiArCSAqLwo+ID4g IAl1bnNpZ25lZCBpbnQgcGl0Y2hlc1s0XTsKPiA+ICsJLyoqCj4gPiArCSAqIEBvZmZzZXRzOiBP ZmZzZXQgZnJvbSBidWZmZXIgc3RhcnQgdG8gdGhlIGFjdHVhbCBwaXhlbCBkYXRhIGluIGJ5dGVz LAo+ID4gKwkgKiBwZXIgYnVmZmVyLiBGb3IgdXNlcnNwYWNlIGNyZWF0ZWQgb2JqZWN0IHRoaXMg aXMgY29waWVkIGZyb20KPiA+ICsJICogZHJtX21vZGVfZmJfY21kMi4KPiAKPiBTaG91bGQgd2Ug dHJ5IHRvIHN0YW5kYXJkaXNlIHdoYXQgdGhpcyBhY3R1YWxseSBtZWFucz8gQ2FuIHdlPyBGb3IK PiBpOTE1IHdlJ3JlIGdvaW5nIHdpdGggdGhlIGxpbmVhciBvZmZzZXQgYXBwcm9hY2gsIGFzIGlu IHRoZSBieXRlCj4gb2Zmc2V0IGlzIGNhbGN1bGF0ZWQgZnJvbSB4L3kgb2Zmc2V0cyBhcyB5KnBp dGNoK3gqY3BwLiBOb3Qgc3VyZQo+IHRoYXQgd2lsbCB3b3JrIGZvciBldmVyeW9uZSwgb3Igd291 bGQgc29tZW9uZSBoYXZlIHRvIHNwZWNpZnkgdGhlCj4gb2Zmc2V0IGluIGEgZGlmZmVyZW50IHdh eT8KPiAKPiBXaXRoIGxpbmVhciBidWZmZXJzIGl0J3MgYWxsIHRoZSBzYW1lIGFueXdheSwgYnV0 IHdpdGggdGlsaW5nIHRoaXMKPiBkaXN0aWN0aW9uIGJlY29tZXMgcmF0aGVyIGltcG9ydGFudCBp ZiB5b3UgbmVlZCB0byBzcGVjaWZ5IG5vbgo+IHRpbGUgcm93IGFsaWduZWQgb2Zmc2V0cy4gT2J2 aW91c2x5IGFueSBub24tbGluZWFyIG9mZnNldCBhcHByb2FjaAo+IHdvdWxkIGJlIHRpbGluZyBm b3JtYXQgc3BlY2lmaWMsIGFuZCB5b3Ugd291bGRuJ3QgYmUgYWJsZSB0byBkbwo+IGEgeC95IC0+ IG9mZnNldHNbXSBjb252ZXJzaW9uIHdpdGhvdXQga25vd2luZyB0aGUgdGlsZSBsYXlvdXQuCj4g V2hpY2ggaXMgd2h5IEkgY2hvc2UgdG8gZ28gd2l0aCBsaW5lYXIgb2Zmc2V0cyBmb3IgaTkxNS4K Cm9mZnNldCBpcyBpbW8gb25seSBmb3IgbGluZWFyIG9mZnNldCB3aGVuIHlvdSBwdXQgbXVsdGlw bGUgcGxhbmVzIGludG8gdGhlCnNhbWUgYnVmZmVyLiBBbnl0aGluZyB3aGljaCBpc24ndCB0aWxl LWFsaWduZWQgKG9yIHdoYXRldmVyIHRoZSBodyBleGVjcHRzCmZvciB0aWxlZCBsYXlvdXQpIGRv ZXNuJ3QgbWFrZSBzZW5zZSBpbW8uIEknbGwgYWRkIGEgZmV3IG1vcmUgd29yZHMgdG8KY2xhcmlm eSB0aGF0IHRoaXMgaXMgX25vdF8gbWVhbnQgdG8gYWRkIGEgeC95IHBpeGVsIG9mZnNldCB0byB0 aGUgYnVmZmVyLAp3ZSBhbHJlYWR5IGhhdmUgdGhhdCBpbiB0aGUgcGxhbmUgc3RhdGUuCi1EYW5p ZWwKCj4gCj4gPiArCSAqLwo+ID4gIAl1bnNpZ25lZCBpbnQgb2Zmc2V0c1s0XTsKPiA+ICsJLyoq Cj4gPiArCSAqIEBtb2RpZmllcjogRGF0YSBsYXlvdXQgbW9kaWZpZXIsIHBlciBidWZmZXIuIFRo aXMgaXMgdXNlZCB0byBkZXNjcmliZQo+ID4gKwkgKiB0aWxpbmcsIG9yIGFsc28gc3BlY2lhbCBs YXlvdXRzIChsaWtlIGNvbXByZXNzaW9uKSBvZiBhdXhpbGlhcnkKPiA+ICsJICogYnVmZmVycy4g Rm9yIHVzZXJzcGFjZSBjcmVhdGVkIG9iamVjdCB0aGlzIGlzIGNvcGllZCBmcm9tCj4gPiArCSAq IGRybV9tb2RlX2ZiX2NtZDIuCj4gPiArCSAqLwo+ID4gIAl1aW50NjRfdCBtb2RpZmllcls0XTsK PiA+ICsJLyoqCj4gPiArCSAqIEB3aWR0aDogTG9naWNhbCB3aWR0aCBvZiB0aGUgdmlzaWJsZSBh cmVhIG9mIHRoZSBmcmFtZWJ1ZmZlciwgaW4KPiA+ICsJICogcGl4ZWxzLgo+ID4gKwkgKi8KPiA+ ICAJdW5zaWduZWQgaW50IHdpZHRoOwo+ID4gKwkvKioKPiA+ICsJICogQGhlaWdodDogTG9naWNh bCB3aWR0aCBvZiB0aGUgdmlzaWJsZSBhcmVhIG9mIHRoZSBmcmFtZWJ1ZmZlciwgaW4KPiA+ICsJ ICogcGl4ZWxzLgo+ID4gKwkgKi8KPiA+ICAJdW5zaWduZWQgaW50IGhlaWdodDsKPiA+IC0JLyog ZGVwdGggY2FuIGJlIDE1IG9yIDE2ICovCj4gPiArCS8qKgo+ID4gKwkgKiBAZGVwdGg6IERlcHRo IGluIGJpdHMgcGVyIHBpeGVsIGZvciBSR0IgZm9ybWF0cy4gMCBmb3IgZXZlcnl0aGluZwo+ID4g KwkgKiBlbHNlLiBMZWdhY3kgaW5mb3JtYXRpb24gZGVyaXZlZCBmcm9tIEBwaXhlbF9mb3JtYXQs IGl0J3Mgc3VnZ2VzdGVkIHRvIHVzZQo+ID4gKwkgKiB0aGUgRFJNIEZPVVJDQyBjb2RlcyBhbmQg aGVscGVyIGZ1bmN0aW9ucyBkaXJlY3RseSBpbnN0ZWFkLgo+ID4gKwkgKi8KPiA+ICAJdW5zaWdu ZWQgaW50IGRlcHRoOwo+ID4gKwkvKioKPiA+ICsJICogQGJpdHNfcGVyX3BpeGVsOiBTdG9yYWdl IHVzZWQgYml0cyBwZXIgcGl4ZWwgZm9yIFJHQiBmb3JtYXRzLiAwIGZvcgo+ID4gKwkgKiBldmVy eXRoaW5nIGVsc2UuIExlZ2FjeSBpbmZvcm1hdGlvbiBkZXJpdmVkIGZyb20gQHBpeGVsX2Zvcm1h dCwgaXQncwo+ID4gKwkgKiBzdWdnZXN0ZWQgdG8gdXNlIHRoZSBEUk0gRk9VUkNDIGNvZGVzIGFu ZCBoZWxwZXIgZnVuY3Rpb25zIGRpcmVjdGx5Cj4gPiArCSAqIGluc3RlYWQuCj4gPiArCSAqLwo+ ID4gIAlpbnQgYml0c19wZXJfcGl4ZWw7Cj4gPiArCS8qKgo+ID4gKwkgKiBAZmxhZ3M6IEZyYW1l YnVmZmVyIGZsYWdzIGxpa2UgRFJNX01PREVfRkJfSU5URVJMQUNFRCBvcgo+ID4gKwkgKiBEUk1f TU9ERV9GQl9NT0RJRklFUlMuCj4gPiArCSAqLwo+ID4gIAlpbnQgZmxhZ3M7Cj4gPiArCS8qKgo+ ID4gKwkgKiBAcGl4ZWxfZm9ybWF0OiBEUk0gRk9VUkNDIGNvZGUgZGVzY3JpYmluZyB0aGUgcGl4 ZWwgZm9ybWF0Lgo+ID4gKwkgKi8KPiA+ICAJdWludDMyX3QgcGl4ZWxfZm9ybWF0OyAvKiBmb3Vy Y2MgZm9ybWF0ICovCj4gPiArCS8qKgo+ID4gKwkgKiBAaG90X3g6IFggY29vcmRpbmF0ZSBvZiB0 aGUgY3Vyc29yIGhvdHNwb3QuIFVzZWQgYnkgdGhlIGxlZ2FjeSBjdXJzb3IKPiA+ICsJICogSU9D VEwgd2hlbiB0aGUgZHJpdmVyIHN1cHBvcnRzIGN1cnNvciB0aHJvdWdoIGEgRFJNX1BMQU5FX1RZ UEVfQ1VSU09SCj4gPiArCSAqIHVuaXZlcnNhbCBwbGFuZS4KPiA+ICsJICovCj4gPiAgCWludCBo b3RfeDsKPiA+ICsJLyoqCj4gPiArCSAqIEBob3RfeTogWSBjb29yZGluYXRlIG9mIHRoZSBjdXJz b3IgaG90c3BvdC4gVXNlZCBieSB0aGUgbGVnYWN5IGN1cnNvcgo+ID4gKwkgKiBJT0NUTCB3aGVu IHRoZSBkcml2ZXIgc3VwcG9ydHMgY3Vyc29yIHRocm91Z2ggYSBEUk1fUExBTkVfVFlQRV9DVVJT T1IKPiA+ICsJICogdW5pdmVyc2FsIHBsYW5lLgo+ID4gKwkgKi8KPiA+ICAJaW50IGhvdF95Owo+ ID4gKwkvKioKPiA+ICsJICogQGZpbHBfaGVhZDogUGxhY2VkIG9uIHN0cnVjdCAmZHJtX2ZpbGUg ZmJzIGxpc3RfaGVhZCwgcHJvdGVjdGVkIGJ5Cj4gPiArCSAqIGZic19sb2NrIGluIHRoZSBzYW1l IHN0cnVjdHVyZS4KPiA+ICsJICovCj4gPiAgCXN0cnVjdCBsaXN0X2hlYWQgZmlscF9oZWFkOwo+ ID4gIH07Cj4gPiAgCj4gPiAtLSAKPiA+IDIuOC4xCj4gPiAKPiA+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0 Cj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+IAo+IC0tIAo+IFZpbGxl IFN5cmrDpGzDpAo+IEludGVsIE9UQwoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5l ZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=