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 a4a38200 for ; Tue, 3 Sep 2019 22:02:40 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============6743316374433745116==" MIME-Version: 1.0 Subject: Re: [PR PATCH] [Updated] WIP: 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, 04 Sep 2019 00:02:40 +0200 Message-ID: <20190903220240._WVZaccqeR4oQ3618mmx4a1CoFF3g3DYuJjH7SWIjUQ@z> GitHub notification mails are now in MIME to allow UTF8. --===============6743316374433745116== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkga251c2JhdW0gYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL2tu dXNiYXVtL3ZvaWQtcGFja2FnZXMgb3Blbmpkay0xMQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMTM3MjEKCldJUDogT3BlbmpkayAxMQpJJ2QgbXVjaCBy YXRoZXIgaGF2ZSBAcTY2J3Mgc29sdXRpb24gKCMzMjM3KSBidXQgdGhpcyBzZWVtcyB0byBidWls ZCBmb3IgYXQgbGVhc3QgeDg2XzY0LCBpNjg2LCBhYXJjaDY0Lg0KDQpUaGlzIGJvb3RzdHJhcHMg b3Blbmpkay0xMSBmcm9tIG9wZW5qZGstMTEtYmluLCB3aGljaCBpcyB0aGUgYmluYXJ5IHJlZmVy ZW5jZSBpbXBsZW1lbnRhdGlvbi4NCg0KVHJhdmlzIHdpbGwgZmFpbCBiZWNhdXNlIHRoZSBidWls ZHMgdGFrZSB0b28gbG9uZywgYnV0IEkndmUgdGVzdGVkIG9uIG15IGxvY2FsIG1hY2hpbmUgYW5k IHRoZXkgYnVpbGQuIAoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQt bGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzEzNzIxLnBhdGNoIGlzIGF0dGFjaGVk --===============6743316374433745116== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-openjdk-11-13721.patch" RnJvbSA5YmQ0Y2Q1Yzk5NTNjNDNkNGVhMGJlYTg5MWI1OTZmN2Y0ODc5ZWZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLeWxlIE51c2JhdW0gPGt5bGVudXNiYXVtQGdyYW51bGFyLmFn PgpEYXRlOiBGcmksIDE2IEF1ZyAyMDE5IDE3OjIwOjEzIC0wNTAwClN1YmplY3Q6IFtQQVRDSCAx LzJdIE5ldyBwYWNrYWdlOiBvcGVuamRrLTExLWJpbi0xMSsyOAoKLS0tCiBzcmNwa2dzL29wZW5q ZGstMTEtYmluL3RlbXBsYXRlIHwgNzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiAxIGZpbGUgY2hhbmdlZCwgNzMgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3Mvb3Blbmpkay0xMS1iaW4vdGVtcGxhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5q ZGstMTEtYmluL3RlbXBsYXRlIGIvc3JjcGtncy9vcGVuamRrLTExLWJpbi90ZW1wbGF0ZQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjRkZmFhZWYyMjkKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGstMTEtYmluL3RlbXBsYXRlCkBAIC0wLDAgKzEsNzMg QEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5qZGstMTEtYmluJworcGtnbmFtZT1vcGVuamRr LTExLWJpbgordmVyc2lvbj0xMSsyOAorcmV2aXNpb249MQorYXJjaHM9Ing4Nl82NCIKK3dya3Ny Yz1qZGstMTEKK3Nob3J0X2Rlc2M9Ik9mZmljaWFsIFJlZmVyZW5jZSBJbXBsZW1lbnRhdGlvbiBm b3IgSmF2YSBTRSAxMSIKK21haW50YWluZXI9Ikt5bGUgTnVzYmF1bSA8a251c2JhdW0rdm9pZEBz ZGYub3JnPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly9q ZGsuamF2YS5uZXQvamF2YS1zZS1yaS8xMSIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9kb3dubG9hZC5q YXZhLm5ldC9vcGVuamRrL2pkazExL3JpL29wZW5qZGstJHt2ZXJzaW9ufV9saW51eC14NjRfYmlu LnRhci5neiIKK2NoZWNrc3VtPTM3ODRjZmM0NjcwZjBkNGM1NDgyNjA0YzdjNTEzYmViMWE5MmIw MDVmNTY5ZGY5YmYxMDBlOGJlZjY2MTBmMmUKK25vcGllPXRydWUKKworYWx0ZXJuYXRpdmVzPSIK KyBqYXZhOi91c3IvYmluL2phdmE6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qYXZh CisgamF2YTovdXNyL2Jpbi9qYXZhd3M6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9q YXZhd3MKKyBqYXZhOi91c3IvYmluL2pjb250cm9sOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJp bi9iaW4vamNvbnRyb2wKKyBqYXZhOi91c3IvYmluL2pqczovdXNyL2xpYi9qdm0vb3Blbmpkay0x MS1iaW4vYmluL2pqcworIGphdmE6L3Vzci9iaW4va2V5dG9vbDovdXNyL2xpYi9qdm0vb3Blbmpk ay0xMS1iaW4vYmluL2tleXRvb2wKKyBqYXZhOi91c3IvYmluL29yYmQ6L3Vzci9saWIvanZtL29w ZW5qZGstMTEtYmluL2Jpbi9vcmJkCisgamF2YTovdXNyL2Jpbi9wYWNrMjAwOi91c3IvbGliL2p2 bS9vcGVuamRrLTExLWJpbi9iaW4vcGFjazIwMAorIGphdmE6L3Vzci9iaW4vcG9saWN5dG9vbDov dXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL3BvbGljeXRvb2wKKyBqYXZhOi91c3IvYmlu L3JtaWQ6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9ybWlkCisgamF2YTovdXNyL2Jp bi9ybWlyZWdpc3RyeTovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL3JtaXJlZ2lzdHJ5 CisgamF2YTovdXNyL2Jpbi9zZXJ2ZXJ0b29sOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9i aW4vc2VydmVydG9vbAorIGphdmE6L3Vzci9iaW4vdG5hbWVzZXJ2Oi91c3IvbGliL2p2bS9vcGVu amRrLTExLWJpbi9iaW4vdG5hbWVzZXJ2CisgamF2YTovdXNyL2Jpbi91bnBhY2syMDA6L3Vzci9s aWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi91bnBhY2syMDAKKworIGpkazovdXNyL2Jpbi9Db250 cm9sUGFuZWw6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9Db250cm9sUGFuZWwKKyBq ZGs6L3Vzci9iaW4vYXBwbGV0dmlld2VyOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9iaW4v YXBwbGV0dmlld2VyCisgamRrOi91c3IvYmluL2V4dGNoZWNrOi91c3IvbGliL2p2bS9vcGVuamRr LTExLWJpbi9iaW4vZXh0Y2hlY2sKKyBqZGs6L3Vzci9iaW4vaWRsajovdXNyL2xpYi9qdm0vb3Bl bmpkay0xMS1iaW4vYmluL2lkbGoKKyBqZGs6L3Vzci9iaW4vamFyOi91c3IvbGliL2p2bS9vcGVu amRrLTExLWJpbi9iaW4vamFyCisgamRrOi91c3IvYmluL2phcnNpZ25lcjovdXNyL2xpYi9qdm0v b3Blbmpkay0xMS1iaW4vYmluL2phcnNpZ25lcgorIGpkazovdXNyL2Jpbi9qYXZhLXJtaS5jZ2k6 L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qYXZhLXJtaS5jZ2kKKyBqZGs6L3Vzci9i aW4vamF2YWM6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qYXZhYworIGpkazovdXNy L2Jpbi9qYXZhZG9jOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9iaW4vamF2YWRvYworIGpk azovdXNyL2Jpbi9qYXZhZnhwYWNrYWdlcjovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmlu L2phdmFmeHBhY2thZ2VyCisgamRrOi91c3IvYmluL2phdmFoOi91c3IvbGliL2p2bS9vcGVuamRr LTExLWJpbi9iaW4vamF2YWgKKyBqZGs6L3Vzci9iaW4vamF2YXA6L3Vzci9saWIvanZtL29wZW5q ZGstMTEtYmluL2Jpbi9qYXZhcAorIGpkazovdXNyL2Jpbi9qYXZhcGFja2FnZXI6L3Vzci9saWIv anZtL29wZW5qZGstMTEtYmluL2Jpbi9qYXZhcGFja2FnZXIKKyBqZGs6L3Vzci9iaW4vamNtZDov dXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL2pjbWQKKyBqZGs6L3Vzci9iaW4vamNvbnNv bGU6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qY29uc29sZQorIGpkazovdXNyL2Jp bi9qZGI6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qZGIKKyBqZGs6L3Vzci9iaW4v amRlcHM6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qZGVwcworIGpkazovdXNyL2Jp bi9qaGF0Oi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9iaW4vamhhdAorIGpkazovdXNyL2Jp bi9qaW5mbzovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL2ppbmZvCisgamRrOi91c3Iv YmluL2ptYXA6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qbWFwCisgamRrOi91c3Iv YmluL2ptYzovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL2ptYworIGpkazovdXNyL2Jp bi9qbWMuaW5pOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9iaW4vam1jLmluaQorIGpkazov dXNyL2Jpbi9qcHM6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qcHMKKyBqZGs6L3Vz ci9iaW4vanJ1bnNjcmlwdDovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL2pydW5zY3Jp cHQKKyBqZGs6L3Vzci9iaW4vanNhZGVidWdkOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9i aW4vanNhZGVidWdkCisgamRrOi91c3IvYmluL2pzdGFjazovdXNyL2xpYi9qdm0vb3Blbmpkay0x MS1iaW4vYmluL2pzdGFjaworIGpkazovdXNyL2Jpbi9qc3RhdDovdXNyL2xpYi9qdm0vb3Blbmpk ay0xMS1iaW4vYmluL2pzdGF0CisgamRrOi91c3IvYmluL2pzdGF0ZDovdXNyL2xpYi9qdm0vb3Bl bmpkay0xMS1iaW4vYmluL2pzdGF0ZAorIGpkazovdXNyL2Jpbi9qdmlzdWFsdm06L3Vzci9saWIv anZtL29wZW5qZGstMTEtYmluL2Jpbi9qdmlzdWFsdm0KKyBqZGs6L3Vzci9iaW4vbmF0aXZlMmFz Y2lpOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9iaW4vbmF0aXZlMmFzY2lpCisgamRrOi91 c3IvYmluL3JtaWM6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9ybWljCisgamRrOi91 c3IvYmluL3NjaGVtYWdlbjovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL3NjaGVtYWdl bgorIGpkazovdXNyL2Jpbi9zZXJpYWx2ZXI6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jp bi9zZXJpYWx2ZXIKKyBqZGs6L3Vzci9iaW4vd3NnZW46L3Vzci9saWIvanZtL29wZW5qZGstMTEt YmluL2Jpbi93c2dlbgorIGpkazovdXNyL2Jpbi93c2ltcG9ydDovdXNyL2xpYi9qdm0vb3Blbmpk ay0xMS1iaW4vYmluL3dzaW1wb3J0CisgamRrOi91c3IvYmluL3hqYzovdXNyL2xpYi9qdm0vb3Bl bmpkay0xMS1iaW4vYmluL3hqYworCisgamF2YS1wbHVnaW46L3Vzci9saWIvbW96aWxsYS9wbHVn aW5zL2xpYm5wanAyLnNvOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9qcmUvbGliLyRfYXJj aC9saWJucGpwMi5zbworIgorCitkb19pbnN0YWxsKCkgeworCXZta2RpciAvdXNyL2xpYi9qdm0v b3Blbmpkay0xMS1iaW4KKwljcCAtUiAuLyogJHtERVNURElSfS91c3IvbGliL2p2bS9vcGVuamRr LTExLWJpbgorfQoKRnJvbSA4ZmQ0YzllNDcxYzBmYTdlMjUxMWZmN2M0MDgwZDE2ZjY3MDgwMjQ5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLeWxlIE51c2JhdW0gPGt5bGVudXNiYXVt QGdyYW51bGFyLmFnPgpEYXRlOiBGcmksIDE2IEF1ZyAyMDE5IDE3OjIyOjA5IC0wNTAwClN1Ympl Y3Q6IFtQQVRDSCAyLzJdIE5ldyBwYWNrYWdlOiBvcGVuamRrLTExLTExKzI4CgotLS0KIGNvbW1v bi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmNwa2dz L29wZW5qZGstMTEtZG9jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjcGtncy9v cGVuamRrLTExLXNyYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyY3BrZ3Mvb3Bl bmpkay0xMS9maWxlcy9ta2NhY2VydHMgICAgICAgICAgICB8IDIxNCArKysrKysrCiAuLi4vZmls ZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2ggICAgICAgICAgfCAgMTEgKwogLi4uL29wZW5q ZGstMTEvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCAgIHwgIDMwICsKIC4uLi9vcGVuamRr LTExL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCB8IDUzNyArKysrKysrKysrKysrKysr KysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvcHBjNjRsZS5wYXRjaCAgICAgICAgICB8IDIyMSAr KysrKysrCiAuLi4vb3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoICAgfCAx MzAgKysrKysKIHNyY3BrZ3Mvb3Blbmpkay0xMS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICB8 IDE4NiArKysrKysKIDEwIGZpbGVzIGNoYW5nZWQsIDEzMzcgaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTIwMDAwIHNyY3BrZ3Mvb3Blbmpkay0xMS1kb2MKIGNyZWF0ZSBtb2RlIDEyMDAwMCBz cmNwa2dzL29wZW5qZGstMTEtc3JjCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRr LTExL2ZpbGVzL21rY2FjZXJ0cwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Blbmpkay0x MS9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3Mvb3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNo ZXMvcHBjNjRsZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Blbmpkay0xMS9m aWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9v cGVuamRrLTExL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9z aGxpYnMKaW5kZXggMTE0NDJmMWI5MzYuLmU4NmM5MmM3NGQ4IDEwMDY0NAotLS0gYS9jb21tb24v c2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTE3NzUsNiArMTc3NSwxMiBAQCBsaWJhd3Rf eGF3dC5zbyBvcGVuamRrLWpyZS04dTIwXzEKIGxpYmphdmEuc28gb3Blbmpkay1qcmUtOHUyMF8x CiBsaWJqbGkuc28gb3Blbmpkay1qcmUtOHUyMF8xCiBsaWJqdm0uc28gb3Blbmpkay1qcmUtOHUy MF8xCitsaWJqYXd0LnNvIG9wZW5qZGstMTEtMTEuMC40KzExXzEKK2xpYmF3dC5zbyBvcGVuamRr LTExLTExLjAuNCsxMV8xCitsaWJhd3RfeGF3dC5zbyBvcGVuamRrLTExLTExLjAuNCsxMV8xCits aWJqYXZhLnNvIG9wZW5qZGstMTEtMTEuMC40KzExXzEKK2xpYmpsaS5zbyBvcGVuamRrLTExLTEx LjAuNCsxMV8xCitsaWJqdm0uc28gb3Blbmpkay0xMS0xMS4wLjQrMTFfMQogbGlidWNsLnNvLjUg bGlidWNsLTAuOC4xXzEKIGxpYmhhbmRsZS5zby4xIHhmc3Byb2dzLTMuMi4xXzEKIGxpYm5mbmV0 bGluay5zby4wIGxpYm5mbmV0bGluay0xLjAuMV8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5q ZGstMTEtZG9jIGIvc3JjcGtncy9vcGVuamRrLTExLWRvYwpuZXcgZmlsZSBtb2RlIDEyMDAwMApp bmRleCAwMDAwMDAwMDAwMC4uN2ZhYmE3MWI5YTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L29wZW5qZGstMTEtZG9jCkBAIC0wLDAgKzEgQEAKK29wZW5qZGstMTEKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGstMTEtc3JjIGIvc3JjcGtn cy9vcGVuamRrLTExLXNyYwpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMC4u N2ZhYmE3MWI5YTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGstMTEtc3JjCkBA IC0wLDAgKzEgQEAKK29wZW5qZGstMTEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg LS1naXQgYS9zcmNwa2dzL29wZW5qZGstMTEvZmlsZXMvbWtjYWNlcnRzIGIvc3JjcGtncy9vcGVu amRrLTExL2ZpbGVzL21rY2FjZXJ0cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uMmRiNWE3N2JiMDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGstMTEv ZmlsZXMvbWtjYWNlcnRzCkBAIC0wLDAgKzEsMjE0IEBACisjIS9iaW4vc2gKKyMgU2NyaXB0IHBy b3ZpZGVkIGJ5IGh0dHA6Ly93d3cubGludXhmcm9tc2NyYXRjaC5vcmcvYmxmcy92aWV3L3N2bi9n ZW5lcmFsL29wZW5qZGsuaHRtbCNvamRrLWNlcnRzCisjIEVCIDIwMTQxMjE3OiByZW1vdmVkIGJh c2hpc21zCisjIFNpbXBsZSBzY3JpcHQgdG8gZXh0cmFjdCB4NTA5IGNlcnRpZmljYXRlcyBhbmQg Y3JlYXRlIGEgSlJFIGNhY2VydHMgZmlsZS4KKworZ2V0X2FyZ3MoKQorICAgIHsKKyAgICAgICAg aWYgdGVzdCAteiAiJHsxfSIgOyB0aGVuCisgICAgICAgICAgICBzaG93aGVscAorICAgICAgICAg ICAgZXhpdCAxCisgICAgICAgIGZpCisKKyAgICAgICAgd2hpbGUgdGVzdCAtbiAiJHsxfSIgOyBk bworICAgICAgICAgICAgY2FzZSAiJHsxfSIgaW4KKyAgICAgICAgICAgICAgICAtZiB8IC0tY2Fm aWxlKQorICAgICAgICAgICAgICAgICAgICBjaGVja19hcmcgJDEgJDIKKyAgICAgICAgICAgICAg ICAgICAgQ0FGSUxFPSIkezJ9IgorICAgICAgICAgICAgICAgICAgICBzaGlmdCAyCisgICAgICAg ICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgLWQgfCAtLWNhZGlyKQorICAgICAgICAg ICAgICAgICAgICBjaGVja19hcmcgJDEgJDIKKyAgICAgICAgICAgICAgICAgICAgQ0FESVI9IiR7 Mn0iCisgICAgICAgICAgICAgICAgICAgIHNoaWZ0IDIKKyAgICAgICAgICAgICAgICAgICAgOzsK KyAgICAgICAgICAgICAgICAtbyB8IC0tb3V0ZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgY2hl Y2tfYXJnICQxICQyCisgICAgICAgICAgICAgICAgICAgIE9VVEZJTEU9IiR7Mn0iCisgICAgICAg ICAgICAgICAgICAgIHNoaWZ0IDIKKyAgICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAg ICAgICAtayB8IC0ta2V5dG9vbCkKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tfYXJnICQxICQy CisgICAgICAgICAgICAgICAgICAgIEtFWVRPT0w9IiR7Mn0iCisgICAgICAgICAgICAgICAgICAg IHNoaWZ0IDIKKyAgICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICAgICAtcyB8IC0t b3BlbnNzbCkKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tfYXJnICQxICQyCisgICAgICAgICAg ICAgICAgICAgIE9QRU5TU0w9IiR7Mn0iCisgICAgICAgICAgICAgICAgICAgIHNoaWZ0IDIKKyAg ICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICAgICAtaCB8IC0taGVscCkKKyAgICAg ICAgICAgICAgICAgICAgc2hvd2hlbHAKKyAgICAgICAgICAgICAgICAgICAgZXhpdCAwCisgICAg ICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgKikKKyAgICAgICAgICAgICAgICAg ICAgc2hvd2hlbHAKKyAgICAgICAgICAgICAgICAgICAgZXhpdCAxCisgICAgICAgICAgICAgICAg ICAgIDs7CisgICAgICAgICAgICBlc2FjCisgICAgICAgIGRvbmUKKyAgICB9CisKK2NoZWNrX2Fy ZygpCisgICAgeworICAgICAgICBlY2hvICIkezJ9IiB8IGdyZXAgLXYgIl4tIiA+IC9kZXYvbnVs bAorICAgICAgICBpZiBbIC16ICIkPyIgLW8gISAtbiAiJDIiIF07IHRoZW4KKyAgICAgICAgICAg IGVjaG8gIkVycm9yOiAgJDEgcmVxdWlyZXMgYSB2YWxpZCBhcmd1bWVudC4iCisgICAgICAgICAg ICBleGl0IDEKKyAgICAgICAgZmkKKyAgICB9CisKKyMgVGhlIGRhdGUgYmluYXJ5IGlzIG5vdCBy ZWxpYWJsZSBvbiAzMmJpdCBzeXN0ZW1zIGZvciBkYXRlcyBhZnRlciAyMDM4CitteWRhdGUoKQor ICAgIHsKKyAgICAgICAgbG9jYWwgeT0kKCBlY2hvICQxIHwgY3V0IC1kIiAiIC1mNCApCisgICAg ICAgIGxvY2FsIE09JCggZWNobyAkMSB8IGN1dCAtZCIgIiAtZjEgKQorICAgICAgICBsb2NhbCBk PSQoIGVjaG8gJDEgfCBjdXQgLWQiICIgLWYyICkKKyAgICAgICAgbG9jYWwgbQorCisgICAgICAg IGlmIFsgJHtkfSAtbHQgMTAgXTsgdGhlbiBkPSIwJHtkfSI7IGZpCisKKyAgICAgICAgY2FzZSAk TSBpbgorICAgICAgICAgICAgSmFuKSBtPSIwMSI7OworICAgICAgICAgICAgRmViKSBtPSIwMiI7 OworICAgICAgICAgICAgTWFyKSBtPSIwMyI7OworICAgICAgICAgICAgQXByKSBtPSIwNCI7Owor ICAgICAgICAgICAgTWF5KSBtPSIwNSI7OworICAgICAgICAgICAgSnVuKSBtPSIwNiI7OworICAg ICAgICAgICAgSnVsKSBtPSIwNyI7OworICAgICAgICAgICAgQXVnKSBtPSIwOCI7OworICAgICAg ICAgICAgU2VwKSBtPSIwOSI7OworICAgICAgICAgICAgT2N0KSBtPSIxMCI7OworICAgICAgICAg ICAgTm92KSBtPSIxMSI7OworICAgICAgICAgICAgRGVjKSBtPSIxMiI7OworICAgICAgICBlc2Fj CisKKyAgICAgICAgY2VydGRhdGU9IiR7eX0ke219JHtkfSIKKyAgICB9CisKK3Nob3doZWxwKCkK KyAgICB7CisgICAgICAgIGVjaG8gImBiYXNlbmFtZSAkezB9YCBjcmVhdGVzIGEgdmFsaWQgY2Fj ZXJ0cyBmaWxlIGZvciB1c2Ugd2l0aCBJY2VkVGVhLiIKKyAgICAgICAgZWNobyAiIgorICAgICAg ICBlY2hvICIgICAgICAgIC1mICAtLWNhZmlsZSAgICAgVGhlIHBhdGggdG8gYSBmaWxlIGNvbnRh aW5pbmcgUEVNIgorICAgICAgICBlY2hvICIgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0 ZWQgQ0EgY2VydGlmaWNhdGVzLiBNYXkgbm90IGJlIgorICAgICAgICBlY2hvICIgICAgICAgICAg ICAgICAgICAgICAgICAgdXNlZCB3aXRoIC1kLy0tY2FkaXIuIgorICAgICAgICBlY2hvICIiCisg ICAgICAgIGVjaG8gIiAgICAgICAgLWQgIC0tY2FkaXIgICAgICBUaGUgcGF0aCB0byBhIGRpcmVj dG9yeSBvZiBQRU0gZm9ybWF0dGVkIgorICAgICAgICBlY2hvICIgICAgICAgICAgICAgICAgICAg ICAgICAgQ0EgY2VydGlmaWNhdGVzLiBNYXkgbm90IGJlIHVzZWQgd2l0aCIKKyAgICAgICAgZWNo byAiICAgICAgICAgICAgICAgICAgICAgICAgIC1mLy0tY2FmaWxlLiIKKyAgICAgICAgZWNobyAi IgorICAgICAgICBlY2hvICIgICAgICAgIC1vICAtLW91dGZpbGUgICAgVGhlIHBhdGggdG8gdGhl IG91dHB1dCBmaWxlLiIKKyAgICAgICAgZWNobyAiIgorICAgICAgICBlY2hvICIgICAgICAgIC1r ICAtLWtleXRvb2wgICAgVGhlIHBhdGggdG8gdGhlIGphdmEga2V5dG9vbCB1dGlsaXR5LiIKKyAg ICAgICAgZWNobyAiIgorICAgICAgICBlY2hvICIgICAgICAgIC1zICAtLW9wZW5zc2wgICAgVGhl IHBhdGggdG8gdGhlIG9wZW5zc2wgdXRpbGl0eS4iCisgICAgICAgIGVjaG8gIiIKKyAgICAgICAg ZWNobyAiICAgICAgICAtaCAgLS1oZWxwICAgICAgIFNob3cgdGhpcyBoZWxwIG1lc3NhZ2UgYW5k IGV4aXQuIgorICAgICAgICBlY2hvICIiCisgICAgICAgIGVjaG8gIiIKKyAgICB9CisKKyMgSW5p dGlhbGl6ZSBlbXB0eSB2YXJpYWJsZXMgc28gdGhhdCB0aGUgc2hlbGwgZG9lcyBub3QgcG9sbHV0 ZSB0aGUgc2NyaXB0CitDQUZJTEU9IiIKK0NBRElSPSIiCitPVVRGSUxFPSIiCitPUEVOU1NMPSIi CitLRVlUT09MPSIiCitjZXJ0ZGF0ZT0iIgorZGF0ZT0iIgordG9kYXk9JCggZGF0ZSArJVklbSVk ICkKKworIyBQcm9jZXNzIGNvbW1hbmQgbGluZSBhcmd1bWVudHMKK2dldF9hcmdzICR7QH0KKwor IyBIYW5kbGUgY29tbW9uIGVycm9ycworaWYgdGVzdCAiJHtDQUZJTEV9eCIgPSAieCIgLWEgIiR7 Q0FESVJ9eCIgPSAieCIgOyB0aGVuCisgICAgZWNobyAiRVJST1IhICBZb3UgbXVzdCBwcm92aWRl IGFuIHg1MDkgY2VydGlmaWNhdGUgc3RvcmUhIgorICAgIGVjaG8gIlwnJChiYXNlbmFtZSAkezB9 KSAtLWhlbHBcJyBmb3IgbW9yZSBpbmZvLiIKKyAgICBlY2hvICIiCisgICAgZXhpdCAxCitmaQor CitpZiB0ZXN0ICIke0NBRklMRX14IiAhPSAieCIgLWEgIiR7Q0FESVJ9eCIgIT0gIngiIDsgdGhl bgorICAgIGVjaG8gIkVSUk9SISAgWW91IGNhbm5vdCBwcm92aWRlIHR3byB4NTA5IGNlcnRpZmlj YXRlIHN0b3JlcyEiCisgICAgZWNobyAiXCckKGJhc2VuYW1lICR7MH0pIC0taGVscFwnIGZvciBt b3JlIGluZm8uIgorICAgIGVjaG8gIiIKKyAgICBleGl0IDEKK2ZpCisKK2lmIHRlc3QgIiR7S0VZ VE9PTH14IiA9ICJ4IiA7IHRoZW4KKyAgICBlY2hvICJFUlJPUiEgIFlvdSBtdXN0IHByb3ZpZGUg YSB2YWxpZCBrZXl0b29sIHByb2dyYW0hIgorICAgIGVjaG8gIlwnJChiYXNlbmFtZSAkezB9KSAt LWhlbHBcJyBmb3IgbW9yZSBpbmZvLiIKKyAgICBlY2hvICIiCisgICAgZXhpdCAxCitmaQorCitp ZiB0ZXN0ICIke09QRU5TU0x9eCIgPSAieCIgOyB0aGVuCisgICAgZWNobyAiRVJST1IhICBZb3Ug bXVzdCBwcm92aWRlIGEgdmFsaWQgcGF0aCB0byBvcGVuc3NsISIKKyAgICBlY2hvICJcJyQoYmFz ZW5hbWUgJHswfSkgLS1oZWxwXCcgZm9yIG1vcmUgaW5mby4iCisgICAgZWNobyAiIgorICAgIGV4 aXQgMQorZmkKKworaWYgdGVzdCAiJHtPVVRGSUxFfXgiID0gIngiIDsgdGhlbgorICAgIGVjaG8g IkVSUk9SISAgWW91IG11c3QgcHJvdmlkZSBhIHZhbGlkIG91dHB1dCBmaWxlISIKKyAgICBlY2hv ICJcJyQoYmFzZW5hbWUgJHswfSkgLS1oZWxwXCcgZm9yIG1vcmUgaW5mby4iCisgICAgZWNobyAi IgorICAgIGV4aXQgMQorZmkKKworIyBHZXQgb24gd2l0aCB0aGUgd29yaworCisjIElmIHVzaW5n IGEgQ0FGSUxFLCBzcGxpdCBpdCBpbnRvIGluZGl2aWR1YWwgZmlsZXMgaW4gYSB0ZW1wIGRpcmVj dG9yeQoraWYgdGVzdCAiJHtDQUZJTEV9eCIgIT0gIngiIDsgdGhlbgorICAgIFRFTVBESVI9YG1r dGVtcCAtZGAKKyAgICBDQURJUj0iJHtURU1QRElSfSIKKworICAgICMgR2V0IGEgbGlzdCBvZiBz dGFyaW5nIGxpbmVzIGZvciBlYWNoIGNlcnQKKyAgICBDRVJUTElTVD1gZ3JlcCAtbiAiXi0tLS0t QkVHSU4iICIke0NBRklMRX0iIHwgY3V0IC1kICI6IiAtZiAxYAorCisgICAgIyBHZXQgYSBsaXN0 IG9mIGVuZGluZyBsaW5lcyBmb3IgZWFjaCBjZXJ0CisgICAgRU5EQ0VSVExJU1Q9YGdyZXAgLW4g Il4tLS0tLUVORCIgIiR7Q0FGSUxFfSIgfCBjdXQgLWQgIjoiIC1mIDFgCisKKyAgICAjIFN0YXJ0 IGEgbG9vcAorICAgIGZvciBjZXJ0YmVnaW4gaW4gJHtDRVJUTElTVH0gOyBkbworICAgICAgICBm b3IgY2VydGVuZCBpbiAke0VORENFUlRMSVNUfSA7IGRvCisgICAgICAgICAgICBpZiB0ZXN0ICIk e2NlcnRlbmR9IiAtZ3QgIiR7Y2VydGJlZ2lufSI7IHRoZW4KKyAgICAgICAgICAgICAgICBicmVh aworICAgICAgICAgICAgZmkKKyAgICAgICAgZG9uZQorICAgICAgICBzZWQgLW4gIiR7Y2VydGJl Z2lufSwke2NlcnRlbmR9cCIgIiR7Q0FGSUxFfSIgPiAiJHtDQURJUn0vJHtjZXJ0YmVnaW59LnBl bSIKKyAgICAgICAga2V5aGFzaD1gJHtPUEVOU1NMfSB4NTA5IC1ub291dCAtaW4gIiR7Q0FESVJ9 LyR7Y2VydGJlZ2lufS5wZW0iIC1oYXNoYAorICAgICAgICBlY2hvICJHZW5lcmF0ZWQgUEVNIGZp bGUgd2l0aCBoYXNoOiAgJHtrZXloYXNofS4iCisgICAgZG9uZQorZmkKKworIyBXcml0ZSB0aGUg b3V0cHV0IGZpbGUKK2ZvciBjZXJ0IGluIGBmaW5kICIke0NBRElSfSIgLXR5cGUgZiAtbmFtZSAi Ki5wZW0iIC1vIC1uYW1lICIqLmNydCJgCitkbworCisgICAgIyBNYWtlIHN1cmUgdGhlIGNlcnRp ZmljYXRlIGRhdGUgaXMgdmFsaWQuLi4KKyAgICBkYXRlPSQoICR7T1BFTlNTTH0geDUwOSAtZW5k ZGF0ZSAtaW4gIiR7Y2VydH0iIC1ub291dCB8IHNlZCAncy9ebm90QWZ0ZXI9Ly8nICkKKyAgICBt eWRhdGUgIiR7ZGF0ZX0iCisgICAgaWYgdGVzdCAiJHtjZXJ0ZGF0ZX0iIC1sdCAiJHt0b2RheX0i IDsgdGhlbgorICAgICAgICBlY2hvICIke2NlcnR9IGV4cGlyZWQgb24gJHtjZXJ0ZGF0ZX0hIFNr aXBwaW5nLi4uIgorICAgICAgICB1bnNldCBkYXRlIGNlcnRkYXRlCisgICAgICAgIGNvbnRpbnVl CisgICAgZmkKKyAgICB1bnNldCBkYXRlIGNlcnRkYXRlCisgICAgbHMgIiR7Y2VydH0iCisgICAg dGVtcGZpbGU9YG1rdGVtcGAKKyAgICBzZWQgLW4gIi9eLS0tLS1CRUdJTi8sL14tLS0tLUVORC9w IiAiJHtjZXJ0fSIgPiAiJHt0ZW1wZmlsZX0iCisgICAgZWNobyB5ZXMgfCBlbnYgTENfQUxMPUMg IiR7S0VZVE9PTH0iIC1pbXBvcnQgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1hbGlhcyBgYmFzZW5hbWUgIiR7Y2VydH0iYCBc CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1rZXlzdG9yZSAiJHtP VVRGSUxFfSIgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC1zdG9yZXBhc3MgJ2NoYW5nZWl0JyAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC1maWxlICIke3RlbXBmaWxlfSIKKyAgICBybSAiJHt0ZW1wZmlsZX0i Citkb25lCisKK2lmIHRlc3QgIiR7VEVNUERJUn14IiAhPSAieCIgOyB0aGVuCisgICAgcm0gLXJm ICIke1RFTVBESVJ9IgorZmkKK2V4aXQgMApkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrLTEx L2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoIGIvc3JjcGtncy9vcGVuamRrLTExL2Zp bGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5iOTVmNDU1ZTkyNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3Bl bmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaApAQCAtMCwwICsxLDExIEBA CitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5h bHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFh NjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYWFyY2g2 NC9vc19saW51eF9hYXJjaDY0LmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhf YWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorQEAgLTc3LDcgKzc3LDYgQEAKKyAjIGluY2x1 ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4K Ky0jIGluY2x1ZGUgPGZwdV9jb250cm9sLmg+CisKKyAjaWZkZWYgQlVJTFRJTl9TSU0KKyAjZGVm aW5lIFJFR19TUCBSRUdfUlNQCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGstMTEvZmlsZXMv bXVzbF9wYXRjaGVzL2FybS5wYXRjaCBiL3NyY3BrZ3Mvb3Blbmpkay0xMS9maWxlcy9tdXNsX3Bh dGNoZXMvYXJtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4x MmQwMDIyYzE0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3Blbmpkay0xMS9maWxlcy9t dXNsX3BhdGNoZXMvYXJtLnBhdGNoCkBAIC0wLDAgKzEsMzAgQEAKK1BhdGNoZXMgZm9yIG11c2wg dGFrZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9hcG9y dHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2MjBlN2UyNGM2MjgwCist LS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGludXhfYXJtLmNwcAorKysr IG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYXJtL29zX2xpbnV4X2FybS5jcHAKK0BAIC03 MSw3ICs3MSw2IEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAj IGluY2x1ZGUgPHVjb250ZXh0Lmg+CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorICMgaW5j bHVkZSA8YXNtL3B0cmFjZS5oPgorCisgI2RlZmluZSBTUEVMTF9SRUdfU1AgICJzcCIKK0BAIC0x MDQsNiArMTAzLDE4IEBACisgI2RlZmluZSBBUk1fUkVHU19JTl9DT05URVhUICAzMQorCisgI2Vs c2UKKysKKysvLyBTdHVwaWQgaGFjayBhcyB0aGUgb3JpZ2luIGlmIGJlbG93IGRvZXNudCBjb21w aWxlIHdpdGggZ2NjIDguMi4wOgorKy8vCisrLy8gb3NfbGludXhfYXJtLmNwcDoxMTQ6NTogZXJy b3I6IG1pc3NpbmcgYmluYXJ5IG9wZXJhdG9yIGJlZm9yZSB0b2tlbiAiKCIKKysvLyAgI2lmIE5H UkVHID09IDE2CisrLy8gICAgICAgXn5+fn4KKysvLworKy8vIFRoZSBOR1JFRyBpcyAxOCwgc28g Zm9yY2UgaXQgdG8gdGhhdCB2YWx1ZS4KKysjaWZkZWYgTkdSRUcKKysjICB1bmRlZiBOR1JFRwor KyNlbmRpZgorKyNkZWZpbmUgTkdSRUcgMTgKKworICNpZiBOR1JFRyA9PSAxNgorIC8vIFRoZXNl IGRlZmluaXRpb25zIGFyZSBiYXNlZCBvbiB0aGUgb2JzZXJ2YXRpb24gdGhhdCB1bnRpbApkaWZm IC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRj aCBiL3NyY3BrZ3Mvb3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjgxZWQwZjUzYjFkCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5w YXRjaApAQCAtMCwwICsxLDUzNyBAQAorUGF0Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFscGlu ZSBsaW51eDogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lkPThh MWFlMTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYyMGU3ZTI0YzYyODAKKy0tLSBvbGQvbWFrZS9SZWxl YXNlRmlsZS5nbWsKKysrKyBuZXcvbWFrZS9SZWxlYXNlRmlsZS5nbWsKK0BAIC01Myw2ICs1Myw3 IEBACisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJKQVZBX1ZFUlNJT05fREFURSIsICIkKFZF UlNJT05fREFURSkiKQorICAgJChjYWxsIGluZm8tZmlsZS1pdGVtLCAiT1NfTkFNRSIsICIkKFJF TEVBU0VfRklMRV9PU19OQU1FKSIpCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJPU19BUkNI IiwgIiQoUkVMRUFTRV9GSUxFX09TX0FSQ0gpIikKKysgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwg IkxJQkMiLCAibXVzbCIpCisgZW5kZWYKKworICMgUGFyYW0gMSAtIFRoZSBmaWxlIGNvbnRhaW5p bmcgdGhlIE1PRFVMRVMgbGlzdAorLS0tIG9sZC9tYWtlL2F1dG9jb25mL2J1aWxkLWF1eC9jb25m aWcuZ3Vlc3MKKysrKyBuZXcvbWFrZS9hdXRvY29uZi9idWlsZC1hdXgvY29uZmlnLmd1ZXNzCitA QCAtMzAsNiArMzAsMTcgQEAKKyBESVI9YGRpcm5hbWUgJDBgCisgT1VUPWAuICRESVIvYXV0b2Nv bmYtY29uZmlnLmd1ZXNzYAorCisrIyBjb25maWcuZ3Vlc3MgZG9lc24ndCBpZGVudGlmeSBzeXN0 ZW1zIHJ1bm5pbmcgdGhlIG11c2wgQyBsaWJyYXJ5LCBhbmQgd2lsbAorKyMgaW5zdGVhZCByZXR1 cm4gYSBzdHJpbmcgd2l0aCBhIC1nbnUgc3VmZml4LiBUaGlzIGJsb2NrIGRldGVjdHMgbXVzbCBh bmQKKysjIG1vZGlmaWVzIHRoZSBzdHJpbmcgdG8gaGF2ZSBhIC1tdXNsIHN1ZmZpeCBpbnN0ZWFk LiAKKytlY2hvICRPVVQgfCBncmVwIC0tIC1saW51eC0gPiAvZGV2L251bGwgMj4gL2Rldi9udWxs CisraWYgdGVzdCAkPyA9IDA7IHRoZW4KKysgIGxkZF92ZXJzaW9uPWBsZGQgLS12ZXJzaW9uIDI+ JjEgfCBoZWFkIC0xIHwgY3V0IC1mMSAtZCcgJ2AKKysgIGlmIFsgeCIke2xkZF92ZXJzaW9ufSIg PSB4Im11c2wiIF07IHRoZW4KKysgICAgT1VUPWBlY2hvICRPVVQgfCBzZWQgJ3MvLWdudS8tbXVz bC8nYAorKyAgZmkKKytmaQorKworICMgVGVzdCBhbmQgZml4IHNvbGFyaXMgb24geDg2XzY0Cisg ZWNobyAkT1VUIHwgZ3JlcCBpMzg2LXBjLXNvbGFyaXMgPiAvZGV2L251bGwgMj4gL2Rldi9udWxs CisgaWYgdGVzdCAkPyA9IDA7IHRoZW4KKy0tLSBvbGQvbWFrZS9ob3RzcG90L2xpYi9Db21waWxl SnZtLmdtaworKysrIG5ldy9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCitAQCAtNzcs NiArNzcsNyBAQAorICAgICAtREhPVFNQT1RfQlVJTERfVVNFUj0nIiQoVVNFUk5BTUUpIicgXAor ICAgICAtREhPVFNQT1RfVk1fRElTVFJPPSciJChIT1RTUE9UX1ZNX0RJU1RSTykiJyBcCisgICAg IC1EQ1BVPSciJChPUEVOSkRLX1RBUkdFVF9DUFVfVk1fVkVSU0lPTikiJyBcCisrICAgIC1ETElC Qz0nIm11c2wiJyBcCisgICAgICMKKworICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCistLS0gb2xk L21ha2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rCisrKysgbmV3L21ha2UvbGliL0NvcmVMaWJyYXJp ZXMuZ21rCitAQCAtMjQxLDYgKzI0MSw3IEBACisgZW5kaWYKKworIExJQkpMSV9DRkxBR1MgKz0g JChMSUJaX0NGTEFHUykKKytMSUJKTElfQ0ZMQUdTICs9IC1ETElCQz1cIm11c2xcIgorCisgaWZu ZXEgKCQoVVNFX0VYVEVSTkFMX0xJQlopLCB0cnVlKQorICAgTElCSkxJX0VYVFJBX0ZJTEVTICs9 IFwKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCisrKysgbmV3L3Ny Yy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAorQEAgLTk5LDcgKzk5LDYgQEAKKyAjIGlu Y2x1ZGUgPHN0cmluZy5oPgorICMgaW5jbHVkZSA8c3lzY2FsbC5oPgorICMgaW5jbHVkZSA8c3lz L3N5c2luZm8uaD4KKy0jIGluY2x1ZGUgPGdudS9saWJjLXZlcnNpb24uaD4KKyAjIGluY2x1ZGUg PHN5cy9pcGMuaD4KKyAjIGluY2x1ZGUgPHN5cy9zaG0uaD4KKyAjIGluY2x1ZGUgPGxpbmsuaD4K K0BAIC01MTEsNiArNTEwLDExIEBACisgLy8gZGV0ZWN0aW5nIHB0aHJlYWQgbGlicmFyeQorCisg dm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgpIHsKKysjaWYgIWRlZmluZWQoX19HTElC Q19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKQorKyAgLy8gSGFyZCBjb2RlIEFscGluZSBMaW51 eCBzdXBwb3J0ZWQgbXVzbCBjb21wYXRpYmxlIHNldHRpbmdzCisrICBvczo6TGludXg6OnNldF9n bGliY192ZXJzaW9uKCJnbGliYyAyLjkiKTsKKysgIG9zOjpMaW51eDo6c2V0X2xpYnB0aHJlYWRf dmVyc2lvbigiTlBUTCIpOworKyNlbHNlCisgICAvLyBTYXZlIGdsaWJjIGFuZCBwdGhyZWFkIHZl cnNpb24gc3RyaW5ncy4KKyAjaWYgIWRlZmluZWQoX0NTX0dOVV9MSUJDX1ZFUlNJT04pIHx8IFwK KyAgICAgIWRlZmluZWQoX0NTX0dOVV9MSUJQVEhSRUFEX1ZFUlNJT04pCitAQCAtNTI4LDYgKzUz Miw3IEBACisgICBzdHIgPSAoY2hhciAqKW1hbGxvYyhuLCBtdEludGVybmFsKTsKKyAgIGNvbmZz dHIoX0NTX0dOVV9MSUJQVEhSRUFEX1ZFUlNJT04sIHN0ciwgbik7CisgICBvczo6TGludXg6OnNl dF9saWJwdGhyZWFkX3ZlcnNpb24oc3RyKTsKKysjZW5kaWYKKyB9CisKKyAvLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLworQEAgLTI5MTYsMjAgKzI5MjEsMzYgQEAKKyBleHRlcm4gIkMiIEpOSUVYUE9SVCB2 b2lkIG51bWFfd2FybihpbnQgbnVtYmVyLCBjaGFyICp3aGVyZSwgLi4uKSB7IH0KKyBleHRlcm4g IkMiIEpOSUVYUE9SVCB2b2lkIG51bWFfZXJyb3IoY2hhciAqd2hlcmUpIHsgfQorCisrc3RhdGlj IHZvaWQqIGRsdnN5bV9pZl9hdmFpbGFibGUodm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1l LCBjb25zdCBjaGFyKiB2ZXJzaW9uKSB7CisrICB0eXBlZGVmIHZvaWQqICgqZGx2c3ltX2Z1bmNf dHlwZSkodm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9u KTsKKysgIHN0YXRpYyBkbHZzeW1fZnVuY190eXBlIGRsdnN5bV9mdW5jOworKyAgc3RhdGljIGJv b2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKysKKysgIGlmICghaW5pdGlhbGl6ZWQpIHsKKysgICAg ZGx2c3ltX2Z1bmMgPSAoZGx2c3ltX2Z1bmNfdHlwZSlkbHN5bShSVExEX05FWFQsICJkbHZzeW0i KTsKKysgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOworKyAgfQorKworKyAgaWYgKGRsdnN5bV9mdW5j ICE9IE5VTEwpIHsKKysgICAgdm9pZCAqZiA9IGRsdnN5bV9mdW5jKGhhbmRsZSwgbmFtZSwgdmVy c2lvbik7CisrICAgIGlmIChmICE9IE5VTEwpIHsKKysgICAgICByZXR1cm4gZjsKKysgICAgfQor KyAgfQorKworKyAgcmV0dXJuIGRsc3ltKGhhbmRsZSwgbmFtZSk7CisrfQorKworIC8vIEhhbmRs ZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wgdmVyc2lvbiAxLjEgKEFQSSB2MSkuIElm IGl0IGZhaWxzCisgLy8gbG9hZCBzeW1ib2wgZnJvbSBiYXNlIHZlcnNpb24gaW5zdGVhZC4KKyB2 b2lkKiBvczo6TGludXg6OmxpYm51bWFfZGxzeW0odm9pZCogaGFuZGxlLCBjb25zdCBjaGFyICpu YW1lKSB7CistICB2b2lkICpmID0gZGx2c3ltKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4xIik7 CistICBpZiAoZiA9PSBOVUxMKSB7CistICAgIGYgPSBkbHN5bShoYW5kbGUsIG5hbWUpOworLSAg fQorLSAgcmV0dXJuIGY7CisrICByZXR1cm4gZGx2c3ltX2lmX2F2YWlsYWJsZShoYW5kbGUsIG5h bWUsICJsaWJudW1hXzEuMSIpOworIH0KKworIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGli bnVtYSBzeW1ib2wgdmVyc2lvbiAxLjIgKEFQSSB2Mikgb25seS4KKyAvLyBSZXR1cm4gTlVMTCBp ZiB0aGUgc3ltYm9sIGlzIG5vdCBkZWZpbmVkIGluIHRoaXMgcGFydGljdWxhciB2ZXJzaW9uLgor IHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV92Ml9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNo YXIqIG5hbWUpIHsKKy0gIHJldHVybiBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjIi KTsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51bWFf MS4yIik7CisgfQorCisgYm9vbCBvczo6TGludXg6OmxpYm51bWFfaW5pdCgpIHsKKy0tLSBvbGQv c3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCisrKysgbmV3L3Ny Yy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorQEAgLTc1LDkgKzc1 LDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVk ZSA8dWNvbnRleHQuaD4KKy0jaWZuZGVmIEFNRDY0CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5o PgorLSNlbmRpZgorCisgI2lmZGVmIEFNRDY0CisgI2RlZmluZSBSRUdfU1AgUkVHX1JTUAorLS0t IG9sZC9zcmMvaG90c3BvdC9zaGFyZS9nYy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVhcC5jcHAKKysr KyBuZXcvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCitA QCAtMTE0Nyw3ICsxMTQ3LDcgQEAKKyBzdGF0aWMgU2NyYXRjaEJsb2NrICpyZW1vdmVTbWFsbGVz dFNjcmF0Y2goU2NyYXRjaEJsb2NrICoqcHJldl9wdHIpIHsKKyAgIGJvb2wgZmlyc3QgPSB0cnVl OworICAgc2l6ZV90IG1pbl9zaXplID0gMDsgICAvLyAiZmlyc3QiIG1ha2VzIHRoaXMgY29uY2Vw dHVhbGx5IGluZmluaXRlLgorLSAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyLCAqc21hbGxl c3Q7CisrICBTY3JhdGNoQmxvY2sgKipzbWFsbGVzdF9wdHIgPSBOVUxMLCAqc21hbGxlc3Q7Cisg ICBTY3JhdGNoQmxvY2sgICpjdXIgPSAqcHJldl9wdHI7CisgICB3aGlsZSAoY3VyKSB7CisgICAg IGFzc2VydCgqcHJldl9wdHIgPT0gY3VyLCAianVzdCBjaGVja2luZyIpOworLS0tIG9sZC9zcmMv aG90c3BvdC9zaGFyZS9ydW50aW1lL3ZtX3ZlcnNpb24uY3BwCisrKysgbmV3L3NyYy9ob3RzcG90 L3NoYXJlL3J1bnRpbWUvdm1fdmVyc2lvbi5jcHAKK0BAIC0yNzIsNyArMjcyLDcgQEAKKyAgICNl bmRpZgorCisgICAjZGVmaW5lIElOVEVSTkFMX1ZFUlNJT05fU1VGRklYIFZNX1JFTEVBU0UgIiki IFwKKy0gICAgICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9TVFIgXAorKyAgICAg ICAgICIgZm9yICIgT1MgIi0iIENQVSBGTE9BVF9BUkNIX1NUUiBMSUJDIFwKKyAgICAgICAgICAi IEpSRSAoIiBWRVJTSU9OX1NUUklORyAiKSwgYnVpbHQgb24gIiBfX0RBVEVfXyAiICIgX19USU1F X18gXAorICAgICAgICAgICIgYnkgIiBYU1RSKEhPVFNQT1RfQlVJTERfVVNFUikgIiB3aXRoICIg SE9UU1BPVF9CVUlMRF9DT01QSUxFUgorCistLS0gb2xkL3NyYy9ob3RzcG90L3NoYXJlL3V0aWxp dGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCisrKysgbmV3L3NyYy9ob3RzcG90L3NoYXJl L3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCitAQCAtMjA0LDcgKzIwNCw3IEBA CisgI2VsaWYgZGVmaW5lZChfX0FQUExFX18pCisgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBm KSB7IHJldHVybiBpc25hbihmKTsgfQorICNlbGlmIGRlZmluZWQoTElOVVgpIHx8IGRlZmluZWQo X0FMTEJTRF9TT1VSQ0UpCistaW5saW5lIGludCBnX2lzbmFuKGZsb2F0ICBmKSB7IHJldHVybiBp c25hbmYoZik7IH0KKytpbmxpbmUgaW50IGdfaXNuYW4oZmxvYXQgIGYpIHsgcmV0dXJuIGlzbmFu KGYpOyB9CisgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbihmKTsg fQorICNlbHNlCisgI2Vycm9yICJtaXNzaW5nIHBsYXRmb3JtLXNwZWNpZmljIGRlZmluaXRpb24g aGVyZSIKKy0tLSBvbGQvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4X2Ns b3NlLmMKKysrKyBuZXcvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4X2Ns b3NlLmMKK0BAIC02MCw3ICs2MCw3IEBACisgLyoKKyAgKiBTaWduYWwgdG8gdW5ibG9jayB0aHJl YWQKKyAgKi8KKy1zdGF0aWMgaW50IHNpZ1dha2V1cCA9IChfX1NJR1JUTUFYIC0gMik7Cisrc3Rh dGljIGludCBzaWdXYWtldXA7CisKKyAvKgorICAqIGZkVGFibGUgaG9sZHMgb25lIGVudHJ5IHBl ciBmaWxlIGRlc2NyaXB0b3IsIHVwIHRvIGEgY2VydGFpbgorQEAgLTE0OSw2ICsxNDksNyBAQAor ICAgICAvKgorICAgICAgKiBTZXR1cCB0aGUgc2lnbmFsIGhhbmRsZXIKKyAgICAgICovCisrICAg IHNpZ1dha2V1cCA9IFNJR1JUTUFYIC0gMjsKKyAgICAgc2Euc2FfaGFuZGxlciA9IHNpZ193YWtl dXA7CisgICAgIHNhLnNhX2ZsYWdzICAgPSAwOworICAgICBzaWdlbXB0eXNldCgmc2Euc2FfbWFz ayk7CistLS0gb2xkL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2Mu YworKysrIG5ldy9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9jLmMK K0BAIC0yMzcsNyArMjM3LDEzIEBACisgeworICAgICBpZiAoZW52cCA9PSBOVUxMIHx8IChjaGFy ICoqKSBlbnZwID09IGVudmlyb24pIHsKKyAgICAgICAgIGV4ZWN2cChmaWxlLCAoY2hhciAqKikg YXJndik7CistICAgICAgICByZXR1cm47CisrICAgICAgICAvLyBFTk9FWEVDIGluZGljYXRlcyB0 aGF0IHRoZSBmaWxlIGhlYWRlciB3YXMgbm90IHJlY29nbml6ZWQuIFRoZSBtdXNsIEMKKysgICAg ICAgIC8vIGxpYnJhcnkgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBmYWxsYmFjayB0byAvYmluL3No IGZvciB0aGF0IGNhc2UsIHNvIGZhbGwKKysgICAgICAgIC8vIHRocm91Z2ggdG8gdGhlIGNvZGUg YmVsb3cgd2hpY2ggaW1wbGVtZW50cyB0aGF0IGZhbGxiYWNrIHVzaW5nCisrICAgICAgICAvLyBl eGVjdmVfd2l0aF9zaGVsbF9mYWxsYmFjay4KKysgICAgICAgIGlmIChlcnJubyAhPSBFTk9FWEVD KSB7CisrICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQorICAgICB9CisKKyAgICAgaWYg KCpmaWxlID09ICdcMCcpIHsKKy0tLSBvbGQvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJq YXZhL2pka191dGlsX21kLmgKKysrKyBuZXcvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJq YXZhL2pka191dGlsX21kLmgKK0BAIC0zNyw3ICszNyw3IEBACisgI2RlZmluZSBJU05BTkQoZCkg aXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfQUxMQlNEX1NP VVJDRSkKKyAjaW5jbHVkZSA8bWF0aC5oPgorLSNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuZihmKQor KyNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuKGYpCisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkK KyAjZWxpZiBkZWZpbmVkKF9BSVgpCisgI2luY2x1ZGUgPG1hdGguaD4KKy0tLSBvbGQvc3JjL2ph dmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMKKysrKyBuZXcvc3Jj L2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMKK0BAIC0yMzUs NiArMjM1LDM5IEBACisgICAgIGNoYXIgKmRtbGxwID0gTlVMTDsKKyAgICAgY2hhciAqcDsgLyog YSB1dGlsaXR5IHBvaW50ZXIgKi8KKworKyNpZmRlZiBfX2xpbnV4CisrI2lmbmRlZiBMSUJDCisr I2Vycm9yICJMSUJDIG5vdCBzZXQiCisrI2VuZGlmCisrCisrICAgIGlmIChzdHJjbXAoTElCQywg Im11c2wiKSA9PSAwKSB7CisrICAgICAgLyoKKysgICAgICAgKiBUaGUgbXVzbCBsaWJyYXJ5IGxv YWRlciByZXF1aXJlcyBMRF9MSUJSQVJZX1BBVEggdG8gYmUgc2V0IGluCisrICAgICAgICogb3Jk ZXIgdG8gY29ycmVjdGx5IHJlc29sdmUgdGhlIGRlcGVuZGVuY3kgbGliamF2YS5zbyBoYXMgb24g bGlianZtLnNvLgorKyAgICAgICAqCisrICAgICAgICogU3BlY2lmaWNhbGx5LCBpdCBkaWZmZXJz IGZyb20gZ2xpYmMgaW4gdGhlIHNlbnNlIHRoYXQgZXZlbiBpZgorKyAgICAgICAqIGxpYmp2bS5z byBoYXMgYWxyZWFkeSBiZWVuIGxvYWRlZCBpdCB3aWxsIG5vdCBiZSBjb25zaWRlcmVkIGEKKysg ICAgICAgKiBjYW5kaWRhdGUgZm9yIHJlc29sdmluZyB0aGUgZGVwZW5kZW5jeSB1bmxlc3MgdGhl ICpmdWxsKiBwYXRoCisrICAgICAgICogb2YgdGhlIGFscmVhZHkgbG9hZGVkIGxpYnJhcnkgbWF0 Y2hlcyB0aGUgZGVwZW5kZW5jeSBiZWluZyBsb2FkZWQuCisrICAgICAgICoKKysgICAgICAgKiBs aWJqdm0uc28gaXMgYmVpbmcgbG9hZGVkIGJ5IHRoZSBsYXVuY2hlciB1c2luZyBhIGxvbmcgcGF0 aCB0bworKyAgICAgICAqIGRsb3Blbiwgbm90IGp1c3QgdGhlIGJhc2VuYW1lIG9mIHRoZSBsaWJy YXJ5LiBUeXBpY2FsbHkgdGhpcworKyAgICAgICAqIGlzIHNvbWV0aGluZyBsaWtlICIuLi9saWIv c2VydmVyL2xpYmp2bS5zbyIuIEhvd2V2ZXIsIGlmL3doZW4KKysgICAgICAgKiBsaWJqdm0uc28g bGF0ZXIgdHJpZXMgdG8gZGxvcGVuIGxpYmphdmEuc28gKHdoaWNoIGl0IGRvZXMgaW4KKysgICAg ICAgKiBvcmRlciB0byBnZXQgYWNjZXNzIHRvIGEgZmV3IGZ1bmN0aW9ucyBpbXBsZW1lbnRlZCBp bgorKyAgICAgICAqIGxpYmphdmEuc28pIHRoZSBtdXNsIGxvYWRlciB3aWxsLCBhcyBwYXJ0IG9m IGxvYWRpbmcKKysgICAgICAgKiBkZXBlbmRlbnQgbGlicmFyaWVzLCB0cnkgdG8gbG9hZCBsaWJq dm0uc28gdXNpbmcgb25seSBpdHMKKysgICAgICAgKiBiYXNlbmFtZSAibGlianZtLnNvIi4gU2lu Y2UgdGhpcyBkb2VzIG5vdCBtYXRjaCB0aGUgbG9uZ2VyCisrICAgICAgICogcGF0aCBwYXRoIGl0 IHdhcyBmaXJzdCBsb2FkZWQgd2l0aCwgdGhlIGFscmVhZHkgbG9hZGVkCisrICAgICAgICogbGli cmFyeSBpcyBub3QgY29uc2lkZXJlZCBhIGNhbmRpZGF0ZSwgYW5kIHRoZSBsb2FkZXIgd2lsbAor KyAgICAgICAqIGluc3RlYWQgbG9vayBmb3IgbGlianZtLnNvIGVsc2V3aGVyZS4gSWYgaXQncyBu b3QgaW4KKysgICAgICAgKiBMRF9MSUJSQVJZX1BBVEggdGhlIGRlcGVuZGVuY3kgbG9hZCB3aWxs IGZhaWwsIGFuZCBsaWJqYXZhLnNvCisrICAgICAgICogd2lsbCB0aGVyZWZvcmUgZmFpbCBhcyB3 ZWxsLgorKyAgICAgICAqLworKyAgICAgIHJldHVybiBKTklfVFJVRTsKKysgICAgfQorKyNlbmRp ZgorKworICNpZmRlZiBBSVgKKyAgICAgLyogV2UgYWx3YXlzIGhhdmUgdG8gc2V0IHRoZSBMSUJQ QVRIIG9uIEFJWCBiZWNhdXNlIGxkIGRvZXNuJ3Qgc3VwcG9ydCAkT1JJR0lOLiAqLworICAgICBy ZXR1cm4gSk5JX1RSVUU7CistLS0gb2xkL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlv L2NoL05hdGl2ZVRocmVhZC5jCisrKysgbmV3L3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGli bmlvL2NoL05hdGl2ZVRocmVhZC5jCitAQCAtMzYsNyArMzYsNyBAQAorICNpZmRlZiBfX2xpbnV4 X18KKyAgICNpbmNsdWRlIDxwdGhyZWFkLmg+CisgICAvKiBBbHNvIGRlZmluZWQgaW4gbmV0L2xp bnV4X2Nsb3NlLmMgKi8KKy0gICNkZWZpbmUgSU5URVJSVVBUX1NJR05BTCAoX19TSUdSVE1BWCAt IDIpCisrICAjZGVmaW5lIElOVEVSUlVQVF9TSUdOQUwgKFNJR1JUTUFYIC0gMikKKyAjZWxpZiBf QUlYCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAgLyogQWxzbyBkZWZpbmVkIGluIG5ldC9h aXhfY2xvc2UuYyAqLworLS0tIG9sZC9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3 dF94YXd0L3hhd3QvWFRvb2xraXQuYworKysrIG5ldy9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0 aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xraXQuYworQEAgLTI3LDkgKzI3LDYgQEAKKyAjaW5j bHVkZSA8WDExL1h1dGlsLmg+CisgI2luY2x1ZGUgPFgxMS9Yb3MuaD4KKyAjaW5jbHVkZSA8WDEx L1hhdG9tLmg+CistI2lmZGVmIF9fbGludXhfXworLSNpbmNsdWRlIDxleGVjaW5mby5oPgorLSNl bmRpZgorCisgI2luY2x1ZGUgPGp2bS5oPgorICNpbmNsdWRlIDxqbmkuaD4KK0BAIC03ODYsMjYg Kzc4Myw2IEBACisgICAgIH0KKyAgICAgcmV0dXJuIHJldDsKKyB9CistCistI2lmZGVmIF9fbGlu dXhfXworLXZvaWQgcHJpbnRfc3RhY2sodm9pZCkKKy17CistICB2b2lkICphcnJheVsxMF07Cist ICBzaXplX3Qgc2l6ZTsKKy0gIGNoYXIgKipzdHJpbmdzOworLSAgc2l6ZV90IGk7CistCistICBz aXplID0gYmFja3RyYWNlIChhcnJheSwgMTApOworLSAgc3RyaW5ncyA9IGJhY2t0cmFjZV9zeW1i b2xzIChhcnJheSwgc2l6ZSk7CistCistICBmcHJpbnRmIChzdGRlcnIsICJPYnRhaW5lZCAlemQg c3RhY2sgZnJhbWVzLlxuIiwgc2l6ZSk7CistCistICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsr KQorLSAgICAgZnByaW50ZiAoc3RkZXJyLCAiJXNcbiIsIHN0cmluZ3NbaV0pOworLQorLSAgZnJl ZSAoc3RyaW5ncyk7CistfQorLSNlbmRpZgorCisgV2luZG93IGdldF94YXd0X3Jvb3Rfc2hlbGwo Sk5JRW52ICplbnYpIHsKKyAgIHN0YXRpYyBqY2xhc3MgY2xhc3NYUm9vdFdpbmRvdyA9IE5VTEw7 CistLS0gb2xkL3NyYy9qZGsuamR3cC5hZ2VudC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmgK KysrKyBuZXcvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAor QEAgLTM1LDE1ICszNSwxNSBAQAorICNpZmRlZiBERUJVRworICAgICAvKiBKdXN0IHRvIG1ha2Ug c3VyZSB0aGVzZSBpbnRlcmZhY2VzIGFyZSBub3QgdXNlZCBoZXJlLiAqLworICAgICAjdW5kZWYg ZnJlZQorLSAgICAjZGVmaW5lIGZyZWUocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysg ICAgI2RlZmluZSBmcmVlIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfZnJlZQorICAgICAjdW5k ZWYgbWFsbG9jCistICAgICNkZWZpbmUgbWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZh Y2UuCisrICAgICNkZWZpbmUgbWFsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfbWFsbG9j CisgICAgICN1bmRlZiBjYWxsb2MKKy0gICAgI2RlZmluZSBjYWxsb2MocCkgRG8gbm90IHVzZSB0 aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBjYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVy ZmFjZV9jYWxsb2MKKyAgICAgI3VuZGVmIHJlYWxsb2MKKy0gICAgI2RlZmluZSByZWFsbG9jKHAp IERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgcmVhbGxvYyBkb19ub3Rf dXNlX3RoaXNfaW50ZXJmYWNlX3JlYWxsb2MKKyAgICAgI3VuZGVmIHN0cmR1cAorLSAgICAjZGVm aW5lIHN0cmR1cChwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIHN0 cmR1cCBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3N0cmR1cAorICNlbmRpZgorCisgI2luY2x1 ZGUgImxvZ19tZXNzYWdlcy5oIgorLS0tIG9sZC90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9T dGFja0d1YXJkUGFnZXMvZXhlaW52b2tlLmMKKysrKyBuZXcvdGVzdC9ob3RzcG90L2p0cmVnL3J1 bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5jCitAQCAtMzMsNiArMzMsNyBAQAorCisg I2luY2x1ZGUgPGFzc2VydC5oPgorICNpbmNsdWRlIDxqbmkuaD4KKysjaW5jbHVkZSA8anZtLmg+ CisgI2luY2x1ZGUgPGFsbG9jYS5oPgorICNpbmNsdWRlIDxzaWduYWwuaD4KKyAjaW5jbHVkZSA8 c3RyaW5nLmg+CitAQCAtOTEsNiArOTIsMjAgQEAKKyAgIH0KKyB9CisKKytpbnQgZ2V0X2phdmFf c3RhY2tzaXplICgpIHsKKysgIHNpemVfdCBzdGFja3NpemU7CisrICBwdGhyZWFkX2F0dHJfdCBh dHRyOworKyAgSkRLMV8xSW5pdEFyZ3MgamRrX2FyZ3M7CisrCisrICBqZGtfYXJncy52ZXJzaW9u ID0gSk5JX1ZFUlNJT05fMV8xOworKyAgSk5JX0dldERlZmF1bHRKYXZhVk1Jbml0QXJncygmamRr X2FyZ3MpOworKyAgaWYgKGpka19hcmdzLmphdmFTdGFja1NpemUgPD0gMCkgeworKyAgICBmcHJp bnRmKHN0ZGVyciwgIlRlc3QgRVJST1IuIENhbid0IGdldCBhIHZhbGlkIHZhbHVlIGZvciB0aGUg ZGVmYXVsdCBzdGFja3NpemUuXG4iKTsKKysgICAgZXhpdCg3KTsKKysgIH0KKysgIHJldHVybiBq ZGtfYXJncy5qYXZhU3RhY2tTaXplOworK30KKysKKyB2b2lkICpydW5famF2YV9vdmVyZmxvdyAo dm9pZCAqcCkgeworICAgSk5JRW52ICplbnY7CisgICBqY2xhc3MgY2xhc3NfaWQ7CitAQCAtMjU0 LDEzICsyNjksMTkgQEAKKyAgICAgZXhpdCg3KTsKKyAgIH0KKworKyAgaW50IHN0YWNrX3NpemUg PSBnZXRfamF2YV9zdGFja3NpemUoKTsKKyAgIHB0aHJlYWRfdCB0aHI7CisrICBwdGhyZWFkX2F0 dHJfdCB0aHJlYWRfYXR0cjsKKworKyAgcHRocmVhZF9hdHRyX2luaXQoJnRocmVhZF9hdHRyKTsK KysgIHB0aHJlYWRfYXR0cl9zZXRzdGFja3NpemUoJnRocmVhZF9hdHRyLCBzdGFja19zaXplKTsK KysKKyAgIGlmIChhcmdjID4gMSAmJiBzdHJjbXAoYXJndlsxXSwgInRlc3RfamF2YV9vdmVyZmxv dyIpID09IDApIHsKKyAgICAgcHJpbnRmKCJcblRlc3RpbmcgSkFWQV9PVkVSRkxPV1xuIik7CisK KyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBvdGhl ciB0aHJlYWRcbiIpOworLSAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgTlVMTCwgcnVuX2phdmFf b3ZlcmZsb3csIE5VTEwpOworKworKyAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgJnRocmVhZF9h dHRyLCBydW5famF2YV9vdmVyZmxvdywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBO VUxMKTsKKworICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIg Zm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKK0BAIC0yNzMsNyArMjk0LDcgQEAKKyAgICAgcHJpbnRm KCJcblRlc3RpbmcgTkFUSVZFX09WRVJGTE9XXG4iKTsKKworICAgICBwcmludGYoIlRlc3Rpbmcg c3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7CistICAgIHB0 aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsKKysg ICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVuX25hdGl2ZV9vdmVyZmxv dywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxMKTsKKworICAgICBwcmludGYo IlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4i KTsKKy0tLSBvbGQvdGVzdC9qZGsvamF2YS9sYW5nL1Byb2Nlc3NCdWlsZGVyL0Jhc2ljLmphdmEK KysrKyBuZXcvdGVzdC9qZGsvamF2YS9sYW5nL1Byb2Nlc3NCdWlsZGVyL0Jhc2ljLmphdmEKK0BA IC0zODksOCArMzg5LDggQEAKKyAgICAgICAgICAgICAgICAgaWYgKGZhaWxlZCAhPSAwKSB0aHJv dyBuZXcgRXJyb3IoIm51bGwgUEFUSCIpOworICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWN0aW9u LmVxdWFscygiUEFUSCBzZWFyY2ggYWxnb3JpdGhtIikpIHsKKyAgICAgICAgICAgICAgICAgZXF1 YWwoU3lzdGVtLmdldGVudigiUEFUSCIpLCAiZGlyMTpkaXIyOiIpOworLSAgICAgICAgICAgICAg ICBjaGVjayhuZXcgRmlsZSgiL2Jpbi90cnVlIikuZXhpc3RzKCkpOworLSAgICAgICAgICAgICAg ICBjaGVjayhuZXcgRmlsZSgiL2Jpbi9mYWxzZSIpLmV4aXN0cygpKTsKKysgICAgICAgICAgICAg ICAgY2hlY2sobmV3IEZpbGUoVHJ1ZUV4ZS5wYXRoKCkpLmV4aXN0cygpKTsKKysgICAgICAgICAg ICAgICAgY2hlY2sobmV3IEZpbGUoRmFsc2VFeGUucGF0aCgpKS5leGlzdHMoKSk7CisgICAgICAg ICAgICAgICAgIFN0cmluZ1tdIGNtZCA9IHsicHJvZyJ9OworICAgICAgICAgICAgICAgICBQcm9j ZXNzQnVpbGRlciBwYjEgPSBuZXcgUHJvY2Vzc0J1aWxkZXIoY21kKTsKKyAgICAgICAgICAgICAg ICAgUHJvY2Vzc0J1aWxkZXIgcGIyID0gbmV3IFByb2Nlc3NCdWlsZGVyKGNtZCk7CitAQCAtNDMx LDEzICs0MzEsMTMgQEAKKyAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Blcm1pc3Npb25E ZW5pZWQocGIpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGludWUgc2VhcmNo aW5nIGlmIEVBQ0NFUworLSAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoIi9iaW4vdHJ1ZSIs ICJkaXIyL3Byb2ciKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBjb3B5KFRydWVFeGUucGF0 aCgpLCAiZGlyMi9wcm9nIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgZXF1YWwocnVuKHBi KS5leGl0VmFsdWUoKSwgVHJ1ZS5leGl0VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgbmV3IEZpbGUoImRpcjEvcHJvZyIpLmRlbGV0ZSgpOworICAgICAgICAgICAgICAgICAgICAg ICAgIG5ldyBGaWxlKCJkaXIyL3Byb2ciKS5kZWxldGUoKTsKKworICAgICAgICAgICAgICAgICAg ICAgICAgIG5ldyBGaWxlKCJkaXIyL3Byb2ciKS5ta2RpcnMoKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBjb3B5KCIvYmluL3RydWUiLCAiZGlyMS9wcm9nIik7CisrICAgICAgICAgICAgICAg ICAgICAgICAgY29weShUcnVlRXhlLnBhdGgoKSwgImRpcjEvcHJvZyIpOworICAgICAgICAgICAg ICAgICAgICAgICAgIGVxdWFsKHJ1bihwYikuZXhpdFZhbHVlKCksIFRydWUuZXhpdFZhbHVlKCkp OworCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgZW1wdHkgUEFUSCBjb21wb25l bnQgbWVhbnMgY3VycmVudCBkaXJlY3RvcnkuCitAQCAtNDUzLDEwICs0NTMsMTAgQEAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGIuY29tbWFuZChjb21tYW5kKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRmlsZSBwcm9nID0gbmV3IEZpbGUoIi4vcHJvZyIpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyAiTm9ybWFsIiBiaW5hcmllcworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb3B5KCIvYmluL3RydWUiLCAiLi9wcm9nIik7CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvcHkoVHJ1ZUV4ZS5wYXRoKCksICIuL3Byb2ciKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZXF1YWwocnVuKHBiKS5leGl0VmFsdWUoKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZS5leGl0VmFsdWUoKSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvcHkoIi9iaW4vZmFsc2UiLCAiLi9wcm9nIik7CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoRmFsc2VFeGUucGF0aCgpLCAiLi9wcm9nIik7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVxdWFsKHJ1bihwYikuZXhpdFZhbHVlKCks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlLmV4aXRWYWx1ZSgpKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZy5kZWxldGUoKTsKK0BAIC01MTEsMTIg KzUxMSwxMiBAQAorICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlKCJkaXIyL3Byb2ci KS5kZWxldGUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZSgicHJvZyIpLmRl bGV0ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlKCJkaXIzIikubWtkaXJz KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgY29weSgiL2Jpbi90cnVlIiwgImRpcjEvcHJv ZyIpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoIi9iaW4vZmFsc2UiLCAiZGlyMy9w cm9nIik7CisrICAgICAgICAgICAgICAgICAgICAgICAgY29weShUcnVlRXhlLnBhdGgoKSwgImRp cjEvcHJvZyIpOworKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoRmFsc2VFeGUucGF0aCgp LCAiZGlyMy9wcm9nIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgcGIuZW52aXJvbm1lbnQo KS5wdXQoIlBBVEgiLCJkaXIzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgZXF1YWwocnVu KHBiKS5leGl0VmFsdWUoKSwgVHJ1ZS5leGl0VmFsdWUoKSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgY29weSgiL2Jpbi90cnVlIiwgImRpcjMvcHJvZyIpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGNvcHkoIi9iaW4vZmFsc2UiLCAiZGlyMS9wcm9nIik7CisrICAgICAgICAgICAgICAg ICAgICAgICAgY29weShUcnVlRXhlLnBhdGgoKSwgImRpcjMvcHJvZyIpOworKyAgICAgICAgICAg ICAgICAgICAgICAgIGNvcHkoRmFsc2VFeGUucGF0aCgpLCAiZGlyMS9wcm9nIik7CisgICAgICAg ICAgICAgICAgICAgICAgICAgZXF1YWwocnVuKHBiKS5leGl0VmFsdWUoKSwgRmFsc2UuZXhpdFZh bHVlKCkpOworCisgICAgICAgICAgICAgICAgICAgICB9IGZpbmFsbHkgeworQEAgLTYxMyw2ICs2 MTMsMTMgQEAKKyAgICAgICAgICAgICAgbmV3IEZpbGUoIi9iaW4vZmFsc2UiKS5leGlzdHMoKSk7 CisgICAgIH0KKworKyAgICBzdGF0aWMgY2xhc3MgQnVzeUJveCB7CisrICAgICAgICBwdWJsaWMg c3RhdGljIGJvb2xlYW4gaXMoKSB7IHJldHVybiBpczsgfQorKyAgICAgICAgcHJpdmF0ZSBzdGF0 aWMgZmluYWwgYm9vbGVhbiBpcyA9CisrICAgICAgICAgICAgKCEgV2luZG93cy5pcygpICYmCisr ICAgICAgICAgICAgIG5ldyBGaWxlKCIvYmluL2J1c3lib3giKS5leGlzdHMoKSk7CisrICAgIH0K KysKKyAgICAgc3RhdGljIGNsYXNzIFVuaWNvZGVPUyB7CisgICAgICAgICBwdWJsaWMgc3RhdGlj IGJvb2xlYW4gaXMoKSB7IHJldHVybiBpczsgfQorICAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmlu YWwgU3RyaW5nIG9zTmFtZSA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgib3MubmFtZSIpOworQEAgLTY1 MSw2ICs2NTgsNDUgQEAKKyAgICAgICAgIH0KKyAgICAgfQorCisrICAgIC8vIE9uIGFscGluZSBs aW51eCwgL2Jpbi90cnVlIGFuZCAvYmluL2ZhbHNlIGFyZSBqdXN0IGxpbmtzIHRvIC9iaW4vYnVz eWJveC4KKysgICAgLy8gU29tZSB0ZXN0cyBjb3B5IC9iaW4vdHJ1ZSBhbmQgL2Jpbi9mYWxzZSB0 byBmaWxlcyB3aXRoIGEgZGlmZmVyZW50IGZpbGVuYW1lLgorKyAgICAvLyBIb3dldmVyLCBjb3B5 aW5nIHRoZSBidXNib3ggZXhlY3V0YWJsZSBpbnRvIGEgZmlsZSB3aXRoIGEgZGlmZmVyZW50IG5h bWUKKysgICAgLy8gd29uJ3QgcmVzdWx0IGluIHRoZSBleHBlY3RlZCByZXR1cm4gY29kZXMuIEFz IHdvcmthcm91bmQsIHdlIGNyZWF0ZQorKyAgICAvLyBleGVjdXRhYmxlIGZpbGVzIHRoYXQgY2Fu IGJlIGNvcGllZCBhbmQgcHJvZHVjZSB0aGUgZXhlcGVjdGVkIHJldHVybgorKyAgICAvLyB2YWx1 ZXMuIFdlIHVzZSB0aGlzIHdvcmthcm91bmQsIGlmIHdlIGZpbmQgdGhlIGJ1c3lib3ggZXhlY3V0 YWJsZS4KKysKKysgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgVHJ1ZUV4ZSB7CisrICAgICAgICBw dWJsaWMgc3RhdGljIFN0cmluZyBwYXRoKCkgeyByZXR1cm4gcGF0aDsgfQorKyAgICAgICAgcHJp dmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHBhdGggPSBwYXRoMCgpOworKyAgICAgICAgcHJpdmF0 ZSBzdGF0aWMgU3RyaW5nIHBhdGgwKCl7CisrICAgICAgICAgICAgaWYgKCFCdXN5Qm94LmlzKCkp IHsKKysgICAgICAgICAgICAgICAgcmV0dXJuICIvYmluL3RydWUiOworKyAgICAgICAgICAgIH0K KysgICAgICAgICAgICBlbHNlIHsKKysgICAgICAgICAgICAgICAgRmlsZSB0cnVlRXhlID0gbmV3 IEZpbGUoInRydWUiKTsKKysgICAgICAgICAgICAgICAgc2V0RmlsZUNvbnRlbnRzKHRydWVFeGUs ICIjIS9iaW4vdHJ1ZVxuIik7CisrICAgICAgICAgICAgICAgIHRydWVFeGUuc2V0RXhlY3V0YWJs ZSh0cnVlKTsKKysgICAgICAgICAgICAgICAgcmV0dXJuIHRydWVFeGUuZ2V0QWJzb2x1dGVQYXRo KCk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICB9CisrCisrICAgIHByaXZhdGUg c3RhdGljIGNsYXNzIEZhbHNlRXhlIHsKKysgICAgICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHBh dGgoKSB7IHJldHVybiBwYXRoOyB9CisrICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJp bmcgcGF0aCA9IHBhdGgwKCk7CisrICAgICAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgcGF0aDAo KXsKKysgICAgICAgICAgICBpZiAoIUJ1c3lCb3guaXMoKSkgeworKyAgICAgICAgICAgICAgICBy ZXR1cm4gIi9iaW4vZmFsc2UiOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICBlbHNlIHsK KysgICAgICAgICAgICAgICAgRmlsZSBmYWxzZUV4ZSA9IG5ldyBGaWxlKCJmYWxzZSIpOworKyAg ICAgICAgICAgICAgICBzZXRGaWxlQ29udGVudHMoZmFsc2VFeGUsICIjIS9iaW4vZmFsc2VcbiIp OworKyAgICAgICAgICAgICAgICBmYWxzZUV4ZS5zZXRFeGVjdXRhYmxlKHRydWUpOworKyAgICAg ICAgICAgICAgICByZXR1cm4gZmFsc2VFeGUuZ2V0QWJzb2x1dGVQYXRoKCk7CisrICAgICAgICAg ICAgfQorKyAgICAgICAgfQorKyAgICB9CisrCisgICAgIHN0YXRpYyBjbGFzcyBFbmdsaXNoVW5p eCB7CisgICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBCb29sZWFuIGlzID0KKyAgICAgICAg ICAgICAoISBXaW5kb3dzLmlzKCkgJiYgaXNFbmdsaXNoKCJMQU5HIikgJiYgaXNFbmdsaXNoKCJM Q19BTEwiKSk7CitAQCAtMTk1NCw3ICsyMDAwLDcgQEAKKyAgICAgICAgICAgICAvLy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICBuZXcgRmlsZSgic3VCZGlSIiku bWtkaXJzKCk7CistICAgICAgICAgICAgICAgIGNvcHkoIi9iaW4vdHJ1ZSIsICJzdUJkaVIvdW5s aUtlbHkiKTsKKysgICAgICAgICAgICAgICAgY29weShUcnVlRXhlLnBhdGgoKSwgInN1QmRpUi91 bmxpS2VseSIpOworICAgICAgICAgICAgICAgICBmaW5hbCBQcm9jZXNzQnVpbGRlciBwYiA9Cisg ICAgICAgICAgICAgICAgICAgICBuZXcgUHJvY2Vzc0J1aWxkZXIobmV3IFN0cmluZ1tdeyJ1bmxp S2VseSJ9KTsKKyAgICAgICAgICAgICAgICAgcGIuZW52aXJvbm1lbnQoKS5wdXQoIlBBVEgiLCAi c3VCZGlSIik7CistLS0gb2xkL3Rlc3QvamRrL2phdmEvbGFuZy9Qcm9jZXNzSGFuZGxlL0luZm9U ZXN0LmphdmEKKysrKyBuZXcvdGVzdC9qZGsvamF2YS9sYW5nL1Byb2Nlc3NIYW5kbGUvSW5mb1Rl c3QuamF2YQorQEAgLTI5OCw2ICsyOTgsMTMgQEAKKyAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgICBpZiAoaW5mby5jb21tYW5kKCkuaXNQcmVzZW50KCkpIHsKKyAgICAgICAgICAg ICAgICAgICAgIFN0cmluZyBjb21tYW5kID0gaW5mby5jb21tYW5kKCkuZ2V0KCk7CistICAgICAg ICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSBQbGF0Zm9ybS5pc1dpbmRvd3MoKSA/ICJz bGVlcC5leGUiIDogInNsZWVwIjsKKysgICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3Rl ZCA9ICJzbGVlcCI7CisrICAgICAgICAgICAgICAgICAgICBpZiAoUGxhdGZvcm0uaXNXaW5kb3dz KCkpIHsKKysgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9ICJzbGVlcC5leGUiOwor KyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXcgRmlsZSgiL2Jpbi9idXN5Ym94Iiku ZXhpc3RzKCkpIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBXaXRoIGJ1c3lib3ggc2xl ZXAgaXMganVzdCBhIHN5bSBsaW5rIHRvIGJ1c3lib3guCisrICAgICAgICAgICAgICAgICAgICAg ICAgLy8gVGhlIGJ1c2JveCBleGVjdXRhYmxlIGlzIHNlZW4gYXMgUHJvY2Vzc0hhbmRsZS5JbmZv IGNvbW1hbmQuCisrICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAiYnVzeWJveCI7 CisrICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBBc3NlcnQuYXNz ZXJ0VHJ1ZShjb21tYW5kLmVuZHNXaXRoKGV4cGVjdGVkKSwgIkNvbW1hbmQ6IGV4cGVjdGVkOiBc JyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCArICJcJywgYWN0dWFs OiAiICsgY29tbWFuZCk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGstMTEvZmlsZXMvbXVz bF9wYXRjaGVzL3BwYzY0bGUucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGstMTEvZmlsZXMvbXVzbF9w YXRjaGVzL3BwYzY0bGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjY3ZjY2NDIxNDJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrLTExL2Zp bGVzL211c2xfcGF0Y2hlcy9wcGM2NGxlLnBhdGNoCkBAIC0wLDAgKzEsMjIxIEBACitQYXRjaGVz IGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51 eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdl MjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9jcHUvcHBjL21hY3JvQXNzZW1ibGVyX3BwYy5j cHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9wcGMuY3BwCitA QCAtMTI5MCw3ICsxMjkwLDExIEBACisgICAvLyB0aGUgc2FmZXBvaW5nIHBvbGxpbmcgcGFnZS4K KyAgIHVjb250ZXh0X3QqIHVjID0gKHVjb250ZXh0X3QqKSB1Y29udGV4dDsKKyAgIC8vIFNldCBw b2xsaW5nIGFkZHJlc3MuCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNM SUJDX18pCisgICBhZGRyZXNzIGFkZHIgPSAoYWRkcmVzcyl1Yy0+dWNfbWNvbnRleHQucmVncy0+ Z3ByW3JhXSArIChzc2l6ZV90KWRzOworKyNlbHNlIC8vIE11c2wKKysgIGFkZHJlc3MgYWRkciA9 IChhZGRyZXNzKXVjLT51Y19tY29udGV4dC5ncF9yZWdzW3JhXSArIChzc2l6ZV90KSBkczsKKysj ZW5kaWYKKyAgIGlmIChwb2xsaW5nX2FkZHJlc3NfcHRyICE9IE5VTEwpIHsKKyAgICAgKnBvbGxp bmdfYWRkcmVzc19wdHIgPSBhZGRyOworICAgfQorQEAgLTEzMTEsMTUgKzEzMTUsMjQgQEAKKyAg ICAgaW50IHJiID0gaW52X3JiX2ZpZWxkKGluc3RydWN0aW9uKTsKKworICAgICAvLyBsb29rIHVw IGNvbnRlbnQgb2YgcmEgYW5kIHJiIGluIHVjb250ZXh0CisrI2lmIGRlZmluZWQoX19HTElCQ19f KSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICAgIGFkZHJlc3MgcmFfdmFsPShhZGRyZXNzKXVj LT51Y19tY29udGV4dC5yZWdzLT5ncHJbcmFdOworICAgICBsb25nIHJiX3ZhbD0obG9uZyl1Yy0+ dWNfbWNvbnRleHQucmVncy0+Z3ByW3JiXTsKKysjZWxzZSAvLyBNdXNsCisrICAgIGFkZHJlc3Mg cmFfdmFsPShhZGRyZXNzKXVjLT51Y19tY29udGV4dC5ncF9yZWdzW3JhXTsKKysgICAgbG9uZyBy Yl92YWw9KGxvbmcpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbcmJdOworKyNlbmRpZgorICAgICBy ZXR1cm4gb3M6OmlzX21lbW9yeV9zZXJpYWxpemVfcGFnZSh0aHJlYWQsIHJhX3ZhbCtyYl92YWwp OworICAgfSBlbHNlIGlmIChpc19zdHcoaW5zdHJ1Y3Rpb24pIHx8IGlzX3N0d3UoaW5zdHJ1Y3Rp b24pKSB7CisgICAgIGludCByYSA9IGludl9yYV9maWVsZChpbnN0cnVjdGlvbik7CisgICAgIGlu dCBkMSA9IGludl9kMV9maWVsZChpbnN0cnVjdGlvbik7CisKKyAgICAgLy8gbG9vayB1cCBjb250 ZW50IG9mIHJhIGluIHVjb250ZXh0CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVk KF9fVUNMSUJDX18pCisgICAgIGFkZHJlc3MgcmFfdmFsPShhZGRyZXNzKXVjLT51Y19tY29udGV4 dC5yZWdzLT5ncHJbcmFdOworKyNlbHNlIC8vIE11c2wKKysgICAgYWRkcmVzcyByYV92YWw9KGFk ZHJlc3MpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbcmFdOworKyNlbmRpZgorICAgICByZXR1cm4g b3M6OmlzX21lbW9yeV9zZXJpYWxpemVfcGFnZSh0aHJlYWQsIHJhX3ZhbCtkMSk7CisgICB9IGVs c2UgeworICAgICByZXR1cm4gZmFsc2U7CitAQCAtMTM4MiwxMSArMTM5NSwyMCBAQAorICAgICAg IHx8IChpc19zdGR1KGluc3RydWN0aW9uKSAmJiBycyA9PSAxKSkgeworICAgICBpbnQgZHMgPSBp bnZfZHNfZmllbGQoaW5zdHJ1Y3Rpb24pOworICAgICAvLyByZXR1cm4gYmFuZ2VkIGFkZHJlc3MK KysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgICAgcmV0 dXJuIGRzKyhhZGRyZXNzKXVjLT51Y19tY29udGV4dC5yZWdzLT5ncHJbcmFdOworKyNlbHNlIC8v IE11c2wKKysgICAgcmV0dXJuIGRzKyhhZGRyZXNzKXVjLT51Y19tY29udGV4dC5ncF9yZWdzW3Jh XTsKKysjZW5kaWYKKyAgIH0gZWxzZSBpZiAoaXNfc3RkdXgoaW5zdHJ1Y3Rpb24pICYmIHJzID09 IDEpIHsKKyAgICAgaW50IHJiID0gaW52X3JiX2ZpZWxkKGluc3RydWN0aW9uKTsKKysjaWYgZGVm aW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgICAgYWRkcmVzcyBzcCA9 IChhZGRyZXNzKXVjLT51Y19tY29udGV4dC5yZWdzLT5ncHJbMV07CisgICAgIGxvbmcgcmJfdmFs ID0gKGxvbmcpdWMtPnVjX21jb250ZXh0LnJlZ3MtPmdwcltyYl07CisrI2Vsc2UgLy8gTXVzbAor KyAgICBhZGRyZXNzIHNwID0gKGFkZHJlc3MpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbMV07Cisr ICAgIGxvbmcgcmJfdmFsID0gKGxvbmcpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbcmJdOworKyNl bmRpZgorICAgICByZXR1cm4gcmEgIT0gMSB8fCByYl92YWwgPj0gMCA/IE5VTEwgICAgICAgICAv LyBub3QgYSBzdGFjayBiYW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDog c3AgKyByYl92YWw7IC8vIGJhbmdlZCBhZGRyZXNzCisgICB9CistLS0gb2xkL3NyYy9ob3RzcG90 L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMv dm1fdmVyc2lvbl9wcGMuY3BwCitAQCAtNzY4LDcgKzc2OCw3IEBACisgICB1bnNpZ25lZCBsb25n IGF1eHYgPSBnZXRhdXh2YWwoQVRfSFdDQVAyKTsKKworICAgaWYgKGF1eHYgJiBQUENfRkVBVFVS RTJfSFRNX05PU0MpIHsKKy0gICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSEFTX0hUTSkgewor KyAgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IVE0pIHsKKyAgICAgICAvLyBUTSBvbiBQT1dF UjggYW5kIFBPV0VSOSBpbiBjb21wYXQgbW9kZSAoVk0pIGlzIHN1cHBvcnRlZCBieSB0aGUgSlZN LgorICAgICAgIC8vIFRNIG9uIFBPV0VSOSBERDIuMSBOViAoYmFyZW1ldGFsKSBpcyBub3Qgc3Vw cG9ydGVkIGJ5IHRoZSBKVk0gKFRNIG9uCisgICAgICAgLy8gUE9XRVI5IEREMi4xIE5WIGhhcyBh IGZldyBpc3N1ZXMgdGhhdCBuZWVkIGEgY291cGxlIG9mIGZpcm13YXJlCistLS0gb2xkL3NyYy9o b3RzcG90L29zX2NwdS9saW51eF9wcGMvb3NfbGludXhfcHBjLmNwcAorKysrIG5ldy9zcmMvaG90 c3BvdC9vc19jcHUvbGludXhfcHBjL29zX2xpbnV4X3BwYy5jcHAKK0BAIC0xMDgsMjQgKzEwOCw0 MiBAQAorICAgLy8gLSBpZiB1YyB3YXMgZmlsbGVkIGJ5IGdldGNvbnRleHQoKSwgaXQgaXMgdW5k ZWZpbmVkIC0gZ2V0Y29udGV4dCgpIGRvZXMgbm90IGZpbGwKKyAgIC8vICAgaXQgYmVjYXVzZSB0 aGUgdm9sYXRpbGUgcmVnaXN0ZXJzIGFyZSBub3QgbmVlZGVkIHRvIG1ha2Ugc2V0Y29udGV4dCgp IHdvcmsuCisgICAvLyAgIEhvcGVmdWxseSBpdCB3YXMgemVybydkIG91dCBiZWZvcmVoYW5kLgor KyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgZ3VhcmFu dGVlKHVjLT51Y19tY29udGV4dC5yZWdzICE9IE5VTEwsICJvbmx5IHVzZSB1Y29udGV4dF9nZXRf cGMgaW4gc2lnYWN0aW9uIGNvbnRleHQiKTsKKyAgIHJldHVybiAoYWRkcmVzcyl1Yy0+dWNfbWNv bnRleHQucmVncy0+bmlwOworKyNlbHNlIC8vIE11c2wKKysgIGd1YXJhbnRlZSh1Yy0+dWNfbWNv bnRleHQuZ3BfcmVncyAhPSBOVUxMLCAib25seSB1c2UgdWNvbnRleHRfZ2V0X3BjIGluIHNpZ2Fj dGlvbiBjb250ZXh0Iik7CisrICByZXR1cm4gKGFkZHJlc3MpdWMtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMzJdOworKyNlbmRpZgorIH0KKworIC8vIG1vZGlmeSBQQyBpbiB1Y29udGV4dC4KKyAvLyBO b3RlOiBPbmx5IHVzZSB0aGlzIGZvciBhbiB1Y29udGV4dCBoYW5kZWQgZG93biB0byBhIHNpZ25h bCBoYW5kbGVyLiBTZWUgY29tbWVudAorIC8vIGluIHVjb250ZXh0X2dldF9wYy4KKyB2b2lkIG9z OjpMaW51eDo6dWNvbnRleHRfc2V0X3BjKHVjb250ZXh0X3QgKiB1YywgYWRkcmVzcyBwYykgewor KyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgZ3VhcmFu dGVlKHVjLT51Y19tY29udGV4dC5yZWdzICE9IE5VTEwsICJvbmx5IHVzZSB1Y29udGV4dF9zZXRf cGMgaW4gc2lnYWN0aW9uIGNvbnRleHQiKTsKKyAgIHVjLT51Y19tY29udGV4dC5yZWdzLT5uaXAg PSAodW5zaWduZWQgbG9uZylwYzsKKysjZWxzZSAvLyBNdXNsCisrICBndWFyYW50ZWUodWMtPnVj X21jb250ZXh0LmdwX3JlZ3MgIT0gTlVMTCwgIm9ubHkgdXNlIHVjb250ZXh0X3NldF9wYyBpbiBz aWdhY3Rpb24gY29udGV4dCIpOworKyAgdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzJdID0gKHVu c2lnbmVkIGxvbmcpcGM7CisrI2VuZGlmCisgfQorCisgc3RhdGljIGFkZHJlc3MgdWNvbnRleHRf Z2V0X2xyKGNvbnN0IHVjb250ZXh0X3QgKiB1YykgeworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykg fHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgcmV0dXJuIChhZGRyZXNzKXVjLT51Y19tY29udGV4 dC5yZWdzLT5saW5rOworKyNlbHNlIC8vIE11c2wKKysgIHJldHVybiAoYWRkcmVzcyl1Yy0+dWNf bWNvbnRleHQuZ3BfcmVnc1szNl07CisrI2VuZGlmCisgfQorCisgaW50cHRyX3QqIG9zOjpMaW51 eDo6dWNvbnRleHRfZ2V0X3NwKGNvbnN0IHVjb250ZXh0X3QgKiB1YykgeworKyNpZiBkZWZpbmVk KF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgcmV0dXJuIChpbnRwdHJfdCop dWMtPnVjX21jb250ZXh0LnJlZ3MtPmdwclsxLypSRUdfU1AqL107CisrI2Vsc2UgLy8gTXVzbAor KyAgcmV0dXJuIChpbnRwdHJfdCopdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbMS8qUkVHX1NQKi9d OworKyNlbmRpZgorIH0KKworIGludHB0cl90KiBvczo6TGludXg6OnVjb250ZXh0X2dldF9mcChj b25zdCB1Y29udGV4dF90ICogdWMpIHsKK0BAIC0xMzMsNyArMTUxLDExIEBACisgfQorCisgc3Rh dGljIHVuc2lnbmVkIGxvbmcgdWNvbnRleHRfZ2V0X3RyYXAoY29uc3QgdWNvbnRleHRfdCAqIHVj KSB7CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICBy ZXR1cm4gdWMtPnVjX21jb250ZXh0LnJlZ3MtPnRyYXA7CisrI2Vsc2UgLy8gTXVzbAorKyAgcmV0 dXJuIHVjLT51Y19tY29udGV4dC5ncF9yZWdzWzQwXTsKKysjZW5kaWYKKyB9CisKKyBFeHRlbmRl ZFBDIG9zOjpmZXRjaF9mcmFtZV9mcm9tX2NvbnRleHQoY29uc3Qgdm9pZCogdWNWb2lkLAorQEAg LTI1OSw3ICsyODEsMTMgQEAKKyAgICAgLy8gMy4yLjEgIk1hY2hpbmUgU3RhdGUgUmVnaXN0ZXIi KSwgaG93ZXZlciBub3RlIHRoYXQgSVNBIG5vdGF0aW9uIGZvciBiaXQKKyAgICAgLy8gbnVtYmVy aW5nIGlzIE1TQiAwLCBzbyBmb3Igbm9ybWFsIGJpdCBudW1iZXJpbmcgKExTQiAwKSB0aGV5IGNv bWUgdG8gYmUKKyAgICAgLy8gYml0cyAzMyBhbmQgMzQuIEl0J3Mgbm90IHJlbGF0ZWQgdG8gZW5k aWFubmVzcywganVzdCBhIG5vdGF0aW9uIG1hdHRlci4KKysjaWYgZGVmaW5lZChfX0dMSUJDX18p IHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgICAgaWYgKHNlY29uZF91Yy0+dWNfbWNvbnRleHQu cmVncy0+bXNyICYgMHg2MDAwMDAwMDApIHsKKysjZWxzZSAvLyBNdXNsCisrICAgIC8vIHdoeSAz Mz8KKysgICAgLy8gc2VlIGNvbW1lbnQgZm9yIGdsaWJjIE5HUkVHOiAicjAtcjMxLCBuaXAsIG1z ciwgbHIsIGV0Yy4iCisrICAgIGlmIChzZWNvbmRfdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzNd ICYgMHg2MDAwMDAwMDApIHsKKysjZW5kaWYKKyAgICAgICBpZiAoVHJhY2VUcmFwcykgeworICAg ICAgICAgdHR5LT5wcmludF9jcigiY2F1Z2h0IHNpZ25hbCBpbiB0cmFuc2FjdGlvbiwgIgorICAg ICAgICAgICAgICAgICAgICAgICAgICJpZ25vcmluZyB0byBqdW1wIHRvIGFib3J0IGhhbmRsZXIi KTsKK0BAIC01ODYsNiArNjE0LDcgQEAKKyAgIGNvbnN0IHVjb250ZXh0X3QqIHVjID0gKGNvbnN0 IHVjb250ZXh0X3QqKWNvbnRleHQ7CisKKyAgIHN0LT5wcmludF9jcigiUmVnaXN0ZXJzOiIpOwor KyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgc3QtPnBy aW50KCJwYyA9IiBJTlRQVFJfRk9STUFUICIgICIsIHVjLT51Y19tY29udGV4dC5yZWdzLT5uaXAp OworICAgc3QtPnByaW50KCJsciA9IiBJTlRQVFJfRk9STUFUICIgICIsIHVjLT51Y19tY29udGV4 dC5yZWdzLT5saW5rKTsKKyAgIHN0LT5wcmludCgiY3RyPSIgSU5UUFRSX0ZPUk1BVCAiICAiLCB1 Yy0+dWNfbWNvbnRleHQucmVncy0+Y3RyKTsKK0BAIC01OTQsOCArNjIzLDE4IEBACisgICAgIHN0 LT5wcmludCgiciUtMmQ9IiBJTlRQVFJfRk9STUFUICIgICIsIGksIHVjLT51Y19tY29udGV4dC5y ZWdzLT5ncHJbaV0pOworICAgICBpZiAoaSAlIDMgPT0gMikgc3QtPmNyKCk7CisgICB9CisrI2Vs c2UgLy8gTXVzbAorKyAgc3QtPnByaW50KCJwYyA9IiBJTlRQVFJfRk9STUFUICIgICIsIHVjLT51 Y19tY29udGV4dC5ncF9yZWdzWzMyXSk7CisrICBzdC0+cHJpbnQoImxyID0iIElOVFBUUl9GT1JN QVQgIiAgIiwgdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzZdKTsKKysgIHN0LT5wcmludCgiY3Ry PSIgSU5UUFRSX0ZPUk1BVCAiICAiLCB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1szNV0pOworICAg c3QtPmNyKCk7CisrICBmb3IgKGludCBpID0gMDsgaSA8IDMyOyBpKyspIHsKKysgICAgc3QtPnBy aW50KCJyJS0yZD0iIElOVFBUUl9GT1JNQVQgIiAgIiwgaSwgdWMtPnVjX21jb250ZXh0LmdwX3Jl Z3NbaV0pOworKyAgICBpZiAoaSAlIDMgPT0gMikgc3QtPmNyKCk7CisrICB9CisrI2VuZGlmCisg ICBzdC0+Y3IoKTsKKysgIHN0LT5jcigpOworCisgICBpbnRwdHJfdCAqc3AgPSAoaW50cHRyX3Qg Kilvczo6TGludXg6OnVjb250ZXh0X2dldF9zcCh1Yyk7CisgICBzdC0+cHJpbnRfY3IoIlRvcCBv ZiBTdGFjazogKHNwPSIgUFRSX0ZPUk1BVCAiKSIsIHAyaShzcCkpOworQEAgLTYxOCwxMiArNjU3 LDIyIEBACisgICBzdC0+cHJpbnRfY3IoIlJlZ2lzdGVyIHRvIG1lbW9yeSBtYXBwaW5nOiIpOwor ICAgc3QtPmNyKCk7CisKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJ QkNfXykKKyAgIHN0LT5wcmludCgicGMgPSIpOyBwcmludF9sb2NhdGlvbihzdCwgKGludHB0cl90 KXVjLT51Y19tY29udGV4dC5yZWdzLT5uaXApOworICAgc3QtPnByaW50KCJsciA9Iik7IHByaW50 X2xvY2F0aW9uKHN0LCAoaW50cHRyX3QpdWMtPnVjX21jb250ZXh0LnJlZ3MtPmxpbmspOworICAg c3QtPnByaW50KCJjdHIgPSIpOyBwcmludF9sb2NhdGlvbihzdCwgKGludHB0cl90KXVjLT51Y19t Y29udGV4dC5yZWdzLT5jdHIpOworKyNlbHNlIC8vIE11c2wKKysgIHN0LT5wcmludCgicGMgPSIp OyBwcmludF9sb2NhdGlvbihzdCwgKGludHB0cl90KXVjLT51Y19tY29udGV4dC5ncF9yZWdzWzMy XSk7CisrICBzdC0+cHJpbnQoImxyID0iKTsgcHJpbnRfbG9jYXRpb24oc3QsIChpbnRwdHJfdCl1 Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1szNl0pOworKyAgc3QtPnByaW50KCJjdHIgPSIpOyBwcmlu dF9sb2NhdGlvbihzdCwgKGludHB0cl90KXVjLT51Y19tY29udGV4dC5ncF9yZWdzWzM1XSk7Cisr I2VuZGlmCisgICBmb3IgKGludCBpID0gMDsgaSA8IDMyOyBpKyspIHsKKyAgICAgc3QtPnByaW50 KCJyJS0yZD0iLCBpKTsKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJ QkNfXykKKyAgICAgcHJpbnRfbG9jYXRpb24oc3QsIHVjLT51Y19tY29udGV4dC5yZWdzLT5ncHJb aV0pOworKyNlbHNlIC8vIE11c2wKKysgICAgcHJpbnRfbG9jYXRpb24oc3QsIHVjLT51Y19tY29u dGV4dC5ncF9yZWdzW2ldKTsKKysjZW5kaWYKKyAgIH0KKyAgIHN0LT5jcigpOworIH0KKy0tLSBv bGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy90aHJlYWRfbGludXhfcHBjLmNwcAorKysr IG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3BwCitA QCAtNTYsOCArNTYsMTMgQEAKKyAgIC8vIGlmIHdlIHdlcmUgcnVubmluZyBKYXZhIGNvZGUgd2hl biBTSUdQUk9GIGNhbWUgaW4uCisgICBpZiAoaXNJbkphdmEpIHsKKyAgICAgdWNvbnRleHRfdCog dWMgPSAodWNvbnRleHRfdCopIHVjb250ZXh0OworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwg ZGVmaW5lZChfX1VDTElCQ19fKQorICAgICBmcmFtZSByZXRfZnJhbWUoKGludHB0cl90Kil1Yy0+ dWNfbWNvbnRleHQucmVncy0+Z3ByWzEvKlJFR19TUCovXSwKKyAgICAgICAgICAgICAgICAgICAg ICAoYWRkcmVzcyl1Yy0+dWNfbWNvbnRleHQucmVncy0+bmlwKTsKKysjZWxzZSAvLyBNdXNsCisr ICAgIGZyYW1lIHJldF9mcmFtZSgoaW50cHRyX3QqKXVjLT51Y19tY29udGV4dC5ncF9yZWdzWzEv KlJFR19TUCovXSwKKysgICAgICAgICAgICAgICAgICAgICAoYWRkcmVzcyl1Yy0+dWNfbWNvbnRl eHQuZ3BfcmVnc1szMl0pOworKyNlbmRpZgorCisgICAgIGlmIChyZXRfZnJhbWUucGMoKSA9PSBO VUxMKSB7CisgICAgICAgLy8gdWNvbnRleHQgd2Fzbid0IHVzZWZ1bAorQEAgLTY5LDcgKzc0LDEx IEBACisgICAgICAgIGlmICghKChNZXRob2QqKShpc3RhdGUtPm1ldGhvZCkpLT5pc19tZXRhc3Bh Y2Vfb2JqZWN0KCkpIHsKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKysjaWYg ZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgICAgICAgdWludDY0 X3QgcmVnX2JjcCA9IHVjLT51Y19tY29udGV4dC5yZWdzLT5ncHJbMTQvKlIxNF9iY3AqL107Cisr I2Vsc2UgLy8gTXVzbAorKyAgICAgICB1aW50NjRfdCByZWdfYmNwID0gdWMtPnVjX21jb250ZXh0 LmdwX3JlZ3NbMTQvKlIxNF9iY3AqL107CisrI2VuZGlmCisgICAgICAgIHVpbnQ2NF90IGlzdGF0 ZV9iY3AgPSBpc3RhdGUtPmJjcDsKKyAgICAgICAgdWludDY0X3QgY29kZV9zdGFydCA9ICh1aW50 NjRfdCkoKChNZXRob2QqKShpc3RhdGUtPm1ldGhvZCkpLT5jb2RlX2Jhc2UoKSk7CisgICAgICAg IHVpbnQ2NF90IGNvZGVfZW5kID0gKHVpbnQ2NF90KSgoKE1ldGhvZCopaXN0YXRlLT5tZXRob2Qp LT5jb2RlX2Jhc2UoKSArICgoTWV0aG9kKilpc3RhdGUtPm1ldGhvZCktPmNvZGVfc2l6ZSgpKTsK ZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBh dGNoIGIvc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjljNjRjMTg5MDM2Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0 Y2gKQEAgLTAsMCArMSwxMzAgQEAKK1BhdGNoZXMgZm9yIG11c2wgdGFrZW4gZnJvbSBBbHBpbmUg bGludXg6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04YTFh ZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2MjBlN2UyNGM2MjgwCistLS0gb2xkL3NyYy9ob3RzcG90 L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9v c19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKK0BAIC05MCw2ICs5MCwxMjYgQEAKKyAj ZGVmaW5lIFNQRUxMX1JFR19GUCAiZWJwIgorICNlbmRpZiAvLyBBTUQ2NAorCisrLy8gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CisrLy8gVGFrZW4gZnJvbSBnbGliYyAyLjI4CisrLy8gc291cmNlOiBo dHRwczovL3NvdXJjZXdhcmUub3JnL2dpdC8/cD1nbGliYy5naXQ7YT1ibG9iO2Y9c3lzZGVwcy94 ODYvZnB1X2NvbnRyb2wuaDtoPTRjYjk4YzU2NzliMjg5N2ZmNGU1ODI2ZDIyOGNiYTZiZTU4OWUy NGQ7aGI9M2MwM2JhY2EzN2ZkY2I1MmMzODgxZTY1M2NhMzkyYmJhN2E5OWMyYgorKy8vID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorKyNpZm5kZWYgQU1ENjQKKysvKiBGUFUgY29udHJvbCB3b3JkIGJp dHMuICB4ODYgdmVyc2lvbi4KKysgICBDb3B5cmlnaHQgKEMpIDE5OTMtMjAxOCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMg TGlicmFyeS4KKysgICBDb250cmlidXRlZCBieSBPbGFmIEZsZWJiZS4KKysKKysgICBUaGUgR05V IEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCisrICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJh cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysg ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRo IHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorKyAgIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4gICovCisrCisrI2lmbmRlZiBfRlBVX0NPTlRST0xfSAorKyNkZWZpbmUgX0ZQ VV9DT05UUk9MX0gJMQorKworKy8qIE5vdGUgdGhhdCB0aGlzIGZpbGUgc2V0cyBvbiB4ODYtNjQg b25seSB0aGUgeDg3IEZQVSwgaXQgZG9lcyBub3QKKysgICB0b3VjaCB0aGUgU1NFIHVuaXQuICAq LworKworKy8qIEhlcmUgaXMgdGhlIGRpcnR5IHBhcnQuIFNldCB1cCB5b3VyIDM4NyB0aHJvdWdo IHRoZSBjb250cm9sIHdvcmQKKysgKiAoY3cpIHJlZ2lzdGVyLgorKyAqCisrICogICAgIDE1LTEz ICAgIDEyICAxMS0xMCAgOS04ICAgICA3LTYgICAgIDUgICAgNCAgICAzICAgIDIgICAgMSAgICAw CisrICogfCByZXNlcnZlZCB8IElDIHwgUkMgIHwgUEMgfCByZXNlcnZlZCB8IFBNIHwgVU0gfCBP TSB8IFpNIHwgRE0gfCBJTQorKyAqCisrICogSU06IEludmFsaWQgb3BlcmF0aW9uIG1hc2sKKysg KiBETTogRGVub3JtYWxpemVkIG9wZXJhbmQgbWFzaworKyAqIFpNOiBaZXJvLWRpdmlkZSBtYXNr CisrICogT006IE92ZXJmbG93IG1hc2sKKysgKiBVTTogVW5kZXJmbG93IG1hc2sKKysgKiBQTTog UHJlY2lzaW9uIChpbmV4YWN0IHJlc3VsdCkgbWFzaworKyAqCisrICogTWFzayBiaXQgaXMgMSBt ZWFucyBubyBpbnRlcnJ1cHQuCisrICoKKysgKiBQQzogUHJlY2lzaW9uIGNvbnRyb2wKKysgKiAx MSAtIHJvdW5kIHRvIGV4dGVuZGVkIHByZWNpc2lvbgorKyAqIDEwIC0gcm91bmQgdG8gZG91Ymxl IHByZWNpc2lvbgorKyAqIDAwIC0gcm91bmQgdG8gc2luZ2xlIHByZWNpc2lvbgorKyAqCisrICog UkM6IFJvdW5kaW5nIGNvbnRyb2wKKysgKiAwMCAtIHJvdW5kaW5nIHRvIG5lYXJlc3QKKysgKiAw MSAtIHJvdW5kaW5nIGRvd24gKHRvd2FyZCAtIGluZmluaXR5KQorKyAqIDEwIC0gcm91bmRpbmcg dXAgKHRvd2FyZCArIGluZmluaXR5KQorKyAqIDExIC0gcm91bmRpbmcgdG93YXJkIHplcm8KKysg KgorKyAqIElDOiBJbmZpbml0eSBjb250cm9sCisrICogVGhhdCBpcyBmb3IgODA4NyBhbmQgODAy ODcgb25seS4KKysgKgorKyAqIFRoZSBoYXJkd2FyZSBkZWZhdWx0IGlzIDB4MDM3ZiB3aGljaCB3 ZSB1c2UuCisrICovCisrCisrI2luY2x1ZGUgPGZlYXR1cmVzLmg+CisrCisrLyogbWFza2luZyBv ZiBpbnRlcnJ1cHRzICovCisrI2RlZmluZSBfRlBVX01BU0tfSU0gIDB4MDEKKysjZGVmaW5lIF9G UFVfTUFTS19ETSAgMHgwMgorKyNkZWZpbmUgX0ZQVV9NQVNLX1pNICAweDA0CisrI2RlZmluZSBf RlBVX01BU0tfT00gIDB4MDgKKysjZGVmaW5lIF9GUFVfTUFTS19VTSAgMHgxMAorKyNkZWZpbmUg X0ZQVV9NQVNLX1BNICAweDIwCisrCisrLyogcHJlY2lzaW9uIGNvbnRyb2wgKi8KKysjZGVmaW5l IF9GUFVfRVhURU5ERUQgMHgzMDAJLyogbGlibSByZXF1aXJlcyBkb3VibGUgZXh0ZW5kZWQgcHJl Y2lzaW9uLiAgKi8KKysjZGVmaW5lIF9GUFVfRE9VQkxFICAgMHgyMDAKKysjZGVmaW5lIF9GUFVf U0lOR0xFICAgMHgwCisrCisrLyogcm91bmRpbmcgY29udHJvbCAqLworKyNkZWZpbmUgX0ZQVV9S Q19ORUFSRVNUIDB4MCAgICAvKiBSRUNPTU1FTkRFRCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ET1dO ICAgIDB4NDAwCisrI2RlZmluZSBfRlBVX1JDX1VQICAgICAgMHg4MDAKKysjZGVmaW5lIF9GUFVf UkNfWkVSTyAgICAweEMwMAorKworKyNkZWZpbmUgX0ZQVV9SRVNFUlZFRCAweEYwQzAgIC8qIFJl c2VydmVkIGJpdHMgaW4gY3cgKi8KKysKKysKKysvKiBUaGUgZmRsaWJtIGNvZGUgcmVxdWlyZXMg c3RyaWN0IElFRUUgZG91YmxlIHByZWNpc2lvbiBhcml0aG1ldGljLAorKyAgIGFuZCBubyBpbnRl cnJ1cHRzIGZvciBleGNlcHRpb25zLCByb3VuZGluZyB0byBuZWFyZXN0LiAgKi8KKysKKysjZGVm aW5lIF9GUFVfREVGQVVMVCAgMHgwMzdmCisrCisrLyogSUVFRTogIHNhbWUgYXMgYWJvdmUuICAq LworKyNkZWZpbmUgX0ZQVV9JRUVFICAgICAweDAzN2YKKysKKysvKiBUeXBlIG9mIHRoZSBjb250 cm9sIHdvcmQuICAqLworK3R5cGVkZWYgdW5zaWduZWQgaW50IGZwdV9jb250cm9sX3QgX19hdHRy aWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJX18pKSk7CisrCisrLyogTWFjcm9zIGZvciBhY2Nlc3Np bmcgdGhlIGhhcmR3YXJlIGNvbnRyb2wgd29yZC4gICIqJiIgaXMgdXNlZCB0bworKyAgIHdvcmsg YXJvdW5kIGEgYnVnIGluIG9sZGVyIHZlcnNpb25zIG9mIEdDQy4gIF9fdm9sYXRpbGVfXyBpcyB1 c2VkCisrICAgdG8gc3VwcG9ydCBjb21iaW5hdGlvbiBvZiB3cml0aW5nIHRoZSBjb250cm9sIHJl Z2lzdGVyIGFuZCByZWFkaW5nCisrICAgaXQgYmFjay4gIFdpdGhvdXQgX192b2xhdGlsZV9fLCB0 aGUgb2xkIHZhbHVlIG1heSBiZSB1c2VkIGZvciByZWFkaW5nCisrICAgYmFjayB1bmRlciBjb21w aWxlciBvcHRpbWl6YXRpb24uCisrCisrICAgTm90ZSB0aGF0IHRoZSB1c2Ugb2YgdGhlc2UgbWFj cm9zIGlzIG5vdCBzdWZmaWNpZW50IGFueW1vcmUgd2l0aAorKyAgIHJlY2VudCBoYXJkd2FyZSBu b3Igb24geDg2LTY0LiAgU29tZSBmbG9hdGluZyBwb2ludCBvcGVyYXRpb25zIGFyZQorKyAgIGV4 ZWN1dGVkIGluIHRoZSBTU0UvU1NFMiBlbmdpbmVzIHdoaWNoIGhhdmUgdGhlaXIgb3duIGNvbnRy b2wgYW5kCisrICAgc3RhdHVzIHJlZ2lzdGVyLiAgKi8KKysjZGVmaW5lIF9GUFVfR0VUQ1coY3cp IF9fYXNtX18gX192b2xhdGlsZV9fICgiZm5zdGN3ICUwIiA6ICI9bSIgKComY3cpKQorKyNkZWZp bmUgX0ZQVV9TRVRDVyhjdykgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJmbGRjdyAlMCIgOiA6ICJt IiAoKiZjdykpCisrCisrLyogRGVmYXVsdCBjb250cm9sIHdvcmQgc2V0IGF0IHN0YXJ0dXAuICAq LworK2V4dGVybiBmcHVfY29udHJvbF90IF9fZnB1X2NvbnRyb2w7CisrCisrI2VuZGlmCS8qIGZw dV9jb250cm9sLmggKi8KKysKKysjZW5kaWYgLy8gQU1ENjQKKysvLyA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKysKKyBhZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgI2lmZGVmIFNQ QVJDX1dPUktTCisgICByZWdpc3RlciB2b2lkICplc3A7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29w ZW5qZGstMTEvdGVtcGxhdGUgYi9zcmNwa2dzL29wZW5qZGstMTEvdGVtcGxhdGUKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBiMTViOGYzOWQzCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9vcGVuamRrLTExL3RlbXBsYXRlCkBAIC0wLDAgKzEsMTg2IEBACisjIFRl bXBsYXRlIGZpbGUgZm9yICdvcGVuamRrLTExJworX2phdmFfdmVyPTExCitfamF2YV9taW5fdmVy PTAKK19qYXZhX3NlY192ZXI9NAorX2pka191cGRhdGU9MTEKK19vcGVuamRrX3ZlcnNpb249Im9w ZW5qZGstJHtfamF2YV92ZXJ9IgorCisKK3BrZ25hbWU9b3Blbmpkay0xMQordmVyc2lvbj0iJHtf amF2YV92ZXJ9LiR7X2phdmFfbWluX3Zlcn0uJHtfamF2YV9zZWNfdmVyfSske19qZGtfdXBkYXRl fSIKK3JldmlzaW9uPTEKK3dya3NyYz0iamRrJHtfamF2YV92ZXJ9dS1qZGstJHt2ZXJzaW9ufSIK K2J1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2NvbmZpZ3VyZV9hcmdzPSIKKyAtLWRpc2FibGUt d2FybmluZ3MtYXMtZXJyb3JzCisgLS1wcmVmaXg9JHtYQlBTX0RFU1RESVJ9LyR7WEJQU19DUk9T U19UUklQTEVUfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0vdXNyL2xpYgorIC0tZW5hYmxlLXVubGlt aXRlZC1jcnlwdG8KKyAtLXdpdGgtemxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlianBlZz1zeXN0ZW0K KyAtLXdpdGgtZ2lmbGliPXN5c3RlbQorIC0td2l0aC1saWJwbmc9c3lzdGVtCisgLS13aXRoLWxj bXM9c3lzdGVtCisgLS13aXRoLWp0cmVnPW5vCisgLS13aXRoLXZlcnNpb24tYnVpbGQ9JHt2ZXJz aW9ufQorIC0td2l0aC12ZW5kb3ItbmFtZT0iVm9pZCIKKyAtLXdpdGgtdmVuZG9yLXVybD0iaHR0 cHM6Ly92b2lkbGludXgub3JnLyIKKyAtLXdpdGgtdmVuZG9yLWJ1Zy11cmw9Imh0dHBzOi8vZ2l0 aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzIgorIC0td2l0aC12ZW5kb3It dm0tYnVnLXVybD0iaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9p c3N1ZXMiCisgLS13aXRoLWJvb3QtamRrPS91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbiIKKwor bWFrZV9idWlsZF9hcmdzPSJpbWFnZXMgJCh2b3B0X2lmIGRvY3MgZG9jcykiCittYWtlX2NoZWNr X3RhcmdldD0idGVzdC1ob3RzcG90LWd0ZXN0IgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmln IGF1dG9tYWtlIGF1dG9jb25mIGNwaW8gdW56aXAgemlwIGNhLWNlcnRpZmljYXRlcworIGxpYnJl c3NsIHpsaWItZGV2ZWwiCittYWtlZGVwZW5kcz0ibGliWHJlbmRlci1kZXZlbCBsaWJYdHN0LWRl dmVsIGxpYlh0LWRldmVsIGxpYlhyYW5kci1kZXZlbAorIGdpZmxpYi1kZXZlbCBsaWJqcGVnLXR1 cmJvLWRldmVsIGN1cHMtZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgYWxzYS1saWItZGV2ZWwKKyBmb250 Y29uZmlnLWRldmVsIHpsaWItZGV2ZWwgbGNtczItZGV2ZWwiCitwcm92aWRlcz0iamF2YS1lbnZp cm9ubWVudC0ke3ZlcnNpb259XzEgamF2YS1ydW50aW1lIgorc2hvcnRfZGVzYz0iT3BlbkpESyBK YXZhIERldmVsb3BtZW50IEtpdCIKK21haW50YWluZXI9Ikt5bGUgTnVzYmF1bSA8a251c2JhdW0r dm9pZEBzZGYub3JnPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0 cDovL29wZW5qZGsuamF2YS5uZXQvIgorZGlzdGZpbGVzPSJodHRwczovL2hnLm9wZW5qZGsuamF2 YS5uZXQvamRrLXVwZGF0ZXMvamRrJHtfamF2YV92ZXJ9dS9hcmNoaXZlL2pkay0ke3ZlcnNpb259 LnRhci5neiIKK2NoZWNrc3VtPTI3MmFlYWIwYjY4MjYyZTI3MGI5ZTJmOWFhZTlhMzdhOTc5M2Ix MTA0MjhjOGQ5NmQ0ODZjMDk0Y2M2YTY0MjkKK3NobGliX3Byb3ZpZGVzPSJsaWJhd3Quc28gbGli YXd0X3hhd3Quc28gbGliamF2YS5zbyBsaWJqbGkuc28gbGlianZtLnNvIGxpYmphd3Quc28iCisK KyMgQnVpbGQgaXMgc3RpbGwgcGFyYWxsZWwsIGJ1dCBkb24ndCB1c2UgLWpOLgorZGlzYWJsZV9w YXJhbGxlbF9idWlsZD15ZXMKK2J1aWxkX29wdGlvbnM9ImRvY3MiCisKK2Nhc2UgIiRYQlBTX1RB UkdFVF9MSUJDIiBpbgorCWdsaWJjKSBidWlsZF9vcHRpb25zX2RlZmF1bHQrPSIgZG9jcyI7Owor ZXNhYworCitpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwlob3N0bWFrZWRlcGVuZHMrPSIg b3Blbmpkay0xMSIKKwljb25maWd1cmVfYXJncys9IiAtLXdpdGgtYm9vdC1qZGs9L3Vzci9saWIv anZtL29wZW5qZGstMTEiCitlbHNlCisJaG9zdG1ha2VkZXBlbmRzKz0iIG9wZW5qZGstMTEtYmlu IgorCWNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1ib290LWpkaz0vdXNyL2xpYi9qdm0vb3Blbmpk ay0xMS1iaW4iCitmaQorCithbHRlcm5hdGl2ZXM9IgorIGphdmE6L3Vzci9iaW4vamF2YTovdXNy L2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vamF2YQorIGphdmE6L3Vzci9iaW4vampzOi91c3IvbGli L2p2bS9vcGVuamRrLTExL2Jpbi9qanMKKyBqYXZhOi91c3IvYmluL2tleXRvb2w6L3Vzci9saWIv anZtL29wZW5qZGstMTEvYmluL2tleXRvb2wKKyBqYXZhOi91c3IvYmluL21rY2FjZXJ0czovdXNy L2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vbWtjYWNlcnRzCisgamF2YTovdXNyL2Jpbi9vcmJkOi91 c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9vcmJkCisgamF2YTovdXNyL2Jpbi9wYWNrMjAwOi91 c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9wYWNrMjAwCisgamF2YTovdXNyL2Jpbi9wb2xpY3l0 b29sOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9wb2xpY3l0b29sCisgamF2YTovdXNyL2Jp bi9ybWlkOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9ybWlkCisgamF2YTovdXNyL2Jpbi9y bWlyZWdpc3RyeTovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vcm1pcmVnaXN0cnkKKyBqYXZh Oi91c3IvYmluL3NlcnZlcnRvb2w6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL3NlcnZlcnRv b2wKKyBqYXZhOi91c3IvYmluL3RuYW1lc2VydjovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4v dG5hbWVzZXJ2CisgamF2YTovdXNyL2Jpbi91bnBhY2syMDA6L3Vzci9saWIvanZtL29wZW5qZGst MTEvYmluL3VucGFjazIwMAorCisgamRrOi91c3IvYmluL2FwcGxldHZpZXdlcjovdXNyL2xpYi9q dm0vb3Blbmpkay0xMS9iaW4vYXBwbGV0dmlld2VyCisgamRrOi91c3IvYmluL2V4dGNoZWNrOi91 c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9leHRjaGVjaworIGpkazovdXNyL2Jpbi9pZGxqOi91 c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9pZGxqCisgamRrOi91c3IvYmluL2phcjovdXNyL2xp Yi9qdm0vb3Blbmpkay0xMS9iaW4vamFyCisgamRrOi91c3IvYmluL2phcnNpZ25lcjovdXNyL2xp Yi9qdm0vb3Blbmpkay0xMS9iaW4vamFyc2lnbmVyCisgamRrOi91c3IvYmluL2phdmE6L3Vzci9s aWIvanZtL29wZW5qZGstMTEvYmluL2phdmEKKyBqZGs6L3Vzci9iaW4vamF2YS1ybWkuY2dpOi91 c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qYXZhLXJtaS5jZ2kKKyBqZGs6L3Vzci9iaW4vamF2 YWM6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2phdmFjCisgamRrOi91c3IvYmluL2phdmFk b2M6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2phdmFkb2MKKyBqZGs6L3Vzci9iaW4vamF2 YWg6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2phdmFoCisgamRrOi91c3IvYmluL2phdmFw Oi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qYXZhcAorIGpkazovdXNyL2Jpbi9qY21kOi91 c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qY21kCisgamRrOi91c3IvYmluL2pjb25zb2xlOi91 c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qY29uc29sZQorIGpkazovdXNyL2Jpbi9qZGI6L3Vz ci9saWIvanZtL29wZW5qZGstMTEvYmluL2pkYgorIGpkazovdXNyL2Jpbi9qZGVwczovdXNyL2xp Yi9qdm0vb3Blbmpkay0xMS9iaW4vamRlcHMKKyBqZGs6L3Vzci9iaW4vamhhdDovdXNyL2xpYi9q dm0vb3Blbmpkay0xMS9iaW4vamhhdAorIGpkazovdXNyL2Jpbi9qaW5mbzovdXNyL2xpYi9qdm0v b3Blbmpkay0xMS9iaW4vamluZm8KKyBqZGs6L3Vzci9iaW4vampzOi91c3IvbGliL2p2bS9vcGVu amRrLTExL2Jpbi9qanMKKyBqZGs6L3Vzci9iaW4vam1hcDovdXNyL2xpYi9qdm0vb3Blbmpkay0x MS9iaW4vam1hcAorIGpkazovdXNyL2Jpbi9qcHM6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmlu L2pwcworIGpkazovdXNyL2Jpbi9qcnVuc2NyaXB0Oi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jp bi9qcnVuc2NyaXB0CisgamRrOi91c3IvYmluL2pzYWRlYnVnZDovdXNyL2xpYi9qdm0vb3Blbmpk ay0xMS9iaW4vanNhZGVidWdkCisgamRrOi91c3IvYmluL2pzdGFjazovdXNyL2xpYi9qdm0vb3Bl bmpkay0xMS9iaW4vanN0YWNrCisgamRrOi91c3IvYmluL2pzdGF0Oi91c3IvbGliL2p2bS9vcGVu amRrLTExL2Jpbi9qc3RhdAorIGpkazovdXNyL2Jpbi9qc3RhdGQ6L3Vzci9saWIvanZtL29wZW5q ZGstMTEvYmluL2pzdGF0ZAorIGpkazovdXNyL2Jpbi9rZXl0b29sOi91c3IvbGliL2p2bS9vcGVu amRrLTExL2Jpbi9rZXl0b29sCisgamRrOi91c3IvYmluL25hdGl2ZTJhc2NpaTovdXNyL2xpYi9q dm0vb3Blbmpkay0xMS9iaW4vbmF0aXZlMmFzY2lpCisgamRrOi91c3IvYmluL29yYmQ6L3Vzci9s aWIvanZtL29wZW5qZGstMTEvYmluL29yYmQKKyBqZGs6L3Vzci9iaW4vcGFjazIwMDovdXNyL2xp Yi9qdm0vb3Blbmpkay0xMS9iaW4vcGFjazIwMAorIGpkazovdXNyL2Jpbi9wb2xpY3l0b29sOi91 c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9wb2xpY3l0b29sCisgamRrOi91c3IvYmluL3JtaWM6 L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL3JtaWMKKyBqZGs6L3Vzci9iaW4vcm1pZDovdXNy L2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vcm1pZAorIGpkazovdXNyL2Jpbi9ybWlyZWdpc3RyeTov dXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vcm1pcmVnaXN0cnkKKyBqZGs6L3Vzci9iaW4vc2No ZW1hZ2VuOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9zY2hlbWFnZW4KKyBqZGs6L3Vzci9i aW4vc2VyaWFsdmVyOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9zZXJpYWx2ZXIKKyBqZGs6 L3Vzci9iaW4vc2VydmVydG9vbDovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vc2VydmVydG9v bAorIGpkazovdXNyL2Jpbi90bmFtZXNlcnY6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL3Ru YW1lc2VydgorIGpkazovdXNyL2Jpbi91bnBhY2syMDA6L3Vzci9saWIvanZtL29wZW5qZGstMTEv YmluL3VucGFjazIwMAorIGpkazovdXNyL2Jpbi93c2dlbjovdXNyL2xpYi9qdm0vb3Blbmpkay0x MS9iaW4vd3NnZW4KKyBqZGs6L3Vzci9iaW4vd3NpbXBvcnQ6L3Vzci9saWIvanZtL29wZW5qZGst MTEvYmluL3dzaW1wb3J0CisgamRrOi91c3IvYmluL3hqYzovdXNyL2xpYi9qdm0vb3Blbmpkay0x MS9iaW4veGpjCisiCisKK3Bvc3RfZXh0cmFjdCgpIHsKKwljaG1vZCAreCBjb25maWd1cmUKKwlp ZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCQlybSAtciBzcmMvamRr LmhvdHNwb3QuYWdlbnQKKwlmaQorfQorCitwb3N0X3BhdGNoKCkgeworCWlmIFsgIiRYQlBTX1RB UkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCWZvciBmIGluICIke0ZJTEVTRElSfSIvbXVz bF9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQllY2hvICJBcHBseWluZyAkZiIKKwkJCXBhdGNoIC1O cDEgLWkgIiRmIgorCQlkb25lCisJZmkKK30KKworZG9fY29uZmlndXJlKCkgeworCUNGTEFHUz0k e0NGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKwlDWFhGTEFHUz0ke0NYWEZMQUdTLy1EX0ZP UlRJRllfU09VUkNFPTIvfQorCWNvbmZpZ3VyZV9hcmdzPSR7Y29uZmlndXJlX2FyZ3MvLS13aXRo LWxpYnRvb2wtc3lzcm9vdD1cL3VzclwvW2EtejAtOV0qLWxpbnV4LVthLXpdKi99CisJaWYgWyAi JFhCUFNfQ0NBQ0hFIiBdICYmIFsgLXogIiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCQljb25maWd1 cmVfYXJncys9IiAtLWVuYWJsZS1jY2FjaGUiCisJCUNDPSIvdXNyL2Jpbi9jYyIKKwkJQ1hYPSIv dXNyL2Jpbi9jKysiCisJZmkKKwkuL2NvbmZpZ3VyZSAke2NvbmZpZ3VyZV9hcmdzfSAtLXdpdGgt ZXh0cmEtY2ZsYWdzPSIkQ0ZMQUdTIiAtLXdpdGgtZXh0cmEtY3h4ZmxhZ3M9IiRDWFhGTEFHUyIg LS13aXRoLWV4dHJhLWxkZmxhZ3M9IiRMREZMQUdTIgorfQorCitwb3N0X2luc3RhbGwoKSB7CisJ dm1rZGlyIC91c3IvbGliL2p2bQorCW12ICR7REVTVERJUn0vdXNyL2xpYi9qdm0vb3Blbmpkay0k e19qYXZhX3Zlcn0uJHtfamF2YV9taW5fdmVyfS4ke19qYXZhX3NlY192ZXJ9LWludGVybmFsICR7 REVTVERJUn0vdXNyL2xpYi9qdm0vb3Blbmpkay0ke19qYXZhX3Zlcn0KKwlybSAtcmYgJHtERVNU RElSfS91c3IvbGliL2JpbgorCXZpbnN0YWxsICR7RklMRVNESVJ9L21rY2FjZXJ0cyA3NTUgdXNy L2xpYi9qdm0vJF9vcGVuamRrX3ZlcnNpb24vYmluCisJdm1rZGlyIHVzci9saWIvanZtLyRfb3Bl bmpka192ZXJzaW9uL2xpYi9zZWN1cml0eQorCXNoICR7RklMRVNESVJ9L21rY2FjZXJ0cyBcCisJ CS1kICIvdXNyL3NoYXJlL2NhLWNlcnRpZmljYXRlcy8iIFwKKwkJLXMgIi91c3IvYmluL29wZW5z c2wiICBcCisJCS1rICIke0RFU1RESVJ9L3Vzci9saWIvanZtLyRfb3Blbmpka192ZXJzaW9uL2Jp bi9rZXl0b29sIiBcCisJCS1vICIke0RFU1RESVJ9L3Vzci9saWIvanZtLyRfb3Blbmpka192ZXJz aW9uL2xpYi9zZWN1cml0eS9jYWNlcnRzIgorCXZsaWNlbnNlIEFTU0VNQkxZX0VYQ0VQVElPTgor CXZsaWNlbnNlIExJQ0VOU0UKK30KKworb3Blbmpkay0xMS1kb2NfcGFja2FnZSgpIHsKKwlub3N0 cmlwPXllcworCW5vdmVyaWZ5cmRlcHM9eWVzCisJbm9zaGxpYnByb3ZpZGVzPXllcworCXNob3J0 X2Rlc2MrPSIgLS0gZG9jdW1lbnRhdGlvbiIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJY2QgJHt3cmtz cmN9CisJCWlmIFsgIiRidWlsZF9vcHRpb25fZG9jcyIgXTsgdGhlbgorCQkJdm1rZGlyIHVzci9z aGFyZS9kb2Mvb3Blbmpkay0xMQorCQkJY3AgLWEgYnVpbGQvbGludXgtKi9pbWFnZXMvZG9jcy8q ICR7UEtHREVTVERJUn0vdXNyL3NoYXJlL2RvYy9vcGVuamRrLTExCisJCWZpCisJCXZtb3ZlIHVz ci9saWIvanZtL29wZW5qZGstMTEvbWFuL21hbjEvCisJfQorfQorCitvcGVuamRrLTExLXNyY19w YWNrYWdlKCkgeworCW5vc3RyaXA9eWVzCisJbm92ZXJpZnlyZGVwcz15ZXMKKwlub3NobGlicHJv dmlkZXM9eWVzCisJc2hvcnRfZGVzYys9IiAtLSBzb3VyY2VzIgorCXBrZ19pbnN0YWxsKCkgewor CQl2bW92ZSAidXNyL2xpYi9qdm0vb3Blbmpkay0xMS9saWIvc3JjLnppcCIKKwl9Cit9Cg== --===============6743316374433745116==--