From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: =?utf-8?q?Miro_Hron=C4=8Dok_=3Cmiro=40hroncok=2Ecz=3E?= To: git-commits@fedoraproject.org Subject: [rpms/pyproject-rpm-macros] rawhide: getopt: Fix global macro clobbering with save/restore stack Date: Fri, 24 Jul 2026 19:58:46 GMT Message-ID: <178492312690.1.17922120084084760643.rpms-pyproject-rpm-macros-83ea9a1a0186@fedoraproject.org> List-ID: X-Git-Repo: rpms/pyproject-rpm-macros X-Git-Branch: rawhide X-Git-Rev: 83ea9a1a0186a271d968297df63acb411311e094 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvcHlwcm9qZWN0LXJwbS1tYWNyb3MKICAgICAgICAgICAgQnJhbmNoIDogcmF3 aGlkZQogICAgICAgICAgICBDb21taXQgOiA4M2VhOWExYTAxODZhMjcxZDk2ODI5N2RmNjNhY2I0 MTEzMTFlMDk0CiAgICAgICAgICAgIEF1dGhvciA6IE1pcm8gSHJvbsSNb2sgPG1pcm9AaHJvbmNv ay5jej4KICAgICAgICAgICAgRGF0ZSAgIDogMjAyNi0wNy0yNFQxNjowNTowNiswMjowMAogICAg ICAgICAgICBTdGF0cyAgOiArMTU4Ly0yMyBpbiA0IGZpbGUocykKICAgICAgICAgICAgVVJMICAg IDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9weXByb2plY3QtcnBtLW1hY3Jv cy9jLzgzZWE5YTFhMDE4NmEyNzFkOTY4Mjk3ZGY2M2FjYjQxMTMxMWUwOTQ/YnJhbmNoPXJhd2hp ZGUKCiAgICAgICAgICAgIExvZzoKICAgICAgICAgICAgZ2V0b3B0OiBGaXggZ2xvYmFsIG1hY3Jv IGNsb2JiZXJpbmcgd2l0aCBzYXZlL3Jlc3RvcmUgc3RhY2sKCldoZW4gY2FsbGluZyBvbmUgZ2V0 b3B0LXVzaW5nIG1hY3JvIGZyb20gYW5vdGhlciwKdGhlIG1hY3JvIGRlZmluaXRpb25zIGZyb20g dGhlIGlubmVyIG1hY3JvIGxlYWtlZCB0byB0aGUgb3V0ZXIgb25lLgoKcnBtLmRlZmluZSgpL3Jw bS51bmRlZmluZSgpIG9wZXJhdGUgZ2xvYmFsbHksIG5vdCBzY29wZWQgdG8gcGFyYW1ldHJpYwpt YWNybyBpbnZvY2F0aW9ucy4gV2hlbiBhIG1hY3JvIHVzaW5nIGdldG9wdCgpIGlzIGNhbGxlZCBu ZXN0ZWQgaW5zaWRlCmFub3RoZXIgZ2V0b3B0LXVzaW5nIG1hY3JvIHdpdGggb3ZlcmxhcHBpbmcg b3B0aW9uIGxldHRlcnMsIHRoZSBpbm5lcgpjbGVhbnVwX21hY3JvcygpIHdpcGVzIHRoZSBvdXRl ciBtYWNybydzIF9fcHlwcm9qZWN0X29wdF8qIHZhbHVlcy4KCk5vdGU6IFJQTSdzIG5hdGl2ZSAl ZGVmaW5lLyV1bmRlZmluZSBoYXZlIHN0YWNrLWxpa2UgYmVoYXZpb3IgKHB1c2hpbmcKYW5kIHBv cHBpbmcgZGVmaW5pdGlvbnMpLCBhbmQgd2UgY2FuIGludm9rZSAlZGVmaW5lIGZyb20gTHVhIHZp YQpycG0uZXhwYW5kKCkuIEhvd2V2ZXIsIHRoZXJlIGlzIG5vIHdheSB0byBwdXNoICJub3QgZGVm aW5lZCIgb250bwp0aGlzIHN0YWNrIGFuZCBsYXRlciBwb3AgaXQuIFNpbmNlIGdldG9wdCB0cmVh dHMgIm5vdCBkZWZpbmVkIiBhbmQKImRlZmluZWQgdG8gJXtuaWx9IiBkaWZmZXJlbnRseSAodGhl IGZvcm1lciBtZWFucyB0aGUgb3B0aW9uIHdhcyBub3QKcGFzc2VkLCB0aGUgbGF0dGVyIG1lYW5z IGEgZmxhZyB3YXMgcGFzc2VkIHdpdGhvdXQgYSB2YWx1ZSksIHRoZQpuYXRpdmUgc3RhY2tpbmcg Y2Fubm90IHJlcHJlc2VudCB0aGUgZnVsbCBzdGF0ZSBzcGFjZS4gV2UgaW1wbGVtZW50Cm91ciBv d24gc2F2ZS9yZXN0b3JlIHN0YWNrIG9uIHRoZSBMdWEgc2lkZSBpbnN0ZWFkLgoKQWRkIGEgTHVh LXNpZGUgc2F2ZS9yZXN0b3JlIHN0YWNrOiBnZXRvcHQoKSBzYXZlcyBjdXJyZW50IG1hY3JvIHN0 YXRlCmJlZm9yZSBjbGVhbnVwLCBhbmQgYSBuZXcgcmVzdG9yZSgpIGZ1bmN0aW9uIHBvcHMgYW5k IHJlaW5zdGF0ZXMgaXQuCkFsbCBnZXRvcHQtdXNpbmcgbWFjcm9zIGNhbGwgJXtfX3B5cHJvamVj dF9nZXRvcHRfcmVzdG9yZX0gYXQgdGhlIGVuZApvZiB0aGVpciBib2R5LgoKQXNzaXN0ZWQtQnk6 IENsYXVkZSBPcHVzIDQuNgpBc3Npc3RlZC1CeTogQ29kZXgKCi0tLQpkaWZmIC0tZ2l0IGEvbWFj cm9zLnB5cHJvamVjdCBiL21hY3Jvcy5weXByb2plY3QKaW5kZXggY2IzNmQyZS4uM2ZlMjk1YiAx MDA2NDQKLS0tIGEvbWFjcm9zLnB5cHJvamVjdAorKysgYi9tYWNyb3MucHlwcm9qZWN0CkBAIC0y Myw2ICsyMyw4IEBACiAjIFBFUCA1MDMgbmFtZSBub3JtYWxpemF0aW9uOiBsb3dlcmNhc2UsIG9u ZSBvciBtb3JlIFstXy5dIOKGkiBzaW5nbGUgLQogJV9fcHlwcm9qZWN0X25vcm1hbGl6ZV9uYW1l KC0pICV7bHVhOnByaW50KChycG0uZXhwYW5kKCIlMSIpOmxvd2VyKCk6Z3N1YigiWyUtXy5dKyIs ICItIikpKX0KIAorJV9fcHlwcm9qZWN0X2dldG9wdF9yZXN0b3JlICV7bHVhOnJlcXVpcmUoImZl ZG9yYS5ycG0ucHlwcm9qZWN0X2dldG9wdCIpLnJlc3RvcmUoKX0KKwogJV9weXByb2plY3RfZmls ZXNfYmFzZSAle19idWlsZGRpcn0vJXtfcHlwcm9qZWN0X2ZpbGVzX3ByZWZpeH0tcHlwcm9qZWN0 LWZpbGVzCiAlX3B5cHJvamVjdF9tb2R1bGVzX2Jhc2UgJXtfYnVpbGRkaXJ9LyV7X3B5cHJvamVj dF9maWxlc19wcmVmaXh9LXB5cHJvamVjdC1tb2R1bGVzCiAlX3B5cHJvamVjdF9naG9zdF9kaXN0 aW5mb19iYXNlICV7X2J1aWxkZGlyfS8le19weXByb2plY3RfZmlsZXNfcHJlZml4fS1weXByb2pl Y3QtZ2hvc3QtZGlzdGluZm8KQEAgLTMwLDE3ICszMiwxNyBAQAogJXB5cHJvamVjdF9maWxlcygt KSAle2x1YToKIHJlcXVpcmUoImZlZG9yYS5ycG0ucHlwcm9qZWN0X2dldG9wdCIpLmdldG9wdCh7 CiAgICAge3Nob3J0PSJEIiwgbG9uZz0iZGlzdC1uYW1lIiwgdmFsdWU9dHJ1ZX0sCi19KX0le19w eXByb2plY3RfZmlsZXNfYmFzZX0lez9fX3B5cHJvamVjdF9vcHRfRDotJXtfX3B5cHJvamVjdF9u b3JtYWxpemVfbmFtZSAle19fcHlwcm9qZWN0X29wdF9EfX19Cit9KX0le19weXByb2plY3RfZmls ZXNfYmFzZX0lez9fX3B5cHJvamVjdF9vcHRfRDotJXtfX3B5cHJvamVjdF9ub3JtYWxpemVfbmFt ZSAle19fcHlwcm9qZWN0X29wdF9EfX19JXtfX3B5cHJvamVjdF9nZXRvcHRfcmVzdG9yZX0KIAog JV9weXByb2plY3RfbW9kdWxlcygtKSAle2x1YToKIHJlcXVpcmUoImZlZG9yYS5ycG0ucHlwcm9q ZWN0X2dldG9wdCIpLmdldG9wdCh7CiAgICAge3Nob3J0PSJEIiwgbG9uZz0iZGlzdC1uYW1lIiwg dmFsdWU9dHJ1ZX0sCi19KX0le19weXByb2plY3RfbW9kdWxlc19iYXNlfSV7P19fcHlwcm9qZWN0 X29wdF9EOi0le19fcHlwcm9qZWN0X25vcm1hbGl6ZV9uYW1lICV7X19weXByb2plY3Rfb3B0X0R9 fX0KK30pfSV7X3B5cHJvamVjdF9tb2R1bGVzX2Jhc2V9JXs/X19weXByb2plY3Rfb3B0X0Q6LSV7 X19weXByb2plY3Rfbm9ybWFsaXplX25hbWUgJXtfX3B5cHJvamVjdF9vcHRfRH19fSV7X19weXBy b2plY3RfZ2V0b3B0X3Jlc3RvcmV9CiAKICVfcHlwcm9qZWN0X2dob3N0X2Rpc3RpbmZvKC0pICV7 bHVhOgogcmVxdWlyZSgiZmVkb3JhLnJwbS5weXByb2plY3RfZ2V0b3B0IikuZ2V0b3B0KHsKICAg ICB7c2hvcnQ9IkQiLCBsb25nPSJkaXN0LW5hbWUiLCB2YWx1ZT10cnVlfSwKLX0pfSV7X3B5cHJv amVjdF9naG9zdF9kaXN0aW5mb19iYXNlfSV7P19fcHlwcm9qZWN0X29wdF9EOi0le19fcHlwcm9q ZWN0X25vcm1hbGl6ZV9uYW1lICV7X19weXByb2plY3Rfb3B0X0R9fX0KK30pfSV7X3B5cHJvamVj dF9naG9zdF9kaXN0aW5mb19iYXNlfSV7P19fcHlwcm9qZWN0X29wdF9EOi0le19fcHlwcm9qZWN0 X25vcm1hbGl6ZV9uYW1lICV7X19weXByb2plY3Rfb3B0X0R9fX0le19fcHlwcm9qZWN0X2dldG9w dF9yZXN0b3JlfQogCiAlX3B5cHJvamVjdF9yZWNvcmQgJXtfYnVpbGRkaXJ9LyV7X3B5cHJvamVj dF9maWxlc19wcmVmaXh9LXB5cHJvamVjdC1yZWNvcmQKICVfcHlwcm9qZWN0X2J1aWxkcmVxdWly ZXMgJXtfYnVpbGRkaXJ9LyV7X3B5cHJvamVjdF9maWxlc19wcmVmaXh9LXB5cHJvamVjdC1idWls ZHJlcXVpcmVzCkBAIC03MSw3ICs3Myw3IEBAIG1rZGlyIC1wICIle19weXByb2plY3RfYnVpbGRk aXJ9IgogVE1QRElSPSIle19weXByb2plY3RfYnVpbGRkaXJ9IiBcXFwKICV7X19weXRob24zfSAt QnMgJXtfcnBtY29uZmlnZGlyfS9yZWRoYXQvcHlwcm9qZWN0X3doZWVsLnB5ICV7PyoqfSAle19w eXByb2plY3Rfd2hlZWxkaXJ9CiAlez9fX3B5cHJvamVjdF9vcHRfZDpwb3BkfQotfQorJXtfX3B5 cHJvamVjdF9nZXRvcHRfcmVzdG9yZX19CiAKIAogJXB5cHJvamVjdF9idWlsZF9saWIgJXshP19f cHlwcm9qZWN0X2J1aWxkX2xpYl93YXJuZWQ6JXt3YXJuOlRoZSAlJXtweXByb2plY3RfYnVpbGRf bGlifSBtYWNybyBpcyBkZXByZWNhdGVkLgpAQCAtMTgzLDcgKzE4NSw3IEBAIGZpCiAgIC0tcHlw cm9qZWN0LXJlY29yZCAiJXtfcHlwcm9qZWN0X3JlY29yZH0iIFxcCiAgIC0tcHJlZml4ICIle19w cmVmaXh9IiBcXAogICAleyoqfQotfQorJXtfX3B5cHJvamVjdF9nZXRvcHRfcmVzdG9yZX19CiAK ICVweXByb2plY3RfY2hlY2tfaW1wb3J0KC0pIFwKICV7bHVhOnJlcXVpcmUoImZlZG9yYS5ycG0u cHlwcm9qZWN0X2dldG9wdCIpLmdldG9wdCh7CkBAIC0yMDQsNyArMjA2LDcgQEAgaWYgWyAhIC1m ICIle19weXByb2plY3RfbW9kdWxlcyAlez9fX3B5cHJvamVjdF9vcHRmbGFnX0R9fSIgXTsgdGhl bgogICBleGl0IDEKIGZpCiAlcHkzX2NoZWNrX2ltcG9ydCAtZiAiJXtfcHlwcm9qZWN0X21vZHVs ZXMgJXs/X19weXByb2plY3Rfb3B0ZmxhZ19EfX0iICV7P19fcHlwcm9qZWN0X29wdGZsYWdfZX0g JXs/X19weXByb2plY3Rfb3B0ZmxhZ190fSAlez9fX3B5cHJvamVjdF9wb3NpdGlvbmFsX2FyZ3N9 Ci19Cisle19fcHlwcm9qZWN0X2dldG9wdF9yZXN0b3JlfX0KIAogCiAlX3B5cHJvamVjdF9jaGVj a19pbXBvcnRfYWxsb3dfbm9fbW9kdWxlcygtKSBcCkBAIC0yMTcsNyArMjE5LDggQEAgaWYgWyAt eiAiJChjYXQgJXtfcHlwcm9qZWN0X21vZHVsZXMgJXs/X19weXByb2plY3Rfb3B0ZmxhZ19EfX0p IiBdOyB0aGVuXAogICBlY2hvICJObyBtb2R1bGVzIHRvIGNoZWNrIGZvdW5kLCBleGl0aW5nIGNo ZWNrIlwKIGVsc2VcCiAgICVweXByb2plY3RfY2hlY2tfaW1wb3J0ICV7PyoqfVwKLWZpCitmaVwK KyV7X19weXByb2plY3RfZ2V0b3B0X3Jlc3RvcmV9CiAKIAogJWRlZmF1bHRfdG94ZW52IHB5JXtw eXRob24zX3ZlcnNpb25fbm9kb3RzfQpAQCAtMjkzLDcgKzI5Niw3IEBAIGZpCiAjIEluY29tcGxl dGUgLmRpc3QtaW5mbyBkaXIgbWlnaHQgY29uZnVzZSBpbXBvcnRsaWIubWV0YWRhdGEKIHJtIC1y ZnYgKi5kaXN0LWluZm8vID4mMgogJXs/X19weXByb2plY3Rfb3B0X2Q6cG9wZCA+JjJ9Ci19Cisl e19fcHlwcm9qZWN0X2dldG9wdF9yZXN0b3JlfX0KIAogCiAldG94KC0pIFwKQEAgLTMwOCw3ICsz MTEsNyBAQCBQWVRIT05QQVRIPSIke1BZVEhPTlBBVEg6LSV7YnVpbGRyb290fSV7cHl0aG9uM19z aXRlYXJjaH06JXtidWlsZHJvb3R9JXtweXRob24zXwogJXs/X19weXRlc3RfYWRkb3B0czpQWVRF U1RfQURET1BUUz0iJHtQWVRFU1RfQURET1BUUzotfSAle19fcHl0ZXN0X2FkZG9wdHN9In19IFxc CiBIT1NUTkFNRT0icnBtYnVpbGQiIFxcCiAle19fcHl0aG9uM30gLW0gdG94IC0tY3VycmVudC1l bnYgLS1hc3NlcnQtY29uZmlnIC1xIC0tcmVjcmVhdGUgLWUgIiV7P19fcHlwcm9qZWN0X29wdF9l fSV7IT9fX3B5cHJvamVjdF9vcHRfZTole3RveGVudn19IiAlez9fX3B5cHJvamVjdF9wb3NpdGlv bmFsX2FyZ3N9Ci19Cisle19fcHlwcm9qZWN0X2dldG9wdF9yZXN0b3JlfX0KIAogCiAjIERlY2xh cmF0aXZlIGJ1aWxkc3lzdGVtLCByZXF1aXJlcyBSUE0gNC4yMCsgdG8gd29yawoKZGlmZiAtLWdp dCBhL3B5cHJvamVjdC1ycG0tbWFjcm9zLnNwZWMgYi9weXByb2plY3QtcnBtLW1hY3Jvcy5zcGVj CmluZGV4IGY2MjVlMWYuLjhkZWI0OWMgMTAwNjQ0Ci0tLSBhL3B5cHJvamVjdC1ycG0tbWFjcm9z LnNwZWMKKysrIGIvcHlwcm9qZWN0LXJwbS1tYWNyb3Muc3BlYwpAQCAtMTQsOCArMTQsOCBAQCBM aWNlbnNlOiAgICAgICAgTUlUCiAjICAgSW5jcmVtZW50IFkgYW5kIHJlc2V0IFogd2hlbiBuZXcg bWFjcm9zIG9yIGZlYXR1cmVzIGFyZSBhZGRlZAogIyAgIEluY3JlbWVudCBaIHdoZW4gdGhpcyBp cyBhIGJ1Z2ZpeCBvciBhIGNvc21ldGljIGNoYW5nZQogIyBEcm9wcGluZyBzdXBwb3J0IGZvciBF T0wgRmVkb3JhcyBpcyAqbm90KiBjb25zaWRlcmVkIGEgYnJlYWtpbmcgY2hhbmdlCi1WZXJzaW9u OiAgICAgICAgMS4yMy4wCi1SZWxlYXNlOiAgICAgICAgMiV7P2Rpc3R9CitWZXJzaW9uOiAgICAg ICAgMS4yMy4xCitSZWxlYXNlOiAgICAgICAgMSV7P2Rpc3R9CiAKICMgTWFjcm8gZmlsZXMKIFNv dXJjZTogICAgICAgICBtYWNyb3MucHlwcm9qZWN0CkBAIC0xNzksNiArMTc5LDkgQEAgZXhwb3J0 IEhPU1ROQU1FPSJycG1idWlsZCIgICMgdG8gc3BlZWR1cCB0b3ggaW4gbmV0d29yay1sZXNzIG1v Y2ssIHNlZSByaGJ6IzE4NTYKIAogCiAlY2hhbmdlbG9nCisqIFRodSBKdWwgMjMgMjAyNiBNaXJv IEhyb27EjW9rIDxtaHJvbmNva0ByZWRoYXQuY29tPiAtIDEuMjMuMS0xCistIGdldG9wdDogRml4 IGdsb2JhbCBtYWNybyBjbG9iYmVyaW5nIHdpdGggc2F2ZS9yZXN0b3JlIHN0YWNrCisKICogVGh1 IEp1bCAxNiAyMDI2IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJv amVjdC5vcmc+IC0gMS4yMy4wLTIKIC0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0 Lm9yZy93aWtpL0ZlZG9yYV80NV9NYXNzX1JlYnVpbGQKIAoKZGlmZiAtLWdpdCBhL3B5cHJvamVj dF9nZXRvcHQubHVhIGIvcHlwcm9qZWN0X2dldG9wdC5sdWEKaW5kZXggODYxY2IyNS4uZDViZjk4 NiAxMDA2NDQKLS0tIGEvcHlwcm9qZWN0X2dldG9wdC5sdWEKKysrIGIvcHlwcm9qZWN0X2dldG9w dC5sdWEKQEAgLTIxMyw2ICsyMTMsNyBAQCBsb2NhbCBmdW5jdGlvbiBjbGVhbnVwX21hY3Jvcyhv cHRfc3BlYykKICAgICAgICAgcnBtLnVuZGVmaW5lKCJfX3B5cHJvamVjdF9vcHRfIiAuLiBzcGVj LnNob3J0KQogICAgICAgICBycG0udW5kZWZpbmUoIl9fcHlwcm9qZWN0X29wdGZsYWdfIiAuLiBz cGVjLnNob3J0KQogICAgIGVuZAorICAgIHJwbS51bmRlZmluZSgiX19weXByb2plY3RfcG9zaXRp b25hbF9hcmdzIikKIGVuZAogCiAKQEAgLTI0MiwxNiArMjQzLDE4IEBAIGxvY2FsIGZ1bmN0aW9u IHF1b3RlX3ZhbHVlcyh2YWx1ZXMpCiAgICAgcmV0dXJuIHBhcnRzCiBlbmQKIAotLS0gRGVmaW5l ICVfX3B5cHJvamVjdF9vcHRfe3Nob3J0fSBhbmQgJV9fcHlwcm9qZWN0X29wdGZsYWdfe3Nob3J0 fSBmb3IgZWFjaCBmb3VuZCBvcHRpb24uCistLSBEZWZpbmUgJV9fcHlwcm9qZWN0X29wdF97c2hv cnR9LCAlX19weXByb2plY3Rfb3B0ZmxhZ197c2hvcnR9LCBhbmQKKy0tICVfX3B5cHJvamVjdF9w b3NpdGlvbmFsX2FyZ3MgZnJvbSBhIHBhcnNlIHJlc3VsdC4KKy0tIFRha2VzIGEgdGFibGUge2Zv dW5kLCBvcHRfc3BlYywgcG9zaXRpb25hbH0uCiAtLSBvcHQ6IEZsYWdzIGdldCAle25pbH0gKGRl ZmluZWQgYnV0IGVtcHR5KSwgdmFsdWUgb3B0aW9ucyBnZXQgZWFjaCBpbmRpdmlkdWFsCiAtLSAg ICAgIHZhbHVlIGpvaW5lZCBieSBzZXBhcmF0b3IuCiAtLSBvcHRmbGFnOiBSZWFkeS10by1mb3J3 YXJkIGZvcm06ICItWCIgZm9yIGZsYWdzLCAiLVggdmFsdWUiIGZvciB2YWx1ZSBvcHRpb25zLgog LS0gU2VlIHRoZSBxdW90ZV92YWx1ZSBmdW5jdGlvbiBhYm91dCBob3cgdmFsdWVzIGFyZSBxdW90 ZWQuCi1sb2NhbCBmdW5jdGlvbiBkZWZpbmVfbWFjcm9zKGZvdW5kLCBvcHRfc3BlYykKLSAgICBm b3IgXywgc3BlYyBpbiBpcGFpcnMob3B0X3NwZWMpIGRvCi0gICAgICAgIGlmIGZvdW5kW3NwZWMu c2hvcnRdIHRoZW4KK2xvY2FsIGZ1bmN0aW9uIGRlZmluZV9tYWNyb3Moc3RhdGUpCisgICAgZm9y IF8sIHNwZWMgaW4gaXBhaXJzKHN0YXRlLm9wdF9zcGVjKSBkbworICAgICAgICBpZiBzdGF0ZS5m b3VuZFtzcGVjLnNob3J0XSB0aGVuCiAgICAgICAgICAgICBpZiBzcGVjLnZhbHVlIHRoZW4KLSAg ICAgICAgICAgICAgICBsb2NhbCBwYXJ0cyA9IHF1b3RlX3ZhbHVlcyhmb3VuZFtzcGVjLnNob3J0 XSkKKyAgICAgICAgICAgICAgICBsb2NhbCBwYXJ0cyA9IHF1b3RlX3ZhbHVlcyhzdGF0ZS5mb3Vu ZFtzcGVjLnNob3J0XSkKICAgICAgICAgICAgICAgICBsb2NhbCB2YWx1ZSA9IHRhYmxlLmNvbmNh dChwYXJ0cywgc3BlYy5zZXBhcmF0b3IpCiAgICAgICAgICAgICAgICAgcnBtLmRlZmluZSgiX19w eXByb2plY3Rfb3B0XyIgLi4gc3BlYy5zaG9ydCAuLiAiICIgLi4gdmFsdWUpCiAgICAgICAgICAg ICAgICAgcnBtLmRlZmluZSgiX19weXByb2plY3Rfb3B0ZmxhZ18iIC4uIHNwZWMuc2hvcnQgLi4g IiAtIiAuLiBzcGVjLnNob3J0IC4uICIgIiAuLiB2YWx1ZSkKQEAgLTI2MSw2ICsyNjQsMjggQEAg bG9jYWwgZnVuY3Rpb24gZGVmaW5lX21hY3Jvcyhmb3VuZCwgb3B0X3NwZWMpCiAgICAgICAgICAg ICBlbmQKICAgICAgICAgZW5kCiAgICAgZW5kCisgICAgaWYgI3N0YXRlLnBvc2l0aW9uYWwgPiAw IHRoZW4KKyAgICAgICAgbG9jYWwgcGFydHMgPSBxdW90ZV92YWx1ZXMoc3RhdGUucG9zaXRpb25h bCkKKyAgICAgICAgcnBtLmRlZmluZSgiX19weXByb2plY3RfcG9zaXRpb25hbF9hcmdzICIgLi4g dGFibGUuY29uY2F0KHBhcnRzLCAiICIpKQorICAgIGVuZAorZW5kCisKKworLS0gU2F2ZS9yZXN0 b3JlIHN0YWNrIGZvciBuZXN0ZWQgZ2V0b3B0IGNhbGxzLgorLS0gcnBtLmRlZmluZSgpL3JwbS51 bmRlZmluZSgpIGFyZSBnbG9iYWwgKG5vdCBzY29wZWQgdG8gcGFyYW1ldHJpYyBtYWNyb3MpLAor LS0gc28gYW4gaW5uZXIgZ2V0b3B0IGNsZWFudXAgY2xvYmJlcnMgb3V0ZXIgdmFsdWVzLiBXZSBz YXZlIHRoZSBzdHJ1Y3R1cmVkCistLSBwYXJzZSByZXN1bHQgYW5kIHJlLXJ1biBkZWZpbmVfbWFj cm9zKCkgaW4gcmVzdG9yZSgpLCBhdm9pZGluZyBhbnkKKy0tIHJwbS5leHBhbmQoKSByb3VuZC10 cmlwIHRoYXQgd291bGQgc3RyaXAgJXtxdW90ZTp9IHdyYXBwZXJzLgorbG9jYWwgX2N1cnJlbnQg PSBuaWwgIC0tIHtmb3VuZCwgb3B0X3NwZWMsIHBvc2l0aW9uYWx9IGZyb20gdGhlIG1vc3QgcmVj ZW50IGdldG9wdCgpCitsb2NhbCBfc2F2ZV9zdGFjayA9IHt9IC0tIHN0YWNrIG9mIHtmb3VuZCwg b3B0X3NwZWMsIHBvc2l0aW9uYWx9IHRhYmxlcworCitmdW5jdGlvbiBNLnJlc3RvcmUoKQorICAg IGlmIF9jdXJyZW50IHRoZW4KKyAgICAgICAgY2xlYW51cF9tYWNyb3MoX2N1cnJlbnQub3B0X3Nw ZWMpCisgICAgZW5kCisgICAgX2N1cnJlbnQgPSB0YWJsZS5yZW1vdmUoX3NhdmVfc3RhY2spCisg ICAgaWYgbm90IF9jdXJyZW50IHRoZW4gcmV0dXJuIGVuZAorICAgIGRlZmluZV9tYWNyb3MoX2N1 cnJlbnQpCiBlbmQKIAogCkBAIC0yNzQsOCArMjk5LDggQEAgZnVuY3Rpb24gTS5nZXRvcHQob3B0 X3NwZWMsIGV4Y2x1c2lvbl9ydWxlcywgdG9rZW5zLCBtYWNyb19uYW1lKQogICAgIHRva2VucyA9 IG5vcm1hbGl6ZV90b2tlbnModG9rZW5zIG9yIE0ucnBtX2FyZ3MoKSkKICAgICBtYWNyb19uYW1l ID0gbWFjcm9fbmFtZSBvciBycG0uZXhwYW5kKCIlMCIpCiAgICAgbG9jYWwgYnlfc2hvcnQsIGJ5 X2xvbmcgPSBidWlsZF9sb29rdXAob3B0X3NwZWMpCisgICAgX3NhdmVfc3RhY2tbI19zYXZlX3N0 YWNrICsgMV0gPSBfY3VycmVudAogICAgIGNsZWFudXBfbWFjcm9zKG9wdF9zcGVjKQotICAgIHJw bS51bmRlZmluZSgiX19weXByb2plY3RfcG9zaXRpb25hbF9hcmdzIikKIAogICAgIGxvY2FsIHJl c3VsdCA9IHBhcnNlKG1hY3JvX25hbWUsIHRva2VucywgYnlfc2hvcnQsIGJ5X2xvbmcpCiAgICAg aWYgbm90IHJlc3VsdCB0aGVuIHJldHVybiBlbmQKQEAgLTI4NiwxMiArMzExLDggQEAgZnVuY3Rp b24gTS5nZXRvcHQob3B0X3NwZWMsIGV4Y2x1c2lvbl9ydWxlcywgdG9rZW5zLCBtYWNyb19uYW1l KQogICAgICAgICBlbmQKICAgICBlbmQKIAotICAgIGRlZmluZV9tYWNyb3MocmVzdWx0LmZvdW5k LCBvcHRfc3BlYykKLQotICAgIGlmICNyZXN1bHQucG9zaXRpb25hbCA+IDAgdGhlbgotICAgICAg ICBsb2NhbCBwYXJ0cyA9IHF1b3RlX3ZhbHVlcyhyZXN1bHQucG9zaXRpb25hbCkKLSAgICAgICAg cnBtLmRlZmluZSgiX19weXByb2plY3RfcG9zaXRpb25hbF9hcmdzICIgLi4gdGFibGUuY29uY2F0 KHBhcnRzLCAiICIpKQotICAgIGVuZAorICAgIF9jdXJyZW50ID0ge2ZvdW5kID0gcmVzdWx0LmZv dW5kLCBvcHRfc3BlYyA9IG9wdF9zcGVjLCBwb3NpdGlvbmFsID0gcmVzdWx0LnBvc2l0aW9uYWx9 CisgICAgZGVmaW5lX21hY3JvcyhfY3VycmVudCkKIGVuZAogCiByZXR1cm4gTQoKZGlmZiAtLWdp dCBhL3Rlc3RfcHlwcm9qZWN0X2dldG9wdC5sdWEgYi90ZXN0X3B5cHJvamVjdF9nZXRvcHQubHVh CmluZGV4IGRjZDE3NDIuLjFiZmY2MDIgMTAwNjQ0Ci0tLSBhL3Rlc3RfcHlwcm9qZWN0X2dldG9w dC5sdWEKKysrIGIvdGVzdF9weXByb2plY3RfZ2V0b3B0Lmx1YQpAQCAtNDQ4LDYgKzQ0OCwxMTQg QEAgZnVuY3Rpb24gTS50ZXN0X29wdGZsYWdfY2xlYW51cF9iZXR3ZWVuX2NhbGxzKCkKIGVuZAog CiAKKy0tIE5lc3RlZCBtYWNybyBzY29wZTogc2F2ZS9yZXN0b3JlIHByZXZlbnRzIGlubmVyIGdl dG9wdCBmcm9tIGNsb2JiZXJpbmcgb3V0ZXIgdmFsdWVzCisKK2Z1bmN0aW9uIE0udGVzdF9uZXN0 ZWRfZ2V0b3B0X3dpdGhfcmVzdG9yZV9wcmVzZXJ2ZXNfb3V0ZXJfb3B0cygpCisgICAgcnBtLmRl ZmluZShbW190ZXN0X2lubmVyKC0pICV7bHVhOgorICAgICAgICByZXF1aXJlKCJweXByb2plY3Rf Z2V0b3B0IikuZ2V0b3B0KHsKKyAgICAgICAgICAgIHtzaG9ydD0iZCIsIGxvbmc9ImRpcmVjdG9y eSIsIHZhbHVlPXRydWV9LAorICAgICAgICB9KX1pbm5lciV7bHVhOnJlcXVpcmUoInB5cHJvamVj dF9nZXRvcHQiKS5yZXN0b3JlKCl9XV0KKyAgICApCisgICAgcnBtLmRlZmluZShbW190ZXN0X291 dGVyKC0pICV7bHVhOgorICAgICAgICByZXF1aXJlKCJweXByb2plY3RfZ2V0b3B0IikuZ2V0b3B0 KHsKKyAgICAgICAgICAgIHtzaG9ydD0iZCIsIGxvbmc9ImRpcmVjdG9yeSIsIHZhbHVlPXRydWV9 LAorICAgICAgICB9KX0le190ZXN0X2lubmVyfS8lez9fX3B5cHJvamVjdF9vcHRfZH1dXQorICAg ICkKKworICAgIGxvY2FsIHJlc3VsdCA9IHJwbS5leHBhbmQoIiVfdGVzdF9vdXRlciAtZCBoZWxs byIpCisgICAgYXNzZXJ0KHJlc3VsdCA9PSAiaW5uZXIvaGVsbG8iLAorICAgICAgICAiZXhwZWN0 ZWQgJ2lubmVyL2hlbGxvJywgZ290ICciIC4uIHJlc3VsdCAuLiAiJyIpCitlbmQKKworZnVuY3Rp b24gTS50ZXN0X25lc3RlZF9nZXRvcHRfd2l0aF9yZXN0b3JlX3ByZXNlcnZlc19vdXRlcl9vcHRm bGFncygpCisgICAgcnBtLmRlZmluZShbW190ZXN0X2lubmVyMigtKSAle2x1YToKKyAgICAgICAg cmVxdWlyZSgicHlwcm9qZWN0X2dldG9wdCIpLmdldG9wdCh7CisgICAgICAgICAgICB7c2hvcnQ9 ImQiLCBsb25nPSJkaXJlY3RvcnkiLCB2YWx1ZT10cnVlfSwKKyAgICAgICAgfSl9aW5uZXIle2x1 YTpyZXF1aXJlKCJweXByb2plY3RfZ2V0b3B0IikucmVzdG9yZSgpfV1dCisgICAgKQorICAgIHJw bS5kZWZpbmUoW1tfdGVzdF9vdXRlcjIoLSkgJXtsdWE6CisgICAgICAgIHJlcXVpcmUoInB5cHJv amVjdF9nZXRvcHQiKS5nZXRvcHQoeworICAgICAgICAgICAge3Nob3J0PSJkIiwgbG9uZz0iZGly ZWN0b3J5IiwgdmFsdWU9dHJ1ZX0sCisgICAgICAgIH0pfSV7X3Rlc3RfaW5uZXIyfS8lez9fX3B5 cHJvamVjdF9vcHRmbGFnX2R9XV0KKyAgICApCisKKyAgICBsb2NhbCByZXN1bHQgPSBycG0uZXhw YW5kKCIlX3Rlc3Rfb3V0ZXIyIC1kIGhlbGxvIikKKyAgICBhc3NlcnQocmVzdWx0ID09ICJpbm5l ci8tZCBoZWxsbyIsCisgICAgICAgICJleHBlY3RlZCAnaW5uZXIvLWQgaGVsbG8nLCBnb3QgJyIg Li4gcmVzdWx0IC4uICInIikKK2VuZAorCitmdW5jdGlvbiBNLnRlc3RfbmVzdGVkX2dldG9wdF93 aXRob3V0X3Jlc3RvcmVfY2xvYmJlcnMoKQorICAgIHJwbS5kZWZpbmUoW1tfdGVzdF9pbm5lcjMo LSkgJXtsdWE6CisgICAgICAgIHJlcXVpcmUoInB5cHJvamVjdF9nZXRvcHQiKS5nZXRvcHQoewor ICAgICAgICAgICAge3Nob3J0PSJkIiwgbG9uZz0iZGlyZWN0b3J5IiwgdmFsdWU9dHJ1ZX0sCisg ICAgICAgIH0pfWlubmVyXV0KKyAgICApCisgICAgcnBtLmRlZmluZShbW190ZXN0X291dGVyMygt KSAle2x1YToKKyAgICAgICAgcmVxdWlyZSgicHlwcm9qZWN0X2dldG9wdCIpLmdldG9wdCh7Cisg ICAgICAgICAgICB7c2hvcnQ9ImQiLCBsb25nPSJkaXJlY3RvcnkiLCB2YWx1ZT10cnVlfSwKKyAg ICAgICAgfSl9JXtfdGVzdF9pbm5lcjN9LyV7P19fcHlwcm9qZWN0X29wdF9kfV1dCisgICAgKQor CisgICAgbG9jYWwgcmVzdWx0ID0gcnBtLmV4cGFuZCgiJV90ZXN0X291dGVyMyAtZCBoZWxsbyIp CisgICAgLS0gV2l0aG91dCByZXN0b3JlKCksIGlubmVyIGdldG9wdCBjbG9iYmVycyBvdXRlcidz IHZhbHVlCisgICAgYXNzZXJ0KHJlc3VsdCA9PSAiaW5uZXIvIiwKKyAgICAgICAgImV4cGVjdGVk ICdpbm5lci8nIChjbG9iYmVyZWQgd2l0aG91dCByZXN0b3JlKSwgZ290ICciIC4uIHJlc3VsdCAu LiAiJyIpCitlbmQKKworZnVuY3Rpb24gTS50ZXN0X25lc3RlZF9nZXRvcHRfd2l0aF9yZXN0b3Jl X3ByZXNlcnZlc19vdXRlcl9wb3NpdGlvbmFsX2FyZ3MoKQorICAgIHJwbS5kZWZpbmUoW1tfdGVz dF9pbm5lcjQoLSkgJXtsdWE6CisgICAgICAgIHJlcXVpcmUoInB5cHJvamVjdF9nZXRvcHQiKS5n ZXRvcHQoeworICAgICAgICAgICAge3Nob3J0PSJkIiwgbG9uZz0iZGlyZWN0b3J5IiwgdmFsdWU9 dHJ1ZX0sCisgICAgICAgIH0pfWlubmVyJXtsdWE6cmVxdWlyZSgicHlwcm9qZWN0X2dldG9wdCIp LnJlc3RvcmUoKX1dXQorICAgICkKKyAgICBycG0uZGVmaW5lKFtbX3Rlc3Rfb3V0ZXI0KC0pICV7 bHVhOgorICAgICAgICByZXF1aXJlKCJweXByb2plY3RfZ2V0b3B0IikuZ2V0b3B0KHsKKyAgICAg ICAgICAgIHtzaG9ydD0iZCIsIGxvbmc9ImRpcmVjdG9yeSIsIHZhbHVlPXRydWV9LAorICAgICAg ICB9KX0le190ZXN0X2lubmVyNH0vJXs/X19weXByb2plY3RfcG9zaXRpb25hbF9hcmdzfV1dCisg ICAgKQorCisgICAgbG9jYWwgcmVzdWx0ID0gcnBtLmV4cGFuZCgiJV90ZXN0X291dGVyNCAtZCBo ZWxsbyB3b3JsZCIpCisgICAgYXNzZXJ0KHJlc3VsdCA9PSAiaW5uZXIvd29ybGQiLAorICAgICAg ICAiZXhwZWN0ZWQgJ2lubmVyL3dvcmxkJywgZ290ICciIC4uIHJlc3VsdCAuLiAiJyIpCitlbmQK KworZnVuY3Rpb24gTS50ZXN0X25lc3RlZF9nZXRvcHRfd2l0aF9kaWZmZXJlbnRfdmFsdWVzKCkK KyAgICBycG0uZGVmaW5lKFtbX3Rlc3RfaW5uZXI1KC0pICV7bHVhOgorICAgICAgICByZXF1aXJl KCJweXByb2plY3RfZ2V0b3B0IikuZ2V0b3B0KHsKKyAgICAgICAgICAgIHtzaG9ydD0iZCIsIGxv bmc9ImRpcmVjdG9yeSIsIHZhbHVlPXRydWV9LAorICAgICAgICB9KX0lez9fX3B5cHJvamVjdF9v cHRfZH0le2x1YTpyZXF1aXJlKCJweXByb2plY3RfZ2V0b3B0IikucmVzdG9yZSgpfV1dCisgICAg KQorICAgIHJwbS5kZWZpbmUoW1tfdGVzdF9vdXRlcjUoLSkgJXtsdWE6CisgICAgICAgIHJlcXVp cmUoInB5cHJvamVjdF9nZXRvcHQiKS5nZXRvcHQoeworICAgICAgICAgICAge3Nob3J0PSJkIiwg bG9uZz0iZGlyZWN0b3J5IiwgdmFsdWU9dHJ1ZX0sCisgICAgICAgIH0pfSV7X3Rlc3RfaW5uZXI1 IC1kIG90aGVyfS8lez9fX3B5cHJvamVjdF9vcHRfZH1dXQorICAgICkKKworICAgIGxvY2FsIHJl c3VsdCA9IHJwbS5leHBhbmQoIiVfdGVzdF9vdXRlcjUgLWQgaGVsbG8iKQorICAgIGFzc2VydChy ZXN1bHQgPT0gIm90aGVyL2hlbGxvIiwKKyAgICAgICAgImV4cGVjdGVkICdvdGhlci9oZWxsbycs IGdvdCAnIiAuLiByZXN1bHQgLi4gIiciKQorZW5kCisKK2Z1bmN0aW9uIE0udGVzdF90cmlwbGVf bmVzdGVkX2dldG9wdF9yZXN0b3Jlc19hbGxfbGV2ZWxzKCkKKyAgICBycG0uZGVmaW5lKFtbX3Rl c3RfaW5uZXJtb3N0KC0pICV7bHVhOgorICAgICAgICByZXF1aXJlKCJweXByb2plY3RfZ2V0b3B0 IikuZ2V0b3B0KHsKKyAgICAgICAgICAgIHtzaG9ydD0iZCIsIGxvbmc9ImRpcmVjdG9yeSIsIHZh bHVlPXRydWV9LAorICAgICAgICB9KX0lez9fX3B5cHJvamVjdF9vcHRfZH0le2x1YTpyZXF1aXJl KCJweXByb2plY3RfZ2V0b3B0IikucmVzdG9yZSgpfV1dKQorICAgIHJwbS5kZWZpbmUoW1tfdGVz dF9taWRkbGUoLSkgJXtsdWE6CisgICAgICAgIHJlcXVpcmUoInB5cHJvamVjdF9nZXRvcHQiKS5n ZXRvcHQoeworICAgICAgICAgICAge3Nob3J0PSJkIiwgbG9uZz0iZGlyZWN0b3J5IiwgdmFsdWU9 dHJ1ZX0sCisgICAgICAgIH0pfSV7X3Rlc3RfaW5uZXJtb3N0IC1kIGRlZXB9KyV7P19fcHlwcm9q ZWN0X29wdF9kfSV7bHVhOnJlcXVpcmUoInB5cHJvamVjdF9nZXRvcHQiKS5yZXN0b3JlKCl9XV0p CisgICAgcnBtLmRlZmluZShbW190ZXN0X291dGVybW9zdCgtKSAle2x1YToKKyAgICAgICAgcmVx dWlyZSgicHlwcm9qZWN0X2dldG9wdCIpLmdldG9wdCh7CisgICAgICAgICAgICB7c2hvcnQ9ImQi LCBsb25nPSJkaXJlY3RvcnkiLCB2YWx1ZT10cnVlfSwKKyAgICAgICAgfSl9JXtfdGVzdF9taWRk bGUgLWQgbWlkfSslez9fX3B5cHJvamVjdF9vcHRfZH1dXSkKKworICAgIGxvY2FsIHJlc3VsdCA9 IHJwbS5leHBhbmQoIiVfdGVzdF9vdXRlcm1vc3QgLWQgdG9wIikKKyAgICBhc3NlcnQocmVzdWx0 ID09ICJkZWVwK21pZCt0b3AiLAorICAgICAgICAiZXhwZWN0ZWQgJ2RlZXArbWlkK3RvcCcsIGdv dCAnIiAuLiByZXN1bHQgLi4gIiciKQorZW5kCisKKwogLS0gUmF3IGVycm9yIGZ1bmN0aW9ucyAo d2l0aG91dCBwY2FsbCkgZm9yIFB5dGhvbi1zaWRlIHN0ZGVyciBjaGVja2luZy4KIC0tIFRoZXNl IGFyZSBub3QgZGlzY292ZXJlZCBieSBsaXN0KCkgc2luY2UgdGhleSBkb24ndCBzdGFydCB3aXRo IHRlc3RfLgogCg==