From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [Qemu-devel] use O_DIRECT to open disk images for IDE failed under xen-4.1.2 and qemu upstream Date: Tue, 28 May 2013 10:44:10 -0400 Message-ID: <20130528144410.GP724__43956.7460831769$1369752396$gmane$org@phenom.dumpdata.com> References: <33183CC9F5247A488A2544077AF190206C8FCB9B@szxeml538-mbx.china.huawei.com> <33183CC9F5247A488A2544077AF190206C8FFCF4@szxeml538-mbx.china.huawei.com> <20130524122001.GC23160@stefanha-thinkpad.redhat.com> <33183CC9F5247A488A2544077AF190206C900F86@szxeml538-mbx.china.huawei.com> <20130527124419.GE23204@stefanha-thinkpad.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20130527124419.GE23204@stefanha-thinkpad.redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Stefan Hajnoczi Cc: Stefano Stabellini , Hanweidong , Luonengjun , "qemu-devel@nongnu.org" , Wangzhenguo , "Gonglei (Arei)" , "xen-devel@lists.xen.org" , "Huangweidong (Hardware)" List-Id: xen-devel@lists.xenproject.org T24gTW9uLCBNYXkgMjcsIDIwMTMgYXQgMDI6NDQ6MTlQTSArMDIwMCwgU3RlZmFuIEhham5vY3pp IHdyb3RlOgo+IE9uIFNhdCwgTWF5IDI1LCAyMDEzIGF0IDA3OjMyOjU1QU0gKzAwMDAsIEdvbmds ZWkgKEFyZWkpIHdyb3RlOgo+ID4gCj4gPiAKPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0KPiA+ID4gRnJvbTogU3RlZmFuIEhham5vY3ppIFttYWlsdG86c3RlZmFuaGFAZ21haWwuY29t XQo+ID4gPiBTZW50OiBGcmlkYXksIE1heSAyNCwgMjAxMyA4OjIwIFBNCj4gPiA+IFRvOiBHb25n bGVpIChBcmVpKQo+ID4gPiBDYzogU3RlZmFubyBTdGFiZWxsaW5pOyBIYW53ZWlkb25nOyBMdW9u ZW5nanVuOyBxZW11LWRldmVsQG5vbmdudS5vcmc7Cj4gPiA+IFdhbmd6aGVuZ3VvOyB4ZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZzsgSHVhbmd3ZWlkb25nIChIYXJkd2FyZSkKPiA+ID4gU3ViamVjdDog UmU6IFtRZW11LWRldmVsXSB1c2UgT19ESVJFQ1QgdG8gb3BlbiBkaXNrIGltYWdlcyBmb3IgSURF IGZhaWxlZAo+ID4gPiB1bmRlciB4ZW4tNC4xLjIgYW5kIHFlbXUgdXBzdHJlYW0KPiA+ID4gCj4g PiA+IE9uIEZyaSwgTWF5IDI0LCAyMDEzIGF0IDAyOjU5OjA1QU0gKzAwMDAsIEdvbmdsZWkgKEFy ZWkpIHdyb3RlOgo+ID4gPiA+IEhpLAo+ID4gPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gT24gVGh1 LCAyMyBNYXkgMjAxMywgR29uZ2xlaSAoQXJlaSkgd3JvdGU6Cj4gPiA+ID4gPiA+IEhpLCBhbGwK PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gSSB1c2UgT19ESVJFQ1QgdG8gb3BlbiBkaXNrIGltYWdl cyBmb3IgSURFLCBidXQgSSdtIGZhaWxlZC4gQWZ0ZXIgZGVidWcsIEkKPiA+ID4gZ2V0Cj4gPiA+ ID4gPiB0aGUgYmVsb3cgbG9nczoKPiA+ID4gPiA+ID4gWzIwMTMtMDUtMjIgMjM6MjU6NDZdIGlk ZTogQ01EPWM4Cj4gPiA+ID4gPiA+IFsyMDEzLTA1LTIyIDIzOjI1OjQ2XSBibWRtYTogcmVhZGIg MHgwMCA6IDB4MDgKPiA+ID4gPiA+ID4gWzIwMTMtMDUtMjIgMjM6MjU6NDZdIGJtZG1hOiB3cml0 ZWIgMHgwMCA6IDB4MDkKPiA+ID4gPiA+ID4gWzIwMTMtMDUtMjIgMjM6MjU6NDZdIGJtZG1hX2Nt ZF93cml0ZWI6IDB4MDAwMDAwMDkKPiA+ID4gPiA+ID4gWzIwMTMtMDUtMjIgMjM6MjU6NDZdIGJt ZG1hOiByZWFkYiAweDAyIDogMHgwMQo+ID4gPiA+ID4gPiBbMjAxMy0wNS0yMiAyMzoyNTo0Nl0g Ym1kbWE6IHJlYWRiIDB4MDIgOiAweDAxCj4gPiA+ID4gPiA+IFsyMDEzLTA1LTIyIDIzOjI1OjQ2 XSBibWRtYTogcmVhZGIgMHgwMiA6IDB4MDEKPiA+ID4gPiA+ID4gWzIwMTMtMDUtMjIgMjM6MjU6 NDZdIGJtZG1hOiByZWFkYiAweDAyIDogMHgwMQo+ID4gPiA+ID4gPiBbMjAxMy0wNS0yMiAyMzoy NTo0Nl0gYm1kbWE6IHJlYWRiIDB4MDIgOiAweDAxCj4gPiA+ID4gPiA+IFsyMDEzLTA1LTIyIDIz OjI1OjQ2XSBibWRtYTogcmVhZGIgMHgwMiA6IDB4MDEKPiA+ID4gPiA+ID4gWzIwMTMtMDUtMjIg MjM6MjY6MzldIGJtZG1hOiB3cml0ZWIgMHgwMCA6IDB4MDgKPiA+ID4gPiA+ID4gWzIwMTMtMDUt MjIgMjM6MjY6MzldIGJtZG1hX2NtZF93cml0ZWI6IDB4MDAwMDAwMDgKPiA+ID4gPiA+ID4gWzIw MTMtMDUtMjIgMjM6MjY6NTZdID09PT09PSBvZmZzZXQ6MCBidWY6MHg3ZmYxMDBmMjFjMDAgY291 bnQ6NTEyCj4gPiA+ID4gPiBhaW9fb2Zmc2V0OjAKPiA+ID4gPiA+ID4gWzIwMTMtMDUtMjIgMjM6 MzE6MzBdID09PT09PSBvZmZzZXQ6MCBidWY6MHg3ZmYxMDBmMjFjMDAgY291bnQ6NTEyCj4gPiA+ ID4gPiBhaW9fb2Zmc2V0OjAKPiA+ID4gPiA+ID4gWzIwMTMtMDUtMjIgMjM6MzE6MzBdID09PT09 PSBoYW5kbGVfYWlvY2JfcndfbGluZWFyIGVycm5vOiAtMTQKPiA+ID4gPiA+ID4gWzIwMTMtMDUt MjIgMjM6MzE6MzBdID09PT09PSBwYWlvX2NvbXBsZXRlIGVycm5vPTE0Cj4gPiA+ID4gPiA+IFsy MDEzLTA1LTIyIDIzOjMxOjMwXSA9PT09PT0gaWRlX2RtYV9lcnJvciEhIQo+ID4gPiA+ID4gPiBb MjAxMy0wNS0yMiAyMzozMTozMF0gaWRlOiByZWFkIHN0YXR1cyBhZGRyPTB4M2Y2IHZhbD00MQo+ ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBRRU1VIGNvbW1hbmQgbGluZSA6Cj4gPiA+ID4gPiA+IHFl bXUtc3lzdGVtLWkzODYgLXhlbi1kb21pZCA4MzcgLWNoYXJkZXYKPiA+ID4gPiA+IHNvY2tldCxp ZD1saWJ4bC1jbWQscGF0aD0vdmFyL3J1bi94ZW4vcW1wLWxpYnhsLTgzNyxzZXJ2ZXIsbm93YWl0 IC1tb24KPiA+ID4gPiA+IGNoYXJkZXY9bGlieGwtY21kLG1vZGU9Y29udHJvbCAtbmFtZSBzdXNl MTEgLXZuYyAwLjAuMC4wOjEgLXNlcmlhbCBwdHkKPiA+ID4gLWJvb3QKPiA+ID4gPiA+IG9yZGVy PWMgLXVzYiAtdXNiZGV2aWNlIHRhYmxldCAtc21wIDIsbWF4Y3B1cz0yIC1kZXZpY2UKPiA+ID4g PiA+IHJ0bDgxMzksaWQ9bmljMCxuZXRkZXY9bmV0MCxtYWM9MDA6MTY6M2U6MTM6ZDM6NzIgLW5l dGRldgo+ID4gPiA+ID4gdHlwZT10YXAsaWQ9bmV0MCxpZm5hbWU9dGFwODM3LjAsZG93bnNjcmlw dD1ubyAtTSB4ZW5mdiAtbSAyMDQwIC1kcml2ZQo+ID4gPiA+ID4KPiA+ID4gZmlsZT0vbW50L3Nk ZC9pbWFnZS9zdXNlLmltYWdlLGlmPWlkZSxpbmRleD0wLG1lZGlhPWRpc2ssZm9ybWF0PXJhdyxj YWNoZQo+ID4gPiA+ID4gPW5vbmUKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gZXJybm8gMTQgc2hv d3MgQmFkIEFkZHJlc3MuIEFuZCBJIGZpbmQgUUVNVV9BSU9fTUlTQUxJR05FRCBmbGFnIGJpdAo+ ID4gPiBpcwo+ID4gPiA+ID4gbm90IHNldCB0aHJvdWdoIGRlYnVnLgo+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiAgICAgLyoKPiA+ID4gPiA+ID4gICAgICAqIElmIE9fRElSRUNUIGlzIHVzZWQgdGhl IGJ1ZmZlciBuZWVkcyB0byBiZSBhbGlnbmVkIG9uIGEgc2VjdG9yCj4gPiA+ID4gPiA+ICAgICAg KiBib3VuZGFyeS4gIENoZWNrIGlmIHRoaXMgaXMgdGhlIGNhc2Ugb3IgdGVsbCB0aGUgbG93LWxl dmVsCj4gPiA+ID4gPiA+ICAgICAgKiBkcml2ZXIgdGhhdCBpdCBuZWVkcyB0byBjb3B5IHRoZSBi dWZmZXIuCj4gPiA+ID4gPiA+ICAgICAgKi8KPiA+ID4gPiA+ID4gICAgIGlmICgoYnMtPm9wZW5f ZmxhZ3MgJiBCRFJWX09fTk9DQUNIRSkpIHsKPiA+ID4gPiA+ID4gICAgICAgICBpZiAoIWJkcnZf cWlvdl9pc19hbGlnbmVkKGJzLCBxaW92KSkgeyAgICAvL2lmIHRoZSBhZGRyZXNzIGlzCj4gPiA+ ID4gPiBhbGlnbmVkLTUxMiwgd2lsbCBubyBtZWV0IHRoZSBjb25kaXRpb25zCj4gPiA+ID4gPiA+ ICAgICAgICAgICAgIHR5cGUgfD0gUUVNVV9BSU9fTUlTQUxJR05FRDsKPiA+ID4gPiA+ID4gI2lm ZGVmIENPTkZJR19MSU5VWF9BSU8KPiA+ID4gPiA+ID4gICAgICAgICB9IGVsc2UgaWYgKHMtPnVz ZV9haW8pIHsKPiA+ID4gPiA+ID4gICAgICAgICAgICAgcmV0dXJuIGxhaW9fc3VibWl0KGJzLCBz LT5haW9fY3R4LCBzLT5mZCwgc2VjdG9yX251bSwgcWlvdiwKPiA+ID4gPiA+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG5iX3NlY3RvcnMsIGNiLCBvcGFxdWUsIHR5cGUpOwo+ID4g PiA+ID4gPiAjZW5kaWYKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gTmV4dCBwcm9jZXNzOgo+ID4g PiA+ID4gPiBzdGF0aWMgc3NpemVfdCBoYW5kbGVfYWlvY2Jfcncoc3RydWN0IHFlbXVfcGFpb2Ni ICphaW9jYikKPiA+ID4gPiA+ID4gewo+ID4gPiA+ID4gPiAgICAgc3NpemVfdCBuYnl0ZXM7Cj4g PiA+ID4gPiA+ICAgICBjaGFyICpidWY7Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ICAgICBpZiAo IShhaW9jYi0+YWlvX3R5cGUgJiBRRU1VX0FJT19NSVNBTElHTkVEKSkgewo+ID4gPiA+ID4gPiAg ICAgICAgIC8qCj4gPiA+ID4gPiA+ICAgICAgICAgICogSWYgdGhlcmUgaXMganVzdCBhIHNpbmds ZSBidWZmZXIsIGFuZCBpdCBpcyBwcm9wZXJseSBhbGlnbmVkCj4gPiA+ID4gPiA+ICAgICAgICAg ICogd2UgY2FuIGp1c3QgdXNlIHBsYWluIHByZWFkL3B3cml0ZSB3aXRob3V0IGFueSBwcm9ibGVt cy4KPiA+ID4gPiA+ID4gICAgICAgICAgKi8KPiA+ID4gPiA+ID4gICAgICAgICBpZiAoYWlvY2It PmFpb19uaW92ID09IDEpCj4gPiA+ID4gPiA+ICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlX2Fp b2NiX3J3X2xpbmVhcihhaW9jYiwKPiA+ID4gPiA+IGFpb2NiLT5haW9faW92LT5pb3ZfYmFzZSk7 IC8vdGhpcyB3YXksIGFuZCByZXBvcnRzIGVycm5vIDE0IG5leHQKPiA+ID4gPiA+ID4KPiA+ID4g PiA+ID4gQW55b25lIGhhdmUgYSBnb29kIG1ldGhvZCB0byByZXNvbHZlIHRoaXMgYnVnPyBUaGFu a3MhCj4gPiA+ID4gPgo+ID4gPiA+ID4gSSBrbm93IHRoYXQgdGhpcyBpcyBub3QgdGhlIGFuc3dl ciB5b3UgYXJlIGxvb2tpbmcgZm9yIGJ1dCB3aHkgZG8geW91Cj4gPiA+ID4gPiB3YW50IHRvIHVz ZSBPX0RJUkVDVCB3aXRoIElERT8KPiA+ID4gPiA+IEl0IHNob3VsZCBiZSBwZXJmZWN0bHkgc2Fm ZSB0byB1c2Ugd3JpdGUtYmFjay4KPiA+ID4gPgo+ID4gPiA+IEEgZmV3IGRheXMgYWdvLCBJIGFz a2VkIGEgcXVlc3Rpb24gYWJvdXQgdGhlIElERSBGTFVTSCB0aW1lIG9mIGd1ZXN077yaCj4gPiA+ ID4gaHR0cDovL2xpc3RzLm5vbmdudS5vcmcvYXJjaGl2ZS9odG1sL3FlbXUtZGV2ZWwvMjAxMy0w NS9tc2cwMjY0Mi5odG1sCj4gPiA+ID4KPiA+ID4gPiBmaW5hbGx5IEkgZm91bmQgdGhhdCBiZWNh dXNlIFFlbXUgdXNlIHdyaXRlLWJhY2sgZmxhZyB0byBvcGVuIGRpc2sgaW1hZ2VzIGJ5Cj4gPiA+ IGRlZmF1bHQuCj4gPiA+ID4gc28gSSBob3BlIHRvIHVzZSBPX0RJUkVDVCB0byBhdm9pZCBtZWV0 aW5nIHRoYXQgcHJvYmxlbSwgYnV0IEknbSBmYWlsZWQKPiA+ID4gdW5kZXIgWGVuIHBsYXRmb3Jt IHdpdGggUWVtdSB1cHN0cmVhbS4KPiA+ID4gCj4gPiA+IGNhY2hlPW5vbmUgZG9lcyBub3QgZWxp bWluYXRlIHRoZSBuZWVkIGZvciBmbHVzaC4gIElmIHlvdSB3YW50IHRvIGRvCj4gPiA+IHRoYXQs IHRyeSBjYWNoZT13cml0ZXRocm91Z2ggb3IgY2FjaGU9ZGlyZWN0c3luYy4KPiA+ID4gCj4gPiBJ IGhhZCB0cmllZCBpdCwgYnV0IEkgZ290IHRoZSBzYW1lIGVycm9yLgo+IAo+IFBlcmhhcHMgdGhh dCdzIGJlY2F1c2UgdGhlIGJ1c3kgYml0IGFsc28gbmVlZHMgdG8gYmUgc2V0IGNvcnJlY3RseSBm b3IKPiBvdGhlciBJREUgY29tbWFuZHMgKGxpa2UgcmVhZC93cml0ZSByZXF1ZXN0cykuCj4gCj4g PiA+IFJlZ2FyZGluZyB0aGUgRUZBVUxUIHlvdSBhcmUgc2VlaW5nLCBkaWQgeW91IGNoZWNrIGlm IHRoZSBJL08gYnVmZmVyCj4gPiA+IGFkZHJlc3MgaXMgdmFsaWQ/ICBUcnkgYnJlYWtpbmcgaW4g Z2RiIGFuZCBpbnNwZWN0aW5nIC9wcm9jLzxwaWQ+L21hcHMKPiA+ID4gb3IganVzdCB4IDxidWZm ZXItYWRkcmVzcz4gaW4gZ2RiIHRvIHNlZSBpZiB0aGUgYnVmZmVyIGlzIHJlYWRhYmxlLgo+ID4g PiAKPiA+ID4gU3RlZmFuCj4gPiAKPiA+IEhpLCBTdGVmYW4KPiA+IAo+ID4gVGhlIGZvbGxvd3Mg YXJlIGRldGFpbHMgaW4gZ2RiOgo+ID4gaGFuZGxlX2Fpb2NiX3J3X2xpbmVhciAoYWlvY2I9MHgx M2EwZjgwLCBidWY9MHg3ZjBhNjM3ZDdjMDAgPEFkZHJlc3MgMHg3ZjBhNjM3ZDdjMDAgb3V0IG9m IGJvdW5kcz4pCj4gPiAgICAgYXQgL21udC9zZGQvZ29uZ2xlaS94ZW4tNC4xLjIvdG9vbHMvcWVt dS14ZW4vcG9zaXgtYWlvLWNvbXBhdC5jOjIxMwo+ID4gMjEzICAgICB7Cj4gPiAoZ2RiKSBidAo+ ID4gIzAgIGhhbmRsZV9haW9jYl9yd19saW5lYXIgKGFpb2NiPTB4MTNhMGY4MCwgYnVmPTB4N2Yw YTYzN2Q3YzAwIDxBZGRyZXNzIDB4N2YwYTYzN2Q3YzAwIG91dCBvZiBib3VuZHM+KQo+ID4gICAg IGF0IC9tbnQvc2RkL2dvbmdsZWkveGVuLTQuMS4yL3Rvb2xzL3FlbXUteGVuL3Bvc2l4LWFpby1j b21wYXQuYzoyMTMKPiA+ICMxICAweDAwMDAwMDAwMDA1OGJhNGYgaW4gaGFuZGxlX2Fpb2NiX3J3 IChhaW9jYj0weDEzYTBmODApIGF0IC9tbnQvc2RkL2dvbmdsZWkveGVuLTQuMS4yL3Rvb2xzL3Fl bXUteGVuL3Bvc2l4LWFpby1jb21wYXQuYzoyNTQKPiA+ICMyICAweDAwMDAwMDAwMDA1OGJkZTIg aW4gYWlvX3RocmVhZCAodW51c2VkPTB4MCkgYXQgL21udC9zZGQvZ29uZ2xlaS94ZW4tNC4xLjIv dG9vbHMvcWVtdS14ZW4vcG9zaXgtYWlvLWNvbXBhdC5jOjM1MQo+ID4gIzMgIDB4MDAwMDdmMGE2 YTFlYzdiNiBpbiBzdGFydF90aHJlYWQgKCkgZnJvbSAvbGliNjQvbGlicHRocmVhZC5zby4wCj4g PiAjNCAgMHgwMDAwN2YwYTY4ZjBlOWNkIGluIGNsb25lICgpIGZyb20gL2xpYjY0L2xpYmMuc28u Ngo+ID4gIzUgIDB4MDAwMDAwMDAwMDAwMDAwMCBpbiA/PyAoKQo+ID4gKGdkYikgeCAweDdmMGE2 MzdkN2MwMAo+ID4gMHg3ZjBhNjM3ZDdjMDA6IENhbm5vdCBhY2Nlc3MgbWVtb3J5IGF0IGFkZHJl c3MgMHg3ZjBhNjM3ZDdjMDAKPiA+IChnZGIpIG4KPiA+IDIxNCAgICAgICAgIHNzaXplX3Qgb2Zm c2V0ID0gMDsKPiA+IChnZGIpIAo+ID4gMjE3ICAgICAgICAgd2hpbGUgKG9mZnNldCA8IGFpb2Ni LT5haW9fbmJ5dGVzKSB7Cj4gPiAoZ2RiKSBuCj4gPiAyMTggICAgICAgICAgICAgIGlmIChhaW9j Yi0+YWlvX3R5cGUgJiBRRU1VX0FJT19XUklURSkKPiA+IChnZGIpIAo+ID4gMjI0ICAgICAgICAg ICAgICAgICAgbGVuID0gcHJlYWQoYWlvY2ItPmFpb19maWxkZXMsCj4gPiAoZ2RiKSAKPiA+IDIy OSAgICAgICAgICAgICAgaWYgKGxlbiA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUikKPiA+IChnZGIp IAo+ID4gMjMxICAgICAgICAgICAgICBlbHNlIGlmIChsZW4gPT0gLTEpIHsKPiA+IChnZGIpIAo+ ID4gMjMyICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gLWVycm5vOwo+ID4gKGdkYikgcCBlcnJu bwo+ID4gJDEgPSAxNAo+ID4gCj4gPiBsaW51eC1DR1JtWVM6fiAjIGNhdCAvcHJvYy8yMTgzNy9t YXBzIAo+ID4gMDA0MDAwMDAtMDA4NDYwMDAgci14cCAwMDAwMDAwMCAwODowNSAyODYwMSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC91c3IvbGliL3hlbi9iaW4vcWVtdS1zeXN0ZW0taTM4 Ngo+ID4gMDBhNDUwMDAtMDBhNDYwMDAgci0tcCAwMDQ0NTAwMCAwODowNSAyODYwMSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC91c3IvbGliL3hlbi9iaW4vcWVtdS1zeXN0ZW0taTM4Ngo+ ID4gMDBhNDYwMDAtMDBhOTIwMDAgcnctcCAwMDQ0NjAwMCAwODowNSAyODYwMSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC91c3IvbGliL3hlbi9iaW4vcWVtdS1zeXN0ZW0taTM4Ngo+ID4g MDBhOTIwMDAtMDEzNDQwMDAgcnctcCAwMDAwMDAwMCAwMDowMCAwICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFtoZWFwXQo+ID4gMDEzNDQwMDAtMDEzNDUwMDAgcnctcCAwMDAwMDAw MCAwMDowMCAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFwXQo+ID4gMDEz NDUwMDAtMDEzOTMwMDAgcnctcCAwMDAwMDAwMCAwMDowMCAwICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFtoZWFwXQo+ID4gMDEzOTMwMDAtMDEzOTQwMDAgcnctcCAwMDAwMDAwMCAw MDowMCAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFwXQo+ID4gMDEzOTQw MDAtMDEzZWYwMDAgcnctcCAwMDAwMDAwMCAwMDowMCAwICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFtoZWFwXQo+ID4gN2YwYTYzNmQwMDAwLTdmMGE2MzdkMDAwMCBydy1zIDAwMDAw MDAwIDAwOjAzIDQwMjY1MzIxNzYgICAgICAgICAgICAgICAgIC9wcm9jL3hlbi9wcml2Y21kCj4g PiA3ZjBhNjM3ZDAwMDAtN2YwYTYzOGQwMDAwIHJ3LXMgMDAwMDAwMDAgMDA6MDMgNDAyNjUzMjE3 NiAgICAgICAgICAgICAgICAgL3Byb2MveGVuL3ByaXZjbWQKPiAKPiBJbnRlcmVzdGluZywgdGhl IG1lbW9yeSBpcyBtYXBwZWQgcmVhZC93cml0ZSBoZXJlLiAgQnV0IGl0J3Mgc2hhcmVkCj4gbWVt b3J5IHRoYXQgYmVsb25ncyB0byAvcHJvYy94ZW4vcHJpdmNtZCBhbmQgbWF5YmUgZG9lc24ndCBz dXBwb3J0Cj4gT19ESVJFQ1Q/Cj4gCj4gSSBkb24ndCBrbm93IHRoZSBYZW4gc2lkZSBvZiB0aGlu Z3MgYnV0IHdoeSBhcmUgd2UgZG9pbmcgSS9PIHRvCj4gL3Byb2MveGVuL3ByaXZjbWQ/Cgppb2N0 bHMgYXJlIHRoZSBvbmx5IHRoaW5ncyBvbmUgc2hvdWxkIGJlIGRvaW5nIG9uIHRoYXQgZmlsZS4K Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==