From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v2 00/27] arm64: Dom0 ITS emulation Date: Thu, 16 Mar 2017 11:20:03 +0000 Message-ID: <20170316112030.20419-1-andre.przywara@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1coTQg-0007UT-SA for xen-devel@lists.xenproject.org; Thu, 16 Mar 2017 11:18:50 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Stefano Stabellini , Julien Grall Cc: xen-devel@lists.xenproject.org, Shanker Donthineni , Vijay Kilari List-Id: xen-devel@lists.xenproject.org SGksCgphIHJldmlzZWQgdmVyc2lvbiBvZiB0aGUgc2VyaWVzIHRvIGVtdWxhdGUgYW4gQVJNIEdJ Q3YzIElUUyBpbnRlcnJ1cHQKY29udHJvbGxlciwgZm9yIERvbTAgb25seSBhdCB0aGUgbW9tZW50 LgpUaGUgSVRTIGlzIGFuIGludGVycnVwdCBjb250cm9sbGVyIHdpZGdldCBwcm92aWRpbmcgYSBz b3BoaXN0aWNhdGVkIHdheQpvZiBkZWFsaW5nIHdpdGggTVNJcyBpbiBhIHNjYWxhYmxlIG1hbm5l ci4gRm9yIG1vcmUgZXhwbGFuYXRpb25zLCBzZWUKYmVsb3cuClNvbWUgcmVtYXJrcyBvbiB0aGlz IHZlcnNpb246Ci0gSSBrZXB0IHRoZSBjb21tYW5kIGxpbmUgcGFyYW1ldGVycyBhbmQgS2NvbmZp ZyBvcHRpb25zIGluIGZvciBub3cuCiAgSSBiZWxpZXZlIHdlIGhhdmUgdG8gaW1wb3NlIF9zb21l XyBraW5kIG9mIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YKICBzdXBwb3J0ZWQgTFBJcyBhbmQgZGV2 aWNlcywgTGludXggZG9lcyBjZXJ0YWlubHkgZG8gYXMgd2VsbC4gVW50aWwKICB3ZSBrbm93IHNv bWUgb25lLWZpdHMtYWxsIG51bWJlcnMgYW5kIGhhdmUgY29uZmlybWF0aW9uIGZyb20gc2V2ZXJh bAogIHBsYXRmb3JtcywgSSdkIGxpa2UgdG8ga2VlcCB0aGlzIGVhc2lseSBjb25maWd1cmFibGUu CiAgSSBhbSBoYXBweSB0byByZW1vdmUgdGhpcyBmcm9tIHRoZSBmaW5hbCBkcm9wIHNob3VsZCBw ZW9wbGUgc3RpbGwgaGF2ZQogIGNvbmNlcm5zLgotIFR3by1sZXZlbCB0YWJsZXMgZm9yIGRldmlj ZXMgYXJlIG1pc3NpbmcgZnJvbSB0aGlzIHZlcnNpb24uIFRoaXMKICBzaG91bGRuJ3QgYmUgaGFy ZCB0byBpbXBsZW1lbnQsIHRob3VnaCwgSSBqdXN0IGRpZG4ndCBmaW5kIHRoZSB0aW1lCiAgeWV0 LiBJIHN1c3BlY3QgaXQgd2lsbCBiZSBwYXJ0IG9mIHRoZSBuZXh0IGRyb3AuCi0gVG8gYWxsb3cg bWFwcGluZyBkZXZpY2VzIHdpdGggbm9uLXRyaXZpYWwgZGV2aWNlIElEIG1hcHBpbmdzIChwbGF0 Zm9ybQogIGRldmljZXMsIGZvciBpbnN0YW5jZSksIHdlIGRldmlhdGUgZnJvbSBvdXIgcHJlbWF0 dXJlIGFsbG9jYXRpb24KICBzY2hlbWUgYW5kIG1vdmUgdG8gbWFwcGluZyBkZXZpY2VzIG9uIGRl bWFuZCB1cG9uIERvbTAncyBNQVBEIGNhbGxzLgogIEkgYW0gbm90IGEgZmFuIG9mIHRoaXMgYXBw cm9hY2gsIGJ1dCB0aGlzIHNob3VsZCBzb2x2ZSB0aGUgaW1tZWRpYXRlCiAgaXNzdWVzIHdlIHNl ZSBvbiBhY3R1YWwgaGFyZHdhcmUuIEFkdmFudGFnZSBpcyB0aGF0IHdlIGtub3cgdGhlIGRldmlj ZQogIElEIGFuZCB0aGUgbnVtYmVyIG9mIE1TSXMgdmVyeSBwcmVjaXNlbHkuCiAgSSBob3BlIHRo YXQgdGhpcyBhcHByb2FjaCBjYW4gZ28gYXdheSBvbmNlIHdlIGhhdmUgYSBwcm9wZXIgd2F5IG9m CiAgZGVhbGluZyB3aXRoIHRoYXQgKERUL0lPUlQgcGFyc2luZyBpbiBYZW4pLCBidXQgaXQgZGVm aW5pdGVseSBzaG91bGQKICBzdGF5IHJlc3RyaWN0ZWQgdG8gRG9tMC4KICBTbyBJIHJlbW92ZWQg dGhlIGNvZGUgd2hpY2ggY3JlYXRlZCBkZXZpY2UgbWFwcGluZyBvbiB0aGUgUENJIHBoeXNvcHMK ICBjYWxscywgaG93ZXZlciBoYXZlIHRoZSBwYXRjaCBzdGlsbCBhcm91bmQgaGVyZSBpbiBjYXNl IHdlIG5lZWQgaXQuCi0gVGhlIHRlYXJkb3duIHBhdGggbmVlZHMgc29tZSBtb3JlIGxvdmUuIEFG QUlDVCBEb20wIGRvZXMgbm90IHRha2UgcGFydAogIGluIHRoZSB1c3VhbCBkb21haW4gZGVzdHJv eSBwcm9jZWR1cmUsIHNvIHdlIGNhbid0IHJlYWxseSB0ZXN0IHRoaXMuCiAgRm9yIG5vdyBJIGtl cHQgb25lIGZ1bmN0aW9uIGluIHRvIHNob3cgd2hhdCBuZWVkcyB0byBiZSBkb25lLCBidXQgdGhp cwogIGlzIG5vdCBwbHVnZ2VkIGFueXdoZXJlLiBTbyB0byBhdm9pZCB1bnRlc3RlZCBhbmQgcG9z c2libHkgYnVnZ3kgY29kZQogIHRvIHNuZWFrIGluLCB3ZSBtaWdodCB0aGluayBhYm91dCByZW1v dmluZyBpdC4KLSBJIHRyaWVkIHRvIGV4dGVybWluYXRlIGFueSBzaWduZWQgaW50cyBhbmQgYWxz byBnZXQgcmlkIG9mIGFueSB1bmF0dGVuZGVkCiAgKGFzIGluIG5vdC1uYW1lZCkgY29uc3RhbnRz LCBidXQgSSBhbSBzdXJlIEkgbWlzc2VkIHNvbWUuIFNvIGxldCB5b3VyCiAgT0NEIGtpY2sgaW4g YW5kIGZpbmQgYWxsIG9mIHRoZW0hIEFsc28gSSBhbSBzdXJlIHRoZSBtYXNzaXZlIHJlYmFzaW5n CiAgYW5kIHBhdGNoIHNxdWFzaGluZyBjcmVhdGVkIHNvbWUgbmV3IGZ1bm55IGJ1Z3MgYW5kIGFy dGlmYWN0cy4KCkZvciBvdGhlciBjaGFuZ2VzLCBzZWUgdGhlIGNoYW5nZWxvZyBiZWxvdy4KLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIHNlcmllcyBhZGRzIHN1cHBvcnQg Zm9yIGVtdWxhdGlvbiBvZiBhbiBBUk0gR0lDdjMgSVRTIGludGVycnVwdApjb250cm9sbGVyLiBG b3IgaGFyZHdhcmUgd2hpY2ggcmVsaWVzIG9uIHRoZSBJVFMgdG8gcHJvdmlkZSBpbnRlcnJ1cHRz IGZvcgppdHMgcGVyaXBoZXJhbHMgdGhpcyBjb2RlIGlzIG5lZWRlZCB0byBnZXQgYSBtYWNoaW5l IGJvb3RlZCBpbnRvIERvbTAgYXQKYWxsLiBJVFMgZW11bGF0aW9uIGZvciBEb21VcyBpcyBvbmx5 IHJlYWxseSB1c2VmdWwgd2l0aCBQQ0kgcGFzc3Rocm91Z2gsCndoaWNoIGlzIG5vdCB5ZXQgYXZh aWxhYmxlIGZvciBBUk0uIEl0IGlzIGV4cGVjdGVkIHRoYXQgdGhpcyBmZWF0dXJlCndpbGwgYmUg Y28tZGV2ZWxvcGVkIHdpdGggdGhlIElUUyBEb21VIGNvZGUuIEhvd2V2ZXIgdGhpcyBjb2RlIGRy b3AgaGVyZQpjb25zaWRlcmVkIERvbVUgZW11bGF0aW9uIGFscmVhZHksIHRvIGtlZXAgbGF0ZXIg YXJjaGl0ZWN0dXJhbCBjaGFuZ2VzCnRvIGEgbWluaW11bS4KClNvbWUgZ2VuZXJpYyBkZXNpZ24g cHJpbmNpcGxlczoKCiogVGhlIGN1cnJlbnQgR0lDIGNvZGUgc3RhdGljYWxseSBhbGxvY2F0ZXMg c3RydWN0dXJlcyBmb3IgZWFjaCBzdXBwb3J0ZWQKSVJRIChib3RoIGZvciB0aGUgaG9zdCBhbmQg dGhlIGd1ZXN0KSwgd2hpY2ggZHVlIHRvIHRoZSBwb3RlbnRpYWxseQptaWxsaW9ucyBvZiBMUEkg aW50ZXJydXB0cyBpcyBub3QgZmVhc2libGUgdG8gY29weSBmb3IgdGhlIElUUy4KU28gd2UgcmVm cmFpbiBmcm9tIGludHJvZHVjaW5nIHRoZSBJVFMgYXMgYSBmaXJzdCBjbGFzcyBYZW4gaW50ZXJy dXB0CmNvbnRyb2xsZXIsIGFsc28gd2UgZG9uJ3QgaG9sZCBzdHJ1Y3QgaXJxX2Rlc2MncyBvciBz dHJ1Y3QgcGVuZGluZ19pcnEncwpmb3IgZWFjaCBwb3NzaWJsZSBMUEkuCkZvcnR1bmF0ZWx5IExQ SXMgYXJlIG9ubHkgaW50ZXJlc3RpbmcgdG8gZ3Vlc3RzLCBzbyB3ZSBnZXQgYXdheSB3aXRoCnN0 b3Jpbmcgb25seSB0aGUgdmlydHVhbCBJUlEgbnVtYmVyIGFuZCB0aGUgZ3Vlc3QgVkNQVSBmb3Ig ZWFjaCBhbGxvY2F0ZWQKaG9zdCBMUEksIHdoaWNoIGNhbiBiZSBzdGFzaGVkIGludG8gb25lIHVp bnQ2NF90LiBUaGlzIGRhdGEgaXMgc3RvcmVkIGluCmEgdHdvLWxldmVsIHRhYmxlLCB3aGljaCBp cyBib3RoIG1lbW9yeSBlZmZpY2llbnQgYW5kIHF1aWNrIHRvIGFjY2Vzcy4KV2UgaG9vayBpbnRv IHRoZSBleGlzdGluZyBJUlEgaGFuZGxpbmcgYW5kIFZHSUMgY29kZSB0byBhdm9pZCBhY2Nlc3Np bmcKdGhlIG5vcm1hbCBzdHJ1Y3R1cmVzLCBwcm92aWRpbmcgYWx0ZXJuYXRpdmUgbWV0aG9kcyBm b3IgZ2V0dGluZyB0aGUKbmVlZGVkIGluZm9ybWF0aW9uIChwcmlvcml0eSwgaXMgZW5hYmxlZD8p IGZvciBMUElzLgpGb3IgaW50ZXJydXB0cyB3aGljaCBhcmUgcXVldWVkIHRvIG9yIGFyZSBhY3R1 YWxseSBpbiBhIGd1ZXN0IHdlCmFsbG9jYXRlIHN0cnVjdCBwZW5kaW5nX2lycSdzIG9uIGRlbWFu ZC4gQXMgaXQgaXMgZXhwZWN0ZWQgdGhhdCBvbmx5IGEKdmVyeSBzbWFsbCBudW1iZXIgb2YgaW50 ZXJydXB0cyBpcyBldmVyIG9uIGEgVkNQVSBhdCB0aGUgc2FtZSB0aW1lLCB0aGlzCnNlZW1zIGxp a2UgdGhlIGJlc3QgYXBwcm9hY2guIEZvciBub3cgYWxsb2NhdGVkIHN0cnVjdHMgYXJlIHJlLXVz ZWQgYW5kCmhlbGQgaW4gYSBsaW5rZWQgbGlzdC4gU2hvdWxkIGl0IGVtZXJnZSB0aGF0IHRyYXZl cnNpbmcgYSBsaW5rZWQgbGlzdAppcyBhIHBlcmZvcm1hbmNlIGlzc3VlLCB0aGlzIGNhbiBiZSBj aGFuZ2VkIHRvIHVzZSBhIGhhc2ggdGFibGUuCgoqIE9uIHRoZSBndWVzdCBzaWRlIHdlIChsYXRl ciB3aWxsKSBoYXZlIHRvIGRlYWwgd2l0aCBtYWxpY2lvdXMgZ3Vlc3RzCnRyeWluZyB0byBob2cg WGVuIHdpdGggbWFwcGluZyByZXF1ZXN0cyBmb3IgYSBsb3Qgb2YgTFBJcywgZm9yIGluc3RhbmNl LgpBcyB0aGUgSVRTIGFjdHVhbGx5IHVzZXMgc3lzdGVtIG1lbW9yeSBmb3Igc3RvcmluZyBzdGF0 dXMgaW5mb3JtYXRpb24sCndlIHVzZSB0aGlzIG1lbW9yeSAod2hpY2ggdGhlIGd1ZXN0IGhhcyB0 byBwcm92aWRlKSB0byBuYXR1cmFsbHkgbGltaXQKYSBndWVzdC4gRm9yIHRob3NlIHRhYmxlcyB3 aGljaCBhcmUgcGFnZSBzaXplZCAoZGV2aWNlcywgY29sbGVjdGlvbnMgKENQVXMpLApMUEkgcHJv cGVydGllcykgd2UgbWFwIHRob3NlIHBhZ2VzIGludG8gWGVuLCBzbyB3ZSBjYW4gZWFzaWx5IGFj Y2Vzcwp0aGVtIGZyb20gdGhlIHZpcnR1YWwgR0lDIGNvZGUuClVuZm9ydHVuYXRlbHkgdGhlIGFj dHVhbCBpbnRlcnJ1cHQgbWFwcGluZyB0YWJsZXMgYXJlIG5vdCBuZWNlc3NhcmlseQpwYWdlIGFs aWduZWQsIGFsc28gY2FuIGJlIG11Y2ggc21hbGxlciB0aGFuIGEgcGFnZSwgc28gbWFwcGluZyBh bGwgb2YKdGhlbSBwZXJtYW5lbnRseSBpcyBmaWRkbHkuIEFzIElUUyBjb21tYW5kcyBpbiBuZWVk IHRvIGl0ZXJhdGUgdGhvc2UKdGFibGVzIGFyZSBwcmV0dHkgcmFyZSBhZnRlciBhbGwsIHdlIGZv ciBub3cgbWFwIHRoZW0gb24gZGVtYW5kIHVwb24KZW11bGF0aW5nIGEgdmlydHVhbCBJVFMgY29t bWFuZC4gVGhpcyBpcyBhY2NlcHRhYmxlIGJlY2F1c2UgIm1hcHBpbmciCnRoZW0gaXMgYWN0dWFs bHkgdmVyeSBjaGVhcCBvbiBhcm02NC4gQWxzbyBhcyB3ZSBjYW4ndCBwcm9wZXJseSBwcm90ZWN0 CnRob3NlIGFyZWFzIGR1ZSB0byB0aGVpciBzdWItcGFnZS1zaXplIHByb3BlcnR5LCB3ZSB2YWxp ZGF0ZSB0aGUgZGF0YQppbiB0aGVyZSBiZWZvcmUgYWN0dWFsbHkgdXNpbmcgaXQuIFRoZSB2SVRT IGNvZGUgYmFzaWNhbGx5IGp1c3Qgc3RvcmVzCnRoZSBkYXRhIGluIHRoZXJlIHdoaWNoIHRoZSBn dWVzdCBoYXMgYWN0dWFsbHkgdHJhbnNmZXJyZWQgdmlhIHRoZQp2aXJ0dWFsIElUUyBjb21tYW5k IHF1ZXVlIGJlZm9yZSwgc28gdGhlcmUgaXMgbm8gc2VjcmV0IHJldmVhbGVkIG5vcgpkb2VzIGl0 IGNyZWF0ZSBhbiBhdHRhY2sgdmVjdG9yIGZvciBhIG1hbGljaW91cyBndWVzdC4KCiogQW4gb2J2 aW91cyBhcHByb2FjaCB0byBoYW5kbGluZyBzb21lIGd1ZXN0IElUUyBjb21tYW5kcyB3b3VsZCBi ZSB0bwpwcm9wYWdhdGUgdGhlbSB0byB0aGUgaG9zdCwgZm9yIGluc3RhbmNlIHRvIG1hcCBkZXZp Y2VzIGFuZCBMUElzIGFuZAp0byBlbmFibGUgb3IgZGlzYWJsZSBMUElzLgpIb3dldmVyIHRoaXMg KGxhdGVyIHdpdGggRG9tVSBzdXBwb3J0KSB3aWxsIGNyZWF0ZSBhbiBhdHRhY2sgdmVjdG9yLCBh cwphIG1hbGljaW91cyBndWVzdCBjb3VsZCB0cnkgdG8gZmlsbCB0aGUgaG9zdCBjb21tYW5kIHF1 ZXVlIHdpdGgKcHJvcGFnYXRlZCBjb21tYW5kcy4KU28gd2UgdHJ5IHRvIGF2b2lkIHRoaXMgc2l0 dWF0aW9uOiBEb20wIHNlbmRpbmcgYSBkZXZpY2UgbWFwcGluZyAoTUFQRCkKY29tbWFuZCBpcyB0 aGUgb25seSB0aW1lIHdlIGFsbG93IHF1ZXVpbmcgY29tbWFuZHMgdG8gdGhlIGhvc3QgSVRTIGNv bW1hbmQKcXVldWUsIGFzIHRoaXMgc2VlbXMgdG8gYmUgdGhlIG9ubHkgcmVsaWFibGUgd2F5IG9m IGdldHRpbmcgdGhlCnJlcXVpcmVkIGluZm9ybWF0aW9uIGF0IHRoZSBtb21lbnQuIEhvd2V2ZXIg YXQgdGhlIHNhbWUgdGltZSB3ZSBtYXAgYWxsCmV2ZW50cyB0byBMUElzIGFscmVhZHksIGFsc28g ZW5hYmxlIHRoZW0uIFRoaXMgYXZvaWRzIHNlbmRpbmcgY29tbWFuZHMKbGF0ZXIgYXQgcnVudGlt ZSwgYXMgd2UgY2FuIGRlYWwgd2l0aCBtYXBwaW5ncyBhbmQgTFBJIGVuYWJsaW5nL2Rpc2FibGlu ZwppbnRlcm5hbGx5LgoKQXMgaXQgaXMgZXhwZWN0ZWQgdGhhdCB0aGUgSVRTIHN1cHBvcnQgd2ls bCBiZWNvbWUgYSB0ZWNoIHByZXZpZXcgaW4gdGhlCmZpcnN0IHJlbGVhc2UsIHRoZXJlIGlzIGEg S2NvbmZpZyBvcHRpb24gdG8gZW5hYmxlIGl0LiBBbHNvIGl0IGlzCnN1cHBvcnRlZCBvbiBhcm02 NCBvbmx5LCB3aGljaCB3aWxsIG1vc3QgbGlrZWx5IG5vdCBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4K VGhpcyBsZWFkcyB0byBzb21lIGhpZGVvdXMgY29uc3RydWN0cyBsaWtlIGFuICNpZmRlZidlZCBo ZWFkZXIgZmlsZSB3aXRoCmVtcHR5IGZ1bmN0aW9uIHN0dWJzLCBJIGhhdmUgc29tZSBob3BlIHdl IGNhbiBzdGlsbCBjbGVhbiB0aGlzIHVwLgpBbHNvIHNvbWUgcGFyYW1ldGVycyBhcmUgY29uZmln IG9wdGlvbnMgd2hpY2ggY2FuIGJlIG92ZXJyaWRkZW4gb24gdGhlClhlbiBjb21tYW5kbGluZS4g VGhpcyBpcyB0byBzdXBwb3J0IGV4cGVyaW1lbnRhdGlvbiBhbmQgYWRhcHRpb24gdG8KdmFyaW91 cyBwbGF0Zm9ybXMsIGlkZWFsbHkgd2UgZmluZCBlaXRoZXIgb25lLXNpemUtZml0cy1hbGwgdmFs dWVzIG9yCmZpbmQgYW5vdGhlciB3YXkgb2YgZ2V0dGluZyByaWQgb2YgdGhpcy4KClRoaXMgY29k ZSBib290cyBEb20wIG9uIGFuIEFSTSBGYXN0IE1vZGVsIHdpdGggSVRTIHN1cHBvcnQuIEkgdHJp ZWQgdG8KYWRkcmVzcyB0aGUgaXNzdWVzIHNlZW4gYnkgcGVvcGxlIHJ1bm5pbmcgdGhlIHByZXZp b3VzIHZlcnNpb24gb24gcmVhbApoYXJkd2FyZSwgdGhvdWdoIGNvdWxkbid0IHZlcmlmeSB0aGlz IGhlcmUgZm9yIG15c2VsZi4KU28gYW55IHRlc3RpbmcsIGJ1ZyByZXBvcnRzIChhbmQgcG9zc2li bHkgZXZlbiBmaXhlcykgYXJlIHZlcnkgd2VsY29tZS4KClRoZSBjb2RlIGNhbiBhbHNvIGJlIGZv dW5kIG9uIHRoZSBpdHMvdjIgYnJhbmNoIGhlcmU6CmdpdDovL2xpbnV4LWFybS5vcmcveGVuLWFw LmdpdApodHRwOi8vd3d3LmxpbnV4LWFybS5vcmcvZ2l0P3A9eGVuLWFwLmdpdDthPXNob3J0bG9n O2g9cmVmcy9oZWFkcy9pdHMvdjIKCkNoZWVycywKQW5kcmUKCkNoYW5nZWxvZyB2MSAuLiB2MjoK LSBjbGVhbiB1cCBoZWFkZXIgZmlsZSBpbmNsdXNpb24KLSByZXdvcmsgaG9zdCBJVFMgdGFibGUg YWxsb2NhdGlvbjogb2JzZXJ2ZSBhdHRyaWJ1dGVzLCBtYW55IGZpeGVzCi0gcmVtb3ZlIHBhdGNo IDEgdG8gZXhwb3J0IF9fZmx1c2hfZGNhY2hlX2FyZWEsIHVzZSBleGlzdGluZyBmdW5jdGlvbiBp bnN0ZWFkCi0gdXNlIG51bWJlciBvZiBMUElzIGludGVybmFsbHkgaW5zdGVhZCBvZiBudW1iZXIg b2YgYml0cwotIGtlZXAgaG9zdF9pdHNfbGlzdCBhcyBwcml2YXRlIGFzIHBvc3NpYmxlCi0ga2Vl cCBzdHJ1Y3QgaXRzX2RldmljZXMgcHJpdmF0ZQotIHJld29yayBnaWN2M19pdHNfbWFwX2d1ZXN0 X2RldmljZXMKLSBmaXggcmJ0cmVlIGlzc3VlcwotIG1vcmUgZXJyb3IgaGFuZGxpbmcgYW5kIHBy b3BhZ2F0aW9uCi0gY29wZSB3aXRoIEdJQ3Y0IGltcGxlbWVudGF0aW9ucyAoYnV0IG5vIHZpcnR1 YWwgTFBJIGZlYXR1cmVzISkKLSBhYnN0cmFjdCBob3N0IGFuZCBndWVzdCBJVFNlcyBieSB1c2lu ZyBkb29yYmVsbCBhZGRyZXNzZXMKLSBqb2luIHBlci1yZWRpc3RyaWJ1dG9yIHZhcmlhYmxlcyBp bnRvIG9uZSBwZXItQ1BVIHN0cnVjdHVyZQotIGZpeCBkYXRhIHR5cGVzICh1bnNpZ25lZCBpbnQp Ci0gbWFueSBtaW5vciBidWcgZml4ZXMKCihSb3VnaCkgY2hhbmdlbG9nIFJGQy12MiAuLiB2MToK LSBzcGxpdCBob3N0IElUUyBkcml2ZXIgaW50byBnaWMtdjMtbHBpLmMgYW5kIGdpYy12My1pdHMu YyBwYXJ0Ci0gcmVuYW1lIHZpcnR1YWwgSVRTIGRyaXZlciBmaWxlIHRvIHZnaWMtdjMtaXRzLmMK LSB1c2UgbWFjcm9zIGFuZCBuYW1lZCBjb25zdGFudHMgZm9yIGFsbCBtYWdpYyBudW1iZXJzCi0g dXNlIGF0b21pYyBhY2Nlc3NvcnMgZm9yIGFjY2Vzc2luZyB0aGUgaG9zdCBMUEkgZGF0YQotIHJl bW92ZSBsZWZ0b3ZlcnMgZnJvbSBjb25uZWN0aW5nIHZpcnR1YWwgYW5kIGhvc3QgSVRTZXMKLSBi YWlsIG91dCBpZiBob3N0IElUUyBpcyBkaXNhYmxlZCBpbiB0aGUgRFQKLSByZXdvcmsgbWFwL3Vu bWFwX2d1ZXN0X3BhZ2VzKCk6CiAgICAtIHNwbGl0IG9mZiBwMm0gcGFydCBhcyBnZXQvcHV0X2d1 ZXN0X3BhZ2VzICh0byBiZSBkb25lIG9uIGFsbG9jYXRpb24pCiAgICAtIGdldCByaWQgb2Ygdm1h cCwgdXNpbmcgbWFwX2RvbWFpbl9wYWdlKCkgaW5zdGVhZAotIGRlbGF5IGFsbG9jYXRpb24gb2Yg dmlydHVhbCB0YWJsZXMgdW50aWwgYWN0dWFsIExQSS9JVFMgZW5hYmxlbWVudAotIHByb3Blcmx5 IHNpemUgYm90aCB2aXJ0dWFsIGFuZCBwaHlzaWNhbCB0YWJsZXMgdXBvbiBhbGxvY2F0aW9uCi0g Zml4IHB1dF9kb21haW4oKSBsb2NraW5nIGlzc3VlcyBpbiBwaHlzZGV2X29wIGFuZCBMUEkgaGFu ZGxpbmcgY29kZQotIGFkZCBhbmQgZXh0ZW5kIGNvbW1lbnRzIGluIHZhcmlvdXMgYXJlYXMKLSBm aXggbG90c2EgY29kaW5nIHN0eWxlIGFuZCB3aGl0ZSBzcGFjZSBpc3N1ZXMsIGluY2x1ZGluZyBj b21tZW50IHN0eWxlCi0gYWRkIGxvY2tpbmcgdG8gZGF0YSBzdHJ1Y3R1cmVzIG5vdCB5ZXQgY292 ZXJlZAotIGZpeCB2YXJpb3VzIGxvY2tpbmcgaXNzdWVzCi0gdXNlIGFuIHJidHJlZSB0byBkZWFs IHdpdGggSVRTIGRldmljZXMgKGluc3RlYWQgb2YgYSBsaXN0KQotIHByb3Blcmx5IGhhbmRsZSBt ZW1vcnkgYXR0cmlidXRlcyBmb3IgSVRTIHRhYmxlcwotIGhhbmRsZSBjYWNoZWFibGUvbm9uLWNh Y2hlYWJsZSBJVFMgdGFibGUgbWFwcGluZ3MKLSBzYW5pdGl6ZSBndWVzdCBwcm92aWRlZCBJVFMv TFBJIHRhYmxlIGF0dHJpYnV0ZXMKLSBmaXggYnJlYWthZ2Ugb24gbm9uLUdJQ3YyIGNvbXBhdGli bGUgaG9zdCBHSUN2MyBjb250cm9sbGVycwotIGFkZCBjb21tYW5kIGxpbmUgcGFyYW1ldGVycyBv biB0b3Agb2YgS2NvbmZpZyBvcHRpb25zCi0gcHJvcGVybHkgd2FpdCBmb3IgYW4gSVRTIHRvIGJl Y29tZSBxdWllc2NpZW50IGJlZm9yZSBlbmFibGluZyBpdAotIGhhbmRsZSBob3N0IElUUyBjb21t YW5kIHF1ZXVlIGVycm9ycwotIGFjdHVhbGx5IHdhaXQgZm9yIGhvc3QgSVRTIGNvbW1hbmQgY29t cGxldGlvbiAoUkVBRFI9PVdSSVRFUikKLSBmaXggQVJNMzIgY29tcGlsYXRpb24KLSB2YXJpb3Vz IHBhdGNoIHNwbGl0cyBhbmQgcmVvcmRlcmluZ3MKCioqKiBCTFVSQiBIRVJFICoqKgoKQW5kcmUg UHJ6eXdhcmEgKDI3KToKICBBUk06IEdJQ3YzIElUUzogcGFyc2UgYW5kIHN0b3JlIElUUyBzdWJu b2RlcyBmcm9tIGhhcmR3YXJlIERUCiAgQVJNOiBHSUN2MzogYWxsb2NhdGUgTFBJIHBlbmRpbmcg YW5kIHByb3BlcnR5IHRhYmxlCiAgQVJNOiBHSUN2MyBJVFM6IGFsbG9jYXRlIGRldmljZSBhbmQg Y29sbGVjdGlvbiB0YWJsZQogIEFSTTogR0lDdjMgSVRTOiBtYXAgSVRTIGNvbW1hbmQgYnVmZmVy CiAgQVJNOiBHSUN2MyBJVFM6IGludHJvZHVjZSBJVFMgY29tbWFuZCBoYW5kbGluZwogIEFSTTog R0lDdjMgSVRTOiBpbnRyb2R1Y2UgZGV2aWNlIG1hcHBpbmcKICBBUk06IGFybTY0OiBhY3RpdmF0 ZSBhdG9taWMgNjQtYml0IGFjY2Vzc29ycwogIEFSTTogR0lDdjMgSVRTOiBpbnRyb2R1Y2UgaG9z dCBMUEkgYXJyYXkKICBBUk06IEdJQ3YzOiBpbnRyb2R1Y2Ugc2VwYXJhdGUgcGVuZGluZ19pcnEg c3RydWN0cyBmb3IgTFBJcwogIEFSTTogR0lDdjM6IGZvcndhcmQgcGVuZGluZyBMUElzIHRvIGd1 ZXN0cwogIEFSTTogR0lDdjM6IGVuYWJsZSBJVFMgYW5kIExQSXMgb24gdGhlIGhvc3QKICBBUk06 IHZHSUN2MzogaGFuZGxlIHZpcnR1YWwgTFBJIHBlbmRpbmcgYW5kIHByb3BlcnR5IHRhYmxlcwog IEFSTTogdkdJQ3YzOiBIYW5kbGUgZGlzYWJsZWQgTFBJcwogIEFSTTogdkdJQ3YzOiBpbnRyb2R1 Y2UgYmFzaWMgSVRTIGVtdWxhdGlvbiBiaXRzCiAgQVJNOiB2SVRTOiBpbnRyb2R1Y2UgdHJhbnNs YXRpb24gdGFibGUgd2Fsa3MKICBBUk06IHZJVFM6IGhhbmRsZSBDTEVBUiBjb21tYW5kCiAgQVJN OiB2SVRTOiBoYW5kbGUgSU5UIGNvbW1hbmQKICBBUk06IHZJVFM6IGhhbmRsZSBNQVBDIGNvbW1h bmQKICBBUk06IHZJVFM6IGhhbmRsZSBNQVBEIGNvbW1hbmQKICBBUk06IHZJVFM6IGhhbmRsZSBN QVBUSSBjb21tYW5kCiAgQVJNOiB2SVRTOiBoYW5kbGUgTU9WSSBjb21tYW5kCiAgQVJNOiB2SVRT OiBoYW5kbGUgRElTQ0FSRCBjb21tYW5kCiAgQVJNOiB2SVRTOiBoYW5kbGUgSU5WIGNvbW1hbmQK ICBBUk06IHZJVFM6IGhhbmRsZSBJTlZBTEwgY29tbWFuZAogIEFSTTogdklUUzogY3JlYXRlIGFu ZCBpbml0aWFsaXplIHZpcnR1YWwgSVRTZXMgZm9yIERvbTAKICBBUk06IHZJVFM6IGNyZWF0ZSBJ VFMgc3Vibm9kZXMgZm9yIERvbTAgRFQKICBBUk06IHZHSUM6IGFkdmVydGlzZSBMUEkgc3VwcG9y dAoKIGRvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duIHwgIDE3ICsKIHhlbi9hcmNo L2FybS9LY29uZmlnICAgICAgICAgICAgICAgIHwgIDMzICsrCiB4ZW4vYXJjaC9hcm0vTWFrZWZp bGUgICAgICAgICAgICAgICB8ICAgMyArCiB4ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jICAgICAg ICAgICB8IDkyNSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vYXJjaC9h cm0vZ2ljLXYzLWxwaS5jICAgICAgICAgICB8IDQ5MSArKysrKysrKysrKysrKysrKysrCiB4ZW4v YXJjaC9hcm0vZ2ljLXYzLmMgICAgICAgICAgICAgICB8ICA3MCArKy0KIHhlbi9hcmNoL2FybS9n aWMuYyAgICAgICAgICAgICAgICAgIHwgICA5ICstCiB4ZW4vYXJjaC9hcm0vdmdpYy12My1pdHMu YyAgICAgICAgICB8IDk1MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhl bi9hcmNoL2FybS92Z2ljLXYzLmMgICAgICAgICAgICAgIHwgMzQ3ICsrKysrKysrKysrLS0KIHhl bi9hcmNoL2FybS92Z2ljLmMgICAgICAgICAgICAgICAgIHwgIDY4ICsrLQogeGVuL2luY2x1ZGUv YXNtLWFybS9hdG9taWMuaCAgICAgICAgfCAgIDYgKy0KIHhlbi9pbmNsdWRlL2FzbS1hcm0vYml0 b3BzLmggICAgICAgIHwgICAxICsKIHhlbi9pbmNsdWRlL2FzbS1hcm0vZG9tYWluLmggICAgICAg IHwgIDE0ICstCiB4ZW4vaW5jbHVkZS9hc20tYXJtL2dpYy5oICAgICAgICAgICB8ICAgNyArCiB4 ZW4vaW5jbHVkZS9hc20tYXJtL2dpY192M19kZWZzLmggICB8ICA3MyArKy0KIHhlbi9pbmNsdWRl L2FzbS1hcm0vZ2ljX3YzX2l0cy5oICAgIHwgMjUwICsrKysrKysrKysKIHhlbi9pbmNsdWRlL2Fz bS1hcm0vaXJxLmggICAgICAgICAgIHwgICA4ICsKIHhlbi9pbmNsdWRlL2FzbS1hcm0vdmdpYy5o ICAgICAgICAgIHwgIDM0ICsrCiAxOCBmaWxlcyBjaGFuZ2VkLCAzMjYzIGluc2VydGlvbnMoKyks IDQ2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9hcmNoL2FybS9naWMtdjMt aXRzLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vZ2ljLXYzLWxwaS5jCiBjcmVh dGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRzLmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCB4ZW4vaW5jbHVkZS9hc20tYXJtL2dpY192M19pdHMuaAoKLS0gCjIuOS4wCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==