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: Jakub Jelinek To: git-commits@fedoraproject.org Subject: [rpms/gcc] rhel-f41-base: 11.0.1-0.2 Date: Mon, 29 Jun 2026 12:29:11 GMT Message-ID: <178273615156.1.16690768741453287456.rpms-gcc-e25bc116370a@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: e25bc116370a6221bf85184b240daaa213518641 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogZTI1YmMxMTYzNzBhNjIyMWJmODUxODRiMjQwZGFhYTIx MzUxODY0MQpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPgpEYXRlICAg OiAyMDIxLTAzLTE5VDE1OjUyOjU0KzAxOjAwClN0YXRzICA6ICsxMDQ3Ly00NCBpbiAxMCBmaWxl KHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2NjL2MvZTI1 YmMxMTYzNzBhNjIyMWJmODUxODRiMjQwZGFhYTIxMzUxODY0MT9icmFuY2g9cmhlbC1mNDEtYmFz ZQoKTG9nOgoxMS4wLjEtMC4yCgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdu b3JlCmluZGV4IGMzM2YyOTkuLjFjMTFjYzkgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIv LmdpdGlnbm9yZQpAQCAtMzUsMyArMzUsNSBAQAogL2djYy0xMS4wLjAtMjAyMTAyMTAudGFyLnh6 CiAvZ2NjLTExLjAuMC0yMDIxMDIyNS50YXIueHoKIC9nY2MtMTEuMC4xLTIwMjEwMzA3LnRhci54 egorL2djYy0xMS4wLjEtMjAyMTAzMTkudGFyLnh6CisvaXNsLTAuMTgudGFyLmJ6MgoKZGlmZiAt LWdpdCBhL2djYy5zcGVjIGIvZ2NjLnNwZWMKaW5kZXggMWRkYTk2Yy4uZTcyODZjOSAxMDA2NDQK LS0tIGEvZ2NjLnNwZWMKKysrIGIvZ2NjLnNwZWMKQEAgLTEsNCArMSw0IEBACi0lZ2xvYmFsIERB VEUgMjAyMTAzMDcKKyVnbG9iYWwgREFURSAyMDIxMDMxOQogJWdsb2JhbCBnaXRyZXYgZTEzODcw YjdjMDgzZTM5YWIxN2NjODI3YmFiNWNiNDUzODdlOGYxOQogJWdsb2JhbCBnY2NfdmVyc2lvbiAx MS4wLjEKICVnbG9iYWwgZ2NjX21ham9yIDExCkBAIC0xNDUsNyArMTQ1LDggQEAgU291cmNlMTog bnZwdHgtdG9vbHMtJXtudnB0eF90b29sc19naXRyZXZ9LnRhci54egogIyBnaXQgLS1naXQtZGly PW5ld2xpYi1jeWd3aW4tZGlyLnRtcC8uZ2l0IGFyY2hpdmUgLS1wcmVmaXg9bmV3bGliLWN5Z3dp bi0lJXtuZXdsaWJfY3lnd2luX2dpdHJldn0vICUle25ld2xpYl9jeWd3aW5fZ2l0cmV2fSAiOihl eGNsdWRlKW5ld2xpYi9saWJjL3N5cy9saW51eC9pbmNsdWRlL3JwYy8qLltoeF0iIHwgeHogLTll ID4gbmV3bGliLWN5Z3dpbi0lJXtuZXdsaWJfY3lnd2luX2dpdHJldn0udGFyLnh6CiAjIHJtIC1y ZiBuZXdsaWItY3lnd2luLWRpci50bXAKIFNvdXJjZTI6IG5ld2xpYi1jeWd3aW4tJXtuZXdsaWJf Y3lnd2luX2dpdHJldn0udGFyLnh6Ci0lZ2xvYmFsIGlzbF92ZXJzaW9uIDAuMTYuMQorJWdsb2Jh bCBpc2xfdmVyc2lvbiAwLjE4CitTb3VyY2UzOiBodHRwczovL2djYy5nbnUub3JnL3B1Yi9nY2Mv aW5mcmFzdHJ1Y3R1cmUvaXNsLSV7aXNsX3ZlcnNpb259LnRhci5iejIKIFVSTDogaHR0cDovL2dj Yy5nbnUub3JnCiAjIE5lZWQgYmludXRpbHMgd2l0aCAtcGllIHN1cHBvcnQgPj0gMi4xNC45MC4w LjQtNAogIyBOZWVkIGJpbnV0aWxzIHdoaWNoIGNhbiBvbWl0IGRvdCBzeW1ib2xzIGFuZCBvdmVy bGFwIC5vcGQgb24gcHBjNjQgPj0gMi4xNS45MS4wLjItNApAQCAtMjAxLDE1ICsyMDIsNiBAQCBC dWlsZFJlcXVpcmVzOiBnY2MtZ25hdCA+PSAzLjEsIGxpYmduYXQgPj0gMy4xCiAlaWZhcmNoIGlh NjQKIEJ1aWxkUmVxdWlyZXM6IGxpYnVud2luZCA+PSAwLjk4CiAlZW5kaWYKLSVpZiAle2J1aWxk X2lzbH0KLUJ1aWxkUmVxdWlyZXM6IGlzbCA9ICV7aXNsX3ZlcnNpb259Ci1CdWlsZFJlcXVpcmVz OiBpc2wtZGV2ZWwgPSAle2lzbF92ZXJzaW9ufQotJWlmIDAlez9fX2lzYV9iaXRzfSA9PSA2NAot UmVxdWlyZXM6IGxpYmlzbC5zby4xNSgpKDY0Yml0KQotJWVsc2UKLVJlcXVpcmVzOiBsaWJpc2wu c28uMTUKLSVlbmRpZgotJWVuZGlmCiAlaWYgJXtidWlsZF9saWJzdGRjeHhfZG9jc30KIEJ1aWxk UmVxdWlyZXM6IGRveHlnZW4gPj0gMS43LjEKIEJ1aWxkUmVxdWlyZXM6IGdyYXBodml6LCBkYmxh dGV4LCB0ZXhsaXZlLWNvbGxlY3Rpb24tbGF0ZXgsIGRvY2Jvb2s1LXN0eWxlLXhzbApAQCAtMjY1 LDE0ICsyNTcsMjAgQEAgUGF0Y2gyOiBnY2MxMS1zcGFyYy1jb25maWctZGV0ZWN0aW9uLnBhdGNo CiBQYXRjaDM6IGdjYzExLWxpYmdvbXAtb21wX2gtbXVsdGlsaWIucGF0Y2gKIFBhdGNoNDogZ2Nj MTEtbGlidG9vbC1uby1ycGF0aC5wYXRjaAogUGF0Y2g1OiBnY2MxMS1pc2wtZGwucGF0Y2gKLVBh dGNoNjogZ2NjMTEtbGlic3RkYysrLWRvY3MucGF0Y2gKLVBhdGNoNzogZ2NjMTEtbm8tYWRkLW5l ZWRlZC5wYXRjaAotUGF0Y2g4OiBnY2MxMS1mb2ZmbG9hZC1kZWZhdWx0LnBhdGNoCi1QYXRjaDk6 IGdjYzExLVduby1mb3JtYXQtc2VjdXJpdHkucGF0Y2gKLVBhdGNoMTA6IGdjYzExLXJoMTU3NDkz Ni5wYXRjaAotUGF0Y2gxMTogZ2NjMTEtZC1zaGFyZWQtbGlicGhvYm9zLnBhdGNoCi1QYXRjaDEy OiBnY2MxMS1wcjk5Mzc4LXJldmVydC5wYXRjaAotUGF0Y2gxMzogZ2NjMTEtcHI5OTM4OC5wYXRj aAorUGF0Y2g2OiBnY2MxMS1pc2wtZGwyLnBhdGNoCitQYXRjaDc6IGdjYzExLWxpYnN0ZGMrKy1k b2NzLnBhdGNoCitQYXRjaDg6IGdjYzExLW5vLWFkZC1uZWVkZWQucGF0Y2gKK1BhdGNoOTogZ2Nj MTEtZm9mZmxvYWQtZGVmYXVsdC5wYXRjaAorUGF0Y2gxMDogZ2NjMTEtV25vLWZvcm1hdC1zZWN1 cml0eS5wYXRjaAorUGF0Y2gxMTogZ2NjMTEtcmgxNTc0OTM2LnBhdGNoCitQYXRjaDEyOiBnY2Mx MS1kLXNoYXJlZC1saWJwaG9ib3MucGF0Y2gKK1BhdGNoMTM6IGdjYzExLXByOTkzNzgtcmV2ZXJ0 LnBhdGNoCitQYXRjaDE0OiBnY2MxMS1wcjk5Mzg4LnBhdGNoCitQYXRjaDE1OiBnY2MxMS1wcjkx NzEwLnBhdGNoCitQYXRjaDE2OiBnY2MxMS1wcjk5MjMwLnBhdGNoCitQYXRjaDE3OiBnY2MxMS1w cjk5NDkwLnBhdGNoCitQYXRjaDE4OiBnY2MxMS1wcjk5NTYyLnBhdGNoCitQYXRjaDE5OiBnY2Mx MS1wcjk5NjUwLnBhdGNoCiAKIFBhdGNoMTAwOiBnY2MxMS1mb3J0cmFuLWZkZWMtZHVwbGljYXRl cy5wYXRjaAogUGF0Y2gxMDE6IGdjYzExLWZvcnRyYW4tZmxvZ2ljYWwtYXMtaW50ZWdlci5wYXRj aApAQCAtNzc2LDI2ICs3NzQsMzIgQEAgYnkgZGVmYXVsdCBhZGQgUFRYIGNvZGUgaW50byB0aGUg YmluYXJpZXMsIHdoaWNoIGNhbiBiZSBvZmZsb2FkZWQKIHRvIE5WaWRpYSBQVFggY2FwYWJsZSBk ZXZpY2VzIGlmIGF2YWlsYWJsZS4KIAogJXByZXAKLSVzZXR1cCAtcSAtbiBnY2MtJXt2ZXJzaW9u fS0le0RBVEV9IC1hIDEgLWEgMgorJXNldHVwIC1xIC1uIGdjYy0le3ZlcnNpb259LSV7REFURX0g LWEgMSAtYSAyIC1hIDMKICVwYXRjaDAgLXAwIC1iIC5oYWNrfgogJXBhdGNoMiAtcDAgLWIgLnNw YXJjLWNvbmZpZy1kZXRlY3Rpb25+CiAlcGF0Y2gzIC1wMCAtYiAubGliZ29tcC1vbXBfaC1tdWx0 aWxpYn4KICVwYXRjaDQgLXAwIC1iIC5saWJ0b29sLW5vLXJwYXRofgogJWlmICV7YnVpbGRfaXNs fQogJXBhdGNoNSAtcDAgLWIgLmlzbC1kbH4KKyVwYXRjaDYgLXAwIC1iIC5pc2wtZGwyfgogJWVu ZGlmCiAlaWYgJXtidWlsZF9saWJzdGRjeHhfZG9jc30KLSVwYXRjaDYgLXAwIC1iIC5saWJzdGRj KystZG9jc34KKyVwYXRjaDcgLXAwIC1iIC5saWJzdGRjKystZG9jc34KICVlbmRpZgotJXBhdGNo NyAtcDAgLWIgLm5vLWFkZC1uZWVkZWR+Ci0lcGF0Y2g4IC1wMCAtYiAuZm9mZmxvYWQtZGVmYXVs dH4KLSVwYXRjaDkgLXAwIC1iIC5Xbm8tZm9ybWF0LXNlY3VyaXR5fgorJXBhdGNoOCAtcDAgLWIg Lm5vLWFkZC1uZWVkZWR+CislcGF0Y2g5IC1wMCAtYiAuZm9mZmxvYWQtZGVmYXVsdH4KKyVwYXRj aDEwIC1wMCAtYiAuV25vLWZvcm1hdC1zZWN1cml0eX4KICVpZiAwJXs/ZmVkb3JhfSA+PSAyOSB8 fCAwJXs/cmhlbH0gPiA3Ci0lcGF0Y2gxMCAtcDAgLWIgLnJoMTU3NDkzNn4KKyVwYXRjaDExIC1w MCAtYiAucmgxNTc0OTM2fgogJWVuZGlmCi0lcGF0Y2gxMSAtcDAgLWIgLmQtc2hhcmVkLWxpYnBo b2Jvc34KLSVwYXRjaDEyIC1wMCAtYiAucHI5OTM3OC1yZXZlcnR+Ci0lcGF0Y2gxMyAtcDAgLWIg LnByOTkzODh+CislcGF0Y2gxMiAtcDAgLWIgLmQtc2hhcmVkLWxpYnBob2Jvc34KKyVwYXRjaDEz IC1wMCAtYiAucHI5OTM3OC1yZXZlcnR+CislcGF0Y2gxNCAtcDAgLWIgLnByOTkzODh+CislcGF0 Y2gxNSAtcDAgLWIgLnByOTE3MTB+CislcGF0Y2gxNiAtcDAgLWIgLnByOTkyMzB+CislcGF0Y2gx NyAtcDAgLWIgLnByOTk0OTB+CislcGF0Y2gxOCAtcDAgLWIgLnByOTk1NjJ+CislcGF0Y2gxOSAt cDAgLWIgLnByOTk2NTB+CiAKICVpZiAwJXs/cmhlbH0gPj0gOQogJXBhdGNoMTAwIC1wMSAtYiAu Zm9ydHJhbi1mZGVjLWR1cGxpY2F0ZXN+CkBAIC05MTAsNiArOTE0LDI4IEBAIHJtIC1yZiBvYmot JXtnY2NfdGFyZ2V0X3BsYXRmb3JtfQogbWtkaXIgb2JqLSV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0K IGNkIG9iai0le2djY190YXJnZXRfcGxhdGZvcm19CiAKKyVpZiAle2J1aWxkX2lzbH0KK21rZGly IGlzbC1idWlsZCBpc2wtaW5zdGFsbAorJWlmYXJjaCBzMzkwIHMzOTB4CitJU0xfRkxBR19QSUM9 LWZQSUMKKyVlbHNlCitJU0xfRkxBR19QSUM9LWZwaWMKKyVlbmRpZgorY2QgaXNsLWJ1aWxkCitz ZWQgLWkgJ3N8bGliaXNsfGxpYmdjYzExcHJpdmF0ZWlzbHxnJyBcCisgIC4uLy4uL2lzbC0le2lz bF92ZXJzaW9ufS9NYWtlZmlsZS57YW0saW59CisuLi8uLi9pc2wtJXtpc2xfdmVyc2lvbn0vY29u ZmlndXJlIFwKKyAgQ0M9L3Vzci9iaW4vZ2NjIENYWD0vdXNyL2Jpbi9nKysgXAorICBDRkxBR1M9 IiR7Q0ZMQUdTOi0lb3B0ZmxhZ3N9ICRJU0xfRkxBR19QSUMiIC0tcHJlZml4PWBjZCAuLjsgcHdk YC9pc2wtaW5zdGFsbAorbWFrZSAlez9fc21wX21mbGFnc30KK21ha2UgaW5zdGFsbAorY2QgLi4v aXNsLWluc3RhbGwvbGliCitybSBsaWJnY2MxMXByaXZhdGVpc2wuc297LC4xNX0KK212IGxpYmdj YzExcHJpdmF0ZWlzbC5zby4xNS4zLjAgbGliaXNsLnNvLjE1CitsbiAtc2YgbGliaXNsLnNvLjE1 IGxpYmlzbC5zbworY2QgLi4vLi4KKyVlbmRpZgorCiBlbmFibGVsZ289CiBlbmFibGVsYWRhPQog ZW5hYmxlbG9iamM9CkBAIC05NTMsNyArOTc5LDcgQEAgQ09ORklHVVJFX09QVFM9IlwKICVlbmRp ZgogCS0tZW5hYmxlLXBsdWdpbiAtLWVuYWJsZS1pbml0ZmluaS1hcnJheSBcCiAlaWYgJXtidWls ZF9pc2x9Ci0JLS13aXRoLWlzbCBcCisJLS13aXRoLWlzbD1gcHdkYC9pc2wtaW5zdGFsbCBcCiAl ZWxzZQogCS0td2l0aG91dC1pc2wgXAogJWVuZGlmCkBAIC0xMDk3LDYgKzExMjMsMTAgQEAgbWFr ZSBqaXQuc3BoaW54Lmh0bWwKIG1ha2Ugaml0LnNwaGlueC5pbnN0YWxsLWh0bWwgaml0X2h0bWxk aXI9YHB3ZGAvLi4vLi4vcnBtLmRvYy9saWJnY2NqaXQtZGV2ZWwvaHRtbAogY2QgLi4KIAorJWlm ICV7YnVpbGRfaXNsfQorY3AgLWEgaXNsLWluc3RhbGwvbGliL2xpYmlzbC5zby4xNSBnY2MvCisl ZW5kaWYKKwogIyBNYWtlIGdlbmVyYXRlZCBtYW4gcGFnZXMgZXZlbiBpZiBQb2Q6Ok1hbiBpcyBu b3QgbmV3IGVub3VnaAogcGVybCAtcGkgLWUgJ3MvaGVhZDMvaGVhZDIvJyAuLi9jb250cmliL3Rl eGkycG9kLnBsCiBmb3IgaSBpbiAuLi9nY2MvZG9jLyoudGV4aTsgZG8KQEAgLTEyMjMsNiArMTI1 MywxMCBAQCBjaG1vZCA2NDQgJXtidWlsZHJvb3R9JXtfaW5mb2Rpcn0vZ25hdCoKIEZVTExQQVRI PSV7YnVpbGRyb290fSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7 Z2NjX21ham9yfQogRlVMTEVQQVRIPSV7YnVpbGRyb290fSV7X3ByZWZpeH0vbGliZXhlYy9nY2Mv JXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY19tYWpvcn0KIAorJWlmICV7YnVpbGRfaXNsfQor Y3AgLWEgaXNsLWluc3RhbGwvbGliL2xpYmlzbC5zby4xNSAkRlVMTFBBVEgvCislZW5kaWYKKwog IyBmaXggc29tZSB0aGluZ3MKIGxuIC1zZiBnY2MgJXtidWlsZHJvb3R9JXtfcHJlZml4fS9iaW4v Y2MKIHJtIC1mICV7YnVpbGRyb290fSV7X3ByZWZpeH0vbGliL2NwcApAQCAtMjI5Niw2ICsyMzMw LDkgQEAgZW5kCiAlaWYgJXtidWlsZF9saWJhc2FufQogJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2Nj X3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfbWFqb3J9L2xpYnNhbml0aXplci5zcGVjCiAlZW5kaWYK KyVpZiAle2J1aWxkX2lzbH0KKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZv cm19LyV7Z2NjX21ham9yfS9saWJpc2wuc28uKgorJWVuZGlmCiAlaWZhcmNoIHNwYXJjdjkgcHBj CiAlZGlyICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX21h am9yfS82NAogJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2Nf bWFqb3J9LzY0L2NydCoubwpAQCAtMzA5Nyw2ICszMTM0LDM2IEBAIGVuZAogJWVuZGlmCiAKICVj aGFuZ2Vsb2cKKyogRnJpIE1hciAxOSAyMDIxIEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5j b20+IDExLjAuMS0wLjIKKy0gdXBkYXRlIGZyb20gdHJ1bmsKKyAgLSBQUnMgYysrLzkwNDQ4LCBj KysvOTYyNjgsIGMrKy85Njc0OSwgYysrLzk3OTczLCBjKysvOTg0ODAsIGMrKy85ODcwNCwKKwlj KysvOTkwNDcsIGMrKy85OTEwOCwgYysrLzk5MjM4LCBjKysvOTkyNDgsIGMrKy85OTI4NSwgYysr Lzk5NDIzLAorCWMrKy85OTQzNiwgYysrLzk5NDU5LCBjKysvOTk0NzIsIGMrKy85OTQ5NiwgYysr Lzk5NTAwLCBjKysvOTk1MDcsCisJYysrLzk5NTA4LCBjKysvOTk1MDksIGMrKy85OTUyOCwgYysr Lzk5NjAxLCBjKysvOTk2MTMsIGMrKy85OTYxNywKKwlmb3J0cmFuLzQ5Mjc4LCBmb3J0cmFuLzk2 OTgzLCBmb3J0cmFuLzk3OTI3LCBmb3J0cmFuLzk4ODU4LAorCWZvcnRyYW4vOTkxMjUsIGZvcnRy YW4vOTkyMDUsIGZvcnRyYW4vOTkzNDUsIGZvcnRyYW4vOTk1MTQsCisJZm9ydHJhbi85OTU0NSwg aXBhLzk5NTE3LCBsaWJzdGRjKysvOTkxNzIsIGxpYnN0ZGMrKy85OTM0MSwKKwlsaWJzdGRjKysv OTk0MTMsIGxpYnN0ZGMrKy85OTUzNiwgbGlic3RkYysrLzk5NTM3LCBtaWRkbGUtZW5kLzk3NjMx LAorCW1pZGRsZS1lbmQvOTgyNjYsIG1pZGRsZS1lbmQvOTk1MDIsIG1pZGRsZS1lbmQvOTk2NDEs IG9iamMrKy80OTA3MCwKKwlzYW5pdGl6ZXIvOTg5MjAsIHRhcmdldC85ODA5MiwgdGFyZ2V0Lzk4 OTU5LCB0YXJnZXQvOTkwNzAsCisJdGFyZ2V0Lzk5MDk0LCB0YXJnZXQvOTkxMDIsIHRhcmdldC85 OTQyMiwgdGFyZ2V0Lzk5NDM3LCB0YXJnZXQvOTk0NTQsCisJdGFyZ2V0Lzk5NDYzLCB0YXJnZXQv OTk0NjQsIHRhcmdldC85OTQ5MiwgdGFyZ2V0Lzk5NTA0LCB0YXJnZXQvOTk1NDIsCisJdGFyZ2V0 Lzk5NTYzLCB0YXJnZXQvOTk1OTIsIHRhcmdldC85OTYwMCwgdGVzdHN1aXRlLzk3NjgwLAorCXRl c3RzdWl0ZS85ODI0NSwgdGVzdHN1aXRlLzk5MjkyLCB0ZXN0c3VpdGUvOTk0OTgsIHRlc3RzdWl0 ZS85OTYyNiwKKwl0ZXN0c3VpdGUvOTk2MzYsIHRyZWUtb3B0aW1pemF0aW9uLzk4ODM0LCB0cmVl LW9wdGltaXphdGlvbi85OTMwNSwKKwl0cmVlLW9wdGltaXphdGlvbi85OTQ4OSwgdHJlZS1vcHRp bWl6YXRpb24vOTk1MTAsCisJdHJlZS1vcHRpbWl6YXRpb24vOTk1MjMsIHRyZWUtb3B0aW1pemF0 aW9uLzk5NTQ0CisgIC0gZml4IEFSTSBJQ0UgaW4gbmVvbl9vdXRwdXRfc2hpZnRfaW1tZWRpYXRl ICgjMTkyMjU5OSwgUFIgdGFyZ2V0Lzk5NTkzKQorLSBhdm9pZCBmYWxzZSBwb3NpdGl2ZSBhYXJj aDY0IC1XcHNhYmkgbm90ZXMgaW4gc29tZSBjYXNlcyAoUFIgdGFyZ2V0LzkxNzEwKQorLSBmaXgg YSAtZmNvbXBhcmUtZGVidWcgZmFpbHVyZSBjYXVzZWQgYnkgQyBGRSBidWcgKFBSIGRlYnVnLzk5 MjMwKQorLSBmaXggdXAgLWdkd2FyZi01IC1nc3BsaXQtZHdhcmYgcmFuZ2VzIGhhbmRsaW5nIChQ UiBkZWJ1Zy85OTQ5MCkKKy0gZml4IHVwIGhhbmRsaW5nIG9mID4gNjQgYml0IGNvbnN0YW50cyBp biBkd2FyZjJvdXQgKFBSIGRlYnVnLzk5NTYyLAorICBQUiBkZWJ1Zy82NjcyOCkKKy0gcmVqZWN0 IGludmFsaWQgQysrIHN0cnVjdHVyZWQgYmluZGluZ3MgdGhhdCBuZWVkIHJlZmVyZW5jZSB0byB2 b2lkCisgIChQUiBjKysvOTk2NTApCistIGluY2x1ZGUgcHJpdmF0ZSBpc2wgMC4xOCBpbiB0aGUg cGFja2FnZSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gb2xkCisgIGRpc3RybyB2ZXJzaW9uCisKICog U3VuIE1hciAgNyAyMDIxIEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDExLjAuMS0w LjEKIC0gdXBkYXRlIGZyb20gdHJ1bmsKICAgLSBQUnMgYWRhLzk4OTk2LCBhZGEvOTkwMjAsIGFk YS85OTA5NSwgYWRhLzk5MjY0LCBhbmFseXplci85NjM3NCwKCmRpZmYgLS1naXQgYS9nY2MxMS1p c2wtZGwyLnBhdGNoIGIvZ2NjMTEtaXNsLWRsMi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5hYzE0ZWQzCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjMTEtaXNsLWRsMi5w YXRjaApAQCAtMCwwICsxLDcxIEBACisyMDExLTA0LTA0ICBKYWt1YiBKZWxpbmVrICA8amFrdWJA cmVkaGF0LmNvbT4KKworCSogdG9wbGV2LmMgKHRvcGxldl9tYWluX2FyZ3YpOiBOZXcgdmFyaWFi bGUuCisJKHRvcGxldl9tYWluKTogSW5pdGlhbGl6ZSBpdC4KKwkqIGdyYXBoaXRlLmMgKGluaXRf aXNsX3BvaW50ZXJzKTogTG9hZCBsaWJpc2wuc28uMTUgZnJvbSBnY2MncyBwcml2YXRlCisJZGly ZWN0b3J5LgorCistLS0gZ2NjL3RvcGxldi5jLmpqCTIwMDgtMTItMDkgMjM6NTk6MTAuMDAwMDAw MDAwICswMTAwCisrKysgZ2NjL3RvcGxldi5jCTIwMDktMDEtMjcgMTQ6MzM6NTIuMDAwMDAwMDAw ICswMTAwCitAQCAtMTE3LDYgKzExNyw4IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVfZmlsZSAodm9p ZCk7CisgLyogVHJ1ZSBpZiB3ZSBkb24ndCBuZWVkIGEgYmFja2VuZCAoZS5nLiBwcmVwcm9jZXNz aW5nIG9ubHkpLiAgKi8KKyBzdGF0aWMgYm9vbCBub19iYWNrZW5kOworIAorK2NvbnN0IGNoYXIg Kip0b3BsZXZfbWFpbl9hcmd2OworKworIC8qIERlY29kZWQgb3B0aW9ucywgYW5kIG51bWJlciBv ZiBzdWNoIG9wdGlvbnMuICAqLworIHN0cnVjdCBjbF9kZWNvZGVkX29wdGlvbiAqc2F2ZV9kZWNv ZGVkX29wdGlvbnM7CisgdW5zaWduZWQgaW50IHNhdmVfZGVjb2RlZF9vcHRpb25zX2NvdW50Owor QEAgLTIyODcsNiArMjI4OSw4IEBAIHRvcGxldjo6bWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2 KQorIAorICAgZXhwYW5kYXJndiAoJmFyZ2MsICZhcmd2KTsKKyAKKysgIHRvcGxldl9tYWluX2Fy Z3YgPSBDT05TVF9DQVNUMiAoY29uc3QgY2hhciAqKiwgY2hhciAqKiwgYXJndik7CisrCisgICAv KiBJbml0aWFsaXphdGlvbiBvZiBHQ0MncyBlbnZpcm9ubWVudCwgYW5kIGRpYWdub3N0aWNzLiAg Ki8KKyAgIGdlbmVyYWxfaW5pdCAoYXJndlswXSwgbV9pbml0X3NpZ25hbHMpOworIAorLS0tIGdj Yy9ncmFwaGl0ZS5jLmpqCTIwMTAtMTItMDEgMTA6MjQ6MzIuMDAwMDAwMDAwIC0wNTAwCisrKysg Z2NjL2dyYXBoaXRlLmMJMjAxMC0xMi0wMSAxMTo0NjowNy44MzIxMTgxOTMgLTA1MDAKK0BAIC02 NCwxMSArNjQsMzkgQEAgX190eXBlb2YgKGlzbF9wb2ludGVyc19fKSBpc2xfcG9pbnRlcnNfXwor IHN0YXRpYyBib29sCisgaW5pdF9pc2xfcG9pbnRlcnMgKHZvaWQpCisgeworLSAgdm9pZCAqaDsK KysgIHZvaWQgKmggPSBOVUxMOworKyAgZXh0ZXJuIGNvbnN0IGNoYXIgKip0b3BsZXZfbWFpbl9h cmd2OworKyAgY2hhciAqYnVmLCAqcDsKKysgIHNpemVfdCBsZW47CisgCisgICBpZiAoaXNsX3Bv aW50ZXJzX18uaW5pdGVkKQorICAgICByZXR1cm4gaXNsX3BvaW50ZXJzX18uaCAhPSBOVUxMOwor LSAgaCA9IGRsb3BlbiAoImxpYmlzbC5zby4xNSIsIFJUTERfTEFaWSk7CisrICBsZW4gPSBwcm9n bmFtZSAtIHRvcGxldl9tYWluX2FyZ3ZbMF07CisrICBidWYgPSBYQUxMT0NBVkFSIChjaGFyLCBs ZW4gKyBzaXplb2YgImxpYmlzbC5zby4xNSIpOworKyAgbWVtY3B5IChidWYsIHRvcGxldl9tYWlu X2FyZ3ZbMF0sIGxlbik7CisrICBzdHJjcHkgKGJ1ZiArIGxlbiwgImxpYmlzbC5zby4xNSIpOwor KyAgbGVuICs9IHNpemVvZiAibGliaXNsLnNvLjE1IjsKKysgIHAgPSBzdHJzdHIgKGJ1ZiwgIi9s aWJleGVjLyIpOworKyAgaWYgKHAgIT0gTlVMTCkKKysgICAgeworKyAgICAgIHdoaWxlICgxKQor Kwl7CisrCSAgY2hhciAqcSA9IHN0cnN0ciAocCArIDgsICIvbGliZXhlYy8iKTsKKysJICBpZiAo cSA9PSBOVUxMKQorKwkgICAgYnJlYWs7CisrCSAgcCA9IHE7CisrCX0KKysgICAgICBtZW1tb3Zl IChwICsgNCwgcCArIDgsIGxlbiAtIChwICsgOCAtIGJ1ZikpOworKyAgICAgIGggPSBkbG9wZW4g KGJ1ZiwgUlRMRF9MQVpZKTsKKysgICAgICBpZiAoaCA9PSBOVUxMKQorKwl7CisrCSAgbGVuID0g cHJvZ25hbWUgLSB0b3BsZXZfbWFpbl9hcmd2WzBdOworKwkgIG1lbWNweSAoYnVmLCB0b3BsZXZf bWFpbl9hcmd2WzBdLCBsZW4pOworKwkgIHN0cmNweSAoYnVmICsgbGVuLCAibGliaXNsLnNvLjE1 Iik7CisrCX0KKysgICAgfQorKyAgaWYgKGggPT0gTlVMTCkKKysgICAgaCA9IGRsb3BlbiAoYnVm LCBSVExEX0xBWlkpOworICAgaXNsX3BvaW50ZXJzX18uaCA9IGg7CisgICBpZiAoaCA9PSBOVUxM KQorICAgICByZXR1cm4gZmFsc2U7CgpkaWZmIC0tZ2l0IGEvZ2NjMTEtcHI5MTcxMC5wYXRjaCBi L2djYzExLXByOTE3MTAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u ZmRlNjA0YwotLS0gL2Rldi9udWxsCisrKyBiL2djYzExLXByOTE3MTAucGF0Y2gKQEAgLTAsMCAr MSw5NiBAQAorMjAyMS0wMy0xOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisK KwlQUiB0YXJnZXQvOTE3MTAKKwkqIGNvbmZpZy9hYXJjaDY0L2FhcmNoNjQuYyAoYWFyY2g2NF9m dW5jdGlvbl9hcmdfYWxpZ25tZW50KTogQ2hhbmdlCisJYWJpX2JyZWFrIGFyZ3VtZW50IGZyb20g Ym9vbCAqIHRvIHVuc2lnbmVkICosIHN0b3JlIHRoZXJlIHRoZSBwcmUtR0NDIDkKKwlhbGlnbm1l bnQuCisJKGFhcmNoNjRfbGF5b3V0X2FyZywgYWFyY2g2NF9naW1wbGlmeV92YV9hcmdfZXhwcik6 IEFkanVzdCBjYWxsZXJzLgorCShhYXJjaDY0X2Z1bmN0aW9uX2FyZ19yZWdub19wKTogTGlrZXdp c2UuICBPbmx5IGVtaXQgLVdwc2FiaSBub3RlIGlmCisJdGhlIG9sZCBhbmQgbmV3IGFsaWdubWVu dCBhZnRlciBhcHBseWluZyBNSU4vTUFYIHRvIGl0IGlzIGRpZmZlcmVudC4KKworCSogZ2NjLnRh cmdldC9hYXJjaDY0L3ByOTE3MTAuYzogTmV3IHRlc3QuCisKKy0tLSBnY2MvY29uZmlnL2FhcmNo NjQvYWFyY2g2NC5jLmpqCTIwMjEtMDMtMTggMTU6MTQ6NTEuNzIxNDI1MjIzICswMTAwCisrKysg Z2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQuYwkyMDIxLTAzLTE4IDE2OjM1OjA0LjQzNzExNTQ0 NyArMDEwMAorQEAgLTU5MzgsOSArNTkzOCw5IEBAIGFhcmNoNjRfdmZwX2lzX2NhbGxfY2FuZGlk YXRlIChjdW11bGF0aXYKKyAKKyBzdGF0aWMgdW5zaWduZWQgaW50CisgYWFyY2g2NF9mdW5jdGlv bl9hcmdfYWxpZ25tZW50IChtYWNoaW5lX21vZGUgbW9kZSwgY29uc3RfdHJlZSB0eXBlLAorLQkJ CQlib29sICphYmlfYnJlYWspCisrCQkJCXVuc2lnbmVkIGludCAqYWJpX2JyZWFrKQorIHsKKy0g ICphYmlfYnJlYWsgPSBmYWxzZTsKKysgICphYmlfYnJlYWsgPSAwOworICAgaWYgKCF0eXBlKQor ICAgICByZXR1cm4gR0VUX01PREVfQUxJR05NRU5UIChtb2RlKTsKKyAKK0BAIC01OTgyLDcgKzU5 ODIsNyBAQCBhYXJjaDY0X2Z1bmN0aW9uX2FyZ19hbGlnbm1lbnQgKG1hY2hpbmVfCisgCisgICBp ZiAoYml0ZmllbGRfYWxpZ25tZW50ID4gYWxpZ25tZW50KQorICAgICB7CistICAgICAgKmFiaV9i cmVhayA9IHRydWU7CisrICAgICAgKmFiaV9icmVhayA9IGFsaWdubWVudDsKKyAgICAgICByZXR1 cm4gYml0ZmllbGRfYWxpZ25tZW50OworICAgICB9CisgCitAQCAtNjAwNCw3ICs2MDA0LDcgQEAg YWFyY2g2NF9sYXlvdXRfYXJnIChjdW11bGF0aXZlX2FyZ3NfdCBwYworICAgaW50IG5jcm4sIG52 cm4sIG5yZWdzOworICAgYm9vbCBhbGxvY2F0ZV9uY3JuLCBhbGxvY2F0ZV9udnJuOworICAgSE9T VF9XSURFX0lOVCBzaXplOworLSAgYm9vbCBhYmlfYnJlYWs7CisrICB1bnNpZ25lZCBpbnQgYWJp X2JyZWFrOworIAorICAgLyogV2UgbmVlZCB0byBkbyB0aGlzIG9uY2UgcGVyIGFyZ3VtZW50LiAg Ki8KKyAgIGlmIChwY3VtLT5hYXBjc19hcmdfcHJvY2Vzc2VkKQorQEAgLTYzMjIsMTQgKzYzMjIs MTkgQEAgYWFyY2g2NF9mdW5jdGlvbl9hcmdfcmVnbm9fcCAodW5zaWduZWQgcgorIHN0YXRpYyB1 bnNpZ25lZCBpbnQKKyBhYXJjaDY0X2Z1bmN0aW9uX2FyZ19ib3VuZGFyeSAobWFjaGluZV9tb2Rl IG1vZGUsIGNvbnN0X3RyZWUgdHlwZSkKKyB7CistICBib29sIGFiaV9icmVhazsKKysgIHVuc2ln bmVkIGludCBhYmlfYnJlYWs7CisgICB1bnNpZ25lZCBpbnQgYWxpZ25tZW50ID0gYWFyY2g2NF9m dW5jdGlvbl9hcmdfYWxpZ25tZW50IChtb2RlLCB0eXBlLAorIAkJCQkJCQkgICAmYWJpX2JyZWFr KTsKKysgIGFsaWdubWVudCA9IE1JTiAoTUFYIChhbGlnbm1lbnQsIFBBUk1fQk9VTkRBUlkpLCBT VEFDS19CT1VOREFSWSk7CisgICBpZiAoYWJpX2JyZWFrICYgd2Fybl9wc2FiaSkKKy0gICAgaW5m b3JtIChpbnB1dF9sb2NhdGlvbiwgInBhcmFtZXRlciBwYXNzaW5nIGZvciBhcmd1bWVudCBvZiB0 eXBlICIKKy0JICAgICIlcVQgY2hhbmdlZCBpbiBHQ0MgOS4xIiwgdHlwZSk7CisrICAgIHsKKysg ICAgICBhYmlfYnJlYWsgPSBNSU4gKE1BWCAoYWJpX2JyZWFrLCBQQVJNX0JPVU5EQVJZKSwgU1RB Q0tfQk9VTkRBUlkpOworKyAgICAgIGlmIChhbGlnbm1lbnQgIT0gYWJpX2JyZWFrKQorKwlpbmZv cm0gKGlucHV0X2xvY2F0aW9uLCAicGFyYW1ldGVyIHBhc3NpbmcgZm9yIGFyZ3VtZW50IG9mIHR5 cGUgIgorKwkJIiVxVCBjaGFuZ2VkIGluIEdDQyA5LjEiLCB0eXBlKTsKKysgICAgfQorIAorLSAg cmV0dXJuIE1JTiAoTUFYIChhbGlnbm1lbnQsIFBBUk1fQk9VTkRBUlkpLCBTVEFDS19CT1VOREFS WSk7CisrICByZXR1cm4gYWxpZ25tZW50OworIH0KKyAKKyAvKiBJbXBsZW1lbnQgVEFSR0VUX0dF VF9SQVdfUkVTVUxUX01PREUgYW5kIFRBUkdFVF9HRVRfUkFXX0FSR19NT0RFLiAgKi8KK0BAIC0x NjYxNiw3ICsxNjYyMSw3IEBAIGFhcmNoNjRfZ2ltcGxpZnlfdmFfYXJnX2V4cHIgKHRyZWUgdmFs aXMKKyAJCSAgZl9zdGFjaywgTlVMTF9UUkVFKTsKKyAgIHNpemUgPSBpbnRfc2l6ZV9pbl9ieXRl cyAodHlwZSk7CisgCistICBib29sIGFiaV9icmVhazsKKysgIHVuc2lnbmVkIGludCBhYmlfYnJl YWs7CisgICBhbGlnbgorICAgICA9IGFhcmNoNjRfZnVuY3Rpb25fYXJnX2FsaWdubWVudCAobW9k ZSwgdHlwZSwgJmFiaV9icmVhaykgLyBCSVRTX1BFUl9VTklUOworIAorLS0tIGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9hYXJjaDY0L3ByOTE3MTAuYy5qagkyMDIxLTAzLTE4IDE2OjQyOjMzLjUy OTIzMjcxMCArMDEwMAorKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3ByOTE3 MTAuYwkyMDIxLTAzLTE4IDE2OjQyOjA3LjI3MTUxODEyMSArMDEwMAorQEAgLTAsMCArMSwxNiBA QAorKy8qIFBSIHRhcmdldC85MTcxMCAqLworKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisrCisr c3RydWN0IFMgeyB1bnNpZ25lZCBpbnQgaTo0OyB9OworKworK3Vuc2lnbmVkIGludCB0ZXN0MShz dHJ1Y3QgUyBzKSB7CS8qIHsgZGctYm9ndXMgInBhcmFtZXRlciBwYXNzaW5nIGZvciBhcmd1bWVu dCBvZiB0eXBlIiB9ICovCisrICByZXR1cm4gcy5pOworK30KKysKKyt1bnNpZ25lZCBpbnQgdGVz dDIodW5zaWduZWQgeCwgc3RydWN0IFMgcykgewkvKiB7IGRnLWJvZ3VzICJwYXJhbWV0ZXIgcGFz c2luZyBmb3IgYXJndW1lbnQgb2YgdHlwZSIgfSAqLworKyAgcmV0dXJuIHggLSBzLmk7CisrfQor KworK3Vuc2lnbmVkIGludCB0ZXN0Myh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5LCBzdHJ1Y3QgUyBz KSB7CS8qIHsgZGctYm9ndXMgInBhcmFtZXRlciBwYXNzaW5nIGZvciBhcmd1bWVudCBvZiB0eXBl IiB9ICovCisrICByZXR1cm4geCAtIHkgLSBzLmk7CisrfQoKZGlmZiAtLWdpdCBhL2djYzExLXBy OTkyMzAucGF0Y2ggYi9nY2MxMS1wcjk5MjMwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjc1Y2Y2ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MxMS1wcjk5MjMwLnBh dGNoCkBAIC0wLDAgKzEsMTM3IEBACisyMDIxLTAzLTE4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJA cmVkaGF0LmNvbT4KKworCVBSIGRlYnVnLzk5MjMwCisJKiBjLWdpbXBsaWZ5LmMgKGNfZ2VuZXJp Y2l6ZV9jb250cm9sX3N0bXQpOiBIYW5kbGUgU1RBVEVNRU5UX0xJU1QuCisKKwkqIGNwLWdpbXBs aWZ5LmMgKGNwX2dlbmVyaWNpemVfcikgPGNhc2UgU1RBVEVNRU5UX0xJU1Q+OiBSZW1vdmUKKwlz cGVjaWFsIGNvZGUsIGluc3RlYWQgY2FsbCBjX2dlbmVyaWNpemVfY29udHJvbF9zdG10LgorCisJ KiBnY2MuZGcvcHI5OTIzMC5jOiBOZXcgdGVzdC4KKworLS0tIGdjYy9jLWZhbWlseS9jLWdpbXBs aWZ5LmMuamoJMjAyMS0wMS0wNCAxMDoyNTo1MC40MDIxMDI4MjUgKzAxMDAKKysrKyBnY2MvYy1m YW1pbHkvYy1naW1wbGlmeS5jCTIwMjEtMDMtMTcgMTk6MTk6MjAuMDUyNzAyMDk1ICswMTAwCitA QCAtNDk3LDYgKzQ5NywzNSBAQCBjX2dlbmVyaWNpemVfY29udHJvbF9zdG10ICh0cmVlICpzdG10 X3AsCisgICAgICAgZ2VuZXJpY2l6ZV9vbXBfZm9yX3N0bXQgKHN0bXRfcCwgd2Fsa19zdWJ0cmVl cywgZGF0YSwgZnVuYywgbGgpOworICAgICAgIGJyZWFrOworIAorKyAgICBjYXNlIFNUQVRFTUVO VF9MSVNUOgorKyAgICAgIGlmIChUUkVFX1NJREVfRUZGRUNUUyAoc3RtdCkpCisrCXsKKysJICB0 cmVlX3N0bXRfaXRlcmF0b3IgaTsKKysJICBpbnQgbm9uZGVidWdfc3RtdHMgPSAwOworKwkgIGJv b2wgY2xlYXJfc2lkZV9lZmZlY3RzID0gdHJ1ZTsKKysJICAvKiBHZW5lcmljaXphdGlvbiBjYW4g Y2xlYXIgVFJFRV9TSURFX0VGRkVDVFMsIGUuZy4gd2hlbgorKwkgICAgIHRyYW5zZm9ybWluZyBh biBJRl9TVE1UIGludG8gQ09ORF9FWFBSLiAgSWYgc3VjaCBzdG10CisrCSAgICAgYXBwZWFycyBp biBhIFNUQVRFTUVOVF9MSVNUIHRoYXQgY29udGFpbnMgb25seSB0aGF0CisrCSAgICAgc3RtdCBh bmQgc29tZSBERUJVR19CRUdJTl9TVE1Ucywgd2l0aG91dCAtZyB3aGVyZSB0aGUKKysJICAgICBT VEFURU1FTlRfTElTVCB3b3VsZG4ndCBiZSBwcmVzZW50IGF0IGFsbCB0aGUgcmVzdWx0aW5nCisr CSAgICAgZXhwcmVzc2lvbiB3b3VsZG4ndCBoYXZlIFRSRUVfU0lERV9FRkZFQ1RTIHNldCwgc28g bWFrZSBzdXJlCisrCSAgICAgdG8gY2xlYXIgaXQgZXZlbiBvbiB0aGUgU1RBVEVNRU5UX0xJU1Qg aW4gc3VjaCBjYXNlcy4gICovCisrCSAgZm9yIChpID0gdHNpX3N0YXJ0IChzdG10KTsgIXRzaV9l bmRfcCAoaSk7IHRzaV9uZXh0ICgmaSkpCisrCSAgICB7CisrCSAgICAgIHRyZWUgdCA9IHRzaV9z dG10IChpKTsKKysJICAgICAgaWYgKFRSRUVfQ09ERSAodCkgIT0gREVCVUdfQkVHSU5fU1RNVCAm JiBub25kZWJ1Z19zdG10cyA8IDIpCisrCQlub25kZWJ1Z19zdG10cysrOworKwkgICAgICB3YWxr X3RyZWVfMSAodHNpX3N0bXRfcHRyIChpKSwgZnVuYywgZGF0YSwgTlVMTCwgbGgpOworKwkgICAg ICBpZiAoVFJFRV9DT0RFICh0KSAhPSBERUJVR19CRUdJTl9TVE1UCisrCQkgICYmIChub25kZWJ1 Z19zdG10cyA+IDEgfHwgVFJFRV9TSURFX0VGRkVDVFMgKHRzaV9zdG10IChpKSkpKQorKwkJY2xl YXJfc2lkZV9lZmZlY3RzID0gZmFsc2U7CisrCSAgICB9CisrCSAgaWYgKGNsZWFyX3NpZGVfZWZm ZWN0cykKKysJICAgIFRSRUVfU0lERV9FRkZFQ1RTIChzdG10KSA9IDA7CisrCSAgKndhbGtfc3Vi dHJlZXMgPSAwOworKwl9CisrICAgICAgYnJlYWs7CisrCisgICAgIGRlZmF1bHQ6CisgICAgICAg YnJlYWs7CisgICAgIH0KKy0tLSBnY2MvY3AvY3AtZ2ltcGxpZnkuYy5qagkyMDIxLTAzLTA0IDA5 OjQyOjI3LjYwMjEyMzkwNSArMDEwMAorKysrIGdjYy9jcC9jcC1naW1wbGlmeS5jCTIwMjEtMDMt MTcgMTk6Mzg6NDIuNzQzODg4NTg5ICswMTAwCitAQCAtMTQ2NCwzNSArMTQ2NCw2IEBAIGNwX2dl bmVyaWNpemVfciAodHJlZSAqc3RtdF9wLCBpbnQgKndhbGsKKyAgICAgICB3YWxrX3N1YnRyZWVz ID0gMDsKKyAgICAgICBicmVhazsKKyAKKy0gICAgY2FzZSBTVEFURU1FTlRfTElTVDoKKy0gICAg ICBpZiAoVFJFRV9TSURFX0VGRkVDVFMgKHN0bXQpKQorLQl7CistCSAgdHJlZV9zdG10X2l0ZXJh dG9yIGk7CistCSAgaW50IG5vbmRlYnVnX3N0bXRzID0gMDsKKy0JICBib29sIGNsZWFyX3NpZGVf ZWZmZWN0cyA9IHRydWU7CistCSAgLyogR2VuZXJpY2l6YXRpb24gY2FuIGNsZWFyIFRSRUVfU0lE RV9FRkZFQ1RTLCBlLmcuIHdoZW4KKy0JICAgICB0cmFuc2Zvcm1pbmcgYW4gSUZfU1RNVCBpbnRv IENPTkRfRVhQUi4gIElmIHN1Y2ggc3RtdAorLQkgICAgIGFwcGVhcnMgaW4gYSBTVEFURU1FTlRf TElTVCB0aGF0IGNvbnRhaW5zIG9ubHkgdGhhdAorLQkgICAgIHN0bXQgYW5kIHNvbWUgREVCVUdf QkVHSU5fU1RNVHMsIHdpdGhvdXQgLWcgd2hlcmUgdGhlCistCSAgICAgU1RBVEVNRU5UX0xJU1Qg d291bGRuJ3QgYmUgcHJlc2VudCBhdCBhbGwgdGhlIHJlc3VsdGluZworLQkgICAgIGV4cHJlc3Np b24gd291bGRuJ3QgaGF2ZSBUUkVFX1NJREVfRUZGRUNUUyBzZXQsIHNvIG1ha2Ugc3VyZQorLQkg ICAgIHRvIGNsZWFyIGl0IGV2ZW4gb24gdGhlIFNUQVRFTUVOVF9MSVNUIGluIHN1Y2ggY2FzZXMu ICAqLworLQkgIGZvciAoaSA9IHRzaV9zdGFydCAoc3RtdCk7ICF0c2lfZW5kX3AgKGkpOyB0c2lf bmV4dCAoJmkpKQorLQkgICAgeworLQkgICAgICB0cmVlIHQgPSB0c2lfc3RtdCAoaSk7CistCSAg ICAgIGlmIChUUkVFX0NPREUgKHQpICE9IERFQlVHX0JFR0lOX1NUTVQgJiYgbm9uZGVidWdfc3Rt dHMgPCAyKQorLQkJbm9uZGVidWdfc3RtdHMrKzsKKy0JICAgICAgY3Bfd2Fsa190cmVlICh0c2lf c3RtdF9wdHIgKGkpLCBjcF9nZW5lcmljaXplX3IsIGRhdGEsIE5VTEwpOworLQkgICAgICBpZiAo VFJFRV9DT0RFICh0KSAhPSBERUJVR19CRUdJTl9TVE1UCistCQkgICYmIChub25kZWJ1Z19zdG10 cyA+IDEgfHwgVFJFRV9TSURFX0VGRkVDVFMgKHRzaV9zdG10IChpKSkpKQorLQkJY2xlYXJfc2lk ZV9lZmZlY3RzID0gZmFsc2U7CistCSAgICB9CistCSAgaWYgKGNsZWFyX3NpZGVfZWZmZWN0cykK Ky0JICAgIFRSRUVfU0lERV9FRkZFQ1RTIChzdG10KSA9IDA7CistCSAgKndhbGtfc3VidHJlZXMg PSAwOworLQl9CistICAgICAgYnJlYWs7CistCisgICAgIGNhc2UgT01QX0RJU1RSSUJVVEU6Cisg ICAgICAgLyogTmVlZCB0byBleHBsaWNpdGx5IGluc3RhbnRpYXRlIGNvcHkgY3RvcnMgb24gY2xh c3MgaXRlcmF0b3JzIG9mCisgCSBjb21wb3NpdGUgZGlzdHJpYnV0ZSBwYXJhbGxlbCBmb3IuICAq LworQEAgLTE1NjYsNiArMTUzNyw3IEBAIGNwX2dlbmVyaWNpemVfciAodHJlZSAqc3RtdF9wLCBp bnQgKndhbGsKKyAgICAgY2FzZSBPTVBfU0lNRDoKKyAgICAgY2FzZSBPTVBfTE9PUDoKKyAgICAg Y2FzZSBPQUNDX0xPT1A6CisrICAgIGNhc2UgU1RBVEVNRU5UX0xJU1Q6CisgICAgICAgLyogVGhl c2UgY2FzZXMgYXJlIGhhbmRsZWQgYnkgc2hhcmVkIGNvZGUuICAqLworICAgICAgIGNfZ2VuZXJp Y2l6ZV9jb250cm9sX3N0bXQgKHN0bXRfcCwgd2Fsa19zdWJ0cmVlcywgZGF0YSwKKyAJCQkJIGNw X2dlbmVyaWNpemVfciwgY3Bfd2Fsa19zdWJ0cmVlcyk7CistLS0gZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvcHI5OTIzMC5jLmpqCTIwMjEtMDMtMTcgMTk6MzQ6MjYuNjMzNzExMDc0ICswMTAwCisrKysg Z2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHI5OTIzMC5jCTIwMjEtMDMtMTcgMTk6MzM6MzAuMjEwMzMy ODg3ICswMTAwCitAQCAtMCwwICsxLDQwIEBACisrLyogUFIgZGVidWcvOTkyMzAgKi8KKysvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLworKy8qIHsgZGctb3B0aW9ucyAiLU8yIC0tcGFyYW0gbG9naWNh bC1vcC1ub24tc2hvcnQtY2lyY3VpdD0wIC1mY29tcGFyZS1kZWJ1ZyAtLXBhcmFtPWp1bXAtdGFi bGUtbWF4LWdyb3d0aC1yYXRpby1mb3Itc3BlZWQ9NTAwMCIgfSAqLworKworK2V4dGVybiB2b2lk IGZuMiAodm9pZCk7CisrZXh0ZXJuIHZvaWQgZm4zIChpbnQpOworK2ludCBhLCBiOworK3ZvaWQK KytmbjEgKHZvaWQpCisreworKyAgaW50IGM7CisrICBzaG9ydCBkOworKyAgc3dpdGNoIChhKSB7 CisrICBjYXNlIDIyMDAwOgorKyAgICBmbjIgKCk7CisrICBjYXNlIDIyMzAwOgorKyAgICBiID0g MDsKKysgIGNhc2UgMjI2MDA6CisrICBjYXNlIDIyNjAxOgorKyAgY2FzZSAyMjkwMDoKKysgICAg Zm4zICgxKTsKKysgIGNhc2UgMjAxMDA6CisrICAgIGZuMyAoMik7CisrICBjYXNlIDIwMjAwOgor KyAgICBmbjMgKDMpOworKyAgY2FzZSAyMDMwMDoKKysgICAgZm4zICg0KTsKKysgIGNhc2UgMjA0 MDA6CisrICAgIGZuMyAoNSk7CisrICBjYXNlIDIwMzEwOgorKyAgICBmbjMgKDQpOworKyAgY2Fz ZSAyMDQxMDoKKysgICAgZm4zICg1KTsKKysgIH0KKysgIGlmIChkIHx8IGMpIHsKKysgICAgZG8K KysgICAgICA7CisrICAgIHdoaWxlICgwKTsKKysgIH0KKyt9CgpkaWZmIC0tZ2l0IGEvZ2NjMTEt cHI5OTM3OC1yZXZlcnQucGF0Y2ggYi9nY2MxMS1wcjk5Mzc4LXJldmVydC5wYXRjaAppbmRleCBi ZDA0M2NiLi5lYTdmOTM3IDEwMDY0NAotLS0gYS9nY2MxMS1wcjk5Mzc4LXJldmVydC5wYXRjaAor KysgYi9nY2MxMS1wcjk5Mzc4LXJldmVydC5wYXRjaApAQCAtMSwyMSArMSw5NCBAQAogUmV2ZXJ0 OgorMjAyMS0wMy0xOCAgVmxhZGltaXIgTi4gTWFrYXJvdiAgPHZtYWthcm92QHJlZGhhdC5jb20+ CisKKwlQUiB0YXJnZXQvOTk0MjIKKwkqIGxyYS1jb25zdHJhaW50cy5jIChwcm9jZXNzX2FkZHJl c3NfMSk6IFVzZSBsb29rdXBfY29uc3RyYWludAorCW9ubHkgZm9yIGEgc2luZ2xlIGNvbnN0cmFp bnQuCisKKzIwMjEtMDMtMTAgIFZsYWRpbWlyIE4uIE1ha2Fyb3YgIDx2bWFrYXJvdkByZWRoYXQu Y29tPgorCisJUFIgdGFyZ2V0Lzk5NDIyCisJKiBscmEtY29uc3RyYWludHMuYyAocHJvY2Vzc19h ZGRyZXNzXzEpOiBEb24ndCBjaGVjayB1bmtub3duCisJY29uc3RyYWludCwgdXNlIFggZm9yIGVt cHR5IGNvbnN0cmFpbnQuCisKKzIwMjEtMDMtMDkgIFZsYWRpbWlyIE4uIE1ha2Fyb3YgIDx2bWFr YXJvdkByZWRoYXQuY29tPgorCisJUFIgdGFyZ2V0Lzk5NDU0CisJKiBscmEtY29uc3RyYWludHMu YyAocHJvY2Vzc19hZGRyZXNzXzEpOiBQcm9jZXNzIGNvbnN0cmFpbnQgJ2cnCisJc2VwYXJhdGVs eSBhbmQgZGlnaXRhbCBjb25zdHJhaW50cyBjb250YWluaW5nIG1vcmUgb25lIGRpZ2l0LgorCisy MDIxLTAzLTA5ICBWbGFkaW1pciBOLiBNYWthcm92ICA8dm1ha2Fyb3ZAcmVkaGF0LmNvbT4KKwor CVBSIHRhcmdldC85OTQ1NAorCSogbHJhLWNvbnN0cmFpbnRzLmMgKHByb2Nlc3NfYWRkcmVzc18x KTogUHJvY2VzcyAwLi45IGNvbnN0cmFpbnRzCisJaW4gcHJvY2Vzc19hZGRyZXNzXzEuCisKKzIw MjEtMDMtMDggIFZsYWRpbWlyIE4uIE1ha2Fyb3YgIDx2bWFrYXJvdkByZWRoYXQuY29tPgorCisJ UFIgdGFyZ2V0Lzk5NDIyCisJKiBscmEtY29uc3RyYWludHMuYyAoc2tpcF9jb250cmFpbnRfbW9k aWZpZXJzKTogTmV3IGZ1bmN0aW9uLgorCShwcm9jZXNzX2FkZHJlc3NfMSk6IFVzZSBpdCBiZWZv cmUgbG9va3VwX2NvbnN0cmFpbnQgY2FsbC4KKwogMjAyMS0wMy0wNSAgVmxhZGltaXIgTi4gTWFr YXJvdiAgPHZtYWthcm92QHJlZGhhdC5jb20+CiAKIAlQUiB0YXJnZXQvOTkzNzgKIAkqIGxyYS1j b25zdHJhaW50cy5jIChwcm9jZXNzX2FkZHJlc3NfMSk6IFNraXAgZGVjb21wb3NpbmcgYWRkcmVz cwogCWZvciBhc20gaW5zbiBvcGVyYW5kIHdpdGggdW5rbm93biBjb25zdHJhaW50LgogICAgIAot LS0tIGdjYy9scmEtY29uc3RyYWludHMuYwotKysrIGdjYy9scmEtY29uc3RyYWludHMuYwotQEAg LTM0NTAsOSArMzQ1MCw4IEBAIHByb2Nlc3NfYWRkcmVzc18xIChpbnQgbm9wLCBib29sIGNoZWNr X29ubHlfcCwKLSAgICAgIGkuZS4gYmNzdF9tZW1fb3BlcmFuZCBpbiBpMzg2IGJhY2tlbmQuICAq LwotICAgZWxzZSBpZiAoTUVNX1AgKG1lbSkKLSAJICAgJiYgIShJTlNOX0NPREUgKGN1cnJfaW5z bikgPCAwCi0tCQkmJiAoY24gPT0gQ09OU1RSQUlOVF9fVU5LTk9XTgotLQkJICAgIHx8IChnZXRf Y29uc3RyYWludF90eXBlIChjbikgPT0gQ1RfRklYRURfRk9STQotLQkJCSYmIGNvbnN0cmFpbnRf c2F0aXNmaWVkX3AgKG9wLCBjbikpKSkpCi0rCQkmJiBnZXRfY29uc3RyYWludF90eXBlIChjbikg PT0gQ1RfRklYRURfRk9STQotKwkgICAgICAgICYmIGNvbnN0cmFpbnRfc2F0aXNmaWVkX3AgKG9w LCBjbikpKQotICAgICBkZWNvbXBvc2VfbWVtX2FkZHJlc3MgKCZhZCwgbWVtKTsKLSAgIGVsc2Ug aWYgKEdFVF9DT0RFIChvcCkgPT0gU1VCUkVHCi0gCSAgICYmIE1FTV9QIChTVUJSRUdfUkVHIChv cCkpKQorLS0tIGdjYy9scmEtY29uc3RyYWludHMuYy5qagkyMDIxLTAzLTE5IDEzOjUzOjM4LjA5 NDc3ODI1MSArMDEwMAorKysrIGdjYy9scmEtY29uc3RyYWludHMuYwkyMDIxLTAzLTE5IDE0OjIz OjE2LjAxNzM4OTkwMCArMDEwMAorQEAgLTMzOTIsMjEgKzMzOTIsNiBAQCBlcXVpdl9hZGRyZXNz X3N1YnN0aXR1dGlvbiAoc3RydWN0IGFkZHJlCisgICByZXR1cm4gY2hhbmdlX3A7CisgfQorIAor LS8qIFNraXAgYWxsIG1vZGlmaWVycyBhbmQgd2hpdGVzcGFjZXMgaW4gY29uc3RyYWludCBTVFIg YW5kIHJldHVybiB0aGUKKy0gICByZXN1bHQuICAqLworLXN0YXRpYyBjb25zdCBjaGFyICoKKy1z a2lwX2NvbnRyYWludF9tb2RpZmllcnMgKGNvbnN0IGNoYXIgKnN0cikKKy17CistICBmb3IgKDs7 c3RyKyspCistICAgIHN3aXRjaCAoKnN0cikKKy0gICAgICB7CistICAgICAgY2FzZSAnKycgOiBj YXNlICcmJyA6IGNhc2UgJz0nOiBjYXNlICcqJzogY2FzZSAnICc6IGNhc2UgJ1x0JzoKKy0gICAg ICBjYXNlICckJzogY2FzZSAnXicgOiBjYXNlICclJzogY2FzZSAnPyc6IGNhc2UgJyEnOgorLQli cmVhazsKKy0gICAgICBkZWZhdWx0OiByZXR1cm4gc3RyOworLSAgICAgIH0KKy19CistCisgLyog TWFqb3IgZnVuY3Rpb24gdG8gbWFrZSByZWxvYWRzIGZvciBhbiBhZGRyZXNzIGluIG9wZXJhbmQg Tk9QIG9yCisgICAgY2hlY2sgaXRzIGNvcnJlY3RuZXNzIChJZiBDSEVDS19PTkxZX1AgaXMgdHJ1 ZSkuIFRoZSBzdXBwb3J0ZWQKKyAgICBjYXNlcyBhcmU6CitAQCAtMzQ0MSw4ICszNDI2LDggQEAg cHJvY2Vzc19hZGRyZXNzXzEgKGludCBub3AsIGJvb2wgY2hlY2tfbworICAgSE9TVF9XSURFX0lO VCBzY2FsZTsKKyAgIHJ0eCBvcCA9ICpjdXJyX2lkLT5vcGVyYW5kX2xvY1tub3BdOworICAgcnR4 IG1lbSA9IGV4dHJhY3RfbWVtX2Zyb21fb3BlcmFuZCAob3ApOworLSAgY29uc3QgY2hhciAqY29u c3RyYWludDsKKy0gIGVudW0gY29uc3RyYWludF9udW0gY247CisrICBjb25zdCBjaGFyICpjb25z dHJhaW50ID0gY3Vycl9zdGF0aWNfaWQtPm9wZXJhbmRbbm9wXS5jb25zdHJhaW50OworKyAgZW51 bSBjb25zdHJhaW50X251bSBjbiA9IGxvb2t1cF9jb25zdHJhaW50IChjb25zdHJhaW50KTsKKyAg IGJvb2wgY2hhbmdlX3AgPSBmYWxzZTsKKyAKKyAgIGlmIChNRU1fUCAobWVtKQorQEAgLTM0NTAs MjEgKzM0MzUsNiBAQCBwcm9jZXNzX2FkZHJlc3NfMSAoaW50IG5vcCwgYm9vbCBjaGVja19vCisg ICAgICAgJiYgR0VUX0NPREUgKFhFWFAgKG1lbSwgMCkpID09IFNDUkFUQ0gpCisgICAgIHJldHVy biBmYWxzZTsKKyAKKy0gIGNvbnN0cmFpbnQKKy0gICAgPSBza2lwX2NvbnRyYWludF9tb2RpZmll cnMgKGN1cnJfc3RhdGljX2lkLT5vcGVyYW5kW25vcF0uY29uc3RyYWludCk7CistICBpZiAoSU5f UkFOR0UgKGNvbnN0cmFpbnRbMF0sICcwJywgJzknKSkKKy0gICAgeworLSAgICAgIGNoYXIgKmVu ZDsKKy0gICAgICB1bnNpZ25lZCBsb25nIGR1cCA9IHN0cnRvdWwgKGNvbnN0cmFpbnQsICZlbmQs IDEwKTsKKy0gICAgICBjb25zdHJhaW50CistCT0gc2tpcF9jb250cmFpbnRfbW9kaWZpZXJzIChj dXJyX3N0YXRpY19pZC0+b3BlcmFuZFtkdXBdLmNvbnN0cmFpbnQpOworLSAgICB9CistICBpZiAo KnNraXBfY29udHJhaW50X21vZGlmaWVycyAoY29uc3RyYWludAorLQkJCQkgKyBDT05TVFJBSU5U X0xFTiAoY29uc3RyYWludFswXSwKKy0JCQkJCQkgICBjb25zdHJhaW50KSkgIT0gJ1wwJykKKy0g ICAgY24gPSBDT05TVFJBSU5UX19VTktOT1dOOworLSAgZWxzZQorLSAgICBjbiA9IGxvb2t1cF9j b25zdHJhaW50ICgqY29uc3RyYWludCA9PSAnXDAnID8gIlgiIDogY29uc3RyYWludCk7CisgICBp ZiAoaW5zbl9leHRyYV9hZGRyZXNzX2NvbnN0cmFpbnQgKGNuKQorICAgICAgIC8qIFdoZW4gd2Ug ZmluZCBhbiBhc20gb3BlcmFuZCB3aXRoIGFuIGFkZHJlc3MgY29uc3RyYWludCB0aGF0CisgCSBk b2Vzbid0IHNhdGlzZnkgYWRkcmVzc19vcGVyYW5kIHRvIGJlZ2luIHdpdGgsIHdlIGNsZWFyCgpk aWZmIC0tZ2l0IGEvZ2NjMTEtcHI5OTQ5MC5wYXRjaCBiL2djYzExLXByOTk0OTAucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWJkYTEyNgotLS0gL2Rldi9udWxsCisr KyBiL2djYzExLXByOTk0OTAucGF0Y2gKQEAgLTAsMCArMSw0NzMgQEAKKzIwMjEtMDMtMTIgIEph a3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJUFIgZGVidWcvOTk0OTAKKwkqIGR3 YXJmMm91dC5jIChkZWJ1Z19yYW5nZXNfZHdvX3NlY3Rpb24pOiBOZXcgdmFyaWFibGUuCisJKERX X1JBTkdFU19JRFhfU0tFTEVUT04pOiBEZWZpbmUuCisJKHN0cnVjdCBkd19yYW5nZXMpOiBBZGQg YmVnaW5fZW50cnkgYW5kIGVuZF9lbnRyeSBtZW1iZXJzLgorCShERUJVR19EV09fUk5HTElTVFNf U0VDVElPTik6IERlZmluZS4KKwkoYWRkX3Jhbmdlc19udW0pOiBBZGp1c3QgciBpbml0aWFsaXpl ciBmb3IgYWRkaXRpb24gb2YgKl9lbnRyeQorCW1lbWJlcnMuCisJKGFkZF9yYW5nZXNfYnlfbGFi ZWxzKTogRm9yIC1nc3BsaXQtZHdhcmYgYW5kIGZvcmNlX2RpcmVjdCwKKwlzZXQgaWR4IHRvIERX X1JBTkdFU19JRFhfU0tFTEVUT04uCisJKGluZGV4X3JuZ2xpc3RzKTogRG9uJ3Qgc2V0IHItPmlk eCBpZiBpdCBpcyBlcXVhbCB0bworCURXX1JBTkdFU19JRFhfU0tFTEVUT04uICBJbml0aWFsaXpl IHItPmJlZ2luX2VudHJ5IGFuZAorCXItPmVuZF9lbnRyeSBmb3IgLWdzcGxpdC1kd2FyZiBpZiB0 aG9zZSB3aWxsIGJlIG5lZWRlZCBieQorCW91dHB1dF9ybmdsaXN0cy4KKwkob3V0cHV0X3JuZ2xp c3RzKTogQWRkIERXTyBhcmd1bWVudC4gIElmIHRydWUsIHN3aXRjaCB0bworCWRlYnVnX3Jhbmdl c19kd29fc2VjdGlvbiByYXRoZXIgdGhhbiBkZWJ1Z19yYW5nZXNfc2VjdGlvbi4KKwlBZGp1c3Qg bDEvbDIgbGFiZWwgaW5kZXhlcy4gIE9ubHkgb3V0cHV0IHRoZSBvZmZzZXQgdGFibGUgd2hlbgor CWR3byBpcyB0cnVlIGFuZCBkb24ndCBpbmNsdWRlIGluIHRoZXJlIHRoZSBza2VsZXRvbiByYW5n ZQorCWVudHJ5IGlmIHByZXNlbnQuICBGb3IgLWdzcGxpdC1kd2FyZiwgc2tpcCByYW5nZXMgdGhh dCBiZWxvbmcKKwl0byB0aGUgb3RoZXIgcm5nbGlzdHMgc2VjdGlvbi4gIENoYW5nZSByZXR1cm4g dHlwZSBmcm9tIHZvaWQKKwl0byBib29sIGFuZCByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBhcmUgYW55 IHJhbmdlIGVudHJpZXMgZm9yCisJdGhlIG90aGVyIHNlY3Rpb24uICBGb3IgZHdhcmZfc3BsaXRf ZGVidWdfaW5mbyB1c2UKKwlEV19STEVfc3RhcnR4X2VuZHgsIERXX1JMRV9zdGFydHhfbGVuZ3Ro IGFuZCBEV19STEVfYmFzZV9hZGRyZXNzeAorCWVudHJpZXMgaW5zdGVhZCBvZiBEV19STEVfc3Rh cnRfZW5kLCBEV19STEVfc3RhcnRfbGVuZ3RoIGFuZAorCURXX1JMRV9iYXNlX2FkZHJlc3MuCisJ KGluaXRfc2VjdGlvbnNfYW5kX2xhYmVscyk6IEluaXRpYWxpemUgZGVidWdfcmFuZ2VzX2R3b19z ZWN0aW9uCisJaWYgLWdzcGxpdC1kd2FyZiBhbmQgRFdBUkYgPj0gNS4gIEFkanVzdCByYW5nZXNf c2VjdGlvbl9sYWJlbAorCWFuZCByYW5nZV9iYXNlX2xhYmVsIGluZGV4ZXMuCisJKGR3YXJmMm91 dF9maW5pc2gpOiBDYWxsIGluZGV4X3JuZ2xpc3RzIGVhcmxpZXIgYmVmb3JlIGZpbmFsaXppbmcK KwkuZGVidWdfYWRkci4gIE5ldmVyIGVtaXQgRFdfQVRfcm5nbGlzdHNfYmFzZSBhdHRyaWJ1dGUu ICBGb3IKKwktZ3NwbGl0LWR3YXJmIGFuZCBEV0FSRiA+PSA1IGNhbGwgb3V0cHV0X3JuZ2xpc3Rz IHVwIHRvIHR3aWNlCisJd2l0aCBkaWZmZXJlbnQgZHdvIGFyZ3VtZW50cy4KKwkoZHdhcmYyb3V0 X2NfZmluYWxpemUpOiBDbGVhciBkZWJ1Z19yYW5nZXNfZHdvX3NlY3Rpb24uCisKKy0tLSBnY2Mv ZHdhcmYyb3V0LmMuamoJMjAyMS0wMy0xMCAxNzozNjozNy4wMzc1MzcxMjkgKzAxMDAKKysrKyBn Y2MvZHdhcmYyb3V0LmMJMjAyMS0wMy0xMSAxMjo1MDowMC40MDI0MTg4NzMgKzAxMDAKK0BAIC0x NzEsNiArMTcxLDcgQEAgc3RhdGljIEdUWSgoKSkgc2VjdGlvbiAqZGVidWdfbGluZV9zdHJfcwor IHN0YXRpYyBHVFkoKCkpIHNlY3Rpb24gKmRlYnVnX3N0cl9kd29fc2VjdGlvbjsKKyBzdGF0aWMg R1RZKCgpKSBzZWN0aW9uICpkZWJ1Z19zdHJfb2Zmc2V0c19zZWN0aW9uOworIHN0YXRpYyBHVFko KCkpIHNlY3Rpb24gKmRlYnVnX3Jhbmdlc19zZWN0aW9uOworK3N0YXRpYyBHVFkoKCkpIHNlY3Rp b24gKmRlYnVnX3Jhbmdlc19kd29fc2VjdGlvbjsKKyBzdGF0aWMgR1RZKCgpKSBzZWN0aW9uICpk ZWJ1Z19mcmFtZV9zZWN0aW9uOworIAorIC8qIE1heGltdW0gc2l6ZSAoaW4gYnl0ZXMpIG9mIGFu IGFydGlmaWNpYWxseSBnZW5lcmF0ZWQgbGFiZWwuICAqLworQEAgLTMxNTIsMTEgKzMxNTMsMTcg QEAgc3RydWN0IEdUWSgoKSkgZHdfcmFuZ2VzIHsKKyAgIC8qIElmIHRoaXMgaXMgcG9zaXRpdmUs IGl0J3MgYSBibG9jayBudW1iZXIsIG90aGVyd2lzZSBpdCdzIGEKKyAgICAgIGJpdHdpc2UtbmVn YXRlZCBpbmRleCBpbnRvIGR3X3Jhbmdlc19ieV9sYWJlbC4gICovCisgICBpbnQgbnVtOworKyAg LyogSWYgaWR4IGlzIGVxdWFsIHRvIERXX1JBTkdFU19JRFhfU0tFTEVUT04sIGl0IHNob3VsZCBi ZSBlbWl0dGVkCisrICAgICBpbnRvIC5kZWJ1Z19ybmdsaXN0cyBzZWN0aW9uIHJhdGhlciB0aGFu IC5kZWJ1Z19ybmdsaXN0cy5kd28KKysgICAgIGZvciAtZ3NwbGl0LWR3YXJmIGFuZCBEV0FSRiA+ PSA1LiAgKi8KKysjZGVmaW5lIERXX1JBTkdFU19JRFhfU0tFTEVUT04gKCgxVSA8PCAzMSkgLSAx KQorICAgLyogSW5kZXggZm9yIHRoZSByYW5nZSBsaXN0IGZvciBEV19GT1JNX3JuZ2xpc3R4LiAg Ki8KKyAgIHVuc2lnbmVkIGludCBpZHggOiAzMTsKKyAgIC8qIFRydWUgaWYgdGhpcyByYW5nZSBt aWdodCBiZSBwb3NzaWJseSBpbiBhIGRpZmZlcmVudCBzZWN0aW9uCisgICAgICBmcm9tIHByZXZp b3VzIGVudHJ5LiAgKi8KKyAgIHVuc2lnbmVkIGludCBtYXliZV9uZXdfc2VjIDogMTsKKysgIGFk ZHJfdGFibGVfZW50cnkgKmJlZ2luX2VudHJ5OworKyAgYWRkcl90YWJsZV9lbnRyeSAqZW5kX2Vu dHJ5OworIH07CisgCisgLyogQSBzdHJ1Y3R1cmUgdG8gaG9sZCBhIG1hY2luZm8gZW50cnkuICAq LworQEAgLTQwOTksNiArNDEwNiw5IEBAIG5ld19hZGRyX2xvY19kZXNjciAocnR4IGFkZHIsIGVu dW0gZHRwcmUKKyAjaWZuZGVmIERFQlVHX1JOR0xJU1RTX1NFQ1RJT04KKyAjZGVmaW5lIERFQlVH X1JOR0xJU1RTX1NFQ1RJT04JIi5kZWJ1Z19ybmdsaXN0cyIKKyAjZW5kaWYKKysjaWZuZGVmIERF QlVHX0RXT19STkdMSVNUU19TRUNUSU9OCisrI2RlZmluZSBERUJVR19EV09fUk5HTElTVFNfU0VD VElPTgkiLmRlYnVnX3JuZ2xpc3RzLmR3byIKKysjZW5kaWYKKyAjaWZuZGVmIERFQlVHX0xJTkVf U1RSX1NFQ1RJT04KKyAjZGVmaW5lIERFQlVHX0xJTkVfU1RSX1NFQ1RJT04gICIuZGVidWdfbGlu ZV9zdHIiCisgI2VuZGlmCitAQCAtMTE3NTEsNyArMTE3NjEsNyBAQCBvdXRwdXRfYXJhbmdlcyAo dm9pZCkKKyBzdGF0aWMgdW5zaWduZWQgaW50CisgYWRkX3Jhbmdlc19udW0gKGludCBudW0sIGJv b2wgbWF5YmVfbmV3X3NlYykKKyB7CistICBkd19yYW5nZXMgciA9IHsgTlVMTCwgbnVtLCAwLCBt YXliZV9uZXdfc2VjIH07CisrICBkd19yYW5nZXMgciA9IHsgTlVMTCwgbnVtLCAwLCBtYXliZV9u ZXdfc2VjLCBOVUxMLCBOVUxMIH07CisgICB2ZWNfc2FmZV9wdXNoIChyYW5nZXNfdGFibGUsIHIp OworICAgcmV0dXJuIHZlY19zYWZlX2xlbmd0aCAocmFuZ2VzX3RhYmxlKSAtIDE7CisgfQorQEAg LTExNzk2LDYgKzExODA2LDggQEAgYWRkX3Jhbmdlc19ieV9sYWJlbHMgKGR3X2RpZV9yZWYgZGll LCBjbworICAgICAgIGFkZF9BVF9yYW5nZV9saXN0IChkaWUsIERXX0FUX3Jhbmdlcywgb2Zmc2V0 LCBmb3JjZV9kaXJlY3QpOworICAgICAgICphZGRlZCA9IHRydWU7CisgICAgICAgbm90ZV9ybmds aXN0X2hlYWQgKG9mZnNldCk7CisrICAgICAgaWYgKGR3YXJmX3NwbGl0X2RlYnVnX2luZm8gJiYg Zm9yY2VfZGlyZWN0KQorKwkoKnJhbmdlc190YWJsZSlbb2Zmc2V0XS5pZHggPSBEV19SQU5HRVNf SURYX1NLRUxFVE9OOworICAgICB9CisgfQorIAorQEAgLTExOTIxLDIzICsxMTkzMyw4NyBAQCBh c21fb3V0cHV0c19kZWJ1Z19saW5lX3N0ciAodm9pZCkKKyB9CisgCisgCistLyogQXNzaWduIC5k ZWJ1Z19ybmdsaXN0cyBpbmRleGVzLiAgKi8KKysvKiBBc3NpZ24gLmRlYnVnX3JuZ2xpc3RzIGlu ZGV4ZXMgYW5kIHVuaXF1ZSBpbmRleGVzIGludG8gdGhlIGRlYnVnX2FkZHIKKysgICBzZWN0aW9u IHdoZW4gbmVlZGVkLiAgKi8KKyAKKyBzdGF0aWMgdm9pZAorIGluZGV4X3JuZ2xpc3RzICh2b2lk KQorIHsKKyAgIHVuc2lnbmVkIGk7CisgICBkd19yYW5nZXMgKnI7CisrICBib29sIGJhc2UgPSBm YWxzZTsKKysgIHVuc2lnbmVkIGludCBsZW4gPSB2ZWNfc2FmZV9sZW5ndGggKHJhbmdlc190YWJs ZSk7CisgCisgICBGT1JfRUFDSF9WRUNfU0FGRV9FTFQgKHJhbmdlc190YWJsZSwgaSwgcikKKy0g ICAgaWYgKHItPmxhYmVsKQorLSAgICAgIHItPmlkeCA9IHJuZ2xpc3RfaWR4Kys7CisrICAgIHsK KysgICAgICBpZiAoci0+bGFiZWwgJiYgci0+aWR4ICE9IERXX1JBTkdFU19JRFhfU0tFTEVUT04p CisrCXItPmlkeCA9IHJuZ2xpc3RfaWR4Kys7CisrCisrICAgICAgaWYgKCFoYXZlX211bHRpcGxl X2Z1bmN0aW9uX3NlY3Rpb25zKQorKwljb250aW51ZTsKKysgICAgICBpbnQgYmxvY2tfbnVtID0g ci0+bnVtOworKyAgICAgIGlmIChIQVZFX0FTX0xFQjEyOCAmJiAoci0+bGFiZWwgfHwgci0+bWF5 YmVfbmV3X3NlYykpCisrCWJhc2UgPSBmYWxzZTsKKysgICAgICBpZiAoYmxvY2tfbnVtID4gMCkK KysJeworKwkgIGNoYXIgYmxhYmVsW01BWF9BUlRJRklDSUFMX0xBQkVMX0JZVEVTXTsKKysJICBj aGFyIGVsYWJlbFtNQVhfQVJUSUZJQ0lBTF9MQUJFTF9CWVRFU107CisrCisrCSAgQVNNX0dFTkVS QVRFX0lOVEVSTkFMX0xBQkVMIChibGFiZWwsIEJMT0NLX0JFR0lOX0xBQkVMLCBibG9ja19udW0p OworKwkgIEFTTV9HRU5FUkFURV9JTlRFUk5BTF9MQUJFTCAoZWxhYmVsLCBCTE9DS19FTkRfTEFC RUwsIGJsb2NrX251bSk7CisrCisrCSAgaWYgKEhBVkVfQVNfTEVCMTI4KQorKwkgICAgeworKwkg ICAgICBpZiAoIWJhc2UpCisrCQl7CisrCQkgIGR3X3JhbmdlcyAqcjIgPSBOVUxMOworKwkJICBp ZiAoaSA8IGxlbiAtIDEpCisrCQkgICAgcjIgPSAmKCpyYW5nZXNfdGFibGUpW2kgKyAxXTsKKysJ CSAgaWYgKHIyCisrCQkgICAgICAmJiByMi0+bnVtICE9IDAKKysJCSAgICAgICYmIHIyLT5sYWJl bCA9PSBOVUxMCisrCQkgICAgICAmJiAhcjItPm1heWJlX25ld19zZWMpCisrCQkgICAgeworKwkJ ICAgICAgci0+YmVnaW5fZW50cnkKKysJCQk9IGFkZF9hZGRyX3RhYmxlX2VudHJ5ICh4c3RyZHVw IChibGFiZWwpLAorKwkJCQkJCWF0ZV9raW5kX2xhYmVsKTsKKysJCSAgICAgIGJhc2UgPSB0cnVl OworKwkJICAgIH0KKysJCX0KKysJICAgICAgaWYgKGJhc2UpCisrCQljb250aW51ZTsKKysJICAg ICAgci0+YmVnaW5fZW50cnkKKysJCT0gYWRkX2FkZHJfdGFibGVfZW50cnkgKHhzdHJkdXAgKGJs YWJlbCksIGF0ZV9raW5kX2xhYmVsKTsKKysJICAgIH0KKysJICBlbHNlCisrCSAgICB7CisrCSAg ICAgIHItPmJlZ2luX2VudHJ5CisrCQk9IGFkZF9hZGRyX3RhYmxlX2VudHJ5ICh4c3RyZHVwIChi bGFiZWwpLCBhdGVfa2luZF9sYWJlbCk7CisrCSAgICAgIHItPmVuZF9lbnRyeQorKwkJPSBhZGRf YWRkcl90YWJsZV9lbnRyeSAoeHN0cmR1cCAoZWxhYmVsKSwgYXRlX2tpbmRfbGFiZWwpOworKwkg ICAgfQorKwl9CisrCisrICAgICAgLyogTmVnYXRpdmUgYmxvY2tfbnVtIHN0YW5kcyBmb3IgYW4g aW5kZXggaW50byByYW5nZXNfYnlfbGFiZWwuICAqLworKyAgICAgIGVsc2UgaWYgKGJsb2NrX251 bSA8IDApCisrCXsKKysJICBpbnQgbGFiX2lkeCA9IC0gYmxvY2tfbnVtIC0gMTsKKysJICBjb25z dCBjaGFyICpibGFiZWwgPSAoKnJhbmdlc19ieV9sYWJlbClbbGFiX2lkeF0uYmVnaW47CisrCSAg Y29uc3QgY2hhciAqZWxhYmVsID0gKCpyYW5nZXNfYnlfbGFiZWwpW2xhYl9pZHhdLmVuZDsKKysK KysJICByLT5iZWdpbl9lbnRyeQorKwkgICAgPSBhZGRfYWRkcl90YWJsZV9lbnRyeSAoeHN0cmR1 cCAoYmxhYmVsKSwgYXRlX2tpbmRfbGFiZWwpOworKwkgIGlmICghSEFWRV9BU19MRUIxMjgpCisr CSAgICByLT5lbmRfZW50cnkKKysJICAgICAgPSBhZGRfYWRkcl90YWJsZV9lbnRyeSAoeHN0cmR1 cCAoZWxhYmVsKSwgYXRlX2tpbmRfbGFiZWwpOworKwl9CisrICAgIH0KKyB9CisgCistLyogRW1p dCAuZGVidWdfcm5nbGlzdHMgc2VjdGlvbi4gICovCisrLyogRW1pdCAuZGVidWdfcm5nbGlzdHMg b3IgKHdoZW4gRFdPIGlzIHRydWUpIC5kZWJ1Z19ybmdsaXN0cy5kd28gc2VjdGlvbi4gICovCisg Cistc3RhdGljIHZvaWQKKy1vdXRwdXRfcm5nbGlzdHMgKHVuc2lnbmVkIGdlbmVyYXRpb24pCisr c3RhdGljIGJvb2wKKytvdXRwdXRfcm5nbGlzdHMgKHVuc2lnbmVkIGdlbmVyYXRpb24sIGJvb2wg ZHdvKQorIHsKKyAgIHVuc2lnbmVkIGk7CisgICBkd19yYW5nZXMgKnI7CitAQCAtMTE5NDUsMTQg KzEyMDIxLDE5IEBAIG91dHB1dF9ybmdsaXN0cyAodW5zaWduZWQgZ2VuZXJhdGlvbikKKyAgIGNo YXIgbDJbTUFYX0FSVElGSUNJQUxfTEFCRUxfQllURVNdOworICAgY2hhciBiYXNlYnVmW01BWF9B UlRJRklDSUFMX0xBQkVMX0JZVEVTXTsKKyAKKy0gIHN3aXRjaF90b19zZWN0aW9uIChkZWJ1Z19y YW5nZXNfc2VjdGlvbik7CistICBBU01fT1VUUFVUX0xBQkVMIChhc21fb3V0X2ZpbGUsIHJhbmdl c19zZWN0aW9uX2xhYmVsKTsKKysgIGlmIChkd28pCisrICAgIHN3aXRjaF90b19zZWN0aW9uIChk ZWJ1Z19yYW5nZXNfZHdvX3NlY3Rpb24pOworKyAgZWxzZQorKyAgICB7CisrICAgICAgc3dpdGNo X3RvX3NlY3Rpb24gKGRlYnVnX3Jhbmdlc19zZWN0aW9uKTsKKysgICAgICBBU01fT1VUUFVUX0xB QkVMIChhc21fb3V0X2ZpbGUsIHJhbmdlc19zZWN0aW9uX2xhYmVsKTsKKysgICAgfQorICAgLyog VGhlcmUgYXJlIHVwIHRvIDQgdW5pcXVlIHJhbmdlcyBsYWJlbHMgcGVyIGdlbmVyYXRpb24uCisg ICAgICBTZWUgYWxzbyBpbml0X3NlY3Rpb25zX2FuZF9sYWJlbHMuICAqLworICAgQVNNX0dFTkVS QVRFX0lOVEVSTkFMX0xBQkVMIChsMSwgREVCVUdfUkFOR0VTX1NFQ1RJT05fTEFCRUwsCistCQkJ ICAgICAgIDIgKyBnZW5lcmF0aW9uICogNCk7CisrCQkJICAgICAgIDIgKyAyICogZHdvICsgZ2Vu ZXJhdGlvbiAqIDYpOworICAgQVNNX0dFTkVSQVRFX0lOVEVSTkFMX0xBQkVMIChsMiwgREVCVUdf UkFOR0VTX1NFQ1RJT05fTEFCRUwsCistCQkJICAgICAgIDMgKyBnZW5lcmF0aW9uICogNCk7Cisr CQkJICAgICAgIDMgKyAyICogZHdvICsgZ2VuZXJhdGlvbiAqIDYpOworICAgaWYgKERXQVJGX0lO SVRJQUxfTEVOR1RIX1NJWkUgLSBkd2FyZl9vZmZzZXRfc2l6ZSA9PSA0KQorICAgICBkdzJfYXNt X291dHB1dF9kYXRhICg0LCAweGZmZmZmZmZmLAorIAkJCSAiSW5pdGlhbCBsZW5ndGggZXNjYXBl IHZhbHVlIGluZGljYXRpbmcgIgorQEAgLTExOTY5LDEzICsxMjA1MCwxMyBAQCBvdXRwdXRfcm5n bGlzdHMgKHVuc2lnbmVkIGdlbmVyYXRpb24pCisgICAgICB0aGUgb2Zmc2V0IHRhYmxlIHBsdXMg Y29ycmVzcG9uZGluZyBEV19GT1JNX3JuZ2xpc3R4IHVsZWIxMjggaW5kZXhlcworICAgICAgaW50 byBpdCBhcmUgdXN1YWxseSBsYXJnZXIgdGhhbiBqdXN0IERXX0ZPUk1fc2VjX29mZnNldCBvZmZz ZXRzCisgICAgICBpbnRvIHRoZSAuZGVidWdfcm5nbGlzdHMgc2VjdGlvbi4gICovCistICBkdzJf YXNtX291dHB1dF9kYXRhICg0LCBkd2FyZl9zcGxpdF9kZWJ1Z19pbmZvID8gcm5nbGlzdF9pZHgg OiAwLAorKyAgZHcyX2FzbV9vdXRwdXRfZGF0YSAoNCwgZHdvID8gcm5nbGlzdF9pZHggOiAwLAor IAkJICAgICAgICJPZmZzZXQgRW50cnkgQ291bnQiKTsKKy0gIGlmIChkd2FyZl9zcGxpdF9kZWJ1 Z19pbmZvKQorKyAgaWYgKGR3bykKKyAgICAgeworICAgICAgIEFTTV9PVVRQVVRfTEFCRUwgKGFz bV9vdXRfZmlsZSwgcmFuZ2VzX2Jhc2VfbGFiZWwpOworICAgICAgIEZPUl9FQUNIX1ZFQ19TQUZF X0VMVCAocmFuZ2VzX3RhYmxlLCBpLCByKQorLQlpZiAoci0+bGFiZWwpCisrCWlmIChyLT5sYWJl bCAmJiByLT5pZHggIT0gRFdfUkFOR0VTX0lEWF9TS0VMRVRPTikKKyAJICBkdzJfYXNtX291dHB1 dF9kZWx0YSAoZHdhcmZfb2Zmc2V0X3NpemUsIHItPmxhYmVsLAorIAkJCQlyYW5nZXNfYmFzZV9s YWJlbCwgTlVMTCk7CisgICAgIH0KK0BAIC0xMTk4MywxNSArMTIwNjQsMzIgQEAgb3V0cHV0X3Ju Z2xpc3RzICh1bnNpZ25lZCBnZW5lcmF0aW9uKQorICAgY29uc3QgY2hhciAqbGFiID0gIiI7Cisg ICB1bnNpZ25lZCBpbnQgbGVuID0gdmVjX3NhZmVfbGVuZ3RoIChyYW5nZXNfdGFibGUpOworICAg Y29uc3QgY2hhciAqYmFzZSA9IE5VTEw7CisrICBib29sIHNraXBwaW5nID0gZmFsc2U7CisrICBi b29sIHJldCA9IGZhbHNlOworICAgRk9SX0VBQ0hfVkVDX1NBRkVfRUxUIChyYW5nZXNfdGFibGUs IGksIHIpCisgICAgIHsKKyAgICAgICBpbnQgYmxvY2tfbnVtID0gci0+bnVtOworIAorICAgICAg IGlmIChyLT5sYWJlbCkKKyAJeworKwkgIGlmIChkd2FyZl9zcGxpdF9kZWJ1Z19pbmZvKQorKwkg ICAgeworKwkgICAgICBpZiAoKHItPmlkeCA9PSBEV19SQU5HRVNfSURYX1NLRUxFVE9OKSA9PSBk d28pCisrCQl7CisrCQkgIHJldCA9IHRydWU7CisrCQkgIHNraXBwaW5nID0gdHJ1ZTsKKysJCSAg Y29udGludWU7CisrCQl9CisrCSAgICB9CisgCSAgQVNNX09VVFBVVF9MQUJFTCAoYXNtX291dF9m aWxlLCByLT5sYWJlbCk7CisgCSAgbGFiID0gci0+bGFiZWw7CisgCX0KKysgICAgICBpZiAoc2tp cHBpbmcpCisrCXsKKysJICBpZiAoYmxvY2tfbnVtID09IDApCisrCSAgICBza2lwcGluZyA9IGZh bHNlOworKwkgIGNvbnRpbnVlOworKwl9CisgICAgICAgaWYgKEhBVkVfQVNfTEVCMTI4ICYmIChy LT5sYWJlbCB8fCByLT5tYXliZV9uZXdfc2VjKSkKKyAJYmFzZSA9IE5VTEw7CisgICAgICAgaWYg KGJsb2NrX251bSA+IDApCitAQCAtMTIwMjcsMTAgKzEyMTI1LDIzIEBAIG91dHB1dF9ybmdsaXN0 cyAodW5zaWduZWQgZ2VuZXJhdGlvbikKKyAJCSAgICAgICYmIHIyLT5sYWJlbCA9PSBOVUxMCisg CQkgICAgICAmJiAhcjItPm1heWJlX25ld19zZWMpCisgCQkgICAgeworLQkJICAgICAgZHcyX2Fz bV9vdXRwdXRfZGF0YSAoMSwgRFdfUkxFX2Jhc2VfYWRkcmVzcywKKy0JCQkJCSAgICJEV19STEVf YmFzZV9hZGRyZXNzICglcykiLCBsYWIpOworLQkJICAgICAgZHcyX2FzbV9vdXRwdXRfYWRkciAo RFdBUkYyX0FERFJfU0laRSwgYmxhYmVsLAorLQkJCQkJICAgIkJhc2UgYWRkcmVzcyAoJXMpIiwg bGFiKTsKKysJCSAgICAgIGlmIChkd2FyZl9zcGxpdF9kZWJ1Z19pbmZvKQorKwkJCXsKKysJCQkg IGR3Ml9hc21fb3V0cHV0X2RhdGEgKDEsIERXX1JMRV9iYXNlX2FkZHJlc3N4LAorKwkJCQkJICAg ICAgICJEV19STEVfYmFzZV9hZGRyZXNzeCAoJXMpIiwKKysJCQkJCSAgICAgICBsYWIpOworKwkJ CSAgZHcyX2FzbV9vdXRwdXRfZGF0YV91bGViMTI4IChyLT5iZWdpbl9lbnRyeS0+aW5kZXgsCisr CQkJCQkJICAgICAgICJCYXNlIGFkZHJlc3MgaW5kZXggIgorKwkJCQkJCSAgICAgICAiKCVzKSIs IGJsYWJlbCk7CisrCQkJfQorKwkJICAgICAgZWxzZQorKwkJCXsKKysJCQkgIGR3Ml9hc21fb3V0 cHV0X2RhdGEgKDEsIERXX1JMRV9iYXNlX2FkZHJlc3MsCisrCQkJCQkgICAgICAgIkRXX1JMRV9i YXNlX2FkZHJlc3MgKCVzKSIsCisrCQkJCQkgICAgICAgbGFiKTsKKysJCQkgIGR3Ml9hc21fb3V0 cHV0X2FkZHIgKERXQVJGMl9BRERSX1NJWkUsIGJsYWJlbCwKKysJCQkJCSAgICAgICAiQmFzZSBh ZGRyZXNzICglcykiLCBsYWIpOworKwkJCX0KKyAJCSAgICAgIHN0cmNweSAoYmFzZWJ1ZiwgYmxh YmVsKTsKKyAJCSAgICAgIGJhc2UgPSBiYXNlYnVmOworIAkJICAgIH0KK0BAIC0xMjA0NSwxMyAr MTIxNTYsMzUgQEAgb3V0cHV0X3JuZ2xpc3RzICh1bnNpZ25lZCBnZW5lcmF0aW9uKQorIAkJCQkJ CSJSYW5nZSBlbmQgYWRkcmVzcyAoJXMpIiwgbGFiKTsKKyAJCSAgY29udGludWU7CisgCQl9Cist CSAgICAgIGR3Ml9hc21fb3V0cHV0X2RhdGEgKDEsIERXX1JMRV9zdGFydF9sZW5ndGgsCistCQkJ CSAgICJEV19STEVfc3RhcnRfbGVuZ3RoICglcykiLCBsYWIpOworLQkgICAgICBkdzJfYXNtX291 dHB1dF9hZGRyIChEV0FSRjJfQUREUl9TSVpFLCBibGFiZWwsCistCQkJCSAgICJSYW5nZSBiZWdp biBhZGRyZXNzICglcykiLCBsYWIpOworKwkgICAgICBpZiAoZHdhcmZfc3BsaXRfZGVidWdfaW5m bykKKysJCXsKKysJCSAgZHcyX2FzbV9vdXRwdXRfZGF0YSAoMSwgRFdfUkxFX3N0YXJ0eF9sZW5n dGgsCisrCQkJCSAgICAgICAiRFdfUkxFX3N0YXJ0eF9sZW5ndGggKCVzKSIsIGxhYik7CisrCQkg IGR3Ml9hc21fb3V0cHV0X2RhdGFfdWxlYjEyOCAoci0+YmVnaW5fZW50cnktPmluZGV4LAorKwkJ CQkJICAgICAgICJSYW5nZSBiZWdpbiBhZGRyZXNzIGluZGV4ICIKKysJCQkJCSAgICAgICAiKCVz KSIsIGJsYWJlbCk7CisrCQl9CisrCSAgICAgIGVsc2UKKysJCXsKKysJCSAgZHcyX2FzbV9vdXRw dXRfZGF0YSAoMSwgRFdfUkxFX3N0YXJ0X2xlbmd0aCwKKysJCQkJICAgICAgICJEV19STEVfc3Rh cnRfbGVuZ3RoICglcykiLCBsYWIpOworKwkJICBkdzJfYXNtX291dHB1dF9hZGRyIChEV0FSRjJf QUREUl9TSVpFLCBibGFiZWwsCisrCQkJCSAgICAgICAiUmFuZ2UgYmVnaW4gYWRkcmVzcyAoJXMp IiwgbGFiKTsKKysJCX0KKyAJICAgICAgZHcyX2FzbV9vdXRwdXRfZGVsdGFfdWxlYjEyOCAoZWxh YmVsLCBibGFiZWwsCisgCQkJCQkgICAgIlJhbmdlIGxlbmd0aCAoJXMpIiwgbGFiKTsKKyAJICAg IH0KKysJICBlbHNlIGlmIChkd2FyZl9zcGxpdF9kZWJ1Z19pbmZvKQorKwkgICAgeworKwkgICAg ICBkdzJfYXNtX291dHB1dF9kYXRhICgxLCBEV19STEVfc3RhcnR4X2VuZHgsCisrCQkJCSAgICJE V19STEVfc3RhcnR4X2VuZHggKCVzKSIsIGxhYik7CisrCSAgICAgIGR3Ml9hc21fb3V0cHV0X2Rh dGFfdWxlYjEyOCAoci0+YmVnaW5fZW50cnktPmluZGV4LAorKwkJCQkJICAgIlJhbmdlIGJlZ2lu IGFkZHJlc3MgaW5kZXggIgorKwkJCQkJICAgIiglcykiLCBibGFiZWwpOworKwkgICAgICBkdzJf YXNtX291dHB1dF9kYXRhX3VsZWIxMjggKHItPmVuZF9lbnRyeS0+aW5kZXgsCisrCQkJCQkgICAi UmFuZ2UgZW5kIGFkZHJlc3MgaW5kZXggIgorKwkJCQkJICAgIiglcykiLCBlbGFiZWwpOworKwkg ICAgfQorIAkgIGVsc2UKKyAJICAgIHsKKyAJICAgICAgZHcyX2FzbV9vdXRwdXRfZGF0YSAoMSwg RFdfUkxFX3N0YXJ0X2VuZCwKK0BAIC0xMjA3NCwxMyArMTIyMDcsMzUgQEAgb3V0cHV0X3JuZ2xp c3RzICh1bnNpZ25lZCBnZW5lcmF0aW9uKQorIAkgICAgZ2NjX3VucmVhY2hhYmxlICgpOworIAkg IGlmIChIQVZFX0FTX0xFQjEyOCkKKyAJICAgIHsKKy0JICAgICAgZHcyX2FzbV9vdXRwdXRfZGF0 YSAoMSwgRFdfUkxFX3N0YXJ0X2xlbmd0aCwKKy0JCQkJICAgIkRXX1JMRV9zdGFydF9sZW5ndGgg KCVzKSIsIGxhYik7CistCSAgICAgIGR3Ml9hc21fb3V0cHV0X2FkZHIgKERXQVJGMl9BRERSX1NJ WkUsIGJsYWJlbCwKKy0JCQkJICAgIlJhbmdlIGJlZ2luIGFkZHJlc3MgKCVzKSIsIGxhYik7Cisr CSAgICAgIGlmIChkd2FyZl9zcGxpdF9kZWJ1Z19pbmZvKQorKwkJeworKwkJICBkdzJfYXNtX291 dHB1dF9kYXRhICgxLCBEV19STEVfc3RhcnR4X2xlbmd0aCwKKysJCQkJICAgICAgICJEV19STEVf c3RhcnR4X2xlbmd0aCAoJXMpIiwgbGFiKTsKKysJCSAgZHcyX2FzbV9vdXRwdXRfZGF0YV91bGVi MTI4IChyLT5iZWdpbl9lbnRyeS0+aW5kZXgsCisrCQkJCQkgICAgICAgIlJhbmdlIGJlZ2luIGFk ZHJlc3MgaW5kZXggIgorKwkJCQkJICAgICAgICIoJXMpIiwgYmxhYmVsKTsKKysJCX0KKysJICAg ICAgZWxzZQorKwkJeworKwkJICBkdzJfYXNtX291dHB1dF9kYXRhICgxLCBEV19STEVfc3RhcnRf bGVuZ3RoLAorKwkJCQkgICAgICAgIkRXX1JMRV9zdGFydF9sZW5ndGggKCVzKSIsIGxhYik7Cisr CQkgIGR3Ml9hc21fb3V0cHV0X2FkZHIgKERXQVJGMl9BRERSX1NJWkUsIGJsYWJlbCwKKysJCQkJ ICAgICAgICJSYW5nZSBiZWdpbiBhZGRyZXNzICglcykiLCBsYWIpOworKwkJfQorIAkgICAgICBk dzJfYXNtX291dHB1dF9kZWx0YV91bGViMTI4IChlbGFiZWwsIGJsYWJlbCwKKyAJCQkJCSAgICAi UmFuZ2UgbGVuZ3RoICglcykiLCBsYWIpOworIAkgICAgfQorKwkgIGVsc2UgaWYgKGR3YXJmX3Nw bGl0X2RlYnVnX2luZm8pCisrCSAgICB7CisrCSAgICAgIGR3Ml9hc21fb3V0cHV0X2RhdGEgKDEs IERXX1JMRV9zdGFydHhfZW5keCwKKysJCQkJICAgIkRXX1JMRV9zdGFydHhfZW5keCAoJXMpIiwg bGFiKTsKKysJICAgICAgZHcyX2FzbV9vdXRwdXRfZGF0YV91bGViMTI4IChyLT5iZWdpbl9lbnRy eS0+aW5kZXgsCisrCQkJCQkgICAiUmFuZ2UgYmVnaW4gYWRkcmVzcyBpbmRleCAiCisrCQkJCQkg ICAiKCVzKSIsIGJsYWJlbCk7CisrCSAgICAgIGR3Ml9hc21fb3V0cHV0X2RhdGFfdWxlYjEyOCAo ci0+ZW5kX2VudHJ5LT5pbmRleCwKKysJCQkJCSAgICJSYW5nZSBlbmQgYWRkcmVzcyBpbmRleCAi CisrCQkJCQkgICAiKCVzKSIsIGVsYWJlbCk7CisrCSAgICB9CisgCSAgZWxzZQorIAkgICAgewor IAkgICAgICBkdzJfYXNtX291dHB1dF9kYXRhICgxLCBEV19STEVfc3RhcnRfZW5kLAorQEAgLTEy MDk2LDYgKzEyMjUxLDcgQEAgb3V0cHV0X3JuZ2xpc3RzICh1bnNpZ25lZCBnZW5lcmF0aW9uKQor IAkJCSAgICAgIkRXX1JMRV9lbmRfb2ZfbGlzdCAoJXMpIiwgbGFiKTsKKyAgICAgfQorICAgQVNN X09VVFBVVF9MQUJFTCAoYXNtX291dF9maWxlLCBsMik7CisrICByZXR1cm4gcmV0OworIH0KKyAK KyAvKiBEYXRhIHN0cnVjdHVyZSBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IGlucHV0IGZp bGVzLiAgKi8KK0BAIC0yODgyMyw2ICsyODk3OSwxMCBAQCBpbml0X3NlY3Rpb25zX2FuZF9sYWJl bHMgKGJvb2wgZWFybHlfbHRvCisgCSAgZGVidWdfbWFjaW5mb19zZWN0aW9uID0gZ2V0X3NlY3Rp b24gKGRlYnVnX21hY2luZm9fc2VjdGlvbl9uYW1lLAorIAkJCQkJICAgICAgIFNFQ1RJT05fREVC VUcgfCBTRUNUSU9OX0VYQ0xVREUsCisgCQkJCQkgICAgICAgTlVMTCk7CisrCSAgaWYgKGR3YXJm X3ZlcnNpb24gPj0gNSkKKysJICAgIGRlYnVnX3Jhbmdlc19kd29fc2VjdGlvbgorKwkgICAgICA9 IGdldF9zZWN0aW9uIChERUJVR19EV09fUk5HTElTVFNfU0VDVElPTiwKKysJCQkgICAgIFNFQ1RJ T05fREVCVUcgfCBTRUNUSU9OX0VYQ0xVREUsIE5VTEwpOworIAl9CisgICAgICAgZGVidWdfYXJh bmdlc19zZWN0aW9uID0gZ2V0X3NlY3Rpb24gKERFQlVHX0FSQU5HRVNfU0VDVElPTiwKKyAJCQkJ CSAgIFNFQ1RJT05fREVCVUcsIE5VTEwpOworQEAgLTI4ODU3LDE1ICsyOTAxNywxNSBAQCBpbml0 X3NlY3Rpb25zX2FuZF9sYWJlbHMgKGJvb2wgZWFybHlfbHRvCisgICBBU01fR0VORVJBVEVfSU5U RVJOQUxfTEFCRUwgKGRlYnVnX2xpbmVfc2VjdGlvbl9sYWJlbCwKKyAJCQkgICAgICAgREVCVUdf TElORV9TRUNUSU9OX0xBQkVMLAorIAkJCSAgICAgICBpbml0X3NlY3Rpb25zX2FuZF9sYWJlbHNf Z2VuZXJhdGlvbik7CistICAvKiBUaGVyZSBhcmUgdXAgdG8gNCB1bmlxdWUgcmFuZ2VzIGxhYmVs cyBwZXIgZ2VuZXJhdGlvbi4KKysgIC8qIFRoZXJlIGFyZSB1cCB0byA2IHVuaXF1ZSByYW5nZXMg bGFiZWxzIHBlciBnZW5lcmF0aW9uLgorICAgICAgU2VlIGFsc28gb3V0cHV0X3JuZ2xpc3RzLiAg Ki8KKyAgIEFTTV9HRU5FUkFURV9JTlRFUk5BTF9MQUJFTCAocmFuZ2VzX3NlY3Rpb25fbGFiZWws CisgCQkJICAgICAgIERFQlVHX1JBTkdFU19TRUNUSU9OX0xBQkVMLAorLQkJCSAgICAgICBpbml0 X3NlY3Rpb25zX2FuZF9sYWJlbHNfZ2VuZXJhdGlvbiAqIDQpOworKwkJCSAgICAgICBpbml0X3Nl Y3Rpb25zX2FuZF9sYWJlbHNfZ2VuZXJhdGlvbiAqIDYpOworICAgaWYgKGR3YXJmX3ZlcnNpb24g Pj0gNSAmJiBkd2FyZl9zcGxpdF9kZWJ1Z19pbmZvKQorICAgICBBU01fR0VORVJBVEVfSU5URVJO QUxfTEFCRUwgKHJhbmdlc19iYXNlX2xhYmVsLAorIAkJCQkgREVCVUdfUkFOR0VTX1NFQ1RJT05f TEFCRUwsCistCQkJCSAxICsgaW5pdF9zZWN0aW9uc19hbmRfbGFiZWxzX2dlbmVyYXRpb24gKiA0 KTsKKysJCQkJIDEgKyBpbml0X3NlY3Rpb25zX2FuZF9sYWJlbHNfZ2VuZXJhdGlvbiAqIDYpOwor ICAgQVNNX0dFTkVSQVRFX0lOVEVSTkFMX0xBQkVMIChkZWJ1Z19hZGRyX3NlY3Rpb25fbGFiZWws CisgCQkJICAgICAgIERFQlVHX0FERFJfU0VDVElPTl9MQUJFTCwKKyAJCQkgICAgICAgaW5pdF9z ZWN0aW9uc19hbmRfbGFiZWxzX2dlbmVyYXRpb24pOworQEAgLTMxNjY1LDYgKzMxODI1LDkgQEAg ZHdhcmYyb3V0X2ZpbmlzaCAoY29uc3QgY2hhciAqZmlsZW5hbWUpCisgCSAgaW5kZXhfbG9jYXRp b25fbGlzdHMgKGNvbXBfdW5pdF9kaWUgKCkpOworIAl9CisgCisrICAgICAgaWYgKGR3YXJmX3Zl cnNpb24gPj0gNSAmJiAhdmVjX3NhZmVfaXNfZW1wdHkgKHJhbmdlc190YWJsZSkpCisrCWluZGV4 X3JuZ2xpc3RzICgpOworKworICAgICAgIGlmIChhZGRyX2luZGV4X3RhYmxlICE9IE5VTEwpCisg ICAgICAgICB7CisgICAgICAgICAgIHVuc2lnbmVkIGludCBpbmRleCA9IDA7CitAQCAtMzE3MzAs OSArMzE4OTMsNiBAQCBkd2FyZjJvdXRfZmluaXNoIChjb25zdCBjaGFyICpmaWxlbmFtZSkKKyAg ICAgICBpbnQgbWFyazsKKyAgICAgICBzdHJ1Y3QgbWQ1X2N0eCBjdHg7CisgCistICAgICAgaWYg KGR3YXJmX3ZlcnNpb24gPj0gNSAmJiAhdmVjX3NhZmVfaXNfZW1wdHkgKHJhbmdlc190YWJsZSkp CistCWluZGV4X3JuZ2xpc3RzICgpOworLQorICAgICAgIC8qIENvbXB1dGUgYSBjaGVja3N1bSBv ZiB0aGUgY29tcF91bml0IHRvIHVzZSBhcyB0aGUgZHdvX2lkLiAgKi8KKyAgICAgICBtZDVfaW5p dF9jdHggKCZjdHgpOworICAgICAgIG1hcmsgPSAwOworQEAgLTMxNzUyLDEwICszMTkxMiw3IEBA IGR3YXJmMm91dF9maW5pc2ggKGNvbnN0IGNoYXIgKmZpbGVuYW1lKQorICAgICAgICAgY29tcC11 bml0IERJRS4gICovCisgICAgICAgaWYgKCF2ZWNfc2FmZV9pc19lbXB0eSAocmFuZ2VzX3RhYmxl KSkKKyAJeworLQkgIGlmIChkd2FyZl92ZXJzaW9uID49IDUpCistCSAgICBhZGRfQVRfbGluZXB0 ciAobWFpbl9jb21wX3VuaXRfZGllLCBEV19BVF9ybmdsaXN0c19iYXNlLAorLQkJCSAgICByYW5n ZXNfYmFzZV9sYWJlbCk7CistCSAgZWxzZQorKwkgIGlmIChkd2FyZl92ZXJzaW9uIDwgNSkKKyAJ ICAgIGFkZF9BVF9saW5lcHRyIChtYWluX2NvbXBfdW5pdF9kaWUsIERXX0FUX0dOVV9yYW5nZXNf YmFzZSwKKyAJCQkgICAgcmFuZ2VzX3NlY3Rpb25fbGFiZWwpOworIAl9CitAQCAtMzE4MzMsNyAr MzE5OTAsMjYgQEAgZHdhcmYyb3V0X2ZpbmlzaCAoY29uc3QgY2hhciAqZmlsZW5hbWUpCisgICBp ZiAoIXZlY19zYWZlX2lzX2VtcHR5IChyYW5nZXNfdGFibGUpKQorICAgICB7CisgICAgICAgaWYg KGR3YXJmX3ZlcnNpb24gPj0gNSkKKy0Jb3V0cHV0X3JuZ2xpc3RzIChnZW5lcmF0aW9uKTsKKysJ eworKwkgIGlmIChkd2FyZl9zcGxpdF9kZWJ1Z19pbmZvKQorKwkgICAgeworKwkgICAgICAvKiBX ZSBkb24ndCBrbm93IHJpZ2h0IG5vdyB3aGV0aGVyIHRoZXJlIGFyZSBhbnkKKysJCSByYW5nZXMg Zm9yIC5kZWJ1Z19ybmdsaXN0cyBhbmQgYW55IGZvciAuZGVidWdfcm5nbGlzdHMuZHdvLgorKwkJ IERlcGVuZGluZyBvbiBpbnRvIHdoaWNoIG9mIHRob3NlIHR3byBiZWxvbmdzIHRoZSBmaXJzdAor KwkJIHJhbmdlc190YWJsZSBlbnRyeSwgZW1pdCB0aGF0IHNlY3Rpb24gZmlyc3QgYW5kIHRoYXQK KysJCSBvdXRwdXRfcm5nbGlzdHMgY2FsbCB3aWxsIHJldHVybiBpZiB0aGUgb3RoZXIga2luZCBv ZgorKwkJIHJhbmdlcyBuZWVkcyB0byBiZSBlbWl0dGVkIGFzIHdlbGwuICAqLworKwkgICAgICBp ZiAoKCpyYW5nZXNfdGFibGUpWzBdLmlkeCA9PSBEV19SQU5HRVNfSURYX1NLRUxFVE9OKQorKwkJ eworKwkJICBpZiAob3V0cHV0X3JuZ2xpc3RzIChnZW5lcmF0aW9uLCBmYWxzZSkpCisrCQkgICAg b3V0cHV0X3JuZ2xpc3RzIChnZW5lcmF0aW9uLCB0cnVlKTsKKysJCX0KKysJICAgICAgZWxzZSBp ZiAob3V0cHV0X3JuZ2xpc3RzIChnZW5lcmF0aW9uLCB0cnVlKSkKKysJCW91dHB1dF9ybmdsaXN0 cyAoZ2VuZXJhdGlvbiwgZmFsc2UpOworKwkgICAgfQorKwkgIGVsc2UKKysJICAgIG91dHB1dF9y bmdsaXN0cyAoZ2VuZXJhdGlvbiwgZmFsc2UpOworKwl9CisgICAgICAgZWxzZQorIAlvdXRwdXRf cmFuZ2VzICgpOworICAgICB9CitAQCAtMzI0NTcsNiArMzI2MzMsNyBAQCBkd2FyZjJvdXRfY19m aW5hbGl6ZSAodm9pZCkKKyAgIGRlYnVnX3N0cl9kd29fc2VjdGlvbiA9IE5VTEw7CisgICBkZWJ1 Z19zdHJfb2Zmc2V0c19zZWN0aW9uID0gTlVMTDsKKyAgIGRlYnVnX3Jhbmdlc19zZWN0aW9uID0g TlVMTDsKKysgIGRlYnVnX3Jhbmdlc19kd29fc2VjdGlvbiA9IE5VTEw7CisgICBkZWJ1Z19mcmFt ZV9zZWN0aW9uID0gTlVMTDsKKyAgIGZkZV92ZWMgPSBOVUxMOworICAgZGVidWdfc3RyX2hhc2gg PSBOVUxMOwoKZGlmZiAtLWdpdCBhL2djYzExLXByOTk1NjIucGF0Y2ggYi9nY2MxMS1wcjk5NTYy LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlZjYzYTYKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2MxMS1wcjk5NTYyLnBhdGNoCkBAIC0wLDAgKzEsMzkgQEAKKzIwMjEt MDMtMTMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJUFIgZGVidWcvOTk1 NjIKKwlQUiBkZWJ1Zy82NjcyOAorCSogZHdhcmYyb3V0LmMgKGdldF9mdWxsX2xlbik6IFVzZSBn ZXRfcHJlY2lzaW9uIHJhdGhlciB0aGFuCisJbWluX3ByZWNpc2lvbi4KKwkoYWRkX2NvbnN0X3Zh bHVlX2F0dHJpYnV0ZSk6IE1ha2Ugc3VyZSBhZGRfQVRfd2lkZSBhcmd1bWVudCBoYXMKKwlwcmVj aXNpb24gcHJlYyByYXRoZXIgdGhhbiBzb21lIHZlcnkgd2lkZSBvbmUuCisKKy0tLSBnY2MvZHdh cmYyb3V0LmMuamoJMjAyMS0wMy0xMSAxNDowMTo0My4zODUxOTQyMDUgKzAxMDAKKysrKyBnY2Mv ZHdhcmYyb3V0LmMJMjAyMS0wMy0xMiAxNzozNDo0OS4zNjUyMDcyNjUgKzAxMDAKK0BAIC0zODUs MTMgKzM4NSwxMiBAQCBkdW1wX3N0cnVjdF9kZWJ1ZyAodHJlZSB0eXBlLCBlbnVtIGRlYnVnCisg I2VuZGlmCisgCisgLyogR2V0IHRoZSBudW1iZXIgb2YgSE9TVF9XSURFX0lOVHMgbmVlZGVkIHRv IHJlcHJlc2VudCB0aGUgcHJlY2lzaW9uCistICAgb2YgdGhlIG51bWJlci4gIFNvbWUgY29uc3Rh bnRzIGhhdmUgYSBsYXJnZSB1bmlmb3JtIHByZWNpc2lvbiwgc28KKy0gICB3ZSBnZXQgdGhlIHBy ZWNpc2lvbiBuZWVkZWQgZm9yIHRoZSBhY3R1YWwgdmFsdWUgb2YgdGhlIG51bWJlci4gICovCisr ICAgb2YgdGhlIG51bWJlci4gICovCisgCisgc3RhdGljIHVuc2lnbmVkIGludAorIGdldF9mdWxs X2xlbiAoY29uc3Qgd2lkZV9pbnQgJm9wKQorIHsKKy0gIGludCBwcmVjID0gd2k6Om1pbl9wcmVj aXNpb24gKG9wLCBVTlNJR05FRCk7CisrICBpbnQgcHJlYyA9IHdpOjpnZXRfcHJlY2lzaW9uIChv cCk7CisgICByZXR1cm4gKChwcmVjICsgSE9TVF9CSVRTX1BFUl9XSURFX0lOVCAtIDEpCisgCSAg LyBIT1NUX0JJVFNfUEVSX1dJREVfSU5UKTsKKyB9CitAQCAtMTk3MzIsOCArMTk3MzEsOSBAQCBh ZGRfY29uc3RfdmFsdWVfYXR0cmlidXRlIChkd19kaWVfcmVmIGRpCisgICAgICAgeworIAl3aWRl X2ludCB3MSA9IHJ0eF9tb2RlX3QgKHJ0bCwgTUFYX01PREVfSU5UKTsKKyAJdW5zaWduZWQgaW50 IHByZWMgPSBNSU4gKHdpOjptaW5fcHJlY2lzaW9uICh3MSwgVU5TSUdORUQpLAorLQkJCQkgKHVu c2lnbmVkIGludClDT05TVF9XSURFX0lOVF9OVU5JVFMgKHJ0bCkgKiBIT1NUX0JJVFNfUEVSX1dJ REVfSU5UKTsKKy0Jd2lkZV9pbnQgdyA9IHdpOjp6ZXh0ICh3MSwgcHJlYyk7CisrCQkJCSAodW5z aWduZWQgaW50KSBDT05TVF9XSURFX0lOVF9OVU5JVFMgKHJ0bCkKKysJCQkJICogSE9TVF9CSVRT X1BFUl9XSURFX0lOVCk7CisrCXdpZGVfaW50IHcgPSB3aWRlX2ludDo6ZnJvbSAodzEsIHByZWMs IFVOU0lHTkVEKTsKKyAJYWRkX0FUX3dpZGUgKGRpZSwgRFdfQVRfY29uc3RfdmFsdWUsIHcpOwor ICAgICAgIH0KKyAgICAgICByZXR1cm4gdHJ1ZTsKCmRpZmYgLS1naXQgYS9nY2MxMS1wcjk5NjUw LnBhdGNoIGIvZ2NjMTEtcHI5OTY1MC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4wMzFjMjcyCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjMTEtcHI5OTY1MC5wYXRjaApA QCAtMCwwICsxLDQ0IEBACisyMDIxLTAzLTE4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0 LmNvbT4KKworCVBSIGMrKy85OTY1MAorCSogZGVjbC5jIChjcF9maW5pc2hfZGVjb21wKTogRGlh Z25vc2Ugdm9pZCBpbml0aWFsaXplcnMgd2hlbgorCXVzaW5nIHR1cGxlX2VsZW1lbnQgYW5kIGdl dC4KKworCSogZysrLmRnL2NwcDF6L2RlY29tcDU1LkM6IE5ldyB0ZXN0LgorCistLS0gZ2NjL2Nw L2RlY2wuYy5qagkyMDIxLTAzLTE2IDIxOjE3OjQxLjAxNDQ5ODcxMyArMDEwMAorKysrIGdjYy9j cC9kZWNsLmMJMjAyMS0wMy0xOCAxOTozMToyMi40MzAxNDk1MjMgKzAxMDAKK0BAIC04NjI5LDYg Kzg2MjksMTEgQEAgY3BfZmluaXNoX2RlY29tcCAodHJlZSBkZWNsLCB0cmVlIGZpcnN0LAorIAkJ CSA6IGdldF90dXBsZV9lbGVtZW50X3R5cGUgKHR5cGUsIGkpKTsKKyAJICBpbnB1dF9sb2NhdGlv biA9IHNsb2M7CisgCisrCSAgaWYgKFZPSURfVFlQRV9QIChlbHR5cGUpKQorKwkgICAgeworKwkg ICAgICBlcnJvciAoImZvcm1pbmcgcmVmZXJlbmNlIHRvIHZvaWQiKTsKKysJICAgICAgZWx0eXBl ID0gZXJyb3JfbWFya19ub2RlOworKwkgICAgfQorIAkgIGlmIChpbml0ID09IGVycm9yX21hcmtf bm9kZSB8fCBlbHR5cGUgPT0gZXJyb3JfbWFya19ub2RlKQorIAkgICAgeworIAkgICAgICBpbmZv cm0gKGRsb2MsICJpbiBpbml0aWFsaXphdGlvbiBvZiBzdHJ1Y3R1cmVkIGJpbmRpbmcgIgorLS0t IGdjYy90ZXN0c3VpdGUvZysrLmRnL2NwcDF6L2RlY29tcDU1LkMuamoJMjAyMS0wMy0xOCAxOTo0 MzowNy45NTg0NTc0OTQgKzAxMDAKKysrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9jcHAxei9kZWNv bXA1NS5DCTIwMjEtMDMtMTggMTk6NDI6MzUuMDk5ODE1NzQ2ICswMTAwCitAQCAtMCwwICsxLDE5 IEBACisrLy8gUFIgYysrLzk5NjUwCisrLy8geyBkZy1kbyBjb21waWxlIHsgdGFyZ2V0IGMrKzE3 IH0gfQorKworK25hbWVzcGFjZSBzdGQgeworKyAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0 IHR1cGxlX3NpemU7CisrICB0ZW1wbGF0ZTxpbnQsIHR5cGVuYW1lPiBzdHJ1Y3QgdHVwbGVfZWxl bWVudDsKKyt9CisrCisrc3RydWN0IEEgeworKyAgaW50IGk7CisrICB0ZW1wbGF0ZSA8aW50IEk+ IHZvaWQgZ2V0KCkgeyB9CisrfTsKKysKKyt0ZW1wbGF0ZTw+IHN0cnVjdCBzdGQ6OnR1cGxlX3Np emU8QT4geyBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gMjsgfTsKKyt0ZW1wbGF0ZTxpbnQgST4g c3RydWN0IHN0ZDo6dHVwbGVfZWxlbWVudDxJLEE+IHsgdXNpbmcgdHlwZSA9IHZvaWQ7IH07Cisr CisrQSBhID0geyA0MiB9OworK2F1dG8gWyB4LCB5IF0gPSBhOwkvLyB7IGRnLWVycm9yICJmb3Jt aW5nIHJlZmVyZW5jZSB0byB2b2lkIiB9CisrLy8geyBkZy1tZXNzYWdlICJpbiBpbml0aWFsaXph dGlvbiBvZiBzdHJ1Y3R1cmVkIGJpbmRpbmcgdmFyaWFibGUgJ3gnIiAiIiB7IHRhcmdldCAqLSot KiB9IC4tMSB9CgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggY2QzNDIzYS4u ODc3YzM2ZSAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xLDMgKzEsNCBA QAotU0hBNTEyIChnY2MtMTEuMC4xLTIwMjEwMzA3LnRhci54eikgPSAxZWZhNTA5OTFmNTVkZTU5 MjcwYWY2ZmYxMzRmYzE4MThjYTIzZTMwYmRjMDY0Zjc5OTE2ZTM1OGU0NmRhZjMwMWE4ZDJkM2Ux YWZjZGU1OGEwMGE1MjFlOGJjMjEzNmY4Y2M1ZjIxYzVlMDVjY2Q4MGZhOGU1YzdlOTMyNGU5Ygor U0hBNTEyIChnY2MtMTEuMC4xLTIwMjEwMzE5LnRhci54eikgPSA1ZTg0NjlmMzQ2MDFmOWZkMzA0 Mzk1MDkxMjlhNzM4ZjYxYzYxMzU3ZjI2MGNjNmFkZGZmZGVhMWE2YjE0ZWJhMGNmNzAzMGFkNmUz MmRkMDAwZjA4YjBmYmJhMTNlOTBkNjYxOGU1ZDY5OTY1ODAwMDY3NWNkZmUyMmM5MTlmMQorU0hB NTEyIChpc2wtMC4xOC50YXIuYnoyKSA9IDg1ZDBiNDBmNGRiZjE0Y2I5OWQxN2FhMDcwNDhjZGNh YjJkYzNlYjUyN2QyZmJiMWU4NGM0MWIyZGU1ZjM1MTAyNTM3MGU1NzQ0OGI2M2IyYjhhOGNmOGEw ODQzYTA4OWMzMjYzZjliYWVlMTU0MmQ1YzJlMWNiMzdlZDM5ZDk0CiBTSEE1MTIgKG5ld2xpYi1j eWd3aW4tNTBlMmE2M2IwNGJkZDAxODQ4NDYwNWZiYjk1NGZkMWJkNTE0N2ZhMC50YXIueHopID0g MDAyYTQ4YTdiNjg5YTgxYWJiZjE2MTYxYmNhZWMwMDFhODQyZTY3ZGZiZTM3MmU5ZTEwOTA5Mjcw M2JmYzY2NjY3NWYxNjE5OGY2MGNhNDI5MzcwZTg4NTBkNTY0NTQ3ZGM1MDVkZjgxYmMzYWFjYTRj ZTZkZWZiYzAxNGFkNmMKIFNIQTUxMiAobnZwdHgtdG9vbHMtNWY2ZjM0M2EzMDJkNjIwYjA4Njhl ZGFiMzc2YzAwYjE1NzQxZTM5ZS50YXIueHopID0gZjZkMTBkYjk0ZmExNTcwYWUwZjk0ZGYwNzNm YTNjNzNjOGU1ZWUxNmQ1OTA3MGI1M2Q5NGY3ZGIwZGU4YTAzMWJjNDRkN2YzZjE4NTI1MzNkYTA0 YjYyNWNlNzU4ZTAyMjI2Mzg1NWVkNDNjZmM2ODY3ZTA3MDhkMDAxZTUzYzcK