From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 00/10] drm/vkms: rework crc worker Date: Tue, 18 Jun 2019 10:56:47 +0200 Message-ID: <20190618085647.GO12905@phenom.ffwll.local> References: <20190606222751.32567-1-daniel.vetter@ffwll.ch> <20190612144220.GO2458@phenom.ffwll.local> <20190618024904.nd3iuhyi4orkplu2@smtp.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x544.google.com (mail-ed1-x544.google.com [IPv6:2a00:1450:4864:20::544]) by gabe.freedesktop.org (Postfix) with ESMTPS id 24D1F6E118 for ; Tue, 18 Jun 2019 08:56:52 +0000 (UTC) Received: by mail-ed1-x544.google.com with SMTP id z25so20516071edq.9 for ; Tue, 18 Jun 2019 01:56:52 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20190618024904.nd3iuhyi4orkplu2@smtp.gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Rodrigo Siqueira Cc: Daniel Vetter , DRI Development List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBKdW4gMTcsIDIwMTkgYXQgMTE6NDk6MDRQTSAtMDMwMCwgUm9kcmlnbyBTaXF1ZWly YSB3cm90ZToKPiBPbiAwNi8xMiwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+IE9uIFdlZCwgSnVu IDEyLCAyMDE5IGF0IDEwOjI4OjQxQU0gLTAzMDAsIFJvZHJpZ28gU2lxdWVpcmEgd3JvdGU6Cj4g PiA+IEhpIERhbmllbCwKPiA+ID4gCj4gPiA+IEZpcnN0IG9mIGFsbCwgdGhhbmsgeW91IHZlcnkg bXVjaCBmb3IgeW91ciBwYXRjaHNldC4KPiA+ID4gCj4gPiA+IEkgdHJpZWQgdG8gbWFrZSBhIGRl dGFpbGVkIHJldmlldyBvZiB5b3VyIHNlcmllcywgYW5kIHlvdSBjYW4gc2VlIG15Cj4gPiA+IGNv bW1lbnRzIGluIGVhY2ggcGF0Y2guIFlvdeKAmWxsIG5vdGljZSB0aGF0IEkgYXNrZWQgbWFueSB0 aGluZ3MgcmVsYXRlZAo+ID4gPiB0byB0aGUgRFJNIHN1YnN5c3RlbSB3aXRoIHRoZSBob3BlIHRo YXQgSSBjb3VsZCBsZWFybiBhIGxpdHRsZSBiaXQKPiA+ID4gbW9yZSBhYm91dCBEUk0gZnJvbSB5 b3VyIGNvbW1lbnRzLgo+ID4gPiAKPiA+ID4gQmVmb3JlIHlvdSBnbyB0aHJvdWdoIHRoZSByZXZp ZXcsIEkgd291bGQgbGlrZSB0byBzdGFydCBhIGRpc2N1c3Npb24KPiA+ID4gYWJvdXQgdGhlIHZr bXMgcmFjZSBjb25kaXRpb25zLiBGaXJzdCwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgSSBkaWQgbm90 Cj4gPiA+IHVuZGVyc3RhbmQgdGhlIHJhY2UgY29uZGl0aW9ucyB0aGF0IHlvdSBkZXNjcmliZWQg YmVmb3JlIGJlY2F1c2UgSQo+ID4gPiBjb3VsZG7igJl0IHJlcHJvZHVjZSB0aGVtLiBOb3csIEkn bSBzdXNwZWN0aW5nIHRoYXQgSSBjb3VsZCBub3QKPiA+ID4gZXhwZXJpZW5jZSB0aGUgcHJvYmxl bSBiZWNhdXNlIEknbSB1c2luZyBRRU1VIHdpdGggS1ZNOyB3aXRoIHRoaXMgaWRlYQo+ID4gPiBp biBtaW5kLCBJIHN1cHBvc2UgdGhhdCB3ZSBoYXZlIHR3byBzY2VuYXJpb3MgZm9yIHVzaW5nIHZr bXMgaW4gYQo+ID4gPiB2aXJ0dWFsIG1hY2hpbmU6Cj4gPiA+IAo+ID4gPiAqIFNjZW5hcmlvIDE6 IFRoZSB1c2VyIGhhcyBoYXJkd2FyZSB2aXJ0dWFsaXphdGlvbiBzdXBwb3J0OyBpbiB0aGlzCj4g PiA+IGNhc2UsIGl0IGlzIGEgbGl0dGxlIGJpdCBoYXJkZXIgdG8gZXhwZXJpZW5jZSByYWNlIGNv bmRpdGlvbnMgd2l0aAo+ID4gPiB2a21zLgo+ID4gPiAKPiA+ID4gKiBTY2VuYXJpbyAyOiBXaXRo b3V0IGhhcmR3YXJlIHZpcnR1YWxpemF0aW9uIHN1cHBvcnQsIGl0IGlzIG11Y2gKPiA+ID4gZWFz aWVyIHRvIGV4cGVyaWVuY2UgcmFjZSBjb25kaXRpb25zLgo+ID4gPiAKPiA+ID4gV2l0aCB0aGVz ZSB0d28gc2NlbmFyaW9zIGluIG1pbmQsIEkgY29uZHVjdGVkIGEgYnVuY2ggb2YgZXhwZXJpbWVu dHMKPiA+ID4gZm9yIHRyeWluZyB0byBzaGVkIGxpZ2h0IG9uIHRoaXMgaXNzdWUuIEkgZGlkOgo+ ID4gPiAKPiA+ID4gMS4gRW5hYmxlZCBsb2NrZGVwCj4gPiA+IAo+ID4gPiAyLiBEZWZpbmVkIHR3 byBkaWZmZXJlbnQgZW52aXJvbm1lbnRzIGZvciB0ZXN0aW5nIGJvdGggdXNpbmcgUUVNVSB3aXRo Cj4gPiA+IGFuZCB3aXRob3V0IGt2bS4gU2VlIGJlbG93IHRoZSBRRU1VIGhhcmR3YXJlIG9wdGlv bnM6Cj4gPiA+IAo+ID4gPiAqIGVudl9rdm06IC1lbmFibGUta3ZtIC1kYWVtb25pemUgLW0gMUcg LXNtcCBjb3Jlcz0yLGNwdXM9Mgo+ID4gPiAqIGVudl9ub19rdm06IC1kYWVtb25pemUgLW0gMkcg LXNtcCBjb3Jlcz00LGNwdXM9NAo+ID4gPiAKPiA+ID4gMy4gTXkgdGVzdCBwcm90b2NvbDogSSkg dHVybiBvbiB0aGUgdm0sIElJKSBjbGVhbiAvcHJvYy9sb2NrX3N0YXQsCj4gPiA+IElJSSkgZXhl Y3V0ZSBrbXNfY3Vyc29yX2NyYywgSUlJKSBzYXZlIHRoZSBsb2NrX3N0YXQgZmlsZSwgYW5kIElW KQo+ID4gPiB0dXJuIG9mZiB0aGUgdm0uCj4gPiA+IAo+ID4gPiA0LiBGcm9tIHRoZSBsb2NrZGVw X3N0YXQsIEkganVzdCBoaWdobGlnaHRlZCB0aGUgcm93IHJlbGF0ZWQgdG8gdmttcwo+ID4gPiBh bmQgdGhlIGNvbHVtbnMgaG9sZHRpbWUtdG90YWwgYW5kIGhvbGR0aW1lLWF2Zwo+ID4gPiAKPiA+ ID4gSSB3b3VsZCBsaWtlIHRvIGhpZ2hsaWdodCB0aGF0IHRoZSBmb2xsb3dpbmcgZGF0YSBkb2Vz IG5vdCBoYXZlIGFueQo+ID4gPiBzdGF0aXN0aWNhbCBhcHByb2FjaCwgYW5kIGl0cyBpbnRlbnRp b24gaXMgc29sZWx5IHRvIGFzc2lzdCBvdXIKPiA+ID4gZGlzY3Vzc2lvbi4gU2VlIGJlbG93IHRo ZSBzdW1tYXJ5IG9mIHRoZSBjb2xsZWN0ZWQgZGF0YToKPiA+ID4gCj4gPiA+IFN1bW1hcnkgb2Yg dGhlIGV4cGVyaW1lbnQgcmVzdWx0czoKPiA+ID4gCj4gPiA+ICstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiA+ID4gfCAgICAgICAgICAgICAgICB8 ICAgICBlbnZfa3ZtICAgIHwgICBlbnZfbm9fa3ZtICAgfAo+ID4gPiArICAgICAgICAgICAgICAg ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+IHwgVGVzdCAgICAgICAg ICAgfCBCZWZvcmUgfCBBZnRlciB8IEJlZm9yZSB8IEFmdGVyIHwKPiA+ID4gKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tKwo+ID4gPiB8IGttc19jdXJz b3JfY3JjIHwgICBTMSAgIHwgICBTMiAgfCAgIE0xICAgfCAgIE0yICB8Cj4gPiA+ICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLSsKPiA+ID4gCj4gPiA+ ICogQmVmb3JlOiBiZWZvcmUgYXBwbHkgdGhpcyBwYXRjaHNldAo+ID4gPiAqIEFmdGVyOiBhZnRl ciBhcHBseSB0aGlzIHBhdGNoc2V0Cj4gPiA+IAo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KPiA+ID4g UzE6IFdpdGhvdXQgdGhpcyBwYXRjaHNldCBhbmQgd2l0aCBrdm0gICB8IGhvbGR0aW1lLXRvdGFs IHwgaG9sZHRpbWUtYXZnCj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQo+ID4gPiAmKCZ2a21zX291dC0+ bG9jayktPnJsb2NrOiAgICAgICAgICAgICAgIHwgIDIxOTgzLjUyICAgICAgfCAgNi4yMQo+ID4g PiAod29ya19jb21wbGV0aW9uKSgmdmttc19zdGF0ZS0+Y3JjX3dvOiAgIHwgIDIwLjQ3ICAgICAg ICAgfCAgMjAuNDcKPiA+ID4gKHdxX2NvbXBsZXRpb24pdmttc19jcmNfd29ya3E6ICAgICAgICAg ICB8ICAzOTk5NTA3Ljg3ICAgIHwgIDMzNTIuNDgKPiA+ID4gJigmdmttc19vdXQtPnN0YXRlX2xv Y2spLT5ybG9jazogICAgICAgICB8ICAzNzguNDcgICAgICAgIHwgIDAuMzAKPiA+ID4gKHdvcmtf Y29tcGxldGlvbikoJnZrbXNfc3RhdGUtPmNyY18jMjogICB8ICAzOTk5MDY2LjMwICAgIHwgIDI4 NDguMzQKPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCj4gPiA+IFMyOiBXaXRoIHRoaXMgcGF0Y2hzZXQg YW5kIHdpdGgga3ZtICAgICAgfCAgICAgICAgICAgICAgICB8Cj4gPiA+IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LQo+ID4gPiAmKCZ2a21zX291dC0+bG9jayktPnJsb2NrOiAgICAgICAgICAgICAgIHwgIDIzMjYy LjgzICAgICAgfCAgNi4zNAo+ID4gPiAod29ya19jb21wbGV0aW9uKSgmdmttc19zdGF0ZS0+Y3Jj X3dvOiAgIHwgIDguOTggICAgICAgICAgfCAgOC45OAo+ID4gPiAmKCZ2a21zX291dC0+Y3JjX2xv Y2spLT5ybG9jazogICAgICAgICAgIHwgIDMwNy4yOCAgICAgICAgfCAgMC4zMgo+ID4gPiAod3Ff Y29tcGxldGlvbil2a21zX2NyY193b3JrcTogICAgICAgICAgIHwgIDY1Njc3MjcuMDUgICAgfCAg MTIzNDUuMzUKPiA+ID4gKHdvcmtfY29tcGxldGlvbikoJnZrbXNfc3RhdGUtPmNyY18jMjogICB8 ICA2NTY3MTM1LjE1ICAgIHwgIDQ0ODguODEKPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCj4gPiA+IE0x OiBXaXRob3V0IHRoaXMgcGF0Y2hzZXQgYW5kIHdpdGhvdXQga3ZtfCAgICAgICAgICAgICAgICB8 Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLQo+ID4gPiAmKCZ2a21zX291dC0+c3RhdGVfbG9jayktPnJs b2NrOiAgICAgICAgIHwgIDQ5OTQuNzIgICAgICAgfCAgMS42MQo+ID4gPiAmKCZ2a21zX291dC0+ bG9jayktPnJsb2NrOiAgICAgICAgICAgICAgIHwgIDI0NzE5MC4wNCAgICAgfCAgMzkuMzkKPiA+ ID4gKHdvcmtfY29tcGxldGlvbikoJnZrbXNfc3RhdGUtPmNyY193bzogICB8ICAzMS4zMiAgICAg ICAgIHwgIDMxLjMyCj4gPiA+ICh3cV9jb21wbGV0aW9uKXZrbXNfY3JjX3dvcmtxOiAgICAgICAg ICAgfCAgMjA5OTEwNzMuNzggICB8ICAxMzUyNS4xOAo+ID4gPiAod29ya19jb21wbGV0aW9uKSgm dmttc19zdGF0ZS0+Y3JjXyMyOiAgIHwgIDIwOTg4MzQ3LjE4ICAgfCAgMTE5MDQuOTAKPiA+ID4g LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCj4gPiA+IE0yOiBXaXRoIHRoaXMgcGF0Y2hzZXQgYW5kIHdpdGhvdXQg a3ZtICAgfCAgICAgICAgICAgICAgICB8Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQo+ID4gPiAod3Ff Y29tcGxldGlvbil2a21zX2NyY193b3JrcTogICAgICAgICAgIHwgIDQyODE5MTYxLjY4ICAgfCAg MzY1OTcuNTcKPiA+ID4gJigmdmttc19vdXQtPmxvY2spLT5ybG9jazogICAgICAgICAgICAgICB8 ICAyNTEyNTcuMDYgICAgIHwgIDM1LjgwCj4gPiA+ICh3b3JrX2NvbXBsZXRpb24pKCZ2a21zX3N0 YXRlLT5jcmNfd286ICAgfCAgNjkuMzcgICAgICAgICB8ICA2OS4zNwo+ID4gPiAmKCZ2a21zX291 dC0+Y3JjX2xvY2spLT5ybG9jazogICAgICAgICAgIHwgIDM2MjAuOTIgICAgICAgfCAgMS41NAo+ ID4gPiAod29ya19jb21wbGV0aW9uKSgmdmttc19zdGF0ZS0+Y3JjXyMyOiAgIHwgIDQyODAzNDE5 LjU5ICAgfCAgMjQzMDYuMzEKPiA+ID4gCj4gPiA+IEZpcnN0LCBJIGFuYWx5emVkIHRoZSBzY2Vu YXJpb3Mgd2l0aCBLVk0gKFMxIGFuZCBTMik7IG1vcmUKPiA+ID4gc3BlY2lmaWNhbGx5LCBJIGZv Y3VzZWQgb24gdGhlc2UgdHdvIGNsYXNzZXM6Cj4gPiA+IAo+ID4gPiAxLiAod29ya19jb21wbGV0 aW9uKSgmdmttc19zdGF0ZS0+Y3JjX3dvCj4gPiA+IDIuICh3b3JrX2NvbXBsZXRpb24pKCZ2a21z X3N0YXRlLT5jcmNfIzIKPiA+ID4gCj4gPiA+IEFmdGVyIHRha2luZyBhIGxvb2sgYXQgdGhlIGRh dGEsIGl0IGxvb2tzIGxpa2UgdGhhdCB0aGlzIHBhdGNoc2V0Cj4gPiA+IGdyZWF0bHkgcmVkdWNl cyB0aGUgaG9sZCB0aW1lIGF2ZXJhZ2UgZm9yIGNyY193by4gT24gdGhlIG90aGVyIGhhbmQsCj4g PiA+IGl0IGluY3JlYXNlcyB0aGUgaG9sZCB0aW1lIGF2ZXJhZ2UgZm9yIGNyY18jMi4gSSBkaWRu 4oCZdCB1bmRlcnN0YW5kCj4gPiA+IHdlbGwgdGhlIHJlYXNvbiBmb3IgdGhlIGRpZmZlcmVuY2Uu IENvdWxkIHlvdSBoZWxwIG1lIGhlcmU/Cj4gPiAKPiA+IFNvIHRoZXJlJ3MgdHdvIHJlYWwgbG9j a3MgaGVyZSBmcm9tIG91ciBjb2RlLCB0aGUgb25lcyB5b3UgY2FuIHNlZSBhcwo+ID4gc3Bpbmxv Y2tzOgo+ID4gCj4gPiAmKCZ2a21zX291dC0+c3RhdGVfbG9jayktPnJsb2NrOiAgICAgICAgIHwg IDQ5OTQuNzIgICAgICAgfCAgMS42MQo+ID4gJigmdmttc19vdXQtPmxvY2spLT5ybG9jazogICAg ICAgICAgICAgICB8ICAyNDcxOTAuMDQgICAgIHwgIDM5LjM5Cj4gPiAKPiA+IEFsbCB0aGUgb3Ro ZXJzIGFyZSBmYWtlIGxvY2tzIHRoYXQgdGhlIHdvcmtxdWV1ZSBhZGRzLCB3aGljaCBvbmx5IGV4 aXN0IGluCj4gPiBsb2NrZGVwLiBUaGV5IGFyZSB1c2VkIHRvIGNhdGNoIHNwZWNpYWwga2luZHMg b2YgZGVhZGxvY2tzIGxpa2UgdGhlIGJlbG93Ogo+ID4gCj4gPiB0aHJlYWQgQToKPiA+IDEuIG11 dGV4X2xvY2sobXV0ZXhfQSkKPiA+IDIuIGZsdXNoX3dvcmsod29ya19BKQo+ID4gCj4gPiB0aHJl YWQgQgo+ID4gMS4gcnVubmluZyB3b3JrX0E6Cj4gPiAyLiBtdXRleF9sb2NrKG11dGV4X0EpCj4g PiAKPiA+IHRocmVhZCBCIGNhbid0IGNvbnRpbnVlIGJlY3Vhc2UgbXV0ZXhfQSBpcyBhbHJlYWR5 IGhlbGQgYnkgdGhyZWFkIEEuCj4gPiB0aHJlYWQgQSBjYW4ndCBjb250aW51ZSBiZWNhdXNlIHRo cmVhZCBCIGlzIGJsb2NrZWQgYW5kIHRoZSB3b3JrIG5ldmVyCj4gPiBmaW5pc2hlcy4KPiA+IC0+ IGRlYWRsb2NrCj4gPiAKPiA+IEkgaGF2ZW4ndCBjaGVja2VkIHdoaWNoIGlzIHdoaWNoLCBidXQg ZXNzZW50aWFsbHkgd2hhdCB5b3UgbWVhc3VyZSB3aXRoCj4gPiB0aGUgaG9sZCB0aW1lcyBvZiB0 aGVzZSBmYWtlIGxvY2tzIGlzIGhvdyBsb25nIGEgd29yayBleGVjdXRpb24gdGFrZXMgb24KPiA+ IGF2ZXJhZ2UuCj4gPiAKPiA+IFNpbmNlIG15IHBhdGNoZXMgYXJlIHN1cHBvc2VkIHRvIGZpeCBy YWNlcyB3aGVyZSB0aGUgd29ya2VyIGNhbid0IGtlZXAgdXAKPiA+IHdpdGggdGhlIHZibGFuayBo cnRpbWVyLCB0aGVuIHRoZSBhdmVyYWdlIHdvcmtlciB3aWxsIChwcm9iYWJseSkgZG8gbW9yZSwK PiA+IHNvIHRoYXQgZ29pbmcgdXAgaXMgZXhwZWN0ZWQuIEkgdGhpbmsuCj4gPiAKPiA+IEknbSBo b25lc3RseSBub3Qgc3VyZSB3aGF0J3MgZ29pbmcgb24gaGVyZSwgbmV2ZXIgbG9va2luZyBpbnRv IHRoaXMgaW4KPiA+IGRldGFpbC4KPiA+IAo+ID4gPiBXaGVuIEkgbG9va2VkIGZvciB0aGUgc2Vj b25kIHNldCBvZiBzY2VuYXJpb3MgKE0xIGFuZCBNMiwgYm90aCB3aXRob3V0Cj4gPiA+IEtWTSks IHRoZSByZXN1bHRzIGxvb2sgbXVjaCBtb3JlIGRpc3RhbnQ7IGJhc2ljYWxseSwgdGhpcyBwYXRj aHNldAo+ID4gPiBpbmNyZWFzZWQgdGhlIGhvbGQgdGltZSBhdmVyYWdlLiBBZ2FpbiwgY291bGQg eW91IGhlbHAgbWUgdW5kZXJzdGFuZCBhCj4gPiA+IGxpdHRsZSBiaXQgYmV0dGVyIHRoaXMgaXNz dWU/Cj4gPiA+IAo+ID4gPiBGaW5hbGx5LCBhZnRlciB0aGVzZSB0ZXN0cywgSSBoYXZlIHNvbWUg cXVlc3Rpb25zOgo+ID4gPiAKPiA+ID4gMS4gVktNUyBpcyBhIHNvZnR3YXJlLW9ubHkgZHJpdmVy OyBiZWNhdXNlIG9mIHRoaXMsIGhvdyBhYm91dCBkZWZpbmluZwo+ID4gPiBhIG1pbmltYWwgc3lz dGVtIHJlc291cmNlIGZvciB1c2luZyBpdD8KPiA+IAo+ID4gTm8gaWRlYSwgaW4gcmVhbGl0eSBp dCdzIHByb2JhYmx5ICJpZiBpdCBmYWlscyB0b28gb2Z0ZW4sIGJ1eSBmYXN0ZXIgY3B1Ii4KPiA+ IEkgZG8gdGhpbmsgd2Ugc2hvdWxkIG1ha2UgdGhlIGNvZGUgcm9idXN0IGFnYWluc3QgYSBzbG93 IGNwdSwgc2luY2UgYXRtCj4gPiB0aGF0J3MgbmVlZGVkIGV2ZW4gb24gcHJldHR5IGZhc3QgbWFj aGluZXMgKGJlY2F1c2Ugb3VyIGJsZW5kaW5nIGNvZGUgaXMKPiA+IHJlYWxseSwgcmVhbGx5IHNs b3cgYW5kIGluZWZmaWNpZW50KS4KPiA+IAo+ID4gPiAyLiBEdXJpbmcgbXkgZXhwZXJpbWVudHMs IEkgbm90aWNlZCB0aGF0IHJ1bm5pbmcgdGVzdHMgd2l0aCBhIFZNIHRoYXQKPiA+ID4gdXNlcyBL Vk0gaGFkIGNvbnNpc3RlbnQgcmVzdWx0cy4gRm9yIGV4YW1wbGUsIGttc19mbGlwIG5ldmVyIGZh aWxzCj4gPiA+IHdpdGggUUVNVStLVk07IGhvd2V2ZXIsIHdpdGhvdXQgS1ZNLCB0d28gb3IgdGhy ZWUgdGVzdHMgZmFpbGVkIChvbmUgb2YKPiA+ID4gdGhlbSBsb29rcyByYW5kb20pLiBJZiB3ZSB1 c2UgdmttcyBmb3IgdGVzdCBEUk0gc3R1ZmYsIHNob3VsZCB3ZQo+ID4gPiByZWNvbW1lbmQgdGhl IHVzZSBvZiBLVk0/Cj4gPiAKPiA+IFdoYXQgZG8geW91IG1lYW4gd2l0aG91dCBrdm0/IEluIGdl bmVyYWwgcnVubmluZyB3aXRob3V0IGt2bSBzaG91bGRuJ3QgYmUKPiA+IHNsb3dlciwgc28gSSdt IGEgYml0IGNvbmZ1c2VkIC4uLiBJJ20gcnVubmluZyB2Z2VtIGRpcmVjdGx5IG9uIHRoZQo+ID4g bWFjaGluZSwgYnkgYm9vdGluZyBpbnRvIG5ldyBrZXJuZWxzIChhbmQgY29udHJvbGxpbmcgdGhl IG1hY2hpbmUgb3ZlciB0aGUKPiA+IG5ldHdvcmspLgo+IAo+IFNvcnJ5LCBJIHNob3VsZCBoYXZl IGRldGFpbGVkIG15IHBvaW50Lgo+IAo+IEJhc2ljYWxseSwgSSBkbyBhbGwgbXkgdGVzdGluZyB3 aXRoIHZrbXMgaW4gUUVNVSBWTS4gSW4gdGhhdCBzZW5zZSwgSQo+IGRpZCBzb21lIGV4cGVyaW1l bnRzIHdoaWNoIEkgZW5hYmxlZCBhbmQgZGlzYWJsZWQgdGhlIEtWTSAoaS5lLiwgZmxhZwo+ICct ZW5hYmxlLWt2bScpIHRvIGNoZWNrIHRoZSB2a21zIGJlaGF2aW91ciBpbiB0aGVzZSB0d28gc2Nl bmFyaW9zLiBJCj4gbm90aWNlZCB0aGF0IHRoZSB0ZXN0cyBhcmUgY29uc2lzdGVudCB3aGVuIEkg dXNlIHRoZSAnLWVuYWJsZS1rdm0nIGZsYWcsCj4gaW4gdGhhdCBjb250ZXh0IGl0IHNlZW1lZCBh IGdvb2QgaWRlYSB0byByZWNvbW1lbmQgdGhlIHVzZSBvZiBLVk0gZm9yCj4gdGhvc2UgdXNlcnMg d2hvIHdhbnQgdG8gdGVzdCB2a21zIHdpdGggaWd0LiBBbnl3YXksIGRvbid0IHdvcnJ5IGFib3V0 Cj4gdGhhdCBJJ2xsIHRyeSB0byBhZGQgbW9yZSBkb2N1bWVudGF0aW9uIGZvciB2a21zIGluIHRo ZSBmdXR1cmUgYW5kIGluCj4gdGhhdCB0aW1lIHdlIGRpc2N1c3MgYWJvdXQgdGhpcyBhZ2Fpbi4K CkFoLCBxZW11IHdpdGhvdXQga3ZtIGlzIGdvaW5nIHRvIHVzZSBzb2Z0d2FyZSBlbXVsYXRpb24g Zm9yIGEgbG90IG9mIHRoZQprZXJuZWwgc3R1ZmYuIFRoYXQncyBnb2luZyB0byBiZSB0ZXJyaWJs eSBzbG93IGluZGVlZC4KCj4gQW55d2F5LCBmcm9tIG15IHNpZGUsIEkgdGhpbmsgd2Ugc2hvdWxk IG1lcmdlIHRoaXMgc2VyaWVzLiBEbyB5b3Ugd2FudAo+IHRvIHByZXBhcmUgYSBWMiB3aXRoIHRo ZSBmaXhlcyBhbmQgbWF5YmUgdXBkYXRlIHRoZSBjb21taXQgbWVzc2FnZXMgYnkKPiB1c2luZyBz b21lIG9mIHlvdXIgZXhwbGFuYXRpb25zPyBPciwgaWYgeW91IHdhbnQsIEkgY2FuIGZpeCB0aGUg dGlueQo+IGRldGFpbHMgYW5kIG1lcmdlIGl0LgoKSSdtIGRlZXBseSBidXJyaWVkIGluIG15IHBy aW1lIGNsZWFudXAvZG9jIHNlcmllcyByaWdodCBub3csIHNvIHdpbGwgdGFrZQphIGZldyBkYXlz IHVudGlsIEkgZ2V0IGFyb3VuZCB0byB0aGlzIGFnYWluLiBJZiB5b3Ugd2FudCwgcGxlYXNlIGdv IGFoZWFkCndpdGggbWVyZ2luZy4KCmJ0dyBpZiB5b3UgZWRpdCBhIHBhdGNoIHdoZW4gbWVyZ2lu ZywgcGxlYXNlIGFkZCBhIGNvbW1lbnQgYWJvdXQgdGhhdCB0bwp0aGUgY29tbWl0IG1lc3NhZ2Uu IEFuZCBpbWUgaXQncyBiZXN0IHRvIG9ubHkgYXVnbWVudCB0aGUgY29tbWl0IG1lc3NhZ2UKYW5k IG1heWJlIGRlbGV0ZSBhbiB1bnVzZWQgdmFyaWFibGUgb3Igc28gdGhhdCBnb3QgZm9yZ290dGVu LiBGb3IKZXZlcnl0aGluZyBtb3JlIGJldHRlciB0byBkbyB0aGUgZWRpdHMgYW5kIHJlc3VibWl0 LgoKVGhhbmtzLCBEYW5pZWwKCj4gCj4gPiAtRGFuaWVsCj4gPiAKPiA+ID4gQmVzdCBSZWdhcmRz Cj4gPiA+IAo+ID4gPiBPbiBUaHUsIEp1biA2LCAyMDE5IGF0IDc6MjggUE0gRGFuaWVsIFZldHRl ciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4gd3JvdGU6Cj4gPiA+ID4KPiA+ID4gPiBIaSBhbGws Cj4gPiA+ID4KPiA+ID4gPiBUaGlzIGhlcmUgaXMgdGhlIGZpcnN0IHBhcnQgb2YgYSByZXdvcmsg Zm9yIHRoZSB2a21zIGNyYyB3b3JrZXIuIEkgdGhpbmsKPiA+ID4gPiB0aGlzIHNob3VsZCBmaXgg YWxsIHRoZSBsb2NraW5nL3JhY2VzL3VzZS1hZnRlci1mcmVlIGlzc3VlcyBJIHNwb3R0ZWQgaW4K PiA+ID4gPiB0aGUgY29kZS4gVGhlcmUncyBtb3JlIHdvcmsgd2UgY2FuIGRvIGluIHRoZSBmdXR1 cmUgYXMgYSBmb2xsb3ctdXA6Cj4gPiA+ID4KPiA+ID4gPiAtIGRpcmVjdGx5IGFjY2VzcyB2a21z X3BsYW5lX3N0YXRlLT5iYXNlIGluIHRoZSBjcmMgd29ya2VyLCB3aXRoIHRoaXMKPiA+ID4gPiAg IGFwcHJvYWNoIGluIHRoaXMgc2VyaWVzIGhlcmUgdGhhdCBzaG91bGQgYmUgc2FmZSBub3cuIEZv bGxvdy11cCBwYXRjaGVzCj4gPiA+ID4gICBjb3VsZCBzd2l0Y2ggYW5kIHJlbW92ZSBhbGwgdGhl IHNlcGFyYXRlIGNyY19kYXRhIGluZnJhc3RydWN0dXJlLgo+ID4gPiA+Cj4gPiA+ID4gLSBJIHRo aW5rIHNvbWUga2VybmVsZG9jIGZvciB2a21zIHN0cnVjdHVyZXMgd291bGQgYmUgbmljZS4gRG9j dW1lbnRhdGlvbgo+ID4gPiA+ICAgdGhlIHZhcmlvdXMgZnVuY3Rpb25zIGlzIHByb2JhYmx5IG92 ZXJraWxsLgo+ID4gPiA+Cj4gPiA+ID4gLSBJbXBsZW1lbnRpbmcgYSBtb3JlIGdlbmVyaWMgYmxl bmRpbmcgZW5naW5lLCBhcyBwcmVwIGZvciBhZGRpbmcgbW9yZQo+ID4gPiA+ICAgcGl4ZWwgZm9y bWF0cywgbW9yZSBwbGFuZXMsIGFuZCBtb3JlIGZlYXR1cmVzIGluIGdlbmVyYWwuCj4gPiA+ID4K PiA+ID4gPiBUZXN0ZWQgd2l0aCBrbXNfcGlwZV9jcmMsIGttc19mbGlwIGFuZCBrbXNfY3Vyc29y X2NyYy4gU2VlbXMgdG8gbm90IG1ha2UKPiA+ID4gPiB0aGluZ3Mgd29yc2UsIGJ1dCBJIGRpZG4n dCBkbyBhIGZ1bGwgcnVuLgo+ID4gPiA+Cj4gPiA+ID4gQ2hlZXJzLCBEYW5pZWwKPiA+ID4gPgo+ ID4gPiA+IERhbmllbCBWZXR0ZXIgKDEwKToKPiA+ID4gPiAgIGRybS92a21zOiBGaXggY3JjIHdv cmtlciByYWNlcwo+ID4gPiA+ICAgZHJtL3ZrbXM6IFVzZSBzcGluX2xvY2tfaXJxIGluIHByb2Nl c3MgY29udGV4dAo+ID4gPiA+ICAgZHJtL3ZrbXM6IFJlbmFtZSB2a21zX291dHB1dC5zdGF0ZV9s b2NrIHRvIGNyY19sb2NrCj4gPiA+ID4gICBkcm0vdmttczogTW92ZSBmb3JtYXQgYXJyYXlzIHRv IHZrbXNfcGxhbmUuYwo+ID4gPiA+ICAgZHJtL3ZrbXM6IEFkZCBvdXIgb3duIGNvbW1pdF90YWls Cj4gPiA+ID4gICBkcm0vdmttczogZmx1c2ggY3JjIHdvcmtlcnMgZWFybGllciBpbiBjb21taXQg Zmxvdwo+ID4gPiA+ICAgZHJtL3ZrbXM6IERvbnQgZmx1c2ggY3JjIHdvcmtlciB3aGVuIHdlIGNo YW5nZSBjcmMgc3RhdHVzCj4gPiA+ID4gICBkcm0vdmttczogTm8gX2lycXNhdmUgd2l0aGluIHNw aW5fbG9ja19pcnEgbmVlZGVkCj4gPiA+ID4gICBkcm0vdmttczogdG90YWxseSByZXdvcmtlZCBj cmMgZGF0YSB0cmFja2luZwo+ID4gPiA+ICAgZHJtL3ZrbXM6IE5vIG5lZWQgZm9yIC0+cGFnZXNf bG9jayBpbiBjcmMgd29yayBhbnltb3JlCj4gPiA+ID4KPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJt L3ZrbXMvdmttc19jcmMuYyAgIHwgNzQgKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4g PiA+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYyAgfCA4MCArKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2 LmMgICB8IDM1ICsrKysrKysrKysrKysrCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3Zr bXNfZHJ2LmggICB8IDI0ICsrKysrLS0tLS0KPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMv dmttc19wbGFuZS5jIHwgIDggKysrKwo+ID4gPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDE0NiBpbnNl cnRpb25zKCspLCA3NSBkZWxldGlvbnMoLSkKPiA+ID4gPgo+ID4gPiA+IC0tCj4gPiA+ID4gMi4y MC4xCj4gPiA+ID4KPiA+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+ID4gPiA+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+ID4gPiBkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPiA+ID4gCj4gPiA+IAo+ID4gPiAKPiA+ ID4gLS0gCj4gPiA+IAo+ID4gPiBSb2RyaWdvIFNpcXVlaXJhCj4gPiA+IGh0dHBzOi8vc2lxdWVp cmEudGVjaAo+ID4gCj4gPiAtLSAKPiA+IERhbmllbCBWZXR0ZXIKPiA+IFNvZnR3YXJlIEVuZ2lu ZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKPiAKPiAtLSAK PiBSb2RyaWdvIFNpcXVlaXJhCj4gaHR0cHM6Ly9zaXF1ZWlyYS50ZWNoCgotLSAKRGFuaWVsIFZl dHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3 bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs