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 53f7d9f8 for ; Wed, 4 Sep 2019 21:03:39 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============3501939637853047488==" 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 23:03:38 +0200 Message-ID: <20190904210338.cLfaI1uhV67Ymf9GfNDNL_LaZ1CdMDT0OCRXehIChqU@z> GitHub notification mails are now in MIME to allow UTF8. --===============3501939637853047488== 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 --===============3501939637853047488== 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 LzNdIE5ldyBwYWNrYWdlOiBvcGVuamRrLTExLWJpbi0xMSsyOAoKLS0tCiBzcmNwa2dzL29wZW5q 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 LTExLWJpbgorfQoKRnJvbSBmYjViZjc0NzkwM2U3MmNlMDZlMjVlNjNkYTg4ZTgxZjA4ODAwN2Fk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLeWxlIE51c2JhdW0gPGt5bGVudXNiYXVt QGdyYW51bGFyLmFnPgpEYXRlOiBXZWQsIDQgU2VwIDIwMTkgMTU6MDU6MjYgLTA1MDAKU3ViamVj dDogW1BBVENIIDIvM10gTmV3IHBhY2thZ2U6IG1ha2UtY2EtMS40CgotLS0KIHNyY3BrZ3MvbWFr ZS1jYS9wYXRjaGVzL2FsbG93X2Rlc3RkaXIucGF0Y2ggfCA2MyArKysrKysrKysrKysrKysrKysr KysKIHNyY3BrZ3MvbWFrZS1jYS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAxMyArKysr KwogMiBmaWxlcyBjaGFuZ2VkLCA3NiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9tYWtlLWNhL3BhdGNoZXMvYWxsb3dfZGVzdGRpci5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbWFrZS1jYS90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbWFr ZS1jYS9wYXRjaGVzL2FsbG93X2Rlc3RkaXIucGF0Y2ggYi9zcmNwa2dzL21ha2UtY2EvcGF0Y2hl cy9hbGxvd19kZXN0ZGlyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi4xY2E4Nzc0YTBmZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbWFrZS1jYS9wYXRj aGVzL2FsbG93X2Rlc3RkaXIucGF0Y2gKQEAgLTAsMCArMSw2MyBAQAorVGhpcyBwYXRjaCBhbGxv d3MgbWFrZS1jYSB0byBnZW5lcmF0ZSBjZXJ0cyBpbiBhIHNwZWNpZmljIGRlc3RpbmF0aW9uIGRp cmVjdG9yeS4KK1NlZTogaHR0cHM6Ly9naXRodWIuY29tL2RqbHVjYXMvbWFrZS1jYS9wdWxsLzMK Ky0tLSBtYWtlLWNhCTIwMTktMDQtMTMgMDA6MTA6MDUuMDAwMDAwMDAwIC0wNTAwCisrKysgbWFr ZS1jYQkyMDE5LTA5LTA0IDExOjI2OjQxLjkyOTIxMjg1NSAtMDUwMAorQEAgLTgxNiwzNCArODE2 LDMyIEBAIGZpCisgIyBDbGVhbiB1cCB0aGUgbWVzcworIHBvcGQKKyBybSAtcmYgIiR7VEVNUERJ Un0iCisgCisgIyBCdWlsZCBBTkNIT1JMSVNUCistIiR7TUQ1U1VNfSIgIiR7QU5DSE9SRElSfSIv Ki5wZW0gPiAiJHtBTkNIT1JMSVNUfSIKKysiJHtNRDVTVU19IiAiJHtERVNURElSfSR7QU5DSE9S RElSfSIvKi5wZW0gPiAiJHtERVNURElSfSR7QU5DSE9STElTVH0iCisgCistIyBCdWlsZCBhbHRl cm5hdGUgZm9ybWF0cyB1c2luZyBwMTEta2l0IHRydXN0IChpZiBub3QgdXNpbmcgREVTVERJUikK Ky1pZiB0ZXN0ICJ4JHtERVNURElSfSIgPT0gIngiOyB0aGVuCistICBta2RpciAtcCAiJHtCVU5E TEVESVJ9IiAiJHtLRVlTVE9SRX0iCistICBlY2hvIC1uICJFeHRyYWN0aW5nIE9wZW5TU0wgY2Vy dGlmaWNhdGVzIHRvICR7Q0VSVERJUn0uLi4iCistICAiJHtUUlVTVH0iIGV4dHJhY3QgLS1maWx0 ZXI9Y2VydGlmaWNhdGVzIC0tZm9ybWF0PW9wZW5zc2wtZGlyZWN0b3J5IFwKKy0gICAgICAgICAg ICAgICAgICAgICAtLW92ZXJ3cml0ZSAtLWNvbW1lbnQgIiR7Q0VSVERJUn0iIFwKKy0gICAgICAg ICAgICAgICAgICAgICAmJiBlY2hvICJEb25lISIgfHwgZWNobyAiRmFpbGVkISEhIgorLSAgZWNo byAtbiAiRXh0cmFjdGluZyBHTlVUTFMgc2VydmVyIGF1dGggY2VydGlmaWNhdGVzIHRvICR7Q0FC VU5ETEV9Li4uIgorLSAgIiR7VFJVU1R9IiBleHRyYWN0IC0tZmlsdGVyPWNhLWFuY2hvcnMgLS1m b3JtYXQ9cGVtLWJ1bmRsZSBcCistICAgICAgICAgICAgICAgICAgICAgLS1wdXJwb3NlIHNlcnZl ci1hdXRoIC0tb3ZlcndyaXRlIC0tY29tbWVudCAiJHtDQUJVTkRMRX0iIFwKKy0gICAgICAgICAg ICAgICAgICAgICAmJiBlY2hvICJEb25lISIgfHwgZWNobyAiRmFpbGVkISEhIgorLSAgZWNobyAt biAiRXh0cmFjdGluZyBHTlVUTFMgUy1NaW1lIGNlcnRpZmljYXRlcyB0byAke1NNQlVORExFfS4u LiIKKy0gICIke1RSVVNUfSIgZXh0cmFjdCAtLWZpbHRlcj1jYS1hbmNob3JzIC0tZm9ybWF0PXBl bS1idW5kbGUgXAorLSAgICAgICAgICAgICAgICAgICAgIC0tcHVycG9zZSBlbWFpbCAtLW92ZXJ3 cml0ZSAtLWNvbW1lbnQgIiR7U01CVU5ETEV9IiBcCistICAgICAgICAgICAgICAgICAgICAgJiYg ZWNobyAiRG9uZSEiIHx8IGVjaG8gIkZhaWxlZCEhISIKKy0gIGVjaG8gLW4gIkV4dHJhY3Rpbmcg R05VVExTIGNvZGUgc2lnbmluZyBjZXJ0aWZpY2F0ZXMgdG8gJHtDU0JVTkRMRX0uLi4iCistICAi JHtUUlVTVH0iIGV4dHJhY3QgLS1maWx0ZXI9Y2EtYW5jaG9ycyAtLWZvcm1hdD1wZW0tYnVuZGxl IFwKKy0gICAgICAgICAgICAgICAgICAgICAtLXB1cnBvc2UgY29kZS1zaWduaW5nIC0tb3Zlcndy aXRlIC0tY29tbWVudCBcCistICAgICAgICAgICAgICAgICAgICAgIiR7Q1NCVU5ETEV9IiAmJiBl Y2hvICJEb25lISIgfHwgZWNobyAiRmFpbGVkISEhIgorLSAgZWNobyAtbiAiRXh0cmFjdGluZyBK YXZhIGNhY2VydHMgKEpLUykgdG8gJHtLRVlTVE9SRX0vY2FjZXJ0cy4uLiIKKy0gICIke1RSVVNU fSIgZXh0cmFjdCAtLWZpbHRlcj1jYS1hbmNob3JzIC0tZm9ybWF0PWphdmEtY2FjZXJ0cyBcCist ICAgICAgICAgICAgICAgICAgICAgLS1wdXJwb3NlIHNlcnZlci1hdXRoIC0tb3ZlcndyaXRlIFwK Ky0gICAgICAgICAgICAgICAgICAgICAtLWNvbW1lbnQgIiR7S0VZU1RPUkV9L2NhY2VydHMiIFwK Ky0gICAgICAgICAgICAgICAgICAgICAmJiBlY2hvICJEb25lISIgfHwgZWNobyAiRmFpbGVkISEh IgorLWZpCisrIyBCdWlsZCBhbHRlcm5hdGUgZm9ybWF0cyB1c2luZyBwMTEta2l0IHRydXN0Cisr bWtkaXIgLXAgIiR7REVTVERJUn0ke0JVTkRMRURJUn0iICIke0RFU1RESVJ9JHtLRVlTVE9SRX0i CisrZWNobyAtbiAiRXh0cmFjdGluZyBPcGVuU1NMIGNlcnRpZmljYXRlcyB0byAke0RFU1RESVJ9 JHtDRVJURElSfS4uLiIKKysiJHtUUlVTVH0iIGV4dHJhY3QgLS1maWx0ZXI9Y2VydGlmaWNhdGVz IC0tZm9ybWF0PW9wZW5zc2wtZGlyZWN0b3J5IFwKKysgICAgICAgICAgICAgICAgICAgLS1vdmVy d3JpdGUgLS1jb21tZW50ICIke0RFU1RESVJ9JHtDRVJURElSfSIgXAorKyAgICAgICAgICAgICAg ICAgICAmJiBlY2hvICJEb25lISIgfHwgZWNobyAiRmFpbGVkISEhIgorK2VjaG8gLW4gIkV4dHJh Y3RpbmcgR05VVExTIHNlcnZlciBhdXRoIGNlcnRpZmljYXRlcyB0byAke0RFU1RESVJ9JHtDQUJV TkRMRX0uLi4iCisrIiR7VFJVU1R9IiBleHRyYWN0IC0tZmlsdGVyPWNhLWFuY2hvcnMgLS1mb3Jt YXQ9cGVtLWJ1bmRsZSBcCisrICAgICAgICAgICAgICAgICAgIC0tcHVycG9zZSBzZXJ2ZXItYXV0 aCAtLW92ZXJ3cml0ZSAtLWNvbW1lbnQgIiR7REVTVERJUn0ke0NBQlVORExFfSIgXAorKyAgICAg ICAgICAgICAgICAgICAmJiBlY2hvICJEb25lISIgfHwgZWNobyAiRmFpbGVkISEhIgorK2VjaG8g LW4gIkV4dHJhY3RpbmcgR05VVExTIFMtTWltZSBjZXJ0aWZpY2F0ZXMgdG8gJHtERVNURElSfSR7 U01CVU5ETEV9Li4uIgorKyIke1RSVVNUfSIgZXh0cmFjdCAtLWZpbHRlcj1jYS1hbmNob3JzIC0t Zm9ybWF0PXBlbS1idW5kbGUgXAorKyAgICAgICAgICAgICAgICAgICAtLXB1cnBvc2UgZW1haWwg LS1vdmVyd3JpdGUgLS1jb21tZW50ICIke0RFU1RESVJ9JHtTTUJVTkRMRX0iIFwKKysgICAgICAg ICAgICAgICAgICAgJiYgZWNobyAiRG9uZSEiIHx8IGVjaG8gIkZhaWxlZCEhISIKKytlY2hvIC1u ICJFeHRyYWN0aW5nIEdOVVRMUyBjb2RlIHNpZ25pbmcgY2VydGlmaWNhdGVzIHRvICR7REVTVERJ Un0ke0NTQlVORExFfS4uLiIKKysiJHtUUlVTVH0iIGV4dHJhY3QgLS1maWx0ZXI9Y2EtYW5jaG9y cyAtLWZvcm1hdD1wZW0tYnVuZGxlIFwKKysgICAgICAgICAgICAgICAgICAgLS1wdXJwb3NlIGNv ZGUtc2lnbmluZyAtLW92ZXJ3cml0ZSAtLWNvbW1lbnQgXAorKyAgICAgICAgICAgICAgICAgICAi JHtERVNURElSfSR7Q1NCVU5ETEV9IiAmJiBlY2hvICJEb25lISIgfHwgZWNobyAiRmFpbGVkISEh IgorK2VjaG8gLW4gIkV4dHJhY3RpbmcgSmF2YSBjYWNlcnRzIChKS1MpIHRvICR7REVTVERJUn0k e0tFWVNUT1JFfS9jYWNlcnRzLi4uIgorKyIke1RSVVNUfSIgZXh0cmFjdCAtLWZpbHRlcj1jYS1h bmNob3JzIC0tZm9ybWF0PWphdmEtY2FjZXJ0cyBcCisrICAgICAgICAgICAgICAgICAgIC0tcHVy cG9zZSBzZXJ2ZXItYXV0aCAtLW92ZXJ3cml0ZSBcCisrICAgICAgICAgICAgICAgICAgIC0tY29t bWVudCAiJHtERVNURElSfSR7S0VZU1RPUkV9L2NhY2VydHMiIFwKKysgICAgICAgICAgICAgICAg ICAgJiYgZWNobyAiRG9uZSEiIHx8IGVjaG8gIkZhaWxlZCEhISIKKyAKKyAjIEVuZCAvdXNyL3Ni aW4vbWFrZS1jYQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tYWtlLWNhL3RlbXBsYXRlIGIvc3JjcGtn cy9tYWtlLWNhL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li5iN2ZiMGRjNzQ3OQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbWFrZS1jYS90ZW1wbGF0 ZQpAQCAtMCwwICsxLDEzIEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdtYWtlLWNhJworcGtnbmFt ZT1tYWtlLWNhCit2ZXJzaW9uPTEuNAorcmV2aXNpb249MQorYnVpbGRfc3R5bGU9Z251LW1ha2Vm aWxlCittYWtlX2luc3RhbGxfYXJncz0iU0JJTkRJUj0vdXNyL2JpbiIKK2hvc3RtYWtlZGVwZW5k cz0iaGVscDJtYW4iCitzaG9ydF9kZXNjPSJQS0kgc2V0dXAgc2NyaXB0IGZvciBMRlMgKGFuZCBv dGhlcnMpIgorbWFpbnRhaW5lcj0iS3lsZSBOdXNiYXVtIDxrbnVzYmF1bSt2b2lkQHNkZi5vcmc+ IgorbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5j b20vZGpsdWNhcy9tYWtlLWNhLyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2RqbHVj YXMvbWFrZS1jYS9yZWxlYXNlcy9kb3dubG9hZC92MS40L21ha2UtY2EtMS40LnRhci54eiIKK2No ZWNrc3VtPTg5ZmQ1NTMzNzY4ZWY1ZDY0NzFiYzgyNGY4ZjNhZDBkYzViNGJiNDA3NzlhZGQwYmE0 MGNlNTY1YzkwNjYxNjIKCkZyb20gYzVlZDFlNGY0OGU5NGQxMzY1MTM2MjQyNTQ3MTU1MDk3NzU1 MGNhMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogS3lsZSBOdXNiYXVtIDxreWxlbnVz YmF1bUBncmFudWxhci5hZz4KRGF0ZTogV2VkLCA0IFNlcCAyMDE5IDE1OjA2OjA2IC0wNTAwClN1 YmplY3Q6IFtQQVRDSCAzLzNdIE5ldyBwYWNrYWdlOiBvcGVuamRrLTExLTExKzI4CgotLS0KIGNv bW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmNw a2dzL29wZW5qZGstMTEtZG9jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjcGtn cy9vcGVuamRrLTExLXNyYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyY3BrZ3Mv b3Blbmpkay0xMS9maWxlcy9ta2NhY2VydHMgICAgICAgICAgICB8IDIxNCArKysrKysrCiAuLi4v ZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2ggICAgICAgICAgfCAgMTEgKwogLi4uL29w ZW5qZGstMTEvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCAgIHwgIDMwICsKIC4uLi9vcGVu amRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCB8IDUzNyArKysrKysrKysrKysr KysrKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvcHBjNjRsZS5wYXRjaCAgICAgICAgICB8IDIy MSArKysrKysrCiAuLi4vb3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoICAg fCAxMzAgKysrKysKIHNyY3BrZ3Mvb3Blbmpkay0xMS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAg ICB8IDE4MSArKysrKysKIDEwIGZpbGVzIGNoYW5nZWQsIDEzMzIgaW5zZXJ0aW9ucygrKQogY3Jl YXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3Mvb3Blbmpkay0xMS1kb2MKIGNyZWF0ZSBtb2RlIDEyMDAw MCBzcmNwa2dzL29wZW5qZGstMTEtc3JjCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVu amRrLTExL2ZpbGVzL21rY2FjZXJ0cwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Blbmpk ay0xMS9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3Mvb3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Blbmpkay0xMS9maWxlcy9tdXNsX3Bh dGNoZXMvcHBjNjRsZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Blbmpkay0x MS9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9vcGVuamRrLTExL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1v bi9zaGxpYnMKaW5kZXggMTE0NDJmMWI5MzYuLmU4NmM5MmM3NGQ4IDEwMDY0NAotLS0gYS9jb21t b24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTE3NzUsNiArMTc3NSwxMiBAQCBsaWJh d3RfeGF3dC5zbyBvcGVuamRrLWpyZS04dTIwXzEKIGxpYmphdmEuc28gb3Blbmpkay1qcmUtOHUy MF8xCiBsaWJqbGkuc28gb3Blbmpkay1qcmUtOHUyMF8xCiBsaWJqdm0uc28gb3Blbmpkay1qcmUt OHUyMF8xCitsaWJqYXd0LnNvIG9wZW5qZGstMTEtMTEuMC40KzExXzEKK2xpYmF3dC5zbyBvcGVu amRrLTExLTExLjAuNCsxMV8xCitsaWJhd3RfeGF3dC5zbyBvcGVuamRrLTExLTExLjAuNCsxMV8x CitsaWJqYXZhLnNvIG9wZW5qZGstMTEtMTEuMC40KzExXzEKK2xpYmpsaS5zbyBvcGVuamRrLTEx LTExLjAuNCsxMV8xCitsaWJqdm0uc28gb3Blbmpkay0xMS0xMS4wLjQrMTFfMQogbGlidWNsLnNv LjUgbGlidWNsLTAuOC4xXzEKIGxpYmhhbmRsZS5zby4xIHhmc3Byb2dzLTMuMi4xXzEKIGxpYm5m bmV0bGluay5zby4wIGxpYm5mbmV0bGluay0xLjAuMV8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL29w ZW5qZGstMTEtZG9jIGIvc3JjcGtncy9vcGVuamRrLTExLWRvYwpuZXcgZmlsZSBtb2RlIDEyMDAw MAppbmRleCAwMDAwMDAwMDAwMC4uN2ZhYmE3MWI5YTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL29wZW5qZGstMTEtZG9jCkBAIC0wLDAgKzEgQEAKK29wZW5qZGstMTEKXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGstMTEtc3JjIGIvc3Jj cGtncy9vcGVuamRrLTExLXNyYwpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAw MC4uN2ZhYmE3MWI5YTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGstMTEtc3Jj CkBAIC0wLDAgKzEgQEAKK29wZW5qZGstMTEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGstMTEvZmlsZXMvbWtjYWNlcnRzIGIvc3JjcGtncy9v cGVuamRrLTExL2ZpbGVzL21rY2FjZXJ0cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uMmRiNWE3N2JiMDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGst MTEvZmlsZXMvbWtjYWNlcnRzCkBAIC0wLDAgKzEsMjE0IEBACisjIS9iaW4vc2gKKyMgU2NyaXB0 IHByb3ZpZGVkIGJ5IGh0dHA6Ly93d3cubGludXhmcm9tc2NyYXRjaC5vcmcvYmxmcy92aWV3L3N2 bi9nZW5lcmFsL29wZW5qZGsuaHRtbCNvamRrLWNlcnRzCisjIEVCIDIwMTQxMjE3OiByZW1vdmVk IGJhc2hpc21zCisjIFNpbXBsZSBzY3JpcHQgdG8gZXh0cmFjdCB4NTA5IGNlcnRpZmljYXRlcyBh bmQgY3JlYXRlIGEgSlJFIGNhY2VydHMgZmlsZS4KKworZ2V0X2FyZ3MoKQorICAgIHsKKyAgICAg ICAgaWYgdGVzdCAteiAiJHsxfSIgOyB0aGVuCisgICAgICAgICAgICBzaG93aGVscAorICAgICAg ICAgICAgZXhpdCAxCisgICAgICAgIGZpCisKKyAgICAgICAgd2hpbGUgdGVzdCAtbiAiJHsxfSIg OyBkbworICAgICAgICAgICAgY2FzZSAiJHsxfSIgaW4KKyAgICAgICAgICAgICAgICAtZiB8IC0t Y2FmaWxlKQorICAgICAgICAgICAgICAgICAgICBjaGVja19hcmcgJDEgJDIKKyAgICAgICAgICAg ICAgICAgICAgQ0FGSUxFPSIkezJ9IgorICAgICAgICAgICAgICAgICAgICBzaGlmdCAyCisgICAg ICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgLWQgfCAtLWNhZGlyKQorICAgICAg ICAgICAgICAgICAgICBjaGVja19hcmcgJDEgJDIKKyAgICAgICAgICAgICAgICAgICAgQ0FESVI9 IiR7Mn0iCisgICAgICAgICAgICAgICAgICAgIHNoaWZ0IDIKKyAgICAgICAgICAgICAgICAgICAg OzsKKyAgICAgICAgICAgICAgICAtbyB8IC0tb3V0ZmlsZSkKKyAgICAgICAgICAgICAgICAgICAg Y2hlY2tfYXJnICQxICQyCisgICAgICAgICAgICAgICAgICAgIE9VVEZJTEU9IiR7Mn0iCisgICAg ICAgICAgICAgICAgICAgIHNoaWZ0IDIKKyAgICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAg ICAgICAgICAtayB8IC0ta2V5dG9vbCkKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tfYXJnICQx ICQyCisgICAgICAgICAgICAgICAgICAgIEtFWVRPT0w9IiR7Mn0iCisgICAgICAgICAgICAgICAg ICAgIHNoaWZ0IDIKKyAgICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICAgICAtcyB8 IC0tb3BlbnNzbCkKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tfYXJnICQxICQyCisgICAgICAg ICAgICAgICAgICAgIE9QRU5TU0w9IiR7Mn0iCisgICAgICAgICAgICAgICAgICAgIHNoaWZ0IDIK KyAgICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICAgICAtaCB8IC0taGVscCkKKyAg ICAgICAgICAgICAgICAgICAgc2hvd2hlbHAKKyAgICAgICAgICAgICAgICAgICAgZXhpdCAwCisg ICAgICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgKikKKyAgICAgICAgICAgICAg ICAgICAgc2hvd2hlbHAKKyAgICAgICAgICAgICAgICAgICAgZXhpdCAxCisgICAgICAgICAgICAg ICAgICAgIDs7CisgICAgICAgICAgICBlc2FjCisgICAgICAgIGRvbmUKKyAgICB9CisKK2NoZWNr X2FyZygpCisgICAgeworICAgICAgICBlY2hvICIkezJ9IiB8IGdyZXAgLXYgIl4tIiA+IC9kZXYv bnVsbAorICAgICAgICBpZiBbIC16ICIkPyIgLW8gISAtbiAiJDIiIF07IHRoZW4KKyAgICAgICAg ICAgIGVjaG8gIkVycm9yOiAgJDEgcmVxdWlyZXMgYSB2YWxpZCBhcmd1bWVudC4iCisgICAgICAg ICAgICBleGl0IDEKKyAgICAgICAgZmkKKyAgICB9CisKKyMgVGhlIGRhdGUgYmluYXJ5IGlzIG5v dCByZWxpYWJsZSBvbiAzMmJpdCBzeXN0ZW1zIGZvciBkYXRlcyBhZnRlciAyMDM4CitteWRhdGUo KQorICAgIHsKKyAgICAgICAgbG9jYWwgeT0kKCBlY2hvICQxIHwgY3V0IC1kIiAiIC1mNCApCisg ICAgICAgIGxvY2FsIE09JCggZWNobyAkMSB8IGN1dCAtZCIgIiAtZjEgKQorICAgICAgICBsb2Nh bCBkPSQoIGVjaG8gJDEgfCBjdXQgLWQiICIgLWYyICkKKyAgICAgICAgbG9jYWwgbQorCisgICAg ICAgIGlmIFsgJHtkfSAtbHQgMTAgXTsgdGhlbiBkPSIwJHtkfSI7IGZpCisKKyAgICAgICAgY2Fz ZSAkTSBpbgorICAgICAgICAgICAgSmFuKSBtPSIwMSI7OworICAgICAgICAgICAgRmViKSBtPSIw MiI7OworICAgICAgICAgICAgTWFyKSBtPSIwMyI7OworICAgICAgICAgICAgQXByKSBtPSIwNCI7 OworICAgICAgICAgICAgTWF5KSBtPSIwNSI7OworICAgICAgICAgICAgSnVuKSBtPSIwNiI7Owor ICAgICAgICAgICAgSnVsKSBtPSIwNyI7OworICAgICAgICAgICAgQXVnKSBtPSIwOCI7OworICAg ICAgICAgICAgU2VwKSBtPSIwOSI7OworICAgICAgICAgICAgT2N0KSBtPSIxMCI7OworICAgICAg ICAgICAgTm92KSBtPSIxMSI7OworICAgICAgICAgICAgRGVjKSBtPSIxMiI7OworICAgICAgICBl c2FjCisKKyAgICAgICAgY2VydGRhdGU9IiR7eX0ke219JHtkfSIKKyAgICB9CisKK3Nob3doZWxw KCkKKyAgICB7CisgICAgICAgIGVjaG8gImBiYXNlbmFtZSAkezB9YCBjcmVhdGVzIGEgdmFsaWQg Y2FjZXJ0cyBmaWxlIGZvciB1c2Ugd2l0aCBJY2VkVGVhLiIKKyAgICAgICAgZWNobyAiIgorICAg ICAgICBlY2hvICIgICAgICAgIC1mICAtLWNhZmlsZSAgICAgVGhlIHBhdGggdG8gYSBmaWxlIGNv bnRhaW5pbmcgUEVNIgorICAgICAgICBlY2hvICIgICAgICAgICAgICAgICAgICAgICAgICAgZm9y bWF0ZWQgQ0EgY2VydGlmaWNhdGVzLiBNYXkgbm90IGJlIgorICAgICAgICBlY2hvICIgICAgICAg ICAgICAgICAgICAgICAgICAgdXNlZCB3aXRoIC1kLy0tY2FkaXIuIgorICAgICAgICBlY2hvICIi CisgICAgICAgIGVjaG8gIiAgICAgICAgLWQgIC0tY2FkaXIgICAgICBUaGUgcGF0aCB0byBhIGRp cmVjdG9yeSBvZiBQRU0gZm9ybWF0dGVkIgorICAgICAgICBlY2hvICIgICAgICAgICAgICAgICAg ICAgICAgICAgQ0EgY2VydGlmaWNhdGVzLiBNYXkgbm90IGJlIHVzZWQgd2l0aCIKKyAgICAgICAg ZWNobyAiICAgICAgICAgICAgICAgICAgICAgICAgIC1mLy0tY2FmaWxlLiIKKyAgICAgICAgZWNo byAiIgorICAgICAgICBlY2hvICIgICAgICAgIC1vICAtLW91dGZpbGUgICAgVGhlIHBhdGggdG8g dGhlIG91dHB1dCBmaWxlLiIKKyAgICAgICAgZWNobyAiIgorICAgICAgICBlY2hvICIgICAgICAg IC1rICAtLWtleXRvb2wgICAgVGhlIHBhdGggdG8gdGhlIGphdmEga2V5dG9vbCB1dGlsaXR5LiIK KyAgICAgICAgZWNobyAiIgorICAgICAgICBlY2hvICIgICAgICAgIC1zICAtLW9wZW5zc2wgICAg VGhlIHBhdGggdG8gdGhlIG9wZW5zc2wgdXRpbGl0eS4iCisgICAgICAgIGVjaG8gIiIKKyAgICAg ICAgZWNobyAiICAgICAgICAtaCAgLS1oZWxwICAgICAgIFNob3cgdGhpcyBoZWxwIG1lc3NhZ2Ug YW5kIGV4aXQuIgorICAgICAgICBlY2hvICIiCisgICAgICAgIGVjaG8gIiIKKyAgICB9CisKKyMg SW5pdGlhbGl6ZSBlbXB0eSB2YXJpYWJsZXMgc28gdGhhdCB0aGUgc2hlbGwgZG9lcyBub3QgcG9s bHV0ZSB0aGUgc2NyaXB0CitDQUZJTEU9IiIKK0NBRElSPSIiCitPVVRGSUxFPSIiCitPUEVOU1NM PSIiCitLRVlUT09MPSIiCitjZXJ0ZGF0ZT0iIgorZGF0ZT0iIgordG9kYXk9JCggZGF0ZSArJVkl bSVkICkKKworIyBQcm9jZXNzIGNvbW1hbmQgbGluZSBhcmd1bWVudHMKK2dldF9hcmdzICR7QH0K KworIyBIYW5kbGUgY29tbW9uIGVycm9ycworaWYgdGVzdCAiJHtDQUZJTEV9eCIgPSAieCIgLWEg IiR7Q0FESVJ9eCIgPSAieCIgOyB0aGVuCisgICAgZWNobyAiRVJST1IhICBZb3UgbXVzdCBwcm92 aWRlIGFuIHg1MDkgY2VydGlmaWNhdGUgc3RvcmUhIgorICAgIGVjaG8gIlwnJChiYXNlbmFtZSAk ezB9KSAtLWhlbHBcJyBmb3IgbW9yZSBpbmZvLiIKKyAgICBlY2hvICIiCisgICAgZXhpdCAxCitm aQorCitpZiB0ZXN0ICIke0NBRklMRX14IiAhPSAieCIgLWEgIiR7Q0FESVJ9eCIgIT0gIngiIDsg dGhlbgorICAgIGVjaG8gIkVSUk9SISAgWW91IGNhbm5vdCBwcm92aWRlIHR3byB4NTA5IGNlcnRp ZmljYXRlIHN0b3JlcyEiCisgICAgZWNobyAiXCckKGJhc2VuYW1lICR7MH0pIC0taGVscFwnIGZv ciBtb3JlIGluZm8uIgorICAgIGVjaG8gIiIKKyAgICBleGl0IDEKK2ZpCisKK2lmIHRlc3QgIiR7 S0VZVE9PTH14IiA9ICJ4IiA7IHRoZW4KKyAgICBlY2hvICJFUlJPUiEgIFlvdSBtdXN0IHByb3Zp ZGUgYSB2YWxpZCBrZXl0b29sIHByb2dyYW0hIgorICAgIGVjaG8gIlwnJChiYXNlbmFtZSAkezB9 KSAtLWhlbHBcJyBmb3IgbW9yZSBpbmZvLiIKKyAgICBlY2hvICIiCisgICAgZXhpdCAxCitmaQor CitpZiB0ZXN0ICIke09QRU5TU0x9eCIgPSAieCIgOyB0aGVuCisgICAgZWNobyAiRVJST1IhICBZ b3UgbXVzdCBwcm92aWRlIGEgdmFsaWQgcGF0aCB0byBvcGVuc3NsISIKKyAgICBlY2hvICJcJyQo YmFzZW5hbWUgJHswfSkgLS1oZWxwXCcgZm9yIG1vcmUgaW5mby4iCisgICAgZWNobyAiIgorICAg IGV4aXQgMQorZmkKKworaWYgdGVzdCAiJHtPVVRGSUxFfXgiID0gIngiIDsgdGhlbgorICAgIGVj aG8gIkVSUk9SISAgWW91IG11c3QgcHJvdmlkZSBhIHZhbGlkIG91dHB1dCBmaWxlISIKKyAgICBl Y2hvICJcJyQoYmFzZW5hbWUgJHswfSkgLS1oZWxwXCcgZm9yIG1vcmUgaW5mby4iCisgICAgZWNo byAiIgorICAgIGV4aXQgMQorZmkKKworIyBHZXQgb24gd2l0aCB0aGUgd29yaworCisjIElmIHVz aW5nIGEgQ0FGSUxFLCBzcGxpdCBpdCBpbnRvIGluZGl2aWR1YWwgZmlsZXMgaW4gYSB0ZW1wIGRp cmVjdG9yeQoraWYgdGVzdCAiJHtDQUZJTEV9eCIgIT0gIngiIDsgdGhlbgorICAgIFRFTVBESVI9 YG1rdGVtcCAtZGAKKyAgICBDQURJUj0iJHtURU1QRElSfSIKKworICAgICMgR2V0IGEgbGlzdCBv ZiBzdGFyaW5nIGxpbmVzIGZvciBlYWNoIGNlcnQKKyAgICBDRVJUTElTVD1gZ3JlcCAtbiAiXi0t LS0tQkVHSU4iICIke0NBRklMRX0iIHwgY3V0IC1kICI6IiAtZiAxYAorCisgICAgIyBHZXQgYSBs aXN0IG9mIGVuZGluZyBsaW5lcyBmb3IgZWFjaCBjZXJ0CisgICAgRU5EQ0VSVExJU1Q9YGdyZXAg LW4gIl4tLS0tLUVORCIgIiR7Q0FGSUxFfSIgfCBjdXQgLWQgIjoiIC1mIDFgCisKKyAgICAjIFN0 YXJ0IGEgbG9vcAorICAgIGZvciBjZXJ0YmVnaW4gaW4gJHtDRVJUTElTVH0gOyBkbworICAgICAg ICBmb3IgY2VydGVuZCBpbiAke0VORENFUlRMSVNUfSA7IGRvCisgICAgICAgICAgICBpZiB0ZXN0 ICIke2NlcnRlbmR9IiAtZ3QgIiR7Y2VydGJlZ2lufSI7IHRoZW4KKyAgICAgICAgICAgICAgICBi cmVhaworICAgICAgICAgICAgZmkKKyAgICAgICAgZG9uZQorICAgICAgICBzZWQgLW4gIiR7Y2Vy dGJlZ2lufSwke2NlcnRlbmR9cCIgIiR7Q0FGSUxFfSIgPiAiJHtDQURJUn0vJHtjZXJ0YmVnaW59 LnBlbSIKKyAgICAgICAga2V5aGFzaD1gJHtPUEVOU1NMfSB4NTA5IC1ub291dCAtaW4gIiR7Q0FE SVJ9LyR7Y2VydGJlZ2lufS5wZW0iIC1oYXNoYAorICAgICAgICBlY2hvICJHZW5lcmF0ZWQgUEVN IGZpbGUgd2l0aCBoYXNoOiAgJHtrZXloYXNofS4iCisgICAgZG9uZQorZmkKKworIyBXcml0ZSB0 aGUgb3V0cHV0IGZpbGUKK2ZvciBjZXJ0IGluIGBmaW5kICIke0NBRElSfSIgLXR5cGUgZiAtbmFt ZSAiKi5wZW0iIC1vIC1uYW1lICIqLmNydCJgCitkbworCisgICAgIyBNYWtlIHN1cmUgdGhlIGNl cnRpZmljYXRlIGRhdGUgaXMgdmFsaWQuLi4KKyAgICBkYXRlPSQoICR7T1BFTlNTTH0geDUwOSAt ZW5kZGF0ZSAtaW4gIiR7Y2VydH0iIC1ub291dCB8IHNlZCAncy9ebm90QWZ0ZXI9Ly8nICkKKyAg ICBteWRhdGUgIiR7ZGF0ZX0iCisgICAgaWYgdGVzdCAiJHtjZXJ0ZGF0ZX0iIC1sdCAiJHt0b2Rh eX0iIDsgdGhlbgorICAgICAgICBlY2hvICIke2NlcnR9IGV4cGlyZWQgb24gJHtjZXJ0ZGF0ZX0h IFNraXBwaW5nLi4uIgorICAgICAgICB1bnNldCBkYXRlIGNlcnRkYXRlCisgICAgICAgIGNvbnRp bnVlCisgICAgZmkKKyAgICB1bnNldCBkYXRlIGNlcnRkYXRlCisgICAgbHMgIiR7Y2VydH0iCisg ICAgdGVtcGZpbGU9YG1rdGVtcGAKKyAgICBzZWQgLW4gIi9eLS0tLS1CRUdJTi8sL14tLS0tLUVO RC9wIiAiJHtjZXJ0fSIgPiAiJHt0ZW1wZmlsZX0iCisgICAgZWNobyB5ZXMgfCBlbnYgTENfQUxM PUMgIiR7S0VZVE9PTH0iIC1pbXBvcnQgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1hbGlhcyBgYmFzZW5hbWUgIiR7Y2VydH0i YCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1rZXlzdG9yZSAi JHtPVVRGSUxFfSIgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC1zdG9yZXBhc3MgJ2NoYW5nZWl0JyAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC1maWxlICIke3RlbXBmaWxlfSIKKyAgICBybSAiJHt0ZW1wZmls ZX0iCitkb25lCisKK2lmIHRlc3QgIiR7VEVNUERJUn14IiAhPSAieCIgOyB0aGVuCisgICAgcm0g LXJmICIke1RFTVBESVJ9IgorZmkKK2V4aXQgMApkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRr LTExL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoIGIvc3JjcGtncy9vcGVuamRrLTEx L2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi5iOTVmNDU1ZTkyNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv b3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaApAQCAtMCwwICsxLDEx IEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dp dC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4 OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYWFy Y2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGlu dXhfYWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorQEAgLTc3LDcgKzc3LDYgQEAKKyAjIGlu Y2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQu aD4KKy0jIGluY2x1ZGUgPGZwdV9jb250cm9sLmg+CisKKyAjaWZkZWYgQlVJTFRJTl9TSU0KKyAj ZGVmaW5lIFJFR19TUCBSRUdfUlNQCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGstMTEvZmls ZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCBiL3NyY3BrZ3Mvb3Blbmpkay0xMS9maWxlcy9tdXNs X3BhdGNoZXMvYXJtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li4xMmQwMDIyYzE0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3Blbmpkay0xMS9maWxl cy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCkBAIC0wLDAgKzEsMzAgQEAKK1BhdGNoZXMgZm9yIG11 c2wgdGFrZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9h cG9ydHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2MjBlN2UyNGM2Mjgw CistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGludXhfYXJtLmNwcAor KysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYXJtL29zX2xpbnV4X2FybS5jcHAKK0BA IC03MSw3ICs3MSw2IEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4K KyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorICMg aW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorCisgI2RlZmluZSBTUEVMTF9SRUdfU1AgICJzcCIKK0BA IC0xMDQsNiArMTAzLDE4IEBACisgI2RlZmluZSBBUk1fUkVHU19JTl9DT05URVhUICAzMQorCisg I2Vsc2UKKysKKysvLyBTdHVwaWQgaGFjayBhcyB0aGUgb3JpZ2luIGlmIGJlbG93IGRvZXNudCBj b21waWxlIHdpdGggZ2NjIDguMi4wOgorKy8vCisrLy8gb3NfbGludXhfYXJtLmNwcDoxMTQ6NTog ZXJyb3I6IG1pc3NpbmcgYmluYXJ5IG9wZXJhdG9yIGJlZm9yZSB0b2tlbiAiKCIKKysvLyAgI2lm IE5HUkVHID09IDE2CisrLy8gICAgICAgXn5+fn4KKysvLworKy8vIFRoZSBOR1JFRyBpcyAxOCwg c28gZm9yY2UgaXQgdG8gdGhhdCB2YWx1ZS4KKysjaWZkZWYgTkdSRUcKKysjICB1bmRlZiBOR1JF RworKyNlbmRpZgorKyNkZWZpbmUgTkdSRUcgMTgKKworICNpZiBOR1JFRyA9PSAxNgorIC8vIFRo ZXNlIGRlZmluaXRpb25zIGFyZSBiYXNlZCBvbiB0aGUgb2JzZXJ2YXRpb24gdGhhdCB1bnRpbApk aWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5w YXRjaCBiL3NyY3BrZ3Mvb3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjgxZWQwZjUzYjFkCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy9idWls ZC5wYXRjaApAQCAtMCwwICsxLDUzNyBAQAorUGF0Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFs cGluZSBsaW51eDogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lk PThhMWFlMTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYyMGU3ZTI0YzYyODAKKy0tLSBvbGQvbWFrZS9S ZWxlYXNlRmlsZS5nbWsKKysrKyBuZXcvbWFrZS9SZWxlYXNlRmlsZS5nbWsKK0BAIC01Myw2ICs1 Myw3IEBACisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJKQVZBX1ZFUlNJT05fREFURSIsICIk KFZFUlNJT05fREFURSkiKQorICAgJChjYWxsIGluZm8tZmlsZS1pdGVtLCAiT1NfTkFNRSIsICIk KFJFTEVBU0VfRklMRV9PU19OQU1FKSIpCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJPU19B UkNIIiwgIiQoUkVMRUFTRV9GSUxFX09TX0FSQ0gpIikKKysgICQoY2FsbCBpbmZvLWZpbGUtaXRl bSwgIkxJQkMiLCAibXVzbCIpCisgZW5kZWYKKworICMgUGFyYW0gMSAtIFRoZSBmaWxlIGNvbnRh aW5pbmcgdGhlIE1PRFVMRVMgbGlzdAorLS0tIG9sZC9tYWtlL2F1dG9jb25mL2J1aWxkLWF1eC9j b25maWcuZ3Vlc3MKKysrKyBuZXcvbWFrZS9hdXRvY29uZi9idWlsZC1hdXgvY29uZmlnLmd1ZXNz CitAQCAtMzAsNiArMzAsMTcgQEAKKyBESVI9YGRpcm5hbWUgJDBgCisgT1VUPWAuICRESVIvYXV0 b2NvbmYtY29uZmlnLmd1ZXNzYAorCisrIyBjb25maWcuZ3Vlc3MgZG9lc24ndCBpZGVudGlmeSBz eXN0ZW1zIHJ1bm5pbmcgdGhlIG11c2wgQyBsaWJyYXJ5LCBhbmQgd2lsbAorKyMgaW5zdGVhZCBy ZXR1cm4gYSBzdHJpbmcgd2l0aCBhIC1nbnUgc3VmZml4LiBUaGlzIGJsb2NrIGRldGVjdHMgbXVz bCBhbmQKKysjIG1vZGlmaWVzIHRoZSBzdHJpbmcgdG8gaGF2ZSBhIC1tdXNsIHN1ZmZpeCBpbnN0 ZWFkLiAKKytlY2hvICRPVVQgfCBncmVwIC0tIC1saW51eC0gPiAvZGV2L251bGwgMj4gL2Rldi9u dWxsCisraWYgdGVzdCAkPyA9IDA7IHRoZW4KKysgIGxkZF92ZXJzaW9uPWBsZGQgLS12ZXJzaW9u IDI+JjEgfCBoZWFkIC0xIHwgY3V0IC1mMSAtZCcgJ2AKKysgIGlmIFsgeCIke2xkZF92ZXJzaW9u fSIgPSB4Im11c2wiIF07IHRoZW4KKysgICAgT1VUPWBlY2hvICRPVVQgfCBzZWQgJ3MvLWdudS8t bXVzbC8nYAorKyAgZmkKKytmaQorKworICMgVGVzdCBhbmQgZml4IHNvbGFyaXMgb24geDg2XzY0 CisgZWNobyAkT1VUIHwgZ3JlcCBpMzg2LXBjLXNvbGFyaXMgPiAvZGV2L251bGwgMj4gL2Rldi9u dWxsCisgaWYgdGVzdCAkPyA9IDA7IHRoZW4KKy0tLSBvbGQvbWFrZS9ob3RzcG90L2xpYi9Db21w aWxlSnZtLmdtaworKysrIG5ldy9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCitAQCAt NzcsNiArNzcsNyBAQAorICAgICAtREhPVFNQT1RfQlVJTERfVVNFUj0nIiQoVVNFUk5BTUUpIicg XAorICAgICAtREhPVFNQT1RfVk1fRElTVFJPPSciJChIT1RTUE9UX1ZNX0RJU1RSTykiJyBcCisg ICAgIC1EQ1BVPSciJChPUEVOSkRLX1RBUkdFVF9DUFVfVk1fVkVSU0lPTikiJyBcCisrICAgIC1E TElCQz0nIm11c2wiJyBcCisgICAgICMKKworICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCistLS0g b2xkL21ha2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rCisrKysgbmV3L21ha2UvbGliL0NvcmVMaWJy YXJpZXMuZ21rCitAQCAtMjQxLDYgKzI0MSw3IEBACisgZW5kaWYKKworIExJQkpMSV9DRkxBR1Mg Kz0gJChMSUJaX0NGTEFHUykKKytMSUJKTElfQ0ZMQUdTICs9IC1ETElCQz1cIm11c2xcIgorCisg aWZuZXEgKCQoVVNFX0VYVEVSTkFMX0xJQlopLCB0cnVlKQorICAgTElCSkxJX0VYVFJBX0ZJTEVT ICs9IFwKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCisrKysgbmV3 L3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAorQEAgLTk5LDcgKzk5LDYgQEAKKyAj IGluY2x1ZGUgPHN0cmluZy5oPgorICMgaW5jbHVkZSA8c3lzY2FsbC5oPgorICMgaW5jbHVkZSA8 c3lzL3N5c2luZm8uaD4KKy0jIGluY2x1ZGUgPGdudS9saWJjLXZlcnNpb24uaD4KKyAjIGluY2x1 ZGUgPHN5cy9pcGMuaD4KKyAjIGluY2x1ZGUgPHN5cy9zaG0uaD4KKyAjIGluY2x1ZGUgPGxpbmsu aD4KK0BAIC01MTEsNiArNTEwLDExIEBACisgLy8gZGV0ZWN0aW5nIHB0aHJlYWQgbGlicmFyeQor Cisgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgpIHsKKysjaWYgIWRlZmluZWQoX19H TElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKQorKyAgLy8gSGFyZCBjb2RlIEFscGluZSBM aW51eCBzdXBwb3J0ZWQgbXVzbCBjb21wYXRpYmxlIHNldHRpbmdzCisrICBvczo6TGludXg6OnNl dF9nbGliY192ZXJzaW9uKCJnbGliYyAyLjkiKTsKKysgIG9zOjpMaW51eDo6c2V0X2xpYnB0aHJl YWRfdmVyc2lvbigiTlBUTCIpOworKyNlbHNlCisgICAvLyBTYXZlIGdsaWJjIGFuZCBwdGhyZWFk IHZlcnNpb24gc3RyaW5ncy4KKyAjaWYgIWRlZmluZWQoX0NTX0dOVV9MSUJDX1ZFUlNJT04pIHx8 IFwKKyAgICAgIWRlZmluZWQoX0NTX0dOVV9MSUJQVEhSRUFEX1ZFUlNJT04pCitAQCAtNTI4LDYg KzUzMiw3IEBACisgICBzdHIgPSAoY2hhciAqKW1hbGxvYyhuLCBtdEludGVybmFsKTsKKyAgIGNv bmZzdHIoX0NTX0dOVV9MSUJQVEhSRUFEX1ZFUlNJT04sIHN0ciwgbik7CisgICBvczo6TGludXg6 OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oc3RyKTsKKysjZW5kaWYKKyB9CisKKyAvLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLworQEAgLTI5MTYsMjAgKzI5MjEsMzYgQEAKKyBleHRlcm4gIkMiIEpOSUVYUE9S VCB2b2lkIG51bWFfd2FybihpbnQgbnVtYmVyLCBjaGFyICp3aGVyZSwgLi4uKSB7IH0KKyBleHRl cm4gIkMiIEpOSUVYUE9SVCB2b2lkIG51bWFfZXJyb3IoY2hhciAqd2hlcmUpIHsgfQorCisrc3Rh dGljIHZvaWQqIGRsdnN5bV9pZl9hdmFpbGFibGUodm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBu YW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9uKSB7CisrICB0eXBlZGVmIHZvaWQqICgqZGx2c3ltX2Z1 bmNfdHlwZSkodm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2ZXJz aW9uKTsKKysgIHN0YXRpYyBkbHZzeW1fZnVuY190eXBlIGRsdnN5bV9mdW5jOworKyAgc3RhdGlj IGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKysKKysgIGlmICghaW5pdGlhbGl6ZWQpIHsKKysg ICAgZGx2c3ltX2Z1bmMgPSAoZGx2c3ltX2Z1bmNfdHlwZSlkbHN5bShSVExEX05FWFQsICJkbHZz eW0iKTsKKysgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOworKyAgfQorKworKyAgaWYgKGRsdnN5bV9m dW5jICE9IE5VTEwpIHsKKysgICAgdm9pZCAqZiA9IGRsdnN5bV9mdW5jKGhhbmRsZSwgbmFtZSwg dmVyc2lvbik7CisrICAgIGlmIChmICE9IE5VTEwpIHsKKysgICAgICByZXR1cm4gZjsKKysgICAg fQorKyAgfQorKworKyAgcmV0dXJuIGRsc3ltKGhhbmRsZSwgbmFtZSk7CisrfQorKworIC8vIEhh bmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wgdmVyc2lvbiAxLjEgKEFQSSB2MSku IElmIGl0IGZhaWxzCisgLy8gbG9hZCBzeW1ib2wgZnJvbSBiYXNlIHZlcnNpb24gaW5zdGVhZC4K KyB2b2lkKiBvczo6TGludXg6OmxpYm51bWFfZGxzeW0odm9pZCogaGFuZGxlLCBjb25zdCBjaGFy ICpuYW1lKSB7CistICB2b2lkICpmID0gZGx2c3ltKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4x Iik7CistICBpZiAoZiA9PSBOVUxMKSB7CistICAgIGYgPSBkbHN5bShoYW5kbGUsIG5hbWUpOwor LSAgfQorLSAgcmV0dXJuIGY7CisrICByZXR1cm4gZGx2c3ltX2lmX2F2YWlsYWJsZShoYW5kbGUs IG5hbWUsICJsaWJudW1hXzEuMSIpOworIH0KKworIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQg bGlibnVtYSBzeW1ib2wgdmVyc2lvbiAxLjIgKEFQSSB2Mikgb25seS4KKyAvLyBSZXR1cm4gTlVM TCBpZiB0aGUgc3ltYm9sIGlzIG5vdCBkZWZpbmVkIGluIHRoaXMgcGFydGljdWxhciB2ZXJzaW9u LgorIHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV92Ml9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0 IGNoYXIqIG5hbWUpIHsKKy0gIHJldHVybiBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8x LjIiKTsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51 bWFfMS4yIik7CisgfQorCisgYm9vbCBvczo6TGludXg6OmxpYm51bWFfaW5pdCgpIHsKKy0tLSBv bGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCisrKysgbmV3 L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorQEAgLTc1LDkg Kzc1LDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5j bHVkZSA8dWNvbnRleHQuaD4KKy0jaWZuZGVmIEFNRDY0CistIyBpbmNsdWRlIDxmcHVfY29udHJv bC5oPgorLSNlbmRpZgorCisgI2lmZGVmIEFNRDY0CisgI2RlZmluZSBSRUdfU1AgUkVHX1JTUAor LS0tIG9sZC9zcmMvaG90c3BvdC9zaGFyZS9nYy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVhcC5jcHAK KysrKyBuZXcvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3Bw CitAQCAtMTE0Nyw3ICsxMTQ3LDcgQEAKKyBzdGF0aWMgU2NyYXRjaEJsb2NrICpyZW1vdmVTbWFs bGVzdFNjcmF0Y2goU2NyYXRjaEJsb2NrICoqcHJldl9wdHIpIHsKKyAgIGJvb2wgZmlyc3QgPSB0 cnVlOworICAgc2l6ZV90IG1pbl9zaXplID0gMDsgICAvLyAiZmlyc3QiIG1ha2VzIHRoaXMgY29u Y2VwdHVhbGx5IGluZmluaXRlLgorLSAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyLCAqc21h bGxlc3Q7CisrICBTY3JhdGNoQmxvY2sgKipzbWFsbGVzdF9wdHIgPSBOVUxMLCAqc21hbGxlc3Q7 CisgICBTY3JhdGNoQmxvY2sgICpjdXIgPSAqcHJldl9wdHI7CisgICB3aGlsZSAoY3VyKSB7Cisg ICAgIGFzc2VydCgqcHJldl9wdHIgPT0gY3VyLCAianVzdCBjaGVja2luZyIpOworLS0tIG9sZC9z cmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL3ZtX3ZlcnNpb24uY3BwCisrKysgbmV3L3NyYy9ob3Rz cG90L3NoYXJlL3J1bnRpbWUvdm1fdmVyc2lvbi5jcHAKK0BAIC0yNzIsNyArMjcyLDcgQEAKKyAg ICNlbmRpZgorCisgICAjZGVmaW5lIElOVEVSTkFMX1ZFUlNJT05fU1VGRklYIFZNX1JFTEVBU0Ug IikiIFwKKy0gICAgICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9TVFIgXAorKyAg ICAgICAgICIgZm9yICIgT1MgIi0iIENQVSBGTE9BVF9BUkNIX1NUUiBMSUJDIFwKKyAgICAgICAg ICAiIEpSRSAoIiBWRVJTSU9OX1NUUklORyAiKSwgYnVpbHQgb24gIiBfX0RBVEVfXyAiICIgX19U SU1FX18gXAorICAgICAgICAgICIgYnkgIiBYU1RSKEhPVFNQT1RfQlVJTERfVVNFUikgIiB3aXRo ICIgSE9UU1BPVF9CVUlMRF9DT01QSUxFUgorCistLS0gb2xkL3NyYy9ob3RzcG90L3NoYXJlL3V0 aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCisrKysgbmV3L3NyYy9ob3RzcG90L3No YXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCitAQCAtMjA0LDcgKzIwNCw3 IEBACisgI2VsaWYgZGVmaW5lZChfX0FQUExFX18pCisgaW5saW5lIGludCBnX2lzbmFuKGRvdWJs ZSBmKSB7IHJldHVybiBpc25hbihmKTsgfQorICNlbGlmIGRlZmluZWQoTElOVVgpIHx8IGRlZmlu ZWQoX0FMTEJTRF9TT1VSQ0UpCistaW5saW5lIGludCBnX2lzbmFuKGZsb2F0ICBmKSB7IHJldHVy biBpc25hbmYoZik7IH0KKytpbmxpbmUgaW50IGdfaXNuYW4oZmxvYXQgIGYpIHsgcmV0dXJuIGlz bmFuKGYpOyB9CisgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbihm KTsgfQorICNlbHNlCisgI2Vycm9yICJtaXNzaW5nIHBsYXRmb3JtLXNwZWNpZmljIGRlZmluaXRp b24gaGVyZSIKKy0tLSBvbGQvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4 X2Nsb3NlLmMKKysrKyBuZXcvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4 X2Nsb3NlLmMKK0BAIC02MCw3ICs2MCw3IEBACisgLyoKKyAgKiBTaWduYWwgdG8gdW5ibG9jayB0 aHJlYWQKKyAgKi8KKy1zdGF0aWMgaW50IHNpZ1dha2V1cCA9IChfX1NJR1JUTUFYIC0gMik7Cisr c3RhdGljIGludCBzaWdXYWtldXA7CisKKyAvKgorICAqIGZkVGFibGUgaG9sZHMgb25lIGVudHJ5 IHBlciBmaWxlIGRlc2NyaXB0b3IsIHVwIHRvIGEgY2VydGFpbgorQEAgLTE0OSw2ICsxNDksNyBA QAorICAgICAvKgorICAgICAgKiBTZXR1cCB0aGUgc2lnbmFsIGhhbmRsZXIKKyAgICAgICovCisr ICAgIHNpZ1dha2V1cCA9IFNJR1JUTUFYIC0gMjsKKyAgICAgc2Euc2FfaGFuZGxlciA9IHNpZ193 YWtldXA7CisgICAgIHNhLnNhX2ZsYWdzICAgPSAwOworICAgICBzaWdlbXB0eXNldCgmc2Euc2Ff bWFzayk7CistLS0gb2xkL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHBy b2MuYworKysrIG5ldy9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9j LmMKK0BAIC0yMzcsNyArMjM3LDEzIEBACisgeworICAgICBpZiAoZW52cCA9PSBOVUxMIHx8IChj aGFyICoqKSBlbnZwID09IGVudmlyb24pIHsKKyAgICAgICAgIGV4ZWN2cChmaWxlLCAoY2hhciAq KikgYXJndik7CistICAgICAgICByZXR1cm47CisrICAgICAgICAvLyBFTk9FWEVDIGluZGljYXRl cyB0aGF0IHRoZSBmaWxlIGhlYWRlciB3YXMgbm90IHJlY29nbml6ZWQuIFRoZSBtdXNsIEMKKysg ICAgICAgIC8vIGxpYnJhcnkgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBmYWxsYmFjayB0byAvYmlu L3NoIGZvciB0aGF0IGNhc2UsIHNvIGZhbGwKKysgICAgICAgIC8vIHRocm91Z2ggdG8gdGhlIGNv ZGUgYmVsb3cgd2hpY2ggaW1wbGVtZW50cyB0aGF0IGZhbGxiYWNrIHVzaW5nCisrICAgICAgICAv LyBleGVjdmVfd2l0aF9zaGVsbF9mYWxsYmFjay4KKysgICAgICAgIGlmIChlcnJubyAhPSBFTk9F WEVDKSB7CisrICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQorICAgICB9CisKKyAgICAg aWYgKCpmaWxlID09ICdcMCcpIHsKKy0tLSBvbGQvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9s aWJqYXZhL2pka191dGlsX21kLmgKKysrKyBuZXcvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9s aWJqYXZhL2pka191dGlsX21kLmgKK0BAIC0zNyw3ICszNyw3IEBACisgI2RlZmluZSBJU05BTkQo ZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfQUxMQlNE X1NPVVJDRSkKKyAjaW5jbHVkZSA8bWF0aC5oPgorLSNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuZihm KQorKyNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuKGYpCisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4o ZCkKKyAjZWxpZiBkZWZpbmVkKF9BSVgpCisgI2luY2x1ZGUgPG1hdGguaD4KKy0tLSBvbGQvc3Jj L2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMKKysrKyBuZXcv c3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMKK0BAIC0y MzUsNiArMjM1LDM5IEBACisgICAgIGNoYXIgKmRtbGxwID0gTlVMTDsKKyAgICAgY2hhciAqcDsg LyogYSB1dGlsaXR5IHBvaW50ZXIgKi8KKworKyNpZmRlZiBfX2xpbnV4CisrI2lmbmRlZiBMSUJD CisrI2Vycm9yICJMSUJDIG5vdCBzZXQiCisrI2VuZGlmCisrCisrICAgIGlmIChzdHJjbXAoTElC QywgIm11c2wiKSA9PSAwKSB7CisrICAgICAgLyoKKysgICAgICAgKiBUaGUgbXVzbCBsaWJyYXJ5 IGxvYWRlciByZXF1aXJlcyBMRF9MSUJSQVJZX1BBVEggdG8gYmUgc2V0IGluCisrICAgICAgICog b3JkZXIgdG8gY29ycmVjdGx5IHJlc29sdmUgdGhlIGRlcGVuZGVuY3kgbGliamF2YS5zbyBoYXMg b24gbGlianZtLnNvLgorKyAgICAgICAqCisrICAgICAgICogU3BlY2lmaWNhbGx5LCBpdCBkaWZm ZXJzIGZyb20gZ2xpYmMgaW4gdGhlIHNlbnNlIHRoYXQgZXZlbiBpZgorKyAgICAgICAqIGxpYmp2 bS5zbyBoYXMgYWxyZWFkeSBiZWVuIGxvYWRlZCBpdCB3aWxsIG5vdCBiZSBjb25zaWRlcmVkIGEK KysgICAgICAgKiBjYW5kaWRhdGUgZm9yIHJlc29sdmluZyB0aGUgZGVwZW5kZW5jeSB1bmxlc3Mg dGhlICpmdWxsKiBwYXRoCisrICAgICAgICogb2YgdGhlIGFscmVhZHkgbG9hZGVkIGxpYnJhcnkg bWF0Y2hlcyB0aGUgZGVwZW5kZW5jeSBiZWluZyBsb2FkZWQuCisrICAgICAgICoKKysgICAgICAg KiBsaWJqdm0uc28gaXMgYmVpbmcgbG9hZGVkIGJ5IHRoZSBsYXVuY2hlciB1c2luZyBhIGxvbmcg cGF0aCB0bworKyAgICAgICAqIGRsb3Blbiwgbm90IGp1c3QgdGhlIGJhc2VuYW1lIG9mIHRoZSBs aWJyYXJ5LiBUeXBpY2FsbHkgdGhpcworKyAgICAgICAqIGlzIHNvbWV0aGluZyBsaWtlICIuLi9s aWIvc2VydmVyL2xpYmp2bS5zbyIuIEhvd2V2ZXIsIGlmL3doZW4KKysgICAgICAgKiBsaWJqdm0u c28gbGF0ZXIgdHJpZXMgdG8gZGxvcGVuIGxpYmphdmEuc28gKHdoaWNoIGl0IGRvZXMgaW4KKysg ICAgICAgKiBvcmRlciB0byBnZXQgYWNjZXNzIHRvIGEgZmV3IGZ1bmN0aW9ucyBpbXBsZW1lbnRl ZCBpbgorKyAgICAgICAqIGxpYmphdmEuc28pIHRoZSBtdXNsIGxvYWRlciB3aWxsLCBhcyBwYXJ0 IG9mIGxvYWRpbmcKKysgICAgICAgKiBkZXBlbmRlbnQgbGlicmFyaWVzLCB0cnkgdG8gbG9hZCBs aWJqdm0uc28gdXNpbmcgb25seSBpdHMKKysgICAgICAgKiBiYXNlbmFtZSAibGlianZtLnNvIi4g U2luY2UgdGhpcyBkb2VzIG5vdCBtYXRjaCB0aGUgbG9uZ2VyCisrICAgICAgICogcGF0aCBwYXRo IGl0IHdhcyBmaXJzdCBsb2FkZWQgd2l0aCwgdGhlIGFscmVhZHkgbG9hZGVkCisrICAgICAgICog bGlicmFyeSBpcyBub3QgY29uc2lkZXJlZCBhIGNhbmRpZGF0ZSwgYW5kIHRoZSBsb2FkZXIgd2ls bAorKyAgICAgICAqIGluc3RlYWQgbG9vayBmb3IgbGlianZtLnNvIGVsc2V3aGVyZS4gSWYgaXQn cyBub3QgaW4KKysgICAgICAgKiBMRF9MSUJSQVJZX1BBVEggdGhlIGRlcGVuZGVuY3kgbG9hZCB3 aWxsIGZhaWwsIGFuZCBsaWJqYXZhLnNvCisrICAgICAgICogd2lsbCB0aGVyZWZvcmUgZmFpbCBh cyB3ZWxsLgorKyAgICAgICAqLworKyAgICAgIHJldHVybiBKTklfVFJVRTsKKysgICAgfQorKyNl bmRpZgorKworICNpZmRlZiBBSVgKKyAgICAgLyogV2UgYWx3YXlzIGhhdmUgdG8gc2V0IHRoZSBM SUJQQVRIIG9uIEFJWCBiZWNhdXNlIGxkIGRvZXNuJ3Qgc3VwcG9ydCAkT1JJR0lOLiAqLworICAg ICByZXR1cm4gSk5JX1RSVUU7CistLS0gb2xkL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGli bmlvL2NoL05hdGl2ZVRocmVhZC5jCisrKysgbmV3L3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUv bGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCitAQCAtMzYsNyArMzYsNyBAQAorICNpZmRlZiBfX2xp bnV4X18KKyAgICNpbmNsdWRlIDxwdGhyZWFkLmg+CisgICAvKiBBbHNvIGRlZmluZWQgaW4gbmV0 L2xpbnV4X2Nsb3NlLmMgKi8KKy0gICNkZWZpbmUgSU5URVJSVVBUX1NJR05BTCAoX19TSUdSVE1B WCAtIDIpCisrICAjZGVmaW5lIElOVEVSUlVQVF9TSUdOQUwgKFNJR1JUTUFYIC0gMikKKyAjZWxp ZiBfQUlYCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAgLyogQWxzbyBkZWZpbmVkIGluIG5l dC9haXhfY2xvc2UuYyAqLworLS0tIG9sZC9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xp YmF3dF94YXd0L3hhd3QvWFRvb2xraXQuYworKysrIG5ldy9zcmMvamF2YS5kZXNrdG9wL3VuaXgv bmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xraXQuYworQEAgLTI3LDkgKzI3LDYgQEAKKyAj aW5jbHVkZSA8WDExL1h1dGlsLmg+CisgI2luY2x1ZGUgPFgxMS9Yb3MuaD4KKyAjaW5jbHVkZSA8 WDExL1hhdG9tLmg+CistI2lmZGVmIF9fbGludXhfXworLSNpbmNsdWRlIDxleGVjaW5mby5oPgor LSNlbmRpZgorCisgI2luY2x1ZGUgPGp2bS5oPgorICNpbmNsdWRlIDxqbmkuaD4KK0BAIC03ODYs MjYgKzc4Myw2IEBACisgICAgIH0KKyAgICAgcmV0dXJuIHJldDsKKyB9CistCistI2lmZGVmIF9f bGludXhfXworLXZvaWQgcHJpbnRfc3RhY2sodm9pZCkKKy17CistICB2b2lkICphcnJheVsxMF07 CistICBzaXplX3Qgc2l6ZTsKKy0gIGNoYXIgKipzdHJpbmdzOworLSAgc2l6ZV90IGk7CistCist ICBzaXplID0gYmFja3RyYWNlIChhcnJheSwgMTApOworLSAgc3RyaW5ncyA9IGJhY2t0cmFjZV9z eW1ib2xzIChhcnJheSwgc2l6ZSk7CistCistICBmcHJpbnRmIChzdGRlcnIsICJPYnRhaW5lZCAl emQgc3RhY2sgZnJhbWVzLlxuIiwgc2l6ZSk7CistCistICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsg aSsrKQorLSAgICAgZnByaW50ZiAoc3RkZXJyLCAiJXNcbiIsIHN0cmluZ3NbaV0pOworLQorLSAg ZnJlZSAoc3RyaW5ncyk7CistfQorLSNlbmRpZgorCisgV2luZG93IGdldF94YXd0X3Jvb3Rfc2hl bGwoSk5JRW52ICplbnYpIHsKKyAgIHN0YXRpYyBqY2xhc3MgY2xhc3NYUm9vdFdpbmRvdyA9IE5V TEw7CistLS0gb2xkL3NyYy9qZGsuamR3cC5hZ2VudC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGls LmgKKysrKyBuZXcvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwu aAorQEAgLTM1LDE1ICszNSwxNSBAQAorICNpZmRlZiBERUJVRworICAgICAvKiBKdXN0IHRvIG1h a2Ugc3VyZSB0aGVzZSBpbnRlcmZhY2VzIGFyZSBub3QgdXNlZCBoZXJlLiAqLworICAgICAjdW5k ZWYgZnJlZQorLSAgICAjZGVmaW5lIGZyZWUocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4K KysgICAgI2RlZmluZSBmcmVlIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfZnJlZQorICAgICAj dW5kZWYgbWFsbG9jCistICAgICNkZWZpbmUgbWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRl cmZhY2UuCisrICAgICNkZWZpbmUgbWFsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfbWFs bG9jCisgICAgICN1bmRlZiBjYWxsb2MKKy0gICAgI2RlZmluZSBjYWxsb2MocCkgRG8gbm90IHVz ZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBjYWxsb2MgZG9fbm90X3VzZV90aGlzX2lu dGVyZmFjZV9jYWxsb2MKKyAgICAgI3VuZGVmIHJlYWxsb2MKKy0gICAgI2RlZmluZSByZWFsbG9j KHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgcmVhbGxvYyBkb19u b3RfdXNlX3RoaXNfaW50ZXJmYWNlX3JlYWxsb2MKKyAgICAgI3VuZGVmIHN0cmR1cAorLSAgICAj ZGVmaW5lIHN0cmR1cChwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5l IHN0cmR1cCBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3N0cmR1cAorICNlbmRpZgorCisgI2lu Y2x1ZGUgImxvZ19tZXNzYWdlcy5oIgorLS0tIG9sZC90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGlt ZS9TdGFja0d1YXJkUGFnZXMvZXhlaW52b2tlLmMKKysrKyBuZXcvdGVzdC9ob3RzcG90L2p0cmVn L3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5jCitAQCAtMzMsNiArMzMsNyBAQAor CisgI2luY2x1ZGUgPGFzc2VydC5oPgorICNpbmNsdWRlIDxqbmkuaD4KKysjaW5jbHVkZSA8anZt Lmg+CisgI2luY2x1ZGUgPGFsbG9jYS5oPgorICNpbmNsdWRlIDxzaWduYWwuaD4KKyAjaW5jbHVk ZSA8c3RyaW5nLmg+CitAQCAtOTEsNiArOTIsMjAgQEAKKyAgIH0KKyB9CisKKytpbnQgZ2V0X2ph dmFfc3RhY2tzaXplICgpIHsKKysgIHNpemVfdCBzdGFja3NpemU7CisrICBwdGhyZWFkX2F0dHJf dCBhdHRyOworKyAgSkRLMV8xSW5pdEFyZ3MgamRrX2FyZ3M7CisrCisrICBqZGtfYXJncy52ZXJz aW9uID0gSk5JX1ZFUlNJT05fMV8xOworKyAgSk5JX0dldERlZmF1bHRKYXZhVk1Jbml0QXJncygm amRrX2FyZ3MpOworKyAgaWYgKGpka19hcmdzLmphdmFTdGFja1NpemUgPD0gMCkgeworKyAgICBm cHJpbnRmKHN0ZGVyciwgIlRlc3QgRVJST1IuIENhbid0IGdldCBhIHZhbGlkIHZhbHVlIGZvciB0 aGUgZGVmYXVsdCBzdGFja3NpemUuXG4iKTsKKysgICAgZXhpdCg3KTsKKysgIH0KKysgIHJldHVy biBqZGtfYXJncy5qYXZhU3RhY2tTaXplOworK30KKysKKyB2b2lkICpydW5famF2YV9vdmVyZmxv dyAodm9pZCAqcCkgeworICAgSk5JRW52ICplbnY7CisgICBqY2xhc3MgY2xhc3NfaWQ7CitAQCAt MjU0LDEzICsyNjksMTkgQEAKKyAgICAgZXhpdCg3KTsKKyAgIH0KKworKyAgaW50IHN0YWNrX3Np emUgPSBnZXRfamF2YV9zdGFja3NpemUoKTsKKyAgIHB0aHJlYWRfdCB0aHI7CisrICBwdGhyZWFk X2F0dHJfdCB0aHJlYWRfYXR0cjsKKworKyAgcHRocmVhZF9hdHRyX2luaXQoJnRocmVhZF9hdHRy KTsKKysgIHB0aHJlYWRfYXR0cl9zZXRzdGFja3NpemUoJnRocmVhZF9hdHRyLCBzdGFja19zaXpl KTsKKysKKyAgIGlmIChhcmdjID4gMSAmJiBzdHJjbXAoYXJndlsxXSwgInRlc3RfamF2YV9vdmVy ZmxvdyIpID09IDApIHsKKyAgICAgcHJpbnRmKCJcblRlc3RpbmcgSkFWQV9PVkVSRkxPV1xuIik7 CisKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBv dGhlciB0aHJlYWRcbiIpOworLSAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgTlVMTCwgcnVuX2ph dmFfb3ZlcmZsb3csIE5VTEwpOworKworKyAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgJnRocmVh ZF9hdHRyLCBydW5famF2YV9vdmVyZmxvdywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9pbiAodGhy LCBOVUxMKTsKKworICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlv dXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKK0BAIC0yNzMsNyArMjk0LDcgQEAKKyAgICAgcHJp bnRmKCJcblRlc3RpbmcgTkFUSVZFX09WRVJGTE9XXG4iKTsKKworICAgICBwcmludGYoIlRlc3Rp bmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7CistICAg IHB0aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsK KysgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVuX25hdGl2ZV9vdmVy ZmxvdywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxMKTsKKworICAgICBwcmlu dGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFk XG4iKTsKKy0tLSBvbGQvdGVzdC9qZGsvamF2YS9sYW5nL1Byb2Nlc3NCdWlsZGVyL0Jhc2ljLmph dmEKKysrKyBuZXcvdGVzdC9qZGsvamF2YS9sYW5nL1Byb2Nlc3NCdWlsZGVyL0Jhc2ljLmphdmEK K0BAIC0zODksOCArMzg5LDggQEAKKyAgICAgICAgICAgICAgICAgaWYgKGZhaWxlZCAhPSAwKSB0 aHJvdyBuZXcgRXJyb3IoIm51bGwgUEFUSCIpOworICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWN0 aW9uLmVxdWFscygiUEFUSCBzZWFyY2ggYWxnb3JpdGhtIikpIHsKKyAgICAgICAgICAgICAgICAg ZXF1YWwoU3lzdGVtLmdldGVudigiUEFUSCIpLCAiZGlyMTpkaXIyOiIpOworLSAgICAgICAgICAg ICAgICBjaGVjayhuZXcgRmlsZSgiL2Jpbi90cnVlIikuZXhpc3RzKCkpOworLSAgICAgICAgICAg ICAgICBjaGVjayhuZXcgRmlsZSgiL2Jpbi9mYWxzZSIpLmV4aXN0cygpKTsKKysgICAgICAgICAg ICAgICAgY2hlY2sobmV3IEZpbGUoVHJ1ZUV4ZS5wYXRoKCkpLmV4aXN0cygpKTsKKysgICAgICAg ICAgICAgICAgY2hlY2sobmV3IEZpbGUoRmFsc2VFeGUucGF0aCgpKS5leGlzdHMoKSk7CisgICAg ICAgICAgICAgICAgIFN0cmluZ1tdIGNtZCA9IHsicHJvZyJ9OworICAgICAgICAgICAgICAgICBQ cm9jZXNzQnVpbGRlciBwYjEgPSBuZXcgUHJvY2Vzc0J1aWxkZXIoY21kKTsKKyAgICAgICAgICAg ICAgICAgUHJvY2Vzc0J1aWxkZXIgcGIyID0gbmV3IFByb2Nlc3NCdWlsZGVyKGNtZCk7CitAQCAt NDMxLDEzICs0MzEsMTMgQEAKKyAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Blcm1pc3Np b25EZW5pZWQocGIpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGludWUgc2Vh cmNoaW5nIGlmIEVBQ0NFUworLSAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoIi9iaW4vdHJ1 ZSIsICJkaXIyL3Byb2ciKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBjb3B5KFRydWVFeGUu cGF0aCgpLCAiZGlyMi9wcm9nIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgZXF1YWwocnVu KHBiKS5leGl0VmFsdWUoKSwgVHJ1ZS5leGl0VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgbmV3IEZpbGUoImRpcjEvcHJvZyIpLmRlbGV0ZSgpOworICAgICAgICAgICAgICAgICAg ICAgICAgIG5ldyBGaWxlKCJkaXIyL3Byb2ciKS5kZWxldGUoKTsKKworICAgICAgICAgICAgICAg ICAgICAgICAgIG5ldyBGaWxlKCJkaXIyL3Byb2ciKS5ta2RpcnMoKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBjb3B5KCIvYmluL3RydWUiLCAiZGlyMS9wcm9nIik7CisrICAgICAgICAgICAg ICAgICAgICAgICAgY29weShUcnVlRXhlLnBhdGgoKSwgImRpcjEvcHJvZyIpOworICAgICAgICAg ICAgICAgICAgICAgICAgIGVxdWFsKHJ1bihwYikuZXhpdFZhbHVlKCksIFRydWUuZXhpdFZhbHVl KCkpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgZW1wdHkgUEFUSCBjb21w b25lbnQgbWVhbnMgY3VycmVudCBkaXJlY3RvcnkuCitAQCAtNDUzLDEwICs0NTMsMTAgQEAKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGIuY29tbWFuZChjb21tYW5kKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRmlsZSBwcm9nID0gbmV3IEZpbGUoIi4vcHJvZyIpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAiTm9ybWFsIiBiaW5hcmllcworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb3B5KCIvYmluL3RydWUiLCAiLi9wcm9nIik7CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvcHkoVHJ1ZUV4ZS5wYXRoKCksICIuL3Byb2ciKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXF1YWwocnVuKHBiKS5leGl0VmFsdWUoKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZS5leGl0VmFsdWUoKSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoIi9iaW4vZmFsc2UiLCAiLi9wcm9nIik7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoRmFsc2VFeGUucGF0aCgpLCAiLi9wcm9n Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVxdWFsKHJ1bihwYikuZXhpdFZhbHVl KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlLmV4aXRWYWx1ZSgp KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZy5kZWxldGUoKTsKK0BAIC01MTEs MTIgKzUxMSwxMiBAQAorICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlKCJkaXIyL3By b2ciKS5kZWxldGUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZSgicHJvZyIp LmRlbGV0ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlKCJkaXIzIikubWtk aXJzKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgY29weSgiL2Jpbi90cnVlIiwgImRpcjEv cHJvZyIpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoIi9iaW4vZmFsc2UiLCAiZGly My9wcm9nIik7CisrICAgICAgICAgICAgICAgICAgICAgICAgY29weShUcnVlRXhlLnBhdGgoKSwg ImRpcjEvcHJvZyIpOworKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoRmFsc2VFeGUucGF0 aCgpLCAiZGlyMy9wcm9nIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgcGIuZW52aXJvbm1l bnQoKS5wdXQoIlBBVEgiLCJkaXIzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgZXF1YWwo cnVuKHBiKS5leGl0VmFsdWUoKSwgVHJ1ZS5leGl0VmFsdWUoKSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgY29weSgiL2Jpbi90cnVlIiwgImRpcjMvcHJvZyIpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGNvcHkoIi9iaW4vZmFsc2UiLCAiZGlyMS9wcm9nIik7CisrICAgICAgICAgICAg ICAgICAgICAgICAgY29weShUcnVlRXhlLnBhdGgoKSwgImRpcjMvcHJvZyIpOworKyAgICAgICAg ICAgICAgICAgICAgICAgIGNvcHkoRmFsc2VFeGUucGF0aCgpLCAiZGlyMS9wcm9nIik7CisgICAg ICAgICAgICAgICAgICAgICAgICAgZXF1YWwocnVuKHBiKS5leGl0VmFsdWUoKSwgRmFsc2UuZXhp dFZhbHVlKCkpOworCisgICAgICAgICAgICAgICAgICAgICB9IGZpbmFsbHkgeworQEAgLTYxMyw2 ICs2MTMsMTMgQEAKKyAgICAgICAgICAgICAgbmV3IEZpbGUoIi9iaW4vZmFsc2UiKS5leGlzdHMo KSk7CisgICAgIH0KKworKyAgICBzdGF0aWMgY2xhc3MgQnVzeUJveCB7CisrICAgICAgICBwdWJs aWMgc3RhdGljIGJvb2xlYW4gaXMoKSB7IHJldHVybiBpczsgfQorKyAgICAgICAgcHJpdmF0ZSBz dGF0aWMgZmluYWwgYm9vbGVhbiBpcyA9CisrICAgICAgICAgICAgKCEgV2luZG93cy5pcygpICYm CisrICAgICAgICAgICAgIG5ldyBGaWxlKCIvYmluL2J1c3lib3giKS5leGlzdHMoKSk7CisrICAg IH0KKysKKyAgICAgc3RhdGljIGNsYXNzIFVuaWNvZGVPUyB7CisgICAgICAgICBwdWJsaWMgc3Rh dGljIGJvb2xlYW4gaXMoKSB7IHJldHVybiBpczsgfQorICAgICAgICAgcHJpdmF0ZSBzdGF0aWMg ZmluYWwgU3RyaW5nIG9zTmFtZSA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgib3MubmFtZSIpOworQEAg LTY1MSw2ICs2NTgsNDUgQEAKKyAgICAgICAgIH0KKyAgICAgfQorCisrICAgIC8vIE9uIGFscGlu ZSBsaW51eCwgL2Jpbi90cnVlIGFuZCAvYmluL2ZhbHNlIGFyZSBqdXN0IGxpbmtzIHRvIC9iaW4v YnVzeWJveC4KKysgICAgLy8gU29tZSB0ZXN0cyBjb3B5IC9iaW4vdHJ1ZSBhbmQgL2Jpbi9mYWxz ZSB0byBmaWxlcyB3aXRoIGEgZGlmZmVyZW50IGZpbGVuYW1lLgorKyAgICAvLyBIb3dldmVyLCBj b3B5aW5nIHRoZSBidXNib3ggZXhlY3V0YWJsZSBpbnRvIGEgZmlsZSB3aXRoIGEgZGlmZmVyZW50 IG5hbWUKKysgICAgLy8gd29uJ3QgcmVzdWx0IGluIHRoZSBleHBlY3RlZCByZXR1cm4gY29kZXMu IEFzIHdvcmthcm91bmQsIHdlIGNyZWF0ZQorKyAgICAvLyBleGVjdXRhYmxlIGZpbGVzIHRoYXQg Y2FuIGJlIGNvcGllZCBhbmQgcHJvZHVjZSB0aGUgZXhlcGVjdGVkIHJldHVybgorKyAgICAvLyB2 YWx1ZXMuIFdlIHVzZSB0aGlzIHdvcmthcm91bmQsIGlmIHdlIGZpbmQgdGhlIGJ1c3lib3ggZXhl Y3V0YWJsZS4KKysKKysgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgVHJ1ZUV4ZSB7CisrICAgICAg ICBwdWJsaWMgc3RhdGljIFN0cmluZyBwYXRoKCkgeyByZXR1cm4gcGF0aDsgfQorKyAgICAgICAg cHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHBhdGggPSBwYXRoMCgpOworKyAgICAgICAgcHJp dmF0ZSBzdGF0aWMgU3RyaW5nIHBhdGgwKCl7CisrICAgICAgICAgICAgaWYgKCFCdXN5Qm94Lmlz KCkpIHsKKysgICAgICAgICAgICAgICAgcmV0dXJuICIvYmluL3RydWUiOworKyAgICAgICAgICAg IH0KKysgICAgICAgICAgICBlbHNlIHsKKysgICAgICAgICAgICAgICAgRmlsZSB0cnVlRXhlID0g bmV3IEZpbGUoInRydWUiKTsKKysgICAgICAgICAgICAgICAgc2V0RmlsZUNvbnRlbnRzKHRydWVF eGUsICIjIS9iaW4vdHJ1ZVxuIik7CisrICAgICAgICAgICAgICAgIHRydWVFeGUuc2V0RXhlY3V0 YWJsZSh0cnVlKTsKKysgICAgICAgICAgICAgICAgcmV0dXJuIHRydWVFeGUuZ2V0QWJzb2x1dGVQ YXRoKCk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICB9CisrCisrICAgIHByaXZh dGUgc3RhdGljIGNsYXNzIEZhbHNlRXhlIHsKKysgICAgICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5n IHBhdGgoKSB7IHJldHVybiBwYXRoOyB9CisrICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBT dHJpbmcgcGF0aCA9IHBhdGgwKCk7CisrICAgICAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgcGF0 aDAoKXsKKysgICAgICAgICAgICBpZiAoIUJ1c3lCb3guaXMoKSkgeworKyAgICAgICAgICAgICAg ICByZXR1cm4gIi9iaW4vZmFsc2UiOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICBlbHNl IHsKKysgICAgICAgICAgICAgICAgRmlsZSBmYWxzZUV4ZSA9IG5ldyBGaWxlKCJmYWxzZSIpOwor KyAgICAgICAgICAgICAgICBzZXRGaWxlQ29udGVudHMoZmFsc2VFeGUsICIjIS9iaW4vZmFsc2Vc biIpOworKyAgICAgICAgICAgICAgICBmYWxzZUV4ZS5zZXRFeGVjdXRhYmxlKHRydWUpOworKyAg ICAgICAgICAgICAgICByZXR1cm4gZmFsc2VFeGUuZ2V0QWJzb2x1dGVQYXRoKCk7CisrICAgICAg ICAgICAgfQorKyAgICAgICAgfQorKyAgICB9CisrCisgICAgIHN0YXRpYyBjbGFzcyBFbmdsaXNo VW5peCB7CisgICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBCb29sZWFuIGlzID0KKyAgICAg ICAgICAgICAoISBXaW5kb3dzLmlzKCkgJiYgaXNFbmdsaXNoKCJMQU5HIikgJiYgaXNFbmdsaXNo KCJMQ19BTEwiKSk7CitAQCAtMTk1NCw3ICsyMDAwLDcgQEAKKyAgICAgICAgICAgICAvLy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICBuZXcgRmlsZSgic3VCZGlS IikubWtkaXJzKCk7CistICAgICAgICAgICAgICAgIGNvcHkoIi9iaW4vdHJ1ZSIsICJzdUJkaVIv dW5saUtlbHkiKTsKKysgICAgICAgICAgICAgICAgY29weShUcnVlRXhlLnBhdGgoKSwgInN1QmRp Ui91bmxpS2VseSIpOworICAgICAgICAgICAgICAgICBmaW5hbCBQcm9jZXNzQnVpbGRlciBwYiA9 CisgICAgICAgICAgICAgICAgICAgICBuZXcgUHJvY2Vzc0J1aWxkZXIobmV3IFN0cmluZ1tdeyJ1 bmxpS2VseSJ9KTsKKyAgICAgICAgICAgICAgICAgcGIuZW52aXJvbm1lbnQoKS5wdXQoIlBBVEgi LCAic3VCZGlSIik7CistLS0gb2xkL3Rlc3QvamRrL2phdmEvbGFuZy9Qcm9jZXNzSGFuZGxlL0lu Zm9UZXN0LmphdmEKKysrKyBuZXcvdGVzdC9qZGsvamF2YS9sYW5nL1Byb2Nlc3NIYW5kbGUvSW5m b1Rlc3QuamF2YQorQEAgLTI5OCw2ICsyOTgsMTMgQEAKKyAgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgICAgICBpZiAoaW5mby5jb21tYW5kKCkuaXNQcmVzZW50KCkpIHsKKyAgICAgICAg ICAgICAgICAgICAgIFN0cmluZyBjb21tYW5kID0gaW5mby5jb21tYW5kKCkuZ2V0KCk7CistICAg ICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSBQbGF0Zm9ybS5pc1dpbmRvd3MoKSA/ ICJzbGVlcC5leGUiIDogInNsZWVwIjsKKysgICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBl Y3RlZCA9ICJzbGVlcCI7CisrICAgICAgICAgICAgICAgICAgICBpZiAoUGxhdGZvcm0uaXNXaW5k b3dzKCkpIHsKKysgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9ICJzbGVlcC5leGUi OworKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXcgRmlsZSgiL2Jpbi9idXN5Ym94 IikuZXhpc3RzKCkpIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBXaXRoIGJ1c3lib3gg c2xlZXAgaXMganVzdCBhIHN5bSBsaW5rIHRvIGJ1c3lib3guCisrICAgICAgICAgICAgICAgICAg ICAgICAgLy8gVGhlIGJ1c2JveCBleGVjdXRhYmxlIGlzIHNlZW4gYXMgUHJvY2Vzc0hhbmRsZS5J bmZvIGNvbW1hbmQuCisrICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAiYnVzeWJv eCI7CisrICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBBc3NlcnQu YXNzZXJ0VHJ1ZShjb21tYW5kLmVuZHNXaXRoKGV4cGVjdGVkKSwgIkNvbW1hbmQ6IGV4cGVjdGVk OiBcJyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCArICJcJywgYWN0 dWFsOiAiICsgY29tbWFuZCk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGstMTEvZmlsZXMv bXVzbF9wYXRjaGVzL3BwYzY0bGUucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGstMTEvZmlsZXMvbXVz bF9wYXRjaGVzL3BwYzY0bGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjY3ZjY2NDIxNDJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrLTEx L2ZpbGVzL211c2xfcGF0Y2hlcy9wcGM2NGxlLnBhdGNoCkBAIC0wLDAgKzEsMjIxIEBACitQYXRj aGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVs aW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIw ZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9jcHUvcHBjL21hY3JvQXNzZW1ibGVyX3Bw Yy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9wcGMuY3Bw CitAQCAtMTI5MCw3ICsxMjkwLDExIEBACisgICAvLyB0aGUgc2FmZXBvaW5nIHBvbGxpbmcgcGFn ZS4KKyAgIHVjb250ZXh0X3QqIHVjID0gKHVjb250ZXh0X3QqKSB1Y29udGV4dDsKKyAgIC8vIFNl dCBwb2xsaW5nIGFkZHJlc3MuCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9f VUNMSUJDX18pCisgICBhZGRyZXNzIGFkZHIgPSAoYWRkcmVzcyl1Yy0+dWNfbWNvbnRleHQucmVn cy0+Z3ByW3JhXSArIChzc2l6ZV90KWRzOworKyNlbHNlIC8vIE11c2wKKysgIGFkZHJlc3MgYWRk ciA9IChhZGRyZXNzKXVjLT51Y19tY29udGV4dC5ncF9yZWdzW3JhXSArIChzc2l6ZV90KSBkczsK KysjZW5kaWYKKyAgIGlmIChwb2xsaW5nX2FkZHJlc3NfcHRyICE9IE5VTEwpIHsKKyAgICAgKnBv bGxpbmdfYWRkcmVzc19wdHIgPSBhZGRyOworICAgfQorQEAgLTEzMTEsMTUgKzEzMTUsMjQgQEAK KyAgICAgaW50IHJiID0gaW52X3JiX2ZpZWxkKGluc3RydWN0aW9uKTsKKworICAgICAvLyBsb29r IHVwIGNvbnRlbnQgb2YgcmEgYW5kIHJiIGluIHVjb250ZXh0CisrI2lmIGRlZmluZWQoX19HTElC Q19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICAgIGFkZHJlc3MgcmFfdmFsPShhZGRyZXNz KXVjLT51Y19tY29udGV4dC5yZWdzLT5ncHJbcmFdOworICAgICBsb25nIHJiX3ZhbD0obG9uZyl1 Yy0+dWNfbWNvbnRleHQucmVncy0+Z3ByW3JiXTsKKysjZWxzZSAvLyBNdXNsCisrICAgIGFkZHJl c3MgcmFfdmFsPShhZGRyZXNzKXVjLT51Y19tY29udGV4dC5ncF9yZWdzW3JhXTsKKysgICAgbG9u ZyByYl92YWw9KGxvbmcpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbcmJdOworKyNlbmRpZgorICAg ICByZXR1cm4gb3M6OmlzX21lbW9yeV9zZXJpYWxpemVfcGFnZSh0aHJlYWQsIHJhX3ZhbCtyYl92 YWwpOworICAgfSBlbHNlIGlmIChpc19zdHcoaW5zdHJ1Y3Rpb24pIHx8IGlzX3N0d3UoaW5zdHJ1 Y3Rpb24pKSB7CisgICAgIGludCByYSA9IGludl9yYV9maWVsZChpbnN0cnVjdGlvbik7CisgICAg IGludCBkMSA9IGludl9kMV9maWVsZChpbnN0cnVjdGlvbik7CisKKyAgICAgLy8gbG9vayB1cCBj b250ZW50IG9mIHJhIGluIHVjb250ZXh0CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZp bmVkKF9fVUNMSUJDX18pCisgICAgIGFkZHJlc3MgcmFfdmFsPShhZGRyZXNzKXVjLT51Y19tY29u dGV4dC5yZWdzLT5ncHJbcmFdOworKyNlbHNlIC8vIE11c2wKKysgICAgYWRkcmVzcyByYV92YWw9 KGFkZHJlc3MpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbcmFdOworKyNlbmRpZgorICAgICByZXR1 cm4gb3M6OmlzX21lbW9yeV9zZXJpYWxpemVfcGFnZSh0aHJlYWQsIHJhX3ZhbCtkMSk7CisgICB9 IGVsc2UgeworICAgICByZXR1cm4gZmFsc2U7CitAQCAtMTM4MiwxMSArMTM5NSwyMCBAQAorICAg ICAgIHx8IChpc19zdGR1KGluc3RydWN0aW9uKSAmJiBycyA9PSAxKSkgeworICAgICBpbnQgZHMg PSBpbnZfZHNfZmllbGQoaW5zdHJ1Y3Rpb24pOworICAgICAvLyByZXR1cm4gYmFuZ2VkIGFkZHJl c3MKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgICAg cmV0dXJuIGRzKyhhZGRyZXNzKXVjLT51Y19tY29udGV4dC5yZWdzLT5ncHJbcmFdOworKyNlbHNl IC8vIE11c2wKKysgICAgcmV0dXJuIGRzKyhhZGRyZXNzKXVjLT51Y19tY29udGV4dC5ncF9yZWdz W3JhXTsKKysjZW5kaWYKKyAgIH0gZWxzZSBpZiAoaXNfc3RkdXgoaW5zdHJ1Y3Rpb24pICYmIHJz ID09IDEpIHsKKyAgICAgaW50IHJiID0gaW52X3JiX2ZpZWxkKGluc3RydWN0aW9uKTsKKysjaWYg ZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgICAgYWRkcmVzcyBz cCA9IChhZGRyZXNzKXVjLT51Y19tY29udGV4dC5yZWdzLT5ncHJbMV07CisgICAgIGxvbmcgcmJf dmFsID0gKGxvbmcpdWMtPnVjX21jb250ZXh0LnJlZ3MtPmdwcltyYl07CisrI2Vsc2UgLy8gTXVz bAorKyAgICBhZGRyZXNzIHNwID0gKGFkZHJlc3MpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbMV07 CisrICAgIGxvbmcgcmJfdmFsID0gKGxvbmcpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbcmJdOwor KyNlbmRpZgorICAgICByZXR1cm4gcmEgIT0gMSB8fCByYl92YWwgPj0gMCA/IE5VTEwgICAgICAg ICAvLyBub3QgYSBzdGFjayBiYW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDogc3AgKyByYl92YWw7IC8vIGJhbmdlZCBhZGRyZXNzCisgICB9CistLS0gb2xkL3NyYy9ob3Rz cG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9w cGMvdm1fdmVyc2lvbl9wcGMuY3BwCitAQCAtNzY4LDcgKzc2OCw3IEBACisgICB1bnNpZ25lZCBs b25nIGF1eHYgPSBnZXRhdXh2YWwoQVRfSFdDQVAyKTsKKworICAgaWYgKGF1eHYgJiBQUENfRkVB VFVSRTJfSFRNX05PU0MpIHsKKy0gICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSEFTX0hUTSkg eworKyAgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IVE0pIHsKKyAgICAgICAvLyBUTSBvbiBQ T1dFUjggYW5kIFBPV0VSOSBpbiBjb21wYXQgbW9kZSAoVk0pIGlzIHN1cHBvcnRlZCBieSB0aGUg SlZNLgorICAgICAgIC8vIFRNIG9uIFBPV0VSOSBERDIuMSBOViAoYmFyZW1ldGFsKSBpcyBub3Qg c3VwcG9ydGVkIGJ5IHRoZSBKVk0gKFRNIG9uCisgICAgICAgLy8gUE9XRVI5IEREMi4xIE5WIGhh cyBhIGZldyBpc3N1ZXMgdGhhdCBuZWVkIGEgY291cGxlIG9mIGZpcm13YXJlCistLS0gb2xkL3Ny Yy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvb3NfbGludXhfcHBjLmNwcAorKysrIG5ldy9zcmMv aG90c3BvdC9vc19jcHUvbGludXhfcHBjL29zX2xpbnV4X3BwYy5jcHAKK0BAIC0xMDgsMjQgKzEw OCw0MiBAQAorICAgLy8gLSBpZiB1YyB3YXMgZmlsbGVkIGJ5IGdldGNvbnRleHQoKSwgaXQgaXMg dW5kZWZpbmVkIC0gZ2V0Y29udGV4dCgpIGRvZXMgbm90IGZpbGwKKyAgIC8vICAgaXQgYmVjYXVz ZSB0aGUgdm9sYXRpbGUgcmVnaXN0ZXJzIGFyZSBub3QgbmVlZGVkIHRvIG1ha2Ugc2V0Y29udGV4 dCgpIHdvcmsuCisgICAvLyAgIEhvcGVmdWxseSBpdCB3YXMgemVybydkIG91dCBiZWZvcmVoYW5k LgorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgZ3Vh cmFudGVlKHVjLT51Y19tY29udGV4dC5yZWdzICE9IE5VTEwsICJvbmx5IHVzZSB1Y29udGV4dF9n ZXRfcGMgaW4gc2lnYWN0aW9uIGNvbnRleHQiKTsKKyAgIHJldHVybiAoYWRkcmVzcyl1Yy0+dWNf bWNvbnRleHQucmVncy0+bmlwOworKyNlbHNlIC8vIE11c2wKKysgIGd1YXJhbnRlZSh1Yy0+dWNf bWNvbnRleHQuZ3BfcmVncyAhPSBOVUxMLCAib25seSB1c2UgdWNvbnRleHRfZ2V0X3BjIGluIHNp Z2FjdGlvbiBjb250ZXh0Iik7CisrICByZXR1cm4gKGFkZHJlc3MpdWMtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMzJdOworKyNlbmRpZgorIH0KKworIC8vIG1vZGlmeSBQQyBpbiB1Y29udGV4dC4KKyAv LyBOb3RlOiBPbmx5IHVzZSB0aGlzIGZvciBhbiB1Y29udGV4dCBoYW5kZWQgZG93biB0byBhIHNp Z25hbCBoYW5kbGVyLiBTZWUgY29tbWVudAorIC8vIGluIHVjb250ZXh0X2dldF9wYy4KKyB2b2lk IG9zOjpMaW51eDo6dWNvbnRleHRfc2V0X3BjKHVjb250ZXh0X3QgKiB1YywgYWRkcmVzcyBwYykg eworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgZ3Vh cmFudGVlKHVjLT51Y19tY29udGV4dC5yZWdzICE9IE5VTEwsICJvbmx5IHVzZSB1Y29udGV4dF9z ZXRfcGMgaW4gc2lnYWN0aW9uIGNvbnRleHQiKTsKKyAgIHVjLT51Y19tY29udGV4dC5yZWdzLT5u aXAgPSAodW5zaWduZWQgbG9uZylwYzsKKysjZWxzZSAvLyBNdXNsCisrICBndWFyYW50ZWUodWMt PnVjX21jb250ZXh0LmdwX3JlZ3MgIT0gTlVMTCwgIm9ubHkgdXNlIHVjb250ZXh0X3NldF9wYyBp biBzaWdhY3Rpb24gY29udGV4dCIpOworKyAgdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzJdID0g KHVuc2lnbmVkIGxvbmcpcGM7CisrI2VuZGlmCisgfQorCisgc3RhdGljIGFkZHJlc3MgdWNvbnRl eHRfZ2V0X2xyKGNvbnN0IHVjb250ZXh0X3QgKiB1YykgeworKyNpZiBkZWZpbmVkKF9fR0xJQkNf XykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgcmV0dXJuIChhZGRyZXNzKXVjLT51Y19tY29u dGV4dC5yZWdzLT5saW5rOworKyNlbHNlIC8vIE11c2wKKysgIHJldHVybiAoYWRkcmVzcyl1Yy0+ dWNfbWNvbnRleHQuZ3BfcmVnc1szNl07CisrI2VuZGlmCisgfQorCisgaW50cHRyX3QqIG9zOjpM aW51eDo6dWNvbnRleHRfZ2V0X3NwKGNvbnN0IHVjb250ZXh0X3QgKiB1YykgeworKyNpZiBkZWZp bmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgcmV0dXJuIChpbnRwdHJf dCopdWMtPnVjX21jb250ZXh0LnJlZ3MtPmdwclsxLypSRUdfU1AqL107CisrI2Vsc2UgLy8gTXVz bAorKyAgcmV0dXJuIChpbnRwdHJfdCopdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbMS8qUkVHX1NQ Ki9dOworKyNlbmRpZgorIH0KKworIGludHB0cl90KiBvczo6TGludXg6OnVjb250ZXh0X2dldF9m cChjb25zdCB1Y29udGV4dF90ICogdWMpIHsKK0BAIC0xMzMsNyArMTUxLDExIEBACisgfQorCisg c3RhdGljIHVuc2lnbmVkIGxvbmcgdWNvbnRleHRfZ2V0X3RyYXAoY29uc3QgdWNvbnRleHRfdCAq IHVjKSB7CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisg ICByZXR1cm4gdWMtPnVjX21jb250ZXh0LnJlZ3MtPnRyYXA7CisrI2Vsc2UgLy8gTXVzbAorKyAg cmV0dXJuIHVjLT51Y19tY29udGV4dC5ncF9yZWdzWzQwXTsKKysjZW5kaWYKKyB9CisKKyBFeHRl bmRlZFBDIG9zOjpmZXRjaF9mcmFtZV9mcm9tX2NvbnRleHQoY29uc3Qgdm9pZCogdWNWb2lkLAor QEAgLTI1OSw3ICsyODEsMTMgQEAKKyAgICAgLy8gMy4yLjEgIk1hY2hpbmUgU3RhdGUgUmVnaXN0 ZXIiKSwgaG93ZXZlciBub3RlIHRoYXQgSVNBIG5vdGF0aW9uIGZvciBiaXQKKyAgICAgLy8gbnVt YmVyaW5nIGlzIE1TQiAwLCBzbyBmb3Igbm9ybWFsIGJpdCBudW1iZXJpbmcgKExTQiAwKSB0aGV5 IGNvbWUgdG8gYmUKKyAgICAgLy8gYml0cyAzMyBhbmQgMzQuIEl0J3Mgbm90IHJlbGF0ZWQgdG8g ZW5kaWFubmVzcywganVzdCBhIG5vdGF0aW9uIG1hdHRlci4KKysjaWYgZGVmaW5lZChfX0dMSUJD X18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgICAgaWYgKHNlY29uZF91Yy0+dWNfbWNvbnRl eHQucmVncy0+bXNyICYgMHg2MDAwMDAwMDApIHsKKysjZWxzZSAvLyBNdXNsCisrICAgIC8vIHdo eSAzMz8KKysgICAgLy8gc2VlIGNvbW1lbnQgZm9yIGdsaWJjIE5HUkVHOiAicjAtcjMxLCBuaXAs IG1zciwgbHIsIGV0Yy4iCisrICAgIGlmIChzZWNvbmRfdWMtPnVjX21jb250ZXh0LmdwX3JlZ3Nb MzNdICYgMHg2MDAwMDAwMDApIHsKKysjZW5kaWYKKyAgICAgICBpZiAoVHJhY2VUcmFwcykgewor ICAgICAgICAgdHR5LT5wcmludF9jcigiY2F1Z2h0IHNpZ25hbCBpbiB0cmFuc2FjdGlvbiwgIgor ICAgICAgICAgICAgICAgICAgICAgICAgICJpZ25vcmluZyB0byBqdW1wIHRvIGFib3J0IGhhbmRs ZXIiKTsKK0BAIC01ODYsNiArNjE0LDcgQEAKKyAgIGNvbnN0IHVjb250ZXh0X3QqIHVjID0gKGNv bnN0IHVjb250ZXh0X3QqKWNvbnRleHQ7CisKKyAgIHN0LT5wcmludF9jcigiUmVnaXN0ZXJzOiIp OworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgc3Qt PnByaW50KCJwYyA9IiBJTlRQVFJfRk9STUFUICIgICIsIHVjLT51Y19tY29udGV4dC5yZWdzLT5u aXApOworICAgc3QtPnByaW50KCJsciA9IiBJTlRQVFJfRk9STUFUICIgICIsIHVjLT51Y19tY29u dGV4dC5yZWdzLT5saW5rKTsKKyAgIHN0LT5wcmludCgiY3RyPSIgSU5UUFRSX0ZPUk1BVCAiICAi LCB1Yy0+dWNfbWNvbnRleHQucmVncy0+Y3RyKTsKK0BAIC01OTQsOCArNjIzLDE4IEBACisgICAg IHN0LT5wcmludCgiciUtMmQ9IiBJTlRQVFJfRk9STUFUICIgICIsIGksIHVjLT51Y19tY29udGV4 dC5yZWdzLT5ncHJbaV0pOworICAgICBpZiAoaSAlIDMgPT0gMikgc3QtPmNyKCk7CisgICB9Cisr I2Vsc2UgLy8gTXVzbAorKyAgc3QtPnByaW50KCJwYyA9IiBJTlRQVFJfRk9STUFUICIgICIsIHVj LT51Y19tY29udGV4dC5ncF9yZWdzWzMyXSk7CisrICBzdC0+cHJpbnQoImxyID0iIElOVFBUUl9G T1JNQVQgIiAgIiwgdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzZdKTsKKysgIHN0LT5wcmludCgi Y3RyPSIgSU5UUFRSX0ZPUk1BVCAiICAiLCB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1szNV0pOwor ICAgc3QtPmNyKCk7CisrICBmb3IgKGludCBpID0gMDsgaSA8IDMyOyBpKyspIHsKKysgICAgc3Qt PnByaW50KCJyJS0yZD0iIElOVFBUUl9GT1JNQVQgIiAgIiwgaSwgdWMtPnVjX21jb250ZXh0Lmdw X3JlZ3NbaV0pOworKyAgICBpZiAoaSAlIDMgPT0gMikgc3QtPmNyKCk7CisrICB9CisrI2VuZGlm CisgICBzdC0+Y3IoKTsKKysgIHN0LT5jcigpOworCisgICBpbnRwdHJfdCAqc3AgPSAoaW50cHRy X3QgKilvczo6TGludXg6OnVjb250ZXh0X2dldF9zcCh1Yyk7CisgICBzdC0+cHJpbnRfY3IoIlRv cCBvZiBTdGFjazogKHNwPSIgUFRSX0ZPUk1BVCAiKSIsIHAyaShzcCkpOworQEAgLTYxOCwxMiAr NjU3LDIyIEBACisgICBzdC0+cHJpbnRfY3IoIlJlZ2lzdGVyIHRvIG1lbW9yeSBtYXBwaW5nOiIp OworICAgc3QtPmNyKCk7CisKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19V Q0xJQkNfXykKKyAgIHN0LT5wcmludCgicGMgPSIpOyBwcmludF9sb2NhdGlvbihzdCwgKGludHB0 cl90KXVjLT51Y19tY29udGV4dC5yZWdzLT5uaXApOworICAgc3QtPnByaW50KCJsciA9Iik7IHBy aW50X2xvY2F0aW9uKHN0LCAoaW50cHRyX3QpdWMtPnVjX21jb250ZXh0LnJlZ3MtPmxpbmspOwor ICAgc3QtPnByaW50KCJjdHIgPSIpOyBwcmludF9sb2NhdGlvbihzdCwgKGludHB0cl90KXVjLT51 Y19tY29udGV4dC5yZWdzLT5jdHIpOworKyNlbHNlIC8vIE11c2wKKysgIHN0LT5wcmludCgicGMg PSIpOyBwcmludF9sb2NhdGlvbihzdCwgKGludHB0cl90KXVjLT51Y19tY29udGV4dC5ncF9yZWdz WzMyXSk7CisrICBzdC0+cHJpbnQoImxyID0iKTsgcHJpbnRfbG9jYXRpb24oc3QsIChpbnRwdHJf dCl1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1szNl0pOworKyAgc3QtPnByaW50KCJjdHIgPSIpOyBw cmludF9sb2NhdGlvbihzdCwgKGludHB0cl90KXVjLT51Y19tY29udGV4dC5ncF9yZWdzWzM1XSk7 CisrI2VuZGlmCisgICBmb3IgKGludCBpID0gMDsgaSA8IDMyOyBpKyspIHsKKyAgICAgc3QtPnBy aW50KCJyJS0yZD0iLCBpKTsKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19V Q0xJQkNfXykKKyAgICAgcHJpbnRfbG9jYXRpb24oc3QsIHVjLT51Y19tY29udGV4dC5yZWdzLT5n cHJbaV0pOworKyNlbHNlIC8vIE11c2wKKysgICAgcHJpbnRfbG9jYXRpb24oc3QsIHVjLT51Y19t Y29udGV4dC5ncF9yZWdzW2ldKTsKKysjZW5kaWYKKyAgIH0KKyAgIHN0LT5jcigpOworIH0KKy0t LSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy90aHJlYWRfbGludXhfcHBjLmNwcAor KysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3Bw CitAQCAtNTYsOCArNTYsMTMgQEAKKyAgIC8vIGlmIHdlIHdlcmUgcnVubmluZyBKYXZhIGNvZGUg d2hlbiBTSUdQUk9GIGNhbWUgaW4uCisgICBpZiAoaXNJbkphdmEpIHsKKyAgICAgdWNvbnRleHRf dCogdWMgPSAodWNvbnRleHRfdCopIHVjb250ZXh0OworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykg fHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgICBmcmFtZSByZXRfZnJhbWUoKGludHB0cl90Kil1 Yy0+dWNfbWNvbnRleHQucmVncy0+Z3ByWzEvKlJFR19TUCovXSwKKyAgICAgICAgICAgICAgICAg ICAgICAoYWRkcmVzcyl1Yy0+dWNfbWNvbnRleHQucmVncy0+bmlwKTsKKysjZWxzZSAvLyBNdXNs CisrICAgIGZyYW1lIHJldF9mcmFtZSgoaW50cHRyX3QqKXVjLT51Y19tY29udGV4dC5ncF9yZWdz WzEvKlJFR19TUCovXSwKKysgICAgICAgICAgICAgICAgICAgICAoYWRkcmVzcyl1Yy0+dWNfbWNv bnRleHQuZ3BfcmVnc1szMl0pOworKyNlbmRpZgorCisgICAgIGlmIChyZXRfZnJhbWUucGMoKSA9 PSBOVUxMKSB7CisgICAgICAgLy8gdWNvbnRleHQgd2Fzbid0IHVzZWZ1bAorQEAgLTY5LDcgKzc0 LDExIEBACisgICAgICAgIGlmICghKChNZXRob2QqKShpc3RhdGUtPm1ldGhvZCkpLT5pc19tZXRh c3BhY2Vfb2JqZWN0KCkpIHsKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKysj aWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgICAgICAgdWlu dDY0X3QgcmVnX2JjcCA9IHVjLT51Y19tY29udGV4dC5yZWdzLT5ncHJbMTQvKlIxNF9iY3AqL107 CisrI2Vsc2UgLy8gTXVzbAorKyAgICAgICB1aW50NjRfdCByZWdfYmNwID0gdWMtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMTQvKlIxNF9iY3AqL107CisrI2VuZGlmCisgICAgICAgIHVpbnQ2NF90IGlz dGF0ZV9iY3AgPSBpc3RhdGUtPmJjcDsKKyAgICAgICAgdWludDY0X3QgY29kZV9zdGFydCA9ICh1 aW50NjRfdCkoKChNZXRob2QqKShpc3RhdGUtPm1ldGhvZCkpLT5jb2RlX2Jhc2UoKSk7CisgICAg ICAgIHVpbnQ2NF90IGNvZGVfZW5kID0gKHVpbnQ2NF90KSgoKE1ldGhvZCopaXN0YXRlLT5tZXRo b2QpLT5jb2RlX2Jhc2UoKSArICgoTWV0aG9kKilpc3RhdGUtPm1ldGhvZCktPmNvZGVfc2l6ZSgp KTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMveDg2 LnBhdGNoIGIvc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjljNjRjMTg5MDM2Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYu cGF0Y2gKQEAgLTAsMCArMSwxMzAgQEAKK1BhdGNoZXMgZm9yIG11c2wgdGFrZW4gZnJvbSBBbHBp bmUgbGludXg6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04 YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2MjBlN2UyNGM2MjgwCistLS0gb2xkL3NyYy9ob3Rz cG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorKysrIG5ldy9zcmMvaG90c3Bv dC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKK0BAIC05MCw2ICs5MCwxMjYgQEAK KyAjZGVmaW5lIFNQRUxMX1JFR19GUCAiZWJwIgorICNlbmRpZiAvLyBBTUQ2NAorCisrLy8gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CisrLy8gVGFrZW4gZnJvbSBnbGliYyAyLjI4CisrLy8gc291cmNl OiBodHRwczovL3NvdXJjZXdhcmUub3JnL2dpdC8/cD1nbGliYy5naXQ7YT1ibG9iO2Y9c3lzZGVw cy94ODYvZnB1X2NvbnRyb2wuaDtoPTRjYjk4YzU2NzliMjg5N2ZmNGU1ODI2ZDIyOGNiYTZiZTU4 OWUyNGQ7aGI9M2MwM2JhY2EzN2ZkY2I1MmMzODgxZTY1M2NhMzkyYmJhN2E5OWMyYgorKy8vID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorKyNpZm5kZWYgQU1ENjQKKysvKiBGUFUgY29udHJvbCB3b3Jk IGJpdHMuICB4ODYgdmVyc2lvbi4KKysgICBDb3B5cmlnaHQgKEMpIDE5OTMtMjAxOCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05V IEMgTGlicmFyeS4KKysgICBDb250cmlidXRlZCBieSBPbGFmIEZsZWJiZS4KKysKKysgICBUaGUg R05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9y IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExp YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3 aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorKyAgIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmbmRlZiBfRlBVX0NPTlRST0xfSAorKyNkZWZpbmUg X0ZQVV9DT05UUk9MX0gJMQorKworKy8qIE5vdGUgdGhhdCB0aGlzIGZpbGUgc2V0cyBvbiB4ODYt NjQgb25seSB0aGUgeDg3IEZQVSwgaXQgZG9lcyBub3QKKysgICB0b3VjaCB0aGUgU1NFIHVuaXQu ICAqLworKworKy8qIEhlcmUgaXMgdGhlIGRpcnR5IHBhcnQuIFNldCB1cCB5b3VyIDM4NyB0aHJv dWdoIHRoZSBjb250cm9sIHdvcmQKKysgKiAoY3cpIHJlZ2lzdGVyLgorKyAqCisrICogICAgIDE1 LTEzICAgIDEyICAxMS0xMCAgOS04ICAgICA3LTYgICAgIDUgICAgNCAgICAzICAgIDIgICAgMSAg ICAwCisrICogfCByZXNlcnZlZCB8IElDIHwgUkMgIHwgUEMgfCByZXNlcnZlZCB8IFBNIHwgVU0g fCBPTSB8IFpNIHwgRE0gfCBJTQorKyAqCisrICogSU06IEludmFsaWQgb3BlcmF0aW9uIG1hc2sK KysgKiBETTogRGVub3JtYWxpemVkIG9wZXJhbmQgbWFzaworKyAqIFpNOiBaZXJvLWRpdmlkZSBt YXNrCisrICogT006IE92ZXJmbG93IG1hc2sKKysgKiBVTTogVW5kZXJmbG93IG1hc2sKKysgKiBQ TTogUHJlY2lzaW9uIChpbmV4YWN0IHJlc3VsdCkgbWFzaworKyAqCisrICogTWFzayBiaXQgaXMg MSBtZWFucyBubyBpbnRlcnJ1cHQuCisrICoKKysgKiBQQzogUHJlY2lzaW9uIGNvbnRyb2wKKysg KiAxMSAtIHJvdW5kIHRvIGV4dGVuZGVkIHByZWNpc2lvbgorKyAqIDEwIC0gcm91bmQgdG8gZG91 YmxlIHByZWNpc2lvbgorKyAqIDAwIC0gcm91bmQgdG8gc2luZ2xlIHByZWNpc2lvbgorKyAqCisr ICogUkM6IFJvdW5kaW5nIGNvbnRyb2wKKysgKiAwMCAtIHJvdW5kaW5nIHRvIG5lYXJlc3QKKysg KiAwMSAtIHJvdW5kaW5nIGRvd24gKHRvd2FyZCAtIGluZmluaXR5KQorKyAqIDEwIC0gcm91bmRp bmcgdXAgKHRvd2FyZCArIGluZmluaXR5KQorKyAqIDExIC0gcm91bmRpbmcgdG93YXJkIHplcm8K KysgKgorKyAqIElDOiBJbmZpbml0eSBjb250cm9sCisrICogVGhhdCBpcyBmb3IgODA4NyBhbmQg ODAyODcgb25seS4KKysgKgorKyAqIFRoZSBoYXJkd2FyZSBkZWZhdWx0IGlzIDB4MDM3ZiB3aGlj aCB3ZSB1c2UuCisrICovCisrCisrI2luY2x1ZGUgPGZlYXR1cmVzLmg+CisrCisrLyogbWFza2lu ZyBvZiBpbnRlcnJ1cHRzICovCisrI2RlZmluZSBfRlBVX01BU0tfSU0gIDB4MDEKKysjZGVmaW5l IF9GUFVfTUFTS19ETSAgMHgwMgorKyNkZWZpbmUgX0ZQVV9NQVNLX1pNICAweDA0CisrI2RlZmlu ZSBfRlBVX01BU0tfT00gIDB4MDgKKysjZGVmaW5lIF9GUFVfTUFTS19VTSAgMHgxMAorKyNkZWZp bmUgX0ZQVV9NQVNLX1BNICAweDIwCisrCisrLyogcHJlY2lzaW9uIGNvbnRyb2wgKi8KKysjZGVm aW5lIF9GUFVfRVhURU5ERUQgMHgzMDAJLyogbGlibSByZXF1aXJlcyBkb3VibGUgZXh0ZW5kZWQg cHJlY2lzaW9uLiAgKi8KKysjZGVmaW5lIF9GUFVfRE9VQkxFICAgMHgyMDAKKysjZGVmaW5lIF9G UFVfU0lOR0xFICAgMHgwCisrCisrLyogcm91bmRpbmcgY29udHJvbCAqLworKyNkZWZpbmUgX0ZQ VV9SQ19ORUFSRVNUIDB4MCAgICAvKiBSRUNPTU1FTkRFRCAqLworKyNkZWZpbmUgX0ZQVV9SQ19E T1dOICAgIDB4NDAwCisrI2RlZmluZSBfRlBVX1JDX1VQICAgICAgMHg4MDAKKysjZGVmaW5lIF9G UFVfUkNfWkVSTyAgICAweEMwMAorKworKyNkZWZpbmUgX0ZQVV9SRVNFUlZFRCAweEYwQzAgIC8q IFJlc2VydmVkIGJpdHMgaW4gY3cgKi8KKysKKysKKysvKiBUaGUgZmRsaWJtIGNvZGUgcmVxdWly ZXMgc3RyaWN0IElFRUUgZG91YmxlIHByZWNpc2lvbiBhcml0aG1ldGljLAorKyAgIGFuZCBubyBp bnRlcnJ1cHRzIGZvciBleGNlcHRpb25zLCByb3VuZGluZyB0byBuZWFyZXN0LiAgKi8KKysKKysj ZGVmaW5lIF9GUFVfREVGQVVMVCAgMHgwMzdmCisrCisrLyogSUVFRTogIHNhbWUgYXMgYWJvdmUu ICAqLworKyNkZWZpbmUgX0ZQVV9JRUVFICAgICAweDAzN2YKKysKKysvKiBUeXBlIG9mIHRoZSBj b250cm9sIHdvcmQuICAqLworK3R5cGVkZWYgdW5zaWduZWQgaW50IGZwdV9jb250cm9sX3QgX19h dHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJX18pKSk7CisrCisrLyogTWFjcm9zIGZvciBhY2Nl c3NpbmcgdGhlIGhhcmR3YXJlIGNvbnRyb2wgd29yZC4gICIqJiIgaXMgdXNlZCB0bworKyAgIHdv cmsgYXJvdW5kIGEgYnVnIGluIG9sZGVyIHZlcnNpb25zIG9mIEdDQy4gIF9fdm9sYXRpbGVfXyBp cyB1c2VkCisrICAgdG8gc3VwcG9ydCBjb21iaW5hdGlvbiBvZiB3cml0aW5nIHRoZSBjb250cm9s IHJlZ2lzdGVyIGFuZCByZWFkaW5nCisrICAgaXQgYmFjay4gIFdpdGhvdXQgX192b2xhdGlsZV9f LCB0aGUgb2xkIHZhbHVlIG1heSBiZSB1c2VkIGZvciByZWFkaW5nCisrICAgYmFjayB1bmRlciBj b21waWxlciBvcHRpbWl6YXRpb24uCisrCisrICAgTm90ZSB0aGF0IHRoZSB1c2Ugb2YgdGhlc2Ug bWFjcm9zIGlzIG5vdCBzdWZmaWNpZW50IGFueW1vcmUgd2l0aAorKyAgIHJlY2VudCBoYXJkd2Fy ZSBub3Igb24geDg2LTY0LiAgU29tZSBmbG9hdGluZyBwb2ludCBvcGVyYXRpb25zIGFyZQorKyAg IGV4ZWN1dGVkIGluIHRoZSBTU0UvU1NFMiBlbmdpbmVzIHdoaWNoIGhhdmUgdGhlaXIgb3duIGNv bnRyb2wgYW5kCisrICAgc3RhdHVzIHJlZ2lzdGVyLiAgKi8KKysjZGVmaW5lIF9GUFVfR0VUQ1co Y3cpIF9fYXNtX18gX192b2xhdGlsZV9fICgiZm5zdGN3ICUwIiA6ICI9bSIgKComY3cpKQorKyNk ZWZpbmUgX0ZQVV9TRVRDVyhjdykgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJmbGRjdyAlMCIgOiA6 ICJtIiAoKiZjdykpCisrCisrLyogRGVmYXVsdCBjb250cm9sIHdvcmQgc2V0IGF0IHN0YXJ0dXAu ICAqLworK2V4dGVybiBmcHVfY29udHJvbF90IF9fZnB1X2NvbnRyb2w7CisrCisrI2VuZGlmCS8q IGZwdV9jb250cm9sLmggKi8KKysKKysjZW5kaWYgLy8gQU1ENjQKKysvLyA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKysKKyBhZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgI2lmZGVm IFNQQVJDX1dPUktTCisgICByZWdpc3RlciB2b2lkICplc3A7CmRpZmYgLS1naXQgYS9zcmNwa2dz L29wZW5qZGstMTEvdGVtcGxhdGUgYi9zcmNwa2dzL29wZW5qZGstMTEvdGVtcGxhdGUKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjliYThjMjI1Y2ZjCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9vcGVuamRrLTExL3RlbXBsYXRlCkBAIC0wLDAgKzEsMTgxIEBACisj IFRlbXBsYXRlIGZpbGUgZm9yICdvcGVuamRrLTExJworX2phdmFfdmVyPTExCitfamF2YV9taW5f dmVyPTAKK19qYXZhX3NlY192ZXI9NAorX2pka191cGRhdGU9MTEKK19vcGVuamRrX3ZlcnNpb249 Im9wZW5qZGstJHtfamF2YV92ZXJ9IgorCisKK3BrZ25hbWU9b3Blbmpkay0xMQordmVyc2lvbj0i JHtfamF2YV92ZXJ9LiR7X2phdmFfbWluX3Zlcn0uJHtfamF2YV9zZWNfdmVyfSske19qZGtfdXBk YXRlfSIKK3JldmlzaW9uPTEKK3dya3NyYz0iamRrJHtfamF2YV92ZXJ9dS1qZGstJHt2ZXJzaW9u fSIKK2J1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2NvbmZpZ3VyZV9hcmdzPSIKKyAtLWRpc2Fi bGUtd2FybmluZ3MtYXMtZXJyb3JzCisgLS1wcmVmaXg9JHtYQlBTX0RFU1RESVJ9LyR7WEJQU19D Uk9TU19UUklQTEVUfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0vdXNyL2xpYgorIC0tZW5hYmxlLXVu bGltaXRlZC1jcnlwdG8KKyAtLXdpdGgtemxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlianBlZz1zeXN0 ZW0KKyAtLXdpdGgtZ2lmbGliPXN5c3RlbQorIC0td2l0aC1saWJwbmc9c3lzdGVtCisgLS13aXRo LWxjbXM9c3lzdGVtCisgLS13aXRoLWp0cmVnPW5vCisgLS13aXRoLXZlcnNpb24tYnVpbGQ9JHt2 ZXJzaW9ufQorIC0td2l0aC12ZW5kb3ItbmFtZT0iVm9pZCIKKyAtLXdpdGgtdmVuZG9yLXVybD0i aHR0cHM6Ly92b2lkbGludXgub3JnLyIKKyAtLXdpdGgtdmVuZG9yLWJ1Zy11cmw9Imh0dHBzOi8v Z2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzIgorIC0td2l0aC12ZW5k b3Itdm0tYnVnLXVybD0iaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdl cy9pc3N1ZXMiCisgLS13aXRoLWJvb3QtamRrPS91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbiIK KworbWFrZV9idWlsZF9hcmdzPSJpbWFnZXMgJCh2b3B0X2lmIGRvY3MgZG9jcykiCittYWtlX2No ZWNrX3RhcmdldD0idGVzdC1ob3RzcG90LWd0ZXN0IgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29u ZmlnIGF1dG9tYWtlIGF1dG9jb25mIGNwaW8gdW56aXAgemlwIGNhLWNlcnRpZmljYXRlcworIGxp YnJlc3NsIHpsaWItZGV2ZWwgbWFrZS1jYSIKK21ha2VkZXBlbmRzPSJsaWJYcmVuZGVyLWRldmVs IGxpYlh0c3QtZGV2ZWwgbGliWHQtZGV2ZWwgbGliWHJhbmRyLWRldmVsCisgZ2lmbGliLWRldmVs IGxpYmpwZWctdHVyYm8tZGV2ZWwgY3Vwcy1kZXZlbCBmcmVldHlwZS1kZXZlbCBhbHNhLWxpYi1k ZXZlbAorIGZvbnRjb25maWctZGV2ZWwgemxpYi1kZXZlbCBsY21zMi1kZXZlbCIKK3Byb3ZpZGVz PSJqYXZhLWVudmlyb25tZW50LSR7dmVyc2lvbn1fMSBqYXZhLXJ1bnRpbWUtJHt2ZXJzaW9ufV8x Igorc2hvcnRfZGVzYz0iT3BlbkpESyBKYXZhIERldmVsb3BtZW50IEtpdCIKK21haW50YWluZXI9 Ikt5bGUgTnVzYmF1bSA8a251c2JhdW0rdm9pZEBzZGYub3JnPiIKK2xpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cDovL29wZW5qZGsuamF2YS5uZXQvIgorZGlzdGZpbGVz PSJodHRwczovL2hnLm9wZW5qZGsuamF2YS5uZXQvamRrLXVwZGF0ZXMvamRrJHtfamF2YV92ZXJ9 dS9hcmNoaXZlL2pkay0ke3ZlcnNpb259LnRhci5neiIKK2NoZWNrc3VtPTI3MmFlYWIwYjY4MjYy ZTI3MGI5ZTJmOWFhZTlhMzdhOTc5M2IxMTA0MjhjOGQ5NmQ0ODZjMDk0Y2M2YTY0MjkKK3NobGli X3Byb3ZpZGVzPSJsaWJhd3Quc28gbGliYXd0X3hhd3Quc28gbGliamF2YS5zbyBsaWJqbGkuc28g bGlianZtLnNvIGxpYmphd3Quc28iCisKKyMgQnVpbGQgaXMgc3RpbGwgcGFyYWxsZWwsIGJ1dCBk b24ndCB1c2UgLWpOLgorZGlzYWJsZV9wYXJhbGxlbF9idWlsZD15ZXMKK2J1aWxkX29wdGlvbnM9 ImRvY3MiCisKK2Nhc2UgIiRYQlBTX1RBUkdFVF9MSUJDIiBpbgorCWdsaWJjKSBidWlsZF9vcHRp b25zX2RlZmF1bHQrPSIgZG9jcyI7OworZXNhYworCitpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRo ZW4KKwlob3N0bWFrZWRlcGVuZHMrPSIgb3Blbmpkay0xMSIKKwljb25maWd1cmVfYXJncys9IiAt LXdpdGgtYm9vdC1qZGs9L3Vzci9saWIvanZtL29wZW5qZGstMTEiCitlbHNlCisJaG9zdG1ha2Vk ZXBlbmRzKz0iIG9wZW5qZGstMTEtYmluIgorCWNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1ib290 LWpkaz0vdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4iCitmaQorCithbHRlcm5hdGl2ZXM9Igor IGphdmE6L3Vzci9iaW4vamF2YTovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vamF2YQorIGph dmE6L3Vzci9iaW4vampzOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qanMKKyBqYXZhOi91 c3IvYmluL2tleXRvb2w6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2tleXRvb2wKKyBqYXZh Oi91c3IvYmluL29yYmQ6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL29yYmQKKyBqYXZhOi91 c3IvYmluL3BhY2syMDA6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL3BhY2syMDAKKyBqYXZh Oi91c3IvYmluL3BvbGljeXRvb2w6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL3BvbGljeXRv b2wKKyBqYXZhOi91c3IvYmluL3JtaWQ6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL3JtaWQK KyBqYXZhOi91c3IvYmluL3JtaXJlZ2lzdHJ5Oi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9y bWlyZWdpc3RyeQorIGphdmE6L3Vzci9iaW4vc2VydmVydG9vbDovdXNyL2xpYi9qdm0vb3Blbmpk ay0xMS9iaW4vc2VydmVydG9vbAorIGphdmE6L3Vzci9iaW4vdG5hbWVzZXJ2Oi91c3IvbGliL2p2 bS9vcGVuamRrLTExL2Jpbi90bmFtZXNlcnYKKyBqYXZhOi91c3IvYmluL3VucGFjazIwMDovdXNy L2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vdW5wYWNrMjAwCisKKyBqZGs6L3Vzci9iaW4vYXBwbGV0 dmlld2VyOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9hcHBsZXR2aWV3ZXIKKyBqZGs6L3Vz ci9iaW4vZXh0Y2hlY2s6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2V4dGNoZWNrCisgamRr Oi91c3IvYmluL2lkbGo6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2lkbGoKKyBqZGs6L3Vz ci9iaW4vamFyOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qYXIKKyBqZGs6L3Vzci9iaW4v amFyc2lnbmVyOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qYXJzaWduZXIKKyBqZGs6L3Vz ci9iaW4vamF2YTovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vamF2YQorIGpkazovdXNyL2Jp bi9qYXZhLXJtaS5jZ2k6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2phdmEtcm1pLmNnaQor IGpkazovdXNyL2Jpbi9qYXZhYzovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vamF2YWMKKyBq ZGs6L3Vzci9iaW4vamF2YWRvYzovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vamF2YWRvYwor IGpkazovdXNyL2Jpbi9qYXZhaDovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vamF2YWgKKyBq ZGs6L3Vzci9iaW4vamF2YXA6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2phdmFwCisgamRr Oi91c3IvYmluL2pjbWQ6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2pjbWQKKyBqZGs6L3Vz ci9iaW4vamNvbnNvbGU6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2pjb25zb2xlCisgamRr Oi91c3IvYmluL2pkYjovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vamRiCisgamRrOi91c3Iv YmluL2pkZXBzOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qZGVwcworIGpkazovdXNyL2Jp bi9qaGF0Oi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qaGF0CisgamRrOi91c3IvYmluL2pp bmZvOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qaW5mbworIGpkazovdXNyL2Jpbi9qanM6 L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2pqcworIGpkazovdXNyL2Jpbi9qbWFwOi91c3Iv bGliL2p2bS9vcGVuamRrLTExL2Jpbi9qbWFwCisgamRrOi91c3IvYmluL2pwczovdXNyL2xpYi9q dm0vb3Blbmpkay0xMS9iaW4vanBzCisgamRrOi91c3IvYmluL2pydW5zY3JpcHQ6L3Vzci9saWIv anZtL29wZW5qZGstMTEvYmluL2pydW5zY3JpcHQKKyBqZGs6L3Vzci9iaW4vanNhZGVidWdkOi91 c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qc2FkZWJ1Z2QKKyBqZGs6L3Vzci9iaW4vanN0YWNr Oi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qc3RhY2sKKyBqZGs6L3Vzci9iaW4vanN0YXQ6 L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2pzdGF0CisgamRrOi91c3IvYmluL2pzdGF0ZDov dXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vanN0YXRkCisgamRrOi91c3IvYmluL2tleXRvb2w6 L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2tleXRvb2wKKyBqZGs6L3Vzci9iaW4vbmF0aXZl MmFzY2lpOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9uYXRpdmUyYXNjaWkKKyBqZGs6L3Vz ci9iaW4vb3JiZDovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vb3JiZAorIGpkazovdXNyL2Jp bi9wYWNrMjAwOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9wYWNrMjAwCisgamRrOi91c3Iv YmluL3BvbGljeXRvb2w6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL3BvbGljeXRvb2wKKyBq ZGs6L3Vzci9iaW4vcm1pYzovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vcm1pYworIGpkazov dXNyL2Jpbi9ybWlkOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9ybWlkCisgamRrOi91c3Iv YmluL3JtaXJlZ2lzdHJ5Oi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9ybWlyZWdpc3RyeQor IGpkazovdXNyL2Jpbi9zY2hlbWFnZW46L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL3NjaGVt YWdlbgorIGpkazovdXNyL2Jpbi9zZXJpYWx2ZXI6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmlu L3NlcmlhbHZlcgorIGpkazovdXNyL2Jpbi9zZXJ2ZXJ0b29sOi91c3IvbGliL2p2bS9vcGVuamRr LTExL2Jpbi9zZXJ2ZXJ0b29sCisgamRrOi91c3IvYmluL3RuYW1lc2VydjovdXNyL2xpYi9qdm0v b3Blbmpkay0xMS9iaW4vdG5hbWVzZXJ2CisgamRrOi91c3IvYmluL3VucGFjazIwMDovdXNyL2xp Yi9qdm0vb3Blbmpkay0xMS9iaW4vdW5wYWNrMjAwCisgamRrOi91c3IvYmluL3dzZ2VuOi91c3Iv bGliL2p2bS9vcGVuamRrLTExL2Jpbi93c2dlbgorIGpkazovdXNyL2Jpbi93c2ltcG9ydDovdXNy L2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vd3NpbXBvcnQKKyBqZGs6L3Vzci9iaW4veGpjOi91c3Iv bGliL2p2bS9vcGVuamRrLTExL2Jpbi94amMKKyIKKworcG9zdF9leHRyYWN0KCkgeworCWNobW9k ICt4IGNvbmZpZ3VyZQorCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVu CisJCXJtIC1yIHNyYy9qZGsuaG90c3BvdC5hZ2VudAorCWZpCit9CisKK3Bvc3RfcGF0Y2goKSB7 CisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwkJZm9yIGYgaW4g IiR7RklMRVNESVJ9Ii9tdXNsX3BhdGNoZXMvKi5wYXRjaDsgZG8KKwkJCWVjaG8gIkFwcGx5aW5n ICRmIgorCQkJcGF0Y2ggLU5wMSAtaSAiJGYiCisJCWRvbmUKKwlmaQorfQorCitkb19jb25maWd1 cmUoKSB7CisJQ0ZMQUdTPSR7Q0ZMQUdTLy1EX0ZPUlRJRllfU09VUkNFPTIvfQorCUNYWEZMQUdT PSR7Q1hYRkxBR1MvLURfRk9SVElGWV9TT1VSQ0U9Mi99CisJY29uZmlndXJlX2FyZ3M9JHtjb25m aWd1cmVfYXJncy8tLXdpdGgtbGlidG9vbC1zeXNyb290PVwvdXNyXC9bYS16MC05XSotbGludXgt W2Etel0qL30KKwlpZiBbICIkWEJQU19DQ0FDSEUiIF0gJiYgWyAteiAiJENST1NTX0JVSUxEIiBd OyB0aGVuCisJCWNvbmZpZ3VyZV9hcmdzKz0iIC0tZW5hYmxlLWNjYWNoZSIKKwkJQ0M9Ii91c3Iv YmluL2NjIgorCQlDWFg9Ii91c3IvYmluL2MrKyIKKwlmaQorCS4vY29uZmlndXJlICR7Y29uZmln dXJlX2FyZ3N9IC0td2l0aC1leHRyYS1jZmxhZ3M9IiRDRkxBR1MiIC0td2l0aC1leHRyYS1jeHhm bGFncz0iJENYWEZMQUdTIiAtLXdpdGgtZXh0cmEtbGRmbGFncz0iJExERkxBR1MiCit9CisKK3Bv c3RfaW5zdGFsbCgpIHsKKwl2bWtkaXIgL3Vzci9saWIvanZtCisJbXYgJHtERVNURElSfS91c3Iv bGliL2p2bS9vcGVuamRrLSR7X2phdmFfdmVyfS4ke19qYXZhX21pbl92ZXJ9LiR7X2phdmFfc2Vj X3Zlcn0taW50ZXJuYWwgJHtERVNURElSfS91c3IvbGliL2p2bS9vcGVuamRrLSR7X2phdmFfdmVy fQorCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvYmluCisJdm1rZGlyIHVzci9saWIvanZtLyRf b3Blbmpka192ZXJzaW9uL2xpYi9zZWN1cml0eQorCW1ha2UtY2EgLWcgLWYgLS1kZXN0ZGlyIC4v Y2EgLWsgIiR7REVTVERJUn0vdXNyL2xpYi9qdm0vJF9vcGVuamRrX3ZlcnNpb24vYmluL2tleXRv b2wiCisJbXYgLi9jYS9ldGMvcGtpL3Rscy9qYXZhL2NhY2VydHMgJHtERVNURElSfS91c3IvbGli L2p2bS8kX29wZW5qZGtfdmVyc2lvbi9saWIvc2VjdXJpdHkvCisJdmxpY2Vuc2UgQVNTRU1CTFlf RVhDRVBUSU9OCisJdmxpY2Vuc2UgTElDRU5TRQorfQorCitvcGVuamRrLTExLWRvY19wYWNrYWdl KCkgeworCW5vc3RyaXA9eWVzCisJbm92ZXJpZnlyZGVwcz15ZXMKKwlub3NobGlicHJvdmlkZXM9 eWVzCisJc2hvcnRfZGVzYys9IiAtLSBkb2N1bWVudGF0aW9uIgorCXBrZ19pbnN0YWxsKCkgewor CQljZCAke3dya3NyY30KKwkJaWYgWyAiJGJ1aWxkX29wdGlvbl9kb2NzIiBdOyB0aGVuCisJCQl2 bWtkaXIgdXNyL3NoYXJlL2RvYy9vcGVuamRrLTExCisJCQljcCAtYSBidWlsZC9saW51eC0qL2lt YWdlcy9kb2NzLyogJHtQS0dERVNURElSfS91c3Ivc2hhcmUvZG9jL29wZW5qZGstMTEKKwkJZmkK KwkJdm1vdmUgdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9tYW4vbWFuMS8KKwl9Cit9CisKK29wZW5q ZGstMTEtc3JjX3BhY2thZ2UoKSB7CisJbm9zdHJpcD15ZXMKKwlub3ZlcmlmeXJkZXBzPXllcwor CW5vc2hsaWJwcm92aWRlcz15ZXMKKwlzaG9ydF9kZXNjKz0iIC0tIHNvdXJjZXMiCisJcGtnX2lu c3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2p2bS9vcGVuamRrLTExL2xpYi9zcmMuemlwIgor CX0KK30K --===============3501939637853047488==--