From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC PATCH Xilinx Alveo 0/6] Xilinx PCIe accelerator driver Date: Wed, 3 Apr 2019 15:14:49 +0200 Message-ID: <20190403131449.GB2665@phenom.ffwll.local> References: <20190319215401.6562-1-sonal.santan@xilinx.com> <20190325202810.GG2665@phenom.ffwll.local> <20190327141137.GK2665@phenom.ffwll.local> <871s2pw4ld.fsf@fisel.enstb.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com [IPv6:2a00:1450:4864:20::542]) by gabe.freedesktop.org (Postfix) with ESMTPS id B98E689A86 for ; Wed, 3 Apr 2019 13:14:54 +0000 (UTC) Received: by mail-ed1-x542.google.com with SMTP id d11so5122583edp.11 for ; Wed, 03 Apr 2019 06:14:54 -0700 (PDT) Content-Disposition: inline In-Reply-To: <871s2pw4ld.fsf@fisel.enstb.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ronan KERYELL Cc: Sonal Santan , "gregkh@linuxfoundation.org" , Cyril Chemparathy , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , Ralph Wittig , Michal Simek , Lizhi Hou , "airlied@redhat.com" , Ronan Keryell , linux-fpga@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBNYXIgMjksIDIwMTkgYXQgMDY6MDk6MThQTSAtMDcwMCwgUm9uYW4gS0VSWUVMTCB3 cm90ZToKPiBJIGFtIGFkZGluZyBsaW51eC1mcGdhQHZnZXIua2VybmVsLm9yZywgc2luY2UgdGhp cyBpcyB3aHkgSSBtaXNzZWQgdGhpcwo+IHRocmVhZCBpbiB0aGUgZmlyc3QgcGxhY2UuLi4KPiAK PiA+Pj4+PiBPbiBGcmksIDI5IE1hciAyMDE5IDE0OjU2OjE3ICsxMDAwLCBEYXZlIEFpcmxpZSA8 YWlybGllZEBnbWFpbC5jb20+IHNhaWQ6Cj4gCj4gSGkgRGF2ZSEKPiAKPiAgICAgRGF2ZT4gT24g VGh1LCAyOCBNYXIgMjAxOSBhdCAxMDoxNCwgU29uYWwgU2FudGFuIDxzb25hbHNAeGlsaW54LmNv bT4gd3JvdGU6Cj4gCj4gICAgID4+PiBGcm9tOiBEYW5pZWwgVmV0dGVyIFttYWlsdG86ZGFuaWVs LnZldHRlckBmZndsbC5jaF0KPiAKPiBbLi4uXQo+IAo+ICAgICA+Pj4gTm90ZTogVGhlcmUncyBu byBleHBlY3RhdGlvbiBmb3IgdGhlIGZ1bGx5IG9wdGltaXppbmcgY29tcGlsZXIsCj4gICAgID4+ PiBhbmQgd2UncmUgdG90YWxseSBvayBpZiB0aGVyZSdzIGFuIG9wdGltaXppbmcgcHJvcHJpZXRh cnkKPiAgICAgPj4+IGNvbXBpbGVyIGFuZCBhIGJhc2ljIG9wZW4gb25lIChhbWQsIGFuZCBidW5j aCBvZiBvdGhlcgo+ICAgICA+Pj4gY29tcGFuaWVzIGFsbCBoYXZlIHN1Y2ggZHVhbCBzdGFja3Mg cnVubmluZyBvbiB0b3Agb2YgZHJtCj4gICAgID4+PiBrZXJuZWwgZHJpdmVycykuIEJ1dCBhIGJh c2ljIGNvbXBpbGVyIHRoYXQgY2FuIGNvbnZlcnQgYmFzaWMKPiAgICAgPj4+IGtlcm5lbHMgaW50 byBtYWNoaW5lIGNvZGUgaXMgZXhwZWN0ZWQuCj4gCj4gICAgID4+IEFsdGhvdWdoIHRoZSBjb21w aWxlciBpcyBub3Qgb3BlbiBzb3VyY2UgdGhlIGNvbXBpbGF0aW9uIGZsb3cKPiAgICAgPj4gbGV0 cyB1c2VycyBleGFtaW5lIG91dHB1dCBmcm9tIHZhcmlvdXMgc3RhZ2VzLiBGb3IgZXhhbXBsZSBp ZiB5b3UKPiAgICAgPj4gd3JpdGUgeW91ciBrZXJuZWwgaW4gT3BlbkNML0MvQysrIHlvdSBjYW4g dmlldyB0aGUgUlRMCj4gICAgID4+IChWZXJpbG9nL1ZIREwpIG91dHB1dCBwcm9kdWNlZCBieSBm aXJzdCBzdGFnZSBvZiBjb21waWxhdGlvbi4KPiAgICAgPj4gTm90ZSB0aGF0IHRoZSBjb21waWxl ciBpcyByZWFsbHkgZ2VuZXJhdGluZyBhIGN1c3RvbSBjaXJjdWl0Cj4gICAgID4+IGdpdmVuIGEg aGlnaCBsZXZlbCBpbnB1dCB3aGljaCBpbiB0aGUgbGFzdCBwaGFzZSBnZXRzIHN5bnRoZXNpemVk Cj4gICAgID4+IGludG8gYml0c3RyZWFtLiBFeHBlcnQgaGFyZHdhcmUgZGVzaWduZXJzIGNhbiBo YW5kY3JhZnQgYSBjaXJjdWl0Cj4gICAgID4+IGluIFJUTCBhbmQgZmVlZCBpdCB0byB0aGUgY29t cGlsZXIuIE91ciBGUEdBIHRvb2xzIGxldCB5b3Ugdmlldwo+ICAgICA+PiB0aGUgZ2VuZXJhdGVk IGhhcmR3YXJlIGRlc2lnbiwgdGhlIHJlZ2lzdGVyIG1hcCwgZXRjLiBZb3UgY2FuIGdldAo+ICAg ICA+PiBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGEgY29tcGlsZWQgZGVzaWduIGJ5IHJ1bm5pbmcg WFJUIHRvb2wgbGlrZQo+ICAgICA+PiB4Y2xiaW51dGlsIG9uIHRoZSBnZW5lcmF0ZWQgZmlsZS4K PiAKPiAgICAgPj4gSW4gZXNzZW5jZSBjb21waWxpbmcgZm9yIEZQR0FzIGlzIHF1aXRlIGRpZmZl cmVudCB0aGFuIGNvbXBpbGluZwo+ICAgICA+PiBmb3IgR1BVL0NQVS9EU1AuICBJbnRlcmVzdGlu Z2x5IEZQR0EgY29tcGlsZXJzIGNhbiBydW4gYW55d2hlcmUKPiAgICAgPj4gZnJvbSAzMCBtaW5z IHRvIGEgZmV3IGhvdXJzIHRvIGNvbXBpbGUgYSB0ZXN0Y2FzZS4KPiAKPiAgICAgRGF2ZT4gU28g aXMgdGhlcmUgYW55IG9wZW4gc291cmNlIHVzZXJzcGFjZSBnZW5lcmF0b3IgZm9yIHdoYXQgdGhp cwo+ICAgICBEYXZlPiBpbnRlcmZhY2UgcHJvdmlkZXM/IElzIHRoZSBiaXRzdHJlYW0gZm9ybWF0 IHRoYXQgZ2V0cyBmZWQgaW50bwo+ICAgICBEYXZlPiB0aGUgRlBHQSBwcm9wcmlldGFyeSBhbmQg aXMgaXQgc2lnbmVkPwo+IAo+IFNob3J0IGFuc3dlcjoKPiAKPiAtIGEgYml0c3RyZWFtIGlzIGFu IG9wYXF1ZSBjb250ZW50IHNpbWlsYXIgdG8gdmFyaW91cyBmaXJtd2FyZSBoYW5kbGVkCj4gICBi eSBMaW51eCwgRUZJIGNhcHN1bGVzLCB4ODYgbWljcm9jb2RlLCBXaUZpIG1vZGVtcywgZXRjLgo+ IAo+IC0gdGhlcmUgaXMgbm8gb3Blbi1zb3VyY2UgZ2VuZXJhdG9yIGZvciB3aGF0IHRoZSBpbnRl cmZhY2UgY29uc3VtZTsKPiAKPiAtIEkgZG8gbm90IGtub3cgaWYgaXQgaXMgc2lnbmVkOwo+IAo+ IC0gaXQgaXMgcHJvYmFibHkgc2ltaWxhciB0byB3aGF0IEludGVsIEZQR0EgKG5vdCBHUFUpIGRy aXZlcnMgcHJvdmlkZQo+ICAgYWxyZWFkeSBpbnNpZGUgdGhlIExpbnV4IGtlcm5lbCBhbmQgSSBn dWVzcyB0aGVyZSBpcyBubyBwdXJlCj4gICBvcGVuLXNvdXJjZSB3YXkgdG8gZ2VuZXJhdGUgdGhl aXIgYml0LXN0cmVhbSBlaXRoZXIuCgpZZWFoLCBkcml2ZXJzL2dwdSBmb2xrcyB3b3VsZG4ndCBl dmVyIGhhdmUgbWVyZ2VkIGRyaXZlcnMvZnBnYSwgYW5kIEkKdGhpbmsgdGhlcmUncyBwcmV0dHkg c3Ryb25nIGNvbnNlbnN1cyBvdmVyIGhlcmUgdGhhdCBtZXJnaW5nIGZwZ2Egc3R1ZmYKd2l0aG91 dCBoYXZpbmcgY2xlYXIgc3BlY3MgKGluIHRoZSBmb3JtIG9mIGFuIGV4ZWN1dGFibGUgb3BlbiBz b3VyY2UKY29tcGlsZXIvc3ludGhlc2l6ZXIvd2hhdGV2ZXIpIHdhcyBhIG1pc3Rha2UuCgpXZSBq dXN0IGhhZCBhIHNpbWlsYXIgaHVnZSBkaXNjdXNzaW9ucyBhcm91bmQgdGhlIHJlY2VudGx5IG1l cmdlZApoYWJhbmFsYWJzIGRyaXZlciBpbiBkcml2ZXJzL21pc2MsIGZvciBuZXVyYWwgbmV0d29y ayBhY2NlbC4gVGhlcmUgd2FzIGEKcHJvcG9zZWQgZHJpdmVycy9hY2NlbCBmb3IgdGhlc2UuIGdw dSBmb2xrcyBvYmplY3RlZCwgR3JlZyBhbmQgT2xvZiB3ZXJlCmhhcHB5IHdpdGggbWVyZ2luZy4K CkFuZCB0aGUgZXhhY3Qgc2FtZSBhcmd1bWVudHMgaGFzIGNvbWUgdXAgdG9ucyBvZiB0aW1lcyBm b3IgZ3B1cyB0b28sIHdpdGgKbG90cyBwcm9wb3NhbHMgdG8gbWVyZ2UgYSBrZXJuZWwgZHJpdmVy IHdpdGgganVzdCB0aGUga2VybmVsIGRyaXZlciBiZWluZwpvcGVuIHNvdXJjZSwgb3IganVzdCB0 aGUgc3RhdGUgdHJhY2tlci9ydW50aW1lLCBidXQgbW9zdCBkZWZpbml0ZWx5IG5vdAphbnl0aGlu ZyBsb29raW5nIGxpa2UgdGhlIGNvbXBpbGVyLiBCZWNhdXNlICRyZWFzb25zLgoKQ29uY2x1c2lv biB3YXMgdGhhdCBkcml2ZXJzL2dwdSBwZW9wbGUgd2lsbCBjb250aW51ZSB0byByZWplY3QgdGhl c2UsCmV2ZXJ5b25lIGVsc2Ugd2lsbCBjb250aW51ZSB0byB0YWtlIHdoYXRldmVyLCBidXQganVz dCBkb24ndCBjb21wbGFpbiB0bwp1cyBpZiBpdCBhbGwgY29tZXMgY3Jhc2hpbmcgZG93biA6LSkK Cj4gTG9uZyBhbnN3ZXI6Cj4gCj4gLSBwcm9jZXNzb3JzLCBHUFUgYW5kIG90aGVyIGRpZ2l0YWwg Y2lyY3VpdHMgYXJlIGRlc2lnbmVkIGZyb20gYSBsb3Qgb2YKPiAgIGVsZW1lbnRhcnkgdHJhbnNp c3RvcnMsIHdpcmVzLCBjYXBhY2l0b3JzLCByZXNpc3RvcnMuLi4gdXNpbmcgc29tZQo+ICAgdmVy eSBjb21wbGV4IChhbmQgZXhwZW5zaXZlKSB0b29scyBmcm9tIHNvbWUgRURBIGNvbXBhbmllcyBi dXQgYXQgdGhlCj4gICBlbmQsIGFmdGVyIG1vbnRocyBvZiB3b3JrLCB0aGV5IGNvbWUgb2Z0ZW4g d2l0aCBhICJzaW1wbGUiIHB1YmxpYwo+ICAgaW50ZXJmYWNlLCB0aGUuLi4gaW5zdHJ1Y3Rpb24g c2V0ISBTbyBpdCBpcyByYXRoZXIgImVhc3kiIGF0IHRoZSBlbmQKPiAgIHRvIGdlbmVyYXRlIHNv bWUgaW5zdHJ1Y3Rpb25zIHdpdGggYSBjb21waWxlciBzdWNoIGFzIExMVk0gZnJvbSBhCj4gICBk ZXNjcmlwdGlvbiBvZiB0aGlzIElTQSBvciBzb21lIHJldmVyc2UgZW5naW5lZXJpbmcuIE5vdGUg dGhhdCBldmVuIGlmCj4gICB0aGUgSVNBIGlzIHB1YmxpYywgaXQgaXMgdmVyeSBkaWZmaWN1bHQg dG8gbWFrZSBhbm90aGVyIGVmZmljaWVudAo+ICAgcHJvY2Vzc29yIGZyb20gc2NyYXRjaCBqdXN0 IGZyb20gdGhpcyBJU0EsIHNvIHRoZXJlIGlzIG9mdGVuIG5vCj4gICBjb25jZXJuIGFib3V0IG1h a2luZyB0aGlzIElTQSBwdWJsaWMgdG8gZGV2ZWxvcCB0aGUgZWNvc3lzdGVtIDsKPiAKPiAtIEZQ R0EgYXJlIGZpZWxkLXByb2dyYW1tYWJsZSBnYXRlIGFycmF5cywgbWFkZSBhbHNvIGZyb20gYSBs b3Qgb2YKPiAgIGVsZW1lbnRhcnkgdHJhbnNpc3RvcnMsIHdpcmVzLCBjYXBhY2l0b3JzLCByZXNp c3RvcnMuLi4gYnV0IG9yZ2FuaXplZAo+ICAgaW4gYmlsbGlvbnMgb2YgdmVyeSBsb3ctbGV2ZWwg ZWxlbWVudGFyeSBnYXRlcywgbWVtb3J5IGVsZW1lbnRzLCBEU1AKPiAgIGJsb2NrcywgSS9PIGJs b2NrcywgY2xvY2sgZ2VuZXJhdG9ycywgc3BlY2lmaWMKPiAgIGFjY2VsZXJhdG9ycy4uLiBkaXJl Y3RseSBleHBvc2VkIHRvIHRoZSB1c2VyIGFuZCB0aGF0IGNhbiBiZQo+ICAgcHJvZ3JhbW1lZCBh Y2NvcmRpbmcgdG8gYSBjb25maWd1cmF0aW9uIG1lbW9yeSAodGhlIGJpdHN0cmVhbSkgdGhhdAo+ ICAgZGV0YWlscyBob3cgdG8gY29ubmVjdCBlYWNoIHBhcnQsIHJvdXRpbmcgZWxlbWVudCwgY29u ZmlndXJpbmcgZWFjaAo+ICAgZWxlbWVudGFsIHBpZWNlIG9mIGhhcmR3YXJlLiAgU28gaW5zdGVh ZCBvZiBqdXN0IHdyaXRpbmcgaW5zdHJ1Y3Rpb25zCj4gICBsaWtlIG9uIGEgQ1BVIG9yIGEgR1BV LCB5b3UgbmVlZCB0byBjb25maWd1cmUgZWFjaCBiaXQgb2YgdGhlCj4gICBhcmNoaXRlY3R1cmUg aW4gc3VjaCBhIHdheSBpdCBkb2VzIHNvbWV0aGluZyBpbnRlcmVzdGluZyBmb3IKPiAgIHlvdS4g Q29uY3JldGVseSwgeW91IHdyaXRlIHNvbWUgcHJvZ3JhbXMgaW4gUlRMIGxhbmd1YWdlcyAoVmVy aWxvZywKPiAgIFZIREwpIG9yIGhpZ2hlci1sZXZlbCAoQy9DKyssIE9wZW5DTCwgU1lDTC4uLikg IGFuZCB5b3UgdXNlIHNvbWUgdmVyeQo+ICAgY29tcGxleCAoYW5kIGV4cGVuc2l2ZSkgdG9vbHMg ZnJvbSBzb21lIEVEQSBjb21wYW5pZXMgdG8gZ2VuZXJhdGUgdGhlCj4gICBiaXRzdHJlYW0gaW1w bGVtZW50aW5nIGFuIGVxdWl2YWxlbnQgY2lyY3VpdCB3aXRoIHRoZSBzYW1lCj4gICBzZW1hbnRp Y3MuIFNpbmNlIHRoZSBhcmNoaXRlY3R1cmUgaXMgc28gbG93IGxldmVsLCB0aGVyZSBpcyBhIGRp cmVjdAo+ICAgbWFwcGluZyBiZXR3ZWVuIHRoZSBjb25maWd1cmF0aW9uIG1lbW9yeSAoYml0c3Ry ZWFtKSBhbmQgdGhlIGhhcmR3YXJlCj4gICBhcmNoaXRlY3R1cmUgaXRzZWxmLCBzbyBpZiBpdCBp cyBwdWJsaWMgdGhlbiBpdCBpcyBlYXN5IHRvIGR1cGxpY2F0ZQo+ICAgdGhlIEZQR0EgaXRzZWxm IGFuZCB0byBzdGFydCBhIG5ldyBGUEdBIGNvbXBhbnkuIFRoYXQgaXMgdW5mb3J0dW5hdGVseQo+ ICAgc29tZXRoaW5nIHRoZSBleGlzdGluZyBGUEdBIGNvbXBhbmllcyBkbyBub3Qgd2FudC4uLiA7 LSkKCmkuZS4geW91IGhhdmUgYSB1c2UgY2FzZSB3aGVyZSB5b3UgYWJzb2x1dGVseSBuZWVkIGFu IG9mZmxpbmUgY29tcGlsZXIuCkxpa2Ugd2l0aCBncHVzIChpbiBzb21lIHVzZSBjYXNlcyksIHRo ZSBvbmx5IGRpZmZlcmVuY2UgaXMgdGhhdCBmb3IgZ3B1cwp0aGUgbGF0ZW5jeSByZXF1aXJlbWVu dCB0aGF0J3MgdG9vIGhpZ2ggaXMgbWVhc3VyZWQgaW4gbWlsbGlzZWNvbmRzLCBjYXVzZQp0aGF0 IHdvdWxkIGNhdXNlIGRyb3BwZWQgZnJhbWVzLCBhbmQgd29yc3QgY2FzZSBjb21waWxpbmcgdGFr ZXMgc2Vjb25kcwpmb3Igc29tZSBiaWcgc2hhZGVycy4gV2l0aCBGUEdBcyBpdCdzIGp1c3QgMTAw MHggaGlnaGVyIGxpbWl0cywgc2FtZSBwcm9ibGVtLgoKPiBUbyBzdW1tYXJpemU6Cj4gCj4gLSBv biBhIENQVSAmIEdQVSwgdGhlIHZlbmRvciB1c2VkIHRoZSBleHBlbnNpdmUgRURBIHRvb2xzIG9u Y2UgYWxyZWFkeQo+ICAgZm9yIHlvdSBhbmQgcHJvdmlkZSB0aGUgc2ltcGxlciBJU0EgaW50ZXJm YWNlOwo+IAo+IC0gb24gYW4gRlBHQSwgeW91IGhhdmUgYWNjZXNzIHRvIGEgcGlsZSBvZiBsb3ct bGV2ZWwgaGFyZHdhcmUgYW5kIGl0IGlzCj4gICB1cCB0byB5b3UgdG8gdXNlIHRoZSBsZW5ndGh5 IHByb2Nlc3Mgb2YgYnVpbGRpbmcgeW91ciBvd24gY29tcHV0aW5nCj4gICBhcmNoaXRlY3R1cmUg dXNpbmcgdGhlIGhlYXZ5IGV4cGVuc2l2ZSB2ZXJ5IHN1YnRsZSBFREEgdG9vbHMgdGhhdCB3aWxs Cj4gICBydW4gZm9yIGhvdXJzIG9yIGRheXMgdG8gZ2VuZXJhdGUgc29tZSBnb29kLWVub3VnaCBw bGFjZW1lbnQgZm9yIHlvdXIKPiAgIHBsZWFzdXJlLgo+IAo+IFRoZXJlIGlzIHNvbWUgcHVibGlj IGRvY3VtZW50YXRpb24gb24tbGluZToKPiBodHRwczovL3d3dy54aWxpbnguY29tL3Byb2R1Y3Rz L3NpbGljb24tZGV2aWNlcy9mcGdhL3ZpcnRleC11bHRyYXNjYWxlLXBsdXMuaHRtbCNkb2N1bWVu dGF0aW9uCj4gCj4gVG8gaGF2ZSBhbiBpZGVhIG9mIHRoZSBlbGVtZW50YXJ5IGFyY2hpdGVjdHVy ZToKPiBodHRwczovL3d3dy54aWxpbnguY29tL3N1cHBvcnQvZG9jdW1lbnRhdGlvbi91c2VyX2d1 aWRlcy91ZzU3NC11bHRyYXNjYWxlLWNsYi5wZGYKPiBodHRwczovL3d3dy54aWxpbnguY29tL3N1 cHBvcnQvZG9jdW1lbnRhdGlvbi91c2VyX2d1aWRlcy91ZzU3OS11bHRyYXNjYWxlLWRzcC5wZGYK PiBodHRwczovL3d3dy54aWxpbnguY29tL3N1cHBvcnQvZG9jdW1lbnRhdGlvbi91c2VyX2d1aWRl cy91ZzU3My11bHRyYXNjYWxlLW1lbW9yeS1yZXNvdXJjZXMucGRmCj4gCj4gRXZlbiBvbiB0aGUg Y29uZmlndXJhdGlvbiBhbmQgdGhlIGZpbGUgZm9ybWF0LCBidXQgd2l0aG91dCBhbnkgZGV0YWls ZWQgc2VtYW50aWNzOgo+IGh0dHBzOi8vd3d3LnhpbGlueC5jb20vc3VwcG9ydC9kb2N1bWVudGF0 aW9uL3VzZXJfZ3VpZGVzL3VnNTcwLXVsdHJhc2NhbGUtY29uZmlndXJhdGlvbi5wZGYKPiAKPiAK PiBUaGUgWGlsaW54IGNvbXBpbGVyIHhvY2MgdGFraW5nIGZvciBleGFtcGxlIHNvbWUgTExWTSBJ UiBhbmQgZ2VuZXJhdGluZwo+IHNvbWUgYml0c3RyZWFtIGlzIG5vdCBvcGVuLXNvdXJjZSBhbmQg d2lsbCBwcm9iYWJseSBuZXZlciBiZSBmb3IgdGhlCj4gcmVhc29ucyBhYm92ZS4uLiA6LSgKPiAK PiBYaWxpbnggaXMgb3Blbi1zb3VyY2luZyBhbGwgd2hhdCBjYW4gcmVhc29uYWJseSBiZSBvcGVu LXNvdXJjZWQ6Cj4gCj4gLSB0aGUgdXNlci1sZXZlbCBhbmQgc3lzdGVtIHJ1bi10aW1lLCBpbmNs dWRpbmcgdGhlIE9wZW5DTCBydW50aW1lOgo+ICAgaHR0cHM6Ly9naXRodWIuY29tL1hpbGlueC9Y UlQgdG8gaGFuZGxlIHRoZSBiaXRzdHJlYW1zIGdlbmVyYXRlZCBieQo+ICAgc29tZSBjbG9zZS1z b3VyY2UgdG9vbHMKPiAKPiAtIHRoZSBrZXJuZWwgZGV2aWNlIGRyaXZlcnMgd2hpY2ggYXJlIGFs cmVhZHkgaW4KPiAgIGh0dHBzOi8vZ2l0aHViLmNvbS9YaWxpbngvWFJUIGJ1dCB3ZSB3YW50IHRv IHVwc3RyZWFtIGludG8gdGhlIExpbnV4Cj4gICBrZXJuZWwgdG8gbWFrZSBsaWZlIGVhc2llciAo dGhpcyBpcyB0aGUgbWF0dGVyIG9mIHRoaXMgZS1tYWlsIHRocmVhZCk7Cj4gCj4gLSB0byBnZW5l cmF0ZSBzb21lIHJlYWwgY29kZSBpbiB0aGUgbW9zdCAobW9kZXJuIGFuZCkgb3Blbi1zb3VyY2Ug d2F5LAo+ICAgdGhlcmUgaXMgYW4gb3Blbi1zb3VyY2UgZnJhbWV3b3JrIHRvIGNvbXBpbGUgc29t ZSBTWUNMIEMrKyBpbmNsdWRpbmcKPiAgIHNvbWUgWGlsaW54IEZQR0Etc3BlY2lmaWMgZXh0ZW5z aW9ucyBkb3duIHRvIFNQSVIgTExWTSBJUiB1c2luZwo+ICAgQ2xhbmcvTExWTSBhbmQgdG8gZmVl ZCB0aGUgY2xvc2Utc291cmNlIHhvY2MgdG9vbCB3aXRoIGl0Cj4gICBodHRwczovL2dpdGh1Yi5j b20vdHJpU1lDTC90cmlTWUNMCj4gCj4gICBZb3UgY2FuIHNlZSBzdGFydGluZyBmcm9tCj4gICBo dHRwczovL2dpdGh1Yi5jb20vdHJpU1lDTC90cmlTWUNML2Jsb2IvbWFzdGVyL3Rlc3RzL01ha2Vm aWxlI0wzMjIgaG93Cj4gICB0byBzdGFydCBmcm9tIEMrKyBjb2RlLCBnZW5lcmF0ZSBzb21lIFNQ SVIgTExWTSBJUiBhbmQgdG8gZmVlZCB4b2NjCj4gICBhbmQgYnVpbGQgYSBmYXQgYmluYXJ5IHRo YXQgd2lsbCB1c2UgdGhlIFhSVCBydW50aW1lLgo+IAo+ICAgU29tZSBkb2N1bWVudGF0aW9uIGlu Cj4gICBodHRwczovL2dpdGh1Yi5jb20vdHJpU1lDTC90cmlTWUNML2Jsb2IvbWFzdGVyL2RvYy9h cmNoaXRlY3R1cmUucnN0Cj4gCj4gICBUaGVyZSBhcmUgb3RoZXIgbW9yZSBvZmZpY2lhbCB3YXlz IHRvIGdlbmVyYXRlIGJpdHN0cmVhbSAodGhleSBhcmUKPiAgIGNhbGxlZCBwcm9kdWN0cyBpbnN0 ZWFkIG9mIHJlc2VhcmNoIHByb2plY3RzIGxpa2UgdHJpU1lDTCA6LSkgKS4KPiAKPiAgIFdlIGFy ZSBhbHNvIHdvcmtpbmcgb24gYW4gb3RoZXIgb3Blbi1zb3VyY2UgU1lDTCBjb21waWxlciB3aXRo IEludGVsCj4gICB0byBoYXZlIGEgYmV0dGVyIGNvbW1vbiBpbXBsZW1lbnRhdGlvbgo+ICAgaHR0 cHM6Ly9naXRodWIuY29tL2ludGVsL2xsdm0vd2lraSBhbmQgdG8gdXBzdHJlYW0gdGhpcyBpbnRv IENsYW5nL0xMVk0uCgpZZWFoLCB0aGVyZSdzIGJlZW4gcGxlbnR5IG9mIGdwdSBzdGFja3Mgd2l0 aCAiZXZlcnl0aGluZyBvcGVuIHNvdXJjZWQgdGhhdApjYW4gYmUgb3BlbiBzb3VyY2VkIiwgZXhj ZXB0IHRoZSBjb21waWxlciwgZm9yIGdwdXMuIFdlIGRpZG4ndCB0YWtlIHRob3NlCmRyaXZlcnMg ZWl0aGVyLgoKQW5kIEkgbG9va2VkIGF0IHRoZSBlbnRpcmUgc3RhY2sgYWxyZWFkeSB0byBzZWUg d2hhdCdzIHRoZXJlIGFuZCB3aGF0J3MKbWlzc2luZy4KCj4gU28gZm9yIFhpbGlueCBGUEdBLCB5 b3UgY2FuIHNlZSB0aGUgTExWTSBJUiBhcyB0aGUgZXF1aXZhbGVudCBvZiBQVFggZm9yCj4gblZp ZGlhLiBCdXQgeG9jYyBpcyBjbG9zZS1zb3VyY2UgZm9yIHNvbWUgbW9yZSBmdW5kYW1lbnRhbCBy ZWFzb25zOiBpdAo+IHdvdWxkIGV4cG9zZSBhbGwgdGhlIGRldGFpbHMgb2YgdGhlIEZQR0EuIEkg Z3Vlc3MgdGhpcyBpcyBleGFjdGx5IHRoZQo+IHNhbWUgZm9yIFhpbGlueCBGUEdBLgoKWWVhaCwg bmVpdGhlciBkaWQgd2UgbWVyZ2UgYSBkcml2ZXIgd2l0aCBqdXN0IHNvbWUgSVIgYXMgdGhlICJj b21waWxlciIsCmFuZCBtb3N0IGRlZmluaXRlbHkgbm90IFBUWCAoc2luY2UgdGhhdCdzIGp1c3Qg bnYgbG9jay1pbiwgc3BpcnYgaXMgdGhlCmNyb3NzIHZlbmRvciBzb2x1dGlvbiB0aGF0IGF0IGxl YXN0IHNlZW1zIHRvIGhhdmUgYSBmaWdodGluZyBjaGFuY2UpLiBXZQp3YW50IHRoZSBsb3cgbGV2 ZWwgc3R1ZmYgKGFuZCBpZiB0aGUgaGlnaCBsZXZlbCBjb21waWxlciBpcyB0aGUgZHVtYmVzdCwK bGVhc3Qgb3B0aW1pemluZyB0aGluZyBldmVyIHRoYXQgY2FuJ3QgcnVuIGFueSByZWFsIHdvcmxk IHdvcmtsb2FkIHlldCwKdGhhdCdzIGZpbmUsIGl0IGNhbiBiZSBmaXhlZCkuIFRoZSBsb3cgbGV2 ZWwgc3R1ZmYgaXMgd2hhdCBtYXR0ZXJzIGZyb20gYW4KdWFwaSBwZXJzcGVjdGl2ZS4KCj4gTm90 ZSB0aGF0IHByb2JhYmx5IG1vc3Qgb2YgdGhlIHRvb2wgY2hhaW5zIHVzZWQgdG8gZ2VuZXJhdGUg dGhlCj4gbG93LWxldmVsIGZpcm13YXJlIGZvciB0aGUgdmFyaW91cyBDUFUgKG1pY3JvY29kZSks IEdQVSwgZXRjLiBhcmUKPiBhbHNvIGNsb3NlLXNvdXJjZS4KCll1cC4gTm9uZSBoYXZlIGJlZW4g c3VjY2Vzc2Z1bGx5IHVzZWQgdG8gbWVyZ2Ugc3R1ZmYgaW50byBkcml2ZXJzL2dwdS4KCk5vdGUg dGhhdCB3ZSdyZSBwZXJmZWN0bHkgZmluZSB3aXRoIGNsb3NlZCBzb3VyY2Ugc3RhY2tzIHJ1bm5p bmcgb24gdG9wIG9mCmRyaXZlcnMvZ3B1LCB3aXRoIGxvdHMgb2YgYWRkaXRpb25hbCBzZWNyZXQg c2F1Y2UvdmFsdWUgYWRkL2N1c3RvbWVyIGxvY2sKaW4vd2hhdGV2ZXIgY29tcGFyZWQgdG8gdGhl IGJhc2ljIG9wZW4gc291cmNlIHN0YWNrLiBUaGVyZSdzIHBsZW50eSBvZgp2ZW5kb3JzIGRvaW5n IHRoYXQuIEJ1dCBmb3IgdGhlIHVhcGkgcmV2aWV3LCBhbmQgbWFraW5nIHN1cmUgd2UgY2FuIGF0 CmxlYXN0IGtlZXAgdGhlIGJhc2ljIHN0YWNrIHdvcmtpbmcsIGl0IG5lZWRzIHRvIGJlIHRoZSBm dWxsIG9wZW4gc3RhY2suCkVuZCB0byBlbmQuCgpJIGd1ZXNzIEkgbmVlZCB0byBhY3R1YWxseSB0 eXBlIHRoYXQgYXJ0aWNsZSBvbiBteSBibG9nIGFib3V0IHdoeSBleGFjdGx5CndlJ3JlIHNvIG11 Y2ggaW5zaXN0aW5nIG9uIHRoaXMsIHNlZW1zIHRvIGJlY29tZSBhIGJpdCBhbiBGQVEuCgpDaGVl cnMsIERhbmllbAotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29y cG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVs