From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= Subject: Re: [PATCH] blkif: add indirect descriptors interface to public headers Date: Fri, 15 Nov 2013 09:01:42 +0100 Message-ID: <5285D4E6.8030704@citrix.com> References: <1384252612-22573-1-git-send-email-roger.pau@citrix.com> <1384266541.10204.14.camel@kazak.uk.xensource.com> <9AAE0902D5BC7E449B7C8E4E778ABCD0170550@AMSPEX01CL01.citrite.net> <1384334807.5406.3.camel@kazak.uk.xensource.com> <9AAE0902D5BC7E449B7C8E4E778ABCD017132F@AMSPEX01CL01.citrite.net> <1384341067.5406.70.camel@kazak.uk.xensource.com> <9AAE0902D5BC7E449B7C8E4E778ABCD0171489@AMSPEX01CL01.citrite.net> <5284A092.6090902@citrix.com> <9AAE0902D5BC7E449B7C8E4E778ABCD0172BBD@AMSPEX01CL01.citrite.net> <5284A57F.7080104@citrix.com> <9AAE0902D5BC7E449B7C8E4E778ABCD0172C90@AMSPEX01CL01.citrite.net> <9AAE0902D5BC7E449B7C8E4E778ABCD0173CBF@AMSPEX01CL01.citrite.net> <9AAE0902D5BC7E449B7C8E4E778ABCD0173D96@AMSPEX01CL01.citrite.net> <321d02cc-cb0c-42e7-95af-160e75d43751@email.android.com> <9AAE0902D5BC7E449B7C8E4E778ABCD0173E2D@AMSPEX01CL01.citrite.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta4.messagelabs.com ([85.158.143.247]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1VhELb-0005qP-LK for xen-devel@lists.xenproject.org; Fri, 15 Nov 2013 08:01:48 +0000 In-Reply-To: <9AAE0902D5BC7E449B7C8E4E778ABCD0173E2D@AMSPEX01CL01.citrite.net> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Paul Durrant , Konrad Rzeszutek Wilk , Ian Campbell Cc: "xen-devel@lists.xenproject.org" , "Keir (Xen.org)" , Jan Beulich List-Id: xen-devel@lists.xenproject.org T24gMTQvMTEvMTMgMTg6MTMsIFBhdWwgRHVycmFudCB3cm90ZToKPj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0KPj4gRnJvbTogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIFttYWlsdG86a29ucmFk LndpbGtAb3JhY2xlLmNvbV0KPj4gU2VudDogMTQgTm92ZW1iZXIgMjAxMyAxNjo1OAo+PiBUbzog UGF1bCBEdXJyYW50OyBSb2dlciBQYXUgTW9ubmU7IElhbiBDYW1wYmVsbAo+PiBDYzogeGVuLWRl dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnOyBLZWlyIChYZW4ub3JnKTsgSmFuIEJldWxpY2gKPj4g U3ViamVjdDogUkU6IFtYZW4tZGV2ZWxdIFtQQVRDSF0gYmxraWY6IGFkZCBpbmRpcmVjdCBkZXNj cmlwdG9ycyBpbnRlcmZhY2UgdG8KPj4gcHVibGljIGhlYWRlcnMKPj4KPj4gUGF1bCBEdXJyYW50 IDxQYXVsLkR1cnJhbnRAY2l0cml4LmNvbT4gd3JvdGU6Cj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0KPj4+PiBGcm9tOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgW21haWx0bzprb25yYWQu d2lsa0BvcmFjbGUuY29tXQo+Pj4+IFNlbnQ6IDE0IE5vdmVtYmVyIDIwMTMgMTY6MzQKPj4+PiBU bzogUGF1bCBEdXJyYW50OyBSb2dlciBQYXUgTW9ubmU7IElhbiBDYW1wYmVsbAo+Pj4+IENjOiB4 ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc7IEtlaXIgKFhlbi5vcmcpOyBKYW4gQmV1bGlj aAo+Pj4+IFN1YmplY3Q6IFJFOiBbWGVuLWRldmVsXSBbUEFUQ0hdIGJsa2lmOiBhZGQgaW5kaXJl Y3QgZGVzY3JpcHRvcnMKPj4+IGludGVyZmFjZSB0bwo+Pj4+IHB1YmxpYyBoZWFkZXJzCj4+Pj4K Pj4+PiBQYXVsIER1cnJhbnQgPFBhdWwuRHVycmFudEBjaXRyaXguY29tPiB3cm90ZToKPj4+Pj4+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+Pj4+PiBGcm9tOiBLb25yYWQgUnplc3p1dGVr IFdpbGsgW21haWx0bzprb25yYWQud2lsa0BvcmFjbGUuY29tXQo+Pj4+Pj4gU2VudDogMTQgTm92 ZW1iZXIgMjAxMyAxNjoyNAo+Pj4+Pj4gVG86IFBhdWwgRHVycmFudDsgUm9nZXIgUGF1IE1vbm5l OyBJYW4gQ2FtcGJlbGwKPj4+Pj4+IENjOiB4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc7 IEtlaXIgKFhlbi5vcmcpOyBKYW4gQmV1bGljaAo+Pj4+Pj4gU3ViamVjdDogUkU6IFtYZW4tZGV2 ZWxdIFtQQVRDSF0gYmxraWY6IGFkZCBpbmRpcmVjdCBkZXNjcmlwdG9ycwo+Pj4+PiBpbnRlcmZh Y2UgdG8KPj4+Pj4+IHB1YmxpYyBoZWFkZXJzCj4+Pj4+Pgo+Pj4+Pj4gUGF1bCBEdXJyYW50IDxQ YXVsLkR1cnJhbnRAY2l0cml4LmNvbT4gd3JvdGU6Cj4+Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tCj4+Pj4+Pj4+IEZyb206IFJvZ2VyIFBhdSBNb25uw6kgW21haWx0bzpyb2dlci5w YXVAY2l0cml4LmNvbV0KPj4+Pj4+Pj4gU2VudDogMTQgTm92ZW1iZXIgMjAxMyAxMDoyNwo+Pj4+ Pj4+PiBUbzogUGF1bCBEdXJyYW50OyBJYW4gQ2FtcGJlbGwKPj4+Pj4+Pj4gQ2M6IEtvbnJhZCBS emVzenV0ZWsgV2lsazsgeGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnOyBLZWlyCj4+Pj4+ Pj4gKFhlbi5vcmcpOwo+Pj4+Pj4+PiBKYW4gQmV1bGljaAo+Pj4+Pj4+PiBTdWJqZWN0OiBSZTog W1hlbi1kZXZlbF0gW1BBVENIXSBibGtpZjogYWRkIGluZGlyZWN0Cj4+PiBkZXNjcmlwdG9ycwo+ Pj4+Pj4+IGludGVyZmFjZSB0bwo+Pj4+Pj4+PiBwdWJsaWMgaGVhZGVycwo+Pj4+Pj4+Pgo+Pj4+ Pj4+PiBPbiAxNC8xMS8xMyAxMToxNCwgUGF1bCBEdXJyYW50IHdyb3RlOgo+Pj4+Pj4+Pj4+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+Pj4+Pj4+Pj4gRnJvbTogUm9nZXIgUGF1IE1vbm7D qSBbbWFpbHRvOnJvZ2VyLnBhdUBjaXRyaXguY29tXQo+Pj4+Pj4+Pj4+IFNlbnQ6IDE0IE5vdmVt YmVyIDIwMTMgMTA6MDYKPj4+Pj4+Pj4+PiBUbzogUGF1bCBEdXJyYW50OyBJYW4gQ2FtcGJlbGwK Pj4+Pj4+Pj4+PiBDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrOyB4ZW4tZGV2ZWxAbGlzdHMueGVu cHJvamVjdC5vcmc7Cj4+PiBLZWlyCj4+Pj4+Pj4+IChYZW4ub3JnKTsKPj4+Pj4+Pj4+PiBKYW4g QmV1bGljaAo+Pj4+Pj4+Pj4+IFN1YmplY3Q6IFJlOiBbWGVuLWRldmVsXSBbUEFUQ0hdIGJsa2lm OiBhZGQgaW5kaXJlY3QKPj4+Pj4gZGVzY3JpcHRvcnMKPj4+Pj4+PiBpbnRlcmZhY2UKPj4+Pj4+ Pj4gdG8KPj4+Pj4+Pj4+PiBwdWJsaWMgaGVhZGVycwo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gT24g MTMvMTEvMTMgMTI6MjQsIFBhdWwgRHVycmFudCB3cm90ZToKPj4+Pj4+Pj4+Pj4+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tCj4+Pj4+Pj4+Pj4+PiBGcm9tOiBJYW4gQ2FtcGJlbGwKPj4+Pj4+ Pj4+Pj4+IFNlbnQ6IDEzIE5vdmVtYmVyIDIwMTMgMTE6MTEKPj4+Pj4+Pj4+Pj4+IFRvOiBQYXVs IER1cnJhbnQKPj4+Pj4+Pj4+Pj4+IENjOiBLb25yYWQgUnplc3p1dGVrIFdpbGs7IHhlbi1kZXZl bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzsKPj4+Pj4gS2Vpcgo+Pj4+Pj4+Pj4+IChYZW4ub3JnKTsK Pj4+Pj4+Pj4+Pj4+IEphbiBCZXVsaWNoOyBSb2dlciBQYXUgTW9ubmUKPj4+Pj4+Pj4+Pj4+IFN1 YmplY3Q6IFJlOiBbWGVuLWRldmVsXSBbUEFUQ0hdIGJsa2lmOiBhZGQgaW5kaXJlY3QKPj4+Pj4g ZGVzY3JpcHRvcnMKPj4+Pj4+Pj4gaW50ZXJmYWNlCj4+Pj4+Pj4+Pj4gdG8KPj4+Pj4+Pj4+Pj4+ IHB1YmxpYyBoZWFkZXJzCj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4gT24gV2VkLCAyMDEzLTEx LTEzIGF0IDExOjA3ICswMDAwLCBQYXVsIER1cnJhbnQgd3JvdGU6Cj4+Pj4+Pj4+Pj4+Pj4+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+Pj4+Pj4+Pj4+Pj4+IEZyb206IElhbiBDYW1wYmVs bAo+Pj4+Pj4+Pj4+Pj4+PiBTZW50OiAxMyBOb3ZlbWJlciAyMDEzIDA5OjI3Cj4+Pj4+Pj4+Pj4+ Pj4+IFRvOiBQYXVsIER1cnJhbnQKPj4+Pj4+Pj4+Pj4+Pj4gQ2M6IEtvbnJhZCBSemVzenV0ZWsg V2lsazsKPj4+IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzsKPj4+Pj4+PiBLZWlyCj4+ Pj4+Pj4+Pj4+PiAoWGVuLm9yZyk7Cj4+Pj4+Pj4+Pj4+Pj4+IEphbiBCZXVsaWNoOyBSb2dlciBQ YXUgTW9ubmUKPj4+Pj4+Pj4+Pj4+Pj4gU3ViamVjdDogUmU6IFtYZW4tZGV2ZWxdIFtQQVRDSF0g YmxraWY6IGFkZCBpbmRpcmVjdAo+Pj4+Pj4+IGRlc2NyaXB0b3JzCj4+Pj4+Pj4+Pj4gaW50ZXJm YWNlCj4+Pj4+Pj4+Pj4+PiB0bwo+Pj4+Pj4+Pj4+Pj4+PiBwdWJsaWMgaGVhZGVycwo+Pj4+Pj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+PiBPbiBUdWUsIDIwMTMtMTEtMTIgYXQgMTU6MTYgKzAwMDAs IFBhdWwgRHVycmFudCB3cm90ZToKPj4+Pj4+Pj4+Pj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQo+Pj4+Pj4+Pj4+Pj4+Pj4+IEZyb206IElhbiBDYW1wYmVsbAo+Pj4+Pj4+Pj4+Pj4+ Pj4+IFNlbnQ6IDEyIE5vdmVtYmVyIDIwMTMgMTQ6MjkKPj4+Pj4+Pj4+Pj4+Pj4+PiBUbzogS29u cmFkIFJ6ZXN6dXRlayBXaWxrCj4+Pj4+Pj4+Pj4+Pj4+Pj4gQ2M6IFBhdWwgRHVycmFudDsgeGVu LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnOyBLZWlyCj4+Pj4+Pj4gKFhlbi5vcmcpOwo+Pj4+ Pj4+PiBKYW4KPj4+Pj4+Pj4+Pj4+Pj4gQmV1bGljaDsKPj4+Pj4+Pj4+Pj4+Pj4+PiBSb2dlciBQ YXUgTW9ubmUKPj4+Pj4+Pj4+Pj4+Pj4+PiBTdWJqZWN0OiBSZTogW1hlbi1kZXZlbF0gW1BBVENI XSBibGtpZjogYWRkIGluZGlyZWN0Cj4+Pj4+Pj4gZGVzY3JpcHRvcnMKPj4+Pj4+Pj4+Pj4+IGlu dGVyZmFjZQo+Pj4+Pj4+Pj4+Pj4+PiB0bwo+Pj4+Pj4+Pj4+Pj4+Pj4+IHB1YmxpYyBoZWFkZXJz Cj4+Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+Pj4+PiBPbiBUdWUsIDIwMTMtMTEtMTIgYXQg MDk6MjIgLTA1MDAsIEtvbnJhZCBSemVzenV0ZWsKPj4+IFdpbGsKPj4+Pj4+PiB3cm90ZToKPj4+ Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICtzdHJ1Y3QgYmxraWZfcmVxdWVzdF9p bmRpcmVjdCB7Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAgICB1aW50OF90ICAgICAgICBvcGVyYXRp b247ICAgIC8qCj4+PiBCTEtJRl9PUF9JTkRJUkVDVAo+Pj4+Pj4+ICAgICAgICAgICAgICAgICov Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAgICB1aW50OF90ICAgICAgICBpbmRpcmVjdF9vcDsgIC8q Cj4+Pj4+Pj4gQkxLSUZfT1Bfe1JFQUQvV1JJVEV9Cj4+Pj4+Pj4+Pj4+PiAqLwo+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4+ICsgICAgdWludDE2X3QgICAgICAgbnJfc2VnbWVudHM7ICAvKiBudW1iZXIgb2YK Pj4+Pj4gc2VnbWVudHMKPj4+Pj4+Pj4+Pj4+ICovCj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4gVGhpcyBpcyBnb2luZyB0byBiZSBhIHByb2JsZW0uIFdoYXQgYWxpZ25tZW50 Cj4+PiBib3VuZGFyeQo+Pj4+PiBhcmUKPj4+Pj4+PiB5b3UKPj4+Pj4+Pj4+Pj4+Pj4+Pj4gZXhw ZWN0aW5nIHRoZSBuZXh0IGZpZWxkIHRvIHN0YXJ0IG9uPyBBRkFJSyAzMi1iaXQKPj4+IGdjYwo+ Pj4+PiB3aWxsCj4+Pj4+Pj4gNC1ieXRlCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGFsaWduIGl0LCAzMi1i aXQgTVNWQyB3aWxsIDgtYnl0ZSBhbGlnbiBpdC4KPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+ Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+IE9oIG5vLiBJIHRob3VnaHQgdGhhdCB0aGUgTGlu dXggb25lIGhhZCB0aGlzIHNldAo+Pj4+PiBjb3JyZWN0bHksCj4+Pj4+Pj4gYWggaXQKPj4+Pj4+ Pj4gZGlkOgo+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+ Pj4+PiBzdHJ1Y3QgYmxraWZfcmVxdWVzdF9pbmRpcmVjdCB7Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+IFsu Li5dCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykpOwo+Pj4+ Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4gVGhhdCBhdHRyaWJ1dGUgcGFja2VkIGlzbid0 IGFsbG93ZWQgaW4gdGhlIHB1YmxpYwo+Pj4+PiBpbnRlcmZhY2UKPj4+Pj4+PiBoZWFkZXJzLgo+ Pj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4gU2luY2UgY29tcGlsZXJzIGRvIGRpZmZl ciBpbiB0aGVpciBwYWNraW5nLCBhbmQgZ3Vlc3RzCj4+Pj4+IG1heQo+Pj4+Pj4+IGJlIHVzaW5n Cj4+Pj4+Pj4+Pj4+Pj4+Pj4gdmFyaW91cyBwcmFnbWFzLCBpdCBtaWdodCBiZSB1c2VmdWwgdG8g d3JpdGUgZG93biB0aGF0Cj4+Pj4+IGZvcgo+Pj4+Pj4+IHg4Ngo+Pj4+Pj4+PiB0aGVzZQo+Pj4+ Pj4+Pj4+Pj4+Pj4+IGhlYWRlcnMgYXJlIHRvIGJlIHRyZWF0ZWQgYXMgdXNpbmcgdGhlIDxXSEFU RVZFUj4gQUJJCj4+Pj4+IChnY2M/Cj4+Pj4+Pj4+IFNvbWUKPj4+Pj4+Pj4+Pj4+IEludGVsCj4+ Pj4+Pj4+Pj4+Pj4+Pj4gc3RhbmRhcmQ/KS4KPj4+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+ Pj4KPj4+Pj4+Pj4+Pj4+Pj4+IENhbiB3ZSBnbyBmb3IgdHlwZXMgYWxpZ25lZCBvbiB0aGVpciBz aXplIHRoZW4gcmF0aGVyCj4+PiB0aGFuCj4+Pj4+Pj4gZ2NjCj4+Pj4+Pj4+Pj4+PiBicm9rZW5u ZXNzLgo+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+PiBXZSBzaG91bGQgZ28gZm9yIHNvbWUg ZXhpc3Rpbmcgd2VsbCBkZWZpbmVkIEFCSSBzcGVjIG5vdAo+Pj4+PiBtYWtlCj4+Pj4+Pj4gdXAK Pj4+Pj4+Pj4gb3VyCj4+Pj4+Pj4+Pj4+Pj4+IG93bi4KPj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ Pj4+Pj4gSW4gZWZmZWN0IHRoZSB4ODYgQUJJIGhhcyBoaXN0b3JpY2FsbHkgYmVlbiBkZS1mYWN0 bwo+Pj4+PiBzcGVjaWZpZWQKPj4+Pj4+PiBhcyB0aGUKPj4+Pj4+Pj4+Pj4+Pj4gZ2NjIEFCSS4K Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+IFNpbmNlIHRoZSBsaW51 eCBoZWFkZXJzIHNlZW0gdG8gaGFyZGNvZGUgdGhlIHg2NCBBQkkgZm9yCj4+Pj4+IHRoaXMKPj4+ Pj4+PiBzdHJ1Y3QsCj4+Pj4+Pj4+Pj4+Pj4gZG8gd2UgbmVlZCB0byBzdXBwb3J0IGFuIHg4NiB2 YXJpYW50PyBBZnRlciBhbGwgdGhlcmUncwo+Pj4gbm8KPj4+Pj4+PiBiYWNrd2FyZHMKPj4+Pj4+ Pj4+Pj4+PiBjb21wYXRpYmlsaXR5IGlzc3VlIGhlcmUuCj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+ Pj4gSSBhbSB0YWxraW5nIGFib3V0IHRoZSBnZW5lcmFsIGNhc2UgZm9yIGFsbAo+Pj4+PiB4ZW4v aW5jbHVkZS9wdWJsaWMKPj4+Pj4+PiBoZWFkZXJzLAo+Pj4+Pj4+Pj4+Pj4gbm90IHRoZXNlIHN0 cnVjdHMgc3BlY2lmaWNhbGx5Lgo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4g QWggb2suIFRoZW4geWVzIEkgZ3Vlc3MgdGhlIHg4NiBnY2MgQUJJIGhhcyB0byBiZSB0aGUKPj4+ IGRlZmF1bHQuCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiBUaGVyZSBzaG91bGQgYmUgYSB3ZWxs IHNwZWNpZmllZCBkZWZhdWx0IGZvciB0aGUgc3RydWN0Cj4+Pj4+IGxheW91dC4KPj4+Pj4+PiBJ Zgo+Pj4+Pj4+Pj4+Pj4gcGFydGljdWxhciBzdHJ1Y3RzIGRpdmVyZ2UgZnJvbSB0aGlzIChhbmQg YmVpbmcgY29uc2lzdGVudAo+Pj4+Pj4+IGFjcm9zcyAzMi0KPj4+Pj4+Pj4+Pj4+IGFuZCA2NC1i aXQgaXMgYSBnb29kIHJlYXNvbiB0byBkbyBzbykgdGhlbiBzdWl0YWJsZQo+Pj4gcGFkZGluZwo+ Pj4+PiBhbmQKPj4+Pj4+PiBwZXJoYXBzCj4+Pj4+Pj4+Pj4+PiAjaWZkZWZzIG1pZ2h0IGJlIG5l ZWRlZC4KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IFllcywgYWdyZWVkLiBU aGlzIHBhdGNoIHRoZXJlZm9yZSBuZWVkcyB0byBiZSBmaXhlZC4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+ Pj4+IEkgZG9uJ3QgdW5kZXJzdGFuZCB3aHkgb3IgaG93IHRoaXMgcGF0Y2ggc2hvdWxkIGJlIGZp eGVkLAo+Pj4gdGhlCj4+Pj4+IEFCSQo+Pj4+Pj4+IG9mCj4+Pj4+Pj4+Pj4gdGhpcyBuZXcgc3Ry dWN0dXJlcyBpcyBkZWZpbmVkIGJ5IHRoZSB3YXkgZ2NjIGdlbmVyYXRlcyBpdCdzCj4+Pj4+Pj4g bGF5b3V0Cj4+Pj4+Pj4+Pj4gKGRpZmZlcmVudCBvbiBpMzg2IG9yIGFtZDY0KSwgaXQncyBub3Qg cHJldHR5LCBidXQgaXQncyBob3cKPj4+IHRoZQo+Pj4+Pj4+IGJsa2lmCj4+Pj4+Pj4+Pj4gcHJv dG9jb2wgaXMgZGVmaW5lZC4gRG9pbmcgc29tZXRoaW5nIGRpZmZlcmVudCBub3cganVzdCBmb3IK Pj4+Pj4gc3RydWN0Cj4+Pj4+Pj4+Pj4gYmxraWZfcmVxdWVzdF9pbmRpcmVjdCBzZWVtcyBldmVu IHdvcnNlLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IEkgZG9uJ3Qgc2VlIHdoZXJlIGl0J3MgZGVmaW5l ZCB0aGF0IHRoZSBwcm90b2NvbCBhbHdheXMgdXNlcwo+Pj4gdGhlCj4+Pj4+Pj4gZ2NjIEFCST8K Pj4+Pj4+Pj4gQW5kIGlmIHRoYXQncyB0aGUgY2FzZSB0aGVuIHdoeSB0aGUgbmVlZCBmb3IKPj4+ Pj4+PiBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSkgYWxsCj4+Pj4+Pj4+IG92ZXIgdGhlIGxp bnV4IGhlYWRlcj8KPj4+Pj4+Pj4KPj4+Pj4+Pj4gQUZBSUsgdGhlcmUncyBubyBuZWVkIGZvciBh bGwgdGhlIF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKQo+Pj4gaW4KPj4+Pj4+PiBMaW51eAo+ Pj4+Pj4+PiBibGtpZi5oIGhlYWRlciwgYnV0IGl0J3MgTGludXggY29weSBvZiB0aGUgaGVhZGVy LCBzbyBpdCdzCj4+Pj4+IGFyZ3VhYmx5Cj4+Pj4+Pj4gdGhhdAo+Pj4+Pj4+PiBMaW51eCBjYW4g ZGVmaW5lIHRob3NlIGFzIHdhbnRlZCwgYXMgbG9uZyBhcyB0aGV5IGhhdmUgdGhlIHNhbWUKPj4+ Pj4+PiBsYXlvdXQKPj4+Pj4+Pj4gYXMgdGhlIG9uZSBnZW5lcmF0ZWQgYnkgYSBwcmlzdGluZSBj b3B5IG9mIGJsa2lmLmggZnJvbSB0aGUgWGVuCj4+Pj4+IHRyZWUKPj4+Pj4+PiAoYXMKPj4+Pj4+ Pj4gaXQgaXMgbm93KS4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRf XykpIHNob3VsZCBvbmx5IGJlIG5lZWRlZCBpbiBibGtiYWNrIGluCj4+Pj4+IG9yZGVyCj4+Pj4+ Pj4gdG8KPj4+Pj4+Pj4gZGVmaW5lIHRoZSBpMzg2IGFuZCBhbWQ2NCB2ZXJzaW9uIG9mIHRob3Nl IHN0cnVjdHVyZXMgYW5kCj4+PiBoYW5kbGUKPj4+Pj4+Pj4gY29ycmVjdGx5IHJlcXVlc3RzIGZy b20gYW4gaTM4NiBEb21VIG9uIGFuIGFtZDY0IERvbTAgZm9yCj4+PiBleGFtcGxlLgo+Pj4+Pj4+ Cj4+Pj4+Pj4gWWVzLCBhZ3JlZWQuIFNvIGNhbiB3ZSBoYXZlIGEgY29tbWVudCBpbiB0aGUgcGF0 Y2ggc3RhdGluZyB0aGUKPj4+IEFCSQo+Pj4+PiBhbmQKPj4+Pj4+PiB0aGUgZmFjdCB0aGF0IGl0 J3MgZGlmZmVyZW50IGluIHg4NiBhbmQgeDY0IGJ1aWxkcyBhbmQgaGVuY2UKPj4+Pj4gZnJvbnRl bmRzCj4+Pj4+Pj4gbmVlZCB0byBiZSBjYXJlZnVsIGFib3V0IGNvcnJlY3RseSBzZXR0aW5nIHRo ZSB4ZW5zdG9yZSBrZXk/Cj4+Pj4+Pgo+Pj4+Pj4gVGhyIGxheW91dCBhbmQgc2l6ZSBvZiB0aGUg c3RydWN0dXJlIHNob3VsZCBiZSB0aGUgc2FtZSBzaXplIG9uIDMyCj4+Pj4+IGFuZCA2NCBiaXQK Pj4+Pj4+IGJ1aWxkcy4KPj4+Pj4+Cj4+Pj4+Cj4+Pj4+IEFzIHRoZSBoZWFkZXIgc3RhbmRzLCB0 aGF0IGlzIG5vdCB0cnVlLgo+Pj4+Cj4+Pj4gV2hpY2ggb25lPyBUaGUgb25lIGluIExpbnV4IG9y IHRoZSBub24tZXhpc3Rpbmcgb25lIGluIFhlbiByZXBvIGZvcgo+Pj4gd2hpY2gKPj4+PiB0aGlz IHBhdGNoIHdhcyBhZGRpbmc/Cj4+Pj4KPj4+PiBJZiBpdCBpcyB0aGUgTGludXggb25lIHdoaWNo IG9mIHRoZSBmaWVsZHMgaXMgIG1lc3NlZCB1cD8gVGhlIHdob2xlCj4+PiBzdHJ1Y3QKPj4+PiAo aW5jbHVkaW5nIHRoZSBleHRyYSB1aW50OCBjbWQpIHNob3VsZCBiZSBleGFjdGx5IDY0IGJ5dGVz Lgo+Pj4+Cj4+Pj4gSSBhbSBwcmV0dHkgc3VyZSB3ZSBkb3VibGUgY2hlY2tlZCB0aGF0Lgo+Pj4K Pj4+IEhvdyBjYW4gdGhpcyBwb3NzaWJseSBiZSB0aGUgc2FtZSBiZXR3ZWVuIDMyLWJpdCBhbmQg NjQtYml0IGJ1aWxkcwo+Pj4gKHVubGVzcyBDT05GSUdfWDg2XzY0IGlzIGRlZmluZWQgaW4gYm90 aCBjYXNlcyk/IEFuZCB0aGUgZmFjdCB0aGF0Cj4+PiBucl9zZWdtZW50cyB3b24ndCBiZSBuYXR1 cmFsbHkgYWxpZ25lZCBpcyBwcmV0dHkgYmFkIHRvby4KPj4+Cj4+PiBzdHJ1Y3QgYmxraWZfcmVx dWVzdF9pbmRpcmVjdCB7Cj4+PiAgICAgICAgdWludDhfdCAgICAgICAgaW5kaXJlY3Rfb3A7Cj4+ PiAgICAgICAgdWludDE2X3QgICAgICAgbnJfc2VnbWVudHM7Cj4+PiAjaWZkZWYgQ09ORklHX1g4 Nl82NAo+Pj4gdWludDMyX3QgICAgICAgX3BhZDE7ICAgICAgICAvKiBvZmZzZXRvZihibGtpZl8u Li4sdS5pbmRpcmVjdC5pZCkgPT0gOAo+Pj4gKi8KPj4+ICNlbmRpZgo+Pj4gICAgICAgIHVpbnQ2 NF90ICAgICAgIGlkOwo+Pj4gICAgICAgIGJsa2lmX3NlY3Rvcl90IHNlY3Rvcl9udW1iZXI7Cj4+ PiAgICAgICAgYmxraWZfdmRldl90ICAgaGFuZGxlOwo+Pj4gICAgICAgIHVpbnQxNl90ICAgICAg IF9wYWQyOwo+Pj4gICBncmFudF9yZWZfdAo+PiBpbmRpcmVjdF9ncmVmc1tCTEtJRl9NQVhfSU5E SVJFQ1RfUEFHRVNfUEVSX1JFUVVFU1RdOwo+Pj4gI2lmZGVmIENPTkZJR19YODZfNjQKPj4+ICAg ICAgICB1aW50MzJfdCAgICAgIF9wYWQzOyAgICAgICAgIC8qIG1ha2UgaXQgNjQgYnl0ZSBhbGln bmVkICovCj4+PiAjZWxzZQo+Pj4gICAgICAgIHVpbnQ2NF90ICAgICAgX3BhZDM7ICAgICAgICAg LyogbWFrZSBpdCA2NCBieXRlIGFsaWduZWQgKi8KPj4+ICNlbmRpZgo+Pj4gfSBfX2F0dHJpYnV0 ZV9fKChfX3BhY2tlZF9fKSk7Cj4+Pgo+Pj4KPj4+ICBQYXVsCj4+Pgo+Pj4+Pgo+Pj4+PiAgUGF1 bAo+Pj4+Pgo+Pj4+Pj4gSSBkb24ndCB1bmRlcnN0YW5kIHdoYXQgdGhlIHhlbnN0b3JlIGtleSBo YXMgdG8gZG8gd2l0aCB0aGlzPwo+Pj4+Pj4+Cj4+Pj4+Pj4gIFBhdWwKPj4+Pj4+Cj4+Pj4KPj4K Pj4gSSBtdXN0IGJlIHJlYWxseSB0aGljayBoZXJlIGJ1dCBJIGFtIG5vdCBzZWVpbmcgaXQuIENv dWxkIHlvdSBleHBsYWluIHRvIG1lCj4+IGV4YWN0bHkgd2h5IHdlIHdvdWxkIG5vdCBnZXQgdGhl IHNhbWUgc2l6ZT8KPj4KPiAKPiBNYXliZSBJJ20gbWlzdW5kZXJzdGFuZGluZyB0aGlzIGJ1dCBi eSBteSByZWFkaW5nIHRoaXMgc2VjdGlvbjoKPiAKPiB1aW50OF90ICAgICAgICBpbmRpcmVjdF9v cDsKPiB1aW50MTZfdCAgICAgICBucl9zZWdtZW50czsKPiAjaWZkZWYgQ09ORklHX1g4Nl82NAo+ IHVpbnQzMl90ICAgICAgIF9wYWQxOyAgICAgICAgLyogb2Zmc2V0b2YoYmxraWZfLi4uLHUuaW5k aXJlY3QuaWQpID09IDggKi8KPiAjZW5kaWYKPiB1aW50NjRfdCAgICAgICBpZDsKClRoaXMgaXMg ZG9uZSBzbyB0aGF0OgoKb2Zmc2V0b2Yoc3RydWN0IGJsa2lmX3JlcXVlc3QsIGlkKSA9PSBvZmZz ZXRvZihzdHJ1Y3QgYmxraWZfcmVxdWVzdF9kaXNjYXJkLCBpZCkgPT0gb2Zmc2V0b2Yoc3RydWN0 IGJsa2lmX3JlcXVlc3RfaW5kaXJlY3QsIGlkKQoKSXQncyB0aGUgc2FtZSB0aGF0J3MgYWxyZWFk eSBkb25lIGZvciBzdHJ1Y3QgYmxraWZfcmVxdWVzdF9kaXNjYXJkLgoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==