From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.2 Received: from inbox.vuxu.org (localhost [IPv6:::1]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id ea716e98 for ; Wed, 18 Sep 2019 18:21:20 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============3352013163898805101==" MIME-Version: 1.0 Subject: Re: [PR PATCH] [Updated] Openjdk 11 To: ml@inbox.vuxu.org From: voidlinux-github@inbox.vuxu.org Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 18 Sep 2019 20:21:20 +0200 Message-ID: <20190918182120.oIIllUnTbW6YaetutzQkKxeTVaVmdtnHKs6twh0YqY8@z> GitHub notification mails are now in MIME to allow UTF8. --===============3352013163898805101== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkga251c2JhdW0gYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL2tu dXNiYXVtL3ZvaWQtcGFja2FnZXMgb3Blbmpkay0xMQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMTM3MjEKCk9wZW5qZGsgMTEKSSdkIG11Y2ggcmF0aGVy IGhhdmUgQHE2NidzIHNvbHV0aW9uICgjMzIzNykgYnV0IHRoaXMgc2VlbXMgdG8gYnVpbGQgZm9y IGF0IGxlYXN0IHg4Nl82NCwgaTY4NiwgYWFyY2g2NC4NCg0KVGhpcyBib290c3RyYXBzIG9wZW5q ZGstMTEgZnJvbSBvcGVuamRrLTExLWJpbiwgd2hpY2ggaXMgdGhlIGJpbmFyeSByZWZlcmVuY2Ug aW1wbGVtZW50YXRpb24uDQoNClRyYXZpcyB3aWxsIGZhaWwgYmVjYXVzZSB0aGUgYnVpbGRzIHRh a2UgdG9vIGxvbmcsIGJ1dCBJJ3ZlIHRlc3RlZCBvbiBteSBsb2NhbCBtYWNoaW5lIGFuZCB0aGV5 IGJ1aWxkLiAKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4 L3ZvaWQtcGFja2FnZXMvcHVsbC8xMzcyMS5wYXRjaCBpcyBhdHRhY2hlZA== --===============3352013163898805101== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-openjdk-11-13721.patch" RnJvbSAzYmU3NGI0M2VjYTkwNzc0MTc2NGMyODY2YzM2NGNiZjlmZjliZmU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLeWxlIE51c2JhdW0gPGt5bGVudXNiYXVtQGdyYW51bGFyLmFn PgpEYXRlOiBXZWQsIDE4IFNlcCAyMDE5IDEyOjMwOjQ2IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAx LzNdIE5ldyBwYWNrYWdlOiBtYWtlLWNhLTEuNQoKLS0tCiBzcmNwa2dzL21ha2UtY2EvdGVtcGxh dGUgfCAxNCArKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKykK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21ha2UtY2EvdGVtcGxhdGUKCmRpZmYgLS1naXQg YS9zcmNwa2dzL21ha2UtY2EvdGVtcGxhdGUgYi9zcmNwa2dzL21ha2UtY2EvdGVtcGxhdGUKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBkNWMwMTk4MzVkCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9tYWtlLWNhL3RlbXBsYXRlCkBAIC0wLDAgKzEsMTQgQEAKKyMg VGVtcGxhdGUgZmlsZSBmb3IgJ21ha2UtY2EnCitwa2duYW1lPW1ha2UtY2EKK3ZlcnNpb249MS41 CityZXZpc2lvbj0xCit3cmtzcmM9Im1ha2UtY2EtJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWdu dS1tYWtlZmlsZQorbWFrZV9pbnN0YWxsX2FyZ3M9IlNCSU5ESVI9L3Vzci9iaW4iCitob3N0bWFr ZWRlcGVuZHM9ImhlbHAybWFuIgorc2hvcnRfZGVzYz0iUEtJIHNldHVwIHNjcmlwdCBmb3IgTEZT IChhbmQgb3RoZXJzKSIKK21haW50YWluZXI9Ikt5bGUgTnVzYmF1bSA8a251c2JhdW0rdm9pZEBz ZGYub3JnPiIKK2xpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly9n aXRodWIuY29tL2RqbHVjYXMvbWFrZS1jYS8iCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNv bS9kamx1Y2FzL21ha2UtY2EvcmVsZWFzZXMvZG93bmxvYWQvdiR7dmVyc2lvbn0vbWFrZS1jYS0k e3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPWU3NTc3MWRkNzNlYjk3MTg5MzM5Mzc5NjI2ZmI0 MjI0MWVlNTc5MDU4YzZlYTI5MDBlYzg1MGU3ZDk2MTc5ZjcKCkZyb20gY2EwZjU4NzAzMDRmMGEy Nzk1MjhmZTI4ZDJkODZhYWM5MTdkZjA3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog S3lsZSBOdXNiYXVtIDxreWxlbnVzYmF1bUBncmFudWxhci5hZz4KRGF0ZTogV2VkLCAxOCBTZXAg MjAxOSAxMjozNDo1NyAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMi8zXSBOZXcgcGFja2FnZTogb3Bl bmpkazExLWJpbi0xMSsyOAoKLS0tCiBzcmNwa2dzL29wZW5qZGsxMS1iaW4vdGVtcGxhdGUgfCA3 MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNzMg aW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazExLWJpbi90 ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazExLWJpbi90ZW1wbGF0ZSBiL3Ny Y3BrZ3Mvb3BlbmpkazExLWJpbi90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uYjJkYTgzZDIxZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5q ZGsxMS1iaW4vdGVtcGxhdGUKQEAgLTAsMCArMSw3MyBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAn b3BlbmpkazExLWJpbicKK3BrZ25hbWU9b3BlbmpkazExLWJpbgordmVyc2lvbj0xMSsyOAorcmV2 aXNpb249MQorYXJjaHM9Ing4Nl82NCIKK3dya3NyYz1qZGstMTEKK3Nob3J0X2Rlc2M9Ik9mZmlj aWFsIFJlZmVyZW5jZSBJbXBsZW1lbnRhdGlvbiBmb3IgSmF2YSBTRSAxMSIKK21haW50YWluZXI9 Ikt5bGUgTnVzYmF1bSA8a251c2JhdW0rdm9pZEBzZGYub3JnPiIKK2xpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly9qZGsuamF2YS5uZXQvamF2YS1zZS1yaS8xMSIK K2Rpc3RmaWxlcz0iaHR0cHM6Ly9kb3dubG9hZC5qYXZhLm5ldC9vcGVuamRrL2pkazExL3JpL29w ZW5qZGstJHt2ZXJzaW9ufV9saW51eC14NjRfYmluLnRhci5neiIKK2NoZWNrc3VtPTM3ODRjZmM0 NjcwZjBkNGM1NDgyNjA0YzdjNTEzYmViMWE5MmIwMDVmNTY5ZGY5YmYxMDBlOGJlZjY2MTBmMmUK K25vcGllPXRydWUKKworYWx0ZXJuYXRpdmVzPSIKKyBqYXZhOi91c3IvYmluL2phdmE6L3Vzci9s aWIvanZtL29wZW5qZGsxMS1iaW4vYmluL2phdmEKKyBqYXZhOi91c3IvYmluL2phdmF3czovdXNy L2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4vamF2YXdzCisgamF2YTovdXNyL2Jpbi9qY29udHJv bDovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4vamNvbnRyb2wKKyBqYXZhOi91c3IvYmlu L2pqczovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4vampzCisgamF2YTovdXNyL2Jpbi9r ZXl0b29sOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9rZXl0b29sCisgamF2YTovdXNy L2Jpbi9vcmJkOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9vcmJkCisgamF2YTovdXNy L2Jpbi9wYWNrMjAwOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9wYWNrMjAwCisgamF2 YTovdXNyL2Jpbi9wb2xpY3l0b29sOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9wb2xp Y3l0b29sCisgamF2YTovdXNyL2Jpbi9ybWlkOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jp bi9ybWlkCisgamF2YTovdXNyL2Jpbi9ybWlyZWdpc3RyeTovdXNyL2xpYi9qdm0vb3BlbmpkazEx LWJpbi9iaW4vcm1pcmVnaXN0cnkKKyBqYXZhOi91c3IvYmluL3NlcnZlcnRvb2w6L3Vzci9saWIv anZtL29wZW5qZGsxMS1iaW4vYmluL3NlcnZlcnRvb2wKKyBqYXZhOi91c3IvYmluL3RuYW1lc2Vy djovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4vdG5hbWVzZXJ2CisgamF2YTovdXNyL2Jp bi91bnBhY2syMDA6L3Vzci9saWIvanZtL29wZW5qZGsxMS1iaW4vYmluL3VucGFjazIwMAorCisg amRrOi91c3IvYmluL0NvbnRyb2xQYW5lbDovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4v Q29udHJvbFBhbmVsCisgamRrOi91c3IvYmluL2FwcGxldHZpZXdlcjovdXNyL2xpYi9qdm0vb3Bl bmpkazExLWJpbi9iaW4vYXBwbGV0dmlld2VyCisgamRrOi91c3IvYmluL2V4dGNoZWNrOi91c3Iv bGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9leHRjaGVjaworIGpkazovdXNyL2Jpbi9pZGxqOi91 c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9pZGxqCisgamRrOi91c3IvYmluL2phcjovdXNy L2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4vamFyCisgamRrOi91c3IvYmluL2phcnNpZ25lcjov dXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4vamFyc2lnbmVyCisgamRrOi91c3IvYmluL2ph dmEtcm1pLmNnaTovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4vamF2YS1ybWkuY2dpCisg amRrOi91c3IvYmluL2phdmFjOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9qYXZhYwor IGpkazovdXNyL2Jpbi9qYXZhZG9jOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9qYXZh ZG9jCisgamRrOi91c3IvYmluL2phdmFmeHBhY2thZ2VyOi91c3IvbGliL2p2bS9vcGVuamRrMTEt YmluL2Jpbi9qYXZhZnhwYWNrYWdlcgorIGpkazovdXNyL2Jpbi9qYXZhaDovdXNyL2xpYi9qdm0v b3BlbmpkazExLWJpbi9iaW4vamF2YWgKKyBqZGs6L3Vzci9iaW4vamF2YXA6L3Vzci9saWIvanZt L29wZW5qZGsxMS1iaW4vYmluL2phdmFwCisgamRrOi91c3IvYmluL2phdmFwYWNrYWdlcjovdXNy L2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4vamF2YXBhY2thZ2VyCisgamRrOi91c3IvYmluL2pj bWQ6L3Vzci9saWIvanZtL29wZW5qZGsxMS1iaW4vYmluL2pjbWQKKyBqZGs6L3Vzci9iaW4vamNv bnNvbGU6L3Vzci9saWIvanZtL29wZW5qZGsxMS1iaW4vYmluL2pjb25zb2xlCisgamRrOi91c3Iv YmluL2pkYjovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4vamRiCisgamRrOi91c3IvYmlu L2pkZXBzOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9qZGVwcworIGpkazovdXNyL2Jp bi9qaGF0Oi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9qaGF0CisgamRrOi91c3IvYmlu L2ppbmZvOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9qaW5mbworIGpkazovdXNyL2Jp bi9qbWFwOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9qbWFwCisgamRrOi91c3IvYmlu L2ptYzovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4vam1jCisgamRrOi91c3IvYmluL2pt Yy5pbmk6L3Vzci9saWIvanZtL29wZW5qZGsxMS1iaW4vYmluL2ptYy5pbmkKKyBqZGs6L3Vzci9i aW4vanBzOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluL2Jpbi9qcHMKKyBqZGs6L3Vzci9iaW4v anJ1bnNjcmlwdDovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4vanJ1bnNjcmlwdAorIGpk azovdXNyL2Jpbi9qc2FkZWJ1Z2Q6L3Vzci9saWIvanZtL29wZW5qZGsxMS1iaW4vYmluL2pzYWRl YnVnZAorIGpkazovdXNyL2Jpbi9qc3RhY2s6L3Vzci9saWIvanZtL29wZW5qZGsxMS1iaW4vYmlu L2pzdGFjaworIGpkazovdXNyL2Jpbi9qc3RhdDovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9i aW4vanN0YXQKKyBqZGs6L3Vzci9iaW4vanN0YXRkOi91c3IvbGliL2p2bS9vcGVuamRrMTEtYmlu L2Jpbi9qc3RhdGQKKyBqZGs6L3Vzci9iaW4vanZpc3VhbHZtOi91c3IvbGliL2p2bS9vcGVuamRr MTEtYmluL2Jpbi9qdmlzdWFsdm0KKyBqZGs6L3Vzci9iaW4vbmF0aXZlMmFzY2lpOi91c3IvbGli L2p2bS9vcGVuamRrMTEtYmluL2Jpbi9uYXRpdmUyYXNjaWkKKyBqZGs6L3Vzci9iaW4vcm1pYzov dXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4vcm1pYworIGpkazovdXNyL2Jpbi9zY2hlbWFn ZW46L3Vzci9saWIvanZtL29wZW5qZGsxMS1iaW4vYmluL3NjaGVtYWdlbgorIGpkazovdXNyL2Jp bi9zZXJpYWx2ZXI6L3Vzci9saWIvanZtL29wZW5qZGsxMS1iaW4vYmluL3NlcmlhbHZlcgorIGpk azovdXNyL2Jpbi93c2dlbjovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4vd3NnZW4KKyBq ZGs6L3Vzci9iaW4vd3NpbXBvcnQ6L3Vzci9saWIvanZtL29wZW5qZGsxMS1iaW4vYmluL3dzaW1w b3J0CisgamRrOi91c3IvYmluL3hqYzovdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbi9iaW4veGpj CisKKyBqYXZhLXBsdWdpbjovdXNyL2xpYi9tb3ppbGxhL3BsdWdpbnMvbGlibnBqcDIuc286L3Vz ci9saWIvanZtL29wZW5qZGsxMS1iaW4vanJlL2xpYi8kX2FyY2gvbGlibnBqcDIuc28KKyIKKwor ZG9faW5zdGFsbCgpIHsKKwl2bWtkaXIgL3Vzci9saWIvanZtL29wZW5qZGsxMS1iaW4KKwljcCAt UiAuLyogJHtERVNURElSfS91c3IvbGliL2p2bS9vcGVuamRrMTEtYmluCit9CgpGcm9tIDZmMzc5 YjRhZDI5NTEwMmU2YjUzMmVlMDY2YWJjMTczNDdlNzJhYjAgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEt5bGUgTnVzYmF1bSA8a3lsZW51c2JhdW1AZ3JhbnVsYXIuYWc+CkRhdGU6IFdl ZCwgMTggU2VwIDIwMTkgMTI6MzY6MDQgLTA1MDAKU3ViamVjdDogW1BBVENIIDMvM10gTmV3IHBh Y2thZ2U6IG9wZW5qZGsxMS0xMS4wLjQrMTEKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyY3BrZ3Mvb3BlbmpkazExLWRvYyAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dzL29wZW5qZGsxMS1zcmMgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0 LnBhdGNoICAgICAgICAgIHwgIDExICsKIC4uLi9vcGVuamRrMTEvZmlsZXMvbXVzbF9wYXRjaGVz L2FybS5wYXRjaCAgICB8ICAzMCArCiAuLi4vb3BlbmpkazExL2ZpbGVzL211c2xfcGF0Y2hlcy9i dWlsZC5wYXRjaCAgfCA1MzcgKysrKysrKysrKysrKysrKysrCiAuLi4vZmlsZXMvbXVzbF9wYXRj aGVzL3BwYzY0bGUucGF0Y2ggICAgICAgICAgfCAyMjEgKysrKysrKwogLi4uL29wZW5qZGsxMS9m aWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoICAgIHwgMTMwICsrKysrCiBzcmNwa2dzL29wZW5q ZGsxMS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAxODMgKysrKysrCiA5IGZpbGVzIGNo YW5nZWQsIDExMjAgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3Mvb3Bl bmpkazExLWRvYwogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3Mvb3BlbmpkazExLXNyYwogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazExL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJj aDY0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTEvZmlsZXMvbXVz bF9wYXRjaGVzL2FybS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazEx L2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3Mvb3BlbmpkazExL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGM2NGxlLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTEvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazExL3RlbXBsYXRlCgpkaWZmIC0tZ2l0 IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggYjViNjA4NmQyNGYuLjk3ZTQw MzgxNjQxIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAg LTE3NzgsNiArMTc3OCwxMiBAQCBsaWJhd3RfeGF3dC5zbyBvcGVuamRrLWpyZS04dTIwXzEKIGxp YmphdmEuc28gb3Blbmpkay1qcmUtOHUyMF8xCiBsaWJqbGkuc28gb3Blbmpkay1qcmUtOHUyMF8x CiBsaWJqdm0uc28gb3Blbmpkay1qcmUtOHUyMF8xCitsaWJqYXd0LnNvIG9wZW5qZGsxMS0xMS4w LjQrMTFfMQorbGliYXd0LnNvIG9wZW5qZGsxMS0xMS4wLjQrMTFfMQorbGliYXd0X3hhd3Quc28g b3BlbmpkazExLTExLjAuNCsxMV8xCitsaWJqYXZhLnNvIG9wZW5qZGsxMS0xMS4wLjQrMTFfMQor bGliamxpLnNvIG9wZW5qZGsxMS0xMS4wLjQrMTFfMQorbGlianZtLnNvIG9wZW5qZGsxMS0xMS4w LjQrMTFfMQogbGlidWNsLnNvLjUgbGlidWNsLTAuOC4xXzEKIGxpYmhhbmRsZS5zby4xIHhmc3By b2dzLTMuMi4xXzEKIGxpYm5mbmV0bGluay5zby4wIGxpYm5mbmV0bGluay0xLjAuMV8xCmRpZmYg LS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMS1kb2MgYi9zcmNwa2dzL29wZW5qZGsxMS1kb2MKbmV3 IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAuLjgyMTM0OTRjNDllCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTEtZG9jCkBAIC0wLDAgKzEgQEAKK29wZW5qZGsx MQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Blbmpk azExLXNyYyBiL3NyY3BrZ3Mvb3BlbmpkazExLXNyYwpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRl eCAwMDAwMDAwMDAwMC4uODIxMzQ5NGM0OWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29w ZW5qZGsxMS1zcmMKQEAgLTAsMCArMSBAQAorb3BlbmpkazExClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTEvZmlsZXMvbXVzbF9wYXRjaGVz L2FhcmNoNjQucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxMS9maWxlcy9tdXNsX3BhdGNoZXMvYWFy Y2g2NC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjk1ZjQ1 NWU5MjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxMS9maWxlcy9tdXNsX3Bh dGNoZXMvYWFyY2g2NC5wYXRjaApAQCAtMCwwICsxLDExIEBACitQYXRjaGVzIGZvciBtdXNsIHRh a2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRz L2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0t IG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNw cAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYWFyY2g2NC9vc19saW51eF9hYXJj aDY0LmNwcAorQEAgLTc3LDcgKzc3LDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVk ZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0jIGluY2x1ZGUgPGZwdV9jb250 cm9sLmg+CisKKyAjaWZkZWYgQlVJTFRJTl9TSU0KKyAjZGVmaW5lIFJFR19TUCBSRUdfUlNQCmRp ZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMS9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNo IGIvc3JjcGtncy9vcGVuamRrMTEvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTJkMDAyMmMxNDkKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL29wZW5qZGsxMS9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCkBA IC0wLDAgKzEsMzAgQEAKK1BhdGNoZXMgZm9yIG11c2wgdGFrZW4gZnJvbSBBbHBpbmUgbGludXg6 IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRh OWFmNTQyODVjNzg5MWE2ODA2MjBlN2UyNGM2MjgwCistLS0gb2xkL3NyYy9ob3RzcG90L29zX2Nw dS9saW51eF9hcm0vb3NfbGludXhfYXJtLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUv bGludXhfYXJtL29zX2xpbnV4X2FybS5jcHAKK0BAIC03MSw3ICs3MSw2IEBACisgIyBpbmNsdWRl IDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+Cist IyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorICMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorCisg I2RlZmluZSBTUEVMTF9SRUdfU1AgICJzcCIKK0BAIC0xMDQsNiArMTAzLDE4IEBACisgI2RlZmlu ZSBBUk1fUkVHU19JTl9DT05URVhUICAzMQorCisgI2Vsc2UKKysKKysvLyBTdHVwaWQgaGFjayBh cyB0aGUgb3JpZ2luIGlmIGJlbG93IGRvZXNudCBjb21waWxlIHdpdGggZ2NjIDguMi4wOgorKy8v CisrLy8gb3NfbGludXhfYXJtLmNwcDoxMTQ6NTogZXJyb3I6IG1pc3NpbmcgYmluYXJ5IG9wZXJh dG9yIGJlZm9yZSB0b2tlbiAiKCIKKysvLyAgI2lmIE5HUkVHID09IDE2CisrLy8gICAgICAgXn5+ fn4KKysvLworKy8vIFRoZSBOR1JFRyBpcyAxOCwgc28gZm9yY2UgaXQgdG8gdGhhdCB2YWx1ZS4K KysjaWZkZWYgTkdSRUcKKysjICB1bmRlZiBOR1JFRworKyNlbmRpZgorKyNkZWZpbmUgTkdSRUcg MTgKKworICNpZiBOR1JFRyA9PSAxNgorIC8vIFRoZXNlIGRlZmluaXRpb25zIGFyZSBiYXNlZCBv biB0aGUgb2JzZXJ2YXRpb24gdGhhdCB1bnRpbApkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRr MTEvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTEvZmls ZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi44MWVkMGY1M2IxZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3Blbmpk azExL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDUzNyBAQAorUGF0 Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFscGluZSBsaW51eDogaHR0cHM6Ly9naXQuYWxwaW5l bGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lkPThhMWFlMTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYy MGU3ZTI0YzYyODAKKy0tLSBvbGQvbWFrZS9SZWxlYXNlRmlsZS5nbWsKKysrKyBuZXcvbWFrZS9S ZWxlYXNlRmlsZS5nbWsKK0BAIC01Myw2ICs1Myw3IEBACisgICAkKGNhbGwgaW5mby1maWxlLWl0 ZW0sICJKQVZBX1ZFUlNJT05fREFURSIsICIkKFZFUlNJT05fREFURSkiKQorICAgJChjYWxsIGlu Zm8tZmlsZS1pdGVtLCAiT1NfTkFNRSIsICIkKFJFTEVBU0VfRklMRV9PU19OQU1FKSIpCisgICAk KGNhbGwgaW5mby1maWxlLWl0ZW0sICJPU19BUkNIIiwgIiQoUkVMRUFTRV9GSUxFX09TX0FSQ0gp IikKKysgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIkxJQkMiLCAibXVzbCIpCisgZW5kZWYKKwor ICMgUGFyYW0gMSAtIFRoZSBmaWxlIGNvbnRhaW5pbmcgdGhlIE1PRFVMRVMgbGlzdAorLS0tIG9s ZC9tYWtlL2F1dG9jb25mL2J1aWxkLWF1eC9jb25maWcuZ3Vlc3MKKysrKyBuZXcvbWFrZS9hdXRv Y29uZi9idWlsZC1hdXgvY29uZmlnLmd1ZXNzCitAQCAtMzAsNiArMzAsMTcgQEAKKyBESVI9YGRp cm5hbWUgJDBgCisgT1VUPWAuICRESVIvYXV0b2NvbmYtY29uZmlnLmd1ZXNzYAorCisrIyBjb25m aWcuZ3Vlc3MgZG9lc24ndCBpZGVudGlmeSBzeXN0ZW1zIHJ1bm5pbmcgdGhlIG11c2wgQyBsaWJy YXJ5LCBhbmQgd2lsbAorKyMgaW5zdGVhZCByZXR1cm4gYSBzdHJpbmcgd2l0aCBhIC1nbnUgc3Vm Zml4LiBUaGlzIGJsb2NrIGRldGVjdHMgbXVzbCBhbmQKKysjIG1vZGlmaWVzIHRoZSBzdHJpbmcg dG8gaGF2ZSBhIC1tdXNsIHN1ZmZpeCBpbnN0ZWFkLiAKKytlY2hvICRPVVQgfCBncmVwIC0tIC1s aW51eC0gPiAvZGV2L251bGwgMj4gL2Rldi9udWxsCisraWYgdGVzdCAkPyA9IDA7IHRoZW4KKysg IGxkZF92ZXJzaW9uPWBsZGQgLS12ZXJzaW9uIDI+JjEgfCBoZWFkIC0xIHwgY3V0IC1mMSAtZCcg J2AKKysgIGlmIFsgeCIke2xkZF92ZXJzaW9ufSIgPSB4Im11c2wiIF07IHRoZW4KKysgICAgT1VU PWBlY2hvICRPVVQgfCBzZWQgJ3MvLWdudS8tbXVzbC8nYAorKyAgZmkKKytmaQorKworICMgVGVz dCBhbmQgZml4IHNvbGFyaXMgb24geDg2XzY0CisgZWNobyAkT1VUIHwgZ3JlcCBpMzg2LXBjLXNv bGFyaXMgPiAvZGV2L251bGwgMj4gL2Rldi9udWxsCisgaWYgdGVzdCAkPyA9IDA7IHRoZW4KKy0t LSBvbGQvbWFrZS9ob3RzcG90L2xpYi9Db21waWxlSnZtLmdtaworKysrIG5ldy9tYWtlL2hvdHNw b3QvbGliL0NvbXBpbGVKdm0uZ21rCitAQCAtNzcsNiArNzcsNyBAQAorICAgICAtREhPVFNQT1Rf QlVJTERfVVNFUj0nIiQoVVNFUk5BTUUpIicgXAorICAgICAtREhPVFNQT1RfVk1fRElTVFJPPSci JChIT1RTUE9UX1ZNX0RJU1RSTykiJyBcCisgICAgIC1EQ1BVPSciJChPUEVOSkRLX1RBUkdFVF9D UFVfVk1fVkVSU0lPTikiJyBcCisrICAgIC1ETElCQz0nIm11c2wiJyBcCisgICAgICMKKworICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCistLS0gb2xkL21ha2UvbGliL0NvcmVMaWJyYXJpZXMuZ21r CisrKysgbmV3L21ha2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rCitAQCAtMjQxLDYgKzI0MSw3IEBA CisgZW5kaWYKKworIExJQkpMSV9DRkxBR1MgKz0gJChMSUJaX0NGTEFHUykKKytMSUJKTElfQ0ZM QUdTICs9IC1ETElCQz1cIm11c2xcIgorCisgaWZuZXEgKCQoVVNFX0VYVEVSTkFMX0xJQlopLCB0 cnVlKQorICAgTElCSkxJX0VYVFJBX0ZJTEVTICs9IFwKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3Mv bGludXgvb3NfbGludXguY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4 LmNwcAorQEAgLTk5LDcgKzk5LDYgQEAKKyAjIGluY2x1ZGUgPHN0cmluZy5oPgorICMgaW5jbHVk ZSA8c3lzY2FsbC5oPgorICMgaW5jbHVkZSA8c3lzL3N5c2luZm8uaD4KKy0jIGluY2x1ZGUgPGdu dS9saWJjLXZlcnNpb24uaD4KKyAjIGluY2x1ZGUgPHN5cy9pcGMuaD4KKyAjIGluY2x1ZGUgPHN5 cy9zaG0uaD4KKyAjIGluY2x1ZGUgPGxpbmsuaD4KK0BAIC01MTEsNiArNTEwLDExIEBACisgLy8g ZGV0ZWN0aW5nIHB0aHJlYWQgbGlicmFyeQorCisgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRf aW5pdCgpIHsKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19f KQorKyAgLy8gSGFyZCBjb2RlIEFscGluZSBMaW51eCBzdXBwb3J0ZWQgbXVzbCBjb21wYXRpYmxl IHNldHRpbmdzCisrICBvczo6TGludXg6OnNldF9nbGliY192ZXJzaW9uKCJnbGliYyAyLjkiKTsK KysgIG9zOjpMaW51eDo6c2V0X2xpYnB0aHJlYWRfdmVyc2lvbigiTlBUTCIpOworKyNlbHNlCisg ICAvLyBTYXZlIGdsaWJjIGFuZCBwdGhyZWFkIHZlcnNpb24gc3RyaW5ncy4KKyAjaWYgIWRlZmlu ZWQoX0NTX0dOVV9MSUJDX1ZFUlNJT04pIHx8IFwKKyAgICAgIWRlZmluZWQoX0NTX0dOVV9MSUJQ VEhSRUFEX1ZFUlNJT04pCitAQCAtNTI4LDYgKzUzMiw3IEBACisgICBzdHIgPSAoY2hhciAqKW1h bGxvYyhuLCBtdEludGVybmFsKTsKKyAgIGNvbmZzdHIoX0NTX0dOVV9MSUJQVEhSRUFEX1ZFUlNJ T04sIHN0ciwgbik7CisgICBvczo6TGludXg6OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oc3RyKTsK KysjZW5kaWYKKyB9CisKKyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworQEAgLTI5MTYsMjAgKzI5MjEs MzYgQEAKKyBleHRlcm4gIkMiIEpOSUVYUE9SVCB2b2lkIG51bWFfd2FybihpbnQgbnVtYmVyLCBj aGFyICp3aGVyZSwgLi4uKSB7IH0KKyBleHRlcm4gIkMiIEpOSUVYUE9SVCB2b2lkIG51bWFfZXJy b3IoY2hhciAqd2hlcmUpIHsgfQorCisrc3RhdGljIHZvaWQqIGRsdnN5bV9pZl9hdmFpbGFibGUo dm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9uKSB7Cisr ICB0eXBlZGVmIHZvaWQqICgqZGx2c3ltX2Z1bmNfdHlwZSkodm9pZCogaGFuZGxlLCBjb25zdCBj aGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9uKTsKKysgIHN0YXRpYyBkbHZzeW1fZnVuY190 eXBlIGRsdnN5bV9mdW5jOworKyAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKysK KysgIGlmICghaW5pdGlhbGl6ZWQpIHsKKysgICAgZGx2c3ltX2Z1bmMgPSAoZGx2c3ltX2Z1bmNf dHlwZSlkbHN5bShSVExEX05FWFQsICJkbHZzeW0iKTsKKysgICAgaW5pdGlhbGl6ZWQgPSB0cnVl OworKyAgfQorKworKyAgaWYgKGRsdnN5bV9mdW5jICE9IE5VTEwpIHsKKysgICAgdm9pZCAqZiA9 IGRsdnN5bV9mdW5jKGhhbmRsZSwgbmFtZSwgdmVyc2lvbik7CisrICAgIGlmIChmICE9IE5VTEwp IHsKKysgICAgICByZXR1cm4gZjsKKysgICAgfQorKyAgfQorKworKyAgcmV0dXJuIGRsc3ltKGhh bmRsZSwgbmFtZSk7CisrfQorKworIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBz eW1ib2wgdmVyc2lvbiAxLjEgKEFQSSB2MSkuIElmIGl0IGZhaWxzCisgLy8gbG9hZCBzeW1ib2wg ZnJvbSBiYXNlIHZlcnNpb24gaW5zdGVhZC4KKyB2b2lkKiBvczo6TGludXg6OmxpYm51bWFfZGxz eW0odm9pZCogaGFuZGxlLCBjb25zdCBjaGFyICpuYW1lKSB7CistICB2b2lkICpmID0gZGx2c3lt KGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4xIik7CistICBpZiAoZiA9PSBOVUxMKSB7CistICAg IGYgPSBkbHN5bShoYW5kbGUsIG5hbWUpOworLSAgfQorLSAgcmV0dXJuIGY7CisrICByZXR1cm4g ZGx2c3ltX2lmX2F2YWlsYWJsZShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMSIpOworIH0KKwor IC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wgdmVyc2lvbiAxLjIgKEFQ SSB2Mikgb25seS4KKyAvLyBSZXR1cm4gTlVMTCBpZiB0aGUgc3ltYm9sIGlzIG5vdCBkZWZpbmVk IGluIHRoaXMgcGFydGljdWxhciB2ZXJzaW9uLgorIHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV92 Ml9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUpIHsKKy0gIHJldHVybiBkbHZz eW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjIiKTsKKysgIHJldHVybiBkbHZzeW1faWZfYXZh aWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4yIik7CisgfQorCisgYm9vbCBvczo6TGlu dXg6OmxpYm51bWFfaW5pdCgpIHsKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4 Ni9vc19saW51eF94ODYuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYv b3NfbGludXhfeDg2LmNwcAorQEAgLTc1LDkgKzc1LDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgor ICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0jaWZuZGVmIEFN RDY0CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorLSNlbmRpZgorCisgI2lmZGVmIEFNRDY0 CisgI2RlZmluZSBSRUdfU1AgUkVHX1JTUAorLS0tIG9sZC9zcmMvaG90c3BvdC9zaGFyZS9nYy9z aGFyZWQvZ2VuQ29sbGVjdGVkSGVhcC5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mv c2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCitAQCAtMTE0Nyw3ICsxMTQ3LDcgQEAKKyBzdGF0 aWMgU2NyYXRjaEJsb2NrICpyZW1vdmVTbWFsbGVzdFNjcmF0Y2goU2NyYXRjaEJsb2NrICoqcHJl dl9wdHIpIHsKKyAgIGJvb2wgZmlyc3QgPSB0cnVlOworICAgc2l6ZV90IG1pbl9zaXplID0gMDsg ICAvLyAiZmlyc3QiIG1ha2VzIHRoaXMgY29uY2VwdHVhbGx5IGluZmluaXRlLgorLSAgU2NyYXRj aEJsb2NrICoqc21hbGxlc3RfcHRyLCAqc21hbGxlc3Q7CisrICBTY3JhdGNoQmxvY2sgKipzbWFs bGVzdF9wdHIgPSBOVUxMLCAqc21hbGxlc3Q7CisgICBTY3JhdGNoQmxvY2sgICpjdXIgPSAqcHJl dl9wdHI7CisgICB3aGlsZSAoY3VyKSB7CisgICAgIGFzc2VydCgqcHJldl9wdHIgPT0gY3VyLCAi anVzdCBjaGVja2luZyIpOworLS0tIG9sZC9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL3ZtX3Zl cnNpb24uY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L3NoYXJlL3J1bnRpbWUvdm1fdmVyc2lvbi5j cHAKK0BAIC0yNzIsNyArMjcyLDcgQEAKKyAgICNlbmRpZgorCisgICAjZGVmaW5lIElOVEVSTkFM X1ZFUlNJT05fU1VGRklYIFZNX1JFTEVBU0UgIikiIFwKKy0gICAgICAgICAiIGZvciAiIE9TICIt IiBDUFUgRkxPQVRfQVJDSF9TVFIgXAorKyAgICAgICAgICIgZm9yICIgT1MgIi0iIENQVSBGTE9B VF9BUkNIX1NUUiBMSUJDIFwKKyAgICAgICAgICAiIEpSRSAoIiBWRVJTSU9OX1NUUklORyAiKSwg YnVpbHQgb24gIiBfX0RBVEVfXyAiICIgX19USU1FX18gXAorICAgICAgICAgICIgYnkgIiBYU1RS KEhPVFNQT1RfQlVJTERfVVNFUikgIiB3aXRoICIgSE9UU1BPVF9CVUlMRF9DT01QSUxFUgorCist LS0gb2xkL3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2Mu aHBwCisrKysgbmV3L3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9u c19nY2MuaHBwCitAQCAtMjA0LDcgKzIwNCw3IEBACisgI2VsaWYgZGVmaW5lZChfX0FQUExFX18p CisgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbihmKTsgfQorICNl bGlmIGRlZmluZWQoTElOVVgpIHx8IGRlZmluZWQoX0FMTEJTRF9TT1VSQ0UpCistaW5saW5lIGlu dCBnX2lzbmFuKGZsb2F0ICBmKSB7IHJldHVybiBpc25hbmYoZik7IH0KKytpbmxpbmUgaW50IGdf aXNuYW4oZmxvYXQgIGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9CisgaW5saW5lIGludCBnX2lzbmFu KGRvdWJsZSBmKSB7IHJldHVybiBpc25hbihmKTsgfQorICNlbHNlCisgI2Vycm9yICJtaXNzaW5n IHBsYXRmb3JtLXNwZWNpZmljIGRlZmluaXRpb24gaGVyZSIKKy0tLSBvbGQvc3JjL2phdmEuYmFz ZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4X2Nsb3NlLmMKKysrKyBuZXcvc3JjL2phdmEuYmFz ZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4X2Nsb3NlLmMKK0BAIC02MCw3ICs2MCw3IEBACisg LyoKKyAgKiBTaWduYWwgdG8gdW5ibG9jayB0aHJlYWQKKyAgKi8KKy1zdGF0aWMgaW50IHNpZ1dh a2V1cCA9IChfX1NJR1JUTUFYIC0gMik7Cisrc3RhdGljIGludCBzaWdXYWtldXA7CisKKyAvKgor ICAqIGZkVGFibGUgaG9sZHMgb25lIGVudHJ5IHBlciBmaWxlIGRlc2NyaXB0b3IsIHVwIHRvIGEg Y2VydGFpbgorQEAgLTE0OSw2ICsxNDksNyBAQAorICAgICAvKgorICAgICAgKiBTZXR1cCB0aGUg c2lnbmFsIGhhbmRsZXIKKyAgICAgICovCisrICAgIHNpZ1dha2V1cCA9IFNJR1JUTUFYIC0gMjsK KyAgICAgc2Euc2FfaGFuZGxlciA9IHNpZ193YWtldXA7CisgICAgIHNhLnNhX2ZsYWdzICAgPSAw OworICAgICBzaWdlbXB0eXNldCgmc2Euc2FfbWFzayk7CistLS0gb2xkL3NyYy9qYXZhLmJhc2Uv dW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2MuYworKysrIG5ldy9zcmMvamF2YS5iYXNlL3Vu aXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9jLmMKK0BAIC0yMzcsNyArMjM3LDEzIEBACisgewor ICAgICBpZiAoZW52cCA9PSBOVUxMIHx8IChjaGFyICoqKSBlbnZwID09IGVudmlyb24pIHsKKyAg ICAgICAgIGV4ZWN2cChmaWxlLCAoY2hhciAqKikgYXJndik7CistICAgICAgICByZXR1cm47Cisr ICAgICAgICAvLyBFTk9FWEVDIGluZGljYXRlcyB0aGF0IHRoZSBmaWxlIGhlYWRlciB3YXMgbm90 IHJlY29nbml6ZWQuIFRoZSBtdXNsIEMKKysgICAgICAgIC8vIGxpYnJhcnkgZG9lcyBub3QgaW1w bGVtZW50IHRoZSBmYWxsYmFjayB0byAvYmluL3NoIGZvciB0aGF0IGNhc2UsIHNvIGZhbGwKKysg ICAgICAgIC8vIHRocm91Z2ggdG8gdGhlIGNvZGUgYmVsb3cgd2hpY2ggaW1wbGVtZW50cyB0aGF0 IGZhbGxiYWNrIHVzaW5nCisrICAgICAgICAvLyBleGVjdmVfd2l0aF9zaGVsbF9mYWxsYmFjay4K KysgICAgICAgIGlmIChlcnJubyAhPSBFTk9FWEVDKSB7CisrICAgICAgICAgICAgcmV0dXJuOwor KyAgICAgICAgfQorICAgICB9CisKKyAgICAgaWYgKCpmaWxlID09ICdcMCcpIHsKKy0tLSBvbGQv c3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pka191dGlsX21kLmgKKysrKyBuZXcv c3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pka191dGlsX21kLmgKK0BAIC0zNyw3 ICszNyw3IEBACisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9f bGludXhfXykgfHwgZGVmaW5lZChfQUxMQlNEX1NPVVJDRSkKKyAjaW5jbHVkZSA8bWF0aC5oPgor LSNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuZihmKQorKyNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuKGYp CisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9BSVgpCisgI2lu Y2x1ZGUgPG1hdGguaD4KKy0tLSBvbGQvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkv amF2YV9tZF9zb2xpbnV4LmMKKysrKyBuZXcvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJq bGkvamF2YV9tZF9zb2xpbnV4LmMKK0BAIC0yMzUsNiArMjM1LDM5IEBACisgICAgIGNoYXIgKmRt bGxwID0gTlVMTDsKKyAgICAgY2hhciAqcDsgLyogYSB1dGlsaXR5IHBvaW50ZXIgKi8KKworKyNp ZmRlZiBfX2xpbnV4CisrI2lmbmRlZiBMSUJDCisrI2Vycm9yICJMSUJDIG5vdCBzZXQiCisrI2Vu ZGlmCisrCisrICAgIGlmIChzdHJjbXAoTElCQywgIm11c2wiKSA9PSAwKSB7CisrICAgICAgLyoK KysgICAgICAgKiBUaGUgbXVzbCBsaWJyYXJ5IGxvYWRlciByZXF1aXJlcyBMRF9MSUJSQVJZX1BB VEggdG8gYmUgc2V0IGluCisrICAgICAgICogb3JkZXIgdG8gY29ycmVjdGx5IHJlc29sdmUgdGhl IGRlcGVuZGVuY3kgbGliamF2YS5zbyBoYXMgb24gbGlianZtLnNvLgorKyAgICAgICAqCisrICAg ICAgICogU3BlY2lmaWNhbGx5LCBpdCBkaWZmZXJzIGZyb20gZ2xpYmMgaW4gdGhlIHNlbnNlIHRo YXQgZXZlbiBpZgorKyAgICAgICAqIGxpYmp2bS5zbyBoYXMgYWxyZWFkeSBiZWVuIGxvYWRlZCBp dCB3aWxsIG5vdCBiZSBjb25zaWRlcmVkIGEKKysgICAgICAgKiBjYW5kaWRhdGUgZm9yIHJlc29s dmluZyB0aGUgZGVwZW5kZW5jeSB1bmxlc3MgdGhlICpmdWxsKiBwYXRoCisrICAgICAgICogb2Yg dGhlIGFscmVhZHkgbG9hZGVkIGxpYnJhcnkgbWF0Y2hlcyB0aGUgZGVwZW5kZW5jeSBiZWluZyBs b2FkZWQuCisrICAgICAgICoKKysgICAgICAgKiBsaWJqdm0uc28gaXMgYmVpbmcgbG9hZGVkIGJ5 IHRoZSBsYXVuY2hlciB1c2luZyBhIGxvbmcgcGF0aCB0bworKyAgICAgICAqIGRsb3Blbiwgbm90 IGp1c3QgdGhlIGJhc2VuYW1lIG9mIHRoZSBsaWJyYXJ5LiBUeXBpY2FsbHkgdGhpcworKyAgICAg ICAqIGlzIHNvbWV0aGluZyBsaWtlICIuLi9saWIvc2VydmVyL2xpYmp2bS5zbyIuIEhvd2V2ZXIs IGlmL3doZW4KKysgICAgICAgKiBsaWJqdm0uc28gbGF0ZXIgdHJpZXMgdG8gZGxvcGVuIGxpYmph dmEuc28gKHdoaWNoIGl0IGRvZXMgaW4KKysgICAgICAgKiBvcmRlciB0byBnZXQgYWNjZXNzIHRv IGEgZmV3IGZ1bmN0aW9ucyBpbXBsZW1lbnRlZCBpbgorKyAgICAgICAqIGxpYmphdmEuc28pIHRo ZSBtdXNsIGxvYWRlciB3aWxsLCBhcyBwYXJ0IG9mIGxvYWRpbmcKKysgICAgICAgKiBkZXBlbmRl bnQgbGlicmFyaWVzLCB0cnkgdG8gbG9hZCBsaWJqdm0uc28gdXNpbmcgb25seSBpdHMKKysgICAg ICAgKiBiYXNlbmFtZSAibGlianZtLnNvIi4gU2luY2UgdGhpcyBkb2VzIG5vdCBtYXRjaCB0aGUg bG9uZ2VyCisrICAgICAgICogcGF0aCBwYXRoIGl0IHdhcyBmaXJzdCBsb2FkZWQgd2l0aCwgdGhl IGFscmVhZHkgbG9hZGVkCisrICAgICAgICogbGlicmFyeSBpcyBub3QgY29uc2lkZXJlZCBhIGNh bmRpZGF0ZSwgYW5kIHRoZSBsb2FkZXIgd2lsbAorKyAgICAgICAqIGluc3RlYWQgbG9vayBmb3Ig bGlianZtLnNvIGVsc2V3aGVyZS4gSWYgaXQncyBub3QgaW4KKysgICAgICAgKiBMRF9MSUJSQVJZ X1BBVEggdGhlIGRlcGVuZGVuY3kgbG9hZCB3aWxsIGZhaWwsIGFuZCBsaWJqYXZhLnNvCisrICAg ICAgICogd2lsbCB0aGVyZWZvcmUgZmFpbCBhcyB3ZWxsLgorKyAgICAgICAqLworKyAgICAgIHJl dHVybiBKTklfVFJVRTsKKysgICAgfQorKyNlbmRpZgorKworICNpZmRlZiBBSVgKKyAgICAgLyog V2UgYWx3YXlzIGhhdmUgdG8gc2V0IHRoZSBMSUJQQVRIIG9uIEFJWCBiZWNhdXNlIGxkIGRvZXNu J3Qgc3VwcG9ydCAkT1JJR0lOLiAqLworICAgICByZXR1cm4gSk5JX1RSVUU7CistLS0gb2xkL3Ny Yy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCisrKysgbmV3 L3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCitAQCAt MzYsNyArMzYsNyBAQAorICNpZmRlZiBfX2xpbnV4X18KKyAgICNpbmNsdWRlIDxwdGhyZWFkLmg+ CisgICAvKiBBbHNvIGRlZmluZWQgaW4gbmV0L2xpbnV4X2Nsb3NlLmMgKi8KKy0gICNkZWZpbmUg SU5URVJSVVBUX1NJR05BTCAoX19TSUdSVE1BWCAtIDIpCisrICAjZGVmaW5lIElOVEVSUlVQVF9T SUdOQUwgKFNJR1JUTUFYIC0gMikKKyAjZWxpZiBfQUlYCisgICAjaW5jbHVkZSA8cHRocmVhZC5o PgorICAgLyogQWxzbyBkZWZpbmVkIGluIG5ldC9haXhfY2xvc2UuYyAqLworLS0tIG9sZC9zcmMv amF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xraXQuYworKysr IG5ldy9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xr aXQuYworQEAgLTI3LDkgKzI3LDYgQEAKKyAjaW5jbHVkZSA8WDExL1h1dGlsLmg+CisgI2luY2x1 ZGUgPFgxMS9Yb3MuaD4KKyAjaW5jbHVkZSA8WDExL1hhdG9tLmg+CistI2lmZGVmIF9fbGludXhf XworLSNpbmNsdWRlIDxleGVjaW5mby5oPgorLSNlbmRpZgorCisgI2luY2x1ZGUgPGp2bS5oPgor ICNpbmNsdWRlIDxqbmkuaD4KK0BAIC03ODYsMjYgKzc4Myw2IEBACisgICAgIH0KKyAgICAgcmV0 dXJuIHJldDsKKyB9CistCistI2lmZGVmIF9fbGludXhfXworLXZvaWQgcHJpbnRfc3RhY2sodm9p ZCkKKy17CistICB2b2lkICphcnJheVsxMF07CistICBzaXplX3Qgc2l6ZTsKKy0gIGNoYXIgKipz dHJpbmdzOworLSAgc2l6ZV90IGk7CistCistICBzaXplID0gYmFja3RyYWNlIChhcnJheSwgMTAp OworLSAgc3RyaW5ncyA9IGJhY2t0cmFjZV9zeW1ib2xzIChhcnJheSwgc2l6ZSk7CistCistICBm cHJpbnRmIChzdGRlcnIsICJPYnRhaW5lZCAlemQgc3RhY2sgZnJhbWVzLlxuIiwgc2l6ZSk7Cist CistICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKQorLSAgICAgZnByaW50ZiAoc3RkZXJyLCAi JXNcbiIsIHN0cmluZ3NbaV0pOworLQorLSAgZnJlZSAoc3RyaW5ncyk7CistfQorLSNlbmRpZgor CisgV2luZG93IGdldF94YXd0X3Jvb3Rfc2hlbGwoSk5JRW52ICplbnYpIHsKKyAgIHN0YXRpYyBq Y2xhc3MgY2xhc3NYUm9vdFdpbmRvdyA9IE5VTEw7CistLS0gb2xkL3NyYy9qZGsuamR3cC5hZ2Vu dC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmgKKysrKyBuZXcvc3JjL2pkay5qZHdwLmFnZW50 L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAorQEAgLTM1LDE1ICszNSwxNSBAQAorICNpZmRl ZiBERUJVRworICAgICAvKiBKdXN0IHRvIG1ha2Ugc3VyZSB0aGVzZSBpbnRlcmZhY2VzIGFyZSBu b3QgdXNlZCBoZXJlLiAqLworICAgICAjdW5kZWYgZnJlZQorLSAgICAjZGVmaW5lIGZyZWUocCkg RG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBmcmVlIGRvX25vdF91c2Vf dGhpc19pbnRlcmZhY2VfZnJlZQorICAgICAjdW5kZWYgbWFsbG9jCistICAgICNkZWZpbmUgbWFs bG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgbWFsbG9jIGRv X25vdF91c2VfdGhpc19pbnRlcmZhY2VfbWFsbG9jCisgICAgICN1bmRlZiBjYWxsb2MKKy0gICAg I2RlZmluZSBjYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmlu ZSBjYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9jYWxsb2MKKyAgICAgI3VuZGVmIHJl YWxsb2MKKy0gICAgI2RlZmluZSByZWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2Uu CisrICAgICNkZWZpbmUgcmVhbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3JlYWxsb2MK KyAgICAgI3VuZGVmIHN0cmR1cAorLSAgICAjZGVmaW5lIHN0cmR1cChwKSBEbyBub3QgdXNlIHRo aXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIHN0cmR1cCBkb19ub3RfdXNlX3RoaXNfaW50ZXJm YWNlX3N0cmR1cAorICNlbmRpZgorCisgI2luY2x1ZGUgImxvZ19tZXNzYWdlcy5oIgorLS0tIG9s ZC90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMvZXhlaW52b2tlLmMK KysrKyBuZXcvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWlu dm9rZS5jCitAQCAtMzMsNiArMzMsNyBAQAorCisgI2luY2x1ZGUgPGFzc2VydC5oPgorICNpbmNs dWRlIDxqbmkuaD4KKysjaW5jbHVkZSA8anZtLmg+CisgI2luY2x1ZGUgPGFsbG9jYS5oPgorICNp bmNsdWRlIDxzaWduYWwuaD4KKyAjaW5jbHVkZSA8c3RyaW5nLmg+CitAQCAtOTEsNiArOTIsMjAg QEAKKyAgIH0KKyB9CisKKytpbnQgZ2V0X2phdmFfc3RhY2tzaXplICgpIHsKKysgIHNpemVfdCBz dGFja3NpemU7CisrICBwdGhyZWFkX2F0dHJfdCBhdHRyOworKyAgSkRLMV8xSW5pdEFyZ3MgamRr X2FyZ3M7CisrCisrICBqZGtfYXJncy52ZXJzaW9uID0gSk5JX1ZFUlNJT05fMV8xOworKyAgSk5J X0dldERlZmF1bHRKYXZhVk1Jbml0QXJncygmamRrX2FyZ3MpOworKyAgaWYgKGpka19hcmdzLmph dmFTdGFja1NpemUgPD0gMCkgeworKyAgICBmcHJpbnRmKHN0ZGVyciwgIlRlc3QgRVJST1IuIENh bid0IGdldCBhIHZhbGlkIHZhbHVlIGZvciB0aGUgZGVmYXVsdCBzdGFja3NpemUuXG4iKTsKKysg ICAgZXhpdCg3KTsKKysgIH0KKysgIHJldHVybiBqZGtfYXJncy5qYXZhU3RhY2tTaXplOworK30K KysKKyB2b2lkICpydW5famF2YV9vdmVyZmxvdyAodm9pZCAqcCkgeworICAgSk5JRW52ICplbnY7 CisgICBqY2xhc3MgY2xhc3NfaWQ7CitAQCAtMjU0LDEzICsyNjksMTkgQEAKKyAgICAgZXhpdCg3 KTsKKyAgIH0KKworKyAgaW50IHN0YWNrX3NpemUgPSBnZXRfamF2YV9zdGFja3NpemUoKTsKKyAg IHB0aHJlYWRfdCB0aHI7CisrICBwdGhyZWFkX2F0dHJfdCB0aHJlYWRfYXR0cjsKKworKyAgcHRo cmVhZF9hdHRyX2luaXQoJnRocmVhZF9hdHRyKTsKKysgIHB0aHJlYWRfYXR0cl9zZXRzdGFja3Np emUoJnRocmVhZF9hdHRyLCBzdGFja19zaXplKTsKKysKKyAgIGlmIChhcmdjID4gMSAmJiBzdHJj bXAoYXJndlsxXSwgInRlc3RfamF2YV9vdmVyZmxvdyIpID09IDApIHsKKyAgICAgcHJpbnRmKCJc blRlc3RpbmcgSkFWQV9PVkVSRkxPV1xuIik7CisKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNr IGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBvdGhlciB0aHJlYWRcbiIpOworLSAgICBwdGhyZWFk X2NyZWF0ZSAoJnRociwgTlVMTCwgcnVuX2phdmFfb3ZlcmZsb3csIE5VTEwpOworKworKyAgICBw dGhyZWFkX2NyZWF0ZSAoJnRociwgJnRocmVhZF9hdHRyLCBydW5famF2YV9vdmVyZmxvdywgTlVM TCk7CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxMKTsKKworICAgICBwcmludGYoIlRlc3Rp bmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKK0BA IC0yNzMsNyArMjk0LDcgQEAKKyAgICAgcHJpbnRmKCJcblRlc3RpbmcgTkFUSVZFX09WRVJGTE9X XG4iKTsKKworICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIg Zm9yIG90aGVyIHRocmVhZFxuIik7CistICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBy dW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsKKysgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0 aHJlYWRfYXR0ciwgcnVuX25hdGl2ZV9vdmVyZmxvdywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9p biAodGhyLCBOVUxMKTsKKworICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBi ZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKKy0tLSBvbGQvdGVzdC9qZGsvamF2YS9s YW5nL1Byb2Nlc3NCdWlsZGVyL0Jhc2ljLmphdmEKKysrKyBuZXcvdGVzdC9qZGsvamF2YS9sYW5n L1Byb2Nlc3NCdWlsZGVyL0Jhc2ljLmphdmEKK0BAIC0zODksOCArMzg5LDggQEAKKyAgICAgICAg ICAgICAgICAgaWYgKGZhaWxlZCAhPSAwKSB0aHJvdyBuZXcgRXJyb3IoIm51bGwgUEFUSCIpOwor ICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uLmVxdWFscygiUEFUSCBzZWFyY2ggYWxnb3Jp dGhtIikpIHsKKyAgICAgICAgICAgICAgICAgZXF1YWwoU3lzdGVtLmdldGVudigiUEFUSCIpLCAi ZGlyMTpkaXIyOiIpOworLSAgICAgICAgICAgICAgICBjaGVjayhuZXcgRmlsZSgiL2Jpbi90cnVl IikuZXhpc3RzKCkpOworLSAgICAgICAgICAgICAgICBjaGVjayhuZXcgRmlsZSgiL2Jpbi9mYWxz ZSIpLmV4aXN0cygpKTsKKysgICAgICAgICAgICAgICAgY2hlY2sobmV3IEZpbGUoVHJ1ZUV4ZS5w YXRoKCkpLmV4aXN0cygpKTsKKysgICAgICAgICAgICAgICAgY2hlY2sobmV3IEZpbGUoRmFsc2VF eGUucGF0aCgpKS5leGlzdHMoKSk7CisgICAgICAgICAgICAgICAgIFN0cmluZ1tdIGNtZCA9IHsi cHJvZyJ9OworICAgICAgICAgICAgICAgICBQcm9jZXNzQnVpbGRlciBwYjEgPSBuZXcgUHJvY2Vz c0J1aWxkZXIoY21kKTsKKyAgICAgICAgICAgICAgICAgUHJvY2Vzc0J1aWxkZXIgcGIyID0gbmV3 IFByb2Nlc3NCdWlsZGVyKGNtZCk7CitAQCAtNDMxLDEzICs0MzEsMTMgQEAKKyAgICAgICAgICAg ICAgICAgICAgICAgICBjaGVja1Blcm1pc3Npb25EZW5pZWQocGIpOworCisgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gY29udGludWUgc2VhcmNoaW5nIGlmIEVBQ0NFUworLSAgICAgICAgICAg ICAgICAgICAgICAgIGNvcHkoIi9iaW4vdHJ1ZSIsICJkaXIyL3Byb2ciKTsKKysgICAgICAgICAg ICAgICAgICAgICAgICBjb3B5KFRydWVFeGUucGF0aCgpLCAiZGlyMi9wcm9nIik7CisgICAgICAg ICAgICAgICAgICAgICAgICAgZXF1YWwocnVuKHBiKS5leGl0VmFsdWUoKSwgVHJ1ZS5leGl0VmFs dWUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGUoImRpcjEvcHJvZyIpLmRl bGV0ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlKCJkaXIyL3Byb2ciKS5k ZWxldGUoKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlKCJkaXIyL3Byb2ci KS5ta2RpcnMoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBjb3B5KCIvYmluL3RydWUiLCAi ZGlyMS9wcm9nIik7CisrICAgICAgICAgICAgICAgICAgICAgICAgY29weShUcnVlRXhlLnBhdGgo KSwgImRpcjEvcHJvZyIpOworICAgICAgICAgICAgICAgICAgICAgICAgIGVxdWFsKHJ1bihwYiku ZXhpdFZhbHVlKCksIFRydWUuZXhpdFZhbHVlKCkpOworCisgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gQ2hlY2sgZW1wdHkgUEFUSCBjb21wb25lbnQgbWVhbnMgY3VycmVudCBkaXJlY3Rvcnku CitAQCAtNDUzLDEwICs0NTMsMTAgQEAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGIu Y29tbWFuZChjb21tYW5kKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZSBwcm9n ID0gbmV3IEZpbGUoIi4vcHJvZyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAi Tm9ybWFsIiBiaW5hcmllcworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5KCIvYmlu L3RydWUiLCAiLi9wcm9nIik7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoVHJ1 ZUV4ZS5wYXRoKCksICIuL3Byb2ciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXF1 YWwocnVuKHBiKS5leGl0VmFsdWUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVHJ1ZS5leGl0VmFsdWUoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHko Ii9iaW4vZmFsc2UiLCAiLi9wcm9nIik7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv cHkoRmFsc2VFeGUucGF0aCgpLCAiLi9wcm9nIik7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVxdWFsKHJ1bihwYikuZXhpdFZhbHVlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZhbHNlLmV4aXRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcHJvZy5kZWxldGUoKTsKK0BAIC01MTEsMTIgKzUxMSwxMiBAQAorICAgICAgICAgICAgICAg ICAgICAgICAgIG5ldyBGaWxlKCJkaXIyL3Byb2ciKS5kZWxldGUoKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICBuZXcgRmlsZSgicHJvZyIpLmRlbGV0ZSgpOworICAgICAgICAgICAgICAgICAg ICAgICAgIG5ldyBGaWxlKCJkaXIzIikubWtkaXJzKCk7CistICAgICAgICAgICAgICAgICAgICAg ICAgY29weSgiL2Jpbi90cnVlIiwgImRpcjEvcHJvZyIpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGNvcHkoIi9iaW4vZmFsc2UiLCAiZGlyMy9wcm9nIik7CisrICAgICAgICAgICAgICAgICAg ICAgICAgY29weShUcnVlRXhlLnBhdGgoKSwgImRpcjEvcHJvZyIpOworKyAgICAgICAgICAgICAg ICAgICAgICAgIGNvcHkoRmFsc2VFeGUucGF0aCgpLCAiZGlyMy9wcm9nIik7CisgICAgICAgICAg ICAgICAgICAgICAgICAgcGIuZW52aXJvbm1lbnQoKS5wdXQoIlBBVEgiLCJkaXIzIik7CisgICAg ICAgICAgICAgICAgICAgICAgICAgZXF1YWwocnVuKHBiKS5leGl0VmFsdWUoKSwgVHJ1ZS5leGl0 VmFsdWUoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgY29weSgiL2Jpbi90cnVlIiwgImRp cjMvcHJvZyIpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoIi9iaW4vZmFsc2UiLCAi ZGlyMS9wcm9nIik7CisrICAgICAgICAgICAgICAgICAgICAgICAgY29weShUcnVlRXhlLnBhdGgo KSwgImRpcjMvcHJvZyIpOworKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoRmFsc2VFeGUu cGF0aCgpLCAiZGlyMS9wcm9nIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgZXF1YWwocnVu KHBiKS5leGl0VmFsdWUoKSwgRmFsc2UuZXhpdFZhbHVlKCkpOworCisgICAgICAgICAgICAgICAg ICAgICB9IGZpbmFsbHkgeworQEAgLTYxMyw2ICs2MTMsMTMgQEAKKyAgICAgICAgICAgICAgbmV3 IEZpbGUoIi9iaW4vZmFsc2UiKS5leGlzdHMoKSk7CisgICAgIH0KKworKyAgICBzdGF0aWMgY2xh c3MgQnVzeUJveCB7CisrICAgICAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXMoKSB7IHJldHVy biBpczsgfQorKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpcyA9CisrICAg ICAgICAgICAgKCEgV2luZG93cy5pcygpICYmCisrICAgICAgICAgICAgIG5ldyBGaWxlKCIvYmlu L2J1c3lib3giKS5leGlzdHMoKSk7CisrICAgIH0KKysKKyAgICAgc3RhdGljIGNsYXNzIFVuaWNv ZGVPUyB7CisgICAgICAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXMoKSB7IHJldHVybiBpczsg fQorICAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIG9zTmFtZSA9IFN5c3RlbS5n ZXRQcm9wZXJ0eSgib3MubmFtZSIpOworQEAgLTY1MSw2ICs2NTgsNDUgQEAKKyAgICAgICAgIH0K KyAgICAgfQorCisrICAgIC8vIE9uIGFscGluZSBsaW51eCwgL2Jpbi90cnVlIGFuZCAvYmluL2Zh bHNlIGFyZSBqdXN0IGxpbmtzIHRvIC9iaW4vYnVzeWJveC4KKysgICAgLy8gU29tZSB0ZXN0cyBj b3B5IC9iaW4vdHJ1ZSBhbmQgL2Jpbi9mYWxzZSB0byBmaWxlcyB3aXRoIGEgZGlmZmVyZW50IGZp bGVuYW1lLgorKyAgICAvLyBIb3dldmVyLCBjb3B5aW5nIHRoZSBidXNib3ggZXhlY3V0YWJsZSBp bnRvIGEgZmlsZSB3aXRoIGEgZGlmZmVyZW50IG5hbWUKKysgICAgLy8gd29uJ3QgcmVzdWx0IGlu IHRoZSBleHBlY3RlZCByZXR1cm4gY29kZXMuIEFzIHdvcmthcm91bmQsIHdlIGNyZWF0ZQorKyAg ICAvLyBleGVjdXRhYmxlIGZpbGVzIHRoYXQgY2FuIGJlIGNvcGllZCBhbmQgcHJvZHVjZSB0aGUg ZXhlcGVjdGVkIHJldHVybgorKyAgICAvLyB2YWx1ZXMuIFdlIHVzZSB0aGlzIHdvcmthcm91bmQs IGlmIHdlIGZpbmQgdGhlIGJ1c3lib3ggZXhlY3V0YWJsZS4KKysKKysgICAgcHJpdmF0ZSBzdGF0 aWMgY2xhc3MgVHJ1ZUV4ZSB7CisrICAgICAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBwYXRoKCkg eyByZXR1cm4gcGF0aDsgfQorKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHBh dGggPSBwYXRoMCgpOworKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHBhdGgwKCl7Cisr ICAgICAgICAgICAgaWYgKCFCdXN5Qm94LmlzKCkpIHsKKysgICAgICAgICAgICAgICAgcmV0dXJu ICIvYmluL3RydWUiOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICBlbHNlIHsKKysgICAg ICAgICAgICAgICAgRmlsZSB0cnVlRXhlID0gbmV3IEZpbGUoInRydWUiKTsKKysgICAgICAgICAg ICAgICAgc2V0RmlsZUNvbnRlbnRzKHRydWVFeGUsICIjIS9iaW4vdHJ1ZVxuIik7CisrICAgICAg ICAgICAgICAgIHRydWVFeGUuc2V0RXhlY3V0YWJsZSh0cnVlKTsKKysgICAgICAgICAgICAgICAg cmV0dXJuIHRydWVFeGUuZ2V0QWJzb2x1dGVQYXRoKCk7CisrICAgICAgICAgICAgfQorKyAgICAg ICAgfQorKyAgICB9CisrCisrICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEZhbHNlRXhlIHsKKysg ICAgICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHBhdGgoKSB7IHJldHVybiBwYXRoOyB9CisrICAg ICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgcGF0aCA9IHBhdGgwKCk7CisrICAgICAg ICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgcGF0aDAoKXsKKysgICAgICAgICAgICBpZiAoIUJ1c3lC b3guaXMoKSkgeworKyAgICAgICAgICAgICAgICByZXR1cm4gIi9iaW4vZmFsc2UiOworKyAgICAg ICAgICAgIH0KKysgICAgICAgICAgICBlbHNlIHsKKysgICAgICAgICAgICAgICAgRmlsZSBmYWxz ZUV4ZSA9IG5ldyBGaWxlKCJmYWxzZSIpOworKyAgICAgICAgICAgICAgICBzZXRGaWxlQ29udGVu dHMoZmFsc2VFeGUsICIjIS9iaW4vZmFsc2VcbiIpOworKyAgICAgICAgICAgICAgICBmYWxzZUV4 ZS5zZXRFeGVjdXRhYmxlKHRydWUpOworKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2VFeGUu Z2V0QWJzb2x1dGVQYXRoKCk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICB9Cisr CisgICAgIHN0YXRpYyBjbGFzcyBFbmdsaXNoVW5peCB7CisgICAgICAgICBwcml2YXRlIHN0YXRp YyBmaW5hbCBCb29sZWFuIGlzID0KKyAgICAgICAgICAgICAoISBXaW5kb3dzLmlzKCkgJiYgaXNF bmdsaXNoKCJMQU5HIikgJiYgaXNFbmdsaXNoKCJMQ19BTEwiKSk7CitAQCAtMTk1NCw3ICsyMDAw LDcgQEAKKyAgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICB0cnkgeworICAgICAg ICAgICAgICAgICBuZXcgRmlsZSgic3VCZGlSIikubWtkaXJzKCk7CistICAgICAgICAgICAgICAg IGNvcHkoIi9iaW4vdHJ1ZSIsICJzdUJkaVIvdW5saUtlbHkiKTsKKysgICAgICAgICAgICAgICAg Y29weShUcnVlRXhlLnBhdGgoKSwgInN1QmRpUi91bmxpS2VseSIpOworICAgICAgICAgICAgICAg ICBmaW5hbCBQcm9jZXNzQnVpbGRlciBwYiA9CisgICAgICAgICAgICAgICAgICAgICBuZXcgUHJv Y2Vzc0J1aWxkZXIobmV3IFN0cmluZ1tdeyJ1bmxpS2VseSJ9KTsKKyAgICAgICAgICAgICAgICAg cGIuZW52aXJvbm1lbnQoKS5wdXQoIlBBVEgiLCAic3VCZGlSIik7CistLS0gb2xkL3Rlc3QvamRr L2phdmEvbGFuZy9Qcm9jZXNzSGFuZGxlL0luZm9UZXN0LmphdmEKKysrKyBuZXcvdGVzdC9qZGsv amF2YS9sYW5nL1Byb2Nlc3NIYW5kbGUvSW5mb1Rlc3QuamF2YQorQEAgLTI5OCw2ICsyOTgsMTMg QEAKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBpZiAoaW5mby5jb21tYW5k KCkuaXNQcmVzZW50KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjb21tYW5kID0g aW5mby5jb21tYW5kKCkuZ2V0KCk7CistICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0 ZWQgPSBQbGF0Zm9ybS5pc1dpbmRvd3MoKSA/ICJzbGVlcC5leGUiIDogInNsZWVwIjsKKysgICAg ICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZCA9ICJzbGVlcCI7CisrICAgICAgICAgICAg ICAgICAgICBpZiAoUGxhdGZvcm0uaXNXaW5kb3dzKCkpIHsKKysgICAgICAgICAgICAgICAgICAg ICAgICBleHBlY3RlZCA9ICJzbGVlcC5leGUiOworKyAgICAgICAgICAgICAgICAgICAgfSBlbHNl IGlmIChuZXcgRmlsZSgiL2Jpbi9idXN5Ym94IikuZXhpc3RzKCkpIHsKKysgICAgICAgICAgICAg ICAgICAgICAgICAvLyBXaXRoIGJ1c3lib3ggc2xlZXAgaXMganVzdCBhIHN5bSBsaW5rIHRvIGJ1 c3lib3guCisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGJ1c2JveCBleGVjdXRhYmxl IGlzIHNlZW4gYXMgUHJvY2Vzc0hhbmRsZS5JbmZvIGNvbW1hbmQuCisrICAgICAgICAgICAgICAg ICAgICAgICAgZXhwZWN0ZWQgPSAiYnVzeWJveCI7CisrICAgICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgICAgICAgICBBc3NlcnQuYXNzZXJ0VHJ1ZShjb21tYW5kLmVuZHNXaXRoKGV4 cGVjdGVkKSwgIkNvbW1hbmQ6IGV4cGVjdGVkOiBcJyIgKworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBleHBlY3RlZCArICJcJywgYWN0dWFsOiAiICsgY29tbWFuZCk7CmRpZmYgLS1naXQg YS9zcmNwa2dzL29wZW5qZGsxMS9maWxlcy9tdXNsX3BhdGNoZXMvcHBjNjRsZS5wYXRjaCBiL3Ny Y3BrZ3Mvb3BlbmpkazExL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGM2NGxlLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42N2Y2NjQyMTQyYwotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3Mvb3BlbmpkazExL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGM2NGxlLnBhdGNo CkBAIC0wLDAgKzEsMjIxIEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxp bnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUx N2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9j cHUvcHBjL21hY3JvQXNzZW1ibGVyX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3Bw Yy9tYWNyb0Fzc2VtYmxlcl9wcGMuY3BwCitAQCAtMTI5MCw3ICsxMjkwLDExIEBACisgICAvLyB0 aGUgc2FmZXBvaW5nIHBvbGxpbmcgcGFnZS4KKyAgIHVjb250ZXh0X3QqIHVjID0gKHVjb250ZXh0 X3QqKSB1Y29udGV4dDsKKyAgIC8vIFNldCBwb2xsaW5nIGFkZHJlc3MuCisrI2lmIGRlZmluZWQo X19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICBhZGRyZXNzIGFkZHIgPSAoYWRk cmVzcyl1Yy0+dWNfbWNvbnRleHQucmVncy0+Z3ByW3JhXSArIChzc2l6ZV90KWRzOworKyNlbHNl IC8vIE11c2wKKysgIGFkZHJlc3MgYWRkciA9IChhZGRyZXNzKXVjLT51Y19tY29udGV4dC5ncF9y ZWdzW3JhXSArIChzc2l6ZV90KSBkczsKKysjZW5kaWYKKyAgIGlmIChwb2xsaW5nX2FkZHJlc3Nf cHRyICE9IE5VTEwpIHsKKyAgICAgKnBvbGxpbmdfYWRkcmVzc19wdHIgPSBhZGRyOworICAgfQor QEAgLTEzMTEsMTUgKzEzMTUsMjQgQEAKKyAgICAgaW50IHJiID0gaW52X3JiX2ZpZWxkKGluc3Ry dWN0aW9uKTsKKworICAgICAvLyBsb29rIHVwIGNvbnRlbnQgb2YgcmEgYW5kIHJiIGluIHVjb250 ZXh0CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICAg IGFkZHJlc3MgcmFfdmFsPShhZGRyZXNzKXVjLT51Y19tY29udGV4dC5yZWdzLT5ncHJbcmFdOwor ICAgICBsb25nIHJiX3ZhbD0obG9uZyl1Yy0+dWNfbWNvbnRleHQucmVncy0+Z3ByW3JiXTsKKysj ZWxzZSAvLyBNdXNsCisrICAgIGFkZHJlc3MgcmFfdmFsPShhZGRyZXNzKXVjLT51Y19tY29udGV4 dC5ncF9yZWdzW3JhXTsKKysgICAgbG9uZyByYl92YWw9KGxvbmcpdWMtPnVjX21jb250ZXh0Lmdw X3JlZ3NbcmJdOworKyNlbmRpZgorICAgICByZXR1cm4gb3M6OmlzX21lbW9yeV9zZXJpYWxpemVf cGFnZSh0aHJlYWQsIHJhX3ZhbCtyYl92YWwpOworICAgfSBlbHNlIGlmIChpc19zdHcoaW5zdHJ1 Y3Rpb24pIHx8IGlzX3N0d3UoaW5zdHJ1Y3Rpb24pKSB7CisgICAgIGludCByYSA9IGludl9yYV9m aWVsZChpbnN0cnVjdGlvbik7CisgICAgIGludCBkMSA9IGludl9kMV9maWVsZChpbnN0cnVjdGlv bik7CisKKyAgICAgLy8gbG9vayB1cCBjb250ZW50IG9mIHJhIGluIHVjb250ZXh0CisrI2lmIGRl ZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICAgIGFkZHJlc3MgcmFf dmFsPShhZGRyZXNzKXVjLT51Y19tY29udGV4dC5yZWdzLT5ncHJbcmFdOworKyNlbHNlIC8vIE11 c2wKKysgICAgYWRkcmVzcyByYV92YWw9KGFkZHJlc3MpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3Nb cmFdOworKyNlbmRpZgorICAgICByZXR1cm4gb3M6OmlzX21lbW9yeV9zZXJpYWxpemVfcGFnZSh0 aHJlYWQsIHJhX3ZhbCtkMSk7CisgICB9IGVsc2UgeworICAgICByZXR1cm4gZmFsc2U7CitAQCAt MTM4MiwxMSArMTM5NSwyMCBAQAorICAgICAgIHx8IChpc19zdGR1KGluc3RydWN0aW9uKSAmJiBy cyA9PSAxKSkgeworICAgICBpbnQgZHMgPSBpbnZfZHNfZmllbGQoaW5zdHJ1Y3Rpb24pOworICAg ICAvLyByZXR1cm4gYmFuZ2VkIGFkZHJlc3MKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRl ZmluZWQoX19VQ0xJQkNfXykKKyAgICAgcmV0dXJuIGRzKyhhZGRyZXNzKXVjLT51Y19tY29udGV4 dC5yZWdzLT5ncHJbcmFdOworKyNlbHNlIC8vIE11c2wKKysgICAgcmV0dXJuIGRzKyhhZGRyZXNz KXVjLT51Y19tY29udGV4dC5ncF9yZWdzW3JhXTsKKysjZW5kaWYKKyAgIH0gZWxzZSBpZiAoaXNf c3RkdXgoaW5zdHJ1Y3Rpb24pICYmIHJzID09IDEpIHsKKyAgICAgaW50IHJiID0gaW52X3JiX2Zp ZWxkKGluc3RydWN0aW9uKTsKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19V Q0xJQkNfXykKKyAgICAgYWRkcmVzcyBzcCA9IChhZGRyZXNzKXVjLT51Y19tY29udGV4dC5yZWdz LT5ncHJbMV07CisgICAgIGxvbmcgcmJfdmFsID0gKGxvbmcpdWMtPnVjX21jb250ZXh0LnJlZ3Mt PmdwcltyYl07CisrI2Vsc2UgLy8gTXVzbAorKyAgICBhZGRyZXNzIHNwID0gKGFkZHJlc3MpdWMt PnVjX21jb250ZXh0LmdwX3JlZ3NbMV07CisrICAgIGxvbmcgcmJfdmFsID0gKGxvbmcpdWMtPnVj X21jb250ZXh0LmdwX3JlZ3NbcmJdOworKyNlbmRpZgorICAgICByZXR1cm4gcmEgIT0gMSB8fCBy Yl92YWwgPj0gMCA/IE5VTEwgICAgICAgICAvLyBub3QgYSBzdGFjayBiYW5nCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDogc3AgKyByYl92YWw7IC8vIGJhbmdlZCBhZGRyZXNz CisgICB9CistLS0gb2xkL3NyYy9ob3RzcG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCisr KysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCitAQCAtNzY4LDcg Kzc2OCw3IEBACisgICB1bnNpZ25lZCBsb25nIGF1eHYgPSBnZXRhdXh2YWwoQVRfSFdDQVAyKTsK KworICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSFRNX05PU0MpIHsKKy0gICAgaWYgKGF1eHYg JiBQUENfRkVBVFVSRTJfSEFTX0hUTSkgeworKyAgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9I VE0pIHsKKyAgICAgICAvLyBUTSBvbiBQT1dFUjggYW5kIFBPV0VSOSBpbiBjb21wYXQgbW9kZSAo Vk0pIGlzIHN1cHBvcnRlZCBieSB0aGUgSlZNLgorICAgICAgIC8vIFRNIG9uIFBPV0VSOSBERDIu MSBOViAoYmFyZW1ldGFsKSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBKVk0gKFRNIG9uCisgICAg ICAgLy8gUE9XRVI5IEREMi4xIE5WIGhhcyBhIGZldyBpc3N1ZXMgdGhhdCBuZWVkIGEgY291cGxl IG9mIGZpcm13YXJlCistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvb3NfbGlu dXhfcHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL29zX2xpbnV4 X3BwYy5jcHAKK0BAIC0xMDgsMjQgKzEwOCw0MiBAQAorICAgLy8gLSBpZiB1YyB3YXMgZmlsbGVk IGJ5IGdldGNvbnRleHQoKSwgaXQgaXMgdW5kZWZpbmVkIC0gZ2V0Y29udGV4dCgpIGRvZXMgbm90 IGZpbGwKKyAgIC8vICAgaXQgYmVjYXVzZSB0aGUgdm9sYXRpbGUgcmVnaXN0ZXJzIGFyZSBub3Qg bmVlZGVkIHRvIG1ha2Ugc2V0Y29udGV4dCgpIHdvcmsuCisgICAvLyAgIEhvcGVmdWxseSBpdCB3 YXMgemVybydkIG91dCBiZWZvcmVoYW5kLgorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVm aW5lZChfX1VDTElCQ19fKQorICAgZ3VhcmFudGVlKHVjLT51Y19tY29udGV4dC5yZWdzICE9IE5V TEwsICJvbmx5IHVzZSB1Y29udGV4dF9nZXRfcGMgaW4gc2lnYWN0aW9uIGNvbnRleHQiKTsKKyAg IHJldHVybiAoYWRkcmVzcyl1Yy0+dWNfbWNvbnRleHQucmVncy0+bmlwOworKyNlbHNlIC8vIE11 c2wKKysgIGd1YXJhbnRlZSh1Yy0+dWNfbWNvbnRleHQuZ3BfcmVncyAhPSBOVUxMLCAib25seSB1 c2UgdWNvbnRleHRfZ2V0X3BjIGluIHNpZ2FjdGlvbiBjb250ZXh0Iik7CisrICByZXR1cm4gKGFk ZHJlc3MpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzJdOworKyNlbmRpZgorIH0KKworIC8vIG1v ZGlmeSBQQyBpbiB1Y29udGV4dC4KKyAvLyBOb3RlOiBPbmx5IHVzZSB0aGlzIGZvciBhbiB1Y29u dGV4dCBoYW5kZWQgZG93biB0byBhIHNpZ25hbCBoYW5kbGVyLiBTZWUgY29tbWVudAorIC8vIGlu IHVjb250ZXh0X2dldF9wYy4KKyB2b2lkIG9zOjpMaW51eDo6dWNvbnRleHRfc2V0X3BjKHVjb250 ZXh0X3QgKiB1YywgYWRkcmVzcyBwYykgeworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVm aW5lZChfX1VDTElCQ19fKQorICAgZ3VhcmFudGVlKHVjLT51Y19tY29udGV4dC5yZWdzICE9IE5V TEwsICJvbmx5IHVzZSB1Y29udGV4dF9zZXRfcGMgaW4gc2lnYWN0aW9uIGNvbnRleHQiKTsKKyAg IHVjLT51Y19tY29udGV4dC5yZWdzLT5uaXAgPSAodW5zaWduZWQgbG9uZylwYzsKKysjZWxzZSAv LyBNdXNsCisrICBndWFyYW50ZWUodWMtPnVjX21jb250ZXh0LmdwX3JlZ3MgIT0gTlVMTCwgIm9u bHkgdXNlIHVjb250ZXh0X3NldF9wYyBpbiBzaWdhY3Rpb24gY29udGV4dCIpOworKyAgdWMtPnVj X21jb250ZXh0LmdwX3JlZ3NbMzJdID0gKHVuc2lnbmVkIGxvbmcpcGM7CisrI2VuZGlmCisgfQor Cisgc3RhdGljIGFkZHJlc3MgdWNvbnRleHRfZ2V0X2xyKGNvbnN0IHVjb250ZXh0X3QgKiB1Yykg eworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgcmV0 dXJuIChhZGRyZXNzKXVjLT51Y19tY29udGV4dC5yZWdzLT5saW5rOworKyNlbHNlIC8vIE11c2wK KysgIHJldHVybiAoYWRkcmVzcyl1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1szNl07CisrI2VuZGlm CisgfQorCisgaW50cHRyX3QqIG9zOjpMaW51eDo6dWNvbnRleHRfZ2V0X3NwKGNvbnN0IHVjb250 ZXh0X3QgKiB1YykgeworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElC Q19fKQorICAgcmV0dXJuIChpbnRwdHJfdCopdWMtPnVjX21jb250ZXh0LnJlZ3MtPmdwclsxLypS RUdfU1AqL107CisrI2Vsc2UgLy8gTXVzbAorKyAgcmV0dXJuIChpbnRwdHJfdCopdWMtPnVjX21j b250ZXh0LmdwX3JlZ3NbMS8qUkVHX1NQKi9dOworKyNlbmRpZgorIH0KKworIGludHB0cl90KiBv czo6TGludXg6OnVjb250ZXh0X2dldF9mcChjb25zdCB1Y29udGV4dF90ICogdWMpIHsKK0BAIC0x MzMsNyArMTUxLDExIEBACisgfQorCisgc3RhdGljIHVuc2lnbmVkIGxvbmcgdWNvbnRleHRfZ2V0 X3RyYXAoY29uc3QgdWNvbnRleHRfdCAqIHVjKSB7CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSB8 fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICByZXR1cm4gdWMtPnVjX21jb250ZXh0LnJlZ3MtPnRy YXA7CisrI2Vsc2UgLy8gTXVzbAorKyAgcmV0dXJuIHVjLT51Y19tY29udGV4dC5ncF9yZWdzWzQw XTsKKysjZW5kaWYKKyB9CisKKyBFeHRlbmRlZFBDIG9zOjpmZXRjaF9mcmFtZV9mcm9tX2NvbnRl eHQoY29uc3Qgdm9pZCogdWNWb2lkLAorQEAgLTI1OSw3ICsyODEsMTMgQEAKKyAgICAgLy8gMy4y LjEgIk1hY2hpbmUgU3RhdGUgUmVnaXN0ZXIiKSwgaG93ZXZlciBub3RlIHRoYXQgSVNBIG5vdGF0 aW9uIGZvciBiaXQKKyAgICAgLy8gbnVtYmVyaW5nIGlzIE1TQiAwLCBzbyBmb3Igbm9ybWFsIGJp dCBudW1iZXJpbmcgKExTQiAwKSB0aGV5IGNvbWUgdG8gYmUKKyAgICAgLy8gYml0cyAzMyBhbmQg MzQuIEl0J3Mgbm90IHJlbGF0ZWQgdG8gZW5kaWFubmVzcywganVzdCBhIG5vdGF0aW9uIG1hdHRl ci4KKysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgICAg aWYgKHNlY29uZF91Yy0+dWNfbWNvbnRleHQucmVncy0+bXNyICYgMHg2MDAwMDAwMDApIHsKKysj ZWxzZSAvLyBNdXNsCisrICAgIC8vIHdoeSAzMz8KKysgICAgLy8gc2VlIGNvbW1lbnQgZm9yIGds aWJjIE5HUkVHOiAicjAtcjMxLCBuaXAsIG1zciwgbHIsIGV0Yy4iCisrICAgIGlmIChzZWNvbmRf dWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzNdICYgMHg2MDAwMDAwMDApIHsKKysjZW5kaWYKKyAg ICAgICBpZiAoVHJhY2VUcmFwcykgeworICAgICAgICAgdHR5LT5wcmludF9jcigiY2F1Z2h0IHNp Z25hbCBpbiB0cmFuc2FjdGlvbiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICJpZ25vcmlu ZyB0byBqdW1wIHRvIGFib3J0IGhhbmRsZXIiKTsKK0BAIC01ODYsNiArNjE0LDcgQEAKKyAgIGNv bnN0IHVjb250ZXh0X3QqIHVjID0gKGNvbnN0IHVjb250ZXh0X3QqKWNvbnRleHQ7CisKKyAgIHN0 LT5wcmludF9jcigiUmVnaXN0ZXJzOiIpOworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVm aW5lZChfX1VDTElCQ19fKQorICAgc3QtPnByaW50KCJwYyA9IiBJTlRQVFJfRk9STUFUICIgICIs IHVjLT51Y19tY29udGV4dC5yZWdzLT5uaXApOworICAgc3QtPnByaW50KCJsciA9IiBJTlRQVFJf Rk9STUFUICIgICIsIHVjLT51Y19tY29udGV4dC5yZWdzLT5saW5rKTsKKyAgIHN0LT5wcmludCgi Y3RyPSIgSU5UUFRSX0ZPUk1BVCAiICAiLCB1Yy0+dWNfbWNvbnRleHQucmVncy0+Y3RyKTsKK0BA IC01OTQsOCArNjIzLDE4IEBACisgICAgIHN0LT5wcmludCgiciUtMmQ9IiBJTlRQVFJfRk9STUFU ICIgICIsIGksIHVjLT51Y19tY29udGV4dC5yZWdzLT5ncHJbaV0pOworICAgICBpZiAoaSAlIDMg PT0gMikgc3QtPmNyKCk7CisgICB9CisrI2Vsc2UgLy8gTXVzbAorKyAgc3QtPnByaW50KCJwYyA9 IiBJTlRQVFJfRk9STUFUICIgICIsIHVjLT51Y19tY29udGV4dC5ncF9yZWdzWzMyXSk7CisrICBz dC0+cHJpbnQoImxyID0iIElOVFBUUl9GT1JNQVQgIiAgIiwgdWMtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMzZdKTsKKysgIHN0LT5wcmludCgiY3RyPSIgSU5UUFRSX0ZPUk1BVCAiICAiLCB1Yy0+dWNf bWNvbnRleHQuZ3BfcmVnc1szNV0pOworICAgc3QtPmNyKCk7CisrICBmb3IgKGludCBpID0gMDsg aSA8IDMyOyBpKyspIHsKKysgICAgc3QtPnByaW50KCJyJS0yZD0iIElOVFBUUl9GT1JNQVQgIiAg IiwgaSwgdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbaV0pOworKyAgICBpZiAoaSAlIDMgPT0gMikg c3QtPmNyKCk7CisrICB9CisrI2VuZGlmCisgICBzdC0+Y3IoKTsKKysgIHN0LT5jcigpOworCisg ICBpbnRwdHJfdCAqc3AgPSAoaW50cHRyX3QgKilvczo6TGludXg6OnVjb250ZXh0X2dldF9zcCh1 Yyk7CisgICBzdC0+cHJpbnRfY3IoIlRvcCBvZiBTdGFjazogKHNwPSIgUFRSX0ZPUk1BVCAiKSIs IHAyaShzcCkpOworQEAgLTYxOCwxMiArNjU3LDIyIEBACisgICBzdC0+cHJpbnRfY3IoIlJlZ2lz dGVyIHRvIG1lbW9yeSBtYXBwaW5nOiIpOworICAgc3QtPmNyKCk7CisKKysjaWYgZGVmaW5lZChf X0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgIHN0LT5wcmludCgicGMgPSIpOyBw cmludF9sb2NhdGlvbihzdCwgKGludHB0cl90KXVjLT51Y19tY29udGV4dC5yZWdzLT5uaXApOwor ICAgc3QtPnByaW50KCJsciA9Iik7IHByaW50X2xvY2F0aW9uKHN0LCAoaW50cHRyX3QpdWMtPnVj X21jb250ZXh0LnJlZ3MtPmxpbmspOworICAgc3QtPnByaW50KCJjdHIgPSIpOyBwcmludF9sb2Nh dGlvbihzdCwgKGludHB0cl90KXVjLT51Y19tY29udGV4dC5yZWdzLT5jdHIpOworKyNlbHNlIC8v IE11c2wKKysgIHN0LT5wcmludCgicGMgPSIpOyBwcmludF9sb2NhdGlvbihzdCwgKGludHB0cl90 KXVjLT51Y19tY29udGV4dC5ncF9yZWdzWzMyXSk7CisrICBzdC0+cHJpbnQoImxyID0iKTsgcHJp bnRfbG9jYXRpb24oc3QsIChpbnRwdHJfdCl1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1szNl0pOwor KyAgc3QtPnByaW50KCJjdHIgPSIpOyBwcmludF9sb2NhdGlvbihzdCwgKGludHB0cl90KXVjLT51 Y19tY29udGV4dC5ncF9yZWdzWzM1XSk7CisrI2VuZGlmCisgICBmb3IgKGludCBpID0gMDsgaSA8 IDMyOyBpKyspIHsKKyAgICAgc3QtPnByaW50KCJyJS0yZD0iLCBpKTsKKysjaWYgZGVmaW5lZChf X0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgICAgcHJpbnRfbG9jYXRpb24oc3Qs IHVjLT51Y19tY29udGV4dC5yZWdzLT5ncHJbaV0pOworKyNlbHNlIC8vIE11c2wKKysgICAgcHJp bnRfbG9jYXRpb24oc3QsIHVjLT51Y19tY29udGV4dC5ncF9yZWdzW2ldKTsKKysjZW5kaWYKKyAg IH0KKyAgIHN0LT5jcigpOworIH0KKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3Bw Yy90aHJlYWRfbGludXhfcHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhf cHBjL3RocmVhZF9saW51eF9wcGMuY3BwCitAQCAtNTYsOCArNTYsMTMgQEAKKyAgIC8vIGlmIHdl IHdlcmUgcnVubmluZyBKYXZhIGNvZGUgd2hlbiBTSUdQUk9GIGNhbWUgaW4uCisgICBpZiAoaXNJ bkphdmEpIHsKKyAgICAgdWNvbnRleHRfdCogdWMgPSAodWNvbnRleHRfdCopIHVjb250ZXh0Owor KyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgICBmcmFt ZSByZXRfZnJhbWUoKGludHB0cl90Kil1Yy0+dWNfbWNvbnRleHQucmVncy0+Z3ByWzEvKlJFR19T UCovXSwKKyAgICAgICAgICAgICAgICAgICAgICAoYWRkcmVzcyl1Yy0+dWNfbWNvbnRleHQucmVn cy0+bmlwKTsKKysjZWxzZSAvLyBNdXNsCisrICAgIGZyYW1lIHJldF9mcmFtZSgoaW50cHRyX3Qq KXVjLT51Y19tY29udGV4dC5ncF9yZWdzWzEvKlJFR19TUCovXSwKKysgICAgICAgICAgICAgICAg ICAgICAoYWRkcmVzcyl1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1szMl0pOworKyNlbmRpZgorCisg ICAgIGlmIChyZXRfZnJhbWUucGMoKSA9PSBOVUxMKSB7CisgICAgICAgLy8gdWNvbnRleHQgd2Fz bid0IHVzZWZ1bAorQEAgLTY5LDcgKzc0LDExIEBACisgICAgICAgIGlmICghKChNZXRob2QqKShp c3RhdGUtPm1ldGhvZCkpLT5pc19tZXRhc3BhY2Vfb2JqZWN0KCkpIHsKKyAgICAgICAgICByZXR1 cm4gZmFsc2U7CisgICAgICAgIH0KKysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQo X19VQ0xJQkNfXykKKyAgICAgICAgdWludDY0X3QgcmVnX2JjcCA9IHVjLT51Y19tY29udGV4dC5y ZWdzLT5ncHJbMTQvKlIxNF9iY3AqL107CisrI2Vsc2UgLy8gTXVzbAorKyAgICAgICB1aW50NjRf dCByZWdfYmNwID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbMTQvKlIxNF9iY3AqL107CisrI2Vu ZGlmCisgICAgICAgIHVpbnQ2NF90IGlzdGF0ZV9iY3AgPSBpc3RhdGUtPmJjcDsKKyAgICAgICAg dWludDY0X3QgY29kZV9zdGFydCA9ICh1aW50NjRfdCkoKChNZXRob2QqKShpc3RhdGUtPm1ldGhv ZCkpLT5jb2RlX2Jhc2UoKSk7CisgICAgICAgIHVpbnQ2NF90IGNvZGVfZW5kID0gKHVpbnQ2NF90 KSgoKE1ldGhvZCopaXN0YXRlLT5tZXRob2QpLT5jb2RlX2Jhc2UoKSArICgoTWV0aG9kKilpc3Rh dGUtPm1ldGhvZCktPmNvZGVfc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazEx L2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxMS9maWxlcy9t dXNsX3BhdGNoZXMveDg2LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi45YzY0YzE4OTAzNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazExL2Zp bGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKQEAgLTAsMCArMSwxMzAgQEAKK1BhdGNoZXMgZm9y IG11c2wgdGFrZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9y Zy9hcG9ydHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2MjBlN2UyNGM2 MjgwCistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNw cAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAK K0BAIC05MCw2ICs5MCwxMjYgQEAKKyAjZGVmaW5lIFNQRUxMX1JFR19GUCAiZWJwIgorICNlbmRp ZiAvLyBBTUQ2NAorCisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gVGFrZW4gZnJvbSBn bGliYyAyLjI4CisrLy8gc291cmNlOiBodHRwczovL3NvdXJjZXdhcmUub3JnL2dpdC8/cD1nbGli Yy5naXQ7YT1ibG9iO2Y9c3lzZGVwcy94ODYvZnB1X2NvbnRyb2wuaDtoPTRjYjk4YzU2NzliMjg5 N2ZmNGU1ODI2ZDIyOGNiYTZiZTU4OWUyNGQ7aGI9M2MwM2JhY2EzN2ZkY2I1MmMzODgxZTY1M2Nh MzkyYmJhN2E5OWMyYgorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyNpZm5kZWYgQU1ENjQK KysvKiBGUFUgY29udHJvbCB3b3JkIGJpdHMuICB4ODYgdmVyc2lvbi4KKysgICBDb3B5cmlnaHQg KEMpIDE5OTMtMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlzIGZp bGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysgICBDb250cmlidXRlZCBieSBPbGFm IEZsZWJiZS4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lvbiAy LjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2Vy IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj CisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQor KyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmbmRlZiBfRlBV X0NPTlRST0xfSAorKyNkZWZpbmUgX0ZQVV9DT05UUk9MX0gJMQorKworKy8qIE5vdGUgdGhhdCB0 aGlzIGZpbGUgc2V0cyBvbiB4ODYtNjQgb25seSB0aGUgeDg3IEZQVSwgaXQgZG9lcyBub3QKKysg ICB0b3VjaCB0aGUgU1NFIHVuaXQuICAqLworKworKy8qIEhlcmUgaXMgdGhlIGRpcnR5IHBhcnQu IFNldCB1cCB5b3VyIDM4NyB0aHJvdWdoIHRoZSBjb250cm9sIHdvcmQKKysgKiAoY3cpIHJlZ2lz dGVyLgorKyAqCisrICogICAgIDE1LTEzICAgIDEyICAxMS0xMCAgOS04ICAgICA3LTYgICAgIDUg ICAgNCAgICAzICAgIDIgICAgMSAgICAwCisrICogfCByZXNlcnZlZCB8IElDIHwgUkMgIHwgUEMg fCByZXNlcnZlZCB8IFBNIHwgVU0gfCBPTSB8IFpNIHwgRE0gfCBJTQorKyAqCisrICogSU06IElu dmFsaWQgb3BlcmF0aW9uIG1hc2sKKysgKiBETTogRGVub3JtYWxpemVkIG9wZXJhbmQgbWFzawor KyAqIFpNOiBaZXJvLWRpdmlkZSBtYXNrCisrICogT006IE92ZXJmbG93IG1hc2sKKysgKiBVTTog VW5kZXJmbG93IG1hc2sKKysgKiBQTTogUHJlY2lzaW9uIChpbmV4YWN0IHJlc3VsdCkgbWFzawor KyAqCisrICogTWFzayBiaXQgaXMgMSBtZWFucyBubyBpbnRlcnJ1cHQuCisrICoKKysgKiBQQzog UHJlY2lzaW9uIGNvbnRyb2wKKysgKiAxMSAtIHJvdW5kIHRvIGV4dGVuZGVkIHByZWNpc2lvbgor KyAqIDEwIC0gcm91bmQgdG8gZG91YmxlIHByZWNpc2lvbgorKyAqIDAwIC0gcm91bmQgdG8gc2lu Z2xlIHByZWNpc2lvbgorKyAqCisrICogUkM6IFJvdW5kaW5nIGNvbnRyb2wKKysgKiAwMCAtIHJv dW5kaW5nIHRvIG5lYXJlc3QKKysgKiAwMSAtIHJvdW5kaW5nIGRvd24gKHRvd2FyZCAtIGluZmlu aXR5KQorKyAqIDEwIC0gcm91bmRpbmcgdXAgKHRvd2FyZCArIGluZmluaXR5KQorKyAqIDExIC0g cm91bmRpbmcgdG93YXJkIHplcm8KKysgKgorKyAqIElDOiBJbmZpbml0eSBjb250cm9sCisrICog VGhhdCBpcyBmb3IgODA4NyBhbmQgODAyODcgb25seS4KKysgKgorKyAqIFRoZSBoYXJkd2FyZSBk ZWZhdWx0IGlzIDB4MDM3ZiB3aGljaCB3ZSB1c2UuCisrICovCisrCisrI2luY2x1ZGUgPGZlYXR1 cmVzLmg+CisrCisrLyogbWFza2luZyBvZiBpbnRlcnJ1cHRzICovCisrI2RlZmluZSBfRlBVX01B U0tfSU0gIDB4MDEKKysjZGVmaW5lIF9GUFVfTUFTS19ETSAgMHgwMgorKyNkZWZpbmUgX0ZQVV9N QVNLX1pNICAweDA0CisrI2RlZmluZSBfRlBVX01BU0tfT00gIDB4MDgKKysjZGVmaW5lIF9GUFVf TUFTS19VTSAgMHgxMAorKyNkZWZpbmUgX0ZQVV9NQVNLX1BNICAweDIwCisrCisrLyogcHJlY2lz aW9uIGNvbnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfRVhURU5ERUQgMHgzMDAJLyogbGlibSByZXF1 aXJlcyBkb3VibGUgZXh0ZW5kZWQgcHJlY2lzaW9uLiAgKi8KKysjZGVmaW5lIF9GUFVfRE9VQkxF ICAgMHgyMDAKKysjZGVmaW5lIF9GUFVfU0lOR0xFICAgMHgwCisrCisrLyogcm91bmRpbmcgY29u dHJvbCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ORUFSRVNUIDB4MCAgICAvKiBSRUNPTU1FTkRFRCAq LworKyNkZWZpbmUgX0ZQVV9SQ19ET1dOICAgIDB4NDAwCisrI2RlZmluZSBfRlBVX1JDX1VQICAg ICAgMHg4MDAKKysjZGVmaW5lIF9GUFVfUkNfWkVSTyAgICAweEMwMAorKworKyNkZWZpbmUgX0ZQ VV9SRVNFUlZFRCAweEYwQzAgIC8qIFJlc2VydmVkIGJpdHMgaW4gY3cgKi8KKysKKysKKysvKiBU aGUgZmRsaWJtIGNvZGUgcmVxdWlyZXMgc3RyaWN0IElFRUUgZG91YmxlIHByZWNpc2lvbiBhcml0 aG1ldGljLAorKyAgIGFuZCBubyBpbnRlcnJ1cHRzIGZvciBleGNlcHRpb25zLCByb3VuZGluZyB0 byBuZWFyZXN0LiAgKi8KKysKKysjZGVmaW5lIF9GUFVfREVGQVVMVCAgMHgwMzdmCisrCisrLyog SUVFRTogIHNhbWUgYXMgYWJvdmUuICAqLworKyNkZWZpbmUgX0ZQVV9JRUVFICAgICAweDAzN2YK KysKKysvKiBUeXBlIG9mIHRoZSBjb250cm9sIHdvcmQuICAqLworK3R5cGVkZWYgdW5zaWduZWQg aW50IGZwdV9jb250cm9sX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJX18pKSk7Cisr CisrLyogTWFjcm9zIGZvciBhY2Nlc3NpbmcgdGhlIGhhcmR3YXJlIGNvbnRyb2wgd29yZC4gICIq JiIgaXMgdXNlZCB0bworKyAgIHdvcmsgYXJvdW5kIGEgYnVnIGluIG9sZGVyIHZlcnNpb25zIG9m IEdDQy4gIF9fdm9sYXRpbGVfXyBpcyB1c2VkCisrICAgdG8gc3VwcG9ydCBjb21iaW5hdGlvbiBv ZiB3cml0aW5nIHRoZSBjb250cm9sIHJlZ2lzdGVyIGFuZCByZWFkaW5nCisrICAgaXQgYmFjay4g IFdpdGhvdXQgX192b2xhdGlsZV9fLCB0aGUgb2xkIHZhbHVlIG1heSBiZSB1c2VkIGZvciByZWFk aW5nCisrICAgYmFjayB1bmRlciBjb21waWxlciBvcHRpbWl6YXRpb24uCisrCisrICAgTm90ZSB0 aGF0IHRoZSB1c2Ugb2YgdGhlc2UgbWFjcm9zIGlzIG5vdCBzdWZmaWNpZW50IGFueW1vcmUgd2l0 aAorKyAgIHJlY2VudCBoYXJkd2FyZSBub3Igb24geDg2LTY0LiAgU29tZSBmbG9hdGluZyBwb2lu dCBvcGVyYXRpb25zIGFyZQorKyAgIGV4ZWN1dGVkIGluIHRoZSBTU0UvU1NFMiBlbmdpbmVzIHdo aWNoIGhhdmUgdGhlaXIgb3duIGNvbnRyb2wgYW5kCisrICAgc3RhdHVzIHJlZ2lzdGVyLiAgKi8K KysjZGVmaW5lIF9GUFVfR0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9fICgiZm5zdGN3ICUw IiA6ICI9bSIgKComY3cpKQorKyNkZWZpbmUgX0ZQVV9TRVRDVyhjdykgX19hc21fXyBfX3ZvbGF0 aWxlX18gKCJmbGRjdyAlMCIgOiA6ICJtIiAoKiZjdykpCisrCisrLyogRGVmYXVsdCBjb250cm9s IHdvcmQgc2V0IGF0IHN0YXJ0dXAuICAqLworK2V4dGVybiBmcHVfY29udHJvbF90IF9fZnB1X2Nv bnRyb2w7CisrCisrI2VuZGlmCS8qIGZwdV9jb250cm9sLmggKi8KKysKKysjZW5kaWYgLy8gQU1E NjQKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K KysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysKKyBhZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNr X3BvaW50ZXIoKSB7CisgI2lmZGVmIFNQQVJDX1dPUktTCisgICByZWdpc3RlciB2b2lkICplc3A7 CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMS90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3Blbmpk azExL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNjNk MWEyMTRiOQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazExL3RlbXBsYXRlCkBA IC0wLDAgKzEsMTgzIEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdvcGVuamRrMTEnCitfamF2YV92 ZXI9MTEKK19qYXZhX21pbl92ZXI9MAorX2phdmFfc2VjX3Zlcj00CitfamRrX3VwZGF0ZT0xMQor X29wZW5qZGtfdmVyc2lvbj0ib3Blbmpkay0ke19qYXZhX3Zlcn0iCisKKworcGtnbmFtZT1vcGVu amRrMTEKK3ZlcnNpb249IiR7X2phdmFfdmVyfS4ke19qYXZhX21pbl92ZXJ9LiR7X2phdmFfc2Vj X3Zlcn0rJHtfamRrX3VwZGF0ZX0iCityZXZpc2lvbj0xCit3cmtzcmM9ImpkayR7X2phdmFfdmVy fXUtamRrLSR7dmVyc2lvbn0iCitidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitjb25maWd1cmVf YXJncz0iCisgLS1kaXNhYmxlLXdhcm5pbmdzLWFzLWVycm9ycworIC0tcHJlZml4PSR7WEJQU19E RVNURElSfS8ke1hCUFNfQ1JPU1NfVFJJUExFVH0vJHtwa2duYW1lfS0ke3ZlcnNpb259L3Vzci9s aWIKKyAtLWVuYWJsZS11bmxpbWl0ZWQtY3J5cHRvCisgLS13aXRoLXpsaWI9c3lzdGVtCisgLS13 aXRoLWxpYmpwZWc9c3lzdGVtCisgLS13aXRoLWdpZmxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlicG5n PXN5c3RlbQorIC0td2l0aC1sY21zPXN5c3RlbQorIC0td2l0aC1qdHJlZz1ubworIC0td2l0aC12 ZXJzaW9uLWJ1aWxkPSR7dmVyc2lvbn0KKyAtLXdpdGgtdmVuZG9yLW5hbWU9IlZvaWQiCisgLS13 aXRoLXZlbmRvci11cmw9Imh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8iCisgLS13aXRoLXZlbmRvci1i dWctdXJsPSJodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3Vl cyIKKyAtLXdpdGgtdmVuZG9yLXZtLWJ1Zy11cmw9Imh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxp bnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzIgorIC0td2l0aC1ib290LWpkaz0vdXNyL2xpYi9qdm0v b3BlbmpkazExLWJpbiIKKworbWFrZV9idWlsZF9hcmdzPSJpbWFnZXMgJCh2b3B0X2lmIGRvY3Mg ZG9jcykiCittYWtlX2NoZWNrX3RhcmdldD0idGVzdC1ob3RzcG90LWd0ZXN0IgoraG9zdG1ha2Vk ZXBlbmRzPSJwa2ctY29uZmlnIGF1dG9tYWtlIGF1dG9jb25mIGNwaW8gdW56aXAgemlwIGNhLWNl cnRpZmljYXRlcworIGxpYnJlc3NsIHpsaWItZGV2ZWwgbWFrZS1jYSIKK21ha2VkZXBlbmRzPSJs aWJYcmVuZGVyLWRldmVsIGxpYlh0c3QtZGV2ZWwgbGliWHQtZGV2ZWwgbGliWHJhbmRyLWRldmVs CisgZ2lmbGliLWRldmVsIGxpYmpwZWctdHVyYm8tZGV2ZWwgY3Vwcy1kZXZlbCBmcmVldHlwZS1k ZXZlbCBhbHNhLWxpYi1kZXZlbAorIGZvbnRjb25maWctZGV2ZWwgemxpYi1kZXZlbCBsY21zMi1k ZXZlbCIKK3Byb3ZpZGVzPSJqYXZhLWVudmlyb25tZW50LSR7dmVyc2lvbn1fMSBqYXZhLXJ1bnRp bWUtJHt2ZXJzaW9ufV8xIgorc2hvcnRfZGVzYz0iT3BlbkpESyBKYXZhIERldmVsb3BtZW50IEtp dCIKK21haW50YWluZXI9Ikt5bGUgTnVzYmF1bSA8a251c2JhdW0rdm9pZEBzZGYub3JnPiIKK2xp Y2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cDovL29wZW5qZGsuamF2YS5u ZXQvIgorZGlzdGZpbGVzPSJodHRwczovL2hnLm9wZW5qZGsuamF2YS5uZXQvamRrLXVwZGF0ZXMv amRrJHtfamF2YV92ZXJ9dS9hcmNoaXZlL2pkay0ke3ZlcnNpb259LnRhci5neiIKK2NoZWNrc3Vt PTI3MmFlYWIwYjY4MjYyZTI3MGI5ZTJmOWFhZTlhMzdhOTc5M2IxMTA0MjhjOGQ5NmQ0ODZjMDk0 Y2M2YTY0MjkKK3NobGliX3Byb3ZpZGVzPSJsaWJhd3Quc28gbGliYXd0X3hhd3Quc28gbGliamF2 YS5zbyBsaWJqbGkuc28gbGlianZtLnNvIGxpYmphd3Quc28iCisKKyMgQnVpbGQgaXMgc3RpbGwg cGFyYWxsZWwsIGJ1dCBkb24ndCB1c2UgLWpOLgorZGlzYWJsZV9wYXJhbGxlbF9idWlsZD15ZXMK K2J1aWxkX29wdGlvbnM9ImRvY3MiCisKK2Nhc2UgIiRYQlBTX1RBUkdFVF9MSUJDIiBpbgorCWds aWJjKSBidWlsZF9vcHRpb25zX2RlZmF1bHQrPSIgZG9jcyI7OworZXNhYworCitpZiBbICIkQ1JP U1NfQlVJTEQiIF07IHRoZW4KKwlob3N0bWFrZWRlcGVuZHMrPSIgb3BlbmpkazExIgorCWNvbmZp Z3VyZV9hcmdzKz0iIC0td2l0aC1ib290LWpkaz0vdXNyL2xpYi9qdm0vb3BlbmpkazExIgorZWxz ZQorCWhvc3RtYWtlZGVwZW5kcys9IiBvcGVuamRrMTEtYmluIgorCWNvbmZpZ3VyZV9hcmdzKz0i IC0td2l0aC1ib290LWpkaz0vdXNyL2xpYi9qdm0vb3BlbmpkazExLWJpbiIKK2ZpCisKK2FsdGVy bmF0aXZlcz0iCisgamF2YTovdXNyL2Jpbi9qYXZhOi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmlu L2phdmEKKyBqYXZhOi91c3IvYmluL2pqczovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi9qanMK KyBqYXZhOi91c3IvYmluL2tleXRvb2w6L3Vzci9saWIvanZtL29wZW5qZGsxMS9iaW4va2V5dG9v bAorIGphdmE6L3Vzci9iaW4vb3JiZDovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi9vcmJkCisg amF2YTovdXNyL2Jpbi9wYWNrMjAwOi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL3BhY2syMDAK KyBqYXZhOi91c3IvYmluL3BvbGljeXRvb2w6L3Vzci9saWIvanZtL29wZW5qZGsxMS9iaW4vcG9s aWN5dG9vbAorIGphdmE6L3Vzci9iaW4vcm1pZDovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi9y bWlkCisgamF2YTovdXNyL2Jpbi9ybWlyZWdpc3RyeTovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jp bi9ybWlyZWdpc3RyeQorIGphdmE6L3Vzci9iaW4vc2VydmVydG9vbDovdXNyL2xpYi9qdm0vb3Bl bmpkazExL2Jpbi9zZXJ2ZXJ0b29sCisgamF2YTovdXNyL2Jpbi90bmFtZXNlcnY6L3Vzci9saWIv anZtL29wZW5qZGsxMS9iaW4vdG5hbWVzZXJ2CisgamF2YTovdXNyL2Jpbi91bnBhY2syMDA6L3Vz ci9saWIvanZtL29wZW5qZGsxMS9iaW4vdW5wYWNrMjAwCisKKyBqZGs6L3Vzci9iaW4vYXBwbGV0 dmlld2VyOi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL2FwcGxldHZpZXdlcgorIGpkazovdXNy L2Jpbi9leHRjaGVjazovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi9leHRjaGVjaworIGpkazov dXNyL2Jpbi9pZGxqOi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL2lkbGoKKyBqZGs6L3Vzci9i aW4vamFyOi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL2phcgorIGpkazovdXNyL2Jpbi9qYXJz aWduZXI6L3Vzci9saWIvanZtL29wZW5qZGsxMS9iaW4vamFyc2lnbmVyCisgamRrOi91c3IvYmlu L2phdmE6L3Vzci9saWIvanZtL29wZW5qZGsxMS9iaW4vamF2YQorIGpkazovdXNyL2Jpbi9qYXZh LXJtaS5jZ2k6L3Vzci9saWIvanZtL29wZW5qZGsxMS9iaW4vamF2YS1ybWkuY2dpCisgamRrOi91 c3IvYmluL2phdmFjOi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL2phdmFjCisgamRrOi91c3Iv YmluL2phdmFkb2M6L3Vzci9saWIvanZtL29wZW5qZGsxMS9iaW4vamF2YWRvYworIGpkazovdXNy L2Jpbi9qYXZhaDovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi9qYXZhaAorIGpkazovdXNyL2Jp bi9qYXZhcDovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi9qYXZhcAorIGpkazovdXNyL2Jpbi9q Y21kOi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL2pjbWQKKyBqZGs6L3Vzci9iaW4vamNvbnNv bGU6L3Vzci9saWIvanZtL29wZW5qZGsxMS9iaW4vamNvbnNvbGUKKyBqZGs6L3Vzci9iaW4vamRi Oi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL2pkYgorIGpkazovdXNyL2Jpbi9qZGVwczovdXNy L2xpYi9qdm0vb3BlbmpkazExL2Jpbi9qZGVwcworIGpkazovdXNyL2Jpbi9qaGF0Oi91c3IvbGli L2p2bS9vcGVuamRrMTEvYmluL2poYXQKKyBqZGs6L3Vzci9iaW4vamluZm86L3Vzci9saWIvanZt L29wZW5qZGsxMS9iaW4vamluZm8KKyBqZGs6L3Vzci9iaW4vampzOi91c3IvbGliL2p2bS9vcGVu amRrMTEvYmluL2pqcworIGpkazovdXNyL2Jpbi9qbWFwOi91c3IvbGliL2p2bS9vcGVuamRrMTEv YmluL2ptYXAKKyBqZGs6L3Vzci9iaW4vanBzOi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL2pw cworIGpkazovdXNyL2Jpbi9qcnVuc2NyaXB0Oi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL2py dW5zY3JpcHQKKyBqZGs6L3Vzci9iaW4vanNhZGVidWdkOi91c3IvbGliL2p2bS9vcGVuamRrMTEv YmluL2pzYWRlYnVnZAorIGpkazovdXNyL2Jpbi9qc3RhY2s6L3Vzci9saWIvanZtL29wZW5qZGsx MS9iaW4vanN0YWNrCisgamRrOi91c3IvYmluL2pzdGF0Oi91c3IvbGliL2p2bS9vcGVuamRrMTEv YmluL2pzdGF0CisgamRrOi91c3IvYmluL2pzdGF0ZDovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jp bi9qc3RhdGQKKyBqZGs6L3Vzci9iaW4va2V5dG9vbDovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jp bi9rZXl0b29sCisgamRrOi91c3IvYmluL25hdGl2ZTJhc2NpaTovdXNyL2xpYi9qdm0vb3Blbmpk azExL2Jpbi9uYXRpdmUyYXNjaWkKKyBqZGs6L3Vzci9iaW4vb3JiZDovdXNyL2xpYi9qdm0vb3Bl bmpkazExL2Jpbi9vcmJkCisgamRrOi91c3IvYmluL3BhY2syMDA6L3Vzci9saWIvanZtL29wZW5q ZGsxMS9iaW4vcGFjazIwMAorIGpkazovdXNyL2Jpbi9wb2xpY3l0b29sOi91c3IvbGliL2p2bS9v cGVuamRrMTEvYmluL3BvbGljeXRvb2wKKyBqZGs6L3Vzci9iaW4vcm1pYzovdXNyL2xpYi9qdm0v b3BlbmpkazExL2Jpbi9ybWljCisgamRrOi91c3IvYmluL3JtaWQ6L3Vzci9saWIvanZtL29wZW5q ZGsxMS9iaW4vcm1pZAorIGpkazovdXNyL2Jpbi9ybWlyZWdpc3RyeTovdXNyL2xpYi9qdm0vb3Bl bmpkazExL2Jpbi9ybWlyZWdpc3RyeQorIGpkazovdXNyL2Jpbi9zY2hlbWFnZW46L3Vzci9saWIv anZtL29wZW5qZGsxMS9iaW4vc2NoZW1hZ2VuCisgamRrOi91c3IvYmluL3NlcmlhbHZlcjovdXNy L2xpYi9qdm0vb3BlbmpkazExL2Jpbi9zZXJpYWx2ZXIKKyBqZGs6L3Vzci9iaW4vc2VydmVydG9v bDovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi9zZXJ2ZXJ0b29sCisgamRrOi91c3IvYmluL3Ru YW1lc2VydjovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi90bmFtZXNlcnYKKyBqZGs6L3Vzci9i aW4vdW5wYWNrMjAwOi91c3IvbGliL2p2bS9vcGVuamRrMTEvYmluL3VucGFjazIwMAorIGpkazov dXNyL2Jpbi93c2dlbjovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi93c2dlbgorIGpkazovdXNy L2Jpbi93c2ltcG9ydDovdXNyL2xpYi9qdm0vb3BlbmpkazExL2Jpbi93c2ltcG9ydAorIGpkazov dXNyL2Jpbi94amM6L3Vzci9saWIvanZtL29wZW5qZGsxMS9iaW4veGpjCisiCisKK3Bvc3RfZXh0 cmFjdCgpIHsKKwljaG1vZCAreCBjb25maWd1cmUKKwlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIg PSAibXVzbCIgXTsgdGhlbgorCQlybSAtciBzcmMvamRrLmhvdHNwb3QuYWdlbnQKKwlmaQorfQor Citwb3N0X3BhdGNoKCkgeworCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0 aGVuCisJCWZvciBmIGluICIke0ZJTEVTRElSfSIvbXVzbF9wYXRjaGVzLyoucGF0Y2g7IGRvCisJ CQllY2hvICJBcHBseWluZyAkZiIKKwkJCXBhdGNoIC1OcDEgLWkgIiRmIgorCQlkb25lCisJZmkK K30KKworZG9fY29uZmlndXJlKCkgeworCUNGTEFHUz0ke0NGTEFHUy8tRF9GT1JUSUZZX1NPVVJD RT0yL30KKwlDWFhGTEFHUz0ke0NYWEZMQUdTLy1EX0ZPUlRJRllfU09VUkNFPTIvfQorCWNvbmZp Z3VyZV9hcmdzPSR7Y29uZmlndXJlX2FyZ3MvLS13aXRoLWxpYnRvb2wtc3lzcm9vdD1cL3Vzclwv W2EtejAtOV0qLWxpbnV4LVthLXpdKi99CisJaWYgWyAiJFhCUFNfQ0NBQ0hFIiBdICYmIFsgLXog IiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCQljb25maWd1cmVfYXJncys9IiAtLWVuYWJsZS1jY2Fj aGUiCisJCUNDPSIvdXNyL2Jpbi9jYyIKKwkJQ1hYPSIvdXNyL2Jpbi9jKysiCisJZmkKKwkuL2Nv bmZpZ3VyZSAke2NvbmZpZ3VyZV9hcmdzfSAtLXdpdGgtZXh0cmEtY2ZsYWdzPSIkQ0ZMQUdTIiAt LXdpdGgtZXh0cmEtY3h4ZmxhZ3M9IiRDWFhGTEFHUyIgLS13aXRoLWV4dHJhLWxkZmxhZ3M9IiRM REZMQUdTIgorfQorCitwb3N0X2luc3RhbGwoKSB7CisJdm1rZGlyIC91c3IvbGliL2p2bQorCW12 ICR7REVTVERJUn0vdXNyL2xpYi9qdm0vb3Blbmpkay0ke19qYXZhX3Zlcn0uJHtfamF2YV9taW5f dmVyfS4ke19qYXZhX3NlY192ZXJ9LWludGVybmFsICR7REVTVERJUn0vdXNyL2xpYi9qdm0vb3Bl bmpkayR7X2phdmFfdmVyfQorCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvYmluCisJdm1rZGly IHVzci9saWIvanZtLyRfb3Blbmpka192ZXJzaW9uL2xpYi9zZWN1cml0eQorCW1ha2UtY2EgLWcg LWYgLS1kZXN0ZGlyICIke1BXRH0vY2EiIC1rICIke0RFU1RESVJ9L3Vzci9saWIvanZtLyRfb3Bl bmpka192ZXJzaW9uL2Jpbi9rZXl0b29sIgorCW12IC4vY2EvZXRjL3BraS90bHMvamF2YS9jYWNl cnRzICR7REVTVERJUn0vdXNyL2xpYi9qdm0vJF9vcGVuamRrX3ZlcnNpb24vbGliL3NlY3VyaXR5 LworICAgIGNobW9kIC1SIHVnbytydyAuL2NhCisgICAgcm0gLVJmIC4vY2EKKwl2bGljZW5zZSBB U1NFTUJMWV9FWENFUFRJT04KKwl2bGljZW5zZSBMSUNFTlNFCit9CisKK29wZW5qZGsxMS1kb2Nf cGFja2FnZSgpIHsKKwlub3N0cmlwPXllcworCW5vdmVyaWZ5cmRlcHM9eWVzCisJbm9zaGxpYnBy b3ZpZGVzPXllcworCXNob3J0X2Rlc2MrPSIgLS0gZG9jdW1lbnRhdGlvbiIKKwlwa2dfaW5zdGFs bCgpIHsKKwkJY2QgJHt3cmtzcmN9CisJCWlmIFsgIiRidWlsZF9vcHRpb25fZG9jcyIgXTsgdGhl bgorCQkJdm1rZGlyIHVzci9zaGFyZS9kb2Mvb3BlbmpkazExCisJCQljcCAtYSBidWlsZC9saW51 eC0qL2ltYWdlcy9kb2NzLyogJHtQS0dERVNURElSfS91c3Ivc2hhcmUvZG9jL29wZW5qZGsxMQor CQlmaQorCQl2bW92ZSB1c3IvbGliL2p2bS9vcGVuamRrMTEvbWFuL21hbjEvCisJfQorfQorCitv cGVuamRrMTEtc3JjX3BhY2thZ2UoKSB7CisJbm9zdHJpcD15ZXMKKwlub3ZlcmlmeXJkZXBzPXll cworCW5vc2hsaWJwcm92aWRlcz15ZXMKKwlzaG9ydF9kZXNjKz0iIC0tIHNvdXJjZXMiCisJcGtn X2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2p2bS9vcGVuamRrMTEvbGliL3NyYy56aXAi CisJfQorfQo= --===============3352013163898805101==--