From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel De Graaf Subject: [PATCH 01/15] flask/policy: split into modules Date: Thu, 9 Jun 2016 10:47:04 -0400 Message-ID: <1465483638-9489-2-git-send-email-dgdegra@tycho.nsa.gov> References: <1465483638-9489-1-git-send-email-dgdegra@tycho.nsa.gov> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1465483638-9489-1-git-send-email-dgdegra@tycho.nsa.gov> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Daniel De Graaf List-Id: xen-devel@lists.xenproject.org VGhpcyBtYWtlcyBpdCBlYXNpZXIgdG8gZW5hYmxlIG9yIGRpc2FibGUgcGFydHMgb2YgdGhlIFhT TSBwb2xpY3kuCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgRGUgR3JhYWYgPGRnZGVncmFAdHljaG8u bnNhLmdvdj4KLS0tCiB0b29scy9mbGFzay9wb2xpY3kvTWFrZWZpbGUgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyMiArLQogdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvZG9tMC50ZSAgICAg ICAgICAgICAgICAgfCAgNzQgKysrKysrCiB0b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9kb21V LnRlICAgICAgICAgICAgICAgICB8ICAyNSArKwogdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMv Z3Vlc3RfZmVhdHVyZXMudGUgICAgICAgfCAgMzEgKysrCiB0b29scy9mbGFzay9wb2xpY3kvbW9k dWxlcy9pc29sYXRlZF9kb21VLnRlICAgICAgICB8ICAgNyArCiB0b29scy9mbGFzay9wb2xpY3kv bW9kdWxlcy9tb2R1bGVzLmNvbmYgICAgICAgICAgICB8ICAzNCArKysKIHRvb2xzL2ZsYXNrL3Bv bGljeS9tb2R1bGVzL25pY19kZXYudGUgICAgICAgICAgICAgIHwgIDE0ICsrCiB0b29scy9mbGFz ay9wb2xpY3kvbW9kdWxlcy9ub21pZ3JhdGUudGUgICAgICAgICAgICB8ICAgOCArCiB0b29scy9m bGFzay9wb2xpY3kvbW9kdWxlcy9wcm90X2RvbVUudGUgICAgICAgICAgICB8ICAxMyArCiAuLi4v cG9saWN5L3twb2xpY3kvbW9kdWxlcy94ZW4gPT4gbW9kdWxlc30veGVuLmlmICB8ICAgMAogdG9v bHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLnRlICAgICAgICAgICAgICAgICAgfCAgODkgKysr KysrKwogdG9vbHMvZmxhc2svcG9saWN5L3BvbGljeS9tb2R1bGVzLmNvbmYgICAgICAgICAgICAg fCAgMTUgLS0KIHRvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy94ZW4veGVuLnRlICAg ICAgIHwgMjcyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMTMgZmlsZXMgY2hhbmdlZCwgMzAyIGlu c2VydGlvbnMoKyksIDMwMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9m bGFzay9wb2xpY3kvbW9kdWxlcy9kb20wLnRlCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvZmxh c2svcG9saWN5L21vZHVsZXMvZG9tVS50ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2ZsYXNr L3BvbGljeS9tb2R1bGVzL2d1ZXN0X2ZlYXR1cmVzLnRlCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9v bHMvZmxhc2svcG9saWN5L21vZHVsZXMvaXNvbGF0ZWRfZG9tVS50ZQogY3JlYXRlIG1vZGUgMTAw NjQ0IHRvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL21vZHVsZXMuY29uZgogY3JlYXRlIG1vZGUg MTAwNjQ0IHRvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL25pY19kZXYudGUKIGNyZWF0ZSBtb2Rl IDEwMDY0NCB0b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9ub21pZ3JhdGUudGUKIGNyZWF0ZSBt b2RlIDEwMDY0NCB0b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9wcm90X2RvbVUudGUKIHJlbmFt ZSB0b29scy9mbGFzay9wb2xpY3kve3BvbGljeS9tb2R1bGVzL3hlbiA9PiBtb2R1bGVzfS94ZW4u aWYgKDEwMCUpCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMv eGVuLnRlCiBkZWxldGUgbW9kZSAxMDA2NDQgdG9vbHMvZmxhc2svcG9saWN5L3BvbGljeS9tb2R1 bGVzLmNvbmYKIGRlbGV0ZSBtb2RlIDEwMDY0NCB0b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21v ZHVsZXMveGVuL3hlbi50ZQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9NYWtlZmls ZSBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9NYWtlZmlsZQppbmRleCA0YmU5MjFjLi5iMmMyZDA2IDEw MDY0NAotLS0gYS90b29scy9mbGFzay9wb2xpY3kvTWFrZWZpbGUKKysrIGIvdG9vbHMvZmxhc2sv cG9saWN5L01ha2VmaWxlCkBAIC0zNyw3ICszNyw3IEBAIFBPTElDWV9WRVJfTElTVF9IViA9IDI0 IDMwCiAKICMgcG9saWN5IHNvdXJjZSBsYXlvdXQKIFBPTERJUiA6PSBwb2xpY3kKLU1PRERJUiA6 PSAkKFBPTERJUikvbW9kdWxlcworTU9ERElSIDo9IG1vZHVsZXMKIAogIyBDbGFzc2VzIGFuZCBh Y2Nlc3MgdmVjdG9ycyBkZWZpbmVkIGluIHRoZSBoeXBlcnZpc29yLiBDaGFuZ2VzIHRvIHRoZXNl IHJlcXVpcmUKICMgYSByZWNvbXBpbGUgb2YgYm90aCB0aGUgaHlwZXJ2aXNvciBhbmQgc2VjdXJp dHkgcG9saWN5LgpAQCAtNjAsNyArNjAsNyBAQCBERVZfT0NPTlMgOj0gJChQT0xESVIpL2Rldmlj ZV9jb250ZXh0cwogCiAjIGNvbmZpZyBmaWxlIHBhdGhzCiBHTE9CQUxUVU4gOj0gJChQT0xESVIp L2dsb2JhbF90dW5hYmxlcwotTU9EX0NPTkYgOj0gJChQT0xESVIpL21vZHVsZXMuY29uZgorTU9E X0NPTkYgOj0gJChNT0RESVIpL21vZHVsZXMuY29uZgogCiAjIGNoZWNrcG9saWN5IGNhbiB1c2Ug dGhlICNsaW5lIGRpcmVjdGl2ZXMgcHJvdmlkZWQgYnkgLXMgZm9yIGVycm9yIHJlcG9ydGluZzoK IE00UEFSQU0gOj0gLUQgc2VsZl9jb250YWluZWRfcG9saWN5IC1zCkBAIC04NCwyMiArODQsMTQg QEAgZW5kaWYKIE00UEFSQU0gKz0gLUQgbWxzX251bV9zZW5zPSQoTUxTX1NFTlMpIC1EIG1sc19u dW1fY2F0cz0kKE1MU19DQVRTKQogCiAKLSMgRmluZCBtb2R1bGVzCi1BTExfTEFZRVJTIDo9ICQo ZmlsdGVyLW91dCAkKE1PRERJUikvQ1ZTLCQoc2hlbGwgZmluZCAkKHdpbGRjYXJkICQoTU9ERElS KS8qKSAtbWF4ZGVwdGggMCAtdHlwZSBkKSkKLQotIyBzb3J0IGhlcmUgc2luY2UgaXQgcmVtb3Zl cyBkdXBsaWNhdGVzLCB3aGljaCBjYW4gaGFwcGVuCi0jIHdoZW4gYSBnZW5lcmF0ZWQgZmlsZSBp cyBhbHJlYWR5IGdlbmVyYXRlZAotREVURUNURURfTU9EUyA6PSAkKHNvcnQgJChmb3JlYWNoIGRp ciwkKEFMTF9MQVlFUlMpLCQod2lsZGNhcmQgJChkaXIpLyoudGUpKSkKLQogIyBtb2R1bGVzLmNv bmYgc2V0dGluZyBmb3IgcG9saWN5IGNvbmZpZ3VyYXRpb24KIE1PREVOQUJMRUQgOj0gb24KIAog IyBleHRyYWN0IHNldHRpbmdzIGZyb20gbW9kdWxlcy5jb25mCi1FTkFCTEVEX01PRFMgOj0gJChm b3JlYWNoIG1vZCwkKHNoZWxsIGF3ayAnL15bIFx0XSpbYS16XS97IGlmICgkJDMgPT0gIiQoTU9E RU5BQkxFRCkiKSBwcmludCAkJDEgfScgJChNT0RfQ09ORikgMj4gL2Rldi9udWxsKSwkKHN1YnN0 IC4vLCwkKHNoZWxsIGZpbmQgLWluYW1lICQobW9kKS50ZSkpKQotCi1BTExfTU9EVUxFUyA6PSAk KGZpbHRlciAkKEVOQUJMRURfTU9EUyksJChERVRFQ1RFRF9NT0RTKSkKK0VOQUJMRURfTElTVCA6 PSAkKHNoZWxsIGF3ayAnL15bIFx0XSpbYS16XS97IGlmICgkJDMgPT0gIiQoTU9ERU5BQkxFRCki KSBwcmludCAkJDEgfScgJChNT0RfQ09ORikgMj4gL2Rldi9udWxsKQogCi1BTExfSU5URVJGQUNF UyA6PSAkKEFMTF9NT0RVTEVTOi50ZT0uaWYpCitBTExfTU9EVUxFUyA6PSAkKGZvcmVhY2ggbW9k LCQoRU5BQkxFRF9MSVNUKSwkKE1PRERJUikvJChtb2QpLnRlKQorQUxMX0lOVEVSRkFDRVMgOj0g JCh3aWxkY2FyZCAkKEFMTF9NT0RVTEVTOi50ZT0uaWYpKQogCiAjIFRoZSBvcmRlciBvZiB0aGVz ZSBmaWxlcyBpcyBpbXBvcnRhbnQKIFBPTElDWV9TRUNUSU9OUyA6PSAkKFNFQ0NMQVNTKSAkKElT SURfREVDTFMpICQoQVZTKQpAQCAtMTE4LDggKzExMCw4IEBAIGluc3RhbGw6ICQoUE9MSUNZX0ZJ TEVOQU1FKQogJChQT0xJQ1lfRklMRU5BTUUpOiBwb2xpY3kuY29uZgogCSQoQ0hFQ0tQT0xJQ1kp ICQoQ0hFQ0tQT0xJQ1lfUEFSQU0pICReIC1vICRACiAKLXBvbGljeS5jb25mOiAkKFBPTElDWV9T RUNUSU9OUykKLQkkKE00KSAkKE00UEFSQU0pICReID4gJEAKK3BvbGljeS5jb25mOiAkKFBPTElD WV9TRUNUSU9OUykgJChNT0RfQ09ORikKKwkkKE00KSAkKE00UEFSQU0pICQoUE9MSUNZX1NFQ1RJ T05TKSA+ICRACiAKIGNsZWFuOgogCSQoUk0pIHRtcCBwb2xpY3kuY29uZiAkKFBPTElDWV9GSUxF TkFNRSkKZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2RvbTAudGUgYi90 b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9kb20wLnRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmVmNmE5ODYKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9mbGFzay9wb2xp Y3kvbW9kdWxlcy9kb20wLnRlCkBAIC0wLDAgKzEsNzQgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisjCisjIEFsbG93IGRvbTAgYWNjZXNzIHRvIGFsbCBzeXNjdGxzLCBkZXZpY2VzLCBhbmQg dGhlIHNlY3VyaXR5IHNlcnZlci4KKyMKKyMgV2hpbGUgdGhpcyBjb3VsZCBiZSB3cml0dGVuIG1v cmUgYnJpZWZseSB1c2luZyB3aWxkY2FyZHMsIHRoZSBwZXJtaXNzaW9ucyBhcmUKKyMgbGlzdGVk IG91dCB0byBtYWtlIHJlbW92aW5nIHNwZWNpZmljIHBlcm1pc3Npb25zIHNpbXBsZXIuCisjCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworYWxsb3cgZG9tMF90IHhlbl90OnhlbiB7CisJc2V0dGlt ZSB0YnVmY29udHJvbCByZWFkY29uc29sZSBjbGVhcmNvbnNvbGUgcGVyZmNvbnRyb2wgbXRycl9h ZGQKKwltdHJyX2RlbCBtdHJyX3JlYWQgbWljcm9jb2RlIHBoeXNpbmZvIHF1aXJrIHdyaXRlY29u c29sZSByZWFkYXBpYworCXdyaXRlYXBpYyBwcml2cHJvZmlsZSBub25wcml2cHJvZmlsZSBrZXhl YyBmaXJtd2FyZSBzbGVlcCBmcmVxdWVuY3kKKwlnZXRpZGxlIGRlYnVnIGdldGNwdWluZm8gaGVh cCBwbV9vcCBtY2Ffb3AgbG9ja3Byb2YgY3B1cG9vbF9vcCB0bWVtX29wCisJdG1lbV9jb250cm9s IGdldHNjaGVkdWxlciBzZXRzY2hlZHVsZXIKK307CithbGxvdyBkb20wX3QgeGVuX3Q6eGVuMiB7 CisJcmVzb3VyY2Vfb3AgcHNyX2NtdF9vcCBwc3JfY2F0X29wIHBtdV9jdHJsIGdldF9zeW1ib2wK KwlnZXRfY3B1X2xldmVsbGluZ19jYXBzIGdldF9jcHVfZmVhdHVyZXNldCBsaXZlcGF0Y2hfb3AK K307CisKKyMgQWxsb3cgZG9tMCB0byB1c2UgYWxsIFhFTlZFUl8gc3Vib3BzIHRoYXQgaGF2ZSBj aGVja3MuCisjIE5vdGUgdGhhdCBkb20wIGlzIHBhcnQgb2YgZG9tYWluX3R5cGUgc28gdGhpcyBo YXMgZHVwbGljYXRlcy4KK2FsbG93IGRvbTBfdCB4ZW5fdDp2ZXJzaW9uIHsKKwl4ZW5fZXh0cmF2 ZXJzaW9uIHhlbl9jb21waWxlX2luZm8geGVuX2NhcGFiaWxpdGllcworCXhlbl9jaGFuZ2VzZXQg eGVuX3BhZ2VzaXplIHhlbl9ndWVzdF9oYW5kbGUgeGVuX2NvbW1hbmRsaW5lCisJeGVuX2J1aWxk X2lkCit9OworCithbGxvdyBkb20wX3QgeGVuX3Q6bW11IG1lbW9yeW1hcDsKKworIyBBbGxvdyBk b20wIHRvIHVzZSB0aGVzZSBkb21jdGxzIG9uIGl0c2VsZi4gRm9yIGRvbWN0bHMgYWN0aW5nIG9u IG90aGVyCisjIGRvbWFpbnMsIHNlZSB0aGUgZGVmaW5pdGlvbnMgb2YgY3JlYXRlX2RvbWFpbiBh bmQgbWFuYWdlX2RvbWFpbi4KK2FsbG93IGRvbTBfdCBkb20wX3Q6ZG9tYWluIHsKKwlzZXR2Y3B1 Y29udGV4dCBtYXhfdmNwdXMgc2V0YWZmaW5pdHkgZ2V0YWZmaW5pdHkgZ2V0c2NoZWR1bGVyCisJ Z2V0ZG9tYWluaW5mbyBnZXR2Y3B1aW5mbyBnZXR2Y3B1Y29udGV4dCBzZXRkb21haW5tYXhtZW0g c2V0ZG9tYWluaGFuZGxlCisJc2V0ZGVidWdnaW5nIGh5cGVyY2FsbCBzZXR0aW1lIHNldGFkZHJz aXplIGdldGFkZHJzaXplIHRyaWdnZXIKKwlnZXRleHR2Y3B1Y29udGV4dCBzZXRleHR2Y3B1Y29u dGV4dCBnZXR2Y3B1ZXh0c3RhdGUgc2V0dmNwdWV4dHN0YXRlCisJZ2V0cG9kdGFyZ2V0IHNldHBv ZHRhcmdldCBzZXRfbWlzY19pbmZvIHNldF92aXJxX2hhbmRsZXIKK307CithbGxvdyBkb20wX3Qg ZG9tMF90OmRvbWFpbjIgeworCXNldF9jcHVpZCBnZXR0c2Mgc2V0dHNjIHNldHNjaGVkdWxlciBz ZXRfbWF4X2V2dGNobiBzZXRfdm51bWFpbmZvCisJZ2V0X3ZudW1haW5mbyBwc3JfY210X29wIHBz cl9jYXRfb3AKK307CithbGxvdyBkb20wX3QgZG9tMF90OnJlc291cmNlIHsgYWRkIHJlbW92ZSB9 OworCisjIFRoZXNlIHBlcm1pc3Npb25zIGFsbG93IHVzaW5nIHRoZSBGTEFTSyBzZWN1cml0eSBz ZXJ2ZXIgdG8gY29tcHV0ZSBhY2Nlc3MKKyMgY2hlY2tzIGxvY2FsbHksIHdoaWNoIGNvdWxkIGJl IHVzZWQgYnkgYSBkb21haW4gb3Igc2VydmljZSAoc3VjaCBhcyB4ZW5zdG9yZSkKKyMgdGhhdCBk b2VzIG5vdCBoYXZlIGl0cyBvd24gc2VjdXJpdHkgc2VydmVyIHRvIG1ha2UgYWNjZXNzIGRlY2lz aW9ucyBiYXNlZCBvbgorIyBYZW4ncyBzZWN1cml0eSBwb2xpY3kuCithbGxvdyBkb20wX3Qgc2Vj dXJpdHlfdDpzZWN1cml0eSB7CisJY29tcHV0ZV9hdiBjb21wdXRlX2NyZWF0ZSBjb21wdXRlX21l bWJlciBjb21wdXRlX3JlbGFiZWwgY29tcHV0ZV91c2VyCit9OworCisjIEFsbG93IHN0cmluZy9T SUQgY29udmVyc2lvbnMgKGZvciAieGwgbGlzdCAtWiIgYW5kIHNpbWlsYXIpCithbGxvdyBkb20w X3Qgc2VjdXJpdHlfdDpzZWN1cml0eSBjaGVja19jb250ZXh0OworCisjIEFsbG93IGZsYXNrLWxh YmVsLXBjaSB0byBhZGQgYW5kIGNoYW5nZSBsYWJlbHMKK2FsbG93IGRvbTBfdCBzZWN1cml0eV90 OnNlY3VyaXR5IHsgYWRkX29jb250ZXh0IGRlbF9vY29udGV4dCB9OworCisjIEFsbG93IHBlcmZv cm1hbmNlIHBhcmFtZXRlcnMgb2YgdGhlIHNlY3VyaXR5IHNlcnZlciB0byBiZSB0d2Vha2VkCith bGxvdyBkb20wX3Qgc2VjdXJpdHlfdDpzZWN1cml0eSBzZXRzZWNwYXJhbTsKKworIyBBbGxvdyBj aGFuZ2luZyB0aGUgc2VjdXJpdHkgcG9saWN5CithbGxvdyBkb20wX3Qgc2VjdXJpdHlfdDpzZWN1 cml0eSB7IGxvYWRfcG9saWN5IHNldGVuZm9yY2Ugc2V0Ym9vbCB9OworCisjIEF1ZGl0IHBvbGlj eSBjaGFuZ2UgZXZlbnRzIGV2ZW4gd2hlbiB0aGV5IGFyZSBhbGxvd2VkCithdWRpdGFsbG93IGRv bTBfdCBzZWN1cml0eV90OnNlY3VyaXR5IHsgbG9hZF9wb2xpY3kgc2V0ZW5mb3JjZSBzZXRib29s IH07CisKK2FkbWluX2RldmljZShkb20wX3QsIGRldmljZV90KQorYWRtaW5fZGV2aWNlKGRvbTBf dCwgaXJxX3QpCithZG1pbl9kZXZpY2UoZG9tMF90LCBpb3BvcnRfdCkKK2FkbWluX2RldmljZShk b20wX3QsIGlvbWVtX3QpCisKK2RvbWFpbl9jb21tcyhkb20wX3QsIGRvbTBfdCkKZGlmZiAtLWdp dCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2RvbVUudGUgYi90b29scy9mbGFzay9wb2xp Y3kvbW9kdWxlcy9kb21VLnRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNh NWVlY2QKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9kb21V LnRlCkBAIC0wLDAgKzEsMjUgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgRG9tYWlu IGNyZWF0aW9uCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2RlY2xhcmVfZG9tYWluKGRv bVVfdCkKK2RvbWFpbl9zZWxmX2NvbW1zKGRvbVVfdCkKK2NyZWF0ZV9kb21haW4oZG9tMF90LCBk b21VX3QpCittYW5hZ2VfZG9tYWluKGRvbTBfdCwgZG9tVV90KQorZG9tYWluX2NvbW1zKGRvbTBf dCwgZG9tVV90KQorZG9tYWluX2NvbW1zKGRvbVVfdCwgZG9tVV90KQorbWlncmF0ZV9kb21haW5f b3V0KGRvbTBfdCwgZG9tVV90KQorZG9tYWluX3NlbGZfY29tbXMoZG9tVV90KQorCisjIERldmlj ZSBtb2RlbCBmb3IgZG9tVV90LiAgWW91IGNhbiBkZWZpbmUgZGlzdGluY3QgdHlwZXMgZm9yIGRl dmljZSBtb2RlbHMgZm9yCisjIGRvbWFpbnMgb2Ygb3RoZXIgdHlwZXMsIG9yIGFkZCBtb3JlIG1h a2VfZGV2aWNlX21vZGVsIGxpbmVzIGZvciB0aGlzIHR5cGUuCitkZWNsYXJlX2RvbWFpbihkbV9k b21fdCkKK2NyZWF0ZV9kb21haW4oZG9tMF90LCBkbV9kb21fdCkKK21hbmFnZV9kb21haW4oZG9t MF90LCBkbV9kb21fdCkKK2RvbWFpbl9jb21tcyhkb20wX3QsIGRtX2RvbV90KQorbWFrZV9kZXZp Y2VfbW9kZWwoZG9tMF90LCBkbV9kb21fdCwgZG9tVV90KQorCisjIFRoaXMgaXMgcmVxdWlyZWQg Zm9yIFBDSSAob3Igb3RoZXIgZGV2aWNlKSBwYXNzdGhyb3VnaAorZGVsZWdhdGVfZGV2aWNlcyhk b20wX3QsIGRvbVVfdCkKZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2d1 ZXN0X2ZlYXR1cmVzLnRlIGIvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvZ3Vlc3RfZmVhdHVy ZXMudGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFjOTc4MAotLS0gL2Rl di9udWxsCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2d1ZXN0X2ZlYXR1cmVzLnRl CkBAIC0wLDAgKzEsMzEgQEAKKyMgQWxsb3cgYWxsIGRvbWFpbnMgdG8gdXNlICh1bnByaXZpbGVn ZWQgcGFydHMgb2YpIHRoZSB0bWVtIGh5cGVyY2FsbAorYWxsb3cgZG9tYWluX3R5cGUgeGVuX3Q6 eGVuIHRtZW1fb3A7CisKKyMgQWxsb3cgYWxsIGRvbWFpbnMgdG8gdXNlIFBNVSAoYnV0IG5vdCB0 byBjaGFuZ2UgaXRzIHNldHRpbmdzIC0tLSB0aGF0J3Mgd2hhdAorIyBwbXVfY3RybCBpcyBmb3Ip CithbGxvdyBkb21haW5fdHlwZSB4ZW5fdDp4ZW4yIHBtdV91c2U7CisKKyMgQWxsb3cgZ3Vlc3Qg Y29uc29sZSBvdXRwdXQgdG8gdGhlIHNlcmlhbCBjb25zb2xlLiAgVGhpcyBpcyB1c2VkIGJ5IFBW IExpbnV4CisjIGFuZCBzdHViIGRvbWFpbnMgZm9yIGVhcmx5IGJvb3Qgb3V0cHV0LCBzbyBkb24n dCBhdWRpdCBldmVuIHdoZW4gd2UgZGVueSBpdC4KKyMgV2l0aG91dCBYU00sIHRoaXMgaXMgZW5h YmxlZCBvbmx5IGlmIHRoZSBYZW4gd2FzIGNvbXBpbGVkIGluIGRlYnVnIG1vZGUuCitnZW5fYm9v bChndWVzdF93cml0ZWNvbnNvbGUsIHRydWUpCitpZiAoZ3Vlc3Rfd3JpdGVjb25zb2xlKSB7CisJ YWxsb3cgZG9tYWluX3R5cGUgeGVuX3QgOiB4ZW4gd3JpdGVjb25zb2xlOworfSBlbHNlIHsKKwlk b250YXVkaXQgZG9tYWluX3R5cGUgeGVuX3QgOiB4ZW4gd3JpdGVjb25zb2xlOworfQorCisjIEZv ciBub3JtYWwgZ3Vlc3RzLCBhbGxvdyBhbGwgcXVlcmllcyBleGNlcHQgWEVOVkVSX2NvbW1hbmRs aW5lLgorYWxsb3cgZG9tYWluX3R5cGUgeGVuX3Q6dmVyc2lvbiB7CisgICAgeGVuX2V4dHJhdmVy c2lvbiB4ZW5fY29tcGlsZV9pbmZvIHhlbl9jYXBhYmlsaXRpZXMKKyAgICB4ZW5fY2hhbmdlc2V0 IHhlbl9wYWdlc2l6ZSB4ZW5fZ3Vlc3RfaGFuZGxlCit9OworCisjIFZlcnNpb24gcXVlcmllcyBk b24ndCBuZWVkIGF1ZGl0aW5nIHdoZW4gZGVuaWVkLiAgVGhleSBjYW4gYmUKKyMgZW5jb3VudGVy ZWQgaW4gbm9ybWFsIG9wZXJhdGlvbiBieSB4bCBvciBieSByZWFkaW5nIHN5c2ZzIGZpbGVzIGlu CisjIExpbnV4LCBzbyB3aXRob3V0IHRoaXMgdGhleSB3aWxsIHNob3cgdXAgaW4gdGhlIGxvZ3Mu ICBTaW5jZSB0aGVzZQorIyBvcGVyYXRpb25zIHJldHVybiB2YWxpZCByZXNwb25zZXMgKGxpa2Ug ImRlbmllZCIpLCBoaWRpbmcgdGhlIGRlbmlhbHMKKyMgc2hvdWxkIG5vdCBicmVhayBhbnl0aGlu Zy4KK2RvbnRhdWRpdCBkb21haW5fdHlwZSB4ZW5fdDp2ZXJzaW9uIHsKKwl4ZW5fY29tbWFuZGxp bmUgeGVuX2J1aWxkX2lkCit9OwpkaWZmIC0tZ2l0IGEvdG9vbHMvZmxhc2svcG9saWN5L21vZHVs ZXMvaXNvbGF0ZWRfZG9tVS50ZSBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2lzb2xhdGVk X2RvbVUudGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVlNzY4OQotLS0g L2Rldi9udWxsCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2lzb2xhdGVkX2RvbVUu dGUKQEAgLTAsMCArMSw3IEBACitkZWNsYXJlX2RvbWFpbihpc29sYXRlZF9kb21VX3QpCitjcmVh dGVfZG9tYWluKGRvbTBfdCwgaXNvbGF0ZWRfZG9tVV90KQorbWFuYWdlX2RvbWFpbihkb20wX3Qs IGlzb2xhdGVkX2RvbVVfdCkKK2RvbWFpbl9jb21tcyhkb20wX3QsIGlzb2xhdGVkX2RvbVVfdCkK K21pZ3JhdGVfZG9tYWluX291dChkb20wX3QsIGlzb2xhdGVkX2RvbVVfdCkKK2RvbWFpbl9zZWxm X2NvbW1zKGlzb2xhdGVkX2RvbVVfdCkKKwpkaWZmIC0tZ2l0IGEvdG9vbHMvZmxhc2svcG9saWN5 L21vZHVsZXMvbW9kdWxlcy5jb25mIGIvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvbW9kdWxl cy5jb25mCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiYTRiNDAKLS0tIC9k ZXYvbnVsbAorKysgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9tb2R1bGVzLmNvbmYKQEAg LTAsMCArMSwzNCBAQAorIworIyBUaGlzIGZpbGUgY29udGFpbnMgYSBsaXN0aW5nIG9mIGF2YWls YWJsZSBtb2R1bGVzLgorIworIyBUbyBwcmV2ZW50IGEgbW9kdWxlIGZyb20gIGJlaW5nIHVzZWQg aW4gcG9saWN5IGNyZWF0aW9uLCBzZXQgdGhlIG1vZHVsZSBuYW1lCisjIHRvICJvZmYiOyBvdGhl cndpc2UsIHNldCB0aGUgbW9kdWxlIG5hbWUgb24gIm9uIi4KKyMKKyMgVGhlIG9yZGVyIHRoZSBt b2R1bGVzIGFwcGVhciBpbiB0aGlzIGZpbGUgaXMgdGhlIG9yZGVyIHRoZXkgd2lsbCBiZSBwYXJz ZWQ7CisjIHRoaXMgY2FuIGJlIGltcG9ydGFudCBpZiB5b3UgcGxhbiB0byB1c2UgdHlwZXMgZGVm aW5lZCBpbiBvbmUgZmlsZSBpbiBhbm90aGVyLgorIworCisjIEJhc2ljIHR5cGVzIGFuZCBjbGFz c2VzIGZvciB0aGUgWGVuIGh5cGVydmlzb3IuICBUaGlzIG1vZHVsZSBpcyByZXF1aXJlZC4KK3hl biA9IG9uCisKKyMgUGVybWlzc2lvbnMgZm9yIGRvbWFpbiAwLiAgTW9zdCBvZiB0aGVzZSBhcmUg cmVxdWlyZWQgdG8gYm9vdC4KK2RvbTAgPSBvbgorCisjIEFsbG93IGFsbCBkb21haW5zIHRoZSBh YmlsaXR5IHRvIHVzZSBhY2Nlc3MtY29udHJvbGxlZCBmZWF0dXJlcyBhbmQgaHlwZXJjYWxscwor IyB0aGF0IGFyZSBub3QgcmVzdHJpY3RlZCB3aGVuIFhTTSBpcyBkaXNhYmxlZC4KK2d1ZXN0X2Zl YXR1cmVzID0gb24KKworIyBUaGUgZGVmYXVsdCBkb21haW4gdHlwZSAoZG9tVV90KSBhbmQgaXRz IGRldmljZSBtb2RlbCAoZG1fZG9tX3QpLiAgVGhlIGRvbWFpbgorIyBpcyBjcmVhdGVkIGFuZCBt YW5hZ2VkIGJ5IGRvbTBfdCwgYW5kIGhhcyBubyBzcGVjaWFsIHJlc3RyaWN0aW9ucy4KKyMKKyMg VGhpcyBpcyByZXF1aXJlZCBpZiB5b3Ugd2FudCB0byBiZSBhYmxlIHRvIGNyZWF0ZSBkb21haW5z IHdpdGhvdXQgc3BlY2lmeWluZworIyB0aGVpciBYU00gbGFiZWwgaW4gdGhlIGNvbmZpZ3VyYXRp b24uCitkb21VID0gb24KKworIyBFeGFtcGxlIHR5cGVzIHdpdGggcmVzdHJpY3Rpb25zCitpc29s YXRlZF9kb21VID0gb24KK3Byb3RfZG9tVSA9IG9uCitub21pZ3JhdGUgPSBvbgorCisjIEV4YW1w bGUgZGV2aWNlIHBvbGljeS4gIEFsc28gc2VlIHBvbGljeS9kZXZpY2VfY29udGV4dHMuCituaWNf ZGV2ID0gb24KZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL25pY19kZXYu dGUgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9uaWNfZGV2LnRlCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwNDg0YWYKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9m bGFzay9wb2xpY3kvbW9kdWxlcy9uaWNfZGV2LnRlCkBAIC0wLDAgKzEsMTQgQEAKKyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMKKyMgRGV2aWNlIGRlbGVnYXRpb24KKyMKKyMgVGhpcyByZXF1aXJl cyB0aGF0IHRoZSBkZXZpY2UgYmUgbGFiZWxlZCB3aXRoIGEgdHlwZSBkZWZpbmVkIGhlcmUuICBZ b3UgY2FuCisjIHVzZSBmbGFzay1sYWJlbC1wY2kgdG8gZHluYW1pY2FsbHkgbGFiZWwgZGV2aWNl cyBvbiBlYWNoIGJvb3Qgb3IgZGVmaW5lIHRoZQorIyBsYWJlbHMgc3RhdGljYWxseSBpbiB0b29s cy9mbGFzay9wb2xpY3kvcG9saWN5L2RldmljZV9jb250ZXh0cworIworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworCit0eXBlIG5pY19kZXZfdCwgcmVzb3VyY2VfdHlwZTsKKworYWRtaW5fZGV2aWNl KGRvbTBfdCwgbmljX2Rldl90KQordXNlX2RldmljZShkb21VX3QsIG5pY19kZXZfdCkKZGlmZiAt LWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL25vbWlncmF0ZS50ZSBiL3Rvb2xzL2Zs YXNrL3BvbGljeS9tb2R1bGVzL25vbWlncmF0ZS50ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi41YjU2Y2FmCi0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvZmxhc2svcG9saWN5 L21vZHVsZXMvbm9taWdyYXRlLnRlCkBAIC0wLDAgKzEsOCBAQAorIyBEb21haW5zIG9mIHR5cGUg bm9taWdyYXRlX3QgbXVzdCBiZSBidWlsdCB2aWEgdGhlIG5vbWlncmF0ZV90X2J1aWxkaW5nIGxh YmVsOworIyBvbmNlIGJ1aWx0LCBkb20wIGNhbm5vdCByZWFkIHRoZWlyIG1lbW9yeS4KK2RlY2xh cmVfZG9tYWluKG5vbWlncmF0ZV90KQorZGVjbGFyZV9idWlsZF9sYWJlbChub21pZ3JhdGVfdCkK K2NyZWF0ZV9kb21haW5fYnVpbGRfbGFiZWwoZG9tMF90LCBub21pZ3JhdGVfdCkKK21hbmFnZV9k b21haW4oZG9tMF90LCBub21pZ3JhdGVfdCkKK2RvbWFpbl9jb21tcyhkb20wX3QsIG5vbWlncmF0 ZV90KQorZG9tYWluX3NlbGZfY29tbXMobm9taWdyYXRlX3QpCmRpZmYgLS1naXQgYS90b29scy9m bGFzay9wb2xpY3kvbW9kdWxlcy9wcm90X2RvbVUudGUgYi90b29scy9mbGFzay9wb2xpY3kvbW9k dWxlcy9wcm90X2RvbVUudGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTdj MDEyYwotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3Byb3Rf ZG9tVS50ZQpAQCAtMCwwICsxLDEzIEBACisjIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gbm9t aWdyYXRlX3Q6IGEgcG9saWN5IGJvb2xlYW4gY29udHJvbHMgdGhlIGFiaWxpdHkKKyMgdG8gY3Jl YXRlIG9yIG1pZ3JhdGUgYSBkb21haW4gb2YgdHlwZSBwcm90X2RvbVVfdC4gIElmIGRpc2FibGVk LCBkb20wIGNhbm5vdAorIyBtYXAgbWVtb3J5IGJlbG9uZ2luZyB0byB0aG9zZSBkb21haW5zLgor Z2VuX2Jvb2wocHJvdF9kb21zX2xvY2tlZCwgZmFsc2UpCitkZWNsYXJlX2RvbWFpbihwcm90X2Rv bVVfdCkKK2lmICghcHJvdF9kb21zX2xvY2tlZCkgeworCWNyZWF0ZV9kb21haW4oZG9tMF90LCBw cm90X2RvbVVfdCkKKwltaWdyYXRlX2RvbWFpbl9vdXQoZG9tMF90LCBwcm90X2RvbVVfdCkKK30K K2RvbWFpbl9jb21tcyhkb20wX3QsIHByb3RfZG9tVV90KQorZG9tYWluX2NvbW1zKGRvbVVfdCwg cHJvdF9kb21VX3QpCitkb21haW5fY29tbXMocHJvdF9kb21VX3QsIHByb3RfZG9tVV90KQorZG9t YWluX3NlbGZfY29tbXMocHJvdF9kb21VX3QpCmRpZmYgLS1naXQgYS90b29scy9mbGFzay9wb2xp Y3kvcG9saWN5L21vZHVsZXMveGVuL3hlbi5pZiBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVz L3hlbi5pZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdG9vbHMvZmxhc2svcG9s aWN5L3BvbGljeS9tb2R1bGVzL3hlbi94ZW4uaWYKcmVuYW1lIHRvIHRvb2xzL2ZsYXNrL3BvbGlj eS9tb2R1bGVzL3hlbi5pZgpkaWZmIC0tZ2l0IGEvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMv eGVuLnRlIGIvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLnRlCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlZTVlNzUKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9m bGFzay9wb2xpY3kvbW9kdWxlcy94ZW4udGUKQEAgLTAsMCArMSw4OSBAQAorIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKyMKKyMgQXR0cmlidXRlcyBmb3IgdHlwZXMKKyMKKyMgQW4gYXR0cmlidXRl IG1heSBiZSB1c2VkIGluIGEgcnVsZSBhcyBzaG9ydGhhbmQgZm9yIGFsbCB0eXBlcyB3aXRoIHRo YXQKKyMgYXR0cmlidXRlLgorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2F0dHJpYnV0ZSB4 ZW5fdHlwZTsKK2F0dHJpYnV0ZSBkb21haW5fdHlwZTsKK2F0dHJpYnV0ZSBkb21haW5fc2VsZl90 eXBlOworYXR0cmlidXRlIGRvbWFpbl90YXJnZXRfdHlwZTsKK2F0dHJpYnV0ZSByZXNvdXJjZV90 eXBlOworYXR0cmlidXRlIGV2ZW50X3R5cGU7CithdHRyaWJ1dGUgbWxzX3ByaXY7CisKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIFR5cGVzIGZvciB0aGUgaW5pdGlhbCBTSURzCisjCisj IFRoZXNlIHR5cGVzIGFyZSB1c2VkIGludGVybmFsbHkgZm9yIG9iamVjdHMgY3JlYXRlZCBkdXJp bmcgWGVuIHN0YXJ0dXAgb3IgZm9yCisjIGRldmljZXMgdGhhdCBoYXZlIG5vdCB5ZXQgYmVlbiBs YWJlbGVkCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIFRoZSBoeXBlcnZpc29yIGl0 c2VsZgordHlwZSB4ZW5fdCwgeGVuX3R5cGUsIG1sc19wcml2OworCisjIERvbWFpbiAwCitkZWNs YXJlX3NpbmdsZXRvbl9kb21haW4oZG9tMF90LCBtbHNfcHJpdik7CisKKyMgSS9PIG1lbW9yeSAo RE9NSURfSU8gcHNldWRvLWRvbWFpbikKK3R5cGUgZG9taW9fdCwgeGVuX3R5cGU7CisKKyMgWGVu IGhlYXAgKERPTUlEX1hFTiBwc2V1ZG8tZG9tYWluKQordHlwZSBkb214ZW5fdCwgeGVuX3R5cGU7 CisKKyMgVW5sYWJlbGVkIG9iamVjdHMKK3R5cGUgdW5sYWJlbGVkX3QsIHhlbl90eXBlOworCisj IFRoZSBYU00vRkxBU0sgc2VjdXJpdHkgc2VydmVyCit0eXBlIHNlY3VyaXR5X3QsIHhlbl90eXBl OworCisjIFVubGFiZWxlZCBkZXZpY2UgcmVzb3VyY2VzCisjIE5vdGU6IGRvbid0IGFsbG93IGFj Y2VzcyB0byB0aGVzZSB0eXBlcyBkaXJlY3RseTsgc2VlIGJlbG93IGZvciBob3cgdG8gbGFiZWwK KyMgICAgICAgZGV2aWNlcyBhbmQgdXNlIHRoYXQgbGFiZWwgZm9yIGFsbG93IHJ1bGVzCit0eXBl IGlycV90LCByZXNvdXJjZV90eXBlOwordHlwZSBpb3BvcnRfdCwgcmVzb3VyY2VfdHlwZTsKK3R5 cGUgaW9tZW1fdCwgcmVzb3VyY2VfdHlwZTsKK3R5cGUgZGV2aWNlX3QsIHJlc291cmNlX3R5cGU7 CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIFBvbGljeSBjb25zdHJhaW50cworIwor IyBOZXZlcmFsbG93IHJ1bGVzIHdpbGwgY2F1c2UgdGhlIHBvbGljeSBidWlsZCB0byBmYWlsIGlm IGFuIGFsbG93IHJ1bGUgZXhpc3RzCisjIHRoYXQgdmlvbGF0ZXMgdGhlIGV4cHJlc3Npb24uIFRo aXMgaXMgdXNlZCB0byBlbnN1cmUgcHJvcGVyIGxhYmVsaW5nIG9mCisjIG9iamVjdHMuCisjCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIERvbWFpbnMgbXVzdCBiZSBkZWNsYXJlZCB1c2lu ZyBkb21haW5fdHlwZQorbmV2ZXJhbGxvdyAqIH5kb21haW5fdHlwZTpkb21haW4geyBjcmVhdGUg dHJhbnNpdGlvbiB9OworCisjIFJlc291cmNlcyBtdXN0IGJlIGRlY2xhcmVkIHVzaW5nIHJlc291 cmNlX3R5cGUKK25ldmVyYWxsb3cgKiB+cmVzb3VyY2VfdHlwZTpyZXNvdXJjZSB1c2U7CisKKyMg RXZlbnRzIG11c3QgdXNlIGV2ZW50X3R5cGUgKHNlZSBjcmVhdGVfY2hhbm5lbCBmb3IgYSB0ZW1w bGF0ZSkKK25ldmVyYWxsb3cgfmV2ZW50X3R5cGUgKjpldmVudCBiaW5kOworbmV2ZXJhbGxvdyAq IH5ldmVudF90eXBlOmV2ZW50IHsgY3JlYXRlIHNlbmQgc3RhdHVzIH07CisKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisjCisjIFJvbGVzCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisj IFRoZSBvYmplY3Qgcm9sZSAob2JqZWN0X3IpIGlzIHVzZWQgZm9yIGRldmljZXMsIHJlc291cmNl cywgYW5kIGV2ZW50IGNoYW5uZWxzOworIyBpdCBkb2VzIG5vdCBuZWVkIHRvIGJlIGRlZmluZWQg aGVyZSBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGZvciBkb21haW5zLgorCisjIFRoZSBzeXN0ZW0g cm9sZSBpcyB1c2VkIGZvciB1dGlsaXR5IGRvbWFpbnMgYW5kIHBzZXVkby1kb21haW5zCityb2xl IHN5c3RlbV9yOworcm9sZSBzeXN0ZW1fciB0eXBlcyB7IHhlbl90eXBlIGRvbWFpbl90eXBlIH07 CisjIElmIHlvdSB3YW50IHRvIHByZXZlbnQgZG9tVXMgZnJvbSBiZWluZyBwbGFjZWQgaW4gc3lz dGVtX3I6CisjI3JvbGUgc3lzdGVtX3IgdHlwZXMgeyB4ZW5fdHlwZSBkb20wX3QgfTsKKworIyBU aGUgdm0gcm9sZSBpcyB1c2VkIGZvciBjdXN0b21lciB2aXJ0dWFsIG1hY2hpbmVzCityb2xlIHZt X3I7Cityb2xlIHZtX3IgdHlwZXMgeyBkb21haW5fdHlwZSAtZG9tMF90IH07CmRpZmYgLS1naXQg YS90b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMuY29uZiBiL3Rvb2xzL2ZsYXNrL3Bv bGljeS9wb2xpY3kvbW9kdWxlcy5jb25mCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4 MDQzOTc0Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy5j b25mCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotIwotIyBUaGlzIGZpbGUgY29udGFp bnMgYSBsaXN0aW5nIG9mIGF2YWlsYWJsZSBtb2R1bGVzLgotIyBUbyBwcmV2ZW50IGEgbW9kdWxl IGZyb20gIGJlaW5nIHVzZWQgaW4gcG9saWN5Ci0jIGNyZWF0aW9uLCBzZXQgdGhlIG1vZHVsZSBu YW1lIHRvICJvZmYiIG90aGVyd2lzZQotIyBzZXQgdGhlIG1vZHVsZSBuYW1lIG9uICJvbiIuCi0j Ci0KLSMgTGF5ZXI6IHhlbgotIyBNb2R1bGU6IHhlbgotIyBSZXF1aXJlZCBpbiBiYXNlCi0jCi0j IFBvbGljeSBmb3IgeGVuLgotIyAKLXhlbiA9IG9uCi0KZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNr L3BvbGljeS9wb2xpY3kvbW9kdWxlcy94ZW4veGVuLnRlIGIvdG9vbHMvZmxhc2svcG9saWN5L3Bv bGljeS9tb2R1bGVzL3hlbi94ZW4udGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUw YWE2MDIuLjAwMDAwMDAKLS0tIGEvdG9vbHMvZmxhc2svcG9saWN5L3BvbGljeS9tb2R1bGVzL3hl bi94ZW4udGUKKysrIC9kZXYvbnVsbApAQCAtMSwyNzIgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKLSMKLSMgQXR0cmlidXRlcyBmb3IgdHlwZXMKLSMKLSMgQW4gYXR0cmlidXRlIG1h eSBiZSB1c2VkIGluIGEgcnVsZSBhcyBzaG9ydGhhbmQgZm9yIGFsbCB0eXBlcyB3aXRoIHRoYXQK LSMgYXR0cmlidXRlLgotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWF0dHJpYnV0ZSB4ZW5f dHlwZTsKLWF0dHJpYnV0ZSBkb21haW5fdHlwZTsKLWF0dHJpYnV0ZSBkb21haW5fc2VsZl90eXBl OwotYXR0cmlidXRlIGRvbWFpbl90YXJnZXRfdHlwZTsKLWF0dHJpYnV0ZSByZXNvdXJjZV90eXBl OwotYXR0cmlidXRlIGV2ZW50X3R5cGU7Ci1hdHRyaWJ1dGUgbWxzX3ByaXY7Ci0KLSMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCi0jCi0jIFR5cGVzIGZvciB0aGUgaW5pdGlhbCBTSURzCi0jCi0jIFRo ZXNlIHR5cGVzIGFyZSB1c2VkIGludGVybmFsbHkgZm9yIG9iamVjdHMgY3JlYXRlZCBkdXJpbmcg WGVuIHN0YXJ0dXAgb3IgZm9yCi0jIGRldmljZXMgdGhhdCBoYXZlIG5vdCB5ZXQgYmVlbiBsYWJl bGVkCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIFRoZSBoeXBlcnZpc29yIGl0c2Vs ZgotdHlwZSB4ZW5fdCwgeGVuX3R5cGUsIG1sc19wcml2OwotCi0jIERvbWFpbiAwCi1kZWNsYXJl X3NpbmdsZXRvbl9kb21haW4oZG9tMF90LCBtbHNfcHJpdik7Ci0KLSMgSS9PIG1lbW9yeSAoRE9N SURfSU8gcHNldWRvLWRvbWFpbikKLXR5cGUgZG9taW9fdCwgeGVuX3R5cGU7Ci0KLSMgWGVuIGhl YXAgKERPTUlEX1hFTiBwc2V1ZG8tZG9tYWluKQotdHlwZSBkb214ZW5fdCwgeGVuX3R5cGU7Ci0K LSMgVW5sYWJlbGVkIG9iamVjdHMKLXR5cGUgdW5sYWJlbGVkX3QsIHhlbl90eXBlOwotCi0jIFRo ZSBYU00vRkxBU0sgc2VjdXJpdHkgc2VydmVyCi10eXBlIHNlY3VyaXR5X3QsIHhlbl90eXBlOwot Ci0jIFVubGFiZWxlZCBkZXZpY2UgcmVzb3VyY2VzCi0jIE5vdGU6IGRvbid0IGFsbG93IGFjY2Vz cyB0byB0aGVzZSB0eXBlcyBkaXJlY3RseTsgc2VlIGJlbG93IGZvciBob3cgdG8gbGFiZWwKLSMg ICAgICAgZGV2aWNlcyBhbmQgdXNlIHRoYXQgbGFiZWwgZm9yIGFsbG93IHJ1bGVzCi10eXBlIGly cV90LCByZXNvdXJjZV90eXBlOwotdHlwZSBpb3BvcnRfdCwgcmVzb3VyY2VfdHlwZTsKLXR5cGUg aW9tZW1fdCwgcmVzb3VyY2VfdHlwZTsKLXR5cGUgZGV2aWNlX3QsIHJlc291cmNlX3R5cGU7Ci0K LSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIEFsbG93IGRvbTAgYWNjZXNzIHRvIGFsbCBz eXNjdGxzLCBkZXZpY2VzLCBhbmQgdGhlIHNlY3VyaXR5IHNlcnZlci4KLSMKLSMgV2hpbGUgdGhp cyBjb3VsZCBiZSB3cml0dGVuIG1vcmUgYnJpZWZseSB1c2luZyB3aWxkY2FyZHMsIHRoZSBwZXJt aXNzaW9ucyBhcmUKLSMgbGlzdGVkIG91dCB0byBtYWtlIHJlbW92aW5nIHNwZWNpZmljIHBlcm1p c3Npb25zIHNpbXBsZXIuCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotYWxsb3cgZG9tMF90 IHhlbl90OnhlbiB7Ci0Jc2V0dGltZSB0YnVmY29udHJvbCByZWFkY29uc29sZSBjbGVhcmNvbnNv bGUgcGVyZmNvbnRyb2wgbXRycl9hZGQKLQltdHJyX2RlbCBtdHJyX3JlYWQgbWljcm9jb2RlIHBo eXNpbmZvIHF1aXJrIHdyaXRlY29uc29sZSByZWFkYXBpYwotCXdyaXRlYXBpYyBwcml2cHJvZmls ZSBub25wcml2cHJvZmlsZSBrZXhlYyBmaXJtd2FyZSBzbGVlcCBmcmVxdWVuY3kKLQlnZXRpZGxl IGRlYnVnIGdldGNwdWluZm8gaGVhcCBwbV9vcCBtY2Ffb3AgbG9ja3Byb2YgY3B1cG9vbF9vcCB0 bWVtX29wCi0JdG1lbV9jb250cm9sIGdldHNjaGVkdWxlciBzZXRzY2hlZHVsZXIKLX07Ci1hbGxv dyBkb20wX3QgeGVuX3Q6eGVuMiB7Ci0gICAgcmVzb3VyY2Vfb3AKLSAgICBwc3JfY210X29wCi0g ICAgcHNyX2NhdF9vcAotfTsKLWFsbG93IGRvbTBfdCB4ZW5fdDp4ZW4yIHsKLSAgICBwbXVfY3Ry bAotICAgIGdldF9zeW1ib2wKLSAgICBnZXRfY3B1X2xldmVsbGluZ19jYXBzCi0gICAgZ2V0X2Nw dV9mZWF0dXJlc2V0Ci0gICAgbGl2ZXBhdGNoX29wCi19OwotCi0jIEFsbG93IGRvbTAgdG8gdXNl IGFsbCBYRU5WRVJfIHN1Ym9wcyB0aGF0IGhhdmUgY2hlY2tzLgotIyBOb3RlIHRoYXQgZG9tMCBp cyBwYXJ0IG9mIGRvbWFpbl90eXBlIHNvIHRoaXMgaGFzIGR1cGxpY2F0ZXMuCi1hbGxvdyBkb20w X3QgeGVuX3Q6dmVyc2lvbiB7Ci0gICAgeGVuX2V4dHJhdmVyc2lvbiB4ZW5fY29tcGlsZV9pbmZv IHhlbl9jYXBhYmlsaXRpZXMKLSAgICB4ZW5fY2hhbmdlc2V0IHhlbl9wYWdlc2l6ZSB4ZW5fZ3Vl c3RfaGFuZGxlIHhlbl9jb21tYW5kbGluZQotICAgIHhlbl9idWlsZF9pZAotfTsKLQotYWxsb3cg ZG9tMF90IHhlbl90Om1tdSBtZW1vcnltYXA7Ci0KLSMgQWxsb3cgZG9tMCB0byB1c2UgdGhlc2Ug ZG9tY3RscyBvbiBpdHNlbGYuIEZvciBkb21jdGxzIGFjdGluZyBvbiBvdGhlcgotIyBkb21haW5z LCBzZWUgdGhlIGRlZmluaXRpb25zIG9mIGNyZWF0ZV9kb21haW4gYW5kIG1hbmFnZV9kb21haW4u Ci1hbGxvdyBkb20wX3QgZG9tMF90OmRvbWFpbiB7Ci0Jc2V0dmNwdWNvbnRleHQgbWF4X3ZjcHVz IHNldGFmZmluaXR5IGdldGFmZmluaXR5IGdldHNjaGVkdWxlcgotCWdldGRvbWFpbmluZm8gZ2V0 dmNwdWluZm8gZ2V0dmNwdWNvbnRleHQgc2V0ZG9tYWlubWF4bWVtIHNldGRvbWFpbmhhbmRsZQot CXNldGRlYnVnZ2luZyBoeXBlcmNhbGwgc2V0dGltZSBzZXRhZGRyc2l6ZSBnZXRhZGRyc2l6ZSB0 cmlnZ2VyCi0JZ2V0ZXh0dmNwdWNvbnRleHQgc2V0ZXh0dmNwdWNvbnRleHQgZ2V0dmNwdWV4dHN0 YXRlIHNldHZjcHVleHRzdGF0ZQotCWdldHBvZHRhcmdldCBzZXRwb2R0YXJnZXQgc2V0X21pc2Nf aW5mbyBzZXRfdmlycV9oYW5kbGVyCi19OwotYWxsb3cgZG9tMF90IGRvbTBfdDpkb21haW4yIHsK LQlzZXRfY3B1aWQgZ2V0dHNjIHNldHRzYyBzZXRzY2hlZHVsZXIgc2V0X21heF9ldnRjaG4gc2V0 X3ZudW1haW5mbwotCWdldF92bnVtYWluZm8gcHNyX2NtdF9vcCBwc3JfY2F0X29wCi19OwotYWxs b3cgZG9tMF90IGRvbTBfdDpyZXNvdXJjZSB7IGFkZCByZW1vdmUgfTsKLQotIyBUaGVzZSBwZXJt aXNzaW9ucyBhbGxvdyB1c2luZyB0aGUgRkxBU0sgc2VjdXJpdHkgc2VydmVyIHRvIGNvbXB1dGUg YWNjZXNzCi0jIGNoZWNrcyBsb2NhbGx5LCB3aGljaCBjb3VsZCBiZSB1c2VkIGJ5IGEgZG9tYWlu IG9yIHNlcnZpY2UgKHN1Y2ggYXMgeGVuc3RvcmUpCi0jIHRoYXQgZG9lcyBub3QgaGF2ZSBpdHMg b3duIHNlY3VyaXR5IHNlcnZlciB0byBtYWtlIGFjY2VzcyBkZWNpc2lvbnMgYmFzZWQgb24KLSMg WGVuJ3Mgc2VjdXJpdHkgcG9saWN5LgotYWxsb3cgZG9tMF90IHNlY3VyaXR5X3Q6c2VjdXJpdHkg ewotCWNvbXB1dGVfYXYgY29tcHV0ZV9jcmVhdGUgY29tcHV0ZV9tZW1iZXIgY29tcHV0ZV9yZWxh YmVsIGNvbXB1dGVfdXNlcgotfTsKLQotIyBBbGxvdyBzdHJpbmcvU0lEIGNvbnZlcnNpb25zIChm b3IgInhsIGxpc3QgLVoiIGFuZCBzaW1pbGFyKQotYWxsb3cgZG9tMF90IHNlY3VyaXR5X3Q6c2Vj dXJpdHkgY2hlY2tfY29udGV4dDsKLQotIyBBbGxvdyBmbGFzay1sYWJlbC1wY2kgdG8gYWRkIGFu ZCBjaGFuZ2UgbGFiZWxzCi1hbGxvdyBkb20wX3Qgc2VjdXJpdHlfdDpzZWN1cml0eSB7IGFkZF9v Y29udGV4dCBkZWxfb2NvbnRleHQgfTsKLQotIyBBbGxvdyBwZXJmb3JtYW5jZSBwYXJhbWV0ZXJz IG9mIHRoZSBzZWN1cml0eSBzZXJ2ZXIgdG8gYmUgdHdlYWtlZAotYWxsb3cgZG9tMF90IHNlY3Vy aXR5X3Q6c2VjdXJpdHkgc2V0c2VjcGFyYW07Ci0KLSMgQWxsb3cgY2hhbmdpbmcgdGhlIHNlY3Vy aXR5IHBvbGljeQotYWxsb3cgZG9tMF90IHNlY3VyaXR5X3Q6c2VjdXJpdHkgeyBsb2FkX3BvbGlj eSBzZXRlbmZvcmNlIHNldGJvb2wgfTsKLQotIyBBdWRpdCBwb2xpY3kgY2hhbmdlIGV2ZW50cyBl dmVuIHdoZW4gdGhleSBhcmUgYWxsb3dlZAotYXVkaXRhbGxvdyBkb20wX3Qgc2VjdXJpdHlfdDpz ZWN1cml0eSB7IGxvYWRfcG9saWN5IHNldGVuZm9yY2Ugc2V0Ym9vbCB9OwotCi1hZG1pbl9kZXZp Y2UoZG9tMF90LCBkZXZpY2VfdCkKLWFkbWluX2RldmljZShkb20wX3QsIGlycV90KQotYWRtaW5f ZGV2aWNlKGRvbTBfdCwgaW9wb3J0X3QpCi1hZG1pbl9kZXZpY2UoZG9tMF90LCBpb21lbV90KQot Ci1kb21haW5fY29tbXMoZG9tMF90LCBkb20wX3QpCi0KLSMgQWxsb3cgYWxsIGRvbWFpbnMgdG8g dXNlICh1bnByaXZpbGVnZWQgcGFydHMgb2YpIHRoZSB0bWVtIGh5cGVyY2FsbAotYWxsb3cgZG9t YWluX3R5cGUgeGVuX3Q6eGVuIHRtZW1fb3A7Ci0KLSMgQWxsb3cgZ3Vlc3QgY29uc29sZSBvdXRw dXQgdG8gdGhlIHNlcmlhbCBjb25zb2xlLiAgVGhpcyBpcyB1c2VkIGJ5IFBWIExpbnV4Ci0jIGFu ZCBzdHViIGRvbWFpbnMgZm9yIGVhcmx5IGJvb3Qgb3V0cHV0LCBzbyBkb24ndCBhdWRpdCBldmVu IHdoZW4gd2UgZGVueSBpdC4KLSMgV2l0aG91dCBYU00sIHRoaXMgaXMgZW5hYmxlZCBvbmx5IGlm IHRoZSBYZW4gd2FzIGNvbXBpbGVkIGluIGRlYnVnIG1vZGUuCi1nZW5fYm9vbChndWVzdF93cml0 ZWNvbnNvbGUsIHRydWUpCi1pZiAoZ3Vlc3Rfd3JpdGVjb25zb2xlKSB7Ci0JYWxsb3cgZG9tYWlu X3R5cGUgeGVuX3QgOiB4ZW4gd3JpdGVjb25zb2xlOwotfSBlbHNlIHsKLQlkb250YXVkaXQgZG9t YWluX3R5cGUgeGVuX3QgOiB4ZW4gd3JpdGVjb25zb2xlOwotfQotCi0jIEFsbG93IGFsbCBkb21h aW5zIHRvIHVzZSBQTVUgKGJ1dCBub3QgdG8gY2hhbmdlIGl0cyBzZXR0aW5ncyAtLS0gdGhhdCdz IHdoYXQKLSMgcG11X2N0cmwgaXMgZm9yKQotYWxsb3cgZG9tYWluX3R5cGUgeGVuX3Q6eGVuMiBw bXVfdXNlOwotCi0jIEZvciBub3JtYWwgZ3Vlc3RzIGFsbCBwb3NzaWJsZSBleGNlcHQgWEVOVkVS X2NvbW1hbmRsaW5lLgotYWxsb3cgZG9tYWluX3R5cGUgeGVuX3Q6dmVyc2lvbiB7Ci0gICAgeGVu X2V4dHJhdmVyc2lvbiB4ZW5fY29tcGlsZV9pbmZvIHhlbl9jYXBhYmlsaXRpZXMKLSAgICB4ZW5f Y2hhbmdlc2V0IHhlbl9wYWdlc2l6ZSB4ZW5fZ3Vlc3RfaGFuZGxlCi19OwotCi0jIFRoZXNlIHF1 ZXJpZXMgZG9uJ3QgbmVlZCBhdWRpdGluZyB3aGVuIGRlbmllZC4gIFRoZXkgY2FuIGJlCi0jIGVu Y291bnRlcmVkIGluIG5vcm1hbCBvcGVyYXRpb24gYnkgeGwgb3IgYnkgcmVhZGluZyBzeXNmcyBm aWxlcyBpbgotIyBMaW51eCwgc28gd2l0aG91dCB0aGlzIHRoZXkgd2lsbCBzaG93IHVwIGluIHRo ZSBsb2dzLiAgU2luY2UgdGhlc2UKLSMgb3BlcmF0aW9ucyByZXR1cm4gdmFsaWQgcmVzcG9uc2Vz IChsaWtlICJkZW5pZWQiKSwgaGlkaW5nIHRoZSBkZW5pYWxzCi0jIHNob3VsZCBub3QgYnJlYWsg YW55dGhpbmcuCi1kb250YXVkaXQgZG9tYWluX3R5cGUgeGVuX3Q6dmVyc2lvbiB7Ci0gICAgeGVu X2NvbW1hbmRsaW5lIHhlbl9idWlsZF9pZAotfTsKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwot IwotIyBEb21haW4gY3JlYXRpb24KLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotZGVjbGFy ZV9kb21haW4oZG9tVV90KQotZG9tYWluX3NlbGZfY29tbXMoZG9tVV90KQotY3JlYXRlX2RvbWFp bihkb20wX3QsIGRvbVVfdCkKLW1hbmFnZV9kb21haW4oZG9tMF90LCBkb21VX3QpCi1kb21haW5f Y29tbXMoZG9tMF90LCBkb21VX3QpCi1kb21haW5fY29tbXMoZG9tVV90LCBkb21VX3QpCi1taWdy YXRlX2RvbWFpbl9vdXQoZG9tMF90LCBkb21VX3QpCi1kb21haW5fc2VsZl9jb21tcyhkb21VX3Qp Ci0KLWRlY2xhcmVfZG9tYWluKGlzb2xhdGVkX2RvbVVfdCkKLWNyZWF0ZV9kb21haW4oZG9tMF90 LCBpc29sYXRlZF9kb21VX3QpCi1tYW5hZ2VfZG9tYWluKGRvbTBfdCwgaXNvbGF0ZWRfZG9tVV90 KQotZG9tYWluX2NvbW1zKGRvbTBfdCwgaXNvbGF0ZWRfZG9tVV90KQotbWlncmF0ZV9kb21haW5f b3V0KGRvbTBfdCwgaXNvbGF0ZWRfZG9tVV90KQotZG9tYWluX3NlbGZfY29tbXMoaXNvbGF0ZWRf ZG9tVV90KQotCi0jIERlY2xhcmUgYSBib29sZWFuIHRoYXQgZGVuaWVzIGNyZWF0aW9uIG9mIHBy b3RfZG9tVV90IGRvbWFpbnMKLWdlbl9ib29sKHByb3RfZG9tc19sb2NrZWQsIGZhbHNlKQotZGVj bGFyZV9kb21haW4ocHJvdF9kb21VX3QpCi1pZiAoIXByb3RfZG9tc19sb2NrZWQpIHsKLQljcmVh dGVfZG9tYWluKGRvbTBfdCwgcHJvdF9kb21VX3QpCi0JbWlncmF0ZV9kb21haW5fb3V0KGRvbTBf dCwgcHJvdF9kb21VX3QpCi19Ci1kb21haW5fY29tbXMoZG9tMF90LCBwcm90X2RvbVVfdCkKLWRv bWFpbl9jb21tcyhkb21VX3QsIHByb3RfZG9tVV90KQotZG9tYWluX2NvbW1zKHByb3RfZG9tVV90 LCBwcm90X2RvbVVfdCkKLWRvbWFpbl9zZWxmX2NvbW1zKHByb3RfZG9tVV90KQotCi0jIERldmlj ZSBtb2RlbCBmb3IgZG9tVV90LiAgWW91IGNhbiBkZWZpbmUgZGlzdGluY3QgdHlwZXMgZm9yIGRl dmljZSBtb2RlbHMgZm9yCi0jIGRvbWFpbnMgb2Ygb3RoZXIgdHlwZXMsIG9yIGFkZCBtb3JlIG1h a2VfZGV2aWNlX21vZGVsIGxpbmVzIGZvciB0aGlzIHR5cGUuCi1kZWNsYXJlX2RvbWFpbihkbV9k b21fdCkKLWNyZWF0ZV9kb21haW4oZG9tMF90LCBkbV9kb21fdCkKLW1hbmFnZV9kb21haW4oZG9t MF90LCBkbV9kb21fdCkKLWRvbWFpbl9jb21tcyhkb20wX3QsIGRtX2RvbV90KQotbWFrZV9kZXZp Y2VfbW9kZWwoZG9tMF90LCBkbV9kb21fdCwgZG9tVV90KQotCi0jIG5vbWlncmF0ZV90IG11c3Qg YmUgYnVpbHQgdmlhIHRoZSBub21pZ3JhdGVfdF9idWlsZGluZyBsYWJlbDsgb25jZSBidWlsdCwK LSMgZG9tMCBjYW5ub3QgcmVhZCBpdHMgbWVtb3J5LgotZGVjbGFyZV9kb21haW4obm9taWdyYXRl X3QpCi1kZWNsYXJlX2J1aWxkX2xhYmVsKG5vbWlncmF0ZV90KQotY3JlYXRlX2RvbWFpbl9idWls ZF9sYWJlbChkb20wX3QsIG5vbWlncmF0ZV90KQotbWFuYWdlX2RvbWFpbihkb20wX3QsIG5vbWln cmF0ZV90KQotZG9tYWluX2NvbW1zKGRvbTBfdCwgbm9taWdyYXRlX3QpCi1kb21haW5fc2VsZl9j b21tcyhub21pZ3JhdGVfdCkKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBEZXZpY2Ug ZGVsZWdhdGlvbgotIwotIyBUaGlzIHJlcXVpcmVzIHRoYXQgdGhlIGRldmljZSBiZSBsYWJlbGVk IHdpdGggYSB0eXBlIGRlZmluZWQgaGVyZS4gIFlvdSBjYW4KLSMgdXNlIGZsYXNrLWxhYmVsLXBj aSB0byBkeW5hbWljYWxseSBsYWJlbCBkZXZpY2VzIG9uIGVhY2ggYm9vdCBvciBkZWZpbmUgdGhl Ci0jIGxhYmVscyBzdGF0aWNhbGx5IGluIHRvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvZGV2aWNl X2NvbnRleHRzCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLXR5cGUgbmljX2Rldl90LCBy ZXNvdXJjZV90eXBlOwotCi1hZG1pbl9kZXZpY2UoZG9tMF90LCBuaWNfZGV2X3QpCi11c2VfZGV2 aWNlKGRvbVVfdCwgbmljX2Rldl90KQotCi1kZWxlZ2F0ZV9kZXZpY2VzKGRvbTBfdCwgZG9tVV90 KQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBQb2xpY3kgY29uc3RyYWludHMKLSMK LSMgTmV2ZXJhbGxvdyBydWxlcyB3aWxsIGNhdXNlIHRoZSBwb2xpY3kgYnVpbGQgdG8gZmFpbCBp ZiBhbiBhbGxvdyBydWxlIGV4aXN0cwotIyB0aGF0IHZpb2xhdGVzIHRoZSBleHByZXNzaW9uLiBU aGlzIGlzIHVzZWQgdG8gZW5zdXJlIHByb3BlciBsYWJlbGluZyBvZgotIyBvYmplY3RzLgotIwot IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyBEb21haW5zIG11c3QgYmUgZGVjbGFyZWQgdXNp bmcgZG9tYWluX3R5cGUKLW5ldmVyYWxsb3cgKiB+ZG9tYWluX3R5cGU6ZG9tYWluIHsgY3JlYXRl IHRyYW5zaXRpb24gfTsKLQotIyBSZXNvdXJjZXMgbXVzdCBiZSBkZWNsYXJlZCB1c2luZyByZXNv dXJjZV90eXBlCi1uZXZlcmFsbG93ICogfnJlc291cmNlX3R5cGU6cmVzb3VyY2UgdXNlOwotCi0j IEV2ZW50cyBtdXN0IHVzZSBldmVudF90eXBlIChzZWUgY3JlYXRlX2NoYW5uZWwgZm9yIGEgdGVt cGxhdGUpCi1uZXZlcmFsbG93IH5ldmVudF90eXBlICo6ZXZlbnQgYmluZDsKLW5ldmVyYWxsb3cg KiB+ZXZlbnRfdHlwZTpldmVudCB7IGNyZWF0ZSBzZW5kIHN0YXR1cyB9OwotCi0jIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwotIwotIyBSb2xlcwotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQot IyBUaGUgb2JqZWN0IHJvbGUgKG9iamVjdF9yKSBpcyB1c2VkIGZvciBkZXZpY2VzLCByZXNvdXJj ZXMsIGFuZCBldmVudCBjaGFubmVsczsKLSMgaXQgZG9lcyBub3QgbmVlZCB0byBiZSBkZWZpbmVk IGhlcmUgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBmb3IgZG9tYWlucy4KLQotIyBUaGUgc3lzdGVt IHJvbGUgaXMgdXNlZCBmb3IgdXRpbGl0eSBkb21haW5zIGFuZCBwc2V1ZG8tZG9tYWlucwotcm9s ZSBzeXN0ZW1fcjsKLXJvbGUgc3lzdGVtX3IgdHlwZXMgeyB4ZW5fdHlwZSBkb21haW5fdHlwZSB9 OwotIyBJZiB5b3Ugd2FudCB0byBwcmV2ZW50IGRvbVVzIGZyb20gYmVpbmcgcGxhY2VkIGluIHN5 c3RlbV9yOgotIyNyb2xlIHN5c3RlbV9yIHR5cGVzIHsgeGVuX3R5cGUgZG9tMF90IH07Ci0KLSMg VGhlIHZtIHJvbGUgaXMgdXNlZCBmb3IgY3VzdG9tZXIgdmlydHVhbCBtYWNoaW5lcwotcm9sZSB2 bV9yOwotcm9sZSB2bV9yIHR5cGVzIHsgZG9tYWluX3R5cGUgLWRvbTBfdCB9OwotLSAKMi41LjUK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=