From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: Routing physical interrupts to EL1 Date: Thu, 2 Aug 2018 20:52:23 +0100 Message-ID: References: <0eb78867-7802-f38a-0711-d5336b262d0f@arm.com> <4c0bfd16-3936-46ea-cc22-ebad77e4a4b5@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 1flJeG-0003DZ-Cn for xen-devel@lists.xenproject.org; Thu, 02 Aug 2018 19:52:36 +0000 In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Saeed Mirzamohammadi Cc: xen-devel@lists.xenproject.org, nd@arm.com, Stefano Stabellini List-Id: xen-devel@lists.xenproject.org SGVsbG8sCgpQbGVhc2UgY29uZmlndXJlIHlvdXIgZS1tYWlsIGNsaWVudCB0byBxdW90ZSBwcm9w ZXJseSAoaS5lIHdpdGggPikuCgpPbiAwMi8wOC8yMDE4IDIwOjE0LCBTYWVlZCBNaXJ6YW1vaGFt bWFkaSB3cm90ZToKPiBTb3JyeSBmb3IgdGhlIGxhdGUgcmVwbHkuCj4gCj4gT24gU2F0LCBKdWwg NywgMjAxOCBhdCAyOjI1IFBNLCBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tIAo+ IDxtYWlsdG86anVsaWVuLmdyYWxsQGFybS5jb20+PiB3cm90ZToKPiAKPiAgICAgSGVsbG8sCj4g Cj4gICAgIE9uIDA3LzA3LzIwMTggMDg6MzIgUE0sIFNhZWVkIE1pcnphbW9oYW1tYWRpIHdyb3Rl Ogo+IAo+ICAgICAgICAgVGhhbmtzIGZvciB5b3VyIGRldGFpbGVkIHJlcGx5Lgo+IAo+ICAgICAg ICAgT24gRnJpLCBKdWwgNiwgMjAxOCBhdCA2OjEzIEFNLCBKdWxpZW4gR3JhbGwKPiAgICAgICAg IDxqdWxpZW4uZ3JhbGxAYXJtLmNvbSA8bWFpbHRvOmp1bGllbi5ncmFsbEBhcm0uY29tPgo+ICAg ICAgICAgPG1haWx0bzpqdWxpZW4uZ3JhbGxAYXJtLmNvbSA8bWFpbHRvOmp1bGllbi5ncmFsbEBh cm0uY29tPj4+IHdyb3RlOgo+IAo+IAo+IAo+ICAgICAgICAgIMKgIMKgIE9uIDA2LzA3LzE4IDA0 OjUxLCBTYWVlZCBNaXJ6YW1vaGFtbWFkaSB3cm90ZToKPiAKPiAgICAgICAgICDCoCDCoCDCoCDC oCBIaSwKPiAKPiAKPiAgICAgICAgICDCoCDCoCBIZWxsbywKPiAKPiAgICAgICAgICDCoCDCoCDC oCDCoCBJJ20gdHJ5aW5nIHRvIHJvdXRlIGFsbCB0aGUgcGh5c2ljYWwgaW50ZXJydXB0cyB0byB0 aGUKPiAgICAgICAgIGd1ZXN0Cj4gICAgICAgICAgwqAgwqAgwqAgwqAgZG9tYWluIHJhdGhlciB0 aGFuIGJlaW5nIHRyYXBwZWQgaW4gdGhlIFhlbi4gSSB3b3VsZAo+ICAgICAgICAgbGlrZSB0bwo+ ICAgICAgICAgIMKgIMKgIMKgIMKgIGtub3cgd2hhdCBpcyB0aGUgcmlnaHQgd2F5IHRvIGRvIHRo YXQ/Cj4gCj4gCj4gICAgICAgICAgwqAgwqAgTWF5IEkgYXNrIHdoYXQgaXMgeW91ciB1c2UgY2Fz ZSBmb3IgdGhhdD8gSWYgeW91IHJvdXRlCj4gICAgICAgICBpbnRlcnJ1cHRzIHRvCj4gICAgICAg ICAgwqAgwqAgdGhlIGd1ZXN0LCBYZW4gd2lsbCBub3QgcmVjZWl2ZSB2aXRhbCBpbnRlcnJ1cHQg c3VjaCBhcyB0aGUKPiAgICAgICAgIHRpbWVyLAo+ICAgICAgICAgIMKgIMKgIFVBUlQsIFNNTVUg aW50ZXJydXB0cywgbWFpbnRlbmFuY2UgaW50ZXJydXB0Li4uLgo+IAo+ICAgICAgICAgSSBvbmx5 IGhhdmUgb25lIGd1ZXN0IGRvbWFpbi4gU28sIEknbSB0cnlpbmcgdG8gbWFrZSBYZW4KPiAgICAg ICAgIHRyYW5zcGFyZW50IHRvIGF2b2lkIGFueSBleHRyYSBvdmVyaGVhZCBjYXVzZWQgYnkgdHJh cHBpbmcKPiAgICAgICAgIGludGVycnVwdHMuCj4gCj4gCj4gICAgIERvIHlvdSBpbmNsdWRlIERv bTAgaW4geW91ciAib25lIGd1ZXN0IGRvbWFpbiI/IElmIHNvLCBtYXkgSSBhc2sKPiAgICAgd2hh dCBpcyB5b3VyIGVuZCBnb2FsPyBXaHkgbm90IGJvb3RpbmcgdGhlIE9TIG9uIGJhcmVtZXRhbD8K PiAKPiBZZXMsIEkgb25seSBoYXZlIHRoZSBEb20wIGRvbWFpbiBhbmQgbm8gRG9tVS4gTXkgZW5k IGdvYWwgaXMgdG8gbWFrZSBYZW4gCj4gdHJhbnNwYXJlbnQgdG8gdGhlIGludGVycnVwdHMgYnV0 IGhhdmUgY29udHJvbCBvdmVyIHRoZSBtZW1vcnkgCj4gbWFuYWdlbWVudCBhbmQgYmUgYWJsZSB0 byBjcmVhdGUgYW5vdGhlciBkb21haW4gKGxpa2UgYSBkcml2ZXIgZG9tYWluKSAKPiBvbi1kZW1h bmQgd2hlbmV2ZXIgSSBuZWVkIGl0LgoKVGhlbiB5b3UgcmVhbGx5IGRvbid0IHdhbnQgYnlwYXNz IFhlbiBmb3IgdGhlIGludGVycnVwdHMuLi4gSWYgeW91IGRvIAp0aGF0LCB5b3Ugd2lsbCBsb3Nl IHRoZSBhYmlsaXR5IHRvIGNvbW11bmljYXRlIGJldHdlZW4gcGh5c2ljYWwgQ1BVcyBpbiAKdGhl IGh5cGVydmlzb3IuCgo+IAo+ICAgICAgICAgQnV0IEkgc3RpbGwgbmVlZCBYZW4gZm9yIG15IG93 biBoeXBlcmNhbGxzLiBJIGRvbid0IG5lZWQgdGhlCj4gICAgICAgICB0aW1lciBjYXVzZSBJIHBp bm5lZCBhbmQgZG9uJ3QgbmVlZCBhbnkgdmNwdSBzY2hlZHVsZXIuCj4gCj4gCj4gICAgIFdlbGws IFhlbiBzdGlsbCBuZWVkcyBpbnRlcnJ1cHRzIGZvciBvdGhlciB0aGluZ3MgbGlrZSBVQVJUIGFu ZAo+ICAgICBTTU1VLiBJdCBhbHNvIG5lZWRzIGludGVycnVwdHMgdG8gSVBJIG90aGVyIHBDUFUg c3VjaCBhcyBmb3IKPiAgICAgc29mdGlycSwgdW5ibG9ja2luZyBhbm90aGVyIHZDUFUgKHdhaXRp bmcgb24gYW4gZXZlbnQgZm9yCj4gICAgIGluc3RhbmNlKS4uLiBJIGRvbid0IHRoaW5rIHlvdSBj YW4gZGlzY2FyZCBpbnRlcnJ1cHRzIHRoYXQgZWFzaWx5IGluCj4gICAgIFhlbiB3aXRob3V0IHNv bWUgY29vcGVyYXRpb24gd2l0aCB0aGUgZ3Vlc3QuCj4gCj4gICAgIExldCdzIGltYWdpbmUgWGVu IElQSXMgYW5vdGhlciBwQ1BVLiBJZiBpbnRlcnJ1cHRzIGFyZSByb3V0ZWQgdG8KPiAgICAgeW91 ciBndWVzdCwgdGhpcyBndWVzdCB3aWxsIHJlY2VpdmUgdGhlIElQSXMgYW5kIHdpbGwgbm90IHVu ZGVyc3RhbmQKPiAgICAgd2hhdCB0byBkby4KPiAKPiBNeSBlbmQgZ29hbCBpcyB0aGF0IGFsbCB0 aGUgSVBJcyBhcmUgaGFuZGxlZCBpbiB0aGUgZ3Vlc3QgbGlrZSB3aGVuIGl0IAo+IGlzIG9uIGJh cmVtZXRhbC4KCllvdSBrZWVwIHNheWluZyBpbnRlcnJ1cHRzIHNob3VsZCBiZSBkaXJlY3RseSBy b3V0ZWQgdG8gdGhlIGd1ZXN0IGJ1dCAKeW91IGRvbid0IGV4cGxhaW4gd2h5IHlvdSB3YW50IHRo YXQuIEFzIEkgc2FpZCBpbiBteSBwcmV2aW91cyBlLW1haWwsCnRyeWluZyB0byByZW1vdmUgaW50 ZXJydXB0cyBmcm9tIHRoZSBoeXBlcnZpc29yIGlzIG1vcmUgYSBwYWluCmNvbXBhcmUgdG8gdGhl IGJlbmVmaXRzIHlvdSB3aWxsIGdhaW4uIFlvdSB3aWxsIGJlIGJldHRlciBhdAppbXByb3Zpbmcg dGhlIGxhdGVuY3kgd2hlbiByZWNlaXZpbmcgaW50ZXJydXB0IChBRkFJSyB0aGlzIGlzCmFscmVh ZHkgYmUgZ29vZCkuCgo+IAo+IAo+IAo+ICAgICAgICAgQmFzZWQgb24gbXkgdW5kZXJzdGFuZGlu ZywgSSBjYW4gb25seSBkaXNhYmxlIHRoZSBpbnRlcnJ1cHRzIG9uCj4gICAgICAgICBBUk0gYWxs IHRvZ2V0aGVyIHVzaW5nIHRoZSBIQ1JfRUwyIHJlZ2lzdGVyIGFuZCB3ZSBjYW4ndCBwaWNrCj4g ICAgICAgICBvbmUgaW50ZXJydXB0IHRvIG5vdCB0cmFwLCByaWdodD8KPiAKPiAKPiAgICAgRGVw ZW5kcyBvbiB5b3VyIGludGVycnVwdHMgY29udHJvbGxlci4gT24gR0lDdjQsIHlvdSB3aWxsIGJl IGFibGUgdG8KPiAgICAgZGlyZWN0bHkgaW5qZWN0ZWQgc29tZSBMUElzIChpLmUgTVNJKS4KPiAK PiAKPiAKPiAKPiAKPiAgICAgICAgICDCoCDCoCDCoCDCoCBJIGtub3cgdGhhdCBIQ1JfSU1PIGJp dCBpbiB0aGUgSENSX0VMMiByZWdpc3RlciBpcwo+ICAgICAgICAgc3VwcG9zZWQgdG8KPiAgICAg ICAgICDCoCDCoCDCoCDCoCBiZSBmb3Igcm91dGluZyB0aGUgaW50ZXJydXB0cyB0byB0aGUgZ3Vl c3QgKFJvdXRpbmcgdG8gRUwxCj4gICAgICAgICAgwqAgwqAgwqAgwqAgaW5zdGVhZCBvZiBFTDIp Lgo+ICAgICAgICAgIMKgIMKgIMKgIMKgIGxpbmsgdG8gdGhlIGRhdGFzaGVldDoKPiAgICAgICAg IGh0dHA6Ly9pbmZvY2VudGVyLmFybS5jb20vaGVscC9pbmRleC5qc3A/dG9waWM9L2NvbS5hcm0u ZG9jLmRkaTA1MDBkL0NJSEpIQUFHLmh0bWwKPiAgICAgICAgIDxodHRwOi8vaW5mb2NlbnRlci5h cm0uY29tL2hlbHAvaW5kZXguanNwP3RvcGljPS9jb20uYXJtLmRvYy5kZGkwNTAwZC9DSUhKSEFB Ry5odG1sPgo+ICAgICAgICAgICAgICAgICAKPiAgICAgICAgIDxodHRwOi8vaW5mb2NlbnRlci5h cm0uY29tL2hlbHAvaW5kZXguanNwP3RvcGljPS9jb20uYXJtLmRvYy5kZGkwNTAwZC9DSUhKSEFB Ry5odG1sCj4gICAgICAgICA8aHR0cDovL2luZm9jZW50ZXIuYXJtLmNvbS9oZWxwL2luZGV4Lmpz cD90b3BpYz0vY29tLmFybS5kb2MuZGRpMDUwMGQvQ0lISkhBQUcuaHRtbD4+Cj4gCj4gICAgICAg ICAgwqAgwqAgwqAgwqAgU28sIEkgaGF2ZSB0cmllZCBkb2luZyB0aGUgZm9sbG93aW5nIGluCj4g ICAgICAgICAgwqAgwqAgwqAgwqAgdGhlwqBsZWF2ZV9oeXBlcnZpc29yX3RhaWwuIEkgcnVuIGEg c2ltcGxlIGh5cGVyY2FsbMKgYW5kCj4gICAgICAgICBkbyB0aGUKPiAgICAgICAgICDCoCDCoCDC oCDCoCBmb2xsb3dpbmcgbGluZXMgYmVmb3JlIHJldHVybiAod2hpY2ggaXMgSSBndWVzcyB0aGUK PiAgICAgICAgIGxhc3QgcG9pbnQKPiAgICAgICAgICDCoCDCoCDCoCDCoCBvZiBleGl0IHRvIHRo ZSBndWVzdCBmcm9tIGh5cGVydmlzb3IpOgo+ICAgICAgICAgIMKgIMKgIMKgIMKgIC0tLS0tLS0t LS0tLS0tLS0tLS0tLQo+ICAgICAgICAgIMKgIMKgIMKgIMKgIC9jdXJyZW50LT5hcmNoLmhjcl9l bDIgJj0gfkhDUl9JTU87Lwo+ICAgICAgICAgIMKgIMKgIMKgIMKgIC9XUklURV9TWVNSRUcoY3Vy cmVudC0+YXJjaC5oY3JfZWwyLCBIQ1JfRUwyKTsvCj4gICAgICAgICAgwqAgwqAgwqAgwqAgL2lz YigpOy8KPiAgICAgICAgICDCoCDCoCDCoCDCoCAvLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8KPiAg ICAgICAgICDCoCDCoCDCoCDCoCAvCj4gICAgICAgICAgwqAgwqAgwqAgwqAgLwo+ICAgICAgICAg IMKgIMKgIMKgIMKgIC9JdCBsb29rcyBsaWtlIHRvIGJlIGRvaW5nIGl0IHJpZ2h0IGZvciBhbGwK PiAgICAgICAgICDCoCDCoCDCoCDCoCB0aGV2Y3B1c8KgYnV0Z2V0c8Kgc3R1Y2sgYWZ0ZXIgcmV0 dXJuIGZyb20KPiAgICAgICAgIGxlYXZlX2h5cGVydmlzb3JfdGFpbAo+ICAgICAgICAgIMKgIMKg IMKgIMKgIGZvciB0aGUgbGFzdHZjcHUuCj4gCj4gCj4gICAgICAgICAgwqAgwqAgV2hhdCBkbyB5 b3UgbWVhbiBieSBzdHVjaz8gRG8geW91IHNlZSBhbnkgbG9ncz8KPiAKPiAgICAgICAgIEl0J3Mg aHVuZyB3aXRoIG5vIGxvZy4KPiAKPiAKPiAgICAgICAgICDCoCDCoCBIQ1JfRUwyLklNTyB1bnNl dCBtZWFucyB0aGUgaW50ZXJydXB0IHdpbGwgZ2V0IHNpZ25hbGVkIHRvCj4gICAgICAgICBFTDEu IEl0Cj4gICAgICAgICAgwqAgwqAgZG9lcyBub3QgYWZmZWN0IGhvdyBpbnRlcnJ1cHQgd2lsbCBn ZXQgcmVhZCAoZS5nIElBUikuCj4gCj4gICAgICAgICAgwqAgwqAgV2hpY2ggaW50ZXJydXB0IGNv bnRyb2xsZXIgYXJlIHlvdSB1c2luZz8KPiAKPiAgICAgICAgIEknbSB1c2luZyBhIEdJQ3YyLgo+ IAo+ICAgICAgICAgIMKgIMKgIEluIGNhc2Ugb2YgR0lDdjIsIFhlbiBpcyByZS1tYXBwaW5nIEdJ Q0MgdG8gR0lDVi4gU28gd2hlbgo+ICAgICAgICAgdGhlIGd1ZXN0Cj4gICAgICAgICAgwqAgwqAg aXMgcmVhZGluZyBJQVIsIGl0IHdpbGwgcmVhZCB0aGUgaW50ZXJydXB0cyBmcm9tIHRoZSBMUnMu Cj4gICAgICAgICBOb3QgdGhlCj4gICAgICAgICAgwqAgwqAgcGh5c2ljYWwgaW50ZXJmYWNlLgo+ IAo+ICAgICAgICAgIMKgwqBTbywgaW4gdGhlIGNhc2Ugb2YgR0lDdjIsIHdlIGNhbid0IHJvdXRl IHRoZW0gY2F1c2UgWGVuIGlzCj4gICAgICAgICB0aGUgb25lIHRoYXQgaXMgdXBkYXRpbmcgdGhl IExScyBhbmQgZ3Vlc3QgaXMgcmVhZGluZyBmcm9tIHRoZQo+ICAgICAgICAgTFJzLCBhbSBJIHJp Z2h0Pwo+IAo+IAo+ICAgICBJZiB5b3Ugd2FudCB0byByb3V0ZSAqYWxsKiB0aGUgaW50ZXJydXB0 cywgeW91IGNhbiBtYXAgR0lDQyBhbmQgbm90Cj4gICAgIEdJQ1YgdG8geW91ciBndWVzdC4gU28g d2hlbiB0aGUgZ3Vlc3Qgd2lsbCByZWFkIElBUiwgaXQgd2lsbCByZWFkCj4gICAgIHRoZSBwaHlz aWNhbCBpbnRlcnJ1cHRzLgo+IAo+IAo+IAo+ICAgICAgICAgIMKgIMKgIEluIGNhc2Ugb2YgR0lD djMsIEhDUl9FTDIuSU1PIHdpbGwgYWxzbyBjb250cm9sIHRoZSBhY2Nlc3MuCj4gICAgICAgICBT byB5b3UKPiAgICAgICAgICDCoCDCoCBzaG91bGQgYmUgZmluZSBoZXJlLgo+IAo+ICAgICAgICAg IMKgIMKgIEhvd2V2ZXIsIGluIGJvdGggY2FzZSB5b3Ugd2lsbCBhdCBsZWFzdCBuZWVkIHRvIHJl d29yayB0aGUgd2F5Cj4gICAgICAgICAgwqAgwqAgc29mdHdhcmUgZ2VuZXJhdGVkIGludGVycnVw dHMgYXJlIHNlbnQgdG8gdGhlIGd1ZXN0LiBBdCB0aGUKPiAgICAgICAgIG1vbWVudCwKPiAgICAg ICAgICDCoCDCoCB0aGV5IGFyZSB3cml0dGVuIGluIHRoZSBMUnMuCj4gCj4gICAgICAgICBJcyBp dCBwb3NzaWJsZSB0byBub3QgdHJhcCBvbiB0aGXCoElDRFNHSVIgKFNHSSByZWdpc3Rlcik/Cj4g Cj4gCj4gICAgIFNHSXMgcmVnaXN0ZXIgYXJlIGFscmVhZHkgdHJhcHBlZCBieSBYZW4uIFRoZXkg YXJlIGVtdWxhdGVkIGJ5Cj4gICAgIHdyaXRpbmcgdGhlIGNvcnJlc3BvbmRpbmcgaW50ZXJydXB0 IHRvIHRoZSBMUnMuCj4gCj4gSG93IGNhbiBtYWtlIGl0IGF2YWlsYWJsZSB0byB0aGUgZ3Vlc3Qg YW5kIG5vdCB0cmFwIGluIFhlbj8gSXMgaXQgZG9hYmxlPwoKSSBhbSBhZnJhaWQgeW91IGFyZSBv biB5b3VyIG93biBoZXJlLiBYZW4gcmVxdWlyZXMgaW50ZXJydXB0cyBmb3IgaXRzZWxmIAooZS5n IHNjaGVkdWxpbmcsIHRpbWVyLCBldmVudCBjaGFubmVsLi4uKS4gSWYgeW91IHdhbnQgbW9yZSBp bmZvcm1hdGlvbiAKdGhlbiBJIGludml0ZSB5b3UgdG8gcmVhZCBteSBwcmV2aW91cyBlLW1haWwg YWdhaW4uCgo+IAo+ICAgICBIb3dldmVyLCBTR0lzIGFyZSBub3QgdGhlIG9ubHkgaW50ZXJydXB0 IGdlbmVyYXRlZCBieSB0aGUgaHlwZXJ2aXNvcgo+ICAgICBkaXJlY3RseS4gVGhlcmUgYXJlIGFs c28gdGhlIGV2ZW50IGNoYW5uZWwgKGEgUFBJKSBvciBhbnkgZGV2aWNlCj4gICAgIGVtdWxhdGVk IGJ5IHRoZSBoeXBlcnZpc29yIChlLmcgUEwwMTEpLgo+IAo+ICAgICBUcnlpbmcgdG8gcmVtb3Zl IGludGVycnVwdHMgZnJvbSB0aGUgaHlwZXJ2aXNvciBpcyBtb3JlIGEgcGFpbgo+ICAgICBjb21w YXJlIHRvIHRoZSBiZW5lZml0cyB5b3Ugd2lsbCBnYWluLiBZb3Ugd2lsbCBiZSBiZXR0ZXIgYXQK PiAgICAgaW1wcm92aW5nIHRoZSBsYXRlbmN5IHdoZW4gcmVjZWl2aW5nIGludGVycnVwdCAoQUZB SUsgdGhpcyBpcwo+ICAgICBhbHJlYWR5IGJlIGdvb2QpLgo+IAo+IEkgY2hhbmdlZCB0aGUgdmFs dWUgb2YgdGhlIEhDUl9FTDIgcmVnaXN0ZXIgYWZ0ZXIgZG9pbmcgYSBoeXBlcmNhbGwgaW4gCj4g ImxlYXZlX2h5cGVydmlzb3JfdGFpbCIgYW5kIG5vdyBkZWJ1Z2dpbmcuIEkgcmVhbGl6ZSB0aGF0 ICJndWVzdF9zeW5jIiAKPiBpbiBlbnRyeS5TIGRvZXNuJ3QgcmV0dXJuIGJhY2sgdG8gdGhlIGd1 ZXN0IChJIHB1dCBhIHByaW50IGFmdGVyIG15IAo+IGh5cGVyY2FsbCBpbiB0aGUgZ3Vlc3QgYW5k IGRvZXNuJ3Qgc2hvdyB1cCkuIEkgc2VlIHRoYXQgCj4gInJldHVybl9mcm9tX3RyYXAiIGdldHMg Y2FsbGVkLiBJIHN1cHBvc2UgdGhhdCBlcmV0IHNob3VsZCB0YWtlIG1lIGJhY2sgCj4gdG8gdGhl IGh2YyBjYWxsIEkgbWFkZSBpbiB0aGUgZ3Vlc3QuIEkgY2hlY2tlZCB0aGUgdmFsdWUgb2YgdGhl IExSIAo+IHJlZ2lzdGVyIChsaW5rIHJlZ2lzdGVyIHRoYXQgc3RvcmUgdGhlIHJldHVybiBhZGRy ZXNzKSBpbiAKPiAicmV0dXJuX2Zyb21fdHJhcCIgYW5kIHRoZXJlIGlzIG5vIGNoYW5nZS4KPiBE byB5b3Uga25vdyB3aHkgY2hhbmdpbmcgdGhlIHZhbHVlIG9mIHRoZSBIQ1JfRUwyIHJlZ2lzdGVy IHNob3VsZCBhZmZlY3QgCj4gcmV0dXJuaW5nIGJhY2sgdG8gdGhlIGd1ZXN0P8KgIEFsc28sIHdp dGhvdXQgY2hhbmdpbmcgdGhlIHJlZ2lzdGVyIHZhbHVlIAo+IEkgZ2V0IGJhY2sgdG8gdGhlIGd1 ZXN0IGZyb20gWGVuIG5vcm1hbGx5LgoKV2hpbGUgZXJldCBtZWFucyByZXR1cm5pbmcgaW4gdGhl IGd1ZXN0LCB5b3UgbWF5IHJlY2VpdmUgYW4gZXhjZXB0aW9uIAooZS5nIGludGVycnVwdCkgaW4g dGhlIGd1ZXN0IGRpdmVydGluZyBmcm9tIHRoZSAibm9ybWFsIiBwYXRoLiBIZW5jZSB3aHkgCnlv dSBkb24ndCBzZWUgdGhlIG1lc3NhZ2UgYWZ0ZXIgdGhlICJodmMiLiBJdCBpcyBsaWtlbHkgcG9z c2libGUgeW91IGdldCAKc3R1Y2sgaW4gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLgoKQ2hlZXJzLAoK LS0gCkp1bGllbiBHcmFsbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVj dC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1k ZXZlbA==