From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jiri Slaby Subject: [PATCH -resend 23/27] x86_64: assembly, change all ENTRY+ENDPROC to SYM_FUNC_* Date: Thu, 10 May 2018 10:06:40 +0200 Message-ID: <20180510080644.19752-24-jslaby@suse.cz> References: <20180510080644.19752-1-jslaby@suse.cz> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: linux-arch@vger.kernel.org, Len Brown , linux-efi@vger.kernel.org, Herbert Xu , Ard Biesheuvel , Matt Fleming , Boris Ostrovsky , x86@kernel.org, "Rafael J. Wysocki" , linux-kernel@vger.kernel.org, Juergen Gross , linux-crypto@vger.kernel.org, Pavel Machek , "H. Peter Anvin" , linux-pm@vger.kernel.org, xen-devel@lists.xenproject.org, Thomas Gleixner , Jiri Slaby , "David S. Miller" To: mingo@redhat.com Return-path: In-Reply-To: <20180510080644.19752-1-jslaby@suse.cz> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" List-Id: linux-crypto.vger.kernel.org VGhlc2UgYXJlIGFsbCBmdW5jdGlvbnMgd2hpY2ggYXJlIGludm9rZWQgZnJvbSBlbHNld2hlcmUs IHNvIHdlIGFubm90YXRlCnRoZW0gYXMgZ2xvYmFsIHVzaW5nIHRoZSBuZXcgU1lNX0ZVTkNfU1RB UlQuIEFuZCB0aGVpciBFTkRQUk9DJ3MgYnkKU1lNX0ZVTkNfRU5ELgoKQW5kIG1ha2Ugc3VyZSBF TlRSWS9FTkRQUk9DIGlzIG5vdCBkZWZpbmVkIG9uIFg4Nl82NCwgZ2l2ZW4gdGhlc2Ugd2VyZQp0 aGUgbGFzdCB1c2Vycy4KClNpZ25lZC1vZmYtYnk6IEppcmkgU2xhYnkgPGpzbGFieUBzdXNlLmN6 PgpSZXZpZXdlZC1ieTogUmFmYWVsIEouIFd5c29ja2kgPHJhZmFlbC5qLnd5c29ja2lAaW50ZWwu Y29tPiBbaGliZXJuYXRlXQpSZXZpZXdlZC1ieTogQm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ry b3Zza3lAb3JhY2xlLmNvbT4gW3hlbiBiaXRzXQpDYzogIkguIFBldGVyIEFudmluIiA8aHBhQHp5 dG9yLmNvbT4KQ2M6IFRob21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRlPgpDYzogSW5n byBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+CkNjOiB4ODZAa2VybmVsLm9yZwpDYzogSGVyYmVy dCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpDYzogIkRhdmlkIFMuIE1pbGxlciIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+CkNjOiAiUmFmYWVsIEouIFd5c29ja2kiIDxyandAcmp3eXNv Y2tpLm5ldD4KQ2M6IExlbiBCcm93biA8bGVuLmJyb3duQGludGVsLmNvbT4KQ2M6IFBhdmVsIE1h Y2hlayA8cGF2ZWxAdWN3LmN6PgpDYzogTWF0dCBGbGVtaW5nIDxtYXR0QGNvZGVibHVlcHJpbnQu Y28udWs+CkNjOiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4KQ2M6 IEJvcmlzIE9zdHJvdnNreSA8Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20+CkNjOiBKdWVyZ2Vu IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+CkNjOiBsaW51eC1jcnlwdG9Admdlci5rZXJuZWwub3Jn CkNjOiBsaW51eC1wbUB2Z2VyLmtlcm5lbC5vcmcKQ2M6IGxpbnV4LWVmaUB2Z2VyLmtlcm5lbC5v cmcKQ2M6IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwotLS0KIGFyY2gveDg2L2Jvb3Qv Y29tcHJlc3NlZC9lZmlfdGh1bmtfNjQuUyAgICAgICAgICAgIHwgIDQgKy0KIGFyY2gveDg2L2Jv b3QvY29tcHJlc3NlZC9oZWFkXzY0LlMgICAgICAgICAgICAgICAgIHwgMTYgKysrLS0tCiBhcmNo L3g4Ni9ib290L2NvbXByZXNzZWQvbWVtX2VuY3J5cHQuUyAgICAgICAgICAgICB8ICA4ICstLQog YXJjaC94ODYvY3J5cHRvL2Flcy1pNTg2LWFzbV8zMi5TICAgICAgICAgICAgICAgICAgfCAgOCAr LS0KIGFyY2gveDg2L2NyeXB0by9hZXMteDg2XzY0LWFzbV82NC5TICAgICAgICAgICAgICAgIHwg IDQgKy0KIGFyY2gveDg2L2NyeXB0by9hZXNfY3RyYnk4X2F2eC14ODZfNjQuUyAgICAgICAgICAg IHwgMTIgKystLS0KIGFyY2gveDg2L2NyeXB0by9hZXNuaS1pbnRlbF9hc20uUyAgICAgICAgICAg ICAgICAgIHwgNjAgKysrKysrKysrKystLS0tLS0tLS0tLQogYXJjaC94ODYvY3J5cHRvL2Flc25p LWludGVsX2F2eC14ODZfNjQuUyAgICAgICAgICAgfCAyNCArKysrLS0tLS0KIGFyY2gveDg2L2Ny eXB0by9ibG93ZmlzaC14ODZfNjQtYXNtXzY0LlMgICAgICAgICAgIHwgMTYgKysrLS0tCiBhcmNo L3g4Ni9jcnlwdG8vY2FtZWxsaWEtYWVzbmktYXZ4LWFzbV82NC5TICAgICAgICB8IDI0ICsrKyst LS0tLQogYXJjaC94ODYvY3J5cHRvL2NhbWVsbGlhLWFlc25pLWF2eDItYXNtXzY0LlMgICAgICAg fCAyNCArKysrLS0tLS0KIGFyY2gveDg2L2NyeXB0by9jYW1lbGxpYS14ODZfNjQtYXNtXzY0LlMg ICAgICAgICAgIHwgMTYgKysrLS0tCiBhcmNoL3g4Ni9jcnlwdG8vY2FzdDUtYXZ4LXg4Nl82NC1h c21fNjQuUyAgICAgICAgICB8IDE2ICsrKy0tLQogYXJjaC94ODYvY3J5cHRvL2Nhc3Q2LWF2eC14 ODZfNjQtYXNtXzY0LlMgICAgICAgICAgfCAyNCArKysrLS0tLS0KIGFyY2gveDg2L2NyeXB0by9j aGFjaGEyMC1hdngyLXg4Nl82NC5TICAgICAgICAgICAgIHwgIDQgKy0KIGFyY2gveDg2L2NyeXB0 by9jaGFjaGEyMC1zc3NlMy14ODZfNjQuUyAgICAgICAgICAgIHwgIDggKy0tCiBhcmNoL3g4Ni9j cnlwdG8vY3JjMzItcGNsbXVsX2FzbS5TICAgICAgICAgICAgICAgICB8ICA0ICstCiBhcmNoL3g4 Ni9jcnlwdG8vY3JjMzJjLXBjbC1pbnRlbC1hc21fNjQuUyAgICAgICAgICB8ICA0ICstCiBhcmNo L3g4Ni9jcnlwdG8vY3JjdDEwZGlmLXBjbC1hc21fNjQuUyAgICAgICAgICAgICB8ICA0ICstCiBh cmNoL3g4Ni9jcnlwdG8vZGVzM19lZGUtYXNtXzY0LlMgICAgICAgICAgICAgICAgICB8ICA4ICst LQogYXJjaC94ODYvY3J5cHRvL2doYXNoLWNsbXVsbmktaW50ZWxfYXNtLlMgICAgICAgICAgfCAg OCArLS0KIGFyY2gveDg2L2NyeXB0by9wb2x5MTMwNS1hdngyLXg4Nl82NC5TICAgICAgICAgICAg IHwgIDQgKy0KIGFyY2gveDg2L2NyeXB0by9wb2x5MTMwNS1zc2UyLXg4Nl82NC5TICAgICAgICAg ICAgIHwgIDggKy0tCiBhcmNoL3g4Ni9jcnlwdG8vc2Fsc2EyMC14ODZfNjQtYXNtXzY0LlMgICAg ICAgICAgICB8ICA0ICstCiBhcmNoL3g4Ni9jcnlwdG8vc2VycGVudC1hdngteDg2XzY0LWFzbV82 NC5TICAgICAgICB8IDI0ICsrKystLS0tLQogYXJjaC94ODYvY3J5cHRvL3NlcnBlbnQtYXZ4Mi1h c21fNjQuUyAgICAgICAgICAgICAgfCAyNCArKysrLS0tLS0KIGFyY2gveDg2L2NyeXB0by9zZXJw ZW50LXNzZTIteDg2XzY0LWFzbV82NC5TICAgICAgIHwgIDggKy0tCiBhcmNoL3g4Ni9jcnlwdG8v c2hhMS1tYi9zaGExX21iX21ncl9mbHVzaF9hdngyLlMgICB8ICA4ICstLQogYXJjaC94ODYvY3J5 cHRvL3NoYTEtbWIvc2hhMV9tYl9tZ3Jfc3VibWl0X2F2eDIuUyAgfCAgNCArLQogYXJjaC94ODYv Y3J5cHRvL3NoYTEtbWIvc2hhMV94OF9hdngyLlMgICAgICAgICAgICAgfCAgNCArLQogYXJjaC94 ODYvY3J5cHRvL3NoYTFfYXZ4Ml94ODZfNjRfYXNtLlMgICAgICAgICAgICAgfCAgNCArLQogYXJj aC94ODYvY3J5cHRvL3NoYTFfbmlfYXNtLlMgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQog YXJjaC94ODYvY3J5cHRvL3NoYTFfc3NzZTNfYXNtLlMgICAgICAgICAgICAgICAgICAgfCAgNCAr LQogYXJjaC94ODYvY3J5cHRvL3NoYTI1Ni1hdngtYXNtLlMgICAgICAgICAgICAgICAgICAgfCAg NCArLQogYXJjaC94ODYvY3J5cHRvL3NoYTI1Ni1hdngyLWFzbS5TICAgICAgICAgICAgICAgICAg fCAgNCArLQogLi4uL2NyeXB0by9zaGEyNTYtbWIvc2hhMjU2X21iX21ncl9mbHVzaF9hdngyLlMg ICAgfCAgOCArLS0KIC4uLi9jcnlwdG8vc2hhMjU2LW1iL3NoYTI1Nl9tYl9tZ3Jfc3VibWl0X2F2 eDIuUyAgIHwgIDQgKy0KIGFyY2gveDg2L2NyeXB0by9zaGEyNTYtbWIvc2hhMjU2X3g4X2F2eDIu UyAgICAgICAgIHwgIDQgKy0KIGFyY2gveDg2L2NyeXB0by9zaGEyNTYtc3NzZTMtYXNtLlMgICAg ICAgICAgICAgICAgIHwgIDQgKy0KIGFyY2gveDg2L2NyeXB0by9zaGEyNTZfbmlfYXNtLlMgICAg ICAgICAgICAgICAgICAgIHwgIDQgKy0KIGFyY2gveDg2L2NyeXB0by9zaGE1MTItYXZ4LWFzbS5T ICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIGFyY2gveDg2L2NyeXB0by9zaGE1MTItYXZ4Mi1h c20uUyAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIC4uLi9jcnlwdG8vc2hhNTEyLW1iL3NoYTUx Ml9tYl9tZ3JfZmx1c2hfYXZ4Mi5TICAgIHwgIDggKy0tCiAuLi4vY3J5cHRvL3NoYTUxMi1tYi9z aGE1MTJfbWJfbWdyX3N1Ym1pdF9hdngyLlMgICB8ICA0ICstCiBhcmNoL3g4Ni9jcnlwdG8vc2hh NTEyLW1iL3NoYTUxMl94NF9hdngyLlMgICAgICAgICB8ICA0ICstCiBhcmNoL3g4Ni9jcnlwdG8v c2hhNTEyLXNzc2UzLWFzbS5TICAgICAgICAgICAgICAgICB8ICA0ICstCiBhcmNoL3g4Ni9jcnlw dG8vdHdvZmlzaC1hdngteDg2XzY0LWFzbV82NC5TICAgICAgICB8IDI0ICsrKystLS0tLQogYXJj aC94ODYvY3J5cHRvL3R3b2Zpc2gteDg2XzY0LWFzbV82NC0zd2F5LlMgICAgICAgfCAgOCArLS0K IGFyY2gveDg2L2NyeXB0by90d29maXNoLXg4Nl82NC1hc21fNjQuUyAgICAgICAgICAgIHwgIDgg Ky0tCiBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDEwICsrLS0KIGFyY2gveDg2L2VudHJ5L2VudHJ5XzY0X2NvbXBhdC5TICAgICAgICAgICAgICAg ICAgIHwgIDQgKy0KIGFyY2gveDg2L2tlcm5lbC9hY3BpL3dha2V1cF82NC5TICAgICAgICAgICAg ICAgICAgIHwgIDggKy0tCiBhcmNoL3g4Ni9rZXJuZWwvZnRyYWNlXzY0LlMgICAgICAgICAgICAg ICAgICAgICAgICB8IDIwICsrKystLS0tCiBhcmNoL3g4Ni9rZXJuZWwvaGVhZF82NC5TICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDEyICsrLS0tCiBhcmNoL3g4Ni9saWIvY2hlY2tzdW1fMzIu UyAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICstLQogYXJjaC94ODYvbGliL2NsZWFyX3Bh Z2VfNjQuUyAgICAgICAgICAgICAgICAgICAgICAgfCAxMiArKy0tLQogYXJjaC94ODYvbGliL2Nt cHhjaGcxNmJfZW11LlMgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogYXJjaC94ODYvbGli L2NtcHhjaGc4Yl9lbXUuUyAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogYXJjaC94ODYv bGliL2NvcHlfcGFnZV82NC5TICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogYXJjaC94 ODYvbGliL2NvcHlfdXNlcl82NC5TICAgICAgICAgICAgICAgICAgICAgICAgfCAxNiArKystLS0K IGFyY2gveDg2L2xpYi9jc3VtLWNvcHlfNjQuUyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQg Ky0KIGFyY2gveDg2L2xpYi9nZXR1c2VyLlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MTYgKysrLS0tCiBhcmNoL3g4Ni9saWIvaHdlaWdodC5TICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA4ICstLQogYXJjaC94ODYvbGliL2lvbWFwX2NvcHlfNjQuUyAgICAgICAgICAgICAg ICAgICAgICAgfCAgNCArLQogYXJjaC94ODYvbGliL21lbWNweV82NC5TICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgNCArLQogYXJjaC94ODYvbGliL21lbW1vdmVfNjQuUyAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgNCArLQogYXJjaC94ODYvbGliL21lbXNldF82NC5TICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgNCArLQogYXJjaC94ODYvbGliL21zci1yZWcuUyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgOCArLS0KIGFyY2gveDg2L2xpYi9wdXR1c2VyLlMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKysrLS0tCiBhcmNoL3g4Ni9saWIvcmV0cG9s aW5lLlMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBhcmNoL3g4Ni9saWIvcndz ZW0uUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI0ICsrKystLS0tLQogYXJjaC94 ODYvbW0vbWVtX2VuY3J5cHRfYm9vdC5TICAgICAgICAgICAgICAgICAgICAgfCAgOCArLS0KIGFy Y2gveDg2L3BsYXRmb3JtL2VmaS9lZmlfc3R1Yl82NC5TICAgICAgICAgICAgICAgIHwgIDQgKy0K IGFyY2gveDg2L3BsYXRmb3JtL2VmaS9lZmlfdGh1bmtfNjQuUyAgICAgICAgICAgICAgIHwgIDQg Ky0KIGFyY2gveDg2L3Bvd2VyL2hpYmVybmF0ZV9hc21fNjQuUyAgICAgICAgICAgICAgICAgIHwg IDggKy0tCiBhcmNoL3g4Ni94ZW4veGVuLWFzbS5TICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDIwICsrKystLS0tCiBhcmNoL3g4Ni94ZW4veGVuLWFzbV82NC5TICAgICAgICAgICAgICAg ICAgICAgICAgICB8IDE2ICsrKy0tLQogaW5jbHVkZS9saW51eC9saW5rYWdlLmggICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgNCArKwogNzggZmlsZXMgY2hhbmdlZCwgMzgxIGluc2VydGlv bnMoKyksIDM3NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9ib290L2NvbXBy ZXNzZWQvZWZpX3RodW5rXzY0LlMgYi9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvZWZpX3RodW5r XzY0LlMKaW5kZXggMzEzMTIwNzBkYjIyLi41OTM5MTM2OTJkMTYgMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L2Jvb3QvY29tcHJlc3NlZC9lZmlfdGh1bmtfNjQuUworKysgYi9hcmNoL3g4Ni9ib290L2Nv bXByZXNzZWQvZWZpX3RodW5rXzY0LlMKQEAgLTIzLDcgKzIzLDcgQEAKIAogCS5jb2RlNjQKIAku dGV4dAotRU5UUlkoZWZpNjRfdGh1bmspCitTWU1fRlVOQ19TVEFSVChlZmk2NF90aHVuaykKIAlw dXNoCSVyYnAKIAlwdXNoCSVyYngKIApAQCAtOTcsNyArOTcsNyBAQCBFTlRSWShlZmk2NF90aHVu aykKIAlwb3AJJXJieAogCXBvcAklcmJwCiAJcmV0Ci1FTkRQUk9DKGVmaTY0X3RodW5rKQorU1lN X0ZVTkNfRU5EKGVmaTY0X3RodW5rKQogCiBTWU1fRlVOQ19TVEFSVF9MT0NBTChlZmlfZXhpdDMy KQogCW1vdnEJZnVuY19ydF9wdHIoJXJpcCksICVyYXgKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2Jv b3QvY29tcHJlc3NlZC9oZWFkXzY0LlMgYi9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvaGVhZF82 NC5TCmluZGV4IGQwNTZjNzg5ZjkwZC4uMTA5ZDJlMDA2NTBiIDEwMDY0NAotLS0gYS9hcmNoL3g4 Ni9ib290L2NvbXByZXNzZWQvaGVhZF82NC5TCisrKyBiL2FyY2gveDg2L2Jvb3QvY29tcHJlc3Nl ZC9oZWFkXzY0LlMKQEAgLTQ1LDcgKzQ1LDcgQEAKIAogCV9fSEVBRAogCS5jb2RlMzIKLUVOVFJZ KHN0YXJ0dXBfMzIpCitTWU1fRlVOQ19TVEFSVChzdGFydHVwXzMyKQogCS8qCiAJICogMzJiaXQg ZW50cnkgaXMgMCBhbmQgaXQgaXMgQUJJIHNvIGltbXV0YWJsZSEKIAkgKiBJZiB3ZSBjb21lIGhl cmUgZGlyZWN0bHkgZnJvbSBhIGJvb3Rsb2FkZXIsCkBAIC0yMjIsMTEgKzIyMiwxMSBAQCBFTlRS WShzdGFydHVwXzMyKQogCiAJLyogSnVtcCBmcm9tIDMyYml0IGNvbXBhdGliaWxpdHkgbW9kZSBp bnRvIDY0Yml0IG1vZGUuICovCiAJbHJldAotRU5EUFJPQyhzdGFydHVwXzMyKQorU1lNX0ZVTkNf RU5EKHN0YXJ0dXBfMzIpCiAKICNpZmRlZiBDT05GSUdfRUZJX01JWEVECiAJLm9yZyAweDE5MAot RU5UUlkoZWZpMzJfc3R1Yl9lbnRyeSkKK1NZTV9GVU5DX1NUQVJUKGVmaTMyX3N0dWJfZW50cnkp CiAJYWRkCSQweDQsICVlc3AJCS8qIERpc2NhcmQgcmV0dXJuIGFkZHJlc3MgKi8KIAlwb3BsCSVl Y3gKIAlwb3BsCSVlZHgKQEAgLTI0NSw3ICsyNDUsNyBAQCBFTlRSWShlZmkzMl9zdHViX2VudHJ5 KQogCW1vdmwJJWVheCwgZWZpX2NvbmZpZyglZWJwKQogCiAJam1wCXN0YXJ0dXBfMzIKLUVORFBS T0MoZWZpMzJfc3R1Yl9lbnRyeSkKK1NZTV9GVU5DX0VORChlZmkzMl9zdHViX2VudHJ5KQogI2Vu ZGlmCiAKIAkuY29kZTY0CkBAIC00MDUsNyArNDA1LDcgQEAgU1lNX0NPREVfRU5EKHN0YXJ0dXBf NjQpCiAjaWZkZWYgQ09ORklHX0VGSV9TVFVCCiAKIC8qIFRoZSBlbnRyeSBwb2ludCBmb3IgdGhl IFBFL0NPRkYgZXhlY3V0YWJsZSBpcyBlZmlfcGVfZW50cnkuICovCi1FTlRSWShlZmlfcGVfZW50 cnkpCitTWU1fRlVOQ19TVEFSVChlZmlfcGVfZW50cnkpCiAJbW92cQklcmN4LCBlZmk2NF9jb25m aWcoJXJpcCkJLyogSGFuZGxlICovCiAJbW92cQklcmR4LCBlZmk2NF9jb25maWcrOCglcmlwKSAv KiBFRkkgU3lzdGVtIHRhYmxlIHBvaW50ZXIgKi8KIApAQCAtNDU0LDEwICs0NTQsMTAgQEAgZmFp bDoKIAltb3ZsCUJQX2NvZGUzMl9zdGFydCglZXNpKSwgJWVheAogCWxlYXEJc3RhcnR1cF82NCgl cmF4KSwgJXJheAogCWptcAkqJXJheAotRU5EUFJPQyhlZmlfcGVfZW50cnkpCitTWU1fRlVOQ19F TkQoZWZpX3BlX2VudHJ5KQogCiAJLm9yZyAweDM5MAotRU5UUlkoZWZpNjRfc3R1Yl9lbnRyeSkK K1NZTV9GVU5DX1NUQVJUKGVmaTY0X3N0dWJfZW50cnkpCiAJbW92cQklcmRpLCBlZmk2NF9jb25m aWcoJXJpcCkJLyogSGFuZGxlICovCiAJbW92cQklcnNpLCBlZmk2NF9jb25maWcrOCglcmlwKSAv KiBFRkkgU3lzdGVtIHRhYmxlIHBvaW50ZXIgKi8KIApAQCAtNDY2LDcgKzQ2Niw3IEBAIEVOVFJZ KGVmaTY0X3N0dWJfZW50cnkpCiAKIAltb3ZxCSVyZHgsICVyc2kKIAlqbXAJaGFuZG92ZXJfZW50 cnkKLUVORFBST0MoZWZpNjRfc3R1Yl9lbnRyeSkKK1NZTV9GVU5DX0VORChlZmk2NF9zdHViX2Vu dHJ5KQogI2VuZGlmCiAKIAkudGV4dApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvYm9vdC9jb21wcmVz c2VkL21lbV9lbmNyeXB0LlMgYi9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvbWVtX2VuY3J5cHQu UwppbmRleCBmYWJlZDI4ZDJlZGQuLmViZjgyZTFmOTMwMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYv Ym9vdC9jb21wcmVzc2VkL21lbV9lbmNyeXB0LlMKKysrIGIvYXJjaC94ODYvYm9vdC9jb21wcmVz c2VkL21lbV9lbmNyeXB0LlMKQEAgLTE4LDcgKzE4LDcgQEAKIAogCS50ZXh0CiAJLmNvZGUzMgot RU5UUlkoZ2V0X3Nldl9lbmNyeXB0aW9uX2JpdCkKK1NZTV9GVU5DX1NUQVJUKGdldF9zZXZfZW5j cnlwdGlvbl9iaXQpCiAJeG9yCSVlYXgsICVlYXgKIAogI2lmZGVmIENPTkZJR19BTURfTUVNX0VO Q1JZUFQKQEAgLTg1LDEwICs4NSwxMCBAQCBFTlRSWShnZXRfc2V2X2VuY3J5cHRpb25fYml0KQog I2VuZGlmCS8qIENPTkZJR19BTURfTUVNX0VOQ1JZUFQgKi8KIAogCXJldAotRU5EUFJPQyhnZXRf c2V2X2VuY3J5cHRpb25fYml0KQorU1lNX0ZVTkNfRU5EKGdldF9zZXZfZW5jcnlwdGlvbl9iaXQp CiAKIAkuY29kZTY0Ci1FTlRSWShzZXRfc2V2X2VuY3J5cHRpb25fbWFzaykKK1NZTV9GVU5DX1NU QVJUKHNldF9zZXZfZW5jcnlwdGlvbl9tYXNrKQogI2lmZGVmIENPTkZJR19BTURfTUVNX0VOQ1JZ UFQKIAlwdXNoCSVyYnAKIAlwdXNoCSVyZHgKQEAgLTExMCw3ICsxMTAsNyBAQCBFTlRSWShzZXRf c2V2X2VuY3J5cHRpb25fbWFzaykKIAogCXhvcgklcmF4LCAlcmF4CiAJcmV0Ci1FTkRQUk9DKHNl dF9zZXZfZW5jcnlwdGlvbl9tYXNrKQorU1lNX0ZVTkNfRU5EKHNldF9zZXZfZW5jcnlwdGlvbl9t YXNrKQogCiAJLmRhdGEKIFNZTV9EQVRBX0xPQ0FMKGVuY19iaXQsIC5pbnQgMHhmZmZmZmZmZikK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9hZXMtaTU4Ni1hc21fMzIuUyBiL2FyY2gveDg2 L2NyeXB0by9hZXMtaTU4Ni1hc21fMzIuUwppbmRleCAyODQ5ZGJjNTllMTEuLjViMjYzNmM1ODUy NyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL2Flcy1pNTg2LWFzbV8zMi5TCisrKyBiL2Fy Y2gveDg2L2NyeXB0by9hZXMtaTU4Ni1hc21fMzIuUwpAQCAtMjIzLDcgKzIyMyw3IEBACiAuZXh0 ZXJuICBjcnlwdG9fZnRfdGFiCiAuZXh0ZXJuICBjcnlwdG9fZmxfdGFiCiAKLUVOVFJZKGFlc19l bmNfYmxrKQorU1lNX0ZVTkNfU1RBUlQoYWVzX2VuY19ibGspCiAJcHVzaCAgICAlZWJwCiAJbW92 ICAgICBjdHgoJWVzcCksJWVicAogCkBAIC0yODcsNyArMjg3LDcgQEAgRU5UUlkoYWVzX2VuY19i bGspCiAJbW92ICAgICAlcjAsKCVlYnApCiAJcG9wICAgICAlZWJwCiAJcmV0Ci1FTkRQUk9DKGFl c19lbmNfYmxrKQorU1lNX0ZVTkNfRU5EKGFlc19lbmNfYmxrKQogCiAvLyBBRVMgKFJpam5kYWVs KSBEZWNyeXB0aW9uIFN1YnJvdXRpbmUKIC8qIHZvaWQgYWVzX2RlY19ibGsoc3RydWN0IGNyeXB0 b19hZXNfY3R4ICpjdHgsIHU4ICpvdXRfYmxrLCBjb25zdCB1OCAqaW5fYmxrKSAqLwpAQCAtMjk1 LDcgKzI5NSw3IEBAIEVORFBST0MoYWVzX2VuY19ibGspCiAuZXh0ZXJuICBjcnlwdG9faXRfdGFi CiAuZXh0ZXJuICBjcnlwdG9faWxfdGFiCiAKLUVOVFJZKGFlc19kZWNfYmxrKQorU1lNX0ZVTkNf U1RBUlQoYWVzX2RlY19ibGspCiAJcHVzaCAgICAlZWJwCiAJbW92ICAgICBjdHgoJWVzcCksJWVi cAogCkBAIC0zNTksNCArMzU5LDQgQEAgRU5UUlkoYWVzX2RlY19ibGspCiAJbW92ICAgICAlcjAs KCVlYnApCiAJcG9wICAgICAlZWJwCiAJcmV0Ci1FTkRQUk9DKGFlc19kZWNfYmxrKQorU1lNX0ZV TkNfRU5EKGFlc19kZWNfYmxrKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRvL2Flcy14ODZf NjQtYXNtXzY0LlMgYi9hcmNoL3g4Ni9jcnlwdG8vYWVzLXg4Nl82NC1hc21fNjQuUwppbmRleCA4 NzM5Y2Y3Nzk1ZGUuLjIyYzQ0YWQzZWY0MiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL2Fl cy14ODZfNjQtYXNtXzY0LlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL2Flcy14ODZfNjQtYXNtXzY0 LlMKQEAgLTQ5LDcgKzQ5LDcgQEAKICNkZWZpbmUgUjExCSVyMTEKIAogI2RlZmluZSBwcm9sb2d1 ZShGVU5DLEtFWSxCMTI4LEIxOTIscjEscjIscjUscjYscjcscjgscjkscjEwLHIxMSkgXAotCUVO VFJZKEZVTkMpOwkJCVwKKwlTWU1fRlVOQ19TVEFSVChGVU5DKTsJCVwKIAltb3ZxCXIxLHIyOwkJ CVwKIAlsZWFxCUtFWSs0OChyOCkscjk7CQlcCiAJbW92cQlyMTAscjExOwkJXApAQCAtNzUsNyAr NzUsNyBAQAogCW1vdmwJcjcgIyMgRSw4KHI5KTsJCVwKIAltb3ZsCXI4ICMjIEUsMTIocjkpOwkJ XAogCXJldDsJCQkJXAotCUVORFBST0MoRlVOQyk7CisJU1lNX0ZVTkNfRU5EKEZVTkMpOwogCiAj ZGVmaW5lIHJvdW5kKFRBQixPRkZTRVQscjEscjIscjMscjQscjUscjYscjcscjgscmEscmIscmMs cmQpIFwKIAltb3Z6YmwJcjIgIyMgSCxyNSAjIyBFOwlcCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9j cnlwdG8vYWVzX2N0cmJ5OF9hdngteDg2XzY0LlMgYi9hcmNoL3g4Ni9jcnlwdG8vYWVzX2N0cmJ5 OF9hdngteDg2XzY0LlMKaW5kZXggNWY2YTVhZjljNDg5Li5lYzQzN2RiMWZhNTQgMTAwNjQ0Ci0t LSBhL2FyY2gveDg2L2NyeXB0by9hZXNfY3RyYnk4X2F2eC14ODZfNjQuUworKysgYi9hcmNoL3g4 Ni9jcnlwdG8vYWVzX2N0cmJ5OF9hdngteDg2XzY0LlMKQEAgLTU0NCwxMSArNTQ0LDExIEBAIGRk cV9hZGRfODoKICAqIGFlc19jdHJfZW5jXzEyOF9hdnhfYnk4KHZvaWQgKmluLCB2b2lkICppdiwg dm9pZCAqa2V5cywgdm9pZCAqb3V0LAogICoJCQl1bnNpZ25lZCBpbnQgbnVtX2J5dGVzKQogICov Ci1FTlRSWShhZXNfY3RyX2VuY18xMjhfYXZ4X2J5OCkKK1NZTV9GVU5DX1NUQVJUKGFlc19jdHJf ZW5jXzEyOF9hdnhfYnk4KQogCS8qIGNhbGwgdGhlIGFlcyBtYWluIGxvb3AgKi8KIAlkb19hZXNf Y3RybWFpbiBLRVlfMTI4CiAKLUVORFBST0MoYWVzX2N0cl9lbmNfMTI4X2F2eF9ieTgpCitTWU1f RlVOQ19FTkQoYWVzX2N0cl9lbmNfMTI4X2F2eF9ieTgpCiAKIC8qCiAgKiByb3V0aW5lIHRvIGRv IEFFUzE5MiBDVFIgZW5jL2RlY3J5cHQgImJ5OCIKQEAgLTU1NywxMSArNTU3LDExIEBAIEVORFBS T0MoYWVzX2N0cl9lbmNfMTI4X2F2eF9ieTgpCiAgKiBhZXNfY3RyX2VuY18xOTJfYXZ4X2J5OCh2 b2lkICppbiwgdm9pZCAqaXYsIHZvaWQgKmtleXMsIHZvaWQgKm91dCwKICAqCQkJdW5zaWduZWQg aW50IG51bV9ieXRlcykKICAqLwotRU5UUlkoYWVzX2N0cl9lbmNfMTkyX2F2eF9ieTgpCitTWU1f RlVOQ19TVEFSVChhZXNfY3RyX2VuY18xOTJfYXZ4X2J5OCkKIAkvKiBjYWxsIHRoZSBhZXMgbWFp biBsb29wICovCiAJZG9fYWVzX2N0cm1haW4gS0VZXzE5MgogCi1FTkRQUk9DKGFlc19jdHJfZW5j XzE5Ml9hdnhfYnk4KQorU1lNX0ZVTkNfRU5EKGFlc19jdHJfZW5jXzE5Ml9hdnhfYnk4KQogCiAv KgogICogcm91dGluZSB0byBkbyBBRVMyNTYgQ1RSIGVuYy9kZWNyeXB0ICJieTgiCkBAIC01NzAs OCArNTcwLDggQEAgRU5EUFJPQyhhZXNfY3RyX2VuY18xOTJfYXZ4X2J5OCkKICAqIGFlc19jdHJf ZW5jXzI1Nl9hdnhfYnk4KHZvaWQgKmluLCB2b2lkICppdiwgdm9pZCAqa2V5cywgdm9pZCAqb3V0 LAogICoJCQl1bnNpZ25lZCBpbnQgbnVtX2J5dGVzKQogICovCi1FTlRSWShhZXNfY3RyX2VuY18y NTZfYXZ4X2J5OCkKK1NZTV9GVU5DX1NUQVJUKGFlc19jdHJfZW5jXzI1Nl9hdnhfYnk4KQogCS8q IGNhbGwgdGhlIGFlcyBtYWluIGxvb3AgKi8KIAlkb19hZXNfY3RybWFpbiBLRVlfMjU2CiAKLUVO RFBST0MoYWVzX2N0cl9lbmNfMjU2X2F2eF9ieTgpCitTWU1fRlVOQ19FTkQoYWVzX2N0cl9lbmNf MjU2X2F2eF9ieTgpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlwdG8vYWVzbmktaW50ZWxfYXNt LlMgYi9hcmNoL3g4Ni9jcnlwdG8vYWVzbmktaW50ZWxfYXNtLlMKaW5kZXggYzg1ZWNiMTYzYzc4 Li44YTBiMTU0ZDNhOWYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9hZXNuaS1pbnRlbF9h c20uUworKysgYi9hcmNoL3g4Ni9jcnlwdG8vYWVzbmktaW50ZWxfYXNtLlMKQEAgLTE1OTYsNyAr MTU5Niw3IEBAIF9lc2JfbG9vcF9cQDoKICogcG9seSA9IHheMTI4ICsgeF4xMjcgKyB4XjEyNiAr IHheMTIxICsgMQogKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1FTlRSWShhZXNuaV9nY21fZGVj KQorU1lNX0ZVTkNfU1RBUlQoYWVzbmlfZ2NtX2RlYykKIAlGVU5DX1NBVkUKIAogCUdDTV9JTklU ICVhcmc2LCBhcmc3LCBhcmc4LCBhcmc5CkBAIC0xNjA0LDcgKzE2MDQsNyBAQCBFTlRSWShhZXNu aV9nY21fZGVjKQogCUdDTV9DT01QTEVURSBhcmcxMCwgYXJnMTEKIAlGVU5DX1JFU1RPUkUKIAly ZXQKLUVORFBST0MoYWVzbmlfZ2NtX2RlYykKK1NZTV9GVU5DX0VORChhZXNuaV9nY21fZGVjKQog CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTY4NCw3ICsxNjg0LDcgQEAgRU5EUFJPQyhh ZXNuaV9nY21fZGVjKQogKgogKiBwb2x5ID0geF4xMjggKyB4XjEyNyArIHheMTI2ICsgeF4xMjEg KyAxCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovCi1FTlRSWShhZXNuaV9nY21fZW5jKQorU1lNX0ZVTkNf U1RBUlQoYWVzbmlfZ2NtX2VuYykKIAlGVU5DX1NBVkUKIAogCUdDTV9JTklUICVhcmc2LCBhcmc3 LCBhcmc4LCBhcmc5CkBAIC0xNjkzLDcgKzE2OTMsNyBAQCBFTlRSWShhZXNuaV9nY21fZW5jKQog CUdDTV9DT01QTEVURSBhcmcxMCwgYXJnMTEKIAlGVU5DX1JFU1RPUkUKIAlyZXQKLUVORFBST0Mo YWVzbmlfZ2NtX2VuYykKK1NZTV9GVU5DX0VORChhZXNuaV9nY21fZW5jKQogCiAvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKICogdm9pZCBhZXNuaV9nY21faW5pdCh2b2lkICphZXNfY3R4LCAgICAgIC8v IEFFUyBLZXkgc2NoZWR1bGUuIFN0YXJ0cyBvbiBhIDE2IGJ5dGUgYm91bmRhcnkuCkBAIC0xNzA2 LDEyICsxNzA2LDEyIEBAIEVORFBST0MoYWVzbmlfZ2NtX2VuYykKICogICAgICAgICAgICAgICAg ICAgICBjb25zdCB1OCAqYWFkLCAgICAgIC8vIEFkZGl0aW9uYWwgQXV0aGVudGljYXRpb24gRGF0 YSAoQUFEKQogKiAgICAgICAgICAgICAgICAgICAgIHU2NCBhYWRfbGVuKSAgICAgICAgLy8gTGVu Z3RoIG9mIEFBRCBpbiBieXRlcy4KICovCi1FTlRSWShhZXNuaV9nY21faW5pdCkKK1NZTV9GVU5D X1NUQVJUKGFlc25pX2djbV9pbml0KQogCUZVTkNfU0FWRQogCUdDTV9JTklUICVhcmczLCAlYXJn NCwlYXJnNSwgJWFyZzYKIAlGVU5DX1JFU1RPUkUKIAlyZXQKLUVORFBST0MoYWVzbmlfZ2NtX2lu aXQpCitTWU1fRlVOQ19FTkQoYWVzbmlfZ2NtX2luaXQpCiAKIC8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgogKiB2b2lkIGFlc25pX2djbV9lbmNfdXBkYXRlKHZvaWQgKmFlc19jdHgsICAgICAgLy8gQUVT IEtleSBzY2hlZHVsZS4gU3RhcnRzIG9uIGEgMTYgYnl0ZSBib3VuZGFyeS4KQEAgLTE3MjEsMTIg KzE3MjEsMTIgQEAgRU5EUFJPQyhhZXNuaV9nY21faW5pdCkKICogICAgICAgICAgICAgICAgICAg IGNvbnN0IHU4ICppbiwgICAgICAgLy8gUGxhaW50ZXh0IGlucHV0CiAqICAgICAgICAgICAgICAg ICAgICB1NjQgcGxhaW50ZXh0X2xlbiwgIC8vIExlbmd0aCBvZiBkYXRhIGluIGJ5dGVzIGZvciBl bmNyeXB0aW9uLgogKi8KLUVOVFJZKGFlc25pX2djbV9lbmNfdXBkYXRlKQorU1lNX0ZVTkNfU1RB UlQoYWVzbmlfZ2NtX2VuY191cGRhdGUpCiAJRlVOQ19TQVZFCiAJR0NNX0VOQ19ERUMgZW5jCiAJ RlVOQ19SRVNUT1JFCiAJcmV0Ci1FTkRQUk9DKGFlc25pX2djbV9lbmNfdXBkYXRlKQorU1lNX0ZV TkNfRU5EKGFlc25pX2djbV9lbmNfdXBkYXRlKQogCiAvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICog dm9pZCBhZXNuaV9nY21fZGVjX3VwZGF0ZSh2b2lkICphZXNfY3R4LCAgICAgIC8vIEFFUyBLZXkg c2NoZWR1bGUuIFN0YXJ0cyBvbiBhIDE2IGJ5dGUgYm91bmRhcnkuCkBAIC0xNzM2LDEyICsxNzM2 LDEyIEBAIEVORFBST0MoYWVzbmlfZ2NtX2VuY191cGRhdGUpCiAqICAgICAgICAgICAgICAgICAg ICBjb25zdCB1OCAqaW4sICAgICAgIC8vIFBsYWludGV4dCBpbnB1dAogKiAgICAgICAgICAgICAg ICAgICAgdTY0IHBsYWludGV4dF9sZW4sICAvLyBMZW5ndGggb2YgZGF0YSBpbiBieXRlcyBmb3Ig ZW5jcnlwdGlvbi4KICovCi1FTlRSWShhZXNuaV9nY21fZGVjX3VwZGF0ZSkKK1NZTV9GVU5DX1NU QVJUKGFlc25pX2djbV9kZWNfdXBkYXRlKQogCUZVTkNfU0FWRQogCUdDTV9FTkNfREVDIGRlYwog CUZVTkNfUkVTVE9SRQogCXJldAotRU5EUFJPQyhhZXNuaV9nY21fZGVjX3VwZGF0ZSkKK1NZTV9G VU5DX0VORChhZXNuaV9nY21fZGVjX3VwZGF0ZSkKIAogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAq IHZvaWQgYWVzbmlfZ2NtX2ZpbmFsaXplKHZvaWQgKmFlc19jdHgsICAgICAgLy8gQUVTIEtleSBz Y2hlZHVsZS4gU3RhcnRzIG9uIGEgMTYgYnl0ZSBib3VuZGFyeS4KQEAgLTE3NTEsMTIgKzE3NTEs MTIgQEAgRU5EUFJPQyhhZXNuaV9nY21fZGVjX3VwZGF0ZSkKICogICAgICAgICAgICAgICAgICAg IHU2NCBhdXRoX3RhZ19sZW4pOyAgLy8gQXV0aGVudGljYXRlZCBUYWcgTGVuZ3RoIGluIGJ5dGVz LiBWYWxpZCB2YWx1ZXMgYXJlIDE2IChtb3N0IGxpa2VseSksCiAqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIDEyIG9yIDguCiAqLwotRU5UUlkoYWVzbmlfZ2NtX2Zp bmFsaXplKQorU1lNX0ZVTkNfU1RBUlQoYWVzbmlfZ2NtX2ZpbmFsaXplKQogCUZVTkNfU0FWRQog CUdDTV9DT01QTEVURSAlYXJnMyAlYXJnNAogCUZVTkNfUkVTVE9SRQogCXJldAotRU5EUFJPQyhh ZXNuaV9nY21fZmluYWxpemUpCitTWU1fRlVOQ19FTkQoYWVzbmlfZ2NtX2ZpbmFsaXplKQogCiAj ZW5kaWYKIApAQCAtMTgzNCw3ICsxODM0LDcgQEAgU1lNX0ZVTkNfRU5EKF9rZXlfZXhwYW5zaW9u XzI1NmIpCiAgKiBpbnQgYWVzbmlfc2V0X2tleShzdHJ1Y3QgY3J5cHRvX2Flc19jdHggKmN0eCwg Y29uc3QgdTggKmluX2tleSwKICAqICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBrZXlf bGVuKQogICovCi1FTlRSWShhZXNuaV9zZXRfa2V5KQorU1lNX0ZVTkNfU1RBUlQoYWVzbmlfc2V0 X2tleSkKIAlGUkFNRV9CRUdJTgogI2lmbmRlZiBfX3g4Nl82NF9fCiAJcHVzaGwgS0VZUApAQCAt MTk0MywxMiArMTk0MywxMiBAQCBFTlRSWShhZXNuaV9zZXRfa2V5KQogI2VuZGlmCiAJRlJBTUVf RU5ECiAJcmV0Ci1FTkRQUk9DKGFlc25pX3NldF9rZXkpCitTWU1fRlVOQ19FTkQoYWVzbmlfc2V0 X2tleSkKIAogLyoKICAqIHZvaWQgYWVzbmlfZW5jKHN0cnVjdCBjcnlwdG9fYWVzX2N0eCAqY3R4 LCB1OCAqZHN0LCBjb25zdCB1OCAqc3JjKQogICovCi1FTlRSWShhZXNuaV9lbmMpCitTWU1fRlVO Q19TVEFSVChhZXNuaV9lbmMpCiAJRlJBTUVfQkVHSU4KICNpZm5kZWYgX194ODZfNjRfXwogCXB1 c2hsIEtFWVAKQEAgLTE5NjcsNyArMTk2Nyw3IEBAIEVOVFJZKGFlc25pX2VuYykKICNlbmRpZgog CUZSQU1FX0VORAogCXJldAotRU5EUFJPQyhhZXNuaV9lbmMpCitTWU1fRlVOQ19FTkQoYWVzbmlf ZW5jKQogCiAvKgogICogX2Flc25pX2VuYzE6CQlpbnRlcm5hbCBBQkkKQEAgLTIxMzcsNyArMjEz Nyw3IEBAIFNZTV9GVU5DX0VORChfYWVzbmlfZW5jNCkKIC8qCiAgKiB2b2lkIGFlc25pX2RlYyAo c3RydWN0IGNyeXB0b19hZXNfY3R4ICpjdHgsIHU4ICpkc3QsIGNvbnN0IHU4ICpzcmMpCiAgKi8K LUVOVFJZKGFlc25pX2RlYykKK1NZTV9GVU5DX1NUQVJUKGFlc25pX2RlYykKIAlGUkFNRV9CRUdJ TgogI2lmbmRlZiBfX3g4Nl82NF9fCiAJcHVzaGwgS0VZUApAQCAtMjE1Nyw3ICsyMTU3LDcgQEAg RU5UUlkoYWVzbmlfZGVjKQogI2VuZGlmCiAJRlJBTUVfRU5ECiAJcmV0Ci1FTkRQUk9DKGFlc25p X2RlYykKK1NZTV9GVU5DX0VORChhZXNuaV9kZWMpCiAKIC8qCiAgKiBfYWVzbmlfZGVjMToJCWlu dGVybmFsIEFCSQpAQCAtMjMyOCw3ICsyMzI4LDcgQEAgU1lNX0ZVTkNfRU5EKF9hZXNuaV9kZWM0 KQogICogdm9pZCBhZXNuaV9lY2JfZW5jKHN0cnVjdCBjcnlwdG9fYWVzX2N0eCAqY3R4LCBjb25z dCB1OCAqZHN0LCB1OCAqc3JjLAogICoJCSAgICAgIHNpemVfdCBsZW4pCiAgKi8KLUVOVFJZKGFl c25pX2VjYl9lbmMpCitTWU1fRlVOQ19TVEFSVChhZXNuaV9lY2JfZW5jKQogCUZSQU1FX0JFR0lO CiAjaWZuZGVmIF9feDg2XzY0X18KIAlwdXNobCBMRU4KQEAgLTIzODIsMTMgKzIzODIsMTMgQEAg RU5UUlkoYWVzbmlfZWNiX2VuYykKICNlbmRpZgogCUZSQU1FX0VORAogCXJldAotRU5EUFJPQyhh ZXNuaV9lY2JfZW5jKQorU1lNX0ZVTkNfRU5EKGFlc25pX2VjYl9lbmMpCiAKIC8qCiAgKiB2b2lk IGFlc25pX2VjYl9kZWMoc3RydWN0IGNyeXB0b19hZXNfY3R4ICpjdHgsIGNvbnN0IHU4ICpkc3Qs IHU4ICpzcmMsCiAgKgkJICAgICAgc2l6ZV90IGxlbik7CiAgKi8KLUVOVFJZKGFlc25pX2VjYl9k ZWMpCitTWU1fRlVOQ19TVEFSVChhZXNuaV9lY2JfZGVjKQogCUZSQU1FX0JFR0lOCiAjaWZuZGVm IF9feDg2XzY0X18KIAlwdXNobCBMRU4KQEAgLTI0NDMsMTMgKzI0NDMsMTMgQEAgRU5UUlkoYWVz bmlfZWNiX2RlYykKICNlbmRpZgogCUZSQU1FX0VORAogCXJldAotRU5EUFJPQyhhZXNuaV9lY2Jf ZGVjKQorU1lNX0ZVTkNfRU5EKGFlc25pX2VjYl9kZWMpCiAKIC8qCiAgKiB2b2lkIGFlc25pX2Ni Y19lbmMoc3RydWN0IGNyeXB0b19hZXNfY3R4ICpjdHgsIGNvbnN0IHU4ICpkc3QsIHU4ICpzcmMs CiAgKgkJICAgICAgc2l6ZV90IGxlbiwgdTggKml2KQogICovCi1FTlRSWShhZXNuaV9jYmNfZW5j KQorU1lNX0ZVTkNfU1RBUlQoYWVzbmlfY2JjX2VuYykKIAlGUkFNRV9CRUdJTgogI2lmbmRlZiBf X3g4Nl82NF9fCiAJcHVzaGwgSVZQCkBAIC0yNDg3LDEzICsyNDg3LDEzIEBAIEVOVFJZKGFlc25p X2NiY19lbmMpCiAjZW5kaWYKIAlGUkFNRV9FTkQKIAlyZXQKLUVORFBST0MoYWVzbmlfY2JjX2Vu YykKK1NZTV9GVU5DX0VORChhZXNuaV9jYmNfZW5jKQogCiAvKgogICogdm9pZCBhZXNuaV9jYmNf ZGVjKHN0cnVjdCBjcnlwdG9fYWVzX2N0eCAqY3R4LCBjb25zdCB1OCAqZHN0LCB1OCAqc3JjLAog ICoJCSAgICAgIHNpemVfdCBsZW4sIHU4ICppdikKICAqLwotRU5UUlkoYWVzbmlfY2JjX2RlYykK K1NZTV9GVU5DX1NUQVJUKGFlc25pX2NiY19kZWMpCiAJRlJBTUVfQkVHSU4KICNpZm5kZWYgX194 ODZfNjRfXwogCXB1c2hsIElWUApAQCAtMjU4MCw3ICsyNTgwLDcgQEAgRU5UUlkoYWVzbmlfY2Jj X2RlYykKICNlbmRpZgogCUZSQU1FX0VORAogCXJldAotRU5EUFJPQyhhZXNuaV9jYmNfZGVjKQor U1lNX0ZVTkNfRU5EKGFlc25pX2NiY19kZWMpCiAKICNpZmRlZiBfX3g4Nl82NF9fCiAucHVzaHNl Y3Rpb24gLnJvZGF0YQpAQCAtMjY0Miw3ICsyNjQyLDcgQEAgU1lNX0ZVTkNfRU5EKF9hZXNuaV9p bmMpCiAgKiB2b2lkIGFlc25pX2N0cl9lbmMoc3RydWN0IGNyeXB0b19hZXNfY3R4ICpjdHgsIGNv bnN0IHU4ICpkc3QsIHU4ICpzcmMsCiAgKgkJICAgICAgc2l6ZV90IGxlbiwgdTggKml2KQogICov Ci1FTlRSWShhZXNuaV9jdHJfZW5jKQorU1lNX0ZVTkNfU1RBUlQoYWVzbmlfY3RyX2VuYykKIAlG UkFNRV9CRUdJTgogCWNtcCAkMTYsIExFTgogCWpiIC5MY3RyX2VuY19qdXN0X3JldApAQCAtMjY5 OSw3ICsyNjk5LDcgQEAgRU5UUlkoYWVzbmlfY3RyX2VuYykKIC5MY3RyX2VuY19qdXN0X3JldDoK IAlGUkFNRV9FTkQKIAlyZXQKLUVORFBST0MoYWVzbmlfY3RyX2VuYykKK1NZTV9GVU5DX0VORChh ZXNuaV9jdHJfZW5jKQogCiAvKgogICogX2Flc25pX2dmMTI4bXVsX3hfYmxlOgkJaW50ZXJuYWwg QUJJCkBAIC0yNzIzLDcgKzI3MjMsNyBAQCBFTkRQUk9DKGFlc25pX2N0cl9lbmMpCiAgKiB2b2lk IGFlc25pX3h0c19jcnlwdDgoc3RydWN0IGNyeXB0b19hZXNfY3R4ICpjdHgsIGNvbnN0IHU4ICpk c3QsIHU4ICpzcmMsCiAgKgkJCSBib29sIGVuYywgdTggKml2KQogICovCi1FTlRSWShhZXNuaV94 dHNfY3J5cHQ4KQorU1lNX0ZVTkNfU1RBUlQoYWVzbmlfeHRzX2NyeXB0OCkKIAlGUkFNRV9CRUdJ TgogCWNtcGIgJDAsICVjbAogCW1vdmwgJDAsICVlY3gKQEAgLTI4MjcsNiArMjgyNyw2IEBAIEVO VFJZKGFlc25pX3h0c19jcnlwdDgpCiAKIAlGUkFNRV9FTkQKIAlyZXQKLUVORFBST0MoYWVzbmlf eHRzX2NyeXB0OCkKK1NZTV9GVU5DX0VORChhZXNuaV94dHNfY3J5cHQ4KQogCiAjZW5kaWYKZGlm ZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9hZXNuaS1pbnRlbF9hdngteDg2XzY0LlMgYi9hcmNo L3g4Ni9jcnlwdG8vYWVzbmktaW50ZWxfYXZ4LXg4Nl82NC5TCmluZGV4IGZhZWNiMTUxOGJmOC4u ZWUwNTY2OTRlNTRkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vYWVzbmktaW50ZWxfYXZ4 LXg4Nl82NC5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9hZXNuaS1pbnRlbF9hdngteDg2XzY0LlMK QEAgLTE1MzEsNyArMTUzMSw3IEBAIF9yZXR1cm5fVF9kb25lXEA6CiAjICAgICAgICAoZ2NtX2Rh dGEgICAgICpteV9jdHhfZGF0YSwKICMgICAgICAgIHU4ICAgICAqaGFzaF9zdWJrZXkpIyAvKiBI LCB0aGUgSGFzaCBzdWIga2V5IGlucHV0LiBEYXRhIHN0YXJ0cyBvbiBhIDE2LWJ5dGUgYm91bmRh cnkuICovCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCi1FTlRSWShhZXNuaV9nY21fcHJlY29tcF9hdnhfZ2VuMikKK1NZTV9GVU5D X1NUQVJUKGFlc25pX2djbV9wcmVjb21wX2F2eF9nZW4yKQogICAgICAgICAjdGhlIG51bWJlciBv ZiBwdXNoZXMgbXVzdCBlcXVhbCBTVEFDS19PRkZTRVQKICAgICAgICAgcHVzaCAgICAlcjEyCiAg ICAgICAgIHB1c2ggICAgJXIxMwpAQCAtMTU3NCw3ICsxNTc0LDcgQEAgRU5UUlkoYWVzbmlfZ2Nt X3ByZWNvbXBfYXZ4X2dlbjIpCiAgICAgICAgIHBvcCAgICAgJXIxMwogICAgICAgICBwb3AgICAg ICVyMTIKICAgICAgICAgcmV0Ci1FTkRQUk9DKGFlc25pX2djbV9wcmVjb21wX2F2eF9nZW4yKQor U1lNX0ZVTkNfRU5EKGFlc25pX2djbV9wcmVjb21wX2F2eF9nZW4yKQogCiAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCiAjdm9pZCAgIGFlc25pX2djbV9lbmNfYXZ4X2dlbjIoCkBAIC0xNTkyLDEwICsx NTkyLDEwIEBAIEVORFBST0MoYWVzbmlfZ2NtX3ByZWNvbXBfYXZ4X2dlbjIpCiAjICAgICAgICB1 NjQgICAgIGF1dGhfdGFnX2xlbikjIC8qIEF1dGhlbnRpY2F0ZWQgVGFnIExlbmd0aCBpbiBieXRl cy4KICMJCQkJVmFsaWQgdmFsdWVzIGFyZSAxNiAobW9zdCBsaWtlbHkpLCAxMiBvciA4LiAqLwog IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotRU5UUlkoYWVzbmlfZ2NtX2VuY19hdnhfZ2VuMikKK1NZ TV9GVU5DX1NUQVJUKGFlc25pX2djbV9lbmNfYXZ4X2dlbjIpCiAgICAgICAgIEdDTV9FTkNfREVD X0FWWCAgICAgRU5DCiAJcmV0Ci1FTkRQUk9DKGFlc25pX2djbV9lbmNfYXZ4X2dlbjIpCitTWU1f RlVOQ19FTkQoYWVzbmlfZ2NtX2VuY19hdnhfZ2VuMikKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IwogI3ZvaWQgICBhZXNuaV9nY21fZGVjX2F2eF9nZW4yKApAQCAtMTYxMywxMCArMTYxMywxMCBA QCBFTkRQUk9DKGFlc25pX2djbV9lbmNfYXZ4X2dlbjIpCiAjICAgICAgICB1NjQgICAgIGF1dGhf dGFnX2xlbikjIC8qIEF1dGhlbnRpY2F0ZWQgVGFnIExlbmd0aCBpbiBieXRlcy4KICMJCQkJVmFs aWQgdmFsdWVzIGFyZSAxNiAobW9zdCBsaWtlbHkpLCAxMiBvciA4LiAqLwogIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwotRU5UUlkoYWVzbmlfZ2NtX2RlY19hdnhfZ2VuMikKK1NZTV9GVU5DX1NUQVJU KGFlc25pX2djbV9kZWNfYXZ4X2dlbjIpCiAgICAgICAgIEdDTV9FTkNfREVDX0FWWCAgICAgREVD CiAJcmV0Ci1FTkRQUk9DKGFlc25pX2djbV9kZWNfYXZ4X2dlbjIpCitTWU1fRlVOQ19FTkQoYWVz bmlfZ2NtX2RlY19hdnhfZ2VuMikKICNlbmRpZiAvKiBDT05GSUdfQVNfQVZYICovCiAKICNpZmRl ZiBDT05GSUdfQVNfQVZYMgpAQCAtMjg1NSw3ICsyODU1LDcgQEAgX3JldHVybl9UX2RvbmVcQDoK ICMgICAgICAgIHU4ICAgICAqaGFzaF9zdWJrZXkpIyAvKiBILCB0aGUgSGFzaCBzdWIga2V5IGlu cHV0LgogIwkJCQlEYXRhIHN0YXJ0cyBvbiBhIDE2LWJ5dGUgYm91bmRhcnkuICovCiAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1F TlRSWShhZXNuaV9nY21fcHJlY29tcF9hdnhfZ2VuNCkKK1NZTV9GVU5DX1NUQVJUKGFlc25pX2dj bV9wcmVjb21wX2F2eF9nZW40KQogICAgICAgICAjdGhlIG51bWJlciBvZiBwdXNoZXMgbXVzdCBl cXVhbCBTVEFDS19PRkZTRVQKICAgICAgICAgcHVzaCAgICAlcjEyCiAgICAgICAgIHB1c2ggICAg JXIxMwpAQCAtMjg5OCw3ICsyODk4LDcgQEAgRU5UUlkoYWVzbmlfZ2NtX3ByZWNvbXBfYXZ4X2dl bjQpCiAgICAgICAgIHBvcCAgICAgJXIxMwogICAgICAgICBwb3AgICAgICVyMTIKICAgICAgICAg cmV0Ci1FTkRQUk9DKGFlc25pX2djbV9wcmVjb21wX2F2eF9nZW40KQorU1lNX0ZVTkNfRU5EKGFl c25pX2djbV9wcmVjb21wX2F2eF9nZW40KQogCiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKQEAg LTI5MTcsMTAgKzI5MTcsMTAgQEAgRU5EUFJPQyhhZXNuaV9nY21fcHJlY29tcF9hdnhfZ2VuNCkK ICMgICAgICAgIHU2NCAgICAgYXV0aF90YWdfbGVuKSMgLyogQXV0aGVudGljYXRlZCBUYWcgTGVu Z3RoIGluIGJ5dGVzLgogIwkJCQlWYWxpZCB2YWx1ZXMgYXJlIDE2IChtb3N0IGxpa2VseSksIDEy IG9yIDguICovCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1FTlRSWShhZXNuaV9nY21fZW5jX2F2 eF9nZW40KQorU1lNX0ZVTkNfU1RBUlQoYWVzbmlfZ2NtX2VuY19hdnhfZ2VuNCkKICAgICAgICAg R0NNX0VOQ19ERUNfQVZYMiAgICAgRU5DCiAJcmV0Ci1FTkRQUk9DKGFlc25pX2djbV9lbmNfYXZ4 X2dlbjQpCitTWU1fRlVOQ19FTkQoYWVzbmlfZ2NtX2VuY19hdnhfZ2VuNCkKIAogIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwogI3ZvaWQgICBhZXNuaV9nY21fZGVjX2F2eF9nZW40KApAQCAtMjkzOCw5 ICsyOTM4LDkgQEAgRU5EUFJPQyhhZXNuaV9nY21fZW5jX2F2eF9nZW40KQogIyAgICAgICAgdTY0 ICAgICBhdXRoX3RhZ19sZW4pIyAvKiBBdXRoZW50aWNhdGVkIFRhZyBMZW5ndGggaW4gYnl0ZXMu CiAjCQkJCVZhbGlkIHZhbHVlcyBhcmUgMTYgKG1vc3QgbGlrZWx5KSwgMTIgb3IgOC4gKi8KICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKLUVOVFJZKGFlc25pX2djbV9kZWNfYXZ4X2dlbjQpCitTWU1f RlVOQ19TVEFSVChhZXNuaV9nY21fZGVjX2F2eF9nZW40KQogICAgICAgICBHQ01fRU5DX0RFQ19B VlgyICAgICBERUMKIAlyZXQKLUVORFBST0MoYWVzbmlfZ2NtX2RlY19hdnhfZ2VuNCkKK1NZTV9G VU5DX0VORChhZXNuaV9nY21fZGVjX2F2eF9nZW40KQogCiAjZW5kaWYgLyogQ09ORklHX0FTX0FW WDIgKi8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9ibG93ZmlzaC14ODZfNjQtYXNtXzY0 LlMgYi9hcmNoL3g4Ni9jcnlwdG8vYmxvd2Zpc2gteDg2XzY0LWFzbV82NC5TCmluZGV4IDhjMWZj YjZiYWQyMS4uNzBjMzQ4NTBlZTBiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vYmxvd2Zp c2gteDg2XzY0LWFzbV82NC5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9ibG93ZmlzaC14ODZfNjQt YXNtXzY0LlMKQEAgLTExOCw3ICsxMTgsNyBAQAogCWJzd2FwcSAJCQlSWDA7IFwKIAl4b3JxIFJY MCwgCQkoUklPKTsKIAotRU5UUlkoX19ibG93ZmlzaF9lbmNfYmxrKQorU1lNX0ZVTkNfU1RBUlQo X19ibG93ZmlzaF9lbmNfYmxrKQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eAogCSAqCSVyc2k6 IGRzdApAQCAtMTU0LDkgKzE1NCw5IEBAIEVOVFJZKF9fYmxvd2Zpc2hfZW5jX2JsaykKIC5MX19l bmNfeG9yOgogCXhvcl9ibG9jaygpOwogCXJldDsKLUVORFBST0MoX19ibG93ZmlzaF9lbmNfYmxr KQorU1lNX0ZVTkNfRU5EKF9fYmxvd2Zpc2hfZW5jX2JsaykKIAotRU5UUlkoYmxvd2Zpc2hfZGVj X2JsaykKK1NZTV9GVU5DX1NUQVJUKGJsb3dmaXNoX2RlY19ibGspCiAJLyogaW5wdXQ6CiAJICoJ JXJkaTogY3R4CiAJICoJJXJzaTogZHN0CkBAIC0xODYsNyArMTg2LDcgQEAgRU5UUlkoYmxvd2Zp c2hfZGVjX2JsaykKIAltb3ZxICVyMTEsICVyMTI7CiAKIAlyZXQ7Ci1FTkRQUk9DKGJsb3dmaXNo X2RlY19ibGspCitTWU1fRlVOQ19FTkQoYmxvd2Zpc2hfZGVjX2JsaykKIAogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKICAgNC13YXkgYmxvd2Zpc2gsIGZvdXIgYmxvY2tzIHBhcmFsbGVsCkBAIC0yOTgsNyArMjk4 LDcgQEAgRU5EUFJPQyhibG93ZmlzaF9kZWNfYmxrKQogCWJzd2FwcSAJCQlSWDM7IFwKIAl4b3Jx IFJYMywJCTI0KFJJTyk7CiAKLUVOVFJZKF9fYmxvd2Zpc2hfZW5jX2Jsa180d2F5KQorU1lNX0ZV TkNfU1RBUlQoX19ibG93ZmlzaF9lbmNfYmxrXzR3YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTog Y3R4CiAJICoJJXJzaTogZHN0CkBAIC0zNDUsOSArMzQ1LDkgQEAgRU5UUlkoX19ibG93ZmlzaF9l bmNfYmxrXzR3YXkpCiAJcG9wcSAlcmJ4OwogCXBvcHEgJXIxMjsKIAlyZXQ7Ci1FTkRQUk9DKF9f Ymxvd2Zpc2hfZW5jX2Jsa180d2F5KQorU1lNX0ZVTkNfRU5EKF9fYmxvd2Zpc2hfZW5jX2Jsa180 d2F5KQogCi1FTlRSWShibG93ZmlzaF9kZWNfYmxrXzR3YXkpCitTWU1fRlVOQ19TVEFSVChibG93 ZmlzaF9kZWNfYmxrXzR3YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4CiAJICoJJXJzaTog ZHN0CkBAIC0zODAsNCArMzgwLDQgQEAgRU5UUlkoYmxvd2Zpc2hfZGVjX2Jsa180d2F5KQogCXBv cHEgJXIxMjsKIAogCXJldDsKLUVORFBST0MoYmxvd2Zpc2hfZGVjX2Jsa180d2F5KQorU1lNX0ZV TkNfRU5EKGJsb3dmaXNoX2RlY19ibGtfNHdheSkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0 by9jYW1lbGxpYS1hZXNuaS1hdngtYXNtXzY0LlMgYi9hcmNoL3g4Ni9jcnlwdG8vY2FtZWxsaWEt YWVzbmktYXZ4LWFzbV82NC5TCmluZGV4IGY0NDA4Y2E1NWZkYi4uZDAxZGRkNzNkZTY1IDEwMDY0 NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vY2FtZWxsaWEtYWVzbmktYXZ4LWFzbV82NC5TCisrKyBi L2FyY2gveDg2L2NyeXB0by9jYW1lbGxpYS1hZXNuaS1hdngtYXNtXzY0LlMKQEAgLTg5Myw3ICs4 OTMsNyBAQCBTWU1fRlVOQ19TVEFSVF9MT0NBTChfX2NhbWVsbGlhX2RlY19ibGsxNikKIAlqbXAg LkxkZWNfbWF4MjQ7CiBTWU1fRlVOQ19FTkQoX19jYW1lbGxpYV9kZWNfYmxrMTYpCiAKLUVOVFJZ KGNhbWVsbGlhX2VjYl9lbmNfMTZ3YXkpCitTWU1fRlVOQ19TVEFSVChjYW1lbGxpYV9lY2JfZW5j XzE2d2F5KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJJXJzaTogZHN0ICgx NiBibG9ja3MpCkBAIC05MTYsOSArOTE2LDkgQEAgRU5UUlkoY2FtZWxsaWFfZWNiX2VuY18xNndh eSkKIAogCUZSQU1FX0VORAogCXJldDsKLUVORFBST0MoY2FtZWxsaWFfZWNiX2VuY18xNndheSkK K1NZTV9GVU5DX0VORChjYW1lbGxpYV9lY2JfZW5jXzE2d2F5KQogCi1FTlRSWShjYW1lbGxpYV9l Y2JfZGVjXzE2d2F5KQorU1lNX0ZVTkNfU1RBUlQoY2FtZWxsaWFfZWNiX2RlY18xNndheSkKIAkv KiBpbnB1dDoKIAkgKgklcmRpOiBjdHgsIENUWAogCSAqCSVyc2k6IGRzdCAoMTYgYmxvY2tzKQpA QCAtOTQ2LDkgKzk0Niw5IEBAIEVOVFJZKGNhbWVsbGlhX2VjYl9kZWNfMTZ3YXkpCiAKIAlGUkFN RV9FTkQKIAlyZXQ7Ci1FTkRQUk9DKGNhbWVsbGlhX2VjYl9kZWNfMTZ3YXkpCitTWU1fRlVOQ19F TkQoY2FtZWxsaWFfZWNiX2RlY18xNndheSkKIAotRU5UUlkoY2FtZWxsaWFfY2JjX2RlY18xNndh eSkKK1NZTV9GVU5DX1NUQVJUKGNhbWVsbGlhX2NiY19kZWNfMTZ3YXkpCiAJLyogaW5wdXQ6CiAJ ICoJJXJkaTogY3R4LCBDVFgKIAkgKgklcnNpOiBkc3QgKDE2IGJsb2NrcykKQEAgLTk5Nyw3ICs5 OTcsNyBAQCBFTlRSWShjYW1lbGxpYV9jYmNfZGVjXzE2d2F5KQogCiAJRlJBTUVfRU5ECiAJcmV0 OwotRU5EUFJPQyhjYW1lbGxpYV9jYmNfZGVjXzE2d2F5KQorU1lNX0ZVTkNfRU5EKGNhbWVsbGlh X2NiY19kZWNfMTZ3YXkpCiAKICNkZWZpbmUgaW5jX2xlMTI4KHgsIG1pbnVzX29uZSwgdG1wKSBc CiAJdnBjbXBlcXEgbWludXNfb25lLCB4LCB0bXA7IFwKQEAgLTEwMDUsNyArMTAwNSw3IEBAIEVO RFBST0MoY2FtZWxsaWFfY2JjX2RlY18xNndheSkKIAl2cHNsbGRxICQ4LCB0bXAsIHRtcDsgXAog CXZwc3VicSB0bXAsIHgsIHg7CiAKLUVOVFJZKGNhbWVsbGlhX2N0cl8xNndheSkKK1NZTV9GVU5D X1NUQVJUKGNhbWVsbGlhX2N0cl8xNndheSkKIAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgsIENU WAogCSAqCSVyc2k6IGRzdCAoMTYgYmxvY2tzKQpAQCAtMTExMCw3ICsxMTEwLDcgQEAgRU5UUlko Y2FtZWxsaWFfY3RyXzE2d2F5KQogCiAJRlJBTUVfRU5ECiAJcmV0OwotRU5EUFJPQyhjYW1lbGxp YV9jdHJfMTZ3YXkpCitTWU1fRlVOQ19FTkQoY2FtZWxsaWFfY3RyXzE2d2F5KQogCiAjZGVmaW5l IGdmMTI4bXVsX3hfYmxlKGl2LCBtYXNrLCB0bXApIFwKIAl2cHNyYWQgJDMxLCBpdiwgdG1wOyBc CkBAIC0xMjU2LDcgKzEyNTYsNyBAQCBTWU1fRlVOQ19TVEFSVF9MT0NBTChjYW1lbGxpYV94dHNf Y3J5cHRfMTZ3YXkpCiAJcmV0OwogU1lNX0ZVTkNfRU5EKGNhbWVsbGlhX3h0c19jcnlwdF8xNndh eSkKIAotRU5UUlkoY2FtZWxsaWFfeHRzX2VuY18xNndheSkKK1NZTV9GVU5DX1NUQVJUKGNhbWVs bGlhX3h0c19lbmNfMTZ3YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCBDVFgKIAkgKgkl cnNpOiBkc3QgKDE2IGJsb2NrcykKQEAgLTEyNjgsOSArMTI2OCw5IEBAIEVOVFJZKGNhbWVsbGlh X3h0c19lbmNfMTZ3YXkpCiAJbGVhcSBfX2NhbWVsbGlhX2VuY19ibGsxNiwgJXI5OwogCiAJam1w IGNhbWVsbGlhX3h0c19jcnlwdF8xNndheTsKLUVORFBST0MoY2FtZWxsaWFfeHRzX2VuY18xNndh eSkKK1NZTV9GVU5DX0VORChjYW1lbGxpYV94dHNfZW5jXzE2d2F5KQogCi1FTlRSWShjYW1lbGxp YV94dHNfZGVjXzE2d2F5KQorU1lNX0ZVTkNfU1RBUlQoY2FtZWxsaWFfeHRzX2RlY18xNndheSkK IAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgsIENUWAogCSAqCSVyc2k6IGRzdCAoMTYgYmxvY2tz KQpAQCAtMTI4Niw0ICsxMjg2LDQgQEAgRU5UUlkoY2FtZWxsaWFfeHRzX2RlY18xNndheSkKIAls ZWFxIF9fY2FtZWxsaWFfZGVjX2JsazE2LCAlcjk7CiAKIAlqbXAgY2FtZWxsaWFfeHRzX2NyeXB0 XzE2d2F5OwotRU5EUFJPQyhjYW1lbGxpYV94dHNfZGVjXzE2d2F5KQorU1lNX0ZVTkNfRU5EKGNh bWVsbGlhX3h0c19kZWNfMTZ3YXkpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlwdG8vY2FtZWxs aWEtYWVzbmktYXZ4Mi1hc21fNjQuUyBiL2FyY2gveDg2L2NyeXB0by9jYW1lbGxpYS1hZXNuaS1h dngyLWFzbV82NC5TCmluZGV4IDkxNmEzZTJiOGVhNC4uODVmMGEyNjVkZWU4IDEwMDY0NAotLS0g YS9hcmNoL3g4Ni9jcnlwdG8vY2FtZWxsaWEtYWVzbmktYXZ4Mi1hc21fNjQuUworKysgYi9hcmNo L3g4Ni9jcnlwdG8vY2FtZWxsaWEtYWVzbmktYXZ4Mi1hc21fNjQuUwpAQCAtOTM2LDcgKzkzNiw3 IEBAIFNZTV9GVU5DX1NUQVJUX0xPQ0FMKF9fY2FtZWxsaWFfZGVjX2JsazMyKQogCWptcCAuTGRl Y19tYXgyNDsKIFNZTV9GVU5DX0VORChfX2NhbWVsbGlhX2RlY19ibGszMikKIAotRU5UUlkoY2Ft ZWxsaWFfZWNiX2VuY18zMndheSkKK1NZTV9GVU5DX1NUQVJUKGNhbWVsbGlhX2VjYl9lbmNfMzJ3 YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCBDVFgKIAkgKgklcnNpOiBkc3QgKDMyIGJs b2NrcykKQEAgLTk2Myw5ICs5NjMsOSBAQCBFTlRSWShjYW1lbGxpYV9lY2JfZW5jXzMyd2F5KQog CiAJRlJBTUVfRU5ECiAJcmV0OwotRU5EUFJPQyhjYW1lbGxpYV9lY2JfZW5jXzMyd2F5KQorU1lN X0ZVTkNfRU5EKGNhbWVsbGlhX2VjYl9lbmNfMzJ3YXkpCiAKLUVOVFJZKGNhbWVsbGlhX2VjYl9k ZWNfMzJ3YXkpCitTWU1fRlVOQ19TVEFSVChjYW1lbGxpYV9lY2JfZGVjXzMyd2F5KQogCS8qIGlu cHV0OgogCSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJJXJzaTogZHN0ICgzMiBibG9ja3MpCkBAIC05 OTcsOSArOTk3LDkgQEAgRU5UUlkoY2FtZWxsaWFfZWNiX2RlY18zMndheSkKIAogCUZSQU1FX0VO RAogCXJldDsKLUVORFBST0MoY2FtZWxsaWFfZWNiX2RlY18zMndheSkKK1NZTV9GVU5DX0VORChj YW1lbGxpYV9lY2JfZGVjXzMyd2F5KQogCi1FTlRSWShjYW1lbGxpYV9jYmNfZGVjXzMyd2F5KQor U1lNX0ZVTkNfU1RBUlQoY2FtZWxsaWFfY2JjX2RlY18zMndheSkKIAkvKiBpbnB1dDoKIAkgKgkl cmRpOiBjdHgsIENUWAogCSAqCSVyc2k6IGRzdCAoMzIgYmxvY2tzKQpAQCAtMTA2NSw3ICsxMDY1 LDcgQEAgRU5UUlkoY2FtZWxsaWFfY2JjX2RlY18zMndheSkKIAogCUZSQU1FX0VORAogCXJldDsK LUVORFBST0MoY2FtZWxsaWFfY2JjX2RlY18zMndheSkKK1NZTV9GVU5DX0VORChjYW1lbGxpYV9j YmNfZGVjXzMyd2F5KQogCiAjZGVmaW5lIGluY19sZTEyOCh4LCBtaW51c19vbmUsIHRtcCkgXAog CXZwY21wZXFxIG1pbnVzX29uZSwgeCwgdG1wOyBcCkBAIC0xMDgxLDcgKzEwODEsNyBAQCBFTkRQ Uk9DKGNhbWVsbGlhX2NiY19kZWNfMzJ3YXkpCiAJdnBzbGxkcSAkOCwgdG1wMSwgdG1wMTsgXAog CXZwc3VicSB0bXAxLCB4LCB4OwogCi1FTlRSWShjYW1lbGxpYV9jdHJfMzJ3YXkpCitTWU1fRlVO Q19TVEFSVChjYW1lbGxpYV9jdHJfMzJ3YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCBD VFgKIAkgKgklcnNpOiBkc3QgKDMyIGJsb2NrcykKQEAgLTEyMDUsNyArMTIwNSw3IEBAIEVOVFJZ KGNhbWVsbGlhX2N0cl8zMndheSkKIAogCUZSQU1FX0VORAogCXJldDsKLUVORFBST0MoY2FtZWxs aWFfY3RyXzMyd2F5KQorU1lNX0ZVTkNfRU5EKGNhbWVsbGlhX2N0cl8zMndheSkKIAogI2RlZmlu ZSBnZjEyOG11bF94X2JsZShpdiwgbWFzaywgdG1wKSBcCiAJdnBzcmFkICQzMSwgaXYsIHRtcDsg XApAQCAtMTM3NCw3ICsxMzc0LDcgQEAgU1lNX0ZVTkNfU1RBUlRfTE9DQUwoY2FtZWxsaWFfeHRz X2NyeXB0XzMyd2F5KQogCXJldDsKIFNZTV9GVU5DX0VORChjYW1lbGxpYV94dHNfY3J5cHRfMzJ3 YXkpCiAKLUVOVFJZKGNhbWVsbGlhX3h0c19lbmNfMzJ3YXkpCitTWU1fRlVOQ19TVEFSVChjYW1l bGxpYV94dHNfZW5jXzMyd2F5KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJ JXJzaTogZHN0ICgzMiBibG9ja3MpCkBAIC0xMzg3LDkgKzEzODcsOSBAQCBFTlRSWShjYW1lbGxp YV94dHNfZW5jXzMyd2F5KQogCWxlYXEgX19jYW1lbGxpYV9lbmNfYmxrMzIsICVyOTsKIAogCWpt cCBjYW1lbGxpYV94dHNfY3J5cHRfMzJ3YXk7Ci1FTkRQUk9DKGNhbWVsbGlhX3h0c19lbmNfMzJ3 YXkpCitTWU1fRlVOQ19FTkQoY2FtZWxsaWFfeHRzX2VuY18zMndheSkKIAotRU5UUlkoY2FtZWxs aWFfeHRzX2RlY18zMndheSkKK1NZTV9GVU5DX1NUQVJUKGNhbWVsbGlhX3h0c19kZWNfMzJ3YXkp CiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCBDVFgKIAkgKgklcnNpOiBkc3QgKDMyIGJsb2Nr cykKQEAgLTE0MDUsNCArMTQwNSw0IEBAIEVOVFJZKGNhbWVsbGlhX3h0c19kZWNfMzJ3YXkpCiAJ bGVhcSBfX2NhbWVsbGlhX2RlY19ibGszMiwgJXI5OwogCiAJam1wIGNhbWVsbGlhX3h0c19jcnlw dF8zMndheTsKLUVORFBST0MoY2FtZWxsaWFfeHRzX2RlY18zMndheSkKK1NZTV9GVU5DX0VORChj YW1lbGxpYV94dHNfZGVjXzMyd2F5KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRvL2NhbWVs bGlhLXg4Nl82NC1hc21fNjQuUyBiL2FyY2gveDg2L2NyeXB0by9jYW1lbGxpYS14ODZfNjQtYXNt XzY0LlMKaW5kZXggOTViYTY5NTZhN2Y2Li40ZDc3YzlkY2RkYmQgMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L2NyeXB0by9jYW1lbGxpYS14ODZfNjQtYXNtXzY0LlMKKysrIGIvYXJjaC94ODYvY3J5cHRv L2NhbWVsbGlhLXg4Nl82NC1hc21fNjQuUwpAQCAtMTkwLDcgKzE5MCw3IEBACiAJYnN3YXBxCQkJ CVJBQjA7IFwKIAltb3ZxIFJBQjAsCQkJNCoyKFJJTyk7CiAKLUVOVFJZKF9fY2FtZWxsaWFfZW5j X2JsaykKK1NZTV9GVU5DX1NUQVJUKF9fY2FtZWxsaWFfZW5jX2JsaykKIAkvKiBpbnB1dDoKIAkg KgklcmRpOiBjdHgsIENUWAogCSAqCSVyc2k6IGRzdApAQCAtMjM1LDkgKzIzNSw5IEBAIEVOVFJZ KF9fY2FtZWxsaWFfZW5jX2JsaykKIAogCW1vdnEgUlIxMiwgJXIxMjsKIAlyZXQ7Ci1FTkRQUk9D KF9fY2FtZWxsaWFfZW5jX2JsaykKK1NZTV9GVU5DX0VORChfX2NhbWVsbGlhX2VuY19ibGspCiAK LUVOVFJZKGNhbWVsbGlhX2RlY19ibGspCitTWU1fRlVOQ19TVEFSVChjYW1lbGxpYV9kZWNfYmxr KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJJXJzaTogZHN0CkBAIC0yNzMs NyArMjczLDcgQEAgRU5UUlkoY2FtZWxsaWFfZGVjX2JsaykKIAogCW1vdnEgUlIxMiwgJXIxMjsK IAlyZXQ7Ci1FTkRQUk9DKGNhbWVsbGlhX2RlY19ibGspCitTWU1fRlVOQ19FTkQoY2FtZWxsaWFf ZGVjX2JsaykKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKICAgMi13YXkgY2FtZWxsaWEKQEAgLTQyNCw3ICs0 MjQsNyBAQCBFTkRQUk9DKGNhbWVsbGlhX2RlY19ibGspCiAJCWJzd2FwcQkJCQlSQUIxOyBcCiAJ CW1vdnEgUkFCMSwJCQkxMioyKFJJTyk7CiAKLUVOVFJZKF9fY2FtZWxsaWFfZW5jX2Jsa18yd2F5 KQorU1lNX0ZVTkNfU1RBUlQoX19jYW1lbGxpYV9lbmNfYmxrXzJ3YXkpCiAJLyogaW5wdXQ6CiAJ ICoJJXJkaTogY3R4LCBDVFgKIAkgKgklcnNpOiBkc3QKQEAgLTQ3MSw5ICs0NzEsOSBAQCBFTlRS WShfX2NhbWVsbGlhX2VuY19ibGtfMndheSkKIAltb3ZxIFJSMTIsICVyMTI7CiAJcG9wcSAlcmJ4 OwogCXJldDsKLUVORFBST0MoX19jYW1lbGxpYV9lbmNfYmxrXzJ3YXkpCitTWU1fRlVOQ19FTkQo X19jYW1lbGxpYV9lbmNfYmxrXzJ3YXkpCiAKLUVOVFJZKGNhbWVsbGlhX2RlY19ibGtfMndheSkK K1NZTV9GVU5DX1NUQVJUKGNhbWVsbGlhX2RlY19ibGtfMndheSkKIAkvKiBpbnB1dDoKIAkgKgkl cmRpOiBjdHgsIENUWAogCSAqCSVyc2k6IGRzdApAQCAtNTExLDQgKzUxMSw0IEBAIEVOVFJZKGNh bWVsbGlhX2RlY19ibGtfMndheSkKIAltb3ZxIFJSMTIsICVyMTI7CiAJbW92cSBSWE9SLCAlcmJ4 OwogCXJldDsKLUVORFBST0MoY2FtZWxsaWFfZGVjX2Jsa18yd2F5KQorU1lNX0ZVTkNfRU5EKGNh bWVsbGlhX2RlY19ibGtfMndheSkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9jYXN0NS1h dngteDg2XzY0LWFzbV82NC5TIGIvYXJjaC94ODYvY3J5cHRvL2Nhc3Q1LWF2eC14ODZfNjQtYXNt XzY0LlMKaW5kZXggYjI2ZGYxMjA0MTNjLi4zNzg5YzYxZjYxNjYgMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L2NyeXB0by9jYXN0NS1hdngteDg2XzY0LWFzbV82NC5TCisrKyBiL2FyY2gveDg2L2NyeXB0 by9jYXN0NS1hdngteDg2XzY0LWFzbV82NC5TCkBAIC0zNzQsNyArMzc0LDcgQEAgU1lNX0ZVTkNf U1RBUlRfTE9DQUwoX19jYXN0NV9kZWNfYmxrMTYpCiAJam1wIC5MX19kZWNfdGFpbDsKIFNZTV9G VU5DX0VORChfX2Nhc3Q1X2RlY19ibGsxNikKIAotRU5UUlkoY2FzdDVfZWNiX2VuY18xNndheSkK K1NZTV9GVU5DX1NUQVJUKGNhc3Q1X2VjYl9lbmNfMTZ3YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJk aTogY3R4CiAJICoJJXJzaTogZHN0CkBAIC00MDksOSArNDA5LDkgQEAgRU5UUlkoY2FzdDVfZWNi X2VuY18xNndheSkKIAlwb3BxICVyMTU7CiAJRlJBTUVfRU5ECiAJcmV0OwotRU5EUFJPQyhjYXN0 NV9lY2JfZW5jXzE2d2F5KQorU1lNX0ZVTkNfRU5EKGNhc3Q1X2VjYl9lbmNfMTZ3YXkpCiAKLUVO VFJZKGNhc3Q1X2VjYl9kZWNfMTZ3YXkpCitTWU1fRlVOQ19TVEFSVChjYXN0NV9lY2JfZGVjXzE2 d2F5KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eAogCSAqCSVyc2k6IGRzdApAQCAtNDQ3LDkg KzQ0Nyw5IEBAIEVOVFJZKGNhc3Q1X2VjYl9kZWNfMTZ3YXkpCiAJcG9wcSAlcjE1OwogCUZSQU1F X0VORAogCXJldDsKLUVORFBST0MoY2FzdDVfZWNiX2RlY18xNndheSkKK1NZTV9GVU5DX0VORChj YXN0NV9lY2JfZGVjXzE2d2F5KQogCi1FTlRSWShjYXN0NV9jYmNfZGVjXzE2d2F5KQorU1lNX0ZV TkNfU1RBUlQoY2FzdDVfY2JjX2RlY18xNndheSkKIAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgK IAkgKgklcnNpOiBkc3QKQEAgLTQ5OSw5ICs0OTksOSBAQCBFTlRSWShjYXN0NV9jYmNfZGVjXzE2 d2F5KQogCXBvcHEgJXIxMjsKIAlGUkFNRV9FTkQKIAlyZXQ7Ci1FTkRQUk9DKGNhc3Q1X2NiY19k ZWNfMTZ3YXkpCitTWU1fRlVOQ19FTkQoY2FzdDVfY2JjX2RlY18xNndheSkKIAotRU5UUlkoY2Fz dDVfY3RyXzE2d2F5KQorU1lNX0ZVTkNfU1RBUlQoY2FzdDVfY3RyXzE2d2F5KQogCS8qIGlucHV0 OgogCSAqCSVyZGk6IGN0eAogCSAqCSVyc2k6IGRzdApAQCAtNTc1LDQgKzU3NSw0IEBAIEVOVFJZ KGNhc3Q1X2N0cl8xNndheSkKIAlwb3BxICVyMTI7CiAJRlJBTUVfRU5ECiAJcmV0OwotRU5EUFJP QyhjYXN0NV9jdHJfMTZ3YXkpCitTWU1fRlVOQ19FTkQoY2FzdDVfY3RyXzE2d2F5KQpkaWZmIC0t Z2l0IGEvYXJjaC94ODYvY3J5cHRvL2Nhc3Q2LWF2eC14ODZfNjQtYXNtXzY0LlMgYi9hcmNoL3g4 Ni9jcnlwdG8vY2FzdDYtYXZ4LXg4Nl82NC1hc21fNjQuUwppbmRleCAwYTY4ZTQyYTAwZjkuLmUz OGFiNDU3MWE2YiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL2Nhc3Q2LWF2eC14ODZfNjQt YXNtXzY0LlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL2Nhc3Q2LWF2eC14ODZfNjQtYXNtXzY0LlMK QEAgLTM1Niw3ICszNTYsNyBAQCBTWU1fRlVOQ19TVEFSVF9MT0NBTChfX2Nhc3Q2X2RlY19ibGs4 KQogCXJldDsKIFNZTV9GVU5DX0VORChfX2Nhc3Q2X2RlY19ibGs4KQogCi1FTlRSWShjYXN0Nl9l Y2JfZW5jXzh3YXkpCitTWU1fRlVOQ19TVEFSVChjYXN0Nl9lY2JfZW5jXzh3YXkpCiAJLyogaW5w dXQ6CiAJICoJJXJkaTogY3R4CiAJICoJJXJzaTogZHN0CkBAIC0zNzcsOSArMzc3LDkgQEAgRU5U UlkoY2FzdDZfZWNiX2VuY184d2F5KQogCXBvcHEgJXIxNTsKIAlGUkFNRV9FTkQKIAlyZXQ7Ci1F TkRQUk9DKGNhc3Q2X2VjYl9lbmNfOHdheSkKK1NZTV9GVU5DX0VORChjYXN0Nl9lY2JfZW5jXzh3 YXkpCiAKLUVOVFJZKGNhc3Q2X2VjYl9kZWNfOHdheSkKK1NZTV9GVU5DX1NUQVJUKGNhc3Q2X2Vj Yl9kZWNfOHdheSkKIAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgKIAkgKgklcnNpOiBkc3QKQEAg LTQwMCw5ICs0MDAsOSBAQCBFTlRSWShjYXN0Nl9lY2JfZGVjXzh3YXkpCiAJcG9wcSAlcjE1Owog CUZSQU1FX0VORAogCXJldDsKLUVORFBST0MoY2FzdDZfZWNiX2RlY184d2F5KQorU1lNX0ZVTkNf RU5EKGNhc3Q2X2VjYl9kZWNfOHdheSkKIAotRU5UUlkoY2FzdDZfY2JjX2RlY184d2F5KQorU1lN X0ZVTkNfU1RBUlQoY2FzdDZfY2JjX2RlY184d2F5KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0 eAogCSAqCSVyc2k6IGRzdApAQCAtNDI2LDkgKzQyNiw5IEBAIEVOVFJZKGNhc3Q2X2NiY19kZWNf OHdheSkKIAlwb3BxICVyMTI7CiAJRlJBTUVfRU5ECiAJcmV0OwotRU5EUFJPQyhjYXN0Nl9jYmNf ZGVjXzh3YXkpCitTWU1fRlVOQ19FTkQoY2FzdDZfY2JjX2RlY184d2F5KQogCi1FTlRSWShjYXN0 Nl9jdHJfOHdheSkKK1NZTV9GVU5DX1NUQVJUKGNhc3Q2X2N0cl84d2F5KQogCS8qIGlucHV0Ogog CSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJJXJzaTogZHN0CkBAIC00NTQsOSArNDU0LDkgQEAgRU5U UlkoY2FzdDZfY3RyXzh3YXkpCiAJcG9wcSAlcjEyOwogCUZSQU1FX0VORAogCXJldDsKLUVORFBS T0MoY2FzdDZfY3RyXzh3YXkpCitTWU1fRlVOQ19FTkQoY2FzdDZfY3RyXzh3YXkpCiAKLUVOVFJZ KGNhc3Q2X3h0c19lbmNfOHdheSkKK1NZTV9GVU5DX1NUQVJUKGNhc3Q2X3h0c19lbmNfOHdheSkK IAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgsIENUWAogCSAqCSVyc2k6IGRzdApAQCAtNDgxLDkg KzQ4MSw5IEBAIEVOVFJZKGNhc3Q2X3h0c19lbmNfOHdheSkKIAlwb3BxICVyMTU7CiAJRlJBTUVf RU5ECiAJcmV0OwotRU5EUFJPQyhjYXN0Nl94dHNfZW5jXzh3YXkpCitTWU1fRlVOQ19FTkQoY2Fz dDZfeHRzX2VuY184d2F5KQogCi1FTlRSWShjYXN0Nl94dHNfZGVjXzh3YXkpCitTWU1fRlVOQ19T VEFSVChjYXN0Nl94dHNfZGVjXzh3YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCBDVFgK IAkgKgklcnNpOiBkc3QKQEAgLTUwOCw0ICs1MDgsNCBAQCBFTlRSWShjYXN0Nl94dHNfZGVjXzh3 YXkpCiAJcG9wcSAlcjE1OwogCUZSQU1FX0VORAogCXJldDsKLUVORFBST0MoY2FzdDZfeHRzX2Rl Y184d2F5KQorU1lNX0ZVTkNfRU5EKGNhc3Q2X3h0c19kZWNfOHdheSkKZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2NyeXB0by9jaGFjaGEyMC1hdngyLXg4Nl82NC5TIGIvYXJjaC94ODYvY3J5cHRvL2No YWNoYTIwLWF2eDIteDg2XzY0LlMKaW5kZXggZjNjZDI2ZjQ4MzMyLi43MmM5NmE2YWVjOGYgMTAw NjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9jaGFjaGEyMC1hdngyLXg4Nl82NC5TCisrKyBiL2Fy Y2gveDg2L2NyeXB0by9jaGFjaGEyMC1hdngyLXg4Nl82NC5TCkBAIC0yOCw3ICsyOCw3IEBAIENU UklOQzoJLm9jdGEgMHgwMDAwMDAwMzAwMDAwMDAyMDAwMDAwMDEwMDAwMDAwMAogCiAudGV4dAog Ci1FTlRSWShjaGFjaGEyMF84YmxvY2tfeG9yX2F2eDIpCitTWU1fRlVOQ19TVEFSVChjaGFjaGEy MF84YmxvY2tfeG9yX2F2eDIpCiAJIyAlcmRpOiBJbnB1dCBzdGF0ZSBtYXRyaXgsIHMKIAkjICVy c2k6IDggZGF0YSBibG9ja3Mgb3V0cHV0LCBvCiAJIyAlcmR4OiA4IGRhdGEgYmxvY2tzIGlucHV0 LCBpCkBAIC00NDUsNCArNDQ1LDQgQEAgRU5UUlkoY2hhY2hhMjBfOGJsb2NrX3hvcl9hdngyKQog CXZ6ZXJvdXBwZXIKIAlsZWEJCS04KCVyMTApLCVyc3AKIAlyZXQKLUVORFBST0MoY2hhY2hhMjBf OGJsb2NrX3hvcl9hdngyKQorU1lNX0ZVTkNfRU5EKGNoYWNoYTIwXzhibG9ja194b3JfYXZ4MikK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9jaGFjaGEyMC1zc3NlMy14ODZfNjQuUyBiL2Fy Y2gveDg2L2NyeXB0by9jaGFjaGEyMC1zc3NlMy14ODZfNjQuUwppbmRleCA1MTJhMmI1MDBmZDEu Ljk1MGRlYTdjOTJkMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL2NoYWNoYTIwLXNzc2Uz LXg4Nl82NC5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9jaGFjaGEyMC1zc3NlMy14ODZfNjQuUwpA QCAtMjMsNyArMjMsNyBAQCBDVFJJTkM6CS5vY3RhIDB4MDAwMDAwMDMwMDAwMDAwMjAwMDAwMDAx MDAwMDAwMDAKIAogLnRleHQKIAotRU5UUlkoY2hhY2hhMjBfYmxvY2tfeG9yX3Nzc2UzKQorU1lN X0ZVTkNfU1RBUlQoY2hhY2hhMjBfYmxvY2tfeG9yX3Nzc2UzKQogCSMgJXJkaTogSW5wdXQgc3Rh dGUgbWF0cml4LCBzCiAJIyAlcnNpOiAxIGRhdGEgYmxvY2sgb3V0cHV0LCBvCiAJIyAlcmR4OiAx IGRhdGEgYmxvY2sgaW5wdXQsIGkKQEAgLTE0Myw5ICsxNDMsOSBAQCBFTlRSWShjaGFjaGEyMF9i bG9ja194b3Jfc3NzZTMpCiAJbW92ZHF1CQkleG1tMywweDMwKCVyc2kpCiAKIAlyZXQKLUVORFBS T0MoY2hhY2hhMjBfYmxvY2tfeG9yX3Nzc2UzKQorU1lNX0ZVTkNfRU5EKGNoYWNoYTIwX2Jsb2Nr X3hvcl9zc3NlMykKIAotRU5UUlkoY2hhY2hhMjBfNGJsb2NrX3hvcl9zc3NlMykKK1NZTV9GVU5D X1NUQVJUKGNoYWNoYTIwXzRibG9ja194b3Jfc3NzZTMpCiAJIyAlcmRpOiBJbnB1dCBzdGF0ZSBt YXRyaXgsIHMKIAkjICVyc2k6IDQgZGF0YSBibG9ja3Mgb3V0cHV0LCBvCiAJIyAlcmR4OiA0IGRh dGEgYmxvY2tzIGlucHV0LCBpCkBAIC02MjcsNCArNjI3LDQgQEAgRU5UUlkoY2hhY2hhMjBfNGJs b2NrX3hvcl9zc3NlMykKIAogCWxlYQkJLTgoJXIxMCksJXJzcAogCXJldAotRU5EUFJPQyhjaGFj aGEyMF80YmxvY2tfeG9yX3Nzc2UzKQorU1lNX0ZVTkNfRU5EKGNoYWNoYTIwXzRibG9ja194b3Jf c3NzZTMpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlwdG8vY3JjMzItcGNsbXVsX2FzbS5TIGIv YXJjaC94ODYvY3J5cHRvL2NyYzMyLXBjbG11bF9hc20uUwppbmRleCAxYzA5OWRjMDhjYzMuLjlm ZDI4ZmY2NWJjMiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL2NyYzMyLXBjbG11bF9hc20u UworKysgYi9hcmNoL3g4Ni9jcnlwdG8vY3JjMzItcGNsbXVsX2FzbS5TCkBAIC0xMDMsNyArMTAz LDcgQEAKICAqCSAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4sIHVpbnQgY3JjMzIpCiAg Ki8KIAotRU5UUlkoY3JjMzJfcGNsbXVsX2xlXzE2KSAvKiBidWZmZXIgYW5kIGJ1ZmZlciBzaXpl IGFyZSAxNiBieXRlcyBhbGlnbmVkICovCitTWU1fRlVOQ19TVEFSVChjcmMzMl9wY2xtdWxfbGVf MTYpIC8qIGJ1ZmZlciBhbmQgYnVmZmVyIHNpemUgYXJlIDE2IGJ5dGVzIGFsaWduZWQgKi8KIAlt b3ZkcWEgIChCVUYpLCAleG1tMQogCW1vdmRxYSAgMHgxMChCVUYpLCAleG1tMgogCW1vdmRxYSAg MHgyMChCVUYpLCAleG1tMwpAQCAtMjM4LDQgKzIzOCw0IEBAIGZvbGRfNjQ6CiAJUEVYVFJEICAw eDAxLCAleG1tMSwgJWVheAogCiAJcmV0Ci1FTkRQUk9DKGNyYzMyX3BjbG11bF9sZV8xNikKK1NZ TV9GVU5DX0VORChjcmMzMl9wY2xtdWxfbGVfMTYpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlw dG8vY3JjMzJjLXBjbC1pbnRlbC1hc21fNjQuUyBiL2FyY2gveDg2L2NyeXB0by9jcmMzMmMtcGNs LWludGVsLWFzbV82NC5TCmluZGV4IGQ5YjczNGQwYzhjYy4uMGU2NjkwZTM2MThjIDEwMDY0NAot LS0gYS9hcmNoL3g4Ni9jcnlwdG8vY3JjMzJjLXBjbC1pbnRlbC1hc21fNjQuUworKysgYi9hcmNo L3g4Ni9jcnlwdG8vY3JjMzJjLXBjbC1pbnRlbC1hc21fNjQuUwpAQCAtNzQsNyArNzQsNyBAQAog IyB1bnNpZ25lZCBpbnQgY3JjX3BjbCh1OCAqYnVmZmVyLCBpbnQgbGVuLCB1bnNpZ25lZCBpbnQg Y3JjX2luaXQpOwogCiAudGV4dAotRU5UUlkoY3JjX3BjbCkKK1NZTV9GVU5DX1NUQVJUKGNyY19w Y2wpCiAjZGVmaW5lICAgIGJ1ZnAJCSVyZGkKICNkZWZpbmUgICAgYnVmcF9kdwklZWRpCiAjZGVm aW5lICAgIGJ1ZnBfdwklZGkKQEAgLTMxMSw3ICszMTEsNyBAQCBkb19yZXR1cm46CiAJcG9wcSAg ICAlcmRpCiAJcG9wcSAgICAlcmJ4CiAgICAgICAgIHJldAotRU5EUFJPQyhjcmNfcGNsKQorU1lN X0ZVTkNfRU5EKGNyY19wY2wpCiAKIC5zZWN0aW9uCS5yb2RhdGEsICJhIiwgQHByb2diaXRzCiAg ICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9jcmN0MTBkaWYtcGNs LWFzbV82NC5TIGIvYXJjaC94ODYvY3J5cHRvL2NyY3QxMGRpZi1wY2wtYXNtXzY0LlMKaW5kZXgg ZGUwNGQzZTk4ZDhkLi5mNTZiNDk5NTQxZTAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9j cmN0MTBkaWYtcGNsLWFzbV82NC5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9jcmN0MTBkaWYtcGNs LWFzbV82NC5TCkBAIC02OCw3ICs2OCw3IEBACiAKICNkZWZpbmUgICAgICAgIGFyZzFfbG93MzIg JWVkaQogCi1FTlRSWShjcmNfdDEwZGlmX3BjbCkKK1NZTV9GVU5DX1NUQVJUKGNyY190MTBkaWZf cGNsKQogLmFsaWduIDE2CiAKIAkjIGFkanVzdCB0aGUgMTYtYml0IGluaXRpYWxfY3JjIHZhbHVl LCBzY2FsZSBpdCB0byAzMiBiaXRzCkBAIC01NTIsNyArNTUyLDcgQEAgX29ubHlfbGVzc190aGFu XzI6CiAKIAlqbXAJX2JhcnJldHQKIAotRU5EUFJPQyhjcmNfdDEwZGlmX3BjbCkKK1NZTV9GVU5D X0VORChjcmNfdDEwZGlmX3BjbCkKIAogLnNlY3Rpb24JLnJvZGF0YSwgImEiLCBAcHJvZ2JpdHMK IC5hbGlnbiAxNgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRvL2RlczNfZWRlLWFzbV82NC5T IGIvYXJjaC94ODYvY3J5cHRvL2RlczNfZWRlLWFzbV82NC5TCmluZGV4IDhlNDljZTExNzQ5NC4u ODI3NzljMDgwMjliIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vZGVzM19lZGUtYXNtXzY0 LlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL2RlczNfZWRlLWFzbV82NC5TCkBAIC0xNzEsNyArMTcx LDcgQEAKIAltb3ZsICAgbGVmdCMjZCwgICAoaW8pOyBcCiAJbW92bCAgIHJpZ2h0IyNkLCA0KGlv KTsKIAotRU5UUlkoZGVzM19lZGVfeDg2XzY0X2NyeXB0X2JsaykKK1NZTV9GVU5DX1NUQVJUKGRl czNfZWRlX3g4Nl82NF9jcnlwdF9ibGspCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogcm91bmQga2V5 cywgQ1RYCiAJICoJJXJzaTogZHN0CkBAIC0yNTMsNyArMjUzLDcgQEAgRU5UUlkoZGVzM19lZGVf eDg2XzY0X2NyeXB0X2JsaykKIAlwb3BxICVyYng7CiAKIAlyZXQ7Ci1FTkRQUk9DKGRlczNfZWRl X3g4Nl82NF9jcnlwdF9ibGspCitTWU1fRlVOQ19FTkQoZGVzM19lZGVfeDg2XzY0X2NyeXB0X2Js aykKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCiAgKiAzLXdheSAzREVTCkBAIC00MjcsNyArNDI3LDcgQEAg RU5EUFJPQyhkZXMzX2VkZV94ODZfNjRfY3J5cHRfYmxrKQogI2RlZmluZSBfX21vdnEoc3JjLCBk c3QpIFwKIAltb3ZxIHNyYywgZHN0OwogCi1FTlRSWShkZXMzX2VkZV94ODZfNjRfY3J5cHRfYmxr XzN3YXkpCitTWU1fRlVOQ19TVEFSVChkZXMzX2VkZV94ODZfNjRfY3J5cHRfYmxrXzN3YXkpCiAJ LyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCByb3VuZCBrZXlzCiAJICoJJXJzaTogZHN0ICgzIGJs b2NrcykKQEAgLTUzOCw3ICs1MzgsNyBAQCBFTlRSWShkZXMzX2VkZV94ODZfNjRfY3J5cHRfYmxr XzN3YXkpCiAJcG9wcSAlcmJ4OwogCiAJcmV0OwotRU5EUFJPQyhkZXMzX2VkZV94ODZfNjRfY3J5 cHRfYmxrXzN3YXkpCitTWU1fRlVOQ19FTkQoZGVzM19lZGVfeDg2XzY0X2NyeXB0X2Jsa18zd2F5 KQogCiAuc2VjdGlvbgkucm9kYXRhLCAiYSIsIEBwcm9nYml0cwogLmFsaWduIDE2CmRpZmYgLS1n aXQgYS9hcmNoL3g4Ni9jcnlwdG8vZ2hhc2gtY2xtdWxuaS1pbnRlbF9hc20uUyBiL2FyY2gveDg2 L2NyeXB0by9naGFzaC1jbG11bG5pLWludGVsX2FzbS5TCmluZGV4IGMzZGI4Njg0MjU3OC4uMTJl M2E4NTAyNTdiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vZ2hhc2gtY2xtdWxuaS1pbnRl bF9hc20uUworKysgYi9hcmNoL3g4Ni9jcnlwdG8vZ2hhc2gtY2xtdWxuaS1pbnRlbF9hc20uUwpA QCAtOTMsNyArOTMsNyBAQCBTWU1fRlVOQ19TVEFSVF9MT0NBTChfX2NsbXVsX2dmMTI4bXVsX2Js ZSkKIFNZTV9GVU5DX0VORChfX2NsbXVsX2dmMTI4bXVsX2JsZSkKIAogLyogdm9pZCBjbG11bF9n aGFzaF9tdWwoY2hhciAqZHN0LCBjb25zdCB1MTI4ICpzaGFzaCkgKi8KLUVOVFJZKGNsbXVsX2do YXNoX211bCkKK1NZTV9GVU5DX1NUQVJUKGNsbXVsX2doYXNoX211bCkKIAlGUkFNRV9CRUdJTgog CW1vdnVwcyAoJXJkaSksIERBVEEKIAltb3Z1cHMgKCVyc2kpLCBTSEFTSApAQCAtMTA0LDEzICsx MDQsMTMgQEAgRU5UUlkoY2xtdWxfZ2hhc2hfbXVsKQogCW1vdnVwcyBEQVRBLCAoJXJkaSkKIAlG UkFNRV9FTkQKIAlyZXQKLUVORFBST0MoY2xtdWxfZ2hhc2hfbXVsKQorU1lNX0ZVTkNfRU5EKGNs bXVsX2doYXNoX211bCkKIAogLyoKICAqIHZvaWQgY2xtdWxfZ2hhc2hfdXBkYXRlKGNoYXIgKmRz dCwgY29uc3QgY2hhciAqc3JjLCB1bnNpZ25lZCBpbnQgc3JjbGVuLAogICoJCQkgICBjb25zdCB1 MTI4ICpzaGFzaCk7CiAgKi8KLUVOVFJZKGNsbXVsX2doYXNoX3VwZGF0ZSkKK1NZTV9GVU5DX1NU QVJUKGNsbXVsX2doYXNoX3VwZGF0ZSkKIAlGUkFNRV9CRUdJTgogCWNtcCAkMTYsICVyZHgKIAlq YiAuTHVwZGF0ZV9qdXN0X3JldAkjIGNoZWNrIGxlbmd0aApAQCAtMTMzLDQgKzEzMyw0IEBAIEVO VFJZKGNsbXVsX2doYXNoX3VwZGF0ZSkKIC5MdXBkYXRlX2p1c3RfcmV0OgogCUZSQU1FX0VORAog CXJldAotRU5EUFJPQyhjbG11bF9naGFzaF91cGRhdGUpCitTWU1fRlVOQ19FTkQoY2xtdWxfZ2hh c2hfdXBkYXRlKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRvL3BvbHkxMzA1LWF2eDIteDg2 XzY0LlMgYi9hcmNoL3g4Ni9jcnlwdG8vcG9seTEzMDUtYXZ4Mi14ODZfNjQuUwppbmRleCAzYjZl NzBkMDg1ZGEuLjY4YjBmNDM4NmRjNCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL3BvbHkx MzA1LWF2eDIteDg2XzY0LlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL3BvbHkxMzA1LWF2eDIteDg2 XzY0LlMKQEAgLTgzLDcgKzgzLDcgQEAgT1JNQVNLOgkub2N0YSAweDAwMDAwMDAwMDEwMDAwMDAw MDAwMDAwMDAxMDAwMDAwCiAjZGVmaW5lIGQzICVyMTIKICNkZWZpbmUgZDQgJXIxMwogCi1FTlRS WShwb2x5MTMwNV80YmxvY2tfYXZ4MikKK1NZTV9GVU5DX1NUQVJUKHBvbHkxMzA1XzRibG9ja19h dngyKQogCSMgJXJkaTogQWNjdW11bGF0b3IgaFs1XQogCSMgJXJzaTogNjQgYnl0ZSBpbnB1dCBi bG9jayBtCiAJIyAlcmR4OiBQb2x5MTMwNSBrZXkgcls1XQpAQCAtMzg1LDQgKzM4NSw0IEBAIEVO VFJZKHBvbHkxMzA1XzRibG9ja19hdngyKQogCXBvcAkJJXIxMgogCXBvcAkJJXJieAogCXJldAot RU5EUFJPQyhwb2x5MTMwNV80YmxvY2tfYXZ4MikKK1NZTV9GVU5DX0VORChwb2x5MTMwNV80Ymxv Y2tfYXZ4MikKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9wb2x5MTMwNS1zc2UyLXg4Nl82 NC5TIGIvYXJjaC94ODYvY3J5cHRvL3BvbHkxMzA1LXNzZTIteDg2XzY0LlMKaW5kZXggYzg4YzY3 MGNiNWZjLi42NjcxNWZiZWRjMTggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9wb2x5MTMw NS1zc2UyLXg4Nl82NC5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9wb2x5MTMwNS1zc2UyLXg4Nl82 NC5TCkBAIC01MCw3ICs1MCw3IEBAIE9STUFTSzoJLm9jdGEgMHgwMDAwMDAwMDAxMDAwMDAwMDAw MDAwMDAwMTAwMDAwMAogI2RlZmluZSBkMyAlcjExCiAjZGVmaW5lIGQ0ICVyMTIKIAotRU5UUlko cG9seTEzMDVfYmxvY2tfc3NlMikKK1NZTV9GVU5DX1NUQVJUKHBvbHkxMzA1X2Jsb2NrX3NzZTIp CiAJIyAlcmRpOiBBY2N1bXVsYXRvciBoWzVdCiAJIyAlcnNpOiAxNiBieXRlIGlucHV0IGJsb2Nr IG0KIAkjICVyZHg6IFBvbHkxMzA1IGtleSByWzVdCkBAIC0yNzYsNyArMjc2LDcgQEAgRU5UUlko cG9seTEzMDVfYmxvY2tfc3NlMikKIAlwb3AJCSVyMTIKIAlwb3AJCSVyYngKIAlyZXQKLUVORFBS T0MocG9seTEzMDVfYmxvY2tfc3NlMikKK1NZTV9GVU5DX0VORChwb2x5MTMwNV9ibG9ja19zc2Uy KQogCiAKICNkZWZpbmUgdTAgMHgwMCglcjgpCkBAIC0zMDEsNyArMzAxLDcgQEAgRU5EUFJPQyhw b2x5MTMwNV9ibG9ja19zc2UyKQogI3VuZGVmIGQwCiAjZGVmaW5lIGQwICVyMTMKIAotRU5UUlko cG9seTEzMDVfMmJsb2NrX3NzZTIpCitTWU1fRlVOQ19TVEFSVChwb2x5MTMwNV8yYmxvY2tfc3Nl MikKIAkjICVyZGk6IEFjY3VtdWxhdG9yIGhbNV0KIAkjICVyc2k6IDE2IGJ5dGUgaW5wdXQgYmxv Y2sgbQogCSMgJXJkeDogUG9seTEzMDUga2V5IHJbNV0KQEAgLTU4MSw0ICs1ODEsNCBAQCBFTlRS WShwb2x5MTMwNV8yYmxvY2tfc3NlMikKIAlwb3AJCSVyMTIKIAlwb3AJCSVyYngKIAlyZXQKLUVO RFBST0MocG9seTEzMDVfMmJsb2NrX3NzZTIpCitTWU1fRlVOQ19FTkQocG9seTEzMDVfMmJsb2Nr X3NzZTIpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlwdG8vc2Fsc2EyMC14ODZfNjQtYXNtXzY0 LlMgYi9hcmNoL3g4Ni9jcnlwdG8vc2Fsc2EyMC14ODZfNjQtYXNtXzY0LlMKaW5kZXggMDNhNDkx OGY0MWVlLi41OTg0ZDhjMmVkYzUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9zYWxzYTIw LXg4Nl82NC1hc21fNjQuUworKysgYi9hcmNoL3g4Ni9jcnlwdG8vc2Fsc2EyMC14ODZfNjQtYXNt XzY0LlMKQEAgLTIsNyArMiw3IEBACiAjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgogCiAjIGVu dGVyIHNhbHNhMjBfZW5jcnlwdF9ieXRlcwotRU5UUlkoc2Fsc2EyMF9lbmNyeXB0X2J5dGVzKQor U1lNX0ZVTkNfU1RBUlQoc2Fsc2EyMF9lbmNyeXB0X2J5dGVzKQogCW1vdgklcnNwLCVyMTEKIAlh bmQJJDMxLCVyMTEKIAlhZGQJJDI1NiwlcjExCkBAIC04MDIsNCArODAyLDQgQEAgRU5UUlkoc2Fs c2EyMF9lbmNyeXB0X2J5dGVzKQogCSMgY29tbWVudDpmcCBzdGFjayB1bmNoYW5nZWQgYnkganVt cAogCSMgZ290byBieXRlc2F0bGVhc3QxCiAJam1wCS5fYnl0ZXNhdGxlYXN0MQotRU5EUFJPQyhz YWxzYTIwX2VuY3J5cHRfYnl0ZXMpCitTWU1fRlVOQ19FTkQoc2Fsc2EyMF9lbmNyeXB0X2J5dGVz KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRvL3NlcnBlbnQtYXZ4LXg4Nl82NC1hc21fNjQu UyBiL2FyY2gveDg2L2NyeXB0by9zZXJwZW50LWF2eC14ODZfNjQtYXNtXzY0LlMKaW5kZXggYzJk NGExZmM5ZWU4Li43MmRlODZhODA5MWUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9zZXJw ZW50LWF2eC14ODZfNjQtYXNtXzY0LlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL3NlcnBlbnQtYXZ4 LXg4Nl82NC1hc21fNjQuUwpAQCAtNjc3LDcgKzY3Nyw3IEBAIFNZTV9GVU5DX1NUQVJUX0xPQ0FM KF9fc2VycGVudF9kZWNfYmxrOF9hdngpCiAJcmV0OwogU1lNX0ZVTkNfRU5EKF9fc2VycGVudF9k ZWNfYmxrOF9hdngpCiAKLUVOVFJZKHNlcnBlbnRfZWNiX2VuY184d2F5X2F2eCkKK1NZTV9GVU5D X1NUQVJUKHNlcnBlbnRfZWNiX2VuY184d2F5X2F2eCkKIAkvKiBpbnB1dDoKIAkgKgklcmRpOiBj dHgsIENUWAogCSAqCSVyc2k6IGRzdApAQCAtNjkzLDkgKzY5Myw5IEBAIEVOVFJZKHNlcnBlbnRf ZWNiX2VuY184d2F5X2F2eCkKIAogCUZSQU1FX0VORAogCXJldDsKLUVORFBST0Moc2VycGVudF9l Y2JfZW5jXzh3YXlfYXZ4KQorU1lNX0ZVTkNfRU5EKHNlcnBlbnRfZWNiX2VuY184d2F5X2F2eCkK IAotRU5UUlkoc2VycGVudF9lY2JfZGVjXzh3YXlfYXZ4KQorU1lNX0ZVTkNfU1RBUlQoc2VycGVu dF9lY2JfZGVjXzh3YXlfYXZ4KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJ JXJzaTogZHN0CkBAIC03MTEsOSArNzExLDkgQEAgRU5UUlkoc2VycGVudF9lY2JfZGVjXzh3YXlf YXZ4KQogCiAJRlJBTUVfRU5ECiAJcmV0OwotRU5EUFJPQyhzZXJwZW50X2VjYl9kZWNfOHdheV9h dngpCitTWU1fRlVOQ19FTkQoc2VycGVudF9lY2JfZGVjXzh3YXlfYXZ4KQogCi1FTlRSWShzZXJw ZW50X2NiY19kZWNfOHdheV9hdngpCitTWU1fRlVOQ19TVEFSVChzZXJwZW50X2NiY19kZWNfOHdh eV9hdngpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCBDVFgKIAkgKgklcnNpOiBkc3QKQEAg LTcyOSw5ICs3MjksOSBAQCBFTlRSWShzZXJwZW50X2NiY19kZWNfOHdheV9hdngpCiAKIAlGUkFN RV9FTkQKIAlyZXQ7Ci1FTkRQUk9DKHNlcnBlbnRfY2JjX2RlY184d2F5X2F2eCkKK1NZTV9GVU5D X0VORChzZXJwZW50X2NiY19kZWNfOHdheV9hdngpCiAKLUVOVFJZKHNlcnBlbnRfY3RyXzh3YXlf YXZ4KQorU1lNX0ZVTkNfU1RBUlQoc2VycGVudF9jdHJfOHdheV9hdngpCiAJLyogaW5wdXQ6CiAJ ICoJJXJkaTogY3R4LCBDVFgKIAkgKgklcnNpOiBkc3QKQEAgLTc0OSw5ICs3NDksOSBAQCBFTlRS WShzZXJwZW50X2N0cl84d2F5X2F2eCkKIAogCUZSQU1FX0VORAogCXJldDsKLUVORFBST0Moc2Vy cGVudF9jdHJfOHdheV9hdngpCitTWU1fRlVOQ19FTkQoc2VycGVudF9jdHJfOHdheV9hdngpCiAK LUVOVFJZKHNlcnBlbnRfeHRzX2VuY184d2F5X2F2eCkKK1NZTV9GVU5DX1NUQVJUKHNlcnBlbnRf eHRzX2VuY184d2F5X2F2eCkKIAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgsIENUWAogCSAqCSVy c2k6IGRzdApAQCAtNzcxLDkgKzc3MSw5IEBAIEVOVFJZKHNlcnBlbnRfeHRzX2VuY184d2F5X2F2 eCkKIAogCUZSQU1FX0VORAogCXJldDsKLUVORFBST0Moc2VycGVudF94dHNfZW5jXzh3YXlfYXZ4 KQorU1lNX0ZVTkNfRU5EKHNlcnBlbnRfeHRzX2VuY184d2F5X2F2eCkKIAotRU5UUlkoc2VycGVu dF94dHNfZGVjXzh3YXlfYXZ4KQorU1lNX0ZVTkNfU1RBUlQoc2VycGVudF94dHNfZGVjXzh3YXlf YXZ4KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJJXJzaTogZHN0CkBAIC03 OTMsNCArNzkzLDQgQEAgRU5UUlkoc2VycGVudF94dHNfZGVjXzh3YXlfYXZ4KQogCiAJRlJBTUVf RU5ECiAJcmV0OwotRU5EUFJPQyhzZXJwZW50X3h0c19kZWNfOHdheV9hdngpCitTWU1fRlVOQ19F TkQoc2VycGVudF94dHNfZGVjXzh3YXlfYXZ4KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRv L3NlcnBlbnQtYXZ4Mi1hc21fNjQuUyBiL2FyY2gveDg2L2NyeXB0by9zZXJwZW50LWF2eDItYXNt XzY0LlMKaW5kZXggNTJjNTI3Y2U0YjE4Li5iODY2ZjE2MzI4MDMgMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L2NyeXB0by9zZXJwZW50LWF2eDItYXNtXzY0LlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL3Nl cnBlbnQtYXZ4Mi1hc21fNjQuUwpAQCAtNjczLDcgKzY3Myw3IEBAIFNZTV9GVU5DX1NUQVJUX0xP Q0FMKF9fc2VycGVudF9kZWNfYmxrMTYpCiAJcmV0OwogU1lNX0ZVTkNfRU5EKF9fc2VycGVudF9k ZWNfYmxrMTYpCiAKLUVOVFJZKHNlcnBlbnRfZWNiX2VuY18xNndheSkKK1NZTV9GVU5DX1NUQVJU KHNlcnBlbnRfZWNiX2VuY18xNndheSkKIAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgsIENUWAog CSAqCSVyc2k6IGRzdApAQCAtNjkzLDkgKzY5Myw5IEBAIEVOVFJZKHNlcnBlbnRfZWNiX2VuY18x NndheSkKIAogCUZSQU1FX0VORAogCXJldDsKLUVORFBST0Moc2VycGVudF9lY2JfZW5jXzE2d2F5 KQorU1lNX0ZVTkNfRU5EKHNlcnBlbnRfZWNiX2VuY18xNndheSkKIAotRU5UUlkoc2VycGVudF9l Y2JfZGVjXzE2d2F5KQorU1lNX0ZVTkNfU1RBUlQoc2VycGVudF9lY2JfZGVjXzE2d2F5KQogCS8q IGlucHV0OgogCSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJJXJzaTogZHN0CkBAIC03MTUsOSArNzE1 LDkgQEAgRU5UUlkoc2VycGVudF9lY2JfZGVjXzE2d2F5KQogCiAJRlJBTUVfRU5ECiAJcmV0Owot RU5EUFJPQyhzZXJwZW50X2VjYl9kZWNfMTZ3YXkpCitTWU1fRlVOQ19FTkQoc2VycGVudF9lY2Jf ZGVjXzE2d2F5KQogCi1FTlRSWShzZXJwZW50X2NiY19kZWNfMTZ3YXkpCitTWU1fRlVOQ19TVEFS VChzZXJwZW50X2NiY19kZWNfMTZ3YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCBDVFgK IAkgKgklcnNpOiBkc3QKQEAgLTczOCw5ICs3MzgsOSBAQCBFTlRSWShzZXJwZW50X2NiY19kZWNf MTZ3YXkpCiAKIAlGUkFNRV9FTkQKIAlyZXQ7Ci1FTkRQUk9DKHNlcnBlbnRfY2JjX2RlY18xNndh eSkKK1NZTV9GVU5DX0VORChzZXJwZW50X2NiY19kZWNfMTZ3YXkpCiAKLUVOVFJZKHNlcnBlbnRf Y3RyXzE2d2F5KQorU1lNX0ZVTkNfU1RBUlQoc2VycGVudF9jdHJfMTZ3YXkpCiAJLyogaW5wdXQ6 CiAJICoJJXJkaTogY3R4LCBDVFgKIAkgKgklcnNpOiBkc3QgKDE2IGJsb2NrcykKQEAgLTc2Myw5 ICs3NjMsOSBAQCBFTlRSWShzZXJwZW50X2N0cl8xNndheSkKIAogCUZSQU1FX0VORAogCXJldDsK LUVORFBST0Moc2VycGVudF9jdHJfMTZ3YXkpCitTWU1fRlVOQ19FTkQoc2VycGVudF9jdHJfMTZ3 YXkpCiAKLUVOVFJZKHNlcnBlbnRfeHRzX2VuY18xNndheSkKK1NZTV9GVU5DX1NUQVJUKHNlcnBl bnRfeHRzX2VuY18xNndheSkKIAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgsIENUWAogCSAqCSVy c2k6IGRzdCAoMTYgYmxvY2tzKQpAQCAtNzg5LDkgKzc4OSw5IEBAIEVOVFJZKHNlcnBlbnRfeHRz X2VuY18xNndheSkKIAogCUZSQU1FX0VORAogCXJldDsKLUVORFBST0Moc2VycGVudF94dHNfZW5j XzE2d2F5KQorU1lNX0ZVTkNfRU5EKHNlcnBlbnRfeHRzX2VuY18xNndheSkKIAotRU5UUlkoc2Vy cGVudF94dHNfZGVjXzE2d2F5KQorU1lNX0ZVTkNfU1RBUlQoc2VycGVudF94dHNfZGVjXzE2d2F5 KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJJXJzaTogZHN0ICgxNiBibG9j a3MpCkBAIC04MTUsNCArODE1LDQgQEAgRU5UUlkoc2VycGVudF94dHNfZGVjXzE2d2F5KQogCiAJ RlJBTUVfRU5ECiAJcmV0OwotRU5EUFJPQyhzZXJwZW50X3h0c19kZWNfMTZ3YXkpCitTWU1fRlVO Q19FTkQoc2VycGVudF94dHNfZGVjXzE2d2F5KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRv L3NlcnBlbnQtc3NlMi14ODZfNjQtYXNtXzY0LlMgYi9hcmNoL3g4Ni9jcnlwdG8vc2VycGVudC1z c2UyLXg4Nl82NC1hc21fNjQuUwppbmRleCBhY2MwNjZjN2M2YjIuLmJkZWVlOTAwZGY2MyAxMDA2 NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL3NlcnBlbnQtc3NlMi14ODZfNjQtYXNtXzY0LlMKKysr IGIvYXJjaC94ODYvY3J5cHRvL3NlcnBlbnQtc3NlMi14ODZfNjQtYXNtXzY0LlMKQEAgLTYzNCw3 ICs2MzQsNyBAQAogCXB4b3IgdDAsCQl4MzsgXAogCW1vdmRxdSB4MywJCSgzKjQqNCkob3V0KTsK IAotRU5UUlkoX19zZXJwZW50X2VuY19ibGtfOHdheSkKK1NZTV9GVU5DX1NUQVJUKF9fc2VycGVu dF9lbmNfYmxrXzh3YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCBDVFgKIAkgKgklcnNp OiBkc3QKQEAgLTY5Nyw5ICs2OTcsOSBAQCBFTlRSWShfX3NlcnBlbnRfZW5jX2Jsa184d2F5KQog CXhvcl9ibG9ja3MoJXJheCwgUkEyLCBSQjIsIFJDMiwgUkQyLCBSSzAsIFJLMSwgUksyKTsKIAog CXJldDsKLUVORFBST0MoX19zZXJwZW50X2VuY19ibGtfOHdheSkKK1NZTV9GVU5DX0VORChfX3Nl cnBlbnRfZW5jX2Jsa184d2F5KQogCi1FTlRSWShzZXJwZW50X2RlY19ibGtfOHdheSkKK1NZTV9G VU5DX1NUQVJUKHNlcnBlbnRfZGVjX2Jsa184d2F5KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0 eCwgQ1RYCiAJICoJJXJzaTogZHN0CkBAIC03NTEsNCArNzUxLDQgQEAgRU5UUlkoc2VycGVudF9k ZWNfYmxrXzh3YXkpCiAJd3JpdGVfYmxvY2tzKCVyYXgsIFJDMiwgUkQyLCBSQjIsIFJFMiwgUksw LCBSSzEsIFJLMik7CiAKIAlyZXQ7Ci1FTkRQUk9DKHNlcnBlbnRfZGVjX2Jsa184d2F5KQorU1lN X0ZVTkNfRU5EKHNlcnBlbnRfZGVjX2Jsa184d2F5KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5 cHRvL3NoYTEtbWIvc2hhMV9tYl9tZ3JfZmx1c2hfYXZ4Mi5TIGIvYXJjaC94ODYvY3J5cHRvL3No YTEtbWIvc2hhMV9tYl9tZ3JfZmx1c2hfYXZ4Mi5TCmluZGV4IDdjZmJhNzM4ZjEwNC4uYTFiZTNi MzM5OTBjIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vc2hhMS1tYi9zaGExX21iX21ncl9m bHVzaF9hdngyLlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL3NoYTEtbWIvc2hhMV9tYl9tZ3JfZmx1 c2hfYXZ4Mi5TCkBAIC0xMDMsNyArMTAzLDcgQEAgb2Zmc2V0ID0gXF9vZmZzZXQKIAogIyBKT0Iq IHNoYTFfbWJfbWdyX2ZsdXNoX2F2eDIoTUJfTUdSICpzdGF0ZSkKICMgYXJnIDEgOiByY3ggOiBz dGF0ZQotRU5UUlkoc2hhMV9tYl9tZ3JfZmx1c2hfYXZ4MikKK1NZTV9GVU5DX1NUQVJUKHNoYTFf bWJfbWdyX2ZsdXNoX2F2eDIpCiAJRlJBTUVfQkVHSU4KIAlwdXNoCSVyYngKIApAQCAtMjIwLDEz ICsyMjAsMTMgQEAgcmV0dXJuOgogcmV0dXJuX251bGw6CiAJeG9yICAgICBqb2JfcmF4LCBqb2Jf cmF4CiAJam1wICAgICByZXR1cm4KLUVORFBST0Moc2hhMV9tYl9tZ3JfZmx1c2hfYXZ4MikKK1NZ TV9GVU5DX0VORChzaGExX21iX21ncl9mbHVzaF9hdngyKQogCiAKICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKIC5hbGln biAxNgotRU5UUlkoc2hhMV9tYl9tZ3JfZ2V0X2NvbXBfam9iX2F2eDIpCitTWU1fRlVOQ19TVEFS VChzaGExX21iX21ncl9nZXRfY29tcF9qb2JfYXZ4MikKIAlwdXNoICAgICVyYngKIAogCSMjIGlm IGJpdCAzMiszIGlzIHNldCwgdGhlbiBhbGwgbGFuZXMgYXJlIGVtcHR5CkBAIC0yNzksNyArMjc5 LDcgQEAgRU5UUlkoc2hhMV9tYl9tZ3JfZ2V0X2NvbXBfam9iX2F2eDIpCiAJeG9yICAgICBqb2Jf cmF4LCBqb2JfcmF4CiAJcG9wICAgICAlcmJ4CiAJcmV0Ci1FTkRQUk9DKHNoYTFfbWJfbWdyX2dl dF9jb21wX2pvYl9hdngyKQorU1lNX0ZVTkNfRU5EKHNoYTFfbWJfbWdyX2dldF9jb21wX2pvYl9h dngyKQogCiAuc2VjdGlvbgkucm9kYXRhLmNzdDE2LmNsZWFyX2xvd19uaWJibGUsICJhTSIsIEBw cm9nYml0cywgMTYKIC5hbGlnbiAxNgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRvL3NoYTEt bWIvc2hhMV9tYl9tZ3Jfc3VibWl0X2F2eDIuUyBiL2FyY2gveDg2L2NyeXB0by9zaGExLW1iL3No YTFfbWJfbWdyX3N1Ym1pdF9hdngyLlMKaW5kZXggN2E5M2IxYzBkNjlhLi5hNDZlM2IwNDM4NWUg MTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9zaGExLW1iL3NoYTFfbWJfbWdyX3N1Ym1pdF9h dngyLlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL3NoYTEtbWIvc2hhMV9tYl9tZ3Jfc3VibWl0X2F2 eDIuUwpAQCAtOTgsNyArOTgsNyBAQCBsYW5lX2RhdGEgICAgICAgPSAlcjEwCiAjIEpPQiogc3Vi bWl0X21iX21ncl9zdWJtaXRfYXZ4MihNQl9NR1IgKnN0YXRlLCBqb2Jfc2hhMSAqam9iKQogIyBh cmcgMSA6IHJjeCA6IHN0YXRlCiAjIGFyZyAyIDogcmR4IDogam9iCi1FTlRSWShzaGExX21iX21n cl9zdWJtaXRfYXZ4MikKK1NZTV9GVU5DX1NUQVJUKHNoYTFfbWJfbWdyX3N1Ym1pdF9hdngyKQog CUZSQU1FX0JFR0lOCiAJcHVzaAklcmJ4CiAJcHVzaAklcjEyCkBAIC0yMDEsNyArMjAxLDcgQEAg cmV0dXJuX251bGw6CiAJeG9yICAgICBqb2JfcmF4LCBqb2JfcmF4CiAJam1wICAgICByZXR1cm4K IAotRU5EUFJPQyhzaGExX21iX21ncl9zdWJtaXRfYXZ4MikKK1NZTV9GVU5DX0VORChzaGExX21i X21ncl9zdWJtaXRfYXZ4MikKIAogLnNlY3Rpb24JLnJvZGF0YS5jc3QxNi5jbGVhcl9sb3dfbmli YmxlLCAiYU0iLCBAcHJvZ2JpdHMsIDE2CiAuYWxpZ24gMTYKZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2NyeXB0by9zaGExLW1iL3NoYTFfeDhfYXZ4Mi5TIGIvYXJjaC94ODYvY3J5cHRvL3NoYTEtbWIv c2hhMV94OF9hdngyLlMKaW5kZXggMjBmNzdhYTYzM2RlLi4wNGQ3NjM1MjBhODIgMTAwNjQ0Ci0t LSBhL2FyY2gveDg2L2NyeXB0by9zaGExLW1iL3NoYTFfeDhfYXZ4Mi5TCisrKyBiL2FyY2gveDg2 L2NyeXB0by9zaGExLW1iL3NoYTFfeDhfYXZ4Mi5TCkBAIC0yOTQsNyArMjk0LDcgQEAgVzE0ICA9 IFRNUF8KICMgYXJnIDEgOiBwb2ludGVyIHRvIGFycmF5WzRdIG9mIHBvaW50ZXIgdG8gaW5wdXQg ZGF0YQogIyBhcmcgMiA6IHNpemUgKGluIGJsb2NrcykgOzsgYXNzdW1lZCB0byBiZSA+PSAxCiAj Ci1FTlRSWShzaGExX3g4X2F2eDIpCitTWU1fRlVOQ19TVEFSVChzaGExX3g4X2F2eDIpCiAKIAkj IHNhdmUgY2FsbGVlLXNhdmVkIGNsb2JiZXJlZCByZWdpc3RlcnMgdG8gY29tcGx5IHdpdGggQyBm dW5jdGlvbiBBQkkKIAlwdXNoCSVyMTIKQEAgLTQ1OCw3ICs0NTgsNyBAQCBsbG9vcDoKIAlwb3AJ JXIxMgogCiAJcmV0Ci1FTkRQUk9DKHNoYTFfeDhfYXZ4MikKK1NZTV9GVU5DX0VORChzaGExX3g4 X2F2eDIpCiAKIAogLnNlY3Rpb24JLnJvZGF0YS5jc3QzMi5LMDBfMTksICJhTSIsIEBwcm9nYml0 cywgMzIKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9zaGExX2F2eDJfeDg2XzY0X2FzbS5T IGIvYXJjaC94ODYvY3J5cHRvL3NoYTFfYXZ4Ml94ODZfNjRfYXNtLlMKaW5kZXggOWY3MTJhN2Rm ZDc5Li42ZGVjYzg1ZWY3YjcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9zaGExX2F2eDJf eDg2XzY0X2FzbS5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGExX2F2eDJfeDg2XzY0X2FzbS5T CkBAIC02MzQsNyArNjM0LDcgQEAgX2xvb3AzOgogICogcGFyYW06IGZ1bmN0aW9uJ3MgbmFtZQog ICovCiAubWFjcm8gU0hBMV9WRUNUT1JfQVNNICBuYW1lCi0JRU5UUlkoXG5hbWUpCisJU1lNX0ZV TkNfU1RBUlQoXG5hbWUpCiAKIAlwdXNoCSVyYngKIAlwdXNoCSVyMTIKQEAgLTY3Niw3ICs2NzYs NyBAQCBfbG9vcDM6CiAKIAlyZXQKIAotCUVORFBST0MoXG5hbWUpCisJU1lNX0ZVTkNfRU5EKFxu YW1lKQogLmVuZG0KIAogLnNlY3Rpb24gLnJvZGF0YQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5 cHRvL3NoYTFfbmlfYXNtLlMgYi9hcmNoL3g4Ni9jcnlwdG8vc2hhMV9uaV9hc20uUwppbmRleCBl YmJkYmE3MmFlMDcuLjExZWZlM2E0NWExZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL3No YTFfbmlfYXNtLlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL3NoYTFfbmlfYXNtLlMKQEAgLTk1LDcg Kzk1LDcgQEAKICAqLwogLnRleHQKIC5hbGlnbiAzMgotRU5UUlkoc2hhMV9uaV90cmFuc2Zvcm0p CitTWU1fRlVOQ19TVEFSVChzaGExX25pX3RyYW5zZm9ybSkKIAltb3YJCSVyc3AsIFJTUFNBVkUK IAlzdWIJCSRGUkFNRV9TSVpFLCAlcnNwCiAJYW5kCQkkfjB4RiwgJXJzcApAQCAtMjkxLDcgKzI5 MSw3IEBAIEVOVFJZKHNoYTFfbmlfdHJhbnNmb3JtKQogCW1vdgkJUlNQU0FWRSwgJXJzcAogCiAJ cmV0Ci1FTkRQUk9DKHNoYTFfbmlfdHJhbnNmb3JtKQorU1lNX0ZVTkNfRU5EKHNoYTFfbmlfdHJh bnNmb3JtKQogCiAuc2VjdGlvbgkucm9kYXRhLmNzdDE2LlBTSFVGRkxFX0JZVEVfRkxJUF9NQVNL LCAiYU0iLCBAcHJvZ2JpdHMsIDE2CiAuYWxpZ24gMTYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2Ny eXB0by9zaGExX3Nzc2UzX2FzbS5TIGIvYXJjaC94ODYvY3J5cHRvL3NoYTFfc3NzZTNfYXNtLlMK aW5kZXggNjIwNGJkNTM1MjhjLi5jMjUzMjU1ZmQ0YzEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2Ny eXB0by9zaGExX3Nzc2UzX2FzbS5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGExX3Nzc2UzX2Fz bS5TCkBAIC03MSw3ICs3MSw3IEBACiAgKiBwYXJhbTogZnVuY3Rpb24ncyBuYW1lCiAgKi8KIC5t YWNybyBTSEExX1ZFQ1RPUl9BU00gIG5hbWUKLQlFTlRSWShcbmFtZSkKKwlTWU1fRlVOQ19TVEFS VChcbmFtZSkKIAogCXB1c2gJJXJieAogCXB1c2gJJXIxMgpAQCAtMTA1LDcgKzEwNSw3IEBACiAJ cG9wCSVyYngKIAlyZXQKIAotCUVORFBST0MoXG5hbWUpCisJU1lNX0ZVTkNfRU5EKFxuYW1lKQog LmVuZG0KIAogLyoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9zaGEyNTYtYXZ4LWFzbS5T IGIvYXJjaC94ODYvY3J5cHRvL3NoYTI1Ni1hdngtYXNtLlMKaW5kZXggMDAxYmJjZjkzYzc5Li4y MmUxNGM4ZGQyZTQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9zaGEyNTYtYXZ4LWFzbS5T CisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGEyNTYtYXZ4LWFzbS5TCkBAIC0zNDcsNyArMzQ3LDcg QEAgYSA9IFRNUF8KICMjIGFyZyAzIDogTnVtIGJsb2NrcwogIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAudGV4 dAotRU5UUlkoc2hhMjU2X3RyYW5zZm9ybV9hdngpCitTWU1fRlVOQ19TVEFSVChzaGEyNTZfdHJh bnNmb3JtX2F2eCkKIC5hbGlnbiAzMgogCXB1c2hxICAgJXJieAogCXB1c2hxICAgJXIxMgpAQCAt NDYwLDcgKzQ2MCw3IEBAIGRvbmVfaGFzaDoKIAlwb3BxCSVyMTIKIAlwb3BxICAgICVyYngKIAly ZXQKLUVORFBST0Moc2hhMjU2X3RyYW5zZm9ybV9hdngpCitTWU1fRlVOQ19FTkQoc2hhMjU2X3Ry YW5zZm9ybV9hdngpCiAKIC5zZWN0aW9uCS5yb2RhdGEuY3N0MjU2LksyNTYsICJhTSIsIEBwcm9n Yml0cywgMjU2CiAuYWxpZ24gNjQKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9zaGEyNTYt YXZ4Mi1hc20uUyBiL2FyY2gveDg2L2NyeXB0by9zaGEyNTYtYXZ4Mi1hc20uUwppbmRleCAxNDIw ZGIxNWRjZGQuLjUxOWI1NTFhZDU3NiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL3NoYTI1 Ni1hdngyLWFzbS5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGEyNTYtYXZ4Mi1hc20uUwpAQCAt NTI2LDcgKzUyNiw3IEBAIFNUQUNLX1NJWkUJPSBfUlNQICAgICAgKyBfUlNQX1NJWkUKICMjIGFy ZyAzIDogTnVtIGJsb2NrcwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAudGV4dAotRU5UUlkoc2hhMjU2X3Ry YW5zZm9ybV9yb3J4KQorU1lNX0ZVTkNfU1RBUlQoc2hhMjU2X3RyYW5zZm9ybV9yb3J4KQogLmFs aWduIDMyCiAJcHVzaHEJJXJieAogCXB1c2hxCSVyMTIKQEAgLTcxMyw3ICs3MTMsNyBAQCBkb25l X2hhc2g6CiAJcG9wcQklcjEyCiAJcG9wcQklcmJ4CiAJcmV0Ci1FTkRQUk9DKHNoYTI1Nl90cmFu c2Zvcm1fcm9yeCkKK1NZTV9GVU5DX0VORChzaGEyNTZfdHJhbnNmb3JtX3JvcngpCiAKIC5zZWN0 aW9uCS5yb2RhdGEuY3N0NTEyLksyNTYsICJhTSIsIEBwcm9nYml0cywgNTEyCiAuYWxpZ24gNjQK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9zaGEyNTYtbWIvc2hhMjU2X21iX21ncl9mbHVz aF9hdngyLlMgYi9hcmNoL3g4Ni9jcnlwdG8vc2hhMjU2LW1iL3NoYTI1Nl9tYl9tZ3JfZmx1c2hf YXZ4Mi5TCmluZGV4IDE2YzRjY2IxZjE1NC4uMTFmMDBlZTBhM2E0IDEwMDY0NAotLS0gYS9hcmNo L3g4Ni9jcnlwdG8vc2hhMjU2LW1iL3NoYTI1Nl9tYl9tZ3JfZmx1c2hfYXZ4Mi5TCisrKyBiL2Fy Y2gveDg2L2NyeXB0by9zaGEyNTYtbWIvc2hhMjU2X21iX21ncl9mbHVzaF9hdngyLlMKQEAgLTEw MSw3ICsxMDEsNyBAQCBvZmZzZXQgPSBcX29mZnNldAogCiAjIEpPQl9TSEEyNTYqIHNoYTI1Nl9t Yl9tZ3JfZmx1c2hfYXZ4MihNQl9NR1IgKnN0YXRlKQogIyBhcmcgMSA6IHJjeCA6IHN0YXRlCi1F TlRSWShzaGEyNTZfbWJfbWdyX2ZsdXNoX2F2eDIpCitTWU1fRlVOQ19TVEFSVChzaGEyNTZfbWJf bWdyX2ZsdXNoX2F2eDIpCiAJRlJBTUVfQkVHSU4KICAgICAgICAgcHVzaCAgICAlcmJ4CiAKQEAg LTIyMCwxMiArMjIwLDEyIEBAIHJldHVybjoKIHJldHVybl9udWxsOgogCXhvcglqb2JfcmF4LCBq b2JfcmF4CiAJam1wCXJldHVybgotRU5EUFJPQyhzaGEyNTZfbWJfbWdyX2ZsdXNoX2F2eDIpCitT WU1fRlVOQ19FTkQoc2hhMjU2X21iX21ncl9mbHVzaF9hdngyKQogCiAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKIAogLmFsaWduIDE2Ci1FTlRSWShzaGEyNTZfbWJfbWdyX2dldF9jb21wX2pvYl9hdngy KQorU1lNX0ZVTkNfU1RBUlQoc2hhMjU2X21iX21ncl9nZXRfY29tcF9qb2JfYXZ4MikKIAlwdXNo CSVyYngKIAogCSMjIGlmIGJpdCAzMiszIGlzIHNldCwgdGhlbiBhbGwgbGFuZXMgYXJlIGVtcHR5 CkBAIC0yODIsNyArMjgyLDcgQEAgRU5UUlkoc2hhMjU2X21iX21ncl9nZXRfY29tcF9qb2JfYXZ4 MikKIAl4b3IJam9iX3JheCwgam9iX3JheAogCXBvcAklcmJ4CiAJcmV0Ci1FTkRQUk9DKHNoYTI1 Nl9tYl9tZ3JfZ2V0X2NvbXBfam9iX2F2eDIpCitTWU1fRlVOQ19FTkQoc2hhMjU2X21iX21ncl9n ZXRfY29tcF9qb2JfYXZ4MikKIAogLnNlY3Rpb24JLnJvZGF0YS5jc3QxNi5jbGVhcl9sb3dfbmli YmxlLCAiYU0iLCBAcHJvZ2JpdHMsIDE2CiAuYWxpZ24gMTYKZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2NyeXB0by9zaGEyNTYtbWIvc2hhMjU2X21iX21ncl9zdWJtaXRfYXZ4Mi5TIGIvYXJjaC94ODYv Y3J5cHRvL3NoYTI1Ni1tYi9zaGEyNTZfbWJfbWdyX3N1Ym1pdF9hdngyLlMKaW5kZXggYjM2YWU3 NDU0MDg0Li4yMjEzYzA0YTMwZGMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9zaGEyNTYt bWIvc2hhMjU2X21iX21ncl9zdWJtaXRfYXZ4Mi5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGEy NTYtbWIvc2hhMjU2X21iX21ncl9zdWJtaXRfYXZ4Mi5TCkBAIC05Niw3ICs5Niw3IEBAIGxhbmVf ZGF0YQk9ICVyMTAKICMgSk9CKiBzaGEyNTZfbWJfbWdyX3N1Ym1pdF9hdngyKE1CX01HUiAqc3Rh dGUsIEpPQl9TSEEyNTYgKmpvYikKICMgYXJnIDEgOiByY3ggOiBzdGF0ZQogIyBhcmcgMiA6IHJk eCA6IGpvYgotRU5UUlkoc2hhMjU2X21iX21ncl9zdWJtaXRfYXZ4MikKK1NZTV9GVU5DX1NUQVJU KHNoYTI1Nl9tYl9tZ3Jfc3VibWl0X2F2eDIpCiAJRlJBTUVfQkVHSU4KIAlwdXNoCSVyYngKIAlw dXNoCSVyMTIKQEAgLTIwNiw3ICsyMDYsNyBAQCByZXR1cm5fbnVsbDoKIAl4b3IJam9iX3JheCwg am9iX3JheAogCWptcAlyZXR1cm4KIAotRU5EUFJPQyhzaGEyNTZfbWJfbWdyX3N1Ym1pdF9hdngy KQorU1lNX0ZVTkNfRU5EKHNoYTI1Nl9tYl9tZ3Jfc3VibWl0X2F2eDIpCiAKIC5zZWN0aW9uCS5y b2RhdGEuY3N0MTYuY2xlYXJfbG93X25pYmJsZSwgImFNIiwgQHByb2diaXRzLCAxNgogLmFsaWdu IDE2CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlwdG8vc2hhMjU2LW1iL3NoYTI1Nl94OF9hdngy LlMgYi9hcmNoL3g4Ni9jcnlwdG8vc2hhMjU2LW1iL3NoYTI1Nl94OF9hdngyLlMKaW5kZXggMTY4 N2M4MGM1OTk1Li4wNDJkMjM4MWY0MzUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9zaGEy NTYtbWIvc2hhMjU2X3g4X2F2eDIuUworKysgYi9hcmNoL3g4Ni9jcnlwdG8vc2hhMjU2LW1iL3No YTI1Nl94OF9hdngyLlMKQEAgLTI4MCw3ICsyODAsNyBAQCBhID0gVE1QXwogCSMgZ2VuZXJhbCBy ZWdpc3RlcnMgcHJlc2VydmVkIGluIG91dGVyIGNhbGxpbmcgcm91dGluZQogCSMgb3V0ZXIgY2Fs bGluZyByb3V0aW5lIHNhdmVzIGFsbCB0aGUgWE1NIHJlZ2lzdGVycwogCSMgc2F2ZSByc3AsIGFs bG9jYXRlIDMyLWJ5dGUgYWxpZ25lZCBmb3IgbG9jYWwgdmFyaWFibGVzCi1FTlRSWShzaGEyNTZf eDhfYXZ4MikKK1NZTV9GVU5DX1NUQVJUKHNoYTI1Nl94OF9hdngyKQogCiAJIyBzYXZlIGNhbGxl ZS1zYXZlZCBjbG9iYmVyZWQgcmVnaXN0ZXJzIHRvIGNvbXBseSB3aXRoIEMgZnVuY3Rpb24gQUJJ CiAJcHVzaCAgICAlcjEyCkBAIC00MzYsNyArNDM2LDcgQEAgTHJvdW5kc18xNl94eDoKIAlwb3Ag ICAgICVyMTIKIAogCXJldAotRU5EUFJPQyhzaGEyNTZfeDhfYXZ4MikKK1NZTV9GVU5DX0VORChz aGEyNTZfeDhfYXZ4MikKIAogLnNlY3Rpb24JLnJvZGF0YS5LMjU2XzgsICJhIiwgQHByb2diaXRz CiAuYWxpZ24gNjQKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9zaGEyNTYtc3NzZTMtYXNt LlMgYi9hcmNoL3g4Ni9jcnlwdG8vc2hhMjU2LXNzc2UzLWFzbS5TCmluZGV4IGM2YzA1ZWQyYzE2 YS4uNjljYzJmOTFkYzRjIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vc2hhMjU2LXNzc2Uz LWFzbS5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGEyNTYtc3NzZTMtYXNtLlMKQEAgLTM1Myw3 ICszNTMsNyBAQCBhID0gVE1QXwogIyMgYXJnIDMgOiBOdW0gYmxvY2tzCiAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKIC50ZXh0Ci1FTlRSWShzaGEyNTZfdHJhbnNmb3JtX3Nzc2UzKQorU1lNX0ZVTkNfU1RBUlQo c2hhMjU2X3RyYW5zZm9ybV9zc3NlMykKIC5hbGlnbiAzMgogCXB1c2hxICAgJXJieAogCXB1c2hx ICAgJXIxMgpAQCAtNDcxLDcgKzQ3MSw3IEBAIGRvbmVfaGFzaDoKIAlwb3BxICAgICVyYngKIAog CXJldAotRU5EUFJPQyhzaGEyNTZfdHJhbnNmb3JtX3Nzc2UzKQorU1lNX0ZVTkNfRU5EKHNoYTI1 Nl90cmFuc2Zvcm1fc3NzZTMpCiAKIC5zZWN0aW9uCS5yb2RhdGEuY3N0MjU2LksyNTYsICJhTSIs IEBwcm9nYml0cywgMjU2CiAuYWxpZ24gNjQKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9z aGEyNTZfbmlfYXNtLlMgYi9hcmNoL3g4Ni9jcnlwdG8vc2hhMjU2X25pX2FzbS5TCmluZGV4IGZi NThmNThlY2ZiYy4uN2FiYWRlMDRhM2EzIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vc2hh MjU2X25pX2FzbS5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGEyNTZfbmlfYXNtLlMKQEAgLTk3 LDcgKzk3LDcgQEAKIAogLnRleHQKIC5hbGlnbiAzMgotRU5UUlkoc2hhMjU2X25pX3RyYW5zZm9y bSkKK1NZTV9GVU5DX1NUQVJUKHNoYTI1Nl9uaV90cmFuc2Zvcm0pCiAKIAlzaGwJCSQ2LCBOVU1f QkxLUwkJLyogIGNvbnZlcnQgdG8gYnl0ZXMgKi8KIAlqegkJLkxkb25lX2hhc2gKQEAgLTMyNyw3 ICszMjcsNyBAQCBFTlRSWShzaGEyNTZfbmlfdHJhbnNmb3JtKQogLkxkb25lX2hhc2g6CiAKIAly ZXQKLUVORFBST0Moc2hhMjU2X25pX3RyYW5zZm9ybSkKK1NZTV9GVU5DX0VORChzaGEyNTZfbmlf dHJhbnNmb3JtKQogCiAuc2VjdGlvbgkucm9kYXRhLmNzdDI1Ni5LMjU2LCAiYU0iLCBAcHJvZ2Jp dHMsIDI1NgogLmFsaWduIDY0CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlwdG8vc2hhNTEyLWF2 eC1hc20uUyBiL2FyY2gveDg2L2NyeXB0by9zaGE1MTItYXZ4LWFzbS5TCmluZGV4IDM5MjM1ZmVm ZTZmNy4uMzcwNGRkZDdlNWQ1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vc2hhNTEyLWF2 eC1hc20uUworKysgYi9hcmNoL3g4Ni9jcnlwdG8vc2hhNTEyLWF2eC1hc20uUwpAQCAtMjc3LDcg KzI3Nyw3IEBAIGZyYW1lX3NpemUgPSBmcmFtZV9HUFJTQVZFICsgR1BSU0FWRV9TSVpFCiAjIG1l c3NhZ2UgYmxvY2tzLgogIyBMIGlzIHRoZSBtZXNzYWdlIGxlbmd0aCBpbiBTSEE1MTIgYmxvY2tz CiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKLUVOVFJZKHNoYTUxMl90cmFuc2Zvcm1fYXZ4KQorU1lNX0ZVTkNf U1RBUlQoc2hhNTEyX3RyYW5zZm9ybV9hdngpCiAJY21wICQwLCBtc2dsZW4KIAlqZSBub3dvcmsK IApAQCAtMzY1LDcgKzM2NSw3IEBAIHVwZGF0ZWJsb2NrOgogCiBub3dvcms6CiAJcmV0Ci1FTkRQ Uk9DKHNoYTUxMl90cmFuc2Zvcm1fYXZ4KQorU1lNX0ZVTkNfRU5EKHNoYTUxMl90cmFuc2Zvcm1f YXZ4KQogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMjIyBCaW5hcnkgRGF0YQpkaWZmIC0tZ2l0IGEvYXJj aC94ODYvY3J5cHRvL3NoYTUxMi1hdngyLWFzbS5TIGIvYXJjaC94ODYvY3J5cHRvL3NoYTUxMi1h dngyLWFzbS5TCmluZGV4IGIxNmQ1NjAwNTE2Mi4uODBkODMwZTdlZTA5IDEwMDY0NAotLS0gYS9h cmNoL3g4Ni9jcnlwdG8vc2hhNTEyLWF2eDItYXNtLlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL3No YTUxMi1hdngyLWFzbS5TCkBAIC01NjksNyArNTY5LDcgQEAgZnJhbWVfc2l6ZSA9IGZyYW1lX0dQ UlNBVkUgKyBHUFJTQVZFX1NJWkUKICMgICBtZXNzYWdlIGJsb2Nrcy4KICMgTCBpcyB0aGUgbWVz c2FnZSBsZW5ndGggaW4gU0hBNTEyIGJsb2NrcwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1FTlRSWShzaGE1 MTJfdHJhbnNmb3JtX3JvcngpCitTWU1fRlVOQ19TVEFSVChzaGE1MTJfdHJhbnNmb3JtX3Jvcngp CiAJIyBBbGxvY2F0ZSBTdGFjayBTcGFjZQogCW1vdgklcnNwLCAlcmF4CiAJc3ViCSRmcmFtZV9z aXplLCAlcnNwCkBAIC02ODIsNyArNjgyLDcgQEAgZG9uZV9oYXNoOgogCSMgUmVzdG9yZSBTdGFj ayBQb2ludGVyCiAJbW92CWZyYW1lX1JTUFNBVkUoJXJzcCksICVyc3AKIAlyZXQKLUVORFBST0Mo c2hhNTEyX3RyYW5zZm9ybV9yb3J4KQorU1lNX0ZVTkNfRU5EKHNoYTUxMl90cmFuc2Zvcm1fcm9y eCkKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIyMgQmluYXJ5IERhdGEKZGlmZiAtLWdpdCBhL2FyY2gv eDg2L2NyeXB0by9zaGE1MTItbWIvc2hhNTEyX21iX21ncl9mbHVzaF9hdngyLlMgYi9hcmNoL3g4 Ni9jcnlwdG8vc2hhNTEyLW1iL3NoYTUxMl9tYl9tZ3JfZmx1c2hfYXZ4Mi5TCmluZGV4IDdjNjI5 Y2FlYmMwNS4uODY0MmYzYTA0Mzg4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vc2hhNTEy LW1iL3NoYTUxMl9tYl9tZ3JfZmx1c2hfYXZ4Mi5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGE1 MTItbWIvc2hhNTEyX21iX21ncl9mbHVzaF9hdngyLlMKQEAgLTEwNyw3ICsxMDcsNyBAQCBvZmZz ZXQgPSBcX29mZnNldAogCiAjIEpPQiogc2hhNTEyX21iX21ncl9mbHVzaF9hdngyKE1CX01HUiAq c3RhdGUpCiAjIGFyZyAxIDogcmN4IDogc3RhdGUKLUVOVFJZKHNoYTUxMl9tYl9tZ3JfZmx1c2hf YXZ4MikKK1NZTV9GVU5DX1NUQVJUKHNoYTUxMl9tYl9tZ3JfZmx1c2hfYXZ4MikKIAlGUkFNRV9C RUdJTgogCXB1c2gJJXJieAogCkBAIC0yMTcsMTAgKzIxNywxMCBAQCByZXR1cm46CiByZXR1cm5f bnVsbDoKICAgICAgICAgeG9yICAgICBqb2JfcmF4LCBqb2JfcmF4CiAgICAgICAgIGptcCAgICAg cmV0dXJuCi1FTkRQUk9DKHNoYTUxMl9tYl9tZ3JfZmx1c2hfYXZ4MikKK1NZTV9GVU5DX0VORChz aGE1MTJfbWJfbWdyX2ZsdXNoX2F2eDIpCiAuYWxpZ24gMTYKIAotRU5UUlkoc2hhNTEyX21iX21n cl9nZXRfY29tcF9qb2JfYXZ4MikKK1NZTV9GVU5DX1NUQVJUKHNoYTUxMl9tYl9tZ3JfZ2V0X2Nv bXBfam9iX2F2eDIpCiAgICAgICAgIHB1c2ggICAgJXJieAogCiAJbW92ICAgICBfdW51c2VkX2xh bmVzKHN0YXRlKSwgdW51c2VkX2xhbmVzCkBAIC0yNzksNyArMjc5LDcgQEAgRU5UUlkoc2hhNTEy X21iX21ncl9nZXRfY29tcF9qb2JfYXZ4MikKICAgICAgICAgeG9yICAgICBqb2JfcmF4LCBqb2Jf cmF4CiAJcG9wICAgICAlcmJ4CiAgICAgICAgIHJldAotRU5EUFJPQyhzaGE1MTJfbWJfbWdyX2dl dF9jb21wX2pvYl9hdngyKQorU1lNX0ZVTkNfRU5EKHNoYTUxMl9tYl9tZ3JfZ2V0X2NvbXBfam9i X2F2eDIpCiAKIC5zZWN0aW9uCS5yb2RhdGEuY3N0OC5vbmUsICJhTSIsIEBwcm9nYml0cywgOAog LmFsaWduIDgKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9zaGE1MTItbWIvc2hhNTEyX21i X21ncl9zdWJtaXRfYXZ4Mi5TIGIvYXJjaC94ODYvY3J5cHRvL3NoYTUxMi1tYi9zaGE1MTJfbWJf bWdyX3N1Ym1pdF9hdngyLlMKaW5kZXggNGJhNzA5YmE3OGU1Li42MjkzMjcyM2Q2ZTkgMTAwNjQ0 Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9zaGE1MTItbWIvc2hhNTEyX21iX21ncl9zdWJtaXRfYXZ4 Mi5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGE1MTItbWIvc2hhNTEyX21iX21ncl9zdWJtaXRf YXZ4Mi5TCkBAIC05OCw3ICs5OCw3IEBACiAjIEpPQiogc2hhNTEyX21iX21ncl9zdWJtaXRfYXZ4 MihNQl9NR1IgKnN0YXRlLCBKT0IgKmpvYikKICMgYXJnIDEgOiByY3ggOiBzdGF0ZQogIyBhcmcg MiA6IHJkeCA6IGpvYgotRU5UUlkoc2hhNTEyX21iX21ncl9zdWJtaXRfYXZ4MikKK1NZTV9GVU5D X1NUQVJUKHNoYTUxMl9tYl9tZ3Jfc3VibWl0X2F2eDIpCiAJRlJBTUVfQkVHSU4KIAlwdXNoCSVy YngKIAlwdXNoCSVyMTIKQEAgLTIwOCw3ICsyMDgsNyBAQCByZXR1cm46CiByZXR1cm5fbnVsbDoK IAl4b3IgICAgIGpvYl9yYXgsIGpvYl9yYXgKIAlqbXAgICAgIHJldHVybgotRU5EUFJPQyhzaGE1 MTJfbWJfbWdyX3N1Ym1pdF9hdngyKQorU1lNX0ZVTkNfRU5EKHNoYTUxMl9tYl9tZ3Jfc3VibWl0 X2F2eDIpCiAKIC8qIFVOVVNFRD8KIC5zZWN0aW9uCS5yb2RhdGEuY3N0MTYsICJhTSIsIEBwcm9n Yml0cywgMTYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9zaGE1MTItbWIvc2hhNTEyX3g0 X2F2eDIuUyBiL2FyY2gveDg2L2NyeXB0by9zaGE1MTItbWIvc2hhNTEyX3g0X2F2eDIuUwppbmRl eCBlMjJlOTA3NjQzYTYuLjUwNDA2NWQxOWUwMyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRv L3NoYTUxMi1tYi9zaGE1MTJfeDRfYXZ4Mi5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGE1MTIt bWIvc2hhNTEyX3g0X2F2eDIuUwpAQCAtMjM5LDcgKzIzOSw3IEBAIGEgPSBUTVBfCiAjIHZvaWQg c2hhNTEyX3g0X2F2eDIodm9pZCAqU1RBVEUsIGNvbnN0IGludCBJTlBfU0laRSkKICMgYXJnIDEg OiBTVEFURSAgICA6IHBvaW50ZXIgdG8gaW5wdXQgZGF0YQogIyBhcmcgMiA6IElOUF9TSVpFIDog c2l6ZSBvZiBkYXRhIGluIGJsb2NrcyAoYXNzdW1lZCA+PSAxKQotRU5UUlkoc2hhNTEyX3g0X2F2 eDIpCitTWU1fRlVOQ19TVEFSVChzaGE1MTJfeDRfYXZ4MikKIAkjIGdlbmVyYWwgcmVnaXN0ZXJz IHByZXNlcnZlZCBpbiBvdXRlciBjYWxsaW5nIHJvdXRpbmUKIAkjIG91dGVyIGNhbGxpbmcgcm91 dGluZSBzYXZlcyBhbGwgdGhlIFhNTSByZWdpc3RlcnMKIAkjIHNhdmUgY2FsbGVlLXNhdmVkIGNs b2JiZXJlZCByZWdpc3RlcnMgdG8gY29tcGx5IHdpdGggQyBmdW5jdGlvbiBBQkkKQEAgLTM1OSw3 ICszNTksNyBAQCBMcm91bmRzXzE2X3h4OgogCiAJIyBvdXRlciBjYWxsaW5nIHJvdXRpbmUgcmVz dG9yZXMgWE1NIGFuZCBvdGhlciBHUCByZWdpc3RlcnMKIAlyZXQKLUVORFBST0Moc2hhNTEyX3g0 X2F2eDIpCitTWU1fRlVOQ19FTkQoc2hhNTEyX3g0X2F2eDIpCiAKIC5zZWN0aW9uCS5yb2RhdGEu SzUxMl80LCAiYSIsIEBwcm9nYml0cwogLmFsaWduIDY0CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9j cnlwdG8vc2hhNTEyLXNzc2UzLWFzbS5TIGIvYXJjaC94ODYvY3J5cHRvL3NoYTUxMi1zc3NlMy1h c20uUwppbmRleCA2NmJiZDkwNThhOTAuLjgzOGY5ODRlOTVkOSAxMDA2NDQKLS0tIGEvYXJjaC94 ODYvY3J5cHRvL3NoYTUxMi1zc3NlMy1hc20uUworKysgYi9hcmNoL3g4Ni9jcnlwdG8vc2hhNTEy LXNzc2UzLWFzbS5TCkBAIC0yNzUsNyArMjc1LDcgQEAgZnJhbWVfc2l6ZSA9IGZyYW1lX0dQUlNB VkUgKyBHUFJTQVZFX1NJWkUKICMgICBtZXNzYWdlIGJsb2Nrcy4KICMgTCBpcyB0aGUgbWVzc2Fn ZSBsZW5ndGggaW4gU0hBNTEyIGJsb2Nrcy4KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotRU5UUlkoc2hhNTEy X3RyYW5zZm9ybV9zc3NlMykKK1NZTV9GVU5DX1NUQVJUKHNoYTUxMl90cmFuc2Zvcm1fc3NzZTMp CiAKIAljbXAgJDAsIG1zZ2xlbgogCWplIG5vd29yawpAQCAtMzY0LDcgKzM2NCw3IEBAIHVwZGF0 ZWJsb2NrOgogCiBub3dvcms6CiAJcmV0Ci1FTkRQUk9DKHNoYTUxMl90cmFuc2Zvcm1fc3NzZTMp CitTWU1fRlVOQ19FTkQoc2hhNTEyX3RyYW5zZm9ybV9zc3NlMykKIAogIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CiAjIyMgQmluYXJ5IERhdGEKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by90d29maXNoLWF2 eC14ODZfNjQtYXNtXzY0LlMgYi9hcmNoL3g4Ni9jcnlwdG8vdHdvZmlzaC1hdngteDg2XzY0LWFz bV82NC5TCmluZGV4IDk2ZGRmZGE0ZDdiMi4uMTZlNTNjOThlNmEwIDEwMDY0NAotLS0gYS9hcmNo L3g4Ni9jcnlwdG8vdHdvZmlzaC1hdngteDg2XzY0LWFzbV82NC5TCisrKyBiL2FyY2gveDg2L2Ny eXB0by90d29maXNoLWF2eC14ODZfNjQtYXNtXzY0LlMKQEAgLTMzMCw3ICszMzAsNyBAQCBTWU1f RlVOQ19TVEFSVF9MT0NBTChfX3R3b2Zpc2hfZGVjX2JsazgpCiAJcmV0OwogU1lNX0ZVTkNfRU5E KF9fdHdvZmlzaF9kZWNfYmxrOCkKIAotRU5UUlkodHdvZmlzaF9lY2JfZW5jXzh3YXkpCitTWU1f RlVOQ19TVEFSVCh0d29maXNoX2VjYl9lbmNfOHdheSkKIAkvKiBpbnB1dDoKIAkgKgklcmRpOiBj dHgsIENUWAogCSAqCSVyc2k6IGRzdApAQCAtMzQ4LDkgKzM0OCw5IEBAIEVOVFJZKHR3b2Zpc2hf ZWNiX2VuY184d2F5KQogCiAJRlJBTUVfRU5ECiAJcmV0OwotRU5EUFJPQyh0d29maXNoX2VjYl9l bmNfOHdheSkKK1NZTV9GVU5DX0VORCh0d29maXNoX2VjYl9lbmNfOHdheSkKIAotRU5UUlkodHdv ZmlzaF9lY2JfZGVjXzh3YXkpCitTWU1fRlVOQ19TVEFSVCh0d29maXNoX2VjYl9kZWNfOHdheSkK IAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgsIENUWAogCSAqCSVyc2k6IGRzdApAQCAtMzY4LDkg KzM2OCw5IEBAIEVOVFJZKHR3b2Zpc2hfZWNiX2RlY184d2F5KQogCiAJRlJBTUVfRU5ECiAJcmV0 OwotRU5EUFJPQyh0d29maXNoX2VjYl9kZWNfOHdheSkKK1NZTV9GVU5DX0VORCh0d29maXNoX2Vj Yl9kZWNfOHdheSkKIAotRU5UUlkodHdvZmlzaF9jYmNfZGVjXzh3YXkpCitTWU1fRlVOQ19TVEFS VCh0d29maXNoX2NiY19kZWNfOHdheSkKIAkvKiBpbnB1dDoKIAkgKgklcmRpOiBjdHgsIENUWAog CSAqCSVyc2k6IGRzdApAQCAtMzkzLDkgKzM5Myw5IEBAIEVOVFJZKHR3b2Zpc2hfY2JjX2RlY184 d2F5KQogCiAJRlJBTUVfRU5ECiAJcmV0OwotRU5EUFJPQyh0d29maXNoX2NiY19kZWNfOHdheSkK K1NZTV9GVU5DX0VORCh0d29maXNoX2NiY19kZWNfOHdheSkKIAotRU5UUlkodHdvZmlzaF9jdHJf OHdheSkKK1NZTV9GVU5DX1NUQVJUKHR3b2Zpc2hfY3RyXzh3YXkpCiAJLyogaW5wdXQ6CiAJICoJ JXJkaTogY3R4LCBDVFgKIAkgKgklcnNpOiBkc3QKQEAgLTQyMCw5ICs0MjAsOSBAQCBFTlRSWSh0 d29maXNoX2N0cl84d2F5KQogCiAJRlJBTUVfRU5ECiAJcmV0OwotRU5EUFJPQyh0d29maXNoX2N0 cl84d2F5KQorU1lNX0ZVTkNfRU5EKHR3b2Zpc2hfY3RyXzh3YXkpCiAKLUVOVFJZKHR3b2Zpc2hf eHRzX2VuY184d2F5KQorU1lNX0ZVTkNfU1RBUlQodHdvZmlzaF94dHNfZW5jXzh3YXkpCiAJLyog aW5wdXQ6CiAJICoJJXJkaTogY3R4LCBDVFgKIAkgKgklcnNpOiBkc3QKQEAgLTQ0NCw5ICs0NDQs OSBAQCBFTlRSWSh0d29maXNoX3h0c19lbmNfOHdheSkKIAogCUZSQU1FX0VORAogCXJldDsKLUVO RFBST0ModHdvZmlzaF94dHNfZW5jXzh3YXkpCitTWU1fRlVOQ19FTkQodHdvZmlzaF94dHNfZW5j Xzh3YXkpCiAKLUVOVFJZKHR3b2Zpc2hfeHRzX2RlY184d2F5KQorU1lNX0ZVTkNfU1RBUlQodHdv ZmlzaF94dHNfZGVjXzh3YXkpCiAJLyogaW5wdXQ6CiAJICoJJXJkaTogY3R4LCBDVFgKIAkgKgkl cnNpOiBkc3QKQEAgLTQ2OCw0ICs0NjgsNCBAQCBFTlRSWSh0d29maXNoX3h0c19kZWNfOHdheSkK IAogCUZSQU1FX0VORAogCXJldDsKLUVORFBST0ModHdvZmlzaF94dHNfZGVjXzh3YXkpCitTWU1f RlVOQ19FTkQodHdvZmlzaF94dHNfZGVjXzh3YXkpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlw dG8vdHdvZmlzaC14ODZfNjQtYXNtXzY0LTN3YXkuUyBiL2FyY2gveDg2L2NyeXB0by90d29maXNo LXg4Nl82NC1hc21fNjQtM3dheS5TCmluZGV4IGU3MjczYTYwNmEwNy4uYzgzMGFlZjc3MDcwIDEw MDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vdHdvZmlzaC14ODZfNjQtYXNtXzY0LTN3YXkuUwor KysgYi9hcmNoL3g4Ni9jcnlwdG8vdHdvZmlzaC14ODZfNjQtYXNtXzY0LTN3YXkuUwpAQCAtMjM1 LDcgKzIzNSw3IEBACiAJcm9ycSAkMzIsCQkJUkFCMjsgXAogCW91dHVucGFjazMobW92LCBSSU8s IDIsIFJBQiwgMik7CiAKLUVOVFJZKF9fdHdvZmlzaF9lbmNfYmxrXzN3YXkpCitTWU1fRlVOQ19T VEFSVChfX3R3b2Zpc2hfZW5jX2Jsa18zd2F5KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eCwg Q1RYCiAJICoJJXJzaTogZHN0CkBAIC0yODIsOSArMjgyLDkgQEAgRU5UUlkoX190d29maXNoX2Vu Y19ibGtfM3dheSkKIAlwb3BxICVyMTI7CiAJcG9wcSAlcjEzOwogCXJldDsKLUVORFBST0MoX190 d29maXNoX2VuY19ibGtfM3dheSkKK1NZTV9GVU5DX0VORChfX3R3b2Zpc2hfZW5jX2Jsa18zd2F5 KQogCi1FTlRSWSh0d29maXNoX2RlY19ibGtfM3dheSkKK1NZTV9GVU5DX1NUQVJUKHR3b2Zpc2hf ZGVjX2Jsa18zd2F5KQogCS8qIGlucHV0OgogCSAqCSVyZGk6IGN0eCwgQ1RYCiAJICoJJXJzaTog ZHN0CkBAIC0zMTcsNCArMzE3LDQgQEAgRU5UUlkodHdvZmlzaF9kZWNfYmxrXzN3YXkpCiAJcG9w cSAlcjEyOwogCXBvcHEgJXIxMzsKIAlyZXQ7Ci1FTkRQUk9DKHR3b2Zpc2hfZGVjX2Jsa18zd2F5 KQorU1lNX0ZVTkNfRU5EKHR3b2Zpc2hfZGVjX2Jsa18zd2F5KQpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYvY3J5cHRvL3R3b2Zpc2gteDg2XzY0LWFzbV82NC5TIGIvYXJjaC94ODYvY3J5cHRvL3R3b2Zp c2gteDg2XzY0LWFzbV82NC5TCmluZGV4IGEzNTBjOTkwZGM4Ni4uNzRlZjZjNTVkNzVmIDEwMDY0 NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vdHdvZmlzaC14ODZfNjQtYXNtXzY0LlMKKysrIGIvYXJj aC94ODYvY3J5cHRvL3R3b2Zpc2gteDg2XzY0LWFzbV82NC5TCkBAIC0yMTUsNyArMjE1LDcgQEAK IAl4b3IJJXI4ZCwJCWQgIyMgRDtcCiAJcm9yCSQxLAkJZCAjIyBEOwogCi1FTlRSWSh0d29maXNo X2VuY19ibGspCitTWU1fRlVOQ19TVEFSVCh0d29maXNoX2VuY19ibGspCiAJcHVzaHEgICAgUjEK IAogCS8qICVyZGkgY29udGFpbnMgdGhlIGN0eCBhZGRyZXNzICovCkBAIC0yNjYsOSArMjY2LDkg QEAgRU5UUlkodHdvZmlzaF9lbmNfYmxrKQogCXBvcHEJUjEKIAltb3ZsCSQxLCVlYXgKIAlyZXQK LUVORFBST0ModHdvZmlzaF9lbmNfYmxrKQorU1lNX0ZVTkNfRU5EKHR3b2Zpc2hfZW5jX2JsaykK IAotRU5UUlkodHdvZmlzaF9kZWNfYmxrKQorU1lNX0ZVTkNfU1RBUlQodHdvZmlzaF9kZWNfYmxr KQogCXB1c2hxICAgIFIxCiAKIAkvKiAlcmRpIGNvbnRhaW5zIHRoZSBjdHggYWRkcmVzcyAqLwpA QCAtMzE4LDQgKzMxOCw0IEBAIEVOVFJZKHR3b2Zpc2hfZGVjX2JsaykKIAlwb3BxCVIxCiAJbW92 bAkkMSwlZWF4CiAJcmV0Ci1FTkRQUk9DKHR3b2Zpc2hfZGVjX2JsaykKK1NZTV9GVU5DX0VORCh0 d29maXNoX2RlY19ibGspCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TIGIv YXJjaC94ODYvZW50cnkvZW50cnlfNjQuUwppbmRleCAxYjA2MzE5NzFkZGUuLmM5MjJkMjdhMmJl YyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUworKysgYi9hcmNoL3g4Ni9l bnRyeS9lbnRyeV82NC5TCkBAIC0xNSw3ICsxNSw3IEBACiAgKgkJCWF0IHRoZSB0b3Agb2YgdGhl IGtlcm5lbCBwcm9jZXNzIHN0YWNrLgogICoKICAqIFNvbWUgbWFjcm8gdXNhZ2U6Ci0gKiAtIEVO VFJZL0VORDoJCURlZmluZSBmdW5jdGlvbnMgaW4gdGhlIHN5bWJvbCB0YWJsZS4KKyAqIC0gU1lN X0ZVTkNfU1RBUlQvRU5EOkRlZmluZSBmdW5jdGlvbnMgaW4gdGhlIHN5bWJvbCB0YWJsZS4KICAq IC0gVFJBQ0VfSVJRXyo6CVRyYWNlIGhhcmRpcnEgc3RhdGUgZm9yIGxvY2sgZGVidWdnaW5nLgog ICogLSBpZHRlbnRyeToJCURlZmluZSBleGNlcHRpb24gZW50cnkgcG9pbnRzLgogICovCkBAIC0x MDA3LDcgKzEwMDcsNyBAQCBpZHRlbnRyeSBzaW1kX2NvcHJvY2Vzc29yX2Vycm9yCQlkb19zaW1k X2NvcHJvY2Vzc29yX2Vycm9yCWhhc19lcnJvcl9jb2RlPTAKIAkgKiBSZWxvYWQgZ3Mgc2VsZWN0 b3Igd2l0aCBleGNlcHRpb24gaGFuZGxpbmcKIAkgKiBlZGk6ICBuZXcgc2VsZWN0b3IKIAkgKi8K LUVOVFJZKG5hdGl2ZV9sb2FkX2dzX2luZGV4KQorU1lNX0ZVTkNfU1RBUlQobmF0aXZlX2xvYWRf Z3NfaW5kZXgpCiAJRlJBTUVfQkVHSU4KIAlwdXNoZnEKIAlESVNBQkxFX0lOVEVSUlVQVFMoQ0xC Ul9BTlkgJiB+Q0xCUl9SREkpCkBAIC0xMDIxLDcgKzEwMjEsNyBAQCBFTlRSWShuYXRpdmVfbG9h ZF9nc19pbmRleCkKIAlwb3BmcQogCUZSQU1FX0VORAogCXJldAotRU5EUFJPQyhuYXRpdmVfbG9h ZF9nc19pbmRleCkKK1NZTV9GVU5DX0VORChuYXRpdmVfbG9hZF9nc19pbmRleCkKIEVYUE9SVF9T WU1CT0wobmF0aXZlX2xvYWRfZ3NfaW5kZXgpCiAKIAlfQVNNX0VYVEFCTEUoLkxnc19jaGFuZ2Us IGJhZF9ncykKQEAgLTEwNDIsNyArMTA0Miw3IEBAIFNZTV9DT0RFX0VORChiYWRfZ3MpCiAJLnBy ZXZpb3VzCiAKIC8qIENhbGwgc29mdGlycSBvbiBpbnRlcnJ1cHQgc3RhY2suIEludGVycnVwdHMg YXJlIG9mZi4gKi8KLUVOVFJZKGRvX3NvZnRpcnFfb3duX3N0YWNrKQorU1lNX0ZVTkNfU1RBUlQo ZG9fc29mdGlycV9vd25fc3RhY2spCiAJcHVzaHEJJXJicAogCW1vdgklcnNwLCAlcmJwCiAJRU5U RVJfSVJRX1NUQUNLIHJlZ3M9MCBvbGRfcnNwPSVyMTEKQEAgLTEwNTAsNyArMTA1MCw3IEBAIEVO VFJZKGRvX3NvZnRpcnFfb3duX3N0YWNrKQogCUxFQVZFX0lSUV9TVEFDSyByZWdzPTAKIAlsZWF2 ZXEKIAlyZXQKLUVORFBST0MoZG9fc29mdGlycV9vd25fc3RhY2spCitTWU1fRlVOQ19FTkQoZG9f c29mdGlycV9vd25fc3RhY2spCiAKICNpZmRlZiBDT05GSUdfWEVOCiBpZHRlbnRyeSBoeXBlcnZp c29yX2NhbGxiYWNrIHhlbl9kb19oeXBlcnZpc29yX2NhbGxiYWNrIGhhc19lcnJvcl9jb2RlPTAK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2VudHJ5L2VudHJ5XzY0X2NvbXBhdC5TIGIvYXJjaC94ODYv ZW50cnkvZW50cnlfNjRfY29tcGF0LlMKaW5kZXggYjRhMmVlOTAxODk5Li4zOTQ4MDI1NDE2MGMg MTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2VudHJ5L2VudHJ5XzY0X2NvbXBhdC5TCisrKyBiL2FyY2gv eDg2L2VudHJ5L2VudHJ5XzY0X2NvbXBhdC5TCkBAIC00Niw3ICs0Niw3IEBACiAgKiBlYnAgIHVz ZXIgc3RhY2sKICAqIDAoJWVicCkgYXJnNgogICovCi1FTlRSWShlbnRyeV9TWVNFTlRFUl9jb21w YXQpCitTWU1fRlVOQ19TVEFSVChlbnRyeV9TWVNFTlRFUl9jb21wYXQpCiAJLyogSW50ZXJydXB0 cyBhcmUgb2ZmIG9uIGVudHJ5LiAqLwogCVNXQVBHUwogCkBAIC0xNDcsNyArMTQ3LDcgQEAgRU5U UlkoZW50cnlfU1lTRU5URVJfY29tcGF0KQogCXBvcGZxCiAJam1wCS5Mc3lzZW50ZXJfZmxhZ3Nf Zml4ZWQKIFNZTV9DT0RFX0lOTkVSX0xBQkVMKF9fZW5kX2VudHJ5X1NZU0VOVEVSX2NvbXBhdCwg U1lNX0xfR0xPQkFMKQotRU5EUFJPQyhlbnRyeV9TWVNFTlRFUl9jb21wYXQpCitTWU1fRlVOQ19F TkQoZW50cnlfU1lTRU5URVJfY29tcGF0KQogCiAvKgogICogMzItYml0IFNZU0NBTEwgZW50cnku CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYWNwaS93YWtldXBfNjQuUyBiL2FyY2gveDg2 L2tlcm5lbC9hY3BpL3dha2V1cF82NC5TCmluZGV4IDZjNjBmZTM0NjU4My4uMDQyZmQzMGFjNDkz IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYWNwaS93YWtldXBfNjQuUworKysgYi9hcmNo L3g4Ni9rZXJuZWwvYWNwaS93YWtldXBfNjQuUwpAQCAtMTMsNyArMTMsNyBAQAogCS8qCiAJICog SG9vcmF5LCB3ZSBhcmUgaW4gTG9uZyA2NC1iaXQgbW9kZSAoYnV0IHN0aWxsIHJ1bm5pbmcgaW4g bG93IG1lbW9yeSkKIAkgKi8KLUVOVFJZKHdha2V1cF9sb25nNjQpCitTWU1fRlVOQ19TVEFSVCh3 YWtldXBfbG9uZzY0KQogCW1vdnEJc2F2ZWRfbWFnaWMsICVyYXgKIAltb3ZxCSQweDEyMzQ1Njc4 OWFiY2RlZjAsICVyZHgKIAljbXBxCSVyZHgsICVyYXgKQEAgLTM0LDEzICszNCwxMyBAQCBFTlRS WSh3YWtldXBfbG9uZzY0KQogCiAJbW92cQlzYXZlZF9yaXAsICVyYXgKIAlqbXAJKiVyYXgKLUVO RFBST0Mod2FrZXVwX2xvbmc2NCkKK1NZTV9GVU5DX0VORCh3YWtldXBfbG9uZzY0KQogCiBTWU1f Q09ERV9TVEFSVF9MT0NBTChib2d1c182NF9tYWdpYykKIAlqbXAJYm9ndXNfNjRfbWFnaWMKIFNZ TV9DT0RFX0VORChib2d1c182NF9tYWdpYykKIAotRU5UUlkoZG9fc3VzcGVuZF9sb3dsZXZlbCkK K1NZTV9GVU5DX1NUQVJUKGRvX3N1c3BlbmRfbG93bGV2ZWwpCiAJRlJBTUVfQkVHSU4KIAlzdWJx CSQ4LCAlcnNwCiAJeG9ybAklZWF4LCAlZWF4CkBAIC0xMjMsNyArMTIzLDcgQEAgRU5UUlkoZG9f c3VzcGVuZF9sb3dsZXZlbCkKIAlhZGRxCSQ4LCAlcnNwCiAJRlJBTUVfRU5ECiAJam1wCXJlc3Rv cmVfcHJvY2Vzc29yX3N0YXRlCi1FTkRQUk9DKGRvX3N1c3BlbmRfbG93bGV2ZWwpCitTWU1fRlVO Q19FTkQoZG9fc3VzcGVuZF9sb3dsZXZlbCkKIAogLmRhdGEKIHNhdmVkX3JicDoJCS5xdWFkCTAK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9mdHJhY2VfNjQuUyBiL2FyY2gveDg2L2tlcm5l bC9mdHJhY2VfNjQuUwppbmRleCAxNDEzNDFlYWEyNjcuLjZiZDQzODk1YzEzZSAxMDA2NDQKLS0t IGEvYXJjaC94ODYva2VybmVsL2Z0cmFjZV82NC5TCisrKyBiL2FyY2gveDg2L2tlcm5lbC9mdHJh Y2VfNjQuUwpAQCAtMTUwLDExICsxNTAsMTEgQEAgRVhQT1JUX1NZTUJPTChtY291bnQpCiAKICNp ZmRlZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UKIAotRU5UUlkoZnVuY3Rpb25faG9vaykKK1NZTV9G VU5DX1NUQVJUKGZ1bmN0aW9uX2hvb2spCiAJcmV0cQotRU5EUFJPQyhmdW5jdGlvbl9ob29rKQor U1lNX0ZVTkNfRU5EKGZ1bmN0aW9uX2hvb2spCiAKLUVOVFJZKGZ0cmFjZV9jYWxsZXIpCitTWU1f RlVOQ19TVEFSVChmdHJhY2VfY2FsbGVyKQogCS8qIHNhdmVfbWNvdW50X3JlZ3MgZmlsbHMgaW4g Zmlyc3QgdHdvIHBhcmFtZXRlcnMgKi8KIAlzYXZlX21jb3VudF9yZWdzCiAKQEAgLTE4OCw5ICsx ODgsOSBAQCBTWU1fQ09ERV9JTk5FUl9MQUJFTChmdHJhY2VfZ3JhcGhfY2FsbCwgU1lNX0xfR0xP QkFMKQogLyogVGhpcyBpcyB3ZWFrIHRvIGtlZXAgZ2FzIGZyb20gcmVsYXhpbmcgdGhlIGp1bXBz ICovCiBXRUFLKGZ0cmFjZV9zdHViKQogCXJldHEKLUVORFBST0MoZnRyYWNlX2NhbGxlcikKK1NZ TV9GVU5DX0VORChmdHJhY2VfY2FsbGVyKQogCi1FTlRSWShmdHJhY2VfcmVnc19jYWxsZXIpCitT WU1fRlVOQ19TVEFSVChmdHJhY2VfcmVnc19jYWxsZXIpCiAJLyogU2F2ZSB0aGUgY3VycmVudCBm bGFncyBiZWZvcmUgYW55IG9wZXJhdGlvbnMgdGhhdCBjYW4gY2hhbmdlIHRoZW0gKi8KIAlwdXNo ZnEKIApAQCAtMjU5LDEyICsyNTksMTIgQEAgU1lNX0NPREVfSU5ORVJfTEFCRUwoZnRyYWNlX3Jl Z3NfY2FsbGVyX2VuZCwgU1lNX0xfR0xPQkFMKQogCiAJam1wIGZ0cmFjZV9lcGlsb2d1ZQogCi1F TkRQUk9DKGZ0cmFjZV9yZWdzX2NhbGxlcikKK1NZTV9GVU5DX0VORChmdHJhY2VfcmVnc19jYWxs ZXIpCiAKIAogI2Vsc2UgLyogISBDT05GSUdfRFlOQU1JQ19GVFJBQ0UgKi8KIAotRU5UUlkoZnVu Y3Rpb25faG9vaykKK1NZTV9GVU5DX1NUQVJUKGZ1bmN0aW9uX2hvb2spCiAJY21wcSAkZnRyYWNl X3N0dWIsIGZ0cmFjZV90cmFjZV9mdW5jdGlvbgogCWpueiB0cmFjZQogCkBAIC0yOTUsMTEgKzI5 NSwxMSBAQCB0cmFjZToKIAlyZXN0b3JlX21jb3VudF9yZWdzCiAKIAlqbXAgZmdyYXBoX3RyYWNl Ci1FTkRQUk9DKGZ1bmN0aW9uX2hvb2spCitTWU1fRlVOQ19FTkQoZnVuY3Rpb25faG9vaykKICNl bmRpZiAvKiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UgKi8KIAogI2lmZGVmIENPTkZJR19GVU5DVElP Tl9HUkFQSF9UUkFDRVIKLUVOVFJZKGZ0cmFjZV9ncmFwaF9jYWxsZXIpCitTWU1fRlVOQ19TVEFS VChmdHJhY2VfZ3JhcGhfY2FsbGVyKQogCS8qIFNhdmVzIHJicCBpbnRvICVyZHggYW5kIGZpbGxz IGZpcnN0IHBhcmFtZXRlciAgKi8KIAlzYXZlX21jb3VudF9yZWdzCiAKQEAgLTMxNyw3ICszMTcs NyBAQCBFTlRSWShmdHJhY2VfZ3JhcGhfY2FsbGVyKQogCXJlc3RvcmVfbWNvdW50X3JlZ3MKIAog CXJldHEKLUVORFBST0MoZnRyYWNlX2dyYXBoX2NhbGxlcikKK1NZTV9GVU5DX0VORChmdHJhY2Vf Z3JhcGhfY2FsbGVyKQogCiBTWU1fQ09ERV9TVEFSVChyZXR1cm5fdG9faGFuZGxlcikKIAlVTldJ TkRfSElOVF9FTVBUWQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2hlYWRfNjQuUyBiL2Fy Y2gveDg2L2tlcm5lbC9oZWFkXzY0LlMKaW5kZXggNDhlNzEwNDNiOTljLi5mNDM4M2Y0ZDQxYjEg MTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9oZWFkXzY0LlMKKysrIGIvYXJjaC94ODYva2Vy bmVsL2hlYWRfNjQuUwpAQCAtOTIsNyArOTIsNyBAQCBTWU1fQ09ERV9TVEFSVF9OT0FMSUdOKHN0 YXJ0dXBfNjQpCiAJam1wIDFmCiBTWU1fQ09ERV9FTkQoc3RhcnR1cF82NCkKIAotRU5UUlkoc2Vj b25kYXJ5X3N0YXJ0dXBfNjQpCitTWU1fQ09ERV9TVEFSVChzZWNvbmRhcnlfc3RhcnR1cF82NCkK IAlVTldJTkRfSElOVF9FTVBUWQogCS8qCiAJICogQXQgdGhpcyBwb2ludCB0aGUgQ1BVIHJ1bnMg aW4gNjRiaXQgbW9kZSBDUy5MID0gMSBDUy5EID0gMCwKQEAgLTI0Miw3ICsyNDIsNyBAQCBFTlRS WShzZWNvbmRhcnlfc3RhcnR1cF82NCkKIAlwdXNocQklcmF4CQkjIHRhcmdldCBhZGRyZXNzIGlu IG5lZ2F0aXZlIHNwYWNlCiAJbHJldHEKIC5MYWZ0ZXJfbHJldDoKLUVORChzZWNvbmRhcnlfc3Rh cnR1cF82NCkKK1NZTV9DT0RFX0VORChzZWNvbmRhcnlfc3RhcnR1cF82NCkKIAogI2luY2x1ZGUg InZlcmlmeV9jcHUuUyIKIApAQCAtMjUyLDExICsyNTIsMTEgQEAgRU5EKHNlY29uZGFyeV9zdGFy dHVwXzY0KQogICogdXAgYWxyZWFkeSBleGNlcHQgc3RhY2suIFdlIGp1c3Qgc2V0IHVwIHN0YWNr IGhlcmUuIFRoZW4gY2FsbAogICogc3RhcnRfc2Vjb25kYXJ5KCkgdmlhIC5ManVtcF90b19DX2Nv ZGUuCiAgKi8KLUVOVFJZKHN0YXJ0X2NwdTApCitTWU1fRlVOQ19TVEFSVChzdGFydF9jcHUwKQog CW1vdnEJaW5pdGlhbF9zdGFjayglcmlwKSwgJXJzcAogCVVOV0lORF9ISU5UX0VNUFRZCiAJam1w CS5ManVtcF90b19DX2NvZGUKLUVORFBST0Moc3RhcnRfY3B1MCkKK1NZTV9GVU5DX0VORChzdGFy dF9jcHUwKQogI2VuZGlmCiAKIAkvKiBCb3RoIFNNUCBib290dXAgYW5kIEFDUEkgc3VzcGVuZCBj aGFuZ2UgdGhlc2UgdmFyaWFibGVzICovCkBAIC0yNzMsNyArMjczLDcgQEAgU1lNX0RBVEEoaW5p dGlhbF9zdGFjaywKIAlfX0ZJTklUREFUQQogCiAJX19JTklUCi1FTlRSWShlYXJseV9pZHRfaGFu ZGxlcl9hcnJheSkKK1NZTV9DT0RFX1NUQVJUKGVhcmx5X2lkdF9oYW5kbGVyX2FycmF5KQogCWkg PSAwCiAJLnJlcHQgTlVNX0VYQ0VQVElPTl9WRUNUT1JTCiAJLmlmICgoRVhDRVBUSU9OX0VSUkNP REVfTUFTSyA+PiBpKSAmIDEpID09IDAKQEAgLTI4OSw3ICsyODksNyBAQCBFTlRSWShlYXJseV9p ZHRfaGFuZGxlcl9hcnJheSkKIAkuZmlsbCBlYXJseV9pZHRfaGFuZGxlcl9hcnJheSArIGkqRUFS TFlfSURUX0hBTkRMRVJfU0laRSAtIC4sIDEsIDB4Y2MKIAkuZW5kcgogCVVOV0lORF9ISU5UX0lS RVRfUkVHUyBvZmZzZXQ9MTYKLUVORChlYXJseV9pZHRfaGFuZGxlcl9hcnJheSkKK1NZTV9DT0RF X0VORChlYXJseV9pZHRfaGFuZGxlcl9hcnJheSkKIAogU1lNX0NPREVfU1RBUlRfTE9DQUwoZWFy bHlfaWR0X2hhbmRsZXJfY29tbW9uKQogCS8qCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvY2hl Y2tzdW1fMzIuUyBiL2FyY2gveDg2L2xpYi9jaGVja3N1bV8zMi5TCmluZGV4IDQ2ZTcxYTc0ZTYx Mi4uMjhhMTQ4ZGUxODQzIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9saWIvY2hlY2tzdW1fMzIuUwor KysgYi9hcmNoL3g4Ni9saWIvY2hlY2tzdW1fMzIuUwpAQCAtMjg0LDcgKzI4NCw3IEBAIHVuc2ln bmVkIGludCBjc3VtX3BhcnRpYWxfY29weV9nZW5lcmljIChjb25zdCBjaGFyICpzcmMsIGNoYXIg KmRzdCwKICNkZWZpbmUgQVJHQkFTRSAxNgkJCiAjZGVmaW5lIEZQCQkxMgogCQkKLUVOVFJZKGNz dW1fcGFydGlhbF9jb3B5X2dlbmVyaWMpCitTWU1fRlVOQ19TVEFSVChjc3VtX3BhcnRpYWxfY29w eV9nZW5lcmljKQogCXN1YmwgICQ0LCVlc3AJCiAJcHVzaGwgJWVkaQogCXB1c2hsICVlc2kKQEAg LTQwMiw3ICs0MDIsNyBAQCBEU1QoCW1vdmIgJWNsLCAoJWVkaSkJKQogCXBvcGwgJWVkaQogCXBv cGwgJWVjeAkJCSMgZXF1aXZhbGVudCB0byBhZGRsICQ0LCVlc3AKIAlyZXQJCi1FTkRQUk9DKGNz dW1fcGFydGlhbF9jb3B5X2dlbmVyaWMpCitTWU1fRlVOQ19FTkQoY3N1bV9wYXJ0aWFsX2NvcHlf Z2VuZXJpYykKIAogI2Vsc2UKIApAQCAtNDIwLDcgKzQyMCw3IEBAIEVORFBST0MoY3N1bV9wYXJ0 aWFsX2NvcHlfZ2VuZXJpYykKIAogI2RlZmluZSBBUkdCQVNFIDEyCiAJCQotRU5UUlkoY3N1bV9w YXJ0aWFsX2NvcHlfZ2VuZXJpYykKK1NZTV9GVU5DX1NUQVJUKGNzdW1fcGFydGlhbF9jb3B5X2dl bmVyaWMpCiAJcHVzaGwgJWVieAogCXB1c2hsICVlZGkKIAlwdXNobCAlZXNpCkBAIC00ODcsNyAr NDg3LDcgQEAgRFNUKAltb3ZiICVkbCwgKCVlZGkpICAgICAgICAgKQogCXBvcGwgJWVkaQogCXBv cGwgJWVieAogCXJldAotRU5EUFJPQyhjc3VtX3BhcnRpYWxfY29weV9nZW5lcmljKQorU1lNX0ZV TkNfRU5EKGNzdW1fcGFydGlhbF9jb3B5X2dlbmVyaWMpCiAJCQkJCiAjdW5kZWYgUk9VTkQKICN1 bmRlZiBST1VORDEJCQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL2NsZWFyX3BhZ2VfNjQuUyBi L2FyY2gveDg2L2xpYi9jbGVhcl9wYWdlXzY0LlMKaW5kZXggODhhY2QzNDk5MTFiLi40N2FhMjgz MDAxMGIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2xpYi9jbGVhcl9wYWdlXzY0LlMKKysrIGIvYXJj aC94ODYvbGliL2NsZWFyX3BhZ2VfNjQuUwpAQCAtMTIsMTUgKzEyLDE1IEBACiAgKiBaZXJvIGEg cGFnZS4KICAqICVyZGkJLSBwYWdlCiAgKi8KLUVOVFJZKGNsZWFyX3BhZ2VfcmVwKQorU1lNX0ZV TkNfU1RBUlQoY2xlYXJfcGFnZV9yZXApCiAJbW92bCAkNDA5Ni84LCVlY3gKIAl4b3JsICVlYXgs JWVheAogCXJlcCBzdG9zcQogCXJldAotRU5EUFJPQyhjbGVhcl9wYWdlX3JlcCkKK1NZTV9GVU5D X0VORChjbGVhcl9wYWdlX3JlcCkKIEVYUE9SVF9TWU1CT0xfR1BMKGNsZWFyX3BhZ2VfcmVwKQog Ci1FTlRSWShjbGVhcl9wYWdlX29yaWcpCitTWU1fRlVOQ19TVEFSVChjbGVhcl9wYWdlX29yaWcp CiAJeG9ybCAgICVlYXgsJWVheAogCW1vdmwgICAkNDA5Ni82NCwlZWN4CiAJLnAyYWxpZ24gNApA QCAtMzksMTMgKzM5LDEzIEBAIEVOVFJZKGNsZWFyX3BhZ2Vfb3JpZykKIAlqbnoJLkxsb29wCiAJ bm9wCiAJcmV0Ci1FTkRQUk9DKGNsZWFyX3BhZ2Vfb3JpZykKK1NZTV9GVU5DX0VORChjbGVhcl9w YWdlX29yaWcpCiBFWFBPUlRfU1lNQk9MX0dQTChjbGVhcl9wYWdlX29yaWcpCiAKLUVOVFJZKGNs ZWFyX3BhZ2VfZXJtcykKK1NZTV9GVU5DX1NUQVJUKGNsZWFyX3BhZ2VfZXJtcykKIAltb3ZsICQ0 MDk2LCVlY3gKIAl4b3JsICVlYXgsJWVheAogCXJlcCBzdG9zYgogCXJldAotRU5EUFJPQyhjbGVh cl9wYWdlX2VybXMpCitTWU1fRlVOQ19FTkQoY2xlYXJfcGFnZV9lcm1zKQogRVhQT1JUX1NZTUJP TF9HUEwoY2xlYXJfcGFnZV9lcm1zKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL2NtcHhjaGcx NmJfZW11LlMgYi9hcmNoL3g4Ni9saWIvY21weGNoZzE2Yl9lbXUuUwppbmRleCA5YjMzMDI0MmU3 NDAuLmI2YmE2MzYwYjNjYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGliL2NtcHhjaGcxNmJfZW11 LlMKKysrIGIvYXJjaC94ODYvbGliL2NtcHhjaGcxNmJfZW11LlMKQEAgLTE5LDcgKzE5LDcgQEAK ICAqICVyY3ggOiBoaWdoIDY0IGJpdHMgb2YgbmV3IHZhbHVlCiAgKiAlYWwgIDogT3BlcmF0aW9u IHN1Y2Nlc3NmdWwKICAqLwotRU5UUlkodGhpc19jcHVfY21weGNoZzE2Yl9lbXUpCitTWU1fRlVO Q19TVEFSVCh0aGlzX2NwdV9jbXB4Y2hnMTZiX2VtdSkKIAogIwogIyBFbXVsYXRlICdjbXB4Y2hn MTZiICVnczooJXJzaSknIGV4Y2VwdCB3ZSByZXR1cm4gdGhlIHJlc3VsdCBpbiAlYWwgbm90CkBA IC01MCw0ICs1MCw0IEBAIEVOVFJZKHRoaXNfY3B1X2NtcHhjaGcxNmJfZW11KQogCXhvciAlYWws JWFsCiAJcmV0CiAKLUVORFBST0ModGhpc19jcHVfY21weGNoZzE2Yl9lbXUpCitTWU1fRlVOQ19F TkQodGhpc19jcHVfY21weGNoZzE2Yl9lbXUpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvY21w eGNoZzhiX2VtdS5TIGIvYXJjaC94ODYvbGliL2NtcHhjaGc4Yl9lbXUuUwppbmRleCAwM2ExODZm YzA2ZWEuLjc3YWExOGRiMzk2OCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGliL2NtcHhjaGc4Yl9l bXUuUworKysgYi9hcmNoL3g4Ni9saWIvY21weGNoZzhiX2VtdS5TCkBAIC0xOSw3ICsxOSw3IEBA CiAgKiAlZWJ4IDogbG93IDMyIGJpdHMgb2YgbmV3IHZhbHVlCiAgKiAlZWN4IDogaGlnaCAzMiBi aXRzIG9mIG5ldyB2YWx1ZQogICovCi1FTlRSWShjbXB4Y2hnOGJfZW11KQorU1lNX0ZVTkNfU1RB UlQoY21weGNoZzhiX2VtdSkKIAogIwogIyBFbXVsYXRlICdjbXB4Y2hnOGIgKCVlc2kpJyBvbiBV UCBleGNlcHQgd2UgZG9uJ3QKQEAgLTQ4LDUgKzQ4LDUgQEAgRU5UUlkoY21weGNoZzhiX2VtdSkK IAlwb3BmbAogCXJldAogCi1FTkRQUk9DKGNtcHhjaGc4Yl9lbXUpCitTWU1fRlVOQ19FTkQoY21w eGNoZzhiX2VtdSkKIEVYUE9SVF9TWU1CT0woY21weGNoZzhiX2VtdSkKZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2xpYi9jb3B5X3BhZ2VfNjQuUyBiL2FyY2gveDg2L2xpYi9jb3B5X3BhZ2VfNjQuUwpp bmRleCBmNTA1ODcwYmQ5M2IuLjI0MDJkNGM0ODlkMiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGli L2NvcHlfcGFnZV82NC5TCisrKyBiL2FyY2gveDg2L2xpYi9jb3B5X3BhZ2VfNjQuUwpAQCAtMTMs MTIgKzEzLDEyIEBACiAgKiBwcmVmZXRjaCBkaXN0YW5jZSBiYXNlZCBvbiBTTVAvVVAuCiAgKi8K IAlBTElHTgotRU5UUlkoY29weV9wYWdlKQorU1lNX0ZVTkNfU1RBUlQoY29weV9wYWdlKQogCUFM VEVSTkFUSVZFICJqbXAgY29weV9wYWdlX3JlZ3MiLCAiIiwgWDg2X0ZFQVRVUkVfUkVQX0dPT0QK IAltb3ZsCSQ0MDk2LzgsICVlY3gKIAlyZXAJbW92c3EKIAlyZXQKLUVORFBST0MoY29weV9wYWdl KQorU1lNX0ZVTkNfRU5EKGNvcHlfcGFnZSkKIEVYUE9SVF9TWU1CT0woY29weV9wYWdlKQogCiBT WU1fRlVOQ19TVEFSVF9MT0NBTChjb3B5X3BhZ2VfcmVncykKZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2xpYi9jb3B5X3VzZXJfNjQuUyBiL2FyY2gveDg2L2xpYi9jb3B5X3VzZXJfNjQuUwppbmRleCAw MjBmNzVjYzhjZjYuLjVlOWU4MGMwNWE5NyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGliL2NvcHlf dXNlcl82NC5TCisrKyBiL2FyY2gveDg2L2xpYi9jb3B5X3VzZXJfNjQuUwpAQCAtMjksNyArMjks NyBAQAogICogT3V0cHV0OgogICogZWF4IHVuY29waWVkIGJ5dGVzIG9yIDAgaWYgc3VjY2Vzc2Z1 bC4KICAqLwotRU5UUlkoY29weV91c2VyX2dlbmVyaWNfdW5yb2xsZWQpCitTWU1fRlVOQ19TVEFS VChjb3B5X3VzZXJfZ2VuZXJpY191bnJvbGxlZCkKIAlBU01fU1RBQwogCWNtcGwgJDgsJWVkeAog CWpiIDIwZgkJLyogbGVzcyB0aGVuIDggYnl0ZXMsIGdvIHRvIGJ5dGUgY29weSBsb29wICovCkBA IC0xMTIsNyArMTEyLDcgQEAgRU5UUlkoY29weV91c2VyX2dlbmVyaWNfdW5yb2xsZWQpCiAJX0FT TV9FWFRBQkxFKDE5Yiw0MGIpCiAJX0FTTV9FWFRBQkxFKDIxYiw1MGIpCiAJX0FTTV9FWFRBQkxF KDIyYiw1MGIpCi1FTkRQUk9DKGNvcHlfdXNlcl9nZW5lcmljX3Vucm9sbGVkKQorU1lNX0ZVTkNf RU5EKGNvcHlfdXNlcl9nZW5lcmljX3Vucm9sbGVkKQogRVhQT1JUX1NZTUJPTChjb3B5X3VzZXJf Z2VuZXJpY191bnJvbGxlZCkKIAogLyogU29tZSBDUFVzIHJ1biBmYXN0ZXIgdXNpbmcgdGhlIHN0 cmluZyBjb3B5IGluc3RydWN0aW9ucy4KQEAgLTEzMyw3ICsxMzMsNyBAQCBFWFBPUlRfU1lNQk9M KGNvcHlfdXNlcl9nZW5lcmljX3Vucm9sbGVkKQogICogT3V0cHV0OgogICogZWF4IHVuY29waWVk IGJ5dGVzIG9yIDAgaWYgc3VjY2Vzc2Z1bC4KICAqLwotRU5UUlkoY29weV91c2VyX2dlbmVyaWNf c3RyaW5nKQorU1lNX0ZVTkNfU1RBUlQoY29weV91c2VyX2dlbmVyaWNfc3RyaW5nKQogCUFTTV9T VEFDCiAJY21wbCAkOCwlZWR4CiAJamIgMmYJCS8qIGxlc3MgdGhhbiA4IGJ5dGVzLCBnbyB0byBi eXRlIGNvcHkgbG9vcCAqLwpAQCAtMTU4LDcgKzE1OCw3IEBAIEVOVFJZKGNvcHlfdXNlcl9nZW5l cmljX3N0cmluZykKIAogCV9BU01fRVhUQUJMRSgxYiwxMWIpCiAJX0FTTV9FWFRBQkxFKDNiLDEy YikKLUVORFBST0MoY29weV91c2VyX2dlbmVyaWNfc3RyaW5nKQorU1lNX0ZVTkNfRU5EKGNvcHlf dXNlcl9nZW5lcmljX3N0cmluZykKIEVYUE9SVF9TWU1CT0woY29weV91c2VyX2dlbmVyaWNfc3Ry aW5nKQogCiAvKgpAQCAtMTczLDcgKzE3Myw3IEBAIEVYUE9SVF9TWU1CT0woY29weV91c2VyX2dl bmVyaWNfc3RyaW5nKQogICogT3V0cHV0OgogICogZWF4IHVuY29waWVkIGJ5dGVzIG9yIDAgaWYg c3VjY2Vzc2Z1bC4KICAqLwotRU5UUlkoY29weV91c2VyX2VuaGFuY2VkX2Zhc3Rfc3RyaW5nKQor U1lNX0ZVTkNfU1RBUlQoY29weV91c2VyX2VuaGFuY2VkX2Zhc3Rfc3RyaW5nKQogCUFTTV9TVEFD CiAJY21wbCAkNjQsJWVkeAogCWpiIC5MX2NvcHlfc2hvcnRfc3RyaW5nCS8qIGxlc3MgdGhlbiA2 NCBieXRlcywgYXZvaWQgdGhlIGNvc3RseSAncmVwJyAqLwpAQCAtMTkwLDcgKzE5MCw3IEBAIEVO VFJZKGNvcHlfdXNlcl9lbmhhbmNlZF9mYXN0X3N0cmluZykKIAkucHJldmlvdXMKIAogCV9BU01f RVhUQUJMRSgxYiwxMmIpCi1FTkRQUk9DKGNvcHlfdXNlcl9lbmhhbmNlZF9mYXN0X3N0cmluZykK K1NZTV9GVU5DX0VORChjb3B5X3VzZXJfZW5oYW5jZWRfZmFzdF9zdHJpbmcpCiBFWFBPUlRfU1lN Qk9MKGNvcHlfdXNlcl9lbmhhbmNlZF9mYXN0X3N0cmluZykKIAogLyoKQEAgLTIwMiw3ICsyMDIs NyBAQCBFWFBPUlRfU1lNQk9MKGNvcHlfdXNlcl9lbmhhbmNlZF9mYXN0X3N0cmluZykKICAqICAt IFJlcXVpcmUgOC1ieXRlIGFsaWdubWVudCB3aGVuIHNpemUgaXMgOCBieXRlcyBvciBsYXJnZXIu CiAgKiAgLSBSZXF1aXJlIDQtYnl0ZSBhbGlnbm1lbnQgd2hlbiBzaXplIGlzIDQgYnl0ZXMuCiAg Ki8KLUVOVFJZKF9fY29weV91c2VyX25vY2FjaGUpCitTWU1fRlVOQ19TVEFSVChfX2NvcHlfdXNl cl9ub2NhY2hlKQogCUFTTV9TVEFDCiAKIAkvKiBJZiBzaXplIGlzIGxlc3MgdGhhbiA4IGJ5dGVz LCBnbyB0byA0LWJ5dGUgY29weSAqLwpAQCAtMzQxLDUgKzM0MSw1IEBAIEVOVFJZKF9fY29weV91 c2VyX25vY2FjaGUpCiAJX0FTTV9FWFRBQkxFKDMxYiwuTF9maXh1cF80Yl9jb3B5KQogCV9BU01f RVhUQUJMRSg0MGIsLkxfZml4dXBfMWJfY29weSkKIAlfQVNNX0VYVEFCTEUoNDFiLC5MX2ZpeHVw XzFiX2NvcHkpCi1FTkRQUk9DKF9fY29weV91c2VyX25vY2FjaGUpCitTWU1fRlVOQ19FTkQoX19j b3B5X3VzZXJfbm9jYWNoZSkKIEVYUE9SVF9TWU1CT0woX19jb3B5X3VzZXJfbm9jYWNoZSkKZGlm ZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9jc3VtLWNvcHlfNjQuUyBiL2FyY2gveDg2L2xpYi9jc3Vt LWNvcHlfNjQuUwppbmRleCA0NWE1M2RmZTE4NTkuLjUyM2U0OTY0MDc4ZiAxMDA2NDQKLS0tIGEv YXJjaC94ODYvbGliL2NzdW0tY29weV82NC5TCisrKyBiL2FyY2gveDg2L2xpYi9jc3VtLWNvcHlf NjQuUwpAQCAtNDUsNyArNDUsNyBAQAogCS5lbmRtCiAKIAotRU5UUlkoY3N1bV9wYXJ0aWFsX2Nv cHlfZ2VuZXJpYykKK1NZTV9GVU5DX1NUQVJUKGNzdW1fcGFydGlhbF9jb3B5X2dlbmVyaWMpCiAJ Y21wbAkkMyo2NCwgJWVkeAogCWpsZQkuTGlnbm9yZQogCkBAIC0yMjEsNCArMjIxLDQgQEAgRU5U UlkoY3N1bV9wYXJ0aWFsX2NvcHlfZ2VuZXJpYykKIAlqeiAgIC5MZW5kZQogCW1vdmwgJC1FRkFV TFQsICglcmF4KQogCWptcCAuTGVuZGUKLUVORFBST0MoY3N1bV9wYXJ0aWFsX2NvcHlfZ2VuZXJp YykKK1NZTV9GVU5DX0VORChjc3VtX3BhcnRpYWxfY29weV9nZW5lcmljKQpkaWZmIC0tZ2l0IGEv YXJjaC94ODYvbGliL2dldHVzZXIuUyBiL2FyY2gveDg2L2xpYi9nZXR1c2VyLlMKaW5kZXggYTVk N2ZlN2ZlNDAxLi43MWRkOTY2NzYxOTQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2xpYi9nZXR1c2Vy LlMKKysrIGIvYXJjaC94ODYvbGliL2dldHVzZXIuUwpAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1 ZGUgPGFzbS9leHBvcnQuaD4KIAogCS50ZXh0Ci1FTlRSWShfX2dldF91c2VyXzEpCitTWU1fRlVO Q19TVEFSVChfX2dldF91c2VyXzEpCiAJbW92IFBFUl9DUFVfVkFSKGN1cnJlbnRfdGFzayksICVf QVNNX0RYCiAJY21wIFRBU0tfYWRkcl9saW1pdCglX0FTTV9EWCksJV9BU01fQVgKIAlqYWUgYmFk X2dldF91c2VyCkBAIC00NywxMCArNDcsMTAgQEAgRU5UUlkoX19nZXRfdXNlcl8xKQogCXhvciAl ZWF4LCVlYXgKIAlBU01fQ0xBQwogCXJldAotRU5EUFJPQyhfX2dldF91c2VyXzEpCitTWU1fRlVO Q19FTkQoX19nZXRfdXNlcl8xKQogRVhQT1JUX1NZTUJPTChfX2dldF91c2VyXzEpCiAKLUVOVFJZ KF9fZ2V0X3VzZXJfMikKK1NZTV9GVU5DX1NUQVJUKF9fZ2V0X3VzZXJfMikKIAlhZGQgJDEsJV9B U01fQVgKIAlqYyBiYWRfZ2V0X3VzZXIKIAltb3YgUEVSX0NQVV9WQVIoY3VycmVudF90YXNrKSwg JV9BU01fRFgKQEAgLTYzLDEwICs2MywxMCBAQCBFTlRSWShfX2dldF91c2VyXzIpCiAJeG9yICVl YXgsJWVheAogCUFTTV9DTEFDCiAJcmV0Ci1FTkRQUk9DKF9fZ2V0X3VzZXJfMikKK1NZTV9GVU5D X0VORChfX2dldF91c2VyXzIpCiBFWFBPUlRfU1lNQk9MKF9fZ2V0X3VzZXJfMikKIAotRU5UUlko X19nZXRfdXNlcl80KQorU1lNX0ZVTkNfU1RBUlQoX19nZXRfdXNlcl80KQogCWFkZCAkMywlX0FT TV9BWAogCWpjIGJhZF9nZXRfdXNlcgogCW1vdiBQRVJfQ1BVX1ZBUihjdXJyZW50X3Rhc2spLCAl X0FTTV9EWApAQCAtNzksMTAgKzc5LDEwIEBAIEVOVFJZKF9fZ2V0X3VzZXJfNCkKIAl4b3IgJWVh eCwlZWF4CiAJQVNNX0NMQUMKIAlyZXQKLUVORFBST0MoX19nZXRfdXNlcl80KQorU1lNX0ZVTkNf RU5EKF9fZ2V0X3VzZXJfNCkKIEVYUE9SVF9TWU1CT0woX19nZXRfdXNlcl80KQogCi1FTlRSWShf X2dldF91c2VyXzgpCitTWU1fRlVOQ19TVEFSVChfX2dldF91c2VyXzgpCiAjaWZkZWYgQ09ORklH X1g4Nl82NAogCWFkZCAkNywlX0FTTV9BWAogCWpjIGJhZF9nZXRfdXNlcgpAQCAtMTExLDcgKzEx MSw3IEBAIEVOVFJZKF9fZ2V0X3VzZXJfOCkKIAlBU01fQ0xBQwogCXJldAogI2VuZGlmCi1FTkRQ Uk9DKF9fZ2V0X3VzZXJfOCkKK1NZTV9GVU5DX0VORChfX2dldF91c2VyXzgpCiBFWFBPUlRfU1lN Qk9MKF9fZ2V0X3VzZXJfOCkKIAogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvaHdlaWdodC5T IGIvYXJjaC94ODYvbGliL2h3ZWlnaHQuUwppbmRleCBhMTRmOTkzOWMzNjUuLmRiZjhjYzk3Yjdm NSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGliL2h3ZWlnaHQuUworKysgYi9hcmNoL3g4Ni9saWIv aHdlaWdodC5TCkBAIC04LDcgKzgsNyBAQAogICogdW5zaWduZWQgaW50IF9fc3dfaHdlaWdodDMy KHVuc2lnbmVkIGludCB3KQogICogJXJkaTogdwogICovCi1FTlRSWShfX3N3X2h3ZWlnaHQzMikK K1NZTV9GVU5DX1NUQVJUKF9fc3dfaHdlaWdodDMyKQogCiAjaWZkZWYgQ09ORklHX1g4Nl82NAog CW1vdmwgJWVkaSwgJWVheAkJCQkjIHcKQEAgLTMzLDEwICszMywxMCBAQCBFTlRSWShfX3N3X2h3 ZWlnaHQzMikKIAlzaHJsICQyNCwgJWVheAkJCQkjIHcgPSB3X3RtcCA+PiAyNAogCV9fQVNNX1NJ WkUocG9wLCkgJV9fQVNNX1JFRyhkeCkKIAlyZXQKLUVORFBST0MoX19zd19od2VpZ2h0MzIpCitT WU1fRlVOQ19FTkQoX19zd19od2VpZ2h0MzIpCiBFWFBPUlRfU1lNQk9MKF9fc3dfaHdlaWdodDMy KQogCi1FTlRSWShfX3N3X2h3ZWlnaHQ2NCkKK1NZTV9GVU5DX1NUQVJUKF9fc3dfaHdlaWdodDY0 KQogI2lmZGVmIENPTkZJR19YODZfNjQKIAlwdXNocSAgICVyZGkKIAlwdXNocSAgICVyZHgKQEAg LTc5LDUgKzc5LDUgQEAgRU5UUlkoX19zd19od2VpZ2h0NjQpCiAJcG9wbCAgICAlZWN4CiAJcmV0 CiAjZW5kaWYKLUVORFBST0MoX19zd19od2VpZ2h0NjQpCitTWU1fRlVOQ19FTkQoX19zd19od2Vp Z2h0NjQpCiBFWFBPUlRfU1lNQk9MKF9fc3dfaHdlaWdodDY0KQpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYvbGliL2lvbWFwX2NvcHlfNjQuUyBiL2FyY2gveDg2L2xpYi9pb21hcF9jb3B5XzY0LlMKaW5k ZXggMzMxNDdmZWYzNDUyLi4yMjQ2ZmJmMzJmYTggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2xpYi9p b21hcF9jb3B5XzY0LlMKKysrIGIvYXJjaC94ODYvbGliL2lvbWFwX2NvcHlfNjQuUwpAQCAtMjAs OCArMjAsOCBAQAogLyoKICAqIG92ZXJyaWRlIGdlbmVyaWMgdmVyc2lvbiBpbiBsaWIvaW9tYXBf Y29weS5jCiAgKi8KLUVOVFJZKF9faW93cml0ZTMyX2NvcHkpCitTWU1fRlVOQ19TVEFSVChfX2lv d3JpdGUzMl9jb3B5KQogCW1vdmwgJWVkeCwlZWN4CiAJcmVwIG1vdnNkCiAJcmV0Ci1FTkRQUk9D KF9faW93cml0ZTMyX2NvcHkpCitTWU1fRlVOQ19FTkQoX19pb3dyaXRlMzJfY29weSkKZGlmZiAt LWdpdCBhL2FyY2gveDg2L2xpYi9tZW1jcHlfNjQuUyBiL2FyY2gveDg2L2xpYi9tZW1jcHlfNjQu UwppbmRleCA3Mjg3MDNjNDdkNTguLjliZWM2M2UyMTJhOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYv bGliL21lbWNweV82NC5TCisrKyBiL2FyY2gveDg2L2xpYi9tZW1jcHlfNjQuUwpAQCAtMTg4LDcg KzE4OCw3IEBAIFNZTV9GVU5DX0VORChtZW1jcHlfb3JpZykKICAqIE5vdGUgdGhhdCB3ZSBvbmx5 IGNhdGNoIG1hY2hpbmUgY2hlY2tzIHdoZW4gcmVhZGluZyB0aGUgc291cmNlIGFkZHJlc3Nlcy4K ICAqIFdyaXRlcyB0byB0YXJnZXQgYXJlIHBvc3RlZCBhbmQgZG9uJ3QgZ2VuZXJhdGUgbWFjaGlu ZSBjaGVja3MuCiAgKi8KLUVOVFJZKG1lbWNweV9tY3NhZmVfdW5yb2xsZWQpCitTWU1fRlVOQ19T VEFSVChtZW1jcHlfbWNzYWZlX3Vucm9sbGVkKQogCWNtcGwgJDgsICVlZHgKIAkvKiBMZXNzIHRo YW4gOCBieXRlcz8gR28gdG8gYnl0ZSBjb3B5IGxvb3AgKi8KIAlqYiAuTF9ub193aG9sZV93b3Jk cwpAQCAtMjc2LDcgKzI3Niw3IEBAIEVOVFJZKG1lbWNweV9tY3NhZmVfdW5yb2xsZWQpCiAuTF9k b25lX21lbWNweV90cmFwOgogCXhvcnEgJXJheCwgJXJheAogCXJldAotRU5EUFJPQyhtZW1jcHlf bWNzYWZlX3Vucm9sbGVkKQorU1lNX0ZVTkNfRU5EKG1lbWNweV9tY3NhZmVfdW5yb2xsZWQpCiBF WFBPUlRfU1lNQk9MX0dQTChtZW1jcHlfbWNzYWZlX3Vucm9sbGVkKQogCiAJLnNlY3Rpb24gLmZp eHVwLCAiYXgiCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvbWVtbW92ZV82NC5TIGIvYXJjaC94 ODYvbGliL21lbW1vdmVfNjQuUwppbmRleCA1MGMxNjQ4MzExYjMuLjMzNzgzMGQ3YTU5YyAxMDA2 NDQKLS0tIGEvYXJjaC94ODYvbGliL21lbW1vdmVfNjQuUworKysgYi9hcmNoL3g4Ni9saWIvbWVt bW92ZV82NC5TCkBAIC0yNyw3ICsyNyw3IEBACiAud2VhayBtZW1tb3ZlCiAKIFNZTV9GVU5DX1NU QVJUX0FMSUFTKG1lbW1vdmUpCi1FTlRSWShfX21lbW1vdmUpCitTWU1fRlVOQ19TVEFSVChfX21l bW1vdmUpCiAKIAkvKiBIYW5kbGUgbW9yZSAzMiBieXRlcyBpbiBsb29wICovCiAJbW92ICVyZGks ICVyYXgKQEAgLTIwNyw3ICsyMDcsNyBAQCBFTlRSWShfX21lbW1vdmUpCiAJbW92YiAlcjExYiwg KCVyZGkpCiAxMzoKIAlyZXRxCi1FTkRQUk9DKF9fbWVtbW92ZSkKK1NZTV9GVU5DX0VORChfX21l bW1vdmUpCiBTWU1fRlVOQ19FTkRfQUxJQVMobWVtbW92ZSkKIEVYUE9SVF9TWU1CT0woX19tZW1t b3ZlKQogRVhQT1JUX1NZTUJPTChtZW1tb3ZlKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL21l bXNldF82NC5TIGIvYXJjaC94ODYvbGliL21lbXNldF82NC5TCmluZGV4IDU2NGFiZjllY2VkYi4u OWZmMTVlZTQwNGE0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9saWIvbWVtc2V0XzY0LlMKKysrIGIv YXJjaC94ODYvbGliL21lbXNldF82NC5TCkBAIC0yMCw3ICsyMCw3IEBACiAgKiByYXggICBvcmln aW5hbCBkZXN0aW5hdGlvbgogICovCiBTWU1fRlVOQ19TVEFSVF9BTElBUyhtZW1zZXQpCi1FTlRS WShfX21lbXNldCkKK1NZTV9GVU5DX1NUQVJUKF9fbWVtc2V0KQogCS8qCiAJICogU29tZSBDUFVz IHN1cHBvcnQgZW5oYW5jZWQgUkVQIE1PVlNCL1NUT1NCIGZlYXR1cmUuIEl0IGlzIHJlY29tbWVu ZGVkCiAJICogdG8gdXNlIGl0IHdoZW4gcG9zc2libGUuIElmIG5vdCBhdmFpbGFibGUsIHVzZSBm YXN0IHN0cmluZyBpbnN0cnVjdGlvbnMuCkBAIC00Myw3ICs0Myw3IEBAIEVOVFJZKF9fbWVtc2V0 KQogCXJlcCBzdG9zYgogCW1vdnEgJXI5LCVyYXgKIAlyZXQKLUVORFBST0MoX19tZW1zZXQpCitT WU1fRlVOQ19FTkQoX19tZW1zZXQpCiBTWU1fRlVOQ19FTkRfQUxJQVMobWVtc2V0KQogRVhQT1JU X1NZTUJPTChtZW1zZXQpCiBFWFBPUlRfU1lNQk9MKF9fbWVtc2V0KQpkaWZmIC0tZ2l0IGEvYXJj aC94ODYvbGliL21zci1yZWcuUyBiL2FyY2gveDg2L2xpYi9tc3ItcmVnLlMKaW5kZXggZWQzM2Ni YWIzOTU4Li5hMmI5Y2FhNTI3NGMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2xpYi9tc3ItcmVnLlMK KysrIGIvYXJjaC94ODYvbGliL21zci1yZWcuUwpAQCAtMTIsNyArMTIsNyBAQAogICoKICAqLwog Lm1hY3JvIG9wX3NhZmVfcmVncyBvcAotRU5UUlkoXG9wXCgpX3NhZmVfcmVncykKK1NZTV9GVU5D X1NUQVJUKFxvcFwoKV9zYWZlX3JlZ3MpCiAJcHVzaHEgJXJieAogCXB1c2hxICVyMTIKIAltb3Zx CSVyZGksICVyMTAJLyogU2F2ZSBwb2ludGVyICovCkBAIC00MSwxMyArNDEsMTMgQEAgRU5UUlko XG9wXCgpX3NhZmVfcmVncykKIAlqbXAgICAgIDJiCiAKIAlfQVNNX0VYVEFCTEUoMWIsIDNiKQot RU5EUFJPQyhcb3BcKClfc2FmZV9yZWdzKQorU1lNX0ZVTkNfRU5EKFxvcFwoKV9zYWZlX3JlZ3Mp CiAuZW5kbQogCiAjZWxzZSAvKiBYODZfMzIgKi8KIAogLm1hY3JvIG9wX3NhZmVfcmVncyBvcAot RU5UUlkoXG9wXCgpX3NhZmVfcmVncykKK1NZTV9GVU5DX1NUQVJUKFxvcFwoKV9zYWZlX3JlZ3Mp CiAJcHVzaGwgJWVieAogCXB1c2hsICVlYnAKIAlwdXNobCAlZXNpCkBAIC04Myw3ICs4Myw3IEBA IEVOVFJZKFxvcFwoKV9zYWZlX3JlZ3MpCiAJam1wICAgICAyYgogCiAJX0FTTV9FWFRBQkxFKDFi LCAzYikKLUVORFBST0MoXG9wXCgpX3NhZmVfcmVncykKK1NZTV9GVU5DX0VORChcb3BcKClfc2Fm ZV9yZWdzKQogLmVuZG0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvcHV0dXNl ci5TIGIvYXJjaC94ODYvbGliL3B1dHVzZXIuUwppbmRleCA4MjM0ZDg1NTkzODUuLjllYzBmMzRh ODU0MSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGliL3B1dHVzZXIuUworKysgYi9hcmNoL3g4Ni9s aWIvcHV0dXNlci5TCkBAIC0zNiw3ICszNiw3IEBACiAJCXJldAogCiAudGV4dAotRU5UUlkoX19w dXRfdXNlcl8xKQorU1lNX0ZVTkNfU1RBUlQoX19wdXRfdXNlcl8xKQogCUVOVEVSCiAJY21wIFRB U0tfYWRkcl9saW1pdCglX0FTTV9CWCksJV9BU01fQ1gKIAlqYWUgYmFkX3B1dF91c2VyCkBAIC00 NCwxMCArNDQsMTAgQEAgRU5UUlkoX19wdXRfdXNlcl8xKQogMToJbW92YiAlYWwsKCVfQVNNX0NY KQogCXhvciAlZWF4LCVlYXgKIAlFWElUCi1FTkRQUk9DKF9fcHV0X3VzZXJfMSkKK1NZTV9GVU5D X0VORChfX3B1dF91c2VyXzEpCiBFWFBPUlRfU1lNQk9MKF9fcHV0X3VzZXJfMSkKIAotRU5UUlko X19wdXRfdXNlcl8yKQorU1lNX0ZVTkNfU1RBUlQoX19wdXRfdXNlcl8yKQogCUVOVEVSCiAJbW92 IFRBU0tfYWRkcl9saW1pdCglX0FTTV9CWCksJV9BU01fQlgKIAlzdWIgJDEsJV9BU01fQlgKQEAg LTU3LDEwICs1NywxMCBAQCBFTlRSWShfX3B1dF91c2VyXzIpCiAyOgltb3Z3ICVheCwoJV9BU01f Q1gpCiAJeG9yICVlYXgsJWVheAogCUVYSVQKLUVORFBST0MoX19wdXRfdXNlcl8yKQorU1lNX0ZV TkNfRU5EKF9fcHV0X3VzZXJfMikKIEVYUE9SVF9TWU1CT0woX19wdXRfdXNlcl8yKQogCi1FTlRS WShfX3B1dF91c2VyXzQpCitTWU1fRlVOQ19TVEFSVChfX3B1dF91c2VyXzQpCiAJRU5URVIKIAlt b3YgVEFTS19hZGRyX2xpbWl0KCVfQVNNX0JYKSwlX0FTTV9CWAogCXN1YiAkMywlX0FTTV9CWApA QCAtNzAsMTAgKzcwLDEwIEBAIEVOVFJZKF9fcHV0X3VzZXJfNCkKIDM6CW1vdmwgJWVheCwoJV9B U01fQ1gpCiAJeG9yICVlYXgsJWVheAogCUVYSVQKLUVORFBST0MoX19wdXRfdXNlcl80KQorU1lN X0ZVTkNfRU5EKF9fcHV0X3VzZXJfNCkKIEVYUE9SVF9TWU1CT0woX19wdXRfdXNlcl80KQogCi1F TlRSWShfX3B1dF91c2VyXzgpCitTWU1fRlVOQ19TVEFSVChfX3B1dF91c2VyXzgpCiAJRU5URVIK IAltb3YgVEFTS19hZGRyX2xpbWl0KCVfQVNNX0JYKSwlX0FTTV9CWAogCXN1YiAkNywlX0FTTV9C WApAQCAtODYsNyArODYsNyBAQCBFTlRSWShfX3B1dF91c2VyXzgpCiAjZW5kaWYKIAl4b3IgJWVh eCwlZWF4CiAJRVhJVAotRU5EUFJPQyhfX3B1dF91c2VyXzgpCitTWU1fRlVOQ19FTkQoX19wdXRf dXNlcl84KQogRVhQT1JUX1NZTUJPTChfX3B1dF91c2VyXzgpCiAKIFNZTV9DT0RFX1NUQVJUX0xP Q0FMKGJhZF9wdXRfdXNlcikKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9yZXRwb2xpbmUuUyBi L2FyY2gveDg2L2xpYi9yZXRwb2xpbmUuUwppbmRleCBjOTA5OTYxZTY3OGEuLjM2M2VjMTMyZGY3 ZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGliL3JldHBvbGluZS5TCisrKyBiL2FyY2gveDg2L2xp Yi9yZXRwb2xpbmUuUwpAQCAtMTEsMTEgKzExLDExIEBACiAubWFjcm8gVEhVTksgcmVnCiAJLnNl Y3Rpb24gLnRleHQuX194ODYuaW5kaXJlY3RfdGh1bmsKIAotRU5UUlkoX194ODZfaW5kaXJlY3Rf dGh1bmtfXHJlZykKK1NZTV9GVU5DX1NUQVJUKF9feDg2X2luZGlyZWN0X3RodW5rX1xyZWcpCiAJ Q0ZJX1NUQVJUUFJPQwogCUpNUF9OT1NQRUMgJVxyZWcKIAlDRklfRU5EUFJPQwotRU5EUFJPQyhf X3g4Nl9pbmRpcmVjdF90aHVua19ccmVnKQorU1lNX0ZVTkNfRU5EKF9feDg2X2luZGlyZWN0X3Ro dW5rX1xyZWcpCiAuZW5kbQogCiAvKgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL3J3c2VtLlMg Yi9hcmNoL3g4Ni9saWIvcndzZW0uUwppbmRleCBkYzJhYjZlYTY3NjguLmRjZDVjOTk3YjA2OCAx MDA2NDQKLS0tIGEvYXJjaC94ODYvbGliL3J3c2VtLlMKKysrIGIvYXJjaC94ODYvbGliL3J3c2Vt LlMKQEAgLTg2LDcgKzg2LDcgQEAKICNlbmRpZgogCiAvKiBGaXggdXAgc3BlY2lhbCBjYWxsaW5n IGNvbnZlbnRpb25zICovCi1FTlRSWShjYWxsX3J3c2VtX2Rvd25fcmVhZF9mYWlsZWQpCitTWU1f RlVOQ19TVEFSVChjYWxsX3J3c2VtX2Rvd25fcmVhZF9mYWlsZWQpCiAJRlJBTUVfQkVHSU4KIAlz YXZlX2NvbW1vbl9yZWdzCiAJX19BU01fU0laRShwdXNoLCkgJV9fQVNNX1JFRyhkeCkKQEAgLTk2 LDkgKzk2LDkgQEAgRU5UUlkoY2FsbF9yd3NlbV9kb3duX3JlYWRfZmFpbGVkKQogCXJlc3RvcmVf Y29tbW9uX3JlZ3MKIAlGUkFNRV9FTkQKIAlyZXQKLUVORFBST0MoY2FsbF9yd3NlbV9kb3duX3Jl YWRfZmFpbGVkKQorU1lNX0ZVTkNfRU5EKGNhbGxfcndzZW1fZG93bl9yZWFkX2ZhaWxlZCkKIAot RU5UUlkoY2FsbF9yd3NlbV9kb3duX3JlYWRfZmFpbGVkX2tpbGxhYmxlKQorU1lNX0ZVTkNfU1RB UlQoY2FsbF9yd3NlbV9kb3duX3JlYWRfZmFpbGVkX2tpbGxhYmxlKQogCUZSQU1FX0JFR0lOCiAJ c2F2ZV9jb21tb25fcmVncwogCV9fQVNNX1NJWkUocHVzaCwpICVfX0FTTV9SRUcoZHgpCkBAIC0x MDgsOSArMTA4LDkgQEAgRU5UUlkoY2FsbF9yd3NlbV9kb3duX3JlYWRfZmFpbGVkX2tpbGxhYmxl KQogCXJlc3RvcmVfY29tbW9uX3JlZ3MKIAlGUkFNRV9FTkQKIAlyZXQKLUVORFBST0MoY2FsbF9y d3NlbV9kb3duX3JlYWRfZmFpbGVkX2tpbGxhYmxlKQorU1lNX0ZVTkNfRU5EKGNhbGxfcndzZW1f ZG93bl9yZWFkX2ZhaWxlZF9raWxsYWJsZSkKIAotRU5UUlkoY2FsbF9yd3NlbV9kb3duX3dyaXRl X2ZhaWxlZCkKK1NZTV9GVU5DX1NUQVJUKGNhbGxfcndzZW1fZG93bl93cml0ZV9mYWlsZWQpCiAJ RlJBTUVfQkVHSU4KIAlzYXZlX2NvbW1vbl9yZWdzCiAJbW92cSAlcmF4LCVyZGkKQEAgLTExOCw5 ICsxMTgsOSBAQCBFTlRSWShjYWxsX3J3c2VtX2Rvd25fd3JpdGVfZmFpbGVkKQogCXJlc3RvcmVf Y29tbW9uX3JlZ3MKIAlGUkFNRV9FTkQKIAlyZXQKLUVORFBST0MoY2FsbF9yd3NlbV9kb3duX3dy aXRlX2ZhaWxlZCkKK1NZTV9GVU5DX0VORChjYWxsX3J3c2VtX2Rvd25fd3JpdGVfZmFpbGVkKQog Ci1FTlRSWShjYWxsX3J3c2VtX2Rvd25fd3JpdGVfZmFpbGVkX2tpbGxhYmxlKQorU1lNX0ZVTkNf U1RBUlQoY2FsbF9yd3NlbV9kb3duX3dyaXRlX2ZhaWxlZF9raWxsYWJsZSkKIAlGUkFNRV9CRUdJ TgogCXNhdmVfY29tbW9uX3JlZ3MKIAltb3ZxICVyYXgsJXJkaQpAQCAtMTI4LDkgKzEyOCw5IEBA IEVOVFJZKGNhbGxfcndzZW1fZG93bl93cml0ZV9mYWlsZWRfa2lsbGFibGUpCiAJcmVzdG9yZV9j b21tb25fcmVncwogCUZSQU1FX0VORAogCXJldAotRU5EUFJPQyhjYWxsX3J3c2VtX2Rvd25fd3Jp dGVfZmFpbGVkX2tpbGxhYmxlKQorU1lNX0ZVTkNfRU5EKGNhbGxfcndzZW1fZG93bl93cml0ZV9m YWlsZWRfa2lsbGFibGUpCiAKLUVOVFJZKGNhbGxfcndzZW1fd2FrZSkKK1NZTV9GVU5DX1NUQVJU KGNhbGxfcndzZW1fd2FrZSkKIAlGUkFNRV9CRUdJTgogCS8qIGRvIG5vdGhpbmcgaWYgc3RpbGwg b3V0c3RhbmRpbmcgYWN0aXZlIHJlYWRlcnMgKi8KIAlfX0FTTV9IQUxGX1NJWkUoZGVjKSAlX19B U01fSEFMRl9SRUcoZHgpCkBAIC0xNDEsOSArMTQxLDkgQEAgRU5UUlkoY2FsbF9yd3NlbV93YWtl KQogCXJlc3RvcmVfY29tbW9uX3JlZ3MKIDE6CUZSQU1FX0VORAogCXJldAotRU5EUFJPQyhjYWxs X3J3c2VtX3dha2UpCitTWU1fRlVOQ19FTkQoY2FsbF9yd3NlbV93YWtlKQogCi1FTlRSWShjYWxs X3J3c2VtX2Rvd25ncmFkZV93YWtlKQorU1lNX0ZVTkNfU1RBUlQoY2FsbF9yd3NlbV9kb3duZ3Jh ZGVfd2FrZSkKIAlGUkFNRV9CRUdJTgogCXNhdmVfY29tbW9uX3JlZ3MKIAlfX0FTTV9TSVpFKHB1 c2gsKSAlX19BU01fUkVHKGR4KQpAQCAtMTUzLDQgKzE1Myw0IEBAIEVOVFJZKGNhbGxfcndzZW1f ZG93bmdyYWRlX3dha2UpCiAJcmVzdG9yZV9jb21tb25fcmVncwogCUZSQU1FX0VORAogCXJldAot RU5EUFJPQyhjYWxsX3J3c2VtX2Rvd25ncmFkZV93YWtlKQorU1lNX0ZVTkNfRU5EKGNhbGxfcndz ZW1fZG93bmdyYWRlX3dha2UpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9tZW1fZW5jcnlwdF9i b290LlMgYi9hcmNoL3g4Ni9tbS9tZW1fZW5jcnlwdF9ib290LlMKaW5kZXggNDBhNjA4NTA2M2Q2 Li4yYzBhNmZiZDRmZTggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL21lbV9lbmNyeXB0X2Jvb3Qu UworKysgYi9hcmNoL3g4Ni9tbS9tZW1fZW5jcnlwdF9ib290LlMKQEAgLTE5LDcgKzE5LDcgQEAK IAogCS50ZXh0CiAJLmNvZGU2NAotRU5UUlkoc21lX2VuY3J5cHRfZXhlY3V0ZSkKK1NZTV9GVU5D X1NUQVJUKHNtZV9lbmNyeXB0X2V4ZWN1dGUpCiAKIAkvKgogCSAqIEVudHJ5IHBhcmFtZXRlcnM6 CkBAIC02OSw5ICs2OSw5IEBAIEVOVFJZKHNtZV9lbmNyeXB0X2V4ZWN1dGUpCiAJcG9wCSVyYnAK IAogCXJldAotRU5EUFJPQyhzbWVfZW5jcnlwdF9leGVjdXRlKQorU1lNX0ZVTkNfRU5EKHNtZV9l bmNyeXB0X2V4ZWN1dGUpCiAKLUVOVFJZKF9fZW5jX2NvcHkpCitTWU1fRlVOQ19TVEFSVChfX2Vu Y19jb3B5KQogLyoKICAqIFJvdXRpbmUgdXNlZCB0byBlbmNyeXB0IG1lbW9yeSBpbiBwbGFjZS4K ICAqICAgVGhpcyByb3V0aW5lIG11c3QgYmUgcnVuIG91dHNpZGUgb2YgdGhlIGtlcm5lbCBwcm9w ZXIgc2luY2UKQEAgLTE1Niw0ICsxNTYsNCBAQCBFTlRSWShfX2VuY19jb3B5KQogCiAJcmV0CiAu TF9fZW5jX2NvcHlfZW5kOgotRU5EUFJPQyhfX2VuY19jb3B5KQorU1lNX0ZVTkNfRU5EKF9fZW5j X2NvcHkpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wbGF0Zm9ybS9lZmkvZWZpX3N0dWJfNjQuUyBi L2FyY2gveDg2L3BsYXRmb3JtL2VmaS9lZmlfc3R1Yl82NC5TCmluZGV4IDc0NjI4ZWM3OGYyOS4u YjFkMjMxM2ZlM2JmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9wbGF0Zm9ybS9lZmkvZWZpX3N0dWJf NjQuUworKysgYi9hcmNoL3g4Ni9wbGF0Zm9ybS9lZmkvZWZpX3N0dWJfNjQuUwpAQCAtMzksNyAr MzksNyBAQAogCW1vdiAlcnNpLCAlY3IwOwkJCVwKIAltb3YgKCVyc3ApLCAlcnNwCiAKLUVOVFJZ KGVmaV9jYWxsKQorU1lNX0ZVTkNfU1RBUlQoZWZpX2NhbGwpCiAJcHVzaHEgJXJicAogCW1vdnEg JXJzcCwgJXJicAogCVNBVkVfWE1NCkBAIC01NSw0ICs1NSw0IEBAIEVOVFJZKGVmaV9jYWxsKQog CVJFU1RPUkVfWE1NCiAJcG9wcSAlcmJwCiAJcmV0Ci1FTkRQUk9DKGVmaV9jYWxsKQorU1lNX0ZV TkNfRU5EKGVmaV9jYWxsKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaV90 aHVua182NC5TIGIvYXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaV90aHVua182NC5TCmluZGV4IGQ2 NzdhN2ViMmQwYS4uMzE4OWYxMzk0NzAxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9wbGF0Zm9ybS9l ZmkvZWZpX3RodW5rXzY0LlMKKysrIGIvYXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaV90aHVua182 NC5TCkBAIC0yNSw3ICsyNSw3IEBACiAKIAkudGV4dAogCS5jb2RlNjQKLUVOVFJZKGVmaTY0X3Ro dW5rKQorU1lNX0ZVTkNfU1RBUlQoZWZpNjRfdGh1bmspCiAJcHVzaAklcmJwCiAJcHVzaAklcmJ4 CiAKQEAgLTYwLDcgKzYwLDcgQEAgRU5UUlkoZWZpNjRfdGh1bmspCiAJcG9wCSVyYngKIAlwb3AJ JXJicAogCXJldHEKLUVORFBST0MoZWZpNjRfdGh1bmspCitTWU1fRlVOQ19FTkQoZWZpNjRfdGh1 bmspCiAKIC8qCiAgKiBXZSBydW4gdGhpcyBmdW5jdGlvbiBmcm9tIHRoZSAxOjEgbWFwcGluZy4K ZGlmZiAtLWdpdCBhL2FyY2gveDg2L3Bvd2VyL2hpYmVybmF0ZV9hc21fNjQuUyBiL2FyY2gveDg2 L3Bvd2VyL2hpYmVybmF0ZV9hc21fNjQuUwppbmRleCA0NDc1NWE4NDc4NTYuLmM4N2FlMDhmOTMx MiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcG93ZXIvaGliZXJuYXRlX2FzbV82NC5TCisrKyBiL2Fy Y2gveDg2L3Bvd2VyL2hpYmVybmF0ZV9hc21fNjQuUwpAQCAtMjMsNyArMjMsNyBAQAogI2luY2x1 ZGUgPGFzbS9wcm9jZXNzb3ItZmxhZ3MuaD4KICNpbmNsdWRlIDxhc20vZnJhbWUuaD4KIAotRU5U Ulkoc3dzdXNwX2FyY2hfc3VzcGVuZCkKK1NZTV9GVU5DX1NUQVJUKHN3c3VzcF9hcmNoX3N1c3Bl bmQpCiAJbW92cQkkc2F2ZWRfY29udGV4dCwgJXJheAogCW1vdnEJJXJzcCwgcHRfcmVnc19zcCgl cmF4KQogCW1vdnEJJXJicCwgcHRfcmVnc19icCglcmF4KQpAQCAtNTEsNyArNTEsNyBAQCBFTlRS WShzd3N1c3BfYXJjaF9zdXNwZW5kKQogCWNhbGwgc3dzdXNwX3NhdmUKIAlGUkFNRV9FTkQKIAly ZXQKLUVORFBST0Moc3dzdXNwX2FyY2hfc3VzcGVuZCkKK1NZTV9GVU5DX0VORChzd3N1c3BfYXJj aF9zdXNwZW5kKQogCiBTWU1fQ09ERV9TVEFSVChyZXN0b3JlX2ltYWdlKQogCS8qIHByZXBhcmUg dG8ganVtcCB0byB0aGUgaW1hZ2Uga2VybmVsICovCkBAIC0xMDMsNyArMTAzLDcgQEAgU1lNX0NP REVfRU5EKGNvcmVfcmVzdG9yZV9jb2RlKQogCiAJIC8qIGNvZGUgYmVsb3cgYmVsb25ncyB0byB0 aGUgaW1hZ2Uga2VybmVsICovCiAJLmFsaWduIFBBR0VfU0laRQotRU5UUlkocmVzdG9yZV9yZWdp c3RlcnMpCitTWU1fRlVOQ19TVEFSVChyZXN0b3JlX3JlZ2lzdGVycykKIAkvKiBnbyBiYWNrIHRv IHRoZSBvcmlnaW5hbCBwYWdlIHRhYmxlcyAqLwogCW1vdnEgICAgJXI5LCAlY3IzCiAKQEAgLTE0 NSw0ICsxNDUsNCBAQCBFTlRSWShyZXN0b3JlX3JlZ2lzdGVycykKIAltb3ZxCSVyYXgsIGluX3N1 c3BlbmQoJXJpcCkKIAogCXJldAotRU5EUFJPQyhyZXN0b3JlX3JlZ2lzdGVycykKK1NZTV9GVU5D X0VORChyZXN0b3JlX3JlZ2lzdGVycykKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi94ZW4tYXNt LlMgYi9hcmNoL3g4Ni94ZW4veGVuLWFzbS5TCmluZGV4IDgwMTllZGQwMTI1Yy4uZDdiZjZkNWNm Y2I5IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4veGVuLWFzbS5TCisrKyBiL2FyY2gveDg2L3hl bi94ZW4tYXNtLlMKQEAgLTE4LDcgKzE4LDcgQEAKICAqIGV2ZW50IHN0YXR1cyB3aXRoIG9uZSBh bmQgb3BlcmF0aW9uLiAgSWYgdGhlcmUgYXJlIHBlbmRpbmcgZXZlbnRzLAogICogdGhlbiBlbnRl ciB0aGUgaHlwZXJ2aXNvciB0byBnZXQgdGhlbSBoYW5kbGVkLgogICovCi1FTlRSWSh4ZW5faXJx X2VuYWJsZV9kaXJlY3QpCitTWU1fRlVOQ19TVEFSVCh4ZW5faXJxX2VuYWJsZV9kaXJlY3QpCiAJ RlJBTUVfQkVHSU4KIAkvKiBVbm1hc2sgZXZlbnRzICovCiAJbW92YiAkMCwgUEVSX0NQVV9WQVIo eGVuX3ZjcHVfaW5mbykgKyBYRU5fdmNwdV9pbmZvX21hc2sKQEAgLTM3LDE3ICszNywxNyBAQCBF TlRSWSh4ZW5faXJxX2VuYWJsZV9kaXJlY3QpCiAxOgogCUZSQU1FX0VORAogCXJldAotCUVORFBS T0MoeGVuX2lycV9lbmFibGVfZGlyZWN0KQorU1lNX0ZVTkNfRU5EKHhlbl9pcnFfZW5hYmxlX2Rp cmVjdCkKIAogCiAvKgogICogRGlzYWJsaW5nIGV2ZW50cyBpcyBzaW1wbHkgYSBtYXR0ZXIgb2Yg bWFraW5nIHRoZSBldmVudCBtYXNrCiAgKiBub24temVyby4KICAqLwotRU5UUlkoeGVuX2lycV9k aXNhYmxlX2RpcmVjdCkKK1NZTV9GVU5DX1NUQVJUKHhlbl9pcnFfZGlzYWJsZV9kaXJlY3QpCiAJ bW92YiAkMSwgUEVSX0NQVV9WQVIoeGVuX3ZjcHVfaW5mbykgKyBYRU5fdmNwdV9pbmZvX21hc2sK IAlyZXQKLUVORFBST0MoeGVuX2lycV9kaXNhYmxlX2RpcmVjdCkKK1NZTV9GVU5DX0VORCh4ZW5f aXJxX2Rpc2FibGVfZGlyZWN0KQogCiAvKgogICogKHhlbl8pc2F2ZV9mbCBpcyB1c2VkIHRvIGdl dCB0aGUgY3VycmVudCBpbnRlcnJ1cHQgZW5hYmxlIHN0YXR1cy4KQEAgLTU4LDEyICs1OCwxMiBA QCBFTkRQUk9DKHhlbl9pcnFfZGlzYWJsZV9kaXJlY3QpCiAgKiB1bmRlZmluZWQuICBXZSBuZWVk IHRvIHRvZ2dsZSB0aGUgc3RhdGUgb2YgdGhlIGJpdCwgYmVjYXVzZSBYZW4gYW5kCiAgKiB4ODYg dXNlIG9wcG9zaXRlIHNlbnNlcyAobWFzayB2cyBlbmFibGUpLgogICovCi1FTlRSWSh4ZW5fc2F2 ZV9mbF9kaXJlY3QpCitTWU1fRlVOQ19TVEFSVCh4ZW5fc2F2ZV9mbF9kaXJlY3QpCiAJdGVzdGIg JDB4ZmYsIFBFUl9DUFVfVkFSKHhlbl92Y3B1X2luZm8pICsgWEVOX3ZjcHVfaW5mb19tYXNrCiAJ c2V0eiAlYWgKIAlhZGRiICVhaCwgJWFoCiAJcmV0Ci0JRU5EUFJPQyh4ZW5fc2F2ZV9mbF9kaXJl Y3QpCitTWU1fRlVOQ19FTkQoeGVuX3NhdmVfZmxfZGlyZWN0KQogCiAKIC8qCkBAIC03Myw3ICs3 Myw3IEBAIEVOVFJZKHhlbl9zYXZlX2ZsX2RpcmVjdCkKICAqIGludGVycnVwdCBtYXNrIHN0YXRl LCBpdCBjaGVja3MgZm9yIHVubWFza2VkIHBlbmRpbmcgZXZlbnRzIGFuZAogICogZW50ZXJzIHRo ZSBoeXBlcnZpc29yIHRvIGdldCB0aGVtIGRlbGl2ZXJlZCBpZiBzby4KICAqLwotRU5UUlkoeGVu X3Jlc3RvcmVfZmxfZGlyZWN0KQorU1lNX0ZVTkNfU1RBUlQoeGVuX3Jlc3RvcmVfZmxfZGlyZWN0 KQogCUZSQU1FX0JFR0lOCiAjaWZkZWYgQ09ORklHX1g4Nl82NAogCXRlc3R3ICRYODZfRUZMQUdT X0lGLCAlZGkKQEAgLTk0LDE0ICs5NCwxNCBAQCBFTlRSWSh4ZW5fcmVzdG9yZV9mbF9kaXJlY3Qp CiAxOgogCUZSQU1FX0VORAogCXJldAotCUVORFBST0MoeGVuX3Jlc3RvcmVfZmxfZGlyZWN0KQor U1lNX0ZVTkNfRU5EKHhlbl9yZXN0b3JlX2ZsX2RpcmVjdCkKIAogCiAvKgogICogRm9yY2UgYW4g ZXZlbnQgY2hlY2sgYnkgbWFraW5nIGEgaHlwZXJjYWxsLCBidXQgcHJlc2VydmUgcmVncwogICog YmVmb3JlIG1ha2luZyB0aGUgY2FsbC4KICAqLwotRU5UUlkoY2hlY2tfZXZlbnRzKQorU1lNX0ZV TkNfU1RBUlQoY2hlY2tfZXZlbnRzKQogCUZSQU1FX0JFR0lOCiAjaWZkZWYgQ09ORklHX1g4Nl8z MgogCXB1c2ggJWVheApAQCAtMTM0LDQgKzEzNCw0IEBAIEVOVFJZKGNoZWNrX2V2ZW50cykKICNl bmRpZgogCUZSQU1FX0VORAogCXJldAotRU5EUFJPQyhjaGVja19ldmVudHMpCitTWU1fRlVOQ19F TkQoY2hlY2tfZXZlbnRzKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL3hlbi1hc21fNjQuUyBi L2FyY2gveDg2L3hlbi94ZW4tYXNtXzY0LlMKaW5kZXggNWEzZjVjMThjZDBjLi5kYWRhNzNkYjQw MmEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi94ZW4tYXNtXzY0LlMKKysrIGIvYXJjaC94ODYv eGVuL3hlbi1hc21fNjQuUwpAQCAtMTIzLDcgKzEyMyw3IEBAIFNZTV9DT0RFX0VORCh4ZW5fc3lz cmV0NjQpCiAgKi8KIAogLyogTm9ybWFsIDY0LWJpdCBzeXN0ZW0gY2FsbCB0YXJnZXQgKi8KLUVO VFJZKHhlbl9zeXNjYWxsX3RhcmdldCkKK1NZTV9GVU5DX1NUQVJUKHhlbl9zeXNjYWxsX3Rhcmdl dCkKIAlwb3BxICVyY3gKIAlwb3BxICVyMTEKIApAQCAtMTM2LDEyICsxMzYsMTIgQEAgRU5UUlko eGVuX3N5c2NhbGxfdGFyZ2V0KQogCW1vdnEgJF9fVVNFUl9DUywgMSo4KCVyc3ApCiAKIAlqbXAg ZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lCi1FTkRQUk9DKHhlbl9zeXNjYWxsX3Rhcmdl dCkKK1NZTV9GVU5DX0VORCh4ZW5fc3lzY2FsbF90YXJnZXQpCiAKICNpZmRlZiBDT05GSUdfSUEz Ml9FTVVMQVRJT04KIAogLyogMzItYml0IGNvbXBhdCBzeXNjYWxsIHRhcmdldCAqLwotRU5UUlko eGVuX3N5c2NhbGwzMl90YXJnZXQpCitTWU1fRlVOQ19TVEFSVCh4ZW5fc3lzY2FsbDMyX3Rhcmdl dCkKIAlwb3BxICVyY3gKIAlwb3BxICVyMTEKIApAQCAtMTU0LDI1ICsxNTQsMjUgQEAgRU5UUlko eGVuX3N5c2NhbGwzMl90YXJnZXQpCiAJbW92cSAkX19VU0VSMzJfQ1MsIDEqOCglcnNwKQogCiAJ am1wIGVudHJ5X1NZU0NBTExfY29tcGF0X2FmdGVyX2h3ZnJhbWUKLUVORFBST0MoeGVuX3N5c2Nh bGwzMl90YXJnZXQpCitTWU1fRlVOQ19FTkQoeGVuX3N5c2NhbGwzMl90YXJnZXQpCiAKIC8qIDMy LWJpdCBjb21wYXQgc3lzZW50ZXIgdGFyZ2V0ICovCi1FTlRSWSh4ZW5fc3lzZW50ZXJfdGFyZ2V0 KQorU1lNX0ZVTkNfU1RBUlQoeGVuX3N5c2VudGVyX3RhcmdldCkKIAltb3YgMCo4KCVyc3ApLCAl cmN4CiAJbW92IDEqOCglcnNwKSwgJXIxMQogCW1vdiA1KjgoJXJzcCksICVyc3AKIAlqbXAgZW50 cnlfU1lTRU5URVJfY29tcGF0Ci1FTkRQUk9DKHhlbl9zeXNlbnRlcl90YXJnZXQpCitTWU1fRlVO Q19FTkQoeGVuX3N5c2VudGVyX3RhcmdldCkKIAogI2Vsc2UgLyogIUNPTkZJR19JQTMyX0VNVUxB VElPTiAqLwogCiBTWU1fRlVOQ19TVEFSVF9BTElBUyh4ZW5fc3lzY2FsbDMyX3RhcmdldCkKLUVO VFJZKHhlbl9zeXNlbnRlcl90YXJnZXQpCitTWU1fRlVOQ19TVEFSVCh4ZW5fc3lzZW50ZXJfdGFy Z2V0KQogCWxlYSAxNiglcnNwKSwgJXJzcAkvKiBzdHJpcCAlcmN4LCAlcjExICovCiAJbW92ICQt RU5PU1lTLCAlcmF4CiAJcHVzaHEgJDAKIAlqbXAgaHlwZXJjYWxsX2lyZXQKLUVORFBST0MoeGVu X3N5c2VudGVyX3RhcmdldCkKK1NZTV9GVU5DX0VORCh4ZW5fc3lzZW50ZXJfdGFyZ2V0KQogU1lN X0ZVTkNfRU5EX0FMSUFTKHhlbl9zeXNjYWxsMzJfdGFyZ2V0KQogCiAjZW5kaWYJLyogQ09ORklH X0lBMzJfRU1VTEFUSU9OICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2xpbmthZ2UuaCBi L2luY2x1ZGUvbGludXgvbGlua2FnZS5oCmluZGV4IGM4NGE2ZjI0NGViOC4uNjAyMzZkM2Y0YTA2 IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2xpbmthZ2UuaAorKysgYi9pbmNsdWRlL2xpbnV4 L2xpbmthZ2UuaApAQCAtMTA1LDExICsxMDUsMTMgQEAKIAogLyogPT09IERFUFJFQ0FURUQgYW5u b3RhdGlvbnMgPT09ICovCiAKKyNpZm5kZWYgQ09ORklHX1g4Nl82NAogI2lmbmRlZiBFTlRSWQog LyogZGVwcmVjYXRlZCwgdXNlIFNZTV9GVU5DX1NUQVJUICovCiAjZGVmaW5lIEVOVFJZKG5hbWUp IFwKIAlTWU1fRlVOQ19TVEFSVChuYW1lKQogI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1g4Nl82 NCAqLwogI2VuZGlmIC8qIExJTktFUl9TQ1JJUFQgKi8KIAogI2lmbmRlZiBXRUFLCkBAIC0xMjQs NiArMTI2LDcgQEAKIAkuc2l6ZSBuYW1lLCAuLW5hbWUKICNlbmRpZgogCisjaWZuZGVmIENPTkZJ R19YODZfNjQKIC8qIElmIHN5bWJvbCAnbmFtZScgaXMgdHJlYXRlZCBhcyBhIHN1YnJvdXRpbmUg KGdldHMgY2FsbGVkLCBhbmQgcmV0dXJucykKICAqIHRoZW4gcGxlYXNlIHVzZSBFTkRQUk9DIHRv IG1hcmsgJ25hbWUnIGFzIFNUVF9GVU5DIGZvciB0aGUgYmVuZWZpdCBvZgogICogc3RhdGljIGFu YWx5c2lzIHRvb2xzIHN1Y2ggYXMgc3RhY2sgZGVwdGggYW5hbHl6ZXIuCkBAIC0xMzMsNiArMTM2 LDcgQEAKICNkZWZpbmUgRU5EUFJPQyhuYW1lKSBcCiAJU1lNX0ZVTkNfRU5EKG5hbWUpCiAjZW5k aWYKKyNlbmRpZiAvKiBDT05GSUdfWDg2XzY0ICovCiAKIC8qID09PSBnZW5lcmljIGFubm90YXRp b25zID09PSAqLwogCi0tIAoyLjE2LjMKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934491AbeEJIIQ (ORCPT ); Thu, 10 May 2018 04:08:16 -0400 Received: from mx2.suse.de ([195.135.220.15]:51881 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756812AbeEJIHL (ORCPT ); Thu, 10 May 2018 04:07:11 -0400 From: Jiri Slaby To: mingo@redhat.com Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, Jiri Slaby , "H. Peter Anvin" , Thomas Gleixner , x86@kernel.org, Herbert Xu , "David S. Miller" , "Rafael J. Wysocki" , Len Brown , Pavel Machek , Matt Fleming , Ard Biesheuvel , Boris Ostrovsky , Juergen Gross , linux-crypto@vger.kernel.org, linux-pm@vger.kernel.org, linux-efi@vger.kernel.org, xen-devel@lists.xenproject.org Subject: [PATCH -resend 23/27] x86_64: assembly, change all ENTRY+ENDPROC to SYM_FUNC_* Date: Thu, 10 May 2018 10:06:40 +0200 Message-Id: <20180510080644.19752-24-jslaby@suse.cz> X-Mailer: git-send-email 2.16.3 In-Reply-To: <20180510080644.19752-1-jslaby@suse.cz> References: <20180510080644.19752-1-jslaby@suse.cz> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org These are all functions which are invoked from elsewhere, so we annotate them as global using the new SYM_FUNC_START. And their ENDPROC's by SYM_FUNC_END. And make sure ENTRY/ENDPROC is not defined on X86_64, given these were the last users. Signed-off-by: Jiri Slaby Reviewed-by: Rafael J. Wysocki [hibernate] Reviewed-by: Boris Ostrovsky [xen bits] Cc: "H. Peter Anvin" Cc: Thomas Gleixner Cc: Ingo Molnar Cc: x86@kernel.org Cc: Herbert Xu Cc: "David S. Miller" Cc: "Rafael J. Wysocki" Cc: Len Brown Cc: Pavel Machek Cc: Matt Fleming Cc: Ard Biesheuvel Cc: Boris Ostrovsky Cc: Juergen Gross Cc: linux-crypto@vger.kernel.org Cc: linux-pm@vger.kernel.org Cc: linux-efi@vger.kernel.org Cc: xen-devel@lists.xenproject.org --- arch/x86/boot/compressed/efi_thunk_64.S | 4 +- arch/x86/boot/compressed/head_64.S | 16 +++--- arch/x86/boot/compressed/mem_encrypt.S | 8 +-- arch/x86/crypto/aes-i586-asm_32.S | 8 +-- arch/x86/crypto/aes-x86_64-asm_64.S | 4 +- arch/x86/crypto/aes_ctrby8_avx-x86_64.S | 12 ++--- arch/x86/crypto/aesni-intel_asm.S | 60 +++++++++++----------- arch/x86/crypto/aesni-intel_avx-x86_64.S | 24 ++++----- arch/x86/crypto/blowfish-x86_64-asm_64.S | 16 +++--- arch/x86/crypto/camellia-aesni-avx-asm_64.S | 24 ++++----- arch/x86/crypto/camellia-aesni-avx2-asm_64.S | 24 ++++----- arch/x86/crypto/camellia-x86_64-asm_64.S | 16 +++--- arch/x86/crypto/cast5-avx-x86_64-asm_64.S | 16 +++--- arch/x86/crypto/cast6-avx-x86_64-asm_64.S | 24 ++++----- arch/x86/crypto/chacha20-avx2-x86_64.S | 4 +- arch/x86/crypto/chacha20-ssse3-x86_64.S | 8 +-- arch/x86/crypto/crc32-pclmul_asm.S | 4 +- arch/x86/crypto/crc32c-pcl-intel-asm_64.S | 4 +- arch/x86/crypto/crct10dif-pcl-asm_64.S | 4 +- arch/x86/crypto/des3_ede-asm_64.S | 8 +-- arch/x86/crypto/ghash-clmulni-intel_asm.S | 8 +-- arch/x86/crypto/poly1305-avx2-x86_64.S | 4 +- arch/x86/crypto/poly1305-sse2-x86_64.S | 8 +-- arch/x86/crypto/salsa20-x86_64-asm_64.S | 4 +- arch/x86/crypto/serpent-avx-x86_64-asm_64.S | 24 ++++----- arch/x86/crypto/serpent-avx2-asm_64.S | 24 ++++----- arch/x86/crypto/serpent-sse2-x86_64-asm_64.S | 8 +-- arch/x86/crypto/sha1-mb/sha1_mb_mgr_flush_avx2.S | 8 +-- arch/x86/crypto/sha1-mb/sha1_mb_mgr_submit_avx2.S | 4 +- arch/x86/crypto/sha1-mb/sha1_x8_avx2.S | 4 +- arch/x86/crypto/sha1_avx2_x86_64_asm.S | 4 +- arch/x86/crypto/sha1_ni_asm.S | 4 +- arch/x86/crypto/sha1_ssse3_asm.S | 4 +- arch/x86/crypto/sha256-avx-asm.S | 4 +- arch/x86/crypto/sha256-avx2-asm.S | 4 +- .../crypto/sha256-mb/sha256_mb_mgr_flush_avx2.S | 8 +-- .../crypto/sha256-mb/sha256_mb_mgr_submit_avx2.S | 4 +- arch/x86/crypto/sha256-mb/sha256_x8_avx2.S | 4 +- arch/x86/crypto/sha256-ssse3-asm.S | 4 +- arch/x86/crypto/sha256_ni_asm.S | 4 +- arch/x86/crypto/sha512-avx-asm.S | 4 +- arch/x86/crypto/sha512-avx2-asm.S | 4 +- .../crypto/sha512-mb/sha512_mb_mgr_flush_avx2.S | 8 +-- .../crypto/sha512-mb/sha512_mb_mgr_submit_avx2.S | 4 +- arch/x86/crypto/sha512-mb/sha512_x4_avx2.S | 4 +- arch/x86/crypto/sha512-ssse3-asm.S | 4 +- arch/x86/crypto/twofish-avx-x86_64-asm_64.S | 24 ++++----- arch/x86/crypto/twofish-x86_64-asm_64-3way.S | 8 +-- arch/x86/crypto/twofish-x86_64-asm_64.S | 8 +-- arch/x86/entry/entry_64.S | 10 ++-- arch/x86/entry/entry_64_compat.S | 4 +- arch/x86/kernel/acpi/wakeup_64.S | 8 +-- arch/x86/kernel/ftrace_64.S | 20 ++++---- arch/x86/kernel/head_64.S | 12 ++--- arch/x86/lib/checksum_32.S | 8 +-- arch/x86/lib/clear_page_64.S | 12 ++--- arch/x86/lib/cmpxchg16b_emu.S | 4 +- arch/x86/lib/cmpxchg8b_emu.S | 4 +- arch/x86/lib/copy_page_64.S | 4 +- arch/x86/lib/copy_user_64.S | 16 +++--- arch/x86/lib/csum-copy_64.S | 4 +- arch/x86/lib/getuser.S | 16 +++--- arch/x86/lib/hweight.S | 8 +-- arch/x86/lib/iomap_copy_64.S | 4 +- arch/x86/lib/memcpy_64.S | 4 +- arch/x86/lib/memmove_64.S | 4 +- arch/x86/lib/memset_64.S | 4 +- arch/x86/lib/msr-reg.S | 8 +-- arch/x86/lib/putuser.S | 16 +++--- arch/x86/lib/retpoline.S | 4 +- arch/x86/lib/rwsem.S | 24 ++++----- arch/x86/mm/mem_encrypt_boot.S | 8 +-- arch/x86/platform/efi/efi_stub_64.S | 4 +- arch/x86/platform/efi/efi_thunk_64.S | 4 +- arch/x86/power/hibernate_asm_64.S | 8 +-- arch/x86/xen/xen-asm.S | 20 ++++---- arch/x86/xen/xen-asm_64.S | 16 +++--- include/linux/linkage.h | 4 ++ 78 files changed, 381 insertions(+), 377 deletions(-) diff --git a/arch/x86/boot/compressed/efi_thunk_64.S b/arch/x86/boot/compressed/efi_thunk_64.S index 31312070db22..593913692d16 100644 --- a/arch/x86/boot/compressed/efi_thunk_64.S +++ b/arch/x86/boot/compressed/efi_thunk_64.S @@ -23,7 +23,7 @@ .code64 .text -ENTRY(efi64_thunk) +SYM_FUNC_START(efi64_thunk) push %rbp push %rbx @@ -97,7 +97,7 @@ ENTRY(efi64_thunk) pop %rbx pop %rbp ret -ENDPROC(efi64_thunk) +SYM_FUNC_END(efi64_thunk) SYM_FUNC_START_LOCAL(efi_exit32) movq func_rt_ptr(%rip), %rax diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S index d056c789f90d..109d2e00650b 100644 --- a/arch/x86/boot/compressed/head_64.S +++ b/arch/x86/boot/compressed/head_64.S @@ -45,7 +45,7 @@ __HEAD .code32 -ENTRY(startup_32) +SYM_FUNC_START(startup_32) /* * 32bit entry is 0 and it is ABI so immutable! * If we come here directly from a bootloader, @@ -222,11 +222,11 @@ ENTRY(startup_32) /* Jump from 32bit compatibility mode into 64bit mode. */ lret -ENDPROC(startup_32) +SYM_FUNC_END(startup_32) #ifdef CONFIG_EFI_MIXED .org 0x190 -ENTRY(efi32_stub_entry) +SYM_FUNC_START(efi32_stub_entry) add $0x4, %esp /* Discard return address */ popl %ecx popl %edx @@ -245,7 +245,7 @@ ENTRY(efi32_stub_entry) movl %eax, efi_config(%ebp) jmp startup_32 -ENDPROC(efi32_stub_entry) +SYM_FUNC_END(efi32_stub_entry) #endif .code64 @@ -405,7 +405,7 @@ SYM_CODE_END(startup_64) #ifdef CONFIG_EFI_STUB /* The entry point for the PE/COFF executable is efi_pe_entry. */ -ENTRY(efi_pe_entry) +SYM_FUNC_START(efi_pe_entry) movq %rcx, efi64_config(%rip) /* Handle */ movq %rdx, efi64_config+8(%rip) /* EFI System table pointer */ @@ -454,10 +454,10 @@ fail: movl BP_code32_start(%esi), %eax leaq startup_64(%rax), %rax jmp *%rax -ENDPROC(efi_pe_entry) +SYM_FUNC_END(efi_pe_entry) .org 0x390 -ENTRY(efi64_stub_entry) +SYM_FUNC_START(efi64_stub_entry) movq %rdi, efi64_config(%rip) /* Handle */ movq %rsi, efi64_config+8(%rip) /* EFI System table pointer */ @@ -466,7 +466,7 @@ ENTRY(efi64_stub_entry) movq %rdx, %rsi jmp handover_entry -ENDPROC(efi64_stub_entry) +SYM_FUNC_END(efi64_stub_entry) #endif .text diff --git a/arch/x86/boot/compressed/mem_encrypt.S b/arch/x86/boot/compressed/mem_encrypt.S index fabed28d2edd..ebf82e1f9300 100644 --- a/arch/x86/boot/compressed/mem_encrypt.S +++ b/arch/x86/boot/compressed/mem_encrypt.S @@ -18,7 +18,7 @@ .text .code32 -ENTRY(get_sev_encryption_bit) +SYM_FUNC_START(get_sev_encryption_bit) xor %eax, %eax #ifdef CONFIG_AMD_MEM_ENCRYPT @@ -85,10 +85,10 @@ ENTRY(get_sev_encryption_bit) #endif /* CONFIG_AMD_MEM_ENCRYPT */ ret -ENDPROC(get_sev_encryption_bit) +SYM_FUNC_END(get_sev_encryption_bit) .code64 -ENTRY(set_sev_encryption_mask) +SYM_FUNC_START(set_sev_encryption_mask) #ifdef CONFIG_AMD_MEM_ENCRYPT push %rbp push %rdx @@ -110,7 +110,7 @@ ENTRY(set_sev_encryption_mask) xor %rax, %rax ret -ENDPROC(set_sev_encryption_mask) +SYM_FUNC_END(set_sev_encryption_mask) .data SYM_DATA_LOCAL(enc_bit, .int 0xffffffff) diff --git a/arch/x86/crypto/aes-i586-asm_32.S b/arch/x86/crypto/aes-i586-asm_32.S index 2849dbc59e11..5b2636c58527 100644 --- a/arch/x86/crypto/aes-i586-asm_32.S +++ b/arch/x86/crypto/aes-i586-asm_32.S @@ -223,7 +223,7 @@ .extern crypto_ft_tab .extern crypto_fl_tab -ENTRY(aes_enc_blk) +SYM_FUNC_START(aes_enc_blk) push %ebp mov ctx(%esp),%ebp @@ -287,7 +287,7 @@ ENTRY(aes_enc_blk) mov %r0,(%ebp) pop %ebp ret -ENDPROC(aes_enc_blk) +SYM_FUNC_END(aes_enc_blk) // AES (Rijndael) Decryption Subroutine /* void aes_dec_blk(struct crypto_aes_ctx *ctx, u8 *out_blk, const u8 *in_blk) */ @@ -295,7 +295,7 @@ ENDPROC(aes_enc_blk) .extern crypto_it_tab .extern crypto_il_tab -ENTRY(aes_dec_blk) +SYM_FUNC_START(aes_dec_blk) push %ebp mov ctx(%esp),%ebp @@ -359,4 +359,4 @@ ENTRY(aes_dec_blk) mov %r0,(%ebp) pop %ebp ret -ENDPROC(aes_dec_blk) +SYM_FUNC_END(aes_dec_blk) diff --git a/arch/x86/crypto/aes-x86_64-asm_64.S b/arch/x86/crypto/aes-x86_64-asm_64.S index 8739cf7795de..22c44ad3ef42 100644 --- a/arch/x86/crypto/aes-x86_64-asm_64.S +++ b/arch/x86/crypto/aes-x86_64-asm_64.S @@ -49,7 +49,7 @@ #define R11 %r11 #define prologue(FUNC,KEY,B128,B192,r1,r2,r5,r6,r7,r8,r9,r10,r11) \ - ENTRY(FUNC); \ + SYM_FUNC_START(FUNC); \ movq r1,r2; \ leaq KEY+48(r8),r9; \ movq r10,r11; \ @@ -75,7 +75,7 @@ movl r7 ## E,8(r9); \ movl r8 ## E,12(r9); \ ret; \ - ENDPROC(FUNC); + SYM_FUNC_END(FUNC); #define round(TAB,OFFSET,r1,r2,r3,r4,r5,r6,r7,r8,ra,rb,rc,rd) \ movzbl r2 ## H,r5 ## E; \ diff --git a/arch/x86/crypto/aes_ctrby8_avx-x86_64.S b/arch/x86/crypto/aes_ctrby8_avx-x86_64.S index 5f6a5af9c489..ec437db1fa54 100644 --- a/arch/x86/crypto/aes_ctrby8_avx-x86_64.S +++ b/arch/x86/crypto/aes_ctrby8_avx-x86_64.S @@ -544,11 +544,11 @@ ddq_add_8: * aes_ctr_enc_128_avx_by8(void *in, void *iv, void *keys, void *out, * unsigned int num_bytes) */ -ENTRY(aes_ctr_enc_128_avx_by8) +SYM_FUNC_START(aes_ctr_enc_128_avx_by8) /* call the aes main loop */ do_aes_ctrmain KEY_128 -ENDPROC(aes_ctr_enc_128_avx_by8) +SYM_FUNC_END(aes_ctr_enc_128_avx_by8) /* * routine to do AES192 CTR enc/decrypt "by8" @@ -557,11 +557,11 @@ ENDPROC(aes_ctr_enc_128_avx_by8) * aes_ctr_enc_192_avx_by8(void *in, void *iv, void *keys, void *out, * unsigned int num_bytes) */ -ENTRY(aes_ctr_enc_192_avx_by8) +SYM_FUNC_START(aes_ctr_enc_192_avx_by8) /* call the aes main loop */ do_aes_ctrmain KEY_192 -ENDPROC(aes_ctr_enc_192_avx_by8) +SYM_FUNC_END(aes_ctr_enc_192_avx_by8) /* * routine to do AES256 CTR enc/decrypt "by8" @@ -570,8 +570,8 @@ ENDPROC(aes_ctr_enc_192_avx_by8) * aes_ctr_enc_256_avx_by8(void *in, void *iv, void *keys, void *out, * unsigned int num_bytes) */ -ENTRY(aes_ctr_enc_256_avx_by8) +SYM_FUNC_START(aes_ctr_enc_256_avx_by8) /* call the aes main loop */ do_aes_ctrmain KEY_256 -ENDPROC(aes_ctr_enc_256_avx_by8) +SYM_FUNC_END(aes_ctr_enc_256_avx_by8) diff --git a/arch/x86/crypto/aesni-intel_asm.S b/arch/x86/crypto/aesni-intel_asm.S index c85ecb163c78..8a0b154d3a9f 100644 --- a/arch/x86/crypto/aesni-intel_asm.S +++ b/arch/x86/crypto/aesni-intel_asm.S @@ -1596,7 +1596,7 @@ _esb_loop_\@: * poly = x^128 + x^127 + x^126 + x^121 + 1 * *****************************************************************************/ -ENTRY(aesni_gcm_dec) +SYM_FUNC_START(aesni_gcm_dec) FUNC_SAVE GCM_INIT %arg6, arg7, arg8, arg9 @@ -1604,7 +1604,7 @@ ENTRY(aesni_gcm_dec) GCM_COMPLETE arg10, arg11 FUNC_RESTORE ret -ENDPROC(aesni_gcm_dec) +SYM_FUNC_END(aesni_gcm_dec) /***************************************************************************** @@ -1684,7 +1684,7 @@ ENDPROC(aesni_gcm_dec) * * poly = x^128 + x^127 + x^126 + x^121 + 1 ***************************************************************************/ -ENTRY(aesni_gcm_enc) +SYM_FUNC_START(aesni_gcm_enc) FUNC_SAVE GCM_INIT %arg6, arg7, arg8, arg9 @@ -1693,7 +1693,7 @@ ENTRY(aesni_gcm_enc) GCM_COMPLETE arg10, arg11 FUNC_RESTORE ret -ENDPROC(aesni_gcm_enc) +SYM_FUNC_END(aesni_gcm_enc) /***************************************************************************** * void aesni_gcm_init(void *aes_ctx, // AES Key schedule. Starts on a 16 byte boundary. @@ -1706,12 +1706,12 @@ ENDPROC(aesni_gcm_enc) * const u8 *aad, // Additional Authentication Data (AAD) * u64 aad_len) // Length of AAD in bytes. */ -ENTRY(aesni_gcm_init) +SYM_FUNC_START(aesni_gcm_init) FUNC_SAVE GCM_INIT %arg3, %arg4,%arg5, %arg6 FUNC_RESTORE ret -ENDPROC(aesni_gcm_init) +SYM_FUNC_END(aesni_gcm_init) /***************************************************************************** * void aesni_gcm_enc_update(void *aes_ctx, // AES Key schedule. Starts on a 16 byte boundary. @@ -1721,12 +1721,12 @@ ENDPROC(aesni_gcm_init) * const u8 *in, // Plaintext input * u64 plaintext_len, // Length of data in bytes for encryption. */ -ENTRY(aesni_gcm_enc_update) +SYM_FUNC_START(aesni_gcm_enc_update) FUNC_SAVE GCM_ENC_DEC enc FUNC_RESTORE ret -ENDPROC(aesni_gcm_enc_update) +SYM_FUNC_END(aesni_gcm_enc_update) /***************************************************************************** * void aesni_gcm_dec_update(void *aes_ctx, // AES Key schedule. Starts on a 16 byte boundary. @@ -1736,12 +1736,12 @@ ENDPROC(aesni_gcm_enc_update) * const u8 *in, // Plaintext input * u64 plaintext_len, // Length of data in bytes for encryption. */ -ENTRY(aesni_gcm_dec_update) +SYM_FUNC_START(aesni_gcm_dec_update) FUNC_SAVE GCM_ENC_DEC dec FUNC_RESTORE ret -ENDPROC(aesni_gcm_dec_update) +SYM_FUNC_END(aesni_gcm_dec_update) /***************************************************************************** * void aesni_gcm_finalize(void *aes_ctx, // AES Key schedule. Starts on a 16 byte boundary. @@ -1751,12 +1751,12 @@ ENDPROC(aesni_gcm_dec_update) * u64 auth_tag_len); // Authenticated Tag Length in bytes. Valid values are 16 (most likely), * // 12 or 8. */ -ENTRY(aesni_gcm_finalize) +SYM_FUNC_START(aesni_gcm_finalize) FUNC_SAVE GCM_COMPLETE %arg3 %arg4 FUNC_RESTORE ret -ENDPROC(aesni_gcm_finalize) +SYM_FUNC_END(aesni_gcm_finalize) #endif @@ -1834,7 +1834,7 @@ SYM_FUNC_END(_key_expansion_256b) * int aesni_set_key(struct crypto_aes_ctx *ctx, const u8 *in_key, * unsigned int key_len) */ -ENTRY(aesni_set_key) +SYM_FUNC_START(aesni_set_key) FRAME_BEGIN #ifndef __x86_64__ pushl KEYP @@ -1943,12 +1943,12 @@ ENTRY(aesni_set_key) #endif FRAME_END ret -ENDPROC(aesni_set_key) +SYM_FUNC_END(aesni_set_key) /* * void aesni_enc(struct crypto_aes_ctx *ctx, u8 *dst, const u8 *src) */ -ENTRY(aesni_enc) +SYM_FUNC_START(aesni_enc) FRAME_BEGIN #ifndef __x86_64__ pushl KEYP @@ -1967,7 +1967,7 @@ ENTRY(aesni_enc) #endif FRAME_END ret -ENDPROC(aesni_enc) +SYM_FUNC_END(aesni_enc) /* * _aesni_enc1: internal ABI @@ -2137,7 +2137,7 @@ SYM_FUNC_END(_aesni_enc4) /* * void aesni_dec (struct crypto_aes_ctx *ctx, u8 *dst, const u8 *src) */ -ENTRY(aesni_dec) +SYM_FUNC_START(aesni_dec) FRAME_BEGIN #ifndef __x86_64__ pushl KEYP @@ -2157,7 +2157,7 @@ ENTRY(aesni_dec) #endif FRAME_END ret -ENDPROC(aesni_dec) +SYM_FUNC_END(aesni_dec) /* * _aesni_dec1: internal ABI @@ -2328,7 +2328,7 @@ SYM_FUNC_END(_aesni_dec4) * void aesni_ecb_enc(struct crypto_aes_ctx *ctx, const u8 *dst, u8 *src, * size_t len) */ -ENTRY(aesni_ecb_enc) +SYM_FUNC_START(aesni_ecb_enc) FRAME_BEGIN #ifndef __x86_64__ pushl LEN @@ -2382,13 +2382,13 @@ ENTRY(aesni_ecb_enc) #endif FRAME_END ret -ENDPROC(aesni_ecb_enc) +SYM_FUNC_END(aesni_ecb_enc) /* * void aesni_ecb_dec(struct crypto_aes_ctx *ctx, const u8 *dst, u8 *src, * size_t len); */ -ENTRY(aesni_ecb_dec) +SYM_FUNC_START(aesni_ecb_dec) FRAME_BEGIN #ifndef __x86_64__ pushl LEN @@ -2443,13 +2443,13 @@ ENTRY(aesni_ecb_dec) #endif FRAME_END ret -ENDPROC(aesni_ecb_dec) +SYM_FUNC_END(aesni_ecb_dec) /* * void aesni_cbc_enc(struct crypto_aes_ctx *ctx, const u8 *dst, u8 *src, * size_t len, u8 *iv) */ -ENTRY(aesni_cbc_enc) +SYM_FUNC_START(aesni_cbc_enc) FRAME_BEGIN #ifndef __x86_64__ pushl IVP @@ -2487,13 +2487,13 @@ ENTRY(aesni_cbc_enc) #endif FRAME_END ret -ENDPROC(aesni_cbc_enc) +SYM_FUNC_END(aesni_cbc_enc) /* * void aesni_cbc_dec(struct crypto_aes_ctx *ctx, const u8 *dst, u8 *src, * size_t len, u8 *iv) */ -ENTRY(aesni_cbc_dec) +SYM_FUNC_START(aesni_cbc_dec) FRAME_BEGIN #ifndef __x86_64__ pushl IVP @@ -2580,7 +2580,7 @@ ENTRY(aesni_cbc_dec) #endif FRAME_END ret -ENDPROC(aesni_cbc_dec) +SYM_FUNC_END(aesni_cbc_dec) #ifdef __x86_64__ .pushsection .rodata @@ -2642,7 +2642,7 @@ SYM_FUNC_END(_aesni_inc) * void aesni_ctr_enc(struct crypto_aes_ctx *ctx, const u8 *dst, u8 *src, * size_t len, u8 *iv) */ -ENTRY(aesni_ctr_enc) +SYM_FUNC_START(aesni_ctr_enc) FRAME_BEGIN cmp $16, LEN jb .Lctr_enc_just_ret @@ -2699,7 +2699,7 @@ ENTRY(aesni_ctr_enc) .Lctr_enc_just_ret: FRAME_END ret -ENDPROC(aesni_ctr_enc) +SYM_FUNC_END(aesni_ctr_enc) /* * _aesni_gf128mul_x_ble: internal ABI @@ -2723,7 +2723,7 @@ ENDPROC(aesni_ctr_enc) * void aesni_xts_crypt8(struct crypto_aes_ctx *ctx, const u8 *dst, u8 *src, * bool enc, u8 *iv) */ -ENTRY(aesni_xts_crypt8) +SYM_FUNC_START(aesni_xts_crypt8) FRAME_BEGIN cmpb $0, %cl movl $0, %ecx @@ -2827,6 +2827,6 @@ ENTRY(aesni_xts_crypt8) FRAME_END ret -ENDPROC(aesni_xts_crypt8) +SYM_FUNC_END(aesni_xts_crypt8) #endif diff --git a/arch/x86/crypto/aesni-intel_avx-x86_64.S b/arch/x86/crypto/aesni-intel_avx-x86_64.S index faecb1518bf8..ee056694e54d 100644 --- a/arch/x86/crypto/aesni-intel_avx-x86_64.S +++ b/arch/x86/crypto/aesni-intel_avx-x86_64.S @@ -1531,7 +1531,7 @@ _return_T_done\@: # (gcm_data *my_ctx_data, # u8 *hash_subkey)# /* H, the Hash sub key input. Data starts on a 16-byte boundary. */ ############################################################# -ENTRY(aesni_gcm_precomp_avx_gen2) +SYM_FUNC_START(aesni_gcm_precomp_avx_gen2) #the number of pushes must equal STACK_OFFSET push %r12 push %r13 @@ -1574,7 +1574,7 @@ ENTRY(aesni_gcm_precomp_avx_gen2) pop %r13 pop %r12 ret -ENDPROC(aesni_gcm_precomp_avx_gen2) +SYM_FUNC_END(aesni_gcm_precomp_avx_gen2) ############################################################################### #void aesni_gcm_enc_avx_gen2( @@ -1592,10 +1592,10 @@ ENDPROC(aesni_gcm_precomp_avx_gen2) # u64 auth_tag_len)# /* Authenticated Tag Length in bytes. # Valid values are 16 (most likely), 12 or 8. */ ############################################################################### -ENTRY(aesni_gcm_enc_avx_gen2) +SYM_FUNC_START(aesni_gcm_enc_avx_gen2) GCM_ENC_DEC_AVX ENC ret -ENDPROC(aesni_gcm_enc_avx_gen2) +SYM_FUNC_END(aesni_gcm_enc_avx_gen2) ############################################################################### #void aesni_gcm_dec_avx_gen2( @@ -1613,10 +1613,10 @@ ENDPROC(aesni_gcm_enc_avx_gen2) # u64 auth_tag_len)# /* Authenticated Tag Length in bytes. # Valid values are 16 (most likely), 12 or 8. */ ############################################################################### -ENTRY(aesni_gcm_dec_avx_gen2) +SYM_FUNC_START(aesni_gcm_dec_avx_gen2) GCM_ENC_DEC_AVX DEC ret -ENDPROC(aesni_gcm_dec_avx_gen2) +SYM_FUNC_END(aesni_gcm_dec_avx_gen2) #endif /* CONFIG_AS_AVX */ #ifdef CONFIG_AS_AVX2 @@ -2855,7 +2855,7 @@ _return_T_done\@: # u8 *hash_subkey)# /* H, the Hash sub key input. # Data starts on a 16-byte boundary. */ ############################################################# -ENTRY(aesni_gcm_precomp_avx_gen4) +SYM_FUNC_START(aesni_gcm_precomp_avx_gen4) #the number of pushes must equal STACK_OFFSET push %r12 push %r13 @@ -2898,7 +2898,7 @@ ENTRY(aesni_gcm_precomp_avx_gen4) pop %r13 pop %r12 ret -ENDPROC(aesni_gcm_precomp_avx_gen4) +SYM_FUNC_END(aesni_gcm_precomp_avx_gen4) ############################################################################### @@ -2917,10 +2917,10 @@ ENDPROC(aesni_gcm_precomp_avx_gen4) # u64 auth_tag_len)# /* Authenticated Tag Length in bytes. # Valid values are 16 (most likely), 12 or 8. */ ############################################################################### -ENTRY(aesni_gcm_enc_avx_gen4) +SYM_FUNC_START(aesni_gcm_enc_avx_gen4) GCM_ENC_DEC_AVX2 ENC ret -ENDPROC(aesni_gcm_enc_avx_gen4) +SYM_FUNC_END(aesni_gcm_enc_avx_gen4) ############################################################################### #void aesni_gcm_dec_avx_gen4( @@ -2938,9 +2938,9 @@ ENDPROC(aesni_gcm_enc_avx_gen4) # u64 auth_tag_len)# /* Authenticated Tag Length in bytes. # Valid values are 16 (most likely), 12 or 8. */ ############################################################################### -ENTRY(aesni_gcm_dec_avx_gen4) +SYM_FUNC_START(aesni_gcm_dec_avx_gen4) GCM_ENC_DEC_AVX2 DEC ret -ENDPROC(aesni_gcm_dec_avx_gen4) +SYM_FUNC_END(aesni_gcm_dec_avx_gen4) #endif /* CONFIG_AS_AVX2 */ diff --git a/arch/x86/crypto/blowfish-x86_64-asm_64.S b/arch/x86/crypto/blowfish-x86_64-asm_64.S index 8c1fcb6bad21..70c34850ee0b 100644 --- a/arch/x86/crypto/blowfish-x86_64-asm_64.S +++ b/arch/x86/crypto/blowfish-x86_64-asm_64.S @@ -118,7 +118,7 @@ bswapq RX0; \ xorq RX0, (RIO); -ENTRY(__blowfish_enc_blk) +SYM_FUNC_START(__blowfish_enc_blk) /* input: * %rdi: ctx * %rsi: dst @@ -154,9 +154,9 @@ ENTRY(__blowfish_enc_blk) .L__enc_xor: xor_block(); ret; -ENDPROC(__blowfish_enc_blk) +SYM_FUNC_END(__blowfish_enc_blk) -ENTRY(blowfish_dec_blk) +SYM_FUNC_START(blowfish_dec_blk) /* input: * %rdi: ctx * %rsi: dst @@ -186,7 +186,7 @@ ENTRY(blowfish_dec_blk) movq %r11, %r12; ret; -ENDPROC(blowfish_dec_blk) +SYM_FUNC_END(blowfish_dec_blk) /********************************************************************** 4-way blowfish, four blocks parallel @@ -298,7 +298,7 @@ ENDPROC(blowfish_dec_blk) bswapq RX3; \ xorq RX3, 24(RIO); -ENTRY(__blowfish_enc_blk_4way) +SYM_FUNC_START(__blowfish_enc_blk_4way) /* input: * %rdi: ctx * %rsi: dst @@ -345,9 +345,9 @@ ENTRY(__blowfish_enc_blk_4way) popq %rbx; popq %r12; ret; -ENDPROC(__blowfish_enc_blk_4way) +SYM_FUNC_END(__blowfish_enc_blk_4way) -ENTRY(blowfish_dec_blk_4way) +SYM_FUNC_START(blowfish_dec_blk_4way) /* input: * %rdi: ctx * %rsi: dst @@ -380,4 +380,4 @@ ENTRY(blowfish_dec_blk_4way) popq %r12; ret; -ENDPROC(blowfish_dec_blk_4way) +SYM_FUNC_END(blowfish_dec_blk_4way) diff --git a/arch/x86/crypto/camellia-aesni-avx-asm_64.S b/arch/x86/crypto/camellia-aesni-avx-asm_64.S index f4408ca55fdb..d01ddd73de65 100644 --- a/arch/x86/crypto/camellia-aesni-avx-asm_64.S +++ b/arch/x86/crypto/camellia-aesni-avx-asm_64.S @@ -893,7 +893,7 @@ SYM_FUNC_START_LOCAL(__camellia_dec_blk16) jmp .Ldec_max24; SYM_FUNC_END(__camellia_dec_blk16) -ENTRY(camellia_ecb_enc_16way) +SYM_FUNC_START(camellia_ecb_enc_16way) /* input: * %rdi: ctx, CTX * %rsi: dst (16 blocks) @@ -916,9 +916,9 @@ ENTRY(camellia_ecb_enc_16way) FRAME_END ret; -ENDPROC(camellia_ecb_enc_16way) +SYM_FUNC_END(camellia_ecb_enc_16way) -ENTRY(camellia_ecb_dec_16way) +SYM_FUNC_START(camellia_ecb_dec_16way) /* input: * %rdi: ctx, CTX * %rsi: dst (16 blocks) @@ -946,9 +946,9 @@ ENTRY(camellia_ecb_dec_16way) FRAME_END ret; -ENDPROC(camellia_ecb_dec_16way) +SYM_FUNC_END(camellia_ecb_dec_16way) -ENTRY(camellia_cbc_dec_16way) +SYM_FUNC_START(camellia_cbc_dec_16way) /* input: * %rdi: ctx, CTX * %rsi: dst (16 blocks) @@ -997,7 +997,7 @@ ENTRY(camellia_cbc_dec_16way) FRAME_END ret; -ENDPROC(camellia_cbc_dec_16way) +SYM_FUNC_END(camellia_cbc_dec_16way) #define inc_le128(x, minus_one, tmp) \ vpcmpeqq minus_one, x, tmp; \ @@ -1005,7 +1005,7 @@ ENDPROC(camellia_cbc_dec_16way) vpslldq $8, tmp, tmp; \ vpsubq tmp, x, x; -ENTRY(camellia_ctr_16way) +SYM_FUNC_START(camellia_ctr_16way) /* input: * %rdi: ctx, CTX * %rsi: dst (16 blocks) @@ -1110,7 +1110,7 @@ ENTRY(camellia_ctr_16way) FRAME_END ret; -ENDPROC(camellia_ctr_16way) +SYM_FUNC_END(camellia_ctr_16way) #define gf128mul_x_ble(iv, mask, tmp) \ vpsrad $31, iv, tmp; \ @@ -1256,7 +1256,7 @@ SYM_FUNC_START_LOCAL(camellia_xts_crypt_16way) ret; SYM_FUNC_END(camellia_xts_crypt_16way) -ENTRY(camellia_xts_enc_16way) +SYM_FUNC_START(camellia_xts_enc_16way) /* input: * %rdi: ctx, CTX * %rsi: dst (16 blocks) @@ -1268,9 +1268,9 @@ ENTRY(camellia_xts_enc_16way) leaq __camellia_enc_blk16, %r9; jmp camellia_xts_crypt_16way; -ENDPROC(camellia_xts_enc_16way) +SYM_FUNC_END(camellia_xts_enc_16way) -ENTRY(camellia_xts_dec_16way) +SYM_FUNC_START(camellia_xts_dec_16way) /* input: * %rdi: ctx, CTX * %rsi: dst (16 blocks) @@ -1286,4 +1286,4 @@ ENTRY(camellia_xts_dec_16way) leaq __camellia_dec_blk16, %r9; jmp camellia_xts_crypt_16way; -ENDPROC(camellia_xts_dec_16way) +SYM_FUNC_END(camellia_xts_dec_16way) diff --git a/arch/x86/crypto/camellia-aesni-avx2-asm_64.S b/arch/x86/crypto/camellia-aesni-avx2-asm_64.S index 916a3e2b8ea4..85f0a265dee8 100644 --- a/arch/x86/crypto/camellia-aesni-avx2-asm_64.S +++ b/arch/x86/crypto/camellia-aesni-avx2-asm_64.S @@ -936,7 +936,7 @@ SYM_FUNC_START_LOCAL(__camellia_dec_blk32) jmp .Ldec_max24; SYM_FUNC_END(__camellia_dec_blk32) -ENTRY(camellia_ecb_enc_32way) +SYM_FUNC_START(camellia_ecb_enc_32way) /* input: * %rdi: ctx, CTX * %rsi: dst (32 blocks) @@ -963,9 +963,9 @@ ENTRY(camellia_ecb_enc_32way) FRAME_END ret; -ENDPROC(camellia_ecb_enc_32way) +SYM_FUNC_END(camellia_ecb_enc_32way) -ENTRY(camellia_ecb_dec_32way) +SYM_FUNC_START(camellia_ecb_dec_32way) /* input: * %rdi: ctx, CTX * %rsi: dst (32 blocks) @@ -997,9 +997,9 @@ ENTRY(camellia_ecb_dec_32way) FRAME_END ret; -ENDPROC(camellia_ecb_dec_32way) +SYM_FUNC_END(camellia_ecb_dec_32way) -ENTRY(camellia_cbc_dec_32way) +SYM_FUNC_START(camellia_cbc_dec_32way) /* input: * %rdi: ctx, CTX * %rsi: dst (32 blocks) @@ -1065,7 +1065,7 @@ ENTRY(camellia_cbc_dec_32way) FRAME_END ret; -ENDPROC(camellia_cbc_dec_32way) +SYM_FUNC_END(camellia_cbc_dec_32way) #define inc_le128(x, minus_one, tmp) \ vpcmpeqq minus_one, x, tmp; \ @@ -1081,7 +1081,7 @@ ENDPROC(camellia_cbc_dec_32way) vpslldq $8, tmp1, tmp1; \ vpsubq tmp1, x, x; -ENTRY(camellia_ctr_32way) +SYM_FUNC_START(camellia_ctr_32way) /* input: * %rdi: ctx, CTX * %rsi: dst (32 blocks) @@ -1205,7 +1205,7 @@ ENTRY(camellia_ctr_32way) FRAME_END ret; -ENDPROC(camellia_ctr_32way) +SYM_FUNC_END(camellia_ctr_32way) #define gf128mul_x_ble(iv, mask, tmp) \ vpsrad $31, iv, tmp; \ @@ -1374,7 +1374,7 @@ SYM_FUNC_START_LOCAL(camellia_xts_crypt_32way) ret; SYM_FUNC_END(camellia_xts_crypt_32way) -ENTRY(camellia_xts_enc_32way) +SYM_FUNC_START(camellia_xts_enc_32way) /* input: * %rdi: ctx, CTX * %rsi: dst (32 blocks) @@ -1387,9 +1387,9 @@ ENTRY(camellia_xts_enc_32way) leaq __camellia_enc_blk32, %r9; jmp camellia_xts_crypt_32way; -ENDPROC(camellia_xts_enc_32way) +SYM_FUNC_END(camellia_xts_enc_32way) -ENTRY(camellia_xts_dec_32way) +SYM_FUNC_START(camellia_xts_dec_32way) /* input: * %rdi: ctx, CTX * %rsi: dst (32 blocks) @@ -1405,4 +1405,4 @@ ENTRY(camellia_xts_dec_32way) leaq __camellia_dec_blk32, %r9; jmp camellia_xts_crypt_32way; -ENDPROC(camellia_xts_dec_32way) +SYM_FUNC_END(camellia_xts_dec_32way) diff --git a/arch/x86/crypto/camellia-x86_64-asm_64.S b/arch/x86/crypto/camellia-x86_64-asm_64.S index 95ba6956a7f6..4d77c9dcddbd 100644 --- a/arch/x86/crypto/camellia-x86_64-asm_64.S +++ b/arch/x86/crypto/camellia-x86_64-asm_64.S @@ -190,7 +190,7 @@ bswapq RAB0; \ movq RAB0, 4*2(RIO); -ENTRY(__camellia_enc_blk) +SYM_FUNC_START(__camellia_enc_blk) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -235,9 +235,9 @@ ENTRY(__camellia_enc_blk) movq RR12, %r12; ret; -ENDPROC(__camellia_enc_blk) +SYM_FUNC_END(__camellia_enc_blk) -ENTRY(camellia_dec_blk) +SYM_FUNC_START(camellia_dec_blk) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -273,7 +273,7 @@ ENTRY(camellia_dec_blk) movq RR12, %r12; ret; -ENDPROC(camellia_dec_blk) +SYM_FUNC_END(camellia_dec_blk) /********************************************************************** 2-way camellia @@ -424,7 +424,7 @@ ENDPROC(camellia_dec_blk) bswapq RAB1; \ movq RAB1, 12*2(RIO); -ENTRY(__camellia_enc_blk_2way) +SYM_FUNC_START(__camellia_enc_blk_2way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -471,9 +471,9 @@ ENTRY(__camellia_enc_blk_2way) movq RR12, %r12; popq %rbx; ret; -ENDPROC(__camellia_enc_blk_2way) +SYM_FUNC_END(__camellia_enc_blk_2way) -ENTRY(camellia_dec_blk_2way) +SYM_FUNC_START(camellia_dec_blk_2way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -511,4 +511,4 @@ ENTRY(camellia_dec_blk_2way) movq RR12, %r12; movq RXOR, %rbx; ret; -ENDPROC(camellia_dec_blk_2way) +SYM_FUNC_END(camellia_dec_blk_2way) diff --git a/arch/x86/crypto/cast5-avx-x86_64-asm_64.S b/arch/x86/crypto/cast5-avx-x86_64-asm_64.S index b26df120413c..3789c61f6166 100644 --- a/arch/x86/crypto/cast5-avx-x86_64-asm_64.S +++ b/arch/x86/crypto/cast5-avx-x86_64-asm_64.S @@ -374,7 +374,7 @@ SYM_FUNC_START_LOCAL(__cast5_dec_blk16) jmp .L__dec_tail; SYM_FUNC_END(__cast5_dec_blk16) -ENTRY(cast5_ecb_enc_16way) +SYM_FUNC_START(cast5_ecb_enc_16way) /* input: * %rdi: ctx * %rsi: dst @@ -409,9 +409,9 @@ ENTRY(cast5_ecb_enc_16way) popq %r15; FRAME_END ret; -ENDPROC(cast5_ecb_enc_16way) +SYM_FUNC_END(cast5_ecb_enc_16way) -ENTRY(cast5_ecb_dec_16way) +SYM_FUNC_START(cast5_ecb_dec_16way) /* input: * %rdi: ctx * %rsi: dst @@ -447,9 +447,9 @@ ENTRY(cast5_ecb_dec_16way) popq %r15; FRAME_END ret; -ENDPROC(cast5_ecb_dec_16way) +SYM_FUNC_END(cast5_ecb_dec_16way) -ENTRY(cast5_cbc_dec_16way) +SYM_FUNC_START(cast5_cbc_dec_16way) /* input: * %rdi: ctx * %rsi: dst @@ -499,9 +499,9 @@ ENTRY(cast5_cbc_dec_16way) popq %r12; FRAME_END ret; -ENDPROC(cast5_cbc_dec_16way) +SYM_FUNC_END(cast5_cbc_dec_16way) -ENTRY(cast5_ctr_16way) +SYM_FUNC_START(cast5_ctr_16way) /* input: * %rdi: ctx * %rsi: dst @@ -575,4 +575,4 @@ ENTRY(cast5_ctr_16way) popq %r12; FRAME_END ret; -ENDPROC(cast5_ctr_16way) +SYM_FUNC_END(cast5_ctr_16way) diff --git a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S index 0a68e42a00f9..e38ab4571a6b 100644 --- a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S +++ b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S @@ -356,7 +356,7 @@ SYM_FUNC_START_LOCAL(__cast6_dec_blk8) ret; SYM_FUNC_END(__cast6_dec_blk8) -ENTRY(cast6_ecb_enc_8way) +SYM_FUNC_START(cast6_ecb_enc_8way) /* input: * %rdi: ctx * %rsi: dst @@ -377,9 +377,9 @@ ENTRY(cast6_ecb_enc_8way) popq %r15; FRAME_END ret; -ENDPROC(cast6_ecb_enc_8way) +SYM_FUNC_END(cast6_ecb_enc_8way) -ENTRY(cast6_ecb_dec_8way) +SYM_FUNC_START(cast6_ecb_dec_8way) /* input: * %rdi: ctx * %rsi: dst @@ -400,9 +400,9 @@ ENTRY(cast6_ecb_dec_8way) popq %r15; FRAME_END ret; -ENDPROC(cast6_ecb_dec_8way) +SYM_FUNC_END(cast6_ecb_dec_8way) -ENTRY(cast6_cbc_dec_8way) +SYM_FUNC_START(cast6_cbc_dec_8way) /* input: * %rdi: ctx * %rsi: dst @@ -426,9 +426,9 @@ ENTRY(cast6_cbc_dec_8way) popq %r12; FRAME_END ret; -ENDPROC(cast6_cbc_dec_8way) +SYM_FUNC_END(cast6_cbc_dec_8way) -ENTRY(cast6_ctr_8way) +SYM_FUNC_START(cast6_ctr_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -454,9 +454,9 @@ ENTRY(cast6_ctr_8way) popq %r12; FRAME_END ret; -ENDPROC(cast6_ctr_8way) +SYM_FUNC_END(cast6_ctr_8way) -ENTRY(cast6_xts_enc_8way) +SYM_FUNC_START(cast6_xts_enc_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -481,9 +481,9 @@ ENTRY(cast6_xts_enc_8way) popq %r15; FRAME_END ret; -ENDPROC(cast6_xts_enc_8way) +SYM_FUNC_END(cast6_xts_enc_8way) -ENTRY(cast6_xts_dec_8way) +SYM_FUNC_START(cast6_xts_dec_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -508,4 +508,4 @@ ENTRY(cast6_xts_dec_8way) popq %r15; FRAME_END ret; -ENDPROC(cast6_xts_dec_8way) +SYM_FUNC_END(cast6_xts_dec_8way) diff --git a/arch/x86/crypto/chacha20-avx2-x86_64.S b/arch/x86/crypto/chacha20-avx2-x86_64.S index f3cd26f48332..72c96a6aec8f 100644 --- a/arch/x86/crypto/chacha20-avx2-x86_64.S +++ b/arch/x86/crypto/chacha20-avx2-x86_64.S @@ -28,7 +28,7 @@ CTRINC: .octa 0x00000003000000020000000100000000 .text -ENTRY(chacha20_8block_xor_avx2) +SYM_FUNC_START(chacha20_8block_xor_avx2) # %rdi: Input state matrix, s # %rsi: 8 data blocks output, o # %rdx: 8 data blocks input, i @@ -445,4 +445,4 @@ ENTRY(chacha20_8block_xor_avx2) vzeroupper lea -8(%r10),%rsp ret -ENDPROC(chacha20_8block_xor_avx2) +SYM_FUNC_END(chacha20_8block_xor_avx2) diff --git a/arch/x86/crypto/chacha20-ssse3-x86_64.S b/arch/x86/crypto/chacha20-ssse3-x86_64.S index 512a2b500fd1..950dea7c92d1 100644 --- a/arch/x86/crypto/chacha20-ssse3-x86_64.S +++ b/arch/x86/crypto/chacha20-ssse3-x86_64.S @@ -23,7 +23,7 @@ CTRINC: .octa 0x00000003000000020000000100000000 .text -ENTRY(chacha20_block_xor_ssse3) +SYM_FUNC_START(chacha20_block_xor_ssse3) # %rdi: Input state matrix, s # %rsi: 1 data block output, o # %rdx: 1 data block input, i @@ -143,9 +143,9 @@ ENTRY(chacha20_block_xor_ssse3) movdqu %xmm3,0x30(%rsi) ret -ENDPROC(chacha20_block_xor_ssse3) +SYM_FUNC_END(chacha20_block_xor_ssse3) -ENTRY(chacha20_4block_xor_ssse3) +SYM_FUNC_START(chacha20_4block_xor_ssse3) # %rdi: Input state matrix, s # %rsi: 4 data blocks output, o # %rdx: 4 data blocks input, i @@ -627,4 +627,4 @@ ENTRY(chacha20_4block_xor_ssse3) lea -8(%r10),%rsp ret -ENDPROC(chacha20_4block_xor_ssse3) +SYM_FUNC_END(chacha20_4block_xor_ssse3) diff --git a/arch/x86/crypto/crc32-pclmul_asm.S b/arch/x86/crypto/crc32-pclmul_asm.S index 1c099dc08cc3..9fd28ff65bc2 100644 --- a/arch/x86/crypto/crc32-pclmul_asm.S +++ b/arch/x86/crypto/crc32-pclmul_asm.S @@ -103,7 +103,7 @@ * size_t len, uint crc32) */ -ENTRY(crc32_pclmul_le_16) /* buffer and buffer size are 16 bytes aligned */ +SYM_FUNC_START(crc32_pclmul_le_16) /* buffer and buffer size are 16 bytes aligned */ movdqa (BUF), %xmm1 movdqa 0x10(BUF), %xmm2 movdqa 0x20(BUF), %xmm3 @@ -238,4 +238,4 @@ fold_64: PEXTRD 0x01, %xmm1, %eax ret -ENDPROC(crc32_pclmul_le_16) +SYM_FUNC_END(crc32_pclmul_le_16) diff --git a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S index d9b734d0c8cc..0e6690e3618c 100644 --- a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S +++ b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S @@ -74,7 +74,7 @@ # unsigned int crc_pcl(u8 *buffer, int len, unsigned int crc_init); .text -ENTRY(crc_pcl) +SYM_FUNC_START(crc_pcl) #define bufp %rdi #define bufp_dw %edi #define bufp_w %di @@ -311,7 +311,7 @@ do_return: popq %rdi popq %rbx ret -ENDPROC(crc_pcl) +SYM_FUNC_END(crc_pcl) .section .rodata, "a", @progbits ################################################################ diff --git a/arch/x86/crypto/crct10dif-pcl-asm_64.S b/arch/x86/crypto/crct10dif-pcl-asm_64.S index de04d3e98d8d..f56b499541e0 100644 --- a/arch/x86/crypto/crct10dif-pcl-asm_64.S +++ b/arch/x86/crypto/crct10dif-pcl-asm_64.S @@ -68,7 +68,7 @@ #define arg1_low32 %edi -ENTRY(crc_t10dif_pcl) +SYM_FUNC_START(crc_t10dif_pcl) .align 16 # adjust the 16-bit initial_crc value, scale it to 32 bits @@ -552,7 +552,7 @@ _only_less_than_2: jmp _barrett -ENDPROC(crc_t10dif_pcl) +SYM_FUNC_END(crc_t10dif_pcl) .section .rodata, "a", @progbits .align 16 diff --git a/arch/x86/crypto/des3_ede-asm_64.S b/arch/x86/crypto/des3_ede-asm_64.S index 8e49ce117494..82779c08029b 100644 --- a/arch/x86/crypto/des3_ede-asm_64.S +++ b/arch/x86/crypto/des3_ede-asm_64.S @@ -171,7 +171,7 @@ movl left##d, (io); \ movl right##d, 4(io); -ENTRY(des3_ede_x86_64_crypt_blk) +SYM_FUNC_START(des3_ede_x86_64_crypt_blk) /* input: * %rdi: round keys, CTX * %rsi: dst @@ -253,7 +253,7 @@ ENTRY(des3_ede_x86_64_crypt_blk) popq %rbx; ret; -ENDPROC(des3_ede_x86_64_crypt_blk) +SYM_FUNC_END(des3_ede_x86_64_crypt_blk) /*********************************************************************** * 3-way 3DES @@ -427,7 +427,7 @@ ENDPROC(des3_ede_x86_64_crypt_blk) #define __movq(src, dst) \ movq src, dst; -ENTRY(des3_ede_x86_64_crypt_blk_3way) +SYM_FUNC_START(des3_ede_x86_64_crypt_blk_3way) /* input: * %rdi: ctx, round keys * %rsi: dst (3 blocks) @@ -538,7 +538,7 @@ ENTRY(des3_ede_x86_64_crypt_blk_3way) popq %rbx; ret; -ENDPROC(des3_ede_x86_64_crypt_blk_3way) +SYM_FUNC_END(des3_ede_x86_64_crypt_blk_3way) .section .rodata, "a", @progbits .align 16 diff --git a/arch/x86/crypto/ghash-clmulni-intel_asm.S b/arch/x86/crypto/ghash-clmulni-intel_asm.S index c3db86842578..12e3a850257b 100644 --- a/arch/x86/crypto/ghash-clmulni-intel_asm.S +++ b/arch/x86/crypto/ghash-clmulni-intel_asm.S @@ -93,7 +93,7 @@ SYM_FUNC_START_LOCAL(__clmul_gf128mul_ble) SYM_FUNC_END(__clmul_gf128mul_ble) /* void clmul_ghash_mul(char *dst, const u128 *shash) */ -ENTRY(clmul_ghash_mul) +SYM_FUNC_START(clmul_ghash_mul) FRAME_BEGIN movups (%rdi), DATA movups (%rsi), SHASH @@ -104,13 +104,13 @@ ENTRY(clmul_ghash_mul) movups DATA, (%rdi) FRAME_END ret -ENDPROC(clmul_ghash_mul) +SYM_FUNC_END(clmul_ghash_mul) /* * void clmul_ghash_update(char *dst, const char *src, unsigned int srclen, * const u128 *shash); */ -ENTRY(clmul_ghash_update) +SYM_FUNC_START(clmul_ghash_update) FRAME_BEGIN cmp $16, %rdx jb .Lupdate_just_ret # check length @@ -133,4 +133,4 @@ ENTRY(clmul_ghash_update) .Lupdate_just_ret: FRAME_END ret -ENDPROC(clmul_ghash_update) +SYM_FUNC_END(clmul_ghash_update) diff --git a/arch/x86/crypto/poly1305-avx2-x86_64.S b/arch/x86/crypto/poly1305-avx2-x86_64.S index 3b6e70d085da..68b0f4386dc4 100644 --- a/arch/x86/crypto/poly1305-avx2-x86_64.S +++ b/arch/x86/crypto/poly1305-avx2-x86_64.S @@ -83,7 +83,7 @@ ORMASK: .octa 0x00000000010000000000000001000000 #define d3 %r12 #define d4 %r13 -ENTRY(poly1305_4block_avx2) +SYM_FUNC_START(poly1305_4block_avx2) # %rdi: Accumulator h[5] # %rsi: 64 byte input block m # %rdx: Poly1305 key r[5] @@ -385,4 +385,4 @@ ENTRY(poly1305_4block_avx2) pop %r12 pop %rbx ret -ENDPROC(poly1305_4block_avx2) +SYM_FUNC_END(poly1305_4block_avx2) diff --git a/arch/x86/crypto/poly1305-sse2-x86_64.S b/arch/x86/crypto/poly1305-sse2-x86_64.S index c88c670cb5fc..66715fbedc18 100644 --- a/arch/x86/crypto/poly1305-sse2-x86_64.S +++ b/arch/x86/crypto/poly1305-sse2-x86_64.S @@ -50,7 +50,7 @@ ORMASK: .octa 0x00000000010000000000000001000000 #define d3 %r11 #define d4 %r12 -ENTRY(poly1305_block_sse2) +SYM_FUNC_START(poly1305_block_sse2) # %rdi: Accumulator h[5] # %rsi: 16 byte input block m # %rdx: Poly1305 key r[5] @@ -276,7 +276,7 @@ ENTRY(poly1305_block_sse2) pop %r12 pop %rbx ret -ENDPROC(poly1305_block_sse2) +SYM_FUNC_END(poly1305_block_sse2) #define u0 0x00(%r8) @@ -301,7 +301,7 @@ ENDPROC(poly1305_block_sse2) #undef d0 #define d0 %r13 -ENTRY(poly1305_2block_sse2) +SYM_FUNC_START(poly1305_2block_sse2) # %rdi: Accumulator h[5] # %rsi: 16 byte input block m # %rdx: Poly1305 key r[5] @@ -581,4 +581,4 @@ ENTRY(poly1305_2block_sse2) pop %r12 pop %rbx ret -ENDPROC(poly1305_2block_sse2) +SYM_FUNC_END(poly1305_2block_sse2) diff --git a/arch/x86/crypto/salsa20-x86_64-asm_64.S b/arch/x86/crypto/salsa20-x86_64-asm_64.S index 03a4918f41ee..5984d8c2edc5 100644 --- a/arch/x86/crypto/salsa20-x86_64-asm_64.S +++ b/arch/x86/crypto/salsa20-x86_64-asm_64.S @@ -2,7 +2,7 @@ #include # enter salsa20_encrypt_bytes -ENTRY(salsa20_encrypt_bytes) +SYM_FUNC_START(salsa20_encrypt_bytes) mov %rsp,%r11 and $31,%r11 add $256,%r11 @@ -802,4 +802,4 @@ ENTRY(salsa20_encrypt_bytes) # comment:fp stack unchanged by jump # goto bytesatleast1 jmp ._bytesatleast1 -ENDPROC(salsa20_encrypt_bytes) +SYM_FUNC_END(salsa20_encrypt_bytes) diff --git a/arch/x86/crypto/serpent-avx-x86_64-asm_64.S b/arch/x86/crypto/serpent-avx-x86_64-asm_64.S index c2d4a1fc9ee8..72de86a8091e 100644 --- a/arch/x86/crypto/serpent-avx-x86_64-asm_64.S +++ b/arch/x86/crypto/serpent-avx-x86_64-asm_64.S @@ -677,7 +677,7 @@ SYM_FUNC_START_LOCAL(__serpent_dec_blk8_avx) ret; SYM_FUNC_END(__serpent_dec_blk8_avx) -ENTRY(serpent_ecb_enc_8way_avx) +SYM_FUNC_START(serpent_ecb_enc_8way_avx) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -693,9 +693,9 @@ ENTRY(serpent_ecb_enc_8way_avx) FRAME_END ret; -ENDPROC(serpent_ecb_enc_8way_avx) +SYM_FUNC_END(serpent_ecb_enc_8way_avx) -ENTRY(serpent_ecb_dec_8way_avx) +SYM_FUNC_START(serpent_ecb_dec_8way_avx) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -711,9 +711,9 @@ ENTRY(serpent_ecb_dec_8way_avx) FRAME_END ret; -ENDPROC(serpent_ecb_dec_8way_avx) +SYM_FUNC_END(serpent_ecb_dec_8way_avx) -ENTRY(serpent_cbc_dec_8way_avx) +SYM_FUNC_START(serpent_cbc_dec_8way_avx) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -729,9 +729,9 @@ ENTRY(serpent_cbc_dec_8way_avx) FRAME_END ret; -ENDPROC(serpent_cbc_dec_8way_avx) +SYM_FUNC_END(serpent_cbc_dec_8way_avx) -ENTRY(serpent_ctr_8way_avx) +SYM_FUNC_START(serpent_ctr_8way_avx) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -749,9 +749,9 @@ ENTRY(serpent_ctr_8way_avx) FRAME_END ret; -ENDPROC(serpent_ctr_8way_avx) +SYM_FUNC_END(serpent_ctr_8way_avx) -ENTRY(serpent_xts_enc_8way_avx) +SYM_FUNC_START(serpent_xts_enc_8way_avx) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -771,9 +771,9 @@ ENTRY(serpent_xts_enc_8way_avx) FRAME_END ret; -ENDPROC(serpent_xts_enc_8way_avx) +SYM_FUNC_END(serpent_xts_enc_8way_avx) -ENTRY(serpent_xts_dec_8way_avx) +SYM_FUNC_START(serpent_xts_dec_8way_avx) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -793,4 +793,4 @@ ENTRY(serpent_xts_dec_8way_avx) FRAME_END ret; -ENDPROC(serpent_xts_dec_8way_avx) +SYM_FUNC_END(serpent_xts_dec_8way_avx) diff --git a/arch/x86/crypto/serpent-avx2-asm_64.S b/arch/x86/crypto/serpent-avx2-asm_64.S index 52c527ce4b18..b866f1632803 100644 --- a/arch/x86/crypto/serpent-avx2-asm_64.S +++ b/arch/x86/crypto/serpent-avx2-asm_64.S @@ -673,7 +673,7 @@ SYM_FUNC_START_LOCAL(__serpent_dec_blk16) ret; SYM_FUNC_END(__serpent_dec_blk16) -ENTRY(serpent_ecb_enc_16way) +SYM_FUNC_START(serpent_ecb_enc_16way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -693,9 +693,9 @@ ENTRY(serpent_ecb_enc_16way) FRAME_END ret; -ENDPROC(serpent_ecb_enc_16way) +SYM_FUNC_END(serpent_ecb_enc_16way) -ENTRY(serpent_ecb_dec_16way) +SYM_FUNC_START(serpent_ecb_dec_16way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -715,9 +715,9 @@ ENTRY(serpent_ecb_dec_16way) FRAME_END ret; -ENDPROC(serpent_ecb_dec_16way) +SYM_FUNC_END(serpent_ecb_dec_16way) -ENTRY(serpent_cbc_dec_16way) +SYM_FUNC_START(serpent_cbc_dec_16way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -738,9 +738,9 @@ ENTRY(serpent_cbc_dec_16way) FRAME_END ret; -ENDPROC(serpent_cbc_dec_16way) +SYM_FUNC_END(serpent_cbc_dec_16way) -ENTRY(serpent_ctr_16way) +SYM_FUNC_START(serpent_ctr_16way) /* input: * %rdi: ctx, CTX * %rsi: dst (16 blocks) @@ -763,9 +763,9 @@ ENTRY(serpent_ctr_16way) FRAME_END ret; -ENDPROC(serpent_ctr_16way) +SYM_FUNC_END(serpent_ctr_16way) -ENTRY(serpent_xts_enc_16way) +SYM_FUNC_START(serpent_xts_enc_16way) /* input: * %rdi: ctx, CTX * %rsi: dst (16 blocks) @@ -789,9 +789,9 @@ ENTRY(serpent_xts_enc_16way) FRAME_END ret; -ENDPROC(serpent_xts_enc_16way) +SYM_FUNC_END(serpent_xts_enc_16way) -ENTRY(serpent_xts_dec_16way) +SYM_FUNC_START(serpent_xts_dec_16way) /* input: * %rdi: ctx, CTX * %rsi: dst (16 blocks) @@ -815,4 +815,4 @@ ENTRY(serpent_xts_dec_16way) FRAME_END ret; -ENDPROC(serpent_xts_dec_16way) +SYM_FUNC_END(serpent_xts_dec_16way) diff --git a/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S b/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S index acc066c7c6b2..bdeee900df63 100644 --- a/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S +++ b/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S @@ -634,7 +634,7 @@ pxor t0, x3; \ movdqu x3, (3*4*4)(out); -ENTRY(__serpent_enc_blk_8way) +SYM_FUNC_START(__serpent_enc_blk_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -697,9 +697,9 @@ ENTRY(__serpent_enc_blk_8way) xor_blocks(%rax, RA2, RB2, RC2, RD2, RK0, RK1, RK2); ret; -ENDPROC(__serpent_enc_blk_8way) +SYM_FUNC_END(__serpent_enc_blk_8way) -ENTRY(serpent_dec_blk_8way) +SYM_FUNC_START(serpent_dec_blk_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -751,4 +751,4 @@ ENTRY(serpent_dec_blk_8way) write_blocks(%rax, RC2, RD2, RB2, RE2, RK0, RK1, RK2); ret; -ENDPROC(serpent_dec_blk_8way) +SYM_FUNC_END(serpent_dec_blk_8way) diff --git a/arch/x86/crypto/sha1-mb/sha1_mb_mgr_flush_avx2.S b/arch/x86/crypto/sha1-mb/sha1_mb_mgr_flush_avx2.S index 7cfba738f104..a1be3b33990c 100644 --- a/arch/x86/crypto/sha1-mb/sha1_mb_mgr_flush_avx2.S +++ b/arch/x86/crypto/sha1-mb/sha1_mb_mgr_flush_avx2.S @@ -103,7 +103,7 @@ offset = \_offset # JOB* sha1_mb_mgr_flush_avx2(MB_MGR *state) # arg 1 : rcx : state -ENTRY(sha1_mb_mgr_flush_avx2) +SYM_FUNC_START(sha1_mb_mgr_flush_avx2) FRAME_BEGIN push %rbx @@ -220,13 +220,13 @@ return: return_null: xor job_rax, job_rax jmp return -ENDPROC(sha1_mb_mgr_flush_avx2) +SYM_FUNC_END(sha1_mb_mgr_flush_avx2) ################################################################# .align 16 -ENTRY(sha1_mb_mgr_get_comp_job_avx2) +SYM_FUNC_START(sha1_mb_mgr_get_comp_job_avx2) push %rbx ## if bit 32+3 is set, then all lanes are empty @@ -279,7 +279,7 @@ ENTRY(sha1_mb_mgr_get_comp_job_avx2) xor job_rax, job_rax pop %rbx ret -ENDPROC(sha1_mb_mgr_get_comp_job_avx2) +SYM_FUNC_END(sha1_mb_mgr_get_comp_job_avx2) .section .rodata.cst16.clear_low_nibble, "aM", @progbits, 16 .align 16 diff --git a/arch/x86/crypto/sha1-mb/sha1_mb_mgr_submit_avx2.S b/arch/x86/crypto/sha1-mb/sha1_mb_mgr_submit_avx2.S index 7a93b1c0d69a..a46e3b04385e 100644 --- a/arch/x86/crypto/sha1-mb/sha1_mb_mgr_submit_avx2.S +++ b/arch/x86/crypto/sha1-mb/sha1_mb_mgr_submit_avx2.S @@ -98,7 +98,7 @@ lane_data = %r10 # JOB* submit_mb_mgr_submit_avx2(MB_MGR *state, job_sha1 *job) # arg 1 : rcx : state # arg 2 : rdx : job -ENTRY(sha1_mb_mgr_submit_avx2) +SYM_FUNC_START(sha1_mb_mgr_submit_avx2) FRAME_BEGIN push %rbx push %r12 @@ -201,7 +201,7 @@ return_null: xor job_rax, job_rax jmp return -ENDPROC(sha1_mb_mgr_submit_avx2) +SYM_FUNC_END(sha1_mb_mgr_submit_avx2) .section .rodata.cst16.clear_low_nibble, "aM", @progbits, 16 .align 16 diff --git a/arch/x86/crypto/sha1-mb/sha1_x8_avx2.S b/arch/x86/crypto/sha1-mb/sha1_x8_avx2.S index 20f77aa633de..04d763520a82 100644 --- a/arch/x86/crypto/sha1-mb/sha1_x8_avx2.S +++ b/arch/x86/crypto/sha1-mb/sha1_x8_avx2.S @@ -294,7 +294,7 @@ W14 = TMP_ # arg 1 : pointer to array[4] of pointer to input data # arg 2 : size (in blocks) ;; assumed to be >= 1 # -ENTRY(sha1_x8_avx2) +SYM_FUNC_START(sha1_x8_avx2) # save callee-saved clobbered registers to comply with C function ABI push %r12 @@ -458,7 +458,7 @@ lloop: pop %r12 ret -ENDPROC(sha1_x8_avx2) +SYM_FUNC_END(sha1_x8_avx2) .section .rodata.cst32.K00_19, "aM", @progbits, 32 diff --git a/arch/x86/crypto/sha1_avx2_x86_64_asm.S b/arch/x86/crypto/sha1_avx2_x86_64_asm.S index 9f712a7dfd79..6decc85ef7b7 100644 --- a/arch/x86/crypto/sha1_avx2_x86_64_asm.S +++ b/arch/x86/crypto/sha1_avx2_x86_64_asm.S @@ -634,7 +634,7 @@ _loop3: * param: function's name */ .macro SHA1_VECTOR_ASM name - ENTRY(\name) + SYM_FUNC_START(\name) push %rbx push %r12 @@ -676,7 +676,7 @@ _loop3: ret - ENDPROC(\name) + SYM_FUNC_END(\name) .endm .section .rodata diff --git a/arch/x86/crypto/sha1_ni_asm.S b/arch/x86/crypto/sha1_ni_asm.S index ebbdba72ae07..11efe3a45a1f 100644 --- a/arch/x86/crypto/sha1_ni_asm.S +++ b/arch/x86/crypto/sha1_ni_asm.S @@ -95,7 +95,7 @@ */ .text .align 32 -ENTRY(sha1_ni_transform) +SYM_FUNC_START(sha1_ni_transform) mov %rsp, RSPSAVE sub $FRAME_SIZE, %rsp and $~0xF, %rsp @@ -291,7 +291,7 @@ ENTRY(sha1_ni_transform) mov RSPSAVE, %rsp ret -ENDPROC(sha1_ni_transform) +SYM_FUNC_END(sha1_ni_transform) .section .rodata.cst16.PSHUFFLE_BYTE_FLIP_MASK, "aM", @progbits, 16 .align 16 diff --git a/arch/x86/crypto/sha1_ssse3_asm.S b/arch/x86/crypto/sha1_ssse3_asm.S index 6204bd53528c..c253255fd4c1 100644 --- a/arch/x86/crypto/sha1_ssse3_asm.S +++ b/arch/x86/crypto/sha1_ssse3_asm.S @@ -71,7 +71,7 @@ * param: function's name */ .macro SHA1_VECTOR_ASM name - ENTRY(\name) + SYM_FUNC_START(\name) push %rbx push %r12 @@ -105,7 +105,7 @@ pop %rbx ret - ENDPROC(\name) + SYM_FUNC_END(\name) .endm /* diff --git a/arch/x86/crypto/sha256-avx-asm.S b/arch/x86/crypto/sha256-avx-asm.S index 001bbcf93c79..22e14c8dd2e4 100644 --- a/arch/x86/crypto/sha256-avx-asm.S +++ b/arch/x86/crypto/sha256-avx-asm.S @@ -347,7 +347,7 @@ a = TMP_ ## arg 3 : Num blocks ######################################################################## .text -ENTRY(sha256_transform_avx) +SYM_FUNC_START(sha256_transform_avx) .align 32 pushq %rbx pushq %r12 @@ -460,7 +460,7 @@ done_hash: popq %r12 popq %rbx ret -ENDPROC(sha256_transform_avx) +SYM_FUNC_END(sha256_transform_avx) .section .rodata.cst256.K256, "aM", @progbits, 256 .align 64 diff --git a/arch/x86/crypto/sha256-avx2-asm.S b/arch/x86/crypto/sha256-avx2-asm.S index 1420db15dcdd..519b551ad576 100644 --- a/arch/x86/crypto/sha256-avx2-asm.S +++ b/arch/x86/crypto/sha256-avx2-asm.S @@ -526,7 +526,7 @@ STACK_SIZE = _RSP + _RSP_SIZE ## arg 3 : Num blocks ######################################################################## .text -ENTRY(sha256_transform_rorx) +SYM_FUNC_START(sha256_transform_rorx) .align 32 pushq %rbx pushq %r12 @@ -713,7 +713,7 @@ done_hash: popq %r12 popq %rbx ret -ENDPROC(sha256_transform_rorx) +SYM_FUNC_END(sha256_transform_rorx) .section .rodata.cst512.K256, "aM", @progbits, 512 .align 64 diff --git a/arch/x86/crypto/sha256-mb/sha256_mb_mgr_flush_avx2.S b/arch/x86/crypto/sha256-mb/sha256_mb_mgr_flush_avx2.S index 16c4ccb1f154..11f00ee0a3a4 100644 --- a/arch/x86/crypto/sha256-mb/sha256_mb_mgr_flush_avx2.S +++ b/arch/x86/crypto/sha256-mb/sha256_mb_mgr_flush_avx2.S @@ -101,7 +101,7 @@ offset = \_offset # JOB_SHA256* sha256_mb_mgr_flush_avx2(MB_MGR *state) # arg 1 : rcx : state -ENTRY(sha256_mb_mgr_flush_avx2) +SYM_FUNC_START(sha256_mb_mgr_flush_avx2) FRAME_BEGIN push %rbx @@ -220,12 +220,12 @@ return: return_null: xor job_rax, job_rax jmp return -ENDPROC(sha256_mb_mgr_flush_avx2) +SYM_FUNC_END(sha256_mb_mgr_flush_avx2) ############################################################################## .align 16 -ENTRY(sha256_mb_mgr_get_comp_job_avx2) +SYM_FUNC_START(sha256_mb_mgr_get_comp_job_avx2) push %rbx ## if bit 32+3 is set, then all lanes are empty @@ -282,7 +282,7 @@ ENTRY(sha256_mb_mgr_get_comp_job_avx2) xor job_rax, job_rax pop %rbx ret -ENDPROC(sha256_mb_mgr_get_comp_job_avx2) +SYM_FUNC_END(sha256_mb_mgr_get_comp_job_avx2) .section .rodata.cst16.clear_low_nibble, "aM", @progbits, 16 .align 16 diff --git a/arch/x86/crypto/sha256-mb/sha256_mb_mgr_submit_avx2.S b/arch/x86/crypto/sha256-mb/sha256_mb_mgr_submit_avx2.S index b36ae7454084..2213c04a30dc 100644 --- a/arch/x86/crypto/sha256-mb/sha256_mb_mgr_submit_avx2.S +++ b/arch/x86/crypto/sha256-mb/sha256_mb_mgr_submit_avx2.S @@ -96,7 +96,7 @@ lane_data = %r10 # JOB* sha256_mb_mgr_submit_avx2(MB_MGR *state, JOB_SHA256 *job) # arg 1 : rcx : state # arg 2 : rdx : job -ENTRY(sha256_mb_mgr_submit_avx2) +SYM_FUNC_START(sha256_mb_mgr_submit_avx2) FRAME_BEGIN push %rbx push %r12 @@ -206,7 +206,7 @@ return_null: xor job_rax, job_rax jmp return -ENDPROC(sha256_mb_mgr_submit_avx2) +SYM_FUNC_END(sha256_mb_mgr_submit_avx2) .section .rodata.cst16.clear_low_nibble, "aM", @progbits, 16 .align 16 diff --git a/arch/x86/crypto/sha256-mb/sha256_x8_avx2.S b/arch/x86/crypto/sha256-mb/sha256_x8_avx2.S index 1687c80c5995..042d2381f435 100644 --- a/arch/x86/crypto/sha256-mb/sha256_x8_avx2.S +++ b/arch/x86/crypto/sha256-mb/sha256_x8_avx2.S @@ -280,7 +280,7 @@ a = TMP_ # general registers preserved in outer calling routine # outer calling routine saves all the XMM registers # save rsp, allocate 32-byte aligned for local variables -ENTRY(sha256_x8_avx2) +SYM_FUNC_START(sha256_x8_avx2) # save callee-saved clobbered registers to comply with C function ABI push %r12 @@ -436,7 +436,7 @@ Lrounds_16_xx: pop %r12 ret -ENDPROC(sha256_x8_avx2) +SYM_FUNC_END(sha256_x8_avx2) .section .rodata.K256_8, "a", @progbits .align 64 diff --git a/arch/x86/crypto/sha256-ssse3-asm.S b/arch/x86/crypto/sha256-ssse3-asm.S index c6c05ed2c16a..69cc2f91dc4c 100644 --- a/arch/x86/crypto/sha256-ssse3-asm.S +++ b/arch/x86/crypto/sha256-ssse3-asm.S @@ -353,7 +353,7 @@ a = TMP_ ## arg 3 : Num blocks ######################################################################## .text -ENTRY(sha256_transform_ssse3) +SYM_FUNC_START(sha256_transform_ssse3) .align 32 pushq %rbx pushq %r12 @@ -471,7 +471,7 @@ done_hash: popq %rbx ret -ENDPROC(sha256_transform_ssse3) +SYM_FUNC_END(sha256_transform_ssse3) .section .rodata.cst256.K256, "aM", @progbits, 256 .align 64 diff --git a/arch/x86/crypto/sha256_ni_asm.S b/arch/x86/crypto/sha256_ni_asm.S index fb58f58ecfbc..7abade04a3a3 100644 --- a/arch/x86/crypto/sha256_ni_asm.S +++ b/arch/x86/crypto/sha256_ni_asm.S @@ -97,7 +97,7 @@ .text .align 32 -ENTRY(sha256_ni_transform) +SYM_FUNC_START(sha256_ni_transform) shl $6, NUM_BLKS /* convert to bytes */ jz .Ldone_hash @@ -327,7 +327,7 @@ ENTRY(sha256_ni_transform) .Ldone_hash: ret -ENDPROC(sha256_ni_transform) +SYM_FUNC_END(sha256_ni_transform) .section .rodata.cst256.K256, "aM", @progbits, 256 .align 64 diff --git a/arch/x86/crypto/sha512-avx-asm.S b/arch/x86/crypto/sha512-avx-asm.S index 39235fefe6f7..3704ddd7e5d5 100644 --- a/arch/x86/crypto/sha512-avx-asm.S +++ b/arch/x86/crypto/sha512-avx-asm.S @@ -277,7 +277,7 @@ frame_size = frame_GPRSAVE + GPRSAVE_SIZE # message blocks. # L is the message length in SHA512 blocks ######################################################################## -ENTRY(sha512_transform_avx) +SYM_FUNC_START(sha512_transform_avx) cmp $0, msglen je nowork @@ -365,7 +365,7 @@ updateblock: nowork: ret -ENDPROC(sha512_transform_avx) +SYM_FUNC_END(sha512_transform_avx) ######################################################################## ### Binary Data diff --git a/arch/x86/crypto/sha512-avx2-asm.S b/arch/x86/crypto/sha512-avx2-asm.S index b16d56005162..80d830e7ee09 100644 --- a/arch/x86/crypto/sha512-avx2-asm.S +++ b/arch/x86/crypto/sha512-avx2-asm.S @@ -569,7 +569,7 @@ frame_size = frame_GPRSAVE + GPRSAVE_SIZE # message blocks. # L is the message length in SHA512 blocks ######################################################################## -ENTRY(sha512_transform_rorx) +SYM_FUNC_START(sha512_transform_rorx) # Allocate Stack Space mov %rsp, %rax sub $frame_size, %rsp @@ -682,7 +682,7 @@ done_hash: # Restore Stack Pointer mov frame_RSPSAVE(%rsp), %rsp ret -ENDPROC(sha512_transform_rorx) +SYM_FUNC_END(sha512_transform_rorx) ######################################################################## ### Binary Data diff --git a/arch/x86/crypto/sha512-mb/sha512_mb_mgr_flush_avx2.S b/arch/x86/crypto/sha512-mb/sha512_mb_mgr_flush_avx2.S index 7c629caebc05..8642f3a04388 100644 --- a/arch/x86/crypto/sha512-mb/sha512_mb_mgr_flush_avx2.S +++ b/arch/x86/crypto/sha512-mb/sha512_mb_mgr_flush_avx2.S @@ -107,7 +107,7 @@ offset = \_offset # JOB* sha512_mb_mgr_flush_avx2(MB_MGR *state) # arg 1 : rcx : state -ENTRY(sha512_mb_mgr_flush_avx2) +SYM_FUNC_START(sha512_mb_mgr_flush_avx2) FRAME_BEGIN push %rbx @@ -217,10 +217,10 @@ return: return_null: xor job_rax, job_rax jmp return -ENDPROC(sha512_mb_mgr_flush_avx2) +SYM_FUNC_END(sha512_mb_mgr_flush_avx2) .align 16 -ENTRY(sha512_mb_mgr_get_comp_job_avx2) +SYM_FUNC_START(sha512_mb_mgr_get_comp_job_avx2) push %rbx mov _unused_lanes(state), unused_lanes @@ -279,7 +279,7 @@ ENTRY(sha512_mb_mgr_get_comp_job_avx2) xor job_rax, job_rax pop %rbx ret -ENDPROC(sha512_mb_mgr_get_comp_job_avx2) +SYM_FUNC_END(sha512_mb_mgr_get_comp_job_avx2) .section .rodata.cst8.one, "aM", @progbits, 8 .align 8 diff --git a/arch/x86/crypto/sha512-mb/sha512_mb_mgr_submit_avx2.S b/arch/x86/crypto/sha512-mb/sha512_mb_mgr_submit_avx2.S index 4ba709ba78e5..62932723d6e9 100644 --- a/arch/x86/crypto/sha512-mb/sha512_mb_mgr_submit_avx2.S +++ b/arch/x86/crypto/sha512-mb/sha512_mb_mgr_submit_avx2.S @@ -98,7 +98,7 @@ # JOB* sha512_mb_mgr_submit_avx2(MB_MGR *state, JOB *job) # arg 1 : rcx : state # arg 2 : rdx : job -ENTRY(sha512_mb_mgr_submit_avx2) +SYM_FUNC_START(sha512_mb_mgr_submit_avx2) FRAME_BEGIN push %rbx push %r12 @@ -208,7 +208,7 @@ return: return_null: xor job_rax, job_rax jmp return -ENDPROC(sha512_mb_mgr_submit_avx2) +SYM_FUNC_END(sha512_mb_mgr_submit_avx2) /* UNUSED? .section .rodata.cst16, "aM", @progbits, 16 diff --git a/arch/x86/crypto/sha512-mb/sha512_x4_avx2.S b/arch/x86/crypto/sha512-mb/sha512_x4_avx2.S index e22e907643a6..504065d19e03 100644 --- a/arch/x86/crypto/sha512-mb/sha512_x4_avx2.S +++ b/arch/x86/crypto/sha512-mb/sha512_x4_avx2.S @@ -239,7 +239,7 @@ a = TMP_ # void sha512_x4_avx2(void *STATE, const int INP_SIZE) # arg 1 : STATE : pointer to input data # arg 2 : INP_SIZE : size of data in blocks (assumed >= 1) -ENTRY(sha512_x4_avx2) +SYM_FUNC_START(sha512_x4_avx2) # general registers preserved in outer calling routine # outer calling routine saves all the XMM registers # save callee-saved clobbered registers to comply with C function ABI @@ -359,7 +359,7 @@ Lrounds_16_xx: # outer calling routine restores XMM and other GP registers ret -ENDPROC(sha512_x4_avx2) +SYM_FUNC_END(sha512_x4_avx2) .section .rodata.K512_4, "a", @progbits .align 64 diff --git a/arch/x86/crypto/sha512-ssse3-asm.S b/arch/x86/crypto/sha512-ssse3-asm.S index 66bbd9058a90..838f984e95d9 100644 --- a/arch/x86/crypto/sha512-ssse3-asm.S +++ b/arch/x86/crypto/sha512-ssse3-asm.S @@ -275,7 +275,7 @@ frame_size = frame_GPRSAVE + GPRSAVE_SIZE # message blocks. # L is the message length in SHA512 blocks. ######################################################################## -ENTRY(sha512_transform_ssse3) +SYM_FUNC_START(sha512_transform_ssse3) cmp $0, msglen je nowork @@ -364,7 +364,7 @@ updateblock: nowork: ret -ENDPROC(sha512_transform_ssse3) +SYM_FUNC_END(sha512_transform_ssse3) ######################################################################## ### Binary Data diff --git a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S index 96ddfda4d7b2..16e53c98e6a0 100644 --- a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S +++ b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S @@ -330,7 +330,7 @@ SYM_FUNC_START_LOCAL(__twofish_dec_blk8) ret; SYM_FUNC_END(__twofish_dec_blk8) -ENTRY(twofish_ecb_enc_8way) +SYM_FUNC_START(twofish_ecb_enc_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -348,9 +348,9 @@ ENTRY(twofish_ecb_enc_8way) FRAME_END ret; -ENDPROC(twofish_ecb_enc_8way) +SYM_FUNC_END(twofish_ecb_enc_8way) -ENTRY(twofish_ecb_dec_8way) +SYM_FUNC_START(twofish_ecb_dec_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -368,9 +368,9 @@ ENTRY(twofish_ecb_dec_8way) FRAME_END ret; -ENDPROC(twofish_ecb_dec_8way) +SYM_FUNC_END(twofish_ecb_dec_8way) -ENTRY(twofish_cbc_dec_8way) +SYM_FUNC_START(twofish_cbc_dec_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -393,9 +393,9 @@ ENTRY(twofish_cbc_dec_8way) FRAME_END ret; -ENDPROC(twofish_cbc_dec_8way) +SYM_FUNC_END(twofish_cbc_dec_8way) -ENTRY(twofish_ctr_8way) +SYM_FUNC_START(twofish_ctr_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -420,9 +420,9 @@ ENTRY(twofish_ctr_8way) FRAME_END ret; -ENDPROC(twofish_ctr_8way) +SYM_FUNC_END(twofish_ctr_8way) -ENTRY(twofish_xts_enc_8way) +SYM_FUNC_START(twofish_xts_enc_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -444,9 +444,9 @@ ENTRY(twofish_xts_enc_8way) FRAME_END ret; -ENDPROC(twofish_xts_enc_8way) +SYM_FUNC_END(twofish_xts_enc_8way) -ENTRY(twofish_xts_dec_8way) +SYM_FUNC_START(twofish_xts_dec_8way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -468,4 +468,4 @@ ENTRY(twofish_xts_dec_8way) FRAME_END ret; -ENDPROC(twofish_xts_dec_8way) +SYM_FUNC_END(twofish_xts_dec_8way) diff --git a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S index e7273a606a07..c830aef77070 100644 --- a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S +++ b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S @@ -235,7 +235,7 @@ rorq $32, RAB2; \ outunpack3(mov, RIO, 2, RAB, 2); -ENTRY(__twofish_enc_blk_3way) +SYM_FUNC_START(__twofish_enc_blk_3way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -282,9 +282,9 @@ ENTRY(__twofish_enc_blk_3way) popq %r12; popq %r13; ret; -ENDPROC(__twofish_enc_blk_3way) +SYM_FUNC_END(__twofish_enc_blk_3way) -ENTRY(twofish_dec_blk_3way) +SYM_FUNC_START(twofish_dec_blk_3way) /* input: * %rdi: ctx, CTX * %rsi: dst @@ -317,4 +317,4 @@ ENTRY(twofish_dec_blk_3way) popq %r12; popq %r13; ret; -ENDPROC(twofish_dec_blk_3way) +SYM_FUNC_END(twofish_dec_blk_3way) diff --git a/arch/x86/crypto/twofish-x86_64-asm_64.S b/arch/x86/crypto/twofish-x86_64-asm_64.S index a350c990dc86..74ef6c55d75f 100644 --- a/arch/x86/crypto/twofish-x86_64-asm_64.S +++ b/arch/x86/crypto/twofish-x86_64-asm_64.S @@ -215,7 +215,7 @@ xor %r8d, d ## D;\ ror $1, d ## D; -ENTRY(twofish_enc_blk) +SYM_FUNC_START(twofish_enc_blk) pushq R1 /* %rdi contains the ctx address */ @@ -266,9 +266,9 @@ ENTRY(twofish_enc_blk) popq R1 movl $1,%eax ret -ENDPROC(twofish_enc_blk) +SYM_FUNC_END(twofish_enc_blk) -ENTRY(twofish_dec_blk) +SYM_FUNC_START(twofish_dec_blk) pushq R1 /* %rdi contains the ctx address */ @@ -318,4 +318,4 @@ ENTRY(twofish_dec_blk) popq R1 movl $1,%eax ret -ENDPROC(twofish_dec_blk) +SYM_FUNC_END(twofish_dec_blk) diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S index 1b0631971dde..c922d27a2bec 100644 --- a/arch/x86/entry/entry_64.S +++ b/arch/x86/entry/entry_64.S @@ -15,7 +15,7 @@ * at the top of the kernel process stack. * * Some macro usage: - * - ENTRY/END: Define functions in the symbol table. + * - SYM_FUNC_START/END:Define functions in the symbol table. * - TRACE_IRQ_*: Trace hardirq state for lock debugging. * - idtentry: Define exception entry points. */ @@ -1007,7 +1007,7 @@ idtentry simd_coprocessor_error do_simd_coprocessor_error has_error_code=0 * Reload gs selector with exception handling * edi: new selector */ -ENTRY(native_load_gs_index) +SYM_FUNC_START(native_load_gs_index) FRAME_BEGIN pushfq DISABLE_INTERRUPTS(CLBR_ANY & ~CLBR_RDI) @@ -1021,7 +1021,7 @@ ENTRY(native_load_gs_index) popfq FRAME_END ret -ENDPROC(native_load_gs_index) +SYM_FUNC_END(native_load_gs_index) EXPORT_SYMBOL(native_load_gs_index) _ASM_EXTABLE(.Lgs_change, bad_gs) @@ -1042,7 +1042,7 @@ SYM_CODE_END(bad_gs) .previous /* Call softirq on interrupt stack. Interrupts are off. */ -ENTRY(do_softirq_own_stack) +SYM_FUNC_START(do_softirq_own_stack) pushq %rbp mov %rsp, %rbp ENTER_IRQ_STACK regs=0 old_rsp=%r11 @@ -1050,7 +1050,7 @@ ENTRY(do_softirq_own_stack) LEAVE_IRQ_STACK regs=0 leaveq ret -ENDPROC(do_softirq_own_stack) +SYM_FUNC_END(do_softirq_own_stack) #ifdef CONFIG_XEN idtentry hypervisor_callback xen_do_hypervisor_callback has_error_code=0 diff --git a/arch/x86/entry/entry_64_compat.S b/arch/x86/entry/entry_64_compat.S index b4a2ee901899..39480254160c 100644 --- a/arch/x86/entry/entry_64_compat.S +++ b/arch/x86/entry/entry_64_compat.S @@ -46,7 +46,7 @@ * ebp user stack * 0(%ebp) arg6 */ -ENTRY(entry_SYSENTER_compat) +SYM_FUNC_START(entry_SYSENTER_compat) /* Interrupts are off on entry. */ SWAPGS @@ -147,7 +147,7 @@ ENTRY(entry_SYSENTER_compat) popfq jmp .Lsysenter_flags_fixed SYM_CODE_INNER_LABEL(__end_entry_SYSENTER_compat, SYM_L_GLOBAL) -ENDPROC(entry_SYSENTER_compat) +SYM_FUNC_END(entry_SYSENTER_compat) /* * 32-bit SYSCALL entry. diff --git a/arch/x86/kernel/acpi/wakeup_64.S b/arch/x86/kernel/acpi/wakeup_64.S index 6c60fe346583..042fd30ac493 100644 --- a/arch/x86/kernel/acpi/wakeup_64.S +++ b/arch/x86/kernel/acpi/wakeup_64.S @@ -13,7 +13,7 @@ /* * Hooray, we are in Long 64-bit mode (but still running in low memory) */ -ENTRY(wakeup_long64) +SYM_FUNC_START(wakeup_long64) movq saved_magic, %rax movq $0x123456789abcdef0, %rdx cmpq %rdx, %rax @@ -34,13 +34,13 @@ ENTRY(wakeup_long64) movq saved_rip, %rax jmp *%rax -ENDPROC(wakeup_long64) +SYM_FUNC_END(wakeup_long64) SYM_CODE_START_LOCAL(bogus_64_magic) jmp bogus_64_magic SYM_CODE_END(bogus_64_magic) -ENTRY(do_suspend_lowlevel) +SYM_FUNC_START(do_suspend_lowlevel) FRAME_BEGIN subq $8, %rsp xorl %eax, %eax @@ -123,7 +123,7 @@ ENTRY(do_suspend_lowlevel) addq $8, %rsp FRAME_END jmp restore_processor_state -ENDPROC(do_suspend_lowlevel) +SYM_FUNC_END(do_suspend_lowlevel) .data saved_rbp: .quad 0 diff --git a/arch/x86/kernel/ftrace_64.S b/arch/x86/kernel/ftrace_64.S index 141341eaa267..6bd43895c13e 100644 --- a/arch/x86/kernel/ftrace_64.S +++ b/arch/x86/kernel/ftrace_64.S @@ -150,11 +150,11 @@ EXPORT_SYMBOL(mcount) #ifdef CONFIG_DYNAMIC_FTRACE -ENTRY(function_hook) +SYM_FUNC_START(function_hook) retq -ENDPROC(function_hook) +SYM_FUNC_END(function_hook) -ENTRY(ftrace_caller) +SYM_FUNC_START(ftrace_caller) /* save_mcount_regs fills in first two parameters */ save_mcount_regs @@ -188,9 +188,9 @@ SYM_CODE_INNER_LABEL(ftrace_graph_call, SYM_L_GLOBAL) /* This is weak to keep gas from relaxing the jumps */ WEAK(ftrace_stub) retq -ENDPROC(ftrace_caller) +SYM_FUNC_END(ftrace_caller) -ENTRY(ftrace_regs_caller) +SYM_FUNC_START(ftrace_regs_caller) /* Save the current flags before any operations that can change them */ pushfq @@ -259,12 +259,12 @@ SYM_CODE_INNER_LABEL(ftrace_regs_caller_end, SYM_L_GLOBAL) jmp ftrace_epilogue -ENDPROC(ftrace_regs_caller) +SYM_FUNC_END(ftrace_regs_caller) #else /* ! CONFIG_DYNAMIC_FTRACE */ -ENTRY(function_hook) +SYM_FUNC_START(function_hook) cmpq $ftrace_stub, ftrace_trace_function jnz trace @@ -295,11 +295,11 @@ trace: restore_mcount_regs jmp fgraph_trace -ENDPROC(function_hook) +SYM_FUNC_END(function_hook) #endif /* CONFIG_DYNAMIC_FTRACE */ #ifdef CONFIG_FUNCTION_GRAPH_TRACER -ENTRY(ftrace_graph_caller) +SYM_FUNC_START(ftrace_graph_caller) /* Saves rbp into %rdx and fills first parameter */ save_mcount_regs @@ -317,7 +317,7 @@ ENTRY(ftrace_graph_caller) restore_mcount_regs retq -ENDPROC(ftrace_graph_caller) +SYM_FUNC_END(ftrace_graph_caller) SYM_CODE_START(return_to_handler) UNWIND_HINT_EMPTY diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S index 48e71043b99c..f4383f4d41b1 100644 --- a/arch/x86/kernel/head_64.S +++ b/arch/x86/kernel/head_64.S @@ -92,7 +92,7 @@ SYM_CODE_START_NOALIGN(startup_64) jmp 1f SYM_CODE_END(startup_64) -ENTRY(secondary_startup_64) +SYM_CODE_START(secondary_startup_64) UNWIND_HINT_EMPTY /* * At this point the CPU runs in 64bit mode CS.L = 1 CS.D = 0, @@ -242,7 +242,7 @@ ENTRY(secondary_startup_64) pushq %rax # target address in negative space lretq .Lafter_lret: -END(secondary_startup_64) +SYM_CODE_END(secondary_startup_64) #include "verify_cpu.S" @@ -252,11 +252,11 @@ END(secondary_startup_64) * up already except stack. We just set up stack here. Then call * start_secondary() via .Ljump_to_C_code. */ -ENTRY(start_cpu0) +SYM_FUNC_START(start_cpu0) movq initial_stack(%rip), %rsp UNWIND_HINT_EMPTY jmp .Ljump_to_C_code -ENDPROC(start_cpu0) +SYM_FUNC_END(start_cpu0) #endif /* Both SMP bootup and ACPI suspend change these variables */ @@ -273,7 +273,7 @@ SYM_DATA(initial_stack, __FINITDATA __INIT -ENTRY(early_idt_handler_array) +SYM_CODE_START(early_idt_handler_array) i = 0 .rept NUM_EXCEPTION_VECTORS .if ((EXCEPTION_ERRCODE_MASK >> i) & 1) == 0 @@ -289,7 +289,7 @@ ENTRY(early_idt_handler_array) .fill early_idt_handler_array + i*EARLY_IDT_HANDLER_SIZE - ., 1, 0xcc .endr UNWIND_HINT_IRET_REGS offset=16 -END(early_idt_handler_array) +SYM_CODE_END(early_idt_handler_array) SYM_CODE_START_LOCAL(early_idt_handler_common) /* diff --git a/arch/x86/lib/checksum_32.S b/arch/x86/lib/checksum_32.S index 46e71a74e612..28a148de1843 100644 --- a/arch/x86/lib/checksum_32.S +++ b/arch/x86/lib/checksum_32.S @@ -284,7 +284,7 @@ unsigned int csum_partial_copy_generic (const char *src, char *dst, #define ARGBASE 16 #define FP 12 -ENTRY(csum_partial_copy_generic) +SYM_FUNC_START(csum_partial_copy_generic) subl $4,%esp pushl %edi pushl %esi @@ -402,7 +402,7 @@ DST( movb %cl, (%edi) ) popl %edi popl %ecx # equivalent to addl $4,%esp ret -ENDPROC(csum_partial_copy_generic) +SYM_FUNC_END(csum_partial_copy_generic) #else @@ -420,7 +420,7 @@ ENDPROC(csum_partial_copy_generic) #define ARGBASE 12 -ENTRY(csum_partial_copy_generic) +SYM_FUNC_START(csum_partial_copy_generic) pushl %ebx pushl %edi pushl %esi @@ -487,7 +487,7 @@ DST( movb %dl, (%edi) ) popl %edi popl %ebx ret -ENDPROC(csum_partial_copy_generic) +SYM_FUNC_END(csum_partial_copy_generic) #undef ROUND #undef ROUND1 diff --git a/arch/x86/lib/clear_page_64.S b/arch/x86/lib/clear_page_64.S index 88acd349911b..47aa2830010b 100644 --- a/arch/x86/lib/clear_page_64.S +++ b/arch/x86/lib/clear_page_64.S @@ -12,15 +12,15 @@ * Zero a page. * %rdi - page */ -ENTRY(clear_page_rep) +SYM_FUNC_START(clear_page_rep) movl $4096/8,%ecx xorl %eax,%eax rep stosq ret -ENDPROC(clear_page_rep) +SYM_FUNC_END(clear_page_rep) EXPORT_SYMBOL_GPL(clear_page_rep) -ENTRY(clear_page_orig) +SYM_FUNC_START(clear_page_orig) xorl %eax,%eax movl $4096/64,%ecx .p2align 4 @@ -39,13 +39,13 @@ ENTRY(clear_page_orig) jnz .Lloop nop ret -ENDPROC(clear_page_orig) +SYM_FUNC_END(clear_page_orig) EXPORT_SYMBOL_GPL(clear_page_orig) -ENTRY(clear_page_erms) +SYM_FUNC_START(clear_page_erms) movl $4096,%ecx xorl %eax,%eax rep stosb ret -ENDPROC(clear_page_erms) +SYM_FUNC_END(clear_page_erms) EXPORT_SYMBOL_GPL(clear_page_erms) diff --git a/arch/x86/lib/cmpxchg16b_emu.S b/arch/x86/lib/cmpxchg16b_emu.S index 9b330242e740..b6ba6360b3ca 100644 --- a/arch/x86/lib/cmpxchg16b_emu.S +++ b/arch/x86/lib/cmpxchg16b_emu.S @@ -19,7 +19,7 @@ * %rcx : high 64 bits of new value * %al : Operation successful */ -ENTRY(this_cpu_cmpxchg16b_emu) +SYM_FUNC_START(this_cpu_cmpxchg16b_emu) # # Emulate 'cmpxchg16b %gs:(%rsi)' except we return the result in %al not @@ -50,4 +50,4 @@ ENTRY(this_cpu_cmpxchg16b_emu) xor %al,%al ret -ENDPROC(this_cpu_cmpxchg16b_emu) +SYM_FUNC_END(this_cpu_cmpxchg16b_emu) diff --git a/arch/x86/lib/cmpxchg8b_emu.S b/arch/x86/lib/cmpxchg8b_emu.S index 03a186fc06ea..77aa18db3968 100644 --- a/arch/x86/lib/cmpxchg8b_emu.S +++ b/arch/x86/lib/cmpxchg8b_emu.S @@ -19,7 +19,7 @@ * %ebx : low 32 bits of new value * %ecx : high 32 bits of new value */ -ENTRY(cmpxchg8b_emu) +SYM_FUNC_START(cmpxchg8b_emu) # # Emulate 'cmpxchg8b (%esi)' on UP except we don't @@ -48,5 +48,5 @@ ENTRY(cmpxchg8b_emu) popfl ret -ENDPROC(cmpxchg8b_emu) +SYM_FUNC_END(cmpxchg8b_emu) EXPORT_SYMBOL(cmpxchg8b_emu) diff --git a/arch/x86/lib/copy_page_64.S b/arch/x86/lib/copy_page_64.S index f505870bd93b..2402d4c489d2 100644 --- a/arch/x86/lib/copy_page_64.S +++ b/arch/x86/lib/copy_page_64.S @@ -13,12 +13,12 @@ * prefetch distance based on SMP/UP. */ ALIGN -ENTRY(copy_page) +SYM_FUNC_START(copy_page) ALTERNATIVE "jmp copy_page_regs", "", X86_FEATURE_REP_GOOD movl $4096/8, %ecx rep movsq ret -ENDPROC(copy_page) +SYM_FUNC_END(copy_page) EXPORT_SYMBOL(copy_page) SYM_FUNC_START_LOCAL(copy_page_regs) diff --git a/arch/x86/lib/copy_user_64.S b/arch/x86/lib/copy_user_64.S index 020f75cc8cf6..5e9e80c05a97 100644 --- a/arch/x86/lib/copy_user_64.S +++ b/arch/x86/lib/copy_user_64.S @@ -29,7 +29,7 @@ * Output: * eax uncopied bytes or 0 if successful. */ -ENTRY(copy_user_generic_unrolled) +SYM_FUNC_START(copy_user_generic_unrolled) ASM_STAC cmpl $8,%edx jb 20f /* less then 8 bytes, go to byte copy loop */ @@ -112,7 +112,7 @@ ENTRY(copy_user_generic_unrolled) _ASM_EXTABLE(19b,40b) _ASM_EXTABLE(21b,50b) _ASM_EXTABLE(22b,50b) -ENDPROC(copy_user_generic_unrolled) +SYM_FUNC_END(copy_user_generic_unrolled) EXPORT_SYMBOL(copy_user_generic_unrolled) /* Some CPUs run faster using the string copy instructions. @@ -133,7 +133,7 @@ EXPORT_SYMBOL(copy_user_generic_unrolled) * Output: * eax uncopied bytes or 0 if successful. */ -ENTRY(copy_user_generic_string) +SYM_FUNC_START(copy_user_generic_string) ASM_STAC cmpl $8,%edx jb 2f /* less than 8 bytes, go to byte copy loop */ @@ -158,7 +158,7 @@ ENTRY(copy_user_generic_string) _ASM_EXTABLE(1b,11b) _ASM_EXTABLE(3b,12b) -ENDPROC(copy_user_generic_string) +SYM_FUNC_END(copy_user_generic_string) EXPORT_SYMBOL(copy_user_generic_string) /* @@ -173,7 +173,7 @@ EXPORT_SYMBOL(copy_user_generic_string) * Output: * eax uncopied bytes or 0 if successful. */ -ENTRY(copy_user_enhanced_fast_string) +SYM_FUNC_START(copy_user_enhanced_fast_string) ASM_STAC cmpl $64,%edx jb .L_copy_short_string /* less then 64 bytes, avoid the costly 'rep' */ @@ -190,7 +190,7 @@ ENTRY(copy_user_enhanced_fast_string) .previous _ASM_EXTABLE(1b,12b) -ENDPROC(copy_user_enhanced_fast_string) +SYM_FUNC_END(copy_user_enhanced_fast_string) EXPORT_SYMBOL(copy_user_enhanced_fast_string) /* @@ -202,7 +202,7 @@ EXPORT_SYMBOL(copy_user_enhanced_fast_string) * - Require 8-byte alignment when size is 8 bytes or larger. * - Require 4-byte alignment when size is 4 bytes. */ -ENTRY(__copy_user_nocache) +SYM_FUNC_START(__copy_user_nocache) ASM_STAC /* If size is less than 8 bytes, go to 4-byte copy */ @@ -341,5 +341,5 @@ ENTRY(__copy_user_nocache) _ASM_EXTABLE(31b,.L_fixup_4b_copy) _ASM_EXTABLE(40b,.L_fixup_1b_copy) _ASM_EXTABLE(41b,.L_fixup_1b_copy) -ENDPROC(__copy_user_nocache) +SYM_FUNC_END(__copy_user_nocache) EXPORT_SYMBOL(__copy_user_nocache) diff --git a/arch/x86/lib/csum-copy_64.S b/arch/x86/lib/csum-copy_64.S index 45a53dfe1859..523e4964078f 100644 --- a/arch/x86/lib/csum-copy_64.S +++ b/arch/x86/lib/csum-copy_64.S @@ -45,7 +45,7 @@ .endm -ENTRY(csum_partial_copy_generic) +SYM_FUNC_START(csum_partial_copy_generic) cmpl $3*64, %edx jle .Lignore @@ -221,4 +221,4 @@ ENTRY(csum_partial_copy_generic) jz .Lende movl $-EFAULT, (%rax) jmp .Lende -ENDPROC(csum_partial_copy_generic) +SYM_FUNC_END(csum_partial_copy_generic) diff --git a/arch/x86/lib/getuser.S b/arch/x86/lib/getuser.S index a5d7fe7fe401..71dd96676194 100644 --- a/arch/x86/lib/getuser.S +++ b/arch/x86/lib/getuser.S @@ -36,7 +36,7 @@ #include .text -ENTRY(__get_user_1) +SYM_FUNC_START(__get_user_1) mov PER_CPU_VAR(current_task), %_ASM_DX cmp TASK_addr_limit(%_ASM_DX),%_ASM_AX jae bad_get_user @@ -47,10 +47,10 @@ ENTRY(__get_user_1) xor %eax,%eax ASM_CLAC ret -ENDPROC(__get_user_1) +SYM_FUNC_END(__get_user_1) EXPORT_SYMBOL(__get_user_1) -ENTRY(__get_user_2) +SYM_FUNC_START(__get_user_2) add $1,%_ASM_AX jc bad_get_user mov PER_CPU_VAR(current_task), %_ASM_DX @@ -63,10 +63,10 @@ ENTRY(__get_user_2) xor %eax,%eax ASM_CLAC ret -ENDPROC(__get_user_2) +SYM_FUNC_END(__get_user_2) EXPORT_SYMBOL(__get_user_2) -ENTRY(__get_user_4) +SYM_FUNC_START(__get_user_4) add $3,%_ASM_AX jc bad_get_user mov PER_CPU_VAR(current_task), %_ASM_DX @@ -79,10 +79,10 @@ ENTRY(__get_user_4) xor %eax,%eax ASM_CLAC ret -ENDPROC(__get_user_4) +SYM_FUNC_END(__get_user_4) EXPORT_SYMBOL(__get_user_4) -ENTRY(__get_user_8) +SYM_FUNC_START(__get_user_8) #ifdef CONFIG_X86_64 add $7,%_ASM_AX jc bad_get_user @@ -111,7 +111,7 @@ ENTRY(__get_user_8) ASM_CLAC ret #endif -ENDPROC(__get_user_8) +SYM_FUNC_END(__get_user_8) EXPORT_SYMBOL(__get_user_8) diff --git a/arch/x86/lib/hweight.S b/arch/x86/lib/hweight.S index a14f9939c365..dbf8cc97b7f5 100644 --- a/arch/x86/lib/hweight.S +++ b/arch/x86/lib/hweight.S @@ -8,7 +8,7 @@ * unsigned int __sw_hweight32(unsigned int w) * %rdi: w */ -ENTRY(__sw_hweight32) +SYM_FUNC_START(__sw_hweight32) #ifdef CONFIG_X86_64 movl %edi, %eax # w @@ -33,10 +33,10 @@ ENTRY(__sw_hweight32) shrl $24, %eax # w = w_tmp >> 24 __ASM_SIZE(pop,) %__ASM_REG(dx) ret -ENDPROC(__sw_hweight32) +SYM_FUNC_END(__sw_hweight32) EXPORT_SYMBOL(__sw_hweight32) -ENTRY(__sw_hweight64) +SYM_FUNC_START(__sw_hweight64) #ifdef CONFIG_X86_64 pushq %rdi pushq %rdx @@ -79,5 +79,5 @@ ENTRY(__sw_hweight64) popl %ecx ret #endif -ENDPROC(__sw_hweight64) +SYM_FUNC_END(__sw_hweight64) EXPORT_SYMBOL(__sw_hweight64) diff --git a/arch/x86/lib/iomap_copy_64.S b/arch/x86/lib/iomap_copy_64.S index 33147fef3452..2246fbf32fa8 100644 --- a/arch/x86/lib/iomap_copy_64.S +++ b/arch/x86/lib/iomap_copy_64.S @@ -20,8 +20,8 @@ /* * override generic version in lib/iomap_copy.c */ -ENTRY(__iowrite32_copy) +SYM_FUNC_START(__iowrite32_copy) movl %edx,%ecx rep movsd ret -ENDPROC(__iowrite32_copy) +SYM_FUNC_END(__iowrite32_copy) diff --git a/arch/x86/lib/memcpy_64.S b/arch/x86/lib/memcpy_64.S index 728703c47d58..9bec63e212a8 100644 --- a/arch/x86/lib/memcpy_64.S +++ b/arch/x86/lib/memcpy_64.S @@ -188,7 +188,7 @@ SYM_FUNC_END(memcpy_orig) * Note that we only catch machine checks when reading the source addresses. * Writes to target are posted and don't generate machine checks. */ -ENTRY(memcpy_mcsafe_unrolled) +SYM_FUNC_START(memcpy_mcsafe_unrolled) cmpl $8, %edx /* Less than 8 bytes? Go to byte copy loop */ jb .L_no_whole_words @@ -276,7 +276,7 @@ ENTRY(memcpy_mcsafe_unrolled) .L_done_memcpy_trap: xorq %rax, %rax ret -ENDPROC(memcpy_mcsafe_unrolled) +SYM_FUNC_END(memcpy_mcsafe_unrolled) EXPORT_SYMBOL_GPL(memcpy_mcsafe_unrolled) .section .fixup, "ax" diff --git a/arch/x86/lib/memmove_64.S b/arch/x86/lib/memmove_64.S index 50c1648311b3..337830d7a59c 100644 --- a/arch/x86/lib/memmove_64.S +++ b/arch/x86/lib/memmove_64.S @@ -27,7 +27,7 @@ .weak memmove SYM_FUNC_START_ALIAS(memmove) -ENTRY(__memmove) +SYM_FUNC_START(__memmove) /* Handle more 32 bytes in loop */ mov %rdi, %rax @@ -207,7 +207,7 @@ ENTRY(__memmove) movb %r11b, (%rdi) 13: retq -ENDPROC(__memmove) +SYM_FUNC_END(__memmove) SYM_FUNC_END_ALIAS(memmove) EXPORT_SYMBOL(__memmove) EXPORT_SYMBOL(memmove) diff --git a/arch/x86/lib/memset_64.S b/arch/x86/lib/memset_64.S index 564abf9ecedb..9ff15ee404a4 100644 --- a/arch/x86/lib/memset_64.S +++ b/arch/x86/lib/memset_64.S @@ -20,7 +20,7 @@ * rax original destination */ SYM_FUNC_START_ALIAS(memset) -ENTRY(__memset) +SYM_FUNC_START(__memset) /* * Some CPUs support enhanced REP MOVSB/STOSB feature. It is recommended * to use it when possible. If not available, use fast string instructions. @@ -43,7 +43,7 @@ ENTRY(__memset) rep stosb movq %r9,%rax ret -ENDPROC(__memset) +SYM_FUNC_END(__memset) SYM_FUNC_END_ALIAS(memset) EXPORT_SYMBOL(memset) EXPORT_SYMBOL(__memset) diff --git a/arch/x86/lib/msr-reg.S b/arch/x86/lib/msr-reg.S index ed33cbab3958..a2b9caa5274c 100644 --- a/arch/x86/lib/msr-reg.S +++ b/arch/x86/lib/msr-reg.S @@ -12,7 +12,7 @@ * */ .macro op_safe_regs op -ENTRY(\op\()_safe_regs) +SYM_FUNC_START(\op\()_safe_regs) pushq %rbx pushq %r12 movq %rdi, %r10 /* Save pointer */ @@ -41,13 +41,13 @@ ENTRY(\op\()_safe_regs) jmp 2b _ASM_EXTABLE(1b, 3b) -ENDPROC(\op\()_safe_regs) +SYM_FUNC_END(\op\()_safe_regs) .endm #else /* X86_32 */ .macro op_safe_regs op -ENTRY(\op\()_safe_regs) +SYM_FUNC_START(\op\()_safe_regs) pushl %ebx pushl %ebp pushl %esi @@ -83,7 +83,7 @@ ENTRY(\op\()_safe_regs) jmp 2b _ASM_EXTABLE(1b, 3b) -ENDPROC(\op\()_safe_regs) +SYM_FUNC_END(\op\()_safe_regs) .endm #endif diff --git a/arch/x86/lib/putuser.S b/arch/x86/lib/putuser.S index 8234d8559385..9ec0f34a8541 100644 --- a/arch/x86/lib/putuser.S +++ b/arch/x86/lib/putuser.S @@ -36,7 +36,7 @@ ret .text -ENTRY(__put_user_1) +SYM_FUNC_START(__put_user_1) ENTER cmp TASK_addr_limit(%_ASM_BX),%_ASM_CX jae bad_put_user @@ -44,10 +44,10 @@ ENTRY(__put_user_1) 1: movb %al,(%_ASM_CX) xor %eax,%eax EXIT -ENDPROC(__put_user_1) +SYM_FUNC_END(__put_user_1) EXPORT_SYMBOL(__put_user_1) -ENTRY(__put_user_2) +SYM_FUNC_START(__put_user_2) ENTER mov TASK_addr_limit(%_ASM_BX),%_ASM_BX sub $1,%_ASM_BX @@ -57,10 +57,10 @@ ENTRY(__put_user_2) 2: movw %ax,(%_ASM_CX) xor %eax,%eax EXIT -ENDPROC(__put_user_2) +SYM_FUNC_END(__put_user_2) EXPORT_SYMBOL(__put_user_2) -ENTRY(__put_user_4) +SYM_FUNC_START(__put_user_4) ENTER mov TASK_addr_limit(%_ASM_BX),%_ASM_BX sub $3,%_ASM_BX @@ -70,10 +70,10 @@ ENTRY(__put_user_4) 3: movl %eax,(%_ASM_CX) xor %eax,%eax EXIT -ENDPROC(__put_user_4) +SYM_FUNC_END(__put_user_4) EXPORT_SYMBOL(__put_user_4) -ENTRY(__put_user_8) +SYM_FUNC_START(__put_user_8) ENTER mov TASK_addr_limit(%_ASM_BX),%_ASM_BX sub $7,%_ASM_BX @@ -86,7 +86,7 @@ ENTRY(__put_user_8) #endif xor %eax,%eax EXIT -ENDPROC(__put_user_8) +SYM_FUNC_END(__put_user_8) EXPORT_SYMBOL(__put_user_8) SYM_CODE_START_LOCAL(bad_put_user) diff --git a/arch/x86/lib/retpoline.S b/arch/x86/lib/retpoline.S index c909961e678a..363ec132df7e 100644 --- a/arch/x86/lib/retpoline.S +++ b/arch/x86/lib/retpoline.S @@ -11,11 +11,11 @@ .macro THUNK reg .section .text.__x86.indirect_thunk -ENTRY(__x86_indirect_thunk_\reg) +SYM_FUNC_START(__x86_indirect_thunk_\reg) CFI_STARTPROC JMP_NOSPEC %\reg CFI_ENDPROC -ENDPROC(__x86_indirect_thunk_\reg) +SYM_FUNC_END(__x86_indirect_thunk_\reg) .endm /* diff --git a/arch/x86/lib/rwsem.S b/arch/x86/lib/rwsem.S index dc2ab6ea6768..dcd5c997b068 100644 --- a/arch/x86/lib/rwsem.S +++ b/arch/x86/lib/rwsem.S @@ -86,7 +86,7 @@ #endif /* Fix up special calling conventions */ -ENTRY(call_rwsem_down_read_failed) +SYM_FUNC_START(call_rwsem_down_read_failed) FRAME_BEGIN save_common_regs __ASM_SIZE(push,) %__ASM_REG(dx) @@ -96,9 +96,9 @@ ENTRY(call_rwsem_down_read_failed) restore_common_regs FRAME_END ret -ENDPROC(call_rwsem_down_read_failed) +SYM_FUNC_END(call_rwsem_down_read_failed) -ENTRY(call_rwsem_down_read_failed_killable) +SYM_FUNC_START(call_rwsem_down_read_failed_killable) FRAME_BEGIN save_common_regs __ASM_SIZE(push,) %__ASM_REG(dx) @@ -108,9 +108,9 @@ ENTRY(call_rwsem_down_read_failed_killable) restore_common_regs FRAME_END ret -ENDPROC(call_rwsem_down_read_failed_killable) +SYM_FUNC_END(call_rwsem_down_read_failed_killable) -ENTRY(call_rwsem_down_write_failed) +SYM_FUNC_START(call_rwsem_down_write_failed) FRAME_BEGIN save_common_regs movq %rax,%rdi @@ -118,9 +118,9 @@ ENTRY(call_rwsem_down_write_failed) restore_common_regs FRAME_END ret -ENDPROC(call_rwsem_down_write_failed) +SYM_FUNC_END(call_rwsem_down_write_failed) -ENTRY(call_rwsem_down_write_failed_killable) +SYM_FUNC_START(call_rwsem_down_write_failed_killable) FRAME_BEGIN save_common_regs movq %rax,%rdi @@ -128,9 +128,9 @@ ENTRY(call_rwsem_down_write_failed_killable) restore_common_regs FRAME_END ret -ENDPROC(call_rwsem_down_write_failed_killable) +SYM_FUNC_END(call_rwsem_down_write_failed_killable) -ENTRY(call_rwsem_wake) +SYM_FUNC_START(call_rwsem_wake) FRAME_BEGIN /* do nothing if still outstanding active readers */ __ASM_HALF_SIZE(dec) %__ASM_HALF_REG(dx) @@ -141,9 +141,9 @@ ENTRY(call_rwsem_wake) restore_common_regs 1: FRAME_END ret -ENDPROC(call_rwsem_wake) +SYM_FUNC_END(call_rwsem_wake) -ENTRY(call_rwsem_downgrade_wake) +SYM_FUNC_START(call_rwsem_downgrade_wake) FRAME_BEGIN save_common_regs __ASM_SIZE(push,) %__ASM_REG(dx) @@ -153,4 +153,4 @@ ENTRY(call_rwsem_downgrade_wake) restore_common_regs FRAME_END ret -ENDPROC(call_rwsem_downgrade_wake) +SYM_FUNC_END(call_rwsem_downgrade_wake) diff --git a/arch/x86/mm/mem_encrypt_boot.S b/arch/x86/mm/mem_encrypt_boot.S index 40a6085063d6..2c0a6fbd4fe8 100644 --- a/arch/x86/mm/mem_encrypt_boot.S +++ b/arch/x86/mm/mem_encrypt_boot.S @@ -19,7 +19,7 @@ .text .code64 -ENTRY(sme_encrypt_execute) +SYM_FUNC_START(sme_encrypt_execute) /* * Entry parameters: @@ -69,9 +69,9 @@ ENTRY(sme_encrypt_execute) pop %rbp ret -ENDPROC(sme_encrypt_execute) +SYM_FUNC_END(sme_encrypt_execute) -ENTRY(__enc_copy) +SYM_FUNC_START(__enc_copy) /* * Routine used to encrypt memory in place. * This routine must be run outside of the kernel proper since @@ -156,4 +156,4 @@ ENTRY(__enc_copy) ret .L__enc_copy_end: -ENDPROC(__enc_copy) +SYM_FUNC_END(__enc_copy) diff --git a/arch/x86/platform/efi/efi_stub_64.S b/arch/x86/platform/efi/efi_stub_64.S index 74628ec78f29..b1d2313fe3bf 100644 --- a/arch/x86/platform/efi/efi_stub_64.S +++ b/arch/x86/platform/efi/efi_stub_64.S @@ -39,7 +39,7 @@ mov %rsi, %cr0; \ mov (%rsp), %rsp -ENTRY(efi_call) +SYM_FUNC_START(efi_call) pushq %rbp movq %rsp, %rbp SAVE_XMM @@ -55,4 +55,4 @@ ENTRY(efi_call) RESTORE_XMM popq %rbp ret -ENDPROC(efi_call) +SYM_FUNC_END(efi_call) diff --git a/arch/x86/platform/efi/efi_thunk_64.S b/arch/x86/platform/efi/efi_thunk_64.S index d677a7eb2d0a..3189f1394701 100644 --- a/arch/x86/platform/efi/efi_thunk_64.S +++ b/arch/x86/platform/efi/efi_thunk_64.S @@ -25,7 +25,7 @@ .text .code64 -ENTRY(efi64_thunk) +SYM_FUNC_START(efi64_thunk) push %rbp push %rbx @@ -60,7 +60,7 @@ ENTRY(efi64_thunk) pop %rbx pop %rbp retq -ENDPROC(efi64_thunk) +SYM_FUNC_END(efi64_thunk) /* * We run this function from the 1:1 mapping. diff --git a/arch/x86/power/hibernate_asm_64.S b/arch/x86/power/hibernate_asm_64.S index 44755a847856..c87ae08f9312 100644 --- a/arch/x86/power/hibernate_asm_64.S +++ b/arch/x86/power/hibernate_asm_64.S @@ -23,7 +23,7 @@ #include #include -ENTRY(swsusp_arch_suspend) +SYM_FUNC_START(swsusp_arch_suspend) movq $saved_context, %rax movq %rsp, pt_regs_sp(%rax) movq %rbp, pt_regs_bp(%rax) @@ -51,7 +51,7 @@ ENTRY(swsusp_arch_suspend) call swsusp_save FRAME_END ret -ENDPROC(swsusp_arch_suspend) +SYM_FUNC_END(swsusp_arch_suspend) SYM_CODE_START(restore_image) /* prepare to jump to the image kernel */ @@ -103,7 +103,7 @@ SYM_CODE_END(core_restore_code) /* code below belongs to the image kernel */ .align PAGE_SIZE -ENTRY(restore_registers) +SYM_FUNC_START(restore_registers) /* go back to the original page tables */ movq %r9, %cr3 @@ -145,4 +145,4 @@ ENTRY(restore_registers) movq %rax, in_suspend(%rip) ret -ENDPROC(restore_registers) +SYM_FUNC_END(restore_registers) diff --git a/arch/x86/xen/xen-asm.S b/arch/x86/xen/xen-asm.S index 8019edd0125c..d7bf6d5cfcb9 100644 --- a/arch/x86/xen/xen-asm.S +++ b/arch/x86/xen/xen-asm.S @@ -18,7 +18,7 @@ * event status with one and operation. If there are pending events, * then enter the hypervisor to get them handled. */ -ENTRY(xen_irq_enable_direct) +SYM_FUNC_START(xen_irq_enable_direct) FRAME_BEGIN /* Unmask events */ movb $0, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_mask @@ -37,17 +37,17 @@ ENTRY(xen_irq_enable_direct) 1: FRAME_END ret - ENDPROC(xen_irq_enable_direct) +SYM_FUNC_END(xen_irq_enable_direct) /* * Disabling events is simply a matter of making the event mask * non-zero. */ -ENTRY(xen_irq_disable_direct) +SYM_FUNC_START(xen_irq_disable_direct) movb $1, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_mask ret -ENDPROC(xen_irq_disable_direct) +SYM_FUNC_END(xen_irq_disable_direct) /* * (xen_)save_fl is used to get the current interrupt enable status. @@ -58,12 +58,12 @@ ENDPROC(xen_irq_disable_direct) * undefined. We need to toggle the state of the bit, because Xen and * x86 use opposite senses (mask vs enable). */ -ENTRY(xen_save_fl_direct) +SYM_FUNC_START(xen_save_fl_direct) testb $0xff, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_mask setz %ah addb %ah, %ah ret - ENDPROC(xen_save_fl_direct) +SYM_FUNC_END(xen_save_fl_direct) /* @@ -73,7 +73,7 @@ ENTRY(xen_save_fl_direct) * interrupt mask state, it checks for unmasked pending events and * enters the hypervisor to get them delivered if so. */ -ENTRY(xen_restore_fl_direct) +SYM_FUNC_START(xen_restore_fl_direct) FRAME_BEGIN #ifdef CONFIG_X86_64 testw $X86_EFLAGS_IF, %di @@ -94,14 +94,14 @@ ENTRY(xen_restore_fl_direct) 1: FRAME_END ret - ENDPROC(xen_restore_fl_direct) +SYM_FUNC_END(xen_restore_fl_direct) /* * Force an event check by making a hypercall, but preserve regs * before making the call. */ -ENTRY(check_events) +SYM_FUNC_START(check_events) FRAME_BEGIN #ifdef CONFIG_X86_32 push %eax @@ -134,4 +134,4 @@ ENTRY(check_events) #endif FRAME_END ret -ENDPROC(check_events) +SYM_FUNC_END(check_events) diff --git a/arch/x86/xen/xen-asm_64.S b/arch/x86/xen/xen-asm_64.S index 5a3f5c18cd0c..dada73db402a 100644 --- a/arch/x86/xen/xen-asm_64.S +++ b/arch/x86/xen/xen-asm_64.S @@ -123,7 +123,7 @@ SYM_CODE_END(xen_sysret64) */ /* Normal 64-bit system call target */ -ENTRY(xen_syscall_target) +SYM_FUNC_START(xen_syscall_target) popq %rcx popq %r11 @@ -136,12 +136,12 @@ ENTRY(xen_syscall_target) movq $__USER_CS, 1*8(%rsp) jmp entry_SYSCALL_64_after_hwframe -ENDPROC(xen_syscall_target) +SYM_FUNC_END(xen_syscall_target) #ifdef CONFIG_IA32_EMULATION /* 32-bit compat syscall target */ -ENTRY(xen_syscall32_target) +SYM_FUNC_START(xen_syscall32_target) popq %rcx popq %r11 @@ -154,25 +154,25 @@ ENTRY(xen_syscall32_target) movq $__USER32_CS, 1*8(%rsp) jmp entry_SYSCALL_compat_after_hwframe -ENDPROC(xen_syscall32_target) +SYM_FUNC_END(xen_syscall32_target) /* 32-bit compat sysenter target */ -ENTRY(xen_sysenter_target) +SYM_FUNC_START(xen_sysenter_target) mov 0*8(%rsp), %rcx mov 1*8(%rsp), %r11 mov 5*8(%rsp), %rsp jmp entry_SYSENTER_compat -ENDPROC(xen_sysenter_target) +SYM_FUNC_END(xen_sysenter_target) #else /* !CONFIG_IA32_EMULATION */ SYM_FUNC_START_ALIAS(xen_syscall32_target) -ENTRY(xen_sysenter_target) +SYM_FUNC_START(xen_sysenter_target) lea 16(%rsp), %rsp /* strip %rcx, %r11 */ mov $-ENOSYS, %rax pushq $0 jmp hypercall_iret -ENDPROC(xen_sysenter_target) +SYM_FUNC_END(xen_sysenter_target) SYM_FUNC_END_ALIAS(xen_syscall32_target) #endif /* CONFIG_IA32_EMULATION */ diff --git a/include/linux/linkage.h b/include/linux/linkage.h index c84a6f244eb8..60236d3f4a06 100644 --- a/include/linux/linkage.h +++ b/include/linux/linkage.h @@ -105,11 +105,13 @@ /* === DEPRECATED annotations === */ +#ifndef CONFIG_X86_64 #ifndef ENTRY /* deprecated, use SYM_FUNC_START */ #define ENTRY(name) \ SYM_FUNC_START(name) #endif +#endif /* CONFIG_X86_64 */ #endif /* LINKER_SCRIPT */ #ifndef WEAK @@ -124,6 +126,7 @@ .size name, .-name #endif +#ifndef CONFIG_X86_64 /* If symbol 'name' is treated as a subroutine (gets called, and returns) * then please use ENDPROC to mark 'name' as STT_FUNC for the benefit of * static analysis tools such as stack depth analyzer. @@ -133,6 +136,7 @@ #define ENDPROC(name) \ SYM_FUNC_END(name) #endif +#endif /* CONFIG_X86_64 */ /* === generic annotations === */ -- 2.16.3