From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/4 v3] drm: Add support of ARC PGU display controller Date: Tue, 15 Mar 2016 09:10:57 +0100 Message-ID: <20160315081056.GS14170@phenom.ffwll.local> References: <1457710959-9562-1-git-send-email-abrodkin@synopsys.com> <1457710959-9562-2-git-send-email-abrodkin@synopsys.com> <20160314070009.GN14170@phenom.ffwll.local> <1457954159.3306.24.camel@synopsys.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6F9156E0DA for ; Tue, 15 Mar 2016 08:10:10 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id p65so2197134wmp.1 for ; Tue, 15 Mar 2016 01:10:10 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1457954159.3306.24.camel@synopsys.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Alexey Brodkin Cc: "Jose.Abreu@synopsys.com" , "linux-snps-arc@lists.infradead.org" , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBNYXIgMTQsIDIwMTYgYXQgMTE6MTU6NTlBTSArMDAwMCwgQWxleGV5IEJyb2RraW4g d3JvdGU6Cj4gT24gTW9uLCAyMDE2LTAzLTE0IGF0IDA4OjAwICswMTAwLCBEYW5pZWwgVmV0dGVy IHdyb3RlOgo+ID4gT24gRnJpLCBNYXIgMTEsIDIwMTYgYXQgMDY6NDI6MzZQTSArMDMwMCwgQWxl eGV5IEJyb2RraW4gd3JvdGU6Cj4gPiA+ICtzdGF0aWMgaW50IGFyY3BndV9hdG9taWNfY29tbWl0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiA+ICsJCQkJwqDCoMKgwqBzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUsIGJvb2wgYXN5bmMpCj4gPiA+ICt7Cj4gPiA+ICsJcmV0dXJuIGRy bV9hdG9taWNfaGVscGVyX2NvbW1pdChkZXYsIHN0YXRlLCBmYWxzZSk7Cj4gPiBOb3RlIHRoYXQg dGhpcyBpc24ndCByZWFsbHkgYXN5bmMgaWYgeW91IGV2ZXIgZ2V0IGFyb3VuZCB0byBpbXBsZW1l bnQKPiA+IGZlbmNlIHN1cHBvcnQgb3IgdmJsYW5rIHN1cHBvcnQuIEp1c3QgZnlpLgo+IAo+IE9r IGJ1dCBmb3Igbm93IHNob3VsZCBJIGxlYXZlIGl0IGFzIGl0IGlzPwoKWWVhaCBvayBhcy1pcywg aGVuY2UganVzdCBmeWkuCgo+ID4gPiArc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGFyY3BndV9k cm1fZHJpdmVyID0gewo+ID4gPiArCS5kcml2ZXJfZmVhdHVyZXMgPSBEUklWRVJfTU9ERVNFVCB8 IERSSVZFUl9HRU0gfCBEUklWRVJfUFJJTUUgfAo+ID4gPiArCQkJwqDCoMKgRFJJVkVSX0FUT01J QywKPiA+ID4gKwkucHJlY2xvc2UgPSBhcmNwZ3VfcHJlY2xvc2UsCj4gPiA+ICsJLmxhc3RjbG9z ZSA9IGFyY3BndV9sYXN0Y2xvc2UsCj4gPiA+ICsJLm5hbWUgPSAiZHJtLWFyY3BndSIsCj4gPiA+ ICsJLmRlc2MgPSAiQVJDIFBHVSBDb250cm9sbGVyIiwKPiA+ID4gKwkuZGF0ZSA9ICIyMDE2MDIx OSIsCj4gPiA+ICsJLm1ham9yID0gMSwKPiA+ID4gKwkubWlub3IgPSAwLAo+ID4gPiArCS5wYXRj aGxldmVsID0gMCwKPiA+ID4gKwkuZm9wcyA9ICZhcmNwZ3VfZHJtX29wcywKPiA+ID4gKwkubG9h ZCA9IGFyY3BndV9sb2FkLAo+ID4gPiArCS51bmxvYWQgPSBhcmNwZ3VfdW5sb2FkLAo+ID4gTG9h ZCBhbmQgdW5sb2FkIGhvb2tzIGFyZSBkZXByZWNhdGVkIChpdCdzIGEgY2xhc3NpYyBtaWRsYXll ciBtaXN0YWtlKS4KPiA+IFBsZWFzZSB1c2UgZHJtX2Rldl9hbGxvYy9yZWdpc3RlciBwYWlycyBk aXJlY3RseSBpbnN0ZWFkLCBhbmQgcHV0IHlvdXIKPiA+IGRldmljZSBzZXR1cCBjb2RlIGluLWJl dHdlZW4uIFNpbWlsYXIgZm9yIHVubG9hZGluZy4gVGhlcmUncyBhIGJ1bmNoIG9mCj4gPiBleGFt cGxlIGRyaXZlcnMgY29udmVydGVkIGFscmVhZHkuCj4gCj4gT2sgSSB0b29rICJhdG1lbC1obGNk YyIgYXMgZXhhbXBsZS4KPiBBbmQgdGhhdCdzIGludGVyZXN0aW5nLgo+IAo+IElmIEkgcHV0IG15 wqBhcmNwZ3VfbG9hZCgpIGluIGJldHdlZW7CoGRybV9kZXZfYWxsb2MoKSBhbmQKPiBkcm1fZGV2 X3JlZ2lzdGVyKCkgdGhlbiBJJ20gZ2V0dGluZyB0aGlzIG9uIHRoZSBkcml2ZXIgcHJvYmU6Cj4g LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT44LS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+IFtkcm1dIEluaXRpYWxpemVkIGRybSAxLjEuMCAyMDA2MDgxMAo+IGFyY3Bn dSBlMDAxNzAwMC5wZ3U6IGFyY19wZ3UgSUQ6IDB4YWJiYWJhYWIKPiAtLS0tLS0tLS0tLS1bIGN1 dCBoZXJlIF0tLS0tLS0tLS0tLS0KPiBXQVJOSU5HOiBDUFU6IDAgUElEOiAxIGF0IGxpYi9rb2Jq ZWN0LmM6MjQ0IGtvYmplY3RfYWRkX2ludGVybmFsKzB4MTdjLzB4NDk4KCkKPiBrb2JqZWN0X2Fk ZF9pbnRlcm5hbCBmYWlsZWQgZm9yIGNhcmQwLUhETUktQS0xIChlcnJvcjogLTIgcGFyZW50OiBj YXJkMCkKPiBNb2R1bGVzIGxpbmtlZCBpbjoKPiBDUFU6IDAgUElEOiAxIENvbW06IHN3YXBwZXIg Tm90IHRhaW50ZWQgNC41LjAtcmMzLTAxMDYyLWdhNDQ3ODIyLWRpcnR5ICMxNwo+IAo+IFN0YWNr IFRyYWNlOgo+IMKgIGFyY191bndpbmRfY29yZS5jb25zdHByb3AuMSsweGE0LzB4MTEwCj4gwqAg d2Fybl9zbG93cGF0aF9mbXQrMHg2ZS8weGZjCj4gwqAga29iamVjdF9hZGRfaW50ZXJuYWwrMHgx N2MvMHg0OTgKPiDCoCBrb2JqZWN0X2FkZCsweDk4LzB4ZTQKPiDCoCBkZXZpY2VfYWRkKzB4YzYv MHg3MzQKPiDCoCBkZXZpY2VfY3JlYXRlX3dpdGhfZ3JvdXBzKzB4MTJhLzB4MTQ0Cj4gwqAgZHJt X3N5c2ZzX2Nvbm5lY3Rvcl9hZGQrMHg1NC8weGU4Cj4gwqAgYXJjcGd1X2RybV9oZG1pX2luaXQr MHhkNC8weDE3Ywo+IMKgIGFyY3BndV9wcm9iZSsweDEzOC8weDI0Ywo+IMKgIHBsYXRmb3JtX2Ry dl9wcm9iZSsweDJlLzB4NmMKPiDCoCByZWFsbHlfcHJvYmUrMHgyMTIvMHgzNWMKPiDCoCBfX2Ry aXZlcl9hdHRhY2grMHg5MC8weDk0Cj4gwqAgYnVzX2Zvcl9lYWNoX2RldisweDQ2LzB4ODAKPiDC oCBidXNfYWRkX2RyaXZlcisweDE0ZS8weDFiNAo+IMKgIGRyaXZlcl9yZWdpc3RlcisweDY0LzB4 MTA4Cj4gwqAgZG9fb25lX2luaXRjYWxsKzB4ODYvMHgxOTQKPiDCoCBrZXJuZWxfaW5pdF9mcmVl YWJsZSsweGYwLzB4MTg4Cj4gLS0tWyBlbmQgdHJhY2UgYzY3MTY2YWQ0M2RkY2NlMiBdLS0tCj4g W2RybTpkcm1fc3lzZnNfY29ubmVjdG9yX2FkZF0gYWRkaW5nICJIRE1JLUEtMSIgdG8gc3lzZnMK PiBbZHJtOmRybV9zeXNmc19jb25uZWN0b3JfYWRkXSAqRVJST1IqIGZhaWxlZCB0byByZWdpc3Rl ciBjb25uZWN0b3IgZGV2aWNlOiAtMgo+IGFyY3BndSBlMDAxNzAwMC5wZ3U6IGZhaWxlZCB0byBy ZWdpdGVyIERSTSBjb25uZWN0b3IgYW5kIGhlbHBlciBmdW5jcwo+IGFyY3BndTogcHJvYmUgb2Yg ZTAwMTcwMDAucGd1IGZhaWxlZCB3aXRoIGVycm9yIC0yCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLT44LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IAo+IEJ1dCBp ZiBJIG1vdmUgYXJjcGd1X2xvYWQoKSBhZnRlciBkcm1fZGV2X3JlZ2lzdGVyKCkgdGhlbiBldmVy eXRoaW5nCj4gc3RhcnRzIHByb3Blcmx5IGFuZCBJIG1heSBzZWUgSERNSSBzY3JlZW4gd29ya3Mg cGVyZmVjdGx5IGZpbmUuCj4gCj4gQW55IHRob3VnaHRzPwoKT29wcywgeWVhaCBtaXNzZWQgdGhh dCBkZXRhaWwuIElmIHlvdSBsb29rIGF0IGF0bWVsIGl0IGhhcyBhIGxvb3AgdG8KcmVnaXN0ZXIg YWxsIHRoZSBkcm0gY29ubmVjdG9ycyBfYWZ0ZXJfIGNhbGxpbmcgZHJtX2Rldl9yZWdpc3Rlcigp LgpUb3RhbGx5IGZvcmdvdCBhYm91dCB0aGF0LiBDYW4geW91IHBscwotIEV4dHJhY3QgYSBuZXcg ZHJtX2Nvbm5lY3Rvcl9yZWdpc3Rlcl9hbGwoKSBmdW5jdGlvbgogIChhdG1lbF9obGNkY19kY19j b25uZWN0b3JfcGx1Z19hbGwgc2VlbXMgdG8gYmUgdGhlIGJlc3QgdGVtcGxhdGUpLAogIGluY2x1 ZGluZyBrZXJuZWxkb2MuCi0gQWRqdXN0IGtlcm5lbGRvYyBvZiBkcm1fZGV2X3JlZ2lzdGVyKCkg dG8gbWVudGlvbgogIGRybV9jb25uZWN0b3JfcmVnaXN0ZXJfYWxsKCkgYW5kIHRoYXQgb3JkZXJp bmcgY29uc3RyYWludC4KLSBSb2xsIHRoYXQgaGVscGVyIG91dCB0byBhbGwgdGhlIGRyaXZlcnMg dGhhdCBjdXJyZW50bHkgaGFuZC1yb2xsIGl0IChvbmUKICBwYXRjaCBwZXIgZHJpdmVyKS4KCkkg a25vdyBhIGJpdCBvZiB3b3JrIGJ1dCBpbW8gbm90IHRvbyBtdWNoLCBhbmQgYnkgZG9pbmcgc29t ZSBzbWFsbApyZWZhY3RvcmluZyBldmVyeSB0aW1lIHNvbWVvbmUgc3R1bWJsZXMgb3ZlciBhIGRy bSBwaXRmYWxsIHdlIGtlZXAgdGhlCnN1YnN5c3RlbSBjbGVhbiZlYXN5IHRvIHVuZGVyc3RhbmQu IFlvdSdyZSB1cCBmb3IgdGhpcz8gV291bGQgYmUgYSBwcmVwCnNlcmllcywgSSdsbCBoYXBwaWx5 IHJldmlldyBpdCB0byBnZXQgaXQgbWVyZ2VkIGZhc3QuIEp1c3QgYSBmZXcgd2Vla3MgYWdvCkkg bWVyZ2VkIDIwKyBwYXRjaGVzIHRvIG1ha2UgLT5tb2RlX2ZpeHVwIGhvb2tzIG9wdGlvbmFsIGFu ZCByZW1vdmUgZHVtbXkKb25lcyBhbGwgb3ZlciB0aGUgc3Vic3lzdGVtLCBpbiBvdGhlciB3b3Jk czogWW91J2xsIGhhdmUgbXkgZnVsbCBhdHRlbnRpb24KOy0pCgo+ID4gPiArCS5kdW1iX2NyZWF0 ZSA9IGRybV9nZW1fY21hX2R1bWJfY3JlYXRlLAo+ID4gPiArCS5kdW1iX21hcF9vZmZzZXQgPSBk cm1fZ2VtX2NtYV9kdW1iX21hcF9vZmZzZXQsCj4gPiA+ICsJLmR1bWJfZGVzdHJveSA9IGRybV9n ZW1fZHVtYl9kZXN0cm95LAo+ID4gPiArCS5nZXRfdmJsYW5rX2NvdW50ZXIgPSBkcm1fdmJsYW5r X25vX2h3X2NvdW50ZXIsCj4gPiA+ICsJLnByaW1lX2hhbmRsZV90b19mZCA9IGRybV9nZW1fcHJp bWVfaGFuZGxlX3RvX2ZkLAo+ID4gPiArCS5wcmltZV9mZF90b19oYW5kbGUgPSBkcm1fZ2VtX3By aW1lX2ZkX3RvX2hhbmRsZSwKPiA+ID4gKwkuZ2VtX2ZyZWVfb2JqZWN0ID0gZHJtX2dlbV9jbWFf ZnJlZV9vYmplY3QsCj4gPiA+ICsJLmdlbV92bV9vcHMgPSAmZHJtX2dlbV9jbWFfdm1fb3BzLAo+ ID4gPiArCS5nZW1fcHJpbWVfZXhwb3J0ID0gZHJtX2dlbV9wcmltZV9leHBvcnQsCj4gPiA+ICsJ LmdlbV9wcmltZV9pbXBvcnQgPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKPiA+ID4gKwkuZ2VtX3By aW1lX2dldF9zZ190YWJsZSA9IGRybV9nZW1fY21hX3ByaW1lX2dldF9zZ190YWJsZSwKPiA+ID4g KwkuZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSA9IGRybV9nZW1fY21hX3ByaW1lX2ltcG9ydF9z Z190YWJsZSwKPiA+ID4gKwkuZ2VtX3ByaW1lX3ZtYXAgPSBkcm1fZ2VtX2NtYV9wcmltZV92bWFw LAo+ID4gPiArCS5nZW1fcHJpbWVfdnVubWFwID0gZHJtX2dlbV9jbWFfcHJpbWVfdnVubWFwLAo+ ID4gPiArCS5nZW1fcHJpbWVfbW1hcCA9IGRybV9nZW1fY21hX3ByaW1lX21tYXAsCj4gPiA+ICt9 Owo+ID4gPiArCj4gPiA+ICtzdGF0aWMgaW50IGFyY3BndV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQo+ID4gPiArewo+ID4gPiArCXJldHVybiBkcm1fcGxhdGZvcm1faW5pdCgm YXJjcGd1X2RybV9kcml2ZXIsIHBkZXYpOwo+ID4gLi4uIG9yIHJlYWQgdGhlIGtlcm5lbGRvYyBv ZiB0aGlzIGZ1bmN0aW9uLCB3aGljaCBhbHNvIGV4cGxhaW5zIHdoYXQgeW91Cj4gPiBzaG91bGQg ZG8gOy0pCj4gCj4gQ291bGQgeW91IHBsZWFzZSBwb2ludCBtZSB0byB0aGUgcmVsZXZhbnQgZG9j dW1lbnQ/Cj4gSSB3YXNuJ3QgYWJsZSB0byBmaW5kIGFueXRoaW5nIHJlbGF0ZWQgZnJvbSB0aGUg Zmlyc3QgZ2xhbmNlIDooCgpUaGUga2VybmVsZG9jIGNvbW1lbnQgZm9yIGRybV9wbGF0Zm9ybV9p bml0IHNheXMgaXQncyBkZXByZWNhdGVkLCBwbGVhc2UKdXNlIGRybV9kZXZfYWxsb2MvcmVnaXN0 ZXIgaW5zdGVhZC4KPiAKPiA+ID4gKwo+ID4gPiArLyoKPiA+ID4gKyAqIFRoaXMgZnVuY3Rpb24g aXMgdGhlIG9ubHkgcmVhc29uIHRvIGhhdmUgYSBjb3B5IG9mIGRybV9mYmRldl9jbWFfaW5pdCgp Cj4gPiA+ICsgKiBoZXJlIGluIHRoaXMgZHJpdmVyLgo+ID4gPiArICoKPiA+ID4gKyAqIEluIGl0 cyB0dXJuIHRoaXMgbW1hcCgpIGlzIHJlcXVpcmVkIHRvIG1hcmsgdXNlci1zcGFjZSBwYWdlIGFz IG5vbi1jYWNoZWQKPiA+ID4gKyAqIGJlY2F1c2UgaXQgaXMganVzdCBhIG1pcnJvciBvciByZWFs IGhhcmR3YXJlIGZyYW1lLWJ1ZmZlci4KPiA+ID4gKyAqLwo+ID4gPiArc3RhdGljIGludCBhcmNw Z3VfbW1hcChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEp Cj4gPiA+ICt7Cj4gPiA+ICsJdm1hLT52bV9wYWdlX3Byb3QgPSBwZ3Byb3Rfbm9uY2FjaGVkKHZt YS0+dm1fcGFnZV9wcm90KTsKPiA+ID4gKwlyZXR1cm4gdm1faW9tYXBfbWVtb3J5KHZtYSwgaW5m by0+Zml4LnNtZW1fc3RhcnQsIGluZm8tPmZpeC5zbWVtX2xlbik7Cj4gPiA+ICt9Cj4gPiBUaGlz IGxvb2tzIHZlcnkgZmlzaHksIG5vIG90aGVyIGRybSBkcml2ZXIgZXZlbiBib3RoZXJzIHdpdGgg cHJvdmlkaW5nIGFuCj4gPiBmYl9tbWFwIGhvb2suIFdoYXQgZXhhY3RseSBkbyB5b3UgbmVlZCB0 aGlzIGZvcj8gQXNzdW1pbmcgeW91J3ZlIG1tYXBwZWQKPiA+IHlvdXIgZmJjb24gZHJtX2ZyYW1l YnVmZmVyIGNvcnJlY3RseSBmb3Iga2VybmVsIGFjY2VzcyB0aGluZ3Mgc2hvdWxkIGp1c3QKPiA+ IHdvcmsgLi4uCj4gCj4gSW5kZWVkIGZvciBrZXJuZWwgdGhlcmUncyBub24gbmVlZCB0byB0aGF0 IGhhY2suIEtlcm5lbCBkZWFscyBkaXJlY3RseSB3aXRoIEhXCj4gZnJhbWUtYnVmZmVyIGFyZWEg KHRoYXQgYWRkcmVzcyB3ZSBnZXQgZnJvbSBnZW0tPnBhZGRyKS4gQW5kIHNvIGV2ZXJ5IGJ5dGUg d3JpdHRlbiBnZXRzCj4gcGlja2VkIHVwIGJ5IFBHVSBhbmQgaXMgdGhlbiByZW5kZXJlZCBvbiB0 aGUgZGlzcGxheS4KPiAKPiBCdXQgd2hlbiB1c2VyLXNwYWNlIG9wZW5zIC9kZXYvZmIwIGFuZCBt bWFwcygpIGl0IGRlYWxzIHdpdGggbWVtb3J5IHBhZ2VzIHdoaWNoCj4gYXJlIGJ5IGRlZmF1bHQg KGF0IGxlYXN0IG9uIEFSQykgbWFya2VkIGFzICJjYWNoZWQiLiBJLmUuIHVzZXItc3BhY2UgYXBw bGljYXRpb24KPiAoSSB1c2UgdGhhdCBuaWNlIGRlbW8gYXBwwqBodHRwczovL2dpdGh1Yi5jb20v cXRwcm9qZWN0L3F0L2Jsb2IvNC44L2V4YW1wbGVzL3F3cy9mcmFtZWJ1ZmZlci9tYWluLmMpCj4g ZGVhbHMgd2l0aCBmcmFtZS1idWZmZXIgdmlhIGRhdGEgY2FjaGUuIEFuZCB0aGF0IGhhcyAyIHBy b2JsZW1zOgo+IMKgWzFdIFNpbmNlIG5vIGV4cGxpY2l0IGNhY2hlIGZsdXNoIGdldHMgZXhlY3V0 ZWQgc29tZSBkYXRhIGlzIGxlZnQgaW4gZGF0YSBjYWNoZSwKPiDCoCDCoCDCoGkuZS4gc29tZSBw YXJ0cyBvZiB0aGUgcGljdHVyZSBuZXZlciByZWFjaGVzIHJlYWwgUEdVLgo+IMKgIMKgIMKgU2Vl IHdoYXQgaGFwcGVucyBvbiBkaXNwbGF5IC3CoGh0dHA6Ly9pbWd1ci5jb20vaUFibm54Mwo+IMKg IMKgIMKgVGhvc2UgbWlzc2luZyBsaW5lcyBhcmUgZXhhY3RseSB0aG9zZSAzMi1ieXRlIG1pc3Np bmcgY2FjaGUgbGluZXMuCj4gwqBbMl0gRXZlbiBpZiB3ZSBtYW5hZ2UgdG8gZmx1c2ggZGF0YSBz b21laG93IG1hc3NpdmUgYW1vdW50IG9mIGRhdGEgdGhhdCBnb2VzCj4gwqAgwqAgwqB0aHJvdWdo IGRhdGEgY2FjaGUgKGxldCdzIHNhdCAxMDgwcEAzMEh6KSB3aWxsIHRocmFzaCBpdCBhbmQgYXMg YSByZXN1bHQKPiDCoCDCoCDCoHRoZXJlIHdpbGwgYmUgbm8gYmVuZWZpdCBmb3Igb3RoZXIgY2Fj aGUgdXNlcnMgdG8gdXNlIGNhY2hlLgo+IAo+IFNvIHdlIGZpeCBpdCBzaW1wbHkgbWFya2luZyBw YWdlcyBtYXBwZWQgdG8gdXNlci1zcGFjZSBhcHBzIGFzIHVuY2FjaGVkCj4gdGhhdCBlZmZlY3Rp dmVseSByb3V0ZXMgYWxsIEZCIGRhdGEgZGlyZWN0bHkgdG8gbWVtcnkgaW5zdGVhZCBvZiBwb2xs dXRpbmcgY2FjaGUuCj4gCj4gSG9wZWZ1bGx5IHRoYXQgZXhwbGFuYXRpb24gbWFrZXMgc2Vuc2Uu CgpTdGlsbCBzdHJhbmdlIHRoYXQgeW91J3JlIHRoZSBvbmx5IG9uZSB3aG8gbmVlZHMgdGhpcy4g SSB0aGluayBiZXN0IGNhc2UKd291bGQgYmUgdG8gcHJvdmlkZSBzb21lIG1tYXAgaGVscGVycyBm b3IgZmJkZXYgd2hpY2ggcmVtYXAgdG8gZHVtYiBidWZmZXIKaGVscGVycyBvciBzb21ldGhpbmcg c2ltaWxhci4gVGhhdCB3YXkgb3RoZXIgZHJpdmVycyBkb24ndCBuZWVkIHRvCgpBbm90aGVyIHBp ZWNlIGlzIHRoYXQgcmlnaHQgbm93IGZiZGV2IGVtdWxhdGlvbiBoYXNuJ3Qgd2lyZWQgdXAgdGhl IG1hbnVhbAp1cGRhdGUgbW9kZSB0byB0aGUgZHJtIC0+ZGlydHlmYiBjYWxsLiBEcml2ZXJzIHRo YXQgbmVlZCB0byBtYW51YWwgZmx1c2gKc3R1ZmYgdG8gdGhlIHNjcmVlbiBjdXJyZW50bHkgYWxs IGhhdmUgdG8gaGFuZC1yb2xsIHRob3NlIGNhbGxzIG9uZSB3YXkgb3IKdGhlIG90aGVyICh1ZGws IHF4bCwgaTkxNSkuCgpCdXQganVzdCBhbiBvYnNlcnZhdGlvbiByZWFsbHksIG5vdGhpbmcgdG8g Zml4IHVwIGZvciB0aGlzIGRyaXZlciBpbW8uCi1EYW5pZWwKLS0gCkRhbmllbCBWZXR0ZXIKU29m dHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=