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: 6.0.0-0.5 Date: Mon, 29 Jun 2026 12:26:58 GMT Message-ID: <178273601820.1.12363860545995907217.rpms-gcc-cc2a83d68626@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: cc2a83d68626b45e110287103d5f54c6babe05c9 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogY2MyYTgzZDY4NjI2YjQ1ZTExMDI4NzEwM2Q1ZjU0YzZi YWJlMDVjOQpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPgpEYXRlICAg OiAyMDE2LTAxLTI3VDEzOjM3OjQwKzAxOjAwClN0YXRzICA6ICsyMzU0Ly0zMDA4IGluIDMzIGZp bGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nY2MvYy9j YzJhODNkNjg2MjZiNDVlMTEwMjg3MTAzZDVmNTRjNmJhYmUwNWM5P2JyYW5jaD1yaGVsLWY0MS1i YXNlCgpMb2c6CjYuMC4wLTAuNQoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGln bm9yZQppbmRleCA1ODQ3YTkyLi4zODFjMjdlIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBi Ly5naXRpZ25vcmUKQEAgLTEsMjggKzEgQEAKLS9nY2MtNS4wLjAtMjAxNTAxMjMudGFyLmJ6Mgot L2djYy01LjAuMC0yMDE1MDEzMC50YXIuYnoyCi0vZ2NjLTUuMC4wLTIwMTUwMjA1LnRhci5iejIK LS9nY2MtNS4wLjAtMjAxNTAyMDYudGFyLmJ6MgotL2djYy01LjAuMC0yMDE1MDIwOC50YXIuYnoy Ci0vZ2NjLTUuMC4wLTIwMTUwMjEwLnRhci5iejIKLS9nY2MtNS4wLjAtMjAxNTAyMTIudGFyLmJ6 MgotL2djYy01LjAuMC0yMDE1MDIxNC50YXIuYnoyCi0vZ2NjLTUuMC4wLTIwMTUwMjE2LnRhci5i ejIKLS9nY2MtNS4wLjAtMjAxNTAyMTcudGFyLmJ6MgotL2djYy01LjAuMC0yMDE1MDIyNC50YXIu YnoyCi0vZ2NjLTUuMC4wLTIwMTUwMjI2LnRhci5iejIKLS9nY2MtNS4wLjAtMjAxNTAzMTMudGFy LmJ6MgotL2djYy01LjAuMC0yMDE1MDMxNi50YXIuYnoyCi0vZ2NjLTUuMC4wLTIwMTUwMzE5LnRh ci5iejIKLS9nY2MtNS4wLjAtMjAxNTA0MDcudGFyLmJ6MgotL2djYy01LjAuMS0yMDE1MDQxMy50 YXIuYnoyCi0vZ2NjLTUuMC4xLTIwMTUwNDE3LnRhci5iejIKLS9nY2MtNS4xLjEtMjAxNTA0MjIu dGFyLmJ6MgotL2djYy01LjEuMS0yMDE1MDYwNi50YXIuYnoyCi0vZ2NjLTUuMS4xLTIwMTUwNjEy LnRhci5iejIKLS9nY2MtNS4xLjEtMjAxNTA2MTgudGFyLmJ6MgotL2djYy01LjEuMS0yMDE1MDcw Ny50YXIuYnoyCi0vZ2NjLTUuMi4xLTIwMTUwNzE2LnRhci5iejIKLS9nY2MtNS4yLjEtMjAxNTA5 MDIudGFyLmJ6MgotL2djYy01LjIuMS0yMDE1MDkyOS50YXIuYnoyCi0vZ2NjLTUuMi4xLTIwMTUx MTA0LnRhci5iejIKLS9nY2MtNS4zLjEtMjAxNTEyMDcudGFyLmJ6MgorL2djYy02LjAuMC0yMDE2 MDEyNy50YXIuYnoyCgpkaWZmIC0tZ2l0IGEvZ2NjLnNwZWMgYi9nY2Muc3BlYwppbmRleCAxOTg5 NGNlLi41N2ZkNDU5IDEwMDY0NAotLS0gYS9nY2Muc3BlYworKysgYi9nY2Muc3BlYwpAQCAtMSw5 ICsxLDkgQEAKLSVnbG9iYWwgREFURSAyMDE1MTIwNwotJWdsb2JhbCBTVk5SRVYgMjMxMzU4Ci0l Z2xvYmFsIGdjY192ZXJzaW9uIDUuMy4xCislZ2xvYmFsIERBVEUgMjAxNjAxMjcKKyVnbG9iYWwg U1ZOUkVWIDIzMjg3MAorJWdsb2JhbCBnY2NfdmVyc2lvbiA2LjAuMAogIyBOb3RlLCBnY2NfcmVs ZWFzZSBtdXN0IGJlIGludGVnZXIsIGlmIHlvdSB3YW50IHRvIGFkZCBzdWZmaXhlcyB0bwogIyAl e3JlbGVhc2V9LCBhcHBlbmQgdGhlbSBhZnRlciAle2djY19yZWxlYXNlfSBvbiBSZWxlYXNlOiBs aW5lLgotJWdsb2JhbCBnY2NfcmVsZWFzZSAzCislZ2xvYmFsIGdjY19yZWxlYXNlIDAuNQogJWds b2JhbCBfdW5wYWNrYWdlZF9maWxlc190ZXJtaW5hdGVfYnVpbGQgMAogJWdsb2JhbCBfcGVyZm9y bWFuY2VfYnVpbGQgMQogIyBIYXJkZW5pbmcgc2xvd3MgdGhlIGNvbXBpbGVyIHdheSB0b28gbXVj aC4KQEAgLTI0LDIyICsyNCwyMiBAQAogJWVsc2UKICVnbG9iYWwgYnVpbGRfbGlicXVhZG1hdGgg MAogJWVuZGlmCi0laWZhcmNoICV7aXg4Nn0geDg2XzY0IHBwYyBwcGM2NCBwcGM2NHA3ICV7YXJt fSBhYXJjaDY0CislaWZhcmNoICV7aXg4Nn0geDg2XzY0IHBwYyBwcGM2NCBwcGM2NGxlIHBwYzY0 cDcgJXthcm19IGFhcmNoNjQKICVnbG9iYWwgYnVpbGRfbGliYXNhbiAxCiAlZWxzZQogJWdsb2Jh bCBidWlsZF9saWJhc2FuIDAKICVlbmRpZgotJWlmYXJjaCB4ODZfNjQKKyVpZmFyY2ggeDg2XzY0 IGFhcmNoNjQKICVnbG9iYWwgYnVpbGRfbGlidHNhbiAxCiAlZWxzZQogJWdsb2JhbCBidWlsZF9s aWJ0c2FuIDAKICVlbmRpZgotJWlmYXJjaCB4ODZfNjQKKyVpZmFyY2ggeDg2XzY0IGFhcmNoNjQK ICVnbG9iYWwgYnVpbGRfbGlibHNhbiAxCiAlZWxzZQogJWdsb2JhbCBidWlsZF9saWJsc2FuIDAK ICVlbmRpZgotJWlmYXJjaCAle2l4ODZ9IHg4Nl82NCBwcGMgcHBjNjQgcHBjNjRwNyAle2FybX0g YWFyY2g2NAorJWlmYXJjaCAle2l4ODZ9IHg4Nl82NCBwcGMgcHBjNjQgcHBjNjRsZSBwcGM2NHA3 ICV7YXJtfSBhYXJjaDY0CiAlZ2xvYmFsIGJ1aWxkX2xpYnVic2FuIDEKICVlbHNlCiAlZ2xvYmFs IGJ1aWxkX2xpYnVic2FuIDAKQEAgLTkzLDcgKzkzLDcgQEAgTGljZW5zZTogR1BMdjMrIGFuZCBH UEx2Mysgd2l0aCBleGNlcHRpb25zIGFuZCBHUEx2Misgd2l0aCBleGNlcHRpb25zIGFuZCBMR1BM djIKIEdyb3VwOiBEZXZlbG9wbWVudC9MYW5ndWFnZXMKICMgVGhlIHNvdXJjZSBmb3IgdGhpcyBw YWNrYWdlIHdhcyBwdWxsZWQgZnJvbSB1cHN0cmVhbSdzIHZjcy4gIFVzZSB0aGUKICMgZm9sbG93 aW5nIGNvbW1hbmRzIHRvIGdlbmVyYXRlIHRoZSB0YXJiYWxsOgotIyBzdm4gZXhwb3J0IHN2bjov L2djYy5nbnUub3JnL3N2bi9nY2MvYnJhbmNoZXMvcmVkaGF0L2djYy01LWJyYW5jaEAle1NWTlJF Vn0gZ2NjLSV7dmVyc2lvbn0tJXtEQVRFfQorIyBzdm4gZXhwb3J0IHN2bjovL2djYy5nbnUub3Jn L3N2bi9nY2MvYnJhbmNoZXMvcmVkaGF0L2djYy02LWJyYW5jaEAle1NWTlJFVn0gZ2NjLSV7dmVy c2lvbn0tJXtEQVRFfQogIyB0YXIgY2YgLSBnY2MtJXt2ZXJzaW9ufS0le0RBVEV9IHwgYnppcDIg LTkgPiBnY2MtJXt2ZXJzaW9ufS0le0RBVEV9LnRhci5iejIKIFNvdXJjZTA6IGdjYy0le3ZlcnNp b259LSV7REFURX0udGFyLmJ6MgogJWdsb2JhbCBpc2xfdmVyc2lvbiAwLjE0CkBAIC0xOTIsMjIg KzE5MiwyMCBAQCBSZXF1aXJlcyhwcmV1bik6IC9zYmluL2luc3RhbGwtaW5mbwogQXV0b1JlcTog dHJ1ZQogUHJvdmlkZXM6IGJ1bmRsZWQobGliaWJlcnR5KQogCi1QYXRjaDA6IGdjYzUtaGFjay5w YXRjaAotUGF0Y2gxOiBnY2M1LWphdmEtbm9tdWx0aS5wYXRjaAotUGF0Y2gyOiBnY2M1LXBwYzMy LXJldGFkZHIucGF0Y2gKLVBhdGNoMzogZ2NjNS1yaDMzMDc3MS5wYXRjaAotUGF0Y2g0OiBnY2M1 LWkzODYtbGliZ29tcC5wYXRjaAotUGF0Y2g1OiBnY2M1LXNwYXJjLWNvbmZpZy1kZXRlY3Rpb24u cGF0Y2gKLVBhdGNoNjogZ2NjNS1saWJnb21wLW9tcF9oLW11bHRpbGliLnBhdGNoCi1QYXRjaDc6 IGdjYzUtbGlidG9vbC1uby1ycGF0aC5wYXRjaAotUGF0Y2g4OiBnY2M1LWlzbC1kbC5wYXRjaAot UGF0Y2gxMDogZ2NjNS1saWJzdGRjKystZG9jcy5wYXRjaAotUGF0Y2gxMTogZ2NjNS1uby1hZGQt bmVlZGVkLnBhdGNoCi1QYXRjaDEyOiBnY2M1LWxpYmdvLXAyMjQucGF0Y2gKLVBhdGNoMTM6IGdj YzUtYWFyY2g2NC1hc3luYy11bnctdGFibGVzLnBhdGNoCi1QYXRjaDE0OiBnY2M1LWxpYnNhbml0 aXplLWFhcmNoNjQtdmE0Mi5wYXRjaAotUGF0Y2gxNTogZ2NjNS1wcjY1Njg5LnBhdGNoCi1QYXRj aDE2OiBnY2M1LXJoMTI3OTYzOS5wYXRjaAorUGF0Y2gwOiBnY2M2LWhhY2sucGF0Y2gKK1BhdGNo MTogZ2NjNi1qYXZhLW5vbXVsdGkucGF0Y2gKK1BhdGNoMjogZ2NjNi1wcGMzMi1yZXRhZGRyLnBh dGNoCitQYXRjaDM6IGdjYzYtcmgzMzA3NzEucGF0Y2gKK1BhdGNoNDogZ2NjNi1pMzg2LWxpYmdv bXAucGF0Y2gKK1BhdGNoNTogZ2NjNi1zcGFyYy1jb25maWctZGV0ZWN0aW9uLnBhdGNoCitQYXRj aDY6IGdjYzYtbGliZ29tcC1vbXBfaC1tdWx0aWxpYi5wYXRjaAorUGF0Y2g3OiBnY2M2LWxpYnRv b2wtbm8tcnBhdGgucGF0Y2gKK1BhdGNoODogZ2NjNi1pc2wtZGwucGF0Y2gKK1BhdGNoOTogZ2Nj Ni1saWJzdGRjKystZG9jcy5wYXRjaAorUGF0Y2gxMDogZ2NjNi1uby1hZGQtbmVlZGVkLnBhdGNo CitQYXRjaDExOiBnY2M2LWxpYmdvLXAyMjQucGF0Y2gKK1BhdGNoMTI6IGdjYzYtYWFyY2g2NC1h c3luYy11bnctdGFibGVzLnBhdGNoCitQYXRjaDEzOiBnY2M2LWxpYnNhbml0aXplLWFhcmNoNjQt dmE0Mi5wYXRjaAogCiAjIE9uIEFSTSBFQUJJIHN5c3RlbXMsIHdlIGRvIHdhbnQgLWdudWVhYmkg dG8gYmUgcGFydCBvZiB0aGUKICMgdGFyZ2V0IHRyaXBsZS4KQEAgLTIyNSwxMSArMjIzLDExIEBA IFBhdGNoMTY6IGdjYzUtcmgxMjc5NjM5LnBhdGNoCiAlZW5kaWYKIAogJWRlc2NyaXB0aW9uCi1U aGUgZ2NjIHBhY2thZ2UgY29udGFpbnMgdGhlIEdOVSBDb21waWxlciBDb2xsZWN0aW9uIHZlcnNp b24gNS4KK1RoZSBnY2MgcGFja2FnZSBjb250YWlucyB0aGUgR05VIENvbXBpbGVyIENvbGxlY3Rp b24gdmVyc2lvbiA2LgogWW91J2xsIG5lZWQgdGhpcyBwYWNrYWdlIGluIG9yZGVyIHRvIGNvbXBp bGUgQyBjb2RlLgogCiAlcGFja2FnZSAtbiBsaWJnY2MKLVN1bW1hcnk6IEdDQyB2ZXJzaW9uIDUg c2hhcmVkIHN1cHBvcnQgbGlicmFyeQorU3VtbWFyeTogR0NDIHZlcnNpb24gNiBzaGFyZWQgc3Vw cG9ydCBsaWJyYXJ5CiBHcm91cDogU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcwogQXV0b3Jl cTogZmFsc2UKICVpZiAhJXtidWlsZF9hZGF9CkBAIC03NjUsMTYgKzc2MywxMyBAQCBwYWNrYWdl IG9yIHdoZW4gZGVidWdnaW5nIHRoaXMgcGFja2FnZS4KICVwYXRjaDggLXAwIC1iIC5pc2wtZGx+ CiAlZW5kaWYKICVpZiAle2J1aWxkX2xpYnN0ZGN4eF9kb2NzfQotJXBhdGNoMTAgLXAwIC1iIC5s aWJzdGRjKystZG9jc34KKyVwYXRjaDkgLXAwIC1iIC5saWJzdGRjKystZG9jc34KICVlbmRpZgot JXBhdGNoMTEgLXAwIC1iIC5uby1hZGQtbmVlZGVkfgotJXBhdGNoMTIgLXAwIC1iIC5saWJnby1w MjI0fgorJXBhdGNoMTAgLXAwIC1iIC5uby1hZGQtbmVlZGVkfgorJXBhdGNoMTEgLXAwIC1iIC5s aWJnby1wMjI0fgogcm0gLWYgbGliZ28vZ28vY3J5cHRvL2VsbGlwdGljL3AyMjR7LF90ZXN0fS5n bwotJXBhdGNoMTMgLXAwIC1iIC5hYXJjaDY0LWFzeW5jLXVudy10YWJsZXN+Ci0lcGF0Y2gxNCAt cDAgLWIgLmxpYnNhbml0aXplLWFhcmNoNjQtdmE0Mn4KLSVwYXRjaDE1IC1wMCAtYiAucHI2NTY4 OX4KLSVwYXRjaDE2IC1wMCAtYiAucmgxMjc5NjM5fgotc2VkIC1pIC1lICdzLyAtV2wsLXosbm9k bG9wZW4vL2cnIGdjYy9hZGEvZ2NjLWludGVyZmFjZS9NYWtlZmlsZS5pbgorJXBhdGNoMTIgLXAw IC1iIC5hYXJjaDY0LWFzeW5jLXVudy10YWJsZXN+CislcGF0Y2gxMyAtcDAgLWIgLmxpYnNhbml0 aXplLWFhcmNoNjQtdmE0Mn4KIAogJWlmIDAlez9fZW5hYmxlX2RlYnVnX3BhY2thZ2VzfQogbWtk aXIgZHd6LXdyYXBwZXIKQEAgLTgzNCw3ICs4MjksNyBAQCBpZiBbIC1mICIke0JVSUxERElSfSIv ZGVidWdmaWxlcy5saXN0IFwKICAgZG9uZQogICBjcCAtYSAiJHtCVUlMRERJUn0iL2RlYnVnZmls ZXMtYmFzZS5saXN0ICIke0JVSUxERElSfSIvZGVidWdmaWxlcy1yZW1vdmUubGlzdAogJWlmICV7 YnVpbGRfZ299Ci0gIGxpYmdvc289YGJhc2VuYW1lIC4le19wcmVmaXh9LyV7X2xpYn0vbGliZ28u c28uNy4qYAorICBsaWJnb3NvPWBiYXNlbmFtZSAuJXtfcHJlZml4fS8le19saWJ9L2xpYmdvLnNv LjguKmAKICAgZm9yIGYgaW4gJXtfcHJlZml4fS9iaW4vZ28uZ2NjIFwKIAkgICAle19wcmVmaXh9 L2Jpbi9nb2ZtdC5nY2MgXAogCSAgICV7X3ByZWZpeH0vbGliZXhlYy9nY2MvJXtnY2NfdGFyZ2V0 X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9jZ28gXApAQCAtODQ1LDggKzg0MCw4IEBAIGlmIFsg LWYgIiR7QlVJTERESVJ9Ii9kZWJ1Z2ZpbGVzLmxpc3QgXAogICAgIHJtIC1mIHVzci9saWIvZGVi dWckZi5kZWJ1ZwogICAgIGVjaG8gIi91c3IvbGliL2RlYnVnJGYuZGVidWciID4+ICIke0JVSUxE RElSfSIvZGVidWdmaWxlcy1yZW1vdmUubGlzdAogICBkb25lCi0gIHJtIC1mIHVzci9saWIvZGVi dWcle19wcmVmaXh9LyV7X2xpYn0vbGliZ28uc28uNy5kZWJ1ZwotICBlY2hvICIvdXNyL2xpYi9k ZWJ1ZyV7X3ByZWZpeH0vJXtfbGlifS9saWJnby5zby43LmRlYnVnIiA+PiAiJHtCVUlMRERJUn0i L2RlYnVnZmlsZXMtcmVtb3ZlLmxpc3QKKyAgcm0gLWYgdXNyL2xpYi9kZWJ1ZyV7X3ByZWZpeH0v JXtfbGlifS9saWJnby5zby44LmRlYnVnCisgIGVjaG8gIi91c3IvbGliL2RlYnVnJXtfcHJlZml4 fS8le19saWJ9L2xpYmdvLnNvLjguZGVidWciID4+ICIke0JVSUxERElSfSIvZGVidWdmaWxlcy1y ZW1vdmUubGlzdAogICBmb3IgZiBpbiBgZmluZCB1c3IvbGliL2RlYnVnLy5idWlsZC1pZCAtdHlw ZSBsYDsgZG8KICAgICBpZiBscyAtbCAiJGYiIHwgZWdyZXAgLXEgLS0gJy0+LiooL2Jpbi9nby5n Y2N8L2Jpbi9nb2ZtdC5nY2N8L2Nnb3xsaWJbMC05XSovbGliZ29cLnNvKSc7IHRoZW4KICAgICAg IGVjaG8gIi8kZiIgPj4gIiR7QlVJTERESVJ9Ii9kZWJ1Z2ZpbGVzLXJlbW92ZS5saXN0CkBAIC0x MDAxLDEzICs5OTYsOCBAQCBDT05GSUdVUkVfT1BUUz0iXAogJWVuZGlmCiAlZW5kaWYKICVpZmFy Y2ggcHBjNjRsZQotJWlmIDAlez9yaGVsfSA+PSA3CiAJLS13aXRoLWNwdS0zMj1wb3dlcjggLS13 aXRoLXR1bmUtMzI9cG93ZXI4IC0td2l0aC1jcHUtNjQ9cG93ZXI4IC0td2l0aC10dW5lLTY0PXBv d2VyOCBcCiAlZW5kaWYKLSVpZiAwJXs/ZmVkb3JhfSA+IDIxICYmIDAlez9mZWRvcmF9IDwgMjQK LQktLXdpdGgtY3B1LTMyPXBvd2VyNyAtLXdpdGgtdHVuZS0zMj1wb3dlcjggLS13aXRoLWNwdS02 ND1wb3dlcjcgLS13aXRoLXR1bmUtNjQ9cG93ZXI4IFwKLSVlbmRpZgotJWVuZGlmCiAlaWZhcmNo IHBwYwogCS0tYnVpbGQ9JXtnY2NfdGFyZ2V0X3BsYXRmb3JtfSAtLXRhcmdldD0le2djY190YXJn ZXRfcGxhdGZvcm19IC0td2l0aC1jcHU9ZGVmYXVsdDMyCiAlZW5kaWYKQEAgLTExNjgsOCArMTE1 OCw2IEBAIGxuIC1zZiBnZm9ydHJhbiAle2J1aWxkcm9vdH0le19wcmVmaXh9L2Jpbi9mOTUKIHJt IC1mICV7YnVpbGRyb290fSV7X2luZm9kaXJ9L2RpcgogZ3ppcCAtOSAle2J1aWxkcm9vdH0le19p bmZvZGlyfS8qLmluZm8qCiBsbiAtc2YgZ2NjICV7YnVpbGRyb290fSV7X3ByZWZpeH0vYmluL2du YXRnY2MKLQotIyBPd24gJSV7X2Ztb2RkaXJ9CiBta2RpciAtcCAle2J1aWxkcm9vdH0le19mbW9k ZGlyfQogCiAlaWYgJXtidWlsZF9nb30KQEAgLTEzNDUsNyArMTMzMyw3IEBAIGxuIC1zZiAuLi8u Li8uLi9saWJzdGRjKysuc28uNi4qWzAtOV0gbGlic3RkYysrLnNvCiBsbiAtc2YgLi4vLi4vLi4v bGliZ2ZvcnRyYW4uc28uMy4qIGxpYmdmb3J0cmFuLnNvCiBsbiAtc2YgLi4vLi4vLi4vbGliZ29t cC5zby4xLiogbGliZ29tcC5zbwogJWlmICV7YnVpbGRfZ299Ci1sbiAtc2YgLi4vLi4vLi4vbGli Z28uc28uNy4qIGxpYmdvLnNvCitsbiAtc2YgLi4vLi4vLi4vbGliZ28uc28uOC4qIGxpYmdvLnNv CiAlZW5kaWYKICVpZiAle2J1aWxkX2xpYnF1YWRtYXRofQogbG4gLXNmIC4uLy4uLy4uL2xpYnF1 YWRtYXRoLnNvLjAuKiBsaWJxdWFkbWF0aC5zbwpAQCAtMTM1Nyw3ICsxMzQ1LDcgQEAgbG4gLXNm IC4uLy4uLy4uL2xpYml0bS5zby4xLiogbGliaXRtLnNvCiBsbiAtc2YgLi4vLi4vLi4vbGliYXRv bWljLnNvLjEuKiBsaWJhdG9taWMuc28KICVlbmRpZgogJWlmICV7YnVpbGRfbGliYXNhbn0KLWxu IC1zZiAuLi8uLi8uLi9saWJhc2FuLnNvLjIuKiBsaWJhc2FuLnNvCitsbiAtc2YgLi4vLi4vLi4v bGliYXNhbi5zby4zLiogbGliYXNhbi5zbwogbXYgLi4vLi4vLi4vbGliYXNhbl9wcmVpbml0Lm8g bGliYXNhbl9wcmVpbml0Lm8KICVlbmRpZgogJWlmICV7YnVpbGRfbGlidWJzYW59CkBAIC0xMzY3 LDggKzEzNTUsOCBAQCBsbiAtc2YgLi4vLi4vLi4vbGlidWJzYW4uc28uMC4qIGxpYnVic2FuLnNv CiBsbiAtc2YgLi4vLi4vLi4vbGliY2lsa3J0cy5zby41LiogbGliY2lsa3J0cy5zbwogJWVuZGlm CiAlaWYgJXtidWlsZF9saWJtcHh9Ci1sbiAtc2YgLi4vLi4vLi4vbGlibXB4LnNvLjAuKiBsaWJt cHguc28KLWxuIC1zZiAuLi8uLi8uLi9saWJtcHh3cmFwcGVycy5zby4wLiogbGlibXB4d3JhcHBl cnMuc28KK2xuIC1zZiAuLi8uLi8uLi9saWJtcHguc28uMi4qIGxpYm1weC5zbworbG4gLXNmIC4u Ly4uLy4uL2xpYm1weHdyYXBwZXJzLnNvLjIuKiBsaWJtcHh3cmFwcGVycy5zbwogJWVuZGlmCiBl bHNlCiBsbiAtc2YgLi4vLi4vLi4vLi4vJXtfbGlifS9saWJvYmpjLnNvLjQgbGlib2JqYy5zbwpA QCAtMTM3Niw3ICsxMzY0LDcgQEAgbG4gLXNmIC4uLy4uLy4uLy4uLyV7X2xpYn0vbGlic3RkYysr LnNvLjYuKlswLTldIGxpYnN0ZGMrKy5zbwogbG4gLXNmIC4uLy4uLy4uLy4uLyV7X2xpYn0vbGli Z2ZvcnRyYW4uc28uMy4qIGxpYmdmb3J0cmFuLnNvCiBsbiAtc2YgLi4vLi4vLi4vLi4vJXtfbGli fS9saWJnb21wLnNvLjEuKiBsaWJnb21wLnNvCiAlaWYgJXtidWlsZF9nb30KLWxuIC1zZiAuLi8u Li8uLi8uLi8le19saWJ9L2xpYmdvLnNvLjcuKiBsaWJnby5zbworbG4gLXNmIC4uLy4uLy4uLy4u LyV7X2xpYn0vbGliZ28uc28uOC4qIGxpYmdvLnNvCiAlZW5kaWYKICVpZiAle2J1aWxkX2xpYnF1 YWRtYXRofQogbG4gLXNmIC4uLy4uLy4uLy4uLyV7X2xpYn0vbGlicXVhZG1hdGguc28uMC4qIGxp YnF1YWRtYXRoLnNvCkBAIC0xMzg4LDcgKzEzNzYsNyBAQCBsbiAtc2YgLi4vLi4vLi4vLi4vJXtf bGlifS9saWJpdG0uc28uMS4qIGxpYml0bS5zbwogbG4gLXNmIC4uLy4uLy4uLy4uLyV7X2xpYn0v bGliYXRvbWljLnNvLjEuKiBsaWJhdG9taWMuc28KICVlbmRpZgogJWlmICV7YnVpbGRfbGliYXNh bn0KLWxuIC1zZiAuLi8uLi8uLi8uLi8le19saWJ9L2xpYmFzYW4uc28uMi4qIGxpYmFzYW4uc28K K2xuIC1zZiAuLi8uLi8uLi8uLi8le19saWJ9L2xpYmFzYW4uc28uMy4qIGxpYmFzYW4uc28KIG12 IC4uLy4uLy4uLy4uLyV7X2xpYn0vbGliYXNhbl9wcmVpbml0Lm8gbGliYXNhbl9wcmVpbml0Lm8K ICVlbmRpZgogJWlmICV7YnVpbGRfbGlidWJzYW59CkBAIC0xMzk4LDggKzEzODYsOCBAQCBsbiAt c2YgLi4vLi4vLi4vLi4vJXtfbGlifS9saWJ1YnNhbi5zby4wLiogbGlidWJzYW4uc28KIGxuIC1z ZiAuLi8uLi8uLi8uLi8le19saWJ9L2xpYmNpbGtydHMuc28uNS4qIGxpYmNpbGtydHMuc28KICVl bmRpZgogJWlmICV7YnVpbGRfbGlibXB4fQotbG4gLXNmIC4uLy4uLy4uLy4uLyV7X2xpYn0vbGli bXB4LnNvLjAuKiBsaWJtcHguc28KLWxuIC1zZiAuLi8uLi8uLi8uLi8le19saWJ9L2xpYm1weHdy YXBwZXJzLnNvLjAuKiBsaWJtcHh3cmFwcGVycy5zbworbG4gLXNmIC4uLy4uLy4uLy4uLyV7X2xp Yn0vbGlibXB4LnNvLjIuKiBsaWJtcHguc28KK2xuIC1zZiAuLi8uLi8uLi8uLi8le19saWJ9L2xp Ym1weHdyYXBwZXJzLnNvLjIuKiBsaWJtcHh3cmFwcGVycy5zbwogJWVuZGlmCiAlaWYgJXtidWls ZF9saWJ0c2FufQogcm0gLWYgbGlidHNhbi5zbwpAQCAtMTQ0Nyw2ICsxNDM1LDggQEAgbXYgLWYg JXtidWlsZHJvb3R9JXtfcHJlZml4fS8le19saWJ9L2xpYmxzYW4uKmEgJEZVTExMUEFUSC8KICVp ZiAle2J1aWxkX2dvfQogbXYgLWYgJXtidWlsZHJvb3R9JXtfcHJlZml4fS8le19saWJ9L2xpYmdv LiphICRGVUxMTFBBVEgvCiBtdiAtZiAle2J1aWxkcm9vdH0le19wcmVmaXh9LyV7X2xpYn0vbGli Z29iZWdpbi4qYSAkRlVMTExQQVRILworbXYgLWYgJXtidWlsZHJvb3R9JXtfcHJlZml4fS8le19s aWJ9L2xpYmdvbGliYmVnaW4uKmEgJEZVTExMUEFUSC8KK212IC1mICV7YnVpbGRyb290fSV7X3By ZWZpeH0vJXtfbGlifS9saWJuZXRnby4qYSAkRlVMTExQQVRILwogJWVuZGlmCiAKICVpZiAle2J1 aWxkX2FkYX0KQEAgLTE0NjEsMjggKzE0NTEsMjggQEAgbXYgLWYgJEZVTExQQVRIL2FkYXtpbmNs dWRlLGxpYn0gJEZVTExMUEFUSC8KIHB1c2hkICRGVUxMTFBBVEgvYWRhbGliCiBpZiBbICIle19s aWJ9IiA9ICJsaWIiIF07IHRoZW4KIGxuIC1zZiAuLi8uLi8uLi8uLi8uLi9saWJnbmFybC0qLnNv IGxpYmduYXJsLnNvCi1sbiAtc2YgLi4vLi4vLi4vLi4vLi4vbGliZ25hcmwtKi5zbyBsaWJnbmFy bC01LnNvCitsbiAtc2YgLi4vLi4vLi4vLi4vLi4vbGliZ25hcmwtKi5zbyBsaWJnbmFybC02LnNv CiBsbiAtc2YgLi4vLi4vLi4vLi4vLi4vbGliZ25hdC0qLnNvIGxpYmduYXQuc28KLWxuIC1zZiAu Li8uLi8uLi8uLi8uLi9saWJnbmF0LSouc28gbGliZ25hdC01LnNvCitsbiAtc2YgLi4vLi4vLi4v Li4vLi4vbGliZ25hdC0qLnNvIGxpYmduYXQtNi5zbwogZWxzZQogbG4gLXNmIC4uLy4uLy4uLy4u Ly4uLy4uLyV7X2xpYn0vbGliZ25hcmwtKi5zbyBsaWJnbmFybC5zbwotbG4gLXNmIC4uLy4uLy4u Ly4uLy4uLy4uLyV7X2xpYn0vbGliZ25hcmwtKi5zbyBsaWJnbmFybC01LnNvCitsbiAtc2YgLi4v Li4vLi4vLi4vLi4vLi4vJXtfbGlifS9saWJnbmFybC0qLnNvIGxpYmduYXJsLTYuc28KIGxuIC1z ZiAuLi8uLi8uLi8uLi8uLi8uLi8le19saWJ9L2xpYmduYXQtKi5zbyBsaWJnbmF0LnNvCi1sbiAt c2YgLi4vLi4vLi4vLi4vLi4vLi4vJXtfbGlifS9saWJnbmF0LSouc28gbGliZ25hdC01LnNvCits biAtc2YgLi4vLi4vLi4vLi4vLi4vLi4vJXtfbGlifS9saWJnbmF0LSouc28gbGliZ25hdC02LnNv CiBmaQogcG9wZAogZWxzZQogcHVzaGQgJEZVTExQQVRIL2FkYWxpYgogaWYgWyAiJXtfbGlifSIg PSAibGliIiBdOyB0aGVuCiBsbiAtc2YgLi4vLi4vLi4vLi4vbGliZ25hcmwtKi5zbyBsaWJnbmFy bC5zbwotbG4gLXNmIC4uLy4uLy4uLy4uL2xpYmduYXJsLSouc28gbGliZ25hcmwtNS5zbworbG4g LXNmIC4uLy4uLy4uLy4uL2xpYmduYXJsLSouc28gbGliZ25hcmwtNi5zbwogbG4gLXNmIC4uLy4u Ly4uLy4uL2xpYmduYXQtKi5zbyBsaWJnbmF0LnNvCi1sbiAtc2YgLi4vLi4vLi4vLi4vbGliZ25h dC0qLnNvIGxpYmduYXQtNS5zbworbG4gLXNmIC4uLy4uLy4uLy4uL2xpYmduYXQtKi5zbyBsaWJn bmF0LTYuc28KIGVsc2UKIGxuIC1zZiAuLi8uLi8uLi8uLi8uLi8le19saWJ9L2xpYmduYXJsLSou c28gbGliZ25hcmwuc28KLWxuIC1zZiAuLi8uLi8uLi8uLi8uLi8le19saWJ9L2xpYmduYXJsLSou c28gbGliZ25hcmwtNS5zbworbG4gLXNmIC4uLy4uLy4uLy4uLy4uLyV7X2xpYn0vbGliZ25hcmwt Ki5zbyBsaWJnbmFybC02LnNvCiBsbiAtc2YgLi4vLi4vLi4vLi4vLi4vJXtfbGlifS9saWJnbmF0 LSouc28gbGliZ25hdC5zbwotbG4gLXNmIC4uLy4uLy4uLy4uLy4uLyV7X2xpYn0vbGliZ25hdC0q LnNvIGxpYmduYXQtNS5zbworbG4gLXNmIC4uLy4uLy4uLy4uLy4uLyV7X2xpYn0vbGliZ25hdC0q LnNvIGxpYmduYXQtNi5zbwogZmkKIHBvcGQKIGZpCkBAIC0xNDk1LDggKzE0ODUsOCBAQCBsbiAt c2YgLi4vYGVjaG8gLi4vLi4vLi4vLi4vbGliL2xpYmdmb3J0cmFuLnNvLjMuKiB8IHNlZCBzfi9s aWIvfi9saWI2NC9+YCA2NC9saQogbG4gLXNmIC4uL2BlY2hvIC4uLy4uLy4uLy4uL2xpYi9saWJn b21wLnNvLjEuKiB8IHNlZCBzfi9saWIvfi9saWI2NC9+YCA2NC9saWJnb21wLnNvCiAlaWYgJXti dWlsZF9nb30KIHJtIC1mIGxpYmdvLnNvCi1lY2hvICdJTlBVVCAoICV7X3ByZWZpeH0vbGliLydg ZWNobyAuLi8uLi8uLi8uLi9saWIvbGliZ28uc28uNy4qIHwgc2VkICdzLF4uKmxpYmcsbGliZywn YCcgKScgPiBsaWJnby5zbwotZWNobyAnSU5QVVQgKCAle19wcmVmaXh9L2xpYjY0LydgZWNobyAu Li8uLi8uLi8uLi9saWIvbGliZ28uc28uNy4qIHwgc2VkICdzLF4uKmxpYmcsbGliZywnYCcgKScg PiA2NC9saWJnby5zbworZWNobyAnSU5QVVQgKCAle19wcmVmaXh9L2xpYi8nYGVjaG8gLi4vLi4v Li4vLi4vbGliL2xpYmdvLnNvLjguKiB8IHNlZCAncyxeLipsaWJnLGxpYmcsJ2AnICknID4gbGli Z28uc28KK2VjaG8gJ0lOUFVUICggJXtfcHJlZml4fS9saWI2NC8nYGVjaG8gLi4vLi4vLi4vLi4v bGliL2xpYmdvLnNvLjguKiB8IHNlZCAncyxeLipsaWJnLGxpYmcsJ2AnICknID4gNjQvbGliZ28u c28KICVlbmRpZgogJWlmICV7YnVpbGRfbGlicXVhZG1hdGh9CiBybSAtZiBsaWJxdWFkbWF0aC5z bwpAQCAtMTUxNSw4ICsxNTA1LDggQEAgZWNobyAnSU5QVVQgKCAle19wcmVmaXh9L2xpYjY0Lydg ZWNobyAuLi8uLi8uLi8uLi9saWIvbGliYXRvbWljLnNvLjEuKiB8IHNlZCAncywKICVlbmRpZgog JWlmICV7YnVpbGRfbGliYXNhbn0KIHJtIC1mIGxpYmFzYW4uc28KLWVjaG8gJ0lOUFVUICggJXtf cHJlZml4fS9saWIvJ2BlY2hvIC4uLy4uLy4uLy4uL2xpYi9saWJhc2FuLnNvLjIuKiB8IHNlZCAn cyxeLipsaWJhLGxpYmEsJ2AnICknID4gbGliYXNhbi5zbwotZWNobyAnSU5QVVQgKCAle19wcmVm aXh9L2xpYjY0LydgZWNobyAuLi8uLi8uLi8uLi9saWIvbGliYXNhbi5zby4yLiogfCBzZWQgJ3Ms Xi4qbGliYSxsaWJhLCdgJyApJyA+IDY0L2xpYmFzYW4uc28KK2VjaG8gJ0lOUFVUICggJXtfcHJl Zml4fS9saWIvJ2BlY2hvIC4uLy4uLy4uLy4uL2xpYi9saWJhc2FuLnNvLjMuKiB8IHNlZCAncyxe LipsaWJhLGxpYmEsJ2AnICknID4gbGliYXNhbi5zbworZWNobyAnSU5QVVQgKCAle19wcmVmaXh9 L2xpYjY0LydgZWNobyAuLi8uLi8uLi8uLi9saWIvbGliYXNhbi5zby4zLiogfCBzZWQgJ3MsXi4q bGliYSxsaWJhLCdgJyApJyA+IDY0L2xpYmFzYW4uc28KIG12IC4uLy4uLy4uLy4uL2xpYjY0L2xp YmFzYW5fcHJlaW5pdC5vIDY0L2xpYmFzYW5fcHJlaW5pdC5vCiAlZW5kaWYKICVpZiAle2J1aWxk X2xpYnVic2FufQpAQCAtMTUzMSwxMSArMTUyMSwxMSBAQCBlY2hvICdJTlBVVCAoICV7X3ByZWZp eH0vbGliNjQvJ2BlY2hvIC4uLy4uLy4uLy4uL2xpYi9saWJjaWxrcnRzLnNvLjUuKiB8IHNlZCAn cwogJWVuZGlmCiAlaWYgJXtidWlsZF9saWJtcHh9CiBybSAtZiBsaWJtcHguc28KLWVjaG8gJ0lO UFVUICggJXtfcHJlZml4fS9saWIvJ2BlY2hvIC4uLy4uLy4uLy4uL2xpYi9saWJtcHguc28uMC4q IHwgc2VkICdzLF4uKmxpYm0sbGlibSwnYCcgKScgPiBsaWJtcHguc28KLWVjaG8gJ0lOUFVUICgg JXtfcHJlZml4fS9saWI2NC8nYGVjaG8gLi4vLi4vLi4vLi4vbGliL2xpYm1weC5zby4wLiogfCBz ZWQgJ3MsXi4qbGlibSxsaWJtLCdgJyApJyA+IDY0L2xpYm1weC5zbworZWNobyAnSU5QVVQgKCAl e19wcmVmaXh9L2xpYi8nYGVjaG8gLi4vLi4vLi4vLi4vbGliL2xpYm1weC5zby4yLiogfCBzZWQg J3MsXi4qbGlibSxsaWJtLCdgJyApJyA+IGxpYm1weC5zbworZWNobyAnSU5QVVQgKCAle19wcmVm aXh9L2xpYjY0LydgZWNobyAuLi8uLi8uLi8uLi9saWIvbGlibXB4LnNvLjIuKiB8IHNlZCAncyxe LipsaWJtLGxpYm0sJ2AnICknID4gNjQvbGlibXB4LnNvCiBybSAtZiBsaWJtcHh3cmFwcGVycy5z bwotZWNobyAnSU5QVVQgKCAle19wcmVmaXh9L2xpYi8nYGVjaG8gLi4vLi4vLi4vLi4vbGliL2xp Ym1weHdyYXBwZXJzLnNvLjAuKiB8IHNlZCAncyxeLipsaWJtLGxpYm0sJ2AnICknID4gbGlibXB4 d3JhcHBlcnMuc28KLWVjaG8gJ0lOUFVUICggJXtfcHJlZml4fS9saWI2NC8nYGVjaG8gLi4vLi4v Li4vLi4vbGliL2xpYm1weHdyYXBwZXJzLnNvLjAuKiB8IHNlZCAncyxeLipsaWJtLGxpYm0sJ2An ICknID4gNjQvbGlibXB4d3JhcHBlcnMuc28KK2VjaG8gJ0lOUFVUICggJXtfcHJlZml4fS9saWIv J2BlY2hvIC4uLy4uLy4uLy4uL2xpYi9saWJtcHh3cmFwcGVycy5zby4yLiogfCBzZWQgJ3MsXi4q bGlibSxsaWJtLCdgJyApJyA+IGxpYm1weHdyYXBwZXJzLnNvCitlY2hvICdJTlBVVCAoICV7X3By ZWZpeH0vbGliNjQvJ2BlY2hvIC4uLy4uLy4uLy4uL2xpYi9saWJtcHh3cmFwcGVycy5zby4yLiog fCBzZWQgJ3MsXi4qbGlibSxsaWJtLCdgJyApJyA+IDY0L2xpYm1weHdyYXBwZXJzLnNvCiAlZW5k aWYKIGxuIC1zZiBsaWIzMi9saWJnZm9ydHJhbi5hIGxpYmdmb3J0cmFuLmEKIGxuIC1zZiAuLi9s aWI2NC9saWJnZm9ydHJhbi5hIDY0L2xpYmdmb3J0cmFuLmEKQEAgLTE1ODIsNiArMTU3MiwxMCBA QCBsbiAtc2YgbGliMzIvbGliZ28uYSBsaWJnby5hCiBsbiAtc2YgLi4vbGliNjQvbGliZ28uYSA2 NC9saWJnby5hCiBsbiAtc2YgbGliMzIvbGliZ29iZWdpbi5hIGxpYmdvYmVnaW4uYQogbG4gLXNm IC4uL2xpYjY0L2xpYmdvYmVnaW4uYSA2NC9saWJnb2JlZ2luLmEKK2xuIC1zZiBsaWIzMi9saWJn b2xpYmJlZ2luLmEgbGliZ29saWJiZWdpbi5hCitsbiAtc2YgLi4vbGliNjQvbGliZ29saWJiZWdp bi5hIDY0L2xpYmdvbGliYmVnaW4uYQorbG4gLXNmIGxpYjMyL2xpYm5ldGdvLmEgbGlibmV0Z28u YQorbG4gLXNmIC4uL2xpYjY0L2xpYm5ldGdvLmEgNjQvbGlibmV0Z28uYQogJWVuZGlmCiAlaWYg JXtidWlsZF9hZGF9CiBsbiAtc2YgbGliMzIvYWRhaW5jbHVkZSBhZGFpbmNsdWRlCkBAIC0xNTk4 LDggKzE1OTIsOCBAQCBsbiAtc2YgLi4vYGVjaG8gLi4vLi4vLi4vLi4vbGliNjQvbGliZ2ZvcnRy YW4uc28uMy4qIHwgc2VkIHN+Ly4uL2xpYjY0L34vfmAgMzIvbAogbG4gLXNmIC4uL2BlY2hvIC4u Ly4uLy4uLy4uL2xpYjY0L2xpYmdvbXAuc28uMS4qIHwgc2VkIHN+Ly4uL2xpYjY0L34vfmAgMzIv bGliZ29tcC5zbwogJWlmICV7YnVpbGRfZ299CiBybSAtZiBsaWJnby5zbwotZWNobyAnSU5QVVQg KCAle19wcmVmaXh9L2xpYjY0LydgZWNobyAuLi8uLi8uLi8uLi9saWI2NC9saWJnby5zby43Liog fCBzZWQgJ3MsXi4qbGliZyxsaWJnLCdgJyApJyA+IGxpYmdvLnNvCi1lY2hvICdJTlBVVCAoICV7 X3ByZWZpeH0vbGliLydgZWNobyAuLi8uLi8uLi8uLi9saWI2NC9saWJnby5zby43LiogfCBzZWQg J3MsXi4qbGliZyxsaWJnLCdgJyApJyA+IDMyL2xpYmdvLnNvCitlY2hvICdJTlBVVCAoICV7X3By ZWZpeH0vbGliNjQvJ2BlY2hvIC4uLy4uLy4uLy4uL2xpYjY0L2xpYmdvLnNvLjguKiB8IHNlZCAn cyxeLipsaWJnLGxpYmcsJ2AnICknID4gbGliZ28uc28KK2VjaG8gJ0lOUFVUICggJXtfcHJlZml4 fS9saWIvJ2BlY2hvIC4uLy4uLy4uLy4uL2xpYjY0L2xpYmdvLnNvLjguKiB8IHNlZCAncyxeLips aWJnLGxpYmcsJ2AnICknID4gMzIvbGliZ28uc28KICVlbmRpZgogJWlmICV7YnVpbGRfbGlicXVh ZG1hdGh9CiBybSAtZiBsaWJxdWFkbWF0aC5zbwpAQCAtMTYxOCw4ICsxNjEyLDggQEAgZWNobyAn SU5QVVQgKCAle19wcmVmaXh9L2xpYi8nYGVjaG8gLi4vLi4vLi4vLi4vbGliNjQvbGliYXRvbWlj LnNvLjEuKiB8IHNlZCAncywKICVlbmRpZgogJWlmICV7YnVpbGRfbGliYXNhbn0KIHJtIC1mIGxp YmFzYW4uc28KLWVjaG8gJ0lOUFVUICggJXtfcHJlZml4fS9saWI2NC8nYGVjaG8gLi4vLi4vLi4v Li4vbGliNjQvbGliYXNhbi5zby4yLiogfCBzZWQgJ3MsXi4qbGliYSxsaWJhLCdgJyApJyA+IGxp YmFzYW4uc28KLWVjaG8gJ0lOUFVUICggJXtfcHJlZml4fS9saWIvJ2BlY2hvIC4uLy4uLy4uLy4u L2xpYjY0L2xpYmFzYW4uc28uMi4qIHwgc2VkICdzLF4uKmxpYmEsbGliYSwnYCcgKScgPiAzMi9s aWJhc2FuLnNvCitlY2hvICdJTlBVVCAoICV7X3ByZWZpeH0vbGliNjQvJ2BlY2hvIC4uLy4uLy4u Ly4uL2xpYjY0L2xpYmFzYW4uc28uMy4qIHwgc2VkICdzLF4uKmxpYmEsbGliYSwnYCcgKScgPiBs aWJhc2FuLnNvCitlY2hvICdJTlBVVCAoICV7X3ByZWZpeH0vbGliLydgZWNobyAuLi8uLi8uLi8u Li9saWI2NC9saWJhc2FuLnNvLjMuKiB8IHNlZCAncyxeLipsaWJhLGxpYmEsJ2AnICknID4gMzIv bGliYXNhbi5zbwogbXYgLi4vLi4vLi4vLi4vbGliL2xpYmFzYW5fcHJlaW5pdC5vIDMyL2xpYmFz YW5fcHJlaW5pdC5vCiAlZW5kaWYKICVpZiAle2J1aWxkX2xpYnVic2FufQpAQCAtMTYzNCwxMSAr MTYyOCwxMSBAQCBlY2hvICdJTlBVVCAoICV7X3ByZWZpeH0vbGliLydgZWNobyAuLi8uLi8uLi8u Li9saWI2NC9saWJjaWxrcnRzLnNvLjUuKiB8IHNlZCAncwogJWVuZGlmCiAlaWYgJXtidWlsZF9s aWJtcHh9CiBybSAtZiBsaWJtcHguc28KLWVjaG8gJ0lOUFVUICggJXtfcHJlZml4fS9saWI2NC8n YGVjaG8gLi4vLi4vLi4vLi4vbGliNjQvbGlibXB4LnNvLjAuKiB8IHNlZCAncyxeLipsaWJtLGxp Ym0sJ2AnICknID4gbGlibXB4LnNvCi1lY2hvICdJTlBVVCAoICV7X3ByZWZpeH0vbGliLydgZWNo byAuLi8uLi8uLi8uLi9saWI2NC9saWJtcHguc28uMC4qIHwgc2VkICdzLF4uKmxpYm0sbGlibSwn YCcgKScgPiAzMi9saWJtcHguc28KK2VjaG8gJ0lOUFVUICggJXtfcHJlZml4fS9saWI2NC8nYGVj aG8gLi4vLi4vLi4vLi4vbGliNjQvbGlibXB4LnNvLjIuKiB8IHNlZCAncyxeLipsaWJtLGxpYm0s J2AnICknID4gbGlibXB4LnNvCitlY2hvICdJTlBVVCAoICV7X3ByZWZpeH0vbGliLydgZWNobyAu Li8uLi8uLi8uLi9saWI2NC9saWJtcHguc28uMi4qIHwgc2VkICdzLF4uKmxpYm0sbGlibSwnYCcg KScgPiAzMi9saWJtcHguc28KIHJtIC1mIGxpYm1weHdyYXBwZXJzLnNvCi1lY2hvICdJTlBVVCAo ICV7X3ByZWZpeH0vbGliNjQvJ2BlY2hvIC4uLy4uLy4uLy4uL2xpYjY0L2xpYm1weHdyYXBwZXJz LnNvLjAuKiB8IHNlZCAncyxeLipsaWJtLGxpYm0sJ2AnICknID4gbGlibXB4d3JhcHBlcnMuc28K LWVjaG8gJ0lOUFVUICggJXtfcHJlZml4fS9saWIvJ2BlY2hvIC4uLy4uLy4uLy4uL2xpYjY0L2xp Ym1weHdyYXBwZXJzLnNvLjAuKiB8IHNlZCAncyxeLipsaWJtLGxpYm0sJ2AnICknID4gMzIvbGli bXB4d3JhcHBlcnMuc28KK2VjaG8gJ0lOUFVUICggJXtfcHJlZml4fS9saWI2NC8nYGVjaG8gLi4v Li4vLi4vLi4vbGliNjQvbGlibXB4d3JhcHBlcnMuc28uMi4qIHwgc2VkICdzLF4uKmxpYm0sbGli bSwnYCcgKScgPiBsaWJtcHh3cmFwcGVycy5zbworZWNobyAnSU5QVVQgKCAle19wcmVmaXh9L2xp Yi8nYGVjaG8gLi4vLi4vLi4vLi4vbGliNjQvbGlibXB4d3JhcHBlcnMuc28uMi4qIHwgc2VkICdz LF4uKmxpYm0sbGlibSwnYCcgKScgPiAzMi9saWJtcHh3cmFwcGVycy5zbwogJWVuZGlmCiBtdiAt ZiAle2J1aWxkcm9vdH0le19wcmVmaXh9L2xpYi9saWJvYmpjLiphIDMyLwogbXYgLWYgJXtidWls ZHJvb3R9JXtfcHJlZml4fS9saWIvbGliZ29tcC4qYSAzMi8KQEAgLTE2ODcsNiArMTY4MSwxMCBA QCBsbiAtc2YgLi4vbGliMzIvbGliZ28uYSAzMi9saWJnby5hCiBsbiAtc2YgbGliNjQvbGliZ28u YSBsaWJnby5hCiBsbiAtc2YgLi4vbGliMzIvbGliZ29iZWdpbi5hIDMyL2xpYmdvYmVnaW4uYQog bG4gLXNmIGxpYjY0L2xpYmdvYmVnaW4uYSBsaWJnb2JlZ2luLmEKK2xuIC1zZiAuLi9saWIzMi9s aWJnb2xpYmJlZ2luLmEgMzIvbGliZ29saWJiZWdpbi5hCitsbiAtc2YgbGliNjQvbGliZ29saWJi ZWdpbi5hIGxpYmdvbGliYmVnaW4uYQorbG4gLXNmIC4uL2xpYjMyL2xpYm5ldGdvLmEgMzIvbGli bmV0Z28uYQorbG4gLXNmIGxpYjY0L2xpYm5ldGdvLmEgbGlibmV0Z28uYQogJWVuZGlmCiAlaWYg JXtidWlsZF9hZGF9CiBsbiAtc2YgLi4vbGliMzIvYWRhaW5jbHVkZSAzMi9hZGFpbmNsdWRlCkBA IC0xNzI1LDYgKzE3MjMsOCBAQCBsbiAtc2YgLi4vLi4vLi4vJXttdWx0aWxpYl8zMl9hcmNofS0l e192ZW5kb3J9LSV7X3RhcmdldF9vc30vJXtnY2NfdmVyc2lvbn0vbGlibQogJWlmICV7YnVpbGRf Z299CiBsbiAtc2YgLi4vLi4vLi4vJXttdWx0aWxpYl8zMl9hcmNofS0le192ZW5kb3J9LSV7X3Rh cmdldF9vc30vJXtnY2NfdmVyc2lvbn0vbGliZ28uYSAzMi9saWJnby5hCiBsbiAtc2YgLi4vLi4v Li4vJXttdWx0aWxpYl8zMl9hcmNofS0le192ZW5kb3J9LSV7X3RhcmdldF9vc30vJXtnY2NfdmVy c2lvbn0vbGliZ29iZWdpbi5hIDMyL2xpYmdvYmVnaW4uYQorbG4gLXNmIC4uLy4uLy4uLyV7bXVs dGlsaWJfMzJfYXJjaH0tJXtfdmVuZG9yfS0le190YXJnZXRfb3N9LyV7Z2NjX3ZlcnNpb259L2xp YmdvbGliYmVnaW4uYSAzMi9saWJnb2xpYmJlZ2luLmEKK2xuIC1zZiAuLi8uLi8uLi8le211bHRp bGliXzMyX2FyY2h9LSV7X3ZlbmRvcn0tJXtfdGFyZ2V0X29zfS8le2djY192ZXJzaW9ufS9saWJu ZXRnby5hIDMyL2xpYm5ldGdvLmEKICVlbmRpZgogJWlmICV7YnVpbGRfYWRhfQogbG4gLXNmIC4u Ly4uLy4uLyV7bXVsdGlsaWJfMzJfYXJjaH0tJXtfdmVuZG9yfS0le190YXJnZXRfb3N9LyV7Z2Nj X3ZlcnNpb259L2FkYWluY2x1ZGUgMzIvYWRhaW5jbHVkZQpAQCAtMTc1NSw3ICsxNzU1LDcgQEAg Y2htb2QgNzU1ICV7YnVpbGRyb290fSV7X3ByZWZpeH0vJXtfbGlifS9saWJpdG0uc28uMS4qCiBj aG1vZCA3NTUgJXtidWlsZHJvb3R9JXtfcHJlZml4fS8le19saWJ9L2xpYmF0b21pYy5zby4xLioK ICVlbmRpZgogJWlmICV7YnVpbGRfbGliYXNhbn0KLWNobW9kIDc1NSAle2J1aWxkcm9vdH0le19w cmVmaXh9LyV7X2xpYn0vbGliYXNhbi5zby4yLioKK2NobW9kIDc1NSAle2J1aWxkcm9vdH0le19w cmVmaXh9LyV7X2xpYn0vbGliYXNhbi5zby4zLioKICVlbmRpZgogJWlmICV7YnVpbGRfbGlidWJz YW59CiBjaG1vZCA3NTUgJXtidWlsZHJvb3R9JXtfcHJlZml4fS8le19saWJ9L2xpYnVic2FuLnNv LjAuKgpAQCAtMTc2NCw4ICsxNzY0LDggQEAgY2htb2QgNzU1ICV7YnVpbGRyb290fSV7X3ByZWZp eH0vJXtfbGlifS9saWJ1YnNhbi5zby4wLioKIGNobW9kIDc1NSAle2J1aWxkcm9vdH0le19wcmVm aXh9LyV7X2xpYn0vbGliY2lsa3J0cy5zby41LioKICVlbmRpZgogJWlmICV7YnVpbGRfbGlibXB4 fQotY2htb2QgNzU1ICV7YnVpbGRyb290fSV7X3ByZWZpeH0vJXtfbGlifS9saWJtcHguc28uMC4q Ci1jaG1vZCA3NTUgJXtidWlsZHJvb3R9JXtfcHJlZml4fS8le19saWJ9L2xpYm1weHdyYXBwZXJz LnNvLjAuKgorY2htb2QgNzU1ICV7YnVpbGRyb290fSV7X3ByZWZpeH0vJXtfbGlifS9saWJtcHgu c28uMi4qCitjaG1vZCA3NTUgJXtidWlsZHJvb3R9JXtfcHJlZml4fS8le19saWJ9L2xpYm1weHdy YXBwZXJzLnNvLjIuKgogJWVuZGlmCiAlaWYgJXtidWlsZF9saWJ0c2FufQogY2htb2QgNzU1ICV7 YnVpbGRyb290fSV7X3ByZWZpeH0vJXtfbGlifS9saWJ0c2FuLnNvLjAuKgpAQCAtMTc3NCw3ICsx Nzc0LDcgQEAgY2htb2QgNzU1ICV7YnVpbGRyb290fSV7X3ByZWZpeH0vJXtfbGlifS9saWJ0c2Fu LnNvLjAuKgogY2htb2QgNzU1ICV7YnVpbGRyb290fSV7X3ByZWZpeH0vJXtfbGlifS9saWJsc2Fu LnNvLjAuKgogJWVuZGlmCiAlaWYgJXtidWlsZF9nb30KLWNobW9kIDc1NSAle2J1aWxkcm9vdH0l e19wcmVmaXh9LyV7X2xpYn0vbGliZ28uc28uNy4qCitjaG1vZCA3NTUgJXtidWlsZHJvb3R9JXtf cHJlZml4fS8le19saWJ9L2xpYmdvLnNvLjguKgogJWVuZGlmCiBjaG1vZCA3NTUgJXtidWlsZHJv b3R9JXtfcHJlZml4fS8le19saWJ9L2xpYm9iamMuc28uNC4qCiAKQEAgLTIyMDEsNiArMjIwMSw4 IEBAIGZpCiAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192 ZXJzaW9ufS9pbmNsdWRlL213YWl0eGludHJpbi5oCiAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2Nf dGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL3hzYXZlY2ludHJpbi5oCiAl e19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9p bmNsdWRlL3hzYXZlc2ludHJpbi5oCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3Bs YXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL2NsemVyb2ludHJpbi5oCisle19wcmVmaXh9 L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL3Br dWludHJpbi5oCiAlZW5kaWYKICVpZmFyY2ggaWE2NAogJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2Nj X3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZS9pYTY0aW50cmluLmgKQEAg LTI1ODYsNyArMjU4OCw2IEBAIGZpCiAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3Bs YXRmb3JtfS8le2djY192ZXJzaW9ufS9maW5jbHVkZS9pZWVlX2ZlYXR1cmVzLm1vZAogJXtfcHJl Zml4fS9saWJleGVjL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2Y5 NTEKICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNp b259L2xpYmdmb3J0cmFuLnNwZWMKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxh dGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYmdmb3J0cmFuYmVnaW4uYQogJXtfcHJlZml4fS9saWIv Z2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliY2FmX3NpbmdsZS5h CiAlaWZhcmNoIHNwYXJjdjkgc3BhcmM2NCBwcGMgcHBjNjQgcHBjNjRwNwogJXtfcHJlZml4fS9s aWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliZ2ZvcnRyYW4u YQpAQCAtMjU5NCw3ICsyNTk1LDYgQEAgZmkKICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJn ZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYmdmb3J0cmFuLnNvCiAlaWZhcmNoIHNwYXJj djkgcHBjCiAlZGlyICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7 Z2NjX3ZlcnNpb259LzY0Ci0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3Jt fS8le2djY192ZXJzaW9ufS82NC9saWJnZm9ydHJhbmJlZ2luLmEKICV7X3ByZWZpeH0vbGliL2dj Yy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzY0L2xpYmNhZl9zaW5nbGUu YQogJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lv bn0vNjQvbGliZ2ZvcnRyYW4uYQogJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0 Zm9ybX0vJXtnY2NfdmVyc2lvbn0vNjQvbGliZ2ZvcnRyYW4uc28KQEAgLTI2MDIsNyArMjYwMiw2 IEBAIGZpCiAlZW5kaWYKICVpZmFyY2ggJXttdWx0aWxpYl82NF9hcmNoc30KICVkaXIgJXtfcHJl Zml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vMzIKLSV7 X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzMy L2xpYmdmb3J0cmFuYmVnaW4uYQogJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0 Zm9ybX0vJXtnY2NfdmVyc2lvbn0vMzIvbGliY2FmX3NpbmdsZS5hCiAle19wcmVmaXh9L2xpYi9n Y2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS8zMi9saWJnZm9ydHJhbi5h CiAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9u fS8zMi9saWJnZm9ydHJhbi5zbwpAQCAtMjcxMiw3ICsyNzExLDYgQEAgZmkKIAogJWZpbGVzIC1u IGxpYmdvbXAKICV7X3ByZWZpeH0vJXtfbGlifS9saWJnb21wLnNvLjEqCi0le19wcmVmaXh9LyV7 X2xpYn0vbGliZ29tcC1wbHVnaW4taG9zdF9ub25zaG0uc28uMSoKICV7X2luZm9kaXJ9L2xpYmdv bXAuaW5mbyoKICVkb2MgcnBtLmRvYy9jaGFuZ2Vsb2dzL2xpYmdvbXAvQ2hhbmdlTG9nKgogCkBA IC0yODEwLDcgKzI4MDgsNyBAQCBmaQogCiAlaWYgJXtidWlsZF9saWJhc2FufQogJWZpbGVzIC1u IGxpYmFzYW4KLSV7X3ByZWZpeH0vJXtfbGlifS9saWJhc2FuLnNvLjIqCisle19wcmVmaXh9LyV7 X2xpYn0vbGliYXNhbi5zby4zKgogCiAlZmlsZXMgLW4gbGliYXNhbi1zdGF0aWMKICVkaXIgJXtf cHJlZml4fS9saWIvZ2NjCkBAIC0yOTA4LDggKzI5MDYsOCBAQCBmaQogCiAlaWYgJXtidWlsZF9s aWJtcHh9CiAlZmlsZXMgLW4gbGlibXB4Ci0le19wcmVmaXh9LyV7X2xpYn0vbGlibXB4LnNvLjAq Ci0le19wcmVmaXh9LyV7X2xpYn0vbGlibXB4d3JhcHBlcnMuc28uMCoKKyV7X3ByZWZpeH0vJXtf bGlifS9saWJtcHguc28uMioKKyV7X3ByZWZpeH0vJXtfbGlifS9saWJtcHh3cmFwcGVycy5zby4y KgogCiAlZmlsZXMgLW4gbGlibXB4LXN0YXRpYwogJWRpciAle19wcmVmaXh9L2xpYi9nY2MKQEAg LTI5NTUsMTIgKzI5NTMsMTYgQEAgZmkKICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRf cGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzY0L2xpYmdvLnNvCiAle19wcmVmaXh9L2xpYi9nY2Mv JXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS82NC9saWJnby5hCiAle19wcmVm aXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS82NC9saWJn b2JlZ2luLmEKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2Nj X3ZlcnNpb259LzY0L2xpYmdvbGliYmVnaW4uYQorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3Rh cmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vNjQvbGlibmV0Z28uYQogJWVuZGlmCiAlaWZh cmNoICV7bXVsdGlsaWJfNjRfYXJjaHN9CiAlZGlyICV7X3ByZWZpeH0vbGliL2djYy8le2djY190 YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzMyCiAle19wcmVmaXh9L2xpYi9nY2MvJXtn Y2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS8zMi9saWJnby5zbwogJXtfcHJlZml4 fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vMzIvbGliZ28u YQogJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lv bn0vMzIvbGliZ29iZWdpbi5hCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRm b3JtfS8le2djY192ZXJzaW9ufS8zMi9saWJnb2xpYmJlZ2luLmEKKyV7X3ByZWZpeH0vbGliL2dj Yy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzMyL2xpYm5ldGdvLmEKICVl bmRpZgogJWlmYXJjaCBzcGFyY3Y5IHBwYyAle211bHRpbGliXzY0X2FyY2hzfQogJXtfcHJlZml4 fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliZ28uc28K QEAgLTI5NjgsMTEgKzI5NzAsMTMgQEAgZmkKICVpZmFyY2ggc3BhcmN2OSBzcGFyYzY0IHBwYyBw cGM2NCBwcGM2NHA3CiAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8l e2djY192ZXJzaW9ufS9saWJnby5hCiAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3Bs YXRmb3JtfS8le2djY192ZXJzaW9ufS9saWJnb2JlZ2luLmEKKyV7X3ByZWZpeH0vbGliL2djYy8l e2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYmdvbGliYmVnaW4uYQorJXtf cHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGli bmV0Z28uYQogJWVuZGlmCiAlZG9jIHJwbS5kb2MvZ28vKgogCiAlZmlsZXMgLW4gbGliZ28KLSV7 X3ByZWZpeH0vJXtfbGlifS9saWJnby5zby43KgorJXtfcHJlZml4fS8le19saWJ9L2xpYmdvLnNv LjgqCiAlZG9jIHJwbS5kb2MvbGliZ28vKgogCiAlZmlsZXMgLW4gbGliZ28tZGV2ZWwKQEAgLTI5 OTIsMTMgKzI5OTYsMTkgQEAgZmkKICVpZmFyY2ggc3BhcmN2OSBwcGMKICVkaXIgJXtfcHJlZml4 fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliMzIKICV7 X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xp YjMyL2xpYmdvYmVnaW4uYQorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9y bX0vJXtnY2NfdmVyc2lvbn0vbGliMzIvbGliZ29saWJiZWdpbi5hCisle19wcmVmaXh9L2xpYi9n Y2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWIzMi9saWJuZXRnby5h CiAlZW5kaWYKICVpZmFyY2ggc3BhcmM2NCBwcGM2NCBwcGM2NHA3CiAlZGlyICV7X3ByZWZpeH0v bGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYjY0CiAle19w cmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWI2 NC9saWJnb2JlZ2luLmEKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19 LyV7Z2NjX3ZlcnNpb259L2xpYjY0L2xpYmdvbGliYmVnaW4uYQorJXtfcHJlZml4fS9saWIvZ2Nj LyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliNjQvbGlibmV0Z28uYQog JWVuZGlmCiAlaWZuYXJjaCBzcGFyY3Y5IHNwYXJjNjQgcHBjIHBwYzY0IHBwYzY0cDcKICV7X3By ZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYmdv YmVnaW4uYQorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2Nf dmVyc2lvbn0vbGliZ29saWJiZWdpbi5hCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0 X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWJuZXRnby5hCiAle19wcmVmaXh9L2xpYi9nY2Mv JXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWJnby5zbwogJWVuZGlmCiAK QEAgLTMwNTIsMzkwICszMDYyLDUgQEAgZmkKICVkb2MgcnBtLmRvYy9jaGFuZ2Vsb2dzL2xpYmNj MS9DaGFuZ2VMb2cqCiAKICVjaGFuZ2Vsb2cKLSogVHVlIEphbiAgNSAyMDE2IE9yaW9uIFBvcGxh d3NraSA8b3Jpb25AY29yYS5ud3JhLmNvbT4gNS4zLjEtMwotLSBNYWtlIGdjYy1nZm9ydHJhbiBv d24gJSV7X2Ztb2RkaXJ9ICgjMTExMzU2NCkKLQotKiBUdWUgRGVjICA4IDIwMTUgSmFrdWIgSmVs aW5layA8amFrdWJAcmVkaGF0LmNvbT4gNS4zLjEtMgotLSB3b3JrIGFyb3VuZCBkb3h5Z2VuIDEu OC4xMCBidWdzICgjMTI3OTYzOSkKLQotKiBNb24gRGVjICA3IDIwMTUgSmFrdWIgSmVsaW5layA8 amFrdWJAcmVkaGF0LmNvbT4gNS4zLjEtMQotLSB1cGRhdGUgZnJvbSB0aGUgNSBicmFuY2gKLSAg LSBHQ0MgNS4zIHJlbGVhc2UKLSAgLSBQUnMgYWRhLzQ5OTQwLCBhZGEvNDk5NDQsIGFkYS81NjI3 NCwgYWRhLzYwMTY0LCBhZGEvNjgxNjksIGFkYS82ODU2NCwKLQlib290c3RyYXAvNjYwODUsIGMr Ky82NzMzNywgYysrLzY3MzU0LCBjKysvNjc0MDksIGMrKy82NzgxMywKLQljKysvNjc5NDEsIGMr Ky82ODA4NywgYysrLzY4NDIyLCBjKysvNjg1MDgsIGMvNjYwOTgsIGMvNjY3MTEsIGMvNjgzMzcs Ci0JZGVidWcvNjY0MzIsIGRlYnVnLzY2NzI4LCBmb3J0cmFuLzQ3MjY2LCBmb3J0cmFuLzUwMjAx LCBmb3J0cmFuLzU4MDI3LAotCWZvcnRyYW4vNjA5OTMsIGZvcnRyYW4vNjE4MTksIGZvcnRyYW4v NjE4MzAsIGZvcnRyYW4vNjU3NTEsCi0JZm9ydHJhbi82NjQ2NSwgZm9ydHJhbi82NzE3MSwgZm9y dHJhbi82NzQ2MCwgZm9ydHJhbi82NzgwMywKLQlmb3J0cmFuLzY3OTMzLCBmb3J0cmFuLzY4MDUz LCBmb3J0cmFuLzY4MTUxLCBmb3J0cmFuLzY4MTUzLAotCWZvcnRyYW4vNjgxOTYsIGZvcnRyYW4v NjgyMTgsIGZvcnRyYW4vNjgyMjQsIGZvcnRyYW4vNjgzMTgsCi0JZm9ydHJhbi82ODMxOSwgaXBh LzY1OTA4LCBpcGEvNjcwNTYsIGlwYS82NzI4MCwgaXBhLzY3NzgzLCBpcGEvNjgwNTcsCi0JaXBh LzY4MjIwLCBpcGEvcHI2NzYwMCwgbGliZmZpLzY1NzI2LCBsaWJnZm9ydHJhbi82NTA4OSwKLQls aWJzdGRjKysvNTYxNTgsIGxpYnN0ZGMrKy81NjM4MywgbGlic3RkYysrLzY3NDQwLCBsaWJzdGRj KysvNjgxOTAsCi0JbGlic3RkYysrLzY4NDQ4LCBsdG8vNjEzMTMsIG1pZGRsZS1lbmQvNTY5NTYs IG1pZGRsZS1lbmQvNjc0NDMsCi0JbWlkZGxlLWVuZC82NzY2MiwgbWlkZGxlLWVuZC82ODA2Nywg bWlkZGxlLWVuZC82ODIyMSwKLQltaWRkbGUtZW5kLzY4MzM5LCBwcmVwcm9jZXNzb3IvNjA3MzYs IHJ0bC1vcHQvNjc2MDksCi0JcnRsLW9wdGltaXphdGlvbi82NzAzNywgcnRsLW9wdGltaXphdGlv bi82NzIyNiwKLQlydGwtb3B0aW1pemF0aW9uLzY3OTU0LCBydGwtb3B0aW1pemF0aW9uLzY4MTA2 LAotCXJ0bC1vcHRpbWl6YXRpb24vNjgxODUsIHJ0bC1vcHRpbWl6YXRpb24vNjgxOTQsCi0JcnRs LW9wdGltaXphdGlvbi82ODI0OSwgcnRsLW9wdGltaXphdGlvbi82ODI1MCwKLQlydGwtb3B0aW1p emF0aW9uLzY4MzIxLCBydGwtb3B0aW1pemF0aW9uLzY4MzI4LAotCXJ0bC1vcHRpbWl6YXRpb24v NjgzNzYsIHRhcmdldC81Nzg0NSwgdGFyZ2V0LzY3MjY1LCB0YXJnZXQvNjc3NzAsCi0JdGFyZ2V0 LzY3ODA4LCB0YXJnZXQvNjgwNTksIHRhcmdldC82ODEyOSwgdGFyZ2V0LzY4MTQzLCB0YXJnZXQv NjgyNzcsCi0JdGFyZ2V0LzY4MzYzLCB0YXJnZXQvNjg0MDgsIHRhcmdldC82ODQxNiwgdGFyZ2V0 LzY4NDgzLAotCXRyZWUtb3B0aW1pemF0aW9uLzY4MDE3LCB0cmVlLW9wdGltaXphdGlvbi82ODE1 NywKLQl0cmVlLW9wdGltaXphdGlvbi82ODIzOCwgdHJlZS1vcHRpbWl6YXRpb24vNjg1NTIsCi0J dHJlZS1vcHRpbWl6YXRpb24vNjg2NzEsIHRyZWUtb3B0aW1pemF0aW9uLzY4NjgwCi0KLSogRnJp IE5vdiAgNiAyMDE1IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDUuMi4xLTUKLS0g cmVlbmFibGUgYWNhdHMgdGVzdHN1aXRlIG9uIGFybQotCi0qIFdlZCBOb3YgIDQgMjAxNSBKYWt1 YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA1LjIuMS00Ci0tIHVwZGF0ZSBmcm9tIHRoZSA1 IGJyYW5jaAotICAtIFBScyBjKysvNTEwNDgsIGMrKy82NjU4MywgYysrLzY3NTU3LCBjLzY3NzMw LCBmb3J0cmFuLzM2MTkyLAotCWZvcnRyYW4vNTE5OTMsIGZvcnRyYW4vNTg3NTQsIGZvcnRyYW4v NTk2NzgsIGZvcnRyYW4vNjU4NDEsCi0JZm9ydHJhbi82NjA3OSwgZm9ydHJhbi82Njk3OSwgZm9y dHJhbi82NzE3NywgZm9ydHJhbi82NzYxNiwKLQlmb3J0cmFuLzY3NzIxLCBmb3J0cmFuLzY3ODAy LCBmb3J0cmFuLzY3ODA1LCBmb3J0cmFuLzY3ODE4LAotCWZvcnRyYW4vNjc4ODUsIGZvcnRyYW4v Njc5MDAsIGZvcnRyYW4vNjc5MzksIGZvcnRyYW4vNjc5NzcsCi0JZm9ydHJhbi82Nzk4NywgZm9y dHJhbi82ODAxOSwgZm9ydHJhbi82ODA1NCwgZm9ydHJhbi82ODA1NSwKLQlmb3J0cmFuLzY4MTA4 LCBmb3J0cmFuLzY4MTU0LCBpcGEvNjY0MjQsIGxpYmZmaS82NTQ0MSwKLQlsaWJzdGRjKysvNjUw NDksIGxpYnN0ZGMrKy82NTE0MiwgbGlic3RkYysrLzY1OTEzLCBsaWJzdGRjKysvNjcxNzMsCi0J bGlic3RkYysrLzY3NzA3LCBsaWJzdGRjKysvNjc3NDcsIGx0by82NzY5OSwgbWlkZGxlLWVuZC82 NjMxMSwKLQltaWRkbGUtZW5kLzY3NTYzLCBtaWRkbGUtZW5kLzY3OTg5LCBtaWRkbGUtZW5kLzY4 MDc5LAotCXJ0bC1vcHRpbWl6YXRpb24vNjcwMjksIHJ0bC1vcHRpbWl6YXRpb24vNjc3MzYsIHRh cmdldC82NjY5NywKLQl0YXJnZXQvNjY5MTIsIHRhcmdldC82NzI4MSwgdGFyZ2V0LzY3NzE2LCB0 YXJnZXQvNjc4NDksIHRhcmdldC82Nzg1MCwKLQl0YXJnZXQvNjc5MjksIHRhcmdldC82Nzk0MCwg dGFyZ2V0LzY3OTY3LCB0YXJnZXQvNjgwMTUsIHRhcmdldC82ODAxOCwKLQl0YXJnZXQvNjgxMDIs IHRyZWUtb3B0aW1pemF0aW9uLzY3NjkwLCB0cmVlLW9wdGltaXphdGlvbi82Nzc2OSwKLQl0cmVl LW9wdGltaXphdGlvbi82Nzc5NCwgdHJlZS1vcHRpbWl6YXRpb24vNjc4MjEKLS0gdGVtcG9yYXJp bHkgZGlzYWJsZSBhY2F0cyB0ZXN0c3VpdGUgb24gYXJtCi0KLSogVHVlIFNlcCAyOSAyMDE1IEph a3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDUuMi4xLTMKLS0gdXBkYXRlIGZyb20gdGhl IDUgYnJhbmNoCi0gIC0gUFJzIGMrKy82NzM2OSwgYysrLzY3NTA0LCBjKysvNjc1MTEsIGMrKy82 NzUxNCwgYysrLzY3NTIyLCBjKysvNjc1MjMsCi0JYy82NzQ5NSwgYy82NzUwMCwgYy82NzUwMSwg Yy82NzUwMiwgZm9ydHJhbi82NzQyOSwgZm9ydHJhbi82NzUyNSwKLQlmb3J0cmFuLzY3NTI2LCBm b3J0cmFuLzY3NjE0LCBmb3J0cmFuLzY3NjE1LCBpcGEvNjY3MDUsIGxpYmdvbXAvNjcxNDEsCi0J bGlic3RkYysrLzYyMjU4LCBsaWJzdGRjKysvNjY4NTUsIGxpYnN0ZGMrKy82Njk5OCwgbGlic3Rk YysrLzY3Mzc0LAotCW1pZGRsZS1lbmQvNjcyMjIsIG1pZGRsZS1lbmQvNjcyNzEsIG1pZGRsZS1l bmQvNjc0MDEsCi0JbWlkZGxlLWVuZC82NzQ0MiwgbWlkZGxlLWVuZC82NzQ1MiwgbWlkZGxlLWVu ZC82NzUxMiwgbWlkZGxlLWVuZC82NzUxNywKLQltaWRkbGUtZW5kLzY3NTIxLCBtaWRkbGUtZW5k LzY3NjE5LCBydGwtb3B0aW1pemF0aW9uLzY2NzkwLAotCXNhbml0aXplci82NDkwNiwgc2FuaXRp emVyLzY3MjU4LCB0YXJnZXQvNjcwNjEsIHRhcmdldC82NzE0MywKLQl0YXJnZXQvNjczNzgsIHRh cmdldC82NzM5MSwgdGFyZ2V0LzY3NDM5LCB0YXJnZXQvNjc1MDYsIHRhcmdldC82NzU3MywKLQl0 YXJnZXQvNjc2NTcsIHRyZWUtb3B0aW1pemF0aW9uLzY2NzkzLCB0cmVlLW9wdGltaXphdGlvbi82 NjkxNywKLQl0cmVlLW9wdGltaXphdGlvbi82Njk1MiwgdHJlZS1vcHRpbWl6YXRpb24vNjcwNTUs Ci0JdHJlZS1vcHRpbWl6YXRpb24vNjcxMjEsIHRyZWUtb3B0aW1pemF0aW9uLzY3NDcwCi0tIGRp c2FibGUgaGFyZGVuaW5nLCBpdCBtYWtlcyB0aGUgY29tcGlsZXIgc2lnbmlmaWNhbnRseSBzbG93 ZXIKLS0gcHV0IGxpYnN0ZGMrK2ZzLmEgaW50byBsaWJzdGRjKystZGV2ZWwKLQotKiBXZWQgU2Vw ICAyIDIwMTUgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNS4yLjEtMgotLSB1cGRh dGUgZnJvbSB0aGUgNSBicmFuY2gKLSAgLSBQUnMgYysrLzY1MTk1LCBjKysvNjU3MzQsIGMrKy82 NTk3NCwgYysrLzY2MjYwLCBjKysvNjYzMzYsIGMrKy82NjUzMywKLQljKysvNjY1OTYsIGMrKy82 NjYxOSwgYysrLzY2NjQ5LCBjKysvNjY4NTcsIGMrKy82NjkxOSwgYysrLzY2OTIzLAotCWMrKy82 Njk1NywgYysrLzY3MDIxLCBjKysvNjcxMDQsIGMrKy82NzEzMCwgYysrLzY3MTMxLCBjKysvNjcx NjEsCi0JYysrLzY3MjQ0LCBkZWJ1Zy82NjY5MSwgZm9ydHJhbi81NjUyMCwgZm9ydHJhbi82NDky MSwgZm9ydHJhbi82NDk4NiwKLQlmb3J0cmFuLzY2MDM1LCBmb3J0cmFuLzY2NTQ1LCBmb3J0cmFu LzY2NzI0LCBmb3J0cmFuLzY2NzI1LAotCWZvcnRyYW4vNjY4NjQsIGZvcnRyYW4vNjY5MjksIGZv cnRyYW4vNjY5NDIsIGlwYS82NjU2NiwgaXBhLzY2NzYwLAotCWxpYmZvcnRyYW4vNjY5MzYsIGxp Ymdmb3J0cmFuLzY2NjUwLCBsaWJnb21wLzY2NzYxLCBsaWJnb21wLzY3MzAzLAotCWxpYnN0ZGMr Ky82NzAxNSwgbGlic3RkYysrLzY3MzYyLCBtaWRkbGUtZW5kLzY2MTM0LCBtaWRkbGUtZW5kLzY2 NTY3LAotCW1pZGRsZS1lbmQvNjY1NjgsIG1pZGRsZS1lbmQvNjcwMDUsIG1pZGRsZS1lbmQvcHI2 NjU4MSwKLQlydGwtb3B0aW1pemF0aW9uLzU4MDY2LCBydGwtb3B0aW1pemF0aW9uLzY2ODM4LAot CXJ0bC1vcHRpbWl6YXRpb24vNjY4OTEsIHJ0bC1vcHRpbWl6YXRpb24vNjcwMjgsIHNhbml0aXpl ci82NjkwOCwKLQl0YXJnZXQvNTgwNjYsIHRhcmdldC82NTY5NywgdGFyZ2V0LzY2MDQ4LCB0YXJn ZXQvNjY1NjksIHRhcmdldC82NjY0OCwKLQl0YXJnZXQvNjY3MDMsIHRhcmdldC82NjczMSwgdGFy Z2V0LzY2ODE0LCB0YXJnZXQvNjY4NjYsIHRhcmdldC82Njg5MSwKLQl0YXJnZXQvNjY5MjIsIHRh cmdldC82NjkzMCwgdGFyZ2V0LzY2OTU2LCB0YXJnZXQvNjcwMDIsIHRhcmdldC82NzA0OSwKLQl0 YXJnZXQvNjcwNjAsIHRhcmdldC82NzEyNywgdGFyZ2V0LzY3MjExLCB0cmVlLW9wdGltaXphdGlv bi82NjgyOCwKLQl0cmVlLW9wdGltaXphdGlvbi82Njk0OAotCi0qIFRodSBKdWwgMTYgMjAxNSBK YWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA1LjIuMS0xCi0tIHVwZGF0ZSBmcm9tIHRo ZSA1IGJyYW5jaAotICAtIEdDQyA1LjIgcmVsZWFzZQotICAtIFBScyBjKysvNjY3NDgsIGlwYS82 Njg5NiwgbGliZm9ydHJhbi82Njg2MSwgbGliZ29tcC82NTA5OSwgbGliZ29tcC82NTc0MiwKLQlt aWRkbGUtZW5kLzQzMzQxLCBtaWRkbGUtZW5kLzY2MzMyLCBtaWRkbGUtZW5kLzY2ODIwLAotCXJ0 bC1vcHRpbWl6YXRpb24vNjY3ODIsIHJ0bC82NjU1NiwgdGFyZ2V0LzY2NTIzLCB0YXJnZXQvNjY3 ODAsCi0JdGFyZ2V0LzY2ODQwLCB0cmVlLW9wdGltaXphdGlvbi82Njc5NCwgdHJlZS1vcHRpbWl6 YXRpb24vNjY4MjMKLQotKiBUdWUgSnVsICA3IDIwMTUgSmFrdWIgSmVsaW5layA8amFrdWJAcmVk aGF0LmNvbT4gNS4xLjEtNQotLSB1cGRhdGUgZnJvbSB0aGUgNSBicmFuY2gKLSAgLSBQUnMgYm9v dHN0cmFwLzYzNzQwLCBjKysvNjU3NTAsIGMrKy82NTg0MywgYysrLzY1ODc5LCBjKysvNjU4ODAs Ci0JYysrLzY1ODgyLCBjKysvNjU5MTksIGMrKy82NTk0NSwgYysrLzY1OTczLCBjKysvNjYwMDEs IGMrKy82NjA2NywKLQljKysvNjYyMTYsIGMrKy82NjUwMSwgYysrLzY2NTE1LCBjKysvNjY1ODUs IGMrKy82NjY0NywgYysrLzY2NzQzLAotCWRlYnVnLzY2MzAxLCBmb3J0cmFuLzY2NTQ5LCBqaXQv NjY1MzksIGppdC82NjU0Niwgaml0LzY2NjI4LAotCWppdC82NjcwMCwgbGlic3RkYysrLzY1Mzkz LCBsaWJzdGRjKysvNjYwNTUsIG1pZGRsZS1lbmQvNjY0MTMsCi0JbWlkZGxlLWVuZC82NjYzMywg bWlkZGxlLWVuZC82NjcwMiwgdGFyZ2V0LzM3MDcyLCB0YXJnZXQvNTI0ODIsCi0JdGFyZ2V0LzYz NDA4LCB0YXJnZXQvNjQ4MzMsIHRhcmdldC82NTcxMSwgdGFyZ2V0LzY1OTE0LCB0YXJnZXQvNjYx MTQsCi0JdGFyZ2V0LzY2MTM2LCB0YXJnZXQvNjYyMDAsIHRhcmdldC82NjQxMiwgdGFyZ2V0LzY2 NTA5LCB0YXJnZXQvNjY1NjMsCi0JdGFyZ2V0LzY2NjExLCB0ZXN0c3VpdGUvNjY2NjcsIHRyZWUt b3B0aW1pemF0aW9uLzY2MTE5LAotCXRyZWUtb3B0aW1pemF0aW9uLzY2Mzc1LCB0cmVlLW9wdGlt aXphdGlvbi82NjQyMgotCi0qIFRodSBKdW4gMTggMjAxNSBKYWt1YiBKZWxpbmVrIDxqYWt1YkBy ZWRoYXQuY29tPiA1LjEuMS00Ci0tIHVwZGF0ZSBmcm9tIHRoZSA1IGJyYW5jaAotICAtIGZpeCBD KysgSUNFIGluIGJ1aWxkX2N0b3Jfc3Vib2JfcmVmICgjMTIzMjY3OSwgIzEyMzMwMzAsICMxMjMz MDY4LAotICAgIFBSIGMrKy82NjUzNikKLSAgLSBQUnMgYysrLzU4MDYzLCBjKysvNjU3MTksIGMr Ky82NjI4OSwgYysrLzY2NDUwLCBjKysvNjY1NzEsIGZvcnRyYW4vNjYzODUsCi0JbGlic3RkYysr LzY2MDMwLCBsaWJzdGRjKysvNjY0NjQsIG1pZGRsZS1lbmQvNjY0MjksIHRhcmdldC82NTUyNywK LQl0YXJnZXQvNjYyNTgsIHRlc3RzdWl0ZS82NTk0NAotCi0qIEZyaSBKdW4gMTIgMjAxNSBKYWt1 YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA1LjEuMS0zCi0tIHVwZGF0ZSBmcm9tIHRoZSA1 IGJyYW5jaAotICAtIFBScyBib290c3RyYXAvNjYyNTIsIGJvb3RzdHJhcC82NjMxOSwgYysrLzY2 MzgzLCBjKysvNjYzODcsCi0JZm9ydHJhbi82NjI0NSwgbGlic3RkYysrLzY2MzI3LCBsaWJzdGRj KysvNjYzNTQsCi0JcnRsLW9wdGltaXphdGlvbi82NjQ0NCwgdGFyZ2V0LzY2Mjc1LCB0YXJnZXQv NjY0NzMsIHRhcmdldC82NjQ3NAotICAtIGZpeCBUTFMgcmVsYXRlZCBJQ0Ugb24gaT84Ni1saW51 eCAoIzEyMTIyNjUsIFBSIHRhcmdldC82NjQ3MCkKLSAgLSBmaXggYSBsaWJzdGRjKysgY29kZWN2 dF91dGYxNiBidWcgKCMxMjI4ODgyLCBQUiBsaWJzdGRjKysvNjY0MTcpCi0gIC0gZml4IGEgbGli c3RkYysrIHdzdHJpbmdfY29udmVydCBidWcgKCMxMjI4ODg0LCBQUiBsaWJzdGRjKysvNjY0NDEp Ci0gIC0gZml4IEMrKyBJQ0Ugd2l0aCBzdGF0ZW1lbnQgZXhwcmVzc2lvbnMgKCMxMjI4OTE2LCBQ UiBjKysvNjY0NDUpCi0KLSogU2F0IEp1biAgNiAyMDE1IEpha3ViIEplbGluZWsgPGpha3ViQHJl ZGhhdC5jb20+IDUuMS4xLTIKLS0gdXBkYXRlIGZyb20gdGhlIDUgYnJhbmNoCi0gIC0gUFJzIGMr Ky81MTc0NywgYysrLzU5MDEyLCBjKysvNTk3NjYsIGMrKy82NTY5NSwgYysrLzY1NzIxLCBjKysv NjU3MjcsCi0JYysrLzY1ODU4LCBjKysvNjU4NzYsIGMrKy82NTg5NiwgYysrLzY1OTQyLCBjKysv NjYwMDcsIGMrKy82NjIxMSwKLQljKysvNjYzMjAsIGMrKy82NjQwNSwgZGVidWcvNjU1NDksIGZv cnRyYW4vNDA5NTgsIGZvcnRyYW4vNjA3ODAsCi0JZm9ydHJhbi82NDkyNSwgZm9ydHJhbi82NTQy OSwgZm9ydHJhbi82NTkwMywgZm9ydHJhbi82NTk3NiwKLQlmb3J0cmFuLzY2MDM5LCBmb3J0cmFu LzY2MDQwLCBmb3J0cmFuLzY2MDQzLCBmb3J0cmFuLzY2MDQ0LAotCWZvcnRyYW4vNjYwNDUsIGZv cnRyYW4vNjYwNTIsIGZvcnRyYW4vNjYwNTcsIGZvcnRyYW4vNjYxMDYsCi0JZm9ydHJhbi82NjI1 NywgZm9ydHJhbi82NjM0NywgZm9ydHJhbi82NjM3NywgZm9ydHJhbi82NjM4MCwgaXBhLzY1ODcz LAotCWxpYnN0ZGMrKy82NTM1MiwgbGlic3RkYysrLzY1ODM5LCBsaWJzdGRjKysvNjU4ODMsIGxp YnN0ZGMrKy82NjAxNywKLQlsdG8vNjU1NTksIG1pZGRsZS1lbmQvMzYwNDMsIG1pZGRsZS1lbmQv NjQ3MjksIG1pZGRsZS1lbmQvNjYxMzMsCi0JbWlkZGxlLWVuZC82NjE5OSwgbWlkZGxlLWVuZC82 NjIyMSwgbWlkZGxlLWVuZC82NjI1MSwgbWlkZGxlLWVuZC82NjM0NSwKLQlydGwtb3B0aW1pemF0 aW9uLzMwOTY3LCBydGwtb3B0aW1pemF0aW9uLzY1ODA1LCBzYW5pdGl6ZXIvNjQ4MzksCi0Jc2Fu aXRpemVyLzY2MTkwLCB0YXJnZXQvNTg3NDQsIHRhcmdldC82NDU3OSwgdGFyZ2V0LzY1NDA4LAot CXRhcmdldC82NTQ1NiwgdGFyZ2V0LzY1ODQ5LCB0YXJnZXQvNjU4OTUsIHRhcmdldC82NTk1NSwg dGFyZ2V0LzY1OTc5LAotCXRhcmdldC82NTk5MCwgdGFyZ2V0LzY2MDE1LCB0YXJnZXQvNjYwNDcs IHRhcmdldC82NjE0MCwgdGFyZ2V0LzY2MTQ4LAotCXRhcmdldC82NjE3NCwgdGFyZ2V0LzY2MjE1 LCB0YXJnZXQvNjYyMjQsIHRyZWUtb3B0aW1pemF0aW9uLzYyMDMxLAotCXRyZWUtb3B0aW1pemF0 aW9uLzYzNTUxLCB0cmVlLW9wdGltaXphdGlvbi82NTg3NSwKLQl0cmVlLW9wdGltaXphdGlvbi82 NTk4NCwgdHJlZS1vcHRpbWl6YXRpb24vNjYxMjMsCi0JdHJlZS1vcHRpbWl6YXRpb24vNjYyMzMs IHRyZWUtb3B0aW1pemF0aW9uLzY2MjUxLAotCXRyZWUtb3B0aW1pemF0aW9uLzY2MjcyLCB0cmVl LW9wdGltaXphdGlvbi82NjI4MAotICAtIGFsbG93IC1Xbm8tbmFycm93aW5nIHRvIHN1cHByZXNz IEMrKzExIG5hcnJvd2luZyBlcnJvcnMgKCMxMjI3NjAzLAotICAgIFBSIGMrKy82NTgwMSkKLSAg LSBmaXggZGVidWcvdmVjdG9yIG9wZXJhdG9yPSBidWcgKCMxMjIzMTgyKQotICAtIGZpeCBEQ0Ug bG9vcCBoYW5kbGluZyAoIzEyMjAwNDMsIFBSIHRyZWUtb3B0aW1pemF0aW9uLzY2MTAxKQotICAt IGhhbmRsZSBOVUxMIGluIGxpYmdvIHJ1bnRpbWVfZnVuY25hbWVfZ28gKCMxMjEyNDcyLCBQUiBn by82NjAxNikKLS0gd29yayBhcm91bmQgQVJNIGJhY2tlbmQgaXNzdWVzIHdpdGggb3ZlcmFsaWdu ZWQgc2NhbGFycyAoIzEyMTcyMjQsCi0gIFBSIHRhcmdldC82NTk1NikKLS0gZHJvcCAtV2wsLXos bm9kbG9wZW4gZnJvbSBsaWJnbmF0IHNoYXJlZCBsaWJyYXJpZXMsIHRoZXkgYXJlbid0Ci0gIHVz aW5nIGV4ZWN1dGFibGUgc3RhY2sgYW55bW9yZSAoIzEyMTE5NTcpCi0KLSogV2VkIEFwciAyMiAy MDE1IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDUuMS4xLTEKLS0gdXBkYXRlIGZy b20gdGhlIDUgYnJhbmNoCi0gIC0gR0NDIDUuMSByZWxlYXNlCi0gIC0gUFJzIGRlYnVnLzY1ODA3 LCB0ZXN0c3VpdGUvNjU3NjcKLS0gaW1wcm92ZSBoYW5kbGluZyBvZiBhc20gY29uc3RyYWludHMg dGhhdCBkb24ndCBhY2NlcHQgUkVHIG5vciBNRU0KLSAgYXQgLU8wIChQUiB0YXJnZXQvNjU2ODkp Ci0tIGltcHJvdmUgY29tbW9uIGhhbmRsaW5nIGluIG5vbi1waWMgY29kZSBvbiBzMzkweyx4fSwg YWFyY2g2NCBhbmQKLSAgYXJtIChQUiB0YXJnZXQvNjU3ODApCi0KLSogRnJpIEFwciAxNyAyMDE1 IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDUuMC4xLTAuMgotLSB1cGRhdGUgZnJv bSB0aGUgNSBicmFuY2gKLSAgLSBQUnMgYm9vdHN0cmFwLzYyMDc3LCBib290c3RyYXAvNjU3NjMs IGRlYnVnLzY1NzcxLCBpcGEvNjU3NjUsCi0JbGlic3RkYysrLzY1NzU0LCBydGwtb3B0aW1pemF0 aW9uLzY1NzYxLCB0YXJnZXQvNjU3ODAsIHRhcmdldC82NTc4NwotCi0qIE1vbiBBcHIgMTMgMjAx NSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA1LjAuMS0wLjEKLS0gdXBkYXRlIGZy b20gdGhlIHRydW5rIGFuZCA1IGJyYW5jaAotICAtIHVwZGF0ZSB0byBHQ0MgNS4xLVJDMQotICAt IFBScyBjKysvNjU2OTAsIGMrKy82NTczNiwgZm9ydHJhbi81NjY3NCwgZm9ydHJhbi81Njg1Miwg Zm9ydHJhbi81ODgxMywKLQlmb3J0cmFuLzU5MDE2LCBmb3J0cmFuLzU5MDI0LCBpcGEvNjU1NDAs IGlwYS82NTcyMiwgaXBhLzY1NzQzLAotCWppdC82NTY5MSwgbWlkZGxlLWVuZC82NTU1NCwgcGNo LzY1NTUwLCBydGwtb3B0aW1pemF0aW9uLzY1NjkzLAotCXRhcmdldC81NTE0MywgdGFyZ2V0LzY1 NjcxLCB0YXJnZXQvNjU2NzYsIHRhcmdldC82NTY5MywgdGFyZ2V0LzY1Njk0LAotCXRhcmdldC82 NTcxMCwgdGFyZ2V0LzY1NzI5LCB0cmVlLW9wdGltaXphdGlvbi82NTcwOSwKLQl0cmVlLW9wdGlt aXphdGlvbi82NTczNSwgdHJlZS1vcHRpbWl6YXRpb24vNjU3NDcKLS0gYWRkIC0tZW5hYmxlLXRh cmdldHM9cG93ZXJwY2xlLWxpbnV4IG9uIHBwYzY0bGUgKCMxMjA1MjM2KQotCi0qIFR1ZSBBcHIg IDcgMjAxNSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA1LjAuMC0wLjIyCi0tIHVw ZGF0ZSBmcm9tIHRoZSB0cnVuawotICAtIFBScyBhZGEvNjU0NTEsIGFkYS82NTQ5MCwgYm9vdHN0 cmFwLzY1NTIyLCBib290c3RyYXAvNjU1MzcsIGMrKy80MjMyOCwKLQljKysvNDgzMjQsIGMrKy80 ODQ1MywgYysrLzU0OTg3LCBjKysvNTYxMDAsIGMrKy81ODkyMywgYysrLzU5MzI5LAotCWMrKy81 OTk4OCwgYysrLzYwMDY3LCBjKysvNjAxMzAsIGMrKy82MTY3MCwgYysrLzYxOTcxLCBjKysvNjQw ODUsCi0JYysrLzY1MDcyLCBjKysvNjUxNTQsIGMrKy82NTM5MCwgYysrLzY1Mzk4LCBjKysvNjU0 OTgsIGMrKy82NTUwOSwKLQljKysvNjU1MTMsIGMrKy82NTUyNSwgYysrLzY1NTU0LCBjKysvNjU1 NTYsIGMrKy82NTU1OCwgYysrLzY1NjI1LAotCWMrKy82NTY0MiwgYysrLzY1NjQ2LCBjLzY1NTg2 LCBkZWJ1Zy82NTY3OCwgZHJpdmVyLzY1NDQ0LAotCWZvcnRyYW4vNTU5MDEsIGZvcnRyYW4vNTc0 NTYsIGZvcnRyYW4vNjMyMzAsIGZvcnRyYW4vNjQ3ODcsCi0JZm9ydHJhbi82NDk1MiwgZm9ydHJh bi82NTUzMiwgZm9ydHJhbi82NTU0OCwgZm9ydHJhbi82NTU5NywgZ28vNjU0NjIsCi0JaXBhLzY1 MDc2LCBpcGEvNjUzODAsIGlwYS82NTQ2NSwgaXBhLzY1NDc1LCBpcGEvNjU0NzgsIGlwYS82NTUw MiwKLQlpcGEvNjU1MjEsIGlwYS82NTU1NywgaXBhLzY1NTg4LCBpcGEvNjU2MDAsIGlwYS82NTYx MCwgaXBhLzY1NjU0LAotCWlwYS82NTY1NSwgaXBhLzY1NjY1LCBsaWJmZmkvNjU1NjcsIGxpYmdm b3J0cmFuLzU5NTEzLAotCWxpYmdmb3J0cmFuLzY1NTQxLCBsaWJnZm9ydHJhbi82NTU2MywgbGli Z2ZvcnRyYW4vNjU1OTYsCi0JbGliZ29tcC82NDk3MiwgbGlic3RkYysrLzMzMzk0LCBsaWJzdGRj KysvNTgwMzgsIGxpYnN0ZGMrKy82MDQyMSwKLQlsaWJzdGRjKysvNjIyNTksIGxpYnN0ZGMrKy82 NDk2NywgbGlic3RkYysrLzY1MDMzLCBsaWJzdGRjKysvNjUxNDcsCi0JbGlic3RkYysrLzY1NDIw LCBsaWJzdGRjKysvNjU0OTksIGxpYnN0ZGMrKy82NTUwMCwgbGlic3RkYysrLzY1NTQzLAotCWxp YnN0ZGMrKy82NTYzMCwgbHRvLzY1NTE1LCBsdG8vNjU1MzYsIG1pZGRsZS1lbmQvNjQ3MTUsCi0J bWlkZGxlLWVuZC82NTUxNywgbWlkZGxlLWVuZC82NTUxOSwgbWlkZGxlLWVuZC82NTU1NSwKLQlt aWRkbGUtZW5kLzY1NTk1LCBtaWRkbGUtZW5kLzY1NjI2LCBtaWRkbGUtZW5kLzY1NjgwLCBwbHVn aW5zLzYxMTc2LAotCXByZXByb2Nlc3Nvci82MTk3NywgcHJlcHJvY2Vzc29yLzY1MjM4LCBydGwt b3B0aW1pemF0aW9uLzYwODUxLAotCXJ0bC1vcHRpbWl6YXRpb24vNjM0OTEsIHJ0bC1vcHRpbWl6 YXRpb24vNjQzMTcsCi0JcnRsLW9wdGltaXphdGlvbi82NDM2Niwgc2FuaXRpemVyLzU5MDA5LCBz YW5pdGl6ZXIvNjU1ODMsCi0JdGFyZ2V0LzU4OTQ1LCB0YXJnZXQvNjUwNTIsIHRhcmdldC82NTI0 MCwgdGFyZ2V0LzY1MjQ4LCB0YXJnZXQvNjUzNTEsCi0JdGFyZ2V0LzY1NDA3LCB0YXJnZXQvNjU0 ODksIHRhcmdldC82NTQ5NSwgdGFyZ2V0LzY1NTA0LCB0YXJnZXQvNjU1MDUsCi0JdGFyZ2V0LzY1 NTA4LCB0YXJnZXQvNjU1MjMsIHRhcmdldC82NTUzMSwgdGFyZ2V0LzY1NTYxLCB0YXJnZXQvNjU1 NjksCi0JdGFyZ2V0LzY1NTc2LCB0YXJnZXQvNjU1OTMsIHRhcmdldC82NTYwMiwgdGFyZ2V0LzY1 NjE0LCB0YXJnZXQvNjU2MjQsCi0JdGFyZ2V0LzY1NjQ3LCB0YXJnZXQvNjU2NDgsIHRlc3RzdWl0 ZS82MzE3NSwgdGVzdHN1aXRlLzY1NTA2LAotCXRlc3RzdWl0ZS82NTUyNiwgdGVzdHN1aXRlLzY1 NTk0LCB0cmVlLW9wdGltaXphdGlvbi82MjYzMCwKLQl0cmVlLW9wdGltaXphdGlvbi82NDcxNSwg dHJlZS1vcHRpbWl6YXRpb24vNjUxNzcsCi0JdHJlZS1vcHRpbWl6YXRpb24vNjU0NTgsIHRyZWUt b3B0aW1pemF0aW9uLzY1NDk0LAotCXRyZWUtb3B0aW1pemF0aW9uLzY1NTE4LCB0cmVlLW9wdGlt aXphdGlvbi82NTUzMywKLQl0cmVlLW9wdGltaXphdGlvbi82NTUzOCwgdHJlZS1vcHRpbWl6YXRp b24vNjU1NTEsCi0JdHJlZS1vcHRpbWl6YXRpb24vNjU2NjAKLQotKiBUaHUgTWFyIDE5IDIwMTUg SmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNS4wLjAtMC4yMQotLSB1cGRhdGUgZnJv bSB0aGUgdHJ1bmsKLSAgLSBQUnMgYysrLzUyNjU5LCBjKysvNTk2ODYsIGMrKy81OTgxNiwgYysr LzY0NjI2LCBjKysvNjUwNDYsIGMrKy82NTA2MSwKLQljKysvNjUzMjcsIGMrKy82NTM0MCwgZm9y dHJhbi81OTE5OCwgZm9ydHJhbi82NDQzMiwgaXBhLzY1NDMyLAotCWlwYS82NTQzOSwgbGliZ2Zv cnRyYW4vNjQ0MzIsIGxpYnN0ZGMrKy8xMzYzMSwgbWlkZGxlLWVuZC82NDQ5MSwKLQlzYW5pdGl6 ZXIvNjQyNjUsIHNhbml0aXplci82NTQwMCwgdGFyZ2V0LzY1MDc4LCB0YXJnZXQvNjUyMjIsCi0J dGVzdHN1aXRlLzY0MDMyLCB0cmVlLW9wdGltaXphdGlvbi82NTQyNywgdHJlZS1vcHRpbWl6YXRp b24vNjU0NTAKLS0gYWRkIGxpYm1weCBhbmQgbGlibXB4LXN0YXRpYyBzdWJwYWNrYWdlcyBvbiB4 ODYKLQotKiBNb24gTWFyIDE2IDIwMTUgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4g NS4wLjAtMC4yMAotLSB1cGRhdGUgZnJvbSB0aGUgdHJ1bmsKLSAgLSBQUnMgZm9ydHJhbi82MTEz OCwgbWlkZGxlLWVuZC82NTQwOSwgbWlkZGxlLWVuZC82NTQxNCwgbWlkZGxlLWVuZC82NTQzMSwK LQlzYW5pdGl6ZXIvNjQ4MjAsIHRhcmdldC82MzE1MAotCi0qIEZyaSBNYXIgMTMgMjAxNSBKYWt1 YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA1LjAuMC0wLjE5Ci0tIHVwZGF0ZSBmcm9tIHRo ZSB0cnVuawotICAtIFBScyBhZGEvNjUyNTksIGFkYS82NTMxOSwgYm9vdHN0cmFwLzI1NjcyLCBi b290c3RyYXAvNjUxNTAsIGMrKy82NDIyNywKLQljKysvNjQzOTgsIGMrKy82NDY2NSwgYysrLzY0 ODM0LCBjKysvNjUxMjcsIGMrKy82NTI5NSwgYysrLzY1MzIzLAotCWMrKy82NTMzMywgYysrLzY1 MzM5LCBjKysvNjUzNzAsIGMvMzUzMzAsIGMvNjUxMjAsIGZvcnRyYW4vNjA4OTgsCi0JZm9ydHJh bi82NTAyNCwgaXBhLzY0NjkzLCBpcGEvNjQ5ODgsIGlwYS82NTEzMCwgaXBhLzY1MjMyLCBpcGEv NjUyMzYsCi0JaXBhLzY1MjM3LCBpcGEvNjUyNDUsIGlwYS82NTI2MywgaXBhLzY1MjcwLCBpcGEv NjUyODIsIGlwYS82NTI4NywKLQlpcGEvNjUzMDIsIGlwYS82NTMxNiwgaXBhLzY1MzE4LCBpcGEv NjUzMzQsIGxpYmZvcnRyYW4vNjUyMDAsCi0JbGliZ2NjLzY0ODg1LCBsaWJzdGRjKysvNjQzNjcs IGxpYnN0ZGMrKy82NDQ0MSwgbGlic3RkYysrLzY0Nzk3LAotCWxpYnN0ZGMrKy82NTI0NiwgbGli c3RkYysrLzY1Mjc5LCBsdG8vNjUxOTMsIGx0by82NTI3NiwgbHRvLzY1MzE2LAotCWx0by82NTM2 MSwgbWlkZGxlLWVuZC80NDU2MywgbWlkZGxlLWVuZC82MzE1NSwgbWlkZGxlLWVuZC82MzE3NSwK LQltaWRkbGUtZW5kLzY0OTI4LCBtaWRkbGUtZW5kLzY1MjMzLCBtaWRkbGUtZW5kLzY1MjcwLAot CW1pZGRsZS1lbmQvNjUzMTUsIG90aGVyLzY1Mzg0LCBydGwtb3B0aW1pemF0aW9uLzY0ODk1LAot CXJ0bC1vcHRpbWl6YXRpb24vNjUwNjcsIHJ0bC1vcHRpbWl6YXRpb24vNjUyMzUsCi0JcnRsLW9w dGltaXphdGlvbi82NTMyMSwgc2FuaXRpemVyLzYzOTU4LCBzYW5pdGl6ZXIvNjUyODAsCi0Jc2Fu aXRpemVyLzY1MzY3LCB0YXJnZXQvNTgxNTgsIHRhcmdldC81OTgyOCwgdGFyZ2V0LzYyMjQ3LAot CXRhcmdldC82MjI1MSwgdGFyZ2V0LzY0MzE3LCB0YXJnZXQvNjQzMzEsIHRhcmdldC82NDM0Miwg dGFyZ2V0LzY0NjAwLAotCXRhcmdldC82NTAzOCwgdGFyZ2V0LzY1MDQ0LCB0YXJnZXQvNjUxMDMs IHRhcmdldC82NTEyMSwgdGFyZ2V0LzY1MTM4LAotCXRhcmdldC82NTE4MywgdGFyZ2V0LzY1MTg0 LCB0YXJnZXQvNjUxOTIsIHRhcmdldC82NTI0MiwgdGFyZ2V0LzY1MjQ5LAotCXRhcmdldC82NTI2 MSwgdGFyZ2V0LzY1Mjg2LCB0YXJnZXQvNjUyOTYsIHRhcmdldC82NTM2OCwKLQl0cmVlLW9wdGlt aXphdGlvbi82Mzc0MywgdHJlZS1vcHRpbWl6YXRpb24vNjUyNDEsCi0JdHJlZS1vcHRpbWl6YXRp b24vNjUzMTAsIHRyZWUtb3B0aW1pemF0aW9uLzY1MzU1LAotCXRyZWUtb3B0aW1pemF0aW9uLzY1 Mzg4Ci0tIGZpeCB2ZWN0b3JpemF0aW9uIG9mIHVuYWxpZ25lZCBsb2FkcyBvbiBwb3dlcnBjIChQ UiB0cmVlLW9wdGltaXphdGlvbi82NTM2OSkKLS0gZml4IGNvbWJpbmVyIG9uIGJpZy1lbmRpYW4g dGFyZ2V0cyAoUFIgcnRsLW9wdGltaXphdGlvbi82NTQwMSkKLS0gZml4IHJlYXNzb2MgYml0IHRl c3Qgb3B0aW1pemF0aW9uIChQUiB0cmVlLW9wdGltaXphdGlvbi82NTQxOCkKLQotKiBGcmkgRmVi IDI3IDIwMTUgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNS4wLjAtMC4xOAotLSBm aXggY29tcGlsYXRpb24gb2Ygc3RkZXhjZXB0IHdpdGggY2xhbmcgKFBSIGxpYnN0ZGMrKy12My82 NDM2NykKLS0gZml4IHNjcmF0Y2ggaGFuZGxpbmcgaW4gTFJBIHJlbWF0ZXJpYWxpemF0aW9uIChQ UiB0YXJnZXQvNjUwMzIpICAgCi0tIHJlbW92ZSAtV2Zvcm1hdC1zaWduZWRuZXNzIGZyb20gLVdm b3JtYXQ9MiAoUFIgYy82NTA0MCkKLS0gaW1wcm92ZSBWTEEgYWxsb2NhdGlvbiBvbiBpPzg2L3g4 Nl82NCAoUFIgcnRsLW9wdGltaXphdGlvbi82NTIyMCkKLS0gZml4IEMgRkUgSUNFIChQUiBjLzY1 MjI4KQotCi0qIFRodSBGZWIgMjYgMjAxNSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29t PiA1LjAuMC0wLjE3Ci0tIHVwZGF0ZSBmcm9tIHRoZSB0cnVuawotICAtIFBScyBjKysvNjUyMDIs IGMrKy82NTIwOSwgZGVidWcvNDYxMDIsIGRlYnVnLzU4MzE1LCBpcGEvNjUwMDgsCi0JbGliZ29t cC82NDYyNSwgbHRvLzY0Mzc0LCBydGwtb3B0aW1pemF0aW9uLzY1MTIzLCB0YXJnZXQvNDcyMzAs Ci0JdGFyZ2V0LzYxMTQyLCB0YXJnZXQvNjQyMTIsIHRhcmdldC82NDk5NywgdGFyZ2V0LzY1MTE3 LCB0YXJnZXQvNjUxNjEsCi0JdGFyZ2V0LzY1MTY3LCB0YXJnZXQvNjUxNzEsIHRhcmdldC82NTE5 NiwgdGFyZ2V0LzY1MjE3LAotCXRyZWUtb3B0aW1pemF0aW9uLzYxOTE3LCB0cmVlLW9wdGltaXph dGlvbi82NTA0OAotLSBmaXggYnN3YXAgbG9hZCBvcHRpbWl6YXRpb24gb24gYmlnLWVuZGlhbiAo IzExOTQ3MDQsCi0gIFBSIHRyZWUtb3B0aW1pemF0aW9uLzY1MjE1KQotLSBmaXggcmVhc3NvY2lh dGlvbiAoUFIgdHJlZS1vcHRpbWl6YXRpb24vNjUyMTYpCi0KLSogVHVlIEZlYiAyNCAyMDE1IEph a3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDUuMC4wLTAuMTYKLS0gdXBkYXRlIGZyb20g dGhlIHRydW5rCi0gIC0gUFJzIGFkYS82NTEwMCwgYWRhLzY1MTU2LCBib290c3RyYXAvNjM4ODgs IGRlYnVnLzU4MTIzLCBmb3J0cmFuLzYxOTYwLAotCWZvcnRyYW4vNjM0MjcsIGZvcnRyYW4vNjQ5 ODAsIGdjb3YtcHJvZmlsZS82NDYzNCwgaXBhLzY1MDg3LAotCWxpYnN0ZGMrKy81ODM1NywgbGli c3RkYysrLzY0Njk1LCBsaWJzdGRjKysvNjUwODUsIGx0by82NTAxMiwKLQltaWRkbGUtZW5kLzY1 MDc0LCBzYW5pdGl6ZXIvNjUwODEsIHRhcmdldC82Mzg5MiwgdGFyZ2V0LzY0MTcyLAotCXRhcmdl dC82NDQ1MiwgdGFyZ2V0LzY0NzkzLCB0YXJnZXQvNjUwNjQsIHRhcmdldC82NTEwOSwgdGFyZ2V0 LzY1MTUzLAotCXRhcmdldC82NTE2MywgdGFyZ2V0LzY1MTcyLCB0YXJnZXQvNjUxODEsIHRlc3Rz dWl0ZS82NDE1OCwKLQl0ZXN0c3VpdGUvNjUwOTMsIHRlc3RzdWl0ZS82NTEwNywgdGVzdHN1aXRl LzY1MTE2LCB0ZXN0c3VpdGUvNjUxMjYsCi0JdHJlZS1vcHRpbWl6YXRpb24vNjIyMTcsIHRyZWUt b3B0aW1pemF0aW9uLzY1MDYzLAotCXRyZWUtb3B0aW1pemF0aW9uLzY1MTM2LCB0cmVlLW9wdGlt aXphdGlvbi82NTE3MAotLSBmaXggYXJtX2Z1bmN0aW9uX2luX3NlY3Rpb25fcAotCi0qIFR1ZSBG ZWIgMTcgMjAxNSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA1LjAuMC0wLjE1Ci0t IHVwZGF0ZSBmcm9tIHRoZSB0cnVuawotICAtIFBScyBib290c3RyYXAvNDgwMDksIGMrKy82NTA3 NSwgYysrLzY1MDgwLCBjLzY1MDY2LCBpcGEvNjQ5NjMsIGlwYS82NTA1OSwKLQl0YXJnZXQvNTMz NDgsIHRhcmdldC82NTA1OCwgdHJlZS1vcHRpbWl6YXRpb24vNjM1OTMsCi0JdHJlZS1vcHRpbWl6 YXRpb24vNjUwNzcKLQotKiBNb24gRmViIDE2IDIwMTUgSmFrdWIgSmVsaW5layA8amFrdWJAcmVk aGF0LmNvbT4gNS4wLjAtMC4xNAotLSB1cGRhdGUgZnJvbSB0aGUgdHJ1bmsKLSAgLSBQUnMgYy82 NDc2OCwgdGVzdHN1aXRlLzY0ODUwCi0tIHRlbXBvcmFyaWx5IHJldmVydCBQUiBydGwvMzIyMTkg Y2hhbmdlCi0KLSogU2F0IEZlYiAxNCAyMDE1IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5j b20+IDUuMC4wLTAuMTMKLS0gdXBkYXRlIGZyb20gdGhlIHRydW5rCi0gIC0gUFJzIGJvb3RzdHJh cC82NTA2MCwgYysrLzYwMjExLCBjKysvNjA4OTQsIGMrKy82NDg4NCwgYysrLzY0ODk4LAotCWMr Ky82NDk1NiwgYysrLzY0OTU5LCBjKysvNjQ5NzAsIGMrKy82NTA1MSwgYysrLzY1MDU0LCBjLzY1 MDQwLAotCWMvNjUwNTAsIGRlYnVnLzU1NTQxLCBmb3J0cmFuLzY0NTA2LCBmb3J0cmFuLzY0OTMy LCBpcGEvNjUwMjgsCi0JcnRsLW9wdGltaXphdGlvbi80NzQ3NywgcnRsLzMyMjE5LCB0cmVlLW9w dGltaXphdGlvbi82MjIwOSwKLQl0cmVlLW9wdGltaXphdGlvbi82NDcwNSwgdHJlZS1vcHRpbWl6 YXRpb24vNjQ4MjMsCi0JdHJlZS1vcHRpbWl6YXRpb24vNjUwMDIsIHRyZWUtb3B0aW1pemF0aW9u LzY1MDUzCi0KLSogVGh1IEZlYiAxMiAyMDE1IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5j b20+IDUuMC4wLTAuMTIKLS0gdXBkYXRlIGZyb20gdGhlIHRydW5rCi0gIC0gUFJzIGlwYS82NDgx MywgaXBhLzY1MDA1LCBsdG8vNjUwMTUsIHNhbml0aXplci82NTAwMCwgc2FuaXRpemVyLzY1MDE5 LAotCXRhcmdldC82MzM0NywgdGFyZ2V0LzY0NjYxLCB0ZXN0c3VpdGUvNjQ5MzAsIHRyZWUtb3B0 aW1pemF0aW9uLzY1MDE0Ci0tIGZpeCBBUk0gSUNGIElDRSAoUFIgaXBhLzY1MDM0KQotCi0qIFR1 ZSBGZWIgMTAgMjAxNSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA1LjAuMC0wLjEx Ci0tIHVwZGF0ZSBmcm9tIHRoZSB0cnVuawotICAtIFBScyBjKysvNjQ4OTksIGMrKy82NDk5NCwg Yy82NDg1NiwgZ2Nvdi1wcm9maWxlLzYxODg5LCBpcGEvNjM1NjYsCi0JaXBhLzY0OTc4LCBpcGEv NjQ5ODIsIGxpYmdmb3J0cmFuLzU3ODIyLCBsdG8vNjQwNzYsIHRhcmdldC81ODc1NywKLQl0cmVl LW9wdGltaXphdGlvbi80MzM3OCwgdHJlZS1vcHRpbWl6YXRpb24vNTQwMDAsCi0JdHJlZS1vcHRp bWl6YXRpb24vNjQzMjYsIHRyZWUtb3B0aW1pemF0aW9uLzY0OTA5LAotCXRyZWUtb3B0aW1pemF0 aW9uLzY0OTk1Ci0tIGZpeCBDKysgRkUgSUNFIG9uIGludGVybmFsIGZ1bmN0aW9ucyAoUFIgc2Fu aXRpemVyLzY0OTg0KQotLSBmaXggSUNFIGR1ZSB0byB1bnJlYWNoYWJsZSBFSCByZWdpb24gcmVt b3ZhbCAoUFIgc2FuaXRpemVyLzY1MDAwKQotLSBmaXggLWZzZWN0aW9uLWFuY2hvcnMgYWxpYXMg aGFuZGxpbmcgKCMxMTkwMjQzLCBQUiBtaWRkbGUtZW5kLzY1MDAzKQotLSBmaXggLWZzYW5pdGl6 ZT12cHRyIGhhbmRsaW5nIChQUiBzYW5pdGl6ZXIvNjUwMDQpCi0KLSogTW9uIEZlYiAgOSAyMDE1 IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDUuMC4wLTAuMTAKLS0gZml4IGdldGNv bmYgZGVmYXVsdCBzeW1saW5rIG9uIDMyLWJpdCBhcmNoZXMgKCMxMTkwNDg0KQotLSBmaXggSUNG IElDRSAoUFIgaXBhLzY0ODU4KQotLSBmaXggd3JvbmctY29kZSBidWcgY2F1c2VkIGJ5IHN0ZGFy ZyBwYXNzIChQUiB0YXJnZXQvNjQ5NzkpCi0tIGZpeCAtZnNhbml0aXplPWFkZHJlc3MgdGFyZ2V0 IGJ1aWx0aW4gaGFuZGxpbmcgKFBSIHNhbml0aXplci82NDk4MSkgCi0KLSogU3VuIEZlYiAgOCAy MDE1IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDUuMC4wLTAuOQotLSB1cGRhdGUg ZnJvbSB0aGUgdHJ1bmsKLSAgLSBQUnMgYm9vdHN0cmFwLzUzMzQ4LCBib290c3RyYXAvNjQyNTYs IGRlYnVnLzI3MTQsIGZvcnRyYW4vNjMyMDUsCi0JZm9ydHJhbi82Mzc0NCwgaXBhLzY0ODk2LCBq aXQvNjQ3NTIsIGxpYmdmb3J0cmFuLzYwOTU2LAotCW1pZGRsZS1lbmQvNjQzNDAsIG1pZGRsZS1l bmQvNjQ5MzcsIHRhcmdldC82NDIwNSwgdGFyZ2V0LzY0ODg5Ci0KLSogRnJpIEZlYiAgNiAyMDE1 IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDUuMC4wLTAuOAotLSB1cGRhdGUgZnJv bSB0aGUgdHJ1bmsKLSAgLSBQUnMgZm9ydHJhbi82MDI4OSwgZm9ydHJhbi82NDk0MywgcnRsLW9w dGltaXphdGlvbi82NDk1NywgdGFyZ2V0LzE3MzA2LAotCXRhcmdldC80MzI2NCwgdGFyZ2V0LzU4 NDAwLCB0YXJnZXQvNjQ4NzYKLS0gZml4IGFhcmNoNjQgYm9vdHN0cmFwIGlzc3VlIChQUiB0YXJn ZXQvNjQ4OTMpCi0KLSogVGh1IEZlYiAgNSAyMDE1IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhh dC5jb20+IDUuMC4wLTAuNwotLSB1cGRhdGUgZnJvbSB0aGUgdHJ1bmsKLSAgLSBQUnMgYWRhLzY0 MzQ5LCBjKysvNjQ4NzcsIGMrKy82NDkwMSwgYy82NDgyNCwgYy82NDg2OCwgZm9ydHJhbi82NDc1 NywKLQlnY292LzY0MTIzLCBnby82NDgzNiwgZ28vNjQ4MzgsIGlwYS82MTU0OCwgaXBhLzY0Njg2 LCBpcGEvNjQ4NzIsCi0Jaml0LzY0ODEwLCBsaWJvYmpjLzYzNzY1LCBsaWJzdGRjKysvNjQ0Njcs IGxpYnN0ZGMrKy82NDg4MywKLQltaWRkbGUtZW5kLzYxMjI1LCBtaWRkbGUtZW5kLzYyMTAzLCBt aWRkbGUtZW5kLzY0OTIyLAotCXJ0bC1vcHRpbWl6YXRpb24vNjQ3NTYsIHJ0bC1vcHRpbWl6YXRp b24vNjQ5MDUsIHRhcmdldC82MjYzMSwKLQl0YXJnZXQvNjQwNDcsIHRhcmdldC82NDE1OSwgdGFy Z2V0LzY0MjMxLCB0YXJnZXQvNjQ0MDgsIHRhcmdldC82NDY2MCwKLQl0YXJnZXQvNjQ2ODgsIHRh cmdldC82NDg1MSwgdGFyZ2V0LzY0ODgyLCB0ZXN0c3VpdGUvNjQ3OTYKLS0gRlNNIGp1bXAgdGhy ZWFkaW5nIGZpeCAoUFIgdHJlZS1vcHRpbWl6YXRpb24vNjQ4NzgpCi0KLSogRnJpIEphbiAzMCAy MDE1IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDUuMC4wLTAuNgotLSB1cGRhdGUg ZnJvbSB0aGUgdHJ1bmsKLSAgLSBQUnMgYWRhLzY0MzQ5LCBib290c3RyYXAvNjQ2MTIsIGJvb3Rz dHJhcC82NDc1NCwgYysrLzQ5NTA4LCBjKysvNTg1OTcsCi0JYysrLzYzODg5LCBjKysvNjQ1MjEs IGMrKy82NDcxNywgYy82NDcwOSwgYy82NDc2NiwgYy82NDc3OCwKLQlmb3J0cmFuLzYyMDQ0LCBm b3J0cmFuLzYzODYxLCBmb3J0cmFuLzY0MjMwLCBmb3J0cmFuLzY0NzcxLCBnby82MzU2NSwKLQln by82NDUxMCwgZ28vNjQ1OTUsIGdvLzY0NzM4LCBpcGEvNjA4NzEsIGlwYS82NDEzOSwgaXBhLzY0 MjgyLAotCWlwYS82NDczMCwgaXBhLzY0Nzc2LCBpcGEvNjQ4MDEsIGppdC82NDI1Nywgaml0LzY0 NzA4LCBqaXQvNjQ3ODAsCi0JbGliZmZpLzY0Nzc5LCBsaWJmZmkvNjQ3OTksIGxpYmZmaS82NDg1 NSwgbGliZm9ydHJhbi82NDc3MCwKLQlsaWJnb21wLzY0NjM1LCBsaWJzdGRjKysvNjQzNjgsIGxp YnN0ZGMrKy82NDc5OCwgbGlic3RkYysrLzY0ODI4LAotCWx0by82NDgzNywgbWlkZGxlLWVuZC82 NDQyMSwgbWlkZGxlLWVuZC82NDc2NCwgbWlkZGxlLWVuZC82NDgwNSwKLQltaWRkbGUtZW5kLzY0 ODA5LCBvdGhlci82MzUwNCwgcnRsLW9wdGltaXphdGlvbi82MTA1OCwgdGFyZ2V0LzE1MTg0LAot CXRhcmdldC8yOTM2NiwgdGFyZ2V0LzQ5MjYzLCB0YXJnZXQvNTEyNDQsIHRhcmdldC81MjkzMywg dGFyZ2V0LzUzOTg3LAotCXRhcmdldC81NDIzNiwgdGFyZ2V0LzU5NTMzLCB0YXJnZXQvNjQzNDUs IHRhcmdldC82NDU4MCwgdGFyZ2V0LzY0NjE3LAotCXRhcmdldC82NDY1OSwgdGFyZ2V0LzY0NzYx LCB0YXJnZXQvNjQ3OTUsIHRhcmdldC82NDgwNiwKLQl0ZXN0c3VpdGUvNjQ3MTIsIHRyZWUtb3B0 aW1pemF0aW9uLzU2MjczLCB0cmVlLW9wdGltaXphdGlvbi81OTEyNCwKLQl0cmVlLW9wdGltaXph dGlvbi82NDI3NywgdHJlZS1vcHRpbWl6YXRpb24vNjQ3MTgsCi0JdHJlZS1vcHRpbWl6YXRpb24v NjQ3NDYsIHRyZWUtb3B0aW1pemF0aW9uLzY0ODA3LAotCXRyZWUtb3B0aW1pemF0aW9uLzY0ODI5 LCB0cmVlLW9wdGltaXphdGlvbi82NDg0NCwKLQl0cmVlLW9wdGltaXphdGlvbi82NDg1MywgdWJz YW4vNjQ3NDEKLS0gZml4IHVwICNwcmFnbWEgR0NDIHRhcmdldCBoYW5kbGluZyBvbiB4ODYgKFBS IHRhcmdldC82MTkyNSkKLS0gZml4IHVwIFZUQSBjb21waWxlIHRpbWUgaG9nIGR1cmluZyBleHBh bnNpb24gKFBSIGRlYnVnLzY0ODE3KQotLSBfX0xJTkVfXyBoYW5kbGluZyBmaXggKFBSIHByZXBy b2Nlc3Nvci82NDgwMykKLQotKiBGcmkgSmFuIDIzIDIwMTUgSmFrdWIgSmVsaW5layA8amFrdWJA cmVkaGF0LmNvbT4gNS4wLjAtMC41CisqIFdlZCBKYW4gMjcgMjAxNiBKYWt1YiBKZWxpbmVrIDxq YWt1YkByZWRoYXQuY29tPiA2LjAuMC0wLjUKIC0gbmV3IHBhY2thZ2UKCmRpZmYgLS1naXQgYS9n Y2M1LWFhcmNoNjQtYXN5bmMtdW53LXRhYmxlcy5wYXRjaCBiL2djYzUtYWFyY2g2NC1hc3luYy11 bnctdGFibGVzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZWVjMTQ5Li4w MDAwMDAwCi0tLSBhL2djYzUtYWFyY2g2NC1hc3luYy11bnctdGFibGVzLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMzUgKzAsMCBAQAotMjAxNC0wNC0wNyAgUmljaGFyZCBIZW5kZXJzb24gIDxy dGhAcmVkaGF0LmNvbT4KLQotCSogY29tbW9uL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtY29tbW9u LmMgKFRBUkdFVF9PUFRJT05fSU5JVF9TVFJVQ1QpOgotCURlZmluZS4KLQkoYWFyY2g2NF9vcHRp b25faW5pdF9zdHJ1Y3QpOiBOZXcgZnVuY3Rpb24uCi0KLS0tLSBnY2MvY29tbW9uL2NvbmZpZy9h YXJjaDY0L2FhcmNoNjQtY29tbW9uLmMKLSsrKyBnY2MvY29tbW9uL2NvbmZpZy9hYXJjaDY0L2Fh cmNoNjQtY29tbW9uLmMKLUBAIC0zOSw2ICszOSw5IEBACi0gI3VuZGVmCVRBUkdFVF9PUFRJT05f T1BUSU1JWkFUSU9OX1RBQkxFCi0gI2RlZmluZSBUQVJHRVRfT1BUSU9OX09QVElNSVpBVElPTl9U QUJMRSBhYXJjaF9vcHRpb25fb3B0aW1pemF0aW9uX3RhYmxlCi0gCi0rI3VuZGVmIFRBUkdFVF9P UFRJT05fSU5JVF9TVFJVQ1QKLSsjZGVmaW5lIFRBUkdFVF9PUFRJT05fSU5JVF9TVFJVQ1QgYWFy Y2g2NF9vcHRpb25faW5pdF9zdHJ1Y3QKLSsKLSAvKiBTZXQgZGVmYXVsdCBvcHRpbWl6YXRpb24g b3B0aW9ucy4gICovCi0gc3RhdGljIGNvbnN0IHN0cnVjdCBkZWZhdWx0X29wdGlvbnMgYWFyY2hf b3B0aW9uX29wdGltaXphdGlvbl90YWJsZVtdID0KLSAgIHsKLUBAIC00Nyw2ICs1MCwxNiBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGRlZmF1bHRfb3B0aW9ucyBhYXJjaF9vcHRpb25fb3B0aW1pemF0 aW9uX3RhYmxlW10gPQotICAgICB7IE9QVF9MRVZFTFNfTk9ORSwgMCwgTlVMTCwgMCB9Ci0gICB9 OwotIAotKy8qIEltcGxlbWVudCBUQVJHRVRfT1BUSU9OX0lOSVRfU1RSVUNULiAgKi8KLSsKLStz dGF0aWMgdm9pZAotK2FhcmNoNjRfb3B0aW9uX2luaXRfc3RydWN0IChzdHJ1Y3QgZ2NjX29wdGlv bnMgKm9wdHMpCi0rewotKyAgLyogQnkgZGVmYXVsdCwgYWx3YXlzIGVtaXQgRFdBUkYtMiB1bndp bmQgaW5mby4gIFRoaXMgYWxsb3dzIGRlYnVnZ2luZwotKyAgICAgd2l0aG91dCBtYWludGFpbmlu ZyBhIHN0YWNrIGZyYW1lIGJhY2stY2hhaW4uICAqLwotKyAgb3B0cy0+eF9mbGFnX2FzeW5jaHJv bm91c191bndpbmRfdGFibGVzID0gMTsKLSt9Ci0rCi0gLyogSW1wbGVtZW50IFRBUkdFVF9IQU5E TEVfT1BUSU9OLgotICAgIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyB0aGUgdGFyZ2V0IHNwZWNpZmlj IG9wdGlvbnMgZm9yIENQVS90YXJnZXQgc2VsZWN0aW9uLgotIAoKZGlmZiAtLWdpdCBhL2djYzUt aGFjay5wYXRjaCBiL2djYzUtaGFjay5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggOTUwZmY2My4uMDAwMDAwMAotLS0gYS9nY2M1LWhhY2sucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwxNTkgKzAsMCBAQAotLS0tIGxpYmFkYS9NYWtlZmlsZS5pbi5qagkyMDA5LTAxLTE0IDEy OjA3OjM1LjAwMDAwMDAwMCArMDEwMAotKysrIGxpYmFkYS9NYWtlZmlsZS5pbgkyMDA5LTAxLTE1 IDE0OjI1OjMzLjAwMDAwMDAwMCArMDEwMAotQEAgLTY2LDE4ICs2Niw0MCBAQCBsaWJzdWJkaXIg Oj0gJChsaWJkaXIpL2djYy8kKHRhcmdldF9ub25jCi0gQURBX1JUU19ESVI9JChHQ0NfRElSKS9h ZGEvcnRzJChzdWJzdCAvLF8sJChNVUxUSVNVQkRJUikpCi0gQURBX1JUU19TVUJESVI9Li9ydHMk KHN1YnN0IC8sXywkKE1VTFRJU1VCRElSKSkKLSAKLStERUZBVUxUTVVMVElGTEFHUyA6PQotK2lm ZXEgKCQoTVVMVElTVUJESVIpLCkKLSt0YXJnOj0kKHN1YnN0IC0sICwkKHRhcmdldCkpCi0rYXJj aDo9JCh3b3JkIDEsJCh0YXJnKSkKLStpZmVxICgkKHdvcmRzICQodGFyZykpLDIpCi0rb3N5czo9 JCh3b3JkIDIsJCh0YXJnKSkKLStlbHNlCi0rb3N5czo9JCh3b3JkIDMsJCh0YXJnKSkKLStlbmRp ZgotK2lmZXEgKCQoc3RyaXAgJChmaWx0ZXItb3V0IGklODYgeDg2XzY0IHBvd2VycGMlIHBwYyUg czM5MCUgc3BhcmMlIGxpbnV4JSwgJChhcmNoKSAkKG9zeXMpKSksKQotK2lmZXEgKCQoc2hlbGwg JChDQykgJChDRkxBR1MpIC1wcmludC1tdWx0aS1vcy1kaXJlY3RvcnkpLC4uL2xpYjY0KQotK0RF RkFVTFRNVUxUSUZMQUdTIDo9IC1tNjQKLStlbHNlCi0raWZlcSAoJChzdHJpcCAkKGZpbHRlci1v dXQgczM5MCUsICQoYXJjaCkpKSwpCi0rREVGQVVMVE1VTFRJRkxBR1MgOj0gLW0zMQotK2Vsc2UK LStERUZBVUxUTVVMVElGTEFHUyA6PSAtbTMyCi0rZW5kaWYKLStlbmRpZgotK2VuZGlmCi0rZW5k aWYKLSsKLSAjIGV4ZWV4dCBzaG91bGQgbm90IGJlIHVzZWQgYmVjYXVzZSBpdCdzIHRoZSAqaG9z dCogZXhlZXh0LiAgV2UncmUgYnVpbGRpbmcKLSAjIGEgKnRhcmdldCogbGlicmFyeSwgYXJlbid0 IHdlPyE/ICBMaWtld2lzZSBmb3IgQ0MuICBTdGlsbCwgcHJvdmlkZSBib2d1cwotICMgZGVmaW5p dGlvbnMganVzdCBpbiBjYXNlIHNvbWV0aGluZyBzbGlwcyB0aHJvdWdoIHRoZSBzYWZldHkgbmV0 IHByb3ZpZGVkCi0gIyBieSByZWN1cnNpdmUgbWFrZSBpbnZvY2F0aW9ucyBpbiBnY2MvYWRhL01h a2VmaWxlLmluCi0gTElCQURBX0ZMQUdTX1RPX1BBU1MgPSBcCi0gICAgICAgICAiTUFLRU9WRVJS SURFUz0iIFwKLS0gICAgICAgICJMREZMQUdTPSQoTERGTEFHUykiIFwKLSsgICAgICAgICJMREZM QUdTPSQoTERGTEFHUykgJChERUZBVUxUTVVMVElGTEFHUykiIFwKLSAgICAgICAgICJMTl9TPSQo TE5fUykiIFwKLSAgICAgICAgICJTSEVMTD0kKFNIRUxMKSIgXAotLSAgICAgICAgIkdOQVRMSUJG TEFHUz0kKEdOQVRMSUJGTEFHUykgJChNVUxUSUZMQUdTKSIgXAotLSAgICAgICAgIkdOQVRMSUJD RkxBR1M9JChHTkFUTElCQ0ZMQUdTKSAkKE1VTFRJRkxBR1MpIiBcCi0tICAgICAgICAiR05BVExJ QkNGTEFHU19GT1JfQz0kKEdOQVRMSUJDRkxBR1NfRk9SX0MpICQoTVVMVElGTEFHUykiIFwKLSsg ICAgICAgICJHTkFUTElCRkxBR1M9JChHTkFUTElCRkxBR1MpICQoTVVMVElGTEFHUykgJChERUZB VUxUTVVMVElGTEFHUykiIFwKLSsgICAgICAgICJHTkFUTElCQ0ZMQUdTPSQoR05BVExJQkNGTEFH UykgJChNVUxUSUZMQUdTKSAkKERFRkFVTFRNVUxUSUZMQUdTKSIgXAotKyAgICAgICAgIkdOQVRM SUJDRkxBR1NfRk9SX0M9JChHTkFUTElCQ0ZMQUdTX0ZPUl9DKSAkKE1VTFRJRkxBR1MpICQoREVG QVVMVE1VTFRJRkxBR1MpIiBcCi0gICAgICAgICAiUElDRkxBR19GT1JfVEFSR0VUPSQoUElDRkxB RykiIFwKLSAgICAgICAgICJUSFJFQURfS0lORD0kKFRIUkVBRF9LSU5EKSIgXAotICAgICAgICAg IlRSQUNFPSQoVFJBQ0UpIiBcCi1AQCAtODgsNyArMTEwLDcgQEAgTElCQURBX0ZMQUdTX1RPX1BB U1MgPSBcCi0gICAgICAgICAiZXhlZXh0PS5leGVleHQuc2hvdWxkLm5vdC5iZS51c2VkICIgXAot IAknQ0M9dGhlLmhvc3QuY29tcGlsZXIuc2hvdWxkLm5vdC5iZS5uZWVkZWQnIFwKLSAJIkdDQ19G T1JfVEFSR0VUPSQoQ0MpIiBcCi0tICAgICAgICAiQ0ZMQUdTPSQoQ0ZMQUdTKSIKLSsgICAgICAg ICJDRkxBR1M9JChDRkxBR1MpICQoREVGQVVMVE1VTFRJRkxBR1MpIgotIAotICMgUnVsZXMgdG8g YnVpbGQgZ25hdGxpYi4KLSAuUEhPTlk6IGduYXRsaWIgZ25hdGxpYi1wbGFpbiBnbmF0bGliLXNq bGogZ25hdGxpYi16Y3ggZ25hdGxpYi1zaGFyZWQgb3Njb25zdG9vbAotLS0tIGdjYy9hZGEvc2Vt X3V0aWwuYWRiCShyZXZpc2lvbiAxNjE2NzcpCi0rKysgZ2NjL2FkYS9zZW1fdXRpbC5hZGIJKHdv cmtpbmcgY29weSkKLUBAIC01NDg3LDcgKzU0ODcsNyBAQCBwYWNrYWdlIGJvZHkgU2VtX1V0aWwg aXMKLSAgICAgICAgICAgICBFeHAgICAgICAgICAgIDogTm9kZV9JZDsKLSAgICAgICAgICAgICBB c3NuICAgICAgICAgIDogTm9kZV9JZDsKLSAgICAgICAgICAgICBDaG9pY2UgICAgICAgIDogTm9k ZV9JZDsKLS0gICAgICAgICAgICBDb21wX1R5cGUgICAgIDogRW50aXR5X0lkOwotKyAgICAgICAg ICAgIENvbXBfVHlwZSAgICAgOiBFbnRpdHlfSWQgOj0gRW1wdHk7Ci0gICAgICAgICAgICAgSXNf QXJyYXlfQWdnciA6IEJvb2xlYW47Ci0gCi0gICAgICAgICAgYmVnaW4KLS0tLSBjb25maWctbWwu aW4uamoJMjAxMC0wNi0zMCAwOTo1MDo0NC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBjb25maWctbWwu aW4JMjAxMC0wNy0wMiAyMToyNDoxNy45OTQyMTExNTEgKzAyMDAKLUBAIC01MTYsNiArNTE2LDgg QEAgbXVsdGktZG86Ci0gCQkJCUFEQUZMQUdTPSIkKEFEQUZMQUdTKSAkJHtmbGFnc30iIFwKLSAJ CQkJcHJlZml4PSIkKHByZWZpeCkiIFwKLSAJCQkJZXhlY19wcmVmaXg9IiQoZXhlY19wcmVmaXgp IiBcCi0rCQkJCW1hbmRpcj0iJChtYW5kaXIpIiBcCi0rCQkJCWluZm9kaXI9IiQoaW5mb2Rpciki IFwKLSAJCQkJR0NKRkxBR1M9IiQoR0NKRkxBR1MpICQke2ZsYWdzfSIgXAotIAkJCQlHT0NGTEFH Uz0iJChHT0NGTEFHUykgJCR7ZmxhZ3N9IiBcCi0gCQkJCUNYWEZMQUdTPSIkKENYWEZMQUdTKSAk JHtmbGFnc30iIFwKLS0tLSBsaWJqYXZhL01ha2VmaWxlLmFtLmpqCTIwMTAtMDctMDkgMTE6MTc6 MzMuNzI5NjA0MDkwICswMjAwCi0rKysgbGliamF2YS9NYWtlZmlsZS5hbQkyMDEwLTA3LTA5IDEz OjE2OjQxLjg5NDM3NTY0MSArMDIwMAotQEAgLTcxMCw3ICs3MTAsOCBAQCBpZiBVU0VfTElCR0NK X0JDCi0gIyMgbGF0ZXIuCi0gCUBlY2hvIEluc3RhbGxpbmcgZHVtbXkgbGliIGxpYmdjal9iYy5z by4xLjAuMDsgXAotIAlybSAkKERFU1RESVIpJCh0b29sZXhlY2xpYmRpcikvbGliZ2NqX2JjLnNv OyBcCi0tCW12ICQoREVTVERJUikkKHRvb2xleGVjbGliZGlyKS9saWJnY2pfYmMuc28uMS4wLjAg JChERVNURElSKSQodG9vbGV4ZWNsaWJkaXIpL2xpYmdjal9iYy5zbzsgXAotKwkkKElOU1RBTEwp ICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkKGhlcmUpLy5saWJzL2xpYmdjal9iYy5zbyAkKERFU1RE SVIpJCh0b29sZXhlY2xpYmRpcikvbGliZ2NqX2JjLnNvOyBcCi0rCXJtICQoREVTVERJUikkKHRv b2xleGVjbGliZGlyKS9saWJnY2pfYmMuc28uMS4wLjA7IFwKLSAJJChsaWJnY2pfYmNfZHVtbXlf TElOSykgLXhjIC9kZXYvbnVsbCAtV2wsLXNvbmFtZSxsaWJnY2pfYmMuc28uMSBcCi0gCS1vICQo REVTVERJUikkKHRvb2xleGVjbGliZGlyKS9saWJnY2pfYmMuc28uMS4wLjAgLWxnY2ogfHwgZXhp dDsgXAotIAlybSAkKERFU1RESVIpJCh0b29sZXhlY2xpYmRpcikvbGliZ2NqX2JjLnNvLjE7IFwK LS0tLSBsaWJqYXZhL01ha2VmaWxlLmluLmpqCTIwMTAtMDctMDkgMTE6MTc6MzQuMDAwMDAwMDAw ICswMjAwCi0rKysgbGliamF2YS9NYWtlZmlsZS5pbgkyMDEwLTA3LTA5IDEzOjE4OjA3LjU0MjU3 MjI3MCArMDIwMAotQEAgLTEyNjY1LDcgKzEyNjY1LDggQEAgaW5zdGFsbC1leGVjLWhvb2s6IGlu c3RhbGwtYmluUFJPR1JBTVMgaQotIAlpbnN0YWxsLWxpYmV4ZWNzdWJQUk9HUkFNUwotIEBVU0Vf TElCR0NKX0JDX1RSVUVACUBlY2hvIEluc3RhbGxpbmcgZHVtbXkgbGliIGxpYmdjal9iYy5zby4x LjAuMDsgXAotIEBVU0VfTElCR0NKX0JDX1RSVUVACXJtICQoREVTVERJUikkKHRvb2xleGVjbGli ZGlyKS9saWJnY2pfYmMuc287IFwKLS1AVVNFX0xJQkdDSl9CQ19UUlVFQAltdiAkKERFU1RESVIp JCh0b29sZXhlY2xpYmRpcikvbGliZ2NqX2JjLnNvLjEuMC4wICQoREVTVERJUikkKHRvb2xleGVj bGliZGlyKS9saWJnY2pfYmMuc287IFwKLStAVVNFX0xJQkdDSl9CQ19UUlVFQAkkKElOU1RBTEwp ICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkKGhlcmUpLy5saWJzL2xpYmdjal9iYy5zbyAkKERFU1RE SVIpJCh0b29sZXhlY2xpYmRpcikvbGliZ2NqX2JjLnNvOyBcCi0rQFVTRV9MSUJHQ0pfQkNfVFJV RUAJcm0gJChERVNURElSKSQodG9vbGV4ZWNsaWJkaXIpL2xpYmdjal9iYy5zby4xLjAuMDsgXAot IEBVU0VfTElCR0NKX0JDX1RSVUVACSQobGliZ2NqX2JjX2R1bW15X0xJTkspIC14YyAvZGV2L251 bGwgLVdsLC1zb25hbWUsbGliZ2NqX2JjLnNvLjEgXAotIEBVU0VfTElCR0NKX0JDX1RSVUVACS1v ICQoREVTVERJUikkKHRvb2xleGVjbGliZGlyKS9saWJnY2pfYmMuc28uMS4wLjAgLWxnY2ogfHwg ZXhpdDsgXAotIEBVU0VfTElCR0NKX0JDX1RSVUVACXJtICQoREVTVERJUikkKHRvb2xleGVjbGli ZGlyKS9saWJnY2pfYmMuc28uMTsgXAotLS0tIGxpYmNwcC9tYWNyby5jLmpqCTIwMTUtMDEtMTQg MTE6MDE6MzQuMDAwMDAwMDAwICswMTAwCi0rKysgbGliY3BwL21hY3JvLmMJMjAxNS0wMS0xNCAx NDoyMjoxOS4yODY5NDk4ODQgKzAxMDAKLUBAIC0yOTQ3LDggKzI5NDcsNiBAQCBjcmVhdGVfaXNv X2RlZmluaXRpb24gKGNwcF9yZWFkZXIgKnBmaWxlCi0gICBjcHBfdG9rZW4gKnRva2VuOwotICAg Y29uc3QgY3BwX3Rva2VuICpjdG9rZW47Ci0gICBib29sIGZvbGxvd2luZ19wYXN0ZV9vcCA9IGZh bHNlOwotLSAgY29uc3QgY2hhciAqcGFzdGVfb3BfZXJyb3JfbXNnID0KLS0gICAgTl8oIicjIycg Y2Fubm90IGFwcGVhciBhdCBlaXRoZXIgZW5kIG9mIGEgbWFjcm8gZXhwYW5zaW9uIik7Ci0gICB1 bnNpZ25lZCBpbnQgbnVtX2V4dHJhX3Rva2VucyA9IDA7Ci0gCi0gICAvKiBHZXQgdGhlIGZpcnN0 IHRva2VuIG9mIHRoZSBleHBhbnNpb24gKG9yIHRoZSAnKCcgb2YgYQotQEAgLTMwNTksNyArMzA1 Nyw4IEBAIGNyZWF0ZV9pc29fZGVmaW5pdGlvbiAoY3BwX3JlYWRlciAqcGZpbGUKLSAJICAgICBm dW5jdGlvbi1saWtlIG1hY3JvcywgYnV0IG5vdCBhdCB0aGUgZW5kLiAgKi8KLSAJICBpZiAoZm9s bG93aW5nX3Bhc3RlX29wKQotIAkgICAgewotLQkgICAgICBjcHBfZXJyb3IgKHBmaWxlLCBDUFBf RExfRVJST1IsIHBhc3RlX29wX2Vycm9yX21zZyk7Ci0rCSAgICAgIGNwcF9lcnJvciAocGZpbGUs IENQUF9ETF9FUlJPUiwKLSsJCQkgIicjIycgY2Fubm90IGFwcGVhciBhdCBlaXRoZXIgZW5kIG9m IGEgbWFjcm8gZXhwYW5zaW9uIik7Ci0gCSAgICAgIHJldHVybiBmYWxzZTsKLSAJICAgIH0KLSAJ ICBicmVhazsKLUBAIC0zMDcyLDcgKzMwNzEsOCBAQCBjcmVhdGVfaXNvX2RlZmluaXRpb24gKGNw cF9yZWFkZXIgKnBmaWxlCi0gCSAgICAgZnVuY3Rpb24tbGlrZSBtYWNyb3MsIGJ1dCBub3QgYXQg dGhlIGJlZ2lubmluZy4gICovCi0gCSAgaWYgKG1hY3JvLT5jb3VudCA9PSAxKQotIAkgICAgewot LQkgICAgICBjcHBfZXJyb3IgKHBmaWxlLCBDUFBfRExfRVJST1IsIHBhc3RlX29wX2Vycm9yX21z Zyk7Ci0rCSAgICAgIGNwcF9lcnJvciAocGZpbGUsIENQUF9ETF9FUlJPUiwKLSsJCQkgIicjIycg Y2Fubm90IGFwcGVhciBhdCBlaXRoZXIgZW5kIG9mIGEgbWFjcm8gZXhwYW5zaW9uIik7Ci0gCSAg ICAgIHJldHVybiBmYWxzZTsKLSAJICAgIH0KLSAKLS0tLSBsaWJjcHAvZXhwci5jLmpqCTIwMTUt MDEtMTQgMTE6MDE6MzQuMDAwMDAwMDAwICswMTAwCi0rKysgbGliY3BwL2V4cHIuYwkyMDE1LTAx LTE0IDE0OjM1OjUyLjg1MTAwMjM0NCArMDEwMAotQEAgLTY3MiwxNiArNjcyLDE3IEBAIGNwcF9j bGFzc2lmeV9udW1iZXIgKGNwcF9yZWFkZXIgKnBmaWxlLAotICAgICAgIGlmICgocmVzdWx0ICYg Q1BQX05fV0lEVEgpID09IENQUF9OX0xBUkdFCi0gCSAgJiYgQ1BQX09QVElPTiAocGZpbGUsIGNw cF93YXJuX2xvbmdfbG9uZykpCi0gICAgICAgICB7Ci0tICAgICAgICAgIGNvbnN0IGNoYXIgKm1l c3NhZ2UgPSBDUFBfT1BUSU9OIChwZmlsZSwgY3BsdXNwbHVzKSAKLS0JCQkJPyBOXygidXNlIG9m IEMrKzExIGxvbmcgbG9uZyBpbnRlZ2VyIGNvbnN0YW50IikKLS0JCSAgICAgICAgICAgICAgICA6 IE5fKCJ1c2Ugb2YgQzk5IGxvbmcgbG9uZyBpbnRlZ2VyIGNvbnN0YW50Iik7Ci0tCi0gCSAgaWYg KENQUF9PUFRJT04gKHBmaWxlLCBjOTkpKQotICAgICAgICAgICAgIGNwcF93YXJuaW5nX3dpdGhf bGluZSAocGZpbGUsIENQUF9XX0xPTkdfTE9ORywgdmlydHVhbF9sb2NhdGlvbiwKLS0JCQkJICAg MCwgbWVzc2FnZSk7Ci0rCQkJCSAgIDAsIENQUF9PUFRJT04gKHBmaWxlLCBjcGx1c3BsdXMpCi0r CQkJCSAgICAgID8gTl8oInVzZSBvZiBDKysxMSBsb25nIGxvbmcgaW50ZWdlciBjb25zdGFudCIp Ci0rCQkJCSAgICAgIDogTl8oInVzZSBvZiBDOTkgbG9uZyBsb25nIGludGVnZXIgY29uc3RhbnQi KSk7Ci0gICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICBjcHBfcGVkd2FybmluZ193aXRoX2xp bmUgKHBmaWxlLCBDUFBfV19MT05HX0xPTkcsCi0tCQkJCSAgICAgIHZpcnR1YWxfbG9jYXRpb24s IDAsIG1lc3NhZ2UpOwotKwkJCQkgICAgICB2aXJ0dWFsX2xvY2F0aW9uLCAwLAotKwkJCQkgICAg ICBDUFBfT1BUSU9OIChwZmlsZSwgY3BsdXNwbHVzKQotKwkJCQkgICAgICA/IE5fKCJ1c2Ugb2Yg QysrMTEgbG9uZyBsb25nIGludGVnZXIgY29uc3RhbnQiKQotKwkJCQkgICAgICA6IE5fKCJ1c2Ug b2YgQzk5IGxvbmcgbG9uZyBpbnRlZ2VyIGNvbnN0YW50IikpOwotICAgICAgICAgfQotIAotICAg ICAgIHJlc3VsdCB8PSBDUFBfTl9JTlRFR0VSOwoKZGlmZiAtLWdpdCBhL2djYzUtaTM4Ni1saWJn b21wLnBhdGNoIGIvZ2NjNS1pMzg2LWxpYmdvbXAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDUyMDU2MWUuLjAwMDAwMDAKLS0tIGEvZ2NjNS1pMzg2LWxpYmdvbXAucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0gbGliZ29tcC9jb25maWd1cmUudGd0 LmpqCTIwMDgtMDEtMTAgMjA6NTM6NDguMDAwMDAwMDAwICswMTAwCi0rKysgbGliZ29tcC9jb25m aWd1cmUudGd0CTIwMDgtMDMtMjcgMTI6NDQ6NTEuMDAwMDAwMDAwICswMTAwCi1AQCAtNjcsNyAr NjcsNyBAQCBpZiB0ZXN0ICRlbmFibGVfbGludXhfZnV0ZXggPSB5ZXM7IHRoZW4KLSAJICAgIDs7 Ci0gCSAgKikKLSAJICAgIGlmIHRlc3QgLXogIiR3aXRoX2FyY2giOyB0aGVuCi0tCSAgICAgIFhD RkxBR1M9IiR7WENGTEFHU30gLW1hcmNoPWk0ODYgLW10dW5lPSR7dGFyZ2V0X2NwdX0iCi0rCSAg ICAgIFhDRkxBR1M9IiR7WENGTEFHU30gLW1hcmNoPWk0ODYgLW10dW5lPWdlbmVyaWMiCi0gCSAg ICBmaQotIAllc2FjCi0gCTs7CgpkaWZmIC0tZ2l0IGEvZ2NjNS1pc2wtZGwucGF0Y2ggYi9nY2M1 LWlzbC1kbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTMyMmNkMi4uMDAw MDAwMAotLS0gYS9nY2M1LWlzbC1kbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU3MiArMCww IEBACi0tLS0gZ2NjL01ha2VmaWxlLmluLmpqCTIwMTUtMDYtMDYgMTA6MDA6MjUuMDAwMDAwMDAw ICswMjAwCi0rKysgZ2NjL01ha2VmaWxlLmluCTIwMTUtMTEtMDQgMTQ6NTY6MDIuNjQzNTM2NDM3 ICswMTAwCi1AQCAtMTAxMyw3ICsxMDEzLDcgQEAgQlVJTERfTElCREVQUz0gJChCVUlMRF9MSUJJ QkVSVFkpCi0gIyBhbmQgdGhlIHN5c3RlbSdzIGluc3RhbGxlZCBsaWJyYXJpZXMuCi0gTElCUyA9 IEBMSUJTQCBsaWJjb21tb24uYSAkKENQUExJQikgJChMSUJJTlRMKSAkKExJQklDT05WKSAkKExJ QkJBQ0tUUkFDRSkgXAotIAkkKExJQklCRVJUWSkgJChMSUJERUNOVU1CRVIpICQoSE9TVF9MSUJT KQotLUJBQ0tFTkRMSUJTID0gJChJU0xMSUJTKSAkKEdNUExJQlMpICQoUExVR0lOTElCUykgJChI T1NUX0xJQlMpIFwKLStCQUNLRU5ETElCUyA9ICQoaWYgJChJU0xMSUJTKSwtbGRsKSAkKEdNUExJ QlMpICQoUExVR0lOTElCUykgJChIT1NUX0xJQlMpIFwKLSAJJChaTElCKQotICMgQW55IHN5c3Rl bSBsaWJyYXJpZXMgbmVlZGVkIGp1c3QgZm9yIEdOQVQuCi0gU1lTTElCUyA9IEBHTkFUX0xJQkVY Q0AKLUBAIC0yMDU4LDYgKzIwNTgsMTUgQEAgJChvdXRfb2JqZWN0X2ZpbGUpOiAkKG91dF9maWxl KQotICQoY29tbW9uX291dF9vYmplY3RfZmlsZSk6ICQoY29tbW9uX291dF9maWxlKQotIAkkKENP TVBJTEUpICQ8Ci0gCSQoUE9TVENPTVBJTEUpCi0rCi0rZ3JhcGhpdGUlLm8gOiBcCi0rICBBTExf Q0ZMQUdTIDo9IC1PICQoZmlsdGVyLW91dCAtZmtlZXAtaW5saW5lLWZ1bmN0aW9ucywgJChBTExf Q0ZMQUdTKSkKLStncmFwaGl0ZS5vIDogXAotKyAgQUxMX0NGTEFHUyA6PSAtTyAkKGZpbHRlci1v dXQgLWZrZWVwLWlubGluZS1mdW5jdGlvbnMsICQoQUxMX0NGTEFHUykpCi0rZ3JhcGhpdGUlLm8g OiBcCi0rICBBTExfQ1hYRkxBR1MgOj0gLU8gJChmaWx0ZXItb3V0IC1ma2VlcC1pbmxpbmUtZnVu Y3Rpb25zLCAkKEFMTF9DWFhGTEFHUykpCi0rZ3JhcGhpdGUubyA6IFwKLSsgIEFMTF9DWFhGTEFH UyA6PSAtTyAkKGZpbHRlci1vdXQgLWZrZWVwLWlubGluZS1mdW5jdGlvbnMsICQoQUxMX0NYWEZM QUdTKSkKLSAjDAotICMgR2VuZXJhdGUgaGVhZGVyIGFuZCBzb3VyY2UgZmlsZXMgZnJvbSB0aGUg bWFjaGluZSBkZXNjcmlwdGlvbiwKLSAjIGFuZCBjb21waWxlIHRoZW0uCi0tLS0gZ2NjL2dyYXBo aXRlLXBvbHkuaC5qagkyMDE1LTExLTA0IDE0OjE1OjM2LjAwMDAwMDAwMCArMDEwMAotKysrIGdj Yy9ncmFwaGl0ZS1wb2x5LmgJMjAxNS0xMS0wNCAxNDo1OTo0Ni4wNjYzNzU4NDQgKzAxMDAKLUBA IC0yMiw2ICsyMiw0ODkgQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4K LSAjaWZuZGVmIEdDQ19HUkFQSElURV9QT0xZX0gKLSAjZGVmaW5lIEdDQ19HUkFQSElURV9QT0xZ X0gKLSAKLSsjaW5jbHVkZSA8aXNsL2FmZi5oPgotKyNpbmNsdWRlIDxpc2wvc2NoZWR1bGUuaD4K LSsjaW5jbHVkZSA8aXNsL2lscC5oPgotKyNpbmNsdWRlIDxpc2wvZmxvdy5oPgotKyNpbmNsdWRl IDxpc2wvb3B0aW9ucy5oPgotKyNpbmNsdWRlIDxpc2wvYXN0Lmg+Ci0rI2luY2x1ZGUgPGlzbC9h c3RfYnVpbGQuaD4KLSsjaW5jbHVkZSA8aXNsL3ZhbF9nbXAuaD4KLSsjaW5jbHVkZSA8aXNsL2Nv bnN0cmFpbnQuaD4KLSsjaW5jbHVkZSA8ZGxmY24uaD4KLSsjaWZkZWYgSEFWRV9JU0xfU0NIRURf Q09OU1RSQUlOVFNfQ09NUFVURV9TQ0hFRFVMRQotKyNkZWZpbmUgRFlOU1lNX1pFUk9fRElTVEFO Q0UgRFlOU1lNIChpc2xfYmFuZF9tZW1iZXJfaXNfY29pbmNpZGVudCkKLSsjZWxzZQotKyNkZWZp bmUgRFlOU1lNX1pFUk9fRElTVEFOQ0UgRFlOU1lNIChpc2xfYmFuZF9tZW1iZXJfaXNfemVyb19k aXN0YW5jZSkKLSsjZW5kaWYKLSsjaWZkZWYgSEFWRV9JU0xfT1BUSU9OU19TRVRfU0NIRURVTEVf U0VSSUFMSVpFX1NDQ1MKLSsjZGVmaW5lIERZTlNZTV9TQ0hFRFVMRV9GVVNFIERZTlNZTSAoaXNs X29wdGlvbnNfc2V0X3NjaGVkdWxlX3NlcmlhbGl6ZV9zY2NzKQotKyNlbHNlCi0rI2RlZmluZSBE WU5TWU1fU0NIRURVTEVfRlVTRSBEWU5TWU0gKGlzbF9vcHRpb25zX3NldF9zY2hlZHVsZV9mdXNl KQotKyNlbmRpZgotKwotKyNkZWZpbmUgRFlOU1lNUyBcCi0rICBEWU5TWU0gKGlzbF9hZmZfYWRk X2NvZWZmaWNpZW50X3NpKTsgXAotKyAgRFlOU1lNIChpc2xfYWZmX2ZyZWUpOyBcCi0rICBEWU5T WU0gKGlzbF9hZmZfZ2V0X3NwYWNlKTsgXAotKyAgRFlOU1lNIChpc2xfYWZmX3NldF9jb2VmZmlj aWVudF9zaSk7IFwKLSsgIERZTlNZTSAoaXNsX2FmZl9zZXRfY29uc3RhbnRfc2kpOyBcCi0rICBE WU5TWU0gKGlzbF9hZmZfemVyb19vbl9kb21haW4pOyBcCi0rICBEWU5TWU0gKGlzbF9iYW5kX2Zy ZWUpOyBcCi0rICBEWU5TWU0gKGlzbF9iYW5kX2dldF9jaGlsZHJlbik7IFwKLSsgIERZTlNZTSAo aXNsX2JhbmRfZ2V0X3BhcnRpYWxfc2NoZWR1bGUpOyBcCi0rICBEWU5TWU0gKGlzbF9iYW5kX2hh c19jaGlsZHJlbik7IFwKLSsgIERZTlNZTSAoaXNsX2JhbmRfbGlzdF9mcmVlKTsgXAotKyAgRFlO U1lNIChpc2xfYmFuZF9saXN0X2dldF9iYW5kKTsgXAotKyAgRFlOU1lNIChpc2xfYmFuZF9saXN0 X2dldF9jdHgpOyBcCi0rICBEWU5TWU0gKGlzbF9iYW5kX2xpc3Rfbl9iYW5kKTsgXAotKyAgRFlO U1lNX1pFUk9fRElTVEFOQ0U7IFwKLSsgIERZTlNZTSAoaXNsX2JhbmRfbl9tZW1iZXIpOyBcCi0r ICBEWU5TWU0gKGlzbF9iYXNpY19tYXBfYWRkX2NvbnN0cmFpbnQpOyBcCi0rICBEWU5TWU0gKGlz bF9iYXNpY19tYXBfcHJvamVjdF9vdXQpOyBcCi0rICBEWU5TWU0gKGlzbF9iYXNpY19tYXBfdW5p dmVyc2UpOyBcCi0rICBEWU5TWU0gKGlzbF9jb25zdHJhaW50X3NldF9jb2VmZmljaWVudF9zaSk7 IFwKLSsgIERZTlNZTSAoaXNsX2NvbnN0cmFpbnRfc2V0X2NvbnN0YW50X3NpKTsgXAotKyAgRFlO U1lNIChpc2xfY3R4X2FsbG9jKTsgXAotKyAgRFlOU1lNIChpc2xfY3R4X2ZyZWUpOyBcCi0rICBE WU5TWU0gKGlzbF9lcXVhbGl0eV9hbGxvYyk7IFwKLSsgIERZTlNZTSAoaXNsX2lkX2FsbG9jKTsg XAotKyAgRFlOU1lNIChpc2xfaWRfY29weSk7IFwKLSsgIERZTlNZTSAoaXNsX2lkX2ZyZWUpOyBc Ci0rICBEWU5TWU0gKGlzbF9pbmVxdWFsaXR5X2FsbG9jKTsgXAotKyAgRFlOU1lNIChpc2xfbG9j YWxfc3BhY2VfY29weSk7IFwKLSsgIERZTlNZTSAoaXNsX2xvY2FsX3NwYWNlX2ZyZWUpOyBcCi0r ICBEWU5TWU0gKGlzbF9sb2NhbF9zcGFjZV9mcm9tX3NwYWNlKTsgXAotKyAgRFlOU1lNIChpc2xf bG9jYWxfc3BhY2VfcmFuZ2UpOyBcCi0rICBEWU5TWU0gKGlzbF9tYXBfYWRkX2NvbnN0cmFpbnQp OyBcCi0rICBEWU5TWU0gKGlzbF9tYXBfYWRkX2RpbXMpOyBcCi0rICBEWU5TWU0gKGlzbF9tYXBf YWxpZ25fcGFyYW1zKTsgXAotKyAgRFlOU1lNIChpc2xfbWFwX2FwcGx5X3JhbmdlKTsgXAotKyAg RFlOU1lNIChpc2xfbWFwX2NvcHkpOyBcCi0rICBEWU5TWU0gKGlzbF9tYXBfZGltKTsgXAotKyAg RFlOU1lNIChpc2xfbWFwX2R1bXApOyBcCi0rICBEWU5TWU0gKGlzbF9tYXBfZXF1YXRlKTsgXAot KyAgRFlOU1lNIChpc2xfbWFwX2ZpeF9zaSk7IFwKLSsgIERZTlNZTSAoaXNsX21hcF9mbGF0X3By b2R1Y3QpOyBcCi0rICBEWU5TWU0gKGlzbF9tYXBfZmxhdF9yYW5nZV9wcm9kdWN0KTsgXAotKyAg RFlOU1lNIChpc2xfbWFwX2ZyZWUpOyBcCi0rICBEWU5TWU0gKGlzbF9tYXBfZnJvbV9iYXNpY19t YXApOyBcCi0rICBEWU5TWU0gKGlzbF9tYXBfZnJvbV9wd19hZmYpOyBcCi0rICBEWU5TWU0gKGlz bF9tYXBfZnJvbV91bmlvbl9tYXApOyBcCi0rICBEWU5TWU0gKGlzbF9tYXBfZ2V0X2N0eCk7IFwK LSsgIERZTlNZTSAoaXNsX21hcF9nZXRfc3BhY2UpOyBcCi0rICBEWU5TWU0gKGlzbF9tYXBfZ2V0 X3R1cGxlX2lkKTsgXAotKyAgRFlOU1lNIChpc2xfbWFwX2luc2VydF9kaW1zKTsgXAotKyAgRFlO U1lNIChpc2xfbWFwX2ludGVyc2VjdCk7IFwKLSsgIERZTlNZTSAoaXNsX21hcF9pbnRlcnNlY3Rf ZG9tYWluKTsgXAotKyAgRFlOU1lNIChpc2xfbWFwX2ludGVyc2VjdF9yYW5nZSk7IFwKLSsgIERZ TlNZTSAoaXNsX21hcF9pc19lbXB0eSk7IFwKLSsgIERZTlNZTSAoaXNsX21hcF9sZXhfZ2UpOyBc Ci0rICBEWU5TWU0gKGlzbF9tYXBfbGV4X2xlKTsgXAotKyAgRFlOU1lNIChpc2xfbWFwX25fb3V0 KTsgXAotKyAgRFlOU1lNIChpc2xfbWFwX3JhbmdlKTsgXAotKyAgRFlOU1lNIChpc2xfbWFwX3Nl dF90dXBsZV9pZCk7IFwKLSsgIERZTlNZTSAoaXNsX21hcF91bml2ZXJzZSk7IFwKLSsgIERZTlNZ TSAoaXNsX29wdGlvbnNfc2V0X29uX2Vycm9yKTsgXAotKyAgRFlOU1lNX1NDSEVEVUxFX0ZVU0U7 IFwKLSsgIERZTlNZTSAoaXNsX29wdGlvbnNfc2V0X3NjaGVkdWxlX21heF9jb25zdGFudF90ZXJt KTsgXAotKyAgRFlOU1lNIChpc2xfb3B0aW9uc19zZXRfc2NoZWR1bGVfbWF4aW1pemVfYmFuZF9k ZXB0aCk7IFwKLSsgIERZTlNZTSAoaXNsX3ByaW50ZXJfZnJlZSk7IFwKLSsgIERZTlNZTSAoaXNs X3ByaW50ZXJfcHJpbnRfYWZmKTsgXAotKyAgRFlOU1lNIChpc2xfcHJpbnRlcl9wcmludF9jb25z dHJhaW50KTsgXAotKyAgRFlOU1lNIChpc2xfcHJpbnRlcl9wcmludF9tYXApOyBcCi0rICBEWU5T WU0gKGlzbF9wcmludGVyX3ByaW50X3NldCk7IFwKLSsgIERZTlNZTSAoaXNsX3ByaW50ZXJfdG9f ZmlsZSk7IFwKLSsgIERZTlNZTSAoaXNsX3B3X2FmZl9hZGQpOyBcCi0rICBEWU5TWU0gKGlzbF9w d19hZmZfYWxsb2MpOyBcCi0rICBEWU5TWU0gKGlzbF9wd19hZmZfY29weSk7IFwKLSsgIERZTlNZ TSAoaXNsX3B3X2FmZl9lcV9zZXQpOyBcCi0rICBEWU5TWU0gKGlzbF9wd19hZmZfZnJlZSk7IFwK LSsgIERZTlNZTSAoaXNsX3B3X2FmZl9mcm9tX2FmZik7IFwKLSsgIERZTlNZTSAoaXNsX3B3X2Fm Zl9nZV9zZXQpOyBcCi0rICBEWU5TWU0gKGlzbF9wd19hZmZfZ3Rfc2V0KTsgXAotKyAgRFlOU1lN IChpc2xfcHdfYWZmX2lzX2NzdCk7IFwKLSsgIERZTlNZTSAoaXNsX3B3X2FmZl9sZV9zZXQpOyBc Ci0rICBEWU5TWU0gKGlzbF9wd19hZmZfbHRfc2V0KTsgXAotKyAgRFlOU1lNIChpc2xfcHdfYWZm X211bCk7IFwKLSsgIERZTlNZTSAoaXNsX3B3X2FmZl9uZV9zZXQpOyBcCi0rICBEWU5TWU0gKGlz bF9wd19hZmZfbm9ubmVnX3NldCk7IFwKLSsgIERZTlNZTSAoaXNsX3B3X2FmZl9zZXRfdHVwbGVf aWQpOyBcCi0rICBEWU5TWU0gKGlzbF9wd19hZmZfc3ViKTsgXAotKyAgRFlOU1lNIChpc2xfcHdf YWZmX3plcm9fc2V0KTsgXAotKyAgRFlOU1lNIChpc2xfc2NoZWR1bGVfZnJlZSk7IFwKLSsgIERZ TlNZTSAoaXNsX3NjaGVkdWxlX2dldF9iYW5kX2ZvcmVzdCk7IFwKLSsgIERZTlNZTSAoaXNsX3Nl dF9hZGRfY29uc3RyYWludCk7IFwKLSsgIERZTlNZTSAoaXNsX3NldF9hZGRfZGltcyk7IFwKLSsg IERZTlNZTSAoaXNsX3NldF9hcHBseSk7IFwKLSsgIERZTlNZTSAoaXNsX3NldF9jb2FsZXNjZSk7 IFwKLSsgIERZTlNZTSAoaXNsX3NldF9jb3B5KTsgXAotKyAgRFlOU1lNIChpc2xfc2V0X2RpbSk7 IFwKLSsgIERZTlNZTSAoaXNsX3NldF9maXhfc2kpOyBcCi0rICBEWU5TWU0gKGlzbF9zZXRfZnJl ZSk7IFwKLSsgIERZTlNZTSAoaXNsX3NldF9nZXRfc3BhY2UpOyBcCi0rICBEWU5TWU0gKGlzbF9z ZXRfZ2V0X3R1cGxlX2lkKTsgXAotKyAgRFlOU1lNIChpc2xfc2V0X2ludGVyc2VjdCk7IFwKLSsg IERZTlNZTSAoaXNsX3NldF9pc19lbXB0eSk7IFwKLSsgIERZTlNZTSAoaXNsX3NldF9uX2RpbSk7 IFwKLSsgIERZTlNZTSAoaXNsX3NldF9uYXRfdW5pdmVyc2UpOyBcCi0rICBEWU5TWU0gKGlzbF9z ZXRfcHJvamVjdF9vdXQpOyBcCi0rICBEWU5TWU0gKGlzbF9zZXRfc2V0X3R1cGxlX2lkKTsgXAot KyAgRFlOU1lNIChpc2xfc2V0X3VuaXZlcnNlKTsgXAotKyAgRFlOU1lNIChpc2xfc3BhY2VfYWRk X2RpbXMpOyBcCi0rICBEWU5TWU0gKGlzbF9zcGFjZV9hbGxvYyk7IFwKLSsgIERZTlNZTSAoaXNs X3NwYWNlX2NvcHkpOyBcCi0rICBEWU5TWU0gKGlzbF9zcGFjZV9kaW0pOyBcCi0rICBEWU5TWU0g KGlzbF9zcGFjZV9kb21haW4pOyBcCi0rICBEWU5TWU0gKGlzbF9zcGFjZV9maW5kX2RpbV9ieV9p ZCk7IFwKLSsgIERZTlNZTSAoaXNsX3NwYWNlX2ZyZWUpOyBcCi0rICBEWU5TWU0gKGlzbF9zcGFj ZV9mcm9tX2RvbWFpbik7IFwKLSsgIERZTlNZTSAoaXNsX3NwYWNlX2dldF90dXBsZV9pZCk7IFwK LSsgIERZTlNZTSAoaXNsX3NwYWNlX3BhcmFtc19hbGxvYyk7IFwKLSsgIERZTlNZTSAoaXNsX3Nw YWNlX3JhbmdlKTsgXAotKyAgRFlOU1lNIChpc2xfc3BhY2Vfc2V0X2FsbG9jKTsgXAotKyAgRFlO U1lNIChpc2xfc3BhY2Vfc2V0X2RpbV9pZCk7IFwKLSsgIERZTlNZTSAoaXNsX3NwYWNlX3NldF90 dXBsZV9pZCk7IFwKLSsgIERZTlNZTSAoaXNsX3VuaW9uX21hcF9hZGRfbWFwKTsgXAotKyAgRFlO U1lNIChpc2xfdW5pb25fbWFwX2FsaWduX3BhcmFtcyk7IFwKLSsgIERZTlNZTSAoaXNsX3VuaW9u X21hcF9hcHBseV9kb21haW4pOyBcCi0rICBEWU5TWU0gKGlzbF91bmlvbl9tYXBfYXBwbHlfcmFu Z2UpOyBcCi0rICBEWU5TWU0gKGlzbF91bmlvbl9tYXBfY29tcHV0ZV9mbG93KTsgXAotKyAgRFlO U1lNIChpc2xfdW5pb25fbWFwX2NvcHkpOyBcCi0rICBEWU5TWU0gKGlzbF91bmlvbl9tYXBfZW1w dHkpOyBcCi0rICBEWU5TWU0gKGlzbF91bmlvbl9tYXBfZmxhdF9yYW5nZV9wcm9kdWN0KTsgXAot KyAgRFlOU1lNIChpc2xfdW5pb25fbWFwX2ZvcmVhY2hfbWFwKTsgXAotKyAgRFlOU1lNIChpc2xf dW5pb25fbWFwX2ZyZWUpOyBcCi0rICBEWU5TWU0gKGlzbF91bmlvbl9tYXBfZnJvbV9tYXApOyBc Ci0rICBEWU5TWU0gKGlzbF91bmlvbl9tYXBfZ2V0X2N0eCk7IFwKLSsgIERZTlNZTSAoaXNsX3Vu aW9uX21hcF9nZXRfc3BhY2UpOyBcCi0rICBEWU5TWU0gKGlzbF91bmlvbl9tYXBfZ2lzdF9kb21h aW4pOyBcCi0rICBEWU5TWU0gKGlzbF91bmlvbl9tYXBfZ2lzdF9yYW5nZSk7IFwKLSsgIERZTlNZ TSAoaXNsX3VuaW9uX21hcF9pbnRlcnNlY3RfZG9tYWluKTsgXAotKyAgRFlOU1lNIChpc2xfdW5p b25fbWFwX2lzX2VtcHR5KTsgXAotKyAgRFlOU1lNIChpc2xfdW5pb25fbWFwX3N1YnRyYWN0KTsg XAotKyAgRFlOU1lNIChpc2xfdW5pb25fbWFwX3VuaW9uKTsgXAotKyAgRFlOU1lNIChpc2xfdW5p b25fc2V0X2FkZF9zZXQpOyBcCi0rICBEWU5TWU0gKGlzbF91bmlvbl9zZXRfY29tcHV0ZV9zY2hl ZHVsZSk7IFwKLSsgIERZTlNZTSAoaXNsX3VuaW9uX3NldF9jb3B5KTsgXAotKyAgRFlOU1lNIChp c2xfdW5pb25fc2V0X2VtcHR5KTsgXAotKyAgRFlOU1lNIChpc2xfdW5pb25fc2V0X2Zyb21fc2V0 KTsgXAotKyAgRFlOU1lNIChpc2xfYWZmX2FkZF9jb25zdGFudF92YWwpOyBcCi0rICBEWU5TWU0g KGlzbF9hZmZfZ2V0X2NvZWZmaWNpZW50X3ZhbCk7IFwKLSsgIERZTlNZTSAoaXNsX2FmZl9nZXRf Y3R4KTsgXAotKyAgRFlOU1lNIChpc2xfYWZmX21vZF92YWwpOyBcCi0rICBEWU5TWU0gKGlzbF9h c3RfYnVpbGRfYXN0X2Zyb21fc2NoZWR1bGUpOyBcCi0rICBEWU5TWU0gKGlzbF9hc3RfYnVpbGRf ZnJlZSk7IFwKLSsgIERZTlNZTSAoaXNsX2FzdF9idWlsZF9mcm9tX2NvbnRleHQpOyBcCi0rICBE WU5TWU0gKGlzbF9hc3RfYnVpbGRfZ2V0X2N0eCk7IFwKLSsgIERZTlNZTSAoaXNsX2FzdF9idWls ZF9nZXRfc2NoZWR1bGUpOyBcCi0rICBEWU5TWU0gKGlzbF9hc3RfYnVpbGRfZ2V0X3NjaGVkdWxl X3NwYWNlKTsgXAotKyAgRFlOU1lNIChpc2xfYXN0X2J1aWxkX3NldF9iZWZvcmVfZWFjaF9mb3Ip OyBcCi0rICBEWU5TWU0gKGlzbF9hc3RfYnVpbGRfc2V0X29wdGlvbnMpOyBcCi0rICBEWU5TWU0g KGlzbF9hc3RfZXhwcl9mcmVlKTsgXAotKyAgRFlOU1lNIChpc2xfYXN0X2V4cHJfZnJvbV92YWwp OyBcCi0rICBEWU5TWU0gKGlzbF9hc3RfZXhwcl9nZXRfY3R4KTsgXAotKyAgRFlOU1lNIChpc2xf YXN0X2V4cHJfZ2V0X2lkKTsgXAotKyAgRFlOU1lNIChpc2xfYXN0X2V4cHJfZ2V0X29wX2FyZyk7 IFwKLSsgIERZTlNZTSAoaXNsX2FzdF9leHByX2dldF9vcF9uX2FyZyk7IFwKLSsgIERZTlNZTSAo aXNsX2FzdF9leHByX2dldF9vcF90eXBlKTsgXAotKyAgRFlOU1lNIChpc2xfYXN0X2V4cHJfZ2V0 X3R5cGUpOyBcCi0rICBEWU5TWU0gKGlzbF9hc3RfZXhwcl9nZXRfdmFsKTsgXAotKyAgRFlOU1lN IChpc2xfYXN0X2V4cHJfc3ViKTsgXAotKyAgRFlOU1lNIChpc2xfYXN0X25vZGVfYmxvY2tfZ2V0 X2NoaWxkcmVuKTsgXAotKyAgRFlOU1lNIChpc2xfYXN0X25vZGVfZm9yX2dldF9ib2R5KTsgXAot KyAgRFlOU1lNIChpc2xfYXN0X25vZGVfZm9yX2dldF9jb25kKTsgXAotKyAgRFlOU1lNIChpc2xf YXN0X25vZGVfZm9yX2dldF9pbmMpOyBcCi0rICBEWU5TWU0gKGlzbF9hc3Rfbm9kZV9mb3JfZ2V0 X2luaXQpOyBcCi0rICBEWU5TWU0gKGlzbF9hc3Rfbm9kZV9mb3JfZ2V0X2l0ZXJhdG9yKTsgXAot KyAgRFlOU1lNIChpc2xfYXN0X25vZGVfZnJlZSk7IFwKLSsgIERZTlNZTSAoaXNsX2FzdF9ub2Rl X2dldF9hbm5vdGF0aW9uKTsgXAotKyAgRFlOU1lNIChpc2xfYXN0X25vZGVfZ2V0X3R5cGUpOyBc Ci0rICBEWU5TWU0gKGlzbF9hc3Rfbm9kZV9pZl9nZXRfY29uZCk7IFwKLSsgIERZTlNZTSAoaXNs X2FzdF9ub2RlX2lmX2dldF9lbHNlKTsgXAotKyAgRFlOU1lNIChpc2xfYXN0X25vZGVfaWZfZ2V0 X3RoZW4pOyBcCi0rICBEWU5TWU0gKGlzbF9hc3Rfbm9kZV9saXN0X2ZyZWUpOyBcCi0rICBEWU5T WU0gKGlzbF9hc3Rfbm9kZV9saXN0X2dldF9hc3Rfbm9kZSk7IFwKLSsgIERZTlNZTSAoaXNsX2Fz dF9ub2RlX2xpc3Rfbl9hc3Rfbm9kZSk7IFwKLSsgIERZTlNZTSAoaXNsX2FzdF9ub2RlX3VzZXJf Z2V0X2V4cHIpOyBcCi0rICBEWU5TWU0gKGlzbF9jb25zdHJhaW50X3NldF9jb2VmZmljaWVudF92 YWwpOyBcCi0rICBEWU5TWU0gKGlzbF9jb25zdHJhaW50X3NldF9jb25zdGFudF92YWwpOyBcCi0r ICBEWU5TWU0gKGlzbF9pZF9nZXRfdXNlcik7IFwKLSsgIERZTlNZTSAoaXNsX2xvY2FsX3NwYWNl X2dldF9jdHgpOyBcCi0rICBEWU5TWU0gKGlzbF9tYXBfZml4X3ZhbCk7IFwKLSsgIERZTlNZTSAo aXNsX29wdGlvbnNfc2V0X2FzdF9idWlsZF9hdG9taWNfdXBwZXJfYm91bmQpOyBcCi0rICBEWU5T WU0gKGlzbF9wcmludGVyX3ByaW50X2FzdF9ub2RlKTsgXAotKyAgRFlOU1lNIChpc2xfcHJpbnRl cl9wcmludF9zdHIpOyBcCi0rICBEWU5TWU0gKGlzbF9wcmludGVyX3NldF9vdXRwdXRfZm9ybWF0 KTsgXAotKyAgRFlOU1lNIChpc2xfcHdfYWZmX21vZF92YWwpOyBcCi0rICBEWU5TWU0gKGlzbF9z Y2hlZHVsZV9jb25zdHJhaW50c19jb21wdXRlX3NjaGVkdWxlKTsgXAotKyAgRFlOU1lNIChpc2xf c2NoZWR1bGVfY29uc3RyYWludHNfb25fZG9tYWluKTsgXAotKyAgRFlOU1lNIChpc2xfc2NoZWR1 bGVfY29uc3RyYWludHNfc2V0X2NvaW5jaWRlbmNlKTsgXAotKyAgRFlOU1lNIChpc2xfc2NoZWR1 bGVfY29uc3RyYWludHNfc2V0X3Byb3hpbWl0eSk7IFwKLSsgIERZTlNZTSAoaXNsX3NjaGVkdWxl X2NvbnN0cmFpbnRzX3NldF92YWxpZGl0eSk7IFwKLSsgIERZTlNZTSAoaXNsX3NldF9nZXRfZGlt X2lkKTsgXAotKyAgRFlOU1lNIChpc2xfc2V0X21heF92YWwpOyBcCi0rICBEWU5TWU0gKGlzbF9z ZXRfbWluX3ZhbCk7IFwKLSsgIERZTlNZTSAoaXNsX3NldF9wYXJhbXMpOyBcCi0rICBEWU5TWU0g KGlzbF9zcGFjZV9hbGlnbl9wYXJhbXMpOyBcCi0rICBEWU5TWU0gKGlzbF9zcGFjZV9tYXBfZnJv bV9kb21haW5fYW5kX3JhbmdlKTsgXAotKyAgRFlOU1lNIChpc2xfc3BhY2Vfc2V0X3R1cGxlX25h bWUpOyBcCi0rICBEWU5TWU0gKGlzbF9zcGFjZV93cmFwKTsgXAotKyAgRFlOU1lNIChpc2xfdW5p b25fbWFwX2Zyb21fZG9tYWluX2FuZF9yYW5nZSk7IFwKLSsgIERZTlNZTSAoaXNsX3VuaW9uX21h cF9yYW5nZSk7IFwKLSsgIERZTlNZTSAoaXNsX3VuaW9uX3NldF91bmlvbik7IFwKLSsgIERZTlNZ TSAoaXNsX3VuaW9uX3NldF91bml2ZXJzZSk7IFwKLSsgIERZTlNZTSAoaXNsX3ZhbF8yZXhwKTsg XAotKyAgRFlOU1lNIChpc2xfdmFsX2FkZF91aSk7IFwKLSsgIERZTlNZTSAoaXNsX3ZhbF9jb3B5 KTsgXAotKyAgRFlOU1lNIChpc2xfdmFsX2ZyZWUpOyBcCi0rICBEWU5TWU0gKGlzbF92YWxfZ2V0 X251bV9nbXApOyBcCi0rICBEWU5TWU0gKGlzbF92YWxfaW50X2Zyb21fZ21wKTsgXAotKyAgRFlO U1lNIChpc2xfdmFsX2ludF9mcm9tX3NpKTsgXAotKyAgRFlOU1lNIChpc2xfdmFsX2ludF9mcm9t X3VpKTsgXAotKyAgRFlOU1lNIChpc2xfdmFsX211bCk7IFwKLSsgIERZTlNZTSAoaXNsX3ZhbF9u ZWcpOyBcCi0rICBEWU5TWU0gKGlzbF92YWxfc3ViKTsKLSsKLStleHRlcm4gc3RydWN0IGlzbF9w b2ludGVyc19zX18KLSt7Ci0rICBib29sIGluaXRlZDsKLSsgIHZvaWQgKmg7Ci0rI2RlZmluZSBE WU5TWU0oeCkgX190eXBlb2YgKHgpICpwXyMjeAotKyAgRFlOU1lNUwotKyN1bmRlZiBEWU5TWU0K LSt9IGlzbF9wb2ludGVyc19fOwotKwotKyNkZWZpbmUgaXNsX2FmZl9hZGRfY29lZmZpY2llbnRf c2kgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hZmZfYWRkX2NvZWZmaWNpZW50X3NpKQotKyNkZWZp bmUgaXNsX2FmZl9mcmVlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfYWZmX2ZyZWUpCi0rI2RlZmlu ZSBpc2xfYWZmX2dldF9zcGFjZSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2FmZl9nZXRfc3BhY2Up Ci0rI2RlZmluZSBpc2xfYWZmX3NldF9jb2VmZmljaWVudF9zaSAoKmlzbF9wb2ludGVyc19fLnBf aXNsX2FmZl9zZXRfY29lZmZpY2llbnRfc2kpCi0rI2RlZmluZSBpc2xfYWZmX3NldF9jb25zdGFu dF9zaSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2FmZl9zZXRfY29uc3RhbnRfc2kpCi0rI2RlZmlu ZSBpc2xfYWZmX3plcm9fb25fZG9tYWluICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfYWZmX3plcm9f b25fZG9tYWluKQotKyNkZWZpbmUgaXNsX2JhbmRfZnJlZSAoKmlzbF9wb2ludGVyc19fLnBfaXNs X2JhbmRfZnJlZSkKLSsjZGVmaW5lIGlzbF9iYW5kX2dldF9jaGlsZHJlbiAoKmlzbF9wb2ludGVy c19fLnBfaXNsX2JhbmRfZ2V0X2NoaWxkcmVuKQotKyNkZWZpbmUgaXNsX2JhbmRfZ2V0X3BhcnRp YWxfc2NoZWR1bGUgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9iYW5kX2dldF9wYXJ0aWFsX3NjaGVk dWxlKQotKyNkZWZpbmUgaXNsX2JhbmRfaGFzX2NoaWxkcmVuICgqaXNsX3BvaW50ZXJzX18ucF9p c2xfYmFuZF9oYXNfY2hpbGRyZW4pCi0rI2RlZmluZSBpc2xfYmFuZF9saXN0X2ZyZWUgKCppc2xf cG9pbnRlcnNfXy5wX2lzbF9iYW5kX2xpc3RfZnJlZSkKLSsjZGVmaW5lIGlzbF9iYW5kX2xpc3Rf Z2V0X2JhbmQgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9iYW5kX2xpc3RfZ2V0X2JhbmQpCi0rI2Rl ZmluZSBpc2xfYmFuZF9saXN0X2dldF9jdHggKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9iYW5kX2xp c3RfZ2V0X2N0eCkKLSsjZGVmaW5lIGlzbF9iYW5kX2xpc3Rfbl9iYW5kICgqaXNsX3BvaW50ZXJz X18ucF9pc2xfYmFuZF9saXN0X25fYmFuZCkKLSsjaWZkZWYgSEFWRV9JU0xfU0NIRURfQ09OU1RS QUlOVFNfQ09NUFVURV9TQ0hFRFVMRQotKyNkZWZpbmUgaXNsX2JhbmRfbWVtYmVyX2lzX2NvaW5j aWRlbnQgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9iYW5kX21lbWJlcl9pc19jb2luY2lkZW50KQot KyNlbHNlCi0rI2RlZmluZSBpc2xfYmFuZF9tZW1iZXJfaXNfemVyb19kaXN0YW5jZSAoKmlzbF9w b2ludGVyc19fLnBfaXNsX2JhbmRfbWVtYmVyX2lzX3plcm9fZGlzdGFuY2UpCi0rI2VuZGlmCi0r I2RlZmluZSBpc2xfYmFuZF9uX21lbWJlciAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2JhbmRfbl9t ZW1iZXIpCi0rI2RlZmluZSBpc2xfYmFzaWNfbWFwX2FkZF9jb25zdHJhaW50ICgqaXNsX3BvaW50 ZXJzX18ucF9pc2xfYmFzaWNfbWFwX2FkZF9jb25zdHJhaW50KQotKyNkZWZpbmUgaXNsX2Jhc2lj X21hcF9wcm9qZWN0X291dCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2Jhc2ljX21hcF9wcm9qZWN0 X291dCkKLSsjZGVmaW5lIGlzbF9iYXNpY19tYXBfdW5pdmVyc2UgKCppc2xfcG9pbnRlcnNfXy5w X2lzbF9iYXNpY19tYXBfdW5pdmVyc2UpCi0rI2RlZmluZSBpc2xfY29uc3RyYWludF9zZXRfY29l ZmZpY2llbnRfc2kgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9jb25zdHJhaW50X3NldF9jb2VmZmlj aWVudF9zaSkKLSsjZGVmaW5lIGlzbF9jb25zdHJhaW50X3NldF9jb25zdGFudF9zaSAoKmlzbF9w b2ludGVyc19fLnBfaXNsX2NvbnN0cmFpbnRfc2V0X2NvbnN0YW50X3NpKQotKyNkZWZpbmUgaXNs X2N0eF9hbGxvYyAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2N0eF9hbGxvYykKLSsjZGVmaW5lIGlz bF9jdHhfZnJlZSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2N0eF9mcmVlKQotKyNkZWZpbmUgaXNs X2VxdWFsaXR5X2FsbG9jICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfZXF1YWxpdHlfYWxsb2MpCi0r I2RlZmluZSBpc2xfaWRfYWxsb2MgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9pZF9hbGxvYykKLSsj ZGVmaW5lIGlzbF9pZF9jb3B5ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfaWRfY29weSkKLSsjZGVm aW5lIGlzbF9pZF9mcmVlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfaWRfZnJlZSkKLSsjZGVmaW5l IGlzbF9pbmVxdWFsaXR5X2FsbG9jICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfaW5lcXVhbGl0eV9h bGxvYykKLSsjZGVmaW5lIGlzbF9sb2NhbF9zcGFjZV9jb3B5ICgqaXNsX3BvaW50ZXJzX18ucF9p c2xfbG9jYWxfc3BhY2VfY29weSkKLSsjZGVmaW5lIGlzbF9sb2NhbF9zcGFjZV9mcmVlICgqaXNs X3BvaW50ZXJzX18ucF9pc2xfbG9jYWxfc3BhY2VfZnJlZSkKLSsjZGVmaW5lIGlzbF9sb2NhbF9z cGFjZV9mcm9tX3NwYWNlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfbG9jYWxfc3BhY2VfZnJvbV9z cGFjZSkKLSsjZGVmaW5lIGlzbF9sb2NhbF9zcGFjZV9yYW5nZSAoKmlzbF9wb2ludGVyc19fLnBf aXNsX2xvY2FsX3NwYWNlX3JhbmdlKQotKyNkZWZpbmUgaXNsX21hcF9hZGRfY29uc3RyYWludCAo KmlzbF9wb2ludGVyc19fLnBfaXNsX21hcF9hZGRfY29uc3RyYWludCkKLSsjZGVmaW5lIGlzbF9t YXBfYWRkX2RpbXMgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9tYXBfYWRkX2RpbXMpCi0rI2RlZmlu ZSBpc2xfbWFwX2FsaWduX3BhcmFtcyAoKmlzbF9wb2ludGVyc19fLnBfaXNsX21hcF9hbGlnbl9w YXJhbXMpCi0rI2RlZmluZSBpc2xfbWFwX2FwcGx5X3JhbmdlICgqaXNsX3BvaW50ZXJzX18ucF9p c2xfbWFwX2FwcGx5X3JhbmdlKQotKyNkZWZpbmUgaXNsX21hcF9jb3B5ICgqaXNsX3BvaW50ZXJz X18ucF9pc2xfbWFwX2NvcHkpCi0rI2RlZmluZSBpc2xfbWFwX2RpbSAoKmlzbF9wb2ludGVyc19f LnBfaXNsX21hcF9kaW0pCi0rI2RlZmluZSBpc2xfbWFwX2R1bXAgKCppc2xfcG9pbnRlcnNfXy5w X2lzbF9tYXBfZHVtcCkKLSsjZGVmaW5lIGlzbF9tYXBfZXF1YXRlICgqaXNsX3BvaW50ZXJzX18u cF9pc2xfbWFwX2VxdWF0ZSkKLSsjZGVmaW5lIGlzbF9tYXBfZml4X3NpICgqaXNsX3BvaW50ZXJz X18ucF9pc2xfbWFwX2ZpeF9zaSkKLSsjZGVmaW5lIGlzbF9tYXBfZmxhdF9wcm9kdWN0ICgqaXNs X3BvaW50ZXJzX18ucF9pc2xfbWFwX2ZsYXRfcHJvZHVjdCkKLSsjZGVmaW5lIGlzbF9tYXBfZmxh dF9yYW5nZV9wcm9kdWN0ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfbWFwX2ZsYXRfcmFuZ2VfcHJv ZHVjdCkKLSsjZGVmaW5lIGlzbF9tYXBfZnJlZSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX21hcF9m cmVlKQotKyNkZWZpbmUgaXNsX21hcF9mcm9tX2Jhc2ljX21hcCAoKmlzbF9wb2ludGVyc19fLnBf aXNsX21hcF9mcm9tX2Jhc2ljX21hcCkKLSsjZGVmaW5lIGlzbF9tYXBfZnJvbV9wd19hZmYgKCpp c2xfcG9pbnRlcnNfXy5wX2lzbF9tYXBfZnJvbV9wd19hZmYpCi0rI2RlZmluZSBpc2xfbWFwX2Zy b21fdW5pb25fbWFwICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfbWFwX2Zyb21fdW5pb25fbWFwKQot KyNkZWZpbmUgaXNsX21hcF9nZXRfY3R4ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfbWFwX2dldF9j dHgpCi0rI2RlZmluZSBpc2xfbWFwX2dldF9zcGFjZSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX21h cF9nZXRfc3BhY2UpCi0rI2RlZmluZSBpc2xfbWFwX2dldF90dXBsZV9pZCAoKmlzbF9wb2ludGVy c19fLnBfaXNsX21hcF9nZXRfdHVwbGVfaWQpCi0rI2RlZmluZSBpc2xfbWFwX2luc2VydF9kaW1z ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfbWFwX2luc2VydF9kaW1zKQotKyNkZWZpbmUgaXNsX21h cF9pbnRlcnNlY3QgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9tYXBfaW50ZXJzZWN0KQotKyNkZWZp bmUgaXNsX21hcF9pbnRlcnNlY3RfZG9tYWluICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfbWFwX2lu dGVyc2VjdF9kb21haW4pCi0rI2RlZmluZSBpc2xfbWFwX2ludGVyc2VjdF9yYW5nZSAoKmlzbF9w b2ludGVyc19fLnBfaXNsX21hcF9pbnRlcnNlY3RfcmFuZ2UpCi0rI2RlZmluZSBpc2xfbWFwX2lz X2VtcHR5ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfbWFwX2lzX2VtcHR5KQotKyNkZWZpbmUgaXNs X21hcF9sZXhfZ2UgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9tYXBfbGV4X2dlKQotKyNkZWZpbmUg aXNsX21hcF9sZXhfbGUgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9tYXBfbGV4X2xlKQotKyNkZWZp bmUgaXNsX21hcF9uX291dCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX21hcF9uX291dCkKLSsjZGVm aW5lIGlzbF9tYXBfcmFuZ2UgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9tYXBfcmFuZ2UpCi0rI2Rl ZmluZSBpc2xfbWFwX3NldF90dXBsZV9pZCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX21hcF9zZXRf dHVwbGVfaWQpCi0rI2RlZmluZSBpc2xfbWFwX3VuaXZlcnNlICgqaXNsX3BvaW50ZXJzX18ucF9p c2xfbWFwX3VuaXZlcnNlKQotKyNkZWZpbmUgaXNsX29wdGlvbnNfc2V0X29uX2Vycm9yICgqaXNs X3BvaW50ZXJzX18ucF9pc2xfb3B0aW9uc19zZXRfb25fZXJyb3IpCi0rI2lmZGVmIEhBVkVfSVNM X09QVElPTlNfU0VUX1NDSEVEVUxFX1NFUklBTElaRV9TQ0NTCi0rI2RlZmluZSBpc2xfb3B0aW9u c19zZXRfc2NoZWR1bGVfc2VyaWFsaXplX3NjY3MgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9vcHRp b25zX3NldF9zY2hlZHVsZV9zZXJpYWxpemVfc2NjcykKLSsjZWxzZQotKyNkZWZpbmUgaXNsX29w dGlvbnNfc2V0X3NjaGVkdWxlX2Z1c2UgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9vcHRpb25zX3Nl dF9zY2hlZHVsZV9mdXNlKQotKyNlbmRpZgotKyNkZWZpbmUgaXNsX29wdGlvbnNfc2V0X3NjaGVk dWxlX21heF9jb25zdGFudF90ZXJtICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfb3B0aW9uc19zZXRf c2NoZWR1bGVfbWF4X2NvbnN0YW50X3Rlcm0pCi0rI2RlZmluZSBpc2xfb3B0aW9uc19zZXRfc2No ZWR1bGVfbWF4aW1pemVfYmFuZF9kZXB0aCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX29wdGlvbnNf c2V0X3NjaGVkdWxlX21heGltaXplX2JhbmRfZGVwdGgpCi0rI2RlZmluZSBpc2xfcHJpbnRlcl9m cmVlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfcHJpbnRlcl9mcmVlKQotKyNkZWZpbmUgaXNsX3By aW50ZXJfcHJpbnRfYWZmICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfcHJpbnRlcl9wcmludF9hZmYp Ci0rI2RlZmluZSBpc2xfcHJpbnRlcl9wcmludF9jb25zdHJhaW50ICgqaXNsX3BvaW50ZXJzX18u cF9pc2xfcHJpbnRlcl9wcmludF9jb25zdHJhaW50KQotKyNkZWZpbmUgaXNsX3ByaW50ZXJfcHJp bnRfbWFwICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfcHJpbnRlcl9wcmludF9tYXApCi0rI2RlZmlu ZSBpc2xfcHJpbnRlcl9wcmludF9zZXQgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9wcmludGVyX3By aW50X3NldCkKLSsjZGVmaW5lIGlzbF9wcmludGVyX3RvX2ZpbGUgKCppc2xfcG9pbnRlcnNfXy5w X2lzbF9wcmludGVyX3RvX2ZpbGUpCi0rI2RlZmluZSBpc2xfcHdfYWZmX2FkZCAoKmlzbF9wb2lu dGVyc19fLnBfaXNsX3B3X2FmZl9hZGQpCi0rI2RlZmluZSBpc2xfcHdfYWZmX2FsbG9jICgqaXNs X3BvaW50ZXJzX18ucF9pc2xfcHdfYWZmX2FsbG9jKQotKyNkZWZpbmUgaXNsX3B3X2FmZl9jb3B5 ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfcHdfYWZmX2NvcHkpCi0rI2RlZmluZSBpc2xfcHdfYWZm X2VxX3NldCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3B3X2FmZl9lcV9zZXQpCi0rI2RlZmluZSBp c2xfcHdfYWZmX2ZyZWUgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9wd19hZmZfZnJlZSkKLSsjZGVm aW5lIGlzbF9wd19hZmZfZnJvbV9hZmYgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9wd19hZmZfZnJv bV9hZmYpCi0rI2RlZmluZSBpc2xfcHdfYWZmX2dlX3NldCAoKmlzbF9wb2ludGVyc19fLnBfaXNs X3B3X2FmZl9nZV9zZXQpCi0rI2RlZmluZSBpc2xfcHdfYWZmX2d0X3NldCAoKmlzbF9wb2ludGVy c19fLnBfaXNsX3B3X2FmZl9ndF9zZXQpCi0rI2RlZmluZSBpc2xfcHdfYWZmX2lzX2NzdCAoKmlz bF9wb2ludGVyc19fLnBfaXNsX3B3X2FmZl9pc19jc3QpCi0rI2RlZmluZSBpc2xfcHdfYWZmX2xl X3NldCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3B3X2FmZl9sZV9zZXQpCi0rI2RlZmluZSBpc2xf cHdfYWZmX2x0X3NldCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3B3X2FmZl9sdF9zZXQpCi0rI2Rl ZmluZSBpc2xfcHdfYWZmX211bCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3B3X2FmZl9tdWwpCi0r I2RlZmluZSBpc2xfcHdfYWZmX25lX3NldCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3B3X2FmZl9u ZV9zZXQpCi0rI2RlZmluZSBpc2xfcHdfYWZmX25vbm5lZ19zZXQgKCppc2xfcG9pbnRlcnNfXy5w X2lzbF9wd19hZmZfbm9ubmVnX3NldCkKLSsjZGVmaW5lIGlzbF9wd19hZmZfc2V0X3R1cGxlX2lk ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfcHdfYWZmX3NldF90dXBsZV9pZCkKLSsjZGVmaW5lIGlz bF9wd19hZmZfc3ViICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfcHdfYWZmX3N1YikKLSsjZGVmaW5l IGlzbF9wd19hZmZfemVyb19zZXQgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9wd19hZmZfemVyb19z ZXQpCi0rI2RlZmluZSBpc2xfc2NoZWR1bGVfZnJlZSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3Nj aGVkdWxlX2ZyZWUpCi0rI2RlZmluZSBpc2xfc2NoZWR1bGVfZ2V0X2JhbmRfZm9yZXN0ICgqaXNs X3BvaW50ZXJzX18ucF9pc2xfc2NoZWR1bGVfZ2V0X2JhbmRfZm9yZXN0KQotKyNkZWZpbmUgaXNs X3NldF9hZGRfY29uc3RyYWludCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3NldF9hZGRfY29uc3Ry YWludCkKLSsjZGVmaW5lIGlzbF9zZXRfYWRkX2RpbXMgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9z ZXRfYWRkX2RpbXMpCi0rI2RlZmluZSBpc2xfc2V0X2FwcGx5ICgqaXNsX3BvaW50ZXJzX18ucF9p c2xfc2V0X2FwcGx5KQotKyNkZWZpbmUgaXNsX3NldF9jb2FsZXNjZSAoKmlzbF9wb2ludGVyc19f LnBfaXNsX3NldF9jb2FsZXNjZSkKLSsjZGVmaW5lIGlzbF9zZXRfY29weSAoKmlzbF9wb2ludGVy c19fLnBfaXNsX3NldF9jb3B5KQotKyNkZWZpbmUgaXNsX3NldF9kaW0gKCppc2xfcG9pbnRlcnNf Xy5wX2lzbF9zZXRfZGltKQotKyNkZWZpbmUgaXNsX3NldF9maXhfc2kgKCppc2xfcG9pbnRlcnNf Xy5wX2lzbF9zZXRfZml4X3NpKQotKyNkZWZpbmUgaXNsX3NldF9mcmVlICgqaXNsX3BvaW50ZXJz X18ucF9pc2xfc2V0X2ZyZWUpCi0rI2RlZmluZSBpc2xfc2V0X2dldF9zcGFjZSAoKmlzbF9wb2lu dGVyc19fLnBfaXNsX3NldF9nZXRfc3BhY2UpCi0rI2RlZmluZSBpc2xfc2V0X2dldF90dXBsZV9p ZCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3NldF9nZXRfdHVwbGVfaWQpCi0rI2RlZmluZSBpc2xf c2V0X2ludGVyc2VjdCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3NldF9pbnRlcnNlY3QpCi0rI2Rl ZmluZSBpc2xfc2V0X2lzX2VtcHR5ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfc2V0X2lzX2VtcHR5 KQotKyNkZWZpbmUgaXNsX3NldF9uX2RpbSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3NldF9uX2Rp bSkKLSsjZGVmaW5lIGlzbF9zZXRfbmF0X3VuaXZlcnNlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xf c2V0X25hdF91bml2ZXJzZSkKLSsjZGVmaW5lIGlzbF9zZXRfcHJvamVjdF9vdXQgKCppc2xfcG9p bnRlcnNfXy5wX2lzbF9zZXRfcHJvamVjdF9vdXQpCi0rI2RlZmluZSBpc2xfc2V0X3NldF90dXBs ZV9pZCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3NldF9zZXRfdHVwbGVfaWQpCi0rI2RlZmluZSBp c2xfc2V0X3VuaXZlcnNlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfc2V0X3VuaXZlcnNlKQotKyNk ZWZpbmUgaXNsX3NwYWNlX2FkZF9kaW1zICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfc3BhY2VfYWRk X2RpbXMpCi0rI2RlZmluZSBpc2xfc3BhY2VfYWxsb2MgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9z cGFjZV9hbGxvYykKLSsjZGVmaW5lIGlzbF9zcGFjZV9jb3B5ICgqaXNsX3BvaW50ZXJzX18ucF9p c2xfc3BhY2VfY29weSkKLSsjZGVmaW5lIGlzbF9zcGFjZV9kaW0gKCppc2xfcG9pbnRlcnNfXy5w X2lzbF9zcGFjZV9kaW0pCi0rI2RlZmluZSBpc2xfc3BhY2VfZG9tYWluICgqaXNsX3BvaW50ZXJz X18ucF9pc2xfc3BhY2VfZG9tYWluKQotKyNkZWZpbmUgaXNsX3NwYWNlX2ZpbmRfZGltX2J5X2lk ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfc3BhY2VfZmluZF9kaW1fYnlfaWQpCi0rI2RlZmluZSBp c2xfc3BhY2VfZnJlZSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3NwYWNlX2ZyZWUpCi0rI2RlZmlu ZSBpc2xfc3BhY2VfZnJvbV9kb21haW4gKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9zcGFjZV9mcm9t X2RvbWFpbikKLSsjZGVmaW5lIGlzbF9zcGFjZV9nZXRfdHVwbGVfaWQgKCppc2xfcG9pbnRlcnNf Xy5wX2lzbF9zcGFjZV9nZXRfdHVwbGVfaWQpCi0rI2RlZmluZSBpc2xfc3BhY2VfcGFyYW1zX2Fs bG9jICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfc3BhY2VfcGFyYW1zX2FsbG9jKQotKyNkZWZpbmUg aXNsX3NwYWNlX3JhbmdlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfc3BhY2VfcmFuZ2UpCi0rI2Rl ZmluZSBpc2xfc3BhY2Vfc2V0X2FsbG9jICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfc3BhY2Vfc2V0 X2FsbG9jKQotKyNkZWZpbmUgaXNsX3NwYWNlX3NldF9kaW1faWQgKCppc2xfcG9pbnRlcnNfXy5w X2lzbF9zcGFjZV9zZXRfZGltX2lkKQotKyNkZWZpbmUgaXNsX3NwYWNlX3NldF90dXBsZV9pZCAo KmlzbF9wb2ludGVyc19fLnBfaXNsX3NwYWNlX3NldF90dXBsZV9pZCkKLSsjZGVmaW5lIGlzbF91 bmlvbl9tYXBfYWRkX21hcCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3VuaW9uX21hcF9hZGRfbWFw KQotKyNkZWZpbmUgaXNsX3VuaW9uX21hcF9hbGlnbl9wYXJhbXMgKCppc2xfcG9pbnRlcnNfXy5w X2lzbF91bmlvbl9tYXBfYWxpZ25fcGFyYW1zKQotKyNkZWZpbmUgaXNsX3VuaW9uX21hcF9hcHBs eV9kb21haW4gKCppc2xfcG9pbnRlcnNfXy5wX2lzbF91bmlvbl9tYXBfYXBwbHlfZG9tYWluKQot KyNkZWZpbmUgaXNsX3VuaW9uX21hcF9hcHBseV9yYW5nZSAoKmlzbF9wb2ludGVyc19fLnBfaXNs X3VuaW9uX21hcF9hcHBseV9yYW5nZSkKLSsjZGVmaW5lIGlzbF91bmlvbl9tYXBfY29tcHV0ZV9m bG93ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfdW5pb25fbWFwX2NvbXB1dGVfZmxvdykKLSsjZGVm aW5lIGlzbF91bmlvbl9tYXBfY29weSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3VuaW9uX21hcF9j b3B5KQotKyNkZWZpbmUgaXNsX3VuaW9uX21hcF9lbXB0eSAoKmlzbF9wb2ludGVyc19fLnBfaXNs X3VuaW9uX21hcF9lbXB0eSkKLSsjZGVmaW5lIGlzbF91bmlvbl9tYXBfZmxhdF9yYW5nZV9wcm9k dWN0ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfdW5pb25fbWFwX2ZsYXRfcmFuZ2VfcHJvZHVjdCkK LSsjZGVmaW5lIGlzbF91bmlvbl9tYXBfZm9yZWFjaF9tYXAgKCppc2xfcG9pbnRlcnNfXy5wX2lz bF91bmlvbl9tYXBfZm9yZWFjaF9tYXApCi0rI2RlZmluZSBpc2xfdW5pb25fbWFwX2ZyZWUgKCpp c2xfcG9pbnRlcnNfXy5wX2lzbF91bmlvbl9tYXBfZnJlZSkKLSsjZGVmaW5lIGlzbF91bmlvbl9t YXBfZnJvbV9tYXAgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF91bmlvbl9tYXBfZnJvbV9tYXApCi0r I2RlZmluZSBpc2xfdW5pb25fbWFwX2dldF9jdHggKCppc2xfcG9pbnRlcnNfXy5wX2lzbF91bmlv bl9tYXBfZ2V0X2N0eCkKLSsjZGVmaW5lIGlzbF91bmlvbl9tYXBfZ2V0X3NwYWNlICgqaXNsX3Bv aW50ZXJzX18ucF9pc2xfdW5pb25fbWFwX2dldF9zcGFjZSkKLSsjZGVmaW5lIGlzbF91bmlvbl9t YXBfZ2lzdF9kb21haW4gKCppc2xfcG9pbnRlcnNfXy5wX2lzbF91bmlvbl9tYXBfZ2lzdF9kb21h aW4pCi0rI2RlZmluZSBpc2xfdW5pb25fbWFwX2dpc3RfcmFuZ2UgKCppc2xfcG9pbnRlcnNfXy5w X2lzbF91bmlvbl9tYXBfZ2lzdF9yYW5nZSkKLSsjZGVmaW5lIGlzbF91bmlvbl9tYXBfaW50ZXJz ZWN0X2RvbWFpbiAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3VuaW9uX21hcF9pbnRlcnNlY3RfZG9t YWluKQotKyNkZWZpbmUgaXNsX3VuaW9uX21hcF9pc19lbXB0eSAoKmlzbF9wb2ludGVyc19fLnBf aXNsX3VuaW9uX21hcF9pc19lbXB0eSkKLSsjZGVmaW5lIGlzbF91bmlvbl9tYXBfc3VidHJhY3Qg KCppc2xfcG9pbnRlcnNfXy5wX2lzbF91bmlvbl9tYXBfc3VidHJhY3QpCi0rI2RlZmluZSBpc2xf dW5pb25fbWFwX3VuaW9uICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfdW5pb25fbWFwX3VuaW9uKQot KyNkZWZpbmUgaXNsX3VuaW9uX3NldF9hZGRfc2V0ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfdW5p b25fc2V0X2FkZF9zZXQpCi0rI2RlZmluZSBpc2xfdW5pb25fc2V0X2NvbXB1dGVfc2NoZWR1bGUg KCppc2xfcG9pbnRlcnNfXy5wX2lzbF91bmlvbl9zZXRfY29tcHV0ZV9zY2hlZHVsZSkKLSsjZGVm aW5lIGlzbF91bmlvbl9zZXRfY29weSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3VuaW9uX3NldF9j b3B5KQotKyNkZWZpbmUgaXNsX3VuaW9uX3NldF9lbXB0eSAoKmlzbF9wb2ludGVyc19fLnBfaXNs X3VuaW9uX3NldF9lbXB0eSkKLSsjZGVmaW5lIGlzbF91bmlvbl9zZXRfZnJvbV9zZXQgKCppc2xf cG9pbnRlcnNfXy5wX2lzbF91bmlvbl9zZXRfZnJvbV9zZXQpCi0rI2RlZmluZSBpc2xfYWZmX2Fk ZF9jb25zdGFudF92YWwgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hZmZfYWRkX2NvbnN0YW50X3Zh bCkKLSsjZGVmaW5lIGlzbF9hZmZfZ2V0X2NvZWZmaWNpZW50X3ZhbCAoKmlzbF9wb2ludGVyc19f LnBfaXNsX2FmZl9nZXRfY29lZmZpY2llbnRfdmFsKQotKyNkZWZpbmUgaXNsX2FmZl9nZXRfY3R4 ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfYWZmX2dldF9jdHgpCi0rI2RlZmluZSBpc2xfYWZmX21v ZF92YWwgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hZmZfbW9kX3ZhbCkKLSsjZGVmaW5lIGlzbF9h c3RfYnVpbGRfYXN0X2Zyb21fc2NoZWR1bGUgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hc3RfYnVp bGRfYXN0X2Zyb21fc2NoZWR1bGUpCi0rI2RlZmluZSBpc2xfYXN0X2J1aWxkX2ZyZWUgKCppc2xf cG9pbnRlcnNfXy5wX2lzbF9hc3RfYnVpbGRfZnJlZSkKLSsjZGVmaW5lIGlzbF9hc3RfYnVpbGRf ZnJvbV9jb250ZXh0ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfYXN0X2J1aWxkX2Zyb21fY29udGV4 dCkKLSsjZGVmaW5lIGlzbF9hc3RfYnVpbGRfZ2V0X2N0eCAoKmlzbF9wb2ludGVyc19fLnBfaXNs X2FzdF9idWlsZF9nZXRfY3R4KQotKyNkZWZpbmUgaXNsX2FzdF9idWlsZF9nZXRfc2NoZWR1bGUg KCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hc3RfYnVpbGRfZ2V0X3NjaGVkdWxlKQotKyNkZWZpbmUg aXNsX2FzdF9idWlsZF9nZXRfc2NoZWR1bGVfc3BhY2UgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9h c3RfYnVpbGRfZ2V0X3NjaGVkdWxlX3NwYWNlKQotKyNkZWZpbmUgaXNsX2FzdF9idWlsZF9zZXRf YmVmb3JlX2VhY2hfZm9yICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfYXN0X2J1aWxkX3NldF9iZWZv cmVfZWFjaF9mb3IpCi0rI2RlZmluZSBpc2xfYXN0X2J1aWxkX3NldF9vcHRpb25zICgqaXNsX3Bv aW50ZXJzX18ucF9pc2xfYXN0X2J1aWxkX3NldF9vcHRpb25zKQotKyNkZWZpbmUgaXNsX2FzdF9l eHByX2ZyZWUgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hc3RfZXhwcl9mcmVlKQotKyNkZWZpbmUg aXNsX2FzdF9leHByX2Zyb21fdmFsICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfYXN0X2V4cHJfZnJv bV92YWwpCi0rI2RlZmluZSBpc2xfYXN0X2V4cHJfZ2V0X2N0eCAoKmlzbF9wb2ludGVyc19fLnBf aXNsX2FzdF9leHByX2dldF9jdHgpCi0rI2RlZmluZSBpc2xfYXN0X2V4cHJfZ2V0X2lkICgqaXNs X3BvaW50ZXJzX18ucF9pc2xfYXN0X2V4cHJfZ2V0X2lkKQotKyNkZWZpbmUgaXNsX2FzdF9leHBy X2dldF9vcF9hcmcgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hc3RfZXhwcl9nZXRfb3BfYXJnKQot KyNkZWZpbmUgaXNsX2FzdF9leHByX2dldF9vcF9uX2FyZyAoKmlzbF9wb2ludGVyc19fLnBfaXNs X2FzdF9leHByX2dldF9vcF9uX2FyZykKLSsjZGVmaW5lIGlzbF9hc3RfZXhwcl9nZXRfb3BfdHlw ZSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2FzdF9leHByX2dldF9vcF90eXBlKQotKyNkZWZpbmUg aXNsX2FzdF9leHByX2dldF90eXBlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfYXN0X2V4cHJfZ2V0 X3R5cGUpCi0rI2RlZmluZSBpc2xfYXN0X2V4cHJfZ2V0X3ZhbCAoKmlzbF9wb2ludGVyc19fLnBf aXNsX2FzdF9leHByX2dldF92YWwpCi0rI2RlZmluZSBpc2xfYXN0X2V4cHJfc3ViICgqaXNsX3Bv aW50ZXJzX18ucF9pc2xfYXN0X2V4cHJfc3ViKQotKyNkZWZpbmUgaXNsX2FzdF9ub2RlX2Jsb2Nr X2dldF9jaGlsZHJlbiAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2FzdF9ub2RlX2Jsb2NrX2dldF9j aGlsZHJlbikKLSsjZGVmaW5lIGlzbF9hc3Rfbm9kZV9mb3JfZ2V0X2JvZHkgKCppc2xfcG9pbnRl cnNfXy5wX2lzbF9hc3Rfbm9kZV9mb3JfZ2V0X2JvZHkpCi0rI2RlZmluZSBpc2xfYXN0X25vZGVf Zm9yX2dldF9jb25kICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfYXN0X25vZGVfZm9yX2dldF9jb25k KQotKyNkZWZpbmUgaXNsX2FzdF9ub2RlX2Zvcl9nZXRfaW5jICgqaXNsX3BvaW50ZXJzX18ucF9p c2xfYXN0X25vZGVfZm9yX2dldF9pbmMpCi0rI2RlZmluZSBpc2xfYXN0X25vZGVfZm9yX2dldF9p bml0ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfYXN0X25vZGVfZm9yX2dldF9pbml0KQotKyNkZWZp bmUgaXNsX2FzdF9ub2RlX2Zvcl9nZXRfaXRlcmF0b3IgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9h c3Rfbm9kZV9mb3JfZ2V0X2l0ZXJhdG9yKQotKyNkZWZpbmUgaXNsX2FzdF9ub2RlX2ZyZWUgKCpp c2xfcG9pbnRlcnNfXy5wX2lzbF9hc3Rfbm9kZV9mcmVlKQotKyNkZWZpbmUgaXNsX2FzdF9ub2Rl X2dldF9hbm5vdGF0aW9uICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfYXN0X25vZGVfZ2V0X2Fubm90 YXRpb24pCi0rI2RlZmluZSBpc2xfYXN0X25vZGVfZ2V0X3R5cGUgKCppc2xfcG9pbnRlcnNfXy5w X2lzbF9hc3Rfbm9kZV9nZXRfdHlwZSkKLSsjZGVmaW5lIGlzbF9hc3Rfbm9kZV9pZl9nZXRfY29u ZCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2FzdF9ub2RlX2lmX2dldF9jb25kKQotKyNkZWZpbmUg aXNsX2FzdF9ub2RlX2lmX2dldF9lbHNlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfYXN0X25vZGVf aWZfZ2V0X2Vsc2UpCi0rI2RlZmluZSBpc2xfYXN0X25vZGVfaWZfZ2V0X3RoZW4gKCppc2xfcG9p bnRlcnNfXy5wX2lzbF9hc3Rfbm9kZV9pZl9nZXRfdGhlbikKLSsjZGVmaW5lIGlzbF9hc3Rfbm9k ZV9saXN0X2ZyZWUgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hc3Rfbm9kZV9saXN0X2ZyZWUpCi0r I2RlZmluZSBpc2xfYXN0X25vZGVfbGlzdF9nZXRfYXN0X25vZGUgKCppc2xfcG9pbnRlcnNfXy5w X2lzbF9hc3Rfbm9kZV9saXN0X2dldF9hc3Rfbm9kZSkKLSsjZGVmaW5lIGlzbF9hc3Rfbm9kZV9s aXN0X25fYXN0X25vZGUgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hc3Rfbm9kZV9saXN0X25fYXN0 X25vZGUpCi0rI2RlZmluZSBpc2xfYXN0X25vZGVfdXNlcl9nZXRfZXhwciAoKmlzbF9wb2ludGVy c19fLnBfaXNsX2FzdF9ub2RlX3VzZXJfZ2V0X2V4cHIpCi0rI2RlZmluZSBpc2xfY29uc3RyYWlu dF9zZXRfY29lZmZpY2llbnRfdmFsICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfY29uc3RyYWludF9z ZXRfY29lZmZpY2llbnRfdmFsKQotKyNkZWZpbmUgaXNsX2NvbnN0cmFpbnRfc2V0X2NvbnN0YW50 X3ZhbCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2NvbnN0cmFpbnRfc2V0X2NvbnN0YW50X3ZhbCkK LSsjZGVmaW5lIGlzbF9pZF9nZXRfdXNlciAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2lkX2dldF91 c2VyKQotKyNkZWZpbmUgaXNsX2xvY2FsX3NwYWNlX2dldF9jdHggKCppc2xfcG9pbnRlcnNfXy5w X2lzbF9sb2NhbF9zcGFjZV9nZXRfY3R4KQotKyNkZWZpbmUgaXNsX21hcF9maXhfdmFsICgqaXNs X3BvaW50ZXJzX18ucF9pc2xfbWFwX2ZpeF92YWwpCi0rI2RlZmluZSBpc2xfb3B0aW9uc19zZXRf YXN0X2J1aWxkX2F0b21pY191cHBlcl9ib3VuZCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX29wdGlv bnNfc2V0X2FzdF9idWlsZF9hdG9taWNfdXBwZXJfYm91bmQpCi0rI2RlZmluZSBpc2xfcHJpbnRl cl9wcmludF9hc3Rfbm9kZSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3ByaW50ZXJfcHJpbnRfYXN0 X25vZGUpCi0rI2RlZmluZSBpc2xfcHJpbnRlcl9wcmludF9zdHIgKCppc2xfcG9pbnRlcnNfXy5w X2lzbF9wcmludGVyX3ByaW50X3N0cikKLSsjZGVmaW5lIGlzbF9wcmludGVyX3NldF9vdXRwdXRf Zm9ybWF0ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfcHJpbnRlcl9zZXRfb3V0cHV0X2Zvcm1hdCkK LSsjZGVmaW5lIGlzbF9wd19hZmZfbW9kX3ZhbCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3B3X2Fm Zl9tb2RfdmFsKQotKyNkZWZpbmUgaXNsX3NjaGVkdWxlX2NvbnN0cmFpbnRzX2NvbXB1dGVfc2No ZWR1bGUgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9zY2hlZHVsZV9jb25zdHJhaW50c19jb21wdXRl X3NjaGVkdWxlKQotKyNkZWZpbmUgaXNsX3NjaGVkdWxlX2NvbnN0cmFpbnRzX29uX2RvbWFpbiAo KmlzbF9wb2ludGVyc19fLnBfaXNsX3NjaGVkdWxlX2NvbnN0cmFpbnRzX29uX2RvbWFpbikKLSsj ZGVmaW5lIGlzbF9zY2hlZHVsZV9jb25zdHJhaW50c19zZXRfY29pbmNpZGVuY2UgKCppc2xfcG9p bnRlcnNfXy5wX2lzbF9zY2hlZHVsZV9jb25zdHJhaW50c19zZXRfY29pbmNpZGVuY2UpCi0rI2Rl ZmluZSBpc2xfc2NoZWR1bGVfY29uc3RyYWludHNfc2V0X3Byb3hpbWl0eSAoKmlzbF9wb2ludGVy c19fLnBfaXNsX3NjaGVkdWxlX2NvbnN0cmFpbnRzX3NldF9wcm94aW1pdHkpCi0rI2RlZmluZSBp c2xfc2NoZWR1bGVfY29uc3RyYWludHNfc2V0X3ZhbGlkaXR5ICgqaXNsX3BvaW50ZXJzX18ucF9p c2xfc2NoZWR1bGVfY29uc3RyYWludHNfc2V0X3ZhbGlkaXR5KQotKyNkZWZpbmUgaXNsX3NldF9n ZXRfZGltX2lkICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfc2V0X2dldF9kaW1faWQpCi0rI2RlZmlu ZSBpc2xfc2V0X21heF92YWwgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9zZXRfbWF4X3ZhbCkKLSsj ZGVmaW5lIGlzbF9zZXRfbWluX3ZhbCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3NldF9taW5fdmFs KQotKyNkZWZpbmUgaXNsX3NldF9wYXJhbXMgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9zZXRfcGFy YW1zKQotKyNkZWZpbmUgaXNsX3NwYWNlX2FsaWduX3BhcmFtcyAoKmlzbF9wb2ludGVyc19fLnBf aXNsX3NwYWNlX2FsaWduX3BhcmFtcykKLSsjZGVmaW5lIGlzbF9zcGFjZV9tYXBfZnJvbV9kb21h aW5fYW5kX3JhbmdlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfc3BhY2VfbWFwX2Zyb21fZG9tYWlu X2FuZF9yYW5nZSkKLSsjZGVmaW5lIGlzbF9zcGFjZV9zZXRfdHVwbGVfbmFtZSAoKmlzbF9wb2lu dGVyc19fLnBfaXNsX3NwYWNlX3NldF90dXBsZV9uYW1lKQotKyNkZWZpbmUgaXNsX3NwYWNlX3dy YXAgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9zcGFjZV93cmFwKQotKyNkZWZpbmUgaXNsX3VuaW9u X21hcF9mcm9tX2RvbWFpbl9hbmRfcmFuZ2UgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF91bmlvbl9t YXBfZnJvbV9kb21haW5fYW5kX3JhbmdlKQotKyNkZWZpbmUgaXNsX3VuaW9uX21hcF9yYW5nZSAo KmlzbF9wb2ludGVyc19fLnBfaXNsX3VuaW9uX21hcF9yYW5nZSkKLSsjZGVmaW5lIGlzbF91bmlv bl9zZXRfdW5pb24gKCppc2xfcG9pbnRlcnNfXy5wX2lzbF91bmlvbl9zZXRfdW5pb24pCi0rI2Rl ZmluZSBpc2xfdW5pb25fc2V0X3VuaXZlcnNlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfdW5pb25f c2V0X3VuaXZlcnNlKQotKyNkZWZpbmUgaXNsX3ZhbF8yZXhwICgqaXNsX3BvaW50ZXJzX18ucF9p c2xfdmFsXzJleHApCi0rI2RlZmluZSBpc2xfdmFsX2FkZF91aSAoKmlzbF9wb2ludGVyc19fLnBf aXNsX3ZhbF9hZGRfdWkpCi0rI2RlZmluZSBpc2xfdmFsX2NvcHkgKCppc2xfcG9pbnRlcnNfXy5w X2lzbF92YWxfY29weSkKLSsjZGVmaW5lIGlzbF92YWxfZnJlZSAoKmlzbF9wb2ludGVyc19fLnBf aXNsX3ZhbF9mcmVlKQotKyNkZWZpbmUgaXNsX3ZhbF9nZXRfbnVtX2dtcCAoKmlzbF9wb2ludGVy c19fLnBfaXNsX3ZhbF9nZXRfbnVtX2dtcCkKLSsjZGVmaW5lIGlzbF92YWxfaW50X2Zyb21fZ21w ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfdmFsX2ludF9mcm9tX2dtcCkKLSsjZGVmaW5lIGlzbF92 YWxfaW50X2Zyb21fc2kgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF92YWxfaW50X2Zyb21fc2kpCi0r I2RlZmluZSBpc2xfdmFsX2ludF9mcm9tX3VpICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfdmFsX2lu dF9mcm9tX3VpKQotKyNkZWZpbmUgaXNsX3ZhbF9tdWwgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF92 YWxfbXVsKQotKyNkZWZpbmUgaXNsX3ZhbF9uZWcgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF92YWxf bmVnKQotKyNkZWZpbmUgaXNsX3ZhbF9zdWIgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF92YWxfc3Vi KQotKwotICNpZm5kZWYgSEFWRV9JU0xfT1BUSU9OU19TRVRfU0NIRURVTEVfU0VSSUFMSVpFX1ND Q1MKLSAjIGRlZmluZSBpc2xfc3RhdCBpbnQKLSAjIGRlZmluZSBpc2xfc3RhdF9vayAwCi0tLS0g Z2NjL2dyYXBoaXRlLmMuamoJMjAxNS0xMS0wNCAxNDoxNTozMi4wMDAwMDAwMDAgKzAxMDAKLSsr KyBnY2MvZ3JhcGhpdGUuYwkyMDE1LTExLTA0IDE0OjU2OjAyLjY0NTUzNjQwOSArMDEwMAotQEAg LTkxLDYgKzkxLDM0IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuCi0g I2luY2x1ZGUgImdyYXBoaXRlLWlzbC1hc3QtdG8tZ2ltcGxlLmgiCi0gI2luY2x1ZGUgImdyYXBo aXRlLXNlc2UtdG8tcG9seS5oIgotIAotK19fdHlwZW9mIChpc2xfcG9pbnRlcnNfXykgaXNsX3Bv aW50ZXJzX187Ci0rCi0rc3RhdGljIGJvb2wKLStpbml0X2lzbF9wb2ludGVycyAodm9pZCkKLSt7 Ci0rICB2b2lkICpoOwotKwotKyAgaWYgKGlzbF9wb2ludGVyc19fLmluaXRlZCkKLSsgICAgcmV0 dXJuIGlzbF9wb2ludGVyc19fLmggIT0gTlVMTDsKLSsgIGggPSBkbG9wZW4gKCJsaWJpc2wuc28u MTMiLCBSVExEX0xBWlkpOwotKyAgaXNsX3BvaW50ZXJzX18uaCA9IGg7Ci0rICBpZiAoaCA9PSBO VUxMKQotKyAgICByZXR1cm4gZmFsc2U7Ci0rI2RlZmluZSBEWU5TWU0oeCkgXAotKyAgZG8gXAot KyAgICB7IFwKLSsgICAgICB1bmlvbiB7IF9fdHlwZW9mIChpc2xfcG9pbnRlcnNfXy5wXyMjeCkg cDsgdm9pZCAqcTsgfSB1OyBcCi0rICAgICAgdS5xID0gZGxzeW0gKGgsICN4KTsgXAotKyAgICAg IGlmICh1LnEgPT0gTlVMTCkgXAotKwlyZXR1cm4gZmFsc2U7IFwKLSsgICAgICBpc2xfcG9pbnRl cnNfXy5wXyMjeCA9IHUucDsgXAotKyAgICB9IFwKLSsgIHdoaWxlICgwKQotKyAgRFlOU1lNUwot KyN1bmRlZiBEWU5TWU0KLSsgIHJldHVybiB0cnVlOwotK30KLSsKLSAvKiBQcmludCBnbG9iYWwg c3RhdGlzdGljcyB0byBGSUxFLiAgKi8KLSAKLSBzdGF0aWMgdm9pZAotQEAgLTI4Niw2ICszMTQs MTUgQEAgZ3JhcGhpdGVfdHJhbnNmb3JtX2xvb3BzICh2b2lkKQotICAgaWYgKHBhcmFsbGVsaXpl ZF9mdW5jdGlvbl9wIChjZnVuLT5kZWNsKSkKLSAgICAgcmV0dXJuOwotIAotKyAgaWYgKG51bWJl cl9vZl9sb29wcyAoY2Z1bikgPD0gMSkKLSsgICAgcmV0dXJuOwotKwotKyAgaWYgKCFpbml0X2lz bF9wb2ludGVycyAoKSkKLSsgICAgewotKyAgICAgIHNvcnJ5ICgiR3JhcGhpdGUgbG9vcCBvcHRp bWl6YXRpb25zIGNhbm5vdCBiZSB1c2VkIik7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0g ICBjdHggPSBpc2xfY3R4X2FsbG9jICgpOwotICAgaXNsX29wdGlvbnNfc2V0X29uX2Vycm9yIChj dHgsIElTTF9PTl9FUlJPUl9BQk9SVCk7Ci0gICBpZiAoIWdyYXBoaXRlX2luaXRpYWxpemUgKGN0 eCkpCgpkaWZmIC0tZ2l0IGEvZ2NjNS1qYXZhLW5vbXVsdGkucGF0Y2ggYi9nY2M1LWphdmEtbm9t dWx0aS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTczMzRhYS4uMDAwMDAw MAotLS0gYS9nY2M1LWphdmEtbm9tdWx0aS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICsw LDAgQEAKLS0tLSBsaWJqYXZhL2NvbmZpZ3VyZS5hYy5qagkyMDA3LTEyLTA3IDE3OjU1OjUwLjAw MDAwMDAwMCArMDEwMAotKysrIGxpYmphdmEvY29uZmlndXJlLmFjCTIwMDctMTItMDcgMTg6MzY6 NTYuMDAwMDAwMDAwICswMTAwCi1AQCAtODIsNiArODIsMTMgQEAgQUNfQVJHX0VOQUJMRShqYXZh LW1haW50YWluZXItbW9kZSwKLSAJW2FsbG93IHJlYnVpbGRpbmcgb2YgLmNsYXNzIGFuZCAuaCBm aWxlc10pKQotIEFNX0NPTkRJVElPTkFMKEpBVkFfTUFJTlRBSU5FUl9NT0RFLCB0ZXN0ICIkZW5h YmxlX2phdmFfbWFpbnRhaW5lcl9tb2RlIiA9IHllcykKLSAKLStBQ19BUkdfRU5BQkxFKGxpYmph dmEtbXVsdGlsaWIsCi0rCUFTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1saWJqYXZhLW11bHRpbGli XSwgW2J1aWxkIGxpYmphdmEgYXMgbXVsdGlsaWJdKSkKLStpZiB0ZXN0ICIkZW5hYmxlX2xpYmph dmFfbXVsdGlsaWIiID0gbm87IHRoZW4KLSsgIG11bHRpbGliPW5vCi0rICBhY19jb25maWd1cmVf YXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdzIC0tZGlzYWJsZS1tdWx0aWxpYiIKLStmaQotKwotICMg SXQgbWF5IG5vdCBiZSBzYWZlIHRvIHJ1biBsaW5raW5nIHRlc3RzIGluIEFDX1BST0dfQ0MvQUNf UFJPR19DWFguCi0gR0NDX05PX0VYRUNVVEFCTEVTCi0gCi0tLS0gbGliamF2YS9jb25maWd1cmUu amoJMjAwNy0xMi0wNyAxNzo1NTo1MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBsaWJqYXZhL2NvbmZp Z3VyZQkyMDA3LTEyLTA3IDE4OjM5OjU4LjAwMDAwMDAwMCArMDEwMAotQEAgLTEwMjEsNiArMTAy MSw4IEBAIE9wdGlvbmFsIEZlYXR1cmVzOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVm YXVsdD15ZXMKLSAgIC0tZW5hYmxlLWphdmEtbWFpbnRhaW5lci1tb2RlCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICBhbGxvdyByZWJ1aWxkaW5nIG9mIC5jbGFzcyBhbmQgLmggZmlsZXMKLSsg IC0tZW5hYmxlLWxpYmphdmEtbXVsdGlsaWIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1 aWxkIGxpYmphdmEgYXMgbXVsdGlsaWIKLSAgIC0tZGlzYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5n ICBzcGVlZHMgdXAgb25lLXRpbWUgYnVpbGQKLSAgIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJhY2tp bmcgICBkbyBub3QgcmVqZWN0IHNsb3cgZGVwZW5kZW5jeSBleHRyYWN0b3JzCi0gICAtLWVuYWJs ZS1tYWludGFpbmVyLW1vZGUgIGVuYWJsZSBtYWtlIHJ1bGVzIGFuZCBkZXBlbmRlbmNpZXMgbm90 IHVzZWZ1bAotQEAgLTE5NzMsNiArMTk3NSwxNiBAQCBlbHNlCi0gZmkKLSAKLSAKLSsjIENoZWNr IHdoZXRoZXIgLS1lbmFibGUtbGliamF2YS1tdWx0aWxpYiB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAi JHtlbmFibGVfbGliamF2YV9tdWx0aWxpYitzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5hYmxldmFs PSRlbmFibGVfbGliamF2YV9tdWx0aWxpYjsKLStmaQotKwotK2lmIHRlc3QgIiRlbmFibGVfbGli amF2YV9tdWx0aWxpYiIgPSBubzsgdGhlbgotKyAgbXVsdGlsaWI9bm8KLSsgIGFjX2NvbmZpZ3Vy ZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3MgLS1kaXNhYmxlLW11bHRpbGliIgotK2ZpCi0rCi0g IyBJdCBtYXkgbm90IGJlIHNhZmUgdG8gcnVuIGxpbmtpbmcgdGVzdHMgaW4gQUNfUFJPR19DQy9B Q19QUk9HX0NYWC4KLSAKLSAKCmRpZmYgLS1naXQgYS9nY2M1LWxpYmdvLXAyMjQucGF0Y2ggYi9n Y2M1LWxpYmdvLXAyMjQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQzNTA5 YjEuLjAwMDAwMDAKLS0tIGEvZ2NjNS1saWJnby1wMjI0LnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMTA5MyArMCwwIEBACi0tLS0gbGliZ28vTWFrZWZpbGUuYW0uamoJMjAxNC0wMS0wOCAxMzo1 MzowNi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBsaWJnby9NYWtlZmlsZS5hbQkyMDE0LTAzLTA1IDE1 OjIwOjA5LjkzODQ2NjA5MyArMDEwMAotQEAgLTExMzMsNyArMTEzMyw2IEBAIGdvX2NyeXB0b19l Y2RzYV9maWxlcyA9IFwKLSAJZ28vY3J5cHRvL2VjZHNhL2VjZHNhLmdvCi0gZ29fY3J5cHRvX2Vs bGlwdGljX2ZpbGVzID0gXAotIAlnby9jcnlwdG8vZWxsaXB0aWMvZWxsaXB0aWMuZ28gXAotLQln by9jcnlwdG8vZWxsaXB0aWMvcDIyNC5nbyBcCi0gCWdvL2NyeXB0by9lbGxpcHRpYy9wMjU2Lmdv Ci0gZ29fY3J5cHRvX2htYWNfZmlsZXMgPSBcCi0gCWdvL2NyeXB0by9obWFjL2htYWMuZ28KLS0t LSBsaWJnby9NYWtlZmlsZS5pbi5qagkyMDE0LTAxLTA4IDEzOjUzOjA2LjAwMDAwMDAwMCArMDEw MAotKysrIGxpYmdvL01ha2VmaWxlLmluCTIwMTQtMDMtMDUgMTU6MjA6MjAuMzcyNDY1NDcxICsw MTAwCi1AQCAtMTI5MSw3ICsxMjkxLDYgQEAgZ29fY3J5cHRvX2VjZHNhX2ZpbGVzID0gXAotIAot IGdvX2NyeXB0b19lbGxpcHRpY19maWxlcyA9IFwKLSAJZ28vY3J5cHRvL2VsbGlwdGljL2VsbGlw dGljLmdvIFwKLS0JZ28vY3J5cHRvL2VsbGlwdGljL3AyMjQuZ28gXAotIAlnby9jcnlwdG8vZWxs aXB0aWMvcDI1Ni5nbwotIAotIGdvX2NyeXB0b19obWFjX2ZpbGVzID0gXAotLS0tIGxpYmdvL2dv L2NyeXB0by9lbGxpcHRpYy9lbGxpcHRpYy5nby5qagkyMDEzLTExLTA3IDExOjU5OjA5LjAwMDAw MDAwMCArMDEwMAotKysrIGxpYmdvL2dvL2NyeXB0by9lbGxpcHRpYy9lbGxpcHRpYy5nbwkyMDE0 LTAzLTA1IDE1OjIxOjA0LjE4NjQ2Mjg1OSArMDEwMAotQEAgLTMyNiw3ICszMjYsNiBAQCB2YXIg cDM4NCAqQ3VydmVQYXJhbXMKLSB2YXIgcDUyMSAqQ3VydmVQYXJhbXMKLSAKLSBmdW5jIGluaXRB bGwoKSB7Ci0tCWluaXRQMjI0KCkKLSAJaW5pdFAyNTYoKQotIAlpbml0UDM4NCgpCi0gCWluaXRQ NTIxKCkKLS0tLSBsaWJnby9nby9jcnlwdG8vZWxsaXB0aWMvZWxsaXB0aWNfdGVzdC5nby5qagky MDEzLTExLTA3IDExOjU5OjA5LjAwMDAwMDAwMCArMDEwMAotKysrIGxpYmdvL2dvL2NyeXB0by9l bGxpcHRpYy9lbGxpcHRpY190ZXN0LmdvCTIwMTQtMDMtMDUgMTU6NDY6MDMuNzM5MzczNDUzICsw MTAwCi1AQCAtNSwyNiArNSwxNiBAQAotIHBhY2thZ2UgZWxsaXB0aWMKLSAKLSBpbXBvcnQgKAot LQkiY3J5cHRvL3JhbmQiCi0tCSJlbmNvZGluZy9oZXgiCi0tCSJmbXQiCi0gCSJtYXRoL2JpZyIK LSAJInRlc3RpbmciCi0gKQotIAotLWZ1bmMgVGVzdE9uQ3VydmUodCAqdGVzdGluZy5UKSB7Ci0t CXAyMjQgOj0gUDIyNCgpCi0tCWlmICFwMjI0LklzT25DdXJ2ZShwMjI0LlBhcmFtcygpLkd4LCBw MjI0LlBhcmFtcygpLkd5KSB7Ci0tCQl0LkVycm9yZigiRkFJTCIpCi0tCX0KLS19Ci0tCi0gdHlw ZSBiYXNlTXVsdFRlc3Qgc3RydWN0IHsKLSAJayAgICBzdHJpbmcKLSAJeCwgeSBzdHJpbmcKLSB9 Ci0gCi0tdmFyIHAyMjRCYXNlTXVsdFRlc3RzID0gW11iYXNlTXVsdFRlc3R7Ci0rdmFyIHAyNTZC YXNlTXVsdFRlc3RzID0gW11iYXNlTXVsdFRlc3R7Ci0gCXsKLSAJCSIxIiwKLSAJCSJiNzBlMGNi ZDZiYjRiZjdmMzIxMzkwYjk0YTAzYzFkMzU2YzIxMTIyMzQzMjgwZDYxMTVjMWQyMSIsCi1AQCAt Mjg3LDQ3ICsyNzcsMTIgQEAgdmFyIHAyMjRCYXNlTXVsdFRlc3RzID0gW11iYXNlTXVsdFRlc3R7 Ci0gCX0sCi0gfQotIAotLWZ1bmMgVGVzdEJhc2VNdWx0KHQgKnRlc3RpbmcuVCkgewotLQlwMjI0 IDo9IFAyMjQoKQotLQlmb3IgaSwgZSA6PSByYW5nZSBwMjI0QmFzZU11bHRUZXN0cyB7Ci0tCQlr LCBvayA6PSBuZXcoYmlnLkludCkuU2V0U3RyaW5nKGUuaywgMTApCi0tCQlpZiAhb2sgewotLQkJ CXQuRXJyb3JmKCIlZDogYmFkIHZhbHVlIGZvciBrOiAlcyIsIGksIGUuaykKLS0JCX0KLS0JCXgs IHkgOj0gcDIyNC5TY2FsYXJCYXNlTXVsdChrLkJ5dGVzKCkpCi0tCQlpZiBmbXQuU3ByaW50Zigi JXgiLCB4KSAhPSBlLnggfHwgZm10LlNwcmludGYoIiV4IiwgeSkgIT0gZS55IHsKLS0JCQl0LkVy cm9yZigiJWQ6IGJhZCBvdXRwdXQgZm9yIGs9JXM6IGdvdCAoJXgsICV4KSwgd2FudCAoJXMsICVz KSIsIGksIGUuaywgeCwgeSwgZS54LCBlLnkpCi0tCQl9Ci0tCQlpZiB0ZXN0aW5nLlNob3J0KCkg JiYgaSA+IDUgewotLQkJCWJyZWFrCi0tCQl9Ci0tCX0KLS19Ci0tCi0tZnVuYyBUZXN0R2VuZXJp Y0Jhc2VNdWx0KHQgKnRlc3RpbmcuVCkgewotLQkvLyBXZSB1c2UgdGhlIFAyMjQgQ3VydmVQYXJh bXMgZGlyZWN0bHkgaW4gb3JkZXIgdG8gdGVzdCB0aGUgZ2VuZXJpYyBpbXBsZW1lbnRhdGlvbi4K LS0JcDIyNCA6PSBQMjI0KCkuUGFyYW1zKCkKLS0JZm9yIGksIGUgOj0gcmFuZ2UgcDIyNEJhc2VN dWx0VGVzdHMgewotLQkJaywgb2sgOj0gbmV3KGJpZy5JbnQpLlNldFN0cmluZyhlLmssIDEwKQot LQkJaWYgIW9rIHsKLS0JCQl0LkVycm9yZigiJWQ6IGJhZCB2YWx1ZSBmb3IgazogJXMiLCBpLCBl LmspCi0tCQl9Ci0tCQl4LCB5IDo9IHAyMjQuU2NhbGFyQmFzZU11bHQoay5CeXRlcygpKQotLQkJ aWYgZm10LlNwcmludGYoIiV4IiwgeCkgIT0gZS54IHx8IGZtdC5TcHJpbnRmKCIleCIsIHkpICE9 IGUueSB7Ci0tCQkJdC5FcnJvcmYoIiVkOiBiYWQgb3V0cHV0IGZvciBrPSVzOiBnb3QgKCV4LCAl eCksIHdhbnQgKCVzLCAlcykiLCBpLCBlLmssIHgsIHksIGUueCwgZS55KQotLQkJfQotLQkJaWYg dGVzdGluZy5TaG9ydCgpICYmIGkgPiA1IHsKLS0JCQlicmVhawotLQkJfQotLQl9Ci0tfQotLQot IGZ1bmMgVGVzdFAyNTZCYXNlTXVsdCh0ICp0ZXN0aW5nLlQpIHsKLSAJcDI1NiA6PSBQMjU2KCkK LSAJcDI1NkdlbmVyaWMgOj0gcDI1Ni5QYXJhbXMoKQotIAotLQlzY2FsYXJzIDo9IG1ha2UoW10q YmlnLkludCwgMCwgbGVuKHAyMjRCYXNlTXVsdFRlc3RzKSsxKQotLQlmb3IgXywgZSA6PSByYW5n ZSBwMjI0QmFzZU11bHRUZXN0cyB7Ci0rCXNjYWxhcnMgOj0gbWFrZShbXSpiaWcuSW50LCAwLCBs ZW4ocDI1NkJhc2VNdWx0VGVzdHMpKzEpCi0rCWZvciBfLCBlIDo9IHJhbmdlIHAyNTZCYXNlTXVs dFRlc3RzIHsKLSAJCWssIF8gOj0gbmV3KGJpZy5JbnQpLlNldFN0cmluZyhlLmssIDEwKQotIAkJ c2NhbGFycyA9IGFwcGVuZChzY2FsYXJzLCBrKQotIAl9Ci1AQCAtMzUyLDcgKzMwNyw3IEBAIGZ1 bmMgVGVzdFAyNTZNdWx0KHQgKnRlc3RpbmcuVCkgewotIAlwMjU2IDo9IFAyNTYoKQotIAlwMjU2 R2VuZXJpYyA6PSBwMjU2LlBhcmFtcygpCi0gCi0tCWZvciBpLCBlIDo9IHJhbmdlIHAyMjRCYXNl TXVsdFRlc3RzIHsKLSsJZm9yIGksIGUgOj0gcmFuZ2UgcDI1NkJhc2VNdWx0VGVzdHMgewotIAkJ eCwgXyA6PSBuZXcoYmlnLkludCkuU2V0U3RyaW5nKGUueCwgMTYpCi0gCQl5LCBfIDo9IG5ldyhi aWcuSW50KS5TZXRTdHJpbmcoZS55LCAxNikKLSAJCWssIF8gOj0gbmV3KGJpZy5JbnQpLlNldFN0 cmluZyhlLmssIDEwKQotQEAgLTM3Myw3ICszMjgsNiBAQCBmdW5jIFRlc3RJbmZpbml0eSh0ICp0 ZXN0aW5nLlQpIHsKLSAJCW5hbWUgIHN0cmluZwotIAkJY3VydmUgQ3VydmUKLSAJfXsKLS0JCXsi cDIyNCIsIFAyMjQoKX0sCi0gCQl7InAyNTYiLCBQMjU2KCl9LAotIAl9Ci0gCi1AQCAtNDA2LDUz ICszNjAsMTMgQEAgZnVuYyBUZXN0SW5maW5pdHkodCAqdGVzdGluZy5UKSB7Ci0gCX0KLSB9Ci0g Ci0tZnVuYyBCZW5jaG1hcmtCYXNlTXVsdChiICp0ZXN0aW5nLkIpIHsKLS0JYi5SZXNldFRpbWVy KCkKLS0JcDIyNCA6PSBQMjI0KCkKLS0JZSA6PSBwMjI0QmFzZU11bHRUZXN0c1syNV0KLS0Jaywg XyA6PSBuZXcoYmlnLkludCkuU2V0U3RyaW5nKGUuaywgMTApCi0tCWIuU3RhcnRUaW1lcigpCi0t CWZvciBpIDo9IDA7IGkgPCBiLk47IGkrKyB7Ci0tCQlwMjI0LlNjYWxhckJhc2VNdWx0KGsuQnl0 ZXMoKSkKLS0JfQotLX0KLS0KLSBmdW5jIEJlbmNobWFya0Jhc2VNdWx0UDI1NihiICp0ZXN0aW5n LkIpIHsKLSAJYi5SZXNldFRpbWVyKCkKLSAJcDI1NiA6PSBQMjU2KCkKLS0JZSA6PSBwMjI0QmFz ZU11bHRUZXN0c1syNV0KLSsJZSA6PSBwMjU2QmFzZU11bHRUZXN0c1syNV0KLSAJaywgXyA6PSBu ZXcoYmlnLkludCkuU2V0U3RyaW5nKGUuaywgMTApCi0gCWIuU3RhcnRUaW1lcigpCi0gCWZvciBp IDo9IDA7IGkgPCBiLk47IGkrKyB7Ci0gCQlwMjU2LlNjYWxhckJhc2VNdWx0KGsuQnl0ZXMoKSkK LSAJfQotIH0KLS0KLS1mdW5jIFRlc3RNYXJzaGFsKHQgKnRlc3RpbmcuVCkgewotLQlwMjI0IDo9 IFAyMjQoKQotLQlfLCB4LCB5LCBlcnIgOj0gR2VuZXJhdGVLZXkocDIyNCwgcmFuZC5SZWFkZXIp Ci0tCWlmIGVyciAhPSBuaWwgewotLQkJdC5FcnJvcihlcnIpCi0tCQlyZXR1cm4KLS0JfQotLQlz ZXJpYWxpemVkIDo9IE1hcnNoYWwocDIyNCwgeCwgeSkKLS0JeHgsIHl5IDo9IFVubWFyc2hhbChw MjI0LCBzZXJpYWxpemVkKQotLQlpZiB4eCA9PSBuaWwgewotLQkJdC5FcnJvcigiZmFpbGVkIHRv IHVubWFyc2hhbCIpCi0tCQlyZXR1cm4KLS0JfQotLQlpZiB4eC5DbXAoeCkgIT0gMCB8fCB5eS5D bXAoeSkgIT0gMCB7Ci0tCQl0LkVycm9yKCJ1bm1hcnNoYWwgcmV0dXJuZWQgZGlmZmVyZW50IHZh bHVlcyIpCi0tCQlyZXR1cm4KLS0JfQotLX0KLS0KLS1mdW5jIFRlc3RQMjI0T3ZlcmZsb3codCAq dGVzdGluZy5UKSB7Ci0tCS8vIFRoaXMgdGVzdHMgZm9yIGEgc3BlY2lmaWMgYnVnIGluIHRoZSBQ MjI0IGltcGxlbWVudGF0aW9uLgotLQlwMjI0IDo9IFAyMjQoKQotLQlwb2ludERhdGEsIF8gOj0g aGV4LkRlY29kZVN0cmluZygiMDQ5QjUzNUI0NUZCMEEyMDcyMzk4QTY4MzE4MzQ2MjRDN0UzMkND RkQ1QTRCOTMzQkNFQUY3N0YxREQ5NDVFMDhCQkU1MTc4RjVFREY1RTczMzM4OEYxOTZEMkE2MzFE MkUwNzVCQjE2Q0JGRUVBMTVCIikKLS0JeCwgeSA6PSBVbm1hcnNoYWwocDIyNCwgcG9pbnREYXRh KQotLQlpZiAhcDIyNC5Jc09uQ3VydmUoeCwgeSkgewotLQkJdC5FcnJvcigiUDIyNCBmYWlsZWQg dG8gdmFsaWRhdGUgYSBjb3JyZWN0IHBvaW50IikKLS0JfQotLX0KLS0tLSBsaWJnby9nby9jcnlw dG8vZWNkc2EvZWNkc2FfdGVzdC5nby5qagkyMDEyLTExLTE1IDE4OjI2OjU2LjAwMDAwMDAwMCAr MDEwMAotKysrIGxpYmdvL2dvL2NyeXB0by9lY2RzYS9lY2RzYV90ZXN0LmdvCTIwMTQtMDMtMDUg MTU6MjY6MzguNDYxNDQyOTI5ICswMTAwCi1AQCAtMzMsNyArMzMsNiBAQCBmdW5jIHRlc3RLZXlH ZW5lcmF0aW9uKHQgKnRlc3RpbmcuVCwgYyBlCi0gfQotIAotIGZ1bmMgVGVzdEtleUdlbmVyYXRp b24odCAqdGVzdGluZy5UKSB7Ci0tCXRlc3RLZXlHZW5lcmF0aW9uKHQsIGVsbGlwdGljLlAyMjQo KSwgInAyMjQiKQotIAlpZiB0ZXN0aW5nLlNob3J0KCkgewotIAkJcmV0dXJuCi0gCX0KLUBAIC02 Myw3ICs2Miw2IEBAIGZ1bmMgdGVzdFNpZ25BbmRWZXJpZnkodCAqdGVzdGluZy5ULCBjIGUKLSB9 Ci0gCi0gZnVuYyBUZXN0U2lnbkFuZFZlcmlmeSh0ICp0ZXN0aW5nLlQpIHsKLS0JdGVzdFNpZ25B bmRWZXJpZnkodCwgZWxsaXB0aWMuUDIyNCgpLCAicDIyNCIpCi0gCWlmIHRlc3RpbmcuU2hvcnQo KSB7Ci0gCQlyZXR1cm4KLSAJfQotQEAgLTEyOSw4ICsxMjcsNiBAQCBmdW5jIFRlc3RWZWN0b3Jz KHQgKnRlc3RpbmcuVCkgewotIAkJCXBhcnRzIDo9IHN0cmluZ3MuU3BsaXROKGxpbmUsICIsIiwg MikKLSAKLSAJCQlzd2l0Y2ggcGFydHNbMF0gewotLQkJCWNhc2UgIlAtMjI0IjoKLS0JCQkJcHVi LkN1cnZlID0gZWxsaXB0aWMuUDIyNCgpCi0gCQkJY2FzZSAiUC0yNTYiOgotIAkJCQlwdWIuQ3Vy dmUgPSBlbGxpcHRpYy5QMjU2KCkKLSAJCQljYXNlICJQLTM4NCI6Ci0tLS0gbGliZ28vZ28vY3J5 cHRvL3g1MDkveDUwOS5nby5qagkyMDEzLTExLTA3IDExOjU5OjA5LjAwMDAwMDAwMCArMDEwMAot KysrIGxpYmdvL2dvL2NyeXB0by94NTA5L3g1MDkuZ28JMjAxNC0wMy0wNSAxNToyNzozNy4wMjI0 Mzk0MzcgKzAxMDAKLUBAIC0zMDYsOSArMzA2LDYgQEAgZnVuYyBnZXRQdWJsaWNLZXlBbGdvcml0 aG1Gcm9tT0lEKG9pZCBhcwotIAotIC8vIFJGQyA1NDgwLCAyLjEuMS4xLiBOYW1lZCBDdXJ2ZQot IC8vCi0tLy8gc2VjcDIyNHIxIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7Ci0tLy8gICBpc28oMSkg aWRlbnRpZmllZC1vcmdhbml6YXRpb24oMykgY2VydGljb20oMTMyKSBjdXJ2ZSgwKSAzMyB9Ci0t Ly8KLSAvLyBzZWNwMjU2cjEgT0JKRUNUIElERU5USUZJRVIgOjo9IHsKLSAvLyAgIGlzbygxKSBt ZW1iZXItYm9keSgyKSB1cyg4NDApIGFuc2ktWDktNjIoMTAwNDUpIGN1cnZlcygzKQotIC8vICAg cHJpbWUoMSkgNyB9Ci1AQCAtMzIxLDcgKzMxOCw2IEBAIGZ1bmMgZ2V0UHVibGljS2V5QWxnb3Jp dGhtRnJvbU9JRChvaWQgYXMKLSAvLwotIC8vIE5COiBzZWNwMjU2cjEgaXMgZXF1aXZhbGVudCB0 byBwcmltZTI1NnYxCi0gdmFyICgKLS0Jb2lkTmFtZWRDdXJ2ZVAyMjQgPSBhc24xLk9iamVjdElk ZW50aWZpZXJ7MSwgMywgMTMyLCAwLCAzM30KLSAJb2lkTmFtZWRDdXJ2ZVAyNTYgPSBhc24xLk9i amVjdElkZW50aWZpZXJ7MSwgMiwgODQwLCAxMDA0NSwgMywgMSwgN30KLSAJb2lkTmFtZWRDdXJ2 ZVAzODQgPSBhc24xLk9iamVjdElkZW50aWZpZXJ7MSwgMywgMTMyLCAwLCAzNH0KLSAJb2lkTmFt ZWRDdXJ2ZVA1MjEgPSBhc24xLk9iamVjdElkZW50aWZpZXJ7MSwgMywgMTMyLCAwLCAzNX0KLUBA IC0zMjksOCArMzI1LDYgQEAgdmFyICgKLSAKLSBmdW5jIG5hbWVkQ3VydmVGcm9tT0lEKG9pZCBh c24xLk9iamVjdElkZW50aWZpZXIpIGVsbGlwdGljLkN1cnZlIHsKLSAJc3dpdGNoIHsKLS0JY2Fz ZSBvaWQuRXF1YWwob2lkTmFtZWRDdXJ2ZVAyMjQpOgotLQkJcmV0dXJuIGVsbGlwdGljLlAyMjQo KQotIAljYXNlIG9pZC5FcXVhbChvaWROYW1lZEN1cnZlUDI1Nik6Ci0gCQlyZXR1cm4gZWxsaXB0 aWMuUDI1NigpCi0gCWNhc2Ugb2lkLkVxdWFsKG9pZE5hbWVkQ3VydmVQMzg0KToKLUBAIC0zNDMs OCArMzM3LDYgQEAgZnVuYyBuYW1lZEN1cnZlRnJvbU9JRChvaWQgYXNuMS5PYmplY3RJZAotIAot IGZ1bmMgb2lkRnJvbU5hbWVkQ3VydmUoY3VydmUgZWxsaXB0aWMuQ3VydmUpIChhc24xLk9iamVj dElkZW50aWZpZXIsIGJvb2wpIHsKLSAJc3dpdGNoIGN1cnZlIHsKLS0JY2FzZSBlbGxpcHRpYy5Q MjI0KCk6Ci0tCQlyZXR1cm4gb2lkTmFtZWRDdXJ2ZVAyMjQsIHRydWUKLSAJY2FzZSBlbGxpcHRp Yy5QMjU2KCk6Ci0gCQlyZXR1cm4gb2lkTmFtZWRDdXJ2ZVAyNTYsIHRydWUKLSAJY2FzZSBlbGxp cHRpYy5QMzg0KCk6Ci1AQCAtMTM3MSw3ICsxMzYzLDcgQEAgZnVuYyBzaWduaW5nUGFyYW1zRm9y UHJpdmF0ZUtleShwcml2IGludAotIAkJcHViVHlwZSA9IEVDRFNBCi0gCi0gCQlzd2l0Y2ggcHJp di5DdXJ2ZSB7Ci0tCQljYXNlIGVsbGlwdGljLlAyMjQoKSwgZWxsaXB0aWMuUDI1NigpOgotKwkJ Y2FzZSBlbGxpcHRpYy5QMjU2KCk6Ci0gCQkJaGFzaEZ1bmMgPSBjcnlwdG8uU0hBMjU2Ci0gCQkJ c2lnQWxnby5BbGdvcml0aG0gPSBvaWRTaWduYXR1cmVFQ0RTQVdpdGhTSEEyNTYKLSAJCWNhc2Ug ZWxsaXB0aWMuUDM4NCgpOgotLS0tIGxpYmdvL2dvL2NyeXB0by9lbGxpcHRpYy9wMjI0LmdvLmpq CTIwMTItMTEtMTUgMTg6MjY6NTcuMDAwMDAwMDAwICswMTAwCi0rKysgbGliZ28vZ28vY3J5cHRv L2VsbGlwdGljL3AyMjQuZ28JMjAxNC0wMy0wNSAxNTozMDowMS4xODk0MzA4NDIgKzAxMDAKLUBA IC0xLDc2NSArMCwwIEBACi0tLy8gQ29weXJpZ2h0IDIwMTIgVGhlIEdvIEF1dGhvcnMuICBBbGwg cmlnaHRzIHJlc2VydmVkLgotLS8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk IGJ5IGEgQlNELXN0eWxlCi0tLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElD RU5TRSBmaWxlLgotLQotLXBhY2thZ2UgZWxsaXB0aWMKLS0KLS0vLyBUaGlzIGlzIGEgY29uc3Rh bnQtdGltZSwgMzItYml0IGltcGxlbWVudGF0aW9uIG9mIFAyMjQuIFNlZSBGSVBTIDE4Ni0zLAot LS8vIHNlY3Rpb24gRC4yLjIuCi0tLy8KLS0vLyBTZWUgaHR0cDovL3d3dy5pbXBlcmlhbHZpb2xl dC5vcmcvMjAxMC8xMi8wNC9lY2MuaHRtbCAoWzFdKSBmb3IgYmFja2dyb3VuZC4KLS0KLS1pbXBv cnQgKAotLQkibWF0aC9iaWciCi0tKQotLQotLXZhciBwMjI0IHAyMjRDdXJ2ZQotLQotLXR5cGUg cDIyNEN1cnZlIHN0cnVjdCB7Ci0tCSpDdXJ2ZVBhcmFtcwotLQlneCwgZ3ksIGIgcDIyNEZpZWxk RWxlbWVudAotLX0KLS0KLS1mdW5jIGluaXRQMjI0KCkgewotLQkvLyBTZWUgRklQUyAxODYtMywg c2VjdGlvbiBELjIuMgotLQlwMjI0LkN1cnZlUGFyYW1zID0gbmV3KEN1cnZlUGFyYW1zKQotLQlw MjI0LlAsIF8gPSBuZXcoYmlnLkludCkuU2V0U3RyaW5nKCIyNjk1OTk0NjY2NzE1MDYzOTc5NDY2 NzAxNTA4NzAxOTYzMDY3MzU1NzkxNjI2MDAyNjMwODE0MzUxMDA2NjI5ODg4MSIsIDEwKQotLQlw MjI0Lk4sIF8gPSBuZXcoYmlnLkludCkuU2V0U3RyaW5nKCIyNjk1OTk0NjY2NzE1MDYzOTc5NDY2 NzAxNTA4NzAxOTYyNTk0MDQ1NzgwNzcxNDQyNDM5MTcyMTY4MjcyMjM2ODA2MSIsIDEwKQotLQlw MjI0LkIsIF8gPSBuZXcoYmlnLkludCkuU2V0U3RyaW5nKCJiNDA1MGE4NTBjMDRiM2FiZjU0MTMy NTY1MDQ0YjBiN2Q3YmZkOGJhMjcwYjM5NDMyMzU1ZmZiNCIsIDE2KQotLQlwMjI0Lkd4LCBfID0g bmV3KGJpZy5JbnQpLlNldFN0cmluZygiYjcwZTBjYmQ2YmI0YmY3ZjMyMTM5MGI5NGEwM2MxZDM1 NmMyMTEyMjM0MzI4MGQ2MTE1YzFkMjEiLCAxNikKLS0JcDIyNC5HeSwgXyA9IG5ldyhiaWcuSW50 KS5TZXRTdHJpbmcoImJkMzc2Mzg4YjVmNzIzZmI0YzIyZGZlNmNkNDM3NWEwNWEwNzQ3NjQ0NGQ1 ODE5OTg1MDA3ZTM0IiwgMTYpCi0tCXAyMjQuQml0U2l6ZSA9IDIyNAotLQotLQlwMjI0RnJvbUJp ZygmcDIyNC5neCwgcDIyNC5HeCkKLS0JcDIyNEZyb21CaWcoJnAyMjQuZ3ksIHAyMjQuR3kpCi0t CXAyMjRGcm9tQmlnKCZwMjI0LmIsIHAyMjQuQikKLS19Ci0tCi0tLy8gUDIyNCByZXR1cm5zIGEg Q3VydmUgd2hpY2ggaW1wbGVtZW50cyBQLTIyNCAoc2VlIEZJUFMgMTg2LTMsIHNlY3Rpb24gRC4y LjIpCi0tZnVuYyBQMjI0KCkgQ3VydmUgewotLQlpbml0b25jZS5Ebyhpbml0QWxsKQotLQlyZXR1 cm4gcDIyNAotLX0KLS0KLS1mdW5jIChjdXJ2ZSBwMjI0Q3VydmUpIFBhcmFtcygpICpDdXJ2ZVBh cmFtcyB7Ci0tCXJldHVybiBjdXJ2ZS5DdXJ2ZVBhcmFtcwotLX0KLS0KLS1mdW5jIChjdXJ2ZSBw MjI0Q3VydmUpIElzT25DdXJ2ZShiaWdYLCBiaWdZICpiaWcuSW50KSBib29sIHsKLS0JdmFyIHgs IHkgcDIyNEZpZWxkRWxlbWVudAotLQlwMjI0RnJvbUJpZygmeCwgYmlnWCkKLS0JcDIyNEZyb21C aWcoJnksIGJpZ1kpCi0tCi0tCS8vIHnCsiA9IHjCsyAtIDN4ICsgYgotLQl2YXIgdG1wIHAyMjRM YXJnZUZpZWxkRWxlbWVudAotLQl2YXIgeDMgcDIyNEZpZWxkRWxlbWVudAotLQlwMjI0U3F1YXJl KCZ4MywgJngsICZ0bXApCi0tCXAyMjRNdWwoJngzLCAmeDMsICZ4LCAmdG1wKQotLQotLQlmb3Ig aSA6PSAwOyBpIDwgODsgaSsrIHsKLS0JCXhbaV0gKj0gMwotLQl9Ci0tCXAyMjRTdWIoJngzLCAm eDMsICZ4KQotLQlwMjI0UmVkdWNlKCZ4MykKLS0JcDIyNEFkZCgmeDMsICZ4MywgJmN1cnZlLmIp Ci0tCXAyMjRDb250cmFjdCgmeDMsICZ4MykKLS0KLS0JcDIyNFNxdWFyZSgmeSwgJnksICZ0bXAp Ci0tCXAyMjRDb250cmFjdCgmeSwgJnkpCi0tCi0tCWZvciBpIDo9IDA7IGkgPCA4OyBpKysgewot LQkJaWYgeVtpXSAhPSB4M1tpXSB7Ci0tCQkJcmV0dXJuIGZhbHNlCi0tCQl9Ci0tCX0KLS0JcmV0 dXJuIHRydWUKLS19Ci0tCi0tZnVuYyAocDIyNEN1cnZlKSBBZGQoYmlnWDEsIGJpZ1kxLCBiaWdY MiwgYmlnWTIgKmJpZy5JbnQpICh4LCB5ICpiaWcuSW50KSB7Ci0tCXZhciB4MSwgeTEsIHoxLCB4 MiwgeTIsIHoyLCB4MywgeTMsIHozIHAyMjRGaWVsZEVsZW1lbnQKLS0KLS0JcDIyNEZyb21CaWco JngxLCBiaWdYMSkKLS0JcDIyNEZyb21CaWcoJnkxLCBiaWdZMSkKLS0JaWYgYmlnWDEuU2lnbigp ICE9IDAgfHwgYmlnWTEuU2lnbigpICE9IDAgewotLQkJejFbMF0gPSAxCi0tCX0KLS0JcDIyNEZy b21CaWcoJngyLCBiaWdYMikKLS0JcDIyNEZyb21CaWcoJnkyLCBiaWdZMikKLS0JaWYgYmlnWDIu U2lnbigpICE9IDAgfHwgYmlnWTIuU2lnbigpICE9IDAgewotLQkJejJbMF0gPSAxCi0tCX0KLS0K LS0JcDIyNEFkZEphY29iaWFuKCZ4MywgJnkzLCAmejMsICZ4MSwgJnkxLCAmejEsICZ4MiwgJnky LCAmejIpCi0tCXJldHVybiBwMjI0VG9BZmZpbmUoJngzLCAmeTMsICZ6MykKLS19Ci0tCi0tZnVu YyAocDIyNEN1cnZlKSBEb3VibGUoYmlnWDEsIGJpZ1kxICpiaWcuSW50KSAoeCwgeSAqYmlnLklu dCkgewotLQl2YXIgeDEsIHkxLCB6MSwgeDIsIHkyLCB6MiBwMjI0RmllbGRFbGVtZW50Ci0tCi0t CXAyMjRGcm9tQmlnKCZ4MSwgYmlnWDEpCi0tCXAyMjRGcm9tQmlnKCZ5MSwgYmlnWTEpCi0tCXox WzBdID0gMQotLQotLQlwMjI0RG91YmxlSmFjb2JpYW4oJngyLCAmeTIsICZ6MiwgJngxLCAmeTEs ICZ6MSkKLS0JcmV0dXJuIHAyMjRUb0FmZmluZSgmeDIsICZ5MiwgJnoyKQotLX0KLS0KLS1mdW5j IChwMjI0Q3VydmUpIFNjYWxhck11bHQoYmlnWDEsIGJpZ1kxICpiaWcuSW50LCBzY2FsYXIgW11i eXRlKSAoeCwgeSAqYmlnLkludCkgewotLQl2YXIgeDEsIHkxLCB6MSwgeDIsIHkyLCB6MiBwMjI0 RmllbGRFbGVtZW50Ci0tCi0tCXAyMjRGcm9tQmlnKCZ4MSwgYmlnWDEpCi0tCXAyMjRGcm9tQmln KCZ5MSwgYmlnWTEpCi0tCXoxWzBdID0gMQotLQotLQlwMjI0U2NhbGFyTXVsdCgmeDIsICZ5Miwg JnoyLCAmeDEsICZ5MSwgJnoxLCBzY2FsYXIpCi0tCXJldHVybiBwMjI0VG9BZmZpbmUoJngyLCAm eTIsICZ6MikKLS19Ci0tCi0tZnVuYyAoY3VydmUgcDIyNEN1cnZlKSBTY2FsYXJCYXNlTXVsdChz Y2FsYXIgW11ieXRlKSAoeCwgeSAqYmlnLkludCkgewotLQl2YXIgejEsIHgyLCB5MiwgejIgcDIy NEZpZWxkRWxlbWVudAotLQotLQl6MVswXSA9IDEKLS0JcDIyNFNjYWxhck11bHQoJngyLCAmeTIs ICZ6MiwgJmN1cnZlLmd4LCAmY3VydmUuZ3ksICZ6MSwgc2NhbGFyKQotLQlyZXR1cm4gcDIyNFRv QWZmaW5lKCZ4MiwgJnkyLCAmejIpCi0tfQotLQotLS8vIEZpZWxkIGVsZW1lbnQgZnVuY3Rpb25z LgotLS8vCi0tLy8gVGhlIGZpZWxkIHRoYXQgd2UncmUgZGVhbGluZyB3aXRoIGlzIOKEpC9w4oSk IHdoZXJlIHAgPSAyKioyMjQgLSAyKio5NiArIDEuCi0tLy8KLS0vLyBGaWVsZCBlbGVtZW50cyBh cmUgcmVwcmVzZW50ZWQgYnkgYSBGaWVsZEVsZW1lbnQsIHdoaWNoIGlzIGEgdHlwZWRlZiB0byBh bgotLS8vIGFycmF5IG9mIDggdWludDMyJ3MuIFRoZSB2YWx1ZSBvZiBhIEZpZWxkRWxlbWVudCwg YSwgaXM6Ci0tLy8gICBhWzBdICsgMioqMjjCt2FbMV0gKyAyKio1NsK3YVsxXSArIC4uLiArIDIq KjE5NsK3YVs3XQotLS8vCi0tLy8gVXNpbmcgMjgtYml0IGxpbWJzIG1lYW5zIHRoYXQgdGhlcmUn cyBvbmx5IDQgYml0cyBvZiBoZWFkcm9vbSwgd2hpY2ggaXMgbGVzcwotLS8vIHRoYW4gd2Ugd291 bGQgcmVhbGx5IGxpa2UuIEJ1dCBpdCBoYXMgdGhlIHVzZWZ1bCBmZWF0dXJlIHRoYXQgd2UgaGl0 IDIqKjIyNAotLS8vIGV4YWN0bHksIG1ha2luZyB0aGUgcmVmbGVjdGlvbnMgZHVyaW5nIGEgcmVk dWNlIG11Y2ggbmljZXIuCi0tdHlwZSBwMjI0RmllbGRFbGVtZW50IFs4XXVpbnQzMgotLQotLS8v IHAyMjRQIGlzIHRoZSBvcmRlciBvZiB0aGUgZmllbGQsIHJlcHJlc2VudGVkIGFzIGEgcDIyNEZp ZWxkRWxlbWVudC4KLS12YXIgcDIyNFAgPSBbOF11aW50MzJ7MSwgMCwgMCwgMHhmZmZmMDAwLCAw eGZmZmZmZmYsIDB4ZmZmZmZmZiwgMHhmZmZmZmZmLCAweGZmZmZmZmZ9Ci0tCi0tLy8gcDIyNElz WmVybyByZXR1cm5zIDEgaWYgYSA9PSAwIG1vZCBwIGFuZCAwIG90aGVyd2lzZS4KLS0vLwotLS8v IGFbaV0gPCAyKioyOQotLWZ1bmMgcDIyNElzWmVybyhhICpwMjI0RmllbGRFbGVtZW50KSB1aW50 MzIgewotLQkvLyBTaW5jZSBhIHAyMjRGaWVsZEVsZW1lbnQgY29udGFpbnMgMjI0IGJpdHMgdGhl cmUgYXJlIHR3byBwb3NzaWJsZQotLQkvLyByZXByZXNlbnRhdGlvbnMgb2YgMDogMCBhbmQgcC4K LS0JdmFyIG1pbmltYWwgcDIyNEZpZWxkRWxlbWVudAotLQlwMjI0Q29udHJhY3QoJm1pbmltYWws IGEpCi0tCi0tCXZhciBpc1plcm8sIGlzUCB1aW50MzIKLS0JZm9yIGksIHYgOj0gcmFuZ2UgbWlu aW1hbCB7Ci0tCQlpc1plcm8gfD0gdgotLQkJaXNQIHw9IHYgLSBwMjI0UFtpXQotLQl9Ci0tCi0t CS8vIElmIGVpdGhlciBpc1plcm8gb3IgaXNQIGlzIDAsIHRoZW4gd2Ugc2hvdWxkIHJldHVybiAx LgotLQlpc1plcm8gfD0gaXNaZXJvID4+IDE2Ci0tCWlzWmVybyB8PSBpc1plcm8gPj4gOAotLQlp c1plcm8gfD0gaXNaZXJvID4+IDQKLS0JaXNaZXJvIHw9IGlzWmVybyA+PiAyCi0tCWlzWmVybyB8 PSBpc1plcm8gPj4gMQotLQotLQlpc1AgfD0gaXNQID4+IDE2Ci0tCWlzUCB8PSBpc1AgPj4gOAot LQlpc1AgfD0gaXNQID4+IDQKLS0JaXNQIHw9IGlzUCA+PiAyCi0tCWlzUCB8PSBpc1AgPj4gMQot LQotLQkvLyBGb3IgaXNaZXJvIGFuZCBpc1AsIHRoZSBMU0IgaXMgMCBpZmYgYWxsIHRoZSBiaXRz IGFyZSB6ZXJvLgotLQlyZXN1bHQgOj0gaXNaZXJvICYgaXNQCi0tCXJlc3VsdCA9IChecmVzdWx0 KSAmIDEKLS0KLS0JcmV0dXJuIHJlc3VsdAotLX0KLS0KLS0vLyBwMjI0QWRkIGNvbXB1dGVzICpv dXQgPSBhK2IKLS0vLwotLS8vIGFbaV0gKyBiW2ldIDwgMioqMzIKLS1mdW5jIHAyMjRBZGQob3V0 LCBhLCBiICpwMjI0RmllbGRFbGVtZW50KSB7Ci0tCWZvciBpIDo9IDA7IGkgPCA4OyBpKysgewot LQkJb3V0W2ldID0gYVtpXSArIGJbaV0KLS0JfQotLX0KLS0KLS1jb25zdCB0d28zMXAzID0gMTw8 MzEgKyAxPDwzCi0tY29uc3QgdHdvMzFtMyA9IDE8PDMxIC0gMTw8MwotLWNvbnN0IHR3bzMxbTE1 bTMgPSAxPDwzMSAtIDE8PDE1IC0gMTw8MwotLQotLS8vIHAyMjRaZXJvTW9kUDMxIGlzIDAgbW9k IHAgd2hlcmUgYml0IDMxIGlzIHNldCBpbiBhbGwgbGltYnMgc28gdGhhdCB3ZSBjYW4KLS0vLyBz dWJ0cmFjdCBzbWFsbGVyIGFtb3VudHMgd2l0aG91dCB1bmRlcmZsb3cuIFNlZSB0aGUgc2VjdGlv biAiU3VidHJhY3Rpb24iIGluCi0tLy8gWzFdIGZvciByZWFzb25pbmcuCi0tdmFyIHAyMjRaZXJv TW9kUDMxID0gW111aW50MzJ7dHdvMzFwMywgdHdvMzFtMywgdHdvMzFtMywgdHdvMzFtMTVtMywg dHdvMzFtMywgdHdvMzFtMywgdHdvMzFtMywgdHdvMzFtM30KLS0KLS0vLyBwMjI0U3ViIGNvbXB1 dGVzICpvdXQgPSBhLWIKLS0vLwotLS8vIGFbaV0sIGJbaV0gPCAyKiozMAotLS8vIG91dFtpXSA8 IDIqKjMyCi0tZnVuYyBwMjI0U3ViKG91dCwgYSwgYiAqcDIyNEZpZWxkRWxlbWVudCkgewotLQlm b3IgaSA6PSAwOyBpIDwgODsgaSsrIHsKLS0JCW91dFtpXSA9IGFbaV0gKyBwMjI0WmVyb01vZFAz MVtpXSAtIGJbaV0KLS0JfQotLX0KLS0KLS0vLyBMYXJnZUZpZWxkRWxlbWVudCBhbHNvIHJlcHJl c2VudHMgYW4gZWxlbWVudCBvZiB0aGUgZmllbGQuIFRoZSBsaW1icyBhcmUKLS0vLyBzdGlsbCBz cGFjZWQgMjgtYml0cyBhcGFydCBhbmQgaW4gbGl0dGxlLWVuZGlhbiBvcmRlci4gU28gdGhlIGxp bWJzIGFyZSBhdAotLS8vIDAsIDI4LCA1NiwgLi4uLCAzOTIgYml0cywgZWFjaCA2NC1iaXRzIHdp ZGUuCi0tdHlwZSBwMjI0TGFyZ2VGaWVsZEVsZW1lbnQgWzE1XXVpbnQ2NAotLQotLWNvbnN0IHR3 bzYzcDM1ID0gMTw8NjMgKyAxPDwzNQotLWNvbnN0IHR3bzYzbTM1ID0gMTw8NjMgLSAxPDwzNQot LWNvbnN0IHR3bzYzbTM1bTE5ID0gMTw8NjMgLSAxPDwzNSAtIDE8PDE5Ci0tCi0tLy8gcDIyNFpl cm9Nb2RQNjMgaXMgMCBtb2QgcCB3aGVyZSBiaXQgNjMgaXMgc2V0IGluIGFsbCBsaW1icy4gU2Vl IHRoZSBzZWN0aW9uCi0tLy8gIlN1YnRyYWN0aW9uIiBpbiBbMV0gZm9yIHdoeS4KLS12YXIgcDIy NFplcm9Nb2RQNjMgPSBbOF11aW50NjR7dHdvNjNwMzUsIHR3bzYzbTM1LCB0d282M20zNSwgdHdv NjNtMzUsIHR3bzYzbTM1bTE5LCB0d282M20zNSwgdHdvNjNtMzUsIHR3bzYzbTM1fQotLQotLWNv bnN0IGJvdHRvbTEyQml0cyA9IDB4ZmZmCi0tY29uc3QgYm90dG9tMjhCaXRzID0gMHhmZmZmZmZm Ci0tCi0tLy8gcDIyNE11bCBjb21wdXRlcyAqb3V0ID0gYSpiCi0tLy8KLS0vLyBhW2ldIDwgMioq MjksIGJbaV0gPCAyKiozMCAob3IgdmljZSB2ZXJzYSkKLS0vLyBvdXRbaV0gPCAyKioyOQotLWZ1 bmMgcDIyNE11bChvdXQsIGEsIGIgKnAyMjRGaWVsZEVsZW1lbnQsIHRtcCAqcDIyNExhcmdlRmll bGRFbGVtZW50KSB7Ci0tCWZvciBpIDo9IDA7IGkgPCAxNTsgaSsrIHsKLS0JCXRtcFtpXSA9IDAK LS0JfQotLQotLQlmb3IgaSA6PSAwOyBpIDwgODsgaSsrIHsKLS0JCWZvciBqIDo9IDA7IGogPCA4 OyBqKysgewotLQkJCXRtcFtpK2pdICs9IHVpbnQ2NChhW2ldKSAqIHVpbnQ2NChiW2pdKQotLQkJ fQotLQl9Ci0tCi0tCXAyMjRSZWR1Y2VMYXJnZShvdXQsIHRtcCkKLS19Ci0tCi0tLy8gU3F1YXJl IGNvbXB1dGVzICpvdXQgPSBhKmEKLS0vLwotLS8vIGFbaV0gPCAyKioyOQotLS8vIG91dFtpXSA8 IDIqKjI5Ci0tZnVuYyBwMjI0U3F1YXJlKG91dCwgYSAqcDIyNEZpZWxkRWxlbWVudCwgdG1wICpw MjI0TGFyZ2VGaWVsZEVsZW1lbnQpIHsKLS0JZm9yIGkgOj0gMDsgaSA8IDE1OyBpKysgewotLQkJ dG1wW2ldID0gMAotLQl9Ci0tCi0tCWZvciBpIDo9IDA7IGkgPCA4OyBpKysgewotLQkJZm9yIGog Oj0gMDsgaiA8PSBpOyBqKysgewotLQkJCXIgOj0gdWludDY0KGFbaV0pICogdWludDY0KGFbal0p Ci0tCQkJaWYgaSA9PSBqIHsKLS0JCQkJdG1wW2kral0gKz0gcgotLQkJCX0gZWxzZSB7Ci0tCQkJ CXRtcFtpK2pdICs9IHIgPDwgMQotLQkJCX0KLS0JCX0KLS0JfQotLQotLQlwMjI0UmVkdWNlTGFy Z2Uob3V0LCB0bXApCi0tfQotLQotLS8vIFJlZHVjZUxhcmdlIGNvbnZlcnRzIGEgcDIyNExhcmdl RmllbGRFbGVtZW50IHRvIGEgcDIyNEZpZWxkRWxlbWVudC4KLS0vLwotLS8vIGluW2ldIDwgMioq NjIKLS1mdW5jIHAyMjRSZWR1Y2VMYXJnZShvdXQgKnAyMjRGaWVsZEVsZW1lbnQsIGluICpwMjI0 TGFyZ2VGaWVsZEVsZW1lbnQpIHsKLS0JZm9yIGkgOj0gMDsgaSA8IDg7IGkrKyB7Ci0tCQlpbltp XSArPSBwMjI0WmVyb01vZFA2M1tpXQotLQl9Ci0tCi0tCS8vIEVsaW1pbmF0ZSB0aGUgY29lZmZp Y2llbnRzIGF0IDIqKjIyNCBhbmQgZ3JlYXRlci4KLS0JZm9yIGkgOj0gMTQ7IGkgPj0gODsgaS0t IHsKLS0JCWluW2ktOF0gLT0gaW5baV0KLS0JCWluW2ktNV0gKz0gKGluW2ldICYgMHhmZmZmKSA8 PCAxMgotLQkJaW5baS00XSArPSBpbltpXSA+PiAxNgotLQl9Ci0tCWluWzhdID0gMAotLQkvLyBp blswLi44XSA8IDIqKjY0Ci0tCi0tCS8vIEFzIHRoZSB2YWx1ZXMgYmVjb21lIHNtYWxsIGVub3Vn aCwgd2Ugc3RhcnQgdG8gc3RvcmUgdGhlbSBpbiB8b3V0fAotLQkvLyBhbmQgdXNlIDMyLWJpdCBv cGVyYXRpb25zLgotLQlmb3IgaSA6PSAxOyBpIDwgODsgaSsrIHsKLS0JCWluW2krMV0gKz0gaW5b aV0gPj4gMjgKLS0JCW91dFtpXSA9IHVpbnQzMihpbltpXSAmIGJvdHRvbTI4Qml0cykKLS0JfQot LQlpblswXSAtPSBpbls4XQotLQlvdXRbM10gKz0gdWludDMyKGluWzhdJjB4ZmZmZikgPDwgMTIK LS0Jb3V0WzRdICs9IHVpbnQzMihpbls4XSA+PiAxNikKLS0JLy8gaW5bMF0gPCAyKio2NAotLQkv LyBvdXRbM10gPCAyKioyOQotLQkvLyBvdXRbNF0gPCAyKioyOQotLQkvLyBvdXRbMSwyLDUuLjdd IDwgMioqMjgKLS0KLS0Jb3V0WzBdID0gdWludDMyKGluWzBdICYgYm90dG9tMjhCaXRzKQotLQlv dXRbMV0gKz0gdWludDMyKChpblswXSA+PiAyOCkgJiBib3R0b20yOEJpdHMpCi0tCW91dFsyXSAr PSB1aW50MzIoaW5bMF0gPj4gNTYpCi0tCS8vIG91dFswXSA8IDIqKjI4Ci0tCS8vIG91dFsxLi40 XSA8IDIqKjI5Ci0tCS8vIG91dFs1Li43XSA8IDIqKjI4Ci0tfQotLQotLS8vIFJlZHVjZSByZWR1 Y2VzIHRoZSBjb2VmZmljaWVudHMgb2YgYSB0byBzbWFsbGVyIGJvdW5kcy4KLS0vLwotLS8vIE9u IGVudHJ5OiBhW2ldIDwgMioqMzEgKyAyKiozMAotLS8vIE9uIGV4aXQ6IGFbaV0gPCAyKioyOQot LWZ1bmMgcDIyNFJlZHVjZShhICpwMjI0RmllbGRFbGVtZW50KSB7Ci0tCWZvciBpIDo9IDA7IGkg PCA3OyBpKysgewotLQkJYVtpKzFdICs9IGFbaV0gPj4gMjgKLS0JCWFbaV0gJj0gYm90dG9tMjhC aXRzCi0tCX0KLS0JdG9wIDo9IGFbN10gPj4gMjgKLS0JYVs3XSAmPSBib3R0b20yOEJpdHMKLS0K LS0JLy8gdG9wIDwgMioqNAotLQltYXNrIDo9IHRvcAotLQltYXNrIHw9IG1hc2sgPj4gMgotLQlt YXNrIHw9IG1hc2sgPj4gMQotLQltYXNrIDw8PSAzMQotLQltYXNrID0gdWludDMyKGludDMyKG1h c2spID4+IDMxKQotLQkvLyBNYXNrIGlzIGFsbCBvbmVzIGlmIHRvcCAhPSAwLCBhbGwgemVybyBv dGhlcndpc2UKLS0KLS0JYVswXSAtPSB0b3AKLS0JYVszXSArPSB0b3AgPDwgMTIKLS0KLS0JLy8g V2UgbWF5IGhhdmUganVzdCBtYWRlIGFbMF0gbmVnYXRpdmUgYnV0LCBpZiB3ZSBkaWQsIHRoZW4g d2UgbXVzdAotLQkvLyBoYXZlIGFkZGVkIHNvbWV0aGluZyB0byBhWzNdLCB0aGlzIGl0J3MgPiAy KioxMi4gVGhlcmVmb3JlIHdlIGNhbgotLQkvLyBjYXJyeSBkb3duIHRvIGFbMF0uCi0tCWFbM10g LT0gMSAmIG1hc2sKLS0JYVsyXSArPSBtYXNrICYgKDE8PDI4IC0gMSkKLS0JYVsxXSArPSBtYXNr ICYgKDE8PDI4IC0gMSkKLS0JYVswXSArPSBtYXNrICYgKDEgPDwgMjgpCi0tfQotLQotLS8vIHAy MjRJbnZlcnQgY2FsY3VsYXRlcyAqb3V0ID0gaW4qKi0xIGJ5IGNvbXB1dGluZyBpbioqKDIqKjIy NCAtIDIqKjk2IC0gMSksCi0tLy8gaS5lLiBGZXJtYXQncyBsaXR0bGUgdGhlb3JlbS4KLS1mdW5j IHAyMjRJbnZlcnQob3V0LCBpbiAqcDIyNEZpZWxkRWxlbWVudCkgewotLQl2YXIgZjEsIGYyLCBm MywgZjQgcDIyNEZpZWxkRWxlbWVudAotLQl2YXIgYyBwMjI0TGFyZ2VGaWVsZEVsZW1lbnQKLS0K LS0JcDIyNFNxdWFyZSgmZjEsIGluLCAmYykgICAgLy8gMgotLQlwMjI0TXVsKCZmMSwgJmYxLCBp biwgJmMpICAvLyAyKioyIC0gMQotLQlwMjI0U3F1YXJlKCZmMSwgJmYxLCAmYykgICAvLyAyKioz IC0gMgotLQlwMjI0TXVsKCZmMSwgJmYxLCBpbiwgJmMpICAvLyAyKiozIC0gMQotLQlwMjI0U3F1 YXJlKCZmMiwgJmYxLCAmYykgICAvLyAyKio0IC0gMgotLQlwMjI0U3F1YXJlKCZmMiwgJmYyLCAm YykgICAvLyAyKio1IC0gNAotLQlwMjI0U3F1YXJlKCZmMiwgJmYyLCAmYykgICAvLyAyKio2IC0g OAotLQlwMjI0TXVsKCZmMSwgJmYxLCAmZjIsICZjKSAvLyAyKio2IC0gMQotLQlwMjI0U3F1YXJl KCZmMiwgJmYxLCAmYykgICAvLyAyKio3IC0gMgotLQlmb3IgaSA6PSAwOyBpIDwgNTsgaSsrIHsg ICAvLyAyKioxMiAtIDIqKjYKLS0JCXAyMjRTcXVhcmUoJmYyLCAmZjIsICZjKQotLQl9Ci0tCXAy MjRNdWwoJmYyLCAmZjIsICZmMSwgJmMpIC8vIDIqKjEyIC0gMQotLQlwMjI0U3F1YXJlKCZmMywg JmYyLCAmYykgICAvLyAyKioxMyAtIDIKLS0JZm9yIGkgOj0gMDsgaSA8IDExOyBpKysgeyAgLy8g MioqMjQgLSAyKioxMgotLQkJcDIyNFNxdWFyZSgmZjMsICZmMywgJmMpCi0tCX0KLS0JcDIyNE11 bCgmZjIsICZmMywgJmYyLCAmYykgLy8gMioqMjQgLSAxCi0tCXAyMjRTcXVhcmUoJmYzLCAmZjIs ICZjKSAgIC8vIDIqKjI1IC0gMgotLQlmb3IgaSA6PSAwOyBpIDwgMjM7IGkrKyB7ICAvLyAyKio0 OCAtIDIqKjI0Ci0tCQlwMjI0U3F1YXJlKCZmMywgJmYzLCAmYykKLS0JfQotLQlwMjI0TXVsKCZm MywgJmYzLCAmZjIsICZjKSAvLyAyKio0OCAtIDEKLS0JcDIyNFNxdWFyZSgmZjQsICZmMywgJmMp ICAgLy8gMioqNDkgLSAyCi0tCWZvciBpIDo9IDA7IGkgPCA0NzsgaSsrIHsgIC8vIDIqKjk2IC0g MioqNDgKLS0JCXAyMjRTcXVhcmUoJmY0LCAmZjQsICZjKQotLQl9Ci0tCXAyMjRNdWwoJmYzLCAm ZjMsICZmNCwgJmMpIC8vIDIqKjk2IC0gMQotLQlwMjI0U3F1YXJlKCZmNCwgJmYzLCAmYykgICAv LyAyKio5NyAtIDIKLS0JZm9yIGkgOj0gMDsgaSA8IDIzOyBpKysgeyAgLy8gMioqMTIwIC0gMioq MjQKLS0JCXAyMjRTcXVhcmUoJmY0LCAmZjQsICZjKQotLQl9Ci0tCXAyMjRNdWwoJmYyLCAmZjQs ICZmMiwgJmMpIC8vIDIqKjEyMCAtIDEKLS0JZm9yIGkgOj0gMDsgaSA8IDY7IGkrKyB7ICAgLy8g MioqMTI2IC0gMioqNgotLQkJcDIyNFNxdWFyZSgmZjIsICZmMiwgJmMpCi0tCX0KLS0JcDIyNE11 bCgmZjEsICZmMSwgJmYyLCAmYykgLy8gMioqMTI2IC0gMQotLQlwMjI0U3F1YXJlKCZmMSwgJmYx LCAmYykgICAvLyAyKioxMjcgLSAyCi0tCXAyMjRNdWwoJmYxLCAmZjEsIGluLCAmYykgIC8vIDIq KjEyNyAtIDEKLS0JZm9yIGkgOj0gMDsgaSA8IDk3OyBpKysgeyAgLy8gMioqMjI0IC0gMioqOTcK LS0JCXAyMjRTcXVhcmUoJmYxLCAmZjEsICZjKQotLQl9Ci0tCXAyMjRNdWwob3V0LCAmZjEsICZm MywgJmMpIC8vIDIqKjIyNCAtIDIqKjk2IC0gMQotLX0KLS0KLS0vLyBwMjI0Q29udHJhY3QgY29u dmVydHMgYSBGaWVsZEVsZW1lbnQgdG8gaXRzIHVuaXF1ZSwgbWluaW1hbCBmb3JtLgotLS8vCi0t Ly8gT24gZW50cnksIGluW2ldIDwgMioqMjkKLS0vLyBPbiBleGl0LCBpbltpXSA8IDIqKjI4Ci0t ZnVuYyBwMjI0Q29udHJhY3Qob3V0LCBpbiAqcDIyNEZpZWxkRWxlbWVudCkgewotLQljb3B5KG91 dFs6XSwgaW5bOl0pCi0tCi0tCWZvciBpIDo9IDA7IGkgPCA3OyBpKysgewotLQkJb3V0W2krMV0g Kz0gb3V0W2ldID4+IDI4Ci0tCQlvdXRbaV0gJj0gYm90dG9tMjhCaXRzCi0tCX0KLS0JdG9wIDo9 IG91dFs3XSA+PiAyOAotLQlvdXRbN10gJj0gYm90dG9tMjhCaXRzCi0tCi0tCW91dFswXSAtPSB0 b3AKLS0Jb3V0WzNdICs9IHRvcCA8PCAxMgotLQotLQkvLyBXZSBtYXkganVzdCBoYXZlIG1hZGUg b3V0W2ldIG5lZ2F0aXZlLiBTbyB3ZSBjYXJyeSBkb3duLiBJZiB3ZSBtYWRlCi0tCS8vIG91dFsw XSBuZWdhdGl2ZSB0aGVuIHdlIGtub3cgdGhhdCBvdXRbM10gaXMgc3VmZmljaWVudGx5IHBvc2l0 aXZlCi0tCS8vIGJlY2F1c2Ugd2UganVzdCBhZGRlZCB0byBpdC4KLS0JZm9yIGkgOj0gMDsgaSA8 IDM7IGkrKyB7Ci0tCQltYXNrIDo9IHVpbnQzMihpbnQzMihvdXRbaV0pID4+IDMxKQotLQkJb3V0 W2ldICs9ICgxIDw8IDI4KSAmIG1hc2sKLS0JCW91dFtpKzFdIC09IDEgJiBtYXNrCi0tCX0KLS0K LS0JLy8gV2UgbWlnaHQgaGF2ZSBwdXNoZWQgb3V0WzNdIG92ZXIgMioqMjggc28gd2UgcGVyZm9y bSBhbm90aGVyLCBwYXJ0aWFsLAotLQkvLyBjYXJyeSBjaGFpbi4KLS0JZm9yIGkgOj0gMzsgaSA8 IDc7IGkrKyB7Ci0tCQlvdXRbaSsxXSArPSBvdXRbaV0gPj4gMjgKLS0JCW91dFtpXSAmPSBib3R0 b20yOEJpdHMKLS0JfQotLQl0b3AgPSBvdXRbN10gPj4gMjgKLS0Jb3V0WzddICY9IGJvdHRvbTI4 Qml0cwotLQotLQkvLyBFbGltaW5hdGUgdG9wIHdoaWxlIG1haW50YWluaW5nIHRoZSBzYW1lIHZh bHVlIG1vZCBwLgotLQlvdXRbMF0gLT0gdG9wCi0tCW91dFszXSArPSB0b3AgPDwgMTIKLS0KLS0J Ly8gVGhlcmUgYXJlIHR3byBjYXNlcyB0byBjb25zaWRlciBmb3Igb3V0WzNdOgotLQkvLyAgIDEp IFRoZSBmaXJzdCB0aW1lIHRoYXQgd2UgZWxpbWluYXRlZCB0b3AsIHdlIGRpZG4ndCBwdXNoIG91 dFszXSBvdmVyCi0tCS8vICAgICAgMioqMjguIEluIHRoaXMgY2FzZSwgdGhlIHBhcnRpYWwgY2Fy cnkgY2hhaW4gZGlkbid0IGNoYW5nZSBhbnkgdmFsdWVzCi0tCS8vICAgICAgYW5kIHRvcCBpcyB6 ZXJvLgotLQkvLyAgIDIpIFdlIGRpZCBwdXNoIG91dFszXSBvdmVyIDIqKjI4IHRoZSBmaXJzdCB0 aW1lIHRoYXQgd2UgZWxpbWluYXRlZCB0b3AuCi0tCS8vICAgICAgVGhlIGZpcnN0IHZhbHVlIG9m IHRvcCB3YXMgaW4gWzAuLjE2KSwgdGhlcmVmb3JlLCBwcmlvciB0byBlbGltaW5hdGluZwotLQkv LyAgICAgIHRoZSBmaXJzdCB0b3AsIDB4ZmZmMTAwMCA8PSBvdXRbM10gPD0gMHhmZmZmZmZmLiBU aGVyZWZvcmUsIGFmdGVyCi0tCS8vICAgICAgb3ZlcmZsb3dpbmcgYW5kIGJlaW5nIHJlZHVjZWQg YnkgdGhlIHNlY29uZCBjYXJyeSBjaGFpbiwgb3V0WzNdIDw9Ci0tCS8vICAgICAgMHhmMDAwLiBU aHVzIGl0IGNhbm5vdCBoYXZlIG92ZXJmbG93ZWQgd2hlbiB3ZSBlbGltaW5hdGVkIHRvcCBmb3Ig dGhlCi0tCS8vICAgICAgc2Vjb25kIHRpbWUuCi0tCi0tCS8vIEFnYWluLCB3ZSBtYXkganVzdCBo YXZlIG1hZGUgb3V0WzBdIG5lZ2F0aXZlLCBzbyBkbyB0aGUgc2FtZSBjYXJyeSBkb3duLgotLQkv LyBBcyBiZWZvcmUsIGlmIHdlIG1hZGUgb3V0WzBdIG5lZ2F0aXZlIHRoZW4gd2Uga25vdyB0aGF0 IG91dFszXSBpcwotLQkvLyBzdWZmaWNpZW50bHkgcG9zaXRpdmUuCi0tCWZvciBpIDo9IDA7IGkg PCAzOyBpKysgewotLQkJbWFzayA6PSB1aW50MzIoaW50MzIob3V0W2ldKSA+PiAzMSkKLS0JCW91 dFtpXSArPSAoMSA8PCAyOCkgJiBtYXNrCi0tCQlvdXRbaSsxXSAtPSAxICYgbWFzawotLQl9Ci0t Ci0tCS8vIE5vdyB3ZSBzZWUgaWYgdGhlIHZhbHVlIGlzID49IHAgYW5kLCBpZiBzbywgc3VidHJh Y3QgcC4KLS0KLS0JLy8gRmlyc3Qgd2UgYnVpbGQgYSBtYXNrIGZyb20gdGhlIHRvcCBmb3VyIGxp bWJzLCB3aGljaCBtdXN0IGFsbCBiZQotLQkvLyBlcXVhbCB0byBib3R0b20yOEJpdHMgaWYgdGhl IHdob2xlIHZhbHVlIGlzID49IHAuIElmIHRvcDRBbGxPbmVzCi0tCS8vIGVuZHMgdXAgd2l0aCBh bnkgemVybyBiaXRzIGluIHRoZSBib3R0b20gMjggYml0cywgdGhlbiB0aGlzIHdhc24ndAotLQkv LyB0cnVlLgotLQl0b3A0QWxsT25lcyA6PSB1aW50MzIoMHhmZmZmZmZmZikKLS0JZm9yIGkgOj0g NDsgaSA8IDg7IGkrKyB7Ci0tCQl0b3A0QWxsT25lcyAmPSBvdXRbaV0KLS0JfQotLQl0b3A0QWxs T25lcyB8PSAweGYwMDAwMDAwCi0tCS8vIE5vdyB3ZSByZXBsaWNhdGUgYW55IHplcm8gYml0cyB0 byBhbGwgdGhlIGJpdHMgaW4gdG9wNEFsbE9uZXMuCi0tCXRvcDRBbGxPbmVzICY9IHRvcDRBbGxP bmVzID4+IDE2Ci0tCXRvcDRBbGxPbmVzICY9IHRvcDRBbGxPbmVzID4+IDgKLS0JdG9wNEFsbE9u ZXMgJj0gdG9wNEFsbE9uZXMgPj4gNAotLQl0b3A0QWxsT25lcyAmPSB0b3A0QWxsT25lcyA+PiAy Ci0tCXRvcDRBbGxPbmVzICY9IHRvcDRBbGxPbmVzID4+IDEKLS0JdG9wNEFsbE9uZXMgPSB1aW50 MzIoaW50MzIodG9wNEFsbE9uZXM8PDMxKSA+PiAzMSkKLS0KLS0JLy8gTm93IHdlIHRlc3Qgd2hl dGhlciB0aGUgYm90dG9tIHRocmVlIGxpbWJzIGFyZSBub24temVyby4KLS0JYm90dG9tM05vblpl cm8gOj0gb3V0WzBdIHwgb3V0WzFdIHwgb3V0WzJdCi0tCWJvdHRvbTNOb25aZXJvIHw9IGJvdHRv bTNOb25aZXJvID4+IDE2Ci0tCWJvdHRvbTNOb25aZXJvIHw9IGJvdHRvbTNOb25aZXJvID4+IDgK LS0JYm90dG9tM05vblplcm8gfD0gYm90dG9tM05vblplcm8gPj4gNAotLQlib3R0b20zTm9uWmVy byB8PSBib3R0b20zTm9uWmVybyA+PiAyCi0tCWJvdHRvbTNOb25aZXJvIHw9IGJvdHRvbTNOb25a ZXJvID4+IDEKLS0JYm90dG9tM05vblplcm8gPSB1aW50MzIoaW50MzIoYm90dG9tM05vblplcm88 PDMxKSA+PiAzMSkKLS0KLS0JLy8gRXZlcnl0aGluZyBkZXBlbmRzIG9uIHRoZSB2YWx1ZSBvZiBv dXRbM10uCi0tCS8vICAgIElmIGl0J3MgPiAweGZmZmYwMDAgYW5kIHRvcDRBbGxPbmVzICE9IDAg dGhlbiB0aGUgd2hvbGUgdmFsdWUgaXMgPj0gcAotLQkvLyAgICBJZiBpdCdzID0gMHhmZmZmMDAw IGFuZCB0b3A0QWxsT25lcyAhPSAwIGFuZCBib3R0b20zTm9uWmVybyAhPSAwLAotLQkvLyAgICAg IHRoZW4gdGhlIHdob2xlIHZhbHVlIGlzID49IHAKLS0JLy8gICAgSWYgaXQncyA8IDB4ZmZmZjAw MCwgdGhlbiB0aGUgd2hvbGUgdmFsdWUgaXMgPCBwCi0tCW4gOj0gb3V0WzNdIC0gMHhmZmZmMDAw Ci0tCW91dDNFcXVhbCA6PSBuCi0tCW91dDNFcXVhbCB8PSBvdXQzRXF1YWwgPj4gMTYKLS0Jb3V0 M0VxdWFsIHw9IG91dDNFcXVhbCA+PiA4Ci0tCW91dDNFcXVhbCB8PSBvdXQzRXF1YWwgPj4gNAot LQlvdXQzRXF1YWwgfD0gb3V0M0VxdWFsID4+IDIKLS0Jb3V0M0VxdWFsIHw9IG91dDNFcXVhbCA+ PiAxCi0tCW91dDNFcXVhbCA9IF51aW50MzIoaW50MzIob3V0M0VxdWFsPDwzMSkgPj4gMzEpCi0t Ci0tCS8vIElmIG91dFszXSA+IDB4ZmZmZjAwMCB0aGVuIG4ncyBNU0Igd2lsbCBiZSB6ZXJvLgot LQlvdXQzR1QgOj0gXnVpbnQzMihpbnQzMihuKSA+PiAzMSkKLS0KLS0JbWFzayA6PSB0b3A0QWxs T25lcyAmICgob3V0M0VxdWFsICYgYm90dG9tM05vblplcm8pIHwgb3V0M0dUKQotLQlvdXRbMF0g LT0gMSAmIG1hc2sKLS0Jb3V0WzNdIC09IDB4ZmZmZjAwMCAmIG1hc2sKLS0Jb3V0WzRdIC09IDB4 ZmZmZmZmZiAmIG1hc2sKLS0Jb3V0WzVdIC09IDB4ZmZmZmZmZiAmIG1hc2sKLS0Jb3V0WzZdIC09 IDB4ZmZmZmZmZiAmIG1hc2sKLS0Jb3V0WzddIC09IDB4ZmZmZmZmZiAmIG1hc2sKLS19Ci0tCi0t Ly8gR3JvdXAgZWxlbWVudCBmdW5jdGlvbnMuCi0tLy8KLS0vLyBUaGVzZSBmdW5jdGlvbnMgZGVh bCB3aXRoIGdyb3VwIGVsZW1lbnRzLiBUaGUgZ3JvdXAgaXMgYW4gZWxsaXB0aWMgY3VydmUKLS0v LyBncm91cCB3aXRoIGEgPSAtMyBkZWZpbmVkIGluIEZJUFMgMTg2LTMsIHNlY3Rpb24gRC4yLjIu Ci0tCi0tLy8gcDIyNEFkZEphY29iaWFuIGNvbXB1dGVzICpvdXQgPSBhK2Igd2hlcmUgYSAhPSBi LgotLWZ1bmMgcDIyNEFkZEphY29iaWFuKHgzLCB5MywgejMsIHgxLCB5MSwgejEsIHgyLCB5Miwg ejIgKnAyMjRGaWVsZEVsZW1lbnQpIHsKLS0JLy8gU2VlIGh0dHA6Ly9oeXBlcmVsbGlwdGljLm9y Zy9FRkQvZzFwL2F1dG8tc2hvcnR3LWphY29iaWFuLTMuaHRtbCNhZGRpdGlvbi1wMjI0QWRkLTIw MDctYmwKLS0JdmFyIHoxejEsIHoyejIsIHUxLCB1MiwgczEsIHMyLCBoLCBpLCBqLCByLCB2IHAy MjRGaWVsZEVsZW1lbnQKLS0JdmFyIGMgcDIyNExhcmdlRmllbGRFbGVtZW50Ci0tCi0tCXoxSXNa ZXJvIDo9IHAyMjRJc1plcm8oejEpCi0tCXoySXNaZXJvIDo9IHAyMjRJc1plcm8oejIpCi0tCi0t CS8vIFoxWjEgPSBaMcKyCi0tCXAyMjRTcXVhcmUoJnoxejEsIHoxLCAmYykKLS0JLy8gWjJaMiA9 IFoywrIKLS0JcDIyNFNxdWFyZSgmejJ6MiwgejIsICZjKQotLQkvLyBVMSA9IFgxKloyWjIKLS0J cDIyNE11bCgmdTEsIHgxLCAmejJ6MiwgJmMpCi0tCS8vIFUyID0gWDIqWjFaMQotLQlwMjI0TXVs KCZ1MiwgeDIsICZ6MXoxLCAmYykKLS0JLy8gUzEgPSBZMSpaMipaMloyCi0tCXAyMjRNdWwoJnMx LCB6MiwgJnoyejIsICZjKQotLQlwMjI0TXVsKCZzMSwgeTEsICZzMSwgJmMpCi0tCS8vIFMyID0g WTIqWjEqWjFaMQotLQlwMjI0TXVsKCZzMiwgejEsICZ6MXoxLCAmYykKLS0JcDIyNE11bCgmczIs IHkyLCAmczIsICZjKQotLQkvLyBIID0gVTItVTEKLS0JcDIyNFN1YigmaCwgJnUyLCAmdTEpCi0t CXAyMjRSZWR1Y2UoJmgpCi0tCXhFcXVhbCA6PSBwMjI0SXNaZXJvKCZoKQotLQkvLyBJID0gKDIq SCnCsgotLQlmb3IgaiA6PSAwOyBqIDwgODsgaisrIHsKLS0JCWlbal0gPSBoW2pdIDw8IDEKLS0J fQotLQlwMjI0UmVkdWNlKCZpKQotLQlwMjI0U3F1YXJlKCZpLCAmaSwgJmMpCi0tCS8vIEogPSBI KkkKLS0JcDIyNE11bCgmaiwgJmgsICZpLCAmYykKLS0JLy8gciA9IDIqKFMyLVMxKQotLQlwMjI0 U3ViKCZyLCAmczIsICZzMSkKLS0JcDIyNFJlZHVjZSgmcikKLS0JeUVxdWFsIDo9IHAyMjRJc1pl cm8oJnIpCi0tCWlmIHhFcXVhbCA9PSAxICYmIHlFcXVhbCA9PSAxICYmIHoxSXNaZXJvID09IDAg JiYgejJJc1plcm8gPT0gMCB7Ci0tCQlwMjI0RG91YmxlSmFjb2JpYW4oeDMsIHkzLCB6MywgeDEs IHkxLCB6MSkKLS0JCXJldHVybgotLQl9Ci0tCWZvciBpIDo9IDA7IGkgPCA4OyBpKysgewotLQkJ cltpXSA8PD0gMQotLQl9Ci0tCXAyMjRSZWR1Y2UoJnIpCi0tCS8vIFYgPSBVMSpJCi0tCXAyMjRN dWwoJnYsICZ1MSwgJmksICZjKQotLQkvLyBaMyA9ICgoWjErWjIpwrItWjFaMS1aMloyKSpICi0t CXAyMjRBZGQoJnoxejEsICZ6MXoxLCAmejJ6MikKLS0JcDIyNEFkZCgmejJ6MiwgejEsIHoyKQot LQlwMjI0UmVkdWNlKCZ6MnoyKQotLQlwMjI0U3F1YXJlKCZ6MnoyLCAmejJ6MiwgJmMpCi0tCXAy MjRTdWIoejMsICZ6MnoyLCAmejF6MSkKLS0JcDIyNFJlZHVjZSh6MykKLS0JcDIyNE11bCh6Mywg ejMsICZoLCAmYykKLS0JLy8gWDMgPSBywrItSi0yKlYKLS0JZm9yIGkgOj0gMDsgaSA8IDg7IGkr KyB7Ci0tCQl6MXoxW2ldID0gdltpXSA8PCAxCi0tCX0KLS0JcDIyNEFkZCgmejF6MSwgJmosICZ6 MXoxKQotLQlwMjI0UmVkdWNlKCZ6MXoxKQotLQlwMjI0U3F1YXJlKHgzLCAmciwgJmMpCi0tCXAy MjRTdWIoeDMsIHgzLCAmejF6MSkKLS0JcDIyNFJlZHVjZSh4MykKLS0JLy8gWTMgPSByKihWLVgz KS0yKlMxKkoKLS0JZm9yIGkgOj0gMDsgaSA8IDg7IGkrKyB7Ci0tCQlzMVtpXSA8PD0gMQotLQl9 Ci0tCXAyMjRNdWwoJnMxLCAmczEsICZqLCAmYykKLS0JcDIyNFN1YigmejF6MSwgJnYsIHgzKQot LQlwMjI0UmVkdWNlKCZ6MXoxKQotLQlwMjI0TXVsKCZ6MXoxLCAmejF6MSwgJnIsICZjKQotLQlw MjI0U3ViKHkzLCAmejF6MSwgJnMxKQotLQlwMjI0UmVkdWNlKHkzKQotLQotLQlwMjI0Q29weUNv bmRpdGlvbmFsKHgzLCB4MiwgejFJc1plcm8pCi0tCXAyMjRDb3B5Q29uZGl0aW9uYWwoeDMsIHgx LCB6MklzWmVybykKLS0JcDIyNENvcHlDb25kaXRpb25hbCh5MywgeTIsIHoxSXNaZXJvKQotLQlw MjI0Q29weUNvbmRpdGlvbmFsKHkzLCB5MSwgejJJc1plcm8pCi0tCXAyMjRDb3B5Q29uZGl0aW9u YWwoejMsIHoyLCB6MUlzWmVybykKLS0JcDIyNENvcHlDb25kaXRpb25hbCh6MywgejEsIHoySXNa ZXJvKQotLX0KLS0KLS0vLyBwMjI0RG91YmxlSmFjb2JpYW4gY29tcHV0ZXMgKm91dCA9IGErYS4K LS1mdW5jIHAyMjREb3VibGVKYWNvYmlhbih4MywgeTMsIHozLCB4MSwgeTEsIHoxICpwMjI0Rmll bGRFbGVtZW50KSB7Ci0tCXZhciBkZWx0YSwgZ2FtbWEsIGJldGEsIGFscGhhLCB0IHAyMjRGaWVs ZEVsZW1lbnQKLS0JdmFyIGMgcDIyNExhcmdlRmllbGRFbGVtZW50Ci0tCi0tCXAyMjRTcXVhcmUo JmRlbHRhLCB6MSwgJmMpCi0tCXAyMjRTcXVhcmUoJmdhbW1hLCB5MSwgJmMpCi0tCXAyMjRNdWwo JmJldGEsIHgxLCAmZ2FtbWEsICZjKQotLQotLQkvLyBhbHBoYSA9IDMqKFgxLWRlbHRhKSooWDEr ZGVsdGEpCi0tCXAyMjRBZGQoJnQsIHgxLCAmZGVsdGEpCi0tCWZvciBpIDo9IDA7IGkgPCA4OyBp KysgewotLQkJdFtpXSArPSB0W2ldIDw8IDEKLS0JfQotLQlwMjI0UmVkdWNlKCZ0KQotLQlwMjI0 U3ViKCZhbHBoYSwgeDEsICZkZWx0YSkKLS0JcDIyNFJlZHVjZSgmYWxwaGEpCi0tCXAyMjRNdWwo JmFscGhhLCAmYWxwaGEsICZ0LCAmYykKLS0KLS0JLy8gWjMgPSAoWTErWjEpwrItZ2FtbWEtZGVs dGEKLS0JcDIyNEFkZCh6MywgeTEsIHoxKQotLQlwMjI0UmVkdWNlKHozKQotLQlwMjI0U3F1YXJl KHozLCB6MywgJmMpCi0tCXAyMjRTdWIoejMsIHozLCAmZ2FtbWEpCi0tCXAyMjRSZWR1Y2UoejMp Ci0tCXAyMjRTdWIoejMsIHozLCAmZGVsdGEpCi0tCXAyMjRSZWR1Y2UoejMpCi0tCi0tCS8vIFgz ID0gYWxwaGHCsi04KmJldGEKLS0JZm9yIGkgOj0gMDsgaSA8IDg7IGkrKyB7Ci0tCQlkZWx0YVtp XSA9IGJldGFbaV0gPDwgMwotLQl9Ci0tCXAyMjRSZWR1Y2UoJmRlbHRhKQotLQlwMjI0U3F1YXJl KHgzLCAmYWxwaGEsICZjKQotLQlwMjI0U3ViKHgzLCB4MywgJmRlbHRhKQotLQlwMjI0UmVkdWNl KHgzKQotLQotLQkvLyBZMyA9IGFscGhhKig0KmJldGEtWDMpLTgqZ2FtbWHCsgotLQlmb3IgaSA6 PSAwOyBpIDwgODsgaSsrIHsKLS0JCWJldGFbaV0gPDw9IDIKLS0JfQotLQlwMjI0U3ViKCZiZXRh LCAmYmV0YSwgeDMpCi0tCXAyMjRSZWR1Y2UoJmJldGEpCi0tCXAyMjRTcXVhcmUoJmdhbW1hLCAm Z2FtbWEsICZjKQotLQlmb3IgaSA6PSAwOyBpIDwgODsgaSsrIHsKLS0JCWdhbW1hW2ldIDw8PSAz Ci0tCX0KLS0JcDIyNFJlZHVjZSgmZ2FtbWEpCi0tCXAyMjRNdWwoeTMsICZhbHBoYSwgJmJldGEs ICZjKQotLQlwMjI0U3ViKHkzLCB5MywgJmdhbW1hKQotLQlwMjI0UmVkdWNlKHkzKQotLX0KLS0K LS0vLyBwMjI0Q29weUNvbmRpdGlvbmFsIHNldHMgKm91dCA9ICppbiBpZmYgdGhlIGxlYXN0LXNp Z25pZmljYW50LWJpdCBvZiBjb250cm9sCi0tLy8gaXMgdHJ1ZSwgYW5kIGl0IHJ1bnMgaW4gY29u c3RhbnQgdGltZS4KLS1mdW5jIHAyMjRDb3B5Q29uZGl0aW9uYWwob3V0LCBpbiAqcDIyNEZpZWxk RWxlbWVudCwgY29udHJvbCB1aW50MzIpIHsKLS0JY29udHJvbCA8PD0gMzEKLS0JY29udHJvbCA9 IHVpbnQzMihpbnQzMihjb250cm9sKSA+PiAzMSkKLS0KLS0JZm9yIGkgOj0gMDsgaSA8IDg7IGkr KyB7Ci0tCQlvdXRbaV0gXj0gKG91dFtpXSBeIGluW2ldKSAmIGNvbnRyb2wKLS0JfQotLX0KLS0K LS1mdW5jIHAyMjRTY2FsYXJNdWx0KG91dFgsIG91dFksIG91dFosIGluWCwgaW5ZLCBpblogKnAy MjRGaWVsZEVsZW1lbnQsIHNjYWxhciBbXWJ5dGUpIHsKLS0JdmFyIHh4LCB5eSwgenogcDIyNEZp ZWxkRWxlbWVudAotLQlmb3IgaSA6PSAwOyBpIDwgODsgaSsrIHsKLS0JCW91dFhbaV0gPSAwCi0t CQlvdXRZW2ldID0gMAotLQkJb3V0WltpXSA9IDAKLS0JfQotLQotLQlmb3IgXywgYnl0ZSA6PSBy YW5nZSBzY2FsYXIgewotLQkJZm9yIGJpdE51bSA6PSB1aW50KDApOyBiaXROdW0gPCA4OyBiaXRO dW0rKyB7Ci0tCQkJcDIyNERvdWJsZUphY29iaWFuKG91dFgsIG91dFksIG91dFosIG91dFgsIG91 dFksIG91dFopCi0tCQkJYml0IDo9IHVpbnQzMigoYnl0ZSA+PiAoNyAtIGJpdE51bSkpICYgMSkK LS0JCQlwMjI0QWRkSmFjb2JpYW4oJnh4LCAmeXksICZ6eiwgaW5YLCBpblksIGluWiwgb3V0WCwg b3V0WSwgb3V0WikKLS0JCQlwMjI0Q29weUNvbmRpdGlvbmFsKG91dFgsICZ4eCwgYml0KQotLQkJ CXAyMjRDb3B5Q29uZGl0aW9uYWwob3V0WSwgJnl5LCBiaXQpCi0tCQkJcDIyNENvcHlDb25kaXRp b25hbChvdXRaLCAmenosIGJpdCkKLS0JCX0KLS0JfQotLX0KLS0KLS0vLyBwMjI0VG9BZmZpbmUg Y29udmVydHMgZnJvbSBKYWNvYmlhbiB0byBhZmZpbmUgZm9ybS4KLS1mdW5jIHAyMjRUb0FmZmlu ZSh4LCB5LCB6ICpwMjI0RmllbGRFbGVtZW50KSAoKmJpZy5JbnQsICpiaWcuSW50KSB7Ci0tCXZh ciB6aW52LCB6aW52c3EsIG91dHgsIG91dHkgcDIyNEZpZWxkRWxlbWVudAotLQl2YXIgdG1wIHAy MjRMYXJnZUZpZWxkRWxlbWVudAotLQotLQlpZiBpc1BvaW50QXRJbmZpbml0eSA6PSBwMjI0SXNa ZXJvKHopOyBpc1BvaW50QXRJbmZpbml0eSA9PSAxIHsKLS0JCXJldHVybiBuZXcoYmlnLkludCks IG5ldyhiaWcuSW50KQotLQl9Ci0tCi0tCXAyMjRJbnZlcnQoJnppbnYsIHopCi0tCXAyMjRTcXVh cmUoJnppbnZzcSwgJnppbnYsICZ0bXApCi0tCXAyMjRNdWwoeCwgeCwgJnppbnZzcSwgJnRtcCkK LS0JcDIyNE11bCgmemludnNxLCAmemludnNxLCAmemludiwgJnRtcCkKLS0JcDIyNE11bCh5LCB5 LCAmemludnNxLCAmdG1wKQotLQotLQlwMjI0Q29udHJhY3QoJm91dHgsIHgpCi0tCXAyMjRDb250 cmFjdCgmb3V0eSwgeSkKLS0JcmV0dXJuIHAyMjRUb0JpZygmb3V0eCksIHAyMjRUb0JpZygmb3V0 eSkKLS19Ci0tCi0tLy8gZ2V0MjhCaXRzRnJvbUVuZCByZXR1cm5zIHRoZSBsZWFzdC1zaWduaWZp Y2FudCAyOCBiaXRzIGZyb20gYnVmPj5zaGlmdCwKLS0vLyB3aGVyZSBidWYgaXMgaW50ZXJwcmV0 ZWQgYXMgYSBiaWctZW5kaWFuIG51bWJlci4KLS1mdW5jIGdldDI4Qml0c0Zyb21FbmQoYnVmIFtd Ynl0ZSwgc2hpZnQgdWludCkgKHVpbnQzMiwgW11ieXRlKSB7Ci0tCXZhciByZXQgdWludDMyCi0t Ci0tCWZvciBpIDo9IHVpbnQoMCk7IGkgPCA0OyBpKysgewotLQkJdmFyIGIgYnl0ZQotLQkJaWYg bCA6PSBsZW4oYnVmKTsgbCA+IDAgewotLQkJCWIgPSBidWZbbC0xXQotLQkJCS8vIFdlIGRvbid0 IHJlbW92ZSB0aGUgYnl0ZSBpZiB3ZSdyZSBhYm91dCB0byByZXR1cm4gYW5kIHdlJ3JlIG5vdAot LQkJCS8vIHJlYWRpbmcgYWxsIG9mIGl0LgotLQkJCWlmIGkgIT0gMyB8fCBzaGlmdCA9PSA0IHsK LS0JCQkJYnVmID0gYnVmWzpsLTFdCi0tCQkJfQotLQkJfQotLQkJcmV0IHw9IHVpbnQzMihiKSA8 PCAoOCAqIGkpID4+IHNoaWZ0Ci0tCX0KLS0JcmV0ICY9IGJvdHRvbTI4Qml0cwotLQlyZXR1cm4g cmV0LCBidWYKLS19Ci0tCi0tLy8gcDIyNEZyb21CaWcgc2V0cyAqb3V0ID0gKmluLgotLWZ1bmMg cDIyNEZyb21CaWcob3V0ICpwMjI0RmllbGRFbGVtZW50LCBpbiAqYmlnLkludCkgewotLQlieXRl cyA6PSBpbi5CeXRlcygpCi0tCW91dFswXSwgYnl0ZXMgPSBnZXQyOEJpdHNGcm9tRW5kKGJ5dGVz LCAwKQotLQlvdXRbMV0sIGJ5dGVzID0gZ2V0MjhCaXRzRnJvbUVuZChieXRlcywgNCkKLS0Jb3V0 WzJdLCBieXRlcyA9IGdldDI4Qml0c0Zyb21FbmQoYnl0ZXMsIDApCi0tCW91dFszXSwgYnl0ZXMg PSBnZXQyOEJpdHNGcm9tRW5kKGJ5dGVzLCA0KQotLQlvdXRbNF0sIGJ5dGVzID0gZ2V0MjhCaXRz RnJvbUVuZChieXRlcywgMCkKLS0Jb3V0WzVdLCBieXRlcyA9IGdldDI4Qml0c0Zyb21FbmQoYnl0 ZXMsIDQpCi0tCW91dFs2XSwgYnl0ZXMgPSBnZXQyOEJpdHNGcm9tRW5kKGJ5dGVzLCAwKQotLQlv dXRbN10sIGJ5dGVzID0gZ2V0MjhCaXRzRnJvbUVuZChieXRlcywgNCkKLS19Ci0tCi0tLy8gcDIy NFRvQmlnIHJldHVybnMgaW4gYXMgYSBiaWcuSW50LgotLWZ1bmMgcDIyNFRvQmlnKGluICpwMjI0 RmllbGRFbGVtZW50KSAqYmlnLkludCB7Ci0tCXZhciBidWYgWzI4XWJ5dGUKLS0JYnVmWzI3XSA9 IGJ5dGUoaW5bMF0pCi0tCWJ1ZlsyNl0gPSBieXRlKGluWzBdID4+IDgpCi0tCWJ1ZlsyNV0gPSBi eXRlKGluWzBdID4+IDE2KQotLQlidWZbMjRdID0gYnl0ZSgoKGluWzBdID4+IDI0KSAmIDB4MGYp IHwgKGluWzFdPDw0KSYweGYwKQotLQotLQlidWZbMjNdID0gYnl0ZShpblsxXSA+PiA0KQotLQli dWZbMjJdID0gYnl0ZShpblsxXSA+PiAxMikKLS0JYnVmWzIxXSA9IGJ5dGUoaW5bMV0gPj4gMjAp Ci0tCi0tCWJ1ZlsyMF0gPSBieXRlKGluWzJdKQotLQlidWZbMTldID0gYnl0ZShpblsyXSA+PiA4 KQotLQlidWZbMThdID0gYnl0ZShpblsyXSA+PiAxNikKLS0JYnVmWzE3XSA9IGJ5dGUoKChpblsy XSA+PiAyNCkgJiAweDBmKSB8IChpblszXTw8NCkmMHhmMCkKLS0KLS0JYnVmWzE2XSA9IGJ5dGUo aW5bM10gPj4gNCkKLS0JYnVmWzE1XSA9IGJ5dGUoaW5bM10gPj4gMTIpCi0tCWJ1ZlsxNF0gPSBi eXRlKGluWzNdID4+IDIwKQotLQotLQlidWZbMTNdID0gYnl0ZShpbls0XSkKLS0JYnVmWzEyXSA9 IGJ5dGUoaW5bNF0gPj4gOCkKLS0JYnVmWzExXSA9IGJ5dGUoaW5bNF0gPj4gMTYpCi0tCWJ1Zlsx MF0gPSBieXRlKCgoaW5bNF0gPj4gMjQpICYgMHgwZikgfCAoaW5bNV08PDQpJjB4ZjApCi0tCi0t CWJ1Zls5XSA9IGJ5dGUoaW5bNV0gPj4gNCkKLS0JYnVmWzhdID0gYnl0ZShpbls1XSA+PiAxMikK LS0JYnVmWzddID0gYnl0ZShpbls1XSA+PiAyMCkKLS0KLS0JYnVmWzZdID0gYnl0ZShpbls2XSkK LS0JYnVmWzVdID0gYnl0ZShpbls2XSA+PiA4KQotLQlidWZbNF0gPSBieXRlKGluWzZdID4+IDE2 KQotLQlidWZbM10gPSBieXRlKCgoaW5bNl0gPj4gMjQpICYgMHgwZikgfCAoaW5bN108PDQpJjB4 ZjApCi0tCi0tCWJ1ZlsyXSA9IGJ5dGUoaW5bN10gPj4gNCkKLS0JYnVmWzFdID0gYnl0ZShpbls3 XSA+PiAxMikKLS0JYnVmWzBdID0gYnl0ZShpbls3XSA+PiAyMCkKLS0KLS0JcmV0dXJuIG5ldyhi aWcuSW50KS5TZXRCeXRlcyhidWZbOl0pCi0tfQotLS0tIGxpYmdvL2dvL2NyeXB0by9lbGxpcHRp Yy9wMjI0X3Rlc3QuZ28uamoJMjAxMi0xMS0xNSAxODoyNjo1Ny4wMDAwMDAwMDAgKzAxMDAKLSsr KyBsaWJnby9nby9jcnlwdG8vZWxsaXB0aWMvcDIyNF90ZXN0LmdvCTIwMTQtMDMtMDUgMTU6Mjk6 NTguNzQzNDMwOTg4ICswMTAwCi1AQCAtMSw0NyArMCwwIEBACi0tLy8gQ29weXJpZ2h0IDIwMTIg VGhlIEdvIEF1dGhvcnMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotLS8vIFVzZSBvZiB0aGlzIHNv dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlCi0tLy8gbGljZW5zZSB0aGF0IGNh biBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLQotLXBhY2thZ2UgZWxsaXB0aWMKLS0K LS1pbXBvcnQgKAotLQkibWF0aC9iaWciCi0tCSJ0ZXN0aW5nIgotLSkKLS0KLS12YXIgdG9Gcm9t QmlnVGVzdHMgPSBbXXN0cmluZ3sKLS0JIjAiLAotLQkiMSIsCi0tCSIyMyIsCi0tCSJiNzBlMGNi NDZiYjRiZjdmMzIxMzkwYjk0YTAzYzFkMzU2YzAxMTIyMzQzMjgwZDYxMDVjMWQyMSIsCi0tCSI3 MDZhNDZkNDc2ZGNiNzY3OThlNjA0NmQ4OTQ3NDc4OGQxNjRjMTgwMzJkMjY4ZmQxMDcwNGZhNiIs Ci0tfQotLQotLWZ1bmMgcDIyNEFsdGVybmF0aXZlVG9CaWcoaW4gKnAyMjRGaWVsZEVsZW1lbnQp ICpiaWcuSW50IHsKLS0JcmV0IDo9IG5ldyhiaWcuSW50KQotLQl0bXAgOj0gbmV3KGJpZy5JbnQp Ci0tCi0tCWZvciBpIDo9IHVpbnQoMCk7IGkgPCA4OyBpKysgewotLQkJdG1wLlNldEludDY0KGlu dDY0KGluW2ldKSkKLS0JCXRtcC5Mc2godG1wLCAyOCppKQotLQkJcmV0LkFkZChyZXQsIHRtcCkK LS0JfQotLQlyZXQuTW9kKHJldCwgcDIyNC5QKQotLQlyZXR1cm4gcmV0Ci0tfQotLQotLWZ1bmMg VGVzdFRvRnJvbUJpZyh0ICp0ZXN0aW5nLlQpIHsKLS0JZm9yIGksIHRlc3QgOj0gcmFuZ2UgdG9G cm9tQmlnVGVzdHMgewotLQkJbiwgXyA6PSBuZXcoYmlnLkludCkuU2V0U3RyaW5nKHRlc3QsIDE2 KQotLQkJdmFyIHggcDIyNEZpZWxkRWxlbWVudAotLQkJcDIyNEZyb21CaWcoJngsIG4pCi0tCQlt IDo9IHAyMjRUb0JpZygmeCkKLS0JCWlmIG4uQ21wKG0pICE9IDAgewotLQkJCXQuRXJyb3JmKCIj JWQ6ICV4ICE9ICV4IiwgaSwgbiwgbSkKLS0JCX0KLS0JCXEgOj0gcDIyNEFsdGVybmF0aXZlVG9C aWcoJngpCi0tCQlpZiBuLkNtcChxKSAhPSAwIHsKLS0JCQl0LkVycm9yZigiIyVkOiAleCAhPSAl eCAoYWx0ZXJuYXRpdmUpIiwgaSwgbiwgbSkKLS0JCX0KLS0JfQotLX0KLS0tLSBsaWJnby9nby9j cnlwdG8vZWxsaXB0aWMvcDI1Ni5nby5qagkyMDEzLTExLTA3IDExOjU5OjA5LjAwMDAwMDAwMCAr MDEwMAotKysrIGxpYmdvL2dvL2NyeXB0by9lbGxpcHRpYy9wMjU2LmdvCTIwMTQtMDMtMDUgMTU6 MzQ6MzEuOTEwNDE0NzAxICswMTAwCi1AQCAtMjMzLDYgKzIzMyw4IEBAIGZ1bmMgcDI1NlJlZHVj ZUNhcnJ5KGlub3V0ICpbcDI1NkxpbWJzXXUKLSAJaW5vdXRbN10gKz0gY2FycnkgPDwgMjUKLSB9 Ci0gCi0rY29uc3QgYm90dG9tMjhCaXRzID0gMHhmZmZmZmZmCi0rCi0gLy8gcDI1NlN1bSBzZXRz IG91dCA9IGluK2luMi4KLSAvLwotIC8vIE9uIGVudHJ5LCBpbltpXStpbjJbaV0gbXVzdCBub3Qg b3ZlcmZsb3cgYSAzMi1iaXQgd29yZC4KLUBAIC0yNjUsNiArMjY3LDcgQEAgY29uc3QgKAotIAl0 d28zMW0yICAgID0gMTw8MzEgLSAxPDwyCi0gCXR3bzMxcDI0bTIgPSAxPDwzMSArIDE8PDI0IC0g MTw8MgotIAl0d28zMG0yN20yID0gMTw8MzAgLSAxPDwyNyAtIDE8PDIKLSsJdHdvMzFtMyAgICA9 IDE8PDMxIC0gMTw8MwotICkKLSAKLSAvLyBwMjU2WmVybzMxIGlzIDAgbW9kIHAuCgpkaWZmIC0t Z2l0IGEvZ2NjNS1saWJnb21wLW9tcF9oLW11bHRpbGliLnBhdGNoIGIvZ2NjNS1saWJnb21wLW9t cF9oLW11bHRpbGliLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMGU5OGQx Li4wMDAwMDAwCi0tLSBhL2djYzUtbGliZ29tcC1vbXBfaC1tdWx0aWxpYi5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDE3ICswLDAgQEAKLTIwMDgtMDYtMDkgIEpha3ViIEplbGluZWsgIDxqYWt1 YkByZWRoYXQuY29tPgotCi0JKiBvbXAuaC5pbiAob21wX25lc3RfbG9ja190KTogRml4IHVwIGZv ciBMaW51eCBtdWx0aWxpYnMuCi0KLS0tLSBsaWJnb21wL29tcC5oLmluLmpqCTIwMDgtMDYtMDkg MTM6MzQ6MDUuMDAwMDAwMDAwICswMjAwCi0rKysgbGliZ29tcC9vbXAuaC5pbgkyMDA4LTA2LTA5 IDEzOjM0OjQ4LjAwMDAwMDAwMCArMDIwMAotQEAgLTQyLDggKzQyLDggQEAgdHlwZWRlZiBzdHJ1 Y3QKLSAKLSB0eXBlZGVmIHN0cnVjdAotIHsKLS0gIHVuc2lnbmVkIGNoYXIgX3hbQE9NUF9ORVNU X0xPQ0tfU0laRUBdIAotLSAgICBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXyhAT01QX05FU1Rf TE9DS19BTElHTkApKSk7Ci0rICB1bnNpZ25lZCBjaGFyIF94WzggKyBzaXplb2YgKHZvaWQgKild IAotKyAgICBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXyhzaXplb2YgKHZvaWQgKikpKSk7Ci0g fSBvbXBfbmVzdF9sb2NrX3Q7Ci0gI2VuZGlmCi0gCgpkaWZmIC0tZ2l0IGEvZ2NjNS1saWJzYW5p dGl6ZS1hYXJjaDY0LXZhNDIucGF0Y2ggYi9nY2M1LWxpYnNhbml0aXplLWFhcmNoNjQtdmE0Mi5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmQ0MjE4Yi4uMDAwMDAwMAotLS0g YS9nY2M1LWxpYnNhbml0aXplLWFhcmNoNjQtdmE0Mi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDQ3ICswLDAgQEAKLTIwMTUtMDEtMjIgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29t PgotCi0JKiBhc2FuL2FzYW5fYWxsb2NhdG9yLmggKGtBbGxvY2F0b3JTcGFjZSwga0FsbG9jYXRv clNpemUpOgotCVNldCB0byAxVCBmb3IgX19hYXJjaDY0X18uCi0JKiBzYW5pdGl6ZXJfY29tbW9u L3Nhbml0aXplcl9wbGF0Zm9ybS5oCi0JKFNBTklUSVpFUl9DQU5fVVNFX0FMTE9DQVRPUjY0KTog U2V0IHRvIDEgb24gX19hYXJjaDY0X18KLQlpZiBTQU5JVElaRVJfV09SRFNJWkUgaXMgNjQuCi0J KFNBTklUSVpFUl9NTUFQX1JBTkdFX1NJWkUpOiBEZWZpbmUgdG8gMVVMTCA8PCA0MiBmb3IKLQlf X2FhcmNoNjRfXy4KLQotLS0tIGxpYnNhbml0aXplci9hc2FuL2FzYW5fYWxsb2NhdG9yLmgJKHJl dmlzaW9uIDIxOTgzMykKLSsrKyBsaWJzYW5pdGl6ZXIvYXNhbi9hc2FuX2FsbG9jYXRvci5oCSh3 b3JraW5nIGNvcHkpCi1AQCAtMTAwLDYgKzEwMCwxMCBAQAotICMgaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotIGNvbnN0IHVwdHIga0FsbG9jYXRvclNwYWNlID0gIDB4YTAwMDAwMDAwMDBVTEw7 Ci0gY29uc3QgdXB0ciBrQWxsb2NhdG9yU2l6ZSAgPSAgMHgyMDAwMDAwMDAwMFVMTDsgIC8vIDJU LgotKyMgZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKy8vIFZhbGlkIG9ubHkgZm9yIDQyLWJp dCBWQQotK2NvbnN0IHVwdHIga0FsbG9jYXRvclNwYWNlID0gIDB4MTAwMDAwMDAwMDBVTEw7Ci0r Y29uc3QgdXB0ciBrQWxsb2NhdG9yU2l6ZSAgPSAgMHgxMDAwMDAwMDAwMFVMTDsgIC8vIDFULgot ICMgZWxzZQotIGNvbnN0IHVwdHIga0FsbG9jYXRvclNwYWNlID0gMHg2MDAwMDAwMDAwMDBVTEw7 Ci0gY29uc3QgdXB0ciBrQWxsb2NhdG9yU2l6ZSAgPSAgMHg0MDAwMDAwMDAwMFVMTDsgIC8vIDRU LgotLS0tIGxpYnNhbml0aXplci9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9wbGF0Zm9ybS5o CShyZXZpc2lvbiAyMTk4MzMpCi0rKysgbGlic2FuaXRpemVyL3Nhbml0aXplcl9jb21tb24vc2Fu aXRpemVyX3BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKLUBAIC03OSw3ICs3OSw3IEBACi0gLy8g Rm9yIHN1Y2ggcGxhdGZvcm1zIGJ1aWxkIHRoaXMgY29kZSB3aXRoIC1EU0FOSVRJWkVSX0NBTl9V U0VfQUxMT0NBVE9SNjQ9MCBvcgotIC8vIGNoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiBTQU5JVEla RVJfQ0FOX1VTRV9BTExPQ0FUT1I2NCBoZXJlLgotICNpZm5kZWYgU0FOSVRJWkVSX0NBTl9VU0Vf QUxMT0NBVE9SNjQKLS0jIGlmIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19taXBz NjQpCi0rIyBpZiBkZWZpbmVkKF9fbWlwczY0KQotICMgIGRlZmluZSBTQU5JVElaRVJfQ0FOX1VT RV9BTExPQ0FUT1I2NCAwCi0gIyBlbHNlCi0gIyAgZGVmaW5lIFNBTklUSVpFUl9DQU5fVVNFX0FM TE9DQVRPUjY0IChTQU5JVElaRVJfV09SRFNJWkUgPT0gNjQpCi1AQCAtODgsMTAgKzg4LDEwIEBA Ci0gCi0gLy8gVGhlIHJhbmdlIG9mIGFkZHJlc3NlcyB3aGljaCBjYW4gYmUgcmV0dXJuZWQgbXkg bW1hcC4KLSAvLyBGSVhNRTogdGhpcyB2YWx1ZSBzaG91bGQgYmUgZGlmZmVyZW50IG9uIGRpZmZl cmVudCBwbGF0Zm9ybXMsCi0tLy8gZS5nLiBvbiBBQXJjaDY0IGl0IGlzIG1vc3QgbGlrZWx5ICgx VUxMIDw8IDM5KS4gTGFyZ2VyIHZhbHVlcyB3aWxsIHN0aWxsIHdvcmsKLSsvLyBlLmcuIG9uIEFB cmNoNjQgaXQgaXMgbW9zdCBsaWtlbHkgKDFVTEwgPDwgNDIpLiBMYXJnZXIgdmFsdWVzIHdpbGwg c3RpbGwgd29yawotIC8vIGJ1dCB3aWxsIGNvbnN1bWUgbW9yZSBtZW1vcnkgZm9yIFR3b0xldmVs Qnl0ZU1hcC4KLSAjaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLS0jIGRlZmluZSBTQU5JVElaRVJf TU1BUF9SQU5HRV9TSVpFIEZJUlNUXzMyX1NFQ09ORF82NCgxVUxMIDw8IDMyLCAxVUxMIDw8IDM5 KQotKyMgZGVmaW5lIFNBTklUSVpFUl9NTUFQX1JBTkdFX1NJWkUgRklSU1RfMzJfU0VDT05EXzY0 KDFVTEwgPDwgMzIsIDFVTEwgPDwgNDIpCi0gI2Vsc2UKLSAjIGRlZmluZSBTQU5JVElaRVJfTU1B UF9SQU5HRV9TSVpFIEZJUlNUXzMyX1NFQ09ORF82NCgxVUxMIDw8IDMyLCAxVUxMIDw8IDQ3KQot ICNlbmRpZgoKZGlmZiAtLWdpdCBhL2djYzUtbGlic3RkYysrLWRvY3MucGF0Y2ggYi9nY2M1LWxp YnN0ZGMrKy1kb2NzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZWNkNGFm Li4wMDAwMDAwCi0tLSBhL2djYzUtbGlic3RkYysrLWRvY3MucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwyNiArMCwwIEBACi0tLS0gbGlic3RkYysrLXYzL2RvYy9odG1sL2luZGV4Lmh0bWwuamoJ MjAxMS0wMS0wMyAxMjo1MzoyMS4yODI4MjkwMTAgKzAxMDAKLSsrKyBsaWJzdGRjKystdjMvZG9j L2h0bWwvaW5kZXguaHRtbAkyMDExLTAxLTA0IDE4OjA2OjI4Ljk5OTg1MTE0NSArMDEwMAotQEAg LTUsNiArNSw4IEBACi0gICAgICAgPGEgY2xhc3M9ImxpbmsiIGhyZWY9Imh0dHA6Ly93d3cuZnNm Lm9yZy8iIHRhcmdldD0iX3RvcCI+RlNGCi0gICAgICAgPC9hPgotICAgICA8L3A+PHA+Ci0rICAg ICAgUmVsZWFzZSA1LjMuMQotKyAgICA8L3A+PHA+Ci0gICAgICAgUGVybWlzc2lvbiBpcyBncmFu dGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGlzCi0gICAgICAgZG9jdW1l bnQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uCi0gICAgICAg TGljZW5zZSwgVmVyc2lvbiAxLjIgb3IgYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRo ZQotLS0tIGxpYnN0ZGMrKy12My9kb2MvaHRtbC9hcGkuaHRtbC5qagkyMDExLTAxLTAzIDEyOjUz OjIxLjAwMDAwMDAwMCArMDEwMAotKysrIGxpYnN0ZGMrKy12My9kb2MvaHRtbC9hcGkuaHRtbAky MDExLTAxLTA0IDE4OjEyOjAxLjY3Mjc1Nzc4NCArMDEwMAotQEAgLTE4LDggKzE4LDExIEBACi0g ICBtZW1iZXIgZnVuY3Rpb25zIGZvciB0aGUgbGlicmFyeSBjbGFzc2VzLCBmaW5kaW5nIG91dCB3 aGF0IGlzIGluIGEKLSAgIHBhcnRpY3VsYXIgaW5jbHVkZSBmaWxlLCBsb29raW5nIGF0IGluaGVy aXRhbmNlIGRpYWdyYW1zLCBldGMuCi0gPC9wPjxwPgotLSAgVGhlIEFQSSBkb2N1bWVudGF0aW9u LCByZW5kZXJlZCBpbnRvIEhUTUwsIGNhbiBiZSB2aWV3ZWQgb25saW5lOgotKyAgVGhlIEFQSSBk b2N1bWVudGF0aW9uLCByZW5kZXJlZCBpbnRvIEhUTUwsIGNhbiBiZSB2aWV3ZWQgaGVyZToKLSA8 L3A+PGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5 bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj48bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KLSsg ICAgICA8YSBjbGFzcz0ibGluayIgaHJlZj0iYXBpL2luZGV4Lmh0bWwiIHRhcmdldD0iX3RvcCI+ Zm9yIHRoZSA1LjMuMSByZWxlYXNlLCBsb2NhbAotKyAgICAgIDwvYT4KLSsgICAgPC9wPjwvbGk+ PGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+Ci0gICAgICAgPGEgY2xhc3M9ImxpbmsiIGhyZWY9Imh0 dHA6Ly9nY2MuZ251Lm9yZy9vbmxpbmVkb2NzL2xpYnN0ZGMrKy9saWJzdGRjKystaHRtbC1VU0VS Uy0zLjQvaW5kZXguaHRtbCIgdGFyZ2V0PSJfdG9wIj5mb3IgdGhlIDMuNCByZWxlYXNlCi0gICAg ICAgPC9hPgotICAgICA8L3A+PC9saT48bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KCmRpZmYgLS1n aXQgYS9nY2M1LWxpYnRvb2wtbm8tcnBhdGgucGF0Y2ggYi9nY2M1LWxpYnRvb2wtbm8tcnBhdGgu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2NmM2NjEuLjAwMDAwMDAKLS0t IGEvZ2NjNS1saWJ0b29sLW5vLXJwYXRoLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAs MCBAQAotbGlidG9vbCBzdWNrcy4KLS0tLSBsdG1haW4uc2guamoJMjAwNy0xMi0wNyAxNDo1Mzoy MS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBsdG1haW4uc2gJMjAwOC0wOS0wNSAyMTo1MTo0OC4wMDAw MDAwMDAgKzAyMDAKLUBAIC01Mzk0LDYgKzUzOTQsNyBAQCBFT0YKLSAJICBycGF0aD0iJGZpbmFs aXplX3JwYXRoIgotIAkgIHRlc3QgIiRtb2RlIiAhPSByZWxpbmsgJiYgcnBhdGg9IiRjb21waWxl X3JwYXRoJHJwYXRoIgotIAkgIGZvciBsaWJkaXIgaW4gJHJwYXRoOyBkbwotKwkgICAgY2FzZSAi JGxpYmRpciIgaW4gL3Vzci9saWJ8L3Vzci9saWI2NHwvdXNyL2xpYi8uLi9saWJ8L3Vzci9saWIv Li4vbGliNjQpIGNvbnRpbnVlOzsgZXNhYwotIAkgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMiOyB0aGVuCi0gCSAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yIjsgdGhlbgotIAkJaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0 aGVuCi1AQCAtNjA3MSw2ICs2MDcyLDcgQEAgRU9GCi0gICAgICAgcnBhdGg9Ci0gICAgICAgaGFy ZGNvZGVfbGliZGlycz0KLSAgICAgICBmb3IgbGliZGlyIGluICRjb21waWxlX3JwYXRoICRmaW5h bGl6ZV9ycGF0aDsgZG8KLSsJY2FzZSAiJGxpYmRpciIgaW4gL3Vzci9saWJ8L3Vzci9saWI2NHwv dXNyL2xpYi8uLi9saWJ8L3Vzci9saWIvLi4vbGliNjQpIGNvbnRpbnVlOzsgZXNhYwotIAlpZiB0 ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KLSAJICBpZiB0ZXN0IC1u ICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciI7IHRoZW4KLSAJICAgIGlmIHRlc3QgLXogIiRo YXJkY29kZV9saWJkaXJzIjsgdGhlbgotQEAgLTYxMjAsNiArNjEyMiw3IEBAIEVPRgotICAgICAg IHJwYXRoPQotICAgICAgIGhhcmRjb2RlX2xpYmRpcnM9Ci0gICAgICAgZm9yIGxpYmRpciBpbiAk ZmluYWxpemVfcnBhdGg7IGRvCi0rCWNhc2UgIiRsaWJkaXIiIGluIC91c3IvbGlifC91c3IvbGli NjR8L3Vzci9saWIvLi4vbGlifC91c3IvbGliLy4uL2xpYjY0KSBjb250aW51ZTs7IGVzYWMKLSAJ aWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCi0gCSAgaWYgdGVz dCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCi0gCSAgICBpZiB0ZXN0IC16 ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KCmRpZmYgLS1naXQgYS9nY2M1LW5vLWFkZC1uZWVk ZWQucGF0Y2ggYi9nY2M1LW5vLWFkZC1uZWVkZWQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDQxMDJlMWMuLjAwMDAwMDAKLS0tIGEvZ2NjNS1uby1hZGQtbmVlZGVkLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotMjAxMC0wMi0wOCAgUm9sYW5kIE1jR3Jh dGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogY29uZmlnL3JzNjAwMC9zeXN2NC5oIChMSU5L X0VIX1NQRUMpOiBQYXNzIC0tbm8tYWRkLW5lZWRlZCB0byB0aGUKLQlsaW5rZXIuCi0JKiBjb25m aWcvZ251LXVzZXIuaCAoTElOS19FSF9TUEVDKTogTGlrZXdpc2UuCi0JKiBjb25maWcvYWxwaGEv ZWxmLmggKExJTktfRUhfU1BFQyk6IExpa2V3aXNlLgotCSogY29uZmlnL2lhNjQvbGludXguaCAo TElOS19FSF9TUEVDKTogTGlrZXdpc2UuCi0KLS0tLSBnY2MvY29uZmlnL2FscGhhL2VsZi5oLmpq CTIwMTEtMDEtMDMgMTI6NTI6MzEuMTE4MDU2NzY0ICswMTAwCi0rKysgZ2NjL2NvbmZpZy9hbHBo YS9lbGYuaAkyMDExLTAxLTA0IDE4OjE0OjEwLjkzMTg3NDE2MCArMDEwMAotQEAgLTE2NSw1ICsx NjUsNSBAQCBleHRlcm4gaW50IGFscGhhX3RoaXNfZ3BkaXNwX3NlcXVlbmNlX251Ci0gICAgSSBp bWFnaW5lIHRoYXQgb3RoZXIgc3lzdGVtcyB3aWxsIGNhdGNoIHVwLiAgSW4gdGhlIG1lYW50aW1l LCBpdAotICAgIGRvZXNuJ3QgaGFybSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgZGF0YSBleGlzdHMg dG8gYmUgdXNlZCBsYXRlci4gICovCi0gI2lmIGRlZmluZWQoSEFWRV9MRF9FSF9GUkFNRV9IRFIp Ci0tI2RlZmluZSBMSU5LX0VIX1NQRUMgIiV7IXN0YXRpYzotLWVoLWZyYW1lLWhkcn0gIgotKyNk ZWZpbmUgTElOS19FSF9TUEVDICItLW5vLWFkZC1uZWVkZWQgJXshc3RhdGljOi0tZWgtZnJhbWUt aGRyfSAiCi0gI2VuZGlmCi0tLS0gZ2NjL2NvbmZpZy9pYTY0L2xpbnV4LmguamoJMjAxMS0wMS0w MyAxMzowMjoxMS40NjI5OTQ1MjIgKzAxMDAKLSsrKyBnY2MvY29uZmlnL2lhNjQvbGludXguaAky MDExLTAxLTA0IDE4OjE0OjEwLjkzMTg3NDE2MCArMDEwMAotQEAgLTc2LDcgKzc2LDcgQEAgZG8g ewkJCQkJCVwKLSAgICBTaWduYWxpemUgdGhhdCBiZWNhdXNlIHdlIGhhdmUgZmRlLWdsaWJjLCB3 ZSBkb24ndCBuZWVkIGFsbCBDIHNoYXJlZCBsaWJzCi0gICAgbGlua2VkIGFnYWluc3QgLWxnY2Nf cy4gICovCi0gI3VuZGVmIExJTktfRUhfU1BFQwotLSNkZWZpbmUgTElOS19FSF9TUEVDICIiCi0r I2RlZmluZSBMSU5LX0VIX1NQRUMgIi0tbm8tYWRkLW5lZWRlZCAiCi0gCi0gI3VuZGVmIFRBUkdF VF9JTklUX0xJQkZVTkNTCi0gI2RlZmluZSBUQVJHRVRfSU5JVF9MSUJGVU5DUyBpYTY0X3NvZnRf ZnBfaW5pdF9saWJmdW5jcwotLS0tIGdjYy9jb25maWcvZ251LXVzZXIuaC5qagkyMDExLTAxLTAz IDEyOjUzOjAzLjczOTA1NzI5OSArMDEwMAotKysrIGdjYy9jb25maWcvZ251LXVzZXIuaAkyMDEx LTAxLTA0IDE4OjE0OjEwLjkzMjgxNDg4NCArMDEwMAotQEAgLTgyLDcgKzgyLDcgQEAgc2VlIHRo ZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USQotICNkZWZpbmUgTElCX1NQRUMgR05V X1VTRVJfVEFSR0VUX0xJQl9TUEVDCi0gCi0gI2lmIGRlZmluZWQoSEFWRV9MRF9FSF9GUkFNRV9I RFIpCi0tI2RlZmluZSBMSU5LX0VIX1NQRUMgIiV7IXN0YXRpYzotLWVoLWZyYW1lLWhkcn0gIgot KyNkZWZpbmUgTElOS19FSF9TUEVDICItLW5vLWFkZC1uZWVkZWQgJXshc3RhdGljOi0tZWgtZnJh bWUtaGRyfSAiCi0gI2VuZGlmCi0gCi0gI3VuZGVmIExJTktfR0NDX0NfU0VRVUVOQ0VfU1BFQwot LS0tIGdjYy9jb25maWcvcnM2MDAwL3N5c3Y0LmguamoJMjAxMS0wMS0wMyAxMzowMjoxOC4yNTU5 OTQyMTUgKzAxMDAKLSsrKyBnY2MvY29uZmlnL3JzNjAwMC9zeXN2NC5oCTIwMTEtMDEtMDQgMTg6 MTQ6MTAuOTMzODg4ODcxICswMTAwCi1AQCAtODIwLDcgKzgyMCw3IEBAIGV4dGVybiBpbnQgZml4 dXBsYWJlbG5vOwotICAgLWR5bmFtaWMtbGlua2VyICIgR05VX1VTRVJfRFlOQU1JQ19MSU5LRVIg In19IgotIAotICNpZiBkZWZpbmVkKEhBVkVfTERfRUhfRlJBTUVfSERSKQotLSMgZGVmaW5lIExJ TktfRUhfU1BFQyAiJXshc3RhdGljOi0tZWgtZnJhbWUtaGRyfSAiCi0rIyBkZWZpbmUgTElOS19F SF9TUEVDICItLW5vLWFkZC1uZWVkZWQgJXshc3RhdGljOi0tZWgtZnJhbWUtaGRyfSAiCi0gI2Vu ZGlmCi0gCi0gI2RlZmluZSBDUFBfT1NfTElOVVhfU1BFQyAiLURfX3VuaXhfXyAtRF9fZ251X2xp bnV4X18gLURfX2xpbnV4X18gXAoKZGlmZiAtLWdpdCBhL2djYzUtcHBjMzItcmV0YWRkci5wYXRj aCBiL2djYzUtcHBjMzItcmV0YWRkci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggN2U4ZWViNS4uMDAwMDAwMAotLS0gYS9nY2M1LXBwYzMyLXJldGFkZHIucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw4NyArMCwwIEBACi0yMDA1LTExLTI4ICBKYWt1YiBKZWxpbmVrICA8amFr dWJAcmVkaGF0LmNvbT4KLQotCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX3JldHVy bl9hZGRyKTogSWYgQ09VTlQgPT0gMCwKLQlyZWFkIHdvcmQgUkVUVVJOX0FERFJFU1NfT0ZGU0VU IGJ5dGVzIGFib3ZlIGFyZ19wb2ludGVyX3J0eAotCWluc3RlYWQgb2YgZG9pbmcgYW4gZXh0cmFu IGluZGlyZWN0aW9uIGZyb20gZnJhbWVfcG9pbnRlcl9ydHguCi0KLQkqIGdjYy5kZy8yMDA1MTEy OC0xLmM6IE5ldyB0ZXN0LgotCi0tLS0gZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmMuamoJMjAw NS0xMS0yNiAxNDozODowMS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvY29uZmlnL3JzNjAwMC9y czYwMDAuYwkyMDA1LTExLTI4IDIwOjMyOjE4LjAwMDAwMDAwMCArMDEwMAotQEAgLTIwOTcwLDE4 ICsyMDk3MCwyMiBAQCByczYwMDBfcmV0dXJuX2FkZHIgKGludCBjb3VudCwgcnR4IGZyYW1lCi0g ICBpZiAoY291bnQgIT0gMAotICAgICAgIHx8ICgoREVGQVVMVF9BQkkgPT0gQUJJX1Y0IHx8IERF RkFVTFRfQUJJID09IEFCSV9EQVJXSU4pICYmIGZsYWdfcGljKSkKLSAgICAgewotKyAgICAgIHJ0 eCB4OwotICAgICAgIGNmdW4tPm1hY2hpbmUtPnJhX25lZWRzX2Z1bGxfZnJhbWUgPSAxOwotIAot LSAgICAgIHJldHVybgotLQlnZW5fcnR4X01FTQotLQkgIChQbW9kZSwKLS0JICAgbWVtb3J5X2Fk ZHJlc3MKLS0JICAgKFBtb2RlLAotLQkgICAgcGx1c19jb25zdGFudCAoUG1vZGUsCi0tCQkJICAg Y29weV90b19yZWcKLS0JCQkgICAoZ2VuX3J0eF9NRU0gKFBtb2RlLAotLQkJCQkJIG1lbW9yeV9h ZGRyZXNzIChQbW9kZSwgZnJhbWUpKSksCi0tCQkJICAgUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSkp OwotKyAgICAgIGlmIChjb3VudCA9PSAwKQotKwl7Ci0rCSAgZ2NjX2Fzc2VydCAoZnJhbWUgPT0g ZnJhbWVfcG9pbnRlcl9ydHgpOwotKwkgIHggPSBhcmdfcG9pbnRlcl9ydHg7Ci0rCX0KLSsgICAg ICBlbHNlCi0rCXsKLSsJICB4ID0gbWVtb3J5X2FkZHJlc3MgKFBtb2RlLCBmcmFtZSk7Ci0rCSAg eCA9IGNvcHlfdG9fcmVnIChnZW5fcnR4X01FTSAoUG1vZGUsIHgpKTsKLSsJfQotKwotKyAgICAg IHggPSBwbHVzX2NvbnN0YW50IChQbW9kZSwgeCwgUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKLSsg ICAgICByZXR1cm4gZ2VuX3J0eF9NRU0gKFBtb2RlLCBtZW1vcnlfYWRkcmVzcyAoUG1vZGUsIHgp KTsKLSAgICAgfQotIAotICAgY2Z1bi0+bWFjaGluZS0+cmFfbmVlZF9sciA9IDE7Ci0tLS0gZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvMjAwNTExMjgtMS5jLmpqCTIwMDUtMTAtMTAgMTE6MjE6NDEuMDk2 OTk5MDAwICswMjAwCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvMjAwNTExMjgtMS5jCTIwMDUt MTEtMjggMTI6MzA6NTcuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDQxIEBACi0rLyogeyBk Zy1kbyBydW4gfSAqLwotKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mcGljIiB9ICovCi0rCi0rZXh0 ZXJuIHZvaWQgZXhpdCAoaW50KTsKLStleHRlcm4gdm9pZCBhYm9ydCAodm9pZCk7Ci0rCi0raW50 IGI7Ci0rCi0rc3RydWN0IEEKLSt7Ci0rICB2b2lkICpwYWRbMTQ3XTsKLSsgIHZvaWQgKnJhLCAq aDsKLSsgIGxvbmcgbzsKLSt9OwotKwotK3ZvaWQKLStfX2F0dHJpYnV0ZV9fKChub2lubGluZSkp Ci0rZm9vIChzdHJ1Y3QgQSAqYSwgdm9pZCAqeCkKLSt7Ci0rICBfX2J1aWx0aW5fbWVtc2V0IChh LCAwLCBzaXplb2YgKGEpKTsKLSsgIGlmICghYikKLSsgICAgZXhpdCAoMCk7Ci0rfQotKwotK3Zv aWQKLStfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCi0rYmFyICh2b2lkKQotK3sKLSsgIHN0cnVj dCBBIGE7Ci0rCi0rICBfX2J1aWx0aW5fdW53aW5kX2luaXQgKCk7Ci0rICBmb28gKCZhLCBfX2J1 aWx0aW5fcmV0dXJuX2FkZHJlc3MgKDApKTsKLSt9Ci0rCi0raW50Ci0rbWFpbiAodm9pZCkKLSt7 Ci0rICBiYXIgKCk7Ci0rICBhYm9ydCAoKTsKLSsgIHJldHVybiAwOwotK30KCmRpZmYgLS1naXQg YS9nY2M1LXByNjU2ODkucGF0Y2ggYi9nY2M1LXByNjU2ODkucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDBkY2RkNWUuLjAwMDAwMDAKLS0tIGEvZ2NjNS1wcjY1Njg5LnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMjMxICswLDAgQEAKLTIwMTUtMDQtMTcgIEpha3ViIEplbGlu ZWsgIDxqYWt1YkByZWRoYXQuY29tPgotCi0JUFIgdGFyZ2V0LzY1Njg5Ci0JKiBnZW5wcmVkcy5j IChzdHJ1Y3QgY29uc3RyYWludF9kYXRhKTogQWRkIG1heWJlX2FsbG93c19yZWcgYW5kCi0JbWF5 YmVfYWxsb3dzX21lbSBiaXRmaWVsZHMuCi0JKG1heWJlX2FsbG93c19ub25lX3N0YXJ0LCBtYXli ZV9hbGxvd3Nfbm9uZV9lbmQsCi0JbWF5YmVfYWxsb3dzX3JlZ19zdGFydCwgbWF5YmVfYWxsb3dz X3JlZ19lbmQsIG1heWJlX2FsbG93c19tZW1fc3RhcnQsCi0JbWF5YmVfYWxsb3dzX21lbV9lbmQp OiBOZXcgdmFyaWFibGVzLgotCShjb21wdXRlX21heWJlX2FsbG93cyk6IE5ldyBmdW5jdGlvbi4K LQkoYWRkX2NvbnN0cmFpbnQpOiBVc2UgaXQgdG8gaW5pdGlhbGl6ZSBtYXliZV9hbGxvd3NfcmVn IGFuZAotCW1heWJlX2FsbG93c19tZW0gZmllbGRzLgotCShjaG9vc2VfZW51bV9vcmRlcik6IFNv cnQgdGhlIG5vbi1pc19yZWdpc3Rlci9pc19jb25zdF9pbnQvaXNfbWVtb3J5LwotCWlzX2FkZHJl c3MgY29uc3RyYWludHMgc3VjaCB0aGF0IHRob3NlIHRoYXQgYWxsb3cgbmVpdGhlciBtZW0gbm9y Ci0JcmVnIGNvbWUgZmlyc3QsIHRoZW4gdGhvc2UgdGhhdCBvbmx5IGFsbG93IHJlZyBidXQgbm90 IG1lbSwgdGhlbgotCXRob3NlIHRoYXQgb25seSBhbGxvdyBtZW0gYnV0IG5vdCByZWcsIHRoZW4g dGhlIHJlc3QuCi0JKHdyaXRlX2FsbG93c19yZWdfbWVtX2Z1bmN0aW9uKTogTmV3IGZ1bmN0aW9u LgotCSh3cml0ZV90bV9wcmVkc19oKTogQ2FsbCBpdC4KLQkqIHN0bXQuYyAocGFyc2Vfb3V0cHV0 X2NvbnN0cmFpbnQsIHBhcnNlX2lucHV0X2NvbnN0cmFpbnQpOiBVc2UKLQl0aGUgZ2VuZXJhdGVk IGluc25fZXh0cmFfY29uc3RyYWludF9hbGxvd3NfcmVnX21lbSBmdW5jdGlvbgotCWluc3RlYWQg b2YgYWx3YXlzIHNldHRpbmcgKmFsbG93c19yZWcgPSB0cnVlOyAqYWxsb3dzX21lbSA9IHRydWU7 Ci0JZm9yIHVua25vd24gZXh0cmEgY29uc3RyYWludHMuCi0KLQkqIGdjYy50YXJnZXQvYWFyY2g2 NC9jLW91dHB1dC10ZW1wbGF0ZS00LmM6IE5ldyB0ZXN0LgotCi0tLS0gZ2NjL2dlbnByZWRzLmMu amoJMjAxNS0wNC0wOCAxODoyMzo1MC42NDM1NTYyMzAgKzAyMDAKLSsrKyBnY2MvZ2VucHJlZHMu YwkyMDE1LTA0LTE3IDE3OjQ0OjIzLjA5NzY1MDExMCArMDIwMAotQEAgLTY0MCwxMiArNjQwLDE0 IEBAIHN0cnVjdCBjb25zdHJhaW50X2RhdGEKLSAgIGNvbnN0IGNoYXIgKnJlZ2NsYXNzOyAgLyog Zm9yIHJlZ2lzdGVyIGNvbnN0cmFpbnRzICovCi0gICBydHggZXhwOyAgICAgICAgICAgICAgIC8q IGZvciBvdGhlciBjb25zdHJhaW50cyAqLwotICAgdW5zaWduZWQgaW50IGxpbmVubzsgICAvKiBs aW5lIG9mIGRlZmluaXRpb24gKi8KLS0gIHVuc2lnbmVkIGludCBpc19yZWdpc3RlciAgOiAxOwot LSAgdW5zaWduZWQgaW50IGlzX2NvbnN0X2ludCA6IDE7Ci0tICB1bnNpZ25lZCBpbnQgaXNfY29u c3RfZGJsIDogMTsKLS0gIHVuc2lnbmVkIGludCBpc19leHRyYSAgICAgOiAxOwotLSAgdW5zaWdu ZWQgaW50IGlzX21lbW9yeSAgICA6IDE7Ci0tICB1bnNpZ25lZCBpbnQgaXNfYWRkcmVzcyAgIDog MTsKLSsgIHVuc2lnbmVkIGludCBpc19yZWdpc3Rlcgk6IDE7Ci0rICB1bnNpZ25lZCBpbnQgaXNf Y29uc3RfaW50CTogMTsKLSsgIHVuc2lnbmVkIGludCBpc19jb25zdF9kYmwJOiAxOwotKyAgdW5z aWduZWQgaW50IGlzX2V4dHJhCQk6IDE7Ci0rICB1bnNpZ25lZCBpbnQgaXNfbWVtb3J5CTogMTsK LSsgIHVuc2lnbmVkIGludCBpc19hZGRyZXNzCTogMTsKLSsgIHVuc2lnbmVkIGludCBtYXliZV9h bGxvd3NfcmVnIDogMTsKLSsgIHVuc2lnbmVkIGludCBtYXliZV9hbGxvd3NfbWVtIDogMTsKLSB9 OwotIAotIC8qIE92ZXJ2aWV3IG9mIGFsbCBjb25zdHJhaW50cyBiZWdpbm5pbmcgd2l0aCBhIGdp dmVuIGxldHRlci4gICovCi1AQCAtNjkxLDYgKzY5Myw5IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQg c2F0aXNmaWVkX3N0YXJ0OwotIHN0YXRpYyB1bnNpZ25lZCBpbnQgY29uc3RfaW50X3N0YXJ0LCBj b25zdF9pbnRfZW5kOwotIHN0YXRpYyB1bnNpZ25lZCBpbnQgbWVtb3J5X3N0YXJ0LCBtZW1vcnlf ZW5kOwotIHN0YXRpYyB1bnNpZ25lZCBpbnQgYWRkcmVzc19zdGFydCwgYWRkcmVzc19lbmQ7Ci0r c3RhdGljIHVuc2lnbmVkIGludCBtYXliZV9hbGxvd3Nfbm9uZV9zdGFydCwgbWF5YmVfYWxsb3dz X25vbmVfZW5kOwotK3N0YXRpYyB1bnNpZ25lZCBpbnQgbWF5YmVfYWxsb3dzX3JlZ19zdGFydCwg bWF5YmVfYWxsb3dzX3JlZ19lbmQ7Ci0rc3RhdGljIHVuc2lnbmVkIGludCBtYXliZV9hbGxvd3Nf bWVtX3N0YXJ0LCBtYXliZV9hbGxvd3NfbWVtX2VuZDsKLSAKLSAvKiBDb252ZXJ0IE5BTUUsIHdo aWNoIGNvbnRhaW5zIGFuZ2xlIGJyYWNrZXRzIGFuZC9vciB1bmRlcnNjb3JlcywgdG8KLSAgICBh IHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIGFzIHBhcnQgb2YgYSBDIGlkZW50aWZpZXIuICBUaGUg c3RyaW5nCi1AQCAtNzExLDYgKzcxNiwzNCBAQCBtYW5nbGUgKGNvbnN0IGNoYXIgKm5hbWUpCi0g ICByZXR1cm4gWE9CRklOSVNIIChydGxfb2JzdGFjaywgY29uc3QgY2hhciAqKTsKLSB9Ci0gCi0r LyogUmV0dXJuIGEgYml0bWFzaywgYml0IDEgaWYgRVhQIG1heWJlIGFsbG93cyBhIFJFRy9TVUJS RUcsIDIgaWYgRVhQCi0rICAgbWF5YmUgYWxsb3dzIGEgTUVNLiAgQml0cyBzaG91bGQgYmUgY2xl YXIgb25seSB3aGVuIHdlIGFyZSBzdXJlIGl0Ci0rICAgd2lsbCBub3QgYWxsb3cgYSBSRUcvU1VC UkVHIG9yIGEgTUVNLiAgKi8KLStzdGF0aWMgaW50Ci0rY29tcHV0ZV9tYXliZV9hbGxvd3MgKHJ0 eCBleHApCi0rewotKyAgc3dpdGNoIChHRVRfQ09ERSAoZXhwKSkKLSsgICAgewotKyAgICBjYXNl IElGX1RIRU5fRUxTRToKLSsgICAgICAvKiBDb25zZXJ2YXRpdmUgYW5zd2VyIGlzIGxpa2UgSU9S LCBvZiB0aGUgVEhFTiBhbmQgRUxTRSBicmFuY2hlcy4gICovCi0rICAgICAgcmV0dXJuIGNvbXB1 dGVfbWF5YmVfYWxsb3dzIChYRVhQIChleHAsIDEpKQotKwkgICAgIHwgY29tcHV0ZV9tYXliZV9h bGxvd3MgKFhFWFAgKGV4cCwgMikpOwotKyAgICBjYXNlIEFORDoKLSsgICAgICByZXR1cm4gY29t cHV0ZV9tYXliZV9hbGxvd3MgKFhFWFAgKGV4cCwgMCkpCi0rCSAgICAgJiBjb21wdXRlX21heWJl X2FsbG93cyAoWEVYUCAoZXhwLCAxKSk7Ci0rICAgIGNhc2UgSU9SOgotKyAgICAgIHJldHVybiBj b21wdXRlX21heWJlX2FsbG93cyAoWEVYUCAoZXhwLCAwKSkKLSsJICAgICB8IGNvbXB1dGVfbWF5 YmVfYWxsb3dzIChYRVhQIChleHAsIDEpKTsKLSsgICAgY2FzZSBNQVRDSF9DT0RFOgotKyAgICAg IGlmICgqWFNUUiAoZXhwLCAxKSA9PSAnXDAnKQotKwlyZXR1cm4gKHN0cnN0ciAoWFNUUiAoZXhw LCAwKSwgInJlZyIpICE9IE5VTEwgPyAxIDogMCkKLSsJICAgICAgIHwgKHN0cnN0ciAoWFNUUiAo ZXhwLCAwKSwgIm1lbSIpICE9IE5VTEwgPyAyIDogMCk7Ci0rICAgICAgLyogRkFMTFRIUlUgKi8K LSsgICAgZGVmYXVsdDoKLSsgICAgICByZXR1cm4gMzsKLSsgICAgfQotK30KLSsKLSAvKiBBZGQg b25lIGNvbnN0cmFpbnQsIG9mIGFueSBzb3J0LCB0byB0aGUgdGFibGVzLiAgTkFNRSBpcyBpdHMg bmFtZTsKLSAgICBSRUdDTEFTUyBpcyB0aGUgcmVnaXN0ZXIgY2xhc3MsIGlmIGFueTsgRVhQIGlz IHRoZSBleHByZXNzaW9uIHRvCi0gICAgdGVzdCwgaWYgYW55OyAgSVNfTUVNT1JZIGFuZCBJU19B RERSRVNTIGluZGljYXRlIG1lbW9yeSBhbmQgYWRkcmVzcwotQEAgLTg2Niw2ICs4OTksMTEgQEAg YWRkX2NvbnN0cmFpbnQgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0Ci0gICBjLT5pc19leHRyYSA9 ICEocmVnY2xhc3MgfHwgaXNfY29uc3RfaW50IHx8IGlzX2NvbnN0X2RibCk7Ci0gICBjLT5pc19t ZW1vcnkgPSBpc19tZW1vcnk7Ci0gICBjLT5pc19hZGRyZXNzID0gaXNfYWRkcmVzczsKLSsgIGlu dCBtYXliZV9hbGxvd3MgPSAzOwotKyAgaWYgKGV4cCkKLSsgICAgbWF5YmVfYWxsb3dzID0gY29t cHV0ZV9tYXliZV9hbGxvd3MgKGV4cCk7Ci0rICBjLT5tYXliZV9hbGxvd3NfcmVnID0gKG1heWJl X2FsbG93cyAmIDEpICE9IDA7Ci0rICBjLT5tYXliZV9hbGxvd3NfbWVtID0gKG1heWJlX2FsbG93 cyAmIDIpICE9IDA7Ci0gCi0gICBjLT5uZXh0X3RoaXNfbGV0dGVyID0gKnNsb3Q7Ci0gICAqc2xv dCA9IGM7Ci1AQCAtOTQwLDggKzk3OCwzMCBAQCBjaG9vc2VfZW51bV9vcmRlciAodm9pZCkKLSAg ICAgICBlbnVtX29yZGVyW25leHQrK10gPSBjOwotICAgYWRkcmVzc19lbmQgPSBuZXh0OwotIAot KyAgbWF5YmVfYWxsb3dzX25vbmVfc3RhcnQgPSBuZXh0OwotKyAgRk9SX0FMTF9DT05TVFJBSU5U UyAoYykKLSsgICAgaWYgKCFjLT5pc19yZWdpc3RlciAmJiAhYy0+aXNfY29uc3RfaW50ICYmICFj LT5pc19tZW1vcnkgJiYgIWMtPmlzX2FkZHJlc3MKLSsJJiYgIWMtPm1heWJlX2FsbG93c19yZWcg JiYgIWMtPm1heWJlX2FsbG93c19tZW0pCi0rICAgICAgZW51bV9vcmRlcltuZXh0KytdID0gYzsK LSsgIG1heWJlX2FsbG93c19ub25lX2VuZCA9IG5leHQ7Ci0rCi0rICBtYXliZV9hbGxvd3NfcmVn X3N0YXJ0ID0gbmV4dDsKLSsgIEZPUl9BTExfQ09OU1RSQUlOVFMgKGMpCi0rICAgIGlmICghYy0+ aXNfcmVnaXN0ZXIgJiYgIWMtPmlzX2NvbnN0X2ludCAmJiAhYy0+aXNfbWVtb3J5ICYmICFjLT5p c19hZGRyZXNzCi0rCSYmIGMtPm1heWJlX2FsbG93c19yZWcgJiYgIWMtPm1heWJlX2FsbG93c19t ZW0pCi0rICAgICAgZW51bV9vcmRlcltuZXh0KytdID0gYzsKLSsgIG1heWJlX2FsbG93c19yZWdf ZW5kID0gbmV4dDsKLSsKLSsgIG1heWJlX2FsbG93c19tZW1fc3RhcnQgPSBuZXh0OwotKyAgRk9S X0FMTF9DT05TVFJBSU5UUyAoYykKLSsgICAgaWYgKCFjLT5pc19yZWdpc3RlciAmJiAhYy0+aXNf Y29uc3RfaW50ICYmICFjLT5pc19tZW1vcnkgJiYgIWMtPmlzX2FkZHJlc3MKLSsJJiYgIWMtPm1h eWJlX2FsbG93c19yZWcgJiYgYy0+bWF5YmVfYWxsb3dzX21lbSkKLSsgICAgICBlbnVtX29yZGVy W25leHQrK10gPSBjOwotKyAgbWF5YmVfYWxsb3dzX21lbV9lbmQgPSBuZXh0OwotKwotICAgRk9S X0FMTF9DT05TVFJBSU5UUyAoYykKLS0gICAgaWYgKCFjLT5pc19yZWdpc3RlciAmJiAhYy0+aXNf Y29uc3RfaW50ICYmICFjLT5pc19tZW1vcnkgJiYgIWMtPmlzX2FkZHJlc3MpCi0rICAgIGlmICgh Yy0+aXNfcmVnaXN0ZXIgJiYgIWMtPmlzX2NvbnN0X2ludCAmJiAhYy0+aXNfbWVtb3J5ICYmICFj LT5pc19hZGRyZXNzCi0rCSYmIGMtPm1heWJlX2FsbG93c19yZWcgJiYgYy0+bWF5YmVfYWxsb3dz X21lbSkKLSAgICAgICBlbnVtX29yZGVyW25leHQrK10gPSBjOwotICAgZ2NjX2Fzc2VydCAobmV4 dCA9PSBudW1fY29uc3RyYWludHMpOwotIH0KLUBAIC0xMjI5LDYgKzEyODksNDEgQEAgd3JpdGVf cmFuZ2VfZnVuY3Rpb24gKGNvbnN0IGNoYXIgKm5hbWUsCi0gCSAgICAifVxuXG4iLCBuYW1lKTsK LSB9Ci0gCi0rLyogV3JpdGUgYSBkZWZpbml0aW9uIGZvciBpbnNuX2V4dHJhX2NvbnN0cmFpbnRf YWxsb3dzX3JlZ19tZW0gZnVuY3Rpb24uICAqLwotK3N0YXRpYyB2b2lkCi0rd3JpdGVfYWxsb3dz X3JlZ19tZW1fZnVuY3Rpb24gKHZvaWQpCi0rewotKyAgcHJpbnRmICgic3RhdGljIGlubGluZSB2 b2lkXG4iCi0rCSAgImluc25fZXh0cmFfY29uc3RyYWludF9hbGxvd3NfcmVnX21lbSAoZW51bSBj b25zdHJhaW50X251bSBjLFxuIgotKwkgICJcdFx0XHRcdCAgICAgIGJvb2wgKmFsbG93c19yZWcs IGJvb2wgKmFsbG93c19tZW0pXG4iCi0rCSAgIntcbiIpOwotKyAgaWYgKG1heWJlX2FsbG93c19u b25lX3N0YXJ0ICE9IG1heWJlX2FsbG93c19ub25lX2VuZCkKLSsgICAgcHJpbnRmICgiICBpZiAo YyA+PSBDT05TVFJBSU5UXyVzICYmIGMgPD0gQ09OU1RSQUlOVF8lcylcbiIKLSsJICAgICIgICAg cmV0dXJuO1xuIiwKLSsJICAgIGVudW1fb3JkZXJbbWF5YmVfYWxsb3dzX25vbmVfc3RhcnRdLT5j X25hbWUsCi0rCSAgICBlbnVtX29yZGVyW21heWJlX2FsbG93c19ub25lX2VuZCAtIDFdLT5jX25h bWUpOwotKyAgaWYgKG1heWJlX2FsbG93c19yZWdfc3RhcnQgIT0gbWF5YmVfYWxsb3dzX3JlZ19l bmQpCi0rICAgIHByaW50ZiAoIiAgaWYgKGMgPj0gQ09OU1RSQUlOVF8lcyAmJiBjIDw9IENPTlNU UkFJTlRfJXMpXG4iCi0rCSAgICAiICAgIHtcbiIKLSsJICAgICIgICAgICAqYWxsb3dzX3JlZyA9 IHRydWU7XG4iCi0rCSAgICAiICAgICAgcmV0dXJuO1xuIgotKwkgICAgIiAgICB9XG4iLAotKwkg ICAgZW51bV9vcmRlclttYXliZV9hbGxvd3NfcmVnX3N0YXJ0XS0+Y19uYW1lLAotKwkgICAgZW51 bV9vcmRlclttYXliZV9hbGxvd3NfcmVnX2VuZCAtIDFdLT5jX25hbWUpOwotKyAgaWYgKG1heWJl X2FsbG93c19tZW1fc3RhcnQgIT0gbWF5YmVfYWxsb3dzX21lbV9lbmQpCi0rICAgIHByaW50ZiAo IiAgaWYgKGMgPj0gQ09OU1RSQUlOVF8lcyAmJiBjIDw9IENPTlNUUkFJTlRfJXMpXG4iCi0rCSAg ICAiICAgIHtcbiIKLSsJICAgICIgICAgICAqYWxsb3dzX21lbSA9IHRydWU7XG4iCi0rCSAgICAi ICAgICAgcmV0dXJuO1xuIgotKwkgICAgIiAgICB9XG4iLAotKwkgICAgZW51bV9vcmRlclttYXli ZV9hbGxvd3NfbWVtX3N0YXJ0XS0+Y19uYW1lLAotKwkgICAgZW51bV9vcmRlclttYXliZV9hbGxv d3NfbWVtX2VuZCAtIDFdLT5jX25hbWUpOwotKyAgcHJpbnRmICgiICAodm9pZCkgYztcbiIKLSsJ ICAiICAqYWxsb3dzX3JlZyA9IHRydWU7XG4iCi0rCSAgIiAgKmFsbG93c19tZW0gPSB0cnVlO1xu IgotKwkgICJ9XG5cbiIpOwotK30KLSsKLSAvKiBWRUMgaXMgYSBsaXN0IG9mIGtleS92YWx1ZSBw YWlycywgd2l0aCB0aGUga2V5cyBiZWluZyBsb3dlciBib3VuZHMKLSAgICBvZiBhIHJhbmdlLiAg T3V0cHV0IGEgZGVjaXNpb24gdHJlZSB0aGF0IGhhbmRsZXMgdGhlIGtleXMgY292ZXJlZCBieQot ICAgIFtWRUNbU1RBUlRdLCBWRUNbRU5EXSksIHJldHVybmluZyBGQUxMQkFDSyBmb3Iga2V5cyBs b3dlciB0aGVuIFZFQ1tTVEFSVF0ncy4KLUBAIC0xMzI2LDYgKzE0MjEsNyBAQCB3cml0ZV90bV9w cmVkc19oICh2b2lkKQotIAkJCSAgICBtZW1vcnlfc3RhcnQsIG1lbW9yeV9lbmQpOwotICAgICAg IHdyaXRlX3JhbmdlX2Z1bmN0aW9uICgiaW5zbl9leHRyYV9hZGRyZXNzX2NvbnN0cmFpbnQiLAot IAkJCSAgICBhZGRyZXNzX3N0YXJ0LCBhZGRyZXNzX2VuZCk7Ci0rICAgICAgd3JpdGVfYWxsb3dz X3JlZ19tZW1fZnVuY3Rpb24gKCk7Ci0gCi0gICAgICAgaWYgKGNvbnN0cmFpbnRfbWF4X25hbWVs ZW4gPiAxKQotICAgICAgICAgewotLS0tIGdjYy9zdG10LmMuamoJMjAxNS0wNC0wOCAxODoyMzo1 MC42NjA1NTU5NTYgKzAyMDAKLSsrKyBnY2Mvc3RtdC5jCTIwMTUtMDQtMTcgMTc6MzY6NTAuNjIz MDQ0NTQ4ICswMjAwCi1AQCAtMzQyLDEzICszNDIsNyBAQCBwYXJzZV9vdXRwdXRfY29uc3RyYWlu dCAoY29uc3QgY2hhciAqKmNvCi0gCWVsc2UgaWYgKGluc25fZXh0cmFfbWVtb3J5X2NvbnN0cmFp bnQgKGNuKSkKLSAJICAqYWxsb3dzX21lbSA9IHRydWU7Ci0gCWVsc2UKLS0JICB7Ci0tCSAgICAv KiBPdGhlcndpc2Ugd2UgY2FuJ3QgYXNzdW1lIGFueXRoaW5nIGFib3V0IHRoZSBuYXR1cmUgb2YK LS0JICAgICAgIHRoZSBjb25zdHJhaW50IGV4Y2VwdCB0aGF0IGl0IGlzbid0IHB1cmVseSByZWdp c3RlcnMuCi0tCSAgICAgICBUcmVhdCBpdCBsaWtlICJnIiBhbmQgaG9wZSBmb3IgdGhlIGJlc3Qu ICAqLwotLQkgICAgKmFsbG93c19yZWcgPSB0cnVlOwotLQkgICAgKmFsbG93c19tZW0gPSB0cnVl OwotLQkgIH0KLSsJICBpbnNuX2V4dHJhX2NvbnN0cmFpbnRfYWxsb3dzX3JlZ19tZW0gKGNuLCBh bGxvd3NfcmVnLCBhbGxvd3NfbWVtKTsKLSAJYnJlYWs7Ci0gICAgICAgfQotIAotQEAgLTQ2NSwx MyArNDU5LDcgQEAgcGFyc2VfaW5wdXRfY29uc3RyYWludCAoY29uc3QgY2hhciAqKmNvbgotIAll bHNlIGlmIChpbnNuX2V4dHJhX21lbW9yeV9jb25zdHJhaW50IChjbikpCi0gCSAgKmFsbG93c19t ZW0gPSB0cnVlOwotIAllbHNlCi0tCSAgewotLQkgICAgLyogT3RoZXJ3aXNlIHdlIGNhbid0IGFz c3VtZSBhbnl0aGluZyBhYm91dCB0aGUgbmF0dXJlIG9mCi0tCSAgICAgICB0aGUgY29uc3RyYWlu dCBleGNlcHQgdGhhdCBpdCBpc24ndCBwdXJlbHkgcmVnaXN0ZXJzLgotLQkgICAgICAgVHJlYXQg aXQgbGlrZSAiZyIgYW5kIGhvcGUgZm9yIHRoZSBiZXN0LiAgKi8KLS0JICAgICphbGxvd3NfcmVn ID0gdHJ1ZTsKLS0JICAgICphbGxvd3NfbWVtID0gdHJ1ZTsKLS0JICB9Ci0rCSAgaW5zbl9leHRy YV9jb25zdHJhaW50X2FsbG93c19yZWdfbWVtIChjbiwgYWxsb3dzX3JlZywgYWxsb3dzX21lbSk7 Ci0gCWJyZWFrOwotICAgICAgIH0KLSAKLS0tLSBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFy Y2g2NC9jLW91dHB1dC10ZW1wbGF0ZS00LmMuamoJMjAxNS0wNC0xNyAxNzo0ODoyNy41ODg2NTQ1 ODQgKzAyMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9jLW91dHB1dC10 ZW1wbGF0ZS00LmMJMjAxNS0wNC0xNyAxNzo0ODoyMi4xNDk3NDM0NjggKzAyMDAKLUBAIC0wLDAg KzEsMTAgQEAKLSsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotKy8qIHsgZGctb3B0aW9ucyAiLU8w IiB9ICovCi0rCi0rdm9pZAotK3Rlc3QgKHZvaWQpCi0rewotKyAgICBfX2FzbV9fICgiQCAlYzAi IDogOiAiUyIgKCZ0ZXN0ICsgNCkpOwotK30KLSsKLSsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXIgIkAgdGVzdFxcKzQiIH0gfSAqLwoKZGlmZiAtLWdpdCBhL2djYzUtcmgxMjc5NjM5LnBh dGNoIGIvZ2NjNS1yaDEyNzk2MzkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDRjYzllZTguLjAwMDAwMDAKLS0tIGEvZ2NjNS1yaDEyNzk2MzkucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwzOCArMCwwIEBACi0jIFdvcmthcm91bmQgZG94eWdlbiAxLjguMTAgYnVncy4KLS0t LSBsaWJzdGRjKystdjMvZG9jL2RveHlnZW4vdXNlci5jZmcuaW4KLSsrKyBsaWJzdGRjKystdjMv ZG9jL2RveHlnZW4vdXNlci5jZmcuaW4KLUBAIC04OTUsNyArODk1LDYgQEAgSU5QVVQgICAgICAg ICAgICAgICAgICA9IEBzcmNkaXJAL2RvYy9kb3h5Z2VuL2RveHlncm91cHMuY2MgXAotICAgICAg ICAgICAgICAgICAgICAgICAgICBpbmNsdWRlL2V4dC9wYl9kcy9kZXRhaWwvYmluYXJ5X2hlYXBf IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZS9leHQvcGJfZHMvZGV0YWlsL2Jp bm9taWFsX2hlYXBfIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZS9leHQvcGJf ZHMvZGV0YWlsL2Jpbm9taWFsX2hlYXBfYmFzZV8gXAotLSAgICAgICAgICAgICAgICAgICAgICAg ICBpbmNsdWRlL2V4dC9wYl9kcy9kZXRhaWwvYmluX3NlYXJjaF90cmVlXyBcCi0gICAgICAgICAg ICAgICAgICAgICAgICAgIGluY2x1ZGUvZXh0L3BiX2RzL2RldGFpbC9icmFuY2hfcG9saWN5IFwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZS9leHQvcGJfZHMvZGV0YWlsL2NjX2hh c2hfdGFibGVfbWFwXyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGUvZXh0L3Bi X2RzL2RldGFpbC9lcV9mbiBcCi1AQCAtMTk2NSwxOCArMTk2NCw2IEBAIEdFTkVSQVRFX1hNTCAg ICAgICAgICAgPSBAZG9feG1sQAotIAotIFhNTF9PVVRQVVQgICAgICAgICAgICAgPSB4bWwKLSAK LS0jIFRoZSBYTUxfU0NIRU1BIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgWE1MIHNjaGVt YSwgd2hpY2ggY2FuIGJlIHVzZWQgYnkgYQotLSMgdmFsaWRhdGluZyBYTUwgcGFyc2VyIHRvIGNo ZWNrIHRoZSBzeW50YXggb2YgdGhlIFhNTCBmaWxlcy4KLS0jIFRoaXMgdGFnIHJlcXVpcmVzIHRo YXQgdGhlIHRhZyBHRU5FUkFURV9YTUwgaXMgc2V0IHRvIFlFUy4KLS0KLS1YTUxfU0NIRU1BICAg ICAgICAgICAgID0KLS0KLS0jIFRoZSBYTUxfRFREIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5 IGEgWE1MIERURCwgd2hpY2ggY2FuIGJlIHVzZWQgYnkgYQotLSMgdmFsaWRhdGluZyBYTUwgcGFy c2VyIHRvIGNoZWNrIHRoZSBzeW50YXggb2YgdGhlIFhNTCBmaWxlcy4KLS0jIFRoaXMgdGFnIHJl cXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9YTUwgaXMgc2V0IHRvIFlFUy4KLS0KLS1YTUxf RFREICAgICAgICAgICAgICAgID0KLS0KLSAjIElmIHRoZSBYTUxfUFJPR1JBTUxJU1RJTkcgdGFn IGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGR1bXAgdGhlIHByb2dyYW0KLSAjIGxpc3Rpbmdz IChpbmNsdWRpbmcgc3ludGF4IGhpZ2hsaWdodGluZyBhbmQgY3Jvc3MtcmVmZXJlbmNpbmcgaW5m b3JtYXRpb24pIHRvCi0gIyB0aGUgWE1MIG91dHB1dC4gTm90ZSB0aGF0IGVuYWJsaW5nIHRoaXMg d2lsbCBzaWduaWZpY2FudGx5IGluY3JlYXNlIHRoZSBzaXplCi1AQCAtMjEzNSw2ICsyMTIyLDcg QEAgUFJFREVGSU5FRCAgICAgICAgICAgICA9IF9fY3BsdXNwbHVzPTIwMTEwM0wgXAotICAgICAg ICAgICAgICAgICAgICAgICAgICBfR0xJQkNYWF9VU0VfQ09OU1RFWFBSPWNvbnN0ZXhwciBcCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICJfR0xJQkNYWF9USFJPVyhFKT0gIiBcCi0gICAgICAg ICAgICAgICAgICAgICAgICAgIF9HTElCQ1hYX05PRVhDRVBUPW5vZXhjZXB0IFwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgIl9HTElCQ1hYX05PRVhDRVBUX0lGKEUpPW5vZXhjZXB0KEUpIiBc Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIF9HTElCQ1hYX05PVEhST1c9bm9leGNlcHQgXAot ICAgICAgICAgICAgICAgICAgICAgICAgICBfR0xJQkNYWF9VU0VfTk9FWENFUFQ9bm9leGNlcHQg XAotICAgICAgICAgICAgICAgICAgICAgICAgICBfR0xJQkNYWF9VU0VfV0NIQVJfVCBcCgpkaWZm IC0tZ2l0IGEvZ2NjNS1yaDMzMDc3MS5wYXRjaCBiL2djYzUtcmgzMzA3NzEucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwMjczMGYuLjAwMDAwMDAKLS0tIGEvZ2NjNS1yaDMz MDc3MS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLTIwMDctMTAtMTYgIEph a3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgotCi0JKiBNYWtlZmlsZS5hbSAobGliZ2Nq X3Rvb2xzX2xhX0xJQkFERCk6IEFkZC4KLQkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KLQot LS0tIGxpYmphdmEvTWFrZWZpbGUuYW0uamoJMjAwOS0wNS0wNiAwODoxNDo1MC4wMDAwMDAwMDAg KzAyMDAKLSsrKyBsaWJqYXZhL01ha2VmaWxlLmFtCTIwMDktMDUtMDYgMTA6MjY6NDMuMDAwMDAw MDAwICswMjAwCi1AQCAtNTUwLDcgKzU1MCw3IEBAIGxpYmdjal90b29sc19sYV9MREZMQUdTID0g LXJwYXRoICQodG9vbGUKLSAgJChMSUJHQ0pfTERfU1lNQk9MSUNfRlVOQ1RJT05TKSAkKExJQkpB VkFfTERGTEFHU19OT1VOREVGKSBcCi0gICQoTElCSkFWQV9MREZMQUdTX0xJQk1BVEgpCi0gCi0t bGliZ2NqX3Rvb2xzX2xhX0xJQkFERCA9IGxpYmdjai5sYQotK2xpYmdjal90b29sc19sYV9MSUJB REQgPSAtTCQoaGVyZSkvLmxpYnMgbGliZ2NqLmxhCi0gbGliZ2NqX3Rvb2xzX2xhX0RFUEVOREVO Q0lFUyA9IGxpYmdjai5sYSBsaWJnY2ouc3BlYyBcCi0gICQobGliZ2NqX3Rvb2xzX2xhX3ZlcnNp b25fZGVwKQotIGlmIEJVSUxEX1NVQkxJQlMKLS0tLSBsaWJqYXZhL01ha2VmaWxlLmluLmpqCTIw MDktMDUtMDYgMDg6MTQ6NDkuMDAwMDAwMDAwICswMjAwCi0rKysgbGliamF2YS9NYWtlZmlsZS5p bgkyMDA5LTA1LTA2IDEwOjI3OjE4LjAwMDAwMDAwMCArMDIwMAotQEAgLTExMTAsNyArMTExMCw3 IEBAIGxpYmdjal90b29sc19sYV9MREZMQUdTID0gLXJwYXRoICQodG9vbGUKLSAgJChMSUJHQ0pf TERfU1lNQk9MSUNfRlVOQ1RJT05TKSAkKExJQkpBVkFfTERGTEFHU19OT1VOREVGKSBcCi0gICQo TElCSkFWQV9MREZMQUdTX0xJQk1BVEgpCi0gCi0tbGliZ2NqX3Rvb2xzX2xhX0xJQkFERCA9IGxp Ymdjai5sYQotK2xpYmdjal90b29sc19sYV9MSUJBREQgPSAtTCQoaGVyZSkvLmxpYnMgbGliZ2Nq LmxhCi0gbGliZ2NqX3Rvb2xzX2xhX0RFUEVOREVOQ0lFUyA9IGxpYmdjai5sYSBsaWJnY2ouc3Bl YyBcCi0gCSQobGliZ2NqX3Rvb2xzX2xhX3ZlcnNpb25fZGVwKSAkKGFtX19hcHBlbmRfMTkpCi0g bGliZ2NqX3Rvb2xzX2xhX0xJTksgPSAkKExJQkxJTkspICQobGliZ2NqX3Rvb2xzX2xhX0xERkxB R1MpIFwKCmRpZmYgLS1naXQgYS9nY2M1LXNwYXJjLWNvbmZpZy1kZXRlY3Rpb24ucGF0Y2ggYi9n Y2M1LXNwYXJjLWNvbmZpZy1kZXRlY3Rpb24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IGEzNzAxOGUuLjAwMDAwMDAKLS0tIGEvZ2NjNS1zcGFyYy1jb25maWctZGV0ZWN0aW9u LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotLS0tIGdjYy9jb25maWcuZ2Nj LmpqCTIwMDgtMDQtMjQgMTU6NDI6NDYuMDAwMDAwMDAwIC0wNTAwCi0rKysgZ2NjL2NvbmZpZy5n Y2MJMjAwOC0wNC0yNCAxNTo0NDo1MS4wMDAwMDAwMDAgLTA1MDAKLUBAIC0yNjU2LDcgKzI2NTYs NyBAQCBzcGFyYy0qLXJ0ZW1zKikKLSAJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnhlbGYuaCBlbGZv cy5oIHNwYXJjL3N5c3Y0Lmggc3BhcmMvc3AtZWxmLmggc3BhcmMvcnRlbXNlbGYuaCBydGVtcy5o IG5ld2xpYi1zdGRpbnQuaCIKLSAJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSBzcGFyYy90LXNw YXJjIHNwYXJjL3QtcnRlbXMiCi0gCTs7Ci0tc3BhcmMtKi1saW51eCopCi0rc3BhcmMtKi1saW51 eCogfCBzcGFyY3Y5LSotbGludXgqKQotIAl0bV9maWxlPSIke3RtX2ZpbGV9IGRieGVsZi5oIGVs Zm9zLmggc3BhcmMvc3lzdjQuaCBnbnUtdXNlci5oIGxpbnV4LmggZ2xpYmMtc3RkaW50Lmggc3Bh cmMvdHNvLmgiCi0gCWV4dHJhX29wdGlvbnM9IiR7ZXh0cmFfb3B0aW9uc30gc3BhcmMvbG9uZy1k b3VibGUtc3dpdGNoLm9wdCIKLSAJY2FzZSAke3RhcmdldH0gaW4KLUBAIC0yNzEwLDcgKzI3MTAs NyBAQCBzcGFyYzY0LSotcnRlbXMqKQotIAlleHRyYV9vcHRpb25zPSIke2V4dHJhX29wdGlvbnN9 IgotIAl0bWFrZV9maWxlPSIke3RtYWtlX2ZpbGV9IHNwYXJjL3Qtc3BhcmMgc3BhcmMvdC1ydGVt cy02NCIKLSAJOzsKLS1zcGFyYzY0LSotbGludXgqKQotK3NwYXJjNjQqLSotbGludXgqKQotIAl0 bV9maWxlPSJzcGFyYy9iaWFyY2g2NC5oICR7dG1fZmlsZX0gZGJ4ZWxmLmggZWxmb3MuaCBzcGFy Yy9zeXN2NC5oIGdudS11c2VyLmggbGludXguaCBnbGliYy1zdGRpbnQuaCBzcGFyYy9kZWZhdWx0 LTY0Lmggc3BhcmMvbGludXg2NC5oIHNwYXJjL3Rzby5oIgotIAlleHRyYV9vcHRpb25zPSIke2V4 dHJhX29wdGlvbnN9IHNwYXJjL2xvbmctZG91YmxlLXN3aXRjaC5vcHQiCi0gCXRtYWtlX2ZpbGU9 IiR7dG1ha2VfZmlsZX0gc3BhcmMvdC1zcGFyYyBzcGFyYy90LWxpbnV4NjQiCi0tLS0gbGliZ2Nj L2NvbmZpZy5ob3N0LmpqCTIwMDgtMDQtMjQgMTU6NDY6MTkuMDAwMDAwMDAwIC0wNTAwCi0rKysg bGliZ2NjL2NvbmZpZy5ob3N0CTIwMDgtMDQtMjQgMTU6NDY6NDkuMDAwMDAwMDAwIC0wNTAwCi1A QCAtMTAwMiw3ICsxMDAyLDcgQEAgc3BhcmMtKi1lbGYqKQotIAl0bWFrZV9maWxlPSIke3RtYWtl X2ZpbGV9IHQtZmRwYml0IHQtY3J0Zm0iCi0gCWV4dHJhX3BhcnRzPSIkZXh0cmFfcGFydHMgY3J0 aS5vIGNydG4ubyBjcnRmYXN0bWF0aC5vIgotIAk7OwotLXNwYXJjLSotbGludXgqKQkJIyBTUEFS QydzIHJ1bm5pbmcgR05VL0xpbnV4LCBsaWJjNgotK3NwYXJjLSotbGludXgqIHwgc3BhcmN2OS0q LWxpbnV4KikJCSMgU1BBUkMncyBydW5uaW5nIEdOVS9MaW51eCwgbGliYzYKLSAJdG1ha2VfZmls ZT0iJHt0bWFrZV9maWxlfSB0LWNydGZtIgotIAlpZiB0ZXN0ICIke2hvc3RfYWRkcmVzc30iID0g NjQ7IHRoZW4KLSAJCXRtYWtlX2ZpbGU9IiR0bWFrZV9maWxlIHNwYXJjL3QtbGludXg2NCIKLUBA IC0xMDUwLDcgKzEwNTAsNyBAQCBzcGFyYzY0LSotZnJlZWJzZCp8dWx0cmFzcGFyYy0qLWZyZWVi c2QqCi0gCXRtYWtlX2ZpbGU9IiR0bWFrZV9maWxlIHQtY3J0Zm0iCi0gCWV4dHJhX3BhcnRzPSIk ZXh0cmFfcGFydHMgY3J0ZmFzdG1hdGgubyIKLSAJOzsKLS1zcGFyYzY0LSotbGludXgqKQkJIyA2 NC1iaXQgU1BBUkMncyBydW5uaW5nIEdOVS9MaW51eAotK3NwYXJjNjQqLSotbGludXgqKQkJIyA2 NC1iaXQgU1BBUkMncyBydW5uaW5nIEdOVS9MaW51eAotIAlleHRyYV9wYXJ0cz0iJGV4dHJhX3Bh cnRzIGNydGZhc3RtYXRoLm8iCi0gCXRtYWtlX2ZpbGU9IiR7dG1ha2VfZmlsZX0gdC1jcnRmbSBz cGFyYy90LWxpbnV4IgotIAlpZiB0ZXN0ICIke2hvc3RfYWRkcmVzc30iID0gNjQ7IHRoZW4KCmRp ZmYgLS1naXQgYS9nY2M2LWFhcmNoNjQtYXN5bmMtdW53LXRhYmxlcy5wYXRjaCBiL2djYzYtYWFy Y2g2NC1hc3luYy11bnctdGFibGVzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmZlZWMxNDkKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M2LWFhcmNoNjQtYXN5bmMtdW53 LXRhYmxlcy5wYXRjaApAQCAtMCwwICsxLDM1IEBACisyMDE0LTA0LTA3ICBSaWNoYXJkIEhlbmRl cnNvbiAgPHJ0aEByZWRoYXQuY29tPgorCisJKiBjb21tb24vY29uZmlnL2FhcmNoNjQvYWFyY2g2 NC1jb21tb24uYyAoVEFSR0VUX09QVElPTl9JTklUX1NUUlVDVCk6CisJRGVmaW5lLgorCShhYXJj aDY0X29wdGlvbl9pbml0X3N0cnVjdCk6IE5ldyBmdW5jdGlvbi4KKworLS0tIGdjYy9jb21tb24v Y29uZmlnL2FhcmNoNjQvYWFyY2g2NC1jb21tb24uYworKysrIGdjYy9jb21tb24vY29uZmlnL2Fh cmNoNjQvYWFyY2g2NC1jb21tb24uYworQEAgLTM5LDYgKzM5LDkgQEAKKyAjdW5kZWYJVEFSR0VU X09QVElPTl9PUFRJTUlaQVRJT05fVEFCTEUKKyAjZGVmaW5lIFRBUkdFVF9PUFRJT05fT1BUSU1J WkFUSU9OX1RBQkxFIGFhcmNoX29wdGlvbl9vcHRpbWl6YXRpb25fdGFibGUKKyAKKysjdW5kZWYg VEFSR0VUX09QVElPTl9JTklUX1NUUlVDVAorKyNkZWZpbmUgVEFSR0VUX09QVElPTl9JTklUX1NU UlVDVCBhYXJjaDY0X29wdGlvbl9pbml0X3N0cnVjdAorKworIC8qIFNldCBkZWZhdWx0IG9wdGlt aXphdGlvbiBvcHRpb25zLiAgKi8KKyBzdGF0aWMgY29uc3Qgc3RydWN0IGRlZmF1bHRfb3B0aW9u cyBhYXJjaF9vcHRpb25fb3B0aW1pemF0aW9uX3RhYmxlW10gPQorICAgeworQEAgLTQ3LDYgKzUw LDE2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGVmYXVsdF9vcHRpb25zIGFhcmNoX29wdGlvbl9v cHRpbWl6YXRpb25fdGFibGVbXSA9CisgICAgIHsgT1BUX0xFVkVMU19OT05FLCAwLCBOVUxMLCAw IH0KKyAgIH07CisgCisrLyogSW1wbGVtZW50IFRBUkdFVF9PUFRJT05fSU5JVF9TVFJVQ1QuICAq LworKworK3N0YXRpYyB2b2lkCisrYWFyY2g2NF9vcHRpb25faW5pdF9zdHJ1Y3QgKHN0cnVjdCBn Y2Nfb3B0aW9ucyAqb3B0cykKKyt7CisrICAvKiBCeSBkZWZhdWx0LCBhbHdheXMgZW1pdCBEV0FS Ri0yIHVud2luZCBpbmZvLiAgVGhpcyBhbGxvd3MgZGVidWdnaW5nCisrICAgICB3aXRob3V0IG1h aW50YWluaW5nIGEgc3RhY2sgZnJhbWUgYmFjay1jaGFpbi4gICovCisrICBvcHRzLT54X2ZsYWdf YXN5bmNocm9ub3VzX3Vud2luZF90YWJsZXMgPSAxOworK30KKysKKyAvKiBJbXBsZW1lbnQgVEFS R0VUX0hBTkRMRV9PUFRJT04uCisgICAgVGhpcyBmdW5jdGlvbiBoYW5kbGVzIHRoZSB0YXJnZXQg c3BlY2lmaWMgb3B0aW9ucyBmb3IgQ1BVL3RhcmdldCBzZWxlY3Rpb24uCisgCgpkaWZmIC0tZ2l0 IGEvZ2NjNi1oYWNrLnBhdGNoIGIvZ2NjNi1oYWNrLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjk1MGZmNjMKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M2LWhhY2sucGF0 Y2gKQEAgLTAsMCArMSwxNTkgQEAKKy0tLSBsaWJhZGEvTWFrZWZpbGUuaW4uamoJMjAwOS0wMS0x NCAxMjowNzozNS4wMDAwMDAwMDAgKzAxMDAKKysrKyBsaWJhZGEvTWFrZWZpbGUuaW4JMjAwOS0w MS0xNSAxNDoyNTozMy4wMDAwMDAwMDAgKzAxMDAKK0BAIC02NiwxOCArNjYsNDAgQEAgbGlic3Vi ZGlyIDo9ICQobGliZGlyKS9nY2MvJCh0YXJnZXRfbm9uYworIEFEQV9SVFNfRElSPSQoR0NDX0RJ UikvYWRhL3J0cyQoc3Vic3QgLyxfLCQoTVVMVElTVUJESVIpKQorIEFEQV9SVFNfU1VCRElSPS4v cnRzJChzdWJzdCAvLF8sJChNVUxUSVNVQkRJUikpCisgCisrREVGQVVMVE1VTFRJRkxBR1MgOj0K KytpZmVxICgkKE1VTFRJU1VCRElSKSwpCisrdGFyZzo9JChzdWJzdCAtLCAsJCh0YXJnZXQpKQor K2FyY2g6PSQod29yZCAxLCQodGFyZykpCisraWZlcSAoJCh3b3JkcyAkKHRhcmcpKSwyKQorK29z eXM6PSQod29yZCAyLCQodGFyZykpCisrZWxzZQorK29zeXM6PSQod29yZCAzLCQodGFyZykpCisr ZW5kaWYKKytpZmVxICgkKHN0cmlwICQoZmlsdGVyLW91dCBpJTg2IHg4Nl82NCBwb3dlcnBjJSBw cGMlIHMzOTAlIHNwYXJjJSBsaW51eCUsICQoYXJjaCkgJChvc3lzKSkpLCkKKytpZmVxICgkKHNo ZWxsICQoQ0MpICQoQ0ZMQUdTKSAtcHJpbnQtbXVsdGktb3MtZGlyZWN0b3J5KSwuLi9saWI2NCkK KytERUZBVUxUTVVMVElGTEFHUyA6PSAtbTY0CisrZWxzZQorK2lmZXEgKCQoc3RyaXAgJChmaWx0 ZXItb3V0IHMzOTAlLCAkKGFyY2gpKSksKQorK0RFRkFVTFRNVUxUSUZMQUdTIDo9IC1tMzEKKytl bHNlCisrREVGQVVMVE1VTFRJRkxBR1MgOj0gLW0zMgorK2VuZGlmCisrZW5kaWYKKytlbmRpZgor K2VuZGlmCisrCisgIyBleGVleHQgc2hvdWxkIG5vdCBiZSB1c2VkIGJlY2F1c2UgaXQncyB0aGUg Kmhvc3QqIGV4ZWV4dC4gIFdlJ3JlIGJ1aWxkaW5nCisgIyBhICp0YXJnZXQqIGxpYnJhcnksIGFy ZW4ndCB3ZT8hPyAgTGlrZXdpc2UgZm9yIENDLiAgU3RpbGwsIHByb3ZpZGUgYm9ndXMKKyAjIGRl ZmluaXRpb25zIGp1c3QgaW4gY2FzZSBzb21ldGhpbmcgc2xpcHMgdGhyb3VnaCB0aGUgc2FmZXR5 IG5ldCBwcm92aWRlZAorICMgYnkgcmVjdXJzaXZlIG1ha2UgaW52b2NhdGlvbnMgaW4gZ2NjL2Fk YS9NYWtlZmlsZS5pbgorIExJQkFEQV9GTEFHU19UT19QQVNTID0gXAorICAgICAgICAgIk1BS0VP VkVSUklERVM9IiBcCistICAgICAgICAiTERGTEFHUz0kKExERkxBR1MpIiBcCisrICAgICAgICAi TERGTEFHUz0kKExERkxBR1MpICQoREVGQVVMVE1VTFRJRkxBR1MpIiBcCisgICAgICAgICAiTE5f Uz0kKExOX1MpIiBcCisgICAgICAgICAiU0hFTEw9JChTSEVMTCkiIFwKKy0gICAgICAgICJHTkFU TElCRkxBR1M9JChHTkFUTElCRkxBR1MpICQoTVVMVElGTEFHUykiIFwKKy0gICAgICAgICJHTkFU TElCQ0ZMQUdTPSQoR05BVExJQkNGTEFHUykgJChNVUxUSUZMQUdTKSIgXAorLSAgICAgICAgIkdO QVRMSUJDRkxBR1NfRk9SX0M9JChHTkFUTElCQ0ZMQUdTX0ZPUl9DKSAkKE1VTFRJRkxBR1MpIiBc CisrICAgICAgICAiR05BVExJQkZMQUdTPSQoR05BVExJQkZMQUdTKSAkKE1VTFRJRkxBR1MpICQo REVGQVVMVE1VTFRJRkxBR1MpIiBcCisrICAgICAgICAiR05BVExJQkNGTEFHUz0kKEdOQVRMSUJD RkxBR1MpICQoTVVMVElGTEFHUykgJChERUZBVUxUTVVMVElGTEFHUykiIFwKKysgICAgICAgICJH TkFUTElCQ0ZMQUdTX0ZPUl9DPSQoR05BVExJQkNGTEFHU19GT1JfQykgJChNVUxUSUZMQUdTKSAk KERFRkFVTFRNVUxUSUZMQUdTKSIgXAorICAgICAgICAgIlBJQ0ZMQUdfRk9SX1RBUkdFVD0kKFBJ Q0ZMQUcpIiBcCisgICAgICAgICAiVEhSRUFEX0tJTkQ9JChUSFJFQURfS0lORCkiIFwKKyAgICAg ICAgICJUUkFDRT0kKFRSQUNFKSIgXAorQEAgLTg4LDcgKzExMCw3IEBAIExJQkFEQV9GTEFHU19U T19QQVNTID0gXAorICAgICAgICAgImV4ZWV4dD0uZXhlZXh0LnNob3VsZC5ub3QuYmUudXNlZCAi IFwKKyAJJ0NDPXRoZS5ob3N0LmNvbXBpbGVyLnNob3VsZC5ub3QuYmUubmVlZGVkJyBcCisgCSJH Q0NfRk9SX1RBUkdFVD0kKENDKSIgXAorLSAgICAgICAgIkNGTEFHUz0kKENGTEFHUykiCisrICAg ICAgICAiQ0ZMQUdTPSQoQ0ZMQUdTKSAkKERFRkFVTFRNVUxUSUZMQUdTKSIKKyAKKyAjIFJ1bGVz IHRvIGJ1aWxkIGduYXRsaWIuCisgLlBIT05ZOiBnbmF0bGliIGduYXRsaWItcGxhaW4gZ25hdGxp Yi1zamxqIGduYXRsaWItemN4IGduYXRsaWItc2hhcmVkIG9zY29uc3Rvb2wKKy0tLSBnY2MvYWRh L3NlbV91dGlsLmFkYgkocmV2aXNpb24gMTYxNjc3KQorKysrIGdjYy9hZGEvc2VtX3V0aWwuYWRi CSh3b3JraW5nIGNvcHkpCitAQCAtNTQ4Nyw3ICs1NDg3LDcgQEAgcGFja2FnZSBib2R5IFNlbV9V dGlsIGlzCisgICAgICAgICAgICAgRXhwICAgICAgICAgICA6IE5vZGVfSWQ7CisgICAgICAgICAg ICAgQXNzbiAgICAgICAgICA6IE5vZGVfSWQ7CisgICAgICAgICAgICAgQ2hvaWNlICAgICAgICA6 IE5vZGVfSWQ7CistICAgICAgICAgICAgQ29tcF9UeXBlICAgICA6IEVudGl0eV9JZDsKKysgICAg ICAgICAgICBDb21wX1R5cGUgICAgIDogRW50aXR5X0lkIDo9IEVtcHR5OworICAgICAgICAgICAg IElzX0FycmF5X0FnZ3IgOiBCb29sZWFuOworIAorICAgICAgICAgIGJlZ2luCistLS0gY29uZmln LW1sLmluLmpqCTIwMTAtMDYtMzAgMDk6NTA6NDQuMDAwMDAwMDAwICswMjAwCisrKysgY29uZmln LW1sLmluCTIwMTAtMDctMDIgMjE6MjQ6MTcuOTk0MjExMTUxICswMjAwCitAQCAtNTE2LDYgKzUx Niw4IEBAIG11bHRpLWRvOgorIAkJCQlBREFGTEFHUz0iJChBREFGTEFHUykgJCR7ZmxhZ3N9IiBc CisgCQkJCXByZWZpeD0iJChwcmVmaXgpIiBcCisgCQkJCWV4ZWNfcHJlZml4PSIkKGV4ZWNfcHJl Zml4KSIgXAorKwkJCQltYW5kaXI9IiQobWFuZGlyKSIgXAorKwkJCQlpbmZvZGlyPSIkKGluZm9k aXIpIiBcCisgCQkJCUdDSkZMQUdTPSIkKEdDSkZMQUdTKSAkJHtmbGFnc30iIFwKKyAJCQkJR09D RkxBR1M9IiQoR09DRkxBR1MpICQke2ZsYWdzfSIgXAorIAkJCQlDWFhGTEFHUz0iJChDWFhGTEFH UykgJCR7ZmxhZ3N9IiBcCistLS0gbGliamF2YS9NYWtlZmlsZS5hbS5qagkyMDEwLTA3LTA5IDEx OjE3OjMzLjcyOTYwNDA5MCArMDIwMAorKysrIGxpYmphdmEvTWFrZWZpbGUuYW0JMjAxMC0wNy0w OSAxMzoxNjo0MS44OTQzNzU2NDEgKzAyMDAKK0BAIC03MTAsNyArNzEwLDggQEAgaWYgVVNFX0xJ QkdDSl9CQworICMjIGxhdGVyLgorIAlAZWNobyBJbnN0YWxsaW5nIGR1bW15IGxpYiBsaWJnY2pf YmMuc28uMS4wLjA7IFwKKyAJcm0gJChERVNURElSKSQodG9vbGV4ZWNsaWJkaXIpL2xpYmdjal9i Yy5zbzsgXAorLQltdiAkKERFU1RESVIpJCh0b29sZXhlY2xpYmRpcikvbGliZ2NqX2JjLnNvLjEu MC4wICQoREVTVERJUikkKHRvb2xleGVjbGliZGlyKS9saWJnY2pfYmMuc287IFwKKysJJChJTlNU QUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJChoZXJlKS8ubGlicy9saWJnY2pfYmMuc28gJChE RVNURElSKSQodG9vbGV4ZWNsaWJkaXIpL2xpYmdjal9iYy5zbzsgXAorKwlybSAkKERFU1RESVIp JCh0b29sZXhlY2xpYmRpcikvbGliZ2NqX2JjLnNvLjEuMC4wOyBcCisgCSQobGliZ2NqX2JjX2R1 bW15X0xJTkspIC14YyAvZGV2L251bGwgLVdsLC1zb25hbWUsbGliZ2NqX2JjLnNvLjEgXAorIAkt byAkKERFU1RESVIpJCh0b29sZXhlY2xpYmRpcikvbGliZ2NqX2JjLnNvLjEuMC4wIC1sZ2NqIHx8 IGV4aXQ7IFwKKyAJcm0gJChERVNURElSKSQodG9vbGV4ZWNsaWJkaXIpL2xpYmdjal9iYy5zby4x OyBcCistLS0gbGliamF2YS9NYWtlZmlsZS5pbi5qagkyMDEwLTA3LTA5IDExOjE3OjM0LjAwMDAw MDAwMCArMDIwMAorKysrIGxpYmphdmEvTWFrZWZpbGUuaW4JMjAxMC0wNy0wOSAxMzoxODowNy41 NDI1NzIyNzAgKzAyMDAKK0BAIC0xMjY2NSw3ICsxMjY2NSw4IEBAIGluc3RhbGwtZXhlYy1ob29r OiBpbnN0YWxsLWJpblBST0dSQU1TIGkKKyAJaW5zdGFsbC1saWJleGVjc3ViUFJPR1JBTVMKKyBA VVNFX0xJQkdDSl9CQ19UUlVFQAlAZWNobyBJbnN0YWxsaW5nIGR1bW15IGxpYiBsaWJnY2pfYmMu c28uMS4wLjA7IFwKKyBAVVNFX0xJQkdDSl9CQ19UUlVFQAlybSAkKERFU1RESVIpJCh0b29sZXhl Y2xpYmRpcikvbGliZ2NqX2JjLnNvOyBcCistQFVTRV9MSUJHQ0pfQkNfVFJVRUAJbXYgJChERVNU RElSKSQodG9vbGV4ZWNsaWJkaXIpL2xpYmdjal9iYy5zby4xLjAuMCAkKERFU1RESVIpJCh0b29s ZXhlY2xpYmRpcikvbGliZ2NqX2JjLnNvOyBcCisrQFVTRV9MSUJHQ0pfQkNfVFJVRUAJJChJTlNU QUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJChoZXJlKS8ubGlicy9saWJnY2pfYmMuc28gJChE RVNURElSKSQodG9vbGV4ZWNsaWJkaXIpL2xpYmdjal9iYy5zbzsgXAorK0BVU0VfTElCR0NKX0JD X1RSVUVACXJtICQoREVTVERJUikkKHRvb2xleGVjbGliZGlyKS9saWJnY2pfYmMuc28uMS4wLjA7 IFwKKyBAVVNFX0xJQkdDSl9CQ19UUlVFQAkkKGxpYmdjal9iY19kdW1teV9MSU5LKSAteGMgL2Rl di9udWxsIC1XbCwtc29uYW1lLGxpYmdjal9iYy5zby4xIFwKKyBAVVNFX0xJQkdDSl9CQ19UUlVF QAktbyAkKERFU1RESVIpJCh0b29sZXhlY2xpYmRpcikvbGliZ2NqX2JjLnNvLjEuMC4wIC1sZ2Nq IHx8IGV4aXQ7IFwKKyBAVVNFX0xJQkdDSl9CQ19UUlVFQAlybSAkKERFU1RESVIpJCh0b29sZXhl Y2xpYmRpcikvbGliZ2NqX2JjLnNvLjE7IFwKKy0tLSBsaWJjcHAvbWFjcm8uYy5qagkyMDE1LTAx LTE0IDExOjAxOjM0LjAwMDAwMDAwMCArMDEwMAorKysrIGxpYmNwcC9tYWNyby5jCTIwMTUtMDEt MTQgMTQ6MjI6MTkuMjg2OTQ5ODg0ICswMTAwCitAQCAtMjk0Nyw4ICsyOTQ3LDYgQEAgY3JlYXRl X2lzb19kZWZpbml0aW9uIChjcHBfcmVhZGVyICpwZmlsZQorICAgY3BwX3Rva2VuICp0b2tlbjsK KyAgIGNvbnN0IGNwcF90b2tlbiAqY3Rva2VuOworICAgYm9vbCBmb2xsb3dpbmdfcGFzdGVfb3Ag PSBmYWxzZTsKKy0gIGNvbnN0IGNoYXIgKnBhc3RlX29wX2Vycm9yX21zZyA9CistICAgIE5fKCIn IyMnIGNhbm5vdCBhcHBlYXIgYXQgZWl0aGVyIGVuZCBvZiBhIG1hY3JvIGV4cGFuc2lvbiIpOwor ICAgdW5zaWduZWQgaW50IG51bV9leHRyYV90b2tlbnMgPSAwOworIAorICAgLyogR2V0IHRoZSBm aXJzdCB0b2tlbiBvZiB0aGUgZXhwYW5zaW9uIChvciB0aGUgJygnIG9mIGEKK0BAIC0zMDU5LDcg KzMwNTcsOCBAQCBjcmVhdGVfaXNvX2RlZmluaXRpb24gKGNwcF9yZWFkZXIgKnBmaWxlCisgCSAg ICAgZnVuY3Rpb24tbGlrZSBtYWNyb3MsIGJ1dCBub3QgYXQgdGhlIGVuZC4gICovCisgCSAgaWYg KGZvbGxvd2luZ19wYXN0ZV9vcCkKKyAJICAgIHsKKy0JICAgICAgY3BwX2Vycm9yIChwZmlsZSwg Q1BQX0RMX0VSUk9SLCBwYXN0ZV9vcF9lcnJvcl9tc2cpOworKwkgICAgICBjcHBfZXJyb3IgKHBm aWxlLCBDUFBfRExfRVJST1IsCisrCQkJICInIyMnIGNhbm5vdCBhcHBlYXIgYXQgZWl0aGVyIGVu ZCBvZiBhIG1hY3JvIGV4cGFuc2lvbiIpOworIAkgICAgICByZXR1cm4gZmFsc2U7CisgCSAgICB9 CisgCSAgYnJlYWs7CitAQCAtMzA3Miw3ICszMDcxLDggQEAgY3JlYXRlX2lzb19kZWZpbml0aW9u IChjcHBfcmVhZGVyICpwZmlsZQorIAkgICAgIGZ1bmN0aW9uLWxpa2UgbWFjcm9zLCBidXQgbm90 IGF0IHRoZSBiZWdpbm5pbmcuICAqLworIAkgIGlmIChtYWNyby0+Y291bnQgPT0gMSkKKyAJICAg IHsKKy0JICAgICAgY3BwX2Vycm9yIChwZmlsZSwgQ1BQX0RMX0VSUk9SLCBwYXN0ZV9vcF9lcnJv cl9tc2cpOworKwkgICAgICBjcHBfZXJyb3IgKHBmaWxlLCBDUFBfRExfRVJST1IsCisrCQkJICIn IyMnIGNhbm5vdCBhcHBlYXIgYXQgZWl0aGVyIGVuZCBvZiBhIG1hY3JvIGV4cGFuc2lvbiIpOwor IAkgICAgICByZXR1cm4gZmFsc2U7CisgCSAgICB9CisgCistLS0gbGliY3BwL2V4cHIuYy5qagky MDE1LTAxLTE0IDExOjAxOjM0LjAwMDAwMDAwMCArMDEwMAorKysrIGxpYmNwcC9leHByLmMJMjAx NS0wMS0xNCAxNDozNTo1Mi44NTEwMDIzNDQgKzAxMDAKK0BAIC02NzIsMTYgKzY3MiwxNyBAQCBj cHBfY2xhc3NpZnlfbnVtYmVyIChjcHBfcmVhZGVyICpwZmlsZSwKKyAgICAgICBpZiAoKHJlc3Vs dCAmIENQUF9OX1dJRFRIKSA9PSBDUFBfTl9MQVJHRQorIAkgICYmIENQUF9PUFRJT04gKHBmaWxl LCBjcHBfd2Fybl9sb25nX2xvbmcpKQorICAgICAgICAgeworLSAgICAgICAgICBjb25zdCBjaGFy ICptZXNzYWdlID0gQ1BQX09QVElPTiAocGZpbGUsIGNwbHVzcGx1cykgCistCQkJCT8gTl8oInVz ZSBvZiBDKysxMSBsb25nIGxvbmcgaW50ZWdlciBjb25zdGFudCIpCistCQkgICAgICAgICAgICAg ICAgOiBOXygidXNlIG9mIEM5OSBsb25nIGxvbmcgaW50ZWdlciBjb25zdGFudCIpOworLQorIAkg IGlmIChDUFBfT1BUSU9OIChwZmlsZSwgYzk5KSkKKyAgICAgICAgICAgICBjcHBfd2FybmluZ193 aXRoX2xpbmUgKHBmaWxlLCBDUFBfV19MT05HX0xPTkcsIHZpcnR1YWxfbG9jYXRpb24sCistCQkJ CSAgIDAsIG1lc3NhZ2UpOworKwkJCQkgICAwLCBDUFBfT1BUSU9OIChwZmlsZSwgY3BsdXNwbHVz KQorKwkJCQkgICAgICA/IE5fKCJ1c2Ugb2YgQysrMTEgbG9uZyBsb25nIGludGVnZXIgY29uc3Rh bnQiKQorKwkJCQkgICAgICA6IE5fKCJ1c2Ugb2YgQzk5IGxvbmcgbG9uZyBpbnRlZ2VyIGNvbnN0 YW50IikpOworICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgY3BwX3BlZHdhcm5pbmdfd2l0 aF9saW5lIChwZmlsZSwgQ1BQX1dfTE9OR19MT05HLAorLQkJCQkgICAgICB2aXJ0dWFsX2xvY2F0 aW9uLCAwLCBtZXNzYWdlKTsKKysJCQkJICAgICAgdmlydHVhbF9sb2NhdGlvbiwgMCwKKysJCQkJ ICAgICAgQ1BQX09QVElPTiAocGZpbGUsIGNwbHVzcGx1cykKKysJCQkJICAgICAgPyBOXygidXNl IG9mIEMrKzExIGxvbmcgbG9uZyBpbnRlZ2VyIGNvbnN0YW50IikKKysJCQkJICAgICAgOiBOXygi dXNlIG9mIEM5OSBsb25nIGxvbmcgaW50ZWdlciBjb25zdGFudCIpKTsKKyAgICAgICAgIH0KKyAK KyAgICAgICByZXN1bHQgfD0gQ1BQX05fSU5URUdFUjsKCmRpZmYgLS1naXQgYS9nY2M2LWkzODYt bGliZ29tcC5wYXRjaCBiL2djYzYtaTM4Ni1saWJnb21wLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjUyMDU2MWUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M2LWkzODYt bGliZ29tcC5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gbGliZ29tcC9jb25maWd1cmUudGd0 LmpqCTIwMDgtMDEtMTAgMjA6NTM6NDguMDAwMDAwMDAwICswMTAwCisrKysgbGliZ29tcC9jb25m aWd1cmUudGd0CTIwMDgtMDMtMjcgMTI6NDQ6NTEuMDAwMDAwMDAwICswMTAwCitAQCAtNjcsNyAr NjcsNyBAQCBpZiB0ZXN0ICRlbmFibGVfbGludXhfZnV0ZXggPSB5ZXM7IHRoZW4KKyAJICAgIDs7 CisgCSAgKikKKyAJICAgIGlmIHRlc3QgLXogIiR3aXRoX2FyY2giOyB0aGVuCistCSAgICAgIFhD RkxBR1M9IiR7WENGTEFHU30gLW1hcmNoPWk0ODYgLW10dW5lPSR7dGFyZ2V0X2NwdX0iCisrCSAg ICAgIFhDRkxBR1M9IiR7WENGTEFHU30gLW1hcmNoPWk0ODYgLW10dW5lPWdlbmVyaWMiCisgCSAg ICBmaQorIAllc2FjCisgCTs7CgpkaWZmIC0tZ2l0IGEvZ2NjNi1pc2wtZGwucGF0Y2ggYi9nY2M2 LWlzbC1kbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDlhYzNm Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjNi1pc2wtZGwucGF0Y2gKQEAgLTAsMCArMSw1ODUgQEAK Ky0tLSBnY2MvTWFrZWZpbGUuaW4uamoJMjAxNS0wNi0wNiAxMDowMDoyNS4wMDAwMDAwMDAgKzAy MDAKKysrKyBnY2MvTWFrZWZpbGUuaW4JMjAxNS0xMS0wNCAxNDo1NjowMi42NDM1MzY0MzcgKzAx MDAKK0BAIC0xMDEzLDcgKzEwMTMsNyBAQCBCVUlMRF9MSUJERVBTPSAkKEJVSUxEX0xJQklCRVJU WSkKKyAjIGFuZCB0aGUgc3lzdGVtJ3MgaW5zdGFsbGVkIGxpYnJhcmllcy4KKyBMSUJTID0gQExJ QlNAIGxpYmNvbW1vbi5hICQoQ1BQTElCKSAkKExJQklOVEwpICQoTElCSUNPTlYpICQoTElCQkFD S1RSQUNFKSBcCisgCSQoTElCSUJFUlRZKSAkKExJQkRFQ05VTUJFUikgJChIT1NUX0xJQlMpCist QkFDS0VORExJQlMgPSAkKElTTExJQlMpICQoR01QTElCUykgJChQTFVHSU5MSUJTKSAkKEhPU1Rf TElCUykgXAorK0JBQ0tFTkRMSUJTID0gJChpZiAkKElTTExJQlMpLC1sZGwpICQoR01QTElCUykg JChQTFVHSU5MSUJTKSAkKEhPU1RfTElCUykgXAorIAkkKFpMSUIpCisgIyBBbnkgc3lzdGVtIGxp YnJhcmllcyBuZWVkZWQganVzdCBmb3IgR05BVC4KKyBTWVNMSUJTID0gQEdOQVRfTElCRVhDQAor QEAgLTIwNTgsNiArMjA1OCwxNSBAQCAkKG91dF9vYmplY3RfZmlsZSk6ICQob3V0X2ZpbGUpCisg JChjb21tb25fb3V0X29iamVjdF9maWxlKTogJChjb21tb25fb3V0X2ZpbGUpCisgCSQoQ09NUElM RSkgJDwKKyAJJChQT1NUQ09NUElMRSkKKysKKytncmFwaGl0ZSUubyA6IFwKKysgIEFMTF9DRkxB R1MgOj0gLU8gJChmaWx0ZXItb3V0IC1ma2VlcC1pbmxpbmUtZnVuY3Rpb25zLCAkKEFMTF9DRkxB R1MpKQorK2dyYXBoaXRlLm8gOiBcCisrICBBTExfQ0ZMQUdTIDo9IC1PICQoZmlsdGVyLW91dCAt ZmtlZXAtaW5saW5lLWZ1bmN0aW9ucywgJChBTExfQ0ZMQUdTKSkKKytncmFwaGl0ZSUubyA6IFwK KysgIEFMTF9DWFhGTEFHUyA6PSAtTyAkKGZpbHRlci1vdXQgLWZrZWVwLWlubGluZS1mdW5jdGlv bnMsICQoQUxMX0NYWEZMQUdTKSkKKytncmFwaGl0ZS5vIDogXAorKyAgQUxMX0NYWEZMQUdTIDo9 IC1PICQoZmlsdGVyLW91dCAtZmtlZXAtaW5saW5lLWZ1bmN0aW9ucywgJChBTExfQ1hYRkxBR1Mp KQorICMMCisgIyBHZW5lcmF0ZSBoZWFkZXIgYW5kIHNvdXJjZSBmaWxlcyBmcm9tIHRoZSBtYWNo aW5lIGRlc2NyaXB0aW9uLAorICMgYW5kIGNvbXBpbGUgdGhlbS4KKy0tLSBnY2MvZ3JhcGhpdGUu aC5qagkyMDE2LTAxLTI3IDEyOjQ0OjA2LjAwMDAwMDAwMCArMDEwMAorKysrIGdjYy9ncmFwaGl0 ZS5oCTIwMTYtMDEtMjcgMTM6MjY6MzguMzA5ODc2ODU2ICswMTAwCitAQCAtMzYsNiArMzYsNyBA QCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLgorICNpbmNsdWRlIDxpc2wv aWxwLmg+CisgI2luY2x1ZGUgPGlzbC9zY2hlZHVsZS5oPgorICNpbmNsdWRlIDxpc2wvYXN0X2J1 aWxkLmg+CisrI2luY2x1ZGUgPGRsZmNuLmg+CisgCisgI2lmZGVmIEhBVkVfSVNMX09QVElPTlNf U0VUX1NDSEVEVUxFX1NFUklBTElaRV9TQ0NTCisgLyogaXNsIDAuMTUgb3IgbGF0ZXIuICAqLwor QEAgLTQ3LDYgKzQ4LDQ5NCBAQCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkcz LgorICMgZGVmaW5lIGlzbF9zdGF0X29rIDAKKyAjZW5kaWYKKyAKKysjaWZkZWYgSEFWRV9JU0xf T1BUSU9OU19TRVRfU0NIRURVTEVfU0VSSUFMSVpFX1NDQ1MKKysjZGVmaW5lIERZTlNZTV9TQ0hF RFVMRV9GVVNFIERZTlNZTSAoaXNsX29wdGlvbnNfc2V0X3NjaGVkdWxlX3NlcmlhbGl6ZV9zY2Nz KQorKyNkZWZpbmUgRFlOU1lNX1NFVF9ZQU1MX1NUWUxFIERZTlNZTSAoaXNsX3ByaW50ZXJfc2V0 X3lhbWxfc3R5bGUpOworKyNlbHNlCisrI2RlZmluZSBEWU5TWU1fU0NIRURVTEVfRlVTRSBEWU5T WU0gKGlzbF9vcHRpb25zX3NldF9zY2hlZHVsZV9mdXNlKQorKyNkZWZpbmUgRFlOU1lNX1NFVF9Z QU1MX1NUWUxFCisrI2VuZGlmCisrCisrI2RlZmluZSBEWU5TWU1TIFwKKysgIERZTlNZTSAoaXNs X2FmZl9hZGRfY29lZmZpY2llbnRfc2kpOyBcCisrICBEWU5TWU0gKGlzbF9hZmZfZnJlZSk7IFwK KysgIERZTlNZTSAoaXNsX2FmZl9nZXRfc3BhY2UpOyBcCisrICBEWU5TWU0gKGlzbF9hZmZfc2V0 X2NvZWZmaWNpZW50X3NpKTsgXAorKyAgRFlOU1lNIChpc2xfYWZmX3NldF9jb25zdGFudF9zaSk7 IFwKKysgIERZTlNZTSAoaXNsX2FmZl96ZXJvX29uX2RvbWFpbik7IFwKKysgIERZTlNZTSAoaXNs X2JhbmRfZnJlZSk7IFwKKysgIERZTlNZTSAoaXNsX2JhbmRfZ2V0X2NoaWxkcmVuKTsgXAorKyAg RFlOU1lNIChpc2xfYmFuZF9nZXRfcGFydGlhbF9zY2hlZHVsZSk7IFwKKysgIERZTlNZTSAoaXNs X2JhbmRfaGFzX2NoaWxkcmVuKTsgXAorKyAgRFlOU1lNIChpc2xfYmFuZF9saXN0X2ZyZWUpOyBc CisrICBEWU5TWU0gKGlzbF9iYW5kX2xpc3RfZ2V0X2JhbmQpOyBcCisrICBEWU5TWU0gKGlzbF9i YW5kX2xpc3RfZ2V0X2N0eCk7IFwKKysgIERZTlNZTSAoaXNsX2JhbmRfbGlzdF9uX2JhbmQpOyBc CisrICBEWU5TWU0gKGlzbF9iYW5kX25fbWVtYmVyKTsgXAorKyAgRFlOU1lNIChpc2xfYmFzaWNf bWFwX2FkZF9jb25zdHJhaW50KTsgXAorKyAgRFlOU1lNIChpc2xfYmFzaWNfbWFwX3Byb2plY3Rf b3V0KTsgXAorKyAgRFlOU1lNIChpc2xfYmFzaWNfbWFwX3VuaXZlcnNlKTsgXAorKyAgRFlOU1lN IChpc2xfY29uc3RyYWludF9zZXRfY29lZmZpY2llbnRfc2kpOyBcCisrICBEWU5TWU0gKGlzbF9j b25zdHJhaW50X3NldF9jb25zdGFudF9zaSk7IFwKKysgIERZTlNZTSAoaXNsX2N0eF9hbGxvYyk7 IFwKKysgIERZTlNZTSAoaXNsX2N0eF9mcmVlKTsgXAorKyAgRFlOU1lNIChpc2xfZXF1YWxpdHlf YWxsb2MpOyBcCisrICBEWU5TWU0gKGlzbF9pZF9hbGxvYyk7IFwKKysgIERZTlNZTSAoaXNsX2lk X2NvcHkpOyBcCisrICBEWU5TWU0gKGlzbF9pZF9mcmVlKTsgXAorKyAgRFlOU1lNIChpc2xfaW5l cXVhbGl0eV9hbGxvYyk7IFwKKysgIERZTlNZTSAoaXNsX2xvY2FsX3NwYWNlX2NvcHkpOyBcCisr ICBEWU5TWU0gKGlzbF9sb2NhbF9zcGFjZV9mcmVlKTsgXAorKyAgRFlOU1lNIChpc2xfbG9jYWxf c3BhY2VfZnJvbV9zcGFjZSk7IFwKKysgIERZTlNZTSAoaXNsX2xvY2FsX3NwYWNlX3JhbmdlKTsg XAorKyAgRFlOU1lNIChpc2xfbWFwX2FkZF9jb25zdHJhaW50KTsgXAorKyAgRFlOU1lNIChpc2xf bWFwX2FkZF9kaW1zKTsgXAorKyAgRFlOU1lNIChpc2xfbWFwX2FsaWduX3BhcmFtcyk7IFwKKysg IERZTlNZTSAoaXNsX21hcF9hcHBseV9yYW5nZSk7IFwKKysgIERZTlNZTSAoaXNsX21hcF9jb3B5 KTsgXAorKyAgRFlOU1lNIChpc2xfbWFwX2RpbSk7IFwKKysgIERZTlNZTSAoaXNsX21hcF9kdW1w KTsgXAorKyAgRFlOU1lNIChpc2xfbWFwX2VxdWF0ZSk7IFwKKysgIERZTlNZTSAoaXNsX21hcF9m aXhfc2kpOyBcCisrICBEWU5TWU0gKGlzbF9tYXBfZmxhdF9wcm9kdWN0KTsgXAorKyAgRFlOU1lN IChpc2xfbWFwX2ZsYXRfcmFuZ2VfcHJvZHVjdCk7IFwKKysgIERZTlNZTSAoaXNsX21hcF9mcmVl KTsgXAorKyAgRFlOU1lNIChpc2xfbWFwX2Zyb21fYmFzaWNfbWFwKTsgXAorKyAgRFlOU1lNIChp c2xfbWFwX2Zyb21fcHdfYWZmKTsgXAorKyAgRFlOU1lNIChpc2xfbWFwX2Zyb21fdW5pb25fbWFw KTsgXAorKyAgRFlOU1lNIChpc2xfbWFwX2dldF9jdHgpOyBcCisrICBEWU5TWU0gKGlzbF9tYXBf Z2V0X3NwYWNlKTsgXAorKyAgRFlOU1lNIChpc2xfbWFwX2dldF90dXBsZV9pZCk7IFwKKysgIERZ TlNZTSAoaXNsX21hcF9pbnNlcnRfZGltcyk7IFwKKysgIERZTlNZTSAoaXNsX21hcF9pbnRlcnNl Y3QpOyBcCisrICBEWU5TWU0gKGlzbF9tYXBfaW50ZXJzZWN0X2RvbWFpbik7IFwKKysgIERZTlNZ TSAoaXNsX21hcF9pbnRlcnNlY3RfcmFuZ2UpOyBcCisrICBEWU5TWU0gKGlzbF9tYXBfaXNfZW1w dHkpOyBcCisrICBEWU5TWU0gKGlzbF9tYXBfbGV4X2dlKTsgXAorKyAgRFlOU1lNIChpc2xfbWFw X2xleF9sZSk7IFwKKysgIERZTlNZTSAoaXNsX21hcF9uX291dCk7IFwKKysgIERZTlNZTSAoaXNs X21hcF9yYW5nZSk7IFwKKysgIERZTlNZTSAoaXNsX21hcF9zZXRfdHVwbGVfaWQpOyBcCisrICBE WU5TWU0gKGlzbF9tYXBfdW5pdmVyc2UpOyBcCisrICBEWU5TWU0gKGlzbF9vcHRpb25zX3NldF9v bl9lcnJvcik7IFwKKysgIERZTlNZTV9TQ0hFRFVMRV9GVVNFOyBcCisrICBEWU5TWU1fU0VUX1lB TUxfU1RZTEUgXAorKyAgRFlOU1lNIChpc2xfb3B0aW9uc19zZXRfc2NoZWR1bGVfbWF4X2NvbnN0 YW50X3Rlcm0pOyBcCisrICBEWU5TWU0gKGlzbF9vcHRpb25zX3NldF9zY2hlZHVsZV9tYXhpbWl6 ZV9iYW5kX2RlcHRoKTsgXAorKyAgRFlOU1lNIChpc2xfcHJpbnRlcl9mcmVlKTsgXAorKyAgRFlO U1lNIChpc2xfcHJpbnRlcl9wcmludF9hZmYpOyBcCisrICBEWU5TWU0gKGlzbF9wcmludGVyX3By aW50X2NvbnN0cmFpbnQpOyBcCisrICBEWU5TWU0gKGlzbF9wcmludGVyX3ByaW50X21hcCk7IFwK KysgIERZTlNZTSAoaXNsX3ByaW50ZXJfcHJpbnRfc2V0KTsgXAorKyAgRFlOU1lNIChpc2xfcHJp bnRlcl90b19maWxlKTsgXAorKyAgRFlOU1lNIChpc2xfcHdfYWZmX2FkZCk7IFwKKysgIERZTlNZ TSAoaXNsX3B3X2FmZl9hbGxvYyk7IFwKKysgIERZTlNZTSAoaXNsX3B3X2FmZl9jb3B5KTsgXAor KyAgRFlOU1lNIChpc2xfcHdfYWZmX2VxX3NldCk7IFwKKysgIERZTlNZTSAoaXNsX3B3X2FmZl9m cmVlKTsgXAorKyAgRFlOU1lNIChpc2xfcHdfYWZmX2Zyb21fYWZmKTsgXAorKyAgRFlOU1lNIChp c2xfcHdfYWZmX2dlX3NldCk7IFwKKysgIERZTlNZTSAoaXNsX3B3X2FmZl9ndF9zZXQpOyBcCisr ICBEWU5TWU0gKGlzbF9wd19hZmZfaXNfY3N0KTsgXAorKyAgRFlOU1lNIChpc2xfcHdfYWZmX2xl X3NldCk7IFwKKysgIERZTlNZTSAoaXNsX3B3X2FmZl9sdF9zZXQpOyBcCisrICBEWU5TWU0gKGlz bF9wd19hZmZfbXVsKTsgXAorKyAgRFlOU1lNIChpc2xfcHdfYWZmX25lX3NldCk7IFwKKysgIERZ TlNZTSAoaXNsX3B3X2FmZl9ub25uZWdfc2V0KTsgXAorKyAgRFlOU1lNIChpc2xfcHdfYWZmX3Nl dF90dXBsZV9pZCk7IFwKKysgIERZTlNZTSAoaXNsX3B3X2FmZl9zdWIpOyBcCisrICBEWU5TWU0g KGlzbF9wd19hZmZfemVyb19zZXQpOyBcCisrICBEWU5TWU0gKGlzbF9zY2hlZHVsZV9mcmVlKTsg XAorKyAgRFlOU1lNIChpc2xfc2NoZWR1bGVfZ2V0X2JhbmRfZm9yZXN0KTsgXAorKyAgRFlOU1lN IChpc2xfc2V0X2FkZF9jb25zdHJhaW50KTsgXAorKyAgRFlOU1lNIChpc2xfc2V0X2FkZF9kaW1z KTsgXAorKyAgRFlOU1lNIChpc2xfc2V0X2FwcGx5KTsgXAorKyAgRFlOU1lNIChpc2xfc2V0X2Nv YWxlc2NlKTsgXAorKyAgRFlOU1lNIChpc2xfc2V0X2NvcHkpOyBcCisrICBEWU5TWU0gKGlzbF9z ZXRfZGltKTsgXAorKyAgRFlOU1lNIChpc2xfc2V0X2ZpeF9zaSk7IFwKKysgIERZTlNZTSAoaXNs X3NldF9mcmVlKTsgXAorKyAgRFlOU1lNIChpc2xfc2V0X2dldF9zcGFjZSk7IFwKKysgIERZTlNZ TSAoaXNsX3NldF9nZXRfdHVwbGVfaWQpOyBcCisrICBEWU5TWU0gKGlzbF9zZXRfaW50ZXJzZWN0 KTsgXAorKyAgRFlOU1lNIChpc2xfc2V0X2lzX2VtcHR5KTsgXAorKyAgRFlOU1lNIChpc2xfc2V0 X25fZGltKTsgXAorKyAgRFlOU1lNIChpc2xfc2V0X25hdF91bml2ZXJzZSk7IFwKKysgIERZTlNZ TSAoaXNsX3NldF9wcm9qZWN0X291dCk7IFwKKysgIERZTlNZTSAoaXNsX3NldF9zZXRfdHVwbGVf aWQpOyBcCisrICBEWU5TWU0gKGlzbF9zZXRfdW5pdmVyc2UpOyBcCisrICBEWU5TWU0gKGlzbF9z cGFjZV9hZGRfZGltcyk7IFwKKysgIERZTlNZTSAoaXNsX3NwYWNlX2FsbG9jKTsgXAorKyAgRFlO U1lNIChpc2xfc3BhY2VfY29weSk7IFwKKysgIERZTlNZTSAoaXNsX3NwYWNlX2RpbSk7IFwKKysg IERZTlNZTSAoaXNsX3NwYWNlX2RvbWFpbik7IFwKKysgIERZTlNZTSAoaXNsX3NwYWNlX2ZpbmRf ZGltX2J5X2lkKTsgXAorKyAgRFlOU1lNIChpc2xfc3BhY2VfZnJlZSk7IFwKKysgIERZTlNZTSAo aXNsX3NwYWNlX2Zyb21fZG9tYWluKTsgXAorKyAgRFlOU1lNIChpc2xfc3BhY2VfZ2V0X3R1cGxl X2lkKTsgXAorKyAgRFlOU1lNIChpc2xfc3BhY2VfcGFyYW1zX2FsbG9jKTsgXAorKyAgRFlOU1lN IChpc2xfc3BhY2VfcmFuZ2UpOyBcCisrICBEWU5TWU0gKGlzbF9zcGFjZV9zZXRfYWxsb2MpOyBc CisrICBEWU5TWU0gKGlzbF9zcGFjZV9zZXRfZGltX2lkKTsgXAorKyAgRFlOU1lNIChpc2xfc3Bh Y2Vfc2V0X3R1cGxlX2lkKTsgXAorKyAgRFlOU1lNIChpc2xfdW5pb25fbWFwX2FkZF9tYXApOyBc CisrICBEWU5TWU0gKGlzbF91bmlvbl9tYXBfYWxpZ25fcGFyYW1zKTsgXAorKyAgRFlOU1lNIChp c2xfdW5pb25fbWFwX2FwcGx5X2RvbWFpbik7IFwKKysgIERZTlNZTSAoaXNsX3VuaW9uX21hcF9h cHBseV9yYW5nZSk7IFwKKysgIERZTlNZTSAoaXNsX3VuaW9uX21hcF9jb21wdXRlX2Zsb3cpOyBc CisrICBEWU5TWU0gKGlzbF91bmlvbl9tYXBfY29weSk7IFwKKysgIERZTlNZTSAoaXNsX3VuaW9u X21hcF9lbXB0eSk7IFwKKysgIERZTlNZTSAoaXNsX3VuaW9uX21hcF9mbGF0X3JhbmdlX3Byb2R1 Y3QpOyBcCisrICBEWU5TWU0gKGlzbF91bmlvbl9tYXBfZm9yZWFjaF9tYXApOyBcCisrICBEWU5T WU0gKGlzbF91bmlvbl9tYXBfZnJlZSk7IFwKKysgIERZTlNZTSAoaXNsX3VuaW9uX21hcF9mcm9t X21hcCk7IFwKKysgIERZTlNZTSAoaXNsX3VuaW9uX21hcF9nZXRfY3R4KTsgXAorKyAgRFlOU1lN IChpc2xfdW5pb25fbWFwX2dldF9zcGFjZSk7IFwKKysgIERZTlNZTSAoaXNsX3VuaW9uX21hcF9n aXN0X2RvbWFpbik7IFwKKysgIERZTlNZTSAoaXNsX3VuaW9uX21hcF9naXN0X3JhbmdlKTsgXAor KyAgRFlOU1lNIChpc2xfdW5pb25fbWFwX2ludGVyc2VjdF9kb21haW4pOyBcCisrICBEWU5TWU0g KGlzbF91bmlvbl9tYXBfaXNfZW1wdHkpOyBcCisrICBEWU5TWU0gKGlzbF91bmlvbl9tYXBfc3Vi dHJhY3QpOyBcCisrICBEWU5TWU0gKGlzbF91bmlvbl9tYXBfdW5pb24pOyBcCisrICBEWU5TWU0g KGlzbF91bmlvbl9zZXRfYWRkX3NldCk7IFwKKysgIERZTlNZTSAoaXNsX3VuaW9uX3NldF9jb21w dXRlX3NjaGVkdWxlKTsgXAorKyAgRFlOU1lNIChpc2xfdW5pb25fc2V0X2NvcHkpOyBcCisrICBE WU5TWU0gKGlzbF91bmlvbl9zZXRfZW1wdHkpOyBcCisrICBEWU5TWU0gKGlzbF91bmlvbl9zZXRf ZnJvbV9zZXQpOyBcCisrICBEWU5TWU0gKGlzbF9hZmZfYWRkX2NvbnN0YW50X3ZhbCk7IFwKKysg IERZTlNZTSAoaXNsX2FmZl9nZXRfY29lZmZpY2llbnRfdmFsKTsgXAorKyAgRFlOU1lNIChpc2xf YWZmX2dldF9jdHgpOyBcCisrICBEWU5TWU0gKGlzbF9hZmZfbW9kX3ZhbCk7IFwKKysgIERZTlNZ TSAoaXNsX2FzdF9idWlsZF9hc3RfZnJvbV9zY2hlZHVsZSk7IFwKKysgIERZTlNZTSAoaXNsX2Fz dF9idWlsZF9mcmVlKTsgXAorKyAgRFlOU1lNIChpc2xfYXN0X2J1aWxkX2Zyb21fY29udGV4dCk7 IFwKKysgIERZTlNZTSAoaXNsX2FzdF9idWlsZF9nZXRfY3R4KTsgXAorKyAgRFlOU1lNIChpc2xf YXN0X2J1aWxkX2dldF9zY2hlZHVsZSk7IFwKKysgIERZTlNZTSAoaXNsX2FzdF9idWlsZF9nZXRf c2NoZWR1bGVfc3BhY2UpOyBcCisrICBEWU5TWU0gKGlzbF9hc3RfYnVpbGRfc2V0X2JlZm9yZV9l YWNoX2Zvcik7IFwKKysgIERZTlNZTSAoaXNsX2FzdF9idWlsZF9zZXRfb3B0aW9ucyk7IFwKKysg IERZTlNZTSAoaXNsX2FzdF9leHByX2ZyZWUpOyBcCisrICBEWU5TWU0gKGlzbF9hc3RfZXhwcl9m cm9tX3ZhbCk7IFwKKysgIERZTlNZTSAoaXNsX2FzdF9leHByX2dldF9jdHgpOyBcCisrICBEWU5T WU0gKGlzbF9hc3RfZXhwcl9nZXRfaWQpOyBcCisrICBEWU5TWU0gKGlzbF9hc3RfZXhwcl9nZXRf b3BfYXJnKTsgXAorKyAgRFlOU1lNIChpc2xfYXN0X2V4cHJfZ2V0X29wX25fYXJnKTsgXAorKyAg RFlOU1lNIChpc2xfYXN0X2V4cHJfZ2V0X29wX3R5cGUpOyBcCisrICBEWU5TWU0gKGlzbF9hc3Rf ZXhwcl9nZXRfdHlwZSk7IFwKKysgIERZTlNZTSAoaXNsX2FzdF9leHByX2dldF92YWwpOyBcCisr ICBEWU5TWU0gKGlzbF9hc3RfZXhwcl9zdWIpOyBcCisrICBEWU5TWU0gKGlzbF9hc3Rfbm9kZV9i bG9ja19nZXRfY2hpbGRyZW4pOyBcCisrICBEWU5TWU0gKGlzbF9hc3Rfbm9kZV9mb3JfZ2V0X2Jv ZHkpOyBcCisrICBEWU5TWU0gKGlzbF9hc3Rfbm9kZV9mb3JfZ2V0X2NvbmQpOyBcCisrICBEWU5T WU0gKGlzbF9hc3Rfbm9kZV9mb3JfZ2V0X2luYyk7IFwKKysgIERZTlNZTSAoaXNsX2FzdF9ub2Rl X2Zvcl9nZXRfaW5pdCk7IFwKKysgIERZTlNZTSAoaXNsX2FzdF9ub2RlX2Zvcl9nZXRfaXRlcmF0 b3IpOyBcCisrICBEWU5TWU0gKGlzbF9hc3Rfbm9kZV9mcmVlKTsgXAorKyAgRFlOU1lNIChpc2xf YXN0X25vZGVfZ2V0X2Fubm90YXRpb24pOyBcCisrICBEWU5TWU0gKGlzbF9hc3Rfbm9kZV9nZXRf dHlwZSk7IFwKKysgIERZTlNZTSAoaXNsX2FzdF9ub2RlX2lmX2dldF9jb25kKTsgXAorKyAgRFlO U1lNIChpc2xfYXN0X25vZGVfaWZfZ2V0X2Vsc2UpOyBcCisrICBEWU5TWU0gKGlzbF9hc3Rfbm9k ZV9pZl9nZXRfdGhlbik7IFwKKysgIERZTlNZTSAoaXNsX2FzdF9ub2RlX2xpc3RfZnJlZSk7IFwK KysgIERZTlNZTSAoaXNsX2FzdF9ub2RlX2xpc3RfZ2V0X2FzdF9ub2RlKTsgXAorKyAgRFlOU1lN IChpc2xfYXN0X25vZGVfbGlzdF9uX2FzdF9ub2RlKTsgXAorKyAgRFlOU1lNIChpc2xfYXN0X25v ZGVfdXNlcl9nZXRfZXhwcik7IFwKKysgIERZTlNZTSAoaXNsX2NvbnN0cmFpbnRfc2V0X2NvZWZm aWNpZW50X3ZhbCk7IFwKKysgIERZTlNZTSAoaXNsX2NvbnN0cmFpbnRfc2V0X2NvbnN0YW50X3Zh bCk7IFwKKysgIERZTlNZTSAoaXNsX2lkX2dldF91c2VyKTsgXAorKyAgRFlOU1lNIChpc2xfbG9j YWxfc3BhY2VfZ2V0X2N0eCk7IFwKKysgIERZTlNZTSAoaXNsX21hcF9maXhfdmFsKTsgXAorKyAg RFlOU1lNIChpc2xfb3B0aW9uc19zZXRfYXN0X2J1aWxkX2F0b21pY191cHBlcl9ib3VuZCk7IFwK KysgIERZTlNZTSAoaXNsX3ByaW50ZXJfcHJpbnRfYXN0X25vZGUpOyBcCisrICBEWU5TWU0gKGlz bF9wcmludGVyX3ByaW50X3N0cik7IFwKKysgIERZTlNZTSAoaXNsX3ByaW50ZXJfc2V0X291dHB1 dF9mb3JtYXQpOyBcCisrICBEWU5TWU0gKGlzbF9wd19hZmZfbW9kX3ZhbCk7IFwKKysgIERZTlNZ TSAoaXNsX3NjaGVkdWxlX2NvbnN0cmFpbnRzX2NvbXB1dGVfc2NoZWR1bGUpOyBcCisrICBEWU5T WU0gKGlzbF9zY2hlZHVsZV9jb25zdHJhaW50c19vbl9kb21haW4pOyBcCisrICBEWU5TWU0gKGlz bF9zY2hlZHVsZV9jb25zdHJhaW50c19zZXRfY29pbmNpZGVuY2UpOyBcCisrICBEWU5TWU0gKGlz bF9zY2hlZHVsZV9jb25zdHJhaW50c19zZXRfcHJveGltaXR5KTsgXAorKyAgRFlOU1lNIChpc2xf c2NoZWR1bGVfY29uc3RyYWludHNfc2V0X3ZhbGlkaXR5KTsgXAorKyAgRFlOU1lNIChpc2xfc2V0 X2dldF9kaW1faWQpOyBcCisrICBEWU5TWU0gKGlzbF9zZXRfbWF4X3ZhbCk7IFwKKysgIERZTlNZ TSAoaXNsX3NldF9taW5fdmFsKTsgXAorKyAgRFlOU1lNIChpc2xfc2V0X3BhcmFtcyk7IFwKKysg IERZTlNZTSAoaXNsX3NwYWNlX2FsaWduX3BhcmFtcyk7IFwKKysgIERZTlNZTSAoaXNsX3NwYWNl X21hcF9mcm9tX2RvbWFpbl9hbmRfcmFuZ2UpOyBcCisrICBEWU5TWU0gKGlzbF9zcGFjZV9zZXRf dHVwbGVfbmFtZSk7IFwKKysgIERZTlNZTSAoaXNsX3NwYWNlX3dyYXApOyBcCisrICBEWU5TWU0g KGlzbF91bmlvbl9tYXBfZnJvbV9kb21haW5fYW5kX3JhbmdlKTsgXAorKyAgRFlOU1lNIChpc2xf dW5pb25fbWFwX3JhbmdlKTsgXAorKyAgRFlOU1lNIChpc2xfdW5pb25fc2V0X3VuaW9uKTsgXAor KyAgRFlOU1lNIChpc2xfdW5pb25fc2V0X3VuaXZlcnNlKTsgXAorKyAgRFlOU1lNIChpc2xfdmFs XzJleHApOyBcCisrICBEWU5TWU0gKGlzbF92YWxfYWRkX3VpKTsgXAorKyAgRFlOU1lNIChpc2xf dmFsX2NvcHkpOyBcCisrICBEWU5TWU0gKGlzbF92YWxfZnJlZSk7IFwKKysgIERZTlNZTSAoaXNs X3ZhbF9nZXRfbnVtX2dtcCk7IFwKKysgIERZTlNZTSAoaXNsX3ZhbF9pbnRfZnJvbV9nbXApOyBc CisrICBEWU5TWU0gKGlzbF92YWxfaW50X2Zyb21fc2kpOyBcCisrICBEWU5TWU0gKGlzbF92YWxf aW50X2Zyb21fdWkpOyBcCisrICBEWU5TWU0gKGlzbF92YWxfbXVsKTsgXAorKyAgRFlOU1lNIChp c2xfdmFsX25lZyk7IFwKKysgIERZTlNZTSAoaXNsX3ZhbF9zdWIpOyBcCisrICBEWU5TWU0gKGlz bF9wcmludGVyX3ByaW50X3VuaW9uX21hcCk7IFwKKysgIERZTlNZTSAoaXNsX3B3X2FmZl9nZXRf Y3R4KTsgXAorKyAgRFlOU1lNIChpc2xfdmFsX2lzX2ludCk7IFwKKysgIERZTlNZTSAoaXNsX2N0 eF9nZXRfbWF4X29wZXJhdGlvbnMpOyBcCisrICBEWU5TWU0gKGlzbF9jdHhfc2V0X21heF9vcGVy YXRpb25zKTsgXAorKyAgRFlOU1lNIChpc2xfY3R4X2xhc3RfZXJyb3IpOyBcCisrICBEWU5TWU0g KGlzbF9jdHhfcmVzZXRfb3BlcmF0aW9ucyk7IFwKKysgIERZTlNZTSAoaXNsX21hcF9jb2FsZXNj ZSk7IFwKKysgIERZTlNZTSAoaXNsX3ByaW50ZXJfcHJpbnRfc2NoZWR1bGUpOyBcCisrICBEWU5T WU0gKGlzbF9zZXRfc2V0X2RpbV9pZCk7IFwKKysgIERZTlNZTSAoaXNsX3VuaW9uX21hcF9jb2Fs ZXNjZSk7CisrCisrZXh0ZXJuIHN0cnVjdCBpc2xfcG9pbnRlcnNfc19fCisreworKyAgYm9vbCBp bml0ZWQ7CisrICB2b2lkICpoOworKyNkZWZpbmUgRFlOU1lNKHgpIF9fdHlwZW9mICh4KSAqcF8j I3gKKysgIERZTlNZTVMKKysjdW5kZWYgRFlOU1lNCisrfSBpc2xfcG9pbnRlcnNfXzsKKysKKysj ZGVmaW5lIGlzbF9hZmZfYWRkX2NvZWZmaWNpZW50X3NpICgqaXNsX3BvaW50ZXJzX18ucF9pc2xf YWZmX2FkZF9jb2VmZmljaWVudF9zaSkKKysjZGVmaW5lIGlzbF9hZmZfZnJlZSAoKmlzbF9wb2lu dGVyc19fLnBfaXNsX2FmZl9mcmVlKQorKyNkZWZpbmUgaXNsX2FmZl9nZXRfc3BhY2UgKCppc2xf cG9pbnRlcnNfXy5wX2lzbF9hZmZfZ2V0X3NwYWNlKQorKyNkZWZpbmUgaXNsX2FmZl9zZXRfY29l ZmZpY2llbnRfc2kgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hZmZfc2V0X2NvZWZmaWNpZW50X3Np KQorKyNkZWZpbmUgaXNsX2FmZl9zZXRfY29uc3RhbnRfc2kgKCppc2xfcG9pbnRlcnNfXy5wX2lz bF9hZmZfc2V0X2NvbnN0YW50X3NpKQorKyNkZWZpbmUgaXNsX2FmZl96ZXJvX29uX2RvbWFpbiAo KmlzbF9wb2ludGVyc19fLnBfaXNsX2FmZl96ZXJvX29uX2RvbWFpbikKKysjZGVmaW5lIGlzbF9i YW5kX2ZyZWUgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9iYW5kX2ZyZWUpCisrI2RlZmluZSBpc2xf YmFuZF9nZXRfY2hpbGRyZW4gKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9iYW5kX2dldF9jaGlsZHJl bikKKysjZGVmaW5lIGlzbF9iYW5kX2dldF9wYXJ0aWFsX3NjaGVkdWxlICgqaXNsX3BvaW50ZXJz X18ucF9pc2xfYmFuZF9nZXRfcGFydGlhbF9zY2hlZHVsZSkKKysjZGVmaW5lIGlzbF9iYW5kX2hh c19jaGlsZHJlbiAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2JhbmRfaGFzX2NoaWxkcmVuKQorKyNk ZWZpbmUgaXNsX2JhbmRfbGlzdF9mcmVlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfYmFuZF9saXN0 X2ZyZWUpCisrI2RlZmluZSBpc2xfYmFuZF9saXN0X2dldF9iYW5kICgqaXNsX3BvaW50ZXJzX18u cF9pc2xfYmFuZF9saXN0X2dldF9iYW5kKQorKyNkZWZpbmUgaXNsX2JhbmRfbGlzdF9nZXRfY3R4 ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfYmFuZF9saXN0X2dldF9jdHgpCisrI2RlZmluZSBpc2xf YmFuZF9saXN0X25fYmFuZCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2JhbmRfbGlzdF9uX2JhbmQp CisrI2RlZmluZSBpc2xfYmFuZF9uX21lbWJlciAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2JhbmRf bl9tZW1iZXIpCisrI2RlZmluZSBpc2xfYmFzaWNfbWFwX2FkZF9jb25zdHJhaW50ICgqaXNsX3Bv aW50ZXJzX18ucF9pc2xfYmFzaWNfbWFwX2FkZF9jb25zdHJhaW50KQorKyNkZWZpbmUgaXNsX2Jh c2ljX21hcF9wcm9qZWN0X291dCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2Jhc2ljX21hcF9wcm9q ZWN0X291dCkKKysjZGVmaW5lIGlzbF9iYXNpY19tYXBfdW5pdmVyc2UgKCppc2xfcG9pbnRlcnNf Xy5wX2lzbF9iYXNpY19tYXBfdW5pdmVyc2UpCisrI2RlZmluZSBpc2xfY29uc3RyYWludF9zZXRf Y29lZmZpY2llbnRfc2kgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9jb25zdHJhaW50X3NldF9jb2Vm ZmljaWVudF9zaSkKKysjZGVmaW5lIGlzbF9jb25zdHJhaW50X3NldF9jb25zdGFudF9zaSAoKmlz bF9wb2ludGVyc19fLnBfaXNsX2NvbnN0cmFpbnRfc2V0X2NvbnN0YW50X3NpKQorKyNkZWZpbmUg aXNsX2N0eF9hbGxvYyAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2N0eF9hbGxvYykKKysjZGVmaW5l IGlzbF9jdHhfZnJlZSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2N0eF9mcmVlKQorKyNkZWZpbmUg aXNsX2VxdWFsaXR5X2FsbG9jICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfZXF1YWxpdHlfYWxsb2Mp CisrI2RlZmluZSBpc2xfaWRfYWxsb2MgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9pZF9hbGxvYykK KysjZGVmaW5lIGlzbF9pZF9jb3B5ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfaWRfY29weSkKKysj ZGVmaW5lIGlzbF9pZF9mcmVlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfaWRfZnJlZSkKKysjZGVm aW5lIGlzbF9pbmVxdWFsaXR5X2FsbG9jICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfaW5lcXVhbGl0 eV9hbGxvYykKKysjZGVmaW5lIGlzbF9sb2NhbF9zcGFjZV9jb3B5ICgqaXNsX3BvaW50ZXJzX18u cF9pc2xfbG9jYWxfc3BhY2VfY29weSkKKysjZGVmaW5lIGlzbF9sb2NhbF9zcGFjZV9mcmVlICgq aXNsX3BvaW50ZXJzX18ucF9pc2xfbG9jYWxfc3BhY2VfZnJlZSkKKysjZGVmaW5lIGlzbF9sb2Nh bF9zcGFjZV9mcm9tX3NwYWNlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfbG9jYWxfc3BhY2VfZnJv bV9zcGFjZSkKKysjZGVmaW5lIGlzbF9sb2NhbF9zcGFjZV9yYW5nZSAoKmlzbF9wb2ludGVyc19f LnBfaXNsX2xvY2FsX3NwYWNlX3JhbmdlKQorKyNkZWZpbmUgaXNsX21hcF9hZGRfY29uc3RyYWlu dCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX21hcF9hZGRfY29uc3RyYWludCkKKysjZGVmaW5lIGlz bF9tYXBfYWRkX2RpbXMgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9tYXBfYWRkX2RpbXMpCisrI2Rl ZmluZSBpc2xfbWFwX2FsaWduX3BhcmFtcyAoKmlzbF9wb2ludGVyc19fLnBfaXNsX21hcF9hbGln bl9wYXJhbXMpCisrI2RlZmluZSBpc2xfbWFwX2FwcGx5X3JhbmdlICgqaXNsX3BvaW50ZXJzX18u cF9pc2xfbWFwX2FwcGx5X3JhbmdlKQorKyNkZWZpbmUgaXNsX21hcF9jb3B5ICgqaXNsX3BvaW50 ZXJzX18ucF9pc2xfbWFwX2NvcHkpCisrI2RlZmluZSBpc2xfbWFwX2RpbSAoKmlzbF9wb2ludGVy c19fLnBfaXNsX21hcF9kaW0pCisrI2RlZmluZSBpc2xfbWFwX2R1bXAgKCppc2xfcG9pbnRlcnNf Xy5wX2lzbF9tYXBfZHVtcCkKKysjZGVmaW5lIGlzbF9tYXBfZXF1YXRlICgqaXNsX3BvaW50ZXJz X18ucF9pc2xfbWFwX2VxdWF0ZSkKKysjZGVmaW5lIGlzbF9tYXBfZml4X3NpICgqaXNsX3BvaW50 ZXJzX18ucF9pc2xfbWFwX2ZpeF9zaSkKKysjZGVmaW5lIGlzbF9tYXBfZmxhdF9wcm9kdWN0ICgq aXNsX3BvaW50ZXJzX18ucF9pc2xfbWFwX2ZsYXRfcHJvZHVjdCkKKysjZGVmaW5lIGlzbF9tYXBf ZmxhdF9yYW5nZV9wcm9kdWN0ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfbWFwX2ZsYXRfcmFuZ2Vf cHJvZHVjdCkKKysjZGVmaW5lIGlzbF9tYXBfZnJlZSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX21h cF9mcmVlKQorKyNkZWZpbmUgaXNsX21hcF9mcm9tX2Jhc2ljX21hcCAoKmlzbF9wb2ludGVyc19f LnBfaXNsX21hcF9mcm9tX2Jhc2ljX21hcCkKKysjZGVmaW5lIGlzbF9tYXBfZnJvbV9wd19hZmYg KCppc2xfcG9pbnRlcnNfXy5wX2lzbF9tYXBfZnJvbV9wd19hZmYpCisrI2RlZmluZSBpc2xfbWFw X2Zyb21fdW5pb25fbWFwICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfbWFwX2Zyb21fdW5pb25fbWFw KQorKyNkZWZpbmUgaXNsX21hcF9nZXRfY3R4ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfbWFwX2dl dF9jdHgpCisrI2RlZmluZSBpc2xfbWFwX2dldF9zcGFjZSAoKmlzbF9wb2ludGVyc19fLnBfaXNs X21hcF9nZXRfc3BhY2UpCisrI2RlZmluZSBpc2xfbWFwX2dldF90dXBsZV9pZCAoKmlzbF9wb2lu dGVyc19fLnBfaXNsX21hcF9nZXRfdHVwbGVfaWQpCisrI2RlZmluZSBpc2xfbWFwX2luc2VydF9k aW1zICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfbWFwX2luc2VydF9kaW1zKQorKyNkZWZpbmUgaXNs X21hcF9pbnRlcnNlY3QgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9tYXBfaW50ZXJzZWN0KQorKyNk ZWZpbmUgaXNsX21hcF9pbnRlcnNlY3RfZG9tYWluICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfbWFw X2ludGVyc2VjdF9kb21haW4pCisrI2RlZmluZSBpc2xfbWFwX2ludGVyc2VjdF9yYW5nZSAoKmlz bF9wb2ludGVyc19fLnBfaXNsX21hcF9pbnRlcnNlY3RfcmFuZ2UpCisrI2RlZmluZSBpc2xfbWFw X2lzX2VtcHR5ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfbWFwX2lzX2VtcHR5KQorKyNkZWZpbmUg aXNsX21hcF9sZXhfZ2UgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9tYXBfbGV4X2dlKQorKyNkZWZp bmUgaXNsX21hcF9sZXhfbGUgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9tYXBfbGV4X2xlKQorKyNk ZWZpbmUgaXNsX21hcF9uX291dCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX21hcF9uX291dCkKKysj ZGVmaW5lIGlzbF9tYXBfcmFuZ2UgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9tYXBfcmFuZ2UpCisr I2RlZmluZSBpc2xfbWFwX3NldF90dXBsZV9pZCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX21hcF9z ZXRfdHVwbGVfaWQpCisrI2RlZmluZSBpc2xfbWFwX3VuaXZlcnNlICgqaXNsX3BvaW50ZXJzX18u cF9pc2xfbWFwX3VuaXZlcnNlKQorKyNkZWZpbmUgaXNsX29wdGlvbnNfc2V0X29uX2Vycm9yICgq aXNsX3BvaW50ZXJzX18ucF9pc2xfb3B0aW9uc19zZXRfb25fZXJyb3IpCisrI2lmZGVmIEhBVkVf SVNMX09QVElPTlNfU0VUX1NDSEVEVUxFX1NFUklBTElaRV9TQ0NTCisrI2RlZmluZSBpc2xfb3B0 aW9uc19zZXRfc2NoZWR1bGVfc2VyaWFsaXplX3NjY3MgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9v cHRpb25zX3NldF9zY2hlZHVsZV9zZXJpYWxpemVfc2NjcykKKysjZGVmaW5lIGlzbF9wcmludGVy X3NldF95YW1sX3N0eWxlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfcHJpbnRlcl9zZXRfeWFtbF9z dHlsZSkKKysjZWxzZQorKyNkZWZpbmUgaXNsX29wdGlvbnNfc2V0X3NjaGVkdWxlX2Z1c2UgKCpp c2xfcG9pbnRlcnNfXy5wX2lzbF9vcHRpb25zX3NldF9zY2hlZHVsZV9mdXNlKQorKyNlbmRpZgor KyNkZWZpbmUgaXNsX29wdGlvbnNfc2V0X3NjaGVkdWxlX21heF9jb25zdGFudF90ZXJtICgqaXNs X3BvaW50ZXJzX18ucF9pc2xfb3B0aW9uc19zZXRfc2NoZWR1bGVfbWF4X2NvbnN0YW50X3Rlcm0p CisrI2RlZmluZSBpc2xfb3B0aW9uc19zZXRfc2NoZWR1bGVfbWF4aW1pemVfYmFuZF9kZXB0aCAo KmlzbF9wb2ludGVyc19fLnBfaXNsX29wdGlvbnNfc2V0X3NjaGVkdWxlX21heGltaXplX2JhbmRf ZGVwdGgpCisrI2RlZmluZSBpc2xfcHJpbnRlcl9mcmVlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xf cHJpbnRlcl9mcmVlKQorKyNkZWZpbmUgaXNsX3ByaW50ZXJfcHJpbnRfYWZmICgqaXNsX3BvaW50 ZXJzX18ucF9pc2xfcHJpbnRlcl9wcmludF9hZmYpCisrI2RlZmluZSBpc2xfcHJpbnRlcl9wcmlu dF9jb25zdHJhaW50ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfcHJpbnRlcl9wcmludF9jb25zdHJh aW50KQorKyNkZWZpbmUgaXNsX3ByaW50ZXJfcHJpbnRfbWFwICgqaXNsX3BvaW50ZXJzX18ucF9p c2xfcHJpbnRlcl9wcmludF9tYXApCisrI2RlZmluZSBpc2xfcHJpbnRlcl9wcmludF9zZXQgKCpp c2xfcG9pbnRlcnNfXy5wX2lzbF9wcmludGVyX3ByaW50X3NldCkKKysjZGVmaW5lIGlzbF9wcmlu dGVyX3RvX2ZpbGUgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9wcmludGVyX3RvX2ZpbGUpCisrI2Rl ZmluZSBpc2xfcHdfYWZmX2FkZCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3B3X2FmZl9hZGQpCisr I2RlZmluZSBpc2xfcHdfYWZmX2FsbG9jICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfcHdfYWZmX2Fs bG9jKQorKyNkZWZpbmUgaXNsX3B3X2FmZl9jb3B5ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfcHdf YWZmX2NvcHkpCisrI2RlZmluZSBpc2xfcHdfYWZmX2VxX3NldCAoKmlzbF9wb2ludGVyc19fLnBf aXNsX3B3X2FmZl9lcV9zZXQpCisrI2RlZmluZSBpc2xfcHdfYWZmX2ZyZWUgKCppc2xfcG9pbnRl cnNfXy5wX2lzbF9wd19hZmZfZnJlZSkKKysjZGVmaW5lIGlzbF9wd19hZmZfZnJvbV9hZmYgKCpp c2xfcG9pbnRlcnNfXy5wX2lzbF9wd19hZmZfZnJvbV9hZmYpCisrI2RlZmluZSBpc2xfcHdfYWZm X2dlX3NldCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3B3X2FmZl9nZV9zZXQpCisrI2RlZmluZSBp c2xfcHdfYWZmX2d0X3NldCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3B3X2FmZl9ndF9zZXQpCisr I2RlZmluZSBpc2xfcHdfYWZmX2lzX2NzdCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3B3X2FmZl9p c19jc3QpCisrI2RlZmluZSBpc2xfcHdfYWZmX2xlX3NldCAoKmlzbF9wb2ludGVyc19fLnBfaXNs X3B3X2FmZl9sZV9zZXQpCisrI2RlZmluZSBpc2xfcHdfYWZmX2x0X3NldCAoKmlzbF9wb2ludGVy c19fLnBfaXNsX3B3X2FmZl9sdF9zZXQpCisrI2RlZmluZSBpc2xfcHdfYWZmX211bCAoKmlzbF9w b2ludGVyc19fLnBfaXNsX3B3X2FmZl9tdWwpCisrI2RlZmluZSBpc2xfcHdfYWZmX25lX3NldCAo KmlzbF9wb2ludGVyc19fLnBfaXNsX3B3X2FmZl9uZV9zZXQpCisrI2RlZmluZSBpc2xfcHdfYWZm X25vbm5lZ19zZXQgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9wd19hZmZfbm9ubmVnX3NldCkKKysj ZGVmaW5lIGlzbF9wd19hZmZfc2V0X3R1cGxlX2lkICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfcHdf YWZmX3NldF90dXBsZV9pZCkKKysjZGVmaW5lIGlzbF9wd19hZmZfc3ViICgqaXNsX3BvaW50ZXJz X18ucF9pc2xfcHdfYWZmX3N1YikKKysjZGVmaW5lIGlzbF9wd19hZmZfemVyb19zZXQgKCppc2xf cG9pbnRlcnNfXy5wX2lzbF9wd19hZmZfemVyb19zZXQpCisrI2RlZmluZSBpc2xfc2NoZWR1bGVf ZnJlZSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3NjaGVkdWxlX2ZyZWUpCisrI2RlZmluZSBpc2xf c2NoZWR1bGVfZ2V0X2JhbmRfZm9yZXN0ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfc2NoZWR1bGVf Z2V0X2JhbmRfZm9yZXN0KQorKyNkZWZpbmUgaXNsX3NldF9hZGRfY29uc3RyYWludCAoKmlzbF9w b2ludGVyc19fLnBfaXNsX3NldF9hZGRfY29uc3RyYWludCkKKysjZGVmaW5lIGlzbF9zZXRfYWRk X2RpbXMgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9zZXRfYWRkX2RpbXMpCisrI2RlZmluZSBpc2xf c2V0X2FwcGx5ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfc2V0X2FwcGx5KQorKyNkZWZpbmUgaXNs X3NldF9jb2FsZXNjZSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3NldF9jb2FsZXNjZSkKKysjZGVm aW5lIGlzbF9zZXRfY29weSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3NldF9jb3B5KQorKyNkZWZp bmUgaXNsX3NldF9kaW0gKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9zZXRfZGltKQorKyNkZWZpbmUg aXNsX3NldF9maXhfc2kgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9zZXRfZml4X3NpKQorKyNkZWZp bmUgaXNsX3NldF9mcmVlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfc2V0X2ZyZWUpCisrI2RlZmlu ZSBpc2xfc2V0X2dldF9zcGFjZSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3NldF9nZXRfc3BhY2Up CisrI2RlZmluZSBpc2xfc2V0X2dldF90dXBsZV9pZCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3Nl dF9nZXRfdHVwbGVfaWQpCisrI2RlZmluZSBpc2xfc2V0X2ludGVyc2VjdCAoKmlzbF9wb2ludGVy c19fLnBfaXNsX3NldF9pbnRlcnNlY3QpCisrI2RlZmluZSBpc2xfc2V0X2lzX2VtcHR5ICgqaXNs X3BvaW50ZXJzX18ucF9pc2xfc2V0X2lzX2VtcHR5KQorKyNkZWZpbmUgaXNsX3NldF9uX2RpbSAo KmlzbF9wb2ludGVyc19fLnBfaXNsX3NldF9uX2RpbSkKKysjZGVmaW5lIGlzbF9zZXRfbmF0X3Vu aXZlcnNlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfc2V0X25hdF91bml2ZXJzZSkKKysjZGVmaW5l IGlzbF9zZXRfcHJvamVjdF9vdXQgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9zZXRfcHJvamVjdF9v dXQpCisrI2RlZmluZSBpc2xfc2V0X3NldF90dXBsZV9pZCAoKmlzbF9wb2ludGVyc19fLnBfaXNs X3NldF9zZXRfdHVwbGVfaWQpCisrI2RlZmluZSBpc2xfc2V0X3VuaXZlcnNlICgqaXNsX3BvaW50 ZXJzX18ucF9pc2xfc2V0X3VuaXZlcnNlKQorKyNkZWZpbmUgaXNsX3NwYWNlX2FkZF9kaW1zICgq aXNsX3BvaW50ZXJzX18ucF9pc2xfc3BhY2VfYWRkX2RpbXMpCisrI2RlZmluZSBpc2xfc3BhY2Vf YWxsb2MgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9zcGFjZV9hbGxvYykKKysjZGVmaW5lIGlzbF9z cGFjZV9jb3B5ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfc3BhY2VfY29weSkKKysjZGVmaW5lIGlz bF9zcGFjZV9kaW0gKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9zcGFjZV9kaW0pCisrI2RlZmluZSBp c2xfc3BhY2VfZG9tYWluICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfc3BhY2VfZG9tYWluKQorKyNk ZWZpbmUgaXNsX3NwYWNlX2ZpbmRfZGltX2J5X2lkICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfc3Bh Y2VfZmluZF9kaW1fYnlfaWQpCisrI2RlZmluZSBpc2xfc3BhY2VfZnJlZSAoKmlzbF9wb2ludGVy c19fLnBfaXNsX3NwYWNlX2ZyZWUpCisrI2RlZmluZSBpc2xfc3BhY2VfZnJvbV9kb21haW4gKCpp c2xfcG9pbnRlcnNfXy5wX2lzbF9zcGFjZV9mcm9tX2RvbWFpbikKKysjZGVmaW5lIGlzbF9zcGFj ZV9nZXRfdHVwbGVfaWQgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9zcGFjZV9nZXRfdHVwbGVfaWQp CisrI2RlZmluZSBpc2xfc3BhY2VfcGFyYW1zX2FsbG9jICgqaXNsX3BvaW50ZXJzX18ucF9pc2xf c3BhY2VfcGFyYW1zX2FsbG9jKQorKyNkZWZpbmUgaXNsX3NwYWNlX3JhbmdlICgqaXNsX3BvaW50 ZXJzX18ucF9pc2xfc3BhY2VfcmFuZ2UpCisrI2RlZmluZSBpc2xfc3BhY2Vfc2V0X2FsbG9jICgq aXNsX3BvaW50ZXJzX18ucF9pc2xfc3BhY2Vfc2V0X2FsbG9jKQorKyNkZWZpbmUgaXNsX3NwYWNl X3NldF9kaW1faWQgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9zcGFjZV9zZXRfZGltX2lkKQorKyNk ZWZpbmUgaXNsX3NwYWNlX3NldF90dXBsZV9pZCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3NwYWNl X3NldF90dXBsZV9pZCkKKysjZGVmaW5lIGlzbF91bmlvbl9tYXBfYWRkX21hcCAoKmlzbF9wb2lu dGVyc19fLnBfaXNsX3VuaW9uX21hcF9hZGRfbWFwKQorKyNkZWZpbmUgaXNsX3VuaW9uX21hcF9h bGlnbl9wYXJhbXMgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF91bmlvbl9tYXBfYWxpZ25fcGFyYW1z KQorKyNkZWZpbmUgaXNsX3VuaW9uX21hcF9hcHBseV9kb21haW4gKCppc2xfcG9pbnRlcnNfXy5w X2lzbF91bmlvbl9tYXBfYXBwbHlfZG9tYWluKQorKyNkZWZpbmUgaXNsX3VuaW9uX21hcF9hcHBs eV9yYW5nZSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3VuaW9uX21hcF9hcHBseV9yYW5nZSkKKysj ZGVmaW5lIGlzbF91bmlvbl9tYXBfY29tcHV0ZV9mbG93ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xf dW5pb25fbWFwX2NvbXB1dGVfZmxvdykKKysjZGVmaW5lIGlzbF91bmlvbl9tYXBfY29weSAoKmlz bF9wb2ludGVyc19fLnBfaXNsX3VuaW9uX21hcF9jb3B5KQorKyNkZWZpbmUgaXNsX3VuaW9uX21h cF9lbXB0eSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3VuaW9uX21hcF9lbXB0eSkKKysjZGVmaW5l IGlzbF91bmlvbl9tYXBfZmxhdF9yYW5nZV9wcm9kdWN0ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xf dW5pb25fbWFwX2ZsYXRfcmFuZ2VfcHJvZHVjdCkKKysjZGVmaW5lIGlzbF91bmlvbl9tYXBfZm9y ZWFjaF9tYXAgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF91bmlvbl9tYXBfZm9yZWFjaF9tYXApCisr I2RlZmluZSBpc2xfdW5pb25fbWFwX2ZyZWUgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF91bmlvbl9t YXBfZnJlZSkKKysjZGVmaW5lIGlzbF91bmlvbl9tYXBfZnJvbV9tYXAgKCppc2xfcG9pbnRlcnNf Xy5wX2lzbF91bmlvbl9tYXBfZnJvbV9tYXApCisrI2RlZmluZSBpc2xfdW5pb25fbWFwX2dldF9j dHggKCppc2xfcG9pbnRlcnNfXy5wX2lzbF91bmlvbl9tYXBfZ2V0X2N0eCkKKysjZGVmaW5lIGlz bF91bmlvbl9tYXBfZ2V0X3NwYWNlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfdW5pb25fbWFwX2dl dF9zcGFjZSkKKysjZGVmaW5lIGlzbF91bmlvbl9tYXBfZ2lzdF9kb21haW4gKCppc2xfcG9pbnRl cnNfXy5wX2lzbF91bmlvbl9tYXBfZ2lzdF9kb21haW4pCisrI2RlZmluZSBpc2xfdW5pb25fbWFw X2dpc3RfcmFuZ2UgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF91bmlvbl9tYXBfZ2lzdF9yYW5nZSkK KysjZGVmaW5lIGlzbF91bmlvbl9tYXBfaW50ZXJzZWN0X2RvbWFpbiAoKmlzbF9wb2ludGVyc19f LnBfaXNsX3VuaW9uX21hcF9pbnRlcnNlY3RfZG9tYWluKQorKyNkZWZpbmUgaXNsX3VuaW9uX21h cF9pc19lbXB0eSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3VuaW9uX21hcF9pc19lbXB0eSkKKysj ZGVmaW5lIGlzbF91bmlvbl9tYXBfc3VidHJhY3QgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF91bmlv bl9tYXBfc3VidHJhY3QpCisrI2RlZmluZSBpc2xfdW5pb25fbWFwX3VuaW9uICgqaXNsX3BvaW50 ZXJzX18ucF9pc2xfdW5pb25fbWFwX3VuaW9uKQorKyNkZWZpbmUgaXNsX3VuaW9uX3NldF9hZGRf c2V0ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfdW5pb25fc2V0X2FkZF9zZXQpCisrI2RlZmluZSBp c2xfdW5pb25fc2V0X2NvbXB1dGVfc2NoZWR1bGUgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF91bmlv bl9zZXRfY29tcHV0ZV9zY2hlZHVsZSkKKysjZGVmaW5lIGlzbF91bmlvbl9zZXRfY29weSAoKmlz bF9wb2ludGVyc19fLnBfaXNsX3VuaW9uX3NldF9jb3B5KQorKyNkZWZpbmUgaXNsX3VuaW9uX3Nl dF9lbXB0eSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3VuaW9uX3NldF9lbXB0eSkKKysjZGVmaW5l IGlzbF91bmlvbl9zZXRfZnJvbV9zZXQgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF91bmlvbl9zZXRf ZnJvbV9zZXQpCisrI2RlZmluZSBpc2xfYWZmX2FkZF9jb25zdGFudF92YWwgKCppc2xfcG9pbnRl cnNfXy5wX2lzbF9hZmZfYWRkX2NvbnN0YW50X3ZhbCkKKysjZGVmaW5lIGlzbF9hZmZfZ2V0X2Nv ZWZmaWNpZW50X3ZhbCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2FmZl9nZXRfY29lZmZpY2llbnRf dmFsKQorKyNkZWZpbmUgaXNsX2FmZl9nZXRfY3R4ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfYWZm X2dldF9jdHgpCisrI2RlZmluZSBpc2xfYWZmX21vZF92YWwgKCppc2xfcG9pbnRlcnNfXy5wX2lz bF9hZmZfbW9kX3ZhbCkKKysjZGVmaW5lIGlzbF9hc3RfYnVpbGRfYXN0X2Zyb21fc2NoZWR1bGUg KCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hc3RfYnVpbGRfYXN0X2Zyb21fc2NoZWR1bGUpCisrI2Rl ZmluZSBpc2xfYXN0X2J1aWxkX2ZyZWUgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hc3RfYnVpbGRf ZnJlZSkKKysjZGVmaW5lIGlzbF9hc3RfYnVpbGRfZnJvbV9jb250ZXh0ICgqaXNsX3BvaW50ZXJz X18ucF9pc2xfYXN0X2J1aWxkX2Zyb21fY29udGV4dCkKKysjZGVmaW5lIGlzbF9hc3RfYnVpbGRf Z2V0X2N0eCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2FzdF9idWlsZF9nZXRfY3R4KQorKyNkZWZp bmUgaXNsX2FzdF9idWlsZF9nZXRfc2NoZWR1bGUgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hc3Rf YnVpbGRfZ2V0X3NjaGVkdWxlKQorKyNkZWZpbmUgaXNsX2FzdF9idWlsZF9nZXRfc2NoZWR1bGVf c3BhY2UgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hc3RfYnVpbGRfZ2V0X3NjaGVkdWxlX3NwYWNl KQorKyNkZWZpbmUgaXNsX2FzdF9idWlsZF9zZXRfYmVmb3JlX2VhY2hfZm9yICgqaXNsX3BvaW50 ZXJzX18ucF9pc2xfYXN0X2J1aWxkX3NldF9iZWZvcmVfZWFjaF9mb3IpCisrI2RlZmluZSBpc2xf YXN0X2J1aWxkX3NldF9vcHRpb25zICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfYXN0X2J1aWxkX3Nl dF9vcHRpb25zKQorKyNkZWZpbmUgaXNsX2FzdF9leHByX2ZyZWUgKCppc2xfcG9pbnRlcnNfXy5w X2lzbF9hc3RfZXhwcl9mcmVlKQorKyNkZWZpbmUgaXNsX2FzdF9leHByX2Zyb21fdmFsICgqaXNs X3BvaW50ZXJzX18ucF9pc2xfYXN0X2V4cHJfZnJvbV92YWwpCisrI2RlZmluZSBpc2xfYXN0X2V4 cHJfZ2V0X2N0eCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2FzdF9leHByX2dldF9jdHgpCisrI2Rl ZmluZSBpc2xfYXN0X2V4cHJfZ2V0X2lkICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfYXN0X2V4cHJf Z2V0X2lkKQorKyNkZWZpbmUgaXNsX2FzdF9leHByX2dldF9vcF9hcmcgKCppc2xfcG9pbnRlcnNf Xy5wX2lzbF9hc3RfZXhwcl9nZXRfb3BfYXJnKQorKyNkZWZpbmUgaXNsX2FzdF9leHByX2dldF9v cF9uX2FyZyAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2FzdF9leHByX2dldF9vcF9uX2FyZykKKysj ZGVmaW5lIGlzbF9hc3RfZXhwcl9nZXRfb3BfdHlwZSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2Fz dF9leHByX2dldF9vcF90eXBlKQorKyNkZWZpbmUgaXNsX2FzdF9leHByX2dldF90eXBlICgqaXNs X3BvaW50ZXJzX18ucF9pc2xfYXN0X2V4cHJfZ2V0X3R5cGUpCisrI2RlZmluZSBpc2xfYXN0X2V4 cHJfZ2V0X3ZhbCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2FzdF9leHByX2dldF92YWwpCisrI2Rl ZmluZSBpc2xfYXN0X2V4cHJfc3ViICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfYXN0X2V4cHJfc3Vi KQorKyNkZWZpbmUgaXNsX2FzdF9ub2RlX2Jsb2NrX2dldF9jaGlsZHJlbiAoKmlzbF9wb2ludGVy c19fLnBfaXNsX2FzdF9ub2RlX2Jsb2NrX2dldF9jaGlsZHJlbikKKysjZGVmaW5lIGlzbF9hc3Rf bm9kZV9mb3JfZ2V0X2JvZHkgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hc3Rfbm9kZV9mb3JfZ2V0 X2JvZHkpCisrI2RlZmluZSBpc2xfYXN0X25vZGVfZm9yX2dldF9jb25kICgqaXNsX3BvaW50ZXJz X18ucF9pc2xfYXN0X25vZGVfZm9yX2dldF9jb25kKQorKyNkZWZpbmUgaXNsX2FzdF9ub2RlX2Zv cl9nZXRfaW5jICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfYXN0X25vZGVfZm9yX2dldF9pbmMpCisr I2RlZmluZSBpc2xfYXN0X25vZGVfZm9yX2dldF9pbml0ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xf YXN0X25vZGVfZm9yX2dldF9pbml0KQorKyNkZWZpbmUgaXNsX2FzdF9ub2RlX2Zvcl9nZXRfaXRl cmF0b3IgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hc3Rfbm9kZV9mb3JfZ2V0X2l0ZXJhdG9yKQor KyNkZWZpbmUgaXNsX2FzdF9ub2RlX2ZyZWUgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hc3Rfbm9k ZV9mcmVlKQorKyNkZWZpbmUgaXNsX2FzdF9ub2RlX2dldF9hbm5vdGF0aW9uICgqaXNsX3BvaW50 ZXJzX18ucF9pc2xfYXN0X25vZGVfZ2V0X2Fubm90YXRpb24pCisrI2RlZmluZSBpc2xfYXN0X25v ZGVfZ2V0X3R5cGUgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hc3Rfbm9kZV9nZXRfdHlwZSkKKysj ZGVmaW5lIGlzbF9hc3Rfbm9kZV9pZl9nZXRfY29uZCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2Fz dF9ub2RlX2lmX2dldF9jb25kKQorKyNkZWZpbmUgaXNsX2FzdF9ub2RlX2lmX2dldF9lbHNlICgq aXNsX3BvaW50ZXJzX18ucF9pc2xfYXN0X25vZGVfaWZfZ2V0X2Vsc2UpCisrI2RlZmluZSBpc2xf YXN0X25vZGVfaWZfZ2V0X3RoZW4gKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hc3Rfbm9kZV9pZl9n ZXRfdGhlbikKKysjZGVmaW5lIGlzbF9hc3Rfbm9kZV9saXN0X2ZyZWUgKCppc2xfcG9pbnRlcnNf Xy5wX2lzbF9hc3Rfbm9kZV9saXN0X2ZyZWUpCisrI2RlZmluZSBpc2xfYXN0X25vZGVfbGlzdF9n ZXRfYXN0X25vZGUgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9hc3Rfbm9kZV9saXN0X2dldF9hc3Rf bm9kZSkKKysjZGVmaW5lIGlzbF9hc3Rfbm9kZV9saXN0X25fYXN0X25vZGUgKCppc2xfcG9pbnRl cnNfXy5wX2lzbF9hc3Rfbm9kZV9saXN0X25fYXN0X25vZGUpCisrI2RlZmluZSBpc2xfYXN0X25v ZGVfdXNlcl9nZXRfZXhwciAoKmlzbF9wb2ludGVyc19fLnBfaXNsX2FzdF9ub2RlX3VzZXJfZ2V0 X2V4cHIpCisrI2RlZmluZSBpc2xfY29uc3RyYWludF9zZXRfY29lZmZpY2llbnRfdmFsICgqaXNs X3BvaW50ZXJzX18ucF9pc2xfY29uc3RyYWludF9zZXRfY29lZmZpY2llbnRfdmFsKQorKyNkZWZp bmUgaXNsX2NvbnN0cmFpbnRfc2V0X2NvbnN0YW50X3ZhbCAoKmlzbF9wb2ludGVyc19fLnBfaXNs X2NvbnN0cmFpbnRfc2V0X2NvbnN0YW50X3ZhbCkKKysjZGVmaW5lIGlzbF9pZF9nZXRfdXNlciAo KmlzbF9wb2ludGVyc19fLnBfaXNsX2lkX2dldF91c2VyKQorKyNkZWZpbmUgaXNsX2xvY2FsX3Nw YWNlX2dldF9jdHggKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9sb2NhbF9zcGFjZV9nZXRfY3R4KQor KyNkZWZpbmUgaXNsX21hcF9maXhfdmFsICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfbWFwX2ZpeF92 YWwpCisrI2RlZmluZSBpc2xfb3B0aW9uc19zZXRfYXN0X2J1aWxkX2F0b21pY191cHBlcl9ib3Vu ZCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX29wdGlvbnNfc2V0X2FzdF9idWlsZF9hdG9taWNfdXBw ZXJfYm91bmQpCisrI2RlZmluZSBpc2xfcHJpbnRlcl9wcmludF9hc3Rfbm9kZSAoKmlzbF9wb2lu dGVyc19fLnBfaXNsX3ByaW50ZXJfcHJpbnRfYXN0X25vZGUpCisrI2RlZmluZSBpc2xfcHJpbnRl cl9wcmludF9zdHIgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9wcmludGVyX3ByaW50X3N0cikKKysj ZGVmaW5lIGlzbF9wcmludGVyX3NldF9vdXRwdXRfZm9ybWF0ICgqaXNsX3BvaW50ZXJzX18ucF9p c2xfcHJpbnRlcl9zZXRfb3V0cHV0X2Zvcm1hdCkKKysjZGVmaW5lIGlzbF9wd19hZmZfbW9kX3Zh bCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3B3X2FmZl9tb2RfdmFsKQorKyNkZWZpbmUgaXNsX3Nj aGVkdWxlX2NvbnN0cmFpbnRzX2NvbXB1dGVfc2NoZWR1bGUgKCppc2xfcG9pbnRlcnNfXy5wX2lz bF9zY2hlZHVsZV9jb25zdHJhaW50c19jb21wdXRlX3NjaGVkdWxlKQorKyNkZWZpbmUgaXNsX3Nj aGVkdWxlX2NvbnN0cmFpbnRzX29uX2RvbWFpbiAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3NjaGVk dWxlX2NvbnN0cmFpbnRzX29uX2RvbWFpbikKKysjZGVmaW5lIGlzbF9zY2hlZHVsZV9jb25zdHJh aW50c19zZXRfY29pbmNpZGVuY2UgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9zY2hlZHVsZV9jb25z dHJhaW50c19zZXRfY29pbmNpZGVuY2UpCisrI2RlZmluZSBpc2xfc2NoZWR1bGVfY29uc3RyYWlu dHNfc2V0X3Byb3hpbWl0eSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3NjaGVkdWxlX2NvbnN0cmFp bnRzX3NldF9wcm94aW1pdHkpCisrI2RlZmluZSBpc2xfc2NoZWR1bGVfY29uc3RyYWludHNfc2V0 X3ZhbGlkaXR5ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfc2NoZWR1bGVfY29uc3RyYWludHNfc2V0 X3ZhbGlkaXR5KQorKyNkZWZpbmUgaXNsX3NldF9nZXRfZGltX2lkICgqaXNsX3BvaW50ZXJzX18u cF9pc2xfc2V0X2dldF9kaW1faWQpCisrI2RlZmluZSBpc2xfc2V0X21heF92YWwgKCppc2xfcG9p bnRlcnNfXy5wX2lzbF9zZXRfbWF4X3ZhbCkKKysjZGVmaW5lIGlzbF9zZXRfbWluX3ZhbCAoKmlz bF9wb2ludGVyc19fLnBfaXNsX3NldF9taW5fdmFsKQorKyNkZWZpbmUgaXNsX3NldF9wYXJhbXMg KCppc2xfcG9pbnRlcnNfXy5wX2lzbF9zZXRfcGFyYW1zKQorKyNkZWZpbmUgaXNsX3NwYWNlX2Fs aWduX3BhcmFtcyAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3NwYWNlX2FsaWduX3BhcmFtcykKKysj ZGVmaW5lIGlzbF9zcGFjZV9tYXBfZnJvbV9kb21haW5fYW5kX3JhbmdlICgqaXNsX3BvaW50ZXJz X18ucF9pc2xfc3BhY2VfbWFwX2Zyb21fZG9tYWluX2FuZF9yYW5nZSkKKysjZGVmaW5lIGlzbF9z cGFjZV9zZXRfdHVwbGVfbmFtZSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3NwYWNlX3NldF90dXBs ZV9uYW1lKQorKyNkZWZpbmUgaXNsX3NwYWNlX3dyYXAgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9z cGFjZV93cmFwKQorKyNkZWZpbmUgaXNsX3VuaW9uX21hcF9mcm9tX2RvbWFpbl9hbmRfcmFuZ2Ug KCppc2xfcG9pbnRlcnNfXy5wX2lzbF91bmlvbl9tYXBfZnJvbV9kb21haW5fYW5kX3JhbmdlKQor KyNkZWZpbmUgaXNsX3VuaW9uX21hcF9yYW5nZSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3VuaW9u X21hcF9yYW5nZSkKKysjZGVmaW5lIGlzbF91bmlvbl9zZXRfdW5pb24gKCppc2xfcG9pbnRlcnNf Xy5wX2lzbF91bmlvbl9zZXRfdW5pb24pCisrI2RlZmluZSBpc2xfdW5pb25fc2V0X3VuaXZlcnNl ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfdW5pb25fc2V0X3VuaXZlcnNlKQorKyNkZWZpbmUgaXNs X3ZhbF8yZXhwICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfdmFsXzJleHApCisrI2RlZmluZSBpc2xf dmFsX2FkZF91aSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3ZhbF9hZGRfdWkpCisrI2RlZmluZSBp c2xfdmFsX2NvcHkgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF92YWxfY29weSkKKysjZGVmaW5lIGlz bF92YWxfZnJlZSAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3ZhbF9mcmVlKQorKyNkZWZpbmUgaXNs X3ZhbF9nZXRfbnVtX2dtcCAoKmlzbF9wb2ludGVyc19fLnBfaXNsX3ZhbF9nZXRfbnVtX2dtcCkK KysjZGVmaW5lIGlzbF92YWxfaW50X2Zyb21fZ21wICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfdmFs X2ludF9mcm9tX2dtcCkKKysjZGVmaW5lIGlzbF92YWxfaW50X2Zyb21fc2kgKCppc2xfcG9pbnRl cnNfXy5wX2lzbF92YWxfaW50X2Zyb21fc2kpCisrI2RlZmluZSBpc2xfdmFsX2ludF9mcm9tX3Vp ICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfdmFsX2ludF9mcm9tX3VpKQorKyNkZWZpbmUgaXNsX3Zh bF9tdWwgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF92YWxfbXVsKQorKyNkZWZpbmUgaXNsX3ZhbF9u ZWcgKCppc2xfcG9pbnRlcnNfXy5wX2lzbF92YWxfbmVnKQorKyNkZWZpbmUgaXNsX3ZhbF9zdWIg KCppc2xfcG9pbnRlcnNfXy5wX2lzbF92YWxfc3ViKQorKyNkZWZpbmUgaXNsX3ByaW50ZXJfcHJp bnRfdW5pb25fbWFwICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfcHJpbnRlcl9wcmludF91bmlvbl9t YXApCisrI2RlZmluZSBpc2xfcHdfYWZmX2dldF9jdHggKCppc2xfcG9pbnRlcnNfXy5wX2lzbF9w d19hZmZfZ2V0X2N0eCkKKysjZGVmaW5lIGlzbF92YWxfaXNfaW50ICgqaXNsX3BvaW50ZXJzX18u cF9pc2xfdmFsX2lzX2ludCkKKysjZGVmaW5lIGlzbF9jdHhfZ2V0X21heF9vcGVyYXRpb25zICgq aXNsX3BvaW50ZXJzX18ucF9pc2xfY3R4X2dldF9tYXhfb3BlcmF0aW9ucykKKysjZGVmaW5lIGlz bF9jdHhfc2V0X21heF9vcGVyYXRpb25zICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfY3R4X3NldF9t YXhfb3BlcmF0aW9ucykKKysjZGVmaW5lIGlzbF9jdHhfbGFzdF9lcnJvciAoKmlzbF9wb2ludGVy c19fLnBfaXNsX2N0eF9sYXN0X2Vycm9yKQorKyNkZWZpbmUgaXNsX2N0eF9yZXNldF9vcGVyYXRp b25zICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfY3R4X3Jlc2V0X29wZXJhdGlvbnMpCisrI2RlZmlu ZSBpc2xfbWFwX2NvYWxlc2NlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfbWFwX2NvYWxlc2NlKQor KyNkZWZpbmUgaXNsX3ByaW50ZXJfcHJpbnRfc2NoZWR1bGUgKCppc2xfcG9pbnRlcnNfXy5wX2lz bF9wcmludGVyX3ByaW50X3NjaGVkdWxlKQorKyNkZWZpbmUgaXNsX3NldF9zZXRfZGltX2lkICgq aXNsX3BvaW50ZXJzX18ucF9pc2xfc2V0X3NldF9kaW1faWQpCisrI2RlZmluZSBpc2xfdW5pb25f bWFwX2NvYWxlc2NlICgqaXNsX3BvaW50ZXJzX18ucF9pc2xfdW5pb25fbWFwX2NvYWxlc2NlKQor KworIHR5cGVkZWYgc3RydWN0IHBvbHlfZHIgKnBvbHlfZHJfcDsKKyAKKyB0eXBlZGVmIHN0cnVj dCBwb2x5X2JiICpwb2x5X2JiX3A7CistLS0gZ2NjL2dyYXBoaXRlLmMuamoJMjAxNS0xMS0wNCAx NDoxNTozMi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnY2MvZ3JhcGhpdGUuYwkyMDE1LTExLTA0IDE0 OjU2OjAyLjY0NTUzNjQwOSArMDEwMAorQEAgLTU0LDYgKzU0LDM0IEBAIGFsb25nIHdpdGggR0ND OyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuCisgI2luY2x1ZGUgInRyZWUtY2ZnY2xlYW51cC5oIgor ICNpbmNsdWRlICJncmFwaGl0ZS5oIgorIAorK19fdHlwZW9mIChpc2xfcG9pbnRlcnNfXykgaXNs X3BvaW50ZXJzX187CisrCisrc3RhdGljIGJvb2wKKytpbml0X2lzbF9wb2ludGVycyAodm9pZCkK Kyt7CisrICB2b2lkICpoOworKworKyAgaWYgKGlzbF9wb2ludGVyc19fLmluaXRlZCkKKysgICAg cmV0dXJuIGlzbF9wb2ludGVyc19fLmggIT0gTlVMTDsKKysgIGggPSBkbG9wZW4gKCJsaWJpc2wu c28uMTMiLCBSVExEX0xBWlkpOworKyAgaXNsX3BvaW50ZXJzX18uaCA9IGg7CisrICBpZiAoaCA9 PSBOVUxMKQorKyAgICByZXR1cm4gZmFsc2U7CisrI2RlZmluZSBEWU5TWU0oeCkgXAorKyAgZG8g XAorKyAgICB7IFwKKysgICAgICB1bmlvbiB7IF9fdHlwZW9mIChpc2xfcG9pbnRlcnNfXy5wXyMj eCkgcDsgdm9pZCAqcTsgfSB1OyBcCisrICAgICAgdS5xID0gZGxzeW0gKGgsICN4KTsgXAorKyAg ICAgIGlmICh1LnEgPT0gTlVMTCkgXAorKwlyZXR1cm4gZmFsc2U7IFwKKysgICAgICBpc2xfcG9p bnRlcnNfXy5wXyMjeCA9IHUucDsgXAorKyAgICB9IFwKKysgIHdoaWxlICgwKQorKyAgRFlOU1lN UworKyN1bmRlZiBEWU5TWU0KKysgIHJldHVybiB0cnVlOworK30KKysKKyAvKiBQcmludCBnbG9i YWwgc3RhdGlzdGljcyB0byBGSUxFLiAgKi8KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTI5OCw2ICsz MjYsMTUgQEAgZ3JhcGhpdGVfdHJhbnNmb3JtX2xvb3BzICh2b2lkKQorICAgaWYgKHBhcmFsbGVs aXplZF9mdW5jdGlvbl9wIChjZnVuLT5kZWNsKSkKKyAgICAgcmV0dXJuOworIAorKyAgaWYgKG51 bWJlcl9vZl9sb29wcyAoY2Z1bikgPD0gMSkKKysgICAgcmV0dXJuOworKworKyAgaWYgKCFpbml0 X2lzbF9wb2ludGVycyAoKSkKKysgICAgeworKyAgICAgIHNvcnJ5ICgiR3JhcGhpdGUgbG9vcCBv cHRpbWl6YXRpb25zIGNhbm5vdCBiZSB1c2VkIik7CisrICAgICAgcmV0dXJuOworKyAgICB9Cisr CisgICBjdHggPSBpc2xfY3R4X2FsbG9jICgpOworICAgaXNsX29wdGlvbnNfc2V0X29uX2Vycm9y IChjdHgsIElTTF9PTl9FUlJPUl9BQk9SVCk7CisgICBpZiAoIWdyYXBoaXRlX2luaXRpYWxpemUg KGN0eCkpCgpkaWZmIC0tZ2l0IGEvZ2NjNi1qYXZhLW5vbXVsdGkucGF0Y2ggYi9nY2M2LWphdmEt bm9tdWx0aS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzMzNGFh Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjNi1qYXZhLW5vbXVsdGkucGF0Y2gKQEAgLTAsMCArMSw0 NCBAQAorLS0tIGxpYmphdmEvY29uZmlndXJlLmFjLmpqCTIwMDctMTItMDcgMTc6NTU6NTAuMDAw MDAwMDAwICswMTAwCisrKysgbGliamF2YS9jb25maWd1cmUuYWMJMjAwNy0xMi0wNyAxODozNjo1 Ni4wMDAwMDAwMDAgKzAxMDAKK0BAIC04Miw2ICs4MiwxMyBAQCBBQ19BUkdfRU5BQkxFKGphdmEt bWFpbnRhaW5lci1tb2RlLAorIAlbYWxsb3cgcmVidWlsZGluZyBvZiAuY2xhc3MgYW5kIC5oIGZp bGVzXSkpCisgQU1fQ09ORElUSU9OQUwoSkFWQV9NQUlOVEFJTkVSX01PREUsIHRlc3QgIiRlbmFi bGVfamF2YV9tYWludGFpbmVyX21vZGUiID0geWVzKQorIAorK0FDX0FSR19FTkFCTEUobGliamF2 YS1tdWx0aWxpYiwKKysJQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWxpYmphdmEtbXVsdGlsaWJd LCBbYnVpbGQgbGliamF2YSBhcyBtdWx0aWxpYl0pKQorK2lmIHRlc3QgIiRlbmFibGVfbGliamF2 YV9tdWx0aWxpYiIgPSBubzsgdGhlbgorKyAgbXVsdGlsaWI9bm8KKysgIGFjX2NvbmZpZ3VyZV9h cmdzPSIkYWNfY29uZmlndXJlX2FyZ3MgLS1kaXNhYmxlLW11bHRpbGliIgorK2ZpCisrCisgIyBJ dCBtYXkgbm90IGJlIHNhZmUgdG8gcnVuIGxpbmtpbmcgdGVzdHMgaW4gQUNfUFJPR19DQy9BQ19Q Uk9HX0NYWC4KKyBHQ0NfTk9fRVhFQ1VUQUJMRVMKKyAKKy0tLSBsaWJqYXZhL2NvbmZpZ3VyZS5q agkyMDA3LTEyLTA3IDE3OjU1OjUwLjAwMDAwMDAwMCArMDEwMAorKysrIGxpYmphdmEvY29uZmln dXJlCTIwMDctMTItMDcgMTg6Mzk6NTguMDAwMDAwMDAwICswMTAwCitAQCAtMTAyMSw2ICsxMDIx LDggQEAgT3B0aW9uYWwgRmVhdHVyZXM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZh dWx0PXllcworICAgLS1lbmFibGUtamF2YS1tYWludGFpbmVyLW1vZGUKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFsbG93IHJlYnVpbGRpbmcgb2YgLmNsYXNzIGFuZCAuaCBmaWxlcworKyAg LS1lbmFibGUtbGliamF2YS1tdWx0aWxpYgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgYnVp bGQgbGliamF2YSBhcyBtdWx0aWxpYgorICAgLS1kaXNhYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcg IHNwZWVkcyB1cCBvbmUtdGltZSBidWlsZAorICAgLS1lbmFibGUtZGVwZW5kZW5jeS10cmFja2lu ZyAgIGRvIG5vdCByZWplY3Qgc2xvdyBkZXBlbmRlbmN5IGV4dHJhY3RvcnMKKyAgIC0tZW5hYmxl LW1haW50YWluZXItbW9kZSAgZW5hYmxlIG1ha2UgcnVsZXMgYW5kIGRlcGVuZGVuY2llcyBub3Qg dXNlZnVsCitAQCAtMTk3Myw2ICsxOTc1LDE2IEBAIGVsc2UKKyBmaQorIAorIAorKyMgQ2hlY2sg d2hldGhlciAtLWVuYWJsZS1saWJqYXZhLW11bHRpbGliIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIk e2VuYWJsZV9saWJqYXZhX211bHRpbGliK3NldH0iID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9 JGVuYWJsZV9saWJqYXZhX211bHRpbGliOworK2ZpCisrCisraWYgdGVzdCAiJGVuYWJsZV9saWJq YXZhX211bHRpbGliIiA9IG5vOyB0aGVuCisrICBtdWx0aWxpYj1ubworKyAgYWNfY29uZmlndXJl X2FyZ3M9IiRhY19jb25maWd1cmVfYXJncyAtLWRpc2FibGUtbXVsdGlsaWIiCisrZmkKKysKKyAj IEl0IG1heSBub3QgYmUgc2FmZSB0byBydW4gbGlua2luZyB0ZXN0cyBpbiBBQ19QUk9HX0NDL0FD X1BST0dfQ1hYLgorIAorIAoKZGlmZiAtLWdpdCBhL2djYzYtbGliZ28tcDIyNC5wYXRjaCBiL2dj YzYtbGliZ28tcDIyNC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5l MTQyMDgzCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjNi1saWJnby1wMjI0LnBhdGNoCkBAIC0wLDAg KzEsMTEwNiBAQAorLS0tIGxpYmdvL01ha2VmaWxlLmFtLmpqCTIwMTQtMDEtMDggMTM6NTM6MDYu MDAwMDAwMDAwICswMTAwCisrKysgbGliZ28vTWFrZWZpbGUuYW0JMjAxNC0wMy0wNSAxNToyMDow OS45Mzg0NjYwOTMgKzAxMDAKK0BAIC0xMTMzLDcgKzExMzMsNiBAQCBnb19jcnlwdG9fZWNkc2Ff ZmlsZXMgPSBcCisgCWdvL2NyeXB0by9lY2RzYS9lY2RzYS5nbworIGdvX2NyeXB0b19lbGxpcHRp Y19maWxlcyA9IFwKKyAJZ28vY3J5cHRvL2VsbGlwdGljL2VsbGlwdGljLmdvIFwKKy0JZ28vY3J5 cHRvL2VsbGlwdGljL3AyMjQuZ28gXAorIAlnby9jcnlwdG8vZWxsaXB0aWMvcDI1Ni5nbworIGdv X2NyeXB0b19obWFjX2ZpbGVzID0gXAorIAlnby9jcnlwdG8vaG1hYy9obWFjLmdvCistLS0gbGli Z28vTWFrZWZpbGUuaW4uamoJMjAxNC0wMS0wOCAxMzo1MzowNi4wMDAwMDAwMDAgKzAxMDAKKysr KyBsaWJnby9NYWtlZmlsZS5pbgkyMDE0LTAzLTA1IDE1OjIwOjIwLjM3MjQ2NTQ3MSArMDEwMAor QEAgLTEyOTEsNyArMTI5MSw2IEBAIGdvX2NyeXB0b19lY2RzYV9maWxlcyA9IFwKKyAKKyBnb19j cnlwdG9fZWxsaXB0aWNfZmlsZXMgPSBcCisgCWdvL2NyeXB0by9lbGxpcHRpYy9lbGxpcHRpYy5n byBcCistCWdvL2NyeXB0by9lbGxpcHRpYy9wMjI0LmdvIFwKKyAJZ28vY3J5cHRvL2VsbGlwdGlj L3AyNTYuZ28KKyAKKyBnb19jcnlwdG9faG1hY19maWxlcyA9IFwKKy0tLSBsaWJnby9nby9jcnlw dG8vZWxsaXB0aWMvZWxsaXB0aWMuZ28uamoJMjAxMy0xMS0wNyAxMTo1OTowOS4wMDAwMDAwMDAg KzAxMDAKKysrKyBsaWJnby9nby9jcnlwdG8vZWxsaXB0aWMvZWxsaXB0aWMuZ28JMjAxNC0wMy0w NSAxNToyMTowNC4xODY0NjI4NTkgKzAxMDAKK0BAIC0zMjYsNyArMzI2LDYgQEAgdmFyIHAzODQg KkN1cnZlUGFyYW1zCisgdmFyIHA1MjEgKkN1cnZlUGFyYW1zCisgCisgZnVuYyBpbml0QWxsKCkg eworLQlpbml0UDIyNCgpCisgCWluaXRQMjU2KCkKKyAJaW5pdFAzODQoKQorIAlpbml0UDUyMSgp CistLS0gbGliZ28vZ28vY3J5cHRvL2VsbGlwdGljL2VsbGlwdGljX3Rlc3QuZ28uamoJMjAxMy0x MS0wNyAxMTo1OTowOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBsaWJnby9nby9jcnlwdG8vZWxsaXB0 aWMvZWxsaXB0aWNfdGVzdC5nbwkyMDE0LTAzLTA1IDE1OjQ2OjAzLjczOTM3MzQ1MyArMDEwMAor QEAgLTUsMzkgKzUsMTYgQEAKKyBwYWNrYWdlIGVsbGlwdGljCisgCisgaW1wb3J0ICgKKy0JImNy eXB0by9yYW5kIgorLQkiZW5jb2RpbmcvaGV4IgorLQkiZm10IgorIAkibWF0aC9iaWciCisgCSJ0 ZXN0aW5nIgorICkKKyAKKy1mdW5jIFRlc3RPbkN1cnZlKHQgKnRlc3RpbmcuVCkgeworLQlwMjI0 IDo9IFAyMjQoKQorLQlpZiAhcDIyNC5Jc09uQ3VydmUocDIyNC5QYXJhbXMoKS5HeCwgcDIyNC5Q YXJhbXMoKS5HeSkgeworLQkJdC5FcnJvcmYoIkZBSUwiKQorLQl9CistfQorLQorLWZ1bmMgVGVz dE9mZkN1cnZlKHQgKnRlc3RpbmcuVCkgeworLQlwMjI0IDo9IFAyMjQoKQorLQl4LCB5IDo9IG5l dyhiaWcuSW50KS5TZXRJbnQ2NCgxKSwgbmV3KGJpZy5JbnQpLlNldEludDY0KDEpCistCWlmIHAy MjQuSXNPbkN1cnZlKHgsIHkpIHsKKy0JCXQuRXJyb3JmKCJGQUlMOiBwb2ludCBvZmYgY3VydmUg aXMgY2xhaW1lZCB0byBiZSBvbiB0aGUgY3VydmUiKQorLQl9CistCWIgOj0gTWFyc2hhbChwMjI0 LCB4LCB5KQorLQl4MSwgeTEgOj0gVW5tYXJzaGFsKHAyMjQsIGIpCistCWlmIHgxICE9IG5pbCB8 fCB5MSAhPSBuaWwgeworLQkJdC5FcnJvcmYoIkZBSUw6IHVubWFyc2hhbGxpbmcgYSBwb2ludCBu b3Qgb24gdGhlIGN1cnZlIHN1Y2NlZWRlZCIpCistCX0KKy19CistCisgdHlwZSBiYXNlTXVsdFRl c3Qgc3RydWN0IHsKKyAJayAgICBzdHJpbmcKKyAJeCwgeSBzdHJpbmcKKyB9CisgCistdmFyIHAy MjRCYXNlTXVsdFRlc3RzID0gW11iYXNlTXVsdFRlc3R7CisrdmFyIHAyNTZCYXNlTXVsdFRlc3Rz ID0gW11iYXNlTXVsdFRlc3R7CisgCXsKKyAJCSIxIiwKKyAJCSJiNzBlMGNiZDZiYjRiZjdmMzIx MzkwYjk0YTAzYzFkMzU2YzIxMTIyMzQzMjgwZDYxMTVjMWQyMSIsCitAQCAtMzAwLDQ3ICsyNzcs MTIgQEAgdmFyIHAyMjRCYXNlTXVsdFRlc3RzID0gW11iYXNlTXVsdFRlc3R7CisgCX0sCisgfQor IAorLWZ1bmMgVGVzdEJhc2VNdWx0KHQgKnRlc3RpbmcuVCkgeworLQlwMjI0IDo9IFAyMjQoKQor LQlmb3IgaSwgZSA6PSByYW5nZSBwMjI0QmFzZU11bHRUZXN0cyB7CistCQlrLCBvayA6PSBuZXco YmlnLkludCkuU2V0U3RyaW5nKGUuaywgMTApCistCQlpZiAhb2sgeworLQkJCXQuRXJyb3JmKCIl ZDogYmFkIHZhbHVlIGZvciBrOiAlcyIsIGksIGUuaykKKy0JCX0KKy0JCXgsIHkgOj0gcDIyNC5T Y2FsYXJCYXNlTXVsdChrLkJ5dGVzKCkpCistCQlpZiBmbXQuU3ByaW50ZigiJXgiLCB4KSAhPSBl LnggfHwgZm10LlNwcmludGYoIiV4IiwgeSkgIT0gZS55IHsKKy0JCQl0LkVycm9yZigiJWQ6IGJh ZCBvdXRwdXQgZm9yIGs9JXM6IGdvdCAoJXgsICV4KSwgd2FudCAoJXMsICVzKSIsIGksIGUuaywg eCwgeSwgZS54LCBlLnkpCistCQl9CistCQlpZiB0ZXN0aW5nLlNob3J0KCkgJiYgaSA+IDUgewor LQkJCWJyZWFrCistCQl9CistCX0KKy19CistCistZnVuYyBUZXN0R2VuZXJpY0Jhc2VNdWx0KHQg KnRlc3RpbmcuVCkgeworLQkvLyBXZSB1c2UgdGhlIFAyMjQgQ3VydmVQYXJhbXMgZGlyZWN0bHkg aW4gb3JkZXIgdG8gdGVzdCB0aGUgZ2VuZXJpYyBpbXBsZW1lbnRhdGlvbi4KKy0JcDIyNCA6PSBQ MjI0KCkuUGFyYW1zKCkKKy0JZm9yIGksIGUgOj0gcmFuZ2UgcDIyNEJhc2VNdWx0VGVzdHMgewor LQkJaywgb2sgOj0gbmV3KGJpZy5JbnQpLlNldFN0cmluZyhlLmssIDEwKQorLQkJaWYgIW9rIHsK Ky0JCQl0LkVycm9yZigiJWQ6IGJhZCB2YWx1ZSBmb3IgazogJXMiLCBpLCBlLmspCistCQl9Cist CQl4LCB5IDo9IHAyMjQuU2NhbGFyQmFzZU11bHQoay5CeXRlcygpKQorLQkJaWYgZm10LlNwcmlu dGYoIiV4IiwgeCkgIT0gZS54IHx8IGZtdC5TcHJpbnRmKCIleCIsIHkpICE9IGUueSB7CistCQkJ dC5FcnJvcmYoIiVkOiBiYWQgb3V0cHV0IGZvciBrPSVzOiBnb3QgKCV4LCAleCksIHdhbnQgKCVz LCAlcykiLCBpLCBlLmssIHgsIHksIGUueCwgZS55KQorLQkJfQorLQkJaWYgdGVzdGluZy5TaG9y dCgpICYmIGkgPiA1IHsKKy0JCQlicmVhaworLQkJfQorLQl9CistfQorLQorIGZ1bmMgVGVzdFAy NTZCYXNlTXVsdCh0ICp0ZXN0aW5nLlQpIHsKKyAJcDI1NiA6PSBQMjU2KCkKKyAJcDI1NkdlbmVy aWMgOj0gcDI1Ni5QYXJhbXMoKQorIAorLQlzY2FsYXJzIDo9IG1ha2UoW10qYmlnLkludCwgMCwg bGVuKHAyMjRCYXNlTXVsdFRlc3RzKSsxKQorLQlmb3IgXywgZSA6PSByYW5nZSBwMjI0QmFzZU11 bHRUZXN0cyB7CisrCXNjYWxhcnMgOj0gbWFrZShbXSpiaWcuSW50LCAwLCBsZW4ocDI1NkJhc2VN dWx0VGVzdHMpKzEpCisrCWZvciBfLCBlIDo9IHJhbmdlIHAyNTZCYXNlTXVsdFRlc3RzIHsKKyAJ CWssIF8gOj0gbmV3KGJpZy5JbnQpLlNldFN0cmluZyhlLmssIDEwKQorIAkJc2NhbGFycyA9IGFw cGVuZChzY2FsYXJzLCBrKQorIAl9CitAQCAtMzY1LDcgKzMwNyw3IEBAIGZ1bmMgVGVzdFAyNTZN dWx0KHQgKnRlc3RpbmcuVCkgeworIAlwMjU2IDo9IFAyNTYoKQorIAlwMjU2R2VuZXJpYyA6PSBw MjU2LlBhcmFtcygpCisgCistCWZvciBpLCBlIDo9IHJhbmdlIHAyMjRCYXNlTXVsdFRlc3RzIHsK KysJZm9yIGksIGUgOj0gcmFuZ2UgcDI1NkJhc2VNdWx0VGVzdHMgeworIAkJeCwgXyA6PSBuZXco YmlnLkludCkuU2V0U3RyaW5nKGUueCwgMTYpCisgCQl5LCBfIDo9IG5ldyhiaWcuSW50KS5TZXRT dHJpbmcoZS55LCAxNikKKyAJCWssIF8gOj0gbmV3KGJpZy5JbnQpLlNldFN0cmluZyhlLmssIDEw KQorQEAgLTM4Niw3ICszMjgsNiBAQCBmdW5jIFRlc3RJbmZpbml0eSh0ICp0ZXN0aW5nLlQpIHsK KyAJCW5hbWUgIHN0cmluZworIAkJY3VydmUgQ3VydmUKKyAJfXsKKy0JCXsicDIyNCIsIFAyMjQo KX0sCisgCQl7InAyNTYiLCBQMjU2KCl9LAorIAl9CisgCitAQCAtNDE5LDUzICszNjAsMTMgQEAg ZnVuYyBUZXN0SW5maW5pdHkodCAqdGVzdGluZy5UKSB7CisgCX0KKyB9CisgCistZnVuYyBCZW5j aG1hcmtCYXNlTXVsdChiICp0ZXN0aW5nLkIpIHsKKy0JYi5SZXNldFRpbWVyKCkKKy0JcDIyNCA6 PSBQMjI0KCkKKy0JZSA6PSBwMjI0QmFzZU11bHRUZXN0c1syNV0KKy0JaywgXyA6PSBuZXcoYmln LkludCkuU2V0U3RyaW5nKGUuaywgMTApCistCWIuU3RhcnRUaW1lcigpCistCWZvciBpIDo9IDA7 IGkgPCBiLk47IGkrKyB7CistCQlwMjI0LlNjYWxhckJhc2VNdWx0KGsuQnl0ZXMoKSkKKy0JfQor LX0KKy0KKyBmdW5jIEJlbmNobWFya0Jhc2VNdWx0UDI1NihiICp0ZXN0aW5nLkIpIHsKKyAJYi5S ZXNldFRpbWVyKCkKKyAJcDI1NiA6PSBQMjU2KCkKKy0JZSA6PSBwMjI0QmFzZU11bHRUZXN0c1sy NV0KKysJZSA6PSBwMjU2QmFzZU11bHRUZXN0c1syNV0KKyAJaywgXyA6PSBuZXcoYmlnLkludCku U2V0U3RyaW5nKGUuaywgMTApCisgCWIuU3RhcnRUaW1lcigpCisgCWZvciBpIDo9IDA7IGkgPCBi Lk47IGkrKyB7CisgCQlwMjU2LlNjYWxhckJhc2VNdWx0KGsuQnl0ZXMoKSkKKyAJfQorIH0KKy0K Ky1mdW5jIFRlc3RNYXJzaGFsKHQgKnRlc3RpbmcuVCkgeworLQlwMjI0IDo9IFAyMjQoKQorLQlf LCB4LCB5LCBlcnIgOj0gR2VuZXJhdGVLZXkocDIyNCwgcmFuZC5SZWFkZXIpCistCWlmIGVyciAh PSBuaWwgeworLQkJdC5FcnJvcihlcnIpCistCQlyZXR1cm4KKy0JfQorLQlzZXJpYWxpemVkIDo9 IE1hcnNoYWwocDIyNCwgeCwgeSkKKy0JeHgsIHl5IDo9IFVubWFyc2hhbChwMjI0LCBzZXJpYWxp emVkKQorLQlpZiB4eCA9PSBuaWwgeworLQkJdC5FcnJvcigiZmFpbGVkIHRvIHVubWFyc2hhbCIp CistCQlyZXR1cm4KKy0JfQorLQlpZiB4eC5DbXAoeCkgIT0gMCB8fCB5eS5DbXAoeSkgIT0gMCB7 CistCQl0LkVycm9yKCJ1bm1hcnNoYWwgcmV0dXJuZWQgZGlmZmVyZW50IHZhbHVlcyIpCistCQly ZXR1cm4KKy0JfQorLX0KKy0KKy1mdW5jIFRlc3RQMjI0T3ZlcmZsb3codCAqdGVzdGluZy5UKSB7 CistCS8vIFRoaXMgdGVzdHMgZm9yIGEgc3BlY2lmaWMgYnVnIGluIHRoZSBQMjI0IGltcGxlbWVu dGF0aW9uLgorLQlwMjI0IDo9IFAyMjQoKQorLQlwb2ludERhdGEsIF8gOj0gaGV4LkRlY29kZVN0 cmluZygiMDQ5QjUzNUI0NUZCMEEyMDcyMzk4QTY4MzE4MzQ2MjRDN0UzMkNDRkQ1QTRCOTMzQkNF QUY3N0YxREQ5NDVFMDhCQkU1MTc4RjVFREY1RTczMzM4OEYxOTZEMkE2MzFEMkUwNzVCQjE2Q0JG RUVBMTVCIikKKy0JeCwgeSA6PSBVbm1hcnNoYWwocDIyNCwgcG9pbnREYXRhKQorLQlpZiAhcDIy NC5Jc09uQ3VydmUoeCwgeSkgeworLQkJdC5FcnJvcigiUDIyNCBmYWlsZWQgdG8gdmFsaWRhdGUg YSBjb3JyZWN0IHBvaW50IikKKy0JfQorLX0KKy0tLSBsaWJnby9nby9jcnlwdG8vZWNkc2EvZWNk c2FfdGVzdC5nby5qagkyMDEyLTExLTE1IDE4OjI2OjU2LjAwMDAwMDAwMCArMDEwMAorKysrIGxp YmdvL2dvL2NyeXB0by9lY2RzYS9lY2RzYV90ZXN0LmdvCTIwMTQtMDMtMDUgMTU6MjY6MzguNDYx NDQyOTI5ICswMTAwCitAQCAtMzMsNyArMzMsNiBAQCBmdW5jIHRlc3RLZXlHZW5lcmF0aW9uKHQg KnRlc3RpbmcuVCwgYyBlCisgfQorIAorIGZ1bmMgVGVzdEtleUdlbmVyYXRpb24odCAqdGVzdGlu Zy5UKSB7CistCXRlc3RLZXlHZW5lcmF0aW9uKHQsIGVsbGlwdGljLlAyMjQoKSwgInAyMjQiKQor IAlpZiB0ZXN0aW5nLlNob3J0KCkgeworIAkJcmV0dXJuCisgCX0KK0BAIC02Myw3ICs2Miw2IEBA IGZ1bmMgdGVzdFNpZ25BbmRWZXJpZnkodCAqdGVzdGluZy5ULCBjIGUKKyB9CisgCisgZnVuYyBU ZXN0U2lnbkFuZFZlcmlmeSh0ICp0ZXN0aW5nLlQpIHsKKy0JdGVzdFNpZ25BbmRWZXJpZnkodCwg ZWxsaXB0aWMuUDIyNCgpLCAicDIyNCIpCisgCWlmIHRlc3RpbmcuU2hvcnQoKSB7CisgCQlyZXR1 cm4KKyAJfQorQEAgLTEyOSw4ICsxMjcsNiBAQCBmdW5jIFRlc3RWZWN0b3JzKHQgKnRlc3Rpbmcu VCkgeworIAkJCXBhcnRzIDo9IHN0cmluZ3MuU3BsaXROKGxpbmUsICIsIiwgMikKKyAKKyAJCQlz d2l0Y2ggcGFydHNbMF0geworLQkJCWNhc2UgIlAtMjI0IjoKKy0JCQkJcHViLkN1cnZlID0gZWxs aXB0aWMuUDIyNCgpCisgCQkJY2FzZSAiUC0yNTYiOgorIAkJCQlwdWIuQ3VydmUgPSBlbGxpcHRp Yy5QMjU2KCkKKyAJCQljYXNlICJQLTM4NCI6CistLS0gbGliZ28vZ28vY3J5cHRvL3g1MDkveDUw OS5nby5qagkyMDEzLTExLTA3IDExOjU5OjA5LjAwMDAwMDAwMCArMDEwMAorKysrIGxpYmdvL2dv L2NyeXB0by94NTA5L3g1MDkuZ28JMjAxNC0wMy0wNSAxNToyNzozNy4wMjI0Mzk0MzcgKzAxMDAK K0BAIC0zMDgsOSArMzA4LDYgQEAgZnVuYyBnZXRQdWJsaWNLZXlBbGdvcml0aG1Gcm9tT0lEKG9p ZCBhcworIAorIC8vIFJGQyA1NDgwLCAyLjEuMS4xLiBOYW1lZCBDdXJ2ZQorIC8vCistLy8gc2Vj cDIyNHIxIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7CistLy8gICBpc28oMSkgaWRlbnRpZmllZC1v cmdhbml6YXRpb24oMykgY2VydGljb20oMTMyKSBjdXJ2ZSgwKSAzMyB9CistLy8KKyAvLyBzZWNw MjU2cjEgT0JKRUNUIElERU5USUZJRVIgOjo9IHsKKyAvLyAgIGlzbygxKSBtZW1iZXItYm9keSgy KSB1cyg4NDApIGFuc2ktWDktNjIoMTAwNDUpIGN1cnZlcygzKQorIC8vICAgcHJpbWUoMSkgNyB9 CitAQCAtMzIzLDcgKzMyMCw2IEBAIGZ1bmMgZ2V0UHVibGljS2V5QWxnb3JpdGhtRnJvbU9JRChv aWQgYXMKKyAvLworIC8vIE5COiBzZWNwMjU2cjEgaXMgZXF1aXZhbGVudCB0byBwcmltZTI1NnYx CisgdmFyICgKKy0Jb2lkTmFtZWRDdXJ2ZVAyMjQgPSBhc24xLk9iamVjdElkZW50aWZpZXJ7MSwg MywgMTMyLCAwLCAzM30KKyAJb2lkTmFtZWRDdXJ2ZVAyNTYgPSBhc24xLk9iamVjdElkZW50aWZp ZXJ7MSwgMiwgODQwLCAxMDA0NSwgMywgMSwgN30KKyAJb2lkTmFtZWRDdXJ2ZVAzODQgPSBhc24x Lk9iamVjdElkZW50aWZpZXJ7MSwgMywgMTMyLCAwLCAzNH0KKyAJb2lkTmFtZWRDdXJ2ZVA1MjEg PSBhc24xLk9iamVjdElkZW50aWZpZXJ7MSwgMywgMTMyLCAwLCAzNX0KK0BAIC0zMzEsOCArMzI3 LDYgQEAgdmFyICgKKyAKKyBmdW5jIG5hbWVkQ3VydmVGcm9tT0lEKG9pZCBhc24xLk9iamVjdElk ZW50aWZpZXIpIGVsbGlwdGljLkN1cnZlIHsKKyAJc3dpdGNoIHsKKy0JY2FzZSBvaWQuRXF1YWwo b2lkTmFtZWRDdXJ2ZVAyMjQpOgorLQkJcmV0dXJuIGVsbGlwdGljLlAyMjQoKQorIAljYXNlIG9p ZC5FcXVhbChvaWROYW1lZEN1cnZlUDI1Nik6CisgCQlyZXR1cm4gZWxsaXB0aWMuUDI1NigpCisg CWNhc2Ugb2lkLkVxdWFsKG9pZE5hbWVkQ3VydmVQMzg0KToKK0BAIC0zNDUsOCArMzM5LDYgQEAg ZnVuYyBuYW1lZEN1cnZlRnJvbU9JRChvaWQgYXNuMS5PYmplY3RJZAorIAorIGZ1bmMgb2lkRnJv bU5hbWVkQ3VydmUoY3VydmUgZWxsaXB0aWMuQ3VydmUpIChhc24xLk9iamVjdElkZW50aWZpZXIs IGJvb2wpIHsKKyAJc3dpdGNoIGN1cnZlIHsKKy0JY2FzZSBlbGxpcHRpYy5QMjI0KCk6CistCQly ZXR1cm4gb2lkTmFtZWRDdXJ2ZVAyMjQsIHRydWUKKyAJY2FzZSBlbGxpcHRpYy5QMjU2KCk6Cisg CQlyZXR1cm4gb2lkTmFtZWRDdXJ2ZVAyNTYsIHRydWUKKyAJY2FzZSBlbGxpcHRpYy5QMzg0KCk6 CitAQCAtMTQ2Niw3ICsxNDU4LDcgQEAgZnVuYyBzaWduaW5nUGFyYW1zRm9yUHVibGljS2V5KHB1 YiBpbnRlcgorIAkJcHViVHlwZSA9IEVDRFNBCisgCisgCQlzd2l0Y2ggcHViLkN1cnZlIHsKKy0J CWNhc2UgZWxsaXB0aWMuUDIyNCgpLCBlbGxpcHRpYy5QMjU2KCk6CisrCQljYXNlIGVsbGlwdGlj LlAyNTYoKToKKyAJCQloYXNoRnVuYyA9IGNyeXB0by5TSEEyNTYKKyAJCQlzaWdBbGdvLkFsZ29y aXRobSA9IG9pZFNpZ25hdHVyZUVDRFNBV2l0aFNIQTI1NgorIAkJY2FzZSBlbGxpcHRpYy5QMzg0 KCk6CistLS0gbGliZ28vZ28vY3J5cHRvL2VsbGlwdGljL3AyMjQuZ28uamoJMjAxMi0xMS0xNSAx ODoyNjo1Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBsaWJnby9nby9jcnlwdG8vZWxsaXB0aWMvcDIy NC5nbwkyMDE0LTAzLTA1IDE1OjMwOjAxLjE4OTQzMDg0MiArMDEwMAorQEAgLTEsNzY1ICswLDAg QEAKKy0vLyBDb3B5cmlnaHQgMjAxMiBUaGUgR28gQXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2 ZWQuCistLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5 bGUKKy0vLyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCist CistcGFja2FnZSBlbGxpcHRpYworLQorLS8vIFRoaXMgaXMgYSBjb25zdGFudC10aW1lLCAzMi1i aXQgaW1wbGVtZW50YXRpb24gb2YgUDIyNC4gU2VlIEZJUFMgMTg2LTMsCistLy8gc2VjdGlvbiBE LjIuMi4KKy0vLworLS8vIFNlZSBodHRwOi8vd3d3LmltcGVyaWFsdmlvbGV0Lm9yZy8yMDEwLzEy LzA0L2VjYy5odG1sIChbMV0pIGZvciBiYWNrZ3JvdW5kLgorLQorLWltcG9ydCAoCistCSJtYXRo L2JpZyIKKy0pCistCistdmFyIHAyMjQgcDIyNEN1cnZlCistCistdHlwZSBwMjI0Q3VydmUgc3Ry dWN0IHsKKy0JKkN1cnZlUGFyYW1zCistCWd4LCBneSwgYiBwMjI0RmllbGRFbGVtZW50CistfQor LQorLWZ1bmMgaW5pdFAyMjQoKSB7CistCS8vIFNlZSBGSVBTIDE4Ni0zLCBzZWN0aW9uIEQuMi4y CistCXAyMjQuQ3VydmVQYXJhbXMgPSAmQ3VydmVQYXJhbXN7TmFtZTogIlAtMjI0In0KKy0JcDIy NC5QLCBfID0gbmV3KGJpZy5JbnQpLlNldFN0cmluZygiMjY5NTk5NDY2NjcxNTA2Mzk3OTQ2Njcw MTUwODcwMTk2MzA2NzM1NTc5MTYyNjAwMjYzMDgxNDM1MTAwNjYyOTg4ODEiLCAxMCkKKy0JcDIy NC5OLCBfID0gbmV3KGJpZy5JbnQpLlNldFN0cmluZygiMjY5NTk5NDY2NjcxNTA2Mzk3OTQ2Njcw MTUwODcwMTk2MjU5NDA0NTc4MDc3MTQ0MjQzOTE3MjE2ODI3MjIzNjgwNjEiLCAxMCkKKy0JcDIy NC5CLCBfID0gbmV3KGJpZy5JbnQpLlNldFN0cmluZygiYjQwNTBhODUwYzA0YjNhYmY1NDEzMjU2 NTA0NGIwYjdkN2JmZDhiYTI3MGIzOTQzMjM1NWZmYjQiLCAxNikKKy0JcDIyNC5HeCwgXyA9IG5l dyhiaWcuSW50KS5TZXRTdHJpbmcoImI3MGUwY2JkNmJiNGJmN2YzMjEzOTBiOTRhMDNjMWQzNTZj MjExMjIzNDMyODBkNjExNWMxZDIxIiwgMTYpCistCXAyMjQuR3ksIF8gPSBuZXcoYmlnLkludCku U2V0U3RyaW5nKCJiZDM3NjM4OGI1ZjcyM2ZiNGMyMmRmZTZjZDQzNzVhMDVhMDc0NzY0NDRkNTgx OTk4NTAwN2UzNCIsIDE2KQorLQlwMjI0LkJpdFNpemUgPSAyMjQKKy0KKy0JcDIyNEZyb21CaWco JnAyMjQuZ3gsIHAyMjQuR3gpCistCXAyMjRGcm9tQmlnKCZwMjI0Lmd5LCBwMjI0Lkd5KQorLQlw MjI0RnJvbUJpZygmcDIyNC5iLCBwMjI0LkIpCistfQorLQorLS8vIFAyMjQgcmV0dXJucyBhIEN1 cnZlIHdoaWNoIGltcGxlbWVudHMgUC0yMjQgKHNlZSBGSVBTIDE4Ni0zLCBzZWN0aW9uIEQuMi4y KQorLWZ1bmMgUDIyNCgpIEN1cnZlIHsKKy0JaW5pdG9uY2UuRG8oaW5pdEFsbCkKKy0JcmV0dXJu IHAyMjQKKy19CistCistZnVuYyAoY3VydmUgcDIyNEN1cnZlKSBQYXJhbXMoKSAqQ3VydmVQYXJh bXMgeworLQlyZXR1cm4gY3VydmUuQ3VydmVQYXJhbXMKKy19CistCistZnVuYyAoY3VydmUgcDIy NEN1cnZlKSBJc09uQ3VydmUoYmlnWCwgYmlnWSAqYmlnLkludCkgYm9vbCB7CistCXZhciB4LCB5 IHAyMjRGaWVsZEVsZW1lbnQKKy0JcDIyNEZyb21CaWcoJngsIGJpZ1gpCistCXAyMjRGcm9tQmln KCZ5LCBiaWdZKQorLQorLQkvLyB5wrIgPSB4wrMgLSAzeCArIGIKKy0JdmFyIHRtcCBwMjI0TGFy Z2VGaWVsZEVsZW1lbnQKKy0JdmFyIHgzIHAyMjRGaWVsZEVsZW1lbnQKKy0JcDIyNFNxdWFyZSgm eDMsICZ4LCAmdG1wKQorLQlwMjI0TXVsKCZ4MywgJngzLCAmeCwgJnRtcCkKKy0KKy0JZm9yIGkg Oj0gMDsgaSA8IDg7IGkrKyB7CistCQl4W2ldICo9IDMKKy0JfQorLQlwMjI0U3ViKCZ4MywgJngz LCAmeCkKKy0JcDIyNFJlZHVjZSgmeDMpCistCXAyMjRBZGQoJngzLCAmeDMsICZjdXJ2ZS5iKQor LQlwMjI0Q29udHJhY3QoJngzLCAmeDMpCistCistCXAyMjRTcXVhcmUoJnksICZ5LCAmdG1wKQor LQlwMjI0Q29udHJhY3QoJnksICZ5KQorLQorLQlmb3IgaSA6PSAwOyBpIDwgODsgaSsrIHsKKy0J CWlmIHlbaV0gIT0geDNbaV0geworLQkJCXJldHVybiBmYWxzZQorLQkJfQorLQl9CistCXJldHVy biB0cnVlCistfQorLQorLWZ1bmMgKHAyMjRDdXJ2ZSkgQWRkKGJpZ1gxLCBiaWdZMSwgYmlnWDIs IGJpZ1kyICpiaWcuSW50KSAoeCwgeSAqYmlnLkludCkgeworLQl2YXIgeDEsIHkxLCB6MSwgeDIs IHkyLCB6MiwgeDMsIHkzLCB6MyBwMjI0RmllbGRFbGVtZW50CistCistCXAyMjRGcm9tQmlnKCZ4 MSwgYmlnWDEpCistCXAyMjRGcm9tQmlnKCZ5MSwgYmlnWTEpCistCWlmIGJpZ1gxLlNpZ24oKSAh PSAwIHx8IGJpZ1kxLlNpZ24oKSAhPSAwIHsKKy0JCXoxWzBdID0gMQorLQl9CistCXAyMjRGcm9t QmlnKCZ4MiwgYmlnWDIpCistCXAyMjRGcm9tQmlnKCZ5MiwgYmlnWTIpCistCWlmIGJpZ1gyLlNp Z24oKSAhPSAwIHx8IGJpZ1kyLlNpZ24oKSAhPSAwIHsKKy0JCXoyWzBdID0gMQorLQl9CistCist CXAyMjRBZGRKYWNvYmlhbigmeDMsICZ5MywgJnozLCAmeDEsICZ5MSwgJnoxLCAmeDIsICZ5Miwg JnoyKQorLQlyZXR1cm4gcDIyNFRvQWZmaW5lKCZ4MywgJnkzLCAmejMpCistfQorLQorLWZ1bmMg KHAyMjRDdXJ2ZSkgRG91YmxlKGJpZ1gxLCBiaWdZMSAqYmlnLkludCkgKHgsIHkgKmJpZy5JbnQp IHsKKy0JdmFyIHgxLCB5MSwgejEsIHgyLCB5MiwgejIgcDIyNEZpZWxkRWxlbWVudAorLQorLQlw MjI0RnJvbUJpZygmeDEsIGJpZ1gxKQorLQlwMjI0RnJvbUJpZygmeTEsIGJpZ1kxKQorLQl6MVsw XSA9IDEKKy0KKy0JcDIyNERvdWJsZUphY29iaWFuKCZ4MiwgJnkyLCAmejIsICZ4MSwgJnkxLCAm ejEpCistCXJldHVybiBwMjI0VG9BZmZpbmUoJngyLCAmeTIsICZ6MikKKy19CistCistZnVuYyAo cDIyNEN1cnZlKSBTY2FsYXJNdWx0KGJpZ1gxLCBiaWdZMSAqYmlnLkludCwgc2NhbGFyIFtdYnl0 ZSkgKHgsIHkgKmJpZy5JbnQpIHsKKy0JdmFyIHgxLCB5MSwgejEsIHgyLCB5MiwgejIgcDIyNEZp ZWxkRWxlbWVudAorLQorLQlwMjI0RnJvbUJpZygmeDEsIGJpZ1gxKQorLQlwMjI0RnJvbUJpZygm eTEsIGJpZ1kxKQorLQl6MVswXSA9IDEKKy0KKy0JcDIyNFNjYWxhck11bHQoJngyLCAmeTIsICZ6 MiwgJngxLCAmeTEsICZ6MSwgc2NhbGFyKQorLQlyZXR1cm4gcDIyNFRvQWZmaW5lKCZ4MiwgJnky LCAmejIpCistfQorLQorLWZ1bmMgKGN1cnZlIHAyMjRDdXJ2ZSkgU2NhbGFyQmFzZU11bHQoc2Nh bGFyIFtdYnl0ZSkgKHgsIHkgKmJpZy5JbnQpIHsKKy0JdmFyIHoxLCB4MiwgeTIsIHoyIHAyMjRG aWVsZEVsZW1lbnQKKy0KKy0JejFbMF0gPSAxCistCXAyMjRTY2FsYXJNdWx0KCZ4MiwgJnkyLCAm ejIsICZjdXJ2ZS5neCwgJmN1cnZlLmd5LCAmejEsIHNjYWxhcikKKy0JcmV0dXJuIHAyMjRUb0Fm ZmluZSgmeDIsICZ5MiwgJnoyKQorLX0KKy0KKy0vLyBGaWVsZCBlbGVtZW50IGZ1bmN0aW9ucy4K Ky0vLworLS8vIFRoZSBmaWVsZCB0aGF0IHdlJ3JlIGRlYWxpbmcgd2l0aCBpcyDihKQvcOKEpCB3 aGVyZSBwID0gMioqMjI0IC0gMioqOTYgKyAxLgorLS8vCistLy8gRmllbGQgZWxlbWVudHMgYXJl IHJlcHJlc2VudGVkIGJ5IGEgRmllbGRFbGVtZW50LCB3aGljaCBpcyBhIHR5cGVkZWYgdG8gYW4K Ky0vLyBhcnJheSBvZiA4IHVpbnQzMidzLiBUaGUgdmFsdWUgb2YgYSBGaWVsZEVsZW1lbnQsIGEs IGlzOgorLS8vICAgYVswXSArIDIqKjI4wrdhWzFdICsgMioqNTbCt2FbMV0gKyAuLi4gKyAyKiox OTbCt2FbN10KKy0vLworLS8vIFVzaW5nIDI4LWJpdCBsaW1icyBtZWFucyB0aGF0IHRoZXJlJ3Mg b25seSA0IGJpdHMgb2YgaGVhZHJvb20sIHdoaWNoIGlzIGxlc3MKKy0vLyB0aGFuIHdlIHdvdWxk IHJlYWxseSBsaWtlLiBCdXQgaXQgaGFzIHRoZSB1c2VmdWwgZmVhdHVyZSB0aGF0IHdlIGhpdCAy KioyMjQKKy0vLyBleGFjdGx5LCBtYWtpbmcgdGhlIHJlZmxlY3Rpb25zIGR1cmluZyBhIHJlZHVj ZSBtdWNoIG5pY2VyLgorLXR5cGUgcDIyNEZpZWxkRWxlbWVudCBbOF11aW50MzIKKy0KKy0vLyBw MjI0UCBpcyB0aGUgb3JkZXIgb2YgdGhlIGZpZWxkLCByZXByZXNlbnRlZCBhcyBhIHAyMjRGaWVs ZEVsZW1lbnQuCistdmFyIHAyMjRQID0gWzhddWludDMyezEsIDAsIDAsIDB4ZmZmZjAwMCwgMHhm ZmZmZmZmLCAweGZmZmZmZmYsIDB4ZmZmZmZmZiwgMHhmZmZmZmZmfQorLQorLS8vIHAyMjRJc1pl cm8gcmV0dXJucyAxIGlmIGEgPT0gMCBtb2QgcCBhbmQgMCBvdGhlcndpc2UuCistLy8KKy0vLyBh W2ldIDwgMioqMjkKKy1mdW5jIHAyMjRJc1plcm8oYSAqcDIyNEZpZWxkRWxlbWVudCkgdWludDMy IHsKKy0JLy8gU2luY2UgYSBwMjI0RmllbGRFbGVtZW50IGNvbnRhaW5zIDIyNCBiaXRzIHRoZXJl IGFyZSB0d28gcG9zc2libGUKKy0JLy8gcmVwcmVzZW50YXRpb25zIG9mIDA6IDAgYW5kIHAuCist CXZhciBtaW5pbWFsIHAyMjRGaWVsZEVsZW1lbnQKKy0JcDIyNENvbnRyYWN0KCZtaW5pbWFsLCBh KQorLQorLQl2YXIgaXNaZXJvLCBpc1AgdWludDMyCistCWZvciBpLCB2IDo9IHJhbmdlIG1pbmlt YWwgeworLQkJaXNaZXJvIHw9IHYKKy0JCWlzUCB8PSB2IC0gcDIyNFBbaV0KKy0JfQorLQorLQkv LyBJZiBlaXRoZXIgaXNaZXJvIG9yIGlzUCBpcyAwLCB0aGVuIHdlIHNob3VsZCByZXR1cm4gMS4K Ky0JaXNaZXJvIHw9IGlzWmVybyA+PiAxNgorLQlpc1plcm8gfD0gaXNaZXJvID4+IDgKKy0JaXNa ZXJvIHw9IGlzWmVybyA+PiA0CistCWlzWmVybyB8PSBpc1plcm8gPj4gMgorLQlpc1plcm8gfD0g aXNaZXJvID4+IDEKKy0KKy0JaXNQIHw9IGlzUCA+PiAxNgorLQlpc1AgfD0gaXNQID4+IDgKKy0J aXNQIHw9IGlzUCA+PiA0CistCWlzUCB8PSBpc1AgPj4gMgorLQlpc1AgfD0gaXNQID4+IDEKKy0K Ky0JLy8gRm9yIGlzWmVybyBhbmQgaXNQLCB0aGUgTFNCIGlzIDAgaWZmIGFsbCB0aGUgYml0cyBh cmUgemVyby4KKy0JcmVzdWx0IDo9IGlzWmVybyAmIGlzUAorLQlyZXN1bHQgPSAoXnJlc3VsdCkg JiAxCistCistCXJldHVybiByZXN1bHQKKy19CistCistLy8gcDIyNEFkZCBjb21wdXRlcyAqb3V0 ID0gYStiCistLy8KKy0vLyBhW2ldICsgYltpXSA8IDIqKjMyCistZnVuYyBwMjI0QWRkKG91dCwg YSwgYiAqcDIyNEZpZWxkRWxlbWVudCkgeworLQlmb3IgaSA6PSAwOyBpIDwgODsgaSsrIHsKKy0J CW91dFtpXSA9IGFbaV0gKyBiW2ldCistCX0KKy19CistCistY29uc3QgdHdvMzFwMyA9IDE8PDMx ICsgMTw8MworLWNvbnN0IHR3bzMxbTMgPSAxPDwzMSAtIDE8PDMKKy1jb25zdCB0d28zMW0xNW0z ID0gMTw8MzEgLSAxPDwxNSAtIDE8PDMKKy0KKy0vLyBwMjI0WmVyb01vZFAzMSBpcyAwIG1vZCBw IHdoZXJlIGJpdCAzMSBpcyBzZXQgaW4gYWxsIGxpbWJzIHNvIHRoYXQgd2UgY2FuCistLy8gc3Vi dHJhY3Qgc21hbGxlciBhbW91bnRzIHdpdGhvdXQgdW5kZXJmbG93LiBTZWUgdGhlIHNlY3Rpb24g IlN1YnRyYWN0aW9uIiBpbgorLS8vIFsxXSBmb3IgcmVhc29uaW5nLgorLXZhciBwMjI0WmVyb01v ZFAzMSA9IFtddWludDMye3R3bzMxcDMsIHR3bzMxbTMsIHR3bzMxbTMsIHR3bzMxbTE1bTMsIHR3 bzMxbTMsIHR3bzMxbTMsIHR3bzMxbTMsIHR3bzMxbTN9CistCistLy8gcDIyNFN1YiBjb21wdXRl cyAqb3V0ID0gYS1iCistLy8KKy0vLyBhW2ldLCBiW2ldIDwgMioqMzAKKy0vLyBvdXRbaV0gPCAy KiozMgorLWZ1bmMgcDIyNFN1YihvdXQsIGEsIGIgKnAyMjRGaWVsZEVsZW1lbnQpIHsKKy0JZm9y IGkgOj0gMDsgaSA8IDg7IGkrKyB7CistCQlvdXRbaV0gPSBhW2ldICsgcDIyNFplcm9Nb2RQMzFb aV0gLSBiW2ldCistCX0KKy19CistCistLy8gTGFyZ2VGaWVsZEVsZW1lbnQgYWxzbyByZXByZXNl bnRzIGFuIGVsZW1lbnQgb2YgdGhlIGZpZWxkLiBUaGUgbGltYnMgYXJlCistLy8gc3RpbGwgc3Bh Y2VkIDI4LWJpdHMgYXBhcnQgYW5kIGluIGxpdHRsZS1lbmRpYW4gb3JkZXIuIFNvIHRoZSBsaW1i cyBhcmUgYXQKKy0vLyAwLCAyOCwgNTYsIC4uLiwgMzkyIGJpdHMsIGVhY2ggNjQtYml0cyB3aWRl LgorLXR5cGUgcDIyNExhcmdlRmllbGRFbGVtZW50IFsxNV11aW50NjQKKy0KKy1jb25zdCB0d282 M3AzNSA9IDE8PDYzICsgMTw8MzUKKy1jb25zdCB0d282M20zNSA9IDE8PDYzIC0gMTw8MzUKKy1j b25zdCB0d282M20zNW0xOSA9IDE8PDYzIC0gMTw8MzUgLSAxPDwxOQorLQorLS8vIHAyMjRaZXJv TW9kUDYzIGlzIDAgbW9kIHAgd2hlcmUgYml0IDYzIGlzIHNldCBpbiBhbGwgbGltYnMuIFNlZSB0 aGUgc2VjdGlvbgorLS8vICJTdWJ0cmFjdGlvbiIgaW4gWzFdIGZvciB3aHkuCistdmFyIHAyMjRa ZXJvTW9kUDYzID0gWzhddWludDY0e3R3bzYzcDM1LCB0d282M20zNSwgdHdvNjNtMzUsIHR3bzYz bTM1LCB0d282M20zNW0xOSwgdHdvNjNtMzUsIHR3bzYzbTM1LCB0d282M20zNX0KKy0KKy1jb25z dCBib3R0b20xMkJpdHMgPSAweGZmZgorLWNvbnN0IGJvdHRvbTI4Qml0cyA9IDB4ZmZmZmZmZgor LQorLS8vIHAyMjRNdWwgY29tcHV0ZXMgKm91dCA9IGEqYgorLS8vCistLy8gYVtpXSA8IDIqKjI5 LCBiW2ldIDwgMioqMzAgKG9yIHZpY2UgdmVyc2EpCistLy8gb3V0W2ldIDwgMioqMjkKKy1mdW5j IHAyMjRNdWwob3V0LCBhLCBiICpwMjI0RmllbGRFbGVtZW50LCB0bXAgKnAyMjRMYXJnZUZpZWxk RWxlbWVudCkgeworLQlmb3IgaSA6PSAwOyBpIDwgMTU7IGkrKyB7CistCQl0bXBbaV0gPSAwCist CX0KKy0KKy0JZm9yIGkgOj0gMDsgaSA8IDg7IGkrKyB7CistCQlmb3IgaiA6PSAwOyBqIDwgODsg aisrIHsKKy0JCQl0bXBbaStqXSArPSB1aW50NjQoYVtpXSkgKiB1aW50NjQoYltqXSkKKy0JCX0K Ky0JfQorLQorLQlwMjI0UmVkdWNlTGFyZ2Uob3V0LCB0bXApCistfQorLQorLS8vIFNxdWFyZSBj b21wdXRlcyAqb3V0ID0gYSphCistLy8KKy0vLyBhW2ldIDwgMioqMjkKKy0vLyBvdXRbaV0gPCAy KioyOQorLWZ1bmMgcDIyNFNxdWFyZShvdXQsIGEgKnAyMjRGaWVsZEVsZW1lbnQsIHRtcCAqcDIy NExhcmdlRmllbGRFbGVtZW50KSB7CistCWZvciBpIDo9IDA7IGkgPCAxNTsgaSsrIHsKKy0JCXRt cFtpXSA9IDAKKy0JfQorLQorLQlmb3IgaSA6PSAwOyBpIDwgODsgaSsrIHsKKy0JCWZvciBqIDo9 IDA7IGogPD0gaTsgaisrIHsKKy0JCQlyIDo9IHVpbnQ2NChhW2ldKSAqIHVpbnQ2NChhW2pdKQor LQkJCWlmIGkgPT0gaiB7CistCQkJCXRtcFtpK2pdICs9IHIKKy0JCQl9IGVsc2UgeworLQkJCQl0 bXBbaStqXSArPSByIDw8IDEKKy0JCQl9CistCQl9CistCX0KKy0KKy0JcDIyNFJlZHVjZUxhcmdl KG91dCwgdG1wKQorLX0KKy0KKy0vLyBSZWR1Y2VMYXJnZSBjb252ZXJ0cyBhIHAyMjRMYXJnZUZp ZWxkRWxlbWVudCB0byBhIHAyMjRGaWVsZEVsZW1lbnQuCistLy8KKy0vLyBpbltpXSA8IDIqKjYy CistZnVuYyBwMjI0UmVkdWNlTGFyZ2Uob3V0ICpwMjI0RmllbGRFbGVtZW50LCBpbiAqcDIyNExh cmdlRmllbGRFbGVtZW50KSB7CistCWZvciBpIDo9IDA7IGkgPCA4OyBpKysgeworLQkJaW5baV0g Kz0gcDIyNFplcm9Nb2RQNjNbaV0KKy0JfQorLQorLQkvLyBFbGltaW5hdGUgdGhlIGNvZWZmaWNp ZW50cyBhdCAyKioyMjQgYW5kIGdyZWF0ZXIuCistCWZvciBpIDo9IDE0OyBpID49IDg7IGktLSB7 CistCQlpbltpLThdIC09IGluW2ldCistCQlpbltpLTVdICs9IChpbltpXSAmIDB4ZmZmZikgPDwg MTIKKy0JCWluW2ktNF0gKz0gaW5baV0gPj4gMTYKKy0JfQorLQlpbls4XSA9IDAKKy0JLy8gaW5b MC4uOF0gPCAyKio2NAorLQorLQkvLyBBcyB0aGUgdmFsdWVzIGJlY29tZSBzbWFsbCBlbm91Z2gs IHdlIHN0YXJ0IHRvIHN0b3JlIHRoZW0gaW4gfG91dHwKKy0JLy8gYW5kIHVzZSAzMi1iaXQgb3Bl cmF0aW9ucy4KKy0JZm9yIGkgOj0gMTsgaSA8IDg7IGkrKyB7CistCQlpbltpKzFdICs9IGluW2ld ID4+IDI4CistCQlvdXRbaV0gPSB1aW50MzIoaW5baV0gJiBib3R0b20yOEJpdHMpCistCX0KKy0J aW5bMF0gLT0gaW5bOF0KKy0Jb3V0WzNdICs9IHVpbnQzMihpbls4XSYweGZmZmYpIDw8IDEyCist CW91dFs0XSArPSB1aW50MzIoaW5bOF0gPj4gMTYpCistCS8vIGluWzBdIDwgMioqNjQKKy0JLy8g b3V0WzNdIDwgMioqMjkKKy0JLy8gb3V0WzRdIDwgMioqMjkKKy0JLy8gb3V0WzEsMiw1Li43XSA8 IDIqKjI4CistCistCW91dFswXSA9IHVpbnQzMihpblswXSAmIGJvdHRvbTI4Qml0cykKKy0Jb3V0 WzFdICs9IHVpbnQzMigoaW5bMF0gPj4gMjgpICYgYm90dG9tMjhCaXRzKQorLQlvdXRbMl0gKz0g dWludDMyKGluWzBdID4+IDU2KQorLQkvLyBvdXRbMF0gPCAyKioyOAorLQkvLyBvdXRbMS4uNF0g PCAyKioyOQorLQkvLyBvdXRbNS4uN10gPCAyKioyOAorLX0KKy0KKy0vLyBSZWR1Y2UgcmVkdWNl cyB0aGUgY29lZmZpY2llbnRzIG9mIGEgdG8gc21hbGxlciBib3VuZHMuCistLy8KKy0vLyBPbiBl bnRyeTogYVtpXSA8IDIqKjMxICsgMioqMzAKKy0vLyBPbiBleGl0OiBhW2ldIDwgMioqMjkKKy1m dW5jIHAyMjRSZWR1Y2UoYSAqcDIyNEZpZWxkRWxlbWVudCkgeworLQlmb3IgaSA6PSAwOyBpIDwg NzsgaSsrIHsKKy0JCWFbaSsxXSArPSBhW2ldID4+IDI4CistCQlhW2ldICY9IGJvdHRvbTI4Qml0 cworLQl9CistCXRvcCA6PSBhWzddID4+IDI4CistCWFbN10gJj0gYm90dG9tMjhCaXRzCistCist CS8vIHRvcCA8IDIqKjQKKy0JbWFzayA6PSB0b3AKKy0JbWFzayB8PSBtYXNrID4+IDIKKy0JbWFz ayB8PSBtYXNrID4+IDEKKy0JbWFzayA8PD0gMzEKKy0JbWFzayA9IHVpbnQzMihpbnQzMihtYXNr KSA+PiAzMSkKKy0JLy8gTWFzayBpcyBhbGwgb25lcyBpZiB0b3AgIT0gMCwgYWxsIHplcm8gb3Ro ZXJ3aXNlCistCistCWFbMF0gLT0gdG9wCistCWFbM10gKz0gdG9wIDw8IDEyCistCistCS8vIFdl IG1heSBoYXZlIGp1c3QgbWFkZSBhWzBdIG5lZ2F0aXZlIGJ1dCwgaWYgd2UgZGlkLCB0aGVuIHdl IG11c3QKKy0JLy8gaGF2ZSBhZGRlZCBzb21ldGhpbmcgdG8gYVszXSwgdGhpcyBpdCdzID4gMioq MTIuIFRoZXJlZm9yZSB3ZSBjYW4KKy0JLy8gY2FycnkgZG93biB0byBhWzBdLgorLQlhWzNdIC09 IDEgJiBtYXNrCistCWFbMl0gKz0gbWFzayAmICgxPDwyOCAtIDEpCistCWFbMV0gKz0gbWFzayAm ICgxPDwyOCAtIDEpCistCWFbMF0gKz0gbWFzayAmICgxIDw8IDI4KQorLX0KKy0KKy0vLyBwMjI0 SW52ZXJ0IGNhbGN1bGF0ZXMgKm91dCA9IGluKiotMSBieSBjb21wdXRpbmcgaW4qKigyKioyMjQg LSAyKio5NiAtIDEpLAorLS8vIGkuZS4gRmVybWF0J3MgbGl0dGxlIHRoZW9yZW0uCistZnVuYyBw MjI0SW52ZXJ0KG91dCwgaW4gKnAyMjRGaWVsZEVsZW1lbnQpIHsKKy0JdmFyIGYxLCBmMiwgZjMs IGY0IHAyMjRGaWVsZEVsZW1lbnQKKy0JdmFyIGMgcDIyNExhcmdlRmllbGRFbGVtZW50CistCist CXAyMjRTcXVhcmUoJmYxLCBpbiwgJmMpICAgIC8vIDIKKy0JcDIyNE11bCgmZjEsICZmMSwgaW4s ICZjKSAgLy8gMioqMiAtIDEKKy0JcDIyNFNxdWFyZSgmZjEsICZmMSwgJmMpICAgLy8gMioqMyAt IDIKKy0JcDIyNE11bCgmZjEsICZmMSwgaW4sICZjKSAgLy8gMioqMyAtIDEKKy0JcDIyNFNxdWFy ZSgmZjIsICZmMSwgJmMpICAgLy8gMioqNCAtIDIKKy0JcDIyNFNxdWFyZSgmZjIsICZmMiwgJmMp ICAgLy8gMioqNSAtIDQKKy0JcDIyNFNxdWFyZSgmZjIsICZmMiwgJmMpICAgLy8gMioqNiAtIDgK Ky0JcDIyNE11bCgmZjEsICZmMSwgJmYyLCAmYykgLy8gMioqNiAtIDEKKy0JcDIyNFNxdWFyZSgm ZjIsICZmMSwgJmMpICAgLy8gMioqNyAtIDIKKy0JZm9yIGkgOj0gMDsgaSA8IDU7IGkrKyB7ICAg Ly8gMioqMTIgLSAyKio2CistCQlwMjI0U3F1YXJlKCZmMiwgJmYyLCAmYykKKy0JfQorLQlwMjI0 TXVsKCZmMiwgJmYyLCAmZjEsICZjKSAvLyAyKioxMiAtIDEKKy0JcDIyNFNxdWFyZSgmZjMsICZm MiwgJmMpICAgLy8gMioqMTMgLSAyCistCWZvciBpIDo9IDA7IGkgPCAxMTsgaSsrIHsgIC8vIDIq KjI0IC0gMioqMTIKKy0JCXAyMjRTcXVhcmUoJmYzLCAmZjMsICZjKQorLQl9CistCXAyMjRNdWwo JmYyLCAmZjMsICZmMiwgJmMpIC8vIDIqKjI0IC0gMQorLQlwMjI0U3F1YXJlKCZmMywgJmYyLCAm YykgICAvLyAyKioyNSAtIDIKKy0JZm9yIGkgOj0gMDsgaSA8IDIzOyBpKysgeyAgLy8gMioqNDgg LSAyKioyNAorLQkJcDIyNFNxdWFyZSgmZjMsICZmMywgJmMpCistCX0KKy0JcDIyNE11bCgmZjMs ICZmMywgJmYyLCAmYykgLy8gMioqNDggLSAxCistCXAyMjRTcXVhcmUoJmY0LCAmZjMsICZjKSAg IC8vIDIqKjQ5IC0gMgorLQlmb3IgaSA6PSAwOyBpIDwgNDc7IGkrKyB7ICAvLyAyKio5NiAtIDIq KjQ4CistCQlwMjI0U3F1YXJlKCZmNCwgJmY0LCAmYykKKy0JfQorLQlwMjI0TXVsKCZmMywgJmYz LCAmZjQsICZjKSAvLyAyKio5NiAtIDEKKy0JcDIyNFNxdWFyZSgmZjQsICZmMywgJmMpICAgLy8g MioqOTcgLSAyCistCWZvciBpIDo9IDA7IGkgPCAyMzsgaSsrIHsgIC8vIDIqKjEyMCAtIDIqKjI0 CistCQlwMjI0U3F1YXJlKCZmNCwgJmY0LCAmYykKKy0JfQorLQlwMjI0TXVsKCZmMiwgJmY0LCAm ZjIsICZjKSAvLyAyKioxMjAgLSAxCistCWZvciBpIDo9IDA7IGkgPCA2OyBpKysgeyAgIC8vIDIq KjEyNiAtIDIqKjYKKy0JCXAyMjRTcXVhcmUoJmYyLCAmZjIsICZjKQorLQl9CistCXAyMjRNdWwo JmYxLCAmZjEsICZmMiwgJmMpIC8vIDIqKjEyNiAtIDEKKy0JcDIyNFNxdWFyZSgmZjEsICZmMSwg JmMpICAgLy8gMioqMTI3IC0gMgorLQlwMjI0TXVsKCZmMSwgJmYxLCBpbiwgJmMpICAvLyAyKiox MjcgLSAxCistCWZvciBpIDo9IDA7IGkgPCA5NzsgaSsrIHsgIC8vIDIqKjIyNCAtIDIqKjk3Cist CQlwMjI0U3F1YXJlKCZmMSwgJmYxLCAmYykKKy0JfQorLQlwMjI0TXVsKG91dCwgJmYxLCAmZjMs ICZjKSAvLyAyKioyMjQgLSAyKio5NiAtIDEKKy19CistCistLy8gcDIyNENvbnRyYWN0IGNvbnZl cnRzIGEgRmllbGRFbGVtZW50IHRvIGl0cyB1bmlxdWUsIG1pbmltYWwgZm9ybS4KKy0vLworLS8v IE9uIGVudHJ5LCBpbltpXSA8IDIqKjI5CistLy8gT24gZXhpdCwgaW5baV0gPCAyKioyOAorLWZ1 bmMgcDIyNENvbnRyYWN0KG91dCwgaW4gKnAyMjRGaWVsZEVsZW1lbnQpIHsKKy0JY29weShvdXRb Ol0sIGluWzpdKQorLQorLQlmb3IgaSA6PSAwOyBpIDwgNzsgaSsrIHsKKy0JCW91dFtpKzFdICs9 IG91dFtpXSA+PiAyOAorLQkJb3V0W2ldICY9IGJvdHRvbTI4Qml0cworLQl9CistCXRvcCA6PSBv dXRbN10gPj4gMjgKKy0Jb3V0WzddICY9IGJvdHRvbTI4Qml0cworLQorLQlvdXRbMF0gLT0gdG9w CistCW91dFszXSArPSB0b3AgPDwgMTIKKy0KKy0JLy8gV2UgbWF5IGp1c3QgaGF2ZSBtYWRlIG91 dFtpXSBuZWdhdGl2ZS4gU28gd2UgY2FycnkgZG93bi4gSWYgd2UgbWFkZQorLQkvLyBvdXRbMF0g bmVnYXRpdmUgdGhlbiB3ZSBrbm93IHRoYXQgb3V0WzNdIGlzIHN1ZmZpY2llbnRseSBwb3NpdGl2 ZQorLQkvLyBiZWNhdXNlIHdlIGp1c3QgYWRkZWQgdG8gaXQuCistCWZvciBpIDo9IDA7IGkgPCAz OyBpKysgeworLQkJbWFzayA6PSB1aW50MzIoaW50MzIob3V0W2ldKSA+PiAzMSkKKy0JCW91dFtp XSArPSAoMSA8PCAyOCkgJiBtYXNrCistCQlvdXRbaSsxXSAtPSAxICYgbWFzaworLQl9CistCist CS8vIFdlIG1pZ2h0IGhhdmUgcHVzaGVkIG91dFszXSBvdmVyIDIqKjI4IHNvIHdlIHBlcmZvcm0g YW5vdGhlciwgcGFydGlhbCwKKy0JLy8gY2FycnkgY2hhaW4uCistCWZvciBpIDo9IDM7IGkgPCA3 OyBpKysgeworLQkJb3V0W2krMV0gKz0gb3V0W2ldID4+IDI4CistCQlvdXRbaV0gJj0gYm90dG9t MjhCaXRzCistCX0KKy0JdG9wID0gb3V0WzddID4+IDI4CistCW91dFs3XSAmPSBib3R0b20yOEJp dHMKKy0KKy0JLy8gRWxpbWluYXRlIHRvcCB3aGlsZSBtYWludGFpbmluZyB0aGUgc2FtZSB2YWx1 ZSBtb2QgcC4KKy0Jb3V0WzBdIC09IHRvcAorLQlvdXRbM10gKz0gdG9wIDw8IDEyCistCistCS8v IFRoZXJlIGFyZSB0d28gY2FzZXMgdG8gY29uc2lkZXIgZm9yIG91dFszXToKKy0JLy8gICAxKSBU aGUgZmlyc3QgdGltZSB0aGF0IHdlIGVsaW1pbmF0ZWQgdG9wLCB3ZSBkaWRuJ3QgcHVzaCBvdXRb M10gb3ZlcgorLQkvLyAgICAgIDIqKjI4LiBJbiB0aGlzIGNhc2UsIHRoZSBwYXJ0aWFsIGNhcnJ5 IGNoYWluIGRpZG4ndCBjaGFuZ2UgYW55IHZhbHVlcworLQkvLyAgICAgIGFuZCB0b3AgaXMgemVy by4KKy0JLy8gICAyKSBXZSBkaWQgcHVzaCBvdXRbM10gb3ZlciAyKioyOCB0aGUgZmlyc3QgdGlt ZSB0aGF0IHdlIGVsaW1pbmF0ZWQgdG9wLgorLQkvLyAgICAgIFRoZSBmaXJzdCB2YWx1ZSBvZiB0 b3Agd2FzIGluIFswLi4xNiksIHRoZXJlZm9yZSwgcHJpb3IgdG8gZWxpbWluYXRpbmcKKy0JLy8g ICAgICB0aGUgZmlyc3QgdG9wLCAweGZmZjEwMDAgPD0gb3V0WzNdIDw9IDB4ZmZmZmZmZi4gVGhl cmVmb3JlLCBhZnRlcgorLQkvLyAgICAgIG92ZXJmbG93aW5nIGFuZCBiZWluZyByZWR1Y2VkIGJ5 IHRoZSBzZWNvbmQgY2FycnkgY2hhaW4sIG91dFszXSA8PQorLQkvLyAgICAgIDB4ZjAwMC4gVGh1 cyBpdCBjYW5ub3QgaGF2ZSBvdmVyZmxvd2VkIHdoZW4gd2UgZWxpbWluYXRlZCB0b3AgZm9yIHRo ZQorLQkvLyAgICAgIHNlY29uZCB0aW1lLgorLQorLQkvLyBBZ2Fpbiwgd2UgbWF5IGp1c3QgaGF2 ZSBtYWRlIG91dFswXSBuZWdhdGl2ZSwgc28gZG8gdGhlIHNhbWUgY2FycnkgZG93bi4KKy0JLy8g QXMgYmVmb3JlLCBpZiB3ZSBtYWRlIG91dFswXSBuZWdhdGl2ZSB0aGVuIHdlIGtub3cgdGhhdCBv dXRbM10gaXMKKy0JLy8gc3VmZmljaWVudGx5IHBvc2l0aXZlLgorLQlmb3IgaSA6PSAwOyBpIDwg MzsgaSsrIHsKKy0JCW1hc2sgOj0gdWludDMyKGludDMyKG91dFtpXSkgPj4gMzEpCistCQlvdXRb aV0gKz0gKDEgPDwgMjgpICYgbWFzaworLQkJb3V0W2krMV0gLT0gMSAmIG1hc2sKKy0JfQorLQor LQkvLyBOb3cgd2Ugc2VlIGlmIHRoZSB2YWx1ZSBpcyA+PSBwIGFuZCwgaWYgc28sIHN1YnRyYWN0 IHAuCistCistCS8vIEZpcnN0IHdlIGJ1aWxkIGEgbWFzayBmcm9tIHRoZSB0b3AgZm91ciBsaW1i cywgd2hpY2ggbXVzdCBhbGwgYmUKKy0JLy8gZXF1YWwgdG8gYm90dG9tMjhCaXRzIGlmIHRoZSB3 aG9sZSB2YWx1ZSBpcyA+PSBwLiBJZiB0b3A0QWxsT25lcworLQkvLyBlbmRzIHVwIHdpdGggYW55 IHplcm8gYml0cyBpbiB0aGUgYm90dG9tIDI4IGJpdHMsIHRoZW4gdGhpcyB3YXNuJ3QKKy0JLy8g dHJ1ZS4KKy0JdG9wNEFsbE9uZXMgOj0gdWludDMyKDB4ZmZmZmZmZmYpCistCWZvciBpIDo9IDQ7 IGkgPCA4OyBpKysgeworLQkJdG9wNEFsbE9uZXMgJj0gb3V0W2ldCistCX0KKy0JdG9wNEFsbE9u ZXMgfD0gMHhmMDAwMDAwMAorLQkvLyBOb3cgd2UgcmVwbGljYXRlIGFueSB6ZXJvIGJpdHMgdG8g YWxsIHRoZSBiaXRzIGluIHRvcDRBbGxPbmVzLgorLQl0b3A0QWxsT25lcyAmPSB0b3A0QWxsT25l cyA+PiAxNgorLQl0b3A0QWxsT25lcyAmPSB0b3A0QWxsT25lcyA+PiA4CistCXRvcDRBbGxPbmVz ICY9IHRvcDRBbGxPbmVzID4+IDQKKy0JdG9wNEFsbE9uZXMgJj0gdG9wNEFsbE9uZXMgPj4gMgor LQl0b3A0QWxsT25lcyAmPSB0b3A0QWxsT25lcyA+PiAxCistCXRvcDRBbGxPbmVzID0gdWludDMy KGludDMyKHRvcDRBbGxPbmVzPDwzMSkgPj4gMzEpCistCistCS8vIE5vdyB3ZSB0ZXN0IHdoZXRo ZXIgdGhlIGJvdHRvbSB0aHJlZSBsaW1icyBhcmUgbm9uLXplcm8uCistCWJvdHRvbTNOb25aZXJv IDo9IG91dFswXSB8IG91dFsxXSB8IG91dFsyXQorLQlib3R0b20zTm9uWmVybyB8PSBib3R0b20z Tm9uWmVybyA+PiAxNgorLQlib3R0b20zTm9uWmVybyB8PSBib3R0b20zTm9uWmVybyA+PiA4Cist CWJvdHRvbTNOb25aZXJvIHw9IGJvdHRvbTNOb25aZXJvID4+IDQKKy0JYm90dG9tM05vblplcm8g fD0gYm90dG9tM05vblplcm8gPj4gMgorLQlib3R0b20zTm9uWmVybyB8PSBib3R0b20zTm9uWmVy byA+PiAxCistCWJvdHRvbTNOb25aZXJvID0gdWludDMyKGludDMyKGJvdHRvbTNOb25aZXJvPDwz MSkgPj4gMzEpCistCistCS8vIEV2ZXJ5dGhpbmcgZGVwZW5kcyBvbiB0aGUgdmFsdWUgb2Ygb3V0 WzNdLgorLQkvLyAgICBJZiBpdCdzID4gMHhmZmZmMDAwIGFuZCB0b3A0QWxsT25lcyAhPSAwIHRo ZW4gdGhlIHdob2xlIHZhbHVlIGlzID49IHAKKy0JLy8gICAgSWYgaXQncyA9IDB4ZmZmZjAwMCBh bmQgdG9wNEFsbE9uZXMgIT0gMCBhbmQgYm90dG9tM05vblplcm8gIT0gMCwKKy0JLy8gICAgICB0 aGVuIHRoZSB3aG9sZSB2YWx1ZSBpcyA+PSBwCistCS8vICAgIElmIGl0J3MgPCAweGZmZmYwMDAs IHRoZW4gdGhlIHdob2xlIHZhbHVlIGlzIDwgcAorLQluIDo9IG91dFszXSAtIDB4ZmZmZjAwMAor LQlvdXQzRXF1YWwgOj0gbgorLQlvdXQzRXF1YWwgfD0gb3V0M0VxdWFsID4+IDE2CistCW91dDNF cXVhbCB8PSBvdXQzRXF1YWwgPj4gOAorLQlvdXQzRXF1YWwgfD0gb3V0M0VxdWFsID4+IDQKKy0J b3V0M0VxdWFsIHw9IG91dDNFcXVhbCA+PiAyCistCW91dDNFcXVhbCB8PSBvdXQzRXF1YWwgPj4g MQorLQlvdXQzRXF1YWwgPSBedWludDMyKGludDMyKG91dDNFcXVhbDw8MzEpID4+IDMxKQorLQor LQkvLyBJZiBvdXRbM10gPiAweGZmZmYwMDAgdGhlbiBuJ3MgTVNCIHdpbGwgYmUgemVyby4KKy0J b3V0M0dUIDo9IF51aW50MzIoaW50MzIobikgPj4gMzEpCistCistCW1hc2sgOj0gdG9wNEFsbE9u ZXMgJiAoKG91dDNFcXVhbCAmIGJvdHRvbTNOb25aZXJvKSB8IG91dDNHVCkKKy0Jb3V0WzBdIC09 IDEgJiBtYXNrCistCW91dFszXSAtPSAweGZmZmYwMDAgJiBtYXNrCistCW91dFs0XSAtPSAweGZm ZmZmZmYgJiBtYXNrCistCW91dFs1XSAtPSAweGZmZmZmZmYgJiBtYXNrCistCW91dFs2XSAtPSAw eGZmZmZmZmYgJiBtYXNrCistCW91dFs3XSAtPSAweGZmZmZmZmYgJiBtYXNrCistfQorLQorLS8v IEdyb3VwIGVsZW1lbnQgZnVuY3Rpb25zLgorLS8vCistLy8gVGhlc2UgZnVuY3Rpb25zIGRlYWwg d2l0aCBncm91cCBlbGVtZW50cy4gVGhlIGdyb3VwIGlzIGFuIGVsbGlwdGljIGN1cnZlCistLy8g Z3JvdXAgd2l0aCBhID0gLTMgZGVmaW5lZCBpbiBGSVBTIDE4Ni0zLCBzZWN0aW9uIEQuMi4yLgor LQorLS8vIHAyMjRBZGRKYWNvYmlhbiBjb21wdXRlcyAqb3V0ID0gYStiIHdoZXJlIGEgIT0gYi4K Ky1mdW5jIHAyMjRBZGRKYWNvYmlhbih4MywgeTMsIHozLCB4MSwgeTEsIHoxLCB4MiwgeTIsIHoy ICpwMjI0RmllbGRFbGVtZW50KSB7CistCS8vIFNlZSBodHRwOi8vaHlwZXJlbGxpcHRpYy5vcmcv RUZEL2cxcC9hdXRvLXNob3J0dy1qYWNvYmlhbi0zLmh0bWwjYWRkaXRpb24tcDIyNEFkZC0yMDA3 LWJsCistCXZhciB6MXoxLCB6MnoyLCB1MSwgdTIsIHMxLCBzMiwgaCwgaSwgaiwgciwgdiBwMjI0 RmllbGRFbGVtZW50CistCXZhciBjIHAyMjRMYXJnZUZpZWxkRWxlbWVudAorLQorLQl6MUlzWmVy byA6PSBwMjI0SXNaZXJvKHoxKQorLQl6MklzWmVybyA6PSBwMjI0SXNaZXJvKHoyKQorLQorLQkv LyBaMVoxID0gWjHCsgorLQlwMjI0U3F1YXJlKCZ6MXoxLCB6MSwgJmMpCistCS8vIFoyWjIgPSBa MsKyCistCXAyMjRTcXVhcmUoJnoyejIsIHoyLCAmYykKKy0JLy8gVTEgPSBYMSpaMloyCistCXAy MjRNdWwoJnUxLCB4MSwgJnoyejIsICZjKQorLQkvLyBVMiA9IFgyKloxWjEKKy0JcDIyNE11bCgm dTIsIHgyLCAmejF6MSwgJmMpCistCS8vIFMxID0gWTEqWjIqWjJaMgorLQlwMjI0TXVsKCZzMSwg ejIsICZ6MnoyLCAmYykKKy0JcDIyNE11bCgmczEsIHkxLCAmczEsICZjKQorLQkvLyBTMiA9IFky KloxKloxWjEKKy0JcDIyNE11bCgmczIsIHoxLCAmejF6MSwgJmMpCistCXAyMjRNdWwoJnMyLCB5 MiwgJnMyLCAmYykKKy0JLy8gSCA9IFUyLVUxCistCXAyMjRTdWIoJmgsICZ1MiwgJnUxKQorLQlw MjI0UmVkdWNlKCZoKQorLQl4RXF1YWwgOj0gcDIyNElzWmVybygmaCkKKy0JLy8gSSA9ICgyKkgp wrIKKy0JZm9yIGogOj0gMDsgaiA8IDg7IGorKyB7CistCQlpW2pdID0gaFtqXSA8PCAxCistCX0K Ky0JcDIyNFJlZHVjZSgmaSkKKy0JcDIyNFNxdWFyZSgmaSwgJmksICZjKQorLQkvLyBKID0gSCpJ CistCXAyMjRNdWwoJmosICZoLCAmaSwgJmMpCistCS8vIHIgPSAyKihTMi1TMSkKKy0JcDIyNFN1 YigmciwgJnMyLCAmczEpCistCXAyMjRSZWR1Y2UoJnIpCistCXlFcXVhbCA6PSBwMjI0SXNaZXJv KCZyKQorLQlpZiB4RXF1YWwgPT0gMSAmJiB5RXF1YWwgPT0gMSAmJiB6MUlzWmVybyA9PSAwICYm IHoySXNaZXJvID09IDAgeworLQkJcDIyNERvdWJsZUphY29iaWFuKHgzLCB5MywgejMsIHgxLCB5 MSwgejEpCistCQlyZXR1cm4KKy0JfQorLQlmb3IgaSA6PSAwOyBpIDwgODsgaSsrIHsKKy0JCXJb aV0gPDw9IDEKKy0JfQorLQlwMjI0UmVkdWNlKCZyKQorLQkvLyBWID0gVTEqSQorLQlwMjI0TXVs KCZ2LCAmdTEsICZpLCAmYykKKy0JLy8gWjMgPSAoKFoxK1oyKcKyLVoxWjEtWjJaMikqSAorLQlw MjI0QWRkKCZ6MXoxLCAmejF6MSwgJnoyejIpCistCXAyMjRBZGQoJnoyejIsIHoxLCB6MikKKy0J cDIyNFJlZHVjZSgmejJ6MikKKy0JcDIyNFNxdWFyZSgmejJ6MiwgJnoyejIsICZjKQorLQlwMjI0 U3ViKHozLCAmejJ6MiwgJnoxejEpCistCXAyMjRSZWR1Y2UoejMpCistCXAyMjRNdWwoejMsIHoz LCAmaCwgJmMpCistCS8vIFgzID0gcsKyLUotMipWCistCWZvciBpIDo9IDA7IGkgPCA4OyBpKysg eworLQkJejF6MVtpXSA9IHZbaV0gPDwgMQorLQl9CistCXAyMjRBZGQoJnoxejEsICZqLCAmejF6 MSkKKy0JcDIyNFJlZHVjZSgmejF6MSkKKy0JcDIyNFNxdWFyZSh4MywgJnIsICZjKQorLQlwMjI0 U3ViKHgzLCB4MywgJnoxejEpCistCXAyMjRSZWR1Y2UoeDMpCistCS8vIFkzID0gciooVi1YMykt MipTMSpKCistCWZvciBpIDo9IDA7IGkgPCA4OyBpKysgeworLQkJczFbaV0gPDw9IDEKKy0JfQor LQlwMjI0TXVsKCZzMSwgJnMxLCAmaiwgJmMpCistCXAyMjRTdWIoJnoxejEsICZ2LCB4MykKKy0J cDIyNFJlZHVjZSgmejF6MSkKKy0JcDIyNE11bCgmejF6MSwgJnoxejEsICZyLCAmYykKKy0JcDIy NFN1Yih5MywgJnoxejEsICZzMSkKKy0JcDIyNFJlZHVjZSh5MykKKy0KKy0JcDIyNENvcHlDb25k aXRpb25hbCh4MywgeDIsIHoxSXNaZXJvKQorLQlwMjI0Q29weUNvbmRpdGlvbmFsKHgzLCB4MSwg ejJJc1plcm8pCistCXAyMjRDb3B5Q29uZGl0aW9uYWwoeTMsIHkyLCB6MUlzWmVybykKKy0JcDIy NENvcHlDb25kaXRpb25hbCh5MywgeTEsIHoySXNaZXJvKQorLQlwMjI0Q29weUNvbmRpdGlvbmFs KHozLCB6MiwgejFJc1plcm8pCistCXAyMjRDb3B5Q29uZGl0aW9uYWwoejMsIHoxLCB6MklzWmVy bykKKy19CistCistLy8gcDIyNERvdWJsZUphY29iaWFuIGNvbXB1dGVzICpvdXQgPSBhK2EuCist ZnVuYyBwMjI0RG91YmxlSmFjb2JpYW4oeDMsIHkzLCB6MywgeDEsIHkxLCB6MSAqcDIyNEZpZWxk RWxlbWVudCkgeworLQl2YXIgZGVsdGEsIGdhbW1hLCBiZXRhLCBhbHBoYSwgdCBwMjI0RmllbGRF bGVtZW50CistCXZhciBjIHAyMjRMYXJnZUZpZWxkRWxlbWVudAorLQorLQlwMjI0U3F1YXJlKCZk ZWx0YSwgejEsICZjKQorLQlwMjI0U3F1YXJlKCZnYW1tYSwgeTEsICZjKQorLQlwMjI0TXVsKCZi ZXRhLCB4MSwgJmdhbW1hLCAmYykKKy0KKy0JLy8gYWxwaGEgPSAzKihYMS1kZWx0YSkqKFgxK2Rl bHRhKQorLQlwMjI0QWRkKCZ0LCB4MSwgJmRlbHRhKQorLQlmb3IgaSA6PSAwOyBpIDwgODsgaSsr IHsKKy0JCXRbaV0gKz0gdFtpXSA8PCAxCistCX0KKy0JcDIyNFJlZHVjZSgmdCkKKy0JcDIyNFN1 YigmYWxwaGEsIHgxLCAmZGVsdGEpCistCXAyMjRSZWR1Y2UoJmFscGhhKQorLQlwMjI0TXVsKCZh bHBoYSwgJmFscGhhLCAmdCwgJmMpCistCistCS8vIFozID0gKFkxK1oxKcKyLWdhbW1hLWRlbHRh CistCXAyMjRBZGQoejMsIHkxLCB6MSkKKy0JcDIyNFJlZHVjZSh6MykKKy0JcDIyNFNxdWFyZSh6 MywgejMsICZjKQorLQlwMjI0U3ViKHozLCB6MywgJmdhbW1hKQorLQlwMjI0UmVkdWNlKHozKQor LQlwMjI0U3ViKHozLCB6MywgJmRlbHRhKQorLQlwMjI0UmVkdWNlKHozKQorLQorLQkvLyBYMyA9 IGFscGhhwrItOCpiZXRhCistCWZvciBpIDo9IDA7IGkgPCA4OyBpKysgeworLQkJZGVsdGFbaV0g PSBiZXRhW2ldIDw8IDMKKy0JfQorLQlwMjI0UmVkdWNlKCZkZWx0YSkKKy0JcDIyNFNxdWFyZSh4 MywgJmFscGhhLCAmYykKKy0JcDIyNFN1Yih4MywgeDMsICZkZWx0YSkKKy0JcDIyNFJlZHVjZSh4 MykKKy0KKy0JLy8gWTMgPSBhbHBoYSooNCpiZXRhLVgzKS04KmdhbW1hwrIKKy0JZm9yIGkgOj0g MDsgaSA8IDg7IGkrKyB7CistCQliZXRhW2ldIDw8PSAyCistCX0KKy0JcDIyNFN1YigmYmV0YSwg JmJldGEsIHgzKQorLQlwMjI0UmVkdWNlKCZiZXRhKQorLQlwMjI0U3F1YXJlKCZnYW1tYSwgJmdh bW1hLCAmYykKKy0JZm9yIGkgOj0gMDsgaSA8IDg7IGkrKyB7CistCQlnYW1tYVtpXSA8PD0gMwor LQl9CistCXAyMjRSZWR1Y2UoJmdhbW1hKQorLQlwMjI0TXVsKHkzLCAmYWxwaGEsICZiZXRhLCAm YykKKy0JcDIyNFN1Yih5MywgeTMsICZnYW1tYSkKKy0JcDIyNFJlZHVjZSh5MykKKy19CistCist Ly8gcDIyNENvcHlDb25kaXRpb25hbCBzZXRzICpvdXQgPSAqaW4gaWZmIHRoZSBsZWFzdC1zaWdu aWZpY2FudC1iaXQgb2YgY29udHJvbAorLS8vIGlzIHRydWUsIGFuZCBpdCBydW5zIGluIGNvbnN0 YW50IHRpbWUuCistZnVuYyBwMjI0Q29weUNvbmRpdGlvbmFsKG91dCwgaW4gKnAyMjRGaWVsZEVs ZW1lbnQsIGNvbnRyb2wgdWludDMyKSB7CistCWNvbnRyb2wgPDw9IDMxCistCWNvbnRyb2wgPSB1 aW50MzIoaW50MzIoY29udHJvbCkgPj4gMzEpCistCistCWZvciBpIDo9IDA7IGkgPCA4OyBpKysg eworLQkJb3V0W2ldIF49IChvdXRbaV0gXiBpbltpXSkgJiBjb250cm9sCistCX0KKy19CistCist ZnVuYyBwMjI0U2NhbGFyTXVsdChvdXRYLCBvdXRZLCBvdXRaLCBpblgsIGluWSwgaW5aICpwMjI0 RmllbGRFbGVtZW50LCBzY2FsYXIgW11ieXRlKSB7CistCXZhciB4eCwgeXksIHp6IHAyMjRGaWVs ZEVsZW1lbnQKKy0JZm9yIGkgOj0gMDsgaSA8IDg7IGkrKyB7CistCQlvdXRYW2ldID0gMAorLQkJ b3V0WVtpXSA9IDAKKy0JCW91dFpbaV0gPSAwCistCX0KKy0KKy0JZm9yIF8sIGJ5dGUgOj0gcmFu Z2Ugc2NhbGFyIHsKKy0JCWZvciBiaXROdW0gOj0gdWludCgwKTsgYml0TnVtIDwgODsgYml0TnVt KysgeworLQkJCXAyMjREb3VibGVKYWNvYmlhbihvdXRYLCBvdXRZLCBvdXRaLCBvdXRYLCBvdXRZ LCBvdXRaKQorLQkJCWJpdCA6PSB1aW50MzIoKGJ5dGUgPj4gKDcgLSBiaXROdW0pKSAmIDEpCist CQkJcDIyNEFkZEphY29iaWFuKCZ4eCwgJnl5LCAmenosIGluWCwgaW5ZLCBpblosIG91dFgsIG91 dFksIG91dFopCistCQkJcDIyNENvcHlDb25kaXRpb25hbChvdXRYLCAmeHgsIGJpdCkKKy0JCQlw MjI0Q29weUNvbmRpdGlvbmFsKG91dFksICZ5eSwgYml0KQorLQkJCXAyMjRDb3B5Q29uZGl0aW9u YWwob3V0WiwgJnp6LCBiaXQpCistCQl9CistCX0KKy19CistCistLy8gcDIyNFRvQWZmaW5lIGNv bnZlcnRzIGZyb20gSmFjb2JpYW4gdG8gYWZmaW5lIGZvcm0uCistZnVuYyBwMjI0VG9BZmZpbmUo eCwgeSwgeiAqcDIyNEZpZWxkRWxlbWVudCkgKCpiaWcuSW50LCAqYmlnLkludCkgeworLQl2YXIg emludiwgemludnNxLCBvdXR4LCBvdXR5IHAyMjRGaWVsZEVsZW1lbnQKKy0JdmFyIHRtcCBwMjI0 TGFyZ2VGaWVsZEVsZW1lbnQKKy0KKy0JaWYgaXNQb2ludEF0SW5maW5pdHkgOj0gcDIyNElzWmVy byh6KTsgaXNQb2ludEF0SW5maW5pdHkgPT0gMSB7CistCQlyZXR1cm4gbmV3KGJpZy5JbnQpLCBu ZXcoYmlnLkludCkKKy0JfQorLQorLQlwMjI0SW52ZXJ0KCZ6aW52LCB6KQorLQlwMjI0U3F1YXJl KCZ6aW52c3EsICZ6aW52LCAmdG1wKQorLQlwMjI0TXVsKHgsIHgsICZ6aW52c3EsICZ0bXApCist CXAyMjRNdWwoJnppbnZzcSwgJnppbnZzcSwgJnppbnYsICZ0bXApCistCXAyMjRNdWwoeSwgeSwg JnppbnZzcSwgJnRtcCkKKy0KKy0JcDIyNENvbnRyYWN0KCZvdXR4LCB4KQorLQlwMjI0Q29udHJh Y3QoJm91dHksIHkpCistCXJldHVybiBwMjI0VG9CaWcoJm91dHgpLCBwMjI0VG9CaWcoJm91dHkp CistfQorLQorLS8vIGdldDI4Qml0c0Zyb21FbmQgcmV0dXJucyB0aGUgbGVhc3Qtc2lnbmlmaWNh bnQgMjggYml0cyBmcm9tIGJ1Zj4+c2hpZnQsCistLy8gd2hlcmUgYnVmIGlzIGludGVycHJldGVk IGFzIGEgYmlnLWVuZGlhbiBudW1iZXIuCistZnVuYyBnZXQyOEJpdHNGcm9tRW5kKGJ1ZiBbXWJ5 dGUsIHNoaWZ0IHVpbnQpICh1aW50MzIsIFtdYnl0ZSkgeworLQl2YXIgcmV0IHVpbnQzMgorLQor LQlmb3IgaSA6PSB1aW50KDApOyBpIDwgNDsgaSsrIHsKKy0JCXZhciBiIGJ5dGUKKy0JCWlmIGwg Oj0gbGVuKGJ1Zik7IGwgPiAwIHsKKy0JCQliID0gYnVmW2wtMV0KKy0JCQkvLyBXZSBkb24ndCBy ZW1vdmUgdGhlIGJ5dGUgaWYgd2UncmUgYWJvdXQgdG8gcmV0dXJuIGFuZCB3ZSdyZSBub3QKKy0J CQkvLyByZWFkaW5nIGFsbCBvZiBpdC4KKy0JCQlpZiBpICE9IDMgfHwgc2hpZnQgPT0gNCB7Cist CQkJCWJ1ZiA9IGJ1Zls6bC0xXQorLQkJCX0KKy0JCX0KKy0JCXJldCB8PSB1aW50MzIoYikgPDwg KDggKiBpKSA+PiBzaGlmdAorLQl9CistCXJldCAmPSBib3R0b20yOEJpdHMKKy0JcmV0dXJuIHJl dCwgYnVmCistfQorLQorLS8vIHAyMjRGcm9tQmlnIHNldHMgKm91dCA9ICppbi4KKy1mdW5jIHAy MjRGcm9tQmlnKG91dCAqcDIyNEZpZWxkRWxlbWVudCwgaW4gKmJpZy5JbnQpIHsKKy0JYnl0ZXMg Oj0gaW4uQnl0ZXMoKQorLQlvdXRbMF0sIGJ5dGVzID0gZ2V0MjhCaXRzRnJvbUVuZChieXRlcywg MCkKKy0Jb3V0WzFdLCBieXRlcyA9IGdldDI4Qml0c0Zyb21FbmQoYnl0ZXMsIDQpCistCW91dFsy XSwgYnl0ZXMgPSBnZXQyOEJpdHNGcm9tRW5kKGJ5dGVzLCAwKQorLQlvdXRbM10sIGJ5dGVzID0g Z2V0MjhCaXRzRnJvbUVuZChieXRlcywgNCkKKy0Jb3V0WzRdLCBieXRlcyA9IGdldDI4Qml0c0Zy b21FbmQoYnl0ZXMsIDApCistCW91dFs1XSwgYnl0ZXMgPSBnZXQyOEJpdHNGcm9tRW5kKGJ5dGVz LCA0KQorLQlvdXRbNl0sIGJ5dGVzID0gZ2V0MjhCaXRzRnJvbUVuZChieXRlcywgMCkKKy0Jb3V0 WzddLCBieXRlcyA9IGdldDI4Qml0c0Zyb21FbmQoYnl0ZXMsIDQpCistfQorLQorLS8vIHAyMjRU b0JpZyByZXR1cm5zIGluIGFzIGEgYmlnLkludC4KKy1mdW5jIHAyMjRUb0JpZyhpbiAqcDIyNEZp ZWxkRWxlbWVudCkgKmJpZy5JbnQgeworLQl2YXIgYnVmIFsyOF1ieXRlCistCWJ1ZlsyN10gPSBi eXRlKGluWzBdKQorLQlidWZbMjZdID0gYnl0ZShpblswXSA+PiA4KQorLQlidWZbMjVdID0gYnl0 ZShpblswXSA+PiAxNikKKy0JYnVmWzI0XSA9IGJ5dGUoKChpblswXSA+PiAyNCkgJiAweDBmKSB8 IChpblsxXTw8NCkmMHhmMCkKKy0KKy0JYnVmWzIzXSA9IGJ5dGUoaW5bMV0gPj4gNCkKKy0JYnVm WzIyXSA9IGJ5dGUoaW5bMV0gPj4gMTIpCistCWJ1ZlsyMV0gPSBieXRlKGluWzFdID4+IDIwKQor LQorLQlidWZbMjBdID0gYnl0ZShpblsyXSkKKy0JYnVmWzE5XSA9IGJ5dGUoaW5bMl0gPj4gOCkK Ky0JYnVmWzE4XSA9IGJ5dGUoaW5bMl0gPj4gMTYpCistCWJ1ZlsxN10gPSBieXRlKCgoaW5bMl0g Pj4gMjQpICYgMHgwZikgfCAoaW5bM108PDQpJjB4ZjApCistCistCWJ1ZlsxNl0gPSBieXRlKGlu WzNdID4+IDQpCistCWJ1ZlsxNV0gPSBieXRlKGluWzNdID4+IDEyKQorLQlidWZbMTRdID0gYnl0 ZShpblszXSA+PiAyMCkKKy0KKy0JYnVmWzEzXSA9IGJ5dGUoaW5bNF0pCistCWJ1ZlsxMl0gPSBi eXRlKGluWzRdID4+IDgpCistCWJ1ZlsxMV0gPSBieXRlKGluWzRdID4+IDE2KQorLQlidWZbMTBd ID0gYnl0ZSgoKGluWzRdID4+IDI0KSAmIDB4MGYpIHwgKGluWzVdPDw0KSYweGYwKQorLQorLQli dWZbOV0gPSBieXRlKGluWzVdID4+IDQpCistCWJ1Zls4XSA9IGJ5dGUoaW5bNV0gPj4gMTIpCist CWJ1Zls3XSA9IGJ5dGUoaW5bNV0gPj4gMjApCistCistCWJ1Zls2XSA9IGJ5dGUoaW5bNl0pCist CWJ1Zls1XSA9IGJ5dGUoaW5bNl0gPj4gOCkKKy0JYnVmWzRdID0gYnl0ZShpbls2XSA+PiAxNikK Ky0JYnVmWzNdID0gYnl0ZSgoKGluWzZdID4+IDI0KSAmIDB4MGYpIHwgKGluWzddPDw0KSYweGYw KQorLQorLQlidWZbMl0gPSBieXRlKGluWzddID4+IDQpCistCWJ1ZlsxXSA9IGJ5dGUoaW5bN10g Pj4gMTIpCistCWJ1ZlswXSA9IGJ5dGUoaW5bN10gPj4gMjApCistCistCXJldHVybiBuZXcoYmln LkludCkuU2V0Qnl0ZXMoYnVmWzpdKQorLX0KKy0tLSBsaWJnby9nby9jcnlwdG8vZWxsaXB0aWMv cDIyNF90ZXN0LmdvLmpqCTIwMTItMTEtMTUgMTg6MjY6NTcuMDAwMDAwMDAwICswMTAwCisrKysg bGliZ28vZ28vY3J5cHRvL2VsbGlwdGljL3AyMjRfdGVzdC5nbwkyMDE0LTAzLTA1IDE1OjI5OjU4 Ljc0MzQzMDk4OCArMDEwMAorQEAgLTEsNDcgKzAsMCBAQAorLS8vIENvcHlyaWdodCAyMDEyIFRo ZSBHbyBBdXRob3JzLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy0vLyBVc2Ugb2YgdGhpcyBzb3Vy Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQorLS8vIGxpY2Vuc2UgdGhhdCBjYW4g YmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0KKy1wYWNrYWdlIGVsbGlwdGljCistCist aW1wb3J0ICgKKy0JIm1hdGgvYmlnIgorLQkidGVzdGluZyIKKy0pCistCistdmFyIHRvRnJvbUJp Z1Rlc3RzID0gW11zdHJpbmd7CistCSIwIiwKKy0JIjEiLAorLQkiMjMiLAorLQkiYjcwZTBjYjQ2 YmI0YmY3ZjMyMTM5MGI5NGEwM2MxZDM1NmMwMTEyMjM0MzI4MGQ2MTA1YzFkMjEiLAorLQkiNzA2 YTQ2ZDQ3NmRjYjc2Nzk4ZTYwNDZkODk0NzQ3ODhkMTY0YzE4MDMyZDI2OGZkMTA3MDRmYTYiLAor LX0KKy0KKy1mdW5jIHAyMjRBbHRlcm5hdGl2ZVRvQmlnKGluICpwMjI0RmllbGRFbGVtZW50KSAq YmlnLkludCB7CistCXJldCA6PSBuZXcoYmlnLkludCkKKy0JdG1wIDo9IG5ldyhiaWcuSW50KQor LQorLQlmb3IgaSA6PSB1aW50KDApOyBpIDwgODsgaSsrIHsKKy0JCXRtcC5TZXRJbnQ2NChpbnQ2 NChpbltpXSkpCistCQl0bXAuTHNoKHRtcCwgMjgqaSkKKy0JCXJldC5BZGQocmV0LCB0bXApCist CX0KKy0JcmV0Lk1vZChyZXQsIHAyMjQuUCkKKy0JcmV0dXJuIHJldAorLX0KKy0KKy1mdW5jIFRl c3RUb0Zyb21CaWcodCAqdGVzdGluZy5UKSB7CistCWZvciBpLCB0ZXN0IDo9IHJhbmdlIHRvRnJv bUJpZ1Rlc3RzIHsKKy0JCW4sIF8gOj0gbmV3KGJpZy5JbnQpLlNldFN0cmluZyh0ZXN0LCAxNikK Ky0JCXZhciB4IHAyMjRGaWVsZEVsZW1lbnQKKy0JCXAyMjRGcm9tQmlnKCZ4LCBuKQorLQkJbSA6 PSBwMjI0VG9CaWcoJngpCistCQlpZiBuLkNtcChtKSAhPSAwIHsKKy0JCQl0LkVycm9yZigiIyVk OiAleCAhPSAleCIsIGksIG4sIG0pCistCQl9CistCQlxIDo9IHAyMjRBbHRlcm5hdGl2ZVRvQmln KCZ4KQorLQkJaWYgbi5DbXAocSkgIT0gMCB7CistCQkJdC5FcnJvcmYoIiMlZDogJXggIT0gJXgg KGFsdGVybmF0aXZlKSIsIGksIG4sIG0pCistCQl9CistCX0KKy19CistLS0gbGliZ28vZ28vY3J5 cHRvL2VsbGlwdGljL3AyNTYuZ28uamoJMjAxMy0xMS0wNyAxMTo1OTowOS4wMDAwMDAwMDAgKzAx MDAKKysrKyBsaWJnby9nby9jcnlwdG8vZWxsaXB0aWMvcDI1Ni5nbwkyMDE0LTAzLTA1IDE1OjM0 OjMxLjkxMDQxNDcwMSArMDEwMAorQEAgLTIzMyw2ICsyMzMsOCBAQCBmdW5jIHAyNTZSZWR1Y2VD YXJyeShpbm91dCAqW3AyNTZMaW1ic111CisgCWlub3V0WzddICs9IGNhcnJ5IDw8IDI1CisgfQor IAorK2NvbnN0IGJvdHRvbTI4Qml0cyA9IDB4ZmZmZmZmZgorKworIC8vIHAyNTZTdW0gc2V0cyBv dXQgPSBpbitpbjIuCisgLy8KKyAvLyBPbiBlbnRyeSwgaW5baV0raW4yW2ldIG11c3Qgbm90IG92 ZXJmbG93IGEgMzItYml0IHdvcmQuCitAQCAtMjY1LDYgKzI2Nyw3IEBAIGNvbnN0ICgKKyAJdHdv MzFtMiAgICA9IDE8PDMxIC0gMTw8MgorIAl0d28zMXAyNG0yID0gMTw8MzEgKyAxPDwyNCAtIDE8 PDIKKyAJdHdvMzBtMjdtMiA9IDE8PDMwIC0gMTw8MjcgLSAxPDwyCisrCXR3bzMxbTMgICAgPSAx PDwzMSAtIDE8PDMKKyApCisgCisgLy8gcDI1Nlplcm8zMSBpcyAwIG1vZCBwLgoKZGlmZiAtLWdp dCBhL2djYzYtbGliZ29tcC1vbXBfaC1tdWx0aWxpYi5wYXRjaCBiL2djYzYtbGliZ29tcC1vbXBf aC1tdWx0aWxpYi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMGU5 OGQxCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjNi1saWJnb21wLW9tcF9oLW11bHRpbGliLnBhdGNo CkBAIC0wLDAgKzEsMTcgQEAKKzIwMDgtMDYtMDkgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRo YXQuY29tPgorCisJKiBvbXAuaC5pbiAob21wX25lc3RfbG9ja190KTogRml4IHVwIGZvciBMaW51 eCBtdWx0aWxpYnMuCisKKy0tLSBsaWJnb21wL29tcC5oLmluLmpqCTIwMDgtMDYtMDkgMTM6MzQ6 MDUuMDAwMDAwMDAwICswMjAwCisrKysgbGliZ29tcC9vbXAuaC5pbgkyMDA4LTA2LTA5IDEzOjM0 OjQ4LjAwMDAwMDAwMCArMDIwMAorQEAgLTQyLDggKzQyLDggQEAgdHlwZWRlZiBzdHJ1Y3QKKyAK KyB0eXBlZGVmIHN0cnVjdAorIHsKKy0gIHVuc2lnbmVkIGNoYXIgX3hbQE9NUF9ORVNUX0xPQ0tf U0laRUBdIAorLSAgICBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXyhAT01QX05FU1RfTE9DS19B TElHTkApKSk7CisrICB1bnNpZ25lZCBjaGFyIF94WzggKyBzaXplb2YgKHZvaWQgKildIAorKyAg ICBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXyhzaXplb2YgKHZvaWQgKikpKSk7CisgfSBvbXBf bmVzdF9sb2NrX3Q7CisgI2VuZGlmCisgCgpkaWZmIC0tZ2l0IGEvZ2NjNi1saWJzYW5pdGl6ZS1h YXJjaDY0LXZhNDIucGF0Y2ggYi9nY2M2LWxpYnNhbml0aXplLWFhcmNoNjQtdmE0Mi5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjQxOGRmCi0tLSAvZGV2L251bGwK KysrIGIvZ2NjNi1saWJzYW5pdGl6ZS1hYXJjaDY0LXZhNDIucGF0Y2gKQEAgLTAsMCArMSwzOCBA QAorMjAxNS0wMS0yMiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisKKwkqIHNh bml0aXplcl9jb21tb24vc2FuaXRpemVyX3BsYXRmb3JtLmgKKwkoU0FOSVRJWkVSX0FBUkNINjRf Vk1BKTogU2V0IHRvIDQyLgorCShTQU5JVElaRVJfQ0FOX1VTRV9BTExPQ0FUT1I2NCk6IFNldCB0 byAxIG9uIF9fYWFyY2g2NF9fCisJaWYgU0FOSVRJWkVSX1dPUkRTSVpFIGlzIDY0LgorCShTQU5J VElaRVJfTU1BUF9SQU5HRV9TSVpFKTogRGVmaW5lIHRvIDFVTEwgPDwgNDIgZm9yCisJX19hYXJj aDY0X18uCisKKy0tLSBsaWJzYW5pdGl6ZXIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfcGxh dGZvcm0uaC5qagkyMDE1LTExLTIzIDEzOjI5OjU1LjAwMDAwMDAwMCArMDEwMAorKysrIGxpYnNh bml0aXplci9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9wbGF0Zm9ybS5oCTIwMTYtMDEtMTUg MTI6MDQ6MDguNTExMjA2NDA5ICswMTAwCitAQCAtODIsNyArODIsNyBAQAorIC8vIFZNQSBzaXpl IGRlZmluaXRpb24gZm9yIGFyY2hpdGVjdHVyZSB0aGF0IHN1cHBvcnQgbXVsdGlwbGUgc2l6ZXMu CisgLy8gQUFyY2g2NCBoYXMgMyBWTUEgc2l6ZXM6IDM5LCA0MiBhbmQgNDguCisgI2lmICFkZWZp bmVkKFNBTklUSVpFUl9BQVJDSDY0X1ZNQSkKKy0jIGRlZmluZSBTQU5JVElaRVJfQUFSQ0g2NF9W TUEgMzkKKysjIGRlZmluZSBTQU5JVElaRVJfQUFSQ0g2NF9WTUEgNDIKKyAjZWxzZQorICMgaWYg U0FOSVRJWkVSX0FBUkNINjRfVk1BICE9IDM5ICYmIFNBTklUSVpFUl9BQVJDSDY0X1ZNQSAhPSA0 MgorICMgIGVycm9yICJpbnZhbGlkIFNBTklUSVpFUl9BQVJDSDY0X1ZNQSBzaXplIgorQEAgLTk1 LDcgKzk1LDcgQEAKKyAvLyBGb3Igc3VjaCBwbGF0Zm9ybXMgYnVpbGQgdGhpcyBjb2RlIHdpdGgg LURTQU5JVElaRVJfQ0FOX1VTRV9BTExPQ0FUT1I2ND0wIG9yCisgLy8gY2hhbmdlIHRoZSBkZWZp bml0aW9uIG9mIFNBTklUSVpFUl9DQU5fVVNFX0FMTE9DQVRPUjY0IGhlcmUuCisgI2lmbmRlZiBT QU5JVElaRVJfQ0FOX1VTRV9BTExPQ0FUT1I2NAorLSMgaWYgZGVmaW5lZChfX21pcHM2NCkgfHwg ZGVmaW5lZChfX2FhcmNoNjRfXykKKysjIGlmIGRlZmluZWQoX19taXBzNjQpCisgIyAgZGVmaW5l IFNBTklUSVpFUl9DQU5fVVNFX0FMTE9DQVRPUjY0IDAKKyAjIGVsc2UKKyAjICBkZWZpbmUgU0FO SVRJWkVSX0NBTl9VU0VfQUxMT0NBVE9SNjQgKFNBTklUSVpFUl9XT1JEU0laRSA9PSA2NCkKK0BA IC0xMDcsNiArMTA3LDggQEAKKyAvLyB3aWxsIHN0aWxsIHdvcmsgYnV0IHdpbGwgY29uc3VtZSBt b3JlIG1lbW9yeSBmb3IgVHdvTGV2ZWxCeXRlTWFwLgorICNpZiBkZWZpbmVkKF9fbWlwc19fKQor ICMgZGVmaW5lIFNBTklUSVpFUl9NTUFQX1JBTkdFX1NJWkUgRklSU1RfMzJfU0VDT05EXzY0KDFV TEwgPDwgMzIsIDFVTEwgPDwgNDApCisrI2VsaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKKysjIGRl ZmluZSBTQU5JVElaRVJfTU1BUF9SQU5HRV9TSVpFIEZJUlNUXzMyX1NFQ09ORF82NCgxVUxMIDw8 IDMyLCAxVUxMIDw8IDQyKQorICNlbHNlCisgIyBkZWZpbmUgU0FOSVRJWkVSX01NQVBfUkFOR0Vf U0laRSBGSVJTVF8zMl9TRUNPTkRfNjQoMVVMTCA8PCAzMiwgMVVMTCA8PCA0NykKKyAjZW5kaWYK CmRpZmYgLS1naXQgYS9nY2M2LWxpYnN0ZGMrKy1kb2NzLnBhdGNoIGIvZ2NjNi1saWJzdGRjKyst ZG9jcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2NkN2FiCi0t LSAvZGV2L251bGwKKysrIGIvZ2NjNi1saWJzdGRjKystZG9jcy5wYXRjaApAQCAtMCwwICsxLDI2 IEBACistLS0gbGlic3RkYysrLXYzL2RvYy9odG1sL2luZGV4Lmh0bWwuamoJMjAxMS0wMS0wMyAx Mjo1MzoyMS4yODI4MjkwMTAgKzAxMDAKKysrKyBsaWJzdGRjKystdjMvZG9jL2h0bWwvaW5kZXgu aHRtbAkyMDExLTAxLTA0IDE4OjA2OjI4Ljk5OTg1MTE0NSArMDEwMAorQEAgLTUsNiArNSw4IEBA CisgICAgICAgPGEgY2xhc3M9ImxpbmsiIGhyZWY9Imh0dHA6Ly93d3cuZnNmLm9yZy8iIHRhcmdl dD0iX3RvcCI+RlNGCisgICAgICAgPC9hPgorICAgICA8L3A+PHA+CisrICAgICAgUmVsZWFzZSA2 LjAuMAorKyAgICA8L3A+PHA+CisgICAgICAgUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHks IGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGlzCisgICAgICAgZG9jdW1lbnQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uCisgICAgICAgTGljZW5zZSwgVmVy c2lvbiAxLjIgb3IgYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZQorLS0tIGxpYnN0 ZGMrKy12My9kb2MvaHRtbC9hcGkuaHRtbC5qagkyMDExLTAxLTAzIDEyOjUzOjIxLjAwMDAwMDAw MCArMDEwMAorKysrIGxpYnN0ZGMrKy12My9kb2MvaHRtbC9hcGkuaHRtbAkyMDExLTAxLTA0IDE4 OjEyOjAxLjY3Mjc1Nzc4NCArMDEwMAorQEAgLTE4LDggKzE4LDExIEBACisgICBtZW1iZXIgZnVu Y3Rpb25zIGZvciB0aGUgbGlicmFyeSBjbGFzc2VzLCBmaW5kaW5nIG91dCB3aGF0IGlzIGluIGEK KyAgIHBhcnRpY3VsYXIgaW5jbHVkZSBmaWxlLCBsb29raW5nIGF0IGluaGVyaXRhbmNlIGRpYWdy YW1zLCBldGMuCisgPC9wPjxwPgorLSAgVGhlIEFQSSBkb2N1bWVudGF0aW9uLCByZW5kZXJlZCBp bnRvIEhUTUwsIGNhbiBiZSB2aWV3ZWQgb25saW5lOgorKyAgVGhlIEFQSSBkb2N1bWVudGF0aW9u LCByZW5kZXJlZCBpbnRvIEhUTUwsIGNhbiBiZSB2aWV3ZWQgaGVyZToKKyA8L3A+PGRpdiBjbGFz cz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5 bGUtdHlwZTogZGlzYzsgIj48bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKysgICAgICA8YSBjbGFz cz0ibGluayIgaHJlZj0iYXBpL2luZGV4Lmh0bWwiIHRhcmdldD0iX3RvcCI+Zm9yIHRoZSA2LjAu MCByZWxlYXNlLCBsb2NhbAorKyAgICAgIDwvYT4KKysgICAgPC9wPjwvbGk+PGxpIGNsYXNzPSJs aXN0aXRlbSI+PHA+CisgICAgICAgPGEgY2xhc3M9ImxpbmsiIGhyZWY9Imh0dHA6Ly9nY2MuZ251 Lm9yZy9vbmxpbmVkb2NzL2xpYnN0ZGMrKy9saWJzdGRjKystaHRtbC1VU0VSUy0zLjQvaW5kZXgu aHRtbCIgdGFyZ2V0PSJfdG9wIj5mb3IgdGhlIDMuNCByZWxlYXNlCisgICAgICAgPC9hPgorICAg ICA8L3A+PC9saT48bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KCmRpZmYgLS1naXQgYS9nY2M2LWxp YnRvb2wtbm8tcnBhdGgucGF0Y2ggYi9nY2M2LWxpYnRvb2wtbm8tcnBhdGgucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDY2YzY2MQotLS0gL2Rldi9udWxsCisrKyBi L2djYzYtbGlidG9vbC1uby1ycGF0aC5wYXRjaApAQCAtMCwwICsxLDI3IEBACitsaWJ0b29sIHN1 Y2tzLgorLS0tIGx0bWFpbi5zaC5qagkyMDA3LTEyLTA3IDE0OjUzOjIxLjAwMDAwMDAwMCArMDEw MAorKysrIGx0bWFpbi5zaAkyMDA4LTA5LTA1IDIxOjUxOjQ4LjAwMDAwMDAwMCArMDIwMAorQEAg LTUzOTQsNiArNTM5NCw3IEBAIEVPRgorIAkgIHJwYXRoPSIkZmluYWxpemVfcnBhdGgiCisgCSAg dGVzdCAiJG1vZGUiICE9IHJlbGluayAmJiBycGF0aD0iJGNvbXBpbGVfcnBhdGgkcnBhdGgiCisg CSAgZm9yIGxpYmRpciBpbiAkcnBhdGg7IGRvCisrCSAgICBjYXNlICIkbGliZGlyIiBpbiAvdXNy L2xpYnwvdXNyL2xpYjY0fC91c3IvbGliLy4uL2xpYnwvdXNyL2xpYi8uLi9saWI2NCkgY29udGlu dWU7OyBlc2FjCisgCSAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7 IHRoZW4KKyAJICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0 aGVuCisgCQlpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KK0BAIC02MDcxLDYg KzYwNzIsNyBAQCBFT0YKKyAgICAgICBycGF0aD0KKyAgICAgICBoYXJkY29kZV9saWJkaXJzPQor ICAgICAgIGZvciBsaWJkaXIgaW4gJGNvbXBpbGVfcnBhdGggJGZpbmFsaXplX3JwYXRoOyBkbwor KwljYXNlICIkbGliZGlyIiBpbiAvdXNyL2xpYnwvdXNyL2xpYjY0fC91c3IvbGliLy4uL2xpYnwv dXNyL2xpYi8uLi9saWI2NCkgY29udGludWU7OyBlc2FjCisgCWlmIHRlc3QgLW4gIiRoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhlbgorIAkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yIjsgdGhlbgorIAkgICAgaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMi OyB0aGVuCitAQCAtNjEyMCw2ICs2MTIyLDcgQEAgRU9GCisgICAgICAgcnBhdGg9CisgICAgICAg aGFyZGNvZGVfbGliZGlycz0KKyAgICAgICBmb3IgbGliZGlyIGluICRmaW5hbGl6ZV9ycGF0aDsg ZG8KKysJY2FzZSAiJGxpYmRpciIgaW4gL3Vzci9saWJ8L3Vzci9saWI2NHwvdXNyL2xpYi8uLi9s aWJ8L3Vzci9saWIvLi4vbGliNjQpIGNvbnRpbnVlOzsgZXNhYworIAlpZiB0ZXN0IC1uICIkaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KKyAJICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvciI7IHRoZW4KKyAJICAgIGlmIHRlc3QgLXogIiRoYXJkY29kZV9saWJk aXJzIjsgdGhlbgoKZGlmZiAtLWdpdCBhL2djYzYtbm8tYWRkLW5lZWRlZC5wYXRjaCBiL2djYzYt bm8tYWRkLW5lZWRlZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40 MTAyZTFjCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjNi1uby1hZGQtbmVlZGVkLnBhdGNoCkBAIC0w LDAgKzEsNTAgQEAKKzIwMTAtMDItMDggIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5j b20+CisKKwkqIGNvbmZpZy9yczYwMDAvc3lzdjQuaCAoTElOS19FSF9TUEVDKTogUGFzcyAtLW5v LWFkZC1uZWVkZWQgdG8gdGhlCisJbGlua2VyLgorCSogY29uZmlnL2dudS11c2VyLmggKExJTktf RUhfU1BFQyk6IExpa2V3aXNlLgorCSogY29uZmlnL2FscGhhL2VsZi5oIChMSU5LX0VIX1NQRUMp OiBMaWtld2lzZS4KKwkqIGNvbmZpZy9pYTY0L2xpbnV4LmggKExJTktfRUhfU1BFQyk6IExpa2V3 aXNlLgorCistLS0gZ2NjL2NvbmZpZy9hbHBoYS9lbGYuaC5qagkyMDExLTAxLTAzIDEyOjUyOjMx LjExODA1Njc2NCArMDEwMAorKysrIGdjYy9jb25maWcvYWxwaGEvZWxmLmgJMjAxMS0wMS0wNCAx ODoxNDoxMC45MzE4NzQxNjAgKzAxMDAKK0BAIC0xNjUsNSArMTY1LDUgQEAgZXh0ZXJuIGludCBh bHBoYV90aGlzX2dwZGlzcF9zZXF1ZW5jZV9udQorICAgIEkgaW1hZ2luZSB0aGF0IG90aGVyIHN5 c3RlbXMgd2lsbCBjYXRjaCB1cC4gIEluIHRoZSBtZWFudGltZSwgaXQKKyAgICBkb2Vzbid0IGhh cm0gdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGRhdGEgZXhpc3RzIHRvIGJlIHVzZWQgbGF0ZXIuICAq LworICNpZiBkZWZpbmVkKEhBVkVfTERfRUhfRlJBTUVfSERSKQorLSNkZWZpbmUgTElOS19FSF9T UEVDICIleyFzdGF0aWM6LS1laC1mcmFtZS1oZHJ9ICIKKysjZGVmaW5lIExJTktfRUhfU1BFQyAi LS1uby1hZGQtbmVlZGVkICV7IXN0YXRpYzotLWVoLWZyYW1lLWhkcn0gIgorICNlbmRpZgorLS0t IGdjYy9jb25maWcvaWE2NC9saW51eC5oLmpqCTIwMTEtMDEtMDMgMTM6MDI6MTEuNDYyOTk0NTIy ICswMTAwCisrKysgZ2NjL2NvbmZpZy9pYTY0L2xpbnV4LmgJMjAxMS0wMS0wNCAxODoxNDoxMC45 MzE4NzQxNjAgKzAxMDAKK0BAIC03Niw3ICs3Niw3IEBAIGRvIHsJCQkJCQlcCisgICAgU2lnbmFs aXplIHRoYXQgYmVjYXVzZSB3ZSBoYXZlIGZkZS1nbGliYywgd2UgZG9uJ3QgbmVlZCBhbGwgQyBz aGFyZWQgbGlicworICAgIGxpbmtlZCBhZ2FpbnN0IC1sZ2NjX3MuICAqLworICN1bmRlZiBMSU5L X0VIX1NQRUMKKy0jZGVmaW5lIExJTktfRUhfU1BFQyAiIgorKyNkZWZpbmUgTElOS19FSF9TUEVD ICItLW5vLWFkZC1uZWVkZWQgIgorIAorICN1bmRlZiBUQVJHRVRfSU5JVF9MSUJGVU5DUworICNk ZWZpbmUgVEFSR0VUX0lOSVRfTElCRlVOQ1MgaWE2NF9zb2Z0X2ZwX2luaXRfbGliZnVuY3MKKy0t LSBnY2MvY29uZmlnL2dudS11c2VyLmguamoJMjAxMS0wMS0wMyAxMjo1MzowMy43MzkwNTcyOTkg KzAxMDAKKysrKyBnY2MvY29uZmlnL2dudS11c2VyLmgJMjAxMS0wMS0wNCAxODoxNDoxMC45MzI4 MTQ4ODQgKzAxMDAKK0BAIC04Miw3ICs4Miw3IEBAIHNlZSB0aGUgZmlsZXMgQ09QWUlORzMgYW5k IENPUFlJTkcuUlVOVEkKKyAjZGVmaW5lIExJQl9TUEVDIEdOVV9VU0VSX1RBUkdFVF9MSUJfU1BF QworIAorICNpZiBkZWZpbmVkKEhBVkVfTERfRUhfRlJBTUVfSERSKQorLSNkZWZpbmUgTElOS19F SF9TUEVDICIleyFzdGF0aWM6LS1laC1mcmFtZS1oZHJ9ICIKKysjZGVmaW5lIExJTktfRUhfU1BF QyAiLS1uby1hZGQtbmVlZGVkICV7IXN0YXRpYzotLWVoLWZyYW1lLWhkcn0gIgorICNlbmRpZgor IAorICN1bmRlZiBMSU5LX0dDQ19DX1NFUVVFTkNFX1NQRUMKKy0tLSBnY2MvY29uZmlnL3JzNjAw MC9zeXN2NC5oLmpqCTIwMTEtMDEtMDMgMTM6MDI6MTguMjU1OTk0MjE1ICswMTAwCisrKysgZ2Nj L2NvbmZpZy9yczYwMDAvc3lzdjQuaAkyMDExLTAxLTA0IDE4OjE0OjEwLjkzMzg4ODg3MSArMDEw MAorQEAgLTgyMCw3ICs4MjAsNyBAQCBleHRlcm4gaW50IGZpeHVwbGFiZWxubzsKKyAgIC1keW5h bWljLWxpbmtlciAiIEdOVV9VU0VSX0RZTkFNSUNfTElOS0VSICJ9fSIKKyAKKyAjaWYgZGVmaW5l ZChIQVZFX0xEX0VIX0ZSQU1FX0hEUikKKy0jIGRlZmluZSBMSU5LX0VIX1NQRUMgIiV7IXN0YXRp YzotLWVoLWZyYW1lLWhkcn0gIgorKyMgZGVmaW5lIExJTktfRUhfU1BFQyAiLS1uby1hZGQtbmVl ZGVkICV7IXN0YXRpYzotLWVoLWZyYW1lLWhkcn0gIgorICNlbmRpZgorIAorICNkZWZpbmUgQ1BQ X09TX0xJTlVYX1NQRUMgIi1EX191bml4X18gLURfX2dudV9saW51eF9fIC1EX19saW51eF9fIFwK CmRpZmYgLS1naXQgYS9nY2M2LXBwYzMyLXJldGFkZHIucGF0Y2ggYi9nY2M2LXBwYzMyLXJldGFk ZHIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U4ZWViNQotLS0g L2Rldi9udWxsCisrKyBiL2djYzYtcHBjMzItcmV0YWRkci5wYXRjaApAQCAtMCwwICsxLDg3IEBA CisyMDA1LTExLTI4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KKworCSogY29u ZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX3JldHVybl9hZGRyKTogSWYgQ09VTlQgPT0gMCwK KwlyZWFkIHdvcmQgUkVUVVJOX0FERFJFU1NfT0ZGU0VUIGJ5dGVzIGFib3ZlIGFyZ19wb2ludGVy X3J0eAorCWluc3RlYWQgb2YgZG9pbmcgYW4gZXh0cmFuIGluZGlyZWN0aW9uIGZyb20gZnJhbWVf cG9pbnRlcl9ydHguCisKKwkqIGdjYy5kZy8yMDA1MTEyOC0xLmM6IE5ldyB0ZXN0LgorCistLS0g Z2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmMuamoJMjAwNS0xMS0yNiAxNDozODowMS4wMDAwMDAw MDAgKzAxMDAKKysrKyBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuYwkyMDA1LTExLTI4IDIwOjMy OjE4LjAwMDAwMDAwMCArMDEwMAorQEAgLTIwOTcwLDE4ICsyMDk3MCwyMiBAQCByczYwMDBfcmV0 dXJuX2FkZHIgKGludCBjb3VudCwgcnR4IGZyYW1lCisgICBpZiAoY291bnQgIT0gMAorICAgICAg IHx8ICgoREVGQVVMVF9BQkkgPT0gQUJJX1Y0IHx8IERFRkFVTFRfQUJJID09IEFCSV9EQVJXSU4p ICYmIGZsYWdfcGljKSkKKyAgICAgeworKyAgICAgIHJ0eCB4OworICAgICAgIGNmdW4tPm1hY2hp bmUtPnJhX25lZWRzX2Z1bGxfZnJhbWUgPSAxOworIAorLSAgICAgIHJldHVybgorLQlnZW5fcnR4 X01FTQorLQkgIChQbW9kZSwKKy0JICAgbWVtb3J5X2FkZHJlc3MKKy0JICAgKFBtb2RlLAorLQkg ICAgcGx1c19jb25zdGFudCAoUG1vZGUsCistCQkJICAgY29weV90b19yZWcKKy0JCQkgICAoZ2Vu X3J0eF9NRU0gKFBtb2RlLAorLQkJCQkJIG1lbW9yeV9hZGRyZXNzIChQbW9kZSwgZnJhbWUpKSks CistCQkJICAgUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSkpOworKyAgICAgIGlmIChjb3VudCA9PSAw KQorKwl7CisrCSAgZ2NjX2Fzc2VydCAoZnJhbWUgPT0gZnJhbWVfcG9pbnRlcl9ydHgpOworKwkg IHggPSBhcmdfcG9pbnRlcl9ydHg7CisrCX0KKysgICAgICBlbHNlCisrCXsKKysJICB4ID0gbWVt b3J5X2FkZHJlc3MgKFBtb2RlLCBmcmFtZSk7CisrCSAgeCA9IGNvcHlfdG9fcmVnIChnZW5fcnR4 X01FTSAoUG1vZGUsIHgpKTsKKysJfQorKworKyAgICAgIHggPSBwbHVzX2NvbnN0YW50IChQbW9k ZSwgeCwgUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKKysgICAgICByZXR1cm4gZ2VuX3J0eF9NRU0g KFBtb2RlLCBtZW1vcnlfYWRkcmVzcyAoUG1vZGUsIHgpKTsKKyAgICAgfQorIAorICAgY2Z1bi0+ bWFjaGluZS0+cmFfbmVlZF9sciA9IDE7CistLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvMjAwNTEx MjgtMS5jLmpqCTIwMDUtMTAtMTAgMTE6MjE6NDEuMDk2OTk5MDAwICswMjAwCisrKysgZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvMjAwNTExMjgtMS5jCTIwMDUtMTEtMjggMTI6MzA6NTcuMDAwMDAwMDAw ICswMTAwCitAQCAtMCwwICsxLDQxIEBACisrLyogeyBkZy1kbyBydW4gfSAqLworKy8qIHsgZGct b3B0aW9ucyAiLU8yIC1mcGljIiB9ICovCisrCisrZXh0ZXJuIHZvaWQgZXhpdCAoaW50KTsKKytl eHRlcm4gdm9pZCBhYm9ydCAodm9pZCk7CisrCisraW50IGI7CisrCisrc3RydWN0IEEKKyt7Cisr ICB2b2lkICpwYWRbMTQ3XTsKKysgIHZvaWQgKnJhLCAqaDsKKysgIGxvbmcgbzsKKyt9OworKwor K3ZvaWQKKytfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCisrZm9vIChzdHJ1Y3QgQSAqYSwgdm9p ZCAqeCkKKyt7CisrICBfX2J1aWx0aW5fbWVtc2V0IChhLCAwLCBzaXplb2YgKGEpKTsKKysgIGlm ICghYikKKysgICAgZXhpdCAoMCk7CisrfQorKworK3ZvaWQKKytfX2F0dHJpYnV0ZV9fKChub2lu bGluZSkpCisrYmFyICh2b2lkKQorK3sKKysgIHN0cnVjdCBBIGE7CisrCisrICBfX2J1aWx0aW5f dW53aW5kX2luaXQgKCk7CisrICBmb28gKCZhLCBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MgKDAp KTsKKyt9CisrCisraW50CisrbWFpbiAodm9pZCkKKyt7CisrICBiYXIgKCk7CisrICBhYm9ydCAo KTsKKysgIHJldHVybiAwOworK30KCmRpZmYgLS1naXQgYS9nY2M2LXJoMzMwNzcxLnBhdGNoIGIv Z2NjNi1yaDMzMDc3MS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x MDI3MzBmCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjNi1yaDMzMDc3MS5wYXRjaApAQCAtMCwwICsx LDI3IEBACisyMDA3LTEwLTE2ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KKwor CSogTWFrZWZpbGUuYW0gKGxpYmdjal90b29sc19sYV9MSUJBREQpOiBBZGQuCisJKiBNYWtlZmls ZS5pbjogUmVnZW5lcmF0ZWQuCisKKy0tLSBsaWJqYXZhL01ha2VmaWxlLmFtLmpqCTIwMDktMDUt MDYgMDg6MTQ6NTAuMDAwMDAwMDAwICswMjAwCisrKysgbGliamF2YS9NYWtlZmlsZS5hbQkyMDA5 LTA1LTA2IDEwOjI2OjQzLjAwMDAwMDAwMCArMDIwMAorQEAgLTU1MCw3ICs1NTAsNyBAQCBsaWJn Y2pfdG9vbHNfbGFfTERGTEFHUyA9IC1ycGF0aCAkKHRvb2xlCisgICQoTElCR0NKX0xEX1NZTUJP TElDX0ZVTkNUSU9OUykgJChMSUJKQVZBX0xERkxBR1NfTk9VTkRFRikgXAorICAkKExJQkpBVkFf TERGTEFHU19MSUJNQVRIKQorIAorLWxpYmdjal90b29sc19sYV9MSUJBREQgPSBsaWJnY2oubGEK KytsaWJnY2pfdG9vbHNfbGFfTElCQUREID0gLUwkKGhlcmUpLy5saWJzIGxpYmdjai5sYQorIGxp Ymdjal90b29sc19sYV9ERVBFTkRFTkNJRVMgPSBsaWJnY2oubGEgbGliZ2NqLnNwZWMgXAorICAk KGxpYmdjal90b29sc19sYV92ZXJzaW9uX2RlcCkKKyBpZiBCVUlMRF9TVUJMSUJTCistLS0gbGli amF2YS9NYWtlZmlsZS5pbi5qagkyMDA5LTA1LTA2IDA4OjE0OjQ5LjAwMDAwMDAwMCArMDIwMAor KysrIGxpYmphdmEvTWFrZWZpbGUuaW4JMjAwOS0wNS0wNiAxMDoyNzoxOC4wMDAwMDAwMDAgKzAy MDAKK0BAIC0xMTEwLDcgKzExMTAsNyBAQCBsaWJnY2pfdG9vbHNfbGFfTERGTEFHUyA9IC1ycGF0 aCAkKHRvb2xlCisgICQoTElCR0NKX0xEX1NZTUJPTElDX0ZVTkNUSU9OUykgJChMSUJKQVZBX0xE RkxBR1NfTk9VTkRFRikgXAorICAkKExJQkpBVkFfTERGTEFHU19MSUJNQVRIKQorIAorLWxpYmdj al90b29sc19sYV9MSUJBREQgPSBsaWJnY2oubGEKKytsaWJnY2pfdG9vbHNfbGFfTElCQUREID0g LUwkKGhlcmUpLy5saWJzIGxpYmdjai5sYQorIGxpYmdjal90b29sc19sYV9ERVBFTkRFTkNJRVMg PSBsaWJnY2oubGEgbGliZ2NqLnNwZWMgXAorIAkkKGxpYmdjal90b29sc19sYV92ZXJzaW9uX2Rl cCkgJChhbV9fYXBwZW5kXzE5KQorIGxpYmdjal90b29sc19sYV9MSU5LID0gJChMSUJMSU5LKSAk KGxpYmdjal90b29sc19sYV9MREZMQUdTKSBcCgpkaWZmIC0tZ2l0IGEvZ2NjNi1zcGFyYy1jb25m aWctZGV0ZWN0aW9uLnBhdGNoIGIvZ2NjNi1zcGFyYy1jb25maWctZGV0ZWN0aW9uLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzNzAxOGUKLS0tIC9kZXYvbnVsbAor KysgYi9nY2M2LXNwYXJjLWNvbmZpZy1kZXRlY3Rpb24ucGF0Y2gKQEAgLTAsMCArMSw0MCBAQAor LS0tIGdjYy9jb25maWcuZ2NjLmpqCTIwMDgtMDQtMjQgMTU6NDI6NDYuMDAwMDAwMDAwIC0wNTAw CisrKysgZ2NjL2NvbmZpZy5nY2MJMjAwOC0wNC0yNCAxNTo0NDo1MS4wMDAwMDAwMDAgLTA1MDAK K0BAIC0yNjU2LDcgKzI2NTYsNyBAQCBzcGFyYy0qLXJ0ZW1zKikKKyAJdG1fZmlsZT0iJHt0bV9m aWxlfSBkYnhlbGYuaCBlbGZvcy5oIHNwYXJjL3N5c3Y0Lmggc3BhcmMvc3AtZWxmLmggc3BhcmMv cnRlbXNlbGYuaCBydGVtcy5oIG5ld2xpYi1zdGRpbnQuaCIKKyAJdG1ha2VfZmlsZT0iJHt0bWFr ZV9maWxlfSBzcGFyYy90LXNwYXJjIHNwYXJjL3QtcnRlbXMiCisgCTs7Cistc3BhcmMtKi1saW51 eCopCisrc3BhcmMtKi1saW51eCogfCBzcGFyY3Y5LSotbGludXgqKQorIAl0bV9maWxlPSIke3Rt X2ZpbGV9IGRieGVsZi5oIGVsZm9zLmggc3BhcmMvc3lzdjQuaCBnbnUtdXNlci5oIGxpbnV4Lmgg Z2xpYmMtc3RkaW50Lmggc3BhcmMvdHNvLmgiCisgCWV4dHJhX29wdGlvbnM9IiR7ZXh0cmFfb3B0 aW9uc30gc3BhcmMvbG9uZy1kb3VibGUtc3dpdGNoLm9wdCIKKyAJY2FzZSAke3RhcmdldH0gaW4K K0BAIC0yNzEwLDcgKzI3MTAsNyBAQCBzcGFyYzY0LSotcnRlbXMqKQorIAlleHRyYV9vcHRpb25z PSIke2V4dHJhX29wdGlvbnN9IgorIAl0bWFrZV9maWxlPSIke3RtYWtlX2ZpbGV9IHNwYXJjL3Qt c3BhcmMgc3BhcmMvdC1ydGVtcy02NCIKKyAJOzsKKy1zcGFyYzY0LSotbGludXgqKQorK3NwYXJj NjQqLSotbGludXgqKQorIAl0bV9maWxlPSJzcGFyYy9iaWFyY2g2NC5oICR7dG1fZmlsZX0gZGJ4 ZWxmLmggZWxmb3MuaCBzcGFyYy9zeXN2NC5oIGdudS11c2VyLmggbGludXguaCBnbGliYy1zdGRp bnQuaCBzcGFyYy9kZWZhdWx0LTY0Lmggc3BhcmMvbGludXg2NC5oIHNwYXJjL3Rzby5oIgorIAll eHRyYV9vcHRpb25zPSIke2V4dHJhX29wdGlvbnN9IHNwYXJjL2xvbmctZG91YmxlLXN3aXRjaC5v cHQiCisgCXRtYWtlX2ZpbGU9IiR7dG1ha2VfZmlsZX0gc3BhcmMvdC1zcGFyYyBzcGFyYy90LWxp bnV4NjQiCistLS0gbGliZ2NjL2NvbmZpZy5ob3N0LmpqCTIwMDgtMDQtMjQgMTU6NDY6MTkuMDAw MDAwMDAwIC0wNTAwCisrKysgbGliZ2NjL2NvbmZpZy5ob3N0CTIwMDgtMDQtMjQgMTU6NDY6NDku MDAwMDAwMDAwIC0wNTAwCitAQCAtMTAwMiw3ICsxMDAyLDcgQEAgc3BhcmMtKi1lbGYqKQorIAl0 bWFrZV9maWxlPSIke3RtYWtlX2ZpbGV9IHQtZmRwYml0IHQtY3J0Zm0iCisgCWV4dHJhX3BhcnRz PSIkZXh0cmFfcGFydHMgY3J0aS5vIGNydG4ubyBjcnRmYXN0bWF0aC5vIgorIAk7OworLXNwYXJj LSotbGludXgqKQkJIyBTUEFSQydzIHJ1bm5pbmcgR05VL0xpbnV4LCBsaWJjNgorK3NwYXJjLSot bGludXgqIHwgc3BhcmN2OS0qLWxpbnV4KikJCSMgU1BBUkMncyBydW5uaW5nIEdOVS9MaW51eCwg bGliYzYKKyAJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSB0LWNydGZtIgorIAlpZiB0ZXN0ICIk e2hvc3RfYWRkcmVzc30iID0gNjQ7IHRoZW4KKyAJCXRtYWtlX2ZpbGU9IiR0bWFrZV9maWxlIHNw YXJjL3QtbGludXg2NCIKK0BAIC0xMDUwLDcgKzEwNTAsNyBAQCBzcGFyYzY0LSotZnJlZWJzZCp8 dWx0cmFzcGFyYy0qLWZyZWVic2QqCisgCXRtYWtlX2ZpbGU9IiR0bWFrZV9maWxlIHQtY3J0Zm0i CisgCWV4dHJhX3BhcnRzPSIkZXh0cmFfcGFydHMgY3J0ZmFzdG1hdGgubyIKKyAJOzsKKy1zcGFy YzY0LSotbGludXgqKQkJIyA2NC1iaXQgU1BBUkMncyBydW5uaW5nIEdOVS9MaW51eAorK3NwYXJj NjQqLSotbGludXgqKQkJIyA2NC1iaXQgU1BBUkMncyBydW5uaW5nIEdOVS9MaW51eAorIAlleHRy YV9wYXJ0cz0iJGV4dHJhX3BhcnRzIGNydGZhc3RtYXRoLm8iCisgCXRtYWtlX2ZpbGU9IiR7dG1h a2VfZmlsZX0gdC1jcnRmbSBzcGFyYy90LWxpbnV4IgorIAlpZiB0ZXN0ICIke2hvc3RfYWRkcmVz c30iID0gNjQ7IHRoZW4KCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCBmNzQ4 ZjRlLi43ZWQ2YjJhIDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEgKzEg QEAKLTE0NThlYmNjMzAyY2I0YWM2YmFiNWNiZjhiM2YzZmNjICBnY2MtNS4zLjEtMjAxNTEyMDcu dGFyLmJ6MgorYmFlYzJkMTNjNzNkMmY0MjEwNjY4ZGM1OGI2ZDMwYTQgIGdjYy02LjAuMC0yMDE2 MDEyNy50YXIuYnoyCg==