From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: Re: [PATCH SpectreV1+L1TF v6 4/9] spec: add l1tf-barrier Date: Tue, 12 Feb 2019 06:44:23 -0700 Message-ID: <5C62CDB70200007800215EEE@prv1-mh.provo.novell.com> References: <1c2b8322-1b66-ccc6-9ba9-e86eafb0227a@amazon.de> <1549633489-12724-1-git-send-email-nmanthey@amazon.de> <1549633489-12724-5-git-send-email-nmanthey@amazon.de> <5C4ED1D402000078002119E6@prv1-mh.provo.novell.com> <9C03B9BA0200004637554D14@prv1-mh.provo.novell.com> <00FAA7AF020000F8B1E090C7@prv1-mh.provo.novell.com> <0101E7AF020000F8B1E090C7@prv1-mh.provo.novell.com> <5C532AC00200007800212EA2@prv1-mh.provo.novell.com> <01CCAAAF02000039B1E090C7@prv1-mh.provo.novell.com> <01CFAAAF02000039B1E090C7@prv1-mh.provo.novell.com> 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 1gtYMP-00028H-AF for xen-devel@lists.xenproject.org; Tue, 12 Feb 2019 13:44:29 +0000 In-Reply-To: <01CFAAAF02000039B1E090C7@prv1-mh.provo.novell.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: nmanthey@amazon.de Cc: Juergen Gross , Tim Deegan , Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Dario Faggioli , Martin Pohlack , wipawel@amazon.de, Julien Grall , David Woodhouse , "Martin Mazein(amazein)" , xen-devel , Julian Stecklina , Bjoern Doebel List-Id: xen-devel@lists.xenproject.org Pj4+IE9uIDA4LjAyLjE5IGF0IDE0OjQ0LCA8bm1hbnRoZXlAYW1hem9uLmRlPiB3cm90ZToKPiBU byBjb250cm9sIHRoZSBydW50aW1lIGJlaGF2aW9yIG9uIEwxVEYgdnVsbmVyYWJsZSBwbGF0Zm9y bXMgYmV0dGVyLCB0aGUKPiBjb21tYW5kIGxpbmUgb3B0aW9uIGwxdGYtYmFycmllciBpcyBpbnRy b2R1Y2VkLiBUaGlzIG9wdGlvbiBjb250cm9scwo+IHdoZXRoZXIgb24gdnVsbmVyYWJsZSB4ODYg cGxhdGZvcm1zIHRoZSBsZmVuY2UgaW5zdHJ1Y3Rpb24gaXMgdXNlZCB0bwo+IHByZXZlbnQgc3Bl Y3VsYXRpdmUgZXhlY3V0aW9uIGZyb20gYnlwYXNzaW5nIHRoZSBldmFsdWF0aW9uIG9mCj4gY29u ZGl0aW9uYWxzIHRoYXQgYXJlIHByb3RlY3RlZCB3aXRoIHRoZSBldmFsdWF0ZV9ub3NwZWMgbWFj cm8uCj4gCj4gQnkgbm93LCBYZW4gaXMgY2FwYWJsZSBvZiBpZGVudGlmeWluZyBMMVRGIHZ1bG5l cmFibGUgaGFyZHdhcmUuIEhvd2V2ZXIsCj4gdGhpcyBpbmZvcm1hdGlvbiBjYW5ub3QgYmUgdXNl ZCBmb3IgYWx0ZXJuYXRpdmUgcGF0Y2hpbmcsIGFzIGEgQ1BVIGZlYXR1cmUKPiBpcyByZXF1aXJl ZC4gVG8gY29udHJvbCBhbHRlcm5hdGl2ZSBwYXRjaGluZyB3aXRoIHRoZSBjb21tYW5kIGxpbmUg b3B0aW9uLAo+IGEgbmV3IHg4NiBmZWF0dXJlICJYODZfRkVBVFVSRV9TQ19MMVRGX1ZVTE4iIGlz IGludHJvZHVjZWQuIFRoaXMgZmVhdHVyZQo+IGlzIHVzZWQgdG8gcGF0Y2ggdGhlIGxmZW5jZSBp bnN0cnVjdGlvbiBpbnRvIHRoZSBhcmNoX2JhcnJpZXJfbm9zcGVjX3RydWUKPiBmdW5jdGlvbi4g VGhlIGZlYXR1cmUgaXMgZW5hYmxlZCBvbmx5IGlmIEwxVEYgdnVsbmVyYWJsZSBoYXJkd2FyZSBp cwo+IGRldGVjdGVkIGFuZCB0aGUgY29tbWFuZCBsaW5lIG9wdGlvbiBkb2VzIG5vdCBwcmV2ZW50 IHVzaW5nIHRoaXMgZmVhdHVyZS4KPiAKPiBUaGUgc3RhdHVzIG9mIGh5cGVydGhyZWFkaW5nIGlz IG5vdCBjb25zaWRlcmVkIHdoZW4gYXV0b21hdGljYWxseSBlbmFibGluZwo+IGFkZGluZyB0aGUg bGZlbmNlIGluc3RydWN0aW9uLCBiZWNhdXNlIHBsYXRmb3JtcyB3aXRob3V0IGh5cGVydGhyZWFk aW5nCj4gY2FuIHN0aWxsIGJlIHZ1bG5lcmFibGUgdG8gTDFURiBpbiBjYXNlIHRoZSBMMSBjYWNo ZSBpcyBub3QgZmx1c2hlZAo+IHByb3Blcmx5Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IE5vcmJlcnQg TWFudGhleSA8bm1hbnRoZXlAYW1hem9uLmRlPgo+IAo+IC0tLQo+IAo+IE5vdGVzOgo+ICAgdjY6 IE1vdmUgZGlzYWJsaW5nIGwxdGYtYmFycmllciBpbnRvIHNwZWMtY3RybD1ubwo+ICAgICAgIFVz ZSBnYXAgaW4gZXhpc3RpbmcgZmxhZ3MKPiAgICAgICBGb3JjZSBiYXJyaWVyIGJhc2VkIG9uIGNv bW1hbmRsaW5lLCBpbmRlcGVuZGVudGx5IG9mIEwxVEYgZGV0ZWN0aW9uCj4gCj4gIGRvY3MvbWlz Yy94ZW4tY29tbWFuZC1saW5lLnBhbmRvYyB8IDE0ICsrKysrKysrKystLS0tCj4gIHhlbi9hcmNo L3g4Ni9zcGVjX2N0cmwuYyAgICAgICAgICB8IDE3ICsrKysrKysrKysrKysrKy0tCj4gIHhlbi9p bmNsdWRlL2FzbS14ODYvY3B1ZmVhdHVyZXMuaCB8ICAxICsKPiAgeGVuL2luY2x1ZGUvYXNtLXg4 Ni9zcGVjX2N0cmwuaCAgIHwgIDEgKwo+ICA0IGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMo KyksIDYgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RvY3MvbWlzYy94ZW4tY29tbWFu ZC1saW5lLnBhbmRvYyBiL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLnBhbmRvYwo+IC0tLSBh L2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLnBhbmRvYwo+ICsrKyBiL2RvY3MvbWlzYy94ZW4t Y29tbWFuZC1saW5lLnBhbmRvYwo+IEBAIC00ODMsOSArNDgzLDkgQEAgYWNjb3VudGluZyBmb3Ig aGFyZHdhcmUgY2FwYWJpbGl0aWVzIGFzIGVudW1lcmF0ZWQgdmlhIAo+IENQVUlELgo+ICAKPiAg Q3VycmVudGx5IGFjY2VwdGVkOgo+ICAKPiAtVGhlIFNwZWN1bGF0aW9uIENvbnRyb2wgaGFyZHdh cmUgZmVhdHVyZXMgYGlicnNiYCwgYHN0aWJwYCwgYGlicGJgLAo+IC1gbDFkLWZsdXNoYCBhbmQg YHNzYmRgIGFyZSB1c2VkIGJ5IGRlZmF1bHQgaWYgYXZhaWxhYmxlIGFuZCBhcHBsaWNhYmxlLiAg VGhleSAKPiBjYW4KPiAtYmUgaWdub3JlZCwgZS5nLiBgbm8taWJyc2JgLCBhdCB3aGljaCBwb2lu dCBYZW4gd29uJ3QgdXNlIHRoZW0gaXRzZWxmLCBhbmQKPiArVGhlIFNwZWN1bGF0aW9uIENvbnRy b2wgaGFyZHdhcmUgZmVhdHVyZXMgYGlicnNiYCwgYHN0aWJwYCwgYGlicGJgLCAKPiBgbDFkLWZs dXNoYCwKPiArYGwxdGYtYmFycmllcmAgYW5kIGBzc2JkYCBhcmUgdXNlZCBieSBkZWZhdWx0IGlm IGF2YWlsYWJsZSBhbmQgYXBwbGljYWJsZS4gIAo+IFRoZXkKPiArY2FuIGJlIGlnbm9yZWQsIGUu Zy4gYG5vLWlicnNiYCwgYXQgd2hpY2ggcG9pbnQgWGVuIHdvbid0IHVzZSB0aGVtIGl0c2VsZiwg Cj4gYW5kCj4gIHdvbid0IG9mZmVyIHRoZW0gdG8gZ3Vlc3RzLgo+ICAKPiAgIyMjIGNwdWlkX21h c2tfY3B1Cj4gQEAgLTE4OTYsNyArMTg5Niw3IEBAIEJ5IGRlZmF1bHQgU1NCRCB3aWxsIGJlIG1p dGlnYXRlZCBhdCBydW50aW1lIChpLmUgCj4gYHNzYmQ9cnVudGltZWApLgo+ICAjIyMgc3BlYy1j dHJsICh4ODYpCj4gID4gYD0gTGlzdCBvZiBbIDxib29sPiwgeGVuPTxib29sPiwge3B2LGh2bSxt c3Itc2MscnNifT08Ym9vbD4sCj4gID4gICAgICAgICAgICAgIGJ0aS10aHVuaz1yZXRwb2xpbmV8 bGZlbmNlfGptcCwge2licnMsaWJwYixzc2JkLGVhZ2VyLWZwdSwKPiAtPiAgICAgICAgICAgICAg bDFkLWZsdXNofT08Ym9vbD4gXWAKPiArPiAgICAgICAgICAgICAgbDFkLWZsdXNoLGwxdGYtYmFy cmllcn09PGJvb2w+IF1gCj4gIAo+ICBDb250cm9scyBmb3Igc3BlY3VsYXRpdmUgZXhlY3V0aW9u IHNpZGVjaGFubmVsIG1pdGlnYXRpb25zLiAgQnkgZGVmYXVsdCwgCj4gWGVuCj4gIHdpbGwgcGlj ayB0aGUgbW9zdCBhcHByb3ByaWF0ZSBtaXRpZ2F0aW9ucyBiYXNlZCBvbiBjb21waWxlZCBpbiBz dXBwb3J0LAo+IEBAIC0xOTYyLDYgKzE5NjIsMTIgQEAgSXJyZXNwZWN0aXZlIG9mIFhlbidzIHNl dHRpbmcsIHRoZSBmZWF0dXJlIGlzIAo+IHZpcnR1YWxpc2VkIGZvciBIVk0gZ3Vlc3RzIHRvCj4g IHVzZS4gIEJ5IGRlZmF1bHQsIFhlbiB3aWxsIGVuYWJsZSB0aGlzIG1pdGlnYXRpb24gb24gaGFy ZHdhcmUgYmVsaWV2ZWQgdG8gCj4gYmUKPiAgdnVsbmVyYWJsZSB0byBMMVRGLgo+ICAKPiArT24g aGFyZHdhcmUgdnVsbmVyYWJsZSB0byBMMVRGLCB0aGUgYGwxdGYtYmFycmllcj1gIG9wdGlvbiBj YW4gYmUgdXNlZCB0byAKPiBmb3JjZQo+ICtvciBwcmV2ZW50IFhlbiBmcm9tIHByb3RlY3Rpbmcg ZXZhbHVhdGlvbnMgaW5zaWRlIHRoZSBoeXBlcnZpc29yIHdpdGggYSAKPiBiYXJyaWVyCj4gK2lu c3RydWN0aW9uIHRvIG5vdCBsb2FkIHBvdGVudGlhbGx5IHNlY3JldCBpbmZvcm1hdGlvbiBpbnRv IEwxIGNhY2hlLiAgQnkKPiArZGVmYXVsdCwgWGVuIHdpbGwgZW5hYmxlIHRoaXMgbWl0aWdhdGlv biBvbiBoYXJkd2FyZSBiZWxpZXZlZCB0byBiZSAKPiB2dWxuZXJhYmxlCj4gK3RvIEwxVEYuCj4g Kwo+ICAjIyMgc3luY19jb25zb2xlCj4gID4gYD0gPGJvb2xlYW4+YAo+ICAKPiBkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L3NwZWNfY3RybC5jIGIveGVuL2FyY2gveDg2L3NwZWNfY3RybC5jCj4g LS0tIGEveGVuL2FyY2gveDg2L3NwZWNfY3RybC5jCj4gKysrIGIveGVuL2FyY2gveDg2L3NwZWNf Y3RybC5jCj4gQEAgLTIxLDYgKzIxLDcgQEAKPiAgI2luY2x1ZGUgPHhlbi9saWIuaD4KPiAgI2lu Y2x1ZGUgPHhlbi93YXJuaW5nLmg+Cj4gIAo+ICsjaW5jbHVkZSA8YXNtL2NwdWlkLmg+Cj4gICNp bmNsdWRlIDxhc20vbWljcm9jb2RlLmg+Cj4gICNpbmNsdWRlIDxhc20vbXNyLmg+Cj4gICNpbmNs dWRlIDxhc20vcHJvY2Vzc29yLmg+Cj4gQEAgLTUwLDYgKzUxLDcgQEAgYm9vbCBfX3JlYWRfbW9z dGx5IG9wdF9pYnBiID0gdHJ1ZTsKPiAgYm9vbCBfX3JlYWRfbW9zdGx5IG9wdF9zc2JkID0gZmFs c2U7Cj4gIGludDhfdCBfX3JlYWRfbW9zdGx5IG9wdF9lYWdlcl9mcHUgPSAtMTsKPiAgaW50OF90 IF9fcmVhZF9tb3N0bHkgb3B0X2wxZF9mbHVzaCA9IC0xOwo+ICtpbnQ4X3QgX19yZWFkX21vc3Rs eSBvcHRfbDF0Zl9iYXJyaWVyID0gLTE7Cj4gIAo+ICBib29sIF9faW5pdGRhdGEgYnNwX2RlbGF5 X3NwZWNfY3RybDsKPiAgdWludDhfdCBfX3JlYWRfbW9zdGx5IGRlZmF1bHRfeGVuX3NwZWNfY3Ry bDsKPiBAQCAtOTEsNiArOTMsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9zcGVjX2N0cmwo Y29uc3QgY2hhciAqcykKPiAgICAgICAgICAgICAgaWYgKCBvcHRfcHZfbDF0Zl9kb211IDwgMCAp Cj4gICAgICAgICAgICAgICAgICBvcHRfcHZfbDF0Zl9kb211ID0gMDsKPiAgCj4gKyAgICAgICAg ICAgIG9wdF9sMXRmX2JhcnJpZXIgPSAwOwo+ICsKPiAgICAgICAgICBkaXNhYmxlX2NvbW1vbjoK PiAgICAgICAgICAgICAgb3B0X3JzYl9wdiA9IGZhbHNlOwo+ICAgICAgICAgICAgICBvcHRfcnNi X2h2bSA9IGZhbHNlOwo+IEBAIC0xNTcsNiArMTYxLDggQEAgc3RhdGljIGludCBfX2luaXQgcGFy c2Vfc3BlY19jdHJsKGNvbnN0IGNoYXIgKnMpCj4gICAgICAgICAgICAgIG9wdF9lYWdlcl9mcHUg PSB2YWw7Cj4gICAgICAgICAgZWxzZSBpZiAoICh2YWwgPSBwYXJzZV9ib29sZWFuKCJsMWQtZmx1 c2giLCBzLCBzcykpID49IDAgKQo+ICAgICAgICAgICAgICBvcHRfbDFkX2ZsdXNoID0gdmFsOwo+ ICsgICAgICAgIGVsc2UgaWYgKCAodmFsID0gcGFyc2VfYm9vbGVhbigibDF0Zi1iYXJyaWVyIiwg cywgc3MpKSA+PSAwICkKPiArICAgICAgICAgICAgb3B0X2wxdGZfYmFycmllciA9IHZhbDsKPiAg ICAgICAgICBlbHNlCj4gICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKPiAgCj4gQEAgLTI0OCw3 ICsyNTQsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcHJpbnRfZGV0YWlscyhlbnVtIGluZF90aHVu ayB0aHVuaywgCj4gdWludDY0X3QgY2FwcykKPiAgICAgICAgICAgICAgICAgIlxuIik7Cj4gIAo+ ICAgICAgLyogU2V0dGluZ3MgZm9yIFhlbidzIHByb3RlY3Rpb24sIGlycmVzcGVjdGl2ZSBvZiBn dWVzdHMuICovCj4gLSAgICBwcmludGsoIiAgWGVuIHNldHRpbmdzOiBCVEktVGh1bmsgJXMsIFNQ RUNfQ1RSTDogJXMlcywgT3RoZXI6JXMlc1xuIiwKPiArICAgIHByaW50aygiICBYZW4gc2V0dGlu Z3M6IEJUSS1UaHVuayAlcywgU1BFQ19DVFJMOiAlcyVzLCBPdGhlcjolcyVzJXNcbiIsCj4gICAg ICAgICAgICAgdGh1bmsgPT0gVEhVTktfTk9ORSAgICAgID8gIk4vQSIgOgo+ICAgICAgICAgICAg IHRodW5rID09IFRIVU5LX1JFVFBPTElORSA/ICJSRVRQT0xJTkUiIDoKPiAgICAgICAgICAgICB0 aHVuayA9PSBUSFVOS19MRkVOQ0UgICAgPyAiTEZFTkNFIiA6Cj4gQEAgLTI1OCw3ICsyNjQsOCBA QCBzdGF0aWMgdm9pZCBfX2luaXQgcHJpbnRfZGV0YWlscyhlbnVtIGluZF90aHVuayB0aHVuaywg Cj4gdWludDY0X3QgY2FwcykKPiAgICAgICAgICAgICAhYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJF X1NTQkQpICAgICAgICAgICA/ICIiIDoKPiAgICAgICAgICAgICAoZGVmYXVsdF94ZW5fc3BlY19j dHJsICYgU1BFQ19DVFJMX1NTQkQpICA/ICIgU1NCRCsiIDogIiBTU0JELSIsCj4gICAgICAgICAg ICAgb3B0X2licGIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAiIElCUEIiICA6 ICIiLAo+IC0gICAgICAgICAgIG9wdF9sMWRfZmx1c2ggICAgICAgICAgICAgICAgICAgICAgICAg ICAgID8gIiBMMURfRkxVU0giIDogIiIpOwo+ICsgICAgICAgICAgIG9wdF9sMWRfZmx1c2ggICAg ICAgICAgICAgICAgICAgICAgICAgICAgID8gIiBMMURfRkxVU0giIDogIiIsCj4gKyAgICAgICAg ICAgb3B0X2wxdGZfYmFycmllciAgICAgICAgICAgICAgICAgICAgICAgICAgPyAiIEwxVEZfQkFS UklFUiIgOiAKPiAiIik7Cj4gIAo+ICAgICAgLyogTDFURiBkaWFnbm9zdGljcywgcHJpbnRlZCBp ZiB2dWxuZXJhYmxlIG9yIFBWIHNoYWRvd2luZyBpcyBpbiB1c2UuIAo+ICovCj4gICAgICBpZiAo IGNwdV9oYXNfYnVnX2wxdGYgfHwgb3B0X3B2X2wxdGZfaHdkb20gfHwgb3B0X3B2X2wxdGZfZG9t dSApCj4gQEAgLTg0Miw2ICs4NDksMTIgQEAgdm9pZCBfX2luaXQgaW5pdF9zcGVjdWxhdGlvbl9t aXRpZ2F0aW9ucyh2b2lkKQo+ICAgICAgZWxzZSBpZiAoIG9wdF9sMWRfZmx1c2ggPT0gLTEgKQo+ ICAgICAgICAgIG9wdF9sMWRfZmx1c2ggPSBjcHVfaGFzX2J1Z19sMXRmICYmICEoY2FwcyAmIEFS Q0hfQ0FQU19TS0lQX0wxREZMKTsKPiAgCj4gKyAgICAvKiBCeSBkZWZhdWx0LCBlbmFibGUgTDFU Rl9WVUxOIG9uIEwxVEYtdnVsbmVyYWJsZSBoYXJkd2FyZSAqLwo+ICsgICAgaWYgKCBvcHRfbDF0 Zl9iYXJyaWVyID09IC0xICkKPiArICAgICAgICBvcHRfbDF0Zl9iYXJyaWVyID0gY3B1X2hhc19i dWdfbDF0ZjsKPiArICAgIGlmICggb3B0X2wxdGZfYmFycmllciA+IDApCj4gKyAgICAgICAgc2V0 dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVSRV9TQ19MMVRGX1ZVTE4pOwoKRGlkIHdlIGVuZCB3 aXRoIGEgbWlzdW5kZXJzdGFuZGluZyBpbiB0aGUgdjUgZGlzY3Vzc2lvbj8gSSBkaWRuJ3QKYW5z d2VyIHlvdXIgcXVlc3Rpb24gcmVnYXJkaW5nIHdoZXRoZXIgdG8gYWxzbyBjb25zaWRlciBMMUQK Zmx1c2ggYXZhaWxhYmlsaXR5IChvbiB0b3Agb2YgbXkgcmVxdWVzdCB0byBjb25zaWRlciBTTVQp IHdpdGggYQpzdHJhaWdodCAieWVzIiwgYnV0IEkgdGhpbmsgaXQgd2FzIHN0aWxsIGNsZWFyIHRo YXQgbXkgbW9yZSBleHRlbnNpdmUKcmVzcG9uc2UgYm9pbGVkIGRvd24gdG8gYSAieWVzIi4gT2gs IEkgc2VlIG5vdyAtIHRoZSBzYW1lIHRvcGljCndhcyBkaXNjdXNzZWQgaW4gdHdvIHBsYWNlcywg YW5kIGZvciB0aGUgc2Vjb25kIEkgdGhlbiBzYWlkIHRoYXQKd2l0aCB0aGUgImZvciBub3ciIGFz cGVjdCBwcm9wZXJseSBzdGF0ZWQgKHdoaWNoIHlvdSBub3cgZG8pCkknZCBiZSBmaW5lLgoKU28g bGV0IG1lIHB1dCBpdCB0aGlzIHdheTogSXMgdGFraW5nIGludG8gY29uc2lkZXJhdGlvbiBhdCBs ZWFzdApvcHRfc210IGFuZCBvcHRfbDFkX2ZsdXNoIChidXQgcHV0dGluZyBvbiB0aGUgc2lkZSB0 aGUgInRvbwplYXJseSIgYXNwZWN0IG9mIHRoZSBkZXRlcm1pbmF0aW9uIGhlcmUpIHZlcnkgZGlm ZmljdWx0IHRvIGRvLApvciB3b3VsZCB0aGF0IGxlYXZlIHVuLWFkZHJlc3NlZCBjb25jZXJucyBv ZiB5b3Vycz8gSWYgbm90LAptYXkgSSBhc2sgdGhhdCB5b3UgZ28gYXQgbGVhc3QgdGhhdCBsaXR0 bGUgc3RlcCBmdXJ0aGVyPyBBcyBzYWlkCmJlZm9yZSAtIHdlJ2QgbGlrZSB0byBhdm9pZCBwZW5h bGl6aW5nIGNvbmZpZ3VyYXRpb25zIGFzIHdlbGwgYXMKc2V0dXBzIHdoaWNoIGFyZW4ndCBhZmZl Y3RlZC4gSW4gcGFydGljdWxhciBpdCB3b3VsZCBzZWVtCnByZXR0eSBiYWQgb2YgdXMgdG8gZnVy dGhlciBwZW5hbGl6ZSBwZW9wbGUgd2hvIGhhdmUgc2V0CiJzbXQ9MCIgYW5kIHdobyB1c2UgdXAt dG8tZGF0ZSBtaWNyb2NvZGUuCgpBbHNvIGluIHRoZSBzZWNvbmQgaWYoKSB0aGVyZSdzIHlldCBh Z2FpbiBhIG1pc3NpbmcgYmxhbmsuCgpKYW4KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz dGluZm8veGVuLWRldmVs