From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel De Graaf Subject: [PATCH 1/5] flask/policy: split into modules Date: Mon, 23 May 2016 11:05:29 -0400 Message-ID: <1464015933-26891-2-git-send-email-dgdegra@tycho.nsa.gov> References: <1464015933-26891-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: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b4rQl-0000wm-9M for xen-devel@lists.xenproject.org; Mon, 23 May 2016 15:06:07 +0000 In-Reply-To: <1464015933-26891-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.xenproject.org Cc: steve@zentific.com, Daniel De Graaf , cardoe@cardoe.com List-Id: xen-devel@lists.xenproject.org VGhpcyBtYWtlcyBpdCBlYXNpZXIgdG8gZW5hYmxlIG9yIGRpc2FibGUgcGFydHMgb2YgdGhlIFhT TSBwb2xpY3kuCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgRGUgR3JhYWYgPGRnZGVncmFAdHljaG8u bnNhLmdvdj4KLS0tCiB0b29scy9mbGFzay9wb2xpY3kvTWFrZWZpbGUgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyMiArLQogdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvZGVmYXVsdF9yb2xl LnRlICAgICAgICAgfCAgIDggKwogdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvZG9tMC50ZSAg ICAgICAgICAgICAgICAgfCAgNzQgKysrKysrCiB0b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9k b21VLnRlICAgICAgICAgICAgICAgICB8ICAyOCArKysKIHRvb2xzL2ZsYXNrL3BvbGljeS9tb2R1 bGVzL2d1ZXN0X2ZlYXR1cmVzLnRlICAgICAgIHwgIDMxICsrKwogdG9vbHMvZmxhc2svcG9saWN5 L21vZHVsZXMvaXNvbGF0ZWRfZG9tVS50ZSAgICAgICAgfCAgIDcgKwogdG9vbHMvZmxhc2svcG9s aWN5L21vZHVsZXMvbW9kdWxlcy5jb25mICAgICAgICAgICAgfCAgMzcgKysrCiB0b29scy9mbGFz ay9wb2xpY3kvbW9kdWxlcy9uaWNfZGV2LnRlICAgICAgICAgICAgICB8ICAxNCArKwogdG9vbHMv Zmxhc2svcG9saWN5L21vZHVsZXMvbm9taWdyYXRlLnRlICAgICAgICAgICAgfCAgIDggKwogdG9v bHMvZmxhc2svcG9saWN5L21vZHVsZXMvcHJvdF9kb21VLnRlICAgICAgICAgICAgfCAgMTMgKwog Li4uL3BvbGljeS97cG9saWN5L21vZHVsZXMveGVuID0+IG1vZHVsZXN9L3hlbi5pZiAgfCAgIDAK IHRvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi50ZSAgICAgICAgICAgICAgICAgIHwgIDg0 ICsrKysrKysKIHRvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy5jb25mICAgICAgICAg ICAgIHwgIDE1IC0tCiB0b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMveGVuL3hlbi50 ZSAgICAgICB8IDI3MiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDE0IGZpbGVzIGNoYW5nZWQsIDMx MSBpbnNlcnRpb25zKCspLCAzMDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9v bHMvZmxhc2svcG9saWN5L21vZHVsZXMvZGVmYXVsdF9yb2xlLnRlCiBjcmVhdGUgbW9kZSAxMDA2 NDQgdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvZG9tMC50ZQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHRvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2RvbVUudGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0 b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9ndWVzdF9mZWF0dXJlcy50ZQogY3JlYXRlIG1vZGUg MTAwNjQ0IHRvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2lzb2xhdGVkX2RvbVUudGUKIGNyZWF0 ZSBtb2RlIDEwMDY0NCB0b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9tb2R1bGVzLmNvbmYKIGNy ZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9uaWNfZGV2LnRlCiBj cmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvbm9taWdyYXRlLnRl CiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvcHJvdF9kb21V LnRlCiByZW5hbWUgdG9vbHMvZmxhc2svcG9saWN5L3twb2xpY3kvbW9kdWxlcy94ZW4gPT4gbW9k dWxlc30veGVuLmlmICgxMDAlKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2ZsYXNrL3BvbGlj eS9tb2R1bGVzL3hlbi50ZQogZGVsZXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2ZsYXNrL3BvbGljeS9w b2xpY3kvbW9kdWxlcy5jb25mCiBkZWxldGUgbW9kZSAxMDA2NDQgdG9vbHMvZmxhc2svcG9saWN5 L3BvbGljeS9tb2R1bGVzL3hlbi94ZW4udGUKCmRpZmYgLS1naXQgYS90b29scy9mbGFzay9wb2xp Y3kvTWFrZWZpbGUgYi90b29scy9mbGFzay9wb2xpY3kvTWFrZWZpbGUKaW5kZXggNGJlOTIxYy4u YjJjMmQwNiAxMDA2NDQKLS0tIGEvdG9vbHMvZmxhc2svcG9saWN5L01ha2VmaWxlCisrKyBiL3Rv b2xzL2ZsYXNrL3BvbGljeS9NYWtlZmlsZQpAQCAtMzcsNyArMzcsNyBAQCBQT0xJQ1lfVkVSX0xJ U1RfSFYgPSAyNCAzMAogCiAjIHBvbGljeSBzb3VyY2UgbGF5b3V0CiBQT0xESVIgOj0gcG9saWN5 Ci1NT0RESVIgOj0gJChQT0xESVIpL21vZHVsZXMKK01PRERJUiA6PSBtb2R1bGVzCiAKICMgQ2xh c3NlcyBhbmQgYWNjZXNzIHZlY3RvcnMgZGVmaW5lZCBpbiB0aGUgaHlwZXJ2aXNvci4gQ2hhbmdl cyB0byB0aGVzZSByZXF1aXJlCiAjIGEgcmVjb21waWxlIG9mIGJvdGggdGhlIGh5cGVydmlzb3Ig YW5kIHNlY3VyaXR5IHBvbGljeS4KQEAgLTYwLDcgKzYwLDcgQEAgREVWX09DT05TIDo9ICQoUE9M RElSKS9kZXZpY2VfY29udGV4dHMKIAogIyBjb25maWcgZmlsZSBwYXRocwogR0xPQkFMVFVOIDo9 ICQoUE9MRElSKS9nbG9iYWxfdHVuYWJsZXMKLU1PRF9DT05GIDo9ICQoUE9MRElSKS9tb2R1bGVz LmNvbmYKK01PRF9DT05GIDo9ICQoTU9ERElSKS9tb2R1bGVzLmNvbmYKIAogIyBjaGVja3BvbGlj eSBjYW4gdXNlIHRoZSAjbGluZSBkaXJlY3RpdmVzIHByb3ZpZGVkIGJ5IC1zIGZvciBlcnJvciBy ZXBvcnRpbmc6CiBNNFBBUkFNIDo9IC1EIHNlbGZfY29udGFpbmVkX3BvbGljeSAtcwpAQCAtODQs MjIgKzg0LDE0IEBAIGVuZGlmCiBNNFBBUkFNICs9IC1EIG1sc19udW1fc2Vucz0kKE1MU19TRU5T KSAtRCBtbHNfbnVtX2NhdHM9JChNTFNfQ0FUUykKIAogCi0jIEZpbmQgbW9kdWxlcwotQUxMX0xB WUVSUyA6PSAkKGZpbHRlci1vdXQgJChNT0RESVIpL0NWUywkKHNoZWxsIGZpbmQgJCh3aWxkY2Fy ZCAkKE1PRERJUikvKikgLW1heGRlcHRoIDAgLXR5cGUgZCkpCi0KLSMgc29ydCBoZXJlIHNpbmNl IGl0IHJlbW92ZXMgZHVwbGljYXRlcywgd2hpY2ggY2FuIGhhcHBlbgotIyB3aGVuIGEgZ2VuZXJh dGVkIGZpbGUgaXMgYWxyZWFkeSBnZW5lcmF0ZWQKLURFVEVDVEVEX01PRFMgOj0gJChzb3J0ICQo Zm9yZWFjaCBkaXIsJChBTExfTEFZRVJTKSwkKHdpbGRjYXJkICQoZGlyKS8qLnRlKSkpCi0KICMg bW9kdWxlcy5jb25mIHNldHRpbmcgZm9yIHBvbGljeSBjb25maWd1cmF0aW9uCiBNT0RFTkFCTEVE IDo9IG9uCiAKICMgZXh0cmFjdCBzZXR0aW5ncyBmcm9tIG1vZHVsZXMuY29uZgotRU5BQkxFRF9N T0RTIDo9ICQoZm9yZWFjaCBtb2QsJChzaGVsbCBhd2sgJy9eWyBcdF0qW2Etel0veyBpZiAoJCQz ID09ICIkKE1PREVOQUJMRUQpIikgcHJpbnQgJCQxIH0nICQoTU9EX0NPTkYpIDI+IC9kZXYvbnVs bCksJChzdWJzdCAuLywsJChzaGVsbCBmaW5kIC1pbmFtZSAkKG1vZCkudGUpKSkKLQotQUxMX01P RFVMRVMgOj0gJChmaWx0ZXIgJChFTkFCTEVEX01PRFMpLCQoREVURUNURURfTU9EUykpCitFTkFC TEVEX0xJU1QgOj0gJChzaGVsbCBhd2sgJy9eWyBcdF0qW2Etel0veyBpZiAoJCQzID09ICIkKE1P REVOQUJMRUQpIikgcHJpbnQgJCQxIH0nICQoTU9EX0NPTkYpIDI+IC9kZXYvbnVsbCkKIAotQUxM X0lOVEVSRkFDRVMgOj0gJChBTExfTU9EVUxFUzoudGU9LmlmKQorQUxMX01PRFVMRVMgOj0gJChm b3JlYWNoIG1vZCwkKEVOQUJMRURfTElTVCksJChNT0RESVIpLyQobW9kKS50ZSkKK0FMTF9JTlRF UkZBQ0VTIDo9ICQod2lsZGNhcmQgJChBTExfTU9EVUxFUzoudGU9LmlmKSkKIAogIyBUaGUgb3Jk ZXIgb2YgdGhlc2UgZmlsZXMgaXMgaW1wb3J0YW50CiBQT0xJQ1lfU0VDVElPTlMgOj0gJChTRUND TEFTUykgJChJU0lEX0RFQ0xTKSAkKEFWUykKQEAgLTExOCw4ICsxMTAsOCBAQCBpbnN0YWxsOiAk KFBPTElDWV9GSUxFTkFNRSkKICQoUE9MSUNZX0ZJTEVOQU1FKTogcG9saWN5LmNvbmYKIAkkKENI RUNLUE9MSUNZKSAkKENIRUNLUE9MSUNZX1BBUkFNKSAkXiAtbyAkQAogCi1wb2xpY3kuY29uZjog JChQT0xJQ1lfU0VDVElPTlMpCi0JJChNNCkgJChNNFBBUkFNKSAkXiA+ICRACitwb2xpY3kuY29u ZjogJChQT0xJQ1lfU0VDVElPTlMpICQoTU9EX0NPTkYpCisJJChNNCkgJChNNFBBUkFNKSAkKFBP TElDWV9TRUNUSU9OUykgPiAkQAogCiBjbGVhbjoKIAkkKFJNKSB0bXAgcG9saWN5LmNvbmYgJChQ T0xJQ1lfRklMRU5BTUUpCmRpZmYgLS1naXQgYS90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9k ZWZhdWx0X3JvbGUudGUgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9kZWZhdWx0X3JvbGUu dGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRmODcwZgotLS0gL2Rldi9u dWxsCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2RlZmF1bHRfcm9sZS50ZQpAQCAt MCwwICsxLDggQEAKKyMgQWxsb3cgYWxsIGRvbWFpbnMgdG8gdXNlIHN5c3RlbV9yIHNvIHRoYXQg c3lzdGVtcyB0aGF0IGFyZSBub3QgdXNpbmcgdGhlCisjIHVzZXIvcm9sZSBzZXBhcmF0aW9uIGZl YXR1cmUgd2lsbCB3b3JrIHByb3Blcmx5Lgorcm9sZSBzeXN0ZW1fciB0eXBlcyBkb21haW5fdHlw ZTsKKworIyBUaGUgdm0gcm9sZSBpcyB1c2VkIGFzIHBhcnQgb2YgdXNlciBzZXBhcmF0aW9uLiAg QWxsb3cgYWxsIGRvbWFpbiB0eXBlcyB0byB1c2UKKyMgdGhpcyByb2xlIGV4Y2VwdCBkb20wLgor cm9sZSB2bV9yOworcm9sZSB2bV9yIHR5cGVzIHsgZG9tYWluX3R5cGUgLWRvbTBfdCB9OwpkaWZm IC0tZ2l0IGEvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvZG9tMC50ZSBiL3Rvb2xzL2ZsYXNr L3BvbGljeS9tb2R1bGVzL2RvbTAudGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uZGQ0ZDdkZAotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVz L2RvbTAudGUKQEAgLTAsMCArMSw3NCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMg QWxsb3cgZG9tMCBhY2Nlc3MgdG8gYWxsIHN5c2N0bHMsIGRldmljZXMsIGFuZCB0aGUgc2VjdXJp dHkgc2VydmVyLgorIworIyBXaGlsZSB0aGlzIGNvdWxkIGJlIHdyaXR0ZW4gbW9yZSBicmllZmx5 IHVzaW5nIHdpbGRjYXJkcywgdGhlIHBlcm1pc3Npb25zIGFyZQorIyBsaXN0ZWQgb3V0IHRvIG1h a2UgcmVtb3Zpbmcgc3BlY2lmaWMgcGVybWlzc2lvbnMgc2ltcGxlci4KKyMKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCithbGxvdyBkb20wX3QgeGVuX3Q6eGVuIHsKKwlzZXR0aW1lIHRidWZjb250 cm9sIHJlYWRjb25zb2xlIGNsZWFyY29uc29sZSBwZXJmY29udHJvbCBtdHJyX2FkZAorCW10cnJf ZGVsIG10cnJfcmVhZCBtaWNyb2NvZGUgcGh5c2luZm8gcXVpcmsgd3JpdGVjb25zb2xlIHJlYWRh cGljCisJd3JpdGVhcGljIHByaXZwcm9maWxlIG5vbnByaXZwcm9maWxlIGtleGVjIGZpcm13YXJl IHNsZWVwIGZyZXF1ZW5jeQorCWdldGlkbGUgZGVidWcgZ2V0Y3B1aW5mbyBoZWFwIHBtX29wIG1j YV9vcCBsb2NrcHJvZiBjcHVwb29sX29wIHRtZW1fb3AKKwl0bWVtX2NvbnRyb2wgZ2V0c2NoZWR1 bGVyIHNldHNjaGVkdWxlcgorfTsKK2FsbG93IGRvbTBfdCB4ZW5fdDp4ZW4yIHsKKwlyZXNvdXJj ZV9vcCBwc3JfY210X29wIHBzcl9jYXRfb3AgcG11X2N0cmwgZ2V0X3N5bWJvbAorCWdldF9jcHVf bGV2ZWxsaW5nX2NhcHMgZ2V0X2NwdV9mZWF0dXJlc2V0IHhzcGxpY2Vfb3AKK307CisKKyMgQWxs b3cgZG9tMCB0byB1c2UgYWxsIFhFTlZFUl8gc3Vib3BzIHRoYXQgaGF2ZSBjaGVja3MuCisjIE5v dGUgdGhhdCBkb20wIGlzIHBhcnQgb2YgZG9tYWluX3R5cGUgc28gdGhpcyBoYXMgZHVwbGljYXRl cy4KK2FsbG93IGRvbTBfdCB4ZW5fdDp2ZXJzaW9uIHsKKwl4ZW5fZXh0cmF2ZXJzaW9uIHhlbl9j b21waWxlX2luZm8geGVuX2NhcGFiaWxpdGllcworCXhlbl9jaGFuZ2VzZXQgeGVuX3BhZ2VzaXpl IHhlbl9ndWVzdF9oYW5kbGUgeGVuX2NvbW1hbmRsaW5lCisJeGVuX2J1aWxkX2lkCit9OworCith bGxvdyBkb20wX3QgeGVuX3Q6bW11IG1lbW9yeW1hcDsKKworIyBBbGxvdyBkb20wIHRvIHVzZSB0 aGVzZSBkb21jdGxzIG9uIGl0c2VsZi4gRm9yIGRvbWN0bHMgYWN0aW5nIG9uIG90aGVyCisjIGRv bWFpbnMsIHNlZSB0aGUgZGVmaW5pdGlvbnMgb2YgY3JlYXRlX2RvbWFpbiBhbmQgbWFuYWdlX2Rv bWFpbi4KK2FsbG93IGRvbTBfdCBkb20wX3Q6ZG9tYWluIHsKKwlzZXR2Y3B1Y29udGV4dCBtYXhf dmNwdXMgc2V0YWZmaW5pdHkgZ2V0YWZmaW5pdHkgZ2V0c2NoZWR1bGVyCisJZ2V0ZG9tYWluaW5m byBnZXR2Y3B1aW5mbyBnZXR2Y3B1Y29udGV4dCBzZXRkb21haW5tYXhtZW0gc2V0ZG9tYWluaGFu ZGxlCisJc2V0ZGVidWdnaW5nIGh5cGVyY2FsbCBzZXR0aW1lIHNldGFkZHJzaXplIGdldGFkZHJz aXplIHRyaWdnZXIKKwlnZXRleHR2Y3B1Y29udGV4dCBzZXRleHR2Y3B1Y29udGV4dCBnZXR2Y3B1 ZXh0c3RhdGUgc2V0dmNwdWV4dHN0YXRlCisJZ2V0cG9kdGFyZ2V0IHNldHBvZHRhcmdldCBzZXRf bWlzY19pbmZvIHNldF92aXJxX2hhbmRsZXIKK307CithbGxvdyBkb20wX3QgZG9tMF90OmRvbWFp bjIgeworCXNldF9jcHVpZCBnZXR0c2Mgc2V0dHNjIHNldHNjaGVkdWxlciBzZXRfbWF4X2V2dGNo biBzZXRfdm51bWFpbmZvCisJZ2V0X3ZudW1haW5mbyBwc3JfY210X29wIHBzcl9jYXRfb3AKK307 CithbGxvdyBkb20wX3QgZG9tMF90OnJlc291cmNlIHsgYWRkIHJlbW92ZSB9OworCisjIFRoZXNl IHBlcm1pc3Npb25zIGFsbG93IHVzaW5nIHRoZSBGTEFTSyBzZWN1cml0eSBzZXJ2ZXIgdG8gY29t cHV0ZSBhY2Nlc3MKKyMgY2hlY2tzIGxvY2FsbHksIHdoaWNoIGNvdWxkIGJlIHVzZWQgYnkgYSBk b21haW4gb3Igc2VydmljZSAoc3VjaCBhcyB4ZW5zdG9yZSkKKyMgdGhhdCBkb2VzIG5vdCBoYXZl IGl0cyBvd24gc2VjdXJpdHkgc2VydmVyIHRvIG1ha2UgYWNjZXNzIGRlY2lzaW9ucyBiYXNlZCBv bgorIyBYZW4ncyBzZWN1cml0eSBwb2xpY3kuCithbGxvdyBkb20wX3Qgc2VjdXJpdHlfdDpzZWN1 cml0eSB7CisJY29tcHV0ZV9hdiBjb21wdXRlX2NyZWF0ZSBjb21wdXRlX21lbWJlciBjb21wdXRl X3JlbGFiZWwgY29tcHV0ZV91c2VyCit9OworCisjIEFsbG93IHN0cmluZy9TSUQgY29udmVyc2lv bnMgKGZvciAieGwgbGlzdCAtWiIgYW5kIHNpbWlsYXIpCithbGxvdyBkb20wX3Qgc2VjdXJpdHlf dDpzZWN1cml0eSBjaGVja19jb250ZXh0OworCisjIEFsbG93IGZsYXNrLWxhYmVsLXBjaSB0byBh ZGQgYW5kIGNoYW5nZSBsYWJlbHMKK2FsbG93IGRvbTBfdCBzZWN1cml0eV90OnNlY3VyaXR5IHsg YWRkX29jb250ZXh0IGRlbF9vY29udGV4dCB9OworCisjIEFsbG93IHBlcmZvcm1hbmNlIHBhcmFt ZXRlcnMgb2YgdGhlIHNlY3VyaXR5IHNlcnZlciB0byBiZSB0d2Vha2VkCithbGxvdyBkb20wX3Qg c2VjdXJpdHlfdDpzZWN1cml0eSBzZXRzZWNwYXJhbTsKKworIyBBbGxvdyBjaGFuZ2luZyB0aGUg c2VjdXJpdHkgcG9saWN5CithbGxvdyBkb20wX3Qgc2VjdXJpdHlfdDpzZWN1cml0eSB7IGxvYWRf cG9saWN5IHNldGVuZm9yY2Ugc2V0Ym9vbCB9OworCisjIEF1ZGl0IHBvbGljeSBjaGFuZ2UgZXZl bnRzIGV2ZW4gd2hlbiB0aGV5IGFyZSBhbGxvd2VkCithdWRpdGFsbG93IGRvbTBfdCBzZWN1cml0 eV90OnNlY3VyaXR5IHsgbG9hZF9wb2xpY3kgc2V0ZW5mb3JjZSBzZXRib29sIH07CisKK2FkbWlu X2RldmljZShkb20wX3QsIGRldmljZV90KQorYWRtaW5fZGV2aWNlKGRvbTBfdCwgaXJxX3QpCith ZG1pbl9kZXZpY2UoZG9tMF90LCBpb3BvcnRfdCkKK2FkbWluX2RldmljZShkb20wX3QsIGlvbWVt X3QpCisKK2RvbWFpbl9jb21tcyhkb20wX3QsIGRvbTBfdCkKZGlmZiAtLWdpdCBhL3Rvb2xzL2Zs YXNrL3BvbGljeS9tb2R1bGVzL2RvbVUudGUgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9k b21VLnRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3N2RmMjkKLS0tIC9k ZXYvbnVsbAorKysgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9kb21VLnRlCkBAIC0wLDAg KzEsMjggQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgRG9tYWluIGNyZWF0aW9uCisj CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2RlY2xhcmVfZG9tYWluKGRvbVVfdCkKK2RvbWFp bl9zZWxmX2NvbW1zKGRvbVVfdCkKK2NyZWF0ZV9kb21haW4oZG9tMF90LCBkb21VX3QpCittYW5h Z2VfZG9tYWluKGRvbTBfdCwgZG9tVV90KQorZG9tYWluX2NvbW1zKGRvbTBfdCwgZG9tVV90KQor ZG9tYWluX2NvbW1zKGRvbVVfdCwgZG9tVV90KQorbWlncmF0ZV9kb21haW5fb3V0KGRvbTBfdCwg ZG9tVV90KQorZG9tYWluX3NlbGZfY29tbXMoZG9tVV90KQorCisjIERldmljZSBtb2RlbCBmb3Ig ZG9tVV90LiAgWW91IGNhbiBkZWZpbmUgZGlzdGluY3QgdHlwZXMgZm9yIGRldmljZSBtb2RlbHMg Zm9yCisjIGRvbWFpbnMgb2Ygb3RoZXIgdHlwZXMsIG9yIGFkZCBtb3JlIG1ha2VfZGV2aWNlX21v ZGVsIGxpbmVzIGZvciB0aGlzIHR5cGUuCitkZWNsYXJlX2RvbWFpbihkbV9kb21fdCkKK2NyZWF0 ZV9kb21haW4oZG9tMF90LCBkbV9kb21fdCkKK21hbmFnZV9kb21haW4oZG9tMF90LCBkbV9kb21f dCkKK2RvbWFpbl9jb21tcyhkb20wX3QsIGRtX2RvbV90KQorbWFrZV9kZXZpY2VfbW9kZWwoZG9t MF90LCBkbV9kb21fdCwgZG9tVV90KQorCisjIFRoaXMgaXMgcmVxdWlyZWQgZm9yIFBDSSAob3Ig b3RoZXIgZGV2aWNlKSBwYXNzdGhyb3VnaAorZGVsZWdhdGVfZGV2aWNlcyhkb20wX3QsIGRvbVVf dCkKKworIyBCb3RoIG9mIHRoZXNlIGRvbWFpbiB0eXBlcyBjYW4gYmUgY3JlYXRlZCB1c2luZyB0 aGUgZGVmYXVsdCAoc3lzdGVtKSByb2xlCityb2xlIHN5c3RlbV9yIHR5cGVzIHsgZG9tVV90IGRt X2RvbV90IH07CmRpZmYgLS1naXQgYS90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9ndWVzdF9m ZWF0dXJlcy50ZSBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2d1ZXN0X2ZlYXR1cmVzLnRl Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhYzk3ODAKLS0tIC9kZXYvbnVs bAorKysgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9ndWVzdF9mZWF0dXJlcy50ZQpAQCAt MCwwICsxLDMxIEBACisjIEFsbG93IGFsbCBkb21haW5zIHRvIHVzZSAodW5wcml2aWxlZ2VkIHBh cnRzIG9mKSB0aGUgdG1lbSBoeXBlcmNhbGwKK2FsbG93IGRvbWFpbl90eXBlIHhlbl90OnhlbiB0 bWVtX29wOworCisjIEFsbG93IGFsbCBkb21haW5zIHRvIHVzZSBQTVUgKGJ1dCBub3QgdG8gY2hh bmdlIGl0cyBzZXR0aW5ncyAtLS0gdGhhdCdzIHdoYXQKKyMgcG11X2N0cmwgaXMgZm9yKQorYWxs b3cgZG9tYWluX3R5cGUgeGVuX3Q6eGVuMiBwbXVfdXNlOworCisjIEFsbG93IGd1ZXN0IGNvbnNv bGUgb3V0cHV0IHRvIHRoZSBzZXJpYWwgY29uc29sZS4gIFRoaXMgaXMgdXNlZCBieSBQViBMaW51 eAorIyBhbmQgc3R1YiBkb21haW5zIGZvciBlYXJseSBib290IG91dHB1dCwgc28gZG9uJ3QgYXVk aXQgZXZlbiB3aGVuIHdlIGRlbnkgaXQuCisjIFdpdGhvdXQgWFNNLCB0aGlzIGlzIGVuYWJsZWQg b25seSBpZiB0aGUgWGVuIHdhcyBjb21waWxlZCBpbiBkZWJ1ZyBtb2RlLgorZ2VuX2Jvb2woZ3Vl c3Rfd3JpdGVjb25zb2xlLCB0cnVlKQoraWYgKGd1ZXN0X3dyaXRlY29uc29sZSkgeworCWFsbG93 IGRvbWFpbl90eXBlIHhlbl90IDogeGVuIHdyaXRlY29uc29sZTsKK30gZWxzZSB7CisJZG9udGF1 ZGl0IGRvbWFpbl90eXBlIHhlbl90IDogeGVuIHdyaXRlY29uc29sZTsKK30KKworIyBGb3Igbm9y bWFsIGd1ZXN0cywgYWxsb3cgYWxsIHF1ZXJpZXMgZXhjZXB0IFhFTlZFUl9jb21tYW5kbGluZS4K K2FsbG93IGRvbWFpbl90eXBlIHhlbl90OnZlcnNpb24geworICAgIHhlbl9leHRyYXZlcnNpb24g eGVuX2NvbXBpbGVfaW5mbyB4ZW5fY2FwYWJpbGl0aWVzCisgICAgeGVuX2NoYW5nZXNldCB4ZW5f cGFnZXNpemUgeGVuX2d1ZXN0X2hhbmRsZQorfTsKKworIyBWZXJzaW9uIHF1ZXJpZXMgZG9uJ3Qg bmVlZCBhdWRpdGluZyB3aGVuIGRlbmllZC4gIFRoZXkgY2FuIGJlCisjIGVuY291bnRlcmVkIGlu IG5vcm1hbCBvcGVyYXRpb24gYnkgeGwgb3IgYnkgcmVhZGluZyBzeXNmcyBmaWxlcyBpbgorIyBM aW51eCwgc28gd2l0aG91dCB0aGlzIHRoZXkgd2lsbCBzaG93IHVwIGluIHRoZSBsb2dzLiAgU2lu Y2UgdGhlc2UKKyMgb3BlcmF0aW9ucyByZXR1cm4gdmFsaWQgcmVzcG9uc2VzIChsaWtlICJkZW5p ZWQiKSwgaGlkaW5nIHRoZSBkZW5pYWxzCisjIHNob3VsZCBub3QgYnJlYWsgYW55dGhpbmcuCitk b250YXVkaXQgZG9tYWluX3R5cGUgeGVuX3Q6dmVyc2lvbiB7CisJeGVuX2NvbW1hbmRsaW5lIHhl bl9idWlsZF9pZAorfTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2lz b2xhdGVkX2RvbVUudGUgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9pc29sYXRlZF9kb21V LnRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlZTc2ODkKLS0tIC9kZXYv bnVsbAorKysgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9pc29sYXRlZF9kb21VLnRlCkBA IC0wLDAgKzEsNyBAQAorZGVjbGFyZV9kb21haW4oaXNvbGF0ZWRfZG9tVV90KQorY3JlYXRlX2Rv bWFpbihkb20wX3QsIGlzb2xhdGVkX2RvbVVfdCkKK21hbmFnZV9kb21haW4oZG9tMF90LCBpc29s YXRlZF9kb21VX3QpCitkb21haW5fY29tbXMoZG9tMF90LCBpc29sYXRlZF9kb21VX3QpCittaWdy YXRlX2RvbWFpbl9vdXQoZG9tMF90LCBpc29sYXRlZF9kb21VX3QpCitkb21haW5fc2VsZl9jb21t cyhpc29sYXRlZF9kb21VX3QpCisKZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1 bGVzL21vZHVsZXMuY29uZiBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL21vZHVsZXMuY29u ZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTFkOTA1Ci0tLSAvZGV2L251 bGwKKysrIGIvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvbW9kdWxlcy5jb25mCkBAIC0wLDAg KzEsMzcgQEAKKyMKKyMgVGhpcyBmaWxlIGNvbnRhaW5zIGEgbGlzdGluZyBvZiBhdmFpbGFibGUg bW9kdWxlcy4KKyMKKyMgVG8gcHJldmVudCBhIG1vZHVsZSBmcm9tICBiZWluZyB1c2VkIGluIHBv bGljeSBjcmVhdGlvbiwgc2V0IHRoZSBtb2R1bGUgbmFtZQorIyB0byAib2ZmIjsgb3RoZXJ3aXNl LCBzZXQgdGhlIG1vZHVsZSBuYW1lIG9uICJvbiIuCisjCisjIFRoZSBvcmRlciB0aGUgbW9kdWxl cyBhcHBlYXIgaW4gdGhpcyBmaWxlIGlzIHRoZSBvcmRlciB0aGV5IHdpbGwgYmUgcGFyc2VkOwor IyB0aGlzIGNhbiBiZSBpbXBvcnRhbnQgaWYgeW91IHBsYW4gdG8gdXNlIHR5cGVzIGRlZmluZWQg aW4gb25lIGZpbGUgaW4gYW5vdGhlci4KKyMKKworIyBCYXNpYyB0eXBlcyBhbmQgY2xhc3NlcyBm b3IgdGhlIFhlbiBoeXBlcnZpc29yLiAgVGhpcyBtb2R1bGUgaXMgcmVxdWlyZWQuCit4ZW4gPSBv bgorCisjIFBlcm1pc3Npb25zIGZvciBkb21haW4gMC4gIE1vc3Qgb2YgdGhlc2UgYXJlIHJlcXVp cmVkIHRvIGJvb3QuCitkb20wID0gb24KKworIyBBbGxvdyBhbGwgZG9tYWlucyB0aGUgYWJpbGl0 eSB0byB1c2UgYWNjZXNzLWNvbnRyb2xsZWQgZmVhdHVyZXMgYW5kIGh5cGVyY2FsbHMKKyMgdGhh dCBhcmUgbm90IHJlc3RyaWN0ZWQgd2hlbiBYU00gaXMgZGlzYWJsZWQuCitndWVzdF9mZWF0dXJl cyA9IG9uCisKKyMgVGhlIGRlZmF1bHQgZG9tYWluIHR5cGUgKGRvbVVfdCkgYW5kIGl0cyBkZXZp Y2UgbW9kZWwgKGRtX2RvbV90KS4gIFRoZSBkb21haW4KKyMgaXMgY3JlYXRlZCBhbmQgbWFuYWdl ZCBieSBkb20wX3QsIGFuZCBoYXMgbm8gc3BlY2lhbCByZXN0cmljdGlvbnMuCisjCisjIFRoaXMg aXMgcmVxdWlyZWQgaWYgeW91IHdhbnQgdG8gYmUgYWJsZSB0byBjcmVhdGUgZG9tYWlucyB3aXRo b3V0IHNwZWNpZnlpbmcKKyMgdGhlaXIgWFNNIGxhYmVsIGluIHRoZSBjb25maWd1cmF0aW9uLgor ZG9tVSA9IG9uCisKKyMgRXhhbXBsZSB0eXBlcyB3aXRoIHJlc3RyaWN0aW9ucworaXNvbGF0ZWRf ZG9tVSA9IG9uCitwcm90X2RvbVUgPSBvbgorbm9taWdyYXRlID0gb24KKworIyBFeGFtcGxlIGRl dmljZSBwb2xpY3kuICBBbHNvIHNlZSBwb2xpY3kvZGV2aWNlX2NvbnRleHRzLgorbmljX2RldiA9 IG9uCisKKyMgRXhhbXBsZSByb2xlcy4gIEFsc28gc2VlIHBvbGljeS91c2Vycy4KK2RlZmF1bHRf cm9sZSA9IG9uCmRpZmYgLS1naXQgYS90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9uaWNfZGV2 LnRlIGIvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvbmljX2Rldi50ZQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDQ4NGFmCi0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMv Zmxhc2svcG9saWN5L21vZHVsZXMvbmljX2Rldi50ZQpAQCAtMCwwICsxLDE0IEBACisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisjCisjIERldmljZSBkZWxlZ2F0aW9uCisjCisjIFRoaXMgcmVxdWly ZXMgdGhhdCB0aGUgZGV2aWNlIGJlIGxhYmVsZWQgd2l0aCBhIHR5cGUgZGVmaW5lZCBoZXJlLiAg WW91IGNhbgorIyB1c2UgZmxhc2stbGFiZWwtcGNpIHRvIGR5bmFtaWNhbGx5IGxhYmVsIGRldmlj ZXMgb24gZWFjaCBib290IG9yIGRlZmluZSB0aGUKKyMgbGFiZWxzIHN0YXRpY2FsbHkgaW4gdG9v bHMvZmxhc2svcG9saWN5L3BvbGljeS9kZXZpY2VfY29udGV4dHMKKyMKKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKwordHlwZSBuaWNfZGV2X3QsIHJlc291cmNlX3R5cGU7CisKK2FkbWluX2Rldmlj ZShkb20wX3QsIG5pY19kZXZfdCkKK3VzZV9kZXZpY2UoZG9tVV90LCBuaWNfZGV2X3QpCmRpZmYg LS1naXQgYS90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9ub21pZ3JhdGUudGUgYi90b29scy9m bGFzay9wb2xpY3kvbW9kdWxlcy9ub21pZ3JhdGUudGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uNWI1NmNhZgotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGlj eS9tb2R1bGVzL25vbWlncmF0ZS50ZQpAQCAtMCwwICsxLDggQEAKKyMgRG9tYWlucyBvZiB0eXBl IG5vbWlncmF0ZV90IG11c3QgYmUgYnVpbHQgdmlhIHRoZSBub21pZ3JhdGVfdF9idWlsZGluZyBs YWJlbDsKKyMgb25jZSBidWlsdCwgZG9tMCBjYW5ub3QgcmVhZCB0aGVpciBtZW1vcnkuCitkZWNs YXJlX2RvbWFpbihub21pZ3JhdGVfdCkKK2RlY2xhcmVfYnVpbGRfbGFiZWwobm9taWdyYXRlX3Qp CitjcmVhdGVfZG9tYWluX2J1aWxkX2xhYmVsKGRvbTBfdCwgbm9taWdyYXRlX3QpCittYW5hZ2Vf ZG9tYWluKGRvbTBfdCwgbm9taWdyYXRlX3QpCitkb21haW5fY29tbXMoZG9tMF90LCBub21pZ3Jh dGVfdCkKK2RvbWFpbl9zZWxmX2NvbW1zKG5vbWlncmF0ZV90KQpkaWZmIC0tZ2l0IGEvdG9vbHMv Zmxhc2svcG9saWN5L21vZHVsZXMvcHJvdF9kb21VLnRlIGIvdG9vbHMvZmxhc2svcG9saWN5L21v ZHVsZXMvcHJvdF9kb21VLnRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3 YzAxMmMKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9wcm90 X2RvbVUudGUKQEAgLTAsMCArMSwxMyBAQAorIyBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvIG5v bWlncmF0ZV90OiBhIHBvbGljeSBib29sZWFuIGNvbnRyb2xzIHRoZSBhYmlsaXR5CisjIHRvIGNy ZWF0ZSBvciBtaWdyYXRlIGEgZG9tYWluIG9mIHR5cGUgcHJvdF9kb21VX3QuICBJZiBkaXNhYmxl ZCwgZG9tMCBjYW5ub3QKKyMgbWFwIG1lbW9yeSBiZWxvbmdpbmcgdG8gdGhvc2UgZG9tYWlucy4K K2dlbl9ib29sKHByb3RfZG9tc19sb2NrZWQsIGZhbHNlKQorZGVjbGFyZV9kb21haW4ocHJvdF9k b21VX3QpCitpZiAoIXByb3RfZG9tc19sb2NrZWQpIHsKKwljcmVhdGVfZG9tYWluKGRvbTBfdCwg cHJvdF9kb21VX3QpCisJbWlncmF0ZV9kb21haW5fb3V0KGRvbTBfdCwgcHJvdF9kb21VX3QpCit9 Citkb21haW5fY29tbXMoZG9tMF90LCBwcm90X2RvbVVfdCkKK2RvbWFpbl9jb21tcyhkb21VX3Qs IHByb3RfZG9tVV90KQorZG9tYWluX2NvbW1zKHByb3RfZG9tVV90LCBwcm90X2RvbVVfdCkKK2Rv bWFpbl9zZWxmX2NvbW1zKHByb3RfZG9tVV90KQpkaWZmIC0tZ2l0IGEvdG9vbHMvZmxhc2svcG9s aWN5L3BvbGljeS9tb2R1bGVzL3hlbi94ZW4uaWYgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxl cy94ZW4uaWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRvb2xzL2ZsYXNrL3Bv bGljeS9wb2xpY3kvbW9kdWxlcy94ZW4veGVuLmlmCnJlbmFtZSB0byB0b29scy9mbGFzay9wb2xp Y3kvbW9kdWxlcy94ZW4uaWYKZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVz L3hlbi50ZSBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi50ZQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzc0ZGM1Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMv Zmxhc2svcG9saWN5L21vZHVsZXMveGVuLnRlCkBAIC0wLDAgKzEsODQgQEAKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisjCisjIEF0dHJpYnV0ZXMgZm9yIHR5cGVzCisjCisjIEFuIGF0dHJpYnV0 ZSBtYXkgYmUgdXNlZCBpbiBhIHJ1bGUgYXMgc2hvcnRoYW5kIGZvciBhbGwgdHlwZXMgd2l0aCB0 aGF0CisjIGF0dHJpYnV0ZS4KKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCithdHRyaWJ1dGUg eGVuX3R5cGU7CithdHRyaWJ1dGUgZG9tYWluX3R5cGU7CithdHRyaWJ1dGUgZG9tYWluX3NlbGZf dHlwZTsKK2F0dHJpYnV0ZSBkb21haW5fdGFyZ2V0X3R5cGU7CithdHRyaWJ1dGUgcmVzb3VyY2Vf dHlwZTsKK2F0dHJpYnV0ZSBldmVudF90eXBlOworYXR0cmlidXRlIG1sc19wcml2OworCisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBUeXBlcyBmb3IgdGhlIGluaXRpYWwgU0lEcworIwor IyBUaGVzZSB0eXBlcyBhcmUgdXNlZCBpbnRlcm5hbGx5IGZvciBvYmplY3RzIGNyZWF0ZWQgZHVy aW5nIFhlbiBzdGFydHVwIG9yIGZvcgorIyBkZXZpY2VzIHRoYXQgaGF2ZSBub3QgeWV0IGJlZW4g bGFiZWxlZAorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBUaGUgaHlwZXJ2aXNvciBp dHNlbGYKK3R5cGUgeGVuX3QsIHhlbl90eXBlLCBtbHNfcHJpdjsKKworIyBEb21haW4gMAorZGVj bGFyZV9zaW5nbGV0b25fZG9tYWluKGRvbTBfdCwgbWxzX3ByaXYpOworCisjIEkvTyBtZW1vcnkg KERPTUlEX0lPIHBzZXVkby1kb21haW4pCit0eXBlIGRvbWlvX3QsIHhlbl90eXBlOworCisjIFhl biBoZWFwIChET01JRF9YRU4gcHNldWRvLWRvbWFpbikKK3R5cGUgZG9teGVuX3QsIHhlbl90eXBl OworCisjIFVubGFiZWxlZCBvYmplY3RzCit0eXBlIHVubGFiZWxlZF90LCB4ZW5fdHlwZTsKKwor IyBUaGUgWFNNL0ZMQVNLIHNlY3VyaXR5IHNlcnZlcgordHlwZSBzZWN1cml0eV90LCB4ZW5fdHlw ZTsKKworIyBVbmxhYmVsZWQgZGV2aWNlIHJlc291cmNlcworIyBOb3RlOiBkb24ndCBhbGxvdyBh Y2Nlc3MgdG8gdGhlc2UgdHlwZXMgZGlyZWN0bHk7IHNlZSBiZWxvdyBmb3IgaG93IHRvIGxhYmVs CisjICAgICAgIGRldmljZXMgYW5kIHVzZSB0aGF0IGxhYmVsIGZvciBhbGxvdyBydWxlcwordHlw ZSBpcnFfdCwgcmVzb3VyY2VfdHlwZTsKK3R5cGUgaW9wb3J0X3QsIHJlc291cmNlX3R5cGU7Cit0 eXBlIGlvbWVtX3QsIHJlc291cmNlX3R5cGU7Cit0eXBlIGRldmljZV90LCByZXNvdXJjZV90eXBl OworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBQb2xpY3kgY29uc3RyYWludHMKKyMK KyMgTmV2ZXJhbGxvdyBydWxlcyB3aWxsIGNhdXNlIHRoZSBwb2xpY3kgYnVpbGQgdG8gZmFpbCBp ZiBhbiBhbGxvdyBydWxlIGV4aXN0cworIyB0aGF0IHZpb2xhdGVzIHRoZSBleHByZXNzaW9uLiBU aGlzIGlzIHVzZWQgdG8gZW5zdXJlIHByb3BlciBsYWJlbGluZyBvZgorIyBvYmplY3RzLgorIwor IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBEb21haW5zIG11c3QgYmUgZGVjbGFyZWQgdXNp bmcgZG9tYWluX3R5cGUKK25ldmVyYWxsb3cgKiB+ZG9tYWluX3R5cGU6ZG9tYWluIHsgY3JlYXRl IHRyYW5zaXRpb24gfTsKKworIyBSZXNvdXJjZXMgbXVzdCBiZSBkZWNsYXJlZCB1c2luZyByZXNv dXJjZV90eXBlCituZXZlcmFsbG93ICogfnJlc291cmNlX3R5cGU6cmVzb3VyY2UgdXNlOworCisj IEV2ZW50cyBtdXN0IHVzZSBldmVudF90eXBlIChzZWUgY3JlYXRlX2NoYW5uZWwgZm9yIGEgdGVt cGxhdGUpCituZXZlcmFsbG93IH5ldmVudF90eXBlICo6ZXZlbnQgYmluZDsKK25ldmVyYWxsb3cg KiB+ZXZlbnRfdHlwZTpldmVudCB7IGNyZWF0ZSBzZW5kIHN0YXR1cyB9OworCisjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBSb2xlcworIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor IyBUaGUgb2JqZWN0IHJvbGUgKG9iamVjdF9yKSBpcyB1c2VkIGZvciBkZXZpY2VzLCByZXNvdXJj ZXMsIGFuZCBldmVudCBjaGFubmVsczsKKyMgaXQgZG9lcyBub3QgbmVlZCB0byBiZSBkZWZpbmVk IGhlcmUgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBmb3IgZG9tYWlucy4KKworIyBUaGUgc3lzdGVt IHJvbGUgaXMgdXNlZCBmb3IgdXRpbGl0eSBkb21haW5zIGFuZCBwc2V1ZG8tZG9tYWlucy4gIElm IHJvbGVzIGFyZQorIyBub3QgYmVpbmcgdXNlZCBmb3Igc2VwYXJhdGlvbiwgYWxsIGRvbWFpbnMg Y2FuIHVzZSB0aGUgc3lzdGVtIHJvbGUuCityb2xlIHN5c3RlbV9yOworcm9sZSBzeXN0ZW1fciB0 eXBlcyB7IHhlbl90eXBlIGRvbTBfdCB9OwpkaWZmIC0tZ2l0IGEvdG9vbHMvZmxhc2svcG9saWN5 L3BvbGljeS9tb2R1bGVzLmNvbmYgYi90b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMu Y29uZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODA0Mzk3NC4uMDAwMDAwMAotLS0g YS90b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMuY29uZgorKysgL2Rldi9udWxsCkBA IC0xLDE1ICswLDAgQEAKLSMKLSMgVGhpcyBmaWxlIGNvbnRhaW5zIGEgbGlzdGluZyBvZiBhdmFp bGFibGUgbW9kdWxlcy4KLSMgVG8gcHJldmVudCBhIG1vZHVsZSBmcm9tICBiZWluZyB1c2VkIGlu IHBvbGljeQotIyBjcmVhdGlvbiwgc2V0IHRoZSBtb2R1bGUgbmFtZSB0byAib2ZmIiBvdGhlcndp c2UKLSMgc2V0IHRoZSBtb2R1bGUgbmFtZSBvbiAib24iLgotIwotCi0jIExheWVyOiB4ZW4KLSMg TW9kdWxlOiB4ZW4KLSMgUmVxdWlyZWQgaW4gYmFzZQotIwotIyBQb2xpY3kgZm9yIHhlbi4KLSMg Ci14ZW4gPSBvbgotCmRpZmYgLS1naXQgYS90b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVs ZXMveGVuL3hlbi50ZSBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy94ZW4veGVu LnRlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYjFjOTU1Li4wMDAwMDAwCi0tLSBh L3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy94ZW4veGVuLnRlCisrKyAvZGV2L251 bGwKQEAgLTEsMjcyICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIEF0dHJp YnV0ZXMgZm9yIHR5cGVzCi0jCi0jIEFuIGF0dHJpYnV0ZSBtYXkgYmUgdXNlZCBpbiBhIHJ1bGUg YXMgc2hvcnRoYW5kIGZvciBhbGwgdHlwZXMgd2l0aCB0aGF0Ci0jIGF0dHJpYnV0ZS4KLSMKLSMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1hdHRyaWJ1dGUgeGVuX3R5cGU7Ci1hdHRyaWJ1dGUgZG9t YWluX3R5cGU7Ci1hdHRyaWJ1dGUgZG9tYWluX3NlbGZfdHlwZTsKLWF0dHJpYnV0ZSBkb21haW5f dGFyZ2V0X3R5cGU7Ci1hdHRyaWJ1dGUgcmVzb3VyY2VfdHlwZTsKLWF0dHJpYnV0ZSBldmVudF90 eXBlOwotYXR0cmlidXRlIG1sc19wcml2OwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwot IyBUeXBlcyBmb3IgdGhlIGluaXRpYWwgU0lEcwotIwotIyBUaGVzZSB0eXBlcyBhcmUgdXNlZCBp bnRlcm5hbGx5IGZvciBvYmplY3RzIGNyZWF0ZWQgZHVyaW5nIFhlbiBzdGFydHVwIG9yIGZvcgot IyBkZXZpY2VzIHRoYXQgaGF2ZSBub3QgeWV0IGJlZW4gbGFiZWxlZAotIwotIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKLQotIyBUaGUgaHlwZXJ2aXNvciBpdHNlbGYKLXR5cGUgeGVuX3QsIHhlbl90 eXBlLCBtbHNfcHJpdjsKLQotIyBEb21haW4gMAotZGVjbGFyZV9zaW5nbGV0b25fZG9tYWluKGRv bTBfdCwgbWxzX3ByaXYpOwotCi0jIEkvTyBtZW1vcnkgKERPTUlEX0lPIHBzZXVkby1kb21haW4p Ci10eXBlIGRvbWlvX3QsIHhlbl90eXBlOwotCi0jIFhlbiBoZWFwIChET01JRF9YRU4gcHNldWRv LWRvbWFpbikKLXR5cGUgZG9teGVuX3QsIHhlbl90eXBlOwotCi0jIFVubGFiZWxlZCBvYmplY3Rz Ci10eXBlIHVubGFiZWxlZF90LCB4ZW5fdHlwZTsKLQotIyBUaGUgWFNNL0ZMQVNLIHNlY3VyaXR5 IHNlcnZlcgotdHlwZSBzZWN1cml0eV90LCB4ZW5fdHlwZTsKLQotIyBVbmxhYmVsZWQgZGV2aWNl IHJlc291cmNlcwotIyBOb3RlOiBkb24ndCBhbGxvdyBhY2Nlc3MgdG8gdGhlc2UgdHlwZXMgZGly ZWN0bHk7IHNlZSBiZWxvdyBmb3IgaG93IHRvIGxhYmVsCi0jICAgICAgIGRldmljZXMgYW5kIHVz ZSB0aGF0IGxhYmVsIGZvciBhbGxvdyBydWxlcwotdHlwZSBpcnFfdCwgcmVzb3VyY2VfdHlwZTsK LXR5cGUgaW9wb3J0X3QsIHJlc291cmNlX3R5cGU7Ci10eXBlIGlvbWVtX3QsIHJlc291cmNlX3R5 cGU7Ci10eXBlIGRldmljZV90LCByZXNvdXJjZV90eXBlOwotCi0jIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwotIwotIyBBbGxvdyBkb20wIGFjY2VzcyB0byBhbGwgc3lzY3RscywgZGV2aWNlcywgYW5k IHRoZSBzZWN1cml0eSBzZXJ2ZXIuCi0jCi0jIFdoaWxlIHRoaXMgY291bGQgYmUgd3JpdHRlbiBt b3JlIGJyaWVmbHkgdXNpbmcgd2lsZGNhcmRzLCB0aGUgcGVybWlzc2lvbnMgYXJlCi0jIGxpc3Rl ZCBvdXQgdG8gbWFrZSByZW1vdmluZyBzcGVjaWZpYyBwZXJtaXNzaW9ucyBzaW1wbGVyLgotIwot IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWFsbG93IGRvbTBfdCB4ZW5fdDp4ZW4gewotCXNldHRp bWUgdGJ1ZmNvbnRyb2wgcmVhZGNvbnNvbGUgY2xlYXJjb25zb2xlIHBlcmZjb250cm9sIG10cnJf YWRkCi0JbXRycl9kZWwgbXRycl9yZWFkIG1pY3JvY29kZSBwaHlzaW5mbyBxdWlyayB3cml0ZWNv bnNvbGUgcmVhZGFwaWMKLQl3cml0ZWFwaWMgcHJpdnByb2ZpbGUgbm9ucHJpdnByb2ZpbGUga2V4 ZWMgZmlybXdhcmUgc2xlZXAgZnJlcXVlbmN5Ci0JZ2V0aWRsZSBkZWJ1ZyBnZXRjcHVpbmZvIGhl YXAgcG1fb3AgbWNhX29wIGxvY2twcm9mIGNwdXBvb2xfb3AgdG1lbV9vcAotCXRtZW1fY29udHJv bCBnZXRzY2hlZHVsZXIgc2V0c2NoZWR1bGVyCi19OwotYWxsb3cgZG9tMF90IHhlbl90OnhlbjIg ewotICAgIHJlc291cmNlX29wCi0gICAgcHNyX2NtdF9vcAotICAgIHBzcl9jYXRfb3AKLX07Ci1h bGxvdyBkb20wX3QgeGVuX3Q6eGVuMiB7Ci0gICAgcG11X2N0cmwKLSAgICBnZXRfc3ltYm9sCi0g ICAgZ2V0X2NwdV9sZXZlbGxpbmdfY2FwcwotICAgIGdldF9jcHVfZmVhdHVyZXNldAotICAgIHhz cGxpY2Vfb3AKLX07Ci0KLSMgQWxsb3cgZG9tMCB0byB1c2UgYWxsIFhFTlZFUl8gc3Vib3BzIHRo YXQgaGF2ZSBjaGVja3MuCi0jIE5vdGUgdGhhdCBkb20wIGlzIHBhcnQgb2YgZG9tYWluX3R5cGUg c28gdGhpcyBoYXMgZHVwbGljYXRlcy4KLWFsbG93IGRvbTBfdCB4ZW5fdDp2ZXJzaW9uIHsKLSAg ICB4ZW5fZXh0cmF2ZXJzaW9uIHhlbl9jb21waWxlX2luZm8geGVuX2NhcGFiaWxpdGllcwotICAg IHhlbl9jaGFuZ2VzZXQgeGVuX3BhZ2VzaXplIHhlbl9ndWVzdF9oYW5kbGUgeGVuX2NvbW1hbmRs aW5lCi0gICAgeGVuX2J1aWxkX2lkCi19OwotCi1hbGxvdyBkb20wX3QgeGVuX3Q6bW11IG1lbW9y eW1hcDsKLQotIyBBbGxvdyBkb20wIHRvIHVzZSB0aGVzZSBkb21jdGxzIG9uIGl0c2VsZi4gRm9y IGRvbWN0bHMgYWN0aW5nIG9uIG90aGVyCi0jIGRvbWFpbnMsIHNlZSB0aGUgZGVmaW5pdGlvbnMg b2YgY3JlYXRlX2RvbWFpbiBhbmQgbWFuYWdlX2RvbWFpbi4KLWFsbG93IGRvbTBfdCBkb20wX3Q6 ZG9tYWluIHsKLQlzZXR2Y3B1Y29udGV4dCBtYXhfdmNwdXMgc2V0YWZmaW5pdHkgZ2V0YWZmaW5p dHkgZ2V0c2NoZWR1bGVyCi0JZ2V0ZG9tYWluaW5mbyBnZXR2Y3B1aW5mbyBnZXR2Y3B1Y29udGV4 dCBzZXRkb21haW5tYXhtZW0gc2V0ZG9tYWluaGFuZGxlCi0Jc2V0ZGVidWdnaW5nIGh5cGVyY2Fs bCBzZXR0aW1lIHNldGFkZHJzaXplIGdldGFkZHJzaXplIHRyaWdnZXIKLQlnZXRleHR2Y3B1Y29u dGV4dCBzZXRleHR2Y3B1Y29udGV4dCBnZXR2Y3B1ZXh0c3RhdGUgc2V0dmNwdWV4dHN0YXRlCi0J Z2V0cG9kdGFyZ2V0IHNldHBvZHRhcmdldCBzZXRfbWlzY19pbmZvIHNldF92aXJxX2hhbmRsZXIK LX07Ci1hbGxvdyBkb20wX3QgZG9tMF90OmRvbWFpbjIgewotCXNldF9jcHVpZCBnZXR0c2Mgc2V0 dHNjIHNldHNjaGVkdWxlciBzZXRfbWF4X2V2dGNobiBzZXRfdm51bWFpbmZvCi0JZ2V0X3ZudW1h aW5mbyBwc3JfY210X29wIHBzcl9jYXRfb3AKLX07Ci1hbGxvdyBkb20wX3QgZG9tMF90OnJlc291 cmNlIHsgYWRkIHJlbW92ZSB9OwotCi0jIFRoZXNlIHBlcm1pc3Npb25zIGFsbG93IHVzaW5nIHRo ZSBGTEFTSyBzZWN1cml0eSBzZXJ2ZXIgdG8gY29tcHV0ZSBhY2Nlc3MKLSMgY2hlY2tzIGxvY2Fs bHksIHdoaWNoIGNvdWxkIGJlIHVzZWQgYnkgYSBkb21haW4gb3Igc2VydmljZSAoc3VjaCBhcyB4 ZW5zdG9yZSkKLSMgdGhhdCBkb2VzIG5vdCBoYXZlIGl0cyBvd24gc2VjdXJpdHkgc2VydmVyIHRv IG1ha2UgYWNjZXNzIGRlY2lzaW9ucyBiYXNlZCBvbgotIyBYZW4ncyBzZWN1cml0eSBwb2xpY3ku Ci1hbGxvdyBkb20wX3Qgc2VjdXJpdHlfdDpzZWN1cml0eSB7Ci0JY29tcHV0ZV9hdiBjb21wdXRl X2NyZWF0ZSBjb21wdXRlX21lbWJlciBjb21wdXRlX3JlbGFiZWwgY29tcHV0ZV91c2VyCi19Owot Ci0jIEFsbG93IHN0cmluZy9TSUQgY29udmVyc2lvbnMgKGZvciAieGwgbGlzdCAtWiIgYW5kIHNp bWlsYXIpCi1hbGxvdyBkb20wX3Qgc2VjdXJpdHlfdDpzZWN1cml0eSBjaGVja19jb250ZXh0Owot Ci0jIEFsbG93IGZsYXNrLWxhYmVsLXBjaSB0byBhZGQgYW5kIGNoYW5nZSBsYWJlbHMKLWFsbG93 IGRvbTBfdCBzZWN1cml0eV90OnNlY3VyaXR5IHsgYWRkX29jb250ZXh0IGRlbF9vY29udGV4dCB9 OwotCi0jIEFsbG93IHBlcmZvcm1hbmNlIHBhcmFtZXRlcnMgb2YgdGhlIHNlY3VyaXR5IHNlcnZl ciB0byBiZSB0d2Vha2VkCi1hbGxvdyBkb20wX3Qgc2VjdXJpdHlfdDpzZWN1cml0eSBzZXRzZWNw YXJhbTsKLQotIyBBbGxvdyBjaGFuZ2luZyB0aGUgc2VjdXJpdHkgcG9saWN5Ci1hbGxvdyBkb20w X3Qgc2VjdXJpdHlfdDpzZWN1cml0eSB7IGxvYWRfcG9saWN5IHNldGVuZm9yY2Ugc2V0Ym9vbCB9 OwotCi0jIEF1ZGl0IHBvbGljeSBjaGFuZ2UgZXZlbnRzIGV2ZW4gd2hlbiB0aGV5IGFyZSBhbGxv d2VkCi1hdWRpdGFsbG93IGRvbTBfdCBzZWN1cml0eV90OnNlY3VyaXR5IHsgbG9hZF9wb2xpY3kg c2V0ZW5mb3JjZSBzZXRib29sIH07Ci0KLWFkbWluX2RldmljZShkb20wX3QsIGRldmljZV90KQot YWRtaW5fZGV2aWNlKGRvbTBfdCwgaXJxX3QpCi1hZG1pbl9kZXZpY2UoZG9tMF90LCBpb3BvcnRf dCkKLWFkbWluX2RldmljZShkb20wX3QsIGlvbWVtX3QpCi0KLWRvbWFpbl9jb21tcyhkb20wX3Qs IGRvbTBfdCkKLQotIyBBbGxvdyBhbGwgZG9tYWlucyB0byB1c2UgKHVucHJpdmlsZWdlZCBwYXJ0 cyBvZikgdGhlIHRtZW0gaHlwZXJjYWxsCi1hbGxvdyBkb21haW5fdHlwZSB4ZW5fdDp4ZW4gdG1l bV9vcDsKLQotIyBBbGxvdyBndWVzdCBjb25zb2xlIG91dHB1dCB0byB0aGUgc2VyaWFsIGNvbnNv bGUuICBUaGlzIGlzIHVzZWQgYnkgUFYgTGludXgKLSMgYW5kIHN0dWIgZG9tYWlucyBmb3IgZWFy bHkgYm9vdCBvdXRwdXQsIHNvIGRvbid0IGF1ZGl0IGV2ZW4gd2hlbiB3ZSBkZW55IGl0LgotIyBX aXRob3V0IFhTTSwgdGhpcyBpcyBlbmFibGVkIG9ubHkgaWYgdGhlIFhlbiB3YXMgY29tcGlsZWQg aW4gZGVidWcgbW9kZS4KLWdlbl9ib29sKGd1ZXN0X3dyaXRlY29uc29sZSwgdHJ1ZSkKLWlmIChn dWVzdF93cml0ZWNvbnNvbGUpIHsKLQlhbGxvdyBkb21haW5fdHlwZSB4ZW5fdCA6IHhlbiB3cml0 ZWNvbnNvbGU7Ci19IGVsc2UgewotCWRvbnRhdWRpdCBkb21haW5fdHlwZSB4ZW5fdCA6IHhlbiB3 cml0ZWNvbnNvbGU7Ci19Ci0KLSMgQWxsb3cgYWxsIGRvbWFpbnMgdG8gdXNlIFBNVSAoYnV0IG5v dCB0byBjaGFuZ2UgaXRzIHNldHRpbmdzIC0tLSB0aGF0J3Mgd2hhdAotIyBwbXVfY3RybCBpcyBm b3IpCi1hbGxvdyBkb21haW5fdHlwZSB4ZW5fdDp4ZW4yIHBtdV91c2U7Ci0KLSMgRm9yIG5vcm1h bCBndWVzdHMgYWxsIHBvc3NpYmxlIGV4Y2VwdCBYRU5WRVJfY29tbWFuZGxpbmUuCi1hbGxvdyBk b21haW5fdHlwZSB4ZW5fdDp2ZXJzaW9uIHsKLSAgICB4ZW5fZXh0cmF2ZXJzaW9uIHhlbl9jb21w aWxlX2luZm8geGVuX2NhcGFiaWxpdGllcwotICAgIHhlbl9jaGFuZ2VzZXQgeGVuX3BhZ2VzaXpl IHhlbl9ndWVzdF9oYW5kbGUKLX07Ci0KLSMgVGhlc2UgcXVlcmllcyBkb24ndCBuZWVkIGF1ZGl0 aW5nIHdoZW4gZGVuaWVkLiAgVGhleSBjYW4gYmUKLSMgZW5jb3VudGVyZWQgaW4gbm9ybWFsIG9w ZXJhdGlvbiBieSB4bCBvciBieSByZWFkaW5nIHN5c2ZzIGZpbGVzIGluCi0jIExpbnV4LCBzbyB3 aXRob3V0IHRoaXMgdGhleSB3aWxsIHNob3cgdXAgaW4gdGhlIGxvZ3MuICBTaW5jZSB0aGVzZQot IyBvcGVyYXRpb25zIHJldHVybiB2YWxpZCByZXNwb25zZXMgKGxpa2UgImRlbmllZCIpLCBoaWRp bmcgdGhlIGRlbmlhbHMKLSMgc2hvdWxkIG5vdCBicmVhayBhbnl0aGluZy4KLWRvbnRhdWRpdCBk b21haW5fdHlwZSB4ZW5fdDp2ZXJzaW9uIHsKLSAgICB4ZW5fY29tbWFuZGxpbmUgeGVuX2J1aWxk X2lkCi19OwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIERvbWFpbiBjcmVhdGlvbgot IwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1kZWNsYXJlX2RvbWFpbihkb21VX3QpCi1kb21h aW5fc2VsZl9jb21tcyhkb21VX3QpCi1jcmVhdGVfZG9tYWluKGRvbTBfdCwgZG9tVV90KQotbWFu YWdlX2RvbWFpbihkb20wX3QsIGRvbVVfdCkKLWRvbWFpbl9jb21tcyhkb20wX3QsIGRvbVVfdCkK LWRvbWFpbl9jb21tcyhkb21VX3QsIGRvbVVfdCkKLW1pZ3JhdGVfZG9tYWluX291dChkb20wX3Qs IGRvbVVfdCkKLWRvbWFpbl9zZWxmX2NvbW1zKGRvbVVfdCkKLQotZGVjbGFyZV9kb21haW4oaXNv bGF0ZWRfZG9tVV90KQotY3JlYXRlX2RvbWFpbihkb20wX3QsIGlzb2xhdGVkX2RvbVVfdCkKLW1h bmFnZV9kb21haW4oZG9tMF90LCBpc29sYXRlZF9kb21VX3QpCi1kb21haW5fY29tbXMoZG9tMF90 LCBpc29sYXRlZF9kb21VX3QpCi1taWdyYXRlX2RvbWFpbl9vdXQoZG9tMF90LCBpc29sYXRlZF9k b21VX3QpCi1kb21haW5fc2VsZl9jb21tcyhpc29sYXRlZF9kb21VX3QpCi0KLSMgRGVjbGFyZSBh IGJvb2xlYW4gdGhhdCBkZW5pZXMgY3JlYXRpb24gb2YgcHJvdF9kb21VX3QgZG9tYWlucwotZ2Vu X2Jvb2wocHJvdF9kb21zX2xvY2tlZCwgZmFsc2UpCi1kZWNsYXJlX2RvbWFpbihwcm90X2RvbVVf dCkKLWlmICghcHJvdF9kb21zX2xvY2tlZCkgewotCWNyZWF0ZV9kb21haW4oZG9tMF90LCBwcm90 X2RvbVVfdCkKLQltaWdyYXRlX2RvbWFpbl9vdXQoZG9tMF90LCBwcm90X2RvbVVfdCkKLX0KLWRv bWFpbl9jb21tcyhkb20wX3QsIHByb3RfZG9tVV90KQotZG9tYWluX2NvbW1zKGRvbVVfdCwgcHJv dF9kb21VX3QpCi1kb21haW5fY29tbXMocHJvdF9kb21VX3QsIHByb3RfZG9tVV90KQotZG9tYWlu X3NlbGZfY29tbXMocHJvdF9kb21VX3QpCi0KLSMgRGV2aWNlIG1vZGVsIGZvciBkb21VX3QuICBZ b3UgY2FuIGRlZmluZSBkaXN0aW5jdCB0eXBlcyBmb3IgZGV2aWNlIG1vZGVscyBmb3IKLSMgZG9t YWlucyBvZiBvdGhlciB0eXBlcywgb3IgYWRkIG1vcmUgbWFrZV9kZXZpY2VfbW9kZWwgbGluZXMg Zm9yIHRoaXMgdHlwZS4KLWRlY2xhcmVfZG9tYWluKGRtX2RvbV90KQotY3JlYXRlX2RvbWFpbihk b20wX3QsIGRtX2RvbV90KQotbWFuYWdlX2RvbWFpbihkb20wX3QsIGRtX2RvbV90KQotZG9tYWlu X2NvbW1zKGRvbTBfdCwgZG1fZG9tX3QpCi1tYWtlX2RldmljZV9tb2RlbChkb20wX3QsIGRtX2Rv bV90LCBkb21VX3QpCi0KLSMgbm9taWdyYXRlX3QgbXVzdCBiZSBidWlsdCB2aWEgdGhlIG5vbWln cmF0ZV90X2J1aWxkaW5nIGxhYmVsOyBvbmNlIGJ1aWx0LAotIyBkb20wIGNhbm5vdCByZWFkIGl0 cyBtZW1vcnkuCi1kZWNsYXJlX2RvbWFpbihub21pZ3JhdGVfdCkKLWRlY2xhcmVfYnVpbGRfbGFi ZWwobm9taWdyYXRlX3QpCi1jcmVhdGVfZG9tYWluX2J1aWxkX2xhYmVsKGRvbTBfdCwgbm9taWdy YXRlX3QpCi1tYW5hZ2VfZG9tYWluKGRvbTBfdCwgbm9taWdyYXRlX3QpCi1kb21haW5fY29tbXMo ZG9tMF90LCBub21pZ3JhdGVfdCkKLWRvbWFpbl9zZWxmX2NvbW1zKG5vbWlncmF0ZV90KQotCi0j IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIERldmljZSBkZWxlZ2F0aW9uCi0jCi0jIFRoaXMg cmVxdWlyZXMgdGhhdCB0aGUgZGV2aWNlIGJlIGxhYmVsZWQgd2l0aCBhIHR5cGUgZGVmaW5lZCBo ZXJlLiAgWW91IGNhbgotIyB1c2UgZmxhc2stbGFiZWwtcGNpIHRvIGR5bmFtaWNhbGx5IGxhYmVs IGRldmljZXMgb24gZWFjaCBib290IG9yIGRlZmluZSB0aGUKLSMgbGFiZWxzIHN0YXRpY2FsbHkg aW4gdG9vbHMvZmxhc2svcG9saWN5L3BvbGljeS9kZXZpY2VfY29udGV4dHMKLSMKLSMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKLQotdHlwZSBuaWNfZGV2X3QsIHJlc291cmNlX3R5cGU7Ci0KLWFkbWlu X2RldmljZShkb20wX3QsIG5pY19kZXZfdCkKLXVzZV9kZXZpY2UoZG9tVV90LCBuaWNfZGV2X3Qp Ci0KLWRlbGVnYXRlX2RldmljZXMoZG9tMF90LCBkb21VX3QpCi0KLSMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCi0jCi0jIFBvbGljeSBjb25zdHJhaW50cwotIwotIyBOZXZlcmFsbG93IHJ1bGVzIHdp bGwgY2F1c2UgdGhlIHBvbGljeSBidWlsZCB0byBmYWlsIGlmIGFuIGFsbG93IHJ1bGUgZXhpc3Rz Ci0jIHRoYXQgdmlvbGF0ZXMgdGhlIGV4cHJlc3Npb24uIFRoaXMgaXMgdXNlZCB0byBlbnN1cmUg cHJvcGVyIGxhYmVsaW5nIG9mCi0jIG9iamVjdHMuCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IwotCi0jIERvbWFpbnMgbXVzdCBiZSBkZWNsYXJlZCB1c2luZyBkb21haW5fdHlwZQotbmV2ZXJh bGxvdyAqIH5kb21haW5fdHlwZTpkb21haW4geyBjcmVhdGUgdHJhbnNpdGlvbiB9OwotCi0jIFJl c291cmNlcyBtdXN0IGJlIGRlY2xhcmVkIHVzaW5nIHJlc291cmNlX3R5cGUKLW5ldmVyYWxsb3cg KiB+cmVzb3VyY2VfdHlwZTpyZXNvdXJjZSB1c2U7Ci0KLSMgRXZlbnRzIG11c3QgdXNlIGV2ZW50 X3R5cGUgKHNlZSBjcmVhdGVfY2hhbm5lbCBmb3IgYSB0ZW1wbGF0ZSkKLW5ldmVyYWxsb3cgfmV2 ZW50X3R5cGUgKjpldmVudCBiaW5kOwotbmV2ZXJhbGxvdyAqIH5ldmVudF90eXBlOmV2ZW50IHsg Y3JlYXRlIHNlbmQgc3RhdHVzIH07Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIFJv bGVzCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIFRoZSBvYmplY3Qgcm9sZSAob2Jq ZWN0X3IpIGlzIHVzZWQgZm9yIGRldmljZXMsIHJlc291cmNlcywgYW5kIGV2ZW50IGNoYW5uZWxz OwotIyBpdCBkb2VzIG5vdCBuZWVkIHRvIGJlIGRlZmluZWQgaGVyZSBhbmQgc2hvdWxkIG5vdCBi ZSB1c2VkIGZvciBkb21haW5zLgotCi0jIFRoZSBzeXN0ZW0gcm9sZSBpcyB1c2VkIGZvciB1dGls aXR5IGRvbWFpbnMgYW5kIHBzZXVkby1kb21haW5zCi1yb2xlIHN5c3RlbV9yOwotcm9sZSBzeXN0 ZW1fciB0eXBlcyB7IHhlbl90eXBlIGRvbWFpbl90eXBlIH07Ci0jIElmIHlvdSB3YW50IHRvIHBy ZXZlbnQgZG9tVXMgZnJvbSBiZWluZyBwbGFjZWQgaW4gc3lzdGVtX3I6Ci0jI3JvbGUgc3lzdGVt X3IgdHlwZXMgeyB4ZW5fdHlwZSBkb20wX3QgfTsKLQotIyBUaGUgdm0gcm9sZSBpcyB1c2VkIGZv ciBjdXN0b21lciB2aXJ0dWFsIG1hY2hpbmVzCi1yb2xlIHZtX3I7Ci1yb2xlIHZtX3IgdHlwZXMg eyBkb21haW5fdHlwZSAtZG9tMF90IH07Ci0tIAoyLjUuNQoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==