From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: [PATCHv3 RFC] virtio-spec: flexible configuration layout Date: Thu, 10 Nov 2011 14:24:37 +0200 Message-ID: <20111110122436.GA13144@redhat.com> References: <87wrbkvh3v.fsf@rustcorp.com.au> <20111101114542.GA13434@redhat.com> <1320150813.3847.24.camel@lappy> <20111101124223.GA14060@redhat.com> <8739e7uy87.fsf@rustcorp.com.au> <20111102233110.GA20289@redhat.com> <20111108214021.GA4538@redhat.com> <20111109195901.GA28155@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: <20111109195901.GA28155@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: Rusty Russell Cc: Krishna Kumar , kvm@vger.kernel.org, Pawel Moll , Wang Sheng-Hui , Alexey Kardashevskiy , lkml - Kernel Mailing List , virtualization@lists.linux-foundation.org, penberg@kernel.org, Christian Borntraeger , Sasha Levin , Amit Shah , avi@redhat.com List-Id: virtualization@lists.linuxfoundation.org QW5vdGhlciB1cGRhdGUuIEknbGwgZ2V0IHRvIHRlc3RpbmcgdGhlIGxpbnV4IGd1ZXN0IHBhdGNo IG5vdywKbmV4dCB2ZXJzaW9uIHNob3VsZCBob3BlZnVsbHkgYmUgYSBub24tUkZDIG9uZSwgYW5k IGJlIGFjY29tcGFuaWVkIGJ5Cmd1ZXN0IGRyaXZlciwgYXNzdW1pbmcgZHJpdmVyIHdvcmtzIGZp bmUuCgpBbGlnbm1lbnQgbmVnb3RpYXRpb24gaXMgc3RpbGwgVEJELCBpdCdzIGVhc3kgdG8gYWRk IGJ1dCBJJ2QgbGlrZQp0byBnZXQgYWdyZWVtZW50IG9uIHRoZSBnZW5lcmFsIGFwcHJvYWNoIGZp cnN0LgpPbmUgZHJhd2JhY2sgaXMgdGhhdCBmb3IgZGV2aWNlIGNvbmZpZyBoZWFkZXIsCndlIGNh bid0IHJldXNlIHNhbWUgbWVtb3J5IGZvciBib3RoIGxlZ2FjeSBhbmQgbmV3IC0KdGhpcyBpcyBi ZWNhdXNlIHRoZSBsZWdhY3kgb2Zmc2V0IGNoYW5nZXMgZHluYW1pY2FsbHksCmFuZCBJJ2QgbGlr ZSB0byBhdm9pZCBkb2luZyB0aGF0IHdpdGggdGhlIG5ldyBvbmUuClRoaXMgc2hvdWxkIG5vdCBi ZSBhIHByb2JsZW0gYXMgZGV2aWNlIGhlYWRlciBjYW4KZ28gaW50byBNTUlPIHdoaWNoIGlzIG5v dCBhcyBzcGFjZSBjb25zdHJhaW5lZCBhcyBQSU8uCgpDaGFuZ2VzIGZyb20gdjI6Ci0gQ2xhcmlm eSB0aGF0ICdmaXJzdCByZWdpb24nIGlzIEJBUjAuCi0gQ2xhcmlmeSB0aGF0IGRldmljZXMgc2hv dWxkIHByb3ZpZGUgYWxsIGNhcGFiaWxpdGllcwogIChmYWxsYmFjayBpcyBmb3IgY29tcGF0aWJp bGl0eSkuCi0gUmVtb3ZlIGEgbGVmdC1vdmVyIG1lbnRpb24gb2YgYml0IDMxIHVzZS4KLSBDb3Jy ZWN0IHZpcnRpbyBoZWFkZXIgc2l6ZS4KCkNoYW5nZXMgZnJvbSB2MToKLSBhZGQgYW4gZXhhbXBs ZSBjb25maWd1cmF0aW9uCi0gc2NhbGUgdGFibGVzIHNvIHRoZXkgZml0IHdpdGhpbiBwYWdlCi0g Y2xlYW4gdXAgc29tZSByZW1haW5pbmcgaXRlbXMgbWVudGlvbmluZyBmZWF0dXJlIGJpdCAzMQoK RGVzY3JpcHRpb24gZnJvbSB2MToKSGVyZSdzIGEgc3BlYyBjaGFuZ2UgZG9jdW1lbnRpbmcgd2hh dCBteSBDIHBhdGNoIGRvZXMKKGFsbW9zdCAtIEkgdHdlYWtlZCB0aGUgbGF5b3V0IGEgYml0LCBi dXQgdGhlIGlkZWEgaXMgdGhlIHNhbWUpLgpTb21lIG1vcmUgY2xlYW51cHMgYXJlIG5lZWRlZCBi dXQgSSB0aG91Z2h0IEknZCBzZW5kIGl0CmZvciBlYXJseSBmbGFtZXMvY29tbWVudHMuCgpUaGUg aWRlYSBpcyBzaW1wbGU6IHdlIHNwbGl0IGZ1bmN0aW9uYWxseSB1bnJlbGF0ZWQKcmVnaXN0ZXIg Z3JvdXBzIHRvIGluZGVwZW5kZW50IHN0cnVjdHVyZXMsIGFuZCBsZXQKdGhlIGRldmljZSBwbGFj ZSBpcyBhbnl3aGVyZSB1c2luZyBhIGNhcGFiaWxpdHkKaW4gUENJIGNvbmZpZ3VyYXRpb24gc3Bh Y2UuCgpJdCBjYW4gdGhlbiBnbyBpbnRvIE1NSU8gc3BhY2Ugd2hpY2ggaXMgY2hlYXBlciB0aGFu IFBJTy4KCkEgbGVnYWN5IHBvcnRpb24gb2YgdGhlIGNvbmZpZ3VyYXRpb24gaXMgbWlycm9yZWQK aW4gdGhlIGZpcnN0IEJBUiwgdG8ga2VlcCBsZWdhY3kgZHJpdmVycyB3b3JraW5nLgpBbnkgbmV3 IGZpZWxkcyBjYW4gYmUgYWRkZWQgaW4gZXhpc3Rpbmcgc3RydWN0dXJlcwphdCB0aGUgZW5kLCBz byB0aGV5IHdvbid0IGFmZmVjdCBsZWdhY3kuCkFsdGVybmF0aXZlbHkgd2UgY2FuIGFkZCBuZXcg c3RydWN0dXJlcyB3aXRoIG5ldwpzdHJ1Y3R1cmUgSURzLCBwb2ludGVkIHRvIGZyb20gUENJIGNv bmZpZ3VyYXRpb24gc3BhY2UuCgpBcyB3ZSBkb24ndCB5ZXQgaGF2ZSBkZXZpY2VzIG9yIGRyaXZl cnMgd2l0aCA2NCBiaXQgZmVhdHVyZXMsCkkgZGVjaWRlZCB3ZSBkb24ndCBuZWVkIGhpZ2ggZmVh dHVyZSBiaXRzIGluIGxlZ2FjeSBzcGFjZS4KVGhpcyBhbHNvIGZyZWVzIHVwIGZlYXR1cmUgYml0 IDMxIGFzIHdlIGRvbid0IG5lZWQgaXQKdG8gZW5hYmxlIGhpZ2ggZmVhdHVyZSBiaXRzIGFueW1v cmUuCkkgZG9uJ3QgdGhpbmsgYW55IHJlbGVhc2VkIHNvZnR3YXJlIGFjdHVhbGx5IHVzZXMgaXQK KHRoZSBrdm0gdG9vbCBIRUFEIGFwcGFyZW50bHkgZG9lcywKIGJ1dCBJIHRoaW5rIGl0J3Mgbm90 IHRvbyBsYXRlIHRvIGZpeCBpdCkuCgpBcyB0aGlzIHNvbHZlcyB0aGUgZHluYW1pYyBwbGFjZW1l bnQgb2YgTVNJWCB2ZWN0b3JzCmFuZCBoaWdoIGZlYXR1cmUgYml0cywKSSB0aG91Z2h0IGl0J3Mg ZWFzaWVyIHRvIGp1c3QgcmVzZXJ2ZSBzcGFjZSBmb3IgdGhhdApwcm9ncmFtbWluZyB0aGFuIGdp dmUgaXQgYSBzZXBhcmF0ZSBzdHJ1Y3R1cmUuIFRoaXMKY2FuIGJlIGNoYW5nZWQgYnkgYSBwYXRj aCBvbiB0b3AuCgpOb3RlIHRoYXQgZGF0YSBwYXRoIGlzIHNwbGl0IGZyb20gY29uZmlndXJhdGlv bi4KClBERiB3aWxsIGZvbGxvdy4KClBsZWFzZSBjb21tZW50LgoKU2lnbmVkLW9mZi1ieTogTWlj aGFlbCBTLiBUc2lya2luIDxtc3RAcmVkaGF0LmNvbT4KCi0tLQoKZGlmZiAtLWdpdCBhL3ZpcnRp by1zcGVjLmx5eCBiL3ZpcnRpby1zcGVjLmx5eAppbmRleCA2NDI2ZjhmLi4zNmFjNjFmIDEwMDY0 NAotLS0gYS92aXJ0aW8tc3BlYy5seXgKKysrIGIvdmlydGlvLXNwZWMubHl4CkBAIC0zLDYgKzMs OSBAQAogXGJlZ2luX2RvY3VtZW50CiBcYmVnaW5faGVhZGVyCiBcdGV4dGNsYXNzIHJlcG9ydAor XGJlZ2luX3ByZWFtYmxlCitcdXNlcGFja2FnZXtncmFwaGljeH0KK1xlbmRfcHJlYW1ibGUKIFx1 c2VfZGVmYXVsdF9vcHRpb25zIGZhbHNlCiBcbWFpbnRhaW5fdW5pbmNsdWRlZF9jaGlsZHJlbiBm YWxzZQogXGxhbmd1YWdlIGVuZ2xpc2gKQEAgLTU2LDYgKzU5LDcgQEAKIFxodG1sX21hdGhfb3V0 cHV0IDAKIFxodG1sX2Nzc19hc19maWxlIDAKIFxodG1sX2JlX3N0cmljdCBmYWxzZQorXGF1dGhv ciAxOTg2MjQ2MzY1ICJNaWNoYWVsIFMuIFRzaXJraW4iIAogXGVuZF9oZWFkZXIKIAogXGJlZ2lu X2JvZHkKQEAgLTU3MCw3ICs1NzQsMzQgQEAgRGV2aWNlIENvbmZpZ3VyYXRpb24KIFxlbmRfbGF5 b3V0CiAKIFxiZWdpbl9sYXlvdXQgU3RhbmRhcmQKLVRvIGNvbmZpZ3VyZSB0aGUgZGV2aWNlLCB3 ZSB1c2UgdGhlIGZpcnN0IEkvTyByZWdpb24gb2YgdGhlIFBDSSBkZXZpY2UuCitUbyBjb25maWd1 cmUgdGhlIGRldmljZSwgd2UgCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc4MzM1 NAordXNlIEkvTyBhbmQvb3IgbWVtb3J5IHJlZ2lvbnMgb2YgdGhlIFBDSSBkZXZpY2UuCisgVGhl c2UgY29udGFpbiB0aGUgdmlydGlvIGhlYWRlciByZWdpc3RlcnMsIHRoZSBub3RpZmljYXRpb24g cmVnaXN0ZXIsIHRoZQorIElTUiBzdGF0dXMgcmVnaXN0ZXIgYW5kIGRldmljZSBzcGVjaWZpYyBy ZWdpc3RlcnMsIGFzIHNwZWNpZmllZCBieSBWaXJ0aW8KKyBTdHJ1Y3R1cmUgUENJIENhcGFiaWxp dGllcworXGJlZ2luX2luc2V0IEZvb3QKK3N0YXR1cyBvcGVuCisKK1xiZWdpbl9sYXlvdXQgUGxh aW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwOTIwMjMzCitGb3Ig YmFja3dhcmRzIGNvbXBhdGliaWxpdHksIGRldmljZXMgc2hvdWxkIHByZXNlbnQgcGFydCBvZiB0 aGVzZSBjb25maWd1cmF0aW9uCisgcmVnaXN0ZXJzIGluIGEgbGVnYWN5IGNvbmZpZ3VyYXRpb24g c3RydWN0dXJlIGluIEJBUjAgaW4gdGhlIGZpcnN0IEkvTworIHJlZ2lvbiBvZiB0aGUgUENJIGRl dmljZQorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorCisu CitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisKK1xjaGFuZ2VfZGVsZXRl ZCAxOTg2MjQ2MzY1IDEzMjA3NjY1MTIKK3VzZSB0aGUgZmlyc3QgSS9PIHJlZ2lvbiBvZiB0aGUg UENJIGRldmljZS4KICBUaGlzIGNvbnRhaW5zIGEgCiBcZW1waCBvbgogdmlydGlvIGhlYWRlcgpA QCAtNTc4LDEwNSArNjA5LDMxMjAgQEAgdmlydGlvIGhlYWRlcgogIGZvbGxvd2VkIGJ5IGEgCiBc ZW1waCBvbgogZGV2aWNlLXNwZWNpZmljIHJlZ2lvbi4KK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xl bmRfbGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgU3RhbmRhcmQKK1RoZXJlIG1heSBiZSBkaWZmZXJl bnQgd2lkdGhzIG9mIGFjY2Vzc2VzIHRvIHRoZSBJL08gcmVnaW9uOyB0aGUgCitcYmVnaW5faW5z ZXQgUXVvdGVzIGVsZAorXGVuZF9pbnNldAorCituYXR1cmFsCitcYmVnaW5faW5zZXQgUXVvdGVz IGVyZAorXGVuZF9pbnNldAorCisgYWNjZXNzIG1ldGhvZCBmb3IgZWFjaCBmaWVsZCBpbiB0aGUg dmlydGlvIGhlYWRlciBtdXN0IGJlIHVzZWQgKGkuZS4KKyAzMi1iaXQgYWNjZXNzZXMgZm9yIDMy LWJpdCBmaWVsZHMsIGV0YyksIGJ1dCB0aGUgZGV2aWNlLXNwZWNpZmljIHJlZ2lvbgorIGNhbiBi ZSBhY2Nlc3NlZCB1c2luZyBhbnkgd2lkdGggYWNjZXNzZXMsIGFuZCBzaG91bGQgb2J0YWluIHRo ZSBzYW1lIHJlc3VsdHMuCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCitO b3RlIHRoYXQgdGhpcyBpcyBwb3NzaWJsZSBiZWNhdXNlIHdoaWxlIHRoZSB2aXJ0aW8gaGVhZGVy CitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc2NzI0OQorLCBub3RpZmljYXRpb24g YW5kIElTUiBzdGF0dXMgYXJlCitcY2hhbmdlX2RlbGV0ZWQgMTk4NjI0NjM2NSAxMzIwNzY3MjUx CisgaXMKK1xjaGFuZ2VfdW5jaGFuZ2VkCisgUENJIChpLmUuCisgbGl0dGxlKSBlbmRpYW4sIHRo ZSBkZXZpY2Utc3BlY2lmaWMKK1xjaGFuZ2VfZGVsZXRlZCAxOTg2MjQ2MzY1IDEzMjA3NjczMzUK KyByZWdpb24gaXMKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzY3MzM3CityZWdp c3RlcnMgYXJlCitcY2hhbmdlX3VuY2hhbmdlZAorIGVuY29kZWQgaW4gdGhlIG5hdGl2ZSBlbmRp YW4gb2YgdGhlIGd1ZXN0ICh3aGVyZSBzdWNoIGRpc3RpbmN0aW9uIGlzIGFwcGxpY2FibGUKKyku CitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc2NzY2MAorCitcZW5kX2xheW91dAor CitcYmVnaW5fbGF5b3V0IFN1YnNlY3Rpb24KK0RldmljZSBJbml0aWFsaXphdGlvbiBTZXF1ZW5j ZQorXGJlZ2luX2luc2V0IENvbW1hbmRJbnNldCBsYWJlbAorTGF0ZXhDb21tYW5kIGxhYmVsCitu YW1lICJzdWI6RGV2aWNlLUluaXRpYWxpemF0aW9uLVNlcXVlbmNlIgorCitcZW5kX2luc2V0CisK KworXGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBTdGFuZGFyZAorV2Ugc3RhcnQgd2l0aCBh biBvdmVydmlldyBvZiBkZXZpY2UgaW5pdGlhbGl6YXRpb24sIHRoZW4gZXhwYW5kIG9uIHRoZSBk ZXRhaWxzCisgb2YgdGhlIGRldmljZSBhbmQgaG93IGVhY2ggc3RlcCBpcyBwcmVmb3JtZWQuCitc ZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IEVudW1lcmF0ZQorUmVzZXQgdGhlIGRldmljZS4K KyBUaGlzIGlzIG5vdCByZXF1aXJlZCBvbiBpbml0aWFsIHN0YXJ0IHVwLgorXGNoYW5nZV9pbnNl cnRlZCAxOTg2MjQ2MzY1IDEzMjA5MTgwNTYKKworXGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91 dCBFbnVtZXJhdGUKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA5MTgwNTcKK1BD SSBjYXBhYmlsaXR5IGxpc3Qgc2NhbiwgZGV0ZWN0aW5nIHZpcnRpbyBjb25maWd1cmF0aW9uIGxh eW91dCB1c2luZyBWaXJ0aW8KKyBTdHJ1Y3R1cmUgUENJIGNhcGFiaWxpdGllcy4KKyAKK1xiZWdp bl9pbnNldCBGb290CitzdGF0dXMgb3BlbgorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAor CitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDkxODA1NworSGlzdG9yaWNhbGx5IGRy aXZlcnMgc2tpcHBlZCB0aGlzIHN0ZXAsIHVzaW5nIGxlZ2FjeSBjb25maWd1cmF0aW9uIHNwYWNl CisgdW5jb25kaXRpb25hbGx5LgorXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorCisKK1xjaGFu Z2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgRW51bWVyYXRlCitU aGUgQUNLTk9XTEVER0Ugc3RhdHVzIGJpdCBpcyBzZXQ6IHdlIGhhdmUgbm90aWNlZCB0aGUgZGV2 aWNlLgorXGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBFbnVtZXJhdGUKK1RoZSBEUklWRVIg c3RhdHVzIGJpdCBpcyBzZXQ6IHdlIGtub3cgaG93IHRvIGRyaXZlIHRoZSBkZXZpY2UuCitcZW5k X2xheW91dAorCitcYmVnaW5fbGF5b3V0IEVudW1lcmF0ZQorRGV2aWNlLXNwZWNpZmljIHNldHVw LCBpbmNsdWRpbmcgcmVhZGluZyB0aGUgRGV2aWNlIEZlYXR1cmUgQml0cywgZGlzY292ZXJ5Cisg b2YgdmlydHF1ZXVlcyBmb3IgdGhlIGRldmljZSwgb3B0aW9uYWwgTVNJLVggc2V0dXAsIGFuZCBy ZWFkaW5nIGFuZCBwb3NzaWJseQorIHdyaXRpbmcgdGhlIHZpcnRpbyBjb25maWd1cmF0aW9uIHNw YWNlLgorXGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBFbnVtZXJhdGUKK1RoZSBzdWJzZXQg b2YgRGV2aWNlIEZlYXR1cmUgQml0cyB1bmRlcnN0b29kIGJ5IHRoZSBkcml2ZXIgaXMgd3JpdHRl biB0bworIHRoZSBkZXZpY2UuCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IEVudW1lcmF0 ZQorVGhlIERSSVZFUl9PSyBzdGF0dXMgYml0IGlzIHNldC4KK1xlbmRfbGF5b3V0CisKK1xiZWdp bl9sYXlvdXQgRW51bWVyYXRlCitUaGUgZGV2aWNlIGNhbiBub3cgYmUgdXNlZCAoaWUuCisgYnVm ZmVycyBhZGRlZCB0byB0aGUgdmlydHF1ZXVlcykKK1xiZWdpbl9pbnNldCBGb290CitzdGF0dXMg b3BlbgorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorSGlzdG9yaWNhbGx5LCBkcml2ZXJz IGhhdmUgdXNlZCB0aGUgZGV2aWNlIGJlZm9yZSBzdGVwcyA1IGFuZCA2LgorIFRoaXMgaXMgb25s eSBhbGxvd2VkIGlmIHRoZSBkcml2ZXIgZG9lcyBub3QgdXNlIGFueSBmZWF0dXJlcyB3aGljaCB3 b3VsZAorIGFsdGVyIHRoaXMgZWFybHkgdXNlIG9mIHRoZSBkZXZpY2UuCitcZW5kX2xheW91dAor CitcZW5kX2luc2V0CisKKworXGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBTdGFuZGFyZAor SWYgYW55IG9mIHRoZXNlIHN0ZXBzIGdvIGlycmVjb3ZlcmFibHkgd3JvbmcsIHRoZSBndWVzdCBz aG91bGQgc2V0IHRoZSBGQUlMRUQKKyBzdGF0dXMgYml0IHRvIGluZGljYXRlIHRoYXQgaXQgaGFz IGdpdmVuIHVwIG9uIHRoZSBkZXZpY2UgKGl0IGNhbiByZXNldAorIHRoZSBkZXZpY2UgbGF0ZXIg dG8gcmVzdGFydCBpZiBkZXNpcmVkKS4KK1xlbmRfbGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgU3Rh bmRhcmQKK1dlIG5vdyBjb3ZlciB0aGUgZmllbGRzIHJlcXVpcmVkIGZvciBnZW5lcmFsIHNldHVw IGluIGRldGFpbC4KK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzY2NjYzCisKK1xl bmRfbGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgU3Vic2VjdGlvbgorCitcY2hhbmdlX2luc2VydGVk IDE5ODYyNDYzNjUgMTMyMDc4MTU4NAorVmlydGlvIFN0cnVjdHVyZSBQQ0kgQ2FwYWJpbGl0eQor XGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBTdGFuZGFyZAorCitcY2hhbmdlX2luc2VydGVk IDE5ODYyNDYzNjUgMTMyMDc4MTA2MQorVmlydGlvIGNvbmZpZ3VyYXRpb24gbGF5b3V0IGluY2x1 ZGVzIHZpcnRpbyBjb25maWd1cmF0aW9uIGhlYWRlciwgbm90aWZpY2F0aW9uCisgYW5kIElTUiBz dGF0dXMgYW5kIGRldmljZSBjb25maWd1cmF0aW9uIHN0cnVjdHVyZXMuCisgRWFjaCBzdHJ1Y3R1 cmUgaXMgbWFwcGVkIGJ5IGEgQmFzZSBBZGRyZXNzIHJlZ2lzdGVyIChCQVIpIGJlbG9uZ2luZyB0 bworIHRoZSBmdW5jdGlvbiwgbG9jYXRlZCBiZWdpbm5pbmcgYXQgMTBoIGluIENvbmZpZ3VyYXRp b24gU3BhY2UuCisgCitcZW1waCBvbgorU3RydWN0dXJlIElEIAorXGVtcGggZGVmYXVsdAoraW5k ZW50aWZpZXMgdGhlIHN0cnVjdHVyZQorXGVtcGggb24KKywgU2l6ZQorXGVtcGggZGVmYXVsdAor IGluZGljYXRlcyB0aGUgc3RydWN0dXJlIHNpemUsIGluIGJ5dGVzLCBhIAorXGVtcGggb24KK0JB UiBJbmRpY2F0b3IgcmVnaXN0ZXIgKEJJUikKK1xlbXBoIGRlZmF1bHQKKyBpbmRpY2F0ZXMgd2hp Y2ggQkFSLCBhbmQgCitcZW1waCBvbgorT2Zmc2V0CitcZW1waCBkZWZhdWx0CisgaW5kaWNhdGVz IHdoZXJlIHRoZSBzdHJ1Y3R1cmUgYmVnaW5zIHJlbGF0aXZlIHRvIHRoZSBiYXNlIGFkZHJlc3Mg YXNzb2NpYXRlZAorIHdpdGggdGhlIEJBUi4KKyBUaGUgQkFSIGlzIHBlcm1pdHRlZCB0byBiZSBl aXRoZXIgMzItYml0IG9yIDY0LWJpdCwgaXQgY2FuIG1hcCBNZW1vcnkgU3BhY2UKKyBvciBJL08g U3BhY2UuCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisKK1xjaGFuZ2Vf aW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODM4NTIyCitUaGVzZSByZWdpc3RlcnMgYXJlIHNwZWNp ZmllZCB1c2luZyB2ZW5kb3Itc3BlY2lmaWMgUENJIGNhcGFiaWxpdHkgbG9jYXRlZAorIG9uIGNh cGFiaWxpdHkgbGlzdCBpbiBQQ0kgY29uZmlndXJhdGlvbiBzcGFjZSBvZiB0aGUgZGV2aWNlLgor IFRoaXMgdmlydGlvIHN0cnVjdHVyZSBjYXBhYmlsaXR5IHVzZXMgbGl0dGxlLWVuZGlhbiBmb3Jt YXQ7IGFsbCBiaXRzIGFyZQorIHJlYWQtb25seToKK1xlbmRfbGF5b3V0CisKK1xiZWdpbl9sYXlv dXQgU3RhbmRhcmQKK1xiZWdpbl9pbnNldCBFUlQKK3N0YXR1cyBvcGVuCisKK1xiZWdpbl9sYXlv dXQgUGxhaW4gTGF5b3V0CisKKworXGJhY2tzbGFzaAorcmVzaXplYm94eworXGJhY2tzbGFzaAor dGV4dHdpZHRofXshfXslCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0CisKKworXGNoYW5nZV9p bnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4MzkwNzMKKworXGJlZ2luX2luc2V0IFRhYnVsYXIKKzxs eXh0YWJ1bGFyIHZlcnNpb249IjMiIHJvd3M9IjQiIGNvbHVtbnM9IjM0Ij4KKzxmZWF0dXJlcyB0 YWJ1bGFydmFsaWdubWVudD0iYm90dG9tIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZh bGlnbm1lbnQ9InRvcCIgd2lkdGg9IjBwdCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2 YWxpZ25tZW50PSJ0b3AiIHdpZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZh bGlnbm1lbnQ9InRvcCIgd2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFs aWdubWVudD0idG9wIiB3aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxp Z25tZW50PSJ0b3AiIHdpZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGln bm1lbnQ9InRvcCIgd2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdu bWVudD0idG9wIiB3aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25t ZW50PSJ0b3AiIHdpZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1l bnQ9InRvcCIgd2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVu dD0idG9wIiB3aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50 PSJ0b3AiIHdpZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9 InRvcCIgd2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0i dG9wIiB3aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0 b3AiIHdpZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRv cCIgd2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9w IiB3aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3Ai IHdpZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIg d2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB3 aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHdp ZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgd2lk dGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB3aWR0 aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHdpZHRo PSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgd2lkdGg9 IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB3aWR0aD0i MCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHdpZHRoPSIw Ij4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgd2lkdGg9IjAi PgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB3aWR0aD0iMCI+ Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHdpZHRoPSIwIj4K Kzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgd2lkdGg9IjAiPgor PGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB3aWR0aD0iMCI+Cis8 Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHdpZHRoPSIwIj4KKzxj b2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgd2lkdGg9IjAiPgorPGNv bHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB3aWR0aD0iMHB0Ij4KKzxy b3c+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0 cnVlIiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xi ZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2Vf aW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzcxNzc0CisKK1xzaXplIHRpbnkKK0JpdAorXGNoYW5n ZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwg YWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9t bGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQg VGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5 ODYyNDYzNjUgMTMyMDc3MTc3NworCitcc2l6ZSB0aW55CiszMQorXGNoYW5nZV91bmNoYW5nZWQK KworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJj ZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIg bGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVn aW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMy MDc3MTc3OQorCitcc2l6ZSB0aW55CiszMAorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlv dXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGln bm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRy dWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBs YWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTc4MQorCitc c2l6ZSB0aW55CisyOQorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9p bnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIg dG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0i bm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAor CitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTc4MworCitcc2l6ZSB0aW55Cisy OAorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxs PgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1 ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVn aW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2lu c2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTc4NgorCitcc2l6ZSB0aW55CisyNworXGNoYW5nZV91 bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxp Z25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGlu ZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4 dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYy NDYzNjUgMTMyMDc3MTgxMAorCitcc2l6ZSB0aW55CisyNgorXGNoYW5nZV91bmNoYW5nZWQKKwor XGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50 ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVm dGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5f bGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3 MTgxMworCitcc2l6ZSB0aW55CisyNQorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQK KworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1l bnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUi IHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWlu IExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTgxNQorCitcc2l6 ZSB0aW55CisyNAorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNl dAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9w bGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9u ZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitc Y2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTgxNworCitcc2l6ZSB0aW55CisyMwor XGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgor PGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIg Ym90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5f aW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2Vy dGVkIDE5ODYyNDYzNjUgMTMyMDc3MTgxOQorCitcc2l6ZSB0aW55CisyMgorXGNoYW5nZV91bmNo YW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25t ZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0i dHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAor CitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYz NjUgMTMyMDc3MTgyMQorCitcc2l6ZSB0aW55CisyMQorXGNoYW5nZV91bmNoYW5nZWQKKworXGVu ZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIi IHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxp bmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5 b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTgy MworCitcc2l6ZSB0aW55CisyMAorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKwor XGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9 InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVz ZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExh eW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTgyNQorCitcc2l6ZSB0 aW55CisxOQorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAor PC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGlu ZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+ CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hh bmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTgyOQorCitcc2l6ZSB0aW55CisxOAorXGNo YW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNl bGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90 dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5z ZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVk IDE5ODYyNDYzNjUgMTMyMDc3MTgzMQorCitcc2l6ZSB0aW55CisxNworXGNoYW5nZV91bmNoYW5n ZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50 PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1 ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitc YmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUg MTMyMDc3MTgzMworCitcc2l6ZSB0aW55CisxNgorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9s YXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZh bGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9 InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0 IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTgzNQor Citcc2l6ZSB0aW55CisxNQorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVu ZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRv cCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJv eD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91 dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTg0MAorCitcc2l6ZSB0aW55 CisxNAorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9j ZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0i dHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+Citc YmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdl X2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTg0MQorCitcc2l6ZSB0aW55CisxMworXGNoYW5n ZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwg YWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9t bGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQg VGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5 ODYyNDYzNjUgMTMyMDc3MTg0MworCitcc2l6ZSB0aW55CisxMgorXGNoYW5nZV91bmNoYW5nZWQK KworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJj ZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIg bGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVn aW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMy MDc3MTg0NQorCitcc2l6ZSB0aW55CisxMQorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlv dXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGln bm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRy dWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBs YWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTg0NworCitc c2l6ZSB0aW55CisxMAorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9p bnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIg dG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0i bm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAor CitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTg1MAorCitcc2l6ZSB0aW55Cis5 CitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+ Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVl IiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdp bl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5z ZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzcxODUyCisKK1xzaXplIHRpbnkKKzgKK1xjaGFuZ2VfdW5j aGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdu bWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGJvdHRvbWxpbmU9 InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQK KworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2 MzY1IDEzMjA3NzE4NTQKKworXHNpemUgdGlueQorNworXGNoYW5nZV91bmNoYW5nZWQKKworXGVu ZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIi IHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxp bmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5 b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTg1 NgorCitcc2l6ZSB0aW55Cis2CitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitc ZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0i dG9wIiB0b3BsaW5lPSJ0cnVlIiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNl Ym94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5 b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzcxODU4CisKK1xzaXplIHRp bnkKKzUKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwv Y2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9 InRydWUiIGJvdHRvbWxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgor XGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5n ZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA3NzE4NTkKKworXHNpemUgdGlueQorNAorXGNoYW5n ZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwg YWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9t bGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQg VGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5 ODYyNDYzNjUgMTMyMDc3MTg2MQorCitcc2l6ZSB0aW55CiszCitcY2hhbmdlX3VuY2hhbmdlZAor CitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNl bnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBib3R0b21saW5lPSJ0cnVlIiBs ZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdp bl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIw NzcxODYyCisKK1xzaXplIHRpbnkKKzIKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0 CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25t ZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGJvdHRvbWxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVl IiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFp biBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA3NzE4NjQKKworXHNp emUgdGlueQorMQorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNl dAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9w bGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9u ZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitc Y2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MTg4OAorCitcc2l6ZSB0aW55CiswCitc ZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRl ciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0 bGluZT0idHJ1ZSIgcmlnaHRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0 IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAx OTg2MjQ2MzY1IDEzMjA3NzE5OTcKKworXHNpemUgdGlueQorT2Zmc2V0CitcZW5kX2xheW91dAor CitcZW5kX2luc2V0Cis8L2NlbGw+Cis8L3Jvdz4KKzxyb3c+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNl bnRlciIgdmFsaWdubWVudD0idG9wIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQK KworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNl dAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjEiIGFsaWdubWVudD0iY2VudGVyIiB2YWxp Z25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGJvdHRvbWxpbmU9InRydWUiIGxlZnRsaW5lPSJ0 cnVlIiByaWdodGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAor CitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYz NjUgMTMyMDc4MTAyOQorCitcc2l6ZSBsYXJnZXIKK1N0cnVjdHVyZSBJRAorXGNoYW5nZV91bmNo YW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGlj b2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRy dWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKwor XGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAor PC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25t ZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgor XGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9s YXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdu bWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0 cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQ bGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwg bXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxp bmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRl eHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9p bnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2 YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5v bmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKwor XGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIi IGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRs aW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xh eW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgor PGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3Ai IHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2lu c2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKwor XGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjEiIGFsaWdubWVudD0iY2Vu dGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGJvdHRvbWxpbmU9InRydWUiIGxl ZnRsaW5lPSJ0cnVlIiByaWdodGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5z ZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVk IDE5ODYyNDYzNjUgMTMyMDg1MDMwMgorCitcc2l6ZSBsYXJnZXIKK0NhcExlbmd0aCA9IDEyCitc Y2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8 Y2VsbCBtdWx0aWNvbHVtbj0iMiIgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIg dG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5z ZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcZW5kX2xheW91dAorCitc ZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBtdWx0aWNvbHVtbj0iMiIgYWxpZ25tZW50PSJjZW50 ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJv eD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91 dAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBtdWx0aWNvbHVt bj0iMiIgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIg bGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVn aW5fbGF5b3V0IFBsYWluIExheW91dAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2Nl bGw+Cis8Y2VsbCBtdWx0aWNvbHVtbj0iMiIgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9 InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVn aW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcZW5kX2xheW91 dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBtdWx0aWNvbHVtbj0iMiIgYWxpZ25tZW50 PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUi IHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWlu IExheW91dAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBtdWx0 aWNvbHVtbj0iMiIgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0i dHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAor CitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0 Cis8L2NlbGw+Cis8Y2VsbCBtdWx0aWNvbHVtbj0iMiIgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGln bm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+ CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcZW5k X2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBtdWx0aWNvbHVtbj0iMSIgYWxp Z25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGlu ZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHJpZ2h0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4K K1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFu Z2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODUwMjk4CisKK1xzaXplIGxhcmdlcgorTmV4dENh cFB0cgorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9j ZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50 PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJl Z2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlv dXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVu dD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVl IiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFp biBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVs dGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9 InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQK KworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNl dAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxp Z25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUi PgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVu ZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFs aWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5l PSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91 dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNl bGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRv cGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0 IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVu ZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVy IiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9 Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQK KworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49 IjEiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGJv dHRvbWxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiByaWdodGxpbmU9InRydWUiIHVzZWJveD0i bm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAor CitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1MDI4OQorCitcc2l6ZSBsYXJnZXIK K0NhcElEID0gOQorXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVs dGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9 InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQK KworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNl dAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxp Z25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUi PgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVu ZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFs aWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5l PSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91 dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNl bGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRv cGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0 IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVu ZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVy IiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9 Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQK KworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49 IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxl ZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2lu X2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxs PgorPGNlbGwgbXVsdGljb2x1bW49IjIiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0 b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2lu X2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGVuZF9sYXlvdXQK KworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1l bnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUi IHJpZ2h0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xi ZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAx MzIwNzcyMDA0CiswCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8L3Jvdz4K Kzxyb3c+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB1c2Vib3g9 Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQK KworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGljb2x1bW49 IjEiIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGJv dHRvbWxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiByaWdodGxpbmU9InRydWUiIHVzZWJveD0i bm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAor CitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MjU0OQorCitcc2l6ZSBsYXJnZXIK K1NpemUKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwv Y2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVu dD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xi ZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5 b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1l bnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1 ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxh aW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11 bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5l PSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0 CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5z ZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFs aWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25l Ij4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xl bmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBh bGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGlu ZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlv dXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxj ZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0 b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNl dCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xl bmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRl ciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94 PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0 CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1u PSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBs ZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdp bl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2Vs bD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0i dG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdp bl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0 CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9 ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIg dXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4g TGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRp Y29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0 cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisK K1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQK KzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdu bWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4K K1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRf bGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGln bm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0i dHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQg UGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxs IG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3Bs aW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBU ZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRf aW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIg dmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJu b25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisK K1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIy IiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0 bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9s YXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4K KzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9w IiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9p bnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisK K1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNl bnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNl Ym94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5 b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29s dW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVl IiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xi ZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwv Y2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVu dD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xi ZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5 b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1l bnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1 ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxh aW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11 bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5l PSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0 CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5z ZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFs aWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25l Ij4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xl bmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIxIiBh bGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBib3R0b21s aW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgcmlnaHRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUi PgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNo YW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTA0MDgKKworXHNpemUgbGFyZ2VyCitCSVIK K1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIy IiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0 bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9s YXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4K KzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9w IiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9p bnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisK K1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNl bnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNl Ym94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5 b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29s dW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVl IiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xi ZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwv Y2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVu dD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xi ZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5 b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1l bnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1 ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxh aW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11 bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5l PSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0 CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5z ZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRv cGxpbmU9InRydWUiIGJvdHRvbWxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiByaWdodGxpbmU9 InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0 IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MjAwNwor NAorXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPC9yb3c+Cis8cm93PgorPGNl bGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdXNlYm94PSJub25lIj4KK1xi ZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5 b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIxIiBhbGlnbm1l bnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBib3R0b21saW5lPSJ0 cnVlIiBsZWZ0bGluZT0idHJ1ZSIgcmlnaHRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJl Z2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9p bnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA3NzI1NDAKKworXHNpemUgbGFyZ2VyCitPZmZzZXQKK1xl bmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBh bGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGlu ZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlv dXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxj ZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0 b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNl dCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xl bmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRl ciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94 PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0 CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1u PSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBs ZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdp bl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2Vs bD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0i dG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdp bl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0 CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9 ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIg dXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4g TGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRp Y29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0 cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisK K1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQK KzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdu bWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4K K1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRf bGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGln bm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0i dHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQg UGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxs IG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3Bs aW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBU ZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRf aW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIg dmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJu b25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisK K1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIy IiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0 bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9s YXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4K KzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9w IiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9p bnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisK K1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNl bnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNl Ym94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5 b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29s dW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVl IiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xi ZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwv Y2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVu dD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xi ZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5 b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1l bnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1 ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxh aW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11 bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5l PSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0 CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5z ZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFs aWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25l Ij4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xl bmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBh bGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGlu ZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlv dXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxj ZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0 b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNl dCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xl bmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRl ciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94 PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0 CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1u PSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBs ZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdp bl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2Vs bD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0i dG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdp bl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0 CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9 ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIg dXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4g TGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRp Y29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0 cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisK K1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQK KzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdu bWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4K K1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRf bGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGln bm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0i dHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQg UGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxs IG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3Bs aW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBU ZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRf aW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIyIiBhbGlnbm1lbnQ9ImNlbnRlciIg dmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJu b25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisK K1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRpY29sdW1uPSIy IiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0 bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9s YXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4K KzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUi IGJvdHRvbWxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiByaWdodGxpbmU9InRydWUiIHVzZWJv eD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91 dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc3MjAxMQorOAorXGVuZF9sYXlv dXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPC9yb3c+Cis8L2x5eHRhYnVsYXI+CisKK1xlbmRf aW5zZXQKKworCitcY2hhbmdlX3VuY2hhbmdlZAorCitcYmVnaW5faW5zZXQgRVJUCitzdGF0dXMg b3BlbgorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCit9CitcZW5kX2xheW91dAorCitc ZW5kX2luc2V0CisKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4MzkwNzMKKwor XGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBTdGFuZGFyZAorCitcY2hhbmdlX2luc2VydGVk IDE5ODYyNDYzNjUgMTMyMDgzODk5MgorUHVycG9zZToKK1xlbmRfbGF5b3V0CisKK1xiZWdpbl9s YXlvdXQgU3RhbmRhcmQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA3ODA5MTIK KworXGVtcGggb24KK0NhcGFiaWxpdHkgSUQKK1xlbXBoIGRlZmF1bHQKKywgCitcZW1waCBvbgor TmV4dCBDYXBhYmlsaXR5IFBvaW50ZXIKK1xlbXBoIGRlZmF1bHQKKywgCitcZW1waCBvbgorQ2Fw YWJpbGl0eSBMZW5ndGgKK1xlbXBoIGRlZmF1bHQKKyAtIHRoZXNlIGZpZWxkcyBhcmUgc3BlY2lm aWVkIGJ5IFBDSSBsb2NhbCBidXMgc3BlY2lmaWNhdGlvbiwgUmV2IDMuMAorXGVuZF9sYXlvdXQK KworXGJlZ2luX2xheW91dCBTdGFuZGFyZAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUg MTMyMDc4NTA3MworCitcZW1waCBvbgorU3RydWN0dXJlIElECitcZW1waCBkZWZhdWx0CisgLSBp ZGVudGlmaWVzIHRoZSBzdHJ1Y3R1cmUgbWFwcGVkLgorIElmIGFuIElEIHJlcHJlc2VudGluZyBh IHNwZWNpZmljIHN0cnVjdHVyZSBpcyBhYnNlbnQsIHRoZSBzdHJ1Y3R1cmUgaXMKKyBsb2NhdGVk IGluIHRoZSBsZWdhY3kgdmlydGlvIGNvbmZpZ3VyYXRpb24gaW4gdGhlIGZpcnN0IFBDSSBCQVIu CitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisKK1xjaGFuZ2VfaW5zZXJ0 ZWQgMTk4NjI0NjM2NSAxMzIwNzgyNjg5CisKK1xlbXBoIG9uCitTaXplCitcZW1waCBkZWZhdWx0 CisgLSBzaXplIG9mIHRoZSBzdHJ1Y3R1cmUgbWFwcGVkLgorIFRoaXMgc2l6ZSBtaWdodCBpbmNs dWRlIHBhZGRpbmcsIG9yIGZpZWxkcyB1bnVzZWQgYnkgdGhlIGRyaXZlci4KKyBEcml2ZXJzIGFy ZSBhbHNvIHJlY29tbWVuZGVkIHRvIG9ubHkgbWFwIHBhcnQgb2YgY29uZmlndXJhdGlvbiBzdHJ1 Y3R1cmUKKyBsYXJnZSBlbm91Z2ggZm9yIGRldmljZSBvcGVyYXRpb24uCisgRm9yIGV4YW1wbGUs IGEgZnV0dXJlIGRldmljZSBtaWdodCBwcmVzZW50IGEgbGFyZ2Ugc3RydWN0dXJlIHNpemUgb2Yg c2V2ZXJhbAorIE1CeXRlcy4KKyBBcyBjdXJyZW50IGRldmljZXMgbmV2ZXIgdXRpbGl6ZSBzdHJ1 Y3R1cmVzIGxhcmdlciB0aGFuIDRLQnl0ZXMgaW4gc2l6ZSwKKyBkcml2ZXIgY2FuIGxpbWl0IHRo ZSBtYXBwZWQgc3RydWN0dXJlIHNpemUgdG8gZS5nLgorIDRLQnl0ZXMgdG8gYWxsb3cgZm9yd2Fy ZCBjb21wYXRpYmlsaXR5IHdpdGggc3VjaCBkZXZpY2VzIHdpdGhvdXQgbG9zcyBvZgorIGZ1bmN0 aW9uYWxpdHkgYW5kIHdpdGhvdXQgd2FzdGluZyByZXNvdXJjZXMuCitcY2hhbmdlX3VuY2hhbmdl ZAorCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisKK1xjaGFuZ2VfaW5z ZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODM5ODMzCisKK1xlbXBoIG9uCitCSVIgLSBCQVIgSW5kaWNh dG9yIFJlZ2lzdGVyCitcZW1waCBkZWZhdWx0CisgLSBJbmRpY2F0ZXMgd2hpY2ggb25lIG9mIHRo ZSBCQVIgcmVnaXN0ZXJzLCBsb2NhdGVkIGJlZ2lubmluZyBhdCAxMGggaW4KKyBDb25maWd1cmF0 aW9uIFNwYWNlLCBpcyB1c2VkIHRvIG1hcCB0aGUgc3RydWN0dXJlIGludG8gTWVtb3J5IG9yIEkv TyBTcGFjZS4KKyBMZWdhbCB2YWx1ZXMgYXJlIDAgLSA1LgorIEJBUiBvZmZzZXQgaXMgY2FsY3Vs YXRlZCBhcyAKK1xlbXBoIG9uCitCQVIKK1xlbXBoIGRlZmF1bHQKKyA9IDEwaCArIDQgKiAKK1xl bXBoIG9uCitCSVIuCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisKK1xj aGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzgxMDAyCisKK1xlbXBoIG9uCitPZmZzZXQK K1xlbXBoIGRlZmF1bHQKKyAtIFVzZWQgYXMgYW4gb2Zmc2V0IGZyb20gdGhlIGFkZHJlc3MgY29u dGFpbmVkIGJ5IG9uZSBvZiB0aGUgZnVuY3Rpb27igJlzCisgQmFzZSBBZGRyZXNzIHJlZ2lzdGVy cyB0byBwb2ludCB0byB0aGUgYmFzZSBvZiB0aGUgc3RydWN0dXJlLgorIERlcGVuZGluZyBvbiB0 aGUgc3RydWN0dXJlLCB0aGUgbG93ZXIgYml0cyBhcmUgbWFza2VkIG9mZiAoc2V0IHRvIHplcm8p CisgYnkgc29mdHdhcmUgdG8gZm9ybSBhbiBhbGlnbmVkIG9mZnNldC4KK1xlbmRfbGF5b3V0CisK K1xiZWdpbl9sYXlvdXQgU3RhbmRhcmQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEz MjA3ODUwOTgKK0Egc2luZ2xlIGRldmljZSBoYXMgbXVsdGlwbGUgdmlydGlvIGNhcGFiaWxpdGll cyBvbiB0aGUgUENJIGNhcGFiaWxpdHkgbGlua2VkLWxpCitzdC4KKyBUbyBsb2NhdGUgYSBzcGVj aWZpYyByZWdpc3RlciwgZHJpdmVyIHNjYW5zIHRoZSBQQ0kgY2FwYWJpbGl0eSBsaXN0IGxvb2tp bmcKKyBmb3IgY2FwYWJpbGl0aWVzIHVzaW5nIHRoZSB2ZW5kb3Igc3BlY2lmaWMgCitcZW1waCBv bgorQ2FwYWJpbGl0eSBJRAorXGVtcGggZGVmYXVsdAorLCB0aGF0IGlzIAorXGVtcGggb24KK0Nh cGFiaWxpdHkgSUQKK1xlbXBoIGRlZmF1bHQKKyB2YWx1ZSAKK1xlbXBoIG9uCis5CitcZW1waCBk ZWZhdWx0CissIGFjY29yZGluZyB0byB0aGUgUENJIHNwZWMuCisgRm9yIGVhY2ggY2FwYWJpbGl0 eSwgaXQgdmVyaWZpZXMgdGhhdCB0aGUgCitcZW1waCBvbgorQ2FwYWJpbGl0eSBMZW5ndGgKK1xl bXBoIGRlZmF1bHQKKyBmaWVsZCBtYXRjaGVzIHRoZSBleHBlY3RlZCB2YWx1ZSAoMTIpIC0gaWYg aXQgZG9lc24ndCwgdGhpcyBpbmRpY2F0ZXMgYQorIGxheW91dCBjaGFuZ2UsIHdoaWNoIGNhdXNl cyBkcml2ZXIgdG8gaWdub3JlIHRoZSBzcGVjaWZpYyBQQ0kgY2FwYWJpbGl0eQorIGFuZCBwcm9j ZWVkIHRvIHRoZSBuZXh0IFBDSSBjYXBhYmlsaXR5IGluIHRoZSBsaXN0LgorIE5leHQsCitcZW1w aCBvbgorIFN0cnVjdHVyZSBJRAorXGVtcGggZGVmYXVsdAorIHNpbmdsZS1ieXRlIGZpZWxkIGlz IHJlYWQgYXQgb2Zmc2V0IDMuCisgVW5yZWNvZ25pemVkIAorXGVtcGggb24KK1N0cnVjdHVyZSBJ RAorXGVtcGggZGVmYXVsdAorIHZhbHVlcyBhcmUgaWdub3JlZC4KKyBMb3cgYml0cyBpbiB0aGUg CitcZW1waCBvbgorT2Zmc2V0CitcZW1waCBkZWZhdWx0CisgcmVnaXN0ZXIgYXJlIG1hc2tlZCB0 byBtYXRjaCBhbGlnbm1lbnQgcmVxdWlyZW1lbnRzLCBpZiBhbnkuCisgRGV2aWNlIGRyaXZlcnMg YXJlIHJlY29tbWVuZGVkIHRvIHNhbml0eSBjaGVjayAKK1xlbXBoIG9uCitCSVIKK1xlbXBoIGRl ZmF1bHQKKywgCitcZW1waCBvbgorT2Zmc2V0CitcZW1waCBkZWZhdWx0CissIGFuZCAKK1xlbXBo IG9uCitTaXplCitcZW1waCBkZWZhdWx0CisgZmllbGRzLCBpZ25vcmluZyB0aGUgY2FwYWJpbGl0 eSBvciBmYWlsaW5nIGdyYWNlZnVsbHkgb24gZXJyb3IuCisgRHJpdmVycyBhcmUgYWxzbyByZWNv bW1lbmRlZCB0byBvbmx5IG1hcCBwYXJ0IG9mIGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlCisgbGFy Z2UgZW5vdWdoIGZvciBkZXZpY2Ugb3BlcmF0aW9uLgorXGVuZF9sYXlvdXQKKworXGJlZ2luX2xh eW91dCBTdGFuZGFyZAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDkyMDUxMQor Rm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBkZXZpY2VzIHNob3VsZCBhbHNvIHByZXNlbnQg bGVnYWN5IGNvbmZpZ3VyYXRpb24KKyBzcGFjZSBpbiBCQVIwIGluIHRoZSBmaXJzdCBJL08gcmVn aW9uIG9mIHRoZSBQQ0kgZGV2aWNlLCBtaXJyb3JpbmcgdmlydGlvCisgY29uZmlndXJhdGlvbiBz dHJ1Y3R1cmVzIGluIHRoaXMgc3BhY2UuCisgRm9yIGZvcndhcmRzIGNvbXBhdGliaWxpdHksIGRy aXZlcnMgc2hvdWxkIGZhbGwgYmFjayBvbiB0aGlzIGxlZ2FjeSBzdHJ1Y3R1cmUKKyBpZiBhIHNw ZWNpZmljIFZpcnRpbyBTdHJ1Y3R1cmUgY2FwYWJpbGl0eSBpcyBtaXNzaW5nIGluIHRoZSBQQ0kg Y2FwYWJpbGl0eQorIGxpc3QuCisgSG93ZXZlciwgZGV2aWNlcyBhcmUgbm90IHJlcXVpcmVkIHRv IG1hcCB0aGUgd2hvbGUgY29uZmlndXJhdGlvbiBzdHJ1Y3R1cmUKKyBpbiBsZWdhY3kgc3BhY2Ug LSBvbmx5IHRoZSBpbml0aWFsIHNlZ21lbnQgZXhwZWN0ZWQgYnkgbGVnYWN5IGRyaXZlcnMgbmVl ZHMKKyB0byBiZSBtYXBwZWQuCisgRGV2aWNlcyBhcmUgZnVydGhlciByZXF1aXJlZCB0byBpbXBs ZW1lbnQgYWxsIFN0cnVjdHVyZSBJRHMgZm9yIHRoZSBzdHJ1Y3R1cmVzCisgdGhleSBwcmVzZW50 LCBhcyBvcHBvc2VkIHRvIHJlbHlpbmcgb24gZHJpdmVyIGxlZ2FjeSBmYWxsYmFjay4KKyBUaGUg bWluaW1hbCBzaXplIG9mIHN1Y2ggbGVnYWN5IHNlZ21lbnQgc2l6ZSwgZm9yIGVhY2ggc3RydWN0 dXJlLCBpcyBsaXN0ZWQKKyBiZWxvdy4KKyBEcml2ZXJzIGFyZSBkaXNjb3VyYWdlZCBmcm9tIHVz aW5nIGxlZ2FjeSBzcGFjZSBpZiBhIHNwZWNpZmljIFN0cnVjdHVyZQorIElEIGlzIHByZXNlbnQ7 IHRoaXMgaXMgdG8gYWxsb3cgZGVwcmVjYXRpbmcgdGhlIGxlZ2FjeSBzcGFjZSBpbiB0aGUgZnV0 dXJlLgorXGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBTdGFuZGFyZAorCitcY2hhbmdlX2lu c2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1MDc3MAorQmVsb3cgaXMgdGhlIGxpc3Qgb2Ygc3VwcG9y dGVkIFZpcnRpbyBzdHJ1Y3R1cmVzLCBpbmNsdWRpbmcgU3RydWN0dXJlIElELAorIG9mZnNldCBh bGlnbm1lbnQsIGFuZCB3aGVyZSBpdCBjYW4gYmUgbG9jYXRlZCBpbiB0aGUgbGVnYWN5IGNvbmZp Z3VyYXRpb24KKyBzcGFjZS4KKyBOb3RlIHRoYXQgbGVnYWN5IHNwYWNlIGxheW91dCBjaGFuZ2Vz IGFzIHRoZSBNU0ktWCBjYXBhYmlsaXR5IGlzIGVuYWJsZWQKKyBhbmQgZGlzYWJsZWQKK1xiZWdp bl9pbnNldCBGb290CitzdGF0dXMgb3BlbgorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAor CitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1Njc5NAoraWUuCisgb25jZSB5b3Ug ZW5hYmxlIE1TSS1YIG9uIHRoZSBkZXZpY2UsIHNvbWUgbGVnYWN5IGZpZWxkcyBtb3ZlLgorIElm IHlvdSB0dXJuIGl0IG9mZiBhZ2FpbiwgdGhleSBtb3ZlIGJhY2shIHRoaXMgZG9lcyBub3QgYWZm ZWN0IHRoZSBuZXcKKyBjb25maWd1cmF0aW9uIAorXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAor CisuCisgQWxpZ25tZW50LCBvZmZzZXQgYW5kIGFsbCBzaXplcyBhcmUgaW4gYnl0ZXMuCitcZW5k X2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4 NjI0NjM2NSAxMzIwNzg2ODY4CitcYmVnaW5faW5zZXQgVGFidWxhcgorPGx5eHRhYnVsYXIgdmVy c2lvbj0iMyIgcm93cz0iNiIgY29sdW1ucz0iNiI+Cis8ZmVhdHVyZXMgdGFidWxhcnZhbGlnbm1l bnQ9Im1pZGRsZSI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3Ai IHdpZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIg d2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB3 aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHdp ZHRoPSIwIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgd2lk dGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB3aWR0 aD0iMCI+Cis8cm93PgorPGNlbGwgbXVsdGlyb3c9IjMiIGFsaWdubWVudD0ibGVmdCIgdmFsaWdu bWVudD0ibWlkZGxlIiB0b3BsaW5lPSJ0cnVlIiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0bGluZT0i dHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQg UGxhaW4gTGF5b3V0CitTdHJ1Y3R1cmUKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIw ODU1NTYwCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIG11bHRp cm93PSIzIiBhbGlnbm1lbnQ9ImxlZnQiIHZhbGlnbm1lbnQ9Im1pZGRsZSIgdG9wbGluZT0idHJ1 ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVn aW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorSUQKK1xjaGFuZ2Vf aW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU1NTYwCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5z ZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRv cGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0 IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKK0FsaWduLQorXGVuZF9sYXlvdXQK KworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgbXVsdGlyb3c9IjMiIGFsaWdubWVudD0ibGVm dCIgdmFsaWdubWVudD0ibWlkZGxlIiB0b3BsaW5lPSJ0cnVlIiBib3R0b21saW5lPSJ0cnVlIiBs ZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdp bl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIw ODU1NTYwCitNaW5TaXplCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2Vs bCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0 bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9s YXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzg1 ODIxCitPZmZzZXQgaW4KK1xjaGFuZ2VfZGVsZXRlZCAxOTg2MjQ2MzY1IDEzMjA3ODU4MTcKKwor XGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50 ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHJpZ2h0 bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9s YXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODUw NzgwCitNaW5TaXplIGluCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8L3Jv dz4KKzxyb3c+Cis8Y2VsbCBtdWx0aXJvdz0iNCIgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1l bnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUi IHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWlu IExheW91dAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBtdWx0 aXJvdz0iNCIgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1 ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVn aW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcZW5kX2xheW91 dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdu bWVudD0idG9wIiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25l Ij4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xj aGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU1NjI1CittZW50CitcZW5kX2xheW91dAor CitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBtdWx0aXJvdz0iNCIgYWxpZ25tZW50PSJjZW50 ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVm dGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5f bGF5b3V0IFBsYWluIExheW91dAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+ Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiBib3R0b21saW5lPSJ0 cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisK K1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2 NSAxMzIwODU1NTkzCitsZWdhY3kgc3BhY2UKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwv Y2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIGJvdHRvbWxp bmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiByaWdodGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+ CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hh bmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1NTYxMAorIGxlZ2FjeSBzcGFjZQorXGVuZF9s YXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPC9yb3c+Cis8cm93PgorPGNlbGwgYWxpZ25t ZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRy dWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBs YWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc4NTg1NQorVmly dGlvIEhlYWRlcgorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNl dAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9w bGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQg VGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5 ODYyNDYzNjUgMTMyMDc4NTg2MAorMHgxCitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91 dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdu bWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4K K1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFu Z2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwNzg2MTU3Cis0CitcY2hhbmdlX3VuY2hhbmdlZAor CitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNl bnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNl Ym94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5 b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwOTE4MTk2CiszMiBieXRlcwor XGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50 ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJv eD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91 dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc4NjE0NQorMAorXGNoYW5nZV91 bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxp Z25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9 InRydWUiIHJpZ2h0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0 CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0 NjM2NSAxMzIwODU1MTgwCisyNCBvciAyMAorXGJlZ2luX2luc2V0IEZvb3QKK3N0YXR1cyBvcGVu CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0 NjM2NSAxMzIwODU1NTExCitcYmVnaW5faW5zZXQgQ29tbWFuZEluc2V0IGxhYmVsCitMYXRleENv bW1hbmQgbGFiZWwKK25hbWUgImZuOjI0LW9yLTIwIgorCitcZW5kX2luc2V0CisKKzI0IGJ5dGVz IGlmIE1TSS1YIGlzIGVuYWJsZWQsIDIwIGJ5dGVzIGlmIGl0IGlzIGRpc2FibGVkCitcY2hhbmdl X3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0CisKKworXGVuZF9sYXlvdXQK KworXGVuZF9pbnNldAorPC9jZWxsPgorPC9yb3c+Cis8cm93PgorPGNlbGwgYWxpZ25tZW50PSJj ZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVz ZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExh eW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc4NjE4OAorUXVldWUgTm90 aWZ5CitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2Nl bGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0 cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisK K1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2 NSAxMzIwNzg2MTkxCisweDIKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xl bmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0 b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2lu X2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNl cnRlZCAxOTg2MjQ2MzY1IDEzMjA3ODYyNjcKKzIgYnl0ZXMKK1xjaGFuZ2VfdW5jaGFuZ2VkCisK K1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2Vu dGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vi b3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlv dXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA3ODYyMjgKKzIgYnl0ZXMKK1xl bmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVy IiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9 Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQK KworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA3ODY1MDUKKzE2IGJ5dGVzCitcY2hh bmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2Vs bCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0 bGluZT0idHJ1ZSIgcmlnaHRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0 IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAx OTg2MjQ2MzY1IDEzMjA3ODYzMDMKKzIKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2Vs bD4KKzwvcm93PgorPHJvdz4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0 b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2lu X2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNl cnRlZCAxOTg2MjQ2MzY1IDEzMjA3ODY4NzgKK0lTUiBTdGF0dXMKK1xjaGFuZ2VfdW5jaGFuZ2Vk CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0i Y2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1 c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBM YXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA3ODYyNjAKKzB4MworXGNo YW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNl bGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVm dGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5f bGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc4 NjI3MAorMSBieXRlCitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2lu c2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0 b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNl dCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQg MTk4NjI0NjM2NSAxMzIwNzg2MjczCisxIGJ5dGUKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQK KzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxp bmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRl eHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2 MjQ2MzY1IDEzMjA3ODY1MzQKKzE5IGJ5dGVzCitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xh eW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFs aWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgcmlnaHRsaW5lPSJ0 cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQ bGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA3ODYzMDYKKzEK K1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzwvcm93PgorPHJvdz4KKzxjZWxs IGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGJvdHRv bWxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0 IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAx OTg2MjQ2MzY1IDEzMjA3ODY4NDcKK0RldmljZSBIZWFkZXIKK1xjaGFuZ2VfdW5jaGFuZ2VkCisK K1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2Vu dGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGJvdHRvbWxpbmU9InRydWUiIGxl ZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2lu X2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA3 ODY0NzQKKzB4NAorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNl dAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9w bGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9u ZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitc Y2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc4NjQ3NworMSBieXRlCitcY2hhbmdlX3Vu Y2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGln bm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBib3R0b21saW5l PSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0 CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0 NjM2NSAxMzIwOTE4MTIxCisuLi4KK1xiZWdpbl9pbnNldCBGb290CitzdGF0dXMgb3BlbgorCitc YmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUg MTMyMDg1NTQxNworXGJlZ2luX2luc2V0IENvbW1hbmRJbnNldCBsYWJlbAorTGF0ZXhDb21tYW5k IGxhYmVsCituYW1lICJmbjpEZXZpY2Utc3BlY2lmaWMiCisKK1xlbmRfaW5zZXQKKworRGV2aWNl IHNwZWNpZmljCitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0 CisKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50 PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1 ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitc YmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUg MTMyMDg1NTUzNAorMjQgb3IgMjAKK1xiZWdpbl9pbnNldCBGb3JtdWxhICRee1x0ZXh0e1xyZWZ7 Zm46MjQtb3ItMjB9fX0kCitcZW5kX2luc2V0CisKKworXGNoYW5nZV91bmNoYW5nZWQKKworXGVu ZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIi IHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgYm90dG9tbGluZT0idHJ1ZSIgbGVmdGxp bmU9InRydWUiIHJpZ2h0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBU ZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4 NjI0NjM2NSAxMzIwOTE4MTI1CisuLi4KK1xiZWdpbl9pbnNldCBGb3JtdWxhICRee1x0ZXh0e1xy ZWZ7Zm46RGV2aWNlLXNwZWNpZmljfX19JAorXGVuZF9pbnNldAorCisKK1xjaGFuZ2VfdW5jaGFu Z2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzwvcm93PgorPC9seXh0 YWJ1bGFyPgorCitcZW5kX2luc2V0CisKKworXGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBT dGFuZGFyZAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDc4Njk3MworRHJpdmVy cyBzaG91bGQgYXNzdW1lIHRoYXQgZWFjaCBzdHJ1Y3R1cmUgc2l6ZSBjYW4gYmUgZXh0ZW5kZWQg aW4gdGhlIGZ1dHVyZS4KK1xlbmRfbGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgU3RhbmRhcmQKKwor XGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTk3NjIKK1F1ZXVlIE5vdGlmeSBhbmQg SVNSIHN0YXR1cyBhcmUgc2luZ2xlLWZpZWxkIHJlZ2lzdGVycy4KKyBEZXZpY2UgSGVhZGVyIGhh cyBkZXZpY2Ugc3BlY2lmaWMgc3RydWN0dXJlLgorIFZpcnRpbyBIZWFkZXIgc3RydWN0dXJlIGlz IGRvY3VtZW50ZWQgYmVsb3cuCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN1YnN1YnNl Y3Rpb24KKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NjcyNTMKK0V4YW1wbGUg VmlydGlvIFN0cnVjdHVyZSBMYXlvdXQKK1xlbmRfbGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgU3Rh bmRhcmQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NjU3NTgKK0xldCdzIGFz c3VtZSB0aGF0IGEgdmlydGlvIGJsb2NrIGRldmljZSBwcmVzZW50cyB0d28gVmlydGlvIFN0cnVj dHVyZSBjYXBhYmlsaXRpCitlcyBpbiBQQ0kgY2FwYWJpbGl0eSBsaXN0OgorXGVuZF9sYXlvdXQK KworXGJlZ2luX2xheW91dCBTdGFuZGFyZAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUg MTMyMDg2MzM5MgorU3RydWN0dXJlIElEIDB4MTsgQklSIDE7IE9mZnNldCAweDEwMDA7IFNpemUg MHgxMDAKK1xlbmRfbGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgU3RhbmRhcmQKKworXGNoYW5nZV9p bnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NjMzOTkKK1N0cnVjdHVyZSBJRCAweDQ7IEJJUiAxOyBP ZmZzZXQgMHgxMTAwOyBTaXplIDB4MjAwCitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0 YW5kYXJkCisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODYzNDc5CitMZXQncyBm dXJ0aGVyIGFzc3VtZSB0aGF0IE1TSS1YIGlzIGRpc2FibGVkLgorXGVuZF9sYXlvdXQKKworXGJl Z2luX2xheW91dCBTdGFuZGFyZAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg2 MzQ5OAorSW4gdGhpcyBjYXNlLCB0aGUgZHJpdmVyIHNob3VsZCB1c2U6CitcZW5kX2xheW91dAor CitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAx MzIwODYzNTQzCitWaXJ0aW8gSGVhZGVyIGF0IG9mZnNldCAweDEwMDAgaW4gQkFSIDEKK1xlbmRf bGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgU3RhbmRhcmQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2 MjQ2MzY1IDEzMjA4NjM1NjgKK0RldmljZSBIZWFkZXIgYXQgb2Zmc2V0IDB4MTEwMCBpbiBCQVIx CitcZW5kX2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisKK1xjaGFuZ2VfaW5zZXJ0 ZWQgMTk4NjI0NjM2NSAxMzIwODY4MDc0CitRdWV1ZSBOb3RpZnkgYXQgb2Zmc2V0IDB4MTAgaW4g QkFSMCAobGVnYWN5IGNvbmZpZ3VyYXRpb24gc3BhY2UgaXMgdXNlZAorIHNpbmNlIFN0cnVjdHVy ZSBJRCBpcyBub3QgcHJlc2VudCkKK1xlbmRfbGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgU3RhbmRh cmQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NjgwNzcKK0lTUiBzdGF0dXMg YXQgb2Zmc2V0IDB4MTMgaW4gQkFSMCAobGVnYWN5IGNvbmZpZ3VyYXRpb24gc3BhY2UgaXMgdXNl ZCBzaW5jZQorIFN0cnVjdHVyZSBJRCBpcyBub3QgcHJlc2VudCkKK1xjaGFuZ2VfdW5jaGFuZ2Vk CisKK1xlbmRfbGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgU3RhbmRhcmQKKworXGNoYW5nZV9pbnNl cnRlZCAxOTg2MjQ2MzY1IDEzMjA4NjcxNjIKK0ZvciB1c2UgYnkgbGVnYWN5IGRyaXZlcnMsIHRo ZSBmaXJzdCAyMCBieXRlcyBpbiBCQVIwIG1pcnJvciBieXRlcyAweDEwMDAKKyB0byAweDEwMTMg aW4gQkFSMSwgYW5kIHRoZSBmb2xsb3dpbmcgMzIgYnl0ZXMgaW4gQkFSMCBzaG91bGQgbWlycm9y IGJ5dGVzCisgMHgxMTAwIHRvIDExMUYgaW4gQkFSMS4KK1xlbmRfbGF5b3V0CisKK1xiZWdpbl9s YXlvdXQgU3RhbmRhcmQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NjcyMzEK K0VuYWJsaW5nIE1TSS1YIG9ubHkgYWZmZWN0cyB0aGUgbGVnYWN5IGRyaXZlcnM6IHdpdGggTVNJ LVggZW5hYmxlZCwgdGhlCisgZmlyc3QgMjQgYnl0ZXMgaW4gQkFSMCBtaXJyb3IgYnl0ZXMgMHgx MDAwIHRvIDB4MTAxNyBpbiBCQVIxLCBhbmQgdGhlIGZvbGxvd2luZworIDMyIGJ5dGVzIGluIEJB UjAgc2hvdWxkIG1pcnJvciBieXRlcyAweDExMDAgdG8gMTExRiBpbiBCQVIxLgorXGNoYW5nZV91 bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBTdWJzZWN0aW9uCisKK1xj aGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU1OTg4CitWaXJ0aW8gSGVhZGVyCitcZW5k X2xheW91dAorCitcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4 NjI0NjM2NSAxMzIwODU4NTcxCitUaGUgdmlydGlvIGhlYWRlciBsb29rcyBhcyBmb2xsb3dzOgor XGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBTdGFuZGFyZAorCitcY2hhbmdlX2luc2VydGVk IDE5ODYyNDYzNjUgMTMyMDg1ODU5NworXGJlZ2luX2luc2V0IFRhYnVsYXIKKzxseXh0YWJ1bGFy IHZlcnNpb249IjMiIHJvd3M9IjEzIiBjb2x1bW5zPSIzIj4KKzxmZWF0dXJlcyB0YWJ1bGFydmFs aWdubWVudD0ibWlkZGxlIj4KKzxjb2x1bW4gYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9 InRvcCIgd2lkdGg9IjAiPgorPGNvbHVtbiBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0i dG9wIiB3aWR0aD0iMCI+Cis8Y29sdW1uIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0 b3AiIHdpZHRoPSIwIj4KKzxyb3c+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVu dD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIg dXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4g TGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU4NjAzCitCaXRzCitc Y2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8 Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBi b3R0b21saW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9p bnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0 ZWQgMTk4NjI0NjM2NSAxMzIwODU4NjE0CitSL1cKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRf bGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2 YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGJvdHRvbWxpbmU9InRydWUiIGxlZnRsaW5l PSJ0cnVlIiByaWdodGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4 dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYy NDYzNjUgMTMyMDg1ODYxOQorUHVycG9zZQorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlv dXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPC9yb3c+Cis8cm93PgorPGNlbGwgYWxpZ25tZW50 PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUi IHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWlu IExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1ODg0MQorMzIKK1xj aGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxj ZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxl ZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2lu X2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4 NTg4NTgKK1IKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQK KzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxp bmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiByaWdodGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+ CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hh bmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1ODg3MAorRGV2aWNlIEZlYXR1cmVzIGJpdHMg MDozMQorXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9j ZWxsPgorPC9yb3c+Cis8cm93PgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9 InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVn aW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2lu c2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1ODg3MworMzIKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xl bmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVy IiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9 Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQK KworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTg4NzYKK1IrVworXGNoYW5nZV91 bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxp Z25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9 InRydWUiIHJpZ2h0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0 CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0 NjM2NSAxMzIwODU4ODg1CitHdWVzdCBGZWF0dXJlcyBiaXRzIDA6MzEKK1xjaGFuZ2VfdW5jaGFu Z2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzwvcm93PgorPHJvdz4K KzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUi IGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJl Z2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEz MjA4NTg4ODkKKzMyCitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2lu c2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0 b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNl dCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQg MTk4NjI0NjM2NSAxMzIwODU4ODkxCitSK1cKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5 b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxp Z25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiByaWdodGxpbmU9InRy dWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBs YWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1ODkwNworUXVl dWUgQWRkcmVzcworXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNl dAorPC9jZWxsPgorPC9yb3c+Cis8cm93PgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGln bm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+ CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hh bmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1OTAwMQorMTYKK1xjaGFuZ2VfdW5jaGFuZ2Vk CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0i Y2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1 c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBM YXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTkwMDYKK1IKK1xjaGFu Z2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxs IGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRs aW5lPSJ0cnVlIiByaWdodGxpbmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQg VGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5 ODYyNDYzNjUgMTMyMDg1ODk1MworUXVldWUgU2l6ZQorXGNoYW5nZV91bmNoYW5nZWQKKworXGVu ZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPC9yb3c+Cis8cm93PgorPGNlbGwgYWxp Z25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9 InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0 IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1OTAxMgor MTYKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2Vs bD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRy dWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKwor XGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1 IDEzMjA4NTkwMDgKK1IrVworXGNoYW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVu ZF9pbnNldAorPC9jZWxsPgorPGNlbGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRv cCIgdG9wbGluZT0idHJ1ZSIgbGVmdGxpbmU9InRydWUiIHJpZ2h0bGluZT0idHJ1ZSIgdXNlYm94 PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0 CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU4OTU3CitRdWV1ZSBTZWxlY3QK K1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4K Kzwvcm93PgorPHJvdz4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3Ai IHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2lu c2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRl ZCAxOTg2MjQ2MzY1IDEzMjA4NTkwMTUKKzE2CitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xh eW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFs aWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25l Ij4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xl bmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVy IiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiByaWdodGxp bmU9InRydWUiIHVzZWJveD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5 b3V0IFBsYWluIExheW91dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1ODk2 NAorUmVzZXJ2ZWQKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5z ZXQKKzwvY2VsbD4KKzwvcm93PgorPHJvdz4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxp Z25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUi PgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNo YW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTkwMjkKKzgKK1xjaGFuZ2VfdW5jaGFuZ2Vk CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0i Y2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1 c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBM YXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTkwMzIKK1IrVworXGNo YW5nZV91bmNoYW5nZWQKKworXGVuZF9sYXlvdXQKKworXGVuZF9pbnNldAorPC9jZWxsPgorPGNl bGwgYWxpZ25tZW50PSJjZW50ZXIiIHZhbGlnbm1lbnQ9InRvcCIgdG9wbGluZT0idHJ1ZSIgbGVm dGxpbmU9InRydWUiIHJpZ2h0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNl dCBUZXh0CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQg MTk4NjI0NjM2NSAxMzIwODU4OTcyCitEZXZpY2UgU3RhdHVzCitcY2hhbmdlX3VuY2hhbmdlZAor CitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8L3Jvdz4KKzxyb3c+Cis8Y2Vs bCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0 bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0CisKK1xiZWdpbl9s YXlvdXQgUGxhaW4gTGF5b3V0CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU5 MDUyCis4CitcY2hhbmdlX3VuY2hhbmdlZAorCitcZW5kX2xheW91dAorCitcZW5kX2luc2V0Cis8 L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5l PSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgdXNlYm94PSJub25lIj4KK1xiZWdpbl9pbnNldCBUZXh0 CisKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5z ZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRv cGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiByaWdodGxpbmU9InRydWUiIHVzZWJveD0ibm9u ZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitc Y2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1ODk4OQorUmVzZXJ2ZWQKK1xjaGFuZ2Vf dW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CisKK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzwvcm93Pgor PHJvdz4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9 InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQK KworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2 MzY1IDEzMjA4NTkwNjMKKzE2CitcY2hhbmdlX3VuY2hhbmdlZAorCiBcZW5kX2xheW91dAogCi1c YmVnaW5fbGF5b3V0IFN0YW5kYXJkCi1UaGVyZSBtYXkgYmUgZGlmZmVyZW50IHdpZHRocyBvZiBh Y2Nlc3NlcyB0byB0aGUgSS9PIHJlZ2lvbjsgdGhlIAotXGJlZ2luX2luc2V0IFF1b3RlcyBlbGQK IFxlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50 PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJl Z2luX2luc2V0IFRleHQKIAotbmF0dXJhbAotXGJlZ2luX2luc2V0IFF1b3RlcyBlcmQKLVxlbmRf aW5zZXQKK1xiZWdpbl9sYXlvdXQgUGxhaW4gTGF5b3V0CiAKLSBhY2Nlc3MgbWV0aG9kIGZvciBl YWNoIGZpZWxkIGluIHRoZSB2aXJ0aW8gaGVhZGVyIG11c3QgYmUgdXNlZCAoaS5lLgotIDMyLWJp dCBhY2Nlc3NlcyBmb3IgMzItYml0IGZpZWxkcywgZXRjKSwgYnV0IHRoZSBkZXZpY2Utc3BlY2lm aWMgcmVnaW9uCi0gY2FuIGJlIGFjY2Vzc2VkIHVzaW5nIGFueSB3aWR0aCBhY2Nlc3NlcywgYW5k IHNob3VsZCBvYnRhaW4gdGhlIHNhbWUgcmVzdWx0cy4KLVxlbmRfbGF5b3V0CitcY2hhbmdlX2lu c2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1OTA2NQorUitXCitcY2hhbmdlX3VuY2hhbmdlZAogCi1c YmVnaW5fbGF5b3V0IFN0YW5kYXJkCi1Ob3RlIHRoYXQgdGhpcyBpcyBwb3NzaWJsZSBiZWNhdXNl IHdoaWxlIHRoZSB2aXJ0aW8gaGVhZGVyIGlzIFBDSSAoaS5lLgotIGxpdHRsZSkgZW5kaWFuLCB0 aGUgZGV2aWNlLXNwZWNpZmljIHJlZ2lvbiBpcyBlbmNvZGVkIGluIHRoZSBuYXRpdmUgZW5kaWFu Ci0gb2YgdGhlIGd1ZXN0ICh3aGVyZSBzdWNoIGRpc3RpbmN0aW9uIGlzIGFwcGxpY2FibGUpLgog XGVuZF9sYXlvdXQKIAotXGJlZ2luX2xheW91dCBTdWJzZWN0aW9uCi1EZXZpY2UgSW5pdGlhbGl6 YXRpb24gU2VxdWVuY2UKLVxiZWdpbl9pbnNldCBDb21tYW5kSW5zZXQgbGFiZWwKLUxhdGV4Q29t bWFuZCBsYWJlbAotbmFtZSAic3ViOkRldmljZS1Jbml0aWFsaXphdGlvbi1TZXF1ZW5jZSIKK1xl bmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0 b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiByaWdodGxpbmU9InRydWUiIHVzZWJv eD0ibm9uZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91 dAorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1OTA4MQorTVNJLVggQ29uZmln dXJhdGlvbiBWZWN0b3IKK1xjaGFuZ2VfdW5jaGFuZ2VkCisKK1xlbmRfbGF5b3V0CiAKIFxlbmRf aW5zZXQKKzwvY2VsbD4KKzwvcm93PgorPHJvdz4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2 YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5v bmUiPgorXGJlZ2luX2luc2V0IFRleHQKIAorXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKwor XGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTkwODMKKzE2CitcY2hhbmdlX3VuY2hh bmdlZAogCiBcZW5kX2xheW91dAogCi1cYmVnaW5fbGF5b3V0IFN0YW5kYXJkCi1XZSBzdGFydCB3 aXRoIGFuIG92ZXJ2aWV3IG9mIGRldmljZSBpbml0aWFsaXphdGlvbiwgdGhlbiBleHBhbmQgb24g dGhlIGRldGFpbHMKLSBvZiB0aGUgZGV2aWNlIGFuZCBob3cgZWFjaCBzdGVwIGlzIHByZWZvcm1l ZC4KK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25t ZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgor XGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5n ZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTkwODgKK1IrVworXGNoYW5nZV91bmNoYW5nZWQK KwogXGVuZF9sYXlvdXQKIAotXGJlZ2luX2xheW91dCBFbnVtZXJhdGUKLVJlc2V0IHRoZSBkZXZp Y2UuCi0gVGhpcyBpcyBub3QgcmVxdWlyZWQgb24gaW5pdGlhbCBzdGFydCB1cC4KK1xlbmRfaW5z ZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRv cGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiByaWdodGxpbmU9InRydWUiIHVzZWJveD0ibm9u ZSI+CitcYmVnaW5faW5zZXQgVGV4dAorCitcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAorCitc Y2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1OTA5NQorTVNJLVggUXVldWUgVmVjdG9y CitcY2hhbmdlX3VuY2hhbmdlZAorCiBcZW5kX2xheW91dAogCi1cYmVnaW5fbGF5b3V0IEVudW1l cmF0ZQotVGhlIEFDS05PV0xFREdFIHN0YXR1cyBiaXQgaXMgc2V0OiB3ZSBoYXZlIG5vdGljZWQg dGhlIGRldmljZS4KK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzwvcm93PgorPHJvdz4KKzxjZWxsIGFs aWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5l PSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91 dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTkxMDIK KzMyCitcY2hhbmdlX3VuY2hhbmdlZAorCiBcZW5kX2xheW91dAogCi1cYmVnaW5fbGF5b3V0IEVu dW1lcmF0ZQotVGhlIERSSVZFUiBzdGF0dXMgYml0IGlzIHNldDogd2Uga25vdyBob3cgdG8gZHJp dmUgdGhlIGRldmljZS4KK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2Vu dGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vi b3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlv dXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTkxMDYKK1IKK1xjaGFuZ2Vf dW5jaGFuZ2VkCisKIFxlbmRfbGF5b3V0CiAKLVxiZWdpbl9sYXlvdXQgRW51bWVyYXRlCi1EZXZp Y2Utc3BlY2lmaWMgc2V0dXAsIGluY2x1ZGluZyByZWFkaW5nIHRoZSBEZXZpY2UgRmVhdHVyZSBC aXRzLCBkaXNjb3ZlcnkKLSBvZiB2aXJ0cXVldWVzIGZvciB0aGUgZGV2aWNlLCBvcHRpb25hbCBN U0ktWCBzZXR1cCwgYW5kIHJlYWRpbmcgYW5kIHBvc3NpYmx5Ci0gd3JpdGluZyB0aGUgdmlydGlv IGNvbmZpZ3VyYXRpb24gc3BhY2UuCitcZW5kX2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1l bnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9wIiB0b3BsaW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1 ZSIgcmlnaHRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKwor XGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1 IDEzMjA4NTkxMTYKK0RldmljZSBGZWF0dXJlcyBiaXRzIDMyOjYzCitcY2hhbmdlX3VuY2hhbmdl ZAorCiBcZW5kX2xheW91dAogCi1cYmVnaW5fbGF5b3V0IEVudW1lcmF0ZQotVGhlIHN1YnNldCBv ZiBEZXZpY2UgRmVhdHVyZSBCaXRzIHVuZGVyc3Rvb2QgYnkgdGhlIGRyaXZlciBpcyB3cml0dGVu IHRvCi0gdGhlIGRldmljZS4KK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzwvcm93PgorPHJvdz4KKzxj ZWxsIGFsaWdubWVudD0iY2VudGVyIiB2YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGJv dHRvbWxpbmU9InRydWUiIGxlZnRsaW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2lu c2V0IFRleHQKKworXGJlZ2luX2xheW91dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRl ZCAxOTg2MjQ2MzY1IDEzMjA4NTkxMjIKKzMyCitcY2hhbmdlX3VuY2hhbmdlZAorCiBcZW5kX2xh eW91dAogCi1cYmVnaW5fbGF5b3V0IEVudW1lcmF0ZQotVGhlIERSSVZFUl9PSyBzdGF0dXMgYml0 IGlzIHNldC4KK1xlbmRfaW5zZXQKKzwvY2VsbD4KKzxjZWxsIGFsaWdubWVudD0iY2VudGVyIiB2 YWxpZ25tZW50PSJ0b3AiIHRvcGxpbmU9InRydWUiIGJvdHRvbWxpbmU9InRydWUiIGxlZnRsaW5l PSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKKworXGJlZ2luX2xheW91 dCBQbGFpbiBMYXlvdXQKKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4NTkxMTkK K1IrVworXGNoYW5nZV91bmNoYW5nZWQKKwogXGVuZF9sYXlvdXQKIAotXGJlZ2luX2xheW91dCBF bnVtZXJhdGUKLVRoZSBkZXZpY2UgY2FuIG5vdyBiZSB1c2VkIChpZS4KLSBidWZmZXJzIGFkZGVk IHRvIHRoZSB2aXJ0cXVldWVzKQotXGJlZ2luX2luc2V0IEZvb3QKLXN0YXR1cyBvcGVuCitcZW5k X2luc2V0Cis8L2NlbGw+Cis8Y2VsbCBhbGlnbm1lbnQ9ImNlbnRlciIgdmFsaWdubWVudD0idG9w IiB0b3BsaW5lPSJ0cnVlIiBib3R0b21saW5lPSJ0cnVlIiBsZWZ0bGluZT0idHJ1ZSIgcmlnaHRs aW5lPSJ0cnVlIiB1c2Vib3g9Im5vbmUiPgorXGJlZ2luX2luc2V0IFRleHQKIAogXGJlZ2luX2xh eW91dCBQbGFpbiBMYXlvdXQKLUhpc3RvcmljYWxseSwgZHJpdmVycyBoYXZlIHVzZWQgdGhlIGRl dmljZSBiZWZvcmUgc3RlcHMgNSBhbmQgNi4KLSBUaGlzIGlzIG9ubHkgYWxsb3dlZCBpZiB0aGUg ZHJpdmVyIGRvZXMgbm90IHVzZSBhbnkgZmVhdHVyZXMgd2hpY2ggd291bGQKLSBhbHRlciB0aGlz IGVhcmx5IHVzZSBvZiB0aGUgZGV2aWNlLgorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUg MTMyMDg1OTEzMAorR3Vlc3QgRmVhdHVyZXMgYml0cyAzMjo2MworXGNoYW5nZV91bmNoYW5nZWQK KwogXGVuZF9sYXlvdXQKIAogXGVuZF9pbnNldAorPC9jZWxsPgorPC9yb3c+Cis8L2x5eHRhYnVs YXI+CisKK1xlbmRfaW5zZXQKIAogCiBcZW5kX2xheW91dAogCi1cYmVnaW5fbGF5b3V0IFN0YW5k YXJkCi1JZiBhbnkgb2YgdGhlc2Ugc3RlcHMgZ28gaXJyZWNvdmVyYWJseSB3cm9uZywgdGhlIGd1 ZXN0IHNob3VsZCBzZXQgdGhlIEZBSUxFRAotIHN0YXR1cyBiaXQgdG8gaW5kaWNhdGUgdGhhdCBp dCBoYXMgZ2l2ZW4gdXAgb24gdGhlIGRldmljZSAoaXQgY2FuIHJlc2V0Ci0gdGhlIGRldmljZSBs YXRlciB0byByZXN0YXJ0IGlmIGRlc2lyZWQpLgorXGJlZ2luX2xheW91dCBTdWJzdWJzZWN0aW9u CisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU2MDA0CitMZWdhY3kgCitcY2hh bmdlX3VuY2hhbmdlZAorVmlydGlvIEhlYWRlcgogXGVuZF9sYXlvdXQKIAogXGJlZ2luX2xheW91 dCBTdGFuZGFyZAotV2Ugbm93IGNvdmVyIHRoZSBmaWVsZHMgcmVxdWlyZWQgZm9yIGdlbmVyYWwg c2V0dXAgaW4gZGV0YWlsLgotXGVuZF9sYXlvdXQKIAotXGJlZ2luX2xheW91dCBTdWJzZWN0aW9u Ci1WaXJ0aW8gSGVhZGVyCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg2NzQ4Mgor Rm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBkZXZpY2VzIHNob3VsZCBtaXJyb3IgdGhlIGlu aXRpYWwgcGFydCBvZiB2aXJ0aW8KKyBoZWFkZXIgYW5kIGRldmljZSBoZWFkZXIgc3RydWN0dXJl cywgUXVldWUgTm90aWZ5IGFuZCBJU1IgU3RhdHVzIHJlZ2lzdGVycworIGluIGxlZ2FjeSBjb25m aWd1cmF0aW9uIHNwYWNlIGluIHRoZSBmaXJzdCBJL08gcmVnaW9uIG9mIHRoZSBQQ0kgZGV2aWNl LgorIERyaXZlcnMgc2hvdWxkIGZhbGwgYmFjayBvbiB0aGlzIGxlZ2FjeSBzdHJ1Y3R1cmUgaWYg YSBzcGVjaWZpYyBWaXJ0aW8KKyBTdHJ1Y3R1cmUgY2FwYWJpbGl0eSBpcyBtaXNzaW5nIGluIHRo ZSBQQ0kgY2FwYWJpbGl0eSBsaXN0LgorIERyaXZlcnMgYXJlIGRpc2NvdXJhZ2VkIGZyb20gdXNp bmcgbGVnYWN5IHNwYWNlIGlmIGEgc3BlY2lmaWMgU3RydWN0dXJlCisgSUQgaXMgcHJlc2VudDsg dGhpcyBpcyB0byBhbGxvdyBkZXByZWNhdGluZyB0aGUgbGVnYWN5IHNwYWNlIGluIHRoZSBmdXR1 cmUuCiBcZW5kX2xheW91dAogCiBcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCi1UaGUgdmlydGlvIGhl YWRlciBsb29rcyBhcyBmb2xsb3dzOgorCitcY2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMy MDg1OTg0OAorRm9yIHJlZmVyZW5jZSwgdGhlCitcY2hhbmdlX2RlbGV0ZWQgMTk4NjI0NjM2NSAx MzIwODU2MDQ0CitUaGUKK1xjaGFuZ2VfdW5jaGFuZ2VkCisgCitcY2hhbmdlX2luc2VydGVkIDE5 ODYyNDYzNjUgMTMyMDg1OTg0OAorbGVnYWN5IAorXGNoYW5nZV91bmNoYW5nZWQKK3ZpcnRpbyBo ZWFkZXIgbG9va3MgYXMgZm9sbG93cworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4 NTk4NDgKKzsgb25lIG9ic2VydmVzIHRoYXQgbW9zdCByZWdpc3RlciBvZmZzZXRzIG1hdGNoIHRo ZSBuZXcgdmlydGlvIGhlYWRlciwgdG8KKyBtYWtlIGNvbXBhdGliaWxpdHkgZWFzaWVyCitcY2hh bmdlX3VuY2hhbmdlZAorOgogXGVuZF9sYXlvdXQKIAogXGJlZ2luX2xheW91dCBTdGFuZGFyZApA QCAtMTA2NywxMSArNDExMywxNSBAQCBTdGF0dXMKIElmIE1TSS1YIGlzIGVuYWJsZWQgZm9yIHRo ZSBkZXZpY2UsIHR3byBhZGRpdGlvbmFsIGZpZWxkcyBpbW1lZGlhdGVseSBmb2xsb3cKICB0aGlz IGhlYWRlcjoKIFxiZWdpbl9pbnNldCBGb290Ci1zdGF0dXMgY29sbGFwc2VkCitzdGF0dXMgb3Bl bgogCiBcYmVnaW5fbGF5b3V0IFBsYWluIExheW91dAogaWUuCi0gb25jZSB5b3UgZW5hYmxlIE1T SS1YIG9uIHRoZSBkZXZpY2UsIHRoZSBvdGhlciBmaWVsZHMgbW92ZS4KKyBvbmNlIHlvdSBlbmFi bGUgTVNJLVggb24gdGhlIGRldmljZSwgdGhlIG90aGVyIGZpZWxkcyAKK1xjaGFuZ2VfaW5zZXJ0 ZWQgMTk4NjI0NjM2NSAxMzIwODY3NTQwCitpbiBsZWdhY3kgY29uZmlndXJhdGlvbiAKK1xjaGFu Z2VfdW5jaGFuZ2VkCittb3ZlLgogIElmIHlvdSB0dXJuIGl0IG9mZiBhZ2FpbiwgdGhleSBtb3Zl IGJhY2shCiBcZW5kX2xheW91dAogCkBAIC0xMjE5LDExICs0MjY5LDE1IEBAIFZlY3RvcgogXGVu ZF9sYXlvdXQKIAogXGJlZ2luX2xheW91dCBTdGFuZGFyZAorCitcY2hhbmdlX2RlbGV0ZWQgMTk4 NjI0NjM2NSAxMzIwODY3NTYzCiBGaW5hbGx5LCBpZiBmZWF0dXJlIGJpdHMgKFZJUlRJT19GX0ZF QVRVUkVTX0hJKSB0aGlzIGlzIGltbWVkaWF0ZWx5IGZvbGxvd2VkCiAgYnkgdHdvIGFkZGl0aW9u YWwgZmllbGRzOgogXGVuZF9sYXlvdXQKIAogXGJlZ2luX2xheW91dCBTdGFuZGFyZAorCitcY2hh bmdlX2RlbGV0ZWQgMTk4NjI0NjM2NSAxMzIwODY3NTYzCiBcYmVnaW5faW5zZXQgVGFidWxhcgog PGx5eHRhYnVsYXIgdmVyc2lvbj0iMyIgcm93cz0iNCIgY29sdW1ucz0iMyI+CiA8ZmVhdHVyZXMg dGFidWxhcnZhbGlnbm1lbnQ9Im1pZGRsZSI+CkBAIC0xMzU5LDExICs0NDEzLDE2IEBAIEZlYXR1 cmVzIGJpdHMgMzI6NjMKIFxlbmRfaW5zZXQKIAogCitcY2hhbmdlX3VuY2hhbmdlZAorCiBcZW5k X2xheW91dAogCiBcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCi1JbW1lZGlhdGVseSBmb2xsb3dpbmcg dGhlc2UgZ2VuZXJhbCBoZWFkZXJzLCB0aGVyZSBtYXkgYmUgZGV2aWNlLXNwZWNpZmljCi0gaGVh ZGVyczoKK0ltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aGVzZSBnZW5lcmFsIGhlYWRlcnMsIHRoZXJl IG1heSBiZSAKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODU2MzQ3CitsZWdhY3kg CitcY2hhbmdlX3VuY2hhbmdlZAorZGV2aWNlLXNwZWNpZmljIGhlYWRlcnM6CiBcZW5kX2xheW91 dAogCiBcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCkBAIC0xNDU5LDYgKzQ1MTgsMTcgQEAgRGV2aWNl IFNwZWNpZmljLi4uCiBcZW5kX2luc2V0CiAKIAorXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1 IDEzMjA4NTYxMDgKKworXGVuZF9sYXlvdXQKKworXGJlZ2luX2xheW91dCBTdGFuZGFyZAorCitc Y2hhbmdlX2luc2VydGVkIDE5ODYyNDYzNjUgMTMyMDg1NjEwOQorTGVnYWN5IGRldmljZS1zcGVj aWZpYyBoZWFkZXJzIGFyZSBzdXBwb3J0ZWQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5Lgor IEFzIHN1Y2gsIHRoZXkgYXJlIG5vdCByZXF1aXJlZCB0byBtYXAgdGhlIHdob2xlIGRldmljZSBj b25maWd1cmF0aW9uIHN0cnVjdHVyZQorIC0gb25seSB0aGUgaW5pdGlhbCBzZWdtZW50IGV4cGVj dGVkIGJ5IGxlZ2FjeSBkcml2ZXJzIG5lZWRzIHRvIGJlIG1hcHBlZC4KKyBUaGUgc2l6ZSBvZiBz dWNoIGxlZ2FjeSBzZWdtZW50IHNpemUgaXMgZGV2aWNlIHNwZWNpZmljLgogXGVuZF9sYXlvdXQK IAogXGJlZ2luX2xheW91dCBTdWJzdWJzZWN0aW9uCkBAIC0xNTMxLDggKzQ2MDEsMTAgQEAgbmFt ZSAic3ViOkZlYXR1cmUtQml0cyIKIFRoZSBsZWFzdCBzaWduaWZpY2FudCAzMSBiaXRzIG9mIHRo ZSBmaXJzdCBjb25maWd1cmF0aW9uIGZpZWxkIGluZGljYXRlcwogIHRoZSBmZWF0dXJlcyB0aGF0 IHRoZSBkZXZpY2Ugc3VwcG9ydHMgKHRoZSBoaWdoIGJpdCBpcyByZXNlcnZlZCwgYW5kIHdpbGwK ICBiZSB1c2VkIHRvIGluZGljYXRlIHRoZSBwcmVzZW5jZSBvZiBmdXR1cmUgZmVhdHVyZSBiaXRz IGVsc2V3aGVyZSkuCi0gSWYgbW9yZSB0aGFuIDMxIGZlYXR1cmUgYml0cyBhcmUgc3VwcG9ydGVk LCB0aGUgZGV2aWNlIGluZGljYXRlcyBzbyBieQotIHNldHRpbmcgZmVhdHVyZSBiaXQgMzEgKHNl ZSAKKyAKK1xjaGFuZ2VfZGVsZXRlZCAxOTg2MjQ2MzY1IDEzMjA3ODQ5MjkKK0lmIG1vcmUgdGhh biAzMSBmZWF0dXJlIGJpdHMgYXJlIHN1cHBvcnRlZCwgdGhlIGRldmljZSBpbmRpY2F0ZXMgc28g Ynkgc2V0dGluZworIGZlYXR1cmUgYml0IDMxIChzZWUgCiBcYmVnaW5faW5zZXQgQ29tbWFuZElu c2V0IHJlZgogTGF0ZXhDb21tYW5kIHJlZgogcmVmZXJlbmNlICJjaGE6UmVzZXJ2ZWQtRmVhdHVy ZS1CaXRzIgpAQCAtMTU0MCw3ICs0NjEyLDkgQEAgcmVmZXJlbmNlICJjaGE6UmVzZXJ2ZWQtRmVh dHVyZS1CaXRzIgogXGVuZF9pbnNldAogCiApLgotIFRoZSBiaXRzIGFyZSBhbGxvY2F0ZWQgYXMg Zm9sbG93czoKKyAKK1xjaGFuZ2VfdW5jaGFuZ2VkCitUaGUgYml0cyBhcmUgYWxsb2NhdGVkIGFz IGZvbGxvd3M6CiBcZW5kX2xheW91dAogCiBcYmVnaW5fbGF5b3V0IERlc2NyaXB0aW9uCkBAIC0x NjE1LDEwICs0Njg5LDE0IEBAIFRoaXMgYWxsb3dzIGZvciBmb3J3YXJkcyBhbmQgYmFja3dhcmRz IGNvbXBhdGliaWxpdHk6IGlmIHRoZSBkZXZpY2UgaXMgZW5oYW5jZWQKIFxlbmRfbGF5b3V0CiAK IFxiZWdpbl9sYXlvdXQgU3RhbmRhcmQKKworXGNoYW5nZV9kZWxldGVkIDE5ODYyNDYzNjUgMTMy MDc4NDk0MAogQWNjZXNzIHRvIGZlYXR1cmUgYml0cyAzMiB0byA2MyBpcyBlbmFibGVkIGJ5IEd1 ZXN0IGJ5IHNldHRpbmcgZmVhdHVyZSBiaXQKICAzMS4KICBJZiB0aGlzIGJpdCBpcyB1bnNldCwg RGV2aWNlIG11c3QgYXNzdW1lIHRoYXQgYWxsIGZlYXR1cmUgYml0cyA+IDMxIGFyZQogIHVuc2V0 LgorXGNoYW5nZV91bmNoYW5nZWQKKwogXGVuZF9sYXlvdXQKIAogXGJlZ2luX2xheW91dCBTdWJz dWJzZWN0aW9uCkBAIC0xNjI5LDEwICs0NzA3LDE0IEBAIENvbmZpZ3VyYXRpb24vUXVldWUgVmVj dG9ycwogV2hlbiBNU0ktWCBjYXBhYmlsaXR5IGlzIHByZXNlbnQgYW5kIGVuYWJsZWQgaW4gdGhl IGRldmljZSAodGhyb3VnaCBzdGFuZGFyZAogIFBDSSBjb25maWd1cmF0aW9uIHNwYWNlKSA0IGJ5 dGVzIGF0IGJ5dGUgb2Zmc2V0IDIwIGFyZSB1c2VkIHRvIG1hcCBjb25maWd1cmF0aW8KIG4gY2hh bmdlIGFuZCBxdWV1ZSBpbnRlcnJ1cHRzIHRvIE1TSS1YIHZlY3RvcnMuCi0gSW4gdGhpcyBjYXNl LCB0aGUgSVNSIFN0YXR1cyBmaWVsZCBpcyB1bnVzZWQsIGFuZCBkZXZpY2Ugc3BlY2lmaWMgY29u ZmlndXJhdGlvbgotIHN0YXJ0cyBhdCBieXRlIG9mZnNldCAyNCBpbiB2aXJ0aW8gaGVhZGVyIHN0 cnVjdHVyZS4KKyBJbiB0aGlzIGNhc2UsIHRoZSBJU1IgU3RhdHVzIGZpZWxkIGlzIHVudXNlZAor XGNoYW5nZV9kZWxldGVkIDE5ODYyNDYzNjUgMTMyMDc4NDk4MQorLCBhbmQgZGV2aWNlIHNwZWNp ZmljIGNvbmZpZ3VyYXRpb24gc3RhcnRzIGF0IGJ5dGUgb2Zmc2V0IDI0IGluIHZpcnRpbyBoZWFk ZXIKKyBzdHJ1Y3R1cmUuCiAgV2hlbiBNU0ktWCBjYXBhYmlsaXR5IGlzIG5vdCBlbmFibGVkLCBk ZXZpY2Ugc3BlY2lmaWMgY29uZmlndXJhdGlvbiBzdGFydHMKLSBhdCBieXRlIG9mZnNldCAyMCBp biB2aXJ0aW8gaGVhZGVyLgorIGF0IGJ5dGUgb2Zmc2V0IDIwIGluIHZpcnRpbyBoZWFkZXIKK1xj aGFuZ2VfdW5jaGFuZ2VkCisuCiBcZW5kX2xheW91dAogCiBcYmVnaW5fbGF5b3V0IFN0YW5kYXJk CkBAIC0zODI5LDcgKzY5MTEsMTMgQEAgQXBwZW5kaXggQjogUmVzZXJ2ZWQgRmVhdHVyZSBCaXRz CiBcZW5kX2xheW91dAogCiBcYmVnaW5fbGF5b3V0IFN0YW5kYXJkCi1DdXJyZW50bHkgdGhlcmUg YXJlIGZpdmUgZGV2aWNlLWluZGVwZW5kZW50IGZlYXR1cmUgYml0cyBkZWZpbmVkOgorQ3VycmVu dGx5IHRoZXJlIGFyZSAKK1xjaGFuZ2VfZGVsZXRlZCAxOTg2MjQ2MzY1IDEzMjA4NjczNjYKK2Zp dmUKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODY3MzY3Citmb3VyCitcY2hhbmdl X3VuY2hhbmdlZAorIGRldmljZS1pbmRlcGVuZGVudCBmZWF0dXJlIGJpdHMgZGVmaW5lZDoKIFxl bmRfbGF5b3V0CiAKIFxiZWdpbl9sYXlvdXQgRGVzY3JpcHRpb24KQEAgLTM5MjYsOSArNzAxNCwx MyBAQCBBbiBleHBlcmltZW50YWwgdmlydGlvIFBDSSBkcml2ZXIgY29udGFpbmVkIGluIExpbnV4 IHZlcnNpb24gMi42LjI1IGhhZCB0aGlzCiBcZW5kX2xheW91dAogCiBcYmVnaW5fbGF5b3V0IERl c2NyaXB0aW9uCisKK1xjaGFuZ2VfZGVsZXRlZCAxOTg2MjQ2MzY1IDEzMjA4NjczNzAKIFZJUlRJ T19GX0ZFQVRVUkVTX0hJR0goMzEpIFRoaXMgZmVhdHVyZSBpbmRpY2F0ZXMgdGhhdCB0aGUgZGV2 aWNlIHN1cHBvcnRzCiAgZmVhdHVyZSBiaXRzIDMyOjYzLgogIElmIHVuc2V0LCBmZWF0dXJlIGJp dHMgMzI6NjMgYXJlIHVuc2V0LgorXGNoYW5nZV91bmNoYW5nZWQKKwogXGVuZF9sYXlvdXQKIAog XGJlZ2luX2xheW91dCBDaGFwdGVyKgpAQCAtNDE4Niw2ICs3Mjc4LDI0IEBAIHN0cnVjdCB2aXJ0 aW9fbmV0X2NvbmZpZyB7CiAKIFxlbmRfbGF5b3V0CiAKK1xiZWdpbl9sYXlvdXQgRGVzY3JpcHRp b24KKworXGNoYW5nZV9pbnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4Njc3NDMKK0RldmljZQorXGJl Z2luX2luc2V0IHNwYWNlIH4KK1xlbmRfaW5zZXQKKworbGVnYWN5CitcYmVnaW5faW5zZXQgc3Bh Y2UgfgorXGVuZF9pbnNldAorCitjb25maWd1cmF0aW9uCitcYmVnaW5faW5zZXQgc3BhY2Ugfgor XGVuZF9pbnNldAorCitzaXplIGZvciB0aGlzIGRldmljZSBpcyA4IGJ5dGVzLgorXGVuZF9sYXlv dXQKKwogXGJlZ2luX2xheW91dCBTZWN0aW9uKgogRGV2aWNlIEluaXRpYWxpemF0aW9uCiBcZW5k X2xheW91dApAQCAtNTIyNiw2ICs4MzM2LDI0IEBAIHN0cnVjdCB2aXJ0aW9fYmxrX2NvbmZpZyB7 CiAKIFxlbmRfbGF5b3V0CiAKK1xiZWdpbl9sYXlvdXQgRGVzY3JpcHRpb24KKworXGNoYW5nZV9p bnNlcnRlZCAxOTg2MjQ2MzY1IDEzMjA4Njc3NzkKK0RldmljZQorXGJlZ2luX2luc2V0IHNwYWNl IH4KK1xlbmRfaW5zZXQKKworbGVnYWN5CitcYmVnaW5faW5zZXQgc3BhY2UgfgorXGVuZF9pbnNl dAorCitjb25maWd1cmF0aW9uCitcYmVnaW5faW5zZXQgc3BhY2UgfgorXGVuZF9pbnNldAorCitz aXplIGZvciB0aGlzIGRldmljZSBpcyAzMiBieXRlcy4KK1xlbmRfbGF5b3V0CisKIFxiZWdpbl9s YXlvdXQgU2VjdGlvbioKIERldmljZSBJbml0aWFsaXphdGlvbgogXGVuZF9sYXlvdXQKQEAgLTU3 ODAsNiArODkwOCwyNCBAQCBzdHJ1Y3QgdmlydGlvX2NvbnNvbGVfY29uZmlnIHsKIAogXGVuZF9s YXlvdXQKIAorXGJlZ2luX2xheW91dCBEZXNjcmlwdGlvbgorCitcY2hhbmdlX2luc2VydGVkIDE5 ODYyNDYzNjUgMTMyMDg2NzgwNgorRGV2aWNlCitcYmVnaW5faW5zZXQgc3BhY2UgfgorXGVuZF9p bnNldAorCitsZWdhY3kKK1xiZWdpbl9pbnNldCBzcGFjZSB+CitcZW5kX2luc2V0CisKK2NvbmZp Z3VyYXRpb24KK1xiZWdpbl9pbnNldCBzcGFjZSB+CitcZW5kX2luc2V0CisKK3NpemUgZm9yIHRo aXMgZGV2aWNlIGlzIDggYnl0ZXMuCitcZW5kX2xheW91dAorCiBcYmVnaW5fbGF5b3V0IFNlY3Rp b24qCiBEZXZpY2UgSW5pdGlhbGl6YXRpb24KIFxlbmRfbGF5b3V0CkBAIC01OTk0LDYgKzkxNDAs MjggQEAgY29uZmlndXJhdGlvbgogXGVuZF9pbnNldAogCiBsYXlvdXQgTm9uZSBjdXJyZW50bHkg ZGVmaW5lZC4KK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODY3ODQwCisKK1xlbmRf bGF5b3V0CisKK1xiZWdpbl9sYXlvdXQgRGVzY3JpcHRpb24KKworXGNoYW5nZV9pbnNlcnRlZCAx OTg2MjQ2MzY1IDEzMjA4Njc4NDUKK0RldmljZQorXGJlZ2luX2luc2V0IHNwYWNlIH4KK1xlbmRf aW5zZXQKKworbGVnYWN5CitcYmVnaW5faW5zZXQgc3BhY2UgfgorXGVuZF9pbnNldAorCitjb25m aWd1cmF0aW9uCitcYmVnaW5faW5zZXQgc3BhY2UgfgorXGVuZF9pbnNldAorCitzaXplIGZvciB0 aGlzIGRldmljZSBpcyAwIGJ5dGVzLgorXGNoYW5nZV91bmNoYW5nZWQKKwogXGVuZF9sYXlvdXQK IAogXGJlZ2luX2xheW91dCBTZWN0aW9uKgpAQCAtNjEyNyw2ICs5Mjk1LDI0IEBAIHN0cnVjdCB2 aXJ0aW9fYmFsbG9vbl9jb25maWcgewogCiBcZW5kX2xheW91dAogCitcYmVnaW5fbGF5b3V0IERl c2NyaXB0aW9uCisKK1xjaGFuZ2VfaW5zZXJ0ZWQgMTk4NjI0NjM2NSAxMzIwODY3ODY1CitEZXZp Y2UKK1xiZWdpbl9pbnNldCBzcGFjZSB+CitcZW5kX2luc2V0CisKK2xlZ2FjeQorXGJlZ2luX2lu c2V0IHNwYWNlIH4KK1xlbmRfaW5zZXQKKworY29uZmlndXJhdGlvbgorXGJlZ2luX2luc2V0IHNw YWNlIH4KK1xlbmRfaW5zZXQKKworc2l6ZSBmb3IgdGhpcyBkZXZpY2UgaXMgNCBieXRlcy4KK1xl bmRfbGF5b3V0CisKIFxiZWdpbl9sYXlvdXQgU2VjdGlvbioKIERldmljZSBJbml0aWFsaXphdGlv bgogXGVuZF9sYXlvdXQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KVmlydHVhbGl6YXRpb24gbWFpbGluZyBsaXN0ClZpcnR1YWxpemF0aW9uQGxpc3RzLmxp bnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWls bWFuL2xpc3RpbmZvL3ZpcnR1YWxpemF0aW9u From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934330Ab1KJMYl (ORCPT ); Thu, 10 Nov 2011 07:24:41 -0500 Received: from mx1.redhat.com ([209.132.183.28]:46144 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757163Ab1KJMYj (ORCPT ); Thu, 10 Nov 2011 07:24:39 -0500 Date: Thu, 10 Nov 2011 14:24:37 +0200 From: "Michael S. Tsirkin" To: Rusty Russell Cc: Sasha Levin , lkml - Kernel Mailing List , Alexey Kardashevskiy , Amit Shah , Christian Borntraeger , Krishna Kumar , Pawel Moll , Wang Sheng-Hui , virtualization@lists.linux-foundation.org, kvm@vger.kernel.org, avi@redhat.com, penberg@kernel.org Subject: [PATCHv3 RFC] virtio-spec: flexible configuration layout Message-ID: <20111110122436.GA13144@redhat.com> References: <87wrbkvh3v.fsf@rustcorp.com.au> <20111101114542.GA13434@redhat.com> <1320150813.3847.24.camel@lappy> <20111101124223.GA14060@redhat.com> <8739e7uy87.fsf@rustcorp.com.au> <20111102233110.GA20289@redhat.com> <20111108214021.GA4538@redhat.com> <20111109195901.GA28155@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20111109195901.GA28155@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Another update. I'll get to testing the linux guest patch now, next version should hopefully be a non-RFC one, and be accompanied by guest driver, assuming driver works fine. Alignment negotiation is still TBD, it's easy to add but I'd like to get agreement on the general approach first. One drawback is that for device config header, we can't reuse same memory for both legacy and new - this is because the legacy offset changes dynamically, and I'd like to avoid doing that with the new one. This should not be a problem as device header can go into MMIO which is not as space constrained as PIO. Changes from v2: - Clarify that 'first region' is BAR0. - Clarify that devices should provide all capabilities (fallback is for compatibility). - Remove a left-over mention of bit 31 use. - Correct virtio header size. Changes from v1: - add an example configuration - scale tables so they fit within page - clean up some remaining items mentioning feature bit 31 Description from v1: Here's a spec change documenting what my C patch does (almost - I tweaked the layout a bit, but the idea is the same). Some more cleanups are needed but I thought I'd send it for early flames/comments. The idea is simple: we split functionally unrelated register groups to independent structures, and let the device place is anywhere using a capability in PCI configuration space. It can then go into MMIO space which is cheaper than PIO. A legacy portion of the configuration is mirrored in the first BAR, to keep legacy drivers working. Any new fields can be added in existing structures at the end, so they won't affect legacy. Alternatively we can add new structures with new structure IDs, pointed to from PCI configuration space. As we don't yet have devices or drivers with 64 bit features, I decided we don't need high feature bits in legacy space. This also frees up feature bit 31 as we don't need it to enable high feature bits anymore. I don't think any released software actually uses it (the kvm tool HEAD apparently does, but I think it's not too late to fix it). As this solves the dynamic placement of MSIX vectors and high feature bits, I thought it's easier to just reserve space for that programming than give it a separate structure. This can be changed by a patch on top. Note that data path is split from configuration. PDF will follow. Please comment. Signed-off-by: Michael S. Tsirkin --- diff --git a/virtio-spec.lyx b/virtio-spec.lyx index 6426f8f..36ac61f 100644 --- a/virtio-spec.lyx +++ b/virtio-spec.lyx @@ -3,6 +3,9 @@ \begin_document \begin_header \textclass report +\begin_preamble +\usepackage{graphicx} +\end_preamble \use_default_options false \maintain_unincluded_children false \language english @@ -56,6 +59,7 @@ \html_math_output 0 \html_css_as_file 0 \html_be_strict false +\author 1986246365 "Michael S. Tsirkin" \end_header \begin_body @@ -570,7 +574,34 @@ Device Configuration \end_layout \begin_layout Standard -To configure the device, we use the first I/O region of the PCI device. +To configure the device, we +\change_inserted 1986246365 1320783354 +use I/O and/or memory regions of the PCI device. + These contain the virtio header registers, the notification register, the + ISR status register and device specific registers, as specified by Virtio + Structure PCI Capabilities +\begin_inset Foot +status open + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320920233 +For backwards compatibility, devices should present part of these configuration + registers in a legacy configuration structure in BAR0 in the first I/O + region of the PCI device +\change_unchanged + +\end_layout + +\end_inset + +. +\end_layout + +\begin_layout Standard + +\change_deleted 1986246365 1320766512 +use the first I/O region of the PCI device. This contains a \emph on virtio header @@ -578,105 +609,3120 @@ virtio header followed by a \emph on device-specific region. +\change_unchanged + +\end_layout + +\begin_layout Standard +There may be different widths of accesses to the I/O region; the +\begin_inset Quotes eld +\end_inset + +natural +\begin_inset Quotes erd +\end_inset + + access method for each field in the virtio header must be used (i.e. + 32-bit accesses for 32-bit fields, etc), but the device-specific region + can be accessed using any width accesses, and should obtain the same results. +\end_layout + +\begin_layout Standard +Note that this is possible because while the virtio header +\change_inserted 1986246365 1320767249 +, notification and ISR status are +\change_deleted 1986246365 1320767251 + is +\change_unchanged + PCI (i.e. + little) endian, the device-specific +\change_deleted 1986246365 1320767335 + region is +\change_inserted 1986246365 1320767337 +registers are +\change_unchanged + encoded in the native endian of the guest (where such distinction is applicable +). +\change_inserted 1986246365 1320767660 + +\end_layout + +\begin_layout Subsection +Device Initialization Sequence +\begin_inset CommandInset label +LatexCommand label +name "sub:Device-Initialization-Sequence" + +\end_inset + + +\end_layout + +\begin_layout Standard +We start with an overview of device initialization, then expand on the details + of the device and how each step is preformed. +\end_layout + +\begin_layout Enumerate +Reset the device. + This is not required on initial start up. +\change_inserted 1986246365 1320918056 + +\end_layout + +\begin_layout Enumerate + +\change_inserted 1986246365 1320918057 +PCI capability list scan, detecting virtio configuration layout using Virtio + Structure PCI capabilities. + +\begin_inset Foot +status open + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320918057 +Historically drivers skipped this step, using legacy configuration space + unconditionally. +\end_layout + +\end_inset + + +\change_unchanged + +\end_layout + +\begin_layout Enumerate +The ACKNOWLEDGE status bit is set: we have noticed the device. +\end_layout + +\begin_layout Enumerate +The DRIVER status bit is set: we know how to drive the device. +\end_layout + +\begin_layout Enumerate +Device-specific setup, including reading the Device Feature Bits, discovery + of virtqueues for the device, optional MSI-X setup, and reading and possibly + writing the virtio configuration space. +\end_layout + +\begin_layout Enumerate +The subset of Device Feature Bits understood by the driver is written to + the device. +\end_layout + +\begin_layout Enumerate +The DRIVER_OK status bit is set. +\end_layout + +\begin_layout Enumerate +The device can now be used (ie. + buffers added to the virtqueues) +\begin_inset Foot +status open + +\begin_layout Plain Layout +Historically, drivers have used the device before steps 5 and 6. + This is only allowed if the driver does not use any features which would + alter this early use of the device. +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +If any of these steps go irrecoverably wrong, the guest should set the FAILED + status bit to indicate that it has given up on the device (it can reset + the device later to restart if desired). +\end_layout + +\begin_layout Standard +We now cover the fields required for general setup in detail. +\change_inserted 1986246365 1320766663 + +\end_layout + +\begin_layout Subsection + +\change_inserted 1986246365 1320781584 +Virtio Structure PCI Capability +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320781061 +Virtio configuration layout includes virtio configuration header, notification + and ISR status and device configuration structures. + Each structure is mapped by a Base Address register (BAR) belonging to + the function, located beginning at 10h in Configuration Space. + +\emph on +Structure ID +\emph default +indentifies the structure +\emph on +, Size +\emph default + indicates the structure size, in bytes, a +\emph on +BAR Indicator register (BIR) +\emph default + indicates which BAR, and +\emph on +Offset +\emph default + indicates where the structure begins relative to the base address associated + with the BAR. + The BAR is permitted to be either 32-bit or 64-bit, it can map Memory Space + or I/O Space. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320838522 +These registers are specified using vendor-specific PCI capability located + on capability list in PCI configuration space of the device. + This virtio structure capability uses little-endian format; all bits are + read-only: +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +resizebox{ +\backslash +textwidth}{!}{% +\end_layout + +\end_inset + + +\change_inserted 1986246365 1320839073 + +\begin_inset Tabular + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771774 + +\size tiny +Bit +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771777 + +\size tiny +31 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771779 + +\size tiny +30 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771781 + +\size tiny +29 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771783 + +\size tiny +28 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771786 + +\size tiny +27 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771810 + +\size tiny +26 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771813 + +\size tiny +25 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771815 + +\size tiny +24 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771817 + +\size tiny +23 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771819 + +\size tiny +22 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771821 + +\size tiny +21 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771823 + +\size tiny +20 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771825 + +\size tiny +19 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771829 + +\size tiny +18 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771831 + +\size tiny +17 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771833 + +\size tiny +16 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771835 + +\size tiny +15 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771840 + +\size tiny +14 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771841 + +\size tiny +13 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771843 + +\size tiny +12 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771845 + +\size tiny +11 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771847 + +\size tiny +10 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771850 + +\size tiny +9 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771852 + +\size tiny +8 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771854 + +\size tiny +7 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771856 + +\size tiny +6 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771858 + +\size tiny +5 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771859 + +\size tiny +4 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771861 + +\size tiny +3 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771862 + +\size tiny +2 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771864 + +\size tiny +1 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771888 + +\size tiny +0 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320771997 + +\size tiny +Offset +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320781029 + +\size larger +Structure ID +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320850302 + +\size larger +CapLength = 12 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320850298 + +\size larger +NextCapPtr +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320850289 + +\size larger +CapID = 9 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320772004 +0 +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320772549 + +\size larger +Size +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320850408 + +\size larger +BIR +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320772007 +4 +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320772540 + +\size larger +Offset +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320772011 +8 +\end_layout + +\end_inset + + + + +\end_inset + + +\change_unchanged + +\begin_inset ERT +status open + +\begin_layout Plain Layout + +} +\end_layout + +\end_inset + + +\change_inserted 1986246365 1320839073 + +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320838992 +Purpose: +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320780912 + +\emph on +Capability ID +\emph default +, +\emph on +Next Capability Pointer +\emph default +, +\emph on +Capability Length +\emph default + - these fields are specified by PCI local bus specification, Rev 3.0 +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320785073 + +\emph on +Structure ID +\emph default + - identifies the structure mapped. + If an ID representing a specific structure is absent, the structure is + located in the legacy virtio configuration in the first PCI BAR. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320782689 + +\emph on +Size +\emph default + - size of the structure mapped. + This size might include padding, or fields unused by the driver. + Drivers are also recommended to only map part of configuration structure + large enough for device operation. + For example, a future device might present a large structure size of several + MBytes. + As current devices never utilize structures larger than 4KBytes in size, + driver can limit the mapped structure size to e.g. + 4KBytes to allow forward compatibility with such devices without loss of + functionality and without wasting resources. +\change_unchanged + +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320839833 + +\emph on +BIR - BAR Indicator Register +\emph default + - Indicates which one of the BAR registers, located beginning at 10h in + Configuration Space, is used to map the structure into Memory or I/O Space. + Legal values are 0 - 5. + BAR offset is calculated as +\emph on +BAR +\emph default + = 10h + 4 * +\emph on +BIR. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320781002 + +\emph on +Offset +\emph default + - Used as an offset from the address contained by one of the function’s + Base Address registers to point to the base of the structure. + Depending on the structure, the lower bits are masked off (set to zero) + by software to form an aligned offset. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320785098 +A single device has multiple virtio capabilities on the PCI capability linked-li +st. + To locate a specific register, driver scans the PCI capability list looking + for capabilities using the vendor specific +\emph on +Capability ID +\emph default +, that is +\emph on +Capability ID +\emph default + value +\emph on +9 +\emph default +, according to the PCI spec. + For each capability, it verifies that the +\emph on +Capability Length +\emph default + field matches the expected value (12) - if it doesn't, this indicates a + layout change, which causes driver to ignore the specific PCI capability + and proceed to the next PCI capability in the list. + Next, +\emph on + Structure ID +\emph default + single-byte field is read at offset 3. + Unrecognized +\emph on +Structure ID +\emph default + values are ignored. + Low bits in the +\emph on +Offset +\emph default + register are masked to match alignment requirements, if any. + Device drivers are recommended to sanity check +\emph on +BIR +\emph default +, +\emph on +Offset +\emph default +, and +\emph on +Size +\emph default + fields, ignoring the capability or failing gracefully on error. + Drivers are also recommended to only map part of configuration structure + large enough for device operation. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320920511 +For backwards compatibility, devices should also present legacy configuration + space in BAR0 in the first I/O region of the PCI device, mirroring virtio + configuration structures in this space. + For forwards compatibility, drivers should fall back on this legacy structure + if a specific Virtio Structure capability is missing in the PCI capability + list. + However, devices are not required to map the whole configuration structure + in legacy space - only the initial segment expected by legacy drivers needs + to be mapped. + Devices are further required to implement all Structure IDs for the structures + they present, as opposed to relying on driver legacy fallback. + The minimal size of such legacy segment size, for each structure, is listed + below. + Drivers are discouraged from using legacy space if a specific Structure + ID is present; this is to allow deprecating the legacy space in the future. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320850770 +Below is the list of supported Virtio structures, including Structure ID, + offset alignment, and where it can be located in the legacy configuration + space. + Note that legacy space layout changes as the MSI-X capability is enabled + and disabled +\begin_inset Foot +status open + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320856794 +ie. + once you enable MSI-X on the device, some legacy fields move. + If you turn it off again, they move back! this does not affect the new + configuration +\end_layout + +\end_inset + +. + Alignment, offset and all sizes are in bytes. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320786868 +\begin_inset Tabular + + + + + + + + + + +\begin_inset Text + +\begin_layout Plain Layout +Structure +\change_inserted 1986246365 1320855560 + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +ID +\change_inserted 1986246365 1320855560 + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Align- +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320855560 +MinSize +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320785821 +Offset in +\change_deleted 1986246365 1320785817 + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320850780 +MinSize in +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320855625 +ment +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320855593 +legacy space +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320855610 + legacy space +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320785855 +Virtio Header +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320785860 +0x1 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786157 +4 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320918196 +32 bytes +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786145 +0 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320855180 +24 or 20 +\begin_inset Foot +status open + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320855511 +\begin_inset CommandInset label +LatexCommand label +name "fn:24-or-20" + +\end_inset + +24 bytes if MSI-X is enabled, 20 bytes if it is disabled +\change_unchanged + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786188 +Queue Notify +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786191 +0x2 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786267 +2 bytes +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786228 +2 bytes +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786505 +16 bytes +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786303 +2 +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786878 +ISR Status +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786260 +0x3 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786270 +1 byte +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786273 +1 byte +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786534 +19 bytes +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786306 +1 +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786847 +Device Header +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786474 +0x4 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320786477 +1 byte +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320918121 +... +\begin_inset Foot +status open + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320855417 +\begin_inset CommandInset label +LatexCommand label +name "fn:Device-specific" + +\end_inset + +Device specific +\change_unchanged + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320855534 +24 or 20 +\begin_inset Formula $^{\text{\ref{fn:24-or-20}}}$ +\end_inset + + +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320918125 +... +\begin_inset Formula $^{\text{\ref{fn:Device-specific}}}$ +\end_inset + + +\change_unchanged + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320786973 +Drivers should assume that each structure size can be extended in the future. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320859762 +Queue Notify and ISR status are single-field registers. + Device Header has device specific structure. + Virtio Header structure is documented below. +\end_layout + +\begin_layout Subsubsection + +\change_inserted 1986246365 1320867253 +Example Virtio Structure Layout +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320865758 +Let's assume that a virtio block device presents two Virtio Structure capabiliti +es in PCI capability list: +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320863392 +Structure ID 0x1; BIR 1; Offset 0x1000; Size 0x100 +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320863399 +Structure ID 0x4; BIR 1; Offset 0x1100; Size 0x200 +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320863479 +Let's further assume that MSI-X is disabled. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320863498 +In this case, the driver should use: +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320863543 +Virtio Header at offset 0x1000 in BAR 1 +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320863568 +Device Header at offset 0x1100 in BAR1 +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320868074 +Queue Notify at offset 0x10 in BAR0 (legacy configuration space is used + since Structure ID is not present) +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320868077 +ISR status at offset 0x13 in BAR0 (legacy configuration space is used since + Structure ID is not present) +\change_unchanged + +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320867162 +For use by legacy drivers, the first 20 bytes in BAR0 mirror bytes 0x1000 + to 0x1013 in BAR1, and the following 32 bytes in BAR0 should mirror bytes + 0x1100 to 111F in BAR1. +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320867231 +Enabling MSI-X only affects the legacy drivers: with MSI-X enabled, the + first 24 bytes in BAR0 mirror bytes 0x1000 to 0x1017 in BAR1, and the following + 32 bytes in BAR0 should mirror bytes 0x1100 to 111F in BAR1. +\change_unchanged + +\end_layout + +\begin_layout Subsection + +\change_inserted 1986246365 1320855988 +Virtio Header +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320858571 +The virtio header looks as follows: +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320858597 +\begin_inset Tabular + + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858603 +Bits +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858614 +R/W +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858619 +Purpose +\change_unchanged + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858841 +32 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858858 +R +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858870 +Device Features bits 0:31 +\change_unchanged + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858873 +32 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858876 +R+W +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858885 +Guest Features bits 0:31 +\change_unchanged + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858889 +32 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858891 +R+W +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858907 +Queue Address +\change_unchanged + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859001 +16 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859006 +R +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858953 +Queue Size +\change_unchanged + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859012 +16 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859008 +R+W +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858957 +Queue Select +\change_unchanged + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859015 +16 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858964 +Reserved +\change_unchanged + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859029 +8 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859032 +R+W +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858972 +Device Status +\change_unchanged + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859052 +8 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320858989 +Reserved +\change_unchanged + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859063 +16 +\change_unchanged + \end_layout -\begin_layout Standard -There may be different widths of accesses to the I/O region; the -\begin_inset Quotes eld \end_inset + + +\begin_inset Text -natural -\begin_inset Quotes erd -\end_inset +\begin_layout Plain Layout - access method for each field in the virtio header must be used (i.e. - 32-bit accesses for 32-bit fields, etc), but the device-specific region - can be accessed using any width accesses, and should obtain the same results. -\end_layout +\change_inserted 1986246365 1320859065 +R+W +\change_unchanged -\begin_layout Standard -Note that this is possible because while the virtio header is PCI (i.e. - little) endian, the device-specific region is encoded in the native endian - of the guest (where such distinction is applicable). \end_layout -\begin_layout Subsection -Device Initialization Sequence -\begin_inset CommandInset label -LatexCommand label -name "sub:Device-Initialization-Sequence" +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859081 +MSI-X Configuration Vector +\change_unchanged + +\end_layout \end_inset + + + + +\begin_inset Text +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859083 +16 +\change_unchanged \end_layout -\begin_layout Standard -We start with an overview of device initialization, then expand on the details - of the device and how each step is preformed. +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859088 +R+W +\change_unchanged + \end_layout -\begin_layout Enumerate -Reset the device. - This is not required on initial start up. +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859095 +MSI-X Queue Vector +\change_unchanged + \end_layout -\begin_layout Enumerate -The ACKNOWLEDGE status bit is set: we have noticed the device. +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859102 +32 +\change_unchanged + \end_layout -\begin_layout Enumerate -The DRIVER status bit is set: we know how to drive the device. +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859106 +R +\change_unchanged + \end_layout -\begin_layout Enumerate -Device-specific setup, including reading the Device Feature Bits, discovery - of virtqueues for the device, optional MSI-X setup, and reading and possibly - writing the virtio configuration space. +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859116 +Device Features bits 32:63 +\change_unchanged + \end_layout -\begin_layout Enumerate -The subset of Device Feature Bits understood by the driver is written to - the device. +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859122 +32 +\change_unchanged + \end_layout -\begin_layout Enumerate -The DRIVER_OK status bit is set. +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1320859119 +R+W +\change_unchanged + \end_layout -\begin_layout Enumerate -The device can now be used (ie. - buffers added to the virtqueues) -\begin_inset Foot -status open +\end_inset + + +\begin_inset Text \begin_layout Plain Layout -Historically, drivers have used the device before steps 5 and 6. - This is only allowed if the driver does not use any features which would - alter this early use of the device. + +\change_inserted 1986246365 1320859130 +Guest Features bits 32:63 +\change_unchanged + \end_layout \end_inset + + + + +\end_inset \end_layout -\begin_layout Standard -If any of these steps go irrecoverably wrong, the guest should set the FAILED - status bit to indicate that it has given up on the device (it can reset - the device later to restart if desired). +\begin_layout Subsubsection + +\change_inserted 1986246365 1320856004 +Legacy +\change_unchanged +Virtio Header \end_layout \begin_layout Standard -We now cover the fields required for general setup in detail. -\end_layout -\begin_layout Subsection -Virtio Header +\change_inserted 1986246365 1320867482 +For backwards compatibility, devices should mirror the initial part of virtio + header and device header structures, Queue Notify and ISR Status registers + in legacy configuration space in the first I/O region of the PCI device. + Drivers should fall back on this legacy structure if a specific Virtio + Structure capability is missing in the PCI capability list. + Drivers are discouraged from using legacy space if a specific Structure + ID is present; this is to allow deprecating the legacy space in the future. \end_layout \begin_layout Standard -The virtio header looks as follows: + +\change_inserted 1986246365 1320859848 +For reference, the +\change_deleted 1986246365 1320856044 +The +\change_unchanged + +\change_inserted 1986246365 1320859848 +legacy +\change_unchanged +virtio header looks as follows +\change_inserted 1986246365 1320859848 +; one observes that most register offsets match the new virtio header, to + make compatibility easier +\change_unchanged +: \end_layout \begin_layout Standard @@ -1067,11 +4113,15 @@ Status If MSI-X is enabled for the device, two additional fields immediately follow this header: \begin_inset Foot -status collapsed +status open \begin_layout Plain Layout ie. - once you enable MSI-X on the device, the other fields move. + once you enable MSI-X on the device, the other fields +\change_inserted 1986246365 1320867540 +in legacy configuration +\change_unchanged +move. If you turn it off again, they move back! \end_layout @@ -1219,11 +4269,15 @@ Vector \end_layout \begin_layout Standard + +\change_deleted 1986246365 1320867563 Finally, if feature bits (VIRTIO_F_FEATURES_HI) this is immediately followed by two additional fields: \end_layout \begin_layout Standard + +\change_deleted 1986246365 1320867563 \begin_inset Tabular @@ -1359,11 +4413,16 @@ Features bits 32:63 \end_inset +\change_unchanged + \end_layout \begin_layout Standard -Immediately following these general headers, there may be device-specific - headers: +Immediately following these general headers, there may be +\change_inserted 1986246365 1320856347 +legacy +\change_unchanged +device-specific headers: \end_layout \begin_layout Standard @@ -1459,6 +4518,17 @@ Device Specific... \end_inset +\change_inserted 1986246365 1320856108 + +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1320856109 +Legacy device-specific headers are supported for backwards compatibility. + As such, they are not required to map the whole device configuration structure + - only the initial segment expected by legacy drivers needs to be mapped. + The size of such legacy segment size is device specific. \end_layout \begin_layout Subsubsection @@ -1531,8 +4601,10 @@ name "sub:Feature-Bits" The least significant 31 bits of the first configuration field indicates the features that the device supports (the high bit is reserved, and will be used to indicate the presence of future feature bits elsewhere). - If more than 31 feature bits are supported, the device indicates so by - setting feature bit 31 (see + +\change_deleted 1986246365 1320784929 +If more than 31 feature bits are supported, the device indicates so by setting + feature bit 31 (see \begin_inset CommandInset ref LatexCommand ref reference "cha:Reserved-Feature-Bits" @@ -1540,7 +4612,9 @@ reference "cha:Reserved-Feature-Bits" \end_inset ). - The bits are allocated as follows: + +\change_unchanged +The bits are allocated as follows: \end_layout \begin_layout Description @@ -1615,10 +4689,14 @@ This allows for forwards and backwards compatibility: if the device is enhanced \end_layout \begin_layout Standard + +\change_deleted 1986246365 1320784940 Access to feature bits 32 to 63 is enabled by Guest by setting feature bit 31. If this bit is unset, Device must assume that all feature bits > 31 are unset. +\change_unchanged + \end_layout \begin_layout Subsubsection @@ -1629,10 +4707,14 @@ Configuration/Queue Vectors When MSI-X capability is present and enabled in the device (through standard PCI configuration space) 4 bytes at byte offset 20 are used to map configuratio n change and queue interrupts to MSI-X vectors. - In this case, the ISR Status field is unused, and device specific configuration - starts at byte offset 24 in virtio header structure. + In this case, the ISR Status field is unused +\change_deleted 1986246365 1320784981 +, and device specific configuration starts at byte offset 24 in virtio header + structure. When MSI-X capability is not enabled, device specific configuration starts - at byte offset 20 in virtio header. + at byte offset 20 in virtio header +\change_unchanged +. \end_layout \begin_layout Standard @@ -3829,7 +6911,13 @@ Appendix B: Reserved Feature Bits \end_layout \begin_layout Standard -Currently there are five device-independent feature bits defined: +Currently there are +\change_deleted 1986246365 1320867366 +five +\change_inserted 1986246365 1320867367 +four +\change_unchanged + device-independent feature bits defined: \end_layout \begin_layout Description @@ -3926,9 +7014,13 @@ An experimental virtio PCI driver contained in Linux version 2.6.25 had this \end_layout \begin_layout Description + +\change_deleted 1986246365 1320867370 VIRTIO_F_FEATURES_HIGH(31) This feature indicates that the device supports feature bits 32:63. If unset, feature bits 32:63 are unset. +\change_unchanged + \end_layout \begin_layout Chapter* @@ -4186,6 +7278,24 @@ struct virtio_net_config { \end_layout +\begin_layout Description + +\change_inserted 1986246365 1320867743 +Device +\begin_inset space ~ +\end_inset + +legacy +\begin_inset space ~ +\end_inset + +configuration +\begin_inset space ~ +\end_inset + +size for this device is 8 bytes. +\end_layout + \begin_layout Section* Device Initialization \end_layout @@ -5226,6 +8336,24 @@ struct virtio_blk_config { \end_layout +\begin_layout Description + +\change_inserted 1986246365 1320867779 +Device +\begin_inset space ~ +\end_inset + +legacy +\begin_inset space ~ +\end_inset + +configuration +\begin_inset space ~ +\end_inset + +size for this device is 32 bytes. +\end_layout + \begin_layout Section* Device Initialization \end_layout @@ -5780,6 +8908,24 @@ struct virtio_console_config { \end_layout +\begin_layout Description + +\change_inserted 1986246365 1320867806 +Device +\begin_inset space ~ +\end_inset + +legacy +\begin_inset space ~ +\end_inset + +configuration +\begin_inset space ~ +\end_inset + +size for this device is 8 bytes. +\end_layout + \begin_layout Section* Device Initialization \end_layout @@ -5994,6 +9140,28 @@ configuration \end_inset layout None currently defined. +\change_inserted 1986246365 1320867840 + +\end_layout + +\begin_layout Description + +\change_inserted 1986246365 1320867845 +Device +\begin_inset space ~ +\end_inset + +legacy +\begin_inset space ~ +\end_inset + +configuration +\begin_inset space ~ +\end_inset + +size for this device is 0 bytes. +\change_unchanged + \end_layout \begin_layout Section* @@ -6127,6 +9295,24 @@ struct virtio_balloon_config { \end_layout +\begin_layout Description + +\change_inserted 1986246365 1320867865 +Device +\begin_inset space ~ +\end_inset + +legacy +\begin_inset space ~ +\end_inset + +configuration +\begin_inset space ~ +\end_inset + +size for this device is 4 bytes. +\end_layout + \begin_layout Section* Device Initialization \end_layout