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: Peter Lemenkov To: git-commits@fedoraproject.org Subject: [rpms/opensips] f45: OpenSIPS ver. 4.0.1 Date: Wed, 19 Aug 2026 17:26:43 GMT Message-ID: <178716040330.1.18097172105038192133.rpms-opensips-9dcaaff7f89d@fedoraproject.org> List-ID: X-Git-Repo: rpms/opensips X-Git-Branch: f45 X-Git-Rev: 9dcaaff7f89d80b004b529e854880e9079a04f37 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvb3BlbnNpcHMKICAgICAgICAgICAgQnJhbmNoIDogZjQ1CiAgICAgICAgICAg IENvbW1pdCA6IDlkY2FhZmY3Zjg5ZDgwYjAwNGI1MjllODU0ODgwZTkwNzlhMDRmMzcKICAgICAg ICAgICAgQXV0aG9yIDogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KICAgICAg ICAgICAgRGF0ZSAgIDogMjAyNi0wOC0xOVQxODo0MDoyMyswMjowMAogICAgICAgICAgICBTdGF0 cyAgOiArNzI0Ly0xNjUzIGluIDE0IGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDogaHR0cHM6 Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9vcGVuc2lwcy9jLzlkY2FhZmY3Zjg5ZDgwYjAw NGI1MjllODU0ODgwZTkwNzlhMDRmMzc/YnJhbmNoPWY0NQoKICAgICAgICAgICAgTG9nOgogICAg ICAgICAgICBPcGVuU0lQUyB2ZXIuIDQuMC4xCgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtv diA8bGVtZW5rb3ZAZ21haWwuY29tPgoKLS0tCmRpZmYgLS1naXQgYS9vcGVuc2lwcy0wMDAxLUNv bnNpc3RlbnRseS11c2UtcnRwcHJveHktc3dpdGNoZXMucGF0Y2ggYi9vcGVuc2lwcy0wMDAxLUNv bnNpc3RlbnRseS11c2UtcnRwcHJveHktc3dpdGNoZXMucGF0Y2gKaW5kZXggYzE0ODU2Yi4uODFj NTZhMCAxMDA2NDQKLS0tIGEvb3BlbnNpcHMtMDAwMS1Db25zaXN0ZW50bHktdXNlLXJ0cHByb3h5 LXN3aXRjaGVzLnBhdGNoCisrKyBiL29wZW5zaXBzLTAwMDEtQ29uc2lzdGVudGx5LXVzZS1ydHBw cm94eS1zd2l0Y2hlcy5wYXRjaApAQCAtNSwxOSArNSwxOSBAQCBTdWJqZWN0OiBbUEFUQ0hdIENv bnNpc3RlbnRseSB1c2UgcnRwcHJveHkgc3dpdGNoZXMKIAogU2lnbmVkLW9mZi1ieTogUGV0ZXIg TGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KIAotZGlmZiAtLWdpdCBhL21vZHVsZXMvcnRw cHJveHkvZG9jL3J0cHByb3h5X2FkbWluLnhtbCBiL21vZHVsZXMvcnRwcHJveHkvZG9jL3J0cHBy b3h5X2FkbWluLnhtbAotaW5kZXggYTkzNzYxYTY2ZC4uYjE4NTE2Njc4NiAxMDA2NDQKLS0tLSBh L21vZHVsZXMvcnRwcHJveHkvZG9jL3J0cHByb3h5X2FkbWluLnhtbAotKysrIGIvbW9kdWxlcy9y dHBwcm94eS9kb2MvcnRwcHJveHlfYWRtaW4ueG1sCi1AQCAtNjM3LDcgKzYzNyw3IEBAIG1vZHBh cmFtKCJydHBwcm94eSIsICJnZW5lcmF0ZWRfc2RwX21lZGlhX2lwIiwgIjEwLjAuMC4xIikKLSAJ CQkJY29ubmVjdGlvbiBpbmZvcm1hdGlvbi4KLSAJCQkJPC9wYXJhPjwvbGlzdGl0ZW0+Ci0gCQkJ CTxsaXN0aXRlbT48cGFyYT4KLS0JCQkJPGVtcGhhc2lzPnMvdzwvZW1waGFzaXM+IC0gZmxhZ3Mg dGhhdCBmb3IgdGhlIFVBIGZyb20gd2hpY2ggCi0rCQkJCTxlbXBoYXNpcz5zPC9lbXBoYXNpcz4g LSBmbGFncyB0aGF0IGZvciB0aGUgVUEgZnJvbSB3aGljaCAKLSAJCQkJbWVzc2FnZSBpcyByZWNl aXZlZCwgc3VwcG9ydCBzeW1tZXRyaWMgUlRQIG11c3QgYmUgZm9yY2VkLgotIAkJCQk8L3BhcmE+ PC9saXN0aXRlbT4KLSAJCQkJPGxpc3RpdGVtPjxwYXJhPgorZGlmZiAtLWdpdCBhL21vZHVsZXMv cnRwcHJveHkvUkVBRE1FLm1kIGIvbW9kdWxlcy9ydHBwcm94eS9SRUFETUUubWQKK2luZGV4IDA4 MWIyYmZhMTYuLjBlMjMyNjc4ZDEgMTAwNjQ0CistLS0gYS9tb2R1bGVzL3J0cHByb3h5L1JFQURN RS5tZAorKysrIGIvbW9kdWxlcy9ydHBwcm94eS9SRUFETUUubWQKK0BAIC01MTIsNyArNTEyLDcg QEAgZGVzY3JpcHRpb24gKG89KSBzaG91bGQgYmUgYWxzbyBjaGFuZ2VkLgorICAgLSAqYyogLSBm bGFncyB0byBjaGFuZ2UgdGhlIHNlc3Npb24tbGV2ZWwgCisgU0RQIGNvbm5lY3Rpb24gKGM9KSBJ UCBpZiBtZWRpYS1kZXNjcmlwdGlvbiBhbHNvIGluY2x1ZGVzIAorIGNvbm5lY3Rpb24gaW5mb3Jt YXRpb24uCistICAtICpzL3cqIC0gZmxhZ3MgdGhhdCBmb3IgdGhlIFVBIGZyb20gd2hpY2ggCisr ICAtICpzKiAtIGZsYWdzIHRoYXQgZm9yIHRoZSBVQSBmcm9tIHdoaWNoIAorIG1lc3NhZ2UgaXMg cmVjZWl2ZWQsIHN1cHBvcnQgc3ltbWV0cmljIFJUUCBtdXN0IGJlIGZvcmNlZC4KKyAgIC0gKm5b PFNPQ0tFVD5dKiAtIGZsYWdzIHRoYXQgZW5hYmxlcworIHRoZSBub3RpZmljYXRpb24gdGltZW91 dCBmb3IgdGhlIHNlc3Npb24uIE9uZSBjYW4gc3BlY2lmeSBhbgogZGlmZiAtLWdpdCBhL21vZHVs ZXMvcnRwcHJveHkvcnRwcHJveHkuYyBiL21vZHVsZXMvcnRwcHJveHkvcnRwcHJveHkuYwogaW5k ZXggM2NmMjRjOWQ0Ni4uNTcwMDA4YjI1NCAxMDA2NDQKIC0tLSBhL21vZHVsZXMvcnRwcHJveHkv cnRwcHJveHkuYwoKZGlmZiAtLWdpdCBhL29wZW5zaXBzLTAwMDUtRml4LXJhYmJpdG1xLWMtZGVw cmVjYXRlZC1oZWFkZXItd2FybmluZ3MucGF0Y2ggYi9vcGVuc2lwcy0wMDA1LUZpeC1yYWJiaXRt cS1jLWRlcHJlY2F0ZWQtaGVhZGVyLXdhcm5pbmdzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAyMDhjNTBiLi4wMDAwMDAwCi0tLSBhL29wZW5zaXBzLTAwMDUtRml4LXJhYmJp dG1xLWMtZGVwcmVjYXRlZC1oZWFkZXItd2FybmluZ3MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSw0NzAgKzAsMCBAQAotRnJvbSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVu a292QGdtYWlsLmNvbT4KLURhdGU6IFN1biwgMjYgT2N0IDIwMjUgMTU6Mjk6MDQgKzAxMDAKLVN1 YmplY3Q6IFtQQVRDSF0gRml4IHJhYmJpdG1xLWMgZGVwcmVjYXRlZCBoZWFkZXIgd2FybmluZ3MK LU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRG LTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotRHVyaW5nIGNvbXBpbGF0aW9u IG9mIGV2ZW50X3JhYmJpdG1xIG1vZHVsZSwgc2V2ZXJhbCB3YXJuaW5ncyBhcHBlYXI6Ci0KLWBg YAotQ29tcGlsaW5nIHJhYmJpdG1xX2NvbnN1bWVyLmMKLWdjYyAtZlBJQyAtRFBJQyAtTzIgLWZs dG89YXV0byAtZmZhdC1sdG8tb2JqZWN0cyAtZmV4Y2VwdGlvbnMgLWcgLWdyZWNvcmQtZ2NjLXN3 aXRjaGVzIC1waXBlIC1XYWxsIC1Xbm8tY29tcGxhaW4td3JvbmctbGFuZyAtV2Vycm9yPWZvcm1h dC1zZWN1cml0eSAtV3AsLVVfRk9SVElGWV9TT1VSQ0UsLURfRk9SVElGWV9TT1VSQ0U9MyAtV3As LURfR0xJQkNYWF9BU1NFUlRJT05TIC1zcGVjcz0vdXNyL2xpYi9ycG0vcmVkaGF0L3JlZGhhdC1o YXJkZW5lZC1jYzEgLWZzdGFjay1wcm90ZWN0b3Itc3Ryb25nIC1zcGVjcz0vdXNyL2xpYi9ycG0v cmVkaGF0L3JlZGhhdC1hbm5vYmluLWNjMSAtbTY0IC1tYXJjaD14ODYtNjQgLW10dW5lPWdlbmVy aWMgLWZhc3luY2hyb25vdXMtdW53aW5kLXRhYmxlcyAtZnN0YWNrLWNsYXNoLXByb3RlY3Rpb24g LWZjZi1wcm90ZWN0aW9uIC1tdGxzLWRpYWxlY3Q9Z251MiAtZm5vLW9taXQtZnJhbWUtcG9pbnRl ciAtbW5vLW9taXQtbGVhZi1mcmFtZS1wb2ludGVyIC1ETU9EX05BTUU9J3JhYmJpdG1xX2NvbnN1 bWVyJyAtRFBLR19NQUxMT0MgIC1EU0hNX01NQVAgIC1EVVNFX01DQVNUICAtRERJU0FCTEVfTkFH TEUgIC1EU1RBVElTVElDUyAgLURIQVZFX1JFU09MVl9SRVMgIC1ERl9NQUxMT0MgIC1EUV9NQUxM T0MgIC1ESFBfTUFMTE9DICAtRERCR19NQUxMT0MgIC1ERl9QQVJBTExFTF9NQUxMT0MgIC1ESEFW RV9TVERBVE9NSUMgLURIQVZFX0dFTkVSSUNTICAtRE5BTUU9JyJvcGVuc2lwcyInIC1EVkVSU0lP Tj0nIjMuNi4yIicgLURBUkNIPScieDg2XzY0IicgLURPUz0nImxpbnV4IicgLURDT01QSUxFUj0n ImdjYyAxNSInIC1EX19DUFVfeDg2XzY0IC1EX19PU19saW51eCAtRF9fU01QX3llcyAtRENGR19E SVI9JyIvZXRjL29wZW5zaXBzLyInICAtRFZFUlNJT05UWVBFPSciZ2l0IicgLURUSElTUkVWSVNJ T049JyI5OTRiY2Q2OTAiJyAtREZBU1RfTE9DSyAtREFEQVBUSVZFX1dBSVQgLURBREFQVElWRV9X QUlUX0xPT1BTPTEwMjQgLURIQVZFX0dFVEhPU1RCWU5BTUUyIC1ESEFWRV9VTklPTl9TRU1VTiAt REhBVkVfTVNHX05PU0lHTkFMIC1ESEFWRV9NU0dIRFJfTVNHX0NPTlRST0wgLURIQVZFX0FMTE9D QV9IIC1ESEFWRV9USU1FR00gLURIQVZFX0VQT0xMIC1ESEFWRV9TSUdJT19SVCAtREhBVkVfU0VM RUNUICAtYyByYWJiaXRtcV9jb25zdW1lci5jIC1vIHJhYmJpdG1xX2NvbnN1bWVyLm8KLUluIGZp bGUgaW5jbHVkZWQgZnJvbSBybXFfY29ubmVjdGlvbi5oOjI1LAotICAgICAgICAgICAgICAgICBm cm9tIHJhYmJpdG1xX2NvbnN1bWVyLmM6MjU6Ci0vdXNyL2luY2x1ZGUvYW1xcC5oOjEwOjU6IHdh cm5pbmc6ICN3YXJuaW5nICJhbXFwLmggaXMgZGVwcmVjYXRlZCwgdXNlIHJhYmJpdG1xLWMvYW1x cC5oIGluc3RlYWQuIiBbLVdjcHBdCi0gICAxMCB8ICMgICB3YXJuaW5nICJhbXFwLmggaXMgZGVw cmVjYXRlZCwgdXNlIHJhYmJpdG1xLWMvYW1xcC5oIGluc3RlYWQuIgotICAgICAgfCAgICAgXn5+ fn5+fgotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHJtcV9jb25uZWN0aW9uLmg6MjY6Ci0vdXNyL2lu Y2x1ZGUvYW1xcF90Y3Bfc29ja2V0Lmg6MTA6NTogd2FybmluZzogI3dhcm5pbmcgImFtcXBfdGNw X3NvY2tldC5oIGlzIGRlcHJlY2F0ZWQsIHVzZSByYWJiaXRtcS1jL3RjcF9zb2NrZXQuaCBpbnN0 ZWFkLiIgWy1XY3BwXQotICAgMTAgfCAjICAgd2FybmluZyAiYW1xcF90Y3Bfc29ja2V0LmggaXMg ZGVwcmVjYXRlZCwgdXNlIHJhYmJpdG1xLWMvdGNwX3NvY2tldC5oIGluc3RlYWQuIgotICAgICAg fCAgICAgXn5+fn5+fgotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHJtcV9jb25uZWN0aW9uLmg6Mjc6 Ci0vdXNyL2luY2x1ZGUvYW1xcF9zc2xfc29ja2V0Lmg6MTI6NTogd2FybmluZzogI3dhcm5pbmcg ImFtcXBfc3NsX3NvY2tldC5oIGlzIGRlcHJlY2F0ZWQsIHVzZSByYWJiaXRtcS1jL3NzbF9zb2Nr ZXQuaCBpbnN0ZWFkLiIgWy1XY3BwXQotICAgMTIgfCAjICAgd2FybmluZyAiYW1xcF9zc2xfc29j a2V0LmggaXMgZGVwcmVjYXRlZCwgdXNlIHJhYmJpdG1xLWMvc3NsX3NvY2tldC5oIGluc3RlYWQu IgotICAgICAgfCAgICAgXn5+fn5+fgotcmFiYml0bXFfY29uc3VtZXIuYzogSW4gZnVuY3Rpb24g 4oCYbW9kX2luaXTigJk6Ci1yYWJiaXRtcV9jb25zdW1lci5jOjk5OjE3OiB3YXJuaW5nOiDigJhh bXFwX3NldF9pbml0aWFsaXplX3NzbF9saWJyYXJ54oCZIGlzIGRlcHJlY2F0ZWQgWy1XZGVwcmVj YXRlZC1kZWNsYXJhdGlvbnNdCi0gICA5OSB8ICAgICAgICAgICAgICAgICBhbXFwX3NldF9pbml0 aWFsaXplX3NzbF9saWJyYXJ5KDApOwotICAgICAgfCAgICAgICAgICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC91c3IvaW5jbHVk ZS9hbXFwX3NzbF9zb2NrZXQuaDoxNToKLS91c3IvaW5jbHVkZS9yYWJiaXRtcS1jL3NzbF9zb2Nr ZXQuaDoyNTA6MTY6IG5vdGU6IGRlY2xhcmVkIGhlcmUKLSAgMjUwIHwgdm9pZCBBTVFQX0NBTEwg YW1xcF9zZXRfaW5pdGlhbGl6ZV9zc2xfbGlicmFyeShhbXFwX2Jvb2xlYW5fdCBkb19pbml0aWFs aXplKTsKLSAgICAgIHwgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgotYGBgCi0KLVRoZSByYWJiaXRtcS1jIGxpYnJhcnkgcmVvcmdhbml6ZWQgaGVhZGVycyBp bnRvIGEgcmFiYml0bXEtYy8KLXN1YmRpcmVjdG9yeSBpbiB2ZXJzaW9uIDAuOC4wICgyMDE3KS4g VGhlIG9sZCB0b3AtbGV2ZWwgaGVhZGVycyByZW1haW4KLWFzIGRlcHJlY2F0ZWQgd3JhcHBlcnMg dGhhdCBlbWl0IHdhcm5pbmdzLiBBZGRpdGlvbmFsbHksIHRoZSBmdW5jdGlvbgotYW1xcF9zZXRf aW5pdGlhbGl6ZV9zc2xfbGlicmFyeSgpIHdhcyBkZXByZWNhdGVkIGluIHZlcnNpb24gMC4xMy4w Ci0oMjAyMikgYXMgU1NMIGluaXRpYWxpemF0aW9uIGJlY2FtZSBhdXRvbWF0aWMuCi0KLUNoYW5n ZXMgbWFkZToKLQotMS4gUmVtb3ZlZCBvYnNvbGV0ZSB2ZXJzaW9uIGd1YXJkIGZvciByYWJiaXRt cS1jIDAuNC4wOgotICAgVGhlIGd1YXJkIGNoZWNraW5nIEFNUVBfVkVSU0lPTiA+PSAweDAwMDQw MDAwIGFuZCBkZWZpbmluZwotICAgQU1RUF9WRVJTSU9OX3YwNCB3YXMgbmVlZGVkIGZvciBhbmNp ZW50IHZlcnNpb25zICgyMDEzKS4gQWxsIGN1cnJlbnRseQotICAgc3VwcG9ydGVkIGRpc3RyaWJ1 dGlvbnMgc2hpcCByYWJiaXRtcS1jID49IDAuOS4wLCBtYWtpbmcgdGhpcyBjaGVjawotICAgdW5u ZWNlc3NhcnkuCi0KLTIuIFVwZGF0ZWQgaGVhZGVyIGluY2x1ZGVzIHRvIHVzZSByYWJiaXRtcS1j LyBzdWJkaXJlY3Rvcnk6Ci0gICAtIENoYW5nZWQ6ICNpbmNsdWRlIDxhbXFwLmg+Ci0gICAtIFRv OiAgICAgICNpbmNsdWRlIDxyYWJiaXRtcS1jL2FtcXAuaD4KLSAgIC0gQXBwbGllZCB0bzogYW1x cC5oLCBhbXFwX2ZyYW1pbmcuaCwgYW1xcF90Y3Bfc29ja2V0LmgsIGFtcXBfc3NsX3NvY2tldC5o Ci0KLTMuIEFkZGVkIHZlcnNpb24gZ3VhcmQgZm9yIGFtcXBfc2V0X2luaXRpYWxpemVfc3NsX2xp YnJhcnkoKToKLSAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggYXJndW1lbnQgMCB0byB0 ZWxsIHJhYmJpdG1xLWMgTk9UIHRvCi0gICBpbml0aWFsaXplIE9wZW5TU0wsIHNpbmNlIE9wZW5T SVBTIG1hbmFnZXMgaXRzIG93biBTU0wvVExTIHN0YWNrIGF0IGEKLSAgIGhpZ2hlciBsZXZlbC4g VGhlIGZ1bmN0aW9uIGlzIG5lZWRlZCBmb3IgcmFiYml0bXEtYyA8IDAuMTMuMCBidXQgd2FzCi0g ICBkZXByZWNhdGVkIGluIDAuMTMuMCB3aGVuIHRoZSBsaWJyYXJ5IG1hZGUgU1NMIGluaXRpYWxp emF0aW9uIGJlaGF2aW9yCi0gICBjb25maWd1cmFibGUgYnkgZGVmYXVsdC4KLQotICAgQ2hhbmdl ZDoKLSAgICAgYW1xcF9zZXRfaW5pdGlhbGl6ZV9zc2xfbGlicmFyeSgwKTsKLSAgIFRvOgotICAg ICAjaWYgQU1RUF9WRVJTSU9OIDwgQU1RUF9WRVJTSU9OX0NPREUoMCwgMTMsIDAsIDApCi0gICAg ICAgICBhbXFwX3NldF9pbml0aWFsaXplX3NzbF9saWJyYXJ5KDApOwotICAgICAjZW5kaWYKLQot Tm90ZTogVGhlIGV4aXN0aW5nIHZlcnNpb24gZ3VhcmQgZm9yIEFNUVBfVkVSU0lPTiA8IDAuMTAu MCAoc3NsX2xvY2spIHdhcwotcHJlc2VydmVkIGFzIGl0IGhhbmRsZXMgcmVhbCBBUEkgZGlmZmVy ZW5jZXMgYmV0d2VlbiAwLjkueCBhbmQgMC4xMC4wKwotdmVyc2lvbnMgc3RpbGwgcHJlc2VudCBp biBjdXJyZW50IGRpc3RyaWJ1dGlvbnMuCi0KLUNvbXBhdGliaWxpdHkgYW5hbHlzaXM6Ci0KLVN1 cnZleSBvZiBhY3RpdmVseSBzdXBwb3J0ZWQgZGlzdHJpYnV0aW9ucyBzaG93cyBhbGwgc2hpcCBy YWJiaXRtcS1jID49IDAuOS4wOgotCi0tIFJIRUwvUm9ja3kvQWxtYSA4Lzk6ID49IDAuOS4wCi0t IFVidW50dSAyMC4wNC8yMi4wNC8yNC4wNDogPj0gMC45LjAKLS0gRGViaWFuIDExLzEyOiA+PSAw LjkuMAotLSBGZWRvcmEgMzkvNDAvNDE6ID49IDAuMTMuMAotLSBtYWNPUyBIb21lYnJldzogMC4x NS4wCi0tIG1hY09TIE1hY1BvcnRzOiAwLjExLjAKLQotVGhlIDAuNC4wIGNvbXBhdGliaWxpdHkg Y29kZSAoZnJvbSAyMDEzKSBpcyBubyBsb25nZXIgbmVlZGVkLiBUaGUgMC4xMy4wCi1ndWFyZCBp cyBuZWNlc3NhcnkgYXMgc29tZSBMVFMgZGlzdHJpYnV0aW9ucyBzdGlsbCBzaGlwIDAuOS54LTAu MTIueC4KLQotU2lnbmVkLW9mZi1ieTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNv bT4KLUFzc2lzdGVkLWJ5OiBDbGF1ZGUgKEFudGhyb3BpYykgPGh0dHBzOi8vY2xhdWRlLmFpPgot Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9SRUFETUUgYi9tb2R1bGVzL2V2 ZW50X3JhYmJpdG1xL1JFQURNRQotaW5kZXggN2NiMjEzZjM1YS4uNTM1MWVhZGNjNiAxMDA2NDQK LS0tLSBhL21vZHVsZXMvZXZlbnRfcmFiYml0bXEvUkVBRE1FCi0rKysgYi9tb2R1bGVzL2V2ZW50 X3JhYmJpdG1xL1JFQURNRQotQEAgLTEzMCw3ICsxMzAsNyBAQCBDaGFwdGVyIDEuIEFkbWluIEd1 aWRlCi0gCi0gICAgVGhlIGZvbGxvd2luZyBsaWJyYXJpZXMgb3IgYXBwbGljYXRpb25zIG11c3Qg YmUgaW5zdGFsbGVkCi0gICAgYmVmb3JlIHJ1bm5pbmcgT3BlblNJUFMgd2l0aCB0aGlzIG1vZHVs ZSBsb2FkZWQ6Ci0tICAgICAqIGxpYnJhYmJpdG1xLWRldgotKyAgICAgKiBsaWJyYWJiaXRtcS1k ZXYgdmVyLiAwLjkgb3IgaGlnaGVyCi0gCi0gMS41LiBFeHBvcnRlZCBQYXJhbWV0ZXJzCi0gCi1k aWZmIC0tZ2l0IGEvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9kb2MvZXZlbnRfcmFiYml0bXFfYWRt aW4ueG1sIGIvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9kb2MvZXZlbnRfcmFiYml0bXFfYWRtaW4u eG1sCi1pbmRleCA0Mzg5Njc1NDE3Li42ZDQ2MTljZTUxIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9l dmVudF9yYWJiaXRtcS9kb2MvZXZlbnRfcmFiYml0bXFfYWRtaW4ueG1sCi0rKysgYi9tb2R1bGVz L2V2ZW50X3JhYmJpdG1xL2RvYy9ldmVudF9yYWJiaXRtcV9hZG1pbi54bWwKLUBAIC0xMzEsNyAr MTMxLDcgQEAKLSAJCQk8aXRlbWl6ZWRsaXN0PgotIAkJCTxsaXN0aXRlbT4KLSAJCQk8cGFyYT4K LS0JCQkJPGVtcGhhc2lzPmxpYnJhYmJpdG1xLWRldjwvZW1waGFzaXM+Ci0rCQkJCTxlbXBoYXNp cz5saWJyYWJiaXRtcS1kZXYgdmVyLiAwLjkgb3IgaGlnaGVyPC9lbXBoYXNpcz4KLSAJCQk8L3Bh cmE+Ci0gCQkJPC9saXN0aXRlbT4KLSAJCQk8L2l0ZW1pemVkbGlzdD4KLWRpZmYgLS1naXQgYS9t b2R1bGVzL2V2ZW50X3JhYmJpdG1xL2V2ZW50X3JhYmJpdG1xLmMgYi9tb2R1bGVzL2V2ZW50X3Jh YmJpdG1xL2V2ZW50X3JhYmJpdG1xLmMKLWluZGV4IGNhYzUzOTY0ZWYuLjMwMjhiZDk2ZGUgMTAw NjQ0Ci0tLS0gYS9tb2R1bGVzL2V2ZW50X3JhYmJpdG1xL2V2ZW50X3JhYmJpdG1xLmMKLSsrKyBi L21vZHVsZXMvZXZlbnRfcmFiYml0bXEvZXZlbnRfcmFiYml0bXEuYwotQEAgLTUwLDkgKzUwLDcg QEAgc3RhdGljIHVuc2lnbmVkIGludCBoZWFydGJlYXQgPSAwOwotIHN0YXRpYyBpbnQgcm1xX2Nv bm5lY3RfdGltZW91dCA9IFJNUV9ERUZBVUxUX0NPTk5FQ1RfVElNRU9VVDsKLSBzdGF0aWMgaW50 IHJtcV90aW1lb3V0ID0gMDsKLSBzdHJ1Y3QgdGltZXZhbCBjb25uX3RpbWVvdXRfdHY7Ci0tI2lm IGRlZmluZWQgQU1RUF9WRVJTSU9OICYmIEFNUVBfVkVSU0lPTiA+PSAweDAwMDkwMDAwCi0gc3Ry dWN0IHRpbWV2YWwgcnBjX3RpbWVvdXRfdHY7Ci0tI2VuZGlmCi0gaW50IHVzZV90bHM7Ci0gc3Ry dWN0IHRsc19tZ21fYmluZHMgdGxzX2FwaTsKLSBzdHJ1Y3Qgb3BlbnNzbF9iaW5kcyBvcGVuc3Ns X2FwaTsKLUBAIC0yMDEsMjQgKzE5OSwxNCBAQCBzdGF0aWMgaW50IG1vZF9pbml0KHZvaWQpCi0g CWNvbm5fdGltZW91dF90di50dl9zZWMgPSBybXFfY29ubmVjdF90aW1lb3V0LzEwMDA7Ci0gCWNv bm5fdGltZW91dF90di50dl91c2VjID0gKHJtcV9jb25uZWN0X3RpbWVvdXQlMTAwMCkqMTAwMDsK LSAKLS0jaWYgZGVmaW5lZCBBTVFQX1ZFUlNJT04gJiYgQU1RUF9WRVJTSU9OID49IDB4MDAwOTAw MDAKLSAJaWYgKHJtcV90aW1lb3V0IDwgMCkgewotIAkJTE1fV0FSTigiaW52YWxpZCB2YWx1ZSBm b3IgJ3RpbWVvdXQnICVkOyBmYWxsYmFjayB0byBibG9ja2luZyBtb2RlXG4iLCBybXFfdGltZW91 dCk7Ci0gCQlybXFfdGltZW91dCA9IDA7Ci0gCX0KLSAJcnBjX3RpbWVvdXRfdHYudHZfc2VjID0g cm1xX3RpbWVvdXQvMTAwMDsKLSAJcnBjX3RpbWVvdXRfdHYudHZfdXNlYyA9IChybXFfdGltZW91 dCUxMDAwKSoxMDAwOwotLSNlbHNlCi0tCWlmIChybXFfdGltZW91dCAhPSAwKQotLQkJTE1fV0FS Tigic2V0dGluZyB0aGUgdGltZW91dCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0OyBmYWxsYmFjayB0 byBibG9ja2luZyBtb2RlXG4iKTsKLS0jZW5kaWYKLSAKLSAJaWYgKHVzZV90bHMpIHsKLS0JCSNp Zm5kZWYgQU1RUF9WRVJTSU9OX3YwNAotLQkJTE1fRVJSKCJUTFMgbm90IHN1cHBvcnRlZCBmb3Ig bGlicmFiYml0bXEgdmVyc2lvbiBsb3dlciB0aGFuIDAuNC4wXG4iKTsKLS0JCXJldHVybiAtMTsK LS0JCSNlbmRpZgotLQotIAkJaWYgKGxvYWRfdGxzX29wZW5zc2xfYXBpKCZvcGVuc3NsX2FwaSkp IHsKLSAJCQlMTV9EQkcoIkZhaWxlZCB0byBsb2FkIG9wZW5zc2wgQVBJXG4iKTsKLSAJCQlyZXR1 cm4gLTE7Ci1AQCAtMjQxLDcgKzIyOSw5IEBAIHN0YXRpYyBpbnQgbW9kX2luaXQodm9pZCkKLSAJ CX0KLSAJCSNlbmRpZgotIAotKyNpZiBBTVFQX1ZFUlNJT04gPCBBTVFQX1ZFUlNJT05fQ09ERSgw LCAxMywgMCwgMCkKLSAJCWFtcXBfc2V0X2luaXRpYWxpemVfc3NsX2xpYnJhcnkoMCk7Ci0rI2Vu ZGlmCi0gCX0KLSAKLSAJcmV0dXJuIDA7Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9ldmVudF9yYWJi aXRtcS9ldmVudF9yYWJiaXRtcS5oIGIvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9ldmVudF9yYWJi aXRtcS5oCi1pbmRleCA1YjExNThlMTZmLi5iMjdjMmFkNjRkIDEwMDY0NAotLS0tIGEvbW9kdWxl cy9ldmVudF9yYWJiaXRtcS9ldmVudF9yYWJiaXRtcS5oCi0rKysgYi9tb2R1bGVzL2V2ZW50X3Jh YmJpdG1xL2V2ZW50X3JhYmJpdG1xLmgKLUBAIC0yNywxMyArMjcsMTAgQEAKLSAjaWZuZGVmIF9F Vl9STVFfSF8KLSAjZGVmaW5lIF9FVl9STVFfSF8KLSAKLS0jaW5jbHVkZSA8YW1xcC5oPgotLSNp bmNsdWRlIDxhbXFwX2ZyYW1pbmcuaD4KLS0jaWYgZGVmaW5lZCBBTVFQX1ZFUlNJT04gJiYgQU1R UF9WRVJTSU9OID49IDB4MDAwNDAwMDAKLS0gICNkZWZpbmUgQU1RUF9WRVJTSU9OX3YwNAotLSNp bmNsdWRlIDxhbXFwX3RjcF9zb2NrZXQuaD4KLS0jaW5jbHVkZSA8YW1xcF9zc2xfc29ja2V0Lmg+ Ci0tI2VuZGlmCi0rI2luY2x1ZGUgPHJhYmJpdG1xLWMvYW1xcC5oPgotKyNpbmNsdWRlIDxyYWJi aXRtcS1jL2ZyYW1pbmcuaD4KLSsjaW5jbHVkZSA8cmFiYml0bXEtYy90Y3Bfc29ja2V0Lmg+Ci0r I2luY2x1ZGUgPHJhYmJpdG1xLWMvc3NsX3NvY2tldC5oPgotIAotICNpbmNsdWRlICIuLi90bHNf bWdtL2FwaS5oIgotICNpbmNsdWRlICJybXFfc2VydmVycy5oIgotZGlmZiAtLWdpdCBhL21vZHVs ZXMvZXZlbnRfcmFiYml0bXEvcm1xX3NlcnZlcnMuYyBiL21vZHVsZXMvZXZlbnRfcmFiYml0bXEv cm1xX3NlcnZlcnMuYwotaW5kZXggZDkyMGU1OTlkMS4uZDFmNmExOWFiNCAxMDA2NDQKLS0tLSBh L21vZHVsZXMvZXZlbnRfcmFiYml0bXEvcm1xX3NlcnZlcnMuYwotKysrIGIvbW9kdWxlcy9ldmVu dF9yYWJiaXRtcS9ybXFfc2VydmVycy5jCi1AQCAtMzMsNjEgKzMzLDcgQEAKLSAKLSAjaW5jbHVk ZSAicm1xX3NlcnZlcnMuaCIKLSAjaW5jbHVkZSAicmFiYml0bXFfc2VuZC5oIgotLSNpbmNsdWRl IDxhbXFwX2ZyYW1pbmcuaD4KLS0KLS0jaWZkZWYgQU1RUF9WRVJTSU9OX3YwNAotLSNkZWZpbmUg cm1xX3BhcnNlX3JtIGFtcXBfcGFyc2VfdXJsCi0tI2Vsc2UKLS0jaW5jbHVkZSAiLi4vLi4vZGIv ZGJfaWQuaCIKLS0jd2FybmluZyAiWW91IGFyZSB1c2luZyBhbiBvbGQsIHVuc3VwcG9ydGVkIFJh YmJpdE1RIGxpYnJhcnkgdmVyc2lvbiAtIGNvbXBpbGUgb24geW91ciBvd24gcmlzayEiCi0tLyog dWdseSBoYWNrIHRvIG1vdmUgcHRyIGZyb20gaWQgdG8gcm1xX3VyaSAqLwotLSNkZWZpbmUgUFRS X01PVkUoX2Zyb20sIF90bykgXAotLQlkbyB7IFwKLS0JCShfdG8pID0gKF9mcm9tKTsgXAotLQkJ KF9mcm9tKSA9IE5VTEw7IFwKLS0JfSB3aGlsZSgwKQotLXN0YXRpYyBpbmxpbmUgaW50IHJtcV9w YXJzZV9ybShjaGFyICp1cmwsIHJtcV91cmkgKnVyaSkKLS17Ci0tCXN0ciBzdXJsOwotLQlzdHJ1 Y3QgZGJfaWQgKmlkOwotLQotLQlzdXJsLnMgPSB1cmw7Ci0tCXN1cmwubGVuID0gc3RybGVuKHVy bCk7Ci0tCi0tCWlmICgoaWQgPSBuZXdfZGJfaWQoJnN1cmwpKSA9PSBOVUxMKQotLQkJcmV0dXJu IC0xOwotLQotLQlpZiAoc3RyY21wKGlkLT5zY2hlbWUsICJhbXFwcyIpID09IDApCi0tCQl1cmkt PnNzbCA9IDE7Ci0tCi0tCS8qIHRoZXJlIG1pZ2h0IG1lIGEgcGtnIGxlYWsgY29tcGFyZWQgdG8g dGhlIG5ld2VyIHZlcnNpb24sIGJ1dCBwYXJzaW5nCi0tCSAqIG9ubHkgaGFwcGVuZHMgYXQgc3Rh cnR1cCwgc28gd2Ugc2hvdWxkIG5vdCB3b3JyeSBhYm91dCB0aGlzIG5vdyAqLwotLQlpZiAoaWQt PnVzZXJuYW1lKQotLQkJUFRSX01PVkUoaWQtPnVzZXJuYW1lLCB1cmktPnVzZXIpOwotLQllbHNl Ci0tCQl1cmktPnVzZXIgPSAiZ3Vlc3QiOwotLQlpZiAoaWQtPnBhc3N3b3JkKQotLQkJUFRSX01P VkUoaWQtPnBhc3N3b3JkLCB1cmktPnBhc3N3b3JkKTsKLS0JZWxzZQotLQkJdXJpLT5wYXNzd29y ZCA9ICJndWVzdCI7Ci0tCWlmIChpZC0+aG9zdCkKLS0JCVBUUl9NT1ZFKGlkLT5ob3N0LCB1cmkt Pmhvc3QpOwotLQllbHNlCi0tCQl1cmktPmhvc3QgPSAibG9jYWxob3N0IjsKLS0JaWYgKGlkLT5k YXRhYmFzZSkKLS0JCVBUUl9NT1ZFKGlkLT5kYXRhYmFzZSwgdXJpLT52aG9zdCk7Ci0tCWVsc2UK LS0JCXVyaS0+dmhvc3QgPSAiLyI7Ci0tCWlmIChpZC0+cG9ydCkKLS0JCXVyaS0+cG9ydCA9IGlk LT5wb3J0OwotLQllbHNlIGlmICh1cmktPnNzbCkKLS0JCXVyaS0+cG9ydCA9IDU2NzE7Ci0tCWVs c2UKLS0JCXVyaS0+cG9ydCA9IDU2NzI7Ci0tCWZyZWVfZGJfaWQoaWQpOwotLQlyZXR1cm4gMDsK LS19Ci0tI2VuZGlmCi0rI2luY2x1ZGUgPHJhYmJpdG1xLWMvZnJhbWluZy5oPgotIAotIHN0YXRp YyBPU0lQU19MSVNUX0hFQUQocm1xX3NlcnZlcnMpOwotIAotQEAgLTExNyw5ICs2Myw2IEBAIGlu dCBybXFfZXJyb3IoY2hhciBjb25zdCAqY29udGV4dCwgYW1xcF9ycGNfcmVwbHlfdCB4KQotIHsK LSAJYW1xcF9jb25uZWN0aW9uX2Nsb3NlX3QgKm1jb25uOwotIAlhbXFwX2NoYW5uZWxfY2xvc2Vf dCAqbWNoYW47Ci0tI2lmbmRlZiBBTVFQX1ZFUlNJT05fdjA0Ci0tCWNoYXIgKmVycm9yc3RyOwot LSNlbmRpZgotIAotIAlzd2l0Y2ggKHgucmVwbHlfdHlwZSkgewotIAkJY2FzZSBBTVFQX1JFU1BP TlNFX05PUk1BTDoKLUBAIC0xMzAsMTMgKzczLDcgQEAgaW50IHJtcV9lcnJvcihjaGFyIGNvbnN0 ICpjb250ZXh0LCBhbXFwX3JwY19yZXBseV90IHgpCi0gCQkJYnJlYWs7Ci0gCi0gCQljYXNlIEFN UVBfUkVTUE9OU0VfTElCUkFSWV9FWENFUFRJT046Ci0tI2lmbmRlZiBBTVFQX1ZFUlNJT05fdjA0 Ci0tCQkJZXJyb3JzdHIgPSBhbXFwX2Vycm9yX3N0cmluZyh4LmxpYnJhcnlfZXJyb3IpOwotLQkJ CUxNX0VSUigiJXM6ICVzXG4iLCBjb250ZXh0LCBlcnJvcnN0cik7Ci0tCQkJZnJlZShlcnJvcnN0 cik7Ci0tI2Vsc2UKLSAJCQlMTV9FUlIoIiVzOiAlc1xuIiwgY29udGV4dCwgYW1xcF9lcnJvcl9z dHJpbmcyKHgubGlicmFyeV9lcnJvcikpOwotLSNlbmRpZgotIAkJCWJyZWFrOwotIAotIAkJY2Fz ZSBBTVFQX1JFU1BPTlNFX1NFUlZFUl9FWENFUFRJT046Ci1AQCAtMTcwLDkgKzEwNyw3IEBAIGlu dCBybXFfZXJyb3IoY2hhciBjb25zdCAqY29udGV4dCwgYW1xcF9ycGNfcmVwbHlfdCB4KQotICAq LwotIGludCBybXFfc2VydmVyX3JlY29ubmVjdChybXFfY29ubmVjdGlvbl90ICpjb25uLCBjaGFy ICphZGRyZXNzLCBpbnQgcG9ydCwgaW50IG1heF9mcmFtZXMsIHN0ciBjaWQpCi0gewotLSNpZiBk ZWZpbmVkIEFNUVBfVkVSU0lPTl92MDQKLSAJYW1xcF9zb2NrZXRfdCAqYW1xcF9zb2NrOwotLSNl bmRpZgotIAlpbnQgc29ja2V0OwotIAotIAlzd2l0Y2ggKGNvbm4tPnN0YXRlKSB7Ci1AQCAtMTgy LDcgKzExNyw2IEBAIGludCBybXFfc2VydmVyX3JlY29ubmVjdChybXFfY29ubmVjdGlvbl90ICpj b25uLCBjaGFyICphZGRyZXNzLCBpbnQgcG9ydCwgaW50IG1hCi0gCQkJTE1fRVJSKCJjYW5ub3Qg Y3JlYXRlIGFtcXAgY29ubmVjdGlvbiFcbiIpOwotIAkJCXJldHVybiAtMTsKLSAJCX0KLS0jaWYg ZGVmaW5lZCBBTVFQX1ZFUlNJT05fdjA0Ci0gCQlpZiAodXNlX3RscyAmJiAoY29ubi0+dXJpLnNz bCB8fCAoY29ubi0+ZmxhZ3MmUk1RX1BBUkFNX1RMUykpKSB7Ci0gCQkJaWYgKCFjb25uLT50bHNf ZG9tKSB7Ci0gCQkJCWNvbm4tPnRsc19kb20gPSB0bHNfYXBpLmZpbmRfY2xpZW50X2RvbWFpbl9u YW1lKCZjb25uLT50bHNfZG9tX25hbWUpOwotQEAgLTMxNCwxNiArMjQ4LDYgQEAgaW50IHJtcV9z ZXJ2ZXJfcmVjb25uZWN0KHJtcV9jb25uZWN0aW9uX3QgKmNvbm4sIGNoYXIgKmFkZHJlc3MsIGlu dCBwb3J0LCBpbnQgbWEKLSAJCQkJYW1xcF9zZXRfcnBjX3RpbWVvdXQoY29ubi0+Y29ubiwgJnJw Y190aW1lb3V0X3R2KSA8IDApCi0gCQkJTE1fRVJSKCJzZXR0aW5nIFJQQyB0aW1lb3V0IC0gZ29p bmcgYmxvY2tpbmdcbiIpOwotICNlbmRpZgotLQotLSNlbHNlCi0tCQlzb2NrZXQgPSBhbXFwX29w ZW5fc29ja2V0X25vYmxvY2soYWRkcmVzcywgcG9ydCwKLS0JCQkJJmNvbm5fdGltZW91dF90dik7 Ci0tCQlpZiAoc29ja2V0IDwgMCkgewotLQkJCUxNX0VSUigiY2Fubm90IG9wZW4gQU1RUCBzb2Nr ZXRcbiIpOwotLQkJCXJldHVybiAtMTsKLS0JCX0KLS0JCWFtcXBfc2V0X3NvY2tmZChjb25uLT5j b25uLCBzb2NrZXQpOwotLSNlbmRpZgotIAkJY29ubi0+c3RhdGUgPSBSTVFTX0lOSVQ7Ci0gCQkv KiBmYWxsIHRocm91Z2ggKi8KLSAJY2FzZSBSTVFTX0lOSVQ6Ci1AQCAtNTY4LDcgKzQ5Miw3IEBA IG5vX3ZhbHVlOgotIAltZW1jcHkodXJpLCBzdXJpLnMsIHN1cmkubGVuKTsKLSAJdXJpW3N1cmku bGVuXSA9IDA7Ci0gCi0tCWlmIChybXFfcGFyc2Vfcm0odXJpLCAmc3J2LT5jb25uLnVyaSkgIT0g MCkgewotKwlpZiAoYW1xcF9wYXJzZV91cmwodXJpLCAmc3J2LT5jb25uLnVyaSkgIT0gMCkgewot IAkJTE1fRVJSKCJbJS4qc10gY2Fubm90IHBhcnNlIHJhYmJpdG1xIHVyaTogJXNcbiIsIGNpZC5s ZW4sIGNpZC5zLCB1cmkpOwotIAkJZ290byBmcmVlOwotIAl9Ci1AQCAtNjA1LDcgKzUyOSw3IEBA IG5vX3ZhbHVlOgotIAkJfQotIAkJbWVtY3B5KHNydi0+Y29ubi5leGNoYW5nZS5ieXRlcywgZXhj aGFuZ2UucywgZXhjaGFuZ2UubGVuKTsKLSAJfSBlbHNlCi0tCQlzcnYtPmNvbm4uZXhjaGFuZ2Ug PSBSTVFfRU1QVFk7Ci0rCQlzcnYtPmNvbm4uZXhjaGFuZ2UgPSBhbXFwX2VtcHR5X2J5dGVzOwot IAotIAlzcnYtPmNvbm4uc3RhdGUgPSBSTVFTX09GRjsKLSAJc3J2LT5jaWQgPSBjaWQ7Ci1AQCAt Njc3LDE2ICs2MDEsNiBAQCB2b2lkIHJtcV9jb25uZWN0X3NlcnZlcnModm9pZCkKLSAKLSBpbnQg YW1xcF9jaGVja19zdGF0dXMocm1xX2Nvbm5lY3Rpb25fdCAqY29ubiwgaW50IHIsIGludCAqcmV0 cnksIHN0ciBjaWQpCi0gewotLSNpZm5kZWYgQU1RUF9WRVJTSU9OX3YwNAotLQlpZiAociAhPSAw KSB7Ci0tCQlMTV9FUlIoIlslLipzXSB1bmtub3duIEFNUVAgZXJyb3IgWyVkXSB3aGlsZSBzZW5k aW5nXG4iLAotLQkJCQlzcnYtPmNpZC5sZW4sIHNydi0+Y2lkLnMsIHIpOwotLQkJLyogd2UgY2xv c2UgdGhlIGNvbm5lY3Rpb24gaGVyZSB0byBiZSBhYmxlIHRvIHJlLWNvbm5lY3QgbGF0ZXIgKi8K LS0JCS8qIFRPRE86IGNsb3NlIHRoZSBjb25uZWN0aW9uICovCi0tCQlyZXR1cm4gcjsKLS0JfQot LQlyZXR1cm4gMDsKLS0jZWxzZQotIAlzd2l0Y2ggKHIpIHsKLSAJCWNhc2UgQU1RUF9TVEFUVVNf T0s6Ci0gCQkJcmV0dXJuIDA7Ci1AQCAtNzQxLDcgKzY1NSw2IEBAIG5vX2Nsb3NlOgotIAkJcmV0 dXJuIDE7Ci0gCX0KLSAJcmV0dXJuIHI7Ci0tI2VuZGlmCi0gfQotIAotIGludCBybXFfYmFzaWNf c2VydmVyX3B1Ymxpc2gocm1xX2Nvbm5lY3Rpb25fdCAqY29ubiwgaW50IG1heF9mcmFtZXMsCi1k aWZmIC0tZ2l0IGEvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9ybXFfc2VydmVycy5oIGIvbW9kdWxl cy9ldmVudF9yYWJiaXRtcS9ybXFfc2VydmVycy5oCi1pbmRleCBhNzAwZDgwMDQ5Li4wZDg1M2Y4 ZjJiIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9ybXFfc2VydmVycy5oCi0r KysgYi9tb2R1bGVzL2V2ZW50X3JhYmJpdG1xL3JtcV9zZXJ2ZXJzLmgKLUBAIC00MCw3ICs0MCw3 IEBACi0gCi0gI2luY2x1ZGUgIi4uL3Rsc19vcGVuc3NsL29wZW5zc2xfYXBpLmgiCi0gI2luY2x1 ZGUgIi4uL3Rsc19tZ20vYXBpLmgiCi0tI2luY2x1ZGUgPGFtcXAuaD4KLSsjaW5jbHVkZSA8cmFi Yml0bXEtYy9hbXFwLmg+Ci0gI2luY2x1ZGUgIi4uLy4uL2xpYi9saXN0LmgiCi0gCi0gI2lmIEFN UVBfVkVSU0lPTiA8IEFNUVBfVkVSU0lPTl9DT0RFKDAsIDEwLCAwLCAwKQotQEAgLTQ5LDMwICs0 OSw4IEBACi0gZXh0ZXJuIGdlbl9sb2NrX3QgKnNzbF9sb2NrOwotICNlbmRpZgotIAotLS8qIEFN UVBfVkVSU0lPTiB3YXMgb25seSBhZGRlZCBpbiB2MC40LjAgLSB0aGVyZSBpcyBubyB3YXkgdG8g Y2hlY2sgdGhlCi0tICogdmVyc2lvbiBvZiB0aGUgbGlicmFyeSBiZWZvcmUgdGhpcywgc28gd2Ug Y29uc2lkZXIgZXZlcnl0aGluZyBiZXlvbmQgdjAuNC4wCi0tICogYXMgb2xkIGFuZCBpbm5lZmlj aWVudCAqLwotLSNpZiBkZWZpbmVkIEFNUVBfVkVSU0lPTiAmJiBBTVFQX1ZFUlNJT04gPj0gQU1R UF9WRVJTSU9OX0NPREUoMCwgNCwgMCwgMCkKLS0gICNkZWZpbmUgQU1RUF9WRVJTSU9OX3YwNAot LSNpbmNsdWRlIDxhbXFwX3RjcF9zb2NrZXQuaD4KLS0jaW5jbHVkZSA8YW1xcF9zc2xfc29ja2V0 Lmg+Ci0tI2RlZmluZSBybXFfdXJpIHN0cnVjdCBhbXFwX2Nvbm5lY3Rpb25faW5mbwotLSNkZWZp bmUgUk1RX0VNUFRZIGFtcXBfZW1wdHlfYnl0ZXMKLS0jZWxzZQotLS8qIGFsdGhvdWdoIHN0cnVj dCBhbXFwX2Nvbm5lY3Rpb25faW5mbyB3YXMgYWRkZWQgaW4gdjAuMi4wLCB0aGVyZSBpcyBubyB3 YXkKLS0gKiB0byBjaGVjayBhZ2FpbnN0IHRoYXQgdmVyc2lvbiwgc28gd2UgYXNzdW1lIGl0IGRv ZXMgbm90IGV4aXN0IHVudGlsIHYwLjQuMAotLSAqLwotLXR5cGVkZWYgc3RydWN0IF9ybXFfdXJp IHsKLS0JY2hhciAqdXNlcjsKLS0JY2hhciAqcGFzc3dvcmQ7Ci0tCWNoYXIgKmhvc3Q7Ci0tCWNo YXIgKnZob3N0OwotLQlpbnQgcG9ydDsKLS0JaW50IHNzbDsKLS19IHJtcV91cmk7Ci0tI2RlZmlu ZSBSTVFfRU1QVFkgQU1RUF9FTVBUWV9CWVRFUwotLSNlbmRpZgotLQotKyNpbmNsdWRlIDxyYWJi aXRtcS1jL3RjcF9zb2NrZXQuaD4KLSsjaW5jbHVkZSA8cmFiYml0bXEtYy9zc2xfc29ja2V0Lmg+ Ci0gCi0gZW51bSBybXFfc2VydmVyX3N0YXRlIHsgUk1RU19PRkYsIFJNUVNfSU5JVCwgUk1RU19D T05OLCBSTVFTX09OLCBSTVFTX1BSRUlOSVQgfTsKLSAKLUBAIC04Miw3ICs2MCw3IEBAIGVudW0g cm1xX3NlcnZlcl9zdGF0ZSB7IFJNUVNfT0ZGLCBSTVFTX0lOSVQsIFJNUVNfQ09OTiwgUk1RU19P TiwgUk1RU19QUkVJTklUIH07Ci0gCi0gdHlwZWRlZiBzdHJ1Y3Qgcm1xX2Nvbm5lY3Rpb24gewot IAllbnVtIHJtcV9zZXJ2ZXJfc3RhdGUgc3RhdGU7Ci0tCXJtcV91cmkgdXJpOwotKwlzdHJ1Y3Qg YW1xcF9jb25uZWN0aW9uX2luZm8gdXJpOwotIAl1bnNpZ25lZCBmbGFnczsKLSAJaW50IGhlYXJ0 YmVhdDsKLSAJc3RyIHRsc19kb21fbmFtZTsKLWRpZmYgLS1naXQgYS9tb2R1bGVzL3JhYmJpdG1x X2NvbnN1bWVyL1JFQURNRSBiL21vZHVsZXMvcmFiYml0bXFfY29uc3VtZXIvUkVBRE1FCi1pbmRl eCAwMmRmNjAyNGJhLi4xZjNiYzA1OGUxIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9yYWJiaXRtcV9j b25zdW1lci9SRUFETUUKLSsrKyBiL21vZHVsZXMvcmFiYml0bXFfY29uc3VtZXIvUkVBRE1FCi1A QCAtNzIsOCArNzIsOCBAQCBDaGFwdGVyIDEuIEFkbWluIEd1aWRlCi0gICAgYmVmb3JlIHJ1bm5p bmcgT3BlblNJUFMgd2l0aCB0aGlzIG1vZHVsZSBsb2FkZWQ6Ci0gICAgICAqIGxpYnJhYmJpdG1x LWRldgotIAotLSAgIE5PdGUgdGhhdCB0aGUgbW9kdWxlIGlzIG5vdCBjb21wYXRpYmxlIHdpdGgg dmVyc2lvbnMgMC40IG9yCi0tICAgYmVsb3cgb2YgdGhlIGxpYnJhYmJpdG1xLWRldiBsaWJyYXJ5 LgotKyAgIE5vdGUgdGhhdCB0aGUgbW9kdWxlIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdmVyc2lv bnMgYmVsb3cgMC45Ci0rICAgb2YgdGhlIGxpYnJhYmJpdG1xLWRldiBsaWJyYXJ5LgotIAotIDEu My4gRXhwb3J0ZWQgUGFyYW1ldGVycwotIAotZGlmZiAtLWdpdCBhL21vZHVsZXMvcmFiYml0bXFf Y29uc3VtZXIvZG9jL3JhYmJpdG1xX2NvbnN1bWVyX2FkbWluLnhtbCBiL21vZHVsZXMvcmFiYml0 bXFfY29uc3VtZXIvZG9jL3JhYmJpdG1xX2NvbnN1bWVyX2FkbWluLnhtbAotaW5kZXggYThkYTNj YjJhNy4uODU2ZWQ3Mzk1NCAxMDA2NDQKLS0tLSBhL21vZHVsZXMvcmFiYml0bXFfY29uc3VtZXIv ZG9jL3JhYmJpdG1xX2NvbnN1bWVyX2FkbWluLnhtbAotKysrIGIvbW9kdWxlcy9yYWJiaXRtcV9j b25zdW1lci9kb2MvcmFiYml0bXFfY29uc3VtZXJfYWRtaW4ueG1sCi1AQCAtNTAsNyArNTAsNyBA QAotIAkJCTwvbGlzdGl0ZW0+Ci0gCQkJPC9pdGVtaXplZGxpc3Q+Ci0gCQk8cGFyYT4KLS0JCQlO T3RlIHRoYXQgdGhlIG1vZHVsZSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHZlcnNpb25zIDAuNCBv ciBiZWxvdyBvZgotKwkJCU5vdGUgdGhhdCB0aGUgbW9kdWxlIGlzIG5vdCBjb21wYXRpYmxlIHdp dGggdmVyc2lvbnMgYmVsb3cgMC45IG9mCi0gCQkJdGhlIGxpYnJhYmJpdG1xLWRldiBsaWJyYXJ5 LgotIAkJPC9wYXJhPgotIAk8L3NlY3Rpb24+Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9yYWJiaXRt cV9jb25zdW1lci9yYWJiaXRtcV9jb25zdW1lci5jIGIvbW9kdWxlcy9yYWJiaXRtcV9jb25zdW1l ci9yYWJiaXRtcV9jb25zdW1lci5jCi1pbmRleCA2NDYyZjU3MDhjLi5jNmNmMjQxN2RiIDEwMDY0 NAotLS0tIGEvbW9kdWxlcy9yYWJiaXRtcV9jb25zdW1lci9yYWJiaXRtcV9jb25zdW1lci5jCi0r KysgYi9tb2R1bGVzL3JhYmJpdG1xX2NvbnN1bWVyL3JhYmJpdG1xX2NvbnN1bWVyLmMKLUBAIC05 Niw3ICs5Niw5IEBAIHN0YXRpYyBpbnQgbW9kX2luaXQodm9pZCkKLSAJCQlyZXR1cm4gLTE7Ci0g CQl9Ci0gCi0rI2lmIEFNUVBfVkVSU0lPTl9NQUpPUiA9PSAwICYmIEFNUVBfVkVSU0lPTl9NSU5P UiA8IDEzCi0gCQlhbXFwX3NldF9pbml0aWFsaXplX3NzbF9saWJyYXJ5KDApOwotKyNlbmRpZiAv LyBBTVFQX1ZFUlNJT05fTUFKT1IgPT0gMCAmJiBBTVFQX1ZFUlNJT05fTUlOT1IgPCAxMwotIAl9 Ci0gCi0gCXJldHVybiAwOwotZGlmZiAtLWdpdCBhL21vZHVsZXMvcmFiYml0bXFfY29uc3VtZXIv cm1xX2Nvbm5lY3Rpb24uaCBiL21vZHVsZXMvcmFiYml0bXFfY29uc3VtZXIvcm1xX2Nvbm5lY3Rp b24uaAotaW5kZXggOGFlYTQ4NzEwYS4uYTM0YTBkZWI1MSAxMDA2NDQKLS0tLSBhL21vZHVsZXMv cmFiYml0bXFfY29uc3VtZXIvcm1xX2Nvbm5lY3Rpb24uaAotKysrIGIvbW9kdWxlcy9yYWJiaXRt cV9jb25zdW1lci9ybXFfY29ubmVjdGlvbi5oCi1AQCAtMjIsOSArMjIsOSBAQAotICNpZm5kZWYg X1JNUV9DT05ORUNUSU9OX0hfCi0gI2RlZmluZSBfUk1RX0NPTk5FQ1RJT05fSF8KLSAKLS0jaW5j bHVkZSA8YW1xcC5oPgotLSNpbmNsdWRlIDxhbXFwX3RjcF9zb2NrZXQuaD4KLS0jaW5jbHVkZSA8 YW1xcF9zc2xfc29ja2V0Lmg+Ci0rI2luY2x1ZGUgPHJhYmJpdG1xLWMvYW1xcC5oPgotKyNpbmNs dWRlIDxyYWJiaXRtcS1jL3RjcF9zb2NrZXQuaD4KLSsjaW5jbHVkZSA8cmFiYml0bXEtYy9zc2xf c29ja2V0Lmg+Ci0gCi0gI2luY2x1ZGUgIi4uLy4uL2xpYi9saXN0LmgiCi0gI2luY2x1ZGUgIi4u Ly4uL2V2aS9ldmlfcGFyYW1zLmgiCgpkaWZmIC0tZ2l0IGEvb3BlbnNpcHMtMDAwNS1GaXgtdW5p bml0aWFsaXplZC12YXJpYWJsZS13YXJuaW5ncy1pbi1TUUwtQVBJLWZ1bmN0LnBhdGNoIGIvb3Bl bnNpcHMtMDAwNS1GaXgtdW5pbml0aWFsaXplZC12YXJpYWJsZS13YXJuaW5ncy1pbi1TUUwtQVBJ LWZ1bmN0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlZGY5NzMK LS0tIC9kZXYvbnVsbAorKysgYi9vcGVuc2lwcy0wMDA1LUZpeC11bmluaXRpYWxpemVkLXZhcmlh YmxlLXdhcm5pbmdzLWluLVNRTC1BUEktZnVuY3QucGF0Y2gKQEAgLTAsMCArMSwxNDUgQEAKK0Zy b20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+CitE YXRlOiBTdW4sIDI2IE9jdCAyMDI1IDE2OjUwOjUzICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIEZp eCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHdhcm5pbmdzIGluIFNRTCBBUEkgZnVuY3Rpb25zCitN SU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04 CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK0R1cmluZyBjb21waWxhdGlvbiBv ZiBzcWxvcHMgbW9kdWxlIHdpdGggR0NDIDE1LCB3YXJuaW5ncyBhcHBlYXIgYWJvdXQKK3BvdGVu dGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzOgorCitgYGAKK0NvbXBpbGluZyBzcWxvcHNf ZGIuYworZ2NjIC1mUElDIC1EUElDIC1PMiAtZmx0bz1hdXRvIC1mZmF0LWx0by1vYmplY3RzIC1m ZXhjZXB0aW9ucyAtZyAtZ3JlY29yZC1nY2Mtc3dpdGNoZXMgLXBpcGUgLVdhbGwgLVduby1jb21w bGFpbi13cm9uZy1sYW5nIC1XZXJyb3I9Zm9ybWF0LXNlY3VyaXR5IC1XcCwtVV9GT1JUSUZZX1NP VVJDRSwtRF9GT1JUSUZZX1NPVVJDRT0zIC1XcCwtRF9HTElCQ1hYX0FTU0VSVElPTlMgLXNwZWNz PS91c3IvbGliL3JwbS9yZWRoYXQvcmVkaGF0LWhhcmRlbmVkLWNjMSAtZnN0YWNrLXByb3RlY3Rv ci1zdHJvbmcgLXNwZWNzPS91c3IvbGliL3JwbS9yZWRoYXQvcmVkaGF0LWFubm9iaW4tY2MxIC1t NjQgLW1hcmNoPXg4Ni02NCAtbXR1bmU9Z2VuZXJpYyAtZmFzeW5jaHJvbm91cy11bndpbmQtdGFi bGVzIC1mc3RhY2stY2xhc2gtcHJvdGVjdGlvbiAtZmNmLXByb3RlY3Rpb24gLW10bHMtZGlhbGVj dD1nbnUyIC1mbm8tb21pdC1mcmFtZS1wb2ludGVyIC1tbm8tb21pdC1sZWFmLWZyYW1lLXBvaW50 ZXIgLURNT0RfTkFNRT0nc3Fsb3BzJyAtRFBLR19NQUxMT0MgIC1EU0hNX01NQVAgIC1EVVNFX01D QVNUICAtRERJU0FCTEVfTkFHTEUgIC1EU1RBVElTVElDUyAgLURIQVZFX1JFU09MVl9SRVMgIC1E Rl9NQUxMT0MgIC1EUV9NQUxMT0MgIC1ESFBfTUFMTE9DICAtRERCR19NQUxMT0MgIC1ERl9QQVJB TExFTF9NQUxMT0MgIC1ESEFWRV9TVERBVE9NSUMgLURIQVZFX0dFTkVSSUNTICAtRE5BTUU9JyJv cGVuc2lwcyInIC1EVkVSU0lPTj0nIjMuNi4yIicgLURBUkNIPScieDg2XzY0IicgLURPUz0nImxp bnV4IicgLURDT01QSUxFUj0nImdjYyAxNSInIC1EX19DUFVfeDg2XzY0IC1EX19PU19saW51eCAt RF9fU01QX3llcyAtRENGR19ESVI9JyIvZXRjL29wZW5zaXBzLyInICAtRFZFUlNJT05UWVBFPSci Z2l0IicgLURUSElTUkVWSVNJT049JyI5OTRiY2Q2OTAiJyAtREZBU1RfTE9DSyAtREFEQVBUSVZF X1dBSVQgLURBREFQVElWRV9XQUlUX0xPT1BTPTEwMjQgLURIQVZFX0dFVEhPU1RCWU5BTUUyIC1E SEFWRV9VTklPTl9TRU1VTiAtREhBVkVfTVNHX05PU0lHTkFMIC1ESEFWRV9NU0dIRFJfTVNHX0NP TlRST0wgLURIQVZFX0FMTE9DQV9IIC1ESEFWRV9USU1FR00gLURIQVZFX0VQT0xMIC1ESEFWRV9T SUdJT19SVCAtREhBVkVfU0VMRUNUIC1jIHNxbG9wc19kYi5jIC1vIHNxbG9wc19kYi5vCitJbiBm aWxlIGluY2x1ZGVkIGZyb20gLi4vLi4vbWVtL21lbS5oOjMwLAorICAgICAgICAgICAgICAgICBm cm9tIHNxbG9wc19kYi5jOjI3Ogorc3Fsb3BzX2RiLmM6IEluIGZ1bmN0aW9uIOKAmHNxbF9hcGlf ZGVsZXRl4oCZOgorLi4vLi4vbWVtLy4uL2RwcmludC5oOjQ1NDozMzogd2FybmluZzog4oCYaWTi gJkgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBbLVdtYXliZS11bmluaXRpYWxpemVkXQorICA0 NTQgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRwcmludChfbG9nX2xldmVsLCBf bG9nX2ZhY2lsaXR5LCBcCisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKyAgNDU1IHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExPR19QUkVGSVhfVVRJTChNT0RfTkFNRSksIF9f RFBfRlVOQywgXAorICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisgIDQ1NiB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfc3RkZXJyX3ByZWZpeCBMT0dfUFJF RklYIF9mbXQsIFwKKyAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorICA0NTcgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikiJXMiIF9zeXNsb2dfcHJlZml4 IExPR19QUkVGSVggX2ZtdCwgXAorICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgorICA0NTggfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIg KilfZm10LCBcCisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB+fn5+fn5+fn5+fn5+fn4KKyAgNDU5IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRwX3RpbWUoKSwgZHBfbXlfcGlkKCksIGxvZ19wcmVmaXgsIF9fRFBfRlVOQywg IyMgYXJncykgXAorICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgorc3Fsb3BzX2RiLmM6OTIxOjE0OiBub3RlOiDigJhpZOKAmSB3YXMgZGVjbGFyZWQgaGVyZQor ICA5MjEgfCAgICAgICAgIHN0ciAqaWQ7CisgICAgICB8ICAgICAgICAgICAgICBefgorYGBgCisK K0luIHNxbF9hcGlfc2VsZWN0KCksIHNxbF9hcGlfdXBkYXRlKCksIHNxbF9hcGlfaW5zZXJ0KCks CitzcWxfYXBpX2RlbGV0ZSgpLCBhbmQgc3FsX2FwaV9yZXBsYWNlKCkgZnVuY3Rpb25zLCB0aGUg J2lkJyBwb2ludGVyCit2YXJpYWJsZSAodXNlZCBmb3IgcHJlcGFyZWQgc3RhdGVtZW50IGlkZW50 aWZpZXJzKSBpcyBkZWNsYXJlZCBidXQgY291bGQKK2JlIHVuaW5pdGlhbGl6ZWQuCisKK0xldCdz IGVuc3VyZSB0aGF0OgorCistIFRoZSB2YXJpYWJsZSBpcyBhbHdheXMgaW5pdGlhbGl6ZWQgKHBy ZXZlbnRzIHVuZGVmaW5lZCBiZWhhdmlvcikKKy0gRGVidWcgbG9nZ2luZyBvbmx5IG9jY3VycyB3 aGVuIGEgcHJlcGFyZWQgc3RhdGVtZW50IElEIHdhcyBhY3R1YWxseQorICBnZW5lcmF0ZWQKKy0g VGhlIGNvZGUgaXMgc2FmZSBldmVuIHdoZW4gbm8gZmlsdGVyIGtleXMgYXJlIHByb3ZpZGVkCisK K05vdGU6IFRoaXMgd2FzIGEgcmVhbCBidWcsIG5vdCBqdXN0IGEgc3B1cmlvdXMgY29tcGlsZXIg d2FybmluZy4gSW4KK3NjZW5hcmlvcyB3aGVyZSBEQl9DQVBfUFJFUEFSRURfU1RNVCBpcyBzdXBw b3J0ZWQsIF9xdWVyeV9pZF9zdGFydCgpCitzdWNjZWVkcywgYnV0IG5vIGZpbHRlciBrZXlzIGV4 aXN0LCB0aGUgY29kZSB3b3VsZCBkZXJlZmVyZW5jZSBhbgordW5pbml0aWFsaXplZCBwb2ludGVy LgorCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgor QXNzaXN0ZWQtYnk6IENsYXVkZSAoQW50aHJvcGljKSA8aHR0cHM6Ly9jbGF1ZGUuYWk+CisKK2Rp ZmYgLS1naXQgYS9tb2R1bGVzL3NxbG9wcy9zcWxvcHNfZGIuYyBiL21vZHVsZXMvc3Fsb3BzL3Nx bG9wc19kYi5jCitpbmRleCA4YjU3YTEzYzQ4Li5jZjM2NDU5M2Y4IDEwMDY0NAorLS0tIGEvbW9k dWxlcy9zcWxvcHMvc3Fsb3BzX2RiLmMKKysrKyBiL21vZHVsZXMvc3Fsb3BzL3NxbG9wc19kYi5j CitAQCAtNzUyLDcgKzc1Miw4IEBAIGludCBzcWxfYXBpX3NlbGVjdChzdHJ1Y3QgZGJfdXJsICp1 cmwsIHN0cnVjdCBzaXBfbXNnKiBtc2csIGNKU09OICpKY29scywKKyAJKGtleXMgJiYgKGlkPV9x dWVyeV9pZF9hZGRfZmlsdGVyKGtleXMsb3BzLG5rKSk9PU5VTEwpICkgeworIAkJTE1fREJHKCJu b3QgdXNpbmcgUFNcbiIpOworIAl9IGVsc2UgeworLQkJTE1fREJHKCJQUyBpZCBpcyA8JS4qcz5c biIsaWQtPmxlbixpZC0+cyk7CisrCQlpZihpZCkKKysJCQlMTV9EQkcoIlBTIGlkIGlzIDwlLipz PlxuIixpZC0+bGVuLGlkLT5zKTsKKyAJCWlmIChwc19tYXAhPU5VTEwgfHwgKHBzX21hcD1tYXBf Y3JlYXRlKDApKSE9TlVMTCkgeworIAkJCWlmICggKG15X3BzPW1hcF9nZXQoIHBzX21hcCwgKmlk ICkpIT1OVUxMKSB7CisgCQkJCUxNX0RCRygidXNpbmcgUFMgJXBcbiIsKm15X3BzKTsKK0BAIC04 MDQsNyArODA1LDcgQEAgaW50IHNxbF9hcGlfdXBkYXRlKHN0cnVjdCBkYl91cmwgKnVybCwgc3Ry dWN0IHNpcF9tc2cqIG1zZywgY0pTT04gKkpjb2xzLAorIAlkYl9vcF90ICp1b3BzLCAqb3BzOwor IAlkYl92YWxfdCAqdXZhbHMsICp2YWxzOworIAlpbnQgbmssIHVuazsKKy0Jc3RyICppZDsKKysJ c3RyICppZCA9IE5VTEw7CisgCWRiX3BzX3QgKm15X3BzOworIAorIAkvKiBjb252ZXJ0IEpTT04g dG8gQ09McyAqLworQEAgLTgzOCw3ICs4MzksOCBAQCBpbnQgc3FsX2FwaV91cGRhdGUoc3RydWN0 IGRiX3VybCAqdXJsLCBzdHJ1Y3Qgc2lwX21zZyogbXNnLCBjSlNPTiAqSmNvbHMsCisgCShrZXlz ICYmIChpZD1fcXVlcnlfaWRfYWRkX2ZpbHRlcihrZXlzLG9wcyxuaykpPT1OVUxMKSApIHsKKyAJ CUxNX0RCRygibm90IHVzaW5nIFBTXG4iKTsKKyAJfSBlbHNlIHsKKy0JCUxNX0RCRygiUFMgaWQg aXMgPCUuKnM+XG4iLGlkLT5sZW4saWQtPnMpOworKwkJaWYoaWQpCisrCQkJTE1fREJHKCJQUyBp ZCBpcyA8JS4qcz5cbiIsaWQtPmxlbixpZC0+cyk7CisgCQlpZiAocHNfbWFwIT1OVUxMIHx8IChw c19tYXA9bWFwX2NyZWF0ZSgwKSkhPU5VTEwpIHsKKyAJCQlpZiAoIChteV9wcz1tYXBfZ2V0KCBw c19tYXAsICppZCApKSE9TlVMTCkgeworIAkJCQlMTV9EQkcoInVzaW5nIFBTICVwXG4iLCpteV9w cyk7CitAQCAtODY4LDcgKzg3MCw3IEBAIGludCBzcWxfYXBpX2luc2VydChzdHJ1Y3QgZGJfdXJs ICp1cmwsIHN0cnVjdCBzaXBfbXNnKiBtc2csIHN0ciAqdGFibGUsCisgCWRiX29wX3QgKnVvcHM7 CisgCWRiX3ZhbF90ICp1dmFsczsKKyAJaW50IHVuazsKKy0Jc3RyICppZDsKKysJc3RyICppZCA9 IE5VTEw7CisgCWRiX3BzX3QgKm15X3BzOworIAorIAkvKiBjb252ZXJ0IEpTT04gdG8gQ09McyAq LworQEAgLTg4OCw3ICs4OTAsOCBAQCBpbnQgc3FsX2FwaV9pbnNlcnQoc3RydWN0IGRiX3VybCAq dXJsLCBzdHJ1Y3Qgc2lwX21zZyogbXNnLCBzdHIgKnRhYmxlLAorIAkoaWQ9X3F1ZXJ5X2lkX2Fk ZF9maWx0ZXIodWtleXMsdW9wcyx1bmspKT09TlVMTCApIHsKKyAJCUxNX0RCRygibm90IHVzaW5n IFBTXG4iKTsKKyAJfSBlbHNlIHsKKy0JCUxNX0RCRygiUFMgaWQgaXMgPCUuKnM+XG4iLGlkLT5s ZW4saWQtPnMpOworKwkJaWYoaWQpCisrCQkJTE1fREJHKCJQUyBpZCBpcyA8JS4qcz5cbiIsaWQt PmxlbixpZC0+cyk7CisgCQlpZiAocHNfbWFwIT1OVUxMIHx8IChwc19tYXA9bWFwX2NyZWF0ZSgw KSkhPU5VTEwpIHsKKyAJCQlpZiAoIChteV9wcz1tYXBfZ2V0KCBwc19tYXAsICppZCApKSE9TlVM TCkgeworIAkJCQlMTV9EQkcoInVzaW5nIFBTICVwXG4iLCpteV9wcyk7CitAQCAtOTE4LDcgKzky MSw3IEBAIGludCBzcWxfYXBpX2RlbGV0ZShzdHJ1Y3QgZGJfdXJsICp1cmwsIHN0cnVjdCBzaXBf bXNnKiBtc2csCisgCWRiX29wX3QgKm9wczsKKyAJZGJfdmFsX3QgKnZhbHM7CisgCWludCBuazsK Ky0Jc3RyICppZDsKKysJc3RyICppZCA9IE5VTEw7CisgCWRiX3BzX3QgKm15X3BzOworIAorIAkv KiBjb252ZXJ0IEpTT04gdG8ga2V5cyAqLworQEAgLTk0NSw3ICs5NDgsOCBAQCBpbnQgc3FsX2Fw aV9kZWxldGUoc3RydWN0IGRiX3VybCAqdXJsLCBzdHJ1Y3Qgc2lwX21zZyogbXNnLAorIAkoa2V5 cyAmJiAoaWQ9X3F1ZXJ5X2lkX2FkZF9maWx0ZXIoa2V5cyxvcHMsbmspKT09TlVMTCkgKSB7Cisg CQlMTV9EQkcoIm5vdCB1c2luZyBQU1xuIik7CisgCX0gZWxzZSB7CistCQlMTV9EQkcoIlBTIGlk IGlzIDwlLipzPlxuIixpZC0+bGVuLGlkLT5zKTsKKysJCWlmKGlkKQorKwkJCUxNX0RCRygiUFMg aWQgaXMgPCUuKnM+XG4iLGlkLT5sZW4saWQtPnMpOworIAkJaWYgKHBzX21hcCE9TlVMTCB8fCAo cHNfbWFwPW1hcF9jcmVhdGUoMCkpIT1OVUxMKSB7CisgCQkJaWYgKCAobXlfcHM9bWFwX2dldCgg cHNfbWFwLCAqaWQgKSkhPU5VTEwpIHsKKyAJCQkJTE1fREJHKCJ1c2luZyBQUyAlcFxuIiwqbXlf cHMpOworQEAgLTk3NSw3ICs5NzksNyBAQCBpbnQgc3FsX2FwaV9yZXBsYWNlKHN0cnVjdCBkYl91 cmwgKnVybCwgc3RydWN0IHNpcF9tc2cqIG1zZywgc3RyICp0YWJsZSwKKyAJZGJfb3BfdCAqdW9w czsKKyAJZGJfdmFsX3QgKnV2YWxzOworIAlpbnQgdW5rOworLQlzdHIgKmlkOworKwlzdHIgKmlk ID0gTlVMTDsKKyAJZGJfcHNfdCAqbXlfcHM7CisgCisgCS8qIGNvbnZlcnQgSlNPTiB0byBDT0xz ICovCitAQCAtOTk1LDcgKzk5OSw4IEBAIGludCBzcWxfYXBpX3JlcGxhY2Uoc3RydWN0IGRiX3Vy bCAqdXJsLCBzdHJ1Y3Qgc2lwX21zZyogbXNnLCBzdHIgKnRhYmxlLAorIAkoaWQ9X3F1ZXJ5X2lk X2FkZF9maWx0ZXIodWtleXMsdW9wcyx1bmspKT09TlVMTCApIHsKKyAJCUxNX0RCRygibm90IHVz aW5nIFBTXG4iKTsKKyAJfSBlbHNlIHsKKy0JCUxNX0RCRygiUFMgaWQgaXMgPCUuKnM+XG4iLGlk LT5sZW4saWQtPnMpOworKwkJaWYoaWQpCisrCQkJTE1fREJHKCJQUyBpZCBpcyA8JS4qcz5cbiIs aWQtPmxlbixpZC0+cyk7CisgCQlpZiAocHNfbWFwIT1OVUxMIHx8IChwc19tYXA9bWFwX2NyZWF0 ZSgwKSkhPU5VTEwpIHsKKyAJCQlpZiAoIChteV9wcz1tYXBfZ2V0KCBwc19tYXAsICppZCApKSE9 TlVMTCkgeworIAkJCQlMTV9EQkcoInVzaW5nIFBTICVwXG4iLCpteV9wcyk7CgpkaWZmIC0tZ2l0 IGEvb3BlbnNpcHMtMDAwNi1GaXgtdW5pbml0aWFsaXplZC12YV9saXN0LXdhcm5pbmctb24tcHBj NjRsZS1hbmQtaTY4LnBhdGNoIGIvb3BlbnNpcHMtMDAwNi1GaXgtdW5pbml0aWFsaXplZC12YV9s aXN0LXdhcm5pbmctb24tcHBjNjRsZS1hbmQtaTY4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjk1N2NlZjUKLS0tIC9kZXYvbnVsbAorKysgYi9vcGVuc2lwcy0wMDA2 LUZpeC11bmluaXRpYWxpemVkLXZhX2xpc3Qtd2FybmluZy1vbi1wcGM2NGxlLWFuZC1pNjgucGF0 Y2gKQEAgLTAsMCArMSwxMDAgQEAKK0Zyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBldGVyIExlbWVua292 IDxsZW1lbmtvdkBnbWFpbC5jb20+CitEYXRlOiBGcmksIDI2IERlYyAyMDI1IDE3OjI1OjA1ICsw MTAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCB1bmluaXRpYWxpemVkIHZhX2xpc3Qgd2FybmluZyBv biBwcGM2NGxlIGFuZCBpNjg2IHdpdGgKKyBHQ0MgMTUKKworRHVyaW5nIGNvbXBpbGF0aW9uIG9u IHBwYzY0bGUgYW5kIGk2ODYgYXJjaGl0ZWN0dXJlcyB3aXRoIEdDQyAxNSwgYQord2FybmluZyBh cHBlYXJzOgorCitgYGAKK2NhY2hlZGJfcmVkaXNfZGJhc2UuYzogSW4gZnVuY3Rpb24gJ3JlZGlz X3J1bl9jb21tYW5kX2FyZ3YnOgorY2FjaGVkYl9yZWRpc19kYmFzZS5jOjY1OToxNjogd2Fybmlu ZzogJ18nIGlzIHVzZWQgdW5pbml0aWFsaXplZCBbLVd1bmluaXRpYWxpemVkXQorICA2NTkgfCAg ICAgICAgIHJldHVybiBfcmVkaXNfcnVuX2NvbW1hbmQoY29ubmVjdGlvbiwgcnBsLCBrZXksIGFy Z2MsIGFyZ3YsIGFyZ3ZsZW4sIE5VTEwsIF8pOworICAgICAgfCAgICAgICAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CitjYWNoZWRiX3JlZGlzX2RiYXNlLmM6NjU3OjE3OiBub3RlOiAnXycgd2FzIGRl Y2xhcmVkIGhlcmUKKyAgNjU3IHwgICAgICAgICB2YV9saXN0IF87CisgICAgICB8ICAgICAgICAg ICAgICAgICBeCitgYGAKKworSW4gY29tbWl0IGQ2YWQ2ZDQwMzlmY2Y2ODYyNDQ4MWY2OWVlNjdl ZmY5MmY3YjNhYjIsIHRoZQorYHJlZGlzX3J1bl9jb21tYW5kX2FyZ3YoKWAgZnVuY3Rpb24gd2Fz IG1vZGlmaWVkIHRvIHBhc3MgYW4KK3VuaW5pdGlhbGl6ZWQgYHZhX2xpc3RgIHRvIGBfcmVkaXNf cnVuX2NvbW1hbmQoKWAuCisKK1RoZSBvcmlnaW5hbCBsb2dpYyBpczoKK2BgYGMKK3N0YXRpYyBp bnQgcmVkaXNfcnVuX2NvbW1hbmRfYXJndiguLi4pIHsKKyAgICB2YV9saXN0IF87CisgICAgcmV0 dXJuIF9yZWRpc19ydW5fY29tbWFuZChjb25uZWN0aW9uLCBycGwsIGtleSwgYXJnYywgYXJndiwg YXJndmxlbiwgTlVMTCwgXyk7Cit9CitgYGAKKworVGhlIHVuZGVyc2NvcmUgYF9gIHdhcyB1c2Vk IGFzIGEgImRvbid0IGNhcmUiIHBsYWNlaG9sZGVyLCBzaW5jZSB3aGVuCitgYXJnY2AgaXMgbm9u LXplcm8sIGBfcmVkaXNfcnVuX2NvbW1hbmQoKWAgdXNlcyB0aGUgYGFyZ3ZgIHBhdGggYW5kCitu ZXZlciBhY2Nlc3NlcyB0aGUgYHZhX2xpc3RgIHBhcmFtZXRlcjoKKworYGBgYworaWYgKGFyZ2Mp IHsKKyAgICByZXBseSA9IHJlZGlzQ29tbWFuZEFyZ3Yobm9kZS0+Y29udGV4dCwgYXJnYywgYXJn diwgYXJndmxlbik7Cit9IGVsc2UgeworICAgIHZhX2NvcHkoYXEsIGFwKTsgIC8vIE9ubHkgZXhl Y3V0ZWQgd2hlbiBhcmdjID09IDAKKyAgICByZXBseSA9IHJlZGlzdkNvbW1hbmQobm9kZS0+Y29u dGV4dCwgY21kX2ZtdCwgYXEpOworICAgIHZhX2VuZChhcSk7Cit9CitgYGAKKworV2hpbGUgdGhp cyB3b3JrZWQgaW4gcHJhY3RpY2UgKHRoZSB1bmluaXRpYWxpemVkIGB2YV9saXN0YCBpcyBuZXZl cgorYWN0dWFsbHkgdXNlZCksIEdDQyAxNSBub3cgY29ycmVjdGx5IHdhcm5zIHRoYXQgcGFzc2lu ZyB1bmluaXRpYWxpemVkCitkYXRhIGlzIHVuZGVmaW5lZCBiZWhhdmlvciwgZXZlbiBpZiB0aGF0 IGRhdGEgaXMgbmV2ZXIgYWNjZXNzZWQuCisKK0luaXRpYWxpemUgdGhlIGB2YV9saXN0YCB0byBh IHNhZmUgdmFsdWUgdXNpbmcgemVyby1pbml0aWFsaXphdGlvbi4gVGhpcworc2F0aXNmaWVzIHRo ZSBjb21waWxlcidzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY2hlY2sgd2hpbGUgbWFpbnRhaW5p bmcKK3RoZSBvcmlnaW5hbCBsb2dpYyAtIHRoZSBgdmFfbGlzdGAgc3RpbGwgd29uJ3QgYmUgdXNl ZCB3aGVuIGBhcmdjYCBpcworbm9uLXplcm8sIGJ1dCBpdCdzIG5vdyB2YWxpZGx5IGluaXRpYWxp emVkLgorCisqKkNoYW5nZWQ6KioKK2BgYGMKK3ZhX2xpc3QgXzsKK2BgYAorCisqKlRvOioqCitg YGBjCit2YV9saXN0IHVudXNlZF9hcCA9IHswfTsKK2BgYAorCitBbHNvIHJlbmFtZWQgZnJvbSBg X2AgdG8gYHVudXNlZF9hcGAgZm9yIGNsYXJpdHksIGFzIHNpbmdsZSB1bmRlcnNjb3JlCitpZGVu dGlmaWVycyBjYW4gYmUgcHJvYmxlbWF0aWMgYW5kIGRvbid0IGNsZWFybHkgY29udmV5IGludGVu dC4KKworRXZlbiB0aG91Z2ggdGhlIHVuaW5pdGlhbGl6ZWQgYHZhX2xpc3RgIGlzIG5ldmVyIGFj Y2Vzc2VkIGluIHByYWN0aWNlLAorcGFzc2luZyB1bmluaXRpYWxpemVkIGRhdGEgdmlvbGF0ZXMg QydzIHJ1bGVzIGFuZCBjYW4gY2F1c2UgaXNzdWVzIHdpdGg6CisKKy0gU3RhdGljIGFuYWx5c2lz IHRvb2xzCistIENvbXBpbGVyIG9wdGltaXphdGlvbnMgdGhhdCBhc3N1bWUgbm8gdW5kZWZpbmVk IGJlaGF2aW9yCistIEZ1dHVyZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgYHZhX2xpc3RgIGltcGxl bWVudGF0aW9ucworLSBDb2RlIG1haW50YWluYWJpbGl0eSAodW5jbGVhciBpbnRlbnQpCisKK1Ro aXMgY2hhbmdlIG1ha2VzIHRoZSBjb2RlIGNvbXBsaWFudCB3aXRoIEMgc3RhbmRhcmRzIHdoaWxl IHByZXNlcnZpbmcKK3RoZSBvcmlnaW5hbCBmdW5jdGlvbmFsaXR5LgorCitSZWxhdGVkIGNvbW1p dDogZDZhZDZkNDAzOWZjZjY4NjI0NDgxZjY5ZWU2N2VmZjkyZjdiM2FiMgorKCJjYWNoZWRiX3Jl ZGlzOiBwcm9wZXJseSBwYXNzIHZhcmlhYmxlIGFyZ3VtZW50cyB0byBhIFJlZGlzIGNvbW1hbmQi KQorCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgor QXNzaXN0ZWQtYnk6IENsYXVkZSAoQW50aHJvcGljKSA8aHR0cHM6Ly9jbGF1ZGUuYWk+CisKK2Rp ZmYgLS1naXQgYS9tb2R1bGVzL2NhY2hlZGJfcmVkaXMvY2FjaGVkYl9yZWRpc19kYmFzZS5jIGIv bW9kdWxlcy9jYWNoZWRiX3JlZGlzL2NhY2hlZGJfcmVkaXNfZGJhc2UuYworaW5kZXggMTc1MDQ5 NTMzMy4uMzJlYzRkMmYxOCAxMDA2NDQKKy0tLSBhL21vZHVsZXMvY2FjaGVkYl9yZWRpcy9jYWNo ZWRiX3JlZGlzX2RiYXNlLmMKKysrKyBiL21vZHVsZXMvY2FjaGVkYl9yZWRpcy9jYWNoZWRiX3Jl ZGlzX2RiYXNlLmMKK0BAIC0xMDA3LDkgKzEwMDcsOSBAQCBzdGF0aWMgaW50IHJlZGlzX3J1bl9j b21tYW5kKGNhY2hlZGJfY29uICpjb25uZWN0aW9uLCByZWRpc1JlcGx5ICoqcnBsLAorIHN0YXRp YyBpbnQgcmVkaXNfcnVuX2NvbW1hbmRfYXJndihjYWNoZWRiX2NvbiAqY29ubmVjdGlvbiwgcmVk aXNSZXBseSAqKnJwbCwKKyAgICAgICAgICAgICAgIHN0ciAqa2V5LCBpbnQgYXJnYywgY29uc3Qg Y2hhciAqKmFyZ3YsIGNvbnN0IHNpemVfdCAqYXJndmxlbikKKyB7CistCXZhX2xpc3QgXzsKKysJ dmFfbGlzdCB1bnVzZWRfYXAgPSB7MH07CisgCistCXJldHVybiBfcmVkaXNfcnVuX2NvbW1hbmQo Y29ubmVjdGlvbiwgcnBsLCBrZXksIGFyZ2MsIGFyZ3YsIGFyZ3ZsZW4sIE5VTEwsIF8pOworKwly ZXR1cm4gX3JlZGlzX3J1bl9jb21tYW5kKGNvbm5lY3Rpb24sIHJwbCwga2V5LCBhcmdjLCBhcmd2 LCBhcmd2bGVuLCBOVUxMLCB1bnVzZWRfYXApOworIH0KKyAKKyBpbnQgcmVkaXNfZ2V0KGNhY2hl ZGJfY29uICpjb25uZWN0aW9uLHN0ciAqYXR0cixzdHIgKnZhbCkKCmRpZmYgLS1naXQgYS9vcGVu c2lwcy0wMDA2LUZpeC11bmluaXRpYWxpemVkLXZhcmlhYmxlLXdhcm5pbmdzLWluLVNRTC1BUEkt ZnVuY3QucGF0Y2ggYi9vcGVuc2lwcy0wMDA2LUZpeC11bmluaXRpYWxpemVkLXZhcmlhYmxlLXdh cm5pbmdzLWluLVNRTC1BUEktZnVuY3QucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IGE1MzJiZjAuLjAwMDAwMDAKLS0tIGEvb3BlbnNpcHMtMDAwNi1GaXgtdW5pbml0aWFsaXpl ZC12YXJpYWJsZS13YXJuaW5ncy1pbi1TUUwtQVBJLWZ1bmN0LnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMTU0ICswLDAgQEAKLUZyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBldGVyIExlbWVua292IDxs ZW1lbmtvdkBnbWFpbC5jb20+Ci1EYXRlOiBTdW4sIDI2IE9jdCAyMDI1IDE2OjUwOjUzICswMTAw Ci1TdWJqZWN0OiBbUEFUQ0hdIEZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHdhcm5pbmdzIGlu IFNRTCBBUEkgZnVuY3Rpb25zCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0K LUR1cmluZyBjb21waWxhdGlvbiBvZiBzcWxvcHMgbW9kdWxlIHdpdGggR0NDIDE1LCB3YXJuaW5n cyBhcHBlYXIgYWJvdXQKLXBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzOgotCi1g YGAKLUNvbXBpbGluZyBzcWxvcHNfZGIuYwotZ2NjIC1mUElDIC1EUElDIC1PMiAtZmx0bz1hdXRv IC1mZmF0LWx0by1vYmplY3RzIC1mZXhjZXB0aW9ucyAtZyAtZ3JlY29yZC1nY2Mtc3dpdGNoZXMg LXBpcGUgLVdhbGwgLVduby1jb21wbGFpbi13cm9uZy1sYW5nIC1XZXJyb3I9Zm9ybWF0LXNlY3Vy aXR5IC1XcCwtVV9GT1JUSUZZX1NPVVJDRSwtRF9GT1JUSUZZX1NPVVJDRT0zIC1XcCwtRF9HTElC Q1hYX0FTU0VSVElPTlMgLXNwZWNzPS91c3IvbGliL3JwbS9yZWRoYXQvcmVkaGF0LWhhcmRlbmVk LWNjMSAtZnN0YWNrLXByb3RlY3Rvci1zdHJvbmcgLXNwZWNzPS91c3IvbGliL3JwbS9yZWRoYXQv cmVkaGF0LWFubm9iaW4tY2MxIC1tNjQgLW1hcmNoPXg4Ni02NCAtbXR1bmU9Z2VuZXJpYyAtZmFz eW5jaHJvbm91cy11bndpbmQtdGFibGVzIC1mc3RhY2stY2xhc2gtcHJvdGVjdGlvbiAtZmNmLXBy b3RlY3Rpb24gLW10bHMtZGlhbGVjdD1nbnUyIC1mbm8tb21pdC1mcmFtZS1wb2ludGVyIC1tbm8t b21pdC1sZWFmLWZyYW1lLXBvaW50ZXIgLURNT0RfTkFNRT0nc3Fsb3BzJyAtRFBLR19NQUxMT0Mg IC1EU0hNX01NQVAgIC1EVVNFX01DQVNUICAtRERJU0FCTEVfTkFHTEUgIC1EU1RBVElTVElDUyAg LURIQVZFX1JFU09MVl9SRVMgIC1ERl9NQUxMT0MgIC1EUV9NQUxMT0MgIC1ESFBfTUFMTE9DICAt RERCR19NQUxMT0MgIC1ERl9QQVJBTExFTF9NQUxMT0MgIC1ESEFWRV9TVERBVE9NSUMgLURIQVZF X0dFTkVSSUNTICAtRE5BTUU9JyJvcGVuc2lwcyInIC1EVkVSU0lPTj0nIjMuNi4yIicgLURBUkNI PScieDg2XzY0IicgLURPUz0nImxpbnV4IicgLURDT01QSUxFUj0nImdjYyAxNSInIC1EX19DUFVf eDg2XzY0IC1EX19PU19saW51eCAtRF9fU01QX3llcyAtRENGR19ESVI9JyIvZXRjL29wZW5zaXBz LyInICAtRFZFUlNJT05UWVBFPSciZ2l0IicgLURUSElTUkVWSVNJT049JyI5OTRiY2Q2OTAiJyAt REZBU1RfTE9DSyAtREFEQVBUSVZFX1dBSVQgLURBREFQVElWRV9XQUlUX0xPT1BTPTEwMjQgLURI QVZFX0dFVEhPU1RCWU5BTUUyIC1ESEFWRV9VTklPTl9TRU1VTiAtREhBVkVfTVNHX05PU0lHTkFM IC1ESEFWRV9NU0dIRFJfTVNHX0NPTlRST0wgLURIQVZFX0FMTE9DQV9IIC1ESEFWRV9USU1FR00g LURIQVZFX0VQT0xMIC1ESEFWRV9TSUdJT19SVCAtREhBVkVfU0VMRUNUIC1jIHNxbG9wc19kYi5j IC1vIHNxbG9wc19kYi5vCi1JbiBmaWxlIGluY2x1ZGVkIGZyb20gLi4vLi4vbWVtL21lbS5oOjMw LAotICAgICAgICAgICAgICAgICBmcm9tIHNxbG9wc19kYi5jOjI3Ogotc3Fsb3BzX2RiLmM6IElu IGZ1bmN0aW9uIOKAmHNxbF9hcGlfZGVsZXRl4oCZOgotLi4vLi4vbWVtLy4uL2RwcmludC5oOjQ1 NDozMzogd2FybmluZzog4oCYaWTigJkgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBbLVdtYXli ZS11bmluaXRpYWxpemVkXQotICA0NTQgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRwcmludChfbG9nX2xldmVsLCBfbG9nX2ZhY2lsaXR5LCBcCi0gICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K LSAgNDU1IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExPR19QUkVG SVhfVVRJTChNT0RfTkFNRSksIF9fRFBfRlVOQywgXAotICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+Ci0gIDQ1NiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf c3RkZXJyX3ByZWZpeCBMT0dfUFJFRklYIF9mbXQsIFwKLSAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgotICA0NTcgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIg KikiJXMiIF9zeXNsb2dfcHJlZml4IExPR19QUkVGSVggX2ZtdCwgXAotICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotICA0NTggfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNoYXIgKilfZm10LCBcCi0gICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn4KLSAgNDU5IHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRwX3RpbWUoKSwgZHBfbXlfcGlkKCksIGxv Z19wcmVmaXgsIF9fRFBfRlVOQywgIyMgYXJncykgXAotICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotc3Fsb3BzX2RiLmM6OTIxOjE0OiBub3RlOiDigJhpZOKA mSB3YXMgZGVjbGFyZWQgaGVyZQotICA5MjEgfCAgICAgICAgIHN0ciAqaWQ7Ci0gICAgICB8ICAg ICAgICAgICAgICBefgotYGBgCi0KLUluIHNxbF9hcGlfc2VsZWN0KCksIHNxbF9hcGlfdXBkYXRl KCksIHNxbF9hcGlfaW5zZXJ0KCksCi1zcWxfYXBpX2RlbGV0ZSgpLCBhbmQgc3FsX2FwaV9yZXBs YWNlKCkgZnVuY3Rpb25zLCB0aGUgJ2lkJyBwb2ludGVyCi12YXJpYWJsZSAodXNlZCBmb3IgcHJl cGFyZWQgc3RhdGVtZW50IGlkZW50aWZpZXJzKSBpcyBkZWNsYXJlZCBidXQgY291bGQKLWJlIHVu aW5pdGlhbGl6ZWQuCi0KLUxldCdzIGVuc3VyZSB0aGF0OgotCi0tIFRoZSB2YXJpYWJsZSBpcyBh bHdheXMgaW5pdGlhbGl6ZWQgKHByZXZlbnRzIHVuZGVmaW5lZCBiZWhhdmlvcikKLS0gRGVidWcg bG9nZ2luZyBvbmx5IG9jY3VycyB3aGVuIGEgcHJlcGFyZWQgc3RhdGVtZW50IElEIHdhcyBhY3R1 YWxseQotICBnZW5lcmF0ZWQKLS0gVGhlIGNvZGUgaXMgc2FmZSBldmVuIHdoZW4gbm8gZmlsdGVy IGtleXMgYXJlIHByb3ZpZGVkCi0KLU5vdGU6IFRoaXMgd2FzIGEgcmVhbCBidWcsIG5vdCBqdXN0 IGEgc3B1cmlvdXMgY29tcGlsZXIgd2FybmluZy4gSW4KLXNjZW5hcmlvcyB3aGVyZSBEQl9DQVBf UFJFUEFSRURfU1RNVCBpcyBzdXBwb3J0ZWQsIF9xdWVyeV9pZF9zdGFydCgpCi1zdWNjZWVkcywg YnV0IG5vIGZpbHRlciBrZXlzIGV4aXN0LCB0aGUgY29kZSB3b3VsZCBkZXJlZmVyZW5jZSBhbgot dW5pbml0aWFsaXplZCBwb2ludGVyLgotCi1TaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtvdiA8 bGVtZW5rb3ZAZ21haWwuY29tPgotQXNzaXN0ZWQtYnk6IENsYXVkZSAoQW50aHJvcGljKSA8aHR0 cHM6Ly9jbGF1ZGUuYWk+Ci0KLWRpZmYgLS1naXQgYS9tb2R1bGVzL3NxbG9wcy9zcWxvcHNfZGIu YyBiL21vZHVsZXMvc3Fsb3BzL3NxbG9wc19kYi5jCi1pbmRleCA1ZGU3YjU1OTk1Li5jZjM2NDU5 M2Y4IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9zcWxvcHMvc3Fsb3BzX2RiLmMKLSsrKyBiL21vZHVs ZXMvc3Fsb3BzL3NxbG9wc19kYi5jCi1AQCAtNzEzLDcgKzcxMyw3IEBAIGludCBzcWxfYXBpX3Nl bGVjdChzdHJ1Y3QgZGJfdXJsICp1cmwsIHN0cnVjdCBzaXBfbXNnKiBtc2csIGNKU09OICpKY29s cywKLSAJZGJfb3BfdCAqb3BzOwotIAlkYl92YWxfdCAqdmFsczsKLSAJaW50IG5rLCBuYzsKLS0J c3RyICppZDsKLSsJc3RyICppZCA9IE5VTEw7Ci0gCWRiX3BzX3QgKm15X3BzOwotIAotIAkvKiBj b252ZXJ0IEpTT04gdG8gQ09McyAqLwotQEAgLTc1Miw3ICs3NTIsOCBAQCBpbnQgc3FsX2FwaV9z ZWxlY3Qoc3RydWN0IGRiX3VybCAqdXJsLCBzdHJ1Y3Qgc2lwX21zZyogbXNnLCBjSlNPTiAqSmNv bHMsCi0gCShrZXlzICYmIChpZD1fcXVlcnlfaWRfYWRkX2ZpbHRlcihrZXlzLG9wcyxuaykpPT1O VUxMKSApIHsKLSAJCUxNX0RCRygibm90IHVzaW5nIFBTXG4iKTsKLSAJfSBlbHNlIHsKLS0JCUxN X0RCRygiUFMgaWQgaXMgPCUuKnM+XG4iLGlkLT5sZW4saWQtPnMpOwotKwkJaWYoaWQpCi0rCQkJ TE1fREJHKCJQUyBpZCBpcyA8JS4qcz5cbiIsaWQtPmxlbixpZC0+cyk7Ci0gCQlpZiAocHNfbWFw IT1OVUxMIHx8IChwc19tYXA9bWFwX2NyZWF0ZSgwKSkhPU5VTEwpIHsKLSAJCQlpZiAoIChteV9w cz1tYXBfZ2V0KCBwc19tYXAsICppZCApKSE9TlVMTCkgewotIAkJCQlMTV9EQkcoInVzaW5nIFBT ICVwXG4iLCpteV9wcyk7Ci1AQCAtODA0LDcgKzgwNSw3IEBAIGludCBzcWxfYXBpX3VwZGF0ZShz dHJ1Y3QgZGJfdXJsICp1cmwsIHN0cnVjdCBzaXBfbXNnKiBtc2csIGNKU09OICpKY29scywKLSAJ ZGJfb3BfdCAqdW9wcywgKm9wczsKLSAJZGJfdmFsX3QgKnV2YWxzLCAqdmFsczsKLSAJaW50IG5r LCB1bms7Ci0tCXN0ciAqaWQ7Ci0rCXN0ciAqaWQgPSBOVUxMOwotIAlkYl9wc190ICpteV9wczsK LSAKLSAJLyogY29udmVydCBKU09OIHRvIENPTHMgKi8KLUBAIC04MzgsNyArODM5LDggQEAgaW50 IHNxbF9hcGlfdXBkYXRlKHN0cnVjdCBkYl91cmwgKnVybCwgc3RydWN0IHNpcF9tc2cqIG1zZywg Y0pTT04gKkpjb2xzLAotIAkoa2V5cyAmJiAoaWQ9X3F1ZXJ5X2lkX2FkZF9maWx0ZXIoa2V5cyxv cHMsbmspKT09TlVMTCkgKSB7Ci0gCQlMTV9EQkcoIm5vdCB1c2luZyBQU1xuIik7Ci0gCX0gZWxz ZSB7Ci0tCQlMTV9EQkcoIlBTIGlkIGlzIDwlLipzPlxuIixpZC0+bGVuLGlkLT5zKTsKLSsJCWlm KGlkKQotKwkJCUxNX0RCRygiUFMgaWQgaXMgPCUuKnM+XG4iLGlkLT5sZW4saWQtPnMpOwotIAkJ aWYgKHBzX21hcCE9TlVMTCB8fCAocHNfbWFwPW1hcF9jcmVhdGUoMCkpIT1OVUxMKSB7Ci0gCQkJ aWYgKCAobXlfcHM9bWFwX2dldCggcHNfbWFwLCAqaWQgKSkhPU5VTEwpIHsKLSAJCQkJTE1fREJH KCJ1c2luZyBQUyAlcFxuIiwqbXlfcHMpOwotQEAgLTg2OCw3ICs4NzAsNyBAQCBpbnQgc3FsX2Fw aV9pbnNlcnQoc3RydWN0IGRiX3VybCAqdXJsLCBzdHJ1Y3Qgc2lwX21zZyogbXNnLCBzdHIgKnRh YmxlLAotIAlkYl9vcF90ICp1b3BzOwotIAlkYl92YWxfdCAqdXZhbHM7Ci0gCWludCB1bms7Ci0t CXN0ciAqaWQ7Ci0rCXN0ciAqaWQgPSBOVUxMOwotIAlkYl9wc190ICpteV9wczsKLSAKLSAJLyog Y29udmVydCBKU09OIHRvIENPTHMgKi8KLUBAIC04ODgsNyArODkwLDggQEAgaW50IHNxbF9hcGlf aW5zZXJ0KHN0cnVjdCBkYl91cmwgKnVybCwgc3RydWN0IHNpcF9tc2cqIG1zZywgc3RyICp0YWJs ZSwKLSAJKGlkPV9xdWVyeV9pZF9hZGRfZmlsdGVyKHVrZXlzLHVvcHMsdW5rKSk9PU5VTEwgKSB7 Ci0gCQlMTV9EQkcoIm5vdCB1c2luZyBQU1xuIik7Ci0gCX0gZWxzZSB7Ci0tCQlMTV9EQkcoIlBT IGlkIGlzIDwlLipzPlxuIixpZC0+bGVuLGlkLT5zKTsKLSsJCWlmKGlkKQotKwkJCUxNX0RCRygi UFMgaWQgaXMgPCUuKnM+XG4iLGlkLT5sZW4saWQtPnMpOwotIAkJaWYgKHBzX21hcCE9TlVMTCB8 fCAocHNfbWFwPW1hcF9jcmVhdGUoMCkpIT1OVUxMKSB7Ci0gCQkJaWYgKCAobXlfcHM9bWFwX2dl dCggcHNfbWFwLCAqaWQgKSkhPU5VTEwpIHsKLSAJCQkJTE1fREJHKCJ1c2luZyBQUyAlcFxuIiwq bXlfcHMpOwotQEAgLTkxOCw3ICs5MjEsNyBAQCBpbnQgc3FsX2FwaV9kZWxldGUoc3RydWN0IGRi X3VybCAqdXJsLCBzdHJ1Y3Qgc2lwX21zZyogbXNnLAotIAlkYl9vcF90ICpvcHM7Ci0gCWRiX3Zh bF90ICp2YWxzOwotIAlpbnQgbms7Ci0tCXN0ciAqaWQ7Ci0rCXN0ciAqaWQgPSBOVUxMOwotIAlk Yl9wc190ICpteV9wczsKLSAKLSAJLyogY29udmVydCBKU09OIHRvIGtleXMgKi8KLUBAIC05NDUs NyArOTQ4LDggQEAgaW50IHNxbF9hcGlfZGVsZXRlKHN0cnVjdCBkYl91cmwgKnVybCwgc3RydWN0 IHNpcF9tc2cqIG1zZywKLSAJKGtleXMgJiYgKGlkPV9xdWVyeV9pZF9hZGRfZmlsdGVyKGtleXMs b3BzLG5rKSk9PU5VTEwpICkgewotIAkJTE1fREJHKCJub3QgdXNpbmcgUFNcbiIpOwotIAl9IGVs c2UgewotLQkJTE1fREJHKCJQUyBpZCBpcyA8JS4qcz5cbiIsaWQtPmxlbixpZC0+cyk7Ci0rCQlp ZihpZCkKLSsJCQlMTV9EQkcoIlBTIGlkIGlzIDwlLipzPlxuIixpZC0+bGVuLGlkLT5zKTsKLSAJ CWlmIChwc19tYXAhPU5VTEwgfHwgKHBzX21hcD1tYXBfY3JlYXRlKDApKSE9TlVMTCkgewotIAkJ CWlmICggKG15X3BzPW1hcF9nZXQoIHBzX21hcCwgKmlkICkpIT1OVUxMKSB7Ci0gCQkJCUxNX0RC RygidXNpbmcgUFMgJXBcbiIsKm15X3BzKTsKLUBAIC05NzUsNyArOTc5LDcgQEAgaW50IHNxbF9h cGlfcmVwbGFjZShzdHJ1Y3QgZGJfdXJsICp1cmwsIHN0cnVjdCBzaXBfbXNnKiBtc2csIHN0ciAq dGFibGUsCi0gCWRiX29wX3QgKnVvcHM7Ci0gCWRiX3ZhbF90ICp1dmFsczsKLSAJaW50IHVuazsK LS0Jc3RyICppZDsKLSsJc3RyICppZCA9IE5VTEw7Ci0gCWRiX3BzX3QgKm15X3BzOwotIAotIAkv KiBjb252ZXJ0IEpTT04gdG8gQ09McyAqLwotQEAgLTk5NSw3ICs5OTksOCBAQCBpbnQgc3FsX2Fw aV9yZXBsYWNlKHN0cnVjdCBkYl91cmwgKnVybCwgc3RydWN0IHNpcF9tc2cqIG1zZywgc3RyICp0 YWJsZSwKLSAJKGlkPV9xdWVyeV9pZF9hZGRfZmlsdGVyKHVrZXlzLHVvcHMsdW5rKSk9PU5VTEwg KSB7Ci0gCQlMTV9EQkcoIm5vdCB1c2luZyBQU1xuIik7Ci0gCX0gZWxzZSB7Ci0tCQlMTV9EQkco IlBTIGlkIGlzIDwlLipzPlxuIixpZC0+bGVuLGlkLT5zKTsKLSsJCWlmKGlkKQotKwkJCUxNX0RC RygiUFMgaWQgaXMgPCUuKnM+XG4iLGlkLT5sZW4saWQtPnMpOwotIAkJaWYgKHBzX21hcCE9TlVM TCB8fCAocHNfbWFwPW1hcF9jcmVhdGUoMCkpIT1OVUxMKSB7Ci0gCQkJaWYgKCAobXlfcHM9bWFw X2dldCggcHNfbWFwLCAqaWQgKSkhPU5VTEwpIHsKLSAJCQkJTE1fREJHKCJ1c2luZyBQUyAlcFxu IiwqbXlfcHMpOwoKZGlmZiAtLWdpdCBhL29wZW5zaXBzLTAwMDctRml4LUM5MC1zdHlsZS1kZWNs YXJhdGlvbi13YXJuaW5ncy1pbi1zbm1wc3RhdHMtbW9kdS5wYXRjaCBiL29wZW5zaXBzLTAwMDct Rml4LUM5MC1zdHlsZS1kZWNsYXJhdGlvbi13YXJuaW5ncy1pbi1zbm1wc3RhdHMtbW9kdS5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjg5ZTRlCi0tLSAvZGV2L251 bGwKKysrIGIvb3BlbnNpcHMtMDAwNy1GaXgtQzkwLXN0eWxlLWRlY2xhcmF0aW9uLXdhcm5pbmdz LWluLXNubXBzdGF0cy1tb2R1LnBhdGNoCkBAIC0wLDAgKzEsMzgxIEBACitGcm9tIDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgorRGF0ZTogU2F0LCAz MSBKYW4gMjAyNiAxNToxMToyMCArMDEwMAorU3ViamVjdDogW1BBVENIXSBGaXggQzkwLXN0eWxl IGRlY2xhcmF0aW9uIHdhcm5pbmdzIGluIHNubXBzdGF0cyBtb2R1bGUKKworQnVpbGQgZmFpbHMg d2l0aCBgLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnRgIChlbmZvcmNlZCBieQor bmV0LXNubXAgcGtnLWNvbmZpZykgZHVlIHRvIHZhcmlhYmxlcyBkZWNsYXJlZCBhZnRlciBleGVj dXRhYmxlCitzdGF0ZW1lbnRzOgorCitgYGAKK29wZW5zZXJPYmplY3RzLmM6NjE5Ojk6IGVycm9y OiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9yPWRl Y2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudF0KKyAgNjE5IHwgICAgICAgICBpbnQgbmV3X3RocmVz aG9sZCA9IChpbnQpKGxvbmcpKGludCAqKXZhbDsKKworb3BlbnNlclNJUENvbW1vbk9iamVjdHMu YzoyNDQ6MTc6IGVycm9yOiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBj b2RlIFstV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudF0KKyAgMjQ0IHwgICAgICAg ICAgICAgICAgIGNoYXIgKm9wZW5CcmFjZVBvc2l0aW9uICAgPSBzdHJjaHIoYnVmZmVyLCAnKCcp OworCitvcGVuc2VyU0lQQ29tbW9uT2JqZWN0cy5jOjQ3NTo5OiBlcnJvcjogSVNPIEM5MCBmb3Ji aWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZSBbLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRl ci1zdGF0ZW1lbnRdCisgIDQ3NSB8ICAgICAgICAgY2hhciAqc3RyRW50aXR5VHlwZSA9IChjaGFy ICopdmFsOworCitvcGVuc2VyU0lQQ29udGFjdFRhYmxlLmM6MjY2Ojk6IGVycm9yOiBJU08gQzkw IGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0aW9u LWFmdGVyLXN0YXRlbWVudF0KKyAgMjY2IHwgICAgICAgICBzdGF0aWMgY2hhciAqZGVmYXVsdFVz ZXIgPSAiRGVmYXVsdFVzZXIiOworCitvcGVuc2VyU0lQQ29udGFjdFRhYmxlLmM6MzYxOjk6IGVy cm9yOiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9y PWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudF0KKyAgMzYxIHwgICAgICAgICBuZXRzbm1wX3Zh cmlhYmxlX2xpc3QgKnZhciA9IHJlcXVlc3QtPnJlcXVlc3R2YjsKK2BgYAorCitUaGUgbmV0LXNu bXAgbGlicmFyeSdzIHBrZy1jb25maWcgYWRkcworYC1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXIt c3RhdGVtZW50YCB0byBDRkxBR1MsIGVuZm9yY2luZyBDOTAtc3R5bGUKK2RlY2xhcmF0aW9uIG9y ZGVyaW5nIChhbGwgZGVjbGFyYXRpb25zIGJlZm9yZSBzdGF0ZW1lbnRzKS4KKworV2hpbGUgT3Bl blNJUFMgYWRoZXJlcyB0byB0aGUgQzk5IHN0YW5kYXJkICh3aGljaCBhbGxvd3MgbWl4ZWQKK2Rl Y2xhcmF0aW9ucyBhbmQgY29kZSksIHRoZSBuZXQtc25tcCBsaWJyYXJ5IGNvdWxkIHJlcXVpcmUg QzkwLXN0eWxlCitkZWNsYXJhdGlvbnMgZm9yIG1vZHVsZXMgdGhhdCBsaW5rIGFnYWluc3QgaXQu IEZvbGxvd2luZyB0aGlzIHN0eWxlCitkb2Vzbid0IGh1cnQgQzk5IGNvbXBhdGliaWxpdHkgYW5k IGltcHJvdmVzIGNvZGUgcG9ydGFiaWxpdHkuYAorCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1l bmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgorQXNzaXN0ZWQtYnk6IENsYXVkZSAoQW50aHJvcGlj KSA8aHR0cHM6Ly9jbGF1ZGUuYWk+CisKK2RpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy9v cGVuc2VyT2JqZWN0cy5jIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlck9iamVjdHMuYworaW5k ZXggMTgwYjYyZGRhNy4uOTA5ZGI0YzgwYiAxMDA2NDQKKy0tLSBhL21vZHVsZXMvc25tcHN0YXRz L29wZW5zZXJPYmplY3RzLmMKKysrKyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJPYmplY3Rz LmMKK0BAIC02MDUsNiArNjA1LDggQEAgaW50IGhhbmRsZV9vcGVuc2VyRGlhbG9nTGltaXRNYWpv ckFsYXJtKG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIsCisgc3RhdGljIGludCBzZXRfaWZf dmFsaWRfdGhyZXNob2xkKG1vZHBhcmFtX3QgdHlwZSwgdm9pZCAqdmFsLCBjaGFyICp2YXJTdHIs CisgCWludCAqbmV3VmFsKQorIHsKKysJaW50IG5ld190aHJlc2hvbGQ7CisrCisgCWlmICh2YWw9 PTApIHsKKyAJCUxNX0VSUigiJXMgY2FsbGVkIHdpdGggYSBudWxsIHZhbHVlIVxuIiwgdmFyU3Ry KTsKKyAJCXJldHVybiAtMTsKK0BAIC02MTYsNyArNjE4LDcgQEAgc3RhdGljIGludCBzZXRfaWZf dmFsaWRfdGhyZXNob2xkKG1vZHBhcmFtX3QgdHlwZSwgdm9pZCAqdmFsLCBjaGFyICp2YXJTdHIs CisgCQlyZXR1cm4gLTE7CisgCX0KKyAKKy0JaW50IG5ld190aHJlc2hvbGQgPSAoaW50KShsb25n KShpbnQgKil2YWw7CisrCW5ld190aHJlc2hvbGQgPSAoaW50KShsb25nKShpbnQgKil2YWw7Cisg CisgCWlmIChuZXdfdGhyZXNob2xkIDwgLTEpIHsKKyAJCUxNX0VSUigiJXMgY2FsbGVkIHdpdGgg YW4gaW52YWxpZCB0aHJlc2hvbGQ9JWQhXG4iLAorZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0 YXRzL29wZW5zZXJTSVBDb21tb25PYmplY3RzLmMgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2Vy U0lQQ29tbW9uT2JqZWN0cy5jCitpbmRleCBlMzdhYjZlZjJhLi5mMmRkYmE1YTdhIDEwMDY0NAor LS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUENvbW1vbk9iamVjdHMuYworKysrIGIv bW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUENvbW1vbk9iamVjdHMuYworQEAgLTIyNSw2ICsy MjUsOCBAQCBpbnQgaGFuZGxlX29wZW5zZXJTSVBTZXJ2aWNlU3RhcnRUaW1lKG5ldHNubXBfbWli X2hhbmRsZXIgKmhhbmRsZXIsCisgCisgCWludCBlbGFwc2VkVGltZSA9IDA7CisgCWNoYXIgYnVm ZmVyW1NOTVBHRVRfTUFYX0JVRkZFUl07CisrCWNoYXIgKm9wZW5CcmFjZVBvc2l0aW9uID0gTlVM TDsKKysJY2hhciAqY2xvc2VkQnJhY2VQb3NpdGlvbiA9IE5VTEw7CisgCisgCUZJTEUgKnRoZUZp bGUgPSBmb3BlbihTTk1QR0VUX1RFTVBfRklMRSwgInIiKTsKKyAKK0BAIC0yNDEsOCArMjQzLDgg QEAgaW50IGhhbmRsZV9vcGVuc2VyU0lQU2VydmljZVN0YXJ0VGltZShuZXRzbm1wX21pYl9oYW5k bGVyICpoYW5kbGVyLAorIAorIAkJLyogRmluZCB0aGUgcG9zaXRpb25zIG9mICcoJyBhbmQgJykn IHNvIHdlIGNhbiBleHRyYWN0IG91dCB0aGUKKyAJCSAqIHRpbWV0aWNrcyB2YWx1ZS4gKi8KKy0J CWNoYXIgKm9wZW5CcmFjZVBvc2l0aW9uICAgPSBzdHJjaHIoYnVmZmVyLCAnKCcpOworLQkJY2hh ciAqY2xvc2VkQnJhY2VQb3NpdGlvbiA9IHN0cmNocihidWZmZXIsICcpJyk7CisrCQlvcGVuQnJh Y2VQb3NpdGlvbiAgID0gc3RyY2hyKGJ1ZmZlciwgJygnKTsKKysJCWNsb3NlZEJyYWNlUG9zaXRp b24gPSBzdHJjaHIoYnVmZmVyLCAnKScpOworIAorIAkJLyogTWFrZSBzdXJlIHRoYXQgYm90aCB0 aGUgJygnIGFuZCAnKScgZXhpc3QgaW4gdGhlIGZpbGUsIGFuZAorIAkJICogdGhhdCAnKCcgb2Nj dXJzIGVhcmxpZXIgdGhhbiB0aGUgJyknLiAgSWYgYWxsIHRoZXNlCitAQCAtNDY0LDYgKzQ2Niw3 IEBAIGludCBoYW5kbGVfb3BlbnNlclNJUE90aGVyd2lzZURpc2NhcmRlZE1zZ3MobmV0c25tcF9t aWJfaGFuZGxlciAqaGFuZGxlciwKKyAgKi8KKyBpbnQgaGFuZGxlU2lwRW50aXR5VHlwZSggbW9k cGFyYW1fdCB0eXBlLCB2b2lkKiB2YWwpCisgeworKwljaGFyICpzdHJFbnRpdHlUeXBlID0gTlVM TDsKKyAKKyAJLyogQnkgZGVmYXVsdCB3ZSBzdGFydCBvZmYgYXMgIm90aGVyIi4gKi8KKyAJc3Rh dGljIGNoYXIgZmlyc3RUaW1lID0gMTsKK0BAIC00NzIsNyArNDc1LDcgQEAgaW50IGhhbmRsZVNp cEVudGl0eVR5cGUoIG1vZHBhcmFtX3QgdHlwZSwgdm9pZCogdmFsKQorIAkJcmV0dXJuIC0xOwor IAl9CisgCistCWNoYXIgKnN0ckVudGl0eVR5cGUgPSAoY2hhciAqKXZhbDsKKysJc3RyRW50aXR5 VHlwZSA9IChjaGFyICopdmFsOworIAorIAkvKiBUaGlzIGlzIG91ciBmaXJzdCB0aW1lIHRocm91 Z2ggdGhpcyBmdW5jdGlvbiwgc28gd2UgbmVlZCB0byBjaGFuZ2UKKyAJICogb3BlbnNlckVudGl0 eVR5cGUgZnJvbSBpdHMgZGVmYXVsdCB0byAwLCBhbGxvd2luZyBvdXIgYml0bWFza3MgYmVsb3cK K2RpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQQ29udGFjdFRhYmxlLmMg Yi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQQ29udGFjdFRhYmxlLmMKK2luZGV4IDdlZGMx MjEwY2UuLjAzNTg4MDI5YzggMTAwNjQ0CistLS0gYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2Vy U0lQQ29udGFjdFRhYmxlLmMKKysrKyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBDb250 YWN0VGFibGUuYworQEAgLTI2MSwxMCArMjYxLDEwIEBAIHZvaWQgZGVsZXRlQ29udGFjdFJvdyhp bnQgdXNlckluZGV4LCBpbnQgY29udGFjdEluZGV4KQorICAqLworIHZvaWQgaW5pdF9vcGVuc2Vy U0lQQ29udGFjdFRhYmxlKHZvaWQpCisgeworLQlpbml0aWFsaXplX3RhYmxlX29wZW5zZXJTSVBD b250YWN0VGFibGUoKTsKKy0KKyAJc3RhdGljIGNoYXIgKmRlZmF1bHRVc2VyID0gIkRlZmF1bHRV c2VyIjsKKyAKKysJaW5pdGlhbGl6ZV90YWJsZV9vcGVuc2VyU0lQQ29udGFjdFRhYmxlKCk7Cisr CisgCWNyZWF0ZUNvbnRhY3RSb3coMSwgMSwgZGVmYXVsdFVzZXIsIE5VTEwpOworIH0KKyAKK0BA IC0zNTQsMTQgKzM1NCwxNiBAQCBpbnQgb3BlbnNlclNJUENvbnRhY3RUYWJsZV9nZXRfdmFsdWUo CisgCWNoYXIgICAgICAgKnJldHJpZXZlZEV4cGlyeTsKKyAJc3RydWN0IHRtICB0aW1lVmFsdWU7 CisgCisrCW5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFyID0gTlVMTDsKKysJb3BlbnNlclNJUENv bnRhY3RUYWJsZV9jb250ZXh0ICpjb250ZXh0ID0gTlVMTDsKKysKKyAJLyogRmlyc3QgdGhpbmdz IGZpcnN0LCB3ZSBuZWVkIHRvIGNvbnN1bWUgdGhlIGludGVycHJvY2VzcyBidWZmZXIsIGluCisg CSAqIGNhc2Ugc29tZXRoaW5nIGhhcyBjaGFuZ2VkLiBXZSB3YW50IHRvIHJldHVybiB0aGUgZnJl c2hlc3QgZGF0YS4gKi8KKyAJY29uc3VtZUludGVycHJvY2Vzc0J1ZmZlcigpOworIAorLQluZXRz bm1wX3ZhcmlhYmxlX2xpc3QgKnZhciA9IHJlcXVlc3QtPnJlcXVlc3R2YjsKKysJdmFyID0gcmVx dWVzdC0+cmVxdWVzdHZiOworIAorLQlvcGVuc2VyU0lQQ29udGFjdFRhYmxlX2NvbnRleHQgKmNv bnRleHQgPQorLQkJKG9wZW5zZXJTSVBDb250YWN0VGFibGVfY29udGV4dCAqKWl0ZW07CisrCWNv bnRleHQgPSAob3BlbnNlclNJUENvbnRhY3RUYWJsZV9jb250ZXh0ICopaXRlbTsKKyAKKyAJc3dp dGNoKHRhYmxlX2luZm8tPmNvbG51bSkKKyAJeworZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0 YXRzL29wZW5zZXJTSVBQb3J0VGFibGUuYyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBQ b3J0VGFibGUuYworaW5kZXggYTEwNzU4MjczYS4uM2EwM2I3MmIyMSAxMDA2NDQKKy0tLSBhL21v ZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBQb3J0VGFibGUuYworKysrIGIvbW9kdWxlcy9zbm1w c3RhdHMvb3BlbnNlclNJUFBvcnRUYWJsZS5jCitAQCAtMTA0LDE5ICsxMDQsMTcgQEAgb3BlbnNl clNJUFBvcnRUYWJsZV9jb250ZXh0ICpnZXRSb3coaW50IGlwVHlwZSwgdW5zaWduZWQgaW50ICpp cEFkZHJlc3MpCisgeworIAlpbnQgbGVuZ3RoT2ZPSUQ7CisgCW9pZCAqY3VycmVudE9JREluZGV4 ID0gY3JlYXRlSW5kZXgoaXBUeXBlLCBpcEFkZHJlc3MsICZsZW5ndGhPZk9JRCk7CisrCW5ldHNu bXBfaW5kZXggdGhlSW5kZXg7CisrCW9wZW5zZXJTSVBQb3J0VGFibGVfY29udGV4dCAqcm93VG9S ZXR1cm4gPSBOVUxMOworIAorIAlpZiAoY3VycmVudE9JREluZGV4ID09IE5VTEwpCisgCXsKKyAJ CXJldHVybiBOVUxMOworIAl9CisgCistCW5ldHNubXBfaW5kZXggdGhlSW5kZXg7CistCisgCXRo ZUluZGV4Lm9pZHMgPSBjdXJyZW50T0lESW5kZXg7CisgCXRoZUluZGV4LmxlbiAgPSBsZW5ndGhP Zk9JRDsKKyAKKy0Jb3BlbnNlclNJUFBvcnRUYWJsZV9jb250ZXh0ICpyb3dUb1JldHVybjsKKy0K KyAJLyogTGV0cyBjaGVjayB0byBzZWUgaWYgdGhlcmUgaXMgYW4gZXhpc3Rpbmcgcm93LiAqLwor IAlyb3dUb1JldHVybiA9IENPTlRBSU5FUl9GSU5EKGNiLmNvbnRhaW5lciwgJnRoZUluZGV4KTsK KyAKK0BAIC0yMTgsOCArMjE2LDYgQEAgdm9pZCBpbml0X29wZW5zZXJTSVBQb3J0VGFibGUodm9p ZCkKKyB7CisgCWludCBjdXJTTk1QSW5kZXggPSAwOworIAorLQlpbml0aWFsaXplX3RhYmxlX29w ZW5zZXJTSVBQb3J0VGFibGUoKTsKKy0KKyAJdW5zaWduZWQgaW50ICpVRFBMaXN0ID0gTlVMTDsK KyAJdW5zaWduZWQgaW50ICpUQ1BMaXN0ID0gTlVMTDsKKyAJdW5zaWduZWQgaW50ICpUTFNMaXN0 ID0gTlVMTDsKK0BAIC0yMjgsNiArMjI0LDggQEAgdm9pZCBpbml0X29wZW5zZXJTSVBQb3J0VGFi bGUodm9pZCkKKyAJaW50IG51bVRDUFNvY2tldHM7CisgCWludCBudW1UTFNTb2NrZXRzOworIAor Kwlpbml0aWFsaXplX3RhYmxlX29wZW5zZXJTSVBQb3J0VGFibGUoKTsKKysKKyAJLyogUmV0cmll dmUgdGhlIGxpc3Qgb2YgdGhlIG51bWJlciBvZiBVRFAgYW5kIFRDUCBzb2NrZXRzLiAqLworIAlu dW1VRFBTb2NrZXRzID0gZ2V0X3NvY2tldF9saXN0X2Zyb21fcHJvdG8oJlVEUExpc3QsIFBST1RP X1VEUCk7CisgCW51bVRDUFNvY2tldHMgPSBnZXRfc29ja2V0X2xpc3RfZnJvbV9wcm90bygmVENQ TGlzdCwgUFJPVE9fVENQKTsKK2RpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2Vy U0lQUmVnVXNlckxvb2t1cFRhYmxlLmMgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVn VXNlckxvb2t1cFRhYmxlLmMKK2luZGV4IDMyNGRmNjE4ZmQuLmE1NGI1ODM3NTIgMTAwNjQ0Cist LS0gYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlLmMKKysr KyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGUuYworQEAg LTUxNCwyMyArNTE0LDIwIEBAIHZvaWQgb3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9zZXRf cmVzZXJ2ZTIoIG5ldHNubXBfcmVxdWVzdF9ncm91cCAqcmcgKQorICAqLworIHZvaWQgb3BlbnNl clNJUFJlZ1VzZXJMb29rdXBUYWJsZV9zZXRfYWN0aW9uKCBuZXRzbm1wX3JlcXVlc3RfZ3JvdXAg KnJnICkKKyB7CistCS8qIEZpcnN0IHRoaW5ncyBmaXJzdCwgd2UgbmVlZCB0byBjb25zdW1lIHRo ZSBpbnRlcnByb2Nlc3MgYnVmZmVyLCBpbgorLQkgKiBjYXNlIHNvbWV0aGluZyBoYXMgY2hhbmdl ZC4gV2Ugd2FudCB0byByZXR1cm4gdGhlIGZyZXNoZXN0IGRhdGEuICovCistCWNvbnN1bWVJbnRl cnByb2Nlc3NCdWZmZXIoKTsKKy0KKyAJYW9yVG9JbmRleFN0cnVjdF90ICpoYXNoUmVjb3JkOwor LQorIAluZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhcjsKKysJbmV0c25tcF9yZXF1ZXN0X2dyb3Vw X2l0ZW0gKmN1cnJlbnQ7CisrCWludCByb3dfZXJyID0gMDsKKysJb3BlbnNlclNJUFJlZ1VzZXJM b29rdXBUYWJsZV9jb250ZXh0ICpyb3dfY3R4ID0gTlVMTDsKKysJb3BlbnNlclNJUFJlZ1VzZXJM b29rdXBUYWJsZV9jb250ZXh0ICp1bmRvX2N0eCA9IE5VTEw7CisgCistCW9wZW5zZXJTSVBSZWdV c2VyTG9va3VwVGFibGVfY29udGV4dCAqcm93X2N0eCA9CistCQkob3BlbnNlclNJUFJlZ1VzZXJM b29rdXBUYWJsZV9jb250ZXh0ICopcmctPmV4aXN0aW5nX3JvdzsKKy0KKy0Jb3BlbnNlclNJUFJl Z1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICp1bmRvX2N0eCA9CistCQkob3BlbnNlclNJUFJlZ1Vz ZXJMb29rdXBUYWJsZV9jb250ZXh0ICopcmctPnVuZG9faW5mbzsKKysJLyogRmlyc3QgdGhpbmdz IGZpcnN0LCB3ZSBuZWVkIHRvIGNvbnN1bWUgdGhlIGludGVycHJvY2VzcyBidWZmZXIsIGluCisr CSAqIGNhc2Ugc29tZXRoaW5nIGhhcyBjaGFuZ2VkLiBXZSB3YW50IHRvIHJldHVybiB0aGUgZnJl c2hlc3QgZGF0YS4gKi8KKysJY29uc3VtZUludGVycHJvY2Vzc0J1ZmZlcigpOworIAorLQluZXRz bm1wX3JlcXVlc3RfZ3JvdXBfaXRlbSAqY3VycmVudDsKKysJcm93X2N0eCA9IChvcGVuc2VyU0lQ UmVnVXNlckxvb2t1cFRhYmxlX2NvbnRleHQgKilyZy0+ZXhpc3Rpbmdfcm93OworIAorLQlpbnQJ CQlyb3dfZXJyID0gMDsKKysJdW5kb19jdHggPSAob3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJs ZV9jb250ZXh0ICopcmctPnVuZG9faW5mbzsKKyAKKyAJLyogQ29weSB0aGUgYWN0dWFsIGRhdGEg dG8gdGhlIHJvdy4gKi8KKyAJZm9yKCBjdXJyZW50ID0gcmctPmxpc3Q7IGN1cnJlbnQ7IGN1cnJl bnQgPSBjdXJyZW50LT5uZXh0ICkgeworZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL29w ZW5zZXJTSVBSZWdVc2VyVGFibGUuYyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBSZWdV c2VyVGFibGUuYworaW5kZXggNDNiMTRjZGViNy4uOWNmMDI5ZGY5ZCAxMDA2NDQKKy0tLSBhL21v ZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBSZWdVc2VyVGFibGUuYworKysrIGIvbW9kdWxlcy9z bm1wc3RhdHMvb3BlbnNlclNJUFJlZ1VzZXJUYWJsZS5jCitAQCAtMjI1LDE1ICsyMjUsMTQgQEAg dm9pZCB1cGRhdGVVc2VyKGNoYXIgKnVzZXJOYW1lKQorICAqIFJldHVybnM6IFRoZSByb3dzIHVz ZXJJbmRleCBvbiBzdWNjZXNzLCBhbmQgMCBvdGhlcndpc2UuICovCisgaW50IGNyZWF0ZVJlZ1Vz ZXJSb3coY2hhciAqc3RyaW5nVG9SZWdpc3RlcikKKyB7CistCWludCBzdGF0aWMgaW5kZXggPSAw OworLQorLQlpbmRleCsrOworLQorIAlvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2NvbnRleHQgKnRo ZVJvdzsKKy0KKyAJb2lkICAqT0lESW5kZXg7CisgCWludCAgc3RyaW5nTGVuZ3RoOworIAorKwlp bnQgc3RhdGljIGluZGV4ID0gMDsKKysKKysJaW5kZXgrKzsKKysKKyAJdGhlUm93ID0gU05NUF9N QUxMT0NfVFlQRURFRihvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2NvbnRleHQpOworIAorIAlpZiAo dGhlUm93ID09IE5VTEwpIHsKK0BAIC0yODAsMTIgKzI3OSwxMiBAQCBpbnQgY3JlYXRlUmVnVXNl clJvdyhjaGFyICpzdHJpbmdUb1JlZ2lzdGVyKQorIC8qIEluaXRpYWxpemVzIHRoZSBvcGVuc2Vy U0lQUmVnVXNlclRhYmxlIG1vZHVsZS4gICovCisgdm9pZCBpbml0X29wZW5zZXJTSVBSZWdVc2Vy VGFibGUodm9pZCkKKyB7CistCS8qIFJlZ2lzdGVyIHRoaXMgdGFibGUgd2l0aCB0aGUgbWFzdGVy IGFnZW50ICovCistCWluaXRpYWxpemVfdGFibGVfb3BlbnNlclNJUFJlZ1VzZXJUYWJsZSgpOwor LQorIAkvKiBXZSBuZWVkIHRvIGNyZWF0ZSBhIGRlZmF1bHQgcm93LCBzbyBjcmVhdGUgRGVmYXVs dFVzZXIgKi8KKyAJc3RhdGljIGNoYXIgKmRlZmF1bHRVc2VyID0gIkRlZmF1bHRVc2VyIjsKKyAK KysJLyogUmVnaXN0ZXIgdGhpcyB0YWJsZSB3aXRoIHRoZSBtYXN0ZXIgYWdlbnQgKi8KKysJaW5p dGlhbGl6ZV90YWJsZV9vcGVuc2VyU0lQUmVnVXNlclRhYmxlKCk7CisrCisgCWNyZWF0ZVJlZ1Vz ZXJSb3coZGVmYXVsdFVzZXIpOworIH0KKyAKK0BAIC0zNTAsMTQgKzM0OSwxNiBAQCBpbnQgb3Bl bnNlclNJUFJlZ1VzZXJUYWJsZV9nZXRfdmFsdWUoCisgCQluZXRzbm1wX2luZGV4ICppdGVtLAor IAkJbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm8gKnRhYmxlX2luZm8gKQorIHsKKysJbmV0c25t cF92YXJpYWJsZV9saXN0ICp2YXIgPSBOVUxMOworKwlvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2Nv bnRleHQgKmNvbnRleHQgPSBOVUxMOworKworIAkvKiBGaXJzdCB0aGluZ3MgZmlyc3QsIHdlIG5l ZWQgdG8gY29uc3VtZSB0aGUgaW50ZXJwcm9jZXNzIGJ1ZmZlciwgaW4KKyAJICogY2FzZSBzb21l dGhpbmcgaGFzIGNoYW5nZWQuIFdlIHdhbnQgdG8gcmV0dXJuIHRoZSBmcmVzaGVzdCBkYXRhLiAq LworIAljb25zdW1lSW50ZXJwcm9jZXNzQnVmZmVyKCk7CisgCistCW5ldHNubXBfdmFyaWFibGVf bGlzdCAqdmFyID0gcmVxdWVzdC0+cmVxdWVzdHZiOworKwl2YXIgPSByZXF1ZXN0LT5yZXF1ZXN0 dmI7CisgCistCW9wZW5zZXJTSVBSZWdVc2VyVGFibGVfY29udGV4dCAqY29udGV4dCA9CistCQko b3BlbnNlclNJUFJlZ1VzZXJUYWJsZV9jb250ZXh0ICopaXRlbTsKKysJY29udGV4dCA9IChvcGVu c2VyU0lQUmVnVXNlclRhYmxlX2NvbnRleHQgKilpdGVtOworIAorIAlzd2l0Y2godGFibGVfaW5m by0+Y29sbnVtKQorIAl7CitkaWZmIC0tZ2l0IGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJ UFN0YXR1c0NvZGVzVGFibGUuYyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBTdGF0dXND b2Rlc1RhYmxlLmMKK2luZGV4IDJiMzk2YzY5ODUuLjc5ZjNhMTI5YTMgMTAwNjQ0CistLS0gYS9t b2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQU3RhdHVzQ29kZXNUYWJsZS5jCisrKysgYi9tb2R1 bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQU3RhdHVzQ29kZXNUYWJsZS5jCitAQCAtMzEwLDYgKzMx MCw3IEBAIGludCBvcGVuc2VyU0lQU3RhdHVzQ29kZXNUYWJsZV9jYW5fZGVsZXRlKAorIG9wZW5z ZXJTSVBTdGF0dXNDb2Rlc1RhYmxlX2NvbnRleHQgKgorIG9wZW5zZXJTSVBTdGF0dXNDb2Rlc1Rh YmxlX2NyZWF0ZV9yb3coIG5ldHNubXBfaW5kZXgqIGhkcikKKyB7CisrCWludCBjb2RlSW5kZXg7 CisgCXN0YXRfdmFyICppbl9zdGF0dXNfY29kZTsKKyAJc3RhdF92YXIgKm91dF9zdGF0dXNfY29k ZTsKKyAKK0BAIC0zMzcsNyArMzM4LDcgQEAgb3BlbnNlclNJUFN0YXR1c0NvZGVzVGFibGVfY3Jl YXRlX3JvdyggbmV0c25tcF9pbmRleCogaGRyKQorIAkvKiBSZXRyaWV2ZSB0aGUgaW5kZXggZm9y IHRoZSBzdGF0dXMgY29kZSwgYW5kIHRoZW4gYXNzaWduIHRoZSBzdGFydGluZworIAkgKiB2YWx1 ZXMuICBUaGUgc3RhcnRpbmcgdmFsdWVzIHdpbGwgYmUgdXNlZCB0byBjYWxjdWxhdGUgZGVsdGFz IGR1cmluZworIAkgKiB0aGUgbmV4dCBzbm1wZ2V0L3NubXB3YWxrL3NubXB0YWJsZS9ldGMuICov CistCWludCBjb2RlSW5kZXggPSBjdHgtPm9wZW5zZXJTSVBTdGF0dXNDb2RlVmFsdWU7CisrCWNv ZGVJbmRleCA9IGN0eC0+b3BlbnNlclNJUFN0YXR1c0NvZGVWYWx1ZTsKKyAKKyAJY3R4LT5zdGFy dGluZ0luU3RhdHVzQ29kZVZhbHVlICA9IDA7CisgCWN0eC0+c3RhcnRpbmdPdXRTdGF0dXNDb2Rl VmFsdWUgPSAwOworZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL3NubXBzdGF0cy5jIGIv bW9kdWxlcy9zbm1wc3RhdHMvc25tcHN0YXRzLmMKK2luZGV4IDk1YmMxYzFmM2IuLjU3NWMwZDEw NjggMTAwNjQ0CistLS0gYS9tb2R1bGVzL3NubXBzdGF0cy9zbm1wc3RhdHMuYworKysrIGIvbW9k dWxlcy9zbm1wc3RhdHMvc25tcHN0YXRzLmMKK0BAIC0zNDYsNyArMzQ2LDEyIEBAIHN0YXRpYyB2 b2lkIHNpZ2NobGRfaGFuZGxlcihpbnQgc2lnbmFsKQorICAqLworIHN0YXRpYyBpbnQgc3Bhd25f c3lzVXBUaW1lX2NoaWxkKHZvaWQpCisgeworKwlwaWRfdCByZXN1bHRfcGlkOworKwlpbnQgc25t cGdldF9mZDsKKysJaW50IGxvY2FsX3BhdGhfdG9fc25tcGdldF9sZW5ndGg7CisrCWludCBzbm1w Z2V0X2JpbmFyeV9uYW1lX2xlbmd0aDsKKyAJc3RydWN0IHNpZ2FjdGlvbiBuZXdfc2lnY2hsZF9o YW5kbGVyOworKwljaGFyICphcmdzWzZdOworIAorIAljaGFyICpsb2NhbF9wYXRoX3RvX3NubXBn ZXQgPSAiL3Vzci9iaW4vIjsKKyAJY2hhciAqc25tcGdldF9iaW5hcnlfbmFtZSAgID0gIi9zbm1w Z2V0IjsKK0BAIC0zNjIsNyArMzY3LDcgQEAgc3RhdGljIGludCBzcGF3bl9zeXNVcFRpbWVfY2hp bGQodm9pZCkKKyAJbmV3X3NpZ2NobGRfaGFuZGxlci5zYV9oYW5kbGVyID0gc2lnY2hsZF9oYW5k bGVyOworIAlzaWdhY3Rpb24oU0lHQ0hMRCwgJm5ld19zaWdjaGxkX2hhbmRsZXIsICZvbGRfc2ln Y2hsZF9oYW5kbGVyKTsKKyAKKy0JcGlkX3QgcmVzdWx0X3BpZCA9IGZvcmsoKTsKKysJcmVzdWx0 X3BpZCA9IGZvcmsoKTsKKyAKKyAJaWYgKHJlc3VsdF9waWQgPCAwKSB7CisgCQlMTV9FUlIoImZh aWxlZCB0byBub3Qgc3Bhd24gYW4gYWdlbnQgdG8gY2hlY2sgc3lzVXBUaW1lXG4iKTsKK0BAIC0z ODAsNyArMzg1LDcgQEAgc3RhdGljIGludCBzcGF3bl9zeXNVcFRpbWVfY2hpbGQodm9pZCkKKyAK KyAJLyogSWYgd2UgYXJlIGhlcmUsIHRoZW4gd2UgYXJlIHRoZSBjaGlsZCBwcm9jZXNzLiAgTGV0 cyBzZXQgdXAgdGhlIGZpbGUKKyAJICogZGVzY3JpcHRvcnMgc28gd2UgY2FuIGNhcHR1cmUgdGhl IG91dHB1dCBvZiBzbm1wZ2V0LiAqLworLQlpbnQgc25tcGdldF9mZCA9CisrCXNubXBnZXRfZmQg PQorIAkJb3BlbihTTk1QR0VUX1RFTVBfRklMRSwgT19DUkVBVHxPX1RSVU5DfE9fUkRXUiwKKyAJ CQkJU19JUlVTUnxTX0lXVVNSfFNfSVJHUlB8U19JUk9USCk7CisgCitAQCAtNDAxLDggKzQwNiwx MiBAQCBzdGF0aWMgaW50IHNwYXduX3N5c1VwVGltZV9jaGlsZCh2b2lkKQorIAkJCQkiICBEZWZh dWx0aW5nIHRvICVzXG4iLAlzbm1wX2NvbW11bml0eV9zdHJpbmcpOworIAl9CisgCistCWNoYXIg KmFyZ3NbXSA9IHsiLU92IiwgIi1jIiwgIHNubXBfY29tbXVuaXR5X3N0cmluZywgImxvY2FsaG9z dCIsCistCQlTWVNVUFRJTUVfT0lELCAoY2hhciAqKSAwfTsKKysJYXJnc1swXSA9ICItT3YiOwor KwlhcmdzWzFdID0gIi1jIjsKKysJYXJnc1syXSA9IHNubXBfY29tbXVuaXR5X3N0cmluZzsKKysJ YXJnc1szXSA9ICJsb2NhbGhvc3QiOworKwlhcmdzWzRdID0gU1lTVVBUSU1FX09JRDsKKysJYXJn c1s1XSA9IChjaGFyICopMDsKKyAKKyAJLyogTWFrZSBzdXJlIHdlIGhhdmUgYSBwYXRoIHRvIHNu bXBnZXQsIHNvIHdlIGNhbiByZXRyaWV2ZSB0aGUKKyAJICogc3lzVXBUaW1lLiAqLworQEAgLTQx Niw4ICs0MjUsOCBAQCBzdGF0aWMgaW50IHNwYXduX3N5c1VwVGltZV9jaGlsZCh2b2lkKQorIAkJ bG9jYWxfcGF0aF90b19zbm1wZ2V0ID0gc25tcGdldF9wYXRoOworIAl9CisgCistCWludCBsb2Nh bF9wYXRoX3RvX3NubXBnZXRfbGVuZ3RoID0gc3RybGVuKGxvY2FsX3BhdGhfdG9fc25tcGdldCk7 CistCWludCBzbm1wZ2V0X2JpbmFyeV9uYW1lX2xlbmd0aCAgID0gc3RybGVuKHNubXBnZXRfYmlu YXJ5X25hbWUpOworKwlsb2NhbF9wYXRoX3RvX3NubXBnZXRfbGVuZ3RoID0gc3RybGVuKGxvY2Fs X3BhdGhfdG9fc25tcGdldCk7CisrCXNubXBnZXRfYmluYXJ5X25hbWVfbGVuZ3RoICAgPSBzdHJs ZW4oc25tcGdldF9iaW5hcnlfbmFtZSk7CisgCisgCS8qIEFsbG9jYXRlIGVub3VnaCBtZW1vcnkg dG8gaG9sZCB0aGUgcGF0aCwgdGhlIGJpbmFyeSBuYW1lLCBhbmQgdGhlCisgCSAqIG51bGwgY2hh cmFjdGVyLiAgV2UgZG9uJ3QgdXNlIHBrZ19tZW1vcnkgaGVyZS4gKi8KK2RpZmYgLS1naXQgYS9t b2R1bGVzL3NubXBzdGF0cy91dGlsaXRpZXMuYyBiL21vZHVsZXMvc25tcHN0YXRzL3V0aWxpdGll cy5jCitpbmRleCBkZmMwOTc4Yjc0Li4yZjdlZDlhMzA3IDEwMDY0NAorLS0tIGEvbW9kdWxlcy9z bm1wc3RhdHMvdXRpbGl0aWVzLmMKKysrKyBiL21vZHVsZXMvc25tcHN0YXRzL3V0aWxpdGllcy5j CitAQCAtNzIsMTMgKzcyLDEzIEBAIGludCBzdHJpbmdIYW5kbGVyU2FuaXR5Q2hlY2soIG1vZHBh cmFtX3QgdHlwZSwgdm9pZCAqdmFsLCBjaGFyICpwYXJhbWV0ZXJOYW1lKQorIGludCBnZXRfc3Rh dGlzdGljKGNoYXIgKnN0YXROYW1lKQorIHsKKyAJaW50IHJlc3VsdCA9IDA7CistCisrCXN0YXRf dmFyICp0aGVWYXIgPSBOVUxMOworIAlzdHIgdGhlU3RyOworIAorIAl0aGVTdHIucyAgID0gc3Rh dE5hbWU7CisgCXRoZVN0ci5sZW4gPSBzdHJsZW4oc3RhdE5hbWUpOworIAorLQlzdGF0X3ZhciAq dGhlVmFyID0gZ2V0X3N0YXQoJnRoZVN0cik7CisrCXRoZVZhciA9IGdldF9zdGF0KCZ0aGVTdHIp OworIAorIAlpZiAodGhlVmFyPT0wKSB7CisgCQlMTV9JTkZPKCJmYWlsZWQgdG8gcmV0cmlldmUg c3RhdGlzdGljcyBmb3IgJXNcbiIsIHN0YXROYW1lKTsKCmRpZmYgLS1naXQgYS9vcGVuc2lwcy0w MDA3LUZpeC1jb25zdC1jb3JyZWN0bmVzcy13YXJuaW5ncy1pbi1IVFRQLWFuZC1GcmVlU1dJVEMu cGF0Y2ggYi9vcGVuc2lwcy0wMDA3LUZpeC1jb25zdC1jb3JyZWN0bmVzcy13YXJuaW5ncy1pbi1I VFRQLWFuZC1GcmVlU1dJVEMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3 NWZkNDIuLjAwMDAwMDAKLS0tIGEvb3BlbnNpcHMtMDAwNy1GaXgtY29uc3QtY29ycmVjdG5lc3Mt d2FybmluZ3MtaW4tSFRUUC1hbmQtRnJlZVNXSVRDLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MTU2ICswLDAgQEAKLUZyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBldGVyIExlbWVua292IDxsZW1lbmtv dkBnbWFpbC5jb20+Ci1EYXRlOiBTYXQsIDIwIERlYyAyMDI1IDIwOjE2OjQ4ICswMTAwCi1TdWJq ZWN0OiBbUEFUQ0hdIEZpeCBjb25zdC1jb3JyZWN0bmVzcyB3YXJuaW5ncyBpbiBIVFRQIGFuZCBG cmVlU1dJVENIIEVTTAotIGNvZGUKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRl eHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQK LQotRHVyaW5nIGNvbXBpbGF0aW9uIHdpdGggR0NDIDE1LjIuMSwgY29uc3QtcXVhbGlmaWVyIHdh cm5pbmdzIGFwcGVhciBpbiBtdWx0aXBsZSBtb2R1bGVzOgotYGBgCi1tb2R1bGVzL2h0dHBkL2h0 dHBkX3Byb2MuYzozNDg6MjQ6IHdhcm5pbmc6IGFzc2lnbm1lbnQgZGlzY2FyZHMgJ2NvbnN0JyBx dWFsaWZpZXIgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlIFstV2Rpc2NhcmRlZC1xdWFsaWZpZXJz XQotICAzNDggfCAgICAgICAgICAgICAgICAgaWYgKCAocD1zdHJjaHIodmFsdWUsICc7JykpIT1O VUxMICkgewotICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIF4KLQotLi4uCi0KLW1vZHVs ZXMvZnJlZXN3aXRjaC9lc2wvc3JjL2VzbF9ldmVudC5jOjQyODoyNDogd2FybmluZzogYXNzaWdu bWVudCBkaXNjYXJkcyAnY29uc3QnIHF1YWxpZmllciBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUg Wy1XZGlzY2FyZGVkLXF1YWxpZmllcnNdCi0gIDQyOCB8ICAgICAgICAgaWYgKChpbmRleF9wdHIg PSBzdHJjaHIoaGVhZGVyX25hbWUsICdbJykpKSB7Ci0gICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgXgotYGBgCi0KLUluIGBlc2xfZXZlbnRfYmFzZV9hZGRfaGVhZGVyKClgLCB0aGUgYGhl YWRlcl9uYW1lYCBwYXJhbWV0ZXIgaXMgYGNvbnN0IGNoYXIgKmAsIGFuZCBgc3RyY2hyKClgIHJl dHVybnMgYGNvbnN0IGNoYXIgKmAgd2hlbiBnaXZlbiBhIGNvbnN0IGlucHV0LiBUaGUgYGluZGV4 X3B0cmAgdmFyaWFibGUgd2FzIGRlY2xhcmVkIGFzIG5vbi1jb25zdCBgY2hhciAqYCwgY2F1c2lu ZyB0aGUgd2FybmluZy4KLQotKipGaXg6KiogQ2hhbmdlZCB2YXJpYWJsZSBkZWNsYXJhdGlvbiBm cm9tIGBjaGFyICppbmRleF9wdHJgIHRvIGBjb25zdCBjaGFyICppbmRleF9wdHJgLgotCi1UaGlz IGlzIHNhZmUgYmVjYXVzZSBgaW5kZXhfcHRyYCBpcyBvbmx5IHVzZWQgZm9yIHJlYWRpbmcvcGFy c2luZywgbmV2ZXIgZm9yIG1vZGlmaWNhdGlvbi4KLQotVGhlIGBnZXRDb25uZWN0aW9uSGVhZGVy KClgIGZ1bmN0aW9uIHJlY2VpdmVzIGB2YWx1ZWAgYXMgYGNvbnN0IGNoYXIgKmAsIGFuZCBgc3Ry Y2hyKClgIHByZXNlcnZlcyBjb25zdC1uZXNzIGJ5IHJldHVybmluZyBgY29uc3QgY2hhciAqYC4g SG93ZXZlciwgdGhlIGNvZGUgd2FzIGFzc2lnbmluZyB0aGlzIHRvIGEgbm9uLWNvbnN0IGBjaGFy ICpwYCBhbmQgdGhlbiBtb2RpZnlpbmcgdGhlIHN0cmluZyBieSB0ZW1wb3JhcmlseSBpbnNlcnRp bmcgYSBudWxsIHRlcm1pbmF0b3IgdG8gcGFyc2UgdGhlIE1JTUUgdHlwZS4KLQotKipPcmlnaW5h bCBhcHByb2FjaCAocHJvYmxlbWF0aWMpOioqCi1gYGBjCi1jaGFyICpwLCBiazsKLWlmICggKHA9 c3RyY2hyKHZhbHVlLCAnOycpKSE9TlVMTCApIHsKLSAgICB3aGlsZSggcD52YWx1ZSAmJiAoKihw LTEpPT0nICcgfHwgKihwLTEpPT0nXHQnKSApIHAtLTsKLSAgICBiayA9ICpwOwotICAgICpwID0g MDsgIC8vIE1vZGlmeSBjb25zdCBzdHJpbmchCi0gICAgaWYgKHN0cmNhc2VjbXAoInRleHQveG1s IiwgdmFsdWUpID09IDApIC4uLgotICAgICpwID0gYms7ICAvLyBSZXN0b3JlCi19Ci1gYGAKLQot VGhpcyB2aW9sYXRlcyBjb25zdC1jb3JyZWN0bmVzcyBieSBtb2RpZnlpbmcgYSBjb25zdCBzdHJp bmcsIHdoaWNoIGlzIHVuZGVmaW5lZCBiZWhhdmlvciBldmVuIGlmIGl0IGhhcHBlbnMgdG8gd29y ayBpbiBwcmFjdGljZS4KLQotQ2FsY3VsYXRlIHRoZSBlZmZlY3RpdmUgbGVuZ3RoIHdpdGhvdXQg bW9kaWZ5aW5nIHRoZSBzdHJpbmcuCi0KLSoqTmV3IGFwcHJvYWNoOioqCi1gYGBjCi1jb25zdCBj aGFyICpwLCAqZW5kOwotZW5kID0gdmFsdWUgKyBzdHJsZW4odmFsdWUpOyAgLy8gZGVmYXVsdCB0 byBmdWxsIGxlbmd0aAotaWYgKCAocD1zdHJjaHIodmFsdWUsICc7JykpIT1OVUxMICkgewotICAg IGVuZCA9IHA7Ci0gICAgd2hpbGUoIGVuZD52YWx1ZSAmJiAoKihlbmQtMSk9PScgJyB8fCAqKGVu ZC0xKT09J1x0JykgKSBlbmQtLTsKLX0KLWlmIChzdHJuY2FzZWNtcCgidGV4dC94bWwiLCB2YWx1 ZSwgZW5kIC0gdmFsdWUpID09IDApIC4uLgotYGBgCi0KLVRoZSBsZW5ndGggY2FsY3VsYXRpb24g YGVuZCAtIHZhbHVlYCBlbnN1cmVzIHdlIGNvbXBhcmUgZXhhY3RseSB0aGUgTUlNRSB0eXBlIHBv cnRpb24sIHByZXZlbnRpbmcgZmFsc2UgbWF0Y2hlcyB3aXRoIGxvbmdlciBzdHJpbmdzLgotCi0q KkV4YW1wbGUgb2YgdGhlIHByb2JsZW0gd2UncmUgcHJldmVudGluZzoqKgotYGBgCi1Db250ZW50 LVR5cGU6IHRleHQveG1sZm9vYmFyOyBjaGFyc2V0PXV0Zi04Ci1gYGAKLQotV2l0aG91dCB1c2lu ZyB0aGUgY2FsY3VsYXRlZCBsZW5ndGg6Ci1gYGBjCi0vLyBCQUQ6IFVzaW5nIGEgZml4ZWQgbGVu Z3RoCi1pZiAoc3RybmNhc2VjbXAoInRleHQveG1sIiwgdmFsdWUsIDgpID09IDApIC4uLgotLy8g VGhpcyB3b3VsZCBtYXRjaCAidGV4dC94bWxmb29iYXIiIGJlY2F1c2UgZmlyc3QgOCBjaGFycyBt YXRjaCEKLWBgYAotCi1XaXRoIGNhbGN1bGF0ZWQgbGVuZ3RoOgotYGBgYwotZW5kID0gc3RyY2hy KHZhbHVlLCAnOycpICAvLyBQb2ludHMgdG8gJzsnCi0vLyBBZnRlciB0cmltbWluZzogZW5kIC0g dmFsdWUgPSAxNCAobGVuZ3RoIG9mICJ0ZXh0L3htbGZvb2JhciIpCi1pZiAoc3RybmNhc2VjbXAo InRleHQveG1sIiwgdmFsdWUsIDE0KSA9PSAwKSAuLi4KLS8vIOKckyBDb3JyZWN0bHkgcmVqZWN0 czogc3RybmNhc2VjbXAgY29tcGFyZXMgOCBjaGFycyBvZiAidGV4dC94bWwiCi0vLyAgIHZzIDE0 IGNoYXJzIG5lZWRlZCwgaGl0cyBcMCBpbiBmaXJzdCBzdHJpbmcsIHJldHVybnMgbm9uLXplcm8K LWBgYAotCi1UaGUga2V5IGluc2lnaHQ6IGBzdHJuY2FzZWNtcChzdHIxLCBzdHIyLCBuKWAgd2ls bCByZXR1cm4gbm9uLXplcm8gaWYgZWl0aGVyIHN0cmluZyBpcyBzaG9ydGVyIHRoYW4gYG5gIGNo YXJhY3RlcnMgKGR1ZSB0byBudWxsIHRlcm1pbmF0b3IpLCBlbnN1cmluZyB3ZSBkb24ndCBtYXRj aCBzdHJpbmdzIHRoYXQgYXJlIGxvbmdlciB0aGFuIG91ciBleHBlY3RlZCBNSU1FIHR5cGUuCi0K LTEuIENoYW5nZWQgYGNoYXIgKnAsIGJrO2AgdG8gYGNvbnN0IGNoYXIgKnAsICplbmQ7YAotMi4g UmVtb3ZlZCBgYmtgIHZhcmlhYmxlIChubyBsb25nZXIgbmVlZGVkKQotMy4gQ2FsY3VsYXRlIGBl bmRgIHBvaW50ZXIgdG8gbWFyayB0aGUgZWZmZWN0aXZlIGVuZCBvZiB0aGUgTUlNRSB0eXBlCi00 LiBVcGRhdGVkIGFsbCBNSU1FIHR5cGUgY29tcGFyaXNvbnMgdG8gdXNlIGBzdHJuY2FzZWNtcCgp YCB3aXRoIGBlbmQgLSB2YWx1ZWAgbGVuZ3RoCi01LiBSZW1vdmVkIGNvZGUgdGhhdCBtb2RpZmll ZCBhbmQgcmVzdG9yZWQgdGhlIGNvbnN0IHN0cmluZwotCi1BZmZlY3RlZCBNSU1FIHR5cGVzOgot LSBgdGV4dC94bWxgCi0tIGBhcHBsaWNhdGlvbi9qc29uYAotLSBgdGV4dC9odG1sYAotLSBgdGV4 dC9wbGFpbmAKLQotU2lnbmVkLW9mZi1ieTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWls LmNvbT4KLUFzc2lzdGVkLWJ5OiBDbGF1ZGUgKEFudGhyb3BpYykgPGh0dHBzOi8vY2xhdWRlLmFp PgotCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9mcmVlc3dpdGNoL2VzbC9zcmMvZXNsX2V2ZW50LmMg Yi9tb2R1bGVzL2ZyZWVzd2l0Y2gvZXNsL3NyYy9lc2xfZXZlbnQuYwotaW5kZXggYTEyYjZkNjM3 Yi4uZjYyNDk3Mzg4NCAxMDA2NDQKLS0tLSBhL21vZHVsZXMvZnJlZXN3aXRjaC9lc2wvc3JjL2Vz bF9ldmVudC5jCi0rKysgYi9tb2R1bGVzL2ZyZWVzd2l0Y2gvZXNsL3NyYy9lc2xfZXZlbnQuYwot QEAgLTQyNSw3ICs0MjUsNyBAQCBzdGF0aWMgZXNsX3N0YXR1c190IGVzbF9ldmVudF9iYXNlX2Fk ZF9oZWFkZXIoZXNsX2V2ZW50X3QgKmV2ZW50LCBlc2xfc3RhY2tfdCBzdAotIAkJZXNsX2V2ZW50 X3NldF9ib2R5KGV2ZW50LCBkYXRhKTsKLSAJfQotIAotLQlpZiAoKGluZGV4X3B0ciA9IHN0cmNo cihoZWFkZXJfbmFtZSwgJ1snKSkpIHsKLSsJaWYgKChpbmRleF9wdHIgPSAoY2hhciAqKXN0cmNo cihoZWFkZXJfbmFtZSwgJ1snKSkpIHsKLSAJCWluZGV4X3B0cisrOwotIAkJaW5kZXggPSBhdG9p KGluZGV4X3B0cik7Ci0gCQlyZWFsX2hlYWRlcl9uYW1lID0gRFVQKGhlYWRlcl9uYW1lKTsKLWRp ZmYgLS1naXQgYS9tb2R1bGVzL2h0dHBkL2h0dHBkX3Byb2MuYyBiL21vZHVsZXMvaHR0cGQvaHR0 cGRfcHJvYy5jCi1pbmRleCA4ZTg3NjYxMDQ4Li5iMTJjYzQxYjljIDEwMDY0NAotLS0tIGEvbW9k dWxlcy9odHRwZC9odHRwZF9wcm9jLmMKLSsrKyBiL21vZHVsZXMvaHR0cGQvaHR0cGRfcHJvYy5j Ci1AQCAtMzMyLDcgKzMzMiw3IEBAIE1IRF9SRVQgZ2V0Q29ubmVjdGlvbkhlYWRlcih2b2lkICpj bHMsIGVudW0gTUhEX1ZhbHVlS2luZCBraW5kLAotIAlzdHJ1Y3QgcG9zdF9yZXF1ZXN0ICpwciA9 IChzdHJ1Y3QgcG9zdF9yZXF1ZXN0KiljbHM7Ci0gCXN0ciBjb250ZW50X2xlbmd0aDsKLSAJdW5z aWduZWQgaW50IGxlbjsKLS0JY2hhciAqcCwgYms7Ci0rCWNvbnN0IGNoYXIgKnAsICplbmQ7Ci0g Ci0gCWlmIChjbHMgPT0gTlVMTCkgewotIAkJTE1fRVJSKCJVbmFibGUgdG8gc3RvcmUgcmV0dXJu IGRhdGFcbiIpOwotQEAgLTM1NiwyNCArMzU2LDI0IEBAIE1IRF9SRVQgZ2V0Q29ubmVjdGlvbkhl YWRlcih2b2lkICpjbHMsIGVudW0gTUhEX1ZhbHVlS2luZCBraW5kLAotIAlpZiAoc3RyY2FzZWNt cCgiQ29udGVudC1UeXBlIiwga2V5KSA9PSAwKSB7Ci0gCQlMTV9EQkcoIkNvbnRlbnQtVHlwZT0l c1xuIiwgdmFsdWUpOwotIAkJLyogZXh0cmFjdCBvbmx5IHRoZSBtaW1lICovCi0rCQllbmQgPSB2 YWx1ZSArIHN0cmxlbih2YWx1ZSk7ICAvLyBkZWZhdWx0IHRvIGZ1bGwgbGVuZ3RoCi0gCQlpZiAo IChwPXN0cmNocih2YWx1ZSwgJzsnKSkhPU5VTEwgKSB7Ci0tCQkJd2hpbGUoIHA+dmFsdWUgJiYg KCoocC0xKT09JyAnIHx8ICoocC0xKT09J1x0JykgKSBwLS07Ci0tCQkJYmsgPSAqcDsKLS0JCQkq cCA9IDA7Ci0rCQkJZW5kID0gcDsKLSsJCQl3aGlsZSggZW5kPnZhbHVlICYmICgqKGVuZC0xKT09 JyAnIHx8ICooZW5kLTEpPT0nXHQnKSApIGVuZC0tOwotIAkJfQotLQkJaWYgKHN0cmNhc2VjbXAo InRleHQveG1sIiwgdmFsdWUpID09IDApCi0rCQlsZW4gPSBlbmQgLSB2YWx1ZTsKLSsJCWlmIChz dHJuY2FzZWNtcCgidGV4dC94bWwiLCB2YWx1ZSwgZW5kIC0gdmFsdWUpID09IDApCi0gCQkJcHIt PmNvbnRlbnRfdHlwZSA9IEhUVFBEX1RFWFRfWE1MX0NOVF9UWVBFOwotLQkJZWxzZSBpZiAoc3Ry bmNhc2VjbXAoImFwcGxpY2F0aW9uL2pzb24iLCB2YWx1ZSwgMTYpID09IDApCi0rCQllbHNlIGlm IChzdHJuY2FzZWNtcCgiYXBwbGljYXRpb24vanNvbiIsIHZhbHVlLCBlbmQgLSB2YWx1ZSkgPT0g MCkKLSAJCQlwci0+Y29udGVudF90eXBlID0gSFRUUERfQVBQTElDQVRJT05fSlNPTl9DTlRfVFlQ RTsKLS0JCWVsc2UgaWYgKHN0cm5jYXNlY21wKCJ0ZXh0L2h0bWwiLCB2YWx1ZSwgOSkgPT0gMCkK LSsJCWVsc2UgaWYgKHN0cm5jYXNlY21wKCJ0ZXh0L2h0bWwiLCB2YWx1ZSwgZW5kIC0gdmFsdWUp ID09IDApCi0gCQkJcHItPmNvbnRlbnRfdHlwZSA9IEhUVFBEX1RFWFRfSFRNTF9UWVBFOwotLQkJ ZWxzZSBpZiAoc3RybmNhc2VjbXAoInRleHQvcGxhaW4iLCB2YWx1ZSwgMTApID09IDApCi0rCQll bHNlIGlmIChzdHJuY2FzZWNtcCgidGV4dC9wbGFpbiIsIHZhbHVlLCBlbmQgLSB2YWx1ZSkgPT0g MCkKLSAJCQlwci0+Y29udGVudF90eXBlID0gSFRUUERfVEVYVF9QTEFJTl9UWVBFOwotIAkJZWxz ZSB7Ci0gCQkJcHItPmNvbnRlbnRfdHlwZSA9IEhUVFBEX1VOS05PV05fQ05UX1RZUEU7Ci0gCQkJ TE1fRVJSKCJVbmV4cGVjdGVkIENvbnRlbnQtVHlwZT1bJXNdXG4iLCB2YWx1ZSk7Ci0gCQl9Ci0t CQlpZiAocCkgKnAgPSBiazsKLSAJCWdvdG8gZG9uZTsKLSAJfQotIAlpZiAoc3RyY2FzZWNtcCgi Q29udGVudC1MZW5ndGgiLCBrZXkpID09IDApIHsKCmRpZmYgLS1naXQgYS9vcGVuc2lwcy0wMDA4 LUZpeC1idWlsZC13aXRoLU9wZW5TU0wtMy54LXJlcGxhY2UtZGlyZWN0LUFTTjFfU1RSSU4ucGF0 Y2ggYi9vcGVuc2lwcy0wMDA4LUZpeC1idWlsZC13aXRoLU9wZW5TU0wtMy54LXJlcGxhY2UtZGly ZWN0LUFTTjFfU1RSSU4ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NzJjYTg3ZgotLS0gL2Rldi9udWxsCisrKyBiL29wZW5zaXBzLTAwMDgtRml4LWJ1aWxkLXdpdGgt T3BlblNTTC0zLngtcmVwbGFjZS1kaXJlY3QtQVNOMV9TVFJJTi5wYXRjaApAQCAtMCwwICsxLDc4 IEBACitGcm9tIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwu Y29tPgorRGF0ZTogV2VkLCAyNCBKdW4gMjAyNiAyMDoyOTo0NSArMDIwMAorU3ViamVjdDogW1BB VENIXSBGaXggYnVpbGQgd2l0aCBPcGVuU1NMIDMueDogcmVwbGFjZSBkaXJlY3QgQVNOMV9TVFJJ TkcgbWVtYmVyCisgYWNjZXNzCisKK09wZW5TU0wgMy54IG1hZGUgQVNOMV9TVFJJTkcgKHN0cnVj dCBhc24xX3N0cmluZ19zdCkgYW4gb3BhcXVlIHR5cGUuCitSZXBsYWNlIGFsbCBkaXJlY3QgLT5k YXRhIGFuZCAtPmxlbmd0aCBtZW1iZXIgYWNjZXNzIHdpdGggdGhlIHB1YmxpYworYWNjZXNzb3Ig QVBJIChBU04xX1NUUklOR19nZXQwX2RhdGEsIEFTTjFfU1RSSU5HX2xlbmd0aCksIGF2YWlsYWJs ZQorc2luY2UgT3BlblNTTCAxLjEuMC4KKworRml4ZXMgYnVpbGQgb24gRmVkb3JhIDQ1IChPcGVu U1NMIDMuNS54LCBHQ0MgMTYpLgorCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtvdiA8bGVt ZW5rb3ZAZ21haWwuY29tPgorQXNzaXN0ZWQtYnk6IENsYXVkZSAoQW50aHJvcGljKSA8aHR0cHM6 Ly9jbGF1ZGUuYWk+CisKK2RpZmYgLS1naXQgYS9tb2R1bGVzL2lkZW50aXR5L2lkZW50aXR5LmMg Yi9tb2R1bGVzL2lkZW50aXR5L2lkZW50aXR5LmMKK2luZGV4IGY0YTM1MGE1M2MuLmExYjE3Yjlk MDMgMTAwNjQ0CistLS0gYS9tb2R1bGVzL2lkZW50aXR5L2lkZW50aXR5LmMKKysrKyBiL21vZHVs ZXMvaWRlbnRpdHkvaWRlbnRpdHkuYworQEAgLTE0MjAsMTMgKzE0MjAsMTMgQEAgc3RhdGljIHRp bWVfdCBwYXJzZVg1MDlEYXRlKEFTTjFfU1RSSU5HICogZGF0ZVN0cmluZykKKyAJCXJldHVybiAt MTsKKyAJfQorIAorLQlpZigoQVNOMV9VVENUSU1FX2NoZWNrKGRhdGVTdHJpbmcpKSAmJiAoZGF0 ZVN0cmluZy0+bGVuZ3RoID09IDEzKSkKKysJaWYoKEFTTjFfVVRDVElNRV9jaGVjayhkYXRlU3Ry aW5nKSkgJiYgKEFTTjFfU1RSSU5HX2xlbmd0aChkYXRlU3RyaW5nKSA9PSAxMykpCisgCXsKKyAJ CS8qIFVUQ1RJTUUgc3RyaW5nLCBHTVQKKyAJCVlZTU1ERGhobW1zc1oKKyAJCSovCisgCistCQl0 bXAgPSBkYXRlU3RyaW5nLT5kYXRhOworKwkJdG1wID0gKGNoYXIgKilBU04xX1NUUklOR19nZXQw X2RhdGEoZGF0ZVN0cmluZyk7CisgCisgCQl0bURhdGUudG1feWVhciA9ICh0bXBbMF0gLSAnMCcp ICogMTAgKyAodG1wWzFdIC0gJzAnKTsKKyAJCWlmKHRtRGF0ZS50bV95ZWFyIDwgNTApIC8vc2Vl IGNoYXAuIDQuMS4yLjUuMSwgcmZjIDMyODAKK0BAIC0xNDQ0LDEyICsxNDQ0LDEyIEBAIHN0YXRp YyB0aW1lX3QgcGFyc2VYNTA5RGF0ZShBU04xX1NUUklORyAqIGRhdGVTdHJpbmcpCisgCX0KKyAK KyAJLyogbmVlZGVkIGZvciB5ZWFycyA+PSAyMDUwICovCistCWlmICgoQVNOMV9HRU5FUkFMSVpF RFRJTUVfY2hlY2soZGF0ZVN0cmluZykpICYmIChkYXRlU3RyaW5nLT5sZW5ndGggPT0gMTUpKQor KwlpZiAoKEFTTjFfR0VORVJBTElaRURUSU1FX2NoZWNrKGRhdGVTdHJpbmcpKSAmJiAoQVNOMV9T VFJJTkdfbGVuZ3RoKGRhdGVTdHJpbmcpID09IDE1KSkKKyAJeworIAkJLyogR0VORVJBTElaRURU SU1FIHN0cmluZzsgR01UCisgCQlZWVlZTU1ERGhobW1zc1oKKyAJCSovCistCQl0bXAgPSBkYXRl U3RyaW5nLT5kYXRhOworKwkJdG1wID0gKGNoYXIgKilBU04xX1NUUklOR19nZXQwX2RhdGEoZGF0 ZVN0cmluZyk7CisgCisgCQl0bURhdGUudG1feWVhciA9ICh0bXBbMF0gLSAnMCcpICogMTAwMCAr CisgCQkJKHRtcFsxXSAtICcwJykgKiAxMDAgKyAodG1wWzJdIC0gJzAnKSAqIDEwICsgKHRtcFsz XSAtICcwJykgLSAxOTAwOworZGlmZiAtLWdpdCBhL21vZHVsZXMvdGxzX29wZW5zc2wvb3BlbnNz bF90bHNfdmFycy5jIGIvbW9kdWxlcy90bHNfb3BlbnNzbC9vcGVuc3NsX3Rsc192YXJzLmMKK2lu ZGV4IDBhYzM5Zjc2NDguLjg1OWFlNzVmZTcgMTAwNjQ0CistLS0gYS9tb2R1bGVzL3Rsc19vcGVu c3NsL29wZW5zc2xfdGxzX3ZhcnMuYworKysrIGIvbW9kdWxlcy90bHNfb3BlbnNzbC9vcGVuc3Ns X3Rsc192YXJzLmMKK0BAIC0zMjQsOCArMzI0LDggQEAgaW50IG9wZW5zc2xfdGxzX3Zhcl9hbHQo aW50IGluZCwgdm9pZCAqc3NsLCBzdHIgKnJlcykKKyAJCWNhc2UgR0VOX0VNQUlMOgorIAkJY2Fz ZSBHRU5fRE5TOgorIAkJY2FzZSBHRU5fVVJJOgorLQkJCXRleHQucyA9IChjaGFyKilubS0+ZC5p YTUtPmRhdGE7CistCQkJdGV4dC5sZW4gPSBubS0+ZC5pYTUtPmxlbmd0aDsKKysJCQl0ZXh0LnMg PSAoY2hhciopQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKG5tLT5kLmlhNSk7CisrCQkJdGV4dC5sZW4g PSBBU04xX1NUUklOR19sZW5ndGgobm0tPmQuaWE1KTsKKyAJCQlpZiAodGV4dC5sZW4gPj0gMTAy NCkgeworIAkJCQlMTV9FUlIoImFsdGVybmF0aXZlIHN1YmplY3QgdGV4dCB0b28gbG9uZ1xuIik7 CisgCQkJCWdvdG8gZXJyOworQEAgLTMzNyw5ICszMzcsOSBAQCBpbnQgb3BlbnNzbF90bHNfdmFy X2FsdChpbnQgaW5kLCB2b2lkICpzc2wsIHN0ciAqcmVzKQorIAkJCWJyZWFrOworIAorIAkJY2Fz ZSBHRU5fSVBBREQ6CistCQkJaXAubGVuID0gbm0tPmQuaVBBZGRyZXNzLT5sZW5ndGg7CisrCQkJ aXAubGVuID0gQVNOMV9TVFJJTkdfbGVuZ3RoKG5tLT5kLmlQQWRkcmVzcyk7CisgCQkJaXAuYWYg PSAoaXAubGVuID09IDE2KSA/IEFGX0lORVQ2IDogQUZfSU5FVDsKKy0JCQltZW1jcHkoaXAudS5h ZGRyLCBubS0+ZC5pUEFkZHJlc3MtPmRhdGEsIGlwLmxlbik7CisrCQkJbWVtY3B5KGlwLnUuYWRk ciwgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKG5tLT5kLmlQQWRkcmVzcyksIGlwLmxlbik7CisgCQkJ dGV4dC5zID0gaXBfYWRkcjJhKCZpcCk7CisgCQkJdGV4dC5sZW4gPSBzdHJsZW4odGV4dC5zKTsK KyAJCQltZW1jcHkoYnVmLCB0ZXh0LnMsIHRleHQubGVuKTsKCmRpZmYgLS1naXQgYS9vcGVuc2lw cy0wMDA4LUZpeC11bmluaXRpYWxpemVkLXZhX2xpc3Qtd2FybmluZy1vbi1wcGM2NGxlLWFuZC1p NjgucGF0Y2ggYi9vcGVuc2lwcy0wMDA4LUZpeC11bmluaXRpYWxpemVkLXZhX2xpc3Qtd2Fybmlu Zy1vbi1wcGM2NGxlLWFuZC1pNjgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDk1N2NlZjUuLjAwMDAwMDAKLS0tIGEvb3BlbnNpcHMtMDAwOC1GaXgtdW5pbml0aWFsaXplZC12 YV9saXN0LXdhcm5pbmctb24tcHBjNjRsZS1hbmQtaTY4LnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMTAwICswLDAgQEAKLUZyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBldGVyIExlbWVua292IDxsZW1l bmtvdkBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDI2IERlYyAyMDI1IDE3OjI1OjA1ICswMTAwCi1T dWJqZWN0OiBbUEFUQ0hdIEZpeCB1bmluaXRpYWxpemVkIHZhX2xpc3Qgd2FybmluZyBvbiBwcGM2 NGxlIGFuZCBpNjg2IHdpdGgKLSBHQ0MgMTUKLQotRHVyaW5nIGNvbXBpbGF0aW9uIG9uIHBwYzY0 bGUgYW5kIGk2ODYgYXJjaGl0ZWN0dXJlcyB3aXRoIEdDQyAxNSwgYQotd2FybmluZyBhcHBlYXJz OgotCi1gYGAKLWNhY2hlZGJfcmVkaXNfZGJhc2UuYzogSW4gZnVuY3Rpb24gJ3JlZGlzX3J1bl9j b21tYW5kX2FyZ3YnOgotY2FjaGVkYl9yZWRpc19kYmFzZS5jOjY1OToxNjogd2FybmluZzogJ18n IGlzIHVzZWQgdW5pbml0aWFsaXplZCBbLVd1bmluaXRpYWxpemVkXQotICA2NTkgfCAgICAgICAg IHJldHVybiBfcmVkaXNfcnVuX2NvbW1hbmQoY29ubmVjdGlvbiwgcnBsLCBrZXksIGFyZ2MsIGFy Z3YsIGFyZ3ZsZW4sIE5VTEwsIF8pOwotICAgICAgfCAgICAgICAgICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+Ci1jYWNoZWRiX3JlZGlzX2RiYXNlLmM6NjU3OjE3OiBub3RlOiAnXycgd2FzIGRlY2xhcmVk IGhlcmUKLSAgNjU3IHwgICAgICAgICB2YV9saXN0IF87Ci0gICAgICB8ICAgICAgICAgICAgICAg ICBeCi1gYGAKLQotSW4gY29tbWl0IGQ2YWQ2ZDQwMzlmY2Y2ODYyNDQ4MWY2OWVlNjdlZmY5MmY3 YjNhYjIsIHRoZQotYHJlZGlzX3J1bl9jb21tYW5kX2FyZ3YoKWAgZnVuY3Rpb24gd2FzIG1vZGlm aWVkIHRvIHBhc3MgYW4KLXVuaW5pdGlhbGl6ZWQgYHZhX2xpc3RgIHRvIGBfcmVkaXNfcnVuX2Nv bW1hbmQoKWAuCi0KLVRoZSBvcmlnaW5hbCBsb2dpYyBpczoKLWBgYGMKLXN0YXRpYyBpbnQgcmVk aXNfcnVuX2NvbW1hbmRfYXJndiguLi4pIHsKLSAgICB2YV9saXN0IF87Ci0gICAgcmV0dXJuIF9y ZWRpc19ydW5fY29tbWFuZChjb25uZWN0aW9uLCBycGwsIGtleSwgYXJnYywgYXJndiwgYXJndmxl biwgTlVMTCwgXyk7Ci19Ci1gYGAKLQotVGhlIHVuZGVyc2NvcmUgYF9gIHdhcyB1c2VkIGFzIGEg ImRvbid0IGNhcmUiIHBsYWNlaG9sZGVyLCBzaW5jZSB3aGVuCi1gYXJnY2AgaXMgbm9uLXplcm8s IGBfcmVkaXNfcnVuX2NvbW1hbmQoKWAgdXNlcyB0aGUgYGFyZ3ZgIHBhdGggYW5kCi1uZXZlciBh Y2Nlc3NlcyB0aGUgYHZhX2xpc3RgIHBhcmFtZXRlcjoKLQotYGBgYwotaWYgKGFyZ2MpIHsKLSAg ICByZXBseSA9IHJlZGlzQ29tbWFuZEFyZ3Yobm9kZS0+Y29udGV4dCwgYXJnYywgYXJndiwgYXJn dmxlbik7Ci19IGVsc2UgewotICAgIHZhX2NvcHkoYXEsIGFwKTsgIC8vIE9ubHkgZXhlY3V0ZWQg d2hlbiBhcmdjID09IDAKLSAgICByZXBseSA9IHJlZGlzdkNvbW1hbmQobm9kZS0+Y29udGV4dCwg Y21kX2ZtdCwgYXEpOwotICAgIHZhX2VuZChhcSk7Ci19Ci1gYGAKLQotV2hpbGUgdGhpcyB3b3Jr ZWQgaW4gcHJhY3RpY2UgKHRoZSB1bmluaXRpYWxpemVkIGB2YV9saXN0YCBpcyBuZXZlcgotYWN0 dWFsbHkgdXNlZCksIEdDQyAxNSBub3cgY29ycmVjdGx5IHdhcm5zIHRoYXQgcGFzc2luZyB1bmlu aXRpYWxpemVkCi1kYXRhIGlzIHVuZGVmaW5lZCBiZWhhdmlvciwgZXZlbiBpZiB0aGF0IGRhdGEg aXMgbmV2ZXIgYWNjZXNzZWQuCi0KLUluaXRpYWxpemUgdGhlIGB2YV9saXN0YCB0byBhIHNhZmUg dmFsdWUgdXNpbmcgemVyby1pbml0aWFsaXphdGlvbi4gVGhpcwotc2F0aXNmaWVzIHRoZSBjb21w aWxlcidzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY2hlY2sgd2hpbGUgbWFpbnRhaW5pbmcKLXRo ZSBvcmlnaW5hbCBsb2dpYyAtIHRoZSBgdmFfbGlzdGAgc3RpbGwgd29uJ3QgYmUgdXNlZCB3aGVu IGBhcmdjYCBpcwotbm9uLXplcm8sIGJ1dCBpdCdzIG5vdyB2YWxpZGx5IGluaXRpYWxpemVkLgot Ci0qKkNoYW5nZWQ6KioKLWBgYGMKLXZhX2xpc3QgXzsKLWBgYAotCi0qKlRvOioqCi1gYGBjCi12 YV9saXN0IHVudXNlZF9hcCA9IHswfTsKLWBgYAotCi1BbHNvIHJlbmFtZWQgZnJvbSBgX2AgdG8g YHVudXNlZF9hcGAgZm9yIGNsYXJpdHksIGFzIHNpbmdsZSB1bmRlcnNjb3JlCi1pZGVudGlmaWVy cyBjYW4gYmUgcHJvYmxlbWF0aWMgYW5kIGRvbid0IGNsZWFybHkgY29udmV5IGludGVudC4KLQot RXZlbiB0aG91Z2ggdGhlIHVuaW5pdGlhbGl6ZWQgYHZhX2xpc3RgIGlzIG5ldmVyIGFjY2Vzc2Vk IGluIHByYWN0aWNlLAotcGFzc2luZyB1bmluaXRpYWxpemVkIGRhdGEgdmlvbGF0ZXMgQydzIHJ1 bGVzIGFuZCBjYW4gY2F1c2UgaXNzdWVzIHdpdGg6Ci0KLS0gU3RhdGljIGFuYWx5c2lzIHRvb2xz Ci0tIENvbXBpbGVyIG9wdGltaXphdGlvbnMgdGhhdCBhc3N1bWUgbm8gdW5kZWZpbmVkIGJlaGF2 aW9yCi0tIEZ1dHVyZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgYHZhX2xpc3RgIGltcGxlbWVudGF0 aW9ucwotLSBDb2RlIG1haW50YWluYWJpbGl0eSAodW5jbGVhciBpbnRlbnQpCi0KLVRoaXMgY2hh bmdlIG1ha2VzIHRoZSBjb2RlIGNvbXBsaWFudCB3aXRoIEMgc3RhbmRhcmRzIHdoaWxlIHByZXNl cnZpbmcKLXRoZSBvcmlnaW5hbCBmdW5jdGlvbmFsaXR5LgotCi1SZWxhdGVkIGNvbW1pdDogZDZh ZDZkNDAzOWZjZjY4NjI0NDgxZjY5ZWU2N2VmZjkyZjdiM2FiMgotKCJjYWNoZWRiX3JlZGlzOiBw cm9wZXJseSBwYXNzIHZhcmlhYmxlIGFyZ3VtZW50cyB0byBhIFJlZGlzIGNvbW1hbmQiKQotCi1T aWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgotQXNzaXN0 ZWQtYnk6IENsYXVkZSAoQW50aHJvcGljKSA8aHR0cHM6Ly9jbGF1ZGUuYWk+Ci0KLWRpZmYgLS1n aXQgYS9tb2R1bGVzL2NhY2hlZGJfcmVkaXMvY2FjaGVkYl9yZWRpc19kYmFzZS5jIGIvbW9kdWxl cy9jYWNoZWRiX3JlZGlzL2NhY2hlZGJfcmVkaXNfZGJhc2UuYwotaW5kZXggMTc1MDQ5NTMzMy4u MzJlYzRkMmYxOCAxMDA2NDQKLS0tLSBhL21vZHVsZXMvY2FjaGVkYl9yZWRpcy9jYWNoZWRiX3Jl ZGlzX2RiYXNlLmMKLSsrKyBiL21vZHVsZXMvY2FjaGVkYl9yZWRpcy9jYWNoZWRiX3JlZGlzX2Ri YXNlLmMKLUBAIC0xMDA3LDkgKzEwMDcsOSBAQCBzdGF0aWMgaW50IHJlZGlzX3J1bl9jb21tYW5k KGNhY2hlZGJfY29uICpjb25uZWN0aW9uLCByZWRpc1JlcGx5ICoqcnBsLAotIHN0YXRpYyBpbnQg cmVkaXNfcnVuX2NvbW1hbmRfYXJndihjYWNoZWRiX2NvbiAqY29ubmVjdGlvbiwgcmVkaXNSZXBs eSAqKnJwbCwKLSAgICAgICAgICAgICAgIHN0ciAqa2V5LCBpbnQgYXJnYywgY29uc3QgY2hhciAq KmFyZ3YsIGNvbnN0IHNpemVfdCAqYXJndmxlbikKLSB7Ci0tCXZhX2xpc3QgXzsKLSsJdmFfbGlz dCB1bnVzZWRfYXAgPSB7MH07Ci0gCi0tCXJldHVybiBfcmVkaXNfcnVuX2NvbW1hbmQoY29ubmVj dGlvbiwgcnBsLCBrZXksIGFyZ2MsIGFyZ3YsIGFyZ3ZsZW4sIE5VTEwsIF8pOwotKwlyZXR1cm4g X3JlZGlzX3J1bl9jb21tYW5kKGNvbm5lY3Rpb24sIHJwbCwga2V5LCBhcmdjLCBhcmd2LCBhcmd2 bGVuLCBOVUxMLCB1bnVzZWRfYXApOwotIH0KLSAKLSBpbnQgcmVkaXNfZ2V0KGNhY2hlZGJfY29u ICpjb25uZWN0aW9uLHN0ciAqYXR0cixzdHIgKnZhbCkKCmRpZmYgLS1naXQgYS9vcGVuc2lwcy0w MDA5LUZpeC1wb2ludGVyLXRydW5jYXRpb24td2FybmluZy1vbi0zMi1iaXQtYXJjaGl0ZWN0dXIu cGF0Y2ggYi9vcGVuc2lwcy0wMDA5LUZpeC1wb2ludGVyLXRydW5jYXRpb24td2FybmluZy1vbi0z Mi1iaXQtYXJjaGl0ZWN0dXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkw OTcwOTMuLjAwMDAwMDAKLS0tIGEvb3BlbnNpcHMtMDAwOS1GaXgtcG9pbnRlci10cnVuY2F0aW9u LXdhcm5pbmctb24tMzItYml0LWFyY2hpdGVjdHVyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MjkxICswLDAgQEAKLUZyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBldGVyIExlbWVua292IDxsZW1lbmtv dkBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDI2IERlYyAyMDI1IDIxOjA4OjAwICswMTAwCi1TdWJq ZWN0OiBbUEFUQ0hdIEZpeCBwb2ludGVyIHRydW5jYXRpb24gd2FybmluZyBvbiAzMi1iaXQgYXJj aGl0ZWN0dXJlcyBpbgotIGFhYV9kaWFtZXRlcgotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQt VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu ZzogOGJpdAotCi1EdXJpbmcgY29tcGlsYXRpb24gb24gaTY4NiAoMzItYml0KSBhcmNoaXRlY3R1 cmUgd2l0aCBHQ0MgMTUsIGEgcG9pbnRlcgotdHJ1bmNhdGlvbiB3YXJuaW5nIGFwcGVhcnM6Ci0K LWBgYAotYWFhX2RpYW1ldGVyLmM6IEluIGZ1bmN0aW9uICdkbV9zZW5kX2Fuc3dlcic6Ci1hYWFf ZGlhbWV0ZXIuYzo0MjM6NzM6IHdhcm5pbmc6IGNhc3QgdG8gcG9pbnRlciBmcm9tIGludGVnZXIg b2YgZGlmZmVyZW50IHNpemUgWy1XaW50LXRvLXBvaW50ZXItY2FzdF0KLSAgNDIzIHwgIGRtc2cg PSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9SUEwsIGFwcGlkLCBjbWRjb2Rl LCAodm9pZCAqKWZkX3JlcSk7Ci1gYGAKLQotVGhlIGBkbV9tZXNzYWdlYCBzdHJ1Y3Qgc3RvcmVz IGEgcG9pbnRlciB0byBhIEZyZWVEaWFtZXRlciBtZXNzYWdlCi1zdHJ1Y3R1cmUgaW4gdGhlIGBm ZF9yZXFgIGZpZWxkLCBidXQgdGhlIHR5cGUgaXMgbWlzbWF0Y2hlZCBhY3Jvc3MKLWRpZmZlcmVu dCBjb2RlIHBhdGhzOgotCi0xLiBJbiBgYWFhX2RpYW1ldGVyLmNgLCBhIHBvaW50ZXIgaXMgc2Vy aWFsaXplZCBhcyBgdWludDY0X3RgICg4IGJ5dGVzKQotMi4gSXQncyB0aGVuIGNhc3QgdG8gYHZv aWQgKmAgYW5kIHBhc3NlZCB0byBgX2RtX2NyZWF0ZV9tZXNzYWdlKClgCi0zLiBPbiAqKmk2ODYq KiwgYHZvaWQgKmAgaXMgb25seSA0IGJ5dGVzLCBjYXVzaW5nICoqdHJ1bmNhdGlvbioqIG9mIHRo ZQotICAgdXBwZXIgMzIgYml0cwotNC4gSW4gYGRtX3BlZXIuY2AsIGl0J3MgY2FzdCBiYWNrIHRv IGBzdHJ1Y3QgbXNnICpgIGZvciB1c2UKLQotKipPbiB4ODZfNjQgKDY0LWJpdCk6KioKLQotLSBg dWludDY0X3RgID0gOCBieXRlcwotLSBgdm9pZCAqYCA9IDggYnl0ZXMKLS0gTm8gdHJ1bmNhdGlv biwgd29ya3MgZmluZQotCi0qKk9uIGk2ODYgKDMyLWJpdCk6KioKLQotLSBgdWludDY0X3RgID0g OCBieXRlcwotLSBgdm9pZCAqYCA9IDQgYnl0ZXMKLS0gKipUcnVuY2F0aW9uIG9jY3VycyoqLCBs b3NpbmcgdXBwZXIgMzIgYml0cyBvZiB0aGUgcG9pbnRlciEKLQotQ2hhbmdlIGBmZF9yZXFgIGZy b20gYHZvaWQgKmAgdG8gYHVpbnRwdHJfdGAgdGhyb3VnaG91dCB0aGUgY29kZWJhc2UuCi0KLWB1 aW50cHRyX3RgIGlzOgotCi0tICoqUG9ydGFibGUqKjogU2l6ZWQgY29ycmVjdGx5IGZvciBwb2lu dGVycyBvbiBhbnkgYXJjaGl0ZWN0dXJlICg0Ci0gIGJ5dGVzIG9uIDMyLWJpdCwgOCBieXRlcyBv biA2NC1iaXQpCi0tICoqU3RhbmRhcmQqKjogRGVmaW5lZCBpbiBDOTkgYDxzdGRpbnQuaD5gCi0t ICoqU2VtYW50aWMqKjogRXhwbGljaXRseSBkZXNpZ25lZCBmb3Igc3RvcmluZyBwb2ludGVyIHZh bHVlcyBhcwotICBpbnRlZ2VycwotLSAqKlNhZmUqKjogR3VhcmFudGVlZCBieSBDOTkgdG8gcHJl c2VydmUgcG9pbnRlciB2YWx1ZXMgZHVyaW5nCi0gIHJvdW5kLXRyaXAgY29udmVyc2lvbnMKLQot KioxLiBTdHJ1Y3QgZGVmaW5pdGlvbiAoYG1vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX2ltcGwuaGAg bGluZSA5Myk6KioKLQotYGBgYwotc3RydWN0IGRtX21lc3NhZ2UgewotICAgIC8vIENoYW5nZWQg ZnJvbTogdm9pZCAqZmRfcmVxOwotICAgIHVpbnRwdHJfdCBmZF9yZXE7Ci0gICAgLy8gLi4uCi19 OwotYGBgCi0KLSoqMi4gRnVuY3Rpb24gc2lnbmF0dXJlIChgbW9kdWxlcy9hYWFfZGlhbWV0ZXIv ZG1faW1wbC5oYCB+bGluZSAxNjUpOioqCi0KLWBgYGMKLWFhYV9tZXNzYWdlICpfZG1fY3JlYXRl X21lc3NhZ2UoYWFhX2Nvbm4gKl8sIGludCBtc2dfdHlwZSwKLSAgICB1bnNpZ25lZCBpbnQgYXBw X2lkLCB1bnNpZ25lZCBpbnQgY21kX2NvZGUsIHVpbnRwdHJfdCBmZF9yZXEpOwotICAgIC8vIENo YW5nZWQgZnJvbTogdm9pZCAqZmRfcmVxCi1gYGAKLQotKiozLiBGdW5jdGlvbiBkZWZpbml0aW9u IChgbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5jYCBsaW5lIDE2OTUpOioqCi0KLWBgYGMK LWFhYV9tZXNzYWdlICpfZG1fY3JlYXRlX21lc3NhZ2UoYWFhX2Nvbm4gKl8sIGludCBtc2dfdHlw ZSwKLSAgICB1bnNpZ25lZCBpbnQgYXBwX2lkLCB1bnNpZ25lZCBpbnQgY21kX2NvZGUsIHVpbnRw dHJfdCBmZF9tc2cpCi0gICAgLy8gQ2hhbmdlZCBmcm9tOiB2b2lkICpmZF9tc2cKLWBgYAotCi0q KjQuIENhbGwgc2l0ZXMgLSBwb2ludGVyIHRvIHVpbnRwdHJfdDoqKgotCi1gYGBjCi0vLyBhYWFf ZGlhbWV0ZXIuYyBsaW5lIDQyMyAtIHJlbW92ZSB2b2lkKiBjYXN0OgotZG1zZyA9IF9kbV9jcmVh dGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JQTCwgYXBwaWQsIGNtZGNvZGUsIGZkX3JlcSk7 Ci0KLS8vIGRtX2ltcGwuYyAtIGFkZCBleHBsaWNpdCBjYXN0cyB3aGVuIHN0b3JpbmcgcG9pbnRl cnM6Ci1kbS5mZF9yZXEgPSAodWludHB0cl90KXJlcTsKLWRtLT5mZF9yZXEgPSAodWludHB0cl90 KWZkX21zZzsKLWBgYAotCi0qKjUuIENhbGwgc2l0ZXMgd2l0aCBOVUxMIC0gdXNlIDAgaW5zdGVh ZDoqKgotCi1TaW5jZSBgdWludHB0cl90YCBpcyBhbiBpbnRlZ2VyIHR5cGUgKG5vdCBhIHBvaW50 ZXIgdHlwZSksIHdlIHVzZSBgMGAKLWluc3RlYWQgb2YgYE5VTExgIHRvIHJlcHJlc2VudCAibm8g cG9pbnRlciI6Ci0KLWBgYGMKLS8vIE11bHRpcGxlIGxvY2F0aW9ucyBpbiBhYWFfZGlhbWV0ZXIu YywgZG1faW1wbC5jOgotZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9N X1JFUSwgKmFwcF9pZCwgKmNtZF9jb2RlLCAwKTsKLS8vIENoYW5nZWQgZnJvbTogLi4uLCBOVUxM KTsKLWBgYAotCi0qKk5vdGU6KiogSW4gQywgYE5VTExgIGlzIHR5cGljYWxseSBgKCh2b2lkICop MClgIC0gYSBwb2ludGVyIHR5cGUuIFdoZW4KLXBhc3NpbmcgdG8gYW4gaW50ZWdlciBwYXJhbWV0 ZXIgbGlrZSBgdWludHB0cl90YCwgd2UgdXNlIHRoZSBpbnRlZ2VyIGAwYAotZGlyZWN0bHkgdG8g YXZvaWQgaW1wbGljaXQgcG9pbnRlci10by1pbnRlZ2VyIGNvbnZlcnNpb24gd2FybmluZ3MuCi0K LSoqNi4gVXNhZ2Ugc2l0ZSAtIHVpbnRwdHJfdCB0byBwb2ludGVyIChgZG1fcGVlci5jYCk6KioK LQotYGBgYwotLy8gQ2hhbmdlZCBmcm9tOiBzdHJ1Y3QgbXNnICphbnMgPSAoc3RydWN0IG1zZyAq KWRtLT5mZF9yZXE7Ci1zdHJ1Y3QgbXNnICphbnMgPSAoc3RydWN0IG1zZyAqKSh1aW50cHRyX3Qp ZG0tPmZkX3JlcTsKLWBgYAotCi1UaGUgZG91YmxlIGNhc3QgYChzdHJ1Y3QgbXNnICopKHVpbnRw dHJfdCl2YWx1ZWAgaXMgcmVxdWlyZWQgYnkgQzk5IGZvcgotZ3VhcmFudGVlZCBjb3JyZWN0bmVz czoKLQotMS4gKipDOTkgZ3VhcmFudGVlcyoqIHRoYXQgYW55IHBvaW50ZXIgY2FuIGJlIGNvbnZl cnRlZCB0byBgdWludHB0cl90YCBhbmQgYmFjawotMi4gRGlyZWN0IGBpbnRlZ2VyIOKGkiBwb2lu dGVyYCBjb252ZXJzaW9uIGlzICoqaW1wbGVtZW50YXRpb24tZGVmaW5lZCoqIGJlaGF2aW9yCi0z LiBUaGUgcHJvcGVyIGNvbnZlcnNpb24gcGF0aCBpczogYHBvaW50ZXIg4oaSIHVpbnRwdHJfdCDi hpIgcG9pbnRlcmAKLQotV2hpbGUgYSBzaW5nbGUgY2FzdCBmcm9tIGB1aW50cHRyX3RgIHRvIHBv aW50ZXIgb2Z0ZW4gd29ya3MgaW4gcHJhY3RpY2UsCi10aGUgZG91YmxlIGNhc3QgZXhwbGljaXRs eSBmb2xsb3dzIHRoZSBDOTkgc3RhbmRhcmQncyBndWFyYW50ZWVkCi1jb252ZXJzaW9uIHBhdGgs IGVuc3VyaW5nIHRoZSBjb2RlIGlzIHN0cmljdGx5IGNvbmZvcm1hbnQgYW5kIHdvbid0Ci1jYXVz ZSBpc3N1ZXMgd2l0aCBzdHJpY3QgYWxpYXNpbmcgcnVsZXMgb3IgZnV0dXJlIGNvbXBpbGVyCi1v cHRpbWl6YXRpb25zLgotCi1UaGUgcGF0dGVybiBpczoKLS0gKipQb2ludGVyIOKGkiB1aW50cHRy X3QqKjogYCh1aW50cHRyX3QpcG9pbnRlcmAKLS0gKip1aW50cHRyX3Qg4oaSIFBvaW50ZXIqKjog YChzdHJ1Y3QgbXNnICopKHVpbnRwdHJfdCl2YWx1ZWAKLS0gKipOdWxsIHZhbHVlKio6IGAwYCAo bm90IGBOVUxMYCwgc2luY2UgYHVpbnRwdHJfdGAgaXMgYW4gaW50ZWdlciB0eXBlKQotCi1UaGlz IGZpeCBlbnN1cmVzIHBvaW50ZXJzIGFyZSBjb3JyZWN0bHkgcHJlc2VydmVkIG9uIGFsbCBhcmNo aXRlY3R1cmVzCi13aXRob3V0IHRydW5jYXRpb24uCi0KLVNpZ25lZC1vZmYtYnk6IFBldGVyIExl bWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+Ci1Bc3Npc3RlZC1ieTogQ2xhdWRlIChBbnRocm9w aWMpIDxodHRwczovL2NsYXVkZS5haT4KLQotZGlmZiAtLWdpdCBhL21vZHVsZXMvYWFhX2RpYW1l dGVyL2FhYV9kaWFtZXRlci5jIGIvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvYWFhX2RpYW1ldGVyLmMK LWluZGV4IDNhNDI2YmQ5MjkuLmQxYTljOGNiZDIgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2FhYV9k aWFtZXRlci9hYWFfZGlhbWV0ZXIuYwotKysrIGIvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvYWFhX2Rp YW1ldGVyLmMKLUBAIC0xOSw2ICsxOSw3IEBACi0gICovCi0gCi0gI2luY2x1ZGUgPGZyZWVEaWFt ZXRlci9leHRlbnNpb24uaD4KLSsjaW5jbHVkZSA8c3RkaW50Lmg+Ci0gCi0gI2luY2x1ZGUgIi4u Ly4uL3NyX21vZHVsZS5oIgotICNpbmNsdWRlICIuLi8uLi9saWIvbGlzdC5oIgotQEAgLTMxNSw3 ICszMTYsNyBAQCBzdGF0aWMgaW50IGRtX3NlbmRfcmVxdWVzdChzdHJ1Y3Qgc2lwX21zZyAqbXNn LCBpbnQgKmFwcF9pZCwgaW50ICpjbWRfY29kZSwKLSAJCWdvdG8gZXJyb3I7Ci0gCX0KLSAKLS0J ZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JFUSwgKmFwcF9pZCwg KmNtZF9jb2RlLCBOVUxMKTsKLSsJZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFf Q1VTVE9NX1JFUSwgKmFwcF9pZCwgKmNtZF9jb2RlLCAwKTsKLSAJaWYgKCFkbXNnKSB7Ci0gCQlM TV9FUlIoIm9vbVxuIik7Ci0gCQlnb3RvIGVycm9yOwotQEAgLTQyNSw3ICs0MjYsNyBAQCBzdGF0 aWMgaW50IGRtX3NlbmRfYW5zd2VyKHN0cnVjdCBzaXBfbXNnICptc2csIHN0ciAqYXZwX2pzb24s IGludCAqaXNfZXJyb3IpCi0gCQlyZXZlcnNlX2hleDJpbnQ2NChyZXMucnMucywgcmVzLnJzLmxl biwgMSwgJmZkX3JlcSk7Ci0gCX0KLSAKLS0JZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxM LCBBQUFfQ1VTVE9NX1JQTCwgYXBwaWQsIGNtZGNvZGUsICh2b2lkICopZmRfcmVxKTsKLSsJZG1z ZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JQTCwgYXBwaWQsIGNtZGNv ZGUsIGZkX3JlcSk7Ci0gCWlmICghZG1zZykgewotIAkJTE1fRVJSKCJvb21cbiIpOwotIAkJZ290 byBlcnJvcjsKLUBAIC01ODEsNyArNTgyLDcgQEAgc3RhdGljIGludCBkbV9zZW5kX3JlcXVlc3Rf YXN5bmMoc3RydWN0IHNpcF9tc2cgKm1zZywgYXN5bmNfY3R4ICpjdHgsCi0gCQlnb3RvIGVycm9y OwotIAl9Ci0gCi0tCWRtc2cgPSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9S RVEsICphcHBfaWQsICpjbWRfY29kZSwgTlVMTCk7Ci0rCWRtc2cgPSBfZG1fY3JlYXRlX21lc3Nh Z2UoTlVMTCwgQUFBX0NVU1RPTV9SRVEsICphcHBfaWQsICpjbWRfY29kZSwgMCk7Ci0gCWlmICgh ZG1zZykgewotIAkJTE1fRVJSKCJvb21cbiIpOwotIAkJZ290byBlcnJvcjsKLWRpZmYgLS1naXQg YS9tb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmMgYi9tb2R1bGVzL2FhYV9kaWFtZXRlci9k bV9pbXBsLmMKLWluZGV4IDQzM2UwNzgzNTguLjdkZmY5ZmJiZjcgMTAwNjQ0Ci0tLS0gYS9tb2R1 bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmMKLSsrKyBiL21vZHVsZXMvYWFhX2RpYW1ldGVyL2Rt X2ltcGwuYwotQEAgLTIxLDYgKzIxLDcgQEAKLSAjaW5jbHVkZSA8ZnJlZURpYW1ldGVyL2V4dGVu c2lvbi5oPgotICNpbmNsdWRlIDxzeXMvZXZlbnRmZC5oPgotICNpbmNsdWRlIDxpbnR0eXBlcy5o PgotKyNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSAjaW5jbHVkZSAiLi4vLi4vdXQuaCIKLSAjaW5j bHVkZSAiLi4vLi4vbGliL2xpc3QuaCIKLUBAIC02MDIsNyArNjAzLDcgQEAgc3RhdGljIGludCBk bV9yZWNlaXZlX3JlcShzdHJ1Y3QgbXNnICoqX3JlcSwgc3RydWN0IGF2cCAqIGF2cCwgc3RydWN0 IHNlc3Npb24gKgotIAotIAkJbWVtc2V0KCZkbSwgMCwgc2l6ZW9mIGRtKTsKLSAKLS0JCWRtLmZk X3JlcSA9IHJlcTsKLSsJCWRtLmZkX3JlcSA9ICh1aW50cHRyX3QpcmVxOwotIAkJZG0uYXBwX2lk ID0gaGRyLT5tc2dfYXBwbDsKLSAJCWRtLmNtZF9jb2RlID0gaGRyLT5tc2dfY29kZTsKLSAJCWRt LmVycm9yX2JpdCA9IDE7Ci1AQCAtMTc1NSw3ICsxNzU2LDcgQEAgaW50IGRtX2FwaV9maW5kX2Nt ZChkaWFtZXRlcl9jb25uICpjb25uLCBpbnQgY21kX2NvZGUpCi0gfQotIAotIGFhYV9tZXNzYWdl ICpfZG1fY3JlYXRlX21lc3NhZ2UoYWFhX2Nvbm4gKl8sIGludCBtc2dfdHlwZSwKLS0gICAgICAg IHVuc2lnbmVkIGludCBhcHBfaWQsIHVuc2lnbmVkIGludCBjbWRfY29kZSwgdm9pZCAqZmRfbXNn KQotKyAgICAgICAgdW5zaWduZWQgaW50IGFwcF9pZCwgdW5zaWduZWQgaW50IGNtZF9jb2RlLCB1 aW50cHRyX3QgZmRfbXNnKQotIHsKLSAJYWFhX21lc3NhZ2UgKm07Ci0gCXN0cnVjdCBkbV9tZXNz YWdlICpkbTsKLUBAIC0xNzgyLDcgKzE3ODMsNyBAQCBhYWFfbWVzc2FnZSAqX2RtX2NyZWF0ZV9t ZXNzYWdlKGFhYV9jb25uICpfLCBpbnQgbXNnX3R5cGUsCi0gCWRtLT5hbSA9IG07Ci0gCWRtLT5h cHBfaWQgPSBhcHBfaWQ7Ci0gCWRtLT5jbWRfY29kZSA9IGNtZF9jb2RlOwotLQlkbS0+ZmRfcmVx ID0gZmRfbXNnOwotKwlkbS0+ZmRfcmVxID0gKHVpbnRwdHJfdClmZF9tc2c7Ci0gCi0gCXJldHVy biBtOwotIH0KLUBAIC0xNzkwLDcgKzE3OTEsNyBAQCBhYWFfbWVzc2FnZSAqX2RtX2NyZWF0ZV9t ZXNzYWdlKGFhYV9jb25uICpfLCBpbnQgbXNnX3R5cGUsCi0gCi0gYWFhX21lc3NhZ2UgKmRtX2Ny ZWF0ZV9tZXNzYWdlKGFhYV9jb25uICpfLCBpbnQgbXNnX3R5cGUpCi0gewotLQlyZXR1cm4gX2Rt X2NyZWF0ZV9tZXNzYWdlKF8sIG1zZ190eXBlLCAwLCAwLCBOVUxMKTsKLSsJcmV0dXJuIF9kbV9j cmVhdGVfbWVzc2FnZShfLCBtc2dfdHlwZSwgMCwgMCwgMCk7Ci0gfQotIAotIAotQEAgLTIxNDUs NyArMjE0Niw3IEBAIGludCBkbV9hcGlfc2VuZF9yZXEoZGlhbWV0ZXJfY29ubiAqY29ubiwgaW50 IGFwcF9pZCwgaW50IGNtZF9jb2RlLCBjSlNPTiAqcmVxLCBkCi0gCQlyZXR1cm4gLTI7Ci0gCX0K LSAKLS0JZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JFUSwgYXBw X2lkLCBjbWRfY29kZSwgTlVMTCk7Ci0rCWRtc2cgPSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwg QUFBX0NVU1RPTV9SRVEsIGFwcF9pZCwgY21kX2NvZGUsIDApOwotIAlpZiAoIWRtc2cpIHsKLSAJ CUxNX0VSUigib29tXG4iKTsKLSAJCXJldHVybiAtMTsKLUBAIC0yMTgyLDcgKzIxODMsNyBAQCBp bnQgZG1fYXBpX3NlbmRfcmVxX2FzeW5jKGRpYW1ldGVyX2Nvbm4gKmNvbm4sIGludCBhcHBfaWQs IGludCBjbWRfY29kZSwgY0pTT04gKgotIAkJcmV0dXJuIC0yOwotIAl9Ci0gCi0tCWRtc2cgPSBf ZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9SRVEsIGFwcF9pZCwgY21kX2NvZGUs IE5VTEwpOwotKwlkbXNnID0gX2RtX2NyZWF0ZV9tZXNzYWdlKE5VTEwsIEFBQV9DVVNUT01fUkVR LCBhcHBfaWQsIGNtZF9jb2RlLCAwKTsKLSAJaWYgKCFkbXNnKSB7Ci0gCQlMTV9FUlIoIm9vbVxu Iik7Ci0gCQlyZXR1cm4gLTE7Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1f aW1wbC5oIGIvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5oCi1pbmRleCBiMjVjZDc3ZjE5 Li41MmUzZjIzZGE1IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5o Ci0rKysgYi9tb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmgKLUBAIC0yNCw2ICsyNCw3IEBA Ci0gI2luY2x1ZGUgIi4uLy4uL2FhYS9hYWEuaCIKLSAjaW5jbHVkZSAiLi4vLi4vbWVtL3NobV9t ZW0uaCIKLSAjaW5jbHVkZSAiZGlhbWV0ZXJfYXBpLmgiCi0rI2luY2x1ZGUgPHN0ZGludC5oPgot IAotICNkZWZpbmUgX19GRF9DSEVDSyhfX2NhbGxfXywgX19yZXRva19fLCBfX3JldHZhbF9fKSBc Ci0gCWRvIHsgXAotQEAgLTkxLDcgKzkyLDcgQEAgc3RydWN0IF9kbV9kaWN0IHsKLSBzdHJ1Y3Qg ZG1fbWVzc2FnZSB7Ci0gCWFhYV9tZXNzYWdlICphbTsgLyogYmFjay1yZWZlcmVuY2UsIHVzZWZ1 bCBkdXJpbmcgY2xlYW51cCAqLwotIAotLQl2b2lkICpmZF9yZXE7Ci0rCXVpbnRwdHJfdCBmZF9y ZXE7Ci0gCXVuc2lnbmVkIGludCBhcHBfaWQ7ICAgLyogdGhlc2UgdHdvIGFyZSB1c2VkIHdoZW4g c2VuZGluZyAqLwotIAl1bnNpZ25lZCBpbnQgY21kX2NvZGU7IC8qIGN1c3RvbSBEaWFtZXRlciBy ZXF1ZXN0cyAqLwotIAlpbnQgZXJyb3JfYml0OwotQEAgLTE4Miw3ICsxODMsNyBAQCBpbnQgZG1f cmVnaXN0ZXJfY2FsbGJhY2tzKHZvaWQpOwotIGludCBkbV9maW5kKGFhYV9jb25uICpfLCBhYWFf bWFwICptYXAsIGludCBvcCk7Ci0gYWFhX21lc3NhZ2UgKmRtX2NyZWF0ZV9tZXNzYWdlKGFhYV9j b25uICpfLCBpbnQgbXNnX3R5cGUpOwotIGFhYV9tZXNzYWdlICpfZG1fY3JlYXRlX21lc3NhZ2Uo YWFhX2Nvbm4gKl8sIGludCBtc2dfdHlwZSwKLS0gICAgICAgIHVuc2lnbmVkIGludCBhcHBfaWQs IHVuc2lnbmVkIGludCBjbWRfY29kZSwgdm9pZCAqZmRfcmVxKTsKLSsgICAgICAgIHVuc2lnbmVk IGludCBhcHBfaWQsIHVuc2lnbmVkIGludCBjbWRfY29kZSwgdWludHB0cl90IGZkX3JlcSk7Ci0g aW50IGRtX2F2cF9hZGQoYWFhX2Nvbm4gKl8sIGFhYV9tZXNzYWdlICptc2csIGFhYV9tYXAgKmF2 cCwgdm9pZCAqdmFsLAotICAgICAgICAgICAgICAgIGludCB2YWxfbGVuZ3RoLCBpbnQgdmVuZG9y KTsKLSBpbnQgZG1fYnVpbGRfYXZwcyhzdHJ1Y3QgbGlzdF9oZWFkICpzdWJhdnBzLCBjSlNPTiAq YXJyYXkpOwotZGlmZiAtLWdpdCBhL21vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX3BlZXIuYyBiL21v ZHVsZXMvYWFhX2RpYW1ldGVyL2RtX3BlZXIuYwotaW5kZXggOWRiZmQxZDZjOS4uMDZiMTdhODg0 NSAxMDA2NDQKLS0tLSBhL21vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX3BlZXIuYwotKysrIGIvbW9k dWxlcy9hYWFfZGlhbWV0ZXIvZG1fcGVlci5jCi1AQCAtMjQsNiArMjQsNyBAQAotICNpbmNsdWRl ICIuLi8uLi9zcl9tb2R1bGUuaCIKLSAjaW5jbHVkZSAiLi4vLi4vbG9ja2luZy5oIgotICNpbmNs dWRlICIuLi8uLi9saWIvbGlzdC5oIgotKyNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSAjaW5jbHVk ZSAiZG1faW1wbC5oIgotICNpbmNsdWRlICJkbV9wZWVyLmgiCi1AQCAtNTExLDcgKzUxMiw3IEBA IHN0YXRpYyBpbnQgZG1fc2VuZF9jdXN0b21fcmVxKHN0cnVjdCBkbV9tZXNzYWdlICptc2cpCi0g Ci0gaW50IGRtX3NlbmRfY3VzdG9tX3JwbChzdHJ1Y3QgZG1fbWVzc2FnZSAqZG0pCi0gewotLQlz dHJ1Y3QgbXNnICphbnMgPSAoc3RydWN0IG1zZyAqKWRtLT5mZF9yZXE7Ci0rCXN0cnVjdCBtc2cg KmFucyA9IChzdHJ1Y3QgbXNnICopKHVpbnRwdHJfdClkbS0+ZmRfcmVxOwotIAlpbnQgcmMsIGZs YWdzID0gMDsKLSAKLSAJaWYgKCFkbV9zZXJ2ZXJfYXV0b3JlcGx5X2Vycm9yICYmIGRtX3JlbW92 ZV91bnJlcGxpZWRfcmVxKGFucykgIT0gMCkgewoKZGlmZiAtLWdpdCBhL29wZW5zaXBzLTAwMTAt Rml4LUM5MC1zdHlsZS1kZWNsYXJhdGlvbi13YXJuaW5ncy1pbi1zbm1wc3RhdHMtbW9kdS5wYXRj aCBiL29wZW5zaXBzLTAwMTAtRml4LUM5MC1zdHlsZS1kZWNsYXJhdGlvbi13YXJuaW5ncy1pbi1z bm1wc3RhdHMtbW9kdS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjY4OWU0 ZS4uMDAwMDAwMAotLS0gYS9vcGVuc2lwcy0wMDEwLUZpeC1DOTAtc3R5bGUtZGVjbGFyYXRpb24t d2FybmluZ3MtaW4tc25tcHN0YXRzLW1vZHUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzODEg KzAsMCBAQAotRnJvbSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdt YWlsLmNvbT4KLURhdGU6IFNhdCwgMzEgSmFuIDIwMjYgMTU6MTE6MjAgKzAxMDAKLVN1YmplY3Q6 IFtQQVRDSF0gRml4IEM5MC1zdHlsZSBkZWNsYXJhdGlvbiB3YXJuaW5ncyBpbiBzbm1wc3RhdHMg bW9kdWxlCi0KLUJ1aWxkIGZhaWxzIHdpdGggYC1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3Rh dGVtZW50YCAoZW5mb3JjZWQgYnkKLW5ldC1zbm1wIHBrZy1jb25maWcpIGR1ZSB0byB2YXJpYWJs ZXMgZGVjbGFyZWQgYWZ0ZXIgZXhlY3V0YWJsZQotc3RhdGVtZW50czoKLQotYGBgCi1vcGVuc2Vy T2JqZWN0cy5jOjYxOTo5OiBlcnJvcjogSVNPIEM5MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9u cyBhbmQgY29kZSBbLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnRdCi0gIDYxOSB8 ICAgICAgICAgaW50IG5ld190aHJlc2hvbGQgPSAoaW50KShsb25nKShpbnQgKil2YWw7Ci0KLW9w ZW5zZXJTSVBDb21tb25PYmplY3RzLmM6MjQ0OjE3OiBlcnJvcjogSVNPIEM5MCBmb3JiaWRzIG1p eGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZSBbLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0 ZW1lbnRdCi0gIDI0NCB8ICAgICAgICAgICAgICAgICBjaGFyICpvcGVuQnJhY2VQb3NpdGlvbiAg ID0gc3RyY2hyKGJ1ZmZlciwgJygnKTsKLQotb3BlbnNlclNJUENvbW1vbk9iamVjdHMuYzo0NzU6 OTogZXJyb3I6IElTTyBDOTAgZm9yYmlkcyBtaXhlZCBkZWNsYXJhdGlvbnMgYW5kIGNvZGUgWy1X ZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50XQotICA0NzUgfCAgICAgICAgIGNoYXIg KnN0ckVudGl0eVR5cGUgPSAoY2hhciAqKXZhbDsKLQotb3BlbnNlclNJUENvbnRhY3RUYWJsZS5j OjI2Njo5OiBlcnJvcjogSVNPIEM5MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29k ZSBbLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnRdCi0gIDI2NiB8ICAgICAgICAg c3RhdGljIGNoYXIgKmRlZmF1bHRVc2VyID0gIkRlZmF1bHRVc2VyIjsKLQotb3BlbnNlclNJUENv bnRhY3RUYWJsZS5jOjM2MTo5OiBlcnJvcjogSVNPIEM5MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0 aW9ucyBhbmQgY29kZSBbLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnRdCi0gIDM2 MSB8ICAgICAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXIgPSByZXF1ZXN0LT5yZXF1ZXN0 dmI7Ci1gYGAKLQotVGhlIG5ldC1zbm1wIGxpYnJhcnkncyBwa2ctY29uZmlnIGFkZHMKLWAtV2Vy cm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudGAgdG8gQ0ZMQUdTLCBlbmZvcmNpbmcgQzkw LXN0eWxlCi1kZWNsYXJhdGlvbiBvcmRlcmluZyAoYWxsIGRlY2xhcmF0aW9ucyBiZWZvcmUgc3Rh dGVtZW50cykuCi0KLVdoaWxlIE9wZW5TSVBTIGFkaGVyZXMgdG8gdGhlIEM5OSBzdGFuZGFyZCAo d2hpY2ggYWxsb3dzIG1peGVkCi1kZWNsYXJhdGlvbnMgYW5kIGNvZGUpLCB0aGUgbmV0LXNubXAg bGlicmFyeSBjb3VsZCByZXF1aXJlIEM5MC1zdHlsZQotZGVjbGFyYXRpb25zIGZvciBtb2R1bGVz IHRoYXQgbGluayBhZ2FpbnN0IGl0LiBGb2xsb3dpbmcgdGhpcyBzdHlsZQotZG9lc24ndCBodXJ0 IEM5OSBjb21wYXRpYmlsaXR5IGFuZCBpbXByb3ZlcyBjb2RlIHBvcnRhYmlsaXR5LmAKLQotU2ln bmVkLW9mZi1ieTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KLUFzc2lzdGVk LWJ5OiBDbGF1ZGUgKEFudGhyb3BpYykgPGh0dHBzOi8vY2xhdWRlLmFpPgotCi1kaWZmIC0tZ2l0 IGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlck9iamVjdHMuYyBiL21vZHVsZXMvc25tcHN0YXRz L29wZW5zZXJPYmplY3RzLmMKLWluZGV4IDE4MGI2MmRkYTcuLjkwOWRiNGM4MGIgMTAwNjQ0Ci0t LS0gYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyT2JqZWN0cy5jCi0rKysgYi9tb2R1bGVzL3Nu bXBzdGF0cy9vcGVuc2VyT2JqZWN0cy5jCi1AQCAtNjA1LDYgKzYwNSw4IEBAIGludCBoYW5kbGVf b3BlbnNlckRpYWxvZ0xpbWl0TWFqb3JBbGFybShuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVy LAotIHN0YXRpYyBpbnQgc2V0X2lmX3ZhbGlkX3RocmVzaG9sZChtb2RwYXJhbV90IHR5cGUsIHZv aWQgKnZhbCwgY2hhciAqdmFyU3RyLAotIAlpbnQgKm5ld1ZhbCkKLSB7Ci0rCWludCBuZXdfdGhy ZXNob2xkOwotKwotIAlpZiAodmFsPT0wKSB7Ci0gCQlMTV9FUlIoIiVzIGNhbGxlZCB3aXRoIGEg bnVsbCB2YWx1ZSFcbiIsIHZhclN0cik7Ci0gCQlyZXR1cm4gLTE7Ci1AQCAtNjE2LDcgKzYxOCw3 IEBAIHN0YXRpYyBpbnQgc2V0X2lmX3ZhbGlkX3RocmVzaG9sZChtb2RwYXJhbV90IHR5cGUsIHZv aWQgKnZhbCwgY2hhciAqdmFyU3RyLAotIAkJcmV0dXJuIC0xOwotIAl9Ci0gCi0tCWludCBuZXdf dGhyZXNob2xkID0gKGludCkobG9uZykoaW50ICopdmFsOwotKwluZXdfdGhyZXNob2xkID0gKGlu dCkobG9uZykoaW50ICopdmFsOwotIAotIAlpZiAobmV3X3RocmVzaG9sZCA8IC0xKSB7Ci0gCQlM TV9FUlIoIiVzIGNhbGxlZCB3aXRoIGFuIGludmFsaWQgdGhyZXNob2xkPSVkIVxuIiwKLWRpZmYg LS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQQ29tbW9uT2JqZWN0cy5jIGIvbW9k dWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUENvbW1vbk9iamVjdHMuYwotaW5kZXggZTM3YWI2ZWYy YS4uZjJkZGJhNWE3YSAxMDA2NDQKLS0tLSBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBD b21tb25PYmplY3RzLmMKLSsrKyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBDb21tb25P YmplY3RzLmMKLUBAIC0yMjUsNiArMjI1LDggQEAgaW50IGhhbmRsZV9vcGVuc2VyU0lQU2Vydmlj ZVN0YXJ0VGltZShuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyLAotIAotIAlpbnQgZWxhcHNl ZFRpbWUgPSAwOwotIAljaGFyIGJ1ZmZlcltTTk1QR0VUX01BWF9CVUZGRVJdOwotKwljaGFyICpv cGVuQnJhY2VQb3NpdGlvbiA9IE5VTEw7Ci0rCWNoYXIgKmNsb3NlZEJyYWNlUG9zaXRpb24gPSBO VUxMOwotIAotIAlGSUxFICp0aGVGaWxlID0gZm9wZW4oU05NUEdFVF9URU1QX0ZJTEUsICJyIik7 Ci0gCi1AQCAtMjQxLDggKzI0Myw4IEBAIGludCBoYW5kbGVfb3BlbnNlclNJUFNlcnZpY2VTdGFy dFRpbWUobmV0c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciwKLSAKLSAJCS8qIEZpbmQgdGhlIHBv c2l0aW9ucyBvZiAnKCcgYW5kICcpJyBzbyB3ZSBjYW4gZXh0cmFjdCBvdXQgdGhlCi0gCQkgKiB0 aW1ldGlja3MgdmFsdWUuICovCi0tCQljaGFyICpvcGVuQnJhY2VQb3NpdGlvbiAgID0gc3RyY2hy KGJ1ZmZlciwgJygnKTsKLS0JCWNoYXIgKmNsb3NlZEJyYWNlUG9zaXRpb24gPSBzdHJjaHIoYnVm ZmVyLCAnKScpOwotKwkJb3BlbkJyYWNlUG9zaXRpb24gICA9IHN0cmNocihidWZmZXIsICcoJyk7 Ci0rCQljbG9zZWRCcmFjZVBvc2l0aW9uID0gc3RyY2hyKGJ1ZmZlciwgJyknKTsKLSAKLSAJCS8q IE1ha2Ugc3VyZSB0aGF0IGJvdGggdGhlICcoJyBhbmQgJyknIGV4aXN0IGluIHRoZSBmaWxlLCBh bmQKLSAJCSAqIHRoYXQgJygnIG9jY3VycyBlYXJsaWVyIHRoYW4gdGhlICcpJy4gIElmIGFsbCB0 aGVzZQotQEAgLTQ2NCw2ICs0NjYsNyBAQCBpbnQgaGFuZGxlX29wZW5zZXJTSVBPdGhlcndpc2VE aXNjYXJkZWRNc2dzKG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIsCi0gICovCi0gaW50IGhh bmRsZVNpcEVudGl0eVR5cGUoIG1vZHBhcmFtX3QgdHlwZSwgdm9pZCogdmFsKQotIHsKLSsJY2hh ciAqc3RyRW50aXR5VHlwZSA9IE5VTEw7Ci0gCi0gCS8qIEJ5IGRlZmF1bHQgd2Ugc3RhcnQgb2Zm IGFzICJvdGhlciIuICovCi0gCXN0YXRpYyBjaGFyIGZpcnN0VGltZSA9IDE7Ci1AQCAtNDcyLDcg KzQ3NSw3IEBAIGludCBoYW5kbGVTaXBFbnRpdHlUeXBlKCBtb2RwYXJhbV90IHR5cGUsIHZvaWQq IHZhbCkKLSAJCXJldHVybiAtMTsKLSAJfQotIAotLQljaGFyICpzdHJFbnRpdHlUeXBlID0gKGNo YXIgKil2YWw7Ci0rCXN0ckVudGl0eVR5cGUgPSAoY2hhciAqKXZhbDsKLSAKLSAJLyogVGhpcyBp cyBvdXIgZmlyc3QgdGltZSB0aHJvdWdoIHRoaXMgZnVuY3Rpb24sIHNvIHdlIG5lZWQgdG8gY2hh bmdlCi0gCSAqIG9wZW5zZXJFbnRpdHlUeXBlIGZyb20gaXRzIGRlZmF1bHQgdG8gMCwgYWxsb3dp bmcgb3VyIGJpdG1hc2tzIGJlbG93Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9zbm1wc3RhdHMvb3Bl bnNlclNJUENvbnRhY3RUYWJsZS5jIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUENvbnRh Y3RUYWJsZS5jCi1pbmRleCA3ZWRjMTIxMGNlLi4wMzU4ODAyOWM4IDEwMDY0NAotLS0tIGEvbW9k dWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUENvbnRhY3RUYWJsZS5jCi0rKysgYi9tb2R1bGVzL3Nu bXBzdGF0cy9vcGVuc2VyU0lQQ29udGFjdFRhYmxlLmMKLUBAIC0yNjEsMTAgKzI2MSwxMCBAQCB2 b2lkIGRlbGV0ZUNvbnRhY3RSb3coaW50IHVzZXJJbmRleCwgaW50IGNvbnRhY3RJbmRleCkKLSAg Ki8KLSB2b2lkIGluaXRfb3BlbnNlclNJUENvbnRhY3RUYWJsZSh2b2lkKQotIHsKLS0JaW5pdGlh bGl6ZV90YWJsZV9vcGVuc2VyU0lQQ29udGFjdFRhYmxlKCk7Ci0tCi0gCXN0YXRpYyBjaGFyICpk ZWZhdWx0VXNlciA9ICJEZWZhdWx0VXNlciI7Ci0gCi0rCWluaXRpYWxpemVfdGFibGVfb3BlbnNl clNJUENvbnRhY3RUYWJsZSgpOwotKwotIAljcmVhdGVDb250YWN0Um93KDEsIDEsIGRlZmF1bHRV c2VyLCBOVUxMKTsKLSB9Ci0gCi1AQCAtMzU0LDE0ICszNTQsMTYgQEAgaW50IG9wZW5zZXJTSVBD b250YWN0VGFibGVfZ2V0X3ZhbHVlKAotIAljaGFyICAgICAgICpyZXRyaWV2ZWRFeHBpcnk7Ci0g CXN0cnVjdCB0bSAgdGltZVZhbHVlOwotIAotKwluZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhciA9 IE5VTEw7Ci0rCW9wZW5zZXJTSVBDb250YWN0VGFibGVfY29udGV4dCAqY29udGV4dCA9IE5VTEw7 Ci0rCi0gCS8qIEZpcnN0IHRoaW5ncyBmaXJzdCwgd2UgbmVlZCB0byBjb25zdW1lIHRoZSBpbnRl cnByb2Nlc3MgYnVmZmVyLCBpbgotIAkgKiBjYXNlIHNvbWV0aGluZyBoYXMgY2hhbmdlZC4gV2Ug d2FudCB0byByZXR1cm4gdGhlIGZyZXNoZXN0IGRhdGEuICovCi0gCWNvbnN1bWVJbnRlcnByb2Nl c3NCdWZmZXIoKTsKLSAKLS0JbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXIgPSByZXF1ZXN0LT5y ZXF1ZXN0dmI7Ci0rCXZhciA9IHJlcXVlc3QtPnJlcXVlc3R2YjsKLSAKLS0Jb3BlbnNlclNJUENv bnRhY3RUYWJsZV9jb250ZXh0ICpjb250ZXh0ID0KLS0JCShvcGVuc2VyU0lQQ29udGFjdFRhYmxl X2NvbnRleHQgKilpdGVtOwotKwljb250ZXh0ID0gKG9wZW5zZXJTSVBDb250YWN0VGFibGVfY29u dGV4dCAqKWl0ZW07Ci0gCi0gCXN3aXRjaCh0YWJsZV9pbmZvLT5jb2xudW0pCi0gCXsKLWRpZmYg LS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUG9ydFRhYmxlLmMgYi9tb2R1bGVz L3NubXBzdGF0cy9vcGVuc2VyU0lQUG9ydFRhYmxlLmMKLWluZGV4IGExMDc1ODI3M2EuLjNhMDNi NzJiMjEgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUG9ydFRhYmxl LmMKLSsrKyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBQb3J0VGFibGUuYwotQEAgLTEw NCwxOSArMTA0LDE3IEBAIG9wZW5zZXJTSVBQb3J0VGFibGVfY29udGV4dCAqZ2V0Um93KGludCBp cFR5cGUsIHVuc2lnbmVkIGludCAqaXBBZGRyZXNzKQotIHsKLSAJaW50IGxlbmd0aE9mT0lEOwot IAlvaWQgKmN1cnJlbnRPSURJbmRleCA9IGNyZWF0ZUluZGV4KGlwVHlwZSwgaXBBZGRyZXNzLCAm bGVuZ3RoT2ZPSUQpOwotKwluZXRzbm1wX2luZGV4IHRoZUluZGV4OwotKwlvcGVuc2VyU0lQUG9y dFRhYmxlX2NvbnRleHQgKnJvd1RvUmV0dXJuID0gTlVMTDsKLSAKLSAJaWYgKGN1cnJlbnRPSURJ bmRleCA9PSBOVUxMKQotIAl7Ci0gCQlyZXR1cm4gTlVMTDsKLSAJfQotIAotLQluZXRzbm1wX2lu ZGV4IHRoZUluZGV4OwotLQotIAl0aGVJbmRleC5vaWRzID0gY3VycmVudE9JREluZGV4OwotIAl0 aGVJbmRleC5sZW4gID0gbGVuZ3RoT2ZPSUQ7Ci0gCi0tCW9wZW5zZXJTSVBQb3J0VGFibGVfY29u dGV4dCAqcm93VG9SZXR1cm47Ci0tCi0gCS8qIExldHMgY2hlY2sgdG8gc2VlIGlmIHRoZXJlIGlz IGFuIGV4aXN0aW5nIHJvdy4gKi8KLSAJcm93VG9SZXR1cm4gPSBDT05UQUlORVJfRklORChjYi5j b250YWluZXIsICZ0aGVJbmRleCk7Ci0gCi1AQCAtMjE4LDggKzIxNiw2IEBAIHZvaWQgaW5pdF9v cGVuc2VyU0lQUG9ydFRhYmxlKHZvaWQpCi0gewotIAlpbnQgY3VyU05NUEluZGV4ID0gMDsKLSAK LS0JaW5pdGlhbGl6ZV90YWJsZV9vcGVuc2VyU0lQUG9ydFRhYmxlKCk7Ci0tCi0gCXVuc2lnbmVk IGludCAqVURQTGlzdCA9IE5VTEw7Ci0gCXVuc2lnbmVkIGludCAqVENQTGlzdCA9IE5VTEw7Ci0g CXVuc2lnbmVkIGludCAqVExTTGlzdCA9IE5VTEw7Ci1AQCAtMjI4LDYgKzIyNCw4IEBAIHZvaWQg aW5pdF9vcGVuc2VyU0lQUG9ydFRhYmxlKHZvaWQpCi0gCWludCBudW1UQ1BTb2NrZXRzOwotIAlp bnQgbnVtVExTU29ja2V0czsKLSAKLSsJaW5pdGlhbGl6ZV90YWJsZV9vcGVuc2VyU0lQUG9ydFRh YmxlKCk7Ci0rCi0gCS8qIFJldHJpZXZlIHRoZSBsaXN0IG9mIHRoZSBudW1iZXIgb2YgVURQIGFu ZCBUQ1Agc29ja2V0cy4gKi8KLSAJbnVtVURQU29ja2V0cyA9IGdldF9zb2NrZXRfbGlzdF9mcm9t X3Byb3RvKCZVRFBMaXN0LCBQUk9UT19VRFApOwotIAludW1UQ1BTb2NrZXRzID0gZ2V0X3NvY2tl dF9saXN0X2Zyb21fcHJvdG8oJlRDUExpc3QsIFBST1RPX1RDUCk7Ci1kaWZmIC0tZ2l0IGEvbW9k dWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZS5jIGIvbW9kdWxlcy9z bm1wc3RhdHMvb3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZS5jCi1pbmRleCAzMjRkZjYxOGZk Li5hNTRiNTgzNzUyIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFJl Z1VzZXJMb29rdXBUYWJsZS5jCi0rKysgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVn VXNlckxvb2t1cFRhYmxlLmMKLUBAIC01MTQsMjMgKzUxNCwyMCBAQCB2b2lkIG9wZW5zZXJTSVBS ZWdVc2VyTG9va3VwVGFibGVfc2V0X3Jlc2VydmUyKCBuZXRzbm1wX3JlcXVlc3RfZ3JvdXAgKnJn ICkKLSAgKi8KLSB2b2lkIG9wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfc2V0X2FjdGlvbigg bmV0c25tcF9yZXF1ZXN0X2dyb3VwICpyZyApCi0gewotLQkvKiBGaXJzdCB0aGluZ3MgZmlyc3Qs IHdlIG5lZWQgdG8gY29uc3VtZSB0aGUgaW50ZXJwcm9jZXNzIGJ1ZmZlciwgaW4KLS0JICogY2Fz ZSBzb21ldGhpbmcgaGFzIGNoYW5nZWQuIFdlIHdhbnQgdG8gcmV0dXJuIHRoZSBmcmVzaGVzdCBk YXRhLiAqLwotLQljb25zdW1lSW50ZXJwcm9jZXNzQnVmZmVyKCk7Ci0tCi0gCWFvclRvSW5kZXhT dHJ1Y3RfdCAqaGFzaFJlY29yZDsKLS0KLSAJbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXI7Ci0r CW5ldHNubXBfcmVxdWVzdF9ncm91cF9pdGVtICpjdXJyZW50OwotKwlpbnQgcm93X2VyciA9IDA7 Ci0rCW9wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfY29udGV4dCAqcm93X2N0eCA9IE5VTEw7 Ci0rCW9wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfY29udGV4dCAqdW5kb19jdHggPSBOVUxM OwotIAotLQlvcGVuc2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlX2NvbnRleHQgKnJvd19jdHggPQot LQkJKG9wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfY29udGV4dCAqKXJnLT5leGlzdGluZ19y b3c7Ci0tCi0tCW9wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfY29udGV4dCAqdW5kb19jdHgg PQotLQkJKG9wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfY29udGV4dCAqKXJnLT51bmRvX2lu Zm87Ci0rCS8qIEZpcnN0IHRoaW5ncyBmaXJzdCwgd2UgbmVlZCB0byBjb25zdW1lIHRoZSBpbnRl cnByb2Nlc3MgYnVmZmVyLCBpbgotKwkgKiBjYXNlIHNvbWV0aGluZyBoYXMgY2hhbmdlZC4gV2Ug d2FudCB0byByZXR1cm4gdGhlIGZyZXNoZXN0IGRhdGEuICovCi0rCWNvbnN1bWVJbnRlcnByb2Nl c3NCdWZmZXIoKTsKLSAKLS0JbmV0c25tcF9yZXF1ZXN0X2dyb3VwX2l0ZW0gKmN1cnJlbnQ7Ci0r CXJvd19jdHggPSAob3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICopcmctPmV4 aXN0aW5nX3JvdzsKLSAKLS0JaW50CQkJcm93X2VyciA9IDA7Ci0rCXVuZG9fY3R4ID0gKG9wZW5z ZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfY29udGV4dCAqKXJnLT51bmRvX2luZm87Ci0gCi0gCS8q IENvcHkgdGhlIGFjdHVhbCBkYXRhIHRvIHRoZSByb3cuICovCi0gCWZvciggY3VycmVudCA9IHJn LT5saXN0OyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dCApIHsKLWRpZmYgLS1naXQg YS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlclRhYmxlLmMgYi9tb2R1bGVzL3Nu bXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlclRhYmxlLmMKLWluZGV4IDQzYjE0Y2RlYjcuLjljZjAy OWRmOWQgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlclRh YmxlLmMKLSsrKyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBSZWdVc2VyVGFibGUuYwot QEAgLTIyNSwxNSArMjI1LDE0IEBAIHZvaWQgdXBkYXRlVXNlcihjaGFyICp1c2VyTmFtZSkKLSAg KiBSZXR1cm5zOiBUaGUgcm93cyB1c2VySW5kZXggb24gc3VjY2VzcywgYW5kIDAgb3RoZXJ3aXNl LiAqLwotIGludCBjcmVhdGVSZWdVc2VyUm93KGNoYXIgKnN0cmluZ1RvUmVnaXN0ZXIpCi0gewot LQlpbnQgc3RhdGljIGluZGV4ID0gMDsKLS0KLS0JaW5kZXgrKzsKLS0KLSAJb3BlbnNlclNJUFJl Z1VzZXJUYWJsZV9jb250ZXh0ICp0aGVSb3c7Ci0tCi0gCW9pZCAgKk9JREluZGV4OwotIAlpbnQg IHN0cmluZ0xlbmd0aDsKLSAKLSsJaW50IHN0YXRpYyBpbmRleCA9IDA7Ci0rCi0rCWluZGV4Kys7 Ci0rCi0gCXRoZVJvdyA9IFNOTVBfTUFMTE9DX1RZUEVERUYob3BlbnNlclNJUFJlZ1VzZXJUYWJs ZV9jb250ZXh0KTsKLSAKLSAJaWYgKHRoZVJvdyA9PSBOVUxMKSB7Ci1AQCAtMjgwLDEyICsyNzks MTIgQEAgaW50IGNyZWF0ZVJlZ1VzZXJSb3coY2hhciAqc3RyaW5nVG9SZWdpc3RlcikKLSAvKiBJ bml0aWFsaXplcyB0aGUgb3BlbnNlclNJUFJlZ1VzZXJUYWJsZSBtb2R1bGUuICAqLwotIHZvaWQg aW5pdF9vcGVuc2VyU0lQUmVnVXNlclRhYmxlKHZvaWQpCi0gewotLQkvKiBSZWdpc3RlciB0aGlz IHRhYmxlIHdpdGggdGhlIG1hc3RlciBhZ2VudCAqLwotLQlpbml0aWFsaXplX3RhYmxlX29wZW5z ZXJTSVBSZWdVc2VyVGFibGUoKTsKLS0KLSAJLyogV2UgbmVlZCB0byBjcmVhdGUgYSBkZWZhdWx0 IHJvdywgc28gY3JlYXRlIERlZmF1bHRVc2VyICovCi0gCXN0YXRpYyBjaGFyICpkZWZhdWx0VXNl ciA9ICJEZWZhdWx0VXNlciI7Ci0gCi0rCS8qIFJlZ2lzdGVyIHRoaXMgdGFibGUgd2l0aCB0aGUg bWFzdGVyIGFnZW50ICovCi0rCWluaXRpYWxpemVfdGFibGVfb3BlbnNlclNJUFJlZ1VzZXJUYWJs ZSgpOwotKwotIAljcmVhdGVSZWdVc2VyUm93KGRlZmF1bHRVc2VyKTsKLSB9Ci0gCi1AQCAtMzUw LDE0ICszNDksMTYgQEAgaW50IG9wZW5zZXJTSVBSZWdVc2VyVGFibGVfZ2V0X3ZhbHVlKAotIAkJ bmV0c25tcF9pbmRleCAqaXRlbSwKLSAJCW5ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvICp0YWJs ZV9pbmZvICkKLSB7Ci0rCW5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFyID0gTlVMTDsKLSsJb3Bl bnNlclNJUFJlZ1VzZXJUYWJsZV9jb250ZXh0ICpjb250ZXh0ID0gTlVMTDsKLSsKLSAJLyogRmly c3QgdGhpbmdzIGZpcnN0LCB3ZSBuZWVkIHRvIGNvbnN1bWUgdGhlIGludGVycHJvY2VzcyBidWZm ZXIsIGluCi0gCSAqIGNhc2Ugc29tZXRoaW5nIGhhcyBjaGFuZ2VkLiBXZSB3YW50IHRvIHJldHVy biB0aGUgZnJlc2hlc3QgZGF0YS4gKi8KLSAJY29uc3VtZUludGVycHJvY2Vzc0J1ZmZlcigpOwot IAotLQluZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhciA9IHJlcXVlc3QtPnJlcXVlc3R2YjsKLSsJ dmFyID0gcmVxdWVzdC0+cmVxdWVzdHZiOwotIAotLQlvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2Nv bnRleHQgKmNvbnRleHQgPQotLQkJKG9wZW5zZXJTSVBSZWdVc2VyVGFibGVfY29udGV4dCAqKWl0 ZW07Ci0rCWNvbnRleHQgPSAob3BlbnNlclNJUFJlZ1VzZXJUYWJsZV9jb250ZXh0ICopaXRlbTsK LSAKLSAJc3dpdGNoKHRhYmxlX2luZm8tPmNvbG51bSkKLSAJewotZGlmZiAtLWdpdCBhL21vZHVs ZXMvc25tcHN0YXRzL29wZW5zZXJTSVBTdGF0dXNDb2Rlc1RhYmxlLmMgYi9tb2R1bGVzL3NubXBz dGF0cy9vcGVuc2VyU0lQU3RhdHVzQ29kZXNUYWJsZS5jCi1pbmRleCAyYjM5NmM2OTg1Li43OWYz YTEyOWEzIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFN0YXR1c0Nv ZGVzVGFibGUuYwotKysrIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFN0YXR1c0NvZGVz VGFibGUuYwotQEAgLTMxMCw2ICszMTAsNyBAQCBpbnQgb3BlbnNlclNJUFN0YXR1c0NvZGVzVGFi bGVfY2FuX2RlbGV0ZSgKLSBvcGVuc2VyU0lQU3RhdHVzQ29kZXNUYWJsZV9jb250ZXh0ICoKLSBv cGVuc2VyU0lQU3RhdHVzQ29kZXNUYWJsZV9jcmVhdGVfcm93KCBuZXRzbm1wX2luZGV4KiBoZHIp Ci0gewotKwlpbnQgY29kZUluZGV4OwotIAlzdGF0X3ZhciAqaW5fc3RhdHVzX2NvZGU7Ci0gCXN0 YXRfdmFyICpvdXRfc3RhdHVzX2NvZGU7Ci0gCi1AQCAtMzM3LDcgKzMzOCw3IEBAIG9wZW5zZXJT SVBTdGF0dXNDb2Rlc1RhYmxlX2NyZWF0ZV9yb3coIG5ldHNubXBfaW5kZXgqIGhkcikKLSAJLyog UmV0cmlldmUgdGhlIGluZGV4IGZvciB0aGUgc3RhdHVzIGNvZGUsIGFuZCB0aGVuIGFzc2lnbiB0 aGUgc3RhcnRpbmcKLSAJICogdmFsdWVzLiAgVGhlIHN0YXJ0aW5nIHZhbHVlcyB3aWxsIGJlIHVz ZWQgdG8gY2FsY3VsYXRlIGRlbHRhcyBkdXJpbmcKLSAJICogdGhlIG5leHQgc25tcGdldC9zbm1w d2Fsay9zbm1wdGFibGUvZXRjLiAqLwotLQlpbnQgY29kZUluZGV4ID0gY3R4LT5vcGVuc2VyU0lQ U3RhdHVzQ29kZVZhbHVlOwotKwljb2RlSW5kZXggPSBjdHgtPm9wZW5zZXJTSVBTdGF0dXNDb2Rl VmFsdWU7Ci0gCi0gCWN0eC0+c3RhcnRpbmdJblN0YXR1c0NvZGVWYWx1ZSAgPSAwOwotIAljdHgt PnN0YXJ0aW5nT3V0U3RhdHVzQ29kZVZhbHVlID0gMDsKLWRpZmYgLS1naXQgYS9tb2R1bGVzL3Nu bXBzdGF0cy9zbm1wc3RhdHMuYyBiL21vZHVsZXMvc25tcHN0YXRzL3NubXBzdGF0cy5jCi1pbmRl eCA5NWJjMWMxZjNiLi41NzVjMGQxMDY4IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMv c25tcHN0YXRzLmMKLSsrKyBiL21vZHVsZXMvc25tcHN0YXRzL3NubXBzdGF0cy5jCi1AQCAtMzQ2 LDcgKzM0NiwxMiBAQCBzdGF0aWMgdm9pZCBzaWdjaGxkX2hhbmRsZXIoaW50IHNpZ25hbCkKLSAg Ki8KLSBzdGF0aWMgaW50IHNwYXduX3N5c1VwVGltZV9jaGlsZCh2b2lkKQotIHsKLSsJcGlkX3Qg cmVzdWx0X3BpZDsKLSsJaW50IHNubXBnZXRfZmQ7Ci0rCWludCBsb2NhbF9wYXRoX3RvX3NubXBn ZXRfbGVuZ3RoOwotKwlpbnQgc25tcGdldF9iaW5hcnlfbmFtZV9sZW5ndGg7Ci0gCXN0cnVjdCBz aWdhY3Rpb24gbmV3X3NpZ2NobGRfaGFuZGxlcjsKLSsJY2hhciAqYXJnc1s2XTsKLSAKLSAJY2hh ciAqbG9jYWxfcGF0aF90b19zbm1wZ2V0ID0gIi91c3IvYmluLyI7Ci0gCWNoYXIgKnNubXBnZXRf YmluYXJ5X25hbWUgICA9ICIvc25tcGdldCI7Ci1AQCAtMzYyLDcgKzM2Nyw3IEBAIHN0YXRpYyBp bnQgc3Bhd25fc3lzVXBUaW1lX2NoaWxkKHZvaWQpCi0gCW5ld19zaWdjaGxkX2hhbmRsZXIuc2Ff aGFuZGxlciA9IHNpZ2NobGRfaGFuZGxlcjsKLSAJc2lnYWN0aW9uKFNJR0NITEQsICZuZXdfc2ln Y2hsZF9oYW5kbGVyLCAmb2xkX3NpZ2NobGRfaGFuZGxlcik7Ci0gCi0tCXBpZF90IHJlc3VsdF9w aWQgPSBmb3JrKCk7Ci0rCXJlc3VsdF9waWQgPSBmb3JrKCk7Ci0gCi0gCWlmIChyZXN1bHRfcGlk IDwgMCkgewotIAkJTE1fRVJSKCJmYWlsZWQgdG8gbm90IHNwYXduIGFuIGFnZW50IHRvIGNoZWNr IHN5c1VwVGltZVxuIik7Ci1AQCAtMzgwLDcgKzM4NSw3IEBAIHN0YXRpYyBpbnQgc3Bhd25fc3lz VXBUaW1lX2NoaWxkKHZvaWQpCi0gCi0gCS8qIElmIHdlIGFyZSBoZXJlLCB0aGVuIHdlIGFyZSB0 aGUgY2hpbGQgcHJvY2Vzcy4gIExldHMgc2V0IHVwIHRoZSBmaWxlCi0gCSAqIGRlc2NyaXB0b3Jz IHNvIHdlIGNhbiBjYXB0dXJlIHRoZSBvdXRwdXQgb2Ygc25tcGdldC4gKi8KLS0JaW50IHNubXBn ZXRfZmQgPQotKwlzbm1wZ2V0X2ZkID0KLSAJCW9wZW4oU05NUEdFVF9URU1QX0ZJTEUsIE9fQ1JF QVR8T19UUlVOQ3xPX1JEV1IsCi0gCQkJCVNfSVJVU1J8U19JV1VTUnxTX0lSR1JQfFNfSVJPVEgp OwotIAotQEAgLTQwMSw4ICs0MDYsMTIgQEAgc3RhdGljIGludCBzcGF3bl9zeXNVcFRpbWVfY2hp bGQodm9pZCkKLSAJCQkJIiAgRGVmYXVsdGluZyB0byAlc1xuIiwJc25tcF9jb21tdW5pdHlfc3Ry aW5nKTsKLSAJfQotIAotLQljaGFyICphcmdzW10gPSB7Ii1PdiIsICItYyIsICBzbm1wX2NvbW11 bml0eV9zdHJpbmcsICJsb2NhbGhvc3QiLAotLQkJU1lTVVBUSU1FX09JRCwgKGNoYXIgKikgMH07 Ci0rCWFyZ3NbMF0gPSAiLU92IjsKLSsJYXJnc1sxXSA9ICItYyI7Ci0rCWFyZ3NbMl0gPSBzbm1w X2NvbW11bml0eV9zdHJpbmc7Ci0rCWFyZ3NbM10gPSAibG9jYWxob3N0IjsKLSsJYXJnc1s0XSA9 IFNZU1VQVElNRV9PSUQ7Ci0rCWFyZ3NbNV0gPSAoY2hhciAqKTA7Ci0gCi0gCS8qIE1ha2Ugc3Vy ZSB3ZSBoYXZlIGEgcGF0aCB0byBzbm1wZ2V0LCBzbyB3ZSBjYW4gcmV0cmlldmUgdGhlCi0gCSAq IHN5c1VwVGltZS4gKi8KLUBAIC00MTYsOCArNDI1LDggQEAgc3RhdGljIGludCBzcGF3bl9zeXNV cFRpbWVfY2hpbGQodm9pZCkKLSAJCWxvY2FsX3BhdGhfdG9fc25tcGdldCA9IHNubXBnZXRfcGF0 aDsKLSAJfQotIAotLQlpbnQgbG9jYWxfcGF0aF90b19zbm1wZ2V0X2xlbmd0aCA9IHN0cmxlbihs b2NhbF9wYXRoX3RvX3NubXBnZXQpOwotLQlpbnQgc25tcGdldF9iaW5hcnlfbmFtZV9sZW5ndGgg ICA9IHN0cmxlbihzbm1wZ2V0X2JpbmFyeV9uYW1lKTsKLSsJbG9jYWxfcGF0aF90b19zbm1wZ2V0 X2xlbmd0aCA9IHN0cmxlbihsb2NhbF9wYXRoX3RvX3NubXBnZXQpOwotKwlzbm1wZ2V0X2JpbmFy eV9uYW1lX2xlbmd0aCAgID0gc3RybGVuKHNubXBnZXRfYmluYXJ5X25hbWUpOwotIAotIAkvKiBB bGxvY2F0ZSBlbm91Z2ggbWVtb3J5IHRvIGhvbGQgdGhlIHBhdGgsIHRoZSBiaW5hcnkgbmFtZSwg YW5kIHRoZQotIAkgKiBudWxsIGNoYXJhY3Rlci4gIFdlIGRvbid0IHVzZSBwa2dfbWVtb3J5IGhl cmUuICovCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9zbm1wc3RhdHMvdXRpbGl0aWVzLmMgYi9tb2R1 bGVzL3NubXBzdGF0cy91dGlsaXRpZXMuYwotaW5kZXggZGZjMDk3OGI3NC4uMmY3ZWQ5YTMwNyAx MDA2NDQKLS0tLSBhL21vZHVsZXMvc25tcHN0YXRzL3V0aWxpdGllcy5jCi0rKysgYi9tb2R1bGVz L3NubXBzdGF0cy91dGlsaXRpZXMuYwotQEAgLTcyLDEzICs3MiwxMyBAQCBpbnQgc3RyaW5nSGFu ZGxlclNhbml0eUNoZWNrKCBtb2RwYXJhbV90IHR5cGUsIHZvaWQgKnZhbCwgY2hhciAqcGFyYW1l dGVyTmFtZSkKLSBpbnQgZ2V0X3N0YXRpc3RpYyhjaGFyICpzdGF0TmFtZSkKLSB7Ci0gCWludCBy ZXN1bHQgPSAwOwotLQotKwlzdGF0X3ZhciAqdGhlVmFyID0gTlVMTDsKLSAJc3RyIHRoZVN0cjsK LSAKLSAJdGhlU3RyLnMgICA9IHN0YXROYW1lOwotIAl0aGVTdHIubGVuID0gc3RybGVuKHN0YXRO YW1lKTsKLSAKLS0Jc3RhdF92YXIgKnRoZVZhciA9IGdldF9zdGF0KCZ0aGVTdHIpOwotKwl0aGVW YXIgPSBnZXRfc3RhdCgmdGhlU3RyKTsKLSAKLSAJaWYgKHRoZVZhcj09MCkgewotIAkJTE1fSU5G TygiZmFpbGVkIHRvIHJldHJpZXZlIHN0YXRpc3RpY3MgZm9yICVzXG4iLCBzdGF0TmFtZSk7Cgpk aWZmIC0tZ2l0IGEvb3BlbnNpcHMtMDAxMS1GaXgtYnVpbGQtd2l0aC1PcGVuU1NMLTMueC1yZXBs YWNlLWRpcmVjdC1BU04xX1NUUklOLnBhdGNoIGIvb3BlbnNpcHMtMDAxMS1GaXgtYnVpbGQtd2l0 aC1PcGVuU1NMLTMueC1yZXBsYWNlLWRpcmVjdC1BU04xX1NUUklOLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA3MmNhODdmLi4wMDAwMDAwCi0tLSBhL29wZW5zaXBzLTAwMTEt Rml4LWJ1aWxkLXdpdGgtT3BlblNTTC0zLngtcmVwbGFjZS1kaXJlY3QtQVNOMV9TVFJJTi5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLUZyb20gMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBl dGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDI0IEp1biAyMDI2 IDIwOjI5OjQ1ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBidWlsZCB3aXRoIE9wZW5TU0wg My54OiByZXBsYWNlIGRpcmVjdCBBU04xX1NUUklORyBtZW1iZXIKLSBhY2Nlc3MKLQotT3BlblNT TCAzLnggbWFkZSBBU04xX1NUUklORyAoc3RydWN0IGFzbjFfc3RyaW5nX3N0KSBhbiBvcGFxdWUg dHlwZS4KLVJlcGxhY2UgYWxsIGRpcmVjdCAtPmRhdGEgYW5kIC0+bGVuZ3RoIG1lbWJlciBhY2Nl c3Mgd2l0aCB0aGUgcHVibGljCi1hY2Nlc3NvciBBUEkgKEFTTjFfU1RSSU5HX2dldDBfZGF0YSwg QVNOMV9TVFJJTkdfbGVuZ3RoKSwgYXZhaWxhYmxlCi1zaW5jZSBPcGVuU1NMIDEuMS4wLgotCi1G aXhlcyBidWlsZCBvbiBGZWRvcmEgNDUgKE9wZW5TU0wgMy41LngsIEdDQyAxNikuCi0KLVNpZ25l ZC1vZmYtYnk6IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+Ci1Bc3Npc3RlZC1i eTogQ2xhdWRlIChBbnRocm9waWMpIDxodHRwczovL2NsYXVkZS5haT4KLQotZGlmZiAtLWdpdCBh L21vZHVsZXMvaWRlbnRpdHkvaWRlbnRpdHkuYyBiL21vZHVsZXMvaWRlbnRpdHkvaWRlbnRpdHku YwotaW5kZXggZjRhMzUwYTUzYy4uYTFiMTdiOWQwMyAxMDA2NDQKLS0tLSBhL21vZHVsZXMvaWRl bnRpdHkvaWRlbnRpdHkuYwotKysrIGIvbW9kdWxlcy9pZGVudGl0eS9pZGVudGl0eS5jCi1AQCAt MTQyMCwxMyArMTQyMCwxMyBAQCBzdGF0aWMgdGltZV90IHBhcnNlWDUwOURhdGUoQVNOMV9TVFJJ TkcgKiBkYXRlU3RyaW5nKQotIAkJcmV0dXJuIC0xOwotIAl9Ci0gCi0tCWlmKChBU04xX1VUQ1RJ TUVfY2hlY2soZGF0ZVN0cmluZykpICYmIChkYXRlU3RyaW5nLT5sZW5ndGggPT0gMTMpKQotKwlp ZigoQVNOMV9VVENUSU1FX2NoZWNrKGRhdGVTdHJpbmcpKSAmJiAoQVNOMV9TVFJJTkdfbGVuZ3Ro KGRhdGVTdHJpbmcpID09IDEzKSkKLSAJewotIAkJLyogVVRDVElNRSBzdHJpbmcsIEdNVAotIAkJ WVlNTUREaGhtbXNzWgotIAkJKi8KLSAKLS0JCXRtcCA9IGRhdGVTdHJpbmctPmRhdGE7Ci0rCQl0 bXAgPSAoY2hhciAqKUFTTjFfU1RSSU5HX2dldDBfZGF0YShkYXRlU3RyaW5nKTsKLSAKLSAJCXRt RGF0ZS50bV95ZWFyID0gKHRtcFswXSAtICcwJykgKiAxMCArICh0bXBbMV0gLSAnMCcpOwotIAkJ aWYodG1EYXRlLnRtX3llYXIgPCA1MCkgLy9zZWUgY2hhcC4gNC4xLjIuNS4xLCByZmMgMzI4MAot QEAgLTE0NDQsMTIgKzE0NDQsMTIgQEAgc3RhdGljIHRpbWVfdCBwYXJzZVg1MDlEYXRlKEFTTjFf U1RSSU5HICogZGF0ZVN0cmluZykKLSAJfQotIAotIAkvKiBuZWVkZWQgZm9yIHllYXJzID49IDIw NTAgKi8KLS0JaWYgKChBU04xX0dFTkVSQUxJWkVEVElNRV9jaGVjayhkYXRlU3RyaW5nKSkgJiYg KGRhdGVTdHJpbmctPmxlbmd0aCA9PSAxNSkpCi0rCWlmICgoQVNOMV9HRU5FUkFMSVpFRFRJTUVf Y2hlY2soZGF0ZVN0cmluZykpICYmIChBU04xX1NUUklOR19sZW5ndGgoZGF0ZVN0cmluZykgPT0g MTUpKQotIAl7Ci0gCQkvKiBHRU5FUkFMSVpFRFRJTUUgc3RyaW5nOyBHTVQKLSAJCVlZWVlNTURE aGhtbXNzWgotIAkJKi8KLS0JCXRtcCA9IGRhdGVTdHJpbmctPmRhdGE7Ci0rCQl0bXAgPSAoY2hh ciAqKUFTTjFfU1RSSU5HX2dldDBfZGF0YShkYXRlU3RyaW5nKTsKLSAKLSAJCXRtRGF0ZS50bV95 ZWFyID0gKHRtcFswXSAtICcwJykgKiAxMDAwICsKLSAJCQkodG1wWzFdIC0gJzAnKSAqIDEwMCAr ICh0bXBbMl0gLSAnMCcpICogMTAgKyAodG1wWzNdIC0gJzAnKSAtIDE5MDA7Ci1kaWZmIC0tZ2l0 IGEvbW9kdWxlcy90bHNfb3BlbnNzbC9vcGVuc3NsX3Rsc192YXJzLmMgYi9tb2R1bGVzL3Rsc19v cGVuc3NsL29wZW5zc2xfdGxzX3ZhcnMuYwotaW5kZXggMGFjMzlmNzY0OC4uODU5YWU3NWZlNyAx MDA2NDQKLS0tLSBhL21vZHVsZXMvdGxzX29wZW5zc2wvb3BlbnNzbF90bHNfdmFycy5jCi0rKysg Yi9tb2R1bGVzL3Rsc19vcGVuc3NsL29wZW5zc2xfdGxzX3ZhcnMuYwotQEAgLTMyNCw4ICszMjQs OCBAQCBpbnQgb3BlbnNzbF90bHNfdmFyX2FsdChpbnQgaW5kLCB2b2lkICpzc2wsIHN0ciAqcmVz KQotIAkJY2FzZSBHRU5fRU1BSUw6Ci0gCQljYXNlIEdFTl9ETlM6Ci0gCQljYXNlIEdFTl9VUkk6 Ci0tCQkJdGV4dC5zID0gKGNoYXIqKW5tLT5kLmlhNS0+ZGF0YTsKLS0JCQl0ZXh0LmxlbiA9IG5t LT5kLmlhNS0+bGVuZ3RoOwotKwkJCXRleHQucyA9IChjaGFyKilBU04xX1NUUklOR19nZXQwX2Rh dGEobm0tPmQuaWE1KTsKLSsJCQl0ZXh0LmxlbiA9IEFTTjFfU1RSSU5HX2xlbmd0aChubS0+ZC5p YTUpOwotIAkJCWlmICh0ZXh0LmxlbiA+PSAxMDI0KSB7Ci0gCQkJCUxNX0VSUigiYWx0ZXJuYXRp dmUgc3ViamVjdCB0ZXh0IHRvbyBsb25nXG4iKTsKLSAJCQkJZ290byBlcnI7Ci1AQCAtMzM3LDkg KzMzNyw5IEBAIGludCBvcGVuc3NsX3Rsc192YXJfYWx0KGludCBpbmQsIHZvaWQgKnNzbCwgc3Ry ICpyZXMpCi0gCQkJYnJlYWs7Ci0gCi0gCQljYXNlIEdFTl9JUEFERDoKLS0JCQlpcC5sZW4gPSBu bS0+ZC5pUEFkZHJlc3MtPmxlbmd0aDsKLSsJCQlpcC5sZW4gPSBBU04xX1NUUklOR19sZW5ndGgo bm0tPmQuaVBBZGRyZXNzKTsKLSAJCQlpcC5hZiA9IChpcC5sZW4gPT0gMTYpID8gQUZfSU5FVDYg OiBBRl9JTkVUOwotLQkJCW1lbWNweShpcC51LmFkZHIsIG5tLT5kLmlQQWRkcmVzcy0+ZGF0YSwg aXAubGVuKTsKLSsJCQltZW1jcHkoaXAudS5hZGRyLCBBU04xX1NUUklOR19nZXQwX2RhdGEobm0t PmQuaVBBZGRyZXNzKSwgaXAubGVuKTsKLSAJCQl0ZXh0LnMgPSBpcF9hZGRyMmEoJmlwKTsKLSAJ CQl0ZXh0LmxlbiA9IHN0cmxlbih0ZXh0LnMpOwotIAkJCW1lbWNweShidWYsIHRleHQucywgdGV4 dC5sZW4pOwoKZGlmZiAtLWdpdCBhL29wZW5zaXBzLnNwZWMgYi9vcGVuc2lwcy5zcGVjCmluZGV4 IDE3YTEyZWMuLjEzODg3ZTQgMTAwNjQ0Ci0tLSBhL29wZW5zaXBzLnNwZWMKKysrIGIvb3BlbnNp cHMuc3BlYwpAQCAtMSwxMCArMSwxMCBAQAotJWdsb2JhbCBnaXRfY29tbWl0IGFjZjQ1YzA4ZTdh MTY5YjE4ZjdiNTNmMDJkNDJjMTljMDM1YzFjNDMKKyVnbG9iYWwgZ2l0X2NvbW1pdCAxNzQ3ZTZl ZDIwYTQ3N2I2MWI4ZThlMDY4MjEyNDAyYjE2NDVkYzg0CiAKICVnbG9iYWwgRVhDTFVERV9NT0RV TEVTIGNhY2hlZGJfY2Fzc2FuZHJhIGNhY2hlZGJfZHluYW1vZGIgJXshP193aXRoX29yYWNsZTpk Yl9vcmFjbGV9IGV2ZW50X3NxcyBleGFtcGxlIGxhdW5jaF9kYXJrbHkgb3BlbnRlbGVtZXRyeSBv c3AgcnRwLmlvIHNuZ3RjIHRsc193b2xmc3NsCiAKIFN1bW1hcnk6ICBPcGVuIFNvdXJjZSBTSVAg U2VydmVyCiBOYW1lOiAgICAgb3BlbnNpcHMKLVZlcnNpb246ICA0LjAuMAorVmVyc2lvbjogIDQu MC4xCiBSZWxlYXNlOiAgJWF1dG9yZWxlYXNlCiBMaWNlbnNlOiAgR1BMLTIuMC1vci1sYXRlcgog U291cmNlMDogIGh0dHBzOi8vZ2l0aHViLmNvbS8le25hbWV9LyV7bmFtZX0vYXJjaGl2ZS8le3Zl cnNpb259LyV7bmFtZX0tJXt2ZXJzaW9ufS50YXIuZ3oKQEAgLTE0LDEzICsxNCwxMCBAQCBQYXRj aDogb3BlbnNpcHMtMDAwMS1Db25zaXN0ZW50bHktdXNlLXJ0cHByb3h5LXN3aXRjaGVzLnBhdGNo CiBQYXRjaDogb3BlbnNpcHMtMDAwMi1DbGVhbnVwLU9yYWNsZS1zLW1ha2VmaWxlcy5wYXRjaAog UGF0Y2g6IG9wZW5zaXBzLTAwMDMtZGJfb3JhLW51bGwtdGVybWluYXRpbmctc3RyaW5nLWlzLW1v cmUtc2FmZWx5LW1vc3QtbS5wYXRjaAogUGF0Y2g6IG9wZW5zaXBzLTAwMDQtUmV0dXJuLWFjdHVh bC1wYXlsb2FkLUlELWluLWNhc2Utb2YtYS1keW5hbWljLXBheWxvYS5wYXRjaAotUGF0Y2g6IG9w ZW5zaXBzLTAwMDUtRml4LXJhYmJpdG1xLWMtZGVwcmVjYXRlZC1oZWFkZXItd2FybmluZ3MucGF0 Y2gKLVBhdGNoOiBvcGVuc2lwcy0wMDA2LUZpeC11bmluaXRpYWxpemVkLXZhcmlhYmxlLXdhcm5p bmdzLWluLVNRTC1BUEktZnVuY3QucGF0Y2gKLVBhdGNoOiBvcGVuc2lwcy0wMDA3LUZpeC1jb25z dC1jb3JyZWN0bmVzcy13YXJuaW5ncy1pbi1IVFRQLWFuZC1GcmVlU1dJVEMucGF0Y2gKLVBhdGNo OiBvcGVuc2lwcy0wMDA4LUZpeC11bmluaXRpYWxpemVkLXZhX2xpc3Qtd2FybmluZy1vbi1wcGM2 NGxlLWFuZC1pNjgucGF0Y2gKLVBhdGNoOiBvcGVuc2lwcy0wMDA5LUZpeC1wb2ludGVyLXRydW5j YXRpb24td2FybmluZy1vbi0zMi1iaXQtYXJjaGl0ZWN0dXIucGF0Y2gKLVBhdGNoOiBvcGVuc2lw cy0wMDEwLUZpeC1DOTAtc3R5bGUtZGVjbGFyYXRpb24td2FybmluZ3MtaW4tc25tcHN0YXRzLW1v ZHUucGF0Y2gKLVBhdGNoOiBvcGVuc2lwcy0wMDExLUZpeC1idWlsZC13aXRoLU9wZW5TU0wtMy54 LXJlcGxhY2UtZGlyZWN0LUFTTjFfU1RSSU4ucGF0Y2gKK1BhdGNoOiBvcGVuc2lwcy0wMDA1LUZp eC11bmluaXRpYWxpemVkLXZhcmlhYmxlLXdhcm5pbmdzLWluLVNRTC1BUEktZnVuY3QucGF0Y2gK K1BhdGNoOiBvcGVuc2lwcy0wMDA2LUZpeC11bmluaXRpYWxpemVkLXZhX2xpc3Qtd2FybmluZy1v bi1wcGM2NGxlLWFuZC1pNjgucGF0Y2gKK1BhdGNoOiBvcGVuc2lwcy0wMDA3LUZpeC1DOTAtc3R5 bGUtZGVjbGFyYXRpb24td2FybmluZ3MtaW4tc25tcHN0YXRzLW1vZHUucGF0Y2gKK1BhdGNoOiBv cGVuc2lwcy0wMDA4LUZpeC1idWlsZC13aXRoLU9wZW5TU0wtMy54LXJlcGxhY2UtZGlyZWN0LUFT TjFfU1RSSU4ucGF0Y2gKIAogVVJMOiAgICAgIGh0dHBzOi8vb3BlbnNpcHMub3JnCiAKCmRpZmYg LS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCBkOTMzMDZiLi4yODNjM2IxIDEwMDY0NAot LS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEgKzEgQEAKLVNIQTUxMiAob3BlbnNpcHMt NC4wLjAudGFyLmd6KSA9IDc4Y2M1OTlkYWUxNTkyNmVlYWMwZWQ1MDcyN2U0MmIzMzZkY2MzYjQz MTc2OWE1YjBkNTJlYzlkZTcxMjUwMDg0ZWNhMDg5M2VjZmFkNTE1YWNjMGViODIxNDk2NDNiNjQx MGNhMWY5NDcwMjI1NzQ0OWRmMmQ5ZDU3MTMyMjkwCitTSEE1MTIgKG9wZW5zaXBzLTQuMC4xLnRh ci5neikgPSA1YjNjMzQxNmE4MWJhNGVlYzUxMGZkYjgyMzc3MDFlZGY5ZGNkYWNhNzU2N2RlYWM5 ZTBjOGU3ZjlkNzIxNzczNzY4ZWVkNThjMDUyZGVmZDA2NzFlMWMxMDRiYThlMmM0YmMxMGNkZDQ1 YjY3YWI1ZWJmZWI1ZGE1ZGJjYzFmMgo=