From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Andryuk Subject: Re: [PATCH 6/6] xen-pt: Round pci regions sizes to XEN_PAGE_SIZE Date: Fri, 22 Mar 2019 15:43:19 -0400 Message-ID: References: <20190311180216.18811-1-jandryuk@gmail.com> <20190311180216.18811-7-jandryuk@gmail.com> <57dc1083d20a469785f05a2e5250a820@AMSPEX02CL02.citrite.net> <20190322030936.fkiajz5ifgaejkd4@MacBook-Air-de-Roger.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1h7Q4l-00073v-AU for xen-devel@lists.xenproject.org; Fri, 22 Mar 2019 19:43:35 +0000 Received: by mail-lf1-x12d.google.com with SMTP id d18so2185288lfn.3 for ; Fri, 22 Mar 2019 12:43:33 -0700 (PDT) In-Reply-To: <20190322030936.fkiajz5ifgaejkd4@MacBook-Air-de-Roger.local> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= Cc: Stefano Stabellini , Andrew Cooper , "marmarek@invisiblethingslab.com" , "qemu-devel@nongnu.org" , Simon Gaiser , Paul Durrant , Anthony Perard , "xen-devel@lists.xenproject.org" List-Id: xen-devel@lists.xenproject.org T24gVGh1LCBNYXIgMjEsIDIwMTkgYXQgMTE6MDkgUE0gUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIu cGF1QGNpdHJpeC5jb20+IHdyb3RlOgo+Cj4gT24gV2VkLCBNYXIgMjAsIDIwMTkgYXQgMDE6Mjg6 NDdQTSAtMDQwMCwgSmFzb24gQW5kcnl1ayB3cm90ZToKPiA+IE9uIEZyaSwgTWFyIDE1LCAyMDE5 IGF0IDEyOjI4IFBNIEFuZHJldyBDb29wZXIKPiA+IDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29t PiB3cm90ZToKPiA+ID4KPiA+ID4gT24gMTUvMDMvMjAxOSAwOToxNywgUGF1bCBEdXJyYW50IHdy b3RlOgo+ID4gPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID4gPiA+PiBGcm9tOiBK YXNvbiBBbmRyeXVrIFttYWlsdG86amFuZHJ5dWtAZ21haWwuY29tXQo+ID4gPiA+PiBTZW50OiAx NCBNYXJjaCAyMDE5IDE4OjE2Cj4gPiA+ID4+IFRvOiBQYXVsIER1cnJhbnQgPFBhdWwuRHVycmFu dEBjaXRyaXguY29tPgo+ID4gPiA+PiBDYzogcWVtdS1kZXZlbEBub25nbnUub3JnOyB4ZW4tZGV2 ZWxAbGlzdHMueGVucHJvamVjdC5vcmc7IG1hcm1hcmVrQGludmlzaWJsZXRoaW5nc2xhYi5jb207 IFNpbW9uCj4gPiA+ID4+IEdhaXNlciA8c2ltb25AaW52aXNpYmxldGhpbmdzbGFiLmNvbT47IFN0 ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47IEFudGhvbnkgUGVyYXJk Cj4gPiA+ID4+IDxhbnRob255LnBlcmFyZEBjaXRyaXguY29tPgo+ID4gPiA+PiBTdWJqZWN0OiBS ZTogW1BBVENIIDYvNl0geGVuLXB0OiBSb3VuZCBwY2kgcmVnaW9ucyBzaXplcyB0byBYRU5fUEFH RV9TSVpFCj4gPiA+ID4+Cj4gPiA+ID4+IE9uIFdlZCwgTWFyIDEzLCAyMDE5IGF0IDExOjA5IEFN IFBhdWwgRHVycmFudCA8UGF1bC5EdXJyYW50QGNpdHJpeC5jb20+IHdyb3RlOgo+ID4gPiA+Pj4+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPiA+ID4+Pj4gRnJvbTogSmFzb24gQW5kcnl1 ayBbbWFpbHRvOmphbmRyeXVrQGdtYWlsLmNvbV0KPiA+ID4gPj4+PiBTZW50OiAxMSBNYXJjaCAy MDE5IDE4OjAyCj4gPiA+ID4+Pj4gVG86IHFlbXUtZGV2ZWxAbm9uZ251Lm9yZwo+ID4gPiA+Pj4+ IENjOiB4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc7IG1hcm1hcmVrQGludmlzaWJsZXRo aW5nc2xhYi5jb207IFNpbW9uIEdhaXNlcgo+ID4gPiA+Pj4+IDxzaW1vbkBpbnZpc2libGV0aGlu Z3NsYWIuY29tPjsgSmFzb24gQW5kcnl1ayA8amFuZHJ5dWtAZ21haWwuY29tPjsgU3RlZmFubyBT dGFiZWxsaW5pCj4gPiA+ID4+Pj4gPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+OyBBbnRob255IFBl cmFyZCA8YW50aG9ueS5wZXJhcmRAY2l0cml4LmNvbT47IFBhdWwgRHVycmFudAo+ID4gPiA+Pj4+ IDxQYXVsLkR1cnJhbnRAY2l0cml4LmNvbT4KPiA+ID4gPj4+PiBTdWJqZWN0OiBbUEFUQ0ggNi82 XSB4ZW4tcHQ6IFJvdW5kIHBjaSByZWdpb25zIHNpemVzIHRvIFhFTl9QQUdFX1NJWkUKPiA+ID4g Pj4+Pgo+ID4gPiA+Pj4+IEZyb206IFNpbW9uIEdhaXNlciA8c2ltb25AaW52aXNpYmxldGhpbmdz bGFiLmNvbT4KPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+IElmIGEgcGNpIG1lbW9yeSByZWdpb24gaGFz IGEgc2l6ZSA8IFhFTl9QQUdFX1NJWkUgaXQgY2FuIGdldCBsb2NhdGVkIGF0Cj4gPiA+ID4+Pj4g YW4gYWRkcmVzcyB3aGljaCBpcyBub3QgcGFnZSBhbGlnbmVkLgo+ID4gPiA+Pj4gSUlSQyB0aGUg UENJIHNwZWMgc2F5cyB0aGF0IHRoZSBtaW5pbXVtIG1lbW9yeSByZWdpb24gc2l6ZSBzaG91bGQg YmUgYXQgbGVhc3QgNGsuIFNob3VsZCB3ZSBldmVuIGJlCj4gPiA+ID4+IHRvbGVyYXRpbmcgQkFS cyBzbWFsbGVyIHRoYW4gdGhhdD8KPiA+ID4gPj4+ICAgUGF1bAo+ID4gPiA+Pj4KPiA+ID4gPj4g SGksIFBhdWwuCj4gPiA+ID4+Cj4gPiA+ID4+IFNpbW9uIGZvdW5kIHRoaXMsIHNvIGl0IGFmZmVj dHMgYSByZWFsIGRldmljZS4gIFNpbW9uLCBkbyB5b3UgcmVjYWxsCj4gPiA+ID4+IHdoaWNoIGRl dmljZSB3YXMgYWZmZWN0ZWQ/Cj4gPiA+ID4+Cj4gPiA+ID4+IEkgdGhpbmsgQkFScyBvbmx5IG5l ZWQgdG8gYmUgcG93ZXItb2YtdHdvIHNpemUgYW5kIGFsaWduZWQsIGFuZCA0ayBpcwo+ID4gPiA+ PiBub3QgYSBtaW5pbXVtLiAgMTZieXRlcyBtYXkgYmUgYSBtaW5pbXVtLCBidXQgSSBkb24ndCBr bm93IHdoYXQgdGhlCj4gPiA+ID4+IHNwZWMgc2F5cy4KPiA+ID4gPj4KPiA+ID4gPj4gT24gYW4g SXZ5IEJyaWRnZSBzeXN0ZW0sIGhlcmUgYXJlIHNvbWUgb2YgdGhlIGRldmljZXMgd2l0aCBCQVJz IHNtYWxsZXIgdGhhbiA0SzoKPiA+ID4gPj4gMDA6MTYuMCBDb21tdW5pY2F0aW9uIGNvbnRyb2xs ZXI6IEludGVsIENvcnBvcmF0aW9uIDcgU2VyaWVzL0MyMTAKPiA+ID4gPj4gU2VyaWVzIENoaXBz ZXQgRmFtaWx5IE1FSSBDb250cm9sbGVyICMxIChyZXYgMDQpCj4gPiA+ID4+ICAgIE1lbW9yeSBh dCBkMDczNTAwMCAoNjQtYml0LCBub24tcHJlZmV0Y2hhYmxlKSBbZGlzYWJsZWRdIFtzaXplPTE2 XQo+ID4gPiA+PiAwMDoxZC4wIFVTQiBjb250cm9sbGVyOiBJbnRlbCBDb3Jwb3JhdGlvbiA3IFNl cmllcy9DMjEwIFNlcmllcyBDaGlwc2V0Cj4gPiA+ID4+IEZhbWlseSBVU0IgRW5oYW5jZWQgSG9z dCBDb250cm9sbGVyICMxIChyZXYgMDQpIChwcm9nLWlmIDIwIFtFSENJXSkKPiA+ID4gPj4gICAg TWVtb3J5IGF0IGQwNzM5MDAwICgzMi1iaXQsIG5vbi1wcmVmZXRjaGFibGUpIFtkaXNhYmxlZF0g W3NpemU9MUtdCj4gPiA+ID4+IDAwOjFmLjMgU01CdXM6IEludGVsIENvcnBvcmF0aW9uIDcgU2Vy aWVzL0MyMTAgU2VyaWVzIENoaXBzZXQgRmFtaWx5Cj4gPiA+ID4+IFNNQnVzIENvbnRyb2xsZXIg KHJldiAwNCkKPiA+ID4gPj4gICAgTWVtb3J5IGF0IGQwNzM0MDAwICg2NC1iaXQsIG5vbi1wcmVm ZXRjaGFibGUpIFtkaXNhYmxlZF0gW3NpemU9MjU2XQo+ID4gPiA+PiAwMjowMC4wIFN5c3RlbSBw ZXJpcGhlcmFsOiBKTWljcm9uIFRlY2hub2xvZ3kgQ29ycC4gU0QvTU1DIEhvc3QKPiA+ID4gPj4g Q29udHJvbGxlciAocmV2IDMwKQo+ID4gPiA+PiAgICBNZW1vcnkgYXQgZDA1MDMwMDAgKDMyLWJp dCwgbm9uLXByZWZldGNoYWJsZSkgW2Rpc2FibGVkXSBbc2l6ZT0yNTZdCj4gPiA+ID4+Cj4gPiA+ ID4+IFRoZXNlIGV4YW1wbGVzIGFyZSBhbGwgNEsgYWxpZ25lZCwgc28gdGhpcyBpcyBub3QgYW4g aXNzdWUgb24gdGhpcyBtYWNoaW5lLgo+ID4gPiA+Pgo+ID4gPiA+PiBSZXZpZXdpbmcgdGhlIGNv ZGUsIEknbSBub3cgd29uZGVyaW5nIGlmIHRoZSBmb2xsb3dpbmcgaW4KPiA+ID4gPj4gaHcveGVu L3hlbl9wdC5jOnhlbl9wdF9yZWdpb25fdXBkYXRlIGlzIHdyb25nOiAgICAgICAgcmMgPQo+ID4g PiA+PiB4Y19kb21haW5fbWVtb3J5X21hcHBpbmcoeGVuX3hjLCB4ZW5fZG9taWQsCj4gPiA+ID4+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fUEZOKGd1ZXN0X2FkZHIg KyBYQ19QQUdFX1NJWkUgLSAxKSwKPiA+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFhFTl9QRk4obWFjaGluZV9hZGRyICsgWENfUEFHRV9TSVpFIC0gMSksCj4gPiA+ ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fUEZOKHNpemUgKyBY Q19QQUdFX1NJWkUgLSAxKSwKPiA+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9wKTsKPiA+ID4gPj4KPiA+ID4gPj4gSWYgYSBiYXIgb2Ygc2l6ZSAweDEwMCBpcyBh dCAweGQwNTAwODAwLCB0aGVuIHRoZSBtYWNoaW5lX2FkZHIgcGFzc2VkCj4gPiA+ID4+IGluIHdv dWxkIGJlIDB4ZDA1MDEwMDAgd2hpY2ggaXMgcGFzdCB0aGUgYWN0dWFsIGxvY2F0aW9uLiAgU2hv dWxkIHRoZQo+ID4gPiA+PiBjYWxsIGFyZ3VtZW50cyBqdXN0IGJlIFhFTl9QRk4oZ3Vlc3RfYWRk cikgJiBYRU5fUEZOKG1hY2hpbmVfYWRkcik/Cj4gPiA+ID4+Cj4gPiA+ID4+IEJBUnMgc21hbGxl ciB0aGFuIGEgcGFnZSB3b3VsZCBhbHNvIGJlIGEgcHJvYmxlbSBpZiBCQVJzIGZvciBkaWZmZXJl bnQKPiA+ID4gPj4gZGV2aWNlcyBzaGFyZWQgdGhlIHNhbWUgcGFnZS4KPiA+ID4gPiBFeGFjdGx5 LiBXZSBjYW5ub3QgcGFzcyB0aGVtIHRocm91Z2ggd2l0aCBhbnkgZGVncmVlIG9mIHNhZmV0eSAo bm90IHRoYXQgcGFzc3Rocm91Z2ggb2YgYW4gYXJiaXRyYXJ5IGRldmljZSBpcyBhIHBhcnRpY3Vs YXJseSBzYWZlIHRoaW5nIHRvIGRvIGFueXdheSkuIFRoZSB4ZW4tcHQgY29kZSB3b3VsZCBpbnN0 ZWFkIG5lZWQgdG8gdHJhcCB0aG9zZSBCQVJzIGFuZCBwZXJmb3JtIHRoZSBhY2Nlc3NlcyB0byB0 aGUgcmVhbCBCQVIgaXRzZWxmLiBVbHRpbWF0ZWx5IHRob3VnaCBJIHRoaW5rIHdlIHNob3VsZCBi ZSByZXRpcmluZyB0aGUgeGVuLXB0IGNvZGUgaW4gZmF2b3VyIG9mIGEgc3RhbmRhbG9uZSBlbXVs YXRvci4KPiA+ID4KPiA+ID4gSXQgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIEJBUiBpcyBzbWFsbGVy IHRoYW4gNGssIGlmIHRoZXJlIGFyZSBob2xlcyBuZXh0Cj4gPiA+IHRvIGl0Lgo+ID4gPgo+ID4g PiBEbyB3ZSBrbm93IHdoYXQgdGhlIGNhc2UgaXMgaW4gcHJhY3RpY2UgZm9yIHRoZXNlIFVTQiBj b250cm9sbGVycz8KPiA+ID4KPiA+ID4gSWYgdGhlIHdvcnN0IGNvbWVzIHRvIHRoZSB3b3JzdCwg d2UgY2FuIHJlLWVudW1lcmF0ZSB0aGUgUENJIGJ1cyB0bwo+ID4gPiBlbnN1cmUgdGhhdCBhbGwg YmFycyBzbWFsbGVyIHRoYW4gNGsgc3RpbGwgaGF2ZSA0ayBhbGlnbm1lbnQgYmV0d2Vlbgo+ID4g PiB0aGVtLiAgVGhhdCB3YXkgd2UgY2FuIHNhZmVseSBwYXNzIHRoZW0gdGhyb3VnaCBldmVuIHdo ZW4gdGhleSBhcmUgc21hbGxlci4KPiA+Cj4gPiBBbmRyZXcsIHRoYW5rcyBmb3IgY2hlY2tpbmcg dGhlIHNwZWMgb24gdGhlIG1pbmltdW0gQkFSIHNpemUuCj4gPgo+ID4gRHJvcHBpbmcgdGhlIFJv dW5kIFBDSSByZWdpb24gcGF0Y2ggZnJvbSBRTUVVLCB0aGUgZ3Vlc3QgSFZNIHdpbGwgaGF2ZToK PiA+Cj4gPiAwMDowNi4wIFNEIEhvc3QgY29udHJvbGxlcjogUmljb2ggQ28gTHRkIFBDSWUgU0RY Qy9NTUMgSG9zdCBDb250cm9sbGVyIChyZXYgMDcpCj4gPiAgICAgTWVtb3J5IGF0IGYyMDI4ODAw ICgzMi1iaXQsIG5vbi1wcmVmZXRjaGFibGUpIFtzaXplPTI1Nl0KPiA+IDAwOjA3LjAgVVNCIGNv bnRyb2xsZXI6IE5FQyBDb3Jwb3JhdGlvbiB1UEQ3MjAyMDAgVVNCIDMuMCBIb3N0Cj4gPiBDb250 cm9sbGVyIChyZXYgMDQpIChwcm9nLWlmIDMwIFtYSENJXSkKPiA+ICAgICBNZW1vcnkgYXQgZjIw MjQwMDAgKDY0LWJpdCwgbm9uLXByZWZldGNoYWJsZSkgW3NpemU9OEtdCj4gPiAwMDowOC4wIFVT QiBjb250cm9sbGVyOiBJbnRlbCBDb3Jwb3JhdGlvbiA2IFNlcmllcy9DMjAwIFNlcmllcyBDaGlw c2V0Cj4gPiBGYW1pbHkgVVNCIEVuaGFuY2VkIEhvc3QgQ29udHJvbGxlciAjMiAocmV2IDA1KSAo cHJvZy1pZiAyMCBbRUhDSV0pCj4gPiAgICAgTWVtb3J5IGF0IGYyMDI4MDAwICgzMi1iaXQsIG5v bi1wcmVmZXRjaGFibGUpIFtzaXplPTFLXQo+ID4gMDA6MDkuMCBVU0IgY29udHJvbGxlcjogSW50 ZWwgQ29ycG9yYXRpb24gNiBTZXJpZXMvQzIwMCBTZXJpZXMgQ2hpcHNldAo+ID4gRmFtaWx5IFVT QiBFbmhhbmNlZCBIb3N0IENvbnRyb2xsZXIgIzEgKHJldiAwNSkgKHByb2ctaWYgMjAgW0VIQ0ld KQo+ID4gICAgIE1lbW9yeSBhdCBmMjAyODQwMCAoMzItYml0LCBub24tcHJlZmV0Y2hhYmxlKSBb c2l6ZT0xS10KPiA+Cj4gPiAwMDowOS4wLCAwMDowOC4wICYgMDA6MDYuMCBhbGwgc2hhcmUgdGhl IHNhbWUgcGFnZS4gIE9ubHkgMDA6MDguMCBpcwo+ID4gd29ya2luZy4gIFdpdGggc29tZSBhZGRl ZCBkZWJ1Z2dpbmcgb3V0cHV0LCB5b3UnbGwgc2VlIHRoYXQgdGhlIHNhbWUKPiA+IHBhZ2UqIGlz IHVzZWQgZm9yIHRocmVlIG9mIHRoZSBCQVJzLgo+ID4KPiA+IFswMDowNi4wXSBtYXBwaW5nIGd1 ZXN0X2FkZHIgMHhmMjAyODgwMCBnZm4gMHhmMjAyOCB0byBtYWRkcgo+ID4gMHhlMWEzMDAwMCBt Zm4gMHhlMWEzMAo+ID4gWzAwOjA3LjBdIG1hcHBpbmcgZ3Vlc3RfYWRkciAweGYyMDI0MDAwIGdm biAweGYyMDI0IHRvIG1hZGRyCj4gPiAweGUwODAwMDAwIG1mbiAweGUwODAwCj4gPiBbMDA6MDku MF0gbWFwcGluZyBndWVzdF9hZGRyIDB4ZjIwMjg0MDAgZ2ZuIDB4ZjIwMjggdG8gbWFkZHIKPiA+ IDB4ZTE5MDAwMDAgbWZuIDB4ZTE5MDAKPiA+IFswMDowOC4wXSBtYXBwaW5nIGd1ZXN0X2FkZHIg MHhmMjAyODAwMCBnZm4gMHhmMjAyOCB0byBtYWRkcgo+ID4gMHhlMWEyZjAwMCBtZm4gMHhlMWEy Zgo+Cj4gVGhlIHBhdGNoIGJlbG93IHNob3VsZCBwcmV2ZW50IGh2bWxvYWRlciBmcm9tIHBsYWNp bmcgbXVsdGlwbGUgQkFScyBvbgo+IHRoZSBzYW1lIHBhZ2UsIGNvdWxkIHlvdSBnaXZlIGl0IGEg dHJ5Pwo+Cj4gTm90ZSB0aGF0IHRoaXMgaXMgbm90IGdvaW5nIHRvIHByZXZlbnQgdGhlIGd1ZXN0 IGZyb20gbW92aW5nIHRob3NlCj4gQkFScyBhcm91bmQgYW5kIHBsYWNlIHRoZW0gaW4gdGhlIHNh bWUgcGFnZSwgdGh1cyBicmVha2luZyB0aGUgaW5pdGlhbAo+IHBsYWNlbWVudCBkb25lIGJ5IGh2 bWxvYWRlci4KPgo+IFRoYW5rcywgUm9nZXIuCgpIaSwgUm9nZXIuCgpJJ3ZlIG1pbmltYWxseSB0 ZXN0ZWQgdGhpcy4gIFllcywgdGhpcyBwYXRjaCBzZWVtcyB0byBwbGFjZSBzbWFsbCBCQVJzCmlu dG8gc2VwYXJhdGUgcGFnZXMuICBUaGUgbGludXggc3R1YmRvbSBhbmQgUUVNVSB0aGVuIHVzZSB0 aGUgc3BhY2luZwphcyBwcm92aWRlZCBieSBodm1sb2FkZXIuCgpUaGFua3MsCkphc29uCgoKPiAt LS04PC0tLQo+IGRpZmYgLS1naXQgYS90b29scy9maXJtd2FyZS9odm1sb2FkZXIvcGNpLmMgYi90 b29scy9maXJtd2FyZS9odm1sb2FkZXIvcGNpLmMKPiBpbmRleCAwYjcwOGJmNTc4Li5jNDMzYjM0 Y2Q2IDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9wY2kuYwo+ICsrKyBi L3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9wY2kuYwo+IEBAIC00ODksNiArNDg5LDEwIEBAIHZv aWQgcGNpX3NldHVwKHZvaWQpCj4KPiAgICAgICAgICByZXNvdXJjZS0+YmFzZSA9IGJhc2U7Cj4K PiArICAgICAgICBpZiAoIChiYXJfZGF0YSAmIFBDSV9CQVNFX0FERFJFU1NfU1BBQ0UpID09Cj4g KyAgICAgICAgICAgICBQQ0lfQkFTRV9BRERSRVNTX1NQQUNFX01FTU9SWSApCj4gKyAgICAgICAg ICAgIHJlc291cmNlLT5iYXNlID0gUk9VTkRVUChyZXNvdXJjZS0+YmFzZSwgUEFHRV9TSVpFKTsK PiArCj4gICAgICAgICAgcGNpX3dyaXRlbChkZXZmbiwgYmFyX3JlZywgYmFyX2RhdGEpOwo+ICAg ICAgICAgIGlmICh1c2luZ182NGJhcikKPiAgICAgICAgICAgICAgcGNpX3dyaXRlbChkZXZmbiwg YmFyX3JlZyArIDQsIGJhcl9kYXRhX3VwcGVyKTsKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvZmlybXdh cmUvaHZtbG9hZGVyL3V0aWwuaCBiL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci91dGlsLmgKPiBp bmRleCA3YmNhNjQxOGQyLi5iNTU1NGI1ODQ0IDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2Zpcm13YXJl L2h2bWxvYWRlci91dGlsLmgKPiArKysgYi90b29scy9maXJtd2FyZS9odm1sb2FkZXIvdXRpbC5o Cj4gQEAgLTUxLDYgKzUxLDggQEAgdm9pZCBfX2J1ZyhjaGFyICpmaWxlLCBpbnQgbGluZSkgX19h dHRyaWJ1dGVfXygobm9yZXR1cm4pKTsKPiAgI2RlZmluZSBNQihtYikgKG1iIyNVTEwgPDwgMjAp Cj4gICNkZWZpbmUgR0IoZ2IpIChnYiMjVUxMIDw8IDMwKQo+Cj4gKyNkZWZpbmUgUk9VTkRVUCh4 LCBhKSAoKCh4KSArIChhKSAtIDEpICYgfigoYSkgLSAxKSkKPiArCj4gIHN0YXRpYyBpbmxpbmUg aW50IHRlc3RfYml0KHVuc2lnbmVkIGludCBiLCBjb25zdCB2b2lkICpwKQo+ICB7Cj4gICAgICBy ZXR1cm4gISEoKChjb25zdCB1aW50OF90ICopcClbYj4+M10gJiAoMXU8PChiJjcpKSk7Cj4KCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMu eGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=