From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id D48A04CDFD for ; Fri, 30 Jan 2026 23:25:33 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'O+L+avXYtvtv4UUjuin9+4ZShkx2DZjEgS+EdFAfNnw=', expected b'38XtGkuZl1DqtoJuF7V6P4sZsM8oZBF8PG+kValLU5U=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1769815462; h=content-type : mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-transfer-encoding : from; bh=O+L+avXYtvtv4UUjuin9+4ZShkx2DZjEgS+EdFAfNnw=; b=eFlmPSpN+8aowL2rnBXB2mAgw/yrLoUCbAKm8VjZjOGXo7SJv054KuSQS835iWfwSEPCl yWRl1GtqyqF/rWzX9zbfxTPU0bOD1NOXXQwLdzlijWcz2YlfwW8xbxhc90FXNuLS9Bn3BRB 5GXu0jODOCXAKRanu7Pv07ScXsdYOgt8y2DZ7UkYl1TSc0PRlIajimZs4YkRx8mOfQLbGvo EBVsgmAF7nxkC2XIeeCMtiTrpaxukWiZNgq6gUvnkRf2mUHApPc8tSftyJ5aOQ5psLmd917 pJvO6HAgu2opZQH6FGz2xKIdxB+4W62cTDyiLooccUB5NWwWdc8a/WoQP22A== Received: from [172.20.0.4] (unknown [172.20.0.4]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id B42AF690FB2; Sat, 31 Jan 2026 01:24:22 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1769815351; b=aYH8btFIzxMSyeTZEKH1pb8Sj3KXktP2OhRCip7lez/qtQ9HiVp+GjKfWkB8vqMPyLZUZ yXpEdh+pnvdzVCeGsxdHVrnoXZKh0JpekKs/UUMhlA2q5kJK03i9UOx92iqz5GnOq5hfc6G dZa4G6NVO2qiWcccGFu0AtdPl+eSqPYD0Pl54sdnaaPLORirWCrLBkWUSGJiaAV8moqSqt5 g+qAuTSCvun7M4PgFlcfdRor00wOUeAMGOZtR+0ZrOeZfPYSiKXCzgZ0m7/Z6wz+WP3ogsk 1G9pjdbt7jNVudKhAJpetTarVFhxM7cyvM5FemuDJKNPKR0Xjfi0bW91PHaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1769815351; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=O+L+avXYtvtv4UUjuin9+4ZShkx2DZjEgS+EdFAfNnw=; b=TeqIbYpDaV8RVYfH8sZND0/J80BIs8Z7rY/4yrY9zBu+S/vgYl3GouBS4FtLGIOu/u3Z6 OIw86oaCTaM1vpK1zwUPcitgnjiOJ2EW0VuVbVxvVFKcX4pSzcN5I+22VvzKZ+4SLcOXUxp o7TGuEqtK+7DtjaUHlnxrs0qo84ZzZ9k5d37bYZjfnL7IbRbvLT+ri3lr7EMrK4uvuwINUz UfmiRoC4nkp39U6vs6bTEijhHzRjYXZbour6OlecRPd/JrLoZYqE23OQUSuAVRbgcRVRGSa +hknGqCecMTD9g04WFZB+AEYNeOkY8hFCO8cowM/yEnDxmUROHKGiM2WRPBA== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1769815341; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=38XtGkuZl1DqtoJuF7V6P4sZsM8oZBF8PG+kValLU5U=; b=NV+tVuQN2vFJ6f4RI39O0RvKkYxk715uc+3+iJ3NcNB/yvCWnCSkPvG3kGVnFMFA1+Us1 eDPvyQAvx8amRnpVEvLN7ZD1QcB+yCUWT6C/h724BnKgs5i6hIewyy+r+pGMtDX4V3zCu+W mjje8dOSEMx9DvGDvVP8xWRbGaIE8cUcLgt3++kx5L29yGRLDAZM0YkKWAz7HFZ+5hlzvEP japrki4JpzMWGxsHzcxEs+3a9l40DOWN3JbYaoAD7KYAH7K2Snb/9xMo/PGKcC4SPiO2YIz BzHPg5WgaijIDSA7TF9ZnLKBEurPeoww5Yo6rMUUuz8jFLvKIuqTS+mQQBzA== Received: from c8d966988b92 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 09DE6690F66 for ; Sat, 31 Jan 2026 01:22:21 +0200 (EET) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Fri, 30 Jan 2026 23:22:20 -0000 Message-ID: <176981534190.25.18378400071063638127@4457048688e7> Message-ID-Hash: E6FXPB53WFIDGGN52LTMQO3Z4NKENUXD X-Message-ID-Hash: E6FXPB53WFIDGGN52LTMQO3Z4NKENUXD X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PR] WIP: libavformat/movenc: Uses dynamic buffers for fragmented chunks (PR #21613) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: anthonybajoua via ffmpeg-devel Cc: anthonybajoua Content-Transfer-Encoding: base64 Archived-At: List-Archive: List-Post: UFIgIzIxNjEzIG9wZW5lZCBieSBhbnRob255YmFqb3VhClVSTDogaHR0cHM6Ly9jb2RlLmZmbXBl Zy5vcmcvRkZtcGVnL0ZGbXBlZy9wdWxscy8yMTYxMwpQYXRjaCBVUkw6IGh0dHBzOi8vY29kZS5m Zm1wZWcub3JnL0ZGbXBlZy9GRm1wZWcvcHVsbHMvMjE2MTMucGF0Y2gKCiMgUHJvYmxlbToNClRo ZXJlIGFyZSBmcmVxdWVudCBbcmVhbGxvY10oaHR0cHM6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25s aW5lcHVicy83OTA4Nzk5L3hzaC9yZWFsbG9jLmh0bWwpIGNhbGxzIGltcGxlbWVudGVkIHdoZW4g dXNpbmcgaHlicmlkL2ZyYWdtZW50ZWQgTVA0IGluIGNodW5raW5nLg0KDQoNCltUaGlzIHdhcyBk b25lIGZvciBNS1ZdKGh0dHBzOi8vZ2l0aHViLmNvbS9GRm1wZWcvRkZtcGVnL2NvbW1pdC80ZDk3 YjJhZDJmYTZkODUxYzcwZmQ5ODJhYjMwMGU0ZmQ1NTlmMWQwKSBidXQgaHlicmlkL2ZyYWdtZW50 ZWQgTVA0IG5vdGFibHkgaGF2ZSBpdCBtaXNzaW5nLg0KDQoNCiMgU29sdXRpb246DQpVc2VzIGBk eW5fYnVmYCBkaXJlY3RpdmVzIGluIG1hbmFnaW5nIGZyYWdtZW50ZWQsIGh5YnJpZCBNUDQgbWVt b3J5DQoNCg0KIyMgQXV0b21hdGVkDQpgYGANCi4vY29uZmlndXJlDQptYWtlDQptYWtlIGZhdGUt cnN5bmMgU0FNUExFUz1mYXRlLXN1aXRlDQptYWtlDQpgYGANCg0KIyMgTWFudWFsOg0KDQoNCmBg YA0KY3VybCBodHRwczovL2Rvd25sb2FkLmJsZW5kZXIub3JnL3BlYWNoL2JpZ2J1Y2tidW5ueV9t b3ZpZXMvQmlnQnVja0J1bm55XzMyMHgxODAubXA0IC1vIGJiYi5tcDQNCg0KLi9mZm1wZWcgLWkg YmJiLm1wNCAtYyBjb3B5IC1tb3ZmbGFncyBoeWJyaWRfZnJhZ21lbnRlZCtkZWxheV9tb292IG91 dC5tcDQNCg0KLi9mZnByb2JlIG91dC5tcDQNCmBgYAoKCkZyb20gOGUxN2FmYTQ1Njg3OTk2NzUy Mzg4MzAxZDIyN2M1ZWFhMDc5MDNmOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW50 aG9ueSBCYWpvdWEgPGFudGhvbnliYWpvdWFAbWV0YS5jb20+CkRhdGU6IE1vbiwgMTcgTm92IDIw MjUgMjI6NDU6NTMgLTA4MDAKU3ViamVjdDogW1BBVENIIDAwMS8zMDRdIGxpYmF2Zm9ybWF0L21v djogRml4ZXMgaW5kaXZpZHVhbCB0cmFjayBkdXJhdGlvbiBvbgogZnJhZ21lbnRlZCBmaWxlcwoK LS0tCiBsaWJhdmZvcm1hdC9tb3YuYyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvbW92LmMgYi9s aWJhdmZvcm1hdC9tb3YuYwppbmRleCBlYWI5Zjc5NTc3Li43MjFmZmRjY2EwIDEwMDY0NAotLS0g YS9saWJhdmZvcm1hdC9tb3YuYworKysgYi9saWJhdmZvcm1hdC9tb3YuYwpAQCAtNjE4Myw3ICs2 MTgzLDggQEAgc3RhdGljIGludCBtb3ZfcmVhZF9zaWR4KE1PVkNvbnRleHQgKmMsIEFWSU9Db250 ZXh0ICpwYiwgTU9WQXRvbSBhdG9tKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAg ICAgYy0+ZnJhZ19pbmRleC5jb21wbGV0ZSA9IDE7CisgICAgICAgIGlmIChvZmZhZGQgPT0gMCkK KyAgICAgICAgICAgIGMtPmZyYWdfaW5kZXguY29tcGxldGUgPSAxOwogICAgIH0KIAogICAgIHJl dHVybiAwOwotLSAKMi41Mi4wCgoKRnJvbSBmNDI3Y2MxZTc3OTYzODlhZGU3MmUzOTFiNGNhOTcw ZGI3MDBmZTE3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/S2FjcGVy PTIwTWljaGFqPUM1PTgyb3c/PSA8a2FzcGVyOTNAZ21haWwuY29tPgpEYXRlOiBNb24sIDE3IE5v diAyMDI1IDE5OjU3OjMxICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMDIvMzA0XSBmYXRlOiBhZGQg bW9yZSBjb25maWd1cmUgZmxhZ3MgdG8gZmF0ZSBjb25maWcKTUlNRS1WZXJzaW9uOiAxLjAKQ29u dGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5j b2Rpbmc6IDhiaXQKClNpZ25lZC1vZmYtYnk6IEthY3BlciBNaWNoYWrFgm93IDxrYXNwZXI5M0Bn bWFpbC5jb20+Ci0tLQogdGVzdHMvZmF0ZS5zaCB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQsIDQg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2ZhdGUuc2ggYi90ZXN0cy9mYXRlLnNo CmluZGV4IDQwODFlODY1YWUuLjJkNjMxMzgyMGYgMTAwNzU1Ci0tLSBhL3Rlc3RzL2ZhdGUuc2gK KysrIGIvdGVzdHMvZmF0ZS5zaApAQCAtNTUsMTMgKzU1LDE3IEBAIGNvbmZpZ3VyZSgpKAogICAg ICAgICAke2Nyb3NzX3ByZWZpeDorLS1jcm9zcy1wcmVmaXg9IiRjcm9zc19wcmVmaXgifSAgICAg ICAgICAgICAgICAgXAogICAgICAgICAke2FzOistLWFzPSIkYXMifSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAke2NjOistLWNjPSIkY2Mi fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg ICAke2N4eDorLS1jeHg9IiRjeHgifSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAogICAgICAgICAke2xkOistLWxkPSIkbGQifSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAke25tOistLW5tPSIkbm0ifSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAk e3RhcmdldF9vczorLS10YXJnZXQtb3M9IiR0YXJnZXRfb3MifSAgICAgICAgICAgICAgICAgICAg ICAgICAgXAogICAgICAgICAke3N5c3Jvb3Q6Ky0tc3lzcm9vdD0iJHN5c3Jvb3QifSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAke3RhcmdldF9leGVjOistLXRhcmdl dC1leGVjPSIkdGFyZ2V0X2V4ZWMifSAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAke3Rh cmdldF9wYXRoOistLXRhcmdldC1wYXRoPSIkdGFyZ2V0X3BhdGgifSAgICAgICAgICAgICAgICAg ICAgXAogICAgICAgICAke3RhcmdldF9zYW1wbGVzOistLXRhcmdldC1zYW1wbGVzPSIkdGFyZ2V0 X3NhbXBsZXMifSAgICAgICAgICAgXAogICAgICAgICAke2V4dHJhX2NmbGFnczorLS1leHRyYS1j ZmxhZ3M9IiRleHRyYV9jZmxhZ3MifSAgICAgICAgICAgICAgICAgXAorICAgICAgICAke2V4dHJh X2N4eGZsYWdzOistLWV4dHJhLWN4eGZsYWdzPSIkZXh0cmFfY3h4ZmxhZ3MifSAgICAgICAgICAg XAorICAgICAgICAke2V4dHJhX29iamNmbGFnczorLS1leHRyYS1vYmpjZmxhZ3M9IiRleHRyYV9v YmpjZmxhZ3MifSAgICAgICAgXAogICAgICAgICAke2V4dHJhX2xkZmxhZ3M6Ky0tZXh0cmEtbGRm bGFncz0iJGV4dHJhX2xkZmxhZ3MifSAgICAgICAgICAgICAgXAogICAgICAgICAke2V4dHJhX2xp YnM6Ky0tZXh0cmEtbGlicz0iJGV4dHJhX2xpYnMifSAgICAgICAgICAgICAgICAgICAgICAgXAog ICAgICAgICAke2V4dHJhX2NvbmZ9Ci0tIAoyLjUyLjAKCgpGcm9tIDVmMGM4N2UxMTYwNzk2OTRi ZGFlZTlkMzlmN2RhNGY4NDMxMGJlNDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/ VVRGLTg/cT9LYWNwZXI9MjBNaWNoYWo9QzU9ODJvdz89IDxrYXNwZXI5M0BnbWFpbC5jb20+CkRh dGU6IE1vbiwgMTcgTm92IDIwMjUgMjE6MjA6MTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDAwMy8z MDRdIGNvbmZpZ3VyZTogZmlsdGVyIG91dCAtZ3VhcmQ6c2lnbnJldCBmcm9tIGFybWFzbQogZmxh Z3MKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU Ri04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCldoaWxlIGNsLmV4ZSBzdXBwb3J0 cyAtZ3VhcmQ6c2lnbnJldCwgYXJtYXNtNjQgY29tcGxhaW5zIGFib3V0CnVua25vd24gZmxhZy4g Tm90ZSB0aGF0IC1ndWFyZDplaGNvbnQgaXMgYWNjZXB0ZWQgYnkgYXJtYXNtNjQuCgpGaXhlczoK ZXJyb3IgQTIwMjk6IHVua25vd24gY29tbWFuZC1saW5lIGFyZ3VtZW50IG9yIGFyZ3VtZW50IHZh bHVlIC1ndWFyZDpzaWducmV0CgpTaWduZWQtb2ZmLWJ5OiBLYWNwZXIgTWljaGFqxYJvdyA8a2Fz cGVyOTNAZ21haWwuY29tPgotLS0KIGNvbmZpZ3VyZSB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IDQ0 MWJkYzkzNzMuLmUyY2FmM2IyNGMgMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysgYi9jb25maWd1 cmUKQEAgLTQ5NjgsNiArNDk2OCw3IEBAIGFybWFzbV9mbGFncygpewogICAgICAgICAgICAgIyBG aWx0ZXIgb3V0IE1TVkMgY2wuZXhlIG9wdGlvbnMgZnJvbSBjZmxhZ3MgdGhhdCBzaG91bGRuJ3QK ICAgICAgICAgICAgICMgYmUgcGFzc2VkIHRvIGdhcy1wcmVwcm9jZXNzb3IKICAgICAgICAgICAg IC1NW1REXSopICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7Owor ICAgICAgICAgICAgLWd1YXJkOnNpZ25yZXQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDs7CiAgICAgICAgICAgICAqKSAgICAgICAgICAgICAgICAgIGVjaG8gJGZsYWcgICAg ICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgZXNhYwogICAgZG9uZQotLSAKMi41Mi4wCgoK RnJvbSAyMzc3NmI4NTliYmI1YWMzZjhhNTA2YzZhM2FlYzBiN2U3ZDVlNDA2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHeWFuIERvc2hpIDxmZm1wZWdAZ3lhbmkucHJvPgpEYXRlOiBT dW4sIDE2IE5vdiAyMDI1IDEwOjI0OjM4ICswNTMwClN1YmplY3Q6IFtQQVRDSCAwMDQvMzA0XSBk b2MvZmF0ZTogZG9jdW1lbnQgc2V0dGluZyBvZiBzZXNzaW9uLXdpZGUgZW52CiB2YXJpYWJsZXMK Ci0tLQogZG9jL2ZhdGUudGV4aSB8IDEyICsrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDEw IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2ZhdGUudGV4 aSBiL2RvYy9mYXRlLnRleGkKaW5kZXggNTcyNjhkNDRiNC4uMTJjODg0MDQ3YyAxMDA2NDQKLS0t IGEvZG9jL2ZhdGUudGV4aQorKysgYi9kb2MvZmF0ZS50ZXhpCkBAIC02NSw3ICs2NSw3IEBAIG1h a2UgZmF0ZQogU2VlIEByZWZ7bWFrZWZpbGUgdmFyaWFibGVzfSBmb3IgYSBsaXN0IG9mIGFyZ3Vt ZW50cyB0aGF0IGNhbiBiZSBhZGRlZC4KIAogSWYgeW91IGRpZCBub3Qgc2V0IHRoZSBzYW1wbGVz IHBhdGggZHVyaW5nIGNvbmZpZ3VyYXRpb24sIG9yIGlmIHlvdSB3aXNoIHRvCi1vdmVycmlkZSBp dCBqdXN0IGJlZm9yZSBzdGFydGluZyBGQVRFLCB5b3UgY2FuIGRvIHNvIGluIG9uZSBvZiB0d28g d2F5cy4KK292ZXJyaWRlIGl0IGp1c3QgYmVmb3JlIHN0YXJ0aW5nIEZBVEUsIHlvdSBjYW4gZG8g c28gaW4gb25lIG9mIHRocmVlIHdheXMuCiAKIEVpdGhlciBieSBzZXR0aW5nIGEgbWFrZSB2YXJp YWJsZToKIApAQCAtNzQsNyArNzQsMTUgQEAgbWFrZSBmYXRlLXJzeW5jIFNBTVBMRVM9L3BhdGgv dG8vZmF0ZS1zdWl0ZQogbWFrZSBmYXRlICAgICAgIFNBTVBMRVM9L3BhdGgvdG8vZmF0ZS1zdWl0 ZQogQGVuZCBleGFtcGxlCiAKLW9yIGJ5IHByZXBlbmRpbmcgYW4gZW52aXJvbm1lbnQgdmFyaWFi bGU6CitvciBieSBzZXR0aW5nIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIGZvciB0aGUgY3VycmVu dCBzZXNzaW9uOgorCitAZXhhbXBsZQorZXhwb3J0IEZBVEVfU0FNUExFUz0vcGF0aC90by9mYXRl LXN1aXRlCittYWtlIGZhdGUtcnN5bmMKK21ha2UgZmF0ZQorQGVuZCBleGFtcGxlCisKK29yIGlu IGlzb2xhdGlvbiBmb3IgYSBzaW5nbGUgY29tbWFuZCBieSBwcmVwZW5kaW5nIGl0OgogCiBAZXhh bXBsZQogRkFURV9TQU1QTEVTPS9wYXRoL3RvL2ZhdGUtc3VpdGUgbWFrZSBmYXRlLXJzeW5jCi0t IAoyLjUyLjAKCgpGcm9tIDJmYTUzMTM1NWFiNmQ5YTMzYWY2ZmJiMTMxZjExMmNhNmNhOTRiODgg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENhcmwgSGV0aGVyaW5ndG9uIHZpYSBmZm1w ZWctZGV2ZWwgPGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnPgpEYXRlOiBNb24sIDMgTm92IDIwMjUg MjA6Mzg6NTcgKzAwMDAKU3ViamVjdDogW1BBVENIIDAwNS8zMDRdIGF2ZmlsdGVyL2ZfZWJ1cjEy ODogRml4IGluY29ycmVjdCBlYnVyMTI4IHBlYWsKIGNhbGN1bGF0aW9uLgoKU2luY2UgM2IyNmI3 ODJlZWRlZDliOWFiN2ZhYzAxM2NkMWE4M2EzMGQ2ODIwNiBpdCB3b3VsZCBvbmx5IGxvb2sgYXQg dGhlCmZpcnN0IGNoYW5uZWwuCgpTaWduZWQtb2ZmLWJ5OiBDYXJsIEhldGhlcmluZ3RvbiA8Y3Ro QGNhcmxoLm5ldD4KUmV2aWV3ZWQtYnk6IE5pa2xhcyBIYWFzIDxmZm1wZWdAaGFhc24ueHl6Pgot LS0KIGxpYmF2ZmlsdGVyL2ZfZWJ1cjEyOC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvZl9lYnVy MTI4LmMgYi9saWJhdmZpbHRlci9mX2VidXIxMjguYwppbmRleCBhMzUyZjM4MzFmLi44NGQ4ZTQ0 MDM1IDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci9mX2VidXIxMjguYworKysgYi9saWJhdmZpbHRl ci9mX2VidXIxMjguYwpAQCAtNjU3LDcgKzY1Nyw3IEBAIGRvdWJsZSBmZl9lYnVyMTI4X2ZpbmRf cGVha19jKGRvdWJsZSAqcmVzdHJpY3QgY2hfcGVha3MsIGNvbnN0IGludCBuYl9jaGFubmVscywK ICAgICBmb3IgKGludCBjaCA9IDA7IGNoIDwgbmJfY2hhbm5lbHM7IGNoKyspIHsKICAgICAgICAg ZG91YmxlIGNoX3BlYWsgPSBjaF9wZWFrc1tjaF07CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBp IDwgbmJfc2FtcGxlczsgaSsrKSB7Ci0gICAgICAgICAgICBjb25zdCBkb3VibGUgc2FtcGxlID0g ZmFicyhzYW1wbGVzW2kgKiBuYl9jaGFubmVsc10pOworICAgICAgICAgICAgY29uc3QgZG91Ymxl IHNhbXBsZSA9IGZhYnMoc2FtcGxlc1tpICogbmJfY2hhbm5lbHMgKyBjaF0pOwogICAgICAgICAg ICAgY2hfcGVhayA9IEZGTUFYKGNoX3BlYWssIHNhbXBsZSk7CiAgICAgICAgIH0KICAgICAgICAg bWF4cGVhayA9IEZGTUFYKG1heHBlYWssIGNoX3BlYWspOwotLSAKMi41Mi4wCgoKRnJvbSA5YTA2 OGE0YjViOTFiOTkxN2U1YzZmZmM4MzMyN2M2ZmIxNWZjZmIzIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBNYXJ2aW4gU2Nob2x6IDxlcGlyYXQwN0BnbWFpbC5jb20+CkRhdGU6IFR1ZSwg MTggTm92IDIwMjUgMTU6MTc6MDUgKzAxMDAKU3ViamVjdDogW1BBVENIIDAwNi8zMDRdIC5mb3Jn ZWpvL0NPREVPV05FUlM6IGFkZCBteXNlbGYgdG8gVmlkZW9Ub29sYm94IGFuZAogSWNlY2FzdAoK LS0tCiAuZm9yZ2Vqby9DT0RFT1dORVJTIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2Vy dGlvbnMoKykKCmRpZmYgLS1naXQgYS8uZm9yZ2Vqby9DT0RFT1dORVJTIGIvLmZvcmdlam8vQ09E RU9XTkVSUwppbmRleCBkOGZmYTI3NDI2Li40NWY1MDFhNGMzIDEwMDY0NAotLS0gYS8uZm9yZ2Vq by9DT0RFT1dORVJTCisrKyBiLy5mb3JnZWpvL0NPREVPV05FUlMKQEAgLTYyLDYgKzYyLDcgQEAg bGliYXZjb2RlYy9zbXB0ZV80MzZtLiogQHByb2dyYW1tZXJqYWtlCiBsaWJhdmNvZGVjL3N2cTEu KiBAcHJvc3MKIGxpYmF2Y29kZWMvc3ZxMy4qIEBwcm9zcwogbGliYXZjb2RlYy8uKnZjMi4qIEBs eW5uZQorbGliYXZjb2RlYy92aWRlb3Rvb2xib3guKiBAZVBpcmF0CiBsaWJhdmNvZGVjL3ZwMy4q IEBwcm9zcwogbGliYXZjb2RlYy92cDQuKiBAcHJvc3MKIGxpYmF2Y29kZWMvdnA1LiogQHByb3Nz CkBAIC0xMzQsNiArMTM1LDcgQEAgbGliYXZmb3JtYXQvLipleGlmLiogQFRyYW5lcHRvcmEKIGxp YmF2Zm9ybWF0L2ZpbG1zdHJpcC4qIEBwcm9zcwogbGliYXZmb3JtYXQvZnJtLiogQHByb3NzCiBs aWJhdmZvcm1hdC9pYW1mLiogQGphbXJpYWwKK2xpYmF2Zm9ybWF0L2ljZWNhc3QuYyBAZVBpcmF0 CiBsaWJhdmZvcm1hdC9pY28uKiBAcHJvc3MKIGxpYmF2Zm9ybWF0L2lmZi4qIEBwcm9zcwogbGli YXZmb3JtYXQvLipqcGVneGwuKiBAVHJhbmVwdG9yYQpAQCAtMTY1LDYgKzE2Nyw3IEBAIGxpYmF2 dXRpbC9maWxtX2dyYWluLiogQGhhYXNuCiBsaWJhdnV0aWwvZG92aV9tZXRhLiogQGhhYXNuCiBs aWJhdnV0aWwvaHdjb250ZXh0X29oLiogQHF1aW5rCiBsaWJhdnV0aWwvaHdjb250ZXh0X21lZGlh Y29kZWMuKiBAcXVpbmsKK2xpYmF2dXRpbC9od2NvbnRleHRfdmlkZW90b29sYm94LiogQGVQaXJh dAogbGliYXZ1dGlsL2lhbWYuKiBAamFtcmlhbAogbGliYXZ1dGlsL2ludGVnZXIuKiBAbWljaGFl bG5pCiBsaWJhdnV0aWwvbGZnLiogQG1pY2hhZWxuaQotLSAKMi41Mi4wCgoKRnJvbSBhNWVmODc4 MGEyZWE2Y2E3NTJlM2I3NWNkYmMxMjEzMDhhYTdkOGI2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNv bT4KRGF0ZTogU2F0LCAxNSBOb3YgMjAyNSAxNjoxODoxNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDA3LzMwNF0gYXZjb2RlYy94ODYvbXBlZ3ZpZGVvZW5jOiBSZW1vdmUgY2hlY2sgZm9yIE1NWAoK UmV2aWV3ZWQtYnk6IEx5bm5lIDxkZXZAbHlubmUuZWU+ClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMg UmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIGxpYmF2Y29k ZWMveDg2L21wZWd2aWRlb2VuYy5jIHwgNCArLS0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvbXBlZ3Zp ZGVvZW5jLmMgYi9saWJhdmNvZGVjL3g4Ni9tcGVndmlkZW9lbmMuYwppbmRleCBlYWM5OTQ3NTkw Li5iYjFkMmNjMzE5IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4Ni9tcGVndmlkZW9lbmMuYwor KysgYi9saWJhdmNvZGVjL3g4Ni9tcGVndmlkZW9lbmMuYwpAQCAtMTIzLDE2ICsxMjMsMTQgQEAg YXZfY29sZCB2b2lkIGZmX2RjdF9lbmNvZGVfaW5pdF94ODYoTVBWRW5jQ29udGV4dCAqY29uc3Qg cykKICAgICBjb25zdCBpbnQgZGN0X2FsZ28gPSBzLT5jLmF2Y3R4LT5kY3RfYWxnbzsKIAogICAg IGlmIChkY3RfYWxnbyA9PSBGRl9EQ1RfQVVUTyB8fCBkY3RfYWxnbyA9PSBGRl9EQ1RfTU1YKSB7 Ci0jaWYgSEFWRV9NTVhfSU5MSU5FCi0gICAgICAgIGludCBjcHVfZmxhZ3MgPSBhdl9nZXRfY3B1 X2ZsYWdzKCk7CiAjaWYgSEFWRV9TU0UyX0lOTElORQorICAgICAgICBpbnQgY3B1X2ZsYWdzID0g YXZfZ2V0X2NwdV9mbGFncygpOwogICAgICAgICBpZiAoSU5MSU5FX1NTRTIoY3B1X2ZsYWdzKSkg ewogI2lmIEhBVkVfNlJFR1MKICAgICAgICAgICAgIHMtPmRjdF9xdWFudGl6ZSA9IGRjdF9xdWFu dGl6ZV9zc2UyOwogI2VuZGlmCiAgICAgICAgICAgICBzLT5kZW5vaXNlX2RjdCAgPSBkZW5vaXNl X2RjdF9zc2UyOwogICAgICAgICB9Ci0jZW5kaWYKICNpZiBIQVZFXzZSRUdTICYmIEhBVkVfU1NT RTNfSU5MSU5FCiAgICAgICAgIGlmIChJTkxJTkVfU1NTRTMoY3B1X2ZsYWdzKSkKICAgICAgICAg ICAgIHMtPmRjdF9xdWFudGl6ZSA9IGRjdF9xdWFudGl6ZV9zc3NlMzsKLS0gCjIuNTIuMAoKCkZy b20gYTMxOTFmMmY5MDA5ODQyN2Y4Y2EzMzEwNmEyODVhMmM1YWZjMGY4MCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRA b3V0bG9vay5jb20+CkRhdGU6IFNhdCwgMTUgTm92IDIwMjUgMTY6NDY6MTggKzAxMDAKU3ViamVj dDogW1BBVENIIDAwOC8zMDRdIGF2Y29kZWMveDg2L21wZWd2aWRlb2VuYzogUmVkdWNlIG51bWJl ciBvZiByZWdpc3RlcnMKIHVzZWQKCkF2b2lkcyBhIHB1c2grcG9wIG9uIHg2NCBXaW5kb3dzLgoK UmV2aWV3ZWQtYnk6IEx5bm5lIDxkZXZAbHlubmUuZWU+ClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMg UmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIGxpYmF2Y29k ZWMveDg2L21wZWd2aWRlb2VuYy5jIHwgMTggKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgOSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2 Y29kZWMveDg2L21wZWd2aWRlb2VuYy5jIGIvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVvZW5jLmMK aW5kZXggYmIxZDJjYzMxOS4uMmNhMDVmNjllYSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYv bXBlZ3ZpZGVvZW5jLmMKKysrIGIvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVvZW5jLmMKQEAgLTY4 LDcgKzY4LDcgQEAgc3RhdGljIHZvaWQgZGVub2lzZV9kY3Rfc3NlMihNUFZFbmNDb250ZXh0ICpj b25zdCBzLCBpbnQxNl90IGJsb2NrW10pCiAgICAgcy0+ZGN0X2NvdW50W2ludHJhXSsrOwogCiAg ICAgX19hc21fXyB2b2xhdGlsZSgKLSAgICAgICAgInB4b3IgJSV4bW03LCAlJXhtbTcgICAgICAg ICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICJweG9yICUleG1tNiwgJSV4bW02ICAgICAgICAg ICAgICAgICAgICBcblx0IgogICAgICAgICAiMTogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG5cdCIKICAgICAgICAgInB4b3IgJSV4bW0wLCAlJXhtbTAgICAgICAgICAgICAg ICAgICAgIFxuXHQiCiAgICAgICAgICJweG9yICUleG1tMSwgJSV4bW0xICAgICAgICAgICAgICAg ICAgICBcblx0IgpAQCAtOTAsMTggKzkwLDE4IEBAIHN0YXRpYyB2b2lkIGRlbm9pc2VfZGN0X3Nz ZTIoTVBWRW5jQ29udGV4dCAqY29uc3QgcywgaW50MTZfdCBibG9ja1tdKQogICAgICAgICAicHN1 YncgJSV4bW0xLCAlJXhtbTMgICAgICAgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgIm1vdmRx YSAlJXhtbTIsICglMCkgICAgICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICJtb3ZkcWEg JSV4bW0zLCAxNiglMCkgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAibW92ZHFhICUl eG1tNCwgJSV4bW02ICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgIm1vdmRxYSAlJXht bTQsICUleG1tMiAgICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICJtb3ZkcWEgJSV4bW01 LCAlJXhtbTAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAicHVucGNrbHdkICUleG1t NywgJSV4bW00ICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgInB1bnBja2h3ZCAlJXhtbTcs ICUleG1tNiAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICJwdW5wY2tsd2QgJSV4bW03LCAl JXhtbTUgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAicHVucGNraHdkICUleG1tNywgJSV4 bW0wICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgInB1bnBja2x3ZCAlJXhtbTYsICUleG1t NCAgICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICJwdW5wY2tod2QgJSV4bW02LCAlJXhtbTIg ICAgICAgICAgICAgICBcblx0IgorICAgICAgICAicHVucGNrbHdkICUleG1tNiwgJSV4bW01ICAg ICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgInB1bnBja2h3ZCAlJXhtbTYsICUleG1tMCAgICAg ICAgICAgICAgIFxuXHQiCiAgICAgICAgICJwYWRkZCAoJTEpLCAlJXhtbTQgICAgICAgICAgICAg ICAgICAgICBcblx0IgotICAgICAgICAicGFkZGQgMTYoJTEpLCAlJXhtbTYgICAgICAgICAgICAg ICAgICAgXG5cdCIKKyAgICAgICAgInBhZGRkIDE2KCUxKSwgJSV4bW0yICAgICAgICAgICAgICAg ICAgIFxuXHQiCiAgICAgICAgICJwYWRkZCAzMiglMSksICUleG1tNSAgICAgICAgICAgICAgICAg ICBcblx0IgogICAgICAgICAicGFkZGQgNDgoJTEpLCAlJXhtbTAgICAgICAgICAgICAgICAgICAg XG5cdCIKICAgICAgICAgIm1vdmRxYSAlJXhtbTQsICglMSkgICAgICAgICAgICAgICAgICAgIFxu XHQiCi0gICAgICAgICJtb3ZkcWEgJSV4bW02LCAxNiglMSkgICAgICAgICAgICAgICAgICBcblx0 IgorICAgICAgICAibW92ZHFhICUleG1tMiwgMTYoJTEpICAgICAgICAgICAgICAgICAgXG5cdCIK ICAgICAgICAgIm1vdmRxYSAlJXhtbTUsIDMyKCUxKSAgICAgICAgICAgICAgICAgIFxuXHQiCiAg ICAgICAgICJtb3ZkcWEgJSV4bW0wLCA0OCglMSkgICAgICAgICAgICAgICAgICBcblx0IgogICAg ICAgICAiYWRkICQzMiwgJTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKQEAgLTEx Miw3ICsxMTIsNyBAQCBzdGF0aWMgdm9pZCBkZW5vaXNlX2RjdF9zc2UyKE1QVkVuY0NvbnRleHQg KmNvbnN0IHMsIGludDE2X3QgYmxvY2tbXSkKICAgICAgICAgOiAiK3IiIChibG9jayksICIrciIg KHN1bSksICIrciIgKG9mZnNldCkKICAgICAgICAgOiAiciIoYmxvY2srNjQpCiAgICAgICAgICAg WE1NX0NMT0JCRVJTX09OTFkoIiV4bW0wIiwgIiV4bW0xIiwgIiV4bW0yIiwgIiV4bW0zIiwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiJXhtbTQiLCAiJXhtbTUiLCAiJXhtbTYiLCAiJXht bTciKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIleG1tNCIsICIleG1tNSIsICIleG1t NiIpCiAgICAgKTsKIH0KICNlbmRpZiAvKiBIQVZFX1NTRTJfSU5MSU5FICovCi0tIAoyLjUyLjAK CgpGcm9tIGRjNTJhY2Q2OTE4MjdhNWY5MjllZDBlZTI4NjRiZjMzMTYxMDlkOTYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhh cmR0QG91dGxvb2suY29tPgpEYXRlOiBTYXQsIDE1IE5vdiAyMDI1IDE3OjMyOjI5ICswMTAwClN1 YmplY3Q6IFtQQVRDSCAwMDkvMzA0XSBhdmNvZGVjL3g4Ni9tcGVndmlkZW9lbmM6IFBvcnQgZGVu b2lzZV9kY3Rfc3NlMiB0bwogZXh0ZXJuYWwgYXNzZW1ibHkKClJldmlld2VkLWJ5OiBMeW5uZSA8 ZGV2QGx5bm5lLmVlPgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMu cmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KLS0tCiBsaWJhdmNvZGVjL3g4Ni9tcGVndmlkZW9lbmMu YyAgICAgIHwgNTkgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBsaWJhdmNvZGVjL3g4 Ni9tcGVndmlkZW9lbmNkc3AuYXNtIHwgNDYgKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmls ZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgNTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVvZW5jLmMgYi9saWJhdmNvZGVjL3g4Ni9tcGVndmlk ZW9lbmMuYwppbmRleCAyY2EwNWY2OWVhLi5lNTY2NWFjNzgxIDEwMDY0NAotLS0gYS9saWJhdmNv ZGVjL3g4Ni9tcGVndmlkZW9lbmMuYworKysgYi9saWJhdmNvZGVjL3g4Ni9tcGVndmlkZW9lbmMu YwpAQCAtNTcsOCArNTcsMTAgQEAgREVDTEFSRV9BTElHTkVEKDE2LCBzdGF0aWMgY29uc3QgdWlu dDE2X3QsIGludl96aWd6YWdfZGlyZWN0MTYpWzY0XSA9IHsKIAogI2VuZGlmIC8qIEhBVkVfNlJF R1MgKi8KIAotI2lmIEhBVkVfSU5MSU5FX0FTTQotI2lmIEhBVkVfU1NFMl9JTkxJTkUKKyNpZiBI QVZFX1NTRTJfRVhURVJOQUwKK3ZvaWQgZmZfbXB2X2Rlbm9pc2VfZGN0X3NzZTIoaW50MTZfdCBi bG9ja1s2NF0sIGludCBkY3RfZXJyb3Jfc3VtWzY0XSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgdWludDE2X3QgZGN0X29mZnNldFs2NF0pOworCiBzdGF0aWMgdm9pZCBkZW5v aXNlX2RjdF9zc2UyKE1QVkVuY0NvbnRleHQgKmNvbnN0IHMsIGludDE2X3QgYmxvY2tbXSkKIHsK ICAgICBjb25zdCBpbnQgaW50cmEgPSBzLT5jLm1iX2ludHJhOwpAQCAtNjcsNTYgKzY5LDkgQEAg c3RhdGljIHZvaWQgZGVub2lzZV9kY3Rfc3NlMihNUFZFbmNDb250ZXh0ICpjb25zdCBzLCBpbnQx Nl90IGJsb2NrW10pCiAKICAgICBzLT5kY3RfY291bnRbaW50cmFdKys7CiAKLSAgICBfX2FzbV9f IHZvbGF0aWxlKAotICAgICAgICAicHhvciAlJXhtbTYsICUleG1tNiAgICAgICAgICAgICAgICAg ICAgXG5cdCIKLSAgICAgICAgIjE6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuXHQiCi0gICAgICAgICJweG9yICUleG1tMCwgJSV4bW0wICAgICAgICAgICAgICAgICAgICBc blx0IgotICAgICAgICAicHhvciAlJXhtbTEsICUleG1tMSAgICAgICAgICAgICAgICAgICAgXG5c dCIKLSAgICAgICAgIm1vdmRxYSAoJTApLCAlJXhtbTIgICAgICAgICAgICAgICAgICAgIFxuXHQi Ci0gICAgICAgICJtb3ZkcWEgMTYoJTApLCAlJXhtbTMgICAgICAgICAgICAgICAgICBcblx0Igot ICAgICAgICAicGNtcGd0dyAlJXhtbTIsICUleG1tMCAgICAgICAgICAgICAgICAgXG5cdCIKLSAg ICAgICAgInBjbXBndHcgJSV4bW0zLCAlJXhtbTEgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAg ICAgICJweG9yICUleG1tMCwgJSV4bW0yICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAg ICAicHhvciAlJXhtbTEsICUleG1tMyAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAg InBzdWJ3ICUleG1tMCwgJSV4bW0yICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICJw c3VidyAlJXhtbTEsICUleG1tMyAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAibW92 ZHFhICUleG1tMiwgJSV4bW00ICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgIm1vdmRx YSAlJXhtbTMsICUleG1tNSAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICJwc3VidXN3 ICglMiksICUleG1tMiAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAicHN1YnVzdyAx NiglMiksICUleG1tMyAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgInB4b3IgJSV4bW0w LCAlJXhtbTIgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICJweG9yICUleG1tMSwg JSV4bW0zICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAicHN1YncgJSV4bW0wLCAl JXhtbTIgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgInBzdWJ3ICUleG1tMSwgJSV4 bW0zICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICJtb3ZkcWEgJSV4bW0yLCAoJTAp ICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAibW92ZHFhICUleG1tMywgMTYoJTAp ICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgIm1vdmRxYSAlJXhtbTQsICUleG1tMiAg ICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICJtb3ZkcWEgJSV4bW01LCAlJXhtbTAgICAg ICAgICAgICAgICAgICBcblx0IgotICAgICAgICAicHVucGNrbHdkICUleG1tNiwgJSV4bW00ICAg ICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgInB1bnBja2h3ZCAlJXhtbTYsICUleG1tMiAgICAg ICAgICAgICAgIFxuXHQiCi0gICAgICAgICJwdW5wY2tsd2QgJSV4bW02LCAlJXhtbTUgICAgICAg ICAgICAgICBcblx0IgotICAgICAgICAicHVucGNraHdkICUleG1tNiwgJSV4bW0wICAgICAgICAg ICAgICAgXG5cdCIKLSAgICAgICAgInBhZGRkICglMSksICUleG1tNCAgICAgICAgICAgICAgICAg ICAgIFxuXHQiCi0gICAgICAgICJwYWRkZCAxNiglMSksICUleG1tMiAgICAgICAgICAgICAgICAg ICBcblx0IgotICAgICAgICAicGFkZGQgMzIoJTEpLCAlJXhtbTUgICAgICAgICAgICAgICAgICAg XG5cdCIKLSAgICAgICAgInBhZGRkIDQ4KCUxKSwgJSV4bW0wICAgICAgICAgICAgICAgICAgIFxu XHQiCi0gICAgICAgICJtb3ZkcWEgJSV4bW00LCAoJTEpICAgICAgICAgICAgICAgICAgICBcblx0 IgotICAgICAgICAibW92ZHFhICUleG1tMiwgMTYoJTEpICAgICAgICAgICAgICAgICAgXG5cdCIK LSAgICAgICAgIm1vdmRxYSAlJXhtbTUsIDMyKCUxKSAgICAgICAgICAgICAgICAgIFxuXHQiCi0g ICAgICAgICJtb3ZkcWEgJSV4bW0wLCA0OCglMSkgICAgICAgICAgICAgICAgICBcblx0IgotICAg ICAgICAiYWRkICQzMiwgJTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAg ICAgImFkZCAkNjQsICUxICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAg ICJhZGQgJDMyLCAlMiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAi Y21wICUzLCAlMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAg ICIgamIgMWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgIDogIity IiAoYmxvY2spLCAiK3IiIChzdW0pLCAiK3IiIChvZmZzZXQpCi0gICAgICAgIDogInIiKGJsb2Nr KzY0KQotICAgICAgICAgIFhNTV9DTE9CQkVSU19PTkxZKCIleG1tMCIsICIleG1tMSIsICIleG1t MiIsICIleG1tMyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIiV4bW00IiwgIiV4bW01 IiwgIiV4bW02IikKLSAgICApOworICAgIGZmX21wdl9kZW5vaXNlX2RjdF9zc2UyKGJsb2NrLCBz dW0sIG9mZnNldCk7CiB9Ci0jZW5kaWYgLyogSEFWRV9TU0UyX0lOTElORSAqLwotI2VuZGlmIC8q IEhBVkVfSU5MSU5FX0FTTSAqLworI2VuZGlmIC8qIEhBVkVfU1NFMl9FWFRFUk5BTCAqLwogCiBh dl9jb2xkIHZvaWQgZmZfZGN0X2VuY29kZV9pbml0X3g4NihNUFZFbmNDb250ZXh0ICpjb25zdCBz KQogewpAQCAtMTI5LDcgKzg0LDkgQEAgYXZfY29sZCB2b2lkIGZmX2RjdF9lbmNvZGVfaW5pdF94 ODYoTVBWRW5jQ29udGV4dCAqY29uc3QgcykKICNpZiBIQVZFXzZSRUdTCiAgICAgICAgICAgICBz LT5kY3RfcXVhbnRpemUgPSBkY3RfcXVhbnRpemVfc3NlMjsKICNlbmRpZgorI2lmIEhBVkVfU1NF Ml9FWFRFUk5BTAogICAgICAgICAgICAgcy0+ZGVub2lzZV9kY3QgID0gZGVub2lzZV9kY3Rfc3Nl MjsKKyNlbmRpZgogICAgICAgICB9CiAjaWYgSEFWRV82UkVHUyAmJiBIQVZFX1NTU0UzX0lOTElO RQogICAgICAgICBpZiAoSU5MSU5FX1NTU0UzKGNwdV9mbGFncykpCmRpZmYgLS1naXQgYS9saWJh dmNvZGVjL3g4Ni9tcGVndmlkZW9lbmNkc3AuYXNtIGIvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVv ZW5jZHNwLmFzbQppbmRleCBkMTI2NDZhZTU0Li4wZTg2YTUzMDRjIDEwMDY0NAotLS0gYS9saWJh dmNvZGVjL3g4Ni9tcGVndmlkZW9lbmNkc3AuYXNtCisrKyBiL2xpYmF2Y29kZWMveDg2L21wZWd2 aWRlb2VuY2RzcC5hc20KQEAgLTI0LDYgKzI0LDUyIEBACiAlaW5jbHVkZSAibGliYXZ1dGlsL3g4 Ni94ODZ1dGlsLmFzbSIKIAogU0VDVElPTiAudGV4dAorCitJTklUX1hNTSBzc2UyCitjZ2xvYmFs IG1wdl9kZW5vaXNlX2RjdCwgMywgNCwgNywgYmxvY2ssIHN1bSwgb2Zmc2V0CisgICAgcHhvciAg ICAgICAgICAgIG02LCBtNgorICAgIGxlYSAgICAgICAgICAgICByMywgW3N1bXErMjU2XQorLmxv b3A6CisgICAgbW92YSAgICAgICAgICAgIG0yLCBbYmxvY2txXQorICAgIG1vdmEgICAgICAgICAg ICBtMywgW2Jsb2NrcSsxNl0KKyAgICBtb3ZhICAgICAgICAgICAgbTAsIG02CisgICAgbW92YSAg ICAgICAgICAgIG0xLCBtNgorICAgIHBjbXBndHcgICAgICAgICBtMCwgbTIKKyAgICBwY21wZ3R3 ICAgICAgICAgbTEsIG0zCisgICAgcHhvciAgICAgICAgICAgIG0yLCBtMAorICAgIHB4b3IgICAg ICAgICAgICBtMywgbTEKKyAgICBwc3VidyAgICAgICAgICAgbTIsIG0wCisgICAgcHN1YncgICAg ICAgICAgIG0zLCBtMQorICAgIHBzdWJ1c3cgICAgICAgICBtNCwgbTIsIFtvZmZzZXRxXQorICAg IHBzdWJ1c3cgICAgICAgICBtNSwgbTMsIFtvZmZzZXRxKzE2XQorICAgIHB4b3IgICAgICAgICAg ICBtNCwgbTAKKyAgICBweG9yICAgICAgICAgICAgbTUsIG0xCisgICAgYWRkICAgICAgICBvZmZz ZXRxLCAzMgorICAgIHBzdWJ3ICAgICAgICAgICBtNCwgbTAKKyAgICBwc3VidyAgICAgICAgICAg bTUsIG0xCisgICAgbW92YSAgICAgIFtibG9ja3FdLCBtNAorICAgIG1vdmEgICBbYmxvY2txKzE2 XSwgbTUKKyAgICBtb3ZhICAgICAgICAgICAgbTAsIG0yCisgICAgbW92YSAgICAgICAgICAgIG0x LCBtMworICAgIGFkZCAgICAgICAgIGJsb2NrcSwgMzIKKyAgICBwdW5wY2tsd2QgICAgICAgbTAs IG02CisgICAgcHVucGNraHdkICAgICAgIG0yLCBtNgorICAgIHB1bnBja2x3ZCAgICAgICBtMSwg bTYKKyAgICBwdW5wY2tod2QgICAgICAgbTMsIG02CisgICAgcGFkZGQgICAgICAgICAgIG0wLCBb c3VtcV0KKyAgICBwYWRkZCAgICAgICAgICAgbTIsIFtzdW1xKzE2XQorICAgIHBhZGRkICAgICAg ICAgICBtMSwgW3N1bXErMzJdCisgICAgcGFkZGQgICAgICAgICAgIG0zLCBbc3VtcSs0OF0KKyAg ICBtb3ZhICAgICAgICBbc3VtcV0sIG0wCisgICAgbW92YSAgICAgW3N1bXErMTZdLCBtMgorICAg IG1vdmEgICAgIFtzdW1xKzMyXSwgbTEKKyAgICBtb3ZhICAgICBbc3VtcSs0OF0sIG0zCisgICAg YWRkICAgICAgICAgICBzdW1xLCA2NAorICAgIGNtcCAgICAgICAgICAgc3VtcSwgcjMKKyAgICBq YiAgICAgICAgICAgLmxvb3AKKyAgICBSRVQKKworCiA7IGludCBmZl9waXhfc3VtMTYoY29uc3Qg dWludDhfdCAqcGl4LCBwdHJkaWZmX3QgbGluZV9zaXplKQogOyAlMSA9IG51bWJlciBvZiBsb29w cwogOyAlMiA9IG51bWJlciBvZiBHUFJzIHVzZWQKLS0gCjIuNTIuMAoKCkZyb20gZGQxYTZmNzE1 ZGFlZTc0MDUwY2IwMzU5ZjYxMzM4YWNhNzMzMjZjMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+ CkRhdGU6IFNhdCwgMTUgTm92IDIwMjUgMTg6MjQ6MTggKzAxMDAKU3ViamVjdDogW1BBVENIIDAx MC8zMDRdIGF2Y29kZWMvbXBlZ3ZpZGVvX2VuYzogUG9ydCBkZW5vaXNlX2RjdCB0bwogTXBlZ3Zp ZGVvRW5jRFNQQ29udGV4dAoKSXQgaXMgdmVyeSBzaW1wbGUgdG8gcmVtb3ZlIHRoZSBNUFZFbmND b250ZXh0IGZyb20gaXQuCk5vdGljZSB0aGF0IHRoaXMgYWxzbyBmaXhlcyBhIGJ1ZyBpbiB4ODYv bXBlZ3ZpZGVvZW5jLmM6IEl0IG9ubHkKdXNlZCB0aGUgU1NFMiB2ZXJzaW9uIG9mIGRlbm9pc2Vf ZGN0IHdoZW4gZGN0X2FsZ28gd2FzIGF1dG8gb3IgbW14CihhbmQgaXQgd2FzIHRoZXJlZm9yZSB1 bnVzZWQgZHVyaW5nIEZBVEUpLgoKUmV2aWV3ZWQtYnk6IEx5bm5lIDxkZXZAbHlubmUuZWU+ClNp Z25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxv b2suY29tPgotLS0KIGxpYmF2Y29kZWMvbWlwcy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAg ICB8ICAzICstCiBsaWJhdmNvZGVjL21pcHMvbXBlZ3ZpZGVvX21pcHMuaCAgICAgICAgICAgICAg fCAgMyArLQogbGliYXZjb2RlYy9taXBzL21wZWd2aWRlb2VuY19pbml0X21pcHMuYyAgICAgIHwg MzMgLS0tLS0tLS0tLS0tLS0tLQogbGliYXZjb2RlYy9taXBzL21wZWd2aWRlb2VuY2RzcF9pbml0 X21pcHMuYyAgIHwgIDUgKysrCiAuLi5lZ3ZpZGVvZW5jX21taS5jID0+IG1wZWd2aWRlb2VuY2Rz cF9tbWkuY30gfCAgNyArLS0tCiBsaWJhdmNvZGVjL21wZWd2aWRlb19lbmMuYyAgICAgICAgICAg ICAgICAgICAgfCAzOCArKysrKy0tLS0tLS0tLS0tLS0tCiBsaWJhdmNvZGVjL21wZWd2aWRlb2Vu Yy5oICAgICAgICAgICAgICAgICAgICAgfCAgMiAtCiBsaWJhdmNvZGVjL21wZWd2aWRlb2VuY2Rz cC5jICAgICAgICAgICAgICAgICAgfCAyNSArKysrKysrKysrKysKIGxpYmF2Y29kZWMvbXBlZ3Zp ZGVvZW5jZHNwLmggICAgICAgICAgICAgICAgICB8ICAzICsrCiBsaWJhdmNvZGVjL3g4Ni9tcGVn dmlkZW9lbmMuYyAgICAgICAgICAgICAgICAgfCAxOSAtLS0tLS0tLS0tCiBsaWJhdmNvZGVjL3g4 Ni9tcGVndmlkZW9lbmNfdGVtcGxhdGUuYyAgICAgICAgfCAgNyArKystCiBsaWJhdmNvZGVjL3g4 Ni9tcGVndmlkZW9lbmNkc3BfaW5pdC5jICAgICAgICAgfCAgMyArKwogMTIgZmlsZXMgY2hhbmdl ZCwgNTMgaW5zZXJ0aW9ucygrKSwgOTUgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQg bGliYXZjb2RlYy9taXBzL21wZWd2aWRlb2VuY19pbml0X21pcHMuYwogcmVuYW1lIGxpYmF2Y29k ZWMvbWlwcy97bXBlZ3ZpZGVvZW5jX21taS5jID0+IG1wZWd2aWRlb2VuY2RzcF9tbWkuY30gKDk1 JSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL21pcHMvTWFrZWZpbGUgYi9saWJhdmNvZGVjL21p cHMvTWFrZWZpbGUKaW5kZXggNGJiYzJmMDBlYS4uMWQ3NzcyOTNkMCAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy9taXBzL01ha2VmaWxlCisrKyBiL2xpYmF2Y29kZWMvbWlwcy9NYWtlZmlsZQpAQCAt NTQsNyArNTQsNiBAQCBPQkpTLSQoQ09ORklHX0JMT0NLRFNQKSAgICAgICAgICAgICAgICAgICAr PSBtaXBzL2Jsb2NrZHNwX2luaXRfbWlwcy5vCiBPQkpTLSQoQ09ORklHX1BJWEJMT0NLRFNQKSAg ICAgICAgICAgICAgICArPSBtaXBzL3BpeGJsb2NrZHNwX2luaXRfbWlwcy5vCiBPQkpTLSQoQ09O RklHX0lEQ1REU1ApICAgICAgICAgICAgICAgICAgICArPSBtaXBzL2lkY3Rkc3BfaW5pdF9taXBz Lm8KIE9CSlMtJChDT05GSUdfTVBFR1ZJREVPKSAgICAgICAgICAgICAgICAgICs9IG1pcHMvbXBl Z3ZpZGVvX2luaXRfbWlwcy5vCi1PQkpTLSQoQ09ORklHX01QRUdWSURFT0VOQykgICAgICAgICAg ICAgICArPSBtaXBzL21wZWd2aWRlb2VuY19pbml0X21pcHMubwogT0JKUy0kKENPTkZJR19NUEVH VklERU9FTkNEU1ApICAgICAgICAgICAgKz0gbWlwcy9tcGVndmlkZW9lbmNkc3BfaW5pdF9taXBz Lm8KIE9CSlMtJChDT05GSUdfTUVfQ01QKSAgICAgICAgICAgICAgICAgICAgICs9IG1pcHMvbWVf Y21wX2luaXRfbWlwcy5vCiBPQkpTLSQoQ09ORklHX01QRUc0X0RFQ09ERVIpICAgICAgICAgICAg ICArPSBtaXBzL3h2aWRpZGN0X2luaXRfbWlwcy5vCkBAIC0xMDAsNyArOTksNyBAQCBNTUktT0JK Uy0kKENPTkZJR19IMjY0RFNQKSAgICAgICAgICAgICAgICArPSBtaXBzL2gyNjRkc3BfbW1pLm8K IE1NSS1PQkpTLSQoQ09ORklHX0gyNjRDSFJPTUEpICAgICAgICAgICAgICs9IG1pcHMvaDI2NGNo cm9tYV9tbWkubwogTU1JLU9CSlMtJChDT05GSUdfSDI2NFBSRUQpICAgICAgICAgICAgICAgKz0g bWlwcy9oMjY0cHJlZF9tbWkubwogTU1JLU9CSlMtJChDT05GSUdfTVBFR1ZJREVPKSAgICAgICAg ICAgICAgKz0gbWlwcy9tcGVndmlkZW9fbW1pLm8KLU1NSS1PQkpTLSQoQ09ORklHX01QRUdWSURF T0VOQykgICAgICAgICAgICs9IG1pcHMvbXBlZ3ZpZGVvZW5jX21taS5vCitNTUktT0JKUy0kKENP TkZJR19NUEVHVklERU9FTkNEU1ApICAgICAgICArPSBtaXBzL21wZWd2aWRlb2VuY19tbWkubwog TU1JLU9CSlMtJChDT05GSUdfSURDVERTUCkgICAgICAgICAgICAgICAgKz0gbWlwcy9pZGN0ZHNw X21taS5vICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtaXBzL3NpbXBsZV9pZGN0X21taS5vCiBNTUktT0JKUy0kKENPTkZJR19NUEVHNF9E RUNPREVSKSAgICAgICAgICArPSBtaXBzL3h2aWRfaWRjdF9tbWkubwpkaWZmIC0tZ2l0IGEvbGli YXZjb2RlYy9taXBzL21wZWd2aWRlb19taXBzLmggYi9saWJhdmNvZGVjL21pcHMvbXBlZ3ZpZGVv X21pcHMuaAppbmRleCA3MmZmZWQ2OTg1Li4yYTllYTQwMDZlIDEwMDY0NAotLS0gYS9saWJhdmNv ZGVjL21pcHMvbXBlZ3ZpZGVvX21pcHMuaAorKysgYi9saWJhdmNvZGVjL21pcHMvbXBlZ3ZpZGVv X21pcHMuaApAQCAtMjIsNyArMjIsNiBAQAogI2RlZmluZSBBVkNPREVDX01JUFNfTVBFR1ZJREVP X01JUFNfSAogCiAjaW5jbHVkZSAibGliYXZjb2RlYy9tcGVndmlkZW8uaCIKLSNpbmNsdWRlICJs aWJhdmNvZGVjL21wZWd2aWRlb2VuYy5oIgogCiB2b2lkIGZmX2RjdF91bnF1YW50aXplX2gyNjNf aW50cmFfbW1pKE1wZWdFbmNDb250ZXh0ICpzLCBpbnQxNl90ICpibG9jaywKICAgICAgICAgaW50 IG4sIGludCBxc2NhbGUpOwpAQCAtMzQsNiArMzMsNiBAQCB2b2lkIGZmX2RjdF91bnF1YW50aXpl X21wZWcxX2ludGVyX21taShNcGVnRW5jQ29udGV4dCAqcywgaW50MTZfdCAqYmxvY2ssCiAgICAg ICAgIGludCBuLCBpbnQgcXNjYWxlKTsKIHZvaWQgZmZfZGN0X3VucXVhbnRpemVfbXBlZzJfaW50 cmFfbW1pKE1wZWdFbmNDb250ZXh0ICpzLCBpbnQxNl90ICpibG9jaywKICAgICAgICAgaW50IG4s IGludCBxc2NhbGUpOwotdm9pZCBmZl9kZW5vaXNlX2RjdF9tbWkoTVBWRW5jQ29udGV4dCAqcywg aW50MTZfdCAqYmxvY2spOwordm9pZCBmZl9kZW5vaXNlX2RjdF9tbWkoaW50MTZfdCBibG9ja1s2 NF0sIGludCBzdW1bNjRdLCBjb25zdCB1aW50MTZfdCBvZmZzZXRbNjRdKTsKIAogI2VuZGlmIC8q IEFWQ09ERUNfTUlQU19NUEVHVklERU9fTUlQU19IICovCmRpZmYgLS1naXQgYS9saWJhdmNvZGVj L21pcHMvbXBlZ3ZpZGVvZW5jX2luaXRfbWlwcy5jIGIvbGliYXZjb2RlYy9taXBzL21wZWd2aWRl b2VuY19pbml0X21pcHMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzgzMTk3M2Vi OC4uMDAwMDAwMDAwMAotLS0gYS9saWJhdmNvZGVjL21pcHMvbXBlZ3ZpZGVvZW5jX2luaXRfbWlw cy5jCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykg MjAxNSBNYW5vamt1bWFyIEJob3NhbGUgKE1hbm9qa3VtYXIuQmhvc2FsZUBpbWd0ZWMuY29tKQot ICoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KLSAqCi0gKiBGRm1wZWcgaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK LSAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgotICoKLSAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMZXNzZXIg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK LSAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg U29mdHdhcmUKLSAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg Rmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKLSAqLwotCi0jaW5jbHVkZSAibGliYXZ1 dGlsL2F0dHJpYnV0ZXMuaCIKLSNpbmNsdWRlICJsaWJhdnV0aWwvbWlwcy9jcHUuaCIKLSNpbmNs dWRlICJsaWJhdmNvZGVjL21wZWd2aWRlb2VuYy5oIgotI2luY2x1ZGUgIm1wZWd2aWRlb19taXBz LmgiCi0KLWF2X2NvbGQgdm9pZCBmZl9tcHZlbmNfZGN0X2luaXRfbWlwcyhNUFZFbmNDb250ZXh0 ICpzKQotewotICAgIGludCBjcHVfZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7Ci0KLSAgICBp ZiAoaGF2ZV9tbWkoY3B1X2ZsYWdzKSkgewotICAgICAgICBzLT5kZW5vaXNlX2RjdCA9IGZmX2Rl bm9pc2VfZGN0X21taTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL21pcHMvbXBl Z3ZpZGVvZW5jZHNwX2luaXRfbWlwcy5jIGIvbGliYXZjb2RlYy9taXBzL21wZWd2aWRlb2VuY2Rz cF9pbml0X21pcHMuYwppbmRleCAyNGExN2I5MWRiLi5kZjkxNjI4MmEyIDEwMDY0NAotLS0gYS9s aWJhdmNvZGVjL21pcHMvbXBlZ3ZpZGVvZW5jZHNwX2luaXRfbWlwcy5jCisrKyBiL2xpYmF2Y29k ZWMvbWlwcy9tcGVndmlkZW9lbmNkc3BfaW5pdF9taXBzLmMKQEAgLTIzLDEyICsyMywxNyBAQAog I2luY2x1ZGUgImxpYmF2Y29kZWMvYml0X2RlcHRoX3RlbXBsYXRlLmMiCiAjaW5jbHVkZSAibGli YXZjb2RlYy9tcGVndmlkZW9lbmNkc3AuaCIKICNpbmNsdWRlICJoMjYzZHNwX21pcHMuaCIKKyNp bmNsdWRlICJtcGVndmlkZW9fbWlwcy5oIgogCiBhdl9jb2xkIHZvaWQgZmZfbXBlZ3ZpZGVvZW5j ZHNwX2luaXRfbWlwcyhNcGVndmlkZW9FbmNEU1BDb250ZXh0ICpjLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogewogICAg IGludCBjcHVfZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7CiAKKyAgICBpZiAoaGF2ZV9tbWko Y3B1X2ZsYWdzKSkgeworICAgICAgICBjLT5kZW5vaXNlX2RjdCA9IGZmX2Rlbm9pc2VfZGN0X21t aTsKKyAgICB9CisKICAgICBpZiAoaGF2ZV9tc2EoY3B1X2ZsYWdzKSkgewogI2lmIEJJVF9ERVBU SCA9PSA4CiAgICAgICAgIGMtPnBpeF9zdW0gPSBmZl9waXhfc3VtX21zYTsKZGlmZiAtLWdpdCBh L2xpYmF2Y29kZWMvbWlwcy9tcGVndmlkZW9lbmNfbW1pLmMgYi9saWJhdmNvZGVjL21pcHMvbXBl Z3ZpZGVvZW5jZHNwX21taS5jCnNpbWlsYXJpdHkgaW5kZXggOTUlCnJlbmFtZSBmcm9tIGxpYmF2 Y29kZWMvbWlwcy9tcGVndmlkZW9lbmNfbW1pLmMKcmVuYW1lIHRvIGxpYmF2Y29kZWMvbWlwcy9t cGVndmlkZW9lbmNkc3BfbW1pLmMKaW5kZXggMDg1YmUzYjBlYy4uMjIzOWEwNTk3OCAxMDA2NDQK LS0tIGEvbGliYXZjb2RlYy9taXBzL21wZWd2aWRlb2VuY19tbWkuYworKysgYi9saWJhdmNvZGVj L21pcHMvbXBlZ3ZpZGVvZW5jZHNwX21taS5jCkBAIC0yNSwxNyArMjUsMTIgQEAKICNpbmNsdWRl ICJtcGVndmlkZW9fbWlwcy5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9taXBzL21taXV0aWxzLmgi CiAKLXZvaWQgZmZfZGVub2lzZV9kY3RfbW1pKE1QVkVuY0NvbnRleHQgKnMsIGludDE2X3QgKmJs b2NrKQordm9pZCBmZl9kZW5vaXNlX2RjdF9tbWkoaW50MTZfdCBibG9ja1s2NF0sIGludCBzdW1b NjRdLCBjb25zdCB1aW50MTZfdCBvZmZzZXRbNjRdKQogewotICAgIGNvbnN0IGludCBpbnRyYSA9 IHMtPmMubWJfaW50cmE7Ci0gICAgaW50ICpzdW0gPSBzLT5kY3RfZXJyb3Jfc3VtW2ludHJhXTsK LSAgICB1aW50MTZfdCAqb2Zmc2V0ID0gcy0+ZGN0X29mZnNldFtpbnRyYV07CiAgICAgZG91Ymxl IGZ0bXBbOF07CiAgICAgbWlwc19yZWcgYWRkclsxXTsKICAgICBERUNMQVJFX1ZBUl9BTEw2NDsK IAotICAgIHMtPmRjdF9jb3VudFtpbnRyYV0rKzsKLQogICAgIF9fYXNtX18gdm9sYXRpbGUoCiAg ICAgICAgICJweG9yICAgICAgICVbZnRtcDBdLCAgICVbZnRtcDBdLCAgICAgICAlW2Z0bXAwXSAg ICAgICAgICAgICAgICBcblx0IgogICAgICAgICAiMTogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKZGlmZiAtLWdpdCBhL2xp YmF2Y29kZWMvbXBlZ3ZpZGVvX2VuYy5jIGIvbGliYXZjb2RlYy9tcGVndmlkZW9fZW5jLmMKaW5k ZXggY2UwZWU0YmI2OC4uOWU4MzAyNmI1MSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9tcGVndmlk ZW9fZW5jLmMKKysrIGIvbGliYXZjb2RlYy9tcGVndmlkZW9fZW5jLmMKQEAgLTg2LDcgKzg2LDYg QEAKIHN0YXRpYyBpbnQgZW5jb2RlX3BpY3R1cmUoTVBWTWFpbkVuY0NvbnRleHQgKmNvbnN0IHMs IGNvbnN0IEFWUGFja2V0ICpwa3QpOwogc3RhdGljIGludCBkY3RfcXVhbnRpemVfcmVmaW5lKE1Q VkVuY0NvbnRleHQgKmNvbnN0IHMsIGludDE2X3QgKmJsb2NrLCBpbnQxNl90ICp3ZWlnaHQsIGlu dDE2X3QgKm9yaWcsIGludCBuLCBpbnQgcXNjYWxlKTsKIHN0YXRpYyBpbnQgc3NlX21iKE1QVkVu Y0NvbnRleHQgKmNvbnN0IHMpOwotc3RhdGljIHZvaWQgZGVub2lzZV9kY3RfYyhNUFZFbmNDb250 ZXh0ICpjb25zdCBzLCBpbnQxNl90ICpibG9jayk7CiBzdGF0aWMgaW50IGRjdF9xdWFudGl6ZV9j KE1QVkVuY0NvbnRleHQgKmNvbnN0IHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDE2 X3QgKmJsb2NrLCBpbnQgbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHFzY2FsZSwg aW50ICpvdmVyZmxvdyk7CkBAIC0zMDAsMTEgKzI5OSw4IEBAIHN0YXRpYyBhdl9jb2xkIHZvaWQg bXB2X2VuY29kZV9kZWZhdWx0cyhNUFZNYWluRW5jQ29udGV4dCAqY29uc3QgbSkKIGF2X2NvbGQg dm9pZCBmZl9kY3RfZW5jb2RlX2luaXQoTVBWRW5jQ29udGV4dCAqY29uc3QgcykKIHsKICAgICBz LT5kY3RfcXVhbnRpemUgPSBkY3RfcXVhbnRpemVfYzsKLSAgICBzLT5kZW5vaXNlX2RjdCAgPSBk ZW5vaXNlX2RjdF9jOwogCi0jaWYgQVJDSF9NSVBTCi0gICAgZmZfbXB2ZW5jX2RjdF9pbml0X21p cHMocyk7Ci0jZWxpZiBBUkNIX1g4NgorI2lmIEFSQ0hfWDg2CiAgICAgZmZfZGN0X2VuY29kZV9p bml0X3g4NihzKTsKICNlbmRpZgogCkBAIC0zOTU1LDI5ICszOTUxLDE0IEBAIHN0YXRpYyBpbnQg ZW5jb2RlX3BpY3R1cmUoTVBWTWFpbkVuY0NvbnRleHQgKmNvbnN0IG0sIGNvbnN0IEFWUGFja2V0 ICpwa3QpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGRlbm9pc2VfZGN0X2MoTVBW RW5jQ29udGV4dCAqY29uc3QgcywgaW50MTZfdCAqYmxvY2spCitzdGF0aWMgaW5saW5lIHZvaWQg ZGVub2lzZV9kY3QoTVBWRW5jQ29udGV4dCAqY29uc3QgcywgaW50MTZfdCBibG9ja1tdKQogewor ICAgIGlmICghcy0+ZGN0X2Vycm9yX3N1bSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgY29uc3Qg aW50IGludHJhID0gcy0+Yy5tYl9pbnRyYTsKLSAgICBpbnQgaTsKLQogICAgIHMtPmRjdF9jb3Vu dFtpbnRyYV0rKzsKLQotICAgIGZvcihpPTA7IGk8NjQ7IGkrKyl7Ci0gICAgICAgIGludCBsZXZl bD0gYmxvY2tbaV07Ci0KLSAgICAgICAgaWYobGV2ZWwpewotICAgICAgICAgICAgaWYobGV2ZWw+ MCl7Ci0gICAgICAgICAgICAgICAgcy0+ZGN0X2Vycm9yX3N1bVtpbnRyYV1baV0gKz0gbGV2ZWw7 Ci0gICAgICAgICAgICAgICAgbGV2ZWwgLT0gcy0+ZGN0X29mZnNldFtpbnRyYV1baV07Ci0gICAg ICAgICAgICAgICAgaWYobGV2ZWw8MCkgbGV2ZWw9MDsKLSAgICAgICAgICAgIH1lbHNlewotICAg ICAgICAgICAgICAgIHMtPmRjdF9lcnJvcl9zdW1baW50cmFdW2ldIC09IGxldmVsOwotICAgICAg ICAgICAgICAgIGxldmVsICs9IHMtPmRjdF9vZmZzZXRbaW50cmFdW2ldOwotICAgICAgICAgICAg ICAgIGlmKGxldmVsPjApIGxldmVsPTA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBibG9j a1tpXT0gbGV2ZWw7Ci0gICAgICAgIH0KLSAgICB9CisgICAgcy0+bXB2ZW5jZHNwLmRlbm9pc2Vf ZGN0KGJsb2NrLCBzLT5kY3RfZXJyb3Jfc3VtW2ludHJhXSwgcy0+ZGN0X29mZnNldFtpbnRyYV0p OwogfQogCiBzdGF0aWMgaW50IGRjdF9xdWFudGl6ZV90cmVsbGlzX2MoTVBWRW5jQ29udGV4dCAq Y29uc3QgcywKQEAgLTQwMDksOCArMzk5MCw4IEBAIHN0YXRpYyBpbnQgZGN0X3F1YW50aXplX3Ry ZWxsaXNfYyhNUFZFbmNDb250ZXh0ICpjb25zdCBzLAogCiAgICAgcy0+ZmRzcC5mZGN0KGJsb2Nr KTsKIAotICAgIGlmKHMtPmRjdF9lcnJvcl9zdW0pCi0gICAgICAgIHMtPmRlbm9pc2VfZGN0KHMs IGJsb2NrKTsKKyAgICBkZW5vaXNlX2RjdChzLCBibG9jayk7CisKICAgICBxbXVsPSBxc2NhbGUq MTY7CiAgICAgcWFkZD0gKChxc2NhbGUtMSl8MSkqODsKIApAQCAtNDY3OCw4ICs0NjU5LDcgQEAg c3RhdGljIGludCBkY3RfcXVhbnRpemVfYyhNUFZFbmNDb250ZXh0ICpjb25zdCBzLAogCiAgICAg cy0+ZmRzcC5mZGN0KGJsb2NrKTsKIAotICAgIGlmKHMtPmRjdF9lcnJvcl9zdW0pCi0gICAgICAg IHMtPmRlbm9pc2VfZGN0KHMsIGJsb2NrKTsKKyAgICBkZW5vaXNlX2RjdChzLCBibG9jayk7CiAK ICAgICBpZiAocy0+Yy5tYl9pbnRyYSkgewogICAgICAgICBzY2FudGFibGUgPSBzLT5jLmludHJh X3NjYW50YWJsZS5zY2FudGFibGU7CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL21wZWd2aWRlb2Vu Yy5oIGIvbGliYXZjb2RlYy9tcGVndmlkZW9lbmMuaAppbmRleCBlZTExNWMzNjExLi4xMzE5MDhj MTBhIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL21wZWd2aWRlb2VuYy5oCisrKyBiL2xpYmF2Y29k ZWMvbXBlZ3ZpZGVvZW5jLmgKQEAgLTEyMyw3ICsxMjMsNiBAQCB0eXBlZGVmIHN0cnVjdCBNUFZF bmNDb250ZXh0IHsKICAgICB1aW50MTZfdCAoKnFfaW50ZXJfbWF0cml4MTYpWzJdWzY0XTsKIAog ICAgIC8qIG5vaXNlIHJlZHVjdGlvbiAqLwotICAgIHZvaWQgKCpkZW5vaXNlX2RjdCkoc3RydWN0 IE1QVkVuY0NvbnRleHQgKnMsIGludDE2X3QgKmJsb2NrKTsKICAgICBpbnQgKCpkY3RfZXJyb3Jf c3VtKVs2NF07CiAgICAgaW50IGRjdF9jb3VudFsyXTsKICAgICB1aW50MTZfdCAoKmRjdF9vZmZz ZXQpWzY0XTsKQEAgLTM5Nyw3ICszOTYsNiBAQCBpbnQgZmZfbXB2X3JlYWxsb2NhdGVfcHV0Yml0 YnVmZmVyKE1QVkVuY0NvbnRleHQgKnMsIHNpemVfdCB0aHJlc2hvbGQsIHNpemVfdCBzaQogdm9p ZCBmZl93cml0ZV9xdWFudF9tYXRyaXgoUHV0Qml0Q29udGV4dCAqcGIsIHVpbnQxNl90ICptYXRy aXgpOwogCiB2b2lkIGZmX2RjdF9lbmNvZGVfaW5pdChNUFZFbmNDb250ZXh0ICpzKTsKLXZvaWQg ZmZfbXB2ZW5jX2RjdF9pbml0X21pcHMoTVBWRW5jQ29udGV4dCAqcyk7CiB2b2lkIGZmX2RjdF9l bmNvZGVfaW5pdF94ODYoTVBWRW5jQ29udGV4dCAqcyk7CiAKIHZvaWQgZmZfY29udmVydF9tYXRy aXgoTVBWRW5jQ29udGV4dCAqcywgaW50ICgqcW1hdClbNjRdLCB1aW50MTZfdCAoKnFtYXQxNilb Ml1bNjRdLApkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9tcGVndmlkZW9lbmNkc3AuYyBiL2xpYmF2 Y29kZWMvbXBlZ3ZpZGVvZW5jZHNwLmMKaW5kZXggYjRmZDJhZjkxNS4uM2I0YTU3ZDU4YSAxMDA2 NDQKLS0tIGEvbGliYXZjb2RlYy9tcGVndmlkZW9lbmNkc3AuYworKysgYi9saWJhdmNvZGVjL21w ZWd2aWRlb2VuY2RzcC5jCkBAIC0yOCw2ICsyOCwyOSBAQAogI2luY2x1ZGUgIm1hdGhvcHMuaCIK ICNpbmNsdWRlICJtcGVndmlkZW9lbmNkc3AuaCIKIAorc3RhdGljIHZvaWQgZGVub2lzZV9kY3Rf YyhpbnQxNl90IGJsb2NrWzY0XSwgaW50IGRjdF9lcnJvcl9zdW1bNjRdLAorICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCB1aW50MTZfdCBkY3Rfb2Zmc2V0WzY0XSkKK3sKKyAgICBmb3Ig KGludCBpID0gMDsgaSA8IDY0OyArK2kpIHsKKyAgICAgICAgaW50IGxldmVsID0gYmxvY2tbaV07 CisKKyAgICAgICAgaWYgKGxldmVsKSB7CisgICAgICAgICAgICBpZiAobGV2ZWwgPiAwKSB7Cisg ICAgICAgICAgICAgICAgZGN0X2Vycm9yX3N1bVtpXSArPSBsZXZlbDsKKyAgICAgICAgICAgICAg ICBsZXZlbCAtPSBkY3Rfb2Zmc2V0W2ldOworICAgICAgICAgICAgICAgIGlmIChsZXZlbCA8IDAp CisgICAgICAgICAgICAgICAgICAgIGxldmVsID0gMDsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg ICAgICAgICAgICAgICAgZGN0X2Vycm9yX3N1bVtpXSAtPSBsZXZlbDsKKyAgICAgICAgICAgICAg ICBsZXZlbCArPSBkY3Rfb2Zmc2V0W2ldOworICAgICAgICAgICAgICAgIGlmIChsZXZlbCA+IDAp CisgICAgICAgICAgICAgICAgICAgIGxldmVsID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAg ICAgIGJsb2NrW2ldID0gbGV2ZWw7CisgICAgICAgIH0KKyAgICB9Cit9CisKIHN0YXRpYyBpbnQg dHJ5Xzh4OGJhc2lzX2MoY29uc3QgaW50MTZfdCByZW1bNjRdLCBjb25zdCBpbnQxNl90IHdlaWdo dFs2NF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludDE2X3QgYmFzaXNbNjRd LCBpbnQgc2NhbGUpCiB7CkBAIC0yNTMsNiArMjc2LDggQEAgc3RhdGljIHZvaWQgc2hyaW5rODgo dWludDhfdCAqZHN0LCBwdHJkaWZmX3QgZHN0X3dyYXAsCiBhdl9jb2xkIHZvaWQgZmZfbXBlZ3Zp ZGVvZW5jZHNwX2luaXQoTXBlZ3ZpZGVvRW5jRFNQQ29udGV4dCAqYywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBVkNvZGVjQ29udGV4dCAqYXZjdHgpCiB7CisgICAgYy0+ ZGVub2lzZV9kY3QgID0gZGVub2lzZV9kY3RfYzsKKwogICAgIGMtPnRyeV84eDhiYXNpcyA9IHRy eV84eDhiYXNpc19jOwogICAgIGMtPmFkZF84eDhiYXNpcyA9IGFkZF84eDhiYXNpc19jOwogCmRp ZmYgLS1naXQgYS9saWJhdmNvZGVjL21wZWd2aWRlb2VuY2RzcC5oIGIvbGliYXZjb2RlYy9tcGVn dmlkZW9lbmNkc3AuaAppbmRleCA2ZWM2NjU2NzdiLi45ODk1MDNmMjVmIDEwMDY0NAotLS0gYS9s aWJhdmNvZGVjL21wZWd2aWRlb2VuY2RzcC5oCisrKyBiL2xpYmF2Y29kZWMvbXBlZ3ZpZGVvZW5j ZHNwLmgKQEAgLTMwLDYgKzMwLDkgQEAKICNkZWZpbmUgRURHRV9CT1RUT00gMgogCiB0eXBlZGVm IHN0cnVjdCBNcGVndmlkZW9FbmNEU1BDb250ZXh0IHsKKyAgICB2b2lkICgqZGVub2lzZV9kY3Qp KGludDE2X3QgYmxvY2tbNjRdLCBpbnQgZGN0X2Vycm9yX3N1bVs2NF0sCisgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCB1aW50MTZfdCBkY3Rfb2Zmc2V0WzY0XSk7CisKICAgICBpbnQgKCp0 cnlfOHg4YmFzaXMpKGNvbnN0IGludDE2X3QgcmVtWzY0XSwgY29uc3QgaW50MTZfdCB3ZWlnaHRb NjRdLAogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50MTZfdCBiYXNpc1s2NF0sIGlu dCBzY2FsZSk7CiAgICAgdm9pZCAoKmFkZF84eDhiYXNpcykoaW50MTZfdCByZW1bNjRdLCBjb25z dCBpbnQxNl90IGJhc2lzWzY0XSwgaW50IHNjYWxlKTsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMv eDg2L21wZWd2aWRlb2VuYy5jIGIvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVvZW5jLmMKaW5kZXgg ZTU2NjVhYzc4MS4uYzY2N2RjZDJhMiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvbXBlZ3Zp ZGVvZW5jLmMKKysrIGIvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVvZW5jLmMKQEAgLTU3LDIyICs1 Nyw2IEBAIERFQ0xBUkVfQUxJR05FRCgxNiwgc3RhdGljIGNvbnN0IHVpbnQxNl90LCBpbnZfemln emFnX2RpcmVjdDE2KVs2NF0gPSB7CiAKICNlbmRpZiAvKiBIQVZFXzZSRUdTICovCiAKLSNpZiBI QVZFX1NTRTJfRVhURVJOQUwKLXZvaWQgZmZfbXB2X2Rlbm9pc2VfZGN0X3NzZTIoaW50MTZfdCBi bG9ja1s2NF0sIGludCBkY3RfZXJyb3Jfc3VtWzY0XSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgdWludDE2X3QgZGN0X29mZnNldFs2NF0pOwotCi1zdGF0aWMgdm9pZCBkZW5v aXNlX2RjdF9zc2UyKE1QVkVuY0NvbnRleHQgKmNvbnN0IHMsIGludDE2X3QgYmxvY2tbXSkKLXsK LSAgICBjb25zdCBpbnQgaW50cmEgPSBzLT5jLm1iX2ludHJhOwotICAgIGludCAqc3VtPSBzLT5k Y3RfZXJyb3Jfc3VtW2ludHJhXTsKLSAgICB1aW50MTZfdCAqb2Zmc2V0PSBzLT5kY3Rfb2Zmc2V0 W2ludHJhXTsKLQotICAgIHMtPmRjdF9jb3VudFtpbnRyYV0rKzsKLQotICAgIGZmX21wdl9kZW5v aXNlX2RjdF9zc2UyKGJsb2NrLCBzdW0sIG9mZnNldCk7Ci19Ci0jZW5kaWYgLyogSEFWRV9TU0Uy X0VYVEVSTkFMICovCi0KIGF2X2NvbGQgdm9pZCBmZl9kY3RfZW5jb2RlX2luaXRfeDg2KE1QVkVu Y0NvbnRleHQgKmNvbnN0IHMpCiB7CiAgICAgY29uc3QgaW50IGRjdF9hbGdvID0gcy0+Yy5hdmN0 eC0+ZGN0X2FsZ287CkBAIC04Myw5ICs2Nyw2IEBAIGF2X2NvbGQgdm9pZCBmZl9kY3RfZW5jb2Rl X2luaXRfeDg2KE1QVkVuY0NvbnRleHQgKmNvbnN0IHMpCiAgICAgICAgIGlmIChJTkxJTkVfU1NF MihjcHVfZmxhZ3MpKSB7CiAjaWYgSEFWRV82UkVHUwogICAgICAgICAgICAgcy0+ZGN0X3F1YW50 aXplID0gZGN0X3F1YW50aXplX3NzZTI7Ci0jZW5kaWYKLSNpZiBIQVZFX1NTRTJfRVhURVJOQUwK LSAgICAgICAgICAgIHMtPmRlbm9pc2VfZGN0ICA9IGRlbm9pc2VfZGN0X3NzZTI7CiAjZW5kaWYK ICAgICAgICAgfQogI2lmIEhBVkVfNlJFR1MgJiYgSEFWRV9TU1NFM19JTkxJTkUKZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMveDg2L21wZWd2aWRlb2VuY190ZW1wbGF0ZS5jIGIvbGliYXZjb2RlYy94 ODYvbXBlZ3ZpZGVvZW5jX3RlbXBsYXRlLmMKaW5kZXggZjBiOTVjMTYyMS4uMTRlOTkzZGUyYiAx MDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVvZW5jX3RlbXBsYXRlLmMKKysrIGIv bGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVvZW5jX3RlbXBsYXRlLmMKQEAgLTc2LDggKzc2LDExIEBA IHN0YXRpYyBpbnQgUkVOQU1FKGRjdF9xdWFudGl6ZSkoTVBWRW5jQ29udGV4dCAqY29uc3QgcywK ICAgICAvL3MtPmZkY3QgKGJsb2NrKTsKICAgICBmZl9mZGN0X3NzZTIoYmxvY2spOyAvLyBjYW5u b3QgYmUgYW55dGhpbmcgZWxzZSAuLi4KIAotICAgIGlmKHMtPmRjdF9lcnJvcl9zdW0pCi0gICAg ICAgIHMtPmRlbm9pc2VfZGN0KHMsIGJsb2NrKTsKKyAgICBpZiAocy0+ZGN0X2Vycm9yX3N1bSkg eworICAgICAgICBjb25zdCBpbnQgaW50cmEgPSBzLT5jLm1iX2ludHJhOworICAgICAgICBzLT5k Y3RfY291bnRbaW50cmFdKys7CisgICAgICAgIHMtPm1wdmVuY2RzcC5kZW5vaXNlX2RjdChibG9j aywgcy0+ZGN0X2Vycm9yX3N1bVtpbnRyYV0sIHMtPmRjdF9vZmZzZXRbaW50cmFdKTsKKyAgICB9 CiAKICAgICBpZiAocy0+Yy5tYl9pbnRyYSkgewogICAgICAgICBpbnQgZHVtbXk7CmRpZmYgLS1n aXQgYS9saWJhdmNvZGVjL3g4Ni9tcGVndmlkZW9lbmNkc3BfaW5pdC5jIGIvbGliYXZjb2RlYy94 ODYvbXBlZ3ZpZGVvZW5jZHNwX2luaXQuYwppbmRleCBiZjViNzIyMDE2Li5mNjE2OWI1Mzk5IDEw MDY0NAotLS0gYS9saWJhdmNvZGVjL3g4Ni9tcGVndmlkZW9lbmNkc3BfaW5pdC5jCisrKyBiL2xp YmF2Y29kZWMveDg2L21wZWd2aWRlb2VuY2RzcF9pbml0LmMKQEAgLTI3LDYgKzI3LDggQEAKICNp bmNsdWRlICJsaWJhdmNvZGVjL2F2Y29kZWMuaCIKICNpbmNsdWRlICJsaWJhdmNvZGVjL21wZWd2 aWRlb2VuY2RzcC5oIgogCit2b2lkIGZmX21wdl9kZW5vaXNlX2RjdF9zc2UyKGludDE2X3QgYmxv Y2tbNjRdLCBpbnQgZGN0X2Vycm9yX3N1bVs2NF0sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHVpbnQxNl90IGRjdF9vZmZzZXRbNjRdKTsKIGludCBmZl9waXhfc3VtMTZfc3Nl Mihjb25zdCB1aW50OF90ICpwaXgsIHB0cmRpZmZfdCBsaW5lX3NpemUpOwogaW50IGZmX3BpeF9z dW0xNl94b3AoY29uc3QgdWludDhfdCAqcGl4LCBwdHJkaWZmX3QgbGluZV9zaXplKTsKIGludCBm Zl9waXhfbm9ybTFfc3NlMihjb25zdCB1aW50OF90ICpwaXgsIHB0cmRpZmZfdCBsaW5lX3NpemUp OwpAQCAtMjA5LDYgKzIxMSw3IEBAIGF2X2NvbGQgdm9pZCBmZl9tcGVndmlkZW9lbmNkc3BfaW5p dF94ODYoTXBlZ3ZpZGVvRW5jRFNQQ29udGV4dCAqYywKICAgICBpbnQgY3B1X2ZsYWdzID0gYXZf Z2V0X2NwdV9mbGFncygpOwogCiAgICAgaWYgKEVYVEVSTkFMX1NTRTIoY3B1X2ZsYWdzKSkgewor ICAgICAgICBjLT5kZW5vaXNlX2RjdCA9IGZmX21wdl9kZW5vaXNlX2RjdF9zc2UyOwogICAgICAg ICBjLT5waXhfc3VtICAgICA9IGZmX3BpeF9zdW0xNl9zc2UyOwogICAgICAgICBjLT5waXhfbm9y bTEgICA9IGZmX3BpeF9ub3JtMV9zc2UyOwogICAgIH0KLS0gCjIuNTIuMAoKCkZyb20gMDMwNDcx ZGQ0ZWRjNmQ3OTIzZDlhZTFiY2NjMDNkMjZhMjZlMmYxNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5j b20+CkRhdGU6IFNhdCwgMTUgTm92IDIwMjUgMTk6MDY6MTQgKzAxMDAKU3ViamVjdDogW1BBVENI IDAxMS8zMDRdIHRlc3RzL2NoZWNrYXNtL21wZWd2aWRlb2VuY2RzcDogVGVzdCBkZW5vaXNlX2Rj dAoKUmV2aWV3ZWQtYnk6IEx5bm5lIDxkZXZAbHlubmUuZWU+ClNpZ25lZC1vZmYtYnk6IEFuZHJl YXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIHRlc3Rz L2NoZWNrYXNtL21wZWd2aWRlb2VuY2RzcC5jIHwgMzMgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv dGVzdHMvY2hlY2thc20vbXBlZ3ZpZGVvZW5jZHNwLmMgYi90ZXN0cy9jaGVja2FzbS9tcGVndmlk ZW9lbmNkc3AuYwppbmRleCBhNGE0ZmE2ZjVjLi45NTVjZDlmNWI3IDEwMDY0NAotLS0gYS90ZXN0 cy9jaGVja2FzbS9tcGVndmlkZW9lbmNkc3AuYworKysgYi90ZXN0cy9jaGVja2FzbS9tcGVndmlk ZW9lbmNkc3AuYwpAQCAtMzcsNiArMzcsMzcgQEAKICAgICAgICAgICAgIGJ1ZltqXSA9IHJuZCgp ICUgKG1heCAtIG1pbiArIDEpICsgbWluOyAgICAgIFwKICAgICB9IHdoaWxlICgwKQogCitzdGF0 aWMgdm9pZCBjaGVja19kZW5vaXNlX2RjdChNcGVndmlkZW9FbmNEU1BDb250ZXh0ICpjKQorewor ICAgIGRlY2xhcmVfZnVuYyh2b2lkLCBpbnQxNl90IGJsb2NrWzY0XSwgaW50IGRjdF9lcnJvcl9z dW1bNjRdLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MTZfdCBkY3Rfb2Zmc2V0 WzY0XSk7CisKKyAgICBpZiAoY2hlY2tfZnVuYyhjLT5kZW5vaXNlX2RjdCwgImRlbm9pc2VfZGN0 IikpIHsKKyAgICAgICAgREVDTEFSRV9BTElHTkVEKDE2LCBpbnQxNl90LCBibG9ja19yZWYpWzY0 XTsKKyAgICAgICAgREVDTEFSRV9BTElHTkVEKDE2LCBpbnQxNl90LCBibG9ja19uZXcpWzY0XTsK KyAgICAgICAgREVDTEFSRV9BTElHTkVEKDE2LCBpbnQsIGRjdF9lcnJvcl9zdW1fcmVmKVs2NF07 CisgICAgICAgIERFQ0xBUkVfQUxJR05FRCgxNiwgaW50LCBkY3RfZXJyb3Jfc3VtX25ldylbNjRd OworICAgICAgICBERUNMQVJFX0FMSUdORUQoMTYsIHVpbnQxNl90LCBkY3Rfb2Zmc2V0KVs2NF07 CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBGRl9BUlJBWV9FTEVNUyhibG9ja19y ZWYpOyArK2kpIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIHJhbmRvbSA9IHJuZCgpOworICAgICAg ICAgICAgYmxvY2tfcmVmW2ldID0gcmFuZG9tICYgKDEgPDwgMTYpID8gcmFuZG9tIDogMDsKKyAg ICAgICAgfQorICAgICAgICByYW5kb21pemVfYnVmZmVycyhkY3Rfb2Zmc2V0LCBzaXplb2YoZGN0 X29mZnNldCkpOworICAgICAgICByYW5kb21pemVfYnVmZmVyX2NsaXBwZWQoZGN0X2Vycm9yX3N1 bV9yZWYsIDAsICgxIDw8IDI0KSAtIDEpOworICAgICAgICBtZW1jcHkoYmxvY2tfbmV3LCBibG9j a19yZWYsIHNpemVvZihibG9ja19uZXcpKTsKKyAgICAgICAgbWVtY3B5KGRjdF9lcnJvcl9zdW1f bmV3LCBkY3RfZXJyb3Jfc3VtX3JlZiwgc2l6ZW9mKGRjdF9lcnJvcl9zdW1fcmVmKSk7CisKKyAg ICAgICAgY2FsbF9yZWYoYmxvY2tfcmVmLCBkY3RfZXJyb3Jfc3VtX3JlZiwgZGN0X29mZnNldCk7 CisgICAgICAgIGNhbGxfbmV3KGJsb2NrX25ldywgZGN0X2Vycm9yX3N1bV9uZXcsIGRjdF9vZmZz ZXQpOworICAgICAgICBpZiAobWVtY21wKGJsb2NrX3JlZiwgYmxvY2tfbmV3LCBzaXplb2YoYmxv Y2tfcmVmKSkgfHwKKyAgICAgICAgICAgIG1lbWNtcChkY3RfZXJyb3Jfc3VtX25ldywgZGN0X2Vy cm9yX3N1bV9yZWYsIHNpemVvZihkY3RfZXJyb3Jfc3VtX25ldykpKQorICAgICAgICAgICAgZmFp bCgpOworCisgICAgICAgIGJlbmNoX25ldyhibG9ja19uZXcsIGRjdF9lcnJvcl9zdW1fbmV3LCBk Y3Rfb2Zmc2V0KTsKKyAgICB9Cit9CisKIHN0YXRpYyB2b2lkIGNoZWNrX2FkZF84eDhiYXNpcyhN cGVndmlkZW9FbmNEU1BDb250ZXh0ICpjKQogewogICAgIGRlY2xhcmVfZnVuYyh2b2lkLCBpbnQx Nl90IHJlbVs2NF0sIGNvbnN0IGludDE2X3QgYmFzaXNbNjRdLCBpbnQgc2NhbGUpOwpAQCAtMTY2 LDYgKzE5Nyw4IEBAIHZvaWQgY2hlY2thc21fY2hlY2tfbXBlZ3ZpZGVvZW5jZHNwKHZvaWQpCiAK ICAgICBmZl9tcGVndmlkZW9lbmNkc3BfaW5pdCgmYywgJmF2Y3R4KTsKIAorICAgIGNoZWNrX2Rl bm9pc2VfZGN0KCZjKTsKKyAgICByZXBvcnQoImRlbm9pc2VfZGN0Iik7CiAgICAgY2hlY2tfcGl4 X3N1bSgmYyk7CiAgICAgcmVwb3J0KCJwaXhfc3VtIik7CiAgICAgY2hlY2tfcGl4X25vcm0xKCZj KTsKLS0gCjIuNTIuMAoKCkZyb20gYTA2NTBkY2UyOTVkMjJjY2ZlZDhmYjBkZDY4ZDQ1NzhkNDU1 M2EzZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxh bmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFNhdCwgMTUgTm92IDIwMjUgMTk6 NDQ6MDIgKzAxMDAKU3ViamVjdDogW1BBVENIIDAxMi8zMDRdIGF2Y29kZWMveDg2L21wZWd2aWRl b2VuY2RzcDogUG9ydAogYWRkXzh4OGJhc2lzX3Nzc2UzKCkgdG8gQVNNCgpCb3RoIEdDQyBhbmQg Q2xhbmcgY29tcGxldGVseSB1bnJvbGwgdGhlIHVubGlrZWx5IGxvb3AgYXQgLU8zLApsZWFkaW5n IHRvIGNvZGVzaXplIGJsb2F0OyB0aGVpciBjb2RlIGlzIGFsc28gc3Vib3B0aW1hbCwgYXMgdGhl eQpkb24ndCBtYWtlIHVzZSBvZiBwbXVsaHJzdyAoZXZlbiB3aXRoIC1tc3NzZTMpLiBUaGlzIGNv bW1pdAp0aGVyZWZvcmUgcG9ydHMgdGhlIHdob2xlIGZ1bmN0aW9uIHRvIGV4dGVybmFsIGFzc2Vt Ymx5LiBUaGUgbmV3CmZ1bmN0aW9uIG9jY3VwaWVzIDE3NkIgaGVyZSB2cyAxNDA2QiBmb3IgR0ND LgoKQmVuY2htYXJrcyBmb3IgYSB0ZXN0Y2FzZSB3aXRoIGh1Z2UgcXNjYWxlIChub3RpY2UgdGhh dCB0aGUgQyB2ZXJzaW9uCmlzIHVucm9sbGVkIGp1c3QgbGlrZSB0aGUgdW5saWtlbHkgbG9vcCBp biB0aGUgU1NTRTMgdmVyc2lvbik6CmFkZF84eDhiYXNpc19jOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgNDMuNCAoIDEuMDB4KQphZGRfOHg4YmFzaXNfc3NzZTMgKG9s ZCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQzLjYgKCAxLjAweCkKYWRkXzh4OGJh c2lzX3Nzc2UzIChuZXcpOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS45ICggMy42 M3gpCgpSZXZpZXdlZC1ieTogS2llcmFuIEt1bmh5YSA8a2llcmFuQGt1bmh5YS5jb20+ClJldmll d2VkLWJ5OiBMeW5uZSA8ZGV2QGx5bm5lLmVlPgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIFJoZWlu aGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KLS0tCiBsaWJhdmNvZGVjL3g4 Ni9tcGVndmlkZW9lbmNkc3AuYXNtICAgIHwgNTIgKysrKysrKysrKysrKysrKysrKysrKysrKysr CiBsaWJhdmNvZGVjL3g4Ni9tcGVndmlkZW9lbmNkc3BfaW5pdC5jIHwgNDYgKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDU5IGluc2VydGlvbnMoKyksIDM5IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2L21wZWd2aWRlb2VuY2RzcC5hc20g Yi9saWJhdmNvZGVjL3g4Ni9tcGVndmlkZW9lbmNkc3AuYXNtCmluZGV4IDBlODZhNTMwNGMuLjMw MGY5OGI0MzggMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L21wZWd2aWRlb2VuY2RzcC5hc20K KysrIGIvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVvZW5jZHNwLmFzbQpAQCAtMjUsNiArMjUsNTgg QEAKIAogU0VDVElPTiAudGV4dAogCis7IHZvaWQgZmZfYWRkXzh4OGJhc2lzX3Nzc2UzKGludDE2 X3QgcmVtWzY0XSwgY29uc3QgaW50MTZfdCBiYXNpc1s2NF0sIGludCBzY2FsZSkKK0lOSVRfWE1N IHNzc2UzCitjZ2xvYmFsIGFkZF84eDhiYXNpcywgMywgMytBUkNIX1g4Nl82NCwgNCwgcmVtLCBi YXNpcywgc2NhbGUKKyAgICBtb3ZkICAgICAgICAgICAgbTAsIHNjYWxlZAorICAgIGFkZCAgICAg ICAgIHNjYWxlZCwgMTAyNAorICAgIGFkZCAgICAgICAgIGJhc2lzcSwgMTI4CisgICAgYWRkICAg ICAgICAgICByZW1xLCAxMjgKKyVpZiBBUkNIX1g4Nl82NAorJWRlZmluZSBPRkYgcjNxCisgICAg bW92ICAgICAgICAgICAgcjNxLCAtMTI4CisgICAgY21wICAgICAgICAgc2NhbGVkLCAyMDQ3Cisl ZWxzZQorJWRlZmluZSBPRkYgcjJxCisgICAgY21wICAgICAgICAgc2NhbGVkLCAyMDQ3CisgICAg bW92ICAgICAgICAgICAgcjJxLCAtMTI4CislZW5kaWYKKyAgICBqYSAgICAgLmh1Z2Vfc2NhbGUK KworICAgIHB1bnBja2x3ZCAgICAgICBtMCwgbTAKKyAgICBwc2h1ZmQgICAgICAgICAgbTAsIG0w LCAweDAKKyAgICBwc2xsdyAgICAgICAgICAgbTAsIDUKKy5sb29wMToKKyAgICBtb3ZhICAgICAg ICAgICAgbTEsIFtiYXNpc3ErT0ZGXQorICAgIG1vdmEgICAgICAgICAgICBtMiwgW2Jhc2lzcStP RkYrMTZdCisgICAgcG11bGhyc3cgICAgICAgIG0xLCBtMAorICAgIHBtdWxocnN3ICAgICAgICBt MiwgbTAKKyAgICBwYWRkdyAgICAgICAgICAgbTEsIFtyZW1xK09GRl0KKyAgICBwYWRkdyAgICAg ICAgICAgbTIsIFtyZW1xK09GRisxNl0KKyAgICBtb3ZhICAgIFtyZW1xK09GRl0sIG0xCisgICAg bW92YSBbcmVtcStPRkYrMTZdLCBtMgorICAgIGFkZCAgICAgICAgICAgIE9GRiwgMzIKKyAgICBq cyAgICAgICAgICAubG9vcDEKKyAgICBSRVQKKworLmh1Z2Vfc2NhbGU6CisgICAgcHNsbGQgICAg ICAgICAgIG0wLCA2CisgICAgcHVucGNrbHdkICAgICAgIG0wLCBtMAorICAgIHBzaHVmZCAgICAg ICAgICBtMSwgbTAsIDB4NTUKKyAgICBwc3JsdyAgICAgICAgICAgbTAsIDEKKyAgICBwc2h1ZmQg ICAgICAgICAgbTAsIG0wLCAweDAKKy5sb29wMjoKKyAgICBtb3ZhICAgICAgICAgICAgbTIsIFti YXNpc3ErT0ZGXQorICAgIHBtdWxocnN3ICAgICAgICBtMywgbTIsIG0wCisgICAgcG11bGx3ICAg ICAgICAgIG0yLCBtMQorICAgIHBhZGR3ICAgICAgICAgICBtMiwgbTMKKyAgICBwYWRkdyAgICAg ICAgICAgbTIsIFtyZW1xK09GRl0KKyAgICBtb3ZhICAgIFtyZW1xK09GRl0sIG0yCisgICAgYWRk ICAgICAgICAgICAgT0ZGLCAxNgorICAgIGpzICAgICAgICAgIC5sb29wMgorICAgIFJFVAorCisK IElOSVRfWE1NIHNzZTIKIGNnbG9iYWwgbXB2X2Rlbm9pc2VfZGN0LCAzLCA0LCA3LCBibG9jaywg c3VtLCBvZmZzZXQKICAgICBweG9yICAgICAgICAgICAgbTYsIG02CmRpZmYgLS1naXQgYS9saWJh dmNvZGVjL3g4Ni9tcGVndmlkZW9lbmNkc3BfaW5pdC5jIGIvbGliYXZjb2RlYy94ODYvbXBlZ3Zp ZGVvZW5jZHNwX2luaXQuYwppbmRleCBmNjE2OWI1Mzk5Li4yMjBjNzU3ODVhIDEwMDY0NAotLS0g YS9saWJhdmNvZGVjL3g4Ni9tcGVndmlkZW9lbmNkc3BfaW5pdC5jCisrKyBiL2xpYmF2Y29kZWMv eDg2L21wZWd2aWRlb2VuY2RzcF9pbml0LmMKQEAgLTMyLDYgKzMyLDcgQEAgdm9pZCBmZl9tcHZf ZGVub2lzZV9kY3Rfc3NlMihpbnQxNl90IGJsb2NrWzY0XSwgaW50IGRjdF9lcnJvcl9zdW1bNjRd LAogaW50IGZmX3BpeF9zdW0xNl9zc2UyKGNvbnN0IHVpbnQ4X3QgKnBpeCwgcHRyZGlmZl90IGxp bmVfc2l6ZSk7CiBpbnQgZmZfcGl4X3N1bTE2X3hvcChjb25zdCB1aW50OF90ICpwaXgsIHB0cmRp ZmZfdCBsaW5lX3NpemUpOwogaW50IGZmX3BpeF9ub3JtMV9zc2UyKGNvbnN0IHVpbnQ4X3QgKnBp eCwgcHRyZGlmZl90IGxpbmVfc2l6ZSk7Cit2b2lkIGZmX2FkZF84eDhiYXNpc19zc3NlMyhpbnQx Nl90IHJlbVs2NF0sIGNvbnN0IGludDE2X3QgYmFzaXNbNjRdLCBpbnQgc2NhbGUpOwogCiAjaWYg SEFWRV9JTkxJTkVfQVNNCiAjaWYgSEFWRV9TU1NFM19JTkxJTkUKQEAgLTgzLDQxICs4NCw2IEBA IHN0YXRpYyBpbnQgdHJ5Xzh4OGJhc2lzX3Nzc2UzKGNvbnN0IGludDE2X3QgcmVtWzY0XSwgY29u c3QgaW50MTZfdCB3ZWlnaHRbNjRdLCBjCiAgICAgKTsKICAgICByZXR1cm4gaTsKIH0KLQotc3Rh dGljIHZvaWQgYWRkXzh4OGJhc2lzX3Nzc2UzKGludDE2X3QgcmVtWzY0XSwgY29uc3QgaW50MTZf dCBiYXNpc1s2NF0sIGludCBzY2FsZSkKLXsKLSAgICB4ODZfcmVnIGk9MDsKLQotICAgIGlmIChG RkFCUyhzY2FsZSkgPCAxMDI0KSB7Ci0gICAgICAgIHNjYWxlICo9IDEgPDwgKDE2ICsgU0NBTEVf T0ZGU0VUIC0gQkFTSVNfU0hJRlQgKyBSRUNPTl9TSElGVCk7Ci0gICAgICAgIF9fYXNtX18gdm9s YXRpbGUoCi0gICAgICAgICAgICAgICAgIm1vdmQgICAgICAgICAgICAgICAgJTMsICUleG1tMiAg ICAgXG5cdCIKLSAgICAgICAgICAgICAgICAicHVucGNrbHdkICAgICAgICUleG1tMiwgJSV4bW0y ICAgICBcblx0IgotICAgICAgICAgICAgICAgICJwc2h1ZmQgICAgICAkMCwgJSV4bW0yLCAlJXht bTIgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgIi5wMmFsaWduIDQgICAgICAgICAgICAgICAg ICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAiMTogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJtb3ZkcWEgICAgICAgICglMSwgJTAp LCAlJXhtbTAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgIm1vdmRxYSAgICAgIDE2KCUxLCAl MCksICUleG1tMSAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAicG11bGhyc3cgICAgICAgICUl eG1tMiwgJSV4bW0wICAgICBcblx0IgotICAgICAgICAgICAgICAgICJwbXVsaHJzdyAgICAgICAg JSV4bW0yLCAlJXhtbTEgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInBhZGR3ICAgICAgICAg KCUyLCAlMCksICUleG1tMCAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAicGFkZHcgICAgICAg MTYoJTIsICUwKSwgJSV4bW0xICAgICBcblx0IgotICAgICAgICAgICAgICAgICJtb3ZkcWEgICAg ICAgICAgJSV4bW0wLCAoJTIsICUwKSAgIFxuXHQiCi0gICAgICAgICAgICAgICAgIm1vdmRxYSAg ICAgICAgICAlJXhtbTEsIDE2KCUyLCAlMCkgXG5cdCIKLSAgICAgICAgICAgICAgICAiYWRkICAg ICAgICAgICAgICAgICQzMiwgJTAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJjbXAg ICAgICAgICAgICAgICAkMTI4LCAlMCAgICAgICAgIFxuXHQiIC8vIEZJWE1FIG9wdGltaXplICYg YmVuY2gKLSAgICAgICAgICAgICAgICAiIGpiICAgICAgICAgICAgICAgICAxYiAgICAgICAgICAg ICBcblx0IgotICAgICAgICAgICAgICAgIDogIityIiAoaSkKLSAgICAgICAgICAgICAgICA6ICJy IihiYXNpcyksICJyIihyZW0pLCAiZyIoc2NhbGUpCi0gICAgICAgICAgICAgICAgWE1NX0NMT0JC RVJTX09OTFkoIiV4bW0wIiwgIiV4bW0xIiwgIiV4bW0yIikKLSAgICAgICAgKTsKLSAgICB9IGVs c2UgewotICAgICAgICBmb3IgKGk9MDsgaTw4Kjg7IGkrKykgewotICAgICAgICAgICAgcmVtW2ld ICs9IChiYXNpc1tpXSpzY2FsZSArICgxPDwoQkFTSVNfU0hJRlQgLSBSRUNPTl9TSElGVC0xKSkp Pj4oQkFTSVNfU0hJRlQgLSBSRUNPTl9TSElGVCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KICNl bmRpZiAvKiBIQVZFX1NTU0UzX0lOTElORSAqLwogCiAvKiBEcmF3IHRoZSBlZGdlcyBvZiB3aWR0 aCAndycgb2YgYW4gaW1hZ2Ugb2Ygc2l6ZSB3aWR0aCwgaGVpZ2h0ICovCkBAIC0yMjcsMTUgKzE5 MywxNyBAQCBhdl9jb2xkIHZvaWQgZmZfbXBlZ3ZpZGVvZW5jZHNwX2luaXRfeDg2KE1wZWd2aWRl b0VuY0RTUENvbnRleHQgKmMsCiAgICAgICAgICAgICBjLT5kcmF3X2VkZ2VzID0gZHJhd19lZGdl c19tbXg7CiAgICAgICAgIH0KICAgICB9CisjZW5kaWYgLyogSEFWRV9JTkxJTkVfQVNNICovCiAK KyAgICBpZiAoWDg2X1NTU0UzKGNwdV9mbGFncykpIHsKICNpZiBIQVZFX1NTU0UzX0lOTElORQot ICAgIGlmIChJTkxJTkVfU1NTRTMoY3B1X2ZsYWdzKSkgewogICAgICAgICBpZiAoIShhdmN0eC0+ ZmxhZ3MgJiBBVl9DT0RFQ19GTEFHX0JJVEVYQUNUKSkgewogICAgICAgICAgICAgYy0+dHJ5Xzh4 OGJhc2lzID0gdHJ5Xzh4OGJhc2lzX3Nzc2UzOwogICAgICAgICB9Ci0gICAgICAgIGMtPmFkZF84 eDhiYXNpcyA9IGFkZF84eDhiYXNpc19zc3NlMzsKLSAgICB9CiAjZW5kaWYgLyogSEFWRV9TU1NF M19JTkxJTkUgKi8KKyNpZiBIQVZFX1NTU0UzX0VYVEVSTkFMCisgICAgICAgIGMtPmFkZF84eDhi YXNpcyA9IGZmX2FkZF84eDhiYXNpc19zc3NlMzsKKyNlbmRpZgorICAgIH0KIAotI2VuZGlmIC8q IEhBVkVfSU5MSU5FX0FTTSAqLwogfQotLSAKMi41Mi4wCgoKRnJvbSA2NzI1NTY3MGI3Yjc0NmVj NmE5MjI2NzY0NTYyNzQwYmYzNzRlNDZiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBB bmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTog U2F0LCAxNSBOb3YgMjAyNSAxOTo1NjoyMyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDEzLzMwNF0g YXZjb2RlYy94ODYvbXBlZ3ZpZGVvZW5jX3RlbXBsYXRlOiBBdm9pZCB0b3VjaGluZwogbm9udm9s YXRpbGUgcmVnaXN0ZXIKCnhtbTcgaXMgbm9udm9sYXRpbGUgb24geDY0IFdpbmRvd3MuCgpSZXZp ZXdlZC1ieTogTHlubmUgPGRldkBseW5uZS5lZT4KU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVp bmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGliYXZjb2RlYy94 ODYvbXBlZ3ZpZGVvZW5jX3RlbXBsYXRlLmMgfCAxNiArKysrKysrKy0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xp YmF2Y29kZWMveDg2L21wZWd2aWRlb2VuY190ZW1wbGF0ZS5jIGIvbGliYXZjb2RlYy94ODYvbXBl Z3ZpZGVvZW5jX3RlbXBsYXRlLmMKaW5kZXggMTRlOTkzZGUyYi4uYjU0MTdmNmQzMiAxMDA2NDQK LS0tIGEvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVvZW5jX3RlbXBsYXRlLmMKKysrIGIvbGliYXZj b2RlYy94ODYvbXBlZ3ZpZGVvZW5jX3RlbXBsYXRlLmMKQEAgLTExNyw3ICsxMTcsNyBAQCBzdGF0 aWMgaW50IFJFTkFNRShkY3RfcXVhbnRpemUpKE1QVkVuY0NvbnRleHQgKmNvbnN0IHMsCiAgICAg ICAgIF9fYXNtX18gdm9sYXRpbGUoCiAgICAgICAgICAgICAibW92ZCAlJSJGRl9SRUdfYSIsICUl eG1tMyAgICAgICAgICBcblx0IiAvLyBsYXN0X25vbl96ZXJvX3AxCiAgICAgICAgICAgICBTUFJF QURXKCIlJXhtbTMiKQotICAgICAgICAgICAgInB4b3IgICUleG1tNywgJSV4bW03ICAgICAgICAg ICAgICAgXG5cdCIgLy8gMAorICAgICAgICAgICAgInB4b3IgICUleG1tMiwgJSV4bW0yICAgICAg ICAgICAgICAgXG5cdCIgLy8gMAogICAgICAgICAgICAgInB4b3IgICUleG1tNCwgJSV4bW00ICAg ICAgICAgICAgICAgXG5cdCIgLy8gMAogICAgICAgICAgICAgIm1vdmRxYSAgKCUyKSwgJSV4bW01 ICAgICAgICAgICAgICAgXG5cdCIgLy8gcW1hdFswXQogICAgICAgICAgICAgInB4b3IgICUleG1t NiwgJSV4bW02ICAgICAgICAgICAgICAgXG5cdCIKQEAgLTEzMiw5ICsxMzIsOSBAQCBzdGF0aWMg aW50IFJFTkFNRShkY3RfcXVhbnRpemUpKE1QVkVuY0NvbnRleHQgKmNvbnN0IHMsCiAgICAgICAg ICAgICAicG9yICAgICAlJXhtbTAsICUleG1tNCAgICAgICAgICAgICBcblx0IgogICAgICAgICAg ICAgUkVTVE9SRV9TSUdOKCIlJXhtbTEiLCAiJSV4bW0wIikgICAgICAgICAgLy8gb3V0PSgoQUJT KGJsb2NrW2ldKSpxbWF0WzBdIC0gYmlhc1swXSpxbWF0WzBdKT4+MTYpKnNpZ24oYmxvY2tbaV0p CiAgICAgICAgICAgICAibW92ZHFhICAlJXhtbTAsICglNSwgJSUiRkZfUkVHX2EiKSBcblx0Igot ICAgICAgICAgICAgInBjbXBlcXcgJSV4bW03LCAlJXhtbTAgICAgICAgICAgICAgXG5cdCIgLy8g b3V0PT0wID8gMHhGRiA6IDB4MDAKKyAgICAgICAgICAgICJwY21wZXF3ICUleG1tMiwgJSV4bW0w ICAgICAgICAgICAgIFxuXHQiIC8vIG91dD09MCA/IDB4RkYgOiAweDAwCiAgICAgICAgICAgICAi bW92ZHFhICAoJTQsICUlIkZGX1JFR19hIiksICUleG1tMSBcblx0IgotICAgICAgICAgICAgIm1v dmRxYSAgJSV4bW03LCAoJTEsICUlIkZGX1JFR19hIikgXG5cdCIgLy8gMAorICAgICAgICAgICAg Im1vdmRxYSAgJSV4bW0yLCAoJTEsICUlIkZGX1JFR19hIikgXG5cdCIgLy8gMAogICAgICAgICAg ICAgInBhbmRuICAgJSV4bW0xLCAlJXhtbTAgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAg ICJwbWF4c3cgICUleG1tMCwgJSV4bW0zICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAi YWRkICAgICAgICAkMTYsICUlIkZGX1JFR19hIiAgICAgICBcblx0IgpAQCAtMTQ2LDEzICsxNDYs MTMgQEAgc3RhdGljIGludCBSRU5BTUUoZGN0X3F1YW50aXplKShNUFZFbmNDb250ZXh0ICpjb25z dCBzLAogICAgICAgICAgICAgOiAiciIgKGJsb2NrKzY0KSwgInIiIChxbWF0KSwgInIiIChiaWFz KSwKICAgICAgICAgICAgICAgInIiIChpbnZfemlnemFnX2RpcmVjdDE2ICsgNjQpLCAiciIgKHRl bXBfYmxvY2sgKyA2NCkKICAgICAgICAgICAgICAgWE1NX0NMT0JCRVJTX09OTFkoIiV4bW0wIiwg IiV4bW0xIiwgIiV4bW0yIiwgIiV4bW0zIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIiV4bW00IiwgIiV4bW01IiwgIiV4bW02IiwgIiV4bW03IikKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIiV4bW00IiwgIiV4bW01IiwgIiV4bW02IikKICAgICAgICAgKTsKICAg ICB9ZWxzZXsgLy8gRk1UX0gyNjMKICAgICAgICAgX19hc21fXyB2b2xhdGlsZSgKICAgICAgICAg ICAgICJtb3ZkICUlIkZGX1JFR19hIiwgJSV4bW0zICAgICAgICAgIFxuXHQiIC8vIGxhc3Rfbm9u X3plcm9fcDEKICAgICAgICAgICAgIFNQUkVBRFcoIiUleG1tMyIpCi0gICAgICAgICAgICAicHhv ciAlJXhtbTcsICUleG1tNyAgICAgICAgICAgICAgICBcblx0IiAvLyAwCisgICAgICAgICAgICAi cHhvciAlJXhtbTIsICUleG1tMiAgICAgICAgICAgICAgICBcblx0IiAvLyAwCiAgICAgICAgICAg ICAicHhvciAlJXhtbTQsICUleG1tNCAgICAgICAgICAgICAgICBcblx0IiAvLyAwCiAgICAgICAg ICAgICAibW92ICQtMTI4LCAlJSJGRl9SRUdfYSIgICAgICAgICAgICBcblx0IgogICAgICAgICAg ICAgIi5wMmFsaWduIDQgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKQEAgLTE2Niw5ICsx NjYsOSBAQCBzdGF0aWMgaW50IFJFTkFNRShkY3RfcXVhbnRpemUpKE1QVkVuY0NvbnRleHQgKmNv bnN0IHMsCiAgICAgICAgICAgICAicG9yICAgICAlJXhtbTAsICUleG1tNCAgICAgICAgICAgICBc blx0IgogICAgICAgICAgICAgUkVTVE9SRV9TSUdOKCIlJXhtbTEiLCAiJSV4bW0wIikgICAgICAg ICAgLy8gb3V0PSgoQUJTKGJsb2NrW2ldKSpxbWF0WzBdIC0gYmlhc1swXSpxbWF0WzBdKT4+MTYp KnNpZ24oYmxvY2tbaV0pCiAgICAgICAgICAgICAibW92ZHFhICAlJXhtbTAsICglNSwgJSUiRkZf UkVHX2EiKSBcblx0IgotICAgICAgICAgICAgInBjbXBlcXcgJSV4bW03LCAlJXhtbTAgICAgICAg ICAgICAgXG5cdCIgLy8gb3V0PT0wID8gMHhGRiA6IDB4MDAKKyAgICAgICAgICAgICJwY21wZXF3 ICUleG1tMiwgJSV4bW0wICAgICAgICAgICAgIFxuXHQiIC8vIG91dD09MCA/IDB4RkYgOiAweDAw CiAgICAgICAgICAgICAibW92ZHFhICAoJTQsICUlIkZGX1JFR19hIiksICUleG1tMSBcblx0Igot ICAgICAgICAgICAgIm1vdmRxYSAgJSV4bW03LCAoJTEsICUlIkZGX1JFR19hIikgXG5cdCIgLy8g MAorICAgICAgICAgICAgIm1vdmRxYSAgJSV4bW0yLCAoJTEsICUlIkZGX1JFR19hIikgXG5cdCIg Ly8gMAogICAgICAgICAgICAgInBhbmRuICAgJSV4bW0xLCAlJXhtbTAgICAgICAgICAgICAgXG5c dCIKICAgICAgICAgICAgICJwbWF4c3cgICUleG1tMCwgJSV4bW0zICAgICAgICAgICAgIFxuXHQi CiAgICAgICAgICAgICAiYWRkICAgICAgICAkMTYsICUlIkZGX1JFR19hIiAgICAgICBcblx0IgpA QCAtMTgwLDcgKzE4MCw3IEBAIHN0YXRpYyBpbnQgUkVOQU1FKGRjdF9xdWFudGl6ZSkoTVBWRW5j Q29udGV4dCAqY29uc3QgcywKICAgICAgICAgICAgIDogInIiIChibG9jays2NCksICJyIiAocW1h dCs2NCksICJyIiAoYmlhcys2NCksCiAgICAgICAgICAgICAgICJyIiAoaW52X3ppZ3phZ19kaXJl Y3QxNiArIDY0KSwgInIiICh0ZW1wX2Jsb2NrICsgNjQpCiAgICAgICAgICAgICAgIFhNTV9DTE9C QkVSU19PTkxZKCIleG1tMCIsICIleG1tMSIsICIleG1tMiIsICIleG1tMyIsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICIleG1tNCIsICIleG1tNSIsICIleG1tNiIsICIleG1tNyIp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIleG1tNCIsICIleG1tNSIsICIleG1t NiIpCiAgICAgICAgICk7CiAgICAgfQogICAgIF9fYXNtX18gdm9sYXRpbGUoCi0tIAoyLjUyLjAK CgpGcm9tIDM3ZTcyNmNjYWRlMDU0M2IwNGEyMTU3NzljZDM3NzA2YmJlNTllMzggTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhh cmR0QG91dGxvb2suY29tPgpEYXRlOiBTdW4sIDE2IE5vdiAyMDI1IDExOjEwOjA3ICswMTAwClN1 YmplY3Q6IFtQQVRDSCAwMTQvMzA0XSBhdmNvZGVjL3g4Ni9tcGVndmlkZW9lbmNfdGVtcGxhdGU6 IFJlZHVjZSBudW1iZXIgb2YKIHJlZ2lzdGVycyB1c2VkCgpxbWF0IGFuZCBiaWFzIGFsd2F5cyBo YXZlIGEgY29uc3RhbnQgb2Zmc2V0LCBzbyBvbmUgY2FuIHVzZSBvbmUgcmVnaXN0ZXIKdG8gYWRk cmVzcyBib3RoIG9mIHRoZW0uIFRoaXMgYWxsb3dzIHRvIHJlbW92ZSB0aGUgY2hlY2sgZm9yIEhB VkVfNlJFR1MKKHVudGVzdGVkIG9uIGEgc3lzdGVtIHdoZXJlIEhBVkVfNlJFR1MgaXMgZmFsc2Up LgpBbHNvIGF2b2lkIEZGX1JFR19hIHdoaWxlIGF0IGl0LgoKUmV2aWV3ZWQtYnk6IEx5bm5lIDxk ZXZAbHlubmUuZWU+ClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5y aGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIGxpYmF2Y29kZWMveDg2L21wZWd2aWRlb2VuYy5j ICAgICAgICAgIHwgIDggKy0tLS0tLS0KIGxpYmF2Y29kZWMveDg2L21wZWd2aWRlb2VuY190ZW1w bGF0ZS5jIHwgMjEgKysrKysrKysrLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEwIGlu c2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2 L21wZWd2aWRlb2VuYy5jIGIvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVvZW5jLmMKaW5kZXggYzY2 N2RjZDJhMi4uMjRkZDA0OTIwMCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVv ZW5jLmMKKysrIGIvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVvZW5jLmMKQEAgLTM5LDggKzM5LDYg QEAgREVDTEFSRV9BTElHTkVEKDE2LCBzdGF0aWMgY29uc3QgdWludDE2X3QsIGludl96aWd6YWdf ZGlyZWN0MTYpWzY0XSA9IHsKICAgICAzNiwgMzcsIDQ5LCA1MCwgNTgsIDU5LCA2MywgNjQsCiB9 OwogCi0jaWYgSEFWRV82UkVHUwotCiAjaWYgSEFWRV9TU0UyX0lOTElORQogI2RlZmluZSBDT01Q SUxFX1RFTVBMQVRFX1NTU0UzICAwCiAjZGVmaW5lIFJFTkFNRShhKSAgICAgIGEgIyMgX3NzZTIK QEAgLTU1LDggKzUzLDYgQEAgREVDTEFSRV9BTElHTkVEKDE2LCBzdGF0aWMgY29uc3QgdWludDE2 X3QsIGludl96aWd6YWdfZGlyZWN0MTYpWzY0XSA9IHsKICNpbmNsdWRlICJtcGVndmlkZW9lbmNf dGVtcGxhdGUuYyIKICNlbmRpZiAvKiBIQVZFX1NTU0UzX0lOTElORSAqLwogCi0jZW5kaWYgLyog SEFWRV82UkVHUyAqLwotCiBhdl9jb2xkIHZvaWQgZmZfZGN0X2VuY29kZV9pbml0X3g4NihNUFZF bmNDb250ZXh0ICpjb25zdCBzKQogewogICAgIGNvbnN0IGludCBkY3RfYWxnbyA9IHMtPmMuYXZj dHgtPmRjdF9hbGdvOwpAQCAtNjUsMTEgKzYxLDkgQEAgYXZfY29sZCB2b2lkIGZmX2RjdF9lbmNv ZGVfaW5pdF94ODYoTVBWRW5jQ29udGV4dCAqY29uc3QgcykKICNpZiBIQVZFX1NTRTJfSU5MSU5F CiAgICAgICAgIGludCBjcHVfZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7CiAgICAgICAgIGlm IChJTkxJTkVfU1NFMihjcHVfZmxhZ3MpKSB7Ci0jaWYgSEFWRV82UkVHUwogICAgICAgICAgICAg cy0+ZGN0X3F1YW50aXplID0gZGN0X3F1YW50aXplX3NzZTI7Ci0jZW5kaWYKICAgICAgICAgfQot I2lmIEhBVkVfNlJFR1MgJiYgSEFWRV9TU1NFM19JTkxJTkUKKyNpZiBIQVZFX1NTU0UzX0lOTElO RQogICAgICAgICBpZiAoSU5MSU5FX1NTU0UzKGNwdV9mbGFncykpCiAgICAgICAgICAgICBzLT5k Y3RfcXVhbnRpemUgPSBkY3RfcXVhbnRpemVfc3NzZTM7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2xp YmF2Y29kZWMveDg2L21wZWd2aWRlb2VuY190ZW1wbGF0ZS5jIGIvbGliYXZjb2RlYy94ODYvbXBl Z3ZpZGVvZW5jX3RlbXBsYXRlLmMKaW5kZXggYjU0MTdmNmQzMi4uZTZjZTc5MTM0NyAxMDA2NDQK LS0tIGEvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVvZW5jX3RlbXBsYXRlLmMKKysrIGIvbGliYXZj b2RlYy94ODYvbXBlZ3ZpZGVvZW5jX3RlbXBsYXRlLmMKQEAgLTcwLDcgKzcwLDcgQEAgc3RhdGlj IGludCBSRU5BTUUoZGN0X3F1YW50aXplKShNUFZFbmNDb250ZXh0ICpjb25zdCBzLAogewogICAg IHg4Nl9yZWcgbGFzdF9ub25femVyb19wMTsKICAgICBpbnQgbGV2ZWw9MCwgcTsgLy89MCBpcyBi ZWNhdXNlIGdjYyBzYXlzIHVuaW5pdGlhbGl6ZWQgLi4uCi0gICAgY29uc3QgdWludDE2X3QgKnFt YXQsICpiaWFzOworICAgIGNvbnN0IHVpbnQxNl90ICpxbWF0OwogICAgIExPQ0FMX0FMSUdORURf MTYoaW50MTZfdCwgdGVtcF9ibG9jaywgWzY0XSk7CiAKICAgICAvL3MtPmZkY3QgKGJsb2NrKTsK QEAgLTg2LDExICs4Niw5IEBAIHN0YXRpYyBpbnQgUkVOQU1FKGRjdF9xdWFudGl6ZSkoTVBWRW5j Q29udGV4dCAqY29uc3QgcywKICAgICAgICAgaW50IGR1bW15OwogICAgICAgICBpZiAobiA8IDQp ewogICAgICAgICAgICAgcSA9IHMtPmMueV9kY19zY2FsZTsKLSAgICAgICAgICAgIGJpYXMgPSBz LT5xX2ludHJhX21hdHJpeDE2W3FzY2FsZV1bMV07CiAgICAgICAgICAgICBxbWF0ID0gcy0+cV9p bnRyYV9tYXRyaXgxNltxc2NhbGVdWzBdOwogICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgIHEg PSBzLT5jLmNfZGNfc2NhbGU7Ci0gICAgICAgICAgICBiaWFzID0gcy0+cV9jaHJvbWFfaW50cmFf bWF0cml4MTZbcXNjYWxlXVsxXTsKICAgICAgICAgICAgIHFtYXQgPSBzLT5xX2Nocm9tYV9pbnRy YV9tYXRyaXgxNltxc2NhbGVdWzBdOwogICAgICAgICB9CiAgICAgICAgIC8qIG5vdGU6IGJsb2Nr WzBdIGlzIGFzc3VtZWQgdG8gYmUgcG9zaXRpdmUgKi8KQEAgLTEwOSw3ICsxMDcsNiBAQCBzdGF0 aWMgaW50IFJFTkFNRShkY3RfcXVhbnRpemUpKE1QVkVuY0NvbnRleHQgKmNvbnN0IHMsCiAgICAg ICAgIGxhc3Rfbm9uX3plcm9fcDEgPSAxOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGxhc3Rfbm9u X3plcm9fcDEgPSAwOwotICAgICAgICBiaWFzID0gcy0+cV9pbnRlcl9tYXRyaXgxNltxc2NhbGVd WzFdOwogICAgICAgICBxbWF0ID0gcy0+cV9pbnRlcl9tYXRyaXgxNltxc2NhbGVdWzBdOwogICAg IH0KIApAQCAtMTIxLDcgKzExOCw3IEBAIHN0YXRpYyBpbnQgUkVOQU1FKGRjdF9xdWFudGl6ZSko TVBWRW5jQ29udGV4dCAqY29uc3QgcywKICAgICAgICAgICAgICJweG9yICAlJXhtbTQsICUleG1t NCAgICAgICAgICAgICAgIFxuXHQiIC8vIDAKICAgICAgICAgICAgICJtb3ZkcWEgICglMiksICUl eG1tNSAgICAgICAgICAgICAgIFxuXHQiIC8vIHFtYXRbMF0KICAgICAgICAgICAgICJweG9yICAl JXhtbTYsICUleG1tNiAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicHN1YncgICAo JTMpLCAlJXhtbTYgICAgICAgICAgICAgICBcblx0IiAvLyAtYmlhc1swXQorICAgICAgICAgICAg InBzdWJ3IDEyOCglMiksICUleG1tNiAgICAgICAgICAgICAgXG5cdCIgLy8gLWJpYXNbMF0KICAg ICAgICAgICAgICJtb3YgJC0xMjgsICUlIkZGX1JFR19hIiAgICAgICAgICAgIFxuXHQiCiAgICAg ICAgICAgICAiLnAyYWxpZ24gNCAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgogICAgICAg ICAgICAgIjE6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKQEAgLTEzMSw5 ICsxMjgsOSBAQCBzdGF0aWMgaW50IFJFTkFNRShkY3RfcXVhbnRpemUpKE1QVkVuY0NvbnRleHQg KmNvbnN0IHMsCiAgICAgICAgICAgICAicG11bGh3ICAlJXhtbTUsICUleG1tMCAgICAgICAgICAg ICBcblx0IiAvLyAoQUJTKGJsb2NrW2ldKSpxbWF0WzBdIC0gYmlhc1swXSpxbWF0WzBdKT4+MTYK ICAgICAgICAgICAgICJwb3IgICAgICUleG1tMCwgJSV4bW00ICAgICAgICAgICAgIFxuXHQiCiAg ICAgICAgICAgICBSRVNUT1JFX1NJR04oIiUleG1tMSIsICIlJXhtbTAiKSAgICAgICAgICAvLyBv dXQ9KChBQlMoYmxvY2tbaV0pKnFtYXRbMF0gLSBiaWFzWzBdKnFtYXRbMF0pPj4xNikqc2lnbihi bG9ja1tpXSkKLSAgICAgICAgICAgICJtb3ZkcWEgICUleG1tMCwgKCU1LCAlJSJGRl9SRUdfYSIp IFxuXHQiCisgICAgICAgICAgICAibW92ZHFhICAlJXhtbTAsICglNCwgJTApICAgICAgICAgICBc blx0IgogICAgICAgICAgICAgInBjbXBlcXcgJSV4bW0yLCAlJXhtbTAgICAgICAgICAgICAgXG5c dCIgLy8gb3V0PT0wID8gMHhGRiA6IDB4MDAKLSAgICAgICAgICAgICJtb3ZkcWEgICglNCwgJSUi RkZfUkVHX2EiKSwgJSV4bW0xIFxuXHQiCisgICAgICAgICAgICAibW92ZHFhICAoJTMsICUwKSwg JSV4bW0xICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgIm1vdmRxYSAgJSV4bW0yLCAoJTEs ICUlIkZGX1JFR19hIikgXG5cdCIgLy8gMAogICAgICAgICAgICAgInBhbmRuICAgJSV4bW0xLCAl JXhtbTAgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJwbWF4c3cgICUleG1tMCwgJSV4 bW0zICAgICAgICAgICAgIFxuXHQiCkBAIC0xNDMsNyArMTQwLDcgQEAgc3RhdGljIGludCBSRU5B TUUoZGN0X3F1YW50aXplKShNUFZFbmNDb250ZXh0ICpjb25zdCBzLAogICAgICAgICAgICAgIm1v dmQgJSV4bW0zLCAlJSJGRl9SRUdfYSIgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJtb3Z6 YmwgJSVhbCwgJSVlYXggICAgICAgICAgICAgICAgIFxuXHQiIC8vIGxhc3Rfbm9uX3plcm9fcDEK ICAgICAgICAgICAgIDogIithIiAobGFzdF9ub25femVyb19wMSkKLSAgICAgICAgICAgIDogInIi IChibG9jays2NCksICJyIiAocW1hdCksICJyIiAoYmlhcyksCisgICAgICAgICAgICA6ICJyIiAo YmxvY2srNjQpLCAiciIgKHFtYXQpLAogICAgICAgICAgICAgICAiciIgKGludl96aWd6YWdfZGly ZWN0MTYgKyA2NCksICJyIiAodGVtcF9ibG9jayArIDY0KQogICAgICAgICAgICAgICBYTU1fQ0xP QkJFUlNfT05MWSgiJXhtbTAiLCAiJXhtbTEiLCAiJXhtbTIiLCAiJXhtbTMiLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiJXhtbTQiLCAiJXhtbTUiLCAiJXhtbTYiKQpAQCAtMTU5 LDE1ICsxNTYsMTUgQEAgc3RhdGljIGludCBSRU5BTUUoZGN0X3F1YW50aXplKShNUFZFbmNDb250 ZXh0ICpjb25zdCBzLAogICAgICAgICAgICAgIjE6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG5cdCIKICAgICAgICAgICAgICJtb3ZkcWEgICglMSwgJSUiRkZfUkVHX2EiKSwgJSV4 bW0wIFxuXHQiIC8vIGJsb2NrW2ldCiAgICAgICAgICAgICBTQVZFX1NJR04oIiUleG1tMSIsICIl JXhtbTAiKSAgICAgICAgICAgICAvLyBBQlMoYmxvY2tbaV0pCi0gICAgICAgICAgICAibW92ZHFh ICAoJTMsICUlIkZGX1JFR19hIiksICUleG1tNiBcblx0IiAvLyBiaWFzWzBdCisgICAgICAgICAg ICAibW92ZHFhICAxMjgoJTIsICUwKSwgJSV4bW02ICAgICAgICBcblx0IiAvLyBiaWFzW2ldCiAg ICAgICAgICAgICAicGFkZHVzdyAlJXhtbTYsICUleG1tMCAgICAgICAgICAgICBcblx0IiAvLyBB QlMoYmxvY2tbaV0pICsgYmlhc1swXQogICAgICAgICAgICAgIm1vdmRxYSAgKCUyLCAlJSJGRl9S RUdfYSIpLCAlJXhtbTUgXG5cdCIgLy8gcW1hdFtpXQogICAgICAgICAgICAgInBtdWxodyAgJSV4 bW01LCAlJXhtbTAgICAgICAgICAgICAgXG5cdCIgLy8gKEFCUyhibG9ja1tpXSkqcW1hdFswXSAr IGJpYXNbMF0qcW1hdFswXSk+PjE2CiAgICAgICAgICAgICAicG9yICAgICAlJXhtbTAsICUleG1t NCAgICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgUkVTVE9SRV9TSUdOKCIlJXhtbTEiLCAi JSV4bW0wIikgICAgICAgICAgLy8gb3V0PSgoQUJTKGJsb2NrW2ldKSpxbWF0WzBdIC0gYmlhc1sw XSpxbWF0WzBdKT4+MTYpKnNpZ24oYmxvY2tbaV0pCi0gICAgICAgICAgICAibW92ZHFhICAlJXht bTAsICglNSwgJSUiRkZfUkVHX2EiKSBcblx0IgorICAgICAgICAgICAgIm1vdmRxYSAgJSV4bW0w LCAoJTQsICUwKSAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJwY21wZXF3ICUleG1tMiwg JSV4bW0wICAgICAgICAgICAgIFxuXHQiIC8vIG91dD09MCA/IDB4RkYgOiAweDAwCi0gICAgICAg ICAgICAibW92ZHFhICAoJTQsICUlIkZGX1JFR19hIiksICUleG1tMSBcblx0IgorICAgICAgICAg ICAgIm1vdmRxYSAgKCUzLCAlMCksICUleG1tMSAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAg ICJtb3ZkcWEgICUleG1tMiwgKCUxLCAlJSJGRl9SRUdfYSIpIFxuXHQiIC8vIDAKICAgICAgICAg ICAgICJwYW5kbiAgICUleG1tMSwgJSV4bW0wICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAg ICAicG1heHN3ICAlJXhtbTAsICUleG1tMyAgICAgICAgICAgICBcblx0IgpAQCAtMTc3LDcgKzE3 NCw3IEBAIHN0YXRpYyBpbnQgUkVOQU1FKGRjdF9xdWFudGl6ZSkoTVBWRW5jQ29udGV4dCAqY29u c3QgcywKICAgICAgICAgICAgICJtb3ZkICUleG1tMywgJSUiRkZfUkVHX2EiICAgICAgICAgIFxu XHQiCiAgICAgICAgICAgICAibW92emJsICUlYWwsICUlZWF4ICAgICAgICAgICAgICAgICBcblx0 IiAvLyBsYXN0X25vbl96ZXJvX3AxCiAgICAgICAgICAgICA6ICIrYSIgKGxhc3Rfbm9uX3plcm9f cDEpCi0gICAgICAgICAgICA6ICJyIiAoYmxvY2srNjQpLCAiciIgKHFtYXQrNjQpLCAiciIgKGJp YXMrNjQpLAorICAgICAgICAgICAgOiAiciIgKGJsb2NrKzY0KSwgInIiIChxbWF0KzY0KSwKICAg ICAgICAgICAgICAgInIiIChpbnZfemlnemFnX2RpcmVjdDE2ICsgNjQpLCAiciIgKHRlbXBfYmxv Y2sgKyA2NCkKICAgICAgICAgICAgICAgWE1NX0NMT0JCRVJTX09OTFkoIiV4bW0wIiwgIiV4bW0x IiwgIiV4bW0yIiwgIiV4bW0zIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiV4 bW00IiwgIiV4bW01IiwgIiV4bW02IikKLS0gCjIuNTIuMAoKCkZyb20gNTIzNjk3ODIzZjQzMjNj OTMyOTU3YzNhMTBkMThlMDgzZWRmZDQ1ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog QW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6 IFN1biwgMTYgTm92IDIwMjUgMTI6MTA6MjIgKzAxMDAKU3ViamVjdDogW1BBVENIIDAxNS8zMDRd IGF2dXRpbC94ODYvYXNtOiBSZW1vdmUgd3JvbmcgY29tbWVudCwgcmVuYW1lCiBGRl9SRUdfc3AK CkJlZm9yZSBGRm1wZWcgY29tbWl0IDUzMWIwYTMxNmIyNGYwMDk2NWNkOGE4OGVmZGJlYTJjNmQ2 MzE0N2YsCkZGbXBlZyB1c2VkIFJFR19TUCBhcyBtYWNybyBmb3IgdGhlIHN0YWNrIHBvaW50ZXIs IHlldCB0aGlzCmNsYXNoZWQgd2l0aCBhIFJFR19TUCBkZWZpbmUgaW4gU29sYXJpcyBzeXN0ZW0g aGVhZGVycywgc28gaXQKd2FzIGNoYW5nZWQgdG8gUkVHX3NwIGFuZCBhIGNvbW1lbnQgd2FzIGFk ZGVkIGZvciB0aGlzLgoKTGliYXYgZml4ZWQgaXQgYnkgYWRkaW5nIGFuIEZGXyBwcmVmaXggdG8g dGhlIG1hY3JvcyBpbgoxZTljNWJmNGMxMzZmZTllMDEwY2M4YTdlNzI3MGJiYTBkMWJmNDVlLiBG Rm1wZWcgc3dpdGNoZWQKdG8gdXNpbmcgdGhlc2UgcHJlZml4ZXMgaW4gOWViM2RhMmY5OTQyY2Yx YjExNDhkMjQyYmNjZmMzODNmNjY2ZmViNiwKdXNpbmcgRkZfUkVHX3NwIGluc3RlYWQgb2YgTGli YXYncyBGRl9SRUdfU1AuIEluIHNhaWQgY29tbWl0CnRoZSBjb21tZW50IHdhcyBjaGFuZ2VkIHRv IGNsYWltIHRoYXQgU29sYXJpcyBzeXN0ZW0gaGVhZGVycwpkZWZpbmUgRkZfUkVHX1NQLCBidXQg dGhpcyBpcyAobW9zdCBsaWtlbHkpIHdyb25nLgoKVGhpcyBjb21taXQgcmVtb3ZlcyB0aGUgd3Jv bmcgY29tbWVudCBhbmQgcmVuYW1lcyB0aGUgKGFjdHVhbGx5IHVudXNlZCkKbWFjcm8gdG8gRkZf UkVHX1NQIHRvIG1ha2UgaXQgY29uc2lzdGVudCB3aXRoIEZGX1JFR19CUC4KClJldmlld2VkLWJ5 OiBMeW5uZSA8ZGV2QGx5bm5lLmVlPgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQg PGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KLS0tCiBsaWJhdnV0aWwveDg2L2FzbS5o IHwgNSArKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9saWJhdnV0aWwveDg2L2FzbS5oIGIvbGliYXZ1dGlsL3g4Ni9hc20u aAppbmRleCA5YmZmNDJkNjI4Li5mMDZlYTI1MDM1IDEwMDY0NAotLS0gYS9saWJhdnV0aWwveDg2 L2FzbS5oCisrKyBiL2xpYmF2dXRpbC94ODYvYXNtLmgKQEAgLTM4LDggKzM4LDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgeW1tX3JlZyB7IHVpbnQ2NF90IGEsIGIsIGMsIGQ7IH0geW1tX3JlZzsKICMgICAg ZGVmaW5lIEZGX1BUUl9TSVpFICI4IgogdHlwZWRlZiBpbnQ2NF90IHg4Nl9yZWc7CiAKLS8qIEZG X1JFR19TUCBpcyBkZWZpbmVkIGluIFNvbGFyaXMgc3lzIGhlYWRlcnMsIHNvIHVzZSBGRl9SRUdf c3AgKi8KLSMgICAgZGVmaW5lIEZGX1JFR19zcCAicnNwIgorIyAgICBkZWZpbmUgRkZfUkVHX1NQ ICJyc3AiCiAjICAgIGRlZmluZSBGRl9SRUdfQlAgInJicCIKICMgICAgZGVmaW5lIEZGX1JFR0JQ ICAgcmJwCiAjICAgIGRlZmluZSBGRl9SRUdhICAgIHJheApAQCAtNjAsNyArNTksNyBAQCB0eXBl ZGVmIGludDY0X3QgeDg2X3JlZzsKICMgICAgZGVmaW5lIEZGX1BUUl9TSVpFICI0IgogdHlwZWRl ZiBpbnQzMl90IHg4Nl9yZWc7CiAKLSMgICAgZGVmaW5lIEZGX1JFR19zcCAiZXNwIgorIyAgICBk ZWZpbmUgRkZfUkVHX1NQICJlc3AiCiAjICAgIGRlZmluZSBGRl9SRUdfQlAgImVicCIKICMgICAg ZGVmaW5lIEZGX1JFR0JQICAgZWJwCiAjICAgIGRlZmluZSBGRl9SRUdhICAgIGVheAotLSAKMi41 Mi4wCgoKRnJvbSBlMDY0NzQwMTNkN2U1OWU2MjJiZGI5ZDk4MDFlYTE2MzdmNzc3YTBiIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gQnJldW5pZyA8c3RlZmFuLWZmbXBlZy1k ZXZlbEBicmV1bmlnLnh5ej4KRGF0ZTogU3VuLCAxNiBOb3YgMjAyNSAxMToxNDozNCArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMDE2LzMwNF0gYXZmaWx0ZXIvdmZfZnJlaTByOiBmaXggdGltZSB3aGVu IGlucHV0IGlzIHJlYWxpZ25lZAoKYXZfZnJhbWVfY29weSBkb2Vzbid0IGNvcHkgdGhlIGlucHV0 J3MgUFRTIHByb3BlcnR5LCB3aGljaCByZXN1bHRlZAppbiB0aGUgZnJlaTByIGZpbHRlciBhbHdh eXMgcmVjZWl2aW5nIHRoZSBzYW1lIHN0YXRpYyB0aW1lLgoKRXhhbXBsZSB0aGF0IGhhcyBhIHN0 YXRpYyBkaXN0b3J0aW9uIHdpdGhvdXQgcGF0Y2g6CgpmZm1wZWcgLWZpbHRlcl9jb21wbGV4ICJ0 ZXN0c3JjMj1zPTMyOHgyNDA6ZD01LGZyZWkwcj1kaXN0b3J0MHIiIG91dC5tcDQKLS0tCiBsaWJh dmZpbHRlci92Zl9mcmVpMHIuYyB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKQoKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2ZyZWkwci5jIGIvbGliYXZmaWx0ZXIv dmZfZnJlaTByLmMKaW5kZXggNTBkODFkMjIwZi4uY2JkMjM2ZmFhYiAxMDA2NDQKLS0tIGEvbGli YXZmaWx0ZXIvdmZfZnJlaTByLmMKKysrIGIvbGliYXZmaWx0ZXIvdmZfZnJlaTByLmMKQEAgLTM3 NSw2ICszNzUsMTAgQEAgc3RhdGljIGludCBmaWx0ZXJfZnJhbWUoQVZGaWx0ZXJMaW5rICppbmxp bmssIEFWRnJhbWUgKmluKQogICAgICAgICBpZiAoIWluMikKICAgICAgICAgICAgIGdvdG8gZmFp bDsKICAgICAgICAgYXZfZnJhbWVfY29weShpbjIsIGluKTsKKyAgICAgICAgaWYgKGF2X2ZyYW1l X2NvcHlfcHJvcHMoaW4yLCBpbikgPCAwKSB7CisgICAgICAgICAgICBhdl9mcmFtZV9mcmVlKCZp bjIpOworICAgICAgICAgICAgZ290byBmYWlsOworICAgICAgICB9CiAgICAgICAgIGF2X2ZyYW1l X2ZyZWUoJmluKTsKICAgICAgICAgaW4gPSBpbjI7CiAgICAgfQotLSAKMi41Mi4wCgoKRnJvbSBi MDkzMDRjMjRjYjU3ODg0ZWI3ZGUxMGY0MDkwMzc4OGEwM2UxM2JjIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBTdGVmYW4gQnJldW5pZyA8c3RlZmFuLWZmbXBlZy1kZXZlbEBicmV1bmln Lnh5ej4KRGF0ZTogU3VuLCAxNiBOb3YgMjAyNSAxMToxNTowNSArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMDE3LzMwNF0gZmF0ZS9maWx0ZXItdmlkZW86IGFkZCBmcmVpMHIgdGVzdCB3aGVyZSBpbnB1 dCBpcwogcmVhbGlnbmVkCgpBbiBpbnN0YWxsYXRpb24gb2YgZnJlaTByLXBsdWdpbnMgaXMgcmVx dWlyZWQgdG8gcnVuIHRoZSB0ZXN0cywKd2hpY2ggaXMgdXN1YWxseSBzZXBlcmF0ZSBmcm9tIHRo ZSBidWlsZCBoZWFkZXJzLiBTb21lIHN5c3RlbXMKaGF2ZSBpdCBwYWNrYWdlZCAoZS5nLiBhcHQg aW5zdGFsbCBmcmVpMHItcGx1Z2lucykuIEFuIHVwc3RyZWFtCnJlbGVhc2UgZXh0cmFjdGVkIHRv IEZSRUkwUl9QQVRIIGFsc28gd29ya3MuCgpUaGUgZGlzdG9ydDByIGZpbHRlciByZXF1aXJlcyBk aW1lbnNpb25zIHRvIGJlIGRpdmlzaWJsZSBieSA4LgotLS0KIHRlc3RzL2ZhdGUvZmlsdGVyLXZp ZGVvLm1hayAgICAgICAgICAgICAgICAgICB8ICAzICsrLQogdGVzdHMvcmVmL2ZhdGUvZmlsdGVy LWZyZWkwci1maWx0ZXItdW5hbGlnbmVkIHwgMTAgKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2Vk LCAxMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVz dHMvcmVmL2ZhdGUvZmlsdGVyLWZyZWkwci1maWx0ZXItdW5hbGlnbmVkCgpkaWZmIC0tZ2l0IGEv dGVzdHMvZmF0ZS9maWx0ZXItdmlkZW8ubWFrIGIvdGVzdHMvZmF0ZS9maWx0ZXItdmlkZW8ubWFr CmluZGV4IGNkNTkwM2M5NjAuLjNmZTdmMTA0NzYgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ZhdGUvZmls dGVyLXZpZGVvLm1haworKysgYi90ZXN0cy9mYXRlL2ZpbHRlci12aWRlby5tYWsKQEAgLTcxNyw4 ICs3MTcsOSBAQCAkKEZBVEVfRklMVEVSX1ZTWU5USC15ZXMpOiBTUkMgPSAkKFRBUkdFVF9QQVRI KS90ZXN0cy92c3ludGgxLyUwMmQucGdtCiAKIEZBVEVfRkZNUEVHICs9ICQoRkFURV9GSUxURVJf VlNZTlRILXllcykKIAotRkFURV9GSUxURVJfRlJFSTBSLSQoY2FsbCBGSUxURVJGUkFNRUNSQywg VEVTVFNSQzIsIEZSRUkwUl9GSUxURVIpID0gZmF0ZS1maWx0ZXItZnJlaTByLWZpbHRlcgorRkFU RV9GSUxURVJfRlJFSTBSLSQoY2FsbCBGSUxURVJGUkFNRUNSQywgVEVTVFNSQzIsIEZSRUkwUl9G SUxURVIpID0gZmF0ZS1maWx0ZXItZnJlaTByLWZpbHRlciBmYXRlLWZpbHRlci1mcmVpMHItZmls dGVyLXVuYWxpZ25lZAogZmF0ZS1maWx0ZXItZnJlaTByLWZpbHRlcjogQ01EID0gZnJhbWVjcmMg LWxhdmZpICJ0ZXN0c3JjMj1yPTE6ZD01LGZyZWkwcj1lbmFibGU9Z3RlKG5cLDMpOmZpbHRlcl9u YW1lPWRpc3RvcnQwciIKK2ZhdGUtZmlsdGVyLWZyZWkwci1maWx0ZXItdW5hbGlnbmVkOiBDTUQg PSBmcmFtZWNyYyAtbGF2ZmkgInRlc3RzcmMyPXM9MzI4eDI0MDpyPTE6ZD01LGZyZWkwcj1maWx0 ZXJfbmFtZT1kaXN0b3J0MHIiCiBGQVRFX0ZGTVBFRyArPSAkKEZBVEVfRklMVEVSX0ZSRUkwUi15 ZXMpCiAKICMKZGlmZiAtLWdpdCBhL3Rlc3RzL3JlZi9mYXRlL2ZpbHRlci1mcmVpMHItZmlsdGVy LXVuYWxpZ25lZCBiL3Rlc3RzL3JlZi9mYXRlL2ZpbHRlci1mcmVpMHItZmlsdGVyLXVuYWxpZ25l ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5jM2NmZmM2OWYxCi0tLSAv ZGV2L251bGwKKysrIGIvdGVzdHMvcmVmL2ZhdGUvZmlsdGVyLWZyZWkwci1maWx0ZXItdW5hbGln bmVkCkBAIC0wLDAgKzEsMTAgQEAKKyN0YiAwOiAxLzEKKyNtZWRpYV90eXBlIDA6IHZpZGVvCisj Y29kZWNfaWQgMDogcmF3dmlkZW8KKyNkaW1lbnNpb25zIDA6IDMyOHgyNDAKKyNzYXIgMDogMS8x CiswLCAgICAgICAgICAwLCAgICAgICAgICAwLCAgICAgICAgMSwgICAzMTQ4ODAsIDB4N2I5Y2Fk OGYKKzAsICAgICAgICAgIDEsICAgICAgICAgIDEsICAgICAgICAxLCAgIDMxNDg4MCwgMHgwMTg0 NDM2ZgorMCwgICAgICAgICAgMiwgICAgICAgICAgMiwgICAgICAgIDEsICAgMzE0ODgwLCAweDdl M2YyNzc2CiswLCAgICAgICAgICAzLCAgICAgICAgICAzLCAgICAgICAgMSwgICAzMTQ4ODAsIDB4 MGRjNWU5MTUKKzAsICAgICAgICAgIDQsICAgICAgICAgIDQsICAgICAgICAxLCAgIDMxNDg4MCwg MHhjZjljNzZlZgotLSAKMi41Mi4wCgoKRnJvbSA2YjQzZjA5OWVjZjYxOGIwMGI2Njc4NDQwN2Fh MTcxNWExMTFkYjkxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5kaSA8aGVuZGk0 OEBmcmVlbmV0LmRlPgpEYXRlOiBTdW4sIDIgTm92IDIwMjUgMjM6MTE6MDIgKzAxMDAKU3ViamVj dDogW1BBVENIIDAxOC8zMDRdIGF2Zm9ybWF0L2Rhc2hkZWM6IEZpeCB1cmxzIHdpdGggc3BlY2lh bCBjaGFyYWN0ZXJzIGluCiBtYW5pZmVzdAoKVGhpcyB3YXMgZXNwZWNpYWxseSBhIHByb2JsZW0g d2l0aCBhbXBlcnNhbmRzLCB3aGljaCBvY2N1cgpmcmVxdWVudGx5IGFzIHBhcnQgb2YgcXVlcnkg cGFyYW1ldGVycy4KLS0tCiBsaWJhdmZvcm1hdC9kYXNoZGVjLmMgfCAxOCArKysrKysrKysrKysr KystLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2Rhc2hkZWMuYyBiL2xpYmF2Zm9ybWF0L2Rhc2hkZWMu YwppbmRleCAxZjU5ZDNhNDFjLi41MDBkOGNhNTE4IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9k YXNoZGVjLmMKKysrIGIvbGliYXZmb3JtYXQvZGFzaGRlYy5jCkBAIC03ODAsNyArNzgwLDEzIEBA IHN0YXRpYyBpbnQgcmVzb2x2ZV9jb250ZW50X3BhdGgoQVZGb3JtYXRDb250ZXh0ICpzLCBjb25z dCBjaGFyICp1cmwsIGludCAqbWF4X3VyCiAgICAgfQogICAgIHJvb3RfdXJsID0gKGF2X3N0cmNh c2VjbXAoYmFzZXVybCwgIiIpKSA/IGJhc2V1cmwgOiBwYXRoOwogICAgIGlmIChub2RlKSB7Ci0g ICAgICAgIHhtbE5vZGVTZXRDb250ZW50KG5vZGUsIHJvb3RfdXJsKTsKKyAgICAgICAgeG1sQ2hh ciAqZXNjYXBlZCA9IHhtbEVuY29kZVNwZWNpYWxDaGFycyhOVUxMLCByb290X3VybCk7CisgICAg ICAgIGlmICghZXNjYXBlZCkgeworICAgICAgICAgICAgdXBkYXRlZCA9IEFWRVJST1IoRU5PTUVN KTsKKyAgICAgICAgICAgIGdvdG8gZW5kOworICAgICAgICB9CisgICAgICAgIHhtbE5vZGVTZXRD b250ZW50KG5vZGUsIGVzY2FwZWQpOworICAgICAgICB4bWxGcmVlKGVzY2FwZWQpOwogICAgICAg ICB1cGRhdGVkID0gMTsKICAgICB9CiAKQEAgLTgxNCw5ICs4MjAsMTUgQEAgc3RhdGljIGludCBy ZXNvbHZlX2NvbnRlbnRfcGF0aChBVkZvcm1hdENvbnRleHQgKnMsIGNvbnN0IGNoYXIgKnVybCwg aW50ICptYXhfdXIKICAgICAgICAgICAgICAgICBtZW1zZXQocCArIDEsIDAsIHN0cmxlbihwKSk7 CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhdl9zdHJsY2F0KHRtcF9zdHIsIHRleHQgKyBz dGFydCwgdG1wX21heF91cmxfc2l6ZSk7Ci0gICAgICAgICAgICB4bWxOb2RlU2V0Q29udGVudChi YXNldXJsX25vZGVzW2ldLCB0bXBfc3RyKTsKLSAgICAgICAgICAgIHVwZGF0ZWQgPSAxOwogICAg ICAgICAgICAgeG1sRnJlZSh0ZXh0KTsKKyAgICAgICAgICAgIHhtbENoYXIqIGVzY2FwZWQgPSB4 bWxFbmNvZGVTcGVjaWFsQ2hhcnMoTlVMTCwgdG1wX3N0cik7CisgICAgICAgICAgICBpZiAoIWVz Y2FwZWQpIHsKKyAgICAgICAgICAgICAgICB1cGRhdGVkID0gQVZFUlJPUihFTk9NRU0pOworICAg ICAgICAgICAgICAgIGdvdG8gZW5kOworICAgICAgICAgICAgfQorICAgICAgICAgICAgeG1sTm9k ZVNldENvbnRlbnQoYmFzZXVybF9ub2Rlc1tpXSwgZXNjYXBlZCk7CisgICAgICAgICAgICB1cGRh dGVkID0gMTsKKyAgICAgICAgICAgIHhtbEZyZWUoZXNjYXBlZCk7CiAgICAgICAgIH0KICAgICB9 CiAKLS0gCjIuNTIuMAoKCkZyb20gNDVmMDc3ZGYwZWEyZjU5MDA3YTZjZjM2N2M5ZjJmOWI5MDhi MTE0NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGFyc2hpdGhhIDxoYXJzaGl0aGFA bXVsdGljb3Jld2FyZWluYy5jb20+CkRhdGU6IEZyaSwgMTQgTm92IDIwMjUgMDE6NDU6NDQgLTA4 MDAKU3ViamVjdDogW1BBVENIIDAxOS8zMDRdIGRvYy9lbmNvZGVyczogRG9jdW1lbnQgTWVkaWFG b3VuZGF0aW9uIGVuY29kZXJzCgotLS0KIGRvYy9lbmNvZGVycy50ZXhpIHwgOTEgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA5 MCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2VuY29kZXJz LnRleGkgYi9kb2MvZW5jb2RlcnMudGV4aQppbmRleCBiMjRmOTg5NDZhLi41NmUyZjkwMDhhIDEw MDY0NAotLS0gYS9kb2MvZW5jb2RlcnMudGV4aQorKysgYi9kb2MvZW5jb2RlcnMudGV4aQpAQCAt MzQxNCwxMSArMzQxNCwxMDAgQEAgTWF4aW11bSBxdWFudGl6YXRpb24gcGFyYW1ldGVyIGZvciBC IGZyYW1lLgogQHNlY3Rpb24gTWVkaWFGb3VuZGF0aW9uCiAKIFRoaXMgcHJvdmlkZXMgd3JhcHBl cnMgdG8gZW5jb2RlcnMgKGJvdGggYXVkaW8gYW5kIHZpZGVvKSBpbiB0aGUKLU1lZGlhRm91bmRh dGlvbiBmcmFtZXdvcmsuIEl0IGNhbiBhY2Nlc3MgYm90aCBTVyBhbmQgSFcgZW5jb2RlcnMuCitN ZWRpYUZvdW5kYXRpb24gZnJhbWV3b3JrLiBJdCBzdXBwb3J0cyBib3RoIHNvZnR3YXJlIGFuZCBo YXJkd2FyZSBlbmNvZGVycwordGhyb3VnaCB0aGUgZm9sbG93aW5nIGNvZGVjczoKKworQGl0ZW1p emUKK0BpdGVtIGgyNjRfbWYKK0BpdGVtIGhldmNfbWYKK0BpdGVtIGF2MV9tZgorQGVuZCBpdGVt aXplCisKIFZpZGVvIGVuY29kZXJzIGNhbiB0YWtlIGlucHV0IGluIGVpdGhlciBvZiBudjEyIG9y IHl1djQyMHAgZm9ybQogKHNvbWUgZW5jb2RlcnMgc3VwcG9ydCBib3RoLCBzb21lIHN1cHBvcnQg b25seSBlaXRoZXIgLSBpbiBwcmFjdGljZSwKIG52MTIgaXMgdGhlIHNhZmVyIGNob2ljZSwgZXNw ZWNpYWxseSBhbW9uZyBIVyBlbmNvZGVycykuCiAKK0hhcmR3YXJlLWFjY2VsZXJhdGVkIGVuY29k aW5nIGlzIHN1cHBvcnRlZCB2aWEgRDNEMTEsIGluY2x1ZGluZyBoYXJkd2FyZQorc2NhbGluZyBj YXBhYmlsaXRpZXMgdGhyb3VnaCB0aGUgc2NhbGVfZDNkMTEgZmlsdGVyLgorCitUbyBsaXN0IGFs bCBhdmFpbGFibGUgb3B0aW9ucyBmb3IgdGhlIE1lZGlhRm91bmRhdGlvbiBlbmNvZGVycywgdXNl OgorQGNvbW1hbmR7ZmZtcGVnIC1oIGVuY29kZXI9aDI2NF9tZn0KKworQHN1YnNlY3Rpb24gT3B0 aW9ucworCitAdGFibGUgQG9wdGlvbgorQGl0ZW0gcmF0ZV9jb250cm9sCitTZWxlY3QgcmF0ZSBj b250cm9sIG1vZGUuIEF2YWlsYWJsZSBtb2RlczoKKworQHRhYmxlIEBzYW1wCitAaXRlbSBkZWZh dWx0CitEZWZhdWx0IG1vZGUKK0BpdGVtIGNicgorQ0JSIG1vZGUKK0BpdGVtIHBjX3ZicgorUGVh ayBjb25zdHJhaW5lZCBWQlIgbW9kZQorQGl0ZW0gdV92YnIKK1VuY29uc3RyYWluZWQgVkJSIG1v ZGUKK0BpdGVtIHF1YWxpdHkKK1F1YWxpdHkgbW9kZQorQGl0ZW0gbGRfdmJyCitMb3cgZGVsYXkg VkJSIG1vZGUgKHJlcXVpcmVzIFdpbmRvd3MgOCspCitAaXRlbSBnX3ZicgorR2xvYmFsIFZCUiBt b2RlIChyZXF1aXJlcyBXaW5kb3dzIDgrKQorQGl0ZW0gZ2xkX3ZicgorR2xvYmFsIGxvdyBkZWxh eSBWQlIgbW9kZSAocmVxdWlyZXMgV2luZG93cyA4KykKK0BlbmQgdGFibGUKKworQGl0ZW0gc2Nl bmFyaW8KK1NlbGVjdCB1c2FnZSBzY2VuYXJpby4gQXZhaWxhYmxlIHNjZW5hcmlvczoKKworQHRh YmxlIEBzYW1wCitAaXRlbSBkZWZhdWx0CitEZWZhdWx0IHNjZW5hcmlvCitAaXRlbSBkaXNwbGF5 X3JlbW90aW5nCitEaXNwbGF5IHJlbW90aW5nIHNjZW5hcmlvCitAaXRlbSB2aWRlb19jb25mZXJl bmNlCitWaWRlbyBjb25mZXJlbmNlIHNjZW5hcmlvCitAaXRlbSBhcmNoaXZlCitBcmNoaXZlIHNj ZW5hcmlvCitAaXRlbSBsaXZlX3N0cmVhbWluZworTGl2ZSBzdHJlYW1pbmcgc2NlbmFyaW8KK0Bp dGVtIGNhbWVyYV9yZWNvcmQKK0NhbWVyYSByZWNvcmQgc2NlbmFyaW8KK0BpdGVtIGRpc3BsYXlf cmVtb3Rpbmdfd2l0aF9mZWF0dXJlX21hcAorRGlzcGxheSByZW1vdGluZyB3aXRoIGZlYXR1cmUg bWFwIHNjZW5hcmlvCitAZW5kIHRhYmxlCisKK0BpdGVtIHF1YWxpdHkKK1NldCBlbmNvZGluZyBx dWFsaXR5ICgwLTEwMCkuIC0xIG1lYW5zIGRlZmF1bHQgcXVhbGl0eS4KKworQGl0ZW0gaHdfZW5j b2RpbmcKK0ZvcmNlIGhhcmR3YXJlIGVuY29kaW5nICgwLTEpLiBEZWZhdWx0IGlzIDAgKGRpc2Fi bGVkKS4KKworQGVuZCB0YWJsZQorCitAc3Vic2VjdGlvbiBFeGFtcGxlcworCitIYXJkd2FyZSBl bmNvZGluZzoKK0BleGFtcGxlCitmZm1wZWcgLWkgaW5wdXQubXA0IC1jOnYgaDI2NF9tZiAtaHdf ZW5jb2RpbmcgMSBvdXRwdXQubXA0CitAZW5kIGV4YW1wbGUKKworSGFyZHdhcmUtYWNjZWxlcmF0 ZWQgZGVjb2Rpbmcgd2l0aCBoYXJkd2FyZSBlbmNvZGluZzoKK0BleGFtcGxlCitmZm1wZWcgLWh3 YWNjZWwgZDNkMTF2YSAtaSBpbnB1dC5tcDQgLWM6diBoMjY0X21mIC1od19lbmNvZGluZyAxIG91 dHB1dC5tcDQKK0BlbmQgZXhhbXBsZQorCitIYXJkd2FyZS1hY2NlbGVyYXRlZCBkZWNvZGluZyBh bmQgZW5jb2Rpbmcgd2l0aCBzY2FsaW5nOgorQGV4YW1wbGUKK2ZmbXBlZyAtaHdhY2NlbCBkM2Qx MXZhIC1od2FjY2VsX291dHB1dF9mb3JtYXQgZDNkMTEgLWkgaW5wdXQubXA0IC1jOnYgaDI2NF9t ZiAtaHdfZW5jb2RpbmcgMSAtdmYgc2NhbGVfZDNkMTE9MTkyMDoxMDgwIG91dHB1dC5tcDQKK0Bl bmQgZXhhbXBsZQorCitIYXJkd2FyZSBkZWNvZGluZyBhbmQgZW5jb2Rpbmcgd2l0aCBxdWFsaXR5 IHNldHRpbmc6CitAZXhhbXBsZQorZmZtcGVnIC1od2FjY2VsIGQzZDExdmEgLWh3YWNjZWxfb3V0 cHV0X2Zvcm1hdCBkM2QxMSAtaSBpbnB1dC5tcDQgLWM6diBoZXZjX21mIC1od19lbmNvZGluZyAx IC1xdWFsaXR5IDgwIG91dHB1dC5tcDQKK0BlbmQgZXhhbXBsZQorCiBAc2VjdGlvbiBNaWNyb3Nv ZnQgUkxFCiAKIE1pY3Jvc29mdCBSTEUgYWthIE1TUkxFIGVuY29kZXIuCi0tIAoyLjUyLjAKCgpG cm9tIDFiZGI4NGYzNzBmZmNhMmNiYTZlNmI2ZGU2ZDFkMWQ4MTIwYjI4MTUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEd5YW5EIDxmZm1wZWdAZ3lhbmkucHJvPgpEYXRlOiBTYXQsIDE1 IE5vdiAyMDI1IDA4OjI2OjQ2ICswMDAwClN1YmplY3Q6IFtQQVRDSCAwMjAvMzA0XSBkb2MvZW5j b2RlcnM6IG1pbm9yIG1lZGlhZm91bmRhdGlvbiBlbmNvZGVycyB1cGRhdGVzCgotLS0KIGRvYy9l bmNvZGVycy50ZXhpIHwgMjAgKysrKysrKystLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4 IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9lbmNvZGVy cy50ZXhpIGIvZG9jL2VuY29kZXJzLnRleGkKaW5kZXggNTZlMmY5MDA4YS4uZjI5MDg2ZGYyZCAx MDA2NDQKLS0tIGEvZG9jL2VuY29kZXJzLnRleGkKKysrIGIvZG9jL2VuY29kZXJzLnRleGkKQEAg LTM0MTMsOSArMzQxMyw4IEBAIE1heGltdW0gcXVhbnRpemF0aW9uIHBhcmFtZXRlciBmb3IgQiBm cmFtZS4KIAogQHNlY3Rpb24gTWVkaWFGb3VuZGF0aW9uCiAKLVRoaXMgcHJvdmlkZXMgd3JhcHBl cnMgdG8gZW5jb2RlcnMgKGJvdGggYXVkaW8gYW5kIHZpZGVvKSBpbiB0aGUKLU1lZGlhRm91bmRh dGlvbiBmcmFtZXdvcmsuIEl0IHN1cHBvcnRzIGJvdGggc29mdHdhcmUgYW5kIGhhcmR3YXJlIGVu Y29kZXJzCi10aHJvdWdoIHRoZSBmb2xsb3dpbmcgY29kZWNzOgorVGhlIGZvbGxvd2luZyB3cmFw cGVycyBmb3IgZW5jb2RlcnMgaW4gdGhlIE1lZGlhRm91bmRhdGlvbiBmcmFtZXdvcmsgYXJlCith dmFpbGFibGU6CiAKIEBpdGVtaXplCiBAaXRlbSBoMjY0X21mCkBAIC0zNDIzLDE1ICszNDIyLDE3 IEBAIHRocm91Z2ggdGhlIGZvbGxvd2luZyBjb2RlY3M6CiBAaXRlbSBhdjFfbWYKIEBlbmQgaXRl bWl6ZQogCitUaGVzZSBzdXBwb3J0IGJvdGggc29mdHdhcmUgYW5kIGhhcmR3YXJlIGVuY29kaW5n LgorCiBWaWRlbyBlbmNvZGVycyBjYW4gdGFrZSBpbnB1dCBpbiBlaXRoZXIgb2YgbnYxMiBvciB5 dXY0MjBwIGZvcm0KIChzb21lIGVuY29kZXJzIHN1cHBvcnQgYm90aCwgc29tZSBzdXBwb3J0IG9u bHkgZWl0aGVyIC0gaW4gcHJhY3RpY2UsCiBudjEyIGlzIHRoZSBzYWZlciBjaG9pY2UsIGVzcGVj aWFsbHkgYW1vbmcgSFcgZW5jb2RlcnMpLgogCi1IYXJkd2FyZS1hY2NlbGVyYXRlZCBlbmNvZGlu ZyBpcyBzdXBwb3J0ZWQgdmlhIEQzRDExLCBpbmNsdWRpbmcgaGFyZHdhcmUKK0hhcmR3YXJlLWFj Y2VsZXJhdGVkIGVuY29kaW5nIHJlcXVpcmVzIEQzRDExLCBpbmNsdWRpbmcgaGFyZHdhcmUKIHNj YWxpbmcgY2FwYWJpbGl0aWVzIHRocm91Z2ggdGhlIHNjYWxlX2QzZDExIGZpbHRlci4KIAogVG8g bGlzdCBhbGwgYXZhaWxhYmxlIG9wdGlvbnMgZm9yIHRoZSBNZWRpYUZvdW5kYXRpb24gZW5jb2Rl cnMsIHVzZToKLUBjb21tYW5ke2ZmbXBlZyAtaCBlbmNvZGVyPWgyNjRfbWZ9CitAY29tbWFuZHtm Zm1wZWcgLWggZW5jb2Rlcj08ZW5jb2Rlcj59IGUuZy4gQGNvbW1hbmR7ZmZtcGVnIC1oIGVuY29k ZXI9aDI2NF9tZn0KIAogQHN1YnNlY3Rpb24gT3B0aW9ucwogCkBAIC0zNDk4LDE0ICszNDk5LDkg QEAgSGFyZHdhcmUtYWNjZWxlcmF0ZWQgZGVjb2Rpbmcgd2l0aCBoYXJkd2FyZSBlbmNvZGluZzoK IGZmbXBlZyAtaHdhY2NlbCBkM2QxMXZhIC1pIGlucHV0Lm1wNCAtYzp2IGgyNjRfbWYgLWh3X2Vu Y29kaW5nIDEgb3V0cHV0Lm1wNAogQGVuZCBleGFtcGxlCiAKLUhhcmR3YXJlLWFjY2VsZXJhdGVk IGRlY29kaW5nIGFuZCBlbmNvZGluZyB3aXRoIHNjYWxpbmc6CitIYXJkd2FyZS1hY2NlbGVyYXRl ZCBkZWNvZGluZywgSFcgc2NhbGluZyBhbmQgZW5jb2Rpbmcgd2l0aCBxdWFsaXR5IHNldHRpbmc6 CiBAZXhhbXBsZQotZmZtcGVnIC1od2FjY2VsIGQzZDExdmEgLWh3YWNjZWxfb3V0cHV0X2Zvcm1h dCBkM2QxMSAtaSBpbnB1dC5tcDQgLWM6diBoMjY0X21mIC1od19lbmNvZGluZyAxIC12ZiBzY2Fs ZV9kM2QxMT0xOTIwOjEwODAgb3V0cHV0Lm1wNAotQGVuZCBleGFtcGxlCi0KLUhhcmR3YXJlIGRl Y29kaW5nIGFuZCBlbmNvZGluZyB3aXRoIHF1YWxpdHkgc2V0dGluZzoKLUBleGFtcGxlCi1mZm1w ZWcgLWh3YWNjZWwgZDNkMTF2YSAtaHdhY2NlbF9vdXRwdXRfZm9ybWF0IGQzZDExIC1pIGlucHV0 Lm1wNCAtYzp2IGhldmNfbWYgLWh3X2VuY29kaW5nIDEgLXF1YWxpdHkgODAgb3V0cHV0Lm1wNAor ZmZtcGVnIC1od2FjY2VsIGQzZDExdmEgLWh3YWNjZWxfb3V0cHV0X2Zvcm1hdCBkM2QxMSAtaSBp bnB1dC5tcDQgLXZmIHNjYWxlX2QzZDExPTE5MjA6MTA4MCAtYzp2IGhldmNfbWYgLWh3X2VuY29k aW5nIDEgLXF1YWxpdHkgODAgb3V0cHV0Lm1wNAogQGVuZCBleGFtcGxlCiAKIEBzZWN0aW9uIE1p Y3Jvc29mdCBSTEUKLS0gCjIuNTIuMAoKCkZyb20gMDJiOGQyNmJlMGM1ZTc1YjMxNzRlMDU3NjM0 ZTAyMzBlNTVmM2FmMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWmhhbyBaaGlsaSA8 emhpbGl6aGFvQHRlbmNlbnQuY29tPgpEYXRlOiBUdWUsIDE4IE5vdiAyMDI1IDEyOjQ2OjEzICsw ODAwClN1YmplY3Q6IFtQQVRDSCAwMjEvMzA0XSBhdmNvZGVjL3ZpZGVvdG9vbGJveGVuYzogaW1w cm92ZSBMb2NrL1VubG9jawogQmFzZUFkZHJlc3MgZXJyb3IgaGFuZGxpbmcKCjEuIEZpeCBjb250 aW51ZSBhZnRlciBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzLgoyLiBSZW1vdmUgcmVkdW5k YW50ICJFcnJvcjogIiBpbiBlcnJvciBtZXNzYWdlLgotLS0KIGxpYmF2Y29kZWMvdmlkZW90b29s Ym94ZW5jLmMgfCAxMCArKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp LCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdmlkZW90b29sYm94ZW5j LmMgYi9saWJhdmNvZGVjL3ZpZGVvdG9vbGJveGVuYy5jCmluZGV4IDcyOTA3MmMwYjkuLmM5YzQw MTRhNmIgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdmlkZW90b29sYm94ZW5jLmMKKysrIGIvbGli YXZjb2RlYy92aWRlb3Rvb2xib3hlbmMuYwpAQCAtMjQxNCwxMiArMjQxNCw4IEBAIHN0YXRpYyBp bnQgY29weV9hdmZyYW1lX3RvX3BpeGVsX2J1ZmZlcihBVkNvZGVjQ29udGV4dCAgICphdmN0eCwK IAogICAgIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MoY3ZfaW1nLCAwKTsK ICAgICBpZiAoc3RhdHVzKSB7Ci0gICAgICAgIGF2X2xvZygKLSAgICAgICAgICAgIGF2Y3R4LAot ICAgICAgICAgICAgQVZfTE9HX0VSUk9SLAotICAgICAgICAgICAgIkVycm9yOiBDb3VsZCBub3Qg bG9jayBiYXNlIGFkZHJlc3Mgb2YgQ1ZQaXhlbEJ1ZmZlcjogJWQuXG4iLAotICAgICAgICAgICAg c3RhdHVzCi0gICAgICAgICk7CisgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAi Q291bGQgbm90IGxvY2sgYmFzZSBhZGRyZXNzIG9mIENWUGl4ZWxCdWZmZXI6ICVkLlxuIiwgc3Rh dHVzKTsKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfRVhURVJOQUw7CiAgICAgfQogCiAgICAgaWYg KENWUGl4ZWxCdWZmZXJJc1BsYW5hcihjdl9pbWcpKSB7CkBAIC0yNDgxLDcgKzI0NzcsNyBAQCBz dGF0aWMgaW50IGNvcHlfYXZmcmFtZV90b19waXhlbF9idWZmZXIoQVZDb2RlY0NvbnRleHQgICAq YXZjdHgsCiAKICAgICBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJlc3MoY3Zf aW1nLCAwKTsKICAgICBpZiAoc3RhdHVzKSB7Ci0gICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9H X0VSUk9SLCAiRXJyb3I6IENvdWxkIG5vdCB1bmxvY2sgQ1ZQaXhlbEJ1ZmZlciBiYXNlIGFkZHJl c3M6ICVkLlxuIiwgc3RhdHVzKTsKKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1Is ICJDb3VsZCBub3QgdW5sb2NrIENWUGl4ZWxCdWZmZXIgYmFzZSBhZGRyZXNzOiAlZC5cbiIsIHN0 YXR1cyk7CiAgICAgICAgIHJldHVybiBBVkVSUk9SX0VYVEVSTkFMOwogICAgIH0KIAotLSAKMi41 Mi4wCgoKRnJvbSBlYWY2NmU1MWViYWMwMWRlZjhmM2EzMjkyOThkZjA0ZjJlYTBlYTI2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBaaGFvIFpoaWxpIDx6aGlsaXpoYW9AdGVuY2VudC5j b20+CkRhdGU6IFR1ZSwgMTggTm92IDIwMjUgMTE6MDI6NTkgKzA4MDAKU3ViamVjdDogW1BBVENI IDAyMi8zMDRdIGF2Y29kZWMvdmlkZW90b29sYm94ZW5jOiBmaXggY3Jhc2ggd2l0aCBuZWdhdGl2 ZQogbGluZXNpemUKCi0tLQogbGliYXZjb2RlYy92aWRlb3Rvb2xib3hlbmMuYyB8IDE5NiArKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMxIGluc2Vy dGlvbnMoKyksIDE2NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3ZpZGVv dG9vbGJveGVuYy5jIGIvbGliYXZjb2RlYy92aWRlb3Rvb2xib3hlbmMuYwppbmRleCBjOWM0MDE0 YTZiLi5lZjMyYzgxMjc4IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3ZpZGVvdG9vbGJveGVuYy5j CisrKyBiL2xpYmF2Y29kZWMvdmlkZW90b29sYm94ZW5jLmMKQEAgLTI4LDYgKzI4LDcgQEAKICNp bmNsdWRlICJsaWJhdnV0aWwvb3B0LmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL2F2YXNzZXJ0Lmgi CiAjaW5jbHVkZSAibGliYXZ1dGlsL2F2c3RyaW5nLmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL2lt Z3V0aWxzLmgiCiAjaW5jbHVkZSAibGliYXZjb2RlYy9hdmNvZGVjLmgiCiAjaW5jbHVkZSAibGli YXZ1dGlsL3BpeGRlc2MuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvaHdjb250ZXh0X3ZpZGVvdG9v bGJveC5oIgpAQCAtMjMyOCw4OSArMjMyOSwyMCBAQCBzdGF0aWMgaW50IHZ0ZW5jX2NtX3RvX2F2 cGFja2V0KAogICAgIHJldHVybiAwOwogfQogCi0vKgotICogY29udGlndW91c19idWZfc2l6ZSBp cyAwIGlmIG5vdCBjb250aWd1b3VzLCBhbmQgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlcgotICogY29u dGFpbmluZyBhbGwgcGxhbmVzIGlmIHNvLgotICovCi1zdGF0aWMgaW50IGdldF9jdl9waXhlbF9p bmZvKAotICAgIEFWQ29kZWNDb250ZXh0ICphdmN0eCwKLSAgICBjb25zdCBBVkZyYW1lICAqZnJh bWUsCi0gICAgaW50ICAgICAgICAgICAgKmNvbG9yLAotICAgIGludCAgICAgICAgICAgICpwbGFu ZV9jb3VudCwKLSAgICBzaXplX3QgICAgICAgICAqd2lkdGhzLAotICAgIHNpemVfdCAgICAgICAg ICpoZWlnaHRzLAotICAgIHNpemVfdCAgICAgICAgICpzdHJpZGVzLAotICAgIHNpemVfdCAgICAg ICAgICpjb250aWd1b3VzX2J1Zl9zaXplKQotewotICAgIGNvbnN0IEFWUGl4Rm10RGVzY3JpcHRv ciAqZGVzYyA9IGF2X3BpeF9mbXRfZGVzY19nZXQoYXZjdHgtPnBpeF9mbXQpOwotICAgIFZURW5j Q29udGV4dCAqdnRjdHggPSBhdmN0eC0+cHJpdl9kYXRhOwotICAgIGludCBhdl9mb3JtYXQgICAg ICAgPSBmcmFtZS0+Zm9ybWF0OwotICAgIGludCBhdl9jb2xvcl9yYW5nZSAgPSBhdmN0eC0+Y29s b3JfcmFuZ2U7Ci0gICAgaW50IGk7Ci0gICAgaW50IHJhbmdlX2d1ZXNzZWQ7Ci0gICAgaW50IHN0 YXR1czsKLQotICAgIGlmICghZGVzYykKLSAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsK LQotICAgIHN0YXR1cyA9IGdldF9jdl9waXhlbF9mb3JtYXQoYXZjdHgsIGF2X2Zvcm1hdCwgYXZf Y29sb3JfcmFuZ2UsIGNvbG9yLCAmcmFuZ2VfZ3Vlc3NlZCk7Ci0gICAgaWYgKHN0YXR1cykKLSAg ICAgICAgcmV0dXJuIHN0YXR1czsKLQotICAgIGlmIChyYW5nZV9ndWVzc2VkKSB7Ci0gICAgICAg IGlmICghdnRjdHgtPndhcm5lZF9jb2xvcl9yYW5nZSkgewotICAgICAgICAgICAgdnRjdHgtPndh cm5lZF9jb2xvcl9yYW5nZSA9IHRydWU7Ci0gICAgICAgICAgICBhdl9sb2coYXZjdHgsCi0gICAg ICAgICAgICAgICAgICAgQVZfTE9HX1dBUk5JTkcsCi0gICAgICAgICAgICAgICAgICAgIkNvbG9y IHJhbmdlIG5vdCBzZXQgZm9yICVzLiBVc2luZyBNUEVHIHJhbmdlLlxuIiwKLSAgICAgICAgICAg ICAgICAgICBhdl9nZXRfcGl4X2ZtdF9uYW1lKGF2X2Zvcm1hdCkpOwotICAgICAgICB9Ci0gICAg fQotCi0gICAgKnBsYW5lX2NvdW50ID0gYXZfcGl4X2ZtdF9jb3VudF9wbGFuZXMoYXZjdHgtPnBp eF9mbXQpOwotCi0gICAgZm9yIChpID0gMDsgaSA8IGRlc2MtPm5iX2NvbXBvbmVudHM7IGkrKykg ewotICAgICAgICBpbnQgcCA9IGRlc2MtPmNvbXBbaV0ucGxhbmU7Ci0gICAgICAgIGJvb2wgaGFz QWxwaGEgPSAoZGVzYy0+ZmxhZ3MgJiBBVl9QSVhfRk1UX0ZMQUdfQUxQSEEpOwotICAgICAgICBi b29sIGlzQWxwaGEgPSBoYXNBbHBoYSAmJiAocCArIDEgPT0gKnBsYW5lX2NvdW50KTsKLSAgICAg ICAgYm9vbCBpc0Nocm9tYSA9IChwICE9IDApICYmICFpc0FscGhhOwotICAgICAgICBpbnQgc2hp ZnR3ID0gaXNDaHJvbWEgPyBkZXNjLT5sb2cyX2Nocm9tYV93IDogMDsKLSAgICAgICAgaW50IHNo aWZ0aCA9IGlzQ2hyb21hID8gZGVzYy0+bG9nMl9jaHJvbWFfaCA6IDA7Ci0gICAgICAgIHdpZHRo c1twXSAgPSAoYXZjdHgtPndpZHRoICArICgoMSA8PCBzaGlmdHcpID4+IDEpKSA+PiBzaGlmdHc7 Ci0gICAgICAgIGhlaWdodHNbcF0gPSAoYXZjdHgtPmhlaWdodCArICgoMSA8PCBzaGlmdGgpID4+ IDEpKSA+PiBzaGlmdGg7Ci0gICAgICAgIHN0cmlkZXNbcF0gPSBmcmFtZS0+bGluZXNpemVbcF07 Ci0gICAgfQotCi0gICAgKmNvbnRpZ3VvdXNfYnVmX3NpemUgPSAwOwotICAgIGZvciAoaSA9IDA7 IGkgPCAqcGxhbmVfY291bnQ7IGkrKykgewotICAgICAgICBpZiAoaSA8ICpwbGFuZV9jb3VudCAt IDEgJiYKLSAgICAgICAgICAgIGZyYW1lLT5kYXRhW2ldICsgc3RyaWRlc1tpXSAqIGhlaWdodHNb aV0gIT0gZnJhbWUtPmRhdGFbaSArIDFdKSB7Ci0gICAgICAgICAgICAqY29udGlndW91c19idWZf c2l6ZSA9IDA7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgICpjb250 aWd1b3VzX2J1Zl9zaXplICs9IHN0cmlkZXNbaV0gKiBoZWlnaHRzW2ldOwotICAgIH0KLQotICAg IHJldHVybiAwOwotfQotCi0vL05vdCB1c2VkIG9uIE9TWCAtIGZyYW1lIGlzIG5ldmVyIGNvcGll ZC4KIHN0YXRpYyBpbnQgY29weV9hdmZyYW1lX3RvX3BpeGVsX2J1ZmZlcihBVkNvZGVjQ29udGV4 dCAgICphdmN0eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBBVkZyYW1lICAgICpmcmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDVlBpeGVsQnVmZmVyUmVmIGN2X2ltZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzaXplX3QgICAgICpwbGFuZV9zdHJpZGVzLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpemVfdCAgICAgKnBsYW5lX3Jv d3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1ZQaXhlbEJ1ZmZl clJlZiBjdl9pbWcpCiB7Ci0gICAgaW50IGksIGo7Ci0gICAgc2l6ZV90IHBsYW5lX2NvdW50Owog ICAgIGludCBzdGF0dXM7Ci0gICAgaW50IHJvd3M7Ci0gICAgaW50IHNyY19zdHJpZGU7Ci0gICAg aW50IGRzdF9zdHJpZGU7Ci0gICAgdWludDhfdCAqc3JjX2FkZHI7Ci0gICAgdWludDhfdCAqZHN0 X2FkZHI7Ci0gICAgc2l6ZV90IGNvcHlfYnl0ZXM7CisKKyAgICBpbnQgbnVtX3BsYW5lcyA9IGF2 X3BpeF9mbXRfY291bnRfcGxhbmVzKGZyYW1lLT5mb3JtYXQpOworICAgIHNpemVfdCBudW1fY3Zf cGxhbmUgPSBDVlBpeGVsQnVmZmVySXNQbGFuYXIoY3ZfaW1nKSA/CisgICAgICAgICAgICAgICAg ICAgICAgICAgIENWUGl4ZWxCdWZmZXJHZXRQbGFuZUNvdW50KGN2X2ltZykgOiAxOworICAgIGlm IChudW1fcGxhbmVzICE9IG51bV9jdl9wbGFuZSkgeworICAgICAgICBhdl9sb2coYXZjdHgsIEFW X0xPR19FUlJPUiwKKyAgICAgICAgICAgICAgICJEaWZmZXJlbnQgbnVtYmVyIG9mIHBsYW5lcyBp biBBVkZyYW1lIGFuZCBDVlBpeGVsQnVmZmVyLlxuIik7CisgICAgICAgIHJldHVybiBBVkVSUk9S X0JVRzsKKyAgICB9CiAKICAgICBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNz KGN2X2ltZywgMCk7CiAgICAgaWYgKHN0YXR1cykgewpAQCAtMjQxOCw2MiArMjM1MCwxNCBAQCBz dGF0aWMgaW50IGNvcHlfYXZmcmFtZV90b19waXhlbF9idWZmZXIoQVZDb2RlY0NvbnRleHQgICAq YXZjdHgsCiAgICAgICAgIHJldHVybiBBVkVSUk9SX0VYVEVSTkFMOwogICAgIH0KIAotICAgIGlm IChDVlBpeGVsQnVmZmVySXNQbGFuYXIoY3ZfaW1nKSkgewotICAgICAgICBwbGFuZV9jb3VudCA9 IENWUGl4ZWxCdWZmZXJHZXRQbGFuZUNvdW50KGN2X2ltZyk7Ci0gICAgICAgIGZvciAoaSA9IDA7 IGZyYW1lLT5kYXRhW2ldOyBpKyspIHsKLSAgICAgICAgICAgIGlmIChpID09IHBsYW5lX2NvdW50 KSB7Ci0gICAgICAgICAgICAgICAgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKGN2X2lt ZywgMCk7Ci0gICAgICAgICAgICAgICAgYXZfbG9nKGF2Y3R4LAotICAgICAgICAgICAgICAgICAg ICBBVl9MT0dfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICJFcnJvcjogZGlmZmVyZW50IG51 bWJlciBvZiBwbGFuZXMgaW4gQVZGcmFtZSBhbmQgQ1ZQaXhlbEJ1ZmZlci5cbiIKLSAgICAgICAg ICAgICAgICApOwotCi0gICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfRVhURVJOQUw7Ci0g ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGRzdF9hZGRyID0gKHVpbnQ4X3QqKUNWUGl4ZWxC dWZmZXJHZXRCYXNlQWRkcmVzc09mUGxhbmUoY3ZfaW1nLCBpKTsKLSAgICAgICAgICAgIHNyY19h ZGRyID0gKHVpbnQ4X3QqKWZyYW1lLT5kYXRhW2ldOwotICAgICAgICAgICAgZHN0X3N0cmlkZSA9 IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvd09mUGxhbmUoY3ZfaW1nLCBpKTsKLSAgICAgICAg ICAgIHNyY19zdHJpZGUgPSBwbGFuZV9zdHJpZGVzW2ldOwotICAgICAgICAgICAgcm93cyA9IHBs YW5lX3Jvd3NbaV07Ci0KLSAgICAgICAgICAgIGlmIChkc3Rfc3RyaWRlID09IHNyY19zdHJpZGUp IHsKLSAgICAgICAgICAgICAgICBtZW1jcHkoZHN0X2FkZHIsIHNyY19hZGRyLCBzcmNfc3RyaWRl ICogcm93cyk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGNvcHlfYnl0 ZXMgPSBkc3Rfc3RyaWRlIDwgc3JjX3N0cmlkZSA/IGRzdF9zdHJpZGUgOiBzcmNfc3RyaWRlOwot Ci0gICAgICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IHJvd3M7IGorKykgewotICAgICAgICAg ICAgICAgICAgICBtZW1jcHkoZHN0X2FkZHIgKyBqICogZHN0X3N0cmlkZSwgc3JjX2FkZHIgKyBq ICogc3JjX3N0cmlkZSwgY29weV9ieXRlcyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg ICAgfQotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKGZyYW1lLT5kYXRhWzFd KSB7Ci0gICAgICAgICAgICBDVlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJlc3MoY3ZfaW1nLCAw KTsKLSAgICAgICAgICAgIGF2X2xvZyhhdmN0eCwKLSAgICAgICAgICAgICAgICBBVl9MT0dfRVJS T1IsCi0gICAgICAgICAgICAgICAgIkVycm9yOiBkaWZmZXJlbnQgbnVtYmVyIG9mIHBsYW5lcyBp biBBVkZyYW1lIGFuZCBub24tcGxhbmFyIENWUGl4ZWxCdWZmZXIuXG4iCi0gICAgICAgICAgICAp OwotCi0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9FWFRFUk5BTDsKLSAgICAgICAgfQotCi0g ICAgICAgIGRzdF9hZGRyID0gKHVpbnQ4X3QqKUNWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcyhj dl9pbWcpOwotICAgICAgICBzcmNfYWRkciA9ICh1aW50OF90KilmcmFtZS0+ZGF0YVswXTsKLSAg ICAgICAgZHN0X3N0cmlkZSA9IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvdyhjdl9pbWcpOwot ICAgICAgICBzcmNfc3RyaWRlID0gcGxhbmVfc3RyaWRlc1swXTsKLSAgICAgICAgcm93cyA9IHBs YW5lX3Jvd3NbMF07Ci0KLSAgICAgICAgaWYgKGRzdF9zdHJpZGUgPT0gc3JjX3N0cmlkZSkgewot ICAgICAgICAgICAgbWVtY3B5KGRzdF9hZGRyLCBzcmNfYWRkciwgc3JjX3N0cmlkZSAqIHJvd3Mp OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgY29weV9ieXRlcyA9IGRzdF9zdHJpZGUg PCBzcmNfc3RyaWRlID8gZHN0X3N0cmlkZSA6IHNyY19zdHJpZGU7Ci0KLSAgICAgICAgICAgIGZv ciAoaiA9IDA7IGogPCByb3dzOyBqKyspIHsKLSAgICAgICAgICAgICAgICBtZW1jcHkoZHN0X2Fk ZHIgKyBqICogZHN0X3N0cmlkZSwgc3JjX2FkZHIgKyBqICogc3JjX3N0cmlkZSwgY29weV9ieXRl cyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICBpbnQgZHN0X3N0cmlkZVs0XSA9IHsw fTsKKyAgICB1aW50OF90ICpkc3RfYWRkcls0XSA9IHswfTsKKyAgICBmb3IgKGludCBpID0gMDsg aSA8IG51bV9wbGFuZXM7IGkrKykgeworICAgICAgICBkc3RfYWRkcltpXSA9ICh1aW50OF90KilD VlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3NPZlBsYW5lKGN2X2ltZywgaSk7CisgICAgICAgIGRz dF9zdHJpZGVbaV0gPSBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKGN2X2ltZywg aSk7CiAgICAgfQorICAgIGF2X2ltYWdlX2NvcHkyKGRzdF9hZGRyLCBkc3Rfc3RyaWRlLCBmcmFt ZS0+ZGF0YSwgZnJhbWUtPmxpbmVzaXplLAorICAgICAgICAgICAgICAgICAgIGZyYW1lLT5mb3Jt YXQsIGZyYW1lLT53aWR0aCwgZnJhbWUtPmhlaWdodCk7CiAKICAgICBzdGF0dXMgPSBDVlBpeGVs QnVmZmVyVW5sb2NrQmFzZUFkZHJlc3MoY3ZfaW1nLCAwKTsKICAgICBpZiAoc3RhdHVzKSB7CkBA IC0yNDg5LDEzICsyMzczLDcgQEAgc3RhdGljIGludCBjcmVhdGVfY3ZfcGl4ZWxfYnVmZmVyKEFW Q29kZWNDb250ZXh0ICAgKmF2Y3R4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENWUGl4ZWxCdWZmZXJSZWYgKmN2X2ltZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBCdWZOb2RlICAgICAgICAgICpub2RlKQogewotICAgIGludCBwbGFuZV9jb3VudDsKLSAg ICBpbnQgY29sb3I7Ci0gICAgc2l6ZV90IHdpZHRocyBbQVZfTlVNX0RBVEFfUE9JTlRFUlNdOwot ICAgIHNpemVfdCBoZWlnaHRzW0FWX05VTV9EQVRBX1BPSU5URVJTXTsKLSAgICBzaXplX3Qgc3Ry aWRlc1tBVl9OVU1fREFUQV9QT0lOVEVSU107CiAgICAgaW50IHN0YXR1czsKLSAgICBzaXplX3Qg Y29udGlndW91c19idWZfc2l6ZTsKICAgICBDVlBpeGVsQnVmZmVyUG9vbFJlZiBwaXhfYnVmX3Bv b2w7CiAgICAgVlRFbmNDb250ZXh0KiB2dGN0eCA9IGF2Y3R4LT5wcml2X2RhdGE7CiAKQEAgLTI1 MTUsMzMgKzIzOTMsMjEgQEAgc3RhdGljIGludCBjcmVhdGVfY3ZfcGl4ZWxfYnVmZmVyKEFWQ29k ZWNDb250ZXh0ICAgKmF2Y3R4LAogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBtZW1z ZXQod2lkdGhzLCAgMCwgc2l6ZW9mKHdpZHRocykpOwotICAgIG1lbXNldChoZWlnaHRzLCAwLCBz aXplb2YoaGVpZ2h0cykpOwotICAgIG1lbXNldChzdHJpZGVzLCAwLCBzaXplb2Yoc3RyaWRlcykp OwotCi0gICAgc3RhdHVzID0gZ2V0X2N2X3BpeGVsX2luZm8oCi0gICAgICAgIGF2Y3R4LAotICAg ICAgICBmcmFtZSwKLSAgICAgICAgJmNvbG9yLAotICAgICAgICAmcGxhbmVfY291bnQsCi0gICAg ICAgIHdpZHRocywKLSAgICAgICAgaGVpZ2h0cywKLSAgICAgICAgc3RyaWRlcywKLSAgICAgICAg JmNvbnRpZ3VvdXNfYnVmX3NpemUKLSAgICApOwotCisgICAgaW50IHJhbmdlX2d1ZXNzZWQ7Cisg ICAgc3RhdHVzID0gZ2V0X2N2X3BpeGVsX2Zvcm1hdChhdmN0eCwgZnJhbWUtPmZvcm1hdCwgYXZj dHgtPmNvbG9yX3JhbmdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJihpbnQp IHswfSwgJnJhbmdlX2d1ZXNzZWQpOwogICAgIGlmIChzdGF0dXMpIHsKLSAgICAgICAgYXZfbG9n KAotICAgICAgICAgICAgYXZjdHgsCi0gICAgICAgICAgICBBVl9MT0dfRVJST1IsCi0gICAgICAg ICAgICAiRXJyb3I6IENhbm5vdCBjb252ZXJ0IGZvcm1hdCAlZCBjb2xvcl9yYW5nZSAlZDogJWRc biIsCi0gICAgICAgICAgICBmcmFtZS0+Zm9ybWF0LAotICAgICAgICAgICAgZnJhbWUtPmNvbG9y X3JhbmdlLAotICAgICAgICAgICAgc3RhdHVzCi0gICAgICAgICk7Ci0KKyAgICAgICAgYXZfbG9n KGF2Y3R4LCBBVl9MT0dfRVJST1IsICJDYW5ub3QgY29udmVydCBmb3JtYXQgJWQgY29sb3JfcmFu Z2UgJWQ6ICVkXG4iLAorICAgICAgICAgICAgZnJhbWUtPmZvcm1hdCwgZnJhbWUtPmNvbG9yX3Jh bmdlLCBzdGF0dXMpOwogICAgICAgICByZXR1cm4gc3RhdHVzOwogICAgIH0KKyAgICBpZiAocmFu Z2VfZ3Vlc3NlZCkgeworICAgICAgICBpZiAoIXZ0Y3R4LT53YXJuZWRfY29sb3JfcmFuZ2UpIHsK KyAgICAgICAgICAgIHZ0Y3R4LT53YXJuZWRfY29sb3JfcmFuZ2UgPSB0cnVlOworICAgICAgICAg ICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfV0FSTklORywgIkNvbG9yIHJhbmdlIG5vdCBzZXQgZm9y ICVzLiBVc2luZyBNUEVHIHJhbmdlLlxuIiwKKyAgICAgICAgICAgICAgICAgICBhdl9nZXRfcGl4 X2ZtdF9uYW1lKGZyYW1lLT5mb3JtYXQpKTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIHBpeF9i dWZfcG9vbCA9IFZUQ29tcHJlc3Npb25TZXNzaW9uR2V0UGl4ZWxCdWZmZXJQb29sKHZ0Y3R4LT5z ZXNzaW9uKTsKICAgICBpZiAoIXBpeF9idWZfcG9vbCkgewpAQCAtMjU3OCw3ICsyNDQ0LDcgQEAg c3RhdGljIGludCBjcmVhdGVfY3ZfcGl4ZWxfYnVmZmVyKEFWQ29kZWNDb250ZXh0ICAgKmF2Y3R4 LAogICAgICAgICByZXR1cm4gQVZFUlJPUl9FWFRFUk5BTDsKICAgICB9CiAKLSAgICBzdGF0dXMg PSBjb3B5X2F2ZnJhbWVfdG9fcGl4ZWxfYnVmZmVyKGF2Y3R4LCBmcmFtZSwgKmN2X2ltZywgc3Ry aWRlcywgaGVpZ2h0cyk7CisgICAgc3RhdHVzID0gY29weV9hdmZyYW1lX3RvX3BpeGVsX2J1ZmZl cihhdmN0eCwgZnJhbWUsICpjdl9pbWcpOwogICAgIGlmIChzdGF0dXMpIHsKICAgICAgICAgQ0ZS ZWxlYXNlKCpjdl9pbWcpOwogICAgICAgICAqY3ZfaW1nID0gTlVMTDsKLS0gCjIuNTIuMAoKCkZy b20gNDg0ZjAxNGU0MmEzZGNhYmM4MGU0NDBjY2E5ZDJkMTk5MzQ3MjNkNCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogWmhhbyBaaGlsaSA8emhpbGl6aGFvQHRlbmNlbnQuY29tPgpEYXRl OiBUdWUsIDE4IE5vdiAyMDI1IDE1OjIzOjE2ICswODAwClN1YmplY3Q6IFtQQVRDSCAwMjMvMzA0 XSBhdmNvZGVjL3ZpZGVvdG9vbGJveGVuYzogcmVvcmRlciBhbmQgY2xlYW51cCBoZWFkZXJzCgot LS0KIGxpYmF2Y29kZWMvdmlkZW90b29sYm94ZW5jLmMgfCAyNSArKysrKysrKysrKystLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92aWRlb3Rvb2xib3hlbmMuYyBiL2xpYmF2Y29kZWMv dmlkZW90b29sYm94ZW5jLmMKaW5kZXggZWYzMmM4MTI3OC4uNDczNjdiYjY4ZSAxMDA2NDQKLS0t IGEvbGliYXZjb2RlYy92aWRlb3Rvb2xib3hlbmMuYworKysgYi9saWJhdmNvZGVjL3ZpZGVvdG9v bGJveGVuYy5jCkBAIC0xOCwyOSArMTgsMjggQEAKICAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKICAq LwogCi0jaW5jbHVkZSA8VmlkZW9Ub29sYm94L1ZpZGVvVG9vbGJveC5oPgotI2luY2x1ZGUgPENv cmVWaWRlby9Db3JlVmlkZW8uaD4KLSNpbmNsdWRlIDxDb3JlTWVkaWEvQ29yZU1lZGlhLmg+Ci0j aW5jbHVkZSA8VGFyZ2V0Q29uZGl0aW9uYWxzLmg+CiAjaW5jbHVkZSA8QXZhaWxhYmlsaXR5Lmg+ Ci0jaW5jbHVkZSAiYXZjb2RlYy5oIgorI2luY2x1ZGUgPENvcmVNZWRpYS9Db3JlTWVkaWEuaD4K KyNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CisjaW5jbHVkZSA8ZGxmY24uaD4KKyNp bmNsdWRlIDxwdGhyZWFkLmg+CisjaW5jbHVkZSA8VGFyZ2V0Q29uZGl0aW9uYWxzLmg+CisjaW5j bHVkZSA8VmlkZW9Ub29sYm94L1ZpZGVvVG9vbGJveC5oPgorCisjaW5jbHVkZSAibGliYXZ1dGls L2F2YXNzZXJ0LmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL2ltZ3V0aWxzLmgiCiAjaW5jbHVkZSAi bGliYXZ1dGlsL21lbS5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9vcHQuaCIKLSNpbmNsdWRlICJs aWJhdnV0aWwvYXZhc3NlcnQuaCIKLSNpbmNsdWRlICJsaWJhdnV0aWwvYXZzdHJpbmcuaCIKLSNp bmNsdWRlICJsaWJhdnV0aWwvaW1ndXRpbHMuaCIKLSNpbmNsdWRlICJsaWJhdmNvZGVjL2F2Y29k ZWMuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvcGl4ZGVzYy5oIgogI2luY2x1ZGUgImxpYmF2dXRp bC9od2NvbnRleHRfdmlkZW90b29sYm94LmgiCi0jaW5jbHVkZSAiY29kZWNfaW50ZXJuYWwuaCIK LSNpbmNsdWRlICJpbnRlcm5hbC5oIgotI2luY2x1ZGUgPHB0aHJlYWQuaD4KKwogI2luY2x1ZGUg ImF0c2NfYTUzLmgiCisjaW5jbHVkZSAiY29kZWNfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJlbmNv ZGUuaCIKICNpbmNsdWRlICJoMjY0LmgiCiAjaW5jbHVkZSAiaDI2NF9zZWkuaCIKICNpbmNsdWRl ICJod2NvbmZpZy5oIgotI2luY2x1ZGUgPGRsZmNuLmg+CisjaW5jbHVkZSAiaW50ZXJuYWwuaCIK IAogI2lmICFIQVZFX0tDTVZJREVPQ09ERUNUWVBFX0hFVkMKIGVudW0geyBrQ01WaWRlb0NvZGVj VHlwZV9IRVZDID0gJ2h2YzEnIH07Ci0tIAoyLjUyLjAKCgpGcm9tIDc3Y2ZjN2U1Nzg2NWU1MGFi NzA4ZWFkNDI4YWQ3MWM3ZjNhYTc3ZDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFpo YW8gWmhpbGkgPHpoaWxpemhhb0B0ZW5jZW50LmNvbT4KRGF0ZTogVHVlLCAxOCBOb3YgMjAyNSAx OToxNzowOCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDI0LzMwNF0gYXZjb2RlYy92aWRlb3Rvb2xi b3hlbmM6IHJlbW92ZSByZWR1bmRhbnQgIkVycm9yOiAiCiBpbiBlcnJvciBtZXNzYWdlCgotLS0K IGxpYmF2Y29kZWMvdmlkZW90b29sYm94ZW5jLmMgfCAxNCArKysrKysrLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9s aWJhdmNvZGVjL3ZpZGVvdG9vbGJveGVuYy5jIGIvbGliYXZjb2RlYy92aWRlb3Rvb2xib3hlbmMu YwppbmRleCA0NzM2N2JiNjhlLi42M2U5M2I5ZDEwIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Zp ZGVvdG9vbGJveGVuYy5jCisrKyBiL2xpYmF2Y29kZWMvdmlkZW90b29sYm94ZW5jLmMKQEAgLTY2 Nyw3ICs2NjcsNyBAQCBzdGF0aWMgaW50IGNvcHlfcGFyYW1fc2V0cygKIAogICAgICAgICBuZXh0 X29mZnNldCA9IG9mZnNldCArIHNpemVvZihzdGFydF9jb2RlKSArIHBzX3NpemU7CiAgICAgICAg IGlmIChkc3Rfc2l6ZSA8IG5leHRfb2Zmc2V0KSB7Ci0gICAgICAgICAgICBhdl9sb2coYXZjdHgs IEFWX0xPR19FUlJPUiwgIkVycm9yOiBidWZmZXIgdG9vIHNtYWxsIGZvciBwYXJhbWV0ZXIgc2V0 cy5cbiIpOworICAgICAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJCdWZmZXIg dG9vIHNtYWxsIGZvciBwYXJhbWV0ZXIgc2V0cy5cbiIpOwogICAgICAgICAgICAgcmV0dXJuIEFW RVJST1JfQlVGRkVSX1RPT19TTUFMTDsKICAgICAgICAgfQogCkBAIC0xMjA1LDcgKzEyMDUsNyBA QCBzdGF0aWMgaW50IHZ0ZW5jX2NyZWF0ZV9lbmNvZGVyKEFWQ29kZWNDb250ZXh0ICAgKmF2Y3R4 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uKTsK IAogICAgIGlmIChzdGF0dXMgfHwgIXZ0Y3R4LT5zZXNzaW9uKSB7Ci0gICAgICAgIGF2X2xvZyhh dmN0eCwgQVZfTE9HX0VSUk9SLCAiRXJyb3I6IGNhbm5vdCBjcmVhdGUgY29tcHJlc3Npb24gc2Vz c2lvbjogJWRcbiIsIHN0YXR1cyk7CisgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9S LCAiQ2Fubm90IGNyZWF0ZSBjb21wcmVzc2lvbiBzZXNzaW9uOiAlZFxuIiwgc3RhdHVzKTsKIAog I2lmICFUQVJHRVRfT1NfSVBIT05FCiAgICAgICAgIGlmICghdnRjdHgtPmFsbG93X3N3KSB7CkBA IC0xMjQxLDcgKzEyNDEsNyBAQCBzdGF0aWMgaW50IHZ0ZW5jX2NyZWF0ZV9lbmNvZGVyKEFWQ29k ZWNDb250ZXh0ICAgKmF2Y3R4LAogICAgICAgICByZXR1cm4gc3RhdHVzOwogCiAgICAgaWYgKGF2 Y3R4LT5mbGFncyAmIEFWX0NPREVDX0ZMQUdfUVNDQUxFICYmICF2dGVuY19xc2NhbGVfZW5hYmxl ZCgpKSB7Ci0gICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiRXJyb3I6IC1xOnYg cXNjYWxlIG5vdCBhdmFpbGFibGUgZm9yIGVuY29kZXIuIFVzZSAtYjp2IGJpdHJhdGUgaW5zdGVh ZC5cbiIpOworICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIi1xOnYgcXNjYWxl IG5vdCBhdmFpbGFibGUgZm9yIGVuY29kZXIuIFVzZSAtYjp2IGJpdHJhdGUgaW5zdGVhZC5cbiIp OwogICAgICAgICByZXR1cm4gQVZFUlJPUl9FWFRFUk5BTDsKICAgICB9CiAKQEAgLTEyNjksNyAr MTI2OSw3IEBAIHN0YXRpYyBpbnQgdnRlbmNfY3JlYXRlX2VuY29kZXIoQVZDb2RlY0NvbnRleHQg ICAqYXZjdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21w YXRfa2V5cy5rVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0NvbnN0YW50Qml0UmF0ZSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdF9yYXRlX251bSk7CiAgICAg ICAgICAgICBpZiAoc3RhdHVzID09IGtWVFByb3BlcnR5Tm90U3VwcG9ydGVkRXJyKSB7Ci0gICAg ICAgICAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJFcnJvcjogLWNvbnN0YW50 X2JpdF9yYXRlIHRydWUgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW5jb2Rlci5cbiIpOworICAg ICAgICAgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiLWNvbnN0YW50X2JpdF9y YXRlIHRydWUgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW5jb2Rlci5cbiIpOwogICAgICAgICAg ICAgICAgIHJldHVybiBBVkVSUk9SX0VYVEVSTkFMOwogICAgICAgICAgICAgfQogICAgICAgICB9 IGVsc2UgewpAQCAtMTYyNSw3ICsxNjI1LDcgQEAgc3RhdGljIGludCB2dGVuY19jcmVhdGVfZW5j b2RlcihBVkNvZGVjQ29udGV4dCAgICphdmN0eCwKIAogICAgIHN0YXR1cyA9IFZUQ29tcHJlc3Np b25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzKHZ0Y3R4LT5zZXNzaW9uKTsKICAgICBpZiAo c3RhdHVzKSB7Ci0gICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiRXJyb3I6IGNh bm5vdCBwcmVwYXJlIGVuY29kZXI6ICVkXG4iLCBzdGF0dXMpOworICAgICAgICBhdl9sb2coYXZj dHgsIEFWX0xPR19FUlJPUiwgIkNhbm5vdCBwcmVwYXJlIGVuY29kZXI6ICVkXG4iLCBzdGF0dXMp OwogICAgICAgICByZXR1cm4gQVZFUlJPUl9FWFRFUk5BTDsKICAgICB9CiAKQEAgLTE2NDQsNyAr MTY0NCw3IEBAIHN0YXRpYyBpbnQgdnRlbmNfY29uZmlndXJlX2VuY29kZXIoQVZDb2RlY0NvbnRl eHQgKmF2Y3R4KQogCiAgICAgY29kZWNfdHlwZSA9IGdldF9jbV9jb2RlY190eXBlKGF2Y3R4LCB2 dGN0eC0+cHJvZmlsZSwgdnRjdHgtPmFscGhhX3F1YWxpdHkpOwogICAgIGlmICghY29kZWNfdHlw ZSkgewotICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkVycm9yOiBubyBtYXBw aW5nIGZvciBBVkNvZGVjSUQgJWRcbiIsIGF2Y3R4LT5jb2RlY19pZCk7CisgICAgICAgIGF2X2xv ZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiTm8gbWFwcGluZyBmb3IgQVZDb2RlY0lEICVkXG4iLCBh dmN0eC0+Y29kZWNfaWQpOwogICAgICAgICByZXR1cm4gQVZFUlJPUihFSU5WQUwpOwogICAgIH0K IApAQCAtMjUxMyw3ICsyNTEzLDcgQEAgc3RhdGljIGludCB2dGVuY19zZW5kX2ZyYW1lKEFWQ29k ZWNDb250ZXh0ICphdmN0eCwKICAgICApOwogCiAgICAgaWYgKHN0YXR1cykgewotICAgICAgICBh dl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkVycm9yOiBjYW5ub3QgZW5jb2RlIGZyYW1lOiAl ZFxuIiwgc3RhdHVzKTsKKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJDYW5u b3QgZW5jb2RlIGZyYW1lOiAlZFxuIiwgc3RhdHVzKTsKICAgICAgICAgc3RhdHVzID0gQVZFUlJP Ul9FWFRFUk5BTDsKICAgICAgICAgLy8gTm90IG5lY2Vzc2FyeSwganVzdCBpbiBjYXNlIG5ldyBj b2RlIHB1dCBhZnRlciBoZXJlCiAgICAgICAgIGdvdG8gb3V0OwotLSAKMi41Mi4wCgoKRnJvbSA1 Yzc0YWM1Y2EyMjc5MzZjZTE0NDg0NmVhZDViM2M2ZWYxZjdkMmVkIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBaaGFvIFpoaWxpIDx6aGlsaXpoYW9AdGVuY2VudC5jb20+CkRhdGU6IEZy aSwgMTQgTm92IDIwMjUgMTY6MjM6MTAgKzA4MDAKU3ViamVjdDogW1BBVENIIDAyNS8zMDRdIGF2 ZmlsdGVyL3ZmX2RyYXd0ZXh0OiBmaXggaW5jb3JyZWN0IHRleHQgbGVuZ3RoCgpGcm9tIHRoZSBk b2Mgb2YgSGFyZkJ1enosIHdoYXQgaGJfYnVmZmVyX2FkZF91dGY4IG5lZWRzIGlzIHRoZQpudW1i ZXIgb2YgYnl0ZXMsIG5vdCBVbmljb2RlIGNoYXJhY3RlcjoKaGJfYnVmZmVyX2FkZF91dGY4KGJ1 ZiwgdGV4dCwgc3RybGVuKHRleHQpLCAwLCBzdHJsZW4odGV4dCkpOwoKRml4IGlzc3VlICMyMDkw Ni4KLS0tCiBsaWJhdmZpbHRlci92Zl9kcmF3dGV4dC5jIHwgNSArLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Zmls dGVyL3ZmX2RyYXd0ZXh0LmMgYi9saWJhdmZpbHRlci92Zl9kcmF3dGV4dC5jCmluZGV4IDFkMjM4 MDViNTQuLmMwNDAwYjgyNzIgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3ZmX2RyYXd0ZXh0LmMK KysrIGIvbGliYXZmaWx0ZXIvdmZfZHJhd3RleHQuYwpAQCAtMTM5Niw3ICsxMzk2LDYgQEAgc3Rh dGljIGludCBtZWFzdXJlX3RleHQoQVZGaWx0ZXJDb250ZXh0ICpjdHgsIFRleHRNZXRyaWNzICpt ZXRyaWNzKQogICAgIERyYXdUZXh0Q29udGV4dCAqcyA9IGN0eC0+cHJpdjsKICAgICBjaGFyICp0 ZXh0ID0gcy0+ZXhwYW5kZWRfdGV4dC5zdHI7CiAgICAgY2hhciAqdGV4dGR1cCA9IE5VTEwsICpz dGFydCA9IE5VTEw7Ci0gICAgaW50IG51bV9jaGFycyA9IDA7CiAgICAgaW50IHdpZHRoNjQgPSAw LCB3NjQgPSAwOwogICAgIGludCBjdXJfbWluX3k2NCA9IDAsIGZpcnN0X21heF95NjQgPSAtMzIw MDA7CiAgICAgaW50IGZpcnN0X21pbl94NjQgPSAzMjAwMCwgbGFzdF9tYXhfeDY0ID0gLTMyMDAw OwpAQCAtMTQ1OSw3ICsxNDU4LDcgQEAgY29udGludWVfb25fZmFpbGVkMjoKICAgICAgICAgICAg IFRleHRMaW5lICpjdXJfbGluZSA9ICZzLT5saW5lc1tsaW5lX2NvdW50XTsKICAgICAgICAgICAg IEhhcmZidXp6RGF0YSAqaGIgPSAmY3VyX2xpbmUtPmhiX2RhdGE7CiAgICAgICAgICAgICBjdXJf bGluZS0+Y2x1c3Rlcl9vZmZzZXQgPSBsaW5lX29mZnNldDsKLSAgICAgICAgICAgIHJldCA9IHNo YXBlX3RleHRfaGIocywgaGIsIHN0YXJ0LCBudW1fY2hhcnMpOworICAgICAgICAgICAgcmV0ID0g c2hhcGVfdGV4dF9oYihzLCBoYiwgc3RhcnQsIHAgLSBzdGFydCk7CiAgICAgICAgICAgICBpZiAo cmV0ICE9IDApIHsKICAgICAgICAgICAgICAgICBnb3RvIGRvbmU7CiAgICAgICAgICAgICB9CkBA IC0xNTE3LDE0ICsxNTE2LDEyIEBAIGNvbnRpbnVlX29uX2ZhaWxlZDI6CiAgICAgICAgICAgICBp ZiAodzY0ID4gd2lkdGg2NCkgewogICAgICAgICAgICAgICAgIHdpZHRoNjQgPSB3NjQ7CiAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICBudW1fY2hhcnMgPSAtMTsKICAgICAgICAgICAgIHN0YXJ0 ID0gcDsKICAgICAgICAgICAgICsrbGluZV9jb3VudDsKICAgICAgICAgICAgIGxpbmVfb2Zmc2V0 ID0gaSArIDE7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoY29kZSA9PSAwKSBicmVhazsKLSAg ICAgICAgKytudW1fY2hhcnM7CiAgICAgfQogCiAgICAgbWV0cmljcy0+bGluZV9oZWlnaHQ2NCA9 IHMtPmZhY2UtPnNpemUtPm1ldHJpY3MuaGVpZ2h0OwotLSAKMi41Mi4wCgoKRnJvbSAyMzQ1YjFm NGRiMmZjZTlhYWNlNzE5ZGU2YzBmZTU1NzQ0YWEwMDU2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBaaGFvIFpoaWxpIDx6aGlsaXpoYW9AdGVuY2VudC5jb20+CkRhdGU6IEZyaSwgMTQg Tm92IDIwMjUgMTY6NTM6MDcgKzA4MDAKU3ViamVjdDogW1BBVENIIDAyNi8zMDRdIGF2ZmlsdGVy L3ZmX2RyYXd0ZXh0OiBmaXggY2FsbCBHRVRfVVRGOCB3aXRoIGludmFsaWQKIGFyZ3VtZW50CgpG b3IgR0VUX1VURjgodmFsLCBHRVRfQllURSwgRVJST1IpLCB2YWwgaGFzIHR5cGUgb2YgdWludDMy X3QsCkdFVF9CWVRFIG11c3QgcmV0dXJuIGFuIHVuc2lnbmVkIGludGVnZXIsIG90aGVyd2lzZSBz aWduZWQKZXh0ZW5zaW9uIGhhcHBlbmVkIGR1ZSB0byB2YWw9IChHRVRfQllURSksIGFuZCBHRVRf VVRGOCB3ZW50IHRvCnRoZSBlcnJvciBwYXRoLgoKVGhpcyBidWcgaW5jaWRlbnRhbGx5IGNhbmNl bGxlZCB0aGUgYnVnIHdoZXJlIGhiX2J1ZmZlcl9hZGRfdXRmOAp3YXMgYmVpbmcgY2FsbGVkIHdp dGggaW5jb3JyZWN0IGFyZ3VtZW50LCBhbGxvd2luZyBkcmF3dGV4dCB0bwpmdW5jdGlvbiBjb3Jy ZWN0bHkgb24geDg2IGFuZCBtYWNPUyBBUk0sIHdoaWNoIGRlZmluZWQgY2hhciBhcwpzaWduZWQu IEhvd2V2ZXIsIG9uIExpbnV4IGFuZCBBbmRyb2lkIEFSTSBlbnZpcm9ubWVudHMsIGJlY2F1c2UK Y2hhciBpcyB1bnNpZ25lZCBieSBkZWZhdWx0LCBHRVRfVVRGOCBub3cgcmV0dXJucyB0aGUgY29y cmVjdApyZXR1cm4sIHdoaWNoIHVuZXhwZWN0ZWRseSByZXZlYWxlZCBpc3N1ZSAjMjA5MDYuCi0t LQogbGliYXZmaWx0ZXIvdmZfZHJhd3RleHQuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92 Zl9kcmF3dGV4dC5jIGIvbGliYXZmaWx0ZXIvdmZfZHJhd3RleHQuYwppbmRleCBjMDQwMGI4Mjcy Li4yODEyZGUzN2Y1IDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci92Zl9kcmF3dGV4dC5jCisrKyBi L2xpYmF2ZmlsdGVyL3ZmX2RyYXd0ZXh0LmMKQEAgLTEzOTUsNyArMTM5NSw3IEBAIHN0YXRpYyBp bnQgbWVhc3VyZV90ZXh0KEFWRmlsdGVyQ29udGV4dCAqY3R4LCBUZXh0TWV0cmljcyAqbWV0cmlj cykKIHsKICAgICBEcmF3VGV4dENvbnRleHQgKnMgPSBjdHgtPnByaXY7CiAgICAgY2hhciAqdGV4 dCA9IHMtPmV4cGFuZGVkX3RleHQuc3RyOwotICAgIGNoYXIgKnRleHRkdXAgPSBOVUxMLCAqc3Rh cnQgPSBOVUxMOworICAgIGNoYXIgKnRleHRkdXAgPSBOVUxMOwogICAgIGludCB3aWR0aDY0ID0g MCwgdzY0ID0gMDsKICAgICBpbnQgY3VyX21pbl95NjQgPSAwLCBmaXJzdF9tYXhfeTY0ID0gLTMy MDAwOwogICAgIGludCBmaXJzdF9taW5feDY0ID0gMzIwMDAsIGxhc3RfbWF4X3g2NCA9IC0zMjAw MDsKQEAgLTE0MDUsNyArMTQwNSw3IEBAIHN0YXRpYyBpbnQgbWVhc3VyZV90ZXh0KEFWRmlsdGVy Q29udGV4dCAqY3R4LCBUZXh0TWV0cmljcyAqbWV0cmljcykKICAgICBHbHlwaCAqZ2x5cGggPSBO VUxMOwogCiAgICAgaW50IGksIHRhYl9pZHggPSAwLCBsYXN0X3RhYl9pZHggPSAwLCBsaW5lX29m ZnNldCA9IDA7Ci0gICAgY2hhciogcDsKKyAgICB1aW50OF90ICpzdGFydCwgKnA7CiAgICAgaW50 IHJldCA9IDA7CiAKICAgICAvLyBDb3VudCB0aGUgbGluZXMgYW5kIHRoZSB0YWIgY2hhcmFjdGVy cwotLSAKMi41Mi4wCgoKRnJvbSAwNTQ2NTE3MDdlMDEyNTg4NmFiYzRiYzRiMzUxOTdlYWFjMGNi MjFhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBaaGFvIFpoaWxpIDx6aGlsaXpoYW9A dGVuY2VudC5jb20+CkRhdGU6IEZyaSwgMTQgTm92IDIwMjUgMTc6MjM6MjIgKzA4MDAKU3ViamVj dDogW1BBVENIIDAyNy8zMDRdIGF2dXRpbC9jb21tb246IGNhc3QgR0VUX0JZVEUvR0VUXzE2QklU IHJldHVybmVkIHZhbHVlCgpJbiBjYXNlIG9mIEdFVF9CWVRFL0dFVF8xNkJJVCByZXR1cm4gc2ln bmVkIHZhbHVlLgotLS0KIGxpYmF2dXRpbC9jb21tb24uaCB8IDggKysrKy0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGli YXZ1dGlsL2NvbW1vbi5oIGIvbGliYXZ1dGlsL2NvbW1vbi5oCmluZGV4IDNiODMwZGFmMzAuLmJm MjNhYTUwYjAgMTAwNjQ0Ci0tLSBhL2xpYmF2dXRpbC9jb21tb24uaAorKysgYi9saWJhdnV0aWwv Y29tbW9uLmgKQEAgLTQ4NiwxMyArNDg2LDEzIEBAIHN0YXRpYyBhdl9hbHdheXNfaW5saW5lIGF2 X2NvbnN0IGludCBhdl9wYXJpdHlfYyh1aW50MzJfdCB2KQogICogdG8gcHJldmVudCB1bmRlZmlu ZWQgcmVzdWx0cy4KICAqLwogI2RlZmluZSBHRVRfVVRGOCh2YWwsIEdFVF9CWVRFLCBFUlJPUilc Ci0gICAgdmFsPSAoR0VUX0JZVEUpO1wKKyAgICB2YWw9ICh1aW50OF90KShHRVRfQllURSk7XAog ICAgIHtcCiAgICAgICAgIHVpbnQzMl90IHRvcCA9ICh2YWwgJiAxMjgpID4+IDE7XAogICAgICAg ICBpZiAoKHZhbCAmIDB4YzApID09IDB4ODAgfHwgdmFsID49IDB4RkUpXAogICAgICAgICAgICAg e0VSUk9SfVwKICAgICAgICAgd2hpbGUgKHZhbCAmIHRvcCkge1wKLSAgICAgICAgICAgIHVuc2ln bmVkIGludCB0bXAgPSAoR0VUX0JZVEUpIC0gMTI4O1wKKyAgICAgICAgICAgIHVuc2lnbmVkIGlu dCB0bXAgPSAodWludDhfdCkoR0VUX0JZVEUpIC0gMTI4O1wKICAgICAgICAgICAgIGlmKHRtcD4+ NilcCiAgICAgICAgICAgICAgICAge0VSUk9SfVwKICAgICAgICAgICAgIHZhbD0gKHZhbDw8Nikg KyB0bXA7XApAQCAtNTExLDExICs1MTEsMTEgQEAgc3RhdGljIGF2X2Fsd2F5c19pbmxpbmUgYXZf Y29uc3QgaW50IGF2X3Bhcml0eV9jKHVpbnQzMl90IHYpCiAgKiAgICAgICAgICAgICAgICAgIHR5 cGljYWxseSBhIGdvdG8gc3RhdGVtZW50LgogICovCiAjZGVmaW5lIEdFVF9VVEYxNih2YWwsIEdF VF8xNkJJVCwgRVJST1IpXAotICAgIHZhbCA9IChHRVRfMTZCSVQpO1wKKyAgICB2YWwgPSAodWlu dDE2X3QpKEdFVF8xNkJJVCk7XAogICAgIHtcCiAgICAgICAgIHVuc2lnbmVkIGludCBoaSA9IHZh bCAtIDB4RDgwMDtcCiAgICAgICAgIGlmIChoaSA8IDB4ODAwKSB7XAotICAgICAgICAgICAgdmFs ID0gKEdFVF8xNkJJVCkgLSAweERDMDA7XAorICAgICAgICAgICAgdmFsID0gKHVpbnQxNl90KShH RVRfMTZCSVQpIC0gMHhEQzAwO1wKICAgICAgICAgICAgIGlmICh2YWwgPiAweDNGRlUgfHwgaGkg PiAweDNGRlUpXAogICAgICAgICAgICAgICAgIHtFUlJPUn1cCiAgICAgICAgICAgICB2YWwgKz0g KGhpPDwxMCkgKyAweDEwMDAwO1wKLS0gCjIuNTIuMAoKCkZyb20gMzM2NTA3ZmY1NzExOWRkZTJk NGI2MGM0ZDRhNGEwOGRmMWM1YTM3MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFt ZXMgWmVybiA8anplcm5AZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAxOSBOb3YgMjAyNSAxMDozODo1 OCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDI4LzMwNF0gYXZjb2RlYy9saWJhb21lbmM6IEZpeCB1 c2Ugb2YgdW5pbml0aWFsaXplZCB2YWx1ZQoKY29kZWNjdGxfaW50cCgpIGlzIHVzZWQgdG8gcG9w dWxhdGUgdmFsdWVzIHZpYSBhb21fY29kZWNfY29udHJvbCgpLCBub3QKc2V0IHRoZW0uIFRoaXMg Y2hhbmdlIG1vdmVzIHRoZSBvdXRwdXQgb2YgdGhlIHJldHVybiBwb2ludGVyJ3MgdmFsdWUKYWZ0 ZXIgdGhlIGFvbV9jb2RlY19jb250cm9sKCkgdG8gYXZvaWQgYSBtZW1vcnkgc2FuaXRpemVyIHdh cm5pbmcgKHVzZQpvZiB1bmluaXRpYWxpemVkIHZhbHVlKS4KClNpZ25lZC1vZmYtYnk6IEphbWVz IFplcm4gPGp6ZXJuQGdvb2dsZS5jb20+Ci0tLQogbGliYXZjb2RlYy9saWJhb21lbmMuYyB8IDgg KysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9saWJhb21lbmMuYyBiL2xpYmF2Y29kZWMvbGliYW9t ZW5jLmMKaW5kZXggOWZiOTdlNzRmZi4uMWU1ZGI0YWQ4YyAxMDA2NDQKLS0tIGEvbGliYXZjb2Rl Yy9saWJhb21lbmMuYworKysgYi9saWJhdmNvZGVjL2xpYmFvbWVuYy5jCkBAIC0zOTIsMTcgKzM5 MiwxNyBAQCBzdGF0aWMgYXZfY29sZCBpbnQgY29kZWNjdGxfaW50cChBVkNvZGVjQ29udGV4dCAq YXZjdHgsCiAgICAgaW50IHdpZHRoID0gLTMwOwogICAgIGludCByZXM7CiAKLSAgICBzbnByaW50 ZihidWYsIHNpemVvZihidWYpLCAiJXM6IiwgY3RsaWRzdHJbaWRdKTsKLSAgICBhdl9sb2coYXZj dHgsIEFWX0xPR19ERUJVRywgIiAgJSpzJWRcbiIsIHdpZHRoLCBidWYsICpwdHIpOwotCiAgICAg cmVzID0gYW9tX2NvZGVjX2NvbnRyb2woJmN0eC0+ZW5jb2RlciwgaWQsIHB0cik7CiAgICAgaWYg KHJlcyAhPSBBT01fQ09ERUNfT0spIHsKLSAgICAgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVm KSwgIkZhaWxlZCB0byBzZXQgJXMgY29kZWMgY29udHJvbCIsCisgICAgICAgIHNucHJpbnRmKGJ1 Ziwgc2l6ZW9mKGJ1ZiksICJGYWlsZWQgdG8gZ2V0ICVzIGNvZGVjIGNvbnRyb2wiLAogICAgICAg ICAgICAgICAgICBjdGxpZHN0cltpZF0pOwogICAgICAgICBsb2dfZW5jb2Rlcl9lcnJvcihhdmN0 eCwgYnVmKTsKICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKICAgICB9CiAKKyAgICBz bnByaW50ZihidWYsIHNpemVvZihidWYpLCAiJXM6IiwgY3RsaWRzdHJbaWRdKTsKKyAgICBhdl9s b2coYXZjdHgsIEFWX0xPR19ERUJVRywgIiAgJSpzJWRcbiIsIHdpZHRoLCBidWYsICpwdHIpOwor CiAgICAgcmV0dXJuIDA7CiB9CiAjZW5kaWYKLS0gCjIuNTIuMAoKCkZyb20gZjk2YjdkYTEwMjJj YjExNmEzMGYyYTVkZTg2NWY3OThjYjZhZjg3ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogPT9VVEYtOD9xP0thY3Blcj0yME1pY2hhaj1DNT04Mm93Pz0gPGthc3BlcjkzQGdtYWlsLmNv bT4KRGF0ZTogV2VkLCAxOSBOb3YgMjAyNSAxOTozNzowMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDI5LzMwNF0gTWFrZWZpbGU6IHJlbW92ZSBjb25maWdfY29tcG9uZW50cy5hc20gb24gZGlzdGNs ZWFuCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1V VEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpGb3Jnb3R0ZW4gaW4gYzYwN2Fh ZTJiOTViMDViZGM3MDY2ZTM1NzI3MzdjYjAwYTU5NmU5Zi4KClNpZ25lZC1vZmYtYnk6IEthY3Bl ciBNaWNoYWrFgm93IDxrYXNwZXI5M0BnbWFpbC5jb20+Ci0tLQogTWFrZWZpbGUgfCAyICstCiAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9NYWtlZmlsZSBiL01ha2VmaWxlCmluZGV4IDE3ZmFkZDU4YzIuLjJmNzhkYjAyYTUgMTAwNjQ0 Ci0tLSBhL01ha2VmaWxlCisrKyBiL01ha2VmaWxlCkBAIC0xODQsNyArMTg0LDcgQEAgY2xlYW46 OgogCSQoUk0pIC1yZiBjb3ZlcmFnZS5pbmZvIGNvdmVyYWdlLmluZm8uaW4gbGNvdgogCiBkaXN0 Y2xlYW46OiBjbGVhbgotCSQoUk0pIC52ZXJzaW9uIGNvbmZpZy5hc20gY29uZmlnLmggY29uZmln X2NvbXBvbmVudHMuaCBtYXBmaWxlICBcCisJJChSTSkgLnZlcnNpb24gY29uZmlnLmFzbSBjb25m aWcuaCBjb25maWdfY29tcG9uZW50cy4qIG1hcGZpbGUgIFwKIAkJZmZidWlsZC8uY29uZmlnIGZm YnVpbGQvY29uZmlnLiogbGliYXZ1dGlsL2F2Y29uZmlnLmggXAogCQl2ZXJzaW9uLmggbGliYXZ1 dGlsL2ZmdmVyc2lvbi5oIGxpYmF2Y29kZWMvY29kZWNfbmFtZXMuaCBcCiAJCWxpYmF2Y29kZWMv YnNmX2xpc3QuYyBsaWJhdmZvcm1hdC9wcm90b2NvbF9saXN0LmMgXAotLSAKMi41Mi4wCgoKRnJv bSBhNmYyNTdkYmM0YmY5MzIxN2RkYTNiZjEzOTJjZTVjYjRlZmZmNzc5IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBv dXRsb29rLmNvbT4KRGF0ZTogTW9uLCAxNyBOb3YgMjAyNSAxNTozNTozOCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMDMwLzMwNF0gYXZjb2RlYy9tcGVnMTI6IElubGluZSBmZl9tcGVnMV9jbGVhbl9i dWZmZXJzKCkgaW50bwogaXRzIGNhbGxlcnMKClRoaXMgZnVuY3Rpb24gaXMgZXh0cmVtZWx5IHNt YWxsLCBzbyBpbmxpbmluZyBpdCBpcyBhcHByb3ByaWF0ZSAoYW5kCmFjdHVhbGx5IGJlbmVmaWNp YWwgc2l6ZS13aXNlIGhlcmUpLiBJdCBmdXJ0aGVybW9yZSBhbGxvd3MgdG8gcmVtb3ZlCnRoZSBt cGVnMTJjb2RlY3MuaCBoZWFkZXIgYW5kIHRoZSBtcGVnMTItZW5jb2RlcnMtPm1wZWcxMi5vIGRl cGVuZGVuY3kuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhl aW5oYXJkdEBvdXRsb29rLmNvbT4KLS0tCiBsaWJhdmNvZGVjL01ha2VmaWxlICAgICAgICB8ICA0 ICsrLS0KIGxpYmF2Y29kZWMvbXBlZzEyLmMgICAgICAgIHwgMTAgLS0tLS0tLS0tLQogbGliYXZj b2RlYy9tcGVnMTJjb2RlY3MuaCAgfCAyOSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog bGliYXZjb2RlYy9tcGVnMTJkZWMuYyAgICAgfCAgNyArKysrKy0tCiBsaWJhdmNvZGVjL21wZWcx MmVuYy5oICAgICB8ICA4ICsrKysrKysrCiBsaWJhdmNvZGVjL21wZWd2aWRlb19lbmMuYyB8ICAz ICstLQogNiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMoLSkK IGRlbGV0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL21wZWcxMmNvZGVjcy5oCgpkaWZmIC0tZ2l0 IGEvbGliYXZjb2RlYy9NYWtlZmlsZSBiL2xpYmF2Y29kZWMvTWFrZWZpbGUKaW5kZXggNDljMjg0 ZWY5ZS4uM2U2ZjAwMDg2OCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9NYWtlZmlsZQorKysgYi9s aWJhdmNvZGVjL01ha2VmaWxlCkBAIC01NjYsMTQgKzU2NiwxNCBAQCBPQkpTLSQoQ09ORklHX01Q QzdfREVDT0RFUikgICAgICAgICAgICArPSBtcGM3Lm8gbXBjLm8KIE9CSlMtJChDT05GSUdfTVBD OF9ERUNPREVSKSAgICAgICAgICAgICs9IG1wYzgubyBtcGMubwogT0JKUy0kKENPTkZJR19NUEVH VklERU9fREVDT0RFUikgICAgICAgKz0gbXBlZzEyZGVjLm8gbXBlZzEyLm8gbXBlZzEyZGF0YS5v CiBPQkpTLSQoQ09ORklHX01QRUcxVklERU9fREVDT0RFUikgICAgICArPSBtcGVnMTJkZWMubyBt cGVnMTIubyBtcGVnMTJkYXRhLm8KLU9CSlMtJChDT05GSUdfTVBFRzFWSURFT19FTkNPREVSKSAg ICAgICs9IG1wZWcxMmVuYy5vIG1wZWcxMi5vCitPQkpTLSQoQ09ORklHX01QRUcxVklERU9fRU5D T0RFUikgICAgICArPSBtcGVnMTJlbmMubwogT0JKUy0kKENPTkZJR19NUEVHMV9DVVZJRF9ERUNP REVSKSAgICAgKz0gY3V2aWRkZWMubwogT0JKUy0kKENPTkZJR19NUEVHMV9WNEwyTTJNX0RFQ09E RVIpICAgKz0gdjRsMl9tMm1fZGVjLm8KIE9CSlMtJChDT05GSUdfTVBFRzJfTU1BTF9ERUNPREVS KSAgICAgICs9IG1tYWxkZWMubwogT0JKUy0kKENPTkZJR19NUEVHMl9RU1ZfREVDT0RFUikgICAg ICAgKz0gcXN2ZGVjLm8KIE9CSlMtJChDT05GSUdfTVBFRzJfUVNWX0VOQ09ERVIpICAgICAgICs9 IHFzdmVuY19tcGVnMi5vCiBPQkpTLSQoQ09ORklHX01QRUcyVklERU9fREVDT0RFUikgICAgICAr PSBtcGVnMTJkZWMubyBtcGVnMTIubyBtcGVnMTJkYXRhLm8KLU9CSlMtJChDT05GSUdfTVBFRzJW SURFT19FTkNPREVSKSAgICAgICs9IG1wZWcxMmVuYy5vIG1wZWcxMi5vCitPQkpTLSQoQ09ORklH X01QRUcyVklERU9fRU5DT0RFUikgICAgICArPSBtcGVnMTJlbmMubwogT0JKUy0kKENPTkZJR19N UEVHMl9DVVZJRF9ERUNPREVSKSAgICAgKz0gY3V2aWRkZWMubwogT0JKUy0kKENPTkZJR19NUEVH Ml9NRURJQUNPREVDX0RFQ09ERVIpICs9IG1lZGlhY29kZWNkZWMubwogT0JKUy0kKENPTkZJR19N UEVHMl9WQUFQSV9FTkNPREVSKSAgICAgKz0gdmFhcGlfZW5jb2RlX21wZWcyLm8KZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMvbXBlZzEyLmMgYi9saWJhdmNvZGVjL21wZWcxMi5jCmluZGV4IDYyYTc3 YjY4MDYuLjYxNzIzZjNhMjkgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvbXBlZzEyLmMKKysrIGIv bGliYXZjb2RlYy9tcGVnMTIuYwpAQCAtMzAsOCArMzAsNiBAQAogI2luY2x1ZGUgImxpYmF2dXRp bC9hdHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL3RocmVhZC5oIgogCi0jaW5jbHVk ZSAibXBlZ3ZpZGVvLmgiCi0jaW5jbHVkZSAibXBlZzEyY29kZWNzLmgiCiAjaW5jbHVkZSAibXBl ZzEyZGF0YS5oIgogI2luY2x1ZGUgIm1wZWcxMmRlYy5oIgogI2luY2x1ZGUgIm1wZWd1dGlscy5o IgpAQCAtMTIyLDE0ICsxMjAsNiBAQCBhdl9jb2xkIHZvaWQgZmZfaW5pdF8yZF92bGNfcmwoY29u c3QgdWludDE2X3QgdGFibGVfdmxjW11bMl0sIFJMX1ZMQ19FTEVNIHJsX3ZsYwogICAgIH0KIH0K IAotdm9pZCBmZl9tcGVnMV9jbGVhbl9idWZmZXJzKE1wZWdFbmNDb250ZXh0ICpzKQotewotICAg IHMtPmxhc3RfZGNbMF0gPSAxIDw8ICg3ICsgcy0+aW50cmFfZGNfcHJlY2lzaW9uKTsKLSAgICBz LT5sYXN0X2RjWzFdID0gcy0+bGFzdF9kY1swXTsKLSAgICBzLT5sYXN0X2RjWzJdID0gcy0+bGFz dF9kY1swXTsKLSAgICBtZW1zZXQocy0+bGFzdF9tdiwgMCwgc2l6ZW9mKHMtPmxhc3RfbXYpKTsK LX0KLQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyog ZGVjb2RpbmcgKi8KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvbXBlZzEyY29kZWNzLmggYi9saWJh dmNvZGVjL21wZWcxMmNvZGVjcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOGNm NTUwM2UyLi4wMDAwMDAwMDAwCi0tLSBhL2xpYmF2Y29kZWMvbXBlZzEyY29kZWNzLmgKKysrIC9k ZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi0vKgotICogTVBFRy0xLzIgY29kZWNzIGNvbW1vbiBj b2RlCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDcgQXVyZWxpZW4gSmFjb2JzIDxhdXJlbEBnbnVhZ2Uu b3JnPgotICoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KLSAqCi0gKiBGRm1wZWcg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2Rp ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0g KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIKLSAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMKLSAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhl IEZyZWUgU29mdHdhcmUKLSAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKLSAqLwotCi0jaWZuZGVmIEFW Q09ERUNfTVBFRzEyQ09ERUNTX0gKLSNkZWZpbmUgQVZDT0RFQ19NUEVHMTJDT0RFQ1NfSAotCi0j aW5jbHVkZSAibXBlZ3ZpZGVvLmgiCi0KLXZvaWQgZmZfbXBlZzFfY2xlYW5fYnVmZmVycyhNcGVn RW5jQ29udGV4dCAqcyk7Ci0KLSNlbmRpZiAvKiBBVkNPREVDX01QRUcxMkNPREVDU19IICovCmRp ZmYgLS1naXQgYS9saWJhdmNvZGVjL21wZWcxMmRlYy5jIGIvbGliYXZjb2RlYy9tcGVnMTJkZWMu YwppbmRleCAzZWE4ZDAyZTFiLi41OGZmOTI1YmZkIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL21w ZWcxMmRlYy5jCisrKyBiL2xpYmF2Y29kZWMvbXBlZzEyZGVjLmMKQEAgLTUwLDcgKzUwLDYgQEAK ICNpbmNsdWRlICJpZGN0ZHNwLmgiCiAjaW5jbHVkZSAibXBlZ19lci5oIgogI2luY2x1ZGUgIm1w ZWcxMi5oIgotI2luY2x1ZGUgIm1wZWcxMmNvZGVjcy5oIgogI2luY2x1ZGUgIm1wZWcxMmRhdGEu aCIKICNpbmNsdWRlICJtcGVnMTJkZWMuaCIKICNpbmNsdWRlICJtcGVndXRpbHMuaCIKQEAgLTEz NzUsNyArMTM3NCw2IEBAIHN0YXRpYyBpbnQgbXBlZ19kZWNvZGVfc2xpY2UoTXBlZzEyU2xpY2VD b250ZXh0ICpjb25zdCBzLCBpbnQgbWJfeSwKICAgICBpZiAocy0+Yy5jb2RlY19pZCAhPSBBVl9D T0RFQ19JRF9NUEVHMVZJREVPICYmIHMtPmMubWJfaGVpZ2h0ID4gMjgwMC8xNikKICAgICAgICAg c2tpcF9iaXRzKCZzLT5nYiwgMyk7CiAKLSAgICBmZl9tcGVnMV9jbGVhbl9idWZmZXJzKCZzLT5j KTsKICAgICBzLT5jLmludGVybGFjZWRfZGN0ID0gMDsKIAogICAgIHMtPmMucXNjYWxlID0gbXBl Z19nZXRfcXNjYWxlKCZzLT5nYiwgcy0+Yy5xX3NjYWxlX3R5cGUpOwpAQCAtMTQ1NSw2ICsxNDUz LDExIEBAIHN0YXRpYyBpbnQgbXBlZ19kZWNvZGVfc2xpY2UoTXBlZzEyU2xpY2VDb250ZXh0ICpj b25zdCBzLCBpbnQgbWJfeSwKICAgICAgICAgfQogICAgIH0KIAorICAgIHMtPmMubGFzdF9kY1sw XSA9IDEyOCA8PCBzLT5jLmludHJhX2RjX3ByZWNpc2lvbjsKKyAgICBzLT5jLmxhc3RfZGNbMV0g PSBzLT5jLmxhc3RfZGNbMF07CisgICAgcy0+Yy5sYXN0X2RjWzJdID0gcy0+Yy5sYXN0X2RjWzBd OworICAgIG1lbXNldChzLT5jLmxhc3RfbXYsIDAsIHNpemVvZihzLT5jLmxhc3RfbXYpKTsKKwog ICAgIGZvciAoaW50IG1iX3NraXBfcnVuID0gMDs7KSB7CiAgICAgICAgIHJldCA9IG1wZWdfZGVj b2RlX21iKHMsICZtYl9za2lwX3J1bik7CiAgICAgICAgIGlmIChyZXQgPCAwKQpkaWZmIC0tZ2l0 IGEvbGliYXZjb2RlYy9tcGVnMTJlbmMuaCBiL2xpYmF2Y29kZWMvbXBlZzEyZW5jLmgKaW5kZXgg YThhZWFkYmIzZS4uOTcwMDdiZThmZSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9tcGVnMTJlbmMu aAorKysgYi9saWJhdmNvZGVjL21wZWcxMmVuYy5oCkBAIC0zNiw0ICszNiwxMiBAQCBzdGF0aWMg aW5saW5lIHZvaWQgZmZfbXBlZzFfZW5jb2RlX2luaXQoTVBWRW5jQ29udGV4dCAqcykKICAgICBz LT5jLmNfZGNfc2NhbGVfdGFibGUgPSBmZl9tcGVnMTJfZGNfc2NhbGVfdGFibGVbcy0+Yy5pbnRy YV9kY19wcmVjaXNpb25dOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQgZmZfbXBlZzFfY2xlYW5f YnVmZmVycyhNUFZFbmNDb250ZXh0ICpzKQoreworICAgIHMtPmMubGFzdF9kY1swXSA9IDEyOCA8 PCBzLT5jLmludHJhX2RjX3ByZWNpc2lvbjsKKyAgICBzLT5jLmxhc3RfZGNbMV0gPSBzLT5jLmxh c3RfZGNbMF07CisgICAgcy0+Yy5sYXN0X2RjWzJdID0gcy0+Yy5sYXN0X2RjWzBdOworICAgIG1l bXNldChzLT5jLmxhc3RfbXYsIDAsIHNpemVvZihzLT5jLmxhc3RfbXYpKTsKK30KKwogI2VuZGlm IC8qIEFWQ09ERUNfTVBFRzEyRU5DX0ggKi8KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvbXBlZ3Zp ZGVvX2VuYy5jIGIvbGliYXZjb2RlYy9tcGVndmlkZW9fZW5jLmMKaW5kZXggOWU4MzAyNmI1MS4u ODAxNTg4NmRjNCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9tcGVndmlkZW9fZW5jLmMKKysrIGIv bGliYXZjb2RlYy9tcGVndmlkZW9fZW5jLmMKQEAgLTQ3LDcgKzQ3LDYgQEAKICNpbmNsdWRlICJh dmNvZGVjLmgiCiAjaW5jbHVkZSAiZW5jb2RlLmgiCiAjaW5jbHVkZSAiaWRjdGRzcC5oIgotI2lu Y2x1ZGUgIm1wZWcxMmNvZGVjcy5oIgogI2luY2x1ZGUgIm1wZWcxMmRhdGEuaCIKICNpbmNsdWRl ICJtcGVnMTJlbmMuaCIKICNpbmNsdWRlICJtcGVndmlkZW8uaCIKQEAgLTMxNDQsNyArMzE0Myw3 IEBAIHN0YXRpYyBpbnQgZW5jb2RlX3RocmVhZChBVkNvZGVjQ29udGV4dCAqYywgdm9pZCAqYXJn KXsKICAgICAgICAgICAgICAgICAgICAgY2FzZSBBVl9DT0RFQ19JRF9NUEVHMlZJREVPOgogICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKENPTkZJR19NUEVHMVZJREVPX0VOQ09ERVIgfHwgQ09O RklHX01QRUcyVklERU9fRU5DT0RFUikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZm X21wZWcxX2VuY29kZV9zbGljZV9oZWFkZXIocyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgZmZfbXBlZzFfY2xlYW5fYnVmZmVycygmcy0+Yyk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZmZfbXBlZzFfY2xlYW5fYnVmZmVycyhzKTsKICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAjaWYgQ09ORklHX0gyNjNQX0VOQ09ERVIK LS0gCjIuNTIuMAoKCkZyb20gOGFkYWJiNTMxMDllMzk2OGRkOGZiYzA2NzYwZmQ1ODEwMWYyZGE2 YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRy ZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IE1vbiwgMTcgTm92IDIwMjUgMTU6Mzk6 NDcgKzAxMDAKU3ViamVjdDogW1BBVENIIDAzMS8zMDRdIGF2Y29kZWMvTWFrZWZpbGU6IFJlbW92 ZSBtcGVndmlkZW9fcGFyc2VyLT5tcGVnMTIubwogZGVwZW5kZW5jeQoKRm9yZ290dGVuIGluIDNj ZWZmZTc4Mzk2NTc2N2U2MmQ1OWU4ZTY4ZWNkMjY1Yzk4NDYwZWMuCgpTaWduZWQtb2ZmLWJ5OiBB bmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KLS0tCiBs aWJhdmNvZGVjL01ha2VmaWxlIHwgMyArLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL01ha2VmaWxlIGIvbGli YXZjb2RlYy9NYWtlZmlsZQppbmRleCAzZTZmMDAwODY4Li4wY2QyNDA4ODY1IDEwMDY0NAotLS0g YS9saWJhdmNvZGVjL01ha2VmaWxlCisrKyBiL2xpYmF2Y29kZWMvTWFrZWZpbGUKQEAgLTEyNzUs OCArMTI3NSw3IEBAIE9CSlMtJChDT05GSUdfTVBFRzRWSURFT19QQVJTRVIpICAgICAgICs9IG1w ZWc0dmlkZW9fcGFyc2VyLm8gaDI2My5vIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1wZWc0dmlkZW9kZWMubyBtcGVnNHZpZGVvLm8gXAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXR1aDI2M2RlYy5vIGgyNjNkYXRhLm8KIE9C SlMtJChDT05GSUdfTVBFR0FVRElPX1BBUlNFUikgICAgICAgICs9IG1wZWdhdWRpb19wYXJzZXIu bwotT0JKUy0kKENPTkZJR19NUEVHVklERU9fUEFSU0VSKSAgICAgICAgKz0gbXBlZ3ZpZGVvX3Bh cnNlci5vICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1w ZWcxMi5vIG1wZWcxMmRhdGEubworT0JKUy0kKENPTkZJR19NUEVHVklERU9fUEFSU0VSKSAgICAg ICAgKz0gbXBlZ3ZpZGVvX3BhcnNlci5vIG1wZWcxMmRhdGEubwogT0JKUy0kKENPTkZJR19PUFVT X1BBUlNFUikgICAgICAgICAgICAgKz0gdm9yYmlzX2RhdGEubwogT0JKUy0kKENPTkZJR19QTkdf UEFSU0VSKSAgICAgICAgICAgICAgKz0gcG5nX3BhcnNlci5vCiBPQkpTLSQoQ09ORklHX1BOTV9Q QVJTRVIpICAgICAgICAgICAgICArPSBwbm1fcGFyc2VyLm8gcG5tLm8KLS0gCjIuNTIuMAoKCkZy b20gNmRjMThiYzg2MDA5M2E4MjNiNjc0OWRhZjJlMWE5Y2UzMmE1MGMyNSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRA b3V0bG9vay5jb20+CkRhdGU6IE1vbiwgMTcgTm92IDIwMjUgMTY6MTU6NDEgKzAxMDAKU3ViamVj dDogW1BBVENIIDAzMi8zMDRdIGF2Y29kZWMvbXBlZ3ZpZGVvOiBNb3ZlIGxhc3RfZGMgdG8KIHtI MjYzRGVjLE1wZWcxMlNsaWNlLE1QVkVuY31Db250ZXh0CgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFz IFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KLS0tCiBsaWJhdmNv ZGVjL2RueGhkZW5jLmMgICAgICB8IDIwICsrKysrKysrKystLS0tLS0tLS0tCiBsaWJhdmNvZGVj L2gyNjNkZWMuYyAgICAgICB8ICA2ICsrKy0tLQogbGliYXZjb2RlYy9oMjYzZGVjLmggICAgICAg fCAgMyArKysKIGxpYmF2Y29kZWMvaXR1aDI2M2RlYy5jICAgIHwgIDQgKystLQogbGliYXZjb2Rl Yy9tanBlZ2VuYy5jICAgICAgfCAxMCArKysrKy0tLS0tCiBsaWJhdmNvZGVjL21wZWcxMmRlYy5j ICAgICB8IDIyICsrKysrKysrKysrKy0tLS0tLS0tLS0KIGxpYmF2Y29kZWMvbXBlZzEyZW5jLmMg ICAgIHwgIDYgKysrLS0tCiBsaWJhdmNvZGVjL21wZWcxMmVuYy5oICAgICB8ICA2ICsrKy0tLQog bGliYXZjb2RlYy9tcGVnNHZpZGVvZGVjLmMgfCAxNiArKysrKysrKy0tLS0tLS0tCiBsaWJhdmNv ZGVjL21wZWd2aWRlby5oICAgICB8ICAxIC0KIGxpYmF2Y29kZWMvbXBlZ3ZpZGVvX2VuYy5jIHwg MTYgKysrKysrKystLS0tLS0tLQogbGliYXZjb2RlYy9tcGVndmlkZW9lbmMuaCAgfCAgMSArCiBs aWJhdmNvZGVjL21zbXBlZzRkZWMuYyAgICB8ICA4ICsrKystLS0tCiBsaWJhdmNvZGVjL3J2MTAu YyAgICAgICAgICB8IDEwICsrKysrLS0tLS0KIGxpYmF2Y29kZWMvc3BlZWRocWVuYy5jICAgIHwg IDQgKystLQogMTUgZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgNjQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9kbnhoZGVuYy5jIGIvbGliYXZjb2RlYy9kbnho ZGVuYy5jCmluZGV4IGVkYjU4YmEyNWYuLjc5OTRiMWQ0OTcgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29k ZWMvZG54aGRlbmMuYworKysgYi9saWJhdmNvZGVjL2RueGhkZW5jLmMKQEAgLTU3NSw4ICs1NzUs OCBAQCB2b2lkIGRueGhkX2VuY29kZV9ibG9jayhQdXRCaXRDb250ZXh0ICpwYiwgRE5YSERFbmND b250ZXh0ICpjdHgsCiAgICAgaW50IGxhc3Rfbm9uX3plcm8gPSAwOwogICAgIGludCBzbGV2ZWws IGksIGo7CiAKLSAgICBkbnhoZF9lbmNvZGVfZGMocGIsIGN0eCwgYmxvY2tbMF0gLSBjdHgtPm0u Yy5sYXN0X2RjW25dKTsKLSAgICBjdHgtPm0uYy5sYXN0X2RjW25dID0gYmxvY2tbMF07CisgICAg ZG54aGRfZW5jb2RlX2RjKHBiLCBjdHgsIGJsb2NrWzBdIC0gY3R4LT5tLmxhc3RfZGNbbl0pOwor ICAgIGN0eC0+bS5sYXN0X2RjW25dID0gYmxvY2tbMF07CiAKICAgICBmb3IgKGkgPSAxOyBpIDw9 IGxhc3RfaW5kZXg7IGkrKykgewogICAgICAgICBqID0gY3R4LT5tLmMuaW50cmFfc2NhbnRhYmxl LnBlcm11dGF0ZWRbaV07CkBAIC04MjIsOSArODIyLDkgQEAgc3RhdGljIGludCBkbnhoZF9jYWxj X2JpdHNfdGhyZWFkKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgdm9pZCAqYXJnLAogICAgIExPQ0FM X0FMSUdORURfMTYoaW50MTZfdCwgYmxvY2ssIFs2NF0pOwogICAgIGN0eCA9IGN0eC0+dGhyZWFk W3RocmVhZG5yXTsKIAotICAgIGN0eC0+bS5jLmxhc3RfZGNbMF0gPQotICAgIGN0eC0+bS5jLmxh c3RfZGNbMV0gPQotICAgIGN0eC0+bS5jLmxhc3RfZGNbMl0gPSAxIDw8IChjdHgtPmJpdF9kZXB0 aCArIDIpOworICAgIGN0eC0+bS5sYXN0X2RjWzBdID0KKyAgICBjdHgtPm0ubGFzdF9kY1sxXSA9 CisgICAgY3R4LT5tLmxhc3RfZGNbMl0gPSAxIDw8IChjdHgtPmJpdF9kZXB0aCArIDIpOwogCiAg ICAgZm9yIChpbnQgbWJfeCA9IDA7IG1iX3ggPCBjdHgtPm0uYy5tYl93aWR0aDsgbWJfeCsrKSB7 CiAgICAgICAgIHVuc2lnbmVkIG1iID0gbWJfeSAqIGN0eC0+bS5jLm1iX3dpZHRoICsgbWJfeDsK QEAgLTg0Niw3ICs4NDYsNyBAQCBzdGF0aWMgaW50IGRueGhkX2NhbGNfYml0c190aHJlYWQoQVZD b2RlY0NvbnRleHQgKmF2Y3R4LCB2b2lkICphcmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBxc2NhbGUsICZvdmVyZmxvdyk7CiAgICAgICAgICAgICBhY19i aXRzICAgKz0gZG54aGRfY2FsY19hY19iaXRzKGN0eCwgYmxvY2ssIGxhc3RfaW5kZXgpOwogCi0g ICAgICAgICAgICBkaWZmID0gYmxvY2tbMF0gLSBjdHgtPm0uYy5sYXN0X2RjW25dOworICAgICAg ICAgICAgZGlmZiA9IGJsb2NrWzBdIC0gY3R4LT5tLmxhc3RfZGNbbl07CiAgICAgICAgICAgICBp ZiAoZGlmZiA8IDApCiAgICAgICAgICAgICAgICAgbmJpdHMgPSBhdl9sb2cyXzE2Yml0KC0yICog ZGlmZik7CiAgICAgICAgICAgICBlbHNlCkBAIC04NTUsNyArODU1LDcgQEAgc3RhdGljIGludCBk bnhoZF9jYWxjX2JpdHNfdGhyZWFkKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgdm9pZCAqYXJnLAog ICAgICAgICAgICAgYXZfYXNzZXJ0MShuYml0cyA8IGN0eC0+Yml0X2RlcHRoICsgNCk7CiAgICAg ICAgICAgICBkY19iaXRzICs9IGN0eC0+Y2lkX3RhYmxlLT5kY19iaXRzW25iaXRzXSArIG5iaXRz OwogCi0gICAgICAgICAgICBjdHgtPm0uYy5sYXN0X2RjW25dID0gYmxvY2tbMF07CisgICAgICAg ICAgICBjdHgtPm0ubGFzdF9kY1tuXSA9IGJsb2NrWzBdOwogCiAgICAgICAgICAgICBpZiAoYXZj dHgtPm1iX2RlY2lzaW9uID09IEZGX01CX0RFQ0lTSU9OX1JEIHx8ICFSQ19WQVJJQU5DRSkgewog ICAgICAgICAgICAgICAgIGRueGhkX3VucXVhbnRpemVfYyhjdHgsIGJsb2NrLCBpLCBxc2NhbGUs IGxhc3RfaW5kZXgpOwpAQCAtODgwLDkgKzg4MCw5IEBAIHN0YXRpYyBpbnQgZG54aGRfZW5jb2Rl X3RocmVhZChBVkNvZGVjQ29udGV4dCAqYXZjdHgsIHZvaWQgKmFyZywKICAgICBpbml0X3B1dF9i aXRzKHBiLCAodWludDhfdCAqKWFyZyArIGN0eC0+ZGF0YV9vZmZzZXQgKyBjdHgtPnNsaWNlX29m ZnNbam9ibnJdLAogICAgICAgICAgICAgICAgICAgY3R4LT5zbGljZV9zaXplW2pvYm5yXSk7CiAK LSAgICBjdHgtPm0uYy5sYXN0X2RjWzBdID0KLSAgICBjdHgtPm0uYy5sYXN0X2RjWzFdID0KLSAg ICBjdHgtPm0uYy5sYXN0X2RjWzJdID0gMSA8PCAoY3R4LT5iaXRfZGVwdGggKyAyKTsKKyAgICBj dHgtPm0ubGFzdF9kY1swXSA9CisgICAgY3R4LT5tLmxhc3RfZGNbMV0gPQorICAgIGN0eC0+bS5s YXN0X2RjWzJdID0gMSA8PCAoY3R4LT5iaXRfZGVwdGggKyAyKTsKICAgICBmb3IgKGludCBtYl94 ID0gMDsgbWJfeCA8IGN0eC0+bS5jLm1iX3dpZHRoOyBtYl94KyspIHsKICAgICAgICAgdW5zaWdu ZWQgbWIgPSBtYl95ICogY3R4LT5tLmMubWJfd2lkdGggKyBtYl94OwogICAgICAgICBpbnQgcXNj YWxlID0gY3R4LT5tYl9xc2NhbGVbbWJdOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9oMjYzZGVj LmMgYi9saWJhdmNvZGVjL2gyNjNkZWMuYwppbmRleCA2OTdmZTdlNTcyLi5iNGM4YWEzOGY1IDEw MDY0NAotLS0gYS9saWJhdmNvZGVjL2gyNjNkZWMuYworKysgYi9saWJhdmNvZGVjL2gyNjNkZWMu YwpAQCAtMjQ3LDkgKzI0Nyw5IEBAIHN0YXRpYyBpbnQgZGVjb2RlX3NsaWNlKEgyNjNEZWNDb250 ZXh0ICpjb25zdCBoKQogICAgICAgICB9CiAKICAgICAgICAgaWYgKGgtPmMubXNtcGVnNF92ZXJz aW9uID09IE1TTVA0X1YxKSB7Ci0gICAgICAgICAgICBoLT5jLmxhc3RfZGNbMF0gPQotICAgICAg ICAgICAgaC0+Yy5sYXN0X2RjWzFdID0KLSAgICAgICAgICAgIGgtPmMubGFzdF9kY1syXSA9IDEy ODsKKyAgICAgICAgICAgIGgtPmxhc3RfZGNbMF0gPQorICAgICAgICAgICAgaC0+bGFzdF9kY1sx XSA9CisgICAgICAgICAgICBoLT5sYXN0X2RjWzJdID0gMTI4OwogICAgICAgICB9CiAKICAgICAg ICAgZmZfaW5pdF9ibG9ja19pbmRleCgmaC0+Yyk7CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2gy NjNkZWMuaCBiL2xpYmF2Y29kZWMvaDI2M2RlYy5oCmluZGV4IGFjZTIxMGIwMzYuLjRjMjVhODMz Y2YgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvaDI2M2RlYy5oCisrKyBiL2xpYmF2Y29kZWMvaDI2 M2RlYy5oCkBAIC03OSw2ICs3OSw5IEBAIHR5cGVkZWYgc3RydWN0IEgyNjNEZWNDb250ZXh0IHsK ICAgICAvKiBNU01QRUc0IHNwZWNpZmljICovCiAgICAgaW50IHNsaWNlX2hlaWdodDsgICAgICAg ICAgIC8vLzwgaW4gbWFjcm9ibG9ja3MKIAorICAgIC8qIE1QRUctNCAoU3R1ZGlvIFByb2ZpbGUp LCBNU01QRUc0IGFuZCBSVjEwIHNwZWNpZmljICovCisgICAgaW50IGxhc3RfZGNbM107ICAgICAg ICAgICAgIC8vLzwgbGFzdCBEQyB2YWx1ZXMsIHVzZWQgYnkgTVBFRzQsIE1TTVBFRzRWMSwgUlYx MAorCiAgICAgLyogUlYxMCBzcGVjaWZpYyAqLwogICAgIGludCBydjEwX3ZlcnNpb247IC8vLzwg UlYxMCB2ZXJzaW9uOiAwIG9yIDMKICAgICBpbnQgcnYxMF9maXJzdF9kY19jb2RlZFszXTsKZGlm ZiAtLWdpdCBhL2xpYmF2Y29kZWMvaXR1aDI2M2RlYy5jIGIvbGliYXZjb2RlYy9pdHVoMjYzZGVj LmMKaW5kZXggZGM4ODQ3YjUzYi4uYTE0NzJjZTBhMCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9p dHVoMjYzZGVjLmMKKysrIGIvbGliYXZjb2RlYy9pdHVoMjYzZGVjLmMKQEAgLTU1MSwxNCArNTUx LDE0IEBAIHN0YXRpYyBpbnQgaDI2M19kZWNvZGVfYmxvY2soSDI2M0RlY0NvbnRleHQgKmNvbnN0 IGgsIGludDE2X3QgYmxvY2tbNjRdLAogICAgICAgICBpZiAoQ09ORklHX1JWMTBfREVDT0RFUiAm JiBoLT5jLmNvZGVjX2lkID09IEFWX0NPREVDX0lEX1JWMTApIHsKICAgICAgICAgICAgIGlmICho LT5ydjEwX3ZlcnNpb24gPT0gMyAmJiBoLT5jLnBpY3RfdHlwZSA9PSBBVl9QSUNUVVJFX1RZUEVf SSkgewogICAgICAgICAgICAgICAgIGludCBjb21wb25lbnQgPSAobiA8PSAzID8gMCA6IG4gLSA0 ICsgMSk7Ci0gICAgICAgICAgICAgICAgbGV2ZWwgPSBoLT5jLmxhc3RfZGNbY29tcG9uZW50XTsK KyAgICAgICAgICAgICAgICBsZXZlbCA9IGgtPmxhc3RfZGNbY29tcG9uZW50XTsKICAgICAgICAg ICAgICAgICBpZiAoaC0+cnYxMF9maXJzdF9kY19jb2RlZFtjb21wb25lbnRdKSB7CiAgICAgICAg ICAgICAgICAgICAgIGludCBkaWZmID0gZmZfcnZfZGVjb2RlX2RjKGgsIG4pOwogICAgICAgICAg ICAgICAgICAgICBpZiAoZGlmZiA8IDApCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g LTE7CiAgICAgICAgICAgICAgICAgICAgIGxldmVsICs9IGRpZmY7CiAgICAgICAgICAgICAgICAg ICAgIGxldmVsID0gbGV2ZWwgJiAweGZmOyAvKiBoYW5kbGUgd3JhcCByb3VuZCAqLwotICAgICAg ICAgICAgICAgICAgICBoLT5jLmxhc3RfZGNbY29tcG9uZW50XSA9IGxldmVsOworICAgICAgICAg ICAgICAgICAgICBoLT5sYXN0X2RjW2NvbXBvbmVudF0gPSBsZXZlbDsKICAgICAgICAgICAgICAg ICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBoLT5ydjEwX2ZpcnN0X2RjX2NvZGVkW2Nv bXBvbmVudF0gPSAxOwogICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMv bWpwZWdlbmMuYyBiL2xpYmF2Y29kZWMvbWpwZWdlbmMuYwppbmRleCAyMTRlMmIwZWMxLi5jNTUz MWIxYzlmIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL21qcGVnZW5jLmMKKysrIGIvbGliYXZjb2Rl Yy9tanBlZ2VuYy5jCkBAIC0yNzksNyArMjc5LDcgQEAgaW50IGZmX21qcGVnX2VuY29kZV9zdHVm ZmluZyhNUFZFbmNDb250ZXh0ICpjb25zdCBzKQogCiBmYWlsOgogICAgIGZvciAoaW50IGkgPSAw OyBpIDwgMzsgaSsrKQotICAgICAgICBzLT5jLmxhc3RfZGNbaV0gPSAxMjggPDwgcy0+Yy5pbnRy YV9kY19wcmVjaXNpb247CisgICAgICAgIHMtPmxhc3RfZGNbaV0gPSAxMjggPDwgcy0+Yy5pbnRy YV9kY19wcmVjaXNpb247CiAKICAgICByZXR1cm4gcmV0OwogfQpAQCAtMzcxLDExICszNzEsMTEg QEAgc3RhdGljIHZvaWQgcmVjb3JkX2Jsb2NrKE1QVkVuY0NvbnRleHQgKmNvbnN0IHMsIGludDE2 X3QgYmxvY2tbXSwgaW50IG4pCiAgICAgY29tcG9uZW50ID0gKG4gPD0gMyA/IDAgOiAobiYxKSAr IDEpOwogICAgIHRhYmxlX2lkID0gKG4gPD0gMyA/IDAgOiAxKTsKICAgICBkYyA9IGJsb2NrWzBd OyAvKiBvdmVyZmxvdyBpcyBpbXBvc3NpYmxlICovCi0gICAgdmFsID0gZGMgLSBzLT5jLmxhc3Rf ZGNbY29tcG9uZW50XTsKKyAgICB2YWwgPSBkYyAtIHMtPmxhc3RfZGNbY29tcG9uZW50XTsKIAog ICAgIG1qcGVnX2VuY29kZV9jb2VmKG0sIHRhYmxlX2lkLCB2YWwsIDApOwogCi0gICAgcy0+Yy5s YXN0X2RjW2NvbXBvbmVudF0gPSBkYzsKKyAgICBzLT5sYXN0X2RjW2NvbXBvbmVudF0gPSBkYzsK IAogICAgIC8qIEFDIGNvZWZzICovCiAKQEAgLTQxNSw3ICs0MTUsNyBAQCBzdGF0aWMgdm9pZCBl bmNvZGVfYmxvY2soTVBWRW5jQ29udGV4dCAqY29uc3QgcywgaW50MTZfdCBibG9ja1tdLCBpbnQg bikKICAgICAvKiBEQyBjb2VmICovCiAgICAgY29tcG9uZW50ID0gKG4gPD0gMyA/IDAgOiAobiYx KSArIDEpOwogICAgIGRjID0gYmxvY2tbMF07IC8qIG92ZXJmbG93IGlzIGltcG9zc2libGUgKi8K LSAgICB2YWwgPSBkYyAtIHMtPmMubGFzdF9kY1tjb21wb25lbnRdOworICAgIHZhbCA9IGRjIC0g cy0+bGFzdF9kY1tjb21wb25lbnRdOwogICAgIGlmIChuIDwgNCkgewogICAgICAgICBmZl9tanBl Z19lbmNvZGVfZGMoJnMtPnBiLCB2YWwsIG0tPmh1ZmZfc2l6ZV9kY19sdW1pbmFuY2UsIG0tPmh1 ZmZfY29kZV9kY19sdW1pbmFuY2UpOwogICAgICAgICBodWZmX3NpemVfYWMgPSBtLT5odWZmX3Np emVfYWNfbHVtaW5hbmNlOwpAQCAtNDI1LDcgKzQyNSw3IEBAIHN0YXRpYyB2b2lkIGVuY29kZV9i bG9jayhNUFZFbmNDb250ZXh0ICpjb25zdCBzLCBpbnQxNl90IGJsb2NrW10sIGludCBuKQogICAg ICAgICBodWZmX3NpemVfYWMgPSBtLT5odWZmX3NpemVfYWNfY2hyb21pbmFuY2U7CiAgICAgICAg IGh1ZmZfY29kZV9hYyA9IG0tPmh1ZmZfY29kZV9hY19jaHJvbWluYW5jZTsKICAgICB9Ci0gICAg cy0+Yy5sYXN0X2RjW2NvbXBvbmVudF0gPSBkYzsKKyAgICBzLT5sYXN0X2RjW2NvbXBvbmVudF0g PSBkYzsKIAogICAgIC8qIEFDIGNvZWZzICovCiAKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvbXBl ZzEyZGVjLmMgYi9saWJhdmNvZGVjL21wZWcxMmRlYy5jCmluZGV4IDU4ZmY5MjViZmQuLjFjYWE4 Mjc5YmQgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvbXBlZzEyZGVjLmMKKysrIGIvbGliYXZjb2Rl Yy9tcGVnMTJkZWMuYwpAQCAtNzMsNiArNzMsOCBAQCB0eXBlZGVmIHN0cnVjdCBNcGVnMTJTbGlj ZUNvbnRleHQgewogICAgIE1QVkNvbnRleHQgYzsKICAgICBHZXRCaXRDb250ZXh0IGdiOwogCisg ICAgaW50IGxhc3RfZGNbM107ICAgICAgICAgICAgICAgIC8vLzwgbGFzdCBEQyB2YWx1ZXMKKwog ICAgIERFQ0xBUkVfQUxJR05FRF8zMihpbnQxNl90LCBibG9jaylbMTJdWzY0XTsKIH0gTXBlZzEy U2xpY2VDb250ZXh0OwogCkBAIC0zMjYsOSArMzI4LDkgQEAgc3RhdGljIGlubGluZSBpbnQgbXBl ZzJfZGVjb2RlX2Jsb2NrX2ludHJhKE1wZWcxMlNsaWNlQ29udGV4dCAqY29uc3QgcywKICAgICAg ICAgY29tcG9uZW50ICAgID0gKG4gJiAxKSArIDE7CiAgICAgfQogICAgIGRpZmYgPSBkZWNvZGVf ZGMoJnMtPmdiLCBjb21wb25lbnQpOwotICAgIGRjICA9IHMtPmMubGFzdF9kY1tjb21wb25lbnRd OworICAgIGRjICA9IHMtPmxhc3RfZGNbY29tcG9uZW50XTsKICAgICBkYyArPSBkaWZmOwotICAg IHMtPmMubGFzdF9kY1tjb21wb25lbnRdID0gZGM7CisgICAgcy0+bGFzdF9kY1tjb21wb25lbnRd ID0gZGM7CiAgICAgYmxvY2tbMF0gPSBkYyAqICgxIDw8ICgzIC0gcy0+Yy5pbnRyYV9kY19wcmVj aXNpb24pKTsKICAgICBmZl90bG9nKHMtPmMuYXZjdHgsICJkYz0lZFxuIiwgYmxvY2tbMF0pOwog ICAgIG1pc21hdGNoID0gYmxvY2tbMF0gXiAxOwpAQCAtNTE3LDcgKzUxOSw3IEBAIHN0YXRpYyBp bnQgbXBlZ19kZWNvZGVfbWIoTXBlZzEyU2xpY2VDb250ZXh0ICpjb25zdCBzLCBpbnQgKm1iX3Nr aXBfcnVuKQogICAgICAgICAgICAgICAgIHJldCA9IGZmX21wZWcxX2RlY29kZV9ibG9ja19pbnRy YSgmcy0+Z2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHMtPmMuaW50cmFfbWF0cml4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzLT5jLmludHJhX3NjYW50YWJsZS5wZXJtdXRhdGVkLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLT5jLmxhc3RfZGMs IHMtPmJsb2NrW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzLT5sYXN0X2RjLCBzLT5ibG9ja1tpXSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgcy0+Yy5xc2NhbGUpOwogICAgICAgICAgICAg ICAgIGlmIChyZXQgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgIGF2X2xvZyhzLT5jLmF2Y3R4 LCBBVl9MT0dfRVJST1IsICJhYy10ZXggZGFtYWdlZCBhdCAlZCAlZFxuIiwKQEAgLTcxMyw3ICs3 MTUsNyBAQCBzdGF0aWMgaW50IG1wZWdfZGVjb2RlX21iKE1wZWcxMlNsaWNlQ29udGV4dCAqY29u c3QgcywgaW50ICptYl9za2lwX3J1bikKICAgICAgICAgfQogCiAgICAgICAgIHMtPmMubWJfaW50 cmEgPSAwOwotICAgICAgICBzLT5jLmxhc3RfZGNbMF0gPSBzLT5jLmxhc3RfZGNbMV0gPSBzLT5j Lmxhc3RfZGNbMl0gPSAxMjggPDwgcy0+Yy5pbnRyYV9kY19wcmVjaXNpb247CisgICAgICAgIHMt Pmxhc3RfZGNbMF0gPSBzLT5sYXN0X2RjWzFdID0gcy0+bGFzdF9kY1syXSA9IDEyOCA8PCBzLT5j LmludHJhX2RjX3ByZWNpc2lvbjsKICAgICAgICAgaWYgKEhBU19DQlAobWJfdHlwZSkpIHsKICAg ICAgICAgICAgIHMtPmMuYmRzcC5jbGVhcl9ibG9ja3Mocy0+YmxvY2tbMF0pOwogCkBAIC0xNDUz LDkgKzE0NTUsOSBAQCBzdGF0aWMgaW50IG1wZWdfZGVjb2RlX3NsaWNlKE1wZWcxMlNsaWNlQ29u dGV4dCAqY29uc3QgcywgaW50IG1iX3ksCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBzLT5jLmxh c3RfZGNbMF0gPSAxMjggPDwgcy0+Yy5pbnRyYV9kY19wcmVjaXNpb247Ci0gICAgcy0+Yy5sYXN0 X2RjWzFdID0gcy0+Yy5sYXN0X2RjWzBdOwotICAgIHMtPmMubGFzdF9kY1syXSA9IHMtPmMubGFz dF9kY1swXTsKKyAgICBzLT5sYXN0X2RjWzBdID0gMTI4IDw8IHMtPmMuaW50cmFfZGNfcHJlY2lz aW9uOworICAgIHMtPmxhc3RfZGNbMV0gPSBzLT5sYXN0X2RjWzBdOworICAgIHMtPmxhc3RfZGNb Ml0gPSBzLT5sYXN0X2RjWzBdOwogICAgIG1lbXNldChzLT5jLmxhc3RfbXYsIDAsIHNpemVvZihz LT5jLmxhc3RfbXYpKTsKIAogICAgIGZvciAoaW50IG1iX3NraXBfcnVuID0gMDs7KSB7CkBAIC0x NjAwLDcgKzE2MDIsNyBAQCBzdGF0aWMgaW50IG1wZWdfZGVjb2RlX3NsaWNlKE1wZWcxMlNsaWNl Q29udGV4dCAqY29uc3QgcywgaW50IG1iX3ksCiAgICAgICAgICAgICAgICAgcy0+Yy5tYl9pbnRy YSA9IDA7CiAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspCiAgICAgICAg ICAgICAgICAgICAgIHMtPmMuYmxvY2tfbGFzdF9pbmRleFtpXSA9IC0xOwotICAgICAgICAgICAg ICAgIHMtPmMubGFzdF9kY1swXSA9IHMtPmMubGFzdF9kY1sxXSA9IHMtPmMubGFzdF9kY1syXSA9 IDEyOCA8PCBzLT5jLmludHJhX2RjX3ByZWNpc2lvbjsKKyAgICAgICAgICAgICAgICBzLT5sYXN0 X2RjWzBdID0gcy0+bGFzdF9kY1sxXSA9IHMtPmxhc3RfZGNbMl0gPSAxMjggPDwgcy0+Yy5pbnRy YV9kY19wcmVjaXNpb247CiAgICAgICAgICAgICAgICAgaWYgKHMtPmMucGljdHVyZV9zdHJ1Y3R1 cmUgPT0gUElDVF9GUkFNRSkKICAgICAgICAgICAgICAgICAgICAgcy0+Yy5tdl90eXBlID0gTVZf VFlQRV8xNlgxNjsKICAgICAgICAgICAgICAgICBlbHNlCkBAIC0yNzkzLDcgKzI3OTUsNyBAQCBz dGF0aWMgaW50IGlwdV9kZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1l ICpmcmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBzLT5mbGFncyAmIDB4MTAgPyBmZl9h bHRlcm5hdGVfdmVydGljYWxfc2NhbiA6IGZmX3ppZ3phZ19kaXJlY3QsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgbS0+aWRzcC5pZGN0X3Blcm11dGF0aW9uKTsKIAotICAgIG0tPmxhc3RfZGNb MF0gPSBtLT5sYXN0X2RjWzFdID0gbS0+bGFzdF9kY1syXSA9IDEgPDwgKDcgKyAocy0+ZmxhZ3Mg JiAzKSk7CisgICAgcy0+bS5sYXN0X2RjWzBdID0gcy0+bS5sYXN0X2RjWzFdID0gcy0+bS5sYXN0 X2RjWzJdID0gMTI4IDw8IChzLT5mbGFncyAmIDMpOwogICAgIG0tPnFzY2FsZSA9IDE7CiAKICAg ICBmb3IgKGludCB5ID0gMDsgeSA8IGF2Y3R4LT5oZWlnaHQ7IHkgKz0gMTYpIHsKQEAgLTI4MjUs NyArMjgyNyw3IEBAIHN0YXRpYyBpbnQgaXB1X2RlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAq YXZjdHgsIEFWRnJhbWUgKmZyYW1lLAogICAgICAgICAgICAgICAgICAgICByZXQgPSBmZl9tcGVn MV9kZWNvZGVfYmxvY2tfaW50cmEoZ2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtLT5pbnRyYV9tYXRyaXgsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtLT5pbnRyYV9zY2FudGFibGUu cGVybXV0YXRlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG0tPmxhc3RfZGMsIGJsb2NrW25dLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy0+bS5sYXN0X2RjLCBibG9ja1tuXSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4sIG0t PnFzY2FsZSk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAg cmV0ID0gbXBlZzJfZGVjb2RlX2Jsb2NrX2ludHJhKCZzLT5tLCBibG9ja1tuXSwgbik7CmRpZmYg LS1naXQgYS9saWJhdmNvZGVjL21wZWcxMmVuYy5jIGIvbGliYXZjb2RlYy9tcGVnMTJlbmMuYwpp bmRleCBmYjQ4MGQwZWVjLi40YjlkMTg2Mzk2IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL21wZWcx MmVuYy5jCisrKyBiL2xpYmF2Y29kZWMvbXBlZzEyZW5jLmMKQEAgLTU4OSw5ICs1ODksOSBAQCBz dGF0aWMgdm9pZCBtcGVnMV9lbmNvZGVfYmxvY2soTVBWRW5jQ29udGV4dCAqY29uc3QgcywgY29u c3QgaW50MTZfdCBibG9ja1tdLCBpbgogICAgIGlmIChzLT5jLm1iX2ludHJhKSB7CiAgICAgICAg IGNvbXBvbmVudCA9IChuIDw9IDMgPyAwIDogKG4gJiAxKSArIDEpOwogICAgICAgICBkYyAgICAg ICAgPSBibG9ja1swXTsgICAgICAgICAgICAgICAgICAgLyogb3ZlcmZsb3cgaXMgaW1wb3NzaWJs ZSAqLwotICAgICAgICBkaWZmICAgICAgPSBkYyAtIHMtPmMubGFzdF9kY1tjb21wb25lbnRdOwor ICAgICAgICBkaWZmICAgICAgPSBkYyAtIHMtPmxhc3RfZGNbY29tcG9uZW50XTsKICAgICAgICAg ZW5jb2RlX2RjKHMsIGRpZmYsIGNvbXBvbmVudCk7Ci0gICAgICAgIHMtPmMubGFzdF9kY1tjb21w b25lbnRdID0gZGM7CisgICAgICAgIHMtPmxhc3RfZGNbY29tcG9uZW50XSA9IGRjOwogICAgICAg ICBpID0gMTsKICAgICAgICAgaWYgKHMtPmMuaW50cmFfdmxjX2Zvcm1hdCkKICAgICAgICAgICAg IHRhYmxlX3ZsYyA9IGZmX21wZWcyX3ZsY190YWJsZTsKQEAgLTkzNiw3ICs5MzYsNyBAQCBzdGF0 aWMgdm9pZCBtcGVnMTJfZW5jb2RlX21iKE1QVkVuY0NvbnRleHQgKmNvbnN0IHMsIGludDE2X3Qg YmxvY2tbXVs2NF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb3Rpb25feCwg aW50IG1vdGlvbl95KQogewogICAgIGlmICghcy0+Yy5tYl9pbnRyYSkKLSAgICAgICAgcy0+Yy5s YXN0X2RjWzBdID0gcy0+Yy5sYXN0X2RjWzFdID0gcy0+Yy5sYXN0X2RjWzJdID0gMTI4IDw8IHMt PmMuaW50cmFfZGNfcHJlY2lzaW9uOworICAgICAgICBzLT5sYXN0X2RjWzBdID0gcy0+bGFzdF9k Y1sxXSA9IHMtPmxhc3RfZGNbMl0gPSAxMjggPDwgcy0+Yy5pbnRyYV9kY19wcmVjaXNpb247CiAg ICAgaWYgKHMtPmMuY2hyb21hX2Zvcm1hdCA9PSBDSFJPTUFfNDIwKQogICAgICAgICBtcGVnMV9l bmNvZGVfbWJfaW50ZXJuYWwocywgYmxvY2ssIG1vdGlvbl94LCBtb3Rpb25feSwgNiwgMSk7CiAg ICAgZWxzZQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9tcGVnMTJlbmMuaCBiL2xpYmF2Y29kZWMv bXBlZzEyZW5jLmgKaW5kZXggOTcwMDdiZThmZS4uZTA0YzdkZWEzOCAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy9tcGVnMTJlbmMuaAorKysgYi9saWJhdmNvZGVjL21wZWcxMmVuYy5oCkBAIC0zOCw5 ICszOCw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmZl9tcGVnMV9lbmNvZGVfaW5pdChNUFZFbmND b250ZXh0ICpzKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZmZfbXBlZzFfY2xlYW5fYnVmZmVycyhN UFZFbmNDb250ZXh0ICpzKQogewotICAgIHMtPmMubGFzdF9kY1swXSA9IDEyOCA8PCBzLT5jLmlu dHJhX2RjX3ByZWNpc2lvbjsKLSAgICBzLT5jLmxhc3RfZGNbMV0gPSBzLT5jLmxhc3RfZGNbMF07 Ci0gICAgcy0+Yy5sYXN0X2RjWzJdID0gcy0+Yy5sYXN0X2RjWzBdOworICAgIHMtPmxhc3RfZGNb MF0gPSAxMjggPDwgcy0+Yy5pbnRyYV9kY19wcmVjaXNpb247CisgICAgcy0+bGFzdF9kY1sxXSA9 IHMtPmxhc3RfZGNbMF07CisgICAgcy0+bGFzdF9kY1syXSA9IHMtPmxhc3RfZGNbMF07CiAgICAg bWVtc2V0KHMtPmMubGFzdF9tdiwgMCwgc2l6ZW9mKHMtPmMubGFzdF9tdikpOwogfQogCmRpZmYg LS1naXQgYS9saWJhdmNvZGVjL21wZWc0dmlkZW9kZWMuYyBiL2xpYmF2Y29kZWMvbXBlZzR2aWRl b2RlYy5jCmluZGV4IDRhMTM4NWVhNGQuLmU0YTc2NWQ1ZWMgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29k ZWMvbXBlZzR2aWRlb2RlYy5jCisrKyBiL2xpYmF2Y29kZWMvbXBlZzR2aWRlb2RlYy5jCkBAIC03 OTQsMTEgKzc5NCwxMSBAQCBpbnQgZmZfbXBlZzRfZGVjb2RlX3ZpZGVvX3BhY2tldF9oZWFkZXIo SDI2M0RlY0NvbnRleHQgKmNvbnN0IGgpCiAKIHN0YXRpYyB2b2lkIHJlc2V0X3N0dWRpb19kY19w cmVkaWN0b3JzKE1wZWc0RGVjQ29udGV4dCAqY29uc3QgY3R4KQogewotICAgIE1QVkNvbnRleHQg KmNvbnN0IHMgPSAmY3R4LT5oLmM7CisgICAgSDI2M0RlY0NvbnRleHQgKmNvbnN0IGggPSAmY3R4 LT5oOwogICAgIC8qIFJlc2V0IERDIFByZWRpY3RvcnMgKi8KLSAgICBzLT5sYXN0X2RjWzBdID0K LSAgICBzLT5sYXN0X2RjWzFdID0KLSAgICBzLT5sYXN0X2RjWzJdID0gMSA8PCAocy0+YXZjdHgt PmJpdHNfcGVyX3Jhd19zYW1wbGUgKyBjdHgtPmRjdF9wcmVjaXNpb24gKyBzLT5pbnRyYV9kY19w cmVjaXNpb24gLSAxKTsKKyAgICBoLT5sYXN0X2RjWzBdID0KKyAgICBoLT5sYXN0X2RjWzFdID0K KyAgICBoLT5sYXN0X2RjWzJdID0gMSA8PCAoaC0+Yy5hdmN0eC0+Yml0c19wZXJfcmF3X3NhbXBs ZSArIGN0eC0+ZGN0X3ByZWNpc2lvbiArIGgtPmMuaW50cmFfZGNfcHJlY2lzaW9uIC0gMSk7CiB9 CiAKIC8qKgpAQCAtMjE5NiwxMiArMjE5NiwxMiBAQCBzdGF0aWMgaW50IG1wZWc0X2RlY29kZV9z dHVkaW9fYmxvY2soTXBlZzREZWNDb250ZXh0ICpjb25zdCBjdHgsIGludDMyX3QgYmxvY2tbNgog CiAgICAgfQogCi0gICAgaC0+Yy5sYXN0X2RjW2NjXSArPSBkY3RfZGlmZjsKKyAgICBoLT5sYXN0 X2RjW2NjXSArPSBkY3RfZGlmZjsKIAogICAgIGlmIChjdHgtPm1wZWdfcXVhbnQpCi0gICAgICAg IGJsb2NrWzBdID0gaC0+Yy5sYXN0X2RjW2NjXSAqICg4ID4+IGgtPmMuaW50cmFfZGNfcHJlY2lz aW9uKTsKKyAgICAgICAgYmxvY2tbMF0gPSBoLT5sYXN0X2RjW2NjXSAqICg4ID4+IGgtPmMuaW50 cmFfZGNfcHJlY2lzaW9uKTsKICAgICBlbHNlCi0gICAgICAgIGJsb2NrWzBdID0gaC0+Yy5sYXN0 X2RjW2NjXSAqICg4ID4+IGgtPmMuaW50cmFfZGNfcHJlY2lzaW9uKSAqICg4ID4+IGN0eC0+ZGN0 X3ByZWNpc2lvbik7CisgICAgICAgIGJsb2NrWzBdID0gaC0+bGFzdF9kY1tjY10gKiAoOCA+PiBo LT5jLmludHJhX2RjX3ByZWNpc2lvbikgKiAoOCA+PiBjdHgtPmRjdF9wcmVjaXNpb24pOwogICAg IC8qIFRPRE86IHN1cHBvcnQgbXBlZ19xdWFudCBmb3IgQUMgY29lZmZpY2llbnRzICovCiAKICAg ICBibG9ja1swXSA9IGF2X2NsaXAoYmxvY2tbMF0sIG1pbiwgbWF4KTsKQEAgLTIyODMsNyArMjI4 Myw3IEBAIHN0YXRpYyBpbnQgbXBlZzRfZGVjb2RlX2RwY21fbWFjcm9ibG9jayhNcGVnNERlY0Nv bnRleHQgKmNvbnN0IGN0eCwKICAgICAgICAgYXZfbG9nKGgtPmMuYXZjdHgsIEFWX0xPR19FUlJP UiwgIkZvcmJpZGRlbiBibG9ja19tZWFuXG4iKTsKICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5W QUxJRERBVEE7CiAgICAgfQotICAgIGgtPmMubGFzdF9kY1tuXSA9IGJsb2NrX21lYW4gKiAoMSA8 PCAoY3R4LT5kY3RfcHJlY2lzaW9uICsgaC0+Yy5pbnRyYV9kY19wcmVjaXNpb24pKTsKKyAgICBo LT5sYXN0X2RjW25dID0gYmxvY2tfbWVhbiAqICgxIDw8IChjdHgtPmRjdF9wcmVjaXNpb24gKyBo LT5jLmludHJhX2RjX3ByZWNpc2lvbikpOwogCiAgICAgcmljZV9wYXJhbWV0ZXIgPSBnZXRfYml0 cygmaC0+Z2IsIDQpOwogICAgIGlmIChyaWNlX3BhcmFtZXRlciA9PSAwKSB7CmRpZmYgLS1naXQg YS9saWJhdmNvZGVjL21wZWd2aWRlby5oIGIvbGliYXZjb2RlYy9tcGVndmlkZW8uaAppbmRleCBh MDQxNjZlZmE4Li5jYjRiOTlhY2QzIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL21wZWd2aWRlby5o CisrKyBiL2xpYmF2Y29kZWMvbXBlZ3ZpZGVvLmgKQEAgLTEzMyw3ICsxMzMsNiBAQCB0eXBlZGVm IHN0cnVjdCBNcGVnRW5jQ29udGV4dCB7CiAgICAgICovCiAgICAgTVBWV29ya1BpY3R1cmUgY3Vy X3BpYzsKIAotICAgIGludCBsYXN0X2RjWzNdOyAgICAgICAgICAgICAgICAvLy88IGxhc3QgREMg dmFsdWVzIGZvciBNUEVHLTEKICAgICBpbnQxNl90ICpkY192YWxfYmFzZTsKICAgICBjb25zdCB1 aW50OF90ICp5X2RjX3NjYWxlX3RhYmxlOyAgICAgLy8vPCBxc2NhbGUgLT4geV9kY19zY2FsZSB0 YWJsZQogICAgIGNvbnN0IHVpbnQ4X3QgKmNfZGNfc2NhbGVfdGFibGU7ICAgICAvLy88IHFzY2Fs ZSAtPiBjX2RjX3NjYWxlIHRhYmxlCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL21wZWd2aWRlb19l bmMuYyBiL2xpYmF2Y29kZWMvbXBlZ3ZpZGVvX2VuYy5jCmluZGV4IDgwMTU4ODZkYzQuLmUxZjk2 MjNkNjUgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvbXBlZ3ZpZGVvX2VuYy5jCisrKyBiL2xpYmF2 Y29kZWMvbXBlZ3ZpZGVvX2VuYy5jCkBAIC0yNjM5LDEzICsyNjM5LDEzIEBAIHR5cGVkZWYgc3Ry dWN0IE1CQmFja3VwIHsKICAgICAgICAgaW50IG12WzJdWzRdWzJdOwogICAgICAgICBpbnQgbGFz dF9tdlsyXVsyXVsyXTsKICAgICAgICAgaW50IG12X3R5cGUsIG12X2RpcjsKLSAgICAgICAgaW50 IGxhc3RfZGNbM107CiAgICAgICAgIGludCBtYl9pbnRyYSwgbWJfc2tpcHBlZDsKICAgICAgICAg aW50IHFzY2FsZTsKICAgICAgICAgaW50IGJsb2NrX2xhc3RfaW5kZXhbOF07CiAgICAgICAgIGlu dCBpbnRlcmxhY2VkX2RjdDsKICAgICB9IGM7CiAgICAgaW50IG1iX3NraXBfcnVuOworICAgIGlu dCBsYXN0X2RjWzNdOwogICAgIGludCBtdl9iaXRzLCBpX3RleF9iaXRzLCBwX3RleF9iaXRzLCBp X2NvdW50LCBtaXNjX2JpdHMsIGxhc3RfYml0czsKICAgICBpbnQgZHF1YW50OwogICAgIGludCBl c2MzX2xldmVsX2xlbmd0aDsKQEAgLTI2NjMsNyArMjY2Myw3IEBAIHN0YXRpYyBpbmxpbmUgdm9p ZCBCRUZPUkUgIyNfY29udGV4dF9iZWZvcmVfZW5jb2RlKERTVF9UWVBFICpjb25zdCBkLCAgICAg ICBcCiAgICAgLyogTVBFRy0xICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIGQtPm1iX3NraXBfcnVuID0gcy0+bWJfc2tp cF9ydW47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBmb3Ig KGludCBpID0gMDsgaSA8IDM7IGkrKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCi0gICAgICAgIGQtPmMubGFzdF9kY1tpXSA9IHMtPmMubGFzdF9kY1tpXTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBkLT5sYXN0X2RjW2ld ID0gcy0+bGFzdF9kY1tpXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCiAgICAgLyogc3RhdGlzdGljcyAqLyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIGQtPm12X2Jp dHMgICAgPSBzLT5tdl9iaXRzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKQEAgLTI2OTEsNyArMjY5MSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBBRlRFUiAj IyBfY29udGV4dF9hZnRlcl9lbmNvZGUoRFNUX1RZUEUgKmNvbnN0IGQsICAgICAgICBcCiAgICAg LyogTVBFRy0xICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAogICAgIGQtPm1iX3NraXBfcnVuID0gcy0+bWJfc2tpcF9ydW47ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBmb3IgKGludCBpID0g MDsgaSA8IDM7IGkrKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCi0gICAgICAgIGQtPmMubGFzdF9kY1tpXSA9IHMtPmMubGFzdF9kY1tpXTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBkLT5sYXN0X2RjW2ldID0gcy0+bGFz dF9kY1tpXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCiAgICAgLyogc3RhdGlzdGljcyAqLyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIGQtPm12X2JpdHMgICAgPSBz LT5tdl9iaXRzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK QEAgLTMwMDksMTQgKzMwMDksMTQgQEAgc3RhdGljIGludCBlbmNvZGVfdGhyZWFkKEFWQ29kZWND b250ZXh0ICpjLCB2b2lkICphcmcpewogICAgIGZvcihpPTA7IGk8MzsgaSsrKXsKICAgICAgICAg LyogaW5pdCBsYXN0IGRjIHZhbHVlcyAqLwogICAgICAgICAvKiBub3RlOiBxdWFudCBtYXRyaXgg dmFsdWUgKDgpIGlzIGltcGxpZWQgaGVyZSAqLwotICAgICAgICBzLT5jLmxhc3RfZGNbaV0gPSAx MjggPDwgcy0+Yy5pbnRyYV9kY19wcmVjaXNpb247CisgICAgICAgIHMtPmxhc3RfZGNbaV0gPSAx MjggPDwgcy0+Yy5pbnRyYV9kY19wcmVjaXNpb247CiAKICAgICAgICAgcy0+ZW5jb2RpbmdfZXJy b3JbaV0gPSAwOwogICAgIH0KICAgICBpZiAocy0+Yy5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9B TVYpIHsKLSAgICAgICAgcy0+Yy5sYXN0X2RjWzBdID0gMTI4ICogOCAvIDEzOwotICAgICAgICBz LT5jLmxhc3RfZGNbMV0gPSAxMjggKiA4IC8gMTQ7Ci0gICAgICAgIHMtPmMubGFzdF9kY1syXSA9 IDEyOCAqIDggLyAxNDsKKyAgICAgICAgcy0+bGFzdF9kY1swXSA9IDEyOCAqIDggLyAxMzsKKyAg ICAgICAgcy0+bGFzdF9kY1sxXSA9IDEyOCAqIDggLyAxNDsKKyAgICAgICAgcy0+bGFzdF9kY1sy XSA9IDEyOCAqIDggLyAxNDsKICNpZiBDT05GSUdfTVBFRzRfRU5DT0RFUgogICAgIH0gZWxzZSBp ZiAocy0+cGFydGl0aW9uZWRfZnJhbWUpIHsKICAgICAgICAgYXZfYXNzZXJ0MShzLT5jLmNvZGVj X2lkID09IEFWX0NPREVDX0lEX01QRUc0KTsKQEAgLTMwMzksNyArMzAzOSw3IEBAIHN0YXRpYyBp bnQgZW5jb2RlX3RocmVhZChBVkNvZGVjQ29udGV4dCAqYywgdm9pZCAqYXJnKXsKICAgICAgICAg ICAgIG1iX3kgPSBmZl9zcGVlZGhxX21iX3lfb3JkZXJfdG9fbWIobWJfeV9vcmRlciwgcy0+Yy5t Yl9oZWlnaHQsICZmaXJzdF9pbl9zbGljZSk7CiAgICAgICAgICAgICBpZiAoZmlyc3RfaW5fc2xp Y2UgJiYgbWJfeV9vcmRlciAhPSBzLT5jLnN0YXJ0X21iX3kpCiAgICAgICAgICAgICAgICAgZmZf c3BlZWRocV9lbmRfc2xpY2Uocyk7Ci0gICAgICAgICAgICBzLT5jLmxhc3RfZGNbMF0gPSBzLT5j Lmxhc3RfZGNbMV0gPSBzLT5jLmxhc3RfZGNbMl0gPSAxMDI0IDw8IHMtPmMuaW50cmFfZGNfcHJl Y2lzaW9uOworICAgICAgICAgICAgcy0+bGFzdF9kY1swXSA9IHMtPmxhc3RfZGNbMV0gPSBzLT5s YXN0X2RjWzJdID0gMTAyNCA8PCBzLT5jLmludHJhX2RjX3ByZWNpc2lvbjsKICAgICAgICAgfSBl bHNlIHsKICAgICAgICAgICAgIG1iX3kgPSBtYl95X29yZGVyOwogICAgICAgICB9CmRpZmYgLS1n aXQgYS9saWJhdmNvZGVjL21wZWd2aWRlb2VuYy5oIGIvbGliYXZjb2RlYy9tcGVndmlkZW9lbmMu aAppbmRleCAxMzE5MDhjMTBhLi40MzY2ZTc4ZjkwIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL21w ZWd2aWRlb2VuYy5oCisrKyBiL2xpYmF2Y29kZWMvbXBlZ3ZpZGVvZW5jLmgKQEAgLTEzOCw2ICsx MzgsNyBAQCB0eXBlZGVmIHN0cnVjdCBNUFZFbmNDb250ZXh0IHsKICAgICBpbnQgbGFzdF9iaXRz OyAvLy88IHRlbXAgdmFyIHVzZWQgZm9yIGNhbGN1bGF0aW5nIHRoZSBhYm92ZSB2YXJzCiAKICAg ICBpbnQgbWJfc2tpcF9ydW47CisgICAgaW50IGxhc3RfZGNbM107ICAgICAgICAgICAgICAgIC8v LzwgbGFzdCBEQyB2YWx1ZXMKIAogICAgIC8qIEguMjYzIHNwZWNpZmljICovCiAgICAgaW50IGdv Yl9pbmRleDsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvbXNtcGVnNGRlYy5jIGIvbGliYXZjb2Rl Yy9tc21wZWc0ZGVjLmMKaW5kZXggZDIyNDk1NTljOS4uZjJhYjk5ZWNiNSAxMDA2NDQKLS0tIGEv bGliYXZjb2RlYy9tc21wZWc0ZGVjLmMKKysrIGIvbGliYXZjb2RlYy9tc21wZWc0ZGVjLmMKQEAg LTQ4LDcgKzQ4LDcgQEAKIAogc3RhdGljIGNvbnN0IFZMQ0VsZW0gKm12X3RhYmxlc1syXTsKIAot c3RhdGljIGlubGluZSBpbnQgbXNtcGVnNHYxX3ByZWRfZGMoTXBlZ0VuY0NvbnRleHQgKiBzLCBp bnQgbiwKK3N0YXRpYyBpbmxpbmUgaW50IG1zbXBlZzR2MV9wcmVkX2RjKEgyNjNEZWNDb250ZXh0 ICpjb25zdCBoLCBpbnQgbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dDMyX3QgKipkY192YWxfcHRyKQogewogICAgIGludCBpOwpAQCAtNTksOCArNTksOCBAQCBzdGF0 aWMgaW5saW5lIGludCBtc21wZWc0djFfcHJlZF9kYyhNcGVnRW5jQ29udGV4dCAqIHMsIGludCBu LAogICAgICAgICBpPSBuLTM7CiAgICAgfQogCi0gICAgKmRjX3ZhbF9wdHI9ICZzLT5sYXN0X2Rj W2ldOwotICAgIHJldHVybiBzLT5sYXN0X2RjW2ldOworICAgICpkY192YWxfcHRyPSAmaC0+bGFz dF9kY1tpXTsKKyAgICByZXR1cm4gaC0+bGFzdF9kY1tpXTsKIH0KIAogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC01ODgsNyArNTg4LDcgQEAgc3RhdGljIGlu dCBtc21wZWc0X2RlY29kZV9kYyhNU01QNERlY0NvbnRleHQgKmNvbnN0IG1zLCBpbnQgbiwgaW50 ICpkaXJfcHRyKQogCiAgICAgaWYgKGgtPmMubXNtcGVnNF92ZXJzaW9uID09IE1TTVA0X1YxKSB7 CiAgICAgICAgIGludDMyX3QgKmRjX3ZhbDsKLSAgICAgICAgcHJlZCA9IG1zbXBlZzR2MV9wcmVk X2RjKCZoLT5jLCBuLCAmZGNfdmFsKTsKKyAgICAgICAgcHJlZCA9IG1zbXBlZzR2MV9wcmVkX2Rj KGgsIG4sICZkY192YWwpOwogICAgICAgICBsZXZlbCArPSBwcmVkOwogCiAgICAgICAgIC8qIHVw ZGF0ZSBwcmVkaWN0b3IgKi8KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvcnYxMC5jIGIvbGliYXZj b2RlYy9ydjEwLmMKaW5kZXggYjQ1NDVmNzYyNC4uMTk1OGYzNmM5OCAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy9ydjEwLmMKKysrIGIvbGliYXZjb2RlYy9ydjEwLmMKQEAgLTEyOSwxMSArMTI5LDEx IEBAIHN0YXRpYyBpbnQgcnYxMF9kZWNvZGVfcGljdHVyZV9oZWFkZXIoSDI2M0RlY0NvbnRleHQg KmNvbnN0IGgpCiAgICAgaWYgKGgtPmMucGljdF90eXBlID09IEFWX1BJQ1RVUkVfVFlQRV9JKSB7 CiAgICAgICAgIGlmIChoLT5ydjEwX3ZlcnNpb24gPT0gMykgewogICAgICAgICAgICAgLyogc3Bl Y2lmaWMgTVBFRyBsaWtlIERDIGNvZGluZyBub3QgdXNlZCAqLwotICAgICAgICAgICAgaC0+Yy5s YXN0X2RjWzBdID0gZ2V0X2JpdHMoJmgtPmdiLCA4KTsKLSAgICAgICAgICAgIGgtPmMubGFzdF9k Y1sxXSA9IGdldF9iaXRzKCZoLT5nYiwgOCk7Ci0gICAgICAgICAgICBoLT5jLmxhc3RfZGNbMl0g PSBnZXRfYml0cygmaC0+Z2IsIDgpOwotICAgICAgICAgICAgZmZfZGxvZyhoLT5jLmF2Y3R4LCAi REM6JWQgJWQgJWRcbiIsIGgtPmMubGFzdF9kY1swXSwKLSAgICAgICAgICAgICAgICAgICAgaC0+ Yy5sYXN0X2RjWzFdLCBoLT5jLmxhc3RfZGNbMl0pOworICAgICAgICAgICAgaC0+bGFzdF9kY1sw XSA9IGdldF9iaXRzKCZoLT5nYiwgOCk7CisgICAgICAgICAgICBoLT5sYXN0X2RjWzFdID0gZ2V0 X2JpdHMoJmgtPmdiLCA4KTsKKyAgICAgICAgICAgIGgtPmxhc3RfZGNbMl0gPSBnZXRfYml0cygm aC0+Z2IsIDgpOworICAgICAgICAgICAgZmZfZGxvZyhoLT5jLmF2Y3R4LCAiREM6JWQgJWQgJWRc biIsIGgtPmxhc3RfZGNbMF0sCisgICAgICAgICAgICAgICAgICAgIGgtPmxhc3RfZGNbMV0sIGgt Pmxhc3RfZGNbMl0pOwogICAgICAgICB9CiAgICAgfQogICAgIC8qIGlmIG11bHRpcGxlIHBhY2tl dHMgcGVyIGZyYW1lIGFyZSBzZW50LCB0aGUgcG9zaXRpb24gYXQgd2hpY2gKZGlmZiAtLWdpdCBh L2xpYmF2Y29kZWMvc3BlZWRocWVuYy5jIGIvbGliYXZjb2RlYy9zcGVlZGhxZW5jLmMKaW5kZXgg ZGE3YWJhNmVjOS4uMzA0MWMwNjg2NCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9zcGVlZGhxZW5j LmMKKysrIGIvbGliYXZjb2RlYy9zcGVlZGhxZW5jLmMKQEAgLTE3Miw5ICsxNzIsOSBAQCBzdGF0 aWMgdm9pZCBlbmNvZGVfYmxvY2soTVBWRW5jQ29udGV4dCAqY29uc3QgcywgY29uc3QgaW50MTZf dCBibG9ja1tdLCBpbnQgbikKICAgICAvKiBEQyBjb2VmICovCiAgICAgY29tcG9uZW50ID0gKG4g PD0gMyA/IDAgOiAobiYxKSArIDEpOwogICAgIGRjID0gYmxvY2tbMF07IC8qIG92ZXJmbG93IGlz IGltcG9zc2libGUgKi8KLSAgICB2YWwgPSBzLT5jLmxhc3RfZGNbY29tcG9uZW50XSAtIGRjOyAg Lyogb3Bwb3NpdGUgb2YgbW9zdCBjb2RlY3MgKi8KKyAgICB2YWwgPSBzLT5sYXN0X2RjW2NvbXBv bmVudF0gLSBkYzsgIC8qIG9wcG9zaXRlIG9mIG1vc3QgY29kZWNzICovCiAgICAgZW5jb2RlX2Rj KCZzLT5wYiwgdmFsLCBjb21wb25lbnQpOwotICAgIHMtPmMubGFzdF9kY1tjb21wb25lbnRdID0g ZGM7CisgICAgcy0+bGFzdF9kY1tjb21wb25lbnRdID0gZGM7CiAKICAgICAvKiBub3cgcXVhbnRp ZnkgJiBlbmNvZGUgQUMgY29lZnMgKi8KICAgICBsYXN0X25vbl96ZXJvID0gMDsKLS0gCjIuNTIu MAoKCkZyb20gMzE2YzI5M2NjOTMyZTk2ZWU0NDNhMWJhNWE4YmNlNmRkMjk4YTM1MiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFtZXMgQWxtZXIgPGphbXJpYWxAZ21haWwuY29tPgpE YXRlOiBUaHUsIDIwIE5vdiAyMDI1IDE4OjE1OjIzIC0wMzAwClN1YmplY3Q6IFtQQVRDSCAwMzMv MzA0XSBzd3NjYWxlL3g4Ni9vcHM6IGZpeCBzaWduZWQgaW50ZWdlciByZWxhdGVkIFVCIGluCiBu b3JtYWxpemVfY2xlYXIoKQoKU2lnbmVkLW9mZi1ieTogSmFtZXMgQWxtZXIgPGphbXJpYWxAZ21h aWwuY29tPgotLS0KIGxpYnN3c2NhbGUveDg2L29wcy5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYnN3c2Nh bGUveDg2L29wcy5jIGIvbGlic3dzY2FsZS94ODYvb3BzLmMKaW5kZXggMjZmNDk1ODJhZS4uOTdi ZWU5M2Y1YiAxMDA2NDQKLS0tIGEvbGlic3dzY2FsZS94ODYvb3BzLmMKKysrIGIvbGlic3dzY2Fs ZS94ODYvb3BzLmMKQEAgLTYxNiw4ICs2MTYsOCBAQCBzdGF0aWMgdm9pZCBub3JtYWxpemVfY2xl YXIoU3dzT3AgKm9wKQogICAgICAgICBpZiAoIW9wLT5jLnE0W2ldLmRlbikKICAgICAgICAgICAg IGNvbnRpbnVlOwogICAgICAgICBzd2l0Y2ggKGZmX3N3c19waXhlbF90eXBlX3NpemUob3AtPnR5 cGUpKSB7Ci0gICAgICAgIGNhc2UgMTogYy51MzIgPSAweDEwMTAxMDEgKiBwcml2LnU4W2ldOyBi cmVhazsKLSAgICAgICAgY2FzZSAyOiBjLnUzMiA9IHByaXYudTE2W2ldIDw8IDE2IHwgcHJpdi51 MTZbaV07IGJyZWFrOworICAgICAgICBjYXNlIDE6IGMudTMyID0gMHgxMDEwMTAxVSAqIHByaXYu dThbaV07IGJyZWFrOworICAgICAgICBjYXNlIDI6IGMudTMyID0gKHVpbnQzMl90KXByaXYudTE2 W2ldIDw8IDE2IHwgcHJpdi51MTZbaV07IGJyZWFrOwogICAgICAgICBjYXNlIDQ6IGMudTMyID0g cHJpdi51MzJbaV07IGJyZWFrOwogICAgICAgICB9CiAKLS0gCjIuNTIuMAoKCkZyb20gZDAzYzQ2 MmNhNGI3MGUxOGI4NjhmZDFmNTUzMjE2OGQyZWUzOTRlOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogSmFtZXMgQWxtZXIgPGphbXJpYWxAZ21haWwuY29tPgpEYXRlOiBUaHUsIDIwIE5v diAyMDI1IDIzOjQ5OjA3IC0wMzAwClN1YmplY3Q6IFtQQVRDSCAwMzQvMzA0XSBzd3NjYWxlL29w c190bXBsX2ludDogZml4IHNpZ25lZCBpbnRlZ2VyIHJlbGF0ZWQgVUIKIHdoZW4gc2hpZnRpbmcg dmFsdWVzCgpGaXhlczoKc3JjL2xpYnN3c2NhbGUvb3BzX3RtcGxfaW50LmM6MjkyOjIzOiBydW50 aW1lIGVycm9yOiBsZWZ0IHNoaWZ0IG9mIDE4OCBieSAyNCBwbGFjZXMgY2Fubm90IGJlIHJlcHJl c2VudGVkIGluIHR5cGUgJ2ludCcKc3JjL2xpYnN3c2NhbGUvb3BzX3RtcGxfaW50LmM6MjkwOjIz OiBydW50aW1lIGVycm9yOiBsZWZ0IHNoaWZ0IG9mIDE1OCBieSAyNCBwbGFjZXMgY2Fubm90IGJl IHJlcHJlc2VudGVkIGluIHR5cGUgJ2ludCcKc3JjL2xpYnN3c2NhbGUvb3BzX3RtcGxfaW50LmM6 MjkzOjIzOiBydW50aW1lIGVycm9yOiBsZWZ0IHNoaWZ0IG9mIDEzNiBieSAyNCBwbGFjZXMgY2Fu bm90IGJlIHJlcHJlc2VudGVkIGluIHR5cGUgJ2ludCcKc3JjL2xpYnN3c2NhbGUvb3BzX3RtcGxf aW50LmM6MjkxOjIzOiBydW50aW1lIGVycm9yOiBsZWZ0IHNoaWZ0IG9mIDE2MCBieSAyNCBwbGFj ZXMgY2Fubm90IGJlIHJlcHJlc2VudGVkIGluIHR5cGUgJ2ludCcKClNpZ25lZC1vZmYtYnk6IEph bWVzIEFsbWVyIDxqYW1yaWFsQGdtYWlsLmNvbT4KLS0tCiBsaWJzd3NjYWxlL29wc190bXBsX2lu dC5jIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJzd3NjYWxlL29wc190bXBsX2ludC5jIGIvbGlic3dz Y2FsZS9vcHNfdG1wbF9pbnQuYwppbmRleCA4NTcwMzFhZGE5Li5kYTI0YzE5ODVmIDEwMDY0NAot LS0gYS9saWJzd3NjYWxlL29wc190bXBsX2ludC5jCisrKyBiL2xpYnN3c2NhbGUvb3BzX3RtcGxf aW50LmMKQEAgLTI4NywxMCArMjg3LDEwIEBAIERFQ0xfUEFUVEVSTihleHBhbmQzMikKIAogICAg IFNXU19MT09QCiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBTV1NfQkxPQ0tfU0laRTsgaSsrKSB7 Ci0gICAgICAgIHgzMltpXSA9IHhbaV0gPDwgMjQgfCB4W2ldIDw8IDE2IHwgeFtpXSA8PCA4IHwg eFtpXTsKLSAgICAgICAgeTMyW2ldID0geVtpXSA8PCAyNCB8IHlbaV0gPDwgMTYgfCB5W2ldIDw8 IDggfCB5W2ldOwotICAgICAgICB6MzJbaV0gPSB6W2ldIDw8IDI0IHwgeltpXSA8PCAxNiB8IHpb aV0gPDwgOCB8IHpbaV07Ci0gICAgICAgIHczMltpXSA9IHdbaV0gPDwgMjQgfCB3W2ldIDw8IDE2 IHwgd1tpXSA8PCA4IHwgd1tpXTsKKyAgICAgICAgeDMyW2ldID0gKHVpbnQzMl90KXhbaV0gPDwg MjQgfCB4W2ldIDw8IDE2IHwgeFtpXSA8PCA4IHwgeFtpXTsKKyAgICAgICAgeTMyW2ldID0gKHVp bnQzMl90KXlbaV0gPDwgMjQgfCB5W2ldIDw8IDE2IHwgeVtpXSA8PCA4IHwgeVtpXTsKKyAgICAg ICAgejMyW2ldID0gKHVpbnQzMl90KXpbaV0gPDwgMjQgfCB6W2ldIDw8IDE2IHwgeltpXSA8PCA4 IHwgeltpXTsKKyAgICAgICAgdzMyW2ldID0gKHVpbnQzMl90KXdbaV0gPDwgMjQgfCB3W2ldIDw8 IDE2IHwgd1tpXSA8PCA4IHwgd1tpXTsKICAgICB9CiAKICAgICBDT05USU5VRSh1MzJibG9ja190 LCB4MzIsIHkzMiwgejMyLCB3MzIpOwotLSAKMi41Mi4wCgoKRnJvbSBhZTc4M2I5YTNjNDNhNzZh YTBiOWIyYTAxMWM3YzQ0NGMzODg5ZjgyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBK YW1lcyBBbG1lciA8amFtcmlhbEBnbWFpbC5jb20+CkRhdGU6IFRodSwgMjAgTm92IDIwMjUgMjM6 NTA6NDQgLTAzMDAKU3ViamVjdDogW1BBVENIIDAzNS8zMDRdIHRlc3RzL2NoZWNrYXNtL3N3X29w czogZml4IHNpZ25lZCBpbnRlZ2VyIHJlbGF0ZWQgVUIKIHdoZW4gc2hpZnRpbmcgdmFsdWVzCgpG aXhlczoKc3JjL3Rlc3RzL2NoZWNrYXNtL3N3X29wcy5jOjQ0MTozNDogcnVudGltZSBlcnJvcjog c2hpZnQgZXhwb25lbnQgMzIgaXMgdG9vIGxhcmdlIGZvciAzMi1iaXQgdHlwZSAnaW50JwpzcmMv dGVzdHMvY2hlY2thc20vc3dfb3BzLmM6NTkxOjM3OiBydW50aW1lIGVycm9yOiBzaGlmdCBleHBv bmVudCAzMiBpcyB0b28gbGFyZ2UgZm9yIDMyLWJpdCB0eXBlICdpbnQnCgpTaWduZWQtb2ZmLWJ5 OiBKYW1lcyBBbG1lciA8amFtcmlhbEBnbWFpbC5jb20+Ci0tLQogdGVzdHMvY2hlY2thc20vc3df b3BzLmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2thc20vc3dfb3BzLmMgYi90ZXN0cy9jaGVj a2FzbS9zd19vcHMuYwppbmRleCAyMGI2OTdiZjI1Li5hZWEyNWJiYmJjIDEwMDY0NAotLS0gYS90 ZXN0cy9jaGVja2FzbS9zd19vcHMuYworKysgYi90ZXN0cy9jaGVja2FzbS9zd19vcHMuYwpAQCAt NDM4LDcgKzQzOCw3IEBAIHN0YXRpYyBBVlJhdGlvbmFsIHJuZHEoU3dzUGl4ZWxUeXBlIHQpCiB7 CiAgICAgY29uc3QgdW5zaWduZWQgbnVtID0gcm5kKCk7CiAgICAgaWYgKGZmX3N3c19waXhlbF90 eXBlX2lzX2ludCh0KSkgewotICAgICAgICBjb25zdCB1bnNpZ25lZCBtYXNrID0gKDEgPDwgKGZm X3N3c19waXhlbF90eXBlX3NpemUodCkgKiA4KSkgLSAxOworICAgICAgICBjb25zdCB1bnNpZ25l ZCBtYXNrID0gVUlOVF9NQVggPj4gKDMyIC0gZmZfc3dzX3BpeGVsX3R5cGVfc2l6ZSh0KSAqIDgp OwogICAgICAgICByZXR1cm4gKEFWUmF0aW9uYWwpIHsgbnVtICYgbWFzaywgMSB9OwogICAgIH0g ZWxzZSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGRlbiA9IHJuZCgpOwpAQCAtNTg4LDcgKzU4 OCw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrX2NvbnZlcnQodm9pZCkKICAgICAgICAgICAgICAgICAg ICAgLmNvbnZlcnQudG8gPSBvLAogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSBl bHNlIGlmIChpc2l6ZSA+IG9zaXplIHx8ICFmZl9zd3NfcGl4ZWxfdHlwZV9pc19pbnQoaSkpIHsK LSAgICAgICAgICAgICAgICB1aW50MzJfdCByYW5nZSA9ICgxIDw8IG9zaXplICogOCkgLSAxOwor ICAgICAgICAgICAgICAgIHVpbnQzMl90IHJhbmdlID0gVUlOVDMyX01BWCA+PiAoMzIgLSBvc2l6 ZSAqIDgpOwogICAgICAgICAgICAgICAgIENIRUNLX0NPTU1PTl9SQU5HRShuYW1lLCByYW5nZSwg aSwgbywgewogICAgICAgICAgICAgICAgICAgICAub3AgPSBTV1NfT1BfQ09OVkVSVCwKICAgICAg ICAgICAgICAgICAgICAgLnR5cGUgPSBpLAotLSAKMi41Mi4wCgoKRnJvbSA2MmFkODNiYjVmYWZm ZmVkMjlhZjM4MmIxMWVmNWE5NDM3NDk0ZmQ0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0 ZTogRnJpLCAyMSBOb3YgMjAyNSAxNTo1Mjo0NiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDM2LzMw NF0gYXZmb3JtYXQvb2dnZW5jOiBTY2hlZHVsZSBwYWdlc2l6ZSBvcHRpb24gZm9yIHJlbW92YWwK CkRlcHJlY2F0ZWQgaW4gNTkyMjBkNTU5YjUwNzdjMTVmYTY0MzRlNDJkZjk1ZjNiOTJmMDE5OS4K ClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91 dGxvb2suY29tPgotLS0KIGxpYmF2Zm9ybWF0L29nZ2VuYy5jIHwgMTcgKysrKysrKysrKystLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L29nZ2VuYy5jIGIvbGliYXZmb3JtYXQvb2dnZW5jLmMKaW5k ZXggZTFiYjdkZDk3Mi4uOWE1NDhhOGQyOSAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvb2dnZW5j LmMKKysrIGIvbGliYXZmb3JtYXQvb2dnZW5jLmMKQEAgLTc2LDcgKzc2LDkgQEAgdHlwZWRlZiBz dHJ1Y3QgT0dHUGFnZUxpc3QgewogdHlwZWRlZiBzdHJ1Y3QgT0dHQ29udGV4dCB7CiAgICAgY29u c3QgQVZDbGFzcyAqY2xhc3M7CiAgICAgT0dHUGFnZUxpc3QgKnBhZ2VfbGlzdDsKKyNpZiBMSUJB VkZPUk1BVF9WRVJTSU9OX01BSk9SIDwgNjMKICAgICBpbnQgcHJlZl9zaXplOyAvLy88IHByZWZl cnJlZCBwYWdlIHNpemUgKDAgPT4gZmlsbCBhbGwgc2VnbWVudHMpCisjZW5kaWYKICAgICBpbnQ2 NF90IHByZWZfZHVyYXRpb247ICAgICAgLy8vPCBwcmVmZXJyZWQgcGFnZSBkdXJhdGlvbiAoMCA9 PiBmaWxsIGFsbCBzZWdtZW50cykKICAgICBpbnQgc2VyaWFsX29mZnNldDsKIH0gT0dHQ29udGV4 dDsKQEAgLTg3LDEwICs4OSwxMiBAQCB0eXBlZGVmIHN0cnVjdCBPR0dDb250ZXh0IHsKIHN0YXRp YyBjb25zdCBBVk9wdGlvbiBvcHRpb25zW10gPSB7CiAgICAgeyAic2VyaWFsX29mZnNldCIsICJz ZXJpYWwgbnVtYmVyIG9mZnNldCIsCiAgICAgICAgIE9GRlNFVChzZXJpYWxfb2Zmc2V0KSwgQVZf T1BUX1RZUEVfSU5ULCB7IC5pNjQgPSAwIH0sIDAsIElOVF9NQVgsIFBBUkFNIH0sCisjaWYgTElC QVZGT1JNQVRfVkVSU0lPTl9NQUpPUiA8IDYzCiAgICAgeyAib2dncGFnZXNpemUiLCAiU2V0IHBy ZWZlcnJlZCBPZ2cgcGFnZSBzaXplLiIsCi0gICAgICBPRkZTRVQocHJlZl9zaXplKSwgQVZfT1BU X1RZUEVfSU5ULCB7Lmk2NCA9IDB9LCAwLCBNQVhfUEFHRV9TSVpFLCBQQVJBTX0sCi0gICAgeyAi cGFnZXNpemUiLCAicHJlZmVycmVkIHBhZ2Ugc2l6ZSBpbiBieXRlcyAoZGVwcmVjYXRlZCkiLAot ICAgICAgICBPRkZTRVQocHJlZl9zaXplKSwgQVZfT1BUX1RZUEVfSU5ULCB7IC5pNjQgPSAwIH0s IDAsIE1BWF9QQUdFX1NJWkUsIFBBUkFNIH0sCisgICAgICBPRkZTRVQocHJlZl9zaXplKSwgQVZf T1BUX1RZUEVfSU5ULCB7Lmk2NCA9IDB9LCAwLCBNQVhfUEFHRV9TSVpFLCBQQVJBTSB8IEFWX09Q VF9GTEFHX0RFUFJFQ0FURUQgfSwKKyAgICB7ICJwYWdlc2l6ZSIsICJwcmVmZXJyZWQgcGFnZSBz aXplIGluIGJ5dGVzIiwKKyAgICAgICAgT0ZGU0VUKHByZWZfc2l6ZSksIEFWX09QVF9UWVBFX0lO VCwgeyAuaTY0ID0gMCB9LCAwLCBNQVhfUEFHRV9TSVpFLCBQQVJBTSB8IEFWX09QVF9GTEFHX0RF UFJFQ0FURUQgfSwKKyNlbmRpZgogICAgIHsgInBhZ2VfZHVyYXRpb24iLCAicHJlZmVycmVkIHBh Z2UgZHVyYXRpb24sIGluIG1pY3Jvc2Vjb25kcyIsCiAgICAgICAgIE9GRlNFVChwcmVmX2R1cmF0 aW9uKSwgQVZfT1BUX1RZUEVfSU5UNjQsIHsgLmk2NCA9IDEwMDAwMDAgfSwgMCwgSU5UNjRfTUFY LCBQQVJBTSB9LAogICAgIHsgTlVMTCB9LApAQCAtMjYyLDggKzI2NiwxMiBAQCBzdGF0aWMgaW50 IG9nZ19idWZmZXJfZGF0YShBVkZvcm1hdENvbnRleHQgKnMsIEFWU3RyZWFtICpzdCwKICAgICAg ICAgICAgIGlmIChwYWdlLT5zZWdtZW50c19jb3VudCA9PSAyNTUpIHsKICAgICAgICAgICAgICAg ICBvZ2dfYnVmZmVyX3BhZ2Uocywgb2dnc3RyZWFtKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAo IWhlYWRlcikgeworI2lmIExJQkFWRk9STUFUX1ZFUlNJT05fTUFKT1IgPCA2MwogICAgICAgICAg ICAgICAgIGlmICgob2dnLT5wcmVmX3NpemUgICAgID4gMCAmJiBwYWdlLT5zaXplICAgPj0gb2dn LT5wcmVmX3NpemUpIHx8CiAgICAgICAgICAgICAgICAgICAgIChvZ2ctPnByZWZfZHVyYXRpb24g PiAwICYmIG5leHQgLSBzdGFydCA+PSBvZ2ctPnByZWZfZHVyYXRpb24pKSB7CisjZWxzZQorICAg ICAgICAgICAgICAgIGlmIChvZ2ctPnByZWZfZHVyYXRpb24gPiAwICYmIG5leHQgLSBzdGFydCA+ PSBvZ2ctPnByZWZfZHVyYXRpb24pIHsKKyNlbmRpZgogICAgICAgICAgICAgICAgICAgICBvZ2df YnVmZmVyX3BhZ2Uocywgb2dnc3RyZWFtKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICB9CkBAIC00NzcsOSArNDg1LDYgQEAgc3RhdGljIGludCBvZ2dfaW5pdChBVkZvcm1hdENvbnRl eHQgKnMpCiAgICAgT0dHU3RyZWFtQ29udGV4dCAqb2dnc3RyZWFtID0gTlVMTDsKICAgICBpbnQg aSwgajsKIAotICAgIGlmIChvZ2ctPnByZWZfc2l6ZSkKLSAgICAgICAgYXZfbG9nKHMsIEFWX0xP R19XQVJOSU5HLCAiVGhlIHBhZ2VzaXplIG9wdGlvbiBpcyBkZXByZWNhdGVkXG4iKTsKLQogICAg IGZvciAoaSA9IDA7IGkgPCBzLT5uYl9zdHJlYW1zOyBpKyspIHsKICAgICAgICAgQVZTdHJlYW0g KnN0ID0gcy0+c3RyZWFtc1tpXTsKICAgICAgICAgdW5zaWduZWQgc2VyaWFsX251bSA9IGkgKyBv Z2ctPnNlcmlhbF9vZmZzZXQ7Ci0tIAoyLjUyLjAKCgpGcm9tIDc0Y2ZjNmU2MDI2Njc4MzMyMGE4 MTJiNmU2NDcyNDRkMTk4MTMyMmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRG LTg/cT9NYXJ0aW49MjBTdG9yc2o9QzM9QjY/PSA8bWFydGluQG1hcnRpbi5zdD4KRGF0ZTogV2Vk LCAxOSBOb3YgMjAyNSAxMDo0MzoyNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDM3LzMwNF0gc3dz Y2FsZTogUmVtb3ZlIHRoZSB1bnVzZWQgZmZfc3dzX3BpeGVsX3R5cGVfdG9fdWludAoKVGhpcyBm dW5jdGlvbiB1c2VzIGZmX3N3c19waXhlbF90eXBlX3NpemUgdG8gc3dpdGNoIG9uIHRoZQpzaXpl IG9mIHRoZSBwcm92aWRlZCB0eXBlLiBIb3dldmVyLCBmZl9zd3NfcGl4ZWxfdHlwZV9zaXplIHJl dHVybnMKYSBzaXplIGluIGJ5dGVzIChmcm9tIHNpemVvZigpKSwgbm90IGEgc2l6ZSBpbiBiaXRz LiBUaGVyZWZvcmUsCnRoaXMgd291bGQgcHJldmlvdXNseSBuZXZlciByZXR1cm4gdGhlIHJpZ2h0 IHRoaW5nIGJ1dCBhbHdheXMKaGl0IHRoZSBhdl91bnJlYWNoYWJsZSgpIGJlbG93LgoKQXMgdGhl IGZ1bmN0aW9uIGlzIGVudGlyZWx5IHVudXNlZCwganVzdCByZW1vdmUgaXQuCgpUaGlzIGZpeGVz IGNvbXBpbGF0aW9uIHdpdGggTVNWQyAyMDI2IDE4LjAgd2hlbiB0YXJnZXRpbmcgQVJNNjQsCndo aWNoIHByZXZpb3VzbHkgaGl0IGFuIGludGVybmFsIGNvbXBpbGVyIGVycm9yIFsxXS4KClsxXSBo dHRwczovL2RldmVsb3BlcmNvbW11bml0eS52aXN1YWxzdHVkaW8uY29tL3QvSW50ZXJuYWwtQ29t cGlsZXItRXJyb3ItdGFyZ2V0aW5nLUFSTTY0LS8xMDk2MjkyMgotLS0KIGxpYnN3c2NhbGUvb3Bz LmMgfCAxNSAtLS0tLS0tLS0tLS0tLS0KIGxpYnN3c2NhbGUvb3BzLmggfCAgMSAtCiAyIGZpbGVz IGNoYW5nZWQsIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYnN3c2NhbGUvb3BzLmMg Yi9saWJzd3NjYWxlL29wcy5jCmluZGV4IDIxYWViMTY5MzEuLjFjNDA4ZDc0ODIgMTAwNjQ0Ci0t LSBhL2xpYnN3c2NhbGUvb3BzLmMKKysrIGIvbGlic3dzY2FsZS9vcHMuYwpAQCAtOTMsMjEgKzkz LDYgQEAgYm9vbCBmZl9zd3NfcGl4ZWxfdHlwZV9pc19pbnQoU3dzUGl4ZWxUeXBlIHR5cGUpCiAg ICAgcmV0dXJuIGZhbHNlOwogfQogCi1Td3NQaXhlbFR5cGUgZmZfc3dzX3BpeGVsX3R5cGVfdG9f dWludChTd3NQaXhlbFR5cGUgdHlwZSkKLXsKLSAgICBpZiAoIXR5cGUpCi0gICAgICAgIHJldHVy biB0eXBlOwotCi0gICAgc3dpdGNoIChmZl9zd3NfcGl4ZWxfdHlwZV9zaXplKHR5cGUpKSB7Ci0g ICAgY2FzZSA4OiAgcmV0dXJuIFNXU19QSVhFTF9VODsKLSAgICBjYXNlIDE2OiByZXR1cm4gU1dT X1BJWEVMX1UxNjsKLSAgICBjYXNlIDMyOiByZXR1cm4gU1dTX1BJWEVMX1UzMjsKLSAgICB9Ci0K LSAgICBhdl91bnJlYWNoYWJsZSgiSW52YWxpZCBwaXhlbCB0eXBlISIpOwotICAgIHJldHVybiBT V1NfUElYRUxfTk9ORTsKLX0KLQogLyogYmlhc2VkIHRvd2FyZHMgYGFgICovCiBzdGF0aWMgQVZS YXRpb25hbCBhdl9taW5fcShBVlJhdGlvbmFsIGEsIEFWUmF0aW9uYWwgYikKIHsKZGlmZiAtLWdp dCBhL2xpYnN3c2NhbGUvb3BzLmggYi9saWJzd3NjYWxlL29wcy5oCmluZGV4IDhmMjZlZTgzMmUu LmRjY2MwMGQyZjAgMTAwNjQ0Ci0tLSBhL2xpYnN3c2NhbGUvb3BzLmgKKysrIGIvbGlic3dzY2Fs ZS9vcHMuaApAQCAtMzksNyArMzksNiBAQCB0eXBlZGVmIGVudW0gU3dzUGl4ZWxUeXBlIHsKIGNv bnN0IGNoYXIgKmZmX3N3c19waXhlbF90eXBlX25hbWUoU3dzUGl4ZWxUeXBlIHR5cGUpOwogaW50 IGZmX3N3c19waXhlbF90eXBlX3NpemUoU3dzUGl4ZWxUeXBlIHR5cGUpIGF2X2NvbnN0OwogYm9v bCBmZl9zd3NfcGl4ZWxfdHlwZV9pc19pbnQoU3dzUGl4ZWxUeXBlIHR5cGUpIGF2X2NvbnN0Owot U3dzUGl4ZWxUeXBlIGZmX3N3c19waXhlbF90eXBlX3RvX3VpbnQoU3dzUGl4ZWxUeXBlIHR5cGUp IGF2X2NvbnN0OwogCiB0eXBlZGVmIGVudW0gU3dzT3BUeXBlIHsKICAgICBTV1NfT1BfSU5WQUxJ RCA9IDAsCi0tIAoyLjUyLjAKCgpGcm9tIGE1MDMxNjc5Njg4N2NjMGZlZjkwYTY1N2U0NTA1MDc4 OWVkMDg4ZTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZGVycyBSZWluIDxhbmRl cnNAb25lbWltaXIuY29tPgpEYXRlOiBNb24sIDE3IE5vdiAyMDI1IDIzOjUyOjQ5ICswMTAwClN1 YmplY3Q6IFtQQVRDSCAwMzgvMzA0XSBhdmZpbHRlci9mX3NlbGVjdDogQWRkZWQgYWN0aXZhdGUg Zm9yIGFzZWxlY3QKCkR1cmluZyBtaWdyYXRpb24gdG8gdGhlIGFjdGl2YXRpb24gZmlsdGVyIEFQ SSB0aGUgYXNlbGVjdCBmaWx0ZXIgd2FzCmFjY2lkZW50YWxseSB0dXJuZWQgaW50byBhIG5vLW9w IGZpbHRlci4KLS0tCiBsaWJhdmZpbHRlci9mX3NlbGVjdC5jIHwgMSArCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci9mX3NlbGVjdC5jIGIv bGliYXZmaWx0ZXIvZl9zZWxlY3QuYwppbmRleCA0NjIwOGE3Yjc2Li4zNzgxZTUwODE0IDEwMDY0 NAotLS0gYS9saWJhdmZpbHRlci9mX3NlbGVjdC5jCisrKyBiL2xpYmF2ZmlsdGVyL2Zfc2VsZWN0 LmMKQEAgLTUwNCw2ICs1MDQsNyBAQCBjb25zdCBGRkZpbHRlciBmZl9hZl9hc2VsZWN0ID0gewog ICAgIC5wLmZsYWdzICAgICAgID0gQVZGSUxURVJfRkxBR19EWU5BTUlDX09VVFBVVFMsCiAgICAg LmluaXQgICAgICAgID0gYXNlbGVjdF9pbml0LAogICAgIC51bmluaXQgICAgICA9IHVuaW5pdCwK KyAgICAuYWN0aXZhdGUgICAgICA9IGFjdGl2YXRlLAogICAgIC5wcml2X3NpemUgICA9IHNpemVv ZihTZWxlY3RDb250ZXh0KSwKICAgICBGSUxURVJfSU5QVVRTKGF2ZmlsdGVyX2FmX2FzZWxlY3Rf aW5wdXRzKSwKIH07Ci0tIAoyLjUyLjAKCgpGcm9tIDAxOGU2NDY2OWE5N2M0ZjU5NWYzNzNlZmQy MzVkZTQ4ZTE3OGNlMGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZGVycyBSZWlu IDxhbmRlcnNAb25lbWltaXIuY29tPgpEYXRlOiBUdWUsIDE4IE5vdiAyMDI1IDExOjIyOjE4ICsw MTAwClN1YmplY3Q6IFtQQVRDSCAwMzkvMzA0XSBmYXRlL2ZpbHRlci1hdWRpbzogQWRkZWQgdGVz dCBmb3IgYXNlbGVjdAoKLS0tCiB0ZXN0cy9mYXRlL2ZpbHRlci1hdWRpby5tYWsgICB8ICA1ICsr KysrCiB0ZXN0cy9yZWYvZmF0ZS9maWx0ZXItYXNlbGVjdCB8IDE2ICsrKysrKysrKysrKysrKysK IDIgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRl c3RzL3JlZi9mYXRlL2ZpbHRlci1hc2VsZWN0CgpkaWZmIC0tZ2l0IGEvdGVzdHMvZmF0ZS9maWx0 ZXItYXVkaW8ubWFrIGIvdGVzdHMvZmF0ZS9maWx0ZXItYXVkaW8ubWFrCmluZGV4IGVlZTAyMDlj NTkuLmIyNDRmODJiYjcgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ZhdGUvZmlsdGVyLWF1ZGlvLm1hawor KysgYi90ZXN0cy9mYXRlL2ZpbHRlci1hdWRpby5tYWsKQEAgLTI1OSw2ICsyNTksMTEgQEAgZmF0 ZS1maWx0ZXItYXJlc2FtcGxlOiBDTUQgPSBwY20gLWFuYWx5emVkdXJhdGlvbiAxMDAwMDAwMCAt aSAkKFNSQykgLWFmIGFyZXNhbXAKIGZhdGUtZmlsdGVyLWFyZXNhbXBsZTogQ01QID0gb25lb2Zm CiBmYXRlLWZpbHRlci1hcmVzYW1wbGU6IFJFRiA9ICQoU0FNUExFUykvbmVsbHltb3Nlci9uZWxs eW1vc2VyLWRpc2NvbnQucGNtCiAKK0ZBVEVfQUZJTFRFUi0kKGNhbGwgRklMVEVSREVNREVDRU5D TVVYLCBBU0VMRUNULCBXQVYsIFBDTV9TMTZMRSwgUENNX1MxNkxFLCBXQVYpICs9IGZhdGUtZmls dGVyLWFzZWxlY3QKK2ZhdGUtZmlsdGVyLWFzZWxlY3Q6IHRlc3RzL2RhdGEvYXN5bnRoLTQ0MTAw LTIud2F2CitmYXRlLWZpbHRlci1hc2VsZWN0OiBTUkMgPSAkKFRBUkdFVF9QQVRIKS90ZXN0cy9k YXRhL2FzeW50aC00NDEwMC0yLndhdgorZmF0ZS1maWx0ZXItYXNlbGVjdDogQ01EID0gZnJhbWVj cmMgLWkgJChTUkMpIC1hZiAiYXNlbGVjdD1ndGUodFwsMSkqbHQodFwsMikiCisKIEZBVEVfQVRS SU0gKz0gZmF0ZS1maWx0ZXItYXRyaW0tZHVyYXRpb24KIGZhdGUtZmlsdGVyLWF0cmltLWR1cmF0 aW9uOiBDTUQgPSBmcmFtZWNyYyAtaSAkKFNSQykgLWFmIGF0cmltPXN0YXJ0PTAuMTpkdXJhdGlv bj0wLjAxCiBGQVRFX0FUUklNICs9IGZhdGUtZmlsdGVyLWF0cmltLW1peGVkCmRpZmYgLS1naXQg YS90ZXN0cy9yZWYvZmF0ZS9maWx0ZXItYXNlbGVjdCBiL3Rlc3RzL3JlZi9mYXRlL2ZpbHRlci1h c2VsZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjdkMjE5MmUyMjcK LS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9yZWYvZmF0ZS9maWx0ZXItYXNlbGVjdApAQCAtMCww ICsxLDE2IEBACisjdGIgMDogMS80NDEwMAorI21lZGlhX3R5cGUgMDogYXVkaW8KKyNjb2RlY19p ZCAwOiBwY21fczE2bGUKKyNzYW1wbGVfcmF0ZSAwOiA0NDEwMAorI2NoYW5uZWxfbGF5b3V0X25h bWUgMDogc3RlcmVvCiswLCAgICAgIDQ1MDU2LCAgICAgIDQ1MDU2LCAgICAgNDA5NiwgICAgMTYz ODQsIDB4ZTkyYmQ4MzUKKzAsICAgICAgNDkxNTIsICAgICAgNDkxNTIsICAgICA0MDk2LCAgICAx NjM4NCwgMHgxMTI2ZGNhMworMCwgICAgICA1MzI0OCwgICAgICA1MzI0OCwgICAgIDQwOTYsICAg IDE2Mzg0LCAweDk2NDdlZGNmCiswLCAgICAgIDU3MzQ0LCAgICAgIDU3MzQ0LCAgICAgNDA5Niwg ICAgMTYzODQsIDB4NWNjMzQ1YWEKKzAsICAgICAgNjE0NDAsICAgICAgNjE0NDAsICAgICA0MDk2 LCAgICAxNjM4NCwgMHgxOWQ3YmQ1MQorMCwgICAgICA2NTUzNiwgICAgICA2NTUzNiwgICAgIDQw OTYsICAgIDE2Mzg0LCAweDE5ZWNjZWY3CiswLCAgICAgIDY5NjMyLCAgICAgIDY5NjMyLCAgICAg NDA5NiwgICAgMTYzODQsIDB4NGI2OGVlZWQKKzAsICAgICAgNzM3MjgsICAgICAgNzM3MjgsICAg ICA0MDk2LCAgICAxNjM4NCwgMHgwYjNkMWJmYworMCwgICAgICA3NzgyNCwgICAgICA3NzgyNCwg ICAgIDQwOTYsICAgIDE2Mzg0LCAweGU5YjJlMDY5CiswLCAgICAgIDgxOTIwLCAgICAgIDgxOTIw LCAgICAgNDA5NiwgICAgMTYzODQsIDB4Y2FhNTU5MGUKKzAsICAgICAgODYwMTYsICAgICAgODYw MTYsICAgICA0MDk2LCAgICAxNjM4NCwgMHg0N2QwYjIyNwotLSAKMi41Mi4wCgoKRnJvbSAzYWVm ODRlZTg0OTE5NzUyN2M4MzI4NjM2MTgwMGQ0YTI2MDBkNzA0IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBSb21haW4gQmVhdXhpcyA8cm9tYWluLmJlYXV4aXNAZ21haWwuY29tPgpEYXRl OiBTYXQsIDggTm92IDIwMjUgMTA6MzI6MzIgLTA2MDAKU3ViamVjdDogW1BBVENIIDA0MC8zMDRd IGZmcGxheTogcHJpbnQgbmV3IG1ldGFkYXRhCgotLS0KIGZmdG9vbHMvY21kdXRpbHMuYyB8IDI1 ICsrKysrKysrKysrKysrKysrKysrKysrKysKIGZmdG9vbHMvY21kdXRpbHMuaCB8ICA4ICsrKysr KysrCiBmZnRvb2xzL2ZmcGxheS5jICAgfCAyMSArKysrKysrKysrKysrKysrKysrKy0KIDMgZmls ZXMgY2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L2ZmdG9vbHMvY21kdXRpbHMuYyBiL2ZmdG9vbHMvY21kdXRpbHMuYwppbmRleCAzNWY3ODZkYmE1 Li5lOTA2ZDQ1MDZkIDEwMDY0NAotLS0gYS9mZnRvb2xzL2NtZHV0aWxzLmMKKysrIGIvZmZ0b29s cy9jbWR1dGlscy5jCkBAIC0xNjEzLDMgKzE2MTMsMjggQEAgaW50IGNoZWNrX2F2b3B0aW9ucyhB VkRpY3Rpb25hcnkgKm0pCiAKICAgICByZXR1cm4gMDsKIH0KKwordm9pZCBkdW1wX2RpY3Rpb25h cnkodm9pZCAqY3R4LCBjb25zdCBBVkRpY3Rpb25hcnkgKm0sCisgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICppbmRlbnQsCisgICAgICAgICAgICAgICAg ICAgICBpbnQgbG9nX2xldmVsKQoreworICAgIGNvbnN0IEFWRGljdGlvbmFyeUVudHJ5ICp0YWcg PSBOVUxMOworCisgICAgaWYgKCFtKQorICAgICAgICByZXR1cm47CisKKyAgICBhdl9sb2coY3R4 LCBsb2dfbGV2ZWwsICIlcyVzOlxuIiwgaW5kZW50LCBuYW1lKTsKKyAgICB3aGlsZSAoKHRhZyA9 IGF2X2RpY3RfaXRlcmF0ZShtLCB0YWcpKSkgeworICAgICAgICBjb25zdCBjaGFyICpwID0gdGFn LT52YWx1ZTsKKyAgICAgICAgYXZfbG9nKGN0eCwgbG9nX2xldmVsLCAiJXMgICUtMTZzOiAiLCBp bmRlbnQsIHRhZy0+a2V5KTsKKyAgICAgICAgd2hpbGUgKCpwKSB7CisgICAgICAgICAgICBzaXpl X3QgbGVuID0gc3RyY3NwbihwLCAiXHg4XHhhXHhiXHhjXHhkIik7CisgICAgICAgICAgICBhdl9s b2coY3R4LCBsb2dfbGV2ZWwsICIlLipzIiwgKGludCkoRkZNSU4oMjU1LCBsZW4pKSwgcCk7Cisg ICAgICAgICAgICBwICs9IGxlbjsKKyAgICAgICAgICAgIGlmICgqcCA9PSAweGQpIGF2X2xvZyhj dHgsIGxvZ19sZXZlbCwgIiAiKTsKKyAgICAgICAgICAgIGlmICgqcCA9PSAweGEpIGF2X2xvZyhj dHgsIGxvZ19sZXZlbCwgIlxuJXMgICUtMTZzOiAiLCBpbmRlbnQsICIiKTsKKyAgICAgICAgICAg IGlmICgqcCkgcCsrOworICAgICAgICB9CisgICAgICAgIGF2X2xvZyhjdHgsIGxvZ19sZXZlbCwg IlxuIik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvZmZ0b29scy9jbWR1dGlscy5oIGIvZmZ0b29s cy9jbWR1dGlscy5oCmluZGV4IDkzZTA1YzcxMzAuLjg1YjQ2OGYyYWYgMTAwNjQ0Ci0tLSBhL2Zm dG9vbHMvY21kdXRpbHMuaAorKysgYi9mZnRvb2xzL2NtZHV0aWxzLmgKQEAgLTU0OSw0ICs1NDks MTIgQEAgaW50IGNoZWNrX2F2b3B0aW9ucyhBVkRpY3Rpb25hcnkgKm0pOwogCiBpbnQgY21kdXRp bHNfaXNhbG51bShjaGFyIGMpOwogCisvKioKKyAqIFRoaXMgZG9lcyB0aGUgc2FtZSBhcyBsaWJh dmZvcm1hdC9kdW1wLmMgY29ycmVzcG9uZGluZyBmdW5jdGlvbgorICogYW5kIHNob3VsZCBwcm9i YWJseSBiZSBrZXB0IGluIHN5bmMgd2hlbiB0aGUgb3RoZXIgb25lIGNoYW5nZXMuCisgKi8KK3Zv aWQgZHVtcF9kaWN0aW9uYXJ5KHZvaWQgKmN0eCwgY29uc3QgQVZEaWN0aW9uYXJ5ICptLAorICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqaW5kZW50LAor ICAgICAgICAgICAgICAgICAgICAgaW50IGxvZ19sZXZlbCk7CisKICNlbmRpZiAvKiBGRlRPT0xT X0NNRFVUSUxTX0ggKi8KZGlmZiAtLWdpdCBhL2ZmdG9vbHMvZmZwbGF5LmMgYi9mZnRvb2xzL2Zm cGxheS5jCmluZGV4IGRjMjYyNzUyMWUuLmRjZDIwZTcwYmMgMTAwNjQ0Ci0tLSBhL2ZmdG9vbHMv ZmZwbGF5LmMKKysrIGIvZmZ0b29scy9mZnBsYXkuYwpAQCAtMjg0Myw2ICsyODQzLDcgQEAgc3Rh dGljIGludCByZWFkX3RocmVhZCh2b2lkICphcmcpCiAgICAgaW50IHN0X2luZGV4W0FWTUVESUFf VFlQRV9OQl07CiAgICAgQVZQYWNrZXQgKnBrdCA9IE5VTEw7CiAgICAgaW50NjRfdCBzdHJlYW1f c3RhcnRfdGltZTsKKyAgICBjaGFyIG1ldGFkYXRhX2Rlc2NyaXB0aW9uWzk2XTsKICAgICBpbnQg cGt0X2luX3BsYXlfcmFuZ2UgPSAwOwogICAgIGNvbnN0IEFWRGljdGlvbmFyeUVudHJ5ICp0Owog ICAgIFNETF9tdXRleCAqd2FpdF9tdXRleCA9IFNETF9DcmVhdGVNdXRleCgpOwpAQCAtMjk1MCw4 ICsyOTUxLDEwIEBAIHN0YXRpYyBpbnQgcmVhZF90aHJlYWQodm9pZCAqYXJnKQogCiAgICAgaXMt PnJlYWx0aW1lID0gaXNfcmVhbHRpbWUoaWMpOwogCi0gICAgaWYgKHNob3dfc3RhdHVzKQorICAg IGlmIChzaG93X3N0YXR1cykgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlx4MWJbMktcciIp OwogICAgICAgICBhdl9kdW1wX2Zvcm1hdChpYywgMCwgaXMtPmZpbGVuYW1lLCAwKTsKKyAgICB9 CiAKICAgICBmb3IgKGkgPSAwOyBpIDwgaWMtPm5iX3N0cmVhbXM7IGkrKykgewogICAgICAgICBB VlN0cmVhbSAqc3QgPSBpYy0+c3RyZWFtc1tpXTsKQEAgLTI5NjAsNiArMjk2Myw5IEBAIHN0YXRp YyBpbnQgcmVhZF90aHJlYWQodm9pZCAqYXJnKQogICAgICAgICBpZiAodHlwZSA+PSAwICYmIHdh bnRlZF9zdHJlYW1fc3BlY1t0eXBlXSAmJiBzdF9pbmRleFt0eXBlXSA9PSAtMSkKICAgICAgICAg ICAgIGlmIChhdmZvcm1hdF9tYXRjaF9zdHJlYW1fc3BlY2lmaWVyKGljLCBzdCwgd2FudGVkX3N0 cmVhbV9zcGVjW3R5cGVdKSA+IDApCiAgICAgICAgICAgICAgICAgc3RfaW5kZXhbdHlwZV0gPSBp OworICAgICAgICAvLyBDbGVhciBhbGwgcHJlLWV4aXN0aW5nIG1ldGFkYXRhIHVwZGF0ZSBmbGFn cyB0byBhdm9pZCBwcmludGluZworICAgICAgICAvLyBpbml0aWFsIG1ldGFkYXRhIGFzIHVwZGF0 ZS4KKyAgICAgICAgc3QtPmV2ZW50X2ZsYWdzICY9IH5BVlNUUkVBTV9FVkVOVF9GTEFHX01FVEFE QVRBX1VQREFURUQ7CiAgICAgfQogICAgIGZvciAoaSA9IDA7IGkgPCBBVk1FRElBX1RZUEVfTkI7 IGkrKykgewogICAgICAgICBpZiAod2FudGVkX3N0cmVhbV9zcGVjW2ldICYmIHN0X2luZGV4W2ld ID09IC0xKSB7CkBAIC0zMTI4LDYgKzMxMzQsMTkgQEAgc3RhdGljIGludCByZWFkX3RocmVhZCh2 b2lkICphcmcpCiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpcy0+ZW9mID0gMDsKICAg ICAgICAgfQorCisgICAgICAgIGlmIChzaG93X3N0YXR1cyAmJiBpYy0+c3RyZWFtc1twa3QtPnN0 cmVhbV9pbmRleF0tPmV2ZW50X2ZsYWdzICYKKyAgICAgICAgICAgIEFWU1RSRUFNX0VWRU5UX0ZM QUdfTUVUQURBVEFfVVBEQVRFRCkgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJceDFi WzJLXHIiKTsKKyAgICAgICAgICAgIHNucHJpbnRmKG1ldGFkYXRhX2Rlc2NyaXB0aW9uLAorICAg ICAgICAgICAgICAgICAgICAgc2l6ZW9mKG1ldGFkYXRhX2Rlc2NyaXB0aW9uKSwKKyAgICAgICAg ICAgICAgICAgICAgICJcciAgTmV3IG1ldGFkYXRhIGZvciBzdHJlYW0gJWQiLAorICAgICAgICAg ICAgICAgICAgICAgcGt0LT5zdHJlYW1faW5kZXgpOworICAgICAgICAgICAgZHVtcF9kaWN0aW9u YXJ5KE5VTEwsIGljLT5zdHJlYW1zW3BrdC0+c3RyZWFtX2luZGV4XS0+bWV0YWRhdGEsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGFfZGVzY3JpcHRpb24sICIgICAgIiwg QVZfTE9HX0lORk8pOworICAgICAgICB9CisgICAgICAgIGljLT5zdHJlYW1zW3BrdC0+c3RyZWFt X2luZGV4XS0+ZXZlbnRfZmxhZ3MgJj0gfkFWU1RSRUFNX0VWRU5UX0ZMQUdfTUVUQURBVEFfVVBE QVRFRDsKKwogICAgICAgICAvKiBjaGVjayBpZiBwYWNrZXQgaXMgaW4gcGxheSByYW5nZSBzcGVj aWZpZWQgYnkgdXNlciwgdGhlbiBxdWV1ZSwgb3RoZXJ3aXNlIGRpc2NhcmQgKi8KICAgICAgICAg c3RyZWFtX3N0YXJ0X3RpbWUgPSBpYy0+c3RyZWFtc1twa3QtPnN0cmVhbV9pbmRleF0tPnN0YXJ0 X3RpbWU7CiAgICAgICAgIHBrdF90cyA9IHBrdC0+cHRzID09IEFWX05PUFRTX1ZBTFVFID8gcGt0 LT5kdHMgOiBwa3QtPnB0czsKLS0gCjIuNTIuMAoKCkZyb20gNTBkOTRkYjY5OGMyMjZlZGMwZTM1 Y2JmMjUxZWJjMzI5OWNjOWNmNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFtZXMg QWxtZXIgPGphbXJpYWxAZ21haWwuY29tPgpEYXRlOiBTYXQsIDIyIE5vdiAyMDI1IDEyOjAyOjI3 IC0wMzAwClN1YmplY3Q6IFtQQVRDSCAwNDEvMzA0XSBjb25maWd1cmU6IG1vdmUgbGlidGxzIG91 dCBvZiBub24tZnJlZSBsaWJyYXJpZXMgbGlzdAoKTGlicmVTU0wgdXNlcyBhIHBlcm1pc2l2ZSBs aWNlbnNlLCBhbmQgdGhlIE9wZW5TU0wgY29kZSBoYXMgdGhlIHNhbWUgbGljZW5zZSBhcwpPcGVu U1NMIDwgMy4KClNpZ25lZC1vZmYtYnk6IEphbWVzIEFsbWVyIDxqYW1yaWFsQGdtYWlsLmNvbT4K LS0tCiBjb25maWd1cmUgfCA1ICsrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRl eCBlMmNhZjNiMjRjLi44NjgyMjZhYzExIDEwMDc1NQotLS0gYS9jb25maWd1cmUKKysrIGIvY29u ZmlndXJlCkBAIC0xOTI3LDcgKzE5MjcsNiBAQCBFWFRFUk5BTF9MSUJSQVJZX05PTkZSRUVfTElT VD0iCiAgICAgZGVja2xpbmsKICAgICBsaWJmZGtfYWFjCiAgICAgbGlibXBlZ2hkZWMKLSAgICBs aWJ0bHMKICIKIAogRVhURVJOQUxfTElCUkFSWV9WRVJTSU9OM19MSVNUPSIKQEAgLTIwMTQsNiAr MjAxMyw3IEBAIEVYVEVSTkFMX0xJQlJBUllfTElTVD0iCiAgICAgbGlidGVuc29yZmxvdwogICAg IGxpYnRlc3NlcmFjdAogICAgIGxpYnRoZW9yYQorICAgIGxpYnRscwogICAgIGxpYnRvcmNoCiAg ICAgbGlidHdvbGFtZQogICAgIGxpYnVhdnMzZApAQCAtNzI0NCw3ICs3MjQ0LDggQEAgZW5hYmxl ZCBsaWJzdnRhdjEgICAgICAgICAmJiByZXF1aXJlX3BrZ19jb25maWcgbGlic3Z0YXYxICJTdnRB djFFbmMgPj0gMC45LjAiIEUKIGVuYWJsZWQgbGlidGVuc29yZmxvdyAgICAgJiYgcmVxdWlyZSBs aWJ0ZW5zb3JmbG93IHRlbnNvcmZsb3cvYy9jX2FwaS5oIFRGX1ZlcnNpb24gLWx0ZW5zb3JmbG93 CiBlbmFibGVkIGxpYnRlc3NlcmFjdCAgICAgICYmIHJlcXVpcmVfcGtnX2NvbmZpZyBsaWJ0ZXNz ZXJhY3QgdGVzc2VyYWN0IHRlc3NlcmFjdC9jYXBpLmggVGVzc0Jhc2VBUElDcmVhdGUKIGVuYWJs ZWQgbGlidGhlb3JhICAgICAgICAgJiYgcmVxdWlyZSBsaWJ0aGVvcmEgdGhlb3JhL3RoZW9yYWVu Yy5oIHRoX2luZm9faW5pdCAtbHRoZW9yYWVuYyAtbHRoZW9yYWRlYyAtbG9nZwotZW5hYmxlZCBs aWJ0bHMgICAgICAgICAgICAmJiByZXF1aXJlX3BrZ19jb25maWcgbGlidGxzIGxpYnRscyB0bHMu aCB0bHNfY29uZmlndXJlCitlbmFibGVkIGxpYnRscyAgICAgICAgICAgICYmIHJlcXVpcmVfcGtn X2NvbmZpZyBsaWJ0bHMgbGlidGxzIHRscy5oIHRsc19jb25maWd1cmUgJiYKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeyBlbmFibGVkIGdwbCAmJiAhIGVuYWJsZWQgbm9uZnJlZSAmJiBk aWUgIkVSUk9SOiBMaWJyZVNTTCBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgZ3BsIjsgfQogZW5h YmxlZCBsaWJ0b3JjaCAgICAgICAgICAmJiBjaGVja19jeHhmbGFncyAtc3RkPWMrKzE3ICYmIHJl cXVpcmVfY3h4IGxpYnRvcmNoIHRvcmNoL3RvcmNoLmggInRvcmNoOjpUZW5zb3IiIC1sdG9yY2gg LWxjMTAgLWx0b3JjaF9jcHUgLWxzdGRjKysgLWxwdGhyZWFkCiBlbmFibGVkIGxpYnR3b2xhbWUg ICAgICAgICYmIHJlcXVpcmUgbGlidHdvbGFtZSB0d29sYW1lLmggdHdvbGFtZV9pbml0IC1sdHdv bGFtZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGNoZWNrX2xpYiBsaWJ0d29s YW1lIHR3b2xhbWUuaCB0d29sYW1lX2VuY29kZV9idWZmZXJfZmxvYXQzMl9pbnRlcmxlYXZlZCAt bHR3b2xhbWUgfHwKLS0gCjIuNTIuMAoKCkZyb20gMWE1NDI0MGNlMmU5MDVhMDcxNjAwNzJkZWJk OGY5ZjNjODczNGEzOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFtZXMgQWxtZXIg PGphbXJpYWxAZ21haWwuY29tPgpEYXRlOiBGcmksIDIxIE5vdiAyMDI1IDE2OjU4OjEzIC0wMzAw ClN1YmplY3Q6IFtQQVRDSCAwNDIvMzA0XSBhdmZvcm1hdC9tb3Y6IGRvbid0IHBhcnNlIHJlc2Vy dmVkIElTT0JNRkYgZmllbGRzIGFzCiBpZiB0aGV5IHdlcmUgUVQKClNpZ25lZC1vZmYtYnk6IEph bWVzIEFsbWVyIDxqYW1yaWFsQGdtYWlsLmNvbT4KLS0tCiBsaWJhdmZvcm1hdC9tb3YuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMCArKysrKysrKysrCiB0ZXN0cy9yZWYvZmF0 ZS9oMjY0LWJzZi1yZWR1bmRhbnQtcHBzLXNpZGUtZGF0YSAgfCAgNCArKy0tCiB0ZXN0cy9yZWYv ZmF0ZS9oMjY0LWJzZi1yZWR1bmRhbnQtcHBzLXNpZGUtZGF0YTIgfCAgNCArKy0tCiB0ZXN0cy9y ZWYvZmF0ZS9tYXRyb3NrYS1hbGFjLXJlbXV4ICAgICAgICAgICAgICAgfCAgNCArKy0tCiB0ZXN0 cy9yZWYvZmF0ZS9tYXRyb3NrYS1kb3ZpLXdyaXRlLWNvbmZpZzcgICAgICAgfCAgNCArKy0tCiB0 ZXN0cy9yZWYvZmF0ZS9tb3YtbXA0LWlhbWYtNV8xXzQgICAgICAgICAgICAgICAgfCAgMiAtLQog dGVzdHMvcmVmL2ZhdGUvbW92LW1wNC1pYW1mLTdfMV80LXZpZGVvLWZpcnN0ICAgIHwgIDIgLS0K IHRlc3RzL3JlZi9mYXRlL21vdi1tcDQtaWFtZi03XzFfNC12aWRlby1sYXN0ICAgICB8ICAyIC0t CiB0ZXN0cy9yZWYvZmF0ZS9tb3YtbXA0LWlhbWYtYW1iaXNvbmljXzEgICAgICAgICAgfCAgMiAt LQogdGVzdHMvcmVmL2ZhdGUvbW92LW1wNC1pYW1mLXN0ZXJlbyAgICAgICAgICAgICAgIHwgIDIg LS0KIDEwIGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L21vdi5jIGIvbGliYXZmb3JtYXQvbW92LmMKaW5kZXgg NzIxZmZkY2NhMC4uMTI2MTdlMGViYSAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvbW92LmMKKysr IGIvbGliYXZmb3JtYXQvbW92LmMKQEAgLTI2NzgsMTIgKzI2NzgsMTggQEAgc3RhdGljIHZvaWQg bW92X3BhcnNlX3N0c2RfdmlkZW8oTU9WQ29udGV4dCAqYywgQVZJT0NvbnRleHQgKnBiLAogICAg ICAqIHJlYWQgaW4gZmZfbW92X3JlYWRfc3RzZF9lbnRyaWVzKCkgKi8KICAgICBzdHNkX3N0YXJ0 ID0gYXZpb190ZWxsKHBiKSAtIDE2OwogCisgICAgaWYgKGMtPmlzb20pIHsKKyAgICAgICAgYXZp b19za2lwKHBiLCAyKTsgIC8qIHByZV9kZWZpbmVkICovCisgICAgICAgIGF2aW9fc2tpcChwYiwg Mik7ICAvKiByZXNlcnZlZCAqLworICAgICAgICBhdmlvX3NraXAocGIsIDEyKTsgLyogcHJlX2Rl ZmluZWQgKi8KKyAgICB9IGVsc2UgewogICAgIGF2aW9fcmIxNihwYik7IC8qIHZlcnNpb24gKi8K ICAgICBhdmlvX3JiMTYocGIpOyAvKiByZXZpc2lvbiBsZXZlbCAqLwogICAgIGlkID0gYXZpb19y bDMyKHBiKTsgLyogdmVuZG9yICovCiAgICAgYXZfZGljdF9zZXQoJnN0LT5tZXRhZGF0YSwgInZl bmRvcl9pZCIsIGF2X2ZvdXJjYzJzdHIoaWQpLCAwKTsKICAgICBhdmlvX3JiMzIocGIpOyAvKiB0 ZW1wb3JhbCBxdWFsaXR5ICovCiAgICAgYXZpb19yYjMyKHBiKTsgLyogc3BhdGlhbCBxdWFsaXR5 ICovCisgICAgfQogCiAgICAgc3QtPmNvZGVjcGFyLT53aWR0aCAgPSBhdmlvX3JiMTYocGIpOyAv KiB3aWR0aCAqLwogICAgIHN0LT5jb2RlY3Bhci0+aGVpZ2h0ID0gYXZpb19yYjE2KHBiKTsgLyog aGVpZ2h0ICovCkBAIC0yNzMzLDkgKzI3MzksMTMgQEAgc3RhdGljIHZvaWQgbW92X3BhcnNlX3N0 c2RfYXVkaW8oTU9WQ29udGV4dCAqYywgQVZJT0NvbnRleHQgKnBiLAogICAgIEFWRGljdGlvbmFy eUVudHJ5ICpjb21wYXRpYmxlX2JyYW5kcyA9IGF2X2RpY3RfZ2V0KGMtPmZjLT5tZXRhZGF0YSwg ImNvbXBhdGlibGVfYnJhbmRzIiwgTlVMTCwgQVZfRElDVF9NQVRDSF9DQVNFKTsKICAgICBpbnQg Y2hhbm5lbF9jb3VudDsKIAorICAgIGlmIChjLT5pc29tKQorICAgICAgICBhdmlvX3NraXAocGIs IDYpOyAvKiByZXNlcnZlZCAqLworICAgIGVsc2UgewogICAgIGF2aW9fcmIxNihwYik7IC8qIHJl dmlzaW9uIGxldmVsICovCiAgICAgaWQgPSBhdmlvX3JsMzIocGIpOyAvKiB2ZW5kb3IgKi8KICAg ICBhdl9kaWN0X3NldCgmc3QtPm1ldGFkYXRhLCAidmVuZG9yX2lkIiwgYXZfZm91cmNjMnN0cihp ZCksIDApOworICAgIH0KIAogICAgIGNoYW5uZWxfY291bnQgPSBhdmlvX3JiMTYocGIpOwogCmRp ZmYgLS1naXQgYS90ZXN0cy9yZWYvZmF0ZS9oMjY0LWJzZi1yZWR1bmRhbnQtcHBzLXNpZGUtZGF0 YSBiL3Rlc3RzL3JlZi9mYXRlL2gyNjQtYnNmLXJlZHVuZGFudC1wcHMtc2lkZS1kYXRhCmluZGV4 IGNlY2JlMWFjZjkuLmRhMjdjM2ZlNTkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3JlZi9mYXRlL2gyNjQt YnNmLXJlZHVuZGFudC1wcHMtc2lkZS1kYXRhCisrKyBiL3Rlc3RzL3JlZi9mYXRlL2gyNjQtYnNm LXJlZHVuZGFudC1wcHMtc2lkZS1kYXRhCkBAIC0xLDUgKzEsNSBAQAotOTJmZTcwMjkxZjcyYWNm OTRiYTU2YjQyNmJiYWNjYjAgKnRlc3RzL2RhdGEvZmF0ZS9oMjY0LWJzZi1yZWR1bmRhbnQtcHBz LXNpZGUtZGF0YS5udXQKLTU5NjEwMCB0ZXN0cy9kYXRhL2ZhdGUvaDI2NC1ic2YtcmVkdW5kYW50 LXBwcy1zaWRlLWRhdGEubnV0CisxOGM2NGVjNmI0ZjBjYzM5YzVmOGYzNTY0YjM3MmZlZiAqdGVz dHMvZGF0YS9mYXRlL2gyNjQtYnNmLXJlZHVuZGFudC1wcHMtc2lkZS1kYXRhLm51dAorNTk2MDg0 IHRlc3RzL2RhdGEvZmF0ZS9oMjY0LWJzZi1yZWR1bmRhbnQtcHBzLXNpZGUtZGF0YS5udXQKICNl eHRyYWRhdGEgMDogICAgICAgMzQsIDB4ODUwNDA4ZTMKICN0YiAwOiAxLzQ4MDAwCiAjbWVkaWFf dHlwZSAwOiB2aWRlbwpkaWZmIC0tZ2l0IGEvdGVzdHMvcmVmL2ZhdGUvaDI2NC1ic2YtcmVkdW5k YW50LXBwcy1zaWRlLWRhdGEyIGIvdGVzdHMvcmVmL2ZhdGUvaDI2NC1ic2YtcmVkdW5kYW50LXBw cy1zaWRlLWRhdGEyCmluZGV4IDJhNDgzMTQ0ZTcuLjk5OTE4YjgwZTQgMTAwNjQ0Ci0tLSBhL3Rl c3RzL3JlZi9mYXRlL2gyNjQtYnNmLXJlZHVuZGFudC1wcHMtc2lkZS1kYXRhMgorKysgYi90ZXN0 cy9yZWYvZmF0ZS9oMjY0LWJzZi1yZWR1bmRhbnQtcHBzLXNpZGUtZGF0YTIKQEAgLTEsNSArMSw1 IEBACi1kZDk1M2Y4ZDk1ZDI5Mjc3MDNjZTk1OTNhMDdmZTJlNyAqdGVzdHMvZGF0YS9mYXRlL2gy NjQtYnNmLXJlZHVuZGFudC1wcHMtc2lkZS1kYXRhMi5udXQKLTUxNjIgdGVzdHMvZGF0YS9mYXRl L2gyNjQtYnNmLXJlZHVuZGFudC1wcHMtc2lkZS1kYXRhMi5udXQKK2Y5NGVkMmMyNWI2YmJlNjMx NjA3NDNmMDhkZTMzNjY1ICp0ZXN0cy9kYXRhL2ZhdGUvaDI2NC1ic2YtcmVkdW5kYW50LXBwcy1z aWRlLWRhdGEyLm51dAorNTEzOCB0ZXN0cy9kYXRhL2ZhdGUvaDI2NC1ic2YtcmVkdW5kYW50LXBw cy1zaWRlLWRhdGEyLm51dAogI3RiIDA6IDEvMjUKICNtZWRpYV90eXBlIDA6IHZpZGVvCiAjY29k ZWNfaWQgMDogcmF3dmlkZW8KZGlmZiAtLWdpdCBhL3Rlc3RzL3JlZi9mYXRlL21hdHJvc2thLWFs YWMtcmVtdXggYi90ZXN0cy9yZWYvZmF0ZS9tYXRyb3NrYS1hbGFjLXJlbXV4CmluZGV4IDliNzMy NjNhY2QuLjFlN2E1YjRjOGUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3JlZi9mYXRlL21hdHJvc2thLWFs YWMtcmVtdXgKKysrIGIvdGVzdHMvcmVmL2ZhdGUvbWF0cm9za2EtYWxhYy1yZW11eApAQCAtMSw1 ICsxLDUgQEAKLTkwYzU0YTAwYWQ4NjYyYzNlYjkzMTUwNzkxZmE4MzI4ICp0ZXN0cy9kYXRhL2Zh dGUvbWF0cm9za2EtYWxhYy1yZW11eC5tYXRyb3NrYQotMTI5MzgyNCB0ZXN0cy9kYXRhL2ZhdGUv bWF0cm9za2EtYWxhYy1yZW11eC5tYXRyb3NrYQorNjA3NWViMzVmNTM2OTI1OTYxOTRmM2IwMTc1 Y2IxODQgKnRlc3RzL2RhdGEvZmF0ZS9tYXRyb3NrYS1hbGFjLXJlbXV4Lm1hdHJvc2thCisxMjkz Nzk0IHRlc3RzL2RhdGEvZmF0ZS9tYXRyb3NrYS1hbGFjLXJlbXV4Lm1hdHJvc2thCiAjZXh0cmFk YXRhIDA6ICAgICAgIDM2LCAweDU2MmIwNWQ4CiAjdGIgMDogMS8xMDAwCiAjbWVkaWFfdHlwZSAw OiBhdWRpbwpkaWZmIC0tZ2l0IGEvdGVzdHMvcmVmL2ZhdGUvbWF0cm9za2EtZG92aS13cml0ZS1j b25maWc3IGIvdGVzdHMvcmVmL2ZhdGUvbWF0cm9za2EtZG92aS13cml0ZS1jb25maWc3CmluZGV4 IDVmM2UwMDAyNzkuLmVkYjY3NTdjNjggMTAwNjQ0Ci0tLSBhL3Rlc3RzL3JlZi9mYXRlL21hdHJv c2thLWRvdmktd3JpdGUtY29uZmlnNworKysgYi90ZXN0cy9yZWYvZmF0ZS9tYXRyb3NrYS1kb3Zp LXdyaXRlLWNvbmZpZzcKQEAgLTEsNSArMSw1IEBACi03YWRlZjUzZGY5ZTE0MzU4ZTBiOTlmOGE4 MjllMmQ5NyAqdGVzdHMvZGF0YS9mYXRlL21hdHJvc2thLWRvdmktd3JpdGUtY29uZmlnNy5tYXRy b3NrYQotNzI3MDAgdGVzdHMvZGF0YS9mYXRlL21hdHJvc2thLWRvdmktd3JpdGUtY29uZmlnNy5t YXRyb3NrYQorYWRhZmJiNGQwMjFkYjAyN2Y0YWU0ZWY3Y2ExYzU2YzIgKnRlc3RzL2RhdGEvZmF0 ZS9tYXRyb3NrYS1kb3ZpLXdyaXRlLWNvbmZpZzcubWF0cm9za2EKKzcyNjQwIHRlc3RzL2RhdGEv ZmF0ZS9tYXRyb3NrYS1kb3ZpLXdyaXRlLWNvbmZpZzcubWF0cm9za2EKICNleHRyYWRhdGEgMDog ICAgICAxMTYsIDB4MmI4ZDE2NjkKICNleHRyYWRhdGEgMTogICAgICAxMTYsIDB4MmI4ZDE2NjkK ICN0YiAwOiAxLzEwMDAKZGlmZiAtLWdpdCBhL3Rlc3RzL3JlZi9mYXRlL21vdi1tcDQtaWFtZi01 XzFfNCBiL3Rlc3RzL3JlZi9mYXRlL21vdi1tcDQtaWFtZi01XzFfNAppbmRleCAxOGExZjUzMzdm Li45ZWFhNWVlNDJkIDEwMDY0NAotLS0gYS90ZXN0cy9yZWYvZmF0ZS9tb3YtbXA0LWlhbWYtNV8x XzQKKysrIGIvdGVzdHMvcmVmL2ZhdGUvbW92LW1wNC1pYW1mLTVfMV80CkBAIC0xNjAsNyArMTYw LDYgQEAgRElTUE9TSVRJT046c3RpbGxfaW1hZ2U9MAogRElTUE9TSVRJT046bXVsdGlsYXllcj0w CiBUQUc6bGFuZ3VhZ2U9dW5kCiBUQUc6aGFuZGxlcl9uYW1lPVNvdW5kSGFuZGxlcgotVEFHOnZl bmRvcl9pZD1bMF1bMF1bMF1bMF0KIFtTVFJFQU1dCiBpbmRleD0wCiBpZD0weDAKQEAgLTM5NSw3 ICszOTQsNiBAQCBESVNQT1NJVElPTjpzdGlsbF9pbWFnZT0wCiBESVNQT1NJVElPTjptdWx0aWxh eWVyPTAKIFRBRzpsYW5ndWFnZT11bmQKIFRBRzpoYW5kbGVyX25hbWU9U291bmRIYW5kbGVyCi1U QUc6dmVuZG9yX2lkPVswXVswXVswXVswXQogW1NUUkVBTV0KIGluZGV4PTAKIGlkPTB4MApkaWZm IC0tZ2l0IGEvdGVzdHMvcmVmL2ZhdGUvbW92LW1wNC1pYW1mLTdfMV80LXZpZGVvLWZpcnN0IGIv dGVzdHMvcmVmL2ZhdGUvbW92LW1wNC1pYW1mLTdfMV80LXZpZGVvLWZpcnN0CmluZGV4IGQ1YTFm ZTFjYWQuLjU1Y2FkYjNkMDIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3JlZi9mYXRlL21vdi1tcDQtaWFt Zi03XzFfNC12aWRlby1maXJzdAorKysgYi90ZXN0cy9yZWYvZmF0ZS9tb3YtbXA0LWlhbWYtN18x XzQtdmlkZW8tZmlyc3QKQEAgLTIwNyw3ICsyMDcsNiBAQCBESVNQT1NJVElPTjpzdGlsbF9pbWFn ZT0wCiBESVNQT1NJVElPTjptdWx0aWxheWVyPTAKIFRBRzpsYW5ndWFnZT11bmQKIFRBRzpoYW5k bGVyX25hbWU9U291bmRIYW5kbGVyCi1UQUc6dmVuZG9yX2lkPVswXVswXVswXVswXQogW1NUUkVB TV0KIGluZGV4PTEKIGlkPTB4MgpAQCAtNDY1LDcgKzQ2NCw2IEBAIERJU1BPU0lUSU9OOnN0aWxs X2ltYWdlPTAKIERJU1BPU0lUSU9OOm11bHRpbGF5ZXI9MAogVEFHOmxhbmd1YWdlPXVuZAogVEFH OmhhbmRsZXJfbmFtZT1Tb3VuZEhhbmRsZXIKLVRBRzp2ZW5kb3JfaWQ9WzBdWzBdWzBdWzBdCiBb U1RSRUFNXQogaW5kZXg9MQogaWQ9MHgyCmRpZmYgLS1naXQgYS90ZXN0cy9yZWYvZmF0ZS9tb3Yt bXA0LWlhbWYtN18xXzQtdmlkZW8tbGFzdCBiL3Rlc3RzL3JlZi9mYXRlL21vdi1tcDQtaWFtZi03 XzFfNC12aWRlby1sYXN0CmluZGV4IGNhZjg5ZDQxZjYuLjgwYzkyNGM4MjEgMTAwNjQ0Ci0tLSBh L3Rlc3RzL3JlZi9mYXRlL21vdi1tcDQtaWFtZi03XzFfNC12aWRlby1sYXN0CisrKyBiL3Rlc3Rz L3JlZi9mYXRlL21vdi1tcDQtaWFtZi03XzFfNC12aWRlby1sYXN0CkBAIC0yMDcsNyArMjA3LDYg QEAgRElTUE9TSVRJT046c3RpbGxfaW1hZ2U9MAogRElTUE9TSVRJT046bXVsdGlsYXllcj0wCiBU QUc6bGFuZ3VhZ2U9dW5kCiBUQUc6aGFuZGxlcl9uYW1lPVNvdW5kSGFuZGxlcgotVEFHOnZlbmRv cl9pZD1bMF1bMF1bMF1bMF0KIFtTVFJFQU1dCiBpbmRleD0wCiBpZD0weDkKQEAgLTQ2NSw3ICs0 NjQsNiBAQCBESVNQT1NJVElPTjpzdGlsbF9pbWFnZT0wCiBESVNQT1NJVElPTjptdWx0aWxheWVy PTAKIFRBRzpsYW5ndWFnZT11bmQKIFRBRzpoYW5kbGVyX25hbWU9U291bmRIYW5kbGVyCi1UQUc6 dmVuZG9yX2lkPVswXVswXVswXVswXQogW1NUUkVBTV0KIGluZGV4PTAKIGlkPTB4OQpkaWZmIC0t Z2l0IGEvdGVzdHMvcmVmL2ZhdGUvbW92LW1wNC1pYW1mLWFtYmlzb25pY18xIGIvdGVzdHMvcmVm L2ZhdGUvbW92LW1wNC1pYW1mLWFtYmlzb25pY18xCmluZGV4IGQwODc3ZjczYzcuLmI2ZjE0MDk5 YzMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3JlZi9mYXRlL21vdi1tcDQtaWFtZi1hbWJpc29uaWNfMQor KysgYi90ZXN0cy9yZWYvZmF0ZS9tb3YtbXA0LWlhbWYtYW1iaXNvbmljXzEKQEAgLTk5LDcgKzk5 LDYgQEAgRElTUE9TSVRJT046c3RpbGxfaW1hZ2U9MAogRElTUE9TSVRJT046bXVsdGlsYXllcj0w CiBUQUc6bGFuZ3VhZ2U9dW5kCiBUQUc6aGFuZGxlcl9uYW1lPVNvdW5kSGFuZGxlcgotVEFHOnZl bmRvcl9pZD1bMF1bMF1bMF1bMF0KIFtTVFJFQU1dCiBpbmRleD0wCiBpZD0weDAKQEAgLTI2NCw3 ICsyNjMsNiBAQCBESVNQT1NJVElPTjpzdGlsbF9pbWFnZT0wCiBESVNQT1NJVElPTjptdWx0aWxh eWVyPTAKIFRBRzpsYW5ndWFnZT11bmQKIFRBRzpoYW5kbGVyX25hbWU9U291bmRIYW5kbGVyCi1U QUc6dmVuZG9yX2lkPVswXVswXVswXVswXQogW1NUUkVBTV0KIGluZGV4PTAKIGlkPTB4MApkaWZm IC0tZ2l0IGEvdGVzdHMvcmVmL2ZhdGUvbW92LW1wNC1pYW1mLXN0ZXJlbyBiL3Rlc3RzL3JlZi9m YXRlL21vdi1tcDQtaWFtZi1zdGVyZW8KaW5kZXggY2E4ZjZhNzZmNS4uODVlNmUzZWZiYiAxMDA2 NDQKLS0tIGEvdGVzdHMvcmVmL2ZhdGUvbW92LW1wNC1pYW1mLXN0ZXJlbworKysgYi90ZXN0cy9y ZWYvZmF0ZS9tb3YtbXA0LWlhbWYtc3RlcmVvCkBAIC01Miw3ICs1Miw2IEBAIERJU1BPU0lUSU9O OnN0aWxsX2ltYWdlPTAKIERJU1BPU0lUSU9OOm11bHRpbGF5ZXI9MAogVEFHOmxhbmd1YWdlPXVu ZAogVEFHOmhhbmRsZXJfbmFtZT1Tb3VuZEhhbmRsZXIKLVRBRzp2ZW5kb3JfaWQ9WzBdWzBdWzBd WzBdCiBbU1RSRUFNXQogaW5kZXg9MAogaWQ9MHgwCkBAIC0xODcsNyArMTg2LDYgQEAgRElTUE9T SVRJT046c3RpbGxfaW1hZ2U9MAogRElTUE9TSVRJT046bXVsdGlsYXllcj0wCiBUQUc6bGFuZ3Vh Z2U9dW5kCiBUQUc6aGFuZGxlcl9uYW1lPVNvdW5kSGFuZGxlcgotVEFHOnZlbmRvcl9pZD1bMF1b MF1bMF1bMF0KIFtTVFJFQU1dCiBpbmRleD0wCiBpZD0weDAKLS0gCjIuNTIuMAoKCkZyb20gMzFh MWZkMDAxOTA1ODcxMjBlMGZhZTIxOTAyMTQzZjdlOWEwYmZlZSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogWmhhbyBaaGlsaSA8emhpbGl6aGFvQHRlbmNlbnQuY29tPgpEYXRlOiBGcmks IDIxIE5vdiAyMDI1IDIwOjQzOjU2ICswODAwClN1YmplY3Q6IFtQQVRDSCAwNDMvMzA0XSBhdmZv cm1hdC9tb3Y6IGZpeCBpbmNvcnJlY3Qgc2FtcGxlIHJhdGUgYnkgcGFyc2Ugc3JhdAogYm94Cgot LS0KIGxpYmF2Zm9ybWF0L21vdi5jIHwgMzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKIDEgZmlsZSBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbGli YXZmb3JtYXQvbW92LmMgYi9saWJhdmZvcm1hdC9tb3YuYwppbmRleCAxMjYxN2UwZWJhLi4xMWU2 MDBkODYxIDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9tb3YuYworKysgYi9saWJhdmZvcm1hdC9t b3YuYwpAQCAtMTA3NSw2ICsxMDc1LDQwIEBAIGZhaWw6CiB9CiAjZW5kaWYKIAorc3RhdGljIGlu dCBtb3ZfcmVhZF9zcmF0KE1PVkNvbnRleHQgKmMsIEFWSU9Db250ZXh0ICpwYiwgTU9WQXRvbSBh dG9tKQoreworICAgIEFWU3RyZWFtICpzdDsKKyAgICBpbnQzMl90IHNhbXBsZV9yYXRlOworCisg ICAgaWYgKGF0b20uc2l6ZSA8IDggfHwgYy0+ZmMtPm5iX3N0cmVhbXMgPCAxKQorICAgICAgICBy ZXR1cm4gMDsKKworICAgIHN0ID0gYy0+ZmMtPnN0cmVhbXNbYy0+ZmMtPm5iX3N0cmVhbXMtMV07 CisgICAgaWYgKHN0LT5jb2RlY3Bhci0+Y29kZWNfdHlwZSAhPSBBVk1FRElBX1RZUEVfQVVESU8p IHsKKyAgICAgICAgYXZfbG9nKGMtPmZjLCBBVl9MT0dfV0FSTklORywgIidzcmF0JyB3aXRoaW4g bm9uLWF1ZGlvIHNhbXBsZSBlbnRyeSwgc2tpcFxuIik7CisgICAgICAgIHJldHVybiAwOworICAg IH0KKworICAgIGlmICghYy0+aXNvbSkgeworICAgICAgICBhdl9sb2coYy0+ZmMsIEFWX0xPR19X QVJOSU5HLCAiJ3NyYXQnIHdpdGhpbiBub24taXNvbSwgc2tpcFxuIik7CisgICAgICAgIHJldHVy biAwOworICAgIH0KKworICAgIGF2aW9fc2tpcChwYiwgNCk7IC8vIHZlcnNpb24rZmxhZ3MKKyAg ICBzYW1wbGVfcmF0ZSA9IGF2aW9fcmIzMihwYik7CisgICAgaWYgKHNhbXBsZV9yYXRlID4gMCkg eworICAgICAgICBhdl9sb2coYy0+ZmMsIEFWX0xPR19ERUJVRywKKyAgICAgICAgICAgICAgICJv dmVyd3JpdGUgc2FtcGxlIHJhdGUgZnJvbSAlZCB0byAlZCBieSAnc3JhdCdcbiIsCisgICAgICAg ICAgICAgICBzdC0+Y29kZWNwYXItPnNhbXBsZV9yYXRlLCBzYW1wbGVfcmF0ZSk7CisgICAgICAg IHN0LT5jb2RlY3Bhci0+c2FtcGxlX3JhdGUgPSBzYW1wbGVfcmF0ZTsKKyAgICB9IGVsc2Ugewor ICAgICAgICBhdl9sb2coYy0+ZmMsIEFWX0xPR19XQVJOSU5HLAorICAgICAgICAgICAgICAgImln bm9yZSBpbnZhbGlkIHNhbXBsZSByYXRlICVkIGluICdzcmF0J1xuIiwgc2FtcGxlX3JhdGUpOwor ICAgIH0KKworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgaW50IG1vdl9yZWFkX2RlYzMoTU9W Q29udGV4dCAqYywgQVZJT0NvbnRleHQgKnBiLCBNT1ZBdG9tIGF0b20pCiB7CiAgICAgQVZTdHJl YW0gKnN0OwpAQCAtOTQ5MCw2ICs5NTI0LDcgQEAgc3RhdGljIGNvbnN0IE1PVlBhcnNlVGFibGVF bnRyeSBtb3ZfZGVmYXVsdF9wYXJzZV90YWJsZVtdID0gewogI2lmIENPTkZJR19JQU1GREVDCiB7 IE1LVEFHKCdpJywnYScsJ2MnLCdiJyksIG1vdl9yZWFkX2lhY2IgfSwKICNlbmRpZgoreyBNS1RB RygncycsJ3InLCdhJywndCcpLCBtb3ZfcmVhZF9zcmF0IH0sCiB7IDAsIE5VTEwgfQogfTsKIAot LSAKMi41Mi4wCgoKRnJvbSBiYjU1MTIwM2Y4NDE3OTRhY2MwMGExMTg3ZThiYWJiMTAwZDhiODdl IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEbWl0cmlpIE9rdW5ldiA8eGFpb25hcm9A ZHguY2VudGVyPgpEYXRlOiBTYXQsIDIyIE5vdiAyMDI1IDE5OjU3OjE5ICswMDAwClN1YmplY3Q6 IFtQQVRDSCAwNDQvMzA0XSBmZnRvb2xzOiBGaXggTWVkaWFDb2RlYyBvbiBBbmRyb2lkMTUrCgpP biBBbmRyb2lkMTUrIE1lZGlhQ29kZWMgSEFMIGJhY2tlbmQgd2FzIHN3aXRjaGVkIGZyb20gSElE TCB0byBBSURMLgpBcyBhIHJlc3VsdCwgTWVkaWFDb2RlYyBvcGVyYXRpb25zIHN0YXJ0ZWQgdG8g aGFuZywgc2VlOgoKICAgIGh0dHBzOi8vdHJhYy5mZm1wZWcub3JnL3RpY2tldC8xMTM2MwogICAg aHR0cHM6Ly9naXRodWIuY29tL3Rlcm11eC90ZXJtdXgtcGFja2FnZXMvaXNzdWVzLzIxMjY0CiAg ICBodHRwczovL2lzc3VldHJhY2tlci5nb29nbGUuY29tL2lzc3Vlcy8zODI4MzE5OTkKClRvIGZp eCB0aGF0IGl0IGlzIG5lY2Vzc2FyeSB0byBpbml0aWFsaXplIGJpbmRlciB0aHJlYWQgcG9vbC4K ClNpZ25lZC1vZmYtYnk6IERtaXRyaWkgT2t1bmV2IDx4YWlvbmFyb0BkeC5jZW50ZXI+Ci0tLQog Y29tcGF0L2FuZHJvaWQvYmluZGVyLmMgfCAxMTQgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogY29tcGF0L2FuZHJvaWQvYmluZGVyLmggfCAgMzEgKysrKysrKysrKysK IGNvbmZpZ3VyZSAgICAgICAgICAgICAgIHwgICAzICstCiBmZnRvb2xzL01ha2VmaWxlICAgICAg ICB8ICAgMSArCiBmZnRvb2xzL2ZmbXBlZy5jICAgICAgICB8ICAgNyArKysKIDUgZmlsZXMgY2hh bmdlZCwgMTU1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBjb21wYXQvYW5kcm9pZC9iaW5kZXIuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbXBhdC9hbmRy b2lkL2JpbmRlci5oCgpkaWZmIC0tZ2l0IGEvY29tcGF0L2FuZHJvaWQvYmluZGVyLmMgYi9jb21w YXQvYW5kcm9pZC9iaW5kZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw Li5hMjE0ZDk3N2NjCi0tLSAvZGV2L251bGwKKysrIGIvY29tcGF0L2FuZHJvaWQvYmluZGVyLmMK QEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBBbmRyb2lkIEJpbmRlciBoYW5kbGVyCisgKgorICog Q29weXJpZ2h0IChjKSAyMDI1IERtaXRyaWkgT2t1bmV2CisgKgorICogVGhpcyBmaWxlIGlzIHBh cnQgb2YgRkZtcGVnLgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhl IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog RkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRo IEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlv biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjEx MC0xMzAxIFVTQQorICovCisKKworI2lmIGRlZmluZWQoX19BTkRST0lEX18pCisKKyNpbmNsdWRl IDxkbGZjbi5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCisj aW5jbHVkZSAibGliYXZ1dGlsL2xvZy5oIgorI2luY2x1ZGUgImJpbmRlci5oIgorCisjZGVmaW5l IFRIUkVBRF9QT09MX1NJWkUgMQorCitzdGF0aWMgdm9pZCAqZGxvcGVuX2xpYmJpbmRlcl9uZGso dm9pZCkKK3sKKyAgICAvKgorICAgICAqIGxpYmJpbmRlcl9uZGsuc28gb2Z0ZW4gZG9lcyBub3Qg Y29udGFpbiB0aGUgZnVuY3Rpb25zIHdlIG5lZWQsIHNvIG1ha2luZworICAgICAqIHRoaXMgZGVw ZW5kZW5jeSBvcHRpb25hbCwgdGh1cyB1c2luZyBkbG9wZW4vZGxzeW0gaW5zdGVhZCBvZiBsaW5r aW5nLgorICAgICAqCisgICAgICogU2VlIGFsc286IGh0dHBzOi8vc291cmNlLmFuZHJvaWQuY29t L2RvY3MvY29yZS9hcmNoaXRlY3R1cmUvYWlkbC9haWRsLWJhY2tlbmRzCisgICAgICovCisKKyAg ICB2b2lkICpoID0gZGxvcGVuKCJsaWJiaW5kZXJfbmRrLnNvIiwgUlRMRF9OT1cgfCBSVExEX0xP Q0FMKTsKKyAgICBpZiAoaCAhPSBOVUxMKQorICAgICAgICByZXR1cm4gaDsKKworICAgIGF2X2xv ZyhOVUxMLCBBVl9MT0dfV0FSTklORywKKyAgICAgICAgICAgImFuZHJvaWQvYmluZGVyOiB1bmFi bGUgdG8gbG9hZCBsaWJiaW5kZXJfbmRrLnNvOiAnJXMnOyBza2lwcGluZyBiaW5kZXIgdGhyZWFk cG9vbCBpbml0IChNZWRpYUNvZGVjIGxpa2VseSB3b24ndCB3b3JrKVxuIiwKKyAgICAgICAgICAg ZGxlcnJvcigpKTsKKyAgICByZXR1cm4gTlVMTDsKK30KKworc3RhdGljIHZvaWQgYW5kcm9pZF9i aW5kZXJfdGhyZWFkcG9vbF9pbml0KHZvaWQpCit7CisgICAgdHlwZWRlZiBpbnQgKCpzZXRfdGhy ZWFkX3Bvb2xfbWF4X2ZuKSh1aW50MzJfdCk7CisgICAgdHlwZWRlZiB2b2lkICgqc3RhcnRfdGhy ZWFkX3Bvb2xfZm4pKHZvaWQpOworCisgICAgc2V0X3RocmVhZF9wb29sX21heF9mbiBzZXRfdGhy ZWFkX3Bvb2xfbWF4ID0gTlVMTDsKKyAgICBzdGFydF90aHJlYWRfcG9vbF9mbiBzdGFydF90aHJl YWRfcG9vbCA9IE5VTEw7CisKKyAgICB2b2lkICpoID0gZGxvcGVuX2xpYmJpbmRlcl9uZGsoKTsK KyAgICBpZiAoaCA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisKKyAgICB1bnNpZ25lZCB0aGVh ZF9wb29sX3NpemUgPSBUSFJFQURfUE9PTF9TSVpFOworCisgICAgc2V0X3RocmVhZF9wb29sX21h eCA9CisgICAgICAgIChzZXRfdGhyZWFkX3Bvb2xfbWF4X2ZuKSBkbHN5bShoLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFCaW5kZXJQcm9jZXNzX3NldFRocmVhZFBv b2xNYXhUaHJlYWRDb3VudCIpOworICAgIHN0YXJ0X3RocmVhZF9wb29sID0KKyAgICAgICAgKHN0 YXJ0X3RocmVhZF9wb29sX2ZuKSBkbHN5bShoLCAiQUJpbmRlclByb2Nlc3Nfc3RhcnRUaHJlYWRQ b29sIik7CisKKyAgICBpZiAoc3RhcnRfdGhyZWFkX3Bvb2wgPT0gTlVMTCkgeworICAgICAgICBh dl9sb2coTlVMTCwgQVZfTE9HX1dBUk5JTkcsCisgICAgICAgICAgICAgICAiYW5kcm9pZC9iaW5k ZXI6IEFCaW5kZXJQcm9jZXNzX3N0YXJ0VGhyZWFkUG9vbCBub3QgZm91bmQ7IHNraXBwaW5nIHRo cmVhZHBvb2wgaW5pdCAoTWVkaWFDb2RlYyBsaWtlbHkgd29uJ3Qgd29yaylcbiIpOworICAgICAg ICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHNldF90aHJlYWRfcG9vbF9tYXggIT0gTlVMTCkg eworICAgICAgICBpbnQgb2sgPSBzZXRfdGhyZWFkX3Bvb2xfbWF4KHRoZWFkX3Bvb2xfc2l6ZSk7 CisgICAgICAgIGF2X2xvZyhOVUxMLCBBVl9MT0dfREVCVUcsCisgICAgICAgICAgICAgICAiYW5k cm9pZC9iaW5kZXI6IEFCaW5kZXJQcm9jZXNzX3NldFRocmVhZFBvb2xNYXhUaHJlYWRDb3VudCgl dSkgPT4gJXNcbiIsCisgICAgICAgICAgICAgICB0aGVhZF9wb29sX3NpemUsIG9rID8gIm9rIiA6 ICJmYWlsIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19ERUJV RywKKyAgICAgICAgICAgICAgICJhbmRyb2lkL2JpbmRlcjogQUJpbmRlclByb2Nlc3Nfc2V0VGhy ZWFkUG9vbE1heFRocmVhZENvdW50IGlzIHVuYXZhaWxhYmxlOyB1c2luZyB0aGUgbGlicmFyeSBk ZWZhdWx0XG4iKTsKKyAgICB9CisKKyAgICBzdGFydF90aHJlYWRfcG9vbCgpOworICAgIGF2X2xv ZyhOVUxMLCBBVl9MT0dfREVCVUcsCisgICAgICAgICAgICJhbmRyb2lkL2JpbmRlcjogQUJpbmRl clByb2Nlc3Nfc3RhcnRUaHJlYWRQb29sKCkgY2FsbGVkXG4iKTsKK30KKwordm9pZCBhbmRyb2lk X2JpbmRlcl90aHJlYWRwb29sX2luaXRfaWZfcmVxdWlyZWQodm9pZCkKK3sKKyNpZiBfX0FORFJP SURfQVBJX18gPj0gMjQKKyAgICBpZiAoYW5kcm9pZF9nZXRfZGV2aWNlX2FwaV9sZXZlbCgpIDwg MzUpIHsKKyAgICAgICAgLy8gdGhlIGlzc3VlIHdpdGggdGhlIHRocmVhZCBwb29sIHdhcyBpbnRy b2R1Y2VkIGluIEFuZHJvaWQgMTUgKEFQSSAzNSkKKyAgICAgICAgYXZfbG9nKE5VTEwsIEFWX0xP R19ERUJVRywKKyAgICAgICAgICAgICAgICJhbmRyb2lkL2JpbmRlcjogQVBJPDM1LCB0aHVzIG5v IG5lZWQgdG8gaW5pdGlhbGl6ZSBhIHRocmVhZCBwb29sXG4iKTsKKyAgICAgICAgcmV0dXJuOwor ICAgIH0KKyAgICBhbmRyb2lkX2JpbmRlcl90aHJlYWRwb29sX2luaXQoKTsKKyNlbHNlCisgICAg Ly8gYW5kcm9pZF9nZXRfZGV2aWNlX2FwaV9sZXZlbCB3YXMgaW50cm9kdWNlZCBpbiBBUEkgMjQs IHNvIHdlIGNhbm5vdCB1c2UgaXQKKyAgICAvLyB0byBkZXRlY3QgdGhlIEFQSSBsZXZlbCBpbiBB UEk8MjQuIEZvciBzaW1wbGljaXR5IHdlIGp1c3QgYXNzdW1lCisgICAgLy8gbGliYmluZGVyX25k ay5zbyBvbiB0aGUgc3lzdGVtIHJ1bm5pbmcgdGhpcyBjb2RlIHdvdWxkIGhhdmUgQVBJIGxldmVs IDwgMzU7CisgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19ERUJVRywKKyAgICAgICAgICAgImFuZHJv aWQvYmluZGVyOiBpcyBidWlsdCB3aXRoIEFQSTwyNCwgYXNzdW1pbmcgdGhpcyBpcyBub3QgQW5k cm9pZCAxNStcbiIpOworI2VuZGlmCit9CisKKyNlbmRpZiAgICAgICAgICAgICAgICAgICAgICAg ICAgLyogX19BTkRST0lEX18gKi8KZGlmZiAtLWdpdCBhL2NvbXBhdC9hbmRyb2lkL2JpbmRlci5o IGIvY29tcGF0L2FuZHJvaWQvYmluZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMC4uMmIxY2E1M2ZlOAotLS0gL2Rldi9udWxsCisrKyBiL2NvbXBhdC9hbmRyb2lkL2Jp bmRlci5oCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBBbmRyb2lkIEJpbmRlciBoYW5kbGVyCisg KgorICogQ29weXJpZ2h0IChjKSAyMDI1IERtaXRyaWkgT2t1bmV2CisgKgorICogVGhpcyBmaWxl IGlzIHBhcnQgb2YgRkZtcGVnLgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEg b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg KgorICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9u ZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91 bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN QSAwMjExMC0xMzAxIFVTQQorICovCisKKyNpZm5kZWYgQ09NUEFUX0FORFJPSURfQklOREVSX0gK KyNkZWZpbmUgQ09NUEFUX0FORFJPSURfQklOREVSX0gKKworLyoqCisgKiBJbml0aWFsaXplIEFu ZHJvaWQgQmluZGVyIHRocmVhZCBwb29sLgorICovCit2b2lkIGFuZHJvaWRfYmluZGVyX3RocmVh ZHBvb2xfaW5pdF9pZl9yZXF1aXJlZCh2b2lkKTsKKworI2VuZGlmICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBDT01QQVRfQU5EUk9JRF9CSU5ERVJfSApkaWZmIC0tZ2l0IGEvY29uZmlndXJl IGIvY29uZmlndXJlCmluZGV4IDg2ODIyNmFjMTEuLjBlYmZjODUxZTYgMTAwNzU1Ci0tLSBhL2Nv bmZpZ3VyZQorKysgYi9jb25maWd1cmUKQEAgLTczMTIsNyArNzMxMiw4IEBAIGVuYWJsZWQgbWJl ZHRscyAgICAgICAgICAgJiYgeyBjaGVja19wa2dfY29uZmlnIG1iZWR0bHMgbWJlZHRscyBtYmVk dGxzL3g1MDlfY3J0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfcGtnX2Nv bmZpZyBtYmVkdGxzIG1iZWR0bHMgbWJlZHRscy9zc2wuaCBtYmVkdGxzX3NzbF9pbml0IHx8CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfbGliIG1iZWR0bHMgbWJlZHRscy9z c2wuaCBtYmVkdGxzX3NzbF9pbml0IC1sbWJlZHRscyAtbG1iZWR4NTA5IC1sbWJlZGNyeXB0byB8 fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZSAiRVJST1I6IG1iZWRUTFMgbm90 IGZvdW5kIjsgfQotZW5hYmxlZCBtZWRpYWNvZGVjICAgICAgICAmJiB7IGVuYWJsZWQgam5pIHx8 IGRpZSAiRVJST1I6IG1lZGlhY29kZWMgcmVxdWlyZXMgLS1lbmFibGUtam5pIjsgfQorZW5hYmxl ZCBtZWRpYWNvZGVjICAgICAgICAmJiB7IGVuYWJsZWQgam5pIHx8IGRpZSAiRVJST1I6IG1lZGlh Y29kZWMgcmVxdWlyZXMgLS1lbmFibGUtam5pIjsgfSAmJgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFkZF9jb21wYXQgYW5kcm9pZC9iaW5kZXIubwogZW5hYmxlZCBtbWFsICAgICAg ICAgICAgICAmJiB7IGNoZWNrX2xpYiBtbWFsIGludGVyZmFjZS9tbWFsL21tYWwuaCBtbWFsX3Bv cnRfY29ubmVjdCAtbG1tYWxfY29yZSAtbG1tYWxfdXRpbCAtbG1tYWxfdmNfY2xpZW50IC1sYmNt X2hvc3QgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICEgZW5hYmxlZCBjcm9z c19jb21waWxlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRfY2ZsYWdz IC1pc3lzdGVtL29wdC92Yy9pbmNsdWRlLyAtaXN5c3RlbS9vcHQvdmMvaW5jbHVkZS9pbnRlcmZh Y2Uvdm1jc19ob3N0L2xpbnV4IC1pc3lzdGVtL29wdC92Yy9pbmNsdWRlL2ludGVyZmFjZS92Y29z L3B0aHJlYWRzIC1mZ251ODktaW5saW5lICYmCmRpZmYgLS1naXQgYS9mZnRvb2xzL01ha2VmaWxl IGIvZmZ0b29scy9NYWtlZmlsZQppbmRleCBiZGI0NGZjNWNlLi4wMWIxNmZhOGY0IDEwMDY0NAot LS0gYS9mZnRvb2xzL01ha2VmaWxlCisrKyBiL2ZmdG9vbHMvTWFrZWZpbGUKQEAgLTUxLDYgKzUx LDcgQEAgT0JKUy1mZnByb2JlICs9ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgZmZ0b29s cy90ZXh0Zm9ybWF0L3R3X2J1ZmZlci5vICAgIFwKICAgICBmZnRvb2xzL3RleHRmb3JtYXQvdHdf c3Rkb3V0Lm8gICAgXAogCitPQkpTLWZmbXBlZyArPSAkKENPTVBBVF9PQkpTOiU9Y29tcGF0LyUp CiBPQkpTLWZmcGxheSArPSBmZnRvb2xzL2ZmcGxheV9yZW5kZXJlci5vCiAKIGRlZmluZSBET0ZG VE9PTApkaWZmIC0tZ2l0IGEvZmZ0b29scy9mZm1wZWcuYyBiL2ZmdG9vbHMvZmZtcGVnLmMKaW5k ZXggNDQ0ZDAyN2MxNS4uYzJjODVkNDZiZCAxMDA2NDQKLS0tIGEvZmZ0b29scy9mZm1wZWcuYwor KysgYi9mZnRvb2xzL2ZmbXBlZy5jCkBAIC03OCw2ICs3OCw5IEBACiAjaW5jbHVkZSAibGliYXZk ZXZpY2UvYXZkZXZpY2UuaCIKIAogI2luY2x1ZGUgImNtZHV0aWxzLmgiCisjaWYgQ09ORklHX01F RElBQ09ERUMKKyNpbmNsdWRlICJjb21wYXQvYW5kcm9pZC9iaW5kZXIuaCIKKyNlbmRpZgogI2lu Y2x1ZGUgImZmbXBlZy5oIgogI2luY2x1ZGUgImZmbXBlZ19zY2hlZC5oIgogI2luY2x1ZGUgImZm bXBlZ191dGlscy5oIgpAQCAtMTAxOSw2ICsxMDIyLDEwIEBAIGludCBtYWluKGludCBhcmdjLCBj aGFyICoqYXJndikKICAgICAgICAgZ290byBmaW5pc2g7CiAgICAgfQogCisjaWYgQ09ORklHX01F RElBQ09ERUMKKyAgICBhbmRyb2lkX2JpbmRlcl90aHJlYWRwb29sX2luaXRfaWZfcmVxdWlyZWQo KTsKKyNlbmRpZgorCiAgICAgY3VycmVudF90aW1lID0gdGkgPSBnZXRfYmVuY2htYXJrX3RpbWVf c3RhbXBzKCk7CiAgICAgcmV0ID0gdHJhbnNjb2RlKHNjaCk7CiAgICAgaWYgKHJldCA+PSAwICYm IGRvX2JlbmNobWFyaykgewotLSAKMi41Mi4wCgoKRnJvbSBlOWZkZDMzOTc1YzdiNmYxODhiM2I3 Nzk2ODdlMjM2Y2Q5ZjQyZWZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYW1lcyBB bG1lciA8amFtcmlhbEBnbWFpbC5jb20+CkRhdGU6IFN1biwgMjMgTm92IDIwMjUgMTc6MDE6Mzkg LTAzMDAKU3ViamVjdDogW1BBVENIIDA0NS8zMDRdIGF2Zm9ybWF0L21vdjogcmVpbmRlbnQgYWZ0 ZXIgdGhlIHByZXZpb3VzIGNoYW5nZQoKU2lnbmVkLW9mZi1ieTogSmFtZXMgQWxtZXIgPGphbXJp YWxAZ21haWwuY29tPgotLS0KIGxpYmF2Zm9ybWF0L21vdi5jIHwgMTggKysrKysrKysrLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L21vdi5jIGIvbGliYXZmb3JtYXQvbW92LmMKaW5kZXggMTFl NjAwZDg2MS4uZWUwOTQ3OGFlZiAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvbW92LmMKKysrIGIv bGliYXZmb3JtYXQvbW92LmMKQEAgLTI3MTcsMTIgKzI3MTcsMTIgQEAgc3RhdGljIHZvaWQgbW92 X3BhcnNlX3N0c2RfdmlkZW8oTU9WQ29udGV4dCAqYywgQVZJT0NvbnRleHQgKnBiLAogICAgICAg ICBhdmlvX3NraXAocGIsIDIpOyAgLyogcmVzZXJ2ZWQgKi8KICAgICAgICAgYXZpb19za2lwKHBi LCAxMik7IC8qIHByZV9kZWZpbmVkICovCiAgICAgfSBlbHNlIHsKLSAgICBhdmlvX3JiMTYocGIp OyAvKiB2ZXJzaW9uICovCi0gICAgYXZpb19yYjE2KHBiKTsgLyogcmV2aXNpb24gbGV2ZWwgKi8K LSAgICBpZCA9IGF2aW9fcmwzMihwYik7IC8qIHZlbmRvciAqLwotICAgIGF2X2RpY3Rfc2V0KCZz dC0+bWV0YWRhdGEsICJ2ZW5kb3JfaWQiLCBhdl9mb3VyY2Myc3RyKGlkKSwgMCk7Ci0gICAgYXZp b19yYjMyKHBiKTsgLyogdGVtcG9yYWwgcXVhbGl0eSAqLwotICAgIGF2aW9fcmIzMihwYik7IC8q IHNwYXRpYWwgcXVhbGl0eSAqLworICAgICAgICBhdmlvX3JiMTYocGIpOyAvKiB2ZXJzaW9uICov CisgICAgICAgIGF2aW9fcmIxNihwYik7IC8qIHJldmlzaW9uIGxldmVsICovCisgICAgICAgIGlk ID0gYXZpb19ybDMyKHBiKTsgLyogdmVuZG9yICovCisgICAgICAgIGF2X2RpY3Rfc2V0KCZzdC0+ bWV0YWRhdGEsICJ2ZW5kb3JfaWQiLCBhdl9mb3VyY2Myc3RyKGlkKSwgMCk7CisgICAgICAgIGF2 aW9fcmIzMihwYik7IC8qIHRlbXBvcmFsIHF1YWxpdHkgKi8KKyAgICAgICAgYXZpb19yYjMyKHBi KTsgLyogc3BhdGlhbCBxdWFsaXR5ICovCiAgICAgfQogCiAgICAgc3QtPmNvZGVjcGFyLT53aWR0 aCAgPSBhdmlvX3JiMTYocGIpOyAvKiB3aWR0aCAqLwpAQCAtMjc3Niw5ICsyNzc2LDkgQEAgc3Rh dGljIHZvaWQgbW92X3BhcnNlX3N0c2RfYXVkaW8oTU9WQ29udGV4dCAqYywgQVZJT0NvbnRleHQg KnBiLAogICAgIGlmIChjLT5pc29tKQogICAgICAgICBhdmlvX3NraXAocGIsIDYpOyAvKiByZXNl cnZlZCAqLwogICAgIGVsc2UgewotICAgIGF2aW9fcmIxNihwYik7IC8qIHJldmlzaW9uIGxldmVs ICovCi0gICAgaWQgPSBhdmlvX3JsMzIocGIpOyAvKiB2ZW5kb3IgKi8KLSAgICBhdl9kaWN0X3Nl dCgmc3QtPm1ldGFkYXRhLCAidmVuZG9yX2lkIiwgYXZfZm91cmNjMnN0cihpZCksIDApOworICAg ICAgICBhdmlvX3JiMTYocGIpOyAvKiByZXZpc2lvbiBsZXZlbCAqLworICAgICAgICBpZCA9IGF2 aW9fcmwzMihwYik7IC8qIHZlbmRvciAqLworICAgICAgICBhdl9kaWN0X3NldCgmc3QtPm1ldGFk YXRhLCAidmVuZG9yX2lkIiwgYXZfZm91cmNjMnN0cihpZCksIDApOwogICAgIH0KIAogICAgIGNo YW5uZWxfY291bnQgPSBhdmlvX3JiMTYocGIpOwotLSAKMi41Mi4wCgoKRnJvbSBlZWEwNzc2YWVi NDkzMzcwZjFlNWIzNmZmMWZkOWZmYzM1M2JkZjM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiA9P1VURi04P3E/S2FjcGVyPTIwTWljaGFqPUM1PTgyb3c/PSA8a2FzcGVyOTNAZ21haWwu Y29tPgpEYXRlOiBNb24sIDI3IE9jdCAyMDI1IDA0OjMzOjM3ICswMTAwClN1YmplY3Q6IFtQQVRD SCAwNDYvMzA0XSBmYXRlOiBhZGQgc2tpcF9jbGVhbiBvcHRpb24KTUlNRS1WZXJzaW9uOiAxLjAK Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXIt RW5jb2Rpbmc6IDhiaXQKClRoaXMgaXMgdXNlZnVsIGlmIG9uZSB3YW50cyB0byBpbnNwZWN0IGJ1 aWxkIGFydGlmYWN0cyBhZnRlciBydW5uaW5nCmZhdGUuc2ggc2NyaXB0LgoKU2lnbmVkLW9mZi1i eTogS2FjcGVyIE1pY2hhasWCb3cgPGthc3BlcjkzQGdtYWlsLmNvbT4KLS0tCiBkb2MvZmF0ZV9j b25maWcuc2gudGVtcGxhdGUgfCAxICsKIHRlc3RzL2ZhdGUuc2ggICAgICAgICAgICAgICB8IDIg Ky0KIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvZG9jL2ZhdGVfY29uZmlnLnNoLnRlbXBsYXRlIGIvZG9jL2ZhdGVfY29uZmlnLnNo LnRlbXBsYXRlCmluZGV4IDRmZjg2MjlkNDQuLjM2YjU1NGI5NDggMTAwNjQ0Ci0tLSBhL2RvYy9m YXRlX2NvbmZpZy5zaC50ZW1wbGF0ZQorKysgYi9kb2MvZmF0ZV9jb25maWcuc2gudGVtcGxhdGUK QEAgLTYsNiArNiw3IEBAIHdvcmtkaXI9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyBkaXJlY3RvcnkgaW4gd2hpY2ggdG8gZG8gYWxsIHRoZSB3b3JrCiAjZmF0ZV9yZWN2PSJzc2gg LVQgZmF0ZUBmYXRlLmZmbXBlZy5vcmciICMgY29tbWFuZCB0byBzdWJtaXQgcmVwb3J0CiBjb21t ZW50PSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwgZGVzY3JpcHRp b24KIGJ1aWxkX29ubHk9ICAgICAjIHNldCB0byAieWVzIiBmb3IgYSBjb21waWxlLW9ubHkgaW5z dGFuY2UgdGhhdCBza2lwcyB0ZXN0cworc2tpcF9jbGVhbj0gICAgICMgc2V0IHRvICJ5ZXMiIHRv IHByZXNlcnZlIGJ1aWxkL2luc3RhbGwgZGlyZWN0b3JpZXMKIGlnbm9yZV90ZXN0cz0KIAogIyB0 aGUgZm9sbG93aW5nIGFyZSBvcHRpb25hbCBhbmQgbWFwIHRvIGNvbmZpZ3VyZSBvcHRpb25zCmRp ZmYgLS1naXQgYS90ZXN0cy9mYXRlLnNoIGIvdGVzdHMvZmF0ZS5zaAppbmRleCAyZDYzMTM4MjBm Li5hMzE5NWNjZGY1IDEwMDc1NQotLS0gYS90ZXN0cy9mYXRlLnNoCisrKyBiL3Rlc3RzL2ZhdGUu c2gKQEAgLTk1LDcgKzk1LDcgQEAgZmF0ZSgpKAogKQogCiBjbGVhbigpewotICAgIHJtIC1yZiAk e2J1aWxkfSAke2luc3R9CisgICAgdGVzdCAiJHNraXBfY2xlYW4iID0gInllcyIgfHwgcm0gLXJm ICR7YnVpbGR9ICR7aW5zdH0KIH0KIAogcmVwb3J0KCl7Ci0tIAoyLjUyLjAKCgpGcm9tIDJhNmVm YTgzZGE5ZGRmMmI5Njk2NzQ0MWZjYjZhNzc2MTJiYjY4NDUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206ID0/VVRGLTg/cT9LYWNwZXI9MjBNaWNoYWo9QzU9ODJvdz89IDxrYXNwZXI5M0Bn bWFpbC5jb20+CkRhdGU6IFR1ZSwgMTggTm92IDIwMjUgMTU6NDI6NTUgKzAxMDAKU3ViamVjdDog W1BBVENIIDA0Ny8zMDRdIGZhdGU6IGFkZCBtaXNzaW5nIG9wdGlvbnMgaW4gY29uZmlnIHRlbXBs YXRlCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1V VEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpGaXhlczogZjAxYzc3MTU3Nzg5 YjhlM2E1OWVkMmM5NjQ2ZmFmODI5OWU0MTY0MQpGaXhlczogNTIzZDY4OGMyYjdkNWJiNTM1YmMy MDNhMmMzNzA1ZDE5OWRkZjEzZApTaWduZWQtb2ZmLWJ5OiBLYWNwZXIgTWljaGFqxYJvdyA8a2Fz cGVyOTNAZ21haWwuY29tPgotLS0KIGRvYy9mYXRlX2NvbmZpZy5zaC50ZW1wbGF0ZSB8IDUgKysr KysKIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kb2MvZmF0 ZV9jb25maWcuc2gudGVtcGxhdGUgYi9kb2MvZmF0ZV9jb25maWcuc2gudGVtcGxhdGUKaW5kZXgg MzZiNTU0Yjk0OC4uNzMwMzFmNTRlMiAxMDA2NDQKLS0tIGEvZG9jL2ZhdGVfY29uZmlnLnNoLnRl bXBsYXRlCisrKyBiL2RvYy9mYXRlX2NvbmZpZy5zaC50ZW1wbGF0ZQpAQCAtMTIsMTYgKzEyLDIx IEBAIGlnbm9yZV90ZXN0cz0KICMgdGhlIGZvbGxvd2luZyBhcmUgb3B0aW9uYWwgYW5kIG1hcCB0 byBjb25maWd1cmUgb3B0aW9ucwogYXJjaD0KIGNwdT0KK3Rvb2xjaGFpbj0KIGNyb3NzX3ByZWZp eD0KIGFzPQogY2M9CitjeHg9CiBsZD0KK25tPQogdGFyZ2V0X29zPQogc3lzcm9vdD0KIHRhcmdl dF9leGVjPQogdGFyZ2V0X3BhdGg9CiB0YXJnZXRfc2FtcGxlcz0KIGV4dHJhX2NmbGFncz0KK2V4 dHJhX2N4eGZsYWdzPQorZXh0cmFfb2JqY2ZsYWdzPQogZXh0cmFfbGRmbGFncz0KIGV4dHJhX2xp YnM9CiBleHRyYV9jb25mPSAgICAgIyBleHRyYSBjb25maWd1cmUgb3B0aW9ucyBub3QgY292ZXJl ZCBhYm92ZQotLSAKMi41Mi4wCgoKRnJvbSBhOTFkOTAwMjExZmVkMzlhNjUwOGQ4NDcwZjI5YWRh NmExMDQ2MzYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYW1lcyBBbG1lciA8amFt cmlhbEBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMjEgTm92IDIwMjUgMjM6MDY6MjUgLTAzMDAKU3Vi amVjdDogW1BBVENIIDA0OC8zMDRdIGF2Zm9ybWF0L21vdmVuYzogYWRkIHN1cHBvcnQgZm9yIHdy aXRpbmcgc3JhdCBib3gKClNpZ25lZC1vZmYtYnk6IEphbWVzIEFsbWVyIDxqYW1yaWFsQGdtYWls LmNvbT4KLS0tCiBsaWJhdmZvcm1hdC9tb3ZlbmMuYyAgICAgICB8IDQ1ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tCiBsaWJhdmZvcm1hdC9tb3ZlbmMuaCAgICAgICB8ICAx ICsKIHRlc3RzL2ZhdGUvbW92Lm1hayAgICAgICAgIHwgIDQgKystLQogdGVzdHMvcmVmL2ZhdGUv bW92LW1wNC1wY20gfCAyNCArKysrKysrKysrLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA1 NiBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmZvcm1h dC9tb3ZlbmMuYyBiL2xpYmF2Zm9ybWF0L21vdmVuYy5jCmluZGV4IDQyYzg3NzE0OTYuLmFmYmIx MTUxYWYgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L21vdmVuYy5jCisrKyBiL2xpYmF2Zm9ybWF0 L21vdmVuYy5jCkBAIC0xNjEsNiArMTYxLDE4IEBAIHN0YXRpYyBpbnQ2NF90IHVwZGF0ZV9zaXpl KEFWSU9Db250ZXh0ICpwYiwgaW50NjRfdCBwb3MpCiAgICAgcmV0dXJuIGN1cnBvcyAtIHBvczsK IH0KIAorc3RhdGljIGludDY0X3QgdXBkYXRlX3NpemVfYW5kX3ZlcnNpb24oQVZJT0NvbnRleHQg KnBiLCBpbnQ2NF90IHBvcywgaW50IHZlcnNpb24pCit7CisgICAgaW50NjRfdCBjdXJwb3MgPSBh dmlvX3RlbGwocGIpOworICAgIGF2aW9fc2VlayhwYiwgcG9zLCBTRUVLX1NFVCk7CisgICAgYXZp b193YjMyKHBiLCBjdXJwb3MgLSBwb3MpOyAvKiByZXdyaXRlIHNpemUgKi8KKyAgICBhdmlvX3Nr aXAocGIsIDQpOworICAgIGF2aW9fdzgocGIsIHZlcnNpb24pOyAvKiByZXdyaXRlIHZlcnNpb24g Ki8KKyAgICBhdmlvX3NlZWsocGIsIGN1cnBvcywgU0VFS19TRVQpOworCisgICAgcmV0dXJuIGN1 cnBvcyAtIHBvczsKK30KKwogc3RhdGljIGludCBjbzY0X3JlcXVpcmVkKGNvbnN0IE1PVlRyYWNr ICp0cmFjaykKIHsKICAgICBpZiAodHJhY2stPmVudHJ5ID4gMCAmJiB0cmFjay0+Y2x1c3Rlclt0 cmFjay0+ZW50cnkgLSAxXS5wb3MgKyB0cmFjay0+ZGF0YV9vZmZzZXQgPiBVSU5UMzJfTUFYKQpA QCAtMTM0NCw2ICsxMzU2LDE4IEBAIHN0YXRpYyBpbnQgbW92X3dyaXRlX3BjbWNfdGFnKEFWRm9y bWF0Q29udGV4dCAqcywgQVZJT0NvbnRleHQgKnBiLCBNT1ZUcmFjayAqdHJhCiAgICAgcmV0dXJu IHVwZGF0ZV9zaXplKHBiLCBwb3MpOwogfQogCitzdGF0aWMgaW50IG1vdl93cml0ZV9zcmF0X3Rh ZyhBVklPQ29udGV4dCAqcGIsIE1PVlRyYWNrICp0cmFjaykKK3sKKyAgICBpbnQ2NF90IHBvcyA9 IGF2aW9fdGVsbChwYik7CisgICAgYXZpb193YjMyKHBiLCAwKTsgLyogc2l6ZSAqLworICAgIGZm aW9fd2ZvdXJjYyhwYiwgInNyYXQiKTsKKyAgICBhdmlvX3diMzIocGIsIDApOyAvKiB2ZXJzaW9u ICYgZmxhZ3MgKi8KKworICAgIGF2aW9fd2IzMihwYiwgdHJhY2stPnBhci0+c2FtcGxlX3JhdGUp OworCisgICAgcmV0dXJuIHVwZGF0ZV9zaXplKHBiLCBwb3MpOworfQorCiBzdGF0aWMgaW50IG1v dl93cml0ZV9hdWRpb190YWcoQVZGb3JtYXRDb250ZXh0ICpzLCBBVklPQ29udGV4dCAqcGIsIE1P Vk11eENvbnRleHQgKm1vdiwgTU9WVHJhY2sgKnRyYWNrKQogewogICAgIGludDY0X3QgcG9zID0g YXZpb190ZWxsKHBiKTsKQEAgLTEzNjMsNiArMTM4NywxMCBAQCBzdGF0aWMgaW50IG1vdl93cml0 ZV9hdWRpb190YWcoQVZGb3JtYXRDb250ZXh0ICpzLCBBVklPQ29udGV4dCAqcGIsIE1PVk11eENv bnRleAogICAgICAgICAgICAgICAgICAgIHRyYWNrLT5wYXItPmNvZGVjX2lkID09IEFWX0NPREVD X0lEX1FETTIpIHsKICAgICAgICAgICAgIHZlcnNpb24gPSAxOwogICAgICAgICB9CisgICAgfSBl bHNlIGlmICh0cmFjay0+bW9kZSA9PSBNT0RFX01QNCkgeworICAgICAgICBpZiAodHJhY2stPnBh ci0+c2FtcGxlX3JhdGUgPiBVSU5UMTZfTUFYICYmCisgICAgICAgICAgICAodGFnID09IE1PVl9N UDRfSVBDTV9UQUcgfHwgdGFnID09IE1PVl9NUDRfRlBDTV9UQUcpKQorICAgICAgICAgICAgdmVy c2lvbiA9IDE7CiAgICAgfQogCiAgICAgYXZpb193YjMyKHBiLCAwKTsgLyogc2l6ZSAqLwpAQCAt MTM5NSw2ICsxNDIzLDggQEAgc3RhdGljIGludCBtb3Zfd3JpdGVfYXVkaW9fdGFnKEFWRm9ybWF0 Q29udGV4dCAqcywgQVZJT0NvbnRleHQgKnBiLCBNT1ZNdXhDb250ZXgKICAgICAgICAgYXZpb193 YjMyKHBiLCB0cmFjay0+c2FtcGxlX3NpemUpOwogICAgICAgICBhdmlvX3diMzIocGIsIGdldF9z YW1wbGVzX3Blcl9wYWNrZXQodHJhY2spKTsKICAgICB9IGVsc2UgeworICAgICAgICB1bnNpZ25l ZCBzYW1wbGVfcmF0ZSA9IHRyYWNrLT5wYXItPnNhbXBsZV9yYXRlOworCiAgICAgICAgIGlmICh0 cmFjay0+bW9kZSA9PSBNT0RFX01PVikgewogICAgICAgICAgICAgYXZpb193YjE2KHBiLCB0cmFj ay0+cGFyLT5jaF9sYXlvdXQubmJfY2hhbm5lbHMpOwogICAgICAgICAgICAgaWYgKHRyYWNrLT5w YXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX1BDTV9VOCB8fApAQCAtMTQxNSw2ICsxNDQ1LDkg QEAgc3RhdGljIGludCBtb3Zfd3JpdGVfYXVkaW9fdGFnKEFWRm9ybWF0Q29udGV4dCAqcywgQVZJ T0NvbnRleHQgKnBiLCBNT1ZNdXhDb250ZXgKICAgICAgICAgICAgICAgICBhdmlvX3diMTYocGIs IDE2KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGF2aW9fd2IxNihwYiwgMCk7CisKKyAg ICAgICAgICAgIHdoaWxlIChzYW1wbGVfcmF0ZSA+IFVJTlQxNl9NQVgpCisgICAgICAgICAgICAg ICAgc2FtcGxlX3JhdGUgPj49IDE7CiAgICAgICAgIH0KIAogICAgICAgICBhdmlvX3diMTYocGIs IDApOyAvKiBwYWNrZXQgc2l6ZSAoPSAwKSAqLwpAQCAtMTQyNSwxNCArMTQ1OCwxMyBAQCBzdGF0 aWMgaW50IG1vdl93cml0ZV9hdWRpb190YWcoQVZGb3JtYXRDb250ZXh0ICpzLCBBVklPQ29udGV4 dCAqcGIsIE1PVk11eENvbnRleAogICAgICAgICBlbHNlIGlmICh0cmFjay0+cGFyLT5jb2RlY19p ZCA9PSBBVl9DT0RFQ19JRF9UUlVFSEQpCiAgICAgICAgICAgICBhdmlvX3diMzIocGIsIHRyYWNr LT5wYXItPnNhbXBsZV9yYXRlKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgYXZpb193YjE2 KHBiLCB0cmFjay0+cGFyLT5zYW1wbGVfcmF0ZSA8PSBVSU5UMTZfTUFYID8KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgdHJhY2stPnBhci0+c2FtcGxlX3JhdGUgOiAwKTsKKyAgICAgICAgICAg IGF2aW9fd2IxNihwYiwgc2FtcGxlX3JhdGUpOwogCiAgICAgICAgIGlmICh0cmFjay0+cGFyLT5j b2RlY19pZCAhPSBBVl9DT0RFQ19JRF9UUlVFSEQpCiAgICAgICAgICAgICBhdmlvX3diMTYocGIs IDApOyAvKiBSZXNlcnZlZCAqLwogICAgIH0KIAotICAgIGlmICh2ZXJzaW9uID09IDEpIHsgLyog U291bmREZXNjcmlwdGlvbiBWMSBleHRlbmRlZCBpbmZvICovCisgICAgaWYgKHRyYWNrLT5tb2Rl ID09IE1PREVfTU9WICYmIHZlcnNpb24gPT0gMSkgeyAvKiBTb3VuZERlc2NyaXB0aW9uIFYxIGV4 dGVuZGVkIGluZm8gKi8KICAgICAgICAgaWYgKG1vdl9wY21fbGVfZ3QxNih0cmFjay0+cGFyLT5j b2RlY19pZCkgfHwKICAgICAgICAgICAgIG1vdl9wY21fYmVfZ3QxNih0cmFjay0+cGFyLT5jb2Rl Y19pZCkpCiAgICAgICAgICAgICBhdmlvX3diMzIocGIsIDEpOyAvKiAgbXVzdCBiZSAxIGZvciAg dW5jb21wcmVzc2VkIGZvcm1hdHMgKi8KQEAgLTE0NzgsNiArMTUxMCw4IEBAIHN0YXRpYyBpbnQg bW92X3dyaXRlX2F1ZGlvX3RhZyhBVkZvcm1hdENvbnRleHQgKnMsIEFWSU9Db250ZXh0ICpwYiwg TU9WTXV4Q29udGV4CiAgICAgZWxzZSBpZiAodHJhY2stPnBhci0+Y29kZWNfaWQgPT0gQVZfQ09E RUNfSURfVFJVRUhEKQogICAgICAgICByZXQgPSBtb3Zfd3JpdGVfZG1scF90YWcocywgcGIsIHRy YWNrKTsKICAgICBlbHNlIGlmICh0YWcgPT0gTU9WX01QNF9JUENNX1RBRyB8fCB0YWcgPT0gTU9W X01QNF9GUENNX1RBRykgeworICAgICAgICBpZiAodHJhY2stPnBhci0+c2FtcGxlX3JhdGUgPiBV SU5UMTZfTUFYKQorICAgICAgICAgICAgbW92X3dyaXRlX3NyYXRfdGFnKHBiLCB0cmFjayk7CiAg ICAgICAgIGlmICh0cmFjay0+cGFyLT5jaF9sYXlvdXQubmJfY2hhbm5lbHMgPiAxKQogICAgICAg ICAgICAgcmV0ID0gbW92X3dyaXRlX2NobmxfdGFnKHMsIHBiLCB0cmFjayk7CiAgICAgICAgIGlm IChyZXQgPCAwKQpAQCAtMTUwOCw2ICsxNTQyLDkgQEAgc3RhdGljIGludCBtb3Zfd3JpdGVfYXVk aW9fdGFnKEFWRm9ybWF0Q29udGV4dCAqcywgQVZJT0NvbnRleHQgKnBiLCBNT1ZNdXhDb250ZXgK ICAgICAgICAgICAgICgocmV0ID0gbW92X3dyaXRlX2J0cnRfdGFnKHBiLCB0cmFjaykpIDwgMCkp CiAgICAgICAgIHJldHVybiByZXQ7CiAKKyAgICBpZiAodHJhY2stPm1vZGUgPT0gTU9ERV9NUDQp CisgICAgICAgIHRyYWNrLT5lbnRyeV92ZXJzaW9uID0gdmVyc2lvbjsKKwogICAgIHJldCA9IHVw ZGF0ZV9zaXplKHBiLCBwb3MpOwogICAgIHJldHVybiByZXQ7CiB9CkBAIC0zMTIyLDcgKzMxNTks NyBAQCBzdGF0aWMgaW50IG1vdl93cml0ZV9zdHNkX3RhZyhBVkZvcm1hdENvbnRleHQgKnMsIEFW SU9Db250ZXh0ICpwYiwgTU9WTXV4Q29udGV4dAogCiAgICAgdHJhY2stPmxhc3Rfc3RzZF9pbmRl eCA9IHN0c2RfaW5kZXhfYmFjazsKIAotICAgIHJldHVybiB1cGRhdGVfc2l6ZShwYiwgcG9zKTsK KyAgICByZXR1cm4gdXBkYXRlX3NpemVfYW5kX3ZlcnNpb24ocGIsIHBvcywgdHJhY2stPmVudHJ5 X3ZlcnNpb24pOwogfQogCiBzdGF0aWMgaW50IG1vdl93cml0ZV9jdHRzX3RhZyhBVkZvcm1hdENv bnRleHQgKnMsIEFWSU9Db250ZXh0ICpwYiwgTU9WVHJhY2sgKnRyYWNrKQpkaWZmIC0tZ2l0IGEv bGliYXZmb3JtYXQvbW92ZW5jLmggYi9saWJhdmZvcm1hdC9tb3ZlbmMuaAppbmRleCA5NDJhZDkw NWY3Li5lYjEyNTUxZWU1IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9tb3ZlbmMuaAorKysgYi9s aWJhdmZvcm1hdC9tb3ZlbmMuaApAQCAtODYsNiArODYsNyBAQCB0eXBlZGVmIHN0cnVjdCBNT1ZG cmFnbWVudEluZm8gewogCiB0eXBlZGVmIHN0cnVjdCBNT1ZUcmFjayB7CiAgICAgaW50ICAgICAg ICAgbW9kZTsKKyAgICBpbnQgICAgICAgICBlbnRyeV92ZXJzaW9uOwogICAgIGludCAgICAgICAg IGVudHJ5LCBlbnRyeV93cml0dGVuOwogICAgIHVuc2lnbmVkICAgIHRpbWVzY2FsZTsKICAgICB1 aW50NjRfdCAgICB0aW1lOwpkaWZmIC0tZ2l0IGEvdGVzdHMvZmF0ZS9tb3YubWFrIGIvdGVzdHMv ZmF0ZS9tb3YubWFrCmluZGV4IDFmMmY1ODliZWIuLjE1NDE3YTIxNWQgMTAwNjQ0Ci0tLSBhL3Rl c3RzL2ZhdGUvbW92Lm1haworKysgYi90ZXN0cy9mYXRlL21vdi5tYWsKQEAgLTI1MSw4ICsyNTEs OCBAQCBmYXRlLW1vdi1jaGFubmVsLWRlc2NyaXB0aW9uOiBDTUQgPSB0cmFuc2NvZGUgd2F2ICQo VEFSR0VUX1BBVEgpL3Rlc3RzL2RhdGEvYXN5bgogIyBUZXN0IFBDTSBpbiBtcDQgYW5kIGNoYW5u ZWwgbGF5b3V0CiBGQVRFX01PVl9GRk1QRUctJChjYWxsIFRSQU5TQ09ERSwgUENNX1MxNkxFLCBN UDQgTU9WLCBXQVZfREVNVVhFUiBQQU5fRklMVEVSKSBcCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICs9IGZhdGUtbW92LW1wNC1wY20KLWZhdGUtbW92LW1wNC1wY206IHRlc3RzL2RhdGEvYXN5 bnRoLTQ0MTAwLTEud2F2IHRlc3RzL2RhdGEvZmlsdGVyZ3JhcGhzL21vdi1tcDQtcGNtCi1mYXRl LW1vdi1tcDQtcGNtOiBDTUQgPSB0cmFuc2NvZGUgd2F2ICQoVEFSR0VUX1BBVEgpL3Rlc3RzL2Rh dGEvYXN5bnRoLTQ0MTAwLTEud2F2IG1wNCAiLS9maWx0ZXJfY29tcGxleCAkKFRBUkdFVF9QQVRI KS90ZXN0cy9kYXRhL2ZpbHRlcmdyYXBocy9tb3YtbXA0LXBjbSAtbWFwIFttb25vXSAtbWFwIFtz dGVyZW9dIC1tYXAgWzIuMV0gLW1hcCBbNS4xXSAtbWFwIFs3LjFdIC1jOmEgcGNtX3MxNmxlIiAi LW1hcCAwIC1jIGNvcHkgLWZyYW1lczphIDAiCitmYXRlLW1vdi1tcDQtcGNtOiB0ZXN0cy9kYXRh L2FzeW50aC05NjAwMC0xLndhdiB0ZXN0cy9kYXRhL2ZpbHRlcmdyYXBocy9tb3YtbXA0LXBjbQor ZmF0ZS1tb3YtbXA0LXBjbTogQ01EID0gdHJhbnNjb2RlIHdhdiAkKFRBUkdFVF9QQVRIKS90ZXN0 cy9kYXRhL2FzeW50aC05NjAwMC0xLndhdiBtcDQgIi0vZmlsdGVyX2NvbXBsZXggJChUQVJHRVRf UEFUSCkvdGVzdHMvZGF0YS9maWx0ZXJncmFwaHMvbW92LW1wNC1wY20gLW1hcCBbbW9ub10gLW1h cCBbc3RlcmVvXSAtbWFwIFsyLjFdIC1tYXAgWzUuMV0gLW1hcCBbNy4xXSAtYzphIHBjbV9zMTZs ZSIgIi1tYXAgMCAtYyBjb3B5IC1mcmFtZXM6YSAwIgogCiAjIFRlc3QgZmxvYXRpbmcgc2FtcGxl IGZvcm1hdCBQQ00gaW4gbXA0IGFuZCB1bnVzdWFsIGNoYW5uZWwgbGF5b3V0CiBGQVRFX01PVl9G Rk1QRUctJChjYWxsIFRSQU5TQ09ERSwgUENNX0YzMkxFLCBNUDQgTU9WLCBXQVZfREVNVVhFUiBQ QU5fRklMVEVSKSBcCmRpZmYgLS1naXQgYS90ZXN0cy9yZWYvZmF0ZS9tb3YtbXA0LXBjbSBiL3Rl c3RzL3JlZi9mYXRlL21vdi1tcDQtcGNtCmluZGV4IDdjZGNhODYyOWYuLjc3YzE1ODRkY2IgMTAw NjQ0Ci0tLSBhL3Rlc3RzL3JlZi9mYXRlL21vdi1tcDQtcGNtCisrKyBiL3Rlc3RzL3JlZi9mYXRl L21vdi1tcDQtcGNtCkBAIC0xLDI3ICsxLDI3IEBACi0wYzY4MDIxMzVlOWViNDQyMjAxYzBjMWIw MDEyNTlkNiAqdGVzdHMvZGF0YS9mYXRlL21vdi1tcDQtcGNtLm1wNAotMTA1ODc5NzcgdGVzdHMv ZGF0YS9mYXRlL21vdi1tcDQtcGNtLm1wNAotI3RiIDA6IDEvNDQxMDAKKzUzMWM0YTMzODlhNjZk MzA1ZmIyNDc2OTFmNGIxNGFiICp0ZXN0cy9kYXRhL2ZhdGUvbW92LW1wNC1wY20ubXA0CisyMzA0 NDE3NyB0ZXN0cy9kYXRhL2ZhdGUvbW92LW1wNC1wY20ubXA0CisjdGIgMDogMS85NjAwMAogI21l ZGlhX3R5cGUgMDogYXVkaW8KICNjb2RlY19pZCAwOiBwY21fczE2bGUKLSNzYW1wbGVfcmF0ZSAw OiA0NDEwMAorI3NhbXBsZV9yYXRlIDA6IDk2MDAwCiAjY2hhbm5lbF9sYXlvdXRfbmFtZSAwOiBt b25vCi0jdGIgMTogMS80NDEwMAorI3RiIDE6IDEvOTYwMDAKICNtZWRpYV90eXBlIDE6IGF1ZGlv CiAjY29kZWNfaWQgMTogcGNtX3MxNmxlCi0jc2FtcGxlX3JhdGUgMTogNDQxMDAKKyNzYW1wbGVf cmF0ZSAxOiA5NjAwMAogI2NoYW5uZWxfbGF5b3V0X25hbWUgMTogc3RlcmVvCi0jdGIgMjogMS80 NDEwMAorI3RiIDI6IDEvOTYwMDAKICNtZWRpYV90eXBlIDI6IGF1ZGlvCiAjY29kZWNfaWQgMjog cGNtX3MxNmxlCi0jc2FtcGxlX3JhdGUgMjogNDQxMDAKKyNzYW1wbGVfcmF0ZSAyOiA5NjAwMAog I2NoYW5uZWxfbGF5b3V0X25hbWUgMjogMi4xCi0jdGIgMzogMS80NDEwMAorI3RiIDM6IDEvOTYw MDAKICNtZWRpYV90eXBlIDM6IGF1ZGlvCiAjY29kZWNfaWQgMzogcGNtX3MxNmxlCi0jc2FtcGxl X3JhdGUgMzogNDQxMDAKKyNzYW1wbGVfcmF0ZSAzOiA5NjAwMAogI2NoYW5uZWxfbGF5b3V0X25h bWUgMzogNS4xCi0jdGIgNDogMS80NDEwMAorI3RiIDQ6IDEvOTYwMDAKICNtZWRpYV90eXBlIDQ6 IGF1ZGlvCiAjY29kZWNfaWQgNDogcGNtX3MxNmxlCi0jc2FtcGxlX3JhdGUgNDogNDQxMDAKKyNz YW1wbGVfcmF0ZSA0OiA5NjAwMAogI2NoYW5uZWxfbGF5b3V0X25hbWUgNDogNy4xCi0tIAoyLjUy LjAKCgpGcm9tIGFkYzFkYzMyOTdlOGRjMmZmZmRhY2U2OWI1YzIwMDljYmY3ZmJlNjUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5lYWwgR29tcGEgPG5lYWxAZ29tcGEuZGV2PgpEYXRl OiBGcmksIDIxIE5vdiAyMDI1IDA2OjE2OjUwIC0wNTAwClN1YmplY3Q6IFtQQVRDSCAwNDkvMzA0 XSBjb25maWd1cmU6IExvd2VyIGxpYmR2ZG5hdiBhbmQgbGliZHZkcmVhZCBtaW5pbXVtCiB2ZXJz aW9ucyBmb3IgRUw5CgpSZWQgSGF0IEVudGVycHJpc2UgTGludXggOSBpcyBvbmUgcGF0Y2ggdmVy c2lvbiBsb3dlciB0aGFuIHdoYXQKRkZtcGVnIGN1cnJlbnRseSByZXF1ZXN0cy4gVGhlIHNsaWdo dGx5IG9sZGVyIHZlcnNpb25zIHN0aWxsIHJlc3VsdAppbiBhIHdvcmtpbmcgYnVpbGQgb2YgRkZt cGVnIHdpdGggRFZEIHN1cHBvcnQsIHNvIGFsbG93IHRob3NlCnZlcnNpb25zIHRvIGJlIGNvbnN1 bWVkIHRvIGJ1aWxkIEZGbXBlZy4KClNpZ25lZC1vZmYtYnk6IE5lYWwgR29tcGEgPG5lYWxAZ29t cGEuZGV2PgotLS0KIGNvbmZpZ3VyZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1 cmUKaW5kZXggMGViZmM4NTFlNi4uN2Q2MDYxYjU1YyAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisr KyBiL2NvbmZpZ3VyZQpAQCAtNzEyMSw4ICs3MTIxLDggQEAgZW5hYmxlZCBsaWJkYXYxZCAgICAg ICAgICAmJiByZXF1aXJlX3BrZ19jb25maWcgbGliZGF2MWQgImRhdjFkID49IDEuMC4wIiAiZGF2 MWQKIGVuYWJsZWQgbGliZGF2czIgICAgICAgICAgJiYgcmVxdWlyZV9wa2dfY29uZmlnIGxpYmRh dnMyICJkYXZzMiA+PSAxLjYuMCIgZGF2czIuaCBkYXZzMl9kZWNvZGVyX29wZW4KIGVuYWJsZWQg bGliZGMxMzk0ICAgICAgICAgJiYgcmVxdWlyZV9wa2dfY29uZmlnIGxpYmRjMTM5NCBsaWJkYzEz OTQtMiBkYzEzOTQvZGMxMzk0LmggZGMxMzk0X25ldwogZW5hYmxlZCBsaWJkcm0gICAgICAgICAg ICAmJiBjaGVja19wa2dfY29uZmlnIGxpYmRybSBsaWJkcm0geGY4NmRybS5oIGRybUdldFZlcnNp b24KLWVuYWJsZWQgbGliZHZkbmF2ICAgICAgICAgJiYgcmVxdWlyZV9wa2dfY29uZmlnIGxpYmR2 ZG5hdiAiZHZkbmF2ID49IDYuMS4xIiBkdmRuYXYvZHZkbmF2LmggZHZkbmF2X29wZW4yCi1lbmFi bGVkIGxpYmR2ZHJlYWQgICAgICAgICYmIHJlcXVpcmVfcGtnX2NvbmZpZyBsaWJkdmRyZWFkICJk dmRyZWFkID49IDYuMS4yIiBkdmRyZWFkL2R2ZF9yZWFkZXIuaCBEVkRPcGVuMgorZW5hYmxlZCBs aWJkdmRuYXYgICAgICAgICAmJiByZXF1aXJlX3BrZ19jb25maWcgbGliZHZkbmF2ICJkdmRuYXYg Pj0gNi4xLjAiIGR2ZG5hdi9kdmRuYXYuaCBkdmRuYXZfb3BlbjIKK2VuYWJsZWQgbGliZHZkcmVh ZCAgICAgICAgJiYgcmVxdWlyZV9wa2dfY29uZmlnIGxpYmR2ZHJlYWQgImR2ZHJlYWQgPj0gNi4x LjEiIGR2ZHJlYWQvZHZkX3JlYWRlci5oIERWRE9wZW4yCiBlbmFibGVkIGxpYmZka19hYWMgICAg ICAgICYmIHsgY2hlY2tfcGtnX2NvbmZpZyBsaWJmZGtfYWFjIGZkay1hYWMgImZkay1hYWMvYWFj ZW5jX2xpYi5oIiBhYWNFbmNPcGVuIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg eyByZXF1aXJlIGxpYmZka19hYWMgZmRrLWFhYy9hYWNlbmNfbGliLmggYWFjRW5jT3BlbiAtbGZk ay1hYWMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4gInVzaW5nIGxp YmZkayB3aXRob3V0IHBrZy1jb25maWciOyB9IH0KLS0gCjIuNTIuMAoKCkZyb20gZTUzNzc0NDA1 YmEyYzI0YWYxMmVmMGFmYWZhYzEzYmVhOTA5YTQxMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRnJhbmsgUGxvd21hbiA8cG9zdEBmcmFua3Bsb3dtYW4uY29tPgpEYXRlOiBTYXQsIDgg Tm92IDIwMjUgMTg6MzU6NTEgKzAwMDAKU3ViamVjdDogW1BBVENIIDA1MC8zMDRdIGxhdmMvaGV2 YzogRml4IHVzYWdlIG9mIHNsaWNlIHNlZ21lbnQgaW4gaW52YWxpZAogc3RhdGUKClByZXZpb3Vz bHksIHdlIHNldCBzLT5zbGljZV9pbml0aWFsaXplZCB0byAwIHRvIHByZXZlbnQgb3RoZXIgc2xp Y2UKc2VnbWVudHMgZnJvbSBkZXBlbmRpbmcgb24gdGhpcyBzbGljZSBzZWdtZW50IG9ubHkgaWYg aGxzX3NsaWNlX2hlYWRlcgpmYWlsZWQuICBJZiBkZWNvZGVfc2xpY2UgZmFpbHMgZm9yIHNvbWUg b3RoZXIgcmVhc29uLCBob3dldmVyLCBiZWZvcmUKZGVjb2RlX3NsaWNlX2RhdGEgaXMgY2FsbGVk IHRvIGJyaW5nIHRoZSBjb250ZXh0IGJhY2sgaW50byBhIGNvbnNpc3RlbnQKc3RhdGUsIHRoZW4g c2xpY2VzIGNvdWxkIGRlcGVuZCBvbiB0aGlzIHNsaWNlIHNlZ21lbnQgd2hpbGUgaXQgaXMgaW4g YW4KaW52YWxpZCBzdGF0ZS4gIFRoaXMgY2FuIGNhdXNlIHNlZ21lbnRhdGlvbiBmYXVsdHMgYW5k IG90aGVyIHNvcnRzIG9mCm5hc3RpbmVzcy4gIFBhdGNoIGZpeGVzIHRoaXMgYnkgYWx3YXlzIHNl dHRpbmcgcy0+c2xpY2VfaW5pdGlhbGl6ZWQgdG8gMAp3aGlsZSB0aGUgc3RhdGUgaXMgaW5jb25z aXN0ZW50LgoKUmVzb2x2ZXMgIzExNjUyLgotLS0KIGxpYmF2Y29kZWMvaGV2Yy9oZXZjZGVjLmMg fCA3ICsrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9oZXZjL2hldmNkZWMuYyBiL2xpYmF2Y29kZWMv aGV2Yy9oZXZjZGVjLmMKaW5kZXggM2Y0NzFkYmMxNC4uNTMxZDFjMjZmMyAxMDA2NDQKLS0tIGEv bGliYXZjb2RlYy9oZXZjL2hldmNkZWMuYworKysgYi9saWJhdmNvZGVjL2hldmMvaGV2Y2RlYy5j CkBAIC0zNDExLDcgKzM0MTEsNiBAQCBmYWlsOgogICAgICAgICBmZl9oZXZjX3VucmVmX2ZyYW1l KGwtPmN1cl9mcmFtZSwgfjApOwogICAgIGwtPmN1cl9mcmFtZSA9IE5VTEw7CiAgICAgcy0+Y3Vy X2ZyYW1lID0gcy0+Y29sbG9jYXRlZF9yZWYgPSBOVUxMOwotICAgIHMtPnNsaWNlX2luaXRpYWxp emVkID0gMDsKICAgICByZXR1cm4gcmV0OwogfQogCkBAIC0zNTQ0LDkgKzM1NDMsMTEgQEAgc3Rh dGljIGludCBkZWNvZGVfc2xpY2UoSEVWQ0NvbnRleHQgKnMsIHVuc2lnbmVkIG5hbF9pZHgsIEdl dEJpdENvbnRleHQgKmdiKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHJldCA9IGhsc19zbGlj ZV9oZWFkZXIoJnMtPnNoLCBzLCBnYik7CisgICAgLy8gT25jZSBobHNfc2xpY2VfaGVhZGVyIGhh cyBiZWVuIGNhbGxlZCwgdGhlIGNvbnRleHQgaXMgaW5jb25zaXN0ZW50IHdpdGggdGhlIHNsaWNl IGhlYWRlcgorICAgIC8vIHVudGlsIHRoZSBjb250ZXh0IGlzIHJlaW5pdGlhbGl6ZWQgYWNjb3Jk aW5nIHRvIHRoZSBjb250ZW50cyBvZiB0aGUgbmV3IHNsaWNlIGhlYWRlcgorICAgIC8vIGF0IHRo ZSBzdGFydCBvZiBkZWNvZGVfc2xpY2VfZGF0YS4KKyAgICBzLT5zbGljZV9pbml0aWFsaXplZCA9 IDA7CiAgICAgaWYgKHJldCA8IDApIHsKLSAgICAgICAgLy8gaGxzX3NsaWNlX2hlYWRlcigpIGRv ZXMgbm90IGNsZWFudXAgb24gZmFpbHVyZSB0aHVzIHRoZSBzdGF0ZSBub3cgaXMgaW5jb25zaXN0 ZW50IHNvIHdlIGNhbm5vdCB1c2UgaXQgb24gZGVwZW5kZW50IHNsaWNlcwotICAgICAgICBzLT5z bGljZV9pbml0aWFsaXplZCA9IDA7CiAgICAgICAgIHJldHVybiByZXQ7CiAgICAgfQogCi0tIAoy LjUyLjAKCgpGcm9tIDBhMGNlYWEzOThmNmFlOWI2ZjZjNmJlZjEyYjQ4MmQyODkyMjUwZDEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFpoYW8gWmhpbGkgPHpoaWxpemhhb0B0ZW5jZW50 LmNvbT4KRGF0ZTogV2VkLCAxMiBOb3YgMjAyNSAyMTo1NjozNiArMDgwMApTdWJqZWN0OiBbUEFU Q0ggMDUxLzMwNF0gYXZ1dGlsL2h3Y29udGV4dF92YWFwaTogZml4IHVzZSBmb3VyY2Mgbm90IHN1 cHBvcnRlZAogYnkgZGV2aWNlcwoKMS4gQSBBVlBpeGVsRm9ybWF0IGNhbiBtYXAgdG8gbXVsdGlw bGUgVkFfRk9VUkNDcywgd2hpbGUKdmFhcGlfZm9ybWF0X2Zyb21fcGl4X2ZtdCgpIG9ubHkgcmV0 dXJucyB0aGUgZmlyc3QgaXRlbSBtYXRjaGVkCmJlZm9yZSB0aGlzIHBhdGNoLgoyLiB2YWFwaV9m cmFtZXNfaW5pdCgpIHVzZSB2YWFwaV9mb3JtYXRfZnJvbV9waXhfZm10KCkgdG8gZ2V0IHRoZQpm aXJzdCBpdGVtLiBGb3VyY2MgaW4gdGhpcyBpdGVtIG1heSBub3QgYmUgc3VwcG9ydGVkIGJ5IHRo ZSBkZXZpY2UuCgpUaGlzIHBhdGNoIG1ha2VzIHZhYXBpX2Zvcm1hdF9mcm9tX3BpeF9mbXQgcmV0 dXJuIGFsbCBtYXRjaGVkIGl0ZW1zCml0ZXJhdGl2ZWx5LCB0aGVuIHVzZSBzdHJpY3QgY2hlY2sg aW4gdmFhcGlfZnJhbWVzX2luaXQgdG8gZ2V0IHRoZQpyaWdodCBmb3VyY2MuCi0tLQogbGliYXZ1 dGlsL2h3Y29udGV4dF92YWFwaS5jIHwgODIgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ5IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9od2NvbnRleHRfdmFhcGkuYyBiL2xpYmF2dXRpbC9o d2NvbnRleHRfdmFhcGkuYwppbmRleCA3NTNkY2Y4OTA1Li40ZjM1MDI3OTdiIDEwMDY0NAotLS0g YS9saWJhdnV0aWwvaHdjb250ZXh0X3ZhYXBpLmMKKysrIGIvbGliYXZ1dGlsL2h3Y29udGV4dF92 YWFwaS5jCkBAIC0xOTUsMTIgKzE5NSwxNyBAQCBzdGF0aWMgY29uc3QgVkFBUElGb3JtYXREZXNj cmlwdG9yICoKIH0KIAogc3RhdGljIGNvbnN0IFZBQVBJRm9ybWF0RGVzY3JpcHRvciAqCi0gICAg dmFhcGlfZm9ybWF0X2Zyb21fcGl4X2ZtdChlbnVtIEFWUGl4ZWxGb3JtYXQgcGl4X2ZtdCkKKyAg ICB2YWFwaV9mb3JtYXRfZnJvbV9waXhfZm10KGVudW0gQVZQaXhlbEZvcm1hdCBwaXhfZm10LCBj b25zdCBWQUFQSUZvcm1hdERlc2NyaXB0b3IgKnByZXYpCiB7Ci0gICAgaW50IGk7Ci0gICAgZm9y IChpID0gMDsgaSA8IEZGX0FSUkFZX0VMRU1TKHZhYXBpX2Zvcm1hdF9tYXApOyBpKyspCi0gICAg ICAgIGlmICh2YWFwaV9mb3JtYXRfbWFwW2ldLnBpeF9mbXQgPT0gcGl4X2ZtdCkKLSAgICAgICAg ICAgIHJldHVybiAmdmFhcGlfZm9ybWF0X21hcFtpXTsKKyAgICBjb25zdCBWQUFQSUZvcm1hdERl c2NyaXB0b3IgKmVuZCA9ICZ2YWFwaV9mb3JtYXRfbWFwW0ZGX0FSUkFZX0VMRU1TKHZhYXBpX2Zv cm1hdF9tYXApXTsKKyAgICBpZiAoIXByZXYpCisgICAgICAgIHByZXYgPSB2YWFwaV9mb3JtYXRf bWFwOworICAgIGVsc2UKKyAgICAgICAgcHJldisrOworCisgICAgZm9yICg7IHByZXYgPCBlbmQ7 IHByZXYrKykKKyAgICAgICAgaWYgKHByZXYtPnBpeF9mbXQgPT0gcGl4X2ZtdCkKKyAgICAgICAg ICAgIHJldHVybiBwcmV2OwogICAgIHJldHVybiBOVUxMOwogfQogCkBAIC0yMTQsMjcgKzIxOSwz NyBAQCBzdGF0aWMgZW51bSBBVlBpeGVsRm9ybWF0IHZhYXBpX3BpeF9mbXRfZnJvbV9mb3VyY2Mo dW5zaWduZWQgaW50IGZvdXJjYykKICAgICAgICAgcmV0dXJuIEFWX1BJWF9GTVRfTk9ORTsKIH0K IAorc3RhdGljIGludCB2YWFwaV9nZXRfaW1nX2Rlc2NfYW5kX2Zvcm1hdChBVkhXRGV2aWNlQ29u dGV4dCAqaHdkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBBVlBp eGVsRm9ybWF0IHBpeF9mbXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgVkFBUElGb3JtYXREZXNjcmlwdG9yICoqX2Rlc2MsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVkFJbWFnZUZvcm1hdCAqKmltYWdlX2Zvcm1hdCkKK3sKKyAgICBWQUFQSURl dmljZUNvbnRleHQgKmN0eCA9IGh3ZGV2LT5od2N0eDsKKyAgICBjb25zdCBWQUFQSUZvcm1hdERl c2NyaXB0b3IgKmRlc2MgPSBOVUxMOworICAgIGludCBpOworCisgICAgd2hpbGUgKChkZXNjID0g dmFhcGlfZm9ybWF0X2Zyb21fcGl4X2ZtdChwaXhfZm10LCBkZXNjKSkpIHsKKyAgICAgICAgZm9y IChpID0gMDsgaSA8IGN0eC0+bmJfZm9ybWF0czsgaSsrKSB7CisgICAgICAgICAgICBpZiAoY3R4 LT5mb3JtYXRzW2ldLmZvdXJjYyA9PSBkZXNjLT5mb3VyY2MpIHsKKyAgICAgICAgICAgICAgICBp ZiAoX2Rlc2MpCisgICAgICAgICAgICAgICAgICAgICpfZGVzYyA9IGRlc2M7CisgICAgICAgICAg ICAgICAgaWYgKGltYWdlX2Zvcm1hdCkKKyAgICAgICAgICAgICAgICAgICAgKmltYWdlX2Zvcm1h dCA9ICZjdHgtPmZvcm1hdHNbaV0uaW1hZ2VfZm9ybWF0OworICAgICAgICAgICAgICAgIHJldHVy biAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIEFWRVJS T1IoRU5PU1lTKTsKK30KKwogc3RhdGljIGludCB2YWFwaV9nZXRfaW1hZ2VfZm9ybWF0KEFWSFdE ZXZpY2VDb250ZXh0ICpod2RldiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl bnVtIEFWUGl4ZWxGb3JtYXQgcGl4X2ZtdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBWQUltYWdlRm9ybWF0ICoqaW1hZ2VfZm9ybWF0KQogewotICAgIFZBQVBJRGV2aWNlQ29u dGV4dCAqY3R4ID0gaHdkZXYtPmh3Y3R4OwotICAgIGNvbnN0IFZBQVBJRm9ybWF0RGVzY3JpcHRv ciAqZGVzYzsKLSAgICBpbnQgaTsKLQotICAgIGRlc2MgPSB2YWFwaV9mb3JtYXRfZnJvbV9waXhf Zm10KHBpeF9mbXQpOwotICAgIGlmICghZGVzYyB8fCAhaW1hZ2VfZm9ybWF0KQotICAgICAgICBn b3RvIGZhaWw7Ci0KLSAgICBmb3IgKGkgPSAwOyBpIDwgY3R4LT5uYl9mb3JtYXRzOyBpKyspIHsK LSAgICAgICAgaWYgKGN0eC0+Zm9ybWF0c1tpXS5mb3VyY2MgPT0gZGVzYy0+Zm91cmNjKSB7Ci0g ICAgICAgICAgICAqaW1hZ2VfZm9ybWF0ID0gJmN0eC0+Zm9ybWF0c1tpXS5pbWFnZV9mb3JtYXQ7 Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotICAgIH0KLQotZmFpbDoKLSAgICBy ZXR1cm4gQVZFUlJPUihFTk9TWVMpOworICAgIGlmICghaW1hZ2VfZm9ybWF0KQorICAgICAgICBy ZXR1cm4gQVZFUlJPUihFSU5WQUwpOworICAgIHJldHVybiB2YWFwaV9nZXRfaW1nX2Rlc2NfYW5k X2Zvcm1hdChod2RldiwgcGl4X2ZtdCwgTlVMTCwgaW1hZ2VfZm9ybWF0KTsKIH0KIAogc3RhdGlj IGludCB2YWFwaV9mcmFtZXNfZ2V0X2NvbnN0cmFpbnRzKEFWSFdEZXZpY2VDb250ZXh0ICpod2Rl diwKQEAgLTU2MiwxOSArNTc3LDIzIEBAIHN0YXRpYyBpbnQgdmFhcGlfZnJhbWVzX2luaXQoQVZI V0ZyYW1lc0NvbnRleHQgKmh3ZmMpCiAgICAgVkFBUElGcmFtZXNDb250ZXh0ICAgICAqY3R4ID0g aHdmYy0+aHdjdHg7CiAgICAgQVZWQUFQSUZyYW1lc0NvbnRleHQgICphdmZjID0gJmN0eC0+cDsK ICAgICBBVlZBQVBJRGV2aWNlQ29udGV4dCAqaHdjdHggPSBod2ZjLT5kZXZpY2VfY3R4LT5od2N0 eDsKLSAgICBjb25zdCBWQUFQSUZvcm1hdERlc2NyaXB0b3IgKmRlc2M7Ci0gICAgVkFJbWFnZUZv cm1hdCAqZXhwZWN0ZWRfZm9ybWF0OworICAgIGNvbnN0IFZBQVBJRm9ybWF0RGVzY3JpcHRvciAq ZGVzYyA9IE5VTEw7CisgICAgVkFJbWFnZUZvcm1hdCAqZXhwZWN0ZWRfZm9ybWF0ID0gTlVMTDsK ICAgICBBVkJ1ZmZlclJlZiAqdGVzdF9zdXJmYWNlID0gTlVMTDsKICAgICBWQVN1cmZhY2VJRCB0 ZXN0X3N1cmZhY2VfaWQ7CiAgICAgVkFJbWFnZSB0ZXN0X2ltYWdlOwogICAgIFZBU3RhdHVzIHZh czsKICAgICBpbnQgZXJyLCBpOwogCi0gICAgZGVzYyA9IHZhYXBpX2Zvcm1hdF9mcm9tX3BpeF9m bXQoaHdmYy0+c3dfZm9ybWF0KTsKLSAgICBpZiAoIWRlc2MpIHsKLSAgICAgICAgYXZfbG9nKGh3 ZmMsIEFWX0xPR19FUlJPUiwgIlVuc3VwcG9ydGVkIGZvcm1hdDogJXMuXG4iLAotICAgICAgICAg ICAgICAgYXZfZ2V0X3BpeF9mbXRfbmFtZShod2ZjLT5zd19mb3JtYXQpKTsKLSAgICAgICAgcmV0 dXJuIEFWRVJST1IoRUlOVkFMKTsKKyAgICBlcnIgPSB2YWFwaV9nZXRfaW1nX2Rlc2NfYW5kX2Zv cm1hdChod2ZjLT5kZXZpY2VfY3R4LCBod2ZjLT5zd19mb3JtYXQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJmRlc2MsICZleHBlY3RlZF9mb3JtYXQpOworICAgIGlm IChlcnIgPCAwKSB7CisgICAgICAgIC8vIFVzZSBhIHJlbGF4ZWQgY2hlY2sgd2hlbiBwb29sIGV4 aXN0LiBJdCBjYW4gYmUgYW4gZXh0ZXJuYWwgcG9vbC4KKyAgICAgICAgaWYgKCFod2ZjLT5wb29s IHx8ICF2YWFwaV9mb3JtYXRfZnJvbV9waXhfZm10KGh3ZmMtPnN3X2Zvcm1hdCwgTlVMTCkpIHsK KyAgICAgICAgICAgIGF2X2xvZyhod2ZjLCBBVl9MT0dfRVJST1IsICJVbnN1cHBvcnRlZCBmb3Jt YXQ6ICVzLlxuIiwKKyAgICAgICAgICAgICAgICAgICBhdl9nZXRfcGl4X2ZtdF9uYW1lKGh3ZmMt PnN3X2Zvcm1hdCkpOworICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKKyAgICAg ICAgfQogICAgIH0KIAogICAgIGlmICghaHdmYy0+cG9vbCkgewpAQCAtNjczLDEwICs2OTIsNyBA QCBzdGF0aWMgaW50IHZhYXBpX2ZyYW1lc19pbml0KEFWSFdGcmFtZXNDb250ZXh0ICpod2ZjKQog ICAgIHRlc3Rfc3VyZmFjZV9pZCA9IChWQVN1cmZhY2VJRCkodWludHB0cl90KXRlc3Rfc3VyZmFj ZS0+ZGF0YTsKIAogICAgIGN0eC0+ZGVyaXZlX3dvcmtzID0gMDsKLQotICAgIGVyciA9IHZhYXBp X2dldF9pbWFnZV9mb3JtYXQoaHdmYy0+ZGV2aWNlX2N0eCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGh3ZmMtPnN3X2Zvcm1hdCwgJmV4cGVjdGVkX2Zvcm1hdCk7Ci0gICAgaWYg KGVyciA9PSAwKSB7CisgICAgaWYgKGV4cGVjdGVkX2Zvcm1hdCkgewogICAgICAgICB2YXMgPSB2 YURlcml2ZUltYWdlKGh3Y3R4LT5kaXNwbGF5LCB0ZXN0X3N1cmZhY2VfaWQsICZ0ZXN0X2ltYWdl KTsKICAgICAgICAgaWYgKHZhcyA9PSBWQV9TVEFUVVNfU1VDQ0VTUykgewogICAgICAgICAgICAg aWYgKGV4cGVjdGVkX2Zvcm1hdC0+Zm91cmNjID09IHRlc3RfaW1hZ2UuZm9ybWF0LmZvdXJjYykg ewotLSAKMi41Mi4wCgoKRnJvbSAyMzU3YzBhZjlkYjkxN2Q4NGMyODRiMzY2ZmNkOTY3ZjZkOTUz Njg4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYW1lcyBBbG1lciA8amFtcmlhbEBn bWFpbC5jb20+CkRhdGU6IFNhdCwgMTUgTm92IDIwMjUgMTU6MjE6MjUgLTAzMDAKU3ViamVjdDog W1BBVENIIDA1Mi8zMDRdIGF2Zm9ybWF0OiBkb24ndCByZXR1cm4gRUlPIG9uIGRlbXV4ZXIgZXJy b3JzCgpEZW11eGVycyBzaG91bGQgbm90IGdlbmVyYXRlIHRoaXMgZXJyb3IgY29kZSB3aGVuIHRo ZXkgZW5jb3VudGVyIHRydW5jYXRlZApvciBvdGhlcndpc2UgaW52YWxpZCBmaWxlcy4gSXQncyBh IGNvZGUgdGhlIHVuZGVybHlpbmcgcHJvdG9jb2wgc2hvdWxkIGdlbmVyYXRlCndoZW4gdGhlcmUg YXJlIGxlZ2l0aW1hdGUgcmVhZGluZyBlcnJvcnMuCgpTaWduZWQtb2ZmLWJ5OiBKYW1lcyBBbG1l ciA8amFtcmlhbEBnbWFpbC5jb20+Ci0tLQogbGliYXZmb3JtYXQvNHhtLmMgICAgICAgICAgICB8 ICA4ICsrKysrLS0tCiBsaWJhdmZvcm1hdC9hYWNkZWMuYyAgICAgICAgIHwgIDQgKystLQogbGli YXZmb3JtYXQvYWF4ZGVjLmMgICAgICAgICB8ICA3ICsrKystLS0KIGxpYmF2Zm9ybWF0L2FkeGRl Yy5jICAgICAgICAgfCAgMiArLQogbGliYXZmb3JtYXQvYWlmZmRlYy5jICAgICAgICB8ICAyICst CiBsaWJhdmZvcm1hdC9hbHAuYyAgICAgICAgICAgIHwgIDUgKystLS0KIGxpYmF2Zm9ybWF0L2Fw Yy5jICAgICAgICAgICAgfCAgNyArKysrKy0tCiBsaWJhdmZvcm1hdC9hcGUuYyAgICAgICAgICAg IHwgIDIgKy0KIGxpYmF2Zm9ybWF0L2FwbS5jICAgICAgICAgICAgfCAgNSArKy0tLQogbGliYXZm b3JtYXQvYXJnb19hc2YuYyAgICAgICB8ICA5ICsrKy0tLS0tLQogbGliYXZmb3JtYXQvYXJnb19j dmcuYyAgICAgICB8ICA5ICsrKy0tLS0tLQogbGliYXZmb3JtYXQvYXZzLmMgICAgICAgICAgICB8 IDE2ICsrKysrKystLS0tLS0tLQogbGliYXZmb3JtYXQvYmV0aHNvZnR2aWQuYyAgICB8IDIxICsr KysrKysrKy0tLS0tLS0tLS0KIGxpYmF2Zm9ybWF0L2JmaS5jICAgICAgICAgICAgfCAgMiArLQog bGliYXZmb3JtYXQvYmluay5jICAgICAgICAgICB8IDE0ICsrKysrKy0tLS0tLS0KIGxpYmF2Zm9y bWF0L2JpbmthLmMgICAgICAgICAgfCAgMiArLQogbGliYXZmb3JtYXQvYmludGV4dC5jICAgICAg ICB8IDM5ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogbGliYXZmb3JtYXQv Yml0LmMgICAgICAgICAgICB8ICA1ICsrLS0tCiBsaWJhdmZvcm1hdC9ibXYuYyAgICAgICAgICAg IHwgIDUgKysrLS0KIGxpYmF2Zm9ybWF0L2Jyc3RtLmMgICAgICAgICAgfCAgOSArKysrKy0tLS0K IGxpYmF2Zm9ybWF0L2M5My5jICAgICAgICAgICAgfCAxMyArKysrKystLS0tLS0KIGxpYmF2Zm9y bWF0L2NhZmRlYy5jICAgICAgICAgfCAxMSArKysrKy0tLS0tCiBsaWJhdmZvcm1hdC9jaW5lZGVj LmMgICAgICAgIHwgIDIgKy0KIGxpYmF2Zm9ybWF0L2RmYS5jICAgICAgICAgICAgfCAgNCArKy0t CiBsaWJhdmZvcm1hdC9kc2ljaW4uYyAgICAgICAgIHwgIDIgKy0KIGxpYmF2Zm9ybWF0L2Rzcy5j ICAgICAgICAgICAgfCAgNSArKystLQogbGliYXZmb3JtYXQvZHYuYyAgICAgICAgICAgICB8IDE0 ICsrKysrKystLS0tLS0KIGxpYmF2Zm9ybWF0L2R4YS5jICAgICAgICAgICAgfCAxMCArKysrLS0t LS0KIGxpYmF2Zm9ybWF0L2VsZWN0cm9uaWNhcnRzLmMgfCAgMiArLQogbGliYXZmb3JtYXQvZmls bXN0cmlwZGVjLmMgICB8ICAyICstCiBsaWJhdmZvcm1hdC9mbGljLmMgICAgICAgICAgIHwgMjUg KysrKysrKysrLS0tLS0tLS0tLS0tLS0KIGxpYmF2Zm9ybWF0L2dpZmRlYy5jICAgICAgICAgfCAg NiArKysrLS0KIGxpYmF2Zm9ybWF0L2dzbWRlYy5jICAgICAgICAgfCAgMiArLQogbGliYXZmb3Jt YXQvaGNhLmMgICAgICAgICAgICB8ICA3ICsrKystLS0KIGxpYmF2Zm9ybWF0L2ljb2VuYy5jICAg ICAgICAgfCAgMiArLQogbGliYXZmb3JtYXQvaWRjaW4uYyAgICAgICAgICB8ICA2ICsrKy0tLQog bGliYXZmb3JtYXQvaWRyb3FkZWMuYyAgICAgICB8IDI5ICsrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLQogbGliYXZmb3JtYXQvaWZmLmMgICAgICAgICAgICB8IDEwICsrKysrLS0tLQogbGliYXZm b3JtYXQvaW1nMmRlYy5jICAgICAgICB8ICA2ICsrKy0tLQogbGliYXZmb3JtYXQvaW1nMmVuYy5j ICAgICAgICB8ICAzICstLQogbGliYXZmb3JtYXQvaW5nZW5pZW50ZGVjLmMgICB8ICAyICstCiBs aWJhdmZvcm1hdC9pcG1vdmllLmMgICAgICAgIHwgIDcgKysrLS0tLQogbGliYXZmb3JtYXQvaXNz LmMgICAgICAgICAgICB8ICAyICstCiBsaWJhdmZvcm1hdC9qdmRlYy5jICAgICAgICAgIHwgIDIg Ky0KIGxpYmF2Zm9ybWF0L2xpYm1vZHBsdWcuYyAgICAgfCAgMiArLQogbGliYXZmb3JtYXQvbG1s bTQuYyAgICAgICAgICB8ICAyICstCiBsaWJhdmZvcm1hdC9tY2EuYyAgICAgICAgICAgIHwgIDIg Ky0KIGxpYmF2Zm9ybWF0L21nc3RzLmMgICAgICAgICAgfCAgNCArKy0tCiBsaWJhdmZvcm1hdC9t bHZkZWMuYyAgICAgICAgIHwgIDQgKystLQogbGliYXZmb3JtYXQvbXBjLmMgICAgICAgICAgICB8 ICAyICstCiBsaWJhdmZvcm1hdC9tdHYuYyAgICAgICAgICAgIHwgIDUgKysrLS0KIGxpYmF2Zm9y bWF0L212ZGVjLmMgICAgICAgICAgfCAgNCArKy0tCiBsaWJhdmZvcm1hdC9tdmkuYyAgICAgICAg ICAgIHwgIDIgKy0KIGxpYmF2Zm9ybWF0L25jZGVjLmMgICAgICAgICAgfCAgNCArKy0tCiBsaWJh dmZvcm1hdC9udXYuYyAgICAgICAgICAgIHwgIDIgKy0KIGxpYmF2Zm9ybWF0L3BkdmRlYy5jICAg ICAgICAgfCAgMiArLQogbGliYXZmb3JtYXQvcHBfYm5rLmMgICAgICAgICB8ICA3ICsrKy0tLS0K IGxpYmF2Zm9ybWF0L3BzeHN0ci5jICAgICAgICAgfCAxMCArKysrKy0tLS0KIGxpYmF2Zm9ybWF0 L3B2YS5jICAgICAgICAgICAgfCAxMCArKysrLS0tLS0KIGxpYmF2Zm9ybWF0L3FvYWRlYy5jICAg ICAgICAgfCAgNiArKystLS0KIGxpYmF2Zm9ybWF0L3JlZHNwYXJrLmMgICAgICAgfCAgMiArLQog bGliYXZmb3JtYXQvcmwyLmMgICAgICAgICAgICB8ICAyICstCiBsaWJhdmZvcm1hdC9ybWRlYy5j ICAgICAgICAgIHwgIDYgKysrLS0tCiBsaWJhdmZvcm1hdC9ycGwuYyAgICAgICAgICAgIHwgMTgg KysrKysrKysrKy0tLS0tLS0KIGxpYmF2Zm9ybWF0L3NlZ2FmaWxtLmMgICAgICAgfCAyNCArKysr KysrKysrKystLS0tLS0tLS0tCiBsaWJhdmZvcm1hdC9zaWVycmF2bWQuYyAgICAgIHwgMTkgKysr KysrKy0tLS0tLS0tLS0tCiBsaWJhdmZvcm1hdC9zaWZmLmMgICAgICAgICAgIHwgIDQgKystLQog bGliYXZmb3JtYXQvc211c2guYyAgICAgICAgICB8ICAyICstCiBsaWJhdmZvcm1hdC9zb3hkZWMu YyAgICAgICAgIHwgIDYgKysrKy0tCiBsaWJhdmZvcm1hdC9zd2ZkZWMuYyAgICAgICAgIHwgIDQg KystLQogbGliYXZmb3JtYXQvdGhwLmMgICAgICAgICAgICB8ICA0ICsrLS0KIGxpYmF2Zm9ybWF0 L3RpZXJ0ZXhzZXEuYyAgICAgfCAxMyArKysrKysrLS0tLS0KIGxpYmF2Zm9ybWF0L3R5LmMgICAg ICAgICAgICAgfCAgMiArLQogbGliYXZmb3JtYXQvdmMxdGVzdC5jICAgICAgICB8ICAyICstCiBs aWJhdmZvcm1hdC92aXZpZGFzLmMgICAgICAgIHwgMTIgKysrKystLS0tLS0KIGxpYmF2Zm9ybWF0 L3ZvY19wYWNrZXQuYyAgICAgfCAgMiArLQogbGliYXZmb3JtYXQvdnBrLmMgICAgICAgICAgICB8 ICA3ICsrKystLS0KIGxpYmF2Zm9ybWF0L3dhdmFyYy5jICAgICAgICAgfCAgNCArKy0tCiBsaWJh dmZvcm1hdC93YzNtb3ZpZS5jICAgICAgIHwgMTUgKysrKysrKy0tLS0tLS0KIGxpYmF2Zm9ybWF0 L3dlc3R3b29kX2F1ZC5jICAgfCAxNyArKysrKysrKy0tLS0tLS0tCiBsaWJhdmZvcm1hdC93ZXN0 d29vZF92cWEuYyAgIHwgMTggKysrKysrKystLS0tLS0tLS0KIGxpYmF2Zm9ybWF0L3dzZGRlYy5j ICAgICAgICAgfCAgNiArKysrLS0KIGxpYmF2Zm9ybWF0L3d0dmRlYy5jICAgICAgICAgfCAgMiAr LQogbGliYXZmb3JtYXQvd3ZkZWMuYyAgICAgICAgICB8ICA3ICsrKystLS0KIGxpYmF2Zm9ybWF0 L3htdi5jICAgICAgICAgICAgfCAxOSArKysrKysrKystLS0tLS0tLS0KIGxpYmF2Zm9ybWF0L3l1 djRtcGVnZGVjLmMgICAgfCAgMiArLQogbGliYXZmb3JtYXQveXV2NG1wZWdlbmMuYyAgICB8ICAy ICstCiA4NyBmaWxlcyBjaGFuZ2VkLCAzMjQgaW5zZXJ0aW9ucygrKSwgMzEyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0LzR4bS5jIGIvbGliYXZmb3JtYXQvNHhtLmMKaW5k ZXggMjE4ZWE4MzdjNS4uZDI0NDJmMzE2MCAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvNHhtLmMK KysrIGIvbGliYXZmb3JtYXQvNHhtLmMKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJsaWJh dnV0aWwvbWVtLmgiCiAjaW5jbHVkZSAibGliYXZjb2RlYy9pbnRlcm5hbC5oIgogI2luY2x1ZGUg ImF2Zm9ybWF0LmgiCisjaW5jbHVkZSAiYXZpb19pbnRlcm5hbC5oIgogI2luY2x1ZGUgImRlbXV4 LmgiCiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKIApAQCAtMjM5LDkgKzI0MCwxMCBAQCBzdGF0aWMg aW50IGZvdXJ4bV9yZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCiAgICAgaGVhZGVyID0g YXZfbWFsbG9jKGhlYWRlcl9zaXplKTsKICAgICBpZiAoIWhlYWRlcikKICAgICAgICAgcmV0dXJu IEFWRVJST1IoRU5PTUVNKTsKLSAgICBpZiAoYXZpb19yZWFkKHBiLCBoZWFkZXIsIGhlYWRlcl9z aXplKSAhPSBoZWFkZXJfc2l6ZSkgeworICAgIHJldCA9IGZmaW9fcmVhZF9zaXplKHBiLCBoZWFk ZXIsIGhlYWRlcl9zaXplKTsKKyAgICBpZiAocmV0IDwgMCkgewogICAgICAgICBhdl9mcmVlKGhl YWRlcik7Ci0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgIHJldHVybiByZXQ7 CiAgICAgfQogCiAgICAgLyogdGFrZSB0aGUgbGF6eSBhcHByb2FjaCBhbmQgc2VhcmNoIGZvciBh bnkgYW5kIGFsbCB2dHJrIGFuZCBzdHJrIGNodW5rcyAqLwpAQCAtMzEyLDcgKzMxNCw3IEBAIHN0 YXRpYyBpbnQgZm91cnhtX3JlYWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywKICAgICAgICAg Zm91cmNjX3RhZyA9IEFWX1JMMzIoJmhlYWRlclswXSk7CiAgICAgICAgIHNpemUgICAgICAgPSBB Vl9STDMyKCZoZWFkZXJbNF0pOwogICAgICAgICBpZiAoYXZpb19mZW9mKHBiKSkKLSAgICAgICAg ICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZB TElEREFUQTsKICAgICAgICAgc3dpdGNoIChmb3VyY2NfdGFnKSB7CiAgICAgICAgIGNhc2UgTElT VF9UQUc6CiAgICAgICAgICAgICAvKiB0aGlzIGlzIGEgZ29vZCB0aW1lIHRvIGJ1bXAgdGhlIHZp ZGVvIHB0cyAqLwpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvYWFjZGVjLmMgYi9saWJhdmZvcm1h dC9hYWNkZWMuYwppbmRleCAzOGFjOWRjYmU3Li5mZWYzYzY5ZjBiIDEwMDY0NAotLS0gYS9saWJh dmZvcm1hdC9hYWNkZWMuYworKysgYi9saWJhdmZvcm1hdC9hYWNkZWMuYwpAQCAtMTc1LDcgKzE3 NSw3IEBAIHJldHJ5OgogICAgICAgICByZXR1cm4gcmV0OwogCiAgICAgaWYgKHJldCA8IEFEVFNf SEVBREVSX1NJWkUpCi0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgIHJldHVy biBBVkVSUk9SX0lOVkFMSUREQVRBOwogCiAgICAgaWYgKChBVl9SQjE2KHBrdC0+ZGF0YSkgPj4g NCkgIT0gMHhmZmYpIHsKICAgICAgICAgLy8gUGFyc2UgYWxsIHRoZSBJRDMgaGVhZGVycyBiZXR3 ZWVuIGZyYW1lcwpAQCAtMTg0LDcgKzE4NCw3IEBAIHJldHJ5OgogICAgICAgICBhdl9hc3NlcnQy KGFwcGVuZCA+IDApOwogICAgICAgICByZXQgPSBhdl9hcHBlbmRfcGFja2V0KHMtPnBiLCBwa3Qs IGFwcGVuZCk7CiAgICAgICAgIGlmIChyZXQgIT0gYXBwZW5kKQotICAgICAgICAgICAgcmV0dXJu IEFWRVJST1IoRUlPKTsKKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwog ICAgICAgICBpZiAoIWZmX2lkM3YyX21hdGNoKHBrdC0+ZGF0YSwgSUQzdjJfREVGQVVMVF9NQUdJ QykpIHsKICAgICAgICAgICAgIGF2X3BhY2tldF91bnJlZihwa3QpOwogICAgICAgICAgICAgcmV0 ID0gYWR0c19hYWNfcmVzeW5jKHMpOwpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvYWF4ZGVjLmMg Yi9saWJhdmZvcm1hdC9hYXhkZWMuYwppbmRleCA0MGEwODhhMzViLi45OTI2YmUwZjRiIDEwMDY0 NAotLS0gYS9saWJhdmZvcm1hdC9hYXhkZWMuYworKysgYi9saWJhdmZvcm1hdC9hYXhkZWMuYwpA QCAtMzQ1LDkgKzM0NSwxMCBAQCBzdGF0aWMgaW50IGFheF9yZWFkX3BhY2tldChBVkZvcm1hdENv bnRleHQgKnMsIEFWUGFja2V0ICpwa3QpCiAgICAgICAgICAgICBleHRyYWRhdGEgPSBhdl9tYWxs b2MoZXh0cmFkYXRhX3NpemUgKyBBVl9JTlBVVF9CVUZGRVJfUEFERElOR19TSVpFKTsKICAgICAg ICAgICAgIGlmICghZXh0cmFkYXRhKQogICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVO T01FTSk7Ci0gICAgICAgICAgICBpZiAoYXZpb19yZWFkKHBiLCBleHRyYWRhdGEsIGV4dHJhZGF0 YV9zaXplKSAhPSBleHRyYWRhdGFfc2l6ZSkgeworICAgICAgICAgICAgcmV0ID0gZmZpb19yZWFk X3NpemUocGIsIGV4dHJhZGF0YSwgZXh0cmFkYXRhX3NpemUpOworICAgICAgICAgICAgaWYgKHJl dCA8IDApIHsKICAgICAgICAgICAgICAgICBhdl9mcmVlKGV4dHJhZGF0YSk7Ci0gICAgICAgICAg ICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owog ICAgICAgICAgICAgfQogICAgICAgICAgICAgbWVtc2V0KGV4dHJhZGF0YSArIGV4dHJhZGF0YV9z aXplLCAwLCBBVl9JTlBVVF9CVUZGRVJfUEFERElOR19TSVpFKTsKICAgICAgICAgfQpAQCAtMzU2 LDcgKzM1Nyw3IEBAIHN0YXRpYyBpbnQgYWF4X3JlYWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAq cywgQVZQYWNrZXQgKnBrdCkKICAgICByZXQgPSBhdl9nZXRfcGFja2V0KHBiLCBwa3QsIHNpemUp OwogICAgIGlmIChyZXQgIT0gc2l6ZSkgewogICAgICAgICBhdl9mcmVlKGV4dHJhZGF0YSk7Ci0g ICAgICAgIHJldHVybiByZXQgPCAwID8gcmV0IDogQVZFUlJPUihFSU8pOworICAgICAgICByZXR1 cm4gcmV0IDwgMCA/IHJldCA6IEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgfQogICAgIHBrdC0+ ZHVyYXRpb24gPSAxOwogICAgIHBrdC0+c3RyZWFtX2luZGV4ID0gMDsKZGlmZiAtLWdpdCBhL2xp YmF2Zm9ybWF0L2FkeGRlYy5jIGIvbGliYXZmb3JtYXQvYWR4ZGVjLmMKaW5kZXggMDBiNjUyMzE1 Zi4uYjk5MzY3OTlmOSAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvYWR4ZGVjLmMKKysrIGIvbGli YXZmb3JtYXQvYWR4ZGVjLmMKQEAgLTc1LDcgKzc1LDcgQEAgc3RhdGljIGludCBhZHhfcmVhZF9w YWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQogICAgICAgICBhdl9zaHJp bmtfcGFja2V0KHBrdCwgc2l6ZSk7CiAgICAgICAgIHBrdC0+ZmxhZ3MgJj0gfkFWX1BLVF9GTEFH X0NPUlJVUFQ7CiAgICAgfSBlbHNlIGlmIChyZXQgPCBzaXplKSB7Ci0gICAgICAgIHJldHVybiBB VkVSUk9SKEVJTyk7CisgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgIH0g ZWxzZSB7CiAgICAgICAgIHNpemUgPSByZXQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvbGliYXZmb3Jt YXQvYWlmZmRlYy5jIGIvbGliYXZmb3JtYXQvYWlmZmRlYy5jCmluZGV4IGQ5ZDU4MGJkYjUuLmZm NDdkOGRjN2IgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L2FpZmZkZWMuYworKysgYi9saWJhdmZv cm1hdC9haWZmZGVjLmMKQEAgLTYwLDcgKzYwLDcgQEAgc3RhdGljIGludDY0X3QgZ2V0X3RhZyhB VklPQ29udGV4dCAqcGIsIHVpbnQzMl90ICogdGFnKQogICAgIGludDY0X3Qgc2l6ZTsKIAogICAg IGlmIChhdmlvX2Zlb2YocGIpKQotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAg ICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKIAogICAgICp0YWcgPSBhdmlvX3JsMzIocGIp OwogICAgIHNpemUgPSBhdmlvX3JiMzIocGIpOwpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvYWxw LmMgYi9saWJhdmZvcm1hdC9hbHAuYwppbmRleCBhZDhlMTYwMjIzLi4xOGNjNjM2Mjk2IDEwMDY0 NAotLS0gYS9saWJhdmZvcm1hdC9hbHAuYworKysgYi9saWJhdmZvcm1hdC9hbHAuYwpAQCAtMjQs NiArMjQsNyBAQAogCiAjaW5jbHVkZSAibGliYXZ1dGlsL2NoYW5uZWxfbGF5b3V0LmgiCiAjaW5j bHVkZSAiYXZmb3JtYXQuaCIKKyNpbmNsdWRlICJhdmlvX2ludGVybmFsLmgiCiAjaW5jbHVkZSAi ZGVtdXguaCIKICNpbmNsdWRlICJpbnRlcm5hbC5oIgogI2luY2x1ZGUgIm11eC5oIgpAQCAtOTAs MTAgKzkxLDggQEAgc3RhdGljIGludCBhbHBfcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpz KQogICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKICAgICB9CiAKLSAgICBpZiAo KHJldCA9IGF2aW9fcmVhZChzLT5wYiwgaGRyLT5hZHBjbSwgc2l6ZW9mKGhkci0+YWRwY20pKSkg PCAwKQorICAgIGlmICgocmV0ID0gZmZpb19yZWFkX3NpemUocy0+cGIsIGhkci0+YWRwY20sIHNp emVvZihoZHItPmFkcGNtKSkpIDwgMCkKICAgICAgICAgcmV0dXJuIHJldDsKLSAgICBlbHNlIGlm IChyZXQgIT0gc2l6ZW9mKGhkci0+YWRwY20pKQotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8p OwogCiAgICAgaWYgKHN0cm5jbXAoIkFEUENNIiwgaGRyLT5hZHBjbSwgc2l6ZW9mKGhkci0+YWRw Y20pKSAhPSAwKQogICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKZGlmZiAtLWdp dCBhL2xpYmF2Zm9ybWF0L2FwYy5jIGIvbGliYXZmb3JtYXQvYXBjLmMKaW5kZXggZDI0ZjU3ZDAy MS4uZGEzZDgwYmI5ZSAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvYXBjLmMKKysrIGIvbGliYXZm b3JtYXQvYXBjLmMKQEAgLTczLDggKzczLDExIEBAIHN0YXRpYyBpbnQgYXBjX3JlYWRfaGVhZGVy KEFWRm9ybWF0Q29udGV4dCAqcykKIAogc3RhdGljIGludCBhcGNfcmVhZF9wYWNrZXQoQVZGb3Jt YXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQogewotICAgIGlmIChhdl9nZXRfcGFja2V0KHMt PnBiLCBwa3QsIE1BWF9SRUFEX1NJWkUpIDw9IDApCi0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJ Tyk7CisgICAgaW50IHJldCA9IGF2X2dldF9wYWNrZXQocy0+cGIsIHBrdCwgTUFYX1JFQURfU0la RSk7CisgICAgaWYgKHJldCA8IDApCisgICAgICAgIHJldHVybiByZXQ7CisgICAgZWxzZSBpZiAo cmV0ID09IDApCisgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgIHBrdC0+ c3RyZWFtX2luZGV4ID0gMDsKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2xpYmF2Zm9y bWF0L2FwZS5jIGIvbGliYXZmb3JtYXQvYXBlLmMKaW5kZXggZjg2Y2E1ZTg5NC4uN2U2YmYxMjk2 MSAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvYXBlLmMKKysrIGIvbGliYXZmb3JtYXQvYXBlLmMK QEAgLTM5NSw3ICszOTUsNyBAQCBzdGF0aWMgaW50IGFwZV9yZWFkX3BhY2tldChBVkZvcm1hdENv bnRleHQgKiBzLCBBVlBhY2tldCAqIHBrdCkKICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJP UiwgImludmFsaWQgcGFja2V0IHNpemU6ICU4IlBSSWQ2NCJcbiIsCiAgICAgICAgICAgICAgICBh cGUtPmZyYW1lc1thcGUtPmN1cnJlbnRmcmFtZV0uc2l6ZSk7CiAgICAgICAgIGFwZS0+Y3VycmVu dGZyYW1lKys7Ci0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgIHJldHVybiBB VkVSUk9SX0lOVkFMSUREQVRBOwogICAgIH0KIAogICAgIHJldCA9IGF2X25ld19wYWNrZXQocGt0 LCBhcGUtPmZyYW1lc1thcGUtPmN1cnJlbnRmcmFtZV0uc2l6ZSArIGV4dHJhX3NpemUpOwpkaWZm IC0tZ2l0IGEvbGliYXZmb3JtYXQvYXBtLmMgYi9saWJhdmZvcm1hdC9hcG0uYwppbmRleCBiMzcx NmMxZDgwLi43NmFlOWZkODQ0IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9hcG0uYworKysgYi9s aWJhdmZvcm1hdC9hcG0uYwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgImNvbmZpZ19jb21w b25lbnRzLmgiCiAKICNpbmNsdWRlICJhdmZvcm1hdC5oIgorI2luY2x1ZGUgImF2aW9faW50ZXJu YWwuaCIKICNpbmNsdWRlICJkZW11eC5oIgogI2luY2x1ZGUgImludGVybmFsLmgiCiAjaW5jbHVk ZSAibXV4LmgiCkBAIC0xNTMsMTAgKzE1NCw4IEBAIHN0YXRpYyBpbnQgYXBtX3JlYWRfaGVhZGVy KEFWRm9ybWF0Q29udGV4dCAqcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChp bnQ2NF90KXBhci0+c2FtcGxlX3JhdGUgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGFyLT5iaXRzX3Blcl9jb2RlZF9zYW1wbGU7CiAKLSAgICBpZiAoKHJldCA9IGF2aW9fcmVh ZChzLT5wYiwgYnVmLCBBUE1fRklMRV9FWFRSQURBVEFfU0laRSkpIDwgMCkKKyAgICBpZiAoKHJl dCA9IGZmaW9fcmVhZF9zaXplKHMtPnBiLCBidWYsIEFQTV9GSUxFX0VYVFJBREFUQV9TSVpFKSkg PCAwKQogICAgICAgICByZXR1cm4gcmV0OwotICAgIGVsc2UgaWYgKHJldCAhPSBBUE1fRklMRV9F WFRSQURBVEFfU0laRSkKLSAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKIAogICAgIGFwbV9w YXJzZV9leHRyYWRhdGEoJmV4dHJhZGF0YSwgYnVmKTsKIApkaWZmIC0tZ2l0IGEvbGliYXZmb3Jt YXQvYXJnb19hc2YuYyBiL2xpYmF2Zm9ybWF0L2FyZ29fYXNmLmMKaW5kZXggZTA4ZjAyOWY4MC4u MTE2MzY3NTE2YSAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvYXJnb19hc2YuYworKysgYi9saWJh dmZvcm1hdC9hcmdvX2FzZi5jCkBAIC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJsaWJhdnV0 aWwvYXZzdHJpbmcuaCIKICNpbmNsdWRlICJhdmZvcm1hdC5oIgorI2luY2x1ZGUgImF2aW9faW50 ZXJuYWwuaCIKICNpbmNsdWRlICJkZW11eC5oIgogI2luY2x1ZGUgImludGVybmFsLmgiCiAjaW5j bHVkZSAibXV4LmgiCkBAIC0xODgsMTAgKzE4OSw4IEBAIHN0YXRpYyBpbnQgYXJnb19hc2ZfcmVh ZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgIGlmICghKHN0ID0gYXZmb3JtYXRfbmV3 X3N0cmVhbShzLCBOVUxMKSkpCiAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7CiAKLSAg ICBpZiAoKHJldCA9IGF2aW9fcmVhZChwYiwgYnVmLCBBU0ZfRklMRV9IRUFERVJfU0laRSkpIDwg MCkKKyAgICBpZiAoKHJldCA9IGZmaW9fcmVhZF9zaXplKHBiLCBidWYsIEFTRl9GSUxFX0hFQURF Ul9TSVpFKSkgPCAwKQogICAgICAgICByZXR1cm4gcmV0OwotICAgIGVsc2UgaWYgKHJldCAhPSBB U0ZfRklMRV9IRUFERVJfU0laRSkKLSAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKIAogICAg IGZmX2FyZ29fYXNmX3BhcnNlX2ZpbGVfaGVhZGVyKCZhc2YtPmZoZHIsIGJ1Zik7CiAKQEAgLTIw NSwxMCArMjA0LDggQEAgc3RhdGljIGludCBhcmdvX2FzZl9yZWFkX2hlYWRlcihBVkZvcm1hdENv bnRleHQgKnMpCiAgICAgaWYgKChyZXQgPSBhdmlvX3NraXAocGIsIGFzZi0+Zmhkci5jaHVua19v ZmZzZXQgLSBBU0ZfRklMRV9IRUFERVJfU0laRSkpIDwgMCkKICAgICAgICAgcmV0dXJuIHJldDsK IAotICAgIGlmICgocmV0ID0gYXZpb19yZWFkKHBiLCBidWYsIEFTRl9DSFVOS19IRUFERVJfU0la RSkpIDwgMCkKKyAgICBpZiAoKHJldCA9IGZmaW9fcmVhZF9zaXplKHBiLCBidWYsIEFTRl9DSFVO S19IRUFERVJfU0laRSkpIDwgMCkKICAgICAgICAgcmV0dXJuIHJldDsKLSAgICBlbHNlIGlmIChy ZXQgIT0gQVNGX0NIVU5LX0hFQURFUl9TSVpFKQotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8p OwogCiAgICAgZmZfYXJnb19hc2ZfcGFyc2VfY2h1bmtfaGVhZGVyKCZhc2YtPmNraGRyLCBidWYp OwogCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9hcmdvX2N2Zy5jIGIvbGliYXZmb3JtYXQvYXJn b19jdmcuYwppbmRleCAwM2FlNmZhNTllLi45MzJlYzhiOTY2IDEwMDY0NAotLS0gYS9saWJhdmZv cm1hdC9hcmdvX2N2Zy5jCisrKyBiL2xpYmF2Zm9ybWF0L2FyZ29fY3ZnLmMKQEAgLTI1LDYgKzI1 LDcgQEAKICNpbmNsdWRlICJsaWJhdnV0aWwvYXZzdHJpbmcuaCIKICNpbmNsdWRlICJsaWJhdnV0 aWwvY2hhbm5lbF9sYXlvdXQuaCIKICNpbmNsdWRlICJhdmZvcm1hdC5oIgorI2luY2x1ZGUgImF2 aW9faW50ZXJuYWwuaCIKICNpbmNsdWRlICJkZW11eC5oIgogI2luY2x1ZGUgImludGVybmFsLmgi CiAjaW5jbHVkZSAibXV4LmgiCkBAIC0xMzksMTAgKzE0MCw4IEBAIHN0YXRpYyBpbnQgYXJnb19j dmdfcmVhZF9jaGVja3N1bShBVklPQ29udGV4dCAqcGIsIGNvbnN0IEFyZ29DVkdIZWFkZXIgKmN2 ZywgdWluCiAgICAgICAgIHJldHVybiByZXQ7CiAKICAgICAvKiBOQjogTm90IHVzaW5nIGF2aW9f cmwzMigpIGJlY2F1c2Ugbm8gZXJyb3IgY2hlY2tpbmcuICovCi0gICAgaWYgKChyZXQgPSBhdmlv X3JlYWQocGIsIGJ1Ziwgc2l6ZW9mKGJ1ZikpKSA8IDApCisgICAgaWYgKChyZXQgPSBmZmlvX3Jl YWRfc2l6ZShwYiwgYnVmLCBzaXplb2YoYnVmKSkpIDwgMCkKICAgICAgICAgcmV0dXJuIHJldDsK LSAgICBlbHNlIGlmIChyZXQgIT0gc2l6ZW9mKGJ1ZikpCi0gICAgICAgIHJldHVybiBBVkVSUk9S KEVJTyk7CiAKICAgICBpZiAoKHJldCA9IGF2aW9fc2VlayhwYiwgQVJHT19DVkdfSEVBREVSX1NJ WkUsIFNFRUtfU0VUKSkgPCAwKQogICAgICAgICByZXR1cm4gcmV0OwpAQCAtMTYzLDEwICsxNjIs OCBAQCBzdGF0aWMgaW50IGFyZ29fY3ZnX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykK ICAgICBpZiAoIShzdCA9IGF2Zm9ybWF0X25ld19zdHJlYW0ocywgTlVMTCkpKQogICAgICAgICBy ZXR1cm4gQVZFUlJPUihFTk9NRU0pOwogCi0gICAgaWYgKChyZXQgPSBhdmlvX3JlYWQocy0+cGIs IGJ1ZiwgQVJHT19DVkdfSEVBREVSX1NJWkUpKSA8IDApCisgICAgaWYgKChyZXQgPSBmZmlvX3Jl YWRfc2l6ZShzLT5wYiwgYnVmLCBBUkdPX0NWR19IRUFERVJfU0laRSkpIDwgMCkKICAgICAgICAg cmV0dXJuIHJldDsKLSAgICBlbHNlIGlmIChyZXQgIT0gQVJHT19DVkdfSEVBREVSX1NJWkUpCi0g ICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CiAKICAgICBjdHgtPmhlYWRlci5zaXplICAgPSBB Vl9STDMyKGJ1ZiArIDApOwogICAgIGN0eC0+aGVhZGVyLmxvb3AgICA9IEFWX1JMMzIoYnVmICsg NCk7CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9hdnMuYyBiL2xpYmF2Zm9ybWF0L2F2cy5jCmlu ZGV4IDNjZDgxNDgzNmIuLjg0Y2QxMjY3ZTYgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L2F2cy5j CisrKyBiL2xpYmF2Zm9ybWF0L2F2cy5jCkBAIC0yNiw2ICsyNiw3IEBACiAgKi8KIAogI2luY2x1 ZGUgImF2Zm9ybWF0LmgiCisjaW5jbHVkZSAiYXZpb19pbnRlcm5hbC5oIgogI2luY2x1ZGUgImRl bXV4LmgiCiAjaW5jbHVkZSAidm9jLmgiCiAKQEAgLTExMywxMCArMTE0LDkgQEAgYXZzX3JlYWRf dmlkZW9fcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqIHMsIEFWUGFja2V0ICogcGt0LAogICAgIHBr dC0+ZGF0YVtwYWxldHRlX3NpemUgKyAxXSA9IHR5cGU7CiAgICAgcGt0LT5kYXRhW3BhbGV0dGVf c2l6ZSArIDJdID0gc2l6ZSAmIDB4RkY7CiAgICAgcGt0LT5kYXRhW3BhbGV0dGVfc2l6ZSArIDNd ID0gKHNpemUgPj4gOCkgJiAweEZGOwotICAgIHJldCA9IGF2aW9fcmVhZChzLT5wYiwgcGt0LT5k YXRhICsgcGFsZXR0ZV9zaXplICsgNCwgc2l6ZSAtIDQpICsgNDsKLSAgICBpZiAocmV0IDwgc2l6 ZSkgewotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOwotICAgIH0KKyAgICByZXQgPSBmZmlv X3JlYWRfc2l6ZShzLT5wYiwgcGt0LT5kYXRhICsgcGFsZXR0ZV9zaXplICsgNCwgc2l6ZSAtIDQp ICsgNDsKKyAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgcmV0dXJuIHJldDsKIAogICAgIHBrdC0+ c2l6ZSA9IHJldCArIHBhbGV0dGVfc2l6ZTsKICAgICBwa3QtPnN0cmVhbV9pbmRleCA9IGF2cy0+ c3RfdmlkZW8tPmluZGV4OwpAQCAtMTY4LDcgKzE2OCw3IEBAIHN0YXRpYyBpbnQgYXZzX3JlYWRf cGFja2V0KEFWRm9ybWF0Q29udGV4dCAqIHMsIEFWUGFja2V0ICogcGt0KQogICAgIHdoaWxlICgx KSB7CiAgICAgICAgIGlmIChhdnMtPnJlbWFpbmluZ19mcmFtZV9zaXplIDw9IDApIHsKICAgICAg ICAgICAgIGlmICghYXZpb19ybDE2KHMtPnBiKSkgICAgLyogZm91bmQgRU9GICovCi0gICAgICAg ICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gQVZF UlJPUl9JTlZBTElEREFUQTsKICAgICAgICAgICAgIGF2cy0+cmVtYWluaW5nX2ZyYW1lX3NpemUg PSBhdmlvX3JsMTYocy0+cGIpIC0gNDsKICAgICAgICAgfQogCkBAIC0xODQsOSArMTg0LDkgQEAg c3RhdGljIGludCBhdnNfcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICogcywgQVZQYWNrZXQg KiBwa3QpCiAgICAgICAgICAgICBjYXNlIEFWU19QQUxFVFRFOgogICAgICAgICAgICAgICAgIGlm IChzaXplIC0gNCA+IHNpemVvZihwYWxldHRlKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IEFWRVJST1JfSU5WQUxJRERBVEE7Ci0gICAgICAgICAgICAgICAgcmV0ID0gYXZpb19yZWFkKHMt PnBiLCBwYWxldHRlLCBzaXplIC0gNCk7Ci0gICAgICAgICAgICAgICAgaWYgKHJldCA8IHNpemUg LSA0KQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICAg ICAgICAgIHJldCA9IGZmaW9fcmVhZF9zaXplKHMtPnBiLCBwYWxldHRlLCBzaXplIC0gNCk7Cisg ICAgICAgICAgICAgICAgaWYgKHJldCA8IDApCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBy ZXQ7CiAgICAgICAgICAgICAgICAgcGFsZXR0ZV9zaXplID0gc2l6ZTsKICAgICAgICAgICAgICAg ICBicmVhazsKIApkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvYmV0aHNvZnR2aWQuYyBiL2xpYmF2 Zm9ybWF0L2JldGhzb2Z0dmlkLmMKaW5kZXggZTNjNDc1OGYzMC4uZjExOGY2NjhmMSAxMDA2NDQK LS0tIGEvbGliYXZmb3JtYXQvYmV0aHNvZnR2aWQuYworKysgYi9saWJhdmZvcm1hdC9iZXRoc29m dHZpZC5jCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAibGliYXZ1dGlsL2ludHJlYWR3cml0 ZS5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9tZW0uaCIKICNpbmNsdWRlICJhdmZvcm1hdC5oIgor I2luY2x1ZGUgImF2aW9faW50ZXJuYWwuaCIKICNpbmNsdWRlICJkZW11eC5oIgogI2luY2x1ZGUg ImludGVybmFsLmgiCiAjaW5jbHVkZSAibGliYXZjb2RlYy9iZXRoc29mdHZpZGVvLmgiCkBAIC0x NDcsMTAgKzE0OCw5IEBAIHN0YXRpYyBpbnQgcmVhZF9mcmFtZShCVklEX0RlbXV4Q29udGV4dCAq dmlkLCBBVklPQ29udGV4dCAqcGIsIEFWUGFja2V0ICpwa3QsCiAKICAgICAvLyBzZXQgdGhlIHkg b2Zmc2V0IGlmIGl0IGV4aXN0cyAoZGVjb2RlciBoZWFkZXIgZGF0YSBzaG91bGQgYmUgaW4gZGF0 YSBzZWN0aW9uKQogICAgIGlmKGJsb2NrX3R5cGUgPT0gVklERU9fWU9GRl9QX0ZSQU1FKXsKLSAg ICAgICAgaWYgKGF2aW9fcmVhZChwYiwgJnZpZGJ1Zl9zdGFydFt2aWRidWZfbmJ5dGVzXSwgMikg IT0gMikgewotICAgICAgICAgICAgcmV0ID0gQVZFUlJPUihFSU8pOworICAgICAgICByZXQgPSBm ZmlvX3JlYWRfc2l6ZShwYiwgJnZpZGJ1Zl9zdGFydFt2aWRidWZfbmJ5dGVzXSwgMik7CisgICAg ICAgIGlmIChyZXQgPCAwKQogICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICB9CiAgICAg ICAgIHZpZGJ1Zl9uYnl0ZXMgKz0gMjsKICAgICB9CiAKQEAgLTE3MCwxMCArMTcwLDkgQEAgc3Rh dGljIGludCByZWFkX2ZyYW1lKEJWSURfRGVtdXhDb250ZXh0ICp2aWQsIEFWSU9Db250ZXh0ICpw YiwgQVZQYWNrZXQgKnBrdCwKICAgICAgICAgICAgIGlmKGJsb2NrX3R5cGUgPT0gVklERU9fSV9G UkFNRSkKICAgICAgICAgICAgICAgICB2aWRidWZfc3RhcnRbdmlkYnVmX25ieXRlcysrXSA9IGF2 aW9fcjgocGIpOwogICAgICAgICB9IGVsc2UgaWYoY29kZSl7IC8vIHBsYWluIHNlcXVlbmNlCi0g ICAgICAgICAgICBpZiAoYXZpb19yZWFkKHBiLCAmdmlkYnVmX3N0YXJ0W3ZpZGJ1Zl9uYnl0ZXNd LCBjb2RlKSAhPSBjb2RlKSB7Ci0gICAgICAgICAgICAgICAgcmV0ID0gQVZFUlJPUihFSU8pOwor ICAgICAgICAgICAgcmV0ID0gZmZpb19yZWFkX3NpemUocGIsICZ2aWRidWZfc3RhcnRbdmlkYnVm X25ieXRlc10sIGNvZGUpOworICAgICAgICAgICAgaWYgKHJldCA8IDApCiAgICAgICAgICAgICAg ICAgZ290byBmYWlsOwotICAgICAgICAgICAgfQogICAgICAgICAgICAgdmlkYnVmX25ieXRlcyAr PSBjb2RlOwogICAgICAgICB9CiAgICAgICAgIGJ5dGVzX2NvcGllZCArPSBjb2RlICYgMHg3RjsK QEAgLTIzOCw5ICsyMzcsOSBAQCBzdGF0aWMgaW50IHZpZF9yZWFkX3BhY2tldChBVkZvcm1hdENv bnRleHQgKnMsCiAgICAgICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19XQVJOSU5HLCAiZGlz Y2FyZGluZyB1bnVzZWQgcGFsZXR0ZVxuIik7CiAgICAgICAgICAgICAgICAgdmlkLT5oYXNfcGFs ZXR0ZSA9IDA7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoYXZpb19yZWFkKHBiLCB2 aWQtPnBhbGV0dGUsIEJWSURfUEFMRVRURV9TSVpFKSAhPSBCVklEX1BBTEVUVEVfU0laRSkgewot ICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7Ci0gICAgICAgICAgICB9CisgICAg ICAgICAgICByZXRfdmFsdWUgPSBmZmlvX3JlYWRfc2l6ZShwYiwgdmlkLT5wYWxldHRlLCBCVklE X1BBTEVUVEVfU0laRSk7CisgICAgICAgICAgICBpZiAocmV0X3ZhbHVlIDwgMCkKKyAgICAgICAg ICAgICAgICByZXR1cm4gcmV0X3ZhbHVlOwogICAgICAgICAgICAgdmlkLT5oYXNfcGFsZXR0ZSA9 IDE7CiAgICAgICAgICAgICByZXR1cm4gdmlkX3JlYWRfcGFja2V0KHMsIHBrdCk7CiAKQEAgLTI2 OCw3ICsyNjcsNyBAQCBzdGF0aWMgaW50IHZpZF9yZWFkX3BhY2tldChBVkZvcm1hdENvbnRleHQg KnMsCiAgICAgICAgICAgICAgICAgaWYgKHJldF92YWx1ZSA8IDApCiAgICAgICAgICAgICAgICAg ICAgIHJldHVybiByZXRfdmFsdWU7CiAgICAgICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19F UlJPUiwgImluY29tcGxldGUgYXVkaW8gYmxvY2tcbiIpOwotICAgICAgICAgICAgICAgIHJldHVy biBBVkVSUk9SKEVJTyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERB VEE7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwa3QtPnN0cmVhbV9pbmRleCA9IHZpZC0+ YXVkaW9faW5kZXg7CiAgICAgICAgICAgICBwa3QtPmR1cmF0aW9uICAgICA9IGF1ZGlvX2xlbmd0 aDsKQEAgLTI4NCw3ICsyODMsNyBAQCBzdGF0aWMgaW50IHZpZF9yZWFkX3BhY2tldChBVkZvcm1h dENvbnRleHQgKnMsCiAgICAgICAgICAgICBpZih2aWQtPm5mcmFtZXMgIT0gMCkKICAgICAgICAg ICAgICAgICBhdl9sb2cocywgQVZfTE9HX1ZFUkJPU0UsICJyZWFjaGVkIHRlcm1pbmF0aW5nIGNo YXJhY3RlciBidXQgbm90IGFsbCBmcmFtZXMgcmVhZC5cbiIpOwogICAgICAgICAgICAgdmlkLT5p c19maW5pc2hlZCA9IDE7Ci0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAg ICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAg ICAgICAgICBhdl9sb2cocywgQVZfTE9HX0VSUk9SLCAidW5rbm93biBibG9jayAoY2hhcmFjdGVy ID0gJWMsIGRlY2ltYWwgPSAlZCwgaGV4ID0gJXgpISEhXG4iLAogICAgICAgICAgICAgICAgICAg IGJsb2NrX3R5cGUsIGJsb2NrX3R5cGUsIGJsb2NrX3R5cGUpOwpkaWZmIC0tZ2l0IGEvbGliYXZm b3JtYXQvYmZpLmMgYi9saWJhdmZvcm1hdC9iZmkuYwppbmRleCAwNmJmNWQyYzE3Li5lNmFlNzI2 NDA0IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9iZmkuYworKysgYi9saWJhdmZvcm1hdC9iZmku YwpAQCAtMTMxLDcgKzEzMSw3IEBAIHN0YXRpYyBpbnQgYmZpX3JlYWRfcGFja2V0KEFWRm9ybWF0 Q29udGV4dCAqIHMsIEFWUGFja2V0ICogcGt0KQogICAgICAgICB1aW50MzJfdCBzdGF0ZSA9IDA7 CiAgICAgICAgIHdoaWxlKHN0YXRlICE9IE1LVEFHKCdTJywnQScsJ1YnLCdJJykpewogICAgICAg ICAgICAgaWYgKGF2aW9fZmVvZihwYikpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1Io RUlPKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKICAgICAg ICAgICAgIHN0YXRlID0gMjU2KnN0YXRlICsgYXZpb19yOChwYik7CiAgICAgICAgIH0KICAgICAg ICAgLyogTm93IHRoYXQgdGhlIGNodW5rJ3MgbG9jYXRpb24gaXMgY29uZmlybWVkLCB3ZSBwcm9j ZWVkLi4uICovCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9iaW5rLmMgYi9saWJhdmZvcm1hdC9i aW5rLmMKaW5kZXggMDYzMmQzOTBhMi4uMThlYWViYTczOCAxMDA2NDQKLS0tIGEvbGliYXZmb3Jt YXQvYmluay5jCisrKyBiL2xpYmF2Zm9ybWF0L2JpbmsuYwpAQCAtMTIwLDEzICsxMjAsMTMgQEAg c3RhdGljIGludCByZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCiAKICAgICBpZiAodnN0 LT5kdXJhdGlvbiA+IDEwMDAwMDApIHsKICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwg ImludmFsaWQgaGVhZGVyOiBtb3JlIHRoYW4gMTAwMDAwMCBmcmFtZXNcbiIpOwotICAgICAgICBy ZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsK ICAgICB9CiAKICAgICBpZiAoYXZpb19ybDMyKHBiKSA+IGJpbmstPmZpbGVfc2l6ZSkgewogICAg ICAgICBhdl9sb2cocywgQVZfTE9HX0VSUk9SLAogICAgICAgICAgICAgICAgImludmFsaWQgaGVh ZGVyOiBsYXJnZXN0IGZyYW1lIHNpemUgZ3JlYXRlciB0aGFuIGZpbGUgc2l6ZVxuIik7Ci0gICAg ICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSURE QVRBOwogICAgIH0KIAogICAgIGF2aW9fc2tpcChwYiwgNCk7CkBAIC0xNDAsNyArMTQwLDcgQEAg c3RhdGljIGludCByZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCiAgICAgICAgIGF2X2xv ZyhzLCBBVl9MT0dfRVJST1IsCiAgICAgICAgICAgICAgICAiaW52YWxpZCBoZWFkZXI6IGludmFs aWQgZnBzICglIlBSSXUzMiIvJSJQUkl1MzIiKVxuIiwKICAgICAgICAgICAgICAgIGZwc19udW0s IGZwc19kZW4pOwotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICByZXR1cm4g QVZFUlJPUl9JTlZBTElEREFUQTsKICAgICB9CiAgICAgYXZwcml2X3NldF9wdHNfaW5mbyh2c3Qs IDY0LCBmcHNfZGVuLCBmcHNfbnVtKTsKICAgICB2c3QtPmF2Z19mcmFtZV9yYXRlID0gYXZfaW52 X3EodnN0LT50aW1lX2Jhc2UpOwpAQCAtMTYyLDcgKzE2Miw3IEBAIHN0YXRpYyBpbnQgcmVhZF9o ZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgICAgICBhdl9sb2cocywgQVZfTE9HX0VSUk9S LAogICAgICAgICAgICAgICAgImludmFsaWQgaGVhZGVyOiBtb3JlIHRoYW4gIkFWX1NUUklOR0lG WShCSU5LX01BWF9BVURJT19UUkFDS1MpIiBhdWRpbyB0cmFja3MgKCUiUFJJdTMyIilcbiIsCiAg ICAgICAgICAgICAgICBiaW5rLT5udW1fYXVkaW9fdHJhY2tzKTsKLSAgICAgICAgcmV0dXJuIEFW RVJST1IoRUlPKTsKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgfQog CiAgICAgc2lnbmF0dXJlID0gKHZzdC0+Y29kZWNwYXItPmNvZGVjX3RhZyAmIDB4RkZGRkZGKTsK QEAgLTIxNyw3ICsyMTcsNyBAQCBzdGF0aWMgaW50IHJlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4 dCAqcykKIAogICAgICAgICBpZiAobmV4dF9wb3MgPD0gcG9zKSB7CiAgICAgICAgICAgICBhdl9s b2cocywgQVZfTE9HX0VSUk9SLCAiaW52YWxpZCBmcmFtZSBpbmRleCB0YWJsZVxuIik7Ci0gICAg ICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICAgICAgcmV0dXJuIEFWRVJST1Jf SU5WQUxJRERBVEE7CiAgICAgICAgIH0KICAgICAgICAgaWYgKChyZXQgPSBhdl9hZGRfaW5kZXhf ZW50cnkodnN0LCBwb3MsIGksIG5leHRfcG9zIC0gcG9zLCAwLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBrZXlmcmFtZSA/IEFWSU5ERVhfS0VZRlJBTUUgOiAwKSkgPCAw KQpAQCAtMjUzLDcgKzI1Myw3IEBAIHN0YXRpYyBpbnQgcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250 ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQogICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJP UiwKICAgICAgICAgICAgICAgICAgICAiY291bGQgbm90IGZpbmQgaW5kZXggZW50cnkgZm9yIGZy YW1lICUiUFJJZDY0IlxuIiwKICAgICAgICAgICAgICAgICAgICBiaW5rLT52aWRlb19wdHMpOwot ICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgICAgIHJldHVybiBBVkVS Uk9SX0lOVkFMSUREQVRBOwogICAgICAgICB9CiAKICAgICAgICAgYmluay0+cmVtYWluX3BhY2tl dF9zaXplID0gc3RpLT5pbmRleF9lbnRyaWVzW2luZGV4X2VudHJ5XS5zaXplOwpAQCAtMjY3LDcg KzI2Nyw3IEBAIHN0YXRpYyBpbnQgcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBh Y2tldCAqcGt0KQogICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwKICAgICAgICAg ICAgICAgICAgICAiZnJhbWUgJSJQUklkNjQiOiBhdWRpbyBzaXplIGluIGhlYWRlciAoJSJQUkl1 MzIiKSA+IHNpemUgb2YgcGFja2V0IGxlZnQgKCUiUFJJdTMyIilcbiIsCiAgICAgICAgICAgICAg ICAgICAgYmluay0+dmlkZW9fcHRzLCBhdWRpb19zaXplLCBiaW5rLT5yZW1haW5fcGFja2V0X3Np emUpOwotICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgICAgIHJldHVy biBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgICAgICB9CiAgICAgICAgIGJpbmstPnJlbWFpbl9w YWNrZXRfc2l6ZSAtPSA0ICsgYXVkaW9fc2l6ZTsKICAgICAgICAgYmluay0+Y3VycmVudF90cmFj aysrOwpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvYmlua2EuYyBiL2xpYmF2Zm9ybWF0L2Jpbmth LmMKaW5kZXggY2M1ZjI1NTVjYS4uZGY4NTM4OTBjMSAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQv Ymlua2EuYworKysgYi9saWJhdmZvcm1hdC9iaW5rYS5jCkBAIC03NSw3ICs3NSw3IEBAIHN0YXRp YyBpbnQgYmlua2FfcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0 KQogICAgIGF2aW9fc2tpcChwYiwgMik7CiAgICAgcGt0X3NpemUgPSBhdmlvX3JsMTYocGIpICsg NDsKICAgICBpZiAocGt0X3NpemUgPD0gNCkKLSAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsK KyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgcmV0ID0gYXZfbmV3X3Bh Y2tldChwa3QsIHBrdF9zaXplKTsKICAgICBpZiAocmV0IDwgMCkKICAgICAgICAgcmV0dXJuIHJl dDsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2JpbnRleHQuYyBiL2xpYmF2Zm9ybWF0L2JpbnRl eHQuYwppbmRleCBjOTZjMTRjY2Q5Li41NDM5MzIzY2IzIDEwMDY0NAotLS0gYS9saWJhdmZvcm1h dC9iaW50ZXh0LmMKKysrIGIvbGliYXZmb3JtYXQvYmludGV4dC5jCkBAIC0zNiw2ICszNiw3IEBA CiAjaW5jbHVkZSAibGliYXZ1dGlsL29wdC5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9wYXJzZXV0 aWxzLmgiCiAjaW5jbHVkZSAiYXZmb3JtYXQuaCIKKyNpbmNsdWRlICJhdmlvX2ludGVybmFsLmgi CiAjaW5jbHVkZSAiZGVtdXguaCIKICNpbmNsdWRlICJpbnRlcm5hbC5oIgogI2luY2x1ZGUgInNh dWNlLmgiCkBAIC05OSw4ICsxMDAsOCBAQCBzdGF0aWMgaW50IG5leHRfdGFnX3JlYWQoQVZGb3Jt YXRDb250ZXh0ICphdmN0eCwgdWludDY0X3QgKmZzaXplKQogICAgICAgICByZXR1cm4gQVZFUlJP Ul9JTlZBTElEREFUQTsKIAogICAgIGF2aW9fc2VlayhwYiwgc3RhcnRfcG9zIC0gMjU2LCBTRUVL X1NFVCk7Ci0gICAgaWYgKGF2aW9fcmVhZChwYiwgYnVmLCBzaXplb2YobmV4dF9tYWdpYykpICE9 IHNpemVvZihuZXh0X21hZ2ljKSkKLSAgICAgICAgcmV0dXJuIC0xOworICAgIGlmICgobGVuID0g ZmZpb19yZWFkX3NpemUocGIsIGJ1Ziwgc2l6ZW9mKG5leHRfbWFnaWMpKSkgPCAwKQorICAgICAg ICByZXR1cm4gbGVuOwogICAgIGlmIChtZW1jbXAoYnVmLCBuZXh0X21hZ2ljLCBzaXplb2YobmV4 dF9tYWdpYykpKQogICAgICAgICByZXR1cm4gLTE7CiAgICAgaWYgKGF2aW9fcjgocGIpICE9IDB4 MDEpCkBAIC0yNDQsOCArMjQ1LDggQEAgc3RhdGljIGludCB4YmluX3JlYWRfaGVhZGVyKEFWRm9y bWF0Q29udGV4dCAqcykKICAgICAgICAgcmV0dXJuIHJldDsKICAgICBzdC0+Y29kZWNwYXItPmV4 dHJhZGF0YVswXSA9IGZvbnRoZWlnaHQ7CiAgICAgc3QtPmNvZGVjcGFyLT5leHRyYWRhdGFbMV0g PSBmbGFnczsKLSAgICBpZiAoYXZpb19yZWFkKHBiLCBzdC0+Y29kZWNwYXItPmV4dHJhZGF0YSAr IDIsIHN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRhX3NpemUgLSAyKSA8IDApCi0gICAgICAgIHJldHVy biBBVkVSUk9SKEVJTyk7CisgICAgaWYgKChyZXQgPSBmZmlvX3JlYWRfc2l6ZShwYiwgc3QtPmNv ZGVjcGFyLT5leHRyYWRhdGEgKyAyLCBzdC0+Y29kZWNwYXItPmV4dHJhZGF0YV9zaXplIC0gMikp IDwgMCkKKyAgICAgICAgcmV0dXJuIHJldDsKIAogICAgIGlmIChwYi0+c2Vla2FibGUgJiBBVklP X1NFRUtBQkxFX05PUk1BTCkgewogICAgICAgICBpbnQ2NF90IGZzaXplID0gIGF2aW9fc2l6ZShw Yik7CkBAIC0yODEsMTMgKzI4MiwxMyBAQCBzdGF0aWMgaW50IGFkZl9yZWFkX2hlYWRlcihBVkZv cm1hdENvbnRleHQgKnMpCiAgICAgc3QtPmNvZGVjcGFyLT5leHRyYWRhdGFbMF0gPSAxNjsKICAg ICBzdC0+Y29kZWNwYXItPmV4dHJhZGF0YVsxXSA9IEJJTlRFWFRfUEFMRVRURXxCSU5URVhUX0ZP TlQ7CiAKLSAgICBpZiAoYXZpb19yZWFkKHBiLCBzdC0+Y29kZWNwYXItPmV4dHJhZGF0YSArIDIs IDI0KSA8IDApCi0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgaWYgKChyZXQgPSBm ZmlvX3JlYWRfc2l6ZShwYiwgc3QtPmNvZGVjcGFyLT5leHRyYWRhdGEgKyAyLCAyNCkpIDwgMCkK KyAgICAgICAgcmV0dXJuIHJldDsKICAgICBhdmlvX3NraXAocGIsIDE0NCk7Ci0gICAgaWYgKGF2 aW9fcmVhZChwYiwgc3QtPmNvZGVjcGFyLT5leHRyYWRhdGEgKyAyICsgMjQsIDI0KSA8IDApCi0g ICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7Ci0gICAgaWYgKGF2aW9fcmVhZChwYiwgc3QtPmNv ZGVjcGFyLT5leHRyYWRhdGEgKyAyICsgNDgsIDQwOTYpIDwgMCkKLSAgICAgICAgcmV0dXJuIEFW RVJST1IoRUlPKTsKKyAgICBpZiAoKHJldCA9IGZmaW9fcmVhZF9zaXplKHBiLCBzdC0+Y29kZWNw YXItPmV4dHJhZGF0YSArIDIgKyAyNCwgMjQpKSA8IDApCisgICAgICAgIHJldHVybiByZXQ7Cisg ICAgaWYgKChyZXQgPSBmZmlvX3JlYWRfc2l6ZShwYiwgc3QtPmNvZGVjcGFyLT5leHRyYWRhdGEg KyAyICsgNDgsIDQwOTYpKSA8IDApCisgICAgICAgIHJldHVybiByZXQ7CiAKICAgICBpZiAocGIt PnNlZWthYmxlICYgQVZJT19TRUVLQUJMRV9OT1JNQUwpIHsKICAgICAgICAgaW50IGdvdF93aWR0 aCA9IDA7CkBAIC0zMzAsNyArMzMxLDcgQEAgc3RhdGljIGludCBpZGZfcmVhZF9oZWFkZXIoQVZG b3JtYXRDb250ZXh0ICpzKQogICAgIGludDY0X3QgZnNpemU7CiAKICAgICBpZiAoIShwYi0+c2Vl a2FibGUgJiBBVklPX1NFRUtBQkxFX05PUk1BTCkpCi0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJ Tyk7CisgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogCiAgICAgc3QgPSBpbml0 X3N0cmVhbShzKTsKICAgICBpZiAoIXN0KQpAQCAtMzQ5LDEwICszNTAsMTAgQEAgc3RhdGljIGlu dCBpZGZfcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQogCiAgICAgYXZpb19zZWVrKHBi LCBiaW4tPmZzaXplICsgMTIsIFNFRUtfU0VUKTsKIAotICAgIGlmIChhdmlvX3JlYWQocGIsIHN0 LT5jb2RlY3Bhci0+ZXh0cmFkYXRhICsgMiArIDQ4LCA0MDk2KSA8IDApCi0gICAgICAgIHJldHVy biBBVkVSUk9SKEVJTyk7Ci0gICAgaWYgKGF2aW9fcmVhZChwYiwgc3QtPmNvZGVjcGFyLT5leHRy YWRhdGEgKyAyLCA0OCkgPCAwKQotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgIGlm ICgocmV0ID0gZmZpb19yZWFkX3NpemUocGIsIHN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRhICsgMiAr IDQ4LCA0MDk2KSkgPCAwKQorICAgICAgICByZXR1cm4gcmV0OworICAgIGlmICgocmV0ID0gZmZp b19yZWFkX3NpemUocGIsIHN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRhICsgMiwgNDgpKSA8IDApCisg ICAgICAgIHJldHVybiByZXQ7CiAKICAgICBmZl9zYXVjZV9yZWFkKHMsICZiaW4tPmZzaXplLCAm Z290X3dpZHRoLCAwKTsKICAgICBpZiAoc3QtPmNvZGVjcGFyLT53aWR0aCA8IDgpCkBAIC0zNzEs MTUgKzM3MiwxNSBAQCBzdGF0aWMgaW50IHJlYWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywK IAogICAgIGlmIChiaW4tPmZzaXplID4gMCkgewogICAgICAgICBpZiAoYXZfZ2V0X3BhY2tldChz LT5wYiwgcGt0LCBiaW4tPmZzaXplKSA8IDApCi0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUihF SU8pOworICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgICAgIGJp bi0+ZnNpemUgPSAtMTsgLyogZG9uZSAqLwogICAgIH0gZWxzZSBpZiAoIWJpbi0+ZnNpemUpIHsK ICAgICAgICAgaWYgKGF2aW9fZmVvZihzLT5wYikpCi0gICAgICAgICAgICByZXR1cm4gQVZFUlJP UihFSU8pOworICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgICAg IGlmIChhdl9nZXRfcGFja2V0KHMtPnBiLCBwa3QsIGJpbi0+Y2hhcnNfcGVyX2ZyYW1lKSA8IDAp Ci0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICAgICAgcmV0dXJuIEFW RVJST1JfSU5WQUxJRERBVEE7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIEFWRVJST1Io RUlPKTsKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgfQogCiAgICAg cGt0LT5mbGFncyB8PSBBVl9QS1RfRkxBR19LRVk7CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9i aXQuYyBiL2xpYmF2Zm9ybWF0L2JpdC5jCmluZGV4IDVjM2ViMzFjNTcuLjFmM2RjMzFmMzggMTAw NjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L2JpdC5jCisrKyBiL2xpYmF2Zm9ybWF0L2JpdC5jCkBAIC0y Miw2ICsyMiw3IEBACiAjaW5jbHVkZSAiY29uZmlnX2NvbXBvbmVudHMuaCIKIAogI2luY2x1ZGUg ImF2Zm9ybWF0LmgiCisjaW5jbHVkZSAiYXZpb19pbnRlcm5hbC5oIgogI2luY2x1ZGUgImRlbXV4 LmgiCiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKICNpbmNsdWRlICJtdXguaCIKQEAgLTkzLDExICs5 NCw5IEBAIHN0YXRpYyBpbnQgcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLAogICAgIGlm KHBhY2tldF9zaXplID4gTUFYX0ZSQU1FX1NJWkUpCiAgICAgICAgIHJldHVybiBBVkVSUk9SX0lO VkFMSUREQVRBOwogCi0gICAgcmV0ID0gYXZpb19yZWFkKHBiLCAodWludDhfdCopYnVmLCAoOCAq IHBhY2tldF9zaXplKSAqIHNpemVvZih1aW50MTZfdCkpOworICAgIHJldCA9IGZmaW9fcmVhZF9z aXplKHBiLCAodWludDhfdCopYnVmLCAoOCAqIHBhY2tldF9zaXplKSAqIHNpemVvZih1aW50MTZf dCkpOwogICAgIGlmKHJldDwwKQogICAgICAgICByZXR1cm4gcmV0OwotICAgIGlmKHJldCAhPSA4 ICogcGFja2V0X3NpemUgKiBzaXplb2YodWludDE2X3QpKQotICAgICAgICByZXR1cm4gQVZFUlJP UihFSU8pOwogCiAgICAgaWYgKChyZXQgPSBhdl9uZXdfcGFja2V0KHBrdCwgcGFja2V0X3NpemUp KSA8IDApCiAgICAgICAgIHJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9ibXYu YyBiL2xpYmF2Zm9ybWF0L2Jtdi5jCmluZGV4IDg0YWIyYWFjNWEuLmRiMmI0MDc2YzAgMTAwNjQ0 Ci0tLSBhL2xpYmF2Zm9ybWF0L2Jtdi5jCisrKyBiL2xpYmF2Zm9ybWF0L2Jtdi5jCkBAIC0yMiw2 ICsyMiw3IEBACiAjaW5jbHVkZSAibGliYXZ1dGlsL2NoYW5uZWxfbGF5b3V0LmgiCiAjaW5jbHVk ZSAibGliYXZ1dGlsL21lbS5oIgogI2luY2x1ZGUgImF2Zm9ybWF0LmgiCisjaW5jbHVkZSAiYXZp b19pbnRlcm5hbC5oIgogI2luY2x1ZGUgImRlbXV4LmgiCiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIK IApAQCAtODgsOCArODksOCBAQCBzdGF0aWMgaW50IGJtdl9yZWFkX3BhY2tldChBVkZvcm1hdENv bnRleHQgKnMsIEFWUGFja2V0ICpwa3QpCiAgICAgICAgIGlmICgoZXJyID0gYXZfcmVhbGxvY3Ao JmMtPnBhY2tldCwgYy0+c2l6ZSArIDEpKSA8IDApCiAgICAgICAgICAgICByZXR1cm4gZXJyOwog ICAgICAgICBjLT5wYWNrZXRbMF0gPSB0eXBlOwotICAgICAgICBpZiAoYXZpb19yZWFkKHMtPnBi LCBjLT5wYWNrZXQgKyAxLCBjLT5zaXplKSAhPSBjLT5zaXplKQotICAgICAgICAgICAgcmV0dXJu IEFWRVJST1IoRUlPKTsKKyAgICAgICAgaWYgKChlcnIgPSBmZmlvX3JlYWRfc2l6ZShzLT5wYiwg Yy0+cGFja2V0ICsgMSwgYy0+c2l6ZSkpIDwgMCkKKyAgICAgICAgICAgIHJldHVybiBlcnI7CiAg ICAgICAgIGlmICh0eXBlICYgQk1WX0FVRElPKSB7CiAgICAgICAgICAgICBpbnQgYXVkaW9fc2l6 ZSA9IGMtPnBhY2tldFsxXSAqIDY1ICsgMTsKICAgICAgICAgICAgIGlmIChhdWRpb19zaXplID49 IGMtPnNpemUpIHsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2Jyc3RtLmMgYi9saWJhdmZvcm1h dC9icnN0bS5jCmluZGV4IGQyOTAwNDE1NWIuLjNmZTE5ZmZmNzIgMTAwNjQ0Ci0tLSBhL2xpYmF2 Zm9ybWF0L2Jyc3RtLmMKKysrIGIvbGliYXZmb3JtYXQvYnJzdG0uYwpAQCAtMjMsNiArMjMsNyBA QAogI2luY2x1ZGUgImxpYmF2dXRpbC9tZW0uaCIKICNpbmNsdWRlICJsaWJhdmNvZGVjL2J5dGVz dHJlYW0uaCIKICNpbmNsdWRlICJhdmZvcm1hdC5oIgorI2luY2x1ZGUgImF2aW9faW50ZXJuYWwu aCIKICNpbmNsdWRlICJkZW11eC5oIgogI2luY2x1ZGUgImludGVybmFsLmgiCiAKQEAgLTQyNSwx MSArNDI2LDExIEBAIHN0YXRpYyBpbnQgcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBB VlBhY2tldCAqcGt0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGItPmN1 cnJlbnRfYmxvY2sgLSAxKSwgNCAqIGNoYW5uZWxzKTsKIAogICAgICAgICBmb3IgKGkgPSAwOyBp IDwgY2hhbm5lbHM7IGkrKykgewotICAgICAgICAgICAgcmV0ID0gYXZpb19yZWFkKHMtPnBiLCBk c3QsIHNpemUpOworICAgICAgICAgICAgcmV0ID0gZmZpb19yZWFkX3NpemUocy0+cGIsIGRzdCwg c2l6ZSk7CiAgICAgICAgICAgICBkc3QgKz0gc2l6ZTsKICAgICAgICAgICAgIGF2aW9fc2tpcChz LT5wYiwgc2tpcCk7Ci0gICAgICAgICAgICBpZiAocmV0ICE9IHNpemUpIHsKLSAgICAgICAgICAg ICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICAgICAgaWYgKHJldCA8IDApIHsKKyAg ICAgICAgICAgICAgICByZXR1cm4gcmV0OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg ICAgIHBrdC0+ZHVyYXRpb24gPSBzYW1wbGVzOwpAQCAtNDQxLDcgKzQ0Miw3IEBAIHN0YXRpYyBp bnQgcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQogICAgIHBr dC0+c3RyZWFtX2luZGV4ID0gMDsKIAogICAgIGlmIChyZXQgIT0gc2l6ZSkKLSAgICAgICAgcmV0 ID0gQVZFUlJPUihFSU8pOworICAgICAgICByZXQgPSBBVkVSUk9SX0lOVkFMSUREQVRBOwogCiAg ICAgcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2M5My5jIGIvbGliYXZm b3JtYXQvYzkzLmMKaW5kZXggOTMzZmU0YTk5ZS4uMWZiYzA5MzYxMiAxMDA2NDQKLS0tIGEvbGli YXZmb3JtYXQvYzkzLmMKKysrIGIvbGliYXZmb3JtYXQvYzkzLmMKQEAgLTIwLDYgKzIwLDcgQEAK ICAqLwogCiAjaW5jbHVkZSAiYXZmb3JtYXQuaCIKKyNpbmNsdWRlICJhdmlvX2ludGVybmFsLmgi CiAjaW5jbHVkZSAiZGVtdXguaCIKICNpbmNsdWRlICJpbnRlcm5hbC5oIgogI2luY2x1ZGUgInZv Yy5oIgpAQCAtMTU3LDkgKzE1OCw5IEBAIHN0YXRpYyBpbnQgcmVhZF9wYWNrZXQoQVZGb3JtYXRD b250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQogICAgIHBrdC0+ZGF0YVswXSA9IDA7CiAgICAgcGt0 LT5zaXplID0gZGF0YXNpemUgKyAxOwogCi0gICAgcmV0ID0gYXZpb19yZWFkKHBiLCBwa3QtPmRh dGEgKyAxLCBkYXRhc2l6ZSk7Ci0gICAgaWYgKHJldCA8IGRhdGFzaXplKSB7Ci0gICAgICAgIHJl dHVybiBBVkVSUk9SKEVJTyk7CisgICAgcmV0ID0gZmZpb19yZWFkX3NpemUocGIsIHBrdC0+ZGF0 YSArIDEsIGRhdGFzaXplKTsKKyAgICBpZiAocmV0IDwgMCkgeworICAgICAgICByZXR1cm4gcmV0 OwogICAgIH0KIAogICAgIGRhdGFzaXplID0gYXZpb19ybDE2KHBiKTsgLyogcGFsZXR0ZSBzaXpl ICovCkBAIC0xNjksOSArMTcwLDkgQEAgc3RhdGljIGludCByZWFkX3BhY2tldChBVkZvcm1hdENv bnRleHQgKnMsIEFWUGFja2V0ICpwa3QpCiAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZB TElEREFUQTsKICAgICAgICAgfQogICAgICAgICBwa3QtPmRhdGFbMF0gfD0gQzkzX0hBU19QQUxF VFRFOwotICAgICAgICByZXQgPSBhdmlvX3JlYWQocGIsIHBrdC0+ZGF0YSArIHBrdC0+c2l6ZSwg ZGF0YXNpemUpOwotICAgICAgICBpZiAocmV0IDwgZGF0YXNpemUpIHsKLSAgICAgICAgICAgIHJl dHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgIHJldCA9IGZmaW9fcmVhZF9zaXplKHBiLCBwa3Qt PmRhdGEgKyBwa3QtPnNpemUsIGRhdGFzaXplKTsKKyAgICAgICAgaWYgKHJldCA8IDApIHsKKyAg ICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgIH0KICAgICAgICAgcGt0LT5zaXplICs9IDc2 ODsKICAgICB9CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9jYWZkZWMuYyBiL2xpYmF2Zm9ybWF0 L2NhZmRlYy5jCmluZGV4IDVkN2RiZThmNDEuLjk5YWUwNDEzNjQgMTAwNjQ0Ci0tLSBhL2xpYmF2 Zm9ybWF0L2NhZmRlYy5jCisrKyBiL2xpYmF2Zm9ybWF0L2NhZmRlYy5jCkBAIC0yOCw2ICsyOCw3 IEBACiAjaW5jbHVkZSA8aW50dHlwZXMuaD4KIAogI2luY2x1ZGUgImF2Zm9ybWF0LmgiCisjaW5j bHVkZSAiYXZpb19pbnRlcm5hbC5oIgogI2luY2x1ZGUgImRlbXV4LmgiCiAjaW5jbHVkZSAiaW50 ZXJuYWwuaCIKICNpbmNsdWRlICJpc29tLmgiCkBAIC0xNDIsOSArMTQzLDkgQEAgc3RhdGljIGlu dCByZWFkX2t1a2lfY2h1bmsoQVZGb3JtYXRDb250ZXh0ICpzLCBpbnQ2NF90IHNpemUpCiAgICAg ICAgICAgICBhdmlvX3NraXAocGIsIHNpemUpOwogICAgICAgICAgICAgcmV0dXJuIEFWRVJST1Jf SU5WQUxJRERBVEE7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGF2aW9fcmVhZChwYiwgcHJlYW1i bGUsIEFMQUNfUFJFQU1CTEUpICE9IEFMQUNfUFJFQU1CTEUpIHsKKyAgICAgICAgaWYgKChyZXQg PSBmZmlvX3JlYWRfc2l6ZShwYiwgcHJlYW1ibGUsIEFMQUNfUFJFQU1CTEUpKSA8IDApIHsKICAg ICAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJST1IsICJmYWlsZWQgdG8gcmVhZCBwcmVhbWJs ZVxuIik7Ci0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKKyAgICAgICAg ICAgIHJldHVybiByZXQ7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoKHJldCA9IGZmX2FsbG9j X2V4dHJhZGF0YShzdC0+Y29kZWNwYXIsIEFMQUNfSEVBREVSKSkgPCAwKQpAQCAtNDQzLDcgKzQ0 NCw3IEBAIHN0YXRpYyBpbnQgcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBhY2tl dCAqcGt0KQogICAgICAgICBpZiAoIWxlZnQpCiAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9F T0Y7CiAgICAgICAgIGlmIChsZWZ0IDwgMCkKLSAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJ Tyk7CisgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKICAgICB9CiAKICAg ICBwa3RfZnJhbWVzID0gY2FmLT5mcmFtZXNfcGVyX3BhY2tldDsKQEAgLTQ2MSwxMiArNDYyLDEy IEBAIHN0YXRpYyBpbnQgcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBhY2tldCAq cGt0KQogICAgICAgICAgICAgcGt0X3NpemUgICA9IGNhZi0+bnVtX2J5dGVzIC0gc3RpLT5pbmRl eF9lbnRyaWVzW2NhZi0+cGFja2V0X2NudF0ucG9zOwogICAgICAgICAgICAgcGt0X2ZyYW1lcyA9 IHN0LT5kdXJhdGlvbiAgIC0gc3RpLT5pbmRleF9lbnRyaWVzW2NhZi0+cGFja2V0X2NudF0udGlt ZXN0YW1wOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlP KTsKKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgICAgICB9CiAg ICAgfQogCiAgICAgaWYgKHBrdF9zaXplID09IDAgfHwgcGt0X2ZyYW1lcyA9PSAwIHx8IHBrdF9z aXplID4gbGVmdCkKLSAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgcmV0dXJu IEFWRVJST1JfSU5WQUxJRERBVEE7CiAKICAgICByZXMgPSBhdl9nZXRfcGFja2V0KHBiLCBwa3Qs IHBrdF9zaXplKTsKICAgICBpZiAocmVzIDwgMCkKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2Np bmVkZWMuYyBiL2xpYmF2Zm9ybWF0L2NpbmVkZWMuYwppbmRleCBjZDEzZjEzMmMzLi43YmJmMTk4 YjE5IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9jaW5lZGVjLmMKKysrIGIvbGliYXZmb3JtYXQv Y2luZWRlYy5jCkBAIC0zNTQsNyArMzU0LDcgQEAgc3RhdGljIGludCBjaW5lX3JlYWRfc2VlayhB VkZvcm1hdENvbnRleHQgKmF2Y3R4LCBpbnQgc3RyZWFtX2luZGV4LCBpbnQ2NF90IHRpbWUKICAg ICAgICAgcmV0dXJuIEFWRVJST1IoRU5PU1lTKTsKIAogICAgIGlmICghKGF2Y3R4LT5wYi0+c2Vl a2FibGUgJiBBVklPX1NFRUtBQkxFX05PUk1BTCkpCi0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJ Tyk7CisgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT1NZUyk7CiAKICAgICBjaW5lLT5wdHMgPSB0 aW1lc3RhbXA7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9kZmEuYyBi L2xpYmF2Zm9ybWF0L2RmYS5jCmluZGV4IDFkNzhjMzQ4YjEuLjU4MGUzZGRkMjQgMTAwNjQ0Ci0t LSBhL2xpYmF2Zm9ybWF0L2RmYS5jCisrKyBiL2xpYmF2Zm9ybWF0L2RmYS5jCkBAIC04OSw3ICs4 OSw3IEBAIHN0YXRpYyBpbnQgZGZhX3JlYWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQ YWNrZXQgKnBrdCkKICAgICAgICAgcmV0dXJuIEFWRVJST1JfRU9GOwogCiAgICAgaWYgKGF2X2dl dF9wYWNrZXQocGIsIHBrdCwgMTIpICE9IDEyKQotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8p OworICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKICAgICB3aGlsZSAoIWF2aW9f ZmVvZihwYikpIHsKICAgICAgICAgaWYgKCFmaXJzdCkgewogICAgICAgICAgICAgcmV0ID0gYXZf YXBwZW5kX3BhY2tldChwYiwgcGt0LCAxMik7CkBAIC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIGlu dCBkZmFfcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQogICAg ICAgICBmcmFtZV9zaXplID0gQVZfUkwzMihwa3QtPmRhdGEgKyBwa3QtPnNpemUgLSA4KTsKICAg ICAgICAgaWYgKGZyYW1lX3NpemUgPiBJTlRfTUFYIC0gNCkgewogICAgICAgICAgICAgYXZfbG9n KHMsIEFWX0xPR19FUlJPUiwgIlRvbyBsYXJnZSBjaHVuayBzaXplOiAlIlBSSXUzMiJcbiIsIGZy YW1lX3NpemUpOwotICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgICAg IHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgICAgICB9CiAgICAgICAgIGlmIChBVl9S TDMyKHBrdC0+ZGF0YSArIHBrdC0+c2l6ZSAtIDEyKSA9PSBNS1RBRygnRScsICdPJywgJ0YnLCAn UicpKSB7CiAgICAgICAgICAgICBpZiAoZnJhbWVfc2l6ZSkgewpkaWZmIC0tZ2l0IGEvbGliYXZm b3JtYXQvZHNpY2luLmMgYi9saWJhdmZvcm1hdC9kc2ljaW4uYwppbmRleCA2ZWZmMzhlMDEwLi4z YzMyNWY3Y2ZkIDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9kc2ljaW4uYworKysgYi9saWJhdmZv cm1hdC9kc2ljaW4uYwpAQCAtMTUzLDcgKzE1Myw3IEBAIHN0YXRpYyBpbnQgY2luX3JlYWRfZnJh bWVfaGVhZGVyKENpbkRlbXV4Q29udGV4dCAqY2luLCBBVklPQ29udGV4dCAqcGIpIHsKICAgICBo ZHItPmF1ZGlvX2ZyYW1lX3NpemUgPSBhdmlvX3JsMzIocGIpOwogCiAgICAgaWYgKGF2aW9fZmVv ZihwYikgfHwgcGItPmVycm9yKQotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAg ICByZXR1cm4gcGItPmVycm9yID8gcGItPmVycm9yIDogQVZFUlJPUl9JTlZBTElEREFUQTsKIAog ICAgIGlmIChhdmlvX3JsMzIocGIpICE9IDB4QUE1NUFBNTUpCiAgICAgICAgIHJldHVybiBBVkVS Uk9SX0lOVkFMSUREQVRBOwpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvZHNzLmMgYi9saWJhdmZv cm1hdC9kc3MuYwppbmRleCA0N2M4ZjQ5ZDY3Li42Y2FiZGI1NDIxIDEwMDY0NAotLS0gYS9saWJh dmZvcm1hdC9kc3MuYworKysgYi9saWJhdmZvcm1hdC9kc3MuYwpAQCAtMTE2LDYgKzExNiw3IEBA IHN0YXRpYyBpbnQgZHNzX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICBEU1NE ZW11eENvbnRleHQgKmN0eCA9IHMtPnByaXZfZGF0YTsKICAgICBBVklPQ29udGV4dCAqcGIgPSBz LT5wYjsKICAgICBBVlN0cmVhbSAqc3Q7CisgICAgaW50NjRfdCByZXQ2NDsKICAgICBpbnQgcmV0 LCB2ZXJzaW9uOwogCiAgICAgc3QgPSBhdmZvcm1hdF9uZXdfc3RyZWFtKHMsIE5VTEwpOwpAQCAt MTY0LDggKzE2NSw4IEBAIHN0YXRpYyBpbnQgZHNzX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4 dCAqcykKIAogICAgIC8qIEp1bXAgb3ZlciBoZWFkZXIgKi8KIAotICAgIGlmIChhdmlvX3NlZWso cGIsIGN0eC0+ZHNzX2hlYWRlcl9zaXplLCBTRUVLX1NFVCkgIT0gY3R4LT5kc3NfaGVhZGVyX3Np emUpCi0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgaWYgKChyZXQ2NCA9IGF2aW9f c2VlayhwYiwgY3R4LT5kc3NfaGVhZGVyX3NpemUsIFNFRUtfU0VUKSkgPCAwKQorICAgICAgICBy ZXR1cm4gKGludClyZXQ2NDsKIAogICAgIGN0eC0+Y291bnRlciA9IDA7CiAgICAgY3R4LT5zd2Fw ICAgID0gMDsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2R2LmMgYi9saWJhdmZvcm1hdC9kdi5j CmluZGV4IDhhZjBkNWE2NTIuLjg0Njc3Mjg0YmQgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L2R2 LmMKKysrIGIvbGliYXZmb3JtYXQvZHYuYwpAQCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSA8 dGltZS5oPgogI2luY2x1ZGUgImF2Zm9ybWF0LmgiCisjaW5jbHVkZSAiYXZpb19pbnRlcm5hbC5o IgogI2luY2x1ZGUgImRlbXV4LmgiCiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKICNpbmNsdWRlICJs aWJhdmNvZGVjL2R2X3Byb2ZpbGUuaCIKQEAgLTU3Niw2ICs1NzcsNyBAQCBzdGF0aWMgaW50IGR2 X3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKIHsKICAgICB1bnNpZ25lZCBzdGF0ZSwg bWFya2VyX3BvcyA9IDA7CiAgICAgUmF3RFZDb250ZXh0ICpjID0gcy0+cHJpdl9kYXRhOworICAg IGludDY0X3QgcmV0NjQ7CiAgICAgaW50IHJldDsKIAogICAgIGlmICgocmV0ID0gZHZfaW5pdF9k ZW11eChzLCAmYy0+ZHZfZGVtdXgpKSA8IDApCkBAIC01OTgsMTAgKzYwMCwxMCBAQCBzdGF0aWMg aW50IGR2X3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICB9CiAgICAgQVZfV0Iz MihjLT5idWYsIHN0YXRlKTsKIAotICAgIGlmIChhdmlvX3JlYWQocy0+cGIsIGMtPmJ1ZiArIDQs IERWX1BST0ZJTEVfQllURVMgLSA0KSAhPSBEVl9QUk9GSUxFX0JZVEVTIC0gNCB8fAotICAgICAg ICBhdmlvX3NlZWsocy0+cGIsIC1EVl9QUk9GSUxFX0JZVEVTLCBTRUVLX0NVUikgPCAwKSB7Ci0g ICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7Ci0gICAgfQorICAgIGlmICgocmV0ID0gZmZpb19y ZWFkX3NpemUocy0+cGIsIGMtPmJ1ZiArIDQsIERWX1BST0ZJTEVfQllURVMgLSA0KSkgPCAwKQor ICAgICAgICByZXR1cm4gcmV0OworICAgIGlmICgocmV0NjQgPSBhdmlvX3NlZWsocy0+cGIsIC1E Vl9QUk9GSUxFX0JZVEVTLCBTRUVLX0NVUikpIDwgMCkKKyAgICAgICAgcmV0dXJuIChpbnQpcmV0 NjQ7CiAKICAgICBjLT5kdl9kZW11eC5zeXMgPSBhdl9kdl9mcmFtZV9wcm9maWxlKGMtPmR2X2Rl bXV4LnN5cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLT5i dWYsCkBAIC02MzMsMTMgKzYzNSwxMyBAQCBzdGF0aWMgaW50IGR2X3JlYWRfcGFja2V0KEFWRm9y bWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKICAgICAgICAgaW50IHJldDsKICAgICAgICAg aW50NjRfdCBwb3MgPSBhdmlvX3RlbGwocy0+cGIpOwogICAgICAgICBpZiAoIWMtPmR2X2RlbXV4 LnN5cykKLSAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgICAgICByZXR1 cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKICAgICAgICAgc2l6ZSA9IGMtPmR2X2RlbXV4LnN5cy0+ ZnJhbWVfc2l6ZTsKICAgICAgICAgcmV0ID0gYXZpb19yZWFkKHMtPnBiLCBjLT5idWYsIHNpemUp OwogICAgICAgICBpZiAocmV0IDwgMCkgewogICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAg ICAgfSBlbHNlIGlmIChyZXQgPT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlP KTsKKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgICAgICB9CiAK ICAgICAgICAgc2l6ZSA9IGF2cHJpdl9kdl9wcm9kdWNlX3BhY2tldCgmYy0+ZHZfZGVtdXgsIHBr dCwgYy0+YnVmLCBzaXplLCBwb3MpOwpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvZHhhLmMgYi9s aWJhdmZvcm1hdC9keGEuYwppbmRleCA1NmIxOWE3ZmNhLi43NmJjN2E1NDNkIDEwMDY0NAotLS0g YS9saWJhdmZvcm1hdC9keGEuYworKysgYi9saWJhdmZvcm1hdC9keGEuYwpAQCAtMjMsNiArMjMs NyBAQAogCiAjaW5jbHVkZSAibGliYXZ1dGlsL2ludHJlYWR3cml0ZS5oIgogI2luY2x1ZGUgImF2 Zm9ybWF0LmgiCisjaW5jbHVkZSAiYXZpb19pbnRlcm5hbC5oIgogI2luY2x1ZGUgImRlbXV4Lmgi CiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKICNpbmNsdWRlICJyaWZmLmgiCkBAIC0xNzAsNyArMTcx LDcgQEAgc3RhdGljIGludCBkeGFfcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBh Y2tldCAqcGt0KQogICAgICAgICByZXQgPSBhdl9nZXRfcGFja2V0KHMtPnBiLCBwa3QsIHNpemUp OwogICAgICAgICBwa3QtPnN0cmVhbV9pbmRleCA9IDE7CiAgICAgICAgIGlmKHJldCAhPSBzaXpl KQotICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgICAgIHJldHVybiBB VkVSUk9SX0lOVkFMSUREQVRBOwogICAgICAgICBjLT5ieXRlc19sZWZ0IC09IHNpemU7CiAgICAg ICAgIGMtPndhdnBvcyA9IGF2aW9fdGVsbChzLT5wYik7CiAgICAgICAgIHJldHVybiAwOwpAQCAt MjE0LDEwICsyMTUsOSBAQCBzdGF0aWMgaW50IGR4YV9yZWFkX3BhY2tldChBVkZvcm1hdENvbnRl eHQgKnMsIEFWUGFja2V0ICpwa3QpCiAgICAgICAgICAgICBpZiAocmV0IDwgMCkKICAgICAgICAg ICAgICAgICByZXR1cm4gcmV0OwogICAgICAgICAgICAgbWVtY3B5KHBrdC0+ZGF0YSArIHBhbF9z aXplLCBidWYsIERYQV9FWFRSQV9TSVpFKTsKLSAgICAgICAgICAgIHJldCA9IGF2aW9fcmVhZChz LT5wYiwgcGt0LT5kYXRhICsgRFhBX0VYVFJBX1NJWkUgKyBwYWxfc2l6ZSwgc2l6ZSk7Ci0gICAg ICAgICAgICBpZihyZXQgIT0gc2l6ZSl7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1Io RUlPKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldCA9IGZmaW9fcmVhZF9zaXplKHMt PnBiLCBwa3QtPmRhdGEgKyBEWEFfRVhUUkFfU0laRSArIHBhbF9zaXplLCBzaXplKTsKKyAgICAg ICAgICAgIGlmIChyZXQgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAg ICAgICBpZihwYWxfc2l6ZSkgbWVtY3B5KHBrdC0+ZGF0YSwgcGFsLCBwYWxfc2l6ZSk7CiAgICAg ICAgICAgICBwa3QtPnN0cmVhbV9pbmRleCA9IDA7CiAgICAgICAgICAgICBjLT5mcmFtZXMtLTsK ZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2VsZWN0cm9uaWNhcnRzLmMgYi9saWJhdmZvcm1hdC9l bGVjdHJvbmljYXJ0cy5jCmluZGV4IDA0YWNmM2E0MDkuLjc0YTA1MGZlYzYgMTAwNjQ0Ci0tLSBh L2xpYmF2Zm9ybWF0L2VsZWN0cm9uaWNhcnRzLmMKKysrIGIvbGliYXZmb3JtYXQvZWxlY3Ryb25p Y2FydHMuYwpAQCAtNTM3LDcgKzUzNyw3IEBAIHN0YXRpYyBpbnQgZWFfcmVhZF9oZWFkZXIoQVZG b3JtYXRDb250ZXh0ICpzKQogICAgIEFWU3RyZWFtICpzdDsKIAogICAgIGlmIChwcm9jZXNzX2Vh X2hlYWRlcihzKTw9MCkKLSAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgcmV0 dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAKICAgICBpZiAoaW5pdF92aWRlb19zdHJlYW0ocywg JmVhLT52aWRlbykgfHwgaW5pdF92aWRlb19zdHJlYW0ocywgJmVhLT5hbHBoYSkpCiAgICAgICAg IHJldHVybiBBVkVSUk9SKEVOT01FTSk7CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9maWxtc3Ry aXBkZWMuYyBiL2xpYmF2Zm9ybWF0L2ZpbG1zdHJpcGRlYy5jCmluZGV4IDVjZTBhZjIzNGMuLjFh M2Y0NWY2MWMgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L2ZpbG1zdHJpcGRlYy5jCisrKyBiL2xp YmF2Zm9ybWF0L2ZpbG1zdHJpcGRlYy5jCkBAIC00Myw3ICs0Myw3IEBAIHN0YXRpYyBpbnQgcmVh ZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgIEFWU3RyZWFtICpzdDsKIAogICAgIGlm ICghKHMtPnBiLT5zZWVrYWJsZSAmIEFWSU9fU0VFS0FCTEVfTk9STUFMKSkKLSAgICAgICAgcmV0 dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PU1lTKTsKIAogICAg IGF2aW9fc2VlayhwYiwgYXZpb19zaXplKHBiKSAtIDM2LCBTRUVLX1NFVCk7CiAgICAgaWYgKGF2 aW9fcmIzMihwYikgIT0gUkFORF9UQUcpIHsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2ZsaWMu YyBiL2xpYmF2Zm9ybWF0L2ZsaWMuYwppbmRleCA0MWRmYjRmMzllLi4wMWNkNDY5OGNmIDEwMDY0 NAotLS0gYS9saWJhdmZvcm1hdC9mbGljLmMKKysrIGIvbGliYXZmb3JtYXQvZmxpYy5jCkBAIC0z NCw2ICszNCw3IEBACiAjaW5jbHVkZSAibGliYXZ1dGlsL2NoYW5uZWxfbGF5b3V0LmgiCiAjaW5j bHVkZSAibGliYXZ1dGlsL2ludHJlYWR3cml0ZS5oIgogI2luY2x1ZGUgImF2Zm9ybWF0LmgiCisj aW5jbHVkZSAiYXZpb19pbnRlcm5hbC5oIgogI2luY2x1ZGUgImRlbXV4LmgiCiAjaW5jbHVkZSAi aW50ZXJuYWwuaCIKIApAQCAtOTcsOCArOTgsOCBAQCBzdGF0aWMgaW50IGZsaWNfcmVhZF9oZWFk ZXIoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgIGZsaWMtPmZyYW1lX251bWJlciA9IDA7CiAKICAg ICAvKiBsb2FkIHRoZSB3aG9sZSBoZWFkZXIgYW5kIHB1bGwgb3V0IHRoZSB3aWR0aCBhbmQgaGVp Z2h0ICovCi0gICAgaWYgKGF2aW9fcmVhZChwYiwgaGVhZGVyLCBGTElDX0hFQURFUl9TSVpFKSAh PSBGTElDX0hFQURFUl9TSVpFKQotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgIGlm ICgocmV0ID0gZmZpb19yZWFkX3NpemUocGIsIGhlYWRlciwgRkxJQ19IRUFERVJfU0laRSkpIDwg MCkKKyAgICAgICAgcmV0dXJuIHJldDsKIAogICAgIG1hZ2ljX251bWJlciA9IEFWX1JMMTYoJmhl YWRlcls0XSk7CiAgICAgc3BlZWQgPSBBVl9STDMyKCZoZWFkZXJbMHgxMF0pOwpAQCAtMTMxLDkg KzEzMiw5IEBAIHN0YXRpYyBpbnQgZmxpY19yZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMp CiAgICAgbWVtY3B5KHN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRhLCBoZWFkZXIsIEZMSUNfSEVBREVS X1NJWkUpOwogCiAgICAgLyogcGVlayBhdCB0aGUgcHJlYW1ibGUgdG8gZGV0ZWN0IFRGVEQgdmlk ZW9zIC0gdGhleSBzZWVtIHRvIGFsd2F5cyBzdGFydCB3aXRoIGFuIGF1ZGlvIGNodW5rICovCi0g ICAgaWYgKGF2aW9fcmVhZChwYiwgcHJlYW1ibGUsIEZMSUNfUFJFQU1CTEVfU0laRSkgIT0gRkxJ Q19QUkVBTUJMRV9TSVpFKSB7CisgICAgaWYgKChyZXQgPSBmZmlvX3JlYWRfc2l6ZShwYiwgcHJl YW1ibGUsIEZMSUNfUFJFQU1CTEVfU0laRSkpIDwgMCkgewogICAgICAgICBhdl9sb2cocywgQVZf TE9HX0VSUk9SLCAiRmFpbGVkIHRvIHBlZWsgYXQgcHJlYW1ibGVcbiIpOwotICAgICAgICByZXR1 cm4gQVZFUlJPUihFSU8pOworICAgICAgICByZXR1cm4gcmV0OwogICAgIH0KIAogICAgIGF2aW9f c2VlayhwYiwgLUZMSUNfUFJFQU1CTEVfU0laRSwgU0VFS19DVVIpOwpAQCAtMjA2LDExICsyMDcs OCBAQCBzdGF0aWMgaW50IGZsaWNfcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLAogCiAg ICAgd2hpbGUgKCFwYWNrZXRfcmVhZCAmJiAhYXZpb19mZW9mKHBiKSkgewogCi0gICAgICAgIGlm ICgocmV0ID0gYXZpb19yZWFkKHBiLCBwcmVhbWJsZSwgRkxJQ19QUkVBTUJMRV9TSVpFKSkgIT0K LSAgICAgICAgICAgIEZMSUNfUFJFQU1CTEVfU0laRSkgewotICAgICAgICAgICAgcmV0ID0gQVZF UlJPUihFSU8pOworICAgICAgICBpZiAoKHJldCA9IGZmaW9fcmVhZF9zaXplKHBiLCBwcmVhbWJs ZSwgRkxJQ19QUkVBTUJMRV9TSVpFKSkgPCAwKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg IH0KIAogICAgICAgICBzaXplID0gQVZfUkwzMigmcHJlYW1ibGVbMF0pOwogICAgICAgICBtYWdp YyA9IEFWX1JMMTYoJnByZWFtYmxlWzRdKTsKQEAgLTIyMiwxMSArMjIwLDggQEAgc3RhdGljIGlu dCBmbGljX3JlYWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywKICAgICAgICAgICAgIHBrdC0+ c3RyZWFtX2luZGV4ID0gZmxpYy0+dmlkZW9fc3RyZWFtX2luZGV4OwogICAgICAgICAgICAgcGt0 LT5wb3MgPSBwb3M7CiAgICAgICAgICAgICBtZW1jcHkocGt0LT5kYXRhLCBwcmVhbWJsZSwgRkxJ Q19QUkVBTUJMRV9TSVpFKTsKLSAgICAgICAgICAgIHJldCA9IGF2aW9fcmVhZChwYiwgcGt0LT5k YXRhICsgRkxJQ19QUkVBTUJMRV9TSVpFLAorICAgICAgICAgICAgcmV0ID0gZmZpb19yZWFkX3Np emUocGIsIHBrdC0+ZGF0YSArIEZMSUNfUFJFQU1CTEVfU0laRSwKICAgICAgICAgICAgICAgICBz aXplIC0gRkxJQ19QUkVBTUJMRV9TSVpFKTsKLSAgICAgICAgICAgIGlmIChyZXQgIT0gc2l6ZSAt IEZMSUNfUFJFQU1CTEVfU0laRSkgewotICAgICAgICAgICAgICAgIHJldCA9IEFWRVJST1IoRUlP KTsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIHBrdC0+ZmxhZ3MgPSBmbGljLT5mcmFtZV9u dW1iZXIgPT0gMCA/IEFWX1BLVF9GTEFHX0tFWSA6IDA7CiAgICAgICAgICAgICBwa3QtPnB0cyA9 IGZsaWMtPmZyYW1lX251bWJlcjsKICAgICAgICAgICAgIGlmIChmbGljLT5mcmFtZV9udW1iZXIg PT0gMCkKQEAgLTI0MywxMiArMjM4LDEwIEBAIHN0YXRpYyBpbnQgZmxpY19yZWFkX3BhY2tldChB VkZvcm1hdENvbnRleHQgKnMsCiAgICAgICAgICAgICBwa3QtPnN0cmVhbV9pbmRleCA9IGZsaWMt PmF1ZGlvX3N0cmVhbV9pbmRleDsKICAgICAgICAgICAgIHBrdC0+cG9zID0gcG9zOwogICAgICAg ICAgICAgcGt0LT5mbGFncyA9IEFWX1BLVF9GTEFHX0tFWTsKLSAgICAgICAgICAgIHJldCA9IGF2 aW9fcmVhZChwYiwgcGt0LT5kYXRhLCBzaXplKTsKKyAgICAgICAgICAgIHJldCA9IGZmaW9fcmVh ZF9zaXplKHBiLCBwa3QtPmRhdGEsIHNpemUpOwogCi0gICAgICAgICAgICBpZiAocmV0ICE9IHNp emUpIHsKLSAgICAgICAgICAgICAgICByZXQgPSBBVkVSUk9SKEVJTyk7CisgICAgICAgICAgICBp ZiAocmV0IDwgMCkKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KIAogICAg ICAgICAgICAgcGFja2V0X3JlYWQgPSAxOwogICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEv bGliYXZmb3JtYXQvZ2lmZGVjLmMgYi9saWJhdmZvcm1hdC9naWZkZWMuYwppbmRleCBkNWYwNmFk YzY0Li4yODcyMmRjNTBiIDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9naWZkZWMuYworKysgYi9s aWJhdmZvcm1hdC9naWZkZWMuYwpAQCAtMTE4LDYgKzExOCw3IEBAIHN0YXRpYyBpbnQgZ2lmX3Jl YWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICBBVlN0cmVhbSAgICAgICAgKnN0Owog ICAgIGludCB0eXBlLCB3aWR0aCwgaGVpZ2h0LCByZXQsIG4sIGZsYWdzOwogICAgIGludDY0X3Qg bmJfZnJhbWVzID0gMCwgZHVyYXRpb24gPSAwLCBwb3M7CisgICAgaW50NjRfdCByZXQ2NDsKIAog ICAgIGlmICgocmV0ID0gcmVzeW5jKHBiKSkgPCAwKQogICAgICAgICByZXR1cm4gcmV0OwpAQCAt MjE1LDggKzIxNiw5IEBAIHN0YXRpYyBpbnQgZ2lmX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4 dCAqcykKIAogc2tpcDoKICAgICAvKiBqdW1wIHRvIHN0YXJ0IGJlY2F1c2UgZ2lmIGRlY29kZXIg bmVlZHMgaGVhZGVyIGRhdGEgdG9vICovCi0gICAgaWYgKGF2aW9fc2VlayhwYiwgcG9zIC0gNiwg U0VFS19TRVQpICE9IHBvcyAtIDYpCi0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAg cmV0NjQgPSBhdmlvX3NlZWsocGIsIHBvcyAtIDYsIFNFRUtfU0VUKTsKKyAgICBpZiAocmV0NjQg PCAwKQorICAgICAgICByZXR1cm4gKGludClyZXQ2NDsKIAogICAgIC8qIEdJRiBmb3JtYXQgb3Bl cmF0ZXMgd2l0aCB0aW1lIGluICJodW5kcmVkdGhzIG9mIHNlY29uZCIsCiAgICAgICogdGhlcmVm b3JlIHRpbWViYXNlIGlzIDEvMTAwICovCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9nc21kZWMu YyBiL2xpYmF2Zm9ybWF0L2dzbWRlYy5jCmluZGV4IDEwZmJhMjEyZTkuLjY0OWQ2N2MwMDkgMTAw NjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L2dzbWRlYy5jCisrKyBiL2xpYmF2Zm9ybWF0L2dzbWRlYy5j CkBAIC02Myw3ICs2Myw3IEBAIHN0YXRpYyBpbnQgZ3NtX3JlYWRfcGFja2V0KEFWRm9ybWF0Q29u dGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKIAogICAgIHJldCA9IGF2X2dldF9wYWNrZXQocy0+cGIs IHBrdCwgc2l6ZSk7CiAgICAgaWYgKHJldCA8IEdTTV9CTE9DS19TSVpFKSB7Ci0gICAgICAgIHJl dHVybiByZXQgPCAwID8gcmV0IDogQVZFUlJPUihFSU8pOworICAgICAgICByZXR1cm4gcmV0IDwg MCA/IHJldCA6IEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgfQogICAgIHBrdC0+ZHVyYXRpb24g PSAxOwogICAgIHBrdC0+cHRzICAgICAgPSBwa3QtPnBvcyAvIEdTTV9CTE9DS19TSVpFOwpkaWZm IC0tZ2l0IGEvbGliYXZmb3JtYXQvaGNhLmMgYi9saWJhdmZvcm1hdC9oY2EuYwppbmRleCA3MTMw ODJmOGIwLi5lMjRhMjFlMDgxIDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9oY2EuYworKysgYi9s aWJhdmZvcm1hdC9oY2EuYwpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgImxpYmF2Y29kZWMv Ynl0ZXN0cmVhbS5oIgogCiAjaW5jbHVkZSAiYXZmb3JtYXQuaCIKKyNpbmNsdWRlICJhdmlvX2lu dGVybmFsLmgiCiAjaW5jbHVkZSAiZGVtdXguaCIKICNpbmNsdWRlICJpbnRlcm5hbC5oIgogCkBA IC03Niw5ICs3Nyw5IEBAIHN0YXRpYyBpbnQgaGNhX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4 dCAqcykKICAgICBpZiAocmV0IDwgMCkKICAgICAgICAgcmV0dXJuIHJldDsKIAotICAgIHJldCA9 IGF2aW9fcmVhZChwYiwgcGFyLT5leHRyYWRhdGEgKyA4LCBwYXItPmV4dHJhZGF0YV9zaXplIC0g OCAtIDEwKTsKLSAgICBpZiAocmV0IDwgcGFyLT5leHRyYWRhdGFfc2l6ZSAtIDggLSAxMCkKLSAg ICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICByZXQgPSBmZmlvX3JlYWRfc2l6ZShwYiwg cGFyLT5leHRyYWRhdGEgKyA4LCBwYXItPmV4dHJhZGF0YV9zaXplIC0gOCAtIDEwKTsKKyAgICBp ZiAocmV0IDwgMCkKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgQVZf V0wzMihwYXItPmV4dHJhZGF0YSwgTUtUQUcoJ0gnLCAnQycsICdBJywgMCkpOwogICAgIEFWX1dC MTYocGFyLT5leHRyYWRhdGEgKyA0LCB2ZXJzaW9uKTsKICAgICBBVl9XQjE2KHBhci0+ZXh0cmFk YXRhICsgNiwgZGF0YV9vZmZzZXQpOwpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvaWNvZW5jLmMg Yi9saWJhdmZvcm1hdC9pY29lbmMuYwppbmRleCA3YTdkODM5ZDg0Li45ZWJhOWU3OTI2IDEwMDY0 NAotLS0gYS9saWJhdmZvcm1hdC9pY29lbmMuYworKysgYi9saWJhdmZvcm1hdC9pY29lbmMuYwpA QCAtMTIyLDcgKzEyMiw3IEBAIHN0YXRpYyBpbnQgaWNvX3dyaXRlX3BhY2tldChBVkZvcm1hdENv bnRleHQgKnMsIEFWUGFja2V0ICpwa3QpCiAKICAgICBpZiAoaWNvLT5jdXJyZW50X2ltYWdlID49 IGljby0+bmJfaW1hZ2VzKSB7CiAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJST1IsICJJQ08g YWxyZWFkeSBjb250YWlucyAlZCBpbWFnZXNcbiIsIGljby0+Y3VycmVudF9pbWFnZSk7Ci0gICAg ICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSURE QVRBOwogICAgIH0KIAogICAgIGltYWdlID0gJmljby0+aW1hZ2VzW2ljby0+Y3VycmVudF9pbWFn ZSsrXTsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2lkY2luLmMgYi9saWJhdmZvcm1hdC9pZGNp bi5jCmluZGV4IDU2MTcxNWQzZDkuLmUyMDY0YWNhYzMgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0 L2lkY2luLmMKKysrIGIvbGliYXZmb3JtYXQvaWRjaW4uYwpAQCAtMjY3LDcgKzI2Nyw3IEBAIHN0 YXRpYyBpbnQgaWRjaW5fcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLAogICAgIGlmIChp ZGNpbi0+bmV4dF9jaHVua19pc192aWRlbykgewogICAgICAgICBjb21tYW5kID0gYXZpb19ybDMy KHBiKTsKICAgICAgICAgaWYgKGNvbW1hbmQgPT0gMikgewotICAgICAgICAgICAgcmV0dXJuIEFW RVJST1IoRUlPKTsKKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAg ICAgICB9IGVsc2UgaWYgKGNvbW1hbmQgPT0gMSkgewogICAgICAgICAgICAgLyogdHJpZ2dlciBh IHBhbGV0dGUgY2hhbmdlICovCiAgICAgICAgICAgICByZXQgPSBhdmlvX3JlYWQocGIsIHBhbGV0 dGVfYnVmZmVyLCA3NjgpOwpAQCAtMjc1LDcgKzI3NSw3IEBAIHN0YXRpYyBpbnQgaWRjaW5fcmVh ZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLAogICAgICAgICAgICAgICAgIHJldHVybiByZXQ7 CiAgICAgICAgICAgICB9IGVsc2UgaWYgKHJldCAhPSA3NjgpIHsKICAgICAgICAgICAgICAgICBh dl9sb2cocywgQVZfTE9HX0VSUk9SLCAiaW5jb21wbGV0ZSBwYWNrZXRcbiIpOwotICAgICAgICAg ICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJS T1JfSU5WQUxJRERBVEE7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvKiBzY2FsZSB0aGUg cGFsZXR0ZSBhcyBuZWNlc3NhcnkgKi8KICAgICAgICAgICAgIHBhbGV0dGVfc2NhbGUgPSAyOwpA QCAtMzEyLDcgKzMxMiw3IEBAIHN0YXRpYyBpbnQgaWRjaW5fcmVhZF9wYWNrZXQoQVZGb3JtYXRD b250ZXh0ICpzLAogICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICAgZWxzZSBpZiAocmV0 ICE9IGNodW5rX3NpemUpIHsKICAgICAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJST1IsICJp bmNvbXBsZXRlIHBhY2tldFxuIik7Ci0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOwor ICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgICAgIH0KICAgICAg ICAgaWYgKGNvbW1hbmQgPT0gMSkgewogICAgICAgICAgICAgdWludDhfdCAqcGFsOwpkaWZmIC0t Z2l0IGEvbGliYXZmb3JtYXQvaWRyb3FkZWMuYyBiL2xpYmF2Zm9ybWF0L2lkcm9xZGVjLmMKaW5k ZXggNjdiYzEyNDZlNi4uOWMzYWFlYzI2MCAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvaWRyb3Fk ZWMuYworKysgYi9saWJhdmZvcm1hdC9pZHJvcWRlYy5jCkBAIC03NCwxMSArNzQsMTEgQEAgc3Rh dGljIGludCByb3FfcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgIFJvcURlbXV4 Q29udGV4dCAqcm9xID0gcy0+cHJpdl9kYXRhOwogICAgIEFWSU9Db250ZXh0ICpwYiA9IHMtPnBi OwogICAgIHVuc2lnbmVkIGNoYXIgcHJlYW1ibGVbUm9RX0NIVU5LX1BSRUFNQkxFX1NJWkVdOwor ICAgIGludCByZXQ7CiAKICAgICAvKiBnZXQgdGhlIG1haW4gaGVhZGVyICovCi0gICAgaWYgKGF2 aW9fcmVhZChwYiwgcHJlYW1ibGUsIFJvUV9DSFVOS19QUkVBTUJMRV9TSVpFKSAhPQotICAgICAg ICBSb1FfQ0hVTktfUFJFQU1CTEVfU0laRSkKLSAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsK KyAgICBpZiAoKHJldCA9IGZmaW9fcmVhZF9zaXplKHBiLCBwcmVhbWJsZSwgUm9RX0NIVU5LX1BS RUFNQkxFX1NJWkUpKSA8IDApCisgICAgICAgIHJldHVybiByZXQ7CiAgICAgcm9xLT5mcmFtZV9y YXRlID0gQVZfUkwxNigmcHJlYW1ibGVbNl0pOwogCiAgICAgLyogaW5pdCBwcml2YXRlIGNvbnRl eHQgcGFyYW1ldGVycyAqLwpAQCAtMTExLDkgKzExMSw4IEBAIHN0YXRpYyBpbnQgcm9xX3JlYWRf cGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywKICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0VP RjsKIAogICAgICAgICAvKiBnZXQgdGhlIG5leHQgY2h1bmsgcHJlYW1ibGUgKi8KLSAgICAgICAg aWYgKChyZXQgPSBhdmlvX3JlYWQocGIsIHByZWFtYmxlLCBSb1FfQ0hVTktfUFJFQU1CTEVfU0la RSkpICE9Ci0gICAgICAgICAgICBSb1FfQ0hVTktfUFJFQU1CTEVfU0laRSkKLSAgICAgICAgICAg IHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgIGlmICgocmV0ID0gZmZpb19yZWFkX3NpemUo cGIsIHByZWFtYmxlLCBSb1FfQ0hVTktfUFJFQU1CTEVfU0laRSkpIDwgMCkKKyAgICAgICAgICAg IHJldHVybiByZXQ7CiAKICAgICAgICAgY2h1bmtfdHlwZSA9IEFWX1JMMTYoJnByZWFtYmxlWzBd KTsKICAgICAgICAgY2h1bmtfc2l6ZSA9IEFWX1JMMzIoJnByZWFtYmxlWzJdKTsKQEAgLTEzNSw4 ICsxMzQsOCBAQCBzdGF0aWMgaW50IHJvcV9yZWFkX3BhY2tldChBVkZvcm1hdENvbnRleHQgKnMs CiAgICAgICAgICAgICAgICAgc3QtPmNvZGVjcGFyLT5jb2RlY19pZCAgICAgPSBBVl9DT0RFQ19J RF9ST1E7CiAgICAgICAgICAgICAgICAgc3QtPmNvZGVjcGFyLT5jb2RlY190YWcgICAgPSAwOyAg Lyogbm8gZm91cmNjICovCiAKLSAgICAgICAgICAgICAgICBpZiAoYXZpb19yZWFkKHBiLCBwcmVh bWJsZSwgUm9RX0NIVU5LX1BSRUFNQkxFX1NJWkUpICE9IFJvUV9DSFVOS19QUkVBTUJMRV9TSVpF KQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICAgICAg ICAgIGlmICgocmV0ID0gZmZpb19yZWFkX3NpemUocGIsIHByZWFtYmxlLCBSb1FfQ0hVTktfUFJF QU1CTEVfU0laRSkpIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAg ICAgICAgICAgICBzdC0+Y29kZWNwYXItPndpZHRoICA9IHJvcS0+d2lkdGggID0gQVZfUkwxNihw cmVhbWJsZSk7CiAgICAgICAgICAgICAgICAgc3QtPmNvZGVjcGFyLT5oZWlnaHQgPSByb3EtPmhl aWdodCA9IEFWX1JMMTYocHJlYW1ibGUgKyAyKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAg LTE1Miw5ICsxNTEsOCBAQCBzdGF0aWMgaW50IHJvcV9yZWFkX3BhY2tldChBVkZvcm1hdENvbnRl eHQgKnMsCiAgICAgICAgICAgICBjb2RlYm9va19vZmZzZXQgPSBhdmlvX3RlbGwocGIpIC0gUm9R X0NIVU5LX1BSRUFNQkxFX1NJWkU7CiAgICAgICAgICAgICBjb2RlYm9va19zaXplID0gY2h1bmtf c2l6ZTsKICAgICAgICAgICAgIGF2aW9fc2tpcChwYiwgY29kZWJvb2tfc2l6ZSk7Ci0gICAgICAg ICAgICBpZiAoYXZpb19yZWFkKHBiLCBwcmVhbWJsZSwgUm9RX0NIVU5LX1BSRUFNQkxFX1NJWkUp ICE9Ci0gICAgICAgICAgICAgICAgUm9RX0NIVU5LX1BSRUFNQkxFX1NJWkUpCi0gICAgICAgICAg ICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgICAgIGlmICgocmV0ID0gZmZpb19y ZWFkX3NpemUocGIsIHByZWFtYmxlLCBSb1FfQ0hVTktfUFJFQU1CTEVfU0laRSkpIDwgMCkKKyAg ICAgICAgICAgICAgICByZXR1cm4gcmV0OwogICAgICAgICAgICAgY2h1bmtfc2l6ZSA9IEFWX1JM MzIoJnByZWFtYmxlWzJdKSArIFJvUV9DSFVOS19QUkVBTUJMRV9TSVpFICogMiArCiAgICAgICAg ICAgICAgICAgY29kZWJvb2tfc2l6ZTsKIApAQCAtMTY3LDcgKzE2NSw3IEBAIHN0YXRpYyBpbnQg cm9xX3JlYWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywKICAgICAgICAgICAgIC8qIGxvYWQg dXAgdGhlIHBhY2tldCAqLwogICAgICAgICAgICAgcmV0PSBhdl9nZXRfcGFja2V0KHBiLCBwa3Qs IGNodW5rX3NpemUpOwogICAgICAgICAgICAgaWYgKHJldCAhPSBjaHVua19zaXplKQotICAgICAg ICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEFW RVJST1JfSU5WQUxJRERBVEE7CiAgICAgICAgICAgICBwa3QtPnN0cmVhbV9pbmRleCA9IHJvcS0+ dmlkZW9fc3RyZWFtX2luZGV4OwogICAgICAgICAgICAgcGt0LT5wdHMgPSByb3EtPnZpZGVvX3B0 cysrOwogCkBAIC0yMjAsMTEgKzIxOCwxMCBAQCBzdGF0aWMgaW50IHJvcV9yZWFkX3BhY2tldChB VkZvcm1hdENvbnRleHQgKnMsCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHBrdC0+cG9z PSBhdmlvX3RlbGwocGIpOwotICAgICAgICAgICAgcmV0ID0gYXZpb19yZWFkKHBiLCBwa3QtPmRh dGEgKyBSb1FfQ0hVTktfUFJFQU1CTEVfU0laRSwKKyAgICAgICAgICAgIHJldCA9IGZmaW9fcmVh ZF9zaXplKHBiLCBwa3QtPmRhdGEgKyBSb1FfQ0hVTktfUFJFQU1CTEVfU0laRSwKICAgICAgICAg ICAgICAgICBjaHVua19zaXplKTsKLSAgICAgICAgICAgIGlmIChyZXQgIT0gY2h1bmtfc2l6ZSkg ewotICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7Ci0gICAgICAgICAgICB9Cisg ICAgICAgICAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0OwogCiAg ICAgICAgICAgICBwYWNrZXRfcmVhZCA9IDE7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdp dCBhL2xpYmF2Zm9ybWF0L2lmZi5jIGIvbGliYXZmb3JtYXQvaWZmLmMKaW5kZXggNDRiYTVhOTAy My4uZmM0MGVmMWFlYSAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvaWZmLmMKKysrIGIvbGliYXZm b3JtYXQvaWZmLmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJsaWJhdnV0aWwvbWVtLmgi CiAjaW5jbHVkZSAibGliYXZjb2RlYy9ieXRlc3RyZWFtLmgiCiAjaW5jbHVkZSAiYXZmb3JtYXQu aCIKKyNpbmNsdWRlICJhdmlvX2ludGVybmFsLmgiCiAjaW5jbHVkZSAiZGVtdXguaCIKICNpbmNs dWRlICJpZDN2Mi5oIgogI2luY2x1ZGUgImludGVybmFsLmgiCkBAIC0xMzUsMTMgKzEzNiwxNCBA QCBzdGF0aWMgaW50IGdldF9tZXRhZGF0YShBVkZvcm1hdENvbnRleHQgKnMsCiAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBkYXRhX3NpemUpCiB7CiAgICAgdWludDhfdCAq YnVmID0gKChkYXRhX3NpemUgKyAxKSA9PSAwKSA/IE5VTEwgOiBhdl9tYWxsb2MoZGF0YV9zaXpl ICsgMSk7CisgICAgaW50IHJlczsKIAogICAgIGlmICghYnVmKQogICAgICAgICByZXR1cm4gQVZF UlJPUihFTk9NRU0pOwogCi0gICAgaWYgKGF2aW9fcmVhZChzLT5wYiwgYnVmLCBkYXRhX3NpemUp ICE9IGRhdGFfc2l6ZSkgeworICAgIGlmICgocmVzID0gZmZpb19yZWFkX3NpemUocy0+cGIsIGJ1 ZiwgZGF0YV9zaXplKSkgPCAwKSB7CiAgICAgICAgIGF2X2ZyZWUoYnVmKTsKLSAgICAgICAgcmV0 dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgcmV0dXJuIHJlczsKICAgICB9CiAgICAgYnVmW2Rh dGFfc2l6ZV0gPSAwOwogICAgIGF2X2RpY3Rfc2V0KCZzLT5tZXRhZGF0YSwgdGFnLCBidWYsIEFW X0RJQ1RfRE9OVF9TVFJEVVBfVkFMKTsKQEAgLTU2MywxMCArNTY1LDEwIEBAIHN0YXRpYyBpbnQg aWZmX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhX3NpemUgKyBJRkZfRVhUUkFfVklERU9fU0laRSk7CiAgICAg ICAgICAgICBpZiAocmVzIDwgMCkKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzOwotICAgICAg ICAgICAgaWYgKGF2aW9fcmVhZChwYiwgc3R2LT5jb2RlY3Bhci0+ZXh0cmFkYXRhICsgSUZGX0VY VFJBX1ZJREVPX1NJWkUsIGRhdGFfc2l6ZSkgPCAwKSB7CisgICAgICAgICAgICBpZiAoKHJlcyA9 IGF2aW9fcmVhZChwYiwgc3R2LT5jb2RlY3Bhci0+ZXh0cmFkYXRhICsgSUZGX0VYVFJBX1ZJREVP X1NJWkUsIGRhdGFfc2l6ZSkpIDwgMCkgewogICAgICAgICAgICAgICAgIGF2X2ZyZWVwKCZzdHYt PmNvZGVjcGFyLT5leHRyYWRhdGEpOwogICAgICAgICAgICAgICAgIHN0di0+Y29kZWNwYXItPmV4 dHJhZGF0YV9zaXplID0gMDsKLSAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOwor ICAgICAgICAgICAgICAgIHJldHVybiByZXM7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBi cmVhazsKIApkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvaW1nMmRlYy5jIGIvbGliYXZmb3JtYXQv aW1nMmRlYy5jCmluZGV4IDc4OWY4Yjk0YzkuLjFmN2UwZmNjZTEgMTAwNjQ0Ci0tLSBhL2xpYmF2 Zm9ybWF0L2ltZzJkZWMuYworKysgYi9saWJhdmZvcm1hdC9pbWcyZGVjLmMKQEAgLTQwMCwxMyAr NDAwLDEzIEBAIGludCBmZl9pbWdfcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzMSwgQVZQ YWNrZXQgKnBrdCkKICAgICAgICAgICAgICAgICAhcy0+bG9vcCAmJgogICAgICAgICAgICAgICAg ICFzLT5zcGxpdF9wbGFuZXMpIHsKICAgICAgICAgICAgICAgICBmW2ldID0gczEtPnBiOwotICAg ICAgICAgICAgfSBlbHNlIGlmIChzMS0+aW9fb3BlbihzMSwgJmZbaV0sIGZpbGVuYW1lLnN0ciwg QVZJT19GTEFHX1JFQUQsIE5VTEwpIDwgMCkgeworICAgICAgICAgICAgfSBlbHNlIGlmICgocmVz ID0gczEtPmlvX29wZW4oczEsICZmW2ldLCBmaWxlbmFtZS5zdHIsIEFWSU9fRkxBR19SRUFELCBO VUxMKSkgPCAwKSB7CiAgICAgICAgICAgICAgICAgaWYgKGkgPj0gMSkKICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgYXZfbG9nKHMxLCBBVl9MT0dfRVJST1IsICJD b3VsZCBub3Qgb3BlbiBmaWxlIDogJXNcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVu YW1lLnN0cik7CiAgICAgICAgICAgICAgICAgYXZfYnByaW50X2ZpbmFsaXplKCZmaWxlbmFtZSwg TlVMTCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgICAg ICAgICByZXR1cm4gcmVzOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc2l6ZVtpXSA9IGF2 aW9fc2l6ZShmW2ldKTsKIApAQCAtNDY2LDcgKzQ2Niw3IEBAIGludCBmZl9pbWdfcmVhZF9wYWNr ZXQoQVZGb3JtYXRDb250ZXh0ICpzMSwgQVZQYWNrZXQgKnBrdCkKICAgICAgICAgc3RydWN0IHN0 YXQgaW1nX3N0YXQ7CiAgICAgICAgIGF2X2Fzc2VydDAoIXMtPmlzX3BpcGUpOyAvLyBUaGUgdHNf ZnJvbV9maWxlIG9wdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHBpcGVkIGlucHV0IGRlbXV4ZXJz CiAgICAgICAgIGlmIChzdGF0KGZpbGVuYW1lLnN0ciwgJmltZ19zdGF0KSkgewotICAgICAgICAg ICAgcmVzID0gQVZFUlJPUihFSU8pOworICAgICAgICAgICAgcmVzID0gQVZFUlJPUihlcnJubyk7 CiAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAgIH0KICAgICAgICAgcGt0LT5wdHMgPSAo aW50NjRfdClpbWdfc3RhdC5zdF9tdGltZTsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2ltZzJl bmMuYyBiL2xpYmF2Zm9ybWF0L2ltZzJlbmMuYwppbmRleCBkMTRiYzVlYTNmLi5mYjUxMTUxMDkw IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9pbWcyZW5jLmMKKysrIGIvbGliYXZmb3JtYXQvaW1n MmVuYy5jCkBAIC0xOTQsOSArMTk0LDggQEAgc3RhdGljIGludCB3cml0ZV9wYWNrZXQoQVZGb3Jt YXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQogICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsK ICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBpZiAocy0+aW9fb3BlbihzLCAmcGJb aV0sIHRtcFtpXSA/IHRtcFtpXSA6IGZpbGVuYW1lLnN0ciwgQVZJT19GTEFHX1dSSVRFLCAmb3B0 aW9ucykgPCAwKSB7CisgICAgICAgIGlmICgocmV0ID0gcy0+aW9fb3BlbihzLCAmcGJbaV0sIHRt cFtpXSA/IHRtcFtpXSA6IGZpbGVuYW1lLnN0ciwgQVZJT19GTEFHX1dSSVRFLCAmb3B0aW9ucykp IDwgMCkgewogICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIkNvdWxkIG5vdCBv cGVuIGZpbGUgOiAlc1xuIiwgdG1wW2ldID8gdG1wW2ldIDogZmlsZW5hbWUuc3RyKTsKLSAgICAg ICAgICAgIHJldCA9IEFWRVJST1IoRUlPKTsKICAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICAg ICAgfQogICAgICAgICBpZiAob3B0aW9ucykgewpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvaW5n ZW5pZW50ZGVjLmMgYi9saWJhdmZvcm1hdC9pbmdlbmllbnRkZWMuYwppbmRleCA2MzYyNDM3MmE2 Li42NGI1ZThhNDA3IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9pbmdlbmllbnRkZWMuYworKysg Yi9saWJhdmZvcm1hdC9pbmdlbmllbnRkZWMuYwpAQCAtMzksNyArMzksNyBAQCBzdGF0aWMgaW50 IGluZ2VuaWVudF9yZWFkX3BhY2tldChBVkZvcm1hdENvbnRleHQgKnMsIEFWUGFja2V0ICpwa3Qp CiAgICAgaW50IHJldCwgc2l6ZSwgdywgaCwgdW5rMSwgdW5rMjsKIAogICAgIGlmIChhdmlvX3Js MzIocy0+cGIpICE9IE1LVEFHKCdNJywgJ0onLCAnUCcsICdHJykpCi0gICAgICAgIHJldHVybiBB VkVSUk9SKEVJTyk7IC8vIEZJWE1FCisgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRB OyAvLyBGSVhNRQogCiAgICAgc2l6ZSA9IGF2aW9fcmwzMihzLT5wYik7CiAKZGlmZiAtLWdpdCBh L2xpYmF2Zm9ybWF0L2lwbW92aWUuYyBiL2xpYmF2Zm9ybWF0L2lwbW92aWUuYwppbmRleCA1YThh YmRlODQyLi4xZWYzNTdlMDg4IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9pcG1vdmllLmMKKysr IGIvbGliYXZmb3JtYXQvaXBtb3ZpZS5jCkBAIC02MzksOSArNjM5LDggQEAgc3RhdGljIGludCBp cG1vdmllX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKIAogICAgIC8qIHBlZWsgYWhl YWQgdG8gdGhlIG5leHQgY2h1bmstLSBpZiBpdCBpcyBhbiBpbml0IGF1ZGlvIGNodW5rLCBwcm9j ZXNzCiAgICAgICogaXQ7IGlmIGl0IGlzIHRoZSBmaXJzdCB2aWRlbyBjaHVuaywgdGhpcyBpcyBh IHNpbGVudCBmaWxlICovCi0gICAgaWYgKGF2aW9fcmVhZChwYiwgY2h1bmtfcHJlYW1ibGUsIENI VU5LX1BSRUFNQkxFX1NJWkUpICE9Ci0gICAgICAgIENIVU5LX1BSRUFNQkxFX1NJWkUpCi0gICAg ICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgaWYgKChyZXQgPSBmZmlvX3JlYWRfc2l6ZShw YiwgY2h1bmtfcHJlYW1ibGUsIENIVU5LX1BSRUFNQkxFX1NJWkUpKSA8IDApCisgICAgICAgIHJl dHVybiByZXQ7CiAgICAgY2h1bmtfdHlwZSA9IEFWX1JMMTYoJmNodW5rX3ByZWFtYmxlWzJdKTsK ICAgICBhdmlvX3NlZWsocGIsIC1DSFVOS19QUkVBTUJMRV9TSVpFLCBTRUVLX0NVUik7CiAKQEAg LTY4OCw3ICs2ODcsNyBAQCBzdGF0aWMgaW50IGlwbW92aWVfcmVhZF9wYWNrZXQoQVZGb3JtYXRD b250ZXh0ICpzLAogICAgICAgICBpZiAocmV0ID09IENIVU5LX0JBRCkKICAgICAgICAgICAgIHJl dCA9IEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgICAgIGVsc2UgaWYgKHJldCA9PSBDSFVOS19F T0YpCi0gICAgICAgICAgICByZXQgPSBBVkVSUk9SKEVJTyk7CisgICAgICAgICAgICByZXQgPSBB VkVSUk9SX0lOVkFMSUREQVRBOwogICAgICAgICBlbHNlIGlmIChyZXQgPT0gQ0hVTktfTk9NRU0p CiAgICAgICAgICAgICByZXQgPSBBVkVSUk9SKEVOT01FTSk7CiAgICAgICAgIGVsc2UgaWYgKHJl dCA9PSBDSFVOS19FTkQgfHwgcmV0ID09IENIVU5LX1NIVVRET1dOKQpkaWZmIC0tZ2l0IGEvbGli YXZmb3JtYXQvaXNzLmMgYi9saWJhdmZvcm1hdC9pc3MuYwppbmRleCA3YTY4ZmNhZjYzLi5iMGUx Nzk5NGQ0IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9pc3MuYworKysgYi9saWJhdmZvcm1hdC9p c3MuYwpAQCAtMTM2LDcgKzEzNiw3IEBAIHN0YXRpYyBpbnQgaXNzX3JlYWRfcGFja2V0KEFWRm9y bWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKICAgICBpbnQgcmV0ID0gYXZfZ2V0X3BhY2tl dChzLT5wYiwgcGt0LCBpc3MtPnBhY2tldF9zaXplKTsKIAogICAgIGlmKHJldCAhPSBpc3MtPnBh Y2tldF9zaXplKQotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICByZXR1cm4g QVZFUlJPUl9JTlZBTElEREFUQTsKIAogICAgIHBrdC0+c3RyZWFtX2luZGV4ID0gMDsKICAgICBw a3QtPnB0cyA9IGF2aW9fdGVsbChzLT5wYikgLSBpc3MtPnNhbXBsZV9zdGFydF9wb3M7CmRpZmYg LS1naXQgYS9saWJhdmZvcm1hdC9qdmRlYy5jIGIvbGliYXZmb3JtYXQvanZkZWMuYwppbmRleCBj NDU4MGI2YTAxLi40ZjQ1NjZmNjRiIDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9qdmRlYy5jCisr KyBiL2xpYmF2Zm9ybWF0L2p2ZGVjLmMKQEAgLTIxNyw3ICsyMTcsNyBAQCBzdGF0aWMgaW50IHJl YWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKICAgICBpZiAocy0+ cGItPmVvZl9yZWFjaGVkKQogICAgICAgICByZXR1cm4gQVZFUlJPUl9FT0Y7CiAKLSAgICByZXR1 cm4gQVZFUlJPUihFSU8pOworICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogfQogCiBz dGF0aWMgaW50IHJlYWRfc2VlayhBVkZvcm1hdENvbnRleHQgKnMsIGludCBzdHJlYW1faW5kZXgs CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9saWJtb2RwbHVnLmMgYi9saWJhdmZvcm1hdC9saWJt b2RwbHVnLmMKaW5kZXggNjgwYTVmZTliYy4uMDE1NjZkMTIxZSAxMDA2NDQKLS0tIGEvbGliYXZm b3JtYXQvbGlibW9kcGx1Zy5jCisrKyBiL2xpYmF2Zm9ybWF0L2xpYm1vZHBsdWcuYwpAQCAtMzQ4 LDcgKzM0OCw3IEBAIHN0YXRpYyBpbnQgbW9kcGx1Z19yZWFkX3BhY2tldChBVkZvcm1hdENvbnRl eHQgKnMsIEFWUGFja2V0ICpwa3QpCiAKICAgICBwa3QtPnNpemUgPSBNb2RQbHVnX1JlYWQobW9k cGx1Zy0+ZiwgcGt0LT5kYXRhLCBBVURJT19QS1RfU0laRSk7CiAgICAgaWYgKHBrdC0+c2l6ZSA8 PSAwKSB7Ci0gICAgICAgIHJldHVybiBwa3QtPnNpemUgPT0gMCA/IEFWRVJST1JfRU9GIDogQVZF UlJPUihFSU8pOworICAgICAgICByZXR1cm4gcGt0LT5zaXplID09IDAgPyBBVkVSUk9SX0VPRiA6 IEFWRVJST1JfRVhURVJOQUw7CiAgICAgfQogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEv bGliYXZmb3JtYXQvbG1sbTQuYyBiL2xpYmF2Zm9ybWF0L2xtbG00LmMKaW5kZXggY2VjMmY3Y2Ew NS4uYWViNTU4MDYyMCAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvbG1sbTQuYworKysgYi9saWJh dmZvcm1hdC9sbWxtNC5jCkBAIC0xMDMsNyArMTAzLDcgQEAgc3RhdGljIGludCBsbWxtNF9yZWFk X3BhY2tldChBVkZvcm1hdENvbnRleHQgKnMsIEFWUGFja2V0ICpwa3QpCiAKICAgICBmcmFtZV9z aXplICA9IHBhY2tldF9zaXplIC0gODsKICAgICBpZiAoKHJldCA9IGF2X2dldF9wYWNrZXQocGIs IHBrdCwgZnJhbWVfc2l6ZSkpIDw9IDApCi0gICAgICAgIHJldHVybiByZXQgPCAwID8gcmV0IDog QVZFUlJPUihFSU8pOworICAgICAgICByZXR1cm4gcmV0IDwgMCA/IHJldCA6IEFWRVJST1JfSU5W QUxJRERBVEE7CiAKICAgICBhdmlvX3NraXAocGIsIHBhZGRpbmcpOwogCmRpZmYgLS1naXQgYS9s aWJhdmZvcm1hdC9tY2EuYyBiL2xpYmF2Zm9ybWF0L21jYS5jCmluZGV4IGU3MDdkZTNjM2IuLjc0 YTMzZTI1YzMgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L21jYS5jCisrKyBiL2xpYmF2Zm9ybWF0 L21jYS5jCkBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIGludCByZWFkX2hlYWRlcihBVkZvcm1h dENvbnRleHQgKnMpCiAgICAgaWYgKHZlcnNpb24gPD0gNCkgewogICAgICAgICAvLyB2ZXJzaW9u IDw9IDQgbmVlZHMgdG8gdXNlIHRoZSBmaWxlIHNpemUgdG8gY2FsY3VsYXRlIHRoZSBvZmZzZXRz CiAgICAgICAgIGlmIChmaWxlX3NpemUgPCAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gQVZFUlJP UihFSU8pOworICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgICAg IH0KICAgICAgICAgaWYgKGZpbGVfc2l6ZSAtIGRhdGFfc2l6ZSA+IFVJTlQzMl9NQVgpCiAgICAg ICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9y bWF0L21nc3RzLmMgYi9saWJhdmZvcm1hdC9tZ3N0cy5jCmluZGV4IDA3ZWE2NjE2M2MuLmY4Mzky ODg4YmQgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L21nc3RzLmMKKysrIGIvbGliYXZmb3JtYXQv bWdzdHMuYwpAQCAtNDQsNyArNDQsNyBAQCBzdGF0aWMgaW50IHJlYWRfaGVhZGVyKEFWRm9ybWF0 Q29udGV4dCAqcykKICAgICBhdmlvX3NraXAocGIsIDQpOwogICAgIGNodW5rX3NpemUgPSBhdmlv X3JiMzIocGIpOwogICAgIGlmIChjaHVua19zaXplICE9IDgwKQotICAgICAgICByZXR1cm4gQVZF UlJPUihFSU8pOworICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKICAgICBhdmlv X3NraXAocGIsIDIwKTsKIAogICAgIHN0ID0gYXZmb3JtYXRfbmV3X3N0cmVhbShzLCAwKTsKQEAg LTg0LDcgKzg0LDcgQEAgc3RhdGljIGludCByZWFkX3BhY2tldChBVkZvcm1hdENvbnRleHQgKnMs IEFWUGFja2V0ICpwa3QpCiAgICAgcGF5bG9hZF9zaXplID0gYXZpb19yYjMyKHBiKTsKIAogICAg IGlmIChjaHVua19zaXplIDwgcGF5bG9hZF9zaXplICsgMTYpCi0gICAgICAgIHJldHVybiBBVkVS Uk9SKEVJTyk7CisgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogCiAgICAgcmV0 ID0gYXZfZ2V0X3BhY2tldChwYiwgcGt0LCBwYXlsb2FkX3NpemUpOwogICAgIGlmIChyZXQgPCAw KQpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvbWx2ZGVjLmMgYi9saWJhdmZvcm1hdC9tbHZkZWMu YwppbmRleCBhMGQ1ZTdmYjU1Li4zYTVkMjExMDg1IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9t bHZkZWMuYworKysgYi9saWJhdmZvcm1hdC9tbHZkZWMuYwpAQCAtNTQ4LDcgKzU0OCw3IEBAIHN0 YXRpYyBpbnQgcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICphdmN0eCwgQVZQYWNrZXQgKnBr dCkKICAgICBpbmRleCA9IGF2X2luZGV4X3NlYXJjaF90aW1lc3RhbXAoc3QsIG1sdi0+cHRzLCBB VlNFRUtfRkxBR19BTlkpOwogICAgIGlmIChpbmRleCA8IDApIHsKICAgICAgICAgYXZfbG9nKGF2 Y3R4LCBBVl9MT0dfRVJST1IsICJjb3VsZCBub3QgZmluZCBpbmRleCBlbnRyeSBmb3IgZnJhbWUg JSJQUklkNjQiXG4iLCBtbHYtPnB0cyk7Ci0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7Cisg ICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgIH0KIAogICAgIHBiID0gbWx2 LT5wYltzdGktPmluZGV4X2VudHJpZXNbaW5kZXhdLnNpemVdOwpAQCAtNjExLDcgKzYxMSw3IEBA IHN0YXRpYyBpbnQgcmVhZF9zZWVrKEFWRm9ybWF0Q29udGV4dCAqYXZjdHgsIGludCBzdHJlYW1f aW5kZXgsIGludDY0X3QgdGltZXN0YW1wCiAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT1NZUyk7 CiAKICAgICBpZiAoIShhdmN0eC0+cGItPnNlZWthYmxlICYgQVZJT19TRUVLQUJMRV9OT1JNQUwp KQotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICByZXR1cm4gQVZFUlJPUihF Tk9TWVMpOwogCiAgICAgbWx2LT5wdHMgPSB0aW1lc3RhbXA7CiAgICAgcmV0dXJuIDA7CmRpZmYg LS1naXQgYS9saWJhdmZvcm1hdC9tcGMuYyBiL2xpYmF2Zm9ybWF0L21wYy5jCmluZGV4IDFlMGUx NzBjN2QuLjQ1YmE3NmM3MDMgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L21wYy5jCisrKyBiL2xp YmF2Zm9ybWF0L21wYy5jCkBAIC0xNzEsNyArMTcxLDcgQEAgc3RhdGljIGludCBtcGNfcmVhZF9w YWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQogICAgIGlmKGMtPmN1cmJp dHMpCiAgICAgICAgIGF2aW9fc2VlayhzLT5wYiwgLTQsIFNFRUtfQ1VSKTsKICAgICBpZihyZXQg PCBzaXplKXsKLSAgICAgICAgcmV0dXJuIHJldCA8IDAgPyByZXQgOiBBVkVSUk9SKEVJTyk7Cisg ICAgICAgIHJldHVybiByZXQgPCAwID8gcmV0IDogQVZFUlJPUl9JTlZBTElEREFUQTsKICAgICB9 CiAgICAgcGt0LT5zaXplID0gcmV0ICsgNDsKIApkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvbXR2 LmMgYi9saWJhdmZvcm1hdC9tdHYuYwppbmRleCAwMTM3OWExOGU3Li5jODg4NDQzYjdhIDEwMDY0 NAotLS0gYS9saWJhdmZvcm1hdC9tdHYuYworKysgYi9saWJhdmZvcm1hdC9tdHYuYwpAQCAtMTA1 LDYgKzEwNSw3IEBAIHN0YXRpYyBpbnQgbXR2X3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAq cykKICAgICBBVklPQ29udGV4dCAgICpwYiAgPSBzLT5wYjsKICAgICBBVlN0cmVhbSAgICAgICAg KnN0OwogICAgIHVuc2lnbmVkIGludCAgICBhdWRpb19zdWJzZWdtZW50czsKKyAgICBpbnQ2NF90 IHJldDY0OwogCiAgICAgYXZpb19za2lwKHBiLCAzKTsKICAgICBtdHYtPmZpbGVfc2l6ZSAgICAg ICAgID0gYXZpb19ybDMyKHBiKTsKQEAgLTE5MCw4ICsxOTEsOCBAQCBzdGF0aWMgaW50IG10dl9y ZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCiAKICAgICAvLyBKdW1wIG92ZXIgaGVhZGVy CiAKLSAgICBpZihhdmlvX3NlZWsocGIsIE1UVl9IRUFERVJfU0laRSwgU0VFS19TRVQpICE9IE1U Vl9IRUFERVJfU0laRSkKLSAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICBpZiAoKHJl dDY0ID0gYXZpb19zZWVrKHBiLCBNVFZfSEVBREVSX1NJWkUsIFNFRUtfU0VUKSkgPCAwKQorICAg ICAgICByZXR1cm4gKGludClyZXQ2NDsKIAogICAgIHJldHVybiAwOwogCmRpZmYgLS1naXQgYS9s aWJhdmZvcm1hdC9tdmRlYy5jIGIvbGliYXZmb3JtYXQvbXZkZWMuYwppbmRleCBhYTQ1ZDIzYjM5 Li4xMTNmMTMzNjg3IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9tdmRlYy5jCisrKyBiL2xpYmF2 Zm9ybWF0L212ZGVjLmMKQEAgLTQ4OSw3ICs0ODksNyBAQCBzdGF0aWMgaW50IG12X3JlYWRfcGFj a2V0KEFWRm9ybWF0Q29udGV4dCAqYXZjdHgsIEFWUGFja2V0ICpwa3QpCiAgICAgICAgICAgICBh dmlvX3NraXAocGIsIGluZGV4LT5wb3MgLSBwb3MpOwogICAgICAgICBlbHNlIGlmIChpbmRleC0+ cG9zIDwgcG9zKSB7CiAgICAgICAgICAgICBpZiAoIShwYi0+c2Vla2FibGUgJiBBVklPX1NFRUtB QkxFX05PUk1BTCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAg ICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9TWVMpOwogICAgICAgICAgICAgcmV0ID0gYXZp b19zZWVrKHBiLCBpbmRleC0+cG9zLCBTRUVLX1NFVCk7CiAgICAgICAgICAgICBpZiAocmV0IDwg MCkKICAgICAgICAgICAgICAgICByZXR1cm4gcmV0OwpAQCAtNTMxLDcgKzUzMSw3IEBAIHN0YXRp YyBpbnQgbXZfcmVhZF9zZWVrKEFWRm9ybWF0Q29udGV4dCAqYXZjdHgsIGludCBzdHJlYW1faW5k ZXgsCiAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT1NZUyk7CiAKICAgICBpZiAoIShhdmN0eC0+ cGItPnNlZWthYmxlICYgQVZJT19TRUVLQUJMRV9OT1JNQUwpKQotICAgICAgICByZXR1cm4gQVZF UlJPUihFSU8pOworICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9TWVMpOwogCiAgICAgZnJhbWUg PSBhdl9pbmRleF9zZWFyY2hfdGltZXN0YW1wKHN0LCB0aW1lc3RhbXAsIGZsYWdzKTsKICAgICBp ZiAoZnJhbWUgPCAwKQpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvbXZpLmMgYi9saWJhdmZvcm1h dC9tdmkuYwppbmRleCAwNWFhMjVmMzQ4Li40MjEyN2JiYjVkIDEwMDY0NAotLS0gYS9saWJhdmZv cm1hdC9tdmkuYworKysgYi9saWJhdmZvcm1hdC9tdmkuYwpAQCAtMTE5LDcgKzExOSw3IEBAIHN0 YXRpYyBpbnQgcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQog ICAgIGlmIChtdmktPnZpZGVvX2ZyYW1lX3NpemUgPT0gMCkgewogICAgICAgICBtdmktPnZpZGVv X2ZyYW1lX3NpemUgPSAobXZpLT5nZXRfaW50KShwYik7CiAgICAgICAgIGlmIChtdmktPmF1ZGlv X3NpemVfbGVmdCA9PSAwKQotICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAg ICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgICAgICBpZiAobXZpLT5hdWRp b19zaXplX2NvdW50ZXIgKyA1MTIgPiBVSU5UNjRfTUFYIC0gbXZpLT5hdWRpb19mcmFtZV9zaXpl IHx8CiAgICAgICAgICAgICBtdmktPmF1ZGlvX3NpemVfY291bnRlciArIDUxMiArIG12aS0+YXVk aW9fZnJhbWVfc2l6ZSA+PSAoKHVpbnQ2NF90KUlOVDMyX01BWCkgPDwgTVZJX0ZSQUNfQklUUykK ICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwpkaWZmIC0tZ2l0IGEvbGli YXZmb3JtYXQvbmNkZWMuYyBiL2xpYmF2Zm9ybWF0L25jZGVjLmMKaW5kZXggMDUwZDk4YmY1ZC4u NmViNjkzMDkzYSAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvbmNkZWMuYworKysgYi9saWJhdmZv cm1hdC9uY2RlYy5jCkBAIC02OSw3ICs2OSw3IEBAIHN0YXRpYyBpbnQgbmNfcmVhZF9wYWNrZXQo QVZGb3JtYXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQogICAgIHVpbnQzMl90IHN0YXRlPS0x OwogICAgIHdoaWxlIChzdGF0ZSAhPSBOQ19WSURFT19GTEFHKSB7CiAgICAgICAgIGlmIChhdmlv X2Zlb2Yocy0+cGIpKQotICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAg ICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgICAgICBzdGF0ZSA9IChzdGF0ZTw8 OCkgKyBhdmlvX3I4KHMtPnBiKTsKICAgICB9CiAKQEAgLTg0LDcgKzg0LDcgQEAgc3RhdGljIGlu dCBuY19yZWFkX3BhY2tldChBVkZvcm1hdENvbnRleHQgKnMsIEFWUGFja2V0ICpwa3QpCiAKICAg ICByZXQgPSBhdl9nZXRfcGFja2V0KHMtPnBiLCBwa3QsIHNpemUpOwogICAgIGlmIChyZXQgIT0g c2l6ZSkgewotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICByZXR1cm4gQVZF UlJPUl9JTlZBTElEREFUQTsKICAgICB9CiAKICAgICBwa3QtPnN0cmVhbV9pbmRleCA9IDA7CmRp ZmYgLS1naXQgYS9saWJhdmZvcm1hdC9udXYuYyBiL2xpYmF2Zm9ybWF0L251di5jCmluZGV4IDQ5 OTE1ZWNmMTYuLjE3YTA0MWIyNTQgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L251di5jCisrKyBi L2xpYmF2Zm9ybWF0L251di5jCkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIGludCBudXZfcGFj a2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKICAgICAgICAgfQogICAgIH0K IAotICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERB VEE7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvcGR2ZGVjLmMgYi9saWJhdmZv cm1hdC9wZHZkZWMuYwppbmRleCBjZDExOGYwZTM3Li43OTIxODhiMDE5IDEwMDY0NAotLS0gYS9s aWJhdmZvcm1hdC9wZHZkZWMuYworKysgYi9saWJhdmZvcm1hdC9wZHZkZWMuYwpAQCAtMTEyLDcg KzExMiw3IEBAIHN0YXRpYyBpbnQgcGR2X3JlYWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywg QVZQYWNrZXQgKnBrdCkKICAgICAgICAgcmV0dXJuIEFWRVJST1JfRU9GOwogCiAgICAgaWYgKHAt PmN1cnJlbnRfZnJhbWUgPj0gc3RpLT5uYl9pbmRleF9lbnRyaWVzKQotICAgICAgICByZXR1cm4g QVZFUlJPUihFSU8pOworICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKIAogICAg IHBvcyAgID0gc3RpLT5pbmRleF9lbnRyaWVzW3AtPmN1cnJlbnRfZnJhbWVdLnBvczsKICAgICBm bGFncyA9IHN0aS0+aW5kZXhfZW50cmllc1twLT5jdXJyZW50X2ZyYW1lXS5mbGFnczsKZGlmZiAt LWdpdCBhL2xpYmF2Zm9ybWF0L3BwX2Juay5jIGIvbGliYXZmb3JtYXQvcHBfYm5rLmMKaW5kZXgg NTM2MGI3YzVkNy4uMTViYjQ5ZWEyNiAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvcHBfYm5rLmMK KysrIGIvbGliYXZmb3JtYXQvcHBfYm5rLmMKQEAgLTIwLDYgKzIwLDcgQEAKICAqIEZvdW5kYXRp b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIx MTAtMTMwMSBVU0EKICAqLwogI2luY2x1ZGUgImF2Zm9ybWF0LmgiCisjaW5jbHVkZSAiYXZpb19p bnRlcm5hbC5oIgogI2luY2x1ZGUgImRlbXV4LmgiCiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKICNp bmNsdWRlICJsaWJhdnV0aWwvaW50cmVhZHdyaXRlLmgiCkBAIC0xMTcsMTAgKzExOCw4IEBAIHN0 YXRpYyBpbnQgcHBfYm5rX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICB1aW50 OF90IGJ1ZltGRk1BWChQUF9CTktfRklMRV9IRUFERVJfU0laRSwgUFBfQk5LX1RSQUNLX1NJWkUp XTsKICAgICBQUEJua0hlYWRlciBoZHI7CiAKLSAgICBpZiAoKHJldCA9IGF2aW9fcmVhZChzLT5w YiwgYnVmLCBQUF9CTktfRklMRV9IRUFERVJfU0laRSkpIDwgMCkKKyAgICBpZiAoKHJldCA9IGZm aW9fcmVhZF9zaXplKHMtPnBiLCBidWYsIFBQX0JOS19GSUxFX0hFQURFUl9TSVpFKSkgPCAwKQog ICAgICAgICByZXR1cm4gcmV0OwotICAgIGVsc2UgaWYgKHJldCAhPSBQUF9CTktfRklMRV9IRUFE RVJfU0laRSkKLSAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKIAogICAgIHBwX2Jua19wYXJz ZV9oZWFkZXIoJmhkciwgYnVmKTsKIApAQCAtMjQ2LDcgKzI0NSw3IEBAIHN0YXRpYyBpbnQgcHBf Ym5rX3JlYWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKICAgICAg ICAgaWYgKChyZXQgPSBhdmlvX3NlZWsocy0+cGIsIHRyay0+ZGF0YV9vZmZzZXQgKyB0cmstPmJ5 dGVzX3JlYWQsIFNFRUtfU0VUKSkgPCAwKQogICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAg ICAgZWxzZSBpZiAocmV0ICE9IHRyay0+ZGF0YV9vZmZzZXQgKyB0cmstPmJ5dGVzX3JlYWQpCi0g ICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICAgICAgcmV0dXJuIEFWRVJS T1JfSU5WQUxJRERBVEE7CiAKICAgICAgICAgc2l6ZSA9IEZGTUlOKHRyay0+ZGF0YV9zaXplIC0g dHJrLT5ieXRlc19yZWFkLCBQUF9CTktfTUFYX1JFQURfU0laRSk7CiAKZGlmZiAtLWdpdCBhL2xp YmF2Zm9ybWF0L3BzeHN0ci5jIGIvbGliYXZmb3JtYXQvcHN4c3RyLmMKaW5kZXggMGRkNGU4ZDM3 Ny4uMDYxNDg3MTNiMiAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvcHN4c3RyLmMKKysrIGIvbGli YXZmb3JtYXQvcHN4c3RyLmMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJsaWJhdnV0aWwv aW50ZXJuYWwuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvaW50cmVhZHdyaXRlLmgiCiAjaW5jbHVk ZSAiYXZmb3JtYXQuaCIKKyNpbmNsdWRlICJhdmlvX2ludGVybmFsLmgiCiAjaW5jbHVkZSAiZGVt dXguaCIKICNpbmNsdWRlICJpbnRlcm5hbC5oIgogCkBAIC0xMzQsMTEgKzEzNSwxMiBAQCBzdGF0 aWMgaW50IHN0cl9yZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCiAgICAgU3RyRGVtdXhD b250ZXh0ICpzdHIgPSBzLT5wcml2X2RhdGE7CiAgICAgdW5zaWduZWQgY2hhciBzZWN0b3JbUkFX X0NEX1NFQ1RPUl9TSVpFXTsKICAgICBpbnQgc3RhcnQ7CisgICAgaW50IHJldDsKICAgICBpbnQg aTsKIAogICAgIC8qIHNraXAgb3ZlciBhbnkgUklGRiBoZWFkZXIgKi8KLSAgICBpZiAoYXZpb19y ZWFkKHBiLCBzZWN0b3IsIFJJRkZfSEVBREVSX1NJWkUpICE9IFJJRkZfSEVBREVSX1NJWkUpCi0g ICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgaWYgKChyZXQgPSBmZmlvX3JlYWRfc2l6 ZShwYiwgc2VjdG9yLCBSSUZGX0hFQURFUl9TSVpFKSkgPCAwKQorICAgICAgICByZXR1cm4gcmV0 OwogICAgIGlmIChBVl9STDMyKCZzZWN0b3JbMF0pID09IFJJRkZfVEFHKQogICAgICAgICBzdGFy dCA9IFJJRkZfSEVBREVSX1NJWkU7CiAgICAgZWxzZQpAQCAtMTczLDcgKzE3NSw3IEBAIHN0YXRp YyBpbnQgc3RyX3JlYWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywKICAgICAgICAgICAgIHJl dHVybiBBVkVSUk9SX0VPRjsKIAogICAgICAgICBpZiAocmVhZCAhPSBSQVdfQ0RfU0VDVE9SX1NJ WkUpCi0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICAgICAgcmV0dXJu IHJlYWQgPCAwID8gcmVhZCA6IEFWRVJST1JfSU5WQUxJRERBVEE7CiAKICAgICAgICAgY2hhbm5l bCA9IHNlY3RvclsweDExXTsKICAgICAgICAgaWYgKGNoYW5uZWwgPj0gMzIpCkBAIC0yODcsNyAr Mjg5LDcgQEAgc3RhdGljIGludCBzdHJfcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLAog ICAgICAgICB9CiAKICAgICAgICAgaWYgKGF2aW9fZmVvZihwYikpCi0gICAgICAgICAgICByZXR1 cm4gQVZFUlJPUihFSU8pOworICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7 CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9wdmEuYyBiL2xpYmF2Zm9ybWF0 L3B2YS5jCmluZGV4IDA0N2M5M2M5YzQuLjlkZTFhMTg2YTkgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9y bWF0L3B2YS5jCisrKyBiL2xpYmF2Zm9ybWF0L3B2YS5jCkBAIC0xMDMsMTggKzEwMywxOCBAQCBy ZWNvdmVyOgogCiAgICAgaWYgKHN5bmN3b3JkICE9IFBWQV9NQUdJQykgewogICAgICAgICBwdmFf bG9nKHMsIEFWX0xPR19FUlJPUiwgImludmFsaWQgc3luY3dvcmRcbiIpOwotICAgICAgICByZXR1 cm4gQVZFUlJPUihFSU8pOworICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKICAg ICB9CiAgICAgaWYgKHN0cmVhbWlkICE9IFBWQV9WSURFT19QQVlMT0FEICYmIHN0cmVhbWlkICE9 IFBWQV9BVURJT19QQVlMT0FEKSB7CiAgICAgICAgIHB2YV9sb2cocywgQVZfTE9HX0VSUk9SLCAi aW52YWxpZCBzdHJlYW1pZFxuIik7Ci0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAg ICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgIH0KICAgICBpZiAocmVzZXJ2ZWQg IT0gMHg1NSkgewogICAgICAgICBwdmFfbG9nKHMsIEFWX0xPR19XQVJOSU5HLCAiZXhwZWN0ZWQg cmVzZXJ2ZWQgYnl0ZSB0byBiZSAweDU1XG4iKTsKICAgICB9CiAgICAgaWYgKGxlbmd0aCA+IFBW QV9NQVhfUEFZTE9BRF9MRU5HVEgpIHsKICAgICAgICAgcHZhX2xvZyhzLCBBVl9MT0dfRVJST1Is ICJpbnZhbGlkIHBheWxvYWQgbGVuZ3RoICV1XG4iLCBsZW5ndGgpOwotICAgICAgICByZXR1cm4g QVZFUlJPUihFSU8pOworICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKICAgICB9 CiAKICAgICBpZiAoc3RyZWFtaWQgPT0gUFZBX1ZJREVPX1BBWUxPQUQgJiYgcHRzX2ZsYWcpIHsK QEAgLTE0NSw3ICsxNDUsNyBAQCByZWNvdmVyOgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgInRyeWluZyB0byByZWNvdmVyXG4iKTsKICAgICAgICAgICAgICAgICBh dmlvX3NraXAocGIsIGxlbmd0aCAtIDkpOwogICAgICAgICAgICAgICAgIGlmICghcmVhZF9wYWNr ZXQpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgICAg ICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgICAgICAgICAgICAgIGdv dG8gcmVjb3ZlcjsKICAgICAgICAgICAgIH0KIApAQCAtMTkyLDcgKzE5Miw3IEBAIHN0YXRpYyBp bnQgcHZhX3JlYWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkgewog CiAgICAgaWYgKHJlYWRfcGFydF9vZl9wYWNrZXQocywgJnB2YV9wdHMsICZsZW5ndGgsICZzdHJl YW1pZCwgMSkgPCAwIHx8CiAgICAgICAgKHJldCA9IGF2X2dldF9wYWNrZXQocGIsIHBrdCwgbGVu Z3RoKSkgPD0gMCkKLSAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgcmV0dXJu IEFWRVJST1JfSU5WQUxJRERBVEE7CiAKICAgICBwa3QtPnN0cmVhbV9pbmRleCA9IHN0cmVhbWlk IC0gMTsKICAgICBwa3QtPnB0cyA9IHB2YV9wdHM7CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9x b2FkZWMuYyBiL2xpYmF2Zm9ybWF0L3FvYWRlYy5jCmluZGV4IGE5NjMyYzQ2YzMuLjZmOGZlMTEx YWQgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L3FvYWRlYy5jCisrKyBiL2xpYmF2Zm9ybWF0L3Fv YWRlYy5jCkBAIC05Myw5ICs5Myw5IEBAIHN0YXRpYyBpbnQgcW9hX3JlYWRfcGFja2V0KEFWRm9y bWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKICAgICAgICAgcmV0dXJuIHJldDsKIAogICAg IG1lbWNweShwa3QtPmRhdGEsIGhkciwgc2l6ZW9mKGhkcikpOwotICAgIHJldCA9IGF2aW9fcmVh ZChwYiwgcGt0LT5kYXRhICsgc2l6ZW9mKGhkciksIHNpemUgLSBzaXplb2YoaGRyKSk7Ci0gICAg aWYgKHJldCAhPSBzaXplIC0gc2l6ZW9mKGhkcikpCi0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJ Tyk7CisgICAgcmV0ID0gZmZpb19yZWFkX3NpemUocGIsIHBrdC0+ZGF0YSArIHNpemVvZihoZHIp LCBzaXplIC0gc2l6ZW9mKGhkcikpOworICAgIGlmIChyZXQgPCAwKQorICAgICAgICByZXR1cm4g cmV0OwogICAgIHBrdC0+c3RyZWFtX2luZGV4ID0gMDsKICAgICBwa3QtPnBvcyA9IHBvczsKICAg ICBwa3QtPmR1cmF0aW9uID0gZHVyYXRpb247CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9yZWRz cGFyay5jIGIvbGliYXZmb3JtYXQvcmVkc3BhcmsuYwppbmRleCAyNjQyZDdhZjY3Li5mZGVkNDZh YjQzIDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9yZWRzcGFyay5jCisrKyBiL2xpYmF2Zm9ybWF0 L3JlZHNwYXJrLmMKQEAgLTE0MSw3ICsxNDEsNyBAQCBzdGF0aWMgaW50IHJlZHNwYXJrX3JlYWRf cGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKIAogICAgIHJldCA9IGF2 X2dldF9wYWNrZXQocy0+cGIsIHBrdCwgc2l6ZSk7CiAgICAgaWYgKHJldCAhPSBzaXplKSB7Ci0g ICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFM SUREQVRBOwogICAgIH0KIAogICAgIHBrdC0+ZHVyYXRpb24gPSAxNDsKZGlmZiAtLWdpdCBhL2xp YmF2Zm9ybWF0L3JsMi5jIGIvbGliYXZmb3JtYXQvcmwyLmMKaW5kZXggYWE1OTMzMjc4My4uZTI2 ZTE0ZjljZCAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvcmwyLmMKKysrIGIvbGliYXZmb3JtYXQv cmwyLmMKQEAgLTI1OSw3ICsyNTksNyBAQCBzdGF0aWMgaW50IHJsMl9yZWFkX3BhY2tldChBVkZv cm1hdENvbnRleHQgKnMsCiAgICAgLyoqIGZpbGwgdGhlIHBhY2tldCAqLwogICAgIHJldCA9IGF2 X2dldF9wYWNrZXQocGIsIHBrdCwgc2FtcGxlLT5zaXplKTsKICAgICBpZihyZXQgIT0gc2FtcGxl LT5zaXplKXsKLSAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgcmV0dXJuIEFW RVJST1JfSU5WQUxJRERBVEE7CiAgICAgfQogCiAgICAgcGt0LT5zdHJlYW1faW5kZXggPSBzdHJl YW1faWQ7CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9ybWRlYy5jIGIvbGliYXZmb3JtYXQvcm1k ZWMuYwppbmRleCA4NTY0M2EzNThmLi4yOTA5Njk4Y2RhIDEwMDY0NAotLS0gYS9saWJhdmZvcm1h dC9ybWRlYy5jCisrKyBiL2xpYmF2Zm9ybWF0L3JtZGVjLmMKQEAgLTU2OSw3ICs1NjksNyBAQCBz dGF0aWMgaW50IHJtX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICAgICAgLyog dmVyeSBvbGQgLnJhIGZvcm1hdCAqLwogICAgICAgICByZXR1cm4gcm1fcmVhZF9oZWFkZXJfb2xk KHMpOwogICAgIH0gZWxzZSBpZiAodGFnICE9IE1LVEFHKCcuJywgJ1InLCAnTScsICdGJykgJiYg dGFnICE9IE1LVEFHKCcuJywgJ1InLCAnTScsICdQJykpIHsKLSAgICAgICAgcmV0dXJuIEFWRVJS T1IoRUlPKTsKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgfQogCiAg ICAgdGFnX3NpemUgPSBhdmlvX3JiMzIocGIpOwpAQCAtMTA2NCw3ICsxMDY0LDcgQEAgc3RhdGlj IGludCBybV9yZWFkX3BhY2tldChBVkZvcm1hdENvbnRleHQgKnMsIEFWUGFja2V0ICpwa3QpCiAg ICAgICAgICAgICBpZiAoYXZpb19mZW9mKHMtPnBiKSkKICAgICAgICAgICAgICAgICByZXR1cm4g QVZFUlJPUl9FT0Y7CiAgICAgICAgICAgICBpZiAobGVuIDw9IDApCi0gICAgICAgICAgICAgICAg cmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZB TElEREFUQTsKIAogICAgICAgICAgICAgcmVzID0gZmZfcm1fcGFyc2VfcGFja2V0IChzLCBzLT5w Yiwgc3QsIHN0LT5wcml2X2RhdGEsIGxlbiwgcGt0LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmc2VxLCBmbGFncywgdGltZXN0YW1wKTsKQEAgLTE0MTAsNyArMTQxMCw3 IEBAIHN0YXRpYyBpbnQgaXZyX3JlYWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNr ZXQgKnBrdCkKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg ICAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJST1IsICJVbnN1cHBvcnRlZCBvcGNvZGU9JWQg YXQgJSJQUklYNjQiXG4iLCBvcGNvZGUsIGF2aW9fdGVsbChwYikgLSAxKTsKLSAgICAgICAgICAg ICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9S X0lOVkFMSUREQVRBOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL2xp YmF2Zm9ybWF0L3JwbC5jIGIvbGliYXZmb3JtYXQvcnBsLmMKaW5kZXggNzgxZGFiZjdiYS4uMDZl M2YzNTRmYyAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvcnBsLmMKKysrIGIvbGliYXZmb3JtYXQv cnBsLmMKQEAgLTMxMyw3ICszMTMsNyBAQCBzdGF0aWMgaW50IHJwbF9yZWFkX2hlYWRlcihBVkZv cm1hdENvbnRleHQgKnMpCiAgICAgfQogCiAgICAgaWYgKGVycm9yKQotICAgICAgICByZXR1cm4g QVZFUlJPUihFSU8pOworICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKIAogICAg IHJldHVybiAwOwogfQpAQCAtMzQxLDggKzM0MSw5IEBAIHN0YXRpYyBpbnQgcnBsX3JlYWRfcGFj a2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKICAgICBpbmRleF9lbnRyeSA9 ICZzdGktPmluZGV4X2VudHJpZXNbcnBsLT5jaHVua19udW1iZXJdOwogCiAgICAgaWYgKHJwbC0+ ZnJhbWVfaW5fcGFydCA9PSAwKSB7Ci0gICAgICAgIGlmIChhdmlvX3NlZWsocGIsIGluZGV4X2Vu dHJ5LT5wb3MsIFNFRUtfU0VUKSA8IDApCi0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8p OworICAgICAgICBpbnQ2NF90IHJldDY0ID0gYXZpb19zZWVrKHBiLCBpbmRleF9lbnRyeS0+cG9z LCBTRUVLX1NFVCk7CisgICAgICAgIGlmIChyZXQ2NCA8IDApCisgICAgICAgICAgICByZXR1cm4g KGludClyZXQ2NDsKICAgICB9CiAKICAgICBpZiAoc3RyZWFtLT5jb2RlY3Bhci0+Y29kZWNfdHlw ZSA9PSBBVk1FRElBX1RZUEVfVklERU8gJiYKQEAgLTM1MCwxNyArMzUxLDIwIEBAIHN0YXRpYyBp bnQgcnBsX3JlYWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKICAg ICAgICAgLy8gV2UgaGF2ZSB0byBzcGxpdCBFc2NhcGUgMTI0IGZyYW1lcyBiZWNhdXNlIHRoZXJl IGFyZQogICAgICAgICAvLyBtdWx0aXBsZSBmcmFtZXMgcGVyIGNodW5rIGluIEVzY2FwZSAxMjQg c2FtcGxlcy4KICAgICAgICAgdWludDMyX3QgZnJhbWVfc2l6ZTsKKyAgICAgICAgaW50NjRfdCBy ZXQ2NDsKIAogICAgICAgICBhdmlvX3NraXAocGIsIDQpOyAvKiBmbGFncyAqLwogICAgICAgICBm cmFtZV9zaXplID0gYXZpb19ybDMyKHBiKTsKLSAgICAgICAgaWYgKGF2aW9fZmVvZihwYikgfHwg YXZpb19zZWVrKHBiLCAtOCwgU0VFS19DVVIpIDwgMCB8fCAhZnJhbWVfc2l6ZSkKLSAgICAgICAg ICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgIGlmIChhdmlvX2Zlb2YocGIpIHx8ICFm cmFtZV9zaXplKQorICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CisgICAg ICAgIGlmICgocmV0NjQgPSBhdmlvX3NlZWsocGIsIC04LCBTRUVLX0NVUikpIDwgMCkKKyAgICAg ICAgICAgIHJldHVybiAoaW50KXJldDY0OwogCiAgICAgICAgIHJldCA9IGF2X2dldF9wYWNrZXQo cGIsIHBrdCwgZnJhbWVfc2l6ZSk7CiAgICAgICAgIGlmIChyZXQgPCAwKQogICAgICAgICAgICAg cmV0dXJuIHJldDsKICAgICAgICAgaWYgKHJldCAhPSBmcmFtZV9zaXplKQotICAgICAgICAgICAg cmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSURE QVRBOwogCiAgICAgICAgIHBrdC0+ZHVyYXRpb24gPSAxOwogICAgICAgICBwa3QtPnB0cyA9IGlu ZGV4X2VudHJ5LT50aW1lc3RhbXAgKyBycGwtPmZyYW1lX2luX3BhcnQ7CkBAIC0zNzYsNyArMzgw LDcgQEAgc3RhdGljIGludCBycGxfcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBh Y2tldCAqcGt0KQogICAgICAgICBpZiAocmV0IDwgMCkKICAgICAgICAgICAgIHJldHVybiByZXQ7 CiAgICAgICAgIGlmIChyZXQgIT0gaW5kZXhfZW50cnktPnNpemUpCi0gICAgICAgICAgICByZXR1 cm4gQVZFUlJPUihFSU8pOworICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7 CiAKICAgICAgICAgaWYgKHN0cmVhbS0+Y29kZWNwYXItPmNvZGVjX3R5cGUgPT0gQVZNRURJQV9U WVBFX1ZJREVPKSB7CiAgICAgICAgICAgICAvLyBmcmFtZXNfcGVyX2NodW5rIHNob3VsZCBhbHdh eXMgYmUgb25lIGhlcmU7IHRoZSBoZWFkZXIKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L3NlZ2Fm aWxtLmMgYi9saWJhdmZvcm1hdC9zZWdhZmlsbS5jCmluZGV4IGU3MmQ4NzJmOTYuLjJiODUzMDE3 ZGIgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L3NlZ2FmaWxtLmMKKysrIGIvbGliYXZmb3JtYXQv c2VnYWZpbG0uYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRyZWFk d3JpdGUuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvbWVtLmgiCiAjaW5jbHVkZSAiYXZmb3JtYXQu aCIKKyNpbmNsdWRlICJhdmlvX2ludGVybmFsLmgiCiAjaW5jbHVkZSAiZGVtdXguaCIKICNpbmNs dWRlICJpbnRlcm5hbC5oIgogCkBAIC05NSwyMCArOTYsMjEgQEAgc3RhdGljIGludCBmaWxtX3Jl YWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICB1bnNpZ25lZCBpbnQgZGF0YV9vZmZz ZXQ7CiAgICAgdW5zaWduZWQgaW50IGF1ZGlvX2ZyYW1lX2NvdW50ZXI7CiAgICAgdW5zaWduZWQg aW50IHZpZGVvX2ZyYW1lX2NvdW50ZXI7CisgICAgaW50IHJldDsKIAogICAgIGZpbG0tPnNhbXBs ZV90YWJsZSA9IE5VTEw7CiAKICAgICAvKiBsb2FkIHRoZSBtYWluIEZJTE0gaGVhZGVyICovCi0g ICAgaWYgKGF2aW9fcmVhZChwYiwgc2NyYXRjaCwgMTYpICE9IDE2KQotICAgICAgICByZXR1cm4g QVZFUlJPUihFSU8pOworICAgIGlmICgocmV0ID0gZmZpb19yZWFkX3NpemUocGIsIHNjcmF0Y2gs IDE2KSkgPCAwKQorICAgICAgICByZXR1cm4gcmV0OwogICAgIGRhdGFfb2Zmc2V0ID0gQVZfUkIz Migmc2NyYXRjaFs0XSk7CiAgICAgZmlsbS0+dmVyc2lvbiA9IEFWX1JCMzIoJnNjcmF0Y2hbOF0p OwogCiAgICAgLyogbG9hZCB0aGUgRkRTQyBjaHVuayAqLwogICAgIGlmIChmaWxtLT52ZXJzaW9u ID09IDApIHsKICAgICAgICAgLyogc3BlY2lhbCBjYXNlIGZvciBMZW1taW5ncyAuZmlsbSBmaWxl czsgMjAtYnl0ZSBoZWFkZXIgKi8KLSAgICAgICAgaWYgKGF2aW9fcmVhZChwYiwgc2NyYXRjaCwg MjApICE9IDIwKQotICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgaWYg KChyZXQgPSBmZmlvX3JlYWRfc2l6ZShwYiwgc2NyYXRjaCwgMjApKSA8IDApCisgICAgICAgICAg ICByZXR1cm4gcmV0OwogICAgICAgICAvKiBtYWtlIHNvbWUgYXNzdW1wdGlvbnMgYWJvdXQgdGhl IGF1ZGlvIHBhcmFtZXRlcnMgKi8KICAgICAgICAgZmlsbS0+YXVkaW9fdHlwZSA9IEFWX0NPREVD X0lEX1BDTV9TODsKICAgICAgICAgZmlsbS0+YXVkaW9fc2FtcGxlcmF0ZSA9IDIyMDUwOwpAQCAt MTE2LDggKzExOCw4IEBAIHN0YXRpYyBpbnQgZmlsbV9yZWFkX2hlYWRlcihBVkZvcm1hdENvbnRl eHQgKnMpCiAgICAgICAgIGZpbG0tPmF1ZGlvX2JpdHMgPSA4OwogICAgIH0gZWxzZSB7CiAgICAg ICAgIC8qIG5vcm1hbCBTYXR1cm4gLmNwayBmaWxlczsgMzItYnl0ZSBoZWFkZXIgKi8KLSAgICAg ICAgaWYgKGF2aW9fcmVhZChwYiwgc2NyYXRjaCwgMzIpICE9IDMyKQotICAgICAgICAgICAgcmV0 dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgaWYgKChyZXQgPSBmZmlvX3JlYWRfc2l6ZShwYiwg c2NyYXRjaCwgMzIpKSA8IDApCisgICAgICAgICAgICByZXR1cm4gcmV0OwogICAgICAgICBmaWxt LT5hdWRpb19zYW1wbGVyYXRlID0gQVZfUkIxNigmc2NyYXRjaFsyNF0pOwogICAgICAgICBmaWxt LT5hdWRpb19jaGFubmVscyA9IHNjcmF0Y2hbMjFdOwogICAgICAgICBmaWxtLT5hdWRpb19iaXRz ID0gc2NyYXRjaFsyMl07CkBAIC0xOTYsOCArMTk4LDggQEAgc3RhdGljIGludCBmaWxtX3JlYWRf aGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICB9CiAKICAgICAvKiBsb2FkIHRoZSBzYW1w bGUgdGFibGUgKi8KLSAgICBpZiAoYXZpb19yZWFkKHBiLCBzY3JhdGNoLCAxNikgIT0gMTYpCi0g ICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgaWYgKChyZXQgPSBmZmlvX3JlYWRfc2l6 ZShwYiwgc2NyYXRjaCwgMTYpKSA8IDApCisgICAgICAgIHJldHVybiByZXQ7CiAgICAgaWYgKEFW X1JCMzIoJnNjcmF0Y2hbMF0pICE9IFNUQUJfVEFHKQogICAgICAgICByZXR1cm4gQVZFUlJPUl9J TlZBTElEREFUQTsKICAgICBmaWxtLT5iYXNlX2Nsb2NrID0gQVZfUkIzMigmc2NyYXRjaFs4XSk7 CkBAIC0yMTcsOCArMjE5LDggQEAgc3RhdGljIGludCBmaWxtX3JlYWRfaGVhZGVyKEFWRm9ybWF0 Q29udGV4dCAqcykKICAgICBhdWRpb19mcmFtZV9jb3VudGVyID0gdmlkZW9fZnJhbWVfY291bnRl ciA9IDA7CiAgICAgZm9yIChpID0gMDsgaSA8IGZpbG0tPnNhbXBsZV9jb3VudDsgaSsrKSB7CiAg ICAgICAgIC8qIGxvYWQgdGhlIG5leHQgc2FtcGxlIHJlY29yZCBhbmQgdHJhbnNmZXIgaXQgdG8g YW4gaW50ZXJuYWwgc3RydWN0ICovCi0gICAgICAgIGlmIChhdmlvX3JlYWQocGIsIHNjcmF0Y2gs IDE2KSAhPSAxNikKLSAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgIGlm ICgocmV0ID0gZmZpb19yZWFkX3NpemUocGIsIHNjcmF0Y2gsIDE2KSkgPCAwKQorICAgICAgICAg ICAgcmV0dXJuIHJldDsKICAgICAgICAgZmlsbS0+c2FtcGxlX3RhYmxlW2ldLnNhbXBsZV9vZmZz ZXQgPQogICAgICAgICAgICAgZGF0YV9vZmZzZXQgKyBBVl9SQjMyKCZzY3JhdGNoWzBdKTsKICAg ICAgICAgZmlsbS0+c2FtcGxlX3RhYmxlW2ldLnNhbXBsZV9zaXplID0gQVZfUkIzMigmc2NyYXRj aFs0XSk7CkBAIC0yOTQsNyArMjk2LDcgQEAgc3RhdGljIGludCBmaWxtX3JlYWRfcGFja2V0KEFW Rm9ybWF0Q29udGV4dCAqcywKIAogICAgIHJldCA9IGF2X2dldF9wYWNrZXQocGIsIHBrdCwgc2Ft cGxlLT5zYW1wbGVfc2l6ZSk7CiAgICAgaWYgKHJldCAhPSBzYW1wbGUtPnNhbXBsZV9zaXplKQot ICAgICAgICByZXQgPSBBVkVSUk9SKEVJTyk7CisgICAgICAgIHJldCA9IEFWRVJST1JfSU5WQUxJ RERBVEE7CiAKICAgICBwa3QtPnN0cmVhbV9pbmRleCA9IHNhbXBsZS0+c3RyZWFtOwogICAgIHBr dC0+ZHRzID0gc2FtcGxlLT5wdHM7CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9zaWVycmF2bWQu YyBiL2xpYmF2Zm9ybWF0L3NpZXJyYXZtZC5jCmluZGV4IDIxMDNmZjY0ZGIuLmJiMWQxYzVkZjcg MTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L3NpZXJyYXZtZC5jCisrKyBiL2xpYmF2Zm9ybWF0L3Np ZXJyYXZtZC5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAibGliYXZ1dGlsL2ludHJlYWR3 cml0ZS5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9tZW0uaCIKICNpbmNsdWRlICJhdmZvcm1hdC5o IgorI2luY2x1ZGUgImF2aW9faW50ZXJuYWwuaCIKICNpbmNsdWRlICJkZW11eC5oIgogI2luY2x1 ZGUgImludGVybmFsLmgiCiAjaW5jbHVkZSAiYXZpb19pbnRlcm5hbC5oIgpAQCAtMTAyLDggKzEw Myw4IEBAIHN0YXRpYyBpbnQgdm1kX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKIAog ICAgIC8qIGZldGNoIHRoZSBtYWluIGhlYWRlciwgaW5jbHVkaW5nIHRoZSAyIGhlYWRlciBsZW5n dGggYnl0ZXMgKi8KICAgICBhdmlvX3NlZWsocGIsIDAsIFNFRUtfU0VUKTsKLSAgICBpZiAoYXZp b19yZWFkKHBiLCB2bWQtPnZtZF9oZWFkZXIsIFZNRF9IRUFERVJfU0laRSkgIT0gVk1EX0hFQURF Ul9TSVpFKQotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgIGlmICgocmV0ID0gZmZp b19yZWFkX3NpemUocGIsIHZtZC0+dm1kX2hlYWRlciwgVk1EX0hFQURFUl9TSVpFKSA8IDApKQor ICAgICAgICByZXR1cm4gcmV0OwogCiAgICAgd2lkdGggPSBBVl9STDE2KCZ2bWQtPnZtZF9oZWFk ZXJbMTJdKTsKICAgICBoZWlnaHQgPSBBVl9STDE2KCZ2bWQtPnZtZF9oZWFkZXJbMTRdKTsKQEAg LTE5MiwxMSArMTkzLDggQEAgc3RhdGljIGludCB2bWRfcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250 ZXh0ICpzKQogICAgICAgICByZXQgPSBBVkVSUk9SKEVOT01FTSk7CiAgICAgICAgIGdvdG8gZXJy b3I7CiAgICAgfQotICAgIGlmIChhdmlvX3JlYWQocGIsIHJhd19mcmFtZV90YWJsZSwgcmF3X2Zy YW1lX3RhYmxlX3NpemUpICE9Ci0gICAgICAgIHJhd19mcmFtZV90YWJsZV9zaXplKSB7Ci0gICAg ICAgIHJldCA9IEFWRVJST1IoRUlPKTsKKyAgICBpZiAoKHJldCA9IGZmaW9fcmVhZF9zaXplKHBi LCByYXdfZnJhbWVfdGFibGUsIHJhd19mcmFtZV90YWJsZV9zaXplKSkgPCAwKQogICAgICAgICBn b3RvIGVycm9yOwotICAgIH0KIAogICAgIHRvdGFsX2ZyYW1lcyA9IDA7CiAgICAgZm9yIChpID0g MDsgaSA8IHZtZC0+ZnJhbWVfY291bnQ7IGkrKykgewpAQCAtMjc5LDIxICsyNzcsMTggQEAgc3Rh dGljIGludCB2bWRfcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLAogICAgIGF2aW9fc2Vl ayhwYiwgZnJhbWUtPmZyYW1lX29mZnNldCwgU0VFS19TRVQpOwogCiAgICAgaWYoZmZpb19saW1p dChwYiwgZnJhbWUtPmZyYW1lX3NpemUpICE9IGZyYW1lLT5mcmFtZV9zaXplKQotICAgICAgICBy ZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsK ICAgICByZXQgPSBhdl9uZXdfcGFja2V0KHBrdCwgZnJhbWUtPmZyYW1lX3NpemUgKyBCWVRFU19Q RVJfRlJBTUVfUkVDT1JEKTsKICAgICBpZiAocmV0IDwgMCkKICAgICAgICAgcmV0dXJuIHJldDsK ICAgICBwa3QtPnBvcz0gYXZpb190ZWxsKHBiKTsKICAgICBtZW1jcHkocGt0LT5kYXRhLCBmcmFt ZS0+ZnJhbWVfcmVjb3JkLCBCWVRFU19QRVJfRlJBTUVfUkVDT1JEKTsKICAgICBpZih2bWQtPmlz X2luZGVvMyAmJiBmcmFtZS0+ZnJhbWVfcmVjb3JkWzBdID09IDB4MDIpCi0gICAgICAgIHJldCA9 IGF2aW9fcmVhZChwYiwgcGt0LT5kYXRhLCBmcmFtZS0+ZnJhbWVfc2l6ZSk7CisgICAgICAgIHJl dCA9IGZmaW9fcmVhZF9zaXplKHBiLCBwa3QtPmRhdGEsIGZyYW1lLT5mcmFtZV9zaXplKTsKICAg ICBlbHNlCi0gICAgICAgIHJldCA9IGF2aW9fcmVhZChwYiwgcGt0LT5kYXRhICsgQllURVNfUEVS X0ZSQU1FX1JFQ09SRCwKKyAgICAgICAgcmV0ID0gZmZpb19yZWFkX3NpemUocGIsIHBrdC0+ZGF0 YSArIEJZVEVTX1BFUl9GUkFNRV9SRUNPUkQsCiAgICAgICAgICAgICBmcmFtZS0+ZnJhbWVfc2l6 ZSk7CiAKLSAgICBpZiAocmV0ICE9IGZyYW1lLT5mcmFtZV9zaXplKSB7Ci0gICAgICAgIHJldCA9 IEFWRVJST1IoRUlPKTsKLSAgICB9CiAgICAgcGt0LT5zdHJlYW1faW5kZXggPSBmcmFtZS0+c3Ry ZWFtX2luZGV4OwogICAgIHBrdC0+cHRzID0gZnJhbWUtPnB0czsKICAgICBhdl9sb2cocywgQVZf TE9HX0RFQlVHLCAiIGRpc3BhdGNoaW5nICVzIGZyYW1lIHdpdGggJWQgYnl0ZXMgYW5kIHB0cyAl IlBSSWQ2NCJcbiIsCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9zaWZmLmMgYi9saWJhdmZvcm1h dC9zaWZmLmMKaW5kZXggYjMzNzQ2ZDUxZC4uYjBmZmY4MGIwOSAxMDA2NDQKLS0tIGEvbGliYXZm b3JtYXQvc2lmZi5jCisrKyBiL2xpYmF2Zm9ybWF0L3NpZmYuYwpAQCAtMjMyLDcgKzIzMiw3IEBA IHN0YXRpYyBpbnQgc2lmZl9yZWFkX3BhY2tldChBVkZvcm1hdENvbnRleHQgKnMsIEFWUGFja2V0 ICpwa3QpCiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpbnQgcGt0c2l6ZSA9IGF2X2dl dF9wYWNrZXQocy0+cGIsIHBrdCwgYy0+c25kc2l6ZSAtIDQpOwogICAgICAgICAgICAgaWYgKHBr dHNpemUgPCAwKQotICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAg ICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgICAgICAgICBwa3QtPnN0 cmVhbV9pbmRleCA9IDE7CiAgICAgICAgICAgICBwa3QtPmR1cmF0aW9uICAgICA9IHBrdHNpemU7 CiAgICAgICAgICAgICBjLT5jdXJzdHJtICAgICAgICA9IDA7CkBAIC0yNDYsNyArMjQ2LDcgQEAg c3RhdGljIGludCBzaWZmX3JlYWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQg KnBrdCkKICAgICAgICAgaWYgKCFwa3RzaXplKQogICAgICAgICAgICAgcmV0dXJuIEFWRVJST1Jf RU9GOwogICAgICAgICBpZiAocGt0c2l6ZSA8PSAwKQotICAgICAgICAgICAgcmV0dXJuIEFWRVJS T1IoRUlPKTsKKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgICAg ICBwa3QtPmR1cmF0aW9uID0gcGt0c2l6ZTsKICAgICB9CiAgICAgcmV0dXJuIHBrdC0+c2l6ZTsK ZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L3NtdXNoLmMgYi9saWJhdmZvcm1hdC9zbXVzaC5jCmlu ZGV4IGQzODBiZmJmZjEuLjU4NzEyNWRiYzAgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L3NtdXNo LmMKKysrIGIvbGliYXZmb3JtYXQvc211c2guYwpAQCAtMjM1LDcgKzIzNSw3IEBAIHN0YXRpYyBp bnQgc211c2hfcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpjdHgsIEFWUGFja2V0ICpwa3Qp CiAgICAgICAgICAgICBpZiAoc2l6ZSA8IDEzKQogICAgICAgICAgICAgICAgIHJldHVybiBBVkVS Uk9SX0lOVkFMSUREQVRBOwogICAgICAgICAgICAgaWYgKGF2X2dldF9wYWNrZXQocGIsIHBrdCwg c2l6ZSkgPCAxMykKLSAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAg ICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogCiAgICAgICAgICAgICBwa3Qt PnN0cmVhbV9pbmRleCA9IHNtdXNoLT5hdWRpb19zdHJlYW1faW5kZXg7CiAgICAgICAgICAgICBw a3QtPmZsYWdzICAgICAgIHw9IEFWX1BLVF9GTEFHX0tFWTsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9y bWF0L3NveGRlYy5jIGIvbGliYXZmb3JtYXQvc294ZGVjLmMKaW5kZXggYmEzNDljODcwZS4uYzcx MGI5YTE1MiAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvc294ZGVjLmMKKysrIGIvbGliYXZmb3Jt YXQvc294ZGVjLmMKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJsaWJhdnV0aWwvZGljdC5o IgogI2luY2x1ZGUgImxpYmF2dXRpbC9tZW0uaCIKICNpbmNsdWRlICJhdmZvcm1hdC5oIgorI2lu Y2x1ZGUgImF2aW9faW50ZXJuYWwuaCIKICNpbmNsdWRlICJkZW11eC5oIgogI2luY2x1ZGUgImlu dGVybmFsLmgiCiAjaW5jbHVkZSAicGNtLmgiCkBAIC0xMDYsMTEgKzEwNywxMiBAQCBzdGF0aWMg aW50IHNveF9yZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCiAKICAgICBpZiAoY29tbWVu dF9zaXplICYmIGNvbW1lbnRfc2l6ZSA8IFVJTlRfTUFYKSB7CiAgICAgICAgIGNoYXIgKmNvbW1l bnQgPSBhdl9tYWxsb2MoY29tbWVudF9zaXplKzEpOworICAgICAgICBpbnQgcmV0OwogICAgICAg ICBpZighY29tbWVudCkKICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Ci0gICAg ICAgIGlmIChhdmlvX3JlYWQocGIsIGNvbW1lbnQsIGNvbW1lbnRfc2l6ZSkgIT0gY29tbWVudF9z aXplKSB7CisgICAgICAgIGlmICgocmV0ID0gZmZpb19yZWFkX3NpemUocGIsIGNvbW1lbnQsIGNv bW1lbnRfc2l6ZSkpIDwgMCkgewogICAgICAgICAgICAgYXZfZnJlZXAoJmNvbW1lbnQpOwotICAg ICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CiAg ICAgICAgIH0KICAgICAgICAgY29tbWVudFtjb21tZW50X3NpemVdID0gMDsKIApkaWZmIC0tZ2l0 IGEvbGliYXZmb3JtYXQvc3dmZGVjLmMgYi9saWJhdmZvcm1hdC9zd2ZkZWMuYwppbmRleCAyOWVl ZmM2OGEyLi4xMjkwZjJjNzBmIDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9zd2ZkZWMuYworKysg Yi9saWJhdmZvcm1hdC9zd2ZkZWMuYwpAQCAtMTc0LDEwICsxNzQsMTAgQEAgc3RhdGljIGludCBz d2ZfcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgICAgICBwYiA9IHN3Zi0+enBi OwogI2Vsc2UKICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgInpsaWIgc3VwcG9ydCBp cyByZXF1aXJlZCB0byByZWFkIFNXRiBjb21wcmVzc2VkIGZpbGVzXG4iKTsKLSAgICAgICAgcmV0 dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PU1lTKTsKICNlbmRp ZgogICAgIH0gZWxzZSBpZiAodGFnICE9IE1LQkVUQUcoJ0YnLCAnVycsICdTJywgMCkpCi0gICAg ICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSURE QVRBOwogICAgIC8qIHNraXAgcmVjdGFuZ2xlIHNpemUgKi8KICAgICBuYml0cyA9IGF2aW9fcjgo cGIpID4+IDM7CiAgICAgbGVuID0gKDQgKiBuYml0cyAtIDMgKyA3KSAvIDg7CmRpZmYgLS1naXQg YS9saWJhdmZvcm1hdC90aHAuYyBiL2xpYmF2Zm9ybWF0L3RocC5jCmluZGV4IDc2ZGI3ZmM1ODEu LmMxYTc0MThhMmMgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L3RocC5jCisrKyBiL2xpYmF2Zm9y bWF0L3RocC5jCkBAIC0xOTMsNyArMTkzLDcgQEAgc3RhdGljIGludCB0aHBfcmVhZF9wYWNrZXQo QVZGb3JtYXRDb250ZXh0ICpzLAogICAgICAgICBpZiAocmV0IDwgMCkKICAgICAgICAgICAgIHJl dHVybiByZXQ7CiAgICAgICAgIGlmIChyZXQgIT0gc2l6ZSkgewotICAgICAgICAgICAgcmV0dXJu IEFWRVJST1IoRUlPKTsKKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwog ICAgICAgICB9CiAKICAgICAgICAgcGt0LT5zdHJlYW1faW5kZXggPSB0aHAtPnZpZGVvX3N0cmVh bV9pbmRleDsKQEAgLTIwMiw3ICsyMDIsNyBAQCBzdGF0aWMgaW50IHRocF9yZWFkX3BhY2tldChB VkZvcm1hdENvbnRleHQgKnMsCiAgICAgICAgIGlmIChyZXQgPCAwKQogICAgICAgICAgICAgcmV0 dXJuIHJldDsKICAgICAgICAgaWYgKHJldCAhPSB0aHAtPmF1ZGlvc2l6ZSkgewotICAgICAgICAg ICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFM SUREQVRBOwogICAgICAgICB9CiAKICAgICAgICAgcGt0LT5zdHJlYW1faW5kZXggPSB0aHAtPmF1 ZGlvX3N0cmVhbV9pbmRleDsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L3RpZXJ0ZXhzZXEuYyBi L2xpYmF2Zm9ybWF0L3RpZXJ0ZXhzZXEuYwppbmRleCA4NDRiOThlMTgyLi41ZGM3ZDlmMTEwIDEw MDY0NAotLS0gYS9saWJhdmZvcm1hdC90aWVydGV4c2VxLmMKKysrIGIvbGliYXZmb3JtYXQvdGll cnRleHNlcS5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAibGliYXZ1dGlsL2NoYW5uZWxf bGF5b3V0LmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL21lbS5oIgogI2luY2x1ZGUgImF2Zm9ybWF0 LmgiCisjaW5jbHVkZSAiYXZpb19pbnRlcm5hbC5oIgogI2luY2x1ZGUgImRlbXV4LmgiCiAjaW5j bHVkZSAiaW50ZXJuYWwuaCIKIApAQCAtMTA5LDYgKzExMCw3IEBAIHN0YXRpYyBpbnQgc2VxX2lu aXRfZnJhbWVfYnVmZmVycyhTZXFEZW11eENvbnRleHQgKnNlcSwgQVZJT0NvbnRleHQgKnBiKQog c3RhdGljIGludCBzZXFfZmlsbF9idWZmZXIoU2VxRGVtdXhDb250ZXh0ICpzZXEsIEFWSU9Db250 ZXh0ICpwYiwgaW50IGJ1ZmZlcl9udW0sIHVuc2lnbmVkIGludCBkYXRhX29mZnMsIGludCBkYXRh X3NpemUpCiB7CiAgICAgVGllcnRleFNlcUZyYW1lQnVmZmVyICpzZXFfYnVmZmVyOworICAgIGlu dCByZXQ7CiAKICAgICBpZiAoYnVmZmVyX251bSA+PSBTRVFfTlVNX0ZSQU1FX0JVRkZFUlMpCiAg ICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwpAQCAtMTE4LDggKzEyMCw4IEBAIHN0 YXRpYyBpbnQgc2VxX2ZpbGxfYnVmZmVyKFNlcURlbXV4Q29udGV4dCAqc2VxLCBBVklPQ29udGV4 dCAqcGIsIGludCBidWZmZXJfbnVtCiAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRB OwogCiAgICAgYXZpb19zZWVrKHBiLCBzZXEtPmN1cnJlbnRfZnJhbWVfb2ZmcyArIGRhdGFfb2Zm cywgU0VFS19TRVQpOwotICAgIGlmIChhdmlvX3JlYWQocGIsIHNlcV9idWZmZXItPmRhdGEgKyBz ZXFfYnVmZmVyLT5maWxsX3NpemUsIGRhdGFfc2l6ZSkgIT0gZGF0YV9zaXplKQotICAgICAgICBy ZXR1cm4gQVZFUlJPUihFSU8pOworICAgIGlmICgocmV0ID0gZmZpb19yZWFkX3NpemUocGIsIHNl cV9idWZmZXItPmRhdGEgKyBzZXFfYnVmZmVyLT5maWxsX3NpemUsIGRhdGFfc2l6ZSkpIDwgMCkK KyAgICAgICAgcmV0dXJuIHJldDsKIAogICAgIHNlcV9idWZmZXItPmZpbGxfc2l6ZSArPSBkYXRh X3NpemU7CiAgICAgcmV0dXJuIDA7CkBAIC0yNzMsMTAgKzI3NSwxMSBAQCBzdGF0aWMgaW50IHNl cV9yZWFkX3BhY2tldChBVkZvcm1hdENvbnRleHQgKnMsIEFWUGFja2V0ICpwa3QpCiAKICAgICAg ICAgICAgIHBrdC0+ZGF0YVswXSA9IDA7CiAgICAgICAgICAgICBpZiAoc2VxLT5jdXJyZW50X3Bh bF9kYXRhX3NpemUpIHsKKyAgICAgICAgICAgICAgICBpbnQgcmV0OwogICAgICAgICAgICAgICAg IHBrdC0+ZGF0YVswXSB8PSAxOwogICAgICAgICAgICAgICAgIGF2aW9fc2VlayhwYiwgc2VxLT5j dXJyZW50X2ZyYW1lX29mZnMgKyBzZXEtPmN1cnJlbnRfcGFsX2RhdGFfb2ZmcywgU0VFS19TRVQp OwotICAgICAgICAgICAgICAgIGlmIChhdmlvX3JlYWQocGIsICZwa3QtPmRhdGFbMV0sIHNlcS0+ Y3VycmVudF9wYWxfZGF0YV9zaXplKSAhPSBzZXEtPmN1cnJlbnRfcGFsX2RhdGFfc2l6ZSkKLSAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgICAgICAgICBp ZiAoKHJldCA9IGZmaW9fcmVhZF9zaXplKHBiLCAmcGt0LT5kYXRhWzFdLCBzZXEtPmN1cnJlbnRf cGFsX2RhdGFfc2l6ZSkpIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKICAg ICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChzZXEtPmN1cnJlbnRfdmlkZW9fZGF0YV9zaXpl KSB7CiAgICAgICAgICAgICAgICAgcGt0LT5kYXRhWzBdIHw9IDI7CkBAIC0yOTUsNyArMjk4LDcg QEAgc3RhdGljIGludCBzZXFfcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBhY2tl dCAqcGt0KQogCiAgICAgLyogYXVkaW8gcGFja2V0ICovCiAgICAgaWYgKHNlcS0+Y3VycmVudF9h dWRpb19kYXRhX29mZnMgPT0gMCkgLyogZW5kIG9mIGRhdGEgcmVhY2hlZCAqLwotICAgICAgICBy ZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICByZXR1cm4gQVZFUlJPUl9FT0Y7CiAKICAgICBh dmlvX3NlZWsocGIsIHNlcS0+Y3VycmVudF9mcmFtZV9vZmZzICsgc2VxLT5jdXJyZW50X2F1ZGlv X2RhdGFfb2ZmcywgU0VFS19TRVQpOwogICAgIHJjID0gYXZfZ2V0X3BhY2tldChwYiwgcGt0LCBz ZXEtPmN1cnJlbnRfYXVkaW9fZGF0YV9zaXplKTsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L3R5 LmMgYi9saWJhdmZvcm1hdC90eS5jCmluZGV4IGY1MjRiNzRiYWQuLmFjZDVlNjIxNTcgMTAwNjQ0 Ci0tLSBhL2xpYmF2Zm9ybWF0L3R5LmMKKysrIGIvbGliYXZmb3JtYXQvdHkuYwpAQCAtMzAzLDcg KzMwMyw3IEBAIHN0YXRpYyBpbnQgdHlfcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQog ICAgIGlmICh0eS0+dGl2b19zZXJpZXMgPT0gVElWT19TRVJJRVNfVU5LTk9XTiB8fAogICAgICAg ICB0eS0+YXVkaW9fdHlwZSA9PSBUSVZPX0FVRElPX1VOS05PV04gfHwKICAgICAgICAgdHktPnRp dm9fdHlwZSA9PSBUSVZPX1RZUEVfVU5LTk9XTikKLSAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlP KTsKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAKICAgICBzdCA9IGF2Zm9y bWF0X25ld19zdHJlYW0ocywgTlVMTCk7CiAgICAgaWYgKCFzdCkKZGlmZiAtLWdpdCBhL2xpYmF2 Zm9ybWF0L3ZjMXRlc3QuYyBiL2xpYmF2Zm9ybWF0L3ZjMXRlc3QuYwppbmRleCAzOTRhNzBjMWFj Li4yMzliMzViZjMzIDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC92YzF0ZXN0LmMKKysrIGIvbGli YXZmb3JtYXQvdmMxdGVzdC5jCkBAIC0xMDgsNyArMTA4LDcgQEAgc3RhdGljIGludCB2YzF0X3Jl YWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywKICAgICAgICAga2V5ZnJhbWUgPSAxOwogICAg IHB0cyA9IGF2aW9fcmwzMihwYik7CiAgICAgaWYoYXZfZ2V0X3BhY2tldChwYiwgcGt0LCBmcmFt ZV9zaXplKSA8IDApCi0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgIHJldHVy biBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgIGlmKHMtPnN0cmVhbXNbMF0tPnRpbWVfYmFzZS5k ZW4gPT0gMTAwMCkKICAgICAgICAgcGt0LT5wdHMgPSBwdHM7CiAgICAgcGt0LT5mbGFncyB8PSBr ZXlmcmFtZSA/IEFWX1BLVF9GTEFHX0tFWSA6IDA7CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC92 aXZpZGFzLmMgYi9saWJhdmZvcm1hdC92aXZpZGFzLmMKaW5kZXggZGQyNTUzOTIwMS4uYjcwOGQ3 MWM2NSAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvdml2aWRhcy5jCisrKyBiL2xpYmF2Zm9ybWF0 L3ZpdmlkYXMuYwpAQCAtNjAxLDcgKzYwMSw3IEBAIHN0YXRpYyBpbnQgdml2X3JlYWRfaGVhZGVy KEFWRm9ybWF0Q29udGV4dCAqcykKICAgICAgICAgazIgPSBiMjJfa2V5OwogICAgICAgICBidWYg PSByZWFkX3ZibG9jayhwYiwgJnYsIGIyMl9rZXksICZrMiwgMCk7CiAgICAgICAgIGlmICghYnVm KQotICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgICAgIHJldHVybiBB VkVSUk9SX0lOVkFMSUREQVRBOwogCiAgICAgICAgIGF2X2ZyZWUoYnVmKTsKICAgICB9CkBAIC02 MDksNyArNjA5LDcgQEAgc3RhdGljIGludCB2aXZfcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0 ICpzKQogICAgIGsyID0ga2V5OwogICAgIGJ1ZiA9IHJlYWRfdmJsb2NrKHBiLCAmdiwga2V5LCAm azIsIDApOwogICAgIGlmICghYnVmKQotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAg ICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKICAgICByZXQgPSB0cmFja19oZWFkZXIo dml2LCBzLCBidWYsIHYpOwogICAgIGF2X2ZyZWUoYnVmKTsKICAgICBpZiAocmV0IDwgMCkKQEAg LTYxNyw3ICs2MTcsNyBAQCBzdGF0aWMgaW50IHZpdl9yZWFkX2hlYWRlcihBVkZvcm1hdENvbnRl eHQgKnMpCiAKICAgICBidWYgPSByZWFkX3ZibG9jayhwYiwgJnYsIGtleSwgJmsyLCB2KTsKICAg ICBpZiAoIWJ1ZikKLSAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgcmV0dXJu IEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgcmV0ID0gdHJhY2tfaW5kZXgodml2LCBzLCBidWYs IHYpOwogICAgIGF2X2ZyZWUoYnVmKTsKICAgICBpZiAocmV0IDwgMCkKQEAgLTY0Myw3ICs2NDMs NyBAQCBzdGF0aWMgaW50IHZpdl9yZWFkX3BhY2tldChBVkZvcm1hdENvbnRleHQgKnMsCiAgICAg aW50IHJldDsKIAogICAgIGlmICghdml2LT5zYl9wYikKLSAgICAgICAgcmV0dXJuIEFWRVJST1Io RUlPKTsKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgaWYgKGF2aW9f ZmVvZih2aXYtPnNiX3BiKSkKICAgICAgICAgcmV0dXJuIEFWRVJST1JfRU9GOwogCkBAIC02NzAs NyArNjcwLDcgQEAgc3RhdGljIGludCB2aXZfcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpz LAogCiAgICAgaWYgKHZpdi0+Y3VycmVudF9zYl9lbnRyeSA+PSB2aXYtPm5fc2JfZW50cmllcykg ewogICAgICAgICBpZiAodml2LT5jdXJyZW50X3NiKzEgPj0gdml2LT5uX3NiX2Jsb2NrcykKLSAg ICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgICAgICByZXR1cm4gQVZFUlJP Ul9JTlZBTElEREFUQTsKICAgICAgICAgdml2LT5jdXJyZW50X3NiKys7CiAKICAgICAgICAgbG9h ZF9zYl9ibG9jayhzLCB2aXYsIDApOwpAQCAtNjc5LDcgKzY3OSw3IEBAIHN0YXRpYyBpbnQgdml2 X3JlYWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywKIAogICAgIHBiID0gdml2LT5zYl9wYjsK ICAgICBpZiAoIXBiKQotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICByZXR1 cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKICAgICBvZmYgPSBhdmlvX3RlbGwocGIpOwogCiAgICAg aWYgKHZpdi0+Y3VycmVudF9zYl9lbnRyeSA+PSB2aXYtPm5fc2JfZW50cmllcykKZGlmZiAtLWdp dCBhL2xpYmF2Zm9ybWF0L3ZvY19wYWNrZXQuYyBiL2xpYmF2Zm9ybWF0L3ZvY19wYWNrZXQuYwpp bmRleCAzMmY4YjI5YWE3Li5jZWU2YWM1NzQ2IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC92b2Nf cGFja2V0LmMKKysrIGIvbGliYXZmb3JtYXQvdm9jX3BhY2tldC5jCkBAIC01Myw3ICs1Myw3IEBA IGZmX3ZvY19nZXRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCwgQVZT dHJlYW0gKnN0LCBpbnQgbWF4X3NpemUpCiAgICAgICAgIGlmICghdm9jLT5yZW1haW5pbmdfc2l6 ZSkgewogICAgICAgICAgICAgaW50NjRfdCBmaWxlc2l6ZTsKICAgICAgICAgICAgIGlmICghKHMt PnBiLT5zZWVrYWJsZSAmIEFWSU9fU0VFS0FCTEVfTk9STUFMKSkKLSAgICAgICAgICAgICAgICBy ZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT1NZ Uyk7CiAgICAgICAgICAgICBmaWxlc2l6ZSA9IGF2aW9fc2l6ZShwYik7CiAgICAgICAgICAgICBp ZiAoZmlsZXNpemUgLSBhdmlvX3RlbGwocGIpID4gSU5UX01BWCkKICAgICAgICAgICAgICAgICBy ZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L3Zway5j IGIvbGliYXZmb3JtYXQvdnBrLmMKaW5kZXggMDAxYWQzMzU1NS4uZjYyNzBhMTFhZSAxMDA2NDQK LS0tIGEvbGliYXZmb3JtYXQvdnBrLmMKKysrIGIvbGliYXZmb3JtYXQvdnBrLmMKQEAgLTIxLDYg KzIxLDcgQEAKIAogI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRyZWFkd3JpdGUuaCIKICNpbmNsdWRl ICJhdmZvcm1hdC5oIgorI2luY2x1ZGUgImF2aW9faW50ZXJuYWwuaCIKICNpbmNsdWRlICJkZW11 eC5oIgogI2luY2x1ZGUgImludGVybmFsLmgiCiAKQEAgLTk0LDEwICs5NSwxMCBAQCBzdGF0aWMg aW50IHZwa19yZWFkX3BhY2tldChBVkZvcm1hdENvbnRleHQgKnMsIEFWUGFja2V0ICpwa3QpCiAg ICAgICAgIGlmIChyZXQgPCAwKQogICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICAgZm9y IChpID0gMDsgaSA8IHBhci0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzOyBpKyspIHsKLSAgICAgICAg ICAgIHJldCA9IGF2aW9fcmVhZChzLT5wYiwgcGt0LT5kYXRhICsgaSAqIHNpemUsIHNpemUpOwor ICAgICAgICAgICAgcmV0ID0gZmZpb19yZWFkX3NpemUocy0+cGIsIHBrdC0+ZGF0YSArIGkgKiBz aXplLCBzaXplKTsKICAgICAgICAgICAgIGF2aW9fc2tpcChzLT5wYiwgc2tpcCk7Ci0gICAgICAg ICAgICBpZiAocmV0ICE9IHNpemUpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihF SU8pOworICAgICAgICAgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4g cmV0OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHBrdC0+cG9zID0gcG9zOwpk aWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvd2F2YXJjLmMgYi9saWJhdmZvcm1hdC93YXZhcmMuYwpp bmRleCA5ZDcwMjlmMjA5Li42NDY3ZDdkNTc4IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC93YXZh cmMuYworKysgYi9saWJhdmZvcm1hdC93YXZhcmMuYwpAQCAtNzEsOCArNzEsOCBAQCBzdGF0aWMg aW50IHdhdmFyY19yZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCiAgICAgICAgIHJldHVy biBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgIGlkID0gYXZpb19ybDMyKHBiKTsKICAgICB3LT5k YXRhX2VuZCA9IGF2aW9fdGVsbChwYik7Ci0gICAgaWYgKGF2aW9fcmVhZChwYiwgZGF0YSwgc2l6 ZW9mKGRhdGEpKSAhPSBzaXplb2YoZGF0YSkpCi0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7 CisgICAgaWYgKChyZXQgPSBmZmlvX3JlYWRfc2l6ZShwYiwgZGF0YSwgc2l6ZW9mKGRhdGEpKSkg PCAwKQorICAgICAgICByZXR1cm4gcmV0OwogICAgIHctPmRhdGFfZW5kICs9IDE2TEwgKyBBVl9S TDMyKGRhdGEgKyA0KTsKICAgICBmbXRfbGVuID0gQVZfUkwzMihkYXRhICsgMzIpOwogICAgIGlm IChmbXRfbGVuIDwgMTIpCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC93YzNtb3ZpZS5jIGIvbGli YXZmb3JtYXQvd2MzbW92aWUuYwppbmRleCBmNDA2MzM1M2I2Li5iNGU3ZjFlMzFkIDEwMDY0NAot LS0gYS9saWJhdmZvcm1hdC93YzNtb3ZpZS5jCisrKyBiL2xpYmF2Zm9ybWF0L3djM21vdmllLmMK QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJsaWJhdnV0aWwvZGljdC5oIgogI2luY2x1ZGUg ImxpYmF2dXRpbC9tZW0uaCIKICNpbmNsdWRlICJhdmZvcm1hdC5oIgorI2luY2x1ZGUgImF2aW9f aW50ZXJuYWwuaCIKICNpbmNsdWRlICJkZW11eC5oIgogI2luY2x1ZGUgImludGVybmFsLmgiCiAK QEAgLTE0MSw5ICsxNDIsOSBAQCBzdGF0aWMgaW50IHdjM19yZWFkX2hlYWRlcihBVkZvcm1hdENv bnRleHQgKnMpCiAgICAgICAgICAgICBidWZmZXIgPSBhdl9tYWxsb2Moc2l6ZSsxKTsKICAgICAg ICAgICAgIGlmICghYnVmZmVyKQogICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01F TSk7Ci0gICAgICAgICAgICBpZiAoKHJldCA9IGF2aW9fcmVhZChwYiwgYnVmZmVyLCBzaXplKSkg IT0gc2l6ZSkgeworICAgICAgICAgICAgaWYgKChyZXQgPSBmZmlvX3JlYWRfc2l6ZShwYiwgYnVm ZmVyLCBzaXplKSkgPCAwKSB7CiAgICAgICAgICAgICAgICAgYXZfZnJlZXAoJmJ1ZmZlcik7Ci0g ICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgICAgICAgICByZXR1 cm4gcmV0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnVmZmVyW3NpemVdID0gMDsKICAg ICAgICAgICAgIGF2X2RpY3Rfc2V0KCZzLT5tZXRhZGF0YSwgInRpdGxlIiwgYnVmZmVyLApAQCAt MTcyLDcgKzE3Myw3IEBAIHN0YXRpYyBpbnQgd2MzX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4 dCAqcykKICAgICAgICAgLyogY2h1bmsgc2l6ZXMgYXJlIDE2LWJpdCBhbGlnbmVkICovCiAgICAg ICAgIHNpemUgPSAoYXZpb19yYjMyKHBiKSArIDEpICYgKH4xKTsKICAgICAgICAgaWYgKGF2aW9f ZmVvZihwYikpCi0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICAgICAg cmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAKICAgICB9IHdoaWxlIChmb3VyY2NfdGFnICE9 IEJSQ0hfVEFHKTsKIApAQCAtMjIzLDcgKzIyNCw3IEBAIHN0YXRpYyBpbnQgd2MzX3JlYWRfcGFj a2V0KEFWRm9ybWF0Q29udGV4dCAqcywKICAgICAgICAgLyogY2h1bmsgc2l6ZXMgYXJlIDE2LWJp dCBhbGlnbmVkICovCiAgICAgICAgIHNpemUgPSAoYXZpb19yYjMyKHBiKSArIDEpICYgKH4xKTsK ICAgICAgICAgaWYgKGF2aW9fZmVvZihwYikpCi0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUihF SU8pOworICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAKICAgICAgICAg c3dpdGNoIChmb3VyY2NfdGFnKSB7CiAKQEAgLTI1Miw5ICsyNTMsOSBAQCBzdGF0aWMgaW50IHdj M19yZWFkX3BhY2tldChBVkZvcm1hdENvbnRleHQgKnMsCiAKICAgICAgICAgY2FzZSBURVhUX1RB RzoKICAgICAgICAgICAgIC8qIHN1YnRpdGxlIGNodW5rICovCi0gICAgICAgICAgICBpZiAoKHVu c2lnbmVkKXNpemUgPiBzaXplb2YodGV4dCkgfHwgKHJldCA9IGF2aW9fcmVhZChwYiwgdGV4dCwg c2l6ZSkpICE9IHNpemUpCi0gICAgICAgICAgICAgICAgcmV0ID0gQVZFUlJPUihFSU8pOwotICAg ICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoKHVuc2lnbmVkKXNpemUgPiBzaXplb2Yo dGV4dCkpCisgICAgICAgICAgICAgICAgcmV0ID0gQVZFUlJPUl9JTlZBTElEREFUQTsKKyAgICAg ICAgICAgIGVsc2UgaWYgKChyZXQgPSBmZmlvX3JlYWRfc2l6ZShwYiwgdGV4dCwgc2l6ZSkpID09 IHNpemUpIHsKICAgICAgICAgICAgICAgICBpbnQgaSA9IDA7CiAgICAgICAgICAgICAgICAgYXZf bG9nIChzLCBBVl9MT0dfREVCVUcsICJTdWJ0aXRsZSB0aW1lIVxuIik7CiAgICAgICAgICAgICAg ICAgaWYgKGkgPj0gc2l6ZSB8fCBhdl9zdHJubGVuKCZ0ZXh0W2kgKyAxXSwgc2l6ZSAtIGkgLSAx KSA+PSBzaXplIC0gaSAtIDEpCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC93ZXN0d29vZF9hdWQu YyBiL2xpYmF2Zm9ybWF0L3dlc3R3b29kX2F1ZC5jCmluZGV4IGY4MzkxM2EyMmYuLjY4YjYwYmU1 YjEgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L3dlc3R3b29kX2F1ZC5jCisrKyBiL2xpYmF2Zm9y bWF0L3dlc3R3b29kX2F1ZC5jCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAibGliYXZ1dGls L2NoYW5uZWxfbGF5b3V0LmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL2ludHJlYWR3cml0ZS5oIgog I2luY2x1ZGUgImF2Zm9ybWF0LmgiCisjaW5jbHVkZSAiYXZpb19pbnRlcm5hbC5oIgogI2luY2x1 ZGUgImRlbXV4LmgiCiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKIApAQCAtODcsOSArODgsMTAgQEAg c3RhdGljIGludCB3c2F1ZF9yZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCiAgICAgQVZT dHJlYW0gKnN0OwogICAgIHVuc2lnbmVkIGNoYXIgaGVhZGVyW0FVRF9IRUFERVJfU0laRV07CiAg ICAgaW50IHNhbXBsZV9yYXRlLCBjaGFubmVscywgY29kZWM7CisgICAgaW50IHJldDsKIAotICAg IGlmIChhdmlvX3JlYWQocGIsIGhlYWRlciwgQVVEX0hFQURFUl9TSVpFKSAhPSBBVURfSEVBREVS X1NJWkUpCi0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgaWYgKChyZXQgPSBmZmlv X3JlYWRfc2l6ZShwYiwgaGVhZGVyLCBBVURfSEVBREVSX1NJWkUpKSA8IDApCisgICAgICAgIHJl dHVybiByZXQ7CiAKICAgICBzYW1wbGVfcmF0ZSA9IEFWX1JMMTYoJmhlYWRlclswXSk7CiAgICAg Y2hhbm5lbHMgICAgPSAoaGVhZGVyWzEwXSAmIDB4MSkgKyAxOwpAQCAtMTM0LDkgKzEzNiw4IEBA IHN0YXRpYyBpbnQgd3NhdWRfcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLAogICAgIGlu dCByZXQgPSAwOwogICAgIEFWU3RyZWFtICpzdCA9IHMtPnN0cmVhbXNbMF07CiAKLSAgICBpZiAo YXZpb19yZWFkKHBiLCBwcmVhbWJsZSwgQVVEX0NIVU5LX1BSRUFNQkxFX1NJWkUpICE9Ci0gICAg ICAgIEFVRF9DSFVOS19QUkVBTUJMRV9TSVpFKQotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8p OworICAgIGlmICgocmV0ID0gZmZpb19yZWFkX3NpemUocGIsIHByZWFtYmxlLCBBVURfQ0hVTktf UFJFQU1CTEVfU0laRSkpIDwgMCkKKyAgICAgICAgcmV0dXJuIHJldDsKIAogICAgIC8qIHZhbGlk YXRlIHRoZSBjaHVuayAqLwogICAgIGlmIChBVl9STDMyKCZwcmVhbWJsZVs0XSkgIT0gQVVEX0NI VU5LX1NJR05BVFVSRSkKQEAgLTE1Miw4ICsxNTMsOCBAQCBzdGF0aWMgaW50IHdzYXVkX3JlYWRf cGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywKICAgICAgICAgaW50IG91dF9zaXplID0gQVZfUkwx NigmcHJlYW1ibGVbMl0pOwogICAgICAgICBpZiAoKHJldCA9IGF2X25ld19wYWNrZXQocGt0LCBj aHVua19zaXplICsgNCkpIDwgMCkKICAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIGlm ICgocmV0ID0gYXZpb19yZWFkKHBiLCAmcGt0LT5kYXRhWzRdLCBjaHVua19zaXplKSkgIT0gY2h1 bmtfc2l6ZSkKLSAgICAgICAgICAgIHJldHVybiByZXQgPCAwID8gcmV0IDogQVZFUlJPUihFSU8p OworICAgICAgICBpZiAoKHJldCA9IGZmaW9fcmVhZF9zaXplKHBiLCAmcGt0LT5kYXRhWzRdLCBj aHVua19zaXplKSkgPCAwKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICAgQVZfV0wx NigmcGt0LT5kYXRhWzBdLCBvdXRfc2l6ZSk7CiAgICAgICAgIEFWX1dMMTYoJnBrdC0+ZGF0YVsy XSwgY2h1bmtfc2l6ZSk7CiAKQEAgLTE2MSw3ICsxNjIsNyBAQCBzdGF0aWMgaW50IHdzYXVkX3Jl YWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywKICAgICB9IGVsc2UgewogICAgICAgICByZXQg PSBhdl9nZXRfcGFja2V0KHBiLCBwa3QsIGNodW5rX3NpemUpOwogICAgICAgICBpZiAocmV0ICE9 IGNodW5rX3NpemUpCi0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICAg ICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAKICAgICAgICAgaWYgKHN0LT5jb2RlY3Bh ci0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzIDw9IDApIHsKICAgICAgICAgICAgIGF2X2xvZyhzLCBB Vl9MT0dfRVJST1IsICJpbnZhbGlkIG51bWJlciBvZiBjaGFubmVscyAlZFxuIiwKZGlmZiAtLWdp dCBhL2xpYmF2Zm9ybWF0L3dlc3R3b29kX3ZxYS5jIGIvbGliYXZmb3JtYXQvd2VzdHdvb2RfdnFh LmMKaW5kZXggOTc1NWZjYzljMS4uOGU1MTc5ZjY5NyAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQv d2VzdHdvb2RfdnFhLmMKKysrIGIvbGliYXZmb3JtYXQvd2VzdHdvb2RfdnFhLmMKQEAgLTEzOCw4 ICsxMzgsOCBAQCBzdGF0aWMgaW50IHdzdnFhX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAq cykKICAgICAvKiB0aGVyZSBhcmUgMCBvciBtb3JlIGNodW5rcyBiZWZvcmUgdGhlIEZJTkYgY2h1 bms7IGl0ZXJhdGUgdW50aWwKICAgICAgKiBGSU5GIGhhcyBiZWVuIHNraXBwZWQgYW5kIHRoZSBm aWxlIHdpbGwgYmUgcmVhZHkgdG8gYmUgZGVtdXhlZCAqLwogICAgIGRvIHsKLSAgICAgICAgaWYg KGF2aW9fcmVhZChwYiwgc2NyYXRjaCwgVlFBX1BSRUFNQkxFX1NJWkUpICE9IFZRQV9QUkVBTUJM RV9TSVpFKQotICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgaWYgKChy ZXQgPSBmZmlvX3JlYWRfc2l6ZShwYiwgc2NyYXRjaCwgVlFBX1BSRUFNQkxFX1NJWkUpKSA8IDAp CisgICAgICAgICAgICByZXR1cm4gcmV0OwogICAgICAgICBjaHVua190YWcgPSBBVl9SQjMyKCZz Y3JhdGNoWzBdKTsKICAgICAgICAgY2h1bmtfc2l6ZSA9IEFWX1JCMzIoJnNjcmF0Y2hbNF0pOwog CkBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGljIGludCB3c3ZxYV9yZWFkX3BhY2tldChBVkZvcm1h dENvbnRleHQgKnMsCiAKICAgICAgICAgICAgIHJldD0gYXZfZ2V0X3BhY2tldChwYiwgcGt0LCBj aHVua19zaXplKTsKICAgICAgICAgICAgIGlmIChyZXQ8MCkKLSAgICAgICAgICAgICAgICByZXR1 cm4gQVZFUlJPUihFSU8pOworICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSURE QVRBOwogCiAgICAgICAgICAgICBzd2l0Y2ggKGNodW5rX3R5cGUpIHsKICAgICAgICAgICAgIGNh c2UgU05EMF9UQUc6CkBAIC0yNzIsMjAgKzI3MiwyMCBAQCBzdGF0aWMgaW50IHdzdnFhX3JlYWRf cGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywKICAgICAgICAgICAgICAgICAvKiBpZiBhIG5ldyBj b2RlYm9vayBpcyBhdmFpbGFibGUgaW5zaWRlIGFuIGVhcmxpZXIgYSBWUUZMIGNodW5rIHRoZW4K ICAgICAgICAgICAgICAgICAgKiBhcHBlbmQgaXQgdG8gJ3BrdCcgKi8KICAgICAgICAgICAgICAg ICBpZiAod3N2cWEtPnZxZmxfY2h1bmtfc2l6ZSA+IDApIHsKLSAgICAgICAgICAgICAgICAgICAg aW50NjRfdCBjdXJyZW50X3BvcyA9IHBrdC0+cG9zOworICAgICAgICAgICAgICAgICAgICBpbnQ2 NF90IHJldDY0LCBjdXJyZW50X3BvcyA9IHBrdC0+cG9zOwogCi0gICAgICAgICAgICAgICAgICAg IGlmIChhdmlvX3NlZWsocGIsIHdzdnFhLT52cWZsX2NodW5rX3BvcywgU0VFS19TRVQpIDwgMCkK LSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgICAg ICAgICAgICAgIGlmICgocmV0NjQgPSBhdmlvX3NlZWsocGIsIHdzdnFhLT52cWZsX2NodW5rX3Bv cywgU0VFS19TRVQpKSA8IDApCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGludCly ZXQ2NDsKIAogICAgICAgICAgICAgICAgICAgICAvKiB0aGUgZGVjb2RlciBleHBlY3RzIGNodW5r cyB0byBiZSAxNi1iaXQgYWxpZ25lZCAqLwogICAgICAgICAgICAgICAgICAgICBpZiAod3N2cWEt PnZxZmxfY2h1bmtfc2l6ZSAlIDIgPT0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgIHdzdnFh LT52cWZsX2NodW5rX3NpemUrKzsKIAogICAgICAgICAgICAgICAgICAgICBpZiAoYXZfYXBwZW5k X3BhY2tldChwYiwgcGt0LCB3c3ZxYS0+dnFmbF9jaHVua19zaXplKSA8IDApCi0gICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAKLSAgICAgICAgICAgICAgICAgICAgaWYg KGF2aW9fc2VlayhwYiwgY3VycmVudF9wb3MsIFNFRUtfU0VUKSA8IDApCi0gICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICAgICAgICAgICAgICBpZiAo KHJldDY0ID0gYXZpb19zZWVrKHBiLCBjdXJyZW50X3BvcywgU0VFS19TRVQpKSA8IDApCisgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGludClyZXQ2NDsKIAogICAgICAgICAgICAgICAg ICAgICB3c3ZxYS0+dnFmbF9jaHVua19wb3MgPSAwOwogICAgICAgICAgICAgICAgICAgICB3c3Zx YS0+dnFmbF9jaHVua19zaXplID0gMDsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L3dzZGRlYy5j IGIvbGliYXZmb3JtYXQvd3NkZGVjLmMKaW5kZXggYjBiZjQ5Y2IwNC4uZjM2YzI1NDYyMSAxMDA2 NDQKLS0tIGEvbGliYXZmb3JtYXQvd3NkZGVjLmMKKysrIGIvbGliYXZmb3JtYXQvd3NkZGVjLmMK QEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJsaWJhdnV0aWwvbWVtLmgiCiAjaW5jbHVkZSAi bGliYXZ1dGlsL3RpbWVjb2RlLmgiCiAjaW5jbHVkZSAiYXZmb3JtYXQuaCIKKyNpbmNsdWRlICJh dmlvX2ludGVybmFsLmgiCiAjaW5jbHVkZSAiZGVtdXguaCIKICNpbmNsdWRlICJyYXdkZWMuaCIK IApAQCAtNzMsNiArNzQsNyBAQCBzdGF0aWMgaW50IHdzZF90b19hdl9jaGFubmVsX2xheW95dChB VkZvcm1hdENvbnRleHQgKnMsIGludCBiaXQpCiBzdGF0aWMgaW50IGdldF9tZXRhZGF0YShBVkZv cm1hdENvbnRleHQgKnMsIGNvbnN0IGNoYXIgKmNvbnN0IHRhZywgY29uc3QgdW5zaWduZWQgc2l6 ZSkKIHsKICAgICB1aW50OF90ICpidWY7CisgICAgaW50IHJldDsKICAgICBpZiAoIShzaXplICsg MSkpCiAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7CiAKQEAgLTgwLDkgKzgyLDkgQEAg c3RhdGljIGludCBnZXRfbWV0YWRhdGEoQVZGb3JtYXRDb250ZXh0ICpzLCBjb25zdCBjaGFyICpj b25zdCB0YWcsIGNvbnN0IHVuc2lnbmUKICAgICBpZiAoIWJ1ZikKICAgICAgICAgcmV0dXJuIEFW RVJST1IoRU5PTUVNKTsKIAotICAgIGlmIChhdmlvX3JlYWQocy0+cGIsIGJ1Ziwgc2l6ZSkgIT0g c2l6ZSkgeworICAgIGlmICgocmV0ID0gYXZpb19yZWFkKHMtPnBiLCBidWYsIHNpemUpKSA8IDAp IHsKICAgICAgICAgYXZfZnJlZShidWYpOwotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOwor ICAgICAgICByZXR1cm4gcmV0OwogICAgIH0KIAogICAgIGlmIChlbXB0eV9zdHJpbmcoYnVmLCBz aXplKSkgewpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvd3R2ZGVjLmMgYi9saWJhdmZvcm1hdC93 dHZkZWMuYwppbmRleCA5ZDI2ZTM1ZTIyLi4xZjI5OTUxMGM5IDEwMDY0NAotLS0gYS9saWJhdmZv cm1hdC93dHZkZWMuYworKysgYi9saWJhdmZvcm1hdC93dHZkZWMuYwpAQCAtNzYxLDcgKzc2MSw3 IEBAIHN0YXRpYyBpbnQgcmVjb3ZlcihXdHZDb250ZXh0ICp3dHYsIHVpbnQ2NF90IGJyb2tlbl9w b3MpCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgIH0KICAgICAgfQotICAgICByZXR1 cm4gQVZFUlJPUihFSU8pOworICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKIH0KIAog LyoqCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC93dmRlYy5jIGIvbGliYXZmb3JtYXQvd3ZkZWMu YwppbmRleCBlMmE3OTk1N2Y3Li5lNjlmNDJiYWY1IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC93 dmRlYy5jCisrKyBiL2xpYmF2Zm9ybWF0L3d2ZGVjLmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNs dWRlICJsaWJhdnV0aWwvaW50cmVhZHdyaXRlLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL2RpY3Qu aCIKICNpbmNsdWRlICJhdmZvcm1hdC5oIgorI2luY2x1ZGUgImF2aW9faW50ZXJuYWwuaCIKICNp bmNsdWRlICJkZW11eC5oIgogI2luY2x1ZGUgImludGVybmFsLmgiCiAjaW5jbHVkZSAiYXBldGFn LmgiCkBAIC0yOTUsOSArMjk2LDkgQEAgc3RhdGljIGludCB3dl9yZWFkX3BhY2tldChBVkZvcm1h dENvbnRleHQgKnMsIEFWUGFja2V0ICpwa3QpCiAgICAgaWYgKChyZXQgPSBhdl9uZXdfcGFja2V0 KHBrdCwgd2MtPmhlYWRlci5ibG9ja3NpemUgKyBXVl9IRUFERVJfU0laRSkpIDwgMCkKICAgICAg ICAgcmV0dXJuIHJldDsKICAgICBtZW1jcHkocGt0LT5kYXRhLCB3Yy0+YmxvY2tfaGVhZGVyLCBX Vl9IRUFERVJfU0laRSk7Ci0gICAgcmV0ID0gYXZpb19yZWFkKHMtPnBiLCBwa3QtPmRhdGEgKyBX Vl9IRUFERVJfU0laRSwgd2MtPmhlYWRlci5ibG9ja3NpemUpOwotICAgIGlmIChyZXQgIT0gd2Mt PmhlYWRlci5ibG9ja3NpemUpIHsKLSAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICBy ZXQgPSBmZmlvX3JlYWRfc2l6ZShzLT5wYiwgcGt0LT5kYXRhICsgV1ZfSEVBREVSX1NJWkUsIHdj LT5oZWFkZXIuYmxvY2tzaXplKTsKKyAgICBpZiAocmV0IDwgMCkgeworICAgICAgICByZXR1cm4g cmV0OwogICAgIH0KICAgICB3aGlsZSAoISh3Yy0+aGVhZGVyLmZsYWdzICYgV1ZfRkxBR19GSU5B TF9CTE9DSykpIHsKICAgICAgICAgaWYgKChyZXQgPSB3dl9yZWFkX2Jsb2NrX2hlYWRlcihzLCBz LT5wYikpIDwgMCkgewpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQveG12LmMgYi9saWJhdmZvcm1h dC94bXYuYwppbmRleCBlZDU5ZjdiODViLi5jMGI0MDI4NjBlIDEwMDY0NAotLS0gYS9saWJhdmZv cm1hdC94bXYuYworKysgYi9saWJhdmZvcm1hdC94bXYuYwpAQCAtMzEsNiArMzEsNyBAQAogI2lu Y2x1ZGUgImxpYmF2dXRpbC9tZW0uaCIKIAogI2luY2x1ZGUgImF2Zm9ybWF0LmgiCisjaW5jbHVk ZSAiYXZpb19pbnRlcm5hbC5oIgogI2luY2x1ZGUgImRlbXV4LmgiCiAjaW5jbHVkZSAiaW50ZXJu YWwuaCIKICNpbmNsdWRlICJyaWZmLmgiCkBAIC0yNzMsOCArMjc0LDggQEAgc3RhdGljIGludCB4 bXZfcHJvY2Vzc19wYWNrZXRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKIAogICAgIC8qIFBh Y2tldCB2aWRlbyBoZWFkZXIgKi8KIAotICAgIGlmIChhdmlvX3JlYWQocGIsIGRhdGEsIDgpICE9 IDgpCi0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgaWYgKChyZXQgPSBmZmlvX3Jl YWRfc2l6ZShwYiwgZGF0YSwgOCkpIDwgMCkKKyAgICAgICAgcmV0dXJuIHJldDsKIAogICAgIHht di0+dmlkZW8uZGF0YV9zaXplICAgICA9IEFWX1JMMzIoZGF0YSkgJiAweDAwN0ZGRkZGOwogCkBA IC0zMjUsOCArMzI2LDggQEAgc3RhdGljIGludCB4bXZfcHJvY2Vzc19wYWNrZXRfaGVhZGVyKEFW Rm9ybWF0Q29udGV4dCAqcykKICAgICBmb3IgKGF1ZGlvX3RyYWNrID0gMDsgYXVkaW9fdHJhY2sg PCB4bXYtPmF1ZGlvX3RyYWNrX2NvdW50OyBhdWRpb190cmFjaysrKSB7CiAgICAgICAgIFhNVkF1 ZGlvUGFja2V0ICpwYWNrZXQgPSAmeG12LT5hdWRpb1thdWRpb190cmFja107CiAKLSAgICAgICAg aWYgKGF2aW9fcmVhZChwYiwgZGF0YSwgNCkgIT0gNCkKLSAgICAgICAgICAgIHJldHVybiBBVkVS Uk9SKEVJTyk7CisgICAgICAgIGlmICgocmV0ID0gZmZpb19yZWFkX3NpemUocGIsIGRhdGEsIDQp KSA8IDApCisgICAgICAgICAgICByZXR1cm4gcmV0OwogCiAgICAgICAgIGlmICghcGFja2V0LT5j cmVhdGVkKSB7CiAgICAgICAgICAgICBBVlN0cmVhbSAqYXN0ID0gYXZmb3JtYXRfbmV3X3N0cmVh bShzLCBOVUxMKTsKQEAgLTQxNywxMiArNDE4LDEyIEBAIHN0YXRpYyBpbnQgeG12X2ZldGNoX25l d19wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgIC8qIFNlZWsgdG8gaXQgKi8KICAgICB4 bXYtPnRoaXNfcGFja2V0X29mZnNldCA9IHhtdi0+bmV4dF9wYWNrZXRfb2Zmc2V0OwogICAgIGlm IChhdmlvX3NlZWsocGIsIHhtdi0+dGhpc19wYWNrZXRfb2Zmc2V0LCBTRUVLX1NFVCkgIT0geG12 LT50aGlzX3BhY2tldF9vZmZzZXQpCi0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAg ICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogCiAgICAgLyogVXBkYXRlIHRoZSBzaXpl ICovCiAgICAgeG12LT50aGlzX3BhY2tldF9zaXplID0geG12LT5uZXh0X3BhY2tldF9zaXplOwog ICAgIGlmICh4bXYtPnRoaXNfcGFja2V0X3NpemUgPCAoMTIgKyB4bXYtPmF1ZGlvX3RyYWNrX2Nv dW50ICogNCkpCi0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAgICAgIHJldHVybiBB VkVSUk9SX0lOVkFMSUREQVRBOwogCiAgICAgLyogUHJvY2VzcyB0aGUgaGVhZGVyICovCiAgICAg cmVzdWx0ID0geG12X3Byb2Nlc3NfcGFja2V0X2hlYWRlcihzKTsKQEAgLTQ0OCw3ICs0NDksNyBA QCBzdGF0aWMgaW50IHhtdl9mZXRjaF9hdWRpb19wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLAog CiAgICAgLyogU2VlayB0byBpdCAqLwogICAgIGlmIChhdmlvX3NlZWsocGIsIGF1ZGlvLT5kYXRh X29mZnNldCwgU0VFS19TRVQpICE9IGF1ZGlvLT5kYXRhX29mZnNldCkKLSAgICAgICAgcmV0dXJu IEFWRVJST1IoRUlPKTsKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAKICAg ICBpZiAoKHhtdi0+dmlkZW8uY3VycmVudF9mcmFtZSArIDEpIDwgeG12LT52aWRlby5mcmFtZV9j b3VudCkKICAgICAgICAgLyogTm90IHRoZSBsYXN0IGZyYW1lLCBnZXQgYXQgbW9zdCBmcmFtZV9z aXplIGJ5dGVzLiAqLwpAQCAtNDk1LDcgKzQ5Niw3IEBAIHN0YXRpYyBpbnQgeG12X2ZldGNoX3Zp ZGVvX3BhY2tldChBVkZvcm1hdENvbnRleHQgKnMsCiAKICAgICAvKiBTZWVrIHRvIGl0ICovCiAg ICAgaWYgKGF2aW9fc2VlayhwYiwgdmlkZW8tPmRhdGFfb2Zmc2V0LCBTRUVLX1NFVCkgIT0gdmlk ZW8tPmRhdGFfb2Zmc2V0KQotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOworICAgICAgICBy ZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKIAogICAgIC8qIFJlYWQgdGhlIGZyYW1lIGhlYWRl ciAqLwogICAgIGZyYW1lX2hlYWRlciA9IGF2aW9fcmwzMihwYik7CkBAIC01MDQsNyArNTA1LDcg QEAgc3RhdGljIGludCB4bXZfZmV0Y2hfdmlkZW9fcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywK ICAgICBmcmFtZV90aW1lc3RhbXAgPSAoZnJhbWVfaGVhZGVyID4+IDE3KTsKIAogICAgIGlmICgo ZnJhbWVfc2l6ZSArIDQpID4gdmlkZW8tPmRhdGFfc2l6ZSkKLSAgICAgICAgcmV0dXJuIEFWRVJS T1IoRUlPKTsKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAKICAgICAvKiBH ZXQgdGhlIHBhY2tldCBkYXRhICovCiAgICAgcmVzdWx0ID0gYXZfZ2V0X3BhY2tldChwYiwgcGt0 LCBmcmFtZV9zaXplKTsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L3l1djRtcGVnZGVjLmMgYi9s aWJhdmZvcm1hdC95dXY0bXBlZ2RlYy5jCmluZGV4IDJiNjZhMWU1OTYuLjVjMjE4NTg5MDggMTAw NjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L3l1djRtcGVnZGVjLmMKKysrIGIvbGliYXZmb3JtYXQveXV2 NG1wZWdkZWMuYwpAQCAtMjkxLDcgKzI5MSw3IEBAIHN0YXRpYyBpbnQgeXV2NF9yZWFkX3BhY2tl dChBVkZvcm1hdENvbnRleHQgKnMsIEFWUGFja2V0ICpwa3QpCiAgICAgaWYgKHJldCA8IDApCiAg ICAgICAgIHJldHVybiByZXQ7CiAgICAgZWxzZSBpZiAocmV0ICE9IHMtPnBhY2tldF9zaXplIC0g WTRNX0ZSQU1FX01BR0lDX0xFTikgewotICAgICAgICByZXR1cm4gcy0+cGItPmVvZl9yZWFjaGVk ID8gQVZFUlJPUl9FT0YgOiBBVkVSUk9SKEVJTyk7CisgICAgICAgIHJldHVybiBzLT5wYi0+ZW9m X3JlYWNoZWQgPyBBVkVSUk9SX0VPRiA6IEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgfQogICAg IHBrdC0+c3RyZWFtX2luZGV4ID0gMDsKICAgICBwa3QtPnB0cyA9IChvZmYgLSBmZmZvcm1hdGNv bnRleHQocyktPmRhdGFfb2Zmc2V0KSAvIHMtPnBhY2tldF9zaXplOwpkaWZmIC0tZ2l0IGEvbGli YXZmb3JtYXQveXV2NG1wZWdlbmMuYyBiL2xpYmF2Zm9ybWF0L3l1djRtcGVnZW5jLmMKaW5kZXgg MzUzOTdjYmRlMC4uMzcxZDM3NDVjMSAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQveXV2NG1wZWdl bmMuYworKysgYi9saWJhdmZvcm1hdC95dXY0bXBlZ2VuYy5jCkBAIC0yODIsNyArMjgyLDcgQEAg c3RhdGljIGludCB5dXY0X2luaXQoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgICAgICAgICAgICAg ImdyYXk5LCBncmF5MTAsIGdyYXkxMiAiCiAgICAgICAgICAgICAgICAiYW5kIGdyYXkxNiBwaXhl bCBmb3JtYXRzLiAiCiAgICAgICAgICAgICAgICAiVXNlIC1waXhfZm10IHRvIHNlbGVjdCBvbmUu XG4iKTsKLSAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlPKTsKKyAgICAgICAgcmV0dXJuIEFWRVJS T1JfSU5WQUxJRERBVEE7CiAgICAgfQogCiAgICAgcmV0dXJuIDA7Ci0tIAoyLjUyLjAKCgpGcm9t IDVjMzNiMjQ5ODc3YzJjZGM3MmUwZjUwNDc2YTMyMWU2OGRlODljMGUgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91 dGxvb2suY29tPgpEYXRlOiBGcmksIDIxIE5vdiAyMDI1IDEzOjU4OjIyICswMTAwClN1YmplY3Q6 IFtQQVRDSCAwNTMvMzA0XSBhdntjb2RlYyx1dGlsfS90ZXN0czogUmVtb3ZlIHBvaW50bGVzcyB1 bmRlZnMKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0 PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCkJlZm9yZSBjb21taXQgZTk2 ZDkwZWVkNjZhMTk4NTY2YzQwOTk1ODQzMmQyODJlMWIwMzg2OSBsYXZ1L2ludGVybmFsLmgKY29u dGFpbmVkIHJlZGVmaW5lZCB2YXJpb3VzIGRpc2NvdXJhZ2VkL2ZvcmJpZGRlbiBmdW5jdGlvbnMg dG8gaW5kdWNlCmNvbXBpbGF0aW9uIGZhaWx1cmVzIHVwb24gdXNlLCBsaWtlIGUuZy4KICNkZWZp bmUgbWFsbG9jIHBsZWFzZV91c2VfYXZfbWFsbG9jCkluIG9yZGVyIHRvIHVzZSB0aGVzZSBmdW5j dGlvbnMsIHNvbWUgZmlsZXMgaGFkIHRvIHVuZGVmaW5lIHRoZXNlCm1hY3Jvcy4gVGhpcyBjb21t aXQgcmVtb3ZlcyB0aGUgcmVtYWluaW5nIHBvaW50bGVzcyB1bmRlZnMuCgpSZXZpZXdlZC1ieTog UsOpbWkgRGVuaXMtQ291cm1vbnQgPHJlbWlAcmVtbGFiLm5ldD4KU2lnbmVkLW9mZi1ieTogQW5k cmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGli YXZjb2RlYy9qYWNvc3ViZGVjLmMgICAgICAgICAgfCAyIC0tCiBsaWJhdmNvZGVjL3Rlc3RzL21v dGlvbi5jICAgICAgICB8IDIgLS0KIGxpYmF2Y29kZWMvdGVzdHMvc25vd2VuYy5jICAgICAgIHwg NCAtLS0tCiBsaWJhdmZpbHRlci90ZXN0cy9mb3JtYXRzLmMgICAgICB8IDIgLS0KIGxpYmF2Zm9y bWF0L3NiZ2RlYy5jICAgICAgICAgICAgIHwgMSAtCiBsaWJhdnV0aWwvZmlsZV9vcGVuLmMgICAg ICAgICAgICB8IDEgLQogbGliYXZ1dGlsL3Rlc3RzL2JwcmludC5jICAgICAgICAgfCAyIC0tCiBs aWJhdnV0aWwvdGVzdHMvZXJyb3IuYyAgICAgICAgICB8IDIgLS0KIGxpYmF2dXRpbC90ZXN0cy9m aWxlLmMgICAgICAgICAgIHwgMiAtLQogbGliYXZ1dGlsL3Rlc3RzL2ltZ3V0aWxzLmMgICAgICAg fCAxIC0KIGxpYmF2dXRpbC90ZXN0cy9wY2EuYyAgICAgICAgICAgIHwgMSAtCiBsaWJhdnV0aWwv dGVzdHMvcmFuZG9tX3NlZWQuYyAgICB8IDEgLQogbGlic3dyZXNhbXBsZS90ZXN0cy9zd3Jlc2Ft cGxlLmMgfCAyIC0tCiB0b29scy9mb3VyY2MycGl4Zm10LmMgICAgICAgICAgICB8IDMgLS0tCiAx NCBmaWxlcyBjaGFuZ2VkLCAyNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVj L2phY29zdWJkZWMuYyBiL2xpYmF2Y29kZWMvamFjb3N1YmRlYy5jCmluZGV4IDA4MzQ5YTllYzgu LmZkOTBkY2M0YjYgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvamFjb3N1YmRlYy5jCisrKyBiL2xp YmF2Y29kZWMvamFjb3N1YmRlYy5jCkBAIC0zMiw4ICszMiw2IEBACiAjaW5jbHVkZSAibGliYXZ1 dGlsL2JwcmludC5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC90aW1lX2ludGVybmFsLmgiCiAKLSN1 bmRlZiB0aW1lCi0KIHN0YXRpYyBpbnQgaW5zZXJ0X3RleHQoQVZCUHJpbnQgKmRzdCwgY29uc3Qg Y2hhciAqaW4sIGNvbnN0IGNoYXIgKmFyZykKIHsKICAgICBhdl9icHJpbnRmKGRzdCwgIiVzIiwg YXJnKTsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdGVzdHMvbW90aW9uLmMgYi9saWJhdmNvZGVj L3Rlc3RzL21vdGlvbi5jCmluZGV4IDcxOWZiYTUzN2QuLmFkMmQ2NWVjNzggMTAwNjQ0Ci0tLSBh L2xpYmF2Y29kZWMvdGVzdHMvbW90aW9uLmMKKysrIGIvbGliYXZjb2RlYy90ZXN0cy9tb3Rpb24u YwpAQCAtMzYsOCArMzYsNiBAQAogI2luY2x1ZGUgImxpYmF2dXRpbC9tZW0uaCIKICNpbmNsdWRl ICJsaWJhdnV0aWwvdGltZS5oIgogCi0jdW5kZWYgcHJpbnRmCi0KICNkZWZpbmUgV0lEVEggNjQK ICNkZWZpbmUgSEVJR0hUIDY0CiAKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdGVzdHMvc25vd2Vu Yy5jIGIvbGliYXZjb2RlYy90ZXN0cy9zbm93ZW5jLmMKaW5kZXggMzExMzc0ZTVkNC4uMzVmZWVk YmEwNiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy90ZXN0cy9zbm93ZW5jLmMKKysrIGIvbGliYXZj b2RlYy90ZXN0cy9zbm93ZW5jLmMKQEAgLTIwLDEwICsyMCw2IEBACiAKICNpbmNsdWRlICJsaWJh dmNvZGVjL3Nub3dlbmMuYyIKIAotI3VuZGVmIG1hbGxvYwotI3VuZGVmIGZyZWUKLSN1bmRlZiBw cmludGYKLQogI2luY2x1ZGUgImxpYmF2dXRpbC9sZmcuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwv bWF0aGVtYXRpY3MuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvbWVtLmgiCmRpZmYgLS1naXQgYS9s aWJhdmZpbHRlci90ZXN0cy9mb3JtYXRzLmMgYi9saWJhdmZpbHRlci90ZXN0cy9mb3JtYXRzLmMK aW5kZXggNWNjM2NhMzM3MS4uM2ZkYWQ3NDI3ZSAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvdGVz dHMvZm9ybWF0cy5jCisrKyBiL2xpYmF2ZmlsdGVyL3Rlc3RzL2Zvcm1hdHMuYwpAQCAtMjIsOCAr MjIsNiBAQAogI2luY2x1ZGUgImxpYmF2ZmlsdGVyL2F1ZGlvLmgiCiAjaW5jbHVkZSAibGliYXZm aWx0ZXIvZm9ybWF0cy5jIgogCi0jdW5kZWYgcHJpbnRmCi0KIGNvbnN0IGludDY0X3QgYXZmaWx0 ZXJfYWxsX2NoYW5uZWxfbGF5b3V0c1tdID0gewogICAgIEFWX0NIX0ZST05UX0NFTlRFUiwKICAg ICBBVl9DSF9GUk9OVF9DRU5URVJ8QVZfQ0hfTE9XX0ZSRVFVRU5DWSwKZGlmZiAtLWdpdCBhL2xp YmF2Zm9ybWF0L3NiZ2RlYy5jIGIvbGliYXZmb3JtYXQvc2JnZGVjLmMKaW5kZXggNGFmYjUxYjg0 NC4uMGUzZDg2MGQ5ZiAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvc2JnZGVjLmMKKysrIGIvbGli YXZmb3JtYXQvc2JnZGVjLmMKQEAgLTkwNSw3ICs5MDUsNiBAQCBzdGF0aWMgaW50IGV4cGFuZF90 aW1lc3RhbXBzKHZvaWQgKmxvZywgc3RydWN0IHNiZ19zY3JpcHQgKnMpCiAgICAgICAgIGF2X2xv Zyhsb2csIEFWX0xPR19XQVJOSU5HLAogICAgICAgICAgICAgICAgIlNjcmlwdHMgd2l0aCBtaXhl ZCBhYnNvbHV0ZSBhbmQgcmVsYXRpdmUgdGltZXN0YW1wcyBjYW4gZ2l2ZSAiCiAgICAgICAgICAg ICAgICAidW5leHBlY3RlZCByZXN1bHRzIChwYXVzZSwgc2Vla2luZywgdGltZSB6b25lIGNoYW5n ZSkuXG4iKTsKLSN1bmRlZiB0aW1lCiAgICAgICAgIHRpbWUoJm5vdzApOwogICAgICAgICB0bSA9 IGxvY2FsdGltZV9yKCZub3cwLCAmdG1wYnVmKTsKICAgICAgICAgbm93ID0gdG0gPyB0bS0+dG1f aG91ciAqIDM2MDAgKyB0bS0+dG1fbWluICogNjAgKyB0bS0+dG1fc2VjIDoKZGlmZiAtLWdpdCBh L2xpYmF2dXRpbC9maWxlX29wZW4uYyBiL2xpYmF2dXRpbC9maWxlX29wZW4uYwppbmRleCA0Njky MDM1ZDU1Li4xMjFhNTYyZmNiIDEwMDY0NAotLS0gYS9saWJhdnV0aWwvZmlsZV9vcGVuLmMKKysr IGIvbGliYXZ1dGlsL2ZpbGVfb3Blbi5jCkBAIC0xMjAsNyArMTIwLDYgQEAgaW50IGF2cHJpdl90 ZW1wZmlsZShjb25zdCBjaGFyICpwcmVmaXgsIGNoYXIgKipmaWxlbmFtZSwgaW50IGxvZ19vZmZz ZXQsIHZvaWQgKmwKICAgICBpZighcHRyKQogICAgICAgICBwdHI9IHRlbXBuYW0oIi4iLCBwcmVm aXgpOwogICAgICpmaWxlbmFtZSA9IGF2X3N0cmR1cChwdHIpOwotI3VuZGVmIGZyZWUKICAgICBm cmVlKHB0cik7CiAjZWxzZQogICAgIHJldHVybiBBVkVSUk9SKEVOT1NZUyk7CmRpZmYgLS1naXQg YS9saWJhdnV0aWwvdGVzdHMvYnByaW50LmMgYi9saWJhdnV0aWwvdGVzdHMvYnByaW50LmMKaW5k ZXggZDdmOWFiZjIzZS4uOWE4NzI4MzMwMiAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL3Rlc3RzL2Jw cmludC5jCisrKyBiL2xpYmF2dXRpbC90ZXN0cy9icHJpbnQuYwpAQCAtMjEsOCArMjEsNiBAQAog I2luY2x1ZGUgImxpYmF2dXRpbC9hdmFzc2VydC5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9icHJp bnQuYyIKIAotI3VuZGVmIHByaW50ZgotCiBzdGF0aWMgdm9pZCBicHJpbnRfcGFzY2FsKEFWQlBy aW50ICpiLCB1bnNpZ25lZCBzaXplKQogewogICAgIHVuc2lnbmVkIGksIGo7CmRpZmYgLS1naXQg YS9saWJhdnV0aWwvdGVzdHMvZXJyb3IuYyBiL2xpYmF2dXRpbC90ZXN0cy9lcnJvci5jCmluZGV4 IDE2ZWZjOGFjNDUuLmI3YjI1M2I3YjUgMTAwNjQ0Ci0tLSBhL2xpYmF2dXRpbC90ZXN0cy9lcnJv ci5jCisrKyBiL2xpYmF2dXRpbC90ZXN0cy9lcnJvci5jCkBAIC0xOCw4ICsxOCw2IEBACiAKICNp bmNsdWRlICJsaWJhdnV0aWwvZXJyb3IuYyIKIAotI3VuZGVmIHByaW50ZgotCiBpbnQgbWFpbih2 b2lkKQogewogICAgIGludCBpOwpkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL3Rlc3RzL2ZpbGUuYyBi L2xpYmF2dXRpbC90ZXN0cy9maWxlLmMKaW5kZXggMzYwOGJjY2NiZS4uMGIxNTFkZTlhMSAxMDA2 NDQKLS0tIGEvbGliYXZ1dGlsL3Rlc3RzL2ZpbGUuYworKysgYi9saWJhdnV0aWwvdGVzdHMvZmls ZS5jCkBAIC0xOCw4ICsxOCw2IEBACiAKICNpbmNsdWRlICJsaWJhdnV0aWwvZmlsZS5jIgogCi0j dW5kZWYgcHJpbnRmCi0KIGludCBtYWluKHZvaWQpCiB7CiAgICAgdWludDhfdCAqYnVmOwpkaWZm IC0tZ2l0IGEvbGliYXZ1dGlsL3Rlc3RzL2ltZ3V0aWxzLmMgYi9saWJhdnV0aWwvdGVzdHMvaW1n dXRpbHMuYwppbmRleCA2YTUwOTdiYzM1Li5jZDM2MzE0NWFkIDEwMDY0NAotLS0gYS9saWJhdnV0 aWwvdGVzdHMvaW1ndXRpbHMuYworKysgYi9saWJhdnV0aWwvdGVzdHMvaW1ndXRpbHMuYwpAQCAt MjAsNyArMjAsNiBAQAogI2luY2x1ZGUgImxpYmF2dXRpbC9jcmMuaCIKICNpbmNsdWRlICJsaWJh dnV0aWwvbWVtLmgiCiAKLSN1bmRlZiBwcmludGYKIHN0YXRpYyBpbnQgY2hlY2tfaW1hZ2VfZmls bChlbnVtIEFWUGl4ZWxGb3JtYXQgcGl4X2ZtdCwgaW50IHcsIGludCBoKSB7CiAgICAgdWludDhf dCAqZGF0YVs0XTsKICAgICBzaXplX3Qgc2l6ZXNbNF07CmRpZmYgLS1naXQgYS9saWJhdnV0aWwv dGVzdHMvcGNhLmMgYi9saWJhdnV0aWwvdGVzdHMvcGNhLmMKaW5kZXggYjJhZmJlYTNiNS4uYTJh NjIwNzk5YSAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL3Rlc3RzL3BjYS5jCisrKyBiL2xpYmF2dXRp bC90ZXN0cy9wY2EuYwpAQCAtMjIsNyArMjIsNiBAQAogI2luY2x1ZGUgImxpYmF2dXRpbC9wY2Eu YyIKICNpbmNsdWRlICJsaWJhdnV0aWwvbGZnLmgiCiAKLSN1bmRlZiBwcmludGYKICNpbmNsdWRl IDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogCmRpZmYgLS1naXQgYS9saWJhdnV0aWwv dGVzdHMvcmFuZG9tX3NlZWQuYyBiL2xpYmF2dXRpbC90ZXN0cy9yYW5kb21fc2VlZC5jCmluZGV4 IGJmMGM2Yzc5ODYuLjYxNGM5NThkNDIgMTAwNjQ0Ci0tLSBhL2xpYmF2dXRpbC90ZXN0cy9yYW5k b21fc2VlZC5jCisrKyBiL2xpYmF2dXRpbC90ZXN0cy9yYW5kb21fc2VlZC5jCkBAIC0yMSw3ICsy MSw2IEBACiAjZGVmaW5lIFRFU1QgMQogI2luY2x1ZGUgImxpYmF2dXRpbC9yYW5kb21fc2VlZC5j IgogCi0jdW5kZWYgcHJpbnRmCiAjZGVmaW5lIE4gMjU2CiAjZGVmaW5lIEYgMgogI2luY2x1ZGUg PHN0ZGlvLmg+CmRpZmYgLS1naXQgYS9saWJzd3Jlc2FtcGxlL3Rlc3RzL3N3cmVzYW1wbGUuYyBi L2xpYnN3cmVzYW1wbGUvdGVzdHMvc3dyZXNhbXBsZS5jCmluZGV4IGI2MjdhYTRhZDAuLjJhNWY5 ZDU5YzQgMTAwNjQ0Ci0tLSBhL2xpYnN3cmVzYW1wbGUvdGVzdHMvc3dyZXNhbXBsZS5jCisrKyBi L2xpYnN3cmVzYW1wbGUvdGVzdHMvc3dyZXNhbXBsZS5jCkBAIC0yNiw5ICsyNiw3IEBACiAKICNp bmNsdWRlICJsaWJzd3Jlc2FtcGxlL3N3cmVzYW1wbGUuaCIKIAotI3VuZGVmIHRpbWUKICNpbmNs dWRlIDx0aW1lLmg+Ci0jdW5kZWYgZnByaW50ZgogCiAjZGVmaW5lIFNBTVBMRVMgMTAwMAogCmRp ZmYgLS1naXQgYS90b29scy9mb3VyY2MycGl4Zm10LmMgYi90b29scy9mb3VyY2MycGl4Zm10LmMK aW5kZXggNTE5Y2MxY2FkMC4uMGIxMDdkYjJmZiAxMDA2NDQKLS0tIGEvdG9vbHMvZm91cmNjMnBp eGZtdC5jCisrKyBiL3Rvb2xzL2ZvdXJjYzJwaXhmbXQuYwpAQCAtMjksOSArMjksNiBAQAogI2lu Y2x1ZGUgImxpYmF2Y29kZWMvcmF3LmgiCiAjaW5jbHVkZSAibGliYXZjb2RlYy9yYXdfcGl4X2Zt dF90YWdzLmgiCiAKLSN1bmRlZiBwcmludGYKLSN1bmRlZiBmcHJpbnRmCi0KICNpZiAhSEFWRV9H RVRPUFQKICNpbmNsdWRlICJjb21wYXQvZ2V0b3B0LmMiCiAjZW5kaWYKLS0gCjIuNTIuMAoKCkZy b20gM2FhOWI1MjU4YThhOTYyZTkxMzQxMDBhYzUxZjUwYmIyYTJjMWZmYiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRA b3V0bG9vay5jb20+CkRhdGU6IEZyaSwgMjEgTm92IDIwMjUgMTQ6MTg6MDUgKzAxMDAKU3ViamVj dDogW1BBVENIIDA1NC8zMDRdIGF2Y29kZWMvajJrZW5jOiBSZW1vdmUgZGVhZCwgZGlzYWJsZWQg ZGVidWcgY29kZQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNo YXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKU2VlbXMgdG8gaGF2 ZSBuZXZlciB3b3JrZWQsIGV2ZW4gd2hlbiB0aGlzIHdhcyBhZGRlZCBpbgo4MzY1NGM3YjFiNTk4 YWRkOTA0MWM3YWRkNmI3NzQ3OGViOTExNzdmLgoKUmV2aWV3ZWQtYnk6IFLDqW1pIERlbmlzLUNv dXJtb250IDxyZW1pQHJlbWxhYi5uZXQ+ClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJk dCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIGxpYmF2Y29kZWMvajJrZW5j LmMgfCA3MCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA3MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2oy a2VuYy5jIGIvbGliYXZjb2RlYy9qMmtlbmMuYwppbmRleCA3YmVjNWJiZTM2Li5jYmE0ZDE4YWRm IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2oya2VuYy5jCisrKyBiL2xpYmF2Y29kZWMvajJrZW5j LmMKQEAgLTE0OCw3NiArMTQ4LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgewogfSBKcGVnMjAwMEVuY29k ZXJDb250ZXh0OwogCiAKLS8qIGRlYnVnICovCi0jaWYgMAotI3VuZGVmIGlmcHJpbnRmCi0jdW5k ZWYgcHJpbnRmCi0KLXN0YXRpYyB2b2lkIG5zcGFjZXMoRklMRSAqZmQsIGludCBuKQotewotICAg IHdoaWxlKG4tLSkgcHV0YygnICcsIGZkKTsKLX0KLQotc3RhdGljIHZvaWQgcHJpbnRjb21wKEpw ZWcyMDAwQ29tcG9uZW50ICpjb21wKQotewotICAgIGludCBpOwotICAgIGZvciAoaSA9IDA7IGkg PCBjb21wLT55MSAtIGNvbXAtPnkwOyBpKyspCi0gICAgICAgIGZmX2pwZWcyMDAwX3ByaW50dihj b21wLT5pX2RhdGEgKyBpICogKGNvbXAtPngxIC0gY29tcC0+eDApLCBjb21wLT54MSAtIGNvbXAt PngwKTsKLX0KLQotc3RhdGljIHZvaWQgZHVtcChKcGVnMjAwMEVuY29kZXJDb250ZXh0ICpzLCBG SUxFICpmZCkKLXsKLSAgICBpbnQgdGlsZW5vLCBjb21wbm8sIHJlc2xldmVsbm8sIGJhbmRubywg cHJlY25vOwotICAgIGZwcmludGYoZmQsICJYU2l6ID0gJWQsIFlTaXogPSAlZCwgdGlsZV93aWR0 aCA9ICVkLCB0aWxlX2hlaWdodCA9ICVkXG4iCi0gICAgICAgICAgICAgICAgIm51bVh0aWxlcyA9 ICVkLCBudW1ZdGlsZXMgPSAlZCwgbmNvbXBvbmVudHMgPSAlZFxuIgotICAgICAgICAgICAgICAg ICJ0aWxlczpcbiIsCi0gICAgICAgICAgICBzLT53aWR0aCwgcy0+aGVpZ2h0LCBzLT50aWxlX3dp ZHRoLCBzLT50aWxlX2hlaWdodCwKLSAgICAgICAgICAgIHMtPm51bVh0aWxlcywgcy0+bnVtWXRp bGVzLCBzLT5uY29tcG9uZW50cyk7Ci0gICAgZm9yICh0aWxlbm8gPSAwOyB0aWxlbm8gPCBzLT5u dW1YdGlsZXMgKiBzLT5udW1ZdGlsZXM7IHRpbGVubysrKXsKLSAgICAgICAgSnBlZzIwMDBUaWxl ICp0aWxlID0gcy0+dGlsZSArIHRpbGVubzsKLSAgICAgICAgbnNwYWNlcyhmZCwgMik7Ci0gICAg ICAgIGZwcmludGYoZmQsICJ0aWxlICVkOlxuIiwgdGlsZW5vKTsKLSAgICAgICAgZm9yKGNvbXBu byA9IDA7IGNvbXBubyA8IHMtPm5jb21wb25lbnRzOyBjb21wbm8rKyl7Ci0gICAgICAgICAgICBK cGVnMjAwMENvbXBvbmVudCAqY29tcCA9IHRpbGUtPmNvbXAgKyBjb21wbm87Ci0gICAgICAgICAg ICBuc3BhY2VzKGZkLCA0KTsKLSAgICAgICAgICAgIGZwcmludGYoZmQsICJjb21wb25lbnQgJWQ6 XG4iLCBjb21wbm8pOwotICAgICAgICAgICAgbnNwYWNlcyhmZCwgNCk7Ci0gICAgICAgICAgICBm cHJpbnRmKGZkLCAieDAgPSAlZCwgeDEgPSAlZCwgeTAgPSAlZCwgeTEgPSAlZFxuIiwKLSAgICAg ICAgICAgICAgICAgICAgICAgIGNvbXAtPngwLCBjb21wLT54MSwgY29tcC0+eTAsIGNvbXAtPnkx KTsKLSAgICAgICAgICAgIGZvcihyZXNsZXZlbG5vID0gMDsgcmVzbGV2ZWxubyA8IHMtPm5yZXNs ZXZlbHM7IHJlc2xldmVsbm8rKyl7Ci0gICAgICAgICAgICAgICAgSnBlZzIwMDBSZXNMZXZlbCAq cmVzbGV2ZWwgPSBjb21wLT5yZXNsZXZlbCArIHJlc2xldmVsbm87Ci0gICAgICAgICAgICAgICAg bnNwYWNlcyhmZCwgNik7Ci0gICAgICAgICAgICAgICAgZnByaW50ZihmZCwgInJlc2xldmVsICVk OlxuIiwgcmVzbGV2ZWxubyk7Ci0gICAgICAgICAgICAgICAgbnNwYWNlcyhmZCwgNik7Ci0gICAg ICAgICAgICAgICAgZnByaW50ZihmZCwgIngwID0gJWQsIHgxID0gJWQsIHkwID0gJWQsIHkxID0g JWQsIG5iYW5kcyA9ICVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgcmVzbGV2ZWwtPngw LCByZXNsZXZlbC0+eDEsIHJlc2xldmVsLT55MCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHJl c2xldmVsLT55MSwgcmVzbGV2ZWwtPm5iYW5kcyk7Ci0gICAgICAgICAgICAgICAgZm9yKGJhbmRu byA9IDA7IGJhbmRubyA8IHJlc2xldmVsLT5uYmFuZHM7IGJhbmRubysrKXsKLSAgICAgICAgICAg ICAgICAgICAgSnBlZzIwMDBCYW5kICpiYW5kID0gcmVzbGV2ZWwtPmJhbmQgKyBiYW5kbm87Ci0g ICAgICAgICAgICAgICAgICAgIG5zcGFjZXMoZmQsIDgpOwotICAgICAgICAgICAgICAgICAgICBm cHJpbnRmKGZkLCAiYmFuZCAlZDpcbiIsIGJhbmRubyk7Ci0gICAgICAgICAgICAgICAgICAgIG5z cGFjZXMoZmQsIDgpOwotICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKGZkLCAieDAgPSAlZCwg eDEgPSAlZCwgeTAgPSAlZCwgeTEgPSAlZCwiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJjb2RlYmxvY2tfd2lkdGggPSAlZCwgY29kZWJsb2NrX2hlaWdodCA9ICVkIGNibGtueCA9 ICVkIGNibGtueSA9ICVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYW5k LT54MCwgYmFuZC0+eDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhbmQtPnkw LCBiYW5kLT55MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFuZC0+Y29kZWJs b2NrX3dpZHRoLCBiYW5kLT5jb2RlYmxvY2tfaGVpZ2h0LAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBiYW5kLT5jYmxrbngsIGJhbmQtPmNibGtueSk7Ci0gICAgICAgICAgICAgICAg ICAgIGZvciAocHJlY25vID0gMDsgcHJlY25vIDwgcmVzbGV2ZWwtPm51bV9wcmVjaW5jdHNfeCAq IHJlc2xldmVsLT5udW1fcHJlY2luY3RzX3k7IHByZWNubysrKXsKLSAgICAgICAgICAgICAgICAg ICAgICAgIEpwZWcyMDAwUHJlYyAqcHJlYyA9IGJhbmQtPnByZWMgKyBwcmVjbm87Ci0gICAgICAg ICAgICAgICAgICAgICAgICBuc3BhY2VzKGZkLCAxMCk7Ci0gICAgICAgICAgICAgICAgICAgICAg ICBmcHJpbnRmKGZkLCAicHJlYyAlZDpcbiIsIHByZWNubyk7Ci0gICAgICAgICAgICAgICAgICAg ICAgICBuc3BhY2VzKGZkLCAxMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKGZk LCAieGkwID0gJWQsIHhpMSA9ICVkLCB5aTAgPSAlZCwgeWkxID0gJWRcbiIsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlYy0+eGkwLCBwcmVjLT54aTEsIHByZWMtPnlp MCwgcHJlYy0+eWkxKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0K LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLX0KLSNlbmRpZgotCiAvKiBiaXRzdHJl YW0gcm91dGluZXMgKi8KIAogLyoqIHB1dCBuIHRpbWVzIHZhbCBiaXQgKi8KLS0gCjIuNTIuMAoK CkZyb20gNDBkZWJkNTM3ZjZmNDU3ZTYyZDllN2ZkOGQ4N2ExN2EzMTQ4OWJlOCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFy ZHRAb3V0bG9vay5jb20+CkRhdGU6IEZyaSwgMjEgTm92IDIwMjUgMTQ6NTM6MjEgKzAxMDAKU3Vi amVjdDogW1BBVENIIDA1NS8zMDRdIGF2dXRpbC9lcnJvcjogQXZvaWQgcmVsb2NhdGlvbnMgYW5k IHVudXNlZAogaW5mb3JtYXRpb24KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClVz ZSBhIHN0cmluZyB0YWJsZSBpbnN0ZWFkIHRvIGF2b2lkIHJlbG9jYXRpb25zIGFuZCBkb24ndCBh ZGQKdGhlIHRhZyBzdHJpbmcgdG8gbGliYXZ1dGlsL2Vycm9yLmM6IEl0IGlzIG9ubHkgdXNlZApk dXJpbmcgdGhlIHRlc3QgcHJvZ3JhbSwgc28gbW92ZSBpdCB0aGVyZS4KClJldmlld2VkLWJ5OiBS w6ltaSBEZW5pcy1Db3VybW9udCA8cmVtaUByZW1sYWIubmV0PgpTaWduZWQtb2ZmLWJ5OiBBbmRy ZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KLS0tCiBsaWJh dnV0aWwvZXJyb3IuYyAgICAgICB8IDE5NyArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tLS0tCiBsaWJhdnV0aWwvdGVzdHMvZXJyb3IuYyB8ICAxMyArKy0KIDIgZmlsZXMgY2hh bmdlZCwgMTE5IGluc2VydGlvbnMoKyksIDkxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xp YmF2dXRpbC9lcnJvci5jIGIvbGliYXZ1dGlsL2Vycm9yLmMKaW5kZXggOTBiYWI3YjlkMy4uMjNh MmEwYTUzYSAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL2Vycm9yLmMKKysrIGIvbGliYXZ1dGlsL2Vy cm9yLmMKQEAgLTI1LDEwOSArMjUsMTI4IEBACiAjaW5jbHVkZSAiZXJyb3IuaCIKICNpbmNsdWRl ICJtYWNyb3MuaCIKIAotc3RydWN0IGVycm9yX2VudHJ5IHsKLSAgICBpbnQgbnVtOwotICAgIGNv bnN0IGNoYXIgKnRhZzsKLSAgICBjb25zdCBjaGFyICpzdHI7CisjZGVmaW5lIEFWRVJST1JfSU5Q VVRfQU5EX09VVFBVVF9DSEFOR0VEIChBVkVSUk9SX0lOUFVUX0NIQU5HRUQgfCBBVkVSUk9SX09V VFBVVF9DSEFOR0VEKQorCisjZGVmaW5lIEFWRVJST1JfTElTVChFLCBFMikgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgRShCU0ZfTk9UX0ZPVU5ELCAgICAgICAgICAgICJCaXRzdHJlYW0gZmlsdGVyIG5vdCBm b3VuZCIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRShCVUcsICAg ICAgICAgICAgICAgICAgICAgICJJbnRlcm5hbCBidWcsIHNob3VsZCBub3QgaGF2ZSBoYXBwZW5l ZCIpICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRTIoQlVHMiwgQlVHLCAgICAgICAgICAg ICAgICJJbnRlcm5hbCBidWcsIHNob3VsZCBub3QgaGF2ZSBoYXBwZW5lZCIpICAgICAgICAgICAg ICAgICAgICAgICBcCisgICAgRShCVUZGRVJfVE9PX1NNQUxMLCAgICAgICAgICJCdWZmZXIgdG9v IHNtYWxsIikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgRShERUNPREVSX05PVF9GT1VORCwgICAgICAgICJEZWNvZGVyIG5vdCBmb3VuZCIpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRShERU1VWEVSX05P VF9GT1VORCwgICAgICAgICJEZW11eGVyIG5vdCBmb3VuZCIpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRShFTkNPREVSX05PVF9GT1VORCwgICAgICAg ICJFbmNvZGVyIG5vdCBmb3VuZCIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgRShFT0YsICAgICAgICAgICAgICAgICAgICAgICJFbmQgb2YgZmlsZSIp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg RShFWElULCAgICAgICAgICAgICAgICAgICAgICJJbW1lZGlhdGUgZXhpdCByZXF1ZXN0ZWQiKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRShFWFRFUk5BTCwgICAg ICAgICAgICAgICAgICJHZW5lcmljIGVycm9yIGluIGFuIGV4dGVybmFsIGxpYnJhcnkiKSAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgRShGSUxURVJfTk9UX0ZPVU5ELCAgICAgICAgICJG aWx0ZXIgbm90IGZvdW5kIikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgRShJTlBVVF9DSEFOR0VELCAgICAgICAgICAgICJJbnB1dCBjaGFuZ2VkIikg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRShJ TlZBTElEREFUQSwgICAgICAgICAgICAgICJJbnZhbGlkIGRhdGEgZm91bmQgd2hlbiBwcm9jZXNz aW5nIGlucHV0IikgICAgICAgICAgICAgICAgICAgICBcCisgICAgRShNVVhFUl9OT1RfRk9VTkQs ICAgICAgICAgICJNdXhlciBub3QgZm91bmQiKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisgICAgRShPUFRJT05fTk9UX0ZPVU5ELCAgICAgICAgICJPcHRp b24gbm90IGZvdW5kIikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgRShPVVRQVVRfQ0hBTkdFRCwgICAgICAgICAgICJPdXRwdXQgY2hhbmdlZCIpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRShQQVRD SFdFTENPTUUsICAgICAgICAgICAgICJOb3QgeWV0IGltcGxlbWVudGVkIGluIEZGbXBlZywgcGF0 Y2hlcyB3ZWxjb21lIikgICAgICAgICAgICAgICBcCisgICAgRShQUk9UT0NPTF9OT1RfRk9VTkQs ICAgICAgICJQcm90b2NvbCBub3QgZm91bmQiKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgRShTVFJFQU1fTk9UX0ZPVU5ELCAgICAgICAgICJTdHJlYW0g bm90IGZvdW5kIikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgRShVTktOT1dOLCAgICAgICAgICAgICAgICAgICJVbmtub3duIGVycm9yIG9jY3VycmVk IikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRShFWFBFUklN RU5UQUwsICAgICAgICAgICAgICJFeHBlcmltZW50YWwgZmVhdHVyZSIpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRShJTlBVVF9BTkRfT1VUUFVUX0NIQU5H RUQsICJJbnB1dCBhbmQgb3V0cHV0IGNoYW5nZWQiKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgICAgRShIVFRQX0JBRF9SRVFVRVNULCAgICAgICAgICJTZXJ2ZXIgcmV0 dXJuZWQgNDAwIEJhZCBSZXF1ZXN0IikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgRShIVFRQX1VOQVVUSE9SSVpFRCwgICAgICAgICJTZXJ2ZXIgcmV0dXJuZWQgNDAxIFVuYXV0 aG9yaXplZCAoYXV0aG9yaXphdGlvbiBmYWlsZWQpIikgICAgICBcCisgICAgRShIVFRQX0ZPUkJJ RERFTiwgICAgICAgICAgICJTZXJ2ZXIgcmV0dXJuZWQgNDAzIEZvcmJpZGRlbiAoYWNjZXNzIGRl bmllZCkiKSAgICAgICAgICAgICAgICBcCisgICAgRShIVFRQX05PVF9GT1VORCwgICAgICAgICAg ICJTZXJ2ZXIgcmV0dXJuZWQgNDA0IE5vdCBGb3VuZCIpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgRShIVFRQX1RPT19NQU5ZX1JFUVVFU1RTLCAgICJTZXJ2ZXIgcmV0dXJu ZWQgNDI5IFRvbyBNYW55IFJlcXVlc3RzIikgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg RShIVFRQX09USEVSXzRYWCwgICAgICAgICAgICJTZXJ2ZXIgcmV0dXJuZWQgNFhYIENsaWVudCBF cnJvciwgYnV0IG5vdCBvbmUgb2YgNDB7MCwxLDMsNH0iKSBcCisgICAgRShIVFRQX1NFUlZFUl9F UlJPUiwgICAgICAgICJTZXJ2ZXIgcmV0dXJuZWQgNVhYIFNlcnZlciBFcnJvciByZXBseSIpICAg ICAgICAgICAgICAgICAgICAgICBcCisKKyNkZWZpbmUgU1RSRVJST1JfTElTVChFKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEUoRTJC SUcsICAgICAgICAgICAgICJBcmd1bWVudCBsaXN0IHRvbyBsb25nIikgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgICAgRShFQUNDRVMsICAgICAgICAgICAgIlBlcm1pc3Npb24gZGVuaWVk IikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBFKEVBR0FJTiwgICAgICAg ICAgICAiUmVzb3VyY2UgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUiKSAgICAgICAgICAgICAgICAg XAorICAgIEUoRUJBREYsICAgICAgICAgICAgICJCYWQgZmlsZSBkZXNjcmlwdG9yIikgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRShFQlVTWSwgICAgICAgICAgICAgIkRldmlj ZSBvciByZXNvdXJjZSBidXN5IikgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBFKEVD SElMRCwgICAgICAgICAgICAiTm8gY2hpbGQgcHJvY2Vzc2VzIikgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAgIEUoRURFQURMSywgICAgICAgICAgICJSZXNvdXJjZSBkZWFkbG9j ayBhdm9pZGVkIikgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRShFRE9NLCAgICAgICAg ICAgICAgIk51bWVyaWNhbCBhcmd1bWVudCBvdXQgb2YgZG9tYWluIikgICAgICAgICAgICAgICAg IFwKKyAgICBFKEVFWElTVCwgICAgICAgICAgICAiRmlsZSBleGlzdHMiKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEUoRUZBVUxULCAgICAgICAgICAgICJCYWQg YWRkcmVzcyIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRShF RkJJRywgICAgICAgICAgICAgIkZpbGUgdG9vIGxhcmdlIikgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgICBFKEVJTFNFUSwgICAgICAgICAgICAiSWxsZWdhbCBieXRlIHNl cXVlbmNlIikgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEUoRUlOVFIsICAgICAg ICAgICAgICJJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbCIpICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgRShFSU5WQUwsICAgICAgICAgICAgIkludmFsaWQgYXJndW1lbnQiKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBFKEVJTywgICAgICAgICAgICAgICAiSS9P IGVycm9yIikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEUo RUlTRElSLCAgICAgICAgICAgICJJcyBhIGRpcmVjdG9yeSIpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgRShFTUZJTEUsICAgICAgICAgICAgIlRvbyBtYW55IG9wZW4g ZmlsZXMiKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBFKEVNTElOSywgICAg ICAgICAgICAiVG9vIG1hbnkgbGlua3MiKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgIEUoRU5BTUVUT09MT05HLCAgICAgICJGaWxlIG5hbWUgdG9vIGxvbmciKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRShFTkZJTEUsICAgICAgICAgICAgIlRv byBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtIikgICAgICAgICAgICAgICAgICAgIFwKKyAgICBF KEVOT0RFViwgICAgICAgICAgICAiTm8gc3VjaCBkZXZpY2UiKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgIEUoRU5PRU5ULCAgICAgICAgICAgICJObyBzdWNoIGZpbGUg b3IgZGlyZWN0b3J5IikgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRShFTk9FWEVDLCAg ICAgICAgICAgIkV4ZWMgZm9ybWF0IGVycm9yIikgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICBFKEVOT0xDSywgICAgICAgICAgICAiTm8gbG9ja3MgYXZhaWxhYmxlIikgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEUoRU5PTUVNLCAgICAgICAgICAgICJD YW5ub3QgYWxsb2NhdGUgbWVtb3J5IikgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg RShFTk9TUEMsICAgICAgICAgICAgIk5vIHNwYWNlIGxlZnQgb24gZGV2aWNlIikgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgICBFKEVOT1NZUywgICAgICAgICAgICAiRnVuY3Rpb24gbm90 IGltcGxlbWVudGVkIikgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEUoRU5PVERJUiwg ICAgICAgICAgICJOb3QgYSBkaXJlY3RvcnkiKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgRShFTk9URU1QVFksICAgICAgICAgIkRpcmVjdG9yeSBub3QgZW1wdHkiKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBFKEVOT1RUWSwgICAgICAgICAgICAi SW5hcHByb3ByaWF0ZSBJL08gY29udHJvbCBvcGVyYXRpb24iKSAgICAgICAgICAgICAgXAorICAg IEUoRU5YSU8sICAgICAgICAgICAgICJObyBzdWNoIGRldmljZSBvciBhZGRyZXNzIikgICAgICAg ICAgICAgICAgICAgICAgICBcCisgICAgRShFUEVSTSwgICAgICAgICAgICAgIk9wZXJhdGlvbiBu b3QgcGVybWl0dGVkIikgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBFKEVQSVBFLCAg ICAgICAgICAgICAiQnJva2VuIHBpcGUiKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgIEUoRVJBTkdFLCAgICAgICAgICAgICJSZXN1bHQgdG9vIGxhcmdlIikgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRShFUk9GUywgICAgICAgICAgICAg IlJlYWQtb25seSBmaWxlIHN5c3RlbSIpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICBFKEVTUElQRSwgICAgICAgICAgICAiSWxsZWdhbCBzZWVrIikgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgIEUoRVNSQ0gsICAgICAgICAgICAgICJObyBzdWNoIHBy b2Nlc3MiKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRShFWERFViwg ICAgICAgICAgICAgIkNyb3NzLWRldmljZSBsaW5rIikgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKworZW51bSB7CisjZGVmaW5lIE9GRlNFVChDT0RFLCBERVNDKSAgICAgXAorICAg IEVSUk9SXyAjIyBDT0RFICMjIF9PRkZTRVQsIFwKKyAgICBFUlJPUl8gIyMgQ09ERSAjIyBfRU5E X09GRlNFVCA9IEVSUk9SXyAjIyBDT0RFICMjIF9PRkZTRVQgKyBzaXplb2YoREVTQykgLSAxLAor I2RlZmluZSBOT1RISU5HKENPREUsIENPREUyLCBERVNDKQorICAgIEFWRVJST1JfTElTVChPRkZT RVQsIE5PVEhJTkcpCisjaWYgIUhBVkVfU1RSRVJST1JfUgorICAgIFNUUkVSUk9SX0xJU1QoT0ZG U0VUKQorI2VuZGlmCisgICAgRVJST1JfTElTVF9TSVpFCiB9OwogCi0jZGVmaW5lIEVSUk9SX1RB Ryh0YWcpIEFWRVJST1JfIyN0YWcsICN0YWcKLSNkZWZpbmUgRUVSUk9SX1RBRyh0YWcpIEFWRVJS T1IodGFnKSwgI3RhZwotI2RlZmluZSBBVkVSUk9SX0lOUFVUX0FORF9PVVRQVVRfQ0hBTkdFRCAo QVZFUlJPUl9JTlBVVF9DSEFOR0VEIHwgQVZFUlJPUl9PVVRQVVRfQ0hBTkdFRCkKLXN0YXRpYyBj b25zdCBzdHJ1Y3QgZXJyb3JfZW50cnkgZXJyb3JfZW50cmllc1tdID0gewotICAgIHsgRVJST1Jf VEFHKEJTRl9OT1RfRk9VTkQpLCAgICAgICJCaXRzdHJlYW0gZmlsdGVyIG5vdCBmb3VuZCIgICAg ICAgICAgICAgICAgICAgICB9LAotICAgIHsgRVJST1JfVEFHKEJVRyksICAgICAgICAgICAgICAg ICJJbnRlcm5hbCBidWcsIHNob3VsZCBub3QgaGF2ZSBoYXBwZW5lZCIgICAgICAgICB9LAotICAg IHsgRVJST1JfVEFHKEJVRzIpLCAgICAgICAgICAgICAgICJJbnRlcm5hbCBidWcsIHNob3VsZCBu b3QgaGF2ZSBoYXBwZW5lZCIgICAgICAgICB9LAotICAgIHsgRVJST1JfVEFHKEJVRkZFUl9UT09f U01BTEwpLCAgICJCdWZmZXIgdG9vIHNtYWxsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9LAotICAgIHsgRVJST1JfVEFHKERFQ09ERVJfTk9UX0ZPVU5EKSwgICJEZWNvZGVyIG5vdCBm b3VuZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgIHsgRVJST1JfVEFHKERF TVVYRVJfTk9UX0ZPVU5EKSwgICJEZW11eGVyIG5vdCBmb3VuZCIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9LAotICAgIHsgRVJST1JfVEFHKEVOQ09ERVJfTk9UX0ZPVU5EKSwgICJFbmNv ZGVyIG5vdCBmb3VuZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgIHsgRVJS T1JfVEFHKEVPRiksICAgICAgICAgICAgICAgICJFbmQgb2YgZmlsZSIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9LAotICAgIHsgRVJST1JfVEFHKEVYSVQpLCAgICAgICAgICAg ICAgICJJbW1lZGlhdGUgZXhpdCByZXF1ZXN0ZWQiICAgICAgICAgICAgICAgICAgICAgICB9LAot ICAgIHsgRVJST1JfVEFHKEVYVEVSTkFMKSwgICAgICAgICAgICJHZW5lcmljIGVycm9yIGluIGFu IGV4dGVybmFsIGxpYnJhcnkiICAgICAgICAgICB9LAotICAgIHsgRVJST1JfVEFHKEZJTFRFUl9O T1RfRk9VTkQpLCAgICJGaWx0ZXIgbm90IGZvdW5kIiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9LAotICAgIHsgRVJST1JfVEFHKElOUFVUX0NIQU5HRUQpLCAgICAgICJJbnB1dCBjaGFu Z2VkIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgIHsgRVJST1JfVEFH KElOVkFMSUREQVRBKSwgICAgICAgICJJbnZhbGlkIGRhdGEgZm91bmQgd2hlbiBwcm9jZXNzaW5n IGlucHV0IiAgICAgICB9LAotICAgIHsgRVJST1JfVEFHKE1VWEVSX05PVF9GT1VORCksICAgICJN dXhlciBub3QgZm91bmQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgIHsg RVJST1JfVEFHKE9QVElPTl9OT1RfRk9VTkQpLCAgICJPcHRpb24gbm90IGZvdW5kIiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgIHsgRVJST1JfVEFHKE9VVFBVVF9DSEFOR0VE KSwgICAgICJPdXRwdXQgY2hhbmdlZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 LAotICAgIHsgRVJST1JfVEFHKFBBVENIV0VMQ09NRSksICAgICAgICJOb3QgeWV0IGltcGxlbWVu dGVkIGluIEZGbXBlZywgcGF0Y2hlcyB3ZWxjb21lIiB9LAotICAgIHsgRVJST1JfVEFHKFBST1RP Q09MX05PVF9GT1VORCksICJQcm90b2NvbCBub3QgZm91bmQiICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9LAotICAgIHsgRVJST1JfVEFHKFNUUkVBTV9OT1RfRk9VTkQpLCAgICJTdHJlYW0g bm90IGZvdW5kIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgIHsgRVJST1Jf VEFHKFVOS05PV04pLCAgICAgICAgICAgICJVbmtub3duIGVycm9yIG9jY3VycmVkIiAgICAgICAg ICAgICAgICAgICAgICAgICB9LAotICAgIHsgRVJST1JfVEFHKEVYUEVSSU1FTlRBTCksICAgICAg ICJFeHBlcmltZW50YWwgZmVhdHVyZSIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAotICAg IHsgRVJST1JfVEFHKElOUFVUX0FORF9PVVRQVVRfQ0hBTkdFRCksICJJbnB1dCBhbmQgb3V0cHV0 IGNoYW5nZWQiICAgICAgICAgICAgICAgICB9LAotICAgIHsgRVJST1JfVEFHKEhUVFBfQkFEX1JF UVVFU1QpLCAgICJTZXJ2ZXIgcmV0dXJuZWQgNDAwIEJhZCBSZXF1ZXN0IiAgICAgICAgIH0sCi0g ICAgeyBFUlJPUl9UQUcoSFRUUF9VTkFVVEhPUklaRUQpLCAgIlNlcnZlciByZXR1cm5lZCA0MDEg VW5hdXRob3JpemVkIChhdXRob3JpemF0aW9uIGZhaWxlZCkiIH0sCi0gICAgeyBFUlJPUl9UQUco SFRUUF9GT1JCSURERU4pLCAgICAgIlNlcnZlciByZXR1cm5lZCA0MDMgRm9yYmlkZGVuIChhY2Nl c3MgZGVuaWVkKSIgfSwKLSAgICB7IEVSUk9SX1RBRyhIVFRQX05PVF9GT1VORCksICAgICAiU2Vy dmVyIHJldHVybmVkIDQwNCBOb3QgRm91bmQiICAgICAgICAgICB9LAotICAgIHsgRVJST1JfVEFH KEhUVFBfVE9PX01BTllfUkVRVUVTVFMpLCAiU2VydmVyIHJldHVybmVkIDQyOSBUb28gTWFueSBS ZXF1ZXN0cyIgICAgICB9LAotICAgIHsgRVJST1JfVEFHKEhUVFBfT1RIRVJfNFhYKSwgICAgICJT ZXJ2ZXIgcmV0dXJuZWQgNFhYIENsaWVudCBFcnJvciwgYnV0IG5vdCBvbmUgb2YgNDB7MCwxLDMs NH0iIH0sCi0gICAgeyBFUlJPUl9UQUcoSFRUUF9TRVJWRVJfRVJST1IpLCAgIlNlcnZlciByZXR1 cm5lZCA1WFggU2VydmVyIEVycm9yIHJlcGx5IiB9LAorI2RlZmluZSBTVFJJTkcoQ09ERSwgREVT QykgREVTQyAiXDAiCitzdGF0aWMgY29uc3QgY2hhciBlcnJvcl9zdHJpbmd0YWJsZVtFUlJPUl9M SVNUX1NJWkVdID0KKyAgICBBVkVSUk9SX0xJU1QoU1RSSU5HLCBOT1RISU5HKQogI2lmICFIQVZF X1NUUkVSUk9SX1IKLSAgICB7IEVFUlJPUl9UQUcoRTJCSUcpLCAgICAgICAgICAgICAiQXJndW1l bnQgbGlzdCB0b28gbG9uZyIgfSwKLSAgICB7IEVFUlJPUl9UQUcoRUFDQ0VTKSwgICAgICAgICAg ICAiUGVybWlzc2lvbiBkZW5pZWQiIH0sCi0gICAgeyBFRVJST1JfVEFHKEVBR0FJTiksICAgICAg ICAgICAgIlJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlIiB9LAotICAgIHsgRUVSUk9S X1RBRyhFQkFERiksICAgICAgICAgICAgICJCYWQgZmlsZSBkZXNjcmlwdG9yIiB9LAotICAgIHsg RUVSUk9SX1RBRyhFQlVTWSksICAgICAgICAgICAgICJEZXZpY2Ugb3IgcmVzb3VyY2UgYnVzeSIg fSwKLSAgICB7IEVFUlJPUl9UQUcoRUNISUxEKSwgICAgICAgICAgICAiTm8gY2hpbGQgcHJvY2Vz c2VzIiB9LAotICAgIHsgRUVSUk9SX1RBRyhFREVBRExLKSwgICAgICAgICAgICJSZXNvdXJjZSBk ZWFkbG9jayBhdm9pZGVkIiB9LAotICAgIHsgRUVSUk9SX1RBRyhFRE9NKSwgICAgICAgICAgICAg ICJOdW1lcmljYWwgYXJndW1lbnQgb3V0IG9mIGRvbWFpbiIgfSwKLSAgICB7IEVFUlJPUl9UQUco RUVYSVNUKSwgICAgICAgICAgICAiRmlsZSBleGlzdHMiIH0sCi0gICAgeyBFRVJST1JfVEFHKEVG QVVMVCksICAgICAgICAgICAgIkJhZCBhZGRyZXNzIiB9LAotICAgIHsgRUVSUk9SX1RBRyhFRkJJ RyksICAgICAgICAgICAgICJGaWxlIHRvbyBsYXJnZSIgfSwKLSAgICB7IEVFUlJPUl9UQUcoRUlM U0VRKSwgICAgICAgICAgICAiSWxsZWdhbCBieXRlIHNlcXVlbmNlIiB9LAotICAgIHsgRUVSUk9S X1RBRyhFSU5UUiksICAgICAgICAgICAgICJJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbCIgfSwKLSAg ICB7IEVFUlJPUl9UQUcoRUlOVkFMKSwgICAgICAgICAgICAiSW52YWxpZCBhcmd1bWVudCIgfSwK LSAgICB7IEVFUlJPUl9UQUcoRUlPKSwgICAgICAgICAgICAgICAiSS9PIGVycm9yIiB9LAotICAg IHsgRUVSUk9SX1RBRyhFSVNESVIpLCAgICAgICAgICAgICJJcyBhIGRpcmVjdG9yeSIgfSwKLSAg ICB7IEVFUlJPUl9UQUcoRU1GSUxFKSwgICAgICAgICAgICAiVG9vIG1hbnkgb3BlbiBmaWxlcyIg fSwKLSAgICB7IEVFUlJPUl9UQUcoRU1MSU5LKSwgICAgICAgICAgICAiVG9vIG1hbnkgbGlua3Mi IH0sCi0gICAgeyBFRVJST1JfVEFHKEVOQU1FVE9PTE9ORyksICAgICAgIkZpbGUgbmFtZSB0b28g bG9uZyIgfSwKLSAgICB7IEVFUlJPUl9UQUcoRU5GSUxFKSwgICAgICAgICAgICAiVG9vIG1hbnkg b3BlbiBmaWxlcyBpbiBzeXN0ZW0iIH0sCi0gICAgeyBFRVJST1JfVEFHKEVOT0RFViksICAgICAg ICAgICAgIk5vIHN1Y2ggZGV2aWNlIiB9LAotICAgIHsgRUVSUk9SX1RBRyhFTk9FTlQpLCAgICAg ICAgICAgICJObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IiB9LAotICAgIHsgRUVSUk9SX1RBRyhF Tk9FWEVDKSwgICAgICAgICAgICJFeGVjIGZvcm1hdCBlcnJvciIgfSwKLSAgICB7IEVFUlJPUl9U QUcoRU5PTENLKSwgICAgICAgICAgICAiTm8gbG9ja3MgYXZhaWxhYmxlIiB9LAotICAgIHsgRUVS Uk9SX1RBRyhFTk9NRU0pLCAgICAgICAgICAgICJDYW5ub3QgYWxsb2NhdGUgbWVtb3J5IiB9LAot ICAgIHsgRUVSUk9SX1RBRyhFTk9TUEMpLCAgICAgICAgICAgICJObyBzcGFjZSBsZWZ0IG9uIGRl dmljZSIgfSwKLSAgICB7IEVFUlJPUl9UQUcoRU5PU1lTKSwgICAgICAgICAgICAiRnVuY3Rpb24g bm90IGltcGxlbWVudGVkIiB9LAotICAgIHsgRUVSUk9SX1RBRyhFTk9URElSKSwgICAgICAgICAg ICJOb3QgYSBkaXJlY3RvcnkiIH0sCi0gICAgeyBFRVJST1JfVEFHKEVOT1RFTVBUWSksICAgICAg ICAgIkRpcmVjdG9yeSBub3QgZW1wdHkiIH0sCi0gICAgeyBFRVJST1JfVEFHKEVOT1RUWSksICAg ICAgICAgICAgIkluYXBwcm9wcmlhdGUgSS9PIGNvbnRyb2wgb3BlcmF0aW9uIiB9LAotICAgIHsg RUVSUk9SX1RBRyhFTlhJTyksICAgICAgICAgICAgICJObyBzdWNoIGRldmljZSBvciBhZGRyZXNz IiB9LAotICAgIHsgRUVSUk9SX1RBRyhFUEVSTSksICAgICAgICAgICAgICJPcGVyYXRpb24gbm90 IHBlcm1pdHRlZCIgfSwKLSAgICB7IEVFUlJPUl9UQUcoRVBJUEUpLCAgICAgICAgICAgICAiQnJv a2VuIHBpcGUiIH0sCi0gICAgeyBFRVJST1JfVEFHKEVSQU5HRSksICAgICAgICAgICAgIlJlc3Vs dCB0b28gbGFyZ2UiIH0sCi0gICAgeyBFRVJST1JfVEFHKEVST0ZTKSwgICAgICAgICAgICAgIlJl YWQtb25seSBmaWxlIHN5c3RlbSIgfSwKLSAgICB7IEVFUlJPUl9UQUcoRVNQSVBFKSwgICAgICAg ICAgICAiSWxsZWdhbCBzZWVrIiB9LAotICAgIHsgRUVSUk9SX1RBRyhFU1JDSCksICAgICAgICAg ICAgICJObyBzdWNoIHByb2Nlc3MiIH0sCi0gICAgeyBFRVJST1JfVEFHKEVYREVWKSwgICAgICAg ICAgICAgIkNyb3NzLWRldmljZSBsaW5rIiB9LAorICAgIFNUUkVSUk9SX0xJU1QoU1RSSU5HKQor I2VuZGlmCis7CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgRXJyb3JFbnRyeSB7CisgICAgaW50IG51 bTsKKyAgICB1bnNpZ25lZCBvZmZzZXQ7Cit9IGVycm9yX2VudHJpZXNbXSA9IHsKKyNkZWZpbmUg RU5UUlkoQ09ERSwgREVTQykgeyAubnVtID0gQVZFUlJPUl8gIyMgQ09ERSwgLm9mZnNldCA9IEVS Uk9SXyAjIyBDT0RFICMjIF9PRkZTRVQgfSwKKyNkZWZpbmUgRU5UUlkyKENPREUsIENPREUyLCBE RVNDKSB7IC5udW0gPSBBVkVSUk9SXyAjIyBDT0RFLCAub2Zmc2V0ID0gRVJST1JfICMjIENPREUy ICMjIF9PRkZTRVQgfSwKKyAgICBBVkVSUk9SX0xJU1QoRU5UUlksIEVOVFJZMikKKyNpZiAhSEFW RV9TVFJFUlJPUl9SCisjdW5kZWYgRU5UUlkKKyNkZWZpbmUgRU5UUlkoQ09ERSwgREVTQykgeyAu bnVtID0gQVZFUlJPUihDT0RFKSwgLm9mZnNldCA9IEVSUk9SXyAjIyBDT0RFICMjIF9PRkZTRVQg fSwKKyAgICBTVFJFUlJPUl9MSVNUKEVOVFJZKQogI2VuZGlmCiB9OwogCiBpbnQgYXZfc3RyZXJy b3IoaW50IGVycm51bSwgY2hhciAqZXJyYnVmLCBzaXplX3QgZXJyYnVmX3NpemUpCiB7Ci0gICAg aW50IHJldCA9IDAsIGk7Ci0gICAgY29uc3Qgc3RydWN0IGVycm9yX2VudHJ5ICplbnRyeSA9IE5V TEw7Ci0KLSAgICBmb3IgKGkgPSAwOyBpIDwgRkZfQVJSQVlfRUxFTVMoZXJyb3JfZW50cmllcyk7 IGkrKykgeworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgRkZfQVJSQVlfRUxFTVMoZXJyb3Jf ZW50cmllcyk7ICsraSkgewogICAgICAgICBpZiAoZXJybnVtID09IGVycm9yX2VudHJpZXNbaV0u bnVtKSB7Ci0gICAgICAgICAgICBlbnRyeSA9ICZlcnJvcl9lbnRyaWVzW2ldOwotICAgICAgICAg ICAgYnJlYWs7CisgICAgICAgICAgICBhdl9zdHJsY3B5KGVycmJ1ZiwgZXJyb3Jfc3RyaW5ndGFi bGUgKyBlcnJvcl9lbnRyaWVzW2ldLm9mZnNldCwgZXJyYnVmX3NpemUpOworICAgICAgICAgICAg cmV0dXJuIDA7CiAgICAgICAgIH0KICAgICB9Ci0gICAgaWYgKGVudHJ5KSB7Ci0gICAgICAgIGF2 X3N0cmxjcHkoZXJyYnVmLCBlbnRyeS0+c3RyLCBlcnJidWZfc2l6ZSk7Ci0gICAgfSBlbHNlIHsK ICNpZiBIQVZFX1NUUkVSUk9SX1IKLSAgICAgICAgcmV0ID0gQVZFUlJPUihzdHJlcnJvcl9yKEFW VU5FUlJPUihlcnJudW0pLCBlcnJidWYsIGVycmJ1Zl9zaXplKSk7CisgICAgaW50IHJldCA9IEFW RVJST1Ioc3RyZXJyb3JfcihBVlVORVJST1IoZXJybnVtKSwgZXJyYnVmLCBlcnJidWZfc2l6ZSkp OwogI2Vsc2UKLSAgICAgICAgcmV0ID0gLTE7CisgICAgaW50IHJldCA9IC0xOwogI2VuZGlmCi0g ICAgICAgIGlmIChyZXQgPCAwKQotICAgICAgICAgICAgc25wcmludGYoZXJyYnVmLCBlcnJidWZf c2l6ZSwgIkVycm9yIG51bWJlciAlZCBvY2N1cnJlZCIsIGVycm51bSk7Ci0gICAgfQorICAgIGlm IChyZXQgPCAwKQorICAgICAgICBzbnByaW50ZihlcnJidWYsIGVycmJ1Zl9zaXplLCAiRXJyb3Ig bnVtYmVyICVkIG9jY3VycmVkIiwgZXJybnVtKTsKIAogICAgIHJldHVybiByZXQ7CiB9CmRpZmYg LS1naXQgYS9saWJhdnV0aWwvdGVzdHMvZXJyb3IuYyBiL2xpYmF2dXRpbC90ZXN0cy9lcnJvci5j CmluZGV4IGI3YjI1M2I3YjUuLjc3NGM3MWZjYjkgMTAwNjQ0Ci0tLSBhL2xpYmF2dXRpbC90ZXN0 cy9lcnJvci5jCisrKyBiL2xpYmF2dXRpbC90ZXN0cy9lcnJvci5jCkBAIC0xOCwxMyArMTgsMjIg QEAKIAogI2luY2x1ZGUgImxpYmF2dXRpbC9lcnJvci5jIgogCitzdGF0aWMgY29uc3QgY2hhciAq Y29uc3QgdGFnX2xpc3RbXSA9IHsKKyNkZWZpbmUgRVJST1JfVEFHKENPREUsIERFU0MpICNDT0RF LAorI2RlZmluZSBFUlJPUl9UQUcyKENPREUsIENPREUyLCBERVNDKSAjQ09ERSwKKyAgICBBVkVS Uk9SX0xJU1QoRVJST1JfVEFHLCBFUlJPUl9UQUcyKQorI2lmICFIQVZFX1NUUkVSUk9SX1IKKyAg ICBTVFJFUlJPUl9MSVNUKEVSUk9SX1RBRykKKyNlbmRpZgorfTsKKwogaW50IG1haW4odm9pZCkK IHsKICAgICBpbnQgaTsKIAogICAgIGZvciAoaSA9IDA7IGkgPCBGRl9BUlJBWV9FTEVNUyhlcnJv cl9lbnRyaWVzKTsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IHN0cnVjdCBlcnJvcl9lbnRyeSAqZW50 cnkgPSAmZXJyb3JfZW50cmllc1tpXTsKLSAgICAgICAgcHJpbnRmKCIlZDogJXMgWyVzXVxuIiwg ZW50cnktPm51bSwgYXZfZXJyMnN0cihlbnRyeS0+bnVtKSwgZW50cnktPnRhZyk7CisgICAgICAg IGNvbnN0IHN0cnVjdCBFcnJvckVudHJ5ICplbnRyeSA9ICZlcnJvcl9lbnRyaWVzW2ldOworICAg ICAgICBwcmludGYoIiVkOiAlcyBbJXNdXG4iLCBlbnRyeS0+bnVtLCBhdl9lcnIyc3RyKGVudHJ5 LT5udW0pLCB0YWdfbGlzdFtpXSk7CiAgICAgfQogCiAgICAgZm9yIChpID0gMDsgaSA8IDI1Njsg aSsrKSB7Ci0tIAoyLjUyLjAKCgpGcm9tIDEyZmQ3ZDc0NzdkNjA1ZDUyYTM4M2M0YzAwNjEwOTU0 MjhiOTkxOGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEF5b3NlIDxheW9zZWNAZ21h aWwuY29tPgpEYXRlOiBNb24sIDI0IE5vdiAyMDI1IDE1OjQwOjIwICswMDAwClN1YmplY3Q6IFtQ QVRDSCAwNTYvMzA0XSBmZnRvb2xzL3RmX21lcm1haWQ6IGxvZ2ljIHRvIGNvbXBsZXRlIHN1Ymdy YXBocyBpbiBhCiByZXVzYWJsZSBmdW5jdGlvbi4KCmBzdWJncmFwaGAgYmxvY2tzIGNhbiBiZSBj bG9zZWQgaW4gZGlmZmVyZW50IHBsYWNlcy4gVGhlIGxvZ2ljIHRvIGNvbXBsZXRlIHRoZQpoZWFk ZXIgaXMgbW92ZWQgdG8gYSBmdW5jdGlvbiwgc28gaXQgY2FuIGJlIHJldXNlZCBsYXRlci4KLS0t CiBmZnRvb2xzL3RleHRmb3JtYXQvdGZfbWVybWFpZC5jIHwgMjggKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2ZmdG9vbHMvdGV4dGZvcm1hdC90Zl9tZXJtYWlkLmMgYi9mZnRv b2xzL3RleHRmb3JtYXQvdGZfbWVybWFpZC5jCmluZGV4IGVmNzMwZDU3MGIuLmViMjhmZmI2YWIg MTAwNjQ0Ci0tLSBhL2ZmdG9vbHMvdGV4dGZvcm1hdC90Zl9tZXJtYWlkLmMKKysrIGIvZmZ0b29s cy90ZXh0Zm9ybWF0L3RmX21lcm1haWQuYwpAQCAtMjQwLDYgKzI0MCwyMCBAQCBzdGF0aWMgdm9p ZCBzZXRfc3RyKGNvbnN0IGNoYXIgKipkc3QsIGNvbnN0IGNoYXIgKnNyYykKICAgICAgICAgKmRz dCA9IGF2X3N0cmR1cChzcmMpOwogfQogCitzdGF0aWMgdm9pZCBtZXJtYWlkX3N1YmdyYXBoX2Nv bXBsZXRlX3N0YXJ0KE1lcm1haWRDb250ZXh0ICptbWMsIEFWVGV4dEZvcm1hdENvbnRleHQgKnRm YywgaW50IGxldmVsKSB7CisgICAgc3RydWN0IHNlY3Rpb25fZGF0YSBwYXJlbnRfc2VjX2RhdGEg PSBtbWMtPnNlY3Rpb25fZGF0YVtsZXZlbF07CisgICAgQVZCUHJpbnQgKnBhcmVudF9idWYgPSAm dGZjLT5zZWN0aW9uX3BidWZbbGV2ZWxdOworCisgICAgaWYgKHBhcmVudF9zZWNfZGF0YS5zdWJn cmFwaF9zdGFydF9pbmNvbXBsZXRlKSB7CisgICAgICAgIGlmIChwYXJlbnRfYnVmLT5sZW4gPiAw KQorICAgICAgICAgICAgd3JpdGVyX3ByaW50Zih0ZmMsICIlcyIsIHBhcmVudF9idWYtPnN0cik7 CisKKyAgICAgICAgd3JpdGVyX3B1dF9zdHIodGZjLCAiPC9kaXY+XCJdXG4iKTsKKworICAgICAg ICBtbWMtPnNlY3Rpb25fZGF0YVtsZXZlbF0uc3ViZ3JhcGhfc3RhcnRfaW5jb21wbGV0ZSA9IDA7 CisgICAgfQorfQorCiAjZGVmaW5lIE1NX0lOREVOVCgpIHdyaXRlcl9wcmludGYodGZjLCAiJSpj IiwgbW1jLT5pbmRlbnRfbGV2ZWwgKiAyLCAnICcpCiAKIHN0YXRpYyB2b2lkIG1lcm1haWRfcHJp bnRfc2VjdGlvbl9oZWFkZXIoQVZUZXh0Rm9ybWF0Q29udGV4dCAqdGZjLCBjb25zdCB2b2lkICpk YXRhKQpAQCAtMjk2LDE5ICszMTAsNyBAQCBzdGF0aWMgdm9pZCBtZXJtYWlkX3ByaW50X3NlY3Rp b25faGVhZGVyKEFWVGV4dEZvcm1hdENvbnRleHQgKnRmYywgY29uc3Qgdm9pZCAqZAogICAgIH0K IAogICAgIGlmIChwYXJlbnRfc2VjdGlvbiAmJiBwYXJlbnRfc2VjdGlvbi0+ZmxhZ3MgJiBBVl9U RVhURk9STUFUX1NFQ1RJT05fRkxBR19JU19TVUJHUkFQSCkgewotCi0gICAgICAgIHN0cnVjdCBz ZWN0aW9uX2RhdGEgcGFyZW50X3NlY19kYXRhID0gbW1jLT5zZWN0aW9uX2RhdGFbdGZjLT5sZXZl bCAtIDFdOwotICAgICAgICBBVkJQcmludCAqcGFyZW50X2J1ZiA9ICZ0ZmMtPnNlY3Rpb25fcGJ1 Zlt0ZmMtPmxldmVsIC0gMV07Ci0KLSAgICAgICAgaWYgKHBhcmVudF9zZWNfZGF0YS5zdWJncmFw aF9zdGFydF9pbmNvbXBsZXRlKSB7Ci0KLSAgICAgICAgICAgIGlmIChwYXJlbnRfYnVmLT5sZW4g PiAwKQotICAgICAgICAgICAgICAgIHdyaXRlcl9wcmludGYodGZjLCAiJXMiLCBwYXJlbnRfYnVm LT5zdHIpOwotCi0gICAgICAgICAgICB3cml0ZXJfcHV0X3N0cih0ZmMsICI8L2Rpdj5cIl1cbiIp OwotCi0gICAgICAgICAgICBtbWMtPnNlY3Rpb25fZGF0YVt0ZmMtPmxldmVsIC0gMV0uc3ViZ3Jh cGhfc3RhcnRfaW5jb21wbGV0ZSA9IDA7Ci0gICAgICAgIH0KKyAgICAgICAgbWVybWFpZF9zdWJn cmFwaF9jb21wbGV0ZV9zdGFydChtbWMsIHRmYywgdGZjLT5sZXZlbCAtIDEpOwogICAgIH0KIAog ICAgIGF2X2ZyZWVwKCZtbWMtPnNlY3Rpb25fZGF0YVt0ZmMtPmxldmVsXS5zZWN0aW9uX2lkKTsK LS0gCjIuNTIuMAoKCkZyb20gMWQ1ZTY1MzQwZjIxNjViNWIyMTQzNjQ2ZmZhYTkwNjQwYWNiMTcw MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXlvc2UgPGF5b3NlY0BnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTU6NDM6NTEgKzAwMDAKU3ViamVjdDogW1BBVENIIDA1 Ny8zMDRdIGZmdG9vbHMvdGZfbWVybWFpZDogY2xvc2Ugc3ViZ3JhcGggaGVhZGVyIHdoZW4gdGhl cmUKIGFyZSBubyBpbnB1dHMuCgpFbnN1cmUgdGhhdCB0aGUgZnJhZ21lbnQgdG8gY2xvc2UgdGhl IGhlYWRlciAoYDwvZGl2PlwiXWApIGlzIHdyaXR0ZW4gd2hlbiB0aGUKZnVuY3Rpb24gYG1lcm1h aWRfcHJpbnRfc2VjdGlvbl9oZWFkZXJgIGlzIGNhbGxlZCBvbmx5IG9uY2UsIHdoaWNoIGhhcHBl bnMgd2hlbgp0aGUgZmlsdGVyZ3JhcGggaGFzIG5vIGlucHV0cy4KLS0tCiBmZnRvb2xzL3RleHRm b3JtYXQvdGZfbWVybWFpZC5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL2ZmdG9vbHMvdGV4dGZvcm1hdC90Zl9tZXJtYWlkLmMgYi9mZnRvb2xz L3RleHRmb3JtYXQvdGZfbWVybWFpZC5jCmluZGV4IGViMjhmZmI2YWIuLmZhZTUzZDljNDAgMTAw NjQ0Ci0tLSBhL2ZmdG9vbHMvdGV4dGZvcm1hdC90Zl9tZXJtYWlkLmMKKysrIGIvZmZ0b29scy90 ZXh0Zm9ybWF0L3RmX21lcm1haWQuYwpAQCAtNDU2LDYgKzQ1Niw4IEBAIHN0YXRpYyB2b2lkIG1l cm1haWRfcHJpbnRfc2VjdGlvbl9mb290ZXIoQVZUZXh0Rm9ybWF0Q29udGV4dCAqdGZjKQogCiAg ICAgfSBlbHNlIGlmICgoc2VjdGlvbi0+ZmxhZ3MgJiBBVl9URVhURk9STUFUX1NFQ1RJT05fRkxB R19JU19TVUJHUkFQSCkpIHsKIAorICAgICAgICBtZXJtYWlkX3N1YmdyYXBoX2NvbXBsZXRlX3N0 YXJ0KG1tYywgdGZjLCB0ZmMtPmxldmVsKTsKKwogICAgICAgICBNTV9JTkRFTlQoKTsKICAgICAg ICAgd3JpdGVyX3B1dF9zdHIodGZjLCAiZW5kXG4iKTsKIAotLSAKMi41Mi4wCgoKRnJvbSA2NzFk ODBmNDI3NDE1ZWYzMGQ2ZjZmOGI2MDc3N2I5Yjk3ZTMwNjU1IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEbWl0cmlpIE92Y2hpbm5pa292IDxvdmNoaW5uaWtvdi5kbWl0cmlpQGdtYWls LmNvbT4KRGF0ZTogVGh1LCAxMyBOb3YgMjAyNSAxNzo0MDoyNiArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMDU4LzMwNF0gYXZ1dGlsL2h3Y29udGV4dF9hbWY6IG1vdmUgQVZNdXRleCB0byBpbnRlcm5h bAogY29udGV4dAoKLS0tCiBkb2MvQVBJY2hhbmdlcyAgICAgICAgICAgIHwgIDMgKysrCiBsaWJh dmNvZGVjL2FtZmVuYy5jICAgICAgIHwgIDYgKysrKy0tCiBsaWJhdnV0aWwvaHdjb250ZXh0X2Ft Zi5jIHwgMzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIGxpYmF2dXRpbC9od2Nv bnRleHRfYW1mLmggfCAgNiArKysrLS0KIGxpYmF2dXRpbC92ZXJzaW9uLmggICAgICAgfCAgMiAr LQogNSBmaWxlcyBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RvYy9BUEljaGFuZ2VzIGIvZG9jL0FQSWNoYW5nZXMKaW5kZXggYmZlYTgzYzcz YS4uOTNjNmY5MjcwNCAxMDA2NDQKLS0tIGEvZG9jL0FQSWNoYW5nZXMKKysrIGIvZG9jL0FQSWNo YW5nZXMKQEAgLTIsNiArMiw5IEBAIFRoZSBsYXN0IHZlcnNpb24gaW5jcmVhc2VzIG9mIGFsbCBs aWJyYXJpZXMgd2VyZSBvbiAyMDI1LTAzLTI4CiAKIEFQSSBjaGFuZ2VzLCBtb3N0IHJlY2VudCBm aXJzdDoKIAorMjAyNS0xMS0xOCAtIHh4eHh4eHh4eHggLSBsYXZ1IDYwLjE5LjEwMCAtIGh3Y29u dGV4dF9hbWYuaAorICBhdnV0aWwvaHdjb250ZXh0X2FtZjogYWRkIGxvY2sgYW5kIHVubG9jayBm b3IgQVZBTUZEZXZpY2VDb250ZXh0LgorCiAyMDI1LTExLTE2IC0geHh4eHh4eHh4eCAtIGxhdnUg NjAuMTguMTAwIC0gY3B1LmgKICAgRGVwcmVjYXRlIEFWX0NQVV9GTEFHX0ZPUkNFIHdpdGhvdXQg cmVwbGFjZW1lbnQuCiAKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYW1mZW5jLmMgYi9saWJhdmNv ZGVjL2FtZmVuYy5jCmluZGV4IDIxNzRjNWJkYjIuLmIwN2RhMjM2YzcgMTAwNjQ0Ci0tLSBhL2xp YmF2Y29kZWMvYW1mZW5jLmMKKysrIGIvbGliYXZjb2RlYy9hbWZlbmMuYwpAQCAtNTY0LDkgKzU2 NCwxMSBAQCBzdGF0aWMgaW50IGFtZl9zdWJtaXRfZnJhbWVfbG9ja2VkKEFWQ29kZWNDb250ZXh0 ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUsIEFNRlN1cgogICAgIEFWSFdEZXZpY2VDb250ZXh0ICAg ICAqaHdfZGV2aWNlX2N0eCA9IChBVkhXRGV2aWNlQ29udGV4dCopY3R4LT5kZXZpY2VfY3R4X3Jl Zi0+ZGF0YTsKICAgICBBVkFNRkRldmljZUNvbnRleHQgICAgKmFtZl9kZXZpY2VfY3R4ID0gKEFW QU1GRGV2aWNlQ29udGV4dCAqKWh3X2RldmljZV9jdHgtPmh3Y3R4OwogCi0gICAgZmZfbXV0ZXhf bG9jaygmYW1mX2RldmljZV9jdHgtPm11dGV4KTsKKyAgICBpZiAoYW1mX2RldmljZV9jdHgtPmxv Y2spCisgICAgICAgIGFtZl9kZXZpY2VfY3R4LT5sb2NrKGFtZl9kZXZpY2VfY3R4LT5sb2NrX2N0 eCk7CiAgICAgcmV0ID0gYW1mX3N1Ym1pdF9mcmFtZShhdmN0eCwgZnJhbWUsIHN1cmZhY2VfcmVz dWJtaXQpOwotICAgIGZmX211dGV4X3VubG9jaygmYW1mX2RldmljZV9jdHgtPm11dGV4KTsKKyAg ICBpZiAoYW1mX2RldmljZV9jdHgtPnVubG9jaykKKyAgICAgICAgYW1mX2RldmljZV9jdHgtPnVu bG9jayhhbWZfZGV2aWNlX2N0eC0+bG9ja19jdHgpOwogCiAgICAgcmV0dXJuIHJldDsKIH0KZGlm ZiAtLWdpdCBhL2xpYmF2dXRpbC9od2NvbnRleHRfYW1mLmMgYi9saWJhdnV0aWwvaHdjb250ZXh0 X2FtZi5jCmluZGV4IGFjZDk2MjdjNjguLmM3NTRkYzRlZTUgMTAwNjQ0Ci0tLSBhL2xpYmF2dXRp bC9od2NvbnRleHRfYW1mLmMKKysrIGIvbGliYXZ1dGlsL2h3Y29udGV4dF9hbWYuYwpAQCAtMzks NiArMzksNyBAQAogI2luY2x1ZGUgInBpeGRlc2MuaCIKICNpbmNsdWRlICJwaXhmbXQuaCIKICNp bmNsdWRlICJpbWd1dGlscy5oIgorI2luY2x1ZGUgInRocmVhZC5oIgogI2luY2x1ZGUgImxpYmF2 dXRpbC9hdmFzc2VydC5oIgogI2luY2x1ZGUgPEFNRi9jb3JlL1N1cmZhY2UuaD4KICNpbmNsdWRl IDxBTUYvY29yZS9UcmFjZS5oPgpAQCAtNDksNiArNTAsMTUgQEAKICNlbmRpZgogI2RlZmluZSBG Rk1QRUdfQU1GX1dSSVRFUl9JRCBMImZmbXBlZ19hbWYiCiAKK3N0YXRpYyB2b2lkIGFtZl9sb2Nr X2RlZmF1bHQodm9pZCAqb3BhcXVlKQoreworICAgIGZmX211dGV4X2xvY2soKEFWTXV0ZXgqKW9w YXF1ZSk7Cit9CisKK3N0YXRpYyB2b2lkIGFtZl91bmxvY2tfZGVmYXVsdCh2b2lkICpvcGFxdWUp Cit7CisgICAgZmZfbXV0ZXhfdW5sb2NrKChBVk11dGV4KilvcGFxdWUpOworfQogCiB0eXBlZGVm IHN0cnVjdCBBbWZUcmFjZVdyaXRlciB7CiAgICAgQU1GVHJhY2VXcml0ZXJWdGJsICp2dGJscDsK QEAgLTM1Miw3ICszNjIsNyBAQCBzdGF0aWMgaW50IGFtZl90cmFuc2Zlcl9kYXRhX2Zyb20oQVZI V0ZyYW1lc0NvbnRleHQgKmN0eCwgQVZGcmFtZSAqZHN0LAogCiBzdGF0aWMgdm9pZCBhbWZfZGV2 aWNlX3VuaW5pdChBVkhXRGV2aWNlQ29udGV4dCAqZGV2aWNlX2N0eCkKIHsKLSAgICBBVkFNRkRl dmljZUNvbnRleHQgICAgICAqYW1mX2N0eCA9IGRldmljZV9jdHgtPmh3Y3R4OworICAgIEFWQU1G RGV2aWNlQ29udGV4dCAqYW1mX2N0eCA9IGRldmljZV9jdHgtPmh3Y3R4OwogICAgIEFNRl9SRVNV TFQgICAgICAgICAgcmVzID0gQU1GX05PVF9JTklUSUFMSVpFRDsKICAgICBBTUZUcmFjZSAgICAg ICAgICAgKnRyYWNlOwogCkBAIC0zNzcsOCArMzg3LDE0IEBAIHN0YXRpYyB2b2lkIGFtZl9kZXZp Y2VfdW5pbml0KEFWSFdEZXZpY2VDb250ZXh0ICpkZXZpY2VfY3R4KQogICAgICAgICBhbWZfd3Jp dGVyX2ZyZWUoYW1mX2N0eC0+dHJhY2Vfd3JpdGVyKTsKICAgICB9CiAKKyAgICBpZiAoYW1mX2N0 eC0+bG9ja19jdHggPT0gYW1mX2xvY2tfZGVmYXVsdCkgeworICAgICAgICBmZl9tdXRleF9kZXN0 cm95KChBVk11dGV4KilhbWZfY3R4LT5sb2NrX2N0eCk7CisgICAgICAgIGF2X2ZyZWVwKCZhbWZf Y3R4LT5sb2NrX2N0eCk7CisgICAgICAgIGFtZl9jdHgtPmxvY2sgPSBOVUxMOworICAgICAgICBh bWZfY3R4LT51bmxvY2sgPSBOVUxMOworICAgIH0KKwogICAgIGFtZl9jdHgtPnZlcnNpb24gPSAw OwotICAgIGZmX211dGV4X2Rlc3Ryb3koJmFtZl9jdHgtPm11dGV4KTsKIH0KIAogc3RhdGljIGlu dCBhbWZfZGV2aWNlX2luaXQoQVZIV0RldmljZUNvbnRleHQgKmN0eCkKQEAgLTM4Nyw2ICs0MDMs MTYgQEAgc3RhdGljIGludCBhbWZfZGV2aWNlX2luaXQoQVZIV0RldmljZUNvbnRleHQgKmN0eCkK ICAgICBBTUZDb250ZXh0MSAqY29udGV4dDEgPSBOVUxMOwogICAgIEFNRl9SRVNVTFQgcmVzOwog CisgICAgaWYgKCFhbWZfY3R4LT5sb2NrKSB7CisgICAgICAgIGFtZl9jdHgtPmxvY2tfY3R4ID0g YXZfbWFsbG9jeihzaXplb2YoQVZNdXRleCkpOworICAgICAgICBpZiAoIWFtZl9jdHgtPmxvY2tf Y3R4KSB7CisgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOworICAgICAgICB9Cisg ICAgICAgIGZmX211dGV4X2luaXQoKEFWTXV0ZXgqKWFtZl9jdHgtPmxvY2tfY3R4LCBOVUxMKTsK KyAgICAgICAgYW1mX2N0eC0+bG9jayAgID0gYW1mX2xvY2tfZGVmYXVsdDsKKyAgICAgICAgYW1m X2N0eC0+dW5sb2NrID0gYW1mX3VubG9ja19kZWZhdWx0OworICAgIH0KKwogI2lmZGVmIF9XSU4z MgogICAgIHJlcyA9IGFtZl9jdHgtPmNvbnRleHQtPnBWdGJsLT5Jbml0RFgxMShhbWZfY3R4LT5j b250ZXh0LCBOVUxMLCBBTUZfRFgxMV8xKTsKICAgICBpZiAocmVzID09IEFNRl9PSyB8fCByZXMg PT0gQU1GX0FMUkVBRFlfSU5JVElBTElaRUQpIHsKQEAgLTQxNSw3ICs0NDEsNyBAQCBzdGF0aWMg aW50IGFtZl9kZXZpY2VfaW5pdChBVkhXRGV2aWNlQ29udGV4dCAqY3R4KQogICAgICAgICB9CiAg ICAgIH0KICNlbmRpZgotICAgIGZmX211dGV4X2luaXQoJmFtZl9jdHgtPm11dGV4LCBOVUxMKTsK KwogICAgIHJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9saWJhdnV0aWwvaHdjb250ZXh0X2Ft Zi5oIGIvbGliYXZ1dGlsL2h3Y29udGV4dF9hbWYuaAppbmRleCA1YjcyNmUzYjllLi42ZjJjYWJj ODc4IDEwMDY0NAotLS0gYS9saWJhdnV0aWwvaHdjb250ZXh0X2FtZi5oCisrKyBiL2xpYmF2dXRp bC9od2NvbnRleHRfYW1mLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlIDxBTUYvY29yZS9D b250ZXh0Lmg+CiAjaW5jbHVkZSA8QU1GL2NvcmUvVHJhY2UuaD4KICNpbmNsdWRlIDxBTUYvY29y ZS9EZWJ1Zy5oPgotI2luY2x1ZGUgInRocmVhZC5oIgogCiAvKioKICAqIFRoaXMgc3RydWN0IGlz IGFsbG9jYXRlZCBhcyBBVkhXRGV2aWNlQ29udGV4dC5od2N0eApAQCAtMzksNyArMzgsMTAgQEAg dHlwZWRlZiBzdHJ1Y3QgQVZBTUZEZXZpY2VDb250ZXh0IHsKICAgICBpbnQ2NF90ICAgICAgICAg ICAgIHZlcnNpb247IC8vLzwgdmVyc2lvbiBvZiBBTUYgcnVudGltZQogICAgIEFNRkNvbnRleHQg ICAgICAgICAqY29udGV4dDsKICAgICBBTUZfTUVNT1JZX1RZUEUgICAgIG1lbW9yeV90eXBlOwot CUFWTXV0ZXggICAgICAgICAgICAgbXV0ZXg7CisKKyAgICB2b2lkICgqbG9jaykodm9pZCAqbG9j a19jdHgpOworICAgIHZvaWQgKCp1bmxvY2spKHZvaWQgKmxvY2tfY3R4KTsKKyAgICB2b2lkICps b2NrX2N0eDsKIH0gQVZBTUZEZXZpY2VDb250ZXh0OwogCiBlbnVtIEFNRl9TVVJGQUNFX0ZPUk1B VCBhdl9hdl90b19hbWZfZm9ybWF0KGVudW0gQVZQaXhlbEZvcm1hdCBmbXQpOwpkaWZmIC0tZ2l0 IGEvbGliYXZ1dGlsL3ZlcnNpb24uaCBiL2xpYmF2dXRpbC92ZXJzaW9uLmgKaW5kZXggZDEzODVh ODgyOS4uZGIyNTBkNWM5ZSAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL3ZlcnNpb24uaAorKysgYi9s aWJhdnV0aWwvdmVyc2lvbi5oCkBAIC03OSw3ICs3OSw3IEBACiAgKi8KIAogI2RlZmluZSBMSUJB VlVUSUxfVkVSU0lPTl9NQUpPUiAgNjAKLSNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fTUlOT1Ig IDE4CisjZGVmaW5lIExJQkFWVVRJTF9WRVJTSU9OX01JTk9SICAxOQogI2RlZmluZSBMSUJBVlVU SUxfVkVSU0lPTl9NSUNSTyAxMDAKIAogI2RlZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9JTlQgICBB Vl9WRVJTSU9OX0lOVChMSUJBVlVUSUxfVkVSU0lPTl9NQUpPUiwgXAotLSAKMi41Mi4wCgoKRnJv bSAxNWViMzc3MGZjNzVkMWE1MGM3OGEyMzBjNWQyZmRiNWFiMzRkNzlmIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TWFydGluPTIwU3RvcnNqPUMzPUI2Pz0gPG1hcnRp bkBtYXJ0aW4uc3Q+CkRhdGU6IFR1ZSwgMTggTm92IDIwMjUgMTI6MTM6MzcgKzAyMDAKU3ViamVj dDogW1BBVENIIDA1OS8zMDRdIHRvb2xzOiBNYWtlIGluZGVudF9hcm1fYXNzZW1ibHkucGwgYWJs ZSB0byByZWZvcm1hdCBhCiBmaWxlIGluIHBsYWNlCgpUaGlzIGFsbG93cyB1c2luZyB0aGUgdG9v bCBmb3Igb25lLW9mZiByZWluZGVudGF0aW9ucyB3aXRob3V0IG5lZWRpbmcKdGhlIGNoZWNrX2Fy bV9pbmRlbnQuc2ggc2NyaXB0IChlLmcuIGZvciB1c2Ugb3V0c2lkZSBvZiBmZm1wZWcpLAp3aXRo b3V0IGhhdmluZyB0byBwaXBlIHRoZSBmaWxlIHRocm91Z2ggc3RkaW4vc3Rkb3V0LgotLS0KIHRv b2xzL2luZGVudF9hcm1fYXNzZW1ibHkucGwgfCA0OCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2luZGVudF9hcm1fYXNzZW1ibHkucGwgYi90b29scy9p bmRlbnRfYXJtX2Fzc2VtYmx5LnBsCmluZGV4IDdkNWQxZWNlZjIuLjM1OWMyYmNmNGYgMTAwNzU1 Ci0tLSBhL3Rvb2xzL2luZGVudF9hcm1fYXNzZW1ibHkucGwKKysrIGIvdG9vbHMvaW5kZW50X2Fy bV9hc3NlbWJseS5wbApAQCAtMzIsOCArMzIsMTEgQEAKICMgLSBPcHRpb25hbGx5IGFsaWduIG9w ZXJhbmQgY29sdW1ucyB2ZXJ0aWNhbGx5IGFjY29yZGluZyB0byB0aGVpcgogIyAgIG1heGltdW0g d2lkdGggKGFjY29tbW9kYXRpbmcgZm9yIGUuZy4geDAgdnMgeDEwLCBvciB2MC44YiB2cyB2MTYu MTZiKS4KICMKLSMgVGhlIGlucHV0IGNvZGUgaXMgcGFzc2VkIHRvIHN0ZGluLCBhbmQgdGhlIHJl Zm9ybWF0dGVkIGNvZGUgaXMgd3JpdHRlbgotIyBvbiBzdGRvdXQuCisjIFRoZSBzY3JpcHQgY2Fu IGJlIGV4ZWN1dGVkIGFzICJpbmRlbnRfYXJtX2Fzc2VtYmx5LnBsIGZpbGUgW291dGZpbGVdIi4K KyMgSWYgbm8gb3V0ZmlsZSBpcyBzcGVjaWZpZWQsIHRoZSBnaXZlbiBmaWxlIGlzIG92ZXJ3cml0 dGVuIGluIHBsYWNlLgorIworIyBBbHRlcm5hdGl2ZWx5LCB0aGUgaWYgbm8gZmlsZSBwYXJhbWV0 ZXJzIGFyZSBnaXZlbiwgdGhlIHNjcmlwdCByZWFkcyBpbnB1dAorIyBjb2RlIG9uIHN0ZGluLCBh bmQgb3V0cHV0cyB0aGUgcmVmb3JtYXR0ZWQgY29kZSBvbiBzdGRvdXQuCiAKIHVzZSBzdHJpY3Q7 CiAKQEAgLTQxLDYgKzQ0LDggQEAgbXkgJGluZGVudF9vcGVyYW5kcyA9IDA7CiBteSAkaW5zdHJf aW5kZW50ID0gODsKIG15ICRvcGVyYW5kX2luZGVudCA9IDI0OwogbXkgJG1hdGNoX2luZGVudCA9 IDA7CitteSAkZmlsZTsKK215ICRvdXRmaWxlOwogCiB3aGlsZSAoQEFSR1YpIHsKICAgICBteSAk b3B0ID0gc2hpZnQ7CkBAIC01NCw3ICs1OSwxMyBAQCB3aGlsZSAoQEFSR1YpIHsKICAgICB9IGVs c2lmICgkb3B0IGVxICItbWF0Y2gtaW5kZW50IikgewogICAgICAgICAkbWF0Y2hfaW5kZW50ID0g MTsKICAgICB9IGVsc2UgewotICAgICAgICBkaWUgIlVucmVjb2duaXplZCBwYXJhbWV0ZXIgJG9w dFxuIjsKKyAgICAgICAgaWYgKCEkZmlsZSkgeworICAgICAgICAgICAgJGZpbGUgPSAkb3B0Owor ICAgICAgICB9IGVsc2lmICghJG91dGZpbGUpIHsKKyAgICAgICAgICAgICRvdXRmaWxlID0gJG9w dDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRpZSAiVW5yZWNvZ25pemVkIHBhcmFt ZXRlciAkb3B0XG4iOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0xMzAsNyArMTQxLDI2IEBA IHN1YiBjb2x1bW5zIHsKICAgICByZXR1cm4gaW5kZW50Y29sdW1ucygkcmVzdCwgMyk7CiB9CiAK LXdoaWxlICg8U1RESU4+KSB7CitteSAkaW47CitteSAkb3V0OworbXkgJHRlbXBmaWxlOworCitp ZiAoJGZpbGUpIHsKKyAgICBvcGVuKElOUFVULCAiJGZpbGUiKSBvciBkaWUgIlVuYWJsZSB0byBv cGVuICRmaWxlOiAkISI7CisgICAgJGluID0gKklOUFVUOworICAgIGlmICgkb3V0ZmlsZSkgewor ICAgICAgICBvcGVuKE9VVFBVVCwgIj4kb3V0ZmlsZSIpIG9yIGRpZSAiVW5hYmxlIHRvIG9wZW4g JG91dGZpbGU6ICQhIjsKKyAgICB9IGVsc2UgeworICAgICAgICAkdGVtcGZpbGUgPSAiJGZpbGUu dG1wIjsKKyAgICAgICAgb3BlbihPVVRQVVQsICI+JHRlbXBmaWxlIikgb3IgZGllICJVbmFibGUg dG8gb3BlbiAkdGVtcGZpbGU6ICQhIjsKKyAgICB9CisgICAgJG91dCA9ICpPVVRQVVQ7Cit9IGVs c2UgeworICAgICRpbiA9ICpTVERJTjsKKyAgICAkb3V0ID0gKlNURE9VVDsKK30KKword2hpbGUg KDwkaW4+KSB7CiAgICAgIyBUcmltIG9mZiB0cmFpbGluZyB3aGl0ZXNwYWNlLgogICAgIGNob21w OwogICAgIGlmICgvXihbXC5cd1xkXSs6KT8oXHMrKShbXHdcXF1bXHdcXFwuXSopKD86KFxzKyko LiopfCQpLykgewpAQCAtMjAxLDUgKzIzMSwxMyBAQCB3aGlsZSAoPFNURElOPikgewogICAgICAg ICAgICAgJF8gPSAkbGFiZWwgLiAkaW5kZW50IC4gJGluc3RyIC4gJG9wZXJhbmRfc3BhY2UgLiAk cmVzdDsKICAgICAgICAgfQogICAgIH0KLSAgICBwcmludCAkXyAuICJcbiI7CisgICAgcHJpbnQg JG91dCAkXyAuICJcbiI7Cit9CisKK2lmICgkZmlsZSkgeworICAgIGNsb3NlKElOUFVUKTsKKyAg ICBjbG9zZShPVVRQVVQpOworfQoraWYgKCR0ZW1wZmlsZSkgeworICAgIHJlbmFtZSgkdGVtcGZp bGUsICRmaWxlKTsKIH0KLS0gCjIuNTIuMAoKCkZyb20gYjQ0ZDk4NjYxMzU0MjhhOTgwZTE2N2Uy MzgzNTFjMDA5ODY5ZDJhZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR2VvcmdpaSBa YWdvcnVpa28gPGdlb3JnZS56YWd1cmlAZ21haWwuY29tPgpEYXRlOiBNb24sIDI0IE5vdiAyMDI1 IDE5OjUxOjI2ICswMDAwClN1YmplY3Q6IFtQQVRDSCAwNjAvMzA0XSBhYXJjaDY0L3Z2YzogT3B0 aW1pc2F0aW9ucyBvZiBwdXRfbHVtYV9oKCkgZnVuY3Rpb25zCiBmb3IgMTAvMTItYml0CgpSUGk0 IChhdXRvLXZlY3RvcmlzYXRpb24gaXMgdHVybmVkIG9uKQpwdXRfbHVtYV9oXzEwXzR4NF9jOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjgyLjggKCAxLjAweCkKcHV0X2x1bWFf aF8xMF84eDhfYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTA2OS41ICggMS4w MHgpCnB1dF9sdW1hX2hfMTBfOHg4X25lb246ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAyMDcuNSAoIDUuMTV4KQpwdXRfbHVtYV9oXzEwXzE2eDE2X2M6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAxOTk5LjYgKCAxLjAweCkKcHV0X2x1bWFfaF8xMF8xNngxNl9uZW9uOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc3Ny41ICggMi41N3gpCnB1dF9sdW1hX2hfMTBf MzJ4MzJfYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY2MTIuOSAoIDEuMDB4KQpw dXRfbHVtYV9oXzEwXzMyeDMyX25lb246ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMjAx LjYgKCAyLjA3eCkKcHV0X2x1bWFfaF8xMF82NHg2NF9jOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAyNTA1OS4wICggMS4wMHgpCnB1dF9sdW1hX2hfMTBfNjR4NjRfbmVvbjogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMTM2MjMuNSAoIDEuODR4KQpwdXRfbHVtYV9oXzEwXzEyOHgx MjhfYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkxMzEwLjEgKCAxLjAweCkKcHV0X2x1 bWFfaF8xMF8xMjh4MTI4X25lb246ICAgICAgICAgICAgICAgICAgICAgICAgICA1MDM1OC4zICgg MS44MXgpCnB1dF9sdW1hX2hfMTJfNHg0X2M6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAyODIuMSAoIDEuMDB4KQpwdXRfbHVtYV9oXzEyXzh4OF9jOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAxMDY4LjQgKCAxLjAweCkKcHV0X2x1bWFfaF8xMl84eDhfbmVvbjog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwNy43ICggNS4xNHgpCnB1dF9sdW1hX2hf MTJfMTZ4MTZfYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE5OTguMCAoIDEuMDB4 KQpwdXRfbHVtYV9oXzEyXzE2eDE2X25lb246ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Nzc3LjUgKCAyLjU3eCkKcHV0X2x1bWFfaF8xMl8zMngzMl9jOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgNjYxMi4wICggMS4wMHgpCnB1dF9sdW1hX2hfMTJfMzJ4MzJfbmVvbjogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDMyMDEuNiAoIDIuMDd4KQpwdXRfbHVtYV9oXzEyXzY0 eDY0X2M6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1MDM2LjggKCAxLjAweCkKcHV0 X2x1bWFfaF8xMl82NHg2NF9uZW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMzU5NS4x ICggMS44NHgpCnB1dF9sdW1hX2hfMTJfMTI4eDEyOF9jOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOTEzMDUuOCAoIDEuMDB4KQpwdXRfbHVtYV9oXzEyXzEyOHgxMjhfbmVvbjogICAgICAg ICAgICAgICAgICAgICAgICAgIDUwMzU5LjcgKCAxLjgxeCkKCkFwcGxlIE0yIEFpciAoYXV0by12 ZWN0b3Jpc2F0aW9uIGlzIHR1cm5lZCBvbikKcHV0X2x1bWFfaF8xMF80eDRfYzogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zICggMS4wMHgpCnB1dF9sdW1hX2hfMTBfOHg4 X2M6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMCAoIDEuMDB4KQpwdXRf bHVtYV9oXzEwXzh4OF9uZW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjQg KCAyLjU5eCkKcHV0X2x1bWFfaF8xMF8xNngxNl9jOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMi45ICggMS4wMHgpCnB1dF9sdW1hX2hfMTBfMTZ4MTZfbmVvbjogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDEuNCAoIDIuMDF4KQpwdXRfbHVtYV9oXzEwXzMyeDMyX2M6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjQgKCAxLjAweCkKcHV0X2x1bWFf aF8xMF8zMngzMl9uZW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS44ICggMS42 MngpCnB1dF9sdW1hX2hfMTBfNjR4NjRfYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMzUuNiAoIDEuMDB4KQpwdXRfbHVtYV9oXzEwXzY0eDY0X25lb246ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDIzLjYgKCAxLjUxeCkKcHV0X2x1bWFfaF8xMF8xMjh4MTI4X2M6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzMS4xICggMS4wMHgpCnB1dF9sdW1hX2hfMTBf MTI4eDEyOF9uZW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTIuNiAoIDEuNDJ4KQpw dXRfbHVtYV9oXzEyXzR4NF9jOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw LjMgKCAxLjAweCkKcHV0X2x1bWFfaF8xMl84eDhfYzogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMS4wICggMS4wMHgpCnB1dF9sdW1hX2hfMTJfOHg4X25lb246ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDAuNCAoIDIuNTh4KQpwdXRfbHVtYV9oXzEyXzE2eDE2 X2M6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjkgKCAxLjAweCkKcHV0X2x1 bWFfaF8xMl8xNngxNl9uZW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS40ICgg Mi4wMHgpCnB1dF9sdW1hX2hfMTJfMzJ4MzJfYzogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDkuNCAoIDEuMDB4KQpwdXRfbHVtYV9oXzEyXzMyeDMyX25lb246ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA1LjggKCAxLjYxeCkKcHV0X2x1bWFfaF8xMl82NHg2NF9jOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNS4zICggMS4wMHgpCnB1dF9sdW1hX2hf MTJfNjR4NjRfbmVvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMuMyAoIDEuNTJ4 KQpwdXRfbHVtYV9oXzEyXzEyOHgxMjhfYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MTMxLjIgKCAxLjAweCkKcHV0X2x1bWFfaF8xMl8xMjh4MTI4X25lb246ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA5Mi40ICggMS40MngpCi0tLQogbGliYXZjb2RlYy9hYXJjaDY0L3Z2Yy9k c3BfaW5pdC5jIHwgIDIyICsrKysrKwogbGliYXZjb2RlYy9hYXJjaDY0L3Z2Yy9pbnRlci5TICAg IHwgMTE5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAx NDEgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYWFyY2g2NC92dmMvZHNw X2luaXQuYyBiL2xpYmF2Y29kZWMvYWFyY2g2NC92dmMvZHNwX2luaXQuYwppbmRleCBiN2RjMWQ4 OWY4Li5hYTc1ZDIyYjc4IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2FhcmNoNjQvdnZjL2RzcF9p bml0LmMKKysrIGIvbGliYXZjb2RlYy9hYXJjaDY0L3Z2Yy9kc3BfaW5pdC5jCkBAIC0zMCw2ICsz MCwxOCBAQAogI2RlZmluZSBCRE9GX0JMT0NLX1NJWkUgICAgICAgICAxNgogI2RlZmluZSBCRE9G X01JTl9CTE9DS19TSVpFICAgICA0CiAKK3ZvaWQgZmZfdnZjX3B1dF9sdW1hX2g4XzEwX25lb24o aW50MTZfdCAqZHN0LCBjb25zdCB1aW50OF90ICpfc3JjLCBjb25zdCBwdHJkaWZmX3QgX3NyY19z dHJpZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCBoZWlnaHQs IGNvbnN0IGludDhfdCAqaGYsIGNvbnN0IGludDhfdCAqdmYsIGNvbnN0IGludCB3aWR0aCk7Cit2 b2lkIGZmX3Z2Y19wdXRfbHVtYV9oMTZfMTBfbmVvbihpbnQxNl90ICpkc3QsIGNvbnN0IHVpbnQ4 X3QgKl9zcmMsIGNvbnN0IHB0cmRpZmZfdCBfc3JjX3N0cmlkZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGludCBoZWlnaHQsIGNvbnN0IGludDhfdCAqaGYsIGNvbnN0 IGludDhfdCAqdmYsIGNvbnN0IGludCB3aWR0aCk7Cit2b2lkIGZmX3Z2Y19wdXRfbHVtYV9oX3gx Nl8xMF9uZW9uKGludDE2X3QgKmRzdCwgY29uc3QgdWludDhfdCAqX3NyYywgY29uc3QgcHRyZGlm Zl90IF9zcmNfc3RyaWRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBpbnQgaGVpZ2h0LCBjb25zdCBpbnQ4X3QgKmhmLCBjb25zdCBpbnQ4X3QgKnZmLCBjb25zdCBp bnQgd2lkdGgpOwordm9pZCBmZl92dmNfcHV0X2x1bWFfaDhfMTJfbmVvbihpbnQxNl90ICpkc3Qs IGNvbnN0IHVpbnQ4X3QgKl9zcmMsIGNvbnN0IHB0cmRpZmZfdCBfc3JjX3N0cmlkZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50IGhlaWdodCwgY29uc3QgaW50OF90 ICpoZiwgY29uc3QgaW50OF90ICp2ZiwgY29uc3QgaW50IHdpZHRoKTsKK3ZvaWQgZmZfdnZjX3B1 dF9sdW1hX2gxNl8xMl9uZW9uKGludDE2X3QgKmRzdCwgY29uc3QgdWludDhfdCAqX3NyYywgY29u c3QgcHRyZGlmZl90IF9zcmNfc3RyaWRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgaW50IGhlaWdodCwgY29uc3QgaW50OF90ICpoZiwgY29uc3QgaW50OF90ICp2Ziwg Y29uc3QgaW50IHdpZHRoKTsKK3ZvaWQgZmZfdnZjX3B1dF9sdW1hX2hfeDE2XzEyX25lb24oaW50 MTZfdCAqZHN0LCBjb25zdCB1aW50OF90ICpfc3JjLCBjb25zdCBwdHJkaWZmX3QgX3NyY19zdHJp ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCBoZWlnaHQs IGNvbnN0IGludDhfdCAqaGYsIGNvbnN0IGludDhfdCAqdmYsIGNvbnN0IGludCB3aWR0aCk7CiAK IHZvaWQgZmZfYWxmX2NsYXNzaWZ5X3N1bV9uZW9uKGludCAqc3VtMCwgaW50ICpzdW0xLCBpbnQx Nl90ICpncmFkLCB1aW50MzJfdCBnc2hpZnQsIHVpbnQzMl90IHN0ZXBzKTsKIApAQCAtMjQ1LDYg KzI1NywxMSBAQCB2b2lkIGZmX3Z2Y19kc3BfaW5pdF9hYXJjaDY0KFZWQ0RTUENvbnRleHQgKmNv bnN0IGMsIGNvbnN0IGludCBiZCkKICAgICAgICAgYy0+aW50ZXIuZG12clswXVsxXSA9IGZmX3Z2 Y19kbXZyX2hfMTBfbmVvbjsKICAgICAgICAgYy0+aW50ZXIuZG12clsxXVsxXSA9IGZmX3Z2Y19k bXZyX2h2XzEwX25lb247CiAgICAgICAgIGMtPmludGVyLmFwcGx5X2Jkb2YgPSBmZl92dmNfYXBw bHlfYmRvZl8xMF9uZW9uOworICAgICAgICBjLT5pbnRlci5wdXRbMF1bMl1bMF1bMV0gPSBmZl92 dmNfcHV0X2x1bWFfaDhfMTBfbmVvbjsKKyAgICAgICAgYy0+aW50ZXIucHV0WzBdWzNdWzBdWzFd ID0gZmZfdnZjX3B1dF9sdW1hX2gxNl8xMF9uZW9uOworICAgICAgICBjLT5pbnRlci5wdXRbMF1b NF1bMF1bMV0gPQorICAgICAgICBjLT5pbnRlci5wdXRbMF1bNV1bMF1bMV0gPQorICAgICAgICBj LT5pbnRlci5wdXRbMF1bNl1bMF1bMV0gPSBmZl92dmNfcHV0X2x1bWFfaF94MTZfMTBfbmVvbjsK IAogICAgICAgICBjLT5hbGYuZmlsdGVyW0xVTUFdID0gYWxmX2ZpbHRlcl9sdW1hXzEwX25lb247 CiAgICAgICAgIGMtPmFsZi5maWx0ZXJbQ0hST01BXSA9IGFsZl9maWx0ZXJfY2hyb21hXzEwX25l b247CkBAIC0yNTYsNiArMjczLDExIEBAIHZvaWQgZmZfdnZjX2RzcF9pbml0X2FhcmNoNjQoVlZD RFNQQ29udGV4dCAqY29uc3QgYywgY29uc3QgaW50IGJkKQogICAgICAgICBjLT5pbnRlci5kbXZy WzBdWzFdID0gZmZfdnZjX2RtdnJfaF8xMl9uZW9uOwogICAgICAgICBjLT5pbnRlci5kbXZyWzFd WzFdID0gZmZfdnZjX2RtdnJfaHZfMTJfbmVvbjsKICAgICAgICAgYy0+aW50ZXIuYXBwbHlfYmRv ZiA9IGZmX3Z2Y19hcHBseV9iZG9mXzEyX25lb247CisgICAgICAgIGMtPmludGVyLnB1dFswXVsy XVswXVsxXSA9IGZmX3Z2Y19wdXRfbHVtYV9oOF8xMl9uZW9uOworICAgICAgICBjLT5pbnRlci5w dXRbMF1bM11bMF1bMV0gPSBmZl92dmNfcHV0X2x1bWFfaDE2XzEyX25lb247CisgICAgICAgIGMt PmludGVyLnB1dFswXVs0XVswXVsxXSA9CisgICAgICAgIGMtPmludGVyLnB1dFswXVs1XVswXVsx XSA9CisgICAgICAgIGMtPmludGVyLnB1dFswXVs2XVswXVsxXSA9IGZmX3Z2Y19wdXRfbHVtYV9o X3gxNl8xMl9uZW9uOwogCiAgICAgICAgIGMtPmFsZi5maWx0ZXJbTFVNQV0gPSBhbGZfZmlsdGVy X2x1bWFfMTJfbmVvbjsKICAgICAgICAgYy0+YWxmLmZpbHRlcltDSFJPTUFdID0gYWxmX2ZpbHRl cl9jaHJvbWFfMTJfbmVvbjsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYWFyY2g2NC92dmMvaW50 ZXIuUyBiL2xpYmF2Y29kZWMvYWFyY2g2NC92dmMvaW50ZXIuUwppbmRleCBhODc0ZWRmODg5Li40 MTQ0NGVjNDRjIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2FhcmNoNjQvdnZjL2ludGVyLlMKKysr IGIvbGliYXZjb2RlYy9hYXJjaDY0L3Z2Yy9pbnRlci5TCkBAIC0xNzEzLDMgKzE3MTMsMTIyIEBA IGVuZGZ1bmMKICN1bmRlZiBHUkFESUVOVF9WMV9PRkZTRVQKICN1bmRlZiBWWF9PRkZTRVQKICN1 bmRlZiBWWV9PRkZTRVQKKworI2RlZmluZSBWVkNfTUFYX1BCX1NJWkUgMTI4CisKKy5tYWNybyBw dXRfbHVtYV9oX3g4X3ZlY3Rvcl9maWx0ZXIgc2hpZnQKKyAgICAgICAgLy8gOCBieXRlcyBmcm9t IGhmIGxvYWRlZCB0byB2MC44aAorICAgICAgICAvLyAzMiBieXRlcyBmcm9tIF9zcmMgbG9hZGVk IHRvIHYyMC44aCAmIHYyMS44aCB3aGVyZSB2MjEuOGggaXMgbG9hZGVkIGZvciBzaGlmdCB0byB2 MS44aCwuLix2Ni44aCx2MTcuOGgKKyAgICAgICAgLy8gdjI0LjRoICYgdjI1LjRoIGFyZSBvdXRw dXQgdmVjdG9ycyB0byBzdG9yZQorICAgICAgICBleHQgICAgICAgICAgICAgdjEuMTZiLCB2MjAu MTZiLCB2MjEuMTZiLCAjMgorICAgICAgICBleHQgICAgICAgICAgICAgdjIuMTZiLCB2MjAuMTZi LCB2MjEuMTZiLCAjNAorICAgICAgICBleHQgICAgICAgICAgICAgdjMuMTZiLCB2MjAuMTZiLCB2 MjEuMTZiLCAjNgorICAgICAgICBleHQgICAgICAgICAgICAgdjQuMTZiLCB2MjAuMTZiLCB2MjEu MTZiLCAjOAorICAgICAgICBleHQgICAgICAgICAgICAgdjUuMTZiLCB2MjAuMTZiLCB2MjEuMTZi LCAjMTAKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHY2LjE2YiwgdjIwLjE2YiwgdjIxLjE2Yiwg IzEyCisgICAgICAgIGV4dCAgICAgICAgICAgICB2MTcuMTZiLCB2MjAuMTZiLCB2MjEuMTZiLCAj MTQKKyAgICAgICAgc211bGwgICAgICAgICAgIHYyNC40cywgdjIwLjRoLCB2MC5oWzBdCisgICAg ICAgIHNtdWxsMiAgICAgICAgICB2MjUuNHMsIHYyMC44aCwgdjAuaFswXQorICAgICAgICBzbWxh bCAgICAgICAgICAgdjI0LjRzLCB2MS40aCwgdjAuaFsxXQorICAgICAgICBzbWxhbDIgICAgICAg ICAgdjI1LjRzLCB2MS44aCwgdjAuaFsxXQorICAgICAgICBzbWxhbCAgICAgICAgICAgdjI0LjRz LCB2Mi40aCwgdjAuaFsyXQorICAgICAgICBzbWxhbDIgICAgICAgICAgdjI1LjRzLCB2Mi44aCwg djAuaFsyXQorICAgICAgICBzbWxhbCAgICAgICAgICAgdjI0LjRzLCB2My40aCwgdjAuaFszXQor ICAgICAgICBzbWxhbDIgICAgICAgICAgdjI1LjRzLCB2My44aCwgdjAuaFszXQorICAgICAgICBz bWxhbCAgICAgICAgICAgdjI0LjRzLCB2NC40aCwgdjAuaFs0XQorICAgICAgICBzbWxhbDIgICAg ICAgICAgdjI1LjRzLCB2NC44aCwgdjAuaFs0XQorICAgICAgICBzbWxhbCAgICAgICAgICAgdjI0 LjRzLCB2NS40aCwgdjAuaFs1XQorICAgICAgICBzbWxhbDIgICAgICAgICAgdjI1LjRzLCB2NS44 aCwgdjAuaFs1XQorICAgICAgICBzbWxhbCAgICAgICAgICAgdjI0LjRzLCB2Ni40aCwgdjAuaFs2 XQorICAgICAgICBzbWxhbDIgICAgICAgICAgdjI1LjRzLCB2Ni44aCwgdjAuaFs2XQorICAgICAg ICBzbWxhbCAgICAgICAgICAgdjI0LjRzLCB2MTcuNGgsIHYwLmhbN10KKyAgICAgICAgc21sYWwy ICAgICAgICAgIHYyNS40cywgdjE3LjhoLCB2MC5oWzddCisgICAgICAgIHNxc2hybiAgICAgICAg ICB2MjQuNGgsIHYyNC40cywgIyhcc2hpZnQpCisgICAgICAgIHNxc2hybiAgICAgICAgICB2MjUu NGgsIHYyNS40cywgIyhcc2hpZnQpCisuZW5kbQorCisubWFjcm8gcHV0X2x1bWFfaDhfeHhfbmVv biBzaGlmdAorICAgICAgICBtb3YgICAgICAgICAgICAgeDksICMoVlZDX01BWF9QQl9TSVpFICog MikKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MC44Yn0sIFt4NF0KKyAgICAgICAgc3ViICAg ICAgICAgICAgIHgxLCB4MSwgIzYKKyAgICAgICAgc3h0bCAgICAgICAgICAgIHYwLjhoLCB2MC44 YgorMToKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MjAuOGgsIHYyMS44aH0sIFt4MV0sIHgy CisgICAgICAgIHB1dF9sdW1hX2hfeDhfdmVjdG9yX2ZpbHRlciBcc2hpZnQKKyAgICAgICAgc3Vi cyAgICAgICAgICAgIHczLCB3MywgIzEKKyAgICAgICAgc3QxICAgICAgICAgICAgIHt2MjQuNGgs IHYyNS40aH0sIFt4MF0sIHg5CisgICAgICAgIGIuZ3QgICAgICAgICAgICAxYgorICAgICAgICBy ZXQKKy5lbmRtCisKKy5tYWNybyBwdXRfbHVtYV9oMTZfeHhfbmVvbiBzaGlmdAorICAgICAgICBt b3YgICAgICAgICAgICAgeDksICMoVlZDX01BWF9QQl9TSVpFICogMikKKyAgICAgICAgbGQxICAg ICAgICAgICAgIHt2MC44Yn0sIFt4NF0KKyAgICAgICAgc3ViICAgICAgICAgICAgIHg5LCB4OSwg IzE2CisgICAgICAgIHN1YiAgICAgICAgICAgICB4MSwgeDEsICM2CisgICAgICAgIHN4dGwgICAg ICAgICAgICB2MC44aCwgdjAuOGIKKzE6CisgICAgICAgIGxkMSAgICAgICAgICAgICB7djIwLjho LCB2MjEuOGgsIHYyMi44aH0sIFt4MV0sIHgyCisgICAgICAgIHB1dF9sdW1hX2hfeDhfdmVjdG9y X2ZpbHRlciBcc2hpZnQKKyAgICAgICAgbW92ICAgICAgICAgICAgIHYyMC4xNmIsIHYyMS4xNmIK KyAgICAgICAgbW92ICAgICAgICAgICAgIHYyMS4xNmIsIHYyMi4xNmIKKyAgICAgICAgc3QxICAg ICAgICAgICAgIHt2MjQuNGgsIHYyNS40aH0sIFt4MF0sICMxNgorICAgICAgICBwdXRfbHVtYV9o X3g4X3ZlY3Rvcl9maWx0ZXIgXHNoaWZ0CisgICAgICAgIHN1YnMgICAgICAgICAgICB3MywgdzMs ICMxCisgICAgICAgIHN0MSAgICAgICAgICAgICB7djI0LjRoLCB2MjUuNGh9LCBbeDBdLCB4OQor ICAgICAgICBiLmd0ICAgICAgICAgICAgMWIKKyAgICAgICAgcmV0CisuZW5kbQorCisubWFjcm8g cHV0X2x1bWFfaF94MTZfeHhfbmVvbiBzaGlmdAorICAgICAgICBtb3YgICAgICAgICAgICAgeDks ICMoVlZDX01BWF9QQl9TSVpFICogMikKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MC44Yn0s IFt4NF0KKyAgICAgICAgc3ViICAgICAgICAgICAgIHg5LCB4OSwgdzYsIHV4dHcgIzEKKyAgICAg ICAgc3ViICAgICAgICAgICAgIHgyLCB4MiwgdzYsIHV4dHcgIzEKKyAgICAgICAgc3h0bCAgICAg ICAgICAgIHYwLjhoLCB2MC44YgorICAgICAgICBzdWIgICAgICAgICAgICAgeDEsIHgxLCAjNgor ICAgICAgICBzdWIgICAgICAgICAgICAgeDIsIHgyLCAjMTYKKzE6CisgICAgICAgIGxkMSAgICAg ICAgICAgICB7djIwLjhofSwgW3gxXSwgIzE2CisgICAgICAgIG1vdiAgICAgICAgICAgICB3OCwg dzYKKzI6CisgICAgICAgIGxkMSAgICAgICAgICAgICB7djIxLjhoLCB2MjIuOGh9LCBbeDFdLCAj MzIKKyAgICAgICAgcHV0X2x1bWFfaF94OF92ZWN0b3JfZmlsdGVyIFxzaGlmdAorICAgICAgICBt b3YgICAgICAgICAgICAgdjIwLjE2YiwgdjIxLjE2YgorICAgICAgICBtb3YgICAgICAgICAgICAg djIxLjE2YiwgdjIyLjE2YgorICAgICAgICBzdDEgICAgICAgICAgICAge3YyNC40aCwgdjI1LjRo fSwgW3gwXSwgIzE2CisgICAgICAgIHB1dF9sdW1hX2hfeDhfdmVjdG9yX2ZpbHRlciBcc2hpZnQK KyAgICAgICAgbW92ICAgICAgICAgICAgIHYyMC4xNmIsIHYyMS4xNmIKKyAgICAgICAgc3VicyAg ICAgICAgICAgIHc4LCB3OCwgIzE2CisgICAgICAgIHN0MSAgICAgICAgICAgICB7djI0LjRoLCB2 MjUuNGh9LCBbeDBdLCAjMTYKKyAgICAgICAgYi5ndCAgICAgICAgICAgIDJiCisgICAgICAgIHN1 YnMgICAgICAgICAgICB3MywgdzMsICMxCisgICAgICAgIGFkZCAgICAgICAgICAgICB4MCwgeDAs IHg5CisgICAgICAgIGFkZCAgICAgICAgICAgICB4MSwgeDEsIHgyCisgICAgICAgIGIuZ3QgICAg ICAgICAgICAxYgorICAgICAgICByZXQKKy5lbmRtCisKK2Z1bmN0aW9uIGZmX3Z2Y19wdXRfbHVt YV9oOF8xMF9uZW9uLCBleHBvcnQ9MQorICAgICAgICBwdXRfbHVtYV9oOF94eF9uZW9uIDIKK2Vu ZGZ1bmMKKworZnVuY3Rpb24gZmZfdnZjX3B1dF9sdW1hX2g4XzEyX25lb24sIGV4cG9ydD0xCisg ICAgICAgIHB1dF9sdW1hX2g4X3h4X25lb24gNAorZW5kZnVuYworCitmdW5jdGlvbiBmZl92dmNf cHV0X2x1bWFfaDE2XzEwX25lb24sIGV4cG9ydD0xCisgICAgICAgIHB1dF9sdW1hX2gxNl94eF9u ZW9uIDIKK2VuZGZ1bmMKKworZnVuY3Rpb24gZmZfdnZjX3B1dF9sdW1hX2gxNl8xMl9uZW9uLCBl eHBvcnQ9MQorICAgICAgICBwdXRfbHVtYV9oMTZfeHhfbmVvbiA0CitlbmRmdW5jCisKK2Z1bmN0 aW9uIGZmX3Z2Y19wdXRfbHVtYV9oX3gxNl8xMF9uZW9uLCBleHBvcnQ9MQorICAgICAgICBwdXRf bHVtYV9oX3gxNl94eF9uZW9uIDIKK2VuZGZ1bmMKKworZnVuY3Rpb24gZmZfdnZjX3B1dF9sdW1h X2hfeDE2XzEyX25lb24sIGV4cG9ydD0xCisgICAgICAgIHB1dF9sdW1hX2hfeDE2X3h4X25lb24g NAorZW5kZnVuYwotLSAKMi41Mi4wCgoKRnJvbSBkMjY5MDFjNTA3NDI1NWRkMTIyY2FiMGUwMDJk MTZiMTBlYzA0YTc0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNrIExhdSA8amFj a2xhdTEyMjJnbUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTcgTm92IDIwMjUgMTM6MzI6MDUgKzA4 MDAKU3ViamVjdDogW1BBVENIIDA2MS8zMDRdIGNvbmZpZ3VyZTogcmVwbGFjZSBvcGVuc3NsIGhl YWRlciBjaGVjayB3aXRoIDEuMS4xCiBBUEkKCkZpeCAjMjA1NzEKCkF2b2lkIGJ1aWxkIGVycm9y cyB3aXRoIG9wZW5zc2wgZm9ya3MgKGxpa2UgbGlicmVzc2wpCnRoYXQgbGFjayBzb21lIEFQSXMu CgpUaGlzIHBhdGNoIHJlcGxhY2UgaGVhZGVyIGNoZWNrIGZvciBPUEVOU1NMX2luaXRfc3NsCih3 YXMgYWRkZWQgaW4gMS4xLjApIHdpdGggdGhlIE9wZW5TU0wgMS4xLjEgbmV3IEFQSQpEVExTX2dl dF9kYXRhX210dS4KClNpZ25lZC1vZmYtYnk6IEphY2sgTGF1IDxqYWNrbGF1MTIyMmdtQGdtYWls LmNvbT4KLS0tCiBjb25maWd1cmUgfCA4ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNl cnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZp Z3VyZQppbmRleCA3ZDYwNjFiNTVjLi45OTczNGU5ZDAzIDEwMDc1NQotLS0gYS9jb25maWd1cmUK KysrIGIvY29uZmlndXJlCkBAIC03MzUzLDEyICs3MzUzLDEyIEBAIGVuYWJsZWQgb214X3JwaSAg ICAgICAgICAgJiYgeyB0ZXN0X2NvZGUgY2MgT01YX0NvcmUuaCBPTVhfSW5kZXhDb25maWdCcmNt VmlkZW9SCiBlbmFibGVkIG9teCAgICAgICAgICAgICAgICYmIHJlcXVpcmVfaGVhZGVycyBPTVhf Q29yZS5oICYmIFwKICAgICB3YXJuICJUaGUgT3Blbk1BWCBlbmNvZGVycyBhcmUgZGVwcmVjYXRl ZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGZ1dHVyZSB2ZXJzaW9ucyIKIAotZW5hYmxlZCBvcGVu c3NsICAgICAgICAgICAmJiB7IHsgY2hlY2tfcGtnX2NvbmZpZyBvcGVuc3NsICJvcGVuc3NsID49 IDMuMC4wIiBvcGVuc3NsL3NzbC5oIE9QRU5TU0xfaW5pdF9zc2wgJiYKK2VuYWJsZWQgb3BlbnNz bCAgICAgICAgICAgJiYgeyB7IGNoZWNrX3BrZ19jb25maWcgb3BlbnNzbCAib3BlbnNzbCA+PSAz LjAuMCIgb3BlbnNzbC9zc2wuaCBEVExTX2dldF9kYXRhX210dSAmJgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeyBlbmFibGVkIGdwbHYzIHx8ICEgZW5hYmxlZCBncGwgfHwgZW5h YmxlZCBub25mcmVlIHx8IGRpZSAiRVJST1I6IE9wZW5TU0wgPj0zLjAuMCByZXF1aXJlcyAtLWVu YWJsZS12ZXJzaW9uMyI7IH07IH0gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 IGVuYWJsZWQgZ3BsICYmICEgZW5hYmxlZCBub25mcmVlICYmIGRpZSAiRVJST1I6IE9wZW5TU0wg PDMuMC4wIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBncGwiOyB9IHx8Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2hlY2tfcGtnX2NvbmZpZyBvcGVuc3NsICJvcGVuc3NsID49IDEu MS4xIiBvcGVuc3NsL3NzbC5oIE9QRU5TU0xfaW5pdF9zc2wgfHwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjaGVja19saWIgb3BlbnNzbCBvcGVuc3NsL3NzbC5oIE9QRU5TU0xfaW5p dF9zc2wgLWxzc2wgLWxjcnlwdG8gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj aGVja19saWIgb3BlbnNzbCBvcGVuc3NsL3NzbC5oIE9QRU5TU0xfaW5pdF9zc2wgLWxzc2wgLWxj cnlwdG8gLWx3czJfMzIgLWxnZGkzMiB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNoZWNrX3BrZ19jb25maWcgb3BlbnNzbCAib3BlbnNzbCA+PSAxLjEuMSIgb3BlbnNzbC9zc2wu aCBEVExTX2dldF9kYXRhX210dSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo ZWNrX2xpYiBvcGVuc3NsIG9wZW5zc2wvc3NsLmggRFRMU19nZXRfZGF0YV9tdHUgLWxzc2wgLWxj cnlwdG8gfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja19saWIgb3BlbnNz bCBvcGVuc3NsL3NzbC5oIERUTFNfZ2V0X2RhdGFfbXR1IC1sc3NsIC1sY3J5cHRvIC1sd3MyXzMy IC1sZ2RpMzIgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWUgIkVSUk9SOiBv cGVuc3NsICg+PSAxLjEuMSkgbm90IGZvdW5kIjsgfQogZW5hYmxlZCBwb2NrZXRzcGhpbnggICAg ICAmJiByZXF1aXJlX3BrZ19jb25maWcgcG9ja2V0c3BoaW54IHBvY2tldHNwaGlueCBwb2NrZXRz cGhpbngvcG9ja2V0c3BoaW54LmggcHNfaW5pdAogZW5hYmxlZCBya21wcCAgICAgICAgICAgICAm JiB7IHJlcXVpcmVfcGtnX2NvbmZpZyBya21wcCByb2NrY2hpcF9tcHAgIHJvY2tjaGlwL3JrX21w aS5oIG1wcF9jcmVhdGUgJiYKLS0gCjIuNTIuMAoKCkZyb20gNDEzMjc4NTUzMDg3MmE4ZGExNWZl YzgwNGM5NDI2NmYyOWYyOGMxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR3lhbiBE b3NoaSA8ZmZtcGVnQGd5YW5pLnBybz4KRGF0ZTogVHVlLCAyNSBOb3YgMjAyNSAxMjo0MTozNyAr MDUzMApTdWJqZWN0OiBbUEFUQ0ggMDYyLzMwNF0gYXZmaWx0ZXIvenNjYWxlOiBhZGQgc3VwcG9y dCBmb3IgcmVzaXplIGZpbHRlcgogc3BsaW5lNjQKCkZpeGVzICMyMDkyOAotLS0KIGRvYy9maWx0 ZXJzLnRleGkgICAgICAgIHwgMSArCiBsaWJhdmZpbHRlci92Zl96c2NhbGUuYyB8IDUgKysrLS0K IDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RvYy9maWx0ZXJzLnRleGkgYi9kb2MvZmlsdGVycy50ZXhpCmluZGV4IDc2MDU4MTI0 MjguLjE2OGVhMGQyZGEgMTAwNjQ0Ci0tLSBhL2RvYy9maWx0ZXJzLnRleGkKKysrIGIvZG9jL2Zp bHRlcnMudGV4aQpAQCAtMjY1MDQsNiArMjY1MDQsNyBAQCBQb3NzaWJsZSB2YWx1ZXMgYXJlOgog QGl0ZW0gYmljdWJpYwogQGl0ZW0gc3BsaW5lMTYKIEBpdGVtIHNwbGluZTM2CitAaXRlbSBzcGxp bmU2NAogQGl0ZW0gbGFuY3pvcwogQGVuZCB0YWJsZQogCmRpZmYgLS1naXQgYS9saWJhdmZpbHRl ci92Zl96c2NhbGUuYyBiL2xpYmF2ZmlsdGVyL3ZmX3pzY2FsZS5jCmluZGV4IDllYTUwMTMzYzYu Ljk2Y2JkM2M0YjIgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3ZmX3pzY2FsZS5jCisrKyBiL2xp YmF2ZmlsdGVyL3ZmX3pzY2FsZS5jCkBAIC05NDAsMTMgKzk0MCwxNCBAQCBzdGF0aWMgY29uc3Qg QVZPcHRpb24genNjYWxlX29wdGlvbnNbXSA9IHsKICAgICB7ICAgICAib3JkZXJlZCIsICAgICAg ICAgIDAsICAgICAgIDAsICAgICAgICAgICAgICAgICBBVl9PUFRfVFlQRV9DT05TVCwgey5pNjQg PSBaSU1HX0RJVEhFUl9PUkRFUkVEfSwgIDAsIDAsIEZMQUdTLCAudW5pdCA9ICJkaXRoZXIiIH0s CiAgICAgeyAgICAgInJhbmRvbSIsICAgICAgICAgICAwLCAgICAgICAwLCAgICAgICAgICAgICAg ICAgQVZfT1BUX1RZUEVfQ09OU1QsIHsuaTY0ID0gWklNR19ESVRIRVJfUkFORE9NfSwgICAwLCAw LCBGTEFHUywgLnVuaXQgPSAiZGl0aGVyIiB9LAogICAgIHsgICAgICJlcnJvcl9kaWZmdXNpb24i LCAgMCwgICAgICAgMCwgICAgICAgICAgICAgICAgIEFWX09QVF9UWVBFX0NPTlNULCB7Lmk2NCA9 IFpJTUdfRElUSEVSX0VSUk9SX0RJRkZVU0lPTn0sIDAsIDAsIEZMQUdTLCAudW5pdCA9ICJkaXRo ZXIiIH0sCi0gICAgeyAiZmlsdGVyIiwgInNldCBmaWx0ZXIgdHlwZSIsICAgICBPRkZTRVQoZmls dGVyKSwgICAgQVZfT1BUX1RZUEVfSU5ULCB7Lmk2NCA9IFpJTUdfUkVTSVpFX0JJTElORUFSfSwg MCwgWklNR19SRVNJWkVfTEFOQ1pPUywgRkxBR1MsIC51bml0ID0gImZpbHRlciIgfSwKLSAgICB7 ICJmIiwgICAgICAic2V0IGZpbHRlciB0eXBlIiwgICAgIE9GRlNFVChmaWx0ZXIpLCAgICBBVl9P UFRfVFlQRV9JTlQsIHsuaTY0ID0gWklNR19SRVNJWkVfQklMSU5FQVJ9LCAwLCBaSU1HX1JFU0la RV9MQU5DWk9TLCBGTEFHUywgLnVuaXQgPSAiZmlsdGVyIiB9LAorICAgIHsgImZpbHRlciIsICJz ZXQgZmlsdGVyIHR5cGUiLCAgICAgT0ZGU0VUKGZpbHRlciksICAgIEFWX09QVF9UWVBFX0lOVCwg ey5pNjQgPSBaSU1HX1JFU0laRV9CSUxJTkVBUn0sIDAsIFpJTUdfUkVTSVpFX1NQTElORTY0LCBG TEFHUywgLnVuaXQgPSAiZmlsdGVyIiB9LAorICAgIHsgImYiLCAgICAgICJzZXQgZmlsdGVyIHR5 cGUiLCAgICAgT0ZGU0VUKGZpbHRlciksICAgIEFWX09QVF9UWVBFX0lOVCwgey5pNjQgPSBaSU1H X1JFU0laRV9CSUxJTkVBUn0sIDAsIFpJTUdfUkVTSVpFX1NQTElORTY0LCBGTEFHUywgLnVuaXQg PSAiZmlsdGVyIiB9LAogICAgIHsgICAgICJwb2ludCIsICAgICAgICAgICAgMCwgICAgICAgMCwg ICAgICAgICAgICAgICAgIEFWX09QVF9UWVBFX0NPTlNULCB7Lmk2NCA9IFpJTUdfUkVTSVpFX1BP SU5UfSwgICAgMCwgMCwgRkxBR1MsIC51bml0ID0gImZpbHRlciIgfSwKICAgICB7ICAgICAiYmls aW5lYXIiLCAgICAgICAgIDAsICAgICAgIDAsICAgICAgICAgICAgICAgICBBVl9PUFRfVFlQRV9D T05TVCwgey5pNjQgPSBaSU1HX1JFU0laRV9CSUxJTkVBUn0sIDAsIDAsIEZMQUdTLCAudW5pdCA9 ICJmaWx0ZXIiIH0sCiAgICAgeyAgICAgImJpY3ViaWMiLCAgICAgICAgICAwLCAgICAgICAwLCAg ICAgICAgICAgICAgICAgQVZfT1BUX1RZUEVfQ09OU1QsIHsuaTY0ID0gWklNR19SRVNJWkVfQklD VUJJQ30sICAwLCAwLCBGTEFHUywgLnVuaXQgPSAiZmlsdGVyIiB9LAogICAgIHsgICAgICJzcGxp bmUxNiIsICAgICAgICAgMCwgICAgICAgMCwgICAgICAgICAgICAgICAgIEFWX09QVF9UWVBFX0NP TlNULCB7Lmk2NCA9IFpJTUdfUkVTSVpFX1NQTElORTE2fSwgMCwgMCwgRkxBR1MsIC51bml0ID0g ImZpbHRlciIgfSwKICAgICB7ICAgICAic3BsaW5lMzYiLCAgICAgICAgIDAsICAgICAgIDAsICAg ICAgICAgICAgICAgICBBVl9PUFRfVFlQRV9DT05TVCwgey5pNjQgPSBaSU1HX1JFU0laRV9TUExJ TkUzNn0sIDAsIDAsIEZMQUdTLCAudW5pdCA9ICJmaWx0ZXIiIH0sCisgICAgeyAgICAgInNwbGlu ZTY0IiwgICAgICAgICAwLCAgICAgICAwLCAgICAgICAgICAgICAgICAgQVZfT1BUX1RZUEVfQ09O U1QsIHsuaTY0ID0gWklNR19SRVNJWkVfU1BMSU5FNjR9LCAwLCAwLCBGTEFHUywgLnVuaXQgPSAi ZmlsdGVyIiB9LAogICAgIHsgICAgICJsYW5jem9zIiwgICAgICAgICAgMCwgICAgICAgMCwgICAg ICAgICAgICAgICAgIEFWX09QVF9UWVBFX0NPTlNULCB7Lmk2NCA9IFpJTUdfUkVTSVpFX0xBTkNa T1N9LCAgMCwgMCwgRkxBR1MsIC51bml0ID0gImZpbHRlciIgfSwKICAgICB7ICJvdXRfcmFuZ2Ui LCAic2V0IGNvbG9yIHJhbmdlIiwgIE9GRlNFVChyYW5nZSksICAgICBBVl9PUFRfVFlQRV9JTlQs IHsuaTY0ID0gLTF9LCAtMSwgWklNR19SQU5HRV9GVUxMLCBGTEFHUywgLnVuaXQgPSAicmFuZ2Ui IH0sCiAgICAgeyAicmFuZ2UiLCAic2V0IGNvbG9yIHJhbmdlIiwgICAgICBPRkZTRVQocmFuZ2Up LCAgICAgQVZfT1BUX1RZUEVfSU5ULCB7Lmk2NCA9IC0xfSwgLTEsIFpJTUdfUkFOR0VfRlVMTCwg RkxBR1MsIC51bml0ID0gInJhbmdlIiB9LAotLSAKMi41Mi4wCgoKRnJvbSA1ZDVmMDY4MjgwOTNm MWEwYmU1OTQ5OWNjZmVmOTgxYTA2YmRmOWI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBhdmVybmUgPGF2ZXJuZTM4MUBnbWFpbC5jb20+CkRhdGU6IFN1biwgMiBOb3YgMjAyNSAyMDoy MzoyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDYzLzMwNF0gdnVsa2FuL3Byb3JlczogQWRvcHQg dGhlIHNhbWUgSURDVCByb3V0aW5lIGFzIHRoZQogcHJvcmVzLXJhdyBod2FjY2VsCgpUaGUgYWRk ZWQgcm91bmRpbmcgYXQgdGhlIGZpbmFsIG91dHB1dCBjb25mb3Jtcwp0byB0aGUgU01QVEUgZG9j dW1lbnQgYW5kIHJlZHVjZXMgdGhlIGRldmlhdGlvbgphZ2FpbnN0IHRoZSBzb2Z0d2FyZSBkZWNv ZGVyLgotLS0KIGxpYmF2Y29kZWMvdnVsa2FuL3Byb3Jlc19pZGN0LmNvbXAgfCAxMDUgKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2OCBpbnNlcnRpb25zKCsp LCAzNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNf aWRjdC5jb21wIGIvbGliYXZjb2RlYy92dWxrYW4vcHJvcmVzX2lkY3QuY29tcAppbmRleCA0YjM5 YjNkOGFlLi4wNWJhOGU0OTY3IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNf aWRjdC5jb21wCisrKyBiL2xpYmF2Y29kZWMvdnVsa2FuL3Byb3Jlc19pZGN0LmNvbXAKQEAgLTM3 LDQ3ICszNyw3NyBAQCB2b2lkIHB1dF9weCh1aW50IHRleF9pZHgsIGl2ZWMyIHBvcywgdWludCB2 KQogI2VuZGlmCiB9CiAKK2NvbnN0IGZsb2F0IGlkY3RfOHg4X3NjYWxlc1tdID0geworICAgIDAu MzUzNTUzMzkwNTkzMjc0ZiwgLy8gY29zKDQgKiBwaS8xNikgLyAyCisgICAgMC40OTAzOTI2NDAy MDE2MTVmLCAvLyBjb3MoMSAqIHBpLzE2KSAvIDIKKyAgICAwLjQ2MTkzOTc2NjI1NTY0M2YsIC8v IGNvcygyICogcGkvMTYpIC8gMgorICAgIDAuNDE1NzM0ODA2MTUxMjczZiwgLy8gY29zKDMgKiBw aS8xNikgLyAyCisgICAgMC4zNTM1NTMzOTA1OTMyNzRmLCAvLyBjb3MoNCAqIHBpLzE2KSAvIDIK KyAgICAwLjI3Nzc4NTExNjUwOTgwMWYsIC8vIGNvcyg1ICogcGkvMTYpIC8gMgorICAgIDAuMTkx MzQxNzE2MTgyNTQ1ZiwgLy8gY29zKDYgKiBwaS8xNikgLyAyCisgICAgMC4wOTc1NDUxNjEwMDgw NjRmLCAvLyBjb3MoNyAqIHBpLzE2KSAvIDIKK307CisKIC8qIDcuNCBJbnZlcnNlIFRyYW5zZm9y bSAqLwogdm9pZCBpZGN0KHVpbnQgYmxvY2ssIHVpbnQgb2Zmc2V0LCB1aW50IHN0cmlkZSkKIHsK LSAgICBmbG9hdCBjMCA9IGJsb2Nrc1tibG9ja11bMCpzdHJpZGUgKyBvZmZzZXRdOwotICAgIGZs b2F0IGMxID0gYmxvY2tzW2Jsb2NrXVsxKnN0cmlkZSArIG9mZnNldF07Ci0gICAgZmxvYXQgYzIg PSBibG9ja3NbYmxvY2tdWzIqc3RyaWRlICsgb2Zmc2V0XTsKLSAgICBmbG9hdCBjMyA9IGJsb2Nr c1tibG9ja11bMypzdHJpZGUgKyBvZmZzZXRdOwotICAgIGZsb2F0IGM0ID0gYmxvY2tzW2Jsb2Nr XVs0KnN0cmlkZSArIG9mZnNldF07Ci0gICAgZmxvYXQgYzUgPSBibG9ja3NbYmxvY2tdWzUqc3Ry aWRlICsgb2Zmc2V0XTsKLSAgICBmbG9hdCBjNiA9IGJsb2Nrc1tibG9ja11bNipzdHJpZGUgKyBv ZmZzZXRdOwotICAgIGZsb2F0IGM3ID0gYmxvY2tzW2Jsb2NrXVs3KnN0cmlkZSArIG9mZnNldF07 CisgICAgZmxvYXQgdDAsIHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB1ODsKKyAgICBmbG9h dCB1MCwgdTEsIHUyLCB1MywgdTQsIHU1LCB1NiwgdTc7CiAKLSAgICBmbG9hdCB0bXAxID0gYzYg KiAxLjQxNDIxMzQxODk2MDU3MTI4OTEgKyAoYzIgLSBjNik7Ci0gICAgZmxvYXQgdG1wMiA9IGM2 ICogMS40MTQyMTM0MTg5NjA1NzEyODkxIC0gKGMyIC0gYzYpOworICAgIC8qIElucHV0ICovCisg ICAgdDAgPSBibG9ja3NbYmxvY2tdWzAqc3RyaWRlICsgb2Zmc2V0XTsKKyAgICB1NCA9IGJsb2Nr c1tibG9ja11bMSpzdHJpZGUgKyBvZmZzZXRdOworICAgIHQyID0gYmxvY2tzW2Jsb2NrXVsyKnN0 cmlkZSArIG9mZnNldF07CisgICAgdTYgPSBibG9ja3NbYmxvY2tdWzMqc3RyaWRlICsgb2Zmc2V0 XTsKKyAgICB0MSA9IGJsb2Nrc1tibG9ja11bNCpzdHJpZGUgKyBvZmZzZXRdOworICAgIHU1ID0g YmxvY2tzW2Jsb2NrXVs1KnN0cmlkZSArIG9mZnNldF07CisgICAgdDMgPSBibG9ja3NbYmxvY2td WzYqc3RyaWRlICsgb2Zmc2V0XTsKKyAgICB1NyA9IGJsb2Nrc1tibG9ja11bNypzdHJpZGUgKyBv ZmZzZXRdOwogCi0gICAgZmxvYXQgYTEgPSAoYzAgKyBjNCkgKiAwLjM1MzU1MzQxNDM0NDc4NzU5 NzY2ICsgdG1wMSAqIDAuNDYxOTM5ODExNzA2NTQyOTY4NzU7Ci0gICAgZmxvYXQgYTQgPSAoYzAg KyBjNCkgKiAwLjM1MzU1MzQxNDM0NDc4NzU5NzY2IC0gdG1wMSAqIDAuNDYxOTM5ODExNzA2NTQy OTY4NzU7CisgICAgLyogRW1iZWRkZWQgc2NhbGVkIGludmVyc2UgNC1wb2ludCBUeXBlLUlJIERD VCAqLworICAgIHUwID0gdDAgKyB0MTsKKyAgICB1MSA9IHQwIC0gdDE7CisgICAgdTMgPSB0MiAr IHQzOworICAgIHUyID0gKHQyIC0gdDMpKigxLjQxNDIxMzU2MjM3MzA5NTA0ODgwMTY4ODcyNDIw OTdmKSAtIHUzOworICAgIHQwID0gdTAgKyB1MzsKKyAgICB0MyA9IHUwIC0gdTM7CisgICAgdDEg PSB1MSArIHUyOworICAgIHQyID0gdTEgLSB1MjsKIAotICAgIGZsb2F0IGEzID0gKGMwIC0gYzQp ICogMC4zNTM1NTM0MTQzNDQ3ODc1OTc2NiArIHRtcDIgKiAwLjE5MTM0MTY5ODE2OTcwODI1MTk1 OwotICAgIGZsb2F0IGEyID0gKGMwIC0gYzQpICogMC4zNTM1NTM0MTQzNDQ3ODc1OTc2NiAtIHRt cDIgKiAwLjE5MTM0MTY5ODE2OTcwODI1MTk1OworICAgIC8qIEVtYmVkZGVkIHNjYWxlZCBpbnZl cnNlIDQtcG9pbnQgVHlwZS1JViBEU1QgKi8KKyAgICB0NSA9IHU1ICsgdTY7CisgICAgdDYgPSB1 NSAtIHU2OworICAgIHQ3ID0gdTQgKyB1NzsKKyAgICB0NCA9IHU0IC0gdTc7CisgICAgdTcgPSB0 NyArIHQ1OworICAgIHU1ID0gKHQ3IC0gdDUpKigxLjQxNDIxMzU2MjM3MzA5NTA0ODgwMTY4ODcy NDIwOTdmKTsKKyAgICB1OCA9ICh0NCArIHQ2KSooMS44NDc3NTkwNjUwMjI1NzM1MTIyNTYzNjYz Nzg3OTM2Zik7CisgICAgdTQgPSB1OCAtIHQ0KigxLjA4MjM5MjIwMDI5MjM5Mzk2ODc5OTQ0NjQx MDczMjhmKTsKKyAgICB1NiA9IHU4IC0gdDYqKDIuNjEzMTI1OTI5NzUyNzUzMDU1NzEzMjg2MzQ2 ODU0NGYpOworICAgIHQ3ID0gdTc7CisgICAgdDYgPSB0NyAtIHU2OworICAgIHQ1ID0gdDYgKyB1 NTsKKyAgICB0NCA9IHQ1IC0gdTQ7CiAKLSAgICBmbG9hdCB0bXAzID0gKGMzIC0gYzUpICogMC43 MDcxMDY4Mjg2ODk1NzUxOTUzMSArIGM3OwotICAgIGZsb2F0IHRtcDQgPSAoYzMgLSBjNSkgKiAw LjcwNzEwNjgyODY4OTU3NTE5NTMxIC0gYzc7CisgICAgLyogQnV0dGVyZmxpZXMgKi8KKyAgICB1 MCA9IHQwICsgdDc7CisgICAgdTcgPSB0MCAtIHQ3OworICAgIHU2ID0gdDEgKyB0NjsKKyAgICB1 MSA9IHQxIC0gdDY7CisgICAgdTIgPSB0MiArIHQ1OworICAgIHU1ID0gdDIgLSB0NTsKKyAgICB1 NCA9IHQzICsgdDQ7CisgICAgdTMgPSB0MyAtIHQ0OwogCi0gICAgZmxvYXQgdG1wNSA9IChjNSAt IGM3KSAqICAxLjQxNDIxMzQxODk2MDU3MTI4OTEgKyAoYzUgLSBjNykgKyAoYzEgLSBjMyk7Ci0g ICAgZmxvYXQgdG1wNiA9IChjNSAtIGM3KSAqIC0xLjQxNDIxMzQxODk2MDU3MTI4OTEgKyAoYzUg LSBjNykgKyAoYzEgLSBjMyk7Ci0KLSAgICBmbG9hdCBtMSA9IHRtcDMgKiAgMi42MTMxMjYwMzk1 MDUwMDQ4ODI4ICsgdG1wNTsKLSAgICBmbG9hdCBtNCA9IHRtcDMgKiAtMi42MTMxMjYwMzk1MDUw MDQ4ODI4ICsgdG1wNTsKLQotICAgIGZsb2F0IG0yID0gdG1wNCAqICAxLjA4MjM5MTk3NzMxMDE4 MDY2NDEgKyB0bXA2OwotICAgIGZsb2F0IG0zID0gdG1wNCAqIC0xLjA4MjM5MTk3NzMxMDE4MDY2 NDEgKyB0bXA2OwotCi0gICAgYmxvY2tzW2Jsb2NrXVswKnN0cmlkZSArIG9mZnNldF0gPSBtMSAq ICAwLjQ5MDM5MjU5NTUyOTU1NjI3NDQxICArIGExOwotICAgIGJsb2Nrc1tibG9ja11bNypzdHJp ZGUgKyBvZmZzZXRdID0gbTEgKiAtMC40OTAzOTI1OTU1Mjk1NTYyNzQ0MSAgKyBhMTsKLSAgICBi bG9ja3NbYmxvY2tdWzEqc3RyaWRlICsgb2Zmc2V0XSA9IG0yICogIDAuNDE1NzM0Nzk3NzE2MTQw NzQ3MDcgICsgYTI7Ci0gICAgYmxvY2tzW2Jsb2NrXVs2KnN0cmlkZSArIG9mZnNldF0gPSBtMiAq IC0wLjQxNTczNDc5NzcxNjE0MDc0NzA3ICArIGEyOwotICAgIGJsb2Nrc1tibG9ja11bMipzdHJp ZGUgKyBvZmZzZXRdID0gbTMgKiAgMC4yNzc3ODUwOTI1OTIyMzkzNzk4OCAgKyBhMzsKLSAgICBi bG9ja3NbYmxvY2tdWzUqc3RyaWRlICsgb2Zmc2V0XSA9IG0zICogLTAuMjc3Nzg1MDkyNTkyMjM5 Mzc5ODggICsgYTM7Ci0gICAgYmxvY2tzW2Jsb2NrXVszKnN0cmlkZSArIG9mZnNldF0gPSBtNCAq ICAwLjA5NzU0NTEzOTQ5MTU1ODA3NDk1MSArIGE0OwotICAgIGJsb2Nrc1tibG9ja11bNCpzdHJp ZGUgKyBvZmZzZXRdID0gbTQgKiAtMC4wOTc1NDUxMzk0OTE1NTgwNzQ5NTEgKyBhNDsKKyAgICAv KiBPdXRwdXQgKi8KKyAgICBibG9ja3NbYmxvY2tdWzAqc3RyaWRlICsgb2Zmc2V0XSA9IHUwOwor ICAgIGJsb2Nrc1tibG9ja11bMSpzdHJpZGUgKyBvZmZzZXRdID0gdTE7CisgICAgYmxvY2tzW2Js b2NrXVsyKnN0cmlkZSArIG9mZnNldF0gPSB1MjsKKyAgICBibG9ja3NbYmxvY2tdWzMqc3RyaWRl ICsgb2Zmc2V0XSA9IHUzOworICAgIGJsb2Nrc1tibG9ja11bNCpzdHJpZGUgKyBvZmZzZXRdID0g dTQ7CisgICAgYmxvY2tzW2Jsb2NrXVs1KnN0cmlkZSArIG9mZnNldF0gPSB1NTsKKyAgICBibG9j a3NbYmxvY2tdWzYqc3RyaWRlICsgb2Zmc2V0XSA9IHU2OworICAgIGJsb2Nrc1tibG9ja11bNypz dHJpZGUgKyBvZmZzZXRdID0gdTc7CiB9CiAKIHZvaWQgbWFpbih2b2lkKQpAQCAtOTAsNyArMTIw LDcgQEAgdm9pZCBtYWluKHZvaWQpCiAgICAgLyogQ29hbGVzY2VkIGxvYWQgb2YgRENUIGNvZWZm cyBpbiBzaGFyZWQgbWVtb3J5LCBpbnZlcnNlIHF1YW50aXphdGlvbiAqLwogICAgIGlmIChhY3Qp IHsKICAgICAgICAgLyoqCi0gICAgICAgICAqIEFjY29yZGluZyB0byBzcGVjIGluZGV4aW5nIGFu IGFycmF5IGluIHB1c2ggY29uc3RhbnQgbWVtb3J5IHdpdGgKKyAgICAgICAgICogQWNjb3JkaW5n IHRvIHRoZSBWSyBzcGVjIGluZGV4aW5nIGFuIGFycmF5IGluIHB1c2ggY29uc3RhbnQgbWVtb3J5 IHdpdGgKICAgICAgICAgICogYSBub24tZHluYW1pY2FsbHkgdW5pZm9ybSB2YWx1ZSBpcyBpbGxl Z2FsICgkMTUuOS4xIGluIHYxLjQuMzI2KSwKICAgICAgICAgICogc28gY29weSB0aGUgd2hvbGUg bWF0cml4IGxvY2FsbHkuCiAgICAgICAgICAqLwpAQCAtMTAxLDggKzEzMSw5IEBAIHZvaWQgbWFp bih2b2lkKQogICAgICAgICBpbnQgcXNjYWxlID0gcWlkeCA+IDEyOCA/IChxaWR4IC0gOTYpIDw8 IDIgOiBxaWR4OwogCiAgICAgICAgIFtbdW5yb2xsXV0gZm9yICh1aW50IGkgPSAwOyBpIDwgODsg KytpKSB7Ci0gICAgICAgICAgICBpbnQgdiA9IHNpZ25fZXh0ZW5kKGludChnZXRfcHgoY29tcCwg aXZlYzIoZ2lkLngsIChnaWQueSA8PCAzKSArIGkpKSksIDE2KTsKLSAgICAgICAgICAgIGJsb2Nr c1tibG9ja11baSAqIDkgKyBpZHhdID0gZmxvYXQodiAqIHFzY2FsZSAqIGludChxbWF0WyhpIDw8 IDMpICsgaWR4XSkpOworICAgICAgICAgICAgaW50ICAgYyA9IHNpZ25fZXh0ZW5kKGludChnZXRf cHgoY29tcCwgaXZlYzIoZ2lkLngsIChnaWQueSA8PCAzKSArIGkpKSksIDE2KTsKKyAgICAgICAg ICAgIGZsb2F0IHYgPSBmbG9hdChjICogcXNjYWxlICogaW50KHFtYXRbKGkgPDwgMykgKyBpZHhd KSk7CisgICAgICAgICAgICBibG9ja3NbYmxvY2tdW2kgKiA5ICsgaWR4XSA9IHYgKiBpZGN0Xzh4 OF9zY2FsZXNbaWR4XSAqIGlkY3RfOHg4X3NjYWxlc1tpXTsKICAgICAgICAgfQogICAgIH0KIApA QCAtMTIxLDcgKzE1Miw3IEBAIHZvaWQgbWFpbih2b2lkKQogICAgIGJhcnJpZXIoKTsKICAgICBp ZiAoYWN0KSB7CiAgICAgICAgIFtbdW5yb2xsXV0gZm9yICh1aW50IGkgPSAwOyBpIDwgODsgKytp KSB7Ci0gICAgICAgICAgICBmbG9hdCB2ID0gYmxvY2tzW2Jsb2NrXVtpICogOSArIGlkeF0gKiBm YWN0ICsgb2ZmOworICAgICAgICAgICAgZmxvYXQgdiA9IHJvdW5kKGJsb2Nrc1tibG9ja11baSAq IDkgKyBpZHhdICogZmFjdCArIG9mZik7CiAgICAgICAgICAgICBwdXRfcHgoY29tcCwgaXZlYzIo Z2lkLngsIChnaWQueSA8PCAzKSArIGkpLCBjbGFtcChpbnQodiksIDAsIG1heHYpKTsKICAgICAg ICAgfQogICAgIH0KLS0gCjIuNTIuMAoKCkZyb20gYjVhZDY4ZTc2YTBiODllMGY2NzQ5YjI3OWI4 M2Q2MTYyMzU2NzBlYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0th Y3Blcj0yME1pY2hhaj1DNT04Mm93Pz0gPGthc3BlcjkzQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAy NSBOb3YgMjAyNSAxODowNjozMyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDY0LzMwNF0gYXZmaWx0 ZXIvdmZfZHJhd3ZnOiByb3VuZCBjb2xvciB2YWx1ZXMgdG8gYXZvaWQKIGRpZmZlcmVuY2VzIG9u IHNvbWUgcGxhdGZvcm1zCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpUaGlzIGVu c3VyZXMgY29uc2lzdGVudCBjb2xvciBjb252ZXJzaW9uIGJldHdlZW4gZG91YmxlIGFuZCB1OCBh bmQKZ3VhcmFudGVlcyB0aGF0IHZhbHVlcyByZW1haW4gY29uc2lzdGVudCBhY3Jvc3MgZGlmZmVy ZW50IHBsYXRmb3JtcywKZXNwZWNpYWxseSB3aGVuIHg4NyBtYXRoIGlzIHVzZWQuCgpOb3RlIHRo YXQgbGliY2Fpcm8gYWxzbyBwZXJmb3JtcyByb3VuZGluZyBpbnRlcm5hbGx5IHdoZW4gY29udmVy dGluZwpkb3VibGVzIHRvIGludGVnZXJzLCBzZWUgX2NhaXJvX2NvbG9yX2RvdWJsZV90b19zaG9y dCgpLgoKRml4ZXM6IGZhdGUtZmlsdGVyLWRyYXd2Zy1pbnRlcnByZXRlcgpTaWduZWQtb2ZmLWJ5 OiBLYWNwZXIgTWljaGFqxYJvdyA8a2FzcGVyOTNAZ21haWwuY29tPgotLS0KIGxpYmF2ZmlsdGVy L3Rlc3RzL2RyYXd2Zy5jICAgICAgICAgICAgICAgfCAyICstCiBsaWJhdmZpbHRlci92Zl9kcmF3 dmcuYyAgICAgICAgICAgICAgICAgIHwgMiArLQogdGVzdHMvcmVmL2ZhdGUvZmlsdGVyLWRyYXd2 Zy1pbnRlcnByZXRlciB8IDggKysrKy0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25z KCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3Rlc3RzL2RyYXd2 Zy5jIGIvbGliYXZmaWx0ZXIvdGVzdHMvZHJhd3ZnLmMKaW5kZXggMmQxNTFiZjRkMi4uOWZiMjMz ZDk2OSAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvdGVzdHMvZHJhd3ZnLmMKKysrIGIvbGliYXZm aWx0ZXIvdGVzdHMvZHJhd3ZnLmMKQEAgLTE2Nyw3ICsxNjcsNyBAQCB2b2lkIGNhaXJvX3NldF9z b3VyY2UoY2Fpcm9fdCAqY3IsIGNhaXJvX3BhdHRlcm5fdCAqc291cmNlKSB7CiAgICAgcHJpbnRm KCIlcyIsIF9fZnVuY19fKTsKIAogI2RlZmluZSBQUklOVF9DT0xPUihwcmVmaXgpIFwKLSAgICBw cmludGYocHJlZml4ICIjJTAyeCUwMnglMDJ4JTAyeCIsIChpbnQpKHIqMjU1KSwgKGludCkoZyoy NTUpLCAoaW50KShiKjI1NSksIChpbnQpKGEqMjU1KSkKKyAgICBwcmludGYocHJlZml4ICIjJTAy bHglMDJseCUwMmx4JTAybHgiLCBscm91bmQocioyNTUpLCBscm91bmQoZyoyNTUpLCBscm91bmQo YioyNTUpLCBscm91bmQoYSoyNTUpKQogCiAgICAgc3dpdGNoIChjYWlyb19wYXR0ZXJuX2dldF90 eXBlKHNvdXJjZSkpIHsKICAgICBjYXNlIENBSVJPX1BBVFRFUk5fVFlQRV9TT0xJRDoKZGlmZiAt LWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2RyYXd2Zy5jIGIvbGliYXZmaWx0ZXIvdmZfZHJhd3ZnLmMK aW5kZXggZmQ5MjcwZWUxMy4uNWQzMDA4MDg0YyAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvdmZf ZHJhd3ZnLmMKKysrIGIvbGliYXZmaWx0ZXIvdmZfZHJhd3ZnLmMKQEAgLTE5ODEsNyArMTk4MSw3 IEBAIHN0YXRpYyBpbnQgdmdzX2V2YWwoCiAgICAgICAgICAgICAgICAgYiA9IG51bWVyaWNzWzNd OwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAjZGVmaW5lIEModiwgbykgKCh1aW50MzJf dCkoYXZfY2xpcGQodiwgMCwgMSkgKiAyNTUpIDw8IG8pCisgICAgICAgICAgICAjZGVmaW5lIEMo diwgbykgKCh1aW50MzJfdClscm91bmQoYXZfY2xpcGQodiwgMCwgMSkgKiAyNTUpIDw8IG8pCiAK ICAgICAgICAgICAgIHN0YXRlLT52YXJzW3VzZXJfdmFyXSA9IChkb3VibGUpKAogICAgICAgICAg ICAgICAgIEMociwgMjQpCmRpZmYgLS1naXQgYS90ZXN0cy9yZWYvZmF0ZS9maWx0ZXItZHJhd3Zn LWludGVycHJldGVyIGIvdGVzdHMvcmVmL2ZhdGUvZmlsdGVyLWRyYXd2Zy1pbnRlcnByZXRlcgpp bmRleCAyMWM2Y2NkODQ4Li4zZmMzM2U5YzA3IDEwMDY0NAotLS0gYS90ZXN0cy9yZWYvZmF0ZS9m aWx0ZXItZHJhd3ZnLWludGVycHJldGVyCisrKyBiL3Rlc3RzL3JlZi9mYXRlL2ZpbHRlci1kcmF3 dmctaW50ZXJwcmV0ZXIKQEAgLTY0LDE2ICs2NCwxNiBAQCBjYWlyb19zZXRfZGFzaCBbIC0xLjAg XSA0LjAKIGNhaXJvX3NldF9kYXNoIFsgXSAwLjAKIGNhaXJvX21vdmVfdG8gMS4wIDIuMAogY2Fp cm9fcmVsX2xpbmVfdG8gLTEuMCAtMi4wCi1jYWlyb19zZXRfc291cmNlICMxOTMzNGM2NgorY2Fp cm9fc2V0X3NvdXJjZSAjMWEzMzRkNjYKIGNhaXJvX3NldF9maWxsX3J1bGUgMAogY2Fpcm9fZmls bAotY2Fpcm9fc2V0X3NvdXJjZSAjNDc1YjNkNjYKK2NhaXJvX3NldF9zb3VyY2UgIzQ3NWMzZDY2 CiBjYWlyb19zZXRfZmlsbF9ydWxlIDAKIGNhaXJvX2ZpbGwKLWNhaXJvX3NldF9zb3VyY2UgIzdm OTliMmNjCitjYWlyb19zZXRfc291cmNlICM4MDk5YjNjYwogY2Fpcm9fc2V0X2ZpbGxfcnVsZSAw CiBjYWlyb19maWxsCi1jYWlyb19zZXRfc291cmNlICNhOGQ3ZWZlNQorY2Fpcm9fc2V0X3NvdXJj ZSAjYThkOGYwZTYKIGNhaXJvX3NldF9maWxsX3J1bGUgMAogY2Fpcm9fZmlsbAogY2Fpcm9fcmVs X2xpbmVfdG8gMS4wIDMuMAotLSAKMi41Mi4wCgoKRnJvbSAxMmM3ZGQ0YzMwODJkZjM3OGIyNTYy OWJjMjk5ZTBhMzJlNzY2NWQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtsYXMg SGFhcyA8Z2l0QGhhYXNuLmRldj4KRGF0ZTogTW9uLCAxNyBOb3YgMjAyNSAxMDo1MDo1NCArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMDY1LzMwNF0gYXZmaWx0ZXIveDg2L2ZfZWJ1cjEyODogb25seSB1 c2UgZmlsdGVyX2NoYW5uZWxzX2F2eAogZm9yID49IDIgY2hhbm5lbHMKClRoZSBhcHByb2FjaCBv ZiB0aGlzIEFTTSByb3V0aW5lIGlzIHRvIHByb2Nlc3MgdHdvIGNoYW5uZWxzIGF0IGEgdGltZSB1 c2luZwpBVlggaW5zdHJ1Y3Rpb25zLiBPYnZpb3VzbHksIHRoZXJlIGlzIG5vIHBvaW50IGluIGRv aW5nIHRoaXMgaWYgdGhlcmUgaXMgb25seQphIHNpbmdsZSBjaGFubmVsOyBpbiB3aGljaCBjYXNl IHRoZSBzY2FsYXIgbG9vcCB3b3VsZCBiZSBiZXR0ZXIuCgpGaXhlcyBhIHBlcmZvcm1hbmNlIHJl Z3Jlc3Npb24gd2hlbiBmaWx0ZXJpbmcgbW9ubyBhdWRpbyBvbiBjZXJ0YWluIENQVXMsCm5vdGFi bHkgZS5nLiB0aGUgSW50ZWwgTjEwMC4KLS0tCiBsaWJhdmZpbHRlci94ODYvZl9lYnVyMTI4X2lu aXQuYyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIveDg2L2ZfZWJ1cjEyOF9pbml0LmMgYi9saWJh dmZpbHRlci94ODYvZl9lYnVyMTI4X2luaXQuYwppbmRleCA0YTcxMDk3NDZkLi42ZDQzYjQ4ODdm IDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci94ODYvZl9lYnVyMTI4X2luaXQuYworKysgYi9saWJh dmZpbHRlci94ODYvZl9lYnVyMTI4X2luaXQuYwpAQCAtMzMsNyArMzMsOCBAQCBhdl9jb2xkIHZv aWQgZmZfZWJ1cjEyOF9pbml0X3g4NihFQlVSMTI4RFNQQ29udGV4dCAqZHNwLCBpbnQgbmJfY2hh bm5lbHMpCiAgICAgaW50IGNwdV9mbGFncyA9IGF2X2dldF9jcHVfZmxhZ3MoKTsKIAogICAgIGlm IChBUkNIX1g4Nl82NCAmJiBFWFRFUk5BTF9BVlgoY3B1X2ZsYWdzKSkgewotICAgICAgICBkc3At PmZpbHRlcl9jaGFubmVscyA9IGZmX2VidXIxMjhfZmlsdGVyX2NoYW5uZWxzX2F2eDsKKyAgICAg ICAgaWYgKG5iX2NoYW5uZWxzID49IDIpCisgICAgICAgICAgICBkc3AtPmZpbHRlcl9jaGFubmVs cyA9IGZmX2VidXIxMjhfZmlsdGVyX2NoYW5uZWxzX2F2eDsKICAgICAgICAgaWYgKG5iX2NoYW5u ZWxzID09IDIpCiAgICAgICAgICAgICBkc3AtPmZpbmRfcGVhayA9IGZmX2VidXIxMjhfZmluZF9w ZWFrXzJjaF9hdng7CiAgICAgfQotLSAKMi41Mi4wCgoKRnJvbSBkOGU0ZjllMzIwOGUyYjFiM2I3 ODIwNThiODJmZTRjMDU1ZjA5ZGEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRy ZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogVHVl LCAyNSBOb3YgMjAyNSAxNToyOToxOSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDY2LzMwNF0gYXZj b2RlYy94ODYvbWVfY21wOiBBdm9pZCBtYW51YWwgc3RhY2sgaGFuZGxpbmcKClVzZSB4ODZpbmMn cyBzdGFjayBhbGlnbm1lbnQgZmVhdHVyZSBpbnN0ZWFkIG9mIGFsbG9jYXRpbmcgdGhlIHN0YWNr Cm1hbnVhbGx5KjsgdGhpcyBtZWFucyB0aGF0IHRoaXMgY29kZSBub3cgYWxzbyBhdXRvbWF0aWNh bGx5IHN1cHBvcnRzCnVuYWxpZ25lZCBzdGFja3MsIHNvIHRoYXQgdGhlIFNTRTIgYW5kIFNTU0Uz IGZ1bmN0aW9ucyB3aWxsIG5vdyBiZQphdmFpbGFibGUgZXZlcnl3aGVyZS4KCio6IFRoZSBjb2Rl IGZvciB0aGlzIHdhcyBhbHNvIGJ1Z2d5OiBJdCByZXN1bHRlZCBpbiB0aGUgc3RhY2sgcG9pbnRl cgp0byBiZSA0IG1vZCA4IGZvciB4NjQgZm9yIHRoZSBtbXhleHQgdmVyc2lvbiBiZWZvcmUgaXQg d2FzIGRpc2FibGVkCmluIDU0Mjc2NWNlM2VjY2JjYTU4N2Q1NDI2MmE1MTJjYmRiMTQwNzIzMGQs IGJlY2F1c2UgaXQgaGFyZGNvZGUgNAppbnN0ZWFkIG9mIHVzaW5nIGdwcnNpemUuCgpTaWduZWQt b2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNv bT4KLS0tCiBsaWJhdmNvZGVjL3g4Ni9tZV9jbXAuYXNtICAgIHwgMjMgKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0KIGxpYmF2Y29kZWMveDg2L21lX2NtcF9pbml0LmMgfCAgNCAtLS0tCiAyIGZpbGVz IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv bGliYXZjb2RlYy94ODYvbWVfY21wLmFzbSBiL2xpYmF2Y29kZWMveDg2L21lX2NtcC5hc20KaW5k ZXggNDU0NWVhZTI3Ni4uZTEyMzA4OWJhMyAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvbWVf Y21wLmFzbQorKysgYi9saWJhdmNvZGVjL3g4Ni9tZV9jbXAuYXNtCkBAIC0xNTIsMjMgKzE1Miwx MSBAQCBTRUNUSU9OIC50ZXh0CiAlZW5kbWFjcm8KIAogJW1hY3JvIGhhZGFtYXJkOF8xNl93cmFw cGVyIDIKLWNnbG9iYWwgaGFkYW1hcmQ4X2RpZmYsIDQsIDQsICUxCi0laWZuZGVmIG04Ci0gICAg JWFzc2lnbiBwYWQgJTIqbW1zaXplLSg0K3N0YWNrX29mZnNldCYobW1zaXplLTEpKQotICAgIFNV QiAgICAgICAgICAgIHJzcCwgcGFkCi0lZW5kaWYKK2NnbG9iYWwgaGFkYW1hcmQ4X2RpZmYsIDQs IDQsICUxLCAlMiptbXNpemUKICAgICBjYWxsIGhhZGFtYXJkOHg4X2RpZmYgJSsgU1VGRklYCi0l aWZuZGVmIG04Ci0gICAgQUREICAgICAgICAgICAgcnNwLCBwYWQKLSVlbmRpZgogICAgIFJFVAog Ci1jZ2xvYmFsIGhhZGFtYXJkOF9kaWZmMTYsIDUsIDYsICUxCi0laWZuZGVmIG04Ci0gICAgJWFz c2lnbiBwYWQgJTIqbW1zaXplLSg0K3N0YWNrX29mZnNldCYobW1zaXplLTEpKQotICAgIFNVQiAg ICAgICAgICAgIHJzcCwgcGFkCi0lZW5kaWYKLQorY2dsb2JhbCBoYWRhbWFyZDhfZGlmZjE2LCA1 LCA2LCAlMSwgJTIqbW1zaXplCiAgICAgY2FsbCBoYWRhbWFyZDh4OF9kaWZmICUrIFNVRkZJWAog ICAgIG1vdiAgICAgICAgICAgIHI1ZCwgZWF4CiAKQEAgLTE5Miw5ICsxODAsNiBAQCBjZ2xvYmFs IGhhZGFtYXJkOF9kaWZmMTYsIDUsIDYsICUxCiAKIC5kb25lOgogICAgIG1vdiAgICAgICAgICAg IGVheCwgcjVkCi0laWZuZGVmIG04Ci0gICAgQUREICAgICAgICAgICAgcnNwLCBwYWQKLSVlbmRp ZgogICAgIFJFVAogJWVuZG1hY3JvCiAKQEAgLTIxNSw3ICsyMDAsNyBAQCBoYWRhbWFyZDh4OF9k aWZmICUrIFNVRkZJWDoKICAgICBhbmQgICAgICAgICAgICAgICAgICAgICAgICAgZWF4LCAweEZG RkYKICAgICByZXQKIAotaGFkYW1hcmQ4XzE2X3dyYXBwZXIgJTEsIDMKK2hhZGFtYXJkOF8xNl93 cmFwcGVyICUxLCAyKkFSQ0hfWDg2XzMyCiAlZWxpZiBjcHVmbGFnKG1teCkKIEFMSUdOIDE2CiA7 IGludCBmZl9oYWRhbWFyZDhfZGlmZl8gIyMgY3B1KE1QVkVuY0NvbnRleHQgKnMsIGNvbnN0IHVp bnQ4X3QgKnNyYzEsCkBAIC0yNjEsNyArMjQ2LDcgQEAgaGFkYW1hcmQ4eDhfZGlmZiAlKyBTVUZG SVg6CiAgICAgYW5kICAgICAgICAgICAgICAgICAgICAgICAgIHJheCwgMHhGRkZGCiAgICAgcmV0 CiAKLWhhZGFtYXJkOF8xNl93cmFwcGVyIDAsIDE0CitoYWRhbWFyZDhfMTZfd3JhcHBlciAwLCAx MwogJWVuZGlmCiAlZW5kbWFjcm8KIApkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvbWVfY21w X2luaXQuYyBiL2xpYmF2Y29kZWMveDg2L21lX2NtcF9pbml0LmMKaW5kZXggZDQ1MDNlZWYzYi4u MzVhYmJiZjdmNSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvbWVfY21wX2luaXQuYworKysg Yi9saWJhdmNvZGVjL3g4Ni9tZV9jbXBfaW5pdC5jCkBAIC0xNDYsMTAgKzE0Niw4IEBAIGF2X2Nv bGQgdm9pZCBmZl9tZV9jbXBfaW5pdF94ODYoTUVDbXBDb250ZXh0ICpjLCBBVkNvZGVjQ29udGV4 dCAqYXZjdHgpCiAgICAgICAgIGMtPnBpeF9hYnNbMF1bMl0gPSBmZl9zYWQxNl95Ml9zc2UyOwog ICAgICAgICBjLT5waXhfYWJzWzBdWzNdID0gZmZfc2FkMTZfeHkyX3NzZTI7CiAKLSNpZiBIQVZF X0FMSUdORURfU1RBQ0sKICAgICAgICAgYy0+aGFkYW1hcmQ4X2RpZmZbMF0gPSBmZl9oYWRhbWFy ZDhfZGlmZjE2X3NzZTI7CiAgICAgICAgIGMtPmhhZGFtYXJkOF9kaWZmWzFdID0gZmZfaGFkYW1h cmQ4X2RpZmZfc3NlMjsKLSNlbmRpZgogICAgICAgICBpZiAoYXZjdHgtPmNvZGVjX2lkICE9IEFW X0NPREVDX0lEX1NOT1cpIHsKICAgICAgICAgICAgIGMtPnNhZFswXSAgICAgICAgPSBmZl9zYWQx Nl9zc2UyOwogCkBAIC0xNzksMTAgKzE3Nyw4IEBAIGF2X2NvbGQgdm9pZCBmZl9tZV9jbXBfaW5p dF94ODYoTUVDbXBDb250ZXh0ICpjLCBBVkNvZGVjQ29udGV4dCAqYXZjdHgpCiAgICAgICAgIGMt Pm5zc2VbMV0gICAgICAgICAgID0gbnNzZThfc3NzZTM7CiAKICAgICAgICAgYy0+c3VtX2Fic19k Y3RlbGVtICAgPSBmZl9zdW1fYWJzX2RjdGVsZW1fc3NzZTM7Ci0jaWYgSEFWRV9BTElHTkVEX1NU QUNLCiAgICAgICAgIGMtPmhhZGFtYXJkOF9kaWZmWzBdID0gZmZfaGFkYW1hcmQ4X2RpZmYxNl9z c3NlMzsKICAgICAgICAgYy0+aGFkYW1hcmQ4X2RpZmZbMV0gPSBmZl9oYWRhbWFyZDhfZGlmZl9z c3NlMzsKLSNlbmRpZgogICAgIH0KICNlbmRpZgogfQotLSAKMi41Mi4wCgoKRnJvbSBmODA4Yjc4 ZWJiYzA3YWYyNGI1NTBmMjcyNDI1ODU0NTljYTM3Yjg1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNv bT4KRGF0ZTogVHVlLCAyNSBOb3YgMjAyNSAxNTo0NTo0NCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDY3LzMwNF0gYXZjb2RlYy9tZV9jbXA6IFJlbW92ZSBNTVhFWFQgaGFkYW1hcmQgZGlmZiBmdW5j dGlvbnMKClRoZSBTU0UyIGFuZCBTU1NFMyBmdW5jdGlvbnMgYXJlIG5vdyBhdmFpbGFibGUgZXZl cnl3aGVyZSwKbWFraW5nIHRoZSBNTVhFWFQgZnVuY3Rpb25zIGlycmVsZXZhbnQuCgpTaWduZWQt b2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNv bT4KLS0tCiBsaWJhdmNvZGVjL3g4Ni9tZV9jbXAuYXNtICAgIHwgODggKystLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBsaWJhdmNvZGVjL3g4Ni9tZV9jbXBfaW5pdC5jIHwgIDYg LS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgOTAgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvbWVfY21wLmFzbSBiL2xpYmF2Y29kZWMveDg2L21l X2NtcC5hc20KaW5kZXggZTEyMzA4OWJhMy4uMmExOTZkMDNiYiAxMDA2NDQKLS0tIGEvbGliYXZj b2RlYy94ODYvbWVfY21wLmFzbQorKysgYi9saWJhdmNvZGVjL3g4Ni9tZV9jbXAuYXNtCkBAIC0x MTIsNyArMTEyLDYgQEAgU0VDVElPTiAudGV4dAogOyBhYm91dCAxMDBrIG9uIGV4dHJlbWUgaW5w dXRzLiBCdXQgdGhhdCdzIHZlcnkgdW5saWtlbHkgdG8gb2NjdXIgaW4gbmF0dXJhbCB2aWRlbywK IDsgYW5kIGl0J3MgZXZlbiBtb3JlIHVubGlrZWx5IHRvIG5vdCBoYXZlIGFueSBhbHRlcm5hdGl2 ZSBtdnMvbW9kZXMgd2l0aCBsb3dlciBjb3N0LgogJW1hY3JvIEhTVU0gMwotJWlmIGNwdWZsYWco c3NlMikKICAgICBtb3ZobHBzICAgICAgICAgJTIsICUxCiAgICAgcGFkZHVzdyAgICAgICAgICUx LCAlMgogICAgIHBzaHVmbHcgICAgICAgICAlMiwgJTEsIDB4RQpAQCAtMTIwLDM1ICsxMTksNiBA QCBTRUNUSU9OIC50ZXh0CiAgICAgcHNodWZsdyAgICAgICAgICUyLCAlMSwgMHgxCiAgICAgcGFk ZHVzdyAgICAgICAgICUxLCAlMgogICAgIG1vdmQgICAgICAgICAgICAlMywgJTEKLSVlbGlmIGNw dWZsYWcobW14ZXh0KQotICAgIHBzaHVmdyAgICAgICAgICAlMiwgJTEsIDB4RQotICAgIHBhZGR1 c3cgICAgICAgICAlMSwgJTIKLSAgICBwc2h1ZncgICAgICAgICAgJTIsICUxLCAweDEKLSAgICBw YWRkdXN3ICAgICAgICAgJTEsICUyCi0gICAgbW92ZCAgICAgICAgICAgICUzLCAlMQotJWVsaWYg Y3B1ZmxhZyhtbXgpCi0gICAgbW92YSAgICAgICAgICAgICUyLCAlMQotICAgIHBzcmxxICAgICAg ICAgICAlMSwgMzIKLSAgICBwYWRkdXN3ICAgICAgICAgJTEsICUyCi0gICAgbW92YSAgICAgICAg ICAgICUyLCAlMQotICAgIHBzcmxxICAgICAgICAgICAlMSwgMTYKLSAgICBwYWRkdXN3ICAgICAg ICAgJTEsICUyCi0gICAgbW92ZCAgICAgICAgICAgICUzLCAlMQotJWVuZGlmCi0lZW5kbWFjcm8K LQotJW1hY3JvIFNUT1JFNCA1Ci0gICAgbW92YSBbJTErbW1zaXplKjBdLCAlMgotICAgIG1vdmEg WyUxK21tc2l6ZSoxXSwgJTMKLSAgICBtb3ZhIFslMSttbXNpemUqMl0sICU0Ci0gICAgbW92YSBb JTErbW1zaXplKjNdLCAlNQotJWVuZG1hY3JvCi0KLSVtYWNybyBMT0FENCA1Ci0gICAgbW92YSAg ICAgICAgICAgICUyLCBbJTErbW1zaXplKjBdCi0gICAgbW92YSAgICAgICAgICAgICUzLCBbJTEr bW1zaXplKjFdCi0gICAgbW92YSAgICAgICAgICAgICU0LCBbJTErbW1zaXplKjJdCi0gICAgbW92 YSAgICAgICAgICAgICU1LCBbJTErbW1zaXplKjNdCiAlZW5kbWFjcm8KIAogJW1hY3JvIGhhZGFt YXJkOF8xNl93cmFwcGVyIDIKQEAgLTE4Myw4ICsxNTMsMTAgQEAgY2dsb2JhbCBoYWRhbWFyZDhf ZGlmZjE2LCA1LCA2LCAlMSwgJTIqbW1zaXplCiAgICAgUkVUCiAlZW5kbWFjcm8KIAotJW1hY3Jv IEhBREFNQVJEOF9ESUZGIDAtMQotJWlmIGNwdWZsYWcoc3NlMikKKyVtYWNybyBIQURBTUFSRDhf RElGRiAxCis7IHIxLCByMiBhbmQgcjMgYXJlIG5vdCBjbG9iYmVyZWQgaW4gdGhpcyBmdW5jdGlv biwgc28gMTZ4MTYgY2FuCis7IHNpbXBseSBjYWxsIHRoaXMgMngyeCAoYW5kIHRoYXQncyB3aHkg d2UgYWNjZXNzIHJzcCtncHJzaXplCis7IGV2ZXJ5d2hlcmUsIHdoaWNoIGlzIHJzcCBvZiBjYWxs aW5nIGZ1bmN0aW9uKQogaGFkYW1hcmQ4eDhfZGlmZiAlKyBTVUZGSVg6CiAgICAgbGVhICAgICAg ICAgICAgICAgICAgICAgICAgICByMCwgW3IzKjNdCiAgICAgRElGRl9QSVhFTFNfOCAgICAgICAg ICAgICAgICByMSwgcjIsICAwLCByMywgcjAsIHJzcCtncHJzaXplCkBAIC0yMDEsNjAgKzE3Myw4 IEBAIGhhZGFtYXJkOHg4X2RpZmYgJSsgU1VGRklYOgogICAgIHJldAogCiBoYWRhbWFyZDhfMTZf d3JhcHBlciAlMSwgMipBUkNIX1g4Nl8zMgotJWVsaWYgY3B1ZmxhZyhtbXgpCi1BTElHTiAxNgot OyBpbnQgZmZfaGFkYW1hcmQ4X2RpZmZfICMjIGNwdShNUFZFbmNDb250ZXh0ICpzLCBjb25zdCB1 aW50OF90ICpzcmMxLAotOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50 OF90ICpzcmMyLCBwdHJkaWZmX3Qgc3RyaWRlLCBpbnQgaCkKLTsgcjAgPSB2b2lkICpzID0gdW51 c2VkLCBpbnQgaCA9IHVudXNlZCAoYWx3YXlzIDgpCi07IG5vdGUgaG93IHIxLCByMiBhbmQgcjMg YXJlIG5vdCBjbG9iYmVyZWQgaW4gdGhpcyBmdW5jdGlvbiwgc28gMTZ4MTYKLTsgY2FuIHNpbXBs eSBjYWxsIHRoaXMgMngyeCAoYW5kIHRoYXQncyB3aHkgd2UgYWNjZXNzIHJzcCtncHJzaXplCi07 IGV2ZXJ5d2hlcmUsIHdoaWNoIGlzIHJzcCBvZiBjYWxsaW5nIGZ1bmMKLWhhZGFtYXJkOHg4X2Rp ZmYgJSsgU1VGRklYOgotICAgIGxlYSAgICAgICAgICAgICAgICAgICAgICAgICAgcjAsIFtyMyoz XQotCi0gICAgOyBmaXJzdCA0eDggcGl4ZWxzCi0gICAgRElGRl9QSVhFTFNfOCAgICAgICAgICAg ICAgICByMSwgcjIsICAwLCByMywgcjAsIHJzcCtncHJzaXplKzB4NjAKLSAgICBIQURBTUFSRDgK LSAgICBtb3ZhICAgICAgICAgW3JzcCtncHJzaXplKzB4NjBdLCBtNwotICAgIFRSQU5TUE9TRTR4 NFcgICAgICAgICAgICAgICAgIDAsICAxLCAgMiwgIDMsICA3Ci0gICAgU1RPUkU0ICAgICAgICAg ICAgICByc3ArZ3Byc2l6ZSwgbTAsIG0xLCBtMiwgbTMKLSAgICBtb3ZhICAgICAgICAgICAgICAg ICAgICAgICAgIG03LCBbcnNwK2dwcnNpemUrMHg2MF0KLSAgICBUUkFOU1BPU0U0eDRXICAgICAg ICAgICAgICAgICA0LCAgNSwgIDYsICA3LCAgMAotICAgIFNUT1JFNCAgICAgICAgIHJzcCtncHJz aXplKzB4NDAsIG00LCBtNSwgbTYsIG03Ci0KLSAgICA7IHNlY29uZCA0eDggcGl4ZWxzCi0gICAg RElGRl9QSVhFTFNfOCAgICAgICAgICAgICAgICByMSwgcjIsICA0LCByMywgcjAsIHJzcCtncHJz aXplKzB4NjAKLSAgICBIQURBTUFSRDgKLSAgICBtb3ZhICAgICAgICAgW3JzcCtncHJzaXplKzB4 NjBdLCBtNwotICAgIFRSQU5TUE9TRTR4NFcgICAgICAgICAgICAgICAgIDAsICAxLCAgMiwgIDMs ICA3Ci0gICAgU1RPUkU0ICAgICAgICAgcnNwK2dwcnNpemUrMHgyMCwgbTAsIG0xLCBtMiwgbTMK LSAgICBtb3ZhICAgICAgICAgICAgICAgICAgICAgICAgIG03LCBbcnNwK2dwcnNpemUrMHg2MF0K LSAgICBUUkFOU1BPU0U0eDRXICAgICAgICAgICAgICAgICA0LCAgNSwgIDYsICA3LCAgMAotCi0g ICAgTE9BRDQgICAgICAgICAgcnNwK2dwcnNpemUrMHg0MCwgbTAsIG0xLCBtMiwgbTMKLSAgICBI QURBTUFSRDgKLSAgICBBQlNfU1VNXzh4OF8zMiByc3ArZ3Byc2l6ZSsweDYwCi0gICAgbW92YSAg ICAgICAgIFtyc3ArZ3Byc2l6ZSsweDYwXSwgbTAKLQotICAgIExPQUQ0ICAgICAgICAgIHJzcCtn cHJzaXplICAgICAsIG0wLCBtMSwgbTIsIG0zCi0gICAgTE9BRDQgICAgICAgICAgcnNwK2dwcnNp emUrMHgyMCwgbTQsIG01LCBtNiwgbTcKLSAgICBIQURBTUFSRDgKLSAgICBBQlNfU1VNXzh4OF8z MiByc3ArZ3Byc2l6ZQotICAgIHBhZGR1c3cgICAgICAgICAgICAgICAgICAgICAgbTAsIFtyc3Ar Z3Byc2l6ZSsweDYwXQotCi0gICAgSFNVTSAgICAgICAgICAgICAgICAgICAgICAgICBtMCwgbTEs IGVheAotICAgIGFuZCAgICAgICAgICAgICAgICAgICAgICAgICByYXgsIDB4RkZGRgotICAgIHJl dAotCi1oYWRhbWFyZDhfMTZfd3JhcHBlciAwLCAxMwotJWVuZGlmCiAlZW5kbWFjcm8KIAotJWlm IEhBVkVfQUxJR05FRF9TVEFDSyA9PSAwCi1JTklUX01NWCBtbXhleHQKLUhBREFNQVJEOF9ESUZG Ci0lZW5kaWYKLQogSU5JVF9YTU0gc3NlMgogJWlmIEFSQ0hfWDg2XzY0CiAlZGVmaW5lIEFCU19T VU1fOHg4IEFCU19TVU1fOHg4XzY0CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni9tZV9jbXBf aW5pdC5jIGIvbGliYXZjb2RlYy94ODYvbWVfY21wX2luaXQuYwppbmRleCAzNWFiYmJmN2Y1Li4z YThiNDZmNGUxIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4Ni9tZV9jbXBfaW5pdC5jCisrKyBi L2xpYmF2Y29kZWMveDg2L21lX2NtcF9pbml0LmMKQEAgLTc3LDcgKzc3LDYgQEAgaW50IGZmX3Zz YWQxNnVfYXBwcm94X3NzZTIoTVBWRW5jQ29udGV4dCAqdiwgY29uc3QgdWludDhfdCAqcGl4MSwg Y29uc3QgdWludDhfdAogICAgIGludCBmZl9oYWRhbWFyZDhfZGlmZjE2XyAjIyBjcHUoTVBWRW5j Q29udGV4dCAqcywgY29uc3QgdWludDhfdCAqc3JjMSwgICAgICAgXAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqc3JjMiwgcHRyZGlmZl90IHN0cmlk ZSwgaW50IGgpOwogCi1oYWRhbWFyZF9mdW5jKG1teGV4dCkKIGhhZGFtYXJkX2Z1bmMoc3NlMikK IGhhZGFtYXJkX2Z1bmMoc3NzZTMpCiAKQEAgLTExNiwxMSArMTE1LDYgQEAgYXZfY29sZCB2b2lk IGZmX21lX2NtcF9pbml0X3g4NihNRUNtcENvbnRleHQgKmMsIEFWQ29kZWNDb250ZXh0ICphdmN0 eCkKICAgICBpbnQgY3B1X2ZsYWdzID0gYXZfZ2V0X2NwdV9mbGFncygpOwogCiAgICAgaWYgKEVY VEVSTkFMX01NWEVYVChjcHVfZmxhZ3MpKSB7Ci0jaWYgIUhBVkVfQUxJR05FRF9TVEFDSwotICAg ICAgICBjLT5oYWRhbWFyZDhfZGlmZlswXSA9IGZmX2hhZGFtYXJkOF9kaWZmMTZfbW14ZXh0Owot ICAgICAgICBjLT5oYWRhbWFyZDhfZGlmZlsxXSA9IGZmX2hhZGFtYXJkOF9kaWZmX21teGV4dDsK LSNlbmRpZgotCiAgICAgICAgIGMtPnNhZFsxXSA9IGZmX3NhZDhfbW14ZXh0OwogCiAgICAgICAg IGMtPnBpeF9hYnNbMV1bMF0gPSBmZl9zYWQ4X21teGV4dDsKLS0gCjIuNTIuMAoKCkZyb20gNzYw MWRhMjBiN2M3OTgyZTA3NTAxZDRiMGE5OTdmNTI0ZWQ2MGQ4ZiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9v ay5jb20+CkRhdGU6IFR1ZSwgMjUgTm92IDIwMjUgMTY6Mjg6NTEgKzAxMDAKU3ViamVjdDogW1BB VENIIDA2OC8zMDRdIGF2Y29kZWMveDg2L21lX2NtcDogQXZvaWQgY2FsbCBvbiBVTklYNjQKClRo ZSBpbnRlcm5hbCBmdW5jdGlvbnMgZm9yIGNhbGN1bGF0aW5nIHRoZSBoYWRhbWFyZCBkaWZmZXJl bmNlCm9mIHR3byA4eDggYmxvY2tzIGhhdmUgbm8gZXBpbG9ndWUgb24gVU5JWDY0LCBzbyBvbmUg Y2FuIGF2b2lkCnRoZSBjYWxsIGFsdG9nZXRoZXIgYnkgcGxhY2luZyB0aGUgOHg4IGZ1bmN0aW9u IHNvIHRoYXQgaXQgZGlyZWN0bHkKZmFsbHMgaW50byB0aGUgaW50ZXJuYWwgZnVuY3Rpb24uCgpT aWduZWQtb2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRs b29rLmNvbT4KLS0tCiBsaWJhdmNvZGVjL3g4Ni9tZV9jbXAuYXNtIHwgMTUgKysrKystLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni9tZV9jbXAuYXNtIGIvbGliYXZjb2RlYy94ODYvbWVf Y21wLmFzbQppbmRleCAyYTE5NmQwM2JiLi4zYWM4YWNlZTJjIDEwMDY0NAotLS0gYS9saWJhdmNv ZGVjL3g4Ni9tZV9jbXAuYXNtCisrKyBiL2xpYmF2Y29kZWMveDg2L21lX2NtcC5hc20KQEAgLTEy MSwxMiArMTIxLDggQEAgU0VDVElPTiAudGV4dAogICAgIG1vdmQgICAgICAgICAgICAlMywgJTEK ICVlbmRtYWNybwogCi0lbWFjcm8gaGFkYW1hcmQ4XzE2X3dyYXBwZXIgMgotY2dsb2JhbCBoYWRh bWFyZDhfZGlmZiwgNCwgNCwgJTEsICUyKm1tc2l6ZQotICAgIGNhbGwgaGFkYW1hcmQ4eDhfZGlm ZiAlKyBTVUZGSVgKLSAgICBSRVQKLQotY2dsb2JhbCBoYWRhbWFyZDhfZGlmZjE2LCA1LCA2LCAl MSwgJTIqbW1zaXplCislbWFjcm8gSEFEQU1BUkQ4X0RJRkYgMQorY2dsb2JhbCBoYWRhbWFyZDhf ZGlmZjE2LCA1LCA2LCAlMSwgMiptbXNpemUqQVJDSF9YODZfMzIKICAgICBjYWxsIGhhZGFtYXJk OHg4X2RpZmYgJSsgU1VGRklYCiAgICAgbW92ICAgICAgICAgICAgcjVkLCBlYXgKIApAQCAtMTUx LDkgKzE0NywxMCBAQCBjZ2xvYmFsIGhhZGFtYXJkOF9kaWZmMTYsIDUsIDYsICUxLCAlMiptbXNp emUKIC5kb25lOgogICAgIG1vdiAgICAgICAgICAgIGVheCwgcjVkCiAgICAgUkVUCi0lZW5kbWFj cm8KIAotJW1hY3JvIEhBREFNQVJEOF9ESUZGIDEKK2NnbG9iYWwgaGFkYW1hcmQ4X2RpZmYsIDQs IDQsICUxLCAyKm1tc2l6ZSpBUkNIX1g4Nl8zMgorICAgIFRBSUxfQ0FMTCBoYWRhbWFyZDh4OF9k aWZmICUrIFNVRkZJWCwgMAorCiA7IHIxLCByMiBhbmQgcjMgYXJlIG5vdCBjbG9iYmVyZWQgaW4g dGhpcyBmdW5jdGlvbiwgc28gMTZ4MTYgY2FuCiA7IHNpbXBseSBjYWxsIHRoaXMgMngyeCAoYW5k IHRoYXQncyB3aHkgd2UgYWNjZXNzIHJzcCtncHJzaXplCiA7IGV2ZXJ5d2hlcmUsIHdoaWNoIGlz IHJzcCBvZiBjYWxsaW5nIGZ1bmN0aW9uKQpAQCAtMTcxLDggKzE2OCw2IEBAIGhhZGFtYXJkOHg4 X2RpZmYgJSsgU1VGRklYOgogICAgIEhTVU0gICAgICAgICAgICAgICAgICAgICAgICBtMCwgbTEs IGVheAogICAgIGFuZCAgICAgICAgICAgICAgICAgICAgICAgICBlYXgsIDB4RkZGRgogICAgIHJl dAotCi1oYWRhbWFyZDhfMTZfd3JhcHBlciAlMSwgMipBUkNIX1g4Nl8zMgogJWVuZG1hY3JvCiAK IElOSVRfWE1NIHNzZTIKLS0gCjIuNTIuMAoKCkZyb20gMTllMTk0MWIxMjBlYzZkOWE1MmU2NjFh NTU5MTBkZDAxMjI2OThlMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJheiBJdXN1 Ym92IDxQcmltZWFkdmljZUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTAgTm92IDIwMjUgMTc6MjM6 MjUgKzAxMDAKU3ViamVjdDogW1BBVENIIDA2OS8zMDRdIGF2Y29kZWMvZDNkMTJ2YV9lbmNvZGU6 IEQzRDEyIEFWMSBlbmNvZGluZyBzdXBwb3J0CgpJbXBsZW1lbnQgQVYxIGhhcmR3YXJlIGVuY29k aW5nCnVzaW5nIERpcmVjdDNEIDEyIFZpZGVvIEFQSSAoRDNEMTJWQSkuCi0tLQogQ2hhbmdlbG9n ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogY29uZmlndXJlICAgICAgICAgICAgICAg ICAgICAgICB8ICAgIDMgKwogbGliYXZjb2RlYy9NYWtlZmlsZSAgICAgICAgICAgICB8ICAgIDEg KwogbGliYXZjb2RlYy9hbGxjb2RlY3MuYyAgICAgICAgICB8ICAgIDEgKwogbGliYXZjb2RlYy9k M2QxMnZhX2VuY29kZS5jICAgICB8ICAgNDUgKy0KIGxpYmF2Y29kZWMvZDNkMTJ2YV9lbmNvZGUu aCAgICAgfCAgIDEzICsKIGxpYmF2Y29kZWMvZDNkMTJ2YV9lbmNvZGVfYXYxLmMgfCAxMTgyICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMTI0MSBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMv ZDNkMTJ2YV9lbmNvZGVfYXYxLmMKCmRpZmYgLS1naXQgYS9DaGFuZ2Vsb2cgYi9DaGFuZ2Vsb2cK aW5kZXggYjRjMjNhYzFlZS4uNDY0ODg5OWNhMyAxMDA2NDQKLS0tIGEvQ2hhbmdlbG9nCisrKyBi L0NoYW5nZWxvZwpAQCAtMTAsNiArMTAsNyBAQCB2ZXJzaW9uIDxuZXh0PjoKIC0gRDNEMTIgSC4y NjQgZW5jb2RlcgogLSBkcmF3dmcgZmlsdGVyIHZpYSBsaWJjYWlybwogLSBmZm1wZWcgQ0xJIHRp bGVkIEhFSUYgc3VwcG9ydAorLSBEM0QxMiBBVjEgZW5jb2RlcgogCiAKIHZlcnNpb24gOC4wOgpk aWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IDk5NzM0ZTlkMDMuLjdlZjUw MDk1YTMgMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysgYi9jb25maWd1cmUKQEAgLTM0NDQsNiAr MzQ0NCw4IEBAIGFtcndiX21lZGlhY29kZWNfZGVjb2Rlcl9zZWxlY3Q9ImFtcl9wYXJzZXIiCiBh djFfYW1mX2VuY29kZXJfZGVwcz0iYW1mIgogYXYxX2FtZl9kZWNvZGVyX2RlcHM9ImFtZiIKIGF2 MV9jdXZpZF9kZWNvZGVyX2RlcHM9ImN1dmlkIENVVklEQVYxUElDUEFSQU1TIgorYXYxX2QzZDEy dmFfZW5jb2Rlcl9kZXBzPSJkM2QxMnZhIGQzZDEydmFfYXYxX2hlYWRlcnMiCithdjFfZDNkMTJ2 YV9lbmNvZGVyX3NlbGVjdD0iY2JzX2F2MSBkM2QxMnZhX2VuY29kZSIKIGF2MV9tZWRpYWNvZGVj X2RlY29kZXJfZGVwcz0ibWVkaWFjb2RlYyIKIGF2MV9tZWRpYWNvZGVjX2VuY29kZXJfZGVwcz0i bWVkaWFjb2RlYyIKIGF2MV9tZWRpYWNvZGVjX2VuY29kZXJfc2VsZWN0PSJleHRyYWN0X2V4dHJh ZGF0YV9ic2YiCkBAIC02OTU4LDYgKzY5NjAsNyBAQCBjaGVja190eXBlICJ3aW5kb3dzLmggZDNk MTJ2aWRlby5oIiAiSUQzRDEyVmlkZW9EZWNvZGVyIgogY2hlY2tfdHlwZSAid2luZG93cy5oIGQz ZDEydmlkZW8uaCIgIklEM0QxMlZpZGVvRW5jb2RlciIKIHRlc3RfY29kZSBjYyAid2luZG93cy5o IGQzZDEydmlkZW8uaCIgIkQzRDEyX0ZFQVRVUkVfVklERU8gZmVhdHVyZSA9IEQzRDEyX0ZFQVRV UkVfVklERU9fRU5DT0RFUl9DT0RFQyIgJiYgXAogdGVzdF9jb2RlIGNjICJ3aW5kb3dzLmggZDNk MTJ2aWRlby5oIiAiRDNEMTJfRkVBVFVSRV9EQVRBX1ZJREVPX0VOQ09ERVJfUkVTT1VSQ0VfUkVR VUlSRU1FTlRTIHJlcSIgJiYgZW5hYmxlIGQzZDEyX2VuY29kZXJfZmVhdHVyZQordGVzdF9jb2Rl IGNjICJ3aW5kb3dzLmggZDNkMTJ2aWRlby5oIiAiRDNEMTJfVklERU9fRU5DT0RFUl9DT0RFQyBj ID0gRDNEMTJfVklERU9fRU5DT0RFUl9DT0RFQ19BVjE7ICh2b2lkKWM7IiAmJiBlbmFibGUgZDNk MTJ2YV9hdjFfaGVhZGVycwogY2hlY2tfdHlwZSAid2luZG93cy5oIiAiRFBJX0FXQVJFTkVTU19D T05URVhUIiAtRF9XSU4zMl9XSU5OVD0weDBBMDAKIGNoZWNrX3R5cGUgIndpbmRvd3MuaCBzZWN1 cml0eS5oIHNjaG5sc3AuaCIgU2VjUGtnQ29udGV4dF9LZXlpbmdNYXRlcmlhbEluZm8gLURTRUNV UklUWV9XSU4zMgogY2hlY2tfdHlwZSAiZDNkOS5oIGR4dmEyYXBpLmgiIERYVkEyX0NvbmZpZ1Bp Y3R1cmVEZWNvZGUgLURfV0lOMzJfV0lOTlQ9MHgwNjAyCmRpZmYgLS1naXQgYS9saWJhdmNvZGVj L01ha2VmaWxlIGIvbGliYXZjb2RlYy9NYWtlZmlsZQppbmRleCAwY2QyNDA4ODY1Li5mYmE5ZjBh ZmYwIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL01ha2VmaWxlCisrKyBiL2xpYmF2Y29kZWMvTWFr ZWZpbGUKQEAgLTI3NCw2ICsyNzQsNyBAQCBPQkpTLSQoQ09ORklHX0FVUkFfREVDT0RFUikgICAg ICAgICAgICArPSBjeXV2Lm8KIE9CSlMtJChDT05GSUdfQVVSQTJfREVDT0RFUikgICAgICAgICAg ICs9IGF1cmEubwogT0JKUy0kKENPTkZJR19BVjFfREVDT0RFUikgICAgICAgICAgICAgKz0gYXYx ZGVjLm8gYXYxX3BhcnNlLm8KIE9CSlMtJChDT05GSUdfQVYxX0NVVklEX0RFQ09ERVIpICAgICAg ICs9IGN1dmlkZGVjLm8KK09CSlMtJChDT05GSUdfQVYxX0QzRDEyVkFfRU5DT0RFUikgICAgICs9 IGQzZDEydmFfZW5jb2RlX2F2MS5vIGF2MV9sZXZlbHMubwogT0JKUy0kKENPTkZJR19BVjFfTUVE SUFDT0RFQ19ERUNPREVSKSAgKz0gbWVkaWFjb2RlY2RlYy5vCiBPQkpTLSQoQ09ORklHX0FWMV9N RURJQUNPREVDX0VOQ09ERVIpICArPSBtZWRpYWNvZGVjZW5jLm8KIE9CSlMtJChDT05GSUdfQVYx X05WRU5DX0VOQ09ERVIpICAgICAgICs9IG52ZW5jX2F2MS5vIG52ZW5jLm8KZGlmZiAtLWdpdCBh L2xpYmF2Y29kZWMvYWxsY29kZWNzLmMgYi9saWJhdmNvZGVjL2FsbGNvZGVjcy5jCmluZGV4IDI1 MWZmYWUzOTAuLmNjZTIzZDE1NDEgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMK KysrIGIvbGliYXZjb2RlYy9hbGxjb2RlY3MuYwpAQCAtODU1LDYgKzg1NSw3IEBAIGV4dGVybiBj b25zdCBGRkNvZGVjIGZmX2xpYmFvbV9hdjFfZGVjb2RlcjsKIC8qIGh3YWNjZWwgaG9va3Mgb25s eSwgc28gcHJlZmVyIGV4dGVybmFsIGRlY29kZXJzICovCiBleHRlcm4gY29uc3QgRkZDb2RlYyBm Zl9hdjFfZGVjb2RlcjsKIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2F2MV9jdXZpZF9kZWNvZGVy OworZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfYXYxX2QzZDEydmFfZW5jb2RlcjsKIGV4dGVybiBj b25zdCBGRkNvZGVjIGZmX2F2MV9tZWRpYWNvZGVjX2RlY29kZXI7CiBleHRlcm4gY29uc3QgRkZD b2RlYyBmZl9hdjFfbWVkaWFjb2RlY19lbmNvZGVyOwogZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZf YXYxX252ZW5jX2VuY29kZXI7CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2QzZDEydmFfZW5jb2Rl LmMgYi9saWJhdmNvZGVjL2QzZDEydmFfZW5jb2RlLmMKaW5kZXggYWE4YTU5ODJiZS4uZDI4NDQ3 YzNjOSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9kM2QxMnZhX2VuY29kZS5jCisrKyBiL2xpYmF2 Y29kZWMvZDNkMTJ2YV9lbmNvZGUuYwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgImxpYmF2 dXRpbC9od2NvbnRleHRfZDNkMTJ2YV9pbnRlcm5hbC5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9o d2NvbnRleHRfZDNkMTJ2YS5oIgogCisjaW5jbHVkZSAiY29uZmlnX2NvbXBvbmVudHMuaCIKICNp bmNsdWRlICJhdmNvZGVjLmgiCiAjaW5jbHVkZSAiZDNkMTJ2YV9lbmNvZGUuaCIKICNpbmNsdWRl ICJlbmNvZGUuaCIKQEAgLTE0NCw2ICsxNDUsMTIgQEAgc3RhdGljIGludCBkM2QxMnZhX2VuY29k ZV9jcmVhdGVfbWV0YWRhdGFfYnVmZmVycyhBVkNvZGVjQ29udGV4dCAqYXZjdHgsCiB7CiAgICAg RDNEMTJWQUVuY29kZUNvbnRleHQgKmN0eCA9IGF2Y3R4LT5wcml2X2RhdGE7CiAgICAgaW50IHdp ZHRoID0gc2l6ZW9mKEQzRDEyX1ZJREVPX0VOQ09ERVJfT1VUUFVUX01FVEFEQVRBKSArIHNpemVv ZihEM0QxMl9WSURFT19FTkNPREVSX0ZSQU1FX1NVQlJFR0lPTl9NRVRBREFUQSk7CisjaWYgQ09O RklHX0FWMV9EM0QxMlZBX0VOQ09ERVIKKyAgICBpZiAoY3R4LT5jb2RlYy0+ZDNkMTJfY29kZWMg PT0gRDNEMTJfVklERU9fRU5DT0RFUl9DT0RFQ19BVjEpIHsKKyAgICAgICAgd2lkdGggKz0gc2l6 ZW9mKEQzRDEyX1ZJREVPX0VOQ09ERVJfQVYxX1BJQ1RVUkVfQ09OVFJPTF9TVUJSRUdJT05TX0xB WU9VVF9EQVRBX1RJTEVTKQorICAgICAgICAgICAgKyBzaXplb2YoRDNEMTJfVklERU9fRU5DT0RF Ul9BVjFfUE9TVF9FTkNPREVfVkFMVUVTKTsKKyAgICB9CisjZW5kaWYKICAgICBEM0QxMl9IRUFQ X1BST1BFUlRJRVMgZW5jb2RlZF9tZXRhX3Byb3BzID0geyAuVHlwZSA9IEQzRDEyX0hFQVBfVFlQ RV9ERUZBVUxUIH0sIHJlc29sdmVkX21ldGFfcHJvcHM7CiAgICAgRDNEMTJfSEVBUF9UWVBFIHJl c29sdmVkX2hlYXBfdHlwZSA9IEQzRDEyX0hFQVBfVFlQRV9SRUFEQkFDSzsKICAgICBIUkVTVUxU IGhyOwpAQCAtMjExLDcgKzIxOCw3IEBAIHN0YXRpYyBpbnQgZDNkMTJ2YV9lbmNvZGVfaXNzdWUo QVZDb2RlY0NvbnRleHQgKmF2Y3R4LAogICAgICAgICAgICAgLlJhdGVDb250cm9sID0gY3R4LT5y YywKICAgICAgICAgICAgIC5QaWN0dXJlVGFyZ2V0UmVzb2x1dGlvbiA9IGN0eC0+cmVzb2x1dGlv biwKICAgICAgICAgICAgIC5TZWxlY3RlZExheW91dE1vZGUgPSBEM0QxMl9WSURFT19FTkNPREVS X0ZSQU1FX1NVQlJFR0lPTl9MQVlPVVRfTU9ERV9GVUxMX0ZSQU1FLAotICAgICAgICAgICAgLkZy YW1lU3VicmVnaW9uc0xheW91dERhdGEgPSB7IDAgfSwKKyAgICAgICAgICAgIC5GcmFtZVN1YnJl Z2lvbnNMYXlvdXREYXRhID0gY3R4LT5zdWJyZWdpb25zX2xheW91dCwKICAgICAgICAgICAgIC5D b2RlY0dvcFNlcXVlbmNlID0gY3R4LT5nb3AsCiAgICAgICAgIH0sCiAgICAgICAgIC5wSW5wdXRG cmFtZSA9IHBpYy0+aW5wdXRfc3VyZmFjZS0+dGV4dHVyZSwKQEAgLTczMiwxNiArNzM5LDIxIEBA IGVuZDoKIHN0YXRpYyBpbnQgZDNkMTJ2YV9lbmNvZGVfb3V0cHV0KEFWQ29kZWNDb250ZXh0ICph dmN0eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZGSFdCYXNlRW5jb2RlUGlj dHVyZSAqYmFzZV9waWMsIEFWUGFja2V0ICpwa3QpCiB7CisgICAgRDNEMTJWQUVuY29kZUNvbnRl eHQgICAgICAgKmN0eCA9IGF2Y3R4LT5wcml2X2RhdGE7CiAgICAgRkZIV0Jhc2VFbmNvZGVDb250 ZXh0ICpiYXNlX2N0eCA9IGF2Y3R4LT5wcml2X2RhdGE7Ci0gICAgRDNEMTJWQUVuY29kZVBpY3R1 cmUgKnBpYyA9IGJhc2VfcGljLT5wcml2OwotICAgIEFWUGFja2V0ICpwa3RfcHRyID0gcGt0Owot ICAgIGludCBlcnI7CisgICAgRDNEMTJWQUVuY29kZVBpY3R1cmUgICAgICAgKnBpYyA9IGJhc2Vf cGljLT5wcml2OworICAgIEFWUGFja2V0ICAgICAgICAgICAgICAgKnBrdF9wdHIgPSBwa3Q7Cisg ICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgIGVyciA9IDA7CiAKICAgICBlcnIgPSBkM2Qx MnZhX2VuY29kZV93YWl0KGF2Y3R4LCBiYXNlX3BpYyk7CiAgICAgaWYgKGVyciA8IDApCiAgICAg ICAgIHJldHVybiBlcnI7CiAKLSAgICBlcnIgPSBkM2QxMnZhX2VuY29kZV9nZXRfY29kZWRfZGF0 YShhdmN0eCwgcGljLCBwa3QpOworICAgIGlmIChjdHgtPmNvZGVjLT5nZXRfY29kZWRfZGF0YSkK KyAgICAgICAgZXJyID0gY3R4LT5jb2RlYy0+Z2V0X2NvZGVkX2RhdGEoYXZjdHgsIHBpYywgcGt0 KTsKKyAgICBlbHNlCisgICAgICAgIGVyciA9IGQzZDEydmFfZW5jb2RlX2dldF9jb2RlZF9kYXRh KGF2Y3R4LCBwaWMsIHBrdCk7CisKICAgICBpZiAoZXJyIDwgMCkKICAgICAgICAgcmV0dXJuIGVy cjsKIApAQCAtMTEyOSw2ICsxMTQxLDkgQEAgc3RhdGljIGludCBkM2QxMnZhX2VuY29kZV9pbml0 X2dvcF9zdHJ1Y3R1cmUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogICAgIHVuaW9uIHsKICAgICAg ICAgRDNEMTJfVklERU9fRU5DT0RFUl9DT0RFQ19QSUNUVVJFX0NPTlRST0xfU1VQUE9SVF9IMjY0 IGgyNjQ7CiAgICAgICAgIEQzRDEyX1ZJREVPX0VOQ09ERVJfQ09ERUNfUElDVFVSRV9DT05UUk9M X1NVUFBPUlRfSEVWQyBoZXZjOworI2lmIENPTkZJR19BVjFfRDNEMTJWQV9FTkNPREVSCisgICAg ICAgIEQzRDEyX1ZJREVPX0VOQ09ERVJfQ09ERUNfQVYxX1BJQ1RVUkVfQ09OVFJPTF9TVVBQT1JU ICBhdjE7CisjZW5kaWYKICAgICB9IGNvZGVjX3N1cHBvcnQ7CiAKICAgICBzdXBwb3J0Lk5vZGVJ bmRleCA9IDA7CkBAIC0xMTQ2LDYgKzExNjEsMTMgQEAgc3RhdGljIGludCBkM2QxMnZhX2VuY29k ZV9pbml0X2dvcF9zdHJ1Y3R1cmUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogICAgICAgICAgICAg c3VwcG9ydC5QaWN0dXJlU3VwcG9ydC5wSEVWQ1N1cHBvcnQgPSAmY29kZWNfc3VwcG9ydC5oZXZj OwogICAgICAgICAgICAgYnJlYWs7CiAKKyNpZiBDT05GSUdfQVYxX0QzRDEyVkFfRU5DT0RFUgor ICAgICAgICAgICAgY2FzZSBEM0QxMl9WSURFT19FTkNPREVSX0NPREVDX0FWMToKKyAgICAgICAg ICAgIG1lbXNldCgmY29kZWNfc3VwcG9ydC5hdjEsIDAsIHNpemVvZihjb2RlY19zdXBwb3J0LmF2 MSkpOworICAgICAgICAgICAgc3VwcG9ydC5QaWN0dXJlU3VwcG9ydC5EYXRhU2l6ZSA9IHNpemVv Zihjb2RlY19zdXBwb3J0LmF2MSk7CisgICAgICAgICAgICBzdXBwb3J0LlBpY3R1cmVTdXBwb3J0 LnBBVjFTdXBwb3J0ID0gJmNvZGVjX3N1cHBvcnQuYXYxOworICAgICAgICAgICAgYnJlYWs7Cisj ZW5kaWYKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGF2X2Fzc2VydDAoMCk7CiAgICAg fQpAQCAtMTE3MSw2ICsxMTkzLDEzIEBAIHN0YXRpYyBpbnQgZDNkMTJ2YV9lbmNvZGVfaW5pdF9n b3Bfc3RydWN0dXJlKEFWQ29kZWNDb250ZXh0ICphdmN0eCkKICAgICAgICAgICAgICAgICByZWZf bDEgPSBzdXBwb3J0LlBpY3R1cmVTdXBwb3J0LnBIRVZDU3VwcG9ydC0+TWF4TDFSZWZlcmVuY2Vz Rm9yQjsKICAgICAgICAgICAgICAgICBicmVhazsKIAorI2lmIENPTkZJR19BVjFfRDNEMTJWQV9F TkNPREVSCisgICAgICAgICAgICBjYXNlIEQzRDEyX1ZJREVPX0VOQ09ERVJfQ09ERUNfQVYxOgor ICAgICAgICAgICAgICAgIHJlZl9sMCA9IHN1cHBvcnQuUGljdHVyZVN1cHBvcnQucEFWMVN1cHBv cnQtPk1heFVuaXF1ZVJlZmVyZW5jZXNQZXJGcmFtZTsKKyAgICAgICAgICAgICAgICAvLyBBVjEg ZG9lc24ndCB1c2UgdHJhZGl0aW9uYWwgTDEgcmVmZXJlbmNlcyBsaWtlIEguMjY0L0hFVkMKKyAg ICAgICAgICAgICAgICByZWZfbDEgPSAwOworICAgICAgICAgICAgICAgIGJyZWFrOworI2VuZGlm CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIGF2X2Fzc2VydDAoMCk7CiAg ICAgICAgIH0KQEAgLTE1MjEsNiArMTU1MCwxMiBAQCBpbnQgZmZfZDNkMTJ2YV9lbmNvZGVfaW5p dChBVkNvZGVjQ29udGV4dCAqYXZjdHgpCiAgICAgaWYgKGVyciA8IDApCiAgICAgICAgIGdvdG8g ZmFpbDsKIAorICAgIGlmIChjdHgtPmNvZGVjLT5zZXRfdGlsZSkgeworICAgICAgICBlcnIgPSBj dHgtPmNvZGVjLT5zZXRfdGlsZShhdmN0eCk7CisgICAgICAgIGlmIChlcnIgPCAwKQorICAgICAg ICAgICAgZ290byBmYWlsOworICAgIH0KKwogICAgIGVyciA9IGQzZDEydmFfZW5jb2RlX2luaXRf cmF0ZV9jb250cm9sKGF2Y3R4KTsKICAgICBpZiAoZXJyIDwgMCkKICAgICAgICAgZ290byBmYWls OwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9kM2QxMnZhX2VuY29kZS5oIGIvbGliYXZjb2RlYy9k M2QxMnZhX2VuY29kZS5oCmluZGV4IDViZDFlZWRiN2YuLmI3Y2ZlYTA1ODIgMTAwNjQ0Ci0tLSBh L2xpYmF2Y29kZWMvZDNkMTJ2YV9lbmNvZGUuaAorKysgYi9saWJhdmNvZGVjL2QzZDEydmFfZW5j b2RlLmgKQEAgLTI2NCw2ICsyNjQsOCBAQCB0eXBlZGVmIHN0cnVjdCBEM0QxMlZBRW5jb2RlQ29u dGV4dCB7CiAgICAgRDNEMTJfVklERU9fRU5DT0RFUl9TRVFVRU5DRV9HT1BfU1RSVUNUVVJFIGdv cDsKIAogICAgIEQzRDEyX1ZJREVPX0VOQ09ERVJfTEVWRUxfU0VUVElORyBsZXZlbDsKKworICAg IEQzRDEyX1ZJREVPX0VOQ09ERVJfUElDVFVSRV9DT05UUk9MX1NVQlJFR0lPTlNfTEFZT1VUX0RB VEEgc3VicmVnaW9uc19sYXlvdXQ7CiB9IEQzRDEyVkFFbmNvZGVDb250ZXh0OwogCiB0eXBlZGVm IHN0cnVjdCBEM0QxMlZBRW5jb2RlVHlwZSB7CkBAIC0zMDYsNiArMzA4LDExIEBAIHR5cGVkZWYg c3RydWN0IEQzRDEyVkFFbmNvZGVUeXBlIHsKICAgICAgKi8KICAgICBpbnQgKCpzZXRfbGV2ZWwp KEFWQ29kZWNDb250ZXh0ICphdmN0eCk7CiAKKyAgICAvKioKKyAgICAgKiBTZXQgY29kZWMtc3Bl Y2lmaWMgdGlsZSBzZXR0aW5nLgorICAgICAqLworICAgIGludCAoKnNldF90aWxlKShBVkNvZGVj Q29udGV4dCAqYXZjdHgpOworCiAgICAgLyoqCiAgICAgICogVGhlIHNpemUgb2YgYW55IHByaXZh dGUgZGF0YSBzdHJ1Y3R1cmUgYXNzb2NpYXRlZCB3aXRoIGVhY2gKICAgICAgKiBwaWN0dXJlIChj YW4gYmUgemVybyBpZiBub3QgcmVxdWlyZWQpLgpAQCAtMzI3LDYgKzMzNCwxMiBAQCB0eXBlZGVm IHN0cnVjdCBEM0QxMlZBRW5jb2RlVHlwZSB7CiAgICAgICovCiAgICAgaW50ICgqd3JpdGVfc2Vx dWVuY2VfaGVhZGVyKShBVkNvZGVjQ29udGV4dCAqYXZjdHgsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjaGFyICpkYXRhLCBzaXplX3QgKmRhdGFfbGVuKTsKKworICAgIC8qKgor ICAgICAqIEZpbGwgdGhlIGNvZGVkIGRhdGEgaW50byBBVlBhY2tldAorICAgICAqLworICAgIGlu dCAoKmdldF9jb2RlZF9kYXRhKShBVkNvZGVjQ29udGV4dCAqYXZjdHgsCisgICAgICAgICAgICAg ICAgICAgICAgICAgIEQzRDEyVkFFbmNvZGVQaWN0dXJlICpwaWMsIEFWUGFja2V0ICpwa3QpOwog fSBEM0QxMlZBRW5jb2RlVHlwZTsKIAogaW50IGZmX2QzZDEydmFfZW5jb2RlX3JlY2VpdmVfcGFj a2V0KEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZQYWNrZXQgKnBrdCk7CmRpZmYgLS1naXQgYS9s aWJhdmNvZGVjL2QzZDEydmFfZW5jb2RlX2F2MS5jIGIvbGliYXZjb2RlYy9kM2QxMnZhX2VuY29k ZV9hdjEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5lN2ExMTVhMmVl Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYXZjb2RlYy9kM2QxMnZhX2VuY29kZV9hdjEuYwpAQCAt MCwwICsxLDExODIgQEAKKy8qCisgKiBEaXJlY3QzRCAxMiBIVyBhY2NlbGVyYXRpb24gdmlkZW8g ZW5jb2RlcgorICoKKyAqIENvcHlyaWdodCAoYykgMjAyNCBJbnRlbCBDb3Jwb3JhdGlvbgorICoK KyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KKyAqCisgKiBGRm1wZWcgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq IHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorICoKKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq IExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m dHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv b3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisjaW5jbHVkZSAibGliYXZ1dGls L29wdC5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9jb21tb24uaCIKKyNpbmNsdWRlICJsaWJhdnV0 aWwvbWVtLmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL3BpeGRlc2MuaCIKKyNpbmNsdWRlICJsaWJh dnV0aWwvaHdjb250ZXh0X2QzZDEydmFfaW50ZXJuYWwuaCIKKworI2luY2x1ZGUgImNvbmZpZ19j b21wb25lbnRzLmgiCisjaW5jbHVkZSAiYXZjb2RlYy5oIgorI2luY2x1ZGUgImNicy5oIgorI2lu Y2x1ZGUgImNic19hdjEuaCIKKyNpbmNsdWRlICJhdjFfbGV2ZWxzLmgiCisjaW5jbHVkZSAiY29k ZWNfaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJkM2QxMnZhX2VuY29kZS5oIgorI2luY2x1ZGUgImVu Y29kZS5oIgorI2luY2x1ZGUgImh3X2Jhc2VfZW5jb2RlLmgiCisKKyNpbmNsdWRlIDxkM2QxMi5o PgorI2luY2x1ZGUgPGQzZDEydmlkZW8uaD4KKworI2lmbmRlZiBEM0QxMl9WSURFT19FTkNPREVS X0FWMV9JTlZBTElEX0RQQl9SRVNPVVJDRV9JTkRFWAorI2RlZmluZQlEM0QxMl9WSURFT19FTkNP REVSX0FWMV9JTlZBTElEX0RQQl9SRVNPVVJDRV9JTkRFWAkoIDB4ZmYgKQorI2VuZGlmCisKK3R5 cGVkZWYgc3RydWN0IEQzRDEyVkFIV0Jhc2VFbmNvZGVBVjEgeworICAgIEFWMVJhd09CVSAgICBy YXdfc2VxdWVuY2VfaGVhZGVyOworICAgIEFWMVJhd09CVSAgICAgICByYXdfZnJhbWVfaGVhZGVy OworICAgIEFWMVJhd09CVSAgICAgICAgIHJhd190aWxlX2dyb3VwOworfSBEM0QxMlZBSFdCYXNl RW5jb2RlQVYxOworCit0eXBlZGVmIHN0cnVjdCBEM0QxMlZBSFdCYXNlRW5jb2RlQVYxT3B0cyB7 CisgICAgaW50ICAgICAgICAgICAgICAgICB0aWVyOyAvLyAwOiBNYWluIHRpZXIsIDE6IEhpZ2gg dGllcgorICAgIGludCAgICAgICAgICAgICAgICBsZXZlbDsgLy8gQVYxIGxldmVsICgyLjAtNy4z IG1hcCB0byAwLTIzKQorCisgICAgaW50ICAgICAgICAgIGVuYWJsZV9jZGVmOyAvLyBDb25zdHJh aW5lZCBEaXJlY3Rpb25hbCBFbmhhbmNlbWVudCBGaWx0ZXIKKyAgICBpbnQgICBlbmFibGVfcmVz dG9yYXRpb247IC8vIGxvb3AgcmVzdG9yYXRpb24KKyAgICBpbnQgICAgICBlbmFibGVfc3VwZXJy ZXM7IC8vIHN1cGVyLXJlc29sdXRpb24KKyAgICBpbnQgZW5hYmxlX3JlZl9mcmFtZV9tdnM7CisK KyAgICBpbnQgICAgICAgICAgICBlbmFibGVfam50X2NvbXA7CisgICAgaW50ICBlbmFibGVfMTI4 eDEyOF9zdXBlcmJsb2NrOworCisgICAgaW50ICAgICAgIGVuYWJsZV93YXJwZWRfbW90aW9uOwor ICAgIGludCAgIGVuYWJsZV9pbnRyYV9lZGdlX2ZpbHRlcjsKKyAgICBpbnQgZW5hYmxlX2ludGVy aW50cmFfY29tcG91bmQ7CisgICAgaW50ICAgICBlbmFibGVfbWFza2VkX2NvbXBvdW5kOworICAg IGludCAgICAgICAgZW5hYmxlX2ZpbHRlcl9pbnRyYTsKKworICAgIGludCAgICAgICAgIGVuYWJs ZV9sb29wX2ZpbHRlcjsKKyAgICBpbnQgICBlbmFibGVfbG9vcF9maWx0ZXJfZGVsdGE7CisgICAg aW50ICAgICAgICAgZW5hYmxlX2R1YWxfZmlsdGVyOworCisgICAgaW50ICAgICAgICAgICAgIGVu YWJsZV9wYWxldHRlOworICAgIGludCAgICBlbmFibGVfaW50cmFfYmxvY2tfY29weTsKK30gRDNE MTJWQUhXQmFzZUVuY29kZUFWMU9wdHM7CisKK3R5cGVkZWYgc3RydWN0IEQzRDEyVkFFbmNvZGVB VjFQaWN0dXJlIHsKKyAgICB1aW50OF90ICAgICB0ZW1wb3JhbF9pZDsKKyAgICB1aW50OF90ICAg ICAgc3BhdGlhbF9pZDsKKyAgICB1aW50OF90ICAgICAgc2hvd19mcmFtZTsKKyAgICB1aW50OF90 ICAgICAgZnJhbWVfdHlwZTsKKyAgICB1aW50MTZfdCBsYXN0X2lkcl9mcmFtZTsKKyAgICB1aW50 OF90ICAgICAgICAgICAgc2xvdDsKK30gRDNEMTJWQUVuY29kZUFWMVBpY3R1cmU7CisKK3R5cGVk ZWYgc3RydWN0IEQzRDEyVkFFbmNvZGVBVjFDb250ZXh0IHsKKyAgICBEM0QxMlZBRW5jb2RlQ29u dGV4dCBjb21tb247CisgICAgLy8gVXNlciBvcHRpb25zLgorICAgIGludCAgICAgIHFwOworICAg IGludCBwcm9maWxlOworICAgIGludCAgIGxldmVsOworICAgIGludCAgICB0aWVyOworCisgICAg dWludDhfdCBxX2lkeF9pZHI7CisgICAgdWludDhfdCAgIHFfaWR4X3A7CisKKyAgICAvLyBXcml0 ZXIgc3RydWN0dXJlcy4KKyAgICBEM0QxMlZBSFdCYXNlRW5jb2RlQVYxICAgICAgICAgdW5pdHM7 CisgICAgRDNEMTJWQUhXQmFzZUVuY29kZUFWMU9wdHMgdW5pdF9vcHRzOworCisgICAgQ29kZWRC aXRzdHJlYW1Db250ZXh0ICAgICAgICAgICAgICAqY2JjOworICAgIENvZGVkQml0c3RyZWFtRnJh Z21lbnQgICAgICBjdXJyZW50X29idTsKKyAgICBEM0QxMl9WSURFT19FTkNPREVSX0FWMV9QT1NU X0VOQ09ERV9WQUxVRVNfRkxBR1MgcG9zdF9lbmNvZGVfdmFsdWVzX2ZsYWc7CisgICAgQVZGaWZv ICAgICAgICAgICAgICpwaWN0dXJlX2hlYWRlcl9saXN0OworfSBEM0QxMlZBRW5jb2RlQVYxQ29u dGV4dDsKKwordHlwZWRlZiBzdHJ1Y3QgRDNEMTJWQUVuY29kZUFWMUxldmVsIHsKKyAgICB1aW50 OF90ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWw7CisgICAgRDNEMTJfVklERU9f RU5DT0RFUl9BVjFfTEVWRUxTIGQzZDEyX2xldmVsOworfSBEM0QxMlZBRW5jb2RlQVYxTGV2ZWw7 CisKKworc3RhdGljIGNvbnN0IEQzRDEyVkFFbmNvZGVBVjFMZXZlbCBhdjFfbGV2ZWxzW10gPSB7 CisgICAgeyAwLCAgRDNEMTJfVklERU9fRU5DT0RFUl9BVjFfTEVWRUxTXzJfMCB9LAorICAgIHsg MSwgIEQzRDEyX1ZJREVPX0VOQ09ERVJfQVYxX0xFVkVMU18yXzEgfSwKKyAgICB7IDIsICBEM0Qx Ml9WSURFT19FTkNPREVSX0FWMV9MRVZFTFNfMl8yIH0sCisgICAgeyAzLCAgRDNEMTJfVklERU9f RU5DT0RFUl9BVjFfTEVWRUxTXzJfMyB9LAorICAgIHsgNCwgIEQzRDEyX1ZJREVPX0VOQ09ERVJf QVYxX0xFVkVMU18zXzAgfSwKKyAgICB7IDUsICBEM0QxMl9WSURFT19FTkNPREVSX0FWMV9MRVZF TFNfM18xIH0sCisgICAgeyA2LCAgRDNEMTJfVklERU9fRU5DT0RFUl9BVjFfTEVWRUxTXzNfMiB9 LAorICAgIHsgNywgIEQzRDEyX1ZJREVPX0VOQ09ERVJfQVYxX0xFVkVMU18zXzMgfSwKKyAgICB7 IDgsICBEM0QxMl9WSURFT19FTkNPREVSX0FWMV9MRVZFTFNfNF8wIH0sCisgICAgeyA5LCAgRDNE MTJfVklERU9fRU5DT0RFUl9BVjFfTEVWRUxTXzRfMSB9LAorICAgIHsgMTAsIEQzRDEyX1ZJREVP X0VOQ09ERVJfQVYxX0xFVkVMU180XzIgfSwKKyAgICB7IDExLCBEM0QxMl9WSURFT19FTkNPREVS X0FWMV9MRVZFTFNfNF8zIH0sCisgICAgeyAxMiwgRDNEMTJfVklERU9fRU5DT0RFUl9BVjFfTEVW RUxTXzVfMCB9LAorICAgIHsgMTMsIEQzRDEyX1ZJREVPX0VOQ09ERVJfQVYxX0xFVkVMU181XzEg fSwKKyAgICB7IDE0LCBEM0QxMl9WSURFT19FTkNPREVSX0FWMV9MRVZFTFNfNV8yIH0sCisgICAg eyAxNSwgRDNEMTJfVklERU9fRU5DT0RFUl9BVjFfTEVWRUxTXzVfMyB9LAorICAgIHsgMTYsIEQz RDEyX1ZJREVPX0VOQ09ERVJfQVYxX0xFVkVMU182XzAgfSwKKyAgICB7IDE3LCBEM0QxMl9WSURF T19FTkNPREVSX0FWMV9MRVZFTFNfNl8xIH0sCisgICAgeyAxOCwgRDNEMTJfVklERU9fRU5DT0RF Ul9BVjFfTEVWRUxTXzZfMiB9LAorICAgIHsgMTksIEQzRDEyX1ZJREVPX0VOQ09ERVJfQVYxX0xF VkVMU182XzMgfSwKKyAgICB7IDIwLCBEM0QxMl9WSURFT19FTkNPREVSX0FWMV9MRVZFTFNfN18w IH0sCisgICAgeyAyMSwgRDNEMTJfVklERU9fRU5DT0RFUl9BVjFfTEVWRUxTXzdfMSB9LAorICAg IHsgMjIsIEQzRDEyX1ZJREVPX0VOQ09ERVJfQVYxX0xFVkVMU183XzIgfSwKKyAgICB7IDIzLCBE M0QxMl9WSURFT19FTkNPREVSX0FWMV9MRVZFTFNfN18zIH0sCit9OworCitzdGF0aWMgY29uc3Qg RDNEMTJfVklERU9fRU5DT0RFUl9BVjFfUFJPRklMRSAgICAgICAgIHByb2ZpbGVfbWFpbiA9IEQz RDEyX1ZJREVPX0VOQ09ERVJfQVYxX1BST0ZJTEVfTUFJTjsKK3N0YXRpYyBjb25zdCBEM0QxMl9W SURFT19FTkNPREVSX0FWMV9QUk9GSUxFICAgICAgICAgcHJvZmlsZV9oaWdoID0gRDNEMTJfVklE RU9fRU5DT0RFUl9BVjFfUFJPRklMRV9ISUdIOworc3RhdGljIGNvbnN0IEQzRDEyX1ZJREVPX0VO Q09ERVJfQVYxX1BST0ZJTEUgcHJvZmlsZV9wcm9mZXNzaW9uYWwgPSBEM0QxMl9WSURFT19FTkNP REVSX0FWMV9QUk9GSUxFX1BST0ZFU1NJT05BTDsKKworI2RlZmluZSBEM0RfUFJPRklMRV9ERVND KG5hbWUpIFwKKyAgICB7IHNpemVvZihEM0QxMl9WSURFT19FTkNPREVSX0FWMV9QUk9GSUxFKSwg eyAucEFWMVByb2ZpbGUgPSAoRDNEMTJfVklERU9fRU5DT0RFUl9BVjFfUFJPRklMRSAqKSZwcm9m aWxlXyAjIyBuYW1lIH0gfQorc3RhdGljIGNvbnN0IEQzRDEyVkFFbmNvZGVQcm9maWxlIGQzZDEy dmFfZW5jb2RlX2F2MV9wcm9maWxlc1tdID0geworICAgIHsgQVZfUFJPRklMRV9BVjFfTUFJTiwg ICAgICAgICAgOCwgMywgMSwgMSwgRDNEX1BST0ZJTEVfREVTQyhtYWluKSAgICAgICAgIH0sCisg ICAgeyBBVl9QUk9GSUxFX0FWMV9NQUlOLCAgICAgICAgIDEwLCAzLCAxLCAxLCBEM0RfUFJPRklM RV9ERVNDKG1haW4pICAgICAgICAgfSwKKyAgICB7IEFWX1BST0ZJTEVfQVYxX0hJR0gsICAgICAg ICAgMTAsIDMsIDEsIDEsIEQzRF9QUk9GSUxFX0RFU0MoaGlnaCkgICAgICAgICB9LAorICAgIHsg QVZfUFJPRklMRV9BVjFfUFJPRkVTU0lPTkFMLCAgOCwgMywgMSwgMSwgRDNEX1BST0ZJTEVfREVT Qyhwcm9mZXNzaW9uYWwpIH0sCisgICAgeyBBVl9QUk9GSUxFX0FWMV9QUk9GRVNTSU9OQUwsIDEw LCAzLCAxLCAxLCBEM0RfUFJPRklMRV9ERVNDKHByb2Zlc3Npb25hbCkgfSwKKyAgICB7IEFWX1BS T0ZJTEVfQVYxX1BST0ZFU1NJT05BTCwgMTIsIDMsIDEsIDEsIEQzRF9QUk9GSUxFX0RFU0MocHJv ZmVzc2lvbmFsKSB9LAorICAgIHsgQVZfUFJPRklMRV9VTktOT1dOIH0sCit9OworCitzdGF0aWMg aW50IGQzZDEydmFfZW5jb2RlX2F2MV93cml0ZV9vYnUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmRhdGEsIHNpemVf dCAqZGF0YV9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29k ZWRCaXRzdHJlYW1GcmFnbWVudCAqb2J1KQoreworICAgIEQzRDEyVkFFbmNvZGVBVjFDb250ZXh0 ICpwcml2ID0gYXZjdHgtPnByaXZfZGF0YTsKKyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAg IGVyciA9IDA7CisKKyAgICBlcnIgPSBmZl9jYnNfd3JpdGVfZnJhZ21lbnRfZGF0YShwcml2LT5j YmMsIG9idSk7CisgICAgaWYgKGVyciA8IDApIHsKKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9M T0dfRVJST1IsICJGYWlsZWQgdG8gd3JpdGUgcGFja2VkIE9CVSBkYXRhLlxuIik7CisgICAgICAg IHJldHVybiBlcnI7CisgICAgfQorCisgICAgbWVtY3B5KGRhdGEsIG9idS0+ZGF0YSwgb2J1LT5k YXRhX3NpemUpOworICAgICpkYXRhX2xlbiA9ICg4ICogb2J1LT5kYXRhX3NpemUpIC0gb2J1LT5k YXRhX2JpdF9wYWRkaW5nOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZDNkMTJ2 YV9lbmNvZGVfYXYxX2FkZF9vYnUoQVZDb2RlY0NvbnRleHQqIGF2Y3R4LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDb2RlZEJpdHN0cmVhbUZyYWdtZW50KiBhdSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZWRCaXRzdHJlYW1Vbml0VHlw ZSBvYnVfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCog b2J1X3VuaXQpCit7CisgICAgaW50IGVyciA9IDA7CisKKyAgICBlcnIgPSBmZl9jYnNfaW5zZXJ0 X3VuaXRfY29udGVudChhdSwgLTEsIG9idV90eXBlLCBvYnVfdW5pdCwgTlVMTCk7CisgICAgaWYg KGVyciA8IDApIHsKKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJGYWlsZWQg dG8gYWRkIE9CVSB1bml0OiAiCisgICAgICAgICAgICAidHlwZSA9ICVkLlxuIiwgb2J1X3R5cGUp OworICAgICAgICByZXR1cm4gZXJyOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworc3RhdGlj IGludCBkM2QxMnZhX2VuY29kZV9hdjFfd3JpdGVfc2VxdWVuY2VfaGVhZGVyKEFWQ29kZWNDb250 ZXh0ICphdmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjaGFyICpkYXRhLCBzaXplX3QgKmRhdGFfbGVuKQoreworICAgIEQzRDEyVkFFbmNv ZGVBVjFDb250ZXh0ICpwcml2ID0gYXZjdHgtPnByaXZfZGF0YTsKKyAgICBDb2RlZEJpdHN0cmVh bUZyYWdtZW50ICAgKm9idSA9ICZwcml2LT5jdXJyZW50X29idTsKKyAgICBpbnQgICAgICAgICAg ICAgICAgICAgICAgIGVyciA9IDA7CisKKyAgICBwcml2LT51bml0cy5yYXdfc2VxdWVuY2VfaGVh ZGVyLmhlYWRlci5vYnVfdHlwZSA9IEFWMV9PQlVfU0VRVUVOQ0VfSEVBREVSOworICAgIGVyciA9 IGQzZDEydmFfZW5jb2RlX2F2MV9hZGRfb2J1KGF2Y3R4LCBvYnUsIEFWMV9PQlVfU0VRVUVOQ0Vf SEVBREVSLCAmcHJpdi0+dW5pdHMucmF3X3NlcXVlbmNlX2hlYWRlcik7CisgICAgaWYgKGVyciA8 IDApCisgICAgICAgIGdvdG8gZmFpbDsKKworICAgIGVyciA9IGQzZDEydmFfZW5jb2RlX2F2MV93 cml0ZV9vYnUoYXZjdHgsIGRhdGEsIGRhdGFfbGVuLCBvYnUpOworCitmYWlsOgorICAgIGZmX2Ni c19mcmFnbWVudF9yZXNldChvYnUpOworICAgIHJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQg ZDNkMTJ2YV9lbmNvZGVfYXYxX3VwZGF0ZV9jdXJyZW50X2ZyYW1lX3BpY3R1cmVfaGVhZGVyKEFW Q29kZWNDb250ZXh0ICphdmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEQzRDEyVkFFbmNvZGVQaWN0dXJlICpwaWMs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBVjFSYXdPQlUgKmZyYW1laGVhZGVyX29idSkKK3sKKyAgICBEM0QxMlZBRW5j b2RlQVYxQ29udGV4dCAqcHJpdiA9IGF2Y3R4LT5wcml2X2RhdGE7CisgICAgQVYxUmF3RnJhbWVI ZWFkZXIgICAgICAgICAqZmggPSAmZnJhbWVoZWFkZXJfb2J1LT5vYnUuZnJhbWVfaGVhZGVyOwor ICAgIHVpbnQ4X3QgICAgICAgICAgICAgICAgICpkYXRhID0gTlVMTDsKKyAgICBIUkVTVUxUICAg ICAgICAgICAgICAgICAgICBociA9IFNfT0s7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAg ICBlcnIgPSAwOworICAgIEQzRDEyX1ZJREVPX0VOQ09ERVJfQVYxX1BPU1RfRU5DT0RFX1ZBTFVF UyAqcG9zdF9lbmNvZGVfdmFsdWVzID0gTlVMTDsKKworICAgIC8vIFVwZGF0ZSB0aGUgZnJhbWUg aGVhZGVyIGFjY29yZGluZyB0byB0aGUgcGljdHVyZSBwb3N0X2VuY29kZV92YWx1ZXMKKyAgICBo ciA9IElEM0QxMlJlc291cmNlX01hcChwaWMtPnJlc29sdmVkX21ldGFkYXRhLCAwLCBOVUxMLCAo dm9pZCAqKikmZGF0YSk7CisgICAgaWYgKEZBSUxFRChocikpIHsKKyAgICAgICAgZXJyID0gQVZF UlJPUl9VTktOT1dOOworICAgICAgICByZXR1cm4gZXJyOworICAgIH0KKyAgICBwb3N0X2VuY29k ZV92YWx1ZXMgPSAoRDNEMTJfVklERU9fRU5DT0RFUl9BVjFfUE9TVF9FTkNPREVfVkFMVUVTKikg KGRhdGEgKworICAgICAgICAgICAgc2l6ZW9mKEQzRDEyX1ZJREVPX0VOQ09ERVJfT1VUUFVUX01F VEFEQVRBKSArCisgICAgICAgICAgICBzaXplb2YoRDNEMTJfVklERU9fRU5DT0RFUl9GUkFNRV9T VUJSRUdJT05fTUVUQURBVEEpICsKKyAgICAgICAgICAgIHNpemVvZihEM0QxMl9WSURFT19FTkNP REVSX0FWMV9QSUNUVVJFX0NPTlRST0xfU1VCUkVHSU9OU19MQVlPVVRfREFUQV9USUxFUykpOwor CisgICAgaWYgKHByaXYtPnBvc3RfZW5jb2RlX3ZhbHVlc19mbGFnICYgRDNEMTJfVklERU9fRU5D T0RFUl9BVjFfUE9TVF9FTkNPREVfVkFMVUVTX0ZMQUdfUVVBTlRJWkFUSU9OKSB7CisgICAgICAg IGZoLT5iYXNlX3FfaWR4ID0gcG9zdF9lbmNvZGVfdmFsdWVzLT5RdWFudGl6YXRpb24uQmFzZVFJ bmRleDsKKyAgICAgICAgZmgtPmRlbHRhX3FfeV9kYyA9IHBvc3RfZW5jb2RlX3ZhbHVlcy0+UXVh bnRpemF0aW9uLllEQ0RlbHRhUTsKKyAgICAgICAgZmgtPmRlbHRhX3FfdV9kYyA9IHBvc3RfZW5j b2RlX3ZhbHVlcy0+UXVhbnRpemF0aW9uLlVEQ0RlbHRhUTsKKyAgICAgICAgZmgtPmRlbHRhX3Ff dV9hYyA9IHBvc3RfZW5jb2RlX3ZhbHVlcy0+UXVhbnRpemF0aW9uLlVBQ0RlbHRhUTsKKyAgICAg ICAgZmgtPmRlbHRhX3Ffdl9kYyA9IHBvc3RfZW5jb2RlX3ZhbHVlcy0+UXVhbnRpemF0aW9uLlZE Q0RlbHRhUTsKKyAgICAgICAgZmgtPmRlbHRhX3Ffdl9hYyA9IHBvc3RfZW5jb2RlX3ZhbHVlcy0+ UXVhbnRpemF0aW9uLlZBQ0RlbHRhUTsKKyAgICAgICAgZmgtPnVzaW5nX3FtYXRyaXggPSBwb3N0 X2VuY29kZV92YWx1ZXMtPlF1YW50aXphdGlvbi5Vc2luZ1FNYXRyaXg7CisgICAgICAgIGZoLT5x bV95ID0gcG9zdF9lbmNvZGVfdmFsdWVzLT5RdWFudGl6YXRpb24uUU1ZOworICAgICAgICBmaC0+ cW1fdSA9IHBvc3RfZW5jb2RlX3ZhbHVlcy0+UXVhbnRpemF0aW9uLlFNVTsKKyAgICAgICAgZmgt PnFtX3YgPSBwb3N0X2VuY29kZV92YWx1ZXMtPlF1YW50aXphdGlvbi5RTVY7CisgICAgfQorCisg ICAgaWYgKHByaXYtPnBvc3RfZW5jb2RlX3ZhbHVlc19mbGFnICYgRDNEMTJfVklERU9fRU5DT0RF Ul9BVjFfUE9TVF9FTkNPREVfVkFMVUVTX0ZMQUdfTE9PUF9GSUxURVIpIHsKKyAgICAgICAgZmgt Pmxvb3BfZmlsdGVyX2xldmVsWzBdID0gcG9zdF9lbmNvZGVfdmFsdWVzLT5Mb29wRmlsdGVyLkxv b3BGaWx0ZXJMZXZlbFswXTsKKyAgICAgICAgZmgtPmxvb3BfZmlsdGVyX2xldmVsWzFdID0gcG9z dF9lbmNvZGVfdmFsdWVzLT5Mb29wRmlsdGVyLkxvb3BGaWx0ZXJMZXZlbFsxXTsKKyAgICAgICAg ZmgtPmxvb3BfZmlsdGVyX2xldmVsWzJdID0gcG9zdF9lbmNvZGVfdmFsdWVzLT5Mb29wRmlsdGVy Lkxvb3BGaWx0ZXJMZXZlbFU7CisgICAgICAgIGZoLT5sb29wX2ZpbHRlcl9sZXZlbFszXSA9IHBv c3RfZW5jb2RlX3ZhbHVlcy0+TG9vcEZpbHRlci5Mb29wRmlsdGVyTGV2ZWxWOworICAgICAgICBm aC0+bG9vcF9maWx0ZXJfc2hhcnBuZXNzID0gcG9zdF9lbmNvZGVfdmFsdWVzLT5Mb29wRmlsdGVy Lkxvb3BGaWx0ZXJTaGFycG5lc3NMZXZlbDsKKyAgICAgICAgZmgtPmxvb3BfZmlsdGVyX2RlbHRh X2VuYWJsZWQgPSBwb3N0X2VuY29kZV92YWx1ZXMtPkxvb3BGaWx0ZXIuTG9vcEZpbHRlckRlbHRh RW5hYmxlZDsKKyAgICAgICAgaWYgKGZoLT5sb29wX2ZpbHRlcl9kZWx0YV9lbmFibGVkKSB7Cisg ICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IEFWMV9UT1RBTF9SRUZTX1BFUl9GUkFNRTsg aSsrKSB7CisgICAgICAgICAgICAgICAgZmgtPmxvb3BfZmlsdGVyX3JlZl9kZWx0YXNbaV0gPSBw b3N0X2VuY29kZV92YWx1ZXMtPkxvb3BGaWx0ZXIuUmVmRGVsdGFzW2ldOworICAgICAgICAgICAg ICAgIGZoLT51cGRhdGVfcmVmX2RlbHRhW2ldICAgICAgID0gcG9zdF9lbmNvZGVfdmFsdWVzLT5M b29wRmlsdGVyLlJlZkRlbHRhc1tpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAo aW50IGkgPSAwOyBpIDwgMjsgaSsrKSB7CisgICAgICAgICAgICAgICAgZmgtPmxvb3BfZmlsdGVy X21vZGVfZGVsdGFzW2ldID0gcG9zdF9lbmNvZGVfdmFsdWVzLT5Mb29wRmlsdGVyLk1vZGVEZWx0 YXNbaV07CisgICAgICAgICAgICAgICAgZmgtPnVwZGF0ZV9tb2RlX2RlbHRhW2ldICAgICAgID0g cG9zdF9lbmNvZGVfdmFsdWVzLT5Mb29wRmlsdGVyLk1vZGVEZWx0YXNbaV07CisgICAgICAgICAg ICB9CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHByaXYtPnBvc3RfZW5jb2RlX3ZhbHVlc19m bGFnICYgRDNEMTJfVklERU9fRU5DT0RFUl9BVjFfUE9TVF9FTkNPREVfVkFMVUVTX0ZMQUdfQ0RF Rl9EQVRBKSB7CisgICAgICAgIGZoLT5jZGVmX2RhbXBpbmdfbWludXNfMyA9IHBvc3RfZW5jb2Rl X3ZhbHVlcy0+Q0RFRi5DZGVmRGFtcGluZ01pbnVzMzsKKyAgICAgICAgZmgtPmNkZWZfYml0cyA9 IHBvc3RfZW5jb2RlX3ZhbHVlcy0+Q0RFRi5DZGVmQml0czsKKyAgICAgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCA4OyBpKyspIHsKKyAgICAgICAgICAgIGZoLT5jZGVmX3lfcHJpX3N0cmVuZ3RoW2ld ICA9IHBvc3RfZW5jb2RlX3ZhbHVlcy0+Q0RFRi5DZGVmWVByaVN0cmVuZ3RoW2ldOworICAgICAg ICAgICAgZmgtPmNkZWZfeV9zZWNfc3RyZW5ndGhbaV0gID0gcG9zdF9lbmNvZGVfdmFsdWVzLT5D REVGLkNkZWZZU2VjU3RyZW5ndGhbaV07CisgICAgICAgICAgICBmaC0+Y2RlZl91dl9wcmlfc3Ry ZW5ndGhbaV0gPSBwb3N0X2VuY29kZV92YWx1ZXMtPkNERUYuQ2RlZlVWUHJpU3RyZW5ndGhbaV07 CisgICAgICAgICAgICBmaC0+Y2RlZl91dl9zZWNfc3RyZW5ndGhbaV0gPSBwb3N0X2VuY29kZV92 YWx1ZXMtPkNERUYuQ2RlZlVWU2VjU3RyZW5ndGhbaV07CisgICAgICAgIH0KKyAgICB9CisgICAg aWYgKHByaXYtPnBvc3RfZW5jb2RlX3ZhbHVlc19mbGFnICYgRDNEMTJfVklERU9fRU5DT0RFUl9B VjFfUE9TVF9FTkNPREVfVkFMVUVTX0ZMQUdfUVVBTlRJWkFUSU9OX0RFTFRBKSB7CisgICAgICAg IGZoLT5kZWx0YV9xX3ByZXNlbnQgPSBwb3N0X2VuY29kZV92YWx1ZXMtPlF1YW50aXphdGlvbkRl bHRhLkRlbHRhUVByZXNlbnQ7CisgICAgICAgIGZoLT5kZWx0YV9xX3JlcyA9IHBvc3RfZW5jb2Rl X3ZhbHVlcy0+UXVhbnRpemF0aW9uRGVsdGEuRGVsdGFRUmVzOworICAgIH0KKworICAgIGlmIChw cml2LT5wb3N0X2VuY29kZV92YWx1ZXNfZmxhZyAmIEQzRDEyX1ZJREVPX0VOQ09ERVJfQVYxX1BP U1RfRU5DT0RFX1ZBTFVFU19GTEFHX1JFRkVSRU5DRV9JTkRJQ0VTKSB7CisgICAgICAgIGZvciAo aW50IGkgPSAwOyBpIDwgQVYxX1JFRlNfUEVSX0ZSQU1FOyBpKyspIHsKKyAgICAgICAgICAgIGZo LT5yZWZfZnJhbWVfaWR4W2ldID0gcG9zdF9lbmNvZGVfdmFsdWVzLT5SZWZlcmVuY2VJbmRpY2Vz W2ldOworICAgICAgICB9CisgICAgfQorCisgICAgSUQzRDEyUmVzb3VyY2VfVW5tYXAocGljLT5y ZXNvbHZlZF9tZXRhZGF0YSwgMCwgTlVMTCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBp bnQgZDNkMTJ2YV9lbmNvZGVfYXYxX3dyaXRlX3BpY3R1cmVfaGVhZGVyKEFWQ29kZWNDb250ZXh0 ICphdmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEQzRDEyVkFFbmNvZGVQaWN0dXJlICpwaWMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpkYXRhLCBzaXplX3QgKmRhdGFfbGVuKQor eworICAgIEQzRDEyVkFFbmNvZGVBVjFDb250ZXh0ICpwcml2ID0gYXZjdHgtPnByaXZfZGF0YTsK KyAgICBDb2RlZEJpdHN0cmVhbUZyYWdtZW50ICAqb2J1ICA9ICZwcml2LT5jdXJyZW50X29idTsK KyAgICBBVjFSYXdPQlUgICAgKmZyYW1laGVhZGVyX29idSA9IGF2X21hbGxvY3ooc2l6ZW9mKEFW MVJhd09CVSkpOworICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgZXJyID0gMDsKKworICAg IGF2X2ZpZm9fcmVhZChwcml2LT5waWN0dXJlX2hlYWRlcl9saXN0LCBmcmFtZWhlYWRlcl9vYnUs IDEpOworICAgIGVyciA9IGQzZDEydmFfZW5jb2RlX2F2MV91cGRhdGVfY3VycmVudF9mcmFtZV9w aWN0dXJlX2hlYWRlcihhdmN0eCwgcGljLGZyYW1laGVhZGVyX29idSk7CisgICAgaWYgKGVyciA8 IDApIHsKKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJGYWlsZWQgdG8gdXBk YXRlIGN1cnJlbnQgZnJhbWUgcGljdHVyZSBoZWFkZXI6ICVkLlxuIiwgZXJyKTsKKyAgICAgICAg cmV0dXJuIGVycjsKKyAgICB9CisKKyAgICAvLyBBZGQgdGhlIGZyYW1lIGhlYWRlciBPQlUKKyAg ICBmcmFtZWhlYWRlcl9vYnUtPmhlYWRlci5vYnVfaGFzX3NpemVfZmllbGQgPSAxOworCisgICAg ZXJyID0gZDNkMTJ2YV9lbmNvZGVfYXYxX2FkZF9vYnUoYXZjdHgsIG9idSwgQVYxX09CVV9GUkFN RV9IRUFERVIsIGZyYW1laGVhZGVyX29idSk7CisgICAgaWYgKGVyciA8IDApCisgICAgICAgIGdv dG8gZmFpbDsKKyAgICBlcnIgPSBkM2QxMnZhX2VuY29kZV9hdjFfd3JpdGVfb2J1KGF2Y3R4LCBk YXRhLCBkYXRhX2xlbiwgb2J1KTsKKworZmFpbDoKKyAgICBmZl9jYnNfZnJhZ21lbnRfcmVzZXQo b2J1KTsKKyAgICBhdl9mcmVlcCgmZnJhbWVoZWFkZXJfb2J1KTsKKyAgICByZXR1cm4gZXJyOwor fQorCitzdGF0aWMgaW50IGQzZDEydmFfZW5jb2RlX2F2MV93cml0ZV90aWxlX2dyb3VwKEFWQ29k ZWNDb250ZXh0ICphdmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdWludDhfdCogdGlsZV9ncm91cCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdGlsZV9ncm91cF9zaXplLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpkYXRhLCBzaXplX3Qg KmRhdGFfbGVuKQoreworICAgIEQzRDEyVkFFbmNvZGVBVjFDb250ZXh0ICpwcml2ID0gYXZjdHgt PnByaXZfZGF0YTsKKyAgICBDb2RlZEJpdHN0cmVhbUZyYWdtZW50ICAqb2J1ICA9ICZwcml2LT5j dXJyZW50X29idTsKKyAgICBBVjFSYXdPQlUgICAgICp0aWxlX2dyb3VwX29idSA9ICZwcml2LT51 bml0cy5yYXdfdGlsZV9ncm91cDsKKyAgICBBVjFSYXdUaWxlR3JvdXAgICAgICAgICAgICp0ZyA9 ICZ0aWxlX2dyb3VwX29idS0+b2J1LnRpbGVfZ3JvdXA7CisgICAgaW50ICAgICAgICAgICAgICAg ICAgICAgICBlcnIgPSAwOworCisgICAgdGctPnRpbGVfZGF0YS5kYXRhID0gdGlsZV9ncm91cDsK KyAgICB0Zy0+dGlsZV9kYXRhLmRhdGFfcmVmID0gTlVMTDsKKyAgICB0Zy0+dGlsZV9kYXRhLmRh dGFfc2l6ZSA9IHRpbGVfZ3JvdXBfc2l6ZTsKKyAgICB0aWxlX2dyb3VwX29idS0+aGVhZGVyLm9i dV9oYXNfc2l6ZV9maWVsZCA9IDE7CisgICAgdGlsZV9ncm91cF9vYnUtPmhlYWRlci5vYnVfdHlw ZSA9IEFWMV9PQlVfVElMRV9HUk9VUDsKKworICAgIGVyciA9IGQzZDEydmFfZW5jb2RlX2F2MV9h ZGRfb2J1KGF2Y3R4LCBvYnUsIEFWMV9PQlVfVElMRV9HUk9VUCwgdGlsZV9ncm91cF9vYnUpOwor ICAgIGlmIChlcnIgPCAwKQorICAgICAgICBnb3RvIGZhaWw7CisgICAgZXJyID0gZDNkMTJ2YV9l bmNvZGVfYXYxX3dyaXRlX29idShhdmN0eCwgZGF0YSwgZGF0YV9sZW4sIG9idSk7CisKK2ZhaWw6 CisgICAgZmZfY2JzX2ZyYWdtZW50X3Jlc2V0KG9idSk7CisgICAgcmV0dXJuIGVycjsKK30KKwor c3RhdGljIGludCBkM2QxMnZhX2VuY29kZV9hdjFfZ2V0X2J1ZmZlcl9zaXplKEFWQ29kZWNDb250 ZXh0ICphdmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBEM0QxMlZBRW5jb2RlUGljdHVyZSAqcGljLCBzaXplX3QgKnNpemUpCit7CisgICAgRDNEMTJW QUVuY29kZUNvbnRleHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqY3R4ID0g YXZjdHgtPnByaXZfZGF0YTsKKyAgICBEM0QxMl9WSURFT19FTkNPREVSX09VVFBVVF9NRVRBREFU QSAgICAgICAgICAgICAgICAgICAgKm1ldGEgPSBOVUxMOworICAgIEQzRDEyX1ZJREVPX0VOQ09E RVJfRlJBTUVfU1VCUkVHSU9OX01FVEFEQVRBICpzdWJyZWdpb25fbWV0YSA9IE5VTEw7CisgICAg dWludDhfdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpk YXRhID0gTlVMTDsKKyAgICBIUkVTVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaHIgPSBTX09LOworICAgIGludCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyciA9IDA7CisKKyAgICBociA9IElE M0QxMlJlc291cmNlX01hcChwaWMtPnJlc29sdmVkX21ldGFkYXRhLCAwLCBOVUxMLCAodm9pZCAq KikmZGF0YSk7CisgICAgaWYgKEZBSUxFRChocikpIHsKKyAgICAgICAgZXJyID0gQVZFUlJPUl9V TktOT1dOOworICAgICAgICByZXR1cm4gZXJyOworICAgIH0KKworICAgIHN1YnJlZ2lvbl9tZXRh ID0gKEQzRDEyX1ZJREVPX0VOQ09ERVJfRlJBTUVfU1VCUkVHSU9OX01FVEFEQVRBKikoZGF0YSAr IHNpemVvZihEM0QxMl9WSURFT19FTkNPREVSX09VVFBVVF9NRVRBREFUQSkpOworICAgIGlmIChz dWJyZWdpb25fbWV0YS0+YlNpemUgPT0gMCkgeworICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xP R19FUlJPUiwgIk5vIHN1YnJlZ2lvbiBtZXRhZGF0YSBmb3VuZFxuIik7CisgICAgICAgIGVyciA9 IEFWRVJST1IoRUlOVkFMKTsKKyAgICAgICAgcmV0dXJuIGVycjsKKyAgICB9CisgICAgKnNpemUg PSBzdWJyZWdpb25fbWV0YS0+YlNpemU7CisKKyAgICBJRDNEMTJSZXNvdXJjZV9Vbm1hcChwaWMt PnJlc29sdmVkX21ldGFkYXRhLCAwLCBOVUxMKTsKKworICAgIHJldHVybiAwOworfQorCitzdGF0 aWMgaW50IGQzZDEydmFfZW5jb2RlX2F2MV9nZXRfY29kZWRfZGF0YShBVkNvZGVjQ29udGV4dCAq YXZjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEM0Qx MlZBRW5jb2RlUGljdHVyZSAqcGljLCBBVlBhY2tldCAqcGt0KQoreworICAgIGludCAgICAgICAg ICAgICAgICAgICBlcnIgPSAwOworICAgIHVpbnQ4X3QgICAgICAgICAgICAgICpwdHIgPSBOVUxM OworICAgIHVpbnQ4X3QgICAgICAqbWFwcGVkX2RhdGEgPSBOVUxMOworICAgIHNpemVfdCAgICAg ICAgIHRvdGFsX3NpemUgPSAwOworICAgIEhSRVNVTFQgICAgICAgICAgICAgICAgaHIgPSBTX09L OworICAgIHNpemVfdCAgICBhdjFfcGljX2hkX3NpemUgPSAwOworICAgIGludCB0aWxlX2dyb3Vw X2V4dHJhX3NpemUgPSAwOworICAgIHNpemVfdCAgICAgICAgICAgIGJpdF9sZW4gPSAwOworICAg IEQzRDEyVkFFbmNvZGVDb250ZXh0ICpjdHggPSBhdmN0eC0+cHJpdl9kYXRhOworCisgICAgY2hh ciBwaWNfaGRfZGF0YVtNQVhfUEFSQU1fQlVGRkVSX1NJWkVdID0geyAwIH07CisKKyAgICBlcnIg PSBkM2QxMnZhX2VuY29kZV9hdjFfZ2V0X2J1ZmZlcl9zaXplKGF2Y3R4LCBwaWMsICZ0b3RhbF9z aXplKTsKKyAgICBpZiAoZXJyIDwgMCkKKyAgICAgICAgZ290byBlbmQ7CisKKyAgICAvLyBVcGRh dGUgdGhlIHBpY3R1cmUgaGVhZGVyIGFuZCBjYWxjdWxhdGUgdGhlIHBpY3R1cmUgaGVhZGVyIHNp emUKKyAgICBtZW1zZXQocGljX2hkX2RhdGEsIDAsIHNpemVvZihwaWNfaGRfZGF0YSkpOworICAg IGVyciA9IGQzZDEydmFfZW5jb2RlX2F2MV93cml0ZV9waWN0dXJlX2hlYWRlcihhdmN0eCwgcGlj LCBwaWNfaGRfZGF0YSwgJmF2MV9waWNfaGRfc2l6ZSk7CisgICAgaWYgKGVyciA8IDApIHsKKyAg ICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJGYWlsZWQgdG8gd3JpdGUgcGljdHVy ZSBoZWFkZXI6ICVkLlxuIiwgZXJyKTsKKyAgICAgICAgcmV0dXJuIGVycjsKKyAgICB9CisgICAg YXYxX3BpY19oZF9zaXplIC89IDg7CisgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfREVCVUcsICJB VjEgcGljdHVyZSBoZWFkZXIgc2l6ZTogJXp1IGJ5dGVzLlxuIiwgYXYxX3BpY19oZF9zaXplKTsK KworCisgICAgdGlsZV9ncm91cF9leHRyYV9zaXplID0gKGF2X2xvZzIodG90YWxfc2l6ZSkgKyA3 KSAvIDcgKyAxOyAvLyAxIGJ5dGUgZm9yIG9idSBoZWFkZXIsIHJlc3QgZm9yIHRpbGUgZ3JvdXAg TEVCMTI4IHNpemUKKyAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19ERUJVRywgIlRpbGUgZ3JvdXAg ZXh0cmEgc2l6ZTogJWQgYnl0ZXMuXG4iLCB0aWxlX2dyb3VwX2V4dHJhX3NpemUpOworCisgICAg dG90YWxfc2l6ZSArPSAocGljLT5oZWFkZXJfc2l6ZSArIHRpbGVfZ3JvdXBfZXh0cmFfc2l6ZSAr IGF2MV9waWNfaGRfc2l6ZSk7CisgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfREVCVUcsICJPdXRw dXQgYnVmZmVyIHNpemUgJSJTSVpFX1NQRUNJRklFUiJcbiIsIHRvdGFsX3NpemUpOworCisgICAg aHIgPSBJRDNEMTJSZXNvdXJjZV9NYXAocGljLT5vdXRwdXRfYnVmZmVyLCAwLCBOVUxMLCAodm9p ZCAqKikmbWFwcGVkX2RhdGEpOworICAgIGlmIChGQUlMRUQoaHIpKSB7CisgICAgICAgIGVyciA9 IEFWRVJST1JfVU5LTk9XTjsKKyAgICAgICAgZ290byBlbmQ7CisgICAgfQorCisgICAgZXJyID0g ZmZfZ2V0X2VuY29kZV9idWZmZXIoYXZjdHgsIHBrdCwgdG90YWxfc2l6ZSwgMCk7CisgICAgaWYg KGVyciA8IDApCisgICAgICAgIGdvdG8gZW5kOworICAgIHB0ciA9IHBrdC0+ZGF0YTsKKworICAg IG1lbWNweShwdHIsIG1hcHBlZF9kYXRhLCBwaWMtPmhlYWRlcl9zaXplKTsKKworICAgIHB0ciAr PSBwaWMtPmhlYWRlcl9zaXplOworICAgIG1hcHBlZF9kYXRhICs9IHBpYy0+YWxpZ25lZF9oZWFk ZXJfc2l6ZTsKKyAgICB0b3RhbF9zaXplIC09IHBpYy0+aGVhZGVyX3NpemU7CisKKyAgICBtZW1j cHkocHRyLCBwaWNfaGRfZGF0YSwgYXYxX3BpY19oZF9zaXplKTsKKyAgICBwdHIgKz0gYXYxX3Bp Y19oZF9zaXplOworICAgIHRvdGFsX3NpemUgLT0gYXYxX3BpY19oZF9zaXplOworICAgIGF2X2xv ZyhhdmN0eCwgQVZfTE9HX0RFQlVHLCAiQVYxIHRvdGFsX3NpemUgYWZ0ZXIgd3JpdGUgcGljdHVy ZSBoZWFkZXI6ICVkLlxuIiwgdG90YWxfc2l6ZSk7CisKKyAgICB0b3RhbF9zaXplIC09IHRpbGVf Z3JvdXBfZXh0cmFfc2l6ZTsKKyAgICBlcnIgPSBkM2QxMnZhX2VuY29kZV9hdjFfd3JpdGVfdGls ZV9ncm91cChhdmN0eCwgbWFwcGVkX2RhdGEsIHRvdGFsX3NpemUsIHB0ciwgJmJpdF9sZW4pOwor ICAgIGlmIChlcnIgPCAwKSB7CisgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAi RmFpbGVkIHRvIHdyaXRlIHRpbGUgZ3JvdXA6ICVkLlxuIiwgZXJyKTsKKyAgICAgICAgZ290byBl bmQ7CisgICAgfQorICAgIGFzc2VydCgodG90YWxfc2l6ZSArIHRpbGVfZ3JvdXBfZXh0cmFfc2l6 ZSkgKiA4ID09IGJpdF9sZW4pOworCisgICAgSUQzRDEyUmVzb3VyY2VfVW5tYXAocGljLT5vdXRw dXRfYnVmZmVyLCAwLCBOVUxMKTsKKworZW5kOgorICAgIGF2X2J1ZmZlcl91bnJlZigmcGljLT5v dXRwdXRfYnVmZmVyX3JlZik7CisgICAgcGljLT5vdXRwdXRfYnVmZmVyID0gTlVMTDsKKyAgICBy ZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IGQzZDEydmFfaHdfYmFzZV9lbmNvZGVfaW5pdF9w YXJhbXNfYXYxKEZGSFdCYXNlRW5jb2RlQ29udGV4dCAqYmFzZV9jdHgsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFWQ29kZWNDb250ZXh0ICphdmN0 eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRDNE MTJWQUhXQmFzZUVuY29kZUFWMSAqY29tbW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBEM0QxMlZBSFdCYXNlRW5jb2RlQVYxT3B0cyAqb3B0cykK K3sKKyAgICBBVjFSYXdPQlUgICAgICAqc2VxaGVhZGVyX29idSA9ICZjb21tb24tPnJhd19zZXF1 ZW5jZV9oZWFkZXI7CisgICAgQVYxUmF3U2VxdWVuY2VIZWFkZXIgICAgICpzZXEgPSAmc2VxaGVh ZGVyX29idS0+b2J1LnNlcXVlbmNlX2hlYWRlcjsKKyAgICBjb25zdCBBVlBpeEZtdERlc2NyaXB0 b3IgKmRlc2M7CisKKyAgICBzZXEtPnNlcV9wcm9maWxlID0gYXZjdHgtPnByb2ZpbGU7CisgICAg aWYgKCFzZXEtPnNlcV9mb3JjZV9zY3JlZW5fY29udGVudF90b29scykKKyAgICAgICAgc2VxLT5z ZXFfZm9yY2VfaW50ZWdlcl9tdiA9IEFWMV9TRUxFQ1RfSU5URUdFUl9NVjsKKyAgICBzZXEtPnNl cV90aWVyWzBdID0gb3B0cy0+dGllcjsKKworICAgIGRlc2MgPSBhdl9waXhfZm10X2Rlc2NfZ2V0 KGJhc2VfY3R4LT5pbnB1dF9mcmFtZXMtPnN3X2Zvcm1hdCk7CisgICAgc2VxLT5jb2xvcl9jb25m aWcgPSAoQVYxUmF3Q29sb3JDb25maWcpeworICAgICAgICAuaGlnaF9iaXRkZXB0aCA9IGRlc2Mt PmNvbXBbMF0uZGVwdGggPT0gOCA/IDAgOiAxLAorICAgICAgICAuY29sb3JfcHJpbWFyaWVzID0g YXZjdHgtPmNvbG9yX3ByaW1hcmllcywKKyAgICAgICAgLnRyYW5zZmVyX2NoYXJhY3RlcmlzdGlj cyA9IGF2Y3R4LT5jb2xvcl90cmMsCisgICAgICAgIC5tYXRyaXhfY29lZmZpY2llbnRzID0gYXZj dHgtPmNvbG9yc3BhY2UsCisgICAgICAgIC5jb2xvcl9kZXNjcmlwdGlvbl9wcmVzZW50X2ZsYWcg PSAoYXZjdHgtPmNvbG9yX3ByaW1hcmllcyAhPSBBVkNPTF9QUklfVU5TUEVDSUZJRUQgfHwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmN0eC0+Y29sb3JfdHJj ICE9IEFWQ09MX1RSQ19VTlNQRUNJRklFRCB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGF2Y3R4LT5jb2xvcnNwYWNlICE9IEFWQ09MX1NQQ19VTlNQRUNJRklF RCksCisgICAgICAgIC5jb2xvcl9yYW5nZSA9IGF2Y3R4LT5jb2xvcl9yYW5nZSA9PSBBVkNPTF9S QU5HRV9KUEVHLAorICAgICAgICAuc3Vic2FtcGxpbmdfeCA9IGRlc2MtPmxvZzJfY2hyb21hX3cs CisgICAgICAgIC5zdWJzYW1wbGluZ195ID0gZGVzYy0+bG9nMl9jaHJvbWFfaCwKKyAgICB9Owor CisgICAgc3dpdGNoIChhdmN0eC0+Y2hyb21hX3NhbXBsZV9sb2NhdGlvbikgeworICAgIGNhc2Ug QVZDSFJPTUFfTE9DX0xFRlQ6CisgICAgICAgIHNlcS0+Y29sb3JfY29uZmlnLmNocm9tYV9zYW1w bGVfcG9zaXRpb24gPSBBVjFfQ1NQX1ZFUlRJQ0FMOworICAgICAgICBicmVhazsKKyAgICBjYXNl IEFWQ0hST01BX0xPQ19UT1BMRUZUOgorICAgICAgICBzZXEtPmNvbG9yX2NvbmZpZy5jaHJvbWFf c2FtcGxlX3Bvc2l0aW9uID0gQVYxX0NTUF9DT0xPQ0FURUQ7CisgICAgICAgIGJyZWFrOworICAg IGRlZmF1bHQ6CisgICAgICAgIHNlcS0+Y29sb3JfY29uZmlnLmNocm9tYV9zYW1wbGVfcG9zaXRp b24gPSBBVjFfQ1NQX1VOS05PV047CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmIChh dmN0eC0+bGV2ZWwgIT0gQVZfTEVWRUxfVU5LTk9XTikgeworICAgICAgICBzZXEtPnNlcV9sZXZl bF9pZHhbMF0gPSBhdmN0eC0+bGV2ZWw7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBjb25z dCBBVjFMZXZlbERlc2NyaXB0b3IgKmxldmVsOworICAgICAgICBmbG9hdCBmcmFtZXJhdGU7CisK KyAgICAgICAgaWYgKGF2Y3R4LT5mcmFtZXJhdGUubnVtID4gMCAmJiBhdmN0eC0+ZnJhbWVyYXRl LmRlbiA+IDApCisgICAgICAgICAgICBmcmFtZXJhdGUgPSBhdmN0eC0+ZnJhbWVyYXRlLm51bSAv IGF2Y3R4LT5mcmFtZXJhdGUuZGVuOworICAgICAgICBlbHNlCisgICAgICAgICAgICBmcmFtZXJh dGUgPSAwOworCisgICAgICAgIC8vY3VycmVudGx5IG9ubHkgc3VwcG9ydGluZyAxIHRpbGUKKyAg ICAgICAgbGV2ZWwgPSBmZl9hdjFfZ3Vlc3NfbGV2ZWwoYXZjdHgtPmJpdF9yYXRlLCBvcHRzLT50 aWVyLAorICAgICAgICAgICAgYmFzZV9jdHgtPnN1cmZhY2Vfd2lkdGgsIGJhc2VfY3R4LT5zdXJm YWNlX2hlaWdodCwKKyAgICAgICAgICAgIC8qcHJpdi0+dGlsZV9yb3dzKi8xICogMS8qcHJpdi0+ dGlsZV9jb2xzKi8sCisgICAgICAgICAgICAvKnByaXYtPnRpbGVfY29scyovMSwgZnJhbWVyYXRl KTsKKyAgICAgICAgaWYgKGxldmVsKSB7CisgICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xP R19WRVJCT1NFLCAiVXNpbmcgbGV2ZWwgJXMuXG4iLCBsZXZlbC0+bmFtZSk7CisgICAgICAgICAg ICBzZXEtPnNlcV9sZXZlbF9pZHhbMF0gPSBsZXZlbC0+bGV2ZWxfaWR4OworICAgICAgICB9Cisg ICAgICAgIGVsc2UgeworICAgICAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfVkVSQk9TRSwg IlN0cmVhbSB3aWxsIG5vdCBjb25mb3JtIHRvICIKKyAgICAgICAgICAgICAgICAiYW55IG5vcm1h bCBsZXZlbCwgdXNpbmcgbWF4aW11bSBwYXJhbWV0ZXJzIGxldmVsIGJ5IGRlZmF1bHQuXG4iKTsK KyAgICAgICAgICAgIHNlcS0+c2VxX2xldmVsX2lkeFswXSA9IDMxOworICAgICAgICAgICAgc2Vx LT5zZXFfdGllclswXSA9IDE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBTdGlsbCBwaWN0 dXJlIG1vZGUKKyAgICBzZXEtPnN0aWxsX3BpY3R1cmUgPSAoYmFzZV9jdHgtPmdvcF9zaXplID09 IDEpOworICAgIHNlcS0+cmVkdWNlZF9zdGlsbF9waWN0dXJlX2hlYWRlciA9IHNlcS0+c3RpbGxf cGljdHVyZTsKKworICAgIC8vIEZlYXR1cmUgZmxhZ3MKKyAgICBzZXEtPmVuYWJsZV9maWx0ZXJf aW50cmEgPSBvcHRzLT5lbmFibGVfZmlsdGVyX2ludHJhOworICAgIHNlcS0+ZW5hYmxlX2ludHJh X2VkZ2VfZmlsdGVyID0gb3B0cy0+ZW5hYmxlX2ludHJhX2VkZ2VfZmlsdGVyOworICAgIHNlcS0+ ZW5hYmxlX2ludGVyaW50cmFfY29tcG91bmQgPSBvcHRzLT5lbmFibGVfaW50ZXJpbnRyYV9jb21w b3VuZDsKKyAgICBzZXEtPmVuYWJsZV9tYXNrZWRfY29tcG91bmQgPSBvcHRzLT5lbmFibGVfbWFz a2VkX2NvbXBvdW5kOworICAgIHNlcS0+ZW5hYmxlX3dhcnBlZF9tb3Rpb24gPSBvcHRzLT5lbmFi bGVfd2FycGVkX21vdGlvbjsKKyAgICBzZXEtPmVuYWJsZV9kdWFsX2ZpbHRlciA9IG9wdHMtPmVu YWJsZV9kdWFsX2ZpbHRlcjsKKyAgICBzZXEtPmVuYWJsZV9vcmRlcl9oaW50ID0gIXNlcS0+c3Rp bGxfcGljdHVyZTsKKyAgICBpZiAoc2VxLT5lbmFibGVfb3JkZXJfaGludCkgeworICAgICAgICBz ZXEtPm9yZGVyX2hpbnRfYml0c19taW51c18xID0gNzsKKyAgICB9CisgICAgc2VxLT5lbmFibGVf am50X2NvbXAgPSBvcHRzLT5lbmFibGVfam50X2NvbXAgJiYgc2VxLT5lbmFibGVfb3JkZXJfaGlu dDsKKyAgICBzZXEtPmVuYWJsZV9yZWZfZnJhbWVfbXZzID0gb3B0cy0+ZW5hYmxlX3JlZl9mcmFt ZV9tdnMgJiYgc2VxLT5lbmFibGVfb3JkZXJfaGludDsKKyAgICBzZXEtPmVuYWJsZV9zdXBlcnJl cyA9IG9wdHMtPmVuYWJsZV9zdXBlcnJlczsKKyAgICBzZXEtPmVuYWJsZV9jZGVmID0gb3B0cy0+ ZW5hYmxlX2NkZWY7CisgICAgc2VxLT5lbmFibGVfcmVzdG9yYXRpb24gPSBvcHRzLT5lbmFibGVf cmVzdG9yYXRpb247CisKKyAgICByZXR1cm4gMDsKKworfQorCitzdGF0aWMgaW50IGQzZDEydmFf ZW5jb2RlX2F2MV9pbml0X3NlcXVlbmNlX3BhcmFtcyhBVkNvZGVjQ29udGV4dCAqYXZjdHgpCit7 CisgICAgRkZIV0Jhc2VFbmNvZGVDb250ZXh0ICpiYXNlX2N0eCA9IGF2Y3R4LT5wcml2X2RhdGE7 CisgICAgRDNEMTJWQUVuY29kZUNvbnRleHQgICAgICAqY3R4ICA9IGF2Y3R4LT5wcml2X2RhdGE7 CisgICAgRDNEMTJWQUVuY29kZUFWMUNvbnRleHQgICAqcHJpdiA9IGF2Y3R4LT5wcml2X2RhdGE7 CisgICAgQVZEM0QxMlZBRnJhbWVzQ29udGV4dCAgICpod2N0eCA9IGJhc2VfY3R4LT5pbnB1dF9m cmFtZXMtPmh3Y3R4OworICAgIEFWMVJhd09CVSAgICAgICAgKnNlcWhlYWRlcl9vYnUgPSAmcHJp di0+dW5pdHMucmF3X3NlcXVlbmNlX2hlYWRlcjsKKyAgICBBVjFSYXdTZXF1ZW5jZUhlYWRlciAg ICAgICAqc2VxID0gJnByaXYtPnVuaXRzLnJhd19zZXF1ZW5jZV9oZWFkZXIub2J1LnNlcXVlbmNl X2hlYWRlcjsKKworICAgIEQzRDEyX1ZJREVPX0VOQ09ERVJfQVYxX1BST0ZJTEUgcHJvZmlsZSA9 IEQzRDEyX1ZJREVPX0VOQ09ERVJfQVYxX1BST0ZJTEVfTUFJTjsKKyAgICBEM0QxMl9WSURFT19F TkNPREVSX0FWMV9MRVZFTF9USUVSX0NPTlNUUkFJTlRTIGxldmVsID0geyAwIH07CisgICAgSFJF U1VMVCBocjsKKyAgICBpbnQgZXJyOworCisgICAgRDNEMTJfRkVBVFVSRV9EQVRBX1ZJREVPX0VO Q09ERVJfU1VQUE9SVDEgc3VwcG9ydCA9IHsKKyAgICAgICAgLk5vZGVJbmRleCAgICAgICAgICAg ICAgICAgICAgICAgID0gMCwKKyAgICAgICAgLkNvZGVjICAgICAgICAgICAgICAgICAgICAgICAg ICAgID0gRDNEMTJfVklERU9fRU5DT0RFUl9DT0RFQ19BVjEsCisgICAgICAgIC5JbnB1dEZvcm1h dCAgICAgICAgICAgICAgICAgICAgICA9IGh3Y3R4LT5mb3JtYXQsCisgICAgICAgIC5SYXRlQ29u dHJvbCAgICAgICAgICAgICAgICAgICAgICA9IGN0eC0+cmMsCisgICAgICAgIC5JbnRyYVJlZnJl c2ggICAgICAgICAgICAgICAgICAgICA9IEQzRDEyX1ZJREVPX0VOQ09ERVJfSU5UUkFfUkVGUkVT SF9NT0RFX05PTkUsCisgICAgICAgIC5TdWJyZWdpb25GcmFtZUVuY29kaW5nICAgICAgICAgICA9 IEQzRDEyX1ZJREVPX0VOQ09ERVJfRlJBTUVfU1VCUkVHSU9OX0xBWU9VVF9NT0RFX0ZVTExfRlJB TUUsCisgICAgICAgIC5SZXNvbHV0aW9uc0xpc3RDb3VudCAgICAgICAgICAgICA9IDEsCisgICAg ICAgIC5wUmVzb2x1dGlvbkxpc3QgICAgICAgICAgICAgICAgICA9ICZjdHgtPnJlc29sdXRpb24s CisgICAgICAgIC5Db2RlY0dvcFNlcXVlbmNlICAgICAgICAgICAgICAgICA9IGN0eC0+Z29wLAor ICAgICAgICAuTWF4UmVmZXJlbmNlRnJhbWVzSW5EUEIgICAgICAgICAgPSBBVjFfTlVNX1JFRl9G UkFNRVMsCisgICAgICAgIC5Db2RlY0NvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICA9IGN0eC0+ Y29kZWNfY29uZiwKKyAgICAgICAgLlN1Z2dlc3RlZFByb2ZpbGUuRGF0YVNpemUgICAgICAgID0g c2l6ZW9mKEQzRDEyX1ZJREVPX0VOQ09ERVJfQVYxX1BST0ZJTEUpLAorICAgICAgICAuU3VnZ2Vz dGVkUHJvZmlsZS5wQVYxUHJvZmlsZSAgICAgPSAmcHJvZmlsZSwKKyAgICAgICAgLlN1Z2dlc3Rl ZExldmVsLkRhdGFTaXplICAgICAgICAgID0gc2l6ZW9mKEQzRDEyX1ZJREVPX0VOQ09ERVJfQVYx X0xFVkVMX1RJRVJfQ09OU1RSQUlOVFMpLAorICAgICAgICAuU3VnZ2VzdGVkTGV2ZWwucEFWMUxl dmVsU2V0dGluZyAgPSAmbGV2ZWwsCisgICAgICAgIC5wUmVzb2x1dGlvbkRlcGVuZGVudFN1cHBv cnQgICAgICA9ICZjdHgtPnJlc19saW1pdHMsCisgICAgICAgIC5TdWJyZWdpb25GcmFtZUVuY29k aW5nRGF0YS5wVGlsZXNQYXJ0aXRpb25fQVYxID0gY3R4LT5zdWJyZWdpb25zX2xheW91dC5wVGls ZXNQYXJ0aXRpb25fQVYxLAorICAgIH07CisKKyAgICBociA9IElEM0QxMlZpZGVvRGV2aWNlM19D aGVja0ZlYXR1cmVTdXBwb3J0KGN0eC0+dmlkZW9fZGV2aWNlMywgRDNEMTJfRkVBVFVSRV9WSURF T19FTkNPREVSX1NVUFBPUlQxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJnN1cHBvcnQsIHNpemVvZihzdXBwb3J0KSk7CisKKyAgICBpZiAoRkFJTEVE KGhyKSkgeworICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byBj aGVjayBlbmNvZGVyIHN1cHBvcnQoJWx4KS5cbiIsIChsb25nKWhyKTsKKyAgICAgICAgcmV0dXJu IEFWRVJST1IoRUlOVkFMKTsKKyAgICB9CisKKyAgICBpZiAoIShzdXBwb3J0LlN1cHBvcnRGbGFn cyAmIEQzRDEyX1ZJREVPX0VOQ09ERVJfU1VQUE9SVF9GTEFHX0dFTkVSQUxfU1VQUE9SVF9PSykp IHsKKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJEcml2ZXIgZG9lcyBub3Qg c3VwcG9ydCBzb21lIHJlcXVlc3QgRDNEMTJWQSBBVjEgZmVhdHVyZXMuICUjeFxuIiwKKyAgICAg ICAgICAgICAgIHN1cHBvcnQuVmFsaWRhdGlvbkZsYWdzKTsKKyAgICAgICAgcmV0dXJuIEFWRVJS T1IoRUlOVkFMKTsKKyAgICB9CisKKyAgICBpZiAoc3VwcG9ydC5TdXBwb3J0RmxhZ3MgJiBEM0Qx Ml9WSURFT19FTkNPREVSX1NVUFBPUlRfRkxBR19SRUNPTlNUUlVDVEVEX0ZSQU1FU19SRVFVSVJF X1RFWFRVUkVfQVJSQVlTKSB7CisgICAgICAgIGN0eC0+aXNfdGV4dHVyZV9hcnJheSA9IDE7Cisg ICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0RFQlVHLCAiRDNEMTIgdmlkZW8gZW5jb2RlIG9u IHRoaXMgZGV2aWNlIHVzZXMgdGV4dHVyZSBhcnJheSBtb2RlLlxuIik7CisgICAgfQorCisgICAg bWVtc2V0KHNlcWhlYWRlcl9vYnUsIDAsIHNpemVvZigqc2VxaGVhZGVyX29idSkpOworICAgIHNl cS0+c2VxX3Byb2ZpbGUgPSBwcm9maWxlOworICAgIHNlcS0+c2VxX2xldmVsX2lkeFswXSA9IGxl dmVsLkxldmVsOworICAgIHNlcS0+c2VxX3RpZXJbMF0gPSBsZXZlbC5UaWVyOworCisgICAgc2Vx LT5tYXhfZnJhbWVfd2lkdGhfbWludXNfMSA9IGN0eC0+cmVzb2x1dGlvbi5XaWR0aCAtIDE7Cisg ICAgc2VxLT5tYXhfZnJhbWVfaGVpZ2h0X21pbnVzXzEgPSBjdHgtPnJlc29sdXRpb24uSGVpZ2h0 IC0gMTsKKyAgICBzZXEtPmZyYW1lX3dpZHRoX2JpdHNfbWludXNfMSA9IGF2X2xvZzIoY3R4LT5y ZXNvbHV0aW9uLldpZHRoKTsKKyAgICBzZXEtPmZyYW1lX2hlaWdodF9iaXRzX21pbnVzXzEgPSBh dl9sb2cyKGN0eC0+cmVzb2x1dGlvbi5IZWlnaHQpOworCisgICAgc2VxaGVhZGVyX29idS0+aGVh ZGVyLm9idV90eXBlID0gQVYxX09CVV9TRVFVRU5DRV9IRUFERVI7CisKKyAgICBlcnIgPSBkM2Qx MnZhX2h3X2Jhc2VfZW5jb2RlX2luaXRfcGFyYW1zX2F2MShiYXNlX2N0eCwgYXZjdHgsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnByaXYtPnVuaXRz LCAmcHJpdi0+dW5pdF9vcHRzKTsKKyAgICBpZiAoZXJyIDwgMCkKKyAgICAgICAgcmV0dXJuIGVy cjsKKworICAgIGlmIChhdmN0eC0+bGV2ZWwgPT0gQVZfTEVWRUxfVU5LTk9XTikKKyAgICAgICAg YXZjdHgtPmxldmVsID0gbGV2ZWwuTGV2ZWw7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGlj IGludCBkM2QxMnZhX2VuY29kZV9hdjFfZ2V0X2VuY29kZXJfY2FwcyhBVkNvZGVjQ29udGV4dCAq YXZjdHgpCit7CisgICAgSFJFU1VMVCAgICAgICAgICAgICAgICAgICAgICBociA9IFNfT0s7Cisg ICAgRkZIV0Jhc2VFbmNvZGVDb250ZXh0ICpiYXNlX2N0eCA9IGF2Y3R4LT5wcml2X2RhdGE7Cisg ICAgRDNEMTJWQUVuY29kZUNvbnRleHQgICAgICAgKmN0eCA9IGF2Y3R4LT5wcml2X2RhdGE7Cisg ICAgRDNEMTJWQUVuY29kZUFWMUNvbnRleHQgICAqcHJpdiA9IGF2Y3R4LT5wcml2X2RhdGE7CisK KyAgICBEM0QxMl9WSURFT19FTkNPREVSX0FWMV9DT0RFQ19DT05GSUdVUkFUSU9OICpjb25maWc7 CisgICAgRDNEMTJfVklERU9fRU5DT0RFUl9BVjFfQ09ERUNfQ09ORklHVVJBVElPTl9TVVBQT1JU IGF2MV9jYXBzOworCisgICAgRDNEMTJfRkVBVFVSRV9EQVRBX1ZJREVPX0VOQ09ERVJfQ09ERUNf Q09ORklHVVJBVElPTl9TVVBQT1JUIGNvZGVjX2NhcHMgPSB7CisgICAgICAgIC5Ob2RlSW5kZXgg ICAgICAgICAgICAgICAgICAgPSAwLAorICAgICAgICAuQ29kZWMgICAgICAgICAgICAgICAgICAg ICAgID0gRDNEMTJfVklERU9fRU5DT0RFUl9DT0RFQ19BVjEsCisgICAgICAgIC5Qcm9maWxlICAg ICAgICAgICAgICAgICAgICAgPSBjdHgtPnByb2ZpbGUtPmQzZDEyX3Byb2ZpbGUsCisgICAgICAg IC5Db2RlY1N1cHBvcnRMaW1pdHMuRGF0YVNpemUgPSBzaXplb2YoRDNEMTJfVklERU9fRU5DT0RF Ul9BVjFfQ09ERUNfQ09ORklHVVJBVElPTl9TVVBQT1JUKSwKKyAgICB9OworCisgICAgY29kZWNf Y2Fwcy5Db2RlY1N1cHBvcnRMaW1pdHMucEFWMVN1cHBvcnQgPSAmYXYxX2NhcHM7CisKKyAgICBo ciA9IElEM0QxMlZpZGVvRGV2aWNlM19DaGVja0ZlYXR1cmVTdXBwb3J0KGN0eC0+dmlkZW9fZGV2 aWNlMywgRDNEMTJfRkVBVFVSRV9WSURFT19FTkNPREVSX0NPREVDX0NPTkZJR1VSQVRJT05fU1VQ UE9SVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZj b2RlY19jYXBzLCBzaXplb2YoY29kZWNfY2FwcykpOworICAgIGlmICghKFNVQ0NFRURFRChocikg JiYgY29kZWNfY2Fwcy5Jc1N1cHBvcnRlZCkpCisgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZB TCk7CisKKyAgICBjdHgtPmNvZGVjX2NvbmYuRGF0YVNpemUgPSBzaXplb2YoRDNEMTJfVklERU9f RU5DT0RFUl9BVjFfQ09ERUNfQ09ORklHVVJBVElPTik7CisgICAgY3R4LT5jb2RlY19jb25mLnBB VjFDb25maWcgPSBhdl9tYWxsb2N6KGN0eC0+Y29kZWNfY29uZi5EYXRhU2l6ZSk7CisgICAgaWYg KCFjdHgtPmNvZGVjX2NvbmYucEFWMUNvbmZpZykKKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5P TUVNKTsKKworICAgIHByaXYtPnBvc3RfZW5jb2RlX3ZhbHVlc19mbGFnID0gYXYxX2NhcHMuUG9z dEVuY29kZVZhbHVlc0ZsYWdzOworICAgIGNvbmZpZyA9IGN0eC0+Y29kZWNfY29uZi5wQVYxQ29u ZmlnOworCisgICAgY29uZmlnLT5GZWF0dXJlRmxhZ3MgPSBEM0QxMl9WSURFT19FTkNPREVSX0FW MV9GRUFUVVJFX0ZMQUdfTk9ORTsKKyAgICBpZiAoYXYxX2NhcHMuU3VwcG9ydGVkRmVhdHVyZUZs YWdzICYgRDNEMTJfVklERU9fRU5DT0RFUl9BVjFfRkVBVFVSRV9GTEFHXzEyOHgxMjhfU1VQRVJC TE9DSykgeworICAgICAgICBjb25maWctPkZlYXR1cmVGbGFncyB8PSBEM0QxMl9WSURFT19FTkNP REVSX0FWMV9GRUFUVVJFX0ZMQUdfMTI4eDEyOF9TVVBFUkJMT0NLOworICAgICAgICBwcml2LT51 bml0X29wdHMuZW5hYmxlXzEyOHgxMjhfc3VwZXJibG9jayA9IDE7CisgICAgfQorCisgICAgYmFz ZV9jdHgtPnN1cmZhY2Vfd2lkdGggID0gRkZBTElHTihhdmN0eC0+d2lkdGgsICBwcml2LT51bml0 X29wdHMuZW5hYmxlXzEyOHgxMjhfc3VwZXJibG9jayA/IDEyOCA6IDY0KTsKKyAgICBiYXNlX2N0 eC0+c3VyZmFjZV9oZWlnaHQgPSBGRkFMSUdOKGF2Y3R4LT5oZWlnaHQsIHByaXYtPnVuaXRfb3B0 cy5lbmFibGVfMTI4eDEyOF9zdXBlcmJsb2NrID8gMTI4IDogNjQpOworCisgICAgaWYgKGF2MV9j YXBzLlN1cHBvcnRlZEZlYXR1cmVGbGFncyAmIEQzRDEyX1ZJREVPX0VOQ09ERVJfQVYxX0ZFQVRV UkVfRkxBR19MT09QX1JFU1RPUkFUSU9OX0ZJTFRFUikgeworICAgICAgICBjb25maWctPkZlYXR1 cmVGbGFncyB8PSBEM0QxMl9WSURFT19FTkNPREVSX0FWMV9GRUFUVVJFX0ZMQUdfTE9PUF9SRVNU T1JBVElPTl9GSUxURVI7CisgICAgICAgIHByaXYtPnVuaXRfb3B0cy5lbmFibGVfbG9vcF9maWx0 ZXIgPSAxOworICAgIH0KKworICAgIGlmIChhdjFfY2Fwcy5TdXBwb3J0ZWRGZWF0dXJlRmxhZ3Mg JiBEM0QxMl9WSURFT19FTkNPREVSX0FWMV9GRUFUVVJFX0ZMQUdfUEFMRVRURV9FTkNPRElORykg eworICAgICAgICBjb25maWctPkZlYXR1cmVGbGFncyB8PSBEM0QxMl9WSURFT19FTkNPREVSX0FW MV9GRUFUVVJFX0ZMQUdfUEFMRVRURV9FTkNPRElORzsKKyAgICAgICAgcHJpdi0+dW5pdF9vcHRz LmVuYWJsZV9wYWxldHRlID0gMTsKKyAgICB9CisKKyAgICBpZiAoYXYxX2NhcHMuU3VwcG9ydGVk RmVhdHVyZUZsYWdzICYgRDNEMTJfVklERU9fRU5DT0RFUl9BVjFfRkVBVFVSRV9GTEFHX0lOVFJB X0JMT0NLX0NPUFkpIHsKKyAgICAgICAgY29uZmlnLT5GZWF0dXJlRmxhZ3MgfD0gRDNEMTJfVklE RU9fRU5DT0RFUl9BVjFfRkVBVFVSRV9GTEFHX0lOVFJBX0JMT0NLX0NPUFk7CisgICAgICAgIHBy aXYtPnVuaXRfb3B0cy5lbmFibGVfaW50cmFfYmxvY2tfY29weSA9IDE7CisgICAgfQorCisgICAg aWYgKGF2MV9jYXBzLlN1cHBvcnRlZEZlYXR1cmVGbGFncyAmIEQzRDEyX1ZJREVPX0VOQ09ERVJf QVYxX0ZFQVRVUkVfRkxBR19MT09QX0ZJTFRFUl9ERUxUQVMpIHsKKyAgICAgICAgLy8gTG9vcCBm aWx0ZXIgZGVsdGFzCisgICAgICAgIGNvbmZpZy0+RmVhdHVyZUZsYWdzIHw9IEQzRDEyX1ZJREVP X0VOQ09ERVJfQVYxX0ZFQVRVUkVfRkxBR19MT09QX0ZJTFRFUl9ERUxUQVM7CisgICAgICAgIHBy aXYtPnVuaXRfb3B0cy5lbmFibGVfbG9vcF9maWx0ZXJfZGVsdGEgPSAxOworICAgIH0KKworICAg IGlmIChhdjFfY2Fwcy5TdXBwb3J0ZWRGZWF0dXJlRmxhZ3MgJiBEM0QxMl9WSURFT19FTkNPREVS X0FWMV9GRUFUVVJFX0ZMQUdfQ0RFRl9GSUxURVJJTkcpIHsKKyAgICAgICAgLy8gQ0RFRiAoQ29u c3RyYWluZWQgRGlyZWN0aW9uYWwgRW5oYW5jZW1lbnQgRmlsdGVyKQorICAgICAgICBjb25maWct PkZlYXR1cmVGbGFncyB8PSBEM0QxMl9WSURFT19FTkNPREVSX0FWMV9GRUFUVVJFX0ZMQUdfQ0RF Rl9GSUxURVJJTkc7CisgICAgICAgIHByaXYtPnVuaXRfb3B0cy5lbmFibGVfY2RlZiA9IDE7Cisg ICAgfQorCisgICAgaWYgKGF2MV9jYXBzLlN1cHBvcnRlZEZlYXR1cmVGbGFncyAmIEQzRDEyX1ZJ REVPX0VOQ09ERVJfQVYxX0ZFQVRVUkVfRkxBR19EVUFMX0ZJTFRFUikgeworICAgICAgICAvLyBE dWFsIGZpbHRlcgorICAgICAgICBjb25maWctPkZlYXR1cmVGbGFncyB8PSBEM0QxMl9WSURFT19F TkNPREVSX0FWMV9GRUFUVVJFX0ZMQUdfRFVBTF9GSUxURVI7CisgICAgICAgIHByaXYtPnVuaXRf b3B0cy5lbmFibGVfZHVhbF9maWx0ZXIgPSAxOworICAgIH0KKworICAgIGlmIChhdjFfY2Fwcy5T dXBwb3J0ZWRGZWF0dXJlRmxhZ3MgJiBEM0QxMl9WSURFT19FTkNPREVSX0FWMV9GRUFUVVJFX0ZM QUdfSk5UX0NPTVApIHsKKyAgICAgICAgLy8gSm9pbnQgY29tcG91bmQgcHJlZGljdGlvbgorICAg ICAgICBjb25maWctPkZlYXR1cmVGbGFncyB8PSBEM0QxMl9WSURFT19FTkNPREVSX0FWMV9GRUFU VVJFX0ZMQUdfSk5UX0NPTVA7CisgICAgICAgIHByaXYtPnVuaXRfb3B0cy5lbmFibGVfam50X2Nv bXAgPSAxOworICAgIH0KKworICAgIGlmIChhdjFfY2Fwcy5TdXBwb3J0ZWRGZWF0dXJlRmxhZ3Mg JiBEM0QxMl9WSURFT19FTkNPREVSX0FWMV9GRUFUVVJFX0ZMQUdfRlJBTUVfUkVGRVJFTkNFX01P VElPTl9WRUNUT1JTKSB7CisgICAgICAgIC8vIEZyYW1lIHJlZmVyZW5jZSBtb3Rpb24gdmVjdG9y cworICAgICAgICBjb25maWctPkZlYXR1cmVGbGFncyB8PSBEM0QxMl9WSURFT19FTkNPREVSX0FW MV9GRUFUVVJFX0ZMQUdfRlJBTUVfUkVGRVJFTkNFX01PVElPTl9WRUNUT1JTOworICAgICAgICBw cml2LT51bml0X29wdHMuZW5hYmxlX3JlZl9mcmFtZV9tdnMgPSAxOworICAgIH0KKworICAgIGlm IChhdjFfY2Fwcy5TdXBwb3J0ZWRGZWF0dXJlRmxhZ3MgJiBEM0QxMl9WSURFT19FTkNPREVSX0FW MV9GRUFUVVJFX0ZMQUdfU1VQRVJfUkVTT0xVVElPTikgeworICAgICAgICAvLyBTdXBlci1yZXNv bHV0aW9uCisgICAgICAgIGNvbmZpZy0+RmVhdHVyZUZsYWdzIHw9IEQzRDEyX1ZJREVPX0VOQ09E RVJfQVYxX0ZFQVRVUkVfRkxBR19TVVBFUl9SRVNPTFVUSU9OOworICAgICAgICBwcml2LT51bml0 X29wdHMuZW5hYmxlX3N1cGVycmVzID0gMTsKKyAgICB9CisKKyAgICBpZiAoYXYxX2NhcHMuU3Vw cG9ydGVkRmVhdHVyZUZsYWdzICYgRDNEMTJfVklERU9fRU5DT0RFUl9BVjFfRkVBVFVSRV9GTEFH X1dBUlBFRF9NT1RJT04pIHsKKyAgICAgICAgLy8gV2FycGVkIG1vdGlvbgorICAgICAgICBjb25m aWctPkZlYXR1cmVGbGFncyB8PSBEM0QxMl9WSURFT19FTkNPREVSX0FWMV9GRUFUVVJFX0ZMQUdf V0FSUEVEX01PVElPTjsKKyAgICAgICAgcHJpdi0+dW5pdF9vcHRzLmVuYWJsZV93YXJwZWRfbW90 aW9uID0gMTsKKyAgICB9CisKKyAgICBpZiAoYXYxX2NhcHMuU3VwcG9ydGVkRmVhdHVyZUZsYWdz ICYgRDNEMTJfVklERU9fRU5DT0RFUl9BVjFfRkVBVFVSRV9GTEFHX0lOVEVSSU5UUkFfQ09NUE9V TkQpIHsKKyAgICAgICAgLy8gSW50ZXItaW50cmEgY29tcG91bmQgcHJlZGljdGlvbgorICAgICAg ICBjb25maWctPkZlYXR1cmVGbGFncyB8PSBEM0QxMl9WSURFT19FTkNPREVSX0FWMV9GRUFUVVJF X0ZMQUdfSU5URVJJTlRSQV9DT01QT1VORDsKKyAgICAgICAgcHJpdi0+dW5pdF9vcHRzLmVuYWJs ZV9pbnRlcmludHJhX2NvbXBvdW5kID0gMTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwor c3RhdGljIGludCBkM2QxMnZhX2VuY29kZV9hdjFfY29uZmlndXJlKEFWQ29kZWNDb250ZXh0ICph dmN0eCkKK3sKKyAgICBGRkhXQmFzZUVuY29kZUNvbnRleHQgKmJhc2VfY3R4ID0gYXZjdHgtPnBy aXZfZGF0YTsKKyAgICBEM0QxMlZBRW5jb2RlQ29udGV4dCAgICAgICAqY3R4ID0gYXZjdHgtPnBy aXZfZGF0YTsKKyAgICBEM0QxMlZBRW5jb2RlQVYxQ29udGV4dCAgICpwcml2ID0gYXZjdHgtPnBy aXZfZGF0YTsKKyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgZXJyID0gMDsKKyAgICBp bnQgZml4ZWRfcXBfa2V5LCBmaXhlZF9xcF9pbnRlcjsKKworICAgIGVyciA9IGZmX2Nic19pbml0 KCZwcml2LT5jYmMsIEFWX0NPREVDX0lEX0FWMSwgYXZjdHgpOworICAgIGlmIChlcnIgPCAwKQor ICAgICAgICByZXR1cm4gZXJyOworCisgICAgaWYgKGN0eC0+cmMuTW9kZSA9PSBEM0QxMl9WSURF T19FTkNPREVSX1JBVEVfQ09OVFJPTF9NT0RFX0NRUCkgeworICAgICAgICBEM0QxMl9WSURFT19F TkNPREVSX1JBVEVfQ09OVFJPTF9DUVAgKmNxcF9jdGw7CisgICAgICAgIGZpeGVkX3FwX2ludGVy ID0gYXZfY2xpcF91aW50cDIoY3R4LT5yY19xdWFsaXR5LCA4KTsKKworICAgICAgICBpZiAoYXZj dHgtPmlfcXVhbnRfZmFjdG9yID4gMC4wKQorICAgICAgICAgICAgZml4ZWRfcXBfa2V5ID0gYXZf Y2xpcF91aW50cDIoKGF2Y3R4LT5pX3F1YW50X2ZhY3RvciAqIGZpeGVkX3FwX2ludGVyICsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2Y3R4LT5pX3F1YW50X29mZnNldCkg KyAwLjUsIDgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBmaXhlZF9xcF9rZXkgPSBmaXhl ZF9xcF9pbnRlcjsKKworICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19ERUJVRywgIlVzaW5n IGZpeGVkIFFQID0gIgorICAgICAgICAgICAgICAgIiVkIC8gJWQgZm9yIEtleSAvIEludGVyIGZy YW1lcy5cbiIsCisgICAgICAgICAgICAgICBmaXhlZF9xcF9rZXksIGZpeGVkX3FwX2ludGVyKTsK KworICAgICAgICBjdHgtPnJjLkNvbmZpZ1BhcmFtcy5EYXRhU2l6ZSA9IHNpemVvZihEM0QxMl9W SURFT19FTkNPREVSX1JBVEVfQ09OVFJPTF9DUVApOworICAgICAgICBjcXBfY3RsID0gYXZfbWFs bG9jeihjdHgtPnJjLkNvbmZpZ1BhcmFtcy5EYXRhU2l6ZSk7CisgICAgICAgIGlmICghY3FwX2N0 bCkKKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7CisKKyAgICAgICAgY3FwX2N0 bC0+Q29uc3RhbnRRUF9GdWxsSW50cmFjb2RlZEZyYW1lICAgICAgICAgICAgICAgICAgPSBmaXhl ZF9xcF9rZXk7CisgICAgICAgIGNxcF9jdGwtPkNvbnN0YW50UVBfSW50ZXJQcmVkaWN0ZWRGcmFt ZV9QcmV2UmVmT25seSAgICAgID0gZml4ZWRfcXBfaW50ZXI7CisgICAgICAgIGNxcF9jdGwtPkNv bnN0YW50UVBfSW50ZXJQcmVkaWN0ZWRGcmFtZV9CaURpcmVjdGlvbmFsUmVmID0gZml4ZWRfcXBf aW50ZXI7CisKKyAgICAgICAgY3R4LT5yYy5Db25maWdQYXJhbXMucENvbmZpZ3VyYXRpb25fQ1FQ ID0gY3FwX2N0bDsKKworICAgICAgICBwcml2LT5xX2lkeF9pZHIgPSBmaXhlZF9xcF9rZXk7Cisg ICAgICAgIHByaXYtPnFfaWR4X3AgICA9IGZpeGVkX3FwX2ludGVyOworCisgICAgfQorCisgICAg Ly8gR09QIGNvbmZpZ3VyYXRpb24gZm9yIEFWMQorICAgIGN0eC0+Z29wLkRhdGFTaXplID0gc2l6 ZW9mKEQzRDEyX1ZJREVPX0VOQ09ERVJfQVYxX1NFUVVFTkNFX1NUUlVDVFVSRSk7CisgICAgY3R4 LT5nb3AucEFWMVNlcXVlbmNlU3RydWN0dXJlID0gYXZfbWFsbG9jeihjdHgtPmdvcC5EYXRhU2l6 ZSk7CisgICAgaWYgKCFjdHgtPmdvcC5wQVYxU2VxdWVuY2VTdHJ1Y3R1cmUpCisgICAgICAgIHJl dHVybiBBVkVSUk9SKEVOT01FTSk7CisKKyAgICBjdHgtPmdvcC5wQVYxU2VxdWVuY2VTdHJ1Y3R1 cmUtPkludHJhRGlzdGFuY2UgPSBiYXNlX2N0eC0+Z29wX3NpemU7CisgICAgY3R4LT5nb3AucEFW MVNlcXVlbmNlU3RydWN0dXJlLT5JbnRlckZyYW1lUGVyaW9kID0gYmFzZV9jdHgtPmJfcGVyX3Ag KyAxOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZDNkMTJ2YV9lbmNvZGVfYXYx X3NldF9sZXZlbChBVkNvZGVjQ29udGV4dCAqYXZjdHgpCit7CisgICAgRDNEMTJWQUVuY29kZUNv bnRleHQgICAgICpjdHggPSBhdmN0eC0+cHJpdl9kYXRhOworICAgIEQzRDEyVkFFbmNvZGVBVjFD b250ZXh0ICpwcml2ID0gYXZjdHgtPnByaXZfZGF0YTsKKyAgICBpbnQgICAgICAgICAgICAgICAg ICAgICAgICAgaSA9IDA7CisKKyAgICBjdHgtPmxldmVsLkRhdGFTaXplID0gc2l6ZW9mKEQzRDEy X1ZJREVPX0VOQ09ERVJfQVYxX0xFVkVMX1RJRVJfQ09OU1RSQUlOVFMpOworICAgIGN0eC0+bGV2 ZWwucEFWMUxldmVsU2V0dGluZyA9IGF2X21hbGxvY3ooY3R4LT5sZXZlbC5EYXRhU2l6ZSk7Cisg ICAgaWYgKCFjdHgtPmxldmVsLnBBVjFMZXZlbFNldHRpbmcpCisgICAgICAgIHJldHVybiBBVkVS Uk9SKEVOT01FTSk7CisKKyAgICBpZiAoYXZjdHgtPmxldmVsICE9IEFWX0xFVkVMX1VOS05PV04p IHsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IEZGX0FSUkFZX0VMRU1TKGF2MV9sZXZlbHMpOyBp KyspIHsKKyAgICAgICAgICAgIGlmIChhdmN0eC0+bGV2ZWwgPT0gYXYxX2xldmVsc1tpXS5sZXZl bCkgeworICAgICAgICAgICAgICAgIGN0eC0+bGV2ZWwucEFWMUxldmVsU2V0dGluZy0+TGV2ZWwg PSBhdjFfbGV2ZWxzW2ldLmQzZDEyX2xldmVsOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg ICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGkgPT0gRkZfQVJSQVlfRUxFTVMo YXYxX2xldmVscykgKSB7CisgICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwg IkludmFsaWQgQVYxIGxldmVsICVkLlxuIiwgYXZjdHgtPmxldmVsKTsKKyAgICAgICAgICAgIHJl dHVybiBBVkVSUk9SKEVJTlZBTCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBj dHgtPmxldmVsLnBBVjFMZXZlbFNldHRpbmctPkxldmVsID0gRDNEMTJfVklERU9fRU5DT0RFUl9B VjFfTEVWRUxTXzVfMjsKKyAgICAgICAgYXZjdHgtPmxldmVsID0gRDNEMTJfVklERU9fRU5DT0RF Ul9BVjFfTEVWRUxTXzVfMjsKKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfREVCVUcsICJV c2luZyBkZWZhdWx0IEFWMSBsZXZlbCA1LjJcbiIpOworICAgIH0KKworICAgIGlmIChwcml2LT50 aWVyID09IDEgfHwgYXZjdHgtPmJpdF9yYXRlID4gMzAwMDAwMDApIHsKKyAgICAgICAgY3R4LT5s ZXZlbC5wQVYxTGV2ZWxTZXR0aW5nLT5UaWVyID0gRDNEMTJfVklERU9fRU5DT0RFUl9BVjFfVElF Ul9ISUdIOworICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19ERUJVRywgIlVzaW5nIEFWMSBI aWdoIHRpZXJcbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGN0eC0+bGV2ZWwucEFWMUxldmVs U2V0dGluZy0+VGllciA9IEQzRDEyX1ZJREVPX0VOQ09ERVJfQVYxX1RJRVJfTUFJTjsKKyAgICAg ICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfREVCVUcsICJVc2luZyBBVjEgTWFpbiB0aWVyXG4iKTsK KyAgICB9CisKKyAgICBpZiAocHJpdi0+dGllciA+PSAwKSB7CisgICAgICAgIGN0eC0+bGV2ZWwu cEFWMUxldmVsU2V0dGluZy0+VGllciA9IHByaXYtPnRpZXIgPT0gMCA/CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEQzRDEyX1ZJREVPX0VOQ09ERVJfQVYxX1RJ RVJfTUFJTiA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEQz RDEyX1ZJREVPX0VOQ09ERVJfQVYxX1RJRVJfSElHSDsKKyAgICB9CisKKyAgICBhdl9sb2coYXZj dHgsIEFWX0xPR19ERUJVRywgIkFWMSBsZXZlbCBzZXQgdG8gJWQsIHRpZXI6ICVzXG4iLAorICAg ICAgICAgICBjdHgtPmxldmVsLnBBVjFMZXZlbFNldHRpbmctPkxldmVsLAorICAgICAgICAgICBj dHgtPmxldmVsLnBBVjFMZXZlbFNldHRpbmctPlRpZXIgPT0gRDNEMTJfVklERU9fRU5DT0RFUl9B VjFfVElFUl9NQUlOID8gIk1haW4iIDogIkhpZ2giKTsKKworICAgIHJldHVybiAwOworfQorCitz dGF0aWMgaW50IGQzZDEydmFfZW5jb2RlX2F2MV9zZXRfdGlsZShBVkNvZGVjQ29udGV4dCAqYXZj dHgpCit7CisgICAgRDNEMTJWQUVuY29kZUNvbnRleHQgKmN0eCA9IGF2Y3R4LT5wcml2X2RhdGE7 CisKKyAgICBjdHgtPnN1YnJlZ2lvbnNfbGF5b3V0LkRhdGFTaXplID0gc2l6ZW9mKEQzRDEyX1ZJ REVPX0VOQ09ERVJfQVYxX1BJQ1RVUkVfQ09OVFJPTF9TVUJSRUdJT05TX0xBWU9VVF9EQVRBX1RJ TEVTKTsKKyAgICBEM0QxMl9WSURFT19FTkNPREVSX0FWMV9QSUNUVVJFX0NPTlRST0xfU1VCUkVH SU9OU19MQVlPVVRfREFUQV9USUxFUyAqdGlsZXNfbGF5b3V0ID0gYXZfbWFsbG9jeihjdHgtPnN1 YnJlZ2lvbnNfbGF5b3V0LkRhdGFTaXplKTsKKyAgICBjdHgtPnN1YnJlZ2lvbnNfbGF5b3V0LnBU aWxlc1BhcnRpdGlvbl9BVjEgPSB0aWxlc19sYXlvdXQ7CisKKyAgICAvLyBDdXJyZW50bHkgb25s eSBzdXBwb3J0IDEgdGlsZQorICAgIHRpbGVzX2xheW91dC0+Um93Q291bnQgPSAxOworICAgIHRp bGVzX2xheW91dC0+Q29sQ291bnQgPSAxOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2 b2lkIGQzZDEydmFfZW5jb2RlX2F2MV9mcmVlX3BpY3R1cmVfcGFyYW1zKEQzRDEyVkFFbmNvZGVQ aWN0dXJlICpwaWMpCit7CisgICAgaWYgKCFwaWMtPnBpY19jdGwucEFWMVBpY0RhdGEpCisgICAg ICAgIHJldHVybjsKKworICAgIGF2X2ZyZWVwKCZwaWMtPnBpY19jdGwucEFWMVBpY0RhdGEpOwor fQorCitzdGF0aWMgaW50IGQzZDEydmFfZW5jb2RlX2F2MV9pbml0X3BpY3R1cmVfcGFyYW1zKEFW Q29kZWNDb250ZXh0ICphdmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRkZIV0Jhc2VFbmNvZGVQaWN0dXJlICpwaWMpCit7CisgICAgRkZIV0Jh c2VFbmNvZGVDb250ZXh0ICAgICAgICAgICAgICpiYXNlX2N0eCA9IGF2Y3R4LT5wcml2X2RhdGE7 CisgICAgRDNEMTJWQUVuY29kZUFWMUNvbnRleHQgICAgICAgICAgICAgICAqcHJpdiA9IGF2Y3R4 LT5wcml2X2RhdGE7CisgICAgRDNEMTJWQUVuY29kZUNvbnRleHQgICAgICAgICAgICAgICAgICAg KmN0eCA9IGF2Y3R4LT5wcml2X2RhdGE7CisgICAgRDNEMTJWQUVuY29kZVBpY3R1cmUgICAgICAg ICAgICpkM2QxMnZhX3BpYyA9IHBpYy0+cHJpdjsKKyAgICBEM0QxMlZBRW5jb2RlQVYxUGljdHVy ZSAgICAgICAgICAgICAgICpocGljID0gcGljLT5jb2RlY19wcml2OworICAgIENvZGVkQml0c3Ry ZWFtQVYxQ29udGV4dCAgICAgICAgICAgICAqY2JjdHggPSBwcml2LT5jYmMtPnByaXZfZGF0YTsK KyAgICBBVjFSYXdPQlUgICAgICAgICAgICAgICAgICAqZnJhbWVoZWFkZXJfb2J1ID0gJnByaXYt PnVuaXRzLnJhd19mcmFtZV9oZWFkZXI7CisgICAgQVYxUmF3RnJhbWVIZWFkZXIgICAgICAgICAg ICAgICAgICAgICAgICpmaCA9ICZmcmFtZWhlYWRlcl9vYnUtPm9idS5mcmFtZV9oZWFkZXI7CisK KyAgICBGRkhXQmFzZUVuY29kZVBpY3R1cmUgKnJlZjsKKyAgICBEM0QxMlZBRW5jb2RlQVYxUGlj dHVyZSAqaHJlZjsKKyAgICBpbnQgaTsKKworICAgIHN0YXRpYyBjb25zdCBpbnQ4X3QgZGVmYXVs dF9sb29wX2ZpbHRlcl9yZWZfZGVsdGFzW0FWMV9UT1RBTF9SRUZTX1BFUl9GUkFNRV0gPQorICAg ICAgICB7IDEsIDAsIDAsIDAsIC0xLCAwLCAtMSwgLTEgfTsKKworICAgIG1lbXNldChmcmFtZWhl YWRlcl9vYnUsIDAsIHNpemVvZigqZnJhbWVoZWFkZXJfb2J1KSk7CisKKyAgICBmcmFtZWhlYWRl cl9vYnUtPmhlYWRlci5vYnVfdHlwZSA9IEFWMV9PQlVfRlJBTUVfSEVBREVSOworCisgICAgZDNk MTJ2YV9waWMtPnBpY19jdGwuRGF0YVNpemUgPSBzaXplb2YoRDNEMTJfVklERU9fRU5DT0RFUl9B VjFfUElDVFVSRV9DT05UUk9MX0NPREVDX0RBVEEpOworICAgIGQzZDEydmFfcGljLT5waWNfY3Rs LnBBVjFQaWNEYXRhID0gYXZfbWFsbG9jeihkM2QxMnZhX3BpYy0+cGljX2N0bC5EYXRhU2l6ZSk7 CisgICAgaWYgKCFkM2QxMnZhX3BpYy0+cGljX2N0bC5wQVYxUGljRGF0YSkKKyAgICAgICAgcmV0 dXJuIEFWRVJST1IoRU5PTUVNKTsKKworICAgIC8vIEluaXRpYWxpemUgZnJhbWUgdHlwZSBhbmQg cmVmZXJlbmNlIGZyYW1lIG1hbmFnZW1lbnQKKyAgICBzd2l0Y2gocGljLT50eXBlKSB7CisgICAg ICAgIGNhc2UgRkZfSFdfUElDVFVSRV9UWVBFX0lEUjoKKyAgICAgICAgICAgIGZoLT5mcmFtZV90 eXBlID0gQVYxX0ZSQU1FX0tFWTsKKyAgICAgICAgICAgIGZoLT5yZWZyZXNoX2ZyYW1lX2ZsYWdz ID0gMHhGRjsKKyAgICAgICAgICAgIGZoLT5iYXNlX3FfaWR4ID0gcHJpdi0+cV9pZHhfaWRyOwor ICAgICAgICAgICAgaHBpYy0+c2xvdCA9IDA7CisgICAgICAgICAgICBocGljLT5sYXN0X2lkcl9m cmFtZSA9IHBpYy0+ZGlzcGxheV9vcmRlcjsKKyAgICAgICAgICAgIGZoLT50eF9tb2RlID0gQVYx X1RYX01PREVfTEFSR0VTVDsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRkZf SFdfUElDVFVSRV9UWVBFX1A6CisgICAgICAgICAgICBmaC0+ZnJhbWVfdHlwZSA9IEFWMV9GUkFN RV9JTlRFUjsKKyAgICAgICAgICAgIGZoLT5iYXNlX3FfaWR4ID0gcHJpdi0+cV9pZHhfcDsKKyAg ICAgICAgICAgIGZoLT50eF9tb2RlID0gQVYxX1RYX01PREVfU0VMRUNUOworCisgICAgICAgICAg ICByZWYgPSBwaWMtPnJlZnNbMF1bcGljLT5uYl9yZWZzWzBdIC0gMV07CisgICAgICAgICAgICBo cmVmID0gcmVmLT5jb2RlY19wcml2OworCisgICAgICAgICAgICAvKioKKyAgICAgICAgICAgICAq IFRoZSBlbmNvZGVyIHVzZXMgYSBzaW1wbGUgYWx0ZXJuYXRpbmcgcmVmZXJlbmNlIGZyYW1lIHN0 cmF0ZWd5OgorICAgICAgICAgICAgICogLSBGb3IgUC1mcmFtZXMsIGl0IHVzZXMgdGhlIGxhc3Qg cmVjb25zdHJ1Y3RlZCBmcmFtZSBhcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgICAgICAqIC0gVG8g c2ltcGxpZnkgdGhlIHJlZmVyZW5jZSBtb2RlbCBvZiB0aGUgZW5jb2RlciwgdGhlIGVuY29kZXIg YWx0ZXJuYXRlcyBiZXR3ZWVuCisgICAgICAgICAgICAgKiB0d28gcmVmZXJlbmNlIGZyYW1lIHNs b3RzICh0eXBpY2FsbHkgc2xvdCAwIGFuZCBzbG90IDEpIGZvciBzdG9yaW5nIHJlY29uc3RydWN0 ZWQKKyAgICAgICAgICAgICAqIGltYWdlcyBhbmQgcHJvdmlkaW5nIHByZWRpY3Rpb24gcmVmZXJl bmNlcyBmb3IgdGhlIG5leHQgZnJhbWUuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlm IChiYXNlX2N0eC0+cmVmX2wwID4gMSkgeworICAgICAgICAgICAgICAgIGhwaWMtPnNsb3QgPSAh aHJlZi0+c2xvdDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaHBpYy0+ c2xvdCA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBocGljLT5sYXN0X2lkcl9mcmFt ZSA9IGhyZWYtPmxhc3RfaWRyX2ZyYW1lOworICAgICAgICAgICAgZmgtPnJlZnJlc2hfZnJhbWVf ZmxhZ3MgPSAxIDw8IGhwaWMtPnNsb3Q7CisKKyAgICAgICAgICAgIC8vIFNldCB0aGUgbmVhcmVz dCBmcmFtZSBpbiBMMCBhcyBhbGwgcmVmZXJlbmNlIGZyYW1lLgorICAgICAgICAgICAgZm9yIChp ID0gMDsgaSA8IEFWMV9SRUZTX1BFUl9GUkFNRTsgaSsrKQorICAgICAgICAgICAgICAgIGZoLT5y ZWZfZnJhbWVfaWR4W2ldID0gaHJlZi0+c2xvdDsKKworICAgICAgICAgICAgZmgtPnByaW1hcnlf cmVmX2ZyYW1lID0gaHJlZi0+c2xvdDsKKyAgICAgICAgICAgIGZoLT5yZWZfb3JkZXJfaGludFto cmVmLT5zbG90XSA9IHJlZi0+ZGlzcGxheV9vcmRlciAtIGhyZWYtPmxhc3RfaWRyX2ZyYW1lOwor CisgICAgICAgICAgICAvLyBTZXQgdGhlIDJuZCBuZWFyZXN0IGZyYW1lIGluIEwwIGFzIEdvbGRl biBmcmFtZS4KKyAgICAgICAgICAgIGlmIChwaWMtPm5iX3JlZnNbMF0gPiAxKSB7CisgICAgICAg ICAgICAgICAgcmVmID0gcGljLT5yZWZzWzBdW3BpYy0+bmJfcmVmc1swXSAtIDJdOworICAgICAg ICAgICAgICAgIGhyZWYgPSByZWYtPmNvZGVjX3ByaXY7CisgICAgICAgICAgICAgICAgLy8gUmVm ZXJlbmNlIGZyYW1lIGluZGV4IDMgaXMgdGhlIEdPTERFTl9GUkFNRQorICAgICAgICAgICAgICAg IGZoLT5yZWZfZnJhbWVfaWR4WzNdID0gaHJlZi0+c2xvdDsKKyAgICAgICAgICAgICAgICBmaC0+ cmVmX29yZGVyX2hpbnRbaHJlZi0+c2xvdF0gPSByZWYtPmRpc3BsYXlfb3JkZXIgLSBocmVmLT5s YXN0X2lkcl9mcmFtZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYmFzZV9jdHgtPnJlZl9sMCA9 PSAxKSB7CisgICAgICAgICAgICAgICAgZmgtPnJlZl9vcmRlcl9oaW50WyFocmVmLT5zbG90XSA9 IGNiY3R4LT5yZWZbIWhyZWYtPnNsb3RdLm9yZGVyX2hpbnQ7CisgICAgICAgICAgICB9CisgICAg ICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIEZGX0hXX1BJQ1RVUkVfVFlQRV9COgorICAg ICAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJEM0QxMiBBVjEgdmlkZW8gZW5j b2RlIG9uIHRoaXMgZGV2aWNlIHJlcXVpcmVzIEItZnJhbWUgc3VwcG9ydCwgIgorICAgICAgICAg ICAgICAgICJidXQgaXQncyBub3QgaW1wbGVtZW50ZWQuXG4iKTsKKyAgICAgICAgICAgIHJldHVy biBBVkVSUk9SX1BBVENIV0VMQ09NRTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGF2 X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiVW5zdXBwb3J0ZWQgcGljdHVyZSB0eXBlICVkLlxu IiwgcGljLT50eXBlKTsKKyAgICB9CisKKworICAgIGNiY3R4LT5zZWVuX2ZyYW1lX2hlYWRlciA9 IDA7CisKKyAgICBmaC0+c2hvd19mcmFtZSAgICAgICAgICAgICAgICA9IHBpYy0+ZGlzcGxheV9v cmRlciA8PSBwaWMtPmVuY29kZV9vcmRlcjsKKyAgICBmaC0+c2hvd2FibGVfZnJhbWUgICAgICAg ICAgICA9IGZoLT5mcmFtZV90eXBlICE9IEFWMV9GUkFNRV9LRVk7CisgICAgZmgtPm9yZGVyX2hp bnQgICAgICAgICAgICAgICAgPSBwaWMtPmRpc3BsYXlfb3JkZXIgLSBocGljLT5sYXN0X2lkcl9m cmFtZTsKKyAgICBmaC0+ZnJhbWVfd2lkdGhfbWludXNfMSAgICAgICA9IGN0eC0+cmVzb2x1dGlv bi5XaWR0aCAtIDE7CisgICAgZmgtPmZyYW1lX2hlaWdodF9taW51c18xICAgICAgPSBjdHgtPnJl c29sdXRpb24uSGVpZ2h0IC0gMTsKKyAgICBmaC0+cmVuZGVyX3dpZHRoX21pbnVzXzEgICAgICA9 IGZoLT5mcmFtZV93aWR0aF9taW51c18xOworICAgIGZoLT5yZW5kZXJfaGVpZ2h0X21pbnVzXzEg ICAgID0gZmgtPmZyYW1lX2hlaWdodF9taW51c18xOworICAgIGZoLT5pc19maWx0ZXJfc3dpdGNo YWJsZSAgICAgID0gMTsKKyAgICBmaC0+aW50ZXJwb2xhdGlvbl9maWx0ZXIgICAgICA9IEFWMV9J TlRFUlBPTEFUSU9OX0ZJTFRFUl9TV0lUQ0hBQkxFOworICAgIGZoLT51bmlmb3JtX3RpbGVfc3Bh Y2luZ19mbGFnID0gMTsKKyAgICBmaC0+d2lkdGhfaW5fc2JzX21pbnVzXzFbMF0gICA9IChjdHgt PnJlc29sdXRpb24uV2lkdGggICsgNjMgPj4gNikgLTE7IC8vIDY0eDY0IHN1cGVyYmxvY2sgc2l6 ZQorICAgIGZoLT5oZWlnaHRfaW5fc2JzX21pbnVzXzFbMF0gID0gKGN0eC0+cmVzb2x1dGlvbi5I ZWlnaHQgKyA2MyA+PiA2KSAtMTsgLy8gNjR4NjQgc3VwZXJibG9jayBzaXplCisKKyAgICBtZW1j cHkoZmgtPmxvb3BfZmlsdGVyX3JlZl9kZWx0YXMsIGRlZmF1bHRfbG9vcF9maWx0ZXJfcmVmX2Rl bHRhcywKKyAgICAgICAgICAgQVYxX1RPVEFMX1JFRlNfUEVSX0ZSQU1FICogc2l6ZW9mKGludDhf dCkpOworCisgICAgaWYgKGZoLT5mcmFtZV90eXBlID09IEFWMV9GUkFNRV9LRVkgJiYgZmgtPnNo b3dfZnJhbWUpCisgICAgICAgIGZoLT5lcnJvcl9yZXNpbGllbnRfbW9kZSA9IDE7CisKKyAgICBp ZiAoZmgtPmZyYW1lX3R5cGUgPT0gQVYxX0ZSQU1FX0tFWSB8fCBmaC0+ZXJyb3JfcmVzaWxpZW50 X21vZGUpCisgICAgICAgIGZoLT5wcmltYXJ5X3JlZl9mcmFtZSA9IEFWMV9QUklNQVJZX1JFRl9O T05FOworCisgICAgZDNkMTJ2YV9waWMtPnBpY19jdGwucEFWMVBpY0RhdGEtPkZyYW1lVHlwZSA9 IGZoLT5mcmFtZV90eXBlOworICAgIGQzZDEydmFfcGljLT5waWNfY3RsLnBBVjFQaWNEYXRhLT5U eE1vZGUgPSBmaC0+dHhfbW9kZTsKKyAgICBkM2QxMnZhX3BpYy0+cGljX2N0bC5wQVYxUGljRGF0 YS0+UmVmcmVzaEZyYW1lRmxhZ3MgPSBmaC0+cmVmcmVzaF9mcmFtZV9mbGFnczsKKyAgICBkM2Qx MnZhX3BpYy0+cGljX2N0bC5wQVYxUGljRGF0YS0+VGVtcG9yYWxMYXllckluZGV4UGx1czEgPSBo cGljLT50ZW1wb3JhbF9pZCArIDE7CisgICAgZDNkMTJ2YV9waWMtPnBpY19jdGwucEFWMVBpY0Rh dGEtPlNwYXRpYWxMYXllckluZGV4UGx1czEgPSBocGljLT5zcGF0aWFsX2lkICsgMTsKKyAgICBk M2QxMnZhX3BpYy0+cGljX2N0bC5wQVYxUGljRGF0YS0+UGljdHVyZUluZGV4ID0gcGljLT5kaXNw bGF5X29yZGVyOworICAgIGQzZDEydmFfcGljLT5waWNfY3RsLnBBVjFQaWNEYXRhLT5JbnRlcnBv bGF0aW9uRmlsdGVyID0gRDNEMTJfVklERU9fRU5DT0RFUl9BVjFfSU5URVJQT0xBVElPTl9GSUxU RVJTX1NXSVRDSEFCTEU7CisgICAgZDNkMTJ2YV9waWMtPnBpY19jdGwucEFWMVBpY0RhdGEtPlBy aW1hcnlSZWZGcmFtZSA9IGZoLT5wcmltYXJ5X3JlZl9mcmFtZTsKKyAgICBpZiAoZmgtPmVycm9y X3Jlc2lsaWVudF9tb2RlKQorICAgICAgICBkM2QxMnZhX3BpYy0+cGljX2N0bC5wQVYxUGljRGF0 YS0+RmxhZ3MgfD0gRDNEMTJfVklERU9fRU5DT0RFUl9BVjFfUElDVFVSRV9DT05UUk9MX0ZMQUdf RU5BQkxFX0VSUk9SX1JFU0lMSUVOVF9NT0RFOworCisgICAgaWYgKHBpYy0+dHlwZSA9PSBGRl9I V19QSUNUVVJFX1RZUEVfSURSKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBB VjFfTlVNX1JFRl9GUkFNRVM7IGkrKykgeworICAgICAgICAgICAgZDNkMTJ2YV9waWMtPnBpY19j dGwucEFWMVBpY0RhdGEtPlJlZmVyZW5jZUZyYW1lc1JlY29uUGljdHVyZURlc2NyaXB0b3JzW2ld LlJlY29uc3RydWN0ZWRQaWN0dXJlUmVzb3VyY2VJbmRleCA9CisgICAgICAgICAgICBEM0QxMl9W SURFT19FTkNPREVSX0FWMV9JTlZBTElEX0RQQl9SRVNPVVJDRV9JTkRFWDsKKyAgICAgICAgfQor ICAgIH0gZWxzZSBpZiAocGljLT50eXBlID09IEZGX0hXX1BJQ1RVUkVfVFlQRV9QKSB7CisgICAg ICAgIGZvciAoaSA9IDA7IGkgPCBwaWMtPm5iX3JlZnNbMF07IGkrKykgeworICAgICAgICAgICAg RkZIV0Jhc2VFbmNvZGVQaWN0dXJlICpyZWZfcGljID0gcGljLT5yZWZzWzBdW2ldOworICAgICAg ICAgICAgZDNkMTJ2YV9waWMtPnBpY19jdGwucEFWMVBpY0RhdGEtPlJlZmVyZW5jZUZyYW1lc1Jl Y29uUGljdHVyZURlc2NyaXB0b3JzW2ldLlJlY29uc3RydWN0ZWRQaWN0dXJlUmVzb3VyY2VJbmRl eCA9CisgICAgICAgICAgICAoKEQzRDEyVkFFbmNvZGVBVjFQaWN0dXJlKilyZWZfcGljLT5jb2Rl Y19wcml2KS0+c2xvdDsKKyAgICAgICAgfQorICAgIH0KKyAgICAvLyBTZXQgcmVmZXJlbmNlIGZy YW1lIG1hbmFnZW1lbnQKKyAgICBtZW1zZXQoZDNkMTJ2YV9waWMtPnBpY19jdGwucEFWMVBpY0Rh dGEtPlJlZmVyZW5jZUluZGljZXMsIDAsIHNpemVvZihVSU5UKSAqIEFWMV9SRUZTX1BFUl9GUkFN RSk7CisgICAgaWYgKHBpYy0+dHlwZSA9PSBGRl9IV19QSUNUVVJFX1RZUEVfUCkgeworICAgICAg ICBmb3IgKGkgPSAwOyBpIDwgQVYxX1JFRlNfUEVSX0ZSQU1FOyBpKyspCisgICAgICAgICAgICBk M2QxMnZhX3BpYy0+cGljX2N0bC5wQVYxUGljRGF0YS0+UmVmZXJlbmNlSW5kaWNlc1tpXSA9IGZo LT5yZWZfZnJhbWVfaWR4W2ldOworICAgIH0KKworICAgIGludCByZXQgPSBhdl9maWZvX3dyaXRl KHByaXYtPnBpY3R1cmVfaGVhZGVyX2xpc3QsICZwcml2LT51bml0cy5yYXdfZnJhbWVfaGVhZGVy LCAxKTsKKworICAgIHJldHVybiAwOworfQorCisKK3N0YXRpYyBjb25zdCBEM0QxMlZBRW5jb2Rl VHlwZSBkM2QxMnZhX2VuY29kZV90eXBlX2F2MSA9IHsKKyAgICAucHJvZmlsZXMgICAgICAgICAg ICAgICA9IGQzZDEydmFfZW5jb2RlX2F2MV9wcm9maWxlcywKKworICAgIC5kM2QxMl9jb2RlYyAg ICAgICAgICAgID0gRDNEMTJfVklERU9fRU5DT0RFUl9DT0RFQ19BVjEsCisKKyAgICAuZmxhZ3Mg ICAgICAgICAgICAgICAgICA9IEZGX0hXX0ZMQUdfQl9QSUNUVVJFUyB8CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBGRl9IV19GTEFHX0JfUElDVFVSRV9SRUZFUkVOQ0VTIHwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEZGX0hXX0ZMQUdfTk9OX0lEUl9LRVlfUElDVFVSRVMs CisKKyAgICAuZGVmYXVsdF9xdWFsaXR5ICAgICAgICA9IDI1LAorCisgICAgLmdldF9lbmNvZGVy X2NhcHMgICAgICAgPSAmZDNkMTJ2YV9lbmNvZGVfYXYxX2dldF9lbmNvZGVyX2NhcHMsCisKKyAg ICAuY29uZmlndXJlICAgICAgICAgICAgICA9ICZkM2QxMnZhX2VuY29kZV9hdjFfY29uZmlndXJl LAorCisgICAgLnNldF9sZXZlbCAgICAgICAgICAgICAgPSAmZDNkMTJ2YV9lbmNvZGVfYXYxX3Nl dF9sZXZlbCwKKworICAgIC5zZXRfdGlsZSAgICAgICAgICAgICAgID0gJmQzZDEydmFfZW5jb2Rl X2F2MV9zZXRfdGlsZSwKKworICAgIC5waWN0dXJlX3ByaXZfZGF0YV9zaXplID0gc2l6ZW9mKEQz RDEyVkFFbmNvZGVBVjFQaWN0dXJlKSwKKworICAgIC5pbml0X3NlcXVlbmNlX3BhcmFtcyAgID0g JmQzZDEydmFfZW5jb2RlX2F2MV9pbml0X3NlcXVlbmNlX3BhcmFtcywKKworICAgIC5pbml0X3Bp Y3R1cmVfcGFyYW1zICAgID0gJmQzZDEydmFfZW5jb2RlX2F2MV9pbml0X3BpY3R1cmVfcGFyYW1z LAorCisgICAgLmZyZWVfcGljdHVyZV9wYXJhbXMgICAgPSAmZDNkMTJ2YV9lbmNvZGVfYXYxX2Zy ZWVfcGljdHVyZV9wYXJhbXMsCisKKyAgICAud3JpdGVfc2VxdWVuY2VfaGVhZGVyICA9ICZkM2Qx MnZhX2VuY29kZV9hdjFfd3JpdGVfc2VxdWVuY2VfaGVhZGVyLAorCisjaWZkZWYgQ09ORklHX0FW MV9EM0QxMlZBX0VOQ09ERVIKKyAgICAuZ2V0X2NvZGVkX2RhdGEgICAgICAgICA9ICZkM2QxMnZh X2VuY29kZV9hdjFfZ2V0X2NvZGVkX2RhdGEsCisjZW5kaWYKK307CisKK3N0YXRpYyBpbnQgZDNk MTJ2YV9lbmNvZGVfYXYxX2luaXQoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQoreworICAgIEQzRDEy VkFFbmNvZGVDb250ZXh0ICAgICAqY3R4ID0gYXZjdHgtPnByaXZfZGF0YTsKKyAgICBEM0QxMlZB RW5jb2RlQVYxQ29udGV4dCAqcHJpdiA9IGF2Y3R4LT5wcml2X2RhdGE7CisKKyAgICBjdHgtPmNv ZGVjID0gJmQzZDEydmFfZW5jb2RlX3R5cGVfYXYxOworCisgICAgaWYgKGF2Y3R4LT5wcm9maWxl ID09IEFWX1BST0ZJTEVfVU5LTk9XTikKKyAgICAgICAgYXZjdHgtPnByb2ZpbGUgPSBwcml2LT5w cm9maWxlOworICAgIGlmIChhdmN0eC0+bGV2ZWwgPT0gQVZfTEVWRUxfVU5LTk9XTikKKyAgICAg ICAgYXZjdHgtPmxldmVsID0gcHJpdi0+bGV2ZWw7CisKKyAgICBpZiAoYXZjdHgtPmxldmVsICE9 IEFWX0xFVkVMX1VOS05PV04gJiYgYXZjdHgtPmxldmVsICYgfjB4ZmYpIHsKKyAgICAgICAgYXZf bG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJJbnZhbGlkIGxldmVsICVkOiBtdXN0IGZpdCAiCisg ICAgICAgICAgICAgICAiaW4gOC1iaXQgdW5zaWduZWQgaW50ZWdlci5cbiIsIGF2Y3R4LT5sZXZl bCk7CisgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7CisgICAgfQorCisgICAgaWYgKHBy aXYtPnFwID4gMCkKKyAgICAgICAgY3R4LT5leHBsaWNpdF9xcCA9IHByaXYtPnFwOworCisgICAg cHJpdi0+cGljdHVyZV9oZWFkZXJfbGlzdCA9IGF2X2ZpZm9fYWxsb2MyKDIsIHNpemVvZihBVjFS YXdPQlUpLCBBVl9GSUZPX0ZMQUdfQVVUT19HUk9XKTsKKworICAgIHJldHVybiBmZl9kM2QxMnZh X2VuY29kZV9pbml0KGF2Y3R4KTsKK30KKworc3RhdGljIGludCBkM2QxMnZhX2VuY29kZV9hdjFf Y2xvc2UoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQoreworICAgIEQzRDEyVkFFbmNvZGVBVjFDb250 ZXh0ICpwcml2ID0gYXZjdHgtPnByaXZfZGF0YTsKKworICAgIGZmX2Nic19mcmFnbWVudF9mcmVl KCZwcml2LT5jdXJyZW50X29idSk7CisgICAgZmZfY2JzX2Nsb3NlKCZwcml2LT5jYmMpOworCisg ICAgYXZfZnJlZXAoJnByaXYtPmNvbW1vbi5jb2RlY19jb25mLnBBVjFDb25maWcpOworICAgIGF2 X2ZyZWVwKCZwcml2LT5jb21tb24uZ29wLnBBVjFTZXF1ZW5jZVN0cnVjdHVyZSk7CisgICAgYXZf ZnJlZXAoJnByaXYtPmNvbW1vbi5sZXZlbC5wQVYxTGV2ZWxTZXR0aW5nKTsKKyAgICBhdl9mcmVl cCgmcHJpdi0+Y29tbW9uLnN1YnJlZ2lvbnNfbGF5b3V0LnBUaWxlc1BhcnRpdGlvbl9BVjEpOwor CisgICAgYXZfZmlmb19mcmVlcDIoJnByaXYtPnBpY3R1cmVfaGVhZGVyX2xpc3QpOworCisgICAg cmV0dXJuIGZmX2QzZDEydmFfZW5jb2RlX2Nsb3NlKGF2Y3R4KTsKK30KKworI2RlZmluZSBPRkZT RVQoeCkgb2Zmc2V0b2YoRDNEMTJWQUVuY29kZUFWMUNvbnRleHQsIHgpCisjZGVmaW5lIEZMQUdT IChBVl9PUFRfRkxBR19WSURFT19QQVJBTSB8IEFWX09QVF9GTEFHX0VOQ09ESU5HX1BBUkFNKQor c3RhdGljIGNvbnN0IEFWT3B0aW9uIGQzZDEydmFfZW5jb2RlX2F2MV9vcHRpb25zW10gPSB7Cisg ICAgSFdfQkFTRV9FTkNPREVfQ09NTU9OX09QVElPTlMsCisgICAgRDNEMTJWQV9FTkNPREVfUkNf T1BUSU9OUywKKworICAgIHsgInFwIiwgIkNvbnN0YW50IFFQIChmb3IgUC1mcmFtZXM7IHNjYWxl ZCBieSBxZmFjdG9yL3FvZmZzZXQgZm9yIEkvQikiLAorICAgICAgT0ZGU0VUKHFwKSwgQVZfT1BU X1RZUEVfSU5ULCB7IC5pNjQgPSAwIH0sIDAsIDUyLCBGTEFHUyB9LAorCisgICAgeyAicHJvZmls ZSIsICJTZXQgcHJvZmlsZSAoZ2VuZXJhbF9wcm9maWxlX2lkYykiLAorICAgICAgT0ZGU0VUKHBy b2ZpbGUpLCBBVl9PUFRfVFlQRV9JTlQsCisgICAgICB7IC5pNjQgPSBBVl9QUk9GSUxFX1VOS05P V04gfSwgQVZfUFJPRklMRV9VTktOT1dOLCAweGZmLCBGTEFHUywgInByb2ZpbGUiIH0sCisKKyNk ZWZpbmUgUFJPRklMRShuYW1lLCB2YWx1ZSkgIG5hbWUsIE5VTEwsIDAsIEFWX09QVF9UWVBFX0NP TlNULCBcCisgICAgICB7IC5pNjQgPSB2YWx1ZSB9LCAwLCAwLCBGTEFHUywgInByb2ZpbGUiCisg ICAgeyBQUk9GSUxFKCJtYWluIiwgICAgICAgICAgICAgQVZfUFJPRklMRV9BVjFfTUFJTikgfSwK KyAgICB7IFBST0ZJTEUoImhpZ2giLCAgICAgICAgICAgICBBVl9QUk9GSUxFX0FWMV9ISUdIKSB9 LAorICAgIHsgUFJPRklMRSgicHJvZmVzc2lvbmFsIiwgICAgIEFWX1BST0ZJTEVfQVYxX1BST0ZF U1NJT05BTCkgfSwKKyN1bmRlZiBQUk9GSUxFCisKKyAgICB7ICJ0aWVyIiwgIlNldCB0aWVyIChn ZW5lcmFsX3RpZXJfZmxhZykiLAorICAgICAgT0ZGU0VUKHVuaXRfb3B0cy50aWVyKSwgQVZfT1BU X1RZUEVfSU5ULAorICAgICAgeyAuaTY0ID0gMCB9LCAwLCAxLCBGTEFHUywgInRpZXIiIH0sCisg ICAgeyAibWFpbiIsIE5VTEwsIDAsIEFWX09QVF9UWVBFX0NPTlNULAorICAgICAgeyAuaTY0ID0g MCB9LCAwLCAwLCBGTEFHUywgInRpZXIiIH0sCisgICAgeyAiaGlnaCIsIE5VTEwsIDAsIEFWX09Q VF9UWVBFX0NPTlNULAorICAgICAgeyAuaTY0ID0gMSB9LCAwLCAwLCBGTEFHUywgInRpZXIiIH0s CisKKyAgICB7ICJsZXZlbCIsICJTZXQgbGV2ZWwgKGdlbmVyYWxfbGV2ZWxfaWRjKSIsCisgICAg ICBPRkZTRVQobGV2ZWwpLCBBVl9PUFRfVFlQRV9JTlQsCisgICAgICB7IC5pNjQgPSBBVl9MRVZF TF9VTktOT1dOIH0sIEFWX0xFVkVMX1VOS05PV04sIDB4ZmYsIEZMQUdTLCAibGV2ZWwiIH0sCisK KyNkZWZpbmUgTEVWRUwobmFtZSwgdmFsdWUpIG5hbWUsIE5VTEwsIDAsIEFWX09QVF9UWVBFX0NP TlNULCBcCisgICAgICB7IC5pNjQgPSB2YWx1ZSB9LCAwLCAwLCBGTEFHUywgImxldmVsIgorICAg IHsgTEVWRUwoIjIuMCIsICAwKSB9LAorICAgIHsgTEVWRUwoIjIuMSIsICAxKSB9LAorICAgIHsg TEVWRUwoIjIuMiIsICAyKSB9LAorICAgIHsgTEVWRUwoIjIuMyIsICAzKSB9LAorICAgIHsgTEVW RUwoIjMuMCIsICA0KSB9LAorICAgIHsgTEVWRUwoIjMuMSIsICA1KSB9LAorICAgIHsgTEVWRUwo IjMuMiIsICA2KSB9LAorICAgIHsgTEVWRUwoIjMuMyIsICA3KSB9LAorICAgIHsgTEVWRUwoIjQu MCIsICA4KSB9LAorICAgIHsgTEVWRUwoIjQuMSIsICA5KSB9LAorICAgIHsgTEVWRUwoIjQuMiIs ICAxMCkgfSwKKyAgICB7IExFVkVMKCI0LjMiLCAgMTEpIH0sCisgICAgeyBMRVZFTCgiNS4wIiwg IDEyKSB9LAorICAgIHsgTEVWRUwoIjUuMSIsICAxMykgfSwKKyAgICB7IExFVkVMKCI1LjIiLCAg MTQpIH0sCisgICAgeyBMRVZFTCgiNS4zIiwgIDE1KSB9LAorICAgIHsgTEVWRUwoIjYuMCIsICAx NikgfSwKKyAgICB7IExFVkVMKCI2LjEiLCAgMTcpIH0sCisgICAgeyBMRVZFTCgiNi4yIiwgIDE4 KSB9LAorICAgIHsgTEVWRUwoIjYuMyIsICAxOSkgfSwKKyAgICB7IExFVkVMKCI3LjAiLCAgMjAp IH0sCisgICAgeyBMRVZFTCgiNy4xIiwgIDIxKSB9LAorICAgIHsgTEVWRUwoIjcuMiIsICAyMikg fSwKKyAgICB7IExFVkVMKCI3LjMiLCAgMjMpIH0sCisjdW5kZWYgTEVWRUwKKyAgICB7IE5VTEwg fSwKK307CisKK3N0YXRpYyBjb25zdCBGRkNvZGVjRGVmYXVsdCBkM2QxMnZhX2VuY29kZV9hdjFf ZGVmYXVsdHNbXSA9IHsKKyAgICB7ICJiIiwgICAgICAgICAgICAgICIwIiAgIH0sCisgICAgeyAi YmYiLCAgICAgICAgICAgICAiMCIgICB9LAorICAgIHsgImciLCAgICAgICAgICAgICAgIjEyMCIg fSwKKyAgICB7ICJpX3FmYWN0b3IiLCAgICAgICIxIiAgIH0sCisgICAgeyAiaV9xb2Zmc2V0Iiwg ICAgICAiMCIgICB9LAorICAgIHsgImJfcWZhY3RvciIsICAgICAgIjEiICAgfSwKKyAgICB7ICJi X3FvZmZzZXQiLCAgICAgICIwIiAgIH0sCisgICAgeyAicW1pbiIsICAgICAgICAgICAiLTEiICB9 LAorICAgIHsgInFtYXgiLCAgICAgICAgICAgIi0xIiAgfSwKKyAgICB7ICJyZWZzIiwgICAgICAg ICAgICIwIiAgIH0sCisgICAgeyBOVUxMIH0sCit9OworCitzdGF0aWMgY29uc3QgQVZDbGFzcyBk M2QxMnZhX2VuY29kZV9hdjFfY2xhc3MgPSB7CisgICAgLmNsYXNzX25hbWUgPSAiYXYxX2QzZDEy dmEiLAorICAgIC5pdGVtX25hbWUgID0gYXZfZGVmYXVsdF9pdGVtX25hbWUsCisgICAgLm9wdGlv biAgICAgPSBkM2QxMnZhX2VuY29kZV9hdjFfb3B0aW9ucywKKyAgICAudmVyc2lvbiAgICA9IExJ QkFWVVRJTF9WRVJTSU9OX0lOVCwKK307CisKK2NvbnN0IEZGQ29kZWMgZmZfYXYxX2QzZDEydmFf ZW5jb2RlciA9IHsKKyAgICAucC5uYW1lICAgICAgICAgPSAiYXYxX2QzZDEydmEiLAorICAgIENP REVDX0xPTkdfTkFNRSgiRDNEMTJWQSBhdjEgZW5jb2RlciIpLAorICAgIC5wLnR5cGUgICAgICAg ICA9IEFWTUVESUFfVFlQRV9WSURFTywKKyAgICAucC5pZCAgICAgICAgICAgPSBBVl9DT0RFQ19J RF9BVjEsCisgICAgLnByaXZfZGF0YV9zaXplID0gc2l6ZW9mKEQzRDEyVkFFbmNvZGVBVjFDb250 ZXh0KSwKKyAgICAuaW5pdCAgICAgICAgICAgPSAmZDNkMTJ2YV9lbmNvZGVfYXYxX2luaXQsCisg ICAgRkZfQ09ERUNfUkVDRUlWRV9QQUNLRVRfQ0IoJmZmX2QzZDEydmFfZW5jb2RlX3JlY2VpdmVf cGFja2V0KSwKKyAgICAuY2xvc2UgICAgICAgICAgPSAmZDNkMTJ2YV9lbmNvZGVfYXYxX2Nsb3Nl LAorICAgIC5wLnByaXZfY2xhc3MgICA9ICZkM2QxMnZhX2VuY29kZV9hdjFfY2xhc3MsCisgICAg LnAuY2FwYWJpbGl0aWVzID0gQVZfQ09ERUNfQ0FQX0RFTEFZIHwgQVZfQ09ERUNfQ0FQX0hBUkRX QVJFIHwKKyAgICAgICAgICAgICAgICAgICAgICBBVl9DT0RFQ19DQVBfRFIxIHwgQVZfQ09ERUNf Q0FQX0VOQ09ERVJfUkVPUkRFUkVEX09QQVFVRSwKKyAgICAuY2Fwc19pbnRlcm5hbCAgPSBGRl9D T0RFQ19DQVBfTk9UX0lOSVRfVEhSRUFEU0FGRSB8CisgICAgICAgICAgICAgICAgICAgICAgRkZf Q09ERUNfQ0FQX0lOSVRfQ0xFQU5VUCwKKyAgICAuZGVmYXVsdHMgICAgICAgPSBkM2QxMnZhX2Vu Y29kZV9hdjFfZGVmYXVsdHMsCisgICAgQ09ERUNfUElYRk1UUyhBVl9QSVhfRk1UX0QzRDEyKSwK KyAgICAuaHdfY29uZmlncyAgICAgPSBmZl9kM2QxMnZhX2VuY29kZV9od19jb25maWdzLAorICAg IC5wLndyYXBwZXJfbmFtZSA9ICJkM2QxMnZhIiwKK307Ci0tIAoyLjUyLjAKCgpGcm9tIDYzNGYw ZjA5MDIxMTBiNTE5YjZhYjJmYjFkNmYxMDcxZDQ0YWQ3MDUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IE5pa2xhcyBIYWFzIDxnaXRAaGFhc24uZGV2PgpEYXRlOiBXZWQsIDI0IFNlcCAy MDI1IDE1OjE0OjI5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNzAvMzA0XSBhdmZpbHRlci9idWZm ZXJzcmM6IGFkZCBhdl9idWZmZXJzcmNfZ2V0X3N0YXR1cygpCgpUaGVyZSBpcyBjdXJyZW50bHkg bm8gd2F5IGZvciBBUEkgdXNlcnMgdG8ga25vdyB0aGF0IGEgYnVmZmVyc3JjIGlzIG5vIGxvbmdl cgphY2NlcHRpbmcgaW5wdXQsIGV4Y2VwdCBieSB0cnlpbmcgdG8gZmVlZCBpdCBhIGZyYW1lIGFu ZCBzZWVpbmcgd2hhdCBoYXBwZW5zLgoKT2YgY291cnNlLCB0aGlzIGlzIG5vdCBwb3NzaWJsZSBp ZiB0aGUgdXNlciBkb2VzIG5vdCAqaGF2ZSogYSBmcmFtZSB0byBmZWVkLApidXQgbWF5IHN0aWxs IHdpc2ggdG8ga25vdyBpZiB0aGUgZmlsdGVyIGlzIHN0aWxsIGFjY2VwdGluZyBpbnB1dCBvciBu b3QuCgpTaW5jZSBwYXNzaW5nIGBmcmFtZSA9PSBOVUxMYCB0byBgYXZfYnVmZmVyc3JjX2FkZF9m cmFtZSgpYCBpcyBhbHJlYWR5IHRyZWF0ZWQKYXMgY2xvc2luZyB0aGUgaW5wdXQsIHdlIGFyZSBs ZWZ0IHdpdGggbm8gY2hvaWNlIGJ1dCB0byBpbnRyb2R1Y2UgYSBuZXcKZnVuY3Rpb24gZm9yIHRo aXMuCgpXZSBkb24ndCBleHBsaWNpdGx5IHJldHVybiB0aGUgcmVzdWx0IG9mIGBmZl9vdXRsaW5r X2dldF9zdGF0dXMoKWAgdG8gYXZvaWQKbGVha2luZyBpbnRlcm5hbCBzdGF0dXMgY29kZXMsIGFu ZCBpbnN0ZWFkIHRyYW5zbGF0ZSB0aGVtIGFsbCB0byBBVkVSUk9SKEVPRikuCi0tLQogZG9jL0FQ SWNoYW5nZXMgICAgICAgICAgfCAgMyArKysKIGxpYmF2ZmlsdGVyL2J1ZmZlcnNyYy5jIHwgMTAg KysrKysrKysrKwogbGliYXZmaWx0ZXIvYnVmZmVyc3JjLmggfCAgOCArKysrKysrKwogbGliYXZm aWx0ZXIvdmVyc2lvbi5oICAgfCAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL0FQSWNoYW5nZXMgYi9kb2MvQVBJ Y2hhbmdlcwppbmRleCA5M2M2ZjkyNzA0Li4yMzkxMzdmMWYyIDEwMDY0NAotLS0gYS9kb2MvQVBJ Y2hhbmdlcworKysgYi9kb2MvQVBJY2hhbmdlcwpAQCAtMiw2ICsyLDkgQEAgVGhlIGxhc3QgdmVy c2lvbiBpbmNyZWFzZXMgb2YgYWxsIGxpYnJhcmllcyB3ZXJlIG9uIDIwMjUtMDMtMjgKIAogQVBJ IGNoYW5nZXMsIG1vc3QgcmVjZW50IGZpcnN0OgogCisyMDI1LTA5LXh4IC0geHh4eHh4eHh4eCAt IGxhdmZpIDExLjEwLjEwMCAtIGJ1ZmZlcnNyYy5oCisgIEFkZCBhdl9idWZmZXJzcmNfZ2V0X3N0 YXR1cygpLgorCiAyMDI1LTExLTE4IC0geHh4eHh4eHh4eCAtIGxhdnUgNjAuMTkuMTAwIC0gaHdj b250ZXh0X2FtZi5oCiAgIGF2dXRpbC9od2NvbnRleHRfYW1mOiBhZGQgbG9jayBhbmQgdW5sb2Nr IGZvciBBVkFNRkRldmljZUNvbnRleHQuCiAKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL2J1ZmZl cnNyYy5jIGIvbGliYXZmaWx0ZXIvYnVmZmVyc3JjLmMKaW5kZXggMzBmNGRmODNhMS4uYjE4ZDNm MjRkZCAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvYnVmZmVyc3JjLmMKKysrIGIvbGliYXZmaWx0 ZXIvYnVmZmVyc3JjLmMKQEAgLTI4Niw2ICsyODYsMTYgQEAgaW50IGF2X2J1ZmZlcnNyY19jbG9z ZShBVkZpbHRlckNvbnRleHQgKmN0eCwgaW50NjRfdCBwdHMsIHVuc2lnbmVkIGZsYWdzKQogICAg IHJldHVybiAoZmxhZ3MgJiBBVl9CVUZGRVJTUkNfRkxBR19QVVNIKSA/IHB1c2hfZnJhbWUoY3R4 LT5ncmFwaCkgOiAwOwogfQogCitpbnQgYXZfYnVmZmVyc3JjX2dldF9zdGF0dXMoQVZGaWx0ZXJD b250ZXh0ICpjdHgpCit7CisgICAgQnVmZmVyU291cmNlQ29udGV4dCAqcyA9IGN0eC0+cHJpdjsK KworICAgIGlmICghcy0+ZW9mICYmIGZmX291dGxpbmtfZ2V0X3N0YXR1cyhjdHgtPm91dHB1dHNb MF0pKQorICAgICAgICBzLT5lb2YgPSAxOworCisgICAgcmV0dXJuIHMtPmVvZiA/IEFWRVJST1Io RU9GKSA6IDA7Cit9CisKIHN0YXRpYyBhdl9jb2xkIGludCBpbml0X3ZpZGVvKEFWRmlsdGVyQ29u dGV4dCAqY3R4KQogewogICAgIEJ1ZmZlclNvdXJjZUNvbnRleHQgKmMgPSBjdHgtPnByaXY7CmRp ZmYgLS1naXQgYS9saWJhdmZpbHRlci9idWZmZXJzcmMuaCBiL2xpYmF2ZmlsdGVyL2J1ZmZlcnNy Yy5oCmluZGV4IDU0ZGUxZmQxZjIuLmM3MjI1YjY3NTIgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVy L2J1ZmZlcnNyYy5oCisrKyBiL2xpYmF2ZmlsdGVyL2J1ZmZlcnNyYy5oCkBAIC0yMTYsNiArMjE2 LDE0IEBAIGludCBhdl9idWZmZXJzcmNfYWRkX2ZyYW1lX2ZsYWdzKEFWRmlsdGVyQ29udGV4dCAq YnVmZmVyX3NyYywKICAqLwogaW50IGF2X2J1ZmZlcnNyY19jbG9zZShBVkZpbHRlckNvbnRleHQg KmN0eCwgaW50NjRfdCBwdHMsIHVuc2lnbmVkIGZsYWdzKTsKIAorLyoqCisgKiBSZXR1cm5zIDAg b3IgYSBuZWdhdGl2ZSBBVkVSUk9SIGNvZGUuIEN1cnJlbnRseSwgdGhpcyB3aWxsIG9ubHkgZXZl cgorICogcmV0dXJuIEFWRVJST1IoRU9GKSwgdG8gaW5kaWNhdGUgdGhhdCB0aGUgYnVmZmVyIHNv dXJjZSBoYXMgYmVlbiBjbG9zZWQsCisgKiBlaXRoZXIgYXMgYSByZXN1bHQgb2YgYXZfYnVmZmVy c3JjX2Nsb3NlKCksIG9yIGJlY2F1c2UgdGhlIGRvd25zdHJlYW0KKyAqIGZpbHRlciBpcyBubyBs b25nZXIgYWNjZXB0aW5nIG5ldyBkYXRhLgorICovCitpbnQgYXZfYnVmZmVyc3JjX2dldF9zdGF0 dXMoQVZGaWx0ZXJDb250ZXh0ICpjdHgpOworCiAvKioKICAqIEB9CiAgKi8KZGlmZiAtLWdpdCBh L2xpYmF2ZmlsdGVyL3ZlcnNpb24uaCBiL2xpYmF2ZmlsdGVyL3ZlcnNpb24uaAppbmRleCA3N2Yz OGNiOWI0Li40YTY5ZDZiZTk4IDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci92ZXJzaW9uLmgKKysr IGIvbGliYXZmaWx0ZXIvdmVyc2lvbi5oCkBAIC0zMSw3ICszMSw3IEBACiAKICNpbmNsdWRlICJ2 ZXJzaW9uX21ham9yLmgiCiAKLSNkZWZpbmUgTElCQVZGSUxURVJfVkVSU0lPTl9NSU5PUiAgIDkK KyNkZWZpbmUgTElCQVZGSUxURVJfVkVSU0lPTl9NSU5PUiAgMTAKICNkZWZpbmUgTElCQVZGSUxU RVJfVkVSU0lPTl9NSUNSTyAxMDAKIAogCi0tIAoyLjUyLjAKCgpGcm9tIGRjMWIwZjI1MDdhMGRl MzVhZjM0M2UyYmQzNzg0OGNiMjdlZGQ3YTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IE5pa2xhcyBIYWFzIDxnaXRAaGFhc24uZGV2PgpEYXRlOiBXZWQsIDI0IFNlcCAyMDI1IDE1OjIz OjA0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNzEvMzA0XSBmZnRvb2xzL2ZmbXBlZ19maWx0ZXI6 IGNsb3NlIGFsbCBuby1sb25nZXIgbmVlZGVkCiBpbnB1dHMKCkN1cnJlbnRseSwgdGhlIHRocmVh ZCBsb29wIG9mIGZmbXBlZ19maWx0ZXIgZXNzZW50aWFsbHkgd29ya3MgbGlrZSB0aGlzOgoKd2hp bGUgKDEpIHsKICAgIGZyYW1lLCBpZHggPSBnZXRfZnJvbV9kZWNvZGVyKCk7CiAgICBlcnIgPSBz ZW5kX3RvX2ZpbHRlcl9ncmFwaChmcmFtZSk7CiAgICBpZiAoZXJyKSB7IC8vIGkuZS4gRU9GCiAg ICAgICAgY2xvc2VfaW5wdXQoaWR4KTsKICAgICAgICBjb250aW51ZTsKICAgIH0KCiAgICB3aGls ZSAoZmlsdGVyZWRfZnJhbWUgPSBnZXRfZmlsdGVyZWRfZnJhbWUoKSkKICAgICAgICBzZW5kX3Rv X2VuY29kZXIoZmlsdGVyZWRfZnJhbWUpOwp9CgpUaGUgZXhhY3QgZGV0YWlscyBhcmUgbm90IDEw MCUgY29ycmVjdCBzaW5jZSB0aGUgYWN0dWFsIGNvbnRyb2wgZmxvdyBpcyBhIGJpdAptb3JlIGNv bXBsaWNhdGVkIGFzIGEgcmVzdWx0IG9mIHRoZSBzY2hlZHVsZXIsIGJ1dCB0aGlzIGlzIHRoZSBn ZW5lcmFsIGZsb3cuCgpOb3RhYmx5LCB0aGlzIGxlYXZlcyB0aGUgcG9zc2liaWxpdHkgb2YgbGVh dmluZyBhIG5vLWxvbmdlci1uZWVkZWQgaW5wdXQKcGVybWFuZW50bHkgb3BlbiBpZiB0aGUgZmls dGVyIGdyYXBoIHN0YXJ0cyBwcm9kdWNpbmcgaW5maW5pdGUgZnJhbWVzIChkdXJpbmcKdGhlIHNl Y29uZCBsb29wKSAqYWZ0ZXIqIGl0IGZpbmlzaGVzIHJlYWRpbmcgZnJvbSBhbiBpbnB1dCwgZS5n LiBpbiBhIGZpbHRlcgpncmFwaCBsaWtlIC1hZiBhdHJpbSxhcGFkLgoKVGhpcyBwYXRjaCBhdm9p ZHMgdGhpcyBpc3N1ZSBieSBhbHdheXMgcXVlcnlpbmcgdGhlIHN0YXR1cyBvZiBhbGwgZmlsdGVy IGdyYXBoCmlucHV0cyBhbmQgZXhwbGljaXRseSBjbG9zaW5nIGFueSB0aGF0IHdlcmUgY2xvc2Vk IGRvd25zdHJlYW07IGFmdGVyIGVhY2ggcm91bmQKb2YgcmVhZGluZyBvdXRwdXQgZnJhbWVzLiBB cyBhIHJlc3VsdCwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZpbHRlcmdyYXBoIGJlaW5nCmNsb3Nl ZCBjYW4gbm93IHByb3BhZ2F0ZSBiYWNrIHVwc3RyZWFtLCBldmVuIGlmIHRoZSBmaWx0ZXIgaXMg bm8gbG9uZ2VyCnJlcXVlc3RpbmcgYW55IGlucHV0IGZyYW1lcyAoaS5lLiBpbnB1dF9pZHggPT0g ZmctPm5iX2lucHV0cykuCgpGaXhlczogaHR0cHM6Ly90cmFjLmZmbXBlZy5vcmcvdGlja2V0LzEx MDYxClNlZS1BbHNvOiBodHRwczovL2NvZGUuZmZtcGVnLm9yZy9GRm1wZWcvRkZtcGVnL3B1bGxz LzIwNDU3I2lzc3VlY29tbWVudC02MjA4Ci0tLQogZmZ0b29scy9mZm1wZWdfZmlsdGVyLmMgfCAx OSArKysrKysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2ZmdG9vbHMvZmZtcGVnX2ZpbHRlci5jIGIvZmZ0 b29scy9mZm1wZWdfZmlsdGVyLmMKaW5kZXggOWY5NjJlNmI4Yy4uZDVhZTU5ZWMwMyAxMDA2NDQK LS0tIGEvZmZ0b29scy9mZm1wZWdfZmlsdGVyLmMKKysrIGIvZmZ0b29scy9mZm1wZWdfZmlsdGVy LmMKQEAgLTI2MTYsNiArMjYxNiwxNiBAQCBmaW5pc2g6CiAgICAgZnBzLT5kcm9wcGVkX2tleWZy YW1lIHw9IGZwcy0+bGFzdF9kcm9wcGVkICYmIChmcmFtZS0+ZmxhZ3MgJiBBVl9GUkFNRV9GTEFH X0tFWSk7CiB9CiAKK3N0YXRpYyB2b2lkIGNsb3NlX2lucHV0KElucHV0RmlsdGVyUHJpdiAqaWZw KQoreworICAgIEZpbHRlckdyYXBoUHJpdiAqZmdwID0gZmdwX2Zyb21fZmcoaWZwLT5pZmlsdGVy LmdyYXBoKTsKKworICAgIGlmICghaWZwLT5lb2YpIHsKKyAgICAgICAgc2NoX2ZpbHRlcl9yZWNl aXZlX2ZpbmlzaChmZ3AtPnNjaCwgZmdwLT5zY2hfaWR4LCBpZnAtPmlmaWx0ZXIuaW5kZXgpOwor ICAgICAgICBpZnAtPmVvZiA9IDE7CisgICAgfQorfQorCiBzdGF0aWMgaW50IGNsb3NlX291dHB1 dChPdXRwdXRGaWx0ZXJQcml2ICpvZnAsIEZpbHRlckdyYXBoVGhyZWFkICpmZ3QpCiB7CiAgICAg RmlsdGVyR3JhcGhQcml2ICpmZ3AgPSBmZ3BfZnJvbV9mZyhvZnAtPm9maWx0ZXIuZ3JhcGgpOwpA QCAtMzM0Myw3ICszMzUzLDcgQEAgc3RhdGljIGludCBmaWx0ZXJfdGhyZWFkKHZvaWQgKmFyZykK ICAgICAgICAgaWYgKHJldCA9PSBBVkVSUk9SX0VPRikgewogICAgICAgICAgICAgYXZfbG9nKGZn LCBBVl9MT0dfVkVSQk9TRSwgIklucHV0ICV1IG5vIGxvbmdlciBhY2NlcHRzIG5ldyBkYXRhXG4i LAogICAgICAgICAgICAgICAgICAgIGlucHV0X2lkeCk7Ci0gICAgICAgICAgICBzY2hfZmlsdGVy X3JlY2VpdmVfZmluaXNoKGZncC0+c2NoLCBmZ3AtPnNjaF9pZHgsIGlucHV0X2lkeCk7CisgICAg ICAgICAgICBjbG9zZV9pbnB1dChpZnApOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg IH0KICAgICAgICAgaWYgKHJldCA8IDApCkBAIC0zMzYyLDYgKzMzNzIsMTMgQEAgcmVhZF9mcmFt ZXM6CiAgICAgICAgICAgICAgICAgICAgYXZfZXJyMnN0cihyZXQpKTsKICAgICAgICAgICAgIGdv dG8gZmluaXNoOwogICAgICAgICB9CisKKyAgICAgICAgLy8gZW5zdXJlIGFsbCBpbnB1dHMgbm8g bG9uZ2VyIGFjY2VwdGluZyBkYXRhIGFyZSBjbG9zZWQKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7 IGZndC5ncmFwaCAmJiBpIDwgZmctPm5iX2lucHV0czsgaSsrKSB7CisgICAgICAgICAgICBJbnB1 dEZpbHRlclByaXYgKmlmcCA9IGlmcF9mcm9tX2lmaWx0ZXIoZmctPmlucHV0c1tpXSk7CisgICAg ICAgICAgICBpZiAoYXZfYnVmZmVyc3JjX2dldF9zdGF0dXMoaWZwLT5pZmlsdGVyLmZpbHRlcikp CisgICAgICAgICAgICAgICAgY2xvc2VfaW5wdXQoaWZwKTsKKyAgICAgICAgfQogICAgIH0KIAog ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmZy0+bmJfb3V0cHV0czsgaSsrKSB7Ci0tIAoy LjUyLjAKCgpGcm9tIGEzZDMwYzk4MjE3NjkwMDA4MzgzMzQ5YTA2Y2NkNGQ5MGYxZGJhZWQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEx5bm5lIDxkZXZAbHlubmUuZWU+CkRhdGU6IFR1 ZSwgMjUgTm92IDIwMjUgMTc6MDM6MjcgKzAxMDAKU3ViamVjdDogW1BBVENIIDA3Mi8zMDRdIENo YW5nZWxvZzogYWRkIFByb1JlcyBWdWxrYW4gaHdhY2NlbCB0byB0aGUgbGlzdAoKRm9yZ290dGVu IHdoZW4gaXQgZ290IG1lcmdlZC4KLS0tCiBDaGFuZ2Vsb2cgfCAxICsKIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL0NoYW5nZWxvZyBiL0NoYW5nZWxvZwppbmRl eCA0NjQ4ODk5Y2EzLi4zNzU3ZWFjMmU0IDEwMDY0NAotLS0gYS9DaGFuZ2Vsb2cKKysrIGIvQ2hh bmdlbG9nCkBAIC0xMSw2ICsxMSw3IEBAIHZlcnNpb24gPG5leHQ+OgogLSBkcmF3dmcgZmlsdGVy IHZpYSBsaWJjYWlybwogLSBmZm1wZWcgQ0xJIHRpbGVkIEhFSUYgc3VwcG9ydAogLSBEM0QxMiBB VjEgZW5jb2RlcgorLSBQcm9SZXMgVnVsa2FuIGh3YWNjZWwKIAogCiB2ZXJzaW9uIDguMDoKLS0g CjIuNTIuMAoKCkZyb20gMDY3ODVmZGYzMDAzNTIzMDVhOGRjMDc5OWIxYzI3MTg1N2Y2NjcyMyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTHlubmUgPGRldkBseW5uZS5lZT4KRGF0ZTog VGh1LCAxMyBOb3YgMjAyNSAxMjowOToxMSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDczLzMwNF0g aHdjb250ZXh0X3Z1bGthbjogZW5hYmxlIHJ1bnRpbWUgZGVzY3JpcHRvciBzaXppbmcKCldlIHdl cmUgYWxyZWFkeSB1c2luZyB0aGlzIGluIHBsYWNlcywgYnV0IGl0IHNlZW1zIHZhbGlkYXRpb24K bGF5ZXJzIGZpbmFsbHkgZ290IHN1cHBvcnQgdG8gZGV0ZWN0IGl0LgotLS0KIGxpYmF2dXRpbC9o d2NvbnRleHRfdnVsa2FuLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoK ZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9od2NvbnRleHRfdnVsa2FuLmMgYi9saWJhdnV0aWwvaHdj b250ZXh0X3Z1bGthbi5jCmluZGV4IGE2YmY5YTU5MGIuLjA0MDhiOWMxMTcgMTAwNjQ0Ci0tLSBh L2xpYmF2dXRpbC9od2NvbnRleHRfdnVsa2FuLmMKKysrIGIvbGliYXZ1dGlsL2h3Y29udGV4dF92 dWxrYW4uYwpAQCAtMzA3LDYgKzMwNyw3IEBAIHN0YXRpYyB2b2lkIGRldmljZV9mZWF0dXJlc19j b3B5X25lZWRlZChWdWxrYW5EZXZpY2VGZWF0dXJlcyAqZHN0LCBWdWxrYW5EZXZpY2VGCiAgICAg Q09QWV9WQUwodnVsa2FuXzFfMi52dWxrYW5NZW1vcnlNb2RlbCk7CiAgICAgQ09QWV9WQUwodnVs a2FuXzFfMi52dWxrYW5NZW1vcnlNb2RlbERldmljZVNjb3BlKTsKICAgICBDT1BZX1ZBTCh2dWxr YW5fMV8yLnVuaWZvcm1CdWZmZXJTdGFuZGFyZExheW91dCk7CisgICAgQ09QWV9WQUwodnVsa2Fu XzFfMi5ydW50aW1lRGVzY3JpcHRvckFycmF5KTsKIAogICAgIENPUFlfVkFMKHZ1bGthbl8xXzMu ZHluYW1pY1JlbmRlcmluZyk7CiAgICAgQ09QWV9WQUwodnVsa2FuXzFfMy5tYWludGVuYW5jZTQp OwotLSAKMi41Mi4wCgoKRnJvbSAwYzBiM2Y2Y2E2YmIwODE4NjYyZjZmYTdjZTAxOWExM2U1Mjdm ZWIxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMeW5uZSA8ZGV2QGx5bm5lLmVlPgpE YXRlOiBXZWQsIDI2IE5vdiAyMDI1IDEzOjQ3OjE1ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNzQv MzA0XSBod2NvbnRleHRfdnVsa2FuOiByZS1lbmFibGUgaG9zdCBpbWFnZSBjb3B5IGV4dGVuc2lv bgoKV2UnbGwgc2xvd2x5IHN0YXJ0IHRvIHVzZSBpdCBpbiB0aGUgY29kZSBpbiBzYWZlIHBsYWNl cwpyYXRoZXIgdGhhbiBnbG9iYWxseS4KLS0tCiBsaWJhdnV0aWwvaHdjb250ZXh0X3Z1bGthbi5j IHwgNTQgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMjkgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZ1 dGlsL2h3Y29udGV4dF92dWxrYW4uYyBiL2xpYmF2dXRpbC9od2NvbnRleHRfdnVsa2FuLmMKaW5k ZXggMDQwOGI5YzExNy4uZWZlZTZjNzJhYyAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL2h3Y29udGV4 dF92dWxrYW4uYworKysgYi9saWJhdnV0aWwvaHdjb250ZXh0X3Z1bGthbi5jCkBAIC0xNTQsOSAr MTU0LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgVnVsa2FuRGV2aWNlUHJpdiB7CiAgICAgLyogRGlzYWJs ZSBtdWx0aXBsYW5lIGltYWdlcyAqLwogICAgIGludCBkaXNhYmxlX211bHRpcGxhbmU7CiAKLSAg ICAvKiBEaXNhYmxlIGhvc3QgaW1hZ2UgdHJhbnNmZXIgKi8KLSAgICBpbnQgZGlzYWJsZV9ob3N0 X3RyYW5zZmVyOwotCiAgICAgLyogUHJlZmVyIG1lbWNweSBvdmVyIGR5bmFtaWMgaG9zdCBwb2lu dGVyIGltcG9ydHMgKi8KICAgICBpbnQgYXZvaWRfaG9zdF9pbXBvcnQ7CiAKQEAgLTY1Niw2ICs2 NTMsNyBAQCBzdGF0aWMgY29uc3QgVnVsa2FuT3B0RXh0ZW5zaW9uIG9wdGlvbmFsX2RldmljZV9l eHRzW10gPSB7CiAgICAgeyBWS19LSFJfQ09PUEVSQVRJVkVfTUFUUklYX0VYVEVOU0lPTl9OQU1F LCAgICAgICAgICAgICAgIEZGX1ZLX0VYVF9DT09QX01BVFJJWCAgICAgICAgICAgIH0sCiAgICAg eyBWS19FWFRfU0hBREVSX09CSkVDVF9FWFRFTlNJT05fTkFNRSwgICAgICAgICAgICAgICAgICAg IEZGX1ZLX0VYVF9TSEFERVJfT0JKRUNUICAgICAgICAgIH0sCiAgICAgeyBWS19LSFJfU0hBREVS X1NVQkdST1VQX1JPVEFURV9FWFRFTlNJT05fTkFNRSwgICAgICAgICAgIEZGX1ZLX0VYVF9TVUJH Uk9VUF9ST1RBVEUgICAgICAgIH0sCisgICAgeyBWS19FWFRfSE9TVF9JTUFHRV9DT1BZX0VYVEVO U0lPTl9OQU1FLCAgICAgICAgICAgICAgICAgIEZGX1ZLX0VYVF9IT1NUX0lNQUdFX0NPUFkgICAg ICAgIH0sCiAjaWZkZWYgVktfRVhUX3plcm9faW5pdGlhbGl6ZV9kZXZpY2VfbWVtb3J5CiAgICAg eyBWS19FWFRfWkVST19JTklUSUFMSVpFX0RFVklDRV9NRU1PUllfRVhURU5TSU9OX05BTUUsICAg IEZGX1ZLX0VYVF9aRVJPX0lOSVRJQUxJWkUgICAgICAgIH0sCiAjZW5kaWYKQEAgLTc1MCw2ICs3 NDgsMjYgQEAgc3RhdGljIFZrQm9vbDMyIFZLQVBJX0NBTEwgdmtfZGJnX2NhbGxiYWNrKFZrRGVi dWdVdGlsc01lc3NhZ2VTZXZlcml0eUZsYWdCaXRzRVgKICAgICAgICAgYXZfZnJlZSgodm9pZCAq KXByb3BzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CiAgICAgfQogCitzdGF0aWMgaW50IHZ1bGthbl9kZXZpY2VfaGFzX3JlYmFyKEFWSFdEZXZpY2VD b250ZXh0ICpjdHgpCit7CisgICAgVnVsa2FuRGV2aWNlUHJpdiAqcCA9IGN0eC0+aHdjdHg7Cisg ICAgVmtEZXZpY2VTaXplIG1heF92cmFtID0gMCwgbWF4X3Zpc2libGVfdnJhbSA9IDA7CisKKyAg ICAvKiBHZXQgZGV2aWNlIG1lbW9yeSBwcm9wZXJ0aWVzICovCisgICAgYXZfYXNzZXJ0MChwLT5t cHJvcHMubWVtb3J5VHlwZUNvdW50KTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHAtPm1wcm9w cy5tZW1vcnlUeXBlQ291bnQ7IGkrKykgeworICAgICAgICBjb25zdCBWa01lbW9yeVR5cGUgdHlw ZSA9IHAtPm1wcm9wcy5tZW1vcnlUeXBlc1tpXTsKKyAgICAgICAgY29uc3QgVmtNZW1vcnlIZWFw IGhlYXAgPSBwLT5tcHJvcHMubWVtb3J5SGVhcHNbdHlwZS5oZWFwSW5kZXhdOworICAgICAgICBp ZiAoISh0eXBlLnByb3BlcnR5RmxhZ3MgJiBWS19NRU1PUllfUFJPUEVSVFlfREVWSUNFX0xPQ0FM X0JJVCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgbWF4X3ZyYW0gPSBGRk1BWCht YXhfdnJhbSwgaGVhcC5zaXplKTsKKyAgICAgICAgaWYgKHR5cGUucHJvcGVydHlGbGFncyAmIFZL X01FTU9SWV9QUk9QRVJUWV9IT1NUX1ZJU0lCTEVfQklUKQorICAgICAgICAgICAgbWF4X3Zpc2li bGVfdnJhbSA9IEZGTUFYKG1heF92aXNpYmxlX3ZyYW0sIGhlYXAuc2l6ZSk7CisgICAgfQorCisg ICAgcmV0dXJuIG1heF92cmFtIC0gbWF4X3Zpc2libGVfdnJhbSA8IDEwMjQ7IC8qIDEga0IgdG9s ZXJhbmNlICovCit9CisKIGVudW0gRkZWdWxrYW5EZWJ1Z01vZGUgewogICAgIEZGX1ZVTEtBTl9E RUJVR19OT05FID0gMCwKICAgICAvKiBTdGFuZGFyZCBHUFUtYXNzaXN0ZWQgdmFsaWRhdGlvbiAq LwpAQCAtODMwLDYgKzg0OCwxMSBAQCBzdGF0aWMgaW50IGNoZWNrX2V4dGVuc2lvbnMoQVZIV0Rl dmljZUNvbnRleHQgKmN0eCwgaW50IGRldiwgQVZEaWN0aW9uYXJ5ICpvcHRzLAogICAgICAgICAg ICAgIXN0cmNtcCh0c3RyLCBWS19FWFRfREVTQ1JJUFRPUl9CVUZGRVJfRVhURU5TSU9OX05BTUUp KQogICAgICAgICAgICAgY29udGludWU7CiAKKyAgICAgICAgLyogQ2hlY2sgaWYgdGhlIGRldmlj ZSBoYXMgUmVCQVIgZm9yIGhvc3QgaW1hZ2UgY29waWVzICovCisgICAgICAgIGlmICghc3RyY21w KHRzdHIsIFZLX0VYVF9IT1NUX0lNQUdFX0NPUFlfRVhURU5TSU9OX05BTUUpICYmCisgICAgICAg ICAgICAhdnVsa2FuX2RldmljZV9oYXNfcmViYXIoY3R4KSkKKyAgICAgICAgICAgIGNvbnRpbnVl OworCiAgICAgICAgIGlmIChkZXYgJiYKICAgICAgICAgICAgICgoZGVidWdfbW9kZSA9PSBGRl9W VUxLQU5fREVCVUdfVkFMSURBVEUpIHx8CiAgICAgICAgICAgICAgKGRlYnVnX21vZGUgPT0gRkZf VlVMS0FOX0RFQlVHX1BSSU5URikgfHwKQEAgLTE3MDcsMjUgKzE3MzAsNiBAQCBzdGF0aWMgdm9p ZCB2dWxrYW5fZGV2aWNlX3VuaW5pdChBVkhXRGV2aWNlQ29udGV4dCAqY3R4KQogICAgIGZmX3Zr X3VuaW5pdCgmcC0+dmtjdHgpOwogfQogCi1zdGF0aWMgaW50IHZ1bGthbl9kZXZpY2VfaGFzX3Jl YmFyKEFWSFdEZXZpY2VDb250ZXh0ICpjdHgpCi17Ci0gICAgVnVsa2FuRGV2aWNlUHJpdiAqcCA9 IGN0eC0+aHdjdHg7Ci0gICAgVmtEZXZpY2VTaXplIG1heF92cmFtID0gMCwgbWF4X3Zpc2libGVf dnJhbSA9IDA7Ci0KLSAgICAvKiBHZXQgZGV2aWNlIG1lbW9yeSBwcm9wZXJ0aWVzICovCi0gICAg Zm9yIChpbnQgaSA9IDA7IGkgPCBwLT5tcHJvcHMubWVtb3J5VHlwZUNvdW50OyBpKyspIHsKLSAg ICAgICAgY29uc3QgVmtNZW1vcnlUeXBlIHR5cGUgPSBwLT5tcHJvcHMubWVtb3J5VHlwZXNbaV07 Ci0gICAgICAgIGNvbnN0IFZrTWVtb3J5SGVhcCBoZWFwID0gcC0+bXByb3BzLm1lbW9yeUhlYXBz W3R5cGUuaGVhcEluZGV4XTsKLSAgICAgICAgaWYgKCEodHlwZS5wcm9wZXJ0eUZsYWdzICYgVktf TUVNT1JZX1BST1BFUlRZX0RFVklDRV9MT0NBTF9CSVQpKQotICAgICAgICAgICAgY29udGludWU7 Ci0gICAgICAgIG1heF92cmFtID0gRkZNQVgobWF4X3ZyYW0sIGhlYXAuc2l6ZSk7Ci0gICAgICAg IGlmICh0eXBlLnByb3BlcnR5RmxhZ3MgJiBWS19NRU1PUllfUFJPUEVSVFlfSE9TVF9WSVNJQkxF X0JJVCkKLSAgICAgICAgICAgIG1heF92aXNpYmxlX3ZyYW0gPSBGRk1BWChtYXhfdmlzaWJsZV92 cmFtLCBoZWFwLnNpemUpOwotICAgIH0KLQotICAgIHJldHVybiBtYXhfdnJhbSAtIG1heF92aXNp YmxlX3ZyYW0gPCAxMDI0OyAvKiAxIGtCIHRvbGVyYW5jZSAqLwotfQotCiBzdGF0aWMgaW50IHZ1 bGthbl9kZXZpY2VfY3JlYXRlX2ludGVybmFsKEFWSFdEZXZpY2VDb250ZXh0ICpjdHgsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZ1bGthbkRldmljZVNlbGVjdGlv biAqZGV2X3NlbGVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50IGRpc2FibGVfbXVsdGlwbGFuZSwKQEAgLTE3NTEsNiArMTc1NSw5IEBAIHN0YXRpYyBpbnQg dnVsa2FuX2RldmljZV9jcmVhdGVfaW50ZXJuYWwoQVZIV0RldmljZUNvbnRleHQgKmN0eCwKICAg ICBpZiAoKGVyciA9IGZpbmRfZGV2aWNlKGN0eCwgZGV2X3NlbGVjdCkpKQogICAgICAgICBnb3Rv IGVuZDsKIAorICAgIC8qIEdldCBzdXBwb3J0ZWQgbWVtb3J5IHR5cGVzICovCisgICAgdmstPkdl dFBoeXNpY2FsRGV2aWNlTWVtb3J5UHJvcGVydGllcyhod2N0eC0+cGh5c19kZXYsICZwLT5tcHJv cHMpOworCiAgICAgLyogRmluZCBhbmQgZW5hYmxlIGV4dGVuc2lvbnMgZm9yIHRoZSBwaHlzaWNh bCBkZXZpY2UgKi8KICAgICBpZiAoKGVyciA9IGNoZWNrX2V4dGVuc2lvbnMoY3R4LCAxLCBvcHRz LCAmZGV2X2luZm8ucHBFbmFibGVkRXh0ZW5zaW9uTmFtZXMsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZkZXZfaW5mby5lbmFibGVkRXh0ZW5zaW9uQ291bnQsIGRlYnVnX21vZGUp KSkgewpAQCAtMTc2MCw5ICsxNzY3LDYgQEAgc3RhdGljIGludCB2dWxrYW5fZGV2aWNlX2NyZWF0 ZV9pbnRlcm5hbChBVkhXRGV2aWNlQ29udGV4dCAqY3R4LAogICAgICAgICBnb3RvIGVuZDsKICAg ICB9CiAKLSAgICAvKiBHZXQgc3VwcG9ydGVkIG1lbW9yeSB0eXBlcyAqLwotICAgIHZrLT5HZXRQ aHlzaWNhbERldmljZU1lbW9yeVByb3BlcnRpZXMoaHdjdHgtPnBoeXNfZGV2LCAmcC0+bXByb3Bz KTsKLQogICAgIC8qIEdldCBhbGwgc3VwcG9ydGVkIGZlYXR1cmVzIGZvciB0aGUgcGh5c2ljYWwg ZGV2aWNlICovCiAgICAgZGV2aWNlX2ZlYXR1cmVzX2luaXQoY3R4LCAmc3VwcG9ydGVkX2ZlYXRz KTsKICAgICB2ay0+R2V0UGh5c2ljYWxEZXZpY2VGZWF0dXJlczIoaHdjdHgtPnBoeXNfZGV2LCAm c3VwcG9ydGVkX2ZlYXRzLmRldmljZSk7Ci0tIAoyLjUyLjAKCgpGcm9tIDQ0YTEwZDQwOTg4NjYz MWZiZmQ0ODdiYTQxZmQ3OWJjODZiNWUzZGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEx5bm5lIDxkZXZAbHlubmUuZWU+CkRhdGU6IFdlZCwgMjYgTm92IDIwMjUgMTM6NDg6MTcgKzAx MDAKU3ViamVjdDogW1BBVENIIDA3NS8zMDRdIGh3Y29udGV4dF92dWxrYW46IGRpc2FibGUgaG9z dCBpbWFnZSB0cmFuc2ZlcnMgZm9yCiBOdmlkaWEgZGV2aWNlcwoKTnZpZGlhJ3MgYmluYXJ5IGRy aXZlcnMgaGF2ZSBhIHZlcnkgYnVnZ3kgaW1wbGVtZW50YXRpb24gdGhhdCBpcwp5ZXQgdG8gYmUg Zml4ZWQuCi0tLQogbGliYXZ1dGlsL2h3Y29udGV4dF92dWxrYW4uYyB8IDE1ICsrKystLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbGliYXZ1dGlsL2h3Y29udGV4dF92dWxrYW4uYyBiL2xpYmF2dXRpbC9od2Nv bnRleHRfdnVsa2FuLmMKaW5kZXggZWZlZTZjNzJhYy4uMTQxOGMxZWEzZiAxMDA2NDQKLS0tIGEv bGliYXZ1dGlsL2h3Y29udGV4dF92dWxrYW4uYworKysgYi9saWJhdnV0aWwvaHdjb250ZXh0X3Z1 bGthbi5jCkBAIC0yMDgyLDkgKzIwODIsNiBAQCBGRl9FTkFCTEVfREVQUkVDQVRJT05fV0FSTklO R1MKICAgICAvKiBSZS1xdWVyeSBkZXZpY2UgY2FwYWJpbGl0aWVzLCBpbiBjYXNlIHRoZSBkZXZp Y2Ugd2FzIGNyZWF0ZWQgZXh0ZXJuYWxseSAqLwogICAgIHZrLT5HZXRQaHlzaWNhbERldmljZU1l bW9yeVByb3BlcnRpZXMoaHdjdHgtPnBoeXNfZGV2LCAmcC0+bXByb3BzKTsKIAotICAgIC8qIE9u bHkgdXNlIGhvc3QgaW1hZ2UgdHJhbnNmZXJzIGlmIFJlQkFSIGlzIGVuYWJsZWQgKi8KLSAgICBw LT5kaXNhYmxlX2hvc3RfdHJhbnNmZXIgPSAhdnVsa2FuX2RldmljZV9oYXNfcmViYXIoY3R4KTsK LQogZW5kOgogICAgIGF2X2ZyZWUocWZfdmlkKTsKICAgICBhdl9mcmVlKHFmKTsKQEAgLTI5MTUs MTkgKzI5MTIsMTQgQEAgc3RhdGljIGludCB2dWxrYW5fZnJhbWVzX2luaXQoQVZIV0ZyYW1lc0Nv bnRleHQgKmh3ZmMpCiAgICAgICAgICAgICByZXR1cm4gZXJyOwogICAgIH0KIAotICAgIC8qIE52 aWRpYSBpcyB2aW9sYXRpbmcgdGhlIHNwZWMgYmVjYXVzZSB0aGV5IHRob3VnaHQgbm8gb25lIHdv dWxkIHVzZSB0aGlzLiAqLwotICAgIGlmIChwLT5kcHJvcHMuZHJpdmVySUQgPT0gVktfRFJJVkVS X0lEX05WSURJQV9QUk9QUklFVEFSWSAmJgotICAgICAgICAoKChmbXQtPm5iX2ltYWdlcyA9PSAx KSAmJiAoZm10LT52a19wbGFuZXMgPiAxKSkgfHwKLSAgICAgICAgIChhdl9waXhfZm10X2Rlc2Nf Z2V0KGh3ZmMtPnN3X2Zvcm1hdCktPm5iX2NvbXBvbmVudHMgPT0gMSkpKQotICAgICAgICBzdXBw b3J0ZWRfdXNhZ2UgJj0gflZLX0lNQUdFX1VTQUdFX0hPU1RfVFJBTlNGRVJfQklUX0VYVDsKLQog ICAgIC8qIEltYWdlIHVzYWdlIGZsYWdzICovCiAgICAgaHdjdHgtPnVzYWdlIHw9IHN1cHBvcnRl ZF91c2FnZSAmIChWS19JTUFHRV9VU0FHRV9UUkFOU0ZFUl9EU1RfQklUIHwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0lNQUdFX1VTQUdFX1RSQU5TRkVSX1NSQ19C SVQgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVktfSU1BR0VfVVNB R0VfU1RPUkFHRV9CSVQgICAgICB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBWS19JTUFHRV9VU0FHRV9TQU1QTEVEX0JJVCk7CiAKLSAgICBpZiAoKHAtPnZrY3R4LmV4 dGVuc2lvbnMgJiBGRl9WS19FWFRfSE9TVF9JTUFHRV9DT1BZKSAmJiAhcC0+ZGlzYWJsZV9ob3N0 X3RyYW5zZmVyKQorICAgIGlmIChwLT52a2N0eC5leHRlbnNpb25zICYgRkZfVktfRVhUX0hPU1Rf SU1BR0VfQ09QWSAmJgorICAgICAgICAhKHAtPmRwcm9wcy5kcml2ZXJJRCA9PSBWS19EUklWRVJf SURfTlZJRElBX1BST1BSSUVUQVJZKSkKICAgICAgICAgaHdjdHgtPnVzYWdlIHw9IHN1cHBvcnRl ZF91c2FnZSAmIFZLX0lNQUdFX1VTQUdFX0hPU1RfVFJBTlNGRVJfQklUX0VYVDsKIAogICAgIC8q IEVuYWJsZXMgZW5jb2Rpbmcgb2YgaW1hZ2VzLCBpZiBzdXBwb3J0ZWQgYnkgZm9ybWF0IGFuZCBl eHRlbnNpb25zICovCkBAIC00NDgxLDcgKzQ0NzMsOCBAQCBzdGF0aWMgaW50IHZ1bGthbl90cmFu c2Zlcl9mcmFtZShBVkhXRnJhbWVzQ29udGV4dCAqaHdmYywKICAgICBpZiAoc3dmLT53aWR0aCA+ IGh3ZmMtPndpZHRoIHx8IHN3Zi0+aGVpZ2h0ID4gaHdmYy0+aGVpZ2h0KQogICAgICAgICByZXR1 cm4gQVZFUlJPUihFSU5WQUwpOwogCi0gICAgaWYgKGh3Y3R4LT51c2FnZSAmIFZLX0lNQUdFX1VT QUdFX0hPU1RfVFJBTlNGRVJfQklUX0VYVCkKKyAgICBpZiAoaHdjdHgtPnVzYWdlICYgVktfSU1B R0VfVVNBR0VfSE9TVF9UUkFOU0ZFUl9CSVRfRVhUICYmCisgICAgICAgICEocC0+ZHByb3BzLmRy aXZlcklEID09IFZLX0RSSVZFUl9JRF9OVklESUFfUFJPUFJJRVRBUlkpKQogICAgICAgICByZXR1 cm4gdnVsa2FuX3RyYW5zZmVyX2hvc3QoaHdmYywgaHdmLCBzd2YsIHVwbG9hZCk7CiAKICAgICBm b3IgKGludCBpID0gMDsgaSA8IGF2X3BpeF9mbXRfY291bnRfcGxhbmVzKHN3Zi0+Zm9ybWF0KTsg aSsrKSB7Ci0tIAoyLjUyLjAKCgpGcm9tIDRjOTljYzZkNTA5ZmFiYjBkNWI5NmY2NDEwMWY2MDM3 ZjI4MTczZWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEx5bm5lIDxkZXZAbHlubmUu ZWU+CkRhdGU6IFdlZCwgMjYgTm92IDIwMjUgMTQ6MzA6MjEgKzAxMDAKU3ViamVjdDogW1BBVENI IDA3Ni8zMDRdIGh3Y29udGV4dF92dWxrYW46IHVzZSB2a1RyYW5zaXRpb25JbWFnZUxheW91dEVY VCB0bwogc3dpdGNoIGxheW91dHMKCkZhbGxzIGJhY2sgdG8gcmVndWxhciBzdWJtaXQtYmFzZWQg bGF5b3V0IHN3aXRjaGluZyBpZiB1bnN1cHBvcnRlZC4KLS0tCiBsaWJhdnV0aWwvaHdjb250ZXh0 X3Z1bGthbi5jIHwgMTM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMTA0IGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2xpYmF2dXRpbC9od2NvbnRleHRfdnVsa2FuLmMgYi9saWJhdnV0aWwvaHdjb250ZXh0X3Z1 bGthbi5jCmluZGV4IDE0MThjMWVhM2YuLmVhYTQ5OWFhNzMgMTAwNjQ0Ci0tLSBhL2xpYmF2dXRp bC9od2NvbnRleHRfdnVsa2FuLmMKKysrIGIvbGliYXZ1dGlsL2h3Y29udGV4dF92dWxrYW4uYwpA QCAtMjQ2NSw3ICsyNDY1LDQyIEBAIGVudW0gUHJlcE1vZGUgewogICAgIFBSRVBfTU9ERV9FTkNP RElOR19EUEIsCiB9OwogCi1zdGF0aWMgaW50IHByZXBhcmVfZnJhbWUoQVZIV0ZyYW1lc0NvbnRl eHQgKmh3ZmMsIEZGVmtFeGVjUG9vbCAqZWN0eCwKK3N0YXRpYyB2b2lkIHN3aXRjaF9uZXdfcHJv cHMoZW51bSBQcmVwTW9kZSBwbW9kZSwgVmtJbWFnZUxheW91dCAqbmV3X2xheW91dCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVmtBY2Nlc3NGbGFnczIgKm5ld19hY2Nlc3MpCit7Cisg ICAgc3dpdGNoIChwbW9kZSkgeworICAgIGNhc2UgUFJFUF9NT0RFX0dFTkVSQUw6CisgICAgICAg ICpuZXdfbGF5b3V0ID0gVktfSU1BR0VfTEFZT1VUX0dFTkVSQUw7CisgICAgICAgICpuZXdfYWNj ZXNzID0gVktfQUNDRVNTX1RSQU5TRkVSX1dSSVRFX0JJVDsKKyAgICAgICAgYnJlYWs7CisgICAg Y2FzZSBQUkVQX01PREVfV1JJVEU6CisgICAgICAgICpuZXdfbGF5b3V0ID0gVktfSU1BR0VfTEFZ T1VUX1RSQU5TRkVSX0RTVF9PUFRJTUFMOworICAgICAgICAqbmV3X2FjY2VzcyA9IFZLX0FDQ0VT U19UUkFOU0ZFUl9XUklURV9CSVQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJFUF9NT0RF X0VYVEVSTkFMX0lNUE9SVDoKKyAgICAgICAgKm5ld19sYXlvdXQgPSBWS19JTUFHRV9MQVlPVVRf R0VORVJBTDsKKyAgICAgICAgKm5ld19hY2Nlc3MgPSBWS19BQ0NFU1NfTUVNT1JZX1JFQURfQklU IHwgVktfQUNDRVNTX01FTU9SWV9XUklURV9CSVQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug UFJFUF9NT0RFX0VYVEVSTkFMX0VYUE9SVDoKKyAgICAgICAgKm5ld19sYXlvdXQgPSBWS19JTUFH RV9MQVlPVVRfR0VORVJBTDsKKyAgICAgICAgKm5ld19hY2Nlc3MgPSBWS19BQ0NFU1NfTUVNT1JZ X1JFQURfQklUIHwgVktfQUNDRVNTX01FTU9SWV9XUklURV9CSVQ7CisgICAgICAgIGJyZWFrOwor ICAgIGNhc2UgUFJFUF9NT0RFX0RFQ09ESU5HX0RTVDoKKyAgICAgICAgKm5ld19sYXlvdXQgPSBW S19JTUFHRV9MQVlPVVRfVklERU9fREVDT0RFX0RTVF9LSFI7CisgICAgICAgICpuZXdfYWNjZXNz ID0gVktfQUNDRVNTX1RSQU5TRkVSX1dSSVRFX0JJVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz ZSBQUkVQX01PREVfREVDT0RJTkdfRFBCOgorICAgICAgICAqbmV3X2xheW91dCA9IFZLX0lNQUdF X0xBWU9VVF9WSURFT19ERUNPREVfRFBCX0tIUjsKKyAgICAgICAgKm5ld19hY2Nlc3MgPSBWS19B Q0NFU1NfVFJBTlNGRVJfUkVBRF9CSVQgfCBWS19BQ0NFU1NfVFJBTlNGRVJfV1JJVEVfQklUOwor ICAgICAgICBicmVhazsKKyAgICBjYXNlIFBSRVBfTU9ERV9FTkNPRElOR19EUEI6CisgICAgICAg ICpuZXdfbGF5b3V0ID0gVktfSU1BR0VfTEFZT1VUX1ZJREVPX0VOQ09ERV9EUEJfS0hSOworICAg ICAgICAqbmV3X2FjY2VzcyA9IFZLX0FDQ0VTU19UUkFOU0ZFUl9SRUFEX0JJVCB8IFZLX0FDQ0VT U19UUkFOU0ZFUl9XUklURV9CSVQ7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworc3RhdGlj IGludCBzd2l0Y2hfbGF5b3V0KEFWSFdGcmFtZXNDb250ZXh0ICpod2ZjLCBGRlZrRXhlY1Bvb2wg KmVjdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgQVZWa0ZyYW1lICpmcmFtZSwgZW51bSBQ cmVwTW9kZSBwbW9kZSkKIHsKICAgICBpbnQgZXJyOwpAQCAtMjQ3NCwxMCArMjUwOSwxNiBAQCBz dGF0aWMgaW50IHByZXBhcmVfZnJhbWUoQVZIV0ZyYW1lc0NvbnRleHQgKmh3ZmMsIEZGVmtFeGVj UG9vbCAqZWN0eCwKICAgICBWa0ltYWdlTWVtb3J5QmFycmllcjIgaW1nX2JhcltBVl9OVU1fREFU QV9QT0lOVEVSU107CiAgICAgaW50IG5iX2ltZ19iYXIgPSAwOwogCi0gICAgdWludDMyX3QgZHN0 X3FmID0gcC0+bmJfaW1nX3FmcyA+IDEgPyBWS19RVUVVRV9GQU1JTFlfSUdOT1JFRCA6IHAtPmlt Z19xZnNbMF07CiAgICAgVmtJbWFnZUxheW91dCBuZXdfbGF5b3V0OwogICAgIFZrQWNjZXNzRmxh Z3MyIG5ld19hY2Nlc3M7CisgICAgc3dpdGNoX25ld19wcm9wcyhwbW9kZSwgJm5ld19sYXlvdXQs ICZuZXdfYWNjZXNzKTsKKworICAgIHVpbnQzMl90IGRzdF9xZiA9IHAtPm5iX2ltZ19xZnMgPiAx ID8gVktfUVVFVUVfRkFNSUxZX0lHTk9SRUQgOiBwLT5pbWdfcWZzWzBdOwogICAgIFZrUGlwZWxp bmVTdGFnZUZsYWdCaXRzMiBzcmNfc3RhZ2UgPSBWS19QSVBFTElORV9TVEFHRV8yX05PTkU7Cisg ICAgaWYgKHBtb2RlID09IFBSRVBfTU9ERV9FWFRFUk5BTF9FWFBPUlQpIHsKKyAgICAgICAgZHN0 X3FmICAgICA9IFZLX1FVRVVFX0ZBTUlMWV9FWFRFUk5BTF9LSFI7CisgICAgICAgIHNyY19zdGFn ZSAgPSBWS19QSVBFTElORV9TVEFHRV8yX0FMTF9DT01NQU5EU19CSVQ7CisgICAgfQogCiAgICAg LyogVGhpcyBpcyBkaXJ0eSAtIGJ1dCBpdCB3b3Jrcy4gVGhlIHZ1bGthbi5jIGRlcGVuZGVuY3kg c3lzdGVtIGRvZXNuJ3QKICAgICAgKiBmcmVlIG5vbi1yZWZjb3VudGVkIGZyYW1lcywgYW5kIG5v bi1yZWZjb3VudGVkIGhhcmR3YXJlIGZyYW1lcyBjYW5ub3QKQEAgLTI1MDEsMzkgKzI1NDIsNiBA QCBzdGF0aWMgaW50IHByZXBhcmVfZnJhbWUoQVZIV0ZyYW1lc0NvbnRleHQgKmh3ZmMsIEZGVmtF eGVjUG9vbCAqZWN0eCwKICAgICBpZiAoZXJyIDwgMCkKICAgICAgICAgcmV0dXJuIGVycjsKIAot ICAgIHN3aXRjaCAocG1vZGUpIHsKLSAgICBjYXNlIFBSRVBfTU9ERV9HRU5FUkFMOgotICAgICAg ICBuZXdfbGF5b3V0ID0gVktfSU1BR0VfTEFZT1VUX0dFTkVSQUw7Ci0gICAgICAgIG5ld19hY2Nl c3MgPSBWS19BQ0NFU1NfVFJBTlNGRVJfV1JJVEVfQklUOwotICAgICAgICBicmVhazsKLSAgICBj YXNlIFBSRVBfTU9ERV9XUklURToKLSAgICAgICAgbmV3X2xheW91dCA9IFZLX0lNQUdFX0xBWU9V VF9UUkFOU0ZFUl9EU1RfT1BUSU1BTDsKLSAgICAgICAgbmV3X2FjY2VzcyA9IFZLX0FDQ0VTU19U UkFOU0ZFUl9XUklURV9CSVQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJFUF9NT0RFX0VY VEVSTkFMX0lNUE9SVDoKLSAgICAgICAgbmV3X2xheW91dCA9IFZLX0lNQUdFX0xBWU9VVF9HRU5F UkFMOwotICAgICAgICBuZXdfYWNjZXNzID0gVktfQUNDRVNTX01FTU9SWV9SRUFEX0JJVCB8IFZL X0FDQ0VTU19NRU1PUllfV1JJVEVfQklUOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBSRVBf TU9ERV9FWFRFUk5BTF9FWFBPUlQ6Ci0gICAgICAgIG5ld19sYXlvdXQgPSBWS19JTUFHRV9MQVlP VVRfR0VORVJBTDsKLSAgICAgICAgbmV3X2FjY2VzcyA9IFZLX0FDQ0VTU19NRU1PUllfUkVBRF9C SVQgfCBWS19BQ0NFU1NfTUVNT1JZX1dSSVRFX0JJVDsKLSAgICAgICAgZHN0X3FmICAgICA9IFZL X1FVRVVFX0ZBTUlMWV9FWFRFUk5BTF9LSFI7Ci0gICAgICAgIHNyY19zdGFnZSAgPSBWS19QSVBF TElORV9TVEFHRV8yX0FMTF9DT01NQU5EU19CSVQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug UFJFUF9NT0RFX0RFQ09ESU5HX0RTVDoKLSAgICAgICAgbmV3X2xheW91dCA9IFZLX0lNQUdFX0xB WU9VVF9WSURFT19ERUNPREVfRFNUX0tIUjsKLSAgICAgICAgbmV3X2FjY2VzcyA9IFZLX0FDQ0VT U19UUkFOU0ZFUl9XUklURV9CSVQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJFUF9NT0RF X0RFQ09ESU5HX0RQQjoKLSAgICAgICAgbmV3X2xheW91dCA9IFZLX0lNQUdFX0xBWU9VVF9WSURF T19ERUNPREVfRFBCX0tIUjsKLSAgICAgICAgbmV3X2FjY2VzcyA9IFZLX0FDQ0VTU19UUkFOU0ZF Ul9SRUFEX0JJVCB8IFZLX0FDQ0VTU19UUkFOU0ZFUl9XUklURV9CSVQ7Ci0gICAgICAgIGJyZWFr OwotICAgIGNhc2UgUFJFUF9NT0RFX0VOQ09ESU5HX0RQQjoKLSAgICAgICAgbmV3X2xheW91dCA9 IFZLX0lNQUdFX0xBWU9VVF9WSURFT19FTkNPREVfRFBCX0tIUjsKLSAgICAgICAgbmV3X2FjY2Vz cyA9IFZLX0FDQ0VTU19UUkFOU0ZFUl9SRUFEX0JJVCB8IFZLX0FDQ0VTU19UUkFOU0ZFUl9XUklU RV9CSVQ7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQogICAgIGZmX3ZrX2ZyYW1lX2JhcnJpZXIo JnAtPnZrY3R4LCBleGVjLCAmdG1wX2ZyYW1lLCBpbWdfYmFyLCAmbmJfaW1nX2JhciwKICAgICAg ICAgICAgICAgICAgICAgICAgIHNyY19zdGFnZSwKICAgICAgICAgICAgICAgICAgICAgICAgIFZL X1BJUEVMSU5FX1NUQUdFXzJfQUxMX0NPTU1BTkRTX0JJVCwKQEAgLTI1NTUsNiArMjU2Myw2NyBA QCBzdGF0aWMgaW50IHByZXBhcmVfZnJhbWUoQVZIV0ZyYW1lc0NvbnRleHQgKmh3ZmMsIEZGVmtF eGVjUG9vbCAqZWN0eCwKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBzd2l0Y2hfbGF5 b3V0X2hvc3QoQVZIV0ZyYW1lc0NvbnRleHQgKmh3ZmMsIEZGVmtFeGVjUG9vbCAqZWN0eCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFWVmtGcmFtZSAqZnJhbWUsIGVudW0gUHJlcE1v ZGUgcG1vZGUpCit7CisgICAgVmtSZXN1bHQgcmV0OworICAgIFZ1bGthbkRldmljZVByaXYgKnAg PSBod2ZjLT5kZXZpY2VfY3R4LT5od2N0eDsKKyAgICBGRlZ1bGthbkZ1bmN0aW9ucyAqdmsgPSAm cC0+dmtjdHgudmtmbjsKKyAgICBWa0hvc3RJbWFnZUxheW91dFRyYW5zaXRpb25JbmZvIGxheW91 dF9jaGFuZ2VbQVZfTlVNX0RBVEFfUE9JTlRFUlNdOworICAgIGludCBuYl9pbWFnZXMgPSBmZl92 a19jb3VudF9pbWFnZXMoZnJhbWUpOworCisgICAgVmtJbWFnZUxheW91dCBuZXdfbGF5b3V0Owor ICAgIFZrQWNjZXNzRmxhZ3MyIG5ld19hY2Nlc3M7CisgICAgc3dpdGNoX25ld19wcm9wcyhwbW9k ZSwgJm5ld19sYXlvdXQsICZuZXdfYWNjZXNzKTsKKworICAgIGludCBpOworICAgIGZvciAoaSA9 IDA7IGkgPCBwLT52a2N0eC5ob3N0X2ltYWdlX3Byb3BzLmNvcHlEc3RMYXlvdXRDb3VudDsgaSsr KSB7CisgICAgICAgIGlmIChwLT52a2N0eC5ob3N0X2ltYWdlX3Byb3BzLnBDb3B5RHN0TGF5b3V0 c1tpXSA9PSBuZXdfbGF5b3V0KQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChp ID09IHAtPnZrY3R4Lmhvc3RfaW1hZ2VfcHJvcHMuY29weURzdExheW91dENvdW50KQorICAgICAg ICByZXR1cm4gQVZFUlJPUihFTk9UU1VQKTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBuYl9pbWFn ZXM7IGkrKykgeworICAgICAgICBsYXlvdXRfY2hhbmdlW2ldID0gKFZrSG9zdEltYWdlTGF5b3V0 VHJhbnNpdGlvbkluZm8pIHsKKyAgICAgICAgICAgIC5zVHlwZSA9IFZLX1NUUlVDVFVSRV9UWVBF X0hPU1RfSU1BR0VfTEFZT1VUX1RSQU5TSVRJT05fSU5GTywKKyAgICAgICAgICAgIC5pbWFnZSA9 IGZyYW1lLT5pbWdbaV0sCisgICAgICAgICAgICAub2xkTGF5b3V0ID0gZnJhbWUtPmxheW91dFtp XSwKKyAgICAgICAgICAgIC5uZXdMYXlvdXQgPSBuZXdfbGF5b3V0LAorICAgICAgICAgICAgLnN1 YnJlc291cmNlUmFuZ2UuYXNwZWN0TWFzayA9IFZLX0lNQUdFX0FTUEVDVF9DT0xPUl9CSVQsCisg ICAgICAgICAgICAuc3VicmVzb3VyY2VSYW5nZS5sYXllckNvdW50ID0gMSwKKyAgICAgICAgICAg IC5zdWJyZXNvdXJjZVJhbmdlLmxldmVsQ291bnQgPSAxLAorICAgICAgICB9OworICAgICAgICBm cmFtZS0+bGF5b3V0W2ldID0gbmV3X2xheW91dDsKKyAgICB9CisKKyAgICByZXQgPSB2ay0+VHJh bnNpdGlvbkltYWdlTGF5b3V0RVhUKHAtPnZrY3R4Lmh3Y3R4LT5hY3RfZGV2LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmJfaW1hZ2VzLCBsYXlvdXRfY2hhbmdlKTsK KyAgICBpZiAocmV0ICE9IFZLX1NVQ0NFU1MpIHsKKyAgICAgICAgYXZfbG9nKGh3ZmMsIEFWX0xP R19FUlJPUiwgIlVuYWJsZSB0byBwcmVwYXJlIGZyYW1lOiAlc1xuIiwKKyAgICAgICAgICAgICAg IGZmX3ZrX3JldDJzdHIocmV0KSk7CisgICAgICAgIHJldHVybiBBVkVSUk9SX0VYVEVSTkFMOwor ICAgIH0KKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50IHByZXBhcmVfZnJhbWUoQVZI V0ZyYW1lc0NvbnRleHQgKmh3ZmMsIEZGVmtFeGVjUG9vbCAqZWN0eCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICBBVlZrRnJhbWUgKmZyYW1lLCBlbnVtIFByZXBNb2RlIHBtb2RlKQoreworICAg IGludCBlcnIgPSAwOworICAgIEFWVnVsa2FuRnJhbWVzQ29udGV4dCAqaHdmY192ayA9IGh3ZmMt Pmh3Y3R4OworICAgIGlmIChod2ZjX3ZrLT51c2FnZSAmIFZLX0lNQUdFX1VTQUdFX0hPU1RfVFJB TlNGRVJfQklUX0VYVCAmJgorICAgICAgICAocG1vZGUgIT0gUFJFUF9NT0RFX0VYVEVSTkFMX0VY UE9SVCkgJiYKKyAgICAgICAgKHBtb2RlICE9IFBSRVBfTU9ERV9FWFRFUk5BTF9JTVBPUlQpKQor ICAgICAgICBlcnIgPSBzd2l0Y2hfbGF5b3V0X2hvc3QoaHdmYywgZWN0eCwgZnJhbWUsIHBtb2Rl KTsKKworICAgIGlmIChlcnIgIT0gQVZFUlJPUihFTk9UU1VQKSkKKyAgICAgICAgcmV0dXJuIGVy cjsKKworICAgIHJldHVybiBzd2l0Y2hfbGF5b3V0KGh3ZmMsIGVjdHgsIGZyYW1lLCBwbW9kZSk7 Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXRfcGxhbmVfd2godWludDMyX3QgKncsIHVpbnQz Ml90ICpoLCBlbnVtIEFWUGl4ZWxGb3JtYXQgZm9ybWF0LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgZnJhbWVfdywgaW50IGZyYW1lX2gsIGludCBwbGFuZSkKIHsKLS0gCjIu NTIuMAoKCkZyb20gYTBiNWFmNWM1OGI3MmEzODI4NmNmMjI0MTU5OGVhMTBlYzliOGE5NyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTHlubmUgPGRldkBseW5uZS5lZT4KRGF0ZTogV2Vk LCA1IE5vdiAyMDI1IDEwOjMxOjE4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNzcvMzA0XSB2dWxr YW4vY29tbW9uOiBhZGQgYSBmdW5jdGlvbiB0byBmbHVzaC9pbnZhbGlkYXRlIGEKIGJ1ZmZlciBh bmQgdXNlIGl0CgpKdXN0IGZvciBjb252ZW5pZW5jZS4KLS0tCiBsaWJhdnV0aWwvaHdjb250ZXh0 X3Z1bGthbi5jIHwgNDUgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBsaWJh dnV0aWwvdnVsa2FuLmMgICAgICAgICAgIHwgMzEgKysrKysrKysrKysrKysrKysrKysrKysrKwog bGliYXZ1dGlsL3Z1bGthbi5oICAgICAgICAgICB8ICA3ICsrKysrKwogMyBmaWxlcyBjaGFuZ2Vk LCA1MyBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdnV0 aWwvaHdjb250ZXh0X3Z1bGthbi5jIGIvbGliYXZ1dGlsL2h3Y29udGV4dF92dWxrYW4uYwppbmRl eCBlYWE0OTlhYTczLi5hMmNhYWEwOTU5IDEwMDY0NAotLS0gYS9saWJhdnV0aWwvaHdjb250ZXh0 X3Z1bGthbi5jCisrKyBiL2xpYmF2dXRpbC9od2NvbnRleHRfdnVsa2FuLmMKQEAgLTQyMzcsMjkg KzQyMzcsMTAgQEAgc3RhdGljIGludCBjb3B5X2J1ZmZlcl9kYXRhKEFWSFdGcmFtZXNDb250ZXh0 ICpod2ZjLCBBVkJ1ZmZlclJlZiAqYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFW RnJhbWUgKnN3ZiwgVmtCdWZmZXJJbWFnZUNvcHkgKnJlZ2lvbiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgcGxhbmVzLCBpbnQgdXBsb2FkKQogewotICAgIFZrUmVzdWx0IHJldDsK KyAgICBpbnQgZXJyOwogICAgIFZ1bGthbkRldmljZVByaXYgKnAgPSBod2ZjLT5kZXZpY2VfY3R4 LT5od2N0eDsKLSAgICBGRlZ1bGthbkZ1bmN0aW9ucyAqdmsgPSAmcC0+dmtjdHgudmtmbjsKLSAg ICBBVlZ1bGthbkRldmljZUNvbnRleHQgKmh3Y3R4ID0gJnAtPnA7Ci0KICAgICBGRlZrQnVmZmVy ICp2a2J1ZiA9IChGRlZrQnVmZmVyICopYnVmLT5kYXRhOwogCi0gICAgY29uc3QgVmtNYXBwZWRN ZW1vcnlSYW5nZSBmbHVzaF9pbmZvID0gewotICAgICAgICAuc1R5cGUgID0gVktfU1RSVUNUVVJF X1RZUEVfTUFQUEVEX01FTU9SWV9SQU5HRSwKLSAgICAgICAgLm1lbW9yeSA9IHZrYnVmLT5tZW0s Ci0gICAgICAgIC5zaXplICAgPSBWS19XSE9MRV9TSVpFLAotICAgIH07Ci0KLSAgICBpZiAoIXVw bG9hZCAmJiAhKHZrYnVmLT5mbGFncyAmIFZLX01FTU9SWV9QUk9QRVJUWV9IT1NUX0NPSEVSRU5U X0JJVCkpIHsKLSAgICAgICAgcmV0ID0gdmstPkludmFsaWRhdGVNYXBwZWRNZW1vcnlSYW5nZXMo aHdjdHgtPmFjdF9kZXYsIDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZmbHVzaF9pbmZvKTsKLSAgICAgICAgaWYgKHJldCAhPSBWS19TVUNDRVNTKSB7 Ci0gICAgICAgICAgICBhdl9sb2coaHdmYywgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIGludmFs aWRhdGUgYnVmZmVyIGRhdGE6ICVzXG4iLAotICAgICAgICAgICAgICAgICAgIGZmX3ZrX3JldDJz dHIocmV0KSk7Ci0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9FWFRFUk5BTDsKLSAgICAgICAg fQotICAgIH0KLQogICAgIGlmICh1cGxvYWQpIHsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkg PCBwbGFuZXM7IGkrKykKICAgICAgICAgICAgIGF2X2ltYWdlX2NvcHlfcGxhbmUodmtidWYtPm1h cHBlZF9tZW0gKyByZWdpb25baV0uYnVmZmVyT2Zmc2V0LApAQCAtNDI2OCw3ICs0MjQ5LDIxIEBA IHN0YXRpYyBpbnQgY29weV9idWZmZXJfZGF0YShBVkhXRnJhbWVzQ29udGV4dCAqaHdmYywgQVZC dWZmZXJSZWYgKmJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dmLT5saW5l c2l6ZVtpXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dmLT5saW5lc2l6ZVtp XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uW2ldLmltYWdlRXh0ZW50 LmhlaWdodCk7CisKKyAgICAgICAgZXJyID0gZmZfdmtfZmx1c2hfYnVmZmVyKCZwLT52a2N0eCwg dmtidWYsIDAsIFZLX1dIT0xFX1NJWkUsIDEpOworICAgICAgICBpZiAoZXJyICE9IFZLX1NVQ0NF U1MpIHsKKyAgICAgICAgICAgIGF2X2xvZyhod2ZjLCBBVl9MT0dfRVJST1IsICJGYWlsZWQgdG8g Zmx1c2ggYnVmZmVyIGRhdGE6ICVzXG4iLAorICAgICAgICAgICAgICAgICAgIGF2X2VycjJzdHIo ZXJyKSk7CisgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9FWFRFUk5BTDsKKyAgICAgICAgfQog ICAgIH0gZWxzZSB7CisgICAgICAgIGVyciA9IGZmX3ZrX2ZsdXNoX2J1ZmZlcigmcC0+dmtjdHgs IHZrYnVmLCAwLCBWS19XSE9MRV9TSVpFLCAwKTsKKyAgICAgICAgaWYgKGVyciAhPSBWS19TVUND RVNTKSB7CisgICAgICAgICAgICBhdl9sb2coaHdmYywgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRv IGludmFsaWRhdGUgYnVmZmVyIGRhdGE6ICVzXG4iLAorICAgICAgICAgICAgICAgICAgIGF2X2Vy cjJzdHIoZXJyKSk7CisgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9FWFRFUk5BTDsKKyAgICAg ICAgfQorCiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGxhbmVzOyBpKyspCiAgICAgICAg ICAgICBhdl9pbWFnZV9jb3B5X3BsYW5lKHN3Zi0+ZGF0YVtpXSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3dmLT5saW5lc2l6ZVtpXSwKQEAgLTQyNzgsMTYgKzQyNzMsNiBAQCBz dGF0aWMgaW50IGNvcHlfYnVmZmVyX2RhdGEoQVZIV0ZyYW1lc0NvbnRleHQgKmh3ZmMsIEFWQnVm ZmVyUmVmICpidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbltpXS5p bWFnZUV4dGVudC5oZWlnaHQpOwogICAgIH0KIAotICAgIGlmICh1cGxvYWQgJiYgISh2a2J1Zi0+ ZmxhZ3MgJiBWS19NRU1PUllfUFJPUEVSVFlfSE9TVF9DT0hFUkVOVF9CSVQpKSB7Ci0gICAgICAg IHJldCA9IHZrLT5GbHVzaE1hcHBlZE1lbW9yeVJhbmdlcyhod2N0eC0+YWN0X2RldiwgMSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmbHVzaF9pbmZvKTsKLSAg ICAgICAgaWYgKHJldCAhPSBWS19TVUNDRVNTKSB7Ci0gICAgICAgICAgICBhdl9sb2coaHdmYywg QVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIGZsdXNoIGJ1ZmZlciBkYXRhOiAlc1xuIiwKLSAgICAg ICAgICAgICAgICAgICBmZl92a19yZXQyc3RyKHJldCkpOwotICAgICAgICAgICAgcmV0dXJuIEFW RVJST1JfRVhURVJOQUw7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICByZXR1cm4gMDsKIH0KIApk aWZmIC0tZ2l0IGEvbGliYXZ1dGlsL3Z1bGthbi5jIGIvbGliYXZ1dGlsL3Z1bGthbi5jCmluZGV4 IDU0NDQ4YTMyZTUuLmM3Zjg2ZDUyNGMgMTAwNjQ0Ci0tLSBhL2xpYmF2dXRpbC92dWxrYW4uYwor KysgYi9saWJhdnV0aWwvdnVsa2FuLmMKQEAgLTExNjcsNiArMTE2NywzNyBAQCBpbnQgZmZfdmtf bWFwX2J1ZmZlcnMoRkZWdWxrYW5Db250ZXh0ICpzLCBGRlZrQnVmZmVyICoqYnVmLCB1aW50OF90 ICptZW1bXSwKICAgICByZXR1cm4gMDsKIH0KIAoraW50IGZmX3ZrX2ZsdXNoX2J1ZmZlcihGRlZ1 bGthbkNvbnRleHQgKnMsIEZGVmtCdWZmZXIgKmJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAg c2l6ZV90IG9mZnNldCwgc2l6ZV90IG1lbV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICBp bnQgZmx1c2gpCit7CisgICAgVmtSZXN1bHQgcmV0OworICAgIEZGVnVsa2FuRnVuY3Rpb25zICp2 ayA9ICZzLT52a2ZuOworCisgICAgaWYgKGJ1Zi0+aG9zdF9yZWYgfHwgYnVmLT5mbGFncyAmIFZL X01FTU9SWV9QUk9QRVJUWV9IT1NUX0NPSEVSRU5UX0JJVCkKKyAgICAgICAgcmV0dXJuIDA7CisK KyAgICBjb25zdCBWa01hcHBlZE1lbW9yeVJhbmdlIGZsdXNoX2RhdGEgPSB7CisgICAgICAgIC5z VHlwZSAgPSBWS19TVFJVQ1RVUkVfVFlQRV9NQVBQRURfTUVNT1JZX1JBTkdFLAorICAgICAgICAu bWVtb3J5ID0gYnVmLT5tZW0sCisgICAgICAgIC5vZmZzZXQgPSBvZmZzZXQsCisgICAgICAgIC5z aXplICAgPSBtZW1fc2l6ZSwKKyAgICB9OworCisgICAgaWYgKGZsdXNoKQorICAgICAgICByZXQg PSB2ay0+Rmx1c2hNYXBwZWRNZW1vcnlSYW5nZXMocy0+aHdjdHgtPmFjdF9kZXYsIDEsICZmbHVz aF9kYXRhKTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IHZrLT5JbnZhbGlkYXRlTWFwcGVkTWVt b3J5UmFuZ2VzKHMtPmh3Y3R4LT5hY3RfZGV2LCAxLCAmZmx1c2hfZGF0YSk7CisKKyAgICBpZiAo cmV0ICE9IFZLX1NVQ0NFU1MpIHsKKyAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIkZh aWxlZCB0byBmbHVzaCBtZW1vcnk6ICVzXG4iLAorICAgICAgICAgICAgICAgZmZfdmtfcmV0MnN0 cihyZXQpKTsKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfRVhURVJOQUw7CisgICAgfQorCisgICAg cmV0dXJuIDA7Cit9CisKIGludCBmZl92a191bm1hcF9idWZmZXJzKEZGVnVsa2FuQ29udGV4dCAq cywgRkZWa0J1ZmZlciAqKmJ1ZiwgaW50IG5iX2J1ZmZlcnMsCiAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgZmx1c2gpCiB7CmRpZmYgLS1naXQgYS9saWJhdnV0aWwvdnVsa2FuLmggYi9saWJh dnV0aWwvdnVsa2FuLmgKaW5kZXggZTFjOWE1NzkyZi4uYmRjMjBlNDY0NSAxMDA2NDQKLS0tIGEv bGliYXZ1dGlsL3Z1bGthbi5oCisrKyBiL2xpYmF2dXRpbC92dWxrYW4uaApAQCAtNTIzLDYgKzUy MywxMyBAQCBpbnQgZmZfdmtfY3JlYXRlX2J1ZihGRlZ1bGthbkNvbnRleHQgKnMsIEZGVmtCdWZm ZXIgKmJ1Ziwgc2l6ZV90IHNpemUsCiAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwTmV4dCwg dm9pZCAqYWxsb2NfcE5leHQsCiAgICAgICAgICAgICAgICAgICAgICBWa0J1ZmZlclVzYWdlRmxh Z3MgdXNhZ2UsIFZrTWVtb3J5UHJvcGVydHlGbGFnQml0cyBmbGFncyk7CiAKKy8qKgorICogRmx1 c2ggb3IgaW52YWxpZGF0ZSBhIHNpbmdsZSBidWZmZXIsIHdpdGggYSBnaXZlbiBzaXplIGFuZCBv ZmZzZXQuCisgKi8KK2ludCBmZl92a19mbHVzaF9idWZmZXIoRkZWdWxrYW5Db250ZXh0ICpzLCBG RlZrQnVmZmVyICpidWYsCisgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQsIHNp emVfdCBtZW1fc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IGZsdXNoKTsKKwogLyoq CiAgKiBCdWZmZXIgbWFuYWdlbWVudCBjb2RlLgogICovCi0tIAoyLjUyLjAKCgpGcm9tIDI2YjAw Y2ZlZTcyOTBmMmM1NGFkZjJlNWVhZWQ2Y2I4MTlkNWViZTkgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEx5bm5lIDxkZXZAbHlubmUuZWU+CkRhdGU6IFR1ZSwgMTggTm92IDIwMjUgMTI6 MDk6NTEgKzAxMDAKU3ViamVjdDogW1BBVENIIDA3OC8zMDRdIHZ1bGthbi9jb21tb246IGFkZCBy ZXZlcnNlMiBlbmRpYW4gcmV2ZXJzYWwgbWFjcm8KCi0tLQogbGliYXZjb2RlYy92dWxrYW4vY29t bW9uLmNvbXAgfCAzICsrKwogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAt LWdpdCBhL2xpYmF2Y29kZWMvdnVsa2FuL2NvbW1vbi5jb21wIGIvbGliYXZjb2RlYy92dWxrYW4v Y29tbW9uLmNvbXAKaW5kZXggNjgyNTY5M2ZhMy4uZWRhOTJjZTI4ZCAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy92dWxrYW4vY29tbW9uLmNvbXAKKysrIGIvbGliYXZjb2RlYy92dWxrYW4vY29tbW9u LmNvbXAKQEAgLTc5LDYgKzc5LDkgQEAgdWludDY0X3QgYWxpZ242NCh1aW50NjRfdCBzcmMsIHVp bnQ2NF90IGEpCiAgICAgcmV0dXJuIHNyYyArIGEgLSByZXM7CiB9CiAKKyNkZWZpbmUgcmV2ZXJz ZTIoc3JjKSBcCisgICAgKHBhY2sxNih1bnBhY2s4KHVpbnQxNl90KHNyYykpLnl4KSkKKwogI2Rl ZmluZSByZXZlcnNlNChzcmMpIFwKICAgICAocGFjazMyKHVucGFjazgodWludDMyX3Qoc3JjKSku d3p5eCkpCiAKLS0gCjIuNTIuMAoKCkZyb20gOTAzZmRiZDJjNjQ1ZGQ0MGY3NWZjODQ1OGQzOGE1 YTUyMzFhOGMyMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTHlubmUgPGRldkBseW5u ZS5lZT4KRGF0ZTogTW9uLCAyNCBOb3YgMjAyNSAyMjozNDo1MSArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMDc5LzMwNF0gdnVsa2FuOiBjaGFuZ2UgZmZfdmtfZnJhbWVfYmFycmllciBhY2Nlc3MgYW5k IHN0YWdlCiB0eXBlIHRvIHN5bmMyCgpDbGVhbnMgdXAgYSBjb21waWxlciB3YXJuaW5nLgotLS0K IGxpYmF2dXRpbC92dWxrYW4uYyB8IDEwICsrKysrLS0tLS0KIGxpYmF2dXRpbC92dWxrYW4uaCB8 ICA4ICsrKystLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdnV0aWwvdnVsa2FuLmMgYi9saWJhdnV0aWwvdnVsa2Fu LmMKaW5kZXggYzdmODZkNTI0Yy4uMWExZDdkMGY4ZCAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL3Z1 bGthbi5jCisrKyBiL2xpYmF2dXRpbC92dWxrYW4uYwpAQCAtMjA0MywxMSArMjA0MywxMSBAQCBm YWlsOgogCiB2b2lkIGZmX3ZrX2ZyYW1lX2JhcnJpZXIoRkZWdWxrYW5Db250ZXh0ICpzLCBGRlZr RXhlY0NvbnRleHQgKmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgQVZGcmFtZSAqcGljLCBW a0ltYWdlTWVtb3J5QmFycmllcjIgKmJhciwgaW50ICpuYl9iYXIsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgVmtQaXBlbGluZVN0YWdlRmxhZ3Mgc3JjX3N0YWdlLAotICAgICAgICAgICAgICAg ICAgICAgICAgIFZrUGlwZWxpbmVTdGFnZUZsYWdzIGRzdF9zdGFnZSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICBWa0FjY2Vzc0ZsYWdCaXRzICAgICBuZXdfYWNjZXNzLAotICAgICAgICAgICAg ICAgICAgICAgICAgIFZrSW1hZ2VMYXlvdXQgICAgICAgIG5ld19sYXlvdXQsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgICAgICAgbmV3X3FmKQorICAgICAgICAgICAg ICAgICAgICAgICAgIFZrUGlwZWxpbmVTdGFnZUZsYWdzMiBzcmNfc3RhZ2UsCisgICAgICAgICAg ICAgICAgICAgICAgICAgVmtQaXBlbGluZVN0YWdlRmxhZ3MyIGRzdF9zdGFnZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICBWa0FjY2Vzc0ZsYWdCaXRzMiAgICAgbmV3X2FjY2VzcywKKyAgICAg ICAgICAgICAgICAgICAgICAgICBWa0ltYWdlTGF5b3V0ICAgICAgICAgbmV3X2xheW91dCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICAgICAgICAgbmV3X3FmKQogewog ICAgIGludCBmb3VuZCA9IC0xOwogICAgIEFWVmtGcmFtZSAqdmtmID0gKEFWVmtGcmFtZSAqKXBp Yy0+ZGF0YVswXTsKZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC92dWxrYW4uaCBiL2xpYmF2dXRpbC92 dWxrYW4uaAppbmRleCBiZGMyMGU0NjQ1Li44Njg3ODhjMmE0IDEwMDY0NAotLS0gYS9saWJhdnV0 aWwvdnVsa2FuLmgKKysrIGIvbGliYXZ1dGlsL3Z1bGthbi5oCkBAIC01MDcsMTAgKzUwNywxMCBA QCBpbnQgZmZfdmtfY3JlYXRlX2ltYWdldmlld3MoRkZWdWxrYW5Db250ZXh0ICpzLCBGRlZrRXhl Y0NvbnRleHQgKmUsCiAKIHZvaWQgZmZfdmtfZnJhbWVfYmFycmllcihGRlZ1bGthbkNvbnRleHQg KnMsIEZGVmtFeGVjQ29udGV4dCAqZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBBVkZyYW1l ICpwaWMsIFZrSW1hZ2VNZW1vcnlCYXJyaWVyMiAqYmFyLCBpbnQgKm5iX2JhciwKLSAgICAgICAg ICAgICAgICAgICAgICAgICBWa1BpcGVsaW5lU3RhZ2VGbGFncyBzcmNfc3RhZ2UsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgVmtQaXBlbGluZVN0YWdlRmxhZ3MgZHN0X3N0YWdlLAotICAgICAg ICAgICAgICAgICAgICAgICAgIFZrQWNjZXNzRmxhZ0JpdHMgICAgIG5ld19hY2Nlc3MsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgVmtJbWFnZUxheW91dCAgICAgICAgbmV3X2xheW91dCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICBWa1BpcGVsaW5lU3RhZ2VGbGFnczIgc3JjX3N0YWdlLAor ICAgICAgICAgICAgICAgICAgICAgICAgIFZrUGlwZWxpbmVTdGFnZUZsYWdzMiBkc3Rfc3RhZ2Us CisgICAgICAgICAgICAgICAgICAgICAgICAgVmtBY2Nlc3NGbGFnQml0czIgICAgIG5ld19hY2Nl c3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgVmtJbWFnZUxheW91dCAgICAgICAgIG5ld19s YXlvdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgICAgICAgbmV3 X3FmKTsKIAogLyoqCi0tIAoyLjUyLjAKCgpGcm9tIDI4NzM3YzNjZDkwMTEyZmFlZDY1M2RhNzBj NDVhZDcxZWQwM2YzODEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEx5bm5lIDxkZXZA bHlubmUuZWU+CkRhdGU6IFdlZCwgMjYgTm92IDIwMjUgMTI6NTk6MjQgKzAxMDAKU3ViamVjdDog W1BBVENIIDA4MC8zMDRdIGZmdjFlbmNfdnVsa2FuOiBhZGQgc3VwcG9ydCBmb3IgeDJiZ3IxMC94 MnJnYjEwCgotLS0KIGxpYmF2Y29kZWMvZmZ2MWVuYy5jIHwgMiArKwogbGliYXZ1dGlsL3Z1bGth bi5jICAgfCA2ICsrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9saWJhdmNvZGVjL2ZmdjFlbmMuYyBiL2xpYmF2Y29kZWMvZmZ2MWVuYy5jCmluZGV4 IDhlNWViZTc3M2MuLjVkYWEzYWEwY2QgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvZmZ2MWVuYy5j CisrKyBiL2xpYmF2Y29kZWMvZmZ2MWVuYy5jCkBAIC05MTQsNiArOTE0LDggQEAgYXZfY29sZCBp bnQgZmZfZmZ2MV9lbmNvZGVfc2V0dXBfcGxhbmVfaW5mbyhBVkNvZGVjQ29udGV4dCAqYXZjdHgs CiAgICAgY2FzZSBBVl9QSVhfRk1UX0dCUlA5OgogICAgICAgICBpZiAoIWF2Y3R4LT5iaXRzX3Bl cl9yYXdfc2FtcGxlKQogICAgICAgICAgICAgcy0+Yml0c19wZXJfcmF3X3NhbXBsZSA9IDk7Cisg ICAgY2FzZSBBVl9QSVhfRk1UX1gyQkdSMTA6CisgICAgY2FzZSBBVl9QSVhfRk1UX1gyUkdCMTA6 CiAgICAgY2FzZSBBVl9QSVhfRk1UX0dCUlAxMDoKICAgICBjYXNlIEFWX1BJWF9GTVRfR0JSQVAx MDoKICAgICAgICAgaWYgKCFhdmN0eC0+Yml0c19wZXJfcmF3X3NhbXBsZSAmJiAhcy0+Yml0c19w ZXJfcmF3X3NhbXBsZSkKZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC92dWxrYW4uYyBiL2xpYmF2dXRp bC92dWxrYW4uYwppbmRleCAxYTFkN2QwZjhkLi5jM2Q4YzFkMGQ5IDEwMDY0NAotLS0gYS9saWJh dnV0aWwvdnVsa2FuLmMKKysrIGIvbGliYXZ1dGlsL3Z1bGthbi5jCkBAIC0xNjAwLDYgKzE2MDAs MTIgQEAgdm9pZCBmZl92a19zZXRfcGVybShlbnVtIEFWUGl4ZWxGb3JtYXQgcGl4X2ZtdCwgaW50 IGx1dFs0XSwgaW50IGludikKICAgICAgICAgbHV0WzJdID0gMDsKICAgICAgICAgbHV0WzNdID0g MzsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBVl9QSVhfRk1UX1gyQkdSMTA6CisgICAgICAg IGx1dFswXSA9IDA7CisgICAgICAgIGx1dFsxXSA9IDI7CisgICAgICAgIGx1dFsyXSA9IDE7Cisg ICAgICAgIGx1dFszXSA9IDM7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAg IGx1dFswXSA9IDA7CiAgICAgICAgIGx1dFsxXSA9IDE7Ci0tIAoyLjUyLjAKCgpGcm9tIDI2MmRj M2Q3OWUxN2RjZWJkY2U2ZjNiOGJhODFhZDBkZTE3NzYxZTAgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEx5bm5lIDxkZXZAbHlubmUuZWU+CkRhdGU6IFdlZCwgMjYgTm92IDIwMjUgMTM6 MDY6MTEgKzAxMDAKU3ViamVjdDogW1BBVENIIDA4MS8zMDRdIHZ1bGthbl9mZnYxOiBmaXggc3dh cHBlZCBjb2xvcnMgZm9yIHgyYmdyMTAKCi0tLQogbGliYXZjb2RlYy92dWxrYW4vZmZ2MV9kZWMu Y29tcCB8IDMgKysrCiBsaWJhdmNvZGVjL3Z1bGthbl9mZnYxLmMgICAgICAgIHwgMiAtLQogMiBm aWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbGliYXZjb2RlYy92dWxrYW4vZmZ2MV9kZWMuY29tcCBiL2xpYmF2Y29kZWMvdnVsa2FuL2Zm djFfZGVjLmNvbXAKaW5kZXggZWI3OTVkY2JhNC4uYjcyNjQ5MWU5OCAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy92dWxrYW4vZmZ2MV9kZWMuY29tcAorKysgYi9saWJhdmNvZGVjL3Z1bGthbi9mZnYx X2RlYy5jb21wCkBAIC0yMTQsNiArMjE0LDkgQEAgdm9pZCB3cml0ZW91dF9yZ2IoaW4gU2xpY2VD b250ZXh0IHNjLCBpdmVjMiBzcCwgaW50IHcsIGludCB5LCBib29sIGFwcGx5X3JjdCkKIAogICAg ICAgICBpZiAoZXhwZWN0RVhUKGFwcGx5X3JjdCwgdHJ1ZSkpCiAgICAgICAgICAgICBwaXggPSB0 cmFuc2Zvcm1fc2FtcGxlKHBpeCwgc2Muc2xpY2VfcmN0X2NvZWYpOworICAgICAgICBlbHNlCisg ICAgICAgICAgICBwaXggPSBpdmVjNChwaXhbZm10X2x1dFswXV0sIHBpeFtmbXRfbHV0WzFdXSwK KyAgICAgICAgICAgICAgICAgICAgICAgIHBpeFtmbXRfbHV0WzJdXSwgcGl4W2ZtdF9sdXRbM11d KTsKIAogICAgICAgICBpbWFnZVN0b3JlKGRzdFswXSwgcG9zLCBwaXgpOwogICAgICAgICBpZiAo cGxhbmFyX3JnYiAhPSAwKSB7CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z1bGthbl9mZnYxLmMg Yi9saWJhdmNvZGVjL3Z1bGthbl9mZnYxLmMKaW5kZXggMWVkOWQ3ZGQ2Yy4uMWFhNjNjMGRkMyAx MDA2NDQKLS0tIGEvbGliYXZjb2RlYy92dWxrYW5fZmZ2MS5jCisrKyBiL2xpYmF2Y29kZWMvdnVs a2FuX2ZmdjEuYwpAQCAtNDUwLDggKzQ1MCw2IEBAIHN0YXRpYyBpbnQgdmtfZmZ2MV9lbmRfZnJh bWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogICAgIGlmIChzd19mb3JtYXQgPT0gQVZfUElYX0ZN VF9HQlJQMTAgfHwgc3dfZm9ybWF0ID09IEFWX1BJWF9GTVRfR0JSUDEyIHx8CiAgICAgICAgIHN3 X2Zvcm1hdCA9PSBBVl9QSVhfRk1UX0dCUlAxNCkKICAgICAgICAgbWVtY3B5KHBkLmZtdF9sdXQs IChpbnQgWzRdKSB7IDIsIDEsIDAsIDMgfSwgNCpzaXplb2YoaW50KSk7Ci0gICAgZWxzZSBpZiAo c3dfZm9ybWF0ID09IEFWX1BJWF9GTVRfWDJCR1IxMCkKLSAgICAgICAgbWVtY3B5KHBkLmZtdF9s dXQsIChpbnQgWzRdKSB7IDAsIDIsIDEsIDMgfSwgNCpzaXplb2YoaW50KSk7CiAgICAgZWxzZQog ICAgICAgICBmZl92a19zZXRfcGVybShzd19mb3JtYXQsIHBkLmZtdF9sdXQsIDApOwogCi0tIAoy LjUyLjAKCgpGcm9tIDg5OTE1NjVmNzNmZDE0YThjNTAzOGExOGY4YzZlNjcyNmEwNDVhNjAgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEx5bm5lIDxkZXZAbHlubmUuZWU+CkRhdGU6IFNh dCwgMjIgTm92IDIwMjUgMTM6MTM6NDMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA4Mi8zMDRdIHZ1 bGthbl9mZnYxL3Byb3JlczogcmVtb3ZlIHVubmVjZXNzYXJ5IHNsaWNlIGJ1ZmZlcgogdW5yZWYK ClRoZSBzbGljZSBidWZmZXIgaXMgYWxyZWFkeSB1bnJlZidkIGJ5IGZmX3ZrX2RlY29kZV9mcmVl X2ZyYW1lKCkuCi0tLQogbGliYXZjb2RlYy92dWxrYW5fZmZ2MS5jICAgfCAxIC0KIGxpYmF2Y29k ZWMvdnVsa2FuX3Byb3Jlcy5jIHwgMiAtLQogMiBmaWxlcyBjaGFuZ2VkLCAzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnVsa2FuX2ZmdjEuYyBiL2xpYmF2Y29kZWMvdnVs a2FuX2ZmdjEuYwppbmRleCAxYWE2M2MwZGQzLi40Nzg3YTA2ZTk3IDEwMDY0NAotLS0gYS9saWJh dmNvZGVjL3Z1bGthbl9mZnYxLmMKKysrIGIvbGliYXZjb2RlYy92dWxrYW5fZmZ2MS5jCkBAIC0x MTQ2LDcgKzExNDYsNiBAQCBzdGF0aWMgdm9pZCB2a19mZnYxX2ZyZWVfZnJhbWVfcHJpdihBVlJl ZlN0cnVjdE9wYXF1ZSBfaHdjdHgsIHZvaWQgKmRhdGEpCiAgICAgICAgICAgICAgICAgICAgaSwg c3RhdHVzLCBjcmNfcmVzKTsKICAgICB9CiAKLSAgICBhdl9idWZmZXJfdW5yZWYoJnZwLT5zbGlj ZXNfYnVmKTsKICAgICBhdl9idWZmZXJfdW5yZWYoJmZwLT5zbGljZV9zdGF0ZSk7CiAgICAgYXZf YnVmZmVyX3VucmVmKCZmcC0+c2xpY2Vfb2Zmc2V0X2J1Zik7CiAgICAgYXZfYnVmZmVyX3VucmVm KCZmcC0+c2xpY2Vfc3RhdHVzX2J1Zik7CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z1bGthbl9w cm9yZXMuYyBiL2xpYmF2Y29kZWMvdnVsa2FuX3Byb3Jlcy5jCmluZGV4IDQyZThmYTBiMDYuLmIy NTI1NTBmN2MgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdnVsa2FuX3Byb3Jlcy5jCisrKyBiL2xp YmF2Y29kZWMvdnVsa2FuX3Byb3Jlcy5jCkBAIC01NzMsMTEgKzU3Myw5IEBAIHN0YXRpYyB2b2lk IHZrX3Byb3Jlc19mcmVlX2ZyYW1lX3ByaXYoQVZSZWZTdHJ1Y3RPcGFxdWUgX2h3Y3R4LCB2b2lk ICpkYXRhKQogewogICAgIEFWSFdEZXZpY2VDb250ZXh0ICAgICpkZXZfY3R4ID0gX2h3Y3R4Lm5j OwogICAgIFByb3Jlc1Z1bGthbkRlY29kZVBpY3R1cmUgKnBwID0gZGF0YTsKLSAgICBGRlZ1bGth bkRlY29kZVBpY3R1cmUgKnZwID0gJnBwLT52cDsKIAogICAgIGZmX3ZrX2RlY29kZV9mcmVlX2Zy YW1lKGRldl9jdHgsICZwcC0+dnApOwogCi0gICAgYXZfYnVmZmVyX3VucmVmKCZ2cC0+c2xpY2Vz X2J1Zik7CiAgICAgYXZfYnVmZmVyX3VucmVmKCZwcC0+bWV0YWRhdGFfYnVmKTsKIH0KIAotLSAK Mi41Mi4wCgoKRnJvbSBjOTI4MzM0MDliMWI4Yzc2NGNmMTM1ZTQ3MGE4Zjg5ZmIzM2Q3NDBhIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMeW5uZSA8ZGV2QGx5bm5lLmVlPgpEYXRlOiBT dW4sIDIzIE5vdiAyMDI1IDE5OjQ5OjAxICswMTAwClN1YmplY3Q6IFtQQVRDSCAwODMvMzA0XSBm ZnYxZGVjOiBjYWxsIGZmX2dldF9mb3JtYXQgaWYgdGhlIEVDIGNvZGluZyBjaGFuZ2VzCgpEZWNv ZGVycyBuZWVkIHRvIHRyYWNrIGFsbCBzdGF0ZSB0aGF0IGh3YWNjZWxzIG1heSBiZSBpbnRlcnN0 ZWQgaW4sCmFuZCB0cmlnZ2VyIGEgcmVjb25maWd1cmF0aW9uIGlmIGl0IGNoYW5nZXMuCi0tLQog bGliYXZjb2RlYy9mZnYxLmggICAgfCAxICsKIGxpYmF2Y29kZWMvZmZ2MWRlYy5jIHwgNSArKysr LQogMiBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9saWJhdmNvZGVjL2ZmdjEuaCBiL2xpYmF2Y29kZWMvZmZ2MS5oCmluZGV4IGFkZjc2 YjA2NDQuLjhhNDhlOGU2ODIgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvZmZ2MS5oCisrKyBiL2xp YmF2Y29kZWMvZmZ2MS5oCkBAIC0xNDAsNiArMTQwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgRkZWMUNv bnRleHQgewogICAgIGVudW0gQVZQaXhlbEZvcm1hdCBwaXhfZm10OwogICAgIGVudW0gQVZQaXhl bEZvcm1hdCBjb25maWd1cmVkX3BpeF9mbXQ7CiAgICAgaW50IGNvbmZpZ3VyZWRfd2lkdGgsIGNv bmZpZ3VyZWRfaGVpZ2h0OworICAgIGludCBjb25maWd1cmVkX2FjOwogCiAgICAgY29uc3QgQVZG cmFtZSAqY3VyX2VuY19mcmFtZTsKICAgICBpbnQgcGxhbmVfY291bnQ7CmRpZmYgLS1naXQgYS9s aWJhdmNvZGVjL2ZmdjFkZWMuYyBiL2xpYmF2Y29kZWMvZmZ2MWRlYy5jCmluZGV4IGE3MGNkNzRh ZjQuLjYzMGE2MDU5NWQgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvZmZ2MWRlYy5jCisrKyBiL2xp YmF2Y29kZWMvZmZ2MWRlYy5jCkBAIC01MDksMTMgKzUwOSwxNSBAQCBzdGF0aWMgaW50IHJlYWRf aGVhZGVyKEZGVjFDb250ZXh0ICpmLCBSYW5nZUNvZGVyICpjKQogCiAgICAgaWYgKGYtPmNvbmZp Z3VyZWRfcGl4X2ZtdCAhPSBmLT5waXhfZm10IHx8CiAgICAgICAgIGYtPmNvbmZpZ3VyZWRfd2lk dGggIT0gZi0+YXZjdHgtPndpZHRoIHx8Ci0gICAgICAgIGYtPmNvbmZpZ3VyZWRfaGVpZ2h0ICE9 IGYtPmF2Y3R4LT5oZWlnaHQpIHsKKyAgICAgICAgZi0+Y29uZmlndXJlZF9oZWlnaHQgIT0gZi0+ YXZjdHgtPmhlaWdodCB8fAorICAgICAgICBmLT5jb25maWd1cmVkX2FjICE9IGYtPmFjKSB7CiAg ICAgICAgIGYtPmF2Y3R4LT5waXhfZm10ID0gZ2V0X3BpeGVsX2Zvcm1hdChmKTsKICAgICAgICAg aWYgKGYtPmF2Y3R4LT5waXhfZm10IDwgMCkKICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJ TlZBTCk7CiAgICAgICAgIGYtPmNvbmZpZ3VyZWRfcGl4X2ZtdCA9IGYtPnBpeF9mbXQ7CiAgICAg ICAgIGYtPmNvbmZpZ3VyZWRfd2lkdGggPSBmLT5hdmN0eC0+d2lkdGg7CiAgICAgICAgIGYtPmNv bmZpZ3VyZWRfaGVpZ2h0ID0gZi0+YXZjdHgtPmhlaWdodDsKKyAgICAgICAgZi0+Y29uZmlndXJl ZF9hYyA9IGYtPmFjOwogICAgIH0KIAogICAgIGZmX2Rsb2coZi0+YXZjdHgsICIlZCAlZCAlZFxu IiwKQEAgLTkyMSw2ICs5MjMsNyBAQCBzdGF0aWMgaW50IHVwZGF0ZV90aHJlYWRfY29udGV4dChB VkNvZGVjQ29udGV4dCAqZHN0LCBjb25zdCBBVkNvZGVjQ29udGV4dCAqc3JjKQogICAgIGZkc3Qt PmNvbG9yc3BhY2UgICAgICAgICAgPSBmc3JjLT5jb2xvcnNwYWNlOwogICAgIGZkc3QtPnBpeF9m bXQgICAgICAgICAgICAgPSBmc3JjLT5waXhfZm10OwogICAgIGZkc3QtPmNvbmZpZ3VyZWRfcGl4 X2ZtdCAgPSBmc3JjLT5jb25maWd1cmVkX3BpeF9mbXQ7CisgICAgZmRzdC0+Y29uZmlndXJlZF9h YyAgICAgICA9IGZzcmMtPmNvbmZpZ3VyZWRfYWM7CiAKICAgICBmZHN0LT5lYyAgICAgICAgICAg ICAgICAgID0gZnNyYy0+ZWM7CiAgICAgZmRzdC0+aW50cmEgICAgICAgICAgICAgICA9IGZzcmMt PmludHJhOwotLSAKMi41Mi4wCgoKRnJvbSAxNmJjMDdkOTI0M2M4MmE1ODhmNjc5ZjdiY2U4YTEx ZDc3ZDhhMDhlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMeW5uZSA8ZGV2QGx5bm5l LmVlPgpEYXRlOiBTYXQsIDIyIE5vdiAyMDI1IDIyOjM3OjE3ICswMTAwClN1YmplY3Q6IFtQQVRD SCAwODQvMzA0XSB2dWxrYW5fZmZ2MTogaW5pdGlhbGl6ZSBvbmx5IHRoZSBuZWNlc3Nhcnkgc2hh ZGVycyBvbgogaW5pdAoKVGhlIGRlY29kZXIgd2lsbCByZWluaXQgdGhlIGh3YWNjZWwgdXBvbiBw aXhmbXQvZGltZW5zaW9uIGNoYW5nZXMsCnNvIHdlIGNhbiByZW1vdmUgdGhlIGYtPnVzZTMyYml0 IGFuZCBpc19yZ2IgdmFyaWFudHMgb2YgYWxsIHNoYWRlcnMuCgpUaGlzIHNwZWVkcyB1cCBpbml0 IHRpbWUuCi0tLQogbGliYXZjb2RlYy92dWxrYW5fZmZ2MS5jIHwgMTAxICsrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQyIGluc2VydGlvbnMo KyksIDU5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnVsa2FuX2ZmdjEu YyBiL2xpYmF2Y29kZWMvdnVsa2FuX2ZmdjEuYwppbmRleCA0Nzg3YTA2ZTk3Li43ZDFlMGM5YmE3 IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Z1bGthbl9mZnYxLmMKKysrIGIvbGliYXZjb2RlYy92 dWxrYW5fZmZ2MS5jCkBAIC01OSwxMSArNTksMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgRkZ2MVZ1bGth bkRlY29kZVBpY3R1cmUgewogfSBGRnYxVnVsa2FuRGVjb2RlUGljdHVyZTsKIAogdHlwZWRlZiBz dHJ1Y3QgRkZ2MVZ1bGthbkRlY29kZUNvbnRleHQgewotICAgIEFWQnVmZmVyUmVmICppbnRlcm1l ZGlhdGVfZnJhbWVzX3JlZlsyXTsgLyogMTYvMzIgYml0ICovCisgICAgQVZCdWZmZXJSZWYgKmlu dGVybWVkaWF0ZV9mcmFtZXNfcmVmOwogCiAgICAgRkZWdWxrYW5TaGFkZXIgc2V0dXA7Ci0gICAg RkZWdWxrYW5TaGFkZXIgcmVzZXRbMl07IC8qIEFDL0dvbG9tYiAqLwotICAgIEZGVnVsa2FuU2hh ZGVyIGRlY29kZVsyXVsyXVsyXTsgLyogMTYvMzIgYml0LCBBQy9Hb2xvbWIsIE5vcm1hbC9SR0Ig Ki8KKyAgICBGRlZ1bGthblNoYWRlciByZXNldDsKKyAgICBGRlZ1bGthblNoYWRlciBkZWNvZGU7 CiAKICAgICBGRlZrQnVmZmVyIHJhbmdlY29kZXJfc3RhdGljX2J1ZjsKICAgICBGRlZrQnVmZmVy IHF1YW50X2J1ZjsKQEAgLTIzOSw3ICsyMzksNyBAQCBzdGF0aWMgaW50IHZrX2ZmdjFfc3RhcnRf ZnJhbWUoQVZDb2RlY0NvbnRleHQgICAgICAgICAgKmF2Y3R4LAogICAgICAgICBpZiAoIXZwLT5k cGJfZnJhbWUpCiAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwogCi0gICAgICAg IGVyciA9IGF2X2h3ZnJhbWVfZ2V0X2J1ZmZlcihmdi0+aW50ZXJtZWRpYXRlX2ZyYW1lc19yZWZb Zi0+dXNlMzJiaXRdLAorICAgICAgICBlcnIgPSBhdl9od2ZyYW1lX2dldF9idWZmZXIoZnYtPmlu dGVybWVkaWF0ZV9mcmFtZXNfcmVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdnAtPmRwYl9mcmFtZSwgMCk7CiAgICAgICAgIGlmIChlcnIgPCAwKQogICAgICAgICAgICAg cmV0dXJuIGVycjsKQEAgLTQ3Miw3ICs0NzIsNyBAQCBzdGF0aWMgaW50IHZrX2ZmdjFfZW5kX2Zy YW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCkKICAgICB9CiAKICAgICAvKiBSZXNldCBzaGFkZXIg Ki8KLSAgICByZXNldF9zaGFkZXIgPSAmZnYtPnJlc2V0W2YtPmFjID09IEFDX0dPTE9NQl9SSUNF XTsKKyAgICByZXNldF9zaGFkZXIgPSAmZnYtPnJlc2V0OwogICAgIGZmX3ZrX3NoYWRlcl91cGRh dGVfZGVzY19idWZmZXIoJmN0eC0+cywgZXhlYywgcmVzZXRfc2hhZGVyLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNsaWNlX3N0YXRlLApAQCAtNTI1LDcgKzUyNSw3IEBAIHN0YXRpYyBpbnQg dmtfZmZ2MV9lbmRfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogICAgICAgICAgICAgICAg ICAgICBmLT5wbGFuZV9jb3VudCk7CiAKICAgICAvKiBEZWNvZGUgKi8KLSAgICBkZWNvZGVfc2hh ZGVyID0gJmZ2LT5kZWNvZGVbZi0+dXNlMzJiaXRdW2YtPmFjID09IEFDX0dPTE9NQl9SSUNFXVtp c19yZ2JdOworICAgIGRlY29kZV9zaGFkZXIgPSAmZnYtPmRlY29kZTsKICAgICBmZl92a19zaGFk ZXJfdXBkYXRlX2Rlc2NfYnVmZmVyKCZjdHgtPnMsIGV4ZWMsIGRlY29kZV9zaGFkZXIsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2xpY2Vfc3RhdGUsCkBAIC04MjEsNyArODIxLDcgQEAgc3Rh dGljIGludCBpbml0X2RlY29kZV9zaGFkZXIoRkZWMUNvbnRleHQgKmYsIEZGVnVsa2FuQ29udGV4 dCAqcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZGVnVsa2FuU2hhZGVyICpzaGQs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVkhXRnJhbWVzQ29udGV4dCAqZGVjX2Zy YW1lc19jdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVkhXRnJhbWVzQ29udGV4 dCAqb3V0X2ZyYW1lc19jdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdXNl MzJiaXQsIGludCBhYywgaW50IHJnYikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCBhYywgaW50IHJnYikKIHsKICAgICBpbnQgZXJyOwogICAgIEZGVnVsa2FuRGVzY3JpcHRvclNl dEJpbmRpbmcgKmRlc2Nfc2V0OwpAQCAtODI5LDYgKzgyOSw3IEBAIHN0YXRpYyBpbnQgaW5pdF9k ZWNvZGVfc2hhZGVyKEZGVjFDb250ZXh0ICpmLCBGRlZ1bGthbkNvbnRleHQgKnMsCiAgICAgdWlu dDhfdCAqc3B2X2RhdGE7CiAgICAgc2l6ZV90IHNwdl9sZW47CiAgICAgdm9pZCAqc3B2X29wYXF1 ZSA9IE5VTEw7CisKICAgICBpbnQgdXNlX2NhY2hlZF9yZWFkZXIgPSBhYyAhPSBBQ19HT0xPTUJf UklDRSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMtPmRyaXZlcl9wcm9wcy5kcml2 ZXJJRCA9PSBWS19EUklWRVJfSURfTUVTQV9SQURWOwogCkBAIC04NzcsNyArODc4LDcgQEAgc3Rh dGljIGludCBpbml0X2RlY29kZV9zaGFkZXIoRkZWMUNvbnRleHQgKmYsIEZGVnVsa2FuQ29udGV4 dCAqcywKIAogICAgIFJFVChmZl92a19zaGFkZXJfYWRkX2Rlc2NyaXB0b3Jfc2V0KHMsIHNoZCwg ZGVzY19zZXQsIDIsIDEsIDApKTsKIAotICAgIGRlZmluZV9zaGFyZWRfY29kZShzaGQsIHVzZTMy Yml0KTsKKyAgICBkZWZpbmVfc2hhcmVkX2NvZGUoc2hkLCBmLT51c2UzMmJpdCk7CiAgICAgaWYg KGFjID09IEFDX0dPTE9NQl9SSUNFKQogICAgICAgICBHTFNMRChmZl9zb3VyY2VfZmZ2MV92bGNf Y29tcCk7CiAKQEAgLTk3MywxOCArOTc0LDExIEBAIHN0YXRpYyB2b2lkIHZrX2RlY29kZV9mZnYx X3VuaW5pdChGRlZ1bGthbkRlY29kZVNoYXJlZCAqY3R4KQogewogICAgIEZGdjFWdWxrYW5EZWNv ZGVDb250ZXh0ICpmdiA9IGN0eC0+c2RfY3R4OwogCisgICAgYXZfYnVmZmVyX3VucmVmKCZmdi0+ aW50ZXJtZWRpYXRlX2ZyYW1lc19yZWYpOworCiAgICAgZmZfdmtfc2hhZGVyX2ZyZWUoJmN0eC0+ cywgJmZ2LT5zZXR1cCk7Ci0KLSAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgLyogMTYv MzIgYml0ICovCi0gICAgICAgIGF2X2J1ZmZlcl91bnJlZigmZnYtPmludGVybWVkaWF0ZV9mcmFt ZXNfcmVmW2ldKTsKLQotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjsgaSsrKSAvKiBBQy9Hb2xv bWIgKi8KLSAgICAgICAgZmZfdmtfc2hhZGVyX2ZyZWUoJmN0eC0+cywgJmZ2LT5yZXNldFtpXSk7 Ci0KLSAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgLyogMTYvMzIgYml0ICovCi0gICAg ICAgIGZvciAoaW50IGogPSAwOyBqIDwgMjsgaisrKSAvKiBBQy9Hb2xvbWIgKi8KLSAgICAgICAg ICAgIGZvciAoaW50IGsgPSAwOyBrIDwgMjsgaysrKSAvKiBOb3JtYWwvUkdCICovCi0gICAgICAg ICAgICAgICAgZmZfdmtfc2hhZGVyX2ZyZWUoJmN0eC0+cywgJmZ2LT5kZWNvZGVbaV1bal1ba10p OworICAgIGZmX3ZrX3NoYWRlcl9mcmVlKCZjdHgtPnMsICZmdi0+cmVzZXQpOworICAgIGZmX3Zr X3NoYWRlcl9mcmVlKCZjdHgtPnMsICZmdi0+ZGVjb2RlKTsKIAogICAgIGZmX3ZrX2ZyZWVfYnVm KCZjdHgtPnMsICZmdi0+cXVhbnRfYnVmKTsKICAgICBmZl92a19mcmVlX2J1ZigmY3R4LT5zLCAm ZnYtPnJhbmdlY29kZXJfc3RhdGljX2J1Zik7CkBAIC0xMDI5LDM4ICsxMDIzLDMzIEBAIHN0YXRp YyBpbnQgdmtfZGVjb2RlX2ZmdjFfaW5pdChBVkNvZGVjQ29udGV4dCAqYXZjdHgpCiAKICAgICBj dHgtPnNkX2N0eF9mcmVlID0gJnZrX2RlY29kZV9mZnYxX3VuaW5pdDsKIAorICAgIEFWSFdGcmFt ZXNDb250ZXh0ICpod2ZjID0gKEFWSFdGcmFtZXNDb250ZXh0ICopYXZjdHgtPmh3X2ZyYW1lc19j dHgtPmRhdGE7CisgICAgQVZIV0ZyYW1lc0NvbnRleHQgKmRjdHggPSBod2ZjOworICAgIGVudW0g QVZQaXhlbEZvcm1hdCBzd19mb3JtYXQgPSBod2ZjLT5zd19mb3JtYXQ7CisgICAgaW50IGlzX3Jn YiA9ICEoZi0+Y29sb3JzcGFjZSA9PSAwICYmIHN3X2Zvcm1hdCAhPSBBVl9QSVhfRk1UX1lBOCkg JiYKKyAgICAgICAgICAgICAgICAgIShzd19mb3JtYXQgPT0gQVZfUElYX0ZNVF9ZQTgpOworCiAg ICAgLyogSW50ZXJtZWRpYXRlIGZyYW1lIHBvb2wgZm9yIFJDVCAqLwotICAgIGZvciAoaW50IGkg PSAwOyBpIDwgMjsgaSsrKSB7IC8qIDE2LzMyIGJpdCAqLwotICAgICAgICBSRVQoaW5pdF9pbmRp cmVjdChhdmN0eCwgJmN0eC0+cywgJmZ2LT5pbnRlcm1lZGlhdGVfZnJhbWVzX3JlZltpXSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgaSA/IEFWX1BJWF9GTVRfR0JSQVAzMiA6IEFWX1BJWF9G TVRfR0JSQVAxNikpOworICAgIGlmIChpc19yZ2IpIHsKKyAgICAgICAgUkVUKGluaXRfaW5kaXJl Y3QoYXZjdHgsICZjdHgtPnMsICZmdi0+aW50ZXJtZWRpYXRlX2ZyYW1lc19yZWYsCisgICAgICAg ICAgICAgICAgICAgICAgICAgIGYtPnVzZTMyYml0ID8gQVZfUElYX0ZNVF9HQlJBUDMyIDogQVZf UElYX0ZNVF9HQlJBUDE2KSk7CisgICAgICAgIGRjdHggPSAoQVZIV0ZyYW1lc0NvbnRleHQgKilm di0+aW50ZXJtZWRpYXRlX2ZyYW1lc19yZWYtPmRhdGE7CiAgICAgfQogCiAgICAgLyogU2V0dXAg c2hhZGVyICovCiAgICAgUkVUKGluaXRfc2V0dXBfc2hhZGVyKGYsICZjdHgtPnMsICZjdHgtPmV4 ZWNfcG9vbCwgc3B2LCAmZnYtPnNldHVwKSk7CiAKLSAgICAvKiBSZXNldCBzaGFkZXJzICovCi0g ICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspIHsgLyogQUMvR29sb21iICovCi0gICAgICAg IFJFVChpbml0X3Jlc2V0X3NoYWRlcihmLCAmY3R4LT5zLCAmY3R4LT5leGVjX3Bvb2wsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzcHYsICZmdi0+cmVzZXRbaV0sICFpID8gQUNfUkFO R0VfQ1VTVE9NX1RBQiA6IDApKTsKLSAgICB9CisgICAgLyogUmVzZXQgc2hhZGVyICovCisgICAg UkVUKGluaXRfcmVzZXRfc2hhZGVyKGYsICZjdHgtPnMsICZjdHgtPmV4ZWNfcG9vbCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgc3B2LCAmZnYtPnJlc2V0LCBmLT5hYykpOwogCiAgICAgLyog RGVjb2RlIHNoYWRlcnMgKi8KLSAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgeyAvKiAx Ni8zMiBiaXQgKi8KLSAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAyOyBqKyspIHsgLyogQUMv R29sb21iICovCi0gICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IDI7IGsrKykgeyAvKiBO b3JtYWwvUkdCICovCi0gICAgICAgICAgICAgICAgQVZIV0ZyYW1lc0NvbnRleHQgKmRlY19mcmFt ZXNfY3R4OwotICAgICAgICAgICAgICAgIGRlY19mcmFtZXNfY3R4ID0gayA/IChBVkhXRnJhbWVz Q29udGV4dCAqKWZ2LT5pbnRlcm1lZGlhdGVfZnJhbWVzX3JlZltpXS0+ZGF0YSA6Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEFWSFdGcmFtZXNDb250ZXh0ICopYXZjdHgt Pmh3X2ZyYW1lc19jdHgtPmRhdGE7Ci0gICAgICAgICAgICAgICAgUkVUKGluaXRfZGVjb2RlX3No YWRlcihmLCAmY3R4LT5zLCAmY3R4LT5leGVjX3Bvb2wsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzcHYsICZmdi0+ZGVjb2RlW2ldW2pdW2tdLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjX2ZyYW1lc19jdHgsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoQVZIV0ZyYW1lc0NvbnRleHQgKilhdmN0eC0+aHdf ZnJhbWVzX2N0eC0+ZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhaiA/IEFDX1JBTkdF X0NVU1RPTV9UQUIgOiBBQ19HT0xPTUJfUklDRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGspKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KKyAgICBS RVQoaW5pdF9kZWNvZGVfc2hhZGVyKGYsICZjdHgtPnMsICZjdHgtPmV4ZWNfcG9vbCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNwdiwgJmZ2LT5kZWNvZGUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICBkY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaHdmYywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIGYtPmFjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg aXNfcmdiKSk7CiAKICAgICAvKiBSYW5nZSBjb2RlciBkYXRhICovCiAgICAgUkVUKGZmX2ZmdjFf dmtfaW5pdF9zdGF0ZV90cmFuc2l0aW9uX2RhdGEoJmN0eC0+cywKQEAgLTEwOTAsMjIgKzEwNzks MTYgQEAgc3RhdGljIGludCB2a19kZWNvZGVfZmZ2MV9pbml0KEFWQ29kZWNDb250ZXh0ICphdmN0 eCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWS19GT1JNQVRfVU5E RUZJTkVEKSk7CiAKICAgICAvKiBVcGRhdGUgZGVjb2RlIGdsb2JhbCBkZXNjcmlwdG9ycyAqLwot ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjsgaSsrKSB7IC8qIDE2LzMyIGJpdCAqLwotICAgICAg ICBmb3IgKGludCBqID0gMDsgaiA8IDI7IGorKykgeyAvKiBBQy9Hb2xvbWIgKi8KLSAgICAgICAg ICAgIGZvciAoaW50IGsgPSAwOyBrIDwgMjsgaysrKSB7IC8qIE5vcm1hbC9SR0IgKi8KLSAgICAg ICAgICAgICAgICBSRVQoZmZfdmtfc2hhZGVyX3VwZGF0ZV9kZXNjX2J1ZmZlcigmY3R4LT5zLCAm Y3R4LT5leGVjX3Bvb2wuY29udGV4dHNbMF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJmZ2LT5kZWNvZGVbaV1bal1ba10sIDAsIDAsIDAsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZ2LT5y YW5nZWNvZGVyX3N0YXRpY19idWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMCwgZnYtPnJhbmdlY29kZXJfc3RhdGljX2J1Zi5zaXplLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0ZPUk1B VF9VTkRFRklORUQpKTsKLSAgICAgICAgICAgICAgICBSRVQoZmZfdmtfc2hhZGVyX3VwZGF0ZV9k ZXNjX2J1ZmZlcigmY3R4LT5zLCAmY3R4LT5leGVjX3Bvb2wuY29udGV4dHNbMF0sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZ2LT5kZWNvZGVb aV1bal1ba10sIDAsIDEsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmZ2LT5xdWFudF9idWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgZnYtPnF1YW50X2J1Zi5zaXplLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0ZPUk1BVF9V TkRFRklORUQpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KKyAgICBSRVQoZmZf dmtfc2hhZGVyX3VwZGF0ZV9kZXNjX2J1ZmZlcigmY3R4LT5zLCAmY3R4LT5leGVjX3Bvb2wuY29u dGV4dHNbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZ2LT5k ZWNvZGUsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JmZ2LT5yYW5nZWNvZGVyX3N0YXRpY19idWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMCwgZnYtPnJhbmdlY29kZXJfc3RhdGljX2J1Zi5zaXplLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0ZPUk1BVF9VTkRFRklORUQpKTsKKyAg ICBSRVQoZmZfdmtfc2hhZGVyX3VwZGF0ZV9kZXNjX2J1ZmZlcigmY3R4LT5zLCAmY3R4LT5leGVj X3Bvb2wuY29udGV4dHNbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmZ2LT5kZWNvZGUsIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmZ2LT5xdWFudF9idWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMCwgZnYtPnF1YW50X2J1Zi5zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFZLX0ZPUk1BVF9VTkRFRklORUQpKTsKIAogZmFpbDoKICAgICBzcHYt PnVuaW5pdCgmc3B2KTsKLS0gCjIuNTIuMAoKCkZyb20gZTBlNDk2YjBkYzRhODQwYWEzYjBkZDI4 YzAzZTdkYmNmZmNmMTc1NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTHlubmUgPGRl dkBseW5uZS5lZT4KRGF0ZTogU3VuLCAyMyBOb3YgMjAyNSAyMDowMDoyMSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMDg1LzMwNF0gcHJvcmVzZGVjOiBjYWxsIGZmX2dldF9mb3JtYXQgaWYgdGhlIGlu dGVybGFjaW5nCiBjaGFuZ2VzCgpEZWNvZGVycyBuZWVkIHRvIHRyYWNrIGFsbCBzdGF0ZSB0aGF0 IGh3YWNjZWxzIG1heSBiZSBpbnRlcnN0ZWQgaW4sCmFuZCB0cmlnZ2VyIGEgcmVjb25maWd1cmF0 aW9uIGlmIGl0IGNoYW5nZXMuCi0tLQogbGliYXZjb2RlYy9wcm9yZXNkZWMuYyB8IDUgKysrKy0K IDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9saWJhdmNvZGVjL3Byb3Jlc2RlYy5jIGIvbGliYXZjb2RlYy9wcm9yZXNkZWMuYwppbmRl eCA1YzZiNTA1NTI3Li5iOTcxZDE3OTcyIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Byb3Jlc2Rl Yy5jCisrKyBiL2xpYmF2Y29kZWMvcHJvcmVzZGVjLmMKQEAgLTE4OSw2ICsxODksNyBAQCBzdGF0 aWMgaW50IGRlY29kZV9mcmFtZV9oZWFkZXIoUHJvcmVzQ29udGV4dCAqY3R4LCBjb25zdCB1aW50 OF90ICpidWYsCiAgICAgaW50IHZlcnNpb247CiAgICAgY29uc3QgdWludDhfdCAqcHRyOwogICAg IGVudW0gQVZQaXhlbEZvcm1hdCBwaXhfZm10OworICAgIGludCBvbGRfZnJhbWVfdHlwZSA9IGN0 eC0+ZnJhbWVfdHlwZTsKIAogICAgIGhkcl9zaXplID0gQVZfUkIxNihidWYpOwogICAgIGZmX2Rs b2coYXZjdHgsICJoZWFkZXIgc2l6ZSAlZFxuIiwgaGRyX3NpemUpOwpAQCAtMjUxLDcgKzI1Miw4 IEBAIHN0YXRpYyBpbnQgZGVjb2RlX2ZyYW1lX2hlYWRlcihQcm9yZXNDb250ZXh0ICpjdHgsIGNv bnN0IHVpbnQ4X3QgKmJ1ZiwKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChwaXhfZm10ICE9 IGN0eC0+cGl4X2ZtdCB8fCBkaW1lbnNpb25zX2NoYW5nZWQpIHsKKyAgICBpZiAocGl4X2ZtdCAh PSBjdHgtPnBpeF9mbXQgfHwgZGltZW5zaW9uc19jaGFuZ2VkIHx8CisgICAgICAgIGN0eC0+ZnJh bWVfdHlwZSAhPSBvbGRfZnJhbWVfdHlwZSkgewogI2RlZmluZSBIV0FDQ0VMX01BWCAoQ09ORklH X1BST1JFU19WSURFT1RPT0xCT1hfSFdBQ0NFTCArIENPTkZJR19QUk9SRVNfVlVMS0FOX0hXQUND RUwpCiAjaWYgSFdBQ0NFTF9NQVgKICAgICAgICAgZW51bSBBVlBpeGVsRm9ybWF0IHBpeF9mbXRz W0hXQUNDRUxfTUFYICsgMl0sICpmbXRwID0gcGl4X2ZtdHM7CkBAIC04NTYsNiArODU4LDcgQEAg c3RhdGljIGludCB1cGRhdGVfdGhyZWFkX2NvbnRleHQoQVZDb2RlY0NvbnRleHQgKmRzdCwgY29u c3QgQVZDb2RlY0NvbnRleHQgKnNyYykKICAgICBQcm9yZXNDb250ZXh0ICpjZHN0ID0gZHN0LT5w cml2X2RhdGE7CiAKICAgICBjZHN0LT5waXhfZm10ID0gY3NyYy0+cGl4X2ZtdDsKKyAgICBjZHN0 LT5mcmFtZV90eXBlID0gY3NyYy0+ZnJhbWVfdHlwZTsKIAogICAgIHJldHVybiAwOwogfQotLSAK Mi41Mi4wCgoKRnJvbSAxYzk5Y2VhYjFmY2JhMmE3YmFkNzllNTZhMDBmMDczM2Q2YzY2YWE3IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMeW5uZSA8ZGV2QGx5bm5lLmVlPgpEYXRlOiBT dW4sIDIzIE5vdiAyMDI1IDIwOjA1OjQ3ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwODYvMzA0XSB2 dWxrYW5fcHJvcmVzOiBpbml0aWFsaXplIG9ubHkgdGhlIG5lY2Vzc2FyeSBzaGFkZXJzCiBvbiBp bml0CgotLS0KIGxpYmF2Y29kZWMvdnVsa2FuX3Byb3Jlcy5jIHwgMTg4ICsrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4OCBpbnNlcnRpb25zKCsp LCAxMDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92dWxrYW5fcHJvcmVz LmMgYi9saWJhdmNvZGVjL3Z1bGthbl9wcm9yZXMuYwppbmRleCBiMjUyNTUwZjdjLi4wYzcwNGMz ZDFjIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Z1bGthbl9wcm9yZXMuYworKysgYi9saWJhdmNv ZGVjL3Z1bGthbl9wcm9yZXMuYwpAQCAtNDcsMTEgKzQ3LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUHJv cmVzVnVsa2FuRGVjb2RlUGljdHVyZSB7CiB9IFByb3Jlc1Z1bGthbkRlY29kZVBpY3R1cmU7CiAK IHR5cGVkZWYgc3RydWN0IFByb3Jlc1Z1bGthbkRlY29kZUNvbnRleHQgewotICAgIHN0cnVjdCBQ cm9yZXNWdWxrYW5TaGFkZXJWYXJpYW50cyB7Ci0gICAgICAgIEZGVnVsa2FuU2hhZGVyIHJlc2V0 OwotICAgICAgICBGRlZ1bGthblNoYWRlciB2bGQ7Ci0gICAgICAgIEZGVnVsa2FuU2hhZGVyIGlk Y3Q7Ci0gICAgfSBzaGFkZXJzWzJdOyAvKiBQcm9ncmVzc2l2ZS9pbnRlcmxhY2VkICovCisgICAg RkZWdWxrYW5TaGFkZXIgcmVzZXQ7CisgICAgRkZWdWxrYW5TaGFkZXIgdmxkOworICAgIEZGVnVs a2FuU2hhZGVyIGlkY3Q7CiAKICAgICBBVkJ1ZmZlclBvb2wgKm1ldGFkYXRhX3Bvb2w7CiB9IFBy b3Jlc1Z1bGthbkRlY29kZUNvbnRleHQ7CkBAIC0xNjMsNyArMTYxLDYgQEAgc3RhdGljIGludCB2 a19wcm9yZXNfZW5kX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCkKIAogICAgIFByb3Jlc1Zr UGFyYW1ldGVycyBwZDsKICAgICBGRlZrQnVmZmVyICpzbGljZV9kYXRhLCAqbWV0YWRhdGE7Ci0g ICAgc3RydWN0IFByb3Jlc1Z1bGthblNoYWRlclZhcmlhbnRzICpzaGFkZXJzOwogICAgIFZrSW1h Z2VNZW1vcnlCYXJyaWVyMiBpbWdfYmFyW0FWX05VTV9EQVRBX1BPSU5URVJTXTsKICAgICBWa0J1 ZmZlck1lbW9yeUJhcnJpZXIyIGJ1Zl9iYXJbMl07CiAgICAgaW50IG5iX2ltZ19iYXIgPSAwLCBu Yl9idWZfYmFyID0gMCwgZXJyOwpAQCAtMTc5LDggKzE3Niw2IEBAIHN0YXRpYyBpbnQgdmtfcHJv cmVzX2VuZF9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgpCiAgICAgc2xpY2VfZGF0YSA9IChG RlZrQnVmZmVyICopdnAtPnNsaWNlc19idWYtPmRhdGE7CiAgICAgbWV0YWRhdGEgICA9IChGRlZr QnVmZmVyICopcHAtPm1ldGFkYXRhX2J1Zi0+ZGF0YTsKIAotICAgIHNoYWRlcnMgPSAmcHYtPnNo YWRlcnNbcHItPmZyYW1lX3R5cGUgIT0gMF07Ci0KICAgICBwZCA9IChQcm9yZXNWa1BhcmFtZXRl cnMpIHsKICAgICAgICAgLnNsaWNlX2RhdGEgICAgICAgPSBzbGljZV9kYXRhLT5hZGRyZXNzLAog ICAgICAgICAuYml0c3RyZWFtX3NpemUgICA9IHBwLT5iaXRzdHJlYW1fc2l6ZSwKQEAgLTI1Mywx NCArMjQ4LDE0IEBAIHN0YXRpYyBpbnQgdmtfcHJvcmVzX2VuZF9mcmFtZShBVkNvZGVjQ29udGV4 dCAqYXZjdHgpCiAgICAgbmJfaW1nX2JhciA9IG5iX2J1Zl9iYXIgPSAwOwogCiAgICAgLyogUmVz ZXQgKi8KLSAgICBmZl92a19zaGFkZXJfdXBkYXRlX2ltZ19hcnJheSgmY3R4LT5zLCBleGVjLCAm c2hhZGVycy0+cmVzZXQsCisgICAgZmZfdmtfc2hhZGVyX3VwZGF0ZV9pbWdfYXJyYXkoJmN0eC0+ cywgZXhlYywgJnB2LT5yZXNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw ci0+ZnJhbWUsIHZwLT52aWV3Lm91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAwLCAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0lNQUdFX0xBWU9V VF9HRU5FUkFMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX05VTExfSEFO RExFKTsKIAotICAgIGZmX3ZrX2V4ZWNfYmluZF9zaGFkZXIoJmN0eC0+cywgZXhlYywgJnNoYWRl cnMtPnJlc2V0KTsKLSAgICBmZl92a19zaGFkZXJfdXBkYXRlX3B1c2hfY29uc3QoJmN0eC0+cywg ZXhlYywgJnNoYWRlcnMtPnJlc2V0LAorICAgIGZmX3ZrX2V4ZWNfYmluZF9zaGFkZXIoJmN0eC0+ cywgZXhlYywgJnB2LT5yZXNldCk7CisgICAgZmZfdmtfc2hhZGVyX3VwZGF0ZV9wdXNoX2NvbnN0 KCZjdHgtPnMsIGV4ZWMsICZwdi0+cmVzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFZLX1NIQURFUl9TVEFHRV9DT01QVVRFX0JJVCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMCwgc2l6ZW9mKHBkKSwgJnBkKTsKIApAQCAtMjg0LDI0ICsyNzksMjQg QEAgc3RhdGljIGludCB2a19wcm9yZXNfZW5kX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCkK ICAgICBuYl9pbWdfYmFyID0gbmJfYnVmX2JhciA9IDA7CiAKICAgICAvKiBFbnRyb3B5IGRlY29k ZSAqLwotICAgIGZmX3ZrX3NoYWRlcl91cGRhdGVfZGVzY19idWZmZXIoJmN0eC0+cywgZXhlYywg JnNoYWRlcnMtPnZsZCwKKyAgICBmZl92a19zaGFkZXJfdXBkYXRlX2Rlc2NfYnVmZmVyKCZjdHgt PnMsIGV4ZWMsICZwdi0+dmxkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MCwgMCwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLCAw LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHAtPnNsaWNlX29mZnNldHNf c3osCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWS19GT1JNQVRfVU5ERUZJ TkVEKTsKLSAgICBmZl92a19zaGFkZXJfdXBkYXRlX2Rlc2NfYnVmZmVyKCZjdHgtPnMsIGV4ZWMs ICZzaGFkZXJzLT52bGQsCisgICAgZmZfdmtfc2hhZGVyX3VwZGF0ZV9kZXNjX2J1ZmZlcigmY3R4 LT5zLCBleGVjLCAmcHYtPnZsZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDAsIDEsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YSwg cHAtPnNsaWNlX29mZnNldHNfc3osCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwcC0+bWJfcGFyYW1zX3N6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VktfRk9STUFUX1VOREVGSU5FRCk7Ci0gICAgZmZfdmtfc2hhZGVyX3VwZGF0ZV9pbWdfYXJyYXko JmN0eC0+cywgZXhlYywgJnNoYWRlcnMtPnZsZCwKKyAgICBmZl92a19zaGFkZXJfdXBkYXRlX2lt Z19hcnJheSgmY3R4LT5zLCBleGVjLCAmcHYtPnZsZCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwci0+ZnJhbWUsIHZwLT52aWV3Lm91dCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAwLCAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZL X0lNQUdFX0xBWU9VVF9HRU5FUkFMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFZLX05VTExfSEFORExFKTsKIAotICAgIGZmX3ZrX2V4ZWNfYmluZF9zaGFkZXIoJmN0eC0+cywg ZXhlYywgJnNoYWRlcnMtPnZsZCk7Ci0gICAgZmZfdmtfc2hhZGVyX3VwZGF0ZV9wdXNoX2NvbnN0 KCZjdHgtPnMsIGV4ZWMsICZzaGFkZXJzLT52bGQsCisgICAgZmZfdmtfZXhlY19iaW5kX3NoYWRl cigmY3R4LT5zLCBleGVjLCAmcHYtPnZsZCk7CisgICAgZmZfdmtfc2hhZGVyX3VwZGF0ZV9wdXNo X2NvbnN0KCZjdHgtPnMsIGV4ZWMsICZwdi0+dmxkLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBWS19TSEFERVJfU1RBR0VfQ09NUFVURV9CSVQsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDAsIHNpemVvZihwZCksICZwZCk7CiAKQEAgLTM0MSwxOSArMzM2 LDE5IEBAIHN0YXRpYyBpbnQgdmtfcHJvcmVzX2VuZF9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZj dHgpCiAgICAgbmJfaW1nX2JhciA9IG5iX2J1Zl9iYXIgPSAwOwogCiAgICAgLyogSW52ZXJzZSB0 cmFuc2Zvcm0gKi8KLSAgICBmZl92a19zaGFkZXJfdXBkYXRlX2Rlc2NfYnVmZmVyKCZjdHgtPnMs IGV4ZWMsICZzaGFkZXJzLT5pZGN0LAorICAgIGZmX3ZrX3NoYWRlcl91cGRhdGVfZGVzY19idWZm ZXIoJmN0eC0+cywgZXhlYywgJnB2LT5pZGN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMCwgMCwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1l dGFkYXRhLCBwcC0+c2xpY2Vfb2Zmc2V0c19zeiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBwLT5tYl9wYXJhbXNfc3osCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBWS19GT1JNQVRfVU5ERUZJTkVEKTsKLSAgICBmZl92a19zaGFkZXJfdXBkYXRlX2lt Z19hcnJheSgmY3R4LT5zLCBleGVjLCAmc2hhZGVycy0+aWRjdCwKKyAgICBmZl92a19zaGFkZXJf dXBkYXRlX2ltZ19hcnJheSgmY3R4LT5zLCBleGVjLCAmcHYtPmlkY3QsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcHItPmZyYW1lLCB2cC0+dmlldy5vdXQsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBWS19JTUFHRV9MQVlPVVRfR0VORVJBTCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBWS19OVUxMX0hBTkRMRSk7CiAKLSAgICBmZl92a19leGVjX2JpbmRfc2hhZGVy KCZjdHgtPnMsIGV4ZWMsICZzaGFkZXJzLT5pZGN0KTsKLSAgICBmZl92a19zaGFkZXJfdXBkYXRl X3B1c2hfY29uc3QoJmN0eC0+cywgZXhlYywgJnNoYWRlcnMtPmlkY3QsCisgICAgZmZfdmtfZXhl Y19iaW5kX3NoYWRlcigmY3R4LT5zLCBleGVjLCAmcHYtPmlkY3QpOworICAgIGZmX3ZrX3NoYWRl cl91cGRhdGVfcHVzaF9jb25zdCgmY3R4LT5zLCBleGVjLCAmcHYtPmlkY3QsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFZLX1NIQURFUl9TVEFHRV9DT01QVVRFX0JJVCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgc2l6ZW9mKHBkKSwgJnBkKTsKIApA QCAtNDM5LDEzICs0MzQsMTAgQEAgZmFpbDoKIHN0YXRpYyB2b2lkIHZrX2RlY29kZV9wcm9yZXNf dW5pbml0KEZGVnVsa2FuRGVjb2RlU2hhcmVkICpjdHgpCiB7CiAgICAgUHJvcmVzVnVsa2FuRGVj b2RlQ29udGV4dCAqcHYgPSBjdHgtPnNkX2N0eDsKLSAgICBpbnQgaTsKIAotICAgIGZvciAoaSA9 IDA7IGkgPCBGRl9BUlJBWV9FTEVNUyhwdi0+c2hhZGVycyk7ICsraSkgewotICAgICAgICBmZl92 a19zaGFkZXJfZnJlZSgmY3R4LT5zLCAmcHYtPnNoYWRlcnNbaV0ucmVzZXQpOwotICAgICAgICBm Zl92a19zaGFkZXJfZnJlZSgmY3R4LT5zLCAmcHYtPnNoYWRlcnNbaV0udmxkKTsKLSAgICAgICAg ZmZfdmtfc2hhZGVyX2ZyZWUoJmN0eC0+cywgJnB2LT5zaGFkZXJzW2ldLmlkY3QpOwotICAgIH0K KyAgICBmZl92a19zaGFkZXJfZnJlZSgmY3R4LT5zLCAmcHYtPnJlc2V0KTsKKyAgICBmZl92a19z aGFkZXJfZnJlZSgmY3R4LT5zLCAmcHYtPnZsZCk7CisgICAgZmZfdmtfc2hhZGVyX2ZyZWUoJmN0 eC0+cywgJnB2LT5pZGN0KTsKIAogICAgIGF2X2J1ZmZlcl9wb29sX3VuaW5pdCgmcHYtPm1ldGFk YXRhX3Bvb2wpOwogCkBAIC00NTYsMTIgKzQ0OCwxMyBAQCBzdGF0aWMgaW50IHZrX2RlY29kZV9w cm9yZXNfaW5pdChBVkNvZGVjQ29udGV4dCAqYXZjdHgpCiB7CiAgICAgRkZWdWxrYW5EZWNvZGVD b250ZXh0ICpkZWMgPSBhdmN0eC0+aW50ZXJuYWwtPmh3YWNjZWxfcHJpdl9kYXRhOwogICAgIEZG VnVsa2FuRGVjb2RlU2hhcmVkICAqY3R4ID0gTlVMTDsKKyAgICBQcm9yZXNDb250ZXh0ICAgICAg ICAgICpwciA9IGF2Y3R4LT5wcml2X2RhdGE7CiAKICAgICBBVkhXRnJhbWVzQ29udGV4dCAqb3V0 X2ZyYW1lc19jdHg7CiAgICAgUHJvcmVzVnVsa2FuRGVjb2RlQ29udGV4dCAqcHY7CiAgICAgRkZW a1NQSVJWQ29tcGlsZXIgKnNwdjsKICAgICBGRlZ1bGthbkRlc2NyaXB0b3JTZXRCaW5kaW5nICpk ZXNjX3NldDsKLSAgICBpbnQgbWF4X251bV9tYnMsIGksIGVycjsKKyAgICBpbnQgbWF4X251bV9t YnMsIGVycjsKIAogICAgIG1heF9udW1fbWJzID0gKGF2Y3R4LT5jb2RlZF93aWR0aCA+PiA0KSAq IChhdmN0eC0+Y29kZWRfaGVpZ2h0ID4+IDQpOwogCkBAIC00ODYsODAgKzQ3OSw3NSBAQCBzdGF0 aWMgaW50IHZrX2RlY29kZV9wcm9yZXNfaW5pdChBVkNvZGVjQ29udGV4dCAqYXZjdHgpCiAKICAg ICBjdHgtPnNkX2N0eF9mcmVlID0gdmtfZGVjb2RlX3Byb3Jlc191bmluaXQ7CiAKLSAgICBmb3Ig KGkgPSAwOyBpIDwgRkZfQVJSQVlfRUxFTVMocHYtPnNoYWRlcnMpOyArK2kpIHsgLyogUHJvZ3Jl c3NpdmUvaW50ZXJsYWNlZCAqLwotICAgICAgICBzdHJ1Y3QgUHJvcmVzVnVsa2FuU2hhZGVyVmFy aWFudHMgKnNoYWRlcnMgPSAmcHYtPnNoYWRlcnNbaV07CisgICAgZGVzY19zZXQgPSAoRkZWdWxr YW5EZXNjcmlwdG9yU2V0QmluZGluZyBbXSkgeworICAgICAgICB7CisgICAgICAgICAgICAubmFt ZSAgICAgICA9ICJkc3QiLAorICAgICAgICAgICAgLnR5cGUgICAgICAgPSBWS19ERVNDUklQVE9S X1RZUEVfU1RPUkFHRV9JTUFHRSwKKyAgICAgICAgICAgIC5kaW1lbnNpb25zID0gMiwKKyAgICAg ICAgICAgIC5tZW1fbGF5b3V0ID0gZmZfdmtfc2hhZGVyX3JlcF9mbXQob3V0X2ZyYW1lc19jdHgt PnN3X2Zvcm1hdCwKKyAgICAgICAgICAgIEZGX1ZLX1JFUF9OQVRJVkUpLAorICAgICAgICAgICAg Lm1lbV9xdWFsaSAgPSAid3JpdGVvbmx5IiwKKyAgICAgICAgICAgIC5lbGVtcyAgICAgID0gYXZf cGl4X2ZtdF9jb3VudF9wbGFuZXMob3V0X2ZyYW1lc19jdHgtPnN3X2Zvcm1hdCksCisgICAgICAg ICAgICAuc3RhZ2VzICAgICA9IFZLX1NIQURFUl9TVEFHRV9DT01QVVRFX0JJVCwKKyAgICAgICAg fSwKKyAgICB9OworICAgIFJFVChpbml0X3NoYWRlcihhdmN0eCwgJmN0eC0+cywgJmN0eC0+ZXhl Y19wb29sLCBzcHYsICZwdi0+cmVzZXQsCisgICAgICAgICAgICAgICAgICAgICJwcm9yZXNfZGVj X3Jlc2V0IiwgIm1haW4iLCBkZXNjX3NldCwgMSwKKyAgICAgICAgICAgICAgICAgICAgZmZfc291 cmNlX3Byb3Jlc19yZXNldF9jb21wLCAweDA4MDgwMSwgcHItPmZyYW1lX3R5cGUgIT0gMCkpOwor ICAgIGRlc2Nfc2V0ID0gKEZGVnVsa2FuRGVzY3JpcHRvclNldEJpbmRpbmcgW10pIHsKKyAgICAg ICAgeworICAgICAgICAgICAgLm5hbWUgICAgICAgID0gInNsaWNlX29mZnNldHNfYnVmIiwKKyAg ICAgICAgICAgIC50eXBlICAgICAgICA9IFZLX0RFU0NSSVBUT1JfVFlQRV9TVE9SQUdFX0JVRkZF UiwKKyAgICAgICAgICAgIC5zdGFnZXMgICAgICA9IFZLX1NIQURFUl9TVEFHRV9DT01QVVRFX0JJ VCwKKyAgICAgICAgICAgIC5tZW1fcXVhbGkgICA9ICJyZWFkb25seSIsCisgICAgICAgICAgICAu YnVmX2NvbnRlbnQgPSAidWludDMyX3Qgc2xpY2Vfb2Zmc2V0cyIsCisgICAgICAgICAgICAuYnVm X2VsZW1zICAgPSBtYXhfbnVtX21icyArIDEsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg ICAgICAgIC5uYW1lICAgICAgICA9ICJxdWFudF9pZHhfYnVmIiwKKyAgICAgICAgICAgIC50eXBl ICAgICAgICA9IFZLX0RFU0NSSVBUT1JfVFlQRV9TVE9SQUdFX0JVRkZFUiwKKyAgICAgICAgICAg IC5zdGFnZXMgICAgICA9IFZLX1NIQURFUl9TVEFHRV9DT01QVVRFX0JJVCwKKyAgICAgICAgICAg IC5tZW1fcXVhbGkgICA9ICJ3cml0ZW9ubHkiLAorICAgICAgICAgICAgLmJ1Zl9jb250ZW50ID0g InVpbnQ4X3QgcXVhbnRfaWR4IiwKKyAgICAgICAgICAgIC5idWZfZWxlbXMgICA9IG1heF9udW1f bWJzLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAubmFtZSAgICAgICA9ICJk c3QiLAorICAgICAgICAgICAgLnR5cGUgICAgICAgPSBWS19ERVNDUklQVE9SX1RZUEVfU1RPUkFH RV9JTUFHRSwKKyAgICAgICAgICAgIC5kaW1lbnNpb25zID0gMiwKKyAgICAgICAgICAgIC5tZW1f bGF5b3V0ID0gZmZfdmtfc2hhZGVyX3JlcF9mbXQob3V0X2ZyYW1lc19jdHgtPnN3X2Zvcm1hdCwK KyAgICAgICAgICAgIEZGX1ZLX1JFUF9OQVRJVkUpLAorICAgICAgICAgICAgLm1lbV9xdWFsaSAg PSAid3JpdGVvbmx5IiwKKyAgICAgICAgICAgIC5lbGVtcyAgICAgID0gYXZfcGl4X2ZtdF9jb3Vu dF9wbGFuZXMob3V0X2ZyYW1lc19jdHgtPnN3X2Zvcm1hdCksCisgICAgICAgICAgICAuc3RhZ2Vz ICAgICA9IFZLX1NIQURFUl9TVEFHRV9DT01QVVRFX0JJVCwKKyAgICAgICAgfSwKKyAgICB9Owor ICAgIFJFVChpbml0X3NoYWRlcihhdmN0eCwgJmN0eC0+cywgJmN0eC0+ZXhlY19wb29sLCBzcHYs ICZwdi0+dmxkLAorICAgICAgICAgICAgICAgICAgICAicHJvcmVzX2RlY192bGQiLCAibWFpbiIs IGRlc2Nfc2V0LCAzLAorICAgICAgICAgICAgICAgICAgICBmZl9zb3VyY2VfcHJvcmVzX3ZsZF9j b21wLCAweDA4MDgwMSwgcHItPmZyYW1lX3R5cGUgIT0gMCkpOwogCi0gICAgICAgIGRlc2Nfc2V0 ID0gKEZGVnVsa2FuRGVzY3JpcHRvclNldEJpbmRpbmcgW10pIHsKLSAgICAgICAgICAgIHsKLSAg ICAgICAgICAgICAgICAubmFtZSAgICAgICA9ICJkc3QiLAotICAgICAgICAgICAgICAgIC50eXBl ICAgICAgID0gVktfREVTQ1JJUFRPUl9UWVBFX1NUT1JBR0VfSU1BR0UsCi0gICAgICAgICAgICAg ICAgLmRpbWVuc2lvbnMgPSAyLAotICAgICAgICAgICAgICAgIC5tZW1fbGF5b3V0ID0gZmZfdmtf c2hhZGVyX3JlcF9mbXQob3V0X2ZyYW1lc19jdHgtPnN3X2Zvcm1hdCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZGX1ZLX1JFUF9OQVRJVkUpLAot ICAgICAgICAgICAgICAgIC5tZW1fcXVhbGkgID0gIndyaXRlb25seSIsCi0gICAgICAgICAgICAg ICAgLmVsZW1zICAgICAgPSBhdl9waXhfZm10X2NvdW50X3BsYW5lcyhvdXRfZnJhbWVzX2N0eC0+ c3dfZm9ybWF0KSwKLSAgICAgICAgICAgICAgICAuc3RhZ2VzICAgICA9IFZLX1NIQURFUl9TVEFH RV9DT01QVVRFX0JJVCwKLSAgICAgICAgICAgIH0sCi0gICAgICAgIH07Ci0gICAgICAgIFJFVChp bml0X3NoYWRlcihhdmN0eCwgJmN0eC0+cywgJmN0eC0+ZXhlY19wb29sLCBzcHYsICZzaGFkZXJz LT5yZXNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJwcm9yZXNfZGVjX3Jlc2V0IiwgIm1h aW4iLCBkZXNjX3NldCwgMSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGZmX3NvdXJjZV9wcm9y ZXNfcmVzZXRfY29tcCwgMHgwODA4MDEsIGkpKTsKLQotICAgICAgICBkZXNjX3NldCA9IChGRlZ1 bGthbkRlc2NyaXB0b3JTZXRCaW5kaW5nIFtdKSB7Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgICAgLm5hbWUgICAgICAgID0gInNsaWNlX29mZnNldHNfYnVmIiwKLSAgICAgICAgICAgICAg ICAudHlwZSAgICAgICAgPSBWS19ERVNDUklQVE9SX1RZUEVfU1RPUkFHRV9CVUZGRVIsCi0gICAg ICAgICAgICAgICAgLnN0YWdlcyAgICAgID0gVktfU0hBREVSX1NUQUdFX0NPTVBVVEVfQklULAot ICAgICAgICAgICAgICAgIC5tZW1fcXVhbGkgICA9ICJyZWFkb25seSIsCi0gICAgICAgICAgICAg ICAgLmJ1Zl9jb250ZW50ID0gInVpbnQzMl90IHNsaWNlX29mZnNldHMiLAotICAgICAgICAgICAg ICAgIC5idWZfZWxlbXMgICA9IG1heF9udW1fbWJzICsgMSwKLSAgICAgICAgICAgIH0sCi0gICAg ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgLm5hbWUgICAgICAgID0gInF1YW50X2lkeF9idWYi LAotICAgICAgICAgICAgICAgIC50eXBlICAgICAgICA9IFZLX0RFU0NSSVBUT1JfVFlQRV9TVE9S QUdFX0JVRkZFUiwKLSAgICAgICAgICAgICAgICAuc3RhZ2VzICAgICAgPSBWS19TSEFERVJfU1RB R0VfQ09NUFVURV9CSVQsCi0gICAgICAgICAgICAgICAgLm1lbV9xdWFsaSAgID0gIndyaXRlb25s eSIsCi0gICAgICAgICAgICAgICAgLmJ1Zl9jb250ZW50ID0gInVpbnQ4X3QgcXVhbnRfaWR4IiwK LSAgICAgICAgICAgICAgICAuYnVmX2VsZW1zICAgPSBtYXhfbnVtX21icywKLSAgICAgICAgICAg IH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgLm5hbWUgICAgICAgPSAiZHN0IiwK LSAgICAgICAgICAgICAgICAudHlwZSAgICAgICA9IFZLX0RFU0NSSVBUT1JfVFlQRV9TVE9SQUdF X0lNQUdFLAotICAgICAgICAgICAgICAgIC5kaW1lbnNpb25zID0gMiwKLSAgICAgICAgICAgICAg ICAubWVtX2xheW91dCA9IGZmX3ZrX3NoYWRlcl9yZXBfZm10KG91dF9mcmFtZXNfY3R4LT5zd19m b3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGRl9WS19SRVBfTkFUSVZFKSwKLSAgICAgICAgICAgICAgICAubWVtX3F1YWxpICA9ICJ3cml0 ZW9ubHkiLAotICAgICAgICAgICAgICAgIC5lbGVtcyAgICAgID0gYXZfcGl4X2ZtdF9jb3VudF9w bGFuZXMob3V0X2ZyYW1lc19jdHgtPnN3X2Zvcm1hdCksCi0gICAgICAgICAgICAgICAgLnN0YWdl cyAgICAgPSBWS19TSEFERVJfU1RBR0VfQ09NUFVURV9CSVQsCi0gICAgICAgICAgICB9LAotICAg ICAgICB9OwotICAgICAgICBSRVQoaW5pdF9zaGFkZXIoYXZjdHgsICZjdHgtPnMsICZjdHgtPmV4 ZWNfcG9vbCwgc3B2LCAmc2hhZGVycy0+dmxkLAotICAgICAgICAgICAgICAgICAgICAgICAgInBy b3Jlc19kZWNfdmxkIiwgIm1haW4iLCBkZXNjX3NldCwgMywKLSAgICAgICAgICAgICAgICAgICAg ICAgIGZmX3NvdXJjZV9wcm9yZXNfdmxkX2NvbXAsIDB4MDgwODAxLCBpKSk7Ci0KLSAgICAgICAg ZGVzY19zZXQgPSAoRkZWdWxrYW5EZXNjcmlwdG9yU2V0QmluZGluZyBbXSkgewotICAgICAgICAg ICAgewotICAgICAgICAgICAgICAgIC5uYW1lICAgICAgICA9ICJxdWFudF9pZHhfYnVmIiwKLSAg ICAgICAgICAgICAgICAudHlwZSAgICAgICAgPSBWS19ERVNDUklQVE9SX1RZUEVfU1RPUkFHRV9C VUZGRVIsCi0gICAgICAgICAgICAgICAgLnN0YWdlcyAgICAgID0gVktfU0hBREVSX1NUQUdFX0NP TVBVVEVfQklULAotICAgICAgICAgICAgICAgIC5tZW1fcXVhbGkgICA9ICJyZWFkb25seSIsCi0g ICAgICAgICAgICAgICAgLmJ1Zl9jb250ZW50ID0gInVpbnQ4X3QgcXVhbnRfaWR4IiwKLSAgICAg ICAgICAgICAgICAuYnVmX2VsZW1zICAgPSBtYXhfbnVtX21icywKLSAgICAgICAgICAgIH0sCi0g ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgLm5hbWUgICAgICAgPSAiZHN0IiwKLSAgICAg ICAgICAgICAgICAudHlwZSAgICAgICA9IFZLX0RFU0NSSVBUT1JfVFlQRV9TVE9SQUdFX0lNQUdF LAotICAgICAgICAgICAgICAgIC5kaW1lbnNpb25zID0gMiwKLSAgICAgICAgICAgICAgICAubWVt X2xheW91dCA9IGZmX3ZrX3NoYWRlcl9yZXBfZm10KG91dF9mcmFtZXNfY3R4LT5zd19mb3JtYXQs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGRl9W S19SRVBfTkFUSVZFKSwKLSAgICAgICAgICAgICAgICAuZWxlbXMgICAgICA9IGF2X3BpeF9mbXRf Y291bnRfcGxhbmVzKG91dF9mcmFtZXNfY3R4LT5zd19mb3JtYXQpLAotICAgICAgICAgICAgICAg IC5zdGFnZXMgICAgID0gVktfU0hBREVSX1NUQUdFX0NPTVBVVEVfQklULAotICAgICAgICAgICAg fSwKLSAgICAgICAgfTsKLSAgICAgICAgUkVUKGluaXRfc2hhZGVyKGF2Y3R4LCAmY3R4LT5zLCAm Y3R4LT5leGVjX3Bvb2wsIHNwdiwgJnNoYWRlcnMtPmlkY3QsCi0gICAgICAgICAgICAgICAgICAg ICAgICAicHJvcmVzX2RlY19pZGN0IiwgIm1haW4iLCBkZXNjX3NldCwgMiwKLSAgICAgICAgICAg ICAgICAgICAgICAgIGZmX3NvdXJjZV9wcm9yZXNfaWRjdF9jb21wLCAweDIwMDIwMSwgaSkpOwot ICAgIH0KKyAgICBkZXNjX3NldCA9IChGRlZ1bGthbkRlc2NyaXB0b3JTZXRCaW5kaW5nIFtdKSB7 CisgICAgICAgIHsKKyAgICAgICAgICAgIC5uYW1lICAgICAgICA9ICJxdWFudF9pZHhfYnVmIiwK KyAgICAgICAgICAgIC50eXBlICAgICAgICA9IFZLX0RFU0NSSVBUT1JfVFlQRV9TVE9SQUdFX0JV RkZFUiwKKyAgICAgICAgICAgIC5zdGFnZXMgICAgICA9IFZLX1NIQURFUl9TVEFHRV9DT01QVVRF X0JJVCwKKyAgICAgICAgICAgIC5tZW1fcXVhbGkgICA9ICJyZWFkb25seSIsCisgICAgICAgICAg ICAuYnVmX2NvbnRlbnQgPSAidWludDhfdCBxdWFudF9pZHgiLAorICAgICAgICAgICAgLmJ1Zl9l bGVtcyAgID0gbWF4X251bV9tYnMsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAg IC5uYW1lICAgICAgID0gImRzdCIsCisgICAgICAgICAgICAudHlwZSAgICAgICA9IFZLX0RFU0NS SVBUT1JfVFlQRV9TVE9SQUdFX0lNQUdFLAorICAgICAgICAgICAgLmRpbWVuc2lvbnMgPSAyLAor ICAgICAgICAgICAgLm1lbV9sYXlvdXQgPSBmZl92a19zaGFkZXJfcmVwX2ZtdChvdXRfZnJhbWVz X2N0eC0+c3dfZm9ybWF0LAorICAgICAgICAgICAgRkZfVktfUkVQX05BVElWRSksCisgICAgICAg ICAgICAuZWxlbXMgICAgICA9IGF2X3BpeF9mbXRfY291bnRfcGxhbmVzKG91dF9mcmFtZXNfY3R4 LT5zd19mb3JtYXQpLAorICAgICAgICAgICAgLnN0YWdlcyAgICAgPSBWS19TSEFERVJfU1RBR0Vf Q09NUFVURV9CSVQsCisgICAgICAgIH0sCisgICAgfTsKKyAgICBSRVQoaW5pdF9zaGFkZXIoYXZj dHgsICZjdHgtPnMsICZjdHgtPmV4ZWNfcG9vbCwgc3B2LCAmcHYtPmlkY3QsCisgICAgICAgICAg ICAgICAgICAgICJwcm9yZXNfZGVjX2lkY3QiLCAibWFpbiIsIGRlc2Nfc2V0LCAyLAorICAgICAg ICAgICAgICAgICAgICBmZl9zb3VyY2VfcHJvcmVzX2lkY3RfY29tcCwgMHgyMDAyMDEsIHByLT5m cmFtZV90eXBlICE9IDApKTsKIAogICAgIGVyciA9IDA7CiAKLS0gCjIuNTIuMAoKCkZyb20gNWQ2 NTFmNGJhMjUwNjNjODlkNGQ1MWIwNThhODE0MTYzZTYyZmIwZCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogTHlubmUgPGRldkBseW5uZS5lZT4KRGF0ZTogU3VuLCAyMyBOb3YgMjAyNSAy MDoxMTo1OCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDg3LzMwNF0gcHJvcmVzX3JhdzogY2FsbCBm Zl9nZXRfZm9ybWF0IGlmIHRoZSB2ZXJzaW9uIGNoYW5nZXMKCi0tLQogbGliYXZjb2RlYy9wcm9y ZXNfcmF3LmMgfCA2ICsrKystLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Byb3Jlc19yYXcuYyBiL2xpYmF2 Y29kZWMvcHJvcmVzX3Jhdy5jCmluZGV4IDcwMTc0ODAzMzYuLjAxZjFiYmQyZmIgMTAwNjQ0Ci0t LSBhL2xpYmF2Y29kZWMvcHJvcmVzX3Jhdy5jCisrKyBiL2xpYmF2Y29kZWMvcHJvcmVzX3Jhdy5j CkBAIC0zMjcsOCArMzI3LDggQEAgc3RhdGljIGludCBkZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRl eHQgKmF2Y3R4LAogICAgICAgICAgICAgICAgICAgICAgICAgQVZGcmFtZSAqZnJhbWUsIGludCAq Z290X2ZyYW1lX3B0ciwKICAgICAgICAgICAgICAgICAgICAgICAgIEFWUGFja2V0ICphdnBrdCkK IHsKLSAgICBpbnQgcmV0LCBkaW1lbnNpb25zX2NoYW5nZWQgPSAwOwogICAgIFByb1Jlc1JBV0Nv bnRleHQgKnMgPSBhdmN0eC0+cHJpdl9kYXRhOworICAgIGludCByZXQsIGRpbWVuc2lvbnNfY2hh bmdlZCA9IDAsIG9sZF92ZXJzaW9uID0gcy0+dmVyc2lvbjsKICAgICBERUNMQVJFX0FMSUdORUQo MzIsIHVpbnQ4X3QsIHFtYXQpWzY0XTsKICAgICBtZW1zZXQocW1hdCwgMSwgNjQpOwogCkBAIC0z OTUsNyArMzk1LDggQEAgc3RhdGljIGludCBkZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2 Y3R4LAogICAgIGF2Y3R4LT5jb2RlZF9oZWlnaHQgPSBGRkFMSUdOKGgsIDE2KTsKIAogICAgIGVu dW0gQVZQaXhlbEZvcm1hdCBwaXhfZm10ID0gQVZfUElYX0ZNVF9CQVlFUl9SR0dCMTY7Ci0gICAg aWYgKHBpeF9mbXQgIT0gcy0+cGl4X2ZtdCB8fCBkaW1lbnNpb25zX2NoYW5nZWQpIHsKKyAgICBp ZiAocGl4X2ZtdCAhPSBzLT5waXhfZm10IHx8IGRpbWVuc2lvbnNfY2hhbmdlZCB8fAorICAgICAg ICBzLT52ZXJzaW9uICE9IG9sZF92ZXJzaW9uKSB7CiAgICAgICAgIHMtPnBpeF9mbXQgPSBwaXhf Zm10OwogCiAgICAgICAgIHJldCA9IGdldF9waXhlbF9mb3JtYXQoYXZjdHgsIHBpeF9mbXQpOwpA QCAtNTI1LDYgKzUyNiw3IEBAIHN0YXRpYyBpbnQgdXBkYXRlX3RocmVhZF9jb250ZXh0KEFWQ29k ZWNDb250ZXh0ICpkc3QsIGNvbnN0IEFWQ29kZWNDb250ZXh0ICpzcmMpCiAgICAgUHJvUmVzUkFX Q29udGV4dCAqcmRzdCA9IGRzdC0+cHJpdl9kYXRhOwogCiAgICAgcmRzdC0+cGl4X2ZtdCA9IHJz cmMtPnBpeF9mbXQ7CisgICAgcmRzdC0+dmVyc2lvbiA9IHJzcmMtPnZlcnNpb247CiAKICAgICBy ZXR1cm4gMDsKIH0KLS0gCjIuNTIuMAoKCkZyb20gMGFkOWJjYTA5ODNhZmY5ZDRhMGU3ZjhiNThi OTMxM2JiNWFmZjc0NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTHlubmUgPGRldkBs eW5uZS5lZT4KRGF0ZTogU3VuLCAyMyBOb3YgMjAyNSAyMDoxMDoxMSArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMDg4LzMwNF0gdnVsa2FuX3Byb3JlczogaW5pdGlhbGl6ZSBvbmx5IHRoZSBuZWNlc3Nh cnkgc2hhZGVycwogb24gaW5pdAoKLS0tCiBsaWJhdmNvZGVjL3Z1bGthbl9wcm9yZXNfcmF3LmMg fCA0MSArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MTkgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2Rl Yy92dWxrYW5fcHJvcmVzX3Jhdy5jIGIvbGliYXZjb2RlYy92dWxrYW5fcHJvcmVzX3Jhdy5jCmlu ZGV4IDdhMWY5N2E2NDAuLjc4YmJkZGM2MTQgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdnVsa2Fu X3Byb3Jlc19yYXcuYworKysgYi9saWJhdmNvZGVjL3Z1bGthbl9wcm9yZXNfcmF3LmMKQEAgLTQy LDcgKzQyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUHJvUmVzUkFXVnVsa2FuRGVjb2RlUGljdHVyZSB7 CiB9IFByb1Jlc1JBV1Z1bGthbkRlY29kZVBpY3R1cmU7CiAKIHR5cGVkZWYgc3RydWN0IFByb1Jl c1JBV1Z1bGthbkRlY29kZUNvbnRleHQgewotICAgIEZGVnVsa2FuU2hhZGVyIGRlY29kZVsyXTsK KyAgICBGRlZ1bGthblNoYWRlciBkZWNvZGU7CiAKICAgICBBVkJ1ZmZlclBvb2wgKnRpbGVfZGF0 YV9wb29sOwogCkBAIC0xODcsNyArMTg3LDcgQEAgc3RhdGljIGludCB2a19wcm9yZXNfcmF3X2Vu ZF9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgpCiAgICAgfSk7CiAgICAgbmJfaW1nX2JhciA9 IDA7CiAKLSAgICBGRlZ1bGthblNoYWRlciAqZGVjb2RlX3NoYWRlciA9ICZwcnYtPmRlY29kZVtw cnItPnZlcnNpb25dOworICAgIEZGVnVsa2FuU2hhZGVyICpkZWNvZGVfc2hhZGVyID0gJnBydi0+ ZGVjb2RlOwogICAgIGZmX3ZrX3NoYWRlcl91cGRhdGVfaW1nX2FycmF5KCZjdHgtPnMsIGV4ZWMs IGRlY29kZV9zaGFkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJyLT5m cmFtZSwgdnAtPnZpZXcub3V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAs IDAsCkBAIC0zNDYsOCArMzQ2LDcgQEAgc3RhdGljIHZvaWQgdmtfZGVjb2RlX3Byb3Jlc19yYXdf dW5pbml0KEZGVnVsa2FuRGVjb2RlU2hhcmVkICpjdHgpCiB7CiAgICAgUHJvUmVzUkFXVnVsa2Fu RGVjb2RlQ29udGV4dCAqZnYgPSBjdHgtPnNkX2N0eDsKIAotICAgIGZmX3ZrX3NoYWRlcl9mcmVl KCZjdHgtPnMsICZmdi0+ZGVjb2RlWzBdKTsKLSAgICBmZl92a19zaGFkZXJfZnJlZSgmY3R4LT5z LCAmZnYtPmRlY29kZVsxXSk7CisgICAgZmZfdmtfc2hhZGVyX2ZyZWUoJmN0eC0+cywgJmZ2LT5k ZWNvZGUpOwogCiAgICAgZmZfdmtfZnJlZV9idWYoJmN0eC0+cywgJmZ2LT51bmlmb3JtX2J1Zik7 CiAKQEAgLTM1OSw4ICszNTgsOCBAQCBzdGF0aWMgdm9pZCB2a19kZWNvZGVfcHJvcmVzX3Jhd191 bmluaXQoRkZWdWxrYW5EZWNvZGVTaGFyZWQgKmN0eCkKIHN0YXRpYyBpbnQgdmtfZGVjb2RlX3By b3Jlc19yYXdfaW5pdChBVkNvZGVjQ29udGV4dCAqYXZjdHgpCiB7CiAgICAgaW50IGVycjsKLSAg ICBQcm9SZXNSQVdDb250ZXh0ICpwcnIgPSBhdmN0eC0+cHJpdl9kYXRhOwogICAgIEZGVnVsa2Fu RGVjb2RlQ29udGV4dCAqZGVjID0gYXZjdHgtPmludGVybmFsLT5od2FjY2VsX3ByaXZfZGF0YTsK KyAgICBQcm9SZXNSQVdDb250ZXh0ICpwcnIgPSBhdmN0eC0+cHJpdl9kYXRhOwogCiAgICAgRkZW a1NQSVJWQ29tcGlsZXIgKnNwdiA9IGZmX3ZrX3NwaXJ2X2luaXQoKTsKICAgICBpZiAoIXNwdikg ewpAQCAtMzgyLDggKzM4MSw4IEBAIHN0YXRpYyBpbnQgdmtfZGVjb2RlX3Byb3Jlc19yYXdfaW5p dChBVkNvZGVjQ29udGV4dCAqYXZjdHgpCiAgICAgY3R4LT5zZF9jdHhfZnJlZSA9ICZ2a19kZWNv ZGVfcHJvcmVzX3Jhd191bmluaXQ7CiAKICAgICAvKiBTZXR1cCBkZWNvZGUgc2hhZGVyICovCi0g ICAgUkVUKGluaXRfZGVjb2RlX3NoYWRlcihwcnIsICZjdHgtPnMsICZjdHgtPmV4ZWNfcG9vbCwg c3B2LCAmcHJ2LT5kZWNvZGVbMF0sIDApKTsKLSAgICBSRVQoaW5pdF9kZWNvZGVfc2hhZGVyKHBy ciwgJmN0eC0+cywgJmN0eC0+ZXhlY19wb29sLCBzcHYsICZwcnYtPmRlY29kZVsxXSwgMSkpOwor ICAgIFJFVChpbml0X2RlY29kZV9zaGFkZXIocHJyLCAmY3R4LT5zLCAmY3R4LT5leGVjX3Bvb2ws IHNwdiwgJnBydi0+ZGVjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJyLT52ZXJz aW9uKSk7CiAKICAgICAvKiBTaXplIGluIGJ5dGVzIG9mIGVhY2ggY29kZWJvb2sgdGFibGUgKi8K ICAgICBzaXplX3QgY2Jfc2l6ZVs1XSA9IHsKQEAgLTQ0NywyNCArNDQ2LDIyIEBAIHN0YXRpYyBp bnQgdmtfZGVjb2RlX3Byb3Jlc19yYXdfaW5pdChBVkNvZGVjQ29udGV4dCAqYXZjdHgpCiAgICAg UkVUKGZmX3ZrX3VubWFwX2J1ZmZlcigmY3R4LT5zLCAmcHJ2LT51bmlmb3JtX2J1ZiwgMSkpOwog CiAgICAgLyogRG9uZTsgdXBkYXRlIGRlc2NyaXB0b3JzICovCi0gICAgZm9yIChpbnQgaSA9IDA7 IGkgPCAyOyBpKyspIHsKKyAgICBSRVQoZmZfdmtfc2hhZGVyX3VwZGF0ZV9kZXNjX2J1ZmZlcigm Y3R4LT5zLCAmY3R4LT5leGVjX3Bvb2wuY29udGV4dHNbMF0sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJnBydi0+ZGVjb2RlLCAxLCAwLCAwLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwcnYtPnVuaWZvcm1fYnVmLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDY0KnNpemVvZihmbG9hdCksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVktfRk9STUFUX1VOREVGSU5FRCkp OworICAgIFJFVChmZl92a19zaGFkZXJfdXBkYXRlX2Rlc2NfYnVmZmVyKCZjdHgtPnMsICZjdHgt PmV4ZWNfcG9vbC5jb250ZXh0c1swXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmcHJ2LT5kZWNvZGUsIDEsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJnBydi0+dW5pZm9ybV9idWYsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgNjQqc2l6ZW9mKGZsb2F0KSwgNjQqc2l6ZW9mKHVpbnQ4X3QpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0ZPUk1BVF9VTkRFRklO RUQpKTsKKyAgICBmb3IgKGludCBqID0gMDsgaiA8IDQ7IGorKykKICAgICAgICAgUkVUKGZmX3Zr X3NoYWRlcl91cGRhdGVfZGVzY19idWZmZXIoJmN0eC0+cywgJmN0eC0+ZXhlY19wb29sLmNvbnRl eHRzWzBdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJ2 LT5kZWNvZGVbaV0sIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZwcnYtPmRlY29kZSwgMSwgMiArIGosIDAsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZwcnYtPnVuaWZvcm1fYnVmLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCA2NCpzaXplb2YoZmxvYXQpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYl9vZmZzZXRbal0sIGNi X3NpemVbal0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZL X0ZPUk1BVF9VTkRFRklORUQpKTsKLSAgICAgICAgUkVUKGZmX3ZrX3NoYWRlcl91cGRhdGVfZGVz Y19idWZmZXIoJmN0eC0+cywgJmN0eC0+ZXhlY19wb29sLmNvbnRleHRzWzBdLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJ2LT5kZWNvZGVbaV0sIDEsIDEs IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwcnYtPnVu aWZvcm1fYnVmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2 NCpzaXplb2YoZmxvYXQpLCA2NCpzaXplb2YodWludDhfdCksCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0ZPUk1BVF9VTkRFRklORUQpKTsKLSAgICAgICAg Zm9yIChpbnQgaiA9IDA7IGogPCA0OyBqKyspCi0gICAgICAgICAgICBSRVQoZmZfdmtfc2hhZGVy X3VwZGF0ZV9kZXNjX2J1ZmZlcigmY3R4LT5zLCAmY3R4LT5leGVjX3Bvb2wuY29udGV4dHNbMF0s Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJ2LT5k ZWNvZGVbaV0sIDEsIDIgKyBqLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJnBydi0+dW5pZm9ybV9idWYsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjYl9vZmZzZXRbal0sIGNiX3NpemVbal0sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWS19GT1JNQVRfVU5E RUZJTkVEKSk7Ci0gICAgfQogCiBmYWlsOgogICAgIHNwdi0+dW5pbml0KCZzcHYpOwotLSAKMi41 Mi4wCgoKRnJvbSBhYTAyNzRiNzVjMmU0Yjg2NzQ3NWVkZTE1OGFkNjAyN2U2MmRiNTNlIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMeW5uZSA8ZGV2QGx5bm5lLmVlPgpEYXRlOiBXZWQs IDEyIE5vdiAyMDI1IDE1OjA0OjM4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwODkvMzA0XSB2dWxr YW5fcHJvcmVzX3Jhdzogc3BsaXQgdXAgZGVjb2RpbmcgYW5kIERDVAoKVGhpcyBjb21taXQgb3B0 aW1pemVzIHRoZSBWdWxrYW4gZGVjb2RlciBieSBzcGxpdHRpbmcgdXAgZGVjb2RpbmcKZnJvbSBp RENULCBhbmQgbWVyZ2luZyB0aGUgZmV3IHRhYmxlcyBuZWVkZWQgZGlyZWN0bHkgaW50byB0aGUg c2hhZGVyLgoKVGhlIHNwZWVkdXAgb24gSW50ZWwgaXMgMTB4LgotLS0KIGxpYmF2Y29kZWMvdnVs a2FuL01ha2VmaWxlICAgICAgICAgICAgICAgfCAgIDMgKy0KIGxpYmF2Y29kZWMvdnVsa2FuL3By b3Jlc19yYXcuY29tcCAgICAgICAgfCAzNDcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGxpYmF2 Y29kZWMvdnVsa2FuL3Byb3Jlc19yYXdfZGVjb2RlLmNvbXAgfCAyMzIgKysrKysrKysrKysrKysr CiBsaWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNfcmF3X2lkY3QuY29tcCAgIHwgMTY4ICsrKysrKysr KysrCiBsaWJhdmNvZGVjL3Z1bGthbl9wcm9yZXNfcmF3LmMgICAgICAgICAgIHwgMjk5ICsrKysr KysrKy0tLS0tLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgNTM0IGluc2VydGlvbnMoKyksIDUxNSBk ZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNf cmF3LmNvbXAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNfcmF3 X2RlY29kZS5jb21wCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZjb2RlYy92dWxrYW4vcHJvcmVz X3Jhd19pZGN0LmNvbXAKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z1bGthbi9NYWtlZmlsZSBi L2xpYmF2Y29kZWMvdnVsa2FuL01ha2VmaWxlCmluZGV4IGVjMzAxNWZlZTYuLjE2YTQxMTZlZjEg MTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdnVsa2FuL01ha2VmaWxlCisrKyBiL2xpYmF2Y29kZWMv dnVsa2FuL01ha2VmaWxlCkBAIC0xNSw3ICsxNSw4IEBAIE9CSlMtJChDT05GSUdfRkZWMV9WVUxL QU5fSFdBQ0NFTCkgICs9ICB2dWxrYW4vY29tbW9uLm8gXAogCQkJCQl2dWxrYW4vZmZ2MV9kZWNf c2V0dXAubyB2dWxrYW4vZmZ2MV9kZWMubwogCiBPQkpTLSQoQ09ORklHX1BST1JFU19SQVdfVlVM S0FOX0hXQUNDRUwpICs9IHZ1bGthbi9jb21tb24ubyBcCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZ1bGthbi9wcm9yZXNfcmF3Lm8KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnVsa2FuL3Byb3Jlc19yYXdfZGVjb2RlLm8g XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dWxrYW4vcHJv cmVzX3Jhd19pZGN0Lm8KIAogT0JKUy0kKENPTkZJR19QUk9SRVNfVlVMS0FOX0hXQUNDRUwpICs9 IHZ1bGthbi9jb21tb24ubyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdnVsa2FuL3Byb3Jlc19yZXNldC5vIFwKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnVsa2Fu L3Byb3Jlc19yYXcuY29tcCBiL2xpYmF2Y29kZWMvdnVsa2FuL3Byb3Jlc19yYXcuY29tcApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODllZWNlM2M3ZS4uMDAwMDAwMDAwMAotLS0gYS9s aWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNfcmF3LmNvbXAKKysrIC9kZXYvbnVsbApAQCAtMSwzNDcg KzAsMCBAQAotLyoKLSAqIFByb1JlcyBSQVcgZGVjb2RlcgotICoKLSAqIENvcHlyaWdodCAoYykg MjAyNSBMeW5uZSA8ZGV2QGx5bm5lLmVlPgotICoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZG bXBlZy4KLSAqCi0gKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIEZGbXBlZyBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUgR05VCi0gKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7 IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqIEZvdW5kYXRpb24sIEluYy4s IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBV U0EKLSAqLwotCi0jZGVmaW5lIEkxNih4KSAoaW50MTZfdCh4KSkKLQotI2RlZmluZSBDT01QX0lE IChnbF9Mb2NhbEludm9jYXRpb25JRC56KQotI2RlZmluZSBCTE9DS19JRCAoZ2xfTG9jYWxJbnZv Y2F0aW9uSUQueSkKLSNkZWZpbmUgUk9XX0lEIChnbF9Mb2NhbEludm9jYXRpb25JRC54KQotCi1H ZXRCaXRDb250ZXh0IGdiOwotc2hhcmVkIGZsb2F0IGJ0ZW1wW2dsX1dvcmtHcm91cFNpemUuel1b MTZdWzY0XSA9IHsgfTsKLXNoYXJlZCBmbG9hdCBibG9ja1tnbF9Xb3JrR3JvdXBTaXplLnpdWzE2 XVs2NF07Ci0KLXZvaWQgaWRjdDhfaG9yaXooY29uc3QgdWludCByb3dfaWQpCi17Ci0gICAgZmxv YXQgdDAsIHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB1ODsKLSAgICBmbG9hdCB1MCwgdTEs IHUyLCB1MywgdTQsIHU1LCB1NiwgdTc7Ci0KLSAgICAvKiBJbnB1dCAqLwotICAgIHQwID0gYmxv Y2tbQ09NUF9JRF1bQkxPQ0tfSURdWzgqcm93X2lkICsgMF07Ci0gICAgdTQgPSBibG9ja1tDT01Q X0lEXVtCTE9DS19JRF1bOCpyb3dfaWQgKyAxXTsKLSAgICB0MiA9IGJsb2NrW0NPTVBfSURdW0JM T0NLX0lEXVs4KnJvd19pZCArIDJdOwotICAgIHU2ID0gYmxvY2tbQ09NUF9JRF1bQkxPQ0tfSURd Wzgqcm93X2lkICsgM107Ci0gICAgdDEgPSBibG9ja1tDT01QX0lEXVtCTE9DS19JRF1bOCpyb3df aWQgKyA0XTsKLSAgICB1NSA9IGJsb2NrW0NPTVBfSURdW0JMT0NLX0lEXVs4KnJvd19pZCArIDVd OwotICAgIHQzID0gYmxvY2tbQ09NUF9JRF1bQkxPQ0tfSURdWzgqcm93X2lkICsgNl07Ci0gICAg dTcgPSBibG9ja1tDT01QX0lEXVtCTE9DS19JRF1bOCpyb3dfaWQgKyA3XTsKLQotICAgIC8qIEVt YmVkZGVkIHNjYWxlZCBpbnZlcnNlIDQtcG9pbnQgVHlwZS1JSSBEQ1QgKi8KLSAgICB1MCA9IHQw ICsgdDE7Ci0gICAgdTEgPSB0MCAtIHQxOwotICAgIHUzID0gdDIgKyB0MzsKLSAgICB1MiA9ICh0 MiAtIHQzKSooMS40MTQyMTM1NjIzNzMwOTUwNDg4MDE2ODg3MjQyMDk3ZikgLSB1MzsKLSAgICB0 MCA9IHUwICsgdTM7Ci0gICAgdDMgPSB1MCAtIHUzOwotICAgIHQxID0gdTEgKyB1MjsKLSAgICB0 MiA9IHUxIC0gdTI7Ci0KLSAgICAvKiBFbWJlZGRlZCBzY2FsZWQgaW52ZXJzZSA0LXBvaW50IFR5 cGUtSVYgRFNUICovCi0gICAgdDUgPSB1NSArIHU2OwotICAgIHQ2ID0gdTUgLSB1NjsKLSAgICB0 NyA9IHU0ICsgdTc7Ci0gICAgdDQgPSB1NCAtIHU3OwotICAgIHU3ID0gdDcgKyB0NTsKLSAgICB1 NSA9ICh0NyAtIHQ1KSooMS40MTQyMTM1NjIzNzMwOTUwNDg4MDE2ODg3MjQyMDk3Zik7Ci0gICAg dTggPSAodDQgKyB0NikqKDEuODQ3NzU5MDY1MDIyNTczNTEyMjU2MzY2Mzc4NzkzNmYpOwotICAg IHU0ID0gdTggLSB0NCooMS4wODIzOTIyMDAyOTIzOTM5Njg3OTk0NDY0MTA3MzI4Zik7Ci0gICAg dTYgPSB1OCAtIHQ2KigyLjYxMzEyNTkyOTc1Mjc1MzA1NTcxMzI4NjM0Njg1NDRmKTsKLSAgICB0 NyA9IHU3OwotICAgIHQ2ID0gdDcgLSB1NjsKLSAgICB0NSA9IHQ2ICsgdTU7Ci0gICAgdDQgPSB0 NSAtIHU0OwotCi0gICAgLyogQnV0dGVyZmxpZXMgKi8KLSAgICB1MCA9IHQwICsgdDc7Ci0gICAg dTcgPSB0MCAtIHQ3OwotICAgIHU2ID0gdDEgKyB0NjsKLSAgICB1MSA9IHQxIC0gdDY7Ci0gICAg dTIgPSB0MiArIHQ1OwotICAgIHU1ID0gdDIgLSB0NTsKLSAgICB1NCA9IHQzICsgdDQ7Ci0gICAg dTMgPSB0MyAtIHQ0OwotCi0gICAgLyogT3V0cHV0ICovCi0gICAgYnRlbXBbQ09NUF9JRF1bQkxP Q0tfSURdWzAqOCArIHJvd19pZF0gPSB1MDsKLSAgICBidGVtcFtDT01QX0lEXVtCTE9DS19JRF1b MSo4ICsgcm93X2lkXSA9IHUxOwotICAgIGJ0ZW1wW0NPTVBfSURdW0JMT0NLX0lEXVsyKjggKyBy b3dfaWRdID0gdTI7Ci0gICAgYnRlbXBbQ09NUF9JRF1bQkxPQ0tfSURdWzMqOCArIHJvd19pZF0g PSB1MzsKLSAgICBidGVtcFtDT01QX0lEXVtCTE9DS19JRF1bNCo4ICsgcm93X2lkXSA9IHU0Owot ICAgIGJ0ZW1wW0NPTVBfSURdW0JMT0NLX0lEXVs1KjggKyByb3dfaWRdID0gdTU7Ci0gICAgYnRl bXBbQ09NUF9JRF1bQkxPQ0tfSURdWzYqOCArIHJvd19pZF0gPSB1NjsKLSAgICBidGVtcFtDT01Q X0lEXVtCTE9DS19JRF1bNyo4ICsgcm93X2lkXSA9IHU3OwotfQotCi12b2lkIGlkY3Q4X3ZlcnQo Y29uc3QgdWludCByb3dfaWQpCi17Ci0gICAgZmxvYXQgdDAsIHQxLCB0MiwgdDMsIHQ0LCB0NSwg dDYsIHQ3LCB1ODsKLSAgICBmbG9hdCB1MCwgdTEsIHUyLCB1MywgdTQsIHU1LCB1NiwgdTc7Ci0K LSAgICAvKiBJbnB1dCAqLwotICAgIHQwID0gYnRlbXBbQ09NUF9JRF1bQkxPQ0tfSURdWzgqcm93 X2lkICsgMF0gKyAwLjVmOyAvLyBOT1RFCi0gICAgdTQgPSBidGVtcFtDT01QX0lEXVtCTE9DS19J RF1bOCpyb3dfaWQgKyAxXTsKLSAgICB0MiA9IGJ0ZW1wW0NPTVBfSURdW0JMT0NLX0lEXVs4KnJv d19pZCArIDJdOwotICAgIHU2ID0gYnRlbXBbQ09NUF9JRF1bQkxPQ0tfSURdWzgqcm93X2lkICsg M107Ci0gICAgdDEgPSBidGVtcFtDT01QX0lEXVtCTE9DS19JRF1bOCpyb3dfaWQgKyA0XTsKLSAg ICB1NSA9IGJ0ZW1wW0NPTVBfSURdW0JMT0NLX0lEXVs4KnJvd19pZCArIDVdOwotICAgIHQzID0g YnRlbXBbQ09NUF9JRF1bQkxPQ0tfSURdWzgqcm93X2lkICsgNl07Ci0gICAgdTcgPSBidGVtcFtD T01QX0lEXVtCTE9DS19JRF1bOCpyb3dfaWQgKyA3XTsKLQotICAgIC8qIEVtYmVkZGVkIHNjYWxl ZCBpbnZlcnNlIDQtcG9pbnQgVHlwZS1JSSBEQ1QgKi8KLSAgICB1MCA9IHQwICsgdDE7Ci0gICAg dTEgPSB0MCAtIHQxOwotICAgIHUzID0gdDIgKyB0MzsKLSAgICB1MiA9ICh0MiAtIHQzKSooMS40 MTQyMTM1NjIzNzMwOTUwNDg4MDE2ODg3MjQyMDk3ZikgLSB1MzsKLSAgICB0MCA9IHUwICsgdTM7 Ci0gICAgdDMgPSB1MCAtIHUzOwotICAgIHQxID0gdTEgKyB1MjsKLSAgICB0MiA9IHUxIC0gdTI7 Ci0KLSAgICAvKiBFbWJlZGRlZCBzY2FsZWQgaW52ZXJzZSA0LXBvaW50IFR5cGUtSVYgRFNUICov Ci0gICAgdDUgPSB1NSArIHU2OwotICAgIHQ2ID0gdTUgLSB1NjsKLSAgICB0NyA9IHU0ICsgdTc7 Ci0gICAgdDQgPSB1NCAtIHU3OwotICAgIHU3ID0gdDcgKyB0NTsKLSAgICB1NSA9ICh0NyAtIHQ1 KSooMS40MTQyMTM1NjIzNzMwOTUwNDg4MDE2ODg3MjQyMDk3Zik7Ci0gICAgdTggPSAodDQgKyB0 NikqKDEuODQ3NzU5MDY1MDIyNTczNTEyMjU2MzY2Mzc4NzkzNmYpOwotICAgIHU0ID0gdTggLSB0 NCooMS4wODIzOTIyMDAyOTIzOTM5Njg3OTk0NDY0MTA3MzI4Zik7Ci0gICAgdTYgPSB1OCAtIHQ2 KigyLjYxMzEyNTkyOTc1Mjc1MzA1NTcxMzI4NjM0Njg1NDRmKTsKLSAgICB0NyA9IHU3OwotICAg IHQ2ID0gdDcgLSB1NjsKLSAgICB0NSA9IHQ2ICsgdTU7Ci0gICAgdDQgPSB0NSAtIHU0OwotCi0g ICAgLyogQnV0dGVyZmxpZXMgKi8KLSAgICB1MCA9IHQwICsgdDc7Ci0gICAgdTcgPSB0MCAtIHQ3 OwotICAgIHU2ID0gdDEgKyB0NjsKLSAgICB1MSA9IHQxIC0gdDY7Ci0gICAgdTIgPSB0MiArIHQ1 OwotICAgIHU1ID0gdDIgLSB0NTsKLSAgICB1NCA9IHQzICsgdDQ7Ci0gICAgdTMgPSB0MyAtIHQ0 OwotCi0gICAgLyogT3V0cHV0ICovCi0gICAgYmxvY2tbQ09NUF9JRF1bQkxPQ0tfSURdWzAqOCAr IHJvd19pZF0gPSB1MDsKLSAgICBibG9ja1tDT01QX0lEXVtCTE9DS19JRF1bMSo4ICsgcm93X2lk XSA9IHUxOwotICAgIGJsb2NrW0NPTVBfSURdW0JMT0NLX0lEXVsyKjggKyByb3dfaWRdID0gdTI7 Ci0gICAgYmxvY2tbQ09NUF9JRF1bQkxPQ0tfSURdWzMqOCArIHJvd19pZF0gPSB1MzsKLSAgICBi bG9ja1tDT01QX0lEXVtCTE9DS19JRF1bNCo4ICsgcm93X2lkXSA9IHU0OwotICAgIGJsb2NrW0NP TVBfSURdW0JMT0NLX0lEXVs1KjggKyByb3dfaWRdID0gdTU7Ci0gICAgYmxvY2tbQ09NUF9JRF1b QkxPQ0tfSURdWzYqOCArIHJvd19pZF0gPSB1NjsKLSAgICBibG9ja1tDT01QX0lEXVtCTE9DS19J RF1bNyo4ICsgcm93X2lkXSA9IHU3OwotfQotCi1pbnQxNl90IGdldF92YWx1ZShpbnQxNl90IGNv ZGVib29rKQotewotICAgIGNvbnN0IGludDE2X3Qgc3dpdGNoX2JpdHMgPSBjb2RlYm9vayA+PiA4 OwotICAgIGNvbnN0IGludDE2X3QgcmljZV9vcmRlciAgPSBjb2RlYm9vayAmIEkxNigweGYpOwot ICAgIGNvbnN0IGludDE2X3QgZXhwX29yZGVyICAgPSAoY29kZWJvb2sgPj4gNCkgJiBJMTYoMHhm KTsKLQotICAgIHVpbnQzMl90IGIgPSBzaG93X2JpdHMoZ2IsIDMyKTsKLSAgICBpZiAoZXhwZWN0 RVhUKGIgPT0gMCwgZmFsc2UpKQotICAgICAgICByZXR1cm4gSTE2KDApOwotICAgIGludDE2X3Qg cSA9IEkxNigzMSkgLSBJMTYoZmluZE1TQihiKSk7Ci0KLSAgICBpZiAoKGIgJiAweDgwMDAwMDAw KSAhPSAwKSB7Ci0gICAgICAgIHNraXBfYml0cyhnYiwgMSArIHJpY2Vfb3JkZXIpOwotICAgICAg ICByZXR1cm4gSTE2KChiICYgMHg3RkZGRkZGRikgPj4gKDMxIC0gcmljZV9vcmRlcikpOwotICAg IH0KLQotICAgIGlmIChxIDw9IHN3aXRjaF9iaXRzKSB7Ci0gICAgICAgIHNraXBfYml0cyhnYiwg cSArIHJpY2Vfb3JkZXIgKyAxKTsKLSAgICAgICAgcmV0dXJuIEkxNigocSA8PCByaWNlX29yZGVy KSArCi0gICAgICAgICAgICAgICAgICAgKCgoYiA8PCAocSArIDEpKSA+PiAxKSA+PiAoMzEgLSBy aWNlX29yZGVyKSkpOwotICAgIH0KLQotICAgIGludDE2X3QgYml0cyA9IGV4cF9vcmRlciArIChx IDw8IDEpIC0gc3dpdGNoX2JpdHM7Ci0gICAgc2tpcF9iaXRzKGdiLCBiaXRzKTsKLSAgICByZXR1 cm4gSTE2KChiID4+ICgzMiAtIGJpdHMpKSArCi0gICAgICAgICAgICAgICAoKHN3aXRjaF9iaXRz ICsgMSkgPDwgcmljZV9vcmRlcikgLQotICAgICAgICAgICAgICAgKDEgPDwgZXhwX29yZGVyKSk7 Ci19Ci0KLSNkZWZpbmUgVE9EQ0NPREVCT09LKHgpICgoeCArIDEpID4+IDEpCi0KLXZvaWQgcmVh ZF9kY192YWxzKGNvbnN0IHVpbnQgbmJfYmxvY2tzKQotewotICAgIGludDE2X3QgZGMsIGRjX2Fk ZDsKLSAgICBpbnQxNl90IHByZXZfZGMgPSBJMTYoMCksIHNpZ24gPSBJMTYoMCk7Ci0KLSAgICAv KiBTcGVjaWFsIGhhbmRsaW5nIGZvciBmaXJzdCBibG9jayAqLwotICAgIGRjID0gZ2V0X3ZhbHVl KEkxNig3MDApKTsKLSAgICBwcmV2X2RjID0gKGRjID4+IDEpIF4gLShkYyAmIEkxNigxKSk7Ci0g ICAgYnRlbXBbQ09NUF9JRF1bMF1bMF0gPSBwcmV2X2RjOwotCi0gICAgZm9yICh1aW50IG4gPSAx OyBuIDwgbmJfYmxvY2tzOyBuKyspIHsKLSAgICAgICAgaWYgKGV4cGVjdEVYVChsZWZ0X2JpdHMo Z2IpIDw9IDAsIGZhbHNlKSkKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIHVpbnQ4X3Qg ZGNfY29kZWJvb2s7Ci0gICAgICAgIGlmICgobiAmIDE1KSA9PSAxKQotICAgICAgICAgICAgZGNf Y29kZWJvb2sgPSB1aW50OF90KDEwMCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGRjX2Nv ZGVib29rID0gZGNfY2JbbWluKFRPRENDT0RFQk9PSyhkYyksIDEzIC0gMSldOwotCi0gICAgICAg IGRjID0gZ2V0X3ZhbHVlKGRjX2NvZGVib29rKTsKLQotICAgICAgICBzaWduID0gc2lnbiBeIGRj ICYgaW50MTZfdCgxKTsKLSAgICAgICAgZGNfYWRkID0gKC1zaWduIF4gSTE2KFRPRENDT0RFQk9P SyhkYykpKSArIHNpZ247Ci0gICAgICAgIHNpZ24gPSBJMTYoZGNfYWRkIDwgMCk7Ci0gICAgICAg IHByZXZfZGMgKz0gZGNfYWRkOwotCi0gICAgICAgIGJ0ZW1wW0NPTVBfSURdW25dWzBdID0gcHJl dl9kYzsKLSAgICB9Ci19Ci0KLXZvaWQgcmVhZF9hY192YWxzKGNvbnN0IHVpbnQgbmJfYmxvY2tz KQotewotICAgIGNvbnN0IHVpbnQgbmJfY29kZXMgPSBuYl9ibG9ja3MgPDwgNjsKLSAgICBjb25z dCB1aW50IGxvZzJfbmJfYmxvY2tzID0gZmluZE1TQihuYl9ibG9ja3MpOwotICAgIGNvbnN0IHVp bnQgYmxvY2tfbWFzayA9ICgxIDw8IGxvZzJfbmJfYmxvY2tzKSAtIDE7Ci0KLSAgICBpbnQxNl90 IGFjLCBybiwgbG47Ci0gICAgaW50MTZfdCBhY19jb2RlYm9vayA9IEkxNig0OSk7Ci0gICAgaW50 MTZfdCBybl9jb2RlYm9vayA9IEkxNiggMCk7Ci0gICAgaW50MTZfdCBsbl9jb2RlYm9vayA9IEkx Nig2Nik7Ci0gICAgaW50MTZfdCBzaWduOwotICAgIGludDE2X3QgdmFsOwotCi0gICAgZm9yICh1 aW50IG4gPSBuYl9ibG9ja3M7IG4gPD0gbmJfY29kZXM7KSB7Ci0gICAgICAgIGlmIChleHBlY3RF WFQobGVmdF9iaXRzKGdiKSA8PSAwLCBmYWxzZSkpCi0gICAgICAgICAgICBicmVhazsKLQotICAg ICAgICBsbiA9IGdldF92YWx1ZShsbl9jb2RlYm9vayk7Ci0gICAgICAgIGZvciAodWludCBpID0g MDsgaSA8IGxuOyBpKyspIHsKLSAgICAgICAgICAgIGlmIChleHBlY3RFWFQobGVmdF9iaXRzKGdi KSA8PSAwLCBmYWxzZSkpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGlm IChleHBlY3RFWFQobiA+PSBuYl9jb2RlcywgZmFsc2UpKQotICAgICAgICAgICAgICAgIGJyZWFr OwotCi0gICAgICAgICAgICBhYyA9IGdldF92YWx1ZShhY19jb2RlYm9vayk7Ci0gICAgICAgICAg ICBhY19jb2RlYm9vayA9IGFjX2NiW21pbihhYywgOTUgLSAxKV07Ci0gICAgICAgICAgICBzaWdu ID0gLWludDE2X3QoZ2V0X2JpdChnYikpOwotCi0gICAgICAgICAgICB2YWwgPSAoKGFjICsgSTE2 KDEpKSBeIHNpZ24pIC0gc2lnbjsKLSAgICAgICAgICAgIGJ0ZW1wW0NPTVBfSURdW24gJiBibG9j a19tYXNrXVtuID4+IGxvZzJfbmJfYmxvY2tzXSA9IHZhbDsKLQotICAgICAgICAgICAgbisrOwot ICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGV4cGVjdEVYVChuID49IG5iX2NvZGVzLCBmYWxzZSkp Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBybiA9IGdldF92YWx1ZShybl9jb2RlYm9v ayk7Ci0gICAgICAgIHJuX2NvZGVib29rID0gcm5fY2JbbWluKHJuLCAyOCAtIDEpXTsKLQotICAg ICAgICBuICs9IHJuICsgMTsKLSAgICAgICAgaWYgKGV4cGVjdEVYVChuID49IG5iX2NvZGVzLCBm YWxzZSkpCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBpZiAoZXhwZWN0RVhUKGxlZnRf Yml0cyhnYikgPD0gMCwgZmFsc2UpKQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgYWMg PSBnZXRfdmFsdWUoYWNfY29kZWJvb2spOwotICAgICAgICBzaWduID0gLWludDE2X3QoZ2V0X2Jp dChnYikpOwotCi0gICAgICAgIHZhbCA9ICgoYWMgKyBJMTYoMSkpIF4gc2lnbikgLSBzaWduOwot ICAgICAgICBidGVtcFtDT01QX0lEXVtuICYgYmxvY2tfbWFza11bbiA+PiBsb2cyX25iX2Jsb2Nr c10gPSB2YWw7Ci0KLSAgICAgICAgYWNfY29kZWJvb2sgPSBhY19jYlttaW4oYWMsIDk1IC0gMSld OwotICAgICAgICBsbl9jb2RlYm9vayA9IGxuX2NiW21pbihhYywgMTUgLSAxKV07Ci0KLSAgICAg ICAgbisrOwotICAgIH0KLX0KLQotdm9pZCBtYWluKHZvaWQpCi17Ci0gICAgY29uc3QgdWludCB0 aWxlX2lkeCA9IGdsX1dvcmtHcm91cElELnkqZ2xfTnVtV29ya0dyb3Vwcy54ICsgZ2xfV29ya0dy b3VwSUQueDsKLSAgICBUaWxlRGF0YSB0ZCA9IHRpbGVfZGF0YVt0aWxlX2lkeF07Ci0KLSAgICBp ZiAoZXhwZWN0RVhUKHRkLnBvcy54ID49IGZyYW1lX3NpemUueCwgZmFsc2UpKQotICAgICAgICBy ZXR1cm47Ci0KLSAgICB1aW50NjRfdCBwa3Rfb2Zmc2V0ID0gdWludDY0X3QocGt0X2RhdGEpICsg dGQub2Zmc2V0OwotICAgIHU4dmVjMmJ1ZiBoZHJfZGF0YSA9IHU4dmVjMmJ1Zihwa3Rfb2Zmc2V0 KTsKLSAgICBmbG9hdCBxc2NhbGUgPSBmbG9hdChwYWNrMTYoaGRyX2RhdGFbMF0udi55eCkpIC8g Mi4wZjsKLQotICAgIGl2ZWM0IHNpemUgPSBpdmVjNCh0ZC5zaXplLAotICAgICAgICAgICAgICAg ICAgICAgICBwYWNrMTYoaGRyX2RhdGFbMl0udi55eCksCi0gICAgICAgICAgICAgICAgICAgICAg IHBhY2sxNihoZHJfZGF0YVsxXS52Lnl4KSwKLSAgICAgICAgICAgICAgICAgICAgICAgcGFjazE2 KGhkcl9kYXRhWzNdLnYueXgpKTsKLSAgICBzaXplWzBdID0gc2l6ZVswXSAtIHNpemVbMV0gLSBz aXplWzJdIC0gc2l6ZVszXSAtIDg7Ci0gICAgaWYgKGV4cGVjdEVYVChzaXplWzBdIDwgMCwgZmFs c2UpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjb25zdCBpdmVjMiBvZmZzID0gdGQucG9zICsg aXZlYzIoQ09NUF9JRCAmIDEsIENPTVBfSUQgPj4gMSk7Ci0gICAgY29uc3QgdWludCB3ID0gbWlu KHRpbGVfc2l6ZS54LCBmcmFtZV9zaXplLnggLSB0ZC5wb3MueCkgLyAyOwotICAgIGNvbnN0IHVp bnQgbmJfYmxvY2tzID0gdyAvIDg7Ci0KLSAgICBjb25zdCBpdmVjNCBjb21wX29mZnNldCA9IGl2 ZWM0KHNpemVbMl0gKyBzaXplWzFdICsgc2l6ZVszXSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVbMl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZVsyXSArIHNpemVb MV0pOwotCi0gICAgaWYgKEJMT0NLX0lEID09IDAgJiYgUk9XX0lEID09IDApIHsKLSAgICAgICAg aW5pdF9nZXRfYml0cyhnYiwgdThidWYocGt0X29mZnNldCArIDggKyBjb21wX29mZnNldFtDT01Q X0lEXSksCi0gICAgICAgICAgICAgICAgICAgICAgc2l6ZVtDT01QX0lEXSk7Ci0gICAgICAgIHJl YWRfZGNfdmFscyhuYl9ibG9ja3MpOwotICAgICAgICByZWFkX2FjX3ZhbHMobmJfYmxvY2tzKTsK LSAgICB9Ci0KLSAgICBiYXJyaWVyKCk7Ci0KLSAgICBbW3Vucm9sbF1dCi0gICAgZm9yICh1aW50 IGkgPSBnbF9Mb2NhbEludm9jYXRpb25JRC54OyBpIDwgNjQ7IGkgKz0gZ2xfV29ya0dyb3VwU2l6 ZS54KQotICAgICAgICBibG9ja1tDT01QX0lEXVtCTE9DS19JRF1baV0gPSAoYnRlbXBbQ09NUF9J RF1bQkxPQ0tfSURdW3NjYW5baV1dIC8gMTYzODQuMCkgKgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoZmxvYXQocW1hdFtpXSkgLyAyOTUuMCkgKgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZGN0Xzh4OF9zY2FsZXNbaV0gKiBxc2NhbGU7Ci0K LSAgICBiYXJyaWVyKCk7Ci0KLSNpZmRlZiBQQVJBTExFTF9ST1dTCi0gICAgaWRjdDhfaG9yaXoo Uk9XX0lEKTsKLQotICAgIGJhcnJpZXIoKTsKLQotICAgIGlkY3Q4X3ZlcnQoUk9XX0lEKTsKLSNl bHNlCi0gICAgZm9yICh1aW50IGogPSAwOyBqIDwgODsgaisrKQotICAgICAgICBpZGN0OF9ob3Jp eihqKTsKLQotICAgIGJhcnJpZXIoKTsKLQotICAgIGZvciAodWludCBqID0gMDsgaiA8IDg7IGor KykKLSAgICAgICAgaWRjdDhfdmVydChqKTsKLSNlbmRpZgotCi0gICAgYmFycmllcigpOwotCi0g ICAgW1t1bnJvbGxdXQotICAgIGZvciAodWludCBpID0gZ2xfTG9jYWxJbnZvY2F0aW9uSUQueDsg aSA8IDY0OyBpICs9IGdsX1dvcmtHcm91cFNpemUueCkKLSAgICAgICAgIGltYWdlU3RvcmUoZHN0 LAotICAgICAgICAgICAgICAgICAgICBvZmZzICsgMippdmVjMihCTE9DS19JRCo4ICsgKGkgJiA3 KSwgaSA+PiAzKSwKLSAgICAgICAgICAgICAgICAgICAgdmVjNChibG9ja1tDT01QX0lEXVtCTE9D S19JRF1baV0pKTsKLX0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnVsa2FuL3Byb3Jlc19yYXdf ZGVjb2RlLmNvbXAgYi9saWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNfcmF3X2RlY29kZS5jb21wCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjA4NDQ3ZTM5NjEKLS0tIC9kZXYv bnVsbAorKysgYi9saWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNfcmF3X2RlY29kZS5jb21wCkBAIC0w LDAgKzEsMjMyIEBACisvKgorICogUHJvUmVzIFJBVyBkZWNvZGVyCisgKgorICogQ29weXJpZ2h0 IChjKSAyMDI1IEx5bm5lIDxkZXZAbHlubmUuZWU+CisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQg b2YgRkZtcGVnLgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExp Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZt cGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIEZG bXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwg SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0x MzAxIFVTQQorICovCisKKyNkZWZpbmUgVTgoeCkgKHVpbnQ4X3QoeCkpCisjZGVmaW5lIEkxNih4 KSAoaW50MTZfdCh4KSkKKworI2RlZmluZSBDT01QX0lEIChnbF9Mb2NhbEludm9jYXRpb25JRC54 KQorCitHZXRCaXRDb250ZXh0IGdiOworCisjZGVmaW5lIERDX0NCX01BWCAxMgorY29uc3QgdWlu dDhfdCBkY19jYltEQ19DQl9NQVggKyAxXSA9IHsKKyAgICBVOCgxNiksIFU4KDMzKSwgVTgoNTAp LCBVOCg1MSksIFU4KDUxKSwgVTgoNTEpLAorICAgIFU4KDY4KSwgVTgoNjgpLCBVOCg2OCksIFU4 KDY4KSwgVTgoNjgpLCBVOCg2OCksIFU4KDExOCkKK307CisKKyNkZWZpbmUgQUNfQ0JfTUFYIDk0 Citjb25zdCBpbnQxNl90IGFjX2NiW0FDX0NCX01BWCArIDFdID0geworICAgIEkxNiggIDApLCBJ MTYoNTI5KSwgSTE2KDI3MyksIEkxNigyNzMpLCBJMTYoNTQ2KSwgSTE2KDU0NiksCisgICAgSTE2 KDU0NiksIEkxNigyOTApLCBJMTYoMjkwKSwgSTE2KDI5MCksIEkxNig1NjMpLCBJMTYoNTYzKSwK KyAgICBJMTYoNTYzKSwgSTE2KDU2MyksIEkxNig1NjMpLCBJMTYoNTYzKSwgSTE2KDU2MyksIEkx Nig1NjMpLAorICAgIEkxNigzMDcpLCBJMTYoMzA3KSwgSTE2KDU4MCksIEkxNig1ODApLCBJMTYo NTgwKSwgSTE2KDU4MCksCisgICAgSTE2KDU4MCksIEkxNig1ODApLCBJMTYoNTgwKSwgSTE2KDU4 MCksIEkxNig1ODApLCBJMTYoNTgwKSwKKyAgICBJMTYoNTgwKSwgSTE2KDU4MCksIEkxNig1ODAp LCBJMTYoNTgwKSwgSTE2KDU4MCksIEkxNig1ODApLAorICAgIEkxNig1ODApLCBJMTYoNTgwKSwg STE2KDU4MCksIEkxNig1ODApLCBJMTYoNTgwKSwgSTE2KDU4MCksCisgICAgSTE2KDg1MyksIEkx Nig4NTMpLCBJMTYoODUzKSwgSTE2KDg1MyksIEkxNig4NTMpLCBJMTYoODUzKSwKKyAgICBJMTYo ODUzKSwgSTE2KDg1MyksIEkxNig4NTMpLCBJMTYoODUzKSwgSTE2KDg1MyksIEkxNig4NTMpLAor ICAgIEkxNig4NTMpLCBJMTYoODUzKSwgSTE2KDg1MyksIEkxNig4NTMpLCBJMTYoODUzKSwgSTE2 KDg1MyksCisgICAgSTE2KDg1MyksIEkxNig4NTMpLCBJMTYoODUzKSwgSTE2KDg1MyksIEkxNig4 NTMpLCBJMTYoODUzKSwKKyAgICBJMTYoODUzKSwgSTE2KDg1MyksIEkxNig4NTMpLCBJMTYoODUz KSwgSTE2KDg1MyksIEkxNig4NTMpLAorICAgIEkxNig4NTMpLCBJMTYoODUzKSwgSTE2KDg1Myks IEkxNig4NTMpLCBJMTYoODUzKSwgSTE2KDg1MyksCisgICAgSTE2KDg1MyksIEkxNig4NTMpLCBJ MTYoODUzKSwgSTE2KDg1MyksIEkxNig4NTMpLCBJMTYoODUzKSwKKyAgICBJMTYoODUzKSwgSTE2 KDg1MyksIEkxNig4NTMpLCBJMTYoODUzKSwgSTE2KDg1MyksIEkxNig4NTMpLAorICAgIEkxNig4 NTMpLCBJMTYoODUzKSwgSTE2KDg1MyksIEkxNig4NTMpLCBJMTYoMzU4KQorfTsKKworI2RlZmlu ZSBSTl9DQl9NQVggMjcKK2NvbnN0IGludDE2X3Qgcm5fY2JbUk5fQ0JfTUFYICsgMV0gPSB7Cisg ICAgSTE2KDUxMiksIEkxNigyNTYpLCBJMTYoICAwKSwgSTE2KCAgMCksIEkxNig1MjkpLCBJMTYo NTI5KSwgSTE2KDI3MyksCisgICAgSTE2KDI3MyksIEkxNiggMTcpLCBJMTYoIDE3KSwgSTE2KCAz MyksIEkxNiggMzMpLCBJMTYoNTQ2KSwgSTE2KCAzNCksCisgICAgSTE2KCAzNCksIEkxNiggMzQp LCBJMTYoIDM0KSwgSTE2KCAzNCksIEkxNiggMzQpLCBJMTYoIDM0KSwgSTE2KCAzNCksCisgICAg STE2KCAzNCksIEkxNiggMzQpLCBJMTYoIDM0KSwgSTE2KCAzNCksIEkxNiggNTApLCBJMTYoIDUw KSwgSTE2KCA2OCksCit9OworCisjZGVmaW5lIExOX0NCX01BWCAxNAorY29uc3QgaW50MTZfdCBs bl9jYltMTl9DQl9NQVggKyAxXSA9IHsKKyAgICBJMTYoIDI1NiksIEkxNiggMjczKSwgSTE2KCA1 NDYpLCBJMTYoIDU0NiksIEkxNiggMjkwKSwgSTE2KCAyOTApLCBJMTYoIDEwNzUpLAorICAgIEkx NigxMDc1KSwgSTE2KCA1NjMpLCBJMTYoIDU2MyksIEkxNiggNTYzKSwgSTE2KCA1NjMpLCBJMTYo IDU2MyksIEkxNiggNTYzKSwKKyAgICBJMTYoIDUxKQorfTsKKworaW50MTZfdCBnZXRfdmFsdWUo aW50MTZfdCBjb2RlYm9vaykKK3sKKyAgICBjb25zdCBpbnQxNl90IHN3aXRjaF9iaXRzID0gY29k ZWJvb2sgPj4gODsKKyAgICBjb25zdCBpbnQxNl90IHJpY2Vfb3JkZXIgID0gY29kZWJvb2sgJiBJ MTYoMHhmKTsKKyAgICBjb25zdCBpbnQxNl90IGV4cF9vcmRlciAgID0gKGNvZGVib29rID4+IDQp ICYgSTE2KDB4Zik7CisKKyAgICB1aW50MzJfdCBiID0gc2hvd19iaXRzKGdiLCAzMik7CisgICAg aWYgKGV4cGVjdEVYVChiID09IDAsIGZhbHNlKSkKKyAgICAgICAgcmV0dXJuIEkxNigwKTsKKyAg ICBpbnQxNl90IHEgPSBJMTYoMzEpIC0gSTE2KGZpbmRNU0IoYikpOworCisgICAgaWYgKChiICYg MHg4MDAwMDAwMCkgIT0gMCkgeworICAgICAgICBza2lwX2JpdHMoZ2IsIDEgKyByaWNlX29yZGVy KTsKKyAgICAgICAgcmV0dXJuIEkxNigoYiAmIDB4N0ZGRkZGRkYpID4+ICgzMSAtIHJpY2Vfb3Jk ZXIpKTsKKyAgICB9CisKKyAgICBpZiAocSA8PSBzd2l0Y2hfYml0cykgeworICAgICAgICBza2lw X2JpdHMoZ2IsIHEgKyByaWNlX29yZGVyICsgMSk7CisgICAgICAgIHJldHVybiBJMTYoKHEgPDwg cmljZV9vcmRlcikgKworICAgICAgICAgICAgICAgICAgICgoKGIgPDwgKHEgKyAxKSkgPj4gMSkg Pj4gKDMxIC0gcmljZV9vcmRlcikpKTsKKyAgICB9CisKKyAgICBpbnQxNl90IGJpdHMgPSBleHBf b3JkZXIgKyAocSA8PCAxKSAtIHN3aXRjaF9iaXRzOworICAgIHNraXBfYml0cyhnYiwgYml0cyk7 CisgICAgcmV0dXJuIEkxNigoYiA+PiAoMzIgLSBiaXRzKSkgKworICAgICAgICAgICAgICAgKChz d2l0Y2hfYml0cyArIDEpIDw8IHJpY2Vfb3JkZXIpIC0KKyAgICAgICAgICAgICAgICgxIDw8IGV4 cF9vcmRlcikpOworfQorCisjZGVmaW5lIFRPRENDT0RFQk9PSyh4KSAoKHggKyAxKSA+PiAxKQor Cit2b2lkIHN0b3JlX3ZhbChpdmVjMiBvZmZzLCBpbnQgYmxrLCBpbnQgYywgaW50MTZfdCB2KQor eworICAgIGltYWdlU3RvcmUoZHN0LCBvZmZzICsgMippdmVjMihibGsqOCArIChjICYgNyksIGMg Pj4gMyksIGl2ZWM0KHYpKTsKK30KKwordm9pZCByZWFkX2RjX3ZhbHMoaXZlYzIgb2ZmcywgaW50 IG5iX2Jsb2NrcykKK3sKKyAgICBpbnQxNl90IGRjLCBkY19hZGQ7CisgICAgaW50MTZfdCBwcmV2 X2RjID0gSTE2KDApLCBzaWduID0gSTE2KDApOworCisgICAgLyogU3BlY2lhbCBoYW5kbGluZyBm b3IgZmlyc3QgYmxvY2sgKi8KKyAgICBkYyA9IGdldF92YWx1ZShJMTYoNzAwKSk7CisgICAgcHJl dl9kYyA9IChkYyA+PiAxKSBeIC0oZGMgJiBJMTYoMSkpOworICAgIHN0b3JlX3ZhbChvZmZzLCAw LCAwLCBwcmV2X2RjKTsKKworICAgIGZvciAoaW50IG4gPSAxOyBuIDwgbmJfYmxvY2tzOyBuKysp IHsKKyAgICAgICAgaWYgKGV4cGVjdEVYVChsZWZ0X2JpdHMoZ2IpIDw9IDAsIGZhbHNlKSkKKyAg ICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHVpbnQ4X3QgZGNfY29kZWJvb2s7CisgICAgICAg IGlmICgobiAmIDE1KSA9PSAxKQorICAgICAgICAgICAgZGNfY29kZWJvb2sgPSB1aW50OF90KDEw MCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRjX2NvZGVib29rID0gZGNfY2JbbWluKFRP RENDT0RFQk9PSyhkYyksIDEzIC0gMSldOworCisgICAgICAgIGRjID0gZ2V0X3ZhbHVlKGRjX2Nv ZGVib29rKTsKKworICAgICAgICBzaWduID0gc2lnbiBeIGRjICYgaW50MTZfdCgxKTsKKyAgICAg ICAgZGNfYWRkID0gKC1zaWduIF4gSTE2KFRPRENDT0RFQk9PSyhkYykpKSArIHNpZ247CisgICAg ICAgIHNpZ24gPSBJMTYoZGNfYWRkIDwgMCk7CisgICAgICAgIHByZXZfZGMgKz0gZGNfYWRkOwor CisgICAgICAgIHN0b3JlX3ZhbChvZmZzLCBuLCAwLCBwcmV2X2RjKTsKKyAgICB9Cit9CisKK3Zv aWQgcmVhZF9hY192YWxzKGl2ZWMyIG9mZnMsIGludCBuYl9ibG9ja3MpCit7CisgICAgY29uc3Qg aW50IG5iX2NvZGVzID0gbmJfYmxvY2tzIDw8IDY7CisgICAgY29uc3QgaW50IGxvZzJfbmJfYmxv Y2tzID0gZmluZE1TQihuYl9ibG9ja3MpOworICAgIGNvbnN0IGludCBibG9ja19tYXNrID0gKDEg PDwgbG9nMl9uYl9ibG9ja3MpIC0gMTsKKworICAgIGludDE2X3QgYWMsIHJuLCBsbjsKKyAgICBp bnQxNl90IGFjX2NvZGVib29rID0gSTE2KDQ5KTsKKyAgICBpbnQxNl90IHJuX2NvZGVib29rID0g STE2KCAwKTsKKyAgICBpbnQxNl90IGxuX2NvZGVib29rID0gSTE2KDY2KTsKKyAgICBpbnQxNl90 IHNpZ247CisgICAgaW50MTZfdCB2YWw7CisKKyAgICBmb3IgKGludCBuID0gbmJfYmxvY2tzOyBu IDw9IG5iX2NvZGVzOykgeworICAgICAgICBpZiAoZXhwZWN0RVhUKGxlZnRfYml0cyhnYikgPD0g MCwgZmFsc2UpKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgbG4gPSBnZXRfdmFsdWUo bG5fY29kZWJvb2spOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxuOyBpKyspIHsKKyAg ICAgICAgICAgIGlmIChleHBlY3RFWFQobGVmdF9iaXRzKGdiKSA8PSAwLCBmYWxzZSkpCisgICAg ICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGlmIChleHBlY3RFWFQobiA+PSBuYl9j b2RlcywgZmFsc2UpKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBhYyA9 IGdldF92YWx1ZShhY19jb2RlYm9vayk7CisgICAgICAgICAgICBhY19jb2RlYm9vayA9IGFjX2Ni W21pbihhYywgOTUgLSAxKV07CisgICAgICAgICAgICBzaWduID0gLWludDE2X3QoZ2V0X2JpdChn YikpOworCisgICAgICAgICAgICB2YWwgPSAoKGFjICsgSTE2KDEpKSBeIHNpZ24pIC0gc2lnbjsK KyAgICAgICAgICAgIHN0b3JlX3ZhbChvZmZzLCBuICYgYmxvY2tfbWFzaywgbiA+PiBsb2cyX25i X2Jsb2NrcywgdmFsKTsKKworICAgICAgICAgICAgbisrOworICAgICAgICB9CisKKyAgICAgICAg aWYgKGV4cGVjdEVYVChuID49IG5iX2NvZGVzLCBmYWxzZSkpCisgICAgICAgICAgICBicmVhazsK KworICAgICAgICBybiA9IGdldF92YWx1ZShybl9jb2RlYm9vayk7CisgICAgICAgIHJuX2NvZGVi b29rID0gcm5fY2JbbWluKHJuLCAyOCAtIDEpXTsKKworICAgICAgICBuICs9IHJuICsgMTsKKyAg ICAgICAgaWYgKGV4cGVjdEVYVChuID49IG5iX2NvZGVzLCBmYWxzZSkpCisgICAgICAgICAgICBi cmVhazsKKworICAgICAgICBpZiAoZXhwZWN0RVhUKGxlZnRfYml0cyhnYikgPD0gMCwgZmFsc2Up KQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgYWMgPSBnZXRfdmFsdWUoYWNfY29kZWJv b2spOworICAgICAgICBzaWduID0gLWludDE2X3QoZ2V0X2JpdChnYikpOworCisgICAgICAgIHZh bCA9ICgoYWMgKyBJMTYoMSkpIF4gc2lnbikgLSBzaWduOworICAgICAgICBzdG9yZV92YWwob2Zm cywgbiAmIGJsb2NrX21hc2ssIG4gPj4gbG9nMl9uYl9ibG9ja3MsIHZhbCk7CisKKyAgICAgICAg YWNfY29kZWJvb2sgPSBhY19jYlttaW4oYWMsIDk1IC0gMSldOworICAgICAgICBsbl9jb2RlYm9v ayA9IGxuX2NiW21pbihhYywgMTUgLSAxKV07CisKKyAgICAgICAgbisrOworICAgIH0KK30KKwor dm9pZCBtYWluKHZvaWQpCit7CisgICAgY29uc3QgdWludCB0aWxlX2lkeCA9IGdsX1dvcmtHcm91 cElELnkqZ2xfTnVtV29ya0dyb3Vwcy54ICsgZ2xfV29ya0dyb3VwSUQueDsKKyAgICBUaWxlRGF0 YSB0ZCA9IHRpbGVfZGF0YVt0aWxlX2lkeF07CisKKyAgICBpZiAoZXhwZWN0RVhUKHRkLnBvcy54 ID49IGZyYW1lX3NpemUueCwgZmFsc2UpKQorICAgICAgICByZXR1cm47CisKKyAgICB1aW50NjRf dCBwa3Rfb2Zmc2V0ID0gdWludDY0X3QocGt0X2RhdGEpICsgdGQub2Zmc2V0OworICAgIHU4dmVj MmJ1ZiBoZHJfZGF0YSA9IHU4dmVjMmJ1Zihwa3Rfb2Zmc2V0KTsKKworICAgIGl2ZWM0IHNpemUg PSBpdmVjNCh0ZC5zaXplLAorICAgICAgICAgICAgICAgICAgICAgICBwYWNrMTYoaGRyX2RhdGFb Ml0udi55eCksCisgICAgICAgICAgICAgICAgICAgICAgIHBhY2sxNihoZHJfZGF0YVsxXS52Lnl4 KSwKKyAgICAgICAgICAgICAgICAgICAgICAgcGFjazE2KGhkcl9kYXRhWzNdLnYueXgpKTsKKyAg ICBzaXplWzBdID0gc2l6ZVswXSAtIHNpemVbMV0gLSBzaXplWzJdIC0gc2l6ZVszXSAtIDg7Cisg ICAgaWYgKGV4cGVjdEVYVChzaXplWzBdIDwgMCwgZmFsc2UpKQorICAgICAgICByZXR1cm47CisK KyAgICBjb25zdCBpdmVjMiBvZmZzID0gdGQucG9zICsgaXZlYzIoQ09NUF9JRCAmIDEsIENPTVBf SUQgPj4gMSk7CisgICAgY29uc3QgaW50IHcgPSBtaW4odGlsZV9zaXplLngsIGZyYW1lX3NpemUu eCAtIHRkLnBvcy54KSAvIDI7CisgICAgY29uc3QgaW50IG5iX2Jsb2NrcyA9IHcgLyA4OworCisg ICAgY29uc3QgaXZlYzQgY29tcF9vZmZzZXQgPSBpdmVjNChzaXplWzJdICsgc2l6ZVsxXSArIHNp emVbM10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplWzJdLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNpemVbMl0gKyBzaXplWzFdKTsKKworICAgIGluaXRfZ2V0X2JpdHMo Z2IsIHU4YnVmKHBrdF9vZmZzZXQgKyA4ICsgY29tcF9vZmZzZXRbQ09NUF9JRF0pLAorICAgICAg ICAgICAgICAgICAgc2l6ZVtDT01QX0lEXSk7CisKKyAgICByZWFkX2RjX3ZhbHMob2ZmcywgbmJf YmxvY2tzKTsKKyAgICByZWFkX2FjX3ZhbHMob2ZmcywgbmJfYmxvY2tzKTsKK30KZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMvdnVsa2FuL3Byb3Jlc19yYXdfaWRjdC5jb21wIGIvbGliYXZjb2RlYy92 dWxrYW4vcHJvcmVzX3Jhd19pZGN0LmNvbXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMC4uZTY5Mjc5MjMwMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmF2Y29kZWMvdnVsa2Fu L3Byb3Jlc19yYXdfaWRjdC5jb21wCkBAIC0wLDAgKzEsMTY4IEBACisvKgorICogUHJvUmVzIFJB VyBkZWNvZGVyCisgKgorICogQ29weXJpZ2h0IChjKSAyMDI1IEx5bm5lIDxkZXZAbHlubmUuZWU+ CisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgorICoKKyAqIEZGbXBlZyBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl cgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3Nl ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YworICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl ZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0 aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNkZWZpbmUgQ09NUF9J RCAoZ2xfTG9jYWxJbnZvY2F0aW9uSUQueikKKyNkZWZpbmUgQkxPQ0tfSUQgKGdsX0xvY2FsSW52 b2NhdGlvbklELnkpCisjZGVmaW5lIFJPV19JRCAoZ2xfTG9jYWxJbnZvY2F0aW9uSUQueCkKKwor c2hhcmVkIGZsb2F0IGJsb2Nrc1sxNl1bNCo2NF07CisKK2NvbnN0IGl2ZWMyIHNjYW5bNjRdID0g eworICAgIGl2ZWMyKCAwLCAgMCksIGl2ZWMyKCA0LCAgMCksIGl2ZWMyKCAwLCAgMiksIGl2ZWMy KCA0LCAgMiksCisgICAgaXZlYzIoIDAsICA4KSwgaXZlYzIoIDQsICA4KSwgaXZlYzIoIDYsICA4 KSwgaXZlYzIoIDIsIDEwKSwKKyAgICBpdmVjMiggMiwgIDApLCBpdmVjMiggNiwgIDApLCBpdmVj MiggMiwgIDIpLCBpdmVjMiggNiwgIDIpLAorICAgIGl2ZWMyKCAyLCAgOCksIGl2ZWMyKCA4LCAg OCksIGl2ZWMyKCAwLCAxMCksIGl2ZWMyKCA0LCAxMCksCisgICAgaXZlYzIoIDgsICAwKSwgaXZl YzIoMTIsICAwKSwgaXZlYzIoIDgsICAyKSwgaXZlYzIoMTIsICAyKSwKKyAgICBpdmVjMigxMCwg IDgpLCBpdmVjMigxNCwgIDgpLCBpdmVjMiggNiwgMTApLCBpdmVjMiggMiwgMTIpLAorICAgIGl2 ZWMyKDEwLCAgMCksIGl2ZWMyKDE0LCAgMCksIGl2ZWMyKDEwLCAgMiksIGl2ZWMyKDE0LCAgMiks CisgICAgaXZlYzIoMTIsICA4KSwgaXZlYzIoIDgsIDEwKSwgaXZlYzIoIDAsIDEyKSwgaXZlYzIo IDQsIDEyKSwKKyAgICBpdmVjMiggMCwgIDQpLCBpdmVjMiggNCwgIDQpLCBpdmVjMiggNiwgIDQp LCBpdmVjMiggMiwgIDYpLAorICAgIGl2ZWMyKDEwLCAxMCksIGl2ZWMyKDE0LCAxMCksIGl2ZWMy KCA2LCAxMiksIGl2ZWMyKCAyLCAxNCksCisgICAgaXZlYzIoIDIsICA0KSwgaXZlYzIoIDgsICA0 KSwgaXZlYzIoIDAsICA2KSwgaXZlYzIoIDQsICA2KSwKKyAgICBpdmVjMigxMiwgMTApLCBpdmVj MiggOCwgMTIpLCBpdmVjMiggMCwgMTQpLCBpdmVjMiggNCwgMTQpLAorICAgIGl2ZWMyKDEwLCAg NCksIGl2ZWMyKDE0LCAgNCksIGl2ZWMyKCA2LCAgNiksIGl2ZWMyKDEyLCAgNiksCisgICAgaXZl YzIoMTAsIDEyKSwgaXZlYzIoMTQsIDEyKSwgaXZlYzIoIDYsIDE0KSwgaXZlYzIoMTIsIDE0KSwK KyAgICBpdmVjMigxMiwgIDQpLCBpdmVjMiggOCwgIDYpLCBpdmVjMigxMCwgIDYpLCBpdmVjMigx NCwgIDYpLAorICAgIGl2ZWMyKDEyLCAxMiksIGl2ZWMyKCA4LCAxNCksIGl2ZWMyKDEwLCAxNCks IGl2ZWMyKDE0LCAxNCksCit9OworCitjb25zdCBmbG9hdCBpZGN0X3NjYWxlWzY0XSA9IHsKKyAg ICAwLjEyNTAwMDAwMDAwMDAwMDAsIDAuMTczMzc5OTgwNjY1MjY4NCwgMC4xNjMzMjAzNzA2MDk1 NDcxLCAwLjE0Njk4NDQ1MDMwMjQxOTksCisgICAgMC4xMjUwMDAwMDAwMDAwMDAwLCAwLjA5ODIx MTg2OTc5ODM4NzgsIDAuMDY3NjQ5NTEyNTE4Mjc0NiwgMC4wMzQ0ODc0MjI0MTAzNjc5LAorICAg IDAuMTczMzc5OTgwNjY1MjY4NCwgMC4yNDA0ODQ5NDE1NjM5MTA4LCAwLjIyNjUzMTg2MTU4ODIy MTksIDAuMjAzODczMjg5MjEyMjI5MywKKyAgICAwLjE3MzM3OTk4MDY2NTI2ODQsIDAuMTM2MjIz Nzc2NjkzOTU0NywgMC4wOTM4MzI1NjkzNzk0NjYzLCAwLjA0NzgzNTQyOTA0NTYzNjIsCisgICAg MC4xNjMzMjAzNzA2MDk1NDcxLCAwLjIyNjUzMTg2MTU4ODIyMTksIDAuMjEzMzg4MzQ3NjQ4MzE4 NCwgMC4xOTIwNDQ0MzkxNzc4NTQxLAorICAgIDAuMTYzMzIwMzcwNjA5NTQ3MSwgMC4xMjgzMTk5 OTE3ODk4MzQyLCAwLjA4ODM4ODM0NzY0ODMxODUsIDAuMDQ1MDU5OTg4ODc1NDM0MywKKyAgICAw LjE0Njk4NDQ1MDMwMjQxOTksIDAuMjAzODczMjg5MjEyMjI5MywgMC4xOTIwNDQ0MzkxNzc4NTQx LCAwLjE3MjgzNTQyOTA0NTYzNjIsCisgICAgMC4xNDY5ODQ0NTAzMDI0MTk5LCAwLjExNTQ4NDk0 MTU2MzkxMDksIDAuMDc5NTQ3NDExMjg1ODAyMSwgMC4wNDA1NTI5MTg2MDI2ODIyLAorICAgIDAu MTI1MDAwMDAwMDAwMDAwMCwgMC4xNzMzNzk5ODA2NjUyNjg0LCAwLjE2MzMyMDM3MDYwOTU0NzEs IDAuMTQ2OTg0NDUwMzAyNDE5OSwKKyAgICAwLjEyNTAwMDAwMDAwMDAwMDAsIDAuMDk4MjExODY5 Nzk4Mzg3OCwgMC4wNjc2NDk1MTI1MTgyNzQ2LCAwLjAzNDQ4NzQyMjQxMDM2NzksCisgICAgMC4w OTgyMTE4Njk3OTgzODc4LCAwLjEzNjIyMzc3NjY5Mzk1NDcsIDAuMTI4MzE5OTkxNzg5ODM0Miwg MC4xMTU0ODQ5NDE1NjM5MTA5LAorICAgIDAuMDk4MjExODY5Nzk4Mzg3OCwgMC4wNzcxNjQ1NzA5 NTQzNjM4LCAwLjA1MzE1MTg4MDkyMjk1MzUsIDAuMDI3MDk2NTkzOTE1NTkyNCwKKyAgICAwLjA2 NzY0OTUxMjUxODI3NDYsIDAuMDkzODMyNTY5Mzc5NDY2MywgMC4wODgzODgzNDc2NDgzMTg1LCAw LjA3OTU0NzQxMTI4NTgwMjEsCisgICAgMC4wNjc2NDk1MTI1MTgyNzQ2LCAwLjA1MzE1MTg4MDky Mjk1MzUsIDAuMDM2NjExNjUyMzUxNjgxNiwgMC4wMTg2NjQ0NTg1MTI1ODU3LAorICAgIDAuMDM0 NDg3NDIyNDEwMzY3OSwgMC4wNDc4MzU0MjkwNDU2MzYyLCAwLjA0NTA1OTk4ODg3NTQzNDMsIDAu MDQwNTUyOTE4NjAyNjgyMiwKKyAgICAwLjAzNDQ4NzQyMjQxMDM2NzksIDAuMDI3MDk2NTkzOTE1 NTkyNCwgMC4wMTg2NjQ0NTg1MTI1ODU3LCAwLjAwOTUxNTA1ODQzNjA4OTIsCit9OworCit2b2lk IGlkY3Q4KHVpbnQgYmxvY2ssIHVpbnQgb2Zmc2V0LCB1aW50IHN0cmlkZSkKK3sKKyAgICBmbG9h dCB0MCwgdDEsIHQyLCB0MywgdDQsIHQ1LCB0NiwgdDcsIHU4OworICAgIGZsb2F0IHUwLCB1MSwg dTIsIHUzLCB1NCwgdTUsIHU2LCB1NzsKKworICAgIC8qIElucHV0ICovCisgICAgdDAgPSBibG9j a3NbYmxvY2tdWzAqc3RyaWRlICsgb2Zmc2V0XTsKKyAgICB1NCA9IGJsb2Nrc1tibG9ja11bMSpz dHJpZGUgKyBvZmZzZXRdOworICAgIHQyID0gYmxvY2tzW2Jsb2NrXVsyKnN0cmlkZSArIG9mZnNl dF07CisgICAgdTYgPSBibG9ja3NbYmxvY2tdWzMqc3RyaWRlICsgb2Zmc2V0XTsKKyAgICB0MSA9 IGJsb2Nrc1tibG9ja11bNCpzdHJpZGUgKyBvZmZzZXRdOworICAgIHU1ID0gYmxvY2tzW2Jsb2Nr XVs1KnN0cmlkZSArIG9mZnNldF07CisgICAgdDMgPSBibG9ja3NbYmxvY2tdWzYqc3RyaWRlICsg b2Zmc2V0XTsKKyAgICB1NyA9IGJsb2Nrc1tibG9ja11bNypzdHJpZGUgKyBvZmZzZXRdOworCisg ICAgLyogRW1iZWRkZWQgc2NhbGVkIGludmVyc2UgNC1wb2ludCBUeXBlLUlJIERDVCAqLworICAg IHUwID0gdDAgKyB0MTsKKyAgICB1MSA9IHQwIC0gdDE7CisgICAgdTMgPSB0MiArIHQzOworICAg IHUyID0gKHQyIC0gdDMpKigxLjQxNDIxMzU2MjM3MzA5NTA0ODgwMTY4ODcyNDIwOTdmKSAtIHUz OworICAgIHQwID0gdTAgKyB1MzsKKyAgICB0MyA9IHUwIC0gdTM7CisgICAgdDEgPSB1MSArIHUy OworICAgIHQyID0gdTEgLSB1MjsKKworICAgIC8qIEVtYmVkZGVkIHNjYWxlZCBpbnZlcnNlIDQt cG9pbnQgVHlwZS1JViBEU1QgKi8KKyAgICB0NSA9IHU1ICsgdTY7CisgICAgdDYgPSB1NSAtIHU2 OworICAgIHQ3ID0gdTQgKyB1NzsKKyAgICB0NCA9IHU0IC0gdTc7CisgICAgdTcgPSB0NyArIHQ1 OworICAgIHU1ID0gKHQ3IC0gdDUpKigxLjQxNDIxMzU2MjM3MzA5NTA0ODgwMTY4ODcyNDIwOTdm KTsKKyAgICB1OCA9ICh0NCArIHQ2KSooMS44NDc3NTkwNjUwMjI1NzM1MTIyNTYzNjYzNzg3OTM2 Zik7CisgICAgdTQgPSB1OCAtIHQ0KigxLjA4MjM5MjIwMDI5MjM5Mzk2ODc5OTQ0NjQxMDczMjhm KTsKKyAgICB1NiA9IHU4IC0gdDYqKDIuNjEzMTI1OTI5NzUyNzUzMDU1NzEzMjg2MzQ2ODU0NGYp OworICAgIHQ3ID0gdTc7CisgICAgdDYgPSB0NyAtIHU2OworICAgIHQ1ID0gdDYgKyB1NTsKKyAg ICB0NCA9IHQ1IC0gdTQ7CisKKyAgICAvKiBCdXR0ZXJmbGllcyAqLworICAgIHUwID0gdDAgKyB0 NzsKKyAgICB1NyA9IHQwIC0gdDc7CisgICAgdTYgPSB0MSArIHQ2OworICAgIHUxID0gdDEgLSB0 NjsKKyAgICB1MiA9IHQyICsgdDU7CisgICAgdTUgPSB0MiAtIHQ1OworICAgIHU0ID0gdDMgKyB0 NDsKKyAgICB1MyA9IHQzIC0gdDQ7CisKKyAgICAvKiBPdXRwdXQgKi8KKyAgICBibG9ja3NbYmxv Y2tdWzAqc3RyaWRlICsgb2Zmc2V0XSA9IHUwOworICAgIGJsb2Nrc1tibG9ja11bMSpzdHJpZGUg KyBvZmZzZXRdID0gdTE7CisgICAgYmxvY2tzW2Jsb2NrXVsyKnN0cmlkZSArIG9mZnNldF0gPSB1 MjsKKyAgICBibG9ja3NbYmxvY2tdWzMqc3RyaWRlICsgb2Zmc2V0XSA9IHUzOworICAgIGJsb2Nr c1tibG9ja11bNCpzdHJpZGUgKyBvZmZzZXRdID0gdTQ7CisgICAgYmxvY2tzW2Jsb2NrXVs1KnN0 cmlkZSArIG9mZnNldF0gPSB1NTsKKyAgICBibG9ja3NbYmxvY2tdWzYqc3RyaWRlICsgb2Zmc2V0 XSA9IHU2OworICAgIGJsb2Nrc1tibG9ja11bNypzdHJpZGUgKyBvZmZzZXRdID0gdTc7Cit9CisK K3ZvaWQgbWFpbih2b2lkKQoreworICAgIGNvbnN0IHVpbnQgdGlsZV9pZHggPSBnbF9Xb3JrR3Jv dXBJRC55KmdsX051bVdvcmtHcm91cHMueCArIGdsX1dvcmtHcm91cElELng7CisgICAgVGlsZURh dGEgdGQgPSB0aWxlX2RhdGFbdGlsZV9pZHhdOworCisgICAgaWYgKGV4cGVjdEVYVCh0ZC5wb3Mu eCA+PSBmcmFtZV9zaXplLngsIGZhbHNlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdWludDY0 X3QgcGt0X29mZnNldCA9IHVpbnQ2NF90KHBrdF9kYXRhKSArIHRkLm9mZnNldDsKKyAgICB1OHZl YzJidWYgaGRyX2RhdGEgPSB1OHZlYzJidWYocGt0X29mZnNldCk7CisgICAgZmxvYXQgcXNjYWxl ID0gZmxvYXQocGFjazE2KGhkcl9kYXRhWzBdLnYueXgpKSAvIDIuMGY7CisKKyAgICBjb25zdCBp dmVjMiBvZmZzID0gdGQucG9zICsgaXZlYzIoQ09NUF9JRCAmIDEsIENPTVBfSUQgPj4gMSk7Cisg ICAgY29uc3QgdWludCB3ID0gbWluKHRpbGVfc2l6ZS54LCBmcmFtZV9zaXplLnggLSB0ZC5wb3Mu eCkgLyAyOworICAgIGNvbnN0IHVpbnQgbmJfYmxvY2tzID0gdyAvIDg7CisKKyAgICBbW3Vucm9s bF1dCisgICAgZm9yICh1aW50IGkgPSBnbF9Mb2NhbEludm9jYXRpb25JRC54OyBpIDwgNjQ7IGkg Kz0gZ2xfV29ya0dyb3VwU2l6ZS54KSB7CisgICAgICAgIGludDE2X3QgdiA9IGludDE2X3QoaW1h Z2VMb2FkKGRzdCwgb2ZmcyArIDIqaXZlYzIoQkxPQ0tfSUQqOCwgMCkgKyBzY2FuW2ldKVswXSk7 CisgICAgICAgIGJsb2Nrc1tCTE9DS19JRF1bQ09NUF9JRCo2NCArIGldID0gKHYgLyAxNjM4NC4w KSAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZsb2F0KHFt YXRbaV0pIC8gMjk1LjApICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZGN0X3NjYWxlW2ldICogcXNjYWxlOworICAgIH0KKworICAgIGJhcnJpZXIoKTsKKyAg ICBpZGN0OChCTE9DS19JRCwgQ09NUF9JRCo2NCArIFJPV19JRCo4LCAxKTsKKworICAgIGJsb2Nr c1tCTE9DS19JRF1bQ09NUF9JRCo2NCArIFJPV19JRF0gKz0gMC41OworCisgICAgYmFycmllcigp OworICAgIGlkY3Q4KEJMT0NLX0lELCBDT01QX0lEKjY0ICsgUk9XX0lELCA4KTsKKworICAgIGJh cnJpZXIoKTsKKyAgICBbW3Vucm9sbF1dCisgICAgZm9yICh1aW50IGkgPSBnbF9Mb2NhbEludm9j YXRpb25JRC54OyBpIDwgNjQ7IGkgKz0gZ2xfV29ya0dyb3VwU2l6ZS54KSB7CisgICAgICAgIGlu dCB2ID0gaW50KHJvdW5kKGJsb2Nrc1tCTE9DS19JRF1bQ09NUF9JRCo2NCArIGldKjE2Mzg0LjAp KTsKKyAgICAgICAgaW1hZ2VTdG9yZShkc3QsCisgICAgICAgICAgICAgICAgICAgb2ZmcyArIDIq aXZlYzIoQkxPQ0tfSUQqOCArIChpICYgNyksIGkgPj4gMyksCisgICAgICAgICAgICAgICAgICAg aXZlYzQodikpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnVsa2FuX3Byb3Jl c19yYXcuYyBiL2xpYmF2Y29kZWMvdnVsa2FuX3Byb3Jlc19yYXcuYwppbmRleCA3OGJiZGRjNjE0 Li4zYjZkNjE3ZWVjIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Z1bGthbl9wcm9yZXNfcmF3LmMK KysrIGIvbGliYXZjb2RlYy92dWxrYW5fcHJvcmVzX3Jhdy5jCkBAIC0yNiw3ICsyNiw4IEBACiAj aW5jbHVkZSAibGliYXZ1dGlsL21lbS5oIgogCiBleHRlcm4gY29uc3QgY2hhciAqZmZfc291cmNl X2NvbW1vbl9jb21wOwotZXh0ZXJuIGNvbnN0IGNoYXIgKmZmX3NvdXJjZV9wcm9yZXNfcmF3X2Nv bXA7CitleHRlcm4gY29uc3QgY2hhciAqZmZfc291cmNlX3Byb3Jlc19yYXdfZGVjb2RlX2NvbXA7 CitleHRlcm4gY29uc3QgY2hhciAqZmZfc291cmNlX3Byb3Jlc19yYXdfaWRjdF9jb21wOwogCiBj b25zdCBGRlZ1bGthbkRlY29kZURlc2NyaXB0b3IgZmZfdmtfZGVjX3Byb3Jlc19yYXdfZGVzYyA9 IHsKICAgICAuY29kZWNfaWQgICAgICAgICA9IEFWX0NPREVDX0lEX1BST1JFU19SQVcsCkBAIC00 MywxNyArNDQsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QgUHJvUmVzUkFXVnVsa2FuRGVjb2RlUGljdHVy ZSB7CiAKIHR5cGVkZWYgc3RydWN0IFByb1Jlc1JBV1Z1bGthbkRlY29kZUNvbnRleHQgewogICAg IEZGVnVsa2FuU2hhZGVyIGRlY29kZTsKKyAgICBGRlZ1bGthblNoYWRlciBpZGN0OwogCiAgICAg QVZCdWZmZXJQb29sICp0aWxlX2RhdGFfcG9vbDsKLQotICAgIEZGVmtCdWZmZXIgdW5pZm9ybV9i dWY7CiB9IFByb1Jlc1JBV1Z1bGthbkRlY29kZUNvbnRleHQ7CiAKIHR5cGVkZWYgc3RydWN0IERl Y29kZVB1c2hEYXRhIHsKICAgICBWa0RldmljZUFkZHJlc3MgdGlsZV9kYXRhOwogICAgIFZrRGV2 aWNlQWRkcmVzcyBwa3RfZGF0YTsKLSAgICB1aW50MzJfdCBmcmFtZV9zaXplWzJdOwotICAgIHVp bnQzMl90IHRpbGVfc2l6ZVsyXTsKKyAgICBpbnQzMl90IGZyYW1lX3NpemVbMl07CisgICAgaW50 MzJfdCB0aWxlX3NpemVbMl07CiAgICAgdWludDhfdCAgcW1hdFs2NF07CiB9IERlY29kZVB1c2hE YXRhOwogCkBAIC05Nyw3ICs5Nyw3IEBAIHN0YXRpYyBpbnQgdmtfcHJvcmVzX3Jhd19zdGFydF9m cmFtZShBVkNvZGVjQ29udGV4dCAgICAgICAgICAqYXZjdHgsCiAKICAgICAvKiBQcmVwYXJlIGZy YW1lIHRvIGJlIHVzZWQgKi8KICAgICBlcnIgPSBmZl92a19kZWNvZGVfcHJlcGFyZV9mcmFtZV9z ZHIoZGVjLCBwcnItPmZyYW1lLCB2cCwgMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRkZfVktfUkVQX0ZMT0FULCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRkZfVktfUkVQX0lOVCwgMCk7CiAgICAgaWYgKGVyciA8IDApCiAg ICAgICAgIHJldHVybiBlcnI7CiAKQEAgLTE3Myw5ICsxNzMsMTMgQEAgc3RhdGljIGludCB2a19w cm9yZXNfcmF3X2VuZF9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgpCiAgICAgUkVUKGZmX3Zr X2V4ZWNfYWRkX2RlcF9idWYoJmN0eC0+cywgZXhlYywgJnZwLT5zbGljZXNfYnVmLCAxLCAwKSk7 CiAgICAgdnAtPnNsaWNlc19idWYgPSBOVUxMOwogCisgICAgQVZWa0ZyYW1lICp2a2YgPSAoQVZW a0ZyYW1lICopcHJyLT5mcmFtZS0+ZGF0YVswXTsKKyAgICB2a2YtPmxheW91dFswXSA9IFZLX0lN QUdFX0xBWU9VVF9VTkRFRklORUQ7CisgICAgdmtmLT5hY2Nlc3NbMF0gPSBWS19BQ0NFU1NfMl9O T05FOworCiAgICAgZmZfdmtfZnJhbWVfYmFycmllcigmY3R4LT5zLCBleGVjLCBwcnItPmZyYW1l LCBpbWdfYmFyLCAmbmJfaW1nX2JhciwKICAgICAgICAgICAgICAgICAgICAgICAgIFZLX1BJUEVM SU5FX1NUQUdFXzJfQUxMX0NPTU1BTkRTX0JJVCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFZL X1BJUEVMSU5FX1NUQUdFXzJfQUxMX0NPTU1BTkRTX0JJVCwKKyAgICAgICAgICAgICAgICAgICAg ICAgIFZLX1BJUEVMSU5FX1NUQUdFXzJfQ0xFQVJfQklULAogICAgICAgICAgICAgICAgICAgICAg ICAgVktfQUNDRVNTXzJfVFJBTlNGRVJfV1JJVEVfQklULAogICAgICAgICAgICAgICAgICAgICAg ICAgVktfSU1BR0VfTEFZT1VUX0dFTkVSQUwsCiAgICAgICAgICAgICAgICAgICAgICAgICBWS19R VUVVRV9GQU1JTFlfSUdOT1JFRCk7CkBAIC0xODcsNiArMTkxLDI5IEBAIHN0YXRpYyBpbnQgdmtf cHJvcmVzX3Jhd19lbmRfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogICAgIH0pOwogICAg IG5iX2ltZ19iYXIgPSAwOwogCisgICAgdmstPkNtZENsZWFyQ29sb3JJbWFnZShleGVjLT5idWYs IHZrZi0+aW1nWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVktfSU1BR0VfTEFZT1VU X0dFTkVSQUwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAmKChWa0NsZWFyQ29sb3JWYWx1 ZSkgeyAwIH0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgJigoVmtJbWFnZVN1YnJl c291cmNlUmFuZ2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYXNwZWN0TWFz ayA9IFZLX0lNQUdFX0FTUEVDVF9DT0xPUl9CSVQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLmxldmVsQ291bnQgPSAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5s YXllckNvdW50ID0gMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTsKKworICAgIGZm X3ZrX2ZyYW1lX2JhcnJpZXIoJmN0eC0+cywgZXhlYywgcHJyLT5mcmFtZSwgaW1nX2JhciwgJm5i X2ltZ19iYXIsCisgICAgICAgICAgICAgICAgICAgICAgICBWS19QSVBFTElORV9TVEFHRV8yX0NM RUFSX0JJVCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFZLX1BJUEVMSU5FX1NUQUdFXzJfQ09N UFVURV9TSEFERVJfQklULAorICAgICAgICAgICAgICAgICAgICAgICAgVktfQUNDRVNTXzJfU0hB REVSX1NUT1JBR0VfV1JJVEVfQklULAorICAgICAgICAgICAgICAgICAgICAgICAgVktfSU1BR0Vf TEFZT1VUX0dFTkVSQUwsCisgICAgICAgICAgICAgICAgICAgICAgICBWS19RVUVVRV9GQU1JTFlf SUdOT1JFRCk7CisKKyAgICB2ay0+Q21kUGlwZWxpbmVCYXJyaWVyMihleGVjLT5idWYsICYoVmtE ZXBlbmRlbmN5SW5mbykgeworICAgICAgICAuc1R5cGUgPSBWS19TVFJVQ1RVUkVfVFlQRV9ERVBF TkRFTkNZX0lORk8sCisgICAgICAgIC5wSW1hZ2VNZW1vcnlCYXJyaWVycyA9IGltZ19iYXIsCisg ICAgICAgIC5pbWFnZU1lbW9yeUJhcnJpZXJDb3VudCA9IG5iX2ltZ19iYXIsCisgICAgfSk7Cisg ICAgbmJfaW1nX2JhciA9IDA7CisKICAgICBGRlZ1bGthblNoYWRlciAqZGVjb2RlX3NoYWRlciA9 ICZwcnYtPmRlY29kZTsKICAgICBmZl92a19zaGFkZXJfdXBkYXRlX2ltZ19hcnJheSgmY3R4LT5z LCBleGVjLCBkZWNvZGVfc2hhZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHByci0+ZnJhbWUsIHZwLT52aWV3Lm91dCwKQEAgLTIxMiw2ICsyMzksMzQgQEAgc3RhdGljIGlu dCB2a19wcm9yZXNfcmF3X2VuZF9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgpCiAKICAgICB2 ay0+Q21kRGlzcGF0Y2goZXhlYy0+YnVmLCBwcnItPm5iX3R3LCBwcnItPm5iX3RoLCAxKTsKIAor ICAgIGZmX3ZrX2ZyYW1lX2JhcnJpZXIoJmN0eC0+cywgZXhlYywgcHJyLT5mcmFtZSwgaW1nX2Jh ciwgJm5iX2ltZ19iYXIsCisgICAgICAgICAgICAgICAgICAgICAgICBWS19QSVBFTElORV9TVEFH RV8yX0NPTVBVVEVfU0hBREVSX0JJVCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFZLX1BJUEVM SU5FX1NUQUdFXzJfQ09NUFVURV9TSEFERVJfQklULAorICAgICAgICAgICAgICAgICAgICAgICAg VktfQUNDRVNTXzJfU0hBREVSX1NUT1JBR0VfUkVBRF9CSVQgfAorICAgICAgICAgICAgICAgICAg ICAgICAgVktfQUNDRVNTXzJfU0hBREVSX1NUT1JBR0VfV1JJVEVfQklULAorICAgICAgICAgICAg ICAgICAgICAgICAgVktfSU1BR0VfTEFZT1VUX0dFTkVSQUwsCisgICAgICAgICAgICAgICAgICAg ICAgICBWS19RVUVVRV9GQU1JTFlfSUdOT1JFRCk7CisKKyAgICBGRlZ1bGthblNoYWRlciAqaWRj dF9zaGFkZXIgPSAmcHJ2LT5pZGN0OworICAgIGZmX3ZrX3NoYWRlcl91cGRhdGVfaW1nX2FycmF5 KCZjdHgtPnMsIGV4ZWMsIGlkY3Rfc2hhZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHByci0+ZnJhbWUsIHZwLT52aWV3Lm91dCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0lN QUdFX0xBWU9VVF9HRU5FUkFMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZL X05VTExfSEFORExFKTsKKyAgICBmZl92a19leGVjX2JpbmRfc2hhZGVyKCZjdHgtPnMsIGV4ZWMs IGlkY3Rfc2hhZGVyKTsKKyAgICBmZl92a19zaGFkZXJfdXBkYXRlX3B1c2hfY29uc3QoJmN0eC0+ cywgZXhlYywgaWRjdF9zaGFkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFZLX1NIQURFUl9TVEFHRV9DT01QVVRFX0JJVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMCwgc2l6ZW9mKHBkX2RlY29kZSksICZwZF9kZWNvZGUpOworCisgICAgdmstPkNt ZFBpcGVsaW5lQmFycmllcjIoZXhlYy0+YnVmLCAmKFZrRGVwZW5kZW5jeUluZm8pIHsKKyAgICAg ICAgLnNUeXBlID0gVktfU1RSVUNUVVJFX1RZUEVfREVQRU5ERU5DWV9JTkZPLAorICAgICAgICAu cEltYWdlTWVtb3J5QmFycmllcnMgPSBpbWdfYmFyLAorICAgICAgICAuaW1hZ2VNZW1vcnlCYXJy aWVyQ291bnQgPSBuYl9pbWdfYmFyLAorICAgIH0pOworICAgIG5iX2ltZ19iYXIgPSAwOworCisg ICAgdmstPkNtZERpc3BhdGNoKGV4ZWMtPmJ1ZiwgcHJyLT5uYl90dywgcHJyLT5uYl90aCwgMSk7 CisKICAgICBlcnIgPSBmZl92a19leGVjX3N1Ym1pdCgmY3R4LT5zLCBleGVjKTsKICAgICBpZiAo ZXJyIDwgMCkKICAgICAgICAgcmV0dXJuIGVycjsKQEAgLTIyMCwzNCArMjc1LDExIEBAIGZhaWw6 CiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgaW5pdF9kZWNvZGVfc2hhZGVyKFByb1Jl c1JBV0NvbnRleHQgKnByciwgRkZWdWxrYW5Db250ZXh0ICpzLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRkZWa0V4ZWNQb29sICpwb29sLCBGRlZrU1BJUlZDb21waWxlciAqc3B2LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkZWdWxrYW5TaGFkZXIgKnNoZCwgaW50IHZl cnNpb24pCitzdGF0aWMgaW50IGFkZF9jb21tb25fZGF0YShBVkNvZGVjQ29udGV4dCAqYXZjdHgs IEZGVnVsa2FuQ29udGV4dCAqcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEZGVnVsa2Fu U2hhZGVyICpzaGQsIGludCB3cml0ZW9ubHkpCiB7Ci0gICAgaW50IGVycjsKLSAgICBGRlZ1bGth bkRlc2NyaXB0b3JTZXRCaW5kaW5nICpkZXNjX3NldDsKLSAgICBpbnQgcGFyYWxsZWxfcm93cyA9 IDE7Ci0KLSAgICB1aW50OF90ICpzcHZfZGF0YTsKLSAgICBzaXplX3Qgc3B2X2xlbjsKLSAgICB2 b2lkICpzcHZfb3BhcXVlID0gTlVMTDsKLQotICAgIGlmIChzLT5wcm9wcy5wcm9wZXJ0aWVzLmxp bWl0cy5tYXhDb21wdXRlV29ya0dyb3VwSW52b2NhdGlvbnMgPCA1MTIgfHwKLSAgICAgICAgcy0+ cHJvcHMucHJvcGVydGllcy5kZXZpY2VUeXBlID09IFZLX1BIWVNJQ0FMX0RFVklDRV9UWVBFX0lO VEVHUkFURURfR1BVKQotICAgICAgICBwYXJhbGxlbF9yb3dzID0gMDsKLQotICAgIFJFVChmZl92 a19zaGFkZXJfaW5pdChzLCBzaGQsICJwcm9yZXNfcmF3IiwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgVktfU0hBREVSX1NUQUdFX0NPTVBVVEVfQklULAotICAgICAgICAgICAgICAgICAgICAg ICAgICAoY29uc3QgY2hhciAqW10pIHsgIkdMX0VYVF9idWZmZXJfcmVmZXJlbmNlIiwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHTF9FWFRfYnVmZmVyX3Jl ZmVyZW5jZTIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IkdMX0VYVF9udWxsX2luaXRpYWxpemVyIiB9LCAzLAotICAgICAgICAgICAgICAgICAgICAgICAg ICBwYXJhbGxlbF9yb3dzID8gOCA6IDEgLyogOHg4IHRyYW5zZm9ybXMsIDgtcG9pbnQgd2lkdGgg Ki8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb24gPT0gMCA/IDggOiAxNiAvKiBI b3Jpem9udGFsIGJsb2NrcyAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgNCAvKiBDb21w b25lbnRzICovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAwKSk7Ci0KLSAgICBpZiAocGFy YWxsZWxfcm93cykKLSAgICAgICAgR0xTTEMoMCwgI2RlZmluZSBQQVJBTExFTF9ST1dTICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgIEFWSFdGcmFt ZXNDb250ZXh0ICpkZWNfZnJhbWVzX2N0eDsKKyAgICBkZWNfZnJhbWVzX2N0eCA9IChBVkhXRnJh bWVzQ29udGV4dCAqKWF2Y3R4LT5od19mcmFtZXNfY3R4LT5kYXRhOwogCiAgICAgLyogQ29tbW9u IGNvZGVjIGhlYWRlciAqLwogICAgIEdMU0xEKGZmX3NvdXJjZV9jb21tb25fY29tcCk7CkBAIC0y NjEsNzMgKzI5Myw4NCBAQCBzdGF0aWMgaW50IGluaXRfZGVjb2RlX3NoYWRlcihQcm9SZXNSQVdD b250ZXh0ICpwcnIsIEZGVnVsa2FuQ29udGV4dCAqcywKICAgICBHTFNMQygwLCBsYXlvdXQocHVz aF9jb25zdGFudCwgc2NhbGFyKSB1bmlmb3JtIHB1c2hDb25zdGFudHMgeyAgICAgICAgICAgICAg ICAgICApOwogICAgIEdMU0xDKDEsICAgIFRpbGVEYXRhIHRpbGVfZGF0YTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgR0xTTEMoMSwgICAg dThidWYgcGt0X2RhdGE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKTsKLSAgICBHTFNMQygxLCAgICB1dmVjMiBmcmFtZV9zaXplOyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotICAgIEdMU0xD KDEsICAgIHV2ZWMyIHRpbGVfc2l6ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICk7CisgICAgR0xTTEMoMSwgICAgaXZlYzIgZnJhbWVfc2l6ZTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAg ICBHTFNMQygxLCAgICBpdmVjMiB0aWxlX3NpemU7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgIEdMU0xDKDEsICAgIHVpbnQ4X3QgcW1h dFs2NF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICk7CiAgICAgR0xTTEMoMCwgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICBHTFNMQygwLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICApOwogICAgIGZmX3ZrX3NoYWRlcl9hZGRfcHVzaF9jb25zdChzaGQsIDAsIHNpemVv ZihEZWNvZGVQdXNoRGF0YSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX1NI QURFUl9TVEFHRV9DT01QVVRFX0JJVCk7CiAKKyAgICBGRlZ1bGthbkRlc2NyaXB0b3JTZXRCaW5k aW5nICpkZXNjX3NldDsKICAgICBkZXNjX3NldCA9IChGRlZ1bGthbkRlc2NyaXB0b3JTZXRCaW5k aW5nIFtdKSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIC5uYW1lICAgICAgID0gImRzdCIsCiAg ICAgICAgICAgICAudHlwZSAgICAgICA9IFZLX0RFU0NSSVBUT1JfVFlQRV9TVE9SQUdFX0lNQUdF LAotICAgICAgICAgICAgLm1lbV9sYXlvdXQgPSAicjE2IiwKLSAgICAgICAgICAgIC5tZW1fcXVh bGkgID0gIndyaXRlb25seSIsCisgICAgICAgICAgICAubWVtX2xheW91dCA9IGZmX3ZrX3NoYWRl cl9yZXBfZm10KGRlY19mcmFtZXNfY3R4LT5zd19mb3JtYXQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZGX1ZLX1JFUF9JTlQpLAorICAgICAgICAgICAg Lm1lbV9xdWFsaSAgPSB3cml0ZW9ubHkgPyAid3JpdGVvbmx5IiA6IE5VTEwsCiAgICAgICAgICAg ICAuZGltZW5zaW9ucyA9IDIsCiAgICAgICAgICAgICAuc3RhZ2VzICAgICA9IFZLX1NIQURFUl9T VEFHRV9DT01QVVRFX0JJVCwKICAgICAgICAgfSwKICAgICB9OwotICAgIFJFVChmZl92a19zaGFk ZXJfYWRkX2Rlc2NyaXB0b3Jfc2V0KHMsIHNoZCwgZGVzY19zZXQsIDEsIDAsIDApKTsKIAotICAg IGRlc2Nfc2V0ID0gKEZGVnVsa2FuRGVzY3JpcHRvclNldEJpbmRpbmcgW10pIHsKLSAgICAgICAg ewotICAgICAgICAgICAgLm5hbWUgICAgICAgID0gImRjdF9zY2FsZV9idWYiLAotICAgICAgICAg ICAgLnR5cGUgICAgICAgID0gVktfREVTQ1JJUFRPUl9UWVBFX1VOSUZPUk1fQlVGRkVSLAotICAg ICAgICAgICAgLnN0YWdlcyAgICAgID0gVktfU0hBREVSX1NUQUdFX0NPTVBVVEVfQklULAotICAg ICAgICAgICAgLm1lbV9sYXlvdXQgID0gInNjYWxhciIsCi0gICAgICAgICAgICAuYnVmX2NvbnRl bnQgPSAiZmxvYXQgaWRjdF84eDhfc2NhbGVzWzY0XTsiLAotICAgICAgICB9LAotICAgICAgICB7 Ci0gICAgICAgICAgICAubmFtZSAgICAgICAgPSAic2Nhbl9idWYiLAotICAgICAgICAgICAgLnR5 cGUgICAgICAgID0gVktfREVTQ1JJUFRPUl9UWVBFX1VOSUZPUk1fQlVGRkVSLAotICAgICAgICAg ICAgLnN0YWdlcyAgICAgID0gVktfU0hBREVSX1NUQUdFX0NPTVBVVEVfQklULAotICAgICAgICAg ICAgLm1lbV9sYXlvdXQgID0gInNjYWxhciIsCi0gICAgICAgICAgICAuYnVmX2NvbnRlbnQgPSAi dWludDhfdCBzY2FuWzY0XTsiLAotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAu bmFtZSAgICAgICAgPSAiZGNfY2JfYnVmIiwKLSAgICAgICAgICAgIC50eXBlICAgICAgICA9IFZL X0RFU0NSSVBUT1JfVFlQRV9VTklGT1JNX0JVRkZFUiwKLSAgICAgICAgICAgIC5zdGFnZXMgICAg ICA9IFZLX1NIQURFUl9TVEFHRV9DT01QVVRFX0JJVCwKLSAgICAgICAgICAgIC5tZW1fbGF5b3V0 ICA9ICJzY2FsYXIiLAotICAgICAgICAgICAgLmJ1Zl9jb250ZW50ID0gInVpbnQ4X3QgZGNfY2Jb MTNdOyIsCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIC5uYW1lICAgICAgICA9 ICJhY19jYl9idWYiLAotICAgICAgICAgICAgLnR5cGUgICAgICAgID0gVktfREVTQ1JJUFRPUl9U WVBFX1VOSUZPUk1fQlVGRkVSLAotICAgICAgICAgICAgLnN0YWdlcyAgICAgID0gVktfU0hBREVS X1NUQUdFX0NPTVBVVEVfQklULAotICAgICAgICAgICAgLm1lbV9sYXlvdXQgID0gInNjYWxhciIs Ci0gICAgICAgICAgICAuYnVmX2NvbnRlbnQgPSAiaW50MTZfdCBhY19jYls5NV07IiwKLSAgICAg ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgLm5hbWUgICAgICAgID0gInJuX2NiX2J1ZiIs Ci0gICAgICAgICAgICAudHlwZSAgICAgICAgPSBWS19ERVNDUklQVE9SX1RZUEVfVU5JRk9STV9C VUZGRVIsCi0gICAgICAgICAgICAuc3RhZ2VzICAgICAgPSBWS19TSEFERVJfU1RBR0VfQ09NUFVU RV9CSVQsCi0gICAgICAgICAgICAubWVtX2xheW91dCAgPSAic2NhbGFyIiwKLSAgICAgICAgICAg IC5idWZfY29udGVudCA9ICJpbnQxNl90IHJuX2NiWzI4XTsiLAotICAgICAgICB9LAotICAgICAg ICB7Ci0gICAgICAgICAgICAubmFtZSAgICAgICAgPSAibG5fY2JfYnVmIiwKLSAgICAgICAgICAg IC50eXBlICAgICAgICA9IFZLX0RFU0NSSVBUT1JfVFlQRV9VTklGT1JNX0JVRkZFUiwKLSAgICAg ICAgICAgIC5zdGFnZXMgICAgICA9IFZLX1NIQURFUl9TVEFHRV9DT01QVVRFX0JJVCwKLSAgICAg ICAgICAgIC5tZW1fbGF5b3V0ICA9ICJzY2FsYXIiLAotICAgICAgICAgICAgLmJ1Zl9jb250ZW50 ID0gImludDE2X3QgbG5fY2JbMTVdOyIsCi0gICAgICAgIH0sCi0gICAgfTsKLSAgICBSRVQoZmZf dmtfc2hhZGVyX2FkZF9kZXNjcmlwdG9yX3NldChzLCBzaGQsIGRlc2Nfc2V0LCA2LCAxLCAwKSk7 CisgICAgcmV0dXJuIGZmX3ZrX3NoYWRlcl9hZGRfZGVzY3JpcHRvcl9zZXQocywgc2hkLCBkZXNj X3NldCwgMSwgMCwgMCk7Cit9CiAKLSAgICBHTFNMRChmZl9zb3VyY2VfcHJvcmVzX3Jhd19jb21w KTsKK3N0YXRpYyBpbnQgaW5pdF9kZWNvZGVfc2hhZGVyKEFWQ29kZWNDb250ZXh0ICphdmN0eCwg RkZWdWxrYW5Db250ZXh0ICpzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkZWa0V4 ZWNQb29sICpwb29sLCBGRlZrU1BJUlZDb21waWxlciAqc3B2LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRkZWdWxrYW5TaGFkZXIgKnNoZCwgaW50IHZlcnNpb24pCit7CisgICAgaW50 IGVycjsKKyAgICB1aW50OF90ICpzcHZfZGF0YTsKKyAgICBzaXplX3Qgc3B2X2xlbjsKKyAgICB2 b2lkICpzcHZfb3BhcXVlID0gTlVMTDsKKworICAgIFJFVChmZl92a19zaGFkZXJfaW5pdChzLCBz aGQsICJwcm9yZXNfcmF3IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVktfU0hBREVSX1NU QUdFX0NPTVBVVEVfQklULAorICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciAq W10pIHsgIkdMX0VYVF9idWZmZXJfcmVmZXJlbmNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJHTF9FWFRfYnVmZmVyX3JlZmVyZW5jZTIiLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdMX0VYVF9udWxsX2luaXRp YWxpemVyIiB9LCAzLAorICAgICAgICAgICAgICAgICAgICAgICAgICA0LCAxLCAxLCAwKSk7CisK KyAgICBSRVQoYWRkX2NvbW1vbl9kYXRhKGF2Y3R4LCBzLCBzaGQsIDEpKTsKKworICAgIEdMU0xE KGZmX3NvdXJjZV9wcm9yZXNfcmF3X2RlY29kZV9jb21wKTsKKworICAgIFJFVChzcHYtPmNvbXBp bGVfc2hhZGVyKHMsIHNwdiwgc2hkLCAmc3B2X2RhdGEsICZzcHZfbGVuLCAibWFpbiIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJnNwdl9vcGFxdWUpKTsKKyAgICBSRVQoZmZfdmtfc2hh ZGVyX2xpbmsocywgc2hkLCBzcHZfZGF0YSwgc3B2X2xlbiwgIm1haW4iKSk7CisKKyAgICBSRVQo ZmZfdmtfc2hhZGVyX3JlZ2lzdGVyX2V4ZWMocywgcG9vbCwgc2hkKSk7CisKK2ZhaWw6CisgICAg aWYgKHNwdl9vcGFxdWUpCisgICAgICAgIHNwdi0+ZnJlZV9zaGFkZXIoc3B2LCAmc3B2X29wYXF1 ZSk7CisKKyAgICByZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IGluaXRfaWRjdF9zaGFkZXIo QVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBGRlZ1bGthbkNvbnRleHQgKnMsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRkZWa0V4ZWNQb29sICpwb29sLCBGRlZrU1BJUlZDb21waWxlciAqc3B2 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZGVnVsa2FuU2hhZGVyICpzaGQsIGludCB2 ZXJzaW9uKQoreworICAgIGludCBlcnI7CisgICAgdWludDhfdCAqc3B2X2RhdGE7CisgICAgc2l6 ZV90IHNwdl9sZW47CisgICAgdm9pZCAqc3B2X29wYXF1ZSA9IE5VTEw7CisKKyAgICBSRVQoZmZf dmtfc2hhZGVyX2luaXQocywgc2hkLCAicHJvcmVzX3JhdyIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgIFZLX1NIQURFUl9TVEFHRV9DT01QVVRFX0JJVCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgKGNvbnN0IGNoYXIgKltdKSB7ICJHTF9FWFRfYnVmZmVyX3JlZmVyZW5jZSIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR0xfRVhUX2J1ZmZlcl9y ZWZlcmVuY2UyIiB9LCAyLAorICAgICAgICAgICAgICAgICAgICAgICAgICA4LAorICAgICAgICAg ICAgICAgICAgICAgICAgICB2ZXJzaW9uID09IDAgPyA4IDogMTYgLyogSG9yaXpvbnRhbCBibG9j a3MgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgIDQgLyogQ29tcG9uZW50cyAqLywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgMCkpOworCisgICAgUkVUKGFkZF9jb21tb25fZGF0YShh dmN0eCwgcywgc2hkLCAwKSk7CisKKyAgICBHTFNMRChmZl9zb3VyY2VfcHJvcmVzX3Jhd19pZGN0 X2NvbXApOwogCiAgICAgUkVUKHNwdi0+Y29tcGlsZV9zaGFkZXIocywgc3B2LCBzaGQsICZzcHZf ZGF0YSwgJnNwdl9sZW4sICJtYWluIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3B2 X29wYXF1ZSkpOwpAQCAtMzQ3LDggKzM5MCw3IEBAIHN0YXRpYyB2b2lkIHZrX2RlY29kZV9wcm9y ZXNfcmF3X3VuaW5pdChGRlZ1bGthbkRlY29kZVNoYXJlZCAqY3R4KQogICAgIFByb1Jlc1JBV1Z1 bGthbkRlY29kZUNvbnRleHQgKmZ2ID0gY3R4LT5zZF9jdHg7CiAKICAgICBmZl92a19zaGFkZXJf ZnJlZSgmY3R4LT5zLCAmZnYtPmRlY29kZSk7Ci0KLSAgICBmZl92a19mcmVlX2J1ZigmY3R4LT5z LCAmZnYtPnVuaWZvcm1fYnVmKTsKKyAgICBmZl92a19zaGFkZXJfZnJlZSgmY3R4LT5zLCAmZnYt PmlkY3QpOwogCiAgICAgYXZfYnVmZmVyX3Bvb2xfdW5pbml0KCZmdi0+dGlsZV9kYXRhX3Bvb2wp OwogCkBAIC0zODEsODcgKzQyMywxMCBAQCBzdGF0aWMgaW50IHZrX2RlY29kZV9wcm9yZXNfcmF3 X2luaXQoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogICAgIGN0eC0+c2RfY3R4X2ZyZWUgPSAmdmtf ZGVjb2RlX3Byb3Jlc19yYXdfdW5pbml0OwogCiAgICAgLyogU2V0dXAgZGVjb2RlIHNoYWRlciAq LwotICAgIFJFVChpbml0X2RlY29kZV9zaGFkZXIocHJyLCAmY3R4LT5zLCAmY3R4LT5leGVjX3Bv b2wsIHNwdiwgJnBydi0+ZGVjb2RlLAorICAgIFJFVChpbml0X2RlY29kZV9zaGFkZXIoYXZjdHgs ICZjdHgtPnMsICZjdHgtPmV4ZWNfcG9vbCwgc3B2LCAmcHJ2LT5kZWNvZGUsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwcnItPnZlcnNpb24pKTsKLQotICAgIC8qIFNpemUgaW4gYnl0ZXMg b2YgZWFjaCBjb2RlYm9vayB0YWJsZSAqLwotICAgIHNpemVfdCBjYl9zaXplWzVdID0gewotICAg ICAgICAxMypzaXplb2YodWludDhfdCksCi0gICAgICAgIDk1KnNpemVvZihpbnQxNl90KSwKLSAg ICAgICAgMjgqc2l6ZW9mKGludDE2X3QpLAotICAgICAgICAxNSpzaXplb2YoaW50MTZfdCksCi0g ICAgfTsKLQotICAgIC8qIE9mZnNldCBvZiBlYWNoIGNvZGVib29rIHRhYmxlICovCi0gICAgc2l6 ZV90IGNiX29mZnNldFs1XTsKLSAgICBzaXplX3QgdWEgPSBjdHgtPnMucHJvcHMucHJvcGVydGll cy5saW1pdHMubWluVW5pZm9ybUJ1ZmZlck9mZnNldEFsaWdubWVudDsKLSAgICBjYl9vZmZzZXRb MF0gPSA2NCpzaXplb2YoZmxvYXQpICsgNjQqc2l6ZW9mKHVpbnQ4X3QpOwotICAgIGNiX29mZnNl dFsxXSA9IGNiX29mZnNldFswXSArIEZGQUxJR04oY2Jfc2l6ZVswXSwgdWEpOwotICAgIGNiX29m ZnNldFsyXSA9IGNiX29mZnNldFsxXSArIEZGQUxJR04oY2Jfc2l6ZVsxXSwgdWEpOwotICAgIGNi X29mZnNldFszXSA9IGNiX29mZnNldFsyXSArIEZGQUxJR04oY2Jfc2l6ZVsyXSwgdWEpOwotICAg IGNiX29mZnNldFs0XSA9IGNiX29mZnNldFszXSArIEZGQUxJR04oY2Jfc2l6ZVszXSwgdWEpOwot Ci0gICAgUkVUKGZmX3ZrX2NyZWF0ZV9idWYoJmN0eC0+cywgJnBydi0+dW5pZm9ybV9idWYsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgNjQqc2l6ZW9mKGZsb2F0KSArIDY0KnNpemVvZih1aW50 OF90KSArIGNiX29mZnNldFs0XSArIDI1NiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM LCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0JVRkZFUl9VU0FHRV9TSEFERVJf REVWSUNFX0FERFJFU1NfQklUIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICBWS19CVUZGRVJf VVNBR0VfVU5JRk9STV9CVUZGRVJfQklULAotICAgICAgICAgICAgICAgICAgICAgICAgIFZLX01F TU9SWV9QUk9QRVJUWV9ERVZJQ0VfTE9DQUxfQklUIHwKLSAgICAgICAgICAgICAgICAgICAgICAg ICBWS19NRU1PUllfUFJPUEVSVFlfSE9TVF9WSVNJQkxFX0JJVCkpOwotCi0gICAgdWludDhfdCAq dW5pZm9ybV9idWY7Ci0gICAgUkVUKGZmX3ZrX21hcF9idWZmZXIoJmN0eC0+cywgJnBydi0+dW5p Zm9ybV9idWYsICZ1bmlmb3JtX2J1ZiwgMCkpOwotCi0gICAgLyogRENUIHNjYWxlcyAqLwotICAg IGZsb2F0ICpkY3Rfc2NhbGVfYnVmID0gKGZsb2F0ICopdW5pZm9ybV9idWY7Ci0gICAgZG91Ymxl IGlkY3RfOF9zY2FsZXNbOF0gPSB7Ci0gICAgICAgIGNvcyg0LjAqTV9QSS8xNi4wKSAvIDIuMCwK LSAgICAgICAgY29zKDEuMCpNX1BJLzE2LjApIC8gMi4wLAotICAgICAgICBjb3MoMi4wKk1fUEkv MTYuMCkgLyAyLjAsCi0gICAgICAgIGNvcygzLjAqTV9QSS8xNi4wKSAvIDIuMCwKLSAgICAgICAg Y29zKDQuMCpNX1BJLzE2LjApIC8gMi4wLAotICAgICAgICBjb3MoNS4wKk1fUEkvMTYuMCkgLyAy LjAsCi0gICAgICAgIGNvcyg2LjAqTV9QSS8xNi4wKSAvIDIuMCwKLSAgICAgICAgY29zKDcuMCpN X1BJLzE2LjApIC8gMi4wLAotICAgIH07Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCA2NDsgaSsr KQotICAgICAgICBkY3Rfc2NhbGVfYnVmW2ldID0gKGZsb2F0KShpZGN0Xzhfc2NhbGVzW2kgPj4g M10gKgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZGN0Xzhfc2NhbGVzW2kg ICYgN10pOwotCi0gICAgLyogU2NhbiB0YWJsZSAqLwotICAgIHVpbnQ4X3QgKnNjYW5fYnVmID0g dW5pZm9ybV9idWYgKyA2NCpzaXplb2YoZmxvYXQpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwg NjQ7IGkrKykKLSAgICAgICAgc2Nhbl9idWZbcHJyLT5zY2FuW2ldXSA9IGk7Ci0KLSAgICAvKiBD b2RlYm9va3MgKi8KLSAgICBtZW1jcHkodW5pZm9ybV9idWYgKyBjYl9vZmZzZXRbMF0sIGZmX3By b3Jlc19yYXdfZGNfY2IsCi0gICAgICAgICAgIHNpemVvZihmZl9wcm9yZXNfcmF3X2RjX2NiKSk7 Ci0gICAgbWVtY3B5KHVuaWZvcm1fYnVmICsgY2Jfb2Zmc2V0WzFdLCBmZl9wcm9yZXNfcmF3X2Fj X2NiLAotICAgICAgICAgICBzaXplb2YoZmZfcHJvcmVzX3Jhd19hY19jYikpOwotICAgIG1lbWNw eSh1bmlmb3JtX2J1ZiArIGNiX29mZnNldFsyXSwgZmZfcHJvcmVzX3Jhd19ybl9jYiwKLSAgICAg ICAgICAgc2l6ZW9mKGZmX3Byb3Jlc19yYXdfcm5fY2IpKTsKLSAgICBtZW1jcHkodW5pZm9ybV9i dWYgKyBjYl9vZmZzZXRbM10sIGZmX3Byb3Jlc19yYXdfbG5fY2IsCi0gICAgICAgICAgIHNpemVv ZihmZl9wcm9yZXNfcmF3X2xuX2NiKSk7Ci0KLSAgICBSRVQoZmZfdmtfdW5tYXBfYnVmZmVyKCZj dHgtPnMsICZwcnYtPnVuaWZvcm1fYnVmLCAxKSk7Ci0KLSAgICAvKiBEb25lOyB1cGRhdGUgZGVz Y3JpcHRvcnMgKi8KLSAgICBSRVQoZmZfdmtfc2hhZGVyX3VwZGF0ZV9kZXNjX2J1ZmZlcigmY3R4 LT5zLCAmY3R4LT5leGVjX3Bvb2wuY29udGV4dHNbMF0sCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJnBydi0+ZGVjb2RlLCAxLCAwLCAwLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZwcnYtPnVuaWZvcm1fYnVmLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDY0KnNpemVvZihmbG9hdCksCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVktfRk9STUFUX1VOREVGSU5FRCkpOwot ICAgIFJFVChmZl92a19zaGFkZXJfdXBkYXRlX2Rlc2NfYnVmZmVyKCZjdHgtPnMsICZjdHgtPmV4 ZWNfcG9vbC5jb250ZXh0c1swXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmcHJ2LT5kZWNvZGUsIDEsIDEsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJnBydi0+dW5pZm9ybV9idWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgNjQqc2l6ZW9mKGZsb2F0KSwgNjQqc2l6ZW9mKHVpbnQ4X3QpLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0ZPUk1BVF9VTkRFRklORUQp KTsKLSAgICBmb3IgKGludCBqID0gMDsgaiA8IDQ7IGorKykKLSAgICAgICAgUkVUKGZmX3ZrX3No YWRlcl91cGRhdGVfZGVzY19idWZmZXIoJmN0eC0+cywgJmN0eC0+ZXhlY19wb29sLmNvbnRleHRz WzBdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJ2LT5k ZWNvZGUsIDEsIDIgKyBqLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmcHJ2LT51bmlmb3JtX2J1ZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2Jfb2Zmc2V0W2pdLCBjYl9zaXplW2pdLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWS19GT1JNQVRfVU5ERUZJTkVEKSk7CisgICAg UkVUKGluaXRfaWRjdF9zaGFkZXIoYXZjdHgsICZjdHgtPnMsICZjdHgtPmV4ZWNfcG9vbCwgc3B2 LCAmcHJ2LT5pZGN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHByci0+dmVyc2lvbikpOwog CiBmYWlsOgogICAgIHNwdi0+dW5pbml0KCZzcHYpOwotLSAKMi41Mi4wCgoKRnJvbSBlNmJmODI0 ZGM1YTcyZGNhY2I5ODQ1YTI1YjAyNmZmNzU1Nzc4NTliIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBMeW5uZSA8ZGV2QGx5bm5lLmVlPgpEYXRlOiBUaHUsIDEzIE5vdiAyMDI1IDEyOjAy OjIyICswMTAwClN1YmplY3Q6IFtQQVRDSCAwOTAvMzA0XSB2dWxrYW5fcHJvcmVzX3JhdzogdXNl IHJlZ3VsYXIgZGVzY3JpcHRvcnMgZm9yIHRpbGUKIGRhdGEgaW5zdGVhZCBvZiBCREEKClJlZ3Vs YXIgZGVzY3JpcHRvcnMgYXJlIGZhc3Rlci4KLS0tCiBsaWJhdmNvZGVjL3Z1bGthbl9wcm9yZXNf cmF3LmMgfCA0NyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGli YXZjb2RlYy92dWxrYW5fcHJvcmVzX3Jhdy5jIGIvbGliYXZjb2RlYy92dWxrYW5fcHJvcmVzX3Jh dy5jCmluZGV4IDNiNmQ2MTdlZWMuLmJkM2M4YjZlNDYgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMv dnVsa2FuX3Byb3Jlc19yYXcuYworKysgYi9saWJhdmNvZGVjL3Z1bGthbl9wcm9yZXNfcmF3LmMK QEAgLTM4LDcgKzM4LDcgQEAgY29uc3QgRkZWdWxrYW5EZWNvZGVEZXNjcmlwdG9yIGZmX3ZrX2Rl Y19wcm9yZXNfcmF3X2Rlc2MgPSB7CiB0eXBlZGVmIHN0cnVjdCBQcm9SZXNSQVdWdWxrYW5EZWNv ZGVQaWN0dXJlIHsKICAgICBGRlZ1bGthbkRlY29kZVBpY3R1cmUgdnA7CiAKLSAgICBBVkJ1ZmZl clJlZiAqdGlsZV9kYXRhOworICAgIEFWQnVmZmVyUmVmICpmcmFtZV9kYXRhX2J1ZjsKICAgICB1 aW50MzJfdCBuYl90aWxlczsKIH0gUHJvUmVzUkFXVnVsa2FuRGVjb2RlUGljdHVyZTsKIApAQCAt NDYsMTEgKzQ2LDEwIEBAIHR5cGVkZWYgc3RydWN0IFByb1Jlc1JBV1Z1bGthbkRlY29kZUNvbnRl eHQgewogICAgIEZGVnVsa2FuU2hhZGVyIGRlY29kZTsKICAgICBGRlZ1bGthblNoYWRlciBpZGN0 OwogCi0gICAgQVZCdWZmZXJQb29sICp0aWxlX2RhdGFfcG9vbDsKKyAgICBBVkJ1ZmZlclBvb2wg KmZyYW1lX2RhdGFfcG9vbDsKIH0gUHJvUmVzUkFXVnVsa2FuRGVjb2RlQ29udGV4dDsKIAogdHlw ZWRlZiBzdHJ1Y3QgRGVjb2RlUHVzaERhdGEgewotICAgIFZrRGV2aWNlQWRkcmVzcyB0aWxlX2Rh dGE7CiAgICAgVmtEZXZpY2VBZGRyZXNzIHBrdF9kYXRhOwogICAgIGludDMyX3QgZnJhbWVfc2l6 ZVsyXTsKICAgICBpbnQzMl90IHRpbGVfc2l6ZVsyXTsKQEAgLTg1LDggKzg0LDggQEAgc3RhdGlj IGludCB2a19wcm9yZXNfcmF3X3N0YXJ0X2ZyYW1lKEFWQ29kZWNDb250ZXh0ICAgICAgICAgICph dmN0eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0JVRkZFUl9VU0FHRV9TSEFE RVJfREVWSUNFX0FERFJFU1NfQklUKTsKIAogICAgIC8qIEFsbG9jYXRlIHRpbGUgZGF0YSAqLwot ICAgIGVyciA9IGZmX3ZrX2dldF9wb29sZWRfYnVmZmVyKCZjdHgtPnMsICZwcnYtPnRpbGVfZGF0 YV9wb29sLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwcC0+dGlsZV9kYXRh LAorICAgIGVyciA9IGZmX3ZrX2dldF9wb29sZWRfYnVmZmVyKCZjdHgtPnMsICZwcnYtPmZyYW1l X2RhdGFfcG9vbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHAtPmZyYW1l X2RhdGFfYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0JVRkZFUl9V U0FHRV9TVE9SQUdFX0JVRkZFUl9CSVQgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFZLX0JVRkZFUl9VU0FHRV9TSEFERVJfREVWSUNFX0FERFJFU1NfQklULAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIHByci0+bmJfdGlsZXMqc2l6ZW9mKFRpbGVE YXRhKSwKQEAgLTExMyw4ICsxMTIsOCBAQCBzdGF0aWMgaW50IHZrX3Byb3Jlc19yYXdfZGVjb2Rl X3NsaWNlKEFWQ29kZWNDb250ZXh0ICphdmN0eCwKICAgICBQcm9SZXNSQVdWdWxrYW5EZWNvZGVQ aWN0dXJlICpwcCA9IHByci0+aHdhY2NlbF9waWN0dXJlX3ByaXZhdGU7CiAgICAgRkZWdWxrYW5E ZWNvZGVQaWN0dXJlICp2cCA9ICZwcC0+dnA7CiAKLSAgICBGRlZrQnVmZmVyICp0aWxlX2RhdGFf YnVmID0gKEZGVmtCdWZmZXIgKilwcC0+dGlsZV9kYXRhLT5kYXRhOwotICAgIFRpbGVEYXRhICp0 ZCA9IChUaWxlRGF0YSAqKXRpbGVfZGF0YV9idWYtPm1hcHBlZF9tZW07CisgICAgRkZWa0J1ZmZl ciAqZnJhbWVfZGF0YV9idWYgPSAoRkZWa0J1ZmZlciAqKXBwLT5mcmFtZV9kYXRhX2J1Zi0+ZGF0 YTsKKyAgICBUaWxlRGF0YSAqdGQgPSAoVGlsZURhdGEgKilmcmFtZV9kYXRhX2J1Zi0+bWFwcGVk X21lbTsKICAgICBGRlZrQnVmZmVyICpzbGljZXNfYnVmID0gdnAtPnNsaWNlc19idWYgPyAoRkZW a0J1ZmZlciAqKXZwLT5zbGljZXNfYnVmLT5kYXRhIDogTlVMTDsKIAogICAgIHRkW3BwLT5uYl90 aWxlc10ucG9zWzBdID0gcHJyLT50aWxlc1twcC0+bmJfdGlsZXNdLng7CkBAIC0xNTAsNyArMTQ5 LDcgQEAgc3RhdGljIGludCB2a19wcm9yZXNfcmF3X2VuZF9mcmFtZShBVkNvZGVjQ29udGV4dCAq YXZjdHgpCiAgICAgRkZWdWxrYW5EZWNvZGVQaWN0dXJlICp2cCA9ICZwcC0+dnA7CiAKICAgICBG RlZrQnVmZmVyICpzbGljZXNfYnVmID0gKEZGVmtCdWZmZXIgKil2cC0+c2xpY2VzX2J1Zi0+ZGF0 YTsKLSAgICBGRlZrQnVmZmVyICp0aWxlX2RhdGEgPSAoRkZWa0J1ZmZlciAqKXBwLT50aWxlX2Rh dGEtPmRhdGE7CisgICAgRkZWa0J1ZmZlciAqZnJhbWVfZGF0YV9idWYgPSAoRkZWa0J1ZmZlciAq KXBwLT5mcmFtZV9kYXRhX2J1Zi0+ZGF0YTsKIAogICAgIFZrSW1hZ2VNZW1vcnlCYXJyaWVyMiBp bWdfYmFyWzhdOwogICAgIGludCBuYl9pbWdfYmFyID0gMDsKQEAgLTE2OCw4ICsxNjcsOCBAQCBz dGF0aWMgaW50IHZrX3Byb3Jlc19yYXdfZW5kX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCkK ICAgICBpZiAoZXJyIDwgMCkKICAgICAgICAgcmV0dXJuIGVycjsKIAotICAgIFJFVChmZl92a19l eGVjX2FkZF9kZXBfYnVmKCZjdHgtPnMsIGV4ZWMsICZwcC0+dGlsZV9kYXRhLCAxLCAwKSk7Ci0g ICAgcHAtPnRpbGVfZGF0YSA9IE5VTEw7CisgICAgUkVUKGZmX3ZrX2V4ZWNfYWRkX2RlcF9idWYo JmN0eC0+cywgZXhlYywgJnBwLT5mcmFtZV9kYXRhX2J1ZiwgMSwgMCkpOworICAgIHBwLT5mcmFt ZV9kYXRhX2J1ZiA9IE5VTEw7CiAgICAgUkVUKGZmX3ZrX2V4ZWNfYWRkX2RlcF9idWYoJmN0eC0+ cywgZXhlYywgJnZwLT5zbGljZXNfYnVmLCAxLCAwKSk7CiAgICAgdnAtPnNsaWNlc19idWYgPSBO VUxMOwogCkBAIC0yMjAsMTIgKzIxOSwxNiBAQCBzdGF0aWMgaW50IHZrX3Byb3Jlc19yYXdfZW5k X2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAwLCAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0lNQUdF X0xBWU9VVF9HRU5FUkFMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX05V TExfSEFORExFKTsKKyAgICBmZl92a19zaGFkZXJfdXBkYXRlX2Rlc2NfYnVmZmVyKCZjdHgtPnMs IGV4ZWMsIGRlY29kZV9zaGFkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAwLCAxLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVfZGF0 YV9idWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBwcnItPm5iX3Rp bGVzKnNpemVvZihUaWxlRGF0YSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBWS19GT1JNQVRfVU5ERUZJTkVEKTsKIAogICAgIGZmX3ZrX2V4ZWNfYmluZF9zaGFkZXIoJmN0 eC0+cywgZXhlYywgZGVjb2RlX3NoYWRlcik7CiAKICAgICAvKiBVcGRhdGUgcHVzaCBkYXRhICov CiAgICAgRGVjb2RlUHVzaERhdGEgcGRfZGVjb2RlID0gKERlY29kZVB1c2hEYXRhKSB7Ci0gICAg ICAgIC50aWxlX2RhdGEgPSB0aWxlX2RhdGEtPmFkZHJlc3MsCiAgICAgICAgIC5wa3RfZGF0YSA9 IHNsaWNlc19idWYtPmFkZHJlc3MsCiAgICAgICAgIC5mcmFtZV9zaXplWzBdID0gYXZjdHgtPndp ZHRoLAogICAgICAgICAuZnJhbWVfc2l6ZVsxXSA9IGF2Y3R4LT5oZWlnaHQsCkBAIC0yNTMsNiAr MjU2LDExIEBAIHN0YXRpYyBpbnQgdmtfcHJvcmVzX3Jhd19lbmRfZnJhbWUoQVZDb2RlY0NvbnRl eHQgKmF2Y3R4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVktfSU1BR0VfTEFZT1VUX0dFTkVSQUwsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVktfTlVMTF9IQU5ETEUpOworICAgIGZm X3ZrX3NoYWRlcl91cGRhdGVfZGVzY19idWZmZXIoJmN0eC0+cywgZXhlYywgaWRjdF9zaGFkZXIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVfZGF0YV9idWYsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAwLCBwcnItPm5iX3RpbGVzKnNpemVvZihUaWxlRGF0YSks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWS19GT1JNQVRfVU5ERUZJTkVE KTsKICAgICBmZl92a19leGVjX2JpbmRfc2hhZGVyKCZjdHgtPnMsIGV4ZWMsIGlkY3Rfc2hhZGVy KTsKICAgICBmZl92a19zaGFkZXJfdXBkYXRlX3B1c2hfY29uc3QoJmN0eC0+cywgZXhlYywgaWRj dF9zaGFkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX1NIQURFUl9T VEFHRV9DT01QVVRFX0JJVCwKQEAgLTI4NCwxNCArMjkyLDEzIEBAIHN0YXRpYyBpbnQgYWRkX2Nv bW1vbl9kYXRhKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgRkZWdWxrYW5Db250ZXh0ICpzLAogICAg IC8qIENvbW1vbiBjb2RlYyBoZWFkZXIgKi8KICAgICBHTFNMRChmZl9zb3VyY2VfY29tbW9uX2Nv bXApOwogCi0gICAgR0xTTEMoMCwgbGF5b3V0KGJ1ZmZlcl9yZWZlcmVuY2UsIGJ1ZmZlcl9yZWZl cmVuY2VfYWxpZ24gPSAxNikgYnVmZmVyIFRpbGVEYXRhIHsgKTsKKyAgICBHTFNMQygwLCBzdHJ1 Y3QgVGlsZURhdGEgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICApOwogICAgIEdMU0xDKDEsICAgIGl2ZWMyIHBvczsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgR0xTTEMo MSwgICAgdWludCBvZmZzZXQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKTsKICAgICBHTFNMQygxLCAgICB1aW50IHNpemU7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAg IEdMU0xDKDAsIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgR0xTTEMoMCwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KTsKICAgICBHTFNMQygwLCBsYXlvdXQocHVzaF9jb25zdGFudCwgc2NhbGFyKSB1bmlmb3JtIHB1 c2hDb25zdGFudHMgeyAgICAgICAgICAgICAgICAgICApOwotICAgIEdMU0xDKDEsICAgIFRpbGVE YXRhIHRpbGVfZGF0YTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICk7CiAgICAgR0xTTEMoMSwgICAgdThidWYgcGt0X2RhdGE7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICBHTFNMQygxLCAg ICBpdmVjMiBmcmFtZV9zaXplOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApOwogICAgIEdMU0xDKDEsICAgIGl2ZWMyIHRpbGVfc2l6ZTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CkBAIC0zMTIs OSArMzE5LDE3IEBAIHN0YXRpYyBpbnQgYWRkX2NvbW1vbl9kYXRhKEFWQ29kZWNDb250ZXh0ICph dmN0eCwgRkZWdWxrYW5Db250ZXh0ICpzLAogICAgICAgICAgICAgLmRpbWVuc2lvbnMgPSAyLAog ICAgICAgICAgICAgLnN0YWdlcyAgICAgPSBWS19TSEFERVJfU1RBR0VfQ09NUFVURV9CSVQsCiAg ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIC5uYW1lICAgICAgICA9ICJmcmFtZV9k YXRhX2J1ZiIsCisgICAgICAgICAgICAudHlwZSAgICAgICAgPSBWS19ERVNDUklQVE9SX1RZUEVf U1RPUkFHRV9CVUZGRVIsCisgICAgICAgICAgICAuc3RhZ2VzICAgICAgPSBWS19TSEFERVJfU1RB R0VfQ09NUFVURV9CSVQsCisgICAgICAgICAgICAubWVtX2xheW91dCAgPSAic2NhbGFyIiwKKyAg ICAgICAgICAgIC5tZW1fcXVhbGkgICA9ICJyZWFkb25seSIsCisgICAgICAgICAgICAuYnVmX2Nv bnRlbnQgPSAiVGlsZURhdGEgdGlsZV9kYXRhW107IiwKKyAgICAgICAgfSwKICAgICB9OwogCi0g ICAgcmV0dXJuIGZmX3ZrX3NoYWRlcl9hZGRfZGVzY3JpcHRvcl9zZXQocywgc2hkLCBkZXNjX3Nl dCwgMSwgMCwgMCk7CisgICAgcmV0dXJuIGZmX3ZrX3NoYWRlcl9hZGRfZGVzY3JpcHRvcl9zZXQo cywgc2hkLCBkZXNjX3NldCwgMiwgMCwgMCk7CiB9CiAKIHN0YXRpYyBpbnQgaW5pdF9kZWNvZGVf c2hhZGVyKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgRkZWdWxrYW5Db250ZXh0ICpzLApAQCAtMzky LDcgKzQwNyw3IEBAIHN0YXRpYyB2b2lkIHZrX2RlY29kZV9wcm9yZXNfcmF3X3VuaW5pdChGRlZ1 bGthbkRlY29kZVNoYXJlZCAqY3R4KQogICAgIGZmX3ZrX3NoYWRlcl9mcmVlKCZjdHgtPnMsICZm di0+ZGVjb2RlKTsKICAgICBmZl92a19zaGFkZXJfZnJlZSgmY3R4LT5zLCAmZnYtPmlkY3QpOwog Ci0gICAgYXZfYnVmZmVyX3Bvb2xfdW5pbml0KCZmdi0+dGlsZV9kYXRhX3Bvb2wpOworICAgIGF2 X2J1ZmZlcl9wb29sX3VuaW5pdCgmZnYtPmZyYW1lX2RhdGFfcG9vbCk7CiAKICAgICBhdl9mcmVl cCgmZnYpOwogfQpAQCAtNDQyLDYgKzQ1Nyw4IEBAIHN0YXRpYyB2b2lkIHZrX3Byb3Jlc19yYXdf ZnJlZV9mcmFtZV9wcml2KEFWUmVmU3RydWN0T3BhcXVlIF9od2N0eCwgdm9pZCAqZGF0YSkKICAg ICBGRlZ1bGthbkRlY29kZVBpY3R1cmUgKnZwID0gJnBwLT52cDsKIAogICAgIGZmX3ZrX2RlY29k ZV9mcmVlX2ZyYW1lKGRldl9jdHgsIHZwKTsKKworICAgIGF2X2J1ZmZlcl91bnJlZigmcHAtPmZy YW1lX2RhdGFfYnVmKTsKIH0KIAogY29uc3QgRkZIV0FjY2VsIGZmX3Byb3Jlc19yYXdfdnVsa2Fu X2h3YWNjZWwgPSB7Ci0tIAoyLjUyLjAKCgpGcm9tIGJmYTU5ZDVhOWQwOTc4NGQyMDE1M2YwMzgx NDY5YzVjNmZhM2ZmMjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEx5bm5lIDxkZXZA bHlubmUuZWU+CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTk6MTQ6MzQgKzAxMDAKU3ViamVjdDog W1BBVENIIDA5MS8zMDRdIHZ1bGthbl9wcm9yZXNfcmF3OiBmaXggZHluYW1pY2FsbHkgbm9uLXVu aWZvcm0KIGFjY2Vzc2VzIHRvIHB1c2hjb25zdHMKClRoZSBWdWxrYW4gc3BlYyByZXF1aXJlcyB0 aGF0IGFsbCBhY2Nlc3NlcyB0byBwdXNoIGRhdGEgYXJlIHVuaWZvcm0gZm9yCmFsbCBpbnZvY2F0 aW9ucyAoZS5nLiBjYW4ndCBiZSBiYXNlZCBvbiBnbF9Xb3JrR3JvdXBJRCBvciBnbF9Mb2NhbElu dm9jYXRpb25JRCkuCi0tLQogbGliYXZjb2RlYy92dWxrYW4vcHJvcmVzX3Jhd19pZGN0LmNvbXAg fCA1ICsrKystCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92dWxrYW4vcHJvcmVzX3Jhd19pZGN0LmNvbXAgYi9s aWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNfcmF3X2lkY3QuY29tcAppbmRleCBlNjkyNzkyMzAxLi5k MDY5YTZlM2M0IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNfcmF3X2lkY3Qu Y29tcAorKysgYi9saWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNfcmF3X2lkY3QuY29tcApAQCAtMTQx LDExICsxNDEsMTQgQEAgdm9pZCBtYWluKHZvaWQpCiAgICAgY29uc3QgdWludCB3ID0gbWluKHRp bGVfc2l6ZS54LCBmcmFtZV9zaXplLnggLSB0ZC5wb3MueCkgLyAyOwogICAgIGNvbnN0IHVpbnQg bmJfYmxvY2tzID0gdyAvIDg7CiAKKyAgICAvKiBXZSBoYXZlIHRvIGRvIG5vbi11bmlmb3JtIGFj Y2Vzcywgc28gY29weSBpdCAqLworICAgIHVpbnQ4X3QgcW1hdF9idWZbNjRdID0gcW1hdDsKKwog ICAgIFtbdW5yb2xsXV0KICAgICBmb3IgKHVpbnQgaSA9IGdsX0xvY2FsSW52b2NhdGlvbklELng7 IGkgPCA2NDsgaSArPSBnbF9Xb3JrR3JvdXBTaXplLngpIHsKICAgICAgICAgaW50MTZfdCB2ID0g aW50MTZfdChpbWFnZUxvYWQoZHN0LCBvZmZzICsgMippdmVjMihCTE9DS19JRCo4LCAwKSArIHNj YW5baV0pWzBdKTsKICAgICAgICAgYmxvY2tzW0JMT0NLX0lEXVtDT01QX0lEKjY0ICsgaV0gPSAo diAvIDE2Mzg0LjApICoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoZmxvYXQocW1hdFtpXSkgLyAyOTUuMCkgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChmbG9hdChxbWF0X2J1ZltpXSkgLyAyOTUuMCkgKgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkY3Rfc2NhbGVbaV0gKiBxc2NhbGU7 CiAgICAgfQogCi0tIAoyLjUyLjAKCgpGcm9tIDRhNDY4YWJkM2NkYmE0OTI3YmQyMzkxMjNiODg0 YjQzY2VjMzE5OWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEx5bm5lIDxkZXZAbHlu bmUuZWU+CkRhdGU6IFNhdCwgMTUgTm92IDIwMjUgMTQ6MTU6MTkgKzAxMDAKU3ViamVjdDogW1BB VENIIDA5Mi8zMDRdIHZ1bGthbl9wcm9yZXNfcmF3OiByZWFkIHRoZSBoZWFkZXIgbGVuZ3RoIHJh dGhlciB0aGFuCiBhc3N1bWluZyBpdHMgOAoKSW4gYWxsIGtub3duIHNhbXBsZXMsIGl0IGlzIGVx dWFsIHRvIDguCi0tLQogbGliYXZjb2RlYy92dWxrYW4vcHJvcmVzX3Jhd19kZWNvZGUuY29tcCB8 IDUgKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92dWxrYW4vcHJvcmVzX3Jhd19kZWNvZGUuY29tcCBi L2xpYmF2Y29kZWMvdnVsa2FuL3Byb3Jlc19yYXdfZGVjb2RlLmNvbXAKaW5kZXggMDg0NDdlMzk2 MS4uMDY5YWVmNjM4YyAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy92dWxrYW4vcHJvcmVzX3Jhd19k ZWNvZGUuY29tcAorKysgYi9saWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNfcmF3X2RlY29kZS5jb21w CkBAIC0yMDYsMTIgKzIwNiwxMyBAQCB2b2lkIG1haW4odm9pZCkKIAogICAgIHVpbnQ2NF90IHBr dF9vZmZzZXQgPSB1aW50NjRfdChwa3RfZGF0YSkgKyB0ZC5vZmZzZXQ7CiAgICAgdTh2ZWMyYnVm IGhkcl9kYXRhID0gdTh2ZWMyYnVmKHBrdF9vZmZzZXQpOworICAgIGludCBoZWFkZXJfbGVuID0g aGRyX2RhdGFbMF0udi54ID4+IDM7CiAKICAgICBpdmVjNCBzaXplID0gaXZlYzQodGQuc2l6ZSwK ICAgICAgICAgICAgICAgICAgICAgICAgcGFjazE2KGhkcl9kYXRhWzJdLnYueXgpLAogICAgICAg ICAgICAgICAgICAgICAgICBwYWNrMTYoaGRyX2RhdGFbMV0udi55eCksCiAgICAgICAgICAgICAg ICAgICAgICAgIHBhY2sxNihoZHJfZGF0YVszXS52Lnl4KSk7Ci0gICAgc2l6ZVswXSA9IHNpemVb MF0gLSBzaXplWzFdIC0gc2l6ZVsyXSAtIHNpemVbM10gLSA4OworICAgIHNpemVbMF0gPSBzaXpl WzBdIC0gc2l6ZVsxXSAtIHNpemVbMl0gLSBzaXplWzNdIC0gaGVhZGVyX2xlbjsKICAgICBpZiAo ZXhwZWN0RVhUKHNpemVbMF0gPCAwLCBmYWxzZSkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjI0 LDcgKzIyNSw3IEBAIHZvaWQgbWFpbih2b2lkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVbMl0g KyBzaXplWzFdKTsKIAotICAgIGluaXRfZ2V0X2JpdHMoZ2IsIHU4YnVmKHBrdF9vZmZzZXQgKyA4 ICsgY29tcF9vZmZzZXRbQ09NUF9JRF0pLAorICAgIGluaXRfZ2V0X2JpdHMoZ2IsIHU4YnVmKHBr dF9vZmZzZXQgKyBoZWFkZXJfbGVuICsgY29tcF9vZmZzZXRbQ09NUF9JRF0pLAogICAgICAgICAg ICAgICAgICAgc2l6ZVtDT01QX0lEXSk7CiAKICAgICByZWFkX2RjX3ZhbHMob2ZmcywgbmJfYmxv Y2tzKTsKLS0gCjIuNTIuMAoKCkZyb20gYzNhZjYwNjk4MjU2YjdkOWNkZDIzNzc3NDgzZDUzZjBk ZGUzZWQ4NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTHlubmUgPGRldkBseW5uZS5l ZT4KRGF0ZTogVHVlLCAyNSBOb3YgMjAyNSAxNzoyMDoxMCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDkzLzMwNF0gdnVsa2FuX3Byb3Jlc19yYXc6IHVzZSB0aGUgbmF0aXZlIGltYWdlCiByZXByZXNl bnRhdGlvbgoKSXQgYWxsb3dzIHVzIHRvIGVhc2lseSBzeW5jaHJvbml6ZSB0aGUgc29mdHdhcmUg YW5kIGhhcmR3YXJlCmRlY29kZXJzLCBieSByZW1vdmluZyB0aGUgYWJzdHJhY3Rpb24gdGhlIFZ1 bGthbiBsYXllciBhZGRlZCBieSBjaGFuZ2luZwp0aGUgdmFsdWVzIHdyaXR0ZW4uCi0tLQogbGli YXZjb2RlYy92dWxrYW4vcHJvcmVzX3Jhd19kZWNvZGUuY29tcCB8ICAzICsrLQogbGliYXZjb2Rl Yy92dWxrYW4vcHJvcmVzX3Jhd19pZGN0LmNvbXAgICB8IDE1ICsrKysrKysrKy0tLS0tLQogbGli YXZjb2RlYy92dWxrYW5fcHJvcmVzX3Jhdy5jICAgICAgICAgICB8ICA0ICsrLS0KIDMgZmlsZXMg Y2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9s aWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNfcmF3X2RlY29kZS5jb21wIGIvbGliYXZjb2RlYy92dWxr YW4vcHJvcmVzX3Jhd19kZWNvZGUuY29tcAppbmRleCAwNjlhZWY2MzhjLi44MDlkNzg3NDY2IDEw MDY0NAotLS0gYS9saWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNfcmF3X2RlY29kZS5jb21wCisrKyBi L2xpYmF2Y29kZWMvdnVsa2FuL3Byb3Jlc19yYXdfZGVjb2RlLmNvbXAKQEAgLTEwMSw3ICsxMDEs OCBAQCBpbnQxNl90IGdldF92YWx1ZShpbnQxNl90IGNvZGVib29rKQogCiB2b2lkIHN0b3JlX3Zh bChpdmVjMiBvZmZzLCBpbnQgYmxrLCBpbnQgYywgaW50MTZfdCB2KQogewotICAgIGltYWdlU3Rv cmUoZHN0LCBvZmZzICsgMippdmVjMihibGsqOCArIChjICYgNyksIGMgPj4gMyksIGl2ZWM0KHYp KTsKKyAgICBpbWFnZVN0b3JlKGRzdCwgb2ZmcyArIDIqaXZlYzIoYmxrKjggKyAoYyAmIDcpLCBj ID4+IDMpLAorICAgICAgICAgICAgICAgaXZlYzQodiAmIDB4RkZGRikpOwogfQogCiB2b2lkIHJl YWRfZGNfdmFscyhpdmVjMiBvZmZzLCBpbnQgbmJfYmxvY2tzKQpkaWZmIC0tZ2l0IGEvbGliYXZj b2RlYy92dWxrYW4vcHJvcmVzX3Jhd19pZGN0LmNvbXAgYi9saWJhdmNvZGVjL3Z1bGthbi9wcm9y ZXNfcmF3X2lkY3QuY29tcAppbmRleCBkMDY5YTZlM2M0Li4yOWRkZjNiOWU4IDEwMDY0NAotLS0g YS9saWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNfcmF3X2lkY3QuY29tcAorKysgYi9saWJhdmNvZGVj L3Z1bGthbi9wcm9yZXNfcmF3X2lkY3QuY29tcApAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgbWFp bih2b2lkKQogCiAgICAgdWludDY0X3QgcGt0X29mZnNldCA9IHVpbnQ2NF90KHBrdF9kYXRhKSAr IHRkLm9mZnNldDsKICAgICB1OHZlYzJidWYgaGRyX2RhdGEgPSB1OHZlYzJidWYocGt0X29mZnNl dCk7Ci0gICAgZmxvYXQgcXNjYWxlID0gZmxvYXQocGFjazE2KGhkcl9kYXRhWzBdLnYueXgpKSAv IDIuMGY7CisgICAgaW50IHFzY2FsZSA9IHBhY2sxNihoZHJfZGF0YVswXS52Lnl4KTsKIAogICAg IGNvbnN0IGl2ZWMyIG9mZnMgPSB0ZC5wb3MgKyBpdmVjMihDT01QX0lEICYgMSwgQ09NUF9JRCA+ PiAxKTsKICAgICBjb25zdCB1aW50IHcgPSBtaW4odGlsZV9zaXplLngsIGZyYW1lX3NpemUueCAt IHRkLnBvcy54KSAvIDI7CkBAIC0xNDYsMTAgKzE0NiwxMSBAQCB2b2lkIG1haW4odm9pZCkKIAog ICAgIFtbdW5yb2xsXV0KICAgICBmb3IgKHVpbnQgaSA9IGdsX0xvY2FsSW52b2NhdGlvbklELng7 IGkgPCA2NDsgaSArPSBnbF9Xb3JrR3JvdXBTaXplLngpIHsKLSAgICAgICAgaW50MTZfdCB2ID0g aW50MTZfdChpbWFnZUxvYWQoZHN0LCBvZmZzICsgMippdmVjMihCTE9DS19JRCo4LCAwKSArIHNj YW5baV0pWzBdKTsKLSAgICAgICAgYmxvY2tzW0JMT0NLX0lEXVtDT01QX0lEKjY0ICsgaV0gPSAo diAvIDE2Mzg0LjApICoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoZmxvYXQocW1hdF9idWZbaV0pIC8gMjk1LjApICoKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZGN0X3NjYWxlW2ldICogcXNjYWxlOworICAgICAgICBpbnQg diA9IGludChpbWFnZUxvYWQoZHN0LCBvZmZzICsgMippdmVjMihCTE9DS19JRCo4LCAwKSArIHNj YW5baV0pWzBdKTsKKyAgICAgICAgZmxvYXQgdmYgPSBmbG9hdChzaWduX2V4dGVuZCh2LCAxNikp IC8gMzI3NjguMDsKKyAgICAgICAgdmYgKj0gcW1hdF9idWZbaV0gKiBxc2NhbGU7CisgICAgICAg IGJsb2Nrc1tCTE9DS19JRF1bQ09NUF9JRCo2NCArIGldID0gKHZmIC8gKDY0KjQuNTYpKSAqCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRjdF9zY2FsZVtpXTsK ICAgICB9CiAKICAgICBiYXJyaWVyKCk7CkBAIC0xNjMsNyArMTY0LDkgQEAgdm9pZCBtYWluKHZv aWQpCiAgICAgYmFycmllcigpOwogICAgIFtbdW5yb2xsXV0KICAgICBmb3IgKHVpbnQgaSA9IGds X0xvY2FsSW52b2NhdGlvbklELng7IGkgPCA2NDsgaSArPSBnbF9Xb3JrR3JvdXBTaXplLngpIHsK LSAgICAgICAgaW50IHYgPSBpbnQocm91bmQoYmxvY2tzW0JMT0NLX0lEXVtDT01QX0lEKjY0ICsg aV0qMTYzODQuMCkpOworICAgICAgICBpbnQgdiA9IGludChyb3VuZChibG9ja3NbQkxPQ0tfSURd W0NPTVBfSUQqNjQgKyBpXSo0MDk1LjApKTsKKyAgICAgICAgdiA9IGNsYW1wKHYsIDAsIDQwOTUp OworICAgICAgICB2IDw8PSA0OwogICAgICAgICBpbWFnZVN0b3JlKGRzdCwKICAgICAgICAgICAg ICAgICAgICBvZmZzICsgMippdmVjMihCTE9DS19JRCo4ICsgKGkgJiA3KSwgaSA+PiAzKSwKICAg ICAgICAgICAgICAgICAgICBpdmVjNCh2KSk7CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z1bGth bl9wcm9yZXNfcmF3LmMgYi9saWJhdmNvZGVjL3Z1bGthbl9wcm9yZXNfcmF3LmMKaW5kZXggYmQz YzhiNmU0Ni4uY2QwMjVkMjVlNiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy92dWxrYW5fcHJvcmVz X3Jhdy5jCisrKyBiL2xpYmF2Y29kZWMvdnVsa2FuX3Byb3Jlc19yYXcuYwpAQCAtOTYsNyArOTYs NyBAQCBzdGF0aWMgaW50IHZrX3Byb3Jlc19yYXdfc3RhcnRfZnJhbWUoQVZDb2RlY0NvbnRleHQg ICAgICAgICAgKmF2Y3R4LAogCiAgICAgLyogUHJlcGFyZSBmcmFtZSB0byBiZSB1c2VkICovCiAg ICAgZXJyID0gZmZfdmtfZGVjb2RlX3ByZXBhcmVfZnJhbWVfc2RyKGRlYywgcHJyLT5mcmFtZSwg dnAsIDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZGX1ZLX1JF UF9JTlQsIDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGRl9W S19SRVBfTkFUSVZFLCAwKTsKICAgICBpZiAoZXJyIDwgMCkKICAgICAgICAgcmV0dXJuIGVycjsK IApAQCAtMzE0LDcgKzMxNCw3IEBAIHN0YXRpYyBpbnQgYWRkX2NvbW1vbl9kYXRhKEFWQ29kZWND b250ZXh0ICphdmN0eCwgRkZWdWxrYW5Db250ZXh0ICpzLAogICAgICAgICAgICAgLm5hbWUgICAg ICAgPSAiZHN0IiwKICAgICAgICAgICAgIC50eXBlICAgICAgID0gVktfREVTQ1JJUFRPUl9UWVBF X1NUT1JBR0VfSU1BR0UsCiAgICAgICAgICAgICAubWVtX2xheW91dCA9IGZmX3ZrX3NoYWRlcl9y ZXBfZm10KGRlY19mcmFtZXNfY3R4LT5zd19mb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEZGX1ZLX1JFUF9JTlQpLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGRl9WS19SRVBfTkFUSVZFKSwKICAgICAg ICAgICAgIC5tZW1fcXVhbGkgID0gd3JpdGVvbmx5ID8gIndyaXRlb25seSIgOiBOVUxMLAogICAg ICAgICAgICAgLmRpbWVuc2lvbnMgPSAyLAogICAgICAgICAgICAgLnN0YWdlcyAgICAgPSBWS19T SEFERVJfU1RBR0VfQ09NUFVURV9CSVQsCi0tIAoyLjUyLjAKCgpGcm9tIGI4YTkwYjc0YmE0M2U4 OGI3YzEwOTljNTYzMDZiNGIzNzMxMjQyMDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEx5bm5lIDxkZXZAbHlubmUuZWU+CkRhdGU6IFN1biwgOSBOb3YgMjAyNSAxMDo1MjoyMCArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMDk0LzMwNF0gZHB4OiBhZGQgYSBjb250ZXh0CgpUaGlzIHNpbXBs eSBhZGRzIGEgY29udGV4dCB3aXRoIDQgZmllbGRzIHRvIGVuYWJsZSBoYXJkd2FyZSB1bnBhY2tp bmcuCi0tLQogbGliYXZjb2RlYy9kcHguYyB8IDE0MSArKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogbGliYXZjb2RlYy9kcHguaCB8ICAxMyArKysrKwogMiBm aWxlcyBjaGFuZ2VkLCA4NiBpbnNlcnRpb25zKCspLCA2OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9saWJhdmNvZGVjL2RweC5jIGIvbGliYXZjb2RlYy9kcHguYwppbmRleCAxYjFhZGEzMTZh Li5jODk4MWJiZjNhIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2RweC5jCisrKyBiL2xpYmF2Y29k ZWMvZHB4LmMKQEAgLTEyMSw2ICsxMjEsOCBAQCBzdGF0aWMgdWludDE2X3QgcmVhZDEyaW4zMihj b25zdCB1aW50OF90ICoqcHRyLCB1aW50MzJfdCAqbGJ1ZiwKIHN0YXRpYyBpbnQgZGVjb2RlX2Zy YW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqcCwKICAgICAgICAgICAgICAgICAg ICAgICAgIGludCAqZ290X2ZyYW1lLCBBVlBhY2tldCAqYXZwa3QpCiB7CisgICAgRFBYRGVjQ29u dGV4dCAqZHB4ID0gYXZjdHgtPnByaXZfZGF0YTsKKwogICAgIGNvbnN0IHVpbnQ4X3QgKmJ1ZiA9 IGF2cGt0LT5kYXRhOwogICAgIGludCBidWZfc2l6ZSAgICAgICA9IGF2cGt0LT5zaXplOwogICAg IHVpbnQ4X3QgKnB0cltBVl9OVU1fREFUQV9QT0lOVEVSU107CkBAIC0xMjksMTEgKzEzMSwxMSBA QCBzdGF0aWMgaW50IGRlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUg KnAsCiAgICAgY2hhciBpbnB1dF9kZXZpY2VbMzNdID0geyAwIH07CiAKICAgICB1bnNpZ25lZCBp bnQgb2Zmc2V0OwotICAgIGludCBtYWdpY19udW0sIGVuZGlhbjsKLSAgICBpbnQgeCwgeSwgc3Ry aWRlLCBpLCBqLCByZXQ7Ci0gICAgaW50IHcsIGgsIGJpdHNfcGVyX2NvbG9yLCBkZXNjcmlwdG9y LCBlbGVtZW50cywgcGFja2luZzsKKyAgICBpbnQgbWFnaWNfbnVtOworICAgIGludCB4LCB5LCBp LCBqLCByZXQ7CisgICAgaW50IHcsIGgsIGRlc2NyaXB0b3I7CiAgICAgaW50IHl1diwgY29sb3Jf dHJjLCBjb2xvcl9zcGVjOwotICAgIGludCBlbmNvZGluZywgbmVlZF9hbGlnbiA9IDAsIHVucGFk ZGVkXzEwYml0ID0gMDsKKyAgICBpbnQgZW5jb2Rpbmc7CiAKICAgICB1bnNpZ25lZCBpbnQgcmdi QnVmZmVyID0gMDsKICAgICBpbnQgbl9kYXR1bSA9IDA7CkBAIC0xNDksMTUgKzE1MSwxNSBAQCBz dGF0aWMgaW50IGRlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUgKnAs CiAgICAgLyogQ2hlY2sgaWYgdGhlIGZpbGVzICJtYWdpYyBudW1iZXIiIGlzICJTRFBYIiB3aGlj aCBtZWFucyBpdCB1c2VzCiAgICAgICogYmlnLWVuZGlhbiBvciBYUERTIHdoaWNoIGlzIGZvciBs aXR0bGUtZW5kaWFuIGZpbGVzICovCiAgICAgaWYgKG1hZ2ljX251bSA9PSBBVl9STDMyKCJTRFBY IikpIHsKLSAgICAgICAgZW5kaWFuID0gMDsKKyAgICAgICAgZHB4LT5lbmRpYW4gPSAwOwogICAg IH0gZWxzZSBpZiAobWFnaWNfbnVtID09IEFWX1JCMzIoIlNEUFgiKSkgewotICAgICAgICBlbmRp YW4gPSAxOworICAgICAgICBkcHgtPmVuZGlhbiA9IDE7CiAgICAgfSBlbHNlIHsKICAgICAgICAg YXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJEUFggbWFya2VyIG5vdCBmb3VuZFxuIik7CiAg ICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgIH0KIAotICAgIG9mZnNldCA9 IHJlYWQzMigmYnVmLCBlbmRpYW4pOworICAgIG9mZnNldCA9IHJlYWQzMigmYnVmLCBkcHgtPmVu ZGlhbik7CiAgICAgaWYgKGF2cGt0LT5zaXplIDw9IG9mZnNldCkgewogICAgICAgICBhdl9sb2co YXZjdHgsIEFWX0xPR19FUlJPUiwgIkludmFsaWQgZGF0YSBzdGFydCBvZmZzZXRcbiIpOwogICAg ICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKQEAgLTE3NCw3ICsxNzYsNyBAQCBzdGF0 aWMgaW50IGRlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUgKnAsCiAK ICAgICAvLyBDaGVjayBlbmNyeXB0aW9uCiAgICAgYnVmID0gYXZwa3QtPmRhdGEgKyA2NjA7Ci0g ICAgcmV0ID0gcmVhZDMyKCZidWYsIGVuZGlhbik7CisgICAgcmV0ID0gcmVhZDMyKCZidWYsIGRw eC0+ZW5kaWFuKTsKICAgICBpZiAocmV0ICE9IDB4RkZGRkZGRkYpIHsKICAgICAgICAgYXZwcml2 X3JlcG9ydF9taXNzaW5nX2ZlYXR1cmUoYXZjdHgsICJFbmNyeXB0aW9uIik7CiAgICAgICAgIGF2 X2xvZyhhdmN0eCwgQVZfTE9HX1dBUk5JTkcsICJUaGUgaW1hZ2UgaXMgZW5jcnlwdGVkIGFuZCBt YXkgIgpAQCAtMTgzLDggKzE4NSw4IEBAIHN0YXRpYyBpbnQgZGVjb2RlX2ZyYW1lKEFWQ29kZWND b250ZXh0ICphdmN0eCwgQVZGcmFtZSAqcCwKIAogICAgIC8vIE5lZWQgdG8gZW5kIGluIDB4MzA0 IG9mZnNldCBmcm9tIHN0YXJ0IG9mIGZpbGUKICAgICBidWYgPSBhdnBrdC0+ZGF0YSArIDB4MzA0 OwotICAgIHcgPSByZWFkMzIoJmJ1ZiwgZW5kaWFuKTsKLSAgICBoID0gcmVhZDMyKCZidWYsIGVu ZGlhbik7CisgICAgdyA9IHJlYWQzMigmYnVmLCBkcHgtPmVuZGlhbik7CisgICAgaCA9IHJlYWQz MigmYnVmLCBkcHgtPmVuZGlhbik7CiAKICAgICBpZiAoKHJldCA9IGZmX3NldF9kaW1lbnNpb25z KGF2Y3R4LCB3LCBoKSkgPCAwKQogICAgICAgICByZXR1cm4gcmV0OwpAQCAtMTk3LDIzICsxOTks MjIgQEAgc3RhdGljIGludCBkZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZy YW1lICpwLAogCiAgICAgLy8gTmVlZCB0byBlbmQgaW4gMHgzMjMgdG8gcmVhZCB0aGUgYml0cyBw ZXIgY29sb3IKICAgICBidWYgKz0gMzsKLSAgICBhdmN0eC0+Yml0c19wZXJfcmF3X3NhbXBsZSA9 Ci0gICAgYml0c19wZXJfY29sb3IgPSBidWZbMF07CisgICAgYXZjdHgtPmJpdHNfcGVyX3Jhd19z YW1wbGUgPSBidWZbMF07CiAgICAgYnVmKys7Ci0gICAgcGFja2luZyA9IHJlYWQxNigmYnVmLCBl bmRpYW4pOwotICAgIGVuY29kaW5nID0gcmVhZDE2KCZidWYsIGVuZGlhbik7CisgICAgZHB4LT5w YWNraW5nID0gcmVhZDE2KCZidWYsIGRweC0+ZW5kaWFuKTsKKyAgICBlbmNvZGluZyA9IHJlYWQx NigmYnVmLCBkcHgtPmVuZGlhbik7CiAKICAgICBpZiAoZW5jb2RpbmcpIHsKICAgICAgICAgYXZw cml2X3JlcG9ydF9taXNzaW5nX2ZlYXR1cmUoYXZjdHgsICJFbmNvZGluZyAlZCIsIGVuY29kaW5n KTsKICAgICAgICAgcmV0dXJuIEFWRVJST1JfUEFUQ0hXRUxDT01FOwogICAgIH0KIAotICAgIGlm IChiaXRzX3Blcl9jb2xvciA+IDMxKQorICAgIGlmIChhdmN0eC0+Yml0c19wZXJfcmF3X3NhbXBs ZSA+IDMxKQogICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKIAogICAgIGJ1ZiAr PSA4MjA7Ci0gICAgYXZjdHgtPnNhbXBsZV9hc3BlY3RfcmF0aW8ubnVtID0gcmVhZDMyKCZidWYs IGVuZGlhbik7Ci0gICAgYXZjdHgtPnNhbXBsZV9hc3BlY3RfcmF0aW8uZGVuID0gcmVhZDMyKCZi dWYsIGVuZGlhbik7CisgICAgYXZjdHgtPnNhbXBsZV9hc3BlY3RfcmF0aW8ubnVtID0gcmVhZDMy KCZidWYsIGRweC0+ZW5kaWFuKTsKKyAgICBhdmN0eC0+c2FtcGxlX2FzcGVjdF9yYXRpby5kZW4g PSByZWFkMzIoJmJ1ZiwgZHB4LT5lbmRpYW4pOwogICAgIGlmIChhdmN0eC0+c2FtcGxlX2FzcGVj dF9yYXRpby5udW0gPiAwICYmIGF2Y3R4LT5zYW1wbGVfYXNwZWN0X3JhdGlvLmRlbiA+IDApCiAg ICAgICAgIGF2X3JlZHVjZSgmYXZjdHgtPnNhbXBsZV9hc3BlY3RfcmF0aW8ubnVtLCAmYXZjdHgt PnNhbXBsZV9hc3BlY3RfcmF0aW8uZGVuLAogICAgICAgICAgICAgICAgICAgIGF2Y3R4LT5zYW1w bGVfYXNwZWN0X3JhdGlvLm51bSwgIGF2Y3R4LT5zYW1wbGVfYXNwZWN0X3JhdGlvLmRlbiwKQEAg LTIyNCw3ICsyMjUsNyBAQCBzdGF0aWMgaW50IGRlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAq YXZjdHgsIEFWRnJhbWUgKnAsCiAgICAgLyogcHJlZmVycmVkIGZyYW1lIHJhdGUgZnJvbSBNb3Rp b24tcGljdHVyZSBmaWxtIGhlYWRlciAqLwogICAgIGlmIChvZmZzZXQgPj0gMTcyNCArIDQpIHsK ICAgICAgICAgYnVmID0gYXZwa3QtPmRhdGEgKyAxNzI0OwotICAgICAgICBpID0gcmVhZDMyKCZi dWYsIGVuZGlhbik7CisgICAgICAgIGkgPSByZWFkMzIoJmJ1ZiwgZHB4LT5lbmRpYW4pOwogICAg ICAgICBpZihpICYmIGkgIT0gMHhGRkZGRkZGRikgewogICAgICAgICAgICAgQVZSYXRpb25hbCBx ID0gYXZfZDJxKGF2X2ludDJmbG9hdChpKSwgNDA5Nik7CiAgICAgICAgICAgICBpZiAocS5udW0g PiAwICYmIHEuZGVuID4gMCkKQEAgLTIzNiw3ICsyMzcsNyBAQCBzdGF0aWMgaW50IGRlY29kZV9m cmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUgKnAsCiAgICAgaWYgKG9mZnNldCA+ PSAxOTQwICsgNCAmJgogICAgICAgICAhKGF2Y3R4LT5mcmFtZXJhdGUubnVtICYmIGF2Y3R4LT5m cmFtZXJhdGUuZGVuKSkgewogICAgICAgICBidWYgPSBhdnBrdC0+ZGF0YSArIDE5NDA7Ci0gICAg ICAgIGkgPSByZWFkMzIoJmJ1ZiwgZW5kaWFuKTsKKyAgICAgICAgaSA9IHJlYWQzMigmYnVmLCBk cHgtPmVuZGlhbik7CiAgICAgICAgIGlmKGkgJiYgaSAhPSAweEZGRkZGRkZGKSB7CiAgICAgICAg ICAgICBBVlJhdGlvbmFsIHEgPSBhdl9kMnEoYXZfaW50MmZsb2F0KGkpLCA0MDk2KTsKICAgICAg ICAgICAgIGlmIChxLm51bSA+IDAgJiYgcS5kZW4gPiAwKQpAQCAtMjUzLDcgKzI1NCw3IEBAIHN0 YXRpYyBpbnQgZGVjb2RlX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqcCwK ICAgICAgICAgYnVmID0gYXZwa3QtPmRhdGEgKyAxOTIwOwogICAgICAgICAvLyByZWFkMzIgdG8g bmF0aXZlIGVuZGlhbiwgYXZfYnN3YXAzMiB0byBvcHBvc2l0ZSBvZiBuYXRpdmUgZm9yCiAgICAg ICAgIC8vIGNvbXBhdGliaWxpdHkgd2l0aCBhdl90aW1lY29kZV9tYWtlX3NtcHRlX3RjX3N0cmlu ZzIgZXRjCi0gICAgICAgIHRjID0gYXZfYnN3YXAzMihyZWFkMzIoJmJ1ZiwgZW5kaWFuKSk7Cisg ICAgICAgIHRjID0gYXZfYnN3YXAzMihyZWFkMzIoJmJ1ZiwgZHB4LT5lbmRpYW4pKTsKIAogICAg ICAgICBpZiAoaSAhPSAweEZGRkZGRkZGKSB7CiAgICAgICAgICAgICBBVkZyYW1lU2lkZURhdGEg KnRjc2lkZTsKQEAgLTI3NywyMSArMjc4LDIxIEBAIHN0YXRpYyBpbnQgZGVjb2RlX2ZyYW1lKEFW Q29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqcCwKICAgICAvKiBjb2xvciByYW5nZSBmcm9t IHRlbGV2aXNpb24gaGVhZGVyICovCiAgICAgaWYgKG9mZnNldCA+PSAxOTY0ICsgNCkgewogICAg ICAgICBidWYgPSBhdnBrdC0+ZGF0YSArIDE5NTI7Ci0gICAgICAgIGkgPSByZWFkMzIoJmJ1Ziwg ZW5kaWFuKTsKKyAgICAgICAgaSA9IHJlYWQzMigmYnVmLCBkcHgtPmVuZGlhbik7CiAKICAgICAg ICAgYnVmID0gYXZwa3QtPmRhdGEgKyAxOTY0OwotICAgICAgICBqID0gcmVhZDMyKCZidWYsIGVu ZGlhbik7CisgICAgICAgIGogPSByZWFkMzIoJmJ1ZiwgZHB4LT5lbmRpYW4pOwogCiAgICAgICAg IGlmIChpICE9IDB4RkZGRkZGRkYgJiYgaiAhPSAweEZGRkZGRkZGKSB7CiAgICAgICAgICAgICBm bG9hdCBtaW5DViwgbWF4Q1Y7CiAgICAgICAgICAgICBtaW5DViA9IGF2X2ludDJmbG9hdChpKTsK ICAgICAgICAgICAgIG1heENWID0gYXZfaW50MmZsb2F0KGopOwotICAgICAgICAgICAgaWYgKGJp dHNfcGVyX2NvbG9yID49IDEgJiYKLSAgICAgICAgICAgICAgICBtaW5DViA9PSAwLjBmICYmIG1h eENWID09ICgoMVU8PGJpdHNfcGVyX2NvbG9yKSAtIDEpKSB7CisgICAgICAgICAgICBpZiAoYXZj dHgtPmJpdHNfcGVyX3Jhd19zYW1wbGUgPj0gMSAmJgorICAgICAgICAgICAgICAgIG1pbkNWID09 IDAuMGYgJiYgbWF4Q1YgPT0gKCgxVTw8YXZjdHgtPmJpdHNfcGVyX3Jhd19zYW1wbGUpIC0gMSkp IHsKICAgICAgICAgICAgICAgICBhdmN0eC0+Y29sb3JfcmFuZ2UgPSBBVkNPTF9SQU5HRV9KUEVH OwotICAgICAgICAgICAgfSBlbHNlIGlmIChiaXRzX3Blcl9jb2xvciA+PSA4ICYmCi0gICAgICAg ICAgICAgICAgICAgICAgIG1pbkNWID09ICgxICA8PChiaXRzX3Blcl9jb2xvciAtIDQpKSAmJgot ICAgICAgICAgICAgICAgICAgICAgICBtYXhDViA9PSAoMjM1PDwoYml0c19wZXJfY29sb3IgLSA4 KSkpIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXZjdHgtPmJpdHNfcGVyX3Jhd19zYW1wbGUg Pj0gOCAmJgorICAgICAgICAgICAgICAgICAgICAgICBtaW5DViA9PSAoMSAgPDwoYXZjdHgtPmJp dHNfcGVyX3Jhd19zYW1wbGUgLSA0KSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgbWF4Q1Yg PT0gKDIzNTw8KGF2Y3R4LT5iaXRzX3Blcl9yYXdfc2FtcGxlIC0gOCkpKSB7CiAgICAgICAgICAg ICAgICAgYXZjdHgtPmNvbG9yX3JhbmdlID0gQVZDT0xfUkFOR0VfTVBFRzsKICAgICAgICAgICAg IH0KICAgICAgICAgfQpAQCAtMzAzLDI4ICszMDQsMjggQEAgc3RhdGljIGludCBkZWNvZGVfZnJh bWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpwLAogICAgIGNhc2UgMzogIC8vIEIK ICAgICBjYXNlIDQ6ICAvLyBBCiAgICAgY2FzZSA2OiAgLy8gWQotICAgICAgICBlbGVtZW50cyA9 IDE7CisgICAgICAgIGRweC0+Y29tcG9uZW50cyA9IDE7CiAgICAgICAgIHl1diA9IDE7CiAgICAg ICAgIGJyZWFrOwogICAgIGNhc2UgNTA6IC8vIFJHQgotICAgICAgICBlbGVtZW50cyA9IDM7Cisg ICAgICAgIGRweC0+Y29tcG9uZW50cyA9IDM7CiAgICAgICAgIHl1diA9IDA7CiAgICAgICAgIGJy ZWFrOwogICAgIGNhc2UgNTI6IC8vIEFCR1IKICAgICBjYXNlIDUxOiAvLyBSR0JBCi0gICAgICAg IGVsZW1lbnRzID0gNDsKKyAgICAgICAgZHB4LT5jb21wb25lbnRzID0gNDsKICAgICAgICAgeXV2 ID0gMDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAxMDA6IC8vIFVZVlk0MjIKLSAgICAgICAg ZWxlbWVudHMgPSAyOworICAgICAgICBkcHgtPmNvbXBvbmVudHMgPSAyOwogICAgICAgICB5dXYg PSAxOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDEwMjogLy8gVVlWNDQ0Ci0gICAgICAgIGVs ZW1lbnRzID0gMzsKKyAgICAgICAgZHB4LT5jb21wb25lbnRzID0gMzsKICAgICAgICAgeXV2ID0g MTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAxMDM6IC8vIFVZVkE0NDQ0Ci0gICAgICAgIGVs ZW1lbnRzID0gNDsKKyAgICAgICAgZHB4LT5jb21wb25lbnRzID0gNDsKICAgICAgICAgeXV2ID0g MTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKQEAgLTMzMiw0MCArMzMzLDQwIEBAIHN0 YXRpYyBpbnQgZGVjb2RlX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqcCwK ICAgICAgICAgcmV0dXJuIEFWRVJST1JfUEFUQ0hXRUxDT01FOwogICAgIH0KIAotICAgIHN3aXRj aCAoYml0c19wZXJfY29sb3IpIHsKKyAgICBzd2l0Y2ggKGF2Y3R4LT5iaXRzX3Blcl9yYXdfc2Ft cGxlKSB7CiAgICAgY2FzZSA4OgotICAgICAgICBzdHJpZGUgPSBhdmN0eC0+d2lkdGggKiBlbGVt ZW50czsKKyAgICAgICAgZHB4LT5zdHJpZGUgPSBhdmN0eC0+d2lkdGggKiBkcHgtPmNvbXBvbmVu dHM7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgMTA6Ci0gICAgICAgIGlmICghcGFja2luZykg eworICAgICAgICBpZiAoIWRweC0+cGFja2luZykgewogICAgICAgICAgICAgYXZfbG9nKGF2Y3R4 LCBBVl9MT0dfRVJST1IsICJQYWNraW5nIHRvIDMyYml0IHJlcXVpcmVkXG4iKTsKICAgICAgICAg ICAgIHJldHVybiAtMTsKICAgICAgICAgfQotICAgICAgICBzdHJpZGUgPSAoYXZjdHgtPndpZHRo ICogZWxlbWVudHMgKyAyKSAvIDMgKiA0OworICAgICAgICBkcHgtPnN0cmlkZSA9IChhdmN0eC0+ d2lkdGggKiBkcHgtPmNvbXBvbmVudHMgKyAyKSAvIDMgKiA0OwogICAgICAgICBicmVhazsKICAg ICBjYXNlIDEyOgotICAgICAgICBzdHJpZGUgPSBhdmN0eC0+d2lkdGggKiBlbGVtZW50czsKLSAg ICAgICAgaWYgKHBhY2tpbmcpIHsKLSAgICAgICAgICAgIHN0cmlkZSAqPSAyOworICAgICAgICBk cHgtPnN0cmlkZSA9IGF2Y3R4LT53aWR0aCAqIGRweC0+Y29tcG9uZW50czsKKyAgICAgICAgaWYg KGRweC0+cGFja2luZykgeworICAgICAgICAgICAgZHB4LT5zdHJpZGUgKj0gMjsKICAgICAgICAg fSBlbHNlIHsKLSAgICAgICAgICAgIHN0cmlkZSAqPSAzOwotICAgICAgICAgICAgaWYgKHN0cmlk ZSAlIDgpIHsKLSAgICAgICAgICAgICAgICBzdHJpZGUgLz0gODsKLSAgICAgICAgICAgICAgICBz dHJpZGUrKzsKLSAgICAgICAgICAgICAgICBzdHJpZGUgKj0gODsKKyAgICAgICAgICAgIGRweC0+ c3RyaWRlICo9IDM7CisgICAgICAgICAgICBpZiAoZHB4LT5zdHJpZGUgJSA4KSB7CisgICAgICAg ICAgICAgICAgZHB4LT5zdHJpZGUgLz0gODsKKyAgICAgICAgICAgICAgICBkcHgtPnN0cmlkZSsr OworICAgICAgICAgICAgICAgIGRweC0+c3RyaWRlICo9IDg7CiAgICAgICAgICAgICB9Ci0gICAg ICAgICAgICBzdHJpZGUgLz0gMjsKKyAgICAgICAgICAgIGRweC0+c3RyaWRlIC89IDI7CiAgICAg ICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAxNjoKLSAgICAgICAgc3RyaWRlID0gMiAq IGF2Y3R4LT53aWR0aCAqIGVsZW1lbnRzOworICAgICAgICBkcHgtPnN0cmlkZSA9IDIgKiBhdmN0 eC0+d2lkdGggKiBkcHgtPmNvbXBvbmVudHM7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgMzI6 Ci0gICAgICAgIHN0cmlkZSA9IDQgKiBhdmN0eC0+d2lkdGggKiBlbGVtZW50czsKKyAgICAgICAg ZHB4LT5zdHJpZGUgPSA0ICogYXZjdHgtPndpZHRoICogZHB4LT5jb21wb25lbnRzOwogICAgICAg ICBicmVhazsKICAgICBjYXNlIDE6CiAgICAgY2FzZSA2NDoKLSAgICAgICAgYXZwcml2X3JlcG9y dF9taXNzaW5nX2ZlYXR1cmUoYXZjdHgsICJEZXB0aCAlZCIsIGJpdHNfcGVyX2NvbG9yKTsKKyAg ICAgICAgYXZwcml2X3JlcG9ydF9taXNzaW5nX2ZlYXR1cmUoYXZjdHgsICJEZXB0aCAlZCIsIGF2 Y3R4LT5iaXRzX3Blcl9yYXdfc2FtcGxlKTsKICAgICAgICAgcmV0dXJuIEFWRVJST1JfUEFUQ0hX RUxDT01FOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRB OwpAQCAtNDU4LDggKzQ1OSw4IEBAIHN0YXRpYyBpbnQgZGVjb2RlX2ZyYW1lKEFWQ29kZWNDb250 ZXh0ICphdmN0eCwgQVZGcmFtZSAqcCwKICAgICAvLyBTb21lIGRldmljZXMgZG8gbm90IHBhZCAx MGJpdCBzYW1wbGVzIHRvIHdob2xlIDMyYml0IHdvcmRzIHBlciByb3cKICAgICBpZiAoIW1lbWNt cChpbnB1dF9kZXZpY2UsICJTY2FuaXR5IiwgNykgfHwKICAgICAgICAgIW1lbWNtcChjcmVhdG9y LCAiTGFzZXJncmFwaGljcyBJbmMuIiwgMTgpKSB7Ci0gICAgICAgIGlmIChiaXRzX3Blcl9jb2xv ciA9PSAxMCkKLSAgICAgICAgICAgIHVucGFkZGVkXzEwYml0ID0gMTsKKyAgICAgICAgaWYgKGF2 Y3R4LT5iaXRzX3Blcl9yYXdfc2FtcGxlID09IDEwKQorICAgICAgICAgICAgZHB4LT51bnBhZGRl ZF8xMGJpdCA9IDE7CiAgICAgfQogCiAgICAgLy8gVGFibGUgM2M6IFJ1bnMgd2lsbCBhbHdheXMg YnJlYWsgYXQgc2NhbiBsaW5lIGJvdW5kYXJpZXMuIFBhY2tpbmcKQEAgLTQ2NywyNCArNDY4LDI0 IEBAIHN0YXRpYyBpbnQgZGVjb2RlX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFt ZSAqcCwKICAgICAvLyBVbmZvcnR1bmF0ZWx5LCB0aGUgZW5jb2RlciBwcm9kdWNlZCBpbnZhbGlk IGZpbGVzLCBzbyBhdHRlbXB0CiAgICAgLy8gdG8gZGV0ZWN0IGl0CiAgICAgLy8gQWxzbyBoYW5k bGUgc3BlY2lhbCBjYXNlIHdpdGggdW5wYWRkZWQgY29udGVudAotICAgIG5lZWRfYWxpZ24gPSBG RkFMSUdOKHN0cmlkZSwgNCk7Ci0gICAgaWYgKG5lZWRfYWxpZ24qYXZjdHgtPmhlaWdodCArIChp bnQ2NF90KW9mZnNldCA+IGF2cGt0LT5zaXplICYmCi0gICAgICAgICghdW5wYWRkZWRfMTBiaXQg fHwgKGF2Y3R4LT53aWR0aCAqIGF2Y3R4LT5oZWlnaHQgKiBlbGVtZW50cyArIDIpIC8gMyAqIDQg KyAoaW50NjRfdClvZmZzZXQgPiBhdnBrdC0+c2l6ZSkpIHsKKyAgICBkcHgtPm5lZWRfYWxpZ24g PSBGRkFMSUdOKGRweC0+c3RyaWRlLCA0KTsKKyAgICBpZiAoZHB4LT5uZWVkX2FsaWduKmF2Y3R4 LT5oZWlnaHQgKyAoaW50NjRfdClvZmZzZXQgPiBhdnBrdC0+c2l6ZSAmJgorICAgICAgICAoIWRw eC0+dW5wYWRkZWRfMTBiaXQgfHwgKGF2Y3R4LT53aWR0aCAqIGF2Y3R4LT5oZWlnaHQgKiBkcHgt PmNvbXBvbmVudHMgKyAyKSAvIDMgKiA0ICsgKGludDY0X3Qpb2Zmc2V0ID4gYXZwa3QtPnNpemUp KSB7CiAgICAgICAgIC8vIEFsaWdubWVudCBzZWVtcyB1bmFwcGxpYWJsZSwgdHJ5IHdpdGhvdXQK LSAgICAgICAgaWYgKHN0cmlkZSphdmN0eC0+aGVpZ2h0ICsgKGludDY0X3Qpb2Zmc2V0ID4gYXZw a3QtPnNpemUgfHwgdW5wYWRkZWRfMTBiaXQpIHsKKyAgICAgICAgaWYgKGRweC0+c3RyaWRlKmF2 Y3R4LT5oZWlnaHQgKyAoaW50NjRfdClvZmZzZXQgPiBhdnBrdC0+c2l6ZSB8fCBkcHgtPnVucGFk ZGVkXzEwYml0KSB7CiAgICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIk92 ZXJyZWFkIGJ1ZmZlci4gSW52YWxpZCBoZWFkZXI/XG4iKTsKICAgICAgICAgICAgIHJldHVybiBB VkVSUk9SX0lOVkFMSUREQVRBOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgYXZfbG9n KGF2Y3R4LCBBVl9MT0dfSU5GTywgIkRlY29kaW5nIERQWCB3aXRob3V0IHNjYW5saW5lICIKICAg ICAgICAgICAgICAgICAgICAiYWxpZ25tZW50LlxuIik7Ci0gICAgICAgICAgICBuZWVkX2FsaWdu ID0gMDsKKyAgICAgICAgICAgIGRweC0+bmVlZF9hbGlnbiA9IDA7CiAgICAgICAgIH0KICAgICB9 IGVsc2UgewotICAgICAgICBuZWVkX2FsaWduIC09IHN0cmlkZTsKLSAgICAgICAgc3RyaWRlID0g RkZBTElHTihzdHJpZGUsIDQpOworICAgICAgICBkcHgtPm5lZWRfYWxpZ24gLT0gZHB4LT5zdHJp ZGU7CisgICAgICAgIGRweC0+c3RyaWRlID0gRkZBTElHTihkcHgtPnN0cmlkZSwgNCk7CiAgICAg fQogCi0gICAgc3dpdGNoICgxMDAwICogZGVzY3JpcHRvciArIDEwICogYml0c19wZXJfY29sb3Ig KyBlbmRpYW4pIHsKKyAgICBzd2l0Y2ggKDEwMDAgKiBkZXNjcmlwdG9yICsgMTAgKiBhdmN0eC0+ Yml0c19wZXJfcmF3X3NhbXBsZSArIGRweC0+ZW5kaWFuKSB7CiAgICAgY2FzZSAxMDgxOgogICAg IGNhc2UgMTA4MDoKICAgICBjYXNlIDIwODE6CkBAIC01ODgsNyArNTg5LDcgQEAgc3RhdGljIGlu dCBkZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpwLAogICAgICAg ICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJP UiwgIlVuc3VwcG9ydGVkIGZvcm1hdCAlZFxuIiwKLSAgICAgICAgICAgICAgIDEwMDAgKiBkZXNj cmlwdG9yICsgMTAgKiBiaXRzX3Blcl9jb2xvciArIGVuZGlhbik7CisgICAgICAgICAgICAgICAx MDAwICogZGVzY3JpcHRvciArIDEwICogYXZjdHgtPmJpdHNfcGVyX3Jhd19zYW1wbGUgKyBkcHgt PmVuZGlhbik7CiAgICAgICAgIHJldHVybiBBVkVSUk9SX1BBVENIV0VMQ09NRTsKICAgICB9CiAK QEAgLTU5OSwxOCArNjAwLDIxIEBAIHN0YXRpYyBpbnQgZGVjb2RlX2ZyYW1lKEFWQ29kZWNDb250 ZXh0ICphdmN0eCwgQVZGcmFtZSAqcCwKIAogICAgIC8vIE1vdmUgcG9pbnRlciB0byBvZmZzZXQg ZnJvbSBzdGFydCBvZiBmaWxlCiAgICAgYnVmID0gIGF2cGt0LT5kYXRhICsgb2Zmc2V0OworICAg IGRweC0+ZnJhbWUgPSBwOwogCisgICAgaW50IGVsZW1lbnRzID0gZHB4LT5jb21wb25lbnRzOwor ICAgIGludCBlbmRpYW4gPSBkcHgtPmVuZGlhbjsKICAgICBmb3IgKGk9MDsgaTxBVl9OVU1fREFU QV9QT0lOVEVSUzsgaSsrKQogICAgICAgICBwdHJbaV0gPSBwLT5kYXRhW2ldOwogCi0gICAgc3dp dGNoIChiaXRzX3Blcl9jb2xvcikgeworICAgIHN3aXRjaCAoYXZjdHgtPmJpdHNfcGVyX3Jhd19z YW1wbGUpIHsKICAgICBjYXNlIDEwOgogICAgICAgICBmb3IgKHggPSAwOyB4IDwgYXZjdHgtPmhl aWdodDsgeCsrKSB7CiAgICAgICAgICAgICB1aW50MTZfdCAqZHN0WzRdID0geyh1aW50MTZfdCop cHRyWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodWludDE2X3QqKXB0clsx XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnQxNl90KilwdHJbMl0sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1aW50MTZfdCopcHRyWzNdfTsKLSAgICAg ICAgICAgIGludCBzaGlmdCA9IGVsZW1lbnRzID4gMSA/IHBhY2tpbmcgPT0gMSA/IDIyIDogMjAg OiBwYWNraW5nID09IDEgPyAyIDogMDsKKyAgICAgICAgICAgIGludCBzaGlmdCA9IGVsZW1lbnRz ID4gMSA/IGRweC0+cGFja2luZyA9PSAxID8gMjIgOiAyMCA6IGRweC0+cGFja2luZyA9PSAxID8g MiA6IDA7CiAgICAgICAgICAgICBmb3IgKHkgPSAwOyB5IDwgYXZjdHgtPndpZHRoOyB5KyspIHsK ICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudHMgPj0gMykKICAgICAgICAgICAgICAgICAgICAg KmRzdFsyXSsrID0gcmVhZDEwaW4zMigmYnVmLCAmcmdiQnVmZmVyLApAQCAtNjI5LDcgKzYzMyw3 IEBAIHN0YXRpYyBpbnQgZGVjb2RlX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFt ZSAqcCwKICAgICAgICAgICAgICAgICAgICAgcmVhZDEwaW4zMigmYnVmLCAmcmdiQnVmZmVyLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuX2RhdHVtLCBlbmRpYW4sIHNoaWZ0KTsK ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghdW5wYWRkZWRfMTBiaXQpCisgICAgICAg ICAgICBpZiAoIWRweC0+dW5wYWRkZWRfMTBiaXQpCiAgICAgICAgICAgICAgICAgbl9kYXR1bSA9 IDA7CiAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZWxlbWVudHM7IGkrKykKICAgICAgICAg ICAgICAgICBwdHJbaV0gKz0gcC0+bGluZXNpemVbaV07CkBAIC02NDEsOSArNjQ1LDkgQEAgc3Rh dGljIGludCBkZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpwLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodWludDE2X3QqKXB0clsxXSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnQxNl90KilwdHJbMl0sCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICh1aW50MTZfdCopcHRyWzNdfTsKLSAgICAgICAgICAgIGlu dCBzaGlmdCA9IHBhY2tpbmcgPT0gMSA/IDQgOiAwOworICAgICAgICAgICAgaW50IHNoaWZ0ID0g ZHB4LT5wYWNraW5nID09IDEgPyA0IDogMDsKICAgICAgICAgICAgIGZvciAoeSA9IDA7IHkgPCBh dmN0eC0+d2lkdGg7IHkrKykgewotICAgICAgICAgICAgICAgIGlmIChwYWNraW5nKSB7CisgICAg ICAgICAgICAgICAgaWYgKGRweC0+cGFja2luZykgewogICAgICAgICAgICAgICAgICAgICBpZiAo ZWxlbWVudHMgPj0gMykKICAgICAgICAgICAgICAgICAgICAgICAgICpkc3RbMl0rKyA9IHJlYWQx NigmYnVmLCBlbmRpYW4pID4+IHNoaWZ0ICYgMHhGRkY7CiAgICAgICAgICAgICAgICAgICAgICpk c3RbMF0rKyA9IHJlYWQxNigmYnVmLCBlbmRpYW4pID4+IHNoaWZ0ICYgMHhGRkY7CkBAIC02Njks MTMgKzY3MywxMyBAQCBzdGF0aWMgaW50IGRlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZj dHgsIEFWRnJhbWUgKnAsCiAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZWxlbWVudHM7IGkr KykKICAgICAgICAgICAgICAgICBwdHJbaV0gKz0gcC0+bGluZXNpemVbaV07CiAgICAgICAgICAg ICAvLyBKdW1wIHRvIG5leHQgYWxpZ25lZCBwb3NpdGlvbgotICAgICAgICAgICAgYnVmICs9IG5l ZWRfYWxpZ247CisgICAgICAgICAgICBidWYgKz0gZHB4LT5uZWVkX2FsaWduOwogICAgICAgICB9 CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgMzI6CiAgICAgICAgIGlmIChlbGVtZW50cyA9PSAx KSB7CiAgICAgICAgICAgICBhdl9pbWFnZV9jb3B5X3BsYW5lKHB0clswXSwgcC0+bGluZXNpemVb MF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Ziwgc3RyaWRlLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIGRweC0+c3RyaWRlLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBlbGVtZW50cyAqIGF2Y3R4LT53aWR0aCAqIDQsIGF2Y3R4LT5o ZWlnaHQpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgZm9yICh5ID0gMDsgeSA8IGF2 Y3R4LT5oZWlnaHQ7IHkrKykgewpAQCAtNzIyLDcgKzcyNiw3IEBAIHN0YXRpYyBpbnQgZGVjb2Rl X2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqcCwKICAgICAgICAgICAgIH0K ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgYXZfaW1hZ2VfY29weV9wbGFuZShwdHJbMF0sIHAt PmxpbmVzaXplWzBdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Ziwgc3RyaWRlLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiwgZHB4LT5zdHJpZGUsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZWxlbWVudHMgKiBhdmN0eC0+d2lkdGgsIGF2Y3R4LT5oZWlnaHQp OwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwpAQCAtNzM2LDYgKzc0MCw3IEBAIHN0YXRpYyBp bnQgZGVjb2RlX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqcCwKIGNvbnN0 IEZGQ29kZWMgZmZfZHB4X2RlY29kZXIgPSB7CiAgICAgLnAubmFtZSAgICAgICAgID0gImRweCIs CiAgICAgQ09ERUNfTE9OR19OQU1FKCJEUFggKERpZ2l0YWwgUGljdHVyZSBFeGNoYW5nZSkgaW1h Z2UiKSwKKyAgICAucHJpdl9kYXRhX3NpemUgPSBzaXplb2YoRFBYRGVjQ29udGV4dCksCiAgICAg LnAudHlwZSAgICAgICAgID0gQVZNRURJQV9UWVBFX1ZJREVPLAogICAgIC5wLmlkICAgICAgICAg ICA9IEFWX0NPREVDX0lEX0RQWCwKICAgICBGRl9DT0RFQ19ERUNPREVfQ0IoZGVjb2RlX2ZyYW1l KSwKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvZHB4LmggYi9saWJhdmNvZGVjL2RweC5oCmluZGV4 IDgwMGM2NTFlNWEuLjM1ZThhYTY5MGYgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvZHB4LmgKKysr IGIvbGliYXZjb2RlYy9kcHguaApAQCAtMjIsNiArMjIsOCBAQAogI2lmbmRlZiBBVkNPREVDX0RQ WF9ICiAjZGVmaW5lIEFWQ09ERUNfRFBYX0gKIAorI2luY2x1ZGUgImxpYmF2dXRpbC9mcmFtZS5o IgorCiBlbnVtIERQWF9UUkMgewogICAgIERQWF9UUkNfVVNFUl9ERUZJTkVEICAgICAgID0gMCwK ICAgICBEUFhfVFJDX1BSSU5USU5HX0RFTlNJVFkgICA9IDEsCkBAIC01NCw0ICs1NiwxNSBAQCBl bnVtIERQWF9DT0xfU1BFQyB7CiAgICAgLyogMTIgPSBOL0EgKi8KIH07CiAKK3R5cGVkZWYgc3Ry dWN0IERQWERlY0NvbnRleHQgeworICAgIEFWRnJhbWUgKmZyYW1lOworCisgICAgaW50IHBhY2tp bmc7CisgICAgaW50IHN0cmlkZTsKKyAgICBpbnQgZW5kaWFuOworICAgIGludCBjb21wb25lbnRz OworICAgIGludCB1bnBhZGRlZF8xMGJpdDsKKyAgICBpbnQgbmVlZF9hbGlnbjsKK30gRFBYRGVj Q29udGV4dDsKKwogI2VuZGlmIC8qIEFWQ09ERUNfRFBYX0ggKi8KLS0gCjIuNTIuMAoKCkZyb20g YzEwNGE5MGNkZWE3ZTA0OTg5ZDUwMjg5NzdjNTAwNDk1ZGM1YTkwZSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogTHlubmUgPGRldkBseW5uZS5lZT4KRGF0ZTogU3VuLCA5IE5vdiAyMDI1 IDExOjExOjU0ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwOTUvMzA0XSBkcHhkZWM6IG1vdmUgZGF0 YSBwYXJzaW5nIGludG8gYSBzZXBhcmF0ZSBmdW5jdGlvbgoKLS0tCiBsaWJhdmNvZGVjL2RweC5j IHwgMjc1ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgMTQxIGluc2VydGlvbnMoKyksIDEzNCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9saWJhdmNvZGVjL2RweC5jIGIvbGliYXZjb2RlYy9kcHguYwppbmRleCBjODk4MWJi ZjNhLi45NmQ0NjQ3Mzg5IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2RweC5jCisrKyBiL2xpYmF2 Y29kZWMvZHB4LmMKQEAgLTExOCw2ICsxMTgsMTQ1IEBAIHN0YXRpYyB1aW50MTZfdCByZWFkMTJp bjMyKGNvbnN0IHVpbnQ4X3QgKipwdHIsIHVpbnQzMl90ICpsYnVmLAogICAgIH0KIH0KIAorc3Rh dGljIHZvaWQgdW5wYWNrX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqcCwg Y29uc3QgdWludDhfdCAqYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbGVtZW50 cywgaW50IGVuZGlhbikKK3sKKyAgICBpbnQgaSwgeCwgeTsKKyAgICBEUFhEZWNDb250ZXh0ICpk cHggPSBhdmN0eC0+cHJpdl9kYXRhOworCisgICAgdWludDhfdCAqcHRyW0FWX05VTV9EQVRBX1BP SU5URVJTXTsKKyAgICB1bnNpZ25lZCBpbnQgcmdiQnVmZmVyID0gMDsKKyAgICBpbnQgbl9kYXR1 bSA9IDA7CisKKyAgICBmb3IgKGk9MDsgaTxBVl9OVU1fREFUQV9QT0lOVEVSUzsgaSsrKQorICAg ICAgICBwdHJbaV0gPSBwLT5kYXRhW2ldOworCisgICAgc3dpdGNoIChhdmN0eC0+Yml0c19wZXJf cmF3X3NhbXBsZSkgeworICAgIGNhc2UgMTA6CisgICAgICAgIGZvciAoeCA9IDA7IHggPCBhdmN0 eC0+aGVpZ2h0OyB4KyspIHsKKyAgICAgICAgICAgIHVpbnQxNl90ICpkc3RbNF0gPSB7KHVpbnQx Nl90KilwdHJbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1aW50MTZfdCop cHRyWzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodWludDE2X3QqKXB0clsy XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnQxNl90KilwdHJbM119Owor ICAgICAgICAgICAgaW50IHNoaWZ0ID0gZWxlbWVudHMgPiAxID8gZHB4LT5wYWNraW5nID09IDEg PyAyMiA6IDIwIDogZHB4LT5wYWNraW5nID09IDEgPyAyIDogMDsKKyAgICAgICAgICAgIGZvciAo eSA9IDA7IHkgPCBhdmN0eC0+d2lkdGg7IHkrKykgeworICAgICAgICAgICAgICAgIGlmIChlbGVt ZW50cyA+PSAzKQorICAgICAgICAgICAgICAgICAgICAqZHN0WzJdKysgPSByZWFkMTBpbjMyKCZi dWYsICZyZ2JCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJm5fZGF0dW0sIGVuZGlhbiwgc2hpZnQpOworICAgICAgICAgICAgICAgIGlmIChlbGVtZW50 cyA9PSAxKQorICAgICAgICAgICAgICAgICAgICAqZHN0WzBdKysgPSByZWFkMTBpbjMyX2dyYXko JmJ1ZiwgJnJnYkJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZuX2RhdHVtLCBlbmRpYW4sIHNoaWZ0KTsKKyAgICAgICAgICAgICAgICBlbHNl CisgICAgICAgICAgICAgICAgICAgICpkc3RbMF0rKyA9IHJlYWQxMGluMzIoJmJ1ZiwgJnJnYkJ1 ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbl9kYXR1 bSwgZW5kaWFuLCBzaGlmdCk7CisgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRzID49IDIpCisg ICAgICAgICAgICAgICAgICAgICpkc3RbMV0rKyA9IHJlYWQxMGluMzIoJmJ1ZiwgJnJnYkJ1ZmZl ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbl9kYXR1bSwg ZW5kaWFuLCBzaGlmdCk7CisgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRzID09IDQpCisgICAg ICAgICAgICAgICAgICAgICpkc3RbM10rKyA9CisgICAgICAgICAgICAgICAgICAgIHJlYWQxMGlu MzIoJmJ1ZiwgJnJnYkJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbl9k YXR1bSwgZW5kaWFuLCBzaGlmdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWRw eC0+dW5wYWRkZWRfMTBiaXQpCisgICAgICAgICAgICAgICAgbl9kYXR1bSA9IDA7CisgICAgICAg ICAgICBmb3IgKGkgPSAwOyBpIDwgZWxlbWVudHM7IGkrKykKKyAgICAgICAgICAgICAgICBwdHJb aV0gKz0gcC0+bGluZXNpemVbaV07CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2Fz ZSAxMjoKKyAgICAgICAgZm9yICh4ID0gMDsgeCA8IGF2Y3R4LT5oZWlnaHQ7IHgrKykgeworICAg ICAgICAgICAgdWludDE2X3QgKmRzdFs0XSA9IHsodWludDE2X3QqKXB0clswXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnQxNl90KilwdHJbMV0sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICh1aW50MTZfdCopcHRyWzJdLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAodWludDE2X3QqKXB0clszXX07CisgICAgICAgICAgICBpbnQgc2hpZnQg PSBkcHgtPnBhY2tpbmcgPT0gMSA/IDQgOiAwOworICAgICAgICAgICAgZm9yICh5ID0gMDsgeSA8 IGF2Y3R4LT53aWR0aDsgeSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGRweC0+cGFja2luZykg eworICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudHMgPj0gMykKKyAgICAgICAgICAgICAg ICAgICAgICAgICpkc3RbMl0rKyA9IHJlYWQxNigmYnVmLCBlbmRpYW4pID4+IHNoaWZ0ICYgMHhG RkY7CisgICAgICAgICAgICAgICAgICAgICpkc3RbMF0rKyA9IHJlYWQxNigmYnVmLCBlbmRpYW4p ID4+IHNoaWZ0ICYgMHhGRkY7CisgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50cyA+PSAy KQorICAgICAgICAgICAgICAgICAgICAgICAgKmRzdFsxXSsrID0gcmVhZDE2KCZidWYsIGVuZGlh bikgPj4gc2hpZnQgJiAweEZGRjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRzID09 IDQpCisgICAgICAgICAgICAgICAgICAgICAgICAqZHN0WzNdKysgPSByZWFkMTYoJmJ1ZiwgZW5k aWFuKSA+PiBzaGlmdCAmIDB4RkZGOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg ICAgICAgICAgICAgIGlmIChlbGVtZW50cyA+PSAzKQorICAgICAgICAgICAgICAgICAgICAgICAg KmRzdFsyXSsrID0gcmVhZDEyaW4zMigmYnVmLCAmcmdiQnVmZmVyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbl9kYXR1bSwgZW5kaWFuKTsKKyAgICAg ICAgICAgICAgICAgICAgKmRzdFswXSsrID0gcmVhZDEyaW4zMigmYnVmLCAmcmdiQnVmZmVyLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuX2RhdHVtLCBlbmRp YW4pOworICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudHMgPj0gMikKKyAgICAgICAgICAg ICAgICAgICAgICAgICpkc3RbMV0rKyA9IHJlYWQxMmluMzIoJmJ1ZiwgJnJnYkJ1ZmZlciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5fZGF0dW0sIGVu ZGlhbik7CisgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50cyA9PSA0KQorICAgICAgICAg ICAgICAgICAgICAgICAgKmRzdFszXSsrID0gcmVhZDEyaW4zMigmYnVmLCAmcmdiQnVmZmVyLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbl9kYXR1bSwg ZW5kaWFuKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBu X2RhdHVtID0gMDsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBlbGVtZW50czsgaSsrKQor ICAgICAgICAgICAgICAgIHB0cltpXSArPSBwLT5saW5lc2l6ZVtpXTsKKyAgICAgICAgICAgIC8v IEp1bXAgdG8gbmV4dCBhbGlnbmVkIHBvc2l0aW9uCisgICAgICAgICAgICBidWYgKz0gZHB4LT5u ZWVkX2FsaWduOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMzI6CisgICAg ICAgIGlmIChlbGVtZW50cyA9PSAxKSB7CisgICAgICAgICAgICBhdl9pbWFnZV9jb3B5X3BsYW5l KHB0clswXSwgcC0+bGluZXNpemVbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJ1ZiwgZHB4LT5zdHJpZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1l bnRzICogYXZjdHgtPndpZHRoICogNCwgYXZjdHgtPmhlaWdodCk7CisgICAgICAgIH0gZWxzZSB7 CisgICAgICAgICAgICBmb3IgKHkgPSAwOyB5IDwgYXZjdHgtPmhlaWdodDsgeSsrKSB7CisgICAg ICAgICAgICAgICAgcHRyWzBdID0gcC0+ZGF0YVswXSArIHkgKiBwLT5saW5lc2l6ZVswXTsKKyAg ICAgICAgICAgICAgICBwdHJbMV0gPSBwLT5kYXRhWzFdICsgeSAqIHAtPmxpbmVzaXplWzFdOwor ICAgICAgICAgICAgICAgIHB0clsyXSA9IHAtPmRhdGFbMl0gKyB5ICogcC0+bGluZXNpemVbMl07 CisgICAgICAgICAgICAgICAgcHRyWzNdID0gcC0+ZGF0YVszXSArIHkgKiBwLT5saW5lc2l6ZVsz XTsKKyAgICAgICAgICAgICAgICBmb3IgKHggPSAwOyB4IDwgYXZjdHgtPndpZHRoOyB4KyspIHsK KyAgICAgICAgICAgICAgICAgICAgQVZfV04zMihwdHJbMl0sIEFWX1JOMzIoYnVmKSk7CisgICAg ICAgICAgICAgICAgICAgIEFWX1dOMzIocHRyWzBdLCBBVl9STjMyKGJ1ZiArIDQpKTsKKyAgICAg ICAgICAgICAgICAgICAgQVZfV04zMihwdHJbMV0sIEFWX1JOMzIoYnVmICsgOCkpOworICAgICAg ICAgICAgICAgICAgICBpZiAoYXZjdHgtPnBpeF9mbXQgPT0gQVZfUElYX0ZNVF9HQlJBUEYzMkJF IHx8CisgICAgICAgICAgICAgICAgICAgICAgICBhdmN0eC0+cGl4X2ZtdCA9PSBBVl9QSVhfRk1U X0dCUkFQRjMyTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFWX1dOMzIocHRyWzNdLCBB Vl9STjMyKGJ1ZiArIDEyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYgKz0gNDsKKyAg ICAgICAgICAgICAgICAgICAgICAgIHB0clszXSArPSA0OworICAgICAgICAgICAgICAgICAgICB9 CisKKyAgICAgICAgICAgICAgICAgICAgYnVmICs9IDEyOworICAgICAgICAgICAgICAgICAgICBw dHJbMl0gKz0gNDsKKyAgICAgICAgICAgICAgICAgICAgcHRyWzBdICs9IDQ7CisgICAgICAgICAg ICAgICAgICAgIHB0clsxXSArPSA0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K KyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIDE2OgorICAgICAgICBlbGVtZW50 cyAqPSAyOworICAgIGNhc2UgODoKKyAgICAgICAgaWYgKCAgIGF2Y3R4LT5waXhfZm10ID09IEFW X1BJWF9GTVRfWVVWQTQ0NFAKKyAgICAgICAgICAgIHx8IGF2Y3R4LT5waXhfZm10ID09IEFWX1BJ WF9GTVRfWVVWNDQ0UCkgeworICAgICAgICAgICAgZm9yICh4ID0gMDsgeCA8IGF2Y3R4LT5oZWln aHQ7IHgrKykgeworICAgICAgICAgICAgICAgIHB0clswXSA9IHAtPmRhdGFbMF0gKyB4ICogcC0+ bGluZXNpemVbMF07CisgICAgICAgICAgICAgICAgcHRyWzFdID0gcC0+ZGF0YVsxXSArIHggKiBw LT5saW5lc2l6ZVsxXTsKKyAgICAgICAgICAgICAgICBwdHJbMl0gPSBwLT5kYXRhWzJdICsgeCAq IHAtPmxpbmVzaXplWzJdOworICAgICAgICAgICAgICAgIHB0clszXSA9IHAtPmRhdGFbM10gKyB4 ICogcC0+bGluZXNpemVbM107CisgICAgICAgICAgICAgICAgZm9yICh5ID0gMDsgeSA8IGF2Y3R4 LT53aWR0aDsgeSsrKSB7CisgICAgICAgICAgICAgICAgICAgICpwdHJbMV0rKyA9ICpidWYrKzsK KyAgICAgICAgICAgICAgICAgICAgKnB0clswXSsrID0gKmJ1ZisrOworICAgICAgICAgICAgICAg ICAgICAqcHRyWzJdKysgPSAqYnVmKys7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdmN0eC0+ cGl4X2ZtdCA9PSBBVl9QSVhfRk1UX1lVVkE0NDRQKQorICAgICAgICAgICAgICAgICAgICAgICAg KnB0clszXSsrID0gKmJ1ZisrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAg ICAgICAgfSBlbHNlIHsKKyAgICAgICAgYXZfaW1hZ2VfY29weV9wbGFuZShwdHJbMF0sIHAtPmxp bmVzaXplWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiwgZHB4LT5zdHJpZGUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMgKiBhdmN0eC0+d2lkdGgsIGF2 Y3R4LT5oZWlnaHQpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwogc3Rh dGljIGludCBkZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpwLAog ICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpnb3RfZnJhbWUsIEFWUGFja2V0ICphdnBrdCkK IHsKQEAgLTEyNSwyMSArMjY0LDE3IEBAIHN0YXRpYyBpbnQgZGVjb2RlX2ZyYW1lKEFWQ29kZWND b250ZXh0ICphdmN0eCwgQVZGcmFtZSAqcCwKIAogICAgIGNvbnN0IHVpbnQ4X3QgKmJ1ZiA9IGF2 cGt0LT5kYXRhOwogICAgIGludCBidWZfc2l6ZSAgICAgICA9IGF2cGt0LT5zaXplOwotICAgIHVp bnQ4X3QgKnB0cltBVl9OVU1fREFUQV9QT0lOVEVSU107CiAgICAgdWludDMyX3QgaGVhZGVyX3Zl cnNpb24sIHZlcnNpb24gPSAwOwogICAgIGNoYXIgY3JlYXRvclsxMDFdID0geyAwIH07CiAgICAg Y2hhciBpbnB1dF9kZXZpY2VbMzNdID0geyAwIH07CiAKICAgICB1bnNpZ25lZCBpbnQgb2Zmc2V0 OwogICAgIGludCBtYWdpY19udW07Ci0gICAgaW50IHgsIHksIGksIGosIHJldDsKKyAgICBpbnQg aSwgaiwgcmV0OwogICAgIGludCB3LCBoLCBkZXNjcmlwdG9yOwogICAgIGludCB5dXYsIGNvbG9y X3RyYywgY29sb3Jfc3BlYzsKICAgICBpbnQgZW5jb2Rpbmc7CiAKLSAgICB1bnNpZ25lZCBpbnQg cmdiQnVmZmVyID0gMDsKLSAgICBpbnQgbl9kYXR1bSA9IDA7Ci0KICAgICBpZiAoYXZwa3QtPnNp emUgPD0gMTYzNCkgewogICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIlBhY2tl dCB0b28gc21hbGwgZm9yIERQWCBoZWFkZXJcbiIpOwogICAgICAgICByZXR1cm4gQVZFUlJPUl9J TlZBTElEREFUQTsKQEAgLTYwMiwxMzUgKzczNyw3IEBAIHN0YXRpYyBpbnQgZGVjb2RlX2ZyYW1l KEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqcCwKICAgICBidWYgPSAgYXZwa3QtPmRh dGEgKyBvZmZzZXQ7CiAgICAgZHB4LT5mcmFtZSA9IHA7CiAKLSAgICBpbnQgZWxlbWVudHMgPSBk cHgtPmNvbXBvbmVudHM7Ci0gICAgaW50IGVuZGlhbiA9IGRweC0+ZW5kaWFuOwotICAgIGZvciAo aT0wOyBpPEFWX05VTV9EQVRBX1BPSU5URVJTOyBpKyspCi0gICAgICAgIHB0cltpXSA9IHAtPmRh dGFbaV07Ci0KLSAgICBzd2l0Y2ggKGF2Y3R4LT5iaXRzX3Blcl9yYXdfc2FtcGxlKSB7Ci0gICAg Y2FzZSAxMDoKLSAgICAgICAgZm9yICh4ID0gMDsgeCA8IGF2Y3R4LT5oZWlnaHQ7IHgrKykgewot ICAgICAgICAgICAgdWludDE2X3QgKmRzdFs0XSA9IHsodWludDE2X3QqKXB0clswXSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnQxNl90KilwdHJbMV0sCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICh1aW50MTZfdCopcHRyWzJdLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAodWludDE2X3QqKXB0clszXX07Ci0gICAgICAgICAgICBpbnQgc2hp ZnQgPSBlbGVtZW50cyA+IDEgPyBkcHgtPnBhY2tpbmcgPT0gMSA/IDIyIDogMjAgOiBkcHgtPnBh Y2tpbmcgPT0gMSA/IDIgOiAwOwotICAgICAgICAgICAgZm9yICh5ID0gMDsgeSA8IGF2Y3R4LT53 aWR0aDsgeSsrKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRzID49IDMpCi0gICAgICAg ICAgICAgICAgICAgICpkc3RbMl0rKyA9IHJlYWQxMGluMzIoJmJ1ZiwgJnJnYkJ1ZmZlciwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbl9kYXR1bSwgZW5kaWFu LCBzaGlmdCk7Ci0gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRzID09IDEpCi0gICAgICAgICAg ICAgICAgICAgICpkc3RbMF0rKyA9IHJlYWQxMGluMzJfZ3JheSgmYnVmLCAmcmdiQnVmZmVyLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5fZGF0dW0s IGVuZGlhbiwgc2hpZnQpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAg ICAgKmRzdFswXSsrID0gcmVhZDEwaW4zMigmYnVmLCAmcmdiQnVmZmVyLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuX2RhdHVtLCBlbmRpYW4sIHNoaWZ0KTsK LSAgICAgICAgICAgICAgICBpZiAoZWxlbWVudHMgPj0gMikKLSAgICAgICAgICAgICAgICAgICAg KmRzdFsxXSsrID0gcmVhZDEwaW4zMigmYnVmLCAmcmdiQnVmZmVyLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuX2RhdHVtLCBlbmRpYW4sIHNoaWZ0KTsKLSAg ICAgICAgICAgICAgICBpZiAoZWxlbWVudHMgPT0gNCkKLSAgICAgICAgICAgICAgICAgICAgKmRz dFszXSsrID0KLSAgICAgICAgICAgICAgICAgICAgcmVhZDEwaW4zMigmYnVmLCAmcmdiQnVmZmVy LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuX2RhdHVtLCBlbmRpYW4sIHNoaWZ0 KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghZHB4LT51bnBhZGRlZF8xMGJpdCkK LSAgICAgICAgICAgICAgICBuX2RhdHVtID0gMDsKLSAgICAgICAgICAgIGZvciAoaSA9IDA7IGkg PCBlbGVtZW50czsgaSsrKQotICAgICAgICAgICAgICAgIHB0cltpXSArPSBwLT5saW5lc2l6ZVtp XTsKLSAgICAgICAgfQotICAgICAgICBicmVhazsKLSAgICBjYXNlIDEyOgotICAgICAgICBmb3Ig KHggPSAwOyB4IDwgYXZjdHgtPmhlaWdodDsgeCsrKSB7Ci0gICAgICAgICAgICB1aW50MTZfdCAq ZHN0WzRdID0geyh1aW50MTZfdCopcHRyWzBdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAodWludDE2X3QqKXB0clsxXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHVpbnQxNl90KilwdHJbMl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1aW50 MTZfdCopcHRyWzNdfTsKLSAgICAgICAgICAgIGludCBzaGlmdCA9IGRweC0+cGFja2luZyA9PSAx ID8gNCA6IDA7Ci0gICAgICAgICAgICBmb3IgKHkgPSAwOyB5IDwgYXZjdHgtPndpZHRoOyB5Kysp IHsKLSAgICAgICAgICAgICAgICBpZiAoZHB4LT5wYWNraW5nKSB7Ci0gICAgICAgICAgICAgICAg ICAgIGlmIChlbGVtZW50cyA+PSAzKQotICAgICAgICAgICAgICAgICAgICAgICAgKmRzdFsyXSsr ID0gcmVhZDE2KCZidWYsIGVuZGlhbikgPj4gc2hpZnQgJiAweEZGRjsKLSAgICAgICAgICAgICAg ICAgICAgKmRzdFswXSsrID0gcmVhZDE2KCZidWYsIGVuZGlhbikgPj4gc2hpZnQgJiAweEZGRjsK LSAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRzID49IDIpCi0gICAgICAgICAgICAgICAg ICAgICAgICAqZHN0WzFdKysgPSByZWFkMTYoJmJ1ZiwgZW5kaWFuKSA+PiBzaGlmdCAmIDB4RkZG OwotICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudHMgPT0gNCkKLSAgICAgICAgICAgICAg ICAgICAgICAgICpkc3RbM10rKyA9IHJlYWQxNigmYnVmLCBlbmRpYW4pID4+IHNoaWZ0ICYgMHhG RkY7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGVs ZW1lbnRzID49IDMpCi0gICAgICAgICAgICAgICAgICAgICAgICAqZHN0WzJdKysgPSByZWFkMTJp bjMyKCZidWYsICZyZ2JCdWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZuX2RhdHVtLCBlbmRpYW4pOwotICAgICAgICAgICAgICAgICAgICAqZHN0 WzBdKysgPSByZWFkMTJpbjMyKCZidWYsICZyZ2JCdWZmZXIsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJm5fZGF0dW0sIGVuZGlhbik7Ci0gICAgICAgICAgICAg ICAgICAgIGlmIChlbGVtZW50cyA+PSAyKQotICAgICAgICAgICAgICAgICAgICAgICAgKmRzdFsx XSsrID0gcmVhZDEyaW4zMigmYnVmLCAmcmdiQnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmbl9kYXR1bSwgZW5kaWFuKTsKLSAgICAgICAgICAg ICAgICAgICAgaWYgKGVsZW1lbnRzID09IDQpCi0gICAgICAgICAgICAgICAgICAgICAgICAqZHN0 WzNdKysgPSByZWFkMTJpbjMyKCZidWYsICZyZ2JCdWZmZXIsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuX2RhdHVtLCBlbmRpYW4pOwotICAgICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG5fZGF0dW0gPSAwOwotICAgICAg ICAgICAgZm9yIChpID0gMDsgaSA8IGVsZW1lbnRzOyBpKyspCi0gICAgICAgICAgICAgICAgcHRy W2ldICs9IHAtPmxpbmVzaXplW2ldOwotICAgICAgICAgICAgLy8gSnVtcCB0byBuZXh0IGFsaWdu ZWQgcG9zaXRpb24KLSAgICAgICAgICAgIGJ1ZiArPSBkcHgtPm5lZWRfYWxpZ247Ci0gICAgICAg IH0KLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAzMjoKLSAgICAgICAgaWYgKGVsZW1lbnRzID09 IDEpIHsKLSAgICAgICAgICAgIGF2X2ltYWdlX2NvcHlfcGxhbmUocHRyWzBdLCBwLT5saW5lc2l6 ZVswXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLCBkcHgtPnN0cmlkZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMgKiBhdmN0eC0+d2lkdGgg KiA0LCBhdmN0eC0+aGVpZ2h0KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGZvciAo eSA9IDA7IHkgPCBhdmN0eC0+aGVpZ2h0OyB5KyspIHsKLSAgICAgICAgICAgICAgICBwdHJbMF0g PSBwLT5kYXRhWzBdICsgeSAqIHAtPmxpbmVzaXplWzBdOwotICAgICAgICAgICAgICAgIHB0clsx XSA9IHAtPmRhdGFbMV0gKyB5ICogcC0+bGluZXNpemVbMV07Ci0gICAgICAgICAgICAgICAgcHRy WzJdID0gcC0+ZGF0YVsyXSArIHkgKiBwLT5saW5lc2l6ZVsyXTsKLSAgICAgICAgICAgICAgICBw dHJbM10gPSBwLT5kYXRhWzNdICsgeSAqIHAtPmxpbmVzaXplWzNdOwotICAgICAgICAgICAgICAg IGZvciAoeCA9IDA7IHggPCBhdmN0eC0+d2lkdGg7IHgrKykgewotICAgICAgICAgICAgICAgICAg ICBBVl9XTjMyKHB0clsyXSwgQVZfUk4zMihidWYpKTsKLSAgICAgICAgICAgICAgICAgICAgQVZf V04zMihwdHJbMF0sIEFWX1JOMzIoYnVmICsgNCkpOwotICAgICAgICAgICAgICAgICAgICBBVl9X TjMyKHB0clsxXSwgQVZfUk4zMihidWYgKyA4KSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChh dmN0eC0+cGl4X2ZtdCA9PSBBVl9QSVhfRk1UX0dCUkFQRjMyQkUgfHwKLSAgICAgICAgICAgICAg ICAgICAgICAgIGF2Y3R4LT5waXhfZm10ID09IEFWX1BJWF9GTVRfR0JSQVBGMzJMRSkgewotICAg ICAgICAgICAgICAgICAgICAgICAgQVZfV04zMihwdHJbM10sIEFWX1JOMzIoYnVmICsgMTIpKTsK LSAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiArPSA0OwotICAgICAgICAgICAgICAgICAgICAg ICAgcHRyWzNdICs9IDQ7Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAg ICAgICBidWYgKz0gMTI7Ci0gICAgICAgICAgICAgICAgICAgIHB0clsyXSArPSA0OwotICAgICAg ICAgICAgICAgICAgICBwdHJbMF0gKz0gNDsKLSAgICAgICAgICAgICAgICAgICAgcHRyWzFdICs9 IDQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAg IGJyZWFrOwotICAgIGNhc2UgMTY6Ci0gICAgICAgIGVsZW1lbnRzICo9IDI7Ci0gICAgY2FzZSA4 OgotICAgICAgICBpZiAoICAgYXZjdHgtPnBpeF9mbXQgPT0gQVZfUElYX0ZNVF9ZVVZBNDQ0UAot ICAgICAgICAgICAgfHwgYXZjdHgtPnBpeF9mbXQgPT0gQVZfUElYX0ZNVF9ZVVY0NDRQKSB7Ci0g ICAgICAgICAgICBmb3IgKHggPSAwOyB4IDwgYXZjdHgtPmhlaWdodDsgeCsrKSB7Ci0gICAgICAg ICAgICAgICAgcHRyWzBdID0gcC0+ZGF0YVswXSArIHggKiBwLT5saW5lc2l6ZVswXTsKLSAgICAg ICAgICAgICAgICBwdHJbMV0gPSBwLT5kYXRhWzFdICsgeCAqIHAtPmxpbmVzaXplWzFdOwotICAg ICAgICAgICAgICAgIHB0clsyXSA9IHAtPmRhdGFbMl0gKyB4ICogcC0+bGluZXNpemVbMl07Ci0g ICAgICAgICAgICAgICAgcHRyWzNdID0gcC0+ZGF0YVszXSArIHggKiBwLT5saW5lc2l6ZVszXTsK LSAgICAgICAgICAgICAgICBmb3IgKHkgPSAwOyB5IDwgYXZjdHgtPndpZHRoOyB5KyspIHsKLSAg ICAgICAgICAgICAgICAgICAgKnB0clsxXSsrID0gKmJ1ZisrOwotICAgICAgICAgICAgICAgICAg ICAqcHRyWzBdKysgPSAqYnVmKys7Ci0gICAgICAgICAgICAgICAgICAgICpwdHJbMl0rKyA9ICpi dWYrKzsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGF2Y3R4LT5waXhfZm10ID09IEFWX1BJWF9G TVRfWVVWQTQ0NFApCi0gICAgICAgICAgICAgICAgICAgICAgICAqcHRyWzNdKysgPSAqYnVmKys7 Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAg ICAgICBhdl9pbWFnZV9jb3B5X3BsYW5lKHB0clswXSwgcC0+bGluZXNpemVbMF0sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYnVmLCBkcHgtPnN0cmlkZSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlbGVtZW50cyAqIGF2Y3R4LT53aWR0aCwgYXZjdHgtPmhlaWdodCk7Ci0gICAg ICAgIH0KLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIHVucGFja19mcmFtZShhdmN0eCwgcCwg YnVmLCBkcHgtPmNvbXBvbmVudHMsIGRweC0+ZW5kaWFuKTsKIAogICAgICpnb3RfZnJhbWUgPSAx OwogCi0tIAoyLjUyLjAKCgpGcm9tIGUwYjVjODAwZWE1OTliOTc0OGI1OWEyMjQ0MmMzMjViZWU0 YWZjMzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEx5bm5lIDxkZXZAbHlubmUuZWU+ CkRhdGU6IFdlZCwgMjkgT2N0IDIwMjUgMTQ6MjQ6MTAgKzAxMDAKU3ViamVjdDogW1BBVENIIDA5 Ni8zMDRdIGRweGRlYzogYWRkIGhhcmR3YXJlIGRlY29kaW5nIGhvb2tzCgotLS0KIGxpYmF2Y29k ZWMvZHB4LmMgfCAxNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0KIGxpYmF2Y29kZWMvZHB4LmggfCAgIDMgKwogMiBmaWxlcyBjaGFuZ2VkLCAxMTggaW5z ZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9kcHgu YyBiL2xpYmF2Y29kZWMvZHB4LmMKaW5kZXggOTZkNDY0NzM4OS4uNDdlZmNiNzU3MiAxMDA2NDQK LS0tIGEvbGliYXZjb2RlYy9kcHguYworKysgYi9saWJhdmNvZGVjL2RweC5jCkBAIC0yOSw2ICsy OSwxMSBAQAogI2luY2x1ZGUgImRlY29kZS5oIgogI2luY2x1ZGUgImRweC5oIgogCisjaW5jbHVk ZSAidGhyZWFkLmgiCisjaW5jbHVkZSAiaHdjb25maWcuaCIKKyNpbmNsdWRlICJod2FjY2VsX2lu dGVybmFsLmgiCisjaW5jbHVkZSAiY29uZmlnX2NvbXBvbmVudHMuaCIKKwogc3RhdGljIHVuc2ln bmVkIGludCByZWFkMTYoY29uc3QgdWludDhfdCAqKnB0ciwgaW50IGlzX2JpZykKIHsKICAgICB1 bnNpZ25lZCBpbnQgdGVtcDsKQEAgLTI1NywxMSArMjYyLDI2IEBAIHN0YXRpYyB2b2lkIHVucGFj a19mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUgKnAsIGNvbnN0IHVpbnQ4X3Qg KmJ1ZiwKICAgICB9CiB9CiAKK3N0YXRpYyBlbnVtIEFWUGl4ZWxGb3JtYXQgZ2V0X3BpeGVsX2Zv cm1hdChBVkNvZGVjQ29udGV4dCAqYXZjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZW51bSBBVlBpeGVsRm9ybWF0IHBpeF9mbXQpCit7CisgICAgZW51bSBB VlBpeGVsRm9ybWF0IHBpeF9mbXRzW10gPSB7CisjaWYgQ09ORklHX0RQWF9WVUxLQU5fSFdBQ0NF TAorICAgICAgICBBVl9QSVhfRk1UX1ZVTEtBTiwKKyNlbmRpZgorICAgICAgICBwaXhfZm10LAor ICAgICAgICBBVl9QSVhfRk1UX05PTkUsCisgICAgfTsKKworICAgIHJldHVybiBmZl9nZXRfZm9y bWF0KGF2Y3R4LCBwaXhfZm10cyk7Cit9CisKIHN0YXRpYyBpbnQgZGVjb2RlX2ZyYW1lKEFWQ29k ZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqcCwKICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCAqZ290X2ZyYW1lLCBBVlBhY2tldCAqYXZwa3QpCiB7CiAgICAgRFBYRGVjQ29udGV4dCAqZHB4 ID0gYXZjdHgtPnByaXZfZGF0YTsKIAorICAgIGVudW0gQVZQaXhlbEZvcm1hdCBwaXhfZm10Owog ICAgIGNvbnN0IHVpbnQ4X3QgKmJ1ZiA9IGF2cGt0LT5kYXRhOwogICAgIGludCBidWZfc2l6ZSAg ICAgICA9IGF2cGt0LT5zaXplOwogICAgIHVpbnQzMl90IGhlYWRlcl92ZXJzaW9uLCB2ZXJzaW9u ID0gMDsKQEAgLTYzMSw5NiArNjUxLDk2IEBAIHN0YXRpYyBpbnQgZGVjb2RlX2ZyYW1lKEFWQ29k ZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqcCwKICAgICBjYXNlIDQwODA6CiAgICAgY2FzZSA2 MDgxOgogICAgIGNhc2UgNjA4MDoKLSAgICAgICAgYXZjdHgtPnBpeF9mbXQgPSBBVl9QSVhfRk1U X0dSQVk4OworICAgICAgICBwaXhfZm10ID0gQVZfUElYX0ZNVF9HUkFZODsKICAgICAgICAgYnJl YWs7CiAgICAgY2FzZSA2MTIxOgogICAgIGNhc2UgNjEyMDoKLSAgICAgICAgYXZjdHgtPnBpeF9m bXQgPSBBVl9QSVhfRk1UX0dSQVkxMjsKKyAgICAgICAgcGl4X2ZtdCA9IEFWX1BJWF9GTVRfR1JB WTEyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDEzMjA6CiAgICAgY2FzZSAyMzIwOgogICAg IGNhc2UgMzMyMDoKICAgICBjYXNlIDQzMjA6CiAgICAgY2FzZSA2MzIwOgotICAgICAgICBhdmN0 eC0+cGl4X2ZtdCA9IEFWX1BJWF9GTVRfR1JBWUYzMkxFOworICAgICAgICBwaXhfZm10ID0gQVZf UElYX0ZNVF9HUkFZRjMyTEU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgMTMyMToKICAgICBj YXNlIDIzMjE6CiAgICAgY2FzZSAzMzIxOgogICAgIGNhc2UgNDMyMToKICAgICBjYXNlIDYzMjE6 Ci0gICAgICAgIGF2Y3R4LT5waXhfZm10ID0gQVZfUElYX0ZNVF9HUkFZRjMyQkU7CisgICAgICAg IHBpeF9mbXQgPSBBVl9QSVhfRk1UX0dSQVlGMzJCRTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz ZSA1MDA4MToKICAgICBjYXNlIDUwMDgwOgotICAgICAgICBhdmN0eC0+cGl4X2ZtdCA9IEFWX1BJ WF9GTVRfUkdCMjQ7CisgICAgICAgIHBpeF9mbXQgPSBBVl9QSVhfRk1UX1JHQjI0OwogICAgICAg ICBicmVhazsKICAgICBjYXNlIDUyMDgxOgogICAgIGNhc2UgNTIwODA6Ci0gICAgICAgIGF2Y3R4 LT5waXhfZm10ID0gQVZfUElYX0ZNVF9BQkdSOworICAgICAgICBwaXhfZm10ID0gQVZfUElYX0ZN VF9BQkdSOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDUxMDgxOgogICAgIGNhc2UgNTEwODA6 Ci0gICAgICAgIGF2Y3R4LT5waXhfZm10ID0gQVZfUElYX0ZNVF9SR0JBOworICAgICAgICBwaXhf Zm10ID0gQVZfUElYX0ZNVF9SR0JBOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDUwMTAwOgog ICAgIGNhc2UgNTAxMDE6Ci0gICAgICAgIGF2Y3R4LT5waXhfZm10ID0gQVZfUElYX0ZNVF9HQlJQ MTA7CisgICAgICAgIHBpeF9mbXQgPSBBVl9QSVhfRk1UX0dCUlAxMDsKICAgICAgICAgYnJlYWs7 CiAgICAgY2FzZSA1MTEwMDoKICAgICBjYXNlIDUxMTAxOgotICAgICAgICBhdmN0eC0+cGl4X2Zt dCA9IEFWX1BJWF9GTVRfR0JSQVAxMDsKKyAgICAgICAgcGl4X2ZtdCA9IEFWX1BJWF9GTVRfR0JS QVAxMDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSA1MDEyMDoKICAgICBjYXNlIDUwMTIxOgot ICAgICAgICBhdmN0eC0+cGl4X2ZtdCA9IEFWX1BJWF9GTVRfR0JSUDEyOworICAgICAgICBwaXhf Zm10ID0gQVZfUElYX0ZNVF9HQlJQMTI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgNTExMjA6 CiAgICAgY2FzZSA1MTEyMToKLSAgICAgICAgYXZjdHgtPnBpeF9mbXQgPSBBVl9QSVhfRk1UX0dC UkFQMTI7CisgICAgICAgIHBpeF9mbXQgPSBBVl9QSVhfRk1UX0dCUkFQMTI7CiAgICAgICAgIGJy ZWFrOwogICAgIGNhc2UgNjEwMDoKICAgICBjYXNlIDYxMDE6Ci0gICAgICAgIGF2Y3R4LT5waXhf Zm10ID0gQVZfUElYX0ZNVF9HUkFZMTA7CisgICAgICAgIHBpeF9mbXQgPSBBVl9QSVhfRk1UX0dS QVkxMDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSA2MTYxOgotICAgICAgICBhdmN0eC0+cGl4 X2ZtdCA9IEFWX1BJWF9GTVRfR1JBWTE2QkU7CisgICAgICAgIHBpeF9mbXQgPSBBVl9QSVhfRk1U X0dSQVkxNkJFOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDYxNjA6Ci0gICAgICAgIGF2Y3R4 LT5waXhfZm10ID0gQVZfUElYX0ZNVF9HUkFZMTZMRTsKKyAgICAgICAgcGl4X2ZtdCA9IEFWX1BJ WF9GTVRfR1JBWTE2TEU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgNTAxNjE6Ci0gICAgICAg IGF2Y3R4LT5waXhfZm10ID0gQVZfUElYX0ZNVF9SR0I0OEJFOworICAgICAgICBwaXhfZm10ID0g QVZfUElYX0ZNVF9SR0I0OEJFOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDUwMTYwOgotICAg ICAgICBhdmN0eC0+cGl4X2ZtdCA9IEFWX1BJWF9GTVRfUkdCNDhMRTsKKyAgICAgICAgcGl4X2Zt dCA9IEFWX1BJWF9GTVRfUkdCNDhMRTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSA1MTE2MToK LSAgICAgICAgYXZjdHgtPnBpeF9mbXQgPSBBVl9QSVhfRk1UX1JHQkE2NEJFOworICAgICAgICBw aXhfZm10ID0gQVZfUElYX0ZNVF9SR0JBNjRCRTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSA1 MTE2MDoKLSAgICAgICAgYXZjdHgtPnBpeF9mbXQgPSBBVl9QSVhfRk1UX1JHQkE2NExFOworICAg ICAgICBwaXhfZm10ID0gQVZfUElYX0ZNVF9SR0JBNjRMRTsKICAgICAgICAgYnJlYWs7CiAgICAg Y2FzZSA1MDMyMDoKLSAgICAgICAgYXZjdHgtPnBpeF9mbXQgPSBBVl9QSVhfRk1UX0dCUlBGMzJM RTsKKyAgICAgICAgcGl4X2ZtdCA9IEFWX1BJWF9GTVRfR0JSUEYzMkxFOwogICAgICAgICBicmVh azsKICAgICBjYXNlIDUwMzIxOgotICAgICAgICBhdmN0eC0+cGl4X2ZtdCA9IEFWX1BJWF9GTVRf R0JSUEYzMkJFOworICAgICAgICBwaXhfZm10ID0gQVZfUElYX0ZNVF9HQlJQRjMyQkU7CiAgICAg ICAgIGJyZWFrOwogICAgIGNhc2UgNTEzMjA6Ci0gICAgICAgIGF2Y3R4LT5waXhfZm10ID0gQVZf UElYX0ZNVF9HQlJBUEYzMkxFOworICAgICAgICBwaXhfZm10ID0gQVZfUElYX0ZNVF9HQlJBUEYz MkxFOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDUxMzIxOgotICAgICAgICBhdmN0eC0+cGl4 X2ZtdCA9IEFWX1BJWF9GTVRfR0JSQVBGMzJCRTsKKyAgICAgICAgcGl4X2ZtdCA9IEFWX1BJWF9G TVRfR0JSQVBGMzJCRTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAxMDAwODE6Ci0gICAgICAg IGF2Y3R4LT5waXhfZm10ID0gQVZfUElYX0ZNVF9VWVZZNDIyOworICAgICAgICBwaXhfZm10ID0g QVZfUElYX0ZNVF9VWVZZNDIyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDEwMjA4MToKLSAg ICAgICAgYXZjdHgtPnBpeF9mbXQgPSBBVl9QSVhfRk1UX1lVVjQ0NFA7CisgICAgICAgIHBpeF9m bXQgPSBBVl9QSVhfRk1UX1lVVjQ0NFA7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgMTAzMDgx OgotICAgICAgICBhdmN0eC0+cGl4X2ZtdCA9IEFWX1BJWF9GTVRfWVVWQTQ0NFA7CisgICAgICAg IHBpeF9mbXQgPSBBVl9QSVhfRk1UX1lVVkE0NDRQOwogICAgICAgICBicmVhazsKICAgICBkZWZh dWx0OgogICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIlVuc3VwcG9ydGVkIGZv cm1hdCAlZFxuIiwKQEAgLTcyOCw2ICs3NDgsMTYgQEAgc3RhdGljIGludCBkZWNvZGVfZnJhbWUo QVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpwLAogICAgICAgICByZXR1cm4gQVZFUlJP Ul9QQVRDSFdFTENPTUU7CiAgICAgfQogCisgICAgaWYgKHBpeF9mbXQgIT0gZHB4LT5waXhfZm10 KSB7CisgICAgICAgIGRweC0+cGl4X2ZtdCA9IHBpeF9mbXQ7CisKKyAgICAgICAgcmV0ID0gZ2V0 X3BpeGVsX2Zvcm1hdChhdmN0eCwgcGl4X2ZtdCk7CisgICAgICAgIGlmIChyZXQgPCAwKQorICAg ICAgICAgICAgcmV0dXJuIHJldDsKKworICAgICAgICBhdmN0eC0+cGl4X2ZtdCA9IHJldDsKKyAg ICB9CisKICAgICBmZl9zZXRfc2FyKGF2Y3R4LCBhdmN0eC0+c2FtcGxlX2FzcGVjdF9yYXRpbyk7 CiAKICAgICBpZiAoKHJldCA9IGZmX2dldF9idWZmZXIoYXZjdHgsIHAsIDApKSA8IDApCkBAIC03 MzcsMTMgKzc2Nyw2NSBAQCBzdGF0aWMgaW50IGRlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAq YXZjdHgsIEFWRnJhbWUgKnAsCiAgICAgYnVmID0gIGF2cGt0LT5kYXRhICsgb2Zmc2V0OwogICAg IGRweC0+ZnJhbWUgPSBwOwogCi0gICAgdW5wYWNrX2ZyYW1lKGF2Y3R4LCBwLCBidWYsIGRweC0+ Y29tcG9uZW50cywgZHB4LT5lbmRpYW4pOworICAgIC8qIFN0YXJ0ICovCisgICAgaWYgKGF2Y3R4 LT5od2FjY2VsKSB7CisgICAgICAgIGNvbnN0IEZGSFdBY2NlbCAqaHdhY2NlbCA9IGZmaHdhY2Nl bChhdmN0eC0+aHdhY2NlbCk7CisKKyAgICAgICAgcmV0ID0gZmZfaHdhY2NlbF9mcmFtZV9wcml2 X2FsbG9jKGF2Y3R4LCAmZHB4LT5od2FjY2VsX3BpY3R1cmVfcHJpdmF0ZSk7CisgICAgICAgIGlm IChyZXQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKworICAgICAgICByZXQgPSBod2Fj Y2VsLT5zdGFydF9mcmFtZShhdmN0eCwgYXZwa3QtPmJ1ZiwgYnVmLCBhdnBrdC0+c2l6ZSAtIG9m ZnNldCk7CisgICAgICAgIGlmIChyZXQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKwor ICAgICAgICByZXQgPSBod2FjY2VsLT5kZWNvZGVfc2xpY2UoYXZjdHgsIGJ1ZiwgYXZwa3QtPnNp emUgLSBvZmZzZXQpOworICAgICAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgICAgIHJldHVybiBy ZXQ7CisKKyAgICAgICAgcmV0ID0gaHdhY2NlbC0+ZW5kX2ZyYW1lKGF2Y3R4KTsKKyAgICAgICAg aWYgKHJldCA8IDApCisgICAgICAgICAgICByZXR1cm4gcmV0OworCisgICAgICAgIGF2X3JlZnN0 cnVjdF91bnJlZigmZHB4LT5od2FjY2VsX3BpY3R1cmVfcHJpdmF0ZSk7CisgICAgfSBlbHNlIHsK KyAgICAgICAgdW5wYWNrX2ZyYW1lKGF2Y3R4LCBwLCBidWYsIGRweC0+Y29tcG9uZW50cywgZHB4 LT5lbmRpYW4pOworICAgIH0KKworICAgIHAtPnBpY3RfdHlwZSA9IEFWX1BJQ1RVUkVfVFlQRV9J OworICAgIHAtPmZsYWdzICAgIHw9IEFWX0ZSQU1FX0ZMQUdfS0VZOwogCiAgICAgKmdvdF9mcmFt ZSA9IDE7CiAKICAgICByZXR1cm4gYnVmX3NpemU7CiB9CiAKKyNpZiBIQVZFX1RIUkVBRFMKK3N0 YXRpYyBpbnQgdXBkYXRlX3RocmVhZF9jb250ZXh0KEFWQ29kZWNDb250ZXh0ICpkc3QsIGNvbnN0 IEFWQ29kZWNDb250ZXh0ICpzcmMpCit7CisgICAgRFBYRGVjQ29udGV4dCAqc3NyYyA9IHNyYy0+ cHJpdl9kYXRhOworICAgIERQWERlY0NvbnRleHQgKnNkc3QgPSBkc3QtPnByaXZfZGF0YTsKKwor ICAgIHNkc3QtPnBpeF9mbXQgPSBzc3JjLT5waXhfZm10OworCisgICAgcmV0dXJuIDA7Cit9Cisj ZW5kaWYKKworc3RhdGljIGF2X2NvbGQgaW50IGRlY29kZV9lbmQoQVZDb2RlY0NvbnRleHQgKmF2 Y3R4KQoreworICAgIERQWERlY0NvbnRleHQgKmRweCA9IGF2Y3R4LT5wcml2X2RhdGE7CisgICAg YXZfcmVmc3RydWN0X3VucmVmKCZkcHgtPmh3YWNjZWxfcGljdHVyZV9wcml2YXRlKTsKKyAgICBy ZXR1cm4gMDsKK30KKworc3RhdGljIGF2X2NvbGQgaW50IGRlY29kZV9pbml0KEFWQ29kZWNDb250 ZXh0ICphdmN0eCkKK3sKKyAgICBEUFhEZWNDb250ZXh0ICpkcHggPSBhdmN0eC0+cHJpdl9kYXRh OworICAgIGRweC0+cGl4X2ZtdCA9IEFWX1BJWF9GTVRfTk9ORTsKKyAgICByZXR1cm4gMDsKK30K KwogY29uc3QgRkZDb2RlYyBmZl9kcHhfZGVjb2RlciA9IHsKICAgICAucC5uYW1lICAgICAgICAg PSAiZHB4IiwKICAgICBDT0RFQ19MT05HX05BTUUoIkRQWCAoRGlnaXRhbCBQaWN0dXJlIEV4Y2hh bmdlKSBpbWFnZSIpLApAQCAtNzUxLDUgKzgzMywxMSBAQCBjb25zdCBGRkNvZGVjIGZmX2RweF9k ZWNvZGVyID0gewogICAgIC5wLnR5cGUgICAgICAgICA9IEFWTUVESUFfVFlQRV9WSURFTywKICAg ICAucC5pZCAgICAgICAgICAgPSBBVl9DT0RFQ19JRF9EUFgsCiAgICAgRkZfQ09ERUNfREVDT0RF X0NCKGRlY29kZV9mcmFtZSksCi0gICAgLnAuY2FwYWJpbGl0aWVzID0gQVZfQ09ERUNfQ0FQX0RS MSwKKyAgICAuaW5pdCAgICAgICAgICAgPSBkZWNvZGVfaW5pdCwKKyAgICAuY2xvc2UgICAgICAg ICAgPSBkZWNvZGVfZW5kLAorICAgIFVQREFURV9USFJFQURfQ09OVEVYVCh1cGRhdGVfdGhyZWFk X2NvbnRleHQpLAorICAgIC5wLmNhcGFiaWxpdGllcyA9IEFWX0NPREVDX0NBUF9EUjEgfCBBVl9D T0RFQ19DQVBfRlJBTUVfVEhSRUFEUywKKyAgICAuaHdfY29uZmlncyAgICAgPSAoY29uc3QgQVZD b2RlY0hXQ29uZmlnSW50ZXJuYWwgKmNvbnN0IFtdKSB7CisgICAgICAgIE5VTEwKKyAgICB9LAog fTsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvZHB4LmggYi9saWJhdmNvZGVjL2RweC5oCmluZGV4 IDM1ZThhYTY5MGYuLmM5ZDk1YWYxZjEgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvZHB4LmgKKysr IGIvbGliYXZjb2RlYy9kcHguaApAQCAtMjMsNiArMjMsNyBAQAogI2RlZmluZSBBVkNPREVDX0RQ WF9ICiAKICNpbmNsdWRlICJsaWJhdnV0aWwvZnJhbWUuaCIKKyNpbmNsdWRlICJsaWJhdnV0aWwv cGl4Zm10LmgiCiAKIGVudW0gRFBYX1RSQyB7CiAgICAgRFBYX1RSQ19VU0VSX0RFRklORUQgICAg ICAgPSAwLApAQCAtNTgsNiArNTksOCBAQCBlbnVtIERQWF9DT0xfU1BFQyB7CiAKIHR5cGVkZWYg c3RydWN0IERQWERlY0NvbnRleHQgewogICAgIEFWRnJhbWUgKmZyYW1lOworICAgIHZvaWQgKmh3 YWNjZWxfcGljdHVyZV9wcml2YXRlOworICAgIGVudW0gQVZQaXhlbEZvcm1hdCBwaXhfZm10Owog CiAgICAgaW50IHBhY2tpbmc7CiAgICAgaW50IHN0cmlkZTsKLS0gCjIuNTIuMAoKCkZyb20gYTk5 NTQzMDNiMWQzYjRmYTIyOWRiYzJiYWEyYmU0MWExZjIzMzQ0NyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogTHlubmUgPGRldkBseW5uZS5lZT4KRGF0ZTogV2VkLCAyOSBPY3QgMjAyNSAx NToyNzo0NyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDk3LzMwNF0gZHB4ZGVjOiBhZGQgYSBWdWxr YW4gaHdhY2NlbAoKLS0tCiBjb25maWd1cmUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIg KwogbGliYXZjb2RlYy9NYWtlZmlsZSAgICAgICAgICAgICAgIHwgICAxICsKIGxpYmF2Y29kZWMv ZHB4LmMgICAgICAgICAgICAgICAgICB8ICAgNSArCiBsaWJhdmNvZGVjL2h3YWNjZWxzLmggICAg ICAgICAgICAgfCAgIDEgKwogbGliYXZjb2RlYy92dWxrYW4vTWFrZWZpbGUgICAgICAgIHwgICA0 ICsKIGxpYmF2Y29kZWMvdnVsa2FuL2RweF9jb3B5LmNvbXAgICB8ICA1MSArKysrCiBsaWJhdmNv ZGVjL3Z1bGthbi9kcHhfdW5wYWNrLmNvbXAgfCAgODMgKysrKysrCiBsaWJhdmNvZGVjL3Z1bGth bl9kZWNvZGUuYyAgICAgICAgfCAgMTYgKwogbGliYXZjb2RlYy92dWxrYW5fZHB4LmMgICAgICAg ICAgIHwgNDc1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogOSBmaWxlcyBjaGFuZ2Vk LCA2MzggaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvdnVsa2Fu L2RweF9jb3B5LmNvbXAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL3Z1bGthbi9kcHhf dW5wYWNrLmNvbXAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL3Z1bGthbl9kcHguYwoK ZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRleCA3ZWY1MDA5NWEzLi5mZDZm NjAyZTFkIDEwMDc1NQotLS0gYS9jb25maWd1cmUKKysrIGIvY29uZmlndXJlCkBAIC0zMjYyLDYg KzMyNjIsOCBAQCBhdjFfdmlkZW90b29sYm94X2h3YWNjZWxfZGVwcz0idmlkZW90b29sYm94Igog YXYxX3ZpZGVvdG9vbGJveF9od2FjY2VsX3NlbGVjdD0iYXYxX2RlY29kZXIiCiBhdjFfdnVsa2Fu X2h3YWNjZWxfZGVwcz0idnVsa2FuIgogYXYxX3Z1bGthbl9od2FjY2VsX3NlbGVjdD0iYXYxX2Rl Y29kZXIiCitkcHhfdnVsa2FuX2h3YWNjZWxfZGVwcz0idnVsa2FuIHNwaXJ2X2NvbXBpbGVyIgor ZHB4X3Z1bGthbl9od2FjY2VsX3NlbGVjdD0iZHB4X2RlY29kZXIiCiBmZnYxX3Z1bGthbl9od2Fj Y2VsX2RlcHM9InZ1bGthbiBzcGlydl9jb21waWxlciIKIGZmdjFfdnVsa2FuX2h3YWNjZWxfc2Vs ZWN0PSJmZnYxX2RlY29kZXIiCiBoMjYzX3ZhYXBpX2h3YWNjZWxfZGVwcz0idmFhcGkiCmRpZmYg LS1naXQgYS9saWJhdmNvZGVjL01ha2VmaWxlIGIvbGliYXZjb2RlYy9NYWtlZmlsZQppbmRleCBm YmE5ZjBhZmYwLi40NWM4MjM3MTgxIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL01ha2VmaWxlCisr KyBiL2xpYmF2Y29kZWMvTWFrZWZpbGUKQEAgLTEwNTAsNiArMTA1MCw3IEBAIE9CSlMtJChDT05G SUdfQVYxX1ZBQVBJX0hXQUNDRUwpICAgICAgICAgICs9IHZhYXBpX2F2MS5vCiBPQkpTLSQoQ09O RklHX0FWMV9WRFBBVV9IV0FDQ0VMKSAgICAgICAgICArPSB2ZHBhdV9hdjEubwogT0JKUy0kKENP TkZJR19BVjFfVklERU9UT09MQk9YX0hXQUNDRUwpICAgKz0gdmlkZW90b29sYm94X2F2MS5vCiBP QkpTLSQoQ09ORklHX0FWMV9WVUxLQU5fSFdBQ0NFTCkgICAgICAgICArPSB2dWxrYW5fZGVjb2Rl Lm8gdnVsa2FuX2F2MS5vCitPQkpTLSQoQ09ORklHX0RQWF9WVUxLQU5fSFdBQ0NFTCkgICAgICAg ICArPSB2dWxrYW5fZGVjb2RlLm8gdnVsa2FuX2RweC5vCiBPQkpTLSQoQ09ORklHX0ZGVjFfVlVM S0FOX0hXQUNDRUwpICAgICAgICArPSB2dWxrYW5fZGVjb2RlLm8gZmZ2MV92dWxrYW4ubyB2dWxr YW5fZmZ2MS5vCiBPQkpTLSQoQ09ORklHX0gyNjNfVkFBUElfSFdBQ0NFTCkgICAgICAgICArPSB2 YWFwaV9tcGVnNC5vCiBPQkpTLSQoQ09ORklHX0gyNjNfVklERU9UT09MQk9YX0hXQUNDRUwpICAr PSB2aWRlb3Rvb2xib3gubwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9kcHguYyBiL2xpYmF2Y29k ZWMvZHB4LmMKaW5kZXggNDdlZmNiNzU3Mi4uNzM1NWI1MGY3YSAxMDA2NDQKLS0tIGEvbGliYXZj b2RlYy9kcHguYworKysgYi9saWJhdmNvZGVjL2RweC5jCkBAIC04MzcsNyArODM3LDEyIEBAIGNv bnN0IEZGQ29kZWMgZmZfZHB4X2RlY29kZXIgPSB7CiAgICAgLmNsb3NlICAgICAgICAgID0gZGVj b2RlX2VuZCwKICAgICBVUERBVEVfVEhSRUFEX0NPTlRFWFQodXBkYXRlX3RocmVhZF9jb250ZXh0 KSwKICAgICAucC5jYXBhYmlsaXRpZXMgPSBBVl9DT0RFQ19DQVBfRFIxIHwgQVZfQ09ERUNfQ0FQ X0ZSQU1FX1RIUkVBRFMsCisgICAgLmNhcHNfaW50ZXJuYWwgID0gRkZfQ09ERUNfQ0FQX0lOSVRf Q0xFQU5VUCB8CisgICAgICAgICAgICAgICAgICAgICAgRkZfQ09ERUNfQ0FQX1NLSVBfRlJBTUVf RklMTF9QQVJBTSwKICAgICAuaHdfY29uZmlncyAgICAgPSAoY29uc3QgQVZDb2RlY0hXQ29uZmln SW50ZXJuYWwgKmNvbnN0IFtdKSB7CisjaWYgQ09ORklHX0RQWF9WVUxLQU5fSFdBQ0NFTAorICAg ICAgICBIV0FDQ0VMX1ZVTEtBTihkcHgpLAorI2VuZGlmCiAgICAgICAgIE5VTEwKICAgICB9LAog fTsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvaHdhY2NlbHMuaCBiL2xpYmF2Y29kZWMvaHdhY2Nl bHMuaAppbmRleCA2MzhhN2JmYjFkLi4zZGUxOTEyODhhIDEwMDY0NAotLS0gYS9saWJhdmNvZGVj L2h3YWNjZWxzLmgKKysrIGIvbGliYXZjb2RlYy9od2FjY2Vscy5oCkBAIC0yOCw2ICsyOCw3IEBA IGV4dGVybiBjb25zdCBzdHJ1Y3QgRkZIV0FjY2VsIGZmX2F2MV92YWFwaV9od2FjY2VsOwogZXh0 ZXJuIGNvbnN0IHN0cnVjdCBGRkhXQWNjZWwgZmZfYXYxX3ZkcGF1X2h3YWNjZWw7CiBleHRlcm4g Y29uc3Qgc3RydWN0IEZGSFdBY2NlbCBmZl9hdjFfdmlkZW90b29sYm94X2h3YWNjZWw7CiBleHRl cm4gY29uc3Qgc3RydWN0IEZGSFdBY2NlbCBmZl9hdjFfdnVsa2FuX2h3YWNjZWw7CitleHRlcm4g Y29uc3Qgc3RydWN0IEZGSFdBY2NlbCBmZl9kcHhfdnVsa2FuX2h3YWNjZWw7CiBleHRlcm4gY29u c3Qgc3RydWN0IEZGSFdBY2NlbCBmZl9mZnYxX3Z1bGthbl9od2FjY2VsOwogZXh0ZXJuIGNvbnN0 IHN0cnVjdCBGRkhXQWNjZWwgZmZfaDI2M192YWFwaV9od2FjY2VsOwogZXh0ZXJuIGNvbnN0IHN0 cnVjdCBGRkhXQWNjZWwgZmZfaDI2M192aWRlb3Rvb2xib3hfaHdhY2NlbDsKZGlmZiAtLWdpdCBh L2xpYmF2Y29kZWMvdnVsa2FuL01ha2VmaWxlIGIvbGliYXZjb2RlYy92dWxrYW4vTWFrZWZpbGUK aW5kZXggMTZhNDExNmVmMS4uMjZlOGUxNDdjMiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy92dWxr YW4vTWFrZWZpbGUKKysrIGIvbGliYXZjb2RlYy92dWxrYW4vTWFrZWZpbGUKQEAgLTIzLDYgKzIz LDEwIEBAIE9CSlMtJChDT05GSUdfUFJPUkVTX1ZVTEtBTl9IV0FDQ0VMKSArPSB2dWxrYW4vY29t bW9uLm8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ1bGthbi9w cm9yZXNfdmxkLm8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ1 bGthbi9wcm9yZXNfaWRjdC5vCiAKK09CSlMtJChDT05GSUdfRFBYX1ZVTEtBTl9IV0FDQ0VMKSAr PSB2dWxrYW4vY29tbW9uLm8gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZ1bGthbi9kcHhfdW5wYWNrLm8gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHZ1bGthbi9kcHhfY29weS5vCisKIFZVTEtBTiA9ICQoc3Vic3QgJChTUkNfUEFUSCkvLCwk KHdpbGRjYXJkICQoU1JDX1BBVEgpL2xpYmF2Y29kZWMvdnVsa2FuLyouY29tcCkpCiAuU0VDT05E QVJZOiAkKFZVTEtBTjouY29tcD0uYykKIGxpYmF2Y29kZWMvdnVsa2FuLyUuYzogVEFHID0gVlVM S0FOCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z1bGthbi9kcHhfY29weS5jb21wIGIvbGliYXZj b2RlYy92dWxrYW4vZHB4X2NvcHkuY29tcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwLi5kYTBhMTFkYjkzCi0tLSAvZGV2L251bGwKKysrIGIvbGliYXZjb2RlYy92dWxrYW4v ZHB4X2NvcHkuY29tcApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDI1 IEx5bm5lIDxkZXZAbHlubmUuZWU+CisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVn LgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9y IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZtcGVnIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYg bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEg RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQor ICovCisKK1RZUEUgcmVhZF9kYXRhKHVpbnQgb2ZmKQoreworI2lmZGVmIEJJR19FTkRJQU4KKyAg ICByZXR1cm4gVFlQRV9SRVZFUlNFKGRhdGFbb2ZmXSk7CisjZWxzZQorICAgIHJldHVybiBkYXRh W29mZl07CisjZW5kaWYKK30KKwordm9pZCBtYWluKHZvaWQpCit7CisgICAgaXZlYzIgcG9zID0g aXZlYzIoZ2xfR2xvYmFsSW52b2NhdGlvbklELnh5KTsKKyAgICBpZiAoIUlTX1dJVEhJTihwb3Ms IGltYWdlU2l6ZShkc3RbMF0pKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdWludCBvZmZzID0g KHBvcy55KmltYWdlU2l6ZShkc3RbMF0pLnggKyBwb3MueCkqQ09NUE9ORU5UUzsKKyNpZiBOQl9J TUFHRVMgPT0gMQorICAgIFRZUEVfVkVDIHZhbDsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IENP TVBPTkVOVFM7IGkrKykKKyAgICAgICAgdmFsW2ldID0gcmVhZF9kYXRhKG9mZnMgKyBpKTsKKyAg ICB2YWwgPj49IFNISUZUOworICAgIGltYWdlU3RvcmUoZHN0WzBdLCBwb3MsIHZhbCk7CisjZWxz ZQorICAgIGNvbnN0IGl2ZWM0IGZtdF9sdXQgPSBpdmVjNCgyLCAwLCAxLCAzKTsKKyAgICBmb3Ig KGludCBpID0gMDsgaSA8IENPTVBPTkVOVFM7IGkrKykgeworICAgICAgICBUWVBFIHZhbCA9IHJl YWRfZGF0YShvZmZzICsgaSk7CisgICAgICAgIHZhbCA+Pj0gU0hJRlQ7CisgICAgICAgIGltYWdl U3RvcmUoZHN0W2ZtdF9sdXRbaV1dLCBwb3MsIFRZUEVfVkVDKHZhbCkpOworICAgIH0KKyNlbmRp ZgorfQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92dWxrYW4vZHB4X3VucGFjay5jb21wIGIvbGli YXZjb2RlYy92dWxrYW4vZHB4X3VucGFjay5jb21wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAuLjVhNDRkZTg3YmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJhdmNvZGVjL3Z1 bGthbi9kcHhfdW5wYWNrLmNvbXAKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAo YykgMjAyNSBMeW5uZSA8ZGV2QGx5bm5lLmVlPgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9m IEZGbXBlZy4KKyAqCisgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNl bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIEZGbXBl ZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1w ZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIElu Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMw MSBVU0EKKyAqLworCit1aW50MzJfdCByZWFkX2RhdGEodWludCBvZmYpCit7CisjaWZkZWYgQklH X0VORElBTgorICAgIHJldHVybiByZXZlcnNlNChkYXRhW29mZl0pOworI2Vsc2UKKyAgICByZXR1 cm4gZGF0YVtvZmZdOworI2VuZGlmCit9CisKKyNpZmRlZiBQQUNLRURfMTBCSVQKK2kxNnZlYzQg cGFyc2VfcGFja2VkX2luXzMyKGl2ZWMyIHBvcywgaW50IHN0cmlkZSkKK3sKKyAgICB1aW50MzJf dCBkID0gcmVhZF9kYXRhKHBvcy55KnN0cmlkZSArIHBvcy54KTsKKyAgICBpMTZ2ZWM0IHY7Cisg ICAgZCA9IGQgPDwgMTAgfCBkID4+IDIyICYgMHgzRkZGRkY7CisgICAgdlswXSA9IGludDE2X3Qo ZCAmIDB4M0ZGKTsKKyAgICBkID0gZCA8PCAxMCB8IGQgPj4gMjIgJiAweDNGRkZGRjsKKyAgICB2 WzFdID0gaW50MTZfdChkICYgMHgzRkYpOworICAgIGQgPSBkIDw8IDEwIHwgZCA+PiAyMiAmIDB4 M0ZGRkZGOworICAgIHZbMl0gPSBpbnQxNl90KGQgJiAweDNGRik7CisgICAgdlszXSA9IGludDE2 X3QoMCk7CisgICAgcmV0dXJuIHY7Cit9CisjZWxzZQoraTE2dmVjNCBwYXJzZV9wYWNrZWRfaW5f MzIoaXZlYzIgcG9zLCBpbnQgc3RyaWRlKQoreworICAgIHVpbnQgbGluZV9vZmYgPSBwb3MueSoo c3RyaWRlKkJJVFNfUEVSX0NPTVAqQ09NUE9ORU5UUyArCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAobmVlZF9hbGlnbiA8PCAzKSk7CisgICAgdWludCBwaXhfb2ZmID0gcG9zLngqQklUU19Q RVJfQ09NUCpDT01QT05FTlRTOworCisgICAgdWludCBvZmYgPSAobGluZV9vZmYgKyBwaXhfb2Zm ID4+IDUpOworICAgIHVpbnQgYml0ID0gcGl4X29mZiAmIDB4MWY7CisKKyAgICB1aW50MzJfdCBk MCA9IHJlYWRfZGF0YShvZmYgKyAwKTsKKyAgICB1aW50MzJfdCBkMSA9IHJlYWRfZGF0YShvZmYg KyAxKTsKKworICAgIHVpbnQ2NF90IGNvbWJpbmVkID0gKHVpbnQ2NF90KGQxKSA8PCAzMikgfCBk MDsKKyAgICBjb21iaW5lZCA+Pj0gYml0OworCisgICAgcmV0dXJuIGkxNnZlYzQoY29tYmluZWQs CisgICAgICAgICAgICAgICAgICAgY29tYmluZWQgPj4gKEJJVFNfUEVSX0NPTVAqMSksCisgICAg ICAgICAgICAgICAgICAgY29tYmluZWQgPj4gKEJJVFNfUEVSX0NPTVAqMiksCisgICAgICAgICAg ICAgICAgICAgY29tYmluZWQgPj4gKEJJVFNfUEVSX0NPTVAqMykpICYKKyAgICAgICAgICAgaW50 MTZfdCgoMSA8PCBCSVRTX1BFUl9DT01QKSAtIDEpOworfQorI2VuZGlmCisKK3ZvaWQgbWFpbih2 b2lkKQoreworICAgIGl2ZWMyIHBvcyA9IGl2ZWMyKGdsX0dsb2JhbEludm9jYXRpb25JRC54eSk7 CisgICAgaWYgKCFJU19XSVRISU4ocG9zLCBpbWFnZVNpemUoZHN0WzBdKSkpCisgICAgICAgIHJl dHVybjsKKworICAgIGkxNnZlYzQgcCA9IHBhcnNlX3BhY2tlZF9pbl8zMihwb3MsIGltYWdlU2l6 ZShkc3RbMF0pLngpOworCisjaWYgTkJfSU1BR0VTID09IDEKKyAgICBpbWFnZVN0b3JlKGRzdFsw XSwgcG9zLCBwKTsKKyNlbHNlCisgICAgY29uc3QgaXZlYzQgZm10X2x1dCA9IENPTVBPTkVOVFMg PT0gMSA/IGl2ZWM0KDApIDogaXZlYzQoMiwgMCwgMSwgMyk7CisgICAgZm9yICh1aW50IGkgPSAw OyBpIDwgQ09NUE9ORU5UUzsgaSsrKQorICAgICAgICBpbWFnZVN0b3JlKGRzdFtmbXRfbHV0W2ld XSwgcG9zLCBpMTZ2ZWM0KHBbaV0pKTsKKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvbGliYXZjb2Rl Yy92dWxrYW5fZGVjb2RlLmMgYi9saWJhdmNvZGVjL3Z1bGthbl9kZWNvZGUuYwppbmRleCBkMjJj Y2MyMWFhLi5kNmY2ZWM4YzNiIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Z1bGthbl9kZWNvZGUu YworKysgYi9saWJhdmNvZGVjL3Z1bGthbl9kZWNvZGUuYwpAQCAtMjYsNiArMjYsNyBAQAogCiAj ZGVmaW5lIERFQ09ERVJfSVNfU0RSKGNvZGVjX2lkKSBcCiAgICAgKCgoY29kZWNfaWQpID09IEFW X0NPREVDX0lEX0ZGVjEpIHx8IFwKKyAgICAgKChjb2RlY19pZCkgPT0gQVZfQ09ERUNfSURfRFBY KSB8fCBcCiAgICAgICgoY29kZWNfaWQpID09IEFWX0NPREVDX0lEX1BST1JFU19SQVcpIHx8IFwK ICAgICAgKChjb2RlY19pZCkgPT0gQVZfQ09ERUNfSURfUFJPUkVTKSkKIApAQCAtNTAsNiArNTEs OSBAQCBleHRlcm4gY29uc3QgRkZWdWxrYW5EZWNvZGVEZXNjcmlwdG9yIGZmX3ZrX2RlY19wcm9y ZXNfcmF3X2Rlc2M7CiAjaWYgQ09ORklHX1BST1JFU19WVUxLQU5fSFdBQ0NFTAogZXh0ZXJuIGNv bnN0IEZGVnVsa2FuRGVjb2RlRGVzY3JpcHRvciBmZl92a19kZWNfcHJvcmVzX2Rlc2M7CiAjZW5k aWYKKyNpZiBDT05GSUdfRFBYX1ZVTEtBTl9IV0FDQ0VMCitleHRlcm4gY29uc3QgRkZWdWxrYW5E ZWNvZGVEZXNjcmlwdG9yIGZmX3ZrX2RlY19kcHhfZGVzYzsKKyNlbmRpZgogCiBzdGF0aWMgY29u c3QgRkZWdWxrYW5EZWNvZGVEZXNjcmlwdG9yICpkZWNfZGVzY3NbXSA9IHsKICNpZiBDT05GSUdf SDI2NF9WVUxLQU5fSFdBQ0NFTApAQCAtNzMsNiArNzcsOSBAQCBzdGF0aWMgY29uc3QgRkZWdWxr YW5EZWNvZGVEZXNjcmlwdG9yICpkZWNfZGVzY3NbXSA9IHsKICNpZiBDT05GSUdfUFJPUkVTX1ZV TEtBTl9IV0FDQ0VMCiAgICAgJmZmX3ZrX2RlY19wcm9yZXNfZGVzYywKICNlbmRpZgorI2lmIENP TkZJR19EUFhfVlVMS0FOX0hXQUNDRUwKKyAgICAmZmZfdmtfZGVjX2RweF9kZXNjLAorI2VuZGlm CiB9OwogCiB0eXBlZGVmIHN0cnVjdCBGRlZ1bGthbkRlY29kZVByb2ZpbGVEYXRhIHsKQEAgLTEx MTcsMTAgKzExMjQsMTkgQEAgaW50IGZmX3ZrX2ZyYW1lX3BhcmFtcyhBVkNvZGVjQ29udGV4dCAq YXZjdHgsIEFWQnVmZmVyUmVmICpod19mcmFtZXNfY3R4KQogICAgICAgICAgICAgLyogVGhpcyBz aG91bGQgYmUgbW9yZSBlZmZpY2llbnQgZm9yIGRvd25sb2FkaW5nIGFuZCB1c2luZyAqLwogICAg ICAgICAgICAgZnJhbWVzX2N0eC0+c3dfZm9ybWF0ID0gQVZfUElYX0ZNVF9SR0JBNjQ7CiAgICAg ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBVl9QSVhfRk1UX1JHQjQ4TEU6CisgICAgICAg IGNhc2UgQVZfUElYX0ZNVF9SR0I0OEJFOiAvKiBEUFggb3V0cHV0cyBSR0I0OEJFLCBzbyB3ZSBu ZWVkIGJvdGggKi8KKyAgICAgICAgICAgIC8qIEFsbW9zdCBub3RoaW5nIHN1cHBvcnRzIG5hdGl2 ZSAzLWNvbXBvbmVudCBSR0IgKi8KKyAgICAgICAgICAgIGZyYW1lc19jdHgtPnN3X2Zvcm1hdCA9 IEFWX1BJWF9GTVRfR0JSUDE2OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVZf UElYX0ZNVF9SR0JBNjRCRTogLyogRFBYIGFnYWluLCBmaXggZm9yIGxpdHRsZS1lbmRpYW4gc3lz dGVtcyAqLworICAgICAgICAgICAgZnJhbWVzX2N0eC0+c3dfZm9ybWF0ID0gQVZfUElYX0ZNVF9S R0JBNjQ7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBVl9QSVhfRk1UX0dCUlAx MDoKICAgICAgICAgICAgIC8qIFRoaXMgc2F2ZXMgbWVtb3J5IGJhbmR3aWR0aCB3aGVuIGRvd25s b2FkaW5nICovCiAgICAgICAgICAgICBmcmFtZXNfY3R4LT5zd19mb3JtYXQgPSBBVl9QSVhfRk1U X1gyQkdSMTA7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBVl9QSVhfRk1UX1JH QjI0OgogICAgICAgICBjYXNlIEFWX1BJWF9GTVRfQkdSMDoKICAgICAgICAgICAgIC8qIG1wdiBo YXMgaXNzdWVzIHdpdGggYmdyMCBtYXBwaW5nLCBzbyBqdXN0IHJlbWFwIGl0ICovCiAgICAgICAg ICAgICBmcmFtZXNfY3R4LT5zd19mb3JtYXQgPSBBVl9QSVhfRk1UX1JHQjA7CmRpZmYgLS1naXQg YS9saWJhdmNvZGVjL3Z1bGthbl9kcHguYyBiL2xpYmF2Y29kZWMvdnVsa2FuX2RweC5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjFhZjQxN2ZkZjcKLS0tIC9kZXYvbnVs bAorKysgYi9saWJhdmNvZGVjL3Z1bGthbl9kcHguYwpAQCAtMCwwICsxLDQ3NSBAQAorLyoKKyAq IENvcHlyaWdodCAoYykgMjAyNSBMeW5uZSA8ZGV2QGx5bm5lLmVlPgorICoKKyAqIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEZGbXBlZy4KKyAqCisgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMi4x IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor ICoKKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxv bmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZv dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rvbiwg TUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisjaW5jbHVkZSAidnVsa2FuX2RlY29kZS5oIgorI2lu Y2x1ZGUgImh3YWNjZWxfaW50ZXJuYWwuaCIKKworI2luY2x1ZGUgImRweC5oIgorI2luY2x1ZGUg ImxpYmF2dXRpbC92dWxrYW5fc3BpcnYuaCIKKyNpbmNsdWRlICJsaWJhdnV0aWwvbWVtLmgiCisK K2V4dGVybiBjb25zdCBjaGFyICpmZl9zb3VyY2VfY29tbW9uX2NvbXA7CitleHRlcm4gY29uc3Qg Y2hhciAqZmZfc291cmNlX2RweF91bnBhY2tfY29tcDsKK2V4dGVybiBjb25zdCBjaGFyICpmZl9z b3VyY2VfZHB4X2NvcHlfY29tcDsKKworY29uc3QgRkZWdWxrYW5EZWNvZGVEZXNjcmlwdG9yIGZm X3ZrX2RlY19kcHhfZGVzYyA9IHsKKyAgICAuY29kZWNfaWQgICAgICAgICA9IEFWX0NPREVDX0lE X0RQWCwKKyAgICAuZGVjb2RlX2V4dGVuc2lvbiA9IEZGX1ZLX0VYVF9QVVNIX0RFU0NSSVBUT1Is CisgICAgLnF1ZXVlX2ZsYWdzICAgICAgPSBWS19RVUVVRV9DT01QVVRFX0JJVCwKK307CisKK3R5 cGVkZWYgc3RydWN0IERQWFZ1bGthbkRlY29kZVBpY3R1cmUgeworICAgIEZGVnVsa2FuRGVjb2Rl UGljdHVyZSB2cDsKK30gRFBYVnVsa2FuRGVjb2RlUGljdHVyZTsKKwordHlwZWRlZiBzdHJ1Y3Qg RFBYVnVsa2FuRGVjb2RlQ29udGV4dCB7CisgICAgRkZWdWxrYW5TaGFkZXIgc2hhZGVyOworICAg IEFWQnVmZmVyUG9vbCAqZnJhbWVfZGF0YV9wb29sOworfSBEUFhWdWxrYW5EZWNvZGVDb250ZXh0 OworCit0eXBlZGVmIHN0cnVjdCBEZWNvZGVQdXNoRGF0YSB7CisgICAgaW50IHN0cmlkZTsKKyAg ICBpbnQgbmVlZF9hbGlnbjsKKyAgICBpbnQgcGFkZGVkXzEwYml0OworfSBEZWNvZGVQdXNoRGF0 YTsKKworc3RhdGljIGludCBob3N0X3Vwb2FkX2ltYWdlKEFWQ29kZWNDb250ZXh0ICphdmN0eCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGRlZ1bGthbkRlY29kZUNvbnRleHQgKmRlYywg RFBYRGVjQ29udGV4dCAqZHB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVp bnQ4X3QgKnNyYywgdWludDMyX3Qgc2l6ZSkKK3sKKyAgICBpbnQgZXJyOworICAgIFZrSW1hZ2Ug dGVtcDsKKworICAgIEZGVnVsa2FuRGVjb2RlU2hhcmVkICpjdHggPSBkZWMtPnNoYXJlZF9jdHg7 CisgICAgRFBYVnVsa2FuRGVjb2RlQ29udGV4dCAqZHh2ID0gY3R4LT5zZF9jdHg7CisgICAgVmtQ aHlzaWNhbERldmljZUxpbWl0cyAqbGltaXRzID0gJmN0eC0+cy5wcm9wcy5wcm9wZXJ0aWVzLmxp bWl0czsKKyAgICBGRlZ1bGthbkZ1bmN0aW9ucyAqdmsgPSAmY3R4LT5zLnZrZm47CisKKyAgICBE UFhWdWxrYW5EZWNvZGVQaWN0dXJlICpwcCA9IGRweC0+aHdhY2NlbF9waWN0dXJlX3ByaXZhdGU7 CisgICAgRkZWdWxrYW5EZWNvZGVQaWN0dXJlICp2cCA9ICZwcC0+dnA7CisKKyAgICBpbnQgdW5w YWNrID0gKGF2Y3R4LT5iaXRzX3Blcl9yYXdfc2FtcGxlID09IDEyICYmICFkcHgtPnBhY2tpbmcp IHx8CisgICAgICAgICAgICAgICAgIGF2Y3R4LT5iaXRzX3Blcl9yYXdfc2FtcGxlID09IDEwOwor ICAgIGlmICh1bnBhY2spCisgICAgICAgIHJldHVybiAwOworCisgICAgVmtJbWFnZUNyZWF0ZUlu Zm8gY3JlYXRlX2luZm8gPSB7CisgICAgICAgIC5zVHlwZSA9IFZLX1NUUlVDVFVSRV9UWVBFX0lN QUdFX0NSRUFURV9JTkZPLAorICAgICAgICAuaW1hZ2VUeXBlID0gVktfSU1BR0VfVFlQRV8yRCwK KyAgICAgICAgLmZvcm1hdCA9IGF2Y3R4LT5iaXRzX3Blcl9yYXdfc2FtcGxlID09IDggPyBWS19G T1JNQVRfUjhfVUlOVCA6CisgICAgICAgICAgICAgICAgICBhdmN0eC0+Yml0c19wZXJfcmF3X3Nh bXBsZSA9PSAzMiA/IFZLX0ZPUk1BVF9SMzJfVUlOVCA6CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0ZPUk1BVF9SMTZfVUlOVCwKKyAgICAg ICAgLmV4dGVudC53aWR0aCA9IGRweC0+ZnJhbWUtPndpZHRoKmRweC0+Y29tcG9uZW50cywKKyAg ICAgICAgLmV4dGVudC5oZWlnaHQgPSBkcHgtPmZyYW1lLT5oZWlnaHQsCisgICAgICAgIC5leHRl bnQuZGVwdGggPSAxLAorICAgICAgICAubWlwTGV2ZWxzID0gMSwKKyAgICAgICAgLmFycmF5TGF5 ZXJzID0gMSwKKyAgICAgICAgLnRpbGluZyA9IFZLX0lNQUdFX1RJTElOR19MSU5FQVIsCisgICAg ICAgIC5pbml0aWFsTGF5b3V0ID0gVktfSU1BR0VfTEFZT1VUX1VOREVGSU5FRCwKKyAgICAgICAg LnVzYWdlID0gVktfSU1BR0VfVVNBR0VfU1RPUkFHRV9CSVQgfCBWS19JTUFHRV9VU0FHRV9IT1NU X1RSQU5TRkVSX0JJVF9FWFQsCisgICAgICAgIC5zYW1wbGVzID0gVktfU0FNUExFX0NPVU5UXzFf QklULAorICAgICAgICAucFF1ZXVlRmFtaWx5SW5kaWNlcyA9ICZjdHgtPnFmWzBdLmlkeCwKKyAg ICAgICAgLnF1ZXVlRmFtaWx5SW5kZXhDb3VudCA9IDEsCisgICAgICAgIC5zaGFyaW5nTW9kZSA9 IFZLX1NIQVJJTkdfTU9ERV9FWENMVVNJVkUsCisgICAgfTsKKworICAgIGlmIChjcmVhdGVfaW5m by5leHRlbnQud2lkdGggPj0gbGltaXRzLT5tYXhJbWFnZURpbWVuc2lvbjJEIHx8CisgICAgICAg IGNyZWF0ZV9pbmZvLmV4dGVudC5oZWlnaHQgPj0gbGltaXRzLT5tYXhJbWFnZURpbWVuc2lvbjJE KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHZrLT5DcmVhdGVJbWFnZShjdHgtPnMuaHdjdHgt PmFjdF9kZXYsICZjcmVhdGVfaW5mbywgY3R4LT5zLmh3Y3R4LT5hbGxvYywKKyAgICAgICAgICAg ICAgICAgICAgJnRlbXApOworCisgICAgZXJyID0gZmZfdmtfZ2V0X3Bvb2xlZF9idWZmZXIoJmN0 eC0+cywgJmR4di0+ZnJhbWVfZGF0YV9wb29sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZ2cC0+c2xpY2VzX2J1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBWS19CVUZGRVJfVVNBR0VfU1RPUkFHRV9CVUZGRVJfQklUIHwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVktfQlVGRkVSX1VTQUdFX1NIQURFUl9ERVZJQ0VfQUREUkVT U19CSVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgc2l6ZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWS19NRU1PUllfUFJPUEVSVFlfREVWSUNF X0xPQ0FMX0JJVCk7CisgICAgaWYgKGVyciA8IDApCisgICAgICAgIHJldHVybiBlcnI7CisKKyAg ICBGRlZrQnVmZmVyICp2a2IgPSAoRkZWa0J1ZmZlciAqKXZwLT5zbGljZXNfYnVmLT5kYXRhOwor ICAgIFZrQmluZEltYWdlTWVtb3J5SW5mbyBiaW5kX2luZm8gPSB7CisgICAgICAgIC5zVHlwZSA9 IFZLX1NUUlVDVFVSRV9UWVBFX0JJTkRfSU1BR0VfTUVNT1JZX0lORk8sCisgICAgICAgIC5pbWFn ZSA9IHRlbXAsCisgICAgICAgIC5tZW1vcnkgPSB2a2ItPm1lbSwKKyAgICB9OworICAgIHZrLT5C aW5kSW1hZ2VNZW1vcnkyKGN0eC0+cy5od2N0eC0+YWN0X2RldiwgMSwgJmJpbmRfaW5mbyk7CisK KyAgICBWa0hvc3RJbWFnZUxheW91dFRyYW5zaXRpb25JbmZvIGxheW91dF9jaGFuZ2UgPSB7Cisg ICAgICAgIC5zVHlwZSA9IFZLX1NUUlVDVFVSRV9UWVBFX0hPU1RfSU1BR0VfTEFZT1VUX1RSQU5T SVRJT05fSU5GTywKKyAgICAgICAgLmltYWdlID0gdGVtcCwKKyAgICAgICAgLm9sZExheW91dCA9 IFZLX0lNQUdFX0xBWU9VVF9VTkRFRklORUQsCisgICAgICAgIC5uZXdMYXlvdXQgPSBWS19JTUFH RV9MQVlPVVRfR0VORVJBTCwKKyAgICAgICAgLnN1YnJlc291cmNlUmFuZ2UuYXNwZWN0TWFzayA9 IFZLX0lNQUdFX0FTUEVDVF9DT0xPUl9CSVQsCisgICAgICAgIC5zdWJyZXNvdXJjZVJhbmdlLmxh eWVyQ291bnQgPSAxLAorICAgICAgICAuc3VicmVzb3VyY2VSYW5nZS5sZXZlbENvdW50ID0gMSwK KyAgICB9OworICAgIHZrLT5UcmFuc2l0aW9uSW1hZ2VMYXlvdXRFWFQoY3R4LT5zLmh3Y3R4LT5h Y3RfZGV2LCAxLCAmbGF5b3V0X2NoYW5nZSk7CisKKyAgICBWa01lbW9yeVRvSW1hZ2VDb3B5IGNv cHlfcmVnaW9uID0geworICAgICAgICAuc1R5cGUgPSBWS19TVFJVQ1RVUkVfVFlQRV9NRU1PUllf VE9fSU1BR0VfQ09QWSwKKyAgICAgICAgLnBIb3N0UG9pbnRlciA9IHNyYywKKyAgICAgICAgLmlt YWdlU3VicmVzb3VyY2UuYXNwZWN0TWFzayA9IFZLX0lNQUdFX0FTUEVDVF9DT0xPUl9CSVQsCisg ICAgICAgIC5pbWFnZVN1YnJlc291cmNlLmxheWVyQ291bnQgPSAxLAorICAgICAgICAuaW1hZ2VF eHRlbnQgPSAoVmtFeHRlbnQzRCl7IGRweC0+ZnJhbWUtPndpZHRoKmRweC0+Y29tcG9uZW50cywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcHgtPmZyYW1lLT5oZWlnaHQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSB9LAorICAgIH07CisgICAg VmtDb3B5TWVtb3J5VG9JbWFnZUluZm8gY29weV9pbmZvID0geworICAgICAgICAuc1R5cGUgPSBW S19TVFJVQ1RVUkVfVFlQRV9DT1BZX01FTU9SWV9UT19JTUFHRV9JTkZPLAorICAgICAgICAuZmxh Z3MgPSBWS19IT1NUX0lNQUdFX0NPUFlfTUVNQ1BZX0JJVF9FWFQsCisgICAgICAgIC5kc3RJbWFn ZSA9IHRlbXAsCisgICAgICAgIC5kc3RJbWFnZUxheW91dCA9IFZLX0lNQUdFX0xBWU9VVF9HRU5F UkFMLAorICAgICAgICAucmVnaW9uQ291bnQgPSAxLAorICAgICAgICAucFJlZ2lvbnMgPSAmY29w eV9yZWdpb24sCisgICAgfTsKKyAgICB2ay0+Q29weU1lbW9yeVRvSW1hZ2VFWFQoY3R4LT5zLmh3 Y3R4LT5hY3RfZGV2LCAmY29weV9pbmZvKTsKKworICAgIHZrLT5EZXN0cm95SW1hZ2UoY3R4LT5z Lmh3Y3R4LT5hY3RfZGV2LCB0ZW1wLCBjdHgtPnMuaHdjdHgtPmFsbG9jKTsKKworICAgIHJldHVy biAwOworfQorCitzdGF0aWMgaW50IHZrX2RweF9zdGFydF9mcmFtZShBVkNvZGVjQ29udGV4dCAg ICAgICAgICAqYXZjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBVkJ1 ZmZlclJlZiAgICAgICAqYnVmZmVyX3JlZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGF2X3VudXNlZCBjb25zdCB1aW50OF90ICpidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhdl91bnVzZWQgdWludDMyX3QgICAgICAgc2l6ZSkKK3sKKyAgICBpbnQgZXJyOwor ICAgIEZGVnVsa2FuRGVjb2RlQ29udGV4dCAqZGVjID0gYXZjdHgtPmludGVybmFsLT5od2FjY2Vs X3ByaXZfZGF0YTsKKyAgICBGRlZ1bGthbkRlY29kZVNoYXJlZCAqY3R4ID0gZGVjLT5zaGFyZWRf Y3R4OworICAgIERQWERlY0NvbnRleHQgKmRweCA9IGF2Y3R4LT5wcml2X2RhdGE7CisKKyAgICBE UFhWdWxrYW5EZWNvZGVQaWN0dXJlICpwcCA9IGRweC0+aHdhY2NlbF9waWN0dXJlX3ByaXZhdGU7 CisgICAgRkZWdWxrYW5EZWNvZGVQaWN0dXJlICp2cCA9ICZwcC0+dnA7CisKKyAgICBpZiAoY3R4 LT5zLmV4dGVuc2lvbnMgJiBGRl9WS19FWFRfSE9TVF9JTUFHRV9DT1BZKQorICAgICAgICBob3N0 X3Vwb2FkX2ltYWdlKGF2Y3R4LCBkZWMsIGRweCwgYnVmZmVyLCBzaXplKTsKKworICAgIC8qIEhv c3QgbWFwIHRoZSBmcmFtZSBkYXRhIGlmIHN1cHBvcnRlZCAqLworICAgIGlmICghdnAtPnNsaWNl c19idWYgJiYKKyAgICAgICAgY3R4LT5zLmV4dGVuc2lvbnMgJiBGRl9WS19FWFRfRVhURVJOQUxf SE9TVF9NRU1PUlkpCisgICAgICAgIGZmX3ZrX2hvc3RfbWFwX2J1ZmZlcigmY3R4LT5zLCAmdnAt PnNsaWNlc19idWYsICh1aW50OF90ICopYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYnVmZmVyX3JlZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0JVRkZF Ul9VU0FHRV9TVE9SQUdFX0JVRkZFUl9CSVQgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVktfQlVGRkVSX1VTQUdFX1NIQURFUl9ERVZJQ0VfQUREUkVTU19CSVQpOworCisgICAgLyog UHJlcGFyZSBmcmFtZSB0byBiZSB1c2VkICovCisgICAgZXJyID0gZmZfdmtfZGVjb2RlX3ByZXBh cmVfZnJhbWVfc2RyKGRlYywgZHB4LT5mcmFtZSwgdnAsIDEsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEZGX1ZLX1JFUF9OQVRJVkUsIDApOworICAgIGlmIChlcnIg PCAwKQorICAgICAgICByZXR1cm4gZXJyOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBp bnQgdmtfZHB4X2RlY29kZV9zbGljZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAgKmRhdGEsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgIHNpemUpCit7CisgICAgRFBYRGVjQ29u dGV4dCAqZHB4ID0gYXZjdHgtPnByaXZfZGF0YTsKKworICAgIERQWFZ1bGthbkRlY29kZVBpY3R1 cmUgKnBwID0gZHB4LT5od2FjY2VsX3BpY3R1cmVfcHJpdmF0ZTsKKyAgICBGRlZ1bGthbkRlY29k ZVBpY3R1cmUgKnZwID0gJnBwLT52cDsKKworICAgIGlmICghdnAtPnNsaWNlc19idWYpIHsKKyAg ICAgICAgaW50IGVyciA9IGZmX3ZrX2RlY29kZV9hZGRfc2xpY2UoYXZjdHgsIHZwLCBkYXRhLCBz aXplLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBO VUxMKTsKKyAgICAgICAgaWYgKGVyciA8IDApCisgICAgICAgICAgICByZXR1cm4gZXJyOworICAg IH0KKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50IHZrX2RweF9lbmRfZnJhbWUoQVZD b2RlY0NvbnRleHQgKmF2Y3R4KQoreworICAgIGludCBlcnI7CisgICAgRkZWdWxrYW5EZWNvZGVD b250ZXh0ICpkZWMgPSBhdmN0eC0+aW50ZXJuYWwtPmh3YWNjZWxfcHJpdl9kYXRhOworICAgIEZG VnVsa2FuRGVjb2RlU2hhcmVkICpjdHggPSBkZWMtPnNoYXJlZF9jdHg7CisgICAgRkZWdWxrYW5G dW5jdGlvbnMgKnZrID0gJmN0eC0+cy52a2ZuOworCisgICAgRFBYRGVjQ29udGV4dCAqZHB4ID0g YXZjdHgtPnByaXZfZGF0YTsKKyAgICBEUFhWdWxrYW5EZWNvZGVDb250ZXh0ICpkeHYgPSBjdHgt PnNkX2N0eDsKKworICAgIERQWFZ1bGthbkRlY29kZVBpY3R1cmUgKnBwID0gZHB4LT5od2FjY2Vs X3BpY3R1cmVfcHJpdmF0ZTsKKyAgICBGRlZ1bGthbkRlY29kZVBpY3R1cmUgKnZwID0gJnBwLT52 cDsKKworICAgIEZGVmtCdWZmZXIgKnNsaWNlc19idWYgPSAoRkZWa0J1ZmZlciAqKXZwLT5zbGlj ZXNfYnVmLT5kYXRhOworCisgICAgVmtJbWFnZU1lbW9yeUJhcnJpZXIyIGltZ19iYXJbOF07Cisg ICAgaW50IG5iX2ltZ19iYXIgPSAwOworCisgICAgRkZWa0V4ZWNDb250ZXh0ICpleGVjID0gZmZf dmtfZXhlY19nZXQoJmN0eC0+cywgJmN0eC0+ZXhlY19wb29sKTsKKyAgICBmZl92a19leGVjX3N0 YXJ0KCZjdHgtPnMsIGV4ZWMpOworCisgICAgLyogUHJlcGFyZSBkZXBzICovCisgICAgUkVUKGZm X3ZrX2V4ZWNfYWRkX2RlcF9mcmFtZSgmY3R4LT5zLCBleGVjLCBkcHgtPmZyYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVktfUElQRUxJTkVfU1RBR0VfMl9BTExfQ09NTUFO RFNfQklULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVktfUElQRUxJTkVfU1RB R0VfMl9DT01QVVRFX1NIQURFUl9CSVQpKTsKKworICAgIGVyciA9IGZmX3ZrX2V4ZWNfbWlycm9y X3NlbV92YWx1ZSgmY3R4LT5zLCBleGVjLCAmdnAtPnNlbSwgJnZwLT5zZW1fdmFsdWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRweC0+ZnJhbWUpOworICAgIGlmIChl cnIgPCAwKQorICAgICAgICByZXR1cm4gZXJyOworCisgICAgUkVUKGZmX3ZrX2V4ZWNfYWRkX2Rl cF9idWYoJmN0eC0+cywgZXhlYywgJnZwLT5zbGljZXNfYnVmLCAxLCAwKSk7CisgICAgdnAtPnNs aWNlc19idWYgPSBOVUxMOworCisgICAgQVZWa0ZyYW1lICp2a2YgPSAoQVZWa0ZyYW1lICopZHB4 LT5mcmFtZS0+ZGF0YVswXTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkrKykgeworICAg ICAgICB2a2YtPmxheW91dFtpXSA9IFZLX0lNQUdFX0xBWU9VVF9VTkRFRklORUQ7CisgICAgICAg IHZrZi0+YWNjZXNzW2ldID0gVktfQUNDRVNTXzJfTk9ORTsKKyAgICB9CisKKyAgICBmZl92a19m cmFtZV9iYXJyaWVyKCZjdHgtPnMsIGV4ZWMsIGRweC0+ZnJhbWUsIGltZ19iYXIsICZuYl9pbWdf YmFyLAorICAgICAgICAgICAgICAgICAgICAgICAgVktfUElQRUxJTkVfU1RBR0VfMl9BTExfQ09N TUFORFNfQklULAorICAgICAgICAgICAgICAgICAgICAgICAgVktfUElQRUxJTkVfU1RBR0VfMl9D T01QVVRFX1NIQURFUl9CSVQsCisgICAgICAgICAgICAgICAgICAgICAgICBWS19BQ0NFU1NfMl9T SEFERVJfU1RPUkFHRV9XUklURV9CSVQsCisgICAgICAgICAgICAgICAgICAgICAgICBWS19JTUFH RV9MQVlPVVRfR0VORVJBTCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFZLX1FVRVVFX0ZBTUlM WV9JR05PUkVEKTsKKworICAgIHZrLT5DbWRQaXBlbGluZUJhcnJpZXIyKGV4ZWMtPmJ1ZiwgJihW a0RlcGVuZGVuY3lJbmZvKSB7CisgICAgICAgIC5zVHlwZSA9IFZLX1NUUlVDVFVSRV9UWVBFX0RF UEVOREVOQ1lfSU5GTywKKyAgICAgICAgLnBJbWFnZU1lbW9yeUJhcnJpZXJzID0gaW1nX2JhciwK KyAgICAgICAgLmltYWdlTWVtb3J5QmFycmllckNvdW50ID0gbmJfaW1nX2JhciwKKyAgICB9KTsK KyAgICBuYl9pbWdfYmFyID0gMDsKKworICAgIEZGVnVsa2FuU2hhZGVyICpzaGQgPSAmZHh2LT5z aGFkZXI7CisgICAgZmZfdmtfc2hhZGVyX3VwZGF0ZV9pbWdfYXJyYXkoJmN0eC0+cywgZXhlYywg c2hkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRweC0+ZnJhbWUsIHZwLT52 aWV3Lm91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0lNQUdFX0xBWU9VVF9HRU5FUkFMLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX05VTExfSEFORExFKTsKKyAgICBmZl92 a19zaGFkZXJfdXBkYXRlX2Rlc2NfYnVmZmVyKCZjdHgtPnMsIGV4ZWMsIHNoZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzbGljZXNfYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMCwgc2xpY2VzX2J1Zi0+c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFZLX0ZPUk1BVF9VTkRFRklORUQpOworCisgICAgZmZfdmtfZXhlY19iaW5kX3No YWRlcigmY3R4LT5zLCBleGVjLCBzaGQpOworCisgICAgLyogVXBkYXRlIHB1c2ggZGF0YSAqLwor ICAgIERlY29kZVB1c2hEYXRhIHBkID0gKERlY29kZVB1c2hEYXRhKSB7CisgICAgICAgIC5zdHJp ZGUgPSBkcHgtPnN0cmlkZSwKKyAgICAgICAgLm5lZWRfYWxpZ24gPSBkcHgtPm5lZWRfYWxpZ24s CisgICAgICAgIC5wYWRkZWRfMTBiaXQgPSAhZHB4LT51bnBhZGRlZF8xMGJpdCwKKyAgICB9Owor CisgICAgZmZfdmtfc2hhZGVyX3VwZGF0ZV9wdXNoX2NvbnN0KCZjdHgtPnMsIGV4ZWMsIHNoZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVktfU0hBREVSX1NUQUdFX0NPTVBV VEVfQklULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBzaXplb2YocGQp LCAmcGQpOworCisgICAgdmstPkNtZERpc3BhdGNoKGV4ZWMtPmJ1ZiwKKyAgICAgICAgICAgICAg ICAgICAgRkZBTElHTihkcHgtPmZyYW1lLT53aWR0aCwgIHNoZC0+bGdfc2l6ZVswXSkvc2hkLT5s Z19zaXplWzBdLAorICAgICAgICAgICAgICAgICAgICBGRkFMSUdOKGRweC0+ZnJhbWUtPmhlaWdo dCwgc2hkLT5sZ19zaXplWzFdKS9zaGQtPmxnX3NpemVbMV0sCisgICAgICAgICAgICAgICAgICAg IDEpOworCisgICAgZXJyID0gZmZfdmtfZXhlY19zdWJtaXQoJmN0eC0+cywgZXhlYyk7CisgICAg aWYgKGVyciA8IDApCisgICAgICAgIHJldHVybiBlcnI7CisKK2ZhaWw6CisgICAgcmV0dXJuIDA7 Cit9CisKK3N0YXRpYyBpbnQgaW5pdF9zaGFkZXIoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBGRlZ1 bGthbkNvbnRleHQgKnMsCisgICAgICAgICAgICAgICAgICAgICAgIEZGVmtFeGVjUG9vbCAqcG9v bCwgRkZWa1NQSVJWQ29tcGlsZXIgKnNwdiwKKyAgICAgICAgICAgICAgICAgICAgICAgRkZWdWxr YW5TaGFkZXIgKnNoZCwgaW50IGJpdHMpCit7CisgICAgaW50IGVycjsKKyAgICBEUFhEZWNDb250 ZXh0ICpkcHggPSBhdmN0eC0+cHJpdl9kYXRhOworICAgIEZGVnVsa2FuRGVzY3JpcHRvclNldEJp bmRpbmcgKmRlc2Nfc2V0OworICAgIEFWSFdGcmFtZXNDb250ZXh0ICpkZWNfZnJhbWVzX2N0eDsK KyAgICBkZWNfZnJhbWVzX2N0eCA9IChBVkhXRnJhbWVzQ29udGV4dCAqKWF2Y3R4LT5od19mcmFt ZXNfY3R4LT5kYXRhOworICAgIGludCBwbGFuZXMgPSBhdl9waXhfZm10X2NvdW50X3BsYW5lcyhk ZWNfZnJhbWVzX2N0eC0+c3dfZm9ybWF0KTsKKworICAgIHVpbnQ4X3QgKnNwdl9kYXRhOworICAg IHNpemVfdCBzcHZfbGVuOworICAgIHZvaWQgKnNwdl9vcGFxdWUgPSBOVUxMOworCisgICAgUkVU KGZmX3ZrX3NoYWRlcl9pbml0KHMsIHNoZCwgImRweCIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgIFZLX1NIQURFUl9TVEFHRV9DT01QVVRFX0JJVCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgKGNvbnN0IGNoYXIgKltdKSB7ICJHTF9FWFRfYnVmZmVyX3JlZmVyZW5jZSIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR0xfRVhUX2J1ZmZlcl9yZWZl cmVuY2UyIiB9LCAyLAorICAgICAgICAgICAgICAgICAgICAgICAgICA1MTIsIDEsIDEsCisgICAg ICAgICAgICAgICAgICAgICAgICAgIDApKTsKKworICAgIC8qIENvbW1vbiBjb2RlYyBoZWFkZXIg Ki8KKyAgICBHTFNMRChmZl9zb3VyY2VfY29tbW9uX2NvbXApOworCisgICAgR0xTTEMoMCwgbGF5 b3V0KHB1c2hfY29uc3RhbnQsIHNjYWxhcikgdW5pZm9ybSBwdXNoQ29uc3RhbnRzIHsgICAgICAg ICAgICApOworICAgIEdMU0xDKDEsICAgICBpbnQgc3RyaWRlOyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICBHTFNMQygxLCAgICAgaW50IG5l ZWRfYWxpZ247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7 CisgICAgR0xTTEMoMSwgICAgIGludCBwYWRkZWRfMTBiaXQ7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICApOworICAgIEdMU0xDKDAsIH07ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICBH TFNMQygwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICk7CisgICAgZmZfdmtfc2hhZGVyX2FkZF9wdXNoX2NvbnN0KHNoZCwg MCwgc2l6ZW9mKERlY29kZVB1c2hEYXRhKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVktfU0hBREVSX1NUQUdFX0NPTVBVVEVfQklUKTsKKworICAgIGludCB1bnBhY2sgPSAoYXZj dHgtPmJpdHNfcGVyX3Jhd19zYW1wbGUgPT0gMTIgJiYgIWRweC0+cGFja2luZykgfHwKKyAgICAg ICAgICAgICAgICAgYXZjdHgtPmJpdHNfcGVyX3Jhd19zYW1wbGUgPT0gMTA7CisKKyAgICBkZXNj X3NldCA9IChGRlZ1bGthbkRlc2NyaXB0b3JTZXRCaW5kaW5nIFtdKSB7CisgICAgICAgIHsKKyAg ICAgICAgICAgIC5uYW1lICAgICAgID0gImRzdCIsCisgICAgICAgICAgICAudHlwZSAgICAgICA9 IFZLX0RFU0NSSVBUT1JfVFlQRV9TVE9SQUdFX0lNQUdFLAorICAgICAgICAgICAgLmRpbWVuc2lv bnMgPSAyLAorICAgICAgICAgICAgLm1lbV9xdWFsaSAgPSAid3JpdGVvbmx5IiwKKyAgICAgICAg ICAgIC5tZW1fbGF5b3V0ID0gZmZfdmtfc2hhZGVyX3JlcF9mbXQoZGVjX2ZyYW1lc19jdHgtPnN3 X2Zvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RkZfVktfUkVQX05BVElWRSksCisgICAgICAgICAgICAuZWxlbXMgICAgICA9IHBsYW5lcywKKyAg ICAgICAgICAgIC5zdGFnZXMgICAgID0gVktfU0hBREVSX1NUQUdFX0NPTVBVVEVfQklULAorICAg ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAubmFtZSAgICAgICAgPSAiZGF0YV9idWYi LAorICAgICAgICAgICAgLnR5cGUgICAgICAgID0gVktfREVTQ1JJUFRPUl9UWVBFX1NUT1JBR0Vf QlVGRkVSLAorICAgICAgICAgICAgLnN0YWdlcyAgICAgID0gVktfU0hBREVSX1NUQUdFX0NPTVBV VEVfQklULAorICAgICAgICAgICAgLm1lbV9xdWFsaSAgID0gInJlYWRvbmx5IiwKKyAgICAgICAg ICAgIC5idWZfY29udGVudCA9ICh1bnBhY2sgfHwgYml0cyA9PSAzMikgPyAidWludDMyX3QgZGF0 YVtdOyIgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0cyA9PSA4ID8gInVpbnQ4X3Qg ZGF0YVtdOyIgOiAidWludDE2X3QgZGF0YVtdOyIsCisgICAgICAgIH0sCisgICAgfTsKKyAgICBS RVQoZmZfdmtfc2hhZGVyX2FkZF9kZXNjcmlwdG9yX3NldChzLCBzaGQsIGRlc2Nfc2V0LCAyLCAw LCAwKSk7CisKKyAgICBpZiAoZHB4LT5lbmRpYW4pCisgICAgICAgIEdMU0xDKDAsICNkZWZpbmUg QklHX0VORElBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwor ICAgIEdMU0xGKDAsICNkZWZpbmUgQ09NUE9ORU5UUyAoJWkpICAgICAgICAgICAgICAgICAgICAg ICAgICAsZHB4LT5jb21wb25lbnRzKTsKKyAgICBHTFNMRigwLCAjZGVmaW5lIEJJVFNfUEVSX0NP TVAgKCVpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsYml0cyk7CisgICAgR0xT TEYoMCwgI2RlZmluZSBOQl9JTUFHRVMgKCVpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICxwbGFuZXMpOworICAgIGlmICh1bnBhY2spIHsKKyAgICAgICAgaWYgKGJpdHMgPT0g MTApCisgICAgICAgICAgICBHTFNMQygwLCAjZGVmaW5lIFBBQ0tFRF8xMEJJVCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICBHTFNMRChmZl9zb3VyY2VfZHB4 X3VucGFja19jb21wKTsKKyAgICB9IGVsc2UgeworICAgICAgICBHTFNMRigwLCAjZGVmaW5lIFNI SUZUICglaSkgICAgICAgICAgICAgICAgICAgLEZGQUxJR04oYml0cywgOCkgLSBiaXRzKTsKKyAg ICAgICAgR0xTTEYoMCwgI2RlZmluZSBUWVBFIHVpbnQlaV90ICAgICAgICAgICAgICAgICAgICAg ICAsRkZBTElHTihiaXRzLCA4KSk7CisgICAgICAgIEdMU0xGKDAsICNkZWZpbmUgVFlQRV9WRUMg dSVpdmVjNCAgICAgICAgICAgICAgICAgICAgLEZGQUxJR04oYml0cywgOCkpOworICAgICAgICBH TFNMRigwLCAjZGVmaW5lIFRZUEVfUkVWRVJTRSh4KSAocmV2ZXJzZSVpKHgpKSwgICAgRkZBTElH TihiaXRzLCA4KS84KTsKKyAgICAgICAgR0xTTEQoZmZfc291cmNlX2RweF9jb3B5X2NvbXApOwor ICAgIH0KKworICAgIFJFVChzcHYtPmNvbXBpbGVfc2hhZGVyKHMsIHNwdiwgc2hkLCAmc3B2X2Rh dGEsICZzcHZfbGVuLCAibWFpbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNwdl9v cGFxdWUpKTsKKyAgICBSRVQoZmZfdmtfc2hhZGVyX2xpbmsocywgc2hkLCBzcHZfZGF0YSwgc3B2 X2xlbiwgIm1haW4iKSk7CisKKyAgICBSRVQoZmZfdmtfc2hhZGVyX3JlZ2lzdGVyX2V4ZWMocywg cG9vbCwgc2hkKSk7CisKK2ZhaWw6CisgICAgaWYgKHNwdl9vcGFxdWUpCisgICAgICAgIHNwdi0+ ZnJlZV9zaGFkZXIoc3B2LCAmc3B2X29wYXF1ZSk7CisKKyAgICByZXR1cm4gZXJyOworfQorCitz dGF0aWMgdm9pZCB2a19kZWNvZGVfZHB4X3VuaW5pdChGRlZ1bGthbkRlY29kZVNoYXJlZCAqY3R4 KQoreworICAgIERQWFZ1bGthbkRlY29kZUNvbnRleHQgKmZ2ID0gY3R4LT5zZF9jdHg7CisKKyAg ICBmZl92a19zaGFkZXJfZnJlZSgmY3R4LT5zLCAmZnYtPnNoYWRlcik7CisKKyAgICBhdl9idWZm ZXJfcG9vbF91bmluaXQoJmZ2LT5mcmFtZV9kYXRhX3Bvb2wpOworCisgICAgYXZfZnJlZXAoJmZ2 KTsKK30KKworc3RhdGljIGludCB2a19kZWNvZGVfZHB4X2luaXQoQVZDb2RlY0NvbnRleHQgKmF2 Y3R4KQoreworICAgIGludCBlcnI7CisgICAgRFBYRGVjQ29udGV4dCAqZHB4ID0gYXZjdHgtPnBy aXZfZGF0YTsKKyAgICBGRlZ1bGthbkRlY29kZUNvbnRleHQgKmRlYyA9IGF2Y3R4LT5pbnRlcm5h bC0+aHdhY2NlbF9wcml2X2RhdGE7CisKKyAgICBzd2l0Y2ggKGRweC0+cGl4X2ZtdCkgeworICAg IGNhc2UgQVZfUElYX0ZNVF9HUkFZMTA6CisgICAgY2FzZSBBVl9QSVhfRk1UX0dSQVkxMjoKKyAg ICBjYXNlIEFWX1BJWF9GTVRfR0JSQVAxMDoKKyAgICBjYXNlIEFWX1BJWF9GTVRfR0JSQVAxMjoK KyAgICBjYXNlIEFWX1BJWF9GTVRfVVlWWTQyMjoKKyAgICBjYXNlIEFWX1BJWF9GTVRfWVVWNDQ0 UDoKKyAgICBjYXNlIEFWX1BJWF9GTVRfWVVWQTQ0NFA6CisgICAgICAgIHJldHVybiBBVkVSUk9S KEVOT1RTVVApOworICAgIGNhc2UgQVZfUElYX0ZNVF9HQlJQMTA6CisgICAgICAgIGlmIChkcHgt PnVucGFkZGVkXzEwYml0KQorICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PVFNVUCk7Cisg ICAgLyogZmFsbHRocm91Z2ggKi8KKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9 CisKKyAgICBGRlZrU1BJUlZDb21waWxlciAqc3B2ID0gZmZfdmtfc3BpcnZfaW5pdCgpOworICAg IGlmICghc3B2KSB7CisgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiVW5hYmxl IHRvIGluaXRpYWxpemUgU1BJUi1WIGNvbXBpbGVyIVxuIik7CisgICAgICAgIHJldHVybiBBVkVS Uk9SX0VYVEVSTkFMOworICAgIH0KKworICAgIGVyciA9IGZmX3ZrX2RlY29kZV9pbml0KGF2Y3R4 KTsKKyAgICBpZiAoZXJyIDwgMCkKKyAgICAgICAgcmV0dXJuIGVycjsKKworICAgIEZGVnVsa2Fu RGVjb2RlU2hhcmVkICpjdHggPSBkZWMtPnNoYXJlZF9jdHg7CisgICAgRFBYVnVsa2FuRGVjb2Rl Q29udGV4dCAqZHh2ID0gY3R4LT5zZF9jdHggPSBhdl9tYWxsb2N6KHNpemVvZigqZHh2KSk7Cisg ICAgaWYgKCFkeHYpIHsKKyAgICAgICAgZXJyID0gQVZFUlJPUihFTk9NRU0pOworICAgICAgICBn b3RvIGZhaWw7CisgICAgfQorCisgICAgY3R4LT5zZF9jdHhfZnJlZSA9ICZ2a19kZWNvZGVfZHB4 X3VuaW5pdDsKKworICAgIFJFVChpbml0X3NoYWRlcihhdmN0eCwgJmN0eC0+cywgJmN0eC0+ZXhl Y19wb29sLAorICAgICAgICAgICAgICAgICAgICBzcHYsICZkeHYtPnNoYWRlciwgYXZjdHgtPmJp dHNfcGVyX3Jhd19zYW1wbGUpKTsKKworZmFpbDoKKyAgICBzcHYtPnVuaW5pdCgmc3B2KTsKKwor ICAgIHJldHVybiBlcnI7Cit9CisKK3N0YXRpYyB2b2lkIHZrX2RweF9mcmVlX2ZyYW1lX3ByaXYo QVZSZWZTdHJ1Y3RPcGFxdWUgX2h3Y3R4LCB2b2lkICpkYXRhKQoreworICAgIEFWSFdEZXZpY2VD b250ZXh0ICpkZXZfY3R4ID0gX2h3Y3R4Lm5jOworCisgICAgRFBYVnVsa2FuRGVjb2RlUGljdHVy ZSAqcHAgPSBkYXRhOworICAgIEZGVnVsa2FuRGVjb2RlUGljdHVyZSAqdnAgPSAmcHAtPnZwOwor CisgICAgZmZfdmtfZGVjb2RlX2ZyZWVfZnJhbWUoZGV2X2N0eCwgdnApOworfQorCitjb25zdCBG RkhXQWNjZWwgZmZfZHB4X3Z1bGthbl9od2FjY2VsID0geworICAgIC5wLm5hbWUgICAgICAgICAg ICAgICAgPSAiZHB4X3Z1bGthbiIsCisgICAgLnAudHlwZSAgICAgICAgICAgICAgICA9IEFWTUVE SUFfVFlQRV9WSURFTywKKyAgICAucC5pZCAgICAgICAgICAgICAgICAgID0gQVZfQ09ERUNfSURf RFBYLAorICAgIC5wLnBpeF9mbXQgICAgICAgICAgICAgPSBBVl9QSVhfRk1UX1ZVTEtBTiwKKyAg ICAuc3RhcnRfZnJhbWUgICAgICAgICAgID0gJnZrX2RweF9zdGFydF9mcmFtZSwKKyAgICAuZGVj b2RlX3NsaWNlICAgICAgICAgID0gJnZrX2RweF9kZWNvZGVfc2xpY2UsCisgICAgLmVuZF9mcmFt ZSAgICAgICAgICAgICA9ICZ2a19kcHhfZW5kX2ZyYW1lLAorICAgIC5mcmVlX2ZyYW1lX3ByaXYg ICAgICAgPSAmdmtfZHB4X2ZyZWVfZnJhbWVfcHJpdiwKKyAgICAuZnJhbWVfcHJpdl9kYXRhX3Np emUgID0gc2l6ZW9mKERQWFZ1bGthbkRlY29kZVBpY3R1cmUpLAorICAgIC5pbml0ICAgICAgICAg ICAgICAgICAgPSAmdmtfZGVjb2RlX2RweF9pbml0LAorICAgIC51cGRhdGVfdGhyZWFkX2NvbnRl eHQgPSAmZmZfdmtfdXBkYXRlX3RocmVhZF9jb250ZXh0LAorICAgIC5kZWNvZGVfcGFyYW1zICAg ICAgICAgPSAmZmZfdmtfcGFyYW1zX2ludmFsaWRhdGUsCisgICAgLmZsdXNoICAgICAgICAgICAg ICAgICA9ICZmZl92a19kZWNvZGVfZmx1c2gsCisgICAgLnVuaW5pdCAgICAgICAgICAgICAgICA9 ICZmZl92a19kZWNvZGVfdW5pbml0LAorICAgIC5mcmFtZV9wYXJhbXMgICAgICAgICAgPSAmZmZf dmtfZnJhbWVfcGFyYW1zLAorICAgIC5wcml2X2RhdGFfc2l6ZSAgICAgICAgPSBzaXplb2YoRkZW dWxrYW5EZWNvZGVDb250ZXh0KSwKKyAgICAuY2Fwc19pbnRlcm5hbCAgICAgICAgID0gSFdBQ0NF TF9DQVBfQVNZTkNfU0FGRSB8IEhXQUNDRUxfQ0FQX1RIUkVBRF9TQUZFLAorfTsKLS0gCjIuNTIu MAoKCkZyb20gODBmYmMwNmQ4NzYyZGI1NzE5MDM1M2NmYzBiMDFlZjEzZWVkNjRkNCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTHlubmUgPGRldkBseW5uZS5lZT4KRGF0ZTogVHVlLCAy NSBOb3YgMjAyNSAxNzowNDowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDk4LzMwNF0gQ2hhbmdl bG9nOiBidW1wIGxhdmMgbWlub3IgYW5kIGFkZCBlbnRyeSBmb3IgdGhlIERQWAogVnVsa2FuIGh3 YWNjZWwKCi0tLQogQ2hhbmdlbG9nICAgICAgICAgICAgfCAxICsKIGxpYmF2Y29kZWMvdmVyc2lv bi5oIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9DaGFuZ2Vsb2cgYi9DaGFuZ2Vsb2cKaW5kZXggMzc1N2VhYzJlNC4u ZTRmN2UxMjNkNCAxMDA2NDQKLS0tIGEvQ2hhbmdlbG9nCisrKyBiL0NoYW5nZWxvZwpAQCAtMTIs NiArMTIsNyBAQCB2ZXJzaW9uIDxuZXh0PjoKIC0gZmZtcGVnIENMSSB0aWxlZCBIRUlGIHN1cHBv cnQKIC0gRDNEMTIgQVYxIGVuY29kZXIKIC0gUHJvUmVzIFZ1bGthbiBod2FjY2VsCistIERQWCBW dWxrYW4gaHdhY2NlbAogCiAKIHZlcnNpb24gOC4wOgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92 ZXJzaW9uLmggYi9saWJhdmNvZGVjL3ZlcnNpb24uaAppbmRleCA0YjdlYzUxNWZlLi5kMDk4MGUy OGRlIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3ZlcnNpb24uaAorKysgYi9saWJhdmNvZGVjL3Zl cnNpb24uaApAQCAtMjksNyArMjksNyBAQAogCiAjaW5jbHVkZSAidmVyc2lvbl9tYWpvci5oIgog Ci0jZGVmaW5lIExJQkFWQ09ERUNfVkVSU0lPTl9NSU5PUiAgMTkKKyNkZWZpbmUgTElCQVZDT0RF Q19WRVJTSU9OX01JTk9SICAyMAogI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05fTUlDUk8gMTAw CiAKICNkZWZpbmUgTElCQVZDT0RFQ19WRVJTSU9OX0lOVCAgQVZfVkVSU0lPTl9JTlQoTElCQVZD T0RFQ19WRVJTSU9OX01BSk9SLCBcCi0tIAoyLjUyLjAKCgpGcm9tIDNjZGRhNmRjMTNlNjkyMmM1 NTIzY2M5ZTVmMjYwMzIxYWYwMjEyMjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEph bWVzIEFsbWVyIDxqYW1yaWFsQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyNSBOb3YgMjAyNSAxMDoy NjoyNyAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDk5LzMwNF0gYXZmb3JtYXQvaWFtZl9wYXJzZTog ZW5zdXJlIGVhY2ggbGF5b3V0IGluIGFuCiBzY2FsYWJsZSBjaGFubmVsIHJlcHJlc2VudGF0aW9u IGhhcyBhbiBpbmNyZWFzaW5nIG51bWJlciBvZiBjaGFubmVscwoKRml4ZXMgaXNzdWUgIzIxMDEz CgpTaWduZWQtb2ZmLWJ5OiBKYW1lcyBBbG1lciA8amFtcmlhbEBnbWFpbC5jb20+Ci0tLQogbGli YXZmb3JtYXQvaWFtZl9wYXJzZS5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9pYW1mX3BhcnNlLmMgYi9saWJhdmZvcm1h dC9pYW1mX3BhcnNlLmMKaW5kZXggNTBhY2Q3Y2Y1YS4uNzM3ZTNmNzQwNCAxMDA2NDQKLS0tIGEv bGliYXZmb3JtYXQvaWFtZl9wYXJzZS5jCisrKyBiL2xpYmF2Zm9ybWF0L2lhbWZfcGFyc2UuYwpA QCAtNDA2LDYgKzQwNiw5IEBAIHN0YXRpYyBpbnQgc2NhbGFibGVfY2hhbm5lbF9sYXlvdXRfY29u ZmlnKHZvaWQgKnMsIEFWSU9Db250ZXh0ICpwYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubmJfY2hhbm5lbHMgPSBzdWJzdHJlYW1f Y291bnQgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvdXBsZWRfc3Vic3RyZWFtX2NvdW50IH07CiAKKyAg ICAgICAgaWYgKGkgJiYgY2hfbGF5b3V0Lm5iX2NoYW5uZWxzIDw9IGF1ZGlvX2VsZW1lbnQtPmVs ZW1lbnQtPmxheWVyc1tpLTFdLT5jaF9sYXlvdXQubmJfY2hhbm5lbHMpCisgICAgICAgICAgICBy ZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKKwogICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8 IHN1YnN0cmVhbV9jb3VudDsgaisrKSB7CiAgICAgICAgICAgICBJQU1GU3ViU3RyZWFtICpzdWJz dHJlYW0gPSAmYXVkaW9fZWxlbWVudC0+c3Vic3RyZWFtc1trKytdOwogCi0tIAoyLjUyLjAKCgpG cm9tIDA2YTAyYmMyZDQ3NzQyMDQyNWM4OTUwOTQ0NWZhM2ZlM2M3MzAyM2EgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEphbWVzIEFsbWVyIDxqYW1yaWFsQGdtYWlsLmNvbT4KRGF0ZTog VHVlLCAyNSBOb3YgMjAyNSAxMjo0MjozMCAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTAwLzMwNF0g YXZmb3JtYXQvaWFtZl9wYXJzZTogZW5zdXJlIHRoZSBzdHJlYW0gY291bnQgaW4gYQogc2NhbGFi bGUgY2hhbm5lbCByZXByZXNlbnRhdGlvbiBpcyBlcXVhbCB0byB0aGUgYXVkaW8gZWxlbWVudCdz IHN0cmVhbSBjb3VudAoKU2lnbmVkLW9mZi1ieTogSmFtZXMgQWxtZXIgPGphbXJpYWxAZ21haWwu Y29tPgotLS0KIGxpYmF2Zm9ybWF0L2lhbWZfcGFyc2UuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvaWFtZl9wYXJzZS5j IGIvbGliYXZmb3JtYXQvaWFtZl9wYXJzZS5jCmluZGV4IDczN2UzZjc0MDQuLjU5N2Q4MDBiZTAg MTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L2lhbWZfcGFyc2UuYworKysgYi9saWJhdmZvcm1hdC9p YW1mX3BhcnNlLmMKQEAgLTQ4MCw2ICs0ODAsOSBAQCBzdGF0aWMgaW50IHNjYWxhYmxlX2NoYW5u ZWxfbGF5b3V0X2NvbmZpZyh2b2lkICpzLCBBVklPQ29udGV4dCAqcGIsCiAgICAgICAgICAgICBh dl9jaGFubmVsX2xheW91dF9jb3B5KCZsYXllci0+Y2hfbGF5b3V0LCAmY2hfbGF5b3V0KTsKICAg ICB9CiAKKyAgICBpZiAoayAhPSBhdWRpb19lbGVtZW50LT5uYl9zdWJzdHJlYW1zKQorICAgICAg ICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKKwogICAgIHJldHVybiAwOwogfQogCi0tIAoy LjUyLjAKCgpGcm9tIGZlM2I3MTE2YjJmYTkyM2UxMzAzNTc2YWNiZjJiNzZkMTVjYTJiNjQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEx5bm5lIDxkZXZAbHlubmUuZWU+CkRhdGU6IFdl ZCwgMjYgTm92IDIwMjUgMTg6MzI6MjUgKzAxMDAKU3ViamVjdDogW1BBVENIIDEwMS8zMDRdIHZ1 bGthbl9kcHg6IGZpeCAidXBvYWQiIHR5cG8KCi0tLQogbGliYXZjb2RlYy92dWxrYW5fZHB4LmMg fCA4ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnVsa2FuX2RweC5jIGIvbGliYXZjb2RlYy92 dWxrYW5fZHB4LmMKaW5kZXggMWFmNDE3ZmRmNy4uNDY1ZWQxNzE5NCAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy92dWxrYW5fZHB4LmMKKysrIGIvbGliYXZjb2RlYy92dWxrYW5fZHB4LmMKQEAgLTUw LDkgKzUwLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgRGVjb2RlUHVzaERhdGEgewogICAgIGludCBwYWRk ZWRfMTBiaXQ7CiB9IERlY29kZVB1c2hEYXRhOwogCi1zdGF0aWMgaW50IGhvc3RfdXBvYWRfaW1h Z2UoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZG VnVsa2FuRGVjb2RlQ29udGV4dCAqZGVjLCBEUFhEZWNDb250ZXh0ICpkcHgsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqc3JjLCB1aW50MzJfdCBzaXplKQorc3Rh dGljIGludCBob3N0X3VwbG9hZF9pbWFnZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEZGVnVsa2FuRGVjb2RlQ29udGV4dCAqZGVjLCBEUFhEZWND b250ZXh0ICpkcHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3Qg KnNyYywgdWludDMyX3Qgc2l6ZSkKIHsKICAgICBpbnQgZXJyOwogICAgIFZrSW1hZ2UgdGVtcDsK QEAgLTE2Myw3ICsxNjMsNyBAQCBzdGF0aWMgaW50IHZrX2RweF9zdGFydF9mcmFtZShBVkNvZGVj Q29udGV4dCAgICAgICAgICAqYXZjdHgsCiAgICAgRkZWdWxrYW5EZWNvZGVQaWN0dXJlICp2cCA9 ICZwcC0+dnA7CiAKICAgICBpZiAoY3R4LT5zLmV4dGVuc2lvbnMgJiBGRl9WS19FWFRfSE9TVF9J TUFHRV9DT1BZKQotICAgICAgICBob3N0X3Vwb2FkX2ltYWdlKGF2Y3R4LCBkZWMsIGRweCwgYnVm ZmVyLCBzaXplKTsKKyAgICAgICAgaG9zdF91cGxvYWRfaW1hZ2UoYXZjdHgsIGRlYywgZHB4LCBi dWZmZXIsIHNpemUpOwogCiAgICAgLyogSG9zdCBtYXAgdGhlIGZyYW1lIGRhdGEgaWYgc3VwcG9y dGVkICovCiAgICAgaWYgKCF2cC0+c2xpY2VzX2J1ZiAmJgotLSAKMi41Mi4wCgoKRnJvbSBkYzYx Nzk4NDVjNmVjNWYyYTBiNGM0ZmVmMzUxZjllNjQ3YzI0MTY4IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBMeW5uZSA8ZGV2QGx5bm5lLmVlPgpEYXRlOiBXZWQsIDI2IE5vdiAyMDI1IDE4 OjMzOjEwICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMDIvMzA0XSB2dWxrYW5fZHB4OiB1c2UgaG9z dCB2aXNpYmxlIGFsbG9jYXRpb24gZm9yIGhvc3QKIGltYWdlIGNvcHkgYnVmZmVyCgpGaXhlcyBi bGFjayBzY3JlZW4gb24gTnZpZGlhLgotLS0KIGxpYmF2Y29kZWMvdnVsa2FuX2RweC5jIHwgMyAr Ky0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9saWJhdmNvZGVjL3Z1bGthbl9kcHguYyBiL2xpYmF2Y29kZWMvdnVsa2FuX2RweC5j CmluZGV4IDQ2NWVkMTcxOTQuLjg5NzhiNzhkYjQgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdnVs a2FuX2RweC5jCisrKyBiL2xpYmF2Y29kZWMvdnVsa2FuX2RweC5jCkBAIC0xMDIsNyArMTAyLDgg QEAgc3RhdGljIGludCBob3N0X3VwbG9hZF9pbWFnZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVktfQlVGRkVSX1VTQUdFX1NUT1JBR0Vf QlVGRkVSX0JJVCB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0JV RkZFUl9VU0FHRV9TSEFERVJfREVWSUNFX0FERFJFU1NfQklULAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5VTEwsIHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVktfTUVNT1JZX1BST1BFUlRZX0RFVklDRV9MT0NBTF9CSVQpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFZLX01FTU9SWV9QUk9QRVJUWV9ERVZJQ0VfTE9DQUxfQklU IHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWS19NRU1PUllfUFJPUEVSVFlf SE9TVF9WSVNJQkxFX0JJVCk7CiAgICAgaWYgKGVyciA8IDApCiAgICAgICAgIHJldHVybiBlcnI7 CiAKLS0gCjIuNTIuMAoKCkZyb20gZDI2MzA1N2QxMDRhYzY2MGY4ZDE2ZTRmMWE2NWM1YmY1ZDQ1 ZmJkYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVGltbyBSb3RoZW5waWVsZXIgPHRp bW9Acm90aGVucGllbGVyLm9yZz4KRGF0ZTogVHVlLCAyNSBOb3YgMjAyNSAxNDoxNDo0NyArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMTAzLzMwNF0gZm9yZ2Vqby93b3JrZmxvd3M6IG1ha2UgdGVzdCBz aGFyZWQvc3RhdGljIG1vZGUgbW9yZQogaHVtYW4gcmVhZGFibGUKCi0tLQogLmZvcmdlam8vd29y a2Zsb3dzL3Rlc3QueW1sIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS8uZm9yZ2Vqby93b3JrZmxvd3MvdGVz dC55bWwgYi8uZm9yZ2Vqby93b3JrZmxvd3MvdGVzdC55bWwKaW5kZXggMWIyYWFhYTNiNC4uNzk5 ZDJjMzU2YSAxMDA2NDQKLS0tIGEvLmZvcmdlam8vd29ya2Zsb3dzL3Rlc3QueW1sCisrKyBiLy5m b3JnZWpvL3dvcmtmbG93cy90ZXN0LnltbApAQCAtMTAsMTQgKzEwLDE0IEBAIGpvYnM6CiAgICAg ICBmYWlsLWZhc3Q6IGZhbHNlCiAgICAgICBtYXRyaXg6CiAgICAgICAgIHJ1bm5lcjogW2xpbnV4 LWFhcmNoNjRdCi0gICAgICAgIHNoYXJlZDogWydmYWxzZSddCisgICAgICAgIHNoYXJlZDogWydz dGF0aWMnXQogICAgICAgICBiaXRzOiBbJzY0J10KICAgICAgICAgaW5jbHVkZToKICAgICAgICAg ICAtIHJ1bm5lcjogbGludXgtYW1kNjQKLSAgICAgICAgICAgIHNoYXJlZDogJ2ZhbHNlJworICAg ICAgICAgICAgc2hhcmVkOiAnc3RhdGljJwogICAgICAgICAgICAgYml0czogJzMyJwogICAgICAg ICAgIC0gcnVubmVyOiBsaW51eC1hbWQ2NAotICAgICAgICAgICAgc2hhcmVkOiAndHJ1ZScKKyAg ICAgICAgICAgIHNoYXJlZDogJ3NoYXJlZCcKICAgICAgICAgICAgIGJpdHM6ICc2NCcKICAgICBy dW5zLW9uOiAke3sgbWF0cml4LnJ1bm5lciB9fQogICAgIHN0ZXBzOgpAQCAtMjcsNyArMjcsNyBA QCBqb2JzOgogICAgICAgICBydW46IHwKICAgICAgICAgICAuL2NvbmZpZ3VyZSAtLWVuYWJsZS1n cGwgLS1lbmFibGUtbm9uZnJlZSAtLWVuYWJsZS1tZW1vcnktcG9pc29uaW5nIC0tYXNzZXJ0LWxl dmVsPTIgXAogICAgICAgICAgICAgICAkKFsgIiR7eyBtYXRyaXguYml0cyB9fSIgIT0gIjMyIiBd IHx8IGVjaG8gLS1hcmNoPXg4Nl8zMiAtLWV4dHJhLWNmbGFncz0tbTMyIC0tZXh0cmEtY3h4Zmxh Z3M9LW0zMiAtLWV4dHJhLWxkZmxhZ3M9LW0zMikgXAotICAgICAgICAgICAgICAkKFsgIiR7eyBt YXRyaXguc2hhcmVkIH19IiAhPSAidHJ1ZSIgXSB8fCBlY2hvIC0tZW5hYmxlLXNoYXJlZCAtLWRp c2FibGUtc3RhdGljKSBcCisgICAgICAgICAgICAgICQoWyAiJHt7IG1hdHJpeC5zaGFyZWQgfX0i ICE9ICJzaGFyZWQiIF0gfHwgZWNobyAtLWVuYWJsZS1zaGFyZWQgLS1kaXNhYmxlLXN0YXRpYykg XAogICAgICAgICAgICAgICB8fCBDRkdSRVM9JD8gJiYgQ0ZHUkVTPSQ/CiAgICAgICAgICAgY2F0 IGZmYnVpbGQvY29uZmlnLmxvZwogICAgICAgICAgIGV4aXQgJENGR1JFUwotLSAKMi41Mi4wCgoK RnJvbSA5YzJiN2I5YzQ3NGJmZjAwMWU3N2U2OWIxMDBhZWU3NmUxMWEyNzRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMeW5uZSA8ZGV2QGx5bm5lLmVlPgpEYXRlOiBUaHUsIDI3IE5v diAyMDI1IDAzOjEwOjQyICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMDQvMzA0XSB2dWxrYW5fZHB4 OiBmaXggY29tcGlsYXRpb24gd2l0aCBvbGRlciBoZWFkZXJzCgpGaXhlcyAjMjEwMjgKLS0tCiBs aWJhdmNvZGVjL3Z1bGthbl9kcHguYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnVsa2FuX2RweC5j IGIvbGliYXZjb2RlYy92dWxrYW5fZHB4LmMKaW5kZXggODk3OGI3OGRiNC4uNTQ3NzRmMjQyNCAx MDA2NDQKLS0tIGEvbGliYXZjb2RlYy92dWxrYW5fZHB4LmMKKysrIGIvbGliYXZjb2RlYy92dWxr YW5fZHB4LmMKQEAgLTEzNyw3ICsxMzcsNyBAQCBzdGF0aWMgaW50IGhvc3RfdXBsb2FkX2ltYWdl KEFWQ29kZWNDb250ZXh0ICphdmN0eCwKICAgICB9OwogICAgIFZrQ29weU1lbW9yeVRvSW1hZ2VJ bmZvIGNvcHlfaW5mbyA9IHsKICAgICAgICAgLnNUeXBlID0gVktfU1RSVUNUVVJFX1RZUEVfQ09Q WV9NRU1PUllfVE9fSU1BR0VfSU5GTywKLSAgICAgICAgLmZsYWdzID0gVktfSE9TVF9JTUFHRV9D T1BZX01FTUNQWV9CSVRfRVhULAorICAgICAgICAuZmxhZ3MgPSBWS19IT1NUX0lNQUdFX0NPUFlf TUVNQ1BZX0VYVCwKICAgICAgICAgLmRzdEltYWdlID0gdGVtcCwKICAgICAgICAgLmRzdEltYWdl TGF5b3V0ID0gVktfSU1BR0VfTEFZT1VUX0dFTkVSQUwsCiAgICAgICAgIC5yZWdpb25Db3VudCA9 IDEsCi0tIAoyLjUyLjAKCgpGcm9tIGI4YzZmMzhiY2M1N2FkMTU3ZDRlNjQyOTU1ZTU0NWMzNzhm ZmJmN2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFpoYW8gWmhpbGkgPHpoaWxpemhh b0B0ZW5jZW50LmNvbT4KRGF0ZTogV2VkLCA1IE5vdiAyMDI1IDExOjMwOjM3ICswODAwClN1Ympl Y3Q6IFtQQVRDSCAxMDUvMzA0XSBjb25maWd1cmU6IGNsZWFudXAgcmttcHAgY2hlY2sKClNpZ25l ZC1vZmYtYnk6IFpoYW8gWmhpbGkgPHpoaWxpemhhb0B0ZW5jZW50LmNvbT4KLS0tCiBjb25maWd1 cmUgfCAzICstLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRleCBmZDZmNjAyZTFkLi43 ZGM5OWQ1M2VhIDEwMDc1NQotLS0gYS9jb25maWd1cmUKKysrIGIvY29uZmlndXJlCkBAIC03MzY2 LDggKzczNjYsNyBAQCBlbmFibGVkIG9wZW5zc2wgICAgICAgICAgICYmIHsgeyBjaGVja19wa2df Y29uZmlnIG9wZW5zc2wgIm9wZW5zc2wgPj0gMy4wLjAiIG9wZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNoZWNrX2xpYiBvcGVuc3NsIG9wZW5zc2wvc3NsLmggRFRMU19nZXRfZGF0 YV9tdHUgLWxzc2wgLWxjcnlwdG8gLWx3czJfMzIgLWxnZGkzMiB8fAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRpZSAiRVJST1I6IG9wZW5zc2wgKD49IDEuMS4xKSBub3QgZm91bmQi OyB9CiBlbmFibGVkIHBvY2tldHNwaGlueCAgICAgICYmIHJlcXVpcmVfcGtnX2NvbmZpZyBwb2Nr ZXRzcGhpbnggcG9ja2V0c3BoaW54IHBvY2tldHNwaGlueC9wb2NrZXRzcGhpbnguaCBwc19pbml0 Ci1lbmFibGVkIHJrbXBwICAgICAgICAgICAgICYmIHsgcmVxdWlyZV9wa2dfY29uZmlnIHJrbXBw IHJvY2tjaGlwX21wcCAgcm9ja2NoaXAvcmtfbXBpLmggbXBwX2NyZWF0ZSAmJgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVfcGtnX2NvbmZpZyByb2NrY2hpcF9tcHAgInJv Y2tjaGlwX21wcCA+PSAxLjMuNyIgcm9ja2NoaXAvcmtfbXBpLmggbXBwX2NyZWF0ZSAmJgorZW5h YmxlZCBya21wcCAgICAgICAgICAgICAmJiB7IHJlcXVpcmVfcGtnX2NvbmZpZyBya21wcCAicm9j a2NoaXBfbXBwID49IDEuMy43IiByb2NrY2hpcC9ya19tcGkuaCBtcHBfY3JlYXRlICYmCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBlbmFibGVkIGxpYmRybSB8fAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGllICJFUlJPUjogcmttcHAgcmVxdWlyZXMgLS1lbmFi bGUtbGliZHJtIjsgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tIAoyLjUyLjAK CgpGcm9tIGM3OGQzM2IwZDZlMzFiODhhNWU0ZDJiYzMyOGQ4YTBkYzVlYWY5YjMgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFpoYW8gWmhpbGkgPHpoaWxpemhhb0B0ZW5jZW50LmNvbT4K RGF0ZTogVHVlLCA3IE9jdCAyMDI1IDIyOjE1OjUwICswODAwClN1YmplY3Q6IFtQQVRDSCAxMDYv MzA0XSBhdmNvZGVjL3JrbXBwZW5jOiBhZGQgaDI2NC9oZXZjIHJrbXBwIGVuY29kZXIKCkJ1bXAg cm9ja2NoaXBfbXBwIHRvIDEuMy44LgoKU2lnbmVkLW9mZi1ieTogWmhhbyBaaGlsaSA8emhpbGl6 aGFvQHRlbmNlbnQuY29tPgotLS0KIENoYW5nZWxvZyAgICAgICAgICAgICAgfCAgIDEgKwogY29u ZmlndXJlICAgICAgICAgICAgICB8ICAgNCArLQogbGliYXZjb2RlYy9NYWtlZmlsZSAgICB8ICAg MiArCiBsaWJhdmNvZGVjL2FsbGNvZGVjcy5jIHwgICAyICsKIGxpYmF2Y29kZWMvcmttcHBlbmMu YyAgfCA1ODQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxpYmF2 Y29kZWMvdmVyc2lvbi5oICAgfCAgIDIgKy0KIDYgZmlsZXMgY2hhbmdlZCwgNTkzIGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZjb2RlYy9ya21w cGVuYy5jCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlbG9nIGIvQ2hhbmdlbG9nCmluZGV4IGU0ZjdlMTIz ZDQuLmNkYTU5ZWJjOTAgMTAwNjQ0Ci0tLSBhL0NoYW5nZWxvZworKysgYi9DaGFuZ2Vsb2cKQEAg LTEzLDYgKzEzLDcgQEAgdmVyc2lvbiA8bmV4dD46CiAtIEQzRDEyIEFWMSBlbmNvZGVyCiAtIFBy b1JlcyBWdWxrYW4gaHdhY2NlbAogLSBEUFggVnVsa2FuIGh3YWNjZWwKKy0gUm9ja2NoaXAgSC4y NjQvSEVWQyBoYXJkd2FyZSBlbmNvZGVyCiAKIAogdmVyc2lvbiA4LjA6CmRpZmYgLS1naXQgYS9j b25maWd1cmUgYi9jb25maWd1cmUKaW5kZXggN2RjOTlkNTNlYS4uNzIwMmNiYzU3YSAxMDA3NTUK LS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtMzQ4NCw2ICszNDg0LDcgQEAgaDI2 NF9xc3ZfZGVjb2Rlcl9zZWxlY3Q9ImgyNjRfbXA0dG9hbm5leGJfYnNmIHFzdmRlYyIKIGgyNjRf cXN2X2VuY29kZXJfc2VsZWN0PSJhdHNjX2E1MyBxc3ZlbmMiCiBoMjY0X3JrbXBwX2RlY29kZXJf ZGVwcz0icmttcHAiCiBoMjY0X3JrbXBwX2RlY29kZXJfc2VsZWN0PSJoMjY0X21wNHRvYW5uZXhi X2JzZiIKK2gyNjRfcmttcHBfZW5jb2Rlcl9kZXBzPSJya21wcCIKIGgyNjRfdmFhcGlfZW5jb2Rl cl9zZWxlY3Q9ImF0c2NfYTUzIGNic19oMjY0IHZhYXBpX2VuY29kZSIKIGgyNjRfdnVsa2FuX2Vu Y29kZXJfc2VsZWN0PSJhdHNjX2E1MyBjYnNfaDI2NCB2dWxrYW5fZW5jb2RlIgogaDI2NF92NGwy bTJtX2RlY29kZXJfZGVwcz0idjRsMl9tMm0gaDI2NF92NGwyX20ybSIKQEAgLTM1MDgsNiArMzUw OSw3IEBAIGhldmNfcXN2X2RlY29kZXJfc2VsZWN0PSJoZXZjX21wNHRvYW5uZXhiX2JzZiBxc3Zk ZWMiCiBoZXZjX3Fzdl9lbmNvZGVyX3NlbGVjdD0iaGV2Y3BhcnNlIHFzdmVuYyIKIGhldmNfcmtt cHBfZGVjb2Rlcl9kZXBzPSJya21wcCIKIGhldmNfcmttcHBfZGVjb2Rlcl9zZWxlY3Q9ImhldmNf bXA0dG9hbm5leGJfYnNmIgoraGV2Y19ya21wcF9lbmNvZGVyX2RlcHM9InJrbXBwIgogaGV2Y192 YWFwaV9lbmNvZGVyX2RlcHM9IlZBRW5jUGljdHVyZVBhcmFtZXRlckJ1ZmZlckhFVkMiCiBoZXZj X3ZhYXBpX2VuY29kZXJfc2VsZWN0PSJhdHNjX2E1MyBjYnNfaDI2NSB2YWFwaV9lbmNvZGUiCiBo ZXZjX3Z1bGthbl9lbmNvZGVyX3NlbGVjdD0iYXRzY19hNTMgY2JzX2gyNjUgdnVsa2FuX2VuY29k ZSIKQEAgLTczNjYsNyArNzM2OCw3IEBAIGVuYWJsZWQgb3BlbnNzbCAgICAgICAgICAgJiYgeyB7 IGNoZWNrX3BrZ19jb25maWcgb3BlbnNzbCAib3BlbnNzbCA+PSAzLjAuMCIgb3BlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfbGliIG9wZW5zc2wgb3BlbnNzbC9zc2wuaCBE VExTX2dldF9kYXRhX210dSAtbHNzbCAtbGNyeXB0byAtbHdzMl8zMiAtbGdkaTMyIHx8CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGllICJFUlJPUjogb3BlbnNzbCAoPj0gMS4xLjEp IG5vdCBmb3VuZCI7IH0KIGVuYWJsZWQgcG9ja2V0c3BoaW54ICAgICAgJiYgcmVxdWlyZV9wa2df Y29uZmlnIHBvY2tldHNwaGlueCBwb2NrZXRzcGhpbnggcG9ja2V0c3BoaW54L3BvY2tldHNwaGlu eC5oIHBzX2luaXQKLWVuYWJsZWQgcmttcHAgICAgICAgICAgICAgJiYgeyByZXF1aXJlX3BrZ19j b25maWcgcmttcHAgInJvY2tjaGlwX21wcCA+PSAxLjMuNyIgcm9ja2NoaXAvcmtfbXBpLmggbXBw X2NyZWF0ZSAmJgorZW5hYmxlZCBya21wcCAgICAgICAgICAgICAmJiB7IHJlcXVpcmVfcGtnX2Nv bmZpZyBya21wcCAicm9ja2NoaXBfbXBwID49IDEuMy44IiAicm9ja2NoaXAvcmtfbXBpLmggcm9j a2NoaXAvbXBwX2J1ZmZlci5oIiAibXBwX2NyZWF0ZSBtcHBfYnVmZmVyX3N5bmNfYmVnaW5fZiIg JiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGVuYWJsZWQgbGliZHJtIHx8CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWUgIkVSUk9SOiBya21wcCByZXF1aXJl cyAtLWVuYWJsZS1saWJkcm0iOyB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KZGlm ZiAtLWdpdCBhL2xpYmF2Y29kZWMvTWFrZWZpbGUgYi9saWJhdmNvZGVjL01ha2VmaWxlCmluZGV4 IDQ1YzgyMzcxODEuLjQ5ZDY5NjAxN2QgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvTWFrZWZpbGUK KysrIGIvbGliYXZjb2RlYy9NYWtlZmlsZQpAQCAtNDQ2LDYgKzQ0Niw3IEBAIE9CSlMtJChDT05G SUdfSDI2NF9PTVhfRU5DT0RFUikgICAgICAgICs9IG9teC5vCiBPQkpTLSQoQ09ORklHX0gyNjRf UVNWX0RFQ09ERVIpICAgICAgICArPSBxc3ZkZWMubwogT0JKUy0kKENPTkZJR19IMjY0X1FTVl9F TkNPREVSKSAgICAgICAgKz0gcXN2ZW5jX2gyNjQubwogT0JKUy0kKENPTkZJR19IMjY0X1JLTVBQ X0RFQ09ERVIpICAgICAgKz0gcmttcHBkZWMubworT0JKUy0kKENPTkZJR19IMjY0X1JLTVBQX0VO Q09ERVIpICAgICAgKz0gcmttcHBlbmMubwogT0JKUy0kKENPTkZJR19IMjY0X1ZBQVBJX0VOQ09E RVIpICAgICAgKz0gdmFhcGlfZW5jb2RlX2gyNjQubyBoMjY0X2xldmVscy5vIFwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGgyNjQ1ZGF0YS5vIGh3X2Jhc2VfZW5j b2RlX2gyNjQubwogT0JKUy0kKENPTkZJR19IMjY0X1ZVTEtBTl9FTkNPREVSKSAgICAgKz0gdnVs a2FuX2VuY29kZS5vIHZ1bGthbl9lbmNvZGVfaDI2NC5vIFwKQEAgLTQ3NSw2ICs0NzYsNyBAQCBP QkpTLSQoQ09ORklHX0hFVkNfT0hfRU5DT0RFUikgICAgICAgICArPSBvaGNvZGVjLm8gb2hlbmMu bwogT0JKUy0kKENPTkZJR19IRVZDX1FTVl9ERUNPREVSKSAgICAgICAgKz0gcXN2ZGVjLm8KIE9C SlMtJChDT05GSUdfSEVWQ19RU1ZfRU5DT0RFUikgICAgICAgICs9IHFzdmVuY19oZXZjLm8gaGV2 Yy9wc19lbmMubwogT0JKUy0kKENPTkZJR19IRVZDX1JLTVBQX0RFQ09ERVIpICAgICAgKz0gcmtt cHBkZWMubworT0JKUy0kKENPTkZJR19IRVZDX1JLTVBQX0VOQ09ERVIpICAgICAgKz0gcmttcHBl bmMubwogT0JKUy0kKENPTkZJR19IRVZDX1ZBQVBJX0VOQ09ERVIpICAgICAgKz0gdmFhcGlfZW5j b2RlX2gyNjUubyBoMjY1X3Byb2ZpbGVfbGV2ZWwubyBcCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBoMjY0NWRhdGEubyBod19iYXNlX2VuY29kZV9oMjY1Lm8KIE9C SlMtJChDT05GSUdfSEVWQ19WVUxLQU5fRU5DT0RFUikgICAgICs9IHZ1bGthbl9lbmNvZGUubyB2 dWxrYW5fZW5jb2RlX2gyNjUubyBcCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2FsbGNvZGVjcy5j IGIvbGliYXZjb2RlYy9hbGxjb2RlY3MuYwppbmRleCBjY2UyM2QxNTQxLi5hMzM1ZTJiYjgyIDEw MDY0NAotLS0gYS9saWJhdmNvZGVjL2FsbGNvZGVjcy5jCisrKyBiL2xpYmF2Y29kZWMvYWxsY29k ZWNzLmMKQEAgLTE1NiwxMSArMTU2LDEzIEBAIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2gyNjRf bWVkaWFjb2RlY19lbmNvZGVyOwogZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfaDI2NF9tbWFsX2Rl Y29kZXI7CiBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9oMjY0X3Fzdl9kZWNvZGVyOwogZXh0ZXJu IGNvbnN0IEZGQ29kZWMgZmZfaDI2NF9ya21wcF9kZWNvZGVyOworZXh0ZXJuIGNvbnN0IEZGQ29k ZWMgZmZfaDI2NF9ya21wcF9lbmNvZGVyOwogZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfaGFwX2Vu Y29kZXI7CiBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9oYXBfZGVjb2RlcjsKIGV4dGVybiBjb25z dCBGRkNvZGVjIGZmX2hldmNfZGVjb2RlcjsKIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2hldmNf cXN2X2RlY29kZXI7CiBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9oZXZjX3JrbXBwX2RlY29kZXI7 CitleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9oZXZjX3JrbXBwX2VuY29kZXI7CiBleHRlcm4gY29u c3QgRkZDb2RlYyBmZl9oZXZjX3Y0bDJtMm1fZGVjb2RlcjsKIGV4dGVybiBjb25zdCBGRkNvZGVj IGZmX2hubTRfdmlkZW9fZGVjb2RlcjsKIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2hxX2hxYV9k ZWNvZGVyOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9ya21wcGVuYy5jIGIvbGliYXZjb2RlYy9y a21wcGVuYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjA5NTAxZjBi Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9saWJhdmNvZGVjL3JrbXBwZW5jLmMKQEAgLTAsMCArMSw1 ODQgQEAKKy8qCisgKiBSb2NrQ2hpcCBNUFAgVmlkZW8gRW5jb2RlcgorICoKKyAqIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEZGbXBlZy4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMjUgWmhhbyBaaGls aSA8cXVpbmtibGFja0Bmb3htYWlsLmNvbT4KKyAqCisgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp b24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgorICoKKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu c2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK KyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv c3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnX2NvbXBvbmVu dHMuaCIKKworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKworI2lu Y2x1ZGUgPHJvY2tjaGlwL21wcF9mcmFtZS5oPgorI2luY2x1ZGUgPHJvY2tjaGlwL21wcF9wYWNr ZXQuaD4KKyNpbmNsdWRlIDxyb2NrY2hpcC9ya19tcGkuaD4KKworI2luY2x1ZGUgImxpYmF2dXRp bC9hdmFzc2VydC5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9od2NvbnRleHQuaCIKKyNpbmNsdWRl ICJsaWJhdnV0aWwvaHdjb250ZXh0X2RybS5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9pbWd1dGls cy5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9sb2cuaCIKKyNpbmNsdWRlICJsaWJhdnV0aWwvbWVt LmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL29wdC5oIgorCisjaW5jbHVkZSAiYXZjb2RlYy5oIgor I2luY2x1ZGUgImNvZGVjX2ludGVybmFsLmgiCisjaW5jbHVkZSAiZW5jb2RlLmgiCisjaW5jbHVk ZSAiaHdjb25maWcuaCIKKworI2RlZmluZSBSS01QUF9USU1FX0JBU0UgQVZfVElNRV9CQVNFX1EK KyNkZWZpbmUgUktNUFBfQUxJR05fU0laRSAxNgorCit0eXBlZGVmIHN0cnVjdCBSS01QUEVuY29k ZXJDb250ZXh0IHsKKyAgICBjb25zdCBBVkNsYXNzICphdl9jbGFzczsKKworICAgIE1wcEN0eCBl bmM7CisgICAgTXBwQXBpICptcGk7CisgICAgTXBwRW5jQ2ZnIGNmZzsKKyAgICBBVkZyYW1lICpm cmFtZTsKKworICAgIE1wcEZyYW1lRm9ybWF0IHBpeF9mbXQ7CisgICAgaW50IG1wcF9zdHJpZGU7 CisgICAgaW50IG1wcF9oZWlnaHQ7CisgICAgLy8gV2hlbiBwaXhfZm10IGlzbid0IGhhcmR3YXJl IHBpeGVsIGZvcm1hdAorICAgIE1wcEJ1ZmZlckdyb3VwIGJ1Zl9ncm91cDsKKyAgICBNcHBCdWZm ZXIgZnJhbWVfYnVmOworCisgICAgTXBwRW5jUmNNb2RlIHJjX21vZGU7CisgICAgYm9vbCBlb2Zf c2VudDsKK30gUktNUFBFbmNvZGVyQ29udGV4dDsKKworc3RhdGljIGNvbnN0IGVudW0gQVZQaXhl bEZvcm1hdCBya21wcF9waXhfZm10c1tdID0geworICAgIEFWX1BJWF9GTVRfRFJNX1BSSU1FLAor ICAgIEFWX1BJWF9GTVRfTlYxMiwKKyAgICBBVl9QSVhfRk1UX1lVVjQyMFAsCisgICAgQVZfUElY X0ZNVF9OT05FCit9OworCitzdGF0aWMgYXZfY29sZCBpbnQgcmttcHBfY2xvc2VfZW5jb2RlcihB VkNvZGVjQ29udGV4dCAqYXZjdHgpCit7CisgICAgUktNUFBFbmNvZGVyQ29udGV4dCAqY3R4ID0g YXZjdHgtPnByaXZfZGF0YTsKKworICAgIGlmIChjdHgtPmVuYykgeworICAgICAgICBjdHgtPm1w aS0+cmVzZXQoY3R4LT5lbmMpOworICAgICAgICBtcHBfZGVzdHJveShjdHgtPmVuYyk7CisgICAg ICAgIGN0eC0+ZW5jID0gTlVMTDsKKyAgICB9CisKKyAgICBpZiAoY3R4LT5jZmcpIHsKKyAgICAg ICAgbXBwX2VuY19jZmdfZGVpbml0KGN0eC0+Y2ZnKTsKKyAgICAgICAgY3R4LT5jZmcgPSBOVUxM OworICAgIH0KKworICAgIGlmIChjdHgtPmZyYW1lX2J1ZikgeworICAgICAgICBtcHBfYnVmZmVy X3B1dChjdHgtPmZyYW1lX2J1Zik7CisgICAgICAgIGN0eC0+ZnJhbWVfYnVmID0gTlVMTDsKKyAg ICB9CisKKyAgICBpZiAoY3R4LT5idWZfZ3JvdXApIHsKKyAgICAgICAgbXBwX2J1ZmZlcl9ncm91 cF9wdXQoY3R4LT5idWZfZ3JvdXApOworICAgICAgICBjdHgtPmJ1Zl9ncm91cCA9IE5VTEw7Cisg ICAgfQorCisgICAgYXZfZnJhbWVfZnJlZSgmY3R4LT5mcmFtZSk7CisKKyAgICByZXR1cm4gMDsK K30KKworc3RhdGljIGludCBya21wcF9jcmVhdGVfZnJhbWVfYnVmKEFWQ29kZWNDb250ZXh0ICph dmN0eCkKK3sKKyAgICBSS01QUEVuY29kZXJDb250ZXh0ICpjdHggPSBhdmN0eC0+cHJpdl9kYXRh OworCisgICAgY3R4LT5mcmFtZSA9IGF2X2ZyYW1lX2FsbG9jKCk7CisgICAgaWYgKCFjdHgtPmZy YW1lKQorICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOworCisgICAgaWYgKGF2Y3R4LT5w aXhfZm10ID09IEFWX1BJWF9GTVRfRFJNX1BSSU1FKQorICAgICAgICByZXR1cm4gMDsKKworICAg IGludCByZXQgPSBtcHBfYnVmZmVyX2dyb3VwX2dldF9pbnRlcm5hbCgmY3R4LT5idWZfZ3JvdXAs CisgICAgICAgICAgICAgICAgTVBQX0JVRkZFUl9UWVBFX0RSTSB8IE1QUF9CVUZGRVJfRkxBR1Nf Q0FDSEFCTEUpOworICAgIGlmIChyZXQgIT0gTVBQX09LKSB7CisgICAgICAgIGF2X2xvZyhhdmN0 eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIGNyZWF0ZSBidWZmZXIgZ3JvdXAsICVkXG4iLAor ICAgICAgICAgICAgICAgcmV0KTsKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfRVhURVJOQUw7Cisg ICAgfQorCisgICAgaW50IG4gPSBhdl9pbWFnZV9nZXRfYnVmZmVyX3NpemUoYXZjdHgtPnBpeF9m bXQsIGN0eC0+bXBwX3N0cmlkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjdHgtPm1wcF9oZWlnaHQsIDEpOworICAgIGlmIChuIDwgMCkKKyAgICAgICAgcmV0dXJuIHJl dDsKKyAgICByZXQgPSBtcHBfYnVmZmVyX2dldChjdHgtPmJ1Zl9ncm91cCwgJmN0eC0+ZnJhbWVf YnVmLCBuKTsKKyAgICBpZiAocmV0ICE9IE1QUF9PSykgeworICAgICAgICBhdl9sb2coYXZjdHgs IEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byBnZXQgZnJhbWUgYnVmZmVyLCAlZFxuIiwKKyAgICAg ICAgICAgICAgIHJldCk7CisgICAgICAgIHJldHVybiBBVkVSUk9SX0VYVEVSTkFMOworICAgIH0K KworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50IHJrbXBwX2V4cG9ydF9leHRyYWRhdGEo QVZDb2RlY0NvbnRleHQgKmF2Y3R4KQoreworICAgIFJLTVBQRW5jb2RlckNvbnRleHQgKmN0eCA9 IGF2Y3R4LT5wcml2X2RhdGE7CisgICAgTXBwRW5jSGVhZGVyTW9kZSBtb2RlID0gKGF2Y3R4LT5m bGFncyAmIEFWX0NPREVDX0ZMQUdfR0xPQkFMX0hFQURFUikgPworICAgICAgICAgICAgTVBQX0VO Q19IRUFERVJfTU9ERV9ERUZBVUxUIDogTVBQX0VOQ19IRUFERVJfTU9ERV9FQUNIX0lEUjsKKwor ICAgIGludCByZXQgPSBjdHgtPm1waS0+Y29udHJvbChjdHgtPmVuYywgTVBQX0VOQ19TRVRfSEVB REVSX01PREUsICZtb2RlKTsKKyAgICBpZiAocmV0ICE9IE1QUF9PSykgeworICAgICAgICBhdl9s b2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byBzZXQgaGVhZGVyIG1vZGU6ICVkXG4i LCByZXQpOworICAgICAgICByZXR1cm4gQVZFUlJPUl9FWFRFUk5BTDsKKyAgICB9CisKKyAgICBp ZiAoIShhdmN0eC0+ZmxhZ3MgJiBBVl9DT0RFQ19GTEFHX0dMT0JBTF9IRUFERVIpKQorICAgICAg ICByZXR1cm4gMDsKKworICAgIHNpemVfdCBzaXplID0gNDA5NjsKKyAgICBhdmN0eC0+ZXh0cmFk YXRhID0gYXZfbWFsbG9jeihzaXplICsgQVZfSU5QVVRfQlVGRkVSX1BBRERJTkdfU0laRSk7Cisg ICAgaWYgKCFhdmN0eC0+ZXh0cmFkYXRhKQorICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0p OworCisgICAgTXBwUGFja2V0IHBhY2tldCA9IE5VTEw7CisgICAgbXBwX3BhY2tldF9pbml0KCZw YWNrZXQsIGF2Y3R4LT5leHRyYWRhdGEsIHNpemUpOworICAgIG1wcF9wYWNrZXRfc2V0X2xlbmd0 aChwYWNrZXQsIDApOworICAgIHJldCA9IGN0eC0+bXBpLT5jb250cm9sKGN0eC0+ZW5jLCBNUFBf RU5DX0dFVF9IRFJfU1lOQywgcGFja2V0KTsKKyAgICBpZiAocmV0ICE9IE1QUF9PSykgeworICAg ICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byBnZXQgaGVhZGVyOiAl ZFxuIiwgcmV0KTsKKyAgICAgICAgcmV0ID0gQVZFUlJPUl9FWFRFUk5BTDsKKyAgICAgICAgZ290 byBvdXQ7CisgICAgfQorCisgICAgYXZjdHgtPmV4dHJhZGF0YV9zaXplID0gbXBwX3BhY2tldF9n ZXRfbGVuZ3RoKHBhY2tldCk7CisgICAgaWYgKGF2Y3R4LT5leHRyYWRhdGFfc2l6ZSA9PSAwIHx8 IGF2Y3R4LT5leHRyYWRhdGFfc2l6ZSA+IHNpemUpIHsKKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBB Vl9MT0dfRVJST1IsICJJbnZhbGlkIGV4dHJhZGF0YSBzaXplICVkXG4iLAorICAgICAgICAgICAg ICAgYXZjdHgtPmV4dHJhZGF0YV9zaXplKTsKKyAgICAgICAgcmV0ID0gQVZFUlJPUl9FWFRFUk5B TDsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgcmV0ID0gMDsKK291dDoKKyAgICBt cHBfcGFja2V0X2RlaW5pdCgmcGFja2V0KTsKKworICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRp YyBhdl9jb2xkIGludCBya21wcF9pbml0X2VuY29kZXIoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQor eworICAgIFJLTVBQRW5jb2RlckNvbnRleHQgKmN0eCA9IGF2Y3R4LT5wcml2X2RhdGE7CisgICAg aW50IHJldDsKKworICAgIE1wcENvZGluZ1R5cGUgY29kZWN0eXBlOworICAgIHN3aXRjaCAoYXZj dHgtPmNvZGVjX2lkKSB7CisgICAgY2FzZSBBVl9DT0RFQ19JRF9IMjY0OgorICAgICAgICBjb2Rl Y3R5cGUgPSBNUFBfVklERU9fQ29kaW5nQVZDOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFW X0NPREVDX0lEX0hFVkM6CisgICAgICAgIGNvZGVjdHlwZSA9IE1QUF9WSURFT19Db2RpbmdIRVZD OworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBhdl91bnJlYWNoYWJsZSgi SW52YWxpZCBjb2RlY19pZCIpOworICAgIH0KKworICAgIHJldCA9IG1wcF9jaGVja19zdXBwb3J0 X2Zvcm1hdChNUFBfQ1RYX0VOQywgY29kZWN0eXBlKTsKKyAgICBpZiAocmV0ICE9IE1QUF9PSykg eworICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIlRoZSBkZXZpY2UgZG9lc24n dCBzdXBwb3J0ICVzXG4iLAorICAgICAgICAgICAgICAgIGF2Y29kZWNfZ2V0X25hbWUoYXZjdHgt PmNvZGVjX2lkKSk7CisgICAgICAgIHJldHVybiBBVkVSUk9SX0VYVEVSTkFMOworICAgIH0KKwor ICAgIHJldCA9IG1wcF9jcmVhdGUoJmN0eC0+ZW5jLCAmY3R4LT5tcGkpOworICAgIGlmIChyZXQg IT0gTVBQX09LKSB7CisgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVk IHRvIGNyZWF0ZSBNUFAgY29udGV4dCAoJWQpLlxuIiwgcmV0KTsKKyAgICAgICAgcmV0dXJuIEFW RVJST1JfRVhURVJOQUw7CisgICAgfQorCisgICAgcmV0ID0gbXBwX2luaXQoY3R4LT5lbmMsIE1Q UF9DVFhfRU5DLCBjb2RlY3R5cGUpOworICAgIGlmIChyZXQgIT0gTVBQX09LKSB7CisgICAgICAg IGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIGluaXRpYWxpemUgTVBQIGNv bnRleHQgKCVkKS5cbiIsIHJldCk7CisgICAgICAgIHJldHVybiBBVkVSUk9SX0VYVEVSTkFMOwor ICAgIH0KKworICAgIHJldCA9IG1wcF9lbmNfY2ZnX2luaXQoJmN0eC0+Y2ZnKTsKKyAgICBpZiAo cmV0ICE9IE1QUF9PSykgeworICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkZh aWxlZCB0byBpbml0aWFsaXplIGNvbmZpZyAoJWQpLlxuIiwgcmV0KTsKKyAgICAgICAgcmV0dXJu IEFWRVJST1JfRVhURVJOQUw7CisgICAgfQorCisgICAgTXBwRW5jQ2ZnIGNmZyA9IGN0eC0+Y2Zn OworICAgIHJldCA9IGN0eC0+bXBpLT5jb250cm9sKGN0eC0+ZW5jLCBNUFBfRU5DX0dFVF9DRkcs IGNmZyk7CisgICAgaWYgKHJldCAhPSBNUFBfT0spIHsKKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBB Vl9MT0dfRVJST1IsICJGYWlsZWQgdG8gZ2V0IGVuY29kZXIgY29uZmlnOiAlZFxuIiwgcmV0KTsK KyAgICAgICAgcmV0dXJuIEFWRVJST1JfRVhURVJOQUw7CisgICAgfQorCisgICAgbXBwX2VuY19j Zmdfc2V0X3MzMihjZmcsICJwcmVwOndpZHRoIiwgYXZjdHgtPndpZHRoKTsKKyAgICBtcHBfZW5j X2NmZ19zZXRfczMyKGNmZywgInByZXA6aGVpZ2h0IiwgYXZjdHgtPmhlaWdodCk7CisgICAgY3R4 LT5tcHBfc3RyaWRlID0gRkZBTElHTihhdmN0eC0+d2lkdGgsIFJLTVBQX0FMSUdOX1NJWkUpOwor ICAgIGN0eC0+bXBwX2hlaWdodCA9IEZGQUxJR04oYXZjdHgtPmhlaWdodCwgUktNUFBfQUxJR05f U0laRSk7CisgICAgbXBwX2VuY19jZmdfc2V0X3MzMihjZmcsICJwcmVwOmhvcl9zdHJpZGUiLCBj dHgtPm1wcF9zdHJpZGUpOworICAgIG1wcF9lbmNfY2ZnX3NldF9zMzIoY2ZnLCAicHJlcDp2ZXJf c3RyaWRlIiwgY3R4LT5tcHBfaGVpZ2h0KTsKKworICAgIGlmIChhdmN0eC0+cGl4X2ZtdCA9PSBB Vl9QSVhfRk1UX0RSTV9QUklNRSB8fCBhdmN0eC0+cGl4X2ZtdCA9PSBBVl9QSVhfRk1UX05WMTIp CisgICAgICAgIGN0eC0+cGl4X2ZtdCA9IE1QUF9GTVRfWVVWNDIwU1A7CisgICAgZWxzZSBpZiAo YXZjdHgtPnBpeF9mbXQgPT0gQVZfUElYX0ZNVF9ZVVY0MjBQKQorICAgICAgICBjdHgtPnBpeF9m bXQgPSBNUFBfRk1UX1lVVjQyMFA7CisgICAgZWxzZSAvLyBDYW4gb25seSBoYXBwZW4gZHVyaW5n IGRldmVsb3BtZW50CisgICAgICAgIHJldHVybiBBVkVSUk9SX0JVRzsKKyAgICBtcHBfZW5jX2Nm Z19zZXRfczMyKGNmZywgInByZXA6Zm9ybWF0IiwgY3R4LT5waXhfZm10KTsKKworICAgIGlmIChh dmN0eC0+Y29sb3JzcGFjZSAhPSBBVkNPTF9TUENfVU5TUEVDSUZJRUQpCisgICAgICAgIG1wcF9l bmNfY2ZnX3NldF9zMzIoY2ZnLCAicHJlcDpjb2xvcnNwYWNlIiwgYXZjdHgtPmNvbG9yc3BhY2Up OworICAgIGlmIChhdmN0eC0+Y29sb3JfcHJpbWFyaWVzICE9IEFWQ09MX1BSSV9VTlNQRUNJRklF RCkKKyAgICAgICAgbXBwX2VuY19jZmdfc2V0X3MzMihjZmcsICJwcmVwOmNvbG9ycHJpbSIsIGF2 Y3R4LT5jb2xvcl9wcmltYXJpZXMpOworICAgIGlmIChhdmN0eC0+Y29sb3JfdHJjICE9IEFWQ09M X1RSQ19VTlNQRUNJRklFRCkKKyAgICAgICAgbXBwX2VuY19jZmdfc2V0X3MzMihjZmcsICJwcmVw OmNvbG9ydHJjIiwgYXZjdHgtPmNvbG9yX3RyYyk7CisgICAgc3RhdGljX2Fzc2VydCgoaW50KUFW Q09MX1JBTkdFX01QRUcgPT0gKGludClNUFBfRlJBTUVfUkFOR0VfTVBFRyAmJgorICAgICAgICAg IChpbnQpQVZDT0xfUkFOR0VfSlBFRyA9PSAoaW50KU1QUF9GUkFNRV9SQU5HRV9KUEVHICYmCisg ICAgICAgICAgKGludClBVkNPTF9SQU5HRV9VTlNQRUNJRklFRCA9PSAoaW50KSBNUFBfRlJBTUVf UkFOR0VfVU5TUEVDSUZJRUQsCisgICAgICAgICAgIk1wcEZyYW1lQ29sb3JSYW5nZSBub3QgZXF1 YWwgdG8gQVZDb2xvclJhbmdlIik7CisgICAgbXBwX2VuY19jZmdfc2V0X3MzMihjZmcsICJwcmVw OmNvbG9ycmFuZ2UiLCBhdmN0eC0+Y29sb3JfcmFuZ2UpOworCisgICAgLyogVGhlc2UgdHdvIG9w dGlvbnMgc291bmQgbGlrZSB2YXJpYWJsZSBmcmFtZSByYXRlIGZyb20gdGhlIGRvYywgYnV0IHRo ZXkKKyAgICAgKiBhcmUgbm90LiBXaGVuIHRoZXkgYXJlIGZhbHNlLCBiaXRyYXRlIGNvbnRyb2wg aXMgYmFzZWQgb24gZnJhbWUgbnVtYmVycworICAgICAqIGFuZCBmcmFtZXJhdGUuIEJ1dCB3aGVu IHRoZXkgYXJlIHRydWUsIGJpdHJhdGUgY29udHJvbCBpcyBiYXNlZCBvbiB3YWxsCisgICAgICog Y2xvY2sgdGltZSwgbm90IGJhc2VkIG9uIGZyYW1lIHRpbWVzdGFtcHMsIHdoaWNoIG1ha2VzIHRo ZXNlIG9wdGlvbnMKKyAgICAgKiBhbG1vc3QgdXNlbGVzcywgZXhjZXB0IGluIGNlcnRhaW4gcmFy ZSByZWFsdGltZSBjYXNlLgorICAgICAqLworICAgIG1wcF9lbmNfY2ZnX3NldF9zMzIoY2ZnLCAi cmM6ZnBzX2luX2ZsZXgiLCAwKTsKKyAgICBtcHBfZW5jX2NmZ19zZXRfczMyKGNmZywgInJjOmZw c19vdXRfZmxleCIsIDApOworICAgIGlmIChhdmN0eC0+ZnJhbWVyYXRlLmRlbiA+IDAgJiYgYXZj dHgtPmZyYW1lcmF0ZS5udW0gPiAwKSB7CisgICAgICAgIG1wcF9lbmNfY2ZnX3NldF9zMzIoY2Zn LCAicmM6ZnBzX2luX251bSIsIGF2Y3R4LT5mcmFtZXJhdGUubnVtKTsKKyAgICAgICAgbXBwX2Vu Y19jZmdfc2V0X3MzMihjZmcsICJyYzpmcHNfaW5fZGVub20iLCBhdmN0eC0+ZnJhbWVyYXRlLmRl bik7CisgICAgICAgIG1wcF9lbmNfY2ZnX3NldF9zMzIoY2ZnLCAicmM6ZnBzX291dF9udW0iLCBh dmN0eC0+ZnJhbWVyYXRlLm51bSk7CisgICAgICAgIG1wcF9lbmNfY2ZnX3NldF9zMzIoY2ZnLCAi cmM6ZnBzX291dF9kZW5vbSIsIGF2Y3R4LT5mcmFtZXJhdGUuZGVuKTsKKyAgICB9CisKKyAgICBp ZiAoYXZjdHgtPmdvcF9zaXplID49IDApCisgICAgICAgIG1wcF9lbmNfY2ZnX3NldF9zMzIoY2Zn LCAicmM6Z29wIiwgYXZjdHgtPmdvcF9zaXplKTsKKworICAgIG1wcF9lbmNfY2ZnX3NldF91MzIo Y2ZnLCAicmM6bW9kZSIsIGN0eC0+cmNfbW9kZSk7CisgICAgaWYgKGF2Y3R4LT5iaXRfcmF0ZSA+ IDApIHsKKyAgICAgICAgbXBwX2VuY19jZmdfc2V0X3MzMihjZmcsICJyYzpicHNfdGFyZ2V0Iiwg YXZjdHgtPmJpdF9yYXRlKTsKKyAgICAgICAgaWYgKGF2Y3R4LT5yY19idWZmZXJfc2l6ZSA+PSBh dmN0eC0+Yml0X3JhdGUpIHsKKyAgICAgICAgICAgIGludCBzZWNvbmRzID0gcm91bmQoKGRvdWJs ZSlhdmN0eC0+cmNfYnVmZmVyX3NpemUgLyBhdmN0eC0+Yml0X3JhdGUpOworICAgICAgICAgICAg Ly8gNjAgaXMgdGhlIHVwcGVyIGJvdW5kIGZyb20gdGhlIGRvYworICAgICAgICAgICAgc2Vjb25k cyA9IEZGTUlOKHNlY29uZHMsIDYwKTsKKyAgICAgICAgICAgIG1wcF9lbmNfY2ZnX3NldF9zMzIo Y2ZnLCAicmM6c3RhdHNfdGltZSIsIHNlY29uZHMpOworICAgICAgICB9CisgICAgfQorICAgIGlm IChhdmN0eC0+cmNfbWF4X3JhdGUgPiAwKQorICAgICAgICBtcHBfZW5jX2NmZ19zZXRfczMyKGNm ZywgInJjOmJwc19tYXgiLCBhdmN0eC0+cmNfbWF4X3JhdGUpOworICAgIGlmIChhdmN0eC0+cmNf bWluX3JhdGUgPiAwKQorICAgICAgICBtcHBfZW5jX2NmZ19zZXRfczMyKGNmZywgInJjOmJwc19t aW4iLCBhdmN0eC0+cmNfbWluX3JhdGUpOworCisgICAgbXBwX2VuY19jZmdfc2V0X3UzMihjZmcs ICJyYzpkcm9wX21vZGUiLCBNUFBfRU5DX1JDX0RST1BfRlJNX0RJU0FCTEVEKTsKKworICAgIHJl dCA9IGN0eC0+bXBpLT5jb250cm9sKGN0eC0+ZW5jLCBNUFBfRU5DX1NFVF9DRkcsIGNmZyk7Cisg ICAgaWYgKHJldCAhPSBNUFBfT0spIHsKKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJS T1IsICJGYWlsZWQgdG8gc2V0IGNvbmZpZzogJWRcbiIsIHJldCk7CisgICAgICAgIHJldHVybiBB VkVSUk9SX0VYVEVSTkFMOworICAgIH0KKworICAgIHJldCA9IHJrbXBwX2NyZWF0ZV9mcmFtZV9i dWYoYXZjdHgpOworICAgIGlmIChyZXQgPCAwKQorICAgICAgICByZXR1cm4gcmV0OworCisgICAg cmV0ID0gcmttcHBfZXhwb3J0X2V4dHJhZGF0YShhdmN0eCk7CisgICAgaWYgKHJldCA8IDApCisg ICAgICAgIHJldHVybiByZXQ7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBya21w cF9vdXRwdXRfcGt0KEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZQYWNrZXQgKnBrdCwgTXBwUGFj a2V0IHBhY2tldCkKK3sKKyAgICBpZiAobXBwX3BhY2tldF9nZXRfZW9zKHBhY2tldCkpIHsKKyAg ICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfSU5GTywgIlJlY2VpdmUgZW9zIHBhY2tldFxuIik7 CisgICAgICAgIHJldHVybiBBVkVSUk9SX0VPRjsKKyAgICB9CisKKyAgICBzaXplX3Qgc2l6ZSA9 IG1wcF9wYWNrZXRfZ2V0X2xlbmd0aChwYWNrZXQpOworICAgIHZvaWQgKmRhdGEgPSBtcHBfcGFj a2V0X2dldF9wb3MocGFja2V0KTsKKworICAgIGlmICghc2l6ZSB8fCAhZGF0YSkgeworICAgICAg ICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkVuY29kZXIgcmV0dXJuIGVtcHR5IHBhY2tl dFxuIik7CisgICAgICAgIHJldHVybiBBVkVSUk9SX0VYVEVSTkFMOworICAgIH0KKworICAgIGlu dCByZXQgPSBmZl9nZXRfZW5jb2RlX2J1ZmZlcihhdmN0eCwgcGt0LCBzaXplLCAwKTsKKyAgICBp ZiAocmV0IDwgMCkKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICBtZW1jcHkocGt0LT5kYXRhLCBk YXRhLCBzaXplKTsKKworICAgIGludDY0X3QgcHRzID0gbXBwX3BhY2tldF9nZXRfcHRzKHBhY2tl dCk7CisgICAgaW50NjRfdCBkdHMgPSBtcHBfcGFja2V0X2dldF9kdHMocGFja2V0KTsKKworICAg IHBrdC0+cHRzID0gYXZfcmVzY2FsZV9xKHB0cywgUktNUFBfVElNRV9CQVNFLCBhdmN0eC0+dGlt ZV9iYXNlKTsKKyAgICAvKiBkdHMgaXMgYWx3YXlzIHplcm8gY3VycmVudGx5LCBzaW5jZSBya21w cCBjb3B5IGR0cyBmcm9tIE1wcEZyYW1lIHRvCisgICAgICogTXBwUGFja2V0LCBhbmQgd2UgZG9u J3Qgc2V0IGR0cyBmb3IgTXBwRnJhbWUgKGl0IG1ha2Ugbm8gc2Vuc2UgZm9yCisgICAgICogZW5j b2RlcikuIHJrbXBwIGVuY29kZXIgZG9lc24ndCBzdXBwb3J0IHJlb3JkZXJpbmcsIHNvIHdlIGNh biBqdXN0CisgICAgICogc2V0IGR0cyBhcyBwdHMuCisgICAgICoKKyAgICAgKiBUT0RPOiByZW1v dmUgdGhpcyB3b3JrYXJvdW5kIG9uY2UgcmttcHAgZml4ZWQgdGhlIGlzc3VlLgorICAgICAqLwor ICAgIGlmIChkdHMpCisgICAgICAgIHBrdC0+ZHRzID0gYXZfcmVzY2FsZV9xKGR0cywgUktNUFBf VElNRV9CQVNFLCBhdmN0eC0+dGltZV9iYXNlKTsKKyAgICBlbHNlCisgICAgICAgIHBrdC0+ZHRz ID0gcGt0LT5wdHM7CisKKyAgICBNcHBNZXRhIG1ldGEgPSBtcHBfcGFja2V0X2dldF9tZXRhKHBh Y2tldCk7CisgICAgaWYgKCFtZXRhKSB7CisgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VS Uk9SLCAiRmFpbGVkIHRvIGdldCBtZXRhIGZyb20gbXBwIHBhY2tldFxuIik7CisgICAgICAgIHJl dHVybiBBVkVSUk9SX0VYVEVSTkFMOworICAgIH0KKworICAgIGludCBrZXlfZnJhbWUgPSAwOwor ICAgIHJldCA9IG1wcF9tZXRhX2dldF9zMzIobWV0YSwgS0VZX09VVFBVVF9JTlRSQSwgJmtleV9m cmFtZSk7CisgICAgaWYgKHJldCAhPSBNUFBfT0spIHsKKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBB Vl9MT0dfRVJST1IsICJGYWlsZWQgdG8gZ2V0IGtleSBmcmFtZSBpbmZvXG4iKTsKKyAgICAgICAg cmV0dXJuIEFWRVJST1JfRVhURVJOQUw7CisgICAgfQorCisgICAgaWYgKGtleV9mcmFtZSkKKyAg ICAgICAgcGt0LT5mbGFncyB8PSBBVl9QS1RfRkxBR19LRVk7CisKKyAgICByZXR1cm4gMDsKK30K Kworc3RhdGljIGludCBya21wcF9zZXRfaHdfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBN cHBGcmFtZSBmcmFtZSkKK3sKKyAgICBSS01QUEVuY29kZXJDb250ZXh0ICpjdHggPSBhdmN0eC0+ cHJpdl9kYXRhOworICAgIEFWQnVmZmVyUmVmICpod19yZWYgPSBjdHgtPmZyYW1lLT5od19mcmFt ZXNfY3R4OworICAgIGludCByZXQ7CisKKyAgICBpZiAoIWh3X3JlZikKKyAgICAgICAgcmV0dXJu IEFWRVJST1IoRUlOVkFMKTsKKworICAgIEFWSFdGcmFtZXNDb250ZXh0ICpod2ZyYW1lcyA9IChB VkhXRnJhbWVzQ29udGV4dCAqKWh3X3JlZi0+ZGF0YTsKKyAgICBpZiAoaHdmcmFtZXMtPnN3X2Zv cm1hdCAhPSBBVl9QSVhfRk1UX05WMTIpCisgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7 CisKKworICAgIGNvbnN0IEFWRFJNRnJhbWVEZXNjcmlwdG9yICpkZXNjID0gKEFWRFJNRnJhbWVE ZXNjcmlwdG9yICopY3R4LT5mcmFtZS0+ZGF0YVswXTsKKyAgICBjb25zdCBBVkRSTUxheWVyRGVz Y3JpcHRvciAqbGF5ZXIgPSAmZGVzYy0+bGF5ZXJzWzBdOworCisgICAgaW50IHN0cmlkZSA9IGxh eWVyLT5wbGFuZXNbMF0ucGl0Y2g7CisgICAgaW50IHZlcnRpY2FsID0gbGF5ZXItPnBsYW5lc1sx XS5vZmZzZXQgLyBzdHJpZGU7CisgICAgaWYgKHN0cmlkZSAhPSBjdHgtPm1wcF9zdHJpZGUgfHwg dmVydGljYWwgIT0gY3R4LT5tcHBfaGVpZ2h0KSB7CisgICAgICAgIC8vIFVwZGF0ZSBzdHJpZGUg aW5mbworICAgICAgICBjdHgtPm1wcF9zdHJpZGUgPSBzdHJpZGU7CisgICAgICAgIGN0eC0+bXBw X2hlaWdodCA9IHZlcnRpY2FsOworICAgICAgICBtcHBfZW5jX2NmZ19zZXRfczMyKGN0eC0+Y2Zn LCAicHJlcDpob3Jfc3RyaWRlIiwgY3R4LT5tcHBfc3RyaWRlKTsKKyAgICAgICAgbXBwX2VuY19j Zmdfc2V0X3MzMihjdHgtPmNmZywgInByZXA6dmVyX3N0cmlkZSIsIGN0eC0+bXBwX2hlaWdodCk7 CisgICAgICAgIHJldCA9IGN0eC0+bXBpLT5jb250cm9sKGN0eC0+ZW5jLCBNUFBfRU5DX1NFVF9D RkcsIGN0eC0+Y2ZnKTsKKyAgICAgICAgaWYgKHJldCAhPSBNUFBfT0spIHsKKyAgICAgICAgICAg IGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIHNldCBjb25maWc6ICVkXG4i LCByZXQpOworICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfRVhURVJOQUw7CisgICAgICAgIH0K KyAgICB9CisgICAgbXBwX2ZyYW1lX3NldF9ob3Jfc3RyaWRlKGZyYW1lLCBzdHJpZGUpOworICAg IG1wcF9mcmFtZV9zZXRfdmVyX3N0cmlkZShmcmFtZSwgdmVydGljYWwpOworCisgICAgTXBwQnVm ZmVyIGJ1ZmZlciA9IHswfTsKKyAgICBNcHBCdWZmZXJJbmZvIGluZm8gPSB7CisgICAgICAgIC50 eXBlID0gTVBQX0JVRkZFUl9UWVBFX0RSTSwKKyAgICAgICAgLnNpemUgPSBkZXNjLT5vYmplY3Rz WzBdLnNpemUsCisgICAgICAgIC5mZCA9IGRlc2MtPm9iamVjdHNbMF0uZmQsCisgICAgfTsKKyAg ICByZXQgPSBtcHBfYnVmZmVyX2ltcG9ydCgmYnVmZmVyLCAmaW5mbyk7CisgICAgaWYgKHJldCAh PSBNUFBfT0spCisgICAgICAgIHJldHVybiBBVkVSUk9SX0VYVEVSTkFMOworCisgICAgbXBwX2Zy YW1lX3NldF9idWZmZXIoZnJhbWUsIGJ1ZmZlcik7CisgICAgbXBwX2J1ZmZlcl9wdXQoYnVmZmVy KTsKKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50IHJrbXBwX3NldF9zd19mcmFtZShB VkNvZGVjQ29udGV4dCAqYXZjdHgsIE1wcEZyYW1lIGZyYW1lKQoreworICAgIFJLTVBQRW5jb2Rl ckNvbnRleHQgKmN0eCA9IGF2Y3R4LT5wcml2X2RhdGE7CisgICAgQVZGcmFtZSAqZiA9IGN0eC0+ ZnJhbWU7CisKKyAgICBtcHBfYnVmZmVyX3N5bmNfYmVnaW4oY3R4LT5mcmFtZV9idWYpOworICAg IHZvaWQgKmJ1ZiA9IG1wcF9idWZmZXJfZ2V0X3B0cihjdHgtPmZyYW1lX2J1Zik7CisKKyAgICB1 aW50OF90ICpkc3RbNF0gPSB7TlVMTH07CisgICAgaW50IGRzdF9saW5lc2l6ZXNbNF0gPSB7MH07 CisgICAgaW50IHJldCA9IGF2X2ltYWdlX2ZpbGxfbGluZXNpemVzKGRzdF9saW5lc2l6ZXMsIGYt PmZvcm1hdCwgY3R4LT5tcHBfc3RyaWRlKTsKKyAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgZ290 byBvdXQ7CisgICAgcmV0ID0gYXZfaW1hZ2VfZmlsbF9wb2ludGVycyhkc3QsIGYtPmZvcm1hdCwg Y3R4LT5tcHBfaGVpZ2h0LCBidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk c3RfbGluZXNpemVzKTsKKyAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgZ290byBvdXQ7CisKKyAg ICBhdl9pbWFnZV9jb3B5Mihkc3QsIGRzdF9saW5lc2l6ZXMsIGYtPmRhdGEsIGYtPmxpbmVzaXpl LAorICAgICAgICAgICAgICAgICAgIGYtPmZvcm1hdCwgZi0+d2lkdGgsIGYtPmhlaWdodCk7Cisg ICAgbXBwX2ZyYW1lX3NldF9ob3Jfc3RyaWRlKGZyYW1lLCBjdHgtPm1wcF9zdHJpZGUpOworICAg IG1wcF9mcmFtZV9zZXRfdmVyX3N0cmlkZShmcmFtZSwgY3R4LT5tcHBfaGVpZ2h0KTsKKworICAg IHJldCA9IDA7CisKK291dDoKKyAgICBtcHBfYnVmZmVyX3N5bmNfZW5kKGN0eC0+ZnJhbWVfYnVm KTsKKyAgICBpZiAoIXJldCkKKyAgICAgICAgbXBwX2ZyYW1lX3NldF9idWZmZXIoZnJhbWUsIGN0 eC0+ZnJhbWVfYnVmKTsKKworICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgcmttcHBf c2VuZF9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgpCit7CisgICAgUktNUFBFbmNvZGVyQ29u dGV4dCAqY3R4ID0gYXZjdHgtPnByaXZfZGF0YTsKKyAgICBNcHBGcmFtZSBmcmFtZSA9IE5VTEw7 CisgICAgaW50IHJldCA9IDA7CisKKyAgICByZXQgPSBtcHBfZnJhbWVfaW5pdCgmZnJhbWUpOwor ICAgIGlmIChyZXQgIT0gTVBQX09LKSB7CisgICAgICAgIHJldCA9IEFWRVJST1JfRVhURVJOQUw7 CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIGlmIChjdHgtPmZyYW1lLT5idWZbMF0p IHsKKyAgICAgICAgaWYgKGN0eC0+ZnJhbWUtPmZvcm1hdCA9PSBBVl9QSVhfRk1UX0RSTV9QUklN RSkKKyAgICAgICAgICAgIHJldCA9IHJrbXBwX3NldF9od19mcmFtZShhdmN0eCwgZnJhbWUpOwor ICAgICAgICBlbHNlCisgICAgICAgICAgICByZXQgPSBya21wcF9zZXRfc3dfZnJhbWUoYXZjdHgs IGZyYW1lKTsKKworICAgICAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgICAgIGdvdG8gb3V0Owor CisgICAgICAgIG1wcF9mcmFtZV9zZXRfZm10KGZyYW1lLCBjdHgtPnBpeF9mbXQpOworICAgICAg ICBtcHBfZnJhbWVfc2V0X3dpZHRoKGZyYW1lLCBjdHgtPmZyYW1lLT53aWR0aCk7CisgICAgICAg IG1wcF9mcmFtZV9zZXRfaGVpZ2h0KGZyYW1lLCBjdHgtPmZyYW1lLT5oZWlnaHQpOworICAgICAg ICBtcHBfZnJhbWVfc2V0X3B0cyhmcmFtZSwgYXZfcmVzY2FsZV9xKGN0eC0+ZnJhbWUtPnB0cywK KyAgICAgICAgICAgICAgICAgICAgICAgIGF2Y3R4LT50aW1lX2Jhc2UsIFJLTVBQX1RJTUVfQkFT RSkpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1wcF9mcmFtZV9zZXRfYnVmZmVyKGZyYW1lLCBO VUxMKTsKKyAgICAgICAgbXBwX2ZyYW1lX3NldF9lb3MoZnJhbWUsIDEpOworICAgIH0KKworICAg IHJldCA9IGN0eC0+bXBpLT5lbmNvZGVfcHV0X2ZyYW1lKGN0eC0+ZW5jLCBmcmFtZSk7CisgICAg aWYgKHJldCAhPSBNUFBfT0spCisgICAgICAgIHJldCA9IEFWRVJST1JfRVhURVJOQUw7CisKK291 dDoKKyAgICBpZiAoZnJhbWUpCisgICAgICAgIG1wcF9mcmFtZV9kZWluaXQoJmZyYW1lKTsKKwor ICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgcmttcHBfcmVjZWl2ZShBVkNvZGVjQ29u dGV4dCAqYXZjdHgsIEFWUGFja2V0ICpwa3QpCit7CisgICAgUktNUFBFbmNvZGVyQ29udGV4dCAq Y3R4ID0gYXZjdHgtPnByaXZfZGF0YTsKKworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIE1w cFBhY2tldCBwYWNrZXQgPSBOVUxMOworICAgICAgICBpbnQgcmV0ID0gY3R4LT5tcGktPmVuY29k ZV9nZXRfcGFja2V0KGN0eC0+ZW5jLCAmcGFja2V0KTsKKworICAgICAgICBpZiAocmV0ID09IE1Q UF9PSyAmJiBwYWNrZXQpIHsKKyAgICAgICAgICAgIHJldCA9IHJrbXBwX291dHB1dF9wa3QoYXZj dHgsIHBrdCwgcGFja2V0KTsKKyAgICAgICAgICAgIG1wcF9wYWNrZXRfZGVpbml0KCZwYWNrZXQp OworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjdHgt PmVvZl9zZW50KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKCFjdHgtPmZy YW1lLT5idWZbMF0pIHsKKyAgICAgICAgICAgIHJldCA9IGZmX2VuY29kZV9nZXRfZnJhbWUoYXZj dHgsIGN0eC0+ZnJhbWUpOworICAgICAgICAgICAgaWYgKHJldCA8IDAgJiYgcmV0ICE9IEFWRVJS T1JfRU9GKQorICAgICAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0KKworICAgICAg ICByZXQgPSBya21wcF9zZW5kX2ZyYW1lKGF2Y3R4KTsKKyAgICAgICAgaWYgKHJldCA8IDApCisg ICAgICAgICAgICByZXR1cm4gcmV0OworCisgICAgICAgIGlmICghY3R4LT5mcmFtZS0+YnVmWzBd KQorICAgICAgICAgICAgY3R4LT5lb2Zfc2VudCA9IHRydWU7CisgICAgICAgIGVsc2UKKyAgICAg ICAgICAgIGF2X2ZyYW1lX3VucmVmKGN0eC0+ZnJhbWUpOworICAgIH0KK30KKworc3RhdGljIGF2 X2NvbGQgdm9pZCBya21wcF9mbHVzaChBVkNvZGVjQ29udGV4dCAqYXZjdHgpCit7CisgICAgUktN UFBFbmNvZGVyQ29udGV4dCAqY3R4ID0gYXZjdHgtPnByaXZfZGF0YTsKKyAgICBjdHgtPm1waS0+ cmVzZXQoY3R4LT5lbmMpOworICAgIGN0eC0+ZW9mX3NlbnQgPSB0cnVlOworfQorCitzdGF0aWMg Y29uc3QgQVZDb2RlY0hXQ29uZmlnSW50ZXJuYWwgKmNvbnN0IHJrbXBwX2h3X2NvbmZpZ3NbXSA9 IHsKKyAgICBIV19DT05GSUdfRU5DT0RFUl9GUkFNRVMoRFJNX1BSSU1FLCBEUk0pLAorICAgIE5V TEwKK307CisKKyNkZWZpbmUgT0ZGU0VUKHgpIG9mZnNldG9mKFJLTVBQRW5jb2RlckNvbnRleHQs IHgpCisjZGVmaW5lIFZFIEFWX09QVF9GTEFHX1ZJREVPX1BBUkFNIHwgQVZfT1BUX0ZMQUdfRU5D T0RJTkdfUEFSQU0KK3N0YXRpYyBjb25zdCBBVk9wdGlvbiBya21wcF9vcHRpb25zW10gPSB7Cisg ICAgeyJyYyIsICJyYXRlLWNvbnRyb2wgbW9kZSIsCisgICAgICAgIE9GRlNFVChyY19tb2RlKSwg QVZfT1BUX1RZUEVfSU5ULCAgeyAuaTY0ID0gTVBQX0VOQ19SQ19NT0RFX1ZCUiB9LCBNUFBfRU5D X1JDX01PREVfVkJSLCBJTlRfTUFYLCBWRSwgLnVuaXQgPSAicmMifSwKKyAgICAgICAgeyJ2YnIi LCAiVmFyaWFibGUgYml0cmF0ZSBtb2RlIiwKKyAgICAgICAgICAgIDAsIEFWX09QVF9UWVBFX0NP TlNULCB7Lmk2NCA9IE1QUF9FTkNfUkNfTU9ERV9WQlJ9LCAwLCAwLCBWRSwgLnVuaXQgPSAicmMi fSwKKyAgICAgICAgeyJjYnIiLCAiQ29uc3RhbnQgYml0cmF0ZSBtb2RlIiwKKyAgICAgICAgICAg IDAsIEFWX09QVF9UWVBFX0NPTlNULCB7Lmk2NCA9IE1QUF9FTkNfUkNfTU9ERV9DQlJ9LCAwLCAw LCBWRSwgLnVuaXQgPSAicmMifSwKKyAgICAgICAgeyJhdmJyIiwgIkFkYXB0aXZlIGJpdCByYXRl IG1vZGUiLAorICAgICAgICAgICAgMCwgQVZfT1BUX1RZUEVfQ09OU1QsIHsuaTY0ID0gTVBQX0VO Q19SQ19NT0RFX0FWQlJ9LCAwLCAwLCBWRSwgLnVuaXQgPSAicmMifSwKKyAgICB7TlVMTH0sCit9 OworCitzdGF0aWMgY29uc3QgQVZDbGFzcyBya21wcF9lbmNfY2xhc3MgPSB7CisgICAgLmNsYXNz X25hbWUgPSAicmttcHBfZW5jIiwKKyAgICAuaXRlbV9uYW1lID0gYXZfZGVmYXVsdF9pdGVtX25h bWUsCisgICAgLnZlcnNpb24gPSBMSUJBVlVUSUxfVkVSU0lPTl9JTlQsCisgICAgLm9wdGlvbiA9 IHJrbXBwX29wdGlvbnMsCit9OworCisjZGVmaW5lIFJLTVBQX0VOQyhOQU1FLCBJRCkgXAorICAg IGNvbnN0IEZGQ29kZWMgZmZfIyNOQU1FIyNfcmttcHBfZW5jb2RlciA9IHsgXAorICAgICAgICAu cC5uYW1lICAgICAgICAgPSAjTkFNRSAiX3JrbXBwIiwgXAorICAgICAgICBDT0RFQ19MT05HX05B TUUoI05BTUUgIiAocmttcHApIiksIFwKKyAgICAgICAgLnAudHlwZSAgICAgICAgID0gQVZNRURJ QV9UWVBFX1ZJREVPLCBcCisgICAgICAgIC5wLmlkICAgICAgICAgICA9IElELCBcCisgICAgICAg IC5wLmNhcGFiaWxpdGllcyA9IEFWX0NPREVDX0NBUF9EUjEgfCBBVl9DT0RFQ19DQVBfREVMQVkg fCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIEFWX0NPREVDX0NBUF9IQVJEV0FSRSB8IEFW X0NPREVDX0NBUF9FTkNPREVSX0ZMVVNILCBcCisgICAgICAgIC5wcml2X2RhdGFfc2l6ZSA9IHNp emVvZihSS01QUEVuY29kZXJDb250ZXh0KSwgXAorICAgICAgICBDT0RFQ19QSVhGTVRTX0FSUkFZ KHJrbXBwX3BpeF9mbXRzKSwgXAorICAgICAgICAuY29sb3JfcmFuZ2VzICAgPSBBVkNPTF9SQU5H RV9NUEVHIHwgQVZDT0xfUkFOR0VfSlBFRywgXAorICAgICAgICAuaW5pdCAgICAgICAgICAgPSBy a21wcF9pbml0X2VuY29kZXIsIFwKKyAgICAgICAgRkZfQ09ERUNfUkVDRUlWRV9QQUNLRVRfQ0Io cmttcHBfcmVjZWl2ZSksIFwKKyAgICAgICAgLmNsb3NlICAgICAgICAgID0gcmttcHBfY2xvc2Vf ZW5jb2RlciwgXAorICAgICAgICAuZmx1c2ggICAgICAgICAgPSBya21wcF9mbHVzaCwgXAorICAg ICAgICAucC5wcml2X2NsYXNzICAgPSAmcmttcHBfZW5jX2NsYXNzLCBcCisgICAgICAgIC5jYXBz X2ludGVybmFsICA9IEZGX0NPREVDX0NBUF9JTklUX0NMRUFOVVAsIFwKKyAgICAgICAgLnAud3Jh cHBlcl9uYW1lID0gInJrbXBwIiwgXAorICAgICAgICAuaHdfY29uZmlncyAgICAgPSBya21wcF9o d19jb25maWdzLCBcCisgICAgfTsKKworI2lmIENPTkZJR19IMjY0X1JLTVBQX0VOQ09ERVIKK1JL TVBQX0VOQyhoMjY0LCBBVl9DT0RFQ19JRF9IMjY0KQorI2VuZGlmCisKKyNpZiBDT05GSUdfSEVW Q19SS01QUF9FTkNPREVSCitSS01QUF9FTkMoaGV2YywgQVZfQ09ERUNfSURfSEVWQykKKyNlbmRp ZgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92ZXJzaW9uLmggYi9saWJhdmNvZGVjL3ZlcnNpb24u aAppbmRleCBkMDk4MGUyOGRlLi5kYTZmM2E4NGFjIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Zl cnNpb24uaAorKysgYi9saWJhdmNvZGVjL3ZlcnNpb24uaApAQCAtMjksNyArMjksNyBAQAogCiAj aW5jbHVkZSAidmVyc2lvbl9tYWpvci5oIgogCi0jZGVmaW5lIExJQkFWQ09ERUNfVkVSU0lPTl9N SU5PUiAgMjAKKyNkZWZpbmUgTElCQVZDT0RFQ19WRVJTSU9OX01JTk9SICAyMQogI2RlZmluZSBM SUJBVkNPREVDX1ZFUlNJT05fTUlDUk8gMTAwCiAKICNkZWZpbmUgTElCQVZDT0RFQ19WRVJTSU9O X0lOVCAgQVZfVkVSU0lPTl9JTlQoTElCQVZDT0RFQ19WRVJTSU9OX01BSk9SLCBcCi0tIAoyLjUy LjAKCgpGcm9tIDYyNjI1NjUwZWU4MDliNzBlYWI5YjlkNzE1MzQyNjM5MGJhNGQ4MDQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVp bmhhcmR0QG91dGxvb2suY29tPgpEYXRlOiBUdWUsIDI1IE5vdiAyMDI1IDIxOjAyOjExICswMTAw ClN1YmplY3Q6IFtQQVRDSCAxMDcvMzA0XSBhdmNvZGVjL3ZwMzogU3luYyBWTENzIG9uY2UgZHVy aW5nIGluaXQsIGZpeCBjcmFzaAoKNmM3YTM0NGI2NWNiNzQ3NmQxNTc1Y2IxNTA0ZTNhNTNiY2Jj ODNlNyBtYWRlIHRoZSBWTENzIHNoYXJlZCBiZXR3ZWVuCnRocmVhZHMgYW5kIGRpZCBzbyBpbiBh IHdheSB0aGF0IHdhcyBkZXNpZ25lZCB0byBzdXBwb3J0IHN0cmVhbQpyZWNvbmZpZ3VyYXRpb25z LCBzbyB0aGF0IHRoZSBzdHJ1Y3R1cmUgY29udGFpbmluZyB0aGUgVkxDcyB3YXMKc3luY2VkIGlu IHVwZGF0ZV90aHJlYWRfY29udGV4dC4gVGhlIGlkZWEgd2FzIHRoYXQgdGhlIGN1cnJlbnRseQph Y3RpdmUgVkxDcyB3b3VsZCBqdXN0IGJlIHBhc3NlZCBhbG9uZyBiZXR3ZWVuIHRocmVhZHMuCgpZ ZXQgdGhpcyB3YXMgYnJva2VuIGJ5IDVhY2JkZDIyNjRkM2I5MGRjMTEzNjlmOWUwMzFlNzYyZjI2 MDg4MmU6CkJlZm9yZSB0aGlzIGNvbW1pdCwgc3VibWl0X3BhY2tldCgpIHdhcyBhIG5vLW9wIGR1 cmluZyBmbHVzaGluZwpmb3IgVlAzLCBhcyBpdCBpcyBhIG5vLWRlbGF5IGRlY29kZXIsIHNvIGl0 IHdvbid0IHByb2R1Y2UgYW55IG91dHB1dApkdXJpbmcgZmx1c2hpbmcuIFRoaXMgbWVhbnQgdGhh dCBwcmV2X3RocmVhZCBpbiBwdGhyZWFkX2ZyYW1lLmMKY29udGFpbmVkIHRoZSBsYXN0IGRzdCB0 aHJlYWQgdGhhdCB1cGRhdGVfdGhyZWFkX2NvbnRleHQoKQp3YXMgY2FsbGVkIGZvciAoc28gdGhh dCB0aGVzZSBWTENzIGNvdWxkIGJlIHBhc3NlZCBhbG9uZyBiZXR3ZWVuCnRocmVhZHMpLiBZZXQg YWZ0ZXIgc2FpZCBjb21taXQsIHN1Ym1pdF9wYWNrZXQgd2FzIG5vIGxvbmdlcgphIG5vLW9wIGR1 cmluZyBmbHVzaGluZyBhbmQgY2hhbmdlZCBwcmV2X3RocmVhZCBpbiBzdWNoIGEgd2F5CnRoYXQg aXQgZGlkIG5vdCBuZWVkIHRvIGNvbnRhaW4gYW55IFZMQ3MgYXQgYWxsKi4gV2hlbiBmbHVzaGlu ZywKcHJldl90aHJlYWQgaXMgdXNlZCB0byBwYXNzIHRoZSBjdXJyZW50IHN0YXRlIHRvIHRoZSBm aXJzdCB3b3JrZXIKdGhyZWFkIHdoaWNoIGlzIHRoZSBvbmUgdGhhdCBpcyB1c2VkIHRvIHJlc3Rh cnQgZGVjb2RpbmcuCkl0IGNvdWxkIHRoZXJlZm9yZSBoYXBwZW4gdGhhdCB0aGUgZGVjb2Rpbmcg dGhyZWFkIGRpZCBub3QgY29udGFpbgp0aGUgVkxDcyBhdCBhbGwgYW55IG1vcmUgYWZ0ZXIgZGVj b2RpbmcgcmVzdGFydHMgYWZ0ZXIgZmx1c2hpbmcKbGVhZGluZyB0byBhIGNyYXNoICh0aGlzIHNj ZW5hcmlvIHdhcyBuZXZlciBhbnRpY2lwYXRlZCBhbmQKbXVzdCBub3QgaGFwcGVuIGF0IGFsbCku CgpUaGVyZSBpcyBhIHNpbXBsZSwgZWFzaWx5IGJhY2twb3J0YWJsZSBmaXggZ2l2ZW4gdGhhdCB3 ZSBkbyBub3QKc3VwcG9ydCBzdHJlYW0gcmVjb25maWd1cmF0aW9ucyAoeWV0KSB3aGVuIHVzaW5n IGZyYW1lIHRocmVhZGluZzoKRG9uJ3Qgc3luYyB0aGUgVkxDcyBpbiB1cGRhdGVfdGhyZWFkX2Nv bnRleHQoKSwgaW5zdGVhZCBkbyBpdCBvbmNlCmR1cmluZyBpbml0LgoKVGhpcyBmaXhlcyBmb3Jn ZWpvIGlzc3VlICMyMDM0NiBhbmQgdHJhYyBpc3N1ZSAjMTE1OTIuCgooSSBkb24ndCBrbm93IHdo eSA1YWNiZGQyMjY0ZDNiOTBkYzExMzY5ZjllMDMxZTc2MmYyNjA4ODJlCmNoYW5nZWQgc3VibWl0 X3BhY2tldCgpIHRvIG5vIGxvbmdlciBiZSBhIG5vLW9wIHdoZW4gZHJhaW5pbmcKbm8tZGVsYXkg ZGVjb2RlcnMuKQoKKjogVGhlIGV4YWN0IGNvbmRpdGlvbiBmb3IgdGhlIGNyYXNoIGlzIG5iX3Ro cmVhZHMgPiAyKm5iX2ZyYW1lcy4KClJldmlld2VkLWJ5OiBQZXRlciBSb3NzIDxwcm9zc0B4dmlk Lm9yZz4KU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFy ZHRAb3V0bG9vay5jb20+Ci0tLQogbGliYXZjb2RlYy92cDMuYyB8IDUgKy0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJh dmNvZGVjL3ZwMy5jIGIvbGliYXZjb2RlYy92cDMuYwppbmRleCAwNjEzMjU0YzE0Li5hYjYwZGVl MDk4IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3ZwMy5jCisrKyBiL2xpYmF2Y29kZWMvdnAzLmMK QEAgLTQ3LDcgKzQ3LDYgQEAKICNpbmNsdWRlICJkZWNvZGUuaCIKICNpbmNsdWRlICJnZXRfYml0 cy5oIgogI2luY2x1ZGUgImhwZWxkc3AuaCIKLSNpbmNsdWRlICJpbnRlcm5hbC5oIgogI2luY2x1 ZGUgImpwZWdxdWFudHRhYmxlcy5oIgogI2luY2x1ZGUgIm1hdGhvcHMuaCIKICNpbmNsdWRlICJw cm9ncmVzc2ZyYW1lLmgiCkBAIC0yNDU5LDcgKzI0NTgsNyBAQCBzdGF0aWMgYXZfY29sZCBpbnQg dnAzX2RlY29kZV9pbml0KEFWQ29kZWNDb250ZXh0ICphdmN0eCkKICAgICAgICAgfQogICAgIH0K IAotICAgIGlmICghYXZjdHgtPmludGVybmFsLT5pc19jb3B5KSB7CisgICAgaWYgKGZmX3RocmVh ZF9zeW5jX3JlZihhdmN0eCwgb2Zmc2V0b2YoVnAzRGVjb2RlQ29udGV4dCwgY29lZmZfdmxjKSkg IT0gRkZfVEhSRUFEX0lTX0NPUFkpIHsKICAgICAgICAgQ29lZmZWTENzICp2bGNzID0gYXZfcmVm c3RydWN0X2FsbG9jX2V4dChzaXplb2YoKnMtPmNvZWZmX3ZsYyksIDAsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZnJlZV92bGNfdGFibGVz KTsKICAgICAgICAgaWYgKCF2bGNzKQpAQCAtMjUyOCw4ICsyNTI3LDYgQEAgc3RhdGljIGludCB2 cDNfdXBkYXRlX3RocmVhZF9jb250ZXh0KEFWQ29kZWNDb250ZXh0ICpkc3QsIGNvbnN0IEFWQ29k ZWNDb250ZXh0ICoKICAgICBjb25zdCBWcDNEZWNvZGVDb250ZXh0ICpzMSA9IHNyYy0+cHJpdl9k YXRhOwogICAgIGludCBxcHNfY2hhbmdlZCA9IDA7CiAKLSAgICBhdl9yZWZzdHJ1Y3RfcmVwbGFj ZSgmcy0+Y29lZmZfdmxjLCBzMS0+Y29lZmZfdmxjKTsKLQogICAgIC8vIGNvcHkgcHJldmlvdXMg ZnJhbWUgZGF0YQogICAgIHJlZl9mcmFtZXMocywgczEpOwogICAgIGlmICghczEtPmN1cnJlbnRf ZnJhbWUuZiB8fAotLSAKMi41Mi4wCgoKRnJvbSAxYTMxYmM3MzA3MjZlNjUzOGIxOGY3NzQyYjQz OTI3YjQ0OWUyZGFiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWlu aGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogVHVlLCAyNSBOb3Yg MjAyNSAyMDoxOTo0MiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTA4LzMwNF0gYXZjb2RlYy92cDM6 IE1vdmUgbGFzdF9xcHMgZnJvbSBjb250ZXh0IHRvIHN0YWNrCgpSZXZpZXdlZC1ieTogUGV0ZXIg Um9zcyA8cHJvc3NAeHZpZC5vcmc+ClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8 YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIGxpYmF2Y29kZWMvdnAzLmMgfCAx MCArKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnAzLmMgYi9saWJhdmNvZGVjL3ZwMy5jCmlu ZGV4IGFiNjBkZWUwOTguLjlhNzY2ZWNiNDEgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdnAzLmMK KysrIGIvbGliYXZjb2RlYy92cDMuYwpAQCAtMjE3LDcgKzIxNyw2IEBAIHR5cGVkZWYgc3RydWN0 IFZwM0RlY29kZUNvbnRleHQgewogCiAgICAgaW50IHFwc1szXTsKICAgICBpbnQgbnFwczsKLSAg ICBpbnQgbGFzdF9xcHNbM107CiAKICAgICBpbnQgc3VwZXJibG9ja19jb3VudDsKICAgICBpbnQg eV9zdXBlcmJsb2NrX3dpZHRoOwpAQCAtMjU1MSw3ICsyNTUwLDYgQEAgc3RhdGljIGludCB2cDNf dXBkYXRlX3RocmVhZF9jb250ZXh0KEFWQ29kZWNDb250ZXh0ICpkc3QsIGNvbnN0IEFWQ29kZWND b250ZXh0ICoKIAogICAgICAgICBpZiAocXBzX2NoYW5nZWQpIHsKICAgICAgICAgICAgIG1lbWNw eShzLT5xcHMsICAgICAgczEtPnFwcywgICAgICBzaXplb2Yocy0+cXBzKSk7Ci0gICAgICAgICAg ICBtZW1jcHkocy0+bGFzdF9xcHMsIHMxLT5sYXN0X3Fwcywgc2l6ZW9mKHMtPmxhc3RfcXBzKSk7 CiAgICAgICAgICAgICBzLT5ucXBzID0gczEtPm5xcHM7CiAgICAgICAgIH0KICAgICB9CkBAIC0y NjE4LDggKzI2MTYsMTAgQEAgc3RhdGljIGludCB2cDNfZGVjb2RlX2ZyYW1lKEFWQ29kZWNDb250 ZXh0ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUsCiAgICAgfQogICAgIGlmICghcy0+dGhlb3JhKQog ICAgICAgICBza2lwX2JpdHMoJmdiLCAxKTsKKworICAgIGludCBsYXN0X3Fwc1szXTsKICAgICBm b3IgKGludCBpID0gMDsgaSA8IDM7IGkrKykKLSAgICAgICAgcy0+bGFzdF9xcHNbaV0gPSBzLT5x cHNbaV07CisgICAgICAgIGxhc3RfcXBzW2ldID0gcy0+cXBzW2ldOwogCiAgICAgcy0+bnFwcyA9 IDA7CiAgICAgZG8gewpAQCAtMjYzNiwxMyArMjYzNiwxMyBAQCBzdGF0aWMgaW50IHZwM19kZWNv ZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpmcmFtZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXZjdHgtPnNraXBfbG9vcF9maWx0ZXIgPj0gKHMtPmtleWZyYW1l ID8gQVZESVNDQVJEX0FMTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBBVkRJU0NBUkRfTk9OS0VZKTsKIAotICAgIGlm IChzLT5xcHNbMF0gIT0gcy0+bGFzdF9xcHNbMF0pCisgICAgaWYgKHMtPnFwc1swXSAhPSBsYXN0 X3Fwc1swXSkKICAgICAgICAgaW5pdF9sb29wX2ZpbHRlcihzKTsKIAogICAgIGZvciAoaW50IGkg PSAwOyBpIDwgcy0+bnFwczsgaSsrKQogICAgICAgICAvLyByZWluaXQgYWxsIGRlcXVhbnRpemVy cyBpZiB0aGUgZmlyc3Qgb25lIGNoYW5nZWQsIGJlY2F1c2UKICAgICAgICAgLy8gdGhlIERDIG9m IHRoZSBmaXJzdCBxdWFudGl6ZXIgbXVzdCBiZSB1c2VkIGZvciBhbGwgbWF0cmljZXMKLSAgICAg ICAgaWYgKHMtPnFwc1tpXSAhPSBzLT5sYXN0X3Fwc1tpXSB8fCBzLT5xcHNbMF0gIT0gcy0+bGFz dF9xcHNbMF0pCisgICAgICAgIGlmIChzLT5xcHNbaV0gIT0gbGFzdF9xcHNbaV0gfHwgcy0+cXBz WzBdICE9IGxhc3RfcXBzWzBdKQogICAgICAgICAgICAgaW5pdF9kZXF1YW50aXplcihzLCBpKTsK IAogICAgIGlmIChhdmN0eC0+c2tpcF9mcmFtZSA+PSBBVkRJU0NBUkRfTk9OS0VZICYmICFzLT5r ZXlmcmFtZSkKLS0gCjIuNTIuMAoKCkZyb20gYzk1MGY3ODJjMDE1NzU3ZGZlNjMxNjY0ZTIzMTgz Nzg2YWVlOTA1NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhh cmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFR1ZSwgMjUgTm92IDIw MjUgMjA6MzE6MjYgKzAxMDAKU3ViamVjdDogW1BBVENIIDEwOS8zMDRdIGF2Y29kZWMvdnAzOiBS ZW1vdmUgYWx3YXlzLWZhbHNlIGNoZWNrcwoKVGhlIGRpbWVuc2lvbnMgYXJlIG9ubHkgc2V0IGF0 IHR3byBwbGFjZXM6IHRoZW9yYV9kZWNvZGVfaGVhZGVyKCkKYW5kIHZwM19kZWNvZGVfaW5pdCgp LiBUaGVzZSBmdW5jdGlvbnMgYXJlIGNhbGxlZCBkdXJpbmcgaW5pdAphbmQgZHVyaW5nIGRpbWVu c2lvbiBjaGFuZ2VzLCBidXQgdGhlIGxhdHRlciBpcyBvbmx5IHN1cHBvcnRlZAooYW5kIGF0dGVt cHRlZCkgd2hlbiBmcmFtZSB0aHJlYWRpbmcgaXMgbm90IGFjdGl2ZS4gVGhpcyBpbXBsaWVzIHRo YXQKdGhlIGRpbWVuc2lvbnMgb2YgdGhlIHZhcmlvdXMgd29ya2VyIHRocmVhZHMgaW4KdnAzX3Vw ZGF0ZV90aHJlYWRfY29udGV4dCgpIGFsd2F5cyBjb2luY2lkZSwgc28gdGhhdCB0aGVzZSBjaGVj a3MKYXJlIGRlYWQgYW5kIGNhbiBiZSByZW1vdmVkLgoKKFRoZXNlIGNoZWNrcyB3b3VsZCBvZiBj b3Vyc2UgbmVlZCB0byBiZSByZW1vdmVkIHdoZW4gc3VwcG9ydApmb3IgZGltZW5zaW9uIGNoYW5n ZXMgZHVyaW5nIGZyYW1lIHRocmVhZGluZyBpcyBpbXBsZW1lbnRlZDsKYW5kIGluIGFueSBjYXNl LCBhIGRpbWVuc2lvbiBjaGFuZ2UgaXMgbm90IGFuIGVycm9yLikKClJldmlld2VkLWJ5OiBQZXRl ciBSb3NzIDxwcm9zc0B4dmlkLm9yZz4KU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0 IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGliYXZjb2RlYy92cDMuYyB8 IDQgKy0tLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAzIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnAzLmMgYi9saWJhdmNvZGVjL3ZwMy5jCmluZGV4IDlh NzY2ZWNiNDEuLjYwOTA4Yzg3N2YgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdnAzLmMKKysrIGIv bGliYXZjb2RlYy92cDMuYwpAQCAtMjUyOCwxMCArMjUyOCw4IEBAIHN0YXRpYyBpbnQgdnAzX3Vw ZGF0ZV90aHJlYWRfY29udGV4dChBVkNvZGVjQ29udGV4dCAqZHN0LCBjb25zdCBBVkNvZGVjQ29u dGV4dCAqCiAKICAgICAvLyBjb3B5IHByZXZpb3VzIGZyYW1lIGRhdGEKICAgICByZWZfZnJhbWVz KHMsIHMxKTsKLSAgICBpZiAoIXMxLT5jdXJyZW50X2ZyYW1lLmYgfHwKLSAgICAgICAgcy0+d2lk dGggIT0gczEtPndpZHRoIHx8IHMtPmhlaWdodCAhPSBzMS0+aGVpZ2h0KSB7CisgICAgaWYgKCFz MS0+Y3VycmVudF9mcmFtZS5mKQogICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQogCiAgICAgaWYg KHMgIT0gczEpIHsKICAgICAgICAgcy0+a2V5ZnJhbWUgPSBzMS0+a2V5ZnJhbWU7Ci0tIAoyLjUy LjAKCgpGcm9tIGFlYTViNWQwZTJjZjkyNWYwMzEwN2JiYmI4YjViMjA0YjNkNGQ4MzUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVp bmhhcmR0QG91dGxvb2suY29tPgpEYXRlOiBXZWQsIDI2IE5vdiAyMDI1IDAxOjE4OjEwICswMTAw ClN1YmplY3Q6IFtQQVRDSCAxMTAvMzA0XSBhdmNvZGVjL3ZwMzogUmVkbyB1cGRhdGluZyBmcmFt ZXMKClZQMydzIGZyYW1lIG1hbmFnbWVudCBpcyBhY3R1YWxseSBzaW1wbGU6IEl0IGhhcyB0aHJl ZSBmcmFtZSBzbG90czoKY3VycmVudCwgbGFzdCBhbmQgZ29sZGVuLiBBZnRlciBoYXZpbmcgZGVj b2RlZCB0aGUgY3VycmVudCBmcmFtZSwKdGhlIG9sZCBsYXN0IGZyYW1lIHdpbGwgYmUgZnJlZWQg YW5kIHJlcGxhY2VkIGJ5IHRoZSBjdXJyZW50IGZyYW1lLgpJZiB0aGUgY3VycmVudCBmcmFtZSBp cyBhIGtleWZyYW1lLCBpdCBhbHNvIHRha2VzIG92ZXIgdGhlIGdvbGRlbiBzbG90LgoKVGhlIFZQ MyBkZWNvZGVyIGhhbmRsZWQgdGhpcyBsaWtlIHRoaXM6IEluIHNpbmdsZS10aHJlYWRlZCBtb2Rl LAp0aGUgYWJvdmUgcHJvY2VkdXJlIHdhcyBjYXJyaWVkIG91dCAob24gc3VjY2VzcykuIERvaW5n IHNvIHdpdGgKZnJhbWUtdGhyZWFkaW5nIGlzIGltcG9zc2libGUsIGFzIGl0IHdvdWxkIGxlYWQg dG8gZGF0YSByYWNlcy4KSW5zdGVhZCB2cDNfdXBkYXRlX3RocmVhZF9jb250ZXh0KCkgY3JlYXRl ZCBuZXcgcmVmZXJlbmNlcwp0byB0aGVzZSBmcmFtZXMgYW5kIHRoZW4gY2FycmllZCBvdXQgc2Fp ZCBwcm9jZWR1cmUuCgpUaGlzIG1lYW5zIHRoYXQgdnAzX3VwZGF0ZV90aHJlYWRfY29udGV4dCgp IGlzIG5vdCBqdXN0IGEgImR1bWIiCmZ1bmN0aW9uIHRoYXQgb25seSBjb3BpZXMgY2VydGFpbiBm aWVsZHMgZnJvbSBzcmMgdG8gZHN0OyBpbnN0ZWFkCml0IGFjdHVhbGx5IHByb2Nlc3NlcyB0aGVt LiBFLmcuIHRyeWluZyB0byBjb3B5IHRoZSBkZWNvZGluZyBzdGF0ZQpmcm9tIEEgdG8gQiBhbmQg dGhlbiBmcm9tIEIgdG8gQyAod2l0aCBubyBkZWNvZGVfZnJhbWUgY2FsbCBpbiBiZXR3ZWVuKQp3 aWxsIG5vdCBiZSBlcXVpdmFsZW50IHRvIGNvcHlpbmcgZnJvbSBBIHRvIEMsIGFzIGJvdGggY3Vy cmVudCBhbmQgbGFzdApmcmFtZXMgd2lsbCBiZSBibGFuayBpbiB0aGUgZmlyc3QgY2FzZS4KClRo aXMgY29tbWl0IGNoYW5nZXMgdGhpczogQmVjYXVzZSBsYXN0X2ZyYW1lIHdvbid0IGJlIG5lZWRl ZCBhZnRlcgpkZWNvZGluZywgbm8gcmVmZXJlbmNlIHRvIGl0IHdpbGwgYmUgY3JlYXRlZCB0byBp dCBpbgp2cDNfdXBkYXRlX3RocmVhZF9jb250ZXh0KCk7IGluc3RlYWQgaXQgaXMgbm93IGFsd2F5 cyB1bnJlZmVyZW5jZWQKYWZ0ZXIgZGVjb2RpbmcgaXQgKGV2ZW4gb24gZXJyb3IpLiBSZXBsYWNp bmcgbGFzdF9mcmFtZSB3aXRoIHRoZSBuZXcKZnJhbWUgaXMgbm93IGFsd2F5cyBwZXJmb3JtZWQg d2hlbiB0aGUgbmV3IGZyYW1lIGlzIGFsbG9jYXRlZC4KUmVwbGFjaW5nIHRoZSBnb2xkZW4gZnJh bWUgaXMgbm93IGRvbmUgZWFybGllciwgbmFtZWx5IGluIGRlY29kZV9mcmFtZSgpCmJlZm9yZSBm Zl90aHJlYWRfZmluaXNoX3NldHVwKCksIHNvIHRoYXQgdXBkYXRlX3RocmVhZF9jb250ZXh0IG9u bHkKaGFzIHRvIHJlZmVyZW5jZSBjdXJyZW50IGZyYW1lIGFuZCBnb2xkZW4gZnJhbWUuIEJlaW5n IGR1bWIgbWVhbnMKdGhhdCB1cGRhdGVfdGhyZWFkX2NvbnRleHQgYWxzbyBubyBsb25nZXIgY2hl Y2tzIHdoZXRoZXIgdGhlIGN1cnJlbnQKZnJhbWUgaXMgdmFsaWQsIHNvIHRoYXQgaXQgY2FuIG5v IGxvbmdlciBlcnJvciBvdXQuCgpUaGlzIHVuaWZpZXMgdGhlIHNpbmdsZS0gYW5kIG11bHRpLXRo cmVhZGVkIGNvZGVwYXRoczsgaXQgY2FuIGxlYWQKdG8gY2hhbmdlcyBpbiBvdXRwdXQgaW4gc2lu Z2xlIHRocmVhZGVkIG1vZGU6IFdoZW4gZXJyb3Jpbmcgb3V0LAp0aGUgY3VycmVudCBmcmFtZSB3 b3VsZCBiZSBkaXNjYXJkZWQgYW5kIG5vdCBiZSBwdXQgaW50byBvbmUKb2YgdGhlIHJlZmVyZW5j ZSBzbG90cyBhdCBhbGwgaW4gc2luZ2xlLXRocmVhZGVkIG1vZGUuIFRoZSBuZXcKY29kZSBtZWFu d2hpbGUgZG9lcyBldmVyeXRoaW5nIGFzIHRoZSBmcmFtZS10aHJlYWRlZCBjb2RlIGFscmVhZHkg ZGlkCmluIG9yZGVyIHRvIHJlZHVjZSBkaXNjcmVwYW5jaWVzIGJldHdlZW4gdGhlIHR3by4gSXQg d291bGQgYmUgcG9zc2libGUKdG8ga2VlcCB0aGUgb2xkIHNpbmdsZS10aHJlYWRlZCBiZWhhdmlv ciAob25lIHdvdWxkIG5lZWQgdG8gcG9zdHBvbmUKcmVwbGFjaW5nIHRoZSBnb2xkZW4gZnJhbWUg dG8gdGhlIGVuZCBvZiB2cDNfZGVjb2RlX2ZyYW1lIGFuZCB3b3VsZApuZWVkIHRvIHN3YXAgdGhl IGN1cnJlbnQgZnJhbWUgYW5kIHRoZSBsYXN0IGZyYW1lIG9uIGVycm9yLAp1bnJlZmVyZW5jaW5n IHRoZSBmb3JtZXIpLgoKUmV2aWV3ZWQtYnk6IFBldGVyIFJvc3MgPHByb3NzQHh2aWQub3JnPgpT aWduZWQtb2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRs b29rLmNvbT4KLS0tCiBsaWJhdmNvZGVjL3ZwMy5jIHwgMzcgKysrKysrKystLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMjkgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92cDMuYyBiL2xpYmF2Y29kZWMvdnAz LmMKaW5kZXggNjA5MDhjODc3Zi4uN2NlNTQ5NjdlMSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy92 cDMuYworKysgYi9saWJhdmNvZGVjL3ZwMy5jCkBAIC0yNDk5LDI1ICsyNDk5LDExIEBAIHN0YXRp YyBhdl9jb2xkIGludCB2cDNfZGVjb2RlX2luaXQoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogICAg IHJldHVybiBhbGxvY2F0ZV90YWJsZXMoYXZjdHgpOwogfQogCi0vLy8gUmVsZWFzZSBhbmQgc2h1 ZmZsZSBmcmFtZXMgYWZ0ZXIgZGVjb2RlIGZpbmlzaGVzCi1zdGF0aWMgdm9pZCB1cGRhdGVfZnJh bWVzKEFWQ29kZWNDb250ZXh0ICphdmN0eCkKLXsKLSAgICBWcDNEZWNvZGVDb250ZXh0ICpzID0g YXZjdHgtPnByaXZfZGF0YTsKLQotICAgIGlmIChzLT5rZXlmcmFtZSkKLSAgICAgICAgZmZfcHJv Z3Jlc3NfZnJhbWVfcmVwbGFjZSgmcy0+Z29sZGVuX2ZyYW1lLCAmcy0+Y3VycmVudF9mcmFtZSk7 Ci0KLSAgICAvKiBzaHVmZmxlIGZyYW1lcyAqLwotICAgIGZmX3Byb2dyZXNzX2ZyYW1lX3VucmVm KCZzLT5sYXN0X2ZyYW1lKTsKLSAgICBGRlNXQVAoUHJvZ3Jlc3NGcmFtZSwgcy0+bGFzdF9mcmFt ZSwgcy0+Y3VycmVudF9mcmFtZSk7Ci19Ci0KICNpZiBIQVZFX1RIUkVBRFMKIHN0YXRpYyB2b2lk IHJlZl9mcmFtZXMoVnAzRGVjb2RlQ29udGV4dCAqZHN0LCBjb25zdCBWcDNEZWNvZGVDb250ZXh0 ICpzcmMpCiB7CiAgICAgZmZfcHJvZ3Jlc3NfZnJhbWVfcmVwbGFjZSgmZHN0LT5jdXJyZW50X2Zy YW1lLCAmc3JjLT5jdXJyZW50X2ZyYW1lKTsKICAgICBmZl9wcm9ncmVzc19mcmFtZV9yZXBsYWNl KCZkc3QtPmdvbGRlbl9mcmFtZSwgICZzcmMtPmdvbGRlbl9mcmFtZSk7Ci0gICAgZmZfcHJvZ3Jl c3NfZnJhbWVfcmVwbGFjZSgmZHN0LT5sYXN0X2ZyYW1lLCAgICAmc3JjLT5sYXN0X2ZyYW1lKTsK IH0KIAogc3RhdGljIGludCB2cDNfdXBkYXRlX3RocmVhZF9jb250ZXh0KEFWQ29kZWNDb250ZXh0 ICpkc3QsIGNvbnN0IEFWQ29kZWNDb250ZXh0ICpzcmMpCkBAIC0yNTI4LDEyICsyNTE0LDggQEAg c3RhdGljIGludCB2cDNfdXBkYXRlX3RocmVhZF9jb250ZXh0KEFWQ29kZWNDb250ZXh0ICpkc3Qs IGNvbnN0IEFWQ29kZWNDb250ZXh0ICoKIAogICAgIC8vIGNvcHkgcHJldmlvdXMgZnJhbWUgZGF0 YQogICAgIHJlZl9mcmFtZXMocywgczEpOwotICAgIGlmICghczEtPmN1cnJlbnRfZnJhbWUuZikK LSAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgaWYgKHMgIT0gczEpIHsKLSAgICAgICAgcy0+a2V5 ZnJhbWUgPSBzMS0+a2V5ZnJhbWU7Ci0KICAgICAgICAgLy8gY29weSBxc2NhbGUgZGF0YSBpZiBu ZWNlc3NhcnkKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyBpKyspIHsKICAgICAgICAg ICAgIGlmIChzLT5xcHNbaV0gIT0gczEtPnFwc1sxXSkgewpAQCAtMjU1MSw4ICsyNTMzLDYgQEAg c3RhdGljIGludCB2cDNfdXBkYXRlX3RocmVhZF9jb250ZXh0KEFWQ29kZWNDb250ZXh0ICpkc3Qs IGNvbnN0IEFWQ29kZWNDb250ZXh0ICoKICAgICAgICAgICAgIHMtPm5xcHMgPSBzMS0+bnFwczsK ICAgICAgICAgfQogICAgIH0KLQotICAgIHVwZGF0ZV9mcmFtZXMoZHN0KTsKICAgICByZXR1cm4g MDsKIH0KICNlbmRpZgpAQCAtMjY0NiwxNCArMjYyNiwxNCBAQCBzdGF0aWMgaW50IHZwM19kZWNv ZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpmcmFtZSwKICAgICBpZiAo YXZjdHgtPnNraXBfZnJhbWUgPj0gQVZESVNDQVJEX05PTktFWSAmJiAhcy0+a2V5ZnJhbWUpCiAg ICAgICAgIHJldHVybiBidWZfc2l6ZTsKIAotICAgIGZmX3Byb2dyZXNzX2ZyYW1lX3VucmVmKCZz LT5jdXJyZW50X2ZyYW1lKTsKLSAgICByZXQgPSBmZl9wcm9ncmVzc19mcmFtZV9nZXRfYnVmZmVy KGF2Y3R4LCAmcy0+Y3VycmVudF9mcmFtZSwKKyAgICByZXQgPSBmZl9wcm9ncmVzc19mcmFtZV9n ZXRfYnVmZmVyKGF2Y3R4LCAmcy0+bGFzdF9mcmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFWX0dFVF9CVUZGRVJfRkxBR19SRUYpOwogICAgIGlmIChyZXQgPCAw KSB7CiAgICAgICAgIC8vIERvbid0IGdvdG8gZXJyb3IgaGVyZSwgYXMgb25lIGNhbid0IHJlcG9y dCBwcm9ncmVzcyBvbiBvcgogICAgICAgICAvLyB1bnJlZiBhIG5vbi1leGlzdGVudCBmcmFtZS4K ICAgICAgICAgcmV0dXJuIHJldDsKICAgICB9CisgICAgRkZTV0FQKFByb2dyZXNzRnJhbWUsIHMt Pmxhc3RfZnJhbWUsIHMtPmN1cnJlbnRfZnJhbWUpOwogICAgIHMtPmN1cnJlbnRfZnJhbWUuZi0+ cGljdF90eXBlID0gcy0+a2V5ZnJhbWUgPyBBVl9QSUNUVVJFX1RZUEVfSQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBBVl9QSUNUVVJFX1RZUEVfUDsK ICAgICBpZiAocy0+a2V5ZnJhbWUpCkBAIC0yNjc4LDcgKzI2NTgsOCBAQCBzdGF0aWMgaW50IHZw M19kZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpmcmFtZSwKICNp ZiAhQ09ORklHX1ZQNF9ERUNPREVSCiAgICAgICAgICAgICAgICAgaWYgKHZlcnNpb24gPj0gMikg ewogICAgICAgICAgICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIlRoaXMg YnVpbGQgZG9lcyBub3Qgc3VwcG9ydCBkZWNvZGluZyBWUDQuXG4iKTsKLSAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIEFWRVJST1JfREVDT0RFUl9OT1RfRk9VTkQ7CisgICAgICAgICAgICAgICAg ICAgIHJldCA9IEFWRVJST1JfREVDT0RFUl9OT1RfRk9VTkQ7CisgICAgICAgICAgICAgICAgICAg IGdvdG8gZXJyb3I7CiAgICAgICAgICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgICAgICAgICAg cy0+dmVyc2lvbiA9IHZlcnNpb247CkBAIC0yNzE2LDYgKzI2OTcsNyBAQCBzdGF0aWMgaW50IHZw M19kZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpmcmFtZSwKICAg ICAgICAgICAgIH0KICNlbmRpZgogICAgICAgICB9CisgICAgICAgIGZmX3Byb2dyZXNzX2ZyYW1l X3JlcGxhY2UoJnMtPmdvbGRlbl9mcmFtZSwgJnMtPmN1cnJlbnRfZnJhbWUpOwogICAgIH0gZWxz ZSB7CiAgICAgICAgIGlmICghcy0+Z29sZGVuX2ZyYW1lLmYpIHsKICAgICAgICAgICAgIGF2X2xv ZyhzLT5hdmN0eCwgQVZfTE9HX1dBUk5JTkcsCkBAIC0yNzkzLDYgKzI3NzUsOCBAQCBzdGF0aWMg aW50IHZwM19kZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpmcmFt ZSwKICAgICAgICAgfQogICAgIHZwM19kcmF3X2hvcml6X2JhbmQocywgcy0+aGVpZ2h0KTsKIAor ICAgIGZmX3Byb2dyZXNzX2ZyYW1lX3VucmVmKCZzLT5sYXN0X2ZyYW1lKTsKKwogICAgIC8qIG91 dHB1dCBmcmFtZSwgb2Zmc2V0IGFzIG5lZWRlZCAqLwogICAgIGlmICgocmV0ID0gYXZfZnJhbWVf cmVmKGZyYW1lLCBzLT5jdXJyZW50X2ZyYW1lLmYpKSA8IDApCiAgICAgICAgIHJldHVybiByZXQ7 CkBAIC0yODA0LDE2ICsyNzg4LDExIEBAIHN0YXRpYyBpbnQgdnAzX2RlY29kZV9mcmFtZShBVkNv ZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUgKmZyYW1lLAogCiAgICAgKmdvdF9mcmFtZSA9IDE7 CiAKLSAgICBpZiAoIUhBVkVfVEhSRUFEUyB8fCAhKHMtPmF2Y3R4LT5hY3RpdmVfdGhyZWFkX3R5 cGUgJiBGRl9USFJFQURfRlJBTUUpKQotICAgICAgICB1cGRhdGVfZnJhbWVzKGF2Y3R4KTsKLQog ICAgIHJldHVybiBidWZfc2l6ZTsKIAogZXJyb3I6CiAgICAgZmZfcHJvZ3Jlc3NfZnJhbWVfcmVw b3J0KCZzLT5jdXJyZW50X2ZyYW1lLCBJTlRfTUFYKTsKLQotICAgIGlmICghSEFWRV9USFJFQURT IHx8ICEocy0+YXZjdHgtPmFjdGl2ZV90aHJlYWRfdHlwZSAmIEZGX1RIUkVBRF9GUkFNRSkpCi0g ICAgICAgIGF2X2ZyYW1lX3VucmVmKHMtPmN1cnJlbnRfZnJhbWUuZik7CisgICAgZmZfcHJvZ3Jl c3NfZnJhbWVfdW5yZWYoJnMtPmxhc3RfZnJhbWUpOwogCiAgICAgcmV0dXJuIHJldDsKIH0KLS0g CjIuNTIuMAoKCkZyb20gMDVjZmUzZjI1MGE5Yjg2NTdhOTI5NmIyN2ZkNjk0NzA3OWI1MzlhZCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFz LnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFR1ZSwgMjUgTm92IDIwMjUgMDA6MTk6NTgg KzAxMDAKU3ViamVjdDogW1BBVENIIDExMS8zMDRdIGF2Y29kZWMvYXJtL3ZwNmRzcDogUmVtb3Zl IFZQNiBlZGdlIGZpbHRlciBmdW5jdGlvbnMKCkZvcmdvdHRlbiBpbiAxNjBlYmUwYThkNzgwZjZk YjdjMThlODI0ZDhlYzZmNDM3ZGEzM2EyLgoKUmV2aWV3ZWQtYnk6IEx5bm5lIDxkZXZAbHlubmUu ZWU+ClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0 QG91dGxvb2suY29tPgotLS0KIGxpYmF2Y29kZWMvYXJtL01ha2VmaWxlICAgICAgICAgIHwgICAy IC0KIGxpYmF2Y29kZWMvYXJtL3ZwNmRzcF9pbml0X2FybS5jIHwgIDM5IC0tLS0tLS0tLS0KIGxp YmF2Y29kZWMvYXJtL3ZwNmRzcF9uZW9uLlMgICAgIHwgMTIxIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIGxpYmF2Y29kZWMvdnA1NmRzcC5jICAgICAgICAgICAgIHwgICA0ICstCiBs aWJhdmNvZGVjL3ZwNTZkc3AuaCAgICAgICAgICAgICB8ICAgMSAtCiA1IGZpbGVzIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxNjYgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgbGli YXZjb2RlYy9hcm0vdnA2ZHNwX2luaXRfYXJtLmMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBsaWJhdmNv ZGVjL2FybS92cDZkc3BfbmVvbi5TCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hcm0vTWFrZWZp bGUgYi9saWJhdmNvZGVjL2FybS9NYWtlZmlsZQppbmRleCA4MTFiMzY0MTk1Li5lMzJhMGJmNDlm IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2FybS9NYWtlZmlsZQorKysgYi9saWJhdmNvZGVjL2Fy bS9NYWtlZmlsZQpAQCAtNDIsNyArNDIsNiBAQCBPQkpTLSQoQ09ORklHX1JWNDBfREVDT0RFUikg ICAgICAgICAgICArPSBhcm0vcnY0MGRzcF9pbml0X2FybS5vCiBPQkpTLSQoQ09ORklHX1NCQ19F TkNPREVSKSAgICAgICAgICAgICArPSBhcm0vc2JjZHNwX2luaXRfYXJtLm8KIE9CSlMtJChDT05G SUdfVFJVRUhEX0RFQ09ERVIpICAgICAgICAgICs9IGFybS9tbHBkc3BfaW5pdF9hcm0ubwogT0JK Uy0kKENPTkZJR19WT1JCSVNfREVDT0RFUikgICAgICAgICAgKz0gYXJtL3ZvcmJpc2RzcF9pbml0 X2FybS5vCi1PQkpTLSQoQ09ORklHX1ZQNl9ERUNPREVSKSAgICAgICAgICAgICArPSBhcm0vdnA2 ZHNwX2luaXRfYXJtLm8KIE9CSlMtJChDT05GSUdfVlA5X0RFQ09ERVIpICAgICAgICAgICAgICs9 IGFybS92cDlkc3BfaW5pdF8xMGJwcF9hcm0ubyAgIFwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFybS92cDlkc3BfaW5pdF8xMmJwcF9hcm0ubyAgIFwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFybS92cDlkc3BfaW5pdF9hcm0u bwpAQCAtMTM5LDcgKzEzOCw2IEBAIE5FT04tT0JKUy0kKENPTkZJR19SVjQwX0RFQ09ERVIpICAg ICAgICs9IGFybS9ydjM0ZHNwX25lb24ubyAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFybS9ydjQwZHNwX25lb24ubwogTkVPTi1PQkpTLSQo Q09ORklHX1NCQ19FTkNPREVSKSAgICAgICAgKz0gYXJtL3NiY2RzcF9uZW9uLm8KIE5FT04tT0JK Uy0kKENPTkZJR19WT1JCSVNfREVDT0RFUikgICAgICs9IGFybS92b3JiaXNkc3BfbmVvbi5vCi1O RU9OLU9CSlMtJChDT05GSUdfVlA2X0RFQ09ERVIpICAgICAgICArPSBhcm0vdnA2ZHNwX25lb24u bwogTkVPTi1PQkpTLSQoQ09ORklHX1ZQOV9ERUNPREVSKSAgICAgICAgKz0gYXJtL3ZwOWl0eGZt XzE2YnBwX25lb24ubyAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXJtL3ZwOWl0eGZtX25lb24ubyAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXJtL3ZwOWxwZl8xNmJwcF9uZW9uLm8gICAgICAgXApk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hcm0vdnA2ZHNwX2luaXRfYXJtLmMgYi9saWJhdmNvZGVj L2FybS92cDZkc3BfaW5pdF9hcm0uYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTU5 ZDYxMjc4Yy4uMDAwMDAwMDAwMAotLS0gYS9saWJhdmNvZGVjL2FybS92cDZkc3BfaW5pdF9hcm0u YworKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIw MTAgTWFucyBSdWxsZ2FyZCA8bWFuc0BtYW5zci5jb20+Ci0gKgotICogVGhpcyBmaWxlIGlzIHBh cnQgb2YgRkZtcGVnLgotICoKLSAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyLjEgb2YgdGhl IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICog RkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws Ci0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhbG9uZyB3aXRo IEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogRm91bmRhdGlv biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjEx MC0xMzAxIFVTQQotICovCi0KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLQotI2luY2x1ZGUgImxpYmF2 dXRpbC9hdHRyaWJ1dGVzLmgiCi0jaW5jbHVkZSAibGliYXZ1dGlsL2FybS9jcHUuaCIKLQotI2lu Y2x1ZGUgImxpYmF2Y29kZWMvdnA1NmRzcC5oIgotCi12b2lkIGZmX3ZwNl9lZGdlX2ZpbHRlcl9o b3JfbmVvbih1aW50OF90ICp5dXYsIHB0cmRpZmZfdCBzdHJpZGUsIGludCB0KTsKLXZvaWQgZmZf dnA2X2VkZ2VfZmlsdGVyX3Zlcl9uZW9uKHVpbnQ4X3QgKnl1diwgcHRyZGlmZl90IHN0cmlkZSwg aW50IHQpOwotCi1hdl9jb2xkIHZvaWQgZmZfdnA2ZHNwX2luaXRfYXJtKFZQNTZEU1BDb250ZXh0 ICpzKQotewotICAgIGludCBjcHVfZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7Ci0KLSAgICBp ZiAoaGF2ZV9uZW9uKGNwdV9mbGFncykpIHsKLSAgICAgICAgcy0+ZWRnZV9maWx0ZXJfaG9yID0g ZmZfdnA2X2VkZ2VfZmlsdGVyX2hvcl9uZW9uOwotICAgICAgICBzLT5lZGdlX2ZpbHRlcl92ZXIg PSBmZl92cDZfZWRnZV9maWx0ZXJfdmVyX25lb247Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvbGli YXZjb2RlYy9hcm0vdnA2ZHNwX25lb24uUyBiL2xpYmF2Y29kZWMvYXJtL3ZwNmRzcF9uZW9uLlMK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzZGQyOGQxY2IuLjAwMDAwMDAwMDAKLS0t IGEvbGliYXZjb2RlYy9hcm0vdnA2ZHNwX25lb24uUworKysgL2Rldi9udWxsCkBAIC0xLDEyMSAr MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDEwIE1hbnMgUnVsbGdhcmQgPG1hbnNAbWFu c3IuY29tPgotICoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KLSAqCi0gKiBGRm1w ZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBt b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj Ci0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIKLSAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0g KiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAq IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMKLSAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8g dGhlIEZyZWUgU29mdHdhcmUKLSAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKLSAqLwotCi0jaW5jbHVk ZSAibGliYXZ1dGlsL2FybS9hc20uUyIKLQotLm1hY3JvICB2cDZfZWRnZV9maWx0ZXIKLSAgICAg ICAgdmR1cC4xNiAgICAgICAgIHEzLCAgcjIgICAgICAgICAgICAgICAgIEAgdAotICAgICAgICB2 bW92LmkxNiAgICAgICAgcTEzLCAjMQotICAgICAgICB2c3VibC51OCAgICAgICAgcTAsICBkMjAs IGQxOCAgICAgICAgICAgQCBwWyAgIDBdIC0gcFstc10KLSAgICAgICAgdnN1YmwudTggICAgICAg IHExLCAgZDE2LCBkMjIgICAgICAgICAgIEAgcFstMipzXSAtIHBbIHNdCi0gICAgICAgIHZzdWJs LnU4ICAgICAgICBxMTQsIGQyMSwgZDE5Ci0gICAgICAgIHZzdWJsLnU4ICAgICAgICBxMTUsIGQx NywgZDIzCi0gICAgICAgIHZhZGQuaTE2ICAgICAgICBxMiwgIHEwLCAgcTAgICAgICAgICAgICBA IDIqKHBbMF0tcFstc10pCi0gICAgICAgIHZhZGQuaTE2ICAgICAgICBkMjksIGQyOCwgZDI4Ci0g ICAgICAgIHZhZGQuaTE2ICAgICAgICBxMCwgIHEwLCAgcTEgICAgICAgICAgICBAICAgIHBbMF0t cFstc10gICsgcFstMipzXS1wW3NdCi0gICAgICAgIHZhZGQuaTE2ICAgICAgICBkMjgsIGQyOCwg ZDMwCi0gICAgICAgIHZhZGQuaTE2ICAgICAgICBxMCwgIHEwLCAgcTIgICAgICAgICAgICBAIDMq KHBbMF0tcFstc10pICsgcFstMipzXS1wW3NdCi0gICAgICAgIHZhZGQuaTE2ICAgICAgICBkMjgs IGQyOCwgZDI5Ci0gICAgICAgIHZyc2hyLnMxNiAgICAgICBxMCwgIHEwLCAgIzMgICAgICAgICAg ICBAIHYKLSAgICAgICAgdnJzaHIuczE2ICAgICAgIGQyOCwgZDI4LCAjMwotICAgICAgICB2c3Vi LmkxNiAgICAgICAgcTgsICBxMywgIHExMyAgICAgICAgICAgQCB0LTEKLSAgICAgICAgdmFicy5z MTYgICAgICAgIHExLCAgcTAgICAgICAgICAgICAgICAgIEAgVgotICAgICAgICB2c2hyLnMxNiAg ICAgICAgcTIsICBxMCwgICMxNSAgICAgICAgICAgQCBzCi0gICAgICAgIHZhYnMuczE2ICAgICAg ICBkMzAsIGQyOAotICAgICAgICB2c2hyLnMxNiAgICAgICAgZDI5LCBkMjgsICMxNQotICAgICAg ICB2c3ViLmkxNiAgICAgICAgcTEyLCBxMSwgIHEzICAgICAgICAgICAgQCBWLXQKLSAgICAgICAg dnN1Yi5pMTYgICAgICAgIGQzMSwgZDMwLCBkNgotICAgICAgICB2c3ViLmkxNiAgICAgICAgcTEy LCBxMTIsIHExMyAgICAgICAgICAgQCBWLXQtMQotICAgICAgICB2c3ViLmkxNiAgICAgICAgZDMx LCBkMzEsIGQyNgotICAgICAgICB2Y2dlLnUxNiAgICAgICAgcTEyLCBxMTIsIHE4ICAgICAgICAg ICAgQCBWLXQtMSA+PSB0LTEKLSAgICAgICAgdmNnZS51MTYgICAgICAgIGQzMSwgZDMxLCBkMTYK LSAgICAgICAgdmFkZC5pMTYgICAgICAgIHExMywgcTMsICBxMyAgICAgICAgICAgIEAgMip0Ci0g ICAgICAgIHZhZGQuaTE2ICAgICAgICBkMTYsIGQ2LCAgZDYKLSAgICAgICAgdnN1Yi5pMTYgICAg ICAgIHExMywgcTEzLCBxMSAgICAgICAgICAgIEAgMip0IC0gVgotICAgICAgICB2c3ViLmkxNiAg ICAgICAgZDE2LCBkMTYsIGQzMAotICAgICAgICB2YWRkLmkxNiAgICAgICAgcTEzLCBxMTMsIHEy ICAgICAgICAgICAgQCArPSBzCi0gICAgICAgIHZhZGQuaTE2ICAgICAgICBkMTYsIGQxNiwgZDI5 Ci0gICAgICAgIHZlb3IgICAgICAgICAgICBxMTMsIHExMywgcTIgICAgICAgICAgICBAIF49IHMK LSAgICAgICAgdmVvciAgICAgICAgICAgIGQxNiwgZDE2LCBkMjkKLSAgICAgICAgdmJpZiAgICAg ICAgICAgIHEwLCAgcTEzLCBxMTIKLSAgICAgICAgdmJpZiAgICAgICAgICAgIGQyOCwgZDE2LCBk MzEKLSAgICAgICAgdm1vdmwudTggICAgICAgIHExLCAgZDIwCi0gICAgICAgIHZtb3ZsLnU4ICAg ICAgICBxMTUsIGQyMQotICAgICAgICB2YWRkdy51OCAgICAgICAgcTIsICBxMCwgIGQxOAotICAg ICAgICB2YWRkdy51OCAgICAgICAgcTMsICBxMTQsIGQxOQotICAgICAgICB2c3ViLmkxNiAgICAg ICAgcTEsICBxMSwgIHEwCi0gICAgICAgIHZzdWIuaTE2ICAgICAgICBkMzAsIGQzMCwgZDI4Ci0g ICAgICAgIHZxbW92dW4uczE2ICAgICBkMTgsIHEyCi0gICAgICAgIHZxbW92dW4uczE2ICAgICBk MTksIHEzCi0gICAgICAgIHZxbW92dW4uczE2ICAgICBkMjAsIHExCi0gICAgICAgIHZxbW92dW4u czE2ICAgICBkMjEsIHExNQotLmVuZG0KLQotZnVuY3Rpb24gZmZfdnA2X2VkZ2VfZmlsdGVyX3Zl cl9uZW9uLCBleHBvcnQ9MQotICAgICAgICBzdWIgICAgICAgICAgICAgcjAsICByMCwgIHIxLCAg bHNsICMxCi0gICAgICAgIHZsZDEuOCAgICAgICAgICB7cTh9LCAgICAgW3IwXSwgcjEgICAgICBA IHBbLTIqc10KLSAgICAgICAgdmxkMS44ICAgICAgICAgIHtxOX0sICAgICBbcjBdLCByMSAgICAg IEAgcFstc10KLSAgICAgICAgdmxkMS44ICAgICAgICAgIHtxMTB9LCAgICBbcjBdLCByMSAgICAg IEAgcFswXQotICAgICAgICB2bGQxLjggICAgICAgICAge3ExMX0sICAgIFtyMF0gICAgICAgICAg QCBwW3NdCi0gICAgICAgIHZwNl9lZGdlX2ZpbHRlcgotICAgICAgICBzdWIgICAgICAgICAgICAg cjAsICByMCwgIHIxLCAgbHNsICMxCi0gICAgICAgIHN1YiAgICAgICAgICAgICByMSwgIHIxLCAg IzgKLSAgICAgICAgdnN0MS44ICAgICAgICAgIHtkMTh9LCAgICBbcjBdIQotICAgICAgICB2c3Qx LjMyICAgICAgICAge2QxOVswXX0sIFtyMF0sIHIxCi0gICAgICAgIHZzdDEuOCAgICAgICAgICB7 ZDIwfSwgICAgW3IwXSEKLSAgICAgICAgdnN0MS4zMiAgICAgICAgIHtkMjFbMF19LCBbcjBdCi0g ICAgICAgIGJ4ICAgICAgICAgICAgICBscgotZW5kZnVuYwotCi1mdW5jdGlvbiBmZl92cDZfZWRn ZV9maWx0ZXJfaG9yX25lb24sIGV4cG9ydD0xCi0gICAgICAgIHN1YiAgICAgICAgICAgICByMywg IHIwLCAgIzEKLSAgICAgICAgc3ViICAgICAgICAgICAgIHIwLCAgcjAsICAjMgotICAgICAgICB2 bGQxLjMyICAgICAgICAge2QxNlswXX0sIFtyMF0sIHIxCi0gICAgICAgIHZsZDEuMzIgICAgICAg ICB7ZDE4WzBdfSwgW3IwXSwgcjEKLSAgICAgICAgdmxkMS4zMiAgICAgICAgIHtkMjBbMF19LCBb cjBdLCByMQotICAgICAgICB2bGQxLjMyICAgICAgICAge2QyMlswXX0sIFtyMF0sIHIxCi0gICAg ICAgIHZsZDEuMzIgICAgICAgICB7ZDE2WzFdfSwgW3IwXSwgcjEKLSAgICAgICAgdmxkMS4zMiAg ICAgICAgIHtkMThbMV19LCBbcjBdLCByMQotICAgICAgICB2bGQxLjMyICAgICAgICAge2QyMFsx XX0sIFtyMF0sIHIxCi0gICAgICAgIHZsZDEuMzIgICAgICAgICB7ZDIyWzFdfSwgW3IwXSwgcjEK LSAgICAgICAgdmxkMS4zMiAgICAgICAgIHtkMTdbMF19LCBbcjBdLCByMQotICAgICAgICB2bGQx LjMyICAgICAgICAge2QxOVswXX0sIFtyMF0sIHIxCi0gICAgICAgIHZsZDEuMzIgICAgICAgICB7 ZDIxWzBdfSwgW3IwXSwgcjEKLSAgICAgICAgdmxkMS4zMiAgICAgICAgIHtkMjNbMF19LCBbcjBd LCByMQotICAgICAgICB2dHJuLjggICAgICAgICAgcTgsICBxOQotICAgICAgICB2dHJuLjggICAg ICAgICAgcTEwLCBxMTEKLSAgICAgICAgdnRybi4xNiAgICAgICAgIHE4LCAgcTEwCi0gICAgICAg IHZ0cm4uMTYgICAgICAgICBxOSwgIHExMQotICAgICAgICB2cDZfZWRnZV9maWx0ZXIKLSAgICAg ICAgdnRybi44ICAgICAgICAgIHE5LCAgcTEwCi0gICAgICAgIHZzdDEuMTYgICAgICAgICB7ZDE4 WzBdfSwgW3IzXSwgcjEKLSAgICAgICAgdnN0MS4xNiAgICAgICAgIHtkMjBbMF19LCBbcjNdLCBy MQotICAgICAgICB2c3QxLjE2ICAgICAgICAge2QxOFsxXX0sIFtyM10sIHIxCi0gICAgICAgIHZz dDEuMTYgICAgICAgICB7ZDIwWzFdfSwgW3IzXSwgcjEKLSAgICAgICAgdnN0MS4xNiAgICAgICAg IHtkMThbMl19LCBbcjNdLCByMQotICAgICAgICB2c3QxLjE2ICAgICAgICAge2QyMFsyXX0sIFty M10sIHIxCi0gICAgICAgIHZzdDEuMTYgICAgICAgICB7ZDE4WzNdfSwgW3IzXSwgcjEKLSAgICAg ICAgdnN0MS4xNiAgICAgICAgIHtkMjBbM119LCBbcjNdLCByMQotICAgICAgICB2c3QxLjE2ICAg ICAgICAge2QxOVswXX0sIFtyM10sIHIxCi0gICAgICAgIHZzdDEuMTYgICAgICAgICB7ZDIxWzBd fSwgW3IzXSwgcjEKLSAgICAgICAgdnN0MS4xNiAgICAgICAgIHtkMTlbMV19LCBbcjNdLCByMQot ICAgICAgICB2c3QxLjE2ICAgICAgICAge2QyMVsxXX0sIFtyM10sIHIxCi0gICAgICAgIGJ4ICAg ICAgICAgICAgICBscgotZW5kZnVuYwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92cDU2ZHNwLmMg Yi9saWJhdmNvZGVjL3ZwNTZkc3AuYwppbmRleCBhNjY4NzEyMzg0Li4xZmY2N2IxYzg3IDEwMDY0 NAotLS0gYS9saWJhdmNvZGVjL3ZwNTZkc3AuYworKysgYi9saWJhdmNvZGVjL3ZwNTZkc3AuYwpA QCAtNzcsOSArNzcsNyBAQCBhdl9jb2xkIHZvaWQgZmZfdnA2ZHNwX2luaXQoVlA1NkRTUENvbnRl eHQgKnMpCiB7CiAgICAgcy0+dnA2X2ZpbHRlcl9kaWFnNCA9IGZmX3ZwNl9maWx0ZXJfZGlhZzRf YzsKIAotI2lmIEFSQ0hfQVJNCi0gICAgZmZfdnA2ZHNwX2luaXRfYXJtKHMpOwotI2VsaWYgQVJD SF9YODYKKyNpZiBBUkNIX1g4NgogICAgIGZmX3ZwNmRzcF9pbml0X3g4NihzKTsKICNlbmRpZgog fQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92cDU2ZHNwLmggYi9saWJhdmNvZGVjL3ZwNTZkc3Au aAppbmRleCBlMzVlMjMyZWEzLi5mMmNiYjQxYTFlIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Zw NTZkc3AuaAorKysgYi9saWJhdmNvZGVjL3ZwNTZkc3AuaApAQCAtMzgsNyArMzgsNiBAQCB2b2lk IGZmX3ZwNl9maWx0ZXJfZGlhZzRfYyh1aW50OF90ICpkc3QsIHVpbnQ4X3QgKnNyYywgcHRyZGlm Zl90IHN0cmlkZSwKIHZvaWQgZmZfdnA1ZHNwX2luaXQoVlA1NkRTUENvbnRleHQgKnMpOwogdm9p ZCBmZl92cDZkc3BfaW5pdChWUDU2RFNQQ29udGV4dCAqcyk7CiAKLXZvaWQgZmZfdnA2ZHNwX2lu aXRfYXJtKFZQNTZEU1BDb250ZXh0ICpzKTsKIHZvaWQgZmZfdnA2ZHNwX2luaXRfeDg2KFZQNTZE U1BDb250ZXh0ICpzKTsKIAogI2VuZGlmIC8qIEFWQ09ERUNfVlA1NkRTUF9IICovCi0tIAoyLjUy LjAKCgpGcm9tIGFiZTRkOGFkNTVhYjYyOTZlZmJhZjk4ZjI0YjFkNDEzMmM0NDhmNWQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVp bmhhcmR0QG91dGxvb2suY29tPgpEYXRlOiBUdWUsIDI1IE5vdiAyMDI1IDAwOjI4OjMyICswMTAw ClN1YmplY3Q6IFtQQVRDSCAxMTIvMzA0XSBhdmNvZGVjL3ZwNTY6IEZpeCBpbmRlbnRhdGlvbgoK Rm9yZ290dGVuIGluIDE2MGViZTBhOGQ3ODBmNmRiN2MxOGU4MjRkOGVjNmY0MzdkYTMzYTIuCgpS ZXZpZXdlZC1ieTogTHlubmUgPGRldkBseW5uZS5lZT4KU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBS aGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGliYXZjb2Rl Yy92cDU2LmMgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3ZwNTYuYyBiL2xpYmF2Y29kZWMv dnA1Ni5jCmluZGV4IGRjM2FlNzBjNjYuLjBkZGY3Yzk4NWMgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29k ZWMvdnA1Ni5jCisrKyBiL2xpYmF2Y29kZWMvdnA1Ni5jCkBAIC0zMjUsOSArMzI1LDkgQEAgc3Rh dGljIHZvaWQgdnA1Nl9kZWJsb2NrX2ZpbHRlcihWUDU2Q29udGV4dCAqcywgdWludDhfdCAqeXV2 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHJkaWZmX3Qgc3RyaWRlLCBpbnQg ZHgsIGludCBkeSkKIHsKICAgICBpZiAocy0+YXZjdHgtPmNvZGVjLT5pZCA9PSBBVl9DT0RFQ19J RF9WUDUpIHsKLSAgICBpbnQgdCA9IGZmX3ZwNTZfZmlsdGVyX3RocmVzaG9sZFtzLT5xdWFudGl6 ZXJdOwotICAgIGlmIChkeCkgIHMtPnZwNTZkc3AuZWRnZV9maWx0ZXJfaG9yKHl1diArICAgICAg ICAgMTAtZHggLCBzdHJpZGUsIHQpOwotICAgIGlmIChkeSkgIHMtPnZwNTZkc3AuZWRnZV9maWx0 ZXJfdmVyKHl1diArIHN0cmlkZSooMTAtZHkpLCBzdHJpZGUsIHQpOworICAgICAgICBpbnQgdCA9 IGZmX3ZwNTZfZmlsdGVyX3RocmVzaG9sZFtzLT5xdWFudGl6ZXJdOworICAgICAgICBpZiAoZHgp ICBzLT52cDU2ZHNwLmVkZ2VfZmlsdGVyX2hvcih5dXYgKyAgICAgICAgIDEwLWR4ICwgc3RyaWRl LCB0KTsKKyAgICAgICAgaWYgKGR5KSAgcy0+dnA1NmRzcC5lZGdlX2ZpbHRlcl92ZXIoeXV2ICsg c3RyaWRlKigxMC1keSksIHN0cmlkZSwgdCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaW50ICog Ym91bmRpbmdfdmFsdWVzID0gcy0+Ym91bmRpbmdfdmFsdWVzX2FycmF5ICsgMTI3OwogICAgICAg ICBpZiAoZHgpCi0tIAoyLjUyLjAKCgpGcm9tIDNmNzZkNTY4NDg4ZmViYmZiYTkxZDUxMGM4YzEx MDgwOTZiZTlmZDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJlYXMgUmhlaW5o YXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgpEYXRlOiBUdWUsIDI1IE5vdiAy MDI1IDAwOjQ0OjQ3ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMTMvMzA0XSBhdmNvZGVjL3ZwNTZk c3A6IFNlcGFyYXRlIFZQNURTUCBhbmQgVlA2RFNQCgpUaGV5IGRvbid0IGhhdmUgYW55dGhpbmcg aW4gY29tbW9uIHNpbmNlCjE2MGViZTBhOGQ3ODBmNmRiN2MxOGU4MjRkOGVjNmY0MzdkYTMzYTIu CgpSZXZpZXdlZC1ieTogTHlubmUgPGRldkBseW5uZS5lZT4KU2lnbmVkLW9mZi1ieTogQW5kcmVh cyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogY29uZmln dXJlICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICsrLS0tCiBsaWJhdmNvZGVjL01ha2Vm aWxlICAgICAgICAgICAgICAgIHwgIDQgKystLQogbGliYXZjb2RlYy92cDUuYyAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBsaWJhdmNvZGVjL3ZwNTYuYyAgICAgICAgICAgICAgICAgIHwgIDQg KystLQogbGliYXZjb2RlYy92cDU2LmggICAgICAgICAgICAgICAgICB8ICA1ICsrKystCiBsaWJh dmNvZGVjL3ZwNTZkc3AuaCAgICAgICAgICAgICAgIHwgMTUgKysrKysrKy0tLS0tLS0tCiBsaWJh dmNvZGVjL3t2cDU2ZHNwLmMgPT4gdnA1ZHNwLmN9IHwgMTcgKy0tLS0tLS0tLS0tLS0tLS0KIGxp YmF2Y29kZWMvdnA2LmMgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBsaWJhdmNvZGVjL3Zw NmRzcC5jICAgICAgICAgICAgICAgIHwgMTMgKysrKysrKysrKystLQogbGliYXZjb2RlYy94ODYv dnA2ZHNwX2luaXQuYyAgICAgICB8ICAyICstCiAxMCBmaWxlcyBjaGFuZ2VkLCAzMyBpbnNlcnRp b25zKCspLCAzOCBkZWxldGlvbnMoLSkKIHJlbmFtZSBsaWJhdmNvZGVjL3t2cDU2ZHNwLmMgPT4g dnA1ZHNwLmN9ICg4NyUpCgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4 IDcyMDJjYmM1N2EuLmE3YjBjMThkOWMgMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysgYi9jb25m aWd1cmUKQEAgLTI3MDEsNyArMjcwMSw2IEBAIENPTkZJR19FWFRSQT0iCiAgICAgdmMxZHNwCiAg ICAgdmlkZW9kc3AKICAgICB2cDNkc3AKLSAgICB2cDU2ZHNwCiAgICAgdnA4ZHNwCiAgICAgdnVs a2FuX2VuY29kZQogICAgIHZ2Y19zZWkKQEAgLTMxOTcsOCArMzE5Niw4IEBAIHZjMWltYWdlX2Rl Y29kZXJfc2VsZWN0PSJ2YzFfZGVjb2RlciIKIHZvcmJpc19lbmNvZGVyX3NlbGVjdD0iYXVkaW9f ZnJhbWVfcXVldWUiCiB2cDNfZGVjb2Rlcl9zZWxlY3Q9ImhwZWxkc3AgdnAzZHNwIHZpZGVvZHNw IgogdnA0X2RlY29kZXJfc2VsZWN0PSJ2cDNfZGVjb2RlciIKLXZwNV9kZWNvZGVyX3NlbGVjdD0i aDI2NGNocm9tYSBocGVsZHNwIHZpZGVvZHNwIHZwM2RzcCB2cDU2ZHNwIgotdnA2X2RlY29kZXJf c2VsZWN0PSJoMjY0Y2hyb21hIGhwZWxkc3AgaHVmZm1hbiB2aWRlb2RzcCB2cDNkc3AgdnA1NmRz cCIKK3ZwNV9kZWNvZGVyX3NlbGVjdD0iaDI2NGNocm9tYSBocGVsZHNwIHZpZGVvZHNwIHZwM2Rz cCIKK3ZwNl9kZWNvZGVyX3NlbGVjdD0iaDI2NGNocm9tYSBocGVsZHNwIGh1ZmZtYW4gdmlkZW9k c3AgdnAzZHNwIgogdnA2YV9kZWNvZGVyX3NlbGVjdD0idnA2X2RlY29kZXIiCiB2cDZmX2RlY29k ZXJfc2VsZWN0PSJ2cDZfZGVjb2RlciIKIHZwN19kZWNvZGVyX3NlbGVjdD0iaDI2NHByZWQgdmlk ZW9kc3AgdnA4ZHNwIgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9NYWtlZmlsZSBiL2xpYmF2Y29k ZWMvTWFrZWZpbGUKaW5kZXggNDlkNjk2MDE3ZC4uNDBlNjgxMTZlOCAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy9NYWtlZmlsZQorKysgYi9saWJhdmNvZGVjL01ha2VmaWxlCkBAIC0xODIsNyArMTgy LDYgQEAgT0JKUy0kKENPTkZJR19BVjFfQU1GX0RFQ09ERVIpICAgICAgICAgKz0gYW1mZGVjLm8K IE9CSlMtJChDT05GSUdfVkMxRFNQKSAgICAgICAgICAgICAgICAgICs9IHZjMWRzcC5vCiBPQkpT LSQoQ09ORklHX1ZJREVPRFNQKSAgICAgICAgICAgICAgICArPSB2aWRlb2RzcC5vCiBPQkpTLSQo Q09ORklHX1ZQM0RTUCkgICAgICAgICAgICAgICAgICArPSB2cDNkc3AubwotT0JKUy0kKENPTkZJ R19WUDU2RFNQKSAgICAgICAgICAgICAgICAgKz0gdnA1NmRzcC5vCiBPQkpTLSQoQ09ORklHX1ZQ OERTUCkgICAgICAgICAgICAgICAgICArPSB2cDhkc3AubwogT0JKUy0kKENPTkZJR19WNEwyX00y TSkgICAgICAgICAgICAgICAgKz0gdjRsMl9tMm0ubyB2NGwyX2NvbnRleHQubyB2NGwyX2J1ZmZl cnMubyB2NGwyX2ZtdC5vCiBPQkpTLSQoQ09ORklHX1dNQV9GUkVRUykgICAgICAgICAgICAgICAr PSB3bWFfZnJlcXMubwpAQCAtODA2LDcgKzgwNSw4IEBAIE9CSlMtJChDT05GSUdfVk9SQklTX0RF Q09ERVIpICAgICAgICAgICs9IHZvcmJpc2RlYy5vIHZvcmJpc2RzcC5vIHZvcmJpcy5vIFwKIE9C SlMtJChDT05GSUdfVk9SQklTX0VOQ09ERVIpICAgICAgICAgICs9IHZvcmJpc2VuYy5vIHZvcmJp cy5vIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvcmJpc19k YXRhLm8KIE9CSlMtJChDT05GSUdfVlAzX0RFQ09ERVIpICAgICAgICAgICAgICs9IHZwMy5vIGpw ZWdxdWFudHRhYmxlcy5vCi1PQkpTLSQoQ09ORklHX1ZQNV9ERUNPREVSKSAgICAgICAgICAgICAr PSB2cDUubyB2cDU2Lm8gdnA1NmRhdGEubyB2cHhfcmFjLm8KK09CSlMtJChDT05GSUdfVlA1X0RF Q09ERVIpICAgICAgICAgICAgICs9IHZwNS5vIHZwNTYubyB2cDU2ZGF0YS5vIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZwNWRzcC5vIHZweF9yYWMubwogT0JK Uy0kKENPTkZJR19WUDZfREVDT0RFUikgICAgICAgICAgICAgKz0gdnA2Lm8gdnA1Ni5vIHZwNTZk YXRhLm8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnA2ZHNw Lm8gdnB4X3JhYy5vCiBPQkpTLSQoQ09ORklHX1ZQN19ERUNPREVSKSAgICAgICAgICAgICArPSB2 cDgubyB2cDhkYXRhLm8gdnB4X3JhYy5vCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3ZwNS5jIGIv bGliYXZjb2RlYy92cDUuYwppbmRleCA3N2I0Nzk0NzFiLi45OGI4Y2Y0MWYyIDEwMDY0NAotLS0g YS9saWJhdmNvZGVjL3ZwNS5jCisrKyBiL2xpYmF2Y29kZWMvdnA1LmMKQEAgLTI4NSw3ICsyODUs NyBAQCBzdGF0aWMgYXZfY29sZCBpbnQgdnA1X2RlY29kZV9pbml0KEFWQ29kZWNDb250ZXh0ICph dmN0eCkKIAogICAgIGlmICgocmV0ID0gZmZfdnA1Nl9pbml0X2NvbnRleHQoYXZjdHgsIHMsIDEs IDApKSA8IDApCiAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgZmZfdnA1ZHNwX2luaXQoJnMtPnZw NTZkc3ApOworICAgIGZmX3ZwNWRzcF9pbml0KCZzLT52cDVkc3ApOwogICAgIHMtPnZwNTZfY29v cmRfZGl2ID0gdnA1X2Nvb3JkX2RpdjsKICAgICBzLT5wYXJzZV92ZWN0b3JfYWRqdXN0bWVudCA9 IHZwNV9wYXJzZV92ZWN0b3JfYWRqdXN0bWVudDsKICAgICBzLT5wYXJzZV9jb2VmZiA9IHZwNV9w YXJzZV9jb2VmZjsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnA1Ni5jIGIvbGliYXZjb2RlYy92 cDU2LmMKaW5kZXggMGRkZjdjOTg1Yy4uMGQxM2Q3YTI3NiAxMDA2NDQKLS0tIGEvbGliYXZjb2Rl Yy92cDU2LmMKKysrIGIvbGliYXZjb2RlYy92cDU2LmMKQEAgLTMyNiw4ICszMjYsOCBAQCBzdGF0 aWMgdm9pZCB2cDU2X2RlYmxvY2tfZmlsdGVyKFZQNTZDb250ZXh0ICpzLCB1aW50OF90ICp5dXYs CiB7CiAgICAgaWYgKHMtPmF2Y3R4LT5jb2RlYy0+aWQgPT0gQVZfQ09ERUNfSURfVlA1KSB7CiAg ICAgICAgIGludCB0ID0gZmZfdnA1Nl9maWx0ZXJfdGhyZXNob2xkW3MtPnF1YW50aXplcl07Ci0g ICAgICAgIGlmIChkeCkgIHMtPnZwNTZkc3AuZWRnZV9maWx0ZXJfaG9yKHl1diArICAgICAgICAg MTAtZHggLCBzdHJpZGUsIHQpOwotICAgICAgICBpZiAoZHkpICBzLT52cDU2ZHNwLmVkZ2VfZmls dGVyX3Zlcih5dXYgKyBzdHJpZGUqKDEwLWR5KSwgc3RyaWRlLCB0KTsKKyAgICAgICAgaWYgKGR4 KSAgcy0+dnA1ZHNwLmVkZ2VfZmlsdGVyX2hvcih5dXYgKyAgICAgICAgIDEwLWR4ICwgc3RyaWRl LCB0KTsKKyAgICAgICAgaWYgKGR5KSAgcy0+dnA1ZHNwLmVkZ2VfZmlsdGVyX3Zlcih5dXYgKyBz dHJpZGUqKDEwLWR5KSwgc3RyaWRlLCB0KTsKICAgICB9IGVsc2UgewogICAgICAgICBpbnQgKiBi b3VuZGluZ192YWx1ZXMgPSBzLT5ib3VuZGluZ192YWx1ZXNfYXJyYXkgKyAxMjc7CiAgICAgICAg IGlmIChkeCkKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnA1Ni5oIGIvbGliYXZjb2RlYy92cDU2 LmgKaW5kZXggYWY0NmUyZjE4OC4uNjYxMGZjMjg5MiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy92 cDU2LmgKKysrIGIvbGliYXZjb2RlYy92cDU2LmgKQEAgLTExOCw3ICsxMTgsMTAgQEAgc3RydWN0 IHZwNTZfY29udGV4dCB7CiAgICAgSHBlbERTUENvbnRleHQgaGRzcDsKICAgICBWaWRlb0RTUENv bnRleHQgdmRzcDsKICAgICBWUDNEU1BDb250ZXh0IHZwM2RzcDsKLSAgICBWUDU2RFNQQ29udGV4 dCB2cDU2ZHNwOworICAgIHVuaW9uIHsKKyAgICAgICAgVlA1RFNQQ29udGV4dCB2cDVkc3A7Cisg ICAgICAgIFZQNkRTUENvbnRleHQgdnA2ZHNwOworICAgIH07CiAgICAgdWludDhfdCBpZGN0X3Nj YW50YWJsZVs2NF07CiAgICAgQVZGcmFtZSAqZnJhbWVzWzRdOwogICAgIHVpbnQ4X3QgKmVkZ2Vf ZW11X2J1ZmZlcl9hbGxvYzsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnA1NmRzcC5oIGIvbGli YXZjb2RlYy92cDU2ZHNwLmgKaW5kZXggZjJjYmI0MWExZS4uNjkyZmQwYzhhYyAxMDA2NDQKLS0t IGEvbGliYXZjb2RlYy92cDU2ZHNwLmgKKysrIGIvbGliYXZjb2RlYy92cDU2ZHNwLmgKQEAgLTI0 LDIwICsyNCwxOSBAQAogI2luY2x1ZGUgPHN0ZGRlZi5oPgogI2luY2x1ZGUgPHN0ZGludC5oPgog Ci10eXBlZGVmIHN0cnVjdCBWUDU2RFNQQ29udGV4dCB7Cit0eXBlZGVmIHN0cnVjdCBWUDVEU1BD b250ZXh0IHsKICAgICB2b2lkICgqZWRnZV9maWx0ZXJfaG9yKSh1aW50OF90ICp5dXYsIHB0cmRp ZmZfdCBzdHJpZGUsIGludCB0KTsKICAgICB2b2lkICgqZWRnZV9maWx0ZXJfdmVyKSh1aW50OF90 ICp5dXYsIHB0cmRpZmZfdCBzdHJpZGUsIGludCB0KTsKK30gVlA1RFNQQ29udGV4dDsKIAordHlw ZWRlZiBzdHJ1Y3QgVlA2RFNQQ29udGV4dCB7CiAgICAgdm9pZCAoKnZwNl9maWx0ZXJfZGlhZzQp KHVpbnQ4X3QgKmRzdCwgdWludDhfdCAqc3JjLCBwdHJkaWZmX3Qgc3RyaWRlLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQxNl90ICpoX3dlaWdodHMsY29uc3QgaW50MTZf dCAqdl93ZWlnaHRzKTsKLX0gVlA1NkRTUENvbnRleHQ7Cit9IFZQNkRTUENvbnRleHQ7CiAKLXZv aWQgZmZfdnA2X2ZpbHRlcl9kaWFnNF9jKHVpbnQ4X3QgKmRzdCwgdWludDhfdCAqc3JjLCBwdHJk aWZmX3Qgc3RyaWRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50MTZfdCAq aF93ZWlnaHRzLCBjb25zdCBpbnQxNl90ICp2X3dlaWdodHMpOwordm9pZCBmZl92cDVkc3BfaW5p dChWUDVEU1BDb250ZXh0ICpzKTsKIAotdm9pZCBmZl92cDVkc3BfaW5pdChWUDU2RFNQQ29udGV4 dCAqcyk7Ci12b2lkIGZmX3ZwNmRzcF9pbml0KFZQNTZEU1BDb250ZXh0ICpzKTsKLQotdm9pZCBm Zl92cDZkc3BfaW5pdF94ODYoVlA1NkRTUENvbnRleHQgKnMpOwordm9pZCBmZl92cDZkc3BfaW5p dChWUDZEU1BDb250ZXh0ICpzKTsKK3ZvaWQgZmZfdnA2ZHNwX2luaXRfeDg2KFZQNkRTUENvbnRl eHQgKnMpOwogCiAjZW5kaWYgLyogQVZDT0RFQ19WUDU2RFNQX0ggKi8KZGlmZiAtLWdpdCBhL2xp YmF2Y29kZWMvdnA1NmRzcC5jIGIvbGliYXZjb2RlYy92cDVkc3AuYwpzaW1pbGFyaXR5IGluZGV4 IDg3JQpyZW5hbWUgZnJvbSBsaWJhdmNvZGVjL3ZwNTZkc3AuYwpyZW5hbWUgdG8gbGliYXZjb2Rl Yy92cDVkc3AuYwppbmRleCAxZmY2N2IxYzg3Li5hMDZjMmNmZDVmIDEwMDY0NAotLS0gYS9saWJh dmNvZGVjL3ZwNTZkc3AuYworKysgYi9saWJhdmNvZGVjL3ZwNWRzcC5jCkBAIC0yMSw4ICsyMSw2 IEBACiAKICNpbmNsdWRlIDxzdGRpbnQuaD4KIAotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1 ZGUgImNvbmZpZ19jb21wb25lbnRzLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL2F0dHJpYnV0ZXMu aCIKICNpbmNsdWRlICJ2cDU2ZHNwLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL2NvbW1vbi5oIgpA QCAtNDMsNyArNDEsNiBAQCBzdGF0aWMgdm9pZCBwZnggIyMgX2VkZ2VfZmlsdGVyXyAjIyBzdWYo dWludDhfdCAqeXV2LCBwdHJkaWZmX3Qgc3RyaWRlLCBcCiAgICAgfSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiB9CiAK LSNpZiBDT05GSUdfVlA1X0RFQ09ERVIKIC8qIEdpdmVzIHZlcnkgc2ltaWxhciByZXN1bHQgdGhh biB0aGUgdnA2IHZlcnNpb24gZXhjZXB0IGluIGEgZmV3IGNhc2VzICovCiBzdGF0aWMgaW50IHZw NV9hZGp1c3QoaW50IHYsIGludCB0KQogewpAQCAtNjUsMjAgKzYyLDggQEAgc3RhdGljIGludCB2 cDVfYWRqdXN0KGludCB2LCBpbnQgdCkKIFZQNTZfRURHRV9GSUxURVIodnA1LCBob3IsIDEsIHN0 cmlkZSkKIFZQNTZfRURHRV9GSUxURVIodnA1LCB2ZXIsIHN0cmlkZSwgMSkKIAotYXZfY29sZCB2 b2lkIGZmX3ZwNWRzcF9pbml0KFZQNTZEU1BDb250ZXh0ICpzKQorYXZfY29sZCB2b2lkIGZmX3Zw NWRzcF9pbml0KFZQNURTUENvbnRleHQgKnMpCiB7CiAgICAgcy0+ZWRnZV9maWx0ZXJfaG9yID0g dnA1X2VkZ2VfZmlsdGVyX2hvcjsKICAgICBzLT5lZGdlX2ZpbHRlcl92ZXIgPSB2cDVfZWRnZV9m aWx0ZXJfdmVyOwogfQotI2VuZGlmIC8qIENPTkZJR19WUDVfREVDT0RFUiAqLwotCi0jaWYgQ09O RklHX1ZQNl9ERUNPREVSCi1hdl9jb2xkIHZvaWQgZmZfdnA2ZHNwX2luaXQoVlA1NkRTUENvbnRl eHQgKnMpCi17Ci0gICAgcy0+dnA2X2ZpbHRlcl9kaWFnNCA9IGZmX3ZwNl9maWx0ZXJfZGlhZzRf YzsKLQotI2lmIEFSQ0hfWDg2Ci0gICAgZmZfdnA2ZHNwX2luaXRfeDg2KHMpOwotI2VuZGlmCi19 Ci0jZW5kaWYgLyogQ09ORklHX1ZQNl9ERUNPREVSICovCmRpZmYgLS1naXQgYS9saWJhdmNvZGVj L3ZwNi5jIGIvbGliYXZjb2RlYy92cDYuYwppbmRleCA0OGZmOWRhODE4Li4zZjRiZDQyZDA3IDEw MDY0NAotLS0gYS9saWJhdmNvZGVjL3ZwNi5jCisrKyBiL2xpYmF2Y29kZWMvdnA2LmMKQEAgLTY0 MSw3ICs2NDEsNyBAQCBzdGF0aWMgdm9pZCB2cDZfZmlsdGVyKFZQNTZDb250ZXh0ICpzLCB1aW50 OF90ICpkc3QsIHVpbnQ4X3QgKnNyYywKICAgICAgICAgICAgIHZwNl9maWx0ZXJfaHY0KGRzdCwg c3JjK29mZnNldDEsIHN0cmlkZSwgc3RyaWRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg dnA2X2Jsb2NrX2NvcHlfZmlsdGVyW3NlbGVjdF1beThdKTsKICAgICAgICAgfSBlbHNlIHsKLSAg ICAgICAgICAgIHMtPnZwNTZkc3AudnA2X2ZpbHRlcl9kaWFnNChkc3QsIHNyYytvZmZzZXQxKygo bXYueF5tdi55KT4+MzEpLCBzdHJpZGUsCisgICAgICAgICAgICBzLT52cDZkc3AudnA2X2ZpbHRl cl9kaWFnNChkc3QsIHNyYytvZmZzZXQxKygobXYueF5tdi55KT4+MzEpLCBzdHJpZGUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHZwNl9ibG9ja19jb3B5X2ZpbHRlcltzZWxlY3RdW3g4 XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnA2X2Jsb2NrX2NvcHlfZmlsdGVyW3Nl bGVjdF1beThdKTsKICAgICAgICAgfQpAQCAtNjYxLDcgKzY2MSw3IEBAIHN0YXRpYyBhdl9jb2xk IGludCB2cDZfZGVjb2RlX2luaXRfY29udGV4dChBVkNvZGVjQ29udGV4dCAqYXZjdHgsCiAgICAg aWYgKHJldCA8IDApCiAgICAgICAgIHJldHVybiByZXQ7CiAKLSAgICBmZl92cDZkc3BfaW5pdCgm cy0+dnA1NmRzcCk7CisgICAgZmZfdnA2ZHNwX2luaXQoJnMtPnZwNmRzcCk7CiAKICAgICBzLT5k ZWJsb2NrX2ZpbHRlcmluZyA9IDA7CiAgICAgcy0+dnA1Nl9jb29yZF9kaXYgPSB2cDZfY29vcmRf ZGl2OwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92cDZkc3AuYyBiL2xpYmF2Y29kZWMvdnA2ZHNw LmMKaW5kZXggZjdmNjg1NjMzMC4uNzZjNDk4Mzk2MCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy92 cDZkc3AuYworKysgYi9saWJhdmNvZGVjL3ZwNmRzcC5jCkBAIC0yNyw4ICsyNyw4IEBACiAjaW5j bHVkZSAidnA1NmRzcC5oIgogCiAKLXZvaWQgZmZfdnA2X2ZpbHRlcl9kaWFnNF9jKHVpbnQ4X3Qg KmRzdCwgdWludDhfdCAqc3JjLCBwdHJkaWZmX3Qgc3RyaWRlLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgaW50MTZfdCAqaF93ZWlnaHRzLCBjb25zdCBpbnQxNl90ICp2X3dlaWdo dHMpCitzdGF0aWMgdm9pZCB2cDZfZmlsdGVyX2RpYWc0X2ModWludDhfdCAqZHN0LCB1aW50OF90 ICpzcmMsIHB0cmRpZmZfdCBzdHJpZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgaW50MTZfdCAqaF93ZWlnaHRzLCBjb25zdCBpbnQxNl90ICp2X3dlaWdodHMpCiB7CiAg ICAgaW50IHgsIHk7CiAgICAgaW50IHRtcFs4KjExXTsKQEAgLTU5LDMgKzU5LDEyIEBAIHZvaWQg ZmZfdnA2X2ZpbHRlcl9kaWFnNF9jKHVpbnQ4X3QgKmRzdCwgdWludDhfdCAqc3JjLCBwdHJkaWZm X3Qgc3RyaWRlLAogICAgICAgICB0ICs9IDg7CiAgICAgfQogfQorCithdl9jb2xkIHZvaWQgZmZf dnA2ZHNwX2luaXQoVlA2RFNQQ29udGV4dCAqcykKK3sKKyAgICBzLT52cDZfZmlsdGVyX2RpYWc0 ID0gdnA2X2ZpbHRlcl9kaWFnNF9jOworCisjaWYgQVJDSF9YODYKKyAgICBmZl92cDZkc3BfaW5p dF94ODYocyk7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2L3ZwNmRzcF9p bml0LmMgYi9saWJhdmNvZGVjL3g4Ni92cDZkc3BfaW5pdC5jCmluZGV4IDgzZDQ1ZWMzNmMuLjA3 ZTNiZWNhZWMgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L3ZwNmRzcF9pbml0LmMKKysrIGIv bGliYXZjb2RlYy94ODYvdnA2ZHNwX2luaXQuYwpAQCAtMjgsNyArMjgsNyBAQAogdm9pZCBmZl92 cDZfZmlsdGVyX2RpYWc0X3NzZTIodWludDhfdCAqZHN0LCB1aW50OF90ICpzcmMsIHB0cmRpZmZf dCBzdHJpZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQxNl90ICpo X3dlaWdodHMsY29uc3QgaW50MTZfdCAqdl93ZWlnaHRzKTsKIAotYXZfY29sZCB2b2lkIGZmX3Zw NmRzcF9pbml0X3g4NihWUDU2RFNQQ29udGV4dCAqYykKK2F2X2NvbGQgdm9pZCBmZl92cDZkc3Bf aW5pdF94ODYoVlA2RFNQQ29udGV4dCAqYykKIHsKICAgICBpbnQgY3B1X2ZsYWdzID0gYXZfZ2V0 X2NwdV9mbGFncygpOwogCi0tIAoyLjUyLjAKCgpGcm9tIDUyYTdhYTY2YjJkZWI0ZTJjYzc4MTdh MjJkNzJkMmE1OWZmOWYzMzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJlYXMg UmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgpEYXRlOiBUdWUsIDI1 IE5vdiAyMDI1IDAxOjAwOjU4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMTQvMzA0XSBhdmNvZGVj L3ZwNmRzcDogQ29uc3RpZnkgc291cmNlIGluIHZwNl9maWx0ZXJfZGlhZzQKClJldmlld2VkLWJ5 OiBMeW5uZSA8ZGV2QGx5bm5lLmVlPgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQg PGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KLS0tCiBsaWJhdmNvZGVjL3ZwNTZkc3Au aCAgICAgICAgIHwgMiArLQogbGliYXZjb2RlYy92cDZkc3AuYyAgICAgICAgICB8IDIgKy0KIGxp YmF2Y29kZWMveDg2L3ZwNmRzcF9pbml0LmMgfCAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3ZwNTZk c3AuaCBiL2xpYmF2Y29kZWMvdnA1NmRzcC5oCmluZGV4IDY5MmZkMGM4YWMuLjM5ODFkZTQwMTUg MTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdnA1NmRzcC5oCisrKyBiL2xpYmF2Y29kZWMvdnA1NmRz cC5oCkBAIC0zMCw3ICszMCw3IEBAIHR5cGVkZWYgc3RydWN0IFZQNURTUENvbnRleHQgewogfSBW UDVEU1BDb250ZXh0OwogCiB0eXBlZGVmIHN0cnVjdCBWUDZEU1BDb250ZXh0IHsKLSAgICB2b2lk ICgqdnA2X2ZpbHRlcl9kaWFnNCkodWludDhfdCAqZHN0LCB1aW50OF90ICpzcmMsIHB0cmRpZmZf dCBzdHJpZGUsCisgICAgdm9pZCAoKnZwNl9maWx0ZXJfZGlhZzQpKHVpbnQ4X3QgKmRzdCwgY29u c3QgdWludDhfdCAqc3JjLCBwdHJkaWZmX3Qgc3RyaWRlLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBpbnQxNl90ICpoX3dlaWdodHMsY29uc3QgaW50MTZfdCAqdl93ZWlnaHRz KTsKIH0gVlA2RFNQQ29udGV4dDsKIApkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92cDZkc3AuYyBi L2xpYmF2Y29kZWMvdnA2ZHNwLmMKaW5kZXggNzZjNDk4Mzk2MC4uYmRhYTA1NDMwNyAxMDA2NDQK LS0tIGEvbGliYXZjb2RlYy92cDZkc3AuYworKysgYi9saWJhdmNvZGVjL3ZwNmRzcC5jCkBAIC0y Nyw3ICsyNyw3IEBACiAjaW5jbHVkZSAidnA1NmRzcC5oIgogCiAKLXN0YXRpYyB2b2lkIHZwNl9m aWx0ZXJfZGlhZzRfYyh1aW50OF90ICpkc3QsIHVpbnQ4X3QgKnNyYywgcHRyZGlmZl90IHN0cmlk ZSwKK3N0YXRpYyB2b2lkIHZwNl9maWx0ZXJfZGlhZzRfYyh1aW50OF90ICpkc3QsIGNvbnN0IHVp bnQ4X3QgKnNyYywgcHRyZGlmZl90IHN0cmlkZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBpbnQxNl90ICpoX3dlaWdodHMsIGNvbnN0IGludDE2X3QgKnZfd2VpZ2h0cykK IHsKICAgICBpbnQgeCwgeTsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2L3ZwNmRzcF9pbml0 LmMgYi9saWJhdmNvZGVjL3g4Ni92cDZkc3BfaW5pdC5jCmluZGV4IDA3ZTNiZWNhZWMuLmRiOWE5 NTc2N2UgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L3ZwNmRzcF9pbml0LmMKKysrIGIvbGli YXZjb2RlYy94ODYvdnA2ZHNwX2luaXQuYwpAQCAtMjUsNyArMjUsNyBAQAogI2luY2x1ZGUgImxp YmF2dXRpbC94ODYvY3B1LmgiCiAjaW5jbHVkZSAibGliYXZjb2RlYy92cDU2ZHNwLmgiCiAKLXZv aWQgZmZfdnA2X2ZpbHRlcl9kaWFnNF9zc2UyKHVpbnQ4X3QgKmRzdCwgdWludDhfdCAqc3JjLCBw dHJkaWZmX3Qgc3RyaWRlLAordm9pZCBmZl92cDZfZmlsdGVyX2RpYWc0X3NzZTIodWludDhfdCAq ZHN0LCBjb25zdCB1aW50OF90ICpzcmMsIHB0cmRpZmZfdCBzdHJpZGUsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBpbnQxNl90ICpoX3dlaWdodHMsY29uc3QgaW50MTZfdCAq dl93ZWlnaHRzKTsKIAogYXZfY29sZCB2b2lkIGZmX3ZwNmRzcF9pbml0X3g4NihWUDZEU1BDb250 ZXh0ICpjKQotLSAKMi41Mi4wCgoKRnJvbSAyM2UwOGVmMmY5N2FjYjM1OWMxNTEyOTdhZjgxMmNj OWRlNDM0ZDAyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFy ZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogVHVlLCAyNSBOb3YgMjAy NSAxMDo1Mzo0MSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTE1LzMwNF0gdGVzdHMvY2hlY2thc206 IFRlc3QgVlA2RFNQCgpSZXZpZXdlZC1ieTogTHlubmUgPGRldkBseW5uZS5lZT4KU2lnbmVkLW9m Zi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+ Ci0tLQogdGVzdHMvY2hlY2thc20vTWFrZWZpbGUgICB8ICAxICsKIHRlc3RzL2NoZWNrYXNtL2No ZWNrYXNtLmMgfCAgMyArKwogdGVzdHMvY2hlY2thc20vY2hlY2thc20uaCB8ICAxICsKIHRlc3Rz L2NoZWNrYXNtL3ZwNmRzcC5jICAgfCA5MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIHRlc3RzL2ZhdGUvY2hlY2thc20ubWFrICAgfCAgMSArCiA1IGZpbGVzIGNoYW5n ZWQsIDk5IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9jaGVja2FzbS92 cDZkc3AuYwoKZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrYXNtL01ha2VmaWxlIGIvdGVzdHMvY2hl Y2thc20vTWFrZWZpbGUKaW5kZXggNjYzNmJjNzc3NC4uMzc2MmMwZDgzYiAxMDA2NDQKLS0tIGEv dGVzdHMvY2hlY2thc20vTWFrZWZpbGUKKysrIGIvdGVzdHMvY2hlY2thc20vTWFrZWZpbGUKQEAg LTUwLDYgKzUwLDcgQEAgQVZDT0RFQ09CSlMtJChDT05GSUdfVVRWSURFT19ERUNPREVSKSAgICs9 IHV0dmlkZW9kc3AubwogQVZDT0RFQ09CSlMtJChDT05GSUdfVjIxMF9ERUNPREVSKSAgICAgICs9 IHYyMTBkZWMubwogQVZDT0RFQ09CSlMtJChDT05GSUdfVjIxMF9FTkNPREVSKSAgICAgICs9IHYy MTBlbmMubwogQVZDT0RFQ09CSlMtJChDT05GSUdfVk9SQklTX0RFQ09ERVIpICAgICs9IHZvcmJp c2RzcC5vCitBVkNPREVDT0JKUy0kKENPTkZJR19WUDZfREVDT0RFUikgICAgICAgKz0gdnA2ZHNw Lm8KIEFWQ09ERUNPQkpTLSQoQ09ORklHX1ZQOV9ERUNPREVSKSAgICAgICArPSB2cDlkc3Aubwog QVZDT0RFQ09CSlMtJChDT05GSUdfVlZDX0RFQ09ERVIpICAgICAgICs9IHZ2Y19hbGYubyB2dmNf bWMubyB2dmNfc2FvLm8KIApkaWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2thc20vY2hlY2thc20uYyBi L3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMKaW5kZXggMjBkOGYxOTc1Ny4uOGM2NDY4NGZhMyAx MDA2NDQKLS0tIGEvdGVzdHMvY2hlY2thc20vY2hlY2thc20uYworKysgYi90ZXN0cy9jaGVja2Fz bS9jaGVja2FzbS5jCkBAIC0yNTQsNiArMjU0LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAg ICAgI2lmIENPTkZJR19WUDNEU1AKICAgICAgICAgeyAidnAzZHNwIiwgY2hlY2thc21fY2hlY2tf dnAzZHNwIH0sCiAgICAgI2VuZGlmCisgICAgI2lmIENPTkZJR19WUDZfREVDT0RFUgorICAgICAg ICB7ICJ2cDZkc3AiLCBjaGVja2FzbV9jaGVja192cDZkc3AgfSwKKyAgICAjZW5kaWYKICAgICAj aWYgQ09ORklHX1ZQOERTUAogICAgICAgICB7ICJ2cDhkc3AiLCBjaGVja2FzbV9jaGVja192cDhk c3AgfSwKICAgICAjZW5kaWYKZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmgg Yi90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oCmluZGV4IDQ1Y2QyM2NhYzQuLmJkMzNhYmEyNjMg MTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmgKKysrIGIvdGVzdHMvY2hlY2th c20vY2hlY2thc20uaApAQCAtMTU0LDYgKzE1NCw3IEBAIHZvaWQgY2hlY2thc21fY2hlY2tfdmZf aGZsaXAodm9pZCk7CiB2b2lkIGNoZWNrYXNtX2NoZWNrX3ZmX3RocmVzaG9sZCh2b2lkKTsKIHZv aWQgY2hlY2thc21fY2hlY2tfdmZfc29iZWwodm9pZCk7CiB2b2lkIGNoZWNrYXNtX2NoZWNrX3Zw M2RzcCh2b2lkKTsKK3ZvaWQgY2hlY2thc21fY2hlY2tfdnA2ZHNwKHZvaWQpOwogdm9pZCBjaGVj a2FzbV9jaGVja192cDhkc3Aodm9pZCk7CiB2b2lkIGNoZWNrYXNtX2NoZWNrX3ZwOWRzcCh2b2lk KTsKIHZvaWQgY2hlY2thc21fY2hlY2tfdmlkZW9kc3Aodm9pZCk7CmRpZmYgLS1naXQgYS90ZXN0 cy9jaGVja2FzbS92cDZkc3AuYyBiL3Rlc3RzL2NoZWNrYXNtL3ZwNmRzcC5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmE1ZjFjOWMyZmMKLS0tIC9kZXYvbnVsbAorKysg Yi90ZXN0cy9jaGVja2FzbS92cDZkc3AuYwpAQCAtMCwwICsxLDkzIEBACisvKgorICogVGhpcyBm aWxlIGlzIHBhcnQgb2YgRkZtcGVnLgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICog dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGlj ZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog RkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZworICogd2l0aCBGRm1wZWc7IGlmIG5v dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKKyAqIDUxIEZy YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EuCisg Ki8KKworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPHN0ZGRlZi5oPgorI2luY2x1ZGUg PHN0cmluZy5oPgorCisjaW5jbHVkZSAiY2hlY2thc20uaCIKKyNpbmNsdWRlICJsaWJhdnV0aWwv aW50cmVhZHdyaXRlLmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL21hY3Jvcy5oIgorI2luY2x1ZGUg ImxpYmF2dXRpbC9tZW1faW50ZXJuYWwuaCIKKyNpbmNsdWRlICJsaWJhdmNvZGVjL3ZwNmRhdGEu aCIKKyNpbmNsdWRlICJsaWJhdmNvZGVjL3ZwNTZkc3AuaCIKKworI2RlZmluZSByYW5kb21pemVf YnVmZmVyKGJ1ZikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBkbyB7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgICAgIGZvciAoc2l6ZV90IGsgPSAwOyBrIDwgKHNpemVvZihidWYpICYgfjMpOyBrICs9 IDQpICAgICAgXAorICAgICAgICAgICAgQVZfV04zMkEoYnVmICsgaywgcm5kKCkpOyAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgZm9yIChzaXplX3QgayA9IHNpemVvZihidWYp ICYgfjM7IGsgPCBzaXplb2YoYnVmKTsgKytrKSBcCisgICAgICAgICAgICBidWZba10gPSBybmQo KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gd2hpbGUgKDAp CisKKwordm9pZCBjaGVja2FzbV9jaGVja192cDZkc3Aodm9pZCkKK3sKKyAgICBlbnVtIHsKKyAg ICAgICAgQkxPQ0tfU0laRV8xRCAgPSA4LAorICAgICAgICBTUkNfUk9XU19BQk9WRSA9IDEsCisg ICAgICAgIFNSQ19ST1dTX0JFTE9XID0gMiwKKyAgICAgICAgU1JDX0NPTFNfTEVGVCAgPSAxLAor ICAgICAgICBTUkNfQ09MU19SSUdIVCA9IDIsCisgICAgICAgIFNSQ19ST1dTICAgICAgID0gU1JD X1JPV1NfQUJPVkUgKyBCTE9DS19TSVpFXzFEICsgU1JDX1JPV1NfQkVMT1csCisgICAgICAgIFNS Q19ST1dfU0laRSAgID0gU1JDX0NPTFNfTEVGVCAgKyBCTE9DS19TSVpFXzFEICsgU1JDX0NPTFNf UklHSFQsCisgICAgICAgIE1BWF9TVFJJREUgICAgID0gNjQsICAgIC8vLzwgYXJiaXRyYXJ5Cisg ICAgICAgIFNSQ19CVUZfU0laRSAgID0gKFNSQ19ST1dTIC0gMSkgKiBNQVhfU1RSSURFICsgU1JD X1JPV19TSVpFICsgNyAvKiB0byB2YXJ5IG1pc2FsaWdubWVudCAqLywKKyAgICAgICAgRFNUX0JV Rl9TSVpFICAgPSAoQkxPQ0tfU0laRV8xRCAtIDEpICogTUFYX1NUUklERSArIEJMT0NLX1NJWkVf MUQsCisgICAgfTsKKyAgICBWUDZEU1BDb250ZXh0IHZwNmRzcDsKKworICAgIGZmX3ZwNmRzcF9p bml0KCZ2cDZkc3ApOworCisgICAgZGVjbGFyZV9mdW5jKHZvaWQsIHVpbnQ4X3QgKmRzdCwgY29u c3QgdWludDhfdCAqc3JjLCBwdHJkaWZmX3Qgc3RyaWRlLAorICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBpbnQxNl90ICpoX3dlaWdodHMsIGNvbnN0IGludDE2X3QgKnZfd2VpZ2h0cyk7CisK KyAgICBpZiAoY2hlY2tfZnVuYyh2cDZkc3AudnA2X2ZpbHRlcl9kaWFnNCwgImZpbHRlcl9kaWFn NCIpKSB7CisgICAgICAgIERFQ0xBUkVfQUxJR05FRCg4LCB1aW50OF90LCBkc3RidWZfcmVmKVtE U1RfQlVGX1NJWkVdOworICAgICAgICBERUNMQVJFX0FMSUdORUQoOCwgdWludDhfdCwgZHN0YnVm X25ldylbRFNUX0JVRl9TSVpFXTsKKyAgICAgICAgREVDTEFSRV9BTElHTkVEKDgsIHVpbnQ4X3Qs IHNyY2J1ZilbU1JDX0JVRl9TSVpFXTsKKworICAgICAgICByYW5kb21pemVfYnVmZmVyKGRzdGJ1 Zl9yZWYpOworICAgICAgICByYW5kb21pemVfYnVmZmVyKHNyY2J1Zik7CisgICAgICAgIG1lbWNw eShkc3RidWZfbmV3LCBkc3RidWZfcmVmLCBzaXplb2YoZHN0YnVmX25ldykpOworCisgICAgICAg IHB0cmRpZmZfdCAgc3RyaWRlID0gKHJuZCgpICUgKE1BWF9TVFJJREUgLyAxNikgKyAxKSAqIDE2 OworICAgICAgICBjb25zdCB1aW50OF90ICpzcmMgPSBzcmNidWYgKyBTUkNfQ09MU19MRUZUICsg cm5kKCkgJSA4VTsKKyAgICAgICAgdWludDhfdCAqZHN0X25ldyA9IGRzdGJ1Zl9uZXcsICpkc3Rf cmVmID0gZHN0YnVmX3JlZjsKKworICAgICAgICBpZiAocm5kKCkgJiAxKSB7CisgICAgICAgICAg ICBkc3RfbmV3ICs9IChCTE9DS19TSVpFXzFEIC0gMSkgKiBzdHJpZGU7CisgICAgICAgICAgICBk c3RfcmVmICs9IChCTE9DS19TSVpFXzFEIC0gMSkgKiBzdHJpZGU7CisgICAgICAgICAgICBzcmMg ICAgICs9IChTUkNfUk9XUyAtIDEpICogc3RyaWRlOworICAgICAgICAgICAgc3RyaWRlICAqPSAt MTsKKyAgICAgICAgfQorICAgICAgICBzcmMgKz0gU1JDX1JPV1NfQUJPVkUgKiBzdHJpZGU7CisK KyAgICAgICAgdW5zaWduZWQgc2VsZWN0ID0gcm5kKCkgJSBGRl9BUlJBWV9FTEVNUyh2cDZfYmxv Y2tfY29weV9maWx0ZXIpOworICAgICAgICB1bnNpZ25lZCB4OCA9IDEgKyBybmQoKSAlIChGRl9B UlJBWV9FTEVNUyh2cDZfYmxvY2tfY29weV9maWx0ZXJbMF0pIC0gMSk7CisgICAgICAgIHVuc2ln bmVkIHk4ID0gMSArIHJuZCgpICUgKEZGX0FSUkFZX0VMRU1TKHZwNl9ibG9ja19jb3B5X2ZpbHRl clswXSkgLSAxKTsKKyAgICAgICAgY29uc3QgaW50MTZfdCAqaF93ZWlnaHRzID0gdnA2X2Jsb2Nr X2NvcHlfZmlsdGVyW3NlbGVjdF1beDhdOworICAgICAgICBjb25zdCBpbnQxNl90ICp2X3dlaWdo dHMgPSB2cDZfYmxvY2tfY29weV9maWx0ZXJbc2VsZWN0XVt5OF07CisKKyAgICAgICAgY2FsbF9y ZWYoZHN0X3JlZiwgc3JjLCBzdHJpZGUsIGhfd2VpZ2h0cywgdl93ZWlnaHRzKTsKKyAgICAgICAg Y2FsbF9uZXcoZHN0X25ldywgc3JjLCBzdHJpZGUsIGhfd2VpZ2h0cywgdl93ZWlnaHRzKTsKKyAg ICAgICAgaWYgKG1lbWNtcChkc3RidWZfbmV3LCBkc3RidWZfcmVmLCBzaXplb2YoZHN0YnVmX25l dykpKQorICAgICAgICAgICAgZmFpbCgpOworICAgICAgICBiZW5jaF9uZXcoZHN0X25ldywgc3Jj LCBzdHJpZGUsIGhfd2VpZ2h0cywgdl93ZWlnaHRzKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS90 ZXN0cy9mYXRlL2NoZWNrYXNtLm1hayBiL3Rlc3RzL2ZhdGUvY2hlY2thc20ubWFrCmluZGV4IDJi ZTg4MGM4ZGIuLmYxODJlZmRlNDYgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ZhdGUvY2hlY2thc20ubWFr CisrKyBiL3Rlc3RzL2ZhdGUvY2hlY2thc20ubWFrCkBAIC03Niw2ICs3Niw3IEBAIEZBVEVfQ0hF Q0tBU00gPSBmYXRlLWNoZWNrYXNtLWFhY2VuY2RzcCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKICAgICAgICAgICAgICAgICBmYXRlLWNoZWNrYXNtLXZpZGVvZHNwICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICBmYXRlLWNoZWNrYXNt LXZvcmJpc2RzcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAg ICAgICBmYXRlLWNoZWNrYXNtLXZwM2RzcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgICAgICAgICBmYXRlLWNoZWNrYXNtLXZwNmRzcCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICBmYXRlLWNoZWNrYXNtLXZw OGRzcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAg ICBmYXRlLWNoZWNrYXNtLXZwOWRzcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKICAgICAgICAgICAgICAgICBmYXRlLWNoZWNrYXNtLXZ2Y19hbGYgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKLS0gCjIuNTIuMAoKCkZyb20gNDNjMGIzNTJmYmNmNmMxNTU2 YzY2MmU0ZjU1ZmNlZTljMGM0NWE1MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5k cmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFR1 ZSwgMjUgTm92IDIwMjUgMTA6NTc6MzkgKzAxMDAKU3ViamVjdDogW1BBVENIIDExNi8zMDRdIGF2 Y29kZWMveDg2L3ZwNmRzcDogRml4IG91dGRhdGVkIGNvbW1lbnQKCkZvcmdvdHRlbiBpbiA2Y2Iz ZWU4MGIzYjU4ZDY5MmE3MjJmYjM4ZWUwNWYxNzBhZThiMGQyLgoKUmV2aWV3ZWQtYnk6IEx5bm5l IDxkZXZAbHlubmUuZWU+ClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVh cy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIGxpYmF2Y29kZWMveDg2L3ZwNmRzcC5hc20g fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni92cDZkc3AuYXNtIGIvbGliYXZjb2RlYy94ODYvdnA2 ZHNwLmFzbQppbmRleCAwMTA2NTQxNzM0Li42MTMzNmY2NDY1IDEwMDY0NAotLS0gYS9saWJhdmNv ZGVjL3g4Ni92cDZkc3AuYXNtCisrKyBiL2xpYmF2Y29kZWMveDg2L3ZwNmRzcC5hc20KQEAgLTEs NSArMSw1IEBACiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi07KiBNTVgvU1NFMi1vcHRpbWl6ZWQg ZnVuY3Rpb25zIGZvciB0aGUgVlA2IGRlY29kZXIKKzsqIFNTRTItb3B0aW1pemVkIGZ1bmN0aW9u cyBmb3IgdGhlIFZQNiBkZWNvZGVyCiA7KiBDb3B5cmlnaHQgKEMpIDIwMDkgIFNlYmFzdGllbiBM dWNhcyA8c2ViYXN0aWVuLmx1Y2FzQGdtYWlsLmNvbT4KIDsqIENvcHlyaWdodCAoQykgMjAwOSAg WnV4eSBNZW5nIDx6dXh5Lm1lbmdAZ21haWwuY29tPgogOyoKLS0gCjIuNTIuMAoKCkZyb20gZDZj YmYxMmZhN2NjYmIzN2Y4NjI5NzFlZDRiOTI5N2FlNDEwZDFhMSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9v ay5jb20+CkRhdGU6IFR1ZSwgMjUgTm92IDIwMjUgMTE6MTU6MTUgKzAxMDAKU3ViamVjdDogW1BB VENIIDExNy8zMDRdIGF2Y29kZWMveDg2L3ZwNmRzcDogRG9uJ3QgYWxpZ24gdGhlIHN0YWNrIG1h bnVhbGx5CgpGb3IgbW9zdCBzeXN0ZW1zIChwYXJ0aWN1bGFybHkgYWxsIHg2NCksIHRoZSBzdGFj ayBpcyBhbHJlYWR5Cmd1YXJhbnRlZWQgdG8gYmUgc3VmZmljaWVudGx5IGFsaWduZWQuIFNvIGp1 c3QgdXNlIHg4NmluYydzCnN0YWNrIGZlYXR1cmUgd2hpY2ggZG9lcyB0aGUgcmlnaHQgdGhpbmcu CgpSZXZpZXdlZC1ieTogTHlubmUgPGRldkBseW5uZS5lZT4KU2lnbmVkLW9mZi1ieTogQW5kcmVh cyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGliYXZj b2RlYy94ODYvdnA2ZHNwLmFzbSB8IDE1ICsrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDUgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2Rl Yy94ODYvdnA2ZHNwLmFzbSBiL2xpYmF2Y29kZWMveDg2L3ZwNmRzcC5hc20KaW5kZXggNjEzMzZm NjQ2NS4uYTkzNDBlZDA1YiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvdnA2ZHNwLmFzbQor KysgYi9saWJhdmNvZGVjL3g4Ni92cDZkc3AuYXNtCkBAIC02MiwxMSArNjIsNyBAQCBTRUNUSU9O IC50ZXh0CiA7IHZvaWQgZmZfdnA2X2ZpbHRlcl9kaWFnNF88b3B0Pih1aW50OF90ICpkc3QsIHVp bnQ4X3QgKnNyYywgcHRyZGlmZl90IHN0cmlkZSwKIDsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGludDE2X3QgaF93ZWlnaHRbNF0sIGNvbnN0IGludDE2X3Qgdl93ZWlnaHRz WzRdKQogSU5JVF9YTU0gc3NlMgotY2dsb2JhbCB2cDZfZmlsdGVyX2RpYWc0LCA1LCA3LCA4Ci0g ICAgbW92ICAgICAgICAgIHI1LCByc3AgICAgICAgICA7IGJhY2t1cCBzdGFjayBwb2ludGVyCi0g ICAgYW5kICAgICAgICAgcnNwLCB+KG1tc2l6ZS0xKSA7IGFsaWduIHN0YWNrCi0gICAgc3ViICAg ICAgICAgcnNwLCA4KjExCi0KK2NnbG9iYWwgdnA2X2ZpbHRlcl9kaWFnNCwgNSwgNiwgOCwgLTgq MTEKICAgICBzdWIgICAgICAgICAgcjEsIHIyCiAKICAgICBweG9yICAgICAgICAgbTcsIG03CkBA IC03NCwyNSArNzAsMjQgQEAgY2dsb2JhbCB2cDZfZmlsdGVyX2RpYWc0LCA1LCA3LCA4CiAgICAg U1BMQVQ0UkVHUwogCiAgICAgbW92ICAgICAgICAgIHIzLCByc3AKLSAgICBtb3YgICAgICAgICAg cjYsIDExCisgICAgbW92ICAgICAgICAgcjVkLCAxMQogLm5leHRyb3c6CiAgICAgRElBRzQgICAg ICAgIHIxLCAtMSwgMCwgMSwgMiwgcjMKICAgICBhZGQgICAgICAgICAgcjMsIDgKICAgICBhZGQg ICAgICAgICAgcjEsIHIyCi0gICAgZGVjICAgICAgICAgIHI2CisgICAgZGVjICAgICAgICAgcjVk CiAgICAgam56IC5uZXh0cm93CiAKICAgICBtb3ZxICAgICAgICAgbTMsIFtyNF0KICAgICBTUExB VDRSRUdTCiAKICAgICBsZWEgICAgICAgICAgcjMsIFtyc3ArOF0KLSAgICBtb3YgICAgICAgICAg cjYsIDgKKyAgICBtb3YgICAgICAgICByMWQsIDgKIC5uZXh0Y29sOgogICAgIERJQUc0ICAgICAg ICByMywgLTgsIDAsIDgsIDE2LCByMAogICAgIGFkZCAgICAgICAgICByMywgOAogICAgIGFkZCAg ICAgICAgICByMCwgcjIKLSAgICBkZWMgICAgICAgICAgcjYKKyAgICBkZWMgICAgICAgICByMWQK ICAgICBqbnogLm5leHRjb2wKIAotICAgIG1vdiAgICAgICAgIHJzcCwgcjUgICAgICAgICAgOyBy ZXN0b3JlIHN0YWNrIHBvaW50ZXIKICAgICBSRVQKLS0gCjIuNTIuMAoKCkZyb20gZGJiN2ZkOGNi ZTVjZDc5Y2EzNWZlN2EwMGY4NzkzZjk2YTIwNmFjNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+ CkRhdGU6IFR1ZSwgMjUgTm92IDIwMjUgMTE6MjI6NDUgKzAxMDAKU3ViamVjdDogW1BBVENIIDEx OC8zMDRdIGF2Y29kZWMveDg2L3ZwNmRzcDogU2ltcGxpZnkgc3BsYXR0aW5nCgpSZXZpZXdlZC1i eTogTHlubmUgPGRldkBseW5uZS5lZT4KU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0 IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGliYXZjb2RlYy94ODYvdnA2 ZHNwLmFzbSB8IDEzICsrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMo KyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvdnA2ZHNwLmFz bSBiL2xpYmF2Y29kZWMveDg2L3ZwNmRzcC5hc20KaW5kZXggYTkzNDBlZDA1Yi4uODNiMjZkMDNj ZCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvdnA2ZHNwLmFzbQorKysgYi9saWJhdmNvZGVj L3g4Ni92cDZkc3AuYXNtCkBAIC00OSwxNCArNDksMTEgQEAgU0VDVElPTiAudGV4dAogJWVuZG1h Y3JvCiAKICVtYWNybyBTUExBVDRSRUdTIDAKLSAgICBwc2h1Zmx3ICAgICAgbTQsIG0zLCAweDAK LSAgICBwc2h1Zmx3ICAgICAgbTUsIG0zLCAweDU1Ci0gICAgcHNodWZsdyAgICAgIG02LCBtMywg MHhBQQotICAgIHBzaHVmbHcgICAgICBtMywgbTMsIDB4RkYKLSAgICBwdW5wY2tscWRxICAgbTQs IG00Ci0gICAgcHVucGNrbHFkcSAgIG01LCBtNQotICAgIHB1bnBja2xxZHEgICBtNiwgbTYKLSAg ICBwdW5wY2tscWRxICAgbTMsIG0zCisgICAgcHVucGNrbHdkICAgIG0zLCBtMworICAgIHBzaHVm ZCAgICAgICBtNCwgbTMsIDB4MAorICAgIHBzaHVmZCAgICAgICBtNSwgbTMsIDB4NTUKKyAgICBw c2h1ZmQgICAgICAgbTYsIG0zLCAweEFBCisgICAgcHNodWZkICAgICAgIG0zLCBtMywgMHhGRgog JWVuZG1hY3JvCiAKIDsgdm9pZCBmZl92cDZfZmlsdGVyX2RpYWc0XzxvcHQ+KHVpbnQ4X3QgKmRz dCwgdWludDhfdCAqc3JjLCBwdHJkaWZmX3Qgc3RyaWRlLAotLSAKMi41Mi4wCgoKRnJvbSBkZGE0 NzQwYTVkMmY0ZjA4YWZmY2M0ZDkxYjMyZWJlMGYxNGFlYTI2IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29r LmNvbT4KRGF0ZTogVHVlLCAyNSBOb3YgMjAyNSAxMToyNzoxNiArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMTE5LzMwNF0gYXZjb2RlYy94ODYvdnA2ZHNwOiBBdm9pZCBzYXR1cmF0ZWQgYWRkaXRpb24K Ck9ubHkgdGhlIHR3byBtaWRkbGUgY29lZmZpY2llbnRzIGFyZSBzbyBodWdlIHRoYXQgb3ZlcmZs b3cgY2FuIGhhcHBlbi4KClJldmlld2VkLWJ5OiBMeW5uZSA8ZGV2QGx5bm5lLmVlPgpTaWduZWQt b2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNv bT4KLS0tCiBsaWJhdmNvZGVjL3g4Ni92cDZkc3AuYXNtIHwgMiArLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94 ODYvdnA2ZHNwLmFzbSBiL2xpYmF2Y29kZWMveDg2L3ZwNmRzcC5hc20KaW5kZXggODNiMjZkMDNj ZC4uYjliNTYyZjg0ZiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvdnA2ZHNwLmFzbQorKysg Yi9saWJhdmNvZGVjL3g4Ni92cDZkc3AuYXNtCkBAIC0zOCwxMSArMzgsMTEgQEAgU0VDVElPTiAu dGV4dAogICAgIG1vdnEgICAgICAgICAgbTIsIFslMSslNV0KICAgICBwdW5wY2tsYncgICAgIG0x LCBtNwogICAgIHB1bnBja2xidyAgICAgbTIsIG03CisgICAgcGFkZHcgICAgICAgICBtMCwgW3B3 XzY0XSAgICA7IEFkZCA2NAogICAgIHBtdWxsdyAgICAgICAgbTEsIG02ICAgICAgICAgOyBzcmNb eCs4IF0gKiBiaXdlaWdodCBbMl0KICAgICBwbXVsbHcgICAgICAgIG0yLCBtMyAgICAgICAgIDsg c3JjW3grMTZdICogYml3ZWlnaHQgWzNdCiAgICAgcGFkZHcgICAgICAgICBtMSwgbTIKICAgICBw YWRkc3cgICAgICAgIG0wLCBtMQotICAgIHBhZGRzdyAgICAgICAgbTAsIFtwd182NF0gICAgOyBB ZGQgNjQKICAgICBwc3JhdyAgICAgICAgIG0wLCA3CiAgICAgcGFja3Vzd2IgICAgICBtMCwgbTAK ICAgICBtb3ZxICAgICAgICBbJTZdLCBtMAotLSAKMi41Mi4wCgoKRnJvbSAxMTlhMTllMjU4Mjhh NjkyNDgyN2UwODEzNDY3ZTBlZTkzZTNjYmExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0 ZTogVHVlLCAyNSBOb3YgMjAyNSAxMTo0Njo0MCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTIwLzMw NF0gYXZjb2RlYy94ODYvdnA2ZHNwOiBBdm9pZCBwYWNraW5nK3VucGFja2luZwoKU3RvcmUgdGhl IGludGVybWVkaWF0ZSB2YWx1ZXMgYXMgd29yZHMsIGNsaXBwZWQgdG8gdGhlIDAuLjI1NSByYW5n ZQppbnN0ZWFkLgoKT2xkIGJlbmNobWFya3M6CmZpbHRlcl9kaWFnNF9jOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAzNTMuNCAoIDEuMDB4KQpmaWx0ZXJfZGlhZzRfc3Nl MjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU3LjUgKCA2LjE1eCkKCk5l dyBiZW5jaG1hcmtzOgpmaWx0ZXJfZGlhZzRfYzogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMzUwLjYgKCAxLjAweCkKZmlsdGVyX2RpYWc0X3NzZTI6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA1NS4xICggNi4zNngpCgpSZXZpZXdlZC1ieTogTHlu bmUgPGRldkBseW5uZS5lZT4KU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRy ZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGliYXZjb2RlYy94ODYvdnA2ZHNwLmFz bSB8IDI5ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjIg aW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4 Ni92cDZkc3AuYXNtIGIvbGliYXZjb2RlYy94ODYvdnA2ZHNwLmFzbQppbmRleCBiOWI1NjJmODRm Li4xZjc0NDNkYjY5IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4Ni92cDZkc3AuYXNtCisrKyBi L2xpYmF2Y29kZWMveDg2L3ZwNmRzcC5hc20KQEAgLTI2LDI2ICsyNiw0MSBAQCBjZXh0ZXJuIHB3 XzY0CiAKIFNFQ1RJT04gLnRleHQKIAotJW1hY3JvIERJQUc0IDYKKyVtYWNybyBESUFHNCA3Cisl aWYgJTcKKyAgICBtb3ZhICAgICAgICAgIG0wLCBbJTErJTJdCisgICAgbW92YSAgICAgICAgICBt MSwgWyUxKyUzXQorJWVsc2UKICAgICBtb3ZxICAgICAgICAgIG0wLCBbJTErJTJdCiAgICAgbW92 cSAgICAgICAgICBtMSwgWyUxKyUzXQogICAgIHB1bnBja2xidyAgICAgbTAsIG03CiAgICAgcHVu cGNrbGJ3ICAgICBtMSwgbTcKKyVlbmRpZgogICAgIHBtdWxsdyAgICAgICAgbTAsIG00ICAgICAg ICAgOyBzcmNbeC04IF0gKiBiaXdlaWdodCBbMF0KICAgICBwbXVsbHcgICAgICAgIG0xLCBtNSAg ICAgICAgIDsgc3JjW3ggICBdICogYml3ZWlnaHQgWzFdCiAgICAgcGFkZHcgICAgICAgICBtMCwg bTEKKyVpZiAlNworICAgIG1vdmEgICAgICAgICAgbTEsIFslMSslNF0KKyAgICBtb3ZhICAgICAg ICAgIG0yLCBbJTErJTVdCislZWxzZQogICAgIG1vdnEgICAgICAgICAgbTEsIFslMSslNF0KICAg ICBtb3ZxICAgICAgICAgIG0yLCBbJTErJTVdCiAgICAgcHVucGNrbGJ3ICAgICBtMSwgbTcKICAg ICBwdW5wY2tsYncgICAgIG0yLCBtNworJWVuZGlmCiAgICAgcGFkZHcgICAgICAgICBtMCwgW3B3 XzY0XSAgICA7IEFkZCA2NAogICAgIHBtdWxsdyAgICAgICAgbTEsIG02ICAgICAgICAgOyBzcmNb eCs4IF0gKiBiaXdlaWdodCBbMl0KICAgICBwbXVsbHcgICAgICAgIG0yLCBtMyAgICAgICAgIDsg c3JjW3grMTZdICogYml3ZWlnaHQgWzNdCiAgICAgcGFkZHcgICAgICAgICBtMSwgbTIKICAgICBw YWRkc3cgICAgICAgIG0wLCBtMQogICAgIHBzcmF3ICAgICAgICAgbTAsIDcKKyVpZiAlNwogICAg IHBhY2t1c3diICAgICAgbTAsIG0wCiAgICAgbW92cSAgICAgICAgWyU2XSwgbTAKKyVlbHNlCisg ICAgcG1heHN3ICAgICAgICBtMCwgbTcgICAgICAgICA7IGNsaXAgdG8gMC0yNTUgcmFuZ2UKKyAg ICBtb3ZhICAgICAgICBbJTZdLCBtMAorJWVuZGlmCiAlZW5kbWFjcm8KIAogJW1hY3JvIFNQTEFU NFJFR1MgMApAQCAtNTksNyArNzQsNyBAQCBTRUNUSU9OIC50ZXh0CiA7IHZvaWQgZmZfdnA2X2Zp bHRlcl9kaWFnNF88b3B0Pih1aW50OF90ICpkc3QsIHVpbnQ4X3QgKnNyYywgcHRyZGlmZl90IHN0 cmlkZSwKIDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludDE2X3QgaF93 ZWlnaHRbNF0sIGNvbnN0IGludDE2X3Qgdl93ZWlnaHRzWzRdKQogSU5JVF9YTU0gc3NlMgotY2ds b2JhbCB2cDZfZmlsdGVyX2RpYWc0LCA1LCA2LCA4LCAtOCoxMQorY2dsb2JhbCB2cDZfZmlsdGVy X2RpYWc0LCA1LCA2LCA4LCAtMTYqMTEKICAgICBzdWIgICAgICAgICAgcjEsIHIyCiAKICAgICBw eG9yICAgICAgICAgbTcsIG03CkBAIC02OSw4ICs4NCw4IEBAIGNnbG9iYWwgdnA2X2ZpbHRlcl9k aWFnNCwgNSwgNiwgOCwgLTgqMTEKICAgICBtb3YgICAgICAgICAgcjMsIHJzcAogICAgIG1vdiAg ICAgICAgIHI1ZCwgMTEKIC5uZXh0cm93OgotICAgIERJQUc0ICAgICAgICByMSwgLTEsIDAsIDEs IDIsIHIzCi0gICAgYWRkICAgICAgICAgIHIzLCA4CisgICAgRElBRzQgICAgICAgIHIxLCAtMSwg MCwgMSwgMiwgcjMsIDAKKyAgICBhZGQgICAgICAgICAgcjMsIDE2CiAgICAgYWRkICAgICAgICAg IHIxLCByMgogICAgIGRlYyAgICAgICAgIHI1ZAogICAgIGpueiAubmV4dHJvdwpAQCAtNzgsMTEg KzkzLDExIEBAIGNnbG9iYWwgdnA2X2ZpbHRlcl9kaWFnNCwgNSwgNiwgOCwgLTgqMTEKICAgICBt b3ZxICAgICAgICAgbTMsIFtyNF0KICAgICBTUExBVDRSRUdTCiAKLSAgICBsZWEgICAgICAgICAg cjMsIFtyc3ArOF0KKyAgICBsZWEgICAgICAgICAgcjMsIFtyc3ArMTZdCiAgICAgbW92ICAgICAg ICAgcjFkLCA4CiAubmV4dGNvbDoKLSAgICBESUFHNCAgICAgICAgcjMsIC04LCAwLCA4LCAxNiwg cjAKLSAgICBhZGQgICAgICAgICAgcjMsIDgKKyAgICBESUFHNCAgICAgICAgcjMsIC0xNiwgMCwg MTYsIDMyLCByMCwgMQorICAgIGFkZCAgICAgICAgICByMywgMTYKICAgICBhZGQgICAgICAgICAg cjAsIHIyCiAgICAgZGVjICAgICAgICAgcjFkCiAgICAgam56IC5uZXh0Y29sCi0tIAoyLjUyLjAK CgpGcm9tIDBlOTQ2M2I2NTNhZGIwMmRjMzU4OTY2NmE1YmMyMTVjNTZkMmI0ZmMgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhh cmR0QG91dGxvb2suY29tPgpEYXRlOiBNb24sIDI0IE5vdiAyMDI1IDE3OjQ1OjM2ICswMTAwClN1 YmplY3Q6IFtQQVRDSCAxMjEvMzA0XSBhdmNvZGVjL2Nic19hcHY6IFVzZQogZmZfY2JzX3tyZWFk LHdyaXRlfV9zaW1wbGVfdW5zaWduZWQoKQoKQXZvaWRzIGNoZWNrcyBhbmQgbWFrZXMgdGhlIGNh bGxzIGNoZWFwZXIuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMu cmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KLS0tCiBsaWJhdmNvZGVjL2Nic19hcHYuYyB8IDE1ICsr KysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9jYnNfYXB2LmMgYi9saWJhdmNvZGVjL2Ni c19hcHYuYwppbmRleCBhMWU1NDZjOTJlLi43YTA2MjQ0YzY5IDEwMDY0NAotLS0gYS9saWJhdmNv ZGVjL2Nic19hcHYuYworKysgYi9saWJhdmNvZGVjL2Nic19hcHYuYwpAQCAtNjcsOCArNjcsNiBA QCBzdGF0aWMgdm9pZCBjYnNfYXB2X2Rlcml2ZV90aWxlX2luZm8oQ29kZWRCaXRzdHJlYW1Db250 ZXh0ICpjdHgsCiAKICNkZWZpbmUgdSh3aWR0aCwgbmFtZSwgcmFuZ2VfbWluLCByYW5nZV9tYXgp IFwKICAgICB4dSh3aWR0aCwgbmFtZSwgY3VycmVudC0+bmFtZSwgcmFuZ2VfbWluLCByYW5nZV9t YXgsIDAsICkKLSNkZWZpbmUgdWIod2lkdGgsIG5hbWUpIFwKLSAgICB4dSh3aWR0aCwgbmFtZSwg Y3VycmVudC0+bmFtZSwgMCwgTUFYX1VJTlRfQklUUyh3aWR0aCksIDAsICkKICNkZWZpbmUgdXMo d2lkdGgsIG5hbWUsIHJhbmdlX21pbiwgcmFuZ2VfbWF4LCBzdWJzLCAuLi4pIFwKICAgICB4dSh3 aWR0aCwgbmFtZSwgY3VycmVudC0+bmFtZSwgcmFuZ2VfbWluLCByYW5nZV9tYXgsICBzdWJzLCBf X1ZBX0FSR1NfXykKICNkZWZpbmUgdWJzKHdpZHRoLCBuYW1lLCBzdWJzLCAuLi4pIFwKQEAgLTg2 LDYgKzg0LDEyIEBAIHN0YXRpYyB2b2lkIGNic19hcHZfZGVyaXZlX3RpbGVfaW5mbyhDb2RlZEJp dHN0cmVhbUNvbnRleHQgKmN0eCwKICNkZWZpbmUgUldDb250ZXh0IEdldEJpdENvbnRleHQKICNk ZWZpbmUgRlVOQyhuYW1lKSBjYnNfYXB2X3JlYWRfICMjIG5hbWUKIAorI2RlZmluZSB1Yih3aWR0 aCwgbmFtZSkgZG8geyBcCisgICAgICAgIHVpbnQzMl90IHZhbHVlOyBcCisgICAgICAgIENIRUNL KENCU19GVU5DKHJlYWRfc2ltcGxlX3Vuc2lnbmVkKShjdHgsIHJ3LCB3aWR0aCwgI25hbWUsIFwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ2YWx1ZSkpOyBc CisgICAgICAgIGN1cnJlbnQtPm5hbWUgPSB2YWx1ZTsgXAorICAgIH0gd2hpbGUgKDApCiAjZGVm aW5lIHh1KHdpZHRoLCBuYW1lLCB2YXIsIHJhbmdlX21pbiwgcmFuZ2VfbWF4LCBzdWJzLCAuLi4p IGRvIHsgXAogICAgICAgICB1aW50MzJfdCB2YWx1ZTsgXAogICAgICAgICBDSEVDSyhDQlNfRlVO QyhyZWFkX3Vuc2lnbmVkKShjdHgsIHJ3LCB3aWR0aCwgI25hbWUsIFwKQEAgLTEwNiw2ICsxMTAs NyBAQCBzdGF0aWMgdm9pZCBjYnNfYXB2X2Rlcml2ZV90aWxlX2luZm8oQ29kZWRCaXRzdHJlYW1D b250ZXh0ICpjdHgsCiAjdW5kZWYgUkVBRFdSSVRFCiAjdW5kZWYgUldDb250ZXh0CiAjdW5kZWYg RlVOQworI3VuZGVmIHViCiAjdW5kZWYgeHUKICN1bmRlZiBpbmZlcgogI3VuZGVmIGJ5dGVfYWxp Z25tZW50CkBAIC0xMTcsNiArMTIyLDExIEBAIHN0YXRpYyB2b2lkIGNic19hcHZfZGVyaXZlX3Rp bGVfaW5mbyhDb2RlZEJpdHN0cmVhbUNvbnRleHQgKmN0eCwKICNkZWZpbmUgUldDb250ZXh0IFB1 dEJpdENvbnRleHQKICNkZWZpbmUgRlVOQyhuYW1lKSBjYnNfYXB2X3dyaXRlXyAjIyBuYW1lCiAK KyNkZWZpbmUgdWIod2lkdGgsIG5hbWUpIGRvIHsgXAorICAgICAgICB1aW50MzJfdCB2YWx1ZSA9 IGN1cnJlbnQtPm5hbWU7IFwKKyAgICAgICAgQ0hFQ0soQ0JTX0ZVTkMod3JpdGVfc2ltcGxlX3Vu c2lnbmVkKShjdHgsIHJ3LCB3aWR0aCwgI25hbWUsIFwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSkpOyBcCisgICAgfSB3aGlsZSAoMCkKICNkZWZp bmUgeHUod2lkdGgsIG5hbWUsIHZhciwgcmFuZ2VfbWluLCByYW5nZV9tYXgsIHN1YnMsIC4uLikg ZG8geyBcCiAgICAgICAgIHVpbnQzMl90IHZhbHVlID0gdmFyOyBcCiAgICAgICAgIENIRUNLKENC U19GVU5DKHdyaXRlX3Vuc2lnbmVkKShjdHgsIHJ3LCB3aWR0aCwgI25hbWUsIFwKQEAgLTE0Miw2 ICsxNTIsNyBAQCBzdGF0aWMgdm9pZCBjYnNfYXB2X2Rlcml2ZV90aWxlX2luZm8oQ29kZWRCaXRz dHJlYW1Db250ZXh0ICpjdHgsCiAjdW5kZWYgUkVBRFdSSVRFCiAjdW5kZWYgUldDb250ZXh0CiAj dW5kZWYgRlVOQworI3VuZGVmIHViCiAjdW5kZWYgeHUKICN1bmRlZiBpbmZlcgogI3VuZGVmIGJ5 dGVfYWxpZ25tZW50Ci0tIAoyLjUyLjAKCgpGcm9tIDdkOGJiMWJjNmFkZTRiZTYxMmEzY2IzMjBk MDFjNThjN2U0MWYzMGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFpoYW8gWmhpbGkg PHpoaWxpemhhb0B0ZW5jZW50LmNvbT4KRGF0ZTogVHVlLCAyNSBOb3YgMjAyNSAxMzowMDozNCAr MDgwMApTdWJqZWN0OiBbUEFUQ0ggMTIyLzMwNF0gYXZmb3JtYXQvbW92OiBmaXggY3Jhc2ggd2hl biBzdHN6X3NhbXBsZV9zaXplIGlzIHplcm8KIGFuZCBzYW1wbGVfc2l6ZXMgaXMgbnVsbAoKQ28t QXV0aG9yZWQtYnk6IEphbWVzIEFsbWVyIDxqYW1yaWFsQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogWmhhbyBaaGlsaSA8emhpbGl6aGFvQHRlbmNlbnQuY29tPgotLS0KIGxpYmF2Zm9ybWF0L21v di5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9tb3YuYyBiL2xpYmF2Zm9ybWF0L21vdi5jCmlu ZGV4IGVlMDk0NzhhZWYuLjAwOWRkZmVjODAgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L21vdi5j CisrKyBiL2xpYmF2Zm9ybWF0L21vdi5jCkBAIC01MTY0LDcgKzUxNjQsOCBAQCBzdGF0aWMgaW50 IHNhbml0eV9jaGVja3Modm9pZCAqbG9nX29iaiwgTU9WU3RyZWFtQ29udGV4dCAqc2MsIGludCBp bmRleCkKIHsKICAgICBpZiAoKHNjLT5jaHVua19jb3VudCAmJiAoIXNjLT5zdHRzX2NvdW50IHx8 ICFzYy0+c3RzY19jb3VudCB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICghc2MtPnNh bXBsZV9zaXplICYmICFzYy0+c2FtcGxlX2NvdW50KSkpIHx8Ci0gICAgICAgICghc2MtPmNodW5r X2NvdW50ICYmIHNjLT5zYW1wbGVfY291bnQpKSB7CisgICAgICAgIChzYy0+c2FtcGxlX2NvdW50 ICYmICghc2MtPmNodW5rX2NvdW50IHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgh c2MtPnNhbXBsZV9zaXplICYmICFzYy0+c2FtcGxlX3NpemVzKSkpKSB7CiAgICAgICAgIGF2X2xv Zyhsb2dfb2JqLCBBVl9MT0dfRVJST1IsICJzdHJlYW0gJWQsIG1pc3NpbmcgbWFuZGF0b3J5IGF0 b21zLCBicm9rZW4gaGVhZGVyXG4iLAogICAgICAgICAgICAgICAgaW5kZXgpOwogICAgICAgICBy ZXR1cm4gMTsKLS0gCjIuNTIuMAoKCkZyb20gZDFiYTRkNmQzNzNhMDllMjYwYjdiNzU5YzRhNWVk MjI2OGFiNjkwNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogbXV4NDcgPG11eDEwMEBw cm90b25tYWlsLmNvbT4KRGF0ZTogVHVlLCAxOCBOb3YgMjAyNSAxNjo0Mzo0OSArMDAwMApTdWJq ZWN0OiBbUEFUQ0ggMTIzLzMwNF0gbGliYXZjb2RlYy9vcHVzL3BhcnNlcjogRml4IHNwdXJpb3Vz ICdFcnJvciBwYXJzaW5nCiBPcHVzIHBhY2tldCBoZWFkZXInCgpXaGVuIFBBUlNFUl9GTEFHX0NP TVBMRVRFX0ZSQU1FUyBpcyBzZXQsIG9wdXNfcGFyc2UoKSBjYWxscwpzZXRfZnJhbWVfZHVyYXRp b24gZXZlbiBvbiBmbHVzaCAoYnVmX3NpemU9PTApLCB3aGljaCB0cmlnZ2VycwphIHNwdXJpb3Vz ICJFcnJvciBwYXJzaW5nIE9wdXMgcGFja2V0IGhlYWRlciIgYXQgRU9GLgoKTWF0Y2ggc3RyZWFt aW5nLXBhdGggYmVoYXZpb3IgYnkgc2tpcHBpbmcgZHVyYXRpb24gcGFyc2luZyBvbiBlbXB0eSBi dWZmZXJzLgpGaXhlcyAjMjA5NTQKLS0tCiBsaWJhdmNvZGVjL29wdXMvcGFyc2VyLmMgfCAyICst CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9saWJhdmNvZGVjL29wdXMvcGFyc2VyLmMgYi9saWJhdmNvZGVjL29wdXMvcGFyc2VyLmMK aW5kZXggYWUzZDY2NTkyYy4uYmFiMGU1MDQxMiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9vcHVz L3BhcnNlci5jCisrKyBiL2xpYmF2Y29kZWMvb3B1cy9wYXJzZXIuYwpAQCAtMTg5LDcgKzE4OSw3 IEBAIHN0YXRpYyBpbnQgb3B1c19wYXJzZShBVkNvZGVjUGFyc2VyQ29udGV4dCAqY3R4LCBBVkNv ZGVjQ29udGV4dCAqYXZjdHgsCiAgICAgaWYgKGN0eC0+ZmxhZ3MgJiBQQVJTRVJfRkxBR19DT01Q TEVURV9GUkFNRVMpIHsKICAgICAgICAgbmV4dCA9IGJ1Zl9zaXplOwogCi0gICAgICAgIGlmIChz ZXRfZnJhbWVfZHVyYXRpb24oY3R4LCBhdmN0eCwgYnVmLCBidWZfc2l6ZSkgPCAwKQorICAgICAg ICBpZiAoYnVmX3NpemUgJiYgc2V0X2ZyYW1lX2R1cmF0aW9uKGN0eCwgYXZjdHgsIGJ1ZiwgYnVm X3NpemUpIDwgMCkKICAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9IGVsc2UgewogICAgICAg ICBuZXh0ID0gb3B1c19maW5kX2ZyYW1lX2VuZChjdHgsIGF2Y3R4LCBidWYsIGJ1Zl9zaXplLCAm aGVhZGVyX2xlbik7Ci0tIAoyLjUyLjAKCgpGcm9tIGU1NjBhNjYwNzA5NmRlM2VhNDUyZDhiY2Nm NDNiNGM5NGM5M2I0ZmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZyYW5rIFBsb3dt YW4gPHBvc3RAZnJhbmtwbG93bWFuLmNvbT4KRGF0ZTogU3VuLCAxOSBPY3QgMjAyNSAxMjoyODow MCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTI0LzMwNF0gbGF2Yy92dmM6IEVuc3VyZSBzZXFfZGVj b2RlIGlzIGFsd2F5cyB1cGRhdGVkIHdpdGgKIFNQUwoKc2VxX2RlY29kZSBpcyB1c2VkIHRvIGVu c3VyZSB0aGF0IGEgcGljdHVyZSBhbmQgYWxsIG9mIGl0cyByZWZlcmVuY2UKcGljdHVyZXMgdXNl IHRoZSBzYW1lIFNQUy4gQW55IHRpbWUgdGhlIFNQUyBjaGFuZ2VzLCBzZXFfZGVjb2RlIHNob3Vs ZApiZSBpbmNyZW1lbnRlZC4gUHJpb3IgdG8gdGhpcyBwYXRjaCwgc2VxX2RlY29kZSB3YXMgaW5j cmVtZW50ZWQgaW4KZnJhbWVfY29udGV4dF9zZXR1cCwgd2hpY2ggaXMgY2FsbGVkIGFmdGVyIHRo ZSBTUFMgaXMgcG90ZW50aWFsbHkKY2hhbmdlZCBpbiBkZWNvZGVfc3BzLiBTaG91bGQgdGhlIGRl Y29kZXIgZW5jb3VudGVyIGFuIGVycm9yIGJldHdlZW4KY2hhbmdpbmcgdGhlIFNQUyBhbmQgaW5j cmVtZW50aW5nIHNlcV9kZWNvZGUsIHRoZSBTUFMgY291bGQgYmUgbW9kaWZpZWQKd2hpbGUgc2Vx X2RlY29kZSB3YXMgbm90IGluY3JlbWVudGVkLCB3aGljaCBjb3VsZCBsZWFkIHRvIGludmFsaWQK cmVmZXJlbmNlIHBpY3R1cmVzIGFuZCB2YXJpb3VzIGRvd25zdHJlYW0gaXNzdWVzLiBCeSBpbnN0 ZWFkIHVwZGF0aW5nCnNlcV9kZWNvZGUgd2l0aGluIHRoZSBwaWN0dXJlIHNldCBtYW5hZ2VyLCB3 ZSBlbnN1cmUgc2VxX2RlY29kZSBhbmQgdGhlClNQUyBhcmUgYWx3YXlzIHVwZGF0ZWQgaW4gdGFu ZGVtLgotLS0KIGxpYmF2Y29kZWMvdnZjL2RlYy5jIHwgMSAtCiBsaWJhdmNvZGVjL3Z2Yy9wcy5j ICB8IDIgKysKIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92dmMvZGVjLmMgYi9saWJhdmNvZGVjL3Z2Yy9kZWMu YwppbmRleCBiZmUzMzBlMDI4Li4wMjhmMzRiNDkxIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Z2 Yy9kZWMuYworKysgYi9saWJhdmNvZGVjL3Z2Yy9kZWMuYwpAQCAtNzI2LDcgKzcyNiw2IEBAIHN0 YXRpYyBpbnQgZnJhbWVfY29udGV4dF9zZXR1cChWVkNGcmFtZUNvbnRleHQgKmZjLCBWVkNDb250 ZXh0ICpzKQogICAgIH0KIAogICAgIGlmIChJU19JRFIocykpIHsKLSAgICAgICAgcy0+c2VxX2Rl Y29kZSA9IChzLT5zZXFfZGVjb2RlICsgMSkgJiAweGZmOwogICAgICAgICBmZl92dmNfY2xlYXJf cmVmcyhmYyk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z2Yy9wcy5jIGIvbGli YXZjb2RlYy92dmMvcHMuYwppbmRleCA4ZmFlZTFkODI2Li5hNTkxODUxMjM4IDEwMDY0NAotLS0g YS9saWJhdmNvZGVjL3Z2Yy9wcy5jCisrKyBiL2xpYmF2Y29kZWMvdnZjL3BzLmMKQEAgLTI3OSwx MiArMjc5LDE0IEBAIGZhaWw6CiAKIHN0YXRpYyBpbnQgZGVjb2RlX3NwcyhWVkNQYXJhbVNldHMg KnBzLCBBVkNvZGVjQ29udGV4dCAqYywgY29uc3QgSDI2NlJhd1NQUyAqcnNwcywgaW50IGlzX2Ns dnNzKQogeworICAgIFZWQ0NvbnRleHQgKnMgICAgICAgICAgID0gYy0+cHJpdl9kYXRhOwogICAg IGNvbnN0IGludCBzcHNfaWQgICAgICAgID0gcnNwcy0+c3BzX3NlcV9wYXJhbWV0ZXJfc2V0X2lk OwogICAgIGNvbnN0IFZWQ1NQUyAqb2xkX3NwcyAgID0gcHMtPnNwc19saXN0W3Nwc19pZF07CiAg ICAgY29uc3QgVlZDU1BTICpzcHM7CiAKICAgICBpZiAoaXNfY2x2c3MpIHsKICAgICAgICAgcHMt PnNwc19pZF91c2VkID0gMDsKKyAgICAgICAgcy0+c2VxX2RlY29kZSA9IChzLT5zZXFfZGVjb2Rl ICsgMSkgJiAweGZmOwogICAgIH0KIAogICAgIGlmIChvbGRfc3BzKSB7Ci0tIAoyLjUyLjAKCgpG cm9tIDEyODY4MTVhMDI4MGFiZmNkZjVkN2FmMjE4OGI5ZDBlN2QyMDg2NTEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFRob21hcyBHcml0emFuIDxwaHlnb25AZ214LmRlPgpEYXRlOiBN b24sIDI0IE5vdiAyMDI1IDAwOjI2OjMzICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMjUvMzA0XSBs aWJhdmRldmljZS9kZWNrbGluazogSW1wbGVtZW50IFF1ZXJ5SW50ZXJmYWNlIHRvCiBzdXBwb3J0 IG5ld2VyIGRyaXZlcgoKUGxheWJhY2sgdG8gYSBkZWNrbGluayBkZXZpY2Ugd2l0aCBhIG5ld2Vy IHZlcnNpb24gb2YgdGhlCkRlY2tMaW5rIFNESyAoMTQuMykgc3RhbGxzIGJlY2F1c2UgdGhlIGRy aXZlciBjb2RlIGNhbGxzCklEZWNrTGlua1ZpZGVvRnJhbWU6OlF1ZXJ5SW50ZXJmYWNlLCB3aGlj aCBpcyBub3QKaW1wbGVtZW50ZWQgYnkgZmZtcGVnLgpUaGlzIHBhdGNoIGltcGxlbWVudHMgZGVj a2xpbmtfZnJhbWU6OlF1ZXJ5SW50ZXJmYWNlLApzbyB0aGF0IHBsYXliYWNrIHdvcmtzIHdpdGgg Ym90aCBvbGRlciAoMTIueCkgYW5kCm5ld2VyICg+PSAxNC4zKSBkcml2ZXJzLgoKTm90ZTogVGhl IHBhdGNoIHN0aWxsIGRvZXMgbm90IGFsbG93IHRoZSBjb2RlIHRvIGNvbXBpbGUKd2l0aCBEZWNr TGluayBTREsgMTQuMyBvciBuZXdlciwgYXMgdGhlIEFQSSBoYXMgY2hhbmdlZC4KLS0tCiBjb25m aWd1cmUgICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQogbGliYXZkZXZpY2UvZGVja2xpbmtf ZW5jLmNwcCB8IDI2ICsrKysrKysrKysrKysrKysrKysrKysrKystCiAyIGZpbGVzIGNoYW5nZWQs IDI3IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29uZmlndXJl IGIvY29uZmlndXJlCmluZGV4IGE3YjBjMThkOWMuLjg4MzUzOWUzNjEgMTAwNzU1Ci0tLSBhL2Nv bmZpZ3VyZQorKysgYi9jb25maWd1cmUKQEAgLTc0MDUsOCArNzQwNSw4IEBAIGZpCiBpZiBlbmFi bGVkIGRlY2tsaW5rOyB0aGVuCiAgICAgY2FzZSAkdGFyZ2V0X29zIGluCiAgICAgICAgIG1pbmd3 MzIqfG1pbmd3NjQqfHdpbjMyfHdpbjY0KQotICAgICAgICAgICAgZGVja2xpbmtfb3V0ZGV2X2V4 dHJhbGlicz0iJGRlY2tsaW5rX291dGRldl9leHRyYWxpYnMgLWxvbGUzMiAtbG9sZWF1dDMyIgot ICAgICAgICAgICAgZGVja2xpbmtfaW5kZXZfZXh0cmFsaWJzPSIkZGVja2xpbmtfaW5kZXZfZXh0 cmFsaWJzIC1sb2xlMzIgLWxvbGVhdXQzMiIKKyAgICAgICAgICAgIGRlY2tsaW5rX291dGRldl9l eHRyYWxpYnM9IiRkZWNrbGlua19vdXRkZXZfZXh0cmFsaWJzIC1sb2xlMzIgLWx1dWlkIC1sb2xl YXV0MzIiCisgICAgICAgICAgICBkZWNrbGlua19pbmRldl9leHRyYWxpYnM9IiRkZWNrbGlua19p bmRldl9leHRyYWxpYnMgLWxvbGUzMiAtbHV1aWQgLWxvbGVhdXQzMiIKICAgICAgICAgICAgIDs7 CiAgICAgZXNhYwogZmkKZGlmZiAtLWdpdCBhL2xpYmF2ZGV2aWNlL2RlY2tsaW5rX2VuYy5jcHAg Yi9saWJhdmRldmljZS9kZWNrbGlua19lbmMuY3BwCmluZGV4IGNiOGY5MTczMGUuLjE5NWYwMDVj MTcgMTAwNjQ0Ci0tLSBhL2xpYmF2ZGV2aWNlL2RlY2tsaW5rX2VuYy5jcHAKKysrIGIvbGliYXZk ZXZpY2UvZGVja2xpbmtfZW5jLmNwcApAQCAtNDcsNiArNDcsMTYgQEAgZXh0ZXJuICJDIiB7CiAj aW5jbHVkZSAibGlia2x2YW5jL3BpeGVscy5oIgogI2VuZGlmCiAKKyNpZmRlZiBfV0lOMzIKKyNp bmNsdWRlIDxndWlkZGVmLmg+CisjZWxzZQorLyogVGhlcmUgaXMgbm8gZ3VpZGRlZi5oIGluIExp bnV4IGJ1aWxkcywgc28gd2UgcHJvdmlkZSBvdXIgb3duIElzRXF1YWxJSUQoKSAqLworc3RhdGlj IGJvb2wgSXNFcXVhbElJRChSRUZJSUQgcmlpZDEsIFJFRklJRCByaWlkMikKK3sKKyAgICByZXR1 cm4gbWVtY21wKCZyaWlkMSwgJnJpaWQyLCBzaXplb2YoUkVGSUlEKSkgPT0gMDsKK30KKyNlbmRp ZgorCiAvKiBEZWNrTGluayBjYWxsYmFjayBjbGFzcyBkZWNsYXJhdGlvbiAqLwogY2xhc3MgZGVj a2xpbmtfZnJhbWUgOiBwdWJsaWMgSURlY2tMaW5rVmlkZW9GcmFtZQogewpAQCAtMTExLDcgKzEy MSwyMSBAQCBwdWJsaWM6CiAgICAgICAgIF9hbmNpbGxhcnktPkFkZFJlZigpOwogICAgICAgICBy ZXR1cm4gU19PSzsKICAgICB9Ci0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF IFF1ZXJ5SW50ZXJmYWNlKFJFRklJRCBpaWQsIExQVk9JRCAqcHB2KSB7IHJldHVybiBFX05PSU5U RVJGQUNFOyB9CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFF1ZXJ5SW50 ZXJmYWNlKFJFRklJRCByaWlkLCBMUFZPSUQgKnBwdikKKyAgICB7CisgICAgICAgIGlmIChJc0Vx dWFsSUlEKHJpaWQsIElJRF9JVW5rbm93bikpIHsKKyAgICAgICAgICAgICpwcHYgPSBzdGF0aWNf Y2FzdDxJVW5rbm93bio+KHRoaXMpOworICAgICAgICB9IGVsc2UgaWYgKElzRXF1YWxJSUQocmlp ZCwgSUlEX0lEZWNrTGlua1ZpZGVvRnJhbWUpKSB7CisgICAgICAgICAgICAqcHB2ID0gc3RhdGlj X2Nhc3Q8SURlY2tMaW5rVmlkZW9GcmFtZSo+KHRoaXMpOworICAgICAgICB9IGVsc2UgeworICAg ICAgICAgICAgKnBwdiA9IE5VTEw7CisgICAgICAgICAgICByZXR1cm4gRV9OT0lOVEVSRkFDRTsK KyAgICAgICAgfQorCisgICAgICAgIEFkZFJlZigpOworICAgICAgICByZXR1cm4gU19PSzsKKyAg ICB9CisKICAgICB2aXJ0dWFsIFVMT05HICAgU1RETUVUSE9EQ0FMTFRZUEUgQWRkUmVmKHZvaWQp ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuICsrX3JlZnM7IH0KICAgICB2aXJ0 dWFsIFVMT05HICAgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSh2b2lkKQogICAgIHsKLS0gCjIu NTIuMAoKCkZyb20gYWM5YTBmNjJlOTE1MTE3ZTI3MjdhNDdlOTJjMGViOTNlNWU2OTYwNyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGllZ28gZGUgU291emEgPGRkZXNvdXphQG52aWRp YS5jb20+CkRhdGU6IFdlZCwgMTIgTm92IDIwMjUgMjA6MDg6NDUgKzAxMDAKU3ViamVjdDogW1BB VENIIDEyNi8zMDRdIGF2dXRpbC9od2NvbnRleHRfY3VkYTogRXhwYW5kcyBwaXhlbCBmb3JtYXRz IHN1cHBvcnQKCkFkZCBzdXBwb3J0IGZvciBhZGRpdGlvbmFsIHBpeGVsIGZvcm1hdHMgaW4gQ1VE QSBoYXJkd2FyZSBjb250ZXh0OgotIFBsYW5hciBmb3JtYXRzICh5dXY0MjBwMTAsIHl1djQyMnAs IHl1djQyMnAxMCwgeXV2NDQ0cDEwKQotIFNlbWlwbGFuYXIgZm9ybWF0cyAobnYxNiwgcDIxMCwg cDIxNikKClNpZ25lZC1vZmYtYnk6IERpZWdvIGRlIFNvdXphIDxkZGVzb3V6YUBudmlkaWEuY29t PgotLS0KIGxpYmF2dXRpbC9od2NvbnRleHRfY3VkYS5jIHwgNCArKysrCiBsaWJhdnV0aWwvdmVy c2lvbi5oICAgICAgICB8IDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL2h3Y29udGV4dF9jdWRhLmMgYi9s aWJhdnV0aWwvaHdjb250ZXh0X2N1ZGEuYwppbmRleCAxMGQzMzk5NTM3Li5iMGI2NWIyNDQ2IDEw MDY0NAotLS0gYS9saWJhdnV0aWwvaHdjb250ZXh0X2N1ZGEuYworKysgYi9saWJhdnV0aWwvaHdj b250ZXh0X2N1ZGEuYwpAQCAtNTAsNiArNTAsMTAgQEAgc3RhdGljIGNvbnN0IGVudW0gQVZQaXhl bEZvcm1hdCBzdXBwb3J0ZWRfZm9ybWF0c1tdID0gewogICAgIEFWX1BJWF9GTVRfUDAxNiwKICAg ICBBVl9QSVhfRk1UX1AyMTAsCiAgICAgQVZfUElYX0ZNVF9QMjE2LAorICAgIEFWX1BJWF9GTVRf WVVWNDIyUCwKKyAgICBBVl9QSVhfRk1UX1lVVjQyMFAxMCwKKyAgICBBVl9QSVhfRk1UX1lVVjQy MlAxMCwKKyAgICBBVl9QSVhfRk1UX1lVVjQ0NFAxMCwKICAgICBBVl9QSVhfRk1UX1lVVjQ0NFAx ME1TQiwKICAgICBBVl9QSVhfRk1UX1lVVjQ0NFAxMk1TQiwKICAgICBBVl9QSVhfRk1UX1lVVjQ0 NFAxNiwKZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC92ZXJzaW9uLmggYi9saWJhdnV0aWwvdmVyc2lv bi5oCmluZGV4IGRiMjUwZDVjOWUuLmQwNThlOTQ0MjUgMTAwNjQ0Ci0tLSBhL2xpYmF2dXRpbC92 ZXJzaW9uLmgKKysrIGIvbGliYXZ1dGlsL3ZlcnNpb24uaApAQCAtODAsNyArODAsNyBAQAogCiAj ZGVmaW5lIExJQkFWVVRJTF9WRVJTSU9OX01BSk9SICA2MAogI2RlZmluZSBMSUJBVlVUSUxfVkVS U0lPTl9NSU5PUiAgMTkKLSNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fTUlDUk8gMTAwCisjZGVm aW5lIExJQkFWVVRJTF9WRVJTSU9OX01JQ1JPIDEwMQogCiAjZGVmaW5lIExJQkFWVVRJTF9WRVJT SU9OX0lOVCAgIEFWX1ZFUlNJT05fSU5UKExJQkFWVVRJTF9WRVJTSU9OX01BSk9SLCBcCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQkFWVVRJTF9WRVJT SU9OX01JTk9SLCBcCi0tIAoyLjUyLjAKCgpGcm9tIGJlNzI0YzJkMWM3OTYyZDdkZjFiMmJlMzA4 MDg1OGQwNDVkZDNhYzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERpZWdvIGRlIFNv dXphIDxkZGVzb3V6YUBudmlkaWEuY29tPgpEYXRlOiBUaHUsIDEzIE5vdiAyMDI1IDA5OjQ5OjQ1 ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMjcvMzA0XSBhdmZpbHRlci9od3VwbG9hZF9jdWRhOiBF eHBhbmRzIHBpeGVsIGZvcm1hdHMgc3VwcG9ydAoKQWRkIHN1cHBvcnQgZm9yIHVwbG9hZGluZyBh ZGRpdGlvbmFsIHBpeGVsIGZvcm1hdHMgdG8gTlZJRElBIEdQVXM6Ci0gUGxhbmFyIGZvcm1hdHMg KHl1djQyMHAxMCwgeXV2NDIycCwgeXV2NDIycDEwLCB5dXY0NDRwMTApCi0gU2VtaXBsYW5hciBm b3JtYXRzIChudjE2LCBwMjEwLCBwMjE2KQoKU2lnbmVkLW9mZi1ieTogRGllZ28gZGUgU291emEg PGRkZXNvdXphQG52aWRpYS5jb20+Ci0tLQogbGliYXZmaWx0ZXIvdmZfaHd1cGxvYWRfY3VkYS5j IHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvdmZfaHd1cGxvYWRfY3VkYS5jIGIvbGliYXZm aWx0ZXIvdmZfaHd1cGxvYWRfY3VkYS5jCmluZGV4IGI1MDVmOGIyOTguLjM0Zjk1OWNhNTAgMTAw NjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3ZmX2h3dXBsb2FkX2N1ZGEuYworKysgYi9saWJhdmZpbHRl ci92Zl9od3VwbG9hZF9jdWRhLmMKQEAgLTU5LDkgKzU5LDkgQEAgc3RhdGljIGludCBjdWRhdXBs b2FkX3F1ZXJ5X2Zvcm1hdHMoY29uc3QgQVZGaWx0ZXJDb250ZXh0ICpjdHgsCiAgICAgaW50IHJl dDsKIAogICAgIHN0YXRpYyBjb25zdCBlbnVtIEFWUGl4ZWxGb3JtYXQgaW5wdXRfcGl4X2ZtdHNb XSA9IHsKLSAgICAgICAgQVZfUElYX0ZNVF9OVjEyLCBBVl9QSVhfRk1UX1lVVjQyMFAsIEFWX1BJ WF9GTVRfWVVWQTQyMFAsIEFWX1BJWF9GTVRfWVVWNDQ0UCwKLSAgICAgICAgQVZfUElYX0ZNVF9Q MDEwLCBBVl9QSVhfRk1UX1AwMTYsIEFWX1BJWF9GTVRfWVVWNDQ0UDE2LAotICAgICAgICBBVl9Q SVhfRk1UXzBSR0IzMiwgQVZfUElYX0ZNVF8wQkdSMzIsCisgICAgICAgIEFWX1BJWF9GTVRfTlYx MiwgQVZfUElYX0ZNVF9ZVVY0MjBQLCBBVl9QSVhfRk1UX1lVVkE0MjBQLCBBVl9QSVhfRk1UX05W MTYsIEFWX1BJWF9GTVRfWVVWNDIyUCwgQVZfUElYX0ZNVF9ZVVY0NDRQLAorICAgICAgICBBVl9Q SVhfRk1UX1AwMTAsIEFWX1BJWF9GTVRfUDAxNiwgQVZfUElYX0ZNVF9QMjEwLCBBVl9QSVhfRk1U X1AyMTYsIEFWX1BJWF9GTVRfWVVWNDIwUDEwLCBBVl9QSVhfRk1UX1lVVjQyMlAxMCwgQVZfUElY X0ZNVF9ZVVY0NDRQMTAsIEFWX1BJWF9GTVRfWVVWNDQ0UDE2LAorICAgICAgICBBVl9QSVhfRk1U XzBSR0IzMiwgQVZfUElYX0ZNVF8wQkdSMzIsIEFWX1BJWF9GTVRfUkdCMzIsIEFWX1BJWF9GTVRf QkdSMzIsCiAjaWYgQ09ORklHX1ZVTEtBTgogICAgICAgICBBVl9QSVhfRk1UX1ZVTEtBTiwKICNl bmRpZgotLSAKMi41Mi4wCgoKRnJvbSA3YTU2Nzk1ZGE0NjFlNTZlYzAwZDIzNTljMTk2YWMzNWZj MmFiODYwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBkZSBTb3V6YSA8ZGRl c291emFAbnZpZGlhLmNvbT4KRGF0ZTogVHVlLCAxOCBOb3YgMjAyNSAxNzoxNjo0MyArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMTI4LzMwNF0gYXZmaWx0ZXIvc2NhbGVfY3VkYTogQWRkIHN1cHBvcnQg Zm9yIDQ6MjoyIGNocm9tYQogc3Vic2FtcGxpbmcKClRoZSBzdXBwb3J0ZWQgWVVWIHBpeGVsIGZv cm1hdHMgd2VyZSBzZXBhcmF0ZWQgYmV0d2VlbiBwbGFuYXIKYW5kIHNlbWlwbGFuYXIuIFRoaXMg YXBwcm9hY2ggcmVkdWNlcyB0aGUgbnVtYmVyIG9mIENVREEga2VybmVscwpmb3IgYWxsIHBpeGVs IGZvcm1hdHMuCgpUaGlzIHBhdGNoOgoxLiBBZGRzIHN1cHBvcnQgZm9yIFlVViA0OjI6MiBwbGFu YXIgYW5kIHNlbWktcGxhbmFyIGZvcm1hdHM6CiAgICAgICAgeXV2NDIycCwgeXV2NDIycDEwLCBu djE2LCBwMjEwLCBwMjE2CjIuIEltcGxlbWVudHMgbmV3IGNvbnZlcnNpb24gc3RydWN0dXJlcyBh bmQga2VybmVsIGRlZmluaXRpb25zCiAgICAgICAgZm9yIHBsYW5hciBhbmQgc2VtaS1wbGFuYXIg Zm9ybWF0cwoKU2lnbmVkLW9mZi1ieTogRGllZ28gZGUgU291emEgPGRkZXNvdXphQG52aWRpYS5j b20+Ci0tLQogbGliYXZmaWx0ZXIvTWFrZWZpbGUgICAgICAgICB8ICAgIDEgKwogbGliYXZmaWx0 ZXIvdmVyc2lvbi5oICAgICAgICB8ICAgIDIgKy0KIGxpYmF2ZmlsdGVyL3ZmX3NjYWxlX2N1ZGEu YyAgfCAgIDkwICsrLQogbGliYXZmaWx0ZXIvdmZfc2NhbGVfY3VkYS5jdSB8IDExNDcgKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogbGliYXZmaWx0ZXIvdmZfc2NhbGVfY3VkYS5o ICB8ICAgMjIgKwogNSBmaWxlcyBjaGFuZ2VkLCA2NzIgaW5zZXJ0aW9ucygrKSwgNTkwIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL01ha2VmaWxlIGIvbGliYXZmaWx0ZXIv TWFrZWZpbGUKaW5kZXggZDU2YTQ1OGU0NS4uNjc4MTRjMGQ3NyAxMDA2NDQKLS0tIGEvbGliYXZm aWx0ZXIvTWFrZWZpbGUKKysrIGIvbGliYXZmaWx0ZXIvTWFrZWZpbGUKQEAgLTY3OCw2ICs2Nzgs NyBAQCBTS0lQSEVBREVSUy0kKENPTkZJR19RU1ZWUFApICAgICAgICAgICAgICAgICArPSBxc3Z2 cHAuaCBzdGFja19pbnRlcm5hbC5oCiBTS0lQSEVBREVSUy0kKENPTkZJR19PUEVOQ0wpICAgICAg ICAgICAgICAgICArPSBvcGVuY2wuaAogU0tJUEhFQURFUlMtJChDT05GSUdfVkFBUEkpICAgICAg ICAgICAgICAgICAgKz0gdmFhcGlfdnBwLmggc3RhY2tfaW50ZXJuYWwuaAogU0tJUEhFQURFUlMt JChDT05GSUdfVlVMS0FOKSAgICAgICAgICAgICAgICAgKz0gdnVsa2FuX2ZpbHRlci5oCitTS0lQ SEVBREVSUy0kKENPTkZJR19TQ0FMRV9DVURBX0ZJTFRFUikgICAgICArPSB2Zl9zY2FsZV9jdWRh LmgKIAogVE9PTFMgICAgID0gZ3JhcGgyZG90CiBURVNUUFJPR1MgPSBkcmF3dXRpbHMgZmlsdGZt dHMgZm9ybWF0cyBpbnRlZ3JhbApkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvdmVyc2lvbi5oIGIv bGliYXZmaWx0ZXIvdmVyc2lvbi5oCmluZGV4IDRhNjlkNmJlOTguLjc3NjMyMWQxZmMgMTAwNjQ0 Ci0tLSBhL2xpYmF2ZmlsdGVyL3ZlcnNpb24uaAorKysgYi9saWJhdmZpbHRlci92ZXJzaW9uLmgK QEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJ2ZXJzaW9uX21ham9yLmgiCiAKICNkZWZpbmUg TElCQVZGSUxURVJfVkVSU0lPTl9NSU5PUiAgMTAKLSNkZWZpbmUgTElCQVZGSUxURVJfVkVSU0lP Tl9NSUNSTyAxMDAKKyNkZWZpbmUgTElCQVZGSUxURVJfVkVSU0lPTl9NSUNSTyAxMDEKIAogCiAj ZGVmaW5lIExJQkFWRklMVEVSX1ZFUlNJT05fSU5UIEFWX1ZFUlNJT05fSU5UKExJQkFWRklMVEVS X1ZFUlNJT05fTUFKT1IsIFwKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX3NjYWxlX2N1ZGEu YyBiL2xpYmF2ZmlsdGVyL3ZmX3NjYWxlX2N1ZGEuYwppbmRleCA4OGE2ZTIwNjEwLi41ZmQ3NTcx NjFiIDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci92Zl9zY2FsZV9jdWRhLmMKKysrIGIvbGliYXZm aWx0ZXIvdmZfc2NhbGVfY3VkYS5jCkBAIC0zOSwxNyArMzksMjkgQEAKICNpbmNsdWRlICJjdWRh L2xvYWRfaGVscGVyLmgiCiAjaW5jbHVkZSAidmZfc2NhbGVfY3VkYS5oIgogCi1zdGF0aWMgY29u c3QgZW51bSBBVlBpeGVsRm9ybWF0IHN1cHBvcnRlZF9mb3JtYXRzW10gPSB7Ci0gICAgQVZfUElY X0ZNVF9ZVVY0MjBQLAotICAgIEFWX1BJWF9GTVRfTlYxMiwKLSAgICBBVl9QSVhfRk1UX1lVVjQ0 NFAsCi0gICAgQVZfUElYX0ZNVF9QMDEwLAotICAgIEFWX1BJWF9GTVRfUDAxNiwKLSAgICBBVl9Q SVhfRk1UX1lVVjQ0NFAxNiwKLSAgICBBVl9QSVhfRk1UXzBSR0IzMiwKLSAgICBBVl9QSVhfRk1U XzBCR1IzMiwKLSAgICBBVl9QSVhfRk1UX1JHQjMyLAotICAgIEFWX1BJWF9GTVRfQkdSMzIsCitz dHJ1Y3QgZm9ybWF0X2VudHJ5IHsKKyAgICBlbnVtIEFWUGl4ZWxGb3JtYXQgZm9ybWF0OworICAg IGNoYXIgbmFtZVsxM107Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGZvcm1hdF9lbnRyeSBz dXBwb3J0ZWRfZm9ybWF0c1tdID0geworICAgIHtBVl9QSVhfRk1UX1lVVjQyMFAsICAicGxhbmFy OCJ9LAorICAgIHtBVl9QSVhfRk1UX1lVVjQyMlAsICAicGxhbmFyOCJ9LAorICAgIHtBVl9QSVhf Rk1UX1lVVjQ0NFAsICAicGxhbmFyOCJ9LAorICAgIHtBVl9QSVhfRk1UX1lVVjQyMFAxMCwicGxh bmFyMTAifSwKKyAgICB7QVZfUElYX0ZNVF9ZVVY0MjJQMTAsInBsYW5hcjEwIn0sCisgICAge0FW X1BJWF9GTVRfWVVWNDQ0UDEwLCJwbGFuYXIxMCJ9LAorICAgIHtBVl9QSVhfRk1UX1lVVjQ0NFAx NiwicGxhbmFyMTYifSwKKyAgICB7QVZfUElYX0ZNVF9OVjEyLCAgICAgInNlbWlwbGFuYXI4In0s CisgICAge0FWX1BJWF9GTVRfTlYxNiwgICAgICJzZW1pcGxhbmFyOCJ9LAorICAgIHtBVl9QSVhf Rk1UX1AwMTAsICAgICAic2VtaXBsYW5hcjEwIn0sCisgICAge0FWX1BJWF9GTVRfUDIxMCwgICAg ICJzZW1pcGxhbmFyMTAifSwKKyAgICB7QVZfUElYX0ZNVF9QMDE2LCAgICAgInNlbWlwbGFuYXIx NiJ9LAorICAgIHtBVl9QSVhfRk1UX1AyMTYsICAgICAic2VtaXBsYW5hcjE2In0sCisgICAge0FW X1BJWF9GTVRfMFJHQjMyLCAgICJiZ3IwIn0sCisgICAge0FWX1BJWF9GTVRfMEJHUjMyLCAgICJy Z2IwIn0sCisgICAge0FWX1BJWF9GTVRfUkdCMzIsICAgICJiZ3JhIn0sCisgICAge0FWX1BJWF9G TVRfQkdSMzIsICAgICJyZ2JhIn0sCiB9OwogCiAjZGVmaW5lIERJVl9VUChhLCBiKSAoICgoYSkg KyAoYikgLSAxKSAvIChiKSApCkBAIC0xODQsMTQgKzE5NiwyMCBAQCBmYWlsOgogCiBzdGF0aWMg aW50IGZvcm1hdF9pc19zdXBwb3J0ZWQoZW51bSBBVlBpeGVsRm9ybWF0IGZtdCkKIHsKLSAgICBp bnQgaTsKLQotICAgIGZvciAoaSA9IDA7IGkgPCBGRl9BUlJBWV9FTEVNUyhzdXBwb3J0ZWRfZm9y bWF0cyk7IGkrKykKLSAgICAgICAgaWYgKHN1cHBvcnRlZF9mb3JtYXRzW2ldID09IGZtdCkKKyAg ICBmb3IgKGludCBpID0gMDsgaSA8IEZGX0FSUkFZX0VMRU1TKHN1cHBvcnRlZF9mb3JtYXRzKTsg aSsrKQorICAgICAgICBpZiAoc3VwcG9ydGVkX2Zvcm1hdHNbaV0uZm9ybWF0ID09IGZtdCkKICAg ICAgICAgICAgIHJldHVybiAxOwogICAgIHJldHVybiAwOwogfQogCitzdGF0aWMgY29uc3QgY2hh ciogZ2V0X2Zvcm1hdF9uYW1lKGVudW0gQVZQaXhlbEZvcm1hdCBmbXQpCit7CisgICAgZm9yIChp bnQgaSA9IDA7IGkgPCBGRl9BUlJBWV9FTEVNUyhzdXBwb3J0ZWRfZm9ybWF0cyk7IGkrKykKKyAg ICAgICAgaWYgKHN1cHBvcnRlZF9mb3JtYXRzW2ldLmZvcm1hdCA9PSBmbXQpCisgICAgICAgICAg ICByZXR1cm4gc3VwcG9ydGVkX2Zvcm1hdHNbaV0ubmFtZTsKKyAgICByZXR1cm4gTlVMTDsKK30K Kwogc3RhdGljIGF2X2NvbGQgdm9pZCBzZXRfZm9ybWF0X2luZm8oQVZGaWx0ZXJDb250ZXh0ICpj dHgsIGVudW0gQVZQaXhlbEZvcm1hdCBpbl9mb3JtYXQsIGVudW0gQVZQaXhlbEZvcm1hdCBvdXRf Zm9ybWF0KQogewogICAgIENVREFTY2FsZUNvbnRleHQgKnMgPSBjdHgtPnByaXY7CkBAIC0yODQs OCArMzAyLDggQEAgc3RhdGljIGF2X2NvbGQgaW50IGN1ZGFzY2FsZV9sb2FkX2Z1bmN0aW9ucyhB VkZpbHRlckNvbnRleHQgKmN0eCkKICAgICBjaGFyIGJ1ZlsxMjhdOwogICAgIGludCByZXQ7CiAK LSAgICBjb25zdCBjaGFyICppbl9mbXRfbmFtZSA9IGF2X2dldF9waXhfZm10X25hbWUocy0+aW5f Zm10KTsKLSAgICBjb25zdCBjaGFyICpvdXRfZm10X25hbWUgPSBhdl9nZXRfcGl4X2ZtdF9uYW1l KHMtPm91dF9mbXQpOworICAgIGNvbnN0IGNoYXIgKmluX2ZtdF9uYW1lID0gZ2V0X2Zvcm1hdF9u YW1lKHMtPmluX2ZtdCk7CisgICAgY29uc3QgY2hhciAqb3V0X2ZtdF9uYW1lID0gZ2V0X2Zvcm1h dF9uYW1lKHMtPm91dF9mbXQpOwogCiAgICAgY29uc3QgY2hhciAqZnVuY3Rpb25faW5maXggPSAi IjsKIApAQCAtMzM1LDExICszNTMsMTMgQEAgc3RhdGljIGF2X2NvbGQgaW50IGN1ZGFzY2FsZV9s b2FkX2Z1bmN0aW9ucyhBVkZpbHRlckNvbnRleHQgKmN0eCkKICAgICAgICAgcmV0ID0gQVZFUlJP UihFTk9TWVMpOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQorICAgIGF2X2xvZyhjdHgsIEFW X0xPR19ERUJVRywgIkx1bWEgZmlsdGVyOiAlcyAoJXMgLT4gJXMpXG4iLCBidWYsIGF2X2dldF9w aXhfZm10X25hbWUocy0+aW5fZm10KSwgYXZfZ2V0X3BpeF9mbXRfbmFtZShzLT5vdXRfZm10KSk7 CiAKICAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiU3Vic2FtcGxlXyVzXyVzXyVzX3V2 IiwgZnVuY3Rpb25faW5maXgsIGluX2ZtdF9uYW1lLCBvdXRfZm10X25hbWUpOwogICAgIHJldCA9 IENIRUNLX0NVKGN1LT5jdU1vZHVsZUdldEZ1bmN0aW9uKCZzLT5jdV9mdW5jX3V2LCBzLT5jdV9t b2R1bGUsIGJ1ZikpOwogICAgIGlmIChyZXQgPCAwKQogICAgICAgICBnb3RvIGZhaWw7CisgICAg YXZfbG9nKGN0eCwgQVZfTE9HX0RFQlVHLCAiQ2hyb21hIGZpbHRlcjogJXMgKCVzIC0+ICVzKVxu IiwgYnVmLCBhdl9nZXRfcGl4X2ZtdF9uYW1lKHMtPmluX2ZtdCksIGF2X2dldF9waXhfZm10X25h bWUocy0+b3V0X2ZtdCkpOwogCiBmYWlsOgogICAgIENIRUNLX0NVKGN1LT5jdUN0eFBvcEN1cnJl bnQoJmR1bW15KSk7CkBAIC00MTYsMjYgKzQzNiwzNSBAQCBmYWlsOgogCiBzdGF0aWMgaW50IGNh bGxfcmVzaXplX2tlcm5lbChBVkZpbHRlckNvbnRleHQgKmN0eCwgQ1VmdW5jdGlvbiBmdW5jLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1V0ZXhPYmplY3Qgc3JjX3RleFs0XSwgaW50 IHNyY19sZWZ0LCBpbnQgc3JjX3RvcCwgaW50IHNyY193aWR0aCwgaW50IHNyY19oZWlnaHQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVkZyYW1lICpvdXRfZnJhbWUsIGludCBkc3Rf d2lkdGgsIGludCBkc3RfaGVpZ2h0LCBpbnQgZHN0X3BpdGNoKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQVZGcmFtZSAqb3V0X2ZyYW1lLCBpbnQgZHN0X3dpZHRoLCBpbnQgZHN0X2hl aWdodCwgaW50IGRzdF9waXRjaCwgaW50IG1wZWdfcmFuZ2UpCiB7CiAgICAgQ1VEQVNjYWxlQ29u dGV4dCAqcyA9IGN0eC0+cHJpdjsKICAgICBDdWRhRnVuY3Rpb25zICpjdSA9IHMtPmh3Y3R4LT5p bnRlcm5hbC0+Y3VkYV9kbDsKIAotICAgIENVZGV2aWNlcHRyIGRzdF9kZXZwdHJbNF0gPSB7Ci0g ICAgICAgIChDVWRldmljZXB0cilvdXRfZnJhbWUtPmRhdGFbMF0sIChDVWRldmljZXB0cilvdXRf ZnJhbWUtPmRhdGFbMV0sCi0gICAgICAgIChDVWRldmljZXB0cilvdXRfZnJhbWUtPmRhdGFbMl0s IChDVWRldmljZXB0cilvdXRfZnJhbWUtPmRhdGFbM10KKyAgICBDVURBU2NhbGVLZXJuZWxQYXJh bXMgcGFyYW1zID0geworICAgICAgICAuc3JjX3RleCA9IHtzcmNfdGV4WzBdLCBzcmNfdGV4WzFd LCBzcmNfdGV4WzJdLCBzcmNfdGV4WzNdfSwKKyAgICAgICAgLmRzdCA9IHsKKyAgICAgICAgICAg IChDVWRldmljZXB0cilvdXRfZnJhbWUtPmRhdGFbMF0sCisgICAgICAgICAgICAoQ1VkZXZpY2Vw dHIpb3V0X2ZyYW1lLT5kYXRhWzFdLAorICAgICAgICAgICAgKENVZGV2aWNlcHRyKW91dF9mcmFt ZS0+ZGF0YVsyXSwKKyAgICAgICAgICAgIChDVWRldmljZXB0cilvdXRfZnJhbWUtPmRhdGFbM10K KyAgICAgICAgfSwKKyAgICAgICAgLmRzdF93aWR0aCA9IGRzdF93aWR0aCwKKyAgICAgICAgLmRz dF9oZWlnaHQgPSBkc3RfaGVpZ2h0LAorICAgICAgICAuZHN0X3BpdGNoID0gZHN0X3BpdGNoLAor ICAgICAgICAuc3JjX2xlZnQgPSBzcmNfbGVmdCwKKyAgICAgICAgLnNyY190b3AgPSBzcmNfdG9w LAorICAgICAgICAuc3JjX3dpZHRoID0gc3JjX3dpZHRoLAorICAgICAgICAuc3JjX2hlaWdodCA9 IHNyY19oZWlnaHQsCisgICAgICAgIC5wYXJhbSA9IHMtPnBhcmFtLAorICAgICAgICAubXBlZ19y YW5nZSA9IG1wZWdfcmFuZ2UKICAgICB9OwogCi0gICAgdm9pZCAqYXJnc191Y2hhcltdID0gewot ICAgICAgICAmc3JjX3RleFswXSwgJnNyY190ZXhbMV0sICZzcmNfdGV4WzJdLCAmc3JjX3RleFsz XSwKLSAgICAgICAgJmRzdF9kZXZwdHJbMF0sICZkc3RfZGV2cHRyWzFdLCAmZHN0X2RldnB0clsy XSwgJmRzdF9kZXZwdHJbM10sCi0gICAgICAgICZkc3Rfd2lkdGgsICZkc3RfaGVpZ2h0LCAmZHN0 X3BpdGNoLAotICAgICAgICAmc3JjX2xlZnQsICZzcmNfdG9wLCAmc3JjX3dpZHRoLCAmc3JjX2hl aWdodCwgJnMtPnBhcmFtCi0gICAgfTsKKyAgICB2b2lkICphcmdzW10gPSB7ICZwYXJhbXMgfTsK IAogICAgIHJldHVybiBDSEVDS19DVShjdS0+Y3VMYXVuY2hLZXJuZWwoZnVuYywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERJVl9VUChkc3Rfd2lkdGgsIEJMT0NLWCks IERJVl9VUChkc3RfaGVpZ2h0LCBCTE9DS1kpLCAxLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQkxPQ0tYLCBCTE9DS1ksIDEsIDAsIHMtPmN1X3N0cmVhbSwgYXJnc191 Y2hhciwgTlVMTCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkxP Q0tYLCBCTE9DS1ksIDEsIDAsIHMtPmN1X3N0cmVhbSwgYXJncywgTlVMTCkpOwogfQogCiBzdGF0 aWMgaW50IHNjYWxlY3VkYV9yZXNpemUoQVZGaWx0ZXJDb250ZXh0ICpjdHgsCkBAIC00NDUsNiAr NDc0LDcgQEAgc3RhdGljIGludCBzY2FsZWN1ZGFfcmVzaXplKEFWRmlsdGVyQ29udGV4dCAqY3R4 LAogICAgIEN1ZGFGdW5jdGlvbnMgKmN1ID0gcy0+aHdjdHgtPmludGVybmFsLT5jdWRhX2RsOwog ICAgIENVY29udGV4dCBkdW1teSwgY3VkYV9jdHggPSBzLT5od2N0eC0+Y3VkYV9jdHg7CiAgICAg aW50IGksIHJldDsKKyAgICBpbnQgbXBlZ19yYW5nZSA9IGluLT5jb2xvcl9yYW5nZSAhPSBBVkNP TF9SQU5HRV9KUEVHOwogCiAgICAgQ1V0ZXhPYmplY3QgdGV4WzRdID0geyAwLCAwLCAwLCAwIH07 CiAKQEAgLTQ4OSw3ICs1MTksNyBAQCBzdGF0aWMgaW50IHNjYWxlY3VkYV9yZXNpemUoQVZGaWx0 ZXJDb250ZXh0ICpjdHgsCiAgICAgLy8gc2NhbGUgcHJpbWFyeSBwbGFuZShzKS4gVXN1YWxseSBZ IChhbmQgQSksIG9yIHNpbmdsZSBwbGFuZSBvZiBSR0IgZnJhbWVzLgogICAgIHJldCA9IGNhbGxf cmVzaXplX2tlcm5lbChjdHgsIHMtPmN1X2Z1bmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRleCwgaW4tPmNyb3BfbGVmdCwgaW4tPmNyb3BfdG9wLCBjcm9wX3dpZHRoLCBjcm9wX2hl aWdodCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LCBvdXQtPndpZHRoLCBvdXQt PmhlaWdodCwgb3V0LT5saW5lc2l6ZVswXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG91dCwgb3V0LT53aWR0aCwgb3V0LT5oZWlnaHQsIG91dC0+bGluZXNpemVbMF0sIG1wZWdfcmFu Z2UpOwogICAgIGlmIChyZXQgPCAwKQogICAgICAgICBnb3RvIGV4aXQ7CiAKQEAgLTUwMyw3ICs1 MzMsNyBAQCBzdGF0aWMgaW50IHNjYWxlY3VkYV9yZXNpemUoQVZGaWx0ZXJDb250ZXh0ICpjdHgs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBVl9DRUlMX1JTSElGVChvdXQtPndpZHRoLCBzLT5vdXRfZGVzYy0+ bG9nMl9jaHJvbWFfdyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVl9DRUlM X1JTSElGVChvdXQtPmhlaWdodCwgcy0+b3V0X2Rlc2MtPmxvZzJfY2hyb21hX2gpLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LT5saW5lc2l6ZVsxXSk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvdXQtPmxpbmVzaXplWzFdLCBtcGVnX3JhbmdlKTsKICAg ICAgICAgaWYgKHJldCA8IDApCiAgICAgICAgICAgICBnb3RvIGV4aXQ7CiAgICAgfQpkaWZmIC0t Z2l0IGEvbGliYXZmaWx0ZXIvdmZfc2NhbGVfY3VkYS5jdSBiL2xpYmF2ZmlsdGVyL3ZmX3NjYWxl X2N1ZGEuY3UKaW5kZXggMjcxYjU1Y2Q1ZC4uZDY3NGMwODg1YSAxMDA2NDQKLS0tIGEvbGliYXZm aWx0ZXIvdmZfc2NhbGVfY3VkYS5jdQorKysgYi9saWJhdmZpbHRlci92Zl9zY2FsZV9jdWRhLmN1 CkBAIC0zNSw5ICszNSwxNiBAQCB1c2luZyBzdWJzYW1wbGVfZnVuY3Rpb25fdCA9IFQgKCopKGN1 ZGFUZXh0dXJlT2JqZWN0X3QgdGV4LCBpbnQgeG8sIGludCB5bywKIHN0YXRpYyBjb25zdCB1c2hv cnQgbWFza18xMGJpdCA9IDB4RkZDMDsKIHN0YXRpYyBjb25zdCB1c2hvcnQgbWFza18xNmJpdCA9 IDB4RkZGRjsKIAotc3RhdGljIGlubGluZSBfX2RldmljZV9fIHVzaG9ydCBjb252Xzh0bzE2KHVj aGFyIGluLCB1c2hvcnQgbWFzaykKK3N0YXRpYyBpbmxpbmUgX19kZXZpY2VfXyB1c2hvcnQgY29u dl84dG8xNih1Y2hhciBpbiwgdXNob3J0IG1hc2ssIGludCBtcGVnX3JhbmdlKQogewotICAgIHJl dHVybiAoKHVzaG9ydClpbiB8ICgodXNob3J0KWluIDw8IDgpKSAmIG1hc2s7CisgICAgdXNob3J0 IHNoaWZ0ZWQgPSAodXNob3J0KWluIDw8IDg7CisgICAgcmV0dXJuIG1wZWdfcmFuZ2UgPyBzaGlm dGVkIDogKChzaGlmdGVkIHwgKCh1c2hvcnQpaW4gKSkgJiBtYXNrKTsKK30KKworc3RhdGljIGlu bGluZSBfX2RldmljZV9fIHVzaG9ydCBjb252Xzh0bzEwcGwodWNoYXIgaW4sIGludCBtcGVnX3Jh bmdlKQoreworICAgIHVzaG9ydCBzaGlmdGVkID0gKHVzaG9ydClpbiA8PCAyOworICAgIHJldHVy biBtcGVnX3JhbmdlID8gc2hpZnRlZCA6IChzaGlmdGVkIHwgKCh1c2hvcnQpaW4gPj4gNikpOwog fQogCiBzdGF0aWMgaW5saW5lIF9fZGV2aWNlX18gdWNoYXIgY29udl8xNnRvOCh1c2hvcnQgaW4p CkBAIC01MCw5ICs1NywyMSBAQCBzdGF0aWMgaW5saW5lIF9fZGV2aWNlX18gdWNoYXIgY29udl8x MHRvOCh1c2hvcnQgaW4pCiAgICAgcmV0dXJuIGluID4+IDg7CiB9CiAKLXN0YXRpYyBpbmxpbmUg X19kZXZpY2VfXyB1c2hvcnQgY29udl8xMHRvMTYodXNob3J0IGluKQorc3RhdGljIGlubGluZSBf X2RldmljZV9fIHVjaGFyIGNvbnZfMTB0bzhwbCh1c2hvcnQgaW4pCiB7Ci0gICAgcmV0dXJuIGlu IHwgKGluID4+IDEwKTsKKyAgICByZXR1cm4gaW4gPj4gMjsKK30KKworc3RhdGljIGlubGluZSBf X2RldmljZV9fIHVzaG9ydCBjb252XzEwdG8xNih1c2hvcnQgaW4sIGludCBtcGVnX3JhbmdlKQor eworICAgIHVzaG9ydCBzaGlmdGVkID0gKGluID4+IDEwKTsKKyAgICByZXR1cm4gbXBlZ19yYW5n ZSA/IGluIDogKGluIHwgc2hpZnRlZCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgX19kZXZpY2VfXyB1 c2hvcnQgY29udl8xMHRvMTZwbCh1c2hvcnQgaW4sIGludCBtcGVnX3JhbmdlKQoreworICAgIHVz aG9ydCBzaGlmdGVkID0gKGluIDw8IDYpOworICAgIHJldHVybiBtcGVnX3JhbmdlID8gc2hpZnRl ZCA6IChzaGlmdGVkIHwgKGluID4+IDQpKTsKIH0KIAogc3RhdGljIGlubGluZSBfX2RldmljZV9f IHVzaG9ydCBjb252XzE2dG8xMCh1c2hvcnQgaW4pCkBAIC02MCwxMiArNzksMTggQEAgc3RhdGlj IGlubGluZSBfX2RldmljZV9fIHVzaG9ydCBjb252XzE2dG8xMCh1c2hvcnQgaW4pCiAgICAgcmV0 dXJuIGluICYgbWFza18xMGJpdDsKIH0KIAorc3RhdGljIGlubGluZSBfX2RldmljZV9fIHVzaG9y dCBjb252XzE2dG8xMHBsKHVzaG9ydCBpbikKK3sKKyAgICByZXR1cm4gaW4gPj4gNjsKK30KKwog I2RlZmluZSBERUZfRihOLCBUKSBcCiAgICAgdGVtcGxhdGU8c3Vic2FtcGxlX2Z1bmN0aW9uX3Q8 aW5fVD4gc3Vic2FtcGxlX2Z1bmNfeSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKICAgICAgICAgICAgICBzdWJzYW1wbGVfZnVuY3Rpb25fdDxpbl9UX3V2PiBzdWJzYW1w bGVfZnVuY191dj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIF9fZGV2 aWNlX18gc3RhdGljIGlubGluZSB2b2lkIE4oY3VkYVRleHR1cmVPYmplY3RfdCBzcmNfdGV4WzRd LCBUICpkc3RbNF0sIGludCB4bywgaW50IHlvLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgZHN0X3dpZHRoLCBpbnQgZHN0X2hlaWdodCwgaW50IGRzdF9waXRjaCwg ICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBz cmNfbGVmdCwgaW50IHNyY190b3AsIGludCBzcmNfd2lkdGgsIGludCBzcmNfaGVpZ2h0LCBmbG9h dCBwYXJhbSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzcmNfbGVm dCwgaW50IHNyY190b3AsIGludCBzcmNfd2lkdGgsIGludCBzcmNfaGVpZ2h0LCAgXAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgcGFyYW0sIGludCBtcGVnX3Jhbmdl KQogCiAjZGVmaW5lIFNVQl9GKG0sIHBsYW5lKSBcCiAgICAgc3Vic2FtcGxlX2Z1bmNfIyNtKHNy Y190ZXhbcGxhbmVdLCB4bywgeW8sIFwKQEAgLTgxLDkgKzEwNiw5IEBAIHN0YXRpYyBpbmxpbmUg X19kZXZpY2VfXyB1c2hvcnQgY29udl8xNnRvMTAodXNob3J0IGluKQogI2RlZmluZSBERUZBVUxU X0RTVChuKSBcCiAgICAgZHN0W25dW3lvKkZJWEVEX1BJVENIK3hvXQogCi0vLyB5dXY0MjBwLT5Y CisvLyBwbGFuYXI4LT5YCiAKLXN0cnVjdCBDb252ZXJ0X3l1djQyMHBfeXV2NDIwcAorc3RydWN0 IENvbnZlcnRfcGxhbmFyOF9wbGFuYXI4CiB7CiAgICAgc3RhdGljIGNvbnN0IGludCBpbl9iaXRf ZGVwdGggPSA4OwogICAgIHR5cGVkZWYgdWNoYXIgaW5fVDsKQEAgLTEwMyw3ICsxMjgsNDcgQEAg c3RydWN0IENvbnZlcnRfeXV2NDIwcF95dXY0MjBwCiAgICAgfQogfTsKIAotc3RydWN0IENvbnZl cnRfeXV2NDIwcF9udjEyCitzdHJ1Y3QgQ29udmVydF9wbGFuYXI4X3BsYW5hcjEwCit7CisgICAg c3RhdGljIGNvbnN0IGludCBpbl9iaXRfZGVwdGggPSA4OworICAgIHR5cGVkZWYgdWNoYXIgaW5f VDsKKyAgICB0eXBlZGVmIHVjaGFyIGluX1RfdXY7CisgICAgdHlwZWRlZiB1c2hvcnQgb3V0X1Q7 CisgICAgdHlwZWRlZiB1c2hvcnQgb3V0X1RfdXY7CisKKyAgICBERUZfRihDb252ZXJ0LCBvdXRf VCkKKyAgICB7CisgICAgICAgIERFRkFVTFRfRFNUKDApID0gY29udl84dG8xMHBsKFNVQl9GKHks IDApLCBtcGVnX3JhbmdlKTsKKyAgICB9CisKKyAgICBERUZfRihDb252ZXJ0X3V2LCBvdXRfVF91 dikKKyAgICB7CisgICAgICAgIERFRkFVTFRfRFNUKDEpID0gY29udl84dG8xMHBsKFNVQl9GKHV2 LCAxKSwgbXBlZ19yYW5nZSk7CisgICAgICAgIERFRkFVTFRfRFNUKDIpID0gY29udl84dG8xMHBs KFNVQl9GKHV2LCAyKSwgbXBlZ19yYW5nZSk7CisgICAgfQorfTsKKworc3RydWN0IENvbnZlcnRf cGxhbmFyOF9wbGFuYXIxNgoreworICAgIHN0YXRpYyBjb25zdCBpbnQgaW5fYml0X2RlcHRoID0g ODsKKyAgICB0eXBlZGVmIHVjaGFyIGluX1Q7CisgICAgdHlwZWRlZiB1Y2hhciBpbl9UX3V2Owor ICAgIHR5cGVkZWYgdXNob3J0IG91dF9UOworICAgIHR5cGVkZWYgdXNob3J0IG91dF9UX3V2Owor CisgICAgREVGX0YoQ29udmVydCwgb3V0X1QpCisgICAgeworICAgICAgICBERUZBVUxUX0RTVCgw KSA9IGNvbnZfOHRvMTYoU1VCX0YoeSwgMCksIG1hc2tfMTZiaXQsIG1wZWdfcmFuZ2UpOworICAg IH0KKworICAgIERFRl9GKENvbnZlcnRfdXYsIG91dF9UX3V2KQorICAgIHsKKyAgICAgICAgREVG QVVMVF9EU1QoMSkgPSBjb252Xzh0bzE2KFNVQl9GKHV2LCAxKSwgbWFza18xNmJpdCwgbXBlZ19y YW5nZSk7CisgICAgICAgIERFRkFVTFRfRFNUKDIpID0gY29udl84dG8xNihTVUJfRih1diwgMiks IG1hc2tfMTZiaXQsIG1wZWdfcmFuZ2UpOworICAgIH0KK307CisKK3N0cnVjdCBDb252ZXJ0X3Bs YW5hcjhfc2VtaXBsYW5hcjgKIHsKICAgICBzdGF0aWMgY29uc3QgaW50IGluX2JpdF9kZXB0aCA9 IDg7CiAgICAgdHlwZWRlZiB1Y2hhciBpbl9UOwpAQCAtMTI1LDE0ICsxOTAsODIgQEAgc3RydWN0 IENvbnZlcnRfeXV2NDIwcF9udjEyCiAgICAgfQogfTsKIAotc3RydWN0IENvbnZlcnRfeXV2NDIw cF95dXY0NDRwCitzdHJ1Y3QgQ29udmVydF9wbGFuYXI4X3NlbWlwbGFuYXIxMAogewogICAgIHN0 YXRpYyBjb25zdCBpbnQgaW5fYml0X2RlcHRoID0gODsKICAgICB0eXBlZGVmIHVjaGFyIGluX1Q7 CiAgICAgdHlwZWRlZiB1Y2hhciBpbl9UX3V2OworICAgIHR5cGVkZWYgdXNob3J0IG91dF9UOwor ICAgIHR5cGVkZWYgdXNob3J0MiBvdXRfVF91djsKKworICAgIERFRl9GKENvbnZlcnQsIG91dF9U KQorICAgIHsKKyAgICAgICAgREVGQVVMVF9EU1QoMCkgPSBjb252Xzh0bzE2KFNVQl9GKHksIDAp LCBtYXNrXzEwYml0LCBtcGVnX3JhbmdlKTsKKyAgICB9CisKKyAgICBERUZfRihDb252ZXJ0X3V2 LCBvdXRfVF91dikKKyAgICB7CisgICAgICAgIERFRkFVTFRfRFNUKDEpID0gbWFrZV91c2hvcnQy KAorICAgICAgICAgICAgY29udl84dG8xNihTVUJfRih1diwgMSksIG1hc2tfMTBiaXQsIG1wZWdf cmFuZ2UpLAorICAgICAgICAgICAgY29udl84dG8xNihTVUJfRih1diwgMiksIG1hc2tfMTBiaXQs IG1wZWdfcmFuZ2UpCisgICAgICAgICk7CisgICAgfQorfTsKKworc3RydWN0IENvbnZlcnRfcGxh bmFyOF9zZW1pcGxhbmFyMTYKK3sKKyAgICBzdGF0aWMgY29uc3QgaW50IGluX2JpdF9kZXB0aCA9 IDg7CisgICAgdHlwZWRlZiB1Y2hhciBpbl9UOworICAgIHR5cGVkZWYgdWNoYXIgaW5fVF91djsK KyAgICB0eXBlZGVmIHVzaG9ydCBvdXRfVDsKKyAgICB0eXBlZGVmIHVzaG9ydDIgb3V0X1RfdXY7 CisKKyAgICBERUZfRihDb252ZXJ0LCBvdXRfVCkKKyAgICB7CisgICAgICAgIERFRkFVTFRfRFNU KDApID0gY29udl84dG8xNihTVUJfRih5LCAwKSwgbWFza18xNmJpdCwgbXBlZ19yYW5nZSk7Cisg ICAgfQorCisgICAgREVGX0YoQ29udmVydF91diwgb3V0X1RfdXYpCisgICAgeworICAgICAgICBE RUZBVUxUX0RTVCgxKSA9IG1ha2VfdXNob3J0MigKKyAgICAgICAgICAgIGNvbnZfOHRvMTYoU1VC X0YodXYsIDEpLCBtYXNrXzE2Yml0LCBtcGVnX3JhbmdlKSwKKyAgICAgICAgICAgIGNvbnZfOHRv MTYoU1VCX0YodXYsIDIpLCBtYXNrXzE2Yml0LCBtcGVnX3JhbmdlKQorICAgICAgICApOworICAg IH0KK307CisKKworCisvLyBwbGFuYXIxMC0+WAorCitzdHJ1Y3QgQ29udmVydF9wbGFuYXIxMF9w bGFuYXI4Cit7CisgICAgc3RhdGljIGNvbnN0IGludCBpbl9iaXRfZGVwdGggPSAxMDsKKyAgICB0 eXBlZGVmIHVzaG9ydCBpbl9UOworICAgIHR5cGVkZWYgdXNob3J0IGluX1RfdXY7CiAgICAgdHlw ZWRlZiB1Y2hhciBvdXRfVDsKICAgICB0eXBlZGVmIHVjaGFyIG91dF9UX3V2OwogCisgICAgREVG X0YoQ29udmVydCwgb3V0X1QpCisgICAgeworICAgICAgICBERUZBVUxUX0RTVCgwKSA9IGNvbnZf MTB0bzhwbChTVUJfRih5LCAwKSk7CisgICAgfQorCisgICAgREVGX0YoQ29udmVydF91diwgb3V0 X1RfdXYpCisgICAgeworICAgICAgICBERUZBVUxUX0RTVCgxKSA9IGNvbnZfMTB0bzhwbChTVUJf Rih1diwgMSkpOworICAgICAgICBERUZBVUxUX0RTVCgyKSA9IGNvbnZfMTB0bzhwbChTVUJfRih1 diwgMikpOworICAgIH0KK307CisKK3N0cnVjdCBDb252ZXJ0X3BsYW5hcjEwX3BsYW5hcjEwCit7 CisgICAgc3RhdGljIGNvbnN0IGludCBpbl9iaXRfZGVwdGggPSAxMDsKKyAgICB0eXBlZGVmIHVz aG9ydCBpbl9UOworICAgIHR5cGVkZWYgdXNob3J0IGluX1RfdXY7CisgICAgdHlwZWRlZiB1c2hv cnQgb3V0X1Q7CisgICAgdHlwZWRlZiB1c2hvcnQgb3V0X1RfdXY7CisKICAgICBERUZfRihDb252 ZXJ0LCBvdXRfVCkKICAgICB7CiAgICAgICAgIERFRkFVTFRfRFNUKDApID0gU1VCX0YoeSwgMCk7 CkBAIC0xNDUsMjQ5ICsyNzgsMjI3IEBAIHN0cnVjdCBDb252ZXJ0X3l1djQyMHBfeXV2NDQ0cAog ICAgIH0KIH07CiAKLXN0cnVjdCBDb252ZXJ0X3l1djQyMHBfcDAxMGxlCitzdHJ1Y3QgQ29udmVy dF9wbGFuYXIxMF9wbGFuYXIxNgogewotICAgIHN0YXRpYyBjb25zdCBpbnQgaW5fYml0X2RlcHRo ID0gODsKLSAgICB0eXBlZGVmIHVjaGFyIGluX1Q7Ci0gICAgdHlwZWRlZiB1Y2hhciBpbl9UX3V2 OwotICAgIHR5cGVkZWYgdXNob3J0IG91dF9UOwotICAgIHR5cGVkZWYgdXNob3J0MiBvdXRfVF91 djsKLQotICAgIERFRl9GKENvbnZlcnQsIG91dF9UKQotICAgIHsKLSAgICAgICAgREVGQVVMVF9E U1QoMCkgPSBjb252Xzh0bzE2KFNVQl9GKHksIDApLCBtYXNrXzEwYml0KTsKLSAgICB9Ci0KLSAg ICBERUZfRihDb252ZXJ0X3V2LCBvdXRfVF91dikKLSAgICB7Ci0gICAgICAgIERFRkFVTFRfRFNU KDEpID0gbWFrZV91c2hvcnQyKAotICAgICAgICAgICAgY29udl84dG8xNihTVUJfRih1diwgMSks IG1hc2tfMTBiaXQpLAotICAgICAgICAgICAgY29udl84dG8xNihTVUJfRih1diwgMiksIG1hc2tf MTBiaXQpCi0gICAgICAgICk7Ci0gICAgfQotfTsKLQotc3RydWN0IENvbnZlcnRfeXV2NDIwcF9w MDE2bGUKLXsKLSAgICBzdGF0aWMgY29uc3QgaW50IGluX2JpdF9kZXB0aCA9IDg7Ci0gICAgdHlw ZWRlZiB1Y2hhciBpbl9UOwotICAgIHR5cGVkZWYgdWNoYXIgaW5fVF91djsKLSAgICB0eXBlZGVm IHVzaG9ydCBvdXRfVDsKLSAgICB0eXBlZGVmIHVzaG9ydDIgb3V0X1RfdXY7Ci0KLSAgICBERUZf RihDb252ZXJ0LCBvdXRfVCkKLSAgICB7Ci0gICAgICAgIERFRkFVTFRfRFNUKDApID0gY29udl84 dG8xNihTVUJfRih5LCAwKSwgbWFza18xNmJpdCk7Ci0gICAgfQotCi0gICAgREVGX0YoQ29udmVy dF91diwgb3V0X1RfdXYpCi0gICAgewotICAgICAgICBERUZBVUxUX0RTVCgxKSA9IG1ha2VfdXNo b3J0MigKLSAgICAgICAgICAgIGNvbnZfOHRvMTYoU1VCX0YodXYsIDEpLCBtYXNrXzE2Yml0KSwK LSAgICAgICAgICAgIGNvbnZfOHRvMTYoU1VCX0YodXYsIDIpLCBtYXNrXzE2Yml0KQotICAgICAg ICApOwotICAgIH0KLX07Ci0KLXN0cnVjdCBDb252ZXJ0X3l1djQyMHBfeXV2NDQ0cDE2bGUKLXsK LSAgICBzdGF0aWMgY29uc3QgaW50IGluX2JpdF9kZXB0aCA9IDg7Ci0gICAgdHlwZWRlZiB1Y2hh ciBpbl9UOwotICAgIHR5cGVkZWYgdWNoYXIgaW5fVF91djsKKyAgICBzdGF0aWMgY29uc3QgaW50 IGluX2JpdF9kZXB0aCA9IDEwOworICAgIHR5cGVkZWYgdXNob3J0IGluX1Q7CisgICAgdHlwZWRl ZiB1c2hvcnQgaW5fVF91djsKICAgICB0eXBlZGVmIHVzaG9ydCBvdXRfVDsKICAgICB0eXBlZGVm IHVzaG9ydCBvdXRfVF91djsKIAogICAgIERFRl9GKENvbnZlcnQsIG91dF9UKQogICAgIHsKLSAg ICAgICAgREVGQVVMVF9EU1QoMCkgPSBjb252Xzh0bzE2KFNVQl9GKHksIDApLCBtYXNrXzE2Yml0 KTsKKyAgICAgICAgREVGQVVMVF9EU1QoMCkgPSBjb252XzEwdG8xNnBsKFNVQl9GKHksIDApLCBt cGVnX3JhbmdlKTsKICAgICB9CiAKICAgICBERUZfRihDb252ZXJ0X3V2LCBvdXRfVF91dikKICAg ICB7Ci0gICAgICAgIERFRkFVTFRfRFNUKDEpID0gY29udl84dG8xNihTVUJfRih1diwgMSksIG1h c2tfMTZiaXQpOwotICAgICAgICBERUZBVUxUX0RTVCgyKSA9IGNvbnZfOHRvMTYoU1VCX0YodXYs IDIpLCBtYXNrXzE2Yml0KTsKKyAgICAgICAgREVGQVVMVF9EU1QoMSkgPSBjb252XzEwdG8xNnBs KFNVQl9GKHV2LCAxKSwgbXBlZ19yYW5nZSk7CisgICAgICAgIERFRkFVTFRfRFNUKDIpID0gY29u dl8xMHRvMTZwbChTVUJfRih1diwgMiksIG1wZWdfcmFuZ2UpOwogICAgIH0KIH07CiAKLS8vIG52 MTItPlgKLQotc3RydWN0IENvbnZlcnRfbnYxMl95dXY0MjBwCitzdHJ1Y3QgQ29udmVydF9wbGFu YXIxMF9zZW1pcGxhbmFyOAogewotICAgIHN0YXRpYyBjb25zdCBpbnQgaW5fYml0X2RlcHRoID0g ODsKLSAgICB0eXBlZGVmIHVjaGFyIGluX1Q7Ci0gICAgdHlwZWRlZiB1Y2hhcjIgaW5fVF91djsK LSAgICB0eXBlZGVmIHVjaGFyIG91dF9UOwotICAgIHR5cGVkZWYgdWNoYXIgb3V0X1RfdXY7Ci0K LSAgICBERUZfRihDb252ZXJ0LCBvdXRfVCkKLSAgICB7Ci0gICAgICAgIERFRkFVTFRfRFNUKDAp ID0gU1VCX0YoeSwgMCk7Ci0gICAgfQotCi0gICAgREVGX0YoQ29udmVydF91diwgb3V0X1RfdXYp Ci0gICAgewotICAgICAgICBpbl9UX3V2IHJlcyA9IFNVQl9GKHV2LCAxKTsKLSAgICAgICAgREVG QVVMVF9EU1QoMSkgPSByZXMueDsKLSAgICAgICAgREVGQVVMVF9EU1QoMikgPSByZXMueTsKLSAg ICB9Ci19OwotCi1zdHJ1Y3QgQ29udmVydF9udjEyX252MTIKLXsKLSAgICBzdGF0aWMgY29uc3Qg aW50IGluX2JpdF9kZXB0aCA9IDg7Ci0gICAgdHlwZWRlZiB1Y2hhciBpbl9UOwotICAgIHR5cGVk ZWYgdWNoYXIyIGluX1RfdXY7CisgICAgc3RhdGljIGNvbnN0IGludCBpbl9iaXRfZGVwdGggPSAx MDsKKyAgICB0eXBlZGVmIHVzaG9ydCBpbl9UOworICAgIHR5cGVkZWYgdXNob3J0IGluX1RfdXY7 CiAgICAgdHlwZWRlZiB1Y2hhciBvdXRfVDsKICAgICB0eXBlZGVmIHVjaGFyMiBvdXRfVF91djsK IAogICAgIERFRl9GKENvbnZlcnQsIG91dF9UKQogICAgIHsKLSAgICAgICAgREVGQVVMVF9EU1Qo MCkgPSBTVUJfRih5LCAwKTsKLSAgICB9Ci0KLSAgICBERUZfRihDb252ZXJ0X3V2LCBvdXRfVF91 dikKLSAgICB7Ci0gICAgICAgIERFRkFVTFRfRFNUKDEpID0gU1VCX0YodXYsIDEpOwotICAgIH0K LX07Ci0KLXN0cnVjdCBDb252ZXJ0X252MTJfeXV2NDQ0cAotewotICAgIHN0YXRpYyBjb25zdCBp bnQgaW5fYml0X2RlcHRoID0gODsKLSAgICB0eXBlZGVmIHVjaGFyIGluX1Q7Ci0gICAgdHlwZWRl ZiB1Y2hhcjIgaW5fVF91djsKLSAgICB0eXBlZGVmIHVjaGFyIG91dF9UOwotICAgIHR5cGVkZWYg dWNoYXIgb3V0X1RfdXY7Ci0KLSAgICBERUZfRihDb252ZXJ0LCBvdXRfVCkKLSAgICB7Ci0gICAg ICAgIERFRkFVTFRfRFNUKDApID0gU1VCX0YoeSwgMCk7Ci0gICAgfQotCi0gICAgREVGX0YoQ29u dmVydF91diwgb3V0X1RfdXYpCi0gICAgewotICAgICAgICBpbl9UX3V2IHJlcyA9IFNVQl9GKHV2 LCAxKTsKLSAgICAgICAgREVGQVVMVF9EU1QoMSkgPSByZXMueDsKLSAgICAgICAgREVGQVVMVF9E U1QoMikgPSByZXMueTsKLSAgICB9Ci19OwotCi1zdHJ1Y3QgQ29udmVydF9udjEyX3AwMTBsZQot ewotICAgIHN0YXRpYyBjb25zdCBpbnQgaW5fYml0X2RlcHRoID0gODsKLSAgICB0eXBlZGVmIHVj aGFyIGluX1Q7Ci0gICAgdHlwZWRlZiB1Y2hhcjIgaW5fVF91djsKLSAgICB0eXBlZGVmIHVzaG9y dCBvdXRfVDsKLSAgICB0eXBlZGVmIHVzaG9ydDIgb3V0X1RfdXY7Ci0KLSAgICBERUZfRihDb252 ZXJ0LCBvdXRfVCkKLSAgICB7Ci0gICAgICAgIERFRkFVTFRfRFNUKDApID0gY29udl84dG8xNihT VUJfRih5LCAwKSwgbWFza18xMGJpdCk7Ci0gICAgfQotCi0gICAgREVGX0YoQ29udmVydF91diwg b3V0X1RfdXYpCi0gICAgewotICAgICAgICBpbl9UX3V2IHJlcyA9IFNVQl9GKHV2LCAxKTsKLSAg ICAgICAgREVGQVVMVF9EU1QoMSkgPSBtYWtlX3VzaG9ydDIoCi0gICAgICAgICAgICBjb252Xzh0 bzE2KHJlcy54LCBtYXNrXzEwYml0KSwKLSAgICAgICAgICAgIGNvbnZfOHRvMTYocmVzLnksIG1h c2tfMTBiaXQpCi0gICAgICAgICk7Ci0gICAgfQotfTsKLQotc3RydWN0IENvbnZlcnRfbnYxMl9w MDE2bGUKLXsKLSAgICBzdGF0aWMgY29uc3QgaW50IGluX2JpdF9kZXB0aCA9IDg7Ci0gICAgdHlw ZWRlZiB1Y2hhciBpbl9UOwotICAgIHR5cGVkZWYgdWNoYXIyIGluX1RfdXY7Ci0gICAgdHlwZWRl ZiB1c2hvcnQgb3V0X1Q7Ci0gICAgdHlwZWRlZiB1c2hvcnQyIG91dF9UX3V2OwotCi0gICAgREVG X0YoQ29udmVydCwgb3V0X1QpCi0gICAgewotICAgICAgICBERUZBVUxUX0RTVCgwKSA9IGNvbnZf OHRvMTYoU1VCX0YoeSwgMCksIG1hc2tfMTZiaXQpOwotICAgIH0KLQotICAgIERFRl9GKENvbnZl cnRfdXYsIG91dF9UX3V2KQotICAgIHsKLSAgICAgICAgaW5fVF91diByZXMgPSBTVUJfRih1diwg MSk7Ci0gICAgICAgIERFRkFVTFRfRFNUKDEpID0gbWFrZV91c2hvcnQyKAotICAgICAgICAgICAg Y29udl84dG8xNihyZXMueCwgbWFza18xNmJpdCksCi0gICAgICAgICAgICBjb252Xzh0bzE2KHJl cy55LCBtYXNrXzE2Yml0KQotICAgICAgICApOwotICAgIH0KLX07Ci0KLXN0cnVjdCBDb252ZXJ0 X252MTJfeXV2NDQ0cDE2bGUKLXsKLSAgICBzdGF0aWMgY29uc3QgaW50IGluX2JpdF9kZXB0aCA9 IDg7Ci0gICAgdHlwZWRlZiB1Y2hhciBpbl9UOwotICAgIHR5cGVkZWYgdWNoYXIyIGluX1RfdXY7 Ci0gICAgdHlwZWRlZiB1c2hvcnQgb3V0X1Q7Ci0gICAgdHlwZWRlZiB1c2hvcnQgb3V0X1RfdXY7 Ci0KLSAgICBERUZfRihDb252ZXJ0LCBvdXRfVCkKLSAgICB7Ci0gICAgICAgIERFRkFVTFRfRFNU KDApID0gY29udl84dG8xNihTVUJfRih5LCAwKSwgbWFza18xNmJpdCk7Ci0gICAgfQotCi0gICAg REVGX0YoQ29udmVydF91diwgb3V0X1RfdXYpCi0gICAgewotICAgICAgICBpbl9UX3V2IHJlcyA9 IFNVQl9GKHV2LCAxKTsKLSAgICAgICAgREVGQVVMVF9EU1QoMSkgPSBjb252Xzh0bzE2KHJlcy54 LCBtYXNrXzE2Yml0KTsKLSAgICAgICAgREVGQVVMVF9EU1QoMikgPSBjb252Xzh0bzE2KHJlcy55 LCBtYXNrXzE2Yml0KTsKLSAgICB9Ci19OwotCi0vLyB5dXY0NDRwLT5YCi0KLXN0cnVjdCBDb252 ZXJ0X3l1djQ0NHBfeXV2NDIwcAotewotICAgIHN0YXRpYyBjb25zdCBpbnQgaW5fYml0X2RlcHRo ID0gODsKLSAgICB0eXBlZGVmIHVjaGFyIGluX1Q7Ci0gICAgdHlwZWRlZiB1Y2hhciBpbl9UX3V2 OwotICAgIHR5cGVkZWYgdWNoYXIgb3V0X1Q7Ci0gICAgdHlwZWRlZiB1Y2hhciBvdXRfVF91djsK LQotICAgIERFRl9GKENvbnZlcnQsIG91dF9UKQotICAgIHsKLSAgICAgICAgREVGQVVMVF9EU1Qo MCkgPSBTVUJfRih5LCAwKTsKLSAgICB9Ci0KLSAgICBERUZfRihDb252ZXJ0X3V2LCBvdXRfVF91 dikKLSAgICB7Ci0gICAgICAgIERFRkFVTFRfRFNUKDEpID0gU1VCX0YodXYsIDEpOwotICAgICAg ICBERUZBVUxUX0RTVCgyKSA9IFNVQl9GKHV2LCAyKTsKLSAgICB9Ci19OwotCi1zdHJ1Y3QgQ29u dmVydF95dXY0NDRwX252MTIKLXsKLSAgICBzdGF0aWMgY29uc3QgaW50IGluX2JpdF9kZXB0aCA9 IDg7Ci0gICAgdHlwZWRlZiB1Y2hhciBpbl9UOwotICAgIHR5cGVkZWYgdWNoYXIgaW5fVF91djsK LSAgICB0eXBlZGVmIHVjaGFyIG91dF9UOwotICAgIHR5cGVkZWYgdWNoYXIyIG91dF9UX3V2Owot Ci0gICAgREVGX0YoQ29udmVydCwgb3V0X1QpCi0gICAgewotICAgICAgICBERUZBVUxUX0RTVCgw KSA9IFNVQl9GKHksIDApOworICAgICAgICBERUZBVUxUX0RTVCgwKSA9IGNvbnZfMTB0bzhwbChT VUJfRih5LCAwKSk7CiAgICAgfQogCiAgICAgREVGX0YoQ29udmVydF91diwgb3V0X1RfdXYpCiAg ICAgewogICAgICAgICBERUZBVUxUX0RTVCgxKSA9IG1ha2VfdWNoYXIyKAorICAgICAgICAgICAg Y29udl8xMHRvOHBsKFNVQl9GKHV2LCAxKSksCisgICAgICAgICAgICBjb252XzEwdG84cGwoU1VC X0YodXYsIDIpKQorICAgICAgICApOworICAgIH0KK307CisKK3N0cnVjdCBDb252ZXJ0X3BsYW5h cjEwX3NlbWlwbGFuYXIxMAoreworICAgIHN0YXRpYyBjb25zdCBpbnQgaW5fYml0X2RlcHRoID0g MTA7CisgICAgdHlwZWRlZiB1c2hvcnQgaW5fVDsKKyAgICB0eXBlZGVmIHVzaG9ydCBpbl9UX3V2 OworICAgIHR5cGVkZWYgdXNob3J0IG91dF9UOworICAgIHR5cGVkZWYgdXNob3J0MiBvdXRfVF91 djsKKworICAgIERFRl9GKENvbnZlcnQsIG91dF9UKQorICAgIHsKKyAgICAgICAgREVGQVVMVF9E U1QoMCkgPSAoU1VCX0YoeSwgMCkgPDwgNik7CisgICAgfQorCisgICAgREVGX0YoQ29udmVydF91 diwgb3V0X1RfdXYpCisgICAgeworICAgICAgICBERUZBVUxUX0RTVCgxKSA9IG1ha2VfdXNob3J0 MigKKyAgICAgICAgICAgIChTVUJfRih1diwgMSkgPDwgNiksCisgICAgICAgICAgICAoU1VCX0Yo dXYsIDIpIDw8IDYpCisgICAgICAgICk7CisgICAgfQorfTsKKworc3RydWN0IENvbnZlcnRfcGxh bmFyMTBfc2VtaXBsYW5hcjE2Cit7CisgICAgc3RhdGljIGNvbnN0IGludCBpbl9iaXRfZGVwdGgg PSAxMDsKKyAgICB0eXBlZGVmIHVzaG9ydCBpbl9UOworICAgIHR5cGVkZWYgdXNob3J0IGluX1Rf dXY7CisgICAgdHlwZWRlZiB1c2hvcnQgb3V0X1Q7CisgICAgdHlwZWRlZiB1c2hvcnQyIG91dF9U X3V2OworCisgICAgREVGX0YoQ29udmVydCwgb3V0X1QpCisgICAgeworICAgICAgICBERUZBVUxU X0RTVCgwKSA9IGNvbnZfMTB0bzE2cGwoU1VCX0YoeSwgMCksIG1wZWdfcmFuZ2UpOworICAgIH0K KworICAgIERFRl9GKENvbnZlcnRfdXYsIG91dF9UX3V2KQorICAgIHsKKyAgICAgICAgREVGQVVM VF9EU1QoMSkgPSBtYWtlX3VzaG9ydDIoCisgICAgICAgICAgICBjb252XzEwdG8xNnBsKFNVQl9G KHV2LCAxKSwgbXBlZ19yYW5nZSksCisgICAgICAgICAgICBjb252XzEwdG8xNnBsKFNVQl9GKHV2 LCAyKSwgbXBlZ19yYW5nZSkKKyAgICAgICAgKTsKKyAgICB9Cit9OworCisvLyBwbGFuYXIxNi0+ WAorCitzdHJ1Y3QgQ29udmVydF9wbGFuYXIxNl9wbGFuYXI4Cit7CisgICAgc3RhdGljIGNvbnN0 IGludCBpbl9iaXRfZGVwdGggPSAxNjsKKyAgICB0eXBlZGVmIHVzaG9ydCBpbl9UOworICAgIHR5 cGVkZWYgdXNob3J0IGluX1RfdXY7CisgICAgdHlwZWRlZiB1Y2hhciBvdXRfVDsKKyAgICB0eXBl ZGVmIHVjaGFyIG91dF9UX3V2OworCisgICAgREVGX0YoQ29udmVydCwgb3V0X1QpCisgICAgewor ICAgICAgICBERUZBVUxUX0RTVCgwKSA9IGNvbnZfMTZ0bzgoU1VCX0YoeSwgMCkpOworICAgIH0K KworICAgIERFRl9GKENvbnZlcnRfdXYsIG91dF9UX3V2KQorICAgIHsKKyAgICAgICAgREVGQVVM VF9EU1QoMSkgPSBjb252XzE2dG84KFNVQl9GKHV2LCAxKSk7CisgICAgICAgIERFRkFVTFRfRFNU KDIpID0gY29udl8xNnRvOChTVUJfRih1diwgMikpOworICAgIH0KK307CisKK3N0cnVjdCBDb252 ZXJ0X3BsYW5hcjE2X3BsYW5hcjEwCit7CisgICAgc3RhdGljIGNvbnN0IGludCBpbl9iaXRfZGVw dGggPSAxNjsKKyAgICB0eXBlZGVmIHVzaG9ydCBpbl9UOworICAgIHR5cGVkZWYgdXNob3J0IGlu X1RfdXY7CisgICAgdHlwZWRlZiB1c2hvcnQgb3V0X1Q7CisgICAgdHlwZWRlZiB1c2hvcnQgb3V0 X1RfdXY7CisKKyAgICBERUZfRihDb252ZXJ0LCBvdXRfVCkKKyAgICB7CisgICAgICAgIERFRkFV TFRfRFNUKDApID0gY29udl8xNnRvMTBwbChTVUJfRih5LCAwKSk7CisgICAgfQorCisgICAgREVG X0YoQ29udmVydF91diwgb3V0X1RfdXYpCisgICAgeworICAgICAgICBERUZBVUxUX0RTVCgxKSA9 IGNvbnZfMTZ0bzEwcGwoU1VCX0YodXYsIDEpKTsKKyAgICAgICAgREVGQVVMVF9EU1QoMikgPSBj b252XzE2dG8xMHBsKFNVQl9GKHV2LCAyKSk7CisgICAgfQorfTsKKworc3RydWN0IENvbnZlcnRf cGxhbmFyMTZfcGxhbmFyMTYKK3sKKyAgICBzdGF0aWMgY29uc3QgaW50IGluX2JpdF9kZXB0aCA9 IDE2OworICAgIHR5cGVkZWYgdXNob3J0IGluX1Q7CisgICAgdHlwZWRlZiB1c2hvcnQgaW5fVF91 djsKKyAgICB0eXBlZGVmIHVzaG9ydCBvdXRfVDsKKyAgICB0eXBlZGVmIHVzaG9ydCBvdXRfVF91 djsKKworICAgIERFRl9GKENvbnZlcnQsIG91dF9UKQorICAgIHsKKyAgICAgICAgREVGQVVMVF9E U1QoMCkgPSBTVUJfRih5LCAwKTsKKyAgICB9CisKKyAgICBERUZfRihDb252ZXJ0X3V2LCBvdXRf VF91dikKKyAgICB7CisgICAgICAgIERFRkFVTFRfRFNUKDEpID0gU1VCX0YodXYsIDEpOworICAg ICAgICBERUZBVUxUX0RTVCgyKSA9IFNVQl9GKHV2LCAyKTsKKyAgICB9Cit9OworCitzdHJ1Y3Qg Q29udmVydF9wbGFuYXIxNl9zZW1pcGxhbmFyOAoreworICAgIHN0YXRpYyBjb25zdCBpbnQgaW5f Yml0X2RlcHRoID0gMTY7CisgICAgdHlwZWRlZiB1c2hvcnQgaW5fVDsKKyAgICB0eXBlZGVmIHVz aG9ydCBpbl9UX3V2OworICAgIHR5cGVkZWYgdWNoYXIgb3V0X1Q7CisgICAgdHlwZWRlZiB1Y2hh cjIgb3V0X1RfdXY7CisKKyAgICBERUZfRihDb252ZXJ0LCBvdXRfVCkKKyAgICB7CisgICAgICAg IERFRkFVTFRfRFNUKDApID0gY29udl8xNnRvOChTVUJfRih5LCAwKSk7CisgICAgfQorCisgICAg REVGX0YoQ29udmVydF91diwgb3V0X1RfdXYpCisgICAgeworICAgICAgICBERUZBVUxUX0RTVCgx KSA9IG1ha2VfdWNoYXIyKAorICAgICAgICAgICAgY29udl8xNnRvOChTVUJfRih1diwgMSkpLAor ICAgICAgICAgICAgY29udl8xNnRvOChTVUJfRih1diwgMikpCisgICAgICAgICk7CisgICAgfQor fTsKKworc3RydWN0IENvbnZlcnRfcGxhbmFyMTZfc2VtaXBsYW5hcjEwCit7CisgICAgc3RhdGlj IGNvbnN0IGludCBpbl9iaXRfZGVwdGggPSAxNjsKKyAgICB0eXBlZGVmIHVzaG9ydCBpbl9UOwor ICAgIHR5cGVkZWYgdXNob3J0IGluX1RfdXY7CisgICAgdHlwZWRlZiB1c2hvcnQgb3V0X1Q7Cisg ICAgdHlwZWRlZiB1c2hvcnQyIG91dF9UX3V2OworCisgICAgREVGX0YoQ29udmVydCwgb3V0X1Qp CisgICAgeworICAgICAgICBERUZBVUxUX0RTVCgwKSA9IGNvbnZfMTZ0bzEwKFNVQl9GKHksIDAp KTsKKyAgICB9CisKKyAgICBERUZfRihDb252ZXJ0X3V2LCBvdXRfVF91dikKKyAgICB7CisgICAg ICAgIERFRkFVTFRfRFNUKDEpID0gbWFrZV91c2hvcnQyKAorICAgICAgICAgICAgY29udl8xNnRv MTAoU1VCX0YodXYsIDEpKSwKKyAgICAgICAgICAgIGNvbnZfMTZ0bzEwKFNVQl9GKHV2LCAyKSkK KyAgICAgICAgKTsKKyAgICB9Cit9OworCitzdHJ1Y3QgQ29udmVydF9wbGFuYXIxNl9zZW1pcGxh bmFyMTYKK3sKKyAgICBzdGF0aWMgY29uc3QgaW50IGluX2JpdF9kZXB0aCA9IDE2OworICAgIHR5 cGVkZWYgdXNob3J0IGluX1Q7CisgICAgdHlwZWRlZiB1c2hvcnQgaW5fVF91djsKKyAgICB0eXBl ZGVmIHVzaG9ydCBvdXRfVDsKKyAgICB0eXBlZGVmIHVzaG9ydDIgb3V0X1RfdXY7CisKKyAgICBE RUZfRihDb252ZXJ0LCBvdXRfVCkKKyAgICB7CisgICAgICAgIERFRkFVTFRfRFNUKDApID0gU1VC X0YoeSwgMCk7CisgICAgfQorCisgICAgREVGX0YoQ29udmVydF91diwgb3V0X1RfdXYpCisgICAg eworICAgICAgICBERUZBVUxUX0RTVCgxKSA9IG1ha2VfdXNob3J0MigKICAgICAgICAgICAgIFNV Ql9GKHV2LCAxKSwKICAgICAgICAgICAgIFNVQl9GKHV2LCAyKQogICAgICAgICApOwogICAgIH0K IH07CiAKLXN0cnVjdCBDb252ZXJ0X3l1djQ0NHBfeXV2NDQ0cAorLy8gc2VtaXBsYW5hcjgtPlgK Kworc3RydWN0IENvbnZlcnRfc2VtaXBsYW5hcjhfcGxhbmFyOAogewogICAgIHN0YXRpYyBjb25z dCBpbnQgaW5fYml0X2RlcHRoID0gODsKICAgICB0eXBlZGVmIHVjaGFyIGluX1Q7Ci0gICAgdHlw ZWRlZiB1Y2hhciBpbl9UX3V2OworICAgIHR5cGVkZWYgdWNoYXIyIGluX1RfdXY7CiAgICAgdHlw ZWRlZiB1Y2hhciBvdXRfVDsKICAgICB0eXBlZGVmIHVjaGFyIG91dF9UX3V2OwogCkBAIC0zOTgs NzggKzUwOSwxMjIgQEAgc3RydWN0IENvbnZlcnRfeXV2NDQ0cF95dXY0NDRwCiAKICAgICBERUZf RihDb252ZXJ0X3V2LCBvdXRfVF91dikKICAgICB7Ci0gICAgICAgIERFRkFVTFRfRFNUKDEpID0g U1VCX0YodXYsIDEpOwotICAgICAgICBERUZBVUxUX0RTVCgyKSA9IFNVQl9GKHV2LCAyKTsKKyAg ICAgICAgaW5fVF91diByZXMgPSBTVUJfRih1diwgMSk7CisgICAgICAgIERFRkFVTFRfRFNUKDEp ID0gcmVzLng7CisgICAgICAgIERFRkFVTFRfRFNUKDIpID0gcmVzLnk7CiAgICAgfQogfTsKIAot c3RydWN0IENvbnZlcnRfeXV2NDQ0cF9wMDEwbGUKK3N0cnVjdCBDb252ZXJ0X3NlbWlwbGFuYXI4 X3BsYW5hcjEwCiB7CiAgICAgc3RhdGljIGNvbnN0IGludCBpbl9iaXRfZGVwdGggPSA4OwogICAg IHR5cGVkZWYgdWNoYXIgaW5fVDsKLSAgICB0eXBlZGVmIHVjaGFyIGluX1RfdXY7Ci0gICAgdHlw ZWRlZiB1c2hvcnQgb3V0X1Q7Ci0gICAgdHlwZWRlZiB1c2hvcnQyIG91dF9UX3V2OwotCi0gICAg REVGX0YoQ29udmVydCwgb3V0X1QpCi0gICAgewotICAgICAgICBERUZBVUxUX0RTVCgwKSA9IGNv bnZfOHRvMTYoU1VCX0YoeSwgMCksIG1hc2tfMTBiaXQpOwotICAgIH0KLQotICAgIERFRl9GKENv bnZlcnRfdXYsIG91dF9UX3V2KQotICAgIHsKLSAgICAgICAgREVGQVVMVF9EU1QoMSkgPSBtYWtl X3VzaG9ydDIoCi0gICAgICAgICAgICBjb252Xzh0bzE2KFNVQl9GKHV2LCAxKSwgbWFza18xMGJp dCksCi0gICAgICAgICAgICBjb252Xzh0bzE2KFNVQl9GKHV2LCAyKSwgbWFza18xMGJpdCkKLSAg ICAgICAgKTsKLSAgICB9Ci19OwotCi1zdHJ1Y3QgQ29udmVydF95dXY0NDRwX3AwMTZsZQotewot ICAgIHN0YXRpYyBjb25zdCBpbnQgaW5fYml0X2RlcHRoID0gODsKLSAgICB0eXBlZGVmIHVjaGFy IGluX1Q7Ci0gICAgdHlwZWRlZiB1Y2hhciBpbl9UX3V2OwotICAgIHR5cGVkZWYgdXNob3J0IG91 dF9UOwotICAgIHR5cGVkZWYgdXNob3J0MiBvdXRfVF91djsKLQotICAgIERFRl9GKENvbnZlcnQs IG91dF9UKQotICAgIHsKLSAgICAgICAgREVGQVVMVF9EU1QoMCkgPSBjb252Xzh0bzE2KFNVQl9G KHksIDApLCBtYXNrXzE2Yml0KTsKLSAgICB9Ci0KLSAgICBERUZfRihDb252ZXJ0X3V2LCBvdXRf VF91dikKLSAgICB7Ci0gICAgICAgIERFRkFVTFRfRFNUKDEpID0gbWFrZV91c2hvcnQyKAotICAg ICAgICAgICAgY29udl84dG8xNihTVUJfRih1diwgMSksIG1hc2tfMTZiaXQpLAotICAgICAgICAg ICAgY29udl84dG8xNihTVUJfRih1diwgMiksIG1hc2tfMTZiaXQpCi0gICAgICAgICk7Ci0gICAg fQotfTsKLQotc3RydWN0IENvbnZlcnRfeXV2NDQ0cF95dXY0NDRwMTZsZQotewotICAgIHN0YXRp YyBjb25zdCBpbnQgaW5fYml0X2RlcHRoID0gODsKLSAgICB0eXBlZGVmIHVjaGFyIGluX1Q7Ci0g ICAgdHlwZWRlZiB1Y2hhciBpbl9UX3V2OworICAgIHR5cGVkZWYgdWNoYXIyIGluX1RfdXY7CiAg ICAgdHlwZWRlZiB1c2hvcnQgb3V0X1Q7CiAgICAgdHlwZWRlZiB1c2hvcnQgb3V0X1RfdXY7CiAK ICAgICBERUZfRihDb252ZXJ0LCBvdXRfVCkKICAgICB7Ci0gICAgICAgIERFRkFVTFRfRFNUKDAp ID0gY29udl84dG8xNihTVUJfRih5LCAwKSwgbWFza18xNmJpdCk7CisgICAgICAgIERFRkFVTFRf RFNUKDApID0gY29udl84dG8xMHBsKFNVQl9GKHksIDApLCBtcGVnX3JhbmdlKTsKICAgICB9CiAK ICAgICBERUZfRihDb252ZXJ0X3V2LCBvdXRfVF91dikKICAgICB7Ci0gICAgICAgIERFRkFVTFRf RFNUKDEpID0gY29udl84dG8xNihTVUJfRih1diwgMSksIG1hc2tfMTZiaXQpOwotICAgICAgICBE RUZBVUxUX0RTVCgyKSA9IGNvbnZfOHRvMTYoU1VCX0YodXYsIDIpLCBtYXNrXzE2Yml0KTsKKyAg ICAgICAgaW5fVF91diByZXMgPSBTVUJfRih1diwgMSk7CisgICAgICAgIERFRkFVTFRfRFNUKDEp ID0gY29udl84dG8xMHBsKHJlcy54LCBtcGVnX3JhbmdlKTsKKyAgICAgICAgREVGQVVMVF9EU1Qo MikgPSBjb252Xzh0bzEwcGwocmVzLnksIG1wZWdfcmFuZ2UpOwogICAgIH0KIH07CiAKLS8vIHAw MTBsZS0+WAorc3RydWN0IENvbnZlcnRfc2VtaXBsYW5hcjhfcGxhbmFyMTYKK3sKKyAgICBzdGF0 aWMgY29uc3QgaW50IGluX2JpdF9kZXB0aCA9IDg7CisgICAgdHlwZWRlZiB1Y2hhciBpbl9UOwor ICAgIHR5cGVkZWYgdWNoYXIyIGluX1RfdXY7CisgICAgdHlwZWRlZiB1c2hvcnQgb3V0X1Q7Cisg ICAgdHlwZWRlZiB1c2hvcnQgb3V0X1RfdXY7CiAKLXN0cnVjdCBDb252ZXJ0X3AwMTBsZV95dXY0 MjBwCisgICAgREVGX0YoQ29udmVydCwgb3V0X1QpCisgICAgeworICAgICAgICBERUZBVUxUX0RT VCgwKSA9IGNvbnZfOHRvMTYoU1VCX0YoeSwgMCksIG1hc2tfMTZiaXQsIG1wZWdfcmFuZ2UpOwor ICAgIH0KKworICAgIERFRl9GKENvbnZlcnRfdXYsIG91dF9UX3V2KQorICAgIHsKKyAgICAgICAg aW5fVF91diByZXMgPSBTVUJfRih1diwgMSk7CisgICAgICAgIERFRkFVTFRfRFNUKDEpID0gY29u dl84dG8xNihyZXMueCwgbWFza18xNmJpdCwgbXBlZ19yYW5nZSk7CisgICAgICAgIERFRkFVTFRf RFNUKDIpID0gY29udl84dG8xNihyZXMueSwgbWFza18xNmJpdCwgbXBlZ19yYW5nZSk7CisgICAg fQorfTsKKworc3RydWN0IENvbnZlcnRfc2VtaXBsYW5hcjhfc2VtaXBsYW5hcjgKK3sKKyAgICBz dGF0aWMgY29uc3QgaW50IGluX2JpdF9kZXB0aCA9IDg7CisgICAgdHlwZWRlZiB1Y2hhciBpbl9U OworICAgIHR5cGVkZWYgdWNoYXIyIGluX1RfdXY7CisgICAgdHlwZWRlZiB1Y2hhciBvdXRfVDsK KyAgICB0eXBlZGVmIHVjaGFyMiBvdXRfVF91djsKKworICAgIERFRl9GKENvbnZlcnQsIG91dF9U KQorICAgIHsKKyAgICAgICAgREVGQVVMVF9EU1QoMCkgPSBTVUJfRih5LCAwKTsKKyAgICB9CisK KyAgICBERUZfRihDb252ZXJ0X3V2LCBvdXRfVF91dikKKyAgICB7CisgICAgICAgIERFRkFVTFRf RFNUKDEpID0gU1VCX0YodXYsIDEpOworICAgIH0KK307CisKK3N0cnVjdCBDb252ZXJ0X3NlbWlw bGFuYXI4X3NlbWlwbGFuYXIxMAoreworICAgIHN0YXRpYyBjb25zdCBpbnQgaW5fYml0X2RlcHRo ID0gODsKKyAgICB0eXBlZGVmIHVjaGFyIGluX1Q7CisgICAgdHlwZWRlZiB1Y2hhcjIgaW5fVF91 djsKKyAgICB0eXBlZGVmIHVzaG9ydCBvdXRfVDsKKyAgICB0eXBlZGVmIHVzaG9ydDIgb3V0X1Rf dXY7CisKKyAgICBERUZfRihDb252ZXJ0LCBvdXRfVCkKKyAgICB7CisgICAgICAgIERFRkFVTFRf RFNUKDApID0gY29udl84dG8xNihTVUJfRih5LCAwKSwgbWFza18xMGJpdCwgbXBlZ19yYW5nZSk7 CisgICAgfQorCisgICAgREVGX0YoQ29udmVydF91diwgb3V0X1RfdXYpCisgICAgeworICAgICAg ICBpbl9UX3V2IHJlcyA9IFNVQl9GKHV2LCAxKTsKKyAgICAgICAgREVGQVVMVF9EU1QoMSkgPSBt YWtlX3VzaG9ydDIoCisgICAgICAgICAgICBjb252Xzh0bzE2KHJlcy54LCBtYXNrXzEwYml0LCBt cGVnX3JhbmdlKSwKKyAgICAgICAgICAgIGNvbnZfOHRvMTYocmVzLnksIG1hc2tfMTBiaXQsIG1w ZWdfcmFuZ2UpCisgICAgICAgICk7CisgICAgfQorfTsKKworc3RydWN0IENvbnZlcnRfc2VtaXBs YW5hcjhfc2VtaXBsYW5hcjE2Cit7CisgICAgc3RhdGljIGNvbnN0IGludCBpbl9iaXRfZGVwdGgg PSA4OworICAgIHR5cGVkZWYgdWNoYXIgaW5fVDsKKyAgICB0eXBlZGVmIHVjaGFyMiBpbl9UX3V2 OworICAgIHR5cGVkZWYgdXNob3J0IG91dF9UOworICAgIHR5cGVkZWYgdXNob3J0MiBvdXRfVF91 djsKKworICAgIERFRl9GKENvbnZlcnQsIG91dF9UKQorICAgIHsKKyAgICAgICAgREVGQVVMVF9E U1QoMCkgPSBjb252Xzh0bzE2KFNVQl9GKHksIDApLCBtYXNrXzE2Yml0LCBtcGVnX3JhbmdlKTsK KyAgICB9CisKKyAgICBERUZfRihDb252ZXJ0X3V2LCBvdXRfVF91dikKKyAgICB7CisgICAgICAg IGluX1RfdXYgcmVzID0gU1VCX0YodXYsIDEpOworICAgICAgICBERUZBVUxUX0RTVCgxKSA9IG1h a2VfdXNob3J0MigKKyAgICAgICAgICAgIGNvbnZfOHRvMTYocmVzLngsIG1hc2tfMTZiaXQsIG1w ZWdfcmFuZ2UpLAorICAgICAgICAgICAgY29udl84dG8xNihyZXMueSwgbWFza18xNmJpdCwgbXBl Z19yYW5nZSkKKyAgICAgICAgKTsKKyAgICB9Cit9OworCisvLyBzZW1pcGxhbmFyMTAtPlgKKwor c3RydWN0IENvbnZlcnRfc2VtaXBsYW5hcjEwX3BsYW5hcjgKIHsKICAgICBzdGF0aWMgY29uc3Qg aW50IGluX2JpdF9kZXB0aCA9IDEwOwogICAgIHR5cGVkZWYgdXNob3J0IGluX1Q7CkBAIC00OTAs NyArNjQ1LDQ5IEBAIHN0cnVjdCBDb252ZXJ0X3AwMTBsZV95dXY0MjBwCiAgICAgfQogfTsKIAot c3RydWN0IENvbnZlcnRfcDAxMGxlX252MTIKK3N0cnVjdCBDb252ZXJ0X3NlbWlwbGFuYXIxMF9w bGFuYXIxMAoreworICAgIHN0YXRpYyBjb25zdCBpbnQgaW5fYml0X2RlcHRoID0gMTA7CisgICAg dHlwZWRlZiB1c2hvcnQgaW5fVDsKKyAgICB0eXBlZGVmIHVzaG9ydDIgaW5fVF91djsKKyAgICB0 eXBlZGVmIHVzaG9ydCBvdXRfVDsKKyAgICB0eXBlZGVmIHVzaG9ydCBvdXRfVF91djsKKworICAg IERFRl9GKENvbnZlcnQsIG91dF9UKQorICAgIHsKKyAgICAgICAgREVGQVVMVF9EU1QoMCkgPSBT VUJfRih5LCAwKSA+PiA2OworICAgIH0KKworICAgIERFRl9GKENvbnZlcnRfdXYsIG91dF9UX3V2 KQorICAgIHsKKyAgICAgICAgaW5fVF91diByZXMgPSBTVUJfRih1diwgMSk7CisgICAgICAgIERF RkFVTFRfRFNUKDEpID0gcmVzLnggPj4gNjsKKyAgICAgICAgREVGQVVMVF9EU1QoMikgPSByZXMu eSA+PiA2OworICAgIH0KK307CisKK3N0cnVjdCBDb252ZXJ0X3NlbWlwbGFuYXIxMF9wbGFuYXIx NgoreworICAgIHN0YXRpYyBjb25zdCBpbnQgaW5fYml0X2RlcHRoID0gMTA7CisgICAgdHlwZWRl ZiB1c2hvcnQgaW5fVDsKKyAgICB0eXBlZGVmIHVzaG9ydDIgaW5fVF91djsKKyAgICB0eXBlZGVm IHVzaG9ydCBvdXRfVDsKKyAgICB0eXBlZGVmIHVzaG9ydCBvdXRfVF91djsKKworICAgIERFRl9G KENvbnZlcnQsIG91dF9UKQorICAgIHsKKyAgICAgICAgREVGQVVMVF9EU1QoMCkgPSBjb252XzEw dG8xNihTVUJfRih5LCAwKSwgbXBlZ19yYW5nZSk7CisgICAgfQorCisgICAgREVGX0YoQ29udmVy dF91diwgb3V0X1RfdXYpCisgICAgeworICAgICAgICBpbl9UX3V2IHJlcyA9IFNVQl9GKHV2LCAx KTsKKyAgICAgICAgREVGQVVMVF9EU1QoMSkgPSBjb252XzEwdG8xNihyZXMueCwgbXBlZ19yYW5n ZSk7CisgICAgICAgIERFRkFVTFRfRFNUKDIpID0gY29udl8xMHRvMTYocmVzLnksIG1wZWdfcmFu Z2UpOworICAgIH0KK307CisKK3N0cnVjdCBDb252ZXJ0X3NlbWlwbGFuYXIxMF9zZW1pcGxhbmFy OAogewogICAgIHN0YXRpYyBjb25zdCBpbnQgaW5fYml0X2RlcHRoID0gMTA7CiAgICAgdHlwZWRl ZiB1c2hvcnQgaW5fVDsKQEAgLTUxMywyOCArNzEwLDcgQEAgc3RydWN0IENvbnZlcnRfcDAxMGxl X252MTIKICAgICB9CiB9OwogCi1zdHJ1Y3QgQ29udmVydF9wMDEwbGVfeXV2NDQ0cAotewotICAg IHN0YXRpYyBjb25zdCBpbnQgaW5fYml0X2RlcHRoID0gMTA7Ci0gICAgdHlwZWRlZiB1c2hvcnQg aW5fVDsKLSAgICB0eXBlZGVmIHVzaG9ydDIgaW5fVF91djsKLSAgICB0eXBlZGVmIHVjaGFyIG91 dF9UOwotICAgIHR5cGVkZWYgdWNoYXIgb3V0X1RfdXY7Ci0KLSAgICBERUZfRihDb252ZXJ0LCBv dXRfVCkKLSAgICB7Ci0gICAgICAgIERFRkFVTFRfRFNUKDApID0gY29udl8xMHRvOChTVUJfRih5 LCAwKSk7Ci0gICAgfQotCi0gICAgREVGX0YoQ29udmVydF91diwgb3V0X1RfdXYpCi0gICAgewot ICAgICAgICBpbl9UX3V2IHJlcyA9IFNVQl9GKHV2LCAxKTsKLSAgICAgICAgREVGQVVMVF9EU1Qo MSkgPSBjb252XzEwdG84KHJlcy54KTsKLSAgICAgICAgREVGQVVMVF9EU1QoMikgPSBjb252XzEw dG84KHJlcy55KTsKLSAgICB9Ci19OwotCi1zdHJ1Y3QgQ29udmVydF9wMDEwbGVfcDAxMGxlCitz dHJ1Y3QgQ29udmVydF9zZW1pcGxhbmFyMTBfc2VtaXBsYW5hcjEwCiB7CiAgICAgc3RhdGljIGNv bnN0IGludCBpbl9iaXRfZGVwdGggPSAxMDsKICAgICB0eXBlZGVmIHVzaG9ydCBpbl9UOwpAQCAt NTUzLDcgKzcyOSw3IEBAIHN0cnVjdCBDb252ZXJ0X3AwMTBsZV9wMDEwbGUKICAgICB9CiB9Owog Ci1zdHJ1Y3QgQ29udmVydF9wMDEwbGVfcDAxNmxlCitzdHJ1Y3QgQ29udmVydF9zZW1pcGxhbmFy MTBfc2VtaXBsYW5hcjE2CiB7CiAgICAgc3RhdGljIGNvbnN0IGludCBpbl9iaXRfZGVwdGggPSAx MDsKICAgICB0eXBlZGVmIHVzaG9ydCBpbl9UOwpAQCAtNTYzLDQzICs3MzksMjMgQEAgc3RydWN0 IENvbnZlcnRfcDAxMGxlX3AwMTZsZQogCiAgICAgREVGX0YoQ29udmVydCwgb3V0X1QpCiAgICAg ewotICAgICAgICBERUZBVUxUX0RTVCgwKSA9IGNvbnZfMTB0bzE2KFNVQl9GKHksIDApKTsKKyAg ICAgICAgREVGQVVMVF9EU1QoMCkgPSBjb252XzEwdG8xNihTVUJfRih5LCAwKSwgbXBlZ19yYW5n ZSk7CiAgICAgfQogCiAgICAgREVGX0YoQ29udmVydF91diwgb3V0X1RfdXYpCiAgICAgewogICAg ICAgICBpbl9UX3V2IHJlcyA9IFNVQl9GKHV2LCAxKTsKICAgICAgICAgREVGQVVMVF9EU1QoMSkg PSBtYWtlX3VzaG9ydDIoCi0gICAgICAgICAgICBjb252XzEwdG8xNihyZXMueCksCi0gICAgICAg ICAgICBjb252XzEwdG8xNihyZXMueSkKKyAgICAgICAgICAgIGNvbnZfMTB0bzE2KHJlcy54LCBt cGVnX3JhbmdlKSwKKyAgICAgICAgICAgIGNvbnZfMTB0bzE2KHJlcy55LCBtcGVnX3JhbmdlKQog ICAgICAgICApOwogICAgIH0KIH07CiAKLXN0cnVjdCBDb252ZXJ0X3AwMTBsZV95dXY0NDRwMTZs ZQotewotICAgIHN0YXRpYyBjb25zdCBpbnQgaW5fYml0X2RlcHRoID0gMTA7Ci0gICAgdHlwZWRl ZiB1c2hvcnQgaW5fVDsKLSAgICB0eXBlZGVmIHVzaG9ydDIgaW5fVF91djsKLSAgICB0eXBlZGVm IHVzaG9ydCBvdXRfVDsKLSAgICB0eXBlZGVmIHVzaG9ydCBvdXRfVF91djsKIAotICAgIERFRl9G KENvbnZlcnQsIG91dF9UKQotICAgIHsKLSAgICAgICAgREVGQVVMVF9EU1QoMCkgPSBjb252XzEw dG8xNihTVUJfRih5LCAwKSk7Ci0gICAgfQorLy8gc2VtaXBsYW5hcjE2LT5YCiAKLSAgICBERUZf RihDb252ZXJ0X3V2LCBvdXRfVF91dikKLSAgICB7Ci0gICAgICAgIGluX1RfdXYgcmVzID0gU1VC X0YodXYsIDEpOwotICAgICAgICBERUZBVUxUX0RTVCgxKSA9IGNvbnZfMTB0bzE2KHJlcy54KTsK LSAgICAgICAgREVGQVVMVF9EU1QoMikgPSBjb252XzEwdG8xNihyZXMueSk7Ci0gICAgfQotfTsK LQotLy8gcDAxNmxlLT5YCi0KLXN0cnVjdCBDb252ZXJ0X3AwMTZsZV95dXY0MjBwCitzdHJ1Y3Qg Q29udmVydF9zZW1pcGxhbmFyMTZfcGxhbmFyOAogewogICAgIHN0YXRpYyBjb25zdCBpbnQgaW5f Yml0X2RlcHRoID0gMTY7CiAgICAgdHlwZWRlZiB1c2hvcnQgaW5fVDsKQEAgLTYyMCw3ICs3NzYs NDkgQEAgc3RydWN0IENvbnZlcnRfcDAxNmxlX3l1djQyMHAKICAgICB9CiB9OwogCi1zdHJ1Y3Qg Q29udmVydF9wMDE2bGVfbnYxMgorc3RydWN0IENvbnZlcnRfc2VtaXBsYW5hcjE2X3BsYW5hcjEw Cit7CisgICAgc3RhdGljIGNvbnN0IGludCBpbl9iaXRfZGVwdGggPSAxNjsKKyAgICB0eXBlZGVm IHVzaG9ydCBpbl9UOworICAgIHR5cGVkZWYgdXNob3J0MiBpbl9UX3V2OworICAgIHR5cGVkZWYg dXNob3J0IG91dF9UOworICAgIHR5cGVkZWYgdXNob3J0IG91dF9UX3V2OworCisgICAgREVGX0Yo Q29udmVydCwgb3V0X1QpCisgICAgeworICAgICAgICBERUZBVUxUX0RTVCgwKSA9IGNvbnZfMTZ0 bzEwcGwoU1VCX0YoeSwgMCkpOworICAgIH0KKworICAgIERFRl9GKENvbnZlcnRfdXYsIG91dF9U X3V2KQorICAgIHsKKyAgICAgICAgaW5fVF91diByZXMgPSBTVUJfRih1diwgMSk7CisgICAgICAg IERFRkFVTFRfRFNUKDEpID0gY29udl8xNnRvMTBwbChyZXMueCk7CisgICAgICAgIERFRkFVTFRf RFNUKDIpID0gY29udl8xNnRvMTBwbChyZXMueSk7CisgICAgfQorfTsKKworc3RydWN0IENvbnZl cnRfc2VtaXBsYW5hcjE2X3BsYW5hcjE2Cit7CisgICAgc3RhdGljIGNvbnN0IGludCBpbl9iaXRf ZGVwdGggPSAxNjsKKyAgICB0eXBlZGVmIHVzaG9ydCBpbl9UOworICAgIHR5cGVkZWYgdXNob3J0 MiBpbl9UX3V2OworICAgIHR5cGVkZWYgdXNob3J0IG91dF9UOworICAgIHR5cGVkZWYgdXNob3J0 IG91dF9UX3V2OworCisgICAgREVGX0YoQ29udmVydCwgb3V0X1QpCisgICAgeworICAgICAgICBE RUZBVUxUX0RTVCgwKSA9IFNVQl9GKHksIDApOworICAgIH0KKworICAgIERFRl9GKENvbnZlcnRf dXYsIG91dF9UX3V2KQorICAgIHsKKyAgICAgICAgaW5fVF91diByZXMgPSBTVUJfRih1diwgMSk7 CisgICAgICAgIERFRkFVTFRfRFNUKDEpID0gcmVzLng7CisgICAgICAgIERFRkFVTFRfRFNUKDIp ID0gcmVzLnk7CisgICAgfQorfTsKKworc3RydWN0IENvbnZlcnRfc2VtaXBsYW5hcjE2X3NlbWlw bGFuYXI4CiB7CiAgICAgc3RhdGljIGNvbnN0IGludCBpbl9iaXRfZGVwdGggPSAxNjsKICAgICB0 eXBlZGVmIHVzaG9ydCBpbl9UOwpAQCAtNjQzLDI4ICs4NDEsNyBAQCBzdHJ1Y3QgQ29udmVydF9w MDE2bGVfbnYxMgogICAgIH0KIH07CiAKLXN0cnVjdCBDb252ZXJ0X3AwMTZsZV95dXY0NDRwCi17 Ci0gICAgc3RhdGljIGNvbnN0IGludCBpbl9iaXRfZGVwdGggPSAxNjsKLSAgICB0eXBlZGVmIHVz aG9ydCBpbl9UOwotICAgIHR5cGVkZWYgdXNob3J0MiBpbl9UX3V2OwotICAgIHR5cGVkZWYgdWNo YXIgb3V0X1Q7Ci0gICAgdHlwZWRlZiB1Y2hhciBvdXRfVF91djsKLQotICAgIERFRl9GKENvbnZl cnQsIG91dF9UKQotICAgIHsKLSAgICAgICAgREVGQVVMVF9EU1QoMCkgPSBjb252XzE2dG84KFNV Ql9GKHksIDApKTsKLSAgICB9Ci0KLSAgICBERUZfRihDb252ZXJ0X3V2LCBvdXRfVF91dikKLSAg ICB7Ci0gICAgICAgIGluX1RfdXYgcmVzID0gU1VCX0YodXYsIDEpOwotICAgICAgICBERUZBVUxU X0RTVCgxKSA9IGNvbnZfMTZ0bzgocmVzLngpOwotICAgICAgICBERUZBVUxUX0RTVCgyKSA9IGNv bnZfMTZ0bzgocmVzLnkpOwotICAgIH0KLX07Ci0KLXN0cnVjdCBDb252ZXJ0X3AwMTZsZV9wMDEw bGUKK3N0cnVjdCBDb252ZXJ0X3NlbWlwbGFuYXIxNl9zZW1pcGxhbmFyMTAKIHsKICAgICBzdGF0 aWMgY29uc3QgaW50IGluX2JpdF9kZXB0aCA9IDE2OwogICAgIHR5cGVkZWYgdXNob3J0IGluX1Q7 CkBAIC02ODcsNyArODY0LDcgQEAgc3RydWN0IENvbnZlcnRfcDAxNmxlX3AwMTBsZQogICAgIH0K IH07CiAKLXN0cnVjdCBDb252ZXJ0X3AwMTZsZV9wMDE2bGUKK3N0cnVjdCBDb252ZXJ0X3NlbWlw bGFuYXIxNl9zZW1pcGxhbmFyMTYKIHsKICAgICBzdGF0aWMgY29uc3QgaW50IGluX2JpdF9kZXB0 aCA9IDE2OwogICAgIHR5cGVkZWYgdXNob3J0IGluX1Q7CkBAIC03MDYsMTU1ICs4ODMsNiBAQCBz dHJ1Y3QgQ29udmVydF9wMDE2bGVfcDAxNmxlCiAgICAgfQogfTsKIAotc3RydWN0IENvbnZlcnRf cDAxNmxlX3l1djQ0NHAxNmxlCi17Ci0gICAgc3RhdGljIGNvbnN0IGludCBpbl9iaXRfZGVwdGgg PSAxNjsKLSAgICB0eXBlZGVmIHVzaG9ydCBpbl9UOwotICAgIHR5cGVkZWYgdXNob3J0MiBpbl9U X3V2OwotICAgIHR5cGVkZWYgdXNob3J0IG91dF9UOwotICAgIHR5cGVkZWYgdXNob3J0IG91dF9U X3V2OwotCi0gICAgREVGX0YoQ29udmVydCwgb3V0X1QpCi0gICAgewotICAgICAgICBERUZBVUxU X0RTVCgwKSA9IFNVQl9GKHksIDApOwotICAgIH0KLQotICAgIERFRl9GKENvbnZlcnRfdXYsIG91 dF9UX3V2KQotICAgIHsKLSAgICAgICAgaW5fVF91diByZXMgPSBTVUJfRih1diwgMSk7Ci0gICAg ICAgIERFRkFVTFRfRFNUKDEpID0gcmVzLng7Ci0gICAgICAgIERFRkFVTFRfRFNUKDIpID0gcmVz Lnk7Ci0gICAgfQotfTsKLQotLy8geXV2NDQ0cDE2bGUtPlgKLQotc3RydWN0IENvbnZlcnRfeXV2 NDQ0cDE2bGVfeXV2NDIwcAotewotICAgIHN0YXRpYyBjb25zdCBpbnQgaW5fYml0X2RlcHRoID0g MTY7Ci0gICAgdHlwZWRlZiB1c2hvcnQgaW5fVDsKLSAgICB0eXBlZGVmIHVzaG9ydCBpbl9UX3V2 OwotICAgIHR5cGVkZWYgdWNoYXIgb3V0X1Q7Ci0gICAgdHlwZWRlZiB1Y2hhciBvdXRfVF91djsK LQotICAgIERFRl9GKENvbnZlcnQsIG91dF9UKQotICAgIHsKLSAgICAgICAgREVGQVVMVF9EU1Qo MCkgPSBjb252XzE2dG84KFNVQl9GKHksIDApKTsKLSAgICB9Ci0KLSAgICBERUZfRihDb252ZXJ0 X3V2LCBvdXRfVF91dikKLSAgICB7Ci0gICAgICAgIERFRkFVTFRfRFNUKDEpID0gY29udl8xNnRv OChTVUJfRih1diwgMSkpOwotICAgICAgICBERUZBVUxUX0RTVCgyKSA9IGNvbnZfMTZ0bzgoU1VC X0YodXYsIDIpKTsKLSAgICB9Ci19OwotCi1zdHJ1Y3QgQ29udmVydF95dXY0NDRwMTZsZV9udjEy Ci17Ci0gICAgc3RhdGljIGNvbnN0IGludCBpbl9iaXRfZGVwdGggPSAxNjsKLSAgICB0eXBlZGVm IHVzaG9ydCBpbl9UOwotICAgIHR5cGVkZWYgdXNob3J0IGluX1RfdXY7Ci0gICAgdHlwZWRlZiB1 Y2hhciBvdXRfVDsKLSAgICB0eXBlZGVmIHVjaGFyMiBvdXRfVF91djsKLQotICAgIERFRl9GKENv bnZlcnQsIG91dF9UKQotICAgIHsKLSAgICAgICAgREVGQVVMVF9EU1QoMCkgPSBjb252XzE2dG84 KFNVQl9GKHksIDApKTsKLSAgICB9Ci0KLSAgICBERUZfRihDb252ZXJ0X3V2LCBvdXRfVF91dikK LSAgICB7Ci0gICAgICAgIERFRkFVTFRfRFNUKDEpID0gbWFrZV91Y2hhcjIoCi0gICAgICAgICAg ICBjb252XzE2dG84KFNVQl9GKHV2LCAxKSksCi0gICAgICAgICAgICBjb252XzE2dG84KFNVQl9G KHV2LCAyKSkKLSAgICAgICAgKTsKLSAgICB9Ci19OwotCi1zdHJ1Y3QgQ29udmVydF95dXY0NDRw MTZsZV95dXY0NDRwCi17Ci0gICAgc3RhdGljIGNvbnN0IGludCBpbl9iaXRfZGVwdGggPSAxNjsK LSAgICB0eXBlZGVmIHVzaG9ydCBpbl9UOwotICAgIHR5cGVkZWYgdXNob3J0IGluX1RfdXY7Ci0g ICAgdHlwZWRlZiB1Y2hhciBvdXRfVDsKLSAgICB0eXBlZGVmIHVjaGFyIG91dF9UX3V2OwotCi0g ICAgREVGX0YoQ29udmVydCwgb3V0X1QpCi0gICAgewotICAgICAgICBERUZBVUxUX0RTVCgwKSA9 IGNvbnZfMTZ0bzgoU1VCX0YoeSwgMCkpOwotICAgIH0KLQotICAgIERFRl9GKENvbnZlcnRfdXYs IG91dF9UX3V2KQotICAgIHsKLSAgICAgICAgREVGQVVMVF9EU1QoMSkgPSBjb252XzE2dG84KFNV Ql9GKHV2LCAxKSk7Ci0gICAgICAgIERFRkFVTFRfRFNUKDIpID0gY29udl8xNnRvOChTVUJfRih1 diwgMikpOwotICAgIH0KLX07Ci0KLXN0cnVjdCBDb252ZXJ0X3l1djQ0NHAxNmxlX3AwMTBsZQot ewotICAgIHN0YXRpYyBjb25zdCBpbnQgaW5fYml0X2RlcHRoID0gMTY7Ci0gICAgdHlwZWRlZiB1 c2hvcnQgaW5fVDsKLSAgICB0eXBlZGVmIHVzaG9ydCBpbl9UX3V2OwotICAgIHR5cGVkZWYgdXNo b3J0IG91dF9UOwotICAgIHR5cGVkZWYgdXNob3J0MiBvdXRfVF91djsKLQotICAgIERFRl9GKENv bnZlcnQsIG91dF9UKQotICAgIHsKLSAgICAgICAgREVGQVVMVF9EU1QoMCkgPSBjb252XzE2dG8x MChTVUJfRih5LCAwKSk7Ci0gICAgfQotCi0gICAgREVGX0YoQ29udmVydF91diwgb3V0X1RfdXYp Ci0gICAgewotICAgICAgICBERUZBVUxUX0RTVCgxKSA9IG1ha2VfdXNob3J0MigKLSAgICAgICAg ICAgIGNvbnZfMTZ0bzEwKFNVQl9GKHV2LCAxKSksCi0gICAgICAgICAgICBjb252XzE2dG8xMChT VUJfRih1diwgMikpCi0gICAgICAgICk7Ci0gICAgfQotfTsKLQotc3RydWN0IENvbnZlcnRfeXV2 NDQ0cDE2bGVfcDAxNmxlCi17Ci0gICAgc3RhdGljIGNvbnN0IGludCBpbl9iaXRfZGVwdGggPSAx NjsKLSAgICB0eXBlZGVmIHVzaG9ydCBpbl9UOwotICAgIHR5cGVkZWYgdXNob3J0IGluX1RfdXY7 Ci0gICAgdHlwZWRlZiB1c2hvcnQgb3V0X1Q7Ci0gICAgdHlwZWRlZiB1c2hvcnQyIG91dF9UX3V2 OwotCi0gICAgREVGX0YoQ29udmVydCwgb3V0X1QpCi0gICAgewotICAgICAgICBERUZBVUxUX0RT VCgwKSA9IFNVQl9GKHksIDApOwotICAgIH0KLQotICAgIERFRl9GKENvbnZlcnRfdXYsIG91dF9U X3V2KQotICAgIHsKLSAgICAgICAgREVGQVVMVF9EU1QoMSkgPSBtYWtlX3VzaG9ydDIoCi0gICAg ICAgICAgICBTVUJfRih1diwgMSksCi0gICAgICAgICAgICBTVUJfRih1diwgMikKLSAgICAgICAg KTsKLSAgICB9Ci19OwotCi1zdHJ1Y3QgQ29udmVydF95dXY0NDRwMTZsZV95dXY0NDRwMTZsZQot ewotICAgIHN0YXRpYyBjb25zdCBpbnQgaW5fYml0X2RlcHRoID0gMTY7Ci0gICAgdHlwZWRlZiB1 c2hvcnQgaW5fVDsKLSAgICB0eXBlZGVmIHVzaG9ydCBpbl9UX3V2OwotICAgIHR5cGVkZWYgdXNo b3J0IG91dF9UOwotICAgIHR5cGVkZWYgdXNob3J0IG91dF9UX3V2OwotCi0gICAgREVGX0YoQ29u dmVydCwgb3V0X1QpCi0gICAgewotICAgICAgICBERUZBVUxUX0RTVCgwKSA9IFNVQl9GKHksIDAp OwotICAgIH0KLQotICAgIERFRl9GKENvbnZlcnRfdXYsIG91dF9UX3V2KQotICAgIHsKLSAgICAg ICAgREVGQVVMVF9EU1QoMSkgPSBTVUJfRih1diwgMSk7Ci0gICAgICAgIERFRkFVTFRfRFNUKDIp ID0gU1VCX0YodXYsIDIpOwotICAgIH0KLX07Ci0KICNkZWZpbmUgREVGX0NPTlZFUlRfSURFTlRJ VFkoZm10MSwgZm10MilcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAogc3RydWN0IENvbnZlcnRfIyNmbXQxIyNfIyNmbXQyICAgICAgICAgIFwKQEAgLTkzMCw3ICs5 NTgsNyBAQCBzdHJ1Y3QgQ29udmVydF9iZ3IwX2JncmEKICAgICAgICAgICAgIHJlcy54LAogICAg ICAgICAgICAgcmVzLnksCiAgICAgICAgICAgICByZXMueiwKLSAgICAgICAgICAgIDEKKyAgICAg ICAgICAgIDB4RkYKICAgICAgICAgKTsKICAgICB9CiAKQEAgLTk1NCw3ICs5ODIsNyBAQCBzdHJ1 Y3QgQ29udmVydF9iZ3IwX3JnYmEKICAgICAgICAgICAgIHJlcy56LAogICAgICAgICAgICAgcmVz LnksCiAgICAgICAgICAgICByZXMueCwKLSAgICAgICAgICAgIDEKKyAgICAgICAgICAgIDB4RkYK ICAgICAgICAgKTsKICAgICB9CiAKQEAgLTk3OCw3ICsxMDA2LDcgQEAgc3RydWN0IENvbnZlcnRf cmdiMF9iZ3JhCiAgICAgICAgICAgICByZXMueiwKICAgICAgICAgICAgIHJlcy55LAogICAgICAg ICAgICAgcmVzLngsCi0gICAgICAgICAgICAxCisgICAgICAgICAgICAweEZGCiAgICAgICAgICk7 CiAgICAgfQogCkBAIC0xMDAyLDcgKzEwMzAsNyBAQCBzdHJ1Y3QgQ29udmVydF9yZ2IwX3JnYmEK ICAgICAgICAgICAgIHJlcy54LAogICAgICAgICAgICAgcmVzLnksCiAgICAgICAgICAgICByZXMu eiwKLSAgICAgICAgICAgIDEKKyAgICAgICAgICAgIDB4RkYKICAgICAgICAgKTsKICAgICB9CiAK QEAgLTExNDcsMjUgKzExNzUsMjYgQEAgX19kZXZpY2VfXyBzdGF0aWMgaW5saW5lIFQgU3Vic2Ft cGxlX0JpY3ViaWMoY3VkYVRleHR1cmVPYmplY3RfdCB0ZXgsCiAKIC8vLyAtLS0gRlVOQ1RJT04g RVhQT1JUUyAtLS0KIAotI2RlZmluZSBLRVJORUxfQVJHUyhUKSBcCi0gICAgY3VkYVRleHR1cmVP YmplY3RfdCBzcmNfdGV4XzAsIGN1ZGFUZXh0dXJlT2JqZWN0X3Qgc3JjX3RleF8xLCBcCi0gICAg Y3VkYVRleHR1cmVPYmplY3RfdCBzcmNfdGV4XzIsIGN1ZGFUZXh0dXJlT2JqZWN0X3Qgc3JjX3Rl eF8zLCBcCi0gICAgVCAqZHN0XzAsIFQgKmRzdF8xLCBUICpkc3RfMiwgVCAqZHN0XzMsICAgICAg ICAgICAgICAgICAgICAgICBcCi0gICAgaW50IGRzdF93aWR0aCwgaW50IGRzdF9oZWlnaHQsIGlu dCBkc3RfcGl0Y2gsICAgICAgICAgICAgICAgICBcCi0gICAgaW50IHNyY19sZWZ0LCBpbnQgc3Jj X3RvcCwgaW50IHNyY193aWR0aCwgaW50IHNyY19oZWlnaHQsIGZsb2F0IHBhcmFtCisjZGVmaW5l IEtFUk5FTF9BUkdTKFQpIENVREFTY2FsZUtlcm5lbFBhcmFtcyBwYXJhbXMKIAogI2RlZmluZSBT VUJTQU1QTEUoQ29udmVydCwgVCkgXAotICAgIGN1ZGFUZXh0dXJlT2JqZWN0X3Qgc3JjX3RleFs0 XSA9ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIHsgc3JjX3RleF8wLCBzcmNfdGV4XzEs IHNyY190ZXhfMiwgc3JjX3RleF8zIH07IFwKLSAgICBUICpkc3RbNF0gPSB7IGRzdF8wLCBkc3Rf MSwgZHN0XzIsIGRzdF8zIH07ICAgICAgICAgXAorICAgIGN1ZGFUZXh0dXJlT2JqZWN0X3Qgc3Jj X3RleFs0XSA9IHsgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHBhcmFtcy5zcmNfdGV4WzBd LCBwYXJhbXMuc3JjX3RleFsxXSwgICAgICAgICAgIFwKKyAgICAgICAgcGFyYW1zLnNyY190ZXhb Ml0sIHBhcmFtcy5zcmNfdGV4WzNdICAgICAgICAgICAgXAorICAgIH07ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgVCAqZHN0WzRdID0geyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKFQqKXBhcmFt cy5kc3RbMF0sIChUKilwYXJhbXMuZHN0WzFdLCAgICAgICAgICAgXAorICAgICAgICAoVCopcGFy YW1zLmRzdFsyXSwgKFQqKXBhcmFtcy5kc3RbM10gICAgICAgICAgICBcCisgICAgfTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBpbnQgeG8g PSBibG9ja0lkeC54ICogYmxvY2tEaW0ueCArIHRocmVhZElkeC54OyAgICAgXAogICAgIGludCB5 byA9IGJsb2NrSWR4LnkgKiBibG9ja0RpbS55ICsgdGhyZWFkSWR4Lnk7ICAgICBcCi0gICAgaWYg KHlvID49IGRzdF9oZWlnaHQgfHwgeG8gPj0gZHN0X3dpZHRoKSByZXR1cm47ICAgIFwKKyAgICBp ZiAoeW8gPj0gcGFyYW1zLmRzdF9oZWlnaHQgfHwgeG8gPj0gcGFyYW1zLmRzdF93aWR0aCkgcmV0 dXJuOyBcCiAgICAgQ29udmVydCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKICAgICAgICAgc3JjX3RleCwgZHN0LCB4bywgeW8sICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAotICAgICAgICBkc3Rfd2lkdGgsIGRzdF9oZWlnaHQsIGRzdF9waXRjaCwgICAg ICAgICAgICAgICBcCi0gICAgICAgIHNyY19sZWZ0LCBzcmNfdG9wLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKLSAgICAgICAgc3JjX3dpZHRoLCBzcmNfaGVpZ2h0LCBwYXJhbSk7Cisg ICAgICAgIHBhcmFtcy5kc3Rfd2lkdGgsIHBhcmFtcy5kc3RfaGVpZ2h0LCBwYXJhbXMuZHN0X3Bp dGNoLCBcCisgICAgICAgIHBhcmFtcy5zcmNfbGVmdCwgcGFyYW1zLnNyY190b3AsICAgICAgICAg ICAgICAgIFwKKyAgICAgICAgcGFyYW1zLnNyY193aWR0aCwgcGFyYW1zLnNyY19oZWlnaHQsICAg ICAgICAgICAgXAorICAgICAgICBwYXJhbXMucGFyYW0sIHBhcmFtcy5tcGVnX3JhbmdlKTsKIAog ZXh0ZXJuICJDIiB7CiAKQEAgLTExODQsMTIgKzEyMTMsMTIgQEAgZXh0ZXJuICJDIiB7CiAgICAg TkVBUkVTVF9LRVJORUwoQyxfdXYpCiAKICNkZWZpbmUgTkVBUkVTVF9LRVJORUxTKEMpIFwKLSAg ICBORUFSRVNUX0tFUk5FTF9SQVcoeXV2NDIwcF8gIyMgQykgICAgIFwKLSAgICBORUFSRVNUX0tF Uk5FTF9SQVcobnYxMl8gIyMgQykgICAgICAgIFwKLSAgICBORUFSRVNUX0tFUk5FTF9SQVcoeXV2 NDQ0cF8gIyMgQykgICAgIFwKLSAgICBORUFSRVNUX0tFUk5FTF9SQVcocDAxMGxlXyAjIyBDKSAg ICAgIFwKLSAgICBORUFSRVNUX0tFUk5FTF9SQVcocDAxNmxlXyAjIyBDKSAgICAgIFwKLSAgICBO RUFSRVNUX0tFUk5FTF9SQVcoeXV2NDQ0cDE2bGVfICMjIEMpCisgICAgTkVBUkVTVF9LRVJORUxf UkFXKHBsYW5hcjhfICMjIEMpICAgICAgXAorICAgIE5FQVJFU1RfS0VSTkVMX1JBVyhwbGFuYXIx MF8gIyMgQykgICAgIFwKKyAgICBORUFSRVNUX0tFUk5FTF9SQVcocGxhbmFyMTZfICMjIEMpICAg ICBcCisgICAgTkVBUkVTVF9LRVJORUxfUkFXKHNlbWlwbGFuYXI4XyAjIyBDKSAgXAorICAgIE5F QVJFU1RfS0VSTkVMX1JBVyhzZW1pcGxhbmFyMTBfICMjIEMpIFwKKyAgICBORUFSRVNUX0tFUk5F TF9SQVcoc2VtaXBsYW5hcjE2XyAjIyBDKQogCiAjZGVmaW5lIE5FQVJFU1RfS0VSTkVMU19SR0Io QykgXAogICAgIE5FQVJFU1RfS0VSTkVMX1JBVyhyZ2IwXyAjIyBDKSAgXApAQCAtMTE5NywxMiAr MTIyNiwxMiBAQCBleHRlcm4gIkMiIHsKICAgICBORUFSRVNUX0tFUk5FTF9SQVcocmdiYV8gIyMg QykgIFwKICAgICBORUFSRVNUX0tFUk5FTF9SQVcoYmdyYV8gIyMgQykgIFwKIAotTkVBUkVTVF9L RVJORUxTKHl1djQyMHApCi1ORUFSRVNUX0tFUk5FTFMobnYxMikKLU5FQVJFU1RfS0VSTkVMUyh5 dXY0NDRwKQotTkVBUkVTVF9LRVJORUxTKHAwMTBsZSkKLU5FQVJFU1RfS0VSTkVMUyhwMDE2bGUp Ci1ORUFSRVNUX0tFUk5FTFMoeXV2NDQ0cDE2bGUpCitORUFSRVNUX0tFUk5FTFMocGxhbmFyOCkK K05FQVJFU1RfS0VSTkVMUyhwbGFuYXIxMCkKK05FQVJFU1RfS0VSTkVMUyhwbGFuYXIxNikKK05F QVJFU1RfS0VSTkVMUyhzZW1pcGxhbmFyOCkKK05FQVJFU1RfS0VSTkVMUyhzZW1pcGxhbmFyMTAp CitORUFSRVNUX0tFUk5FTFMoc2VtaXBsYW5hcjE2KQogCiBORUFSRVNUX0tFUk5FTFNfUkdCKHJn YjApCiBORUFSRVNUX0tFUk5FTFNfUkdCKGJncjApCkBAIC0xMjI0LDEyICsxMjUzLDEyIEBAIE5F QVJFU1RfS0VSTkVMU19SR0IoYmdyYSkKICAgICBCSUxJTkVBUl9LRVJORUwoQyxfdXYpCiAKICNk ZWZpbmUgQklMSU5FQVJfS0VSTkVMUyhDKSBcCi0gICAgQklMSU5FQVJfS0VSTkVMX1JBVyh5dXY0 MjBwXyAjIyBDKSAgICAgXAotICAgIEJJTElORUFSX0tFUk5FTF9SQVcobnYxMl8gIyMgQykgICAg ICAgIFwKLSAgICBCSUxJTkVBUl9LRVJORUxfUkFXKHl1djQ0NHBfICMjIEMpICAgICBcCi0gICAg QklMSU5FQVJfS0VSTkVMX1JBVyhwMDEwbGVfICMjIEMpICAgICAgXAotICAgIEJJTElORUFSX0tF Uk5FTF9SQVcocDAxNmxlXyAjIyBDKSAgICAgIFwKLSAgICBCSUxJTkVBUl9LRVJORUxfUkFXKHl1 djQ0NHAxNmxlXyAjIyBDKQorICAgIEJJTElORUFSX0tFUk5FTF9SQVcocGxhbmFyOF8gIyMgQykg ICAgICBcCisgICAgQklMSU5FQVJfS0VSTkVMX1JBVyhwbGFuYXIxMF8gIyMgQykgICAgIFwKKyAg ICBCSUxJTkVBUl9LRVJORUxfUkFXKHBsYW5hcjE2XyAjIyBDKSAgICAgXAorICAgIEJJTElORUFS X0tFUk5FTF9SQVcoc2VtaXBsYW5hcjhfICMjIEMpICBcCisgICAgQklMSU5FQVJfS0VSTkVMX1JB VyhzZW1pcGxhbmFyMTBfICMjIEMpIFwKKyAgICBCSUxJTkVBUl9LRVJORUxfUkFXKHNlbWlwbGFu YXIxNl8gIyMgQykKIAogI2RlZmluZSBCSUxJTkVBUl9LRVJORUxTX1JHQihDKSAgICAgXAogICAg IEJJTElORUFSX0tFUk5FTF9SQVcocmdiMF8gIyMgQykgXApAQCAtMTIzNywxMiArMTI2NiwxMiBA QCBORUFSRVNUX0tFUk5FTFNfUkdCKGJncmEpCiAgICAgQklMSU5FQVJfS0VSTkVMX1JBVyhyZ2Jh XyAjIyBDKSBcCiAgICAgQklMSU5FQVJfS0VSTkVMX1JBVyhiZ3JhXyAjIyBDKQogCi1CSUxJTkVB Ul9LRVJORUxTKHl1djQyMHApCi1CSUxJTkVBUl9LRVJORUxTKG52MTIpCi1CSUxJTkVBUl9LRVJO RUxTKHl1djQ0NHApCi1CSUxJTkVBUl9LRVJORUxTKHAwMTBsZSkKLUJJTElORUFSX0tFUk5FTFMo cDAxNmxlKQotQklMSU5FQVJfS0VSTkVMUyh5dXY0NDRwMTZsZSkKK0JJTElORUFSX0tFUk5FTFMo cGxhbmFyOCkKK0JJTElORUFSX0tFUk5FTFMocGxhbmFyMTApCitCSUxJTkVBUl9LRVJORUxTKHBs YW5hcjE2KQorQklMSU5FQVJfS0VSTkVMUyhzZW1pcGxhbmFyOCkKK0JJTElORUFSX0tFUk5FTFMo c2VtaXBsYW5hcjEwKQorQklMSU5FQVJfS0VSTkVMUyhzZW1pcGxhbmFyMTYpCiAKIEJJTElORUFS X0tFUk5FTFNfUkdCKHJnYjApCiBCSUxJTkVBUl9LRVJORUxTX1JHQihiZ3IwKQpAQCAtMTI2NCwx MiArMTI5MywxMiBAQCBCSUxJTkVBUl9LRVJORUxTX1JHQihiZ3JhKQogICAgIEJJQ1VCSUNfS0VS TkVMKEMsX3V2KQogCiAjZGVmaW5lIEJJQ1VCSUNfS0VSTkVMUyhDKSBcCi0gICAgQklDVUJJQ19L RVJORUxfUkFXKHl1djQyMHBfICMjIEMpICAgICBcCi0gICAgQklDVUJJQ19LRVJORUxfUkFXKG52 MTJfICMjIEMpICAgICAgICBcCi0gICAgQklDVUJJQ19LRVJORUxfUkFXKHl1djQ0NHBfICMjIEMp ICAgICBcCi0gICAgQklDVUJJQ19LRVJORUxfUkFXKHAwMTBsZV8gIyMgQykgICAgICBcCi0gICAg QklDVUJJQ19LRVJORUxfUkFXKHAwMTZsZV8gIyMgQykgICAgICBcCi0gICAgQklDVUJJQ19LRVJO RUxfUkFXKHl1djQ0NHAxNmxlXyAjIyBDKQorICAgIEJJQ1VCSUNfS0VSTkVMX1JBVyhwbGFuYXI4 XyAjIyBDKSAgICAgIFwKKyAgICBCSUNVQklDX0tFUk5FTF9SQVcocGxhbmFyMTBfICMjIEMpICAg ICBcCisgICAgQklDVUJJQ19LRVJORUxfUkFXKHBsYW5hcjE2XyAjIyBDKSAgICAgXAorICAgIEJJ Q1VCSUNfS0VSTkVMX1JBVyhzZW1pcGxhbmFyOF8gIyMgQykgIFwKKyAgICBCSUNVQklDX0tFUk5F TF9SQVcoc2VtaXBsYW5hcjEwXyAjIyBDKSBcCisgICAgQklDVUJJQ19LRVJORUxfUkFXKHNlbWlw bGFuYXIxNl8gIyMgQykKIAogI2RlZmluZSBCSUNVQklDX0tFUk5FTFNfUkdCKEMpICAgICAgXAog ICAgIEJJQ1VCSUNfS0VSTkVMX1JBVyhyZ2IwXyAjIyBDKSAgXApAQCAtMTI3NywxMiArMTMwNiwx MiBAQCBCSUxJTkVBUl9LRVJORUxTX1JHQihiZ3JhKQogICAgIEJJQ1VCSUNfS0VSTkVMX1JBVyhy Z2JhXyAjIyBDKSAgXAogICAgIEJJQ1VCSUNfS0VSTkVMX1JBVyhiZ3JhXyAjIyBDKQogCi1CSUNV QklDX0tFUk5FTFMoeXV2NDIwcCkKLUJJQ1VCSUNfS0VSTkVMUyhudjEyKQotQklDVUJJQ19LRVJO RUxTKHl1djQ0NHApCi1CSUNVQklDX0tFUk5FTFMocDAxMGxlKQotQklDVUJJQ19LRVJORUxTKHAw MTZsZSkKLUJJQ1VCSUNfS0VSTkVMUyh5dXY0NDRwMTZsZSkKK0JJQ1VCSUNfS0VSTkVMUyhwbGFu YXI4KQorQklDVUJJQ19LRVJORUxTKHBsYW5hcjEwKQorQklDVUJJQ19LRVJORUxTKHBsYW5hcjE2 KQorQklDVUJJQ19LRVJORUxTKHNlbWlwbGFuYXI4KQorQklDVUJJQ19LRVJORUxTKHNlbWlwbGFu YXIxMCkKK0JJQ1VCSUNfS0VSTkVMUyhzZW1pcGxhbmFyMTYpCiAKIEJJQ1VCSUNfS0VSTkVMU19S R0IocmdiMCkKIEJJQ1VCSUNfS0VSTkVMU19SR0IoYmdyMCkKQEAgLTEzMDQsMTIgKzEzMzMsMTIg QEAgQklDVUJJQ19LRVJORUxTX1JHQihiZ3JhKQogICAgIExBTkNaT1NfS0VSTkVMKEMsX3V2KQog CiAjZGVmaW5lIExBTkNaT1NfS0VSTkVMUyhDKSBcCi0gICAgTEFOQ1pPU19LRVJORUxfUkFXKHl1 djQyMHBfICMjIEMpICAgICBcCi0gICAgTEFOQ1pPU19LRVJORUxfUkFXKG52MTJfICMjIEMpICAg ICAgICBcCi0gICAgTEFOQ1pPU19LRVJORUxfUkFXKHl1djQ0NHBfICMjIEMpICAgICBcCi0gICAg TEFOQ1pPU19LRVJORUxfUkFXKHAwMTBsZV8gIyMgQykgICAgICBcCi0gICAgTEFOQ1pPU19LRVJO RUxfUkFXKHAwMTZsZV8gIyMgQykgICAgICBcCi0gICAgTEFOQ1pPU19LRVJORUxfUkFXKHl1djQ0 NHAxNmxlXyAjIyBDKQorICAgIExBTkNaT1NfS0VSTkVMX1JBVyhwbGFuYXI4XyAjIyBDKSAgICAg IFwKKyAgICBMQU5DWk9TX0tFUk5FTF9SQVcocGxhbmFyMTBfICMjIEMpICAgICBcCisgICAgTEFO Q1pPU19LRVJORUxfUkFXKHBsYW5hcjE2XyAjIyBDKSAgICAgXAorICAgIExBTkNaT1NfS0VSTkVM X1JBVyhzZW1pcGxhbmFyOF8gIyMgQykgIFwKKyAgICBMQU5DWk9TX0tFUk5FTF9SQVcoc2VtaXBs YW5hcjEwXyAjIyBDKSBcCisgICAgTEFOQ1pPU19LRVJORUxfUkFXKHNlbWlwbGFuYXIxNl8gIyMg QykKIAogI2RlZmluZSBMQU5DWk9TX0tFUk5FTFNfUkdCKEMpICAgICAgXAogICAgIExBTkNaT1Nf S0VSTkVMX1JBVyhyZ2IwXyAjIyBDKSAgXApAQCAtMTMxNywxMiArMTM0NiwxMiBAQCBCSUNVQklD X0tFUk5FTFNfUkdCKGJncmEpCiAgICAgTEFOQ1pPU19LRVJORUxfUkFXKHJnYmFfICMjIEMpICBc CiAgICAgTEFOQ1pPU19LRVJORUxfUkFXKGJncmFfICMjIEMpCiAKLUxBTkNaT1NfS0VSTkVMUyh5 dXY0MjBwKQotTEFOQ1pPU19LRVJORUxTKG52MTIpCi1MQU5DWk9TX0tFUk5FTFMoeXV2NDQ0cCkK LUxBTkNaT1NfS0VSTkVMUyhwMDEwbGUpCi1MQU5DWk9TX0tFUk5FTFMocDAxNmxlKQotTEFOQ1pP U19LRVJORUxTKHl1djQ0NHAxNmxlKQorTEFOQ1pPU19LRVJORUxTKHBsYW5hcjgpCitMQU5DWk9T X0tFUk5FTFMocGxhbmFyMTApCitMQU5DWk9TX0tFUk5FTFMocGxhbmFyMTYpCitMQU5DWk9TX0tF Uk5FTFMoc2VtaXBsYW5hcjgpCitMQU5DWk9TX0tFUk5FTFMoc2VtaXBsYW5hcjEwKQorTEFOQ1pP U19LRVJORUxTKHNlbWlwbGFuYXIxNikKIAogTEFOQ1pPU19LRVJORUxTX1JHQihyZ2IwKQogTEFO Q1pPU19LRVJORUxTX1JHQihiZ3IwKQpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvdmZfc2NhbGVf Y3VkYS5oIGIvbGliYXZmaWx0ZXIvdmZfc2NhbGVfY3VkYS5oCmluZGV4IDQwZDViOWNmYWMuLjgx ZmQ4MDYxZTMgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3ZmX3NjYWxlX2N1ZGEuaAorKysgYi9s aWJhdmZpbHRlci92Zl9zY2FsZV9jdWRhLmgKQEAgLTIzLDYgKzIzLDI4IEBACiAjaWZuZGVmIEFW RklMVEVSX1NDQUxFX0NVREFfSAogI2RlZmluZSBBVkZJTFRFUl9TQ0FMRV9DVURBX0gKIAorI2lm IGRlZmluZWQoX19DVURBQ0NfXykgfHwgZGVmaW5lZChfX0NVREFfXykKKyNpbmNsdWRlIDxzdGRp bnQuaD4KK3R5cGVkZWYgY3VkYVRleHR1cmVPYmplY3RfdCBDVXRleE9iamVjdDsKK3R5cGVkZWYg dWludDhfdCogQ1VkZXZpY2VwdHI7CisjZWxzZQorI2luY2x1ZGUgPGZmbnZjb2RlYy9keW5saW5r X2N1ZGEuaD4KKyNlbmRpZgorCiAjZGVmaW5lIFNDQUxFX0NVREFfUEFSQU1fREVGQVVMVCA5OTk5 OTkuMGYKIAordHlwZWRlZiBzdHJ1Y3QgeworICAgIENVdGV4T2JqZWN0IHNyY190ZXhbNF07Cisg ICAgQ1VkZXZpY2VwdHIgZHN0WzRdOworICAgIGludCBkc3Rfd2lkdGg7CisgICAgaW50IGRzdF9o ZWlnaHQ7CisgICAgaW50IGRzdF9waXRjaDsKKyAgICBpbnQgc3JjX2xlZnQ7CisgICAgaW50IHNy Y190b3A7CisgICAgaW50IHNyY193aWR0aDsKKyAgICBpbnQgc3JjX2hlaWdodDsKKyAgICBmbG9h dCBwYXJhbTsKKyAgICBpbnQgbXBlZ19yYW5nZTsKK30gQ1VEQVNjYWxlS2VybmVsUGFyYW1zOwor CiAjZW5kaWYKLS0gCjIuNTIuMAoKCkZyb20gNGVmYWVmM2M4N2FlOTdkM2U1ZGJjYWZiNmE3M2Zh MTcyYjZhNmVmYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFtZXMgQWxtZXIgPGph bXJpYWxAZ21haWwuY29tPgpEYXRlOiBUdWUsIDI1IE5vdiAyMDI1IDE4OjU1OjM1IC0wMzAwClN1 YmplY3Q6IFtQQVRDSCAxMjkvMzA0XSBhdmNvZGVjL2NhdnNfcGFyc2VyOiBwYXJzZSBzZXF1ZW5j ZSBoZWFkZXJzIGZvcgogc3RyZWFtIHBhcmFtZXRlcnMKClNpZ25lZC1vZmYtYnk6IEphbWVzIEFs bWVyIDxqYW1yaWFsQGdtYWlsLmNvbT4KLS0tCiBsaWJhdmNvZGVjL2NhdnNfcGFyc2VyLmMgIHwg IDg1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogdGVzdHMvcmVmL2ZhdGUvY2F2cy1kZW11 eCB8IDEyMCArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBj aGFuZ2VkLCAxNDUgaW5zZXJ0aW9ucygrKSwgNjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv bGliYXZjb2RlYy9jYXZzX3BhcnNlci5jIGIvbGliYXZjb2RlYy9jYXZzX3BhcnNlci5jCmluZGV4 IDEzZmJkMDA5YzguLjg4Mjg0MGNkN2YgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvY2F2c19wYXJz ZXIuYworKysgYi9saWJhdmNvZGVjL2NhdnNfcGFyc2VyLmMKQEAgLTI3LDcgKzI3LDEwIEBACiAK ICNpbmNsdWRlICJwYXJzZXIuaCIKICNpbmNsdWRlICJjYXZzLmgiCisjaW5jbHVkZSAiZ2V0X2Jp dHMuaCIKKyNpbmNsdWRlICJtcGVnMTJkYXRhLmgiCiAjaW5jbHVkZSAicGFyc2VyX2ludGVybmFs LmgiCisjaW5jbHVkZSAic3RhcnRjb2RlLmgiCiAKIAogLyoqCkBAIC03Myw2ICs3Niw4NSBAQCBz dGF0aWMgaW50IGNhdnNfZmluZF9mcmFtZV9lbmQoUGFyc2VDb250ZXh0ICpwYywgY29uc3QgdWlu dDhfdCAqYnVmLAogICAgIHJldHVybiBFTkRfTk9UX0ZPVU5EOwogfQogCitzdGF0aWMgaW50IHBh cnNlX3NlcV9oZWFkZXIoQVZDb2RlY1BhcnNlckNvbnRleHQgKnMsIEFWQ29kZWNDb250ZXh0ICph dmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZXRCaXRDb250ZXh0ICpnYikKK3sK KyAgICBpbnQgZnJhbWVfcmF0ZV9jb2RlOworICAgIGludCB3aWR0aCwgaGVpZ2h0OworICAgIGlu dCBtYl93aWR0aCwgbWJfaGVpZ2h0OworCisgICAgc2tpcF9iaXRzKGdiLCA4KTsgLy8gcHJvZmls ZQorICAgIHNraXBfYml0cyhnYiwgOCk7IC8vIGxldmVsCisgICAgc2tpcF9iaXRzMShnYik7ICAg Ly8gcHJvZ3Jlc3NpdmUgc2VxdWVuY2UKKworICAgIHdpZHRoICA9IGdldF9iaXRzKGdiLCAxNCk7 CisgICAgaGVpZ2h0ID0gZ2V0X2JpdHMoZ2IsIDE0KTsKKyAgICBpZiAod2lkdGggPD0gMCB8fCBo ZWlnaHQgPD0gMCkgeworICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkRpbWVu c2lvbnMgaW52YWxpZFxuIik7CisgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwor ICAgIH0KKyAgICBtYl93aWR0aCAgPSAod2lkdGggICsgMTUpID4+IDQ7CisgICAgbWJfaGVpZ2h0 ID0gKGhlaWdodCArIDE1KSA+PiA0OworCisgICAgc2tpcF9iaXRzKGdiLCAyKTsgLy8gY2hyb21h IGZvcm1hdAorICAgIHNraXBfYml0cyhnYiwgMyk7IC8vIHNhbXBsZV9wcmVjaXNpb24KKyAgICBz a2lwX2JpdHMoZ2IsIDQpOyAvLyBhc3BlY3RfcmF0aW8KKyAgICBmcmFtZV9yYXRlX2NvZGUgPSBn ZXRfYml0cyhnYiwgNCk7CisgICAgaWYgKGZyYW1lX3JhdGVfY29kZSA9PSAwIHx8IGZyYW1lX3Jh dGVfY29kZSA+IDEzKSB7CisgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX1dBUk5JTkcsCisg ICAgICAgICAgICAgICAiZnJhbWVfcmF0ZV9jb2RlICVkIGlzIGludmFsaWRcbiIsIGZyYW1lX3Jh dGVfY29kZSk7CisgICAgICAgIGZyYW1lX3JhdGVfY29kZSA9IDE7CisgICAgfQorCisgICAgc2tp cF9iaXRzKGdiLCAxOCk7IC8vIGJpdF9yYXRlX2xvd2VyCisgICAgc2tpcF9iaXRzMShnYik7ICAg IC8vIG1hcmtlcl9iaXQKKyAgICBza2lwX2JpdHMoZ2IsIDEyKTsgLy8gYml0X3JhdGVfdXBwZXIK KyAgICBza2lwX2JpdHMxKGdiKTsgICAgLy8gbG93X2RlbGF5CisKKyAgICBzLT53aWR0aCAgPSB3 aWR0aDsKKyAgICBzLT5oZWlnaHQgPSBoZWlnaHQ7CisgICAgcy0+Y29kZWRfd2lkdGggID0gMTYg KiBtYl93aWR0aDsKKyAgICBzLT5jb2RlZF9oZWlnaHQgPSAxNiAqIG1iX2hlaWdodDsKKyAgICBh dmN0eC0+ZnJhbWVyYXRlID0gZmZfbXBlZzEyX2ZyYW1lX3JhdGVfdGFiW2ZyYW1lX3JhdGVfY29k ZV07CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXZzX3BhcnNlX2ZyYW1lKEFW Q29kZWNQYXJzZXJDb250ZXh0ICpzLCBBVkNvZGVjQ29udGV4dCAqYXZjdHgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqYnVmLCBpbnQgYnVmX3NpemUpCit7Cisg ICAgR2V0Qml0Q29udGV4dCBnYjsKKyAgICBjb25zdCB1aW50OF90ICpidWZfZW5kOworICAgIGNv bnN0IHVpbnQ4X3QgKmJ1Zl9wdHI7CisgICAgdWludDMyX3Qgc3RjID0gLTE7CisKKyAgICBzLT5r ZXlfZnJhbWUgPSAwOworICAgIHMtPnBpY3RfdHlwZSA9IEFWX1BJQ1RVUkVfVFlQRV9OT05FOwor CisgICAgaWYgKGJ1Zl9zaXplID09IDApCisgICAgICAgIHJldHVybiAwOworCisgICAgYnVmX3B0 ciA9IGJ1ZjsKKyAgICBidWZfZW5kID0gYnVmICsgYnVmX3NpemU7CisgICAgZm9yICg7Oykgewor ICAgICAgICBidWZfcHRyID0gYXZwcml2X2ZpbmRfc3RhcnRfY29kZShidWZfcHRyLCBidWZfZW5k LCAmc3RjKTsKKyAgICAgICAgaWYgKChzdGMgJiAweEZGRkZGRTAwKSB8fCBidWZfcHRyID09IGJ1 Zl9lbmQpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgc3dpdGNoIChzdGMpIHsKKyAg ICAgICAgY2FzZSBDQVZTX1NUQVJUX0NPREU6CisgICAgICAgICAgICBpbml0X2dldF9iaXRzOCgm Z2IsIGJ1Zl9wdHIsIGJ1Zl9lbmQgLSBidWZfcHRyKTsKKyAgICAgICAgICAgIHBhcnNlX3NlcV9o ZWFkZXIocywgYXZjdHgsICZnYik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQ SUNfSV9TVEFSVF9DT0RFOgorICAgICAgICAgICAgcy0+a2V5X2ZyYW1lID0gMTsKKyAgICAgICAg ICAgIHMtPnBpY3RfdHlwZSA9IEFWX1BJQ1RVUkVfVFlQRV9JOworICAgICAgICAgICAgYnJlYWs7 CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0K K30KKwogc3RhdGljIGludCBjYXZzdmlkZW9fcGFyc2UoQVZDb2RlY1BhcnNlckNvbnRleHQgKnMs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVkNvZGVjQ29udGV4dCAqYXZjdHgsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICoqcG91dGJ1ZiwgaW50ICpwb3V0 YnVmX3NpemUsCkBAIC05Miw2ICsxNzQsOSBAQCBzdGF0aWMgaW50IGNhdnN2aWRlb19wYXJzZShB VkNvZGVjUGFyc2VyQ29udGV4dCAqcywKICAgICAgICAgICAgIHJldHVybiBidWZfc2l6ZTsKICAg ICAgICAgfQogICAgIH0KKworICAgIGNhdnNfcGFyc2VfZnJhbWUocywgYXZjdHgsIGJ1ZiwgYnVm X3NpemUpOworCiAgICAgKnBvdXRidWYgPSBidWY7CiAgICAgKnBvdXRidWZfc2l6ZSA9IGJ1Zl9z aXplOwogICAgIHJldHVybiBuZXh0OwpkaWZmIC0tZ2l0IGEvdGVzdHMvcmVmL2ZhdGUvY2F2cy1k ZW11eCBiL3Rlc3RzL3JlZi9mYXRlL2NhdnMtZGVtdXgKaW5kZXggYjFlMmMyZmQyNS4uYzQ4NDcy OTNhYiAxMDA2NDQKLS0tIGEvdGVzdHMvcmVmL2ZhdGUvY2F2cy1kZW11eAorKysgYi90ZXN0cy9y ZWYvZmF0ZS9jYXZzLWRlbXV4CkBAIC0xLDYyICsxLDYyIEBACi1wYWNrZXR8Y29kZWNfdHlwZT12 aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MHxwdHNfdGltZT0wLjAwMDAwMHxkdHM9MHxkdHNfdGlt ZT0wLjAwMDAwMHxkdXJhdGlvbj00ODAwMHxkdXJhdGlvbl90aW1lPTAuMDQwMDAwfHNpemU9MTQ0 NDd8cG9zPTB8ZmxhZ3M9S19ffGRhdGFfaGFzaD1DUkMzMjo4M2YyNTdjMAotcGFja2V0fGNvZGVj X3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTQ4MDAwfHB0c190aW1lPTAuMDQwMDAwfGR0 cz00ODAwMHxkdHNfdGltZT0wLjA0MDAwMHxkdXJhdGlvbj00ODAwMHxkdXJhdGlvbl90aW1lPTAu MDQwMDAwfHNpemU9NDgzfHBvcz0xNDQ0N3xmbGFncz1LX198ZGF0YV9oYXNoPUNSQzMyOjVhYmI4 MmY4Ci1wYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9OTYwMDB8cHRz X3RpbWU9MC4wODAwMDB8ZHRzPTk2MDAwfGR0c190aW1lPTAuMDgwMDAwfGR1cmF0aW9uPTQ4MDAw fGR1cmF0aW9uX3RpbWU9MC4wNDAwMDB8c2l6ZT0xOHxwb3M9MTQ5MzB8ZmxhZ3M9S19ffGRhdGFf aGFzaD1DUkMzMjpiOGIxMjNkOAotcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4 PTB8cHRzPTE0NDAwMHxwdHNfdGltZT0wLjEyMDAwMHxkdHM9MTQ0MDAwfGR0c190aW1lPTAuMTIw MDAwfGR1cmF0aW9uPTQ4MDAwfGR1cmF0aW9uX3RpbWU9MC4wNDAwMDB8c2l6ZT0xOHxwb3M9MTQ5 NDh8ZmxhZ3M9S19ffGRhdGFfaGFzaD1DUkMzMjoxOTE4MGZhOAotcGFja2V0fGNvZGVjX3R5cGU9 dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTE5MjAwMHxwdHNfdGltZT0wLjE2MDAwMHxkdHM9MTky MDAwfGR0c190aW1lPTAuMTYwMDAwfGR1cmF0aW9uPTQ4MDAwfGR1cmF0aW9uX3RpbWU9MC4wNDAw MDB8c2l6ZT0xOHxwb3M9MTQ5NjZ8ZmxhZ3M9S19ffGRhdGFfaGFzaD1DUkMzMjpjZjUwMTY0Nwot cGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTI0MDAwMHxwdHNfdGlt ZT0wLjIwMDAwMHxkdHM9MjQwMDAwfGR0c190aW1lPTAuMjAwMDAwfGR1cmF0aW9uPTQwMDAwfGR1 cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT0xODA3fHBvcz0xNDk4NHxmbGFncz1LX198ZGF0YV9o YXNoPUNSQzMyOjQyNjdlMWQ1Ci1wYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9 MHxwdHM9MjgwMDAwfHB0c190aW1lPTAuMjMzMzMzfGR0cz0yODAwMDB8ZHRzX3RpbWU9MC4yMzMz MzN8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTI4fHBvcz0xNjc5 MXxmbGFncz1LX198ZGF0YV9oYXNoPUNSQzMyOmMyMjMyODVhCi1wYWNrZXR8Y29kZWNfdHlwZT12 aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MzIwMDAwfHB0c190aW1lPTAuMjY2NjY3fGR0cz0zMjAw MDB8ZHRzX3RpbWU9MC4yNjY2Njd8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMz M3xzaXplPTI1fHBvcz0xNjgxOXxmbGFncz1LX198ZGF0YV9oYXNoPUNSQzMyOjI1NjVjYzllCi1w YWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MzYwMDAwfHB0c190aW1l PTAuMzAwMDAwfGR0cz0zNjAwMDB8ZHRzX3RpbWU9MC4zMDAwMDB8ZHVyYXRpb249NDAwMDB8ZHVy YXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTIyfHBvcz0xNjg0NHxmbGFncz1LX198ZGF0YV9oYXNo PUNSQzMyOjdmYmYzNmFjCi1wYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxw dHM9NDAwMDAwfHB0c190aW1lPTAuMzMzMzMzfGR0cz00MDAwMDB8ZHRzX3RpbWU9MC4zMzMzMzN8 ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTIzODg0fHBvcz0xNjg2 NnxmbGFncz1LX198ZGF0YV9oYXNoPUNSQzMyOmQ2MTQzMGZkCi1wYWNrZXR8Y29kZWNfdHlwZT12 aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9NDQwMDAwfHB0c190aW1lPTAuMzY2NjY3fGR0cz00NDAw MDB8ZHRzX3RpbWU9MC4zNjY2Njd8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMz M3xzaXplPTI2NXxwb3M9NDA3NTB8ZmxhZ3M9S19ffGRhdGFfaGFzaD1DUkMzMjpkNjQxNDVhMAot cGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTQ4MDAwMHxwdHNfdGlt ZT0wLjQwMDAwMHxkdHM9NDgwMDAwfGR0c190aW1lPTAuNDAwMDAwfGR1cmF0aW9uPTQwMDAwfGR1 cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT0zOTN8cG9zPTQxMDE1fGZsYWdzPUtfX3xkYXRhX2hh c2g9Q1JDMzI6MzJjMDIwZTIKLXBhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0w fHB0cz01MjAwMDB8cHRzX3RpbWU9MC40MzMzMzN8ZHRzPTUyMDAwMHxkdHNfdGltZT0wLjQzMzMz M3xkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9NjU2fHBvcz00MTQw OHxmbGFncz1LX198ZGF0YV9oYXNoPUNSQzMyOjk2NWM3ODQ2Ci1wYWNrZXR8Y29kZWNfdHlwZT12 aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9NTYwMDAwfHB0c190aW1lPTAuNDY2NjY3fGR0cz01NjAw MDB8ZHRzX3RpbWU9MC40NjY2Njd8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMz M3xzaXplPTM1MDB8cG9zPTQyMDY0fGZsYWdzPUtfX3xkYXRhX2hhc2g9Q1JDMzI6ZGRmNzMxZGUK LXBhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz02MDAwMDB8cHRzX3Rp bWU9MC41MDAwMDB8ZHRzPTYwMDAwMHxkdHNfdGltZT0wLjUwMDAwMHxkdXJhdGlvbj00MDAwMHxk dXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9Njh8cG9zPTQ1NTY0fGZsYWdzPUtfX3xkYXRhX2hh c2g9Q1JDMzI6ZjhjOGJhMDcKLXBhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0w fHB0cz02NDAwMDB8cHRzX3RpbWU9MC41MzMzMzN8ZHRzPTY0MDAwMHxkdHNfdGltZT0wLjUzMzMz M3xkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9NTh8cG9zPTQ1NjMy fGZsYWdzPUtfX3xkYXRhX2hhc2g9Q1JDMzI6MjJhZGJiODMKLXBhY2tldHxjb2RlY190eXBlPXZp ZGVvfHN0cmVhbV9pbmRleD0wfHB0cz02ODAwMDB8cHRzX3RpbWU9MC41NjY2Njd8ZHRzPTY4MDAw MHxkdHNfdGltZT0wLjU2NjY2N3xkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMz fHNpemU9NDN8cG9zPTQ1NjkwfGZsYWdzPUtfX3xkYXRhX2hhc2g9Q1JDMzI6NTNmYjEzNmMKLXBh Y2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz03MjAwMDB8cHRzX3RpbWU9 MC42MDAwMDB8ZHRzPTcyMDAwMHxkdHNfdGltZT0wLjYwMDAwMHxkdXJhdGlvbj00MDAwMHxkdXJh dGlvbl90aW1lPTAuMDMzMzMzfHNpemU9MTE3NTd8cG9zPTQ1NzMzfGZsYWdzPUtfX3xkYXRhX2hh c2g9Q1JDMzI6NTUxZTQ5MWIKLXBhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0w fHB0cz03NjAwMDB8cHRzX3RpbWU9MC42MzMzMzN8ZHRzPTc2MDAwMHxkdHNfdGltZT0wLjYzMzMz M3xkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9OTh8cG9zPTU3NDkw fGZsYWdzPUtfX3xkYXRhX2hhc2g9Q1JDMzI6NGU3MThkZDQKLXBhY2tldHxjb2RlY190eXBlPXZp ZGVvfHN0cmVhbV9pbmRleD0wfHB0cz04MDAwMDB8cHRzX3RpbWU9MC42NjY2Njd8ZHRzPTgwMDAw MHxkdHNfdGltZT0wLjY2NjY2N3xkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMz fHNpemU9Nzl8cG9zPTU3NTg4fGZsYWdzPUtfX3xkYXRhX2hhc2g9Q1JDMzI6NGM1YTMyZjUKLXBh Y2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz04NDAwMDB8cHRzX3RpbWU9 MC43MDAwMDB8ZHRzPTg0MDAwMHxkdHNfdGltZT0wLjcwMDAwMHxkdXJhdGlvbj00MDAwMHxkdXJh dGlvbl90aW1lPTAuMDMzMzMzfHNpemU9MTI4fHBvcz01NzY2N3xmbGFncz1LX198ZGF0YV9oYXNo PUNSQzMyOjk1YjhjYWQxCi1wYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxw dHM9ODgwMDAwfHB0c190aW1lPTAuNzMzMzMzfGR0cz04ODAwMDB8ZHRzX3RpbWU9MC43MzMzMzN8 ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTEwNDg3fHBvcz01Nzc5 NXxmbGFncz1LX198ZGF0YV9oYXNoPUNSQzMyOjg2NDZmOGYyCi1wYWNrZXR8Y29kZWNfdHlwZT12 aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9OTIwMDAwfHB0c190aW1lPTAuNzY2NjY3fGR0cz05MjAw MDB8ZHRzX3RpbWU9MC43NjY2Njd8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMz M3xzaXplPTY1fHBvcz02ODI4MnxmbGFncz1LX198ZGF0YV9oYXNoPUNSQzMyOjczNjg3ZDE5Ci1w YWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9OTYwMDAwfHB0c190aW1l PTAuODAwMDAwfGR0cz05NjAwMDB8ZHRzX3RpbWU9MC44MDAwMDB8ZHVyYXRpb249NDAwMDB8ZHVy YXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTQ2fHBvcz02ODM0N3xmbGFncz1LX198ZGF0YV9oYXNo PUNSQzMyOmFkMzgxY2E1Ci1wYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxw dHM9MTAwMDAwMHxwdHNfdGltZT0wLjgzMzMzM3xkdHM9MTAwMDAwMHxkdHNfdGltZT0wLjgzMzMz M3xkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9Njd8cG9zPTY4Mzkz fGZsYWdzPUtfX3xkYXRhX2hhc2g9Q1JDMzI6ODkwNjkxNTIKLXBhY2tldHxjb2RlY190eXBlPXZp ZGVvfHN0cmVhbV9pbmRleD0wfHB0cz0xMDQwMDAwfHB0c190aW1lPTAuODY2NjY3fGR0cz0xMDQw MDAwfGR0c190aW1lPTAuODY2NjY3fGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMz MzN8c2l6ZT04NDAzfHBvcz02ODQ2MHxmbGFncz1LX198ZGF0YV9oYXNoPUNSQzMyOmEyMjkxM2Rk Ci1wYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MTA4MDAwMHxwdHNf dGltZT0wLjkwMDAwMHxkdHM9MTA4MDAwMHxkdHNfdGltZT0wLjkwMDAwMHxkdXJhdGlvbj00MDAw MHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9NzB8cG9zPTc2ODYzfGZsYWdzPUtfX3xkYXRh X2hhc2g9Q1JDMzI6OTg3NzI1OTYKLXBhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRl eD0wfHB0cz0xMTIwMDAwfHB0c190aW1lPTAuOTMzMzMzfGR0cz0xMTIwMDAwfGR0c190aW1lPTAu OTMzMzMzfGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT02M3xwb3M9 NzY5MzN8ZmxhZ3M9S19ffGRhdGFfaGFzaD1DUkMzMjpjZmQ2MmNjNAotcGFja2V0fGNvZGVjX3R5 cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTExNjAwMDB8cHRzX3RpbWU9MC45NjY2Njd8ZHRz PTExNjAwMDB8ZHRzX3RpbWU9MC45NjY2Njd8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0w LjAzMzMzM3xzaXplPTcwfHBvcz03Njk5NnxmbGFncz1LX198ZGF0YV9oYXNoPUNSQzMyOjliNTI2 MzU3Ci1wYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MTIwMDAwMHxw dHNfdGltZT0xLjAwMDAwMHxkdHM9MTIwMDAwMHxkdHNfdGltZT0xLjAwMDAwMHxkdXJhdGlvbj00 MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9Nzk0NXxwb3M9NzcwNjZ8ZmxhZ3M9S19f fGRhdGFfaGFzaD1DUkMzMjpkMGY0Njc2OQotcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFt X2luZGV4PTB8cHRzPTEyNDAwMDB8cHRzX3RpbWU9MS4wMzMzMzN8ZHRzPTEyNDAwMDB8ZHRzX3Rp bWU9MS4wMzMzMzN8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTQw NTU4fHBvcz04NTAxMXxmbGFncz1LX198ZGF0YV9oYXNoPUNSQzMyOjRkYjBiZDdkCi1wYWNrZXR8 Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MTI4MDAwMHxwdHNfdGltZT0xLjA2 NjY2N3xkdHM9MTI4MDAwMHxkdHNfdGltZT0xLjA2NjY2N3xkdXJhdGlvbj00MDAwMHxkdXJhdGlv bl90aW1lPTAuMDMzMzMzfHNpemU9MTI2MHxwb3M9MTI1NTY5fGZsYWdzPUtfX3xkYXRhX2hhc2g9 Q1JDMzI6M2M0Mzk3ZDcKLXBhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0 cz0xMzIwMDAwfHB0c190aW1lPTEuMTAwMDAwfGR0cz0xMzIwMDAwfGR0c190aW1lPTEuMTAwMDAw fGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT0yN3xwb3M9MTI2ODI5 fGZsYWdzPUtfX3xkYXRhX2hhc2g9Q1JDMzI6NWUyMzNjNzcKLXBhY2tldHxjb2RlY190eXBlPXZp ZGVvfHN0cmVhbV9pbmRleD0wfHB0cz0xMzYwMDAwfHB0c190aW1lPTEuMTMzMzMzfGR0cz0xMzYw MDAwfGR0c190aW1lPTEuMTMzMzMzfGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMz MzN8c2l6ZT0yNnxwb3M9MTI2ODU2fGZsYWdzPUtfX3xkYXRhX2hhc2g9Q1JDMzI6NTc5ODVlN2IK LXBhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz0xNDAwMDAwfHB0c190 aW1lPTEuMTY2NjY3fGR0cz0xNDAwMDAwfGR0c190aW1lPTEuMTY2NjY3fGR1cmF0aW9uPTQwMDAw fGR1cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT0xOHxwb3M9MTI2ODgyfGZsYWdzPUtfX3xkYXRh X2hhc2g9Q1JDMzI6ZjRlYjAxYmEKLXBhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRl eD0wfHB0cz0xNDQwMDAwfHB0c190aW1lPTEuMjAwMDAwfGR0cz0xNDQwMDAwfGR0c190aW1lPTEu MjAwMDAwfGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT0yOTMxfHBv cz0xMjY5MDB8ZmxhZ3M9S19ffGRhdGFfaGFzaD1DUkMzMjpjYTIwOTY0ZgotcGFja2V0fGNvZGVj X3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTE0ODAwMDB8cHRzX3RpbWU9MS4yMzMzMzN8 ZHRzPTE0ODAwMDB8ZHRzX3RpbWU9MS4yMzMzMzN8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGlt ZT0wLjAzMzMzM3xzaXplPTI1fHBvcz0xMjk4MzF8ZmxhZ3M9S19ffGRhdGFfaGFzaD1DUkMzMjph ODJiZDBiNAotcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTE1MjAw MDB8cHRzX3RpbWU9MS4yNjY2Njd8ZHRzPTE1MjAwMDB8ZHRzX3RpbWU9MS4yNjY2Njd8ZHVyYXRp b249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTE5fHBvcz0xMjk4NTZ8ZmxhZ3M9 S19ffGRhdGFfaGFzaD1DUkMzMjpiYzVmNzA5ZAotcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3Ry ZWFtX2luZGV4PTB8cHRzPTE1NjAwMDB8cHRzX3RpbWU9MS4zMDAwMDB8ZHRzPTE1NjAwMDB8ZHRz X3RpbWU9MS4zMDAwMDB8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXpl PTMwfHBvcz0xMjk4NzV8ZmxhZ3M9S19ffGRhdGFfaGFzaD1DUkMzMjpjMWY4YTRjOQotcGFja2V0 fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTE2MDAwMDB8cHRzX3RpbWU9MS4z MzMzMzN8ZHRzPTE2MDAwMDB8ZHRzX3RpbWU9MS4zMzMzMzN8ZHVyYXRpb249NDAwMDB8ZHVyYXRp b25fdGltZT0wLjAzMzMzM3xzaXplPTUwODh8cG9zPTEyOTkwNXxmbGFncz1LX198ZGF0YV9oYXNo PUNSQzMyOjQxYWNlMTQ1Ci1wYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxw dHM9MTY0MDAwMHxwdHNfdGltZT0xLjM2NjY2N3xkdHM9MTY0MDAwMHxkdHNfdGltZT0xLjM2NjY2 N3xkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9NDF8cG9zPTEzNDk5 M3xmbGFncz1LX198ZGF0YV9oYXNoPUNSQzMyOmUxNjliM2M3Ci1wYWNrZXR8Y29kZWNfdHlwZT12 aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MTY4MDAwMHxwdHNfdGltZT0xLjQwMDAwMHxkdHM9MTY4 MDAwMHxkdHNfdGltZT0xLjQwMDAwMHxkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMz MzMzfHNpemU9NTN8cG9zPTEzNTAzNHxmbGFncz1LX198ZGF0YV9oYXNoPUNSQzMyOjk3M2M1ZmUz Ci1wYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MTcyMDAwMHxwdHNf dGltZT0xLjQzMzMzM3xkdHM9MTcyMDAwMHxkdHNfdGltZT0xLjQzMzMzM3xkdXJhdGlvbj00MDAw MHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9NTR8cG9zPTEzNTA4N3xmbGFncz1LX198ZGF0 YV9oYXNoPUNSQzMyOjY2NTYzOWU2Ci1wYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5k ZXg9MHxwdHM9MTc2MDAwMHxwdHNfdGltZT0xLjQ2NjY2N3xkdHM9MTc2MDAwMHxkdHNfdGltZT0x LjQ2NjY2N3xkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9NzE1MHxw b3M9MTM1MTQxfGZsYWdzPUtfX3xkYXRhX2hhc2g9Q1JDMzI6Y2M5MTAwMjcKLXBhY2tldHxjb2Rl Y190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz0xODAwMDAwfHB0c190aW1lPTEuNTAwMDAw fGR0cz0xODAwMDAwfGR0c190aW1lPTEuNTAwMDAwfGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3Rp bWU9MC4wMzMzMzN8c2l6ZT00OHxwb3M9MTQyMjkxfGZsYWdzPUtfX3xkYXRhX2hhc2g9Q1JDMzI6 NDU2NThmNzgKLXBhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz0xODQw MDAwfHB0c190aW1lPTEuNTMzMzMzfGR0cz0xODQwMDAwfGR0c190aW1lPTEuNTMzMzMzfGR1cmF0 aW9uPTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT00OHxwb3M9MTQyMzM5fGZsYWdz PUtfX3xkYXRhX2hhc2g9Q1JDMzI6OTRlMzU5YTIKLXBhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0 cmVhbV9pbmRleD0wfHB0cz0xODgwMDAwfHB0c190aW1lPTEuNTY2NjY3fGR0cz0xODgwMDAwfGR0 c190aW1lPTEuNTY2NjY3fGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6 ZT01MXxwb3M9MTQyMzg3fGZsYWdzPUtfX3xkYXRhX2hhc2g9Q1JDMzI6OTU5Y2NkZDkKLXBhY2tl dHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz0xOTIwMDAwfHB0c190aW1lPTEu NjAwMDAwfGR0cz0xOTIwMDAwfGR0c190aW1lPTEuNjAwMDAwfGR1cmF0aW9uPTQwMDAwfGR1cmF0 aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT05Mzc5fHBvcz0xNDI0Mzh8ZmxhZ3M9S19ffGRhdGFfaGFz aD1DUkMzMjphMzMxODQxMAotcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8 cHRzPTE5NjAwMDB8cHRzX3RpbWU9MS42MzMzMzN8ZHRzPTE5NjAwMDB8ZHRzX3RpbWU9MS42MzMz MzN8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTU4fHBvcz0xNTE4 MTd8ZmxhZ3M9S19ffGRhdGFfaGFzaD1DUkMzMjo0NGIyNGYwMwotcGFja2V0fGNvZGVjX3R5cGU9 dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTIwMDAwMDB8cHRzX3RpbWU9MS42NjY2Njd8ZHRzPTIw MDAwMDB8ZHRzX3RpbWU9MS42NjY2Njd8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAz MzMzM3xzaXplPTQzfHBvcz0xNTE4NzV8ZmxhZ3M9S19ffGRhdGFfaGFzaD1DUkMzMjpmNDg3NmUw NQotcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTIwNDAwMDB8cHRz X3RpbWU9MS43MDAwMDB8ZHRzPTIwNDAwMDB8ZHRzX3RpbWU9MS43MDAwMDB8ZHVyYXRpb249NDAw MDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTYyfHBvcz0xNTE5MTh8ZmxhZ3M9S19ffGRh dGFfaGFzaD1DUkMzMjozNGRjZTc0OQotcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2lu ZGV4PTB8cHRzPTIwODAwMDB8cHRzX3RpbWU9MS43MzMzMzN8ZHRzPTIwODAwMDB8ZHRzX3RpbWU9 MS43MzMzMzN8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTEwNzMz fHBvcz0xNTE5ODB8ZmxhZ3M9S19ffGRhdGFfaGFzaD1DUkMzMjo5MDEyZmRmYgotcGFja2V0fGNv ZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTIxMjAwMDB8cHRzX3RpbWU9MS43NjY2 Njd8ZHRzPTIxMjAwMDB8ZHRzX3RpbWU9MS43NjY2Njd8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25f dGltZT0wLjAzMzMzM3xzaXplPTU4fHBvcz0xNjI3MTN8ZmxhZ3M9S19ffGRhdGFfaGFzaD1DUkMz Mjo4YTNjODc2MAotcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTIx NjAwMDB8cHRzX3RpbWU9MS44MDAwMDB8ZHRzPTIxNjAwMDB8ZHRzX3RpbWU9MS44MDAwMDB8ZHVy YXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTQxfHBvcz0xNjI3NzF8Zmxh Z3M9S19ffGRhdGFfaGFzaD1DUkMzMjoyOGRhNmJmNAotcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98 c3RyZWFtX2luZGV4PTB8cHRzPTIyMDAwMDB8cHRzX3RpbWU9MS44MzMzMzN8ZHRzPTIyMDAwMDB8 ZHRzX3RpbWU9MS44MzMzMzN8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xz aXplPTY4fHBvcz0xNjI4MTJ8ZmxhZ3M9S19ffGRhdGFfaGFzaD1DUkMzMjo5NTlkY2MxMAotcGFj a2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTIyNDAwMDB8cHRzX3RpbWU9 MS44NjY2Njd8ZHRzPTIyNDAwMDB8ZHRzX3RpbWU9MS44NjY2Njd8ZHVyYXRpb249NDAwMDB8ZHVy YXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTkyNDd8cG9zPTE2Mjg4MHxmbGFncz1LX198ZGF0YV9o YXNoPUNSQzMyOmNmMWUyYTFhCi1wYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9 MHxwdHM9MjI4MDAwMHxwdHNfdGltZT0xLjkwMDAwMHxkdHM9MjI4MDAwMHxkdHNfdGltZT0xLjkw MDAwMHxkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9NTh8cG9zPTE3 MjEyN3xmbGFncz1LX198ZGF0YV9oYXNoPUNSQzMyOjJlZmNiN2JhCi1wYWNrZXR8Y29kZWNfdHlw ZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MjMyMDAwMHxwdHNfdGltZT0xLjkzMzMzM3xkdHM9 MjMyMDAwMHxkdHNfdGltZT0xLjkzMzMzM3xkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAu MDMzMzMzfHNpemU9Njd8cG9zPTE3MjE4NXxmbGFncz1LX198ZGF0YV9oYXNoPUNSQzMyOjQyNDg0 NDQ5Ci1wYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MjM2MDAwMHxw dHNfdGltZT0xLjk2NjY2N3xkdHM9MjM2MDAwMHxkdHNfdGltZT0xLjk2NjY2N3xkdXJhdGlvbj00 MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9ODN8cG9zPTE3MjI1MnxmbGFncz1LX198 ZGF0YV9oYXNoPUNSQzMyOmE5NDFiZGYwCi1wYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1f aW5kZXg9MHxwdHM9MjQwMDAwMHxwdHNfdGltZT0yLjAwMDAwMHxkdHM9MjQwMDAwMHxkdHNfdGlt ZT0yLjAwMDAwMHxkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9NTQx N3xwb3M9MTcyMzM1fGZsYWdzPUtfX3xkYXRhX2hhc2g9Q1JDMzI6OWQwZDUwM2IKK3BhY2tldHxj b2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz0wfHB0c190aW1lPTAuMDAwMDAwfGR0 cz0wfGR0c190aW1lPTAuMDAwMDAwfGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMz MzN8c2l6ZT0xNDQ0N3xwb3M9MHxmbGFncz1LX198ZGF0YV9oYXNoPUNSQzMyOjgzZjI1N2MwCitw YWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9NDAwMDB8cHRzX3RpbWU9 MC4wMzMzMzN8ZHRzPTQwMDAwfGR0c190aW1lPTAuMDMzMzMzfGR1cmF0aW9uPTQwMDAwfGR1cmF0 aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT00ODN8cG9zPTE0NDQ3fGZsYWdzPV9fX3xkYXRhX2hhc2g9 Q1JDMzI6NWFiYjgyZjgKK3BhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0 cz04MDAwMHxwdHNfdGltZT0wLjA2NjY2N3xkdHM9ODAwMDB8ZHRzX3RpbWU9MC4wNjY2Njd8ZHVy YXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTE4fHBvcz0xNDkzMHxmbGFn cz1fX198ZGF0YV9oYXNoPUNSQzMyOmI4YjEyM2Q4CitwYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xz dHJlYW1faW5kZXg9MHxwdHM9MTIwMDAwfHB0c190aW1lPTAuMTAwMDAwfGR0cz0xMjAwMDB8ZHRz X3RpbWU9MC4xMDAwMDB8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXpl PTE4fHBvcz0xNDk0OHxmbGFncz1fX198ZGF0YV9oYXNoPUNSQzMyOjE5MTgwZmE4CitwYWNrZXR8 Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MTYwMDAwfHB0c190aW1lPTAuMTMz MzMzfGR0cz0xNjAwMDB8ZHRzX3RpbWU9MC4xMzMzMzN8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25f dGltZT0wLjAzMzMzM3xzaXplPTE4fHBvcz0xNDk2NnxmbGFncz1fX198ZGF0YV9oYXNoPUNSQzMy OmNmNTAxNjQ3CitwYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MjAw MDAwfHB0c190aW1lPTAuMTY2NjY3fGR0cz0yMDAwMDB8ZHRzX3RpbWU9MC4xNjY2Njd8ZHVyYXRp b249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTE4MDd8cG9zPTE0OTg0fGZsYWdz PV9fX3xkYXRhX2hhc2g9Q1JDMzI6NDI2N2UxZDUKK3BhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0 cmVhbV9pbmRleD0wfHB0cz0yNDAwMDB8cHRzX3RpbWU9MC4yMDAwMDB8ZHRzPTI0MDAwMHxkdHNf dGltZT0wLjIwMDAwMHxkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9 Mjh8cG9zPTE2NzkxfGZsYWdzPV9fX3xkYXRhX2hhc2g9Q1JDMzI6YzIyMzI4NWEKK3BhY2tldHxj b2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz0yODAwMDB8cHRzX3RpbWU9MC4yMzMz MzN8ZHRzPTI4MDAwMHxkdHNfdGltZT0wLjIzMzMzM3xkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90 aW1lPTAuMDMzMzMzfHNpemU9MjV8cG9zPTE2ODE5fGZsYWdzPV9fX3xkYXRhX2hhc2g9Q1JDMzI6 MjU2NWNjOWUKK3BhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz0zMjAw MDB8cHRzX3RpbWU9MC4yNjY2Njd8ZHRzPTMyMDAwMHxkdHNfdGltZT0wLjI2NjY2N3xkdXJhdGlv bj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9MjJ8cG9zPTE2ODQ0fGZsYWdzPV9f X3xkYXRhX2hhc2g9Q1JDMzI6N2ZiZjM2YWMKK3BhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVh bV9pbmRleD0wfHB0cz0zNjAwMDB8cHRzX3RpbWU9MC4zMDAwMDB8ZHRzPTM2MDAwMHxkdHNfdGlt ZT0wLjMwMDAwMHxkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9MjM4 ODR8cG9zPTE2ODY2fGZsYWdzPV9fX3xkYXRhX2hhc2g9Q1JDMzI6ZDYxNDMwZmQKK3BhY2tldHxj b2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz00MDAwMDB8cHRzX3RpbWU9MC4zMzMz MzN8ZHRzPTQwMDAwMHxkdHNfdGltZT0wLjMzMzMzM3xkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90 aW1lPTAuMDMzMzMzfHNpemU9MjY1fHBvcz00MDc1MHxmbGFncz1fX198ZGF0YV9oYXNoPUNSQzMy OmQ2NDE0NWEwCitwYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9NDQw MDAwfHB0c190aW1lPTAuMzY2NjY3fGR0cz00NDAwMDB8ZHRzX3RpbWU9MC4zNjY2Njd8ZHVyYXRp b249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTM5M3xwb3M9NDEwMTV8ZmxhZ3M9 X19ffGRhdGFfaGFzaD1DUkMzMjozMmMwMjBlMgorcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3Ry ZWFtX2luZGV4PTB8cHRzPTQ4MDAwMHxwdHNfdGltZT0wLjQwMDAwMHxkdHM9NDgwMDAwfGR0c190 aW1lPTAuNDAwMDAwfGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT02 NTZ8cG9zPTQxNDA4fGZsYWdzPV9fX3xkYXRhX2hhc2g9Q1JDMzI6OTY1Yzc4NDYKK3BhY2tldHxj b2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz01MjAwMDB8cHRzX3RpbWU9MC40MzMz MzN8ZHRzPTUyMDAwMHxkdHNfdGltZT0wLjQzMzMzM3xkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90 aW1lPTAuMDMzMzMzfHNpemU9MzUwMHxwb3M9NDIwNjR8ZmxhZ3M9X19ffGRhdGFfaGFzaD1DUkMz MjpkZGY3MzFkZQorcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTU2 MDAwMHxwdHNfdGltZT0wLjQ2NjY2N3xkdHM9NTYwMDAwfGR0c190aW1lPTAuNDY2NjY3fGR1cmF0 aW9uPTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT02OHxwb3M9NDU1NjR8ZmxhZ3M9 X19ffGRhdGFfaGFzaD1DUkMzMjpmOGM4YmEwNworcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3Ry ZWFtX2luZGV4PTB8cHRzPTYwMDAwMHxwdHNfdGltZT0wLjUwMDAwMHxkdHM9NjAwMDAwfGR0c190 aW1lPTAuNTAwMDAwfGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT01 OHxwb3M9NDU2MzJ8ZmxhZ3M9X19ffGRhdGFfaGFzaD1DUkMzMjoyMmFkYmI4MworcGFja2V0fGNv ZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTY0MDAwMHxwdHNfdGltZT0wLjUzMzMz M3xkdHM9NjQwMDAwfGR0c190aW1lPTAuNTMzMzMzfGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3Rp bWU9MC4wMzMzMzN8c2l6ZT00M3xwb3M9NDU2OTB8ZmxhZ3M9X19ffGRhdGFfaGFzaD1DUkMzMjo1 M2ZiMTM2YworcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTY4MDAw MHxwdHNfdGltZT0wLjU2NjY2N3xkdHM9NjgwMDAwfGR0c190aW1lPTAuNTY2NjY3fGR1cmF0aW9u PTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT0xMTc1N3xwb3M9NDU3MzN8ZmxhZ3M9 X19ffGRhdGFfaGFzaD1DUkMzMjo1NTFlNDkxYgorcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3Ry ZWFtX2luZGV4PTB8cHRzPTcyMDAwMHxwdHNfdGltZT0wLjYwMDAwMHxkdHM9NzIwMDAwfGR0c190 aW1lPTAuNjAwMDAwfGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT05 OHxwb3M9NTc0OTB8ZmxhZ3M9X19ffGRhdGFfaGFzaD1DUkMzMjo0ZTcxOGRkNAorcGFja2V0fGNv ZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTc2MDAwMHxwdHNfdGltZT0wLjYzMzMz M3xkdHM9NzYwMDAwfGR0c190aW1lPTAuNjMzMzMzfGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3Rp bWU9MC4wMzMzMzN8c2l6ZT03OXxwb3M9NTc1ODh8ZmxhZ3M9X19ffGRhdGFfaGFzaD1DUkMzMjo0 YzVhMzJmNQorcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTgwMDAw MHxwdHNfdGltZT0wLjY2NjY2N3xkdHM9ODAwMDAwfGR0c190aW1lPTAuNjY2NjY3fGR1cmF0aW9u PTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT0xMjh8cG9zPTU3NjY3fGZsYWdzPV9f X3xkYXRhX2hhc2g9Q1JDMzI6OTViOGNhZDEKK3BhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVh bV9pbmRleD0wfHB0cz04NDAwMDB8cHRzX3RpbWU9MC43MDAwMDB8ZHRzPTg0MDAwMHxkdHNfdGlt ZT0wLjcwMDAwMHxkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9MTA0 ODd8cG9zPTU3Nzk1fGZsYWdzPV9fX3xkYXRhX2hhc2g9Q1JDMzI6ODY0NmY4ZjIKK3BhY2tldHxj b2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz04ODAwMDB8cHRzX3RpbWU9MC43MzMz MzN8ZHRzPTg4MDAwMHxkdHNfdGltZT0wLjczMzMzM3xkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90 aW1lPTAuMDMzMzMzfHNpemU9NjV8cG9zPTY4MjgyfGZsYWdzPV9fX3xkYXRhX2hhc2g9Q1JDMzI6 NzM2ODdkMTkKK3BhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz05MjAw MDB8cHRzX3RpbWU9MC43NjY2Njd8ZHRzPTkyMDAwMHxkdHNfdGltZT0wLjc2NjY2N3xkdXJhdGlv bj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9NDZ8cG9zPTY4MzQ3fGZsYWdzPV9f X3xkYXRhX2hhc2g9Q1JDMzI6YWQzODFjYTUKK3BhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVh bV9pbmRleD0wfHB0cz05NjAwMDB8cHRzX3RpbWU9MC44MDAwMDB8ZHRzPTk2MDAwMHxkdHNfdGlt ZT0wLjgwMDAwMHxkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9Njd8 cG9zPTY4MzkzfGZsYWdzPV9fX3xkYXRhX2hhc2g9Q1JDMzI6ODkwNjkxNTIKK3BhY2tldHxjb2Rl Y190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz0xMDAwMDAwfHB0c190aW1lPTAuODMzMzMz fGR0cz0xMDAwMDAwfGR0c190aW1lPTAuODMzMzMzfGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3Rp bWU9MC4wMzMzMzN8c2l6ZT04NDAzfHBvcz02ODQ2MHxmbGFncz1fX198ZGF0YV9oYXNoPUNSQzMy OmEyMjkxM2RkCitwYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MTA0 MDAwMHxwdHNfdGltZT0wLjg2NjY2N3xkdHM9MTA0MDAwMHxkdHNfdGltZT0wLjg2NjY2N3xkdXJh dGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9NzB8cG9zPTc2ODYzfGZsYWdz PV9fX3xkYXRhX2hhc2g9Q1JDMzI6OTg3NzI1OTYKK3BhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0 cmVhbV9pbmRleD0wfHB0cz0xMDgwMDAwfHB0c190aW1lPTAuOTAwMDAwfGR0cz0xMDgwMDAwfGR0 c190aW1lPTAuOTAwMDAwfGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6 ZT02M3xwb3M9NzY5MzN8ZmxhZ3M9X19ffGRhdGFfaGFzaD1DUkMzMjpjZmQ2MmNjNAorcGFja2V0 fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTExMjAwMDB8cHRzX3RpbWU9MC45 MzMzMzN8ZHRzPTExMjAwMDB8ZHRzX3RpbWU9MC45MzMzMzN8ZHVyYXRpb249NDAwMDB8ZHVyYXRp b25fdGltZT0wLjAzMzMzM3xzaXplPTcwfHBvcz03Njk5NnxmbGFncz1fX198ZGF0YV9oYXNoPUNS QzMyOjliNTI2MzU3CitwYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9 MTE2MDAwMHxwdHNfdGltZT0wLjk2NjY2N3xkdHM9MTE2MDAwMHxkdHNfdGltZT0wLjk2NjY2N3xk dXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9Nzk0NXxwb3M9NzcwNjZ8 ZmxhZ3M9X19ffGRhdGFfaGFzaD1DUkMzMjpkMGY0Njc2OQorcGFja2V0fGNvZGVjX3R5cGU9dmlk ZW98c3RyZWFtX2luZGV4PTB8cHRzPTEyMDAwMDB8cHRzX3RpbWU9MS4wMDAwMDB8ZHRzPTEyMDAw MDB8ZHRzX3RpbWU9MS4wMDAwMDB8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMz M3xzaXplPTQwNTU4fHBvcz04NTAxMXxmbGFncz1LX198ZGF0YV9oYXNoPUNSQzMyOjRkYjBiZDdk CitwYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MTI0MDAwMHxwdHNf dGltZT0xLjAzMzMzM3xkdHM9MTI0MDAwMHxkdHNfdGltZT0xLjAzMzMzM3xkdXJhdGlvbj00MDAw MHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9MTI2MHxwb3M9MTI1NTY5fGZsYWdzPV9fX3xk YXRhX2hhc2g9Q1JDMzI6M2M0Mzk3ZDcKK3BhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9p bmRleD0wfHB0cz0xMjgwMDAwfHB0c190aW1lPTEuMDY2NjY3fGR0cz0xMjgwMDAwfGR0c190aW1l PTEuMDY2NjY3fGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT0yN3xw b3M9MTI2ODI5fGZsYWdzPV9fX3xkYXRhX2hhc2g9Q1JDMzI6NWUyMzNjNzcKK3BhY2tldHxjb2Rl Y190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz0xMzIwMDAwfHB0c190aW1lPTEuMTAwMDAw fGR0cz0xMzIwMDAwfGR0c190aW1lPTEuMTAwMDAwfGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3Rp bWU9MC4wMzMzMzN8c2l6ZT0yNnxwb3M9MTI2ODU2fGZsYWdzPV9fX3xkYXRhX2hhc2g9Q1JDMzI6 NTc5ODVlN2IKK3BhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz0xMzYw MDAwfHB0c190aW1lPTEuMTMzMzMzfGR0cz0xMzYwMDAwfGR0c190aW1lPTEuMTMzMzMzfGR1cmF0 aW9uPTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT0xOHxwb3M9MTI2ODgyfGZsYWdz PV9fX3xkYXRhX2hhc2g9Q1JDMzI6ZjRlYjAxYmEKK3BhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0 cmVhbV9pbmRleD0wfHB0cz0xNDAwMDAwfHB0c190aW1lPTEuMTY2NjY3fGR0cz0xNDAwMDAwfGR0 c190aW1lPTEuMTY2NjY3fGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6 ZT0yOTMxfHBvcz0xMjY5MDB8ZmxhZ3M9X19ffGRhdGFfaGFzaD1DUkMzMjpjYTIwOTY0ZgorcGFj a2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTE0NDAwMDB8cHRzX3RpbWU9 MS4yMDAwMDB8ZHRzPTE0NDAwMDB8ZHRzX3RpbWU9MS4yMDAwMDB8ZHVyYXRpb249NDAwMDB8ZHVy YXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTI1fHBvcz0xMjk4MzF8ZmxhZ3M9X19ffGRhdGFfaGFz aD1DUkMzMjphODJiZDBiNAorcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8 cHRzPTE0ODAwMDB8cHRzX3RpbWU9MS4yMzMzMzN8ZHRzPTE0ODAwMDB8ZHRzX3RpbWU9MS4yMzMz MzN8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTE5fHBvcz0xMjk4 NTZ8ZmxhZ3M9X19ffGRhdGFfaGFzaD1DUkMzMjpiYzVmNzA5ZAorcGFja2V0fGNvZGVjX3R5cGU9 dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTE1MjAwMDB8cHRzX3RpbWU9MS4yNjY2Njd8ZHRzPTE1 MjAwMDB8ZHRzX3RpbWU9MS4yNjY2Njd8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAz MzMzM3xzaXplPTMwfHBvcz0xMjk4NzV8ZmxhZ3M9X19ffGRhdGFfaGFzaD1DUkMzMjpjMWY4YTRj OQorcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTE1NjAwMDB8cHRz X3RpbWU9MS4zMDAwMDB8ZHRzPTE1NjAwMDB8ZHRzX3RpbWU9MS4zMDAwMDB8ZHVyYXRpb249NDAw MDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTUwODh8cG9zPTEyOTkwNXxmbGFncz1fX198 ZGF0YV9oYXNoPUNSQzMyOjQxYWNlMTQ1CitwYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1f aW5kZXg9MHxwdHM9MTYwMDAwMHxwdHNfdGltZT0xLjMzMzMzM3xkdHM9MTYwMDAwMHxkdHNfdGlt ZT0xLjMzMzMzM3xkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9NDF8 cG9zPTEzNDk5M3xmbGFncz1fX198ZGF0YV9oYXNoPUNSQzMyOmUxNjliM2M3CitwYWNrZXR8Y29k ZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MTY0MDAwMHxwdHNfdGltZT0xLjM2NjY2 N3xkdHM9MTY0MDAwMHxkdHNfdGltZT0xLjM2NjY2N3xkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90 aW1lPTAuMDMzMzMzfHNpemU9NTN8cG9zPTEzNTAzNHxmbGFncz1fX198ZGF0YV9oYXNoPUNSQzMy Ojk3M2M1ZmUzCitwYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MTY4 MDAwMHxwdHNfdGltZT0xLjQwMDAwMHxkdHM9MTY4MDAwMHxkdHNfdGltZT0xLjQwMDAwMHxkdXJh dGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9NTR8cG9zPTEzNTA4N3xmbGFn cz1fX198ZGF0YV9oYXNoPUNSQzMyOjY2NTYzOWU2CitwYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xz dHJlYW1faW5kZXg9MHxwdHM9MTcyMDAwMHxwdHNfdGltZT0xLjQzMzMzM3xkdHM9MTcyMDAwMHxk dHNfdGltZT0xLjQzMzMzM3xkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNp emU9NzE1MHxwb3M9MTM1MTQxfGZsYWdzPV9fX3xkYXRhX2hhc2g9Q1JDMzI6Y2M5MTAwMjcKK3Bh Y2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz0xNzYwMDAwfHB0c190aW1l PTEuNDY2NjY3fGR0cz0xNzYwMDAwfGR0c190aW1lPTEuNDY2NjY3fGR1cmF0aW9uPTQwMDAwfGR1 cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT00OHxwb3M9MTQyMjkxfGZsYWdzPV9fX3xkYXRhX2hh c2g9Q1JDMzI6NDU2NThmNzgKK3BhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0w fHB0cz0xODAwMDAwfHB0c190aW1lPTEuNTAwMDAwfGR0cz0xODAwMDAwfGR0c190aW1lPTEuNTAw MDAwfGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT00OHxwb3M9MTQy MzM5fGZsYWdzPV9fX3xkYXRhX2hhc2g9Q1JDMzI6OTRlMzU5YTIKK3BhY2tldHxjb2RlY190eXBl PXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz0xODQwMDAwfHB0c190aW1lPTEuNTMzMzMzfGR0cz0x ODQwMDAwfGR0c190aW1lPTEuNTMzMzMzfGR1cmF0aW9uPTQwMDAwfGR1cmF0aW9uX3RpbWU9MC4w MzMzMzN8c2l6ZT01MXxwb3M9MTQyMzg3fGZsYWdzPV9fX3xkYXRhX2hhc2g9Q1JDMzI6OTU5Y2Nk ZDkKK3BhY2tldHxjb2RlY190eXBlPXZpZGVvfHN0cmVhbV9pbmRleD0wfHB0cz0xODgwMDAwfHB0 c190aW1lPTEuNTY2NjY3fGR0cz0xODgwMDAwfGR0c190aW1lPTEuNTY2NjY3fGR1cmF0aW9uPTQw MDAwfGR1cmF0aW9uX3RpbWU9MC4wMzMzMzN8c2l6ZT05Mzc5fHBvcz0xNDI0Mzh8ZmxhZ3M9X19f fGRhdGFfaGFzaD1DUkMzMjphMzMxODQxMAorcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFt X2luZGV4PTB8cHRzPTE5MjAwMDB8cHRzX3RpbWU9MS42MDAwMDB8ZHRzPTE5MjAwMDB8ZHRzX3Rp bWU9MS42MDAwMDB8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTU4 fHBvcz0xNTE4MTd8ZmxhZ3M9X19ffGRhdGFfaGFzaD1DUkMzMjo0NGIyNGYwMworcGFja2V0fGNv ZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTE5NjAwMDB8cHRzX3RpbWU9MS42MzMz MzN8ZHRzPTE5NjAwMDB8ZHRzX3RpbWU9MS42MzMzMzN8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25f dGltZT0wLjAzMzMzM3xzaXplPTQzfHBvcz0xNTE4NzV8ZmxhZ3M9X19ffGRhdGFfaGFzaD1DUkMz MjpmNDg3NmUwNQorcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTIw MDAwMDB8cHRzX3RpbWU9MS42NjY2Njd8ZHRzPTIwMDAwMDB8ZHRzX3RpbWU9MS42NjY2Njd8ZHVy YXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTYyfHBvcz0xNTE5MTh8Zmxh Z3M9X19ffGRhdGFfaGFzaD1DUkMzMjozNGRjZTc0OQorcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98 c3RyZWFtX2luZGV4PTB8cHRzPTIwNDAwMDB8cHRzX3RpbWU9MS43MDAwMDB8ZHRzPTIwNDAwMDB8 ZHRzX3RpbWU9MS43MDAwMDB8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xz aXplPTEwNzMzfHBvcz0xNTE5ODB8ZmxhZ3M9X19ffGRhdGFfaGFzaD1DUkMzMjo5MDEyZmRmYgor cGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTIwODAwMDB8cHRzX3Rp bWU9MS43MzMzMzN8ZHRzPTIwODAwMDB8ZHRzX3RpbWU9MS43MzMzMzN8ZHVyYXRpb249NDAwMDB8 ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTU4fHBvcz0xNjI3MTN8ZmxhZ3M9X19ffGRhdGFf aGFzaD1DUkMzMjo4YTNjODc2MAorcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4 PTB8cHRzPTIxMjAwMDB8cHRzX3RpbWU9MS43NjY2Njd8ZHRzPTIxMjAwMDB8ZHRzX3RpbWU9MS43 NjY2Njd8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTQxfHBvcz0x NjI3NzF8ZmxhZ3M9X19ffGRhdGFfaGFzaD1DUkMzMjoyOGRhNmJmNAorcGFja2V0fGNvZGVjX3R5 cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTIxNjAwMDB8cHRzX3RpbWU9MS44MDAwMDB8ZHRz PTIxNjAwMDB8ZHRzX3RpbWU9MS44MDAwMDB8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0w LjAzMzMzM3xzaXplPTY4fHBvcz0xNjI4MTJ8ZmxhZ3M9X19ffGRhdGFfaGFzaD1DUkMzMjo5NTlk Y2MxMAorcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTIyMDAwMDB8 cHRzX3RpbWU9MS44MzMzMzN8ZHRzPTIyMDAwMDB8ZHRzX3RpbWU9MS44MzMzMzN8ZHVyYXRpb249 NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTkyNDd8cG9zPTE2Mjg4MHxmbGFncz1f X198ZGF0YV9oYXNoPUNSQzMyOmNmMWUyYTFhCitwYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJl YW1faW5kZXg9MHxwdHM9MjI0MDAwMHxwdHNfdGltZT0xLjg2NjY2N3xkdHM9MjI0MDAwMHxkdHNf dGltZT0xLjg2NjY2N3xkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9 NTh8cG9zPTE3MjEyN3xmbGFncz1fX198ZGF0YV9oYXNoPUNSQzMyOjJlZmNiN2JhCitwYWNrZXR8 Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MjI4MDAwMHxwdHNfdGltZT0xLjkw MDAwMHxkdHM9MjI4MDAwMHxkdHNfdGltZT0xLjkwMDAwMHxkdXJhdGlvbj00MDAwMHxkdXJhdGlv bl90aW1lPTAuMDMzMzMzfHNpemU9Njd8cG9zPTE3MjE4NXxmbGFncz1fX198ZGF0YV9oYXNoPUNS QzMyOjQyNDg0NDQ5CitwYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9 MjMyMDAwMHxwdHNfdGltZT0xLjkzMzMzM3xkdHM9MjMyMDAwMHxkdHNfdGltZT0xLjkzMzMzM3xk dXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMzfHNpemU9ODN8cG9zPTE3MjI1Mnxm bGFncz1fX198ZGF0YV9oYXNoPUNSQzMyOmE5NDFiZGYwCitwYWNrZXR8Y29kZWNfdHlwZT12aWRl b3xzdHJlYW1faW5kZXg9MHxwdHM9MjM2MDAwMHxwdHNfdGltZT0xLjk2NjY2N3xkdHM9MjM2MDAw MHxkdHNfdGltZT0xLjk2NjY2N3xkdXJhdGlvbj00MDAwMHxkdXJhdGlvbl90aW1lPTAuMDMzMzMz fHNpemU9NTQxN3xwb3M9MTcyMzM1fGZsYWdzPV9fX3xkYXRhX2hhc2g9Q1JDMzI6OWQwZDUwM2IK IHN0cmVhbXxpbmRleD0wfGNvZGVjX25hbWU9Y2F2c3xwcm9maWxlPXVua25vd258Y29kZWNfdHlw ZT12aWRlb3xjb2RlY190YWdfc3RyaW5nPVswXVswXVswXVswXXxjb2RlY190YWc9MHgwMDAwfHdp ZHRoPTEyODB8aGVpZ2h0PTcyMHxjb2RlZF93aWR0aD0xMjgwfGNvZGVkX2hlaWdodD03MjB8aGFz X2JfZnJhbWVzPTB8c2FtcGxlX2FzcGVjdF9yYXRpbz1OL0F8ZGlzcGxheV9hc3BlY3RfcmF0aW89 Ti9BfHBpeF9mbXQ9eXV2NDIwcHxsZXZlbD0tOTl8Y29sb3JfcmFuZ2U9dW5rbm93bnxjb2xvcl9z cGFjZT11bmtub3dufGNvbG9yX3RyYW5zZmVyPXVua25vd258Y29sb3JfcHJpbWFyaWVzPXVua25v d258Y2hyb21hX2xvY2F0aW9uPXVuc3BlY2lmaWVkfGZpZWxkX29yZGVyPXVua25vd258cmVmcz0x fGlkPU4vQXxyX2ZyYW1lX3JhdGU9MzAvMXxhdmdfZnJhbWVfcmF0ZT0yNS8xfHRpbWVfYmFzZT0x LzEyMDAwMDB8c3RhcnRfcHRzPU4vQXxzdGFydF90aW1lPU4vQXxkdXJhdGlvbl90cz1OL0F8ZHVy YXRpb249Ti9BfGJpdF9yYXRlPU4vQXxtYXhfYml0X3JhdGU9Ti9BfGJpdHNfcGVyX3Jhd19zYW1w bGU9Ti9BfG5iX2ZyYW1lcz1OL0F8bmJfcmVhZF9mcmFtZXM9Ti9BfG5iX3JlYWRfcGFja2V0cz02 MHxleHRyYWRhdGFfc2l6ZT0xOHxleHRyYWRhdGFfaGFzaD1DUkMzMjoxMjU1ZDUyZXxkaXNwb3Np dGlvbjpkZWZhdWx0PTB8ZGlzcG9zaXRpb246ZHViPTB8ZGlzcG9zaXRpb246b3JpZ2luYWw9MHxk aXNwb3NpdGlvbjpjb21tZW50PTB8ZGlzcG9zaXRpb246bHlyaWNzPTB8ZGlzcG9zaXRpb246a2Fy YW9rZT0wfGRpc3Bvc2l0aW9uOmZvcmNlZD0wfGRpc3Bvc2l0aW9uOmhlYXJpbmdfaW1wYWlyZWQ9 MHxkaXNwb3NpdGlvbjp2aXN1YWxfaW1wYWlyZWQ9MHxkaXNwb3NpdGlvbjpjbGVhbl9lZmZlY3Rz PTB8ZGlzcG9zaXRpb246YXR0YWNoZWRfcGljPTB8ZGlzcG9zaXRpb246dGltZWRfdGh1bWJuYWls cz0wfGRpc3Bvc2l0aW9uOm5vbl9kaWVnZXRpYz0wfGRpc3Bvc2l0aW9uOmNhcHRpb25zPTB8ZGlz cG9zaXRpb246ZGVzY3JpcHRpb25zPTB8ZGlzcG9zaXRpb246bWV0YWRhdGE9MHxkaXNwb3NpdGlv bjpkZXBlbmRlbnQ9MHxkaXNwb3NpdGlvbjpzdGlsbF9pbWFnZT0wfGRpc3Bvc2l0aW9uOm11bHRp bGF5ZXI9MAogZm9ybWF0fGZpbGVuYW1lPWJ1bm55Lm1wNHxuYl9zdHJlYW1zPTF8bmJfcHJvZ3Jh bXM9MHxuYl9zdHJlYW1fZ3JvdXBzPTB8Zm9ybWF0X25hbWU9Y2F2c3ZpZGVvfHN0YXJ0X3RpbWU9 Ti9BfGR1cmF0aW9uPU4vQXxzaXplPTE3Nzc1MnxiaXRfcmF0ZT1OL0F8cHJvYmVfc2NvcmU9NTEK LS0gCjIuNTIuMAoKCkZyb20gM2FmMjRjNDk5ODUzZmVmMmI2NjZkNzkwNTdkMmFjY2NhMGQxMmNk OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR2F2aW4gTGkgPGdmbDMxNjJAZ21haWwu Y29tPgpEYXRlOiBTdW4sIDI2IEphbiAyMDI1IDIyOjU0OjA2IC0wNTAwClN1YmplY3Q6IFtQQVRD SCAxMzAvMzA0XSBhdmZvcm1hdC9yYXdkZWM6IHNldCBmcmFtZXJhdGUgaW4gY29kZWMgcGFyYW1l dGVycwoKQ29tbWl0IGJhNGI3M2M5Nzc5YzMyNTgwZjhhM2JhMDg2MDJhNWQ5NGUwYmNkN2MgY2F1 c2VkIGEgcmVncmVzc2lvbiBpbgp0aGUgdXNhZ2Ugb2YgYXZnX2ZyYW1lX3JhdGUgdG8gZGV0ZWN0 IHRoZSBmcmFtZSByYXRlIG9mIHJhdyBoMjY0L2hldmMKYml0c3RyZWFtczogYWZ0ZXIgdGhlIGNv bW1pdCwgYXZnX2ZyYW1lX3JhdGUgaXMgYWx3YXlzIHRoZSB2YWx1ZSBvZiB0aGUKLWZyYW1lcmF0 ZSBvcHRpb24gKHdoaWNoIGlzIHNldCB0byAyNSBieSBkZWZhdWx0KSBpbnN0ZWFkIG9mIHRoZSBh Y3R1YWwKZnJhbWUgcmF0ZSBkZXJpdmVkIGZyb20gdGhlIGJpdHN0cmVhbSBTUFMvVlBTIE5BTFVz LgoKVGhpcyBjb21taXQgZml4ZXMgdGhlIHJlZ3Jlc3Npb24gYnkgc2V0dGluZyB0aGUgZnJhbWVy YXRlIGNvZGVjCnBhcmFtZXRlciB0byB0aGUgdmFsdWUgb2YgdGhlIGZyYW1lcmF0ZSBvcHRpb24g aW5zdGVhZC4gQWZ0ZXIgdGhpcwpjaGFuZ2UsIGJpdHN0cmVhbXMgd2l0aG91dCB0aW1pbmcgaW5m b3JtYXRpb24gd2lsbCBkZXJpdmUgYXZnX2ZyYW1lX3JhdGUKZnJvbSB0aGUgLWZyYW1lcmF0ZSBv cHRpb24sIHdoaWxlIGJpdHN0cmVhbXMgd2l0aCB0aW1pbmcgaW5mb3JtYXRpb24Kd2lsbCBkZXJp dmUgYXZnX2ZyYW1lX3JhdGUgZnJvbSB0aGUgYml0c3RyZWFtIGl0c2VsZi4KClRoZSBoMjY0LWJz Zi1kdHMycHRzIHRlc3Qgbm93IHJldHVybnMgdGhlIGNvcnJlY3QgZnJhbWUgZHVyYXRpb25zIGZv ciBhCmJpdHN0cmVhbSB3aXRoIGEgbWl4IG9mIHNpbmdsZS1maWVsZCBhbmQgZG91YmxlLWZpZWxk IGZyYW1lcy4KClNpZ25lZC1vZmYtYnk6IEdhdmluIExpIDxnaXRAdGhlZ2F2aW5saS5jb20+ClNp Z25lZC1vZmYtYnk6IEphbWVzIEFsbWVyIDxqYW1yaWFsQGdtYWlsLmNvbT4KLS0tCiBsaWJhdmZv cm1hdC9yYXdkZWMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHRlc3RzL3Jl Zi9mYXRlL2NhdnMtZGVtdXggICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogdGVzdHMvcmVm L2ZhdGUvZW5oYW5jZWQtZmx2LWhldmMtaGRyMTAgICAgICAgIHwgICA0ICstCiB0ZXN0cy9yZWYv ZmF0ZS9oMjY0LWJzZi1kdHMycHRzICAgICAgICAgICAgICAgfCAxMDIgKysrKysrKysrLS0tLS0t LS0tCiAuLi4vcmVmL2ZhdGUvaDI2NC1jb25mb3JtYW5jZS1jdnBjbW5sMl9zdmFfYyAgfCAgIDYg Ky0KIHRlc3RzL3JlZi9mYXRlL2hldmMtYnNmLWR0czJwdHMtY3JhICAgICAgICAgICB8ICA2OCAr KysrKystLS0tLS0KIHRlc3RzL3JlZi9mYXRlL2hldmMtYnNmLWR0czJwdHMtaWRyICAgICAgICAg ICB8ICAzOCArKystLS0tCiB0ZXN0cy9yZWYvZmF0ZS9oZXZjLWJzZi1kdHMycHRzLWlkci1jcmEg ICAgICAgfCAgMzggKysrLS0tLQogdGVzdHMvcmVmL2xhdmYtZmF0ZS9oZXZjLm1wNCAgICAgICAg ICAgICAgICAgIHwgICAyICstCiA5IGZpbGVzIGNoYW5nZWQsIDEzMSBpbnNlcnRpb25zKCspLCAx MzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvcmF3ZGVjLmMgYi9saWJh dmZvcm1hdC9yYXdkZWMuYwppbmRleCBkMGM4MjlkYzQyLi41Y2YyNzY0YTBkIDEwMDY0NAotLS0g YS9saWJhdmZvcm1hdC9yYXdkZWMuYworKysgYi9saWJhdmZvcm1hdC9yYXdkZWMuYwpAQCAtODMs OSArODMsOSBAQCBpbnQgZmZfcmF3X3ZpZGVvX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAq cykKIAogICAgIHN0LT5jb2RlY3Bhci0+Y29kZWNfdHlwZSA9IEFWTUVESUFfVFlQRV9WSURFTzsK ICAgICBzdC0+Y29kZWNwYXItPmNvZGVjX2lkID0gZmZpZm10KHMtPmlmb3JtYXQpLT5yYXdfY29k ZWNfaWQ7CisgICAgc3QtPmNvZGVjcGFyLT5mcmFtZXJhdGUgPSBzMS0+ZnJhbWVyYXRlOwogICAg IHN0aS0+bmVlZF9wYXJzaW5nID0gQVZTVFJFQU1fUEFSU0VfRlVMTF9SQVc7CiAKLSAgICBzdC0+ YXZnX2ZyYW1lX3JhdGUgPSBzMS0+ZnJhbWVyYXRlOwogICAgIGF2cHJpdl9zZXRfcHRzX2luZm8o c3QsIDY0LCAxLCAxMjAwMDAwKTsKIAogZmFpbDoKZGlmZiAtLWdpdCBhL3Rlc3RzL3JlZi9mYXRl L2NhdnMtZGVtdXggYi90ZXN0cy9yZWYvZmF0ZS9jYXZzLWRlbXV4CmluZGV4IGM0ODQ3MjkzYWIu LmViMTZlYjFmOWQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3JlZi9mYXRlL2NhdnMtZGVtdXgKKysrIGIv dGVzdHMvcmVmL2ZhdGUvY2F2cy1kZW11eApAQCAtNTgsNSArNTgsNSBAQCBwYWNrZXR8Y29kZWNf dHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MjI0MDAwMHxwdHNfdGltZT0xLjg2NjY2N3xk dHM9MjI0MDAwMAogcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTIy ODAwMDB8cHRzX3RpbWU9MS45MDAwMDB8ZHRzPTIyODAwMDB8ZHRzX3RpbWU9MS45MDAwMDB8ZHVy YXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTY3fHBvcz0xNzIxODV8Zmxh Z3M9X19ffGRhdGFfaGFzaD1DUkMzMjo0MjQ4NDQ0OQogcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98 c3RyZWFtX2luZGV4PTB8cHRzPTIzMjAwMDB8cHRzX3RpbWU9MS45MzMzMzN8ZHRzPTIzMjAwMDB8 ZHRzX3RpbWU9MS45MzMzMzN8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xz aXplPTgzfHBvcz0xNzIyNTJ8ZmxhZ3M9X19ffGRhdGFfaGFzaD1DUkMzMjphOTQxYmRmMAogcGFj a2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTIzNjAwMDB8cHRzX3RpbWU9 MS45NjY2Njd8ZHRzPTIzNjAwMDB8ZHRzX3RpbWU9MS45NjY2Njd8ZHVyYXRpb249NDAwMDB8ZHVy YXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTU0MTd8cG9zPTE3MjMzNXxmbGFncz1fX198ZGF0YV9o YXNoPUNSQzMyOjlkMGQ1MDNiCi1zdHJlYW18aW5kZXg9MHxjb2RlY19uYW1lPWNhdnN8cHJvZmls ZT11bmtub3dufGNvZGVjX3R5cGU9dmlkZW98Y29kZWNfdGFnX3N0cmluZz1bMF1bMF1bMF1bMF18 Y29kZWNfdGFnPTB4MDAwMHx3aWR0aD0xMjgwfGhlaWdodD03MjB8Y29kZWRfd2lkdGg9MTI4MHxj b2RlZF9oZWlnaHQ9NzIwfGhhc19iX2ZyYW1lcz0wfHNhbXBsZV9hc3BlY3RfcmF0aW89Ti9BfGRp c3BsYXlfYXNwZWN0X3JhdGlvPU4vQXxwaXhfZm10PXl1djQyMHB8bGV2ZWw9LTk5fGNvbG9yX3Jh bmdlPXVua25vd258Y29sb3Jfc3BhY2U9dW5rbm93bnxjb2xvcl90cmFuc2Zlcj11bmtub3dufGNv bG9yX3ByaW1hcmllcz11bmtub3dufGNocm9tYV9sb2NhdGlvbj11bnNwZWNpZmllZHxmaWVsZF9v cmRlcj11bmtub3dufHJlZnM9MXxpZD1OL0F8cl9mcmFtZV9yYXRlPTMwLzF8YXZnX2ZyYW1lX3Jh dGU9MjUvMXx0aW1lX2Jhc2U9MS8xMjAwMDAwfHN0YXJ0X3B0cz1OL0F8c3RhcnRfdGltZT1OL0F8 ZHVyYXRpb25fdHM9Ti9BfGR1cmF0aW9uPU4vQXxiaXRfcmF0ZT1OL0F8bWF4X2JpdF9yYXRlPU4v QXxiaXRzX3Blcl9yYXdfc2FtcGxlPU4vQXxuYl9mcmFtZXM9Ti9BfG5iX3JlYWRfZnJhbWVzPU4v QXxuYl9yZWFkX3BhY2tldHM9NjB8ZXh0cmFkYXRhX3NpemU9MTh8ZXh0cmFkYXRhX2hhc2g9Q1JD MzI6MTI1NWQ1MmV8ZGlzcG9zaXRpb246ZGVmYXVsdD0wfGRpc3Bvc2l0aW9uOmR1Yj0wfGRpc3Bv c2l0aW9uOm9yaWdpbmFsPTB8ZGlzcG9zaXRpb246Y29tbWVudD0wfGRpc3Bvc2l0aW9uOmx5cmlj cz0wfGRpc3Bvc2l0aW9uOmthcmFva2U9MHxkaXNwb3NpdGlvbjpmb3JjZWQ9MHxkaXNwb3NpdGlv bjpoZWFyaW5nX2ltcGFpcmVkPTB8ZGlzcG9zaXRpb246dmlzdWFsX2ltcGFpcmVkPTB8ZGlzcG9z aXRpb246Y2xlYW5fZWZmZWN0cz0wfGRpc3Bvc2l0aW9uOmF0dGFjaGVkX3BpYz0wfGRpc3Bvc2l0 aW9uOnRpbWVkX3RodW1ibmFpbHM9MHxkaXNwb3NpdGlvbjpub25fZGllZ2V0aWM9MHxkaXNwb3Np dGlvbjpjYXB0aW9ucz0wfGRpc3Bvc2l0aW9uOmRlc2NyaXB0aW9ucz0wfGRpc3Bvc2l0aW9uOm1l dGFkYXRhPTB8ZGlzcG9zaXRpb246ZGVwZW5kZW50PTB8ZGlzcG9zaXRpb246c3RpbGxfaW1hZ2U9 MHxkaXNwb3NpdGlvbjptdWx0aWxheWVyPTAKK3N0cmVhbXxpbmRleD0wfGNvZGVjX25hbWU9Y2F2 c3xwcm9maWxlPXVua25vd258Y29kZWNfdHlwZT12aWRlb3xjb2RlY190YWdfc3RyaW5nPVswXVsw XVswXVswXXxjb2RlY190YWc9MHgwMDAwfHdpZHRoPTEyODB8aGVpZ2h0PTcyMHxjb2RlZF93aWR0 aD0xMjgwfGNvZGVkX2hlaWdodD03MjB8aGFzX2JfZnJhbWVzPTB8c2FtcGxlX2FzcGVjdF9yYXRp bz1OL0F8ZGlzcGxheV9hc3BlY3RfcmF0aW89Ti9BfHBpeF9mbXQ9eXV2NDIwcHxsZXZlbD0tOTl8 Y29sb3JfcmFuZ2U9dW5rbm93bnxjb2xvcl9zcGFjZT11bmtub3dufGNvbG9yX3RyYW5zZmVyPXVu a25vd258Y29sb3JfcHJpbWFyaWVzPXVua25vd258Y2hyb21hX2xvY2F0aW9uPXVuc3BlY2lmaWVk fGZpZWxkX29yZGVyPXVua25vd258cmVmcz0xfGlkPU4vQXxyX2ZyYW1lX3JhdGU9MzAvMXxhdmdf ZnJhbWVfcmF0ZT0zMC8xfHRpbWVfYmFzZT0xLzEyMDAwMDB8c3RhcnRfcHRzPU4vQXxzdGFydF90 aW1lPU4vQXxkdXJhdGlvbl90cz1OL0F8ZHVyYXRpb249Ti9BfGJpdF9yYXRlPU4vQXxtYXhfYml0 X3JhdGU9Ti9BfGJpdHNfcGVyX3Jhd19zYW1wbGU9Ti9BfG5iX2ZyYW1lcz1OL0F8bmJfcmVhZF9m cmFtZXM9Ti9BfG5iX3JlYWRfcGFja2V0cz02MHxleHRyYWRhdGFfc2l6ZT0xOHxleHRyYWRhdGFf aGFzaD1DUkMzMjoxMjU1ZDUyZXxkaXNwb3NpdGlvbjpkZWZhdWx0PTB8ZGlzcG9zaXRpb246ZHVi PTB8ZGlzcG9zaXRpb246b3JpZ2luYWw9MHxkaXNwb3NpdGlvbjpjb21tZW50PTB8ZGlzcG9zaXRp b246bHlyaWNzPTB8ZGlzcG9zaXRpb246a2FyYW9rZT0wfGRpc3Bvc2l0aW9uOmZvcmNlZD0wfGRp c3Bvc2l0aW9uOmhlYXJpbmdfaW1wYWlyZWQ9MHxkaXNwb3NpdGlvbjp2aXN1YWxfaW1wYWlyZWQ9 MHxkaXNwb3NpdGlvbjpjbGVhbl9lZmZlY3RzPTB8ZGlzcG9zaXRpb246YXR0YWNoZWRfcGljPTB8 ZGlzcG9zaXRpb246dGltZWRfdGh1bWJuYWlscz0wfGRpc3Bvc2l0aW9uOm5vbl9kaWVnZXRpYz0w fGRpc3Bvc2l0aW9uOmNhcHRpb25zPTB8ZGlzcG9zaXRpb246ZGVzY3JpcHRpb25zPTB8ZGlzcG9z aXRpb246bWV0YWRhdGE9MHxkaXNwb3NpdGlvbjpkZXBlbmRlbnQ9MHxkaXNwb3NpdGlvbjpzdGls bF9pbWFnZT0wfGRpc3Bvc2l0aW9uOm11bHRpbGF5ZXI9MAogZm9ybWF0fGZpbGVuYW1lPWJ1bm55 Lm1wNHxuYl9zdHJlYW1zPTF8bmJfcHJvZ3JhbXM9MHxuYl9zdHJlYW1fZ3JvdXBzPTB8Zm9ybWF0 X25hbWU9Y2F2c3ZpZGVvfHN0YXJ0X3RpbWU9Ti9BfGR1cmF0aW9uPU4vQXxzaXplPTE3Nzc1Mnxi aXRfcmF0ZT1OL0F8cHJvYmVfc2NvcmU9NTEKZGlmZiAtLWdpdCBhL3Rlc3RzL3JlZi9mYXRlL2Vu aGFuY2VkLWZsdi1oZXZjLWhkcjEwIGIvdGVzdHMvcmVmL2ZhdGUvZW5oYW5jZWQtZmx2LWhldmMt aGRyMTAKaW5kZXggNTI1ZjA1NmQ2Ni4uYmViY2Y4NGZhYiAxMDA2NDQKLS0tIGEvdGVzdHMvcmVm L2ZhdGUvZW5oYW5jZWQtZmx2LWhldmMtaGRyMTAKKysrIGIvdGVzdHMvcmVmL2ZhdGUvZW5oYW5j ZWQtZmx2LWhldmMtaGRyMTAKQEAgLTQsNyArNCw3IEBACiAjY29kZWNfaWQgMDogaGV2YwogI2Rp bWVuc2lvbnMgMDogMTI4MHg3MjAKICNzYXIgMDogMC8xCi0wLCAgICAgICAgICAwLCAgICAgICAg ICAwLCAgICAgICA0MCwgICAgNzc3MTgsIDB4YjU5YzgzYTUKKzAsICAgICAgICAgIDAsICAgICAg ICAgIDAsICAgICAgICAwLCAgICA3NzcxOCwgMHhiNTljODNhNQogW0ZSQU1FXQogbWVkaWFfdHlw ZT12aWRlbwogc3RyZWFtX2luZGV4PTAKQEAgLTE3LDcgKzE3LDcgQEAgYmVzdF9lZmZvcnRfdGlt ZXN0YW1wPTAKIGJlc3RfZWZmb3J0X3RpbWVzdGFtcF90aW1lPTAuMDAwMDAwCiBkdXJhdGlvbj1O L0EKIGR1cmF0aW9uX3RpbWU9Ti9BCi1wa3RfcG9zPTQ1OQorcGt0X3Bvcz00MzkKIHBrdF9zaXpl PTc3NzE4CiB3aWR0aD0xMjgwCiBoZWlnaHQ9NzIwCmRpZmYgLS1naXQgYS90ZXN0cy9yZWYvZmF0 ZS9oMjY0LWJzZi1kdHMycHRzIGIvdGVzdHMvcmVmL2ZhdGUvaDI2NC1ic2YtZHRzMnB0cwppbmRl eCBmOTA4YmI0NGY1Li40NmM2NDBlYWI4IDEwMDY0NAotLS0gYS90ZXN0cy9yZWYvZmF0ZS9oMjY0 LWJzZi1kdHMycHRzCisrKyBiL3Rlc3RzL3JlZi9mYXRlL2gyNjQtYnNmLWR0czJwdHMKQEAgLTEs NSArMSw1IEBACi0yMTllZGQzNDdjZTMxNTFmNWI1NTc5ZDMwMGNkNzE3OSAqdGVzdHMvZGF0YS9m YXRlL2gyNjQtYnNmLWR0czJwdHMubW92Ci0yNDM5MzcgdGVzdHMvZGF0YS9mYXRlL2gyNjQtYnNm LWR0czJwdHMubW92Cis0NTE2MDEwMzhiOTA5MTAxNGU0NTY2MGJjOThlMDlkYyAqdGVzdHMvZGF0 YS9mYXRlL2gyNjQtYnNmLWR0czJwdHMubW92CisyNDQwMzMgdGVzdHMvZGF0YS9mYXRlL2gyNjQt YnNmLWR0czJwdHMubW92CiAjZXh0cmFkYXRhIDA6ICAgICAgIDI2LCAweDc1ZTIwOTNkCiAjdGIg MDogMS8xMjAwMDAwCiAjbWVkaWFfdHlwZSAwOiB2aWRlbwpAQCAtNyw1MiArNyw1MiBAQAogI2Rp bWVuc2lvbnMgMDogMzUyeDI4OAogI3NhciAwOiAwLzEKIDAsICAgICAtNDgwMDAsICAgICAgICAg IDAsICAgIDQ4MDAwLCAgICAxMzY4NiwgMHg1ZWU5YmQ0YwotMCwgICAgICAgICAgMCwgICAgIDI0 MDAwMCwgICAgNDgwMDAsICAgICA5MzIwLCAweDE3MjI0ZGIxLCBGPTB4MAotMCwgICAgICA0ODAw MCwgICAgIDI4ODAwMCwgICAgNDgwMDAsICAgICA4OTAzLCAweGUzOTQ5MThiLCBGPTB4MAotMCwg ICAgICA5NjAwMCwgICAgICA5NjAwMCwgICAgNDgwMDAsICAgIDEwMTA4LCAweDk4NDE4ZTdlLCBG PTB4MAotMCwgICAgIDE0NDAwMCwgICAgIDE0NDAwMCwgICAgNDgwMDAsICAgICAyOTM3LCAweDQ5 ZGNjYjc2LCBGPTB4MAotMCwgICAgIDE5MjAwMCwgICAgIDE5MjAwMCwgICAgNDgwMDAsICAgICAy NjA0LCAweGZjODAxM2NkLCBGPTB4MAotMCwgICAgIDI0MDAwMCwgICAgIDQ4MDAwMCwgICAgNDgw MDAsICAgICA3NDIwLCAweGNiNDE1NWNkLCBGPTB4MAotMCwgICAgIDI4ODAwMCwgICAgIDUyODAw MCwgICAgNDgwMDAsICAgICA1NjY0LCAweDA2MGJjOTQ4LCBGPTB4MAotMCwgICAgIDMzNjAwMCwg ICAgIDMzNjAwMCwgICAgNDgwMDAsICAgICA0ODU5LCAweDBhNWE4MzY4LCBGPTB4MAotMCwgICAg IDM4NDAwMCwgICAgIDM4NDAwMCwgICAgNDgwMDAsICAgICAyODgzLCAweGI5NjM5YTE5LCBGPTB4 MAotMCwgICAgIDQzMjAwMCwgICAgIDQzMjAwMCwgICAgNDgwMDAsICAgICAyNTQ3LCAweGJhOTVl OTlkLCBGPTB4MAotMCwgICAgIDQ4MDAwMCwgICAgIDY3MjAwMCwgICAgNDgwMDAsICAgICA0NjU5 LCAweDE5MjAzYTBkLCBGPTB4MAotMCwgICAgIDUyODAwMCwgICAgIDY5NjAwMCwgICAgNDgwMDAs ICAgICA5NzE5LCAweGI1MDBjMzI4LCBGPTB4MAotMCwgICAgIDU3NjAwMCwgICAgIDU3NjAwMCwg ICAgNDgwMDAsICAgICA1MDc4LCAweDUzNTljNmI4LCBGPTB4MAotMCwgICAgIDYyNDAwMCwgICAg IDYyNDAwMCwgICAgNDgwMDAsICAgICA1MDQxLCAweDg4ZGZjZGYxLCBGPTB4MAotMCwgICAgIDY3 MjAwMCwgICAgIDg2NDAwMCwgICAgNDgwMDAsICAgICA5NDk0LCAweDI5Mjk3MzE5LCBGPTB4MAot MCwgICAgIDcyMDAwMCwgICAgIDcyMDAwMCwgICAgNDgwMDAsICAgICA0NzcyLCAweDgwMjczYTYw LCBGPTB4MAotMCwgICAgIDc2ODAwMCwgICAgIDc2ODAwMCwgICAgNDgwMDAsICAgICAzMjM3LCAw eGQ5OWU3NDJjLCBGPTB4MAotMCwgICAgIDgxNjAwMCwgICAgIDgxNjAwMCwgICAgNDgwMDAsICAg ICAyNjUwLCAweGM3Y2MzNzhhLCBGPTB4MAotMCwgICAgIDg2NDAwMCwgICAgMTE1MjAwMCwgICAg NDgwMDAsICAgICA2NTE5LCAweDE0MmFhMzU3LCBGPTB4MAotMCwgICAgIDkxMjAwMCwgICAgMTE3 NjAwMCwgICAgNDgwMDAsICAgICA1ODc4LCAweGU3MGQ3ZTIxLCBGPTB4MAotMCwgICAgIDk2MDAw MCwgICAgIDk2MDAwMCwgICAgNDgwMDAsICAgICAyNjQ4LCAweGU1OGIxYzRiLCBGPTB4MAotMCwg ICAgMTAwODAwMCwgICAgMTAwODAwMCwgICAgNDgwMDAsICAgICA0NTIyLCAweDMzYWQwODgyLCBG PTB4MAotMCwgICAgMTA1NjAwMCwgICAgMTA1NjAwMCwgICAgNDgwMDAsICAgICAzMjQ2LCAweGRi ZmE1MzlmLCBGPTB4MAotMCwgICAgMTEwNDAwMCwgICAgMTEwNDAwMCwgICAgNDgwMDAsICAgICAz MDI3LCAweGRiNWJmNjc1LCBGPTB4MAotMCwgICAgMTE1MjAwMCwgICAgMTM5MjAwMCwgICAgNDgw MDAsICAgICA5MjgyLCAweDA3OTczNjAzLCBGPTB4MAotMCwgICAgMTIwMDAwMCwgICAgMTIwMDAw MCwgICAgNDgwMDAsICAgICAyNzg2LCAweDE0ODI0ZDkyLCBGPTB4MAotMCwgICAgMTI0ODAwMCwg ICAgMTI0ODAwMCwgICAgNDgwMDAsICAgICAyNzE5LCAweDAwNjE0ZWVmLCBGPTB4MAotMCwgICAg MTI5NjAwMCwgICAgMTI5NjAwMCwgICAgNDgwMDAsICAgICAyNjI3LCAweGU4ZTkxMjE2LCBGPTB4 MAotMCwgICAgMTM0NDAwMCwgICAgMTM0NDAwMCwgICAgNDgwMDAsICAgICAyNzIwLCAweGJlOTc0 ZmNjLCBGPTB4MAotMCwgICAgMTM5MjAwMCwgICAgMTU4NDAwMCwgICAgNDgwMDAsICAgICA3Njg3 LCAweDBkZTAxODk1LCBGPTB4MAotMCwgICAgMTQ0MDAwMCwgICAgMTQ0MDAwMCwgICAgNDgwMDAs ICAgICA1NDY0LCAweDExM2Y5NTRkLCBGPTB4MAotMCwgICAgMTQ4ODAwMCwgICAgMTQ4ODAwMCwg ICAgNDgwMDAsICAgICAzNDgyLCAweDVjOTBjZGFlLCBGPTB4MAotMCwgICAgMTUzNjAwMCwgICAg MTUzNjAwMCwgICAgNDgwMDAsICAgICAyNzkxLCAweDRhY2I3MDJhLCBGPTB4MAotMCwgICAgMTU4 NDAwMCwgICAgMTg3MjAwMCwgICAgNDgwMDAsICAgIDExMzYyLCAweDEzMzYzYmRiLCBGPTB4MAot MCwgICAgMTYzMjAwMCwgICAgMTkyMDAwMCwgICAgNDgwMDAsICAgICAyOTc1LCAweDk5YjFlODEz LCBGPTB4MAotMCwgICAgMTY4MDAwMCwgICAgMTY4MDAwMCwgICAgNDgwMDAsICAgICAyMzQyLCAw eGU5NTg3ODY3LCBGPTB4MAotMCwgICAgMTcyODAwMCwgICAgMTcyODAwMCwgICAgNDgwMDAsICAg ICAyNjM0LCAweDhkOTgxNGZjLCBGPTB4MAotMCwgICAgMTc3NjAwMCwgICAgMTc3NjAwMCwgICAg NDgwMDAsICAgICAyNDE5LCAweDAzM2NiYjVmLCBGPTB4MAotMCwgICAgMTgyNDAwMCwgICAgMTgy NDAwMCwgICAgNDgwMDAsICAgICAyNDk4LCAweDdkZDllNDc2LCBGPTB4MAotMCwgICAgMTg3MjAw MCwgICAgMjExMjAwMCwgICAgNDgwMDAsICAgICAyNjY4LCAweDM1OGUyYmQ4LCBGPTB4MAotMCwg ICAgMTkyMDAwMCwgICAgMjEzNjAwMCwgICAgNDgwMDAsICAgICA5MDY4LCAweDNhNjM5OTI3LCBG PTB4MAotMCwgICAgMTk2ODAwMCwgICAgMTk2ODAwMCwgICAgNDgwMDAsICAgICA0OTM5LCAweGE1 MzA5YThjLCBGPTB4MAotMCwgICAgMjAxNjAwMCwgICAgMjAxNjAwMCwgICAgNDgwMDAsICAgICAy NjUwLCAweDJhYjgyYjk3LCBGPTB4MAotMCwgICAgMjA2NDAwMCwgICAgMjA2NDAwMCwgICAgNDgw MDAsICAgICAyNTAzLCAweGZkOTdjZDRjLCBGPTB4MAotMCwgICAgMjExMjAwMCwgICAgMjM1MjAw MCwgICAgNDgwMDAsICAgICA1MTIxLCAweGFmODhlNWI4LCBGPTB4MAotMCwgICAgMjE2MDAwMCwg ICAgMjE2MDAwMCwgICAgNDgwMDAsICAgICAyNjQzLCAweGExNzkxZGIwLCBGPTB4MAotMCwgICAg MjIwODAwMCwgICAgMjIwODAwMCwgICAgNDgwMDAsICAgICAyNjM3LCAweGUxYTQyNTEwLCBGPTB4 MAotMCwgICAgMjI1NjAwMCwgICAgMjI1NjAwMCwgICAgNDgwMDAsICAgICAyNjMzLCAweDA4NDMw ZjE1LCBGPTB4MAotMCwgICAgMjMwNDAwMCwgICAgMjMwNDAwMCwgICAgNDgwMDAsICAgICAyNzIx LCAweGU2NzU2OTkwLCBGPTB4MAorMCwgICAgICAgICAgMCwgICAgIDE0NDAwMCwgICAgMjQwMDAs ICAgICA5MzIwLCAweDE3MjI0ZGIxLCBGPTB4MAorMCwgICAgICAyNDAwMCwgICAgIDE2ODAwMCwg ICAgMjQwMDAsICAgICA4OTAzLCAweGUzOTQ5MThiLCBGPTB4MAorMCwgICAgICA0ODAwMCwgICAg ICA0ODAwMCwgICAgNDgwMDAsICAgIDEwMTA4LCAweDk4NDE4ZTdlLCBGPTB4MAorMCwgICAgICA5 NjAwMCwgICAgICA5NjAwMCwgICAgMjQwMDAsICAgICAyOTM3LCAweDQ5ZGNjYjc2LCBGPTB4MAor MCwgICAgIDEyMDAwMCwgICAgIDEyMDAwMCwgICAgMjQwMDAsICAgICAyNjA0LCAweGZjODAxM2Nk LCBGPTB4MAorMCwgICAgIDE0NDAwMCwgICAgIDI4ODAwMCwgICAgMjQwMDAsICAgICA3NDIwLCAw eGNiNDE1NWNkLCBGPTB4MAorMCwgICAgIDE2ODAwMCwgICAgIDMxMjAwMCwgICAgMjQwMDAsICAg ICA1NjY0LCAweDA2MGJjOTQ4LCBGPTB4MAorMCwgICAgIDE5MjAwMCwgICAgIDE5MjAwMCwgICAg NDgwMDAsICAgICA0ODU5LCAweDBhNWE4MzY4LCBGPTB4MAorMCwgICAgIDI0MDAwMCwgICAgIDI0 MDAwMCwgICAgMjQwMDAsICAgICAyODgzLCAweGI5NjM5YTE5LCBGPTB4MAorMCwgICAgIDI2NDAw MCwgICAgIDI2NDAwMCwgICAgMjQwMDAsICAgICAyNTQ3LCAweGJhOTVlOTlkLCBGPTB4MAorMCwg ICAgIDI4ODAwMCwgICAgIDQzMjAwMCwgICAgMjQwMDAsICAgICA0NjU5LCAweDE5MjAzYTBkLCBG PTB4MAorMCwgICAgIDMxMjAwMCwgICAgIDQ1NjAwMCwgICAgMjQwMDAsICAgICA5NzE5LCAweGI1 MDBjMzI4LCBGPTB4MAorMCwgICAgIDMzNjAwMCwgICAgIDMzNjAwMCwgICAgNDgwMDAsICAgICA1 MDc4LCAweDUzNTljNmI4LCBGPTB4MAorMCwgICAgIDM4NDAwMCwgICAgIDM4NDAwMCwgICAgNDgw MDAsICAgICA1MDQxLCAweDg4ZGZjZGYxLCBGPTB4MAorMCwgICAgIDQzMjAwMCwgICAgIDU3NjAw MCwgICAgNDgwMDAsICAgICA5NDk0LCAweDI5Mjk3MzE5LCBGPTB4MAorMCwgICAgIDQ4MDAwMCwg ICAgIDQ4MDAwMCwgICAgNDgwMDAsICAgICA0NzcyLCAweDgwMjczYTYwLCBGPTB4MAorMCwgICAg IDUyODAwMCwgICAgIDUyODAwMCwgICAgMjQwMDAsICAgICAzMjM3LCAweGQ5OWU3NDJjLCBGPTB4 MAorMCwgICAgIDU1MjAwMCwgICAgIDU1MjAwMCwgICAgMjQwMDAsICAgICAyNjUwLCAweGM3Y2Mz NzhhLCBGPTB4MAorMCwgICAgIDU3NjAwMCwgICAgIDcyMDAwMCwgICAgMjQwMDAsICAgICA2NTE5 LCAweDE0MmFhMzU3LCBGPTB4MAorMCwgICAgIDYwMDAwMCwgICAgIDc0NDAwMCwgICAgMjQwMDAs ICAgICA1ODc4LCAweGU3MGQ3ZTIxLCBGPTB4MAorMCwgICAgIDYyNDAwMCwgICAgIDYyNDAwMCwg ICAgMjQwMDAsICAgICAyNjQ4LCAweGU1OGIxYzRiLCBGPTB4MAorMCwgICAgIDY0ODAwMCwgICAg IDY0ODAwMCwgICAgMjQwMDAsICAgICA0NTIyLCAweDMzYWQwODgyLCBGPTB4MAorMCwgICAgIDY3 MjAwMCwgICAgIDY3MjAwMCwgICAgMjQwMDAsICAgICAzMjQ2LCAweGRiZmE1MzlmLCBGPTB4MAor MCwgICAgIDY5NjAwMCwgICAgIDY5NjAwMCwgICAgMjQwMDAsICAgICAzMDI3LCAweGRiNWJmNjc1 LCBGPTB4MAorMCwgICAgIDcyMDAwMCwgICAgIDg2NDAwMCwgICAgNDgwMDAsICAgICA5MjgyLCAw eDA3OTczNjAzLCBGPTB4MAorMCwgICAgIDc2ODAwMCwgICAgIDc2ODAwMCwgICAgMjQwMDAsICAg ICAyNzg2LCAweDE0ODI0ZDkyLCBGPTB4MAorMCwgICAgIDc5MjAwMCwgICAgIDc5MjAwMCwgICAg MjQwMDAsICAgICAyNzE5LCAweDAwNjE0ZWVmLCBGPTB4MAorMCwgICAgIDgxNjAwMCwgICAgIDgx NjAwMCwgICAgMjQwMDAsICAgICAyNjI3LCAweGU4ZTkxMjE2LCBGPTB4MAorMCwgICAgIDg0MDAw MCwgICAgIDg0MDAwMCwgICAgMjQwMDAsICAgICAyNzIwLCAweGJlOTc0ZmNjLCBGPTB4MAorMCwg ICAgIDg2NDAwMCwgICAgMTAwODAwMCwgICAgNDgwMDAsICAgICA3Njg3LCAweDBkZTAxODk1LCBG PTB4MAorMCwgICAgIDkxMjAwMCwgICAgIDkxMjAwMCwgICAgNDgwMDAsICAgICA1NDY0LCAweDEx M2Y5NTRkLCBGPTB4MAorMCwgICAgIDk2MDAwMCwgICAgIDk2MDAwMCwgICAgMjQwMDAsICAgICAz NDgyLCAweDVjOTBjZGFlLCBGPTB4MAorMCwgICAgIDk4NDAwMCwgICAgIDk4NDAwMCwgICAgMjQw MDAsICAgICAyNzkxLCAweDRhY2I3MDJhLCBGPTB4MAorMCwgICAgMTAwODAwMCwgICAgMTE1MjAw MCwgICAgMjQwMDAsICAgIDExMzYyLCAweDEzMzYzYmRiLCBGPTB4MAorMCwgICAgMTAzMjAwMCwg ICAgMTE3NjAwMCwgICAgMjQwMDAsICAgICAyOTc1LCAweDk5YjFlODEzLCBGPTB4MAorMCwgICAg MTA1NjAwMCwgICAgMTA1NjAwMCwgICAgMjQwMDAsICAgICAyMzQyLCAweGU5NTg3ODY3LCBGPTB4 MAorMCwgICAgMTA4MDAwMCwgICAgMTA4MDAwMCwgICAgMjQwMDAsICAgICAyNjM0LCAweDhkOTgx NGZjLCBGPTB4MAorMCwgICAgMTEwNDAwMCwgICAgMTEwNDAwMCwgICAgMjQwMDAsICAgICAyNDE5 LCAweDAzM2NiYjVmLCBGPTB4MAorMCwgICAgMTEyODAwMCwgICAgMTEyODAwMCwgICAgMjQwMDAs ICAgICAyNDk4LCAweDdkZDllNDc2LCBGPTB4MAorMCwgICAgMTE1MjAwMCwgICAgMTI5NjAwMCwg ICAgMjQwMDAsICAgICAyNjY4LCAweDM1OGUyYmQ4LCBGPTB4MAorMCwgICAgMTE3NjAwMCwgICAg MTMyMDAwMCwgICAgMjQwMDAsICAgICA5MDY4LCAweDNhNjM5OTI3LCBGPTB4MAorMCwgICAgMTIw MDAwMCwgICAgMTIwMDAwMCwgICAgNDgwMDAsICAgICA0OTM5LCAweGE1MzA5YThjLCBGPTB4MAor MCwgICAgMTI0ODAwMCwgICAgMTI0ODAwMCwgICAgMjQwMDAsICAgICAyNjUwLCAweDJhYjgyYjk3 LCBGPTB4MAorMCwgICAgMTI3MjAwMCwgICAgMTI3MjAwMCwgICAgMjQwMDAsICAgICAyNTAzLCAw eGZkOTdjZDRjLCBGPTB4MAorMCwgICAgMTI5NjAwMCwgICAgMTQ0MDAwMCwgICAgNDgwMDAsICAg ICA1MTIxLCAweGFmODhlNWI4LCBGPTB4MAorMCwgICAgMTM0NDAwMCwgICAgMTM0NDAwMCwgICAg MjQwMDAsICAgICAyNjQzLCAweGExNzkxZGIwLCBGPTB4MAorMCwgICAgMTM2ODAwMCwgICAgMTM2 ODAwMCwgICAgMjQwMDAsICAgICAyNjM3LCAweGUxYTQyNTEwLCBGPTB4MAorMCwgICAgMTM5MjAw MCwgICAgMTM5MjAwMCwgICAgMjQwMDAsICAgICAyNjMzLCAweDA4NDMwZjE1LCBGPTB4MAorMCwg ICAgMTQxNjAwMCwgICAgMTQxNjAwMCwgICAgMjQwMDAsICAgICAyNzIxLCAweGU2NzU2OTkwLCBG PTB4MApkaWZmIC0tZ2l0IGEvdGVzdHMvcmVmL2ZhdGUvaDI2NC1jb25mb3JtYW5jZS1jdnBjbW5s Ml9zdmFfYyBiL3Rlc3RzL3JlZi9mYXRlL2gyNjQtY29uZm9ybWFuY2UtY3ZwY21ubDJfc3ZhX2MK aW5kZXggMDMwM2JjMjRlNi4uMGEwNzk1ZGY0MSAxMDA2NDQKLS0tIGEvdGVzdHMvcmVmL2ZhdGUv aDI2NC1jb25mb3JtYW5jZS1jdnBjbW5sMl9zdmFfYworKysgYi90ZXN0cy9yZWYvZmF0ZS9oMjY0 LWNvbmZvcm1hbmNlLWN2cGNtbmwyX3N2YV9jCkBAIC0xLDcgKzEsNyBAQAotI3RiIDA6IDEvMjUK KyN0YiAwOiAxLzUwCiAjbWVkaWFfdHlwZSAwOiB2aWRlbwogI2NvZGVjX2lkIDA6IHJhd3ZpZGVv CiAjZGltZW5zaW9ucyAwOiAxMjgweDcyMAogI3NhciAwOiAwLzEKLTAsICAgICAgICAgIDAsICAg ICAgICAgIDAsICAgICAgICAxLCAgMTM4MjQwMCwgMHhjY2JlNmJmOAotMCwgICAgICAgICAgMSwg ICAgICAgICAgMSwgICAgICAgIDEsICAxMzgyNDAwLCAweDQ5YzBjZmQ3CiswLCAgICAgICAgICAw LCAgICAgICAgICAwLCAgICAgICAgMiwgIDEzODI0MDAsIDB4Y2NiZTZiZjgKKzAsICAgICAgICAg IDIsICAgICAgICAgIDIsICAgICAgICAyLCAgMTM4MjQwMCwgMHg0OWMwY2ZkNwpkaWZmIC0tZ2l0 IGEvdGVzdHMvcmVmL2ZhdGUvaGV2Yy1ic2YtZHRzMnB0cy1jcmEgYi90ZXN0cy9yZWYvZmF0ZS9o ZXZjLWJzZi1kdHMycHRzLWNyYQppbmRleCA0ZTllMmM1MTE0Li5lNTBhYWQ2ZjcwIDEwMDY0NAot LS0gYS90ZXN0cy9yZWYvZmF0ZS9oZXZjLWJzZi1kdHMycHRzLWNyYQorKysgYi90ZXN0cy9yZWYv ZmF0ZS9oZXZjLWJzZi1kdHMycHRzLWNyYQpAQCAtMSw1ICsxLDUgQEAKLWMzYzAwZmRjNjM3YTE5 ZmEzZDIzZDM3ZDk5NzRkMjhkICp0ZXN0cy9kYXRhL2ZhdGUvaGV2Yy1ic2YtZHRzMnB0cy1jcmEu bW92Ci0xMDMwNjcgdGVzdHMvZGF0YS9mYXRlL2hldmMtYnNmLWR0czJwdHMtY3JhLm1vdgorZjYx MDI2ODRmYmYxM2FhNjI0ZTZlZGVjZTM4YzgzZjIgKnRlc3RzL2RhdGEvZmF0ZS9oZXZjLWJzZi1k dHMycHRzLWNyYS5tb3YKKzEwMjk3MSB0ZXN0cy9kYXRhL2ZhdGUvaGV2Yy1ic2YtZHRzMnB0cy1j cmEubW92CiAjZXh0cmFkYXRhIDA6ICAgICAgMTE4LCAweDI1ZjUxOTk0CiAjdGIgMDogMS8xMjAw MDAwCiAjbWVkaWFfdHlwZSAwOiB2aWRlbwpAQCAtNTQsMzUgKzU0LDM1IEBAIGMzYzAwZmRjNjM3 YTE5ZmEzZDIzZDM3ZDk5NzRkMjhkICp0ZXN0cy9kYXRhL2ZhdGUvaGV2Yy1ic2YtZHRzMnB0cy1j cmEubW92CiAwLCAgICAyMDE2MDAwLCAgICAyMTYwMDAwLCAgICA0ODAwMCwgICAgICA4OTIsIDB4 MGQyYWIzYmMsIEY9MHgwCiAwLCAgICAyMDY0MDAwLCAgICAyMTEyMDAwLCAgICA0ODAwMCwgICAg ICAyMzgsIDB4NDU4Mjc1NjEsIEY9MHgwCiAwLCAgICAyMTEyMDAwLCAgICAyMjA4MDAwLCAgICA0 ODAwMCwgICAgICAyODEsIDB4MmEzYThlNjEsIEY9MHgwCi0wLCAgICAyMTYwMDAwLCAgICAyMjU2 MDEwLCAgICA0ODAwMCwgICAgIDQ2MjksIDB4ZjJlMGZiMGYsIEY9MHgwCi0wLCAgICAyMjA4MDAw LCAgICAyMjU2MDA1LCAgICA0ODAwMCwgICAgIDE0NTMsIDB4NmFlNWRjOTgsIEY9MHgwCi0wLCAg ICAyMjU2MDAwLCAgICAyMjU2MDAyLCAgICAgICAgMSwgICAgICA4NjksIDB4Mzk4MmFlNjksIEY9 MHgwCi0wLCAgICAyMjU2MDAxLCAgICAyMjU2MDAxLCAgICAgICAgMSwgICAgICAyODIsIDB4ZDll Mjg5NjAsIEY9MHgwCi0wLCAgICAyMjU2MDAyLCAgICAyMjU2MDA0LCAgICAgICAgMiwgICAgICAy NTksIDB4MjUzYTgwOWQsIEY9MHgwCi0wLCAgICAyMjU2MDA0LCAgICAyMjU2MDA3LCAgICAgICAg MSwgICAgICA4MzUsIDB4ODM0OTlmMzAsIEY9MHgwCi0wLCAgICAyMjU2MDA1LCAgICAyMjU2MDA2 LCAgICAgICAgMSwgICAgICAyNTUsIDB4YTc3Yjc2OTAsIEY9MHgwCi0wLCAgICAyMjU2MDA2LCAg ICAyMjU2MDA4LCAgICAgICAgMSwgICAgICAyNDIsIDB4ODM5NzdjY2YsIEY9MHgwCi0wLCAgICAy MjU2MDA3LCAgICAyMjU2MDE5LCAgICAgICAgMSwgICAgIDUwODIsIDB4YmE1NWVlNTEsIEY9MHgw Ci0wLCAgICAyMjU2MDA4LCAgICAyMjU2MDE0LCAgICAgICAgMiwgICAgIDEzOTMsIDB4Yzk5OGI0 NDIsIEY9MHgwCi0wLCAgICAyMjU2MDEwLCAgICAyMjU2MDEyLCAgICAgICAgMSwgICAgICA3NDIs IDB4OTFhYjc1ZDIsIEY9MHgwCi0wLCAgICAyMjU2MDExLCAgICAyMjU2MDExLCAgICAgICAgMSwg ICAgICAyMjksIDB4ZmEzMjZkOTgsIEY9MHgwCi0wLCAgICAyMjU2MDEyLCAgICAyMjU2MDEzLCAg ICAgICAgMSwgICAgICAyNzUsIDB4NDljMzgyMjYsIEY9MHgwCi0wLCAgICAyMjU2MDEzLCAgICAy MjU2MDE3LCAgICAgICAgMSwgICAgICA4NjksIDB4ZGQwNWFjYzQsIEY9MHgwCi0wLCAgICAyMjU2 MDE0LCAgICAyMjU2MDE2LCAgICAgICAgMiwgICAgICAyOTMsIDB4Y2M5ZTkwNGYsIEY9MHgwCi0w LCAgICAyMjU2MDE2LCAgICAyMjU2MDE4LCAgICAgICAgMSwgICAgICAzMzQsIDB4MjEyYWE0YjEs IEY9MHgwCi0wLCAgICAyMjU2MDE3LCAgICAyMjU2MDI5LCAgICAgICAgMSwgICAgIDg1MzksIDB4 Y2NjYzllYjEKLTAsICAgIDIyNTYwMTgsICAgIDIyNTYwMjQsICAgICAgICAxLCAgICAgMTU5Mywg MHg1YTM1MWE2OCwgRj0weDAKLTAsICAgIDIyNTYwMTksICAgIDIyNTYwMjIsICAgICAgICAxLCAg ICAgMTA0MiwgMHhiNzdkMDBjYywgRj0weDAKLTAsICAgIDIyNTYwMjAsICAgIDIyNTYwMjAsICAg ICAgICAyLCAgICAgIDMwMiwgMHhiY2RiOTc1MCwgRj0weDAKLTAsICAgIDIyNTYwMjIsICAgIDIy NTYwMjMsICAgICAgICAxLCAgICAgIDMzNiwgMHhjN2IwYTU1ZCwgRj0weDAKLTAsICAgIDIyNTYw MjMsICAgIDIyNTYwMjYsICAgICAgICAxLCAgICAgIDg3NSwgMHg3ZTMxYjA0NiwgRj0weDAKLTAs ICAgIDIyNTYwMjQsICAgIDIyNTYwMjUsICAgICAgICAxLCAgICAgIDQwMSwgMHhiNDczYmNhOCwg Rj0weDAKLTAsICAgIDIyNTYwMjUsICAgIDIyNTYwMjgsICAgICAgICAxLCAgICAgIDI0NiwgMHg0 MzM1NzI2MywgRj0weDAKLTAsICAgIDIyNTYwMjYsICAgIDIyNTYwMzgsICAgICAgICAyLCAgICAg MzI1NCwgMHg4YmU0NGEyZCwgRj0weDAKLTAsICAgIDIyNTYwMjgsICAgIDIyNTYwMzQsICAgICAg ICAxLCAgICAgMTE1MSwgMHgyOWQ1MmQxNCwgRj0weDAKLTAsICAgIDIyNTYwMjksICAgIDIyNTYw MzEsICAgICAgICAxLCAgICAgIDczMywgMHgzMzYwNjk4MiwgRj0weDAKLTAsICAgIDIyNTYwMzAs ICAgIDIyNTYwMzAsICAgICAgICAxLCAgICAgIDIzNCwgMHhiNzBhNzlmZiwgRj0weDAKLTAsICAg IDIyNTYwMzEsICAgIDIyNTYwMzIsICAgICAgICAxLCAgICAgIDIyOCwgMHg4NjkxNjg0OCwgRj0w eDAKLTAsICAgIDIyNTYwMzIsICAgIDIyNTYwMzYsICAgICAgICAyLCAgICAgIDY4OSwgMHhjY2Ez NGI0MCwgRj0weDAKLTAsICAgIDIyNTYwMzQsICAgIDIyNTYwMzUsICAgICAgICAxLCAgICAgIDIy MywgMHhhOTZmNmUzMSwgRj0weDAKLTAsICAgIDIyNTYwMzUsICAgIDIyNTYwMzcsICAgICAgICAx LCAgICAgIDI0MSwgMHg3YWMxNzUzMSwgRj0weDAKKzAsICAgIDIxNjAwMDAsICAgIDI2NDAwMDAs ICAgIDQ4MDAwLCAgICAgNDYyOSwgMHhmMmUwZmIwZiwgRj0weDAKKzAsICAgIDIyMDgwMDAsICAg IDI0NDgwMDAsICAgIDQ4MDAwLCAgICAgMTQ1MywgMHg2YWU1ZGM5OCwgRj0weDAKKzAsICAgIDIy NTYwMDAsICAgIDIzNTIwMDAsICAgIDQ4MDAwLCAgICAgIDg2OSwgMHgzOTgyYWU2OSwgRj0weDAK KzAsICAgIDIzMDQwMDAsICAgIDIzMDQwMDAsICAgIDQ4MDAwLCAgICAgIDI4MiwgMHhkOWUyODk2 MCwgRj0weDAKKzAsICAgIDIzNTIwMDAsICAgIDI0MDAwMDAsICAgIDQ4MDAwLCAgICAgIDI1OSwg MHgyNTNhODA5ZCwgRj0weDAKKzAsICAgIDI0MDAwMDAsICAgIDI1NDQwMDAsICAgIDQ4MDAwLCAg ICAgIDgzNSwgMHg4MzQ5OWYzMCwgRj0weDAKKzAsICAgIDI0NDgwMDAsICAgIDI0OTYwMDAsICAg IDQ4MDAwLCAgICAgIDI1NSwgMHhhNzdiNzY5MCwgRj0weDAKKzAsICAgIDI0OTYwMDAsICAgIDI1 OTIwMDAsICAgIDQ4MDAwLCAgICAgIDI0MiwgMHg4Mzk3N2NjZiwgRj0weDAKKzAsICAgIDI1NDQw MDAsICAgIDMwMjQwMDAsICAgIDQ4MDAwLCAgICAgNTA4MiwgMHhiYTU1ZWU1MSwgRj0weDAKKzAs ICAgIDI1OTIwMDAsICAgIDI4MzIwMDAsICAgIDQ4MDAwLCAgICAgMTM5MywgMHhjOTk4YjQ0Miwg Rj0weDAKKzAsICAgIDI2NDAwMDAsICAgIDI3MzYwMDAsICAgIDQ4MDAwLCAgICAgIDc0MiwgMHg5 MWFiNzVkMiwgRj0weDAKKzAsICAgIDI2ODgwMDAsICAgIDI2ODgwMDAsICAgIDQ4MDAwLCAgICAg IDIyOSwgMHhmYTMyNmQ5OCwgRj0weDAKKzAsICAgIDI3MzYwMDAsICAgIDI3ODQwMDAsICAgIDQ4 MDAwLCAgICAgIDI3NSwgMHg0OWMzODIyNiwgRj0weDAKKzAsICAgIDI3ODQwMDAsICAgIDI5Mjgw MDAsICAgIDQ4MDAwLCAgICAgIDg2OSwgMHhkZDA1YWNjNCwgRj0weDAKKzAsICAgIDI4MzIwMDAs ICAgIDI4ODAwMDAsICAgIDQ4MDAwLCAgICAgIDI5MywgMHhjYzllOTA0ZiwgRj0weDAKKzAsICAg IDI4ODAwMDAsICAgIDI5NzYwMDAsICAgIDQ4MDAwLCAgICAgIDMzNCwgMHgyMTJhYTRiMSwgRj0w eDAKKzAsICAgIDI5MjgwMDAsICAgIDM0MDgwMDAsICAgIDQ4MDAwLCAgICAgODUzOSwgMHhjY2Nj OWViMQorMCwgICAgMjk3NjAwMCwgICAgMzIxNjAwMCwgICAgNDgwMDAsICAgICAxNTkzLCAweDVh MzUxYTY4LCBGPTB4MAorMCwgICAgMzAyNDAwMCwgICAgMzEyMDAwMCwgICAgNDgwMDAsICAgICAx MDQyLCAweGI3N2QwMGNjLCBGPTB4MAorMCwgICAgMzA3MjAwMCwgICAgMzA3MjAwMCwgICAgNDgw MDAsICAgICAgMzAyLCAweGJjZGI5NzUwLCBGPTB4MAorMCwgICAgMzEyMDAwMCwgICAgMzE2ODAw MCwgICAgNDgwMDAsICAgICAgMzM2LCAweGM3YjBhNTVkLCBGPTB4MAorMCwgICAgMzE2ODAwMCwg ICAgMzMxMjAwMCwgICAgNDgwMDAsICAgICAgODc1LCAweDdlMzFiMDQ2LCBGPTB4MAorMCwgICAg MzIxNjAwMCwgICAgMzI2NDAwMCwgICAgNDgwMDAsICAgICAgNDAxLCAweGI0NzNiY2E4LCBGPTB4 MAorMCwgICAgMzI2NDAwMCwgICAgMzM2MDAwMCwgICAgNDgwMDAsICAgICAgMjQ2LCAweDQzMzU3 MjYzLCBGPTB4MAorMCwgICAgMzMxMjAwMCwgICAgMzc5MjAwMCwgICAgNDgwMDAsICAgICAzMjU0 LCAweDhiZTQ0YTJkLCBGPTB4MAorMCwgICAgMzM2MDAwMCwgICAgMzYwMDAwMCwgICAgNDgwMDAs ICAgICAxMTUxLCAweDI5ZDUyZDE0LCBGPTB4MAorMCwgICAgMzQwODAwMCwgICAgMzUwNDAwMCwg ICAgNDgwMDAsICAgICAgNzMzLCAweDMzNjA2OTgyLCBGPTB4MAorMCwgICAgMzQ1NjAwMCwgICAg MzQ1NjAwMCwgICAgNDgwMDAsICAgICAgMjM0LCAweGI3MGE3OWZmLCBGPTB4MAorMCwgICAgMzUw NDAwMCwgICAgMzU1MjAwMCwgICAgNDgwMDAsICAgICAgMjI4LCAweDg2OTE2ODQ4LCBGPTB4MAor MCwgICAgMzU1MjAwMCwgICAgMzY5NjAwMCwgICAgNDgwMDAsICAgICAgNjg5LCAweGNjYTM0YjQw LCBGPTB4MAorMCwgICAgMzYwMDAwMCwgICAgMzY0ODAwMCwgICAgNDgwMDAsICAgICAgMjIzLCAw eGE5NmY2ZTMxLCBGPTB4MAorMCwgICAgMzY0ODAwMCwgICAgMzc0NDAwMCwgICAgNDgwMDAsICAg ICAgMjQxLCAweDdhYzE3NTMxLCBGPTB4MApkaWZmIC0tZ2l0IGEvdGVzdHMvcmVmL2ZhdGUvaGV2 Yy1ic2YtZHRzMnB0cy1pZHIgYi90ZXN0cy9yZWYvZmF0ZS9oZXZjLWJzZi1kdHMycHRzLWlkcgpp bmRleCA5NTY4YTU5MzJjLi5hZGZiZTc1OTg3IDEwMDY0NAotLS0gYS90ZXN0cy9yZWYvZmF0ZS9o ZXZjLWJzZi1kdHMycHRzLWlkcgorKysgYi90ZXN0cy9yZWYvZmF0ZS9oZXZjLWJzZi1kdHMycHRz LWlkcgpAQCAtMSw1ICsxLDUgQEAKLTM2OGQxNzc4MjE0NTAyNDE4MjBiZjM1MDdkNzRiMzVhICp0 ZXN0cy9kYXRhL2ZhdGUvaGV2Yy1ic2YtZHRzMnB0cy1pZHIubW92Ci0zNDY2MDMgdGVzdHMvZGF0 YS9mYXRlL2hldmMtYnNmLWR0czJwdHMtaWRyLm1vdgorOGYwMmQzMWZlY2U2YTA2N2E4NDg4ZDhj YTZlZTMzMjkgKnRlc3RzL2RhdGEvZmF0ZS9oZXZjLWJzZi1kdHMycHRzLWlkci5tb3YKKzM0NjU3 OSB0ZXN0cy9kYXRhL2ZhdGUvaGV2Yy1ic2YtZHRzMnB0cy1pZHIubW92CiAjZXh0cmFkYXRhIDA6 ICAgICAgNjk5LCAweDljODEwYzEwCiAjdGIgMDogMS8xMjAwMDAwCiAjbWVkaWFfdHlwZSAwOiB2 aWRlbwpAQCAtNDcsNyArNDcsNyBAQAogMCwgICAgMTY4MDAwMCwgICAgMTgyNDAwMCwgICAgNDgw MDAsICAgICAyMjA4LCAweDhlMjE0NmU4LCBGPTB4MAogMCwgICAgMTcyODAwMCwgICAgMTc3NjAw MCwgICAgNDgwMDAsICAgICAgOTAwLCAweDY2OWZiOTdiLCBGPTB4MAogMCwgICAgMTc3NjAwMCwg ICAgMTg3MjAwMCwgICAgNDgwMDAsICAgICAgODE3LCAweDNlYjY4OWUxLCBGPTB4MAotMCwgICAg MTgyNDAwMCwgICAgMjI1NjAwMSwgICAgNDgwMDAsICAgIDE3OTE5LCAweDRlODNiMzAxLCBGPTB4 MAorMCwgICAgMTgyNDAwMCwgICAgMjMwNDAwMCwgICAgNDgwMDAsICAgIDE3OTE5LCAweDRlODNi MzAxLCBGPTB4MAogMCwgICAgMTg3MjAwMCwgICAgMjExMjAwMCwgICAgNDgwMDAsICAgICA0OTEx LCAweDJmYzg4ZTFmLCBGPTB4MAogMCwgICAgMTkyMDAwMCwgICAgMjAxNjAwMCwgICAgNDgwMDAs ICAgICAyNzE3LCAweGNjMWY1NTFlLCBGPTB4MAogMCwgICAgMTk2ODAwMCwgICAgMTk2ODAwMCwg ICAgNDgwMDAsICAgICAgOTA4LCAweDQzZTFiNDIxLCBGPTB4MApAQCAtNTUsMTkgKzU1LDE5IEBA CiAwLCAgICAyMDY0MDAwLCAgICAyMjA4MDAwLCAgICA0ODAwMCwgICAgIDI4NTcsIDB4ZGVlZTk2 MTQsIEY9MHgwCiAwLCAgICAyMTEyMDAwLCAgICAyMTYwMDAwLCAgICA0ODAwMCwgICAgIDEwMzks IDB4OWNmOGY0OTQsIEY9MHgwCiAwLCAgICAyMTYwMDAwLCAgICAyMjU2MDAwLCAgICA0ODAwMCwg ICAgICA5NzUsIDB4MGY0ZWM4NWIsIEY9MHgwCi0wLCAgICAyMjA4MDAwLCAgICAyMjU2MDExLCAg ICA0ODAwMCwgICAgMTgzNDUsIDB4ZjlkYWJkM2IsIEY9MHgwCi0wLCAgICAyMjU2MDAwLCAgICAy MjU2MDA2LCAgICAgICAgMSwgICAgIDUyODAsIDB4YzVjMzM4MDksIEY9MHgwCi0wLCAgICAyMjU2 MDAxLCAgICAyMjU2MDA0LCAgICAgICAgMSwgICAgIDI3NTUsIDB4ZGE5NTVjNzUsIEY9MHgwCi0w LCAgICAyMjU2MDAyLCAgICAyMjU2MDAyLCAgICAgICAgMiwgICAgIDEwMjcsIDB4ZjY1MmVmZjMs IEY9MHgwCi0wLCAgICAyMjU2MDA0LCAgICAyMjU2MDA1LCAgICAgICAgMSwgICAgICA5MDEsIDB4 ZTIzY2I3MTYsIEY9MHgwCi0wLCAgICAyMjU2MDA1LCAgICAyMjU2MDA4LCAgICAgICAgMSwgICAg IDMwMTAsIDB4NzgzZGU1Y2IsIEY9MHgwCi0wLCAgICAyMjU2MDA2LCAgICAyMjU2MDA3LCAgICAg ICAgMSwgICAgIDEwMDUsIDB4OTFmY2Y5MmYsIEY9MHgwCi0wLCAgICAyMjU2MDA3LCAgICAyMjU2 MDEwLCAgICAgICAgMSwgICAgIDExMzEsIDB4ZDg4YjI5MjAsIEY9MHgwCi0wLCAgICAyMjU2MDA4 LCAgICAyMjU2MDA4LCAgICAgICAgMiwgICAgMjkwMTgsIDB4YzliMjU2MDgKLTAsICAgIDIyNTYw MTAsICAgIDIyNTYwMTYsICAgICAgICAxLCAgICAgNzQzNiwgMHgxODM0NGU3NywgRj0weDAKLTAs ICAgIDIyNTYwMTEsICAgIDIyNTYwMTMsICAgICAgICAxLCAgICAgNDA1MCwgMHg1NGZjYmVlMCwg Rj0weDAKLTAsICAgIDIyNTYwMTIsICAgIDIyNTYwMTIsICAgICAgICAxLCAgICAgMTQxMiwgMHhl MjQ5YmQ4NiwgRj0weDAKLTAsICAgIDIyNTYwMTMsICAgIDIyNTYwMTQsICAgICAgICAxLCAgICAg IDk3NywgMHhhNzQ5ZGMyMSwgRj0weDAKLTAsICAgIDIyNTYwMTQsICAgIDIyNTYwMTQsICAgICAg ICAyLCAgICAgMjk1MywgMHhiYTkwYzAwOCwgRj0weDAKLTAsICAgIDIyNTYwMTYsICAgIDIyNTYw MTcsICAgICAgICAxLCAgICAgMTAwNCwgMHhkZGViZWE5YSwgRj0weDAKLTAsICAgIDIyNTYwMTcs ICAgIDIyNTYwMTcsICAgICAgICAxLCAgICAgMTEwOSwgMHg3ZTA4MTU3MCwgRj0weDAKKzAsICAg IDIyMDgwMDAsICAgIDI2ODgwMDAsICAgIDQ4MDAwLCAgICAxODM0NSwgMHhmOWRhYmQzYiwgRj0w eDAKKzAsICAgIDIyNTYwMDAsICAgIDI0OTYwMDAsICAgIDQ4MDAwLCAgICAgNTI4MCwgMHhjNWMz MzgwOSwgRj0weDAKKzAsICAgIDIzMDQwMDAsICAgIDI0MDAwMDAsICAgIDQ4MDAwLCAgICAgMjc1 NSwgMHhkYTk1NWM3NSwgRj0weDAKKzAsICAgIDIzNTIwMDAsICAgIDIzNTIwMDAsICAgIDQ4MDAw LCAgICAgMTAyNywgMHhmNjUyZWZmMywgRj0weDAKKzAsICAgIDI0MDAwMDAsICAgIDI0NDgwMDAs ICAgIDQ4MDAwLCAgICAgIDkwMSwgMHhlMjNjYjcxNiwgRj0weDAKKzAsICAgIDI0NDgwMDAsICAg IDI1OTIwMDAsICAgIDQ4MDAwLCAgICAgMzAxMCwgMHg3ODNkZTVjYiwgRj0weDAKKzAsICAgIDI0 OTYwMDAsICAgIDI1NDQwMDAsICAgIDQ4MDAwLCAgICAgMTAwNSwgMHg5MWZjZjkyZiwgRj0weDAK KzAsICAgIDI1NDQwMDAsICAgIDI2NDAwMDAsICAgIDQ4MDAwLCAgICAgMTEzMSwgMHhkODhiMjky MCwgRj0weDAKKzAsICAgIDI1OTIwMDAsICAgIDI1OTIwMDAsICAgIDQ4MDAwLCAgICAyOTAxOCwg MHhjOWIyNTYwOAorMCwgICAgMjY0MDAwMCwgICAgMjg4MDAwMCwgICAgNDgwMDAsICAgICA3NDM2 LCAweDE4MzQ0ZTc3LCBGPTB4MAorMCwgICAgMjY4ODAwMCwgICAgMjc4NDAwMCwgICAgNDgwMDAs ICAgICA0MDUwLCAweDU0ZmNiZWUwLCBGPTB4MAorMCwgICAgMjczNjAwMCwgICAgMjczNjAwMCwg ICAgNDgwMDAsICAgICAxNDEyLCAweGUyNDliZDg2LCBGPTB4MAorMCwgICAgMjc4NDAwMCwgICAg MjgzMjAwMCwgICAgICAgIDEsICAgICAgOTc3LCAweGE3NDlkYzIxLCBGPTB4MAorMCwgICAgMjc4 NDAwMSwgICAgMjc4NDAwMSwgICAgOTU5OTksICAgICAyOTUzLCAweGJhOTBjMDA4LCBGPTB4MAor MCwgICAgMjg4MDAwMCwgICAgMjkyODAwMCwgICAgICAgIDEsICAgICAxMDA0LCAweGRkZWJlYTlh LCBGPTB4MAorMCwgICAgMjg4MDAwMSwgICAgMjg4MDAwMSwgICAgNDgwMDAsICAgICAxMTA5LCAw eDdlMDgxNTcwLCBGPTB4MApkaWZmIC0tZ2l0IGEvdGVzdHMvcmVmL2ZhdGUvaGV2Yy1ic2YtZHRz MnB0cy1pZHItY3JhIGIvdGVzdHMvcmVmL2ZhdGUvaGV2Yy1ic2YtZHRzMnB0cy1pZHItY3JhCmlu ZGV4IDAyZTk3NjVhMjYuLmIxMmYwMjU4MWYgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3JlZi9mYXRlL2hl dmMtYnNmLWR0czJwdHMtaWRyLWNyYQorKysgYi90ZXN0cy9yZWYvZmF0ZS9oZXZjLWJzZi1kdHMy cHRzLWlkci1jcmEKQEAgLTEsNSArMSw1IEBACi0wN2EyMTZkNjUzNzUwMjcwNTM0OGZlYTM5MmQ1 ZDczZCAqdGVzdHMvZGF0YS9mYXRlL2hldmMtYnNmLWR0czJwdHMtaWRyLWNyYS5tb3YKLTM3NTI2 NiB0ZXN0cy9kYXRhL2ZhdGUvaGV2Yy1ic2YtZHRzMnB0cy1pZHItY3JhLm1vdgorZWQ4ZDczNWI5 YTI3ODBjZThhZGE2MWZkMzFjNjg4ODYgKnRlc3RzL2RhdGEvZmF0ZS9oZXZjLWJzZi1kdHMycHRz LWlkci1jcmEubW92CiszNzUyMTAgdGVzdHMvZGF0YS9mYXRlL2hldmMtYnNmLWR0czJwdHMtaWRy LWNyYS5tb3YKICNleHRyYWRhdGEgMDogICAgICA2NDgsIDB4MzBhN2ZhNWMKICN0YiAwOiAxLzEy MDAwMDAKICNtZWRpYV90eXBlIDA6IHZpZGVvCkBAIC00Nyw3ICs0Nyw3IEBACiAwLCAgICAxNjgw MDAwLCAgICAxODI0MDAwLCAgICA0ODAwMCwgICAgIDI2NzQsIDB4Mjk2ZmQ0MTEsIEY9MHgwCiAw LCAgICAxNzI4MDAwLCAgICAxNzc2MDAwLCAgICA0ODAwMCwgICAgIDE0MjAsIDB4MzA0ZDYxNjgs IEY9MHgwCiAwLCAgICAxNzc2MDAwLCAgICAxODcyMDAwLCAgICA0ODAwMCwgICAgIDEzNjQsIDB4 NDg3MzQwODQsIEY9MHgwCi0wLCAgICAxODI0MDAwLCAgICAyMjU2MDAxLCAgICA0ODAwMCwgICAg MTkzNDksIDB4ZGEwOTQ0ZjAsIEY9MHgwCiswLCAgICAxODI0MDAwLCAgICAyMzA0MDAwLCAgICA0 ODAwMCwgICAgMTkzNDksIDB4ZGEwOTQ0ZjAsIEY9MHgwCiAwLCAgICAxODcyMDAwLCAgICAyMTEy MDAwLCAgICA0ODAwMCwgICAgIDU1NTAsIDB4OWMzNDZiN2IsIEY9MHgwCiAwLCAgICAxOTIwMDAw LCAgICAyMDE2MDAwLCAgICA0ODAwMCwgICAgIDMxODAsIDB4NTM2OGY3MmIsIEY9MHgwCiAwLCAg ICAxOTY4MDAwLCAgICAxOTY4MDAwLCAgICA0ODAwMCwgICAgIDE0NzUsIDB4MzY5YjdhYWUsIEY9 MHgwCkBAIC01NSwxOSArNTUsMTkgQEAKIDAsICAgIDIwNjQwMDAsICAgIDIyMDgwMDAsICAgIDQ4 MDAwLCAgICAgMzM2NSwgMHg4MWQ1MTFhNiwgRj0weDAKIDAsICAgIDIxMTIwMDAsICAgIDIxNjAw MDAsICAgIDQ4MDAwLCAgICAgMTU3NSwgMHhiYTgxYjBhNSwgRj0weDAKIDAsICAgIDIxNjAwMDAs ICAgIDIyNTYwMDAsICAgIDQ4MDAwLCAgICAgMTUzOCwgMHhmMTE5OTQzOSwgRj0weDAKLTAsICAg IDIyMDgwMDAsICAgIDIyNTYwMTEsICAgIDQ4MDAwLCAgICAyMDEzOCwgMHgxMDFmYjIyMCwgRj0w eDAKLTAsICAgIDIyNTYwMDAsICAgIDIyNTYwMDYsICAgICAgICAxLCAgICAgNTgwNiwgMHhjYzUw MDE1OCwgRj0weDAKLTAsICAgIDIyNTYwMDEsICAgIDIyNTYwMDQsICAgICAgICAxLCAgICAgMzI2 NywgMHhmOGYwZDZjZCwgRj0weDAKLTAsICAgIDIyNTYwMDIsICAgIDIyNTYwMDIsICAgICAgICAy LCAgICAgMTU1NywgMHg4OTRmYWYzZSwgRj0weDAKLTAsICAgIDIyNTYwMDQsICAgIDIyNTYwMDUs ICAgICAgICAxLCAgICAgMTQ4MiwgMHg2YjE4ODRiNywgRj0weDAKLTAsICAgIDIyNTYwMDUsICAg IDIyNTYwMDgsICAgICAgICAxLCAgICAgMzUxMywgMHg4MTIyN2E1OSwgRj0weDAKLTAsICAgIDIy NTYwMDYsICAgIDIyNTYwMDcsICAgICAgICAxLCAgICAgMTU3NiwgMHg4NTVlYWJkOCwgRj0weDAK LTAsICAgIDIyNTYwMDcsICAgIDIyNTYwMTAsICAgICAgICAxLCAgICAgMTY2OCwgMHgwMzBhZGUy ZSwgRj0weDAKLTAsICAgIDIyNTYwMDgsICAgIDIyNTYwMDgsICAgICAgICAyLCAgICAzMjA4OCwg MHhmYWRiZjVmNgotMCwgICAgMjI1NjAxMCwgICAgMjI1NjAxNiwgICAgICAgIDEsICAgICA1OTIx LCAweDIxZmI0OTc2LCBGPTB4MAotMCwgICAgMjI1NjAxMSwgICAgMjI1NjAxMywgICAgICAgIDEs ICAgICAzNDM2LCAweDkyMDg1Y2Q2LCBGPTB4MAotMCwgICAgMjI1NjAxMiwgICAgMjI1NjAxMiwg ICAgICAgIDEsICAgICAxNjEzLCAweDFlMGNiN2M2LCBGPTB4MAotMCwgICAgMjI1NjAxMywgICAg MjI1NjAxNCwgICAgICAgIDEsICAgICAxNDgzLCAweDg4ZDE4YTRlLCBGPTB4MAotMCwgICAgMjI1 NjAxNCwgICAgMjI1NjAxOCwgICAgICAgIDIsICAgICAzNTQwLCAweGM1N2M4ZTdiLCBGPTB4MAot MCwgICAgMjI1NjAxNiwgICAgMjI1NjAxNywgICAgICAgIDEsICAgICAxNTYxLCAweDk3NDBhMzYz LCBGPTB4MAotMCwgICAgMjI1NjAxNywgICAgMjI1NjAxOSwgICAgICAgIDEsICAgICAxNjUxLCAw eDE4ZTNkNTJkLCBGPTB4MAorMCwgICAgMjIwODAwMCwgICAgMjY4ODAwMCwgICAgNDgwMDAsICAg IDIwMTM4LCAweDEwMWZiMjIwLCBGPTB4MAorMCwgICAgMjI1NjAwMCwgICAgMjQ5NjAwMCwgICAg NDgwMDAsICAgICA1ODA2LCAweGNjNTAwMTU4LCBGPTB4MAorMCwgICAgMjMwNDAwMCwgICAgMjQw MDAwMCwgICAgNDgwMDAsICAgICAzMjY3LCAweGY4ZjBkNmNkLCBGPTB4MAorMCwgICAgMjM1MjAw MCwgICAgMjM1MjAwMCwgICAgNDgwMDAsICAgICAxNTU3LCAweDg5NGZhZjNlLCBGPTB4MAorMCwg ICAgMjQwMDAwMCwgICAgMjQ0ODAwMCwgICAgNDgwMDAsICAgICAxNDgyLCAweDZiMTg4NGI3LCBG PTB4MAorMCwgICAgMjQ0ODAwMCwgICAgMjU5MjAwMCwgICAgNDgwMDAsICAgICAzNTEzLCAweDgx MjI3YTU5LCBGPTB4MAorMCwgICAgMjQ5NjAwMCwgICAgMjU0NDAwMCwgICAgNDgwMDAsICAgICAx NTc2LCAweDg1NWVhYmQ4LCBGPTB4MAorMCwgICAgMjU0NDAwMCwgICAgMjY0MDAwMCwgICAgNDgw MDAsICAgICAxNjY4LCAweDAzMGFkZTJlLCBGPTB4MAorMCwgICAgMjU5MjAwMCwgICAgMjU5MjAw MCwgICAgNDgwMDAsICAgIDMyMDg4LCAweGZhZGJmNWY2CiswLCAgICAyNjQwMDAwLCAgICAyODgw MDAwLCAgICA0ODAwMCwgICAgIDU5MjEsIDB4MjFmYjQ5NzYsIEY9MHgwCiswLCAgICAyNjg4MDAw LCAgICAyNzg0MDAwLCAgICA0ODAwMCwgICAgIDM0MzYsIDB4OTIwODVjZDYsIEY9MHgwCiswLCAg ICAyNzM2MDAwLCAgICAyNzM2MDAwLCAgICA0ODAwMCwgICAgIDE2MTMsIDB4MWUwY2I3YzYsIEY9 MHgwCiswLCAgICAyNzg0MDAwLCAgICAyODMyMDAwLCAgICA0ODAwMCwgICAgIDE0ODMsIDB4ODhk MThhNGUsIEY9MHgwCiswLCAgICAyODMyMDAwLCAgICAyOTc2MDAwLCAgICA0ODAwMCwgICAgIDM1 NDAsIDB4YzU3YzhlN2IsIEY9MHgwCiswLCAgICAyODgwMDAwLCAgICAyOTI4MDAwLCAgICA0ODAw MCwgICAgIDE1NjEsIDB4OTc0MGEzNjMsIEY9MHgwCiswLCAgICAyOTI4MDAwLCAgICAzMDI0MDAw LCAgICA0ODAwMCwgICAgIDE2NTEsIDB4MThlM2Q1MmQsIEY9MHgwCmRpZmYgLS1naXQgYS90ZXN0 cy9yZWYvbGF2Zi1mYXRlL2hldmMubXA0IGIvdGVzdHMvcmVmL2xhdmYtZmF0ZS9oZXZjLm1wNApp bmRleCBhZWE1YWU4OTc5Li4zOWRkZGQ0OWNiIDEwMDY0NAotLS0gYS90ZXN0cy9yZWYvbGF2Zi1m YXRlL2hldmMubXA0CisrKyBiL3Rlc3RzL3JlZi9sYXZmLWZhdGUvaGV2Yy5tcDQKQEAgLTEsMyAr MSwzIEBACi0zN2IzYTNlODRkZjIzNTAzODBiMDViMmFmNGRjOTdmNSAqdGVzdHMvZGF0YS9sYXZm LWZhdGUvbGF2Zi5oZXZjLm1wNAorNTM5YjBmNmRhZWNlNjY1NjYwOWRlMDg5OGExZjNkNDIgKnRl c3RzL2RhdGEvbGF2Zi1mYXRlL2xhdmYuaGV2Yy5tcDQKIDE1MTM0MCB0ZXN0cy9kYXRhL2xhdmYt ZmF0ZS9sYXZmLmhldmMubXA0CiB0ZXN0cy9kYXRhL2xhdmYtZmF0ZS9sYXZmLmhldmMubXA0IENS Qz0weGMwYTc3MWRlCi0tIAoyLjUyLjAKCgpGcm9tIDU4ZmMyNDAxNmM1YzcxMDQ1MjY3NzUzZTkx NjAzZGRlMjhjOTllNWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEF5b3NlIDxheW9z ZWNAZ21haWwuY29tPgpEYXRlOiBXZWQsIDI2IE5vdiAyMDI1IDIyOjAwOjM5ICswMDAwClN1Ympl Y3Q6IFtQQVRDSCAxMzEvMzA0XSB0ZXN0cy9mYXRlLWZpbHRlci1kcmF3dmctdmlkZW86IGNvcHkg ZHJhd3ZnLmxpbmVzCiBmaWxlIHRvIHRlc3RzL2RhdGEuCgpJZiB0aGUgU1JDX1BBVEggdmFyaWFi bGUgY29udGFpbnMgY2VydGFpbiBjaGFyYWN0ZXJzIChsaWtlIGEgYDpgLCB3aGljaCBtYXkKaGFw cGVuIHdoZW4gRkFURSBpcyBleGVjdXRlZCBvbiBXaW5kb3dzKSwgdGhlIHZhbHVlIGZvciB0aGUg YGZpbGVgIG9wdGlvbiBpcwpicm9rZW4sIHNvIGBtYWtlIGZhdGUtZmlsdGVyLWRyYXd2Zy12aWRl b2AgYWx3YXlzIGZhaWxzLgoKVGhlIHNvbHV0aW9uIGluIHRoaXMgY29tbWl0IGlzIHRvIGNvcHkg dGhlIGBkcmF3dmcubGluZXNgIHRvIHRoZSBgdGVzdHMvZGF0YWAKZGlyZWN0b3J5ICh3aGljaCBh bHJlYWR5IGhhcyB0ZW1wIGZpbGVzKSwgc28gdGhlIHZhbHVlIGZvciBgZmlsZWAgaXMgYSBmaXhl ZApzdHJpbmcgd2l0aCBubyBwcm9ibGVtYXRpYyBjaGFyYWN0ZXJzLgoKU2lnbmVkLW9mZi1ieTog QXlvc2UgPGF5b3NlY0BnbWFpbC5jb20+Ci0tLQogdGVzdHMvZmF0ZS9maWx0ZXItdmlkZW8ubWFr IHwgNSArKysrLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2ZhdGUvZmlsdGVyLXZpZGVvLm1hayBiL3Rlc3RzL2ZhdGUv ZmlsdGVyLXZpZGVvLm1hawppbmRleCAzZmU3ZjEwNDc2Li4wODdiYThkOWNkIDEwMDY0NAotLS0g YS90ZXN0cy9mYXRlL2ZpbHRlci12aWRlby5tYWsKKysrIGIvdGVzdHMvZmF0ZS9maWx0ZXItdmlk ZW8ubWFrCkBAIC02MDksNyArNjA5LDEwIEBAIGZhdGUtZmlsdGVyLXRpbHRhbmRzaGlmdC00MTA6 IENNRCA9IGZyYW1lY3JjIC1jOnYgcGdteXV2IC1pICQoU1JDKSAtZmxhZ3MgK2JpdGV4CiBmYXRl LWZpbHRlci10aWx0YW5kc2hpZnQtNDIyOiBDTUQgPSBmcmFtZWNyYyAtYzp2IHBnbXl1diAtaSAk KFNSQykgLWZsYWdzICtiaXRleGFjdCAtdmYgc2NhbGU9c3dzX2ZsYWdzPSthY2N1cmF0ZV9ybmQr Yml0ZXhhY3QsZm9ybWF0PXl1djQyMnAsdGlsdGFuZHNoaWZ0CiBmYXRlLWZpbHRlci10aWx0YW5k c2hpZnQtNDQ0OiBDTUQgPSBmcmFtZWNyYyAtYzp2IHBnbXl1diAtaSAkKFNSQykgLWZsYWdzICti aXRleGFjdCAtdmYgc2NhbGU9c3dzX2ZsYWdzPSthY2N1cmF0ZV9ybmQrYml0ZXhhY3QsZm9ybWF0 PXl1djQ0NHAsdGlsdGFuZHNoaWZ0CiAKLURSQVdWR19TQ1JJUFRfTElORVMgPSAkKFNSQ19QQVRI KS90ZXN0cy9yZWYvbGF2Zi9kcmF3dmcubGluZXMKK0RSQVdWR19TQ1JJUFRfTElORVMgPSB0ZXN0 cy9kYXRhL2ZhdGUvZHJhd3ZnLmxpbmVzCiskKERSQVdWR19TQ1JJUFRfTElORVMpOiAkKFNSQ19Q QVRIKS90ZXN0cy9yZWYvbGF2Zi9kcmF3dmcubGluZXMKKwkkKE0pY3AgJDwgJEAKKwogRkFURV9G SUxURVJfVlNZTlRIX1ZJREVPX0ZJTFRFUi0kKENPTkZJR19EUkFXVkdfRklMVEVSKSArPSBmYXRl LWZpbHRlci1kcmF3dmctdmlkZW8KIGZhdGUtZmlsdGVyLWRyYXd2Zy12aWRlbzogJChEUkFXVkdf U0NSSVBUX0xJTkVTKQogZmF0ZS1maWx0ZXItZHJhd3ZnLXZpZGVvOiBDTUQgPSB2aWRlb19maWx0 ZXIgc2NhbGUsZm9ybWF0PWJncjAsZHJhd3ZnPWZpbGU9JChEUkFXVkdfU0NSSVBUX0xJTkVTKQot LSAKMi41Mi4wCgoKRnJvbSAwNzdiYzQ1OWMwMjczNGQ5OTMxZGE1MTEwMDY2MjZhMzI5ZDBmMTVh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYW8gQ2hlbiA8Y2hlbmhhb0Bsb29uZ3Nv bi5jbj4KRGF0ZTogVHVlLCAxMSBOb3YgMjAyNSAxOTowNTo0OCArMDgwMApTdWJqZWN0OiBbUEFU Q0ggMTMyLzMwNF0gc3dzY2FsZTogRml4IG91dC1vZi1ib3VuZHMgd3JpdGUgZXJyb3JzIGluCiB5 dXYycmdiX2xhc3guYyBmaWxlLgoKVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgZHN0dyB2YWx1 ZXMgZW5kaW5nIGluIDIsIDQsIDYsIDgsIDEwLCAxMiwgYW5kIDE0LAp3aGljaCBmaXhlcyB0aGUg b3V0LW9mLWJvdW5kcyB3cml0ZSBwcm9ibGVtLgotLS0KIGxpYnN3c2NhbGUvbG9vbmdhcmNoL3l1 djJyZ2JfbGFzeC5jIHwgMTA4ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA5NiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9s aWJzd3NjYWxlL2xvb25nYXJjaC95dXYycmdiX2xhc3guYyBiL2xpYnN3c2NhbGUvbG9vbmdhcmNo L3l1djJyZ2JfbGFzeC5jCmluZGV4IGQ4M2U1ZDcwZmUuLjkwMzI4ODdmZjggMTAwNjQ0Ci0tLSBh L2xpYnN3c2NhbGUvbG9vbmdhcmNoL3l1djJyZ2JfbGFzeC5jCisrKyBiL2xpYnN3c2NhbGUvbG9v bmdhcmNoL3l1djJyZ2JfbGFzeC5jCkBAIC0xNzMsNyArMTczLDcgQEAKICAgICBfX20yNTZpIHNo dWYzID0gezB4MUUwRjBFMUMwRDBDMUEwQiwgMHgwMTAxMDEwMTAxMDEwMTAxLCAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgIDB4MUUwRjBFMUMwRDBDMUEwQiwg MHgwMTAxMDEwMTAxMDEwMTAxfTsgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBZVVYyUkdC X0xPQURfQ09FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKLSAgICB5ICAgICAgPSAoYy0+b3B0cy5kc3RfdyArIDcpICYgfjc7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB5ICAg ICAgPSBjLT5vcHRzLmRzdF93OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKICAgICBoX3NpemUgPSB5ID4+IDQ7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBy ZXMgICAgPSB5ICYgMTU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAg LTE5OSw3ICsxOTksNyBAQAogICAgIF9fbTI1NmkgYSA9IF9fbGFzeF94dmxkaSgweEZGKTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAogICAgIFlVVjJSR0JfTE9BRF9DT0UgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHkg ICAgICA9IChjLT5vcHRzLmRzdF93ICsgNykgJiB+NzsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgIHkgICAgICA9IGMtPm9wdHMuZHN0X3c7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg IGhfc2l6ZSA9IHkgPj4gNDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHJlcyAgICA9IHkgJiAxNTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMjE1LDcgKzIxNSw3IEBACiAgICAgICAg IGNvbnN0IHVpbnQ4X3QgKnB2ICAgPSBzcmNbMl0gKyAgICh5ID4+IHZzaGlmdCkgKiBzcmNTdHJp ZGVbMl07ICAgICAgICAgICAgICBcCiAgICAgICAgIGZvcih4ID0gMDsgeCA8IGhfc2l6ZTsgeCsr KSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAKLSNk ZWZpbmUgREVBTFlVVjJSR0JSRU1BSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgREVBTFlVVjJSR0JMSU5FICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK ICAgICAgICAgICAgIHB5XzEgKz0gMTY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHB5XzIgKz0gMTY7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKICAgICAgICAgICAgIHB1ICs9IDg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTIyMyw5ICsyMjMsNDAgQEAKICAg ICAgICAgICAgIGltYWdlMSArPSA0ODsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIGltYWdlMiArPSA0ODsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK ICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgaWYgKHJlcykgeyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICAgICAgaWYgKHJlcyAmIDgpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAotI2RlZmluZSBERUFMWVVWMlJHQlJF TUFJTjMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorI2RlZmluZSBERUFMWVVWMlJHQkxJTkVSRVMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgcHlfMSAr PSA4OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorICAgICAgICAgICAgcHlfMiArPSA4OyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgcHUg Kz0gNDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAgICAgICAgICAgcHYgKz0gNDsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAg aW1hZ2UxICs9IDI0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgaW1hZ2UyICs9IDI0OyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg ICAgcmVzIC09IDggOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg ICBpZiAocmVzKSB7CisKKyNkZWZpbmUgRU5EWVVWMlJHQkxJTkUocmdiX2wsIHJnYl9oLCBpbWFn ZV8xLCBpbWFnZV8yKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgaWYg KHJlcyA9PSA2KSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIF9fbGFzeF94dnN0ZWxtX2QocmdiX2wsIGlt YWdlXzEsIDAsIDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg ICAgIF9fbGFzeF94dnN0ZWxtX2QocmdiX2wsIGltYWdlXzEsIDgsIDEpOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIF9fbGFzeF94dnN0ZWxtX2gocmdiX2gs IGltYWdlXzEsIDE2LCAwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg ICAgICAgIF9fbGFzeF94dnN0ZWxtX2QocmdiX2wsIGltYWdlXzIsIDAsIDIpOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIF9fbGFzeF94dnN0ZWxtX2Qocmdi X2wsIGltYWdlXzIsIDgsIDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICAgICAgICAgIF9fbGFzeF94dnN0ZWxtX2gocmdiX2gsIGltYWdlXzIsIDE2LCA4KTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfSBlbHNlIGlmIChyZXMgPT0gNCkg eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICAgICAgICAgIF9fbGFzeF94dnN0ZWxtX2QocmdiX2wsIGltYWdlXzEsIDAsIDApOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIF9fbGFzeF94dnN0ZWxt X3cocmdiX2wsIGltYWdlXzEsIDgsIDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICAgICAgICAgIF9fbGFzeF94dnN0ZWxtX2QocmdiX2wsIGltYWdlXzIsIDAsIDIpOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIF9fbGFzeF94dnN0 ZWxtX3cocmdiX2wsIGltYWdlXzIsIDgsIDYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgfSBlbHNlIGlmIChyZXMgPT0gMikgeyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIF9fbGFzeF94 dnN0ZWxtX3cocmdiX2wsIGltYWdlXzEsIDAsIDApOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgICAgICAgICAgIF9fbGFzeF94dnN0ZWxtX2gocmdiX2wsIGltYWdlXzEsIDQs IDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIF9fbGFz eF94dnN0ZWxtX3cocmdiX2wsIGltYWdlXzIsIDAsIDQpOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICAgICAgICAgIF9fbGFzeF94dnN0ZWxtX2gocmdiX2wsIGltYWdlXzIs IDQsIDEwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfQorCisj ZGVmaW5lIERFQUxZVVYyUkdCTElORTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICBweV8xICs9IDE2OyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CiAgICAgICAgICAgICBweV8yICs9IDE2OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICBwdSArPSA4OyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCkBAIC0yMzMsNyArMjY0LDM2IEBACiAgICAgICAgICAgICBpbWFnZTEgKz0gMTY7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg ICAgICAgICAgICBpbWFnZTIgKz0gMTY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIH0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc Ci0gICAgICAgIGlmIChyZXMpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmIChyZXMgJiA4KSB7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisKKyNkZWZpbmUgREVBTFlVVjJSR0JMSU5FUkVTMzIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHB5XzEgKz0g ODsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgICAgICAgICAgIHB5XzIgKz0gODsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHB1ICs9 IDQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICAgICAgICAgIHB2ICs9IDQ7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGlt YWdlMSArPSA4OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGltYWdlMiArPSA4OyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg IHJlcyAtPSA4OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg aWYgKHJlcykgeworCisjZGVmaW5lIEVORFlVVjJSR0JMSU5FMzIocmdiX2wsIHJnYl9oLCBpbWFn ZV8xLCBpbWFnZV8yKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmIChy ZXMgPT0gNikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgICAgICAgICBfX2xhc3hfeHZzdGVsbV9kKHJnYl9sLCBpbWFn ZV8xLCAwLCAwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAg ICBfX2xhc3hfeHZzdGVsbV9kKHJnYl9sLCBpbWFnZV8xLCA4LCAxKTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBfX2xhc3hfeHZzdGVsbV9kKHJnYl9sLCBp bWFnZV8xLCAxNiwgMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg ICAgICBfX2xhc3hfeHZzdGVsbV9kKHJnYl9oLCBpbWFnZV8yLCAwLCAwKTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBfX2xhc3hfeHZzdGVsbV9kKHJnYl9o LCBpbWFnZV8yLCA4LCAxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg ICAgICAgICBfX2xhc3hfeHZzdGVsbV9kKHJnYl9oLCBpbWFnZV8yLCAxNiwgMik7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIH0gZWxzZSBpZiAocmVzID09IDQpIHsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgICAgICAgICBfX2xhc3hfeHZzdGVsbV9kKHJnYl9sLCBpbWFnZV8xLCAwLCAwKTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBfX2xhc3hfeHZzdGVsbV9k KHJnYl9sLCBpbWFnZV8xLCA4LCAxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgICAgICAgICBfX2xhc3hfeHZzdGVsbV9kKHJnYl9oLCBpbWFnZV8yLCAwLCAwKTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBfX2xhc3hfeHZzdGVs bV9kKHJnYl9oLCBpbWFnZV8yLCA4LCAxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICAgIH0gZWxzZSBpZiAocmVzID09IDIpIHsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBfX2xhc3hfeHZz dGVsbV9kKHJnYl9sLCBpbWFnZV8xLCAwLCAwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICAgICAgICBfX2xhc3hfeHZzdGVsbV9kKHJnYl9oLCBpbWFnZV8yLCAwLCAw KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIH0KIAogCiAjZGVm aW5lIEVORF9GVU5DKCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTI0OSwxMCArMzA5 LDE0IEBAIFlVVjJSR0JGVU5DKHl1djQyMF9yZ2IyNF9sYXN4LCB1aW50OF90LCAwKQogICAgIFJH Ql9QQUNLKHIyLCBnMiwgYjIsIHJnYjJfbCwgcmdiMl9oKTsKICAgICBSR0JfU1RPUkUocmdiMV9s LCByZ2IxX2gsIGltYWdlMSk7CiAgICAgUkdCX1NUT1JFKHJnYjJfbCwgcmdiMl9oLCBpbWFnZTIp OwotICAgIERFQUxZVVYyUkdCUkVNQUlOCisgICAgREVBTFlVVjJSR0JMSU5FCiAgICAgWVVWMlJH Ql9SRVMKICAgICBSR0JfUEFDSyhyMSwgZzEsIGIxLCByZ2IxX2wsIHJnYjFfaCk7CiAgICAgUkdC X1NUT1JFX1JFUyhyZ2IxX2wsIHJnYjFfaCwgaW1hZ2UxLCBpbWFnZTIpOworICAgIERFQUxZVVYy UkdCTElORVJFUworICAgIFlVVjJSR0JfUkVTCisgICAgUkdCX1BBQ0socjEsIGcxLCBiMSwgcmdi MV9sLCByZ2IxX2gpOworICAgIEVORFlVVjJSR0JMSU5FKHJnYjFfbCwgcmdiMV9oLCBpbWFnZTEs IGltYWdlMik7CiAgICAgRU5EX0ZVTkMoKQogCiBZVVYyUkdCRlVOQyh5dXY0MjBfYmdyMjRfbGFz eCwgdWludDhfdCwgMCkKQEAgLTI2MiwxMCArMzI2LDE0IEBAIFlVVjJSR0JGVU5DKHl1djQyMF9i Z3IyNF9sYXN4LCB1aW50OF90LCAwKQogICAgIFJHQl9QQUNLKGIyLCBnMiwgcjIsIHJnYjJfbCwg cmdiMl9oKTsKICAgICBSR0JfU1RPUkUocmdiMV9sLCByZ2IxX2gsIGltYWdlMSk7CiAgICAgUkdC X1NUT1JFKHJnYjJfbCwgcmdiMl9oLCBpbWFnZTIpOwotICAgIERFQUxZVVYyUkdCUkVNQUlOCisg ICAgREVBTFlVVjJSR0JMSU5FCiAgICAgWVVWMlJHQl9SRVMKICAgICBSR0JfUEFDSyhiMSwgZzEs IHIxLCByZ2IxX2wsIHJnYjFfaCk7CiAgICAgUkdCX1NUT1JFX1JFUyhyZ2IxX2wsIHJnYjFfaCwg aW1hZ2UxLCBpbWFnZTIpOworICAgIERFQUxZVVYyUkdCTElORVJFUworICAgIFlVVjJSR0JfUkVT CisgICAgUkdCX1BBQ0soYjEsIGcxLCByMSwgcmdiMV9sLCByZ2IxX2gpOworICAgIEVORFlVVjJS R0JMSU5FKHJnYjFfbCwgcmdiMV9oLCBpbWFnZTEsIGltYWdlMik7CiAgICAgRU5EX0ZVTkMoKQog CiBZVVYyUkdCRlVOQzMyKHl1djQyMF9yZ2JhMzJfbGFzeCwgdWludDMyX3QsIDApCkBAIC0yNzUs MTAgKzM0MywxNCBAQCBZVVYyUkdCRlVOQzMyKHl1djQyMF9yZ2JhMzJfbGFzeCwgdWludDMyX3Qs IDApCiAgICAgUkdCMzJfUEFDSyhyMiwgZzIsIGIyLCBhLCByZ2IyX2wsIHJnYjJfaCk7CiAgICAg UkdCMzJfU1RPUkUocmdiMV9sLCByZ2IxX2gsIGltYWdlMSk7CiAgICAgUkdCMzJfU1RPUkUocmdi Ml9sLCByZ2IyX2gsIGltYWdlMik7Ci0gICAgREVBTFlVVjJSR0JSRU1BSU4zMgorICAgIERFQUxZ VVYyUkdCTElORTMyCiAgICAgWVVWMlJHQl9SRVMKICAgICBSR0IzMl9QQUNLKHIxLCBnMSwgYjEs IGEsIHJnYjFfbCwgcmdiMV9oKTsKICAgICBSR0IzMl9TVE9SRV9SRVMocmdiMV9sLCByZ2IxX2gs IGltYWdlMSwgaW1hZ2UyKTsKKyAgICBERUFMWVVWMlJHQkxJTkVSRVMzMgorICAgIFlVVjJSR0Jf UkVTCisgICAgUkdCMzJfUEFDSyhyMSwgZzEsIGIxLCBhLCByZ2IxX2wsIHJnYjFfaCk7CisgICAg RU5EWVVWMlJHQkxJTkUzMihyZ2IxX2wsIHJnYjFfaCwgaW1hZ2UxLCBpbWFnZTIpOwogICAgIEVO RF9GVU5DKCkKIAogWVVWMlJHQkZVTkMzMih5dXY0MjBfYmdyYTMyX2xhc3gsIHVpbnQzMl90LCAw KQpAQCAtMjg4LDEwICszNjAsMTQgQEAgWVVWMlJHQkZVTkMzMih5dXY0MjBfYmdyYTMyX2xhc3gs IHVpbnQzMl90LCAwKQogICAgIFJHQjMyX1BBQ0soYjIsIGcyLCByMiwgYSwgcmdiMl9sLCByZ2Iy X2gpOwogICAgIFJHQjMyX1NUT1JFKHJnYjFfbCwgcmdiMV9oLCBpbWFnZTEpOwogICAgIFJHQjMy X1NUT1JFKHJnYjJfbCwgcmdiMl9oLCBpbWFnZTIpOwotICAgIERFQUxZVVYyUkdCUkVNQUlOMzIK KyAgICBERUFMWVVWMlJHQkxJTkUzMgogICAgIFlVVjJSR0JfUkVTCiAgICAgUkdCMzJfUEFDSyhi MSwgZzEsIHIxLCBhLCByZ2IxX2wsIHJnYjFfaCk7CiAgICAgUkdCMzJfU1RPUkVfUkVTKHJnYjFf bCwgcmdiMV9oLCBpbWFnZTEsIGltYWdlMik7CisgICAgREVBTFlVVjJSR0JMSU5FUkVTMzIKKyAg ICBZVVYyUkdCX1JFUworICAgIFJHQjMyX1BBQ0soYjEsIGcxLCByMSwgYSwgcmdiMV9sLCByZ2Ix X2gpOworICAgIEVORFlVVjJSR0JMSU5FMzIocmdiMV9sLCByZ2IxX2gsIGltYWdlMSwgaW1hZ2Uy KTsKICAgICBFTkRfRlVOQygpCiAKIFlVVjJSR0JGVU5DMzIoeXV2NDIwX2FyZ2IzMl9sYXN4LCB1 aW50MzJfdCwgMCkKQEAgLTMwMSwxMCArMzc3LDE0IEBAIFlVVjJSR0JGVU5DMzIoeXV2NDIwX2Fy Z2IzMl9sYXN4LCB1aW50MzJfdCwgMCkKICAgICBSR0IzMl9QQUNLKGEsIHIyLCBnMiwgYjIsIHJn YjJfbCwgcmdiMl9oKTsKICAgICBSR0IzMl9TVE9SRShyZ2IxX2wsIHJnYjFfaCwgaW1hZ2UxKTsK ICAgICBSR0IzMl9TVE9SRShyZ2IyX2wsIHJnYjJfaCwgaW1hZ2UyKTsKLSAgICBERUFMWVVWMlJH QlJFTUFJTjMyCisgICAgREVBTFlVVjJSR0JMSU5FMzIKICAgICBZVVYyUkdCX1JFUwogICAgIFJH QjMyX1BBQ0soYSwgcjEsIGcxLCBiMSwgcmdiMV9sLCByZ2IxX2gpOwogICAgIFJHQjMyX1NUT1JF X1JFUyhyZ2IxX2wsIHJnYjFfaCwgaW1hZ2UxLCBpbWFnZTIpOworICAgIERFQUxZVVYyUkdCTElO RVJFUzMyCisgICAgWVVWMlJHQl9SRVMKKyAgICBSR0IzMl9QQUNLKGEsIHIxLCBnMSwgYjEsIHJn YjFfbCwgcmdiMV9oKTsKKyAgICBFTkRZVVYyUkdCTElORTMyKHJnYjFfbCwgcmdiMV9oLCBpbWFn ZTEsIGltYWdlMik7CiAgICAgRU5EX0ZVTkMoKQogCiBZVVYyUkdCRlVOQzMyKHl1djQyMF9hYmdy MzJfbGFzeCwgdWludDMyX3QsIDApCkBAIC0zMTQsOCArMzk0LDEyIEBAIFlVVjJSR0JGVU5DMzIo eXV2NDIwX2FiZ3IzMl9sYXN4LCB1aW50MzJfdCwgMCkKICAgICBSR0IzMl9QQUNLKGEsIGIyLCBn MiwgcjIsIHJnYjJfbCwgcmdiMl9oKTsKICAgICBSR0IzMl9TVE9SRShyZ2IxX2wsIHJnYjFfaCwg aW1hZ2UxKTsKICAgICBSR0IzMl9TVE9SRShyZ2IyX2wsIHJnYjJfaCwgaW1hZ2UyKTsKLSAgICBE RUFMWVVWMlJHQlJFTUFJTjMyCisgICAgREVBTFlVVjJSR0JMSU5FMzIKICAgICBZVVYyUkdCX1JF UwogICAgIFJHQjMyX1BBQ0soYSwgYjEsIGcxLCByMSwgcmdiMV9sLCByZ2IxX2gpOwogICAgIFJH QjMyX1NUT1JFX1JFUyhyZ2IxX2wsIHJnYjFfaCwgaW1hZ2UxLCBpbWFnZTIpOworICAgIERFQUxZ VVYyUkdCTElORVJFUzMyCisgICAgWVVWMlJHQl9SRVMKKyAgICBSR0IzMl9QQUNLKGEsIGIxLCBn MSwgcjEsIHJnYjFfbCwgcmdiMV9oKTsKKyAgICBFTkRZVVYyUkdCTElORTMyKHJnYjFfbCwgcmdi MV9oLCBpbWFnZTEsIGltYWdlMik7CiAgICAgRU5EX0ZVTkMoKQotLSAKMi41Mi4wCgoKRnJvbSA3 NTcyMmFlZmE3NDFiNWVkYjBhYjk3ZTY5Nzg4OTVhMThjZmEwOTIxIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBQaW90ciBQYXdsb3dza2kgPHBAcGVya2VsZS5jYz4KRGF0ZTogVGh1LCAz MCBPY3QgMjAyNSAxNDo0MTo0MCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTMzLzMwNF0gQWxsOiBS ZW1vdmVkIHJlbGlhbmNlIG9uIGNvbXBpbGVyIHBlcmZvcm1pbmcgZGVhZAogY29kZSBlbGltaW5h dGlvbiwgY2hhbmdlZCB2YXJpb3VzIG1hY3JvIGNvbnN0YW50IGNoZWNrcyBmcm9tIGlmKCkgdG8g I2lmCgotLS0KIGxpYmF2Y29kZWMvYXZjb2RlYy5jICAgICAgICAgICAgICAgICB8ICA1ICstCiBs aWJhdmNvZGVjL2VuY29kZS5jICAgICAgICAgICAgICAgICAgfCAxNyArKystLS0KIGxpYmF2Y29k ZWMveDg2L2ZsYWNkc3BfaW5pdC5jICAgICAgICB8IDE2ICsrKystLQogbGliYXZjb2RlYy94ODYv aGV2Yy9kc3BfaW5pdC5jICAgICAgIHwgODQgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQog bGliYXZjb2RlYy94ODYvaWRjdGRzcF9pbml0LmMgICAgICAgIHwgIDkgKystCiBsaWJhdmNvZGVj L3g4Ni9tbHBkc3BfaW5pdC5jICAgICAgICAgfCAgNiArLQogbGliYXZjb2RlYy94ODYvdjIxMC1p bml0LmMgICAgICAgICAgIHwgMjQgKysrKystLS0KIGxpYmF2Y29kZWMveDg2L3YyMTBlbmNfaW5p dC5jICAgICAgICB8ICAzICstCiBsaWJhdmZpbHRlci94ODYvY29sb3JzcGFjZWRzcF9pbml0LmMg fCAgNCArLQogbGliYXZmaWx0ZXIveDg2L2ZfZWJ1cjEyOF9pbml0LmMgICAgIHwgIDQgKy0KIGxp YmF2ZmlsdGVyL3g4Ni92Zl9hdGFkZW5vaXNlX2luaXQuYyB8ICA2ICstCiBsaWJhdmZpbHRlci94 ODYvdmZfYndkaWZfaW5pdC5jICAgICAgfCAxMiArKy0tCiBsaWJhdmZpbHRlci94ODYvdmZfbmxt ZWFuc19pbml0LmMgICAgfCAgNCArLQogbGliYXZmaWx0ZXIveDg2L3ZmX3NzaW1faW5pdC5jICAg ICAgIHwgIDQgKy0KIGxpYmF2ZmlsdGVyL3g4Ni92Zl93M2ZkaWZfaW5pdC5jICAgICB8ICA0ICst CiAxNSBmaWxlcyBjaGFuZ2VkLCAxMjUgaW5zZXJ0aW9ucygrKSwgNzcgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hdmNvZGVjLmMgYi9saWJhdmNvZGVjL2F2Y29kZWMuYwpp bmRleCAxNGFjYTBmMTY0Li5kYWNkZmJhOGRhIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2F2Y29k ZWMuYworKysgYi9saWJhdmNvZGVjL2F2Y29kZWMuYwpAQCAtNDM3LDEwICs0MzcsMTEgQEAgYXZf Y29sZCB2b2lkIGZmX2NvZGVjX2Nsb3NlKEFWQ29kZWNDb250ZXh0ICphdmN0eCkKICAgICBpZiAo YXZjb2RlY19pc19vcGVuKGF2Y3R4KSkgewogICAgICAgICBBVkNvZGVjSW50ZXJuYWwgKmF2Y2kg PSBhdmN0eC0+aW50ZXJuYWw7CiAKLSAgICAgICAgaWYgKENPTkZJR19GUkFNRV9USFJFQURfRU5D T0RFUiAmJgotICAgICAgICAgICAgYXZjaS0+ZnJhbWVfdGhyZWFkX2VuY29kZXIgJiYgYXZjdHgt PnRocmVhZF9jb3VudCA+IDEpIHsKKyNpZiBDT05GSUdfRlJBTUVfVEhSRUFEX0VOQ09ERVIKKyAg ICAgICAgaWYgKGF2Y2ktPmZyYW1lX3RocmVhZF9lbmNvZGVyICYmIGF2Y3R4LT50aHJlYWRfY291 bnQgPiAxKSB7CiAgICAgICAgICAgICBmZl9mcmFtZV90aHJlYWRfZW5jb2Rlcl9mcmVlKGF2Y3R4 KTsKICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlmIChIQVZFX1RIUkVBRFMgJiYgYXZjaS0+ dGhyZWFkX2N0eCkKICAgICAgICAgICAgIGZmX3RocmVhZF9mcmVlKGF2Y3R4KTsKICAgICAgICAg aWYgKGF2Y2ktPm5lZWRzX2Nsb3NlICYmIGZmY29kZWMoYXZjdHgtPmNvZGVjKS0+Y2xvc2UpCmRp ZmYgLS1naXQgYS9saWJhdmNvZGVjL2VuY29kZS5jIGIvbGliYXZjb2RlYy9lbmNvZGUuYwppbmRl eCA2ZTA2MjBhMzZlLi40MDdiZDg5MjBmIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2VuY29kZS5j CisrKyBiL2xpYmF2Y29kZWMvZW5jb2RlLmMKQEAgLTMxNywxMiArMzE3LDEzIEBAIHN0YXRpYyBp bnQgZW5jb2RlX3NpbXBsZV9pbnRlcm5hbChBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWUGFja2V0 ICphdnBrdCkKIAogICAgIGF2X2Fzc2VydDAoY29kZWMtPmNiX3R5cGUgPT0gRkZfQ09ERUNfQ0Jf VFlQRV9FTkNPREUpOwogCi0gICAgaWYgKENPTkZJR19GUkFNRV9USFJFQURfRU5DT0RFUiAmJiBh dmNpLT5mcmFtZV90aHJlYWRfZW5jb2RlcikKKyNpZiBDT05GSUdfRlJBTUVfVEhSRUFEX0VOQ09E RVIKKyAgICBpZiAoYXZjaS0+ZnJhbWVfdGhyZWFkX2VuY29kZXIpCiAgICAgICAgIC8qIFRoaXMg d2lsbCB1bnJlZiBmcmFtZS4gKi8KICAgICAgICAgcmV0ID0gZmZfdGhyZWFkX3ZpZGVvX2VuY29k ZV9mcmFtZShhdmN0eCwgYXZwa3QsIGZyYW1lLCAmZ290X3BhY2tldCk7Ci0gICAgZWxzZSB7Cisg ICAgZWxzZQorI2VuZGlmCiAgICAgICAgIHJldCA9IGZmX2VuY29kZV9lbmNvZGVfY2IoYXZjdHgs IGF2cGt0LCBmcmFtZSwgJmdvdF9wYWNrZXQpOwotICAgIH0KIAogICAgIGlmIChhdmNpLT5kcmFp bmluZyAmJiAhZ290X3BhY2tldCkKICAgICAgICAgYXZjaS0+ZHJhaW5pbmdfZG9uZSA9IDE7CkBA IC04MjUsMTEgKzgyNiwxMSBAQCBpbnQgZmZfZW5jb2RlX3ByZWluaXQoQVZDb2RlY0NvbnRleHQg KmF2Y3R4KQogICAgICAgICBtZW1jcHkoc2RfcGFja2V0LT5kYXRhLCBzZF9mcmFtZS0+ZGF0YSwg c2RfZnJhbWUtPnNpemUpOwogICAgIH0KIAotICAgIGlmIChDT05GSUdfRlJBTUVfVEhSRUFEX0VO Q09ERVIpIHsKLSAgICAgICAgcmV0ID0gZmZfZnJhbWVfdGhyZWFkX2VuY29kZXJfaW5pdChhdmN0 eCk7Ci0gICAgICAgIGlmIChyZXQgPCAwKQotICAgICAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9 CisjaWYgQ09ORklHX0ZSQU1FX1RIUkVBRF9FTkNPREVSCisgICAgcmV0ID0gZmZfZnJhbWVfdGhy ZWFkX2VuY29kZXJfaW5pdChhdmN0eCk7CisgICAgaWYgKHJldCA8IDApCisgICAgICAgIHJldHVy biByZXQ7CisjZW5kaWYKIAogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvbGliYXZjb2Rl Yy94ODYvZmxhY2RzcF9pbml0LmMgYi9saWJhdmNvZGVjL3g4Ni9mbGFjZHNwX2luaXQuYwppbmRl eCBmYTk5M2QzNDY2Li4zODY5NTViYTY3IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4Ni9mbGFj ZHNwX2luaXQuYworKysgYi9saWJhdmNvZGVjL3g4Ni9mbGFjZHNwX2luaXQuYwpAQCAtODUsOCAr ODUsMTAgQEAgYXZfY29sZCB2b2lkIGZmX2ZsYWNkc3BfaW5pdF94ODYoRkxBQ0RTUENvbnRleHQg KmMsIGVudW0gQVZTYW1wbGVGb3JtYXQgZm10LCBpbnQKICAgICAgICAgICAgICAgICBjLT5kZWNv cnJlbGF0ZVswXSA9IGZmX2ZsYWNfZGVjb3JyZWxhdGVfaW5kZXA0XzE2X3Nzc2UzOwogICAgICAg ICAgICAgZWxzZSBpZiAoY2hhbm5lbHMgPT0gNikKICAgICAgICAgICAgICAgICBjLT5kZWNvcnJl bGF0ZVswXSA9IGZmX2ZsYWNfZGVjb3JyZWxhdGVfaW5kZXA2XzE2X3Nzc2UzOwotICAgICAgICAg ICAgZWxzZSBpZiAoQVJDSF9YODZfNjQgJiYgY2hhbm5lbHMgPT0gOCkKKyNpZiBBUkNIX1g4Nl82 NAorICAgICAgICAgICAgZWxzZSBpZiAoY2hhbm5lbHMgPT0gOCkKICAgICAgICAgICAgICAgICBj LT5kZWNvcnJlbGF0ZVswXSA9IGZmX2ZsYWNfZGVjb3JyZWxhdGVfaW5kZXA4XzE2X3Nzc2UzOwor I2VuZGlmCiAgICAgICAgIH0gZWxzZSBpZiAoZm10ID09IEFWX1NBTVBMRV9GTVRfUzMyKSB7CiAg ICAgICAgICAgICBpZiAoY2hhbm5lbHMgPT0gMikKICAgICAgICAgICAgICAgICBjLT5kZWNvcnJl bGF0ZVswXSA9IGZmX2ZsYWNfZGVjb3JyZWxhdGVfaW5kZXAyXzMyX3Nzc2UzOwpAQCAtOTQsOCAr OTYsMTAgQEAgYXZfY29sZCB2b2lkIGZmX2ZsYWNkc3BfaW5pdF94ODYoRkxBQ0RTUENvbnRleHQg KmMsIGVudW0gQVZTYW1wbGVGb3JtYXQgZm10LCBpbnQKICAgICAgICAgICAgICAgICBjLT5kZWNv cnJlbGF0ZVswXSA9IGZmX2ZsYWNfZGVjb3JyZWxhdGVfaW5kZXA0XzMyX3Nzc2UzOwogICAgICAg ICAgICAgZWxzZSBpZiAoY2hhbm5lbHMgPT0gNikKICAgICAgICAgICAgICAgICBjLT5kZWNvcnJl bGF0ZVswXSA9IGZmX2ZsYWNfZGVjb3JyZWxhdGVfaW5kZXA2XzMyX3Nzc2UzOwotICAgICAgICAg ICAgZWxzZSBpZiAoQVJDSF9YODZfNjQgJiYgY2hhbm5lbHMgPT0gOCkKKyNpZiBBUkNIX1g4Nl82 NAorICAgICAgICAgICAgZWxzZSBpZiAoY2hhbm5lbHMgPT0gOCkKICAgICAgICAgICAgICAgICBj LT5kZWNvcnJlbGF0ZVswXSA9IGZmX2ZsYWNfZGVjb3JyZWxhdGVfaW5kZXA4XzMyX3Nzc2UzOwor I2VuZGlmCiAgICAgICAgIH0KICAgICB9CiAgICAgaWYgKEVYVEVSTkFMX1NTRTQoY3B1X2ZsYWdz KSkgewpAQCAtMTA1LDE1ICsxMDksMTkgQEAgYXZfY29sZCB2b2lkIGZmX2ZsYWNkc3BfaW5pdF94 ODYoRkxBQ0RTUENvbnRleHQgKmMsIGVudW0gQVZTYW1wbGVGb3JtYXQgZm10LCBpbnQKICAgICB9 CiAgICAgaWYgKEVYVEVSTkFMX0FWWChjcHVfZmxhZ3MpKSB7CiAgICAgICAgIGlmIChmbXQgPT0g QVZfU0FNUExFX0ZNVF9TMTYpIHsKLSAgICAgICAgICAgIGlmIChBUkNIX1g4Nl82NCAmJiBjaGFu bmVscyA9PSA4KQorI2lmIEFSQ0hfWDg2XzY0CisgICAgICAgICAgICBpZiAoY2hhbm5lbHMgPT0g OCkKICAgICAgICAgICAgICAgICBjLT5kZWNvcnJlbGF0ZVswXSA9IGZmX2ZsYWNfZGVjb3JyZWxh dGVfaW5kZXA4XzE2X2F2eDsKKyNlbmRpZgogICAgICAgICB9IGVsc2UgaWYgKGZtdCA9PSBBVl9T QU1QTEVfRk1UX1MzMikgewogICAgICAgICAgICAgaWYgKGNoYW5uZWxzID09IDQpCiAgICAgICAg ICAgICAgICAgYy0+ZGVjb3JyZWxhdGVbMF0gPSBmZl9mbGFjX2RlY29ycmVsYXRlX2luZGVwNF8z Ml9hdng7CiAgICAgICAgICAgICBlbHNlIGlmIChjaGFubmVscyA9PSA2KQogICAgICAgICAgICAg ICAgIGMtPmRlY29ycmVsYXRlWzBdID0gZmZfZmxhY19kZWNvcnJlbGF0ZV9pbmRlcDZfMzJfYXZ4 OwotICAgICAgICAgICAgZWxzZSBpZiAoQVJDSF9YODZfNjQgJiYgY2hhbm5lbHMgPT0gOCkKKyNp ZiBBUkNIX1g4Nl82NAorICAgICAgICAgICAgZWxzZSBpZiAoY2hhbm5lbHMgPT0gOCkKICAgICAg ICAgICAgICAgICBjLT5kZWNvcnJlbGF0ZVswXSA9IGZmX2ZsYWNfZGVjb3JyZWxhdGVfaW5kZXA4 XzMyX2F2eDsKKyNlbmRpZgogICAgICAgICB9CiAgICAgfQogICAgIGlmIChFWFRFUk5BTF9YT1Ao Y3B1X2ZsYWdzKSkgewpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvaGV2Yy9kc3BfaW5pdC5j IGIvbGliYXZjb2RlYy94ODYvaGV2Yy9kc3BfaW5pdC5jCmluZGV4IGYxNTU4YjdlM2UuLjViMmIx MGYzM2EgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L2hldmMvZHNwX2luaXQuYworKysgYi9s aWJhdmNvZGVjL3g4Ni9oZXZjL2RzcF9pbml0LmMKQEAgLTgyMSwxMyArODIxLDEzIEBAIHZvaWQg ZmZfaGV2Y19kc3BfaW5pdF94ODYoSEVWQ0RTUENvbnRleHQgKmMsIGNvbnN0IGludCBiaXRfZGVw dGgpCiAgICAgICAgIGlmIChFWFRFUk5BTF9TU0UyKGNwdV9mbGFncykpIHsKICAgICAgICAgICAg IGMtPmhldmNfdl9sb29wX2ZpbHRlcl9jaHJvbWEgPSBmZl9oZXZjX3ZfbG9vcF9maWx0ZXJfY2hy b21hXzhfc3NlMjsKICAgICAgICAgICAgIGMtPmhldmNfaF9sb29wX2ZpbHRlcl9jaHJvbWEgPSBm Zl9oZXZjX2hfbG9vcF9maWx0ZXJfY2hyb21hXzhfc3NlMjsKLSAgICAgICAgICAgIGlmIChBUkNI X1g4Nl82NCkgewotICAgICAgICAgICAgICAgIGMtPmhldmNfdl9sb29wX2ZpbHRlcl9sdW1hID0g ZmZfaGV2Y192X2xvb3BfZmlsdGVyX2x1bWFfOF9zc2UyOwotICAgICAgICAgICAgICAgIGMtPmhl dmNfaF9sb29wX2ZpbHRlcl9sdW1hID0gZmZfaGV2Y19oX2xvb3BfZmlsdGVyX2x1bWFfOF9zc2Uy OworI2lmIEFSQ0hfWDg2XzY0CisgICAgICAgICAgICBjLT5oZXZjX3ZfbG9vcF9maWx0ZXJfbHVt YSA9IGZmX2hldmNfdl9sb29wX2ZpbHRlcl9sdW1hXzhfc3NlMjsKKyAgICAgICAgICAgIGMtPmhl dmNfaF9sb29wX2ZpbHRlcl9sdW1hID0gZmZfaGV2Y19oX2xvb3BfZmlsdGVyX2x1bWFfOF9zc2Uy OwogCi0gICAgICAgICAgICAgICAgYy0+aWRjdFsyXSA9IGZmX2hldmNfaWRjdF8xNngxNl84X3Nz ZTI7Ci0gICAgICAgICAgICAgICAgYy0+aWRjdFszXSA9IGZmX2hldmNfaWRjdF8zMngzMl84X3Nz ZTI7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBjLT5pZGN0WzJdID0gZmZfaGV2Y19pZGN0 XzE2eDE2Xzhfc3NlMjsKKyAgICAgICAgICAgIGMtPmlkY3RbM10gPSBmZl9oZXZjX2lkY3RfMzJ4 MzJfOF9zc2UyOworI2VuZGlmCiAgICAgICAgICAgICBTQU9fQkFORF9JTklUKDgsIHNzZTIpOwog CiAgICAgICAgICAgICBjLT5pZGN0X2RjWzBdID0gZmZfaGV2Y19pZGN0XzR4NF9kY184X3NzZTI7 CkBAIC04NDMsMTAgKzg0MywxMCBAQCB2b2lkIGZmX2hldmNfZHNwX2luaXRfeDg2KEhFVkNEU1BD b250ZXh0ICpjLCBjb25zdCBpbnQgYml0X2RlcHRoKQogICAgICAgICAgICAgYy0+YWRkX3Jlc2lk dWFsWzNdID0gZmZfaGV2Y19hZGRfcmVzaWR1YWxfMzJfOF9zc2UyOwogICAgICAgICB9CiAgICAg ICAgIGlmIChFWFRFUk5BTF9TU1NFMyhjcHVfZmxhZ3MpKSB7Ci0gICAgICAgICAgICBpZihBUkNI X1g4Nl82NCkgewotICAgICAgICAgICAgICAgIGMtPmhldmNfdl9sb29wX2ZpbHRlcl9sdW1hID0g ZmZfaGV2Y192X2xvb3BfZmlsdGVyX2x1bWFfOF9zc3NlMzsKLSAgICAgICAgICAgICAgICBjLT5o ZXZjX2hfbG9vcF9maWx0ZXJfbHVtYSA9IGZmX2hldmNfaF9sb29wX2ZpbHRlcl9sdW1hXzhfc3Nz ZTM7Ci0gICAgICAgICAgICB9CisjaWYgQVJDSF9YODZfNjQKKyAgICAgICAgICAgIGMtPmhldmNf dl9sb29wX2ZpbHRlcl9sdW1hID0gZmZfaGV2Y192X2xvb3BfZmlsdGVyX2x1bWFfOF9zc3NlMzsK KyAgICAgICAgICAgIGMtPmhldmNfaF9sb29wX2ZpbHRlcl9sdW1hID0gZmZfaGV2Y19oX2xvb3Bf ZmlsdGVyX2x1bWFfOF9zc3NlMzsKKyNlbmRpZgogICAgICAgICAgICAgU0FPX0VER0VfSU5JVCg4 LCBzc3NlMyk7CiAgICAgICAgIH0KICNpZiBIQVZFX1NTRTRfRVhURVJOQUwgJiYgQVJDSF9YODZf NjQKQEAgLTg2NiwxMyArODY2LDEzIEBAIHZvaWQgZmZfaGV2Y19kc3BfaW5pdF94ODYoSEVWQ0RT UENvbnRleHQgKmMsIGNvbnN0IGludCBiaXRfZGVwdGgpCiAgICAgICAgIGlmIChFWFRFUk5BTF9B VlgoY3B1X2ZsYWdzKSkgewogICAgICAgICAgICAgYy0+aGV2Y192X2xvb3BfZmlsdGVyX2Nocm9t YSA9IGZmX2hldmNfdl9sb29wX2ZpbHRlcl9jaHJvbWFfOF9hdng7CiAgICAgICAgICAgICBjLT5o ZXZjX2hfbG9vcF9maWx0ZXJfY2hyb21hID0gZmZfaGV2Y19oX2xvb3BfZmlsdGVyX2Nocm9tYV84 X2F2eDsKLSAgICAgICAgICAgIGlmIChBUkNIX1g4Nl82NCkgewotICAgICAgICAgICAgICAgIGMt PmhldmNfdl9sb29wX2ZpbHRlcl9sdW1hID0gZmZfaGV2Y192X2xvb3BfZmlsdGVyX2x1bWFfOF9h dng7Ci0gICAgICAgICAgICAgICAgYy0+aGV2Y19oX2xvb3BfZmlsdGVyX2x1bWEgPSBmZl9oZXZj X2hfbG9vcF9maWx0ZXJfbHVtYV84X2F2eDsKKyNpZiBBUkNIX1g4Nl82NAorICAgICAgICAgICAg Yy0+aGV2Y192X2xvb3BfZmlsdGVyX2x1bWEgPSBmZl9oZXZjX3ZfbG9vcF9maWx0ZXJfbHVtYV84 X2F2eDsKKyAgICAgICAgICAgIGMtPmhldmNfaF9sb29wX2ZpbHRlcl9sdW1hID0gZmZfaGV2Y19o X2xvb3BfZmlsdGVyX2x1bWFfOF9hdng7CiAKLSAgICAgICAgICAgICAgICBjLT5pZGN0WzJdID0g ZmZfaGV2Y19pZGN0XzE2eDE2XzhfYXZ4OwotICAgICAgICAgICAgICAgIGMtPmlkY3RbM10gPSBm Zl9oZXZjX2lkY3RfMzJ4MzJfOF9hdng7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBjLT5p ZGN0WzJdID0gZmZfaGV2Y19pZGN0XzE2eDE2XzhfYXZ4OworICAgICAgICAgICAgYy0+aWRjdFsz XSA9IGZmX2hldmNfaWRjdF8zMngzMl84X2F2eDsKKyNlbmRpZgogICAgICAgICAgICAgU0FPX0JB TkRfSU5JVCg4LCBhdngpOwogCiAgICAgICAgICAgICBjLT5pZGN0WzBdID0gZmZfaGV2Y19pZGN0 XzR4NF84X2F2eDsKQEAgLTk4Miw3ICs5ODIsOCBAQCB2b2lkIGZmX2hldmNfZHNwX2luaXRfeDg2 KEhFVkNEU1BDb250ZXh0ICpjLCBjb25zdCBpbnQgYml0X2RlcHRoKQogICAgICAgICAgICAgYy0+ YWRkX3Jlc2lkdWFsWzNdID0gZmZfaGV2Y19hZGRfcmVzaWR1YWxfMzJfOF9hdngyOwogICAgICAg ICB9CiAjZW5kaWYgLyogSEFWRV9BVlgyX0VYVEVSTkFMICovCi0gICAgICAgIGlmIChFWFRFUk5B TF9BVlg1MTJJQ0woY3B1X2ZsYWdzKSAmJiBBUkNIX1g4Nl82NCkgeworI2lmIEFSQ0hfWDg2XzY0 CisgICAgICAgIGlmIChFWFRFUk5BTF9BVlg1MTJJQ0woY3B1X2ZsYWdzKSkgewogICAgICAgICAg ICAgYy0+cHV0X2hldmNfcXBlbFsxXVswXVsxXSA9IGZmX2hldmNfcHV0X3FwZWxfaDRfOF9hdng1 MTJpY2w7CiAgICAgICAgICAgICBjLT5wdXRfaGV2Y19xcGVsWzNdWzBdWzFdID0gZmZfaGV2Y19w dXRfcXBlbF9oOF84X2F2eDUxMmljbDsKICAgICAgICAgICAgIGMtPnB1dF9oZXZjX3FwZWxbNV1b MF1bMV0gPSBmZl9oZXZjX3B1dF9xcGVsX2gxNl84X2F2eDUxMmljbDsKQEAgLTk5MCw2ICs5OTEs NyBAQCB2b2lkIGZmX2hldmNfZHNwX2luaXRfeDg2KEhFVkNEU1BDb250ZXh0ICpjLCBjb25zdCBp bnQgYml0X2RlcHRoKQogICAgICAgICAgICAgYy0+cHV0X2hldmNfcXBlbFs5XVswXVsxXSA9IGZm X2hldmNfcHV0X3FwZWxfaDY0XzhfYXZ4NTEyaWNsOwogICAgICAgICAgICAgYy0+cHV0X2hldmNf cXBlbFszXVsxXVsxXSA9IGZmX2hldmNfcHV0X3FwZWxfaHY4XzhfYXZ4NTEyaWNsOwogICAgICAg ICB9CisjZW5kaWYKICAgICB9IGVsc2UgaWYgKGJpdF9kZXB0aCA9PSAxMCkgewogICAgICAgICBp ZiAoRVhURVJOQUxfTU1YRVhUKGNwdV9mbGFncykpIHsKICAgICAgICAgICAgIGMtPmFkZF9yZXNp ZHVhbFswXSA9IGZmX2hldmNfYWRkX3Jlc2lkdWFsXzRfMTBfbW14ZXh0OwpAQCAtOTk3LDEzICs5 OTksMTMgQEAgdm9pZCBmZl9oZXZjX2RzcF9pbml0X3g4NihIRVZDRFNQQ29udGV4dCAqYywgY29u c3QgaW50IGJpdF9kZXB0aCkKICAgICAgICAgaWYgKEVYVEVSTkFMX1NTRTIoY3B1X2ZsYWdzKSkg ewogICAgICAgICAgICAgYy0+aGV2Y192X2xvb3BfZmlsdGVyX2Nocm9tYSA9IGZmX2hldmNfdl9s b29wX2ZpbHRlcl9jaHJvbWFfMTBfc3NlMjsKICAgICAgICAgICAgIGMtPmhldmNfaF9sb29wX2Zp bHRlcl9jaHJvbWEgPSBmZl9oZXZjX2hfbG9vcF9maWx0ZXJfY2hyb21hXzEwX3NzZTI7Ci0gICAg ICAgICAgICBpZiAoQVJDSF9YODZfNjQpIHsKLSAgICAgICAgICAgICAgICBjLT5oZXZjX3ZfbG9v cF9maWx0ZXJfbHVtYSA9IGZmX2hldmNfdl9sb29wX2ZpbHRlcl9sdW1hXzEwX3NzZTI7Ci0gICAg ICAgICAgICAgICAgYy0+aGV2Y19oX2xvb3BfZmlsdGVyX2x1bWEgPSBmZl9oZXZjX2hfbG9vcF9m aWx0ZXJfbHVtYV8xMF9zc2UyOworI2lmIEFSQ0hfWDg2XzY0CisgICAgICAgICAgICBjLT5oZXZj X3ZfbG9vcF9maWx0ZXJfbHVtYSA9IGZmX2hldmNfdl9sb29wX2ZpbHRlcl9sdW1hXzEwX3NzZTI7 CisgICAgICAgICAgICBjLT5oZXZjX2hfbG9vcF9maWx0ZXJfbHVtYSA9IGZmX2hldmNfaF9sb29w X2ZpbHRlcl9sdW1hXzEwX3NzZTI7CiAKLSAgICAgICAgICAgICAgICBjLT5pZGN0WzJdID0gZmZf aGV2Y19pZGN0XzE2eDE2XzEwX3NzZTI7Ci0gICAgICAgICAgICAgICAgYy0+aWRjdFszXSA9IGZm X2hldmNfaWRjdF8zMngzMl8xMF9zc2UyOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgYy0+ aWRjdFsyXSA9IGZmX2hldmNfaWRjdF8xNngxNl8xMF9zc2UyOworICAgICAgICAgICAgYy0+aWRj dFszXSA9IGZmX2hldmNfaWRjdF8zMngzMl8xMF9zc2UyOworI2VuZGlmCiAgICAgICAgICAgICBT QU9fQkFORF9JTklUKDEwLCBzc2UyKTsKICAgICAgICAgICAgIFNBT19FREdFX0lOSVQoMTAsIHNz ZTIpOwogCkBAIC0xMDE5LDEwICsxMDIxLDEyIEBAIHZvaWQgZmZfaGV2Y19kc3BfaW5pdF94ODYo SEVWQ0RTUENvbnRleHQgKmMsIGNvbnN0IGludCBiaXRfZGVwdGgpCiAgICAgICAgICAgICBjLT5h ZGRfcmVzaWR1YWxbMl0gPSBmZl9oZXZjX2FkZF9yZXNpZHVhbF8xNl8xMF9zc2UyOwogICAgICAg ICAgICAgYy0+YWRkX3Jlc2lkdWFsWzNdID0gZmZfaGV2Y19hZGRfcmVzaWR1YWxfMzJfMTBfc3Nl MjsKICAgICAgICAgfQotICAgICAgICBpZiAoRVhURVJOQUxfU1NTRTMoY3B1X2ZsYWdzKSAmJiBB UkNIX1g4Nl82NCkgeworI2lmIEFSQ0hfWDg2XzY0CisgICAgICAgIGlmIChFWFRFUk5BTF9TU1NF MyhjcHVfZmxhZ3MpKSB7CiAgICAgICAgICAgICBjLT5oZXZjX3ZfbG9vcF9maWx0ZXJfbHVtYSA9 IGZmX2hldmNfdl9sb29wX2ZpbHRlcl9sdW1hXzEwX3Nzc2UzOwogICAgICAgICAgICAgYy0+aGV2 Y19oX2xvb3BfZmlsdGVyX2x1bWEgPSBmZl9oZXZjX2hfbG9vcF9maWx0ZXJfbHVtYV8xMF9zc3Nl MzsKICAgICAgICAgfQorI2VuZGlmCiAjaWYgSEFWRV9TU0U0X0VYVEVSTkFMICYmIEFSQ0hfWDg2 XzY0CiAgICAgICAgIGlmIChFWFRFUk5BTF9TU0U0KGNwdV9mbGFncykpIHsKICAgICAgICAgICAg IEVQRUxfTElOS1MoYy0+cHV0X2hldmNfZXBlbCwgMCwgMCwgcGVsX3BpeGVscywgMTAsIHNzZTQp OwpAQCAtMTAzOSwxMyArMTA0MywxMyBAQCB2b2lkIGZmX2hldmNfZHNwX2luaXRfeDg2KEhFVkNE U1BDb250ZXh0ICpjLCBjb25zdCBpbnQgYml0X2RlcHRoKQogICAgICAgICBpZiAoRVhURVJOQUxf QVZYKGNwdV9mbGFncykpIHsKICAgICAgICAgICAgIGMtPmhldmNfdl9sb29wX2ZpbHRlcl9jaHJv bWEgPSBmZl9oZXZjX3ZfbG9vcF9maWx0ZXJfY2hyb21hXzEwX2F2eDsKICAgICAgICAgICAgIGMt PmhldmNfaF9sb29wX2ZpbHRlcl9jaHJvbWEgPSBmZl9oZXZjX2hfbG9vcF9maWx0ZXJfY2hyb21h XzEwX2F2eDsKLSAgICAgICAgICAgIGlmIChBUkNIX1g4Nl82NCkgewotICAgICAgICAgICAgICAg IGMtPmhldmNfdl9sb29wX2ZpbHRlcl9sdW1hID0gZmZfaGV2Y192X2xvb3BfZmlsdGVyX2x1bWFf MTBfYXZ4OwotICAgICAgICAgICAgICAgIGMtPmhldmNfaF9sb29wX2ZpbHRlcl9sdW1hID0gZmZf aGV2Y19oX2xvb3BfZmlsdGVyX2x1bWFfMTBfYXZ4OworI2lmIEFSQ0hfWDg2XzY0CisgICAgICAg ICAgICBjLT5oZXZjX3ZfbG9vcF9maWx0ZXJfbHVtYSA9IGZmX2hldmNfdl9sb29wX2ZpbHRlcl9s dW1hXzEwX2F2eDsKKyAgICAgICAgICAgIGMtPmhldmNfaF9sb29wX2ZpbHRlcl9sdW1hID0gZmZf aGV2Y19oX2xvb3BfZmlsdGVyX2x1bWFfMTBfYXZ4OwogCi0gICAgICAgICAgICAgICAgYy0+aWRj dFsyXSA9IGZmX2hldmNfaWRjdF8xNngxNl8xMF9hdng7Ci0gICAgICAgICAgICAgICAgYy0+aWRj dFszXSA9IGZmX2hldmNfaWRjdF8zMngzMl8xMF9hdng7Ci0gICAgICAgICAgICB9CisgICAgICAg ICAgICBjLT5pZGN0WzJdID0gZmZfaGV2Y19pZGN0XzE2eDE2XzEwX2F2eDsKKyAgICAgICAgICAg IGMtPmlkY3RbM10gPSBmZl9oZXZjX2lkY3RfMzJ4MzJfMTBfYXZ4OworI2VuZGlmCiAKICAgICAg ICAgICAgIGMtPmlkY3RbMF0gPSBmZl9oZXZjX2lkY3RfNHg0XzEwX2F2eDsKICAgICAgICAgICAg IGMtPmlkY3RbMV0gPSBmZl9oZXZjX2lkY3RfOHg4XzEwX2F2eDsKQEAgLTEyMTYsMTAgKzEyMjAs MTAgQEAgdm9pZCBmZl9oZXZjX2RzcF9pbml0X3g4NihIRVZDRFNQQ29udGV4dCAqYywgY29uc3Qg aW50IGJpdF9kZXB0aCkKICAgICAgICAgaWYgKEVYVEVSTkFMX1NTRTIoY3B1X2ZsYWdzKSkgewog ICAgICAgICAgICAgYy0+aGV2Y192X2xvb3BfZmlsdGVyX2Nocm9tYSA9IGZmX2hldmNfdl9sb29w X2ZpbHRlcl9jaHJvbWFfMTJfc3NlMjsKICAgICAgICAgICAgIGMtPmhldmNfaF9sb29wX2ZpbHRl cl9jaHJvbWEgPSBmZl9oZXZjX2hfbG9vcF9maWx0ZXJfY2hyb21hXzEyX3NzZTI7Ci0gICAgICAg ICAgICBpZiAoQVJDSF9YODZfNjQpIHsKLSAgICAgICAgICAgICAgICBjLT5oZXZjX3ZfbG9vcF9m aWx0ZXJfbHVtYSA9IGZmX2hldmNfdl9sb29wX2ZpbHRlcl9sdW1hXzEyX3NzZTI7Ci0gICAgICAg ICAgICAgICAgYy0+aGV2Y19oX2xvb3BfZmlsdGVyX2x1bWEgPSBmZl9oZXZjX2hfbG9vcF9maWx0 ZXJfbHVtYV8xMl9zc2UyOwotICAgICAgICAgICAgfQorI2lmIEFSQ0hfWDg2XzY0CisgICAgICAg ICAgICBjLT5oZXZjX3ZfbG9vcF9maWx0ZXJfbHVtYSA9IGZmX2hldmNfdl9sb29wX2ZpbHRlcl9s dW1hXzEyX3NzZTI7CisgICAgICAgICAgICBjLT5oZXZjX2hfbG9vcF9maWx0ZXJfbHVtYSA9IGZm X2hldmNfaF9sb29wX2ZpbHRlcl9sdW1hXzEyX3NzZTI7CisjZW5kaWYKICAgICAgICAgICAgIFNB T19CQU5EX0lOSVQoMTIsIHNzZTIpOwogICAgICAgICAgICAgU0FPX0VER0VfSU5JVCgxMiwgc3Nl Mik7CiAKQEAgLTEyMjgsMTAgKzEyMzIsMTIgQEAgdm9pZCBmZl9oZXZjX2RzcF9pbml0X3g4NihI RVZDRFNQQ29udGV4dCAqYywgY29uc3QgaW50IGJpdF9kZXB0aCkKICAgICAgICAgICAgIGMtPmlk Y3RfZGNbMl0gPSBmZl9oZXZjX2lkY3RfMTZ4MTZfZGNfMTJfc3NlMjsKICAgICAgICAgICAgIGMt PmlkY3RfZGNbM10gPSBmZl9oZXZjX2lkY3RfMzJ4MzJfZGNfMTJfc3NlMjsKICAgICAgICAgfQot ICAgICAgICBpZiAoRVhURVJOQUxfU1NTRTMoY3B1X2ZsYWdzKSAmJiBBUkNIX1g4Nl82NCkgewor I2lmIEFSQ0hfWDg2XzY0CisgICAgICAgIGlmIChFWFRFUk5BTF9TU1NFMyhjcHVfZmxhZ3MpKSB7 CiAgICAgICAgICAgICBjLT5oZXZjX3ZfbG9vcF9maWx0ZXJfbHVtYSA9IGZmX2hldmNfdl9sb29w X2ZpbHRlcl9sdW1hXzEyX3Nzc2UzOwogICAgICAgICAgICAgYy0+aGV2Y19oX2xvb3BfZmlsdGVy X2x1bWEgPSBmZl9oZXZjX2hfbG9vcF9maWx0ZXJfbHVtYV8xMl9zc3NlMzsKICAgICAgICAgfQor I2VuZGlmCiAjaWYgSEFWRV9TU0U0X0VYVEVSTkFMICYmIEFSQ0hfWDg2XzY0CiAgICAgICAgIGlm IChFWFRFUk5BTF9TU0U0KGNwdV9mbGFncykpIHsKICAgICAgICAgICAgIEVQRUxfTElOS1MoYy0+ cHV0X2hldmNfZXBlbCwgMCwgMCwgcGVsX3BpeGVscywgMTIsIHNzZTQpOwpAQCAtMTI0OCwxMCAr MTI1NCwxMCBAQCB2b2lkIGZmX2hldmNfZHNwX2luaXRfeDg2KEhFVkNEU1BDb250ZXh0ICpjLCBj b25zdCBpbnQgYml0X2RlcHRoKQogICAgICAgICBpZiAoRVhURVJOQUxfQVZYKGNwdV9mbGFncykp IHsKICAgICAgICAgICAgIGMtPmhldmNfdl9sb29wX2ZpbHRlcl9jaHJvbWEgPSBmZl9oZXZjX3Zf bG9vcF9maWx0ZXJfY2hyb21hXzEyX2F2eDsKICAgICAgICAgICAgIGMtPmhldmNfaF9sb29wX2Zp bHRlcl9jaHJvbWEgPSBmZl9oZXZjX2hfbG9vcF9maWx0ZXJfY2hyb21hXzEyX2F2eDsKLSAgICAg ICAgICAgIGlmIChBUkNIX1g4Nl82NCkgewotICAgICAgICAgICAgICAgIGMtPmhldmNfdl9sb29w X2ZpbHRlcl9sdW1hID0gZmZfaGV2Y192X2xvb3BfZmlsdGVyX2x1bWFfMTJfYXZ4OwotICAgICAg ICAgICAgICAgIGMtPmhldmNfaF9sb29wX2ZpbHRlcl9sdW1hID0gZmZfaGV2Y19oX2xvb3BfZmls dGVyX2x1bWFfMTJfYXZ4OwotICAgICAgICAgICAgfQorI2lmIEFSQ0hfWDg2XzY0CisgICAgICAg ICAgICBjLT5oZXZjX3ZfbG9vcF9maWx0ZXJfbHVtYSA9IGZmX2hldmNfdl9sb29wX2ZpbHRlcl9s dW1hXzEyX2F2eDsKKyAgICAgICAgICAgIGMtPmhldmNfaF9sb29wX2ZpbHRlcl9sdW1hID0gZmZf aGV2Y19oX2xvb3BfZmlsdGVyX2x1bWFfMTJfYXZ4OworI2VuZGlmCiAgICAgICAgICAgICBTQU9f QkFORF9JTklUKDEyLCBhdngpOwogICAgICAgICB9CiAgICAgICAgIGlmIChFWFRFUk5BTF9BVlgy KGNwdV9mbGFncykpIHsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2L2lkY3Rkc3BfaW5pdC5j IGIvbGliYXZjb2RlYy94ODYvaWRjdGRzcF9pbml0LmMKaW5kZXggOWM3ZjIzNWIzZi4uZmNlNjJl NTU5MCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvaWRjdGRzcF9pbml0LmMKKysrIGIvbGli YXZjb2RlYy94ODYvaWRjdGRzcF9pbml0LmMKQEAgLTgzLDggKzgzLDggQEAgYXZfY29sZCB2b2lk IGZmX2lkY3Rkc3BfaW5pdF94ODYoSURDVERTUENvbnRleHQgKmMsIEFWQ29kZWNDb250ZXh0ICph dmN0eCwKICAgICAgICAgfQogI2VuZGlmCiAKLSAgICAgICAgaWYgKEFSQ0hfWDg2XzY0ICYmCi0g ICAgICAgICAgICAhaGlnaF9iaXRfZGVwdGggJiYKKyNpZiBBUkNIX1g4Nl82NAorICAgICAgICBp ZiAoIWhpZ2hfYml0X2RlcHRoICYmCiAgICAgICAgICAgICBhdmN0eC0+bG93cmVzID09IDAgJiYK ICAgICAgICAgICAgIChhdmN0eC0+aWRjdF9hbGdvID09IEZGX0lEQ1RfQVVUTyB8fAogICAgICAg ICAgICAgICAgIGF2Y3R4LT5pZGN0X2FsZ28gPT0gRkZfSURDVF9TSU1QTEVBVVRPIHx8CkBAIC05 NSw5ICs5NSwxMSBAQCBhdl9jb2xkIHZvaWQgZmZfaWRjdGRzcF9pbml0X3g4NihJRENURFNQQ29u dGV4dCAqYywgQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAogICAgICAgICAgICAgICAgIGMtPmlkY3Rf YWRkICA9IGZmX3NpbXBsZV9pZGN0OF9hZGRfc3NlMjsKICAgICAgICAgICAgICAgICBjLT5wZXJt X3R5cGUgPSBGRl9JRENUX1BFUk1fVFJBTlNQT1NFOwogICAgICAgICB9CisjZW5kaWYKICAgICB9 CiAKLSAgICBpZiAoQVJDSF9YODZfNjQgJiYgYXZjdHgtPmxvd3JlcyA9PSAwKSB7CisjaWYgQVJD SF9YODZfNjQKKyAgICBpZiAoYXZjdHgtPmxvd3JlcyA9PSAwKSB7CiAgICAgICAgIGlmIChFWFRF Uk5BTF9BVlgoY3B1X2ZsYWdzKSAmJgogICAgICAgICAgICAgIWhpZ2hfYml0X2RlcHRoICYmCiAg ICAgICAgICAgICAoYXZjdHgtPmlkY3RfYWxnbyA9PSBGRl9JRENUX0FVVE8gfHwKQEAgLTE0Nyw0 ICsxNDksNSBAQCBhdl9jb2xkIHZvaWQgZmZfaWRjdGRzcF9pbml0X3g4NihJRENURFNQQ29udGV4 dCAqYywgQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAogICAgICAgICAgICAgfQogICAgICAgICB9CiAg ICAgfQorI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni9tbHBkc3BfaW5pdC5j IGIvbGliYXZjb2RlYy94ODYvbWxwZHNwX2luaXQuYwppbmRleCA5NTBmOTk2ODMyLi4yMWEwZTM4 MTQzIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4Ni9tbHBkc3BfaW5pdC5jCisrKyBiL2xpYmF2 Y29kZWMveDg2L21scGRzcF9pbml0LmMKQEAgLTIwMCw4ICsyMDAsMTAgQEAgYXZfY29sZCB2b2lk IGZmX21scGRzcF9pbml0X3g4NihNTFBEU1BDb250ZXh0ICpjKQogICAgIGlmIChJTkxJTkVfTU1Y KGNwdV9mbGFncykpCiAgICAgICAgIGMtPm1scF9maWx0ZXJfY2hhbm5lbCA9IG1scF9maWx0ZXJf Y2hhbm5lbF94ODY7CiAjZW5kaWYKLSAgICBpZiAoQVJDSF9YODZfNjQgJiYgRVhURVJOQUxfU1NF NChjcHVfZmxhZ3MpKQorI2lmIEFSQ0hfWDg2XzY0CisgICAgaWYgKEVYVEVSTkFMX1NTRTQoY3B1 X2ZsYWdzKSkKICAgICAgICAgYy0+bWxwX3JlbWF0cml4X2NoYW5uZWwgPSBmZl9tbHBfcmVtYXRy aXhfY2hhbm5lbF9zc2U0OwotICAgIGlmIChBUkNIX1g4Nl82NCAmJiBFWFRFUk5BTF9BVlgyX0ZB U1QoY3B1X2ZsYWdzKSAmJiBjcHVfZmxhZ3MgJiBBVl9DUFVfRkxBR19CTUkyKQorICAgIGlmIChF WFRFUk5BTF9BVlgyX0ZBU1QoY3B1X2ZsYWdzKSAmJiBjcHVfZmxhZ3MgJiBBVl9DUFVfRkxBR19C TUkyKQogICAgICAgICBjLT5tbHBfcmVtYXRyaXhfY2hhbm5lbCA9IGZmX21scF9yZW1hdHJpeF9j aGFubmVsX2F2eDJfYm1pMjsKKyNlbmRpZiAvLyBBUkNIX1g4Nl82NAogfQpkaWZmIC0tZ2l0IGEv bGliYXZjb2RlYy94ODYvdjIxMC1pbml0LmMgYi9saWJhdmNvZGVjL3g4Ni92MjEwLWluaXQuYwpp bmRleCA4YjM2NzdiOGFhLi44OTVjYzhmMzI5IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4Ni92 MjEwLWluaXQuYworKysgYi9saWJhdmNvZGVjL3g4Ni92MjEwLWluaXQuYwpAQCAtMzgsMjggKzM4 LDM4IEBAIGF2X2NvbGQgdm9pZCBmZl92MjEwX3g4Nl9pbml0KFYyMTBEZWNDb250ZXh0ICpzKQog ICAgIGlmIChzLT5hbGlnbmVkX2lucHV0KSB7CiAgICAgICAgIGlmIChjcHVfZmxhZ3MgJiBBVl9D UFVfRkxBR19TU1NFMykKICAgICAgICAgICAgIHMtPnVucGFja19mcmFtZSA9IGZmX3YyMTBfcGxh bmFyX3VucGFja19hbGlnbmVkX3Nzc2UzOwotCi0gICAgICAgIGlmIChIQVZFX0FWWF9FWFRFUk5B TCAmJiBjcHVfZmxhZ3MgJiBBVl9DUFVfRkxBR19BVlgpCisjaWYgSEFWRV9BVlhfRVhURVJOQUwK KyAgICAgICAgaWYgKGNwdV9mbGFncyAmIEFWX0NQVV9GTEFHX0FWWCkKICAgICAgICAgICAgIHMt PnVucGFja19mcmFtZSA9IGZmX3YyMTBfcGxhbmFyX3VucGFja19hbGlnbmVkX2F2eDsKKyNlbmRp ZgogCi0gICAgICAgIGlmIChIQVZFX0FWWDJfRVhURVJOQUwgJiYgY3B1X2ZsYWdzICYgQVZfQ1BV X0ZMQUdfQVZYMikKKyNpZiBIQVZFX0FWWDJfRVhURVJOQUwKKyAgICAgICAgaWYgKGNwdV9mbGFn cyAmIEFWX0NQVV9GTEFHX0FWWDIpCiAgICAgICAgICAgICBzLT51bnBhY2tfZnJhbWUgPSBmZl92 MjEwX3BsYW5hcl91bnBhY2tfYWxpZ25lZF9hdngyOworI2VuZGlmCiAKKyNpZiBIQVZFX0FWWDUx MklDTF9FWFRFUk5BTAogICAgICAgICBpZiAoRVhURVJOQUxfQVZYNTEySUNMKGNwdV9mbGFncykp CiAgICAgICAgICAgICBzLT51bnBhY2tfZnJhbWUgPSBmZl92MjEwX3BsYW5hcl91bnBhY2tfYXZ4 NTEyaWNsOworI2VuZGlmCiAgICAgfQogICAgIGVsc2UgewogICAgICAgICBpZiAoY3B1X2ZsYWdz ICYgQVZfQ1BVX0ZMQUdfU1NTRTMpCiAgICAgICAgICAgICBzLT51bnBhY2tfZnJhbWUgPSBmZl92 MjEwX3BsYW5hcl91bnBhY2tfdW5hbGlnbmVkX3Nzc2UzOwotCi0gICAgICAgIGlmIChIQVZFX0FW WF9FWFRFUk5BTCAmJiBjcHVfZmxhZ3MgJiBBVl9DUFVfRkxBR19BVlgpCisjaWYgSEFWRV9BVlhf RVhURVJOQUwKKyAgICAgICAgaWYgKGNwdV9mbGFncyAmIEFWX0NQVV9GTEFHX0FWWCkKICAgICAg ICAgICAgIHMtPnVucGFja19mcmFtZSA9IGZmX3YyMTBfcGxhbmFyX3VucGFja191bmFsaWduZWRf YXZ4OworI2VuZGlmCiAKLSAgICAgICAgaWYgKEhBVkVfQVZYMl9FWFRFUk5BTCAmJiBjcHVfZmxh Z3MgJiBBVl9DUFVfRkxBR19BVlgyKQorI2lmIEhBVkVfQVZYMl9FWFRFUk5BTAorICAgICAgICBp ZiAoY3B1X2ZsYWdzICYgQVZfQ1BVX0ZMQUdfQVZYMikKICAgICAgICAgICAgIHMtPnVucGFja19m cmFtZSA9IGZmX3YyMTBfcGxhbmFyX3VucGFja191bmFsaWduZWRfYXZ4MjsKKyNlbmRpZgogCisj aWYgSEFWRV9BVlg1MTJJQ0xfRVhURVJOQUwKICAgICAgICAgaWYgKEVYVEVSTkFMX0FWWDUxMklD TChjcHVfZmxhZ3MpKQogICAgICAgICAgICAgcy0+dW5wYWNrX2ZyYW1lID0gZmZfdjIxMF9wbGFu YXJfdW5wYWNrX2F2eDUxMmljbDsKLSAgICB9CiAjZW5kaWYKKyAgICB9CisjZW5kaWYgLy8gSEFW RV9YODZBU00KIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2L3YyMTBlbmNfaW5pdC5jIGIv bGliYXZjb2RlYy94ODYvdjIxMGVuY19pbml0LmMKaW5kZXggNDRmMjJjYTdmZS4uODM5NmVhN2Ew YiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvdjIxMGVuY19pbml0LmMKKysrIGIvbGliYXZj b2RlYy94ODYvdjIxMGVuY19pbml0LmMKQEAgLTcxLDExICs3MSwxMiBAQCBhdl9jb2xkIHZvaWQg ZmZfdjIxMGVuY19pbml0X3g4NihWMjEwRW5jQ29udGV4dCAqcykKICAgICAgICAgcy0+cGFja19s aW5lXzEwICAgICAgPSBmZl92MjEwX3BsYW5hcl9wYWNrXzEwX2F2eDUxMjsKICNlbmRpZgogICAg IH0KLQorI2lmIEhBVkVfQVZYNTEySUNMX0VYVEVSTkFMCiAgICAgaWYgKEVYVEVSTkFMX0FWWDUx MklDTChjcHVfZmxhZ3MpKSB7CiAgICAgICAgIHMtPnNhbXBsZV9mYWN0b3JfOCAgPSA0OwogICAg ICAgICBzLT5wYWNrX2xpbmVfOCAgICAgID0gZmZfdjIxMF9wbGFuYXJfcGFja184X2F2eDUxMmlj bDsKICAgICAgICAgcy0+c2FtcGxlX2ZhY3Rvcl8xMCA9IDQ7CiAgICAgICAgIHMtPnBhY2tfbGlu ZV8xMCAgICAgPSBmZl92MjEwX3BsYW5hcl9wYWNrXzEwX2F2eDUxMmljbDsKICAgICB9CisjZW5k aWYKIH0KZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3g4Ni9jb2xvcnNwYWNlZHNwX2luaXQuYyBi L2xpYmF2ZmlsdGVyL3g4Ni9jb2xvcnNwYWNlZHNwX2luaXQuYwppbmRleCBiNTAwNmFjMjk1Li40 MjljYzhiZDI2IDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci94ODYvY29sb3JzcGFjZWRzcF9pbml0 LmMKKysrIGIvbGliYXZmaWx0ZXIveDg2L2NvbG9yc3BhY2Vkc3BfaW5pdC5jCkBAIC03OCw5ICs3 OCwxMCBAQCB2b2lkIGZmX211bHRpcGx5M3gzX3NzZTIoaW50MTZfdCAqZGF0YVszXSwgcHRyZGlm Zl90IHN0cmlkZSwgaW50IHcsIGludCBoLAogCiB2b2lkIGZmX2NvbG9yc3BhY2Vkc3BfeDg2X2lu aXQoQ29sb3JTcGFjZURTUENvbnRleHQgKmRzcCkKIHsKKyNpZiBBUkNIX1g4Nl82NAogICAgIGlu dCBjcHVfZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7CiAKLSAgICBpZiAoQVJDSF9YODZfNjQg JiYgRVhURVJOQUxfU1NFMihjcHVfZmxhZ3MpKSB7CisgICAgaWYgKEVYVEVSTkFMX1NTRTIoY3B1 X2ZsYWdzKSkgewogI2RlZmluZSBhc3NpZ25feXV2Mnl1dl9mbnMoc3MpIFwKICAgICAgICAgZHNw LT55dXYyeXV2W0JQUF84IF1bQlBQXzggXVtTU18jI3NzXSA9IGZmX3l1djJ5dXZfIyNzcyMjcDh0 bzhfc3NlMjsgXAogICAgICAgICBkc3AtPnl1djJ5dXZbQlBQXzggXVtCUFBfMTBdW1NTXyMjc3Nd ID0gZmZfeXV2Mnl1dl8jI3NzIyNwOHRvMTBfc3NlMjsgXApAQCAtMTE2LDQgKzExNyw1IEBAIHZv aWQgZmZfY29sb3JzcGFjZWRzcF94ODZfaW5pdChDb2xvclNwYWNlRFNQQ29udGV4dCAqZHNwKQog CiAgICAgICAgIGRzcC0+bXVsdGlwbHkzeDMgPSBmZl9tdWx0aXBseTN4M19zc2UyOwogICAgIH0K KyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIveDg2L2ZfZWJ1cjEyOF9pbml0LmMg Yi9saWJhdmZpbHRlci94ODYvZl9lYnVyMTI4X2luaXQuYwppbmRleCA2ZDQzYjQ4ODdmLi44MTY5 ZTc1Y2NjIDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci94ODYvZl9lYnVyMTI4X2luaXQuYworKysg Yi9saWJhdmZpbHRlci94ODYvZl9lYnVyMTI4X2luaXQuYwpAQCAtMzAsMTIgKzMwLDE0IEBAIGRv dWJsZSBmZl9lYnVyMTI4X2ZpbmRfcGVha18yY2hfYXZ4KGRvdWJsZSAqLCBpbnQsIGNvbnN0IGRv dWJsZSAqLCBpbnQpOwogCiBhdl9jb2xkIHZvaWQgZmZfZWJ1cjEyOF9pbml0X3g4NihFQlVSMTI4 RFNQQ29udGV4dCAqZHNwLCBpbnQgbmJfY2hhbm5lbHMpCiB7CisjaWYgQVJDSF9YODZfNjQKICAg ICBpbnQgY3B1X2ZsYWdzID0gYXZfZ2V0X2NwdV9mbGFncygpOwogCi0gICAgaWYgKEFSQ0hfWDg2 XzY0ICYmIEVYVEVSTkFMX0FWWChjcHVfZmxhZ3MpKSB7CisgICAgaWYgKEVYVEVSTkFMX0FWWChj cHVfZmxhZ3MpKSB7CiAgICAgICAgIGlmIChuYl9jaGFubmVscyA+PSAyKQogICAgICAgICAgICAg ZHNwLT5maWx0ZXJfY2hhbm5lbHMgPSBmZl9lYnVyMTI4X2ZpbHRlcl9jaGFubmVsc19hdng7CiAg ICAgICAgIGlmIChuYl9jaGFubmVscyA9PSAyKQogICAgICAgICAgICAgZHNwLT5maW5kX3BlYWsg PSBmZl9lYnVyMTI4X2ZpbmRfcGVha18yY2hfYXZ4OwogICAgIH0KKyNlbmRpZgogfQpkaWZmIC0t Z2l0IGEvbGliYXZmaWx0ZXIveDg2L3ZmX2F0YWRlbm9pc2VfaW5pdC5jIGIvbGliYXZmaWx0ZXIv eDg2L3ZmX2F0YWRlbm9pc2VfaW5pdC5jCmluZGV4IGU3YTY1M2YxOTEuLjM4NDdlNTMyNTAgMTAw NjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3g4Ni92Zl9hdGFkZW5vaXNlX2luaXQuYworKysgYi9saWJh dmZpbHRlci94ODYvdmZfYXRhZGVub2lzZV9pbml0LmMKQEAgLTM2LDE1ICszNiwxNyBAQCB2b2lk IGZmX2F0YWRlbm9pc2VfZmlsdGVyX3Jvdzhfc2VyaWFsX3NzZTQoY29uc3QgdWludDhfdCAqc3Jj LCB1aW50OF90ICpkc3QsCiAKIGF2X2NvbGQgdm9pZCBmZl9hdGFkZW5vaXNlX2luaXRfeDg2KEFU QURlbm9pc2VEU1BDb250ZXh0ICpkc3AsIGludCBkZXB0aCwgaW50IGFsZ29yaXRobSwgY29uc3Qg ZmxvYXQgKnNpZ21hKQogeworI2lmIEFSQ0hfWDg2XzY0CiAgICAgaW50IGNwdV9mbGFncyA9IGF2 X2dldF9jcHVfZmxhZ3MoKTsKIAogICAgIGZvciAoaW50IHAgPSAwOyBwIDwgNDsgcCsrKSB7Ci0g ICAgICAgIGlmIChBUkNIX1g4Nl82NCAmJiBFWFRFUk5BTF9TU0U0KGNwdV9mbGFncykgJiYgZGVw dGggPD0gOCAmJiBhbGdvcml0aG0gPT0gUEFSQUxMRUwgJiYgc2lnbWFbcF0gPT0gSU5UMTZfTUFY KSB7CisgICAgICAgIGlmIChFWFRFUk5BTF9TU0U0KGNwdV9mbGFncykgJiYgZGVwdGggPD0gOCAm JiBhbGdvcml0aG0gPT0gUEFSQUxMRUwgJiYgc2lnbWFbcF0gPT0gSU5UMTZfTUFYKSB7CiAgICAg ICAgICAgICBkc3AtPmZpbHRlcl9yb3dbcF0gPSBmZl9hdGFkZW5vaXNlX2ZpbHRlcl9yb3c4X3Nz ZTQ7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoQVJDSF9YODZfNjQgJiYgRVhURVJOQUxfU1NF NChjcHVfZmxhZ3MpICYmIGRlcHRoIDw9IDggJiYgYWxnb3JpdGhtID09IFNFUklBTCAmJiBzaWdt YVtwXSA9PSBJTlQxNl9NQVgpIHsKKyAgICAgICAgaWYgKEVYVEVSTkFMX1NTRTQoY3B1X2ZsYWdz KSAmJiBkZXB0aCA8PSA4ICYmIGFsZ29yaXRobSA9PSBTRVJJQUwgJiYgc2lnbWFbcF0gPT0gSU5U MTZfTUFYKSB7CiAgICAgICAgICAgICBkc3AtPmZpbHRlcl9yb3dbcF0gPSBmZl9hdGFkZW5vaXNl X2ZpbHRlcl9yb3c4X3NlcmlhbF9zc2U0OwogICAgICAgICB9CiAgICAgfQorI2VuZGlmCiB9CmRp ZmYgLS1naXQgYS9saWJhdmZpbHRlci94ODYvdmZfYndkaWZfaW5pdC5jIGIvbGliYXZmaWx0ZXIv eDg2L3ZmX2J3ZGlmX2luaXQuYwppbmRleCA3NmI1NzRiMmE5Li41MTUwOGVlNzcxIDEwMDY0NAot LS0gYS9saWJhdmZpbHRlci94ODYvdmZfYndkaWZfaW5pdC5jCisrKyBiL2xpYmF2ZmlsdGVyL3g4 Ni92Zl9id2RpZl9pbml0LmMKQEAgLTY3LDE4ICs2NywyMiBAQCBhdl9jb2xkIHZvaWQgZmZfYndk aWZfaW5pdF94ODYoQldESUZEU1BDb250ZXh0ICpid2RpZiwgaW50IGJpdF9kZXB0aCkKICAgICAg ICAgICAgIGJ3ZGlmLT5maWx0ZXJfbGluZSA9IGZmX2J3ZGlmX2ZpbHRlcl9saW5lX3NzZTI7CiAg ICAgICAgIGlmIChFWFRFUk5BTF9TU1NFMyhjcHVfZmxhZ3MpKQogICAgICAgICAgICAgYndkaWYt PmZpbHRlcl9saW5lID0gZmZfYndkaWZfZmlsdGVyX2xpbmVfc3NzZTM7Ci0gICAgICAgIGlmIChB UkNIX1g4Nl82NCAmJiBFWFRFUk5BTF9BVlgyX0ZBU1QoY3B1X2ZsYWdzKSkKKyNpZiBBUkNIX1g4 Nl82NAorICAgICAgICBpZiAoRVhURVJOQUxfQVZYMl9GQVNUKGNwdV9mbGFncykpCiAgICAgICAg ICAgICBid2RpZi0+ZmlsdGVyX2xpbmUgPSBmZl9id2RpZl9maWx0ZXJfbGluZV9hdngyOwotICAg ICAgICBpZiAoQVJDSF9YODZfNjQgJiYgRVhURVJOQUxfQVZYNTEySUNMKGNwdV9mbGFncykpCisg ICAgICAgIGlmIChFWFRFUk5BTF9BVlg1MTJJQ0woY3B1X2ZsYWdzKSkKICAgICAgICAgICAgIGJ3 ZGlmLT5maWx0ZXJfbGluZSA9IGZmX2J3ZGlmX2ZpbHRlcl9saW5lX2F2eDUxMmljbDsKKyNlbmRp ZgogICAgIH0gZWxzZSBpZiAoYml0X2RlcHRoIDw9IDEyKSB7CiAgICAgICAgIGlmIChFWFRFUk5B TF9TU0UyKGNwdV9mbGFncykpCiAgICAgICAgICAgICBid2RpZi0+ZmlsdGVyX2xpbmUgPSBmZl9i d2RpZl9maWx0ZXJfbGluZV8xMmJpdF9zc2UyOwogICAgICAgICBpZiAoRVhURVJOQUxfU1NTRTMo Y3B1X2ZsYWdzKSkKICAgICAgICAgICAgIGJ3ZGlmLT5maWx0ZXJfbGluZSA9IGZmX2J3ZGlmX2Zp bHRlcl9saW5lXzEyYml0X3Nzc2UzOwotICAgICAgICBpZiAoQVJDSF9YODZfNjQgJiYgRVhURVJO QUxfQVZYMl9GQVNUKGNwdV9mbGFncykpCisjaWYgQVJDSF9YODZfNjQKKyAgICAgICAgaWYgKEVY VEVSTkFMX0FWWDJfRkFTVChjcHVfZmxhZ3MpKQogICAgICAgICAgICAgYndkaWYtPmZpbHRlcl9s aW5lID0gZmZfYndkaWZfZmlsdGVyX2xpbmVfMTJiaXRfYXZ4MjsKLSAgICAgICAgaWYgKEFSQ0hf WDg2XzY0ICYmIEVYVEVSTkFMX0FWWDUxMklDTChjcHVfZmxhZ3MpKQorICAgICAgICBpZiAoRVhU RVJOQUxfQVZYNTEySUNMKGNwdV9mbGFncykpCiAgICAgICAgICAgICBid2RpZi0+ZmlsdGVyX2xp bmUgPSBmZl9id2RpZl9maWx0ZXJfbGluZV8xMmJpdF9hdng1MTJpY2w7CisjZW5kaWYKICAgICB9 CiB9CmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci94ODYvdmZfbmxtZWFuc19pbml0LmMgYi9saWJh dmZpbHRlci94ODYvdmZfbmxtZWFuc19pbml0LmMKaW5kZXggMzc3NjRkMzBhYi4uNWQ2NzA5MGE5 OCAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIveDg2L3ZmX25sbWVhbnNfaW5pdC5jCisrKyBiL2xp YmF2ZmlsdGVyL3g4Ni92Zl9ubG1lYW5zX2luaXQuYwpAQCAtMzMsOCArMzMsMTAgQEAgdm9pZCBm Zl9jb21wdXRlX3dlaWdodHNfbGluZV9hdngyKGNvbnN0IHVpbnQzMl90ICpjb25zdCBpaWEsCiAK IGF2X2NvbGQgdm9pZCBmZl9ubG1lYW5zX2luaXRfeDg2KE5MTWVhbnNEU1BDb250ZXh0ICpkc3Ap CiB7CisjaWYgQVJDSF9YODZfNjQKICAgICBpbnQgY3B1X2ZsYWdzID0gYXZfZ2V0X2NwdV9mbGFn cygpOwogCi0gICAgaWYgKEFSQ0hfWDg2XzY0ICYmIEVYVEVSTkFMX0FWWDJfRkFTVChjcHVfZmxh Z3MpKQorICAgIGlmIChFWFRFUk5BTF9BVlgyX0ZBU1QoY3B1X2ZsYWdzKSkKICAgICAgICAgZHNw LT5jb21wdXRlX3dlaWdodHNfbGluZSA9IGZmX2NvbXB1dGVfd2VpZ2h0c19saW5lX2F2eDI7Cisj ZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3g4Ni92Zl9zc2ltX2luaXQuYyBiL2xp YmF2ZmlsdGVyL3g4Ni92Zl9zc2ltX2luaXQuYwppbmRleCBjYmFhMjBlZjE2Li42ZjIzMDU0MzBj IDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci94ODYvdmZfc3NpbV9pbml0LmMKKysrIGIvbGliYXZm aWx0ZXIveDg2L3ZmX3NzaW1faW5pdC5jCkBAIC0zNCw4ICszNCwxMCBAQCB2b2lkIGZmX3NzaW1f aW5pdF94ODYoU1NJTURTUENvbnRleHQgKmRzcCkKIHsKICAgICBpbnQgY3B1X2ZsYWdzID0gYXZf Z2V0X2NwdV9mbGFncygpOwogCi0gICAgaWYgKEFSQ0hfWDg2XzY0ICYmIEVYVEVSTkFMX1NTU0Uz KGNwdV9mbGFncykpCisjaWYgQVJDSF9YODZfNjQKKyAgICBpZiAoRVhURVJOQUxfU1NTRTMoY3B1 X2ZsYWdzKSkKICAgICAgICAgZHNwLT5zc2ltXzR4NF9saW5lID0gZmZfc3NpbV80eDRfbGluZV9z c3NlMzsKKyNlbmRpZgogICAgIGlmIChFWFRFUk5BTF9TU0U0KGNwdV9mbGFncykpCiAgICAgICAg IGRzcC0+c3NpbV9lbmRfbGluZSA9IGZmX3NzaW1fZW5kX2xpbmVfc3NlNDsKICAgICBpZiAoRVhU RVJOQUxfWE9QKGNwdV9mbGFncykpCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci94ODYvdmZfdzNm ZGlmX2luaXQuYyBiL2xpYmF2ZmlsdGVyL3g4Ni92Zl93M2ZkaWZfaW5pdC5jCmluZGV4IDE2MjAy ZmJhNzYuLjZkNjc3ZDY1MWQgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3g4Ni92Zl93M2ZkaWZf aW5pdC5jCisrKyBiL2xpYmF2ZmlsdGVyL3g4Ni92Zl93M2ZkaWZfaW5pdC5jCkBAIC01Niw3ICs1 Niw5IEBAIGF2X2NvbGQgdm9pZCBmZl93M2ZkaWZfaW5pdF94ODYoVzNGRElGRFNQQ29udGV4dCAq ZHNwLCBpbnQgZGVwdGgpCiAgICAgICAgIGRzcC0+ZmlsdGVyX3NjYWxlICAgICAgICA9IGZmX3cz ZmRpZl9zY2FsZV9zc2UyOwogICAgIH0KIAotICAgIGlmIChBUkNIX1g4Nl82NCAmJiBFWFRFUk5B TF9TU0UyKGNwdV9mbGFncykgJiYgZGVwdGggPD0gOCkgeworI2lmIEFSQ0hfWDg2XzY0CisgICAg aWYgKEVYVEVSTkFMX1NTRTIoY3B1X2ZsYWdzKSAmJiBkZXB0aCA8PSA4KSB7CiAgICAgICAgIGRz cC0+ZmlsdGVyX2NvbXBsZXhfaGlnaCA9IGZmX3czZmRpZl9jb21wbGV4X2hpZ2hfc3NlMjsKICAg ICB9CisjZW5kaWYKIH0KLS0gCjIuNTIuMAoKCkZyb20gZGYwZDE5OTgzOWI2ZGJlMjgzZjJkYmE5 NGE3NTAwNDhkMWExOWIxMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmlrbGFzIEhh YXMgPGdpdEBoYWFzbi5kZXY+CkRhdGU6IE1vbiwgMTAgTm92IDIwMjUgMTI6MzI6MzIgKzAxMDAK U3ViamVjdDogW1BBVENIIDEzNC8zMDRdIGF2ZmlsdGVyL3ZmX2xpYnBsYWNlYm86IHVuLXJvdGF0 ZSBpbWFnZSBjcm9wIGFmdGVyCiBmaXR0aW5nCgpXaGVuIGNvbWJpbmluZyByb3RhdGlvbiB3aXRo IGEgRklUXyBtb2RlIG90aGVyIHRoYW4gRklUX0ZJTEwsIHRoZSBmaXR0aW5nCmxvZ2ljIHdhcyBv cGVyYXRpbmcgb24gdGhlIHVuLXJvdGF0ZWQgcmVjdHMsIHdoZW4gaXQgc2hvdWxkIGhhdmUgYmVl bgpvcGVyYXRpbmcgb24gdGhlIHJvdGF0ZWQgKG91dHB1dCkgcmVjdHMuCi0tLQogbGliYXZmaWx0 ZXIvdmZfbGlicGxhY2Viby5jIHwgMTYgKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDggaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmZpbHRl ci92Zl9saWJwbGFjZWJvLmMgYi9saWJhdmZpbHRlci92Zl9saWJwbGFjZWJvLmMKaW5kZXggNDI1 MDFjNTFmMi4uNWE2MTVhY2VlZCAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvdmZfbGlicGxhY2Vi by5jCisrKyBiL2xpYmF2ZmlsdGVyL3ZmX2xpYnBsYWNlYm8uYwpAQCAtOTEzLDE0ICs5MTMsNiBA QCBzdGF0aWMgdm9pZCB1cGRhdGVfY3JvcHMoQVZGaWx0ZXJDb250ZXh0ICpjdHgsIExpYnBsYWNl Ym9JbnB1dCAqaW4sCiAgICAgICAgIGltYWdlLT5jcm9wLngxID0gaW1hZ2UtPmNyb3AueDAgKyBz LT52YXJfdmFsdWVzW1ZBUl9DUk9QX1ddOwogICAgICAgICBpbWFnZS0+Y3JvcC55MSA9IGltYWdl LT5jcm9wLnkwICsgcy0+dmFyX3ZhbHVlc1tWQVJfQ1JPUF9IXTsKIAotICAgICAgICBjb25zdCBw bF9yb3RhdGlvbiByb3RfdG90YWwgPSBpbWFnZS0+cm90YXRpb24gLSB0YXJnZXQtPnJvdGF0aW9u OwotICAgICAgICBpZiAoKHJvdF90b3RhbCArIFBMX1JPVEFUSU9OXzM2MCkgJSBQTF9ST1RBVElP Tl8xODAgPT0gUExfUk9UQVRJT05fOTApIHsKLSAgICAgICAgICAgIC8qIExpYnBsYWNlYm8gZXhw ZWN0cyB0aGUgaW5wdXQgY3JvcCByZWxhdGl2ZSB0byB0aGUgYWN0dWFsIGZyYW1lCi0gICAgICAg ICAgICAgKiBkaW1lbnNpb25zLCBzbyB1bi10cmFuc3Bvc2UgdGhlbSBoZXJlICovCi0gICAgICAg ICAgICBGRlNXQVAoZmxvYXQsIGltYWdlLT5jcm9wLngwLCBpbWFnZS0+Y3JvcC55MCk7Ci0gICAg ICAgICAgICBGRlNXQVAoZmxvYXQsIGltYWdlLT5jcm9wLngxLCBpbWFnZS0+Y3JvcC55MSk7Ci0g ICAgICAgIH0KLQogICAgICAgICBpZiAoc3JjID09IHJlZikgewogICAgICAgICAgICAgLyogT25s eSB1cGRhdGUgdGhlIHRhcmdldCBjcm9wIG9uY2UsIGZvciB0aGUgJ3JlZmVyZW5jZScgZnJhbWUg Ki8KICAgICAgICAgICAgIHRhcmdldC0+Y3JvcC54MCA9IGF2X2V4cHJfZXZhbChzLT5wb3NfeF9w ZXhwciwgcy0+dmFyX3ZhbHVlcywgTlVMTCk7CkBAIC05NTUsNiArOTQ3LDE0IEBAIHN0YXRpYyB2 b2lkIHVwZGF0ZV9jcm9wcyhBVkZpbHRlckNvbnRleHQgKmN0eCwgTGlicGxhY2Vib0lucHV0ICpp biwKICAgICAgICAgICAgIGNhc2UgRklUX1NDQUxFX0RPV046CiAgICAgICAgICAgICAgICAgcGxf cmVjdDJkZl9hc3BlY3RfZml0KCZ0YXJnZXQtPmNyb3AsICZmaXhlZCwgMC4wKTsKICAgICAgICAg ICAgIH0KKworICAgICAgICAgICAgY29uc3QgcGxfcm90YXRpb24gcm90X3RvdGFsID0gaW1hZ2Ut PnJvdGF0aW9uIC0gdGFyZ2V0LT5yb3RhdGlvbjsKKyAgICAgICAgICAgIGlmICgocm90X3RvdGFs ICsgUExfUk9UQVRJT05fMzYwKSAlIFBMX1JPVEFUSU9OXzE4MCA9PSBQTF9ST1RBVElPTl85MCkg eworICAgICAgICAgICAgICAgIC8qIExpYnBsYWNlYm8gZXhwZWN0cyB0aGUgaW5wdXQgY3JvcCBy ZWxhdGl2ZSB0byB0aGUgYWN0dWFsIGZyYW1lCisgICAgICAgICAgICAgICAgICogZGltZW5zaW9u cywgc28gdW4tdHJhbnNwb3NlIHRoZW0gaGVyZSAqLworICAgICAgICAgICAgICAgIEZGU1dBUChm bG9hdCwgaW1hZ2UtPmNyb3AueDAsIGltYWdlLT5jcm9wLnkwKTsKKyAgICAgICAgICAgICAgICBG RlNXQVAoZmxvYXQsIGltYWdlLT5jcm9wLngxLCBpbWFnZS0+Y3JvcC55MSk7CisgICAgICAgICAg ICB9CiAgICAgICAgIH0KICAgICB9CiB9Ci0tIAoyLjUyLjAKCgpGcm9tIGQ4MzQ3Zjk5ZjAyMWI1 OWI0YThlY2RlNzdmYmVjNWQxZDVmNjE1YWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IE5pa2xhcyBIYWFzIDxnaXRAaGFhc24uZGV2PgpEYXRlOiBNb24sIDEwIE5vdiAyMDI1IDEyOjM2 OjMzICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMzUvMzA0XSBhdmZpbHRlci92Zl9saWJwbGFjZWJv OiBmaXggbWF0aCB3aGVuIEFWUmF0aW9uYWxzIGFyZQogdW5kZWZpbmVkCgotLS0KIGxpYmF2Zmls dGVyL3ZmX2xpYnBsYWNlYm8uYyB8IDIyICsrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xp YmF2ZmlsdGVyL3ZmX2xpYnBsYWNlYm8uYyBiL2xpYmF2ZmlsdGVyL3ZmX2xpYnBsYWNlYm8uYwpp bmRleCA1YTYxNWFjZWVkLi44YjVmNzg5MjgwIDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci92Zl9s aWJwbGFjZWJvLmMKKysrIGIvbGliYXZmaWx0ZXIvdmZfbGlicGxhY2Viby5jCkBAIC04NjEsNiAr ODYxLDExIEBAIHN0YXRpYyBjb25zdCBBVkZyYW1lICpyZWZfZnJhbWUoY29uc3Qgc3RydWN0IHBs X2ZyYW1lX21peCAqbWl4KQogICAgIHJldHVybiBOVUxMOwogfQogCitzdGF0aWMgaW5saW5lIGRv dWJsZSBxMmRfZmFsbGJhY2soQVZSYXRpb25hbCBxLCBjb25zdCBkb3VibGUgZGVmKQoreworICAg IHJldHVybiAocS5udW0gJiYgcS5kZW4pID8gYXZfcTJkKHEpIDogZGVmOworfQorCiBzdGF0aWMg dm9pZCB1cGRhdGVfY3JvcHMoQVZGaWx0ZXJDb250ZXh0ICpjdHgsIExpYnBsYWNlYm9JbnB1dCAq aW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBsX2ZyYW1lICp0YXJnZXQsIGRv dWJsZSB0YXJnZXRfcHRzKQogewpAQCAtODgyLDggKzg4Nyw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0 ZV9jcm9wcyhBVkZpbHRlckNvbnRleHQgKmN0eCwgTGlicGxhY2Vib0lucHV0ICppbiwKICAgICAg ICAgcy0+dmFyX3ZhbHVlc1tWQVJfSU5fV10gICA9IHMtPnZhcl92YWx1ZXNbVkFSX0lXXSA9IGlu bGluay0+dzsKICAgICAgICAgcy0+dmFyX3ZhbHVlc1tWQVJfSU5fSF0gICA9IHMtPnZhcl92YWx1 ZXNbVkFSX0lIXSA9IGlubGluay0+aDsKICAgICAgICAgcy0+dmFyX3ZhbHVlc1tWQVJfQV0gICAg ICA9IChkb3VibGUpIGlubGluay0+dyAvIGlubGluay0+aDsKLSAgICAgICAgcy0+dmFyX3ZhbHVl c1tWQVJfU0FSXSAgICA9IGlubGluay0+c2FtcGxlX2FzcGVjdF9yYXRpby5udW0gPwotICAgICAg ICAgICAgYXZfcTJkKGlubGluay0+c2FtcGxlX2FzcGVjdF9yYXRpbykgOiAxLjA7CisgICAgICAg IHMtPnZhcl92YWx1ZXNbVkFSX1NBUl0gICAgPSBxMmRfZmFsbGJhY2soaW5saW5rLT5zYW1wbGVf YXNwZWN0X3JhdGlvLCAxLjApOwogICAgICAgICBzLT52YXJfdmFsdWVzW1ZBUl9JTl9UXSAgID0g cy0+dmFyX3ZhbHVlc1tWQVJfVF0gID0gaW1hZ2VfcHRzOwogICAgICAgICBzLT52YXJfdmFsdWVz W1ZBUl9PVVRfVF0gID0gcy0+dmFyX3ZhbHVlc1tWQVJfT1RdID0gdGFyZ2V0X3B0czsKICAgICAg ICAgcy0+dmFyX3ZhbHVlc1tWQVJfTl0gICAgICA9IG91dGwtPmZyYW1lX2NvdW50X291dDsKQEAg LTkyMCw5ICs5MjQsMTEgQEAgc3RhdGljIHZvaWQgdXBkYXRlX2Nyb3BzKEFWRmlsdGVyQ29udGV4 dCAqY3R4LCBMaWJwbGFjZWJvSW5wdXQgKmluLAogICAgICAgICAgICAgdGFyZ2V0LT5jcm9wLngx ID0gdGFyZ2V0LT5jcm9wLngwICsgcy0+dmFyX3ZhbHVlc1tWQVJfUE9TX1ddOwogICAgICAgICAg ICAgdGFyZ2V0LT5jcm9wLnkxID0gdGFyZ2V0LT5jcm9wLnkwICsgcy0+dmFyX3ZhbHVlc1tWQVJf UE9TX0hdOwogCisKICAgICAgICAgICAgIC8qIEVmZmVjdGl2ZSB2aXN1YWwgY3JvcCAqLwotICAg ICAgICAgICAgY29uc3QgZmxvYXQgd19hZGogPSBhdl9xMmQoaW5saW5rLT5zYW1wbGVfYXNwZWN0 X3JhdGlvKSAvCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2X3EyZChvdXRsaW5r LT5zYW1wbGVfYXNwZWN0X3JhdGlvKTsKKyAgICAgICAgICAgIGRvdWJsZSBzYXJfaW4gPSBxMmRf ZmFsbGJhY2soaW5saW5rLT5zYW1wbGVfYXNwZWN0X3JhdGlvLCAxLjApOworICAgICAgICAgICAg ZG91YmxlIHNhcl9vdXQgPSBxMmRfZmFsbGJhY2sob3V0bGluay0+c2FtcGxlX2FzcGVjdF9yYXRp bywgMS4wKTsKKyAgICAgICAgICAgIGNvbnN0IGZsb2F0IHdfYWRqID0gc2FyX2luIC8gc2FyX291 dDsKIAogICAgICAgICAgICAgcGxfcmVjdDJkZiBmaXhlZCA9IGltYWdlLT5jcm9wOwogICAgICAg ICAgICAgcGxfcmVjdDJkZl9zdHJldGNoKCZmaXhlZCwgd19hZGosIDEuMCk7CkBAIC0xMjc4LDcg KzEyODQsNyBAQCBzdGF0aWMgaW50IGxpYnBsYWNlYm9fYWN0aXZhdGUoQVZGaWx0ZXJDb250ZXh0 ICpjdHgpCiAgICAgICAgICAgICBpbi0+cXN0YXR1cyA9IHBsX3F1ZXVlX3VwZGF0ZShpbi0+cXVl dWUsICZpbi0+bWl4LCBwbF9xdWV1ZV9wYXJhbXMoCiAgICAgICAgICAgICAgICAgLnB0cyAgICAg ICAgICAgID0gVFMyVChvdXRfcHRzLCBvdXRsaW5rLT50aW1lX2Jhc2UpLAogICAgICAgICAgICAg ICAgIC5yYWRpdXMgICAgICAgICA9IHBsX2ZyYW1lX21peF9yYWRpdXMoJnMtPm9wdHMtPnBhcmFt cyksCi0gICAgICAgICAgICAgICAgLnZzeW5jX2R1cmF0aW9uID0gbC0+ZnJhbWVfcmF0ZS5udW0g PyBhdl9xMmQoYXZfaW52X3EobC0+ZnJhbWVfcmF0ZSkpIDogMCwKKyAgICAgICAgICAgICAgICAu dnN5bmNfZHVyYXRpb24gPSBxMmRfZmFsbGJhY2soYXZfaW52X3EobC0+ZnJhbWVfcmF0ZSksIDAu MCksCiAgICAgICAgICAgICApKTsKIAogICAgICAgICAgICAgc3dpdGNoIChpbi0+cXN0YXR1cykg ewpAQCAtMTQ2MSw4ICsxNDY3LDcgQEAgc3RhdGljIGludCBsaWJwbGFjZWJvX2NvbmZpZ19vdXRw dXQoQVZGaWx0ZXJMaW5rICpvdXRsaW5rKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJm91dGxpbmstPncsICZvdXRsaW5rLT5oKSk7CiAKICAgICBzLT5yZXNldF9zYXIgfD0gcy0+ bm9ybWFsaXplX3NhciB8fCBzLT5uYl9pbnB1dHMgPiAxOwotICAgIGRvdWJsZSBzYXJfaW4gPSBp bmxpbmstPnNhbXBsZV9hc3BlY3RfcmF0aW8ubnVtID8KLSAgICAgICAgICAgICAgICAgICAgYXZf cTJkKGlubGluay0+c2FtcGxlX2FzcGVjdF9yYXRpbykgOiAxLjA7CisgICAgZG91YmxlIHNhcl9p biA9IHEyZF9mYWxsYmFjayhpbmxpbmstPnNhbXBsZV9hc3BlY3RfcmF0aW8sIDEuMCk7CiAKICAg ICBpbnQgZm9yY2Vfb2FyID0gcy0+Zm9yY2Vfb3JpZ2luYWxfYXNwZWN0X3JhdGlvOwogICAgIGlm ICghZm9yY2Vfb2FyICYmIHMtPmZpdF9zZW5zZSA9PSBGSVRfQ09OU1RSQUlOVCkgewpAQCAtMTU0 OSw4ICsxNTU0LDcgQEAgc3RhdGljIGludCBsaWJwbGFjZWJvX2NvbmZpZ19vdXRwdXQoQVZGaWx0 ZXJMaW5rICpvdXRsaW5rKQogICAgIC8qIFN0YXRpYyB2YXJpYWJsZXMgKi8KICAgICBzLT52YXJf dmFsdWVzW1ZBUl9PVVRfV10gICAgPSBzLT52YXJfdmFsdWVzW1ZBUl9PV10gPSBvdXRsaW5rLT53 OwogICAgIHMtPnZhcl92YWx1ZXNbVkFSX09VVF9IXSAgICA9IHMtPnZhcl92YWx1ZXNbVkFSX09I XSA9IG91dGxpbmstPmg7Ci0gICAgcy0+dmFyX3ZhbHVlc1tWQVJfREFSXSAgICAgID0gb3V0bGlu ay0+c2FtcGxlX2FzcGVjdF9yYXRpby5udW0gPwotICAgICAgICBhdl9xMmQob3V0bGluay0+c2Ft cGxlX2FzcGVjdF9yYXRpbykgOiAxLjA7CisgICAgcy0+dmFyX3ZhbHVlc1tWQVJfREFSXSAgICAg ID0gcTJkX2ZhbGxiYWNrKG91dGxpbmstPnNhbXBsZV9hc3BlY3RfcmF0aW8sIDEuMCk7CiAgICAg cy0+dmFyX3ZhbHVlc1tWQVJfSFNVQl0gICAgID0gMSA8PCBkZXNjLT5sb2cyX2Nocm9tYV93Owog ICAgIHMtPnZhcl92YWx1ZXNbVkFSX1ZTVUJdICAgICA9IDEgPDwgZGVzYy0+bG9nMl9jaHJvbWFf aDsKICAgICBzLT52YXJfdmFsdWVzW1ZBUl9PSFNVQl0gICAgPSAxIDw8IG91dF9kZXNjLT5sb2cy X2Nocm9tYV93OwotLSAKMi41Mi4wCgoKRnJvbSBhOTk1YmUzODA1YWE3ZGI3ZTU4ZjZiNzMxYjNl ZTcyMjNkYzA1NDZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtsYXMgSGFhcyA8 Z2l0QGhhYXNuLmRldj4KRGF0ZTogTW9uLCAxMCBOb3YgMjAyNSAxMjozODoxMSArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMTM2LzMwNF0gYXZmaWx0ZXIvdmZfbGlicGxhY2VibzogYWxzbyByb3RhdGUg U0FSIHdoZW4gZml0dGluZwoKLS0tCiBsaWJhdmZpbHRlci92Zl9saWJwbGFjZWJvLmMgfCAxMCAr KysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2xpYnBsYWNlYm8uYyBiL2xpYmF2ZmlsdGVy L3ZmX2xpYnBsYWNlYm8uYwppbmRleCA4YjVmNzg5MjgwLi5iMTc4ODU2NWJmIDEwMDY0NAotLS0g YS9saWJhdmZpbHRlci92Zl9saWJwbGFjZWJvLmMKKysrIGIvbGliYXZmaWx0ZXIvdmZfbGlicGxh Y2Viby5jCkBAIC05MjgsMTAgKzkyOCwxMyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfY3JvcHMoQVZG aWx0ZXJDb250ZXh0ICpjdHgsIExpYnBsYWNlYm9JbnB1dCAqaW4sCiAgICAgICAgICAgICAvKiBF ZmZlY3RpdmUgdmlzdWFsIGNyb3AgKi8KICAgICAgICAgICAgIGRvdWJsZSBzYXJfaW4gPSBxMmRf ZmFsbGJhY2soaW5saW5rLT5zYW1wbGVfYXNwZWN0X3JhdGlvLCAxLjApOwogICAgICAgICAgICAg ZG91YmxlIHNhcl9vdXQgPSBxMmRfZmFsbGJhY2sob3V0bGluay0+c2FtcGxlX2FzcGVjdF9yYXRp bywgMS4wKTsKLSAgICAgICAgICAgIGNvbnN0IGZsb2F0IHdfYWRqID0gc2FyX2luIC8gc2FyX291 dDsKKworICAgICAgICAgICAgcGxfcm90YXRpb24gcm90X3RvdGFsID0gUExfUk9UQVRJT05fMzYw ICsgaW1hZ2UtPnJvdGF0aW9uIC0gdGFyZ2V0LT5yb3RhdGlvbjsKKyAgICAgICAgICAgIGlmIChy b3RfdG90YWwgJSBQTF9ST1RBVElPTl8xODAgPT0gUExfUk9UQVRJT05fOTApCisgICAgICAgICAg ICAgICAgc2FyX2luID0gMS4wIC8gc2FyX2luOwogCiAgICAgICAgICAgICBwbF9yZWN0MmRmIGZp eGVkID0gaW1hZ2UtPmNyb3A7Ci0gICAgICAgICAgICBwbF9yZWN0MmRmX3N0cmV0Y2goJmZpeGVk LCB3X2FkaiwgMS4wKTsKKyAgICAgICAgICAgIHBsX3JlY3QyZGZfc3RyZXRjaCgmZml4ZWQsIHNh cl9pbiAvIHNhcl9vdXQsIDEuMCk7CiAKICAgICAgICAgICAgIHN3aXRjaCAocy0+Zml0X21vZGUp IHsKICAgICAgICAgICAgIGNhc2UgRklUX0ZJTEw6CkBAIC05NTQsOCArOTU3LDcgQEAgc3RhdGlj IHZvaWQgdXBkYXRlX2Nyb3BzKEFWRmlsdGVyQ29udGV4dCAqY3R4LCBMaWJwbGFjZWJvSW5wdXQg KmluLAogICAgICAgICAgICAgICAgIHBsX3JlY3QyZGZfYXNwZWN0X2ZpdCgmdGFyZ2V0LT5jcm9w LCAmZml4ZWQsIDAuMCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGNvbnN0IHBsX3Jv dGF0aW9uIHJvdF90b3RhbCA9IGltYWdlLT5yb3RhdGlvbiAtIHRhcmdldC0+cm90YXRpb247Ci0g ICAgICAgICAgICBpZiAoKHJvdF90b3RhbCArIFBMX1JPVEFUSU9OXzM2MCkgJSBQTF9ST1RBVElP Tl8xODAgPT0gUExfUk9UQVRJT05fOTApIHsKKyAgICAgICAgICAgIGlmIChyb3RfdG90YWwgJSBQ TF9ST1RBVElPTl8xODAgPT0gUExfUk9UQVRJT05fOTApIHsKICAgICAgICAgICAgICAgICAvKiBM aWJwbGFjZWJvIGV4cGVjdHMgdGhlIGlucHV0IGNyb3AgcmVsYXRpdmUgdG8gdGhlIGFjdHVhbCBm cmFtZQogICAgICAgICAgICAgICAgICAqIGRpbWVuc2lvbnMsIHNvIHVuLXRyYW5zcG9zZSB0aGVt IGhlcmUgKi8KICAgICAgICAgICAgICAgICBGRlNXQVAoZmxvYXQsIGltYWdlLT5jcm9wLngwLCBp bWFnZS0+Y3JvcC55MCk7Ci0tIAoyLjUyLjAKCgpGcm9tIDZhNzU1MGJkOTE5ZjUzYjc5NmM4MDQx MTU5YTc4NzhmYWNiZjdiYmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IGF2ZXJuZSA8 YXZlcm5lMzgxQGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAyOSBOb3YgMjAyNSAxNzoyNjo1MSArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMTM3LzMwNF0gdnVsa2FuL3Byb3JlczogZml4IGRlcXVhbnRpemF0 aW9uIGZvciA0OjI6Mgogc3Vic2FtcGxpbmcKCkJ1ZyBpbnRyb2R1Y2VkIGluIGQwMGY0MWYgZHVl IHRvIGFuIG92ZXJzaWdodC4KLS0tCiBsaWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNfaWRjdC5jb21w IHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92dWxrYW4vcHJvcmVzX2lkY3QuY29tcCBiL2xpYmF2Y29k ZWMvdnVsa2FuL3Byb3Jlc19pZGN0LmNvbXAKaW5kZXggMDViYThlNDk2Ny4uNWQwZDQxY2ZhNSAx MDA2NDQKLS0tIGEvbGliYXZjb2RlYy92dWxrYW4vcHJvcmVzX2lkY3QuY29tcAorKysgYi9saWJh dmNvZGVjL3Z1bGthbi9wcm9yZXNfaWRjdC5jb21wCkBAIC0xMjcsNyArMTI3LDcgQEAgdm9pZCBt YWluKHZvaWQpCiAgICAgICAgIHVpbnQ4X3RbNjRdIHFtYXQgPSBjb21wID09IDAgPyBxbWF0X2x1 bWEgOiBxbWF0X2Nocm9tYTsKIAogICAgICAgICAvKiBUYWJsZSAxNSAqLwotICAgICAgICB1aW50 OF90IHFpZHggPSBxdWFudF9pZHhbKGdpZC55ID4+IDEpICogbWJfd2lkdGggKyAoZ2lkLnggPj4g NCldOworICAgICAgICB1aW50OF90IHFpZHggPSBxdWFudF9pZHhbKGdpZC55ID4+IDEpICogbWJf d2lkdGggKyAoZ2lkLnggPj4gKDQgLSBjaHJvbWFfc2hpZnQpKV07CiAgICAgICAgIGludCBxc2Nh bGUgPSBxaWR4ID4gMTI4ID8gKHFpZHggLSA5NikgPDwgMiA6IHFpZHg7CiAKICAgICAgICAgW1t1 bnJvbGxdXSBmb3IgKHVpbnQgaSA9IDA7IGkgPCA4OyArK2kpIHsKLS0gCjIuNTIuMAoKCkZyb20g MjE2NzU4YTFhNDUxZjYxNWMyODJhNmIzNDZhMmY5ODFiMzIzYzM0YSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogYXZlcm5lIDxhdmVybmUzODFAZ21haWwuY29tPgpEYXRlOiBTYXQsIDI5 IE5vdiAyMDI1IDE3OjI1OjE3ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMzgvMzA0XSB2dWxrYW4v cHJvcmVzOiBub3JtYWxpemUgY29lZmZpY2llbnRzIGR1cmluZyBJRENUCgpUaGlzIGFsbG93cyBp bmNyZWFzZWQgaW50ZXJuYWwgcHJlY2lzaW9uLgpJbiBhZGRpdGlvbiwgd2UgY2FuIGludHJvZHVj ZSBhbiBvZmZzZXQgdG8gdGhlIERDIGNvZWZmaWNpZW50CmR1cmluZyB0aGUgc2Vjb25kIElEQ1Qg c3RlcCwgdG8gcmVtb3ZlIGEgcGVyLWVsZW1lbnQgYWRkaXRpb24KaW4gdGhlIG91dHB1dCBjb2Rl cGF0aC4KRmluYWxseSwgYnkgcHJvY2Vzc2luZyBjb2x1bW5zIGZpcnN0IHdlIGNhbiByZW1vdmUg dGhlIGJhcnJpZXIKYWZ0ZXIgbG9hZGluZyBjb2VmZmljaWVudHMuCgpTaWduZWQtb2ZmLWJ5OiBh dmVybmUgPGF2ZXJuZTM4MUBnbWFpbC5jb20+Ci0tLQogbGliYXZjb2RlYy92dWxrYW4vcHJvcmVz X2lkY3QuY29tcCB8IDU3ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDM3IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xp YmF2Y29kZWMvdnVsa2FuL3Byb3Jlc19pZGN0LmNvbXAgYi9saWJhdmNvZGVjL3Z1bGthbi9wcm9y ZXNfaWRjdC5jb21wCmluZGV4IDVkMGQ0MWNmYTUuLjVlZWY2MWU1N2EgMTAwNjQ0Ci0tLSBhL2xp YmF2Y29kZWMvdnVsa2FuL3Byb3Jlc19pZGN0LmNvbXAKKysrIGIvbGliYXZjb2RlYy92dWxrYW4v cHJvcmVzX2lkY3QuY29tcApAQCAtMzcsMTkgKzM3LDI3IEBAIHZvaWQgcHV0X3B4KHVpbnQgdGV4 X2lkeCwgaXZlYzIgcG9zLCB1aW50IHYpCiAjZW5kaWYKIH0KIAotY29uc3QgZmxvYXQgaWRjdF84 eDhfc2NhbGVzW10gPSB7Ci0gICAgMC4zNTM1NTMzOTA1OTMyNzRmLCAvLyBjb3MoNCAqIHBpLzE2 KSAvIDIKLSAgICAwLjQ5MDM5MjY0MDIwMTYxNWYsIC8vIGNvcygxICogcGkvMTYpIC8gMgotICAg IDAuNDYxOTM5NzY2MjU1NjQzZiwgLy8gY29zKDIgKiBwaS8xNikgLyAyCi0gICAgMC40MTU3MzQ4 MDYxNTEyNzNmLCAvLyBjb3MoMyAqIHBpLzE2KSAvIDIKLSAgICAwLjM1MzU1MzM5MDU5MzI3NGYs IC8vIGNvcyg0ICogcGkvMTYpIC8gMgotICAgIDAuMjc3Nzg1MTE2NTA5ODAxZiwgLy8gY29zKDUg KiBwaS8xNikgLyAyCi0gICAgMC4xOTEzNDE3MTYxODI1NDVmLCAvLyBjb3MoNiAqIHBpLzE2KSAv IDIKLSAgICAwLjA5NzU0NTE2MTAwODA2NGYsIC8vIGNvcyg3ICogcGkvMTYpIC8gMgorY29uc3Qg ZmxvYXQgaWRjdF9zY2FsZVs2NF0gPSB7CisgICAgMC4xMjUwMDAwMDAwMDAwMDAwLCAwLjE3MzM3 OTk4MDY2NTI2ODQsIDAuMTYzMzIwMzcwNjA5NTQ3MSwgMC4xNDY5ODQ0NTAzMDI0MTk5LAorICAg IDAuMTI1MDAwMDAwMDAwMDAwMCwgMC4wOTgyMTE4Njk3OTgzODc4LCAwLjA2NzY0OTUxMjUxODI3 NDYsIDAuMDM0NDg3NDIyNDEwMzY3OSwKKyAgICAwLjE3MzM3OTk4MDY2NTI2ODQsIDAuMjQwNDg0 OTQxNTYzOTEwOCwgMC4yMjY1MzE4NjE1ODgyMjE5LCAwLjIwMzg3MzI4OTIxMjIyOTMsCisgICAg MC4xNzMzNzk5ODA2NjUyNjg0LCAwLjEzNjIyMzc3NjY5Mzk1NDcsIDAuMDkzODMyNTY5Mzc5NDY2 MywgMC4wNDc4MzU0MjkwNDU2MzYyLAorICAgIDAuMTYzMzIwMzcwNjA5NTQ3MSwgMC4yMjY1MzE4 NjE1ODgyMjE5LCAwLjIxMzM4ODM0NzY0ODMxODQsIDAuMTkyMDQ0NDM5MTc3ODU0MSwKKyAgICAw LjE2MzMyMDM3MDYwOTU0NzEsIDAuMTI4MzE5OTkxNzg5ODM0MiwgMC4wODgzODgzNDc2NDgzMTg1 LCAwLjA0NTA1OTk4ODg3NTQzNDMsCisgICAgMC4xNDY5ODQ0NTAzMDI0MTk5LCAwLjIwMzg3MzI4 OTIxMjIyOTMsIDAuMTkyMDQ0NDM5MTc3ODU0MSwgMC4xNzI4MzU0MjkwNDU2MzYyLAorICAgIDAu MTQ2OTg0NDUwMzAyNDE5OSwgMC4xMTU0ODQ5NDE1NjM5MTA5LCAwLjA3OTU0NzQxMTI4NTgwMjEs IDAuMDQwNTUyOTE4NjAyNjgyMiwKKyAgICAwLjEyNTAwMDAwMDAwMDAwMDAsIDAuMTczMzc5OTgw NjY1MjY4NCwgMC4xNjMzMjAzNzA2MDk1NDcxLCAwLjE0Njk4NDQ1MDMwMjQxOTksCisgICAgMC4x MjUwMDAwMDAwMDAwMDAwLCAwLjA5ODIxMTg2OTc5ODM4NzgsIDAuMDY3NjQ5NTEyNTE4Mjc0Niwg MC4wMzQ0ODc0MjI0MTAzNjc5LAorICAgIDAuMDk4MjExODY5Nzk4Mzg3OCwgMC4xMzYyMjM3NzY2 OTM5NTQ3LCAwLjEyODMxOTk5MTc4OTgzNDIsIDAuMTE1NDg0OTQxNTYzOTEwOSwKKyAgICAwLjA5 ODIxMTg2OTc5ODM4NzgsIDAuMDc3MTY0NTcwOTU0MzYzOCwgMC4wNTMxNTE4ODA5MjI5NTM1LCAw LjAyNzA5NjU5MzkxNTU5MjQsCisgICAgMC4wNjc2NDk1MTI1MTgyNzQ2LCAwLjA5MzgzMjU2OTM3 OTQ2NjMsIDAuMDg4Mzg4MzQ3NjQ4MzE4NSwgMC4wNzk1NDc0MTEyODU4MDIxLAorICAgIDAuMDY3 NjQ5NTEyNTE4Mjc0NiwgMC4wNTMxNTE4ODA5MjI5NTM1LCAwLjAzNjYxMTY1MjM1MTY4MTYsIDAu MDE4NjY0NDU4NTEyNTg1NywKKyAgICAwLjAzNDQ4NzQyMjQxMDM2NzksIDAuMDQ3ODM1NDI5MDQ1 NjM2MiwgMC4wNDUwNTk5ODg4NzU0MzQzLCAwLjA0MDU1MjkxODYwMjY4MjIsCisgICAgMC4wMzQ0 ODc0MjI0MTAzNjc5LCAwLjAyNzA5NjU5MzkxNTU5MjQsIDAuMDE4NjY0NDU4NTEyNTg1NywgMC4w MDk1MTUwNTg0MzYwODkyLAogfTsKIAogLyogNy40IEludmVyc2UgVHJhbnNmb3JtICovCi12b2lk IGlkY3QodWludCBibG9jaywgdWludCBvZmZzZXQsIHVpbnQgc3RyaWRlKQordm9pZCBpZGN0OCh1 aW50IGJsb2NrLCB1aW50IG9mZnNldCwgdWludCBzdHJpZGUpCiB7CiAgICAgZmxvYXQgdDAsIHQx LCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB1ODsKICAgICBmbG9hdCB1MCwgdTEsIHUyLCB1Mywg dTQsIHU1LCB1NiwgdTc7CkBAIC0xMTcsNiArMTI1LDEyIEBAIHZvaWQgbWFpbih2b2lkKQogICAg IHVpbnQgY2hyb21hX3NoaWZ0ID0gY29tcCAhPSAwID8gbG9nMl9jaHJvbWFfdyA6IDA7CiAgICAg Ym9vbCBhY3QgPSBnaWQueCA8IG1iX3dpZHRoIDw8ICg0IC0gY2hyb21hX3NoaWZ0KTsKIAorICAg IC8qKgorICAgICAqIE5vcm1hbGl6ZSBjb2VmZmljaWVudHMgdG8gWy0xLCAxXSBmb3IgaW5jcmVh c2VkIHByZWNpc2lvbiBkdXJpbmcgdGhlIGlEQ1QuCisgICAgICogRENUIGNvZWZmcyBoYXZlIHRo ZSByYW5nZSBvZiBhIDEyLWJpdCBzaWduZWQgaW50ZWdlciAoNy40IEludmVyc2UgVHJhbnNmb3Jt KS4KKyAgICAgKi8KKyAgICBjb25zdCBmbG9hdCBub3JtID0gMS4wZiAvICgxIDw8IDExKTsKKwog ICAgIC8qIENvYWxlc2NlZCBsb2FkIG9mIERDVCBjb2VmZnMgaW4gc2hhcmVkIG1lbW9yeSwgaW52 ZXJzZSBxdWFudGl6YXRpb24gKi8KICAgICBpZiAoYWN0KSB7CiAgICAgICAgIC8qKgpAQCAtMTMx LDI4ICsxNDUsMzEgQEAgdm9pZCBtYWluKHZvaWQpCiAgICAgICAgIGludCBxc2NhbGUgPSBxaWR4 ID4gMTI4ID8gKHFpZHggLSA5NikgPDwgMiA6IHFpZHg7CiAKICAgICAgICAgW1t1bnJvbGxdXSBm b3IgKHVpbnQgaSA9IDA7IGkgPCA4OyArK2kpIHsKKyAgICAgICAgICAgIHVpbnQgY2lkeCA9IChp IDw8IDMpICsgaWR4OwogICAgICAgICAgICAgaW50ICAgYyA9IHNpZ25fZXh0ZW5kKGludChnZXRf cHgoY29tcCwgaXZlYzIoZ2lkLngsIChnaWQueSA8PCAzKSArIGkpKSksIDE2KTsKLSAgICAgICAg ICAgIGZsb2F0IHYgPSBmbG9hdChjICogcXNjYWxlICogaW50KHFtYXRbKGkgPDwgMykgKyBpZHhd KSk7Ci0gICAgICAgICAgICBibG9ja3NbYmxvY2tdW2kgKiA5ICsgaWR4XSA9IHYgKiBpZGN0Xzh4 OF9zY2FsZXNbaWR4XSAqIGlkY3RfOHg4X3NjYWxlc1tpXTsKKyAgICAgICAgICAgIGZsb2F0IHYg PSBmbG9hdChjICogcXNjYWxlICogaW50KHFtYXRbY2lkeF0pKSAqIG5vcm07CisgICAgICAgICAg ICBibG9ja3NbYmxvY2tdW2kgKiA5ICsgaWR4XSA9IHYgKiBpZGN0X3NjYWxlW2NpZHhdOwogICAg ICAgICB9CiAgICAgfQogCi0gICAgLyogUm93LXdpc2UgaURDVCAqLwotICAgIGJhcnJpZXIoKTsK LSAgICBpZGN0KGJsb2NrLCBpZHggKiA5LCAxKTsKLQogICAgIC8qIENvbHVtbi13aXNlIGlEQ1Qg Ki8KKyAgICBpZGN0OChibG9jaywgaWR4LCA5KTsKICAgICBiYXJyaWVyKCk7Ci0gICAgaWRjdChi bG9jaywgaWR4LCA5KTsKIAotICAgIGZsb2F0IGZhY3QgPSAxLjBmIC8gKDEgPDwgKDEyIC0gZGVw dGgpKSwgb2ZmID0gMSA8PCAoZGVwdGggLSAxKTsKKyAgICAvKiBSZW1hcCBbLTEsIDFdIHRvIFsw LCAyXSB0byByZW1vdmUgYSBwZXItZWxlbWVudCBhZGRpdGlvbiBpbiB0aGUgb3V0cHV0IGxvb3Ag Ki8KKyAgICBibG9ja3NbYmxvY2tdW2lkeCAqIDldICs9IDEuMGY7CisKKyAgICAvKiBSb3ctd2lz ZSBpRENUICovCisgICAgaWRjdDgoYmxvY2ssIGlkeCAqIDksIDEpOworICAgIGJhcnJpZXIoKTsK KworICAgIGZsb2F0IGZhY3QgPSAxIDw8IChkZXB0aCAtIDEpOwogICAgIGludCBtYXh2ID0gKDEg PDwgZGVwdGgpIC0gMTsKIAogICAgIC8qIDcuNS4xIENvbG9yIENvbXBvbmVudCBTYW1wbGVzLiBS ZXNjYWxlLCBjbGFtcCBhbmQgd3JpdGUgYmFjayB0byBnbG9iYWwgbWVtb3J5ICovCi0gICAgYmFy cmllcigpOwogICAgIGlmIChhY3QpIHsKICAgICAgICAgW1t1bnJvbGxdXSBmb3IgKHVpbnQgaSA9 IDA7IGkgPCA4OyArK2kpIHsKLSAgICAgICAgICAgIGZsb2F0IHYgPSByb3VuZChibG9ja3NbYmxv Y2tdW2kgKiA5ICsgaWR4XSAqIGZhY3QgKyBvZmYpOworICAgICAgICAgICAgZmxvYXQgdiA9IHJv dW5kKGJsb2Nrc1tibG9ja11baSAqIDkgKyBpZHhdICogZmFjdCk7CiAgICAgICAgICAgICBwdXRf cHgoY29tcCwgaXZlYzIoZ2lkLngsIChnaWQueSA8PCAzKSArIGkpLCBjbGFtcChpbnQodiksIDAs IG1heHYpKTsKICAgICAgICAgfQogICAgIH0KLS0gCjIuNTIuMAoKCkZyb20gMzQ0NzMyNTA0MTFk NWI5NmJhYmIzMTg3Y2RhYjkyZWM4MzQyYWVlZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogPT9VVEYtOD9xP0thY3Blcj0yME1pY2hhaj1DNT04Mm93Pz0gPGthc3BlcjkzQGdtYWlsLmNv bT4KRGF0ZTogU2F0LCAyOSBOb3YgMjAyNSAxMTozMzowOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTM5LzMwNF0gdG9vbHMvc29mYTJ3YXZzOiBmaXggYnVpbGQgb24gV2luZG93cwpNSU1FLVZlcnNp b246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1U cmFuc2Zlci1FbmNvZGluZzogOGJpdAoKU2lnbmVkLW9mZi1ieTogS2FjcGVyIE1pY2hhasWCb3cg PGthc3BlcjkzQGdtYWlsLmNvbT4KLS0tCiB0b29scy9zb2ZhMndhdnMuYyB8IDYgKysrKysrCiAx IGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdG9vbHMvc29mYTJ3 YXZzLmMgYi90b29scy9zb2ZhMndhdnMuYwppbmRleCAxZjEwNzViMjJmLi5kNTUxOTEzZGNlIDEw MDY0NAotLS0gYS90b29scy9zb2ZhMndhdnMuYworKysgYi90b29scy9zb2ZhMndhdnMuYwpAQCAt MjQsNiArMjQsMTIgQEAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPG15c29mYS5oPgog CisjaWZkZWYgX1dJTjMyCisjaW5jbHVkZSA8ZGlyZWN0Lmg+CisjdW5kZWYgbWtkaXIKKyNkZWZp bmUgbWtkaXIoYSwgYikgX21rZGlyKGEpCisjZW5kaWYKKwogaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogewogICAgIHN0cnVjdCBNWVNPRkFfSFJURiAqaHJ0ZjsKLS0gCjIuNTIuMAoK CkZyb20gNzhiYzcwNjU0ODU4NzNkNjQ0MTg4YWVhYzQyNGIwYTU0NzY4MWFkZCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFy ZHRAb3V0bG9vay5jb20+CkRhdGU6IFdlZCwgMjYgTm92IDIwMjUgMTI6MjY6MzcgKzAxMDAKU3Vi amVjdDogW1BBVENIIDE0MC8zMDRdIGF2Y29kZWMveDg2L2gyNjRpZGN0OiBSZW1vdmUgZGVhZCBN TVggbWFjcm9zCgpGb3Jnb3R0ZW4gaW4gNDYxOGYzNmEyNDI0YTNhNGQ1NzYwYWZhYmMyZTlkZDE4 ZDczZjBhNC4KClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVp bmhhcmR0QG91dGxvb2suY29tPgotLS0KIGxpYmF2Y29kZWMveDg2L2gyNjRfaWRjdC5hc20gfCAx MDUgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDEwMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVj L3g4Ni9oMjY0X2lkY3QuYXNtIGIvbGliYXZjb2RlYy94ODYvaDI2NF9pZGN0LmFzbQppbmRleCBk OWMzYzljODYyLi45ODU5NTVkOTZhIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4Ni9oMjY0X2lk Y3QuYXNtCisrKyBiL2xpYmF2Y29kZWMveDg2L2gyNjRfaWRjdC5hc20KQEAgLTE0NSw2MSArMTQ1 LDYgQEAgU0VDVElPTiAudGV4dAogICAgIElEQ1Q4XzFEICAgWyUxXSwgWyUxKyA2NF0KICVlbmRt YWNybwogCi07ICUxPWludDE2X3QgKmJsb2NrLCAlMj1pbnQxNl90ICpkc3RibG9jawotJW1hY3Jv IElEQ1Q4X0FERF9NTVhfU1RBUlQgMgotICAgIElEQ1Q4XzFEX0ZVTEwgJTEKLSAgICBtb3ZhICAg ICAgIFslMV0sIG03Ci0gICAgVFJBTlNQT1NFNHg0VyAwLCAxLCAyLCAzLCA3Ci0gICAgbW92YSAg ICAgICAgIG03LCBbJTFdCi0gICAgbW92YSAgICBbJTIgICBdLCBtMAotICAgIG1vdmEgICAgWyUy KzE2XSwgbTEKLSAgICBtb3ZhICAgIFslMiszMl0sIG0yCi0gICAgbW92YSAgICBbJTIrNDhdLCBt MwotICAgIFRSQU5TUE9TRTR4NFcgNCwgNSwgNiwgNywgMwotICAgIG1vdmEgICAgWyUyKyA4XSwg bTQKLSAgICBtb3ZhICAgIFslMisyNF0sIG01Ci0gICAgbW92YSAgICBbJTIrNDBdLCBtNgotICAg IG1vdmEgICAgWyUyKzU2XSwgbTcKLSVlbmRtYWNybwotCi07ICUxPXVpbnQ4X3QgKmRzdCwgJTI9 aW50MTZfdCAqYmxvY2ssICUzPWludCBzdHJpZGUKLSVtYWNybyBJRENUOF9BRERfTU1YX0VORCAz LTQKLSAgICBJRENUOF8xRF9GVUxMICUyCi0gICAgbW92YSAgICBbJTIgICBdLCBtNQotICAgIG1v dmEgICAgWyUyKzE2XSwgbTYKLSAgICBtb3ZhICAgIFslMiszMl0sIG03Ci0KLSAgICBweG9yICAg ICAgICAgbTcsIG03Ci0laWYgJTAgPT0gNAotICAgIG1vdnEgICBbJTQrICAwXSwgbTcKLSAgICBt b3ZxICAgWyU0KyAgOF0sIG03Ci0gICAgbW92cSAgIFslNCsgMTZdLCBtNwotICAgIG1vdnEgICBb JTQrIDI0XSwgbTcKLSAgICBtb3ZxICAgWyU0KyAzMl0sIG03Ci0gICAgbW92cSAgIFslNCsgNDBd LCBtNwotICAgIG1vdnEgICBbJTQrIDQ4XSwgbTcKLSAgICBtb3ZxICAgWyU0KyA1Nl0sIG03Ci0g ICAgbW92cSAgIFslNCsgNjRdLCBtNwotICAgIG1vdnEgICBbJTQrIDcyXSwgbTcKLSAgICBtb3Zx ICAgWyU0KyA4MF0sIG03Ci0gICAgbW92cSAgIFslNCsgODhdLCBtNwotICAgIG1vdnEgICBbJTQr IDk2XSwgbTcKLSAgICBtb3ZxICAgWyU0KzEwNF0sIG03Ci0gICAgbW92cSAgIFslNCsxMTJdLCBt NwotICAgIG1vdnEgICBbJTQrMTIwXSwgbTcKLSVlbmRpZgotICAgIFNUT1JFX0RJRkZ4MiBtMCwg bTEsIG01LCBtNiwgbTcsIDYsICUxLCAlMwotICAgIGxlYSAgICAgICAgICAlMSwgWyUxKyUzKjJd Ci0gICAgU1RPUkVfRElGRngyIG0yLCBtMywgbTUsIG02LCBtNywgNiwgJTEsICUzCi0gICAgbW92 YSAgICAgICAgIG0wLCBbJTIgICBdCi0gICAgbW92YSAgICAgICAgIG0xLCBbJTIrMTZdCi0gICAg bW92YSAgICAgICAgIG0yLCBbJTIrMzJdCi0gICAgbGVhICAgICAgICAgICUxLCBbJTErJTMqMl0K LSAgICBTVE9SRV9ESUZGeDIgbTQsIG0wLCBtNSwgbTYsIG03LCA2LCAlMSwgJTMKLSAgICBsZWEg ICAgICAgICAgJTEsIFslMSslMyoyXQotICAgIFNUT1JFX0RJRkZ4MiBtMSwgbTIsIG01LCBtNiwg bTcsIDYsICUxLCAlMwotJWVuZG1hY3JvCi0KIDsgJTE9dWludDhfdCAqZHN0LCAlMj1pbnQxNl90 ICpibG9jaywgJTM9aW50IHN0cmlkZQogJW1hY3JvIElEQ1Q4X0FERF9TU0UgNAogICAgIElEQ1Q4 XzFEX0ZVTEwgJTIKQEAgLTYxMiw3ICs1NTcsNyBAQCBjZ2xvYmFsIGgyNjRfaWRjdF9hZGQ4Xzgs IDUsIDcgKyBBUkNIX1g4Nl82NCwgOAogICAgIGFkZDhfc3NlMl9jeWNsZSAzLCAweDY0CiBSRVQK IAotO3ZvaWQgZmZfaDI2NF9sdW1hX2RjX2RlcXVhbnRfaWRjdF9tbXgoaW50MTZfdCAqb3V0cHV0 LCBpbnQxNl90ICppbnB1dCwgaW50IHFtdWwpCis7dm9pZCBmZl9oMjY0X2x1bWFfZGNfZGVxdWFu dF9pZGN0X3NzZTIoaW50MTZfdCAqb3V0cHV0LCBpbnQxNl90ICppbnB1dCwgaW50IHFtdWwpCiAK ICVtYWNybyBXQUxTSDRfMUQgNQogICAgIFNVTVNVQl9CQURDIHcsICU0LCAlMywgJTIsICUxLCAl NQpAQCAtNjIwLDggKzU2NSw3IEBAIFJFVAogICAgIFNXQVAgJTEsICU0LCAlMwogJWVuZG1hY3Jv CiAKLSVtYWNybyBERVFVQU5UIDEtMwotJWlmIGNwdWZsYWcoc3NlMikKKyVtYWNybyBERVFVQU5U IDEKICAgICBtb3ZkICAgICAgeG1tNCwgdDNkCiAgICAgbW92cSAgICAgIHhtbTUsIFtwd18xXQog ICAgIHBzaHVmZCAgICB4bW00LCB4bW00LCAwCkBAIC02NDMsMzEgKzU4Nyw5IEBAIFJFVAogICAg IHBzcmFkICAgICB4bW0zLCAlMQogICAgIHBhY2tzc2R3ICB4bW0wLCB4bW0xCiAgICAgcGFja3Nz ZHcgIHhtbTIsIHhtbTMKLSVlbHNlCi0gICAgbW92YSAgICAgICAgbTcsIFtwd18xXQotICAgIG1v dmEgICAgICAgIG00LCAlMQotICAgIHB1bnBja2x3ZCAgICUxLCBtNwotICAgIHB1bnBja2h3ZCAg IG00LCBtNwotICAgIG1vdmEgICAgICAgIG01LCAlMgotICAgIHB1bnBja2x3ZCAgICUyLCBtNwot ICAgIHB1bnBja2h3ZCAgIG01LCBtNwotICAgIG1vdmQgICAgICAgIG03LCB0M2QKLSAgICBwdW5w Y2tsZHEgICBtNywgbTcKLSAgICBwbWFkZHdkICAgICAlMSwgbTcKLSAgICBwbWFkZHdkICAgICAl MiwgbTcKLSAgICBwbWFkZHdkICAgICBtNCwgbTcKLSAgICBwbWFkZHdkICAgICBtNSwgbTcKLSAg ICBwc3JhZCAgICAgICAlMSwgJTMKLSAgICBwc3JhZCAgICAgICAlMiwgJTMKLSAgICBwc3JhZCAg ICAgICBtNCwgJTMKLSAgICBwc3JhZCAgICAgICBtNSwgJTMKLSAgICBwYWNrc3NkdyAgICAlMSwg bTQKLSAgICBwYWNrc3NkdyAgICAlMiwgbTUKLSVlbmRpZgogJWVuZG1hY3JvCiAKLSVtYWNybyBT VE9SRV9XT1JEUyA1LTkKLSVpZiBjcHVmbGFnKHNzZSkKKyVtYWNybyBTVE9SRV9XT1JEUyA5CiAg ICAgbW92ZCAgdDBkLCAlMQogICAgIHBzcmxkcSAgJTEsIDQKICAgICBtb3ZkICB0MWQsICUxCkBA IC02ODcsMzMgKzYwOSwxMiBAQCBSRVQKICAgICBzaHIgICB0MWQsIDE2CiAgICAgbW92IFt0Misl NyozMl0sIHQwdwogICAgIG1vdiBbdDIrJTkqMzJdLCB0MXcKLSVlbHNlCi0gICAgbW92ZCAgdDBk LCAlMQotICAgIHBzcmxxICAlMSwgMzIKLSAgICBtb3ZkICB0MWQsICUxCi0gICAgbW92IFt0Misl MiozMl0sIHQwdwotICAgIG1vdiBbdDIrJTQqMzJdLCB0MXcKLSAgICBzaHIgICB0MGQsIDE2Ci0g ICAgc2hyICAgdDFkLCAxNgotICAgIG1vdiBbdDIrJTMqMzJdLCB0MHcKLSAgICBtb3YgW3QyKyU1 KjMyXSwgdDF3Ci0lZW5kaWYKICVlbmRtYWNybwogCiAlbWFjcm8gREVRVUFOVF9TVE9SRSAxCi0l aWYgY3B1ZmxhZyhzc2UyKQogICAgIERFUVVBTlQgICAgICUxCiAgICAgU1RPUkVfV09SRFMgeG1t MCwgIDAsICAxLCAgNCwgIDUsICAyLCAgMywgIDYsICA3CiAgICAgU1RPUkVfV09SRFMgeG1tMiwg IDgsICA5LCAxMiwgMTMsIDEwLCAxMSwgMTQsIDE1Ci0lZWxzZQotICAgIERFUVVBTlQgICAgIG0w LCBtMSwgJTEKLSAgICBTVE9SRV9XT1JEUyBtMCwgIDAsICAxLCAgNCwgIDUKLSAgICBTVE9SRV9X T1JEUyBtMSwgIDIsICAzLCAgNiwgIDcKLQotICAgIERFUVVBTlQgICAgIG0yLCBtMywgJTEKLSAg ICBTVE9SRV9XT1JEUyBtMiwgIDgsICA5LCAxMiwgMTMKLSAgICBTVE9SRV9XT1JEUyBtMywgMTAs IDExLCAxNCwgMTUKLSVlbmRpZgogJWVuZG1hY3JvCiAKIElOSVRfWE1NIHNzZTIKLS0gCjIuNTIu MAoKCkZyb20gNGVlMGJlMjcyYTAwMzY4ODcxNzYzMTM1M2I3YmUyYWMxNjFlNDhmOSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWlu aGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFdlZCwgMjYgTm92IDIwMjUgMTI6Mzg6NTggKzAxMDAK U3ViamVjdDogW1BBVENIIDE0MS8zMDRdIGF2Y29kZWMveDg2L2gyNjRfaWRjdDogUmVtb3ZlIHJl ZHVuZGFudCBtb3ZzeGRpZm5pZG4KCk9ubHkgZXhwb3J0ZWQgKGkuZS4gY2dsb2JhbCkgZnVuY3Rp b25zIG5lZWQgaXQ7IHN0cmlkZSBpcyBhbHJlYWR5CnNpZ24tZXh0ZW5kZWQgd2hlbiBpdCByZWFj aGVzIGFueSBvZiB0aGUgaW50ZXJuYWwgZnVuY3Rpb25zIHVzZWQgaGVyZSwKc28gZG9uJ3Qgc2ln bi1leHRlbmQgYWdhaW4uCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJl YXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KLS0tCiBsaWJhdmNvZGVjL3g4Ni9oMjY0X2lkY3Qu YXNtIHwgMTEgKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDcg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvaDI2NF9pZGN0LmFzbSBi L2xpYmF2Y29kZWMveDg2L2gyNjRfaWRjdC5hc20KaW5kZXggOTg1OTU1ZDk2YS4uNjg2M2RiY2I0 ZCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvaDI2NF9pZGN0LmFzbQorKysgYi9saWJhdmNv ZGVjL3g4Ni9oMjY0X2lkY3QuYXNtCkBAIC01NSw3ICs1NSw3IEBAIGNleHRlcm4gcHdfMQogCiBT RUNUSU9OIC50ZXh0CiAKLTsgJTE9dWludDhfdCAqZHN0LCAlMj1pbnQxNl90ICpibG9jaywgJTM9 aW50IHN0cmlkZQorOyAlMT11aW50OF90ICpkc3QsICUyPWludDE2X3QgKmJsb2NrLCAlMz1wdHJk aWZmX3Qgc3RyaWRlCiAlbWFjcm8gSURDVDRfQUREIDMKICAgICA7IExvYWQgZGN0IGNvZWZmcwog ICAgIG1vdnEgICAgICAgICBtMCwgWyUyXQpAQCAtMTQ1LDcgKzE0NSw3IEBAIFNFQ1RJT04gLnRl eHQKICAgICBJRENUOF8xRCAgIFslMV0sIFslMSsgNjRdCiAlZW5kbWFjcm8KIAotOyAlMT11aW50 OF90ICpkc3QsICUyPWludDE2X3QgKmJsb2NrLCAlMz1pbnQgc3RyaWRlCis7ICUxPXVpbnQ4X3Qg KmRzdCwgJTI9aW50MTZfdCAqYmxvY2ssICUzPXB0cmRpZmZfdCBzdHJpZGUKICVtYWNybyBJRENU OF9BRERfU1NFIDQKICAgICBJRENUOF8xRF9GVUxMICUyCiAlaWYgQVJDSF9YODZfNjQKQEAgLTMx Nyw3ICszMTcsNiBAQCBJTklUX1hNTSBjcHVuYW1lCiAKIElOSVRfTU1YIG1teAogaDI2NF9pZGN0 X2FkZDhfbW14X3BsYW5lOgotICAgIG1vdnN4ZGlmbmlkbiByMywgcjNkCiAubmV4dGJsb2NrOgog ICAgIG1vdnp4ICAgICAgICByNiwgYnl0ZSBbc2NhbjgrcjVdCiAgICAgbW92enggICAgICAgIHI2 LCBieXRlIFtyNCtyNl0KQEAgLTM3Miw5ICszNzEsOCBAQCBjZ2xvYmFsIGgyNjRfaWRjdF9hZGQ4 XzQyMl84LCA1LCA4ICsgbnBpY3JlZ3MsIDAsIGRzdDEsIGJsb2NrX29mZnNldCwgYmxvY2ssIHN0 cgogCiAgICAgUkVUIDsgVE9ETzogY2hlY2sgcmVwIHJldCBhZnRlciBhIGZ1bmN0aW9uIGNhbGwK IAotOyByMCA9IHVpbnQ4X3QgKmRzdCwgcjIgPSBpbnQxNl90ICpibG9jaywgcjMgPSBpbnQgc3Ry aWRlLCByNj1jbG9iYmVyZWQKKzsgcjAgPSB1aW50OF90ICpkc3QsIHIyID0gaW50MTZfdCAqYmxv Y2ssIHIzID0gcHRyZGlmZl90IHN0cmlkZSwgcjY9Y2xvYmJlcmVkCiBoMjY0X2lkY3RfZGNfYWRk OF9tbXhleHQ6Ci0gICAgbW92c3hkaWZuaWRuIHIzLCByM2QKICAgICBtb3ZkICAgICAgICAgbTAs IFtyMiAgIF0gICAgICAgICAgOyAgMCAwIFggRAogICAgIG1vdiB3b3JkIFtyMisgMF0sIDAKICAg ICBwdW5wY2tsd2QgICAgbTAsIFtyMiszMl0gICAgICAgICAgOyAgeCBYIGQgRApAQCAtMzkzLDkg KzM5MSw4IEBAIGgyNjRfaWRjdF9kY19hZGQ4X21teGV4dDoKIAogQUxJR04gMTYKIElOSVRfWE1N IHNzZTIKLTsgcjAgPSB1aW50OF90ICpkc3QgKGNsb2JiZXJlZCksIHIyID0gaW50MTZfdCAqYmxv Y2ssIHIzID0gaW50IHN0cmlkZQorOyByMCA9IHVpbnQ4X3QgKmRzdCAoY2xvYmJlcmVkKSwgcjIg PSBpbnQxNl90ICpibG9jaywgcjMgPSBwdHJkaWZmX3Qgc3RyaWRlCiBoMjY0X2FkZDh4NF9pZGN0 X3NzZTI6Ci0gICAgbW92c3hkaWZuaWRuIHIzLCByM2QKICAgICBtb3ZxICAgbTAsIFtyMisgMF0K ICAgICBtb3ZxICAgbTEsIFtyMisgOF0KICAgICBtb3ZxICAgbTIsIFtyMisxNl0KLS0gCjIuNTIu MAoKCkZyb20gZDIzMGY1MzlhYzFlYjQyNThkMDIyZTUyMDU3NDUzYjcxODZkYjNkYiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWlu aGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFdlZCwgMjYgTm92IDIwMjUgMTQ6MDk6NTcgKzAxMDAK U3ViamVjdDogW1BBVENIIDE0Mi8zMDRdIGF2Y29kZWMveDg2L2gyNjRfaWRjdDogQXZvaWQgY2Fs bCB3aGVyZSBwb3NzaWJsZQoKU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRy ZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGliYXZjb2RlYy94ODYvaDI2NF9pZGN0 LmFzbSB8IDQ5ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xp YmF2Y29kZWMveDg2L2gyNjRfaWRjdC5hc20gYi9saWJhdmNvZGVjL3g4Ni9oMjY0X2lkY3QuYXNt CmluZGV4IDY4NjNkYmNiNGQuLjk0MDVhYTg0OGEgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2 L2gyNjRfaWRjdC5hc20KKysrIGIvbGliYXZjb2RlYy94ODYvaDI2NF9pZGN0LmFzbQpAQCAtMzE2 LDI5ICszMTYsNiBAQCBJTklUX1hNTSBjcHVuYW1lCiAgICAgUkVUCiAKIElOSVRfTU1YIG1teAot aDI2NF9pZGN0X2FkZDhfbW14X3BsYW5lOgotLm5leHRibG9jazoKLSAgICBtb3Z6eCAgICAgICAg cjYsIGJ5dGUgW3NjYW44K3I1XQotICAgIG1vdnp4ICAgICAgICByNiwgYnl0ZSBbcjQrcjZdCi0g ICAgb3IgICAgICAgICAgcjZ3LCB3b3JkIFtyMl0KLSAgICB0ZXN0ICAgICAgICAgcjYsIHI2Ci0g ICAganogLnNraXBibG9jawotJWlmIEFSQ0hfWDg2XzY0Ci0gICAgbW92ICAgICAgICAgcjBkLCBk d29yZCBbcjErcjUqNF0KLSAgICBhZGQgICAgICAgICAgcjAsIFtkc3QycV0KLSVlbHNlCi0gICAg bW92ICAgICAgICAgIHIwLCByMW0gOyBYWFggcjFtIGhlcmUgaXMgYWN0dWFsbHkgcjBtIG9mIHRo ZSBjYWxsaW5nIGZ1bmMKLSAgICBtb3YgICAgICAgICAgcjAsIFtyMF0KLSAgICBhZGQgICAgICAg ICAgcjAsIGR3b3JkIFtyMStyNSo0XQotJWVuZGlmCi0gICAgSURDVDRfQUREICAgIHIwLCByMiwg cjMKLS5za2lwYmxvY2s6Ci0gICAgaW5jICAgICAgICAgIHI1Ci0gICAgYWRkICAgICAgICAgIHIy LCAzMgotICAgIHRlc3QgICAgICAgICByNSwgMwotICAgIGpueiAubmV4dGJsb2NrCi0gICAgcmVw IHJldAotCiBjZ2xvYmFsIGgyNjRfaWRjdF9hZGQ4XzQyMl84LCA1LCA4ICsgbnBpY3JlZ3MsIDAs IGRzdDEsIGJsb2NrX29mZnNldCwgYmxvY2ssIHN0cmlkZSwgbm56YywgY250ciwgY29lZmYsIGRz dDIsIHBpY3JlZwogOyBkc3QxLCBibG9ja19vZmZzZXQsIGJsb2NrLCBzdHJpZGUsIG5uemMsIGNu dHIsIGNvZWZmLCBkc3QyLCBwaWNyZWcKICAgICBtb3ZzeGRpZm5pZG4gcjMsIHIzZApAQCAtMzY3 LDkgKzM0NCwzMSBAQCBjZ2xvYmFsIGgyNjRfaWRjdF9hZGQ4XzQyMl84LCA1LCA4ICsgbnBpY3Jl Z3MsIDAsIGRzdDEsIGJsb2NrX29mZnNldCwgYmxvY2ssIHN0cgogCiAgICAgY2FsbCAgICAgICAg IGgyNjRfaWRjdF9hZGQ4X21teF9wbGFuZQogICAgIGFkZCByNSwgNAotICAgIGNhbGwgICAgICAg ICBoMjY0X2lkY3RfYWRkOF9tbXhfcGxhbmUKKyAgICBUQUlMX0NBTEwgICAgaDI2NF9pZGN0X2Fk ZDhfbW14X3BsYW5lLCAwCisKK2gyNjRfaWRjdF9hZGQ4X21teF9wbGFuZToKKy5uZXh0YmxvY2s6 CisgICAgbW92enggICAgICAgcjZkLCBieXRlIFtzY2FuOCtyNV0KKyAgICBtb3Z6eCAgICAgICBy NmQsIGJ5dGUgW3I0K3I2XQorICAgIG9yICAgICAgICAgIHI2dywgd29yZCBbcjJdCisgICAgdGVz dCAgICAgICAgcjZkLCByNmQKKyAgICBqeiAuc2tpcGJsb2NrCislaWYgQVJDSF9YODZfNjQKKyAg ICBtb3YgICAgICAgICByMGQsIGR3b3JkIFtyMStyNSo0XQorICAgIGFkZCAgICAgICAgICByMCwg W2RzdDJxXQorJWVsc2UKKyAgICBtb3YgICAgICAgICAgcjAsIHIxbSA7IFhYWCByMW0gaGVyZSBp cyBhY3R1YWxseSByMG0gb2YgdGhlIGNhbGxpbmcgZnVuYworICAgIG1vdiAgICAgICAgICByMCwg W3IwXQorICAgIGFkZCAgICAgICAgICByMCwgZHdvcmQgW3IxK3I1KjRdCislZW5kaWYKKyAgICBJ RENUNF9BREQgICAgcjAsIHIyLCByMworLnNraXBibG9jazoKKyAgICBpbmMgICAgICAgICByNWQK KyAgICBhZGQgICAgICAgICAgcjIsIDMyCisgICAgdGVzdCAgICAgICAgcjVkLCAzCisgICAgam56 IC5uZXh0YmxvY2sKKyAgICByZXAgcmV0CiAKLSAgICBSRVQgOyBUT0RPOiBjaGVjayByZXAgcmV0 IGFmdGVyIGEgZnVuY3Rpb24gY2FsbAogCiA7IHIwID0gdWludDhfdCAqZHN0LCByMiA9IGludDE2 X3QgKmJsb2NrLCByMyA9IHB0cmRpZmZfdCBzdHJpZGUsIHI2PWNsb2JiZXJlZAogaDI2NF9pZGN0 X2RjX2FkZDhfbW14ZXh0OgotLSAKMi41Mi4wCgoKRnJvbSBmZGU0NWY0OWFlMGQ3ZmJhYjQxOTg3 ZmI2YjdmMjc2MTdiODU0YzYyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFz IFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogV2VkLCAy NiBOb3YgMjAyNSAxNDo1Nzo0NSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTQzLzMwNF0gYXZ1dGls L3g4Ni94ODZpbmM6IFVzZSBwYXJlbnRoZXNlcyBpbiBoYXNfZXBpbG9ndWUKClByZXZlbnRzIHN1 cnByaXNlcy4KClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVp bmhhcmR0QG91dGxvb2suY29tPgotLS0KIGxpYmF2dXRpbC94ODYveDg2aW5jLmFzbSB8IDYgKysr LS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2xpYmF2dXRpbC94ODYveDg2aW5jLmFzbSBiL2xpYmF2dXRpbC94ODYveDg2aW5j LmFzbQppbmRleCBlNjFkOTI0YmMxLi4wZTgwZWJlZDQzIDEwMDY0NAotLS0gYS9saWJhdnV0aWwv eDg2L3g4NmluYy5hc20KKysrIGIvbGliYXZ1dGlsL3g4Ni94ODZpbmMuYXNtCkBAIC02MDksNyAr NjA5LDcgQEAgREVDTEFSRV9SRUcgMTQsIFIxMywgMTIwCiAgICAgUkVTRVRfU1RBQ0tfU1RBVEUK ICVlbmRtYWNybwogCi0lZGVmaW5lIGhhc19lcGlsb2d1ZSByZWdzX3VzZWQgPiA3IHx8IHN0YWNr X3NpemUgPiAwIHx8IHZ6ZXJvdXBwZXJfcmVxdWlyZWQgfHwgeG1tX3JlZ3NfdXNlZCA+IDYraGln aF9tbV9yZWdzCislZGVmaW5lIGhhc19lcGlsb2d1ZSAocmVnc191c2VkID4gNyB8fCBzdGFja19z aXplID4gMCB8fCB2emVyb3VwcGVyX3JlcXVpcmVkIHx8IHhtbV9yZWdzX3VzZWQgPiA2K2hpZ2hf bW1fcmVncykKIAogJW1hY3JvIFJFVCAwCiAgICAgV0lONjRfUkVTVE9SRV9YTU1fSU5URVJOQUwK QEAgLTY1OCw3ICs2NTgsNyBAQCBERUNMQVJFX1JFRyAxNCwgUjEzLCA3MgogICAgICVlbmRpZgog JWVuZG1hY3JvCiAKLSVkZWZpbmUgaGFzX2VwaWxvZ3VlIHJlZ3NfdXNlZCA+IDkgfHwgc3RhY2tf c2l6ZSA+IDAgfHwgdnplcm91cHBlcl9yZXF1aXJlZAorJWRlZmluZSBoYXNfZXBpbG9ndWUgKHJl Z3NfdXNlZCA+IDkgfHwgc3RhY2tfc2l6ZSA+IDAgfHwgdnplcm91cHBlcl9yZXF1aXJlZCkKIAog JW1hY3JvIFJFVCAwCiAgICAgJWlmIHN0YWNrX3NpemVfcGFkZGVkID4gMApAQCAtNzIyLDcgKzcy Miw3IEBAIERFQ0xBUkVfQVJHIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNAogICAgICVlbmRp ZgogJWVuZG1hY3JvCiAKLSVkZWZpbmUgaGFzX2VwaWxvZ3VlIHJlZ3NfdXNlZCA+IDMgfHwgc3Rh Y2tfc2l6ZSA+IDAgfHwgdnplcm91cHBlcl9yZXF1aXJlZAorJWRlZmluZSBoYXNfZXBpbG9ndWUg KHJlZ3NfdXNlZCA+IDMgfHwgc3RhY2tfc2l6ZSA+IDAgfHwgdnplcm91cHBlcl9yZXF1aXJlZCkK IAogJW1hY3JvIFJFVCAwCiAgICAgJWlmIHN0YWNrX3NpemVfcGFkZGVkID4gMAotLSAKMi41Mi4w CgoKRnJvbSA1YzAzZTBmMGNiZjRkOTBlZjE3NmQxNGMxOTJkNDdmNzM2ZGNlNzI2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5o YXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogV2VkLCAyNiBOb3YgMjAyNSAxNToyMzozMSArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMTQ0LzMwNF0gYXZjb2RlYy94ODYvaDI2NF9pZGN0OiBVc2UgdGFpbCBj YWxsIHdoZXJlCiBhZHZhbnRhZ2VvdXMKCkl0IGlzIHBvc3NpYmxlIG9uIFVOSVg2NC4KClNpZ25l ZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2su Y29tPgotLS0KIGxpYmF2Y29kZWMveDg2L2gyNjRfaWRjdC5hc20gfCAyNSArKysrKysrKysrKysr KysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni9oMjY0X2lkY3QuYXNtIGIvbGliYXZj b2RlYy94ODYvaDI2NF9pZGN0LmFzbQppbmRleCA5NDA1YWE4NDhhLi40YjllZmQ2ZDZkIDEwMDY0 NAotLS0gYS9saWJhdmNvZGVjL3g4Ni9oMjY0X2lkY3QuYXNtCisrKyBiL2xpYmF2Y29kZWMveDg2 L2gyNjRfaWRjdC5hc20KQEAgLTU1LDYgKzU1LDE5IEBAIGNleHRlcm4gcHdfMQogCiBTRUNUSU9O IC50ZXh0CiAKKzsgJTE9Y2FsbGVlLCAlMj1kc3QgdG8ganVtcCB0byBpZiB0YWlsIGNhbGwgaXMg aW1wb3NzaWJsZSAoY2FuIGJlIGVtcHR5LAorOyB0aGVuIG5vIGptcCBpcyBwZXJmb3JtZWQpLCAl Mz1jdXJyZW50IGl0ZXJhdGlvbiwgJTQ9bGFzdCBpdGVyYXRpb24KKyVtYWNybyBUQUlMX0NBTExf SUZfTEFTVCA0CislaWYgKCUzID09ICU0KSAmJiAhaGFzX2VwaWxvZ3VlCisgICAgam1wICAgICAg ICAgJTEKKyVlbHNlCisgICAgY2FsbCAgICAgICAgJTEKKyAgICAlaWZuZW1wdHkgJTIKKyAgICAg ICAgam1wICAgICAgJTIKKyAgICAlZW5kaWYKKyVlbmRpZgorJWVuZG1hY3JvCisKIDsgJTE9dWlu dDhfdCAqZHN0LCAlMj1pbnQxNl90ICpibG9jaywgJTM9cHRyZGlmZl90IHN0cmlkZQogJW1hY3Jv IElEQ1Q0X0FERCAzCiAgICAgOyBMb2FkIGRjdCBjb2VmZnMKQEAgLTQyNCw3ICs0MzcsNyBAQCBo MjY0X2FkZDh4NF9pZGN0X3NzZTI6CiAlZWxzZQogICAgIGFkZCAgICAgICAgIHIwLCByMG0KICVl bmRpZgotICAgIGNhbGwgICAgICAgIGgyNjRfYWRkOHg0X2lkY3Rfc3NlMgorICAgIFRBSUxfQ0FM TF9JRl9MQVNUIGgyNjRfYWRkOHg0X2lkY3Rfc3NlMiwgLCAlMSwgNwogLmN5Y2xlJTFlbmQ6CiAl aWYgJTEgPCA3CiAgICAgYWRkICAgICAgICAgcjIsIDY0CkBAIC00NjEsOCArNDc0LDcgQEAgUkVU CiAlZWxzZQogICAgIGFkZCAgICAgICAgIHIwLCByMG0KICVlbmRpZgotICAgIGNhbGwgICAgICAg IGgyNjRfYWRkOHg0X2lkY3Rfc3NlMgotICAgIGptcCAuY3ljbGUlMWVuZAorICAgIFRBSUxfQ0FM TF9JRl9MQVNUIGgyNjRfYWRkOHg0X2lkY3Rfc3NlMiwgLmN5Y2xlJTFlbmQsICUxLCA3CiAudHJ5 JTFkYzoKICAgICBtb3ZzeCAgICAgICByMCwgd29yZCBbcjIgICBdCiAgICAgb3IgICAgICAgICBy MHcsIHdvcmQgW3IyKzMyXQpAQCAtNDczLDcgKzQ4NSw3IEBAIFJFVAogJWVsc2UKICAgICBhZGQg ICAgICAgICByMCwgcjBtCiAlZW5kaWYKLSAgICBjYWxsICAgICAgICBoMjY0X2lkY3RfZGNfYWRk OF9tbXhleHQKKyAgICBUQUlMX0NBTExfSUZfTEFTVCBoMjY0X2lkY3RfZGNfYWRkOF9tbXhleHQs ICwgJTEsIDcKIC5jeWNsZSUxZW5kOgogJWlmICUxIDwgNwogICAgIGFkZCAgICAgICAgIHIyLCA2 NApAQCAtNTEwLDggKzUyMiw3IEBAIFJFVAogICAgIG1vdiAgICAgICAgIHIwLCBbcjBdCiAgICAg YWRkICAgICAgICAgcjAsIGR3b3JkIFtyMSsoJTEmMSkqOCs2NCooMSsoJTE+PjEpKV0KICVlbmRp ZgotICAgIGNhbGwgICAgICAgIGgyNjRfYWRkOHg0X2lkY3Rfc3NlMgotICAgIGptcCAuY3ljbGUl MWVuZAorICAgIFRBSUxfQ0FMTF9JRl9MQVNUIGgyNjRfYWRkOHg0X2lkY3Rfc3NlMiwgLmN5Y2xl JTFlbmQsICUxLCAzCiAudHJ5JTFkYzoKICAgICBtb3ZzeCAgICAgICByMCwgd29yZCBbcjIgICBd CiAgICAgb3IgICAgICAgICByMHcsIHdvcmQgW3IyKzMyXQpAQCAtNTI0LDcgKzUzNSw3IEBAIFJF VAogICAgIG1vdiAgICAgICAgIHIwLCBbcjBdCiAgICAgYWRkICAgICAgICAgcjAsIGR3b3JkIFty MSsoJTEmMSkqOCs2NCooMSsoJTE+PjEpKV0KICVlbmRpZgotICAgIGNhbGwgICAgICAgIGgyNjRf aWRjdF9kY19hZGQ4X21teGV4dAorICAgIFRBSUxfQ0FMTF9JRl9MQVNUIGgyNjRfaWRjdF9kY19h ZGQ4X21teGV4dCwgLCAlMSwgMwogLmN5Y2xlJTFlbmQ6CiAlaWYgJTEgPT0gMQogICAgIGFkZCAg ICAgICAgIHIyLCAzODQrNjQKLS0gCjIuNTIuMAoKCkZyb20gMzAyZWUwOTM3MWExZTM1MzkxZjVl ZTZlMTk2YTc1NmU3OTRjNTNlMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVh cyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFdlZCwg MjYgTm92IDIwMjUgMTU6NTk6MDMgKzAxMDAKU3ViamVjdDogW1BBVENIIDE0NS8zMDRdIGF2Y29k ZWMveDg2L2gyNjRfaWRjdDogWmVybyB3aXRoIGZ1bGwtd2lkdGggc3RvcmVzCgpTaWduZWQtb2Zm LWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4K LS0tCiBsaWJhdmNvZGVjL3g4Ni9oMjY0X2lkY3QuYXNtIHwgMTMgKysrKysrKysrLS0tLQogMSBm aWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9saWJhdmNvZGVjL3g4Ni9oMjY0X2lkY3QuYXNtIGIvbGliYXZjb2RlYy94ODYvaDI2NF9pZGN0 LmFzbQppbmRleCA0YjllZmQ2ZDZkLi41MDY0N2YyNDU0IDEwMDY0NAotLS0gYS9saWJhdmNvZGVj L3g4Ni9oMjY0X2lkY3QuYXNtCisrKyBiL2xpYmF2Y29kZWMveDg2L2gyNjRfaWRjdC5hc20KQEAg LTkwLDEwICs5MCwxNSBAQCBTRUNUSU9OIC50ZXh0CiAgICAgcGFkZHcgICAgICAgIG0wLCBtNgog ICAgIElEQ1Q0XzFEICAgICAgdywgMCwgMSwgMiwgMywgNCwgNQogICAgIHB4b3IgICAgICAgICBt NywgbTcKLSAgICBtb3ZxICAgIFslMisgMF0sIG03Ci0gICAgbW92cSAgICBbJTIrIDhdLCBtNwot ICAgIG1vdnEgICAgWyUyKzE2XSwgbTcKLSAgICBtb3ZxICAgIFslMisyNF0sIG03CisgICAgJWlm IG1tc2l6ZSA9PSAxNgorICAgICAgICBtb3ZhICAgIFslMisgMF0sIG03CisgICAgICAgIG1vdmEg ICAgWyUyKzE2XSwgbTcKKyAgICAlZWxzZQorICAgICAgICBtb3ZxICAgIFslMisgMF0sIG03Cisg ICAgICAgIG1vdnEgICAgWyUyKyA4XSwgbTcKKyAgICAgICAgbW92cSAgICBbJTIrMTZdLCBtNwor ICAgICAgICBtb3ZxICAgIFslMisyNF0sIG03CisgICAgJWVuZGlmCiAKICAgICBTVE9SRV9ESUZG eDIgbTAsIG0xLCBtNCwgbTUsIG03LCA2LCAlMSwgJTMKICAgICBsZWEgICAgICAgICAgJTEsIFsl MSslMyoyXQotLSAKMi41Mi4wCgoKRnJvbSBiMzg4ZDQzYzBhOTBmNGU4YmU1ODk3ZjE3ZTRjOWYx ZDdmMDBiYTY2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFy ZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogV2VkLCAyNiBOb3YgMjAy NSAxNzoyNjo0NyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTQ2LzMwNF0gYXZjb2RlYy94ODYvaDI2 NF9pZGN0OiBEb24ndCB1c2UgTU1YIHJlZ2lzdGVycyBpbgogZmZfaDI2NF9sdW1hX2RjX2RlcXVh bnRfaWRjdF9zc2UyCgpJdCBpcyBBQkkgY29tcGxpYW50IGFuZCBnaXZlcyBhIHRpbnkgc3BlZWR1 cCBoZXJlIChhbmQgaXMgMTZCIHNtYWxsZXIpLgoKT2xkIGJlbmNobWFya3M6CmgyNjRfbHVtYV9k Y19kZXF1YW50X2lkY3RfOF9jOiAgICAgICAgICAgICAgICAgICAgICAgICAgMzMuMiAoIDEuMDB4 KQpoMjY0X2x1bWFfZGNfZGVxdWFudF9pZGN0Xzhfc3NlMjogICAgICAgICAgICAgICAgICAgICAg IDE2LjAgKCAyLjA3eCkKCk5ldyBiZW5jaG1hcmtzOgpoMjY0X2x1bWFfZGNfZGVxdWFudF9pZGN0 XzhfYzogICAgICAgICAgICAgICAgICAgICAgICAgIDMzLjAgKCAxLjAweCkKaDI2NF9sdW1hX2Rj X2RlcXVhbnRfaWRjdF84X3NzZTI6ICAgICAgICAgICAgICAgICAgICAgICAxNS4wICggMi4yMHgp CgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBv dXRsb29rLmNvbT4KLS0tCiBsaWJhdmNvZGVjL3g4Ni9oMjY0X2lkY3QuYXNtIHwgNTYgKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiB0ZXN0cy9jaGVja2FzbS9oMjY0ZHNwLmMg ICAgIHwgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvaDI2NF9pZGN0LmFzbSBiL2xpYmF2 Y29kZWMveDg2L2gyNjRfaWRjdC5hc20KaW5kZXggNTA2NDdmMjQ1NC4uZmU0NjEwNzg2NyAxMDA2 NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvaDI2NF9pZGN0LmFzbQorKysgYi9saWJhdmNvZGVjL3g4 Ni9oMjY0X2lkY3QuYXNtCkBAIC01NzgsMjcgKzU3OCwyMyBAQCBSRVQKICVlbmRtYWNybwogCiAl bWFjcm8gREVRVUFOVCAxCi0gICAgbW92ZCAgICAgIHhtbTQsIHQzZAotICAgIG1vdnEgICAgICB4 bW01LCBbcHdfMV0KLSAgICBwc2h1ZmQgICAgeG1tNCwgeG1tNCwgMAotICAgIG1vdnEyZHEgICB4 bW0wLCBtMAotICAgIG1vdnEyZHEgICB4bW0xLCBtMQotICAgIG1vdnEyZHEgICB4bW0yLCBtMgot ICAgIG1vdnEyZHEgICB4bW0zLCBtMwotICAgIHB1bnBja2x3ZCB4bW0wLCB4bW01Ci0gICAgcHVu cGNrbHdkIHhtbTEsIHhtbTUKLSAgICBwdW5wY2tsd2QgeG1tMiwgeG1tNQotICAgIHB1bnBja2x3 ZCB4bW0zLCB4bW01Ci0gICAgcG1hZGR3ZCAgIHhtbTAsIHhtbTQKLSAgICBwbWFkZHdkICAgeG1t MSwgeG1tNAotICAgIHBtYWRkd2QgICB4bW0yLCB4bW00Ci0gICAgcG1hZGR3ZCAgIHhtbTMsIHht bTQKLSAgICBwc3JhZCAgICAgeG1tMCwgJTEKLSAgICBwc3JhZCAgICAgeG1tMSwgJTEKLSAgICBw c3JhZCAgICAgeG1tMiwgJTEKLSAgICBwc3JhZCAgICAgeG1tMywgJTEKLSAgICBwYWNrc3NkdyAg eG1tMCwgeG1tMQotICAgIHBhY2tzc2R3ICB4bW0yLCB4bW0zCisgICAgbW92ZCAgICAgICAgbTQs IHQzZAorICAgIG1vdnEgICAgICAgIG01LCBbcHdfMV0KKyAgICBwc2h1ZmQgICAgICBtNCwgbTQs IDAKKyAgICBwdW5wY2tsd2QgICBtMCwgbTUKKyAgICBwdW5wY2tsd2QgICBtMSwgbTUKKyAgICBw dW5wY2tsd2QgICBtMiwgbTUKKyAgICBwdW5wY2tsd2QgICBtMywgbTUKKyAgICBwbWFkZHdkICAg ICBtMCwgbTQKKyAgICBwbWFkZHdkICAgICBtMSwgbTQKKyAgICBwbWFkZHdkICAgICBtMiwgbTQK KyAgICBwbWFkZHdkICAgICBtMywgbTQKKyAgICBwc3JhZCAgICAgICBtMCwgJTEKKyAgICBwc3Jh ZCAgICAgICBtMSwgJTEKKyAgICBwc3JhZCAgICAgICBtMiwgJTEKKyAgICBwc3JhZCAgICAgICBt MywgJTEKKyAgICBwYWNrc3NkdyAgICBtMCwgbTEKKyAgICBwYWNrc3NkdyAgICBtMiwgbTMKICVl bmRtYWNybwogCiAlbWFjcm8gU1RPUkVfV09SRFMgOQpAQCAtNjI1LDE5ICs2MjEsMjUgQEAgUkVU CiAKICVtYWNybyBERVFVQU5UX1NUT1JFIDEKICAgICBERVFVQU5UICAgICAlMQotICAgIFNUT1JF X1dPUkRTIHhtbTAsICAwLCAgMSwgIDQsICA1LCAgMiwgIDMsICA2LCAgNwotICAgIFNUT1JFX1dP UkRTIHhtbTIsICA4LCAgOSwgMTIsIDEzLCAxMCwgMTEsIDE0LCAxNQorICAgIFNUT1JFX1dPUkRT IG0wLCAgMCwgIDEsICA0LCAgNSwgIDIsICAzLCAgNiwgIDcKKyAgICBTVE9SRV9XT1JEUyBtMiwg IDgsICA5LCAxMiwgMTMsIDEwLCAxMSwgMTQsIDE1CiAlZW5kbWFjcm8KIAogSU5JVF9YTU0gc3Nl MgogY2dsb2JhbCBoMjY0X2x1bWFfZGNfZGVxdWFudF9pZGN0LCAzLCA0LCA3Ci1JTklUX01NWCBj cHVuYW1lCiAgICAgbW92cSAgICAgICAgbTMsIFtyMSsyNF0KICAgICBtb3ZxICAgICAgICBtMiwg W3IxKzE2XQogICAgIG1vdnEgICAgICAgIG0xLCBbcjErIDhdCiAgICAgbW92cSAgICAgICAgbTAs IFtyMSsgMF0KICAgICBXQUxTSDRfMUQgICAgMCwxLDIsMyw0Ci0gICAgVFJBTlNQT1NFNHg0VyAw LDEsMiwzLDQKKyAgICBwdW5wY2tsd2QgICBtMCwgbTEKKyAgICBwdW5wY2tsd2QgICBtMiwgbTMK KyAgICBtb3ZhICAgICAgICBtNCwgbTAKKyAgICBwdW5wY2tsZHEgICBtMCwgbTIKKyAgICBwdW5w Y2toZHEgICBtNCwgbTIKKyAgICBtb3ZobHBzICAgICBtMSwgbTAKKyAgICBtb3ZobHBzICAgICBt MywgbTQKKyAgICBTV0FQIDIsIDQKICAgICBXQUxTSDRfMUQgICAgMCwxLDIsMyw0CiAKIDsgc2hp ZnQsIHRtcCwgb3V0cHV0LCBxbXVsCkBAIC02NjUsOCArNjY3LDggQEAgSU5JVF9NTVggY3B1bmFt ZQogICAgIGluYyAgICAgICAgdDFkCiAgICAgc2hyICAgICAgICB0M2QsIHQwYgogICAgIHN1YiAg ICAgICAgdDFkLCB0MGQKLSAgICBtb3ZkICAgICAgeG1tNiwgdDFkCi0gICAgREVRVUFOVF9TVE9S RSB4bW02CisgICAgbW92ZCAgICAgICAgbTYsIHQxZAorICAgIERFUVVBTlRfU1RPUkUgbTYKICAg ICBSRVQKIAogJWlmZGVmIF9fTkFTTV9WRVJfXwpkaWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2thc20v aDI2NGRzcC5jIGIvdGVzdHMvY2hlY2thc20vaDI2NGRzcC5jCmluZGV4IGYwNWFlNDE5ZmMuLmFj ZjRmNjFlYmIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL2gyNjRkc3AuYworKysgYi90ZXN0 cy9jaGVja2FzbS9oMjY0ZHNwLmMKQEAgLTMzNiw3ICszMzYsNyBAQCBzdGF0aWMgdm9pZCBjaGVj a19pZGN0X2RlcXVhbnQodm9pZCkKICAgICBMT0NBTF9BTElHTkVEXzE2KGludDMyX3QsIGRzdDFf MzIsIFsxNiAqIDE2XSk7CiAgICAgSDI2NERTUENvbnRleHQgaDsKICAgICBpbnQgYml0X2RlcHRo LCBpLCBxbXVsOwotICAgIGRlY2xhcmVfZnVuY19lbW1zKEFWX0NQVV9GTEFHX01NWCB8IEFWX0NQ VV9GTEFHX1NTRTIsIHZvaWQsIGludDE2X3QgKm91dHB1dCwgaW50MTZfdCAqaW5wdXQsIGludCBx bXVsKTsKKyAgICBkZWNsYXJlX2Z1bmModm9pZCwgaW50MTZfdCAqb3V0cHV0LCBpbnQxNl90ICpp bnB1dCwgaW50IHFtdWwpOwogCiAgICAgcW11bCA9IHJuZCgpICUgNDA5NjsKIAotLSAKMi41Mi4w CgoKRnJvbSBmNmE5YWVkNWFjMjdiOWU5NjE2ODljYzYxZTlkNDhiMjdjZTE1NWUxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5o YXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogV2VkLCAyNiBOb3YgMjAyNSAxNzo0ODowMSArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMTQ3LzMwNF0gYXZjb2RlYy94ODYvaDI2NF9pZGN0OiBEZWR1cGxpY2F0 ZSBnZW5lcmF0aW5nCiBjb25zdGFudAoKcHdfMSBpcyBjdXJyZW50bHkgbG9hZGVkIGluIGJvdGgg Y29kZXBhdGhzLiBHZW5lcmF0ZSBpdCBlYXJsaWVyIGluc3RlYWQuCkdpdmVzIHRpbnkgc3BlZWR1 cHMgKDE1IHZzIDE0LjUgY3ljbGVzKSBhbmQgcmVkdWNlcyBjb2Rlc2l6ZS4KClNpZ25lZC1vZmYt Ynk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgot LS0KIGxpYmF2Y29kZWMveDg2L2gyNjRfaWRjdC5hc20gfCA1ICsrKy0tCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29k ZWMveDg2L2gyNjRfaWRjdC5hc20gYi9saWJhdmNvZGVjL3g4Ni9oMjY0X2lkY3QuYXNtCmluZGV4 IGZlNDYxMDc4NjcuLmQzNWQ1ODNjZTcgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L2gyNjRf aWRjdC5hc20KKysrIGIvbGliYXZjb2RlYy94ODYvaDI2NF9pZGN0LmFzbQpAQCAtNTEsNyArNTEs NiBAQCBzY2FuOF9tZW06IGRiICA0KyAxKjgsIDUrIDEqOCwgNCsgMio4LCA1KyAyKjgKICVlbmRp ZgogCiBjZXh0ZXJuIHB3XzMyCi1jZXh0ZXJuIHB3XzEKIAogU0VDVElPTiAudGV4dAogCkBAIC01 NzcsOSArNTc2LDkgQEAgUkVUCiAgICAgU1dBUCAlMSwgJTQsICUzCiAlZW5kbWFjcm8KIAorOyBy ZXF1aXJlcyBtNSB0byBjb250YWluIHB3XzEKICVtYWNybyBERVFVQU5UIDEKICAgICBtb3ZkICAg ICAgICBtNCwgdDNkCi0gICAgbW92cSAgICAgICAgbTUsIFtwd18xXQogICAgIHBzaHVmZCAgICAg IG00LCBtNCwgMAogICAgIHB1bnBja2x3ZCAgIG0wLCBtNQogICAgIHB1bnBja2x3ZCAgIG0xLCBt NQpAQCAtNjM1LDYgKzYzNCw3IEBAIGNnbG9iYWwgaDI2NF9sdW1hX2RjX2RlcXVhbnRfaWRjdCwg MywgNCwgNwogICAgIHB1bnBja2x3ZCAgIG0wLCBtMQogICAgIHB1bnBja2x3ZCAgIG0yLCBtMwog ICAgIG1vdmEgICAgICAgIG00LCBtMAorICAgIHBjbXBlcXcgICAgIG01LCBtNQogICAgIHB1bnBj a2xkcSAgIG0wLCBtMgogICAgIHB1bnBja2hkcSAgIG00LCBtMgogICAgIG1vdmhscHMgICAgIG0x LCBtMApAQCAtNjUyLDYgKzY1Miw3IEBAIGNnbG9iYWwgaDI2NF9sdW1hX2RjX2RlcXVhbnRfaWRj dCwgMywgNCwgNwogJWVsc2UKICAgICBERUNMQVJFX1JFR19UTVAgMSwzLDAsMgogJWVuZGlmCisg ICAgcHNybHcgICAgICAgbTUsIDE1CiAKICAgICBjbXAgICAgICAgIHQzZCwgMzI3NjcKICAgICBq ZyAuYmlnX3FtdWwKLS0gCjIuNTIuMAoKCkZyb20gMjE5ZmU1YjlhZWY0ODRlY2U0NTI1ZjI5MDBl ZWI3MzBhYzE4OTM2MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVp bmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFdlZCwgMjYgTm92 IDIwMjUgMjA6MTU6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDE0OC8zMDRdIGF2Y29kZWMveDg2 L2gyNjRfaWRjdDogRml4CiBmZl9oMjY0X2x1bWFfZGNfZGVxdWFudF9pZGN0X3NzZTIgY2hlY2th c20gZmFpbHVyZXMKCmZmX2gyNjRfbHVtYV9kY19kZXF1YW50X2lkY3Rfc3NlMigpIGRvZXMgbm90 IHBhc3MgY2hlY2thc20gZm9yIGNlcnRhaW4Kc2VlZHMsIGJlY2F1c2UgdGhlIGlucHV0IHRvIHBh Y2tzc2R3IG5vIGxvbmdlciBmaXRzIGludG8gYW4gaW50MTZfdCwKbGVhZGluZyB0byBzYXR1cmF0 aW9uLCB3aGVyZSB0aGUgQyBjb2RlIGp1c3QgdHJ1bmNhdGVzLiBJIGRvbid0IGtub3cKd2hldGhl ciB0aGUgc3BlYyBjb250YWlucyBwcm92aXNpb25zIHRoYXQgZW5zdXJlIHRoYXQgdmFsaWQgaW5w dXQKbXVzdCBub3QgZXhjZWVkIDE2IGJpdCBvciB3aGV0aGVyIHRoZSBzdWNoIGlucHV0cyAoZXZl biBpZiBpbnZhbGlkKQpjYW4gYmUgdHJpZ2dlcmVkIGJ5IHRoZSBhY3R1YWwgY29kZSBhbmQgbm90 IG9ubHkgdGhlIHRlc3QuCgpUaGlzIGNvbW1pdCBhZGFwdHMgdGhlIGJlaGF2aW9yIG9mIHRoZSBm dW5jdGlvbiB0byB0aGUgQyByZWZlcmVuY2UgY29kZQp0byBmaXggdGhlIHRlc3QuIHBhY2tzc2R3 IGlzIGF2b2lkZWQsIGluc3RlYWQgdGhlIGxvd2VyIHdvcmRzIGFyZQpkaXJlY3RseSB0cmFuc2Zl cmVkIHRvIEdQUnMgdG8gYmUgd3JpdHRlbiBvdXQuIFRoaXMgaGFzIHVuZm9ydHVuYXRlbHkKbGVk IHRvIGEgc2xpZ2h0IHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24gaGVyZSAoMTQuNSB2cyAxNS4xIGN5 Y2xlcykuCgpGaXhlcyBpc3N1ZSAjMjA4MzUuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIFJoZWlu aGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KLS0tCiBsaWJhdmNvZGVjL3g4 Ni9oMjY0X2lkY3QuYXNtIHwgNjQgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvaDI2NF9pZGN0LmFzbSBiL2xpYmF2Y29kZWMveDg2L2gy NjRfaWRjdC5hc20KaW5kZXggZDM1ZDU4M2NlNy4uNDdlNDExNmY0MiAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy94ODYvaDI2NF9pZGN0LmFzbQorKysgYi9saWJhdmNvZGVjL3g4Ni9oMjY0X2lkY3Qu YXNtCkBAIC01OTIsMzYgKzU5Miw1OCBAQCBSRVQKICAgICBwc3JhZCAgICAgICBtMSwgJTEKICAg ICBwc3JhZCAgICAgICBtMiwgJTEKICAgICBwc3JhZCAgICAgICBtMywgJTEKLSAgICBwYWNrc3Nk dyAgICBtMCwgbTEKLSAgICBwYWNrc3NkdyAgICBtMiwgbTMKICVlbmRtYWNybwogCi0lbWFjcm8g U1RPUkVfV09SRFMgOQotICAgIG1vdmQgIHQwZCwgJTEKLSAgICBwc3JsZHEgICUxLCA0Ci0gICAg bW92ZCAgdDFkLCAlMQotICAgIHBzcmxkcSAgJTEsIDQKLSAgICBtb3YgW3QyKyUyKjMyXSwgdDB3 Ci0gICAgbW92IFt0MislNCozMl0sIHQxdwotICAgIHNociAgIHQwZCwgMTYKLSAgICBzaHIgICB0 MWQsIDE2CislbWFjcm8gU1RPUkVfV09SRFMgMTAKKyVpZiBBUkNIX1g4Nl82NAorICAgIG1vdnEg ICAgICAgIHQwLCAlMQorICAgIG1vdnEgICAgICAgIHQxLCAlMgorICAgIHBzcmxkcSAgICAgICUx LCA4CisgICAgcHNybGRxICAgICAgJTIsIDgKICAgICBtb3YgW3QyKyUzKjMyXSwgdDB3Ci0gICAg bW92IFt0MislNSozMl0sIHQxdwotICAgIG1vdmQgIHQwZCwgJTEKLSAgICBwc3JsZHEgICUxLCA0 Ci0gICAgbW92ZCAgdDFkLCAlMQotICAgIG1vdiBbdDIrJTYqMzJdLCB0MHcKKyAgICBtb3YgW3Qy KyU3KjMyXSwgdDF3CisgICAgc2hyICAgICAgICAgdDAsIDMyCisgICAgc2hyICAgICAgICAgdDEs IDMyCisgICAgbW92IFt0MislNCozMl0sIHQwdwogICAgIG1vdiBbdDIrJTgqMzJdLCB0MXcKLSAg ICBzaHIgICB0MGQsIDE2Ci0gICAgc2hyICAgdDFkLCAxNgotICAgIG1vdiBbdDIrJTcqMzJdLCB0 MHcKKyAgICBtb3ZxICAgICAgICB0MCwgJTEKKyAgICBtb3ZxICAgICAgICB0MSwgJTIKKyAgICBt b3YgW3QyKyU1KjMyXSwgdDB3CiAgICAgbW92IFt0MislOSozMl0sIHQxdworICAgIHNociAgICAg ICAgIHQwLCAzMgorICAgIHNociAgICAgICAgIHQxLCAzMgorICAgIG1vdiBbdDIrJTYqMzJdLCB0 MHcKKyAgICBtb3YgW3QyKyUxMCozMl0sIHQxdworJWVsc2UKKyAgICBtb3ZkICAgICAgIHQwZCwg JTEKKyAgICBtb3ZkICAgICAgIHQxZCwgJTIKKyAgICBwc3JsZHEgICAgICAlMSwgNAorICAgIHBz cmxkcSAgICAgICUyLCA0CisgICAgbW92IFt0MislMyozMl0sIHQwdworICAgIG1vdiBbdDIrJTcq MzJdLCB0MXcKKyAgICBtb3ZkICAgICAgIHQwZCwgJTEKKyAgICBtb3ZkICAgICAgIHQxZCwgJTIK KyAgICBwc3JsZHEgICAgICAlMSwgNAorICAgIHBzcmxkcSAgICAgICUyLCA0CisgICAgbW92IFt0 MislNCozMl0sIHQwdworICAgIG1vdiBbdDIrJTgqMzJdLCB0MXcKKyAgICBtb3ZkICAgICAgIHQw ZCwgJTEKKyAgICBtb3ZkICAgICAgIHQxZCwgJTIKKyAgICBwc3JsZHEgICAgICAlMSwgNAorICAg IHBzcmxkcSAgICAgICUyLCA0CisgICAgbW92IFt0MislNSozMl0sIHQwdworICAgIG1vdiBbdDIr JTkqMzJdLCB0MXcKKyAgICBtb3ZkICAgICAgIHQwZCwgJTEKKyAgICBtb3ZkICAgICAgIHQxZCwg JTIKKyAgICBtb3YgW3QyKyU2KjMyXSwgdDB3CisgICAgbW92IFt0MislMTAqMzJdLCB0MXcKKyVl bmRpZgogJWVuZG1hY3JvCiAKICVtYWNybyBERVFVQU5UX1NUT1JFIDEKICAgICBERVFVQU5UICAg ICAlMQotICAgIFNUT1JFX1dPUkRTIG0wLCAgMCwgIDEsICA0LCAgNSwgIDIsICAzLCAgNiwgIDcK LSAgICBTVE9SRV9XT1JEUyBtMiwgIDgsICA5LCAxMiwgMTMsIDEwLCAxMSwgMTQsIDE1CisgICAg U1RPUkVfV09SRFMgbTAsIG0xLCAgMCwgIDEsICA0LCAgNSwgIDIsICAzLCAgNiwgIDcKKyAgICBT VE9SRV9XT1JEUyBtMiwgbTMsICA4LCAgOSwgMTIsIDEzLCAxMCwgMTEsIDE0LCAxNQogJWVuZG1h Y3JvCiAKIElOSVRfWE1NIHNzZTIKLS0gCjIuNTIuMAoKCkZyb20gYzJkYmY1ZDZmZDQ5NDU0OTQz MWZiNDgzNjI4YTIwODk2NmNjYjdlYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9V VEYtOD9xP0thY3Blcj0yME1pY2hhaj1DNT04Mm93Pz0gPGthc3BlcjkzQGdtYWlsLmNvbT4KRGF0 ZTogU3VuLCAzMCBOb3YgMjAyNSAwMTo1NjowNyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTQ5LzMw NF0gYXZmaWx0ZXIvYXZmaWx0ZXJncmFwaDogZml4IGNvbnN0YW50IHN0cmluZwogY29tcGFyaXNp b24KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU Ri04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCkl0J3Mgbm90IGd1YXJhbnRlZWQg dGhhdCB0aGUgY29udmVyc2lvbiBmaWx0ZXIgbmFtZSBzdHJpbmcgd2lsbCBiZQpkZWR1cGxpY2F0 ZWQgdG8gdGhlIHNhbWUgbWVtb3J5IGxvY2F0aW9uLiBXaGlsZSB0aGlzIGlzIGNvbW1vbgpvcHRp bWl6YXRpb24gdG8gZG8sIHdlIGNhbm5vdCByZWx5IG9uIGl0IGFsd2F5cyBoYXBwZW5pbmcuCgpG aXhlcyByZWdyZXNzaW9uIHNpbmNlIDhiMzc1YjJmZmQ0Mzc3OTA5MTgwMjQxY2RjNjVkNjNkMzcy YTM1YTMuCgpTaWduZWQtb2ZmLWJ5OiBLYWNwZXIgTWljaGFqxYJvdyA8a2FzcGVyOTNAZ21haWwu Y29tPgotLS0KIGxpYmF2ZmlsdGVyL2F2ZmlsdGVyZ3JhcGguYyB8IDQgKystLQogMSBmaWxlIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJh dmZpbHRlci9hdmZpbHRlcmdyYXBoLmMgYi9saWJhdmZpbHRlci9hdmZpbHRlcmdyYXBoLmMKaW5k ZXggYTQ2YTdiZDQwOC4uZDVjMmVmNTRlNiAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvYXZmaWx0 ZXJncmFwaC5jCisrKyBiL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyZ3JhcGguYwpAQCAtNTcwLDcgKzU3 MCw3IEBAIHJldHJ5OgogICAgICAgICAgICAgICAgIHZvaWQgKmIgPSBGRl9GSUVMRF9BVCh2b2lk ICosIG0tPm9mZnNldCwgbGluay0+b3V0Y2ZnKTsKICAgICAgICAgICAgICAgICBpZiAoYSAmJiBi ICYmIGEgIT0gYiAmJiAhbS0+Y2FuX21lcmdlKGEsIGIpKSB7CiAgICAgICAgICAgICAgICAgICAg IGZvciAoayA9IDA7IGsgPCBudW1fY29udjsgaysrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg ICBpZiAoY29udl9maWx0ZXJzW2tdID09IG0tPmNvbnZlcnNpb25fZmlsdGVyKQorICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCFzdHJjbXAoY29udl9maWx0ZXJzW2tdLCBtLT5jb252ZXJzaW9u X2ZpbHRlcikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgaWYgKGsgPT0gbnVtX2NvbnYpIHsKQEAg LTY4Myw3ICs2ODMsNyBAQCByZXRyeToKIAogICAgICAgICAgICAgICAgIGZvciAobmVnX3N0ZXAg PSAwOyBuZWdfc3RlcCA8IG5lZy0+bmJfbWVyZ2VyczsgbmVnX3N0ZXArKykgewogICAgICAgICAg ICAgICAgICAgICBjb25zdCBBVkZpbHRlckZvcm1hdHNNZXJnZXIgKm0gPSAmbmVnLT5tZXJnZXJz W25lZ19zdGVwXTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG0tPmNvbnZlcnNpb25fZmlsdGVy ICE9IGNvbnZfZmlsdGVyc1trXSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmNtcChtLT5j b252ZXJzaW9uX2ZpbHRlciwgY29udl9maWx0ZXJzW2tdKSkKICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICBpZiAoKHJldCA9IE1FUkdFKG0sICBp bmxpbmspKSA8PSAwIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAocmV0ID0gTUVSR0UobSwg b3V0bGluaykpIDw9IDApIHsKLS0gCjIuNTIuMAoKCkZyb20gODNkODk4MmM1YzcxNWYwZTNkMjg0 MjQxNmY3ODM2NWQ5MjdiZGQ1YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogYXZlcm5l IDxhdmVybmUzODFAZ21haWwuY29tPgpEYXRlOiBTYXQsIDI5IE5vdiAyMDI1IDIyOjMzOjI2ICsw MTAwClN1YmplY3Q6IFtQQVRDSCAxNTAvMzA0XSBsaWJhdmNvZGVjL3Z1bGthbjogaW50cm9kdWNl IGNhY2hlZCBiaXRzdHJlYW0gcmVhZGVyCgpUaGlzIHN0b3JlcyBhIHNtYWxsIGJ1ZmZlciBpbiBz aGFyZWQgbWVtb3J5IHBlciBkZWNvZGUgdGhyZWFkICgxNiBieXRlcyksCndoaWNoIGhlbHBzIHJl ZHVjZSB0aGUgbnVtYmVyIG9mIG1lbW9yeSBhY2Nlc3Nlcy4KVGhlIGJpdHN0cmVhbSBidWZmZXIg aXMgZmlyc3QgYWxpZ25lZCB0byBhIDQgYnl0ZSBib3VuZGFyeSwgc28gdGhhdCB0aGUKYnVmZmVy IGNhbiBiZSBmaWxsZWQgd2l0aCBhIHNpbmdsZSBtZW1vcnkgcmVxdWVzdC4KLS0tCiBsaWJhdmNv ZGVjL3Z1bGthbi9jb21tb24uY29tcCB8IDQyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2xp YmF2Y29kZWMvdnVsa2FuL2NvbW1vbi5jb21wIGIvbGliYXZjb2RlYy92dWxrYW4vY29tbW9uLmNv bXAKaW5kZXggZWRhOTJjZTI4ZC4uNGI3MWRmZDJmNCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy92 dWxrYW4vY29tbW9uLmNvbXAKKysrIGIvbGliYXZjb2RlYy92dWxrYW4vY29tbW9uLmNvbXAKQEAg LTQyLDYgKzQyLDEwIEBAIGxheW91dChidWZmZXJfcmVmZXJlbmNlLCBidWZmZXJfcmVmZXJlbmNl X2FsaWduID0gNCkgYnVmZmVyIHUzMnZlYzJidWYgewogICAgIHUzMnZlYzIgdjsKIH07CiAKK2xh eW91dChidWZmZXJfcmVmZXJlbmNlLCBidWZmZXJfcmVmZXJlbmNlX2FsaWduID0gNCkgYnVmZmVy IHUzMnZlYzRidWYgeworICAgIHUzMnZlYzQgdjsKK307CisKIGxheW91dChidWZmZXJfcmVmZXJl bmNlLCBidWZmZXJfcmVmZXJlbmNlX2FsaWduID0gOCkgYnVmZmVyIHU2NGJ1ZiB7CiAgICAgdWlu dDY0X3QgdjsKIH07CkBAIC0xOTgsOCArMjAyLDEyIEBAIHN0cnVjdCBHZXRCaXRDb250ZXh0IHsK ICAgICB1aW50NjRfdCBiaXRzOwogICAgIGludCBiaXRzX3ZhbGlkOwogICAgIGludCBzaXplX2lu X2JpdHM7CisjaWZkZWYgR0VUX0JJVFNfU01FTQorICAgIGludCBjdXJfc21lbV9wb3M7CisjZW5k aWYKIH07CiAKKyNpZm5kZWYgR0VUX0JJVFNfU01FTQogI2RlZmluZSBMT0FENjQoKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIHU4dmVjNGJ1ZiBwdHIg PSB1OHZlYzRidWYoZ2IuYnVmKTsgICAgICAgICAgICAgXApAQCAtMjE4LDYgKzIyNiw0MCBAQCBz dHJ1Y3QgR2V0Qml0Q29udGV4dCB7CiAgICAgICAgIGdiLmJpdHMgPSB1aW50NjRfdChyZikgPDwg KDMyIC0gZ2IuYml0c192YWxpZCkgfCBnYi5iaXRzOyBcCiAgICAgICAgIGdiLmJpdHNfdmFsaWQg Kz0gMzI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfQorI2Vs c2UgLyogR0VUX0JJVFNfU01FTSAqLworc2hhcmVkIHUzMnZlYzQgZ2Jfc3RvcmFnZVtnbF9Xb3Jr R3JvdXBTaXplLngqZ2xfV29ya0dyb3VwU2l6ZS55KmdsX1dvcmtHcm91cFNpemUuel07CisKKyNk ZWZpbmUgRklMTF9TTUVNKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICAgICAgdTMydmVjNGJ1ZiBwdHIgPSB1MzJ2ZWM0YnVmKGdiLmJ1Zik7ICAgICAgICAg ICAgIFwKKyAgICAgICAgZ2Jfc3RvcmFnZVtnbF9Mb2NhbEludm9jYXRpb25JbmRleF0gPSBwdHJb MF0udjsgIFwKKyAgICAgICAgZ2IuY3VyX3NtZW1fcG9zID0gMDsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICB9CisKKyNkZWZpbmUgTE9BRDY0KCkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg IGdiLmJpdHMgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgZ2IuYml0c192YWxpZCA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgICAgICB1OGJ1ZiBwdHIgPSB1OGJ1ZihnYi5idWYpOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGZvciAodWludCBpID0g MDsgaSA8ICgoNCAtIHVpbnQoZ2IuYnVmX3N0YXJ0KSkgJiAzKTsgKytpKSB7IFwKKyAgICAgICAg ICAgIGdiLmJpdHMgfD0gdWludDY0X3QocHRyW2ldLnYpIDw8ICg1NiAtIGkgKiA4KTsgICAgICAg ICAgXAorICAgICAgICAgICAgZ2IuYml0c192YWxpZCArPSA4OyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBnYi5idWYgKz0gMTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBG SUxMX1NNRU0oKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgfQorCisjZGVmaW5lIFJFTE9BRDMyKCkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgICAgIGlmIChnYi5jdXJfc21lbV9wb3MgPj0gNCkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBGSUxMX1NNRU0oKTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHVpbnQgdiA9 IGdiX3N0b3JhZ2VbZ2xfTG9jYWxJbnZvY2F0aW9uSW5kZXhdW2diLmN1cl9zbWVtX3Bvc107ICAg ICBcCisgICAgICAgIGdiLmJ1ZiArPSA0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGdiLmJpdHMgPSB1aW50NjRfdChyZXZl cnNlNCh2KSkgPDwgKDMyIC0gZ2IuYml0c192YWxpZCkgfCBnYi5iaXRzOyBcCisgICAgICAgIGdi LmJpdHNfdmFsaWQgKz0gMzI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgICAgIGdiLmN1cl9zbWVtX3BvcyArPSAxOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorI2VuZGlmIC8qIEdFVF9CSVRT X1NNRU0gKi8KIAogdm9pZCBpbml0X2dldF9iaXRzKGlub3V0IEdldEJpdENvbnRleHQgZ2IsIHU4 YnVmIGRhdGEsIGludCBsZW4pCiB7Ci0tIAoyLjUyLjAKCgpGcm9tIDRkMjVjZmUyMjViMzZkM2Qx OWIzZjQ3YmI2OTM2ODYzODFmZmMyMmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IGF2 ZXJuZSA8YXZlcm5lMzgxQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAzMCBOb3YgMjAyNSAxMzoyNToz NyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTUxLzMwNF0gbGliYXZjb2RlYy92dWxrYW46IHJlbW92 ZSB1bm5lc3NhcnkgbWVtYmVyIGluCiBHZXRCaXRDb250ZXh0CgpUaGUgbnVtYmVyIG9mIHJlbWFp bmluZyBiaXRzIGNhbiBiZSBjYWxjdWxhdGVkIHVzaW5nIGV4aXN0aW5nIHN0YXRlLgpUaGlzIHNp bXBsaWZpZXMgY2FsY3VsYXRpb25zIGFuZCBmcmVlcyB1cCBvbmUgcmVnaXN0ZXIuCi0tLQogbGli YXZjb2RlYy92dWxrYW4vY29tbW9uLmNvbXAgfCA0ICstLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z1bGth bi9jb21tb24uY29tcCBiL2xpYmF2Y29kZWMvdnVsa2FuL2NvbW1vbi5jb21wCmluZGV4IDRiNzFk ZmQyZjQuLmY1ZjQ2NmNlMzEgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdnVsa2FuL2NvbW1vbi5j b21wCisrKyBiL2xpYmF2Y29kZWMvdnVsa2FuL2NvbW1vbi5jb21wCkBAIC0yMDEsNyArMjAxLDYg QEAgc3RydWN0IEdldEJpdENvbnRleHQgewogCiAgICAgdWludDY0X3QgYml0czsKICAgICBpbnQg Yml0c192YWxpZDsKLSAgICBpbnQgc2l6ZV9pbl9iaXRzOwogI2lmZGVmIEdFVF9CSVRTX1NNRU0K ICAgICBpbnQgY3VyX3NtZW1fcG9zOwogI2VuZGlmCkBAIC0yNjUsNyArMjY0LDYgQEAgdm9pZCBp bml0X2dldF9iaXRzKGlub3V0IEdldEJpdENvbnRleHQgZ2IsIHU4YnVmIGRhdGEsIGludCBsZW4p CiB7CiAgICAgZ2IuYnVmID0gZ2IuYnVmX3N0YXJ0ID0gdWludDY0X3QoZGF0YSk7CiAgICAgZ2Iu YnVmX2VuZCA9IHVpbnQ2NF90KGRhdGEpICsgbGVuOwotICAgIGdiLnNpemVfaW5fYml0cyA9IGxl biAqIDg7CiAKICAgICAvKiBQcmVsb2FkICovCiAgICAgTE9BRDY0KCkKQEAgLTMyMCw1ICszMTgs NSBAQCBpbnQgdGVsbF9iaXRzKGluIEdldEJpdENvbnRleHQgZ2IpCiAKIGludCBsZWZ0X2JpdHMo aW4gR2V0Qml0Q29udGV4dCBnYikKIHsKLSAgICByZXR1cm4gZ2Iuc2l6ZV9pbl9iaXRzIC0gaW50 KGdiLmJ1ZiAtIGdiLmJ1Zl9zdGFydCkgKiA4ICsgZ2IuYml0c192YWxpZDsKKyAgICByZXR1cm4g aW50KGdiLmJ1Zl9lbmQgLSBnYi5idWYpICogOCArIGdiLmJpdHNfdmFsaWQ7CiB9Ci0tIAoyLjUy LjAKCgpGcm9tIGU2MGViOGMyZDQ2ODBlZmM2MGU3ODY5YjI3Yzg2NjA1YzQ3ODkzNDEgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IGF2ZXJuZSA8YXZlcm5lMzgxQGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAyOSBOb3YgMjAyNSAyMjozMzo0NSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTUyLzMw NF0gdnVsa2FuL3Byb3JlczogdXNlIGNhY2hlZCBiaXRzdHJlYW0gcmVhZGVyCgpTcGVlZHVwIGlz IGFyb3VuZCA3NSUgb24gTlZJRElBIDMwNTAsIDIwJSBvbiBBTUQgNjcwMFhULCA1JSBvbiBJbnRl bCBUaWdlckxha2UuCi0tLQogbGliYXZjb2RlYy92dWxrYW5fcHJvcmVzLmMgfCAxNCArKysrKysr LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z1bGthbl9wcm9yZXMuYyBiL2xpYmF2Y29kZWMvdnVs a2FuX3Byb3Jlcy5jCmluZGV4IDBjNzA0YzNkMWMuLjkwYjg2MTA4MTcgMTAwNjQ0Ci0tLSBhL2xp YmF2Y29kZWMvdnVsa2FuX3Byb3Jlcy5jCisrKyBiL2xpYmF2Y29kZWMvdnVsa2FuX3Byb3Jlcy5j CkBAIC0yMSw3ICsyMSw2IEBACiAjaW5jbHVkZSAiaHdhY2NlbF9pbnRlcm5hbC5oIgogI2luY2x1 ZGUgImxpYmF2dXRpbC9tZW0uaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvdnVsa2FuLmgiCi0jaW5j bHVkZSAibGliYXZ1dGlsL3Z1bGthbl9sb2FkZXIuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvdnVs a2FuX3NwaXJ2LmgiCiAKIGV4dGVybiBjb25zdCBjaGFyICpmZl9zb3VyY2VfY29tbW9uX2NvbXA7 CkBAIC0yMDcsMTQgKzIwNiwxMiBAQCBzdGF0aWMgaW50IHZrX3Byb3Jlc19lbmRfZnJhbWUoQVZD b2RlY0NvbnRleHQgKmF2Y3R4KQogICAgIFJFVChmZl92a19leGVjX21pcnJvcl9zZW1fdmFsdWUo JmN0eC0+cywgZXhlYywgJnZwLT5zZW0sICZ2cC0+c2VtX3ZhbHVlLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcHItPmZyYW1lKSk7CiAKKyAgICAvKiBUcmFuc2ZlciBvd25l cnNoaXAgdG8gdGhlIGV4ZWMgY29udGV4dCAqLwogICAgIFJFVChmZl92a19leGVjX2FkZF9kZXBf YnVmKCZjdHgtPnMsIGV4ZWMsICZ2cC0+c2xpY2VzX2J1ZiwgMSwgMCkpOwogICAgIHZwLT5zbGlj ZXNfYnVmID0gTlVMTDsKICAgICBSRVQoZmZfdmtfZXhlY19hZGRfZGVwX2J1ZigmY3R4LT5zLCBl eGVjLCAmcHAtPm1ldGFkYXRhX2J1ZiwgMSwgMCkpOwogICAgIHBwLT5tZXRhZGF0YV9idWYgPSBO VUxMOwogCi0gICAgLyogVHJhbnNmZXIgb3duZXJzaGlwIHRvIHRoZSBleGVjIGNvbnRleHQgKi8K LSAgICB2cC0+c2xpY2VzX2J1ZiA9IHBwLT5tZXRhZGF0YV9idWYgPSBOVUxMOwotCiAgICAgLyog SW5wdXQgYmFycmllciAqLwogICAgIGZmX3ZrX2ZyYW1lX2JhcnJpZXIoJmN0eC0+cywgZXhlYywg cHItPmZyYW1lLCBpbWdfYmFyLCAmbmJfaW1nX2JhciwKICAgICAgICAgICAgICAgICAgICAgICAg IFZLX1BJUEVMSU5FX1NUQUdFXzJfQUxMX0NPTU1BTkRTX0JJVCwKQEAgLTQwNCw2ICs0MDEsMTEg QEAgc3RhdGljIGludCBpbml0X3NoYWRlcihBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEZGVnVsa2Fu Q29udGV4dCAqcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxfc2l6ZSA+PiAxNiAm IDB4ZmYsIGxvY2FsX3NpemUgPj4gOCAmIDB4ZmYsIGxvY2FsX3NpemUgPj4gMCAmIDB4ZmYsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgIDApKTsKIAorICAgIGF2X2JwcmludGYoJnNoZC0+c3Jj LCAiI2RlZmluZSBHRVRfQklUU19TTUVNXG4iKTsKKworICAgIGlmIChpbnRlcmxhY2VkKQorICAg ICAgICBhdl9icHJpbnRmKCZzaGQtPnNyYywgIiNkZWZpbmUgSU5URVJMQUNFRFxuIik7CisKICAg ICAvKiBDb21tb24gY29kZSAqLwogICAgIEdMU0xEKGZmX3NvdXJjZV9jb21tb25fY29tcCk7CiAK QEAgLTQxMiw5ICs0MTQsNiBAQCBzdGF0aWMgaW50IGluaXRfc2hhZGVyKEFWQ29kZWNDb250ZXh0 ICphdmN0eCwgRkZWdWxrYW5Db250ZXh0ICpzLAogCiAgICAgUkVUKGZmX3ZrX3NoYWRlcl9hZGRf ZGVzY3JpcHRvcl9zZXQocywgc2hkLCBkZXNjcywgbnVtX2Rlc2NzLCAwLCAwKSk7CiAKLSAgICBp ZiAoaW50ZXJsYWNlZCkKLSAgICAgICAgYXZfYnByaW50Zigmc2hkLT5zcmMsICIjZGVmaW5lIElO VEVSTEFDRURcbiIpOwotCiAgICAgLyogTWFpbiBjb2RlICovCiAgICAgR0xTTEQoc291cmNlKTsK IApAQCAtNDk0LDYgKzQ5Myw3IEBAIHN0YXRpYyBpbnQgdmtfZGVjb2RlX3Byb3Jlc19pbml0KEFW Q29kZWNDb250ZXh0ICphdmN0eCkKICAgICBSRVQoaW5pdF9zaGFkZXIoYXZjdHgsICZjdHgtPnMs ICZjdHgtPmV4ZWNfcG9vbCwgc3B2LCAmcHYtPnJlc2V0LAogICAgICAgICAgICAgICAgICAgICAi cHJvcmVzX2RlY19yZXNldCIsICJtYWluIiwgZGVzY19zZXQsIDEsCiAgICAgICAgICAgICAgICAg ICAgIGZmX3NvdXJjZV9wcm9yZXNfcmVzZXRfY29tcCwgMHgwODA4MDEsIHByLT5mcmFtZV90eXBl ICE9IDApKTsKKwogICAgIGRlc2Nfc2V0ID0gKEZGVnVsa2FuRGVzY3JpcHRvclNldEJpbmRpbmcg W10pIHsKICAgICAgICAgewogICAgICAgICAgICAgLm5hbWUgICAgICAgID0gInNsaWNlX29mZnNl dHNfYnVmIiwKLS0gCjIuNTIuMAoKCkZyb20gMGJlZTk5OTViYjhiMzFlZDI3YmFlMDI0M2E0NzA0 ZDU0MjBlMmY0YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhh cmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFRodSwgMjcgTm92IDIw MjUgMTc6MTQ6MDUgKzAxMDAKU3ViamVjdDogW1BBVENIIDE1My8zMDRdIGF2Y29kZWMveDg2L01h a2VmaWxlOiBSZW1vdmUgcmVkdW5kYW50IFdlYlAKIGRlY29kZXItPnZwOGRzcCBkZXBlbmRlbmNp ZXMKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU Ri04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClJlZHVuZGFudCBzaW5jZSAzNWIw MjczMmI5OGMxZTJlODYyZGM3ODQ3NmQ4YmM1MjdhZjFjOTNjLgoKUmV2aWV3ZWQtYnk6IEthY3Bl ciBNaWNoYWrFgm93IDxrYXNwZXI5M0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMg UmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIGxpYmF2Y29k ZWMveDg2L01ha2VmaWxlIHwgMiAtLQogMSBmaWxlIGNoYW5nZWQsIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvTWFrZWZpbGUgYi9saWJhdmNvZGVjL3g4Ni9NYWtl ZmlsZQppbmRleCAxYzFlMTRiNGI4Li44NGJhMzk1YzgyIDEwMDY0NAotLS0gYS9saWJhdmNvZGVj L3g4Ni9NYWtlZmlsZQorKysgYi9saWJhdmNvZGVjL3g4Ni9NYWtlZmlsZQpAQCAtNzgsNyArNzgs NiBAQCBPQkpTLSQoQ09ORklHX1ZQOV9ERUNPREVSKSAgICAgICAgICAgICArPSB4ODYvdnA5ZHNw X2luaXQubyAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHg4Ni92cDlkc3BfaW5pdF8xMGJwcC5vICAgICAgXAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgeDg2L3ZwOWRzcF9pbml0XzEyYnBwLm8gICAgICBcCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ODYvdnA5ZHNwX2luaXRf MTZicHAubwotT0JKUy0kKENPTkZJR19XRUJQX0RFQ09ERVIpICAgICAgICAgICAgKz0geDg2L3Zw OGRzcF9pbml0Lm8KIAogCiAjIEdDQyBpbmxpbmUgYXNzZW1ibHkgb3B0aW1pemF0aW9ucwpAQCAt MTkzLDQgKzE5MiwzIEBAIFg4NkFTTS1PQkpTLSQoQ09ORklHX1ZQOV9ERUNPREVSKSAgICAgICs9 IHg4Ni92cDlpbnRyYXByZWQubyAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHg4Ni92cDlscGZfMTZicHAubyAgICAgICAgICAgIFwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg4Ni92cDltYy5vICAgICAgICAg ICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg4 Ni92cDltY18xNmJwcC5vCi1YODZBU00tT0JKUy0kKENPTkZJR19XRUJQX0RFQ09ERVIpICAgICAr PSB4ODYvdnA4ZHNwLm8KLS0gCjIuNTIuMAoKCkZyb20gMGJiM2FlZjRjZTY1ZTVmNGRjZjQwZTFj MmY0YmQ5YTI4MmU2NjE1OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBS aGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFRodSwgMjcg Tm92IDIwMjUgMTk6MDc6MjYgKzAxMDAKU3ViamVjdDogW1BBVENIIDE1NC8zMDRdIGF2Y29kZWMv eDg2L01ha2VmaWxlOiBPbmx5IGNvbXBpbGUgQVNNIGluaXQgZmlsZXMKIHdoZW4gWDg2QVNNIGlz IGVuYWJsZWQKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClRvIGRvIHNvLCBzaW1w bHkgYWRkIHRoZXNlIGluaXQgZmlsZXMgdG8gWDg2QVNNLU9CSlMgaW5zdGVhZCBvZiBPQkpTCmlu IHRoZSBNYWtlZmlsZS4gVGhlIGZvcm1lciBpcyBhbHJlYWR5IHVzZWQgZm9yIHRoZSBhY3R1YWwg YXNzZW1ibHkKZmlsZXMsIGJ1dCB1c2luZyB0aGVtIGZvciB0aGUgQyBpbml0IGZpbGVzIGp1c3Qg d29ya3MsIGJlY2F1c2UgdGhlIGJ1aWxkCnN5c3RlbSB1c2VzIGZpbGUgZXh0ZW5zaW9ucyB0byBk ZXJpdmUgd2hldGhlciBpdCBpcyBhIEMgb3IgYSBOQVNNIGZpbGUuCgpUaGlzIGF2b2lkcyBjb21w aWxpbmcgdW51c2VkIGZ1bmN0aW9uIHN0dWJzIGFuZCBhbHNvIHJlZHVjZXMgb3VyCnJlbGlhbmNl IG9uIERDRTogV2UgZG9uJ3QgYWRkICVpZiBjaGVja3MgdG8gdGhlIGFzbSBmaWxlcyBleGNlcHQK Zm9yIEFWWCwgQVZYMiwgRk1BMywgRk1BNCwgWE9QIGFuZCBBVlg1MTIsIHNvIGFsbCB0aGUgTU1Y LVNTRTQKZnVuY3Rpb25zIHdpbGwgYmUgYXZhaWxhYmxlLiBJdCBhbHNvIGFsbG93cyB0byByZW1v dmUgSEFWRV9YODZBU00gY2hlY2tzCmluIHRoZXNlIGluaXQgZmlsZXMuCgpSZXZpZXdlZC1ieTog S2FjcGVyIE1pY2hhasWCb3cgPGthc3BlcjkzQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogQW5k cmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGli YXZjb2RlYy9hYWNlbmNkc3AuaCAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZj b2RlYy9hYWNwc2RzcF90ZW1wbGF0ZS5jICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2Rl Yy9hYzNkc3AuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogbGliYXZjb2RlYy9h bGFjZHNwLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9hcHZf ZHNwLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9hdWRpb2Rz cC5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9ibG9ja2RzcC5j ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9ic3dhcGRzcC5jICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9jYXZzZHNwLmMgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9jZmhkZHNwLmMgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9jZmhkZW5jZHNwLmMgICAgICAgICAg ICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9kY2Fkc3AuYyAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9kaXJhY19kd3QuYyAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9kaXJhY2RzcC5jICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArLQogbGliYXZjb2RlYy9kbnhoZGVuYy5jICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMiArLQogbGliYXZjb2RlYy9leHJkc3AuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg MiArLQogbGliYXZjb2RlYy9mbGFjZHNwLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr LQogbGliYXZjb2RlYy9mbGFjZW5jZHNwLmMgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog bGliYXZjb2RlYy9mbXRjb252ZXJ0LmMgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGli YXZjb2RlYy9nNzIyZHNwLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZj b2RlYy9oMjYzZHNwLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2Rl Yy9oMjY0Y2hyb21hLmMgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9o MjY0ZHNwLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9oMjY0 cHJlZC5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9oMjY0cXBl bC5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9oZXZjL2RzcC5j ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9ocGVsZHNwLmMgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9odWZmeXV2ZHNwLmMgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9odWZmeXV2ZW5jZHNwLmMgICAg ICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9pZGN0ZHNwLmMgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgNCArLQogbGliYXZjb2RlYy9qcGVnMjAwMGRzcC5jICAgICAgICAgICAg ICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9sb3NzbGVzc19hdWRpb2RzcC5jICAgICAgICAg ICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9sb3NzbGVzc192aWRlb2RzcC5jICAgICAgICAgICAg ICB8ICAgMiArLQogbGliYXZjb2RlYy9tZV9jbXAuYyAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMiArLQogbGliYXZjb2RlYy9vcHVzL2RzcC5jICAgICAgICAgICAgICAgICAgICAgICB8ICAg MiArLQogbGliYXZjb2RlYy9vcHVzL3B2cS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr LQogbGliYXZjb2RlYy9waXhibG9ja2RzcC5jICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog bGliYXZjb2RlYy9wbmdkc3AuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGli YXZjb2RlYy9wcm9yZXNkc3AuYyAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZj b2RlYy9xcGVsZHNwLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2Rl Yy9ydjM0ZHNwLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9y djQwZHNwLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9zYmNk c3AuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9zYnJkc3Bf dGVtcGxhdGUuYyAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9zdnExZW5jZHNw LmggICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy9zeW50aF9maWx0ZXIu YyAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy90YWtkc3AuYyAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy90dGFkc3AuYyAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy90dGFlbmNkc3AuYyAgICAgICAgICAg ICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy91dHZpZGVvZHNwLmMgICAgICAgICAgICAg ICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy92MjEwZGVjX2luaXQuaCAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogbGliYXZjb2RlYy92MjEwZW5jX2luaXQuaCAgICAgICAgICAgICAgICAg ICB8ICAgMiArLQogbGliYXZjb2RlYy92YzFkc3AuYyAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMiArLQogbGliYXZjb2RlYy92aWRlb2RzcC5jICAgICAgICAgICAgICAgICAgICAgICB8ICAg MiArLQogbGliYXZjb2RlYy92b3JiaXNkc3AuYyAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr LQogbGliYXZjb2RlYy92cDNkc3AuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog bGliYXZjb2RlYy92cDZkc3AuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGli YXZjb2RlYy92cDhkc3AuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogbGliYXZj b2RlYy92cDlkc3AuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2Rl Yy92dmMvZHNwLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZjb2RlYy94 ODYvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICB8IDEyNCArKysrKysrKysrLS0tLS0tLS0t LQogbGliYXZjb2RlYy94ODYvYWxhY2RzcF9pbml0LmMgICAgICAgICAgICAgICB8ICAgMyAtCiBs aWJhdmNvZGVjL3g4Ni9ibG9ja2RzcF9pbml0LmMgICAgICAgICAgICAgIHwgICAyIC0KIGxpYmF2 Y29kZWMveDg2L2RpcmFjX2R3dF9pbml0LmMgICAgICAgICAgICAgfCAgIDYgLQogbGliYXZjb2Rl Yy94ODYvZGlyYWNkc3BfaW5pdC5jICAgICAgICAgICAgICB8ICAgNiAtCiBsaWJhdmNvZGVjL3g4 Ni9mbGFjZHNwX2luaXQuYyAgICAgICAgICAgICAgIHwgICAyIC0KIGxpYmF2Y29kZWMveDg2L2Zs YWNlbmNkc3BfaW5pdC5jICAgICAgICAgICAgfCAgIDQgKy0KIGxpYmF2Y29kZWMveDg2L2ZtdGNv bnZlcnRfaW5pdC5jICAgICAgICAgICAgfCAgIDYgLQogbGliYXZjb2RlYy94ODYvaDI2NF9xcGVs LmMgICAgICAgICAgICAgICAgICB8ICAgNSAtCiBsaWJhdmNvZGVjL3g4Ni9oMjY0ZHNwX2luaXQu YyAgICAgICAgICAgICAgIHwgICAyIC0KIGxpYmF2Y29kZWMveDg2L2hldmMvTWFrZWZpbGUgICAg ICAgICAgICAgICAgfCAgIDYgKy0KIGxpYmF2Y29kZWMveDg2L2xvc3NsZXNzX2F1ZGlvZHNwX2lu aXQuYyAgICAgfCAgIDIgLQogbGliYXZjb2RlYy94ODYvbWVfY21wX2luaXQuYyAgICAgICAgICAg ICAgICB8ICAgNSAtCiBsaWJhdmNvZGVjL3g4Ni9xcGVsZHNwX2luaXQuYyAgICAgICAgICAgICAg IHwgICA0IC0KIGxpYmF2Y29kZWMveDg2L3J2NDBkc3BfaW5pdC5jICAgICAgICAgICAgICAgfCAg IDUgLQogbGliYXZjb2RlYy94ODYvc3ludGhfZmlsdGVyX2luaXQuYyAgICAgICAgICB8ICAgNCAt CiBsaWJhdmNvZGVjL3g4Ni90YWtkc3BfaW5pdC5jICAgICAgICAgICAgICAgIHwgICAzIC0KIGxp YmF2Y29kZWMveDg2L3R0YWRzcF9pbml0LmMgICAgICAgICAgICAgICAgfCAgIDMgLQogbGliYXZj b2RlYy94ODYvdHRhZW5jZHNwX2luaXQuYyAgICAgICAgICAgICB8ICAgMyAtCiBsaWJhdmNvZGVj L3g4Ni92MjEwLWluaXQuYyAgICAgICAgICAgICAgICAgIHwgICAyIC0KIGxpYmF2Y29kZWMveDg2 L3ZjMWRzcF9pbml0LmMgICAgICAgICAgICAgICAgfCAgIDUgLQogbGliYXZjb2RlYy94ODYvdmlk ZW9kc3BfaW5pdC5jICAgICAgICAgICAgICB8ICAgNCAtCiBsaWJhdmNvZGVjL3g4Ni92cDhkc3Bf aW5pdC5jICAgICAgICAgICAgICAgIHwgICA4IC0tCiBsaWJhdmNvZGVjL3g4Ni92cDlkc3BfaW5p dC5jICAgICAgICAgICAgICAgIHwgICA3IC0tCiBsaWJhdmNvZGVjL3g4Ni92cDlkc3BfaW5pdF8x NmJwcC5jICAgICAgICAgIHwgICA2IC0KIGxpYmF2Y29kZWMveDg2L3ZwOWRzcF9pbml0XzE2YnBw X3RlbXBsYXRlLmMgfCAgIDUgLQogbGliYXZjb2RlYy94ODYvdnZjL01ha2VmaWxlICAgICAgICAg ICAgICAgICB8ICAgNiArLQogbGliYXZjb2RlYy94ODYveHZpZGlkY3RfaW5pdC5jICAgICAgICAg ICAgICB8ICAgMyAtCiBsaWJhdmNvZGVjL3h2aWRpZGN0LmMgICAgICAgICAgICAgICAgICAgICAg IHwgICAyICstCiA4OSBmaWxlcyBjaGFuZ2VkLCAxMzMgaW5zZXJ0aW9ucygrKSwgMjM2IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYWFjZW5jZHNwLmggYi9saWJhdmNvZGVj L2FhY2VuY2RzcC5oCmluZGV4IDY4NGJiYzI1NGYuLjc3YWExMzM2OTEgMTAwNjQ0Ci0tLSBhL2xp YmF2Y29kZWMvYWFjZW5jZHNwLmgKKysrIGIvbGliYXZjb2RlYy9hYWNlbmNkc3AuaApAQCAtNjUs NyArNjUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZmZfYWFjZW5jX2RzcF9pbml0KEFBQ0VuY0RT UENvbnRleHQgKnMpCiAKICNpZiBBUkNIX1JJU0NWCiAgICAgZmZfYWFjZW5jX2RzcF9pbml0X3Jp c2N2KHMpOwotI2VsaWYgQVJDSF9YODYKKyNlbGlmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAg ICAgZmZfYWFjZW5jX2RzcF9pbml0X3g4NihzKTsKICNlbGlmIEFSQ0hfQUFSQ0g2NAogICAgIGZm X2FhY2VuY19kc3BfaW5pdF9hYXJjaDY0KHMpOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hYWNw c2RzcF90ZW1wbGF0ZS5jIGIvbGliYXZjb2RlYy9hYWNwc2RzcF90ZW1wbGF0ZS5jCmluZGV4IGMy OGJhMmM5YTUuLjM0MWJmNzcwMjMgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvYWFjcHNkc3BfdGVt cGxhdGUuYworKysgYi9saWJhdmNvZGVjL2FhY3BzZHNwX3RlbXBsYXRlLmMKQEAgLTIyOCw3ICsy MjgsNyBAQCBhdl9jb2xkIHZvaWQgQUFDX1JFTkFNRShmZl9wc2RzcF9pbml0KShQU0RTUENvbnRl eHQgKnMpCiAgICAgZmZfcHNkc3BfaW5pdF9hYXJjaDY0KHMpOwogI2VsaWYgQVJDSF9SSVNDVgog ICAgIGZmX3BzZHNwX2luaXRfcmlzY3Yocyk7Ci0jZWxpZiBBUkNIX1g4NgorI2VsaWYgQVJDSF9Y ODYgJiYgSEFWRV9YODZBU00KICAgICBmZl9wc2RzcF9pbml0X3g4NihzKTsKICNlbmRpZgogI2Vu ZGlmIC8qICFVU0VfRklYRUQgKi8KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYWMzZHNwLmMgYi9s aWJhdmNvZGVjL2FjM2RzcC5jCmluZGV4IDczMGZhNzBmZmYuLmE0YTI4Yzg2NzIgMTAwNjQ0Ci0t LSBhL2xpYmF2Y29kZWMvYWMzZHNwLmMKKysrIGIvbGliYXZjb2RlYy9hYzNkc3AuYwpAQCAtMzYz LDcgKzM2Myw3IEBAIHZvaWQgZmZfYWMzZHNwX2Rvd25taXgoQUMzRFNQQ29udGV4dCAqYywgZmxv YXQgKipzYW1wbGVzLCBmbG9hdCAqKm1hdHJpeCwKICAgICAgICAgICAgIGMtPmRvd25taXggPSBh YzNfZG93bm1peF81X3RvXzFfc3ltbWV0cmljX2M7CiAgICAgICAgIH0KIAotI2lmIEFSQ0hfWDg2 CisjaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICAgICAgZmZfYWMzZHNwX3NldF9kb3du bWl4X3g4NihjKTsKICNlbmRpZgogICAgIH0KQEAgLTM5Myw3ICszOTMsNyBAQCBhdl9jb2xkIHZv aWQgZmZfYWMzZHNwX2luaXQoQUMzRFNQQ29udGV4dCAqYykKICAgICBmZl9hYzNkc3BfaW5pdF9h YXJjaDY0KGMpOwogI2VsaWYgQVJDSF9BUk0KICAgICBmZl9hYzNkc3BfaW5pdF9hcm0oYyk7Ci0j ZWxpZiBBUkNIX1g4NgorI2VsaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBmZl9hYzNk c3BfaW5pdF94ODYoYyk7CiAjZWxpZiBBUkNIX01JUFMKICAgICBmZl9hYzNkc3BfaW5pdF9taXBz KGMpOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hbGFjZHNwLmMgYi9saWJhdmNvZGVjL2FsYWNk c3AuYwppbmRleCBhNjA0NTY2YWZiLi5jMDZjYzlkYTk3IDEwMDY0NAotLS0gYS9saWJhdmNvZGVj L2FsYWNkc3AuYworKysgYi9saWJhdmNvZGVjL2FsYWNkc3AuYwpAQCAtNjAsNyArNjAsNyBAQCBh dl9jb2xkIHZvaWQgZmZfYWxhY2RzcF9pbml0KEFMQUNEU1BDb250ZXh0ICpjKQogCiAjaWYgQVJD SF9SSVNDVgogICAgIGZmX2FsYWNkc3BfaW5pdF9yaXNjdihjKTsKLSNlbGlmIEFSQ0hfWDg2Cisj ZWxpZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX2FsYWNkc3BfaW5pdF94ODYoYyk7 CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYXB2X2RzcC5jIGIvbGliYXZjb2Rl Yy9hcHZfZHNwLmMKaW5kZXggOGZiYWJjZjYzZC4uOTgyZWMzNjkxMCAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy9hcHZfZHNwLmMKKysrIGIvbGliYXZjb2RlYy9hcHZfZHNwLmMKQEAgLTEzNCw3ICsx MzQsNyBAQCBhdl9jb2xkIHZvaWQgZmZfYXB2X2RzcF9pbml0KEFQVkRTUENvbnRleHQgKmRzcCkK IHsKICAgICBkc3AtPmRlY29kZV90cmFuc3F1YW50ID0gYXB2X2RlY29kZV90cmFuc3F1YW50X2M7 CiAKLSNpZiBBUkNIX1g4Nl82NAorI2lmIEFSQ0hfWDg2XzY0ICYmIEhBVkVfWDg2QVNNCiAgICAg ZmZfYXB2X2RzcF9pbml0X3g4Nl82NChkc3ApOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9saWJh dmNvZGVjL2F1ZGlvZHNwLmMgYi9saWJhdmNvZGVjL2F1ZGlvZHNwLmMKaW5kZXggZmQ2YTAwMzQ1 Zi4uYTQ3NThiYjRjMyAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9hdWRpb2RzcC5jCisrKyBiL2xp YmF2Y29kZWMvYXVkaW9kc3AuYwpAQCAtNzQsNyArNzQsNyBAQCBhdl9jb2xkIHZvaWQgZmZfYXVk aW9kc3BfaW5pdChBdWRpb0RTUENvbnRleHQgKmMpCiAgICAgZmZfYXVkaW9kc3BfaW5pdF9wcGMo Yyk7CiAjZWxpZiBBUkNIX1JJU0NWCiAgICAgZmZfYXVkaW9kc3BfaW5pdF9yaXNjdihjKTsKLSNl bGlmIEFSQ0hfWDg2CisjZWxpZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX2F1ZGlv ZHNwX2luaXRfeDg2KGMpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2Jsb2Nr ZHNwLmMgYi9saWJhdmNvZGVjL2Jsb2NrZHNwLmMKaW5kZXggNTdjYTQxYmQ5Ni4uNzkzZTc2NjRl YyAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9ibG9ja2RzcC5jCisrKyBiL2xpYmF2Y29kZWMvYmxv Y2tkc3AuYwpAQCAtNjksNyArNjksNyBAQCBhdl9jb2xkIHZvaWQgZmZfYmxvY2tkc3BfaW5pdChC bG9ja0RTUENvbnRleHQgKmMpCiAgICAgZmZfYmxvY2tkc3BfaW5pdF9wcGMoYyk7CiAjZWxpZiBB UkNIX1JJU0NWCiAgICAgZmZfYmxvY2tkc3BfaW5pdF9yaXNjdihjKTsKLSNlbGlmIEFSQ0hfWDg2 CisjZWxpZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX2Jsb2NrZHNwX2luaXRfeDg2 KGMpOwogI2VsaWYgQVJDSF9NSVBTCiAgICAgZmZfYmxvY2tkc3BfaW5pdF9taXBzKGMpOwpkaWZm IC0tZ2l0IGEvbGliYXZjb2RlYy9ic3dhcGRzcC5jIGIvbGliYXZjb2RlYy9ic3dhcGRzcC5jCmlu ZGV4IGYwZWEyYjU1YzUuLmYzNzVhYjc5YWMgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvYnN3YXBk c3AuYworKysgYi9saWJhdmNvZGVjL2Jzd2FwZHNwLmMKQEAgLTUzLDcgKzUzLDcgQEAgYXZfY29s ZCB2b2lkIGZmX2Jzd2FwZHNwX2luaXQoQnN3YXBEU1BDb250ZXh0ICpjKQogCiAjaWYgQVJDSF9S SVNDVgogICAgIGZmX2Jzd2FwZHNwX2luaXRfcmlzY3YoYyk7Ci0jZWxpZiBBUkNIX1g4NgorI2Vs aWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBmZl9ic3dhcGRzcF9pbml0X3g4NihjKTsK ICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9jYXZzZHNwLmMgYi9saWJhdmNvZGVj L2NhdnNkc3AuYwppbmRleCA2OTQyMDI0MmQ2Li43NDQ0ZjE3YmI1IDEwMDY0NAotLS0gYS9saWJh dmNvZGVjL2NhdnNkc3AuYworKysgYi9saWJhdmNvZGVjL2NhdnNkc3AuYwpAQCAtNTc3LDcgKzU3 Nyw3IEBAIGF2X2NvbGQgdm9pZCBmZl9jYXZzZHNwX2luaXQoQ0FWU0RTUENvbnRleHQqIGMpCiAg ICAgYy0+Y2F2c19pZGN0OF9hZGQgPSBjYXZzX2lkY3Q4X2FkZF9jOwogICAgIGMtPmlkY3RfcGVy bSA9IEZGX0lEQ1RfUEVSTV9OT05FOwogCi0jaWYgQVJDSF9YODYKKyNpZiBBUkNIX1g4NiAmJiBI QVZFX1g4NkFTTQogICAgIGZmX2NhdnNkc3BfaW5pdF94ODYoYyk7CiAjZW5kaWYKIH0KZGlmZiAt LWdpdCBhL2xpYmF2Y29kZWMvY2ZoZGRzcC5jIGIvbGliYXZjb2RlYy9jZmhkZHNwLmMKaW5kZXgg YTE0MWRiNTI0Ni4uMDU3NTdkNjUxNSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9jZmhkZHNwLmMK KysrIGIvbGliYXZjb2RlYy9jZmhkZHNwLmMKQEAgLTExMiw3ICsxMTIsNyBAQCBhdl9jb2xkIHZv aWQgZmZfY2ZoZGRzcF9pbml0KENGSEREU1BDb250ZXh0ICpjLCBpbnQgZGVwdGgsIGludCBiYXll cikKICAgICBlbHNlCiAgICAgICAgIGMtPmhvcml6X2ZpbHRlcl9jbGlwID0gaG9yaXpfZmlsdGVy X2NsaXA7CiAKLSNpZiBBUkNIX1g4NgorI2lmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAgICAg ZmZfY2ZoZGRzcF9pbml0X3g4NihjLCBkZXB0aCwgYmF5ZXIpOwogI2VuZGlmCiB9CmRpZmYgLS1n aXQgYS9saWJhdmNvZGVjL2NmaGRlbmNkc3AuYyBiL2xpYmF2Y29kZWMvY2ZoZGVuY2RzcC5jCmlu ZGV4IGExMjJiY2FmMTkuLjA2ODAxYWVmNmQgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvY2ZoZGVu Y2RzcC5jCisrKyBiL2xpYmF2Y29kZWMvY2ZoZGVuY2RzcC5jCkBAIC03Myw3ICs3Myw3IEBAIGF2 X2NvbGQgdm9pZCBmZl9jZmhkZW5jZHNwX2luaXQoQ0ZIREVuY0RTUENvbnRleHQgKmMpCiAgICAg Yy0+aG9yaXpfZmlsdGVyID0gaG9yaXpfZmlsdGVyOwogICAgIGMtPnZlcnRfZmlsdGVyID0gdmVy dF9maWx0ZXI7CiAKLSNpZiBBUkNIX1g4NgorI2lmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAg ICAgZmZfY2ZoZGVuY2RzcF9pbml0X3g4NihjKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvbGli YXZjb2RlYy9kY2Fkc3AuYyBiL2xpYmF2Y29kZWMvZGNhZHNwLmMKaW5kZXggZDVmYzVjNGViMi4u YTBiZTY3NjY5OSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9kY2Fkc3AuYworKysgYi9saWJhdmNv ZGVjL2RjYWRzcC5jCkBAIC00ODcsNyArNDg3LDcgQEAgYXZfY29sZCB2b2lkIGZmX2RjYWRzcF9p bml0KERDQURTUENvbnRleHQgKnMpCiAgICAgcy0+bGJyX2JhbmsgPSBsYnJfYmFua19jOwogICAg IHMtPmxmZV9paXIgPSBsZmVfaWlyX2M7CiAKLSNpZiBBUkNIX1g4NgorI2lmIEFSQ0hfWDg2ICYm IEhBVkVfWDg2QVNNCiAgICAgZmZfZGNhZHNwX2luaXRfeDg2KHMpOwogI2VuZGlmCiB9CmRpZmYg LS1naXQgYS9saWJhdmNvZGVjL2RpcmFjX2R3dC5jIGIvbGliYXZjb2RlYy9kaXJhY19kd3QuYwpp bmRleCBkNDczZjY0ZGFhLi4wZDkyYWQwNmRhIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2RpcmFj X2R3dC5jCisrKyBiL2xpYmF2Y29kZWMvZGlyYWNfZHd0LmMKQEAgLTU5LDcgKzU5LDcgQEAgaW50 IGZmX3NwYXRpYWxfaWR3dF9pbml0KERXVENvbnRleHQgKmQsIERXVFBsYW5lICpwLCBlbnVtIGR3 dF90eXBlIHR5cGUsCiAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgIH0K IAotI2lmIEFSQ0hfWDg2CisjaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBpZiAoYml0 X2RlcHRoID09IDgpCiAgICAgICAgIGZmX3NwYXRpYWxfaWR3dF9pbml0X3g4NihkLCB0eXBlKTsK ICNlbmRpZgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9kaXJhY2RzcC5jIGIvbGliYXZjb2RlYy9k aXJhY2RzcC5jCmluZGV4IDI4NGY5MTRmOWQuLmEwMmEyMzk3NGIgMTAwNjQ0Ci0tLSBhL2xpYmF2 Y29kZWMvZGlyYWNkc3AuYworKysgYi9saWJhdmNvZGVjL2RpcmFjZHNwLmMKQEAgLTI0Nyw3ICsy NDcsNyBAQCBhdl9jb2xkIHZvaWQgZmZfZGlyYWNkc3BfaW5pdChEaXJhY0RTUENvbnRleHQgKmMp CiAgICAgUElYRlVOQyhhdmcsIDE2KTsKICAgICBQSVhGVU5DKGF2ZywgMzIpOwogCi0jaWYgQVJD SF9YODYKKyNpZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX2RpcmFjZHNwX2luaXRf eDg2KGMpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2RueGhkZW5jLmMgYi9s aWJhdmNvZGVjL2RueGhkZW5jLmMKaW5kZXggNzk5NGIxZDQ5Ny4uODQ0NzMxZjZjNCAxMDA2NDQK LS0tIGEvbGliYXZjb2RlYy9kbnhoZGVuYy5jCisrKyBiL2xpYmF2Y29kZWMvZG54aGRlbmMuYwpA QCAtMTM2Myw3ICsxMzYzLDcgQEAgY29uc3QgRkZDb2RlYyBmZl9kbnhoZF9lbmNvZGVyID0gewog CiB2b2lkIGZmX2RueGhkZW5jX2luaXQoRE5YSERFbmNDb250ZXh0ICpjdHgpCiB7Ci0jaWYgQVJD SF9YODYKKyNpZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX2RueGhkZW5jX2luaXRf eDg2KGN0eCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvZXhyZHNwLmMgYi9s aWJhdmNvZGVjL2V4cmRzcC5jCmluZGV4IDI0OGNiOTNjNWEuLjcwOTE0YjdlNWIgMTAwNjQ0Ci0t LSBhL2xpYmF2Y29kZWMvZXhyZHNwLmMKKysrIGIvbGliYXZjb2RlYy9leHJkc3AuYwpAQCAtNjMs NyArNjMsNyBAQCBhdl9jb2xkIHZvaWQgZmZfZXhyZHNwX2luaXQoRXhyRFNQQ29udGV4dCAqYykK IAogI2lmIEFSQ0hfUklTQ1YKICAgICBmZl9leHJkc3BfaW5pdF9yaXNjdihjKTsKLSNlbGlmIEFS Q0hfWDg2CisjZWxpZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX2V4cmRzcF9pbml0 X3g4NihjKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9mbGFjZHNwLmMgYi9s aWJhdmNvZGVjL2ZsYWNkc3AuYwppbmRleCBiNWIwNjA5NzE2Li5mOGI0ODc3MGY0IDEwMDY0NAot LS0gYS9saWJhdmNvZGVjL2ZsYWNkc3AuYworKysgYi9saWJhdmNvZGVjL2ZsYWNkc3AuYwpAQCAt MTU0LDcgKzE1NCw3IEBAIGF2X2NvbGQgdm9pZCBmZl9mbGFjZHNwX2luaXQoRkxBQ0RTUENvbnRl eHQgKmMsIGVudW0gQVZTYW1wbGVGb3JtYXQgZm10LCBpbnQgY2hhCiAgICAgZmZfZmxhY2RzcF9p bml0X2FybShjLCBmbXQsIGNoYW5uZWxzKTsKICNlbGlmIEFSQ0hfUklTQ1YKICAgICBmZl9mbGFj ZHNwX2luaXRfcmlzY3YoYywgZm10LCBjaGFubmVscyk7Ci0jZWxpZiBBUkNIX1g4NgorI2VsaWYg QVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBmZl9mbGFjZHNwX2luaXRfeDg2KGMsIGZtdCwg Y2hhbm5lbHMpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2ZsYWNlbmNkc3Au YyBiL2xpYmF2Y29kZWMvZmxhY2VuY2RzcC5jCmluZGV4IDQ2ZTVhMDM1MmIuLjI1MWIzYzJkNDcg MTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvZmxhY2VuY2RzcC5jCisrKyBiL2xpYmF2Y29kZWMvZmxh Y2VuY2RzcC5jCkBAIC0zNCw3ICszNCw3IEBAIGF2X2NvbGQgdm9pZCBmZl9mbGFjZW5jZHNwX2lu aXQoRkxBQ0VuY0RTUENvbnRleHQgKmMpCiAgICAgYy0+bHBjMTZfZW5jb2RlID0gZmxhY19scGNf ZW5jb2RlX2NfMTY7CiAgICAgYy0+bHBjMzJfZW5jb2RlID0gZmxhY19scGNfZW5jb2RlX2NfMzI7 CiAKLSNpZiBBUkNIX1g4NgorI2lmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfZmxh Y2VuY2RzcF9pbml0X3g4NihjKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9m bXRjb252ZXJ0LmMgYi9saWJhdmNvZGVjL2ZtdGNvbnZlcnQuYwppbmRleCBkODg5ZTYxYWNhLi43 N2Q2OWY4MjExIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2ZtdGNvbnZlcnQuYworKysgYi9saWJh dmNvZGVjL2ZtdGNvbnZlcnQuYwpAQCAtNTQsNyArNTQsNyBAQCBhdl9jb2xkIHZvaWQgZmZfZm10 X2NvbnZlcnRfaW5pdChGbXRDb252ZXJ0Q29udGV4dCAqYykKICAgICBmZl9mbXRfY29udmVydF9p bml0X3BwYyhjKTsKICNlbGlmIEFSQ0hfUklTQ1YKICAgICBmZl9mbXRfY29udmVydF9pbml0X3Jp c2N2KGMpOwotI2VsaWYgQVJDSF9YODYKKyNlbGlmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAg ICAgZmZfZm10X2NvbnZlcnRfaW5pdF94ODYoYyk7CiAjZW5kaWYKICNpZiBIQVZFX01JUFNGUFUK ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvZzcyMmRzcC5jIGIvbGliYXZjb2RlYy9nNzIyZHNwLmMK aW5kZXggMzAyMjgzNjg4Zi4uNTgwNzYzNWNlNSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9nNzIy ZHNwLmMKKysrIGIvbGliYXZjb2RlYy9nNzIyZHNwLmMKQEAgLTczLDcgKzczLDcgQEAgYXZfY29s ZCB2b2lkIGZmX2c3MjJkc3BfaW5pdChHNzIyRFNQQ29udGV4dCAqYykKICAgICBmZl9nNzIyZHNw X2luaXRfYXJtKGMpOwogI2VsaWYgQVJDSF9SSVNDVgogICAgIGZmX2c3MjJkc3BfaW5pdF9yaXNj dihjKTsKLSNlbGlmIEFSQ0hfWDg2CisjZWxpZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFTTQogICAg IGZmX2c3MjJkc3BfaW5pdF94ODYoYyk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29k ZWMvaDI2M2RzcC5jIGIvbGliYXZjb2RlYy9oMjYzZHNwLmMKaW5kZXggNmExMzM1MzQ5OS4uMTY1 MTc0YTQ5OSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9oMjYzZHNwLmMKKysrIGIvbGliYXZjb2Rl Yy9oMjYzZHNwLmMKQEAgLTEyMSw3ICsxMjEsNyBAQCBhdl9jb2xkIHZvaWQgZmZfaDI2M2RzcF9p bml0KEgyNjNEU1BDb250ZXh0ICpjdHgpCiAKICNpZiBBUkNIX1JJU0NWCiAgICAgZmZfaDI2M2Rz cF9pbml0X3Jpc2N2KGN0eCk7Ci0jZWxpZiBBUkNIX1g4NgorI2VsaWYgQVJDSF9YODYgJiYgSEFW RV9YODZBU00KICAgICBmZl9oMjYzZHNwX2luaXRfeDg2KGN0eCk7CiAjZWxpZiBBUkNIX01JUFMK ICAgICBmZl9oMjYzZHNwX2luaXRfbWlwcyhjdHgpOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9o MjY0Y2hyb21hLmMgYi9saWJhdmNvZGVjL2gyNjRjaHJvbWEuYwppbmRleCA1MDAwYzg5YWE3Li4w ZDE1MmRlNTlkIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2gyNjRjaHJvbWEuYworKysgYi9saWJh dmNvZGVjL2gyNjRjaHJvbWEuYwpAQCAtNTAsNyArNTAsNyBAQCBhdl9jb2xkIHZvaWQgZmZfaDI2 NGNocm9tYV9pbml0KEgyNjRDaHJvbWFDb250ZXh0ICpjLCBpbnQgYml0X2RlcHRoKQogICAgIGZm X2gyNjRjaHJvbWFfaW5pdF9hcm0oYywgYml0X2RlcHRoKTsKICNlbGlmIEFSQ0hfUFBDCiAgICAg ZmZfaDI2NGNocm9tYV9pbml0X3BwYyhjLCBiaXRfZGVwdGgpOwotI2VsaWYgQVJDSF9YODYKKyNl bGlmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfaDI2NGNocm9tYV9pbml0X3g4Nihj LCBiaXRfZGVwdGgpOwogI2VsaWYgQVJDSF9NSVBTCiAgICAgZmZfaDI2NGNocm9tYV9pbml0X21p cHMoYywgYml0X2RlcHRoKTsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvaDI2NGRzcC5jIGIvbGli YXZjb2RlYy9oMjY0ZHNwLmMKaW5kZXggOGE2YTNmNTMyNS4uZjRjNTIzODM3MiAxMDA2NDQKLS0t IGEvbGliYXZjb2RlYy9oMjY0ZHNwLmMKKysrIGIvbGliYXZjb2RlYy9oMjY0ZHNwLmMKQEAgLTE2 MCw3ICsxNjAsNyBAQCBhdl9jb2xkIHZvaWQgZmZfaDI2NGRzcF9pbml0KEgyNjREU1BDb250ZXh0 ICpjLCBjb25zdCBpbnQgYml0X2RlcHRoLAogICAgIGZmX2gyNjRkc3BfaW5pdF9wcGMoYywgYml0 X2RlcHRoLCBjaHJvbWFfZm9ybWF0X2lkYyk7CiAjZWxpZiBBUkNIX1JJU0NWCiAgICAgZmZfaDI2 NGRzcF9pbml0X3Jpc2N2KGMsIGJpdF9kZXB0aCwgY2hyb21hX2Zvcm1hdF9pZGMpOwotI2VsaWYg QVJDSF9YODYKKyNlbGlmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfaDI2NGRzcF9p bml0X3g4NihjLCBiaXRfZGVwdGgsIGNocm9tYV9mb3JtYXRfaWRjKTsKICNlbGlmIEFSQ0hfTUlQ UwogICAgIGZmX2gyNjRkc3BfaW5pdF9taXBzKGMsIGJpdF9kZXB0aCwgY2hyb21hX2Zvcm1hdF9p ZGMpOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9oMjY0cHJlZC5jIGIvbGliYXZjb2RlYy9oMjY0 cHJlZC5jCmluZGV4IDI1Zjk5OTVhMGIuLmZiZDhkMmI5MWQgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29k ZWMvaDI2NHByZWQuYworKysgYi9saWJhdmNvZGVjL2gyNjRwcmVkLmMKQEAgLTU5Miw3ICs1OTIs NyBAQCBhdl9jb2xkIHZvaWQgZmZfaDI2NF9wcmVkX2luaXQoSDI2NFByZWRDb250ZXh0ICpoLCBp bnQgY29kZWNfaWQsCiAgICAgZmZfaDI2NF9wcmVkX2luaXRfYWFyY2g2NChoLCBjb2RlY19pZCwg Yml0X2RlcHRoLCBjaHJvbWFfZm9ybWF0X2lkYyk7CiAjZWxpZiBBUkNIX0FSTQogICAgIGZmX2gy NjRfcHJlZF9pbml0X2FybShoLCBjb2RlY19pZCwgYml0X2RlcHRoLCBjaHJvbWFfZm9ybWF0X2lk Yyk7Ci0jZWxpZiBBUkNIX1g4NgorI2VsaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBm Zl9oMjY0X3ByZWRfaW5pdF94ODYoaCwgY29kZWNfaWQsIGJpdF9kZXB0aCwgY2hyb21hX2Zvcm1h dF9pZGMpOwogI2VsaWYgQVJDSF9NSVBTCiAgICAgZmZfaDI2NF9wcmVkX2luaXRfbWlwcyhoLCBj b2RlY19pZCwgYml0X2RlcHRoLCBjaHJvbWFfZm9ybWF0X2lkYyk7CmRpZmYgLS1naXQgYS9saWJh dmNvZGVjL2gyNjRxcGVsLmMgYi9saWJhdmNvZGVjL2gyNjRxcGVsLmMKaW5kZXggMGJjNzE1YzYz OC4uYzY0ZDM1YjczZCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9oMjY0cXBlbC5jCisrKyBiL2xp YmF2Y29kZWMvaDI2NHFwZWwuYwpAQCAtMTA0LDcgKzEwNCw3IEBAIGF2X2NvbGQgdm9pZCBmZl9o MjY0cXBlbF9pbml0KEgyNjRRcGVsQ29udGV4dCAqYywgaW50IGJpdF9kZXB0aCkKICAgICBmZl9o MjY0cXBlbF9pbml0X3BwYyhjLCBiaXRfZGVwdGgpOwogI2VsaWYgQVJDSF9SSVNDVgogICAgIGZm X2gyNjRxcGVsX2luaXRfcmlzY3YoYywgYml0X2RlcHRoKTsKLSNlbGlmIEFSQ0hfWDg2CisjZWxp ZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX2gyNjRxcGVsX2luaXRfeDg2KGMsIGJp dF9kZXB0aCk7CiAjZWxpZiBBUkNIX01JUFMKICAgICBmZl9oMjY0cXBlbF9pbml0X21pcHMoYywg Yml0X2RlcHRoKTsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvaGV2Yy9kc3AuYyBiL2xpYmF2Y29k ZWMvaGV2Yy9kc3AuYwppbmRleCBhMTU0ZmFiMmJmLi41YWU3NzlmOWY3IDEwMDY0NAotLS0gYS9s aWJhdmNvZGVjL2hldmMvZHNwLmMKKysrIGIvbGliYXZjb2RlYy9oZXZjL2RzcC5jCkBAIC0yNjks NyArMjY5LDcgQEAgaW50IGkgPSAwOwogICAgIGZmX2hldmNfZHNwX2luaXRfcmlzY3YoaGV2Y2Rz cCwgYml0X2RlcHRoKTsKICNlbGlmIEFSQ0hfV0FTTQogICAgIGZmX2hldmNfZHNwX2luaXRfd2Fz bShoZXZjZHNwLCBiaXRfZGVwdGgpOwotI2VsaWYgQVJDSF9YODYKKyNlbGlmIEFSQ0hfWDg2ICYm IEhBVkVfWDg2QVNNCiAgICAgZmZfaGV2Y19kc3BfaW5pdF94ODYoaGV2Y2RzcCwgYml0X2RlcHRo KTsKICNlbGlmIEFSQ0hfTUlQUwogICAgIGZmX2hldmNfZHNwX2luaXRfbWlwcyhoZXZjZHNwLCBi aXRfZGVwdGgpOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9ocGVsZHNwLmMgYi9saWJhdmNvZGVj L2hwZWxkc3AuYwppbmRleCA2ODg5MzlhZDNmLi5lNzUzZDYyMTZjIDEwMDY0NAotLS0gYS9saWJh dmNvZGVjL2hwZWxkc3AuYworKysgYi9saWJhdmNvZGVjL2hwZWxkc3AuYwpAQCAtMzYwLDcgKzM2 MCw3IEBAIGF2X2NvbGQgdm9pZCBmZl9ocGVsZHNwX2luaXQoSHBlbERTUENvbnRleHQgKmMsIGlu dCBmbGFncykKICAgICBmZl9ocGVsZHNwX2luaXRfYXJtKGMsIGZsYWdzKTsKICNlbGlmIEFSQ0hf UFBDCiAgICAgZmZfaHBlbGRzcF9pbml0X3BwYyhjLCBmbGFncyk7Ci0jZWxpZiBBUkNIX1g4Ngor I2VsaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBmZl9ocGVsZHNwX2luaXRfeDg2KGMs IGZsYWdzKTsKICNlbGlmIEFSQ0hfTUlQUwogICAgIGZmX2hwZWxkc3BfaW5pdF9taXBzKGMsIGZs YWdzKTsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvaHVmZnl1dmRzcC5jIGIvbGliYXZjb2RlYy9o dWZmeXV2ZHNwLmMKaW5kZXggODA1ODdkYWM4NS4uMWFlMmY4MjBkMCAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy9odWZmeXV2ZHNwLmMKKysrIGIvbGliYXZjb2RlYy9odWZmeXV2ZHNwLmMKQEAgLTg5 LDcgKzg5LDcgQEAgYXZfY29sZCB2b2lkIGZmX2h1ZmZ5dXZkc3BfaW5pdChIdWZmWVVWRFNQQ29u dGV4dCAqYywgZW51bSBBVlBpeGVsRm9ybWF0IHBpeF9mbXQKIAogI2lmIEFSQ0hfUklTQ1YKICAg ICBmZl9odWZmeXV2ZHNwX2luaXRfcmlzY3YoYywgcGl4X2ZtdCk7Ci0jZWxpZiBBUkNIX1g4Ngor I2VsaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBmZl9odWZmeXV2ZHNwX2luaXRfeDg2 KGMsIHBpeF9mbXQpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2h1ZmZ5dXZl bmNkc3AuYyBiL2xpYmF2Y29kZWMvaHVmZnl1dmVuY2RzcC5jCmluZGV4IDI3NDI4NjM1YWYuLmUz MzJmNjc4ZDQgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvaHVmZnl1dmVuY2RzcC5jCisrKyBiL2xp YmF2Y29kZWMvaHVmZnl1dmVuY2RzcC5jCkBAIC04OSw3ICs4OSw3IEBAIGF2X2NvbGQgdm9pZCBm Zl9odWZmeXV2ZW5jZHNwX2luaXQoSHVmZllVVkVuY0RTUENvbnRleHQgKmMsIGVudW0gQVZQaXhl bEZvcm1hdCBwCiAgICAgYy0+ZGlmZl9pbnQxNiAgICAgICAgICAgPSBkaWZmX2ludDE2X2M7CiAg ICAgYy0+c3ViX2hmeXVfbWVkaWFuX3ByZWRfaW50MTYgPSBzdWJfaGZ5dV9tZWRpYW5fcHJlZF9p bnQxNl9jOwogCi0jaWYgQVJDSF9YODYKKyNpZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFTTQogICAg IGZmX2h1ZmZ5dXZlbmNkc3BfaW5pdF94ODYoYywgcGl4X2ZtdCk7CiAjZW5kaWYKIH0KZGlmZiAt LWdpdCBhL2xpYmF2Y29kZWMvaWRjdGRzcC5jIGIvbGliYXZjb2RlYy9pZGN0ZHNwLmMKaW5kZXgg OGE3MWM3ZWY3Ny4uZTAzOWY5MDBlYiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9pZGN0ZHNwLmMK KysrIGIvbGliYXZjb2RlYy9pZGN0ZHNwLmMKQEAgLTQxLDcgKzQxLDcgQEAgYXZfY29sZCB2b2lk IGZmX2luaXRfc2NhbnRhYmxlX3Blcm11dGF0aW9uKHVpbnQ4X3QgKmlkY3RfcGVybXV0YXRpb24s CiB7CiAgICAgaW50IGk7CiAKLSNpZiBBUkNIX1g4NgorI2lmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2 QVNNCiAgICAgaWYgKGZmX2luaXRfc2NhbnRhYmxlX3Blcm11dGF0aW9uX3g4NihpZGN0X3Blcm11 dGF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVybV90 eXBlKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzAxLDcgKzMwMSw3IEBAIGF2X2NvbGQgdm9pZCBm Zl9pZGN0ZHNwX2luaXQoSURDVERTUENvbnRleHQgKmMsIEFWQ29kZWNDb250ZXh0ICphdmN0eCkK ICAgICBmZl9pZGN0ZHNwX2luaXRfcHBjKGMsIGF2Y3R4LCBoaWdoX2JpdF9kZXB0aCk7CiAjZWxp ZiBBUkNIX1JJU0NWCiAgICAgZmZfaWRjdGRzcF9pbml0X3Jpc2N2KGMsIGF2Y3R4LCBoaWdoX2Jp dF9kZXB0aCk7Ci0jZWxpZiBBUkNIX1g4NgorI2VsaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00K ICAgICBmZl9pZGN0ZHNwX2luaXRfeDg2KGMsIGF2Y3R4LCBoaWdoX2JpdF9kZXB0aCk7CiAjZWxp ZiBBUkNIX01JUFMKICAgICBmZl9pZGN0ZHNwX2luaXRfbWlwcyhjLCBhdmN0eCwgaGlnaF9iaXRf ZGVwdGgpOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9qcGVnMjAwMGRzcC5jIGIvbGliYXZjb2Rl Yy9qcGVnMjAwMGRzcC5jCmluZGV4IDc4NDBmZGMzNTcuLjI5MzFhMzhlZjEgMTAwNjQ0Ci0tLSBh L2xpYmF2Y29kZWMvanBlZzIwMDBkc3AuYworKysgYi9saWJhdmNvZGVjL2pwZWcyMDAwZHNwLmMK QEAgLTk4LDcgKzk4LDcgQEAgYXZfY29sZCB2b2lkIGZmX2pwZWcyMDAwZHNwX2luaXQoSnBlZzIw MDBEU1BDb250ZXh0ICpjKQogCiAjaWYgQVJDSF9SSVNDVgogICAgIGZmX2pwZWcyMDAwZHNwX2lu aXRfcmlzY3YoYyk7Ci0jZWxpZiBBUkNIX1g4NgorI2VsaWYgQVJDSF9YODYgJiYgSEFWRV9YODZB U00KICAgICBmZl9qcGVnMjAwMGRzcF9pbml0X3g4NihjKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0 IGEvbGliYXZjb2RlYy9sb3NzbGVzc19hdWRpb2RzcC5jIGIvbGliYXZjb2RlYy9sb3NzbGVzc19h dWRpb2RzcC5jCmluZGV4IDk0ZTZjZTA5ODkuLjJkNTc4NTdkYWQgMTAwNjQ0Ci0tLSBhL2xpYmF2 Y29kZWMvbG9zc2xlc3NfYXVkaW9kc3AuYworKysgYi9saWJhdmNvZGVjL2xvc3NsZXNzX2F1ZGlv ZHNwLmMKQEAgLTYzLDcgKzYzLDcgQEAgYXZfY29sZCB2b2lkIGZmX2xsYXVkZHNwX2luaXQoTExB dWREU1BDb250ZXh0ICpjKQogICAgIGZmX2xsYXVkZHNwX2luaXRfYXJtKGMpOwogI2VsaWYgQVJD SF9SSVNDVgogICAgIGZmX2xsYXVkZHNwX2luaXRfcmlzY3YoYyk7Ci0jZWxpZiBBUkNIX1g4Ngor I2VsaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBmZl9sbGF1ZGRzcF9pbml0X3g4Nihj KTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9sb3NzbGVzc192aWRlb2RzcC5j IGIvbGliYXZjb2RlYy9sb3NzbGVzc192aWRlb2RzcC5jCmluZGV4IDIyOTQ5NGJiNTAuLmJmM2Ez ZGE5MGQgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvbG9zc2xlc3NfdmlkZW9kc3AuYworKysgYi9s aWJhdmNvZGVjL2xvc3NsZXNzX3ZpZGVvZHNwLmMKQEAgLTEyNCw3ICsxMjQsNyBAQCBhdl9jb2xk IHZvaWQgZmZfbGx2aWRkc3BfaW5pdChMTFZpZERTUENvbnRleHQgKmMpCiAgICAgZmZfbGx2aWRk c3BfaW5pdF9wcGMoYyk7CiAjZWxpZiBBUkNIX1JJU0NWCiAgICAgZmZfbGx2aWRkc3BfaW5pdF9y aXNjdihjKTsKLSNlbGlmIEFSQ0hfWDg2CisjZWxpZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFTTQog ICAgIGZmX2xsdmlkZHNwX2luaXRfeDg2KGMpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9saWJh dmNvZGVjL21lX2NtcC5jIGIvbGliYXZjb2RlYy9tZV9jbXAuYwppbmRleCA4ZTUzZjZkNTczLi4w OTg2MWUyMDc0IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL21lX2NtcC5jCisrKyBiL2xpYmF2Y29k ZWMvbWVfY21wLmMKQEAgLTEwMTksNyArMTAxOSw3IEBAIGF2X2NvbGQgdm9pZCBmZl9tZV9jbXBf aW5pdChNRUNtcENvbnRleHQgKmMsIEFWQ29kZWNDb250ZXh0ICphdmN0eCkKICAgICBmZl9tZV9j bXBfaW5pdF9wcGMoYywgYXZjdHgpOwogI2VsaWYgQVJDSF9SSVNDVgogICAgIGZmX21lX2NtcF9p bml0X3Jpc2N2KGMsIGF2Y3R4KTsKLSNlbGlmIEFSQ0hfWDg2CisjZWxpZiBBUkNIX1g4NiAmJiBI QVZFX1g4NkFTTQogICAgIGZmX21lX2NtcF9pbml0X3g4NihjLCBhdmN0eCk7CiAjZWxpZiBBUkNI X01JUFMKICAgICBmZl9tZV9jbXBfaW5pdF9taXBzKGMsIGF2Y3R4KTsKZGlmZiAtLWdpdCBhL2xp YmF2Y29kZWMvb3B1cy9kc3AuYyBiL2xpYmF2Y29kZWMvb3B1cy9kc3AuYwppbmRleCA2Y2Q3NmNl Y2ViLi5mMjI3OGM1YmRlIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL29wdXMvZHNwLmMKKysrIGIv bGliYXZjb2RlYy9vcHVzL2RzcC5jCkBAIC02Miw3ICs2Miw3IEBAIGF2X2NvbGQgdm9pZCBmZl9v cHVzX2RzcF9pbml0KE9wdXNEU1AgKmN0eCkKICAgICBmZl9vcHVzX2RzcF9pbml0X2FhcmNoNjQo Y3R4KTsKICNlbGlmIEFSQ0hfUklTQ1YKICAgICBmZl9vcHVzX2RzcF9pbml0X3Jpc2N2KGN0eCk7 Ci0jZWxpZiBBUkNIX1g4NgorI2VsaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBmZl9v cHVzX2RzcF9pbml0X3g4NihjdHgpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVj L29wdXMvcHZxLmMgYi9saWJhdmNvZGVjL29wdXMvcHZxLmMKaW5kZXggZmU1N2FiMDJjZS4uM2Rl YTdjMTlmMiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9vcHVzL3B2cS5jCisrKyBiL2xpYmF2Y29k ZWMvb3B1cy9wdnEuYwpAQCAtOTE0LDcgKzkxNCw3IEBAIGludCBhdl9jb2xkIGZmX2NlbHRfcHZx X2luaXQoQ2VsdFBWUSAqKnB2cSwgaW50IGVuY29kZSkKIAogI2lmIENPTkZJR19PUFVTX0VOQ09E RVIKICAgICBzLT5wdnFfc2VhcmNoID0gcHBwX3B2cV9zZWFyY2hfYzsKLSNpZiBBUkNIX1g4Ngor I2lmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfY2VsdF9wdnFfaW5pdF94ODYocyk7 CiAjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9waXhibG9ja2RzcC5jIGIv bGliYXZjb2RlYy9waXhibG9ja2RzcC5jCmluZGV4IDExMGEzNzQyNjAuLjVhZTg0MGYxMDAgMTAw NjQ0Ci0tLSBhL2xpYmF2Y29kZWMvcGl4YmxvY2tkc3AuYworKysgYi9saWJhdmNvZGVjL3BpeGJs b2NrZHNwLmMKQEAgLTEwOCw3ICsxMDgsNyBAQCBhdl9jb2xkIHZvaWQgZmZfcGl4YmxvY2tkc3Bf aW5pdChQaXhibG9ja0RTUENvbnRleHQgKmMsIGludCBiaXRzX3Blcl9yYXdfc2FtcGxlKQogICAg IGZmX3BpeGJsb2NrZHNwX2luaXRfcHBjKGMsIGhpZ2hfYml0X2RlcHRoKTsKICNlbGlmIEFSQ0hf UklTQ1YKICAgICBmZl9waXhibG9ja2RzcF9pbml0X3Jpc2N2KGMsIGhpZ2hfYml0X2RlcHRoKTsK LSNlbGlmIEFSQ0hfWDg2CisjZWxpZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX3Bp eGJsb2NrZHNwX2luaXRfeDg2KGMsIGhpZ2hfYml0X2RlcHRoKTsKICNlbGlmIEFSQ0hfTUlQUwog ICAgIGZmX3BpeGJsb2NrZHNwX2luaXRfbWlwcyhjLCBoaWdoX2JpdF9kZXB0aCk7CmRpZmYgLS1n aXQgYS9saWJhdmNvZGVjL3BuZ2RzcC5jIGIvbGliYXZjb2RlYy9wbmdkc3AuYwppbmRleCA1MGVl OTZhNjg0Li5hZTQwMTEzYTUxIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3BuZ2RzcC5jCisrKyBi L2xpYmF2Y29kZWMvcG5nZHNwLmMKQEAgLTU4LDcgKzU4LDcgQEAgYXZfY29sZCB2b2lkIGZmX3Bu Z2RzcF9pbml0KFBOR0RTUENvbnRleHQgKmRzcCkKICAgICBkc3AtPmFkZF9ieXRlc19sMiAgICAg ICAgID0gYWRkX2J5dGVzX2wyX2M7CiAgICAgZHNwLT5hZGRfcGFldGhfcHJlZGljdGlvbiA9IGZm X2FkZF9wbmdfcGFldGhfcHJlZGljdGlvbjsKIAotI2lmIEFSQ0hfWDg2CisjaWYgQVJDSF9YODYg JiYgSEFWRV9YODZBU00KICAgICBmZl9wbmdkc3BfaW5pdF94ODYoZHNwKTsKICNlbmRpZgogfQpk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9wcm9yZXNkc3AuYyBiL2xpYmF2Y29kZWMvcHJvcmVzZHNw LmMKaW5kZXggYTQ5MjExMjhmNy4uZWI1ZGJmNDc5OSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9w cm9yZXNkc3AuYworKysgYi9saWJhdmNvZGVjL3Byb3Jlc2RzcC5jCkBAIC0xNDksNyArMTQ5LDcg QEAgYXZfY29sZCB2b2lkIGZmX3Byb3Jlc2RzcF9pbml0KFByb3Jlc0RTUENvbnRleHQgKmRzcCwg aW50IGJpdHNfcGVyX3Jhd19zYW1wbGUpCiAgICAgICAgIGRzcC0+aWRjdF9wZXJtdXRhdGlvbl90 eXBlID0gRkZfSURDVF9QRVJNX05PTkU7CiAgICAgfQogCi0jaWYgQVJDSF9YODYKKyNpZiBBUkNI X1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX3Byb3Jlc2RzcF9pbml0X3g4Nihkc3AsIGJpdHNf cGVyX3Jhd19zYW1wbGUpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvcXBlbGRz cC5jIGIvbGliYXZjb2RlYy9xcGVsZHNwLmMKaW5kZXggNWY5MzdmOWQ5ZS4uMzNhNWVjY2QwYiAx MDA2NDQKLS0tIGEvbGliYXZjb2RlYy9xcGVsZHNwLmMKKysrIGIvbGliYXZjb2RlYy9xcGVsZHNw LmMKQEAgLTgxMCw3ICs4MTAsNyBAQCBhdl9jb2xkIHZvaWQgZmZfcXBlbGRzcF9pbml0KFFwZWxE U1BDb250ZXh0ICpjKQogICAgIGRzcGZ1bmMoYXZnX3FwZWwsIDAsIDE2KTsKICAgICBkc3BmdW5j KGF2Z19xcGVsLCAxLCA4KTsKIAotI2lmIEFSQ0hfWDg2CisjaWYgQVJDSF9YODYgJiYgSEFWRV9Y ODZBU00KICAgICBmZl9xcGVsZHNwX2luaXRfeDg2KGMpOwogI2VsaWYgQVJDSF9NSVBTCiAgICAg ZmZfcXBlbGRzcF9pbml0X21pcHMoYyk7CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3J2MzRkc3Au YyBiL2xpYmF2Y29kZWMvcnYzNGRzcC5jCmluZGV4IDQ0NDg2ZjhlZGQuLjJlMjcxMzdiZTYgMTAw NjQ0Ci0tLSBhL2xpYmF2Y29kZWMvcnYzNGRzcC5jCisrKyBiL2xpYmF2Y29kZWMvcnYzNGRzcC5j CkBAIC0xNDAsNyArMTQwLDcgQEAgYXZfY29sZCB2b2lkIGZmX3J2MzRkc3BfaW5pdChSVjM0RFNQ Q29udGV4dCAqYykKICAgICBmZl9ydjM0ZHNwX2luaXRfYXJtKGMpOwogI2VsaWYgQVJDSF9SSVND VgogICAgIGZmX3J2MzRkc3BfaW5pdF9yaXNjdihjKTsKLSNlbGlmIEFSQ0hfWDg2CisjZWxpZiBB UkNIX1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX3J2MzRkc3BfaW5pdF94ODYoYyk7CiAjZW5k aWYKIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvcnY0MGRzcC5jIGIvbGliYXZjb2RlYy9ydjQw ZHNwLmMKaW5kZXggZGQ3MzczN2JkNi4uNzM3MGI4OWUxYiAxMDA2NDQKLS0tIGEvbGliYXZjb2Rl Yy9ydjQwZHNwLmMKKysrIGIvbGliYXZjb2RlYy9ydjQwZHNwLmMKQEAgLTcxMiw3ICs3MTIsNyBA QCBhdl9jb2xkIHZvaWQgZmZfcnY0MGRzcF9pbml0KFJWMzREU1BDb250ZXh0ICpjKQogICAgIGZm X3J2NDBkc3BfaW5pdF9hcm0oYyk7CiAjZWxpZiBBUkNIX1JJU0NWCiAgICAgZmZfcnY0MGRzcF9p bml0X3Jpc2N2KGMpOwotI2VsaWYgQVJDSF9YODYKKyNlbGlmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2 QVNNCiAgICAgZmZfcnY0MGRzcF9pbml0X3g4NihjKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEv bGliYXZjb2RlYy9zYmNkc3AuYyBiL2xpYmF2Y29kZWMvc2JjZHNwLmMKaW5kZXggMDBmOWM0YzY4 ZC4uNTY3NGJkYzRhNyAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9zYmNkc3AuYworKysgYi9saWJh dmNvZGVjL3NiY2RzcC5jCkBAIC0zODIsNyArMzgyLDcgQEAgYXZfY29sZCB2b2lkIGZmX3NiY2Rz cF9pbml0KFNCQ0RTUENvbnRleHQgKnMpCiAKICNpZiBBUkNIX0FSTQogICAgIGZmX3NiY2RzcF9p bml0X2FybShzKTsKLSNlbGlmIEFSQ0hfWDg2CisjZWxpZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFT TQogICAgIGZmX3NiY2RzcF9pbml0X3g4NihzKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvbGli YXZjb2RlYy9zYnJkc3BfdGVtcGxhdGUuYyBiL2xpYmF2Y29kZWMvc2JyZHNwX3RlbXBsYXRlLmMK aW5kZXggOWE5NGFmODY3MC4uYjU3NjZjNjk4MCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9zYnJk c3BfdGVtcGxhdGUuYworKysgYi9saWJhdmNvZGVjL3NicmRzcF90ZW1wbGF0ZS5jCkBAIC0xMDIs NyArMTAyLDcgQEAgYXZfY29sZCB2b2lkIEFBQ19SRU5BTUUoZmZfc2JyZHNwX2luaXQpKFNCUkRT UENvbnRleHQgKnMpCiAgICAgZmZfc2JyZHNwX2luaXRfYWFyY2g2NChzKTsKICNlbGlmIEFSQ0hf UklTQ1YKICAgICBmZl9zYnJkc3BfaW5pdF9yaXNjdihzKTsKLSNlbGlmIEFSQ0hfWDg2CisjZWxp ZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX3NicmRzcF9pbml0X3g4NihzKTsKICNl bmRpZgogI2VuZGlmIC8qICFVU0VfRklYRUQgKi8KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvc3Zx MWVuY2RzcC5oIGIvbGliYXZjb2RlYy9zdnExZW5jZHNwLmgKaW5kZXggNzUxYjVlZWQ4Ni4uZGNj OGU4MjVhMyAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9zdnExZW5jZHNwLmgKKysrIGIvbGliYXZj b2RlYy9zdnExZW5jZHNwLmgKQEAgLTUyLDcgKzUyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGZm X3N2cTFlbmNfaW5pdChTVlExRW5jRFNQQ29udGV4dCAqYykKICAgICBmZl9zdnExZW5jX2luaXRf cHBjKGMpOwogI2VsaWYgQVJDSF9SSVNDVgogICAgIGZmX3N2cTFlbmNfaW5pdF9yaXNjdihjKTsK LSNlbGlmIEFSQ0hfWDg2CisjZWxpZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX3N2 cTFlbmNfaW5pdF94ODYoYyk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvc3lu dGhfZmlsdGVyLmMgYi9saWJhdmNvZGVjL3N5bnRoX2ZpbHRlci5jCmluZGV4IGY5MGM2YmU3YTcu LjgyYTJmODEyYjggMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvc3ludGhfZmlsdGVyLmMKKysrIGIv bGliYXZjb2RlYy9zeW50aF9maWx0ZXIuYwpAQCAtMTgwLDcgKzE4MCw3IEBAIGF2X2NvbGQgdm9p ZCBmZl9zeW50aF9maWx0ZXJfaW5pdChTeW50aEZpbHRlckNvbnRleHQgKmMpCiAgICAgZmZfc3lu dGhfZmlsdGVyX2luaXRfYWFyY2g2NChjKTsKICNlbGlmIEFSQ0hfQVJNCiAgICAgZmZfc3ludGhf ZmlsdGVyX2luaXRfYXJtKGMpOwotI2VsaWYgQVJDSF9YODYKKyNlbGlmIEFSQ0hfWDg2ICYmIEhB VkVfWDg2QVNNCiAgICAgZmZfc3ludGhfZmlsdGVyX2luaXRfeDg2KGMpOwogI2VuZGlmCiB9CmRp ZmYgLS1naXQgYS9saWJhdmNvZGVjL3Rha2RzcC5jIGIvbGliYXZjb2RlYy90YWtkc3AuYwppbmRl eCA1MWI2NjU4ZGU0Li5hN2UyODFiNmUyIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Rha2RzcC5j CisrKyBiL2xpYmF2Y29kZWMvdGFrZHNwLmMKQEAgLTc5LDcgKzc5LDcgQEAgYXZfY29sZCB2b2lk IGZmX3Rha2RzcF9pbml0KFRBS0RTUENvbnRleHQgKmMpCiAKICNpZiBBUkNIX1JJU0NWCiAgICAg ZmZfdGFrZHNwX2luaXRfcmlzY3YoYyk7Ci0jZWxpZiBBUkNIX1g4NgorI2VsaWYgQVJDSF9YODYg JiYgSEFWRV9YODZBU00KICAgICBmZl90YWtkc3BfaW5pdF94ODYoYyk7CiAjZW5kaWYKIH0KZGlm ZiAtLWdpdCBhL2xpYmF2Y29kZWMvdHRhZHNwLmMgYi9saWJhdmNvZGVjL3R0YWRzcC5jCmluZGV4 IDVkZGExOTU4N2MuLmFmODI4NTA4NjkgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdHRhZHNwLmMK KysrIGIvbGliYXZjb2RlYy90dGFkc3AuYwpAQCAtNTcsNyArNTcsNyBAQCBhdl9jb2xkIHZvaWQg ZmZfdHRhZHNwX2luaXQoVFRBRFNQQ29udGV4dCAqYykKIHsKICAgICBjLT5maWx0ZXJfcHJvY2Vz cyA9IHR0YV9maWx0ZXJfcHJvY2Vzc19jOwogCi0jaWYgQVJDSF9YODYKKyNpZiBBUkNIX1g4NiAm JiBIQVZFX1g4NkFTTQogICAgIGZmX3R0YWRzcF9pbml0X3g4NihjKTsKICNlbmRpZgogfQpkaWZm IC0tZ2l0IGEvbGliYXZjb2RlYy90dGFlbmNkc3AuYyBiL2xpYmF2Y29kZWMvdHRhZW5jZHNwLmMK aW5kZXggMGVmZGMxMDliYi4uMGE3MTczMTNiZiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy90dGFl bmNkc3AuYworKysgYi9saWJhdmNvZGVjL3R0YWVuY2RzcC5jCkBAIC01NCw3ICs1NCw3IEBAIGF2 X2NvbGQgdm9pZCBmZl90dGFlbmNkc3BfaW5pdChUVEFFbmNEU1BDb250ZXh0ICpjKQogewogICAg IGMtPmZpbHRlcl9wcm9jZXNzID0gdHRhZW5jX2ZpbHRlcl9wcm9jZXNzX2M7CiAKLSNpZiBBUkNI X1g4NgorI2lmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfdHRhZW5jZHNwX2luaXRf eDg2KGMpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3V0dmlkZW9kc3AuYyBi L2xpYmF2Y29kZWMvdXR2aWRlb2RzcC5jCmluZGV4IGI2M2RhZmJlMTcuLjIwOWY4NTYxYWIgMTAw NjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdXR2aWRlb2RzcC5jCisrKyBiL2xpYmF2Y29kZWMvdXR2aWRl b2RzcC5jCkBAIC03OSw3ICs3OSw3IEBAIGF2X2NvbGQgdm9pZCBmZl91dHZpZGVvZHNwX2luaXQo VVRWaWRlb0RTUENvbnRleHQgKmMpCiAKICNpZiBBUkNIX1JJU0NWCiAgICAgZmZfdXR2aWRlb2Rz cF9pbml0X3Jpc2N2KGMpOwotI2VsaWYgQVJDSF9YODYKKyNlbGlmIEFSQ0hfWDg2ICYmIEhBVkVf WDg2QVNNCiAgICAgZmZfdXR2aWRlb2RzcF9pbml0X3g4NihjKTsKICNlbmRpZgogfQpkaWZmIC0t Z2l0IGEvbGliYXZjb2RlYy92MjEwZGVjX2luaXQuaCBiL2xpYmF2Y29kZWMvdjIxMGRlY19pbml0 LmgKaW5kZXggYTBjOTdiZjQyNi4uNzUyM2NiMDJiZSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy92 MjEwZGVjX2luaXQuaAorKysgYi9saWJhdmNvZGVjL3YyMTBkZWNfaW5pdC5oCkBAIC01NCw3ICs1 NCw3IEBAIHN0YXRpYyB2b2lkIHYyMTBfcGxhbmFyX3VucGFja19jKGNvbnN0IHVpbnQzMl90ICpz cmMsIHVpbnQxNl90ICp5LCB1aW50MTZfdCAqdSwKIGF2X3VudXNlZCBzdGF0aWMgYXZfY29sZCB2 b2lkIGZmX3YyMTBkZWNfaW5pdChWMjEwRGVjQ29udGV4dCAqcykKIHsKICAgICBzLT51bnBhY2tf ZnJhbWUgPSB2MjEwX3BsYW5hcl91bnBhY2tfYzsKLSNpZiBBUkNIX1g4NgorI2lmIEFSQ0hfWDg2 ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfdjIxMF94ODZfaW5pdChzKTsKICNlbmRpZgogfQpkaWZm IC0tZ2l0IGEvbGliYXZjb2RlYy92MjEwZW5jX2luaXQuaCBiL2xpYmF2Y29kZWMvdjIxMGVuY19p bml0LmgKaW5kZXggMDFiNjk4MWI1MC4uNzVjZTYyNDg1NCAxMDA2NDQKLS0tIGEvbGliYXZjb2Rl Yy92MjEwZW5jX2luaXQuaAorKysgYi9saWJhdmNvZGVjL3YyMTBlbmNfaW5pdC5oCkBAIC04Myw3 ICs4Myw3IEBAIGF2X3VudXNlZCBhdl9jb2xkIHN0YXRpYyB2b2lkIGZmX3YyMTBlbmNfaW5pdChW MjEwRW5jQ29udGV4dCAqcykKICAgICBzLT5zYW1wbGVfZmFjdG9yXzggID0gMjsKICAgICBzLT5z YW1wbGVfZmFjdG9yXzEwID0gMTsKIAotI2lmIEFSQ0hfWDg2CisjaWYgQVJDSF9YODYgJiYgSEFW RV9YODZBU00KICAgICBmZl92MjEwZW5jX2luaXRfeDg2KHMpOwogI2VuZGlmCiB9CmRpZmYgLS1n aXQgYS9saWJhdmNvZGVjL3ZjMWRzcC5jIGIvbGliYXZjb2RlYy92YzFkc3AuYwppbmRleCAyY2Fh M2M2ODYzLi44NjRhNmU1ZTdiIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3ZjMWRzcC5jCisrKyBi L2xpYmF2Y29kZWMvdmMxZHNwLmMKQEAgLTEwNDEsNyArMTA0MSw3IEBAIGF2X2NvbGQgdm9pZCBm Zl92YzFkc3BfaW5pdChWQzFEU1BDb250ZXh0ICpkc3ApCiAgICAgZmZfdmMxZHNwX2luaXRfcHBj KGRzcCk7CiAjZWxpZiBBUkNIX1JJU0NWCiAgICAgZmZfdmMxZHNwX2luaXRfcmlzY3YoZHNwKTsK LSNlbGlmIEFSQ0hfWDg2CisjZWxpZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX3Zj MWRzcF9pbml0X3g4Nihkc3ApOwogI2VsaWYgQVJDSF9NSVBTCiAgICAgZmZfdmMxZHNwX2luaXRf bWlwcyhkc3ApOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92aWRlb2RzcC5jIGIvbGliYXZjb2Rl Yy92aWRlb2RzcC5jCmluZGV4IGExOWU4N2E4MTkuLmM2Njc1N2NlODMgMTAwNjQ0Ci0tLSBhL2xp YmF2Y29kZWMvdmlkZW9kc3AuYworKysgYi9saWJhdmNvZGVjL3ZpZGVvZHNwLmMKQEAgLTUzLDcg KzUzLDcgQEAgYXZfY29sZCB2b2lkIGZmX3ZpZGVvZHNwX2luaXQoVmlkZW9EU1BDb250ZXh0ICpj dHgsIGludCBicGMpCiAgICAgZmZfdmlkZW9kc3BfaW5pdF9wcGMoY3R4LCBicGMpOwogI2VsaWYg QVJDSF9SSVNDVgogICAgIGZmX3ZpZGVvZHNwX2luaXRfcmlzY3YoY3R4LCBicGMpOwotI2VsaWYg QVJDSF9YODYKKyNlbGlmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfdmlkZW9kc3Bf aW5pdF94ODYoY3R4LCBicGMpOwogI2VsaWYgQVJDSF9NSVBTCiAgICAgZmZfdmlkZW9kc3BfaW5p dF9taXBzKGN0eCwgYnBjKTsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdm9yYmlzZHNwLmMgYi9s aWJhdmNvZGVjL3ZvcmJpc2RzcC5jCmluZGV4IDcwMDIyYmQyNjIuLjU0YTU1ZDEwOWQgMTAwNjQ0 Ci0tLSBhL2xpYmF2Y29kZWMvdm9yYmlzZHNwLmMKKysrIGIvbGliYXZjb2RlYy92b3JiaXNkc3Au YwpAQCAtNTUsNyArNTUsNyBAQCBhdl9jb2xkIHZvaWQgZmZfdm9yYmlzZHNwX2luaXQoVm9yYmlz RFNQQ29udGV4dCAqZHNwKQogICAgIGZmX3ZvcmJpc2RzcF9pbml0X3BwYyhkc3ApOwogI2VsaWYg QVJDSF9SSVNDVgogICAgIGZmX3ZvcmJpc2RzcF9pbml0X3Jpc2N2KGRzcCk7Ci0jZWxpZiBBUkNI X1g4NgorI2VsaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBmZl92b3JiaXNkc3BfaW5p dF94ODYoZHNwKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92cDNkc3AuYyBi L2xpYmF2Y29kZWMvdnAzZHNwLmMKaW5kZXggYjk2YjRkZWE2OC4uMDI1YWQwNDIzMSAxMDA2NDQK LS0tIGEvbGliYXZjb2RlYy92cDNkc3AuYworKysgYi9saWJhdmNvZGVjL3ZwM2RzcC5jCkBAIC00 NTksNyArNDU5LDcgQEAgYXZfY29sZCB2b2lkIGZmX3ZwM2RzcF9pbml0KFZQM0RTUENvbnRleHQg KmMpCiAgICAgZmZfdnAzZHNwX2luaXRfYXJtKGMpOwogI2VsaWYgQVJDSF9QUEMKICAgICBmZl92 cDNkc3BfaW5pdF9wcGMoYyk7Ci0jZWxpZiBBUkNIX1g4NgorI2VsaWYgQVJDSF9YODYgJiYgSEFW RV9YODZBU00KICAgICBmZl92cDNkc3BfaW5pdF94ODYoYyk7CiAjZWxpZiBBUkNIX01JUFMKICAg ICBmZl92cDNkc3BfaW5pdF9taXBzKGMpOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92cDZkc3Au YyBiL2xpYmF2Y29kZWMvdnA2ZHNwLmMKaW5kZXggYmRhYTA1NDMwNy4uZTEyYTdlZDJhZCAxMDA2 NDQKLS0tIGEvbGliYXZjb2RlYy92cDZkc3AuYworKysgYi9saWJhdmNvZGVjL3ZwNmRzcC5jCkBA IC02NCw3ICs2NCw3IEBAIGF2X2NvbGQgdm9pZCBmZl92cDZkc3BfaW5pdChWUDZEU1BDb250ZXh0 ICpzKQogewogICAgIHMtPnZwNl9maWx0ZXJfZGlhZzQgPSB2cDZfZmlsdGVyX2RpYWc0X2M7CiAK LSNpZiBBUkNIX1g4NgorI2lmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfdnA2ZHNw X2luaXRfeDg2KHMpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3ZwOGRzcC5j IGIvbGliYXZjb2RlYy92cDhkc3AuYwppbmRleCAxNDZjYjBhN2M3Li41NTQzMzAzYWRiIDEwMDY0 NAotLS0gYS9saWJhdmNvZGVjL3ZwOGRzcC5jCisrKyBiL2xpYmF2Y29kZWMvdnA4ZHNwLmMKQEAg LTY4Myw3ICs2ODMsNyBAQCBhdl9jb2xkIHZvaWQgZmZfdnA3OGRzcF9pbml0KFZQOERTUENvbnRl eHQgKmRzcCkKICAgICBmZl92cDc4ZHNwX2luaXRfcHBjKGRzcCk7CiAjZWxpZiBBUkNIX1JJU0NW CiAgICAgZmZfdnA3OGRzcF9pbml0X3Jpc2N2KGRzcCk7Ci0jZWxpZiBBUkNIX1g4NgorI2VsaWYg QVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBmZl92cDc4ZHNwX2luaXRfeDg2KGRzcCk7CiAj ZW5kaWYKIH0KQEAgLTc1MCw3ICs3NTAsNyBAQCBhdl9jb2xkIHZvaWQgZmZfdnA4ZHNwX2luaXQo VlA4RFNQQ29udGV4dCAqZHNwKQogICAgIGZmX3ZwOGRzcF9pbml0X2FybShkc3ApOwogI2VsaWYg QVJDSF9SSVNDVgogICAgIGZmX3ZwOGRzcF9pbml0X3Jpc2N2KGRzcCk7Ci0jZWxpZiBBUkNIX1g4 NgorI2VsaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBmZl92cDhkc3BfaW5pdF94ODYo ZHNwKTsKICNlbGlmIEFSQ0hfTUlQUwogICAgIGZmX3ZwOGRzcF9pbml0X21pcHMoZHNwKTsKZGlm ZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnA5ZHNwLmMgYi9saWJhdmNvZGVjL3ZwOWRzcC5jCmluZGV4 IDk2N2U2ZTFlMWEuLjE0NzQ4NmUxMGIgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdnA5ZHNwLmMK KysrIGIvbGliYXZjb2RlYy92cDlkc3AuYwpAQCAtMTAyLDcgKzEwMiw3IEBAIGF2X2NvbGQgdm9p ZCBmZl92cDlkc3BfaW5pdChWUDlEU1BDb250ZXh0ICpkc3AsIGludCBicHAsIGludCBiaXRleGFj dCkKICAgICBmZl92cDlkc3BfaW5pdF9hcm0oZHNwLCBicHApOwogI2VsaWYgQVJDSF9SSVNDVgog ICAgIGZmX3ZwOWRzcF9pbml0X3Jpc2N2KGRzcCwgYnBwLCBiaXRleGFjdCk7Ci0jZWxpZiBBUkNI X1g4NgorI2VsaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBmZl92cDlkc3BfaW5pdF94 ODYoZHNwLCBicHAsIGJpdGV4YWN0KTsKICNlbGlmIEFSQ0hfTUlQUwogICAgIGZmX3ZwOWRzcF9p bml0X21pcHMoZHNwLCBicHApOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92dmMvZHNwLmMgYi9s aWJhdmNvZGVjL3Z2Yy9kc3AuYwppbmRleCBhZjM5MmYyNzU0Li42MDM3MmNjYTQ1IDEwMDY0NAot LS0gYS9saWJhdmNvZGVjL3Z2Yy9kc3AuYworKysgYi9saWJhdmNvZGVjL3Z2Yy9kc3AuYwpAQCAt MTEzLDcgKzExMyw3IEBAIHZvaWQgZmZfdnZjX2RzcF9pbml0KFZWQ0RTUENvbnRleHQgKnZ2Y2Rz cCwgaW50IGJpdF9kZXB0aCkKICAgICBmZl92dmNfZHNwX2luaXRfYWFyY2g2NCh2dmNkc3AsIGJp dF9kZXB0aCk7CiAjZWxpZiBBUkNIX1JJU0NWCiAgICAgZmZfdnZjX2RzcF9pbml0X3Jpc2N2KHZ2 Y2RzcCwgYml0X2RlcHRoKTsKLSNlbGlmIEFSQ0hfWDg2CisjZWxpZiBBUkNIX1g4NiAmJiBIQVZF X1g4NkFTTQogICAgIGZmX3Z2Y19kc3BfaW5pdF94ODYodnZjZHNwLCBiaXRfZGVwdGgpOwogI2Vu ZGlmCiB9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni9NYWtlZmlsZSBiL2xpYmF2Y29kZWMv eDg2L01ha2VmaWxlCmluZGV4IDg0YmEzOTVjODIuLjYzYjE2ZjI0YzggMTAwNjQ0Ci0tLSBhL2xp YmF2Y29kZWMveDg2L01ha2VmaWxlCisrKyBiL2xpYmF2Y29kZWMveDg2L01ha2VmaWxlCkBAIC0x LDg5ICsxLDg3IEBACiBPQkpTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArPSB4 ODYvY29uc3RhbnRzLm8gICAgICAgICAgICAgICBcCiAKICMgc3Vic3lzdGVtcwotT0JKUy0kKENP TkZJR19BQzNEU1ApICAgICAgICAgICAgICAgICAgKz0geDg2L2FjM2RzcF9pbml0Lm8KLU9CSlMt JChDT05GSUdfQVVESU9EU1ApICAgICAgICAgICAgICAgICs9IHg4Ni9hdWRpb2RzcF9pbml0Lm8K LU9CSlMtJChDT05GSUdfQkxPQ0tEU1ApICAgICAgICAgICAgICAgICs9IHg4Ni9ibG9ja2RzcF9p bml0Lm8KLU9CSlMtJChDT05GSUdfQlNXQVBEU1ApICAgICAgICAgICAgICAgICs9IHg4Ni9ic3dh cGRzcF9pbml0Lm8KLU9CSlMtJChDT05GSUdfRElSQUNfREVDT0RFUikgICAgICAgICAgICs9IHg4 Ni9kaXJhY2RzcF9pbml0Lm8gICAgICAgICAgIFwKK1g4NkFTTS1PQkpTLSQoQ09ORklHX0FDM0RT UCkgICAgICAgICAgICs9IHg4Ni9hYzNkc3BfaW5pdC5vCitYODZBU00tT0JKUy0kKENPTkZJR19B VURJT0RTUCkgICAgICAgICArPSB4ODYvYXVkaW9kc3BfaW5pdC5vCitYODZBU00tT0JKUy0kKENP TkZJR19CTE9DS0RTUCkgICAgICAgICArPSB4ODYvYmxvY2tkc3BfaW5pdC5vCitYODZBU00tT0JK Uy0kKENPTkZJR19CU1dBUERTUCkgICAgICAgICArPSB4ODYvYnN3YXBkc3BfaW5pdC5vCitYODZB U00tT0JKUy0kKENPTkZJR19ESVJBQ19ERUNPREVSKSAgICArPSB4ODYvZGlyYWNkc3BfaW5pdC5v ICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4 ODYvZGlyYWNfZHd0X2luaXQubwogT0JKUy0kKENPTkZJR19GRENURFNQKSAgICAgICAgICAgICAg ICAgKz0geDg2L2ZkY3Rkc3BfaW5pdC5vIHg4Ni9mZGN0Lm8KLU9CSlMtJChDT05GSUdfRk1UQ09O VkVSVCkgICAgICAgICAgICAgICs9IHg4Ni9mbXRjb252ZXJ0X2luaXQubwotT0JKUy0kKENPTkZJ R19IMjYzRFNQKSAgICAgICAgICAgICAgICAgKz0geDg2L2gyNjNkc3BfaW5pdC5vCi1PQkpTLSQo Q09ORklHX0gyNjRDSFJPTUEpICAgICAgICAgICAgICArPSB4ODYvaDI2NGNocm9tYV9pbml0Lm8K LU9CSlMtJChDT05GSUdfSDI2NERTUCkgICAgICAgICAgICAgICAgICs9IHg4Ni9oMjY0ZHNwX2lu aXQubwotT0JKUy0kKENPTkZJR19IMjY0UFJFRCkgICAgICAgICAgICAgICAgKz0geDg2L2gyNjRf aW50cmFwcmVkX2luaXQubwotT0JKUy0kKENPTkZJR19IMjY0UVBFTCkgICAgICAgICAgICAgICAg Kz0geDg2L2gyNjRfcXBlbC5vCi1PQkpTLSQoQ09ORklHX0hQRUxEU1ApICAgICAgICAgICAgICAg ICArPSB4ODYvaHBlbGRzcF9pbml0Lm8KLU9CSlMtJChDT05GSUdfTExBVUREU1ApICAgICAgICAg ICAgICAgICs9IHg4Ni9sb3NzbGVzc19hdWRpb2RzcF9pbml0Lm8KLU9CSlMtJChDT05GSUdfTExW SUREU1ApICAgICAgICAgICAgICAgICs9IHg4Ni9sb3NzbGVzc192aWRlb2RzcF9pbml0Lm8KK1g4 NkFTTS1PQkpTLSQoQ09ORklHX0ZNVENPTlZFUlQpICAgICAgICs9IHg4Ni9mbXRjb252ZXJ0X2lu aXQubworWDg2QVNNLU9CSlMtJChDT05GSUdfSDI2M0RTUCkgICAgICAgICAgKz0geDg2L2gyNjNk c3BfaW5pdC5vCitYODZBU00tT0JKUy0kKENPTkZJR19IMjY0Q0hST01BKSAgICAgICArPSB4ODYv aDI2NGNocm9tYV9pbml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklHX0gyNjREU1ApICAgICAgICAg ICs9IHg4Ni9oMjY0ZHNwX2luaXQubworWDg2QVNNLU9CSlMtJChDT05GSUdfSDI2NFBSRUQpICAg ICAgICAgKz0geDg2L2gyNjRfaW50cmFwcmVkX2luaXQubworWDg2QVNNLU9CSlMtJChDT05GSUdf SDI2NFFQRUwpICAgICAgICAgKz0geDg2L2gyNjRfcXBlbC5vCitYODZBU00tT0JKUy0kKENPTkZJ R19IUEVMRFNQKSAgICAgICAgICArPSB4ODYvaHBlbGRzcF9pbml0Lm8KK1g4NkFTTS1PQkpTLSQo Q09ORklHX0hVRkZZVVZEU1ApICAgICAgICs9IHg4Ni9odWZmeXV2ZHNwX2luaXQubworWDg2QVNN LU9CSlMtJChDT05GSUdfSFVGRllVVkVOQ0RTUCkgICAgKz0geDg2L2h1ZmZ5dXZlbmNkc3BfaW5p dC5vCitYODZBU00tT0JKUy0kKENPTkZJR19JRENURFNQKSAgICAgICAgICArPSB4ODYvaWRjdGRz cF9pbml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklHX0xMQVVERFNQKSAgICAgICAgICs9IHg4Ni9s b3NzbGVzc19hdWRpb2RzcF9pbml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklHX0xMVklERFNQKSAg ICAgICAgICs9IHg4Ni9sb3NzbGVzc192aWRlb2RzcF9pbml0Lm8KIE9CSlMtJChDT05GSUdfTExW SURFTkNEU1ApICAgICAgICAgICAgICs9IHg4Ni9sb3NzbGVzc192aWRlb2VuY2RzcF9pbml0Lm8K LU9CSlMtJChDT05GSUdfSFVGRllVVkRTUCkgICAgICAgICAgICAgICs9IHg4Ni9odWZmeXV2ZHNw X2luaXQubwotT0JKUy0kKENPTkZJR19IVUZGWVVWRU5DRFNQKSAgICAgICAgICAgKz0geDg2L2h1 ZmZ5dXZlbmNkc3BfaW5pdC5vCi1PQkpTLSQoQ09ORklHX0lEQ1REU1ApICAgICAgICAgICAgICAg ICArPSB4ODYvaWRjdGRzcF9pbml0Lm8KIE9CSlMtJChDT05GSUdfTFBDKSAgICAgICAgICAgICAg ICAgICAgICs9IHg4Ni9scGNfaW5pdC5vCi1PQkpTLSQoQ09ORklHX01FX0NNUCkgICAgICAgICAg ICAgICAgICArPSB4ODYvbWVfY21wX2luaXQubworWDg2QVNNLU9CSlMtJChDT05GSUdfTUVfQ01Q KSAgICAgICAgICAgKz0geDg2L21lX2NtcF9pbml0Lm8KIE9CSlMtJChDT05GSUdfTVBFR0FVRElP RFNQKSAgICAgICAgICAgICs9IHg4Ni9tcGVnYXVkaW9kc3AubwogT0JKUy0kKENPTkZJR19NUEVH VklERU8pICAgICAgICAgICAgICAgKz0geDg2L21wZWd2aWRlby5vCiBPQkpTLSQoQ09ORklHX01Q RUdWSURFT0VOQykgICAgICAgICAgICArPSB4ODYvbXBlZ3ZpZGVvZW5jLm8KIE9CSlMtJChDT05G SUdfTVBFR1ZJREVPRU5DRFNQKSAgICAgICAgICs9IHg4Ni9tcGVndmlkZW9lbmNkc3BfaW5pdC5v Ci1PQkpTLSQoQ09ORklHX1BJWEJMT0NLRFNQKSAgICAgICAgICAgICArPSB4ODYvcGl4YmxvY2tk c3BfaW5pdC5vCi1PQkpTLSQoQ09ORklHX1FQRUxEU1ApICAgICAgICAgICAgICAgICArPSB4ODYv cXBlbGRzcF9pbml0Lm8KLU9CSlMtJChDT05GSUdfUlYzNERTUCkgICAgICAgICAgICAgICAgICs9 IHg4Ni9ydjM0ZHNwX2luaXQubwotT0JKUy0kKENPTkZJR19WQzFEU1ApICAgICAgICAgICAgICAg ICAgKz0geDg2L3ZjMWRzcF9pbml0Lm8KLU9CSlMtJChDT05GSUdfVklERU9EU1ApICAgICAgICAg ICAgICAgICs9IHg4Ni92aWRlb2RzcF9pbml0Lm8KLU9CSlMtJChDT05GSUdfVlAzRFNQKSAgICAg ICAgICAgICAgICAgICs9IHg4Ni92cDNkc3BfaW5pdC5vCi1PQkpTLSQoQ09ORklHX1ZQOERTUCkg ICAgICAgICAgICAgICAgICArPSB4ODYvdnA4ZHNwX2luaXQubworWDg2QVNNLU9CSlMtJChDT05G SUdfUElYQkxPQ0tEU1ApICAgICAgKz0geDg2L3BpeGJsb2NrZHNwX2luaXQubworWDg2QVNNLU9C SlMtJChDT05GSUdfUVBFTERTUCkgICAgICAgICAgKz0geDg2L3FwZWxkc3BfaW5pdC5vCitYODZB U00tT0JKUy0kKENPTkZJR19SVjM0RFNQKSAgICAgICAgICArPSB4ODYvcnYzNGRzcF9pbml0Lm8K K1g4NkFTTS1PQkpTLSQoQ09ORklHX1ZDMURTUCkgICAgICAgICAgICs9IHg4Ni92YzFkc3BfaW5p dC5vIHg4Ni92YzFkc3BfbW14Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklHX1ZJREVPRFNQKSAgICAg ICAgICs9IHg4Ni92aWRlb2RzcF9pbml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklHX1ZQM0RTUCkg ICAgICAgICAgICs9IHg4Ni92cDNkc3BfaW5pdC5vCitYODZBU00tT0JKUy0kKENPTkZJR19WUDhE U1ApICAgICAgICAgICArPSB4ODYvdnA4ZHNwX2luaXQubwogT0JKUy0kKENPTkZJR19YTU1fQ0xP QkJFUl9URVNUKSAgICAgICAgKz0geDg2L3c2NHhtbXRlc3QubwogCiAjIGRlY29kZXJzL2VuY29k ZXJzCi1PQkpTLSQoQ09ORklHX0FBQ19ERUNPREVSKSAgICAgICAgICAgICArPSB4ODYvYWFjcHNk c3BfaW5pdC5vICAgICAgICAgIFwKK1g4NkFTTS1PQkpTLSQoQ09ORklHX0FBQ19ERUNPREVSKSAg ICAgICs9IHg4Ni9hYWNwc2RzcF9pbml0Lm8gICAgICAgICAgXAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgeDg2L3NicmRzcF9pbml0Lm8KLU9CSlMtJChDT05GSUdf QUFDX0VOQ09ERVIpICAgICAgICAgICAgICs9IHg4Ni9hYWNlbmNkc3BfaW5pdC5vCi1PQkpTLSQo Q09ORklHX0FEUENNX0c3MjJfREVDT0RFUikgICAgICArPSB4ODYvZzcyMmRzcF9pbml0Lm8KLU9C SlMtJChDT05GSUdfQURQQ01fRzcyMl9FTkNPREVSKSAgICAgICs9IHg4Ni9nNzIyZHNwX2luaXQu bwotT0JKUy0kKENPTkZJR19BTEFDX0RFQ09ERVIpICAgICAgICAgICAgKz0geDg2L2FsYWNkc3Bf aW5pdC5vCi1PQkpTLSQoQ09ORklHX0FQTkdfREVDT0RFUikgICAgICAgICAgICArPSB4ODYvcG5n ZHNwX2luaXQubwotT0JKUy0kKENPTkZJR19BUFZfREVDT0RFUikgICAgICAgICAgICAgKz0geDg2 L2Fwdl9kc3BfaW5pdC5vCi1PQkpTLSQoQ09ORklHX0NBVlNfREVDT0RFUikgICAgICAgICAgICAr PSB4ODYvY2F2c2RzcC5vCi1PQkpTLSQoQ09ORklHX0NGSERfREVDT0RFUikgICAgICAgICAgICAr PSB4ODYvY2ZoZGRzcF9pbml0Lm8KLU9CSlMtJChDT05GSUdfQ0ZIRF9FTkNPREVSKSAgICAgICAg ICAgICs9IHg4Ni9jZmhkZW5jZHNwX2luaXQubwotT0JKUy0kKENPTkZJR19EQ0FfREVDT0RFUikg ICAgICAgICAgICAgKz0geDg2L2RjYWRzcF9pbml0Lm8geDg2L3N5bnRoX2ZpbHRlcl9pbml0Lm8K LU9CSlMtJChDT05GSUdfRE5YSERfRU5DT0RFUikgICAgICAgICAgICs9IHg4Ni9kbnhoZGVuY19p bml0Lm8KLU9CSlMtJChDT05GSUdfRVhSX0RFQ09ERVIpICAgICAgICAgICAgICs9IHg4Ni9leHJk c3BfaW5pdC5vCi1PQkpTLSQoQ09ORklHX0ZMQUNfREVDT0RFUikgICAgICAgICAgICArPSB4ODYv ZmxhY2RzcF9pbml0Lm8KLU9CSlMtJChDT05GSUdfRkxBQ19FTkNPREVSKSAgICAgICAgICAgICs9 IHg4Ni9mbGFjZW5jZHNwX2luaXQubwotT0JKUy0kKENPTkZJR19PUFVTX0RFQ09ERVIpICAgICAg ICAgICAgKz0geDg2L29wdXNkc3BfaW5pdC5vCi1PQkpTLSQoQ09ORklHX09QVVNfRU5DT0RFUikg ICAgICAgICAgICArPSB4ODYvY2VsdF9wdnFfaW5pdC5vCi1PQkpTLSQoQ09ORklHX0pQRUcyMDAw X0RFQ09ERVIpICAgICAgICArPSB4ODYvanBlZzIwMDBkc3BfaW5pdC5vCi1PQkpTLSQoQ09ORklH X0xTQ1JfREVDT0RFUikgICAgICAgICAgICArPSB4ODYvcG5nZHNwX2luaXQubworWDg2QVNNLU9C SlMtJChDT05GSUdfQUFDX0VOQ09ERVIpICAgICAgKz0geDg2L2FhY2VuY2RzcF9pbml0Lm8KK1g4 NkFTTS1PQkpTLSQoQ09ORklHX0FEUENNX0c3MjJfREVDT0RFUikgKz0geDg2L2c3MjJkc3BfaW5p dC5vCitYODZBU00tT0JKUy0kKENPTkZJR19BRFBDTV9HNzIyX0VOQ09ERVIpICs9IHg4Ni9nNzIy ZHNwX2luaXQubworWDg2QVNNLU9CSlMtJChDT05GSUdfQUxBQ19ERUNPREVSKSAgICAgKz0geDg2 L2FsYWNkc3BfaW5pdC5vCitYODZBU00tT0JKUy0kKENPTkZJR19BUE5HX0RFQ09ERVIpICAgICAr PSB4ODYvcG5nZHNwX2luaXQubworWDg2QVNNLU9CSlMtJChDT05GSUdfQVBWX0RFQ09ERVIpICAg ICAgKz0geDg2L2Fwdl9kc3BfaW5pdC5vCitYODZBU00tT0JKUy0kKENPTkZJR19DQVZTX0RFQ09E RVIpICAgICArPSB4ODYvY2F2c2RzcC5vCitYODZBU00tT0JKUy0kKENPTkZJR19DRkhEX0RFQ09E RVIpICAgICArPSB4ODYvY2ZoZGRzcF9pbml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklHX0NGSERf RU5DT0RFUikgICAgICs9IHg4Ni9jZmhkZW5jZHNwX2luaXQubworWDg2QVNNLU9CSlMtJChDT05G SUdfRENBX0RFQ09ERVIpICAgICAgKz0geDg2L2RjYWRzcF9pbml0Lm8geDg2L3N5bnRoX2ZpbHRl cl9pbml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklHX0ROWEhEX0VOQ09ERVIpICAgICs9IHg4Ni9k bnhoZGVuY19pbml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklHX0VYUl9ERUNPREVSKSAgICAgICs9 IHg4Ni9leHJkc3BfaW5pdC5vCitYODZBU00tT0JKUy0kKENPTkZJR19GTEFDX0RFQ09ERVIpICAg ICArPSB4ODYvZmxhY2RzcF9pbml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklHX0ZMQUNfRU5DT0RF UikgICAgICs9IHg4Ni9mbGFjZW5jZHNwX2luaXQubworWDg2QVNNLU9CSlMtJChDT05GSUdfT1BV U19ERUNPREVSKSAgICAgKz0geDg2L29wdXNkc3BfaW5pdC5vCitYODZBU00tT0JKUy0kKENPTkZJ R19PUFVTX0VOQ09ERVIpICAgICArPSB4ODYvY2VsdF9wdnFfaW5pdC5vCitYODZBU00tT0JKUy0k KENPTkZJR19KUEVHMjAwMF9ERUNPREVSKSArPSB4ODYvanBlZzIwMDBkc3BfaW5pdC5vCitYODZB U00tT0JKUy0kKENPTkZJR19MU0NSX0RFQ09ERVIpICAgICArPSB4ODYvcG5nZHNwX2luaXQubwog T0JKUy0kKENPTkZJR19NTFBfREVDT0RFUikgICAgICAgICAgICAgKz0geDg2L21scGRzcF9pbml0 Lm8KLU9CSlMtJChDT05GSUdfTVBFRzRfREVDT0RFUikgICAgICAgICAgICs9IHg4Ni9tcGVnNHZp ZGVvZHNwLm8geDg2L3h2aWRpZGN0X2luaXQubwotT0JKUy0kKENPTkZJR19QTkdfREVDT0RFUikg ICAgICAgICAgICAgKz0geDg2L3BuZ2RzcF9pbml0Lm8KLU9CSlMtJChDT05GSUdfUFJPUkVTX0RF Q09ERVIpICAgICAgICAgICs9IHg4Ni9wcm9yZXNkc3BfaW5pdC5vCi1PQkpTLSQoQ09ORklHX1BS T1JFU19SQVdfREVDT0RFUikgICAgICArPSB4ODYvcHJvcmVzZHNwX2luaXQubwotT0JKUy0kKENP TkZJR19SVjQwX0RFQ09ERVIpICAgICAgICAgICAgKz0geDg2L3J2NDBkc3BfaW5pdC5vCi1PQkpT LSQoQ09ORklHX1NCQ19FTkNPREVSKSAgICAgICAgICAgICArPSB4ODYvc2JjZHNwX2luaXQubwot T0JKUy0kKENPTkZJR19TVlExX0VOQ09ERVIpICAgICAgICAgICAgKz0geDg2L3N2cTFlbmNfaW5p dC5vCi1PQkpTLSQoQ09ORklHX1RBS19ERUNPREVSKSAgICAgICAgICAgICArPSB4ODYvdGFrZHNw X2luaXQubworT0JKUy0kKENPTkZJR19NUEVHNF9ERUNPREVSKSAgICAgICAgICAgKz0geDg2L21w ZWc0dmlkZW9kc3AubworWDg2QVNNLU9CSlMtJChDT05GSUdfTVBFRzRfREVDT0RFUikgICAgKz0g eDg2L3h2aWRpZGN0X2luaXQubworWDg2QVNNLU9CSlMtJChDT05GSUdfUE5HX0RFQ09ERVIpICAg ICAgKz0geDg2L3BuZ2RzcF9pbml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklHX1BST1JFU19ERUNP REVSKSAgICs9IHg4Ni9wcm9yZXNkc3BfaW5pdC5vCitYODZBU00tT0JKUy0kKENPTkZJR19QUk9S RVNfUkFXX0RFQ09ERVIpICs9IHg4Ni9wcm9yZXNkc3BfaW5pdC5vCitYODZBU00tT0JKUy0kKENP TkZJR19SVjQwX0RFQ09ERVIpICAgICArPSB4ODYvcnY0MGRzcF9pbml0Lm8KK1g4NkFTTS1PQkpT LSQoQ09ORklHX1NCQ19FTkNPREVSKSAgICAgICs9IHg4Ni9zYmNkc3BfaW5pdC5vCitYODZBU00t T0JKUy0kKENPTkZJR19TVlExX0VOQ09ERVIpICAgICArPSB4ODYvc3ZxMWVuY19pbml0Lm8KK1g4 NkFTTS1PQkpTLSQoQ09ORklHX1RBS19ERUNPREVSKSAgICAgICs9IHg4Ni90YWtkc3BfaW5pdC5v CiBPQkpTLSQoQ09ORklHX1RSVUVIRF9ERUNPREVSKSAgICAgICAgICArPSB4ODYvbWxwZHNwX2lu aXQubwotT0JKUy0kKENPTkZJR19UVEFfREVDT0RFUikgICAgICAgICAgICAgKz0geDg2L3R0YWRz cF9pbml0Lm8KLU9CSlMtJChDT05GSUdfVFRBX0VOQ09ERVIpICAgICAgICAgICAgICs9IHg4Ni90 dGFlbmNkc3BfaW5pdC5vCi1PQkpTLSQoQ09ORklHX1VUVklERU9fREVDT0RFUikgICAgICAgICAr PSB4ODYvdXR2aWRlb2RzcF9pbml0Lm8KLU9CSlMtJChDT05GSUdfVjIxMF9ERUNPREVSKSAgICAg ICAgICAgICs9IHg4Ni92MjEwLWluaXQubwotT0JKUy0kKENPTkZJR19WMjEwX0VOQ09ERVIpICAg ICAgICAgICAgKz0geDg2L3YyMTBlbmNfaW5pdC5vCi1PQkpTLSQoQ09ORklHX1ZPUkJJU19ERUNP REVSKSAgICAgICAgICArPSB4ODYvdm9yYmlzZHNwX2luaXQubwotT0JKUy0kKENPTkZJR19WUDZf REVDT0RFUikgICAgICAgICAgICAgKz0geDg2L3ZwNmRzcF9pbml0Lm8KLU9CSlMtJChDT05GSUdf VlA5X0RFQ09ERVIpICAgICAgICAgICAgICs9IHg4Ni92cDlkc3BfaW5pdC5vICAgICAgICAgICAg XAorWDg2QVNNLU9CSlMtJChDT05GSUdfVFRBX0RFQ09ERVIpICAgICAgKz0geDg2L3R0YWRzcF9p bml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklHX1RUQV9FTkNPREVSKSAgICAgICs9IHg4Ni90dGFl bmNkc3BfaW5pdC5vCitYODZBU00tT0JKUy0kKENPTkZJR19VVFZJREVPX0RFQ09ERVIpICArPSB4 ODYvdXR2aWRlb2RzcF9pbml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklHX1YyMTBfREVDT0RFUikg ICAgICs9IHg4Ni92MjEwLWluaXQubworWDg2QVNNLU9CSlMtJChDT05GSUdfVjIxMF9FTkNPREVS KSAgICAgKz0geDg2L3YyMTBlbmNfaW5pdC5vCitYODZBU00tT0JKUy0kKENPTkZJR19WT1JCSVNf REVDT0RFUikgICArPSB4ODYvdm9yYmlzZHNwX2luaXQubworWDg2QVNNLU9CSlMtJChDT05GSUdf VlA2X0RFQ09ERVIpICAgICAgKz0geDg2L3ZwNmRzcF9pbml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09O RklHX1ZQOV9ERUNPREVSKSAgICAgICs9IHg4Ni92cDlkc3BfaW5pdC5vICAgICAgICAgICAgXAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDg2L3ZwOWRzcF9pbml0 XzEwYnBwLm8gICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB4ODYvdnA5ZHNwX2luaXRfMTJicHAubyAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHg4Ni92cDlkc3BfaW5pdF8xNmJwcC5vCiAKIAogIyBHQ0MgaW5s aW5lIGFzc2VtYmx5IG9wdGltaXphdGlvbnMKLSMgc3Vic3lzdGVtcwotTU1YLU9CSlMtJChDT05G SUdfVkMxRFNQKSAgICAgICAgICAgICAgKz0geDg2L3ZjMWRzcF9tbXgubwotCiAjIGRlY29kZXJz L2VuY29kZXJzCiBNTVgtT0JKUy0kKENPTkZJR19TTk9XX0RFQ09ERVIpICAgICAgICArPSB4ODYv c25vd2RzcC5vCiBNTVgtT0JKUy0kKENPTkZJR19TTk9XX0VOQ09ERVIpICAgICAgICArPSB4ODYv c25vd2RzcC5vCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni9hbGFjZHNwX2luaXQuYyBiL2xp YmF2Y29kZWMveDg2L2FsYWNkc3BfaW5pdC5jCmluZGV4IDE4ZjczMDhhMTIuLjFiMmZmOTUyNWIg MTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L2FsYWNkc3BfaW5pdC5jCisrKyBiL2xpYmF2Y29k ZWMveDg2L2FsYWNkc3BfaW5pdC5jCkBAIC0xOSw3ICsxOSw2IEBACiAjaW5jbHVkZSAibGliYXZ1 dGlsL2F0dHJpYnV0ZXMuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwveDg2L2NwdS5oIgogI2luY2x1 ZGUgImxpYmF2Y29kZWMvYWxhY2RzcC5oIgotI2luY2x1ZGUgImNvbmZpZy5oIgogCiB2b2lkIGZm X2FsYWNfZGVjb3JyZWxhdGVfc3RlcmVvX3NzZTQoaW50MzJfdCAqYnVmZmVyWzJdLCBpbnQgbmJf c2FtcGxlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVjb3Jy X3NoaWZ0LCBpbnQgZGVjb3JyX2xlZnRfd2VpZ2h0KTsKQEAgLTMwLDcgKzI5LDYgQEAgdm9pZCBm Zl9hbGFjX2FwcGVuZF9leHRyYV9iaXRzX21vbm9fc3NlMihpbnQzMl90ICpidWZmZXJbMl0sIGlu dDMyX3QgKmV4dHJhX2JpdHMKIAogYXZfY29sZCB2b2lkIGZmX2FsYWNkc3BfaW5pdF94ODYoQUxB Q0RTUENvbnRleHQgKmMpCiB7Ci0jaWYgSEFWRV9YODZBU00KICAgICBpbnQgY3B1X2ZsYWdzID0g YXZfZ2V0X2NwdV9mbGFncygpOwogCiAgICAgaWYgKEVYVEVSTkFMX1NTRTIoY3B1X2ZsYWdzKSkg ewpAQCAtNDAsNSArMzgsNCBAQCBhdl9jb2xkIHZvaWQgZmZfYWxhY2RzcF9pbml0X3g4NihBTEFD RFNQQ29udGV4dCAqYykKICAgICBpZiAoRVhURVJOQUxfU1NFNChjcHVfZmxhZ3MpKSB7CiAgICAg ICAgIGMtPmRlY29ycmVsYXRlX3N0ZXJlbyAgID0gZmZfYWxhY19kZWNvcnJlbGF0ZV9zdGVyZW9f c3NlNDsKICAgICB9Ci0jZW5kaWYgLyogSEFWRV9YODZBU00gKi8KIH0KZGlmZiAtLWdpdCBhL2xp YmF2Y29kZWMveDg2L2Jsb2NrZHNwX2luaXQuYyBiL2xpYmF2Y29kZWMveDg2L2Jsb2NrZHNwX2lu aXQuYwppbmRleCAzN2YzYmI2YTg0Li5hMmIzNjJlNjU1IDEwMDY0NAotLS0gYS9saWJhdmNvZGVj L3g4Ni9ibG9ja2RzcF9pbml0LmMKKysrIGIvbGliYXZjb2RlYy94ODYvYmxvY2tkc3BfaW5pdC5j CkBAIC0zNiw3ICszNiw2IEBAIHZvaWQgZmZfZmlsbF9ibG9ja190YWJfOF9hdngyKHVpbnQ4X3Qg KmJsb2NrLCB1aW50OF90IHZhbHVlLCBwdHJkaWZmX3QgbGluZV9zaXplCiAKIGF2X2NvbGQgdm9p ZCBmZl9ibG9ja2RzcF9pbml0X3g4NihCbG9ja0RTUENvbnRleHQgKmMpCiB7Ci0jaWYgSEFWRV9Y ODZBU00KICAgICBpbnQgY3B1X2ZsYWdzID0gYXZfZ2V0X2NwdV9mbGFncygpOwogCiAgICAgaWYg KEVYVEVSTkFMX1NTRShjcHVfZmxhZ3MpKSB7CkBAIC01NSw1ICs1NCw0IEBAIGF2X2NvbGQgdm9p ZCBmZl9ibG9ja2RzcF9pbml0X3g4NihCbG9ja0RTUENvbnRleHQgKmMpCiAgICAgICAgIGMtPmZp bGxfYmxvY2tfdGFiWzBdID0gZmZfZmlsbF9ibG9ja190YWJfMTZfYXZ4MjsKICAgICAgICAgYy0+ ZmlsbF9ibG9ja190YWJbMV0gPSBmZl9maWxsX2Jsb2NrX3RhYl84X2F2eDI7CiAgICAgfQotI2Vu ZGlmIC8qIEhBVkVfWDg2QVNNICovCiB9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni9kaXJh Y19kd3RfaW5pdC5jIGIvbGliYXZjb2RlYy94ODYvZGlyYWNfZHd0X2luaXQuYwppbmRleCAxM2I0 MmI2MGNiLi5lY2Y4OTM0MmIwIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4Ni9kaXJhY19kd3Rf aW5pdC5jCisrKyBiL2xpYmF2Y29kZWMveDg2L2RpcmFjX2R3dF9pbml0LmMKQEAgLTIwLDcgKzIw LDYgQEAKICAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv b3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKICAqLwogCi0jaW5jbHVkZSAibGliYXZ1dGls L3g4Ni9hc20uaCIKICNpbmNsdWRlICJsaWJhdnV0aWwveDg2L2NwdS5oIgogI2luY2x1ZGUgImxp YmF2Y29kZWMvZGlyYWNfZHd0LmgiCiAKQEAgLTEzMywxMCArMTMyLDggQEAgc3RhdGljIHZvaWQg aG9yaXpvbnRhbF9jb21wb3NlX2hhYXIxaSMjZXh0KHVpbnQ4X3QgKl9iLCB1aW50OF90ICpfdG1w LCBpbnQgdylcCiB9XAogXAogCi0jaWYgSEFWRV9YODZBU00KIENPTVBPU0VfVkVSVElDQUwoX3Nz ZTIsIDgpCiAKLQogdm9pZCBmZl9ob3Jpem9udGFsX2NvbXBvc2VfZGQ5N2lfc3NzZTMoaW50MTZf dCAqX2IsIGludDE2X3QgKl90bXAsIGludCB3KTsKIAogc3RhdGljIHZvaWQgaG9yaXpvbnRhbF9j b21wb3NlX2RkOTdpX3Nzc2UzKHVpbnQ4X3QgKl9iLCB1aW50OF90ICpfdG1wLCBpbnQgdykKQEAg LTE1MywxMSArMTUwLDkgQEAgc3RhdGljIHZvaWQgaG9yaXpvbnRhbF9jb21wb3NlX2RkOTdpX3Nz c2UzKHVpbnQ4X3QgKl9iLCB1aW50OF90ICpfdG1wLCBpbnQgdykKICAgICAgICAgYlsyKngrMV0g PSAoQ09NUE9TRV9ERDk3aUgwKHRtcFt4LTFdLCB0bXBbeF0sIGJbeCt3Ml0sIHRtcFt4KzFdLCB0 bXBbeCsyXSkgKyAxKT4+MTsKICAgICB9CiB9Ci0jZW5kaWYKIAogdm9pZCBmZl9zcGF0aWFsX2lk d3RfaW5pdF94ODYoRFdUQ29udGV4dCAqZCwgZW51bSBkd3RfdHlwZSB0eXBlKQogewotI2lmIEhB VkVfWDg2QVNNCiAgIGludCBtbV9mbGFncyA9IGF2X2dldF9jcHVfZmxhZ3MoKTsKIAogICAgIGlm ICghKG1tX2ZsYWdzICYgQVZfQ1BVX0ZMQUdfU1NFMikpCkBAIC0xOTQsNSArMTg5LDQgQEAgdm9p ZCBmZl9zcGF0aWFsX2lkd3RfaW5pdF94ODYoRFdUQ29udGV4dCAqZCwgZW51bSBkd3RfdHlwZSB0 eXBlKQogICAgICAgICBkLT5ob3Jpem9udGFsX2NvbXBvc2UgPSBob3Jpem9udGFsX2NvbXBvc2Vf ZGQ5N2lfc3NzZTM7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSNlbmRpZiAvLyBIQVZFX1g4NkFT TQogfQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvZGlyYWNkc3BfaW5pdC5jIGIvbGliYXZj b2RlYy94ODYvZGlyYWNkc3BfaW5pdC5jCmluZGV4IGVmMDFlYmRmMmUuLjRmMjdlMWZjMmIgMTAw NjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L2RpcmFjZHNwX2luaXQuYworKysgYi9saWJhdmNvZGVj L3g4Ni9kaXJhY2RzcF9pbml0LmMKQEAgLTM0LDggKzM0LDYgQEAgdm9pZCBmZl9wdXRfc2lnbmVk X3JlY3RfY2xhbXBlZF8xMF9zc2U0KHVpbnQ4X3QgKmRzdCwgaW50IGRzdF9zdHJpZGUsIGNvbnN0 IHVpbnQKIAogdm9pZCBmZl9kZXF1YW50X3N1YmJhbmRfMzJfc3NlNCh1aW50OF90ICpzcmMsIHVp bnQ4X3QgKmRzdCwgcHRyZGlmZl90IHN0cmlkZSwgY29uc3QgaW50IHFmLCBjb25zdCBpbnQgcXMs IGludCB0b3RfdiwgaW50IHRvdF9oKTsKIAotI2lmIEhBVkVfWDg2QVNNCi0KICNkZWZpbmUgSFBF TF9GSUxURVIoTU1TSVpFLCBFWFQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB2b2lkIGZmX2RpcmFjX2hwZWxfZmlsdGVy X3ZfICMjIEVYVCh1aW50OF90ICosIGNvbnN0IHVpbnQ4X3QgKiwgaW50LCBpbnQpOyAgICAgICAg ICAgICAgIFwKICAgICB2b2lkIGZmX2RpcmFjX2hwZWxfZmlsdGVyX2hfICMjIEVYVCh1aW50OF90 ICosIGNvbnN0IHVpbnQ4X3QgKiwgaW50KTsgICAgICAgICAgICAgICAgICAgIFwKQEAgLTgxLDEx ICs3OSw4IEBAIERJUkFDX1BJWE9QKGF2Zywgc3NlMikKIAogSFBFTF9GSUxURVIoMTYsIHNzZTIp CiAKLSNlbmRpZiAvLyBIQVZFX1g4NkFTTQotCiB2b2lkIGZmX2RpcmFjZHNwX2luaXRfeDg2KERp cmFjRFNQQ29udGV4dCogYykKIHsKLSNpZiBIQVZFX1g4NkFTTQogICAgIGludCBtbV9mbGFncyA9 IGF2X2dldF9jcHVfZmxhZ3MoKTsKIAogICAgIGlmIChFWFRFUk5BTF9TU0UyKG1tX2ZsYWdzKSkg ewpAQCAtMTA3LDUgKzEwMiw0IEBAIHZvaWQgZmZfZGlyYWNkc3BfaW5pdF94ODYoRGlyYWNEU1BD b250ZXh0KiBjKQogICAgICAgICBjLT5kZXF1YW50X3N1YmJhbmRbMV0gICAgICAgICA9IGZmX2Rl cXVhbnRfc3ViYmFuZF8zMl9zc2U0OwogICAgICAgICBjLT5wdXRfc2lnbmVkX3JlY3RfY2xhbXBl ZFsxXSA9IGZmX3B1dF9zaWduZWRfcmVjdF9jbGFtcGVkXzEwX3NzZTQ7CiAgICAgfQotI2VuZGlm IC8vIEhBVkVfWDg2QVNNCiB9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni9mbGFjZHNwX2lu aXQuYyBiL2xpYmF2Y29kZWMveDg2L2ZsYWNkc3BfaW5pdC5jCmluZGV4IDM4Njk1NWJhNjcuLmEy YzM4MjlkNjYgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L2ZsYWNkc3BfaW5pdC5jCisrKyBi L2xpYmF2Y29kZWMveDg2L2ZsYWNkc3BfaW5pdC5jCkBAIC02Miw3ICs2Miw2IEBAIERFQ09SUkVM QVRFX0lGVU5DUygzMiwgIGF2eCk7CiAKIGF2X2NvbGQgdm9pZCBmZl9mbGFjZHNwX2luaXRfeDg2 KEZMQUNEU1BDb250ZXh0ICpjLCBlbnVtIEFWU2FtcGxlRm9ybWF0IGZtdCwgaW50IGNoYW5uZWxz KQogewotI2lmIEhBVkVfWDg2QVNNCiAgICAgaW50IGNwdV9mbGFncyA9IGF2X2dldF9jcHVfZmxh Z3MoKTsKIAogICAgIGlmIChFWFRFUk5BTF9TU0UyKGNwdV9mbGFncykpIHsKQEAgLTEyNyw1ICsx MjYsNCBAQCBhdl9jb2xkIHZvaWQgZmZfZmxhY2RzcF9pbml0X3g4NihGTEFDRFNQQ29udGV4dCAq YywgZW51bSBBVlNhbXBsZUZvcm1hdCBmbXQsIGludAogICAgIGlmIChFWFRFUk5BTF9YT1AoY3B1 X2ZsYWdzKSkgewogICAgICAgICBjLT5scGMzMiA9IGZmX2ZsYWNfbHBjXzMyX3hvcDsKICAgICB9 Ci0jZW5kaWYgLyogSEFWRV9YODZBU00gKi8KIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2 L2ZsYWNlbmNkc3BfaW5pdC5jIGIvbGliYXZjb2RlYy94ODYvZmxhY2VuY2RzcF9pbml0LmMKaW5k ZXggNWFiMzdlMGE4Zi4uNWI0NWYwMDlkOCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvZmxh Y2VuY2RzcF9pbml0LmMKKysrIGIvbGliYXZjb2RlYy94ODYvZmxhY2VuY2RzcF9pbml0LmMKQEAg LTI3LDEyICsyNywxMiBAQCB2b2lkIGZmX2ZsYWNfZW5jX2xwY18xNl9zc2U0KGludDMyX3QgKiwg Y29uc3QgaW50MzJfdCAqLCBpbnQsIGludCwgY29uc3QgaW50MzJfdAogCiBhdl9jb2xkIHZvaWQg ZmZfZmxhY2VuY2RzcF9pbml0X3g4NihGTEFDRW5jRFNQQ29udGV4dCAqYykKIHsKLSNpZiBIQVZF X1g4NkFTTSAmJiBDT05GSUdfR1BMCisjaWYgQ09ORklHX0dQTAogICAgIGludCBjcHVfZmxhZ3Mg PSBhdl9nZXRfY3B1X2ZsYWdzKCk7CiAKICAgICBpZiAoRVhURVJOQUxfU1NFNChjcHVfZmxhZ3Mp KSB7CiAgICAgICAgIGlmIChDT05GSUdfR1BMKQogICAgICAgICAgICAgYy0+bHBjMTZfZW5jb2Rl ID0gZmZfZmxhY19lbmNfbHBjXzE2X3NzZTQ7CiAgICAgfQotI2VuZGlmIC8qIEhBVkVfWDg2QVNN ICovCisjZW5kaWYgLyogQ09ORklHX0dQTCAqLwogfQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94 ODYvZm10Y29udmVydF9pbml0LmMgYi9saWJhdmNvZGVjL3g4Ni9mbXRjb252ZXJ0X2luaXQuYwpp bmRleCBhY2JjMzM0NTY1Li42Y2YzYTgwN2E2IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4Ni9m bXRjb252ZXJ0X2luaXQuYworKysgYi9saWJhdmNvZGVjL3g4Ni9mbXRjb252ZXJ0X2luaXQuYwpA QCAtMjcsMjIgKzI3LDE2IEBACiAjaW5jbHVkZSAibGliYXZ1dGlsL3g4Ni9jcHUuaCIKICNpbmNs dWRlICJsaWJhdmNvZGVjL2ZtdGNvbnZlcnQuaCIKIAotI2lmIEhBVkVfWDg2QVNNCi0KIHZvaWQg ZmZfaW50MzJfdG9fZmxvYXRfZm11bF9zY2FsYXJfc3NlMihmbG9hdCAqZHN0LCBjb25zdCBpbnQz Ml90ICpzcmMsIGZsb2F0IG11bCwgaW50IGxlbik7CiB2b2lkIGZmX2ludDMyX3RvX2Zsb2F0X2Zt dWxfYXJyYXk4X3NzZTIoRm10Q29udmVydENvbnRleHQgKmMsIGZsb2F0ICpkc3QsIGNvbnN0IGlu dDMyX3QgKnNyYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBmbG9hdCAqbXVsLCBpbnQgbGVuKTsKIAotI2VuZGlmIC8qIEhBVkVfWDg2QVNNICovCi0KIGF2 X2NvbGQgdm9pZCBmZl9mbXRfY29udmVydF9pbml0X3g4NihGbXRDb252ZXJ0Q29udGV4dCAqYykK IHsKLSNpZiBIQVZFX1g4NkFTTQogICAgIGludCBjcHVfZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdz KCk7CiAKICAgICBpZiAoRVhURVJOQUxfU1NFMihjcHVfZmxhZ3MpKSB7CiAgICAgICAgIGMtPmlu dDMyX3RvX2Zsb2F0X2ZtdWxfc2NhbGFyID0gZmZfaW50MzJfdG9fZmxvYXRfZm11bF9zY2FsYXJf c3NlMjsKICAgICAgICAgYy0+aW50MzJfdG9fZmxvYXRfZm11bF9hcnJheTggPSBmZl9pbnQzMl90 b19mbG9hdF9mbXVsX2FycmF5OF9zc2UyOwogICAgIH0KLSNlbmRpZiAvKiBIQVZFX1g4NkFTTSAq LwogfQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvaDI2NF9xcGVsLmMgYi9saWJhdmNvZGVj L3g4Ni9oMjY0X3FwZWwuYwppbmRleCBmMmJjY2ExZTExLi41ZDYxODY1MWE0IDEwMDY0NAotLS0g YS9saWJhdmNvZGVjL3g4Ni9oMjY0X3FwZWwuYworKysgYi9saWJhdmNvZGVjL3g4Ni9oMjY0X3Fw ZWwuYwpAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgImZwZWwuaCIKICNpbmNsdWRlICJxcGVs LmgiCiAKLSNpZiBIQVZFX1g4NkFTTQogdm9pZCBmZl9hdmdfcGl4ZWxzNF9tbXhleHQodWludDhf dCAqZHN0LCBjb25zdCB1aW50OF90ICpzcmMsIHB0cmRpZmZfdCBzdHJpZGUpOwogdm9pZCBmZl9w dXRfcGl4ZWxzNHg0X2wyX21teGV4dCh1aW50OF90ICpkc3QsIGNvbnN0IHVpbnQ4X3QgKnNyYzEs IGNvbnN0IHVpbnQ4X3QgKnNyYzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0 cmRpZmZfdCBzdHJpZGUpOwpAQCAtMzQ0LDggKzM0Myw2IEBAIExVTUFfTUNfODE2KDEwLCBtYzEz LCBzc2UyKQogTFVNQV9NQ184MTYoMTAsIG1jMjMsIHNzZTIpCiBMVU1BX01DXzgxNigxMCwgbWMz Mywgc3NlMikKIAotI2VuZGlmIC8qIEhBVkVfWDg2QVNNICovCi0KICNkZWZpbmUgU0VUX1FQRUxf RlVOQ1NfMVBQKFBGWCwgSURYLCBTSVpFLCBDUFUsIFBSRUZJWCkgICAgICAgICAgICAgICAgICAg ICAgXAogICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgYy0+UEZYICMjIF9waXhlbHNfdGFiW0lE WF1bIDFdID0gUFJFRklYICMjIFBGWCAjIyBTSVpFICMjIF9tYzEwXyAjIyBDUFU7IFwKQEAgLTM4 OCw3ICszODUsNiBAQCBMVU1BX01DXzgxNigxMCwgbWMzMywgc3NlMikKIAogYXZfY29sZCB2b2lk IGZmX2gyNjRxcGVsX2luaXRfeDg2KEgyNjRRcGVsQ29udGV4dCAqYywgaW50IGJpdF9kZXB0aCkK IHsKLSNpZiBIQVZFX1g4NkFTTQogICAgIGludCBoaWdoX2JpdF9kZXB0aCA9IGJpdF9kZXB0aCA+ IDg7CiAgICAgaW50IGNwdV9mbGFncyA9IGF2X2dldF9jcHVfZmxhZ3MoKTsKIApAQCAtNDU1LDUg KzQ1MSw0IEBAIGF2X2NvbGQgdm9pZCBmZl9oMjY0cXBlbF9pbml0X3g4NihIMjY0UXBlbENvbnRl eHQgKmMsIGludCBiaXRfZGVwdGgpCiAgICAgICAgICAgICBIMjY0X1FQRUxfRlVOQ1NfMTAoMywg MCwgc3NzZTNfY2FjaGU2NCk7CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKIH0KZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMveDg2L2gyNjRkc3BfaW5pdC5jIGIvbGliYXZjb2RlYy94ODYvaDI2NGRz cF9pbml0LmMKaW5kZXggZGM4ZmM0ZjcyMC4uNjZjMmYzNjkwOCAxMDA2NDQKLS0tIGEvbGliYXZj b2RlYy94ODYvaDI2NGRzcF9pbml0LmMKKysrIGIvbGliYXZjb2RlYy94ODYvaDI2NGRzcF9pbml0 LmMKQEAgLTE5MCw3ICsxOTAsNiBAQCBIMjY0X0JJV0VJR0hUXzEwX1NTRSg0LCAgMTApCiBhdl9j b2xkIHZvaWQgZmZfaDI2NGRzcF9pbml0X3g4NihIMjY0RFNQQ29udGV4dCAqYywgY29uc3QgaW50 IGJpdF9kZXB0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCBj aHJvbWFfZm9ybWF0X2lkYykKIHsKLSNpZiBIQVZFX1g4NkFTTQogICAgIGludCBjcHVfZmxhZ3Mg PSBhdl9nZXRfY3B1X2ZsYWdzKCk7CiAKICAgICBpZiAoRVhURVJOQUxfTU1YRVhUKGNwdV9mbGFn cykgJiYgY2hyb21hX2Zvcm1hdF9pZGMgPD0gMSkKQEAgLTM2Myw1ICszNjIsNCBAQCBhdl9jb2xk IHZvaWQgZmZfaDI2NGRzcF9pbml0X3g4NihIMjY0RFNQQ29udGV4dCAqYywgY29uc3QgaW50IGJp dF9kZXB0aCwKICNlbmRpZiAvKiBIQVZFX0FMSUdORURfU1RBQ0sgKi8KICAgICAgICAgfQogICAg IH0KLSNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvaGV2Yy9NYWtlZmlsZSBi L2xpYmF2Y29kZWMveDg2L2hldmMvTWFrZWZpbGUKaW5kZXggOGYxYzg4YzU2OS4uNzQ0MThhMzIy YyAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvaGV2Yy9NYWtlZmlsZQorKysgYi9saWJhdmNv ZGVjL3g4Ni9oZXZjL01ha2VmaWxlCkBAIC0xLDEyICsxLDEyIEBACiBjbGVhbjo6CiAJJChSTSkg JChDTEVBTlNVRkZJWEVTOiU9bGliYXZjb2RlYy94ODYvaGV2Yy8lKSAkKENMRUFOU1VGRklYRVM6 JT1saWJhdmNvZGVjL3g4Ni9oMjZ4LyUpCiAKLU9CSlMtJChDT05GSUdfSEVWQ19ERUNPREVSKSAg ICAgICAgICAgICArPSB4ODYvaGV2Yy9kc3BfaW5pdC5vICAgICAgXAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg4Ni9oMjZ4L2gyNjU2ZHNwLm8KLVg4NkFTTS1P QkpTLSQoQ09ORklHX0hFVkNfREVDT0RFUikgICAgICArPSB4ODYvaGV2Yy9hZGRfcmVzLm8gICAg ICAgXAorWDg2QVNNLU9CSlMtJChDT05GSUdfSEVWQ19ERUNPREVSKSAgICAgICs9IHg4Ni9oZXZj L2RzcF9pbml0Lm8gICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgeDg2L2hldmMvYWRkX3Jlcy5vICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB4ODYvaGV2Yy9kZWJsb2NrLm8gICAgICAgXAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg4Ni9oZXZjL2lkY3QubyAgICAgICAg ICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDg2L2hldmMv bWMubyAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB4ODYvaGV2Yy9zYW8ubyAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHg4Ni9oZXZjL3Nhb18xMGJpdC5vICAgICBcCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDg2L2gyNngvaDI2NTZkc3AubyAgICAg IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ODYvaDI2eC9o MjY1Nl9pbnRlci5vCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni9sb3NzbGVzc19hdWRpb2Rz cF9pbml0LmMgYi9saWJhdmNvZGVjL3g4Ni9sb3NzbGVzc19hdWRpb2RzcF9pbml0LmMKaW5kZXgg NDYyMzI5ZGIzMi4uYThiYWU2Y2NhZCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvbG9zc2xl c3NfYXVkaW9kc3BfaW5pdC5jCisrKyBiL2xpYmF2Y29kZWMveDg2L2xvc3NsZXNzX2F1ZGlvZHNw X2luaXQuYwpAQCAtMzQsNyArMzQsNiBAQCBpbnQzMl90IGZmX3NjYWxhcnByb2R1Y3RfYW5kX21h ZGRfaW50MzJfc3NlNChpbnQxNl90ICp2MSwgY29uc3QgaW50MzJfdCAqdjIsCiAKIGF2X2NvbGQg dm9pZCBmZl9sbGF1ZGRzcF9pbml0X3g4NihMTEF1ZERTUENvbnRleHQgKmMpCiB7Ci0jaWYgSEFW RV9YODZBU00KICAgICBpbnQgY3B1X2ZsYWdzID0gYXZfZ2V0X2NwdV9mbGFncygpOwogCiAgICAg aWYgKEVYVEVSTkFMX1NTRTIoY3B1X2ZsYWdzKSkKQEAgLTQ2LDUgKzQ1LDQgQEAgYXZfY29sZCB2 b2lkIGZmX2xsYXVkZHNwX2luaXRfeDg2KExMQXVkRFNQQ29udGV4dCAqYykKIAogICAgIGlmIChF WFRFUk5BTF9TU0U0KGNwdV9mbGFncykpCiAgICAgICAgIGMtPnNjYWxhcnByb2R1Y3RfYW5kX21h ZGRfaW50MzIgPSBmZl9zY2FsYXJwcm9kdWN0X2FuZF9tYWRkX2ludDMyX3NzZTQ7Ci0jZW5kaWYK IH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2L21lX2NtcF9pbml0LmMgYi9saWJhdmNvZGVj L3g4Ni9tZV9jbXBfaW5pdC5jCmluZGV4IDNhOGI0NmY0ZTEuLmRiYjRlZjk2YmIgMTAwNjQ0Ci0t LSBhL2xpYmF2Y29kZWMveDg2L21lX2NtcF9pbml0LmMKKysrIGIvbGliYXZjb2RlYy94ODYvbWVf Y21wX2luaXQuYwpAQCAtODAsNyArODAsNiBAQCBpbnQgZmZfdnNhZDE2dV9hcHByb3hfc3NlMihN UFZFbmNDb250ZXh0ICp2LCBjb25zdCB1aW50OF90ICpwaXgxLCBjb25zdCB1aW50OF90CiBoYWRh bWFyZF9mdW5jKHNzZTIpCiBoYWRhbWFyZF9mdW5jKHNzc2UzKQogCi0jaWYgSEFWRV9YODZBU00K IHN0YXRpYyBpbnQgbnNzZTE2X3Nzc2UzKE1QVkVuY0NvbnRleHQgKmMsIGNvbnN0IHVpbnQ4X3Qg KnBpeDEsIGNvbnN0IHVpbnQ4X3QgKnBpeDIsCiAgICAgICAgICAgICAgICAgICAgICAgICBwdHJk aWZmX3Qgc3RyaWRlLCBpbnQgaCkKIHsKQEAgLTEwNywxMSArMTA2LDggQEAgc3RhdGljIGludCBu c3NlOF9zc3NlMyhNUFZFbmNDb250ZXh0ICpjLCBjb25zdCB1aW50OF90ICpwaXgxLCBjb25zdCB1 aW50OF90ICpwaXgKICAgICAgICAgcmV0dXJuIHNjb3JlMSArIEZGQUJTKHNjb3JlMikgKiA4Owog fQogCi0jZW5kaWYgLyogSEFWRV9YODZBU00gKi8KLQogYXZfY29sZCB2b2lkIGZmX21lX2NtcF9p bml0X3g4NihNRUNtcENvbnRleHQgKmMsIEFWQ29kZWNDb250ZXh0ICphdmN0eCkKIHsKLSNpZiBI QVZFX1g4NkFTTQogICAgIGludCBjcHVfZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7CiAKICAg ICBpZiAoRVhURVJOQUxfTU1YRVhUKGNwdV9mbGFncykpIHsKQEAgLTE3NCw1ICsxNzAsNCBAQCBh dl9jb2xkIHZvaWQgZmZfbWVfY21wX2luaXRfeDg2KE1FQ21wQ29udGV4dCAqYywgQVZDb2RlY0Nv bnRleHQgKmF2Y3R4KQogICAgICAgICBjLT5oYWRhbWFyZDhfZGlmZlswXSA9IGZmX2hhZGFtYXJk OF9kaWZmMTZfc3NzZTM7CiAgICAgICAgIGMtPmhhZGFtYXJkOF9kaWZmWzFdID0gZmZfaGFkYW1h cmQ4X2RpZmZfc3NzZTM7CiAgICAgfQotI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVj L3g4Ni9xcGVsZHNwX2luaXQuYyBiL2xpYmF2Y29kZWMveDg2L3FwZWxkc3BfaW5pdC5jCmluZGV4 IGNhYjJhYzQzM2EuLmE1NjlmNTY0ZTYgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L3FwZWxk c3BfaW5pdC5jCisrKyBiL2xpYmF2Y29kZWMveDg2L3FwZWxkc3BfaW5pdC5jCkBAIC04MCw4ICs4 MCw2IEBAIHZvaWQgZmZfcHV0X25vX3JuZF9tcGVnNF9xcGVsOF92X2xvd3Bhc3NfbW14ZXh0KHVp bnQ4X3QgKmRzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHVpbnQ4X3QgKnNyYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBkc3RTdHJpZGUsIHB0cmRpZmZfdCBzcmNTdHJpZGUp OwogCi0jaWYgSEFWRV9YODZBU00KLQogI2RlZmluZSBRUEVMX09QKE9QTkFNRSwgUk5ELCBNTVgp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogc3RhdGljIHZvaWQgT1BO QU1FICMjIHFwZWw4X21jMTBfICMjIE1NWCh1aW50OF90ICpkc3QsICAgICAgICAgICAgICAgICAg XAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90 ICpzcmMsICAgICAgICAgICAgXApAQCAtNDg1LDggKzQ4Myw2IEBAIFFQRUxfT1AocHV0XywgICAg ICAgIF8sICAgICAgICBtbXhleHQpCiBRUEVMX09QKGF2Z18sICAgICAgICBfLCAgICAgICAgbW14 ZXh0KQogUVBFTF9PUChwdXRfbm9fcm5kXywgX25vX3JuZF8sIG1teGV4dCkKIAotI2VuZGlmIC8q IEhBVkVfWDg2QVNNICovCi0KICNkZWZpbmUgU0VUX1FQRUxfRlVOQ1MoUEZYLCBJRFgsIFNJWkUs IENQVSwgUFJFRklYKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogZG8geyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCiAgICAgYy0+UEZYICMjIF9waXhlbHNfdGFiW0lEWF1bIDFdID0gUFJFRklYICMjIFBG WCAjIyBTSVpFICMjIF9tYzEwXyAjIyBDUFU7IFwKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2 L3J2NDBkc3BfaW5pdC5jIGIvbGliYXZjb2RlYy94ODYvcnY0MGRzcF9pbml0LmMKaW5kZXggYTA3 YWNhZTZiYy4uOTdhYmVlMzIxOSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvcnY0MGRzcF9p bml0LmMKKysrIGIvbGliYXZjb2RlYy94ODYvcnY0MGRzcF9pbml0LmMKQEAgLTM5LDcgKzM5LDYg QEAgc3RhdGljIHZvaWQgb3AjI19ydjQwX3FwZWwjI3NpemUjI19tYzMzXyMjaW5zbih1aW50OF90 ICpkc3QsIGNvbnN0IHVpbnQ4X3QgKnNyYywKICAgICBmZl8jI29wIyNfcGl4ZWxzIyNzaXplIyNf eHkyXyMjaW5zbihkc3QsIHNyYywgc3RyaWRlLCBzaXplKTsgXAogfQogCi0jaWYgSEFWRV9YODZB U00KICNkZWZpbmUgREVDTEFSRV9XRUlHSFQob3B0KSBcCiB2b2lkIGZmX3J2NDBfd2VpZ2h0X2Z1 bmNfcm5kXzE2XyMjb3B0KHVpbnQ4X3QgKmRzdCwgdWludDhfdCAqc3JjMSwgdWludDhfdCAqc3Jj MiwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdzEsIGludCB3 MiwgcHRyZGlmZl90IHN0cmlkZSk7IFwKQEAgLTE3NCwxMyArMTczLDEwIEBAIHZvaWQgZmZfcnY0 MF8gIyMgT1AgIyMgX2Nocm9tYV9tYyAjIyBTSVpFICMjIF8gIyMgWE1NKHVpbnQ4X3QgKmRzdCwg Y29uc3QgdWludDhfCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwdHJkaWZmX3Qgc3RyaWRlLCBpbnQgaCwgaW50IHgsIGludCB5KTtcCiAgICAg Yy0+T1AgIyMgX2Nocm9tYV9waXhlbHNfdGFiW1NJWkUgPT0gNF0gPSBmZl9ydjQwXyAjIyBPUCAj IyBfY2hyb21hX21jICMjIFNJWkUgIyMgXyAjIyBYTU0KIAotI2VuZGlmIC8qIEhBVkVfWDg2QVNN ICovCi0KIGF2X2NvbGQgdm9pZCBmZl9ydjQwZHNwX2luaXRfeDg2KFJWMzREU1BDb250ZXh0ICpj KQogewogICAgIGF2X3VudXNlZCBpbnQgY3B1X2ZsYWdzID0gYXZfZ2V0X2NwdV9mbGFncygpOwog Ci0jaWYgSEFWRV9YODZBU00KICAgICBpZiAoRVhURVJOQUxfU1NFMihjcHVfZmxhZ3MpKSB7CiAg ICAgICAgIGMtPnB1dF9waXhlbHNfdGFiWzBdWzE1XSAgICAgICAgPSBwdXRfcnY0MF9xcGVsMTZf bWMzM19zc2UyOwogICAgICAgICBjLT5hdmdfcGl4ZWxzX3RhYlswXVsxNV0gICAgICAgID0gYXZn X3J2NDBfcXBlbDE2X21jMzNfc3NlMjsKQEAgLTIwNyw1ICsyMDMsNCBAQCBhdl9jb2xkIHZvaWQg ZmZfcnY0MGRzcF9pbml0X3g4NihSVjM0RFNQQ29udGV4dCAqYykKICAgICAgICAgUVBFTF9NQ19T RVQocHV0XywgX3Nzc2UzKQogICAgICAgICBRUEVMX01DX1NFVChhdmdfLCBfc3NzZTMpCiAgICAg fQotI2VuZGlmIC8qIEhBVkVfWDg2QVNNICovCiB9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4 Ni9zeW50aF9maWx0ZXJfaW5pdC5jIGIvbGliYXZjb2RlYy94ODYvc3ludGhfZmlsdGVyX2luaXQu YwppbmRleCBlMDk4NzBiMjNkLi45MzQwN2M5MmRhIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4 Ni9zeW50aF9maWx0ZXJfaW5pdC5jCisrKyBiL2xpYmF2Y29kZWMveDg2L3N5bnRoX2ZpbHRlcl9p bml0LmMKQEAgLTQzLDE1ICs0MywxMiBAQCBzdGF0aWMgdm9pZCBzeW50aF9maWx0ZXJfIyNvcHQo QVZUWENvbnRleHQgKmltZGN0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICpz eW50aF9idWZfb2Zmc2V0ID0gKCpzeW50aF9idWZfb2Zmc2V0IC0gMzIpICYgNTExOyAgICAgICAg ICAgICAgICAgICAgICAgIFwKIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAKLSNpZiBIQVZFX1g4 NkFTTQogU1lOVEhfRklMVEVSX0ZVTkMoc3NlMikKIFNZTlRIX0ZJTFRFUl9GVU5DKGF2eCkKIFNZ TlRIX0ZJTFRFUl9GVU5DKGZtYTMpCi0jZW5kaWYgLyogSEFWRV9YODZBU00gKi8KIAogYXZfY29s ZCB2b2lkIGZmX3N5bnRoX2ZpbHRlcl9pbml0X3g4NihTeW50aEZpbHRlckNvbnRleHQgKnMpCiB7 Ci0jaWYgSEFWRV9YODZBU00KICAgICBpbnQgY3B1X2ZsYWdzID0gYXZfZ2V0X2NwdV9mbGFncygp OwogCiAgICAgaWYgKEVYVEVSTkFMX1NTRTIoY3B1X2ZsYWdzKSkgewpAQCAtNjMsNSArNjAsNCBA QCBhdl9jb2xkIHZvaWQgZmZfc3ludGhfZmlsdGVyX2luaXRfeDg2KFN5bnRoRmlsdGVyQ29udGV4 dCAqcykKICAgICBpZiAoRVhURVJOQUxfRk1BM19GQVNUKGNwdV9mbGFncykpIHsKICAgICAgICAg cy0+c3ludGhfZmlsdGVyX2Zsb2F0ID0gc3ludGhfZmlsdGVyX2ZtYTM7CiAgICAgfQotI2VuZGlm IC8qIEhBVkVfWDg2QVNNICovCiB9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni90YWtkc3Bf aW5pdC5jIGIvbGliYXZjb2RlYy94ODYvdGFrZHNwX2luaXQuYwppbmRleCA5NTUzZjg0NDJjLi42 OGViMWI4YzU1IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4Ni90YWtkc3BfaW5pdC5jCisrKyBi L2xpYmF2Y29kZWMveDg2L3Rha2RzcF9pbml0LmMKQEAgLTIxLDcgKzIxLDYgQEAKICNpbmNsdWRl ICJsaWJhdnV0aWwvYXR0cmlidXRlcy5oIgogI2luY2x1ZGUgImxpYmF2Y29kZWMvdGFrZHNwLmgi CiAjaW5jbHVkZSAibGliYXZ1dGlsL3g4Ni9jcHUuaCIKLSNpbmNsdWRlICJjb25maWcuaCIKIAog dm9pZCBmZl90YWtfZGVjb3JyZWxhdGVfbHNfc3NlMihjb25zdCBpbnQzMl90ICpwMSwgaW50MzJf dCAqcDIsIGludCBsZW5ndGgpOwogdm9pZCBmZl90YWtfZGVjb3JyZWxhdGVfbHNfYXZ4Mihjb25z dCBpbnQzMl90ICpwMSwgaW50MzJfdCAqcDIsIGludCBsZW5ndGgpOwpAQCAtMzQsNyArMzMsNiBA QCB2b2lkIGZmX3Rha19kZWNvcnJlbGF0ZV9zZl9hdngyKGludDMyX3QgKnAxLCBjb25zdCBpbnQz Ml90ICpwMiwgaW50IGxlbmd0aCwgaW50CiAKIGF2X2NvbGQgdm9pZCBmZl90YWtkc3BfaW5pdF94 ODYoVEFLRFNQQ29udGV4dCAqYykKIHsKLSNpZiBIQVZFX1g4NkFTTQogICAgIGludCBjcHVfZmxh Z3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7CiAKICAgICBpZiAoRVhURVJOQUxfU1NFMihjcHVfZmxh Z3MpKSB7CkBAIC01Myw1ICs1MSw0IEBAIGF2X2NvbGQgdm9pZCBmZl90YWtkc3BfaW5pdF94ODYo VEFLRFNQQ29udGV4dCAqYykKICAgICAgICAgYy0+ZGVjb3JyZWxhdGVfc20gPSBmZl90YWtfZGVj b3JyZWxhdGVfc21fYXZ4MjsKICAgICAgICAgYy0+ZGVjb3JyZWxhdGVfc2YgPSBmZl90YWtfZGVj b3JyZWxhdGVfc2ZfYXZ4MjsKICAgICB9Ci0jZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29k ZWMveDg2L3R0YWRzcF9pbml0LmMgYi9saWJhdmNvZGVjL3g4Ni90dGFkc3BfaW5pdC5jCmluZGV4 IGYyOTU0ZTU2ODcuLmI0ZDUxODQyNjAgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L3R0YWRz cF9pbml0LmMKKysrIGIvbGliYXZjb2RlYy94ODYvdHRhZHNwX2luaXQuYwpAQCAtMjEsNyArMjEs NiBAQAogI2luY2x1ZGUgImxpYmF2dXRpbC9hdHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSAibGliYXZj b2RlYy90dGFkc3AuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwveDg2L2NwdS5oIgotI2luY2x1ZGUg ImNvbmZpZy5oIgogCiB2b2lkIGZmX3R0YV9maWx0ZXJfcHJvY2Vzc19zc3NlMyhpbnQzMl90ICpx bSwgaW50MzJfdCAqZHgsIGludDMyX3QgKmRsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50MzJfdCAqZXJyb3IsIGludDMyX3QgKmluLCBpbnQzMl90IHNoaWZ0LApAQCAtMzIs MTIgKzMxLDEwIEBAIHZvaWQgZmZfdHRhX2ZpbHRlcl9wcm9jZXNzX3NzZTQoaW50MzJfdCAqcW0s IGludDMyX3QgKmR4LCBpbnQzMl90ICpkbCwKIAogYXZfY29sZCB2b2lkIGZmX3R0YWRzcF9pbml0 X3g4NihUVEFEU1BDb250ZXh0ICpjKQogewotI2lmIEhBVkVfWDg2QVNNCiAgICAgaW50IGNwdV9m bGFncyA9IGF2X2dldF9jcHVfZmxhZ3MoKTsKIAogICAgIGlmIChFWFRFUk5BTF9TU1NFMyhjcHVf ZmxhZ3MpKQogICAgICAgICBjLT5maWx0ZXJfcHJvY2VzcyA9IGZmX3R0YV9maWx0ZXJfcHJvY2Vz c19zc3NlMzsKICAgICBpZiAoRVhURVJOQUxfU1NFNChjcHVfZmxhZ3MpKQogICAgICAgICBjLT5m aWx0ZXJfcHJvY2VzcyA9IGZmX3R0YV9maWx0ZXJfcHJvY2Vzc19zc2U0OwotI2VuZGlmCiB9CmRp ZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni90dGFlbmNkc3BfaW5pdC5jIGIvbGliYXZjb2RlYy94 ODYvdHRhZW5jZHNwX2luaXQuYwppbmRleCBiNDcwMTQyYzUwLi5jZmUxMWY5Njc4IDEwMDY0NAot LS0gYS9saWJhdmNvZGVjL3g4Ni90dGFlbmNkc3BfaW5pdC5jCisrKyBiL2xpYmF2Y29kZWMveDg2 L3R0YWVuY2RzcF9pbml0LmMKQEAgLTIxLDcgKzIxLDYgQEAKICNpbmNsdWRlICJsaWJhdnV0aWwv YXR0cmlidXRlcy5oIgogI2luY2x1ZGUgImxpYmF2Y29kZWMvdHRhZW5jZHNwLmgiCiAjaW5jbHVk ZSAibGliYXZ1dGlsL3g4Ni9jcHUuaCIKLSNpbmNsdWRlICJjb25maWcuaCIKIAogdm9pZCBmZl90 dGFlbmNfZmlsdGVyX3Byb2Nlc3Nfc3NzZTMoaW50MzJfdCAqcW0sIGludDMyX3QgKmR4LCBpbnQz Ml90ICpkbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgKmVy cm9yLCBpbnQzMl90ICppbiwgaW50MzJfdCBzaGlmdCwKQEAgLTMyLDEyICszMSwxMCBAQCB2b2lk IGZmX3R0YWVuY19maWx0ZXJfcHJvY2Vzc19zc2U0KGludDMyX3QgKnFtLCBpbnQzMl90ICpkeCwg aW50MzJfdCAqZGwsCiAKIGF2X2NvbGQgdm9pZCBmZl90dGFlbmNkc3BfaW5pdF94ODYoVFRBRW5j RFNQQ29udGV4dCAqYykKIHsKLSNpZiBIQVZFX1g4NkFTTQogICAgIGludCBjcHVfZmxhZ3MgPSBh dl9nZXRfY3B1X2ZsYWdzKCk7CiAKICAgICBpZiAoRVhURVJOQUxfU1NTRTMoY3B1X2ZsYWdzKSkK ICAgICAgICAgYy0+ZmlsdGVyX3Byb2Nlc3MgPSBmZl90dGFlbmNfZmlsdGVyX3Byb2Nlc3Nfc3Nz ZTM7CiAgICAgaWYgKEVYVEVSTkFMX1NTRTQoY3B1X2ZsYWdzKSkKICAgICAgICAgYy0+ZmlsdGVy X3Byb2Nlc3MgPSBmZl90dGFlbmNfZmlsdGVyX3Byb2Nlc3Nfc3NlNDsKLSNlbmRpZgogfQpkaWZm IC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvdjIxMC1pbml0LmMgYi9saWJhdmNvZGVjL3g4Ni92MjEw LWluaXQuYwppbmRleCA4OTVjYzhmMzI5Li43YTg3OWYxZGM4IDEwMDY0NAotLS0gYS9saWJhdmNv ZGVjL3g4Ni92MjEwLWluaXQuYworKysgYi9saWJhdmNvZGVjL3g4Ni92MjEwLWluaXQuYwpAQCAt MzIsNyArMzIsNiBAQCBleHRlcm4gdm9pZCBmZl92MjEwX3BsYW5hcl91bnBhY2tfYXZ4NTEyaWNs KGNvbnN0IHVpbnQzMl90ICpzcmMsIHVpbnQxNl90ICp5LCB1aQogCiBhdl9jb2xkIHZvaWQgZmZf djIxMF94ODZfaW5pdChWMjEwRGVjQ29udGV4dCAqcykKIHsKLSNpZiBIQVZFX1g4NkFTTQogICAg IGludCBjcHVfZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7CiAKICAgICBpZiAocy0+YWxpZ25l ZF9pbnB1dCkgewpAQCAtNzEsNSArNzAsNCBAQCBhdl9jb2xkIHZvaWQgZmZfdjIxMF94ODZfaW5p dChWMjEwRGVjQ29udGV4dCAqcykKICAgICAgICAgICAgIHMtPnVucGFja19mcmFtZSA9IGZmX3Yy MTBfcGxhbmFyX3VucGFja19hdng1MTJpY2w7CiAjZW5kaWYKICAgICB9Ci0jZW5kaWYgLy8gSEFW RV9YODZBU00KIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2L3ZjMWRzcF9pbml0LmMgYi9s aWJhdmNvZGVjL3g4Ni92YzFkc3BfaW5pdC5jCmluZGV4IDVjZWJjMWY2ZjIuLmUzNDRmMjMzZGUg MTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L3ZjMWRzcF9pbml0LmMKKysrIGIvbGliYXZjb2Rl Yy94ODYvdmMxZHNwX2luaXQuYwpAQCAtNTIsNyArNTIsNiBAQCBzdGF0aWMgdm9pZCB2YzFfaF9s b29wX2ZpbHRlcjE2XyAjIyBFWFQodWludDhfdCAqc3JjLCBwdHJkaWZmX3Qgc3RyaWRlLCBpbnQg cHEpCiAgICAgZmZfdmMxX2hfbG9vcF9maWx0ZXI4XyAjIyBFWFQoc3JjKzgqc3RyaWRlLCBzdHJp ZGUsIHBxKTsgXAogfQogCi0jaWYgSEFWRV9YODZBU00KIExPT1BfRklMVEVSNChtbXhleHQpCiBM T09QX0ZJTFRFUjgxNihzc2UyKQogTE9PUF9GSUxURVI0KHNzc2UzKQpAQCAtNzgsOCArNzcsNiBA QCBERUNMQVJFX0ZVTkNUSU9OKGF2Z18sICA4LCBfbW14ZXh0KQogREVDTEFSRV9GVU5DVElPTihw dXRfLCAxNiwgX3NzZTIpCiBERUNMQVJFX0ZVTkNUSU9OKGF2Z18sIDE2LCBfc3NlMikKIAotI2Vu ZGlmIC8qIEhBVkVfWDg2QVNNICovCi0KIHZvaWQgZmZfcHV0X3ZjMV9jaHJvbWFfbWM4X25vcm5k X3Nzc2UzKHVpbnQ4X3QgKmRzdCwgY29uc3QgdWludDhfdCAqc3JjLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHRyZGlmZl90IHN0cmlkZSwgaW50IGgsIGludCB4LCBp bnQgeSk7CiB2b2lkIGZmX2F2Z192YzFfY2hyb21hX21jOF9ub3JuZF9zc3NlMyh1aW50OF90ICpk c3QsIGNvbnN0IHVpbnQ4X3QgKnNyYywKQEAgLTExNyw3ICsxMTQsNiBAQCBhdl9jb2xkIHZvaWQg ZmZfdmMxZHNwX2luaXRfeDg2KFZDMURTUENvbnRleHQgKmRzcCkKICAgICAgICAgZHNwLT52YzFf dl9sb29wX2ZpbHRlcjE2ID0gdmMxX3ZfbG9vcF9maWx0ZXIxNl8gIyMgRVhUOyBcCiAgICAgICAg IGRzcC0+dmMxX2hfbG9vcF9maWx0ZXIxNiA9IHZjMV9oX2xvb3BfZmlsdGVyMTZfICMjIEVYVAog Ci0jaWYgSEFWRV9YODZBU00KICAgICBpZiAoRVhURVJOQUxfTU1YRVhUKGNwdV9mbGFncykpIHsK ICAgICAgICAgQVNTSUdOX0xGNChtbXhleHQpOwogCkBAIC0xNDUsNSArMTQxLDQgQEAgYXZfY29s ZCB2b2lkIGZmX3ZjMWRzcF9pbml0X3g4NihWQzFEU1BDb250ZXh0ICpkc3ApCiAgICAgICAgIGRz cC0+dmMxX2hfbG9vcF9maWx0ZXI4ICA9IGZmX3ZjMV9oX2xvb3BfZmlsdGVyOF9zc2U0OwogICAg ICAgICBkc3AtPnZjMV9oX2xvb3BfZmlsdGVyMTYgPSB2YzFfaF9sb29wX2ZpbHRlcjE2X3NzZTQ7 CiAgICAgfQotI2VuZGlmIC8qIEhBVkVfWDg2QVNNICovCiB9CmRpZmYgLS1naXQgYS9saWJhdmNv ZGVjL3g4Ni92aWRlb2RzcF9pbml0LmMgYi9saWJhdmNvZGVjL3g4Ni92aWRlb2RzcF9pbml0LmMK aW5kZXggNjAyODU2ZGUxZS4uN2YzYzgzNzIyNyAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYv dmlkZW9kc3BfaW5pdC5jCisrKyBiL2xpYmF2Y29kZWMveDg2L3ZpZGVvZHNwX2luaXQuYwpAQCAt MjgsNyArMjgsNiBAQAogI2luY2x1ZGUgImxpYmF2dXRpbC94ODYvY3B1LmgiCiAjaW5jbHVkZSAi bGliYXZjb2RlYy92aWRlb2RzcC5oIgogCi0jaWYgSEFWRV9YODZBU00KIHR5cGVkZWYgdm9pZCBl bXVfZWRnZV92Zml4X2Z1bmModWludDhfdCAqZHN0LCB4ODZfcmVnIGRzdF9zdHJpZGUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNyYywgeDg2X3JlZyBz cmNfc3RyaWRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ODZfcmVnIHN0YXJ0 X3ksIHg4Nl9yZWcgZW5kX3ksIHg4Nl9yZWcgYmgpOwpAQCAtMjEzLDEzICsyMTIsMTEgQEAgc3Rh dGljIGF2X25vaW5saW5lIHZvaWQgZW11bGF0ZWRfZWRnZV9tY19hdngyKHVpbnQ4X3QgKmJ1Ziwg Y29uc3QgdWludDhfdCAqc3JjLAogICAgICAgICAgICAgICAgICAgICAgaGZpeHRibF9hdngyLCAm ZmZfZW11X2VkZ2VfaHZhcl9hdngyKTsKIH0KICNlbmRpZiAvKiBIQVZFX0FWWDJfRVhURVJOQUwg Ki8KLSNlbmRpZiAvKiBIQVZFX1g4NkFTTSAqLwogCiB2b2lkIGZmX3ByZWZldGNoX21teGV4dChj b25zdCB1aW50OF90ICpidWYsIHB0cmRpZmZfdCBzdHJpZGUsIGludCBoKTsKIAogYXZfY29sZCB2 b2lkIGZmX3ZpZGVvZHNwX2luaXRfeDg2KFZpZGVvRFNQQ29udGV4dCAqY3R4LCBpbnQgYnBjKQog ewotI2lmIEhBVkVfWDg2QVNNCiAgICAgaW50IGNwdV9mbGFncyA9IGF2X2dldF9jcHVfZmxhZ3Mo KTsKIAogICAgIGlmIChFWFRFUk5BTF9NTVhFWFQoY3B1X2ZsYWdzKSkgewpAQCAtMjMzLDUgKzIz MCw0IEBAIGF2X2NvbGQgdm9pZCBmZl92aWRlb2RzcF9pbml0X3g4NihWaWRlb0RTUENvbnRleHQg KmN0eCwgaW50IGJwYykKICAgICAgICAgY3R4LT5lbXVsYXRlZF9lZGdlX21jID0gZW11bGF0ZWRf ZWRnZV9tY19hdngyOwogICAgIH0KICNlbmRpZgotI2VuZGlmIC8qIEhBVkVfWDg2QVNNICovCiB9 CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni92cDhkc3BfaW5pdC5jIGIvbGliYXZjb2RlYy94 ODYvdnA4ZHNwX2luaXQuYwppbmRleCBiZDIwZGExZmM5Li5lMzdhZmFiNzc1IDEwMDY0NAotLS0g YS9saWJhdmNvZGVjL3g4Ni92cDhkc3BfaW5pdC5jCisrKyBiL2xpYmF2Y29kZWMveDg2L3ZwOGRz cF9pbml0LmMKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJsaWJhdnV0aWwveDg2L2NwdS5o IgogI2luY2x1ZGUgImxpYmF2Y29kZWMvdnA4ZHNwLmgiCiAKLSNpZiBIQVZFX1g4NkFTTQotCiAv KgogICogTUMgZnVuY3Rpb25zCiAgKi8KQEAgLTI1NCw4ICsyNTIsNiBAQCBERUNMQVJFX0xPT1Bf RklMVEVSKHNzZTIpCiBERUNMQVJFX0xPT1BfRklMVEVSKHNzc2UzKQogREVDTEFSRV9MT09QX0ZJ TFRFUihzc2U0KQogCi0jZW5kaWYgLyogSEFWRV9YODZBU00gKi8KLQogI2RlZmluZSBWUDhfTFVN QV9NQ19GVU5DKElEWCwgU0laRSwgT1BUKSBcCiAgICAgYy0+cHV0X3ZwOF9lcGVsX3BpeGVsc190 YWJbSURYXVswXVsyXSA9IGZmX3B1dF92cDhfZXBlbCAjIyBTSVpFICMjIF9oNl8gIyMgT1BUOyBc CiAgICAgYy0+cHV0X3ZwOF9lcGVsX3BpeGVsc190YWJbSURYXVsyXVswXSA9IGZmX3B1dF92cDhf ZXBlbCAjIyBTSVpFICMjIF92Nl8gIyMgT1BUOyBcCkBAIC0yODIsNyArMjc4LDYgQEAgREVDTEFS RV9MT09QX0ZJTFRFUihzc2U0KQogCiBhdl9jb2xkIHZvaWQgZmZfdnA3OGRzcF9pbml0X3g4NihW UDhEU1BDb250ZXh0ICpjKQogewotI2lmIEhBVkVfWDg2QVNNCiAgICAgaW50IGNwdV9mbGFncyA9 IGF2X2dldF9jcHVfZmxhZ3MoKTsKIAogICAgIGlmIChFWFRFUk5BTF9NTVgoY3B1X2ZsYWdzKSkg ewpAQCAtMzE3LDEyICszMTIsMTAgQEAgYXZfY29sZCB2b2lkIGZmX3ZwNzhkc3BfaW5pdF94ODYo VlA4RFNQQ29udGV4dCAqYykKICAgICAgICAgVlA4X0JJTElORUFSX01DX0ZVTkMoMSwgOCwgc3Nz ZTMpOwogICAgICAgICBWUDhfQklMSU5FQVJfTUNfRlVOQygyLCA0LCBzc3NlMyk7CiAgICAgfQot I2VuZGlmIC8qIEhBVkVfWDg2QVNNICovCiB9CiAKIGF2X2NvbGQgdm9pZCBmZl92cDhkc3BfaW5p dF94ODYoVlA4RFNQQ29udGV4dCAqYykKIHsKLSNpZiBIQVZFX1g4NkFTTQogICAgIGludCBjcHVf ZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7CiAKICAgICBpZiAoRVhURVJOQUxfTU1YKGNwdV9m bGFncykpIHsKQEAgLTM3OSw1ICszNzIsNCBAQCBhdl9jb2xkIHZvaWQgZmZfdnA4ZHNwX2luaXRf eDg2KFZQOERTUENvbnRleHQgKmMpCiAgICAgICAgIGMtPnZwOF9oX2xvb3BfZmlsdGVyMTZ5ICAg ICAgID0gZmZfdnA4X2hfbG9vcF9maWx0ZXIxNnlfbWJlZGdlX3NzZTQ7CiAgICAgICAgIGMtPnZw OF9oX2xvb3BfZmlsdGVyOHV2ICAgICAgID0gZmZfdnA4X2hfbG9vcF9maWx0ZXI4dXZfbWJlZGdl X3NzZTQ7CiAgICAgfQotI2VuZGlmIC8qIEhBVkVfWDg2QVNNICovCiB9CmRpZmYgLS1naXQgYS9s aWJhdmNvZGVjL3g4Ni92cDlkc3BfaW5pdC5jIGIvbGliYXZjb2RlYy94ODYvdnA5ZHNwX2luaXQu YwppbmRleCA3MmVkZjZiYjQ1Li5jMTAzNzUxMzUxIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4 Ni92cDlkc3BfaW5pdC5jCisrKyBiL2xpYmF2Y29kZWMveDg2L3ZwOWRzcF9pbml0LmMKQEAgLTI2 LDggKzI2LDYgQEAKICNpbmNsdWRlICJsaWJhdmNvZGVjL3ZwOWRzcC5oIgogI2luY2x1ZGUgImxp YmF2Y29kZWMveDg2L3ZwOWRzcF9pbml0LmgiCiAKLSNpZiBIQVZFX1g4NkFTTQotCiBkZWNsX2Zw ZWxfZnVuYyhwdXQsICA0LCAgICwgbW14KTsKIGRlY2xfZnBlbF9mdW5jKHB1dCwgIDgsICAgLCBt bXgpOwogZGVjbF9mcGVsX2Z1bmMocHV0LCAxNiwgICAsIHNzZSk7CkBAIC0yMTUsMTEgKzIxMyw4 IEBAIGlwcmVkX2Z1bmMoMzIsIHYsIGF2eDIpOwogI3VuZGVmIGlwcmVkX2Rpcl90bV9mdW5jcwog I3VuZGVmIGlwcmVkX2RjX2Z1bmNzCiAKLSNlbmRpZiAvKiBIQVZFX1g4NkFTTSAqLwotCiBhdl9j b2xkIHZvaWQgZmZfdnA5ZHNwX2luaXRfeDg2KFZQOURTUENvbnRleHQgKmRzcCwgaW50IGJwcCwg aW50IGJpdGV4YWN0KQogewotI2lmIEhBVkVfWDg2QVNNCiAgICAgaW50IGNwdV9mbGFnczsKIAog ICAgIGlmIChicHAgPT0gMTApIHsKQEAgLTQzMCw2ICs0MjUsNCBAQCBhdl9jb2xkIHZvaWQgZmZf dnA5ZHNwX2luaXRfeDg2KFZQOURTUENvbnRleHQgKmRzcCwgaW50IGJwcCwgaW50IGJpdGV4YWN0 KQogI3VuZGVmIGluaXRfc3VicGVsMQogI3VuZGVmIGluaXRfc3VicGVsMgogI3VuZGVmIGluaXRf c3VicGVsMwotCi0jZW5kaWYgLyogSEFWRV9YODZBU00gKi8KIH0KZGlmZiAtLWdpdCBhL2xpYmF2 Y29kZWMveDg2L3ZwOWRzcF9pbml0XzE2YnBwLmMgYi9saWJhdmNvZGVjL3g4Ni92cDlkc3BfaW5p dF8xNmJwcC5jCmluZGV4IGU1YWZlYTE1MTIuLjJkMmYwMWJhNWYgMTAwNjQ0Ci0tLSBhL2xpYmF2 Y29kZWMveDg2L3ZwOWRzcF9pbml0XzE2YnBwLmMKKysrIGIvbGliYXZjb2RlYy94ODYvdnA5ZHNw X2luaXRfMTZicHAuYwpAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImxpYmF2Y29kZWMvdnA5 ZHNwLmgiCiAjaW5jbHVkZSAibGliYXZjb2RlYy94ODYvdnA5ZHNwX2luaXQuaCIKIAotI2lmIEhB VkVfWDg2QVNNCi0KIGRlY2xfZnBlbF9mdW5jKHB1dCwgICA4LCAgICAsIG1teCk7CiBkZWNsX2Zw ZWxfZnVuYyhhdmcsICAgOCwgXzE2LCBtbXhleHQpOwogZGVjbF9mcGVsX2Z1bmMocHV0LCAgMTYs ICAgICwgc3NlKTsKQEAgLTY4LDExICs2Niw5IEBAIGRlY2xfaXByZWRfZGlyX2Z1bmNzKHZsKTsK IGRlY2xfaXByZWRfZGlyX2Z1bmNzKHZyKTsKIGRlY2xfaXByZWRfZGlyX2Z1bmNzKGh1KTsKIGRl Y2xfaXByZWRfZGlyX2Z1bmNzKGhkKTsKLSNlbmRpZiAvKiBIQVZFX1g4NkFTTSAqLwogCiBhdl9j b2xkIHZvaWQgZmZfdnA5ZHNwX2luaXRfMTZicHBfeDg2KFZQOURTUENvbnRleHQgKmRzcCkKIHsK LSNpZiBIQVZFX1g4NkFTTQogICAgIGludCBjcHVfZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7 CiAKICAgICBpZiAoRVhURVJOQUxfTU1YKGNwdV9mbGFncykpIHsKQEAgLTE0Nyw2ICsxNDMsNCBA QCBhdl9jb2xkIHZvaWQgZmZfdnA5ZHNwX2luaXRfMTZicHBfeDg2KFZQOURTUENvbnRleHQgKmRz cCkKICAgICAgICAgaW5pdF9pcHJlZF9mdW5jKGRyLCBESUFHX0RPV05fUklHSFQsIDMyLCAxNiwg YXZ4Mik7CiAjZW5kaWYKICAgICB9Ci0KLSNlbmRpZiAvKiBIQVZFX1g4NkFTTSAqLwogfQpkaWZm IC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvdnA5ZHNwX2luaXRfMTZicHBfdGVtcGxhdGUuYyBiL2xp YmF2Y29kZWMveDg2L3ZwOWRzcF9pbml0XzE2YnBwX3RlbXBsYXRlLmMKaW5kZXggZGI3NzVmN2Mx YS4uYTZhYTAzYmRjOCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvdnA5ZHNwX2luaXRfMTZi cHBfdGVtcGxhdGUuYworKysgYi9saWJhdmNvZGVjL3g4Ni92cDlkc3BfaW5pdF8xNmJwcF90ZW1w bGF0ZS5jCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAibGliYXZjb2RlYy92cDlkc3AuaCIK ICNpbmNsdWRlICJsaWJhdmNvZGVjL3g4Ni92cDlkc3BfaW5pdC5oIgogCi0jaWYgSEFWRV9YODZB U00KLQogZXh0ZXJuIGNvbnN0IGludDE2X3QgZmZfZmlsdGVyc18xNmJwcFszXVsxNV1bNF1bMTZd OwogCiBkZWNsX21jX2Z1bmNzKDQsIHNzZTIsIGludDE2X3QsIDE2LCBCUEMpOwpAQCAtMTM4LDEx ICsxMzYsOSBAQCBkZWNsX2l0eGZtX2Z1bmMoaWFkc3QsIGlhZHN0LCA0LCBCUEMsIHNzZTIpOwog ZGVjbF9pdHhmbV9mdW5jcyg4LCBCUEMsIHNzZTIpOwogZGVjbF9pdHhmbV9mdW5jcygxNiwgQlBD LCBzc2UyKTsKIGRlY2xfaXR4Zm1fZnVuYyhpZGN0LCAgaWRjdCwgMzIsIEJQQywgc3NlMik7Ci0j ZW5kaWYgLyogSEFWRV9YODZBU00gKi8KIAogYXZfY29sZCB2b2lkIElOSVRfRlVOQyhWUDlEU1BD b250ZXh0ICpkc3AsIGludCBiaXRleGFjdCkKIHsKLSNpZiBIQVZFX1g4NkFTTQogICAgIGludCBj cHVfZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7CiAKICNkZWZpbmUgaW5pdF9scGZfOF9mdW5j KGlkeDEsIGlkeDIsIGRpciwgd2QsIGJwcCwgb3B0KSBcCkBAIC0yNDEsNyArMjM3LDYgQEAgYXZf Y29sZCB2b2lkIElOSVRfRlVOQyhWUDlEU1BDb250ZXh0ICpkc3AsIGludCBiaXRleGFjdCkKICAg ICAgICAgaW5pdF9pdHhfZnVuY19vbmUoVFhfMzJYMzIsIGlkY3QsIGlkY3QsIDMyLCBCUEMsIGF2 eDUxMmljbCk7CiAgICAgfQogI2VuZGlmCi0jZW5kaWYgLyogSEFWRV9YODZBU00gKi8KIAogICAg IGZmX3ZwOWRzcF9pbml0XzE2YnBwX3g4Nihkc3ApOwogfQpkaWZmIC0tZ2l0IGEvbGliYXZjb2Rl Yy94ODYvdnZjL01ha2VmaWxlIGIvbGliYXZjb2RlYy94ODYvdnZjL01ha2VmaWxlCmluZGV4IGM0 MjZiMTU2YzEuLjBjZWJmYjRlOWUgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L3Z2Yy9NYWtl ZmlsZQorKysgYi9saWJhdmNvZGVjL3g4Ni92dmMvTWFrZWZpbGUKQEAgLTEsMTMgKzEsMTMgQEAK IGNsZWFuOjoKIAkkKFJNKSAkKENMRUFOU1VGRklYRVM6JT1saWJhdmNvZGVjL3g4Ni92dmMvJSkg JChDTEVBTlNVRkZJWEVTOiU9bGliYXZjb2RlYy94ODYvaDI2eC8lKQogCi1PQkpTLSQoQ09ORklH X1ZWQ19ERUNPREVSKSAgICAgICAgICAgICArPSB4ODYvdnZjL2RzcF9pbml0Lm8gICAgICAgIFwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg4Ni9oMjZ4L2gyNjU2 ZHNwLm8KLVg4NkFTTS1PQkpTLSQoQ09ORklHX1ZWQ19ERUNPREVSKSAgICAgICs9IHg4Ni92dmMv YWxmLm8gICAgICAgICAgICAgXAorWDg2QVNNLU9CSlMtJChDT05GSUdfVlZDX0RFQ09ERVIpICAg ICAgKz0geDg2L3Z2Yy9kc3BfaW5pdC5vICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB4ODYvdnZjL2FsZi5vICAgICAgICAgICAgIFwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg4Ni92dmMvZG12ci5vICAgICAgICAg ICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDg2L3Z2Yy9t Yy5vICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB4ODYvdnZjL29mLm8gICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHg4Ni92dmMvc2FkLm8gICAgICAgICAgICAgXAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDg2L3Z2Yy9zYW8ubyAgICAgICAgICAg ICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ODYvdnZjL3Nh b18xMGJpdC5vICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHg4Ni9oMjZ4L2gyNjU2ZHNwLm8gICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeDg2L2gyNngvaDI2NTZfaW50ZXIubwpkaWZmIC0tZ2l0IGEvbGli YXZjb2RlYy94ODYveHZpZGlkY3RfaW5pdC5jIGIvbGliYXZjb2RlYy94ODYveHZpZGlkY3RfaW5p dC5jCmluZGV4IGM2Yzg3YjBjOTAuLjgxNTc1ZTkzZWIgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMv eDg2L3h2aWRpZGN0X2luaXQuYworKysgYi9saWJhdmNvZGVjL3g4Ni94dmlkaWRjdF9pbml0LmMK QEAgLTE2LDcgKzE2LDYgQEAKICAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKICAqLwogCi0jaW5jbHVk ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL2F0dHJpYnV0ZXMuaCIKICNpbmNsdWRl ICJsaWJhdnV0aWwvY3B1LmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL3g4Ni9jcHUuaCIKQEAgLTI3 LDcgKzI2LDYgQEAKIAogYXZfY29sZCB2b2lkIGZmX3h2aWRfaWRjdF9pbml0X3g4NihJRENURFNQ Q29udGV4dCAqYykKIHsKLSNpZiBIQVZFX1g4NkFTTQogICAgIGludCBjcHVfZmxhZ3MgPSBhdl9n ZXRfY3B1X2ZsYWdzKCk7CiAKICAgICBpZiAoRVhURVJOQUxfU1NFMihjcHVfZmxhZ3MpKSB7CkBA IC0zNiw1ICszNCw0IEBAIGF2X2NvbGQgdm9pZCBmZl94dmlkX2lkY3RfaW5pdF94ODYoSURDVERT UENvbnRleHQgKmMpCiAgICAgICAgIGMtPmlkY3QgICAgICA9IGZmX3h2aWRfaWRjdF9zc2UyOwog ICAgICAgICBjLT5wZXJtX3R5cGUgPSBGRl9JRENUX1BFUk1fU1NFMjsKICAgICB9Ci0jZW5kaWYg LyogSEFWRV9YODZBU00gKi8KIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveHZpZGlkY3QuYyBi L2xpYmF2Y29kZWMveHZpZGlkY3QuYwppbmRleCAzMTdlNGU4MmNkLi45ZDk3MWEyMWQ5IDEwMDY0 NAotLS0gYS9saWJhdmNvZGVjL3h2aWRpZGN0LmMKKysrIGIvbGliYXZjb2RlYy94dmlkaWRjdC5j CkBAIC0zMzYsNyArMzM2LDcgQEAgYXZfY29sZCB2b2lkIGZmX3h2aWRfaWRjdF9pbml0KElEQ1RE U1BDb250ZXh0ICpjKQogICAgIGMtPmlkY3QgICAgICA9IGZmX3h2aWRfaWRjdDsKICAgICBjLT5w ZXJtX3R5cGUgPSBGRl9JRENUX1BFUk1fTk9ORTsKIAotI2lmIEFSQ0hfWDg2CisjaWYgQVJDSF9Y ODYgJiYgSEFWRV9YODZBU00KICAgICBmZl94dmlkX2lkY3RfaW5pdF94ODYoYyk7CiAjZWxpZiBB UkNIX01JUFMKICAgICBmZl94dmlkX2lkY3RfaW5pdF9taXBzKGMpOwotLSAKMi41Mi4wCgoKRnJv bSA1MWYxMmJlZmFmMDYyMmRiZjc5ZWIxMTg0MDNlNGFmMzViOGU3NTI4IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBv dXRsb29rLmNvbT4KRGF0ZTogVGh1LCAyNyBOb3YgMjAyNSAxOTo1MDoxNSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMTU1LzMwNF0ge2xpYnthdmNvZGVjLHN3c2NhbGV9L3g4Ni8sfU1ha2VmaWxlOiBL aWxsIE1NWC1PQkpTCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsg Y2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpSZXZpZXdlZC1i eTogS2FjcGVyIE1pY2hhasWCb3cgPGthc3BlcjkzQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTog QW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQog TWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZmZidWls ZC9hcmNoLm1hayAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMSAtCiBsaWJhdmNvZGVjL3g4 Ni9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgfCA3ICsrLS0tLS0KIGxpYnN3c2NhbGUveDg2 L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGxpYnN3c2NhbGUveDg2L2hzY2Fs ZV9mYXN0X2JpbGluZWFyX3NpbWQuYyB8IDIgLS0KIDUgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRp b25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxl CmluZGV4IDJmNzhkYjAyYTUuLjRmYzBhZWJkMzMgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBi L01ha2VmaWxlCkBAIC0xMDcsNyArMTA3LDcgQEAgZmZidWlsZC8uY29uZmlnOiAkKENPTkZJR1VS QUJMRV9DT01QT05FTlRTKQogU1VCRElSX1ZBUlMgOj0gQ0xFQU5GSUxFUyBGRkxJQlMgSE9TVFBS T0dTIFRFU1RQUk9HUyBUT09MUyAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgIEhFQURF UlMgQVJDSF9IRUFERVJTIEJVSUxUX0hFQURFUlMgU0tJUEhFQURFUlMgICAgICAgICAgICBcCiAg ICAgICAgICAgICAgICBBUk1WNVRFLU9CSlMgQVJNVjYtT0JKUyBBUk1WOC1PQkpTIFZGUC1PQkpT IE5FT04tT0JKUyAgICAgXAotICAgICAgICAgICAgICAgQUxUSVZFQy1PQkpTIFZTWC1PQkpTIE1N WC1PQkpTIFg4NkFTTS1PQkpTICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgIEFMVElW RUMtT0JKUyBWU1gtT0JKUyBYODZBU00tT0JKUyAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg ICAgICAgICAgICAgICBNSVBTRlBVLU9CSlMgTUlQU0RTUFIyLU9CSlMgTUlQU0RTUC1PQkpTIE1T QS1PQkpTICAgICAgICAgXAogICAgICAgICAgICAgICAgTU1JLU9CSlMgTFNYLU9CSlMgTEFTWC1P QkpTIFJWLU9CSlMgUlZWLU9CSlMgUlZWQi1PQkpTICAgIFwKICAgICAgICAgICAgICAgIE9CSlMg U0hMSUJPQkpTIFNUTElCT0JKUyBIT1NUT0JKUyBURVNUT0JKUyBTSU1EMTI4LU9CSlMKZGlmZiAt LWdpdCBhL2ZmYnVpbGQvYXJjaC5tYWsgYi9mZmJ1aWxkL2FyY2gubWFrCmluZGV4IDE5N2UzMGJi ODkuLmVjNzlhZTc4NjYgMTAwNjQ0Ci0tLSBhL2ZmYnVpbGQvYXJjaC5tYWsKKysrIGIvZmZidWls ZC9hcmNoLm1hawpAQCAtMjMsNSArMjMsNCBAQCBPQkpTLSQoSEFWRV9SVl9aVkJCKSArPSAkKFJW VkItT0JKUykgICAgJChSVlZCLU9CSlMteWVzKQogCiBPQkpTLSQoSEFWRV9TSU1EMTI4KSArPSAk KFNJTUQxMjgtT0JKUykgJChTSU1EMTI4LU9CSlMteWVzKQogCi1PQkpTLSQoSEFWRV9NTVgpICAg ICArPSAkKE1NWC1PQkpTKSAgICAgJChNTVgtT0JKUy15ZXMpCiBPQkpTLSQoSEFWRV9YODZBU00p ICArPSAkKFg4NkFTTS1PQkpTKSAgJChYODZBU00tT0JKUy15ZXMpCmRpZmYgLS1naXQgYS9saWJh dmNvZGVjL3g4Ni9NYWtlZmlsZSBiL2xpYmF2Y29kZWMveDg2L01ha2VmaWxlCmluZGV4IDYzYjE2 ZjI0YzguLmJmNzIzZWQxYTYgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L01ha2VmaWxlCisr KyBiL2xpYmF2Y29kZWMveDg2L01ha2VmaWxlCkBAIC02NSw2ICs2NSw4IEBAIFg4NkFTTS1PQkpT LSQoQ09ORklHX1BST1JFU19ERUNPREVSKSAgICs9IHg4Ni9wcm9yZXNkc3BfaW5pdC5vCiBYODZB U00tT0JKUy0kKENPTkZJR19QUk9SRVNfUkFXX0RFQ09ERVIpICs9IHg4Ni9wcm9yZXNkc3BfaW5p dC5vCiBYODZBU00tT0JKUy0kKENPTkZJR19SVjQwX0RFQ09ERVIpICAgICArPSB4ODYvcnY0MGRz cF9pbml0Lm8KIFg4NkFTTS1PQkpTLSQoQ09ORklHX1NCQ19FTkNPREVSKSAgICAgICs9IHg4Ni9z YmNkc3BfaW5pdC5vCitPQkpTLSQoQ09ORklHX1NOT1dfREVDT0RFUikgICAgICAgICAgICArPSB4 ODYvc25vd2RzcC5vCitPQkpTLSQoQ09ORklHX1NOT1dfRU5DT0RFUikgICAgICAgICAgICArPSB4 ODYvc25vd2RzcC5vCiBYODZBU00tT0JKUy0kKENPTkZJR19TVlExX0VOQ09ERVIpICAgICArPSB4 ODYvc3ZxMWVuY19pbml0Lm8KIFg4NkFTTS1PQkpTLSQoQ09ORklHX1RBS19ERUNPREVSKSAgICAg ICs9IHg4Ni90YWtkc3BfaW5pdC5vCiBPQkpTLSQoQ09ORklHX1RSVUVIRF9ERUNPREVSKSAgICAg ICAgICArPSB4ODYvbWxwZHNwX2luaXQubwpAQCAtODEsMTEgKzgzLDYgQEAgWDg2QVNNLU9CSlMt JChDT05GSUdfVlA5X0RFQ09ERVIpICAgICAgKz0geDg2L3ZwOWRzcF9pbml0Lm8gICAgICAgICAg ICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ODYvdnA5ZHNw X2luaXRfMTZicHAubwogCiAKLSMgR0NDIGlubGluZSBhc3NlbWJseSBvcHRpbWl6YXRpb25zCi0j IGRlY29kZXJzL2VuY29kZXJzCi1NTVgtT0JKUy0kKENPTkZJR19TTk9XX0RFQ09ERVIpICAgICAg ICArPSB4ODYvc25vd2RzcC5vCi1NTVgtT0JKUy0kKENPTkZJR19TTk9XX0VOQ09ERVIpICAgICAg ICArPSB4ODYvc25vd2RzcC5vCi0KICMgc3Vic3lzdGVtcwogWDg2QVNNLU9CSlMtJChDT05GSUdf QUMzRFNQKSAgICAgICAgICAgKz0geDg2L2FjM2RzcC5vICAgICAgICAgICAgICAgICAgXAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDg2L2FjM2RzcF9kb3dubWl4 Lm8KZGlmZiAtLWdpdCBhL2xpYnN3c2NhbGUveDg2L01ha2VmaWxlIGIvbGlic3dzY2FsZS94ODYv TWFrZWZpbGUKaW5kZXggZjgyYjQxMWZiMS4uOWM5ZDI4NjYwMCAxMDA2NDQKLS0tIGEvbGlic3dz Y2FsZS94ODYvTWFrZWZpbGUKKysrIGIvbGlic3dzY2FsZS94ODYvTWFrZWZpbGUKQEAgLTQsNyAr NCw3IEBAIE9CSlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgKz0geDg2L3JnYjJyZ2IubyAg ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgeDg2L3N3c2NhbGUubyAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgeDg2L3l1djJyZ2IubyAgICAgICAgICAgICAgICAgICAgICAg IFwKIAotTU1YLU9CSlMgICAgICAgICAgICAgICAgICAgICAgICArPSB4ODYvaHNjYWxlX2Zhc3Rf YmlsaW5lYXJfc2ltZC5vICAgICAgXAorT0JKUy0kKEhBVkVfTU1YRVhUX0lOTElORSkgICAgICAr PSB4ODYvaHNjYWxlX2Zhc3RfYmlsaW5lYXJfc2ltZC5vICAgICAgXAogCiBPQkpTLSQoQ09ORklH X1hNTV9DTE9CQkVSX1RFU1QpICs9IHg4Ni93NjR4bW10ZXN0Lm8KIApkaWZmIC0tZ2l0IGEvbGli c3dzY2FsZS94ODYvaHNjYWxlX2Zhc3RfYmlsaW5lYXJfc2ltZC5jIGIvbGlic3dzY2FsZS94ODYv aHNjYWxlX2Zhc3RfYmlsaW5lYXJfc2ltZC5jCmluZGV4IDQ3Y2EwMjAwMDQuLmQ4YTRlNDQ0YjQg MTAwNjQ0Ci0tLSBhL2xpYnN3c2NhbGUveDg2L2hzY2FsZV9mYXN0X2JpbGluZWFyX3NpbWQuYwor KysgYi9saWJzd3NjYWxlL3g4Ni9oc2NhbGVfZmFzdF9iaWxpbmVhcl9zaW1kLmMKQEAgLTI3LDcg KzI3LDYgQEAKICNkZWZpbmUgUkVUIDB4QzMgLy8gbmVhciByZXR1cm4gb3Bjb2RlIGZvciB4ODYK ICNkZWZpbmUgUFJFRkVUQ0ggInByZWZldGNobnRhIgogCi0jaWYgSEFWRV9JTkxJTkVfQVNNCiBh dl9jb2xkIGludCBmZl9pbml0X2hzY2FsZXJfbW14ZXh0KGludCBkc3RXLCBpbnQgeEluYywgdWlu dDhfdCAqZmlsdGVyQ29kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludDE2X3QgKmZpbHRlciwgaW50MzJfdCAqZmlsdGVyUG9zLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50IG51bVNwbGl0cykKQEAgLTM1OCw0ICszNTcsMyBAQCB2 b2lkIGZmX2hjc2NhbGVfZmFzdF9tbXhleHQoU3dzSW50ZXJuYWwgKmMsIGludDE2X3QgKmRzdDEs IGludDE2X3QgKmRzdDIsCiAgICAgICAgIGRzdDJbaV0gPSBzcmMyW3NyY1ctMV0qMTI4OwogICAg IH0KIH0KLSNlbmRpZiAvL0hBVkVfSU5MSU5FX0FTTQotLSAKMi41Mi4wCgoKRnJvbSBjMmU2NTRl ZTk4ZDBiZGI4YjhjNmIyYWM1MDlmOTZjMWZjNGI4NTE3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNv bT4KRGF0ZTogVGh1LCAyNyBOb3YgMjAyNSAyMDo1MToxMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTU2LzMwNF0gYXZmaWx0ZXIveDg2L01ha2VmaWxlOiBPbmx5IGNvbXBpbGUgQVNNIGluaXQgZmls ZXMKIHdoZW4gWDg2QVNNIGlzIGVuYWJsZWQKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBl OiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhi aXQKClRvIGRvIHNvLCBzaW1wbHkgYWRkIHRoZXNlIGluaXQgZmlsZXMgdG8gWDg2QVNNLU9CSlMg aW5zdGVhZCBvZiBPQkpTCmluIHRoZSBNYWtlZmlsZS4gVGhlIGZvcm1lciBpcyBhbHJlYWR5IHVz ZWQgZm9yIHRoZSBhY3R1YWwgYXNzZW1ibHkKZmlsZXMsIGJ1dCB1c2luZyB0aGVtIGZvciB0aGUg QyBpbml0IGZpbGVzIGp1c3Qgd29ya3MsIGJlY2F1c2UgdGhlIGJ1aWxkCnN5c3RlbSB1c2VzIGZp bGUgZXh0ZW5zaW9ucyB0byBkZXJpdmUgd2hldGhlciBpdCBpcyBhIEMgb3IgYSBOQVNNIGZpbGUu CgpUaGlzIGF2b2lkcyBjb21waWxpbmcgdW51c2VkIGZ1bmN0aW9uIHN0dWJzIGFuZCBhbHNvIHJl ZHVjZXMgb3VyCnJlbGlhbmNlIG9uIERDRTogV2UgZG9uJ3QgYWRkICVpZiBjaGVja3MgdG8gdGhl IGFzbSBmaWxlcyBleGNlcHQKZm9yIEFWWCwgQVZYMiwgRk1BMywgRk1BNCwgWE9QIGFuZCBBVlg1 MTIsIHNvIGFsbCB0aGUgTU1YLVNTRTQKZnVuY3Rpb25zIHdpbGwgYmUgYXZhaWxhYmxlLiBJdCBh bHNvIGFsbG93cyB0byByZW1vdmUgSEFWRV9YODZBU00gY2hlY2tzCmluIHRoZXNlIGluaXQgZmls ZXMuCgpSZXZpZXdlZC1ieTogS2FjcGVyIE1pY2hhasWCb3cgPGthc3BlcjkzQGdtYWlsLmNvbT4K U2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0 bG9vay5jb20+Ci0tLQogbGliYXZmaWx0ZXIvYWZfYWZpcmRzcC5oICAgICAgICAgICAgICB8ICAg MiArLQogbGliYXZmaWx0ZXIvYWZfYW5sbWRuLmMgICAgICAgICAgICAgICB8ICAgMiArLQogbGli YXZmaWx0ZXIvYWZfdm9sdW1lLmMgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIv YXZmX3Nob3djcXQuYyAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvYndkaWZkc3Au YyAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvY29sb3JzcGFjZWRzcC5jICAg ICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvY29udm9sdXRpb24uaCAgICAgICAgICAgICB8 ICAgMiArLQogbGliYXZmaWx0ZXIvZl9lYnVyMTI4LmMgICAgICAgICAgICAgICB8ICAgMiArLQog bGliYXZmaWx0ZXIvcHNuci5jICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0 ZXIvc2NlbmVfc2FkLmMgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvdmZfYXRh ZGVub2lzZS5jICAgICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvdmZfYmxhY2tkZXRlY3Qu aCAgICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvdmZfYmxlbmRfaW5pdC5oICAgICAgICAg ICB8ICAgMiArLQogbGliYXZmaWx0ZXIvdmZfY29sb3JkZXRlY3Rkc3AuaCAgICAgICB8ICAgMiAr LQogbGliYXZmaWx0ZXIvdmZfY29udm9sdXRpb24uYyAgICAgICAgICB8ICAgMiArLQogbGliYXZm aWx0ZXIvdmZfZXEuaCAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvdmZf ZnJhbWVyYXRlLmMgICAgICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvdmZfZnNwcGRzcC5o ICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvdmZfZ2JsdXJfaW5pdC5oICAgICAg ICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvdmZfZ3JhZGZ1bi5jICAgICAgICAgICAgICB8ICAg MiArLQogbGliYXZmaWx0ZXIvdmZfaGZsaXBfaW5pdC5oICAgICAgICAgICB8ICAgMiArLQogbGli YXZmaWx0ZXIvdmZfaHFkbjNkLmMgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIv dmZfaWRldGRzcC5jICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvdmZfbGltaXRl ci5jICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvdmZfbHV0M2QuYyAgICAgICAg ICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvdmZfbWFza2VkY2xhbXAuYyAgICAgICAgICB8 ICAgMiArLQogbGliYXZmaWx0ZXIvdmZfbWFza2VkbWVyZ2UuYyAgICAgICAgICB8ICAgMiArLQog bGliYXZmaWx0ZXIvdmZfbmxtZWFuc19pbml0LmggICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0 ZXIvdmZfb3ZlcmxheS5jICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvdmZfcHA3 LmMgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvdmZfcHVsbHVwLmMgICAg ICAgICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvdmZfcmVtb3ZlZ3JhaW4uYyAgICAgICAg ICB8ICAgMiArLQogbGliYXZmaWx0ZXIvdmZfc3NpbS5jICAgICAgICAgICAgICAgICB8ICAgMiAr LQogbGliYXZmaWx0ZXIvdmZfc3RlcmVvM2QuYyAgICAgICAgICAgICB8ICAgMiArLQogbGliYXZm aWx0ZXIvdmZfdGhyZXNob2xkX2luaXQuaCAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvdmZf dGludGVybGFjZS5jICAgICAgICAgICB8ICAgNCArLQogbGliYXZmaWx0ZXIvdmZfdHJhbnNwb3Nl LmMgICAgICAgICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvdmZfdjM2MC5jICAgICAgICAgICAg ICAgICB8ICAgMiArLQogbGliYXZmaWx0ZXIvdmZfdzNmZGlmLmMgICAgICAgICAgICAgICB8ICAg MiArLQogbGliYXZmaWx0ZXIvdmZfeWFkaWYuYyAgICAgICAgICAgICAgICB8ICAgMiArLQogbGli YXZmaWx0ZXIveDg2L01ha2VmaWxlICAgICAgICAgICAgICB8IDE1NSArKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLQogbGliYXZmaWx0ZXIveDg2L3NjZW5lX3NhZF9pbml0LmMgICAgICB8ICAgNCAt CiBsaWJhdmZpbHRlci94ODYvdmZfY29sb3JkZXRlY3RfaW5pdC5jIHwgICA0IC0KIGxpYmF2Zmls dGVyL3g4Ni92Zl9lcV9pbml0LmMgICAgICAgICAgfCAgIDQgLQogbGliYXZmaWx0ZXIveDg2L3Zm X2dyYWRmdW5faW5pdC5jICAgICB8ICAgNSAtCiBsaWJhdmZpbHRlci94ODYvdmZfaHFkbjNkX2lu aXQuYyAgICAgIHwgICAzIC0KIGxpYmF2ZmlsdGVyL3g4Ni92Zl9pZGV0ZHNwX2luaXQuYyAgICAg fCAgIDYgLQogbGliYXZmaWx0ZXIveDg2L3ZmX3B1bGx1cF9pbml0LmMgICAgICB8ICAgMyAtCiA0 OCBmaWxlcyBjaGFuZ2VkLCAxMDcgaW5zZXJ0aW9ucygrKSwgMTU5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL2FmX2FmaXJkc3AuaCBiL2xpYmF2ZmlsdGVyL2FmX2FmaXJk c3AuaAppbmRleCBhYzY4NDQ3MzIzLi40Y2E4NTlkZmQyIDEwMDY0NAotLS0gYS9saWJhdmZpbHRl ci9hZl9hZmlyZHNwLmgKKysrIGIvbGliYXZmaWx0ZXIvYWZfYWZpcmRzcC5oCkBAIC03Nyw3ICs3 Nyw3IEBAIGF2X3VudXNlZCBzdGF0aWMgdm9pZCBmZl9hZmlyX2luaXQoQXVkaW9GSVJEU1BDb250 ZXh0ICpkc3ApCiAKICNpZiBBUkNIX1JJU0NWCiAgICAgZmZfYWZpcl9pbml0X3Jpc2N2KGRzcCk7 Ci0jZWxpZiBBUkNIX1g4NgorI2VsaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBmZl9h ZmlyX2luaXRfeDg2KGRzcCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL2Fm X2FubG1kbi5jIGIvbGliYXZmaWx0ZXIvYWZfYW5sbWRuLmMKaW5kZXggYjE5NDRmYjJkNy4uY2U5 MWViMWNmZCAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvYWZfYW5sbWRuLmMKKysrIGIvbGliYXZm aWx0ZXIvYWZfYW5sbWRuLmMKQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lkIGZmX2FubG1kbl9pbml0 KEF1ZGlvTkxNRE5EU1BDb250ZXh0ICpkc3ApCiAgICAgZHNwLT5jb21wdXRlX2Rpc3RhbmNlX3Nz ZCA9IGNvbXB1dGVfZGlzdGFuY2Vfc3NkX2M7CiAgICAgZHNwLT5jb21wdXRlX2NhY2hlICAgICAg ICA9IGNvbXB1dGVfY2FjaGVfYzsKIAotI2lmIEFSQ0hfWDg2CisjaWYgQVJDSF9YODYgJiYgSEFW RV9YODZBU00KICAgICBmZl9hbmxtZG5faW5pdF94ODYoZHNwKTsKICNlbmRpZgogfQpkaWZmIC0t Z2l0IGEvbGliYXZmaWx0ZXIvYWZfdm9sdW1lLmMgYi9saWJhdmZpbHRlci9hZl92b2x1bWUuYwpp bmRleCA0NzFiZmZlY2ViLi42MDNiOTJmNGFmIDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci9hZl92 b2x1bWUuYworKysgYi9saWJhdmZpbHRlci9hZl92b2x1bWUuYwpAQCAtMjM2LDcgKzIzNiw3IEBA IHN0YXRpYyBhdl9jb2xkIHZvaWQgdm9sdW1lX2luaXQoVm9sdW1lQ29udGV4dCAqdm9sKQogICAg ICAgICBicmVhazsKICAgICB9CiAKLSNpZiBBUkNIX1g4NgorI2lmIEFSQ0hfWDg2ICYmIEhBVkVf WDg2QVNNCiAgICAgZmZfdm9sdW1lX2luaXRfeDg2KHZvbCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdp dCBhL2xpYmF2ZmlsdGVyL2F2Zl9zaG93Y3F0LmMgYi9saWJhdmZpbHRlci9hdmZfc2hvd2NxdC5j CmluZGV4IGFiZmFlMWY4ZmIuLjQyOGU4YmZmNjUgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL2F2 Zl9zaG93Y3F0LmMKKysrIGIvbGliYXZmaWx0ZXIvYXZmX3Nob3djcXQuYwpAQCAtMTQxNSw3ICsx NDE1LDcgQEAgc3RhdGljIGludCBjb25maWdfb3V0cHV0KEFWRmlsdGVyTGluayAqb3V0bGluaykK ICAgICAgICAgcy0+dXBkYXRlX3Nvbm8gPSB1cGRhdGVfc29ub195dXY7CiAgICAgfQogCi0jaWYg QVJDSF9YODYKKyNpZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX3Nob3djcXRfaW5p dF94ODYocyk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvYndkaWZkc3AuYyBi L2xpYmF2ZmlsdGVyL2J3ZGlmZHNwLmMKaW5kZXggZTg3ZmU0MTRlMC4uNThlMThmMGE5MiAxMDA2 NDQKLS0tIGEvbGliYXZmaWx0ZXIvYndkaWZkc3AuYworKysgYi9saWJhdmZpbHRlci9id2RpZmRz cC5jCkBAIC0yMTgsNyArMjE4LDcgQEAgYXZfY29sZCB2b2lkIGZmX2J3ZGlmX2luaXRfZmlsdGVy X2xpbmUoQldESUZEU1BDb250ZXh0ICpzLCBpbnQgYml0X2RlcHRoKQogICAgICAgICBzLT5maWx0 ZXJfZWRnZSAgPSBmZl9id2RpZl9maWx0ZXJfZWRnZV9jOwogICAgIH0KIAotI2lmIEFSQ0hfWDg2 CisjaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBmZl9id2RpZl9pbml0X3g4NihzLCBi aXRfZGVwdGgpOwogI2VsaWYgQVJDSF9BQVJDSDY0CiAgICAgZmZfYndkaWZfaW5pdF9hYXJjaDY0 KHMsIGJpdF9kZXB0aCk7CmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci9jb2xvcnNwYWNlZHNwLmMg Yi9saWJhdmZpbHRlci9jb2xvcnNwYWNlZHNwLmMKaW5kZXggNzIyMDdmZmFmMy4uOWM1MTM4NWRl ZCAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvY29sb3JzcGFjZWRzcC5jCisrKyBiL2xpYmF2Zmls dGVyL2NvbG9yc3BhY2Vkc3AuYwpAQCAtMTQzLDcgKzE0Myw3IEBAIHZvaWQgZmZfY29sb3JzcGFj ZWRzcF9pbml0KENvbG9yU3BhY2VEU1BDb250ZXh0ICpkc3ApCiAKICAgICBkc3AtPm11bHRpcGx5 M3gzID0gbXVsdGlwbHkzeDNfYzsKIAotI2lmIEFSQ0hfWDg2CisjaWYgQVJDSF9YODYgJiYgSEFW RV9YODZBU00KICAgICBmZl9jb2xvcnNwYWNlZHNwX3g4Nl9pbml0KGRzcCk7CiAjZW5kaWYKIH0K ZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL2NvbnZvbHV0aW9uLmggYi9saWJhdmZpbHRlci9jb252 b2x1dGlvbi5oCmluZGV4IDExOTZjMWZjZGYuLmY4OGI3MDhmYWIgMTAwNjQ0Ci0tLSBhL2xpYmF2 ZmlsdGVyL2NvbnZvbHV0aW9uLmgKKysrIGIvbGliYXZmaWx0ZXIvY29udm9sdXRpb24uaApAQCAt MTMyLDcgKzEzMiw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmZl9zb2JlbF9pbml0KENvbnZvbHV0 aW9uQ29udGV4dCAqcywgaW50IGRlcHRoLCBpbnQgbmJfcGxhbmVzCiAgICAgaWYgKHMtPmRlcHRo ID4gOCkKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspCiAgICAgICAgICAgICBz LT5maWx0ZXJbaV0gPSBmaWx0ZXIxNl9zb2JlbDsKLSNpZiBBUkNIX1g4Nl82NAorI2lmIEFSQ0hf WDg2XzY0ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfc29iZWxfaW5pdF94ODYocywgZGVwdGgsIG5i X3BsYW5lcyk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL2ZfZWJ1cjEyOC5j IGIvbGliYXZmaWx0ZXIvZl9lYnVyMTI4LmMKaW5kZXggODRkOGU0NDAzNS4uZmE2ZjEzNzVhMyAx MDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvZl9lYnVyMTI4LmMKKysrIGIvbGliYXZmaWx0ZXIvZl9l YnVyMTI4LmMKQEAgLTUwMiw3ICs1MDIsNyBAQCBzdGF0aWMgaW50IGNvbmZpZ19hdWRpb19vdXRw dXQoQVZGaWx0ZXJMaW5rICpvdXRsaW5rKQogICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5P TUVNKTsKICAgICB9CiAKLSNpZiBBUkNIX1g4NgorI2lmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNN CiAgICAgZmZfZWJ1cjEyOF9pbml0X3g4NigmZWJ1cjEyOC0+ZHNwLCBuYl9jaGFubmVscyk7CiAj ZW5kaWYKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3BzbnIuYyBiL2xp YmF2ZmlsdGVyL3BzbnIuYwppbmRleCBhNmI3ZjU5NjljLi44OWEyMDVmNWNmIDEwMDY0NAotLS0g YS9saWJhdmZpbHRlci9wc25yLmMKKysrIGIvbGliYXZmaWx0ZXIvcHNuci5jCkBAIC01OCw3ICs1 OCw3IEBAIHN0YXRpYyB1aW50NjRfdCBzc2VfbGluZV8xNmJpdChjb25zdCB1aW50OF90ICpfbWFp bl9saW5lLCBjb25zdCB1aW50OF90ICpfcmVmX2xpCiB2b2lkIGZmX3BzbnJfaW5pdChQU05SRFNQ Q29udGV4dCAqZHNwLCBpbnQgYnBwKQogewogICAgIGRzcC0+c3NlX2xpbmUgPSBicHAgPiA4ID8g c3NlX2xpbmVfMTZiaXQgOiBzc2VfbGluZV84Yml0OwotI2lmIEFSQ0hfWDg2CisjaWYgQVJDSF9Y ODYgJiYgSEFWRV9YODZBU00KICAgICBmZl9wc25yX2luaXRfeDg2KGRzcCwgYnBwKTsKICNlbmRp ZgogfQpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvc2NlbmVfc2FkLmMgYi9saWJhdmZpbHRlci9z Y2VuZV9zYWQuYwppbmRleCAwNWRkOTdlMDU1Li41NjE3N2NlZDc2IDEwMDY0NAotLS0gYS9saWJh dmZpbHRlci9zY2VuZV9zYWQuYworKysgYi9saWJhdmZpbHRlci9zY2VuZV9zYWQuYwpAQCAtNTks NyArNTksNyBAQCB2b2lkIGZmX3NjZW5lX3NhZF9jKFNDRU5FX1NBRF9QQVJBTVMpCiBmZl9zY2Vu ZV9zYWRfZm4gZmZfc2NlbmVfc2FkX2dldF9mbihpbnQgZGVwdGgpCiB7CiAgICAgZmZfc2NlbmVf c2FkX2ZuIHNhZCA9IE5VTEw7Ci0jaWYgQVJDSF9YODYKKyNpZiBBUkNIX1g4NiAmJiBIQVZFX1g4 NkFTTQogICAgIHNhZCA9IGZmX3NjZW5lX3NhZF9nZXRfZm5feDg2KGRlcHRoKTsKICNlbmRpZgog ICAgIGlmICghc2FkKSB7CmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92Zl9hdGFkZW5vaXNlLmMg Yi9saWJhdmZpbHRlci92Zl9hdGFkZW5vaXNlLmMKaW5kZXggY2RlYmRiN2YxNC4uZjQ0M2QzNGRl OCAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvdmZfYXRhZGVub2lzZS5jCisrKyBiL2xpYmF2Zmls dGVyL3ZmX2F0YWRlbm9pc2UuYwpAQCAtNDI2LDcgKzQyNiw3IEBAIHN0YXRpYyBpbnQgY29uZmln X2lucHV0KEFWRmlsdGVyTGluayAqaW5saW5rKQogICAgICAgICB9CiAgICAgfQogCi0jaWYgQVJD SF9YODYKKyNpZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX2F0YWRlbm9pc2VfaW5p dF94ODYoJnMtPmRzcCwgZGVwdGgsIHMtPmFsZ29yaXRobSwgcy0+c2lnbWEpOwogI2VuZGlmCiAK ZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2JsYWNrZGV0ZWN0LmggYi9saWJhdmZpbHRlci92 Zl9ibGFja2RldGVjdC5oCmluZGV4IDQ4MzUwNTY4YTkuLmU1MWJlZGEzYTQgMTAwNjQ0Ci0tLSBh L2xpYmF2ZmlsdGVyL3ZmX2JsYWNrZGV0ZWN0LmgKKysrIGIvbGliYXZmaWx0ZXIvdmZfYmxhY2tk ZXRlY3QuaApAQCAtNjEsNyArNjEsNyBAQCBzdGF0aWMgdW5zaWduZWQgY291bnRfcGl4ZWxzMTZf Yyhjb25zdCB1aW50OF90ICpzcmMsIHB0cmRpZmZfdCBzdHJpZGUsCiBzdGF0aWMgaW5saW5lIGZm X2JsYWNrZGV0ZWN0X2ZuIGZmX2JsYWNrZGV0ZWN0X2dldF9mbihpbnQgZGVwdGgpCiB7CiAgICAg ZmZfYmxhY2tkZXRlY3RfZm4gZm4gPSBOVUxMOwotI2lmIEFSQ0hfWDg2CisjaWYgQVJDSF9YODYg JiYgSEFWRV9YODZBU00KICAgICBmbiA9IGZmX2JsYWNrZGV0ZWN0X2dldF9mbl94ODYoZGVwdGgp OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2JsZW5kX2luaXQuaCBiL2xp YmF2ZmlsdGVyL3ZmX2JsZW5kX2luaXQuaAppbmRleCAyOTdjYTA1MTRmLi40ZWUwYjk0YmE1IDEw MDY0NAotLS0gYS9saWJhdmZpbHRlci92Zl9ibGVuZF9pbml0LmgKKysrIGIvbGliYXZmaWx0ZXIv dmZfYmxlbmRfaW5pdC5oCkBAIC0xOTAsNyArMTkwLDcgQEAgYXZfdW51c2VkIHN0YXRpYyB2b2lk IGZmX2JsZW5kX2luaXQoRmlsdGVyUGFyYW1zICpwYXJhbSwgaW50IGRlcHRoKQogICAgICAgICAg ICAgcGFyYW0tPmJsZW5kID0gZGVwdGggPiA4ID8gZGVwdGggPiAxNiA/IGJsZW5kX2NvcHlib3R0 b21fMzIgOiBibGVuZF9jb3B5Ym90dG9tXzE2IDogYmxlbmRfY29weWJvdHRvbV84OwogICAgIH0K IAotI2lmIEFSQ0hfWDg2CisjaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBmZl9ibGVu ZF9pbml0X3g4NihwYXJhbSwgZGVwdGgpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9saWJhdmZp bHRlci92Zl9jb2xvcmRldGVjdGRzcC5oIGIvbGliYXZmaWx0ZXIvdmZfY29sb3JkZXRlY3Rkc3Au aAppbmRleCA3YTU3ZTdhYTczLi5jYTQ3MjdiNTg5IDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci92 Zl9jb2xvcmRldGVjdGRzcC5oCisrKyBiL2xpYmF2ZmlsdGVyL3ZmX2NvbG9yZGV0ZWN0ZHNwLmgK QEAgLTIwOCw3ICsyMDgsNyBAQCBmZl9jb2xvcl9kZXRlY3RfZHNwX2luaXQoRkZDb2xvckRldGVj dERTUENvbnRleHQgKmRzcCwgaW50IGRlcHRoLAogCiAjaWYgQVJDSF9BQVJDSDY0CiAgICAgZmZf Y29sb3JfZGV0ZWN0X2RzcF9pbml0X2FhcmNoNjQoZHNwLCBkZXB0aCwgY29sb3JfcmFuZ2UpOwot I2VsaWYgQVJDSF9YODYKKyNlbGlmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfY29s b3JfZGV0ZWN0X2RzcF9pbml0X3g4Nihkc3AsIGRlcHRoLCBjb2xvcl9yYW5nZSk7CiAjZW5kaWYK IH0KZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2NvbnZvbHV0aW9uLmMgYi9saWJhdmZpbHRl ci92Zl9jb252b2x1dGlvbi5jCmluZGV4IDFmNGVmZWE5YWEuLmNlNDJkZjJjZGUgMTAwNjQ0Ci0t LSBhL2xpYmF2ZmlsdGVyL3ZmX2NvbnZvbHV0aW9uLmMKKysrIGIvbGliYXZmaWx0ZXIvdmZfY29u dm9sdXRpb24uYwpAQCAtODAwLDcgKzgwMCw3IEBAIHN0YXRpYyBpbnQgcGFyYW1faW5pdChBVkZp bHRlckNvbnRleHQgKmN0eCkKICAgICAgICAgICAgICAgICAgICAgcy0+ZmlsdGVyW3BdID0gZmls dGVyMTZfN3g3OwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0jaWYgQ09ORklHX0NPTlZPTFVU SU9OX0ZJTFRFUiAmJiBBUkNIX1g4Nl82NAorI2lmIENPTkZJR19DT05WT0xVVElPTl9GSUxURVIg JiYgQVJDSF9YODZfNjQgJiYgSEFWRV9YODZBU00KICAgICAgICAgZmZfY29udm9sdXRpb25faW5p dF94ODYocyk7CiAjZW5kaWYKICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoY3R4LT5maWx0ZXItPm5h bWUsICJwcmV3aXR0IikpIHsKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2VxLmggYi9saWJh dmZpbHRlci92Zl9lcS5oCmluZGV4IDE1NmY2YzYxZmUuLmFiNWU5OGU4M2YgMTAwNjQ0Ci0tLSBh L2xpYmF2ZmlsdGVyL3ZmX2VxLmgKKysrIGIvbGliYXZmaWx0ZXIvdmZfZXEuaApAQCAtMTIxLDcg KzEyMSw3IEBAIHZvaWQgZmZfZXFfaW5pdF94ODYoRVFDb250ZXh0ICplcSk7CiBhdl91bnVzZWQg c3RhdGljIHZvaWQgZmZfZXFfaW5pdChFUUNvbnRleHQgKmVxKQogewogICAgIGVxLT5wcm9jZXNz ID0gcHJvY2Vzc19jOwotI2lmIEFSQ0hfWDg2CisjaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00K ICAgICBmZl9lcV9pbml0X3g4NihlcSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2xpYmF2Zmls dGVyL3ZmX2ZyYW1lcmF0ZS5jIGIvbGliYXZmaWx0ZXIvdmZfZnJhbWVyYXRlLmMKaW5kZXggYTY1 OThmOTdiYi4uNDY4MDQyZTdkYiAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvdmZfZnJhbWVyYXRl LmMKKysrIGIvbGliYXZmaWx0ZXIvdmZfZnJhbWVyYXRlLmMKQEAgLTI2Miw3ICsyNjIsNyBAQCB2 b2lkIGZmX2ZyYW1lcmF0ZV9pbml0KEZyYW1lUmF0ZUNvbnRleHQgKnMpCiAgICAgICAgIHMtPmJs ZW5kX2ZhY3Rvcl9tYXggPSAxIDw8IEJMRU5EX0ZBQ1RPUl9ERVBUSCgxNik7CiAgICAgICAgIHMt PmJsZW5kID0gYmxlbmRfZnJhbWVzMTZfYzsKICAgICB9Ci0jaWYgQVJDSF9YODYKKyNpZiBBUkNI X1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX2ZyYW1lcmF0ZV9pbml0X3g4NihzKTsKICNlbmRp ZgogfQpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvdmZfZnNwcGRzcC5oIGIvbGliYXZmaWx0ZXIv dmZfZnNwcGRzcC5oCmluZGV4IDVhMmYxYWYwMzAuLjdiYTg0ODViNGIgMTAwNjQ0Ci0tLSBhL2xp YmF2ZmlsdGVyL3ZmX2ZzcHBkc3AuaAorKysgYi9saWJhdmZpbHRlci92Zl9mc3BwZHNwLmgKQEAg LTgxLDcgKzgxLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGZmX2ZzcHBkc3BfaW5pdChGU1BQRFNQ Q29udGV4dCAqZnNwcCkKICAgICBmc3BwLT5yb3dfaWRjdCAgICAgPSBmZl9yb3dfaWRjdF9jOwog ICAgIGZzcHAtPnJvd19mZGN0ICAgICA9IGZmX3Jvd19mZGN0X2M7CiAKLSNpZiBBUkNIX1g4Ngor I2lmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfZnNwcGRzcF9pbml0X3g4Nihmc3Bw KTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvdmZfZ2JsdXJfaW5pdC5oIGIv bGliYXZmaWx0ZXIvdmZfZ2JsdXJfaW5pdC5oCmluZGV4IDY3Y2E0NmY5NWUuLjEyODkyMzk3Nzgg MTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3ZmX2dibHVyX2luaXQuaAorKysgYi9saWJhdmZpbHRl ci92Zl9nYmx1cl9pbml0LmgKQEAgLTExNSw3ICsxMTUsNyBAQCBhdl91bnVzZWQgc3RhdGljIHZv aWQgZmZfZ2JsdXJfaW5pdChHQmx1ckNvbnRleHQgKnMpCiAgICAgcy0+aG9yaXpfc2xpY2UgPSBo b3Jpel9zbGljZV9jOwogICAgIHMtPnZlcnRpX3NsaWNlID0gdmVydGlfc2xpY2VfYzsKICAgICBz LT5wb3N0c2NhbGVfc2xpY2UgPSBwb3N0c2NhbGVfYzsKLSNpZiBBUkNIX1g4NgorI2lmIEFSQ0hf WDg2ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfZ2JsdXJfaW5pdF94ODYocyk7CiAjZW5kaWYKIH0K ZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2dyYWRmdW4uYyBiL2xpYmF2ZmlsdGVyL3ZmX2dy YWRmdW4uYwppbmRleCA0ZjIxMWMzZGRmLi5jMzM2NTA1NzZhIDEwMDY0NAotLS0gYS9saWJhdmZp bHRlci92Zl9ncmFkZnVuLmMKKysrIGIvbGliYXZmaWx0ZXIvdmZfZ3JhZGZ1bi5jCkBAIC0xMzAs NyArMTMwLDcgQEAgc3RhdGljIGF2X2NvbGQgaW50IGluaXQoQVZGaWx0ZXJDb250ZXh0ICpjdHgp CiAgICAgcy0+Ymx1cl9saW5lICAgPSBmZl9ncmFkZnVuX2JsdXJfbGluZV9jOwogICAgIHMtPmZp bHRlcl9saW5lID0gZmZfZ3JhZGZ1bl9maWx0ZXJfbGluZV9jOwogCi0jaWYgQVJDSF9YODYKKyNp ZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX2dyYWRmdW5faW5pdF94ODYocyk7CiAj ZW5kaWYKIApkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvdmZfaGZsaXBfaW5pdC5oIGIvbGliYXZm aWx0ZXIvdmZfaGZsaXBfaW5pdC5oCmluZGV4IDBmNWIwNjA3YzIuLjk3Y2RlMTViMmYgMTAwNjQ0 Ci0tLSBhL2xpYmF2ZmlsdGVyL3ZmX2hmbGlwX2luaXQuaAorKysgYi9saWJhdmZpbHRlci92Zl9o ZmxpcF9pbml0LmgKQEAgLTEwMiw3ICsxMDIsNyBAQCBhdl91bnVzZWQgc3RhdGljIGludCBmZl9o ZmxpcF9pbml0KEZsaXBDb250ZXh0ICpzLCBpbnQgc3RlcFs0XSwgaW50IG5iX3BsYW5lcykKICAg ICAgICAgICAgIHJldHVybiBBVkVSUk9SX0JVRzsKICAgICAgICAgfQogICAgIH0KLSNpZiBBUkNI X1g4NgorI2lmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfaGZsaXBfaW5pdF94ODYo cywgc3RlcCwgbmJfcGxhbmVzKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92 Zl9ocWRuM2QuYyBiL2xpYmF2ZmlsdGVyL3ZmX2hxZG4zZC5jCmluZGV4IDExMzY5MzFiOWIuLmY3 OWVmMDRjZDMgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3ZmX2hxZG4zZC5jCisrKyBiL2xpYmF2 ZmlsdGVyL3ZmX2hxZG4zZC5jCkBAIC0yNzksNyArMjc5LDcgQEAgc3RhdGljIGludCBjb25maWdf aW5wdXQoQVZGaWx0ZXJMaW5rICppbmxpbmspCiAKICAgICBjYWxjX2NvZWZzKGN0eCk7CiAKLSNp ZiBBUkNIX1g4NgorI2lmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfaHFkbjNkX2lu aXRfeDg2KHMpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2lkZXRkc3Au YyBiL2xpYmF2ZmlsdGVyL3ZmX2lkZXRkc3AuYwppbmRleCA2OGEyYTI2N2Q0Li5kN2MyNzFkZjIw IDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci92Zl9pZGV0ZHNwLmMKKysrIGIvbGliYXZmaWx0ZXIv dmZfaWRldGRzcC5jCkBAIC01Niw3ICs1Niw3IEBAIGludCBmZl9pZGV0X2ZpbHRlcl9saW5lX2Nf MTZiaXQoY29uc3QgdWludDhfdCAqYSwgY29uc3QgdWludDhfdCAqYiwgY29uc3QgdWludDhfCiB2 b2lkIGF2X2NvbGQgZmZfaWRldF9kc3BfaW5pdChJREVURFNQQ29udGV4dCAqZHNwLCBpbnQgZGVw dGgpCiB7CiAgICAgZHNwLT5maWx0ZXJfbGluZSA9IGRlcHRoID4gOCA/IGZmX2lkZXRfZmlsdGVy X2xpbmVfY18xNmJpdCA6IGZmX2lkZXRfZmlsdGVyX2xpbmVfYzsKLSNpZiBBUkNIX1g4NgorI2lm IEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfaWRldF9kc3BfaW5pdF94ODYoZHNwLCBk ZXB0aCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2xpbWl0ZXIuYyBi L2xpYmF2ZmlsdGVyL3ZmX2xpbWl0ZXIuYwppbmRleCA2MWY2YzllMWJmLi40ZjUwYWNlMzg2IDEw MDY0NAotLS0gYS9saWJhdmZpbHRlci92Zl9saW1pdGVyLmMKKysrIGIvbGliYXZmaWx0ZXIvdmZf bGltaXRlci5jCkBAIC0xNDAsNyArMTQwLDcgQEAgc3RhdGljIGludCBjb25maWdfaW5wdXQoQVZG aWx0ZXJMaW5rICppbmxpbmspCiAgICAgICAgIHMtPmRzcC5saW1pdGVyID0gbGltaXRlcjE2Owog ICAgIH0KIAotI2lmIEFSQ0hfWDg2CisjaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBm Zl9saW1pdGVyX2luaXRfeDg2KCZzLT5kc3AsIGRlc2MtPmNvbXBbMF0uZGVwdGgpOwogI2VuZGlm CiAKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2x1dDNkLmMgYi9saWJhdmZpbHRlci92Zl9s dXQzZC5jCmluZGV4IDQ2YWZlMzZmNmMuLjRlZDYwOWQ4MTAgMTAwNjQ0Ci0tLSBhL2xpYmF2Zmls dGVyL3ZmX2x1dDNkLmMKKysrIGIvbGliYXZmaWx0ZXIvdmZfbHV0M2QuYwpAQCAtMTE1Miw3ICsx MTUyLDcgQEAgc3RhdGljIGludCBjb25maWdfaW5wdXQoQVZGaWx0ZXJMaW5rICppbmxpbmspCiAg ICAgICAgIGF2X2Fzc2VydDAoMCk7CiAgICAgfQogCi0jaWYgQVJDSF9YODYKKyNpZiBBUkNIX1g4 NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX2x1dDNkX2luaXRfeDg2KGx1dDNkLCBkZXNjKTsKICNl bmRpZgogCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92Zl9tYXNrZWRjbGFtcC5jIGIvbGliYXZm aWx0ZXIvdmZfbWFza2VkY2xhbXAuYwppbmRleCAzOWJkNTk2ODI3Li42MDZhZmQzOTEzIDEwMDY0 NAotLS0gYS9saWJhdmZpbHRlci92Zl9tYXNrZWRjbGFtcC5jCisrKyBiL2xpYmF2ZmlsdGVyL3Zm X21hc2tlZGNsYW1wLmMKQEAgLTIwOCw3ICsyMDgsNyBAQCBzdGF0aWMgaW50IGNvbmZpZ19pbnB1 dChBVkZpbHRlckxpbmsgKmlubGluaykKICAgICBlbHNlCiAgICAgICAgIHMtPmRzcC5tYXNrZWRj bGFtcCA9IG1hc2tlZGNsYW1wMTY7CiAKLSNpZiBBUkNIX1g4NgorI2lmIEFSQ0hfWDg2ICYmIEhB VkVfWDg2QVNNCiAgICAgZmZfbWFza2VkY2xhbXBfaW5pdF94ODYoJnMtPmRzcCwgcy0+ZGVwdGgp OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX21hc2tlZG1lcmdlLmMgYi9s aWJhdmZpbHRlci92Zl9tYXNrZWRtZXJnZS5jCmluZGV4IDkzZGEwYTBlZGYuLjE4Yjk2MDAzNGUg MTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3ZmX21hc2tlZG1lcmdlLmMKKysrIGIvbGliYXZmaWx0 ZXIvdmZfbWFza2VkbWVyZ2UuYwpAQCAtMjAxLDcgKzIwMSw3IEBAIHN0YXRpYyBpbnQgY29uZmln X2lucHV0KEFWRmlsdGVyTGluayAqaW5saW5rKQogICAgIGVsc2UKICAgICAgICAgcy0+bWFza2Vk bWVyZ2UgPSBtYXNrZWRtZXJnZTMyOwogCi0jaWYgQVJDSF9YODYKKyNpZiBBUkNIX1g4NiAmJiBI QVZFX1g4NkFTTQogICAgIGZmX21hc2tlZG1lcmdlX2luaXRfeDg2KHMpOwogI2VuZGlmCiAKZGlm ZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX25sbWVhbnNfaW5pdC5oIGIvbGliYXZmaWx0ZXIvdmZf bmxtZWFuc19pbml0LmgKaW5kZXggM2E1MzNhMDc4YS4uY2YzMWU3NGJkNyAxMDA2NDQKLS0tIGEv bGliYXZmaWx0ZXIvdmZfbmxtZWFuc19pbml0LmgKKysrIGIvbGliYXZmaWx0ZXIvdmZfbmxtZWFu c19pbml0LmgKQEAgLTEzMSw3ICsxMzEsNyBAQCBhdl91bnVzZWQgc3RhdGljIHZvaWQgZmZfbmxt ZWFuc19pbml0KE5MTWVhbnNEU1BDb250ZXh0ICpkc3ApCiAKICNpZiBBUkNIX0FBUkNINjQKICAg ICBmZl9ubG1lYW5zX2luaXRfYWFyY2g2NChkc3ApOwotI2VsaWYgQVJDSF9YODYKKyNlbGlmIEFS Q0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfbmxtZWFuc19pbml0X3g4Nihkc3ApOwogI2Vu ZGlmCiB9CmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92Zl9vdmVybGF5LmMgYi9saWJhdmZpbHRl ci92Zl9vdmVybGF5LmMKaW5kZXggNjczYzkyZDZhZi4uOTE0OWQwNjFiOSAxMDA2NDQKLS0tIGEv bGliYXZmaWx0ZXIvdmZfb3ZlcmxheS5jCisrKyBiL2xpYmF2ZmlsdGVyL3ZmX292ZXJsYXkuYwpA QCAtODM1LDcgKzgzNSw3IEBAIHN0YXRpYyBpbnQgaW5pdF9zbGljZV9mbihBVkZpbHRlckNvbnRl eHQgKmN0eCkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0jaWYgQVJDSF9YODYKKyNpZiBBUkNI X1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZmX292ZXJsYXlfaW5pdF94ODYoY3R4KTsKICNlbmRp ZgogCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92Zl9wcDcuYyBiL2xpYmF2ZmlsdGVyL3ZmX3Bw Ny5jCmluZGV4IGU3YWFlODdkZjAuLjdiNjUzYjk3N2YgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVy L3ZmX3BwNy5jCisrKyBiL2xpYmF2ZmlsdGVyL3ZmX3BwNy5jCkBAIC0zMDUsNyArMzA1LDcgQEAg c3RhdGljIGludCBjb25maWdfaW5wdXQoQVZGaWx0ZXJMaW5rICppbmxpbmspCiAKICAgICBwcDct PmRjdEIgPSBkY3RCX2M7CiAKLSNpZiBBUkNIX1g4NgorI2lmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2 QVNNCiAgICAgZmZfcHA3X2luaXRfeDg2KHBwNyk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvbGli YXZmaWx0ZXIvdmZfcHVsbHVwLmMgYi9saWJhdmZpbHRlci92Zl9wdWxsdXAuYwppbmRleCBkOTYz ODQwZmU5Li4wNGFjYmFkYzRlIDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci92Zl9wdWxsdXAuYwor KysgYi9saWJhdmZpbHRlci92Zl9wdWxsdXAuYwpAQCAtMjA3LDcgKzIwNyw3IEBAIHN0YXRpYyBp bnQgY29uZmlnX2lucHV0KEFWRmlsdGVyTGluayAqaW5saW5rKQogICAgIHMtPmNvbWIgPSBjb21i X2M7CiAgICAgcy0+dmFyICA9IHZhcl9jOwogCi0jaWYgQVJDSF9YODYKKyNpZiBBUkNIX1g4NiAm JiBIQVZFX1g4NkFTTQogICAgIGZmX3B1bGx1cF9pbml0X3g4NihzKTsKICNlbmRpZgogICAgIHJl dHVybiAwOwpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvdmZfcmVtb3ZlZ3JhaW4uYyBiL2xpYmF2 ZmlsdGVyL3ZmX3JlbW92ZWdyYWluLmMKaW5kZXggMzIwOWM3ZGI4Ni4uMGEwYzYwZmIyMCAxMDA2 NDQKLS0tIGEvbGliYXZmaWx0ZXIvdmZfcmVtb3ZlZ3JhaW4uYworKysgYi9saWJhdmZpbHRlci92 Zl9yZW1vdmVncmFpbi5jCkBAIC01MDAsNyArNTAwLDcgQEAgc3RhdGljIGludCBjb25maWdfaW5w dXQoQVZGaWx0ZXJMaW5rICppbmxpbmspCiAgICAgICAgIH0KICAgICB9CiAKLSNpZiBBUkNIX1g4 NgorI2lmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNICYmIENPTkZJR19HUEwKICAgICBmZl9yZW1v dmVncmFpbl9pbml0X3g4NihzKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92 Zl9zc2ltLmMgYi9saWJhdmZpbHRlci92Zl9zc2ltLmMKaW5kZXggMTVjNzFjZjZiOS4uZGZiOTFl OGRhNSAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvdmZfc3NpbS5jCisrKyBiL2xpYmF2ZmlsdGVy L3ZmX3NzaW0uYwpAQCAtNDgxLDcgKzQ4MSw3IEBAIHN0YXRpYyBpbnQgY29uZmlnX2lucHV0X3Jl ZihBVkZpbHRlckxpbmsgKmlubGluaykKICAgICBzLT5zc2ltX3BsYW5lID0gZGVzYy0+Y29tcFsw XS5kZXB0aCA+IDggPyBzc2ltX3BsYW5lXzE2Yml0IDogc3NpbV9wbGFuZTsKICAgICBzLT5kc3Au c3NpbV80eDRfbGluZSA9IHNzaW1fNHg0eG5fOGJpdDsKICAgICBzLT5kc3Auc3NpbV9lbmRfbGlu ZSA9IHNzaW1fZW5kbl84Yml0OwotI2lmIEFSQ0hfWDg2CisjaWYgQVJDSF9YODYgJiYgSEFWRV9Y ODZBU00KICAgICBmZl9zc2ltX2luaXRfeDg2KCZzLT5kc3ApOwogI2VuZGlmCiAKZGlmZiAtLWdp dCBhL2xpYmF2ZmlsdGVyL3ZmX3N0ZXJlbzNkLmMgYi9saWJhdmZpbHRlci92Zl9zdGVyZW8zZC5j CmluZGV4IDhlMWZkYzVlYjMuLmQ1ZDRjYzE3MDIgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3Zm X3N0ZXJlbzNkLmMKKysrIGIvbGliYXZmaWx0ZXIvdmZfc3RlcmVvM2QuYwpAQCAtNTk1LDcgKzU5 NSw3IEBAIHN0YXRpYyBpbnQgY29uZmlnX291dHB1dChBVkZpbHRlckxpbmsgKm91dGxpbmspCiAg ICAgcy0+dnN1YiA9IGRlc2MtPmxvZzJfY2hyb21hX2g7CiAKICAgICBzLT5kc3AuYW5hZ2x5cGgg PSBhbmFnbHlwaDsKLSNpZiBBUkNIX1g4NgorI2lmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAg ICAgZmZfc3RlcmVvM2RfaW5pdF94ODYoJnMtPmRzcCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv bGliYXZmaWx0ZXIvdmZfdGhyZXNob2xkX2luaXQuaCBiL2xpYmF2ZmlsdGVyL3ZmX3RocmVzaG9s ZF9pbml0LmgKaW5kZXggM2FkZDdiNDk1ZS4uZmIzMTljNmNmOCAxMDA2NDQKLS0tIGEvbGliYXZm aWx0ZXIvdmZfdGhyZXNob2xkX2luaXQuaAorKysgYi9saWJhdmZpbHRlci92Zl90aHJlc2hvbGRf aW5pdC5oCkBAIC04NCw3ICs4NCw3IEBAIGF2X3VudXNlZCBzdGF0aWMgdm9pZCBmZl90aHJlc2hv bGRfaW5pdChUaHJlc2hvbGRDb250ZXh0ICpzKQogICAgICAgICBzLT5icGMgPSAyOwogICAgIH0K IAotI2lmIEFSQ0hfWDg2CisjaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBmZl90aHJl c2hvbGRfaW5pdF94ODYocyk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3Zm X3RpbnRlcmxhY2UuYyBiL2xpYmF2ZmlsdGVyL3ZmX3RpbnRlcmxhY2UuYwppbmRleCA3ZDUyMTdj MzY0Li41OWZlODJhYmUzIDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci92Zl90aW50ZXJsYWNlLmMK KysrIGIvbGliYXZmaWx0ZXIvdmZfdGludGVybGFjZS5jCkBAIC0yODYsNyArMjg2LDcgQEAgc3Rh dGljIGludCBjb25maWdfb3V0X3Byb3BzKEFWRmlsdGVyTGluayAqb3V0bGluaykKICAgICAgICAg ICAgIHRpbnRlcmxhY2UtPmxvd3Bhc3NfbGluZSA9IGxvd3Bhc3NfbGluZV9jb21wbGV4X2NfMTY7 CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRpbnRlcmxhY2UtPmxvd3Bhc3NfbGluZSA9IGxv d3Bhc3NfbGluZV9jb21wbGV4X2M7Ci0jaWYgQVJDSF9YODYKKyNpZiBBUkNIX1g4NiAmJiBIQVZF X1g4NkFTTQogICAgICAgICBmZl90aW50ZXJsYWNlX2luaXRfeDg2KHRpbnRlcmxhY2UpOwogI2Vu ZGlmCiAgICAgfSBlbHNlIGlmICh0aW50ZXJsYWNlLT5mbGFncyAmIFRJTlRFUkxBQ0VfRkxBR19W TFBGKSB7CkBAIC0yOTQsNyArMjk0LDcgQEAgc3RhdGljIGludCBjb25maWdfb3V0X3Byb3BzKEFW RmlsdGVyTGluayAqb3V0bGluaykKICAgICAgICAgICAgIHRpbnRlcmxhY2UtPmxvd3Bhc3NfbGlu ZSA9IGxvd3Bhc3NfbGluZV9jXzE2OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0aW50ZXJs YWNlLT5sb3dwYXNzX2xpbmUgPSBsb3dwYXNzX2xpbmVfYzsKLSNpZiBBUkNIX1g4NgorI2lmIEFS Q0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAgICAgICAgIGZmX3RpbnRlcmxhY2VfaW5pdF94ODYodGlu dGVybGFjZSk7CiAjZW5kaWYKICAgICB9CmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92Zl90cmFu c3Bvc2UuYyBiL2xpYmF2ZmlsdGVyL3ZmX3RyYW5zcG9zZS5jCmluZGV4IDg4Y2MwMDhmNjkuLmM0 NTdiMDFhNGUgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3ZmX3RyYW5zcG9zZS5jCisrKyBiL2xp YmF2ZmlsdGVyL3ZmX3RyYW5zcG9zZS5jCkBAIC0yMzcsNyArMjM3LDcgQEAgc3RhdGljIGludCBj b25maWdfcHJvcHNfb3V0cHV0KEFWRmlsdGVyTGluayAqb3V0bGluaykKICAgICAgICAgfQogICAg IH0KIAotI2lmIEFSQ0hfWDg2CisjaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBmb3Ig KGludCBpID0gMDsgaSA8IDQ7IGkrKykgewogICAgICAgICBUcmFuc1Z0YWJsZSAqdiA9ICZzLT52 dGFibGVzW2ldOwogCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92Zl92MzYwLmMgYi9saWJhdmZp bHRlci92Zl92MzYwLmMKaW5kZXggNjM0MTJhZWY4Ny4uMWNmZTQwODg4NyAxMDA2NDQKLS0tIGEv bGliYXZmaWx0ZXIvdmZfdjM2MC5jCisrKyBiL2xpYmF2ZmlsdGVyL3ZmX3YzNjAuYwpAQCAtMzk0 LDcgKzM5NCw3IEBAIHZvaWQgZmZfdjM2MF9pbml0KFYzNjBDb250ZXh0ICpzLCBpbnQgZGVwdGgp CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotI2lmIEFSQ0hfWDg2CisjaWYgQVJDSF9YODYgJiYg SEFWRV9YODZBU00KICAgICBmZl92MzYwX2luaXRfeDg2KHMsIGRlcHRoKTsKICNlbmRpZgogfQpk aWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvdmZfdzNmZGlmLmMgYi9saWJhdmZpbHRlci92Zl93M2Zk aWYuYwppbmRleCA1YjRjODNiYmQ5Li5hZmRlNDI2ZjFhIDEwMDY0NAotLS0gYS9saWJhdmZpbHRl ci92Zl93M2ZkaWYuYworKysgYi9saWJhdmZpbHRlci92Zl93M2ZkaWYuYwpAQCAtMzE3LDcgKzMx Nyw3IEBAIHN0YXRpYyBpbnQgY29uZmlnX2lucHV0KEFWRmlsdGVyTGluayAqaW5saW5rKQogICAg ICAgICBzLT5kc3AuZmlsdGVyX3NjYWxlICAgICAgICA9IGZpbHRlcjE2X3NjYWxlOwogICAgIH0K IAotI2lmIEFSQ0hfWDg2CisjaWYgQVJDSF9YODYgJiYgSEFWRV9YODZBU00KICAgICBmZl93M2Zk aWZfaW5pdF94ODYoJnMtPmRzcCwgZGVwdGgpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2xpYmF2 ZmlsdGVyL3ZmX3lhZGlmLmMgYi9saWJhdmZpbHRlci92Zl95YWRpZi5jCmluZGV4IDZlMGU1MDA4 ODYuLjllNGY4ZDViNDMgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3ZmX3lhZGlmLmMKKysrIGIv bGliYXZmaWx0ZXIvdmZfeWFkaWYuYwpAQCAtMjg5LDcgKzI4OSw3IEBAIHN0YXRpYyBpbnQgY29u ZmlnX291dHB1dChBVkZpbHRlckxpbmsgKm91dGxpbmspCiAgICAgICAgIHMtPmZpbHRlcl9lZGdl cyA9IGZpbHRlcl9lZGdlczsKICAgICB9CiAKLSNpZiBBUkNIX1g4NgorI2lmIEFSQ0hfWDg2ICYm IEhBVkVfWDg2QVNNCiAgICAgZmZfeWFkaWZfaW5pdF94ODYocyk7CiAjZW5kaWYKIApkaWZmIC0t Z2l0IGEvbGliYXZmaWx0ZXIveDg2L01ha2VmaWxlIGIvbGliYXZmaWx0ZXIveDg2L01ha2VmaWxl CmluZGV4IGI0ODVjMTBmYmUuLmFkZTBlZmM5YWUgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3g4 Ni9NYWtlZmlsZQorKysgYi9saWJhdmZpbHRlci94ODYvTWFrZWZpbGUKQEAgLTEsOTUgKzEsNzIg QEAKLU9CSlMtJChDT05GSUdfU0NFTkVfU0FEKSAgICAgICAgICAgICAgICAgICAgICs9IHg4Ni9z Y2VuZV9zYWRfaW5pdC5vCi0KLU9CSlMtJChDT05GSUdfQUZJUl9GSUxURVIpICAgICAgICAgICAg ICAgICAgICs9IHg4Ni9hZl9hZmlyX2luaXQubwotT0JKUy0kKENPTkZJR19BTkxNRE5fRklMVEVS KSAgICAgICAgICAgICAgICAgKz0geDg2L2FmX2FubG1kbl9pbml0Lm8KLU9CSlMtJChDT05GSUdf QVRBREVOT0lTRV9GSUxURVIpICAgICAgICAgICAgICs9IHg4Ni92Zl9hdGFkZW5vaXNlX2luaXQu bwotT0JKUy0kKENPTkZJR19CTEFDS0RFVEVDVF9GSUxURVIpICAgICAgICAgICAgKz0geDg2L3Zm X2JsYWNrZGV0ZWN0X2luaXQubwotT0JKUy0kKENPTkZJR19CTEVORF9GSUxURVIpICAgICAgICAg ICAgICAgICAgKz0geDg2L3ZmX2JsZW5kX2luaXQubwotT0JKUy0kKENPTkZJR19CV0RJRl9GSUxU RVIpICAgICAgICAgICAgICAgICAgKz0geDg2L3ZmX2J3ZGlmX2luaXQubwotT0JKUy0kKENPTkZJ R19DT0xPUkRFVEVDVF9GSUxURVIpICAgICAgICAgICAgKz0geDg2L3ZmX2NvbG9yZGV0ZWN0X2lu aXQubwotT0JKUy0kKENPTkZJR19DT0xPUlNQQUNFX0ZJTFRFUikgICAgICAgICAgICAgKz0geDg2 L2NvbG9yc3BhY2Vkc3BfaW5pdC5vCi1PQkpTLSQoQ09ORklHX0NPTlZPTFVUSU9OX0ZJTFRFUikg ICAgICAgICAgICArPSB4ODYvdmZfY29udm9sdXRpb25faW5pdC5vCi1PQkpTLSQoQ09ORklHX0VC VVIxMjhfRklMVEVSKSAgICAgICAgICAgICAgICArPSB4ODYvZl9lYnVyMTI4X2luaXQubwotT0JK Uy0kKENPTkZJR19FUV9GSUxURVIpICAgICAgICAgICAgICAgICAgICAgKz0geDg2L3ZmX2VxX2lu aXQubwotT0JKUy0kKENPTkZJR19GU1BQX0ZJTFRFUikgICAgICAgICAgICAgICAgICAgKz0geDg2 L3ZmX2ZzcHBfaW5pdC5vCi1PQkpTLSQoQ09ORklHX0dCTFVSX0ZJTFRFUikgICAgICAgICAgICAg ICAgICArPSB4ODYvdmZfZ2JsdXJfaW5pdC5vCi1PQkpTLSQoQ09ORklHX0dSQURGVU5fRklMVEVS KSAgICAgICAgICAgICAgICArPSB4ODYvdmZfZ3JhZGZ1bl9pbml0Lm8KLU9CSlMtJChDT05GSUdf RlJBTUVSQVRFX0ZJTFRFUikgICAgICAgICAgICAgICs9IHg4Ni92Zl9mcmFtZXJhdGVfaW5pdC5v Ci1PQkpTLSQoQ09ORklHX0hBTERDTFVUX0ZJTFRFUikgICAgICAgICAgICAgICArPSB4ODYvdmZf bHV0M2RfaW5pdC5vCi1PQkpTLSQoQ09ORklHX0hGTElQX0ZJTFRFUikgICAgICAgICAgICAgICAg ICArPSB4ODYvdmZfaGZsaXBfaW5pdC5vCi1PQkpTLSQoQ09ORklHX0hRRE4zRF9GSUxURVIpICAg ICAgICAgICAgICAgICArPSB4ODYvdmZfaHFkbjNkX2luaXQubwotT0JKUy0kKENPTkZJR19JREVU X0ZJTFRFUikgICAgICAgICAgICAgICAgICAgKz0geDg2L3ZmX2lkZXRkc3BfaW5pdC5vCi1PQkpT LSQoQ09ORklHX0lOVEVSTEFDRV9GSUxURVIpICAgICAgICAgICAgICArPSB4ODYvdmZfdGludGVy bGFjZV9pbml0Lm8KLU9CSlMtJChDT05GSUdfTElNSVRFUl9GSUxURVIpICAgICAgICAgICAgICAg ICs9IHg4Ni92Zl9saW1pdGVyX2luaXQubwotT0JKUy0kKENPTkZJR19MVVQzRF9GSUxURVIpICAg ICAgICAgICAgICAgICAgKz0geDg2L3ZmX2x1dDNkX2luaXQubwotT0JKUy0kKENPTkZJR19NQVNL RURDTEFNUF9GSUxURVIpICAgICAgICAgICAgKz0geDg2L3ZmX21hc2tlZGNsYW1wX2luaXQubwot T0JKUy0kKENPTkZJR19NQVNLRURNRVJHRV9GSUxURVIpICAgICAgICAgICAgKz0geDg2L3ZmX21h c2tlZG1lcmdlX2luaXQubwotT0JKUy0kKENPTkZJR19OTE1FQU5TX0ZJTFRFUikgICAgICAgICAg ICAgICAgKz0geDg2L3ZmX25sbWVhbnNfaW5pdC5vCiBPQkpTLSQoQ09ORklHX05PSVNFX0ZJTFRF UikgICAgICAgICAgICAgICAgICArPSB4ODYvdmZfbm9pc2UubwotT0JKUy0kKENPTkZJR19PVkVS TEFZX0ZJTFRFUikgICAgICAgICAgICAgICAgKz0geDg2L3ZmX292ZXJsYXlfaW5pdC5vCi1PQkpT LSQoQ09ORklHX1BQN19GSUxURVIpICAgICAgICAgICAgICAgICAgICArPSB4ODYvdmZfcHA3X2lu aXQubwotT0JKUy0kKENPTkZJR19QU05SX0ZJTFRFUikgICAgICAgICAgICAgICAgICAgKz0geDg2 L3ZmX3BzbnJfaW5pdC5vCi1PQkpTLSQoQ09ORklHX1BVTExVUF9GSUxURVIpICAgICAgICAgICAg ICAgICArPSB4ODYvdmZfcHVsbHVwX2luaXQubwotT0JKUy0kKENPTkZJR19SRU1PVkVHUkFJTl9G SUxURVIpICAgICAgICAgICAgKz0geDg2L3ZmX3JlbW92ZWdyYWluX2luaXQubwotT0JKUy0kKENP TkZJR19TSE9XQ1FUX0ZJTFRFUikgICAgICAgICAgICAgICAgKz0geDg2L2F2Zl9zaG93Y3F0X2lu aXQubwotT0JKUy0kKENPTkZJR19TT0JFTF9GSUxURVIpICAgICAgICAgICAgICAgICAgKz0geDg2 L3ZmX2NvbnZvbHV0aW9uX2luaXQubwogT0JKUy0kKENPTkZJR19TUFBfRklMVEVSKSAgICAgICAg ICAgICAgICAgICAgKz0geDg2L3ZmX3NwcC5vCi1PQkpTLSQoQ09ORklHX1NTSU1fRklMVEVSKSAg ICAgICAgICAgICAgICAgICArPSB4ODYvdmZfc3NpbV9pbml0Lm8KLU9CSlMtJChDT05GSUdfU1RF UkVPM0RfRklMVEVSKSAgICAgICAgICAgICAgICs9IHg4Ni92Zl9zdGVyZW8zZF9pbml0Lm8KLU9C SlMtJChDT05GSUdfVEJMRU5EX0ZJTFRFUikgICAgICAgICAgICAgICAgICs9IHg4Ni92Zl9ibGVu ZF9pbml0Lm8KLU9CSlMtJChDT05GSUdfVEhSRVNIT0xEX0ZJTFRFUikgICAgICAgICAgICAgICs9 IHg4Ni92Zl90aHJlc2hvbGRfaW5pdC5vCi1PQkpTLSQoQ09ORklHX1RJTlRFUkxBQ0VfRklMVEVS KSAgICAgICAgICAgICArPSB4ODYvdmZfdGludGVybGFjZV9pbml0Lm8KLU9CSlMtJChDT05GSUdf VFJBTlNQT1NFX0ZJTFRFUikgICAgICAgICAgICAgICs9IHg4Ni92Zl90cmFuc3Bvc2VfaW5pdC5v Ci1PQkpTLSQoQ09ORklHX1ZPTFVNRV9GSUxURVIpICAgICAgICAgICAgICAgICArPSB4ODYvYWZf dm9sdW1lX2luaXQubwotT0JKUy0kKENPTkZJR19WMzYwX0ZJTFRFUikgICAgICAgICAgICAgICAg ICAgKz0geDg2L3ZmX3YzNjBfaW5pdC5vCi1PQkpTLSQoQ09ORklHX1czRkRJRl9GSUxURVIpICAg ICAgICAgICAgICAgICArPSB4ODYvdmZfdzNmZGlmX2luaXQubwotT0JKUy0kKENPTkZJR19YUFNO Ul9GSUxURVIpICAgICAgICAgICAgICAgICAgKz0geDg2L3ZmX3BzbnJfaW5pdC5vCi1PQkpTLSQo Q09ORklHX1lBRElGX0ZJTFRFUikgICAgICAgICAgICAgICAgICArPSB4ODYvdmZfeWFkaWZfaW5p dC5vCiAKLVg4NkFTTS1PQkpTLSQoQ09ORklHX1NDRU5FX1NBRCkgICAgICAgICAgICAgICs9IHg4 Ni9zY2VuZV9zYWQubworWDg2QVNNLU9CSlMtJChDT05GSUdfU0NFTkVfU0FEKSAgICAgICAgICAg ICAgKz0geDg2L3NjZW5lX3NhZC5vIHg4Ni9zY2VuZV9zYWRfaW5pdC5vCiAKLVg4NkFTTS1PQkpT LSQoQ09ORklHX0FGSVJfRklMVEVSKSAgICAgICAgICAgICs9IHg4Ni9hZl9hZmlyLm8KLVg4NkFT TS1PQkpTLSQoQ09ORklHX0FOTE1ETl9GSUxURVIpICAgICAgICAgICs9IHg4Ni9hZl9hbmxtZG4u bwotWDg2QVNNLU9CSlMtJChDT05GSUdfQVRBREVOT0lTRV9GSUxURVIpICAgICAgKz0geDg2L3Zm X2F0YWRlbm9pc2UubwotWDg2QVNNLU9CSlMtJChDT05GSUdfQkxBQ0tERVRFQ1RfRklMVEVSKSAg ICAgKz0geDg2L3ZmX2JsYWNrZGV0ZWN0Lm8KLVg4NkFTTS1PQkpTLSQoQ09ORklHX0JMRU5EX0ZJ TFRFUikgICAgICAgICAgICs9IHg4Ni92Zl9ibGVuZC5vCi1YODZBU00tT0JKUy0kKENPTkZJR19C V0RJRl9GSUxURVIpICAgICAgICAgICArPSB4ODYvdmZfYndkaWYubwotWDg2QVNNLU9CSlMtJChD T05GSUdfQ09MT1JERVRFQ1RfRklMVEVSKSAgICAgKz0geDg2L3ZmX2NvbG9yZGV0ZWN0Lm8KLVg4 NkFTTS1PQkpTLSQoQ09ORklHX0NPTE9SU1BBQ0VfRklMVEVSKSAgICAgICs9IHg4Ni9jb2xvcnNw YWNlZHNwLm8KLVg4NkFTTS1PQkpTLSQoQ09ORklHX0NPTlZPTFVUSU9OX0ZJTFRFUikgICAgICs9 IHg4Ni92Zl9jb252b2x1dGlvbi5vCi1YODZBU00tT0JKUy0kKENPTkZJR19FQlVSMTI4X0ZJTFRF UikgICAgICAgICArPSB4ODYvZl9lYnVyMTI4Lm8KLVg4NkFTTS1PQkpTLSQoQ09ORklHX0VRX0ZJ TFRFUikgICAgICAgICAgICAgICs9IHg4Ni92Zl9lcS5vCi1YODZBU00tT0JKUy0kKENPTkZJR19G UkFNRVJBVEVfRklMVEVSKSAgICAgICArPSB4ODYvdmZfZnJhbWVyYXRlLm8KLVg4NkFTTS1PQkpT LSQoQ09ORklHX0ZTUFBfRklMVEVSKSAgICAgICAgICAgICs9IHg4Ni92Zl9mc3BwLm8KLVg4NkFT TS1PQkpTLSQoQ09ORklHX0dCTFVSX0ZJTFRFUikgICAgICAgICAgICs9IHg4Ni92Zl9nYmx1ci5v Ci1YODZBU00tT0JKUy0kKENPTkZJR19HUkFERlVOX0ZJTFRFUikgICAgICAgICArPSB4ODYvdmZf Z3JhZGZ1bi5vCi1YODZBU00tT0JKUy0kKENPTkZJR19IQUxEQ0xVVF9GSUxURVIpICAgICAgICAr PSB4ODYvdmZfbHV0M2QubwotWDg2QVNNLU9CSlMtJChDT05GSUdfSEZMSVBfRklMVEVSKSAgICAg ICAgICAgKz0geDg2L3ZmX2hmbGlwLm8KLVg4NkFTTS1PQkpTLSQoQ09ORklHX0hRRE4zRF9GSUxU RVIpICAgICAgICAgICs9IHg4Ni92Zl9ocWRuM2QubwotWDg2QVNNLU9CSlMtJChDT05GSUdfSURF VF9GSUxURVIpICAgICAgICAgICAgKz0geDg2L3ZmX2lkZXRkc3AubwotWDg2QVNNLU9CSlMtJChD T05GSUdfSU5URVJMQUNFX0ZJTFRFUikgICAgICAgKz0geDg2L3ZmX2ludGVybGFjZS5vCi1YODZB U00tT0JKUy0kKENPTkZJR19MSU1JVEVSX0ZJTFRFUikgICAgICAgICArPSB4ODYvdmZfbGltaXRl ci5vCi1YODZBU00tT0JKUy0kKENPTkZJR19MVVQzRF9GSUxURVIpICAgICAgICAgICArPSB4ODYv dmZfbHV0M2QubwotWDg2QVNNLU9CSlMtJChDT05GSUdfTUFTS0VEQ0xBTVBfRklMVEVSKSAgICAg Kz0geDg2L3ZmX21hc2tlZGNsYW1wLm8KLVg4NkFTTS1PQkpTLSQoQ09ORklHX01BU0tFRE1FUkdF X0ZJTFRFUikgICAgICs9IHg4Ni92Zl9tYXNrZWRtZXJnZS5vCi1YODZBU00tT0JKUy0kKENPTkZJ R19OTE1FQU5TX0ZJTFRFUikgICAgICAgICArPSB4ODYvdmZfbmxtZWFucy5vCi1YODZBU00tT0JK Uy0kKENPTkZJR19PVkVSTEFZX0ZJTFRFUikgICAgICAgICArPSB4ODYvdmZfb3ZlcmxheS5vCi1Y ODZBU00tT0JKUy0kKENPTkZJR19QUDdfRklMVEVSKSAgICAgICAgICAgICArPSB4ODYvdmZfcHA3 Lm8KLVg4NkFTTS1PQkpTLSQoQ09ORklHX1BTTlJfRklMVEVSKSAgICAgICAgICAgICs9IHg4Ni92 Zl9wc25yLm8KLVg4NkFTTS1PQkpTLSQoQ09ORklHX1BVTExVUF9GSUxURVIpICAgICAgICAgICs9 IHg4Ni92Zl9wdWxsdXAubworWDg2QVNNLU9CSlMtJChDT05GSUdfQUZJUl9GSUxURVIpICAgICAg ICAgICAgKz0geDg2L2FmX2FmaXIubyB4ODYvYWZfYWZpcl9pbml0Lm8KK1g4NkFTTS1PQkpTLSQo Q09ORklHX0FOTE1ETl9GSUxURVIpICAgICAgICAgICs9IHg4Ni9hZl9hbmxtZG4ubyB4ODYvYWZf YW5sbWRuX2luaXQubworWDg2QVNNLU9CSlMtJChDT05GSUdfQVRBREVOT0lTRV9GSUxURVIpICAg ICAgKz0geDg2L3ZmX2F0YWRlbm9pc2UubyAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDg2L3ZmX2F0YWRlbm9pc2VfaW5pdC5vCitY ODZBU00tT0JKUy0kKENPTkZJR19CTEFDS0RFVEVDVF9GSUxURVIpICAgICArPSB4ODYvdmZfYmxh Y2tkZXRlY3QubyAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB4ODYvdmZfYmxhY2tkZXRlY3RfaW5pdC5vCitYODZBU00tT0JKUy0kKENP TkZJR19CTEVORF9GSUxURVIpICAgICAgICAgICArPSB4ODYvdmZfYmxlbmQubyB4ODYvdmZfYmxl bmRfaW5pdC5vCitYODZBU00tT0JKUy0kKENPTkZJR19CV0RJRl9GSUxURVIpICAgICAgICAgICAr PSB4ODYvdmZfYndkaWYubyB4ODYvdmZfYndkaWZfaW5pdC5vCitYODZBU00tT0JKUy0kKENPTkZJ R19DT0xPUkRFVEVDVF9GSUxURVIpICAgICArPSB4ODYvdmZfY29sb3JkZXRlY3QubyAgICAgICAg ICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ODYv dmZfY29sb3JkZXRlY3RfaW5pdC5vCitYODZBU00tT0JKUy0kKENPTkZJR19DT0xPUlNQQUNFX0ZJ TFRFUikgICAgICArPSB4ODYvY29sb3JzcGFjZWRzcC5vICAgICAgICAgICBcCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ODYvY29sb3JzcGFjZWRzcF9p bml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklHX0NPTlZPTFVUSU9OX0ZJTFRFUikgICAgICs9IHg4 Ni92Zl9jb252b2x1dGlvbi5vICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHg4Ni92Zl9jb252b2x1dGlvbl9pbml0Lm8KK1g4NkFTTS1P QkpTLSQoQ09ORklHX0VCVVIxMjhfRklMVEVSKSAgICAgICAgICs9IHg4Ni9mX2VidXIxMjgubyB4 ODYvZl9lYnVyMTI4X2luaXQubworWDg2QVNNLU9CSlMtJChDT05GSUdfRVFfRklMVEVSKSAgICAg ICAgICAgICAgKz0geDg2L3ZmX2VxLm8geDg2L3ZmX2VxX2luaXQubworWDg2QVNNLU9CSlMtJChD T05GSUdfRlJBTUVSQVRFX0ZJTFRFUikgICAgICAgKz0geDg2L3ZmX2ZyYW1lcmF0ZS5vICAgICAg ICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg eDg2L3ZmX2ZyYW1lcmF0ZV9pbml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklHX0ZTUFBfRklMVEVS KSAgICAgICAgICAgICs9IHg4Ni92Zl9mc3BwLm8geDg2L3ZmX2ZzcHBfaW5pdC5vCitYODZBU00t T0JKUy0kKENPTkZJR19HQkxVUl9GSUxURVIpICAgICAgICAgICArPSB4ODYvdmZfZ2JsdXIubyB4 ODYvdmZfZ2JsdXJfaW5pdC5vCitYODZBU00tT0JKUy0kKENPTkZJR19HUkFERlVOX0ZJTFRFUikg ICAgICAgICArPSB4ODYvdmZfZ3JhZGZ1bi5vICAgICAgICAgICAgICBcCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ODYvdmZfZ3JhZGZ1bl9pbml0Lm8K K1g4NkFTTS1PQkpTLSQoQ09ORklHX0hBTERDTFVUX0ZJTFRFUikgICAgICAgICs9IHg4Ni92Zl9s dXQzZC5vIHg4Ni92Zl9sdXQzZF9pbml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklHX0hGTElQX0ZJ TFRFUikgICAgICAgICAgICs9IHg4Ni92Zl9oZmxpcC5vIHg4Ni92Zl9oZmxpcF9pbml0Lm8KK1g4 NkFTTS1PQkpTLSQoQ09ORklHX0hRRE4zRF9GSUxURVIpICAgICAgICAgICs9IHg4Ni92Zl9ocWRu M2QubyB4ODYvdmZfaHFkbjNkX2luaXQubworWDg2QVNNLU9CSlMtJChDT05GSUdfSURFVF9GSUxU RVIpICAgICAgICAgICAgKz0geDg2L3ZmX2lkZXRkc3AubyAgICAgICAgICAgICAgXAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDg2L3ZmX2lkZXRkc3Bf aW5pdC5vCitYODZBU00tT0JKUy0kKENPTkZJR19JTlRFUkxBQ0VfRklMVEVSKSAgICAgICArPSB4 ODYvdmZfaW50ZXJsYWNlLm8gICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB4ODYvdmZfdGludGVybGFjZV9pbml0Lm8KK1g4NkFTTS1P QkpTLSQoQ09ORklHX0xJTUlURVJfRklMVEVSKSAgICAgICAgICs9IHg4Ni92Zl9saW1pdGVyLm8g ICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHg4Ni92Zl9saW1pdGVyX2luaXQubworWDg2QVNNLU9CSlMtJChDT05GSUdfTFVUM0Rf RklMVEVSKSAgICAgICAgICAgKz0geDg2L3ZmX2x1dDNkLm8geDg2L3ZmX2x1dDNkX2luaXQubwor WDg2QVNNLU9CSlMtJChDT05GSUdfTUFTS0VEQ0xBTVBfRklMVEVSKSAgICAgKz0geDg2L3ZmX21h c2tlZGNsYW1wLm8gICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgeDg2L3ZmX21hc2tlZGNsYW1wX2luaXQubworWDg2QVNNLU9CSlMtJChD T05GSUdfTUFTS0VETUVSR0VfRklMVEVSKSAgICAgKz0geDg2L3ZmX21hc2tlZG1lcmdlLm8gICAg ICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg eDg2L3ZmX21hc2tlZG1lcmdlX2luaXQubworWDg2QVNNLU9CSlMtJChDT05GSUdfTkxNRUFOU19G SUxURVIpICAgICAgICAgKz0geDg2L3ZmX25sbWVhbnMubyAgICAgICAgICAgICAgXAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDg2L3ZmX25sbWVhbnNf aW5pdC5vCitYODZBU00tT0JKUy0kKENPTkZJR19PVkVSTEFZX0ZJTFRFUikgICAgICAgICArPSB4 ODYvdmZfb3ZlcmxheS5vICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB4ODYvdmZfb3ZlcmxheV9pbml0Lm8KK1g4NkFTTS1PQkpT LSQoQ09ORklHX1BQN19GSUxURVIpICAgICAgICAgICAgICs9IHg4Ni92Zl9wcDcubyB4ODYvdmZf cHA3X2luaXQubworWDg2QVNNLU9CSlMtJChDT05GSUdfUFNOUl9GSUxURVIpICAgICAgICAgICAg Kz0geDg2L3ZmX3BzbnIubyB4ODYvdmZfcHNucl9pbml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklH X1BVTExVUF9GSUxURVIpICAgICAgICAgICs9IHg4Ni92Zl9wdWxsdXAubyB4ODYvdmZfcHVsbHVw X2luaXQubwogaWZkZWYgQ09ORklHX0dQTAotWDg2QVNNLU9CSlMtJChDT05GSUdfUkVNT1ZFR1JB SU5fRklMVEVSKSAgICAgKz0geDg2L3ZmX3JlbW92ZWdyYWluLm8KK1g4NkFTTS1PQkpTLSQoQ09O RklHX1JFTU9WRUdSQUlOX0ZJTFRFUikgICAgICs9IHg4Ni92Zl9yZW1vdmVncmFpbi5vICAgICAg ICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg4 Ni92Zl9yZW1vdmVncmFpbl9pbml0Lm8KIGVuZGlmCi1YODZBU00tT0JKUy0kKENPTkZJR19TSE9X Q1FUX0ZJTFRFUikgICAgICAgICArPSB4ODYvYXZmX3Nob3djcXQubwotWDg2QVNNLU9CSlMtJChD T05GSUdfU09CRUxfRklMVEVSKSAgICAgICAgICAgKz0geDg2L3ZmX2NvbnZvbHV0aW9uLm8KLVg4 NkFTTS1PQkpTLSQoQ09ORklHX1NTSU1fRklMVEVSKSAgICAgICAgICAgICs9IHg4Ni92Zl9zc2lt Lm8KLVg4NkFTTS1PQkpTLSQoQ09ORklHX1NURVJFTzNEX0ZJTFRFUikgICAgICAgICs9IHg4Ni92 Zl9zdGVyZW8zZC5vCi1YODZBU00tT0JKUy0kKENPTkZJR19UQkxFTkRfRklMVEVSKSAgICAgICAg ICArPSB4ODYvdmZfYmxlbmQubwotWDg2QVNNLU9CSlMtJChDT05GSUdfVEhSRVNIT0xEX0ZJTFRF UikgICAgICAgKz0geDg2L3ZmX3RocmVzaG9sZC5vCi1YODZBU00tT0JKUy0kKENPTkZJR19USU5U RVJMQUNFX0ZJTFRFUikgICAgICArPSB4ODYvdmZfaW50ZXJsYWNlLm8KLVg4NkFTTS1PQkpTLSQo Q09ORklHX1RSQU5TUE9TRV9GSUxURVIpICAgICAgICs9IHg4Ni92Zl90cmFuc3Bvc2UubwotWDg2 QVNNLU9CSlMtJChDT05GSUdfVk9MVU1FX0ZJTFRFUikgICAgICAgICAgKz0geDg2L2FmX3ZvbHVt ZS5vCi1YODZBU00tT0JKUy0kKENPTkZJR19WMzYwX0ZJTFRFUikgICAgICAgICAgICArPSB4ODYv dmZfdjM2MC5vCi1YODZBU00tT0JKUy0kKENPTkZJR19XM0ZESUZfRklMVEVSKSAgICAgICAgICAr PSB4ODYvdmZfdzNmZGlmLm8KLVg4NkFTTS1PQkpTLSQoQ09ORklHX1hQU05SX0ZJTFRFUikgICAg ICAgICAgICs9IHg4Ni92Zl9wc25yLm8KLVg4NkFTTS1PQkpTLSQoQ09ORklHX1lBRElGX0ZJTFRF UikgICAgICAgICAgICs9IHg4Ni92Zl95YWRpZi5vIHg4Ni95YWRpZi0xNi5vIHg4Ni95YWRpZi0x MC5vCitYODZBU00tT0JKUy0kKENPTkZJR19TSE9XQ1FUX0ZJTFRFUikgICAgICAgICArPSB4ODYv YXZmX3Nob3djcXQubyAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB4ODYvYXZmX3Nob3djcXRfaW5pdC5vCitYODZBU00tT0JKUy0k KENPTkZJR19TT0JFTF9GSUxURVIpICAgICAgICAgICArPSB4ODYvdmZfY29udm9sdXRpb24ubyAg ICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB4ODYvdmZfY29udm9sdXRpb25faW5pdC5vCitYODZBU00tT0JKUy0kKENPTkZJR19TU0lNX0ZJ TFRFUikgICAgICAgICAgICArPSB4ODYvdmZfc3NpbS5vIHg4Ni92Zl9zc2ltX2luaXQubworWDg2 QVNNLU9CSlMtJChDT05GSUdfU1RFUkVPM0RfRklMVEVSKSAgICAgICAgKz0geDg2L3ZmX3N0ZXJl bzNkLm8gICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgeDg2L3ZmX3N0ZXJlbzNkX2luaXQubworWDg2QVNNLU9CSlMtJChDT05GSUdf VEJMRU5EX0ZJTFRFUikgICAgICAgICAgKz0geDg2L3ZmX2JsZW5kLm8geDg2L3ZmX2JsZW5kX2lu aXQubworWDg2QVNNLU9CSlMtJChDT05GSUdfVEhSRVNIT0xEX0ZJTFRFUikgICAgICAgKz0geDg2 L3ZmX3RocmVzaG9sZC5vICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgeDg2L3ZmX3RocmVzaG9sZF9pbml0Lm8KK1g4NkFTTS1PQkpT LSQoQ09ORklHX1RJTlRFUkxBQ0VfRklMVEVSKSAgICAgICs9IHg4Ni92Zl9pbnRlcmxhY2UubyAg ICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHg4Ni92Zl90aW50ZXJsYWNlX2luaXQubworWDg2QVNNLU9CSlMtJChDT05GSUdfVFJBTlNQ T1NFX0ZJTFRFUikgICAgICAgKz0geDg2L3ZmX3RyYW5zcG9zZS5vICAgICAgICAgICAgXAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDg2L3ZmX3RyYW5z cG9zZV9pbml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklHX1ZPTFVNRV9GSUxURVIpICAgICAgICAg ICs9IHg4Ni9hZl92b2x1bWUubyB4ODYvYWZfdm9sdW1lX2luaXQubworWDg2QVNNLU9CSlMtJChD T05GSUdfVjM2MF9GSUxURVIpICAgICAgICAgICAgKz0geDg2L3ZmX3YzNjAubyB4ODYvdmZfdjM2 MF9pbml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklHX1czRkRJRl9GSUxURVIpICAgICAgICAgICs9 IHg4Ni92Zl93M2ZkaWYubyB4ODYvdmZfdzNmZGlmX2luaXQubworWDg2QVNNLU9CSlMtJChDT05G SUdfWFBTTlJfRklMVEVSKSAgICAgICAgICAgKz0geDg2L3ZmX3BzbnIubyB4ODYvdmZfcHNucl9p bml0Lm8KK1g4NkFTTS1PQkpTLSQoQ09ORklHX1lBRElGX0ZJTFRFUikgICAgICAgICAgICs9IHg4 Ni92Zl95YWRpZi5vIHg4Ni95YWRpZi0xNi5vIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHg4Ni95YWRpZi0xMC5vIHg4Ni92Zl95YWRpZl9pbml0Lm8K ZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3g4Ni9zY2VuZV9zYWRfaW5pdC5jIGIvbGliYXZmaWx0 ZXIveDg2L3NjZW5lX3NhZF9pbml0LmMKaW5kZXggOTg2MzgzOWI0ZS4uYTM1ZjAyYzU2MCAxMDA2 NDQKLS0tIGEvbGliYXZmaWx0ZXIveDg2L3NjZW5lX3NhZF9pbml0LmMKKysrIGIvbGliYXZmaWx0 ZXIveDg2L3NjZW5lX3NhZF9pbml0LmMKQEAgLTUyLDcgKzUyLDYgQEAgc3RhdGljIHZvaWQgRlVO Q19OQU1FKFNDRU5FX1NBRF9QQVJBTVMpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAogICAgICpzdW0gKz0gc2FkWzBdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogfQogCi0jaWYgSEFWRV9YODZBU00KIFND RU5FX1NBRF9GVU5DKHNjZW5lX3NhZF9zc2UyLCBmZl9zY2VuZV9zYWQ4X3NzZTIsIDE2KQogI2lm IEhBVkVfQVZYMl9FWFRFUk5BTAogU0NFTkVfU0FEX0ZVTkMoc2NlbmVfc2FkX2F2eDIsICAgICBm Zl9zY2VuZV9zYWQ4X2F2eDIsICAzMikKQEAgLTYyLDExICs2MSw5IEBAIFNDRU5FX1NBRDE2X0ZV TkMoc2NlbmVfc2FkMTZfYXZ4MiwgZmZfc2NlbmVfc2FkMTZfYXZ4MiwgMzIpCiBTQ0VORV9TQURf RlVOQyhzY2VuZV9zYWRfYXZ4NTEyLCAgICAgZmZfc2NlbmVfc2FkOF9hdng1MTIsICA2NCkKIFND RU5FX1NBRDE2X0ZVTkMoc2NlbmVfc2FkMTZfYXZ4NTEyLCBmZl9zY2VuZV9zYWQxNl9hdng1MTIs IDY0KQogI2VuZGlmCi0jZW5kaWYKIAogZmZfc2NlbmVfc2FkX2ZuIGZmX3NjZW5lX3NhZF9nZXRf Zm5feDg2KGludCBkZXB0aCkKIHsKLSNpZiBIQVZFX1g4NkFTTQogICAgIGludCBjcHVfZmxhZ3Mg PSBhdl9nZXRfY3B1X2ZsYWdzKCk7CiAgICAgaWYgKGRlcHRoIDw9IDgpIHsKICNpZiBIQVZFX0FW WDUxMl9FWFRFUk5BTApAQCAtODksNiArODYsNSBAQCBmZl9zY2VuZV9zYWRfZm4gZmZfc2NlbmVf c2FkX2dldF9mbl94ODYoaW50IGRlcHRoKQogICAgICAgICAgICAgcmV0dXJuIHNjZW5lX3NhZDE2 X2F2eDI7CiAjZW5kaWYKICAgICB9Ci0jZW5kaWYKICAgICByZXR1cm4gTlVMTDsKIH0KZGlmZiAt LWdpdCBhL2xpYmF2ZmlsdGVyL3g4Ni92Zl9jb2xvcmRldGVjdF9pbml0LmMgYi9saWJhdmZpbHRl ci94ODYvdmZfY29sb3JkZXRlY3RfaW5pdC5jCmluZGV4IDcyNTdiNWM0ZjUuLjRiZmY0NDcxYTEg MTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3g4Ni92Zl9jb2xvcmRldGVjdF9pbml0LmMKKysrIGIv bGliYXZmaWx0ZXIveDg2L3ZmX2NvbG9yZGV0ZWN0X2luaXQuYwpAQCAtNTgsNyArNTgsNiBAQCBz dGF0aWMgaW50IEZVTkNfTkFNRShjb25zdCB1aW50OF90ICpjb2xvciwgcHRyZGlmZl90IGNvbG9y X3N0cmlkZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCwgcSwgayk7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogfQogCi0jaWYgSEFWRV9YODZBU00K ICNpZiBIQVZFX0FWWDUxMklDTF9FWFRFUk5BTAogREVURUNUX1JBTkdFX0ZVTkMoZGV0ZWN0X3Jh bmdlX2F2eDUxMmljbCwgICBmZl9kZXRlY3RfcmFuZ2ViX2F2eDUxMmljbCwgZmZfZGV0ZWN0X3Jh bmdlX2MsICAgMCwgNjQpCiBERVRFQ1RfUkFOR0VfRlVOQyhkZXRlY3RfcmFuZ2UxNl9hdng1MTJp Y2wsIGZmX2RldGVjdF9yYW5nZXdfYXZ4NTEyaWNsLCBmZl9kZXRlY3RfcmFuZ2UxNl9jLCAxLCA2 NCkKQEAgLTc1LDEyICs3NCwxMCBAQCBERVRFQ1RfQUxQSEFfRlVOQyhkZXRlY3RfYWxwaGExNl9m dWxsX2F2eDIsIGZmX2RldGVjdF9hbHBoYXdfZnVsbF9hdngyLCBmZl9kZXRlYwogREVURUNUX0FM UEhBX0ZVTkMoZGV0ZWN0X2FscGhhX2xpbWl0ZWRfYXZ4MiwgICBmZl9kZXRlY3RfYWxwaGFiX2xp bWl0ZWRfYXZ4MiwgZmZfZGV0ZWN0X2FscGhhX2xpbWl0ZWRfYywgICAwLCAzMikKIERFVEVDVF9B TFBIQV9GVU5DKGRldGVjdF9hbHBoYTE2X2xpbWl0ZWRfYXZ4MiwgZmZfZGV0ZWN0X2FscGhhd19s aW1pdGVkX2F2eDIsIGZmX2RldGVjdF9hbHBoYTE2X2xpbWl0ZWRfYywgMSwgMzIpCiAjZW5kaWYK LSNlbmRpZgogCiBhdl9jb2xkIHZvaWQgZmZfY29sb3JfZGV0ZWN0X2RzcF9pbml0X3g4NihGRkNv bG9yRGV0ZWN0RFNQQ29udGV4dCAqZHNwLCBpbnQgZGVwdGgsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBlbnVtIEFWQ29sb3JSYW5nZSBjb2xvcl9yYW5nZSkKIHsK LSNpZiBIQVZFX1g4NkFTTQogICAgIGludCBjcHVfZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7 CiAjaWYgSEFWRV9BVlgyX0VYVEVSTkFMCiAgICAgaWYgKEVYVEVSTkFMX0FWWDJfRkFTVChjcHVf ZmxhZ3MpKSB7CkBAIC0xMDIsNSArOTksNCBAQCBhdl9jb2xkIHZvaWQgZmZfY29sb3JfZGV0ZWN0 X2RzcF9pbml0X3g4NihGRkNvbG9yRGV0ZWN0RFNQQ29udGV4dCAqZHNwLCBpbnQgZGVwdAogICAg ICAgICB9CiAgICAgfQogI2VuZGlmCi0jZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVy L3g4Ni92Zl9lcV9pbml0LmMgYi9saWJhdmZpbHRlci94ODYvdmZfZXFfaW5pdC5jCmluZGV4IGEx NzE5NjcyZGYuLmE2NmRkMWI5OTMgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3g4Ni92Zl9lcV9p bml0LmMKKysrIGIvbGliYXZmaWx0ZXIveDg2L3ZmX2VxX2luaXQuYwpAQCAtMjgsNyArMjgsNiBA QAogZXh0ZXJuIHZvaWQgZmZfcHJvY2Vzc19vbmVfbGluZV9zc2UyKGNvbnN0IHVpbnQ4X3QgKnNy YywgdWludDhfdCAqZHN0LCBzaG9ydCBjb250cmFzdCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaG9ydCBicmlnaHRuZXNzLCBpbnQgdyk7CiAKLSNpZiBIQVZFX1g4NkFT TQogc3RhdGljIHZvaWQgcHJvY2Vzc19zc2UyKEVRUGFyYW1ldGVycyAqcGFyYW0sIHVpbnQ4X3Qg KmRzdCwgaW50IGRzdF9zdHJpZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWlu dDhfdCAqc3JjLCBpbnQgc3JjX3N0cmlkZSwgaW50IHcsIGludCBoKQogewpAQCAtNDIsMTQgKzQx LDExIEBAIHN0YXRpYyB2b2lkIHByb2Nlc3Nfc3NlMihFUVBhcmFtZXRlcnMgKnBhcmFtLCB1aW50 OF90ICpkc3QsIGludCBkc3Rfc3RyaWRlLAogICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKICAg ICB9CiB9Ci0jZW5kaWYKIAogYXZfY29sZCB2b2lkIGZmX2VxX2luaXRfeDg2KEVRQ29udGV4dCAq ZXEpCiB7Ci0jaWYgSEFWRV9YODZBU00KICAgICBpbnQgY3B1X2ZsYWdzID0gYXZfZ2V0X2NwdV9m bGFncygpOwogICAgIGlmIChFWFRFUk5BTF9TU0UyKGNwdV9mbGFncykpIHsKICAgICAgICAgZXEt PnByb2Nlc3MgPSBwcm9jZXNzX3NzZTI7CiAgICAgfQotI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9s aWJhdmZpbHRlci94ODYvdmZfZ3JhZGZ1bl9pbml0LmMgYi9saWJhdmZpbHRlci94ODYvdmZfZ3Jh ZGZ1bl9pbml0LmMKaW5kZXggZjI2MmYwYTFiYi4uNmIyNzE2OWI4MiAxMDA2NDQKLS0tIGEvbGli YXZmaWx0ZXIveDg2L3ZmX2dyYWRmdW5faW5pdC5jCisrKyBiL2xpYmF2ZmlsdGVyL3g4Ni92Zl9n cmFkZnVuX2luaXQuYwpAQCAtMTgsNyArMTgsNiBAQAogICogRm91bmRhdGlvbiwgSW5jLiwgNTEg RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQog ICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvYXR0cmlidXRl cy5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9jcHUuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwveDg2 L2NwdS5oIgpAQCAtMzUsNyArMzQsNiBAQCB2b2lkIGZmX2dyYWRmdW5fYmx1cl9saW5lX21vdmRx dV9zc2UyKGludHB0cl90IHgsIHVpbnQxNl90ICpidWYsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQxNl90ICpidWYxLCB1aW50MTZfdCAqZGMsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNyYzEsIGNv bnN0IHVpbnQ4X3QgKnNyYzIpOwogCi0jaWYgSEFWRV9YODZBU00KIHN0YXRpYyB2b2lkIGdyYWRm dW5fZmlsdGVyX2xpbmVfc3NzZTModWludDhfdCAqZHN0LCBjb25zdCB1aW50OF90ICpzcmMsIGNv bnN0IHVpbnQxNl90ICpkYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50IHdpZHRoLCBpbnQgdGhyZXNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCB1aW50MTZfdCAqZGl0aGVycykKQEAgLTY2LDExICs2NCw5IEBAIHN0YXRpYyB2 b2lkIGdyYWRmdW5fYmx1cl9saW5lX3NzZTIodWludDE2X3QgKmRjLCB1aW50MTZfdCAqYnVmLCBj b25zdCB1aW50MTZfdCAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRjICsgd2lkdGgsIHNyYyArIHdpZHRoICogMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3JjICsgd2lkdGggKiAyICsgc3JjX2xpbmVzaXplKTsKIH0KLSNlbmRp ZiAvKiBIQVZFX1g4NkFTTSAqLwogCiBhdl9jb2xkIHZvaWQgZmZfZ3JhZGZ1bl9pbml0X3g4NihH cmFkRnVuQ29udGV4dCAqZ2YpCiB7Ci0jaWYgSEFWRV9YODZBU00KICAgICBpbnQgY3B1X2ZsYWdz ID0gYXZfZ2V0X2NwdV9mbGFncygpOwogCiAgICAgaWYgKEVYVEVSTkFMX1NTU0UzKGNwdV9mbGFn cykpCkBAIC03OCw1ICs3NCw0IEBAIGF2X2NvbGQgdm9pZCBmZl9ncmFkZnVuX2luaXRfeDg2KEdy YWRGdW5Db250ZXh0ICpnZikKIAogICAgIGlmIChFWFRFUk5BTF9TU0UyKGNwdV9mbGFncykpCiAg ICAgICAgIGdmLT5ibHVyX2xpbmUgPSBncmFkZnVuX2JsdXJfbGluZV9zc2UyOwotI2VuZGlmIC8q IEhBVkVfWDg2QVNNICovCiB9CmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci94ODYvdmZfaHFkbjNk X2luaXQuYyBiL2xpYmF2ZmlsdGVyL3g4Ni92Zl9ocWRuM2RfaW5pdC5jCmluZGV4IDQzYWNhOTA4 YjAuLjE1ZTFhYjk1MzkgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3g4Ni92Zl9ocWRuM2RfaW5p dC5jCisrKyBiL2xpYmF2ZmlsdGVyL3g4Ni92Zl9ocWRuM2RfaW5pdC5jCkBAIC0yMyw3ICsyMyw2 IEBACiAKICNpbmNsdWRlICJsaWJhdnV0aWwvYXR0cmlidXRlcy5oIgogI2luY2x1ZGUgImxpYmF2 ZmlsdGVyL3ZmX2hxZG4zZC5oIgotI2luY2x1ZGUgImNvbmZpZy5oIgogCiB2b2lkIGZmX2hxZG4z ZF9yb3dfOF94ODYodWludDhfdCAqc3JjLCB1aW50OF90ICpkc3QsIHVpbnQxNl90ICpsaW5lX2Fu dCwKICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCAqZnJhbWVfYW50LCBwdHJkaWZm X3QgdywgaW50MTZfdCAqc3BhdGlhbCwKQEAgLTQwLDEwICszOSw4IEBAIHZvaWQgZmZfaHFkbjNk X3Jvd18xNl94ODYodWludDhfdCAqc3JjLCB1aW50OF90ICpkc3QsIHVpbnQxNl90ICpsaW5lX2Fu dCwKIAogYXZfY29sZCB2b2lkIGZmX2hxZG4zZF9pbml0X3g4NihIUUROM0RDb250ZXh0ICpocWRu M2QpCiB7Ci0jaWYgSEFWRV9YODZBU00KICAgICBocWRuM2QtPmRlbm9pc2Vfcm93WzhdICA9IGZm X2hxZG4zZF9yb3dfOF94ODY7CiAgICAgaHFkbjNkLT5kZW5vaXNlX3Jvd1s5XSAgPSBmZl9ocWRu M2Rfcm93XzlfeDg2OwogICAgIGhxZG4zZC0+ZGVub2lzZV9yb3dbMTBdID0gZmZfaHFkbjNkX3Jv d18xMF94ODY7CiAgICAgaHFkbjNkLT5kZW5vaXNlX3Jvd1sxNl0gPSBmZl9ocWRuM2Rfcm93XzE2 X3g4NjsKLSNlbmRpZiAvKiBIQVZFX1g4NkFTTSAqLwogfQpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0 ZXIveDg2L3ZmX2lkZXRkc3BfaW5pdC5jIGIvbGliYXZmaWx0ZXIveDg2L3ZmX2lkZXRkc3BfaW5p dC5jCmluZGV4IDFmNGMyZTJiYzMuLjVjZmNiNGVhZTUgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVy L3g4Ni92Zl9pZGV0ZHNwX2luaXQuYworKysgYi9saWJhdmZpbHRlci94ODYvdmZfaWRldGRzcF9p bml0LmMKQEAgLTE4LDEyICsxOCw5IEBACiAKICNpbmNsdWRlICJsaWJhdnV0aWwvYXR0cmlidXRl cy5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9jcHUuaCIKLSNpbmNsdWRlICJsaWJhdnV0aWwveDg2 L2FzbS5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC94ODYvY3B1LmgiCiAjaW5jbHVkZSAibGliYXZm aWx0ZXIvdmZfaWRldGRzcC5oIgogCi0jaWYgSEFWRV9YODZBU00KLQogLyogZGVjbGFyZXMgbWFp biBjYWxsYWJsZSBpZGV0X2ZpbHRlcl9saW5lX3NzZTIoKSAqLwogI2RlZmluZSBGVU5DX01BSU5f REVDTChLSU5ELCBTUEFOKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CiBpbnQgZmZfaWRldF9maWx0ZXJfbGluZV8jI0tJTkQoY29uc3QgdWludDhfdCAqYSwgY29uc3Qg dWludDhfdCAqYiwgICAgICAgIFwKQEAgLTY4LDEwICs2NSw4IEBAIEZVTkNfTUFJTl9ERUNMXzE2 Yml0KGF2eDIsIDE2KQogRlVOQ19NQUlOX0RFQ0woYXZ4NTEyaWNsLCA2NCkKIEZVTkNfTUFJTl9E RUNMXzE2Yml0KGF2eDUxMmljbCwgMzIpCiAKLSNlbmRpZgogYXZfY29sZCB2b2lkIGZmX2lkZXRf ZHNwX2luaXRfeDg2KElERVREU1BDb250ZXh0ICpkc3AsIGludCBkZXB0aCkKIHsKLSNpZiBIQVZF X1g4NkFTTQogICAgIGNvbnN0IGludCBjcHVfZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7CiAK ICAgICBpZiAoRVhURVJOQUxfU1NFMihjcHVfZmxhZ3MpKSB7CkBAIC04Myw1ICs3OCw0IEBAIGF2 X2NvbGQgdm9pZCBmZl9pZGV0X2RzcF9pbml0X3g4NihJREVURFNQQ29udGV4dCAqZHNwLCBpbnQg ZGVwdGgpCiAgICAgaWYgKEVYVEVSTkFMX0FWWDUxMklDTChjcHVfZmxhZ3MpKSB7CiAgICAgICAg IGRzcC0+ZmlsdGVyX2xpbmUgPSBkZXB0aCA+IDggPyBpZGV0X2ZpbHRlcl9saW5lXzE2Yml0X2F2 eDUxMmljbCA6IGlkZXRfZmlsdGVyX2xpbmVfYXZ4NTEyaWNsOwogICAgIH0KLSNlbmRpZiAvLyBI QVZFX1g4NkFTTQogfQpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIveDg2L3ZmX3B1bGx1cF9pbml0 LmMgYi9saWJhdmZpbHRlci94ODYvdmZfcHVsbHVwX2luaXQuYwppbmRleCA5NDNjMWRlOWQ3Li5m ZDVlNTljNmNlIDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci94ODYvdmZfcHVsbHVwX2luaXQuYwor KysgYi9saWJhdmZpbHRlci94ODYvdmZfcHVsbHVwX2luaXQuYwpAQCAtMTgsNyArMTgsNiBAQAog CiAjaW5jbHVkZSAibGliYXZ1dGlsL2F0dHJpYnV0ZXMuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwv Y3B1LmgiCi0jaW5jbHVkZSAibGliYXZ1dGlsL3g4Ni9hc20uaCIKICNpbmNsdWRlICJsaWJhdnV0 aWwveDg2L2NwdS5oIgogI2luY2x1ZGUgImxpYmF2ZmlsdGVyL3ZmX3B1bGx1cC5oIgogCkBAIC0y OCw3ICsyNyw2IEBAIGludCBmZl9wdWxsdXBfZmlsdGVyX3Zhcl9zc2UyICAoY29uc3QgdWludDhf dCAqYSwgY29uc3QgdWludDhfdCAqYiwgcHRyZGlmZl90IHMpCiAKIGF2X2NvbGQgdm9pZCBmZl9w dWxsdXBfaW5pdF94ODYoUHVsbHVwQ29udGV4dCAqcykKIHsKLSNpZiBIQVZFX1g4NkFTTQogICAg IGludCBjcHVfZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7CiAKICAgICBpZiAoRVhURVJOQUxf U1NFMihjcHVfZmxhZ3MpKSB7CkBAIC0zOCw1ICszNiw0IEBAIGF2X2NvbGQgdm9pZCBmZl9wdWxs dXBfaW5pdF94ODYoUHVsbHVwQ29udGV4dCAqcykKICAgICBpZiAoRVhURVJOQUxfU1NTRTMoY3B1 X2ZsYWdzKSkgewogICAgICAgICBzLT5jb21iID0gZmZfcHVsbHVwX2ZpbHRlcl9jb21iX3Nzc2Uz OwogICAgIH0KLSNlbmRpZgogfQotLSAKMi41Mi4wCgoKRnJvbSA2MmVlMWQ0NzM1ZTMyMzk3NmJj ZjNkMDg3Y2U3MmEyYWI0Mzk2NWJhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRy ZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogVGh1 LCAyNyBOb3YgMjAyNSAyMTowNDozMyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTU3LzMwNF0gc3dy ZXNhbXBsZS94ODYvTWFrZWZpbGU6IE9ubHkgY29tcGlsZSBBU00gaW5pdCBmaWxlcwogd2hlbiBY ODZBU00gaXMgZW5hYmxlZApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxh aW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKVG8gZG8g c28sIHNpbXBseSBhZGQgdGhlc2UgaW5pdCBmaWxlcyB0byBYODZBU00tT0JKUyBpbnN0ZWFkIG9m IE9CSlMKaW4gdGhlIE1ha2VmaWxlLiBUaGUgZm9ybWVyIGlzIGFscmVhZHkgdXNlZCBmb3IgdGhl IGFjdHVhbCBhc3NlbWJseQpmaWxlcywgYnV0IHVzaW5nIHRoZW0gZm9yIHRoZSBDIGluaXQgZmls ZXMganVzdCB3b3JrcywgYmVjYXVzZSB0aGUgYnVpbGQKc3lzdGVtIHVzZXMgZmlsZSBleHRlbnNp b25zIHRvIGRlcml2ZSB3aGV0aGVyIGl0IGlzIGEgQyBvciBhIE5BU00gZmlsZS4KClRoaXMgYXZv aWRzIGNvbXBpbGluZyB1bnVzZWQgZnVuY3Rpb24gc3R1YnMgYW5kIGFsc28gcmVkdWNlcyBvdXIK cmVsaWFuY2Ugb24gRENFOiBXZSBkb24ndCBhZGQgJWlmIGNoZWNrcyB0byB0aGUgYXNtIGZpbGVz IGV4Y2VwdApmb3IgQVZYLCBBVlgyLCBGTUEzLCBGTUE0LCBYT1AgYW5kIEFWWDUxMiwgc28gYWxs IHRoZSBNTVgtU1NFNApmdW5jdGlvbnMgd2lsbCBiZSBhdmFpbGFibGUuIEl0IGFsc28gYWxsb3dz IHRvIHJlbW92ZSBIQVZFX1g4NkFTTSBjaGVja3MKaW4gdGhlc2UgaW5pdCBmaWxlcy4KCih4ODYv b3BzLmMgaGFzIGFscmVhZHkgYmVlbiBwdXQgaW4gWDg2QVNNLU9CSlMuKQoKUmV2aWV3ZWQtYnk6 IEthY3BlciBNaWNoYWrFgm93IDxrYXNwZXI5M0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFu ZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIGxp YnN3cmVzYW1wbGUvcmVzYW1wbGVfZHNwLmMgICAgICB8ICAyICstCiBsaWJzd3Jlc2FtcGxlL3g4 Ni9NYWtlZmlsZSAgICAgICAgfCAxMyArKysrKystLS0tLS0tCiBsaWJzd3Jlc2FtcGxlL3g4Ni9y ZW1hdHJpeF9pbml0LmMgfCAgMiAtLQogMyBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyks IDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYnN3cmVzYW1wbGUvcmVzYW1wbGVfZHNw LmMgYi9saWJzd3Jlc2FtcGxlL3Jlc2FtcGxlX2RzcC5jCmluZGV4IDYxMWY0NDM3M2YuLjk2ZjU2 N2ZlMzIgMTAwNjQ0Ci0tLSBhL2xpYnN3cmVzYW1wbGUvcmVzYW1wbGVfZHNwLmMKKysrIGIvbGli c3dyZXNhbXBsZS9yZXNhbXBsZV9kc3AuYwpAQCAtNjgsNyArNjgsNyBAQCB2b2lkIHN3cmlfcmVz YW1wbGVfZHNwX2luaXQoUmVzYW1wbGVDb250ZXh0ICpjKQogICAgICAgICBicmVhazsKICAgICB9 CiAKLSNpZiBBUkNIX1g4NgorI2lmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAgICAgc3dyaV9y ZXNhbXBsZV9kc3BfeDg2X2luaXQoYyk7CiAjZWxpZiBBUkNIX0FSTQogICAgIHN3cmlfcmVzYW1w bGVfZHNwX2FybV9pbml0KGMpOwpkaWZmIC0tZ2l0IGEvbGlic3dyZXNhbXBsZS94ODYvTWFrZWZp bGUgYi9saWJzd3Jlc2FtcGxlL3g4Ni9NYWtlZmlsZQppbmRleCBmYTA2NDFmMDNmLi5jMDY1NWJi OGE4IDEwMDY0NAotLS0gYS9saWJzd3Jlc2FtcGxlL3g4Ni9NYWtlZmlsZQorKysgYi9saWJzd3Jl c2FtcGxlL3g4Ni9NYWtlZmlsZQpAQCAtMSw5ICsxLDggQEAKLVg4NkFTTS1PQkpTICAgICAgICAg ICAgICAgICAgICAgKz0geDg2L2F1ZGlvX2NvbnZlcnQub1wKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgeDg2L3JlbWF0cml4Lm9cCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHg4Ni9yZXNhbXBsZS5vXAotCi1PQkpTICAgICAgICAgICAgICAgICAgICAgICAg ICAgICs9IHg4Ni9hdWRpb19jb252ZXJ0X2luaXQub1wKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgeDg2L3JlbWF0cml4X2luaXQub1wKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgeDg2L3Jlc2FtcGxlX2luaXQub1wKK1g4NkFTTS1PQkpTICAgICAgICAgICAg ICAgICAgICAgKz0geDg2L2F1ZGlvX2NvbnZlcnQubyAgICAgIFwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeDg2L2F1ZGlvX2NvbnZlcnRfaW5pdC5vIFwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgeDg2L3JlbWF0cml4Lm8gICAgICAgICAgIFwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDg2L3JlbWF0cml4X2luaXQubyAgICAgIFwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDg2L3Jlc2FtcGxlLm8gICAgICAg ICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDg2L3Jlc2FtcGxlX2lu aXQubyAgICAgIFwKIAogT0JKUy0kKENPTkZJR19YTU1fQ0xPQkJFUl9URVNUKSArPSB4ODYvdzY0 eG1tdGVzdC5vCmRpZmYgLS1naXQgYS9saWJzd3Jlc2FtcGxlL3g4Ni9yZW1hdHJpeF9pbml0LmMg Yi9saWJzd3Jlc2FtcGxlL3g4Ni9yZW1hdHJpeF9pbml0LmMKaW5kZXggODllYzM2MmQ2Mi4uODhm MjdmNWU5MyAxMDA2NDQKLS0tIGEvbGlic3dyZXNhbXBsZS94ODYvcmVtYXRyaXhfaW5pdC5jCisr KyBiL2xpYnN3cmVzYW1wbGUveDg2L3JlbWF0cml4X2luaXQuYwpAQCAtMzIsNyArMzIsNiBAQCBE KGZsb2F0LCBhdngpCiBEKGludDE2LCBzc2UyKQogCiBhdl9jb2xkIGludCBzd3JpX3JlbWF0cml4 X2luaXRfeDg2KHN0cnVjdCBTd3JDb250ZXh0ICpzKXsKLSNpZiBIQVZFX1g4NkFTTQogICAgIGlu dCBtbV9mbGFncyA9IGF2X2dldF9jcHVfZmxhZ3MoKTsKICAgICBpbnQgbmJfaW4gID0gcy0+dXNl ZF9jaF9sYXlvdXQubmJfY2hhbm5lbHM7CiAgICAgaW50IG5iX291dCA9IHMtPm91dC5jaF9jb3Vu dDsKQEAgLTc5LDcgKzc4LDYgQEAgYXZfY29sZCBpbnQgc3dyaV9yZW1hdHJpeF9pbml0X3g4Nihz dHJ1Y3QgU3dyQ29udGV4dCAqcyl7CiAgICAgICAgIG1lbWNweShzLT5uYXRpdmVfc2ltZF9tYXRy aXgsIHMtPm5hdGl2ZV9tYXRyaXgsIG51bSAqIHNpemVvZihmbG9hdCkpOwogICAgICAgICBzLT5u YXRpdmVfc2ltZF9vbmUuZiA9IHMtPm5hdGl2ZV9vbmUuZjsKICAgICB9Ci0jZW5kaWYKIAogICAg IHJldHVybiAwOwogfQotLSAKMi41Mi4wCgoKRnJvbSBkOTZiNTZhM2IzZWM0ZjQzYjNhZjU3NTU1 ZDM5N2YyNDMwM2U3OGExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJo ZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogVGh1LCAyNyBO b3YgMjAyNSAyMToyNjozMSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTU4LzMwNF0gYXZ1dGlsL3g4 Ni9NYWtlZmlsZTogT25seSBjb21waWxlIEFTTSBpbml0IGZpbGVzIHdoZW4KIFg4NkFTTSBpcyBl bmFibGVkCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNl dD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpUbyBkbyBzbywgc2ltcGx5 IGFkZCB0aGVzZSBpbml0IGZpbGVzIHRvIFg4NkFTTS1PQkpTIGluc3RlYWQgb2YgT0JKUwppbiB0 aGUgTWFrZWZpbGUuIFRoZSBmb3JtZXIgaXMgYWxyZWFkeSB1c2VkIGZvciB0aGUgYWN0dWFsIGFz c2VtYmx5CmZpbGVzLCBidXQgdXNpbmcgdGhlbSBmb3IgdGhlIEMgaW5pdCBmaWxlcyBqdXN0IHdv cmtzLCBiZWNhdXNlIHRoZSBidWlsZApzeXN0ZW0gdXNlcyBmaWxlIGV4dGVuc2lvbnMgdG8gZGVy aXZlIHdoZXRoZXIgaXQgaXMgYSBDIG9yIGEgTkFTTSBmaWxlLgoKVGhpcyBhdm9pZHMgY29tcGls aW5nIHVudXNlZCBmdW5jdGlvbiBzdHVicyBhbmQgYWxzbyByZWR1Y2VzIG91cgpyZWxpYW5jZSBv biBEQ0U6IFdlIGRvbid0IGFkZCAlaWYgY2hlY2tzIHRvIHRoZSBhc20gZmlsZXMgZXhjZXB0CmZv ciBBVlgsIEFWWDIsIEZNQTMsIEZNQTQsIFhPUCBhbmQgQVZYNTEyLCBzbyBhbGwgdGhlIE1NWC1T U0U0CmZ1bmN0aW9ucyB3aWxsIGJlIGF2YWlsYWJsZS4gSXQgYWxzbyBhbGxvd3MgdG8gcmVtb3Zl IEhBVkVfWDg2QVNNIGNoZWNrcwppbiB0aGVzZSBpbml0IGZpbGVzLgoKUmV2aWV3ZWQtYnk6IEth Y3BlciBNaWNoYWrFgm93IDxrYXNwZXI5M0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFuZHJl YXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIGxpYmF2 dXRpbC9hZXMuYyAgICAgICAgfCAgMiArLQogbGliYXZ1dGlsL2ZpeGVkX2RzcC5jICB8ICAyICst CiBsaWJhdnV0aWwvZmxvYXRfZHNwLmMgIHwgIDIgKy0KIGxpYmF2dXRpbC9pbWd1dGlscy5jICAg fCAgMiArLQogbGliYXZ1dGlsL2xscy5jICAgICAgICB8ICAyICstCiBsaWJhdnV0aWwvcGl4ZWx1 dGlscy5jIHwgIDIgKy0KIGxpYmF2dXRpbC94ODYvTWFrZWZpbGUgfCAyOSArKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLQogNyBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAyNSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdnV0aWwvYWVzLmMgYi9saWJhdnV0aWwvYWVz LmMKaW5kZXggODBmOGEyMjUzZC4uZGU3MTQ0ZmFiOCAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL2Fl cy5jCisrKyBiL2xpYmF2dXRpbC9hZXMuYwpAQCAtMjM3LDcgKzIzNyw3IEBAIGludCBhdl9hZXNf aW5pdChBVkFFUyAqYSwgY29uc3QgdWludDhfdCAqa2V5LCBpbnQga2V5X2JpdHMsIGludCBkZWNy eXB0KQogCiAgICAgYS0+cm91bmRzID0gcm91bmRzOwogICAgIGEtPmNyeXB0ID0gZGVjcnlwdCA/ IGFlc19kZWNyeXB0IDogYWVzX2VuY3J5cHQ7Ci0jaWYgQVJDSF9YODYKKyNpZiBBUkNIX1g4NiAm JiBIQVZFX1g4NkFTTQogICAgIGZmX2luaXRfYWVzX3g4NihhLCBkZWNyeXB0KTsKICNlbmRpZgog CmRpZmYgLS1naXQgYS9saWJhdnV0aWwvZml4ZWRfZHNwLmMgYi9saWJhdnV0aWwvZml4ZWRfZHNw LmMKaW5kZXggOTVmMGViMjU5NS4uNzRjZWZkYjE0NSAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL2Zp eGVkX2RzcC5jCisrKyBiL2xpYmF2dXRpbC9maXhlZF9kc3AuYwpAQCAtMTY1LDcgKzE2NSw3IEBA IEFWRml4ZWREU1BDb250ZXh0ICogYXZwcml2X2FsbG9jX2ZpeGVkX2RzcChpbnQgYml0X2V4YWN0 KQogCiAjaWYgQVJDSF9SSVNDVgogICAgIGZmX2ZpeGVkX2RzcF9pbml0X3Jpc2N2KGZkc3ApOwot I2VsaWYgQVJDSF9YODYKKyNlbGlmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfZml4 ZWRfZHNwX2luaXRfeDg2KGZkc3ApOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9m bG9hdF9kc3AuYyBiL2xpYmF2dXRpbC9mbG9hdF9kc3AuYwppbmRleCBmMzhhZDU2NWNmLi41YmZh MTAwOGQxIDEwMDY0NAotLS0gYS9saWJhdnV0aWwvZmxvYXRfZHNwLmMKKysrIGIvbGliYXZ1dGls L2Zsb2F0X2RzcC5jCkBAIC0xNTksNyArMTU5LDcgQEAgYXZfY29sZCBBVkZsb2F0RFNQQ29udGV4 dCAqYXZwcml2X2Zsb2F0X2RzcF9hbGxvYyhpbnQgYml0X2V4YWN0KQogICAgIGZmX2Zsb2F0X2Rz cF9pbml0X3BwYyhmZHNwLCBiaXRfZXhhY3QpOwogI2VsaWYgQVJDSF9SSVNDVgogICAgIGZmX2Zs b2F0X2RzcF9pbml0X3Jpc2N2KGZkc3ApOwotI2VsaWYgQVJDSF9YODYKKyNlbGlmIEFSQ0hfWDg2 ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfZmxvYXRfZHNwX2luaXRfeDg2KGZkc3ApOwogI2VsaWYg QVJDSF9NSVBTCiAgICAgZmZfZmxvYXRfZHNwX2luaXRfbWlwcyhmZHNwKTsKZGlmZiAtLWdpdCBh L2xpYmF2dXRpbC9pbWd1dGlscy5jIGIvbGliYXZ1dGlsL2ltZ3V0aWxzLmMKaW5kZXggN2I4ODcz OGUyZC4uNjgxNDgyZGMwOCAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL2ltZ3V0aWxzLmMKKysrIGIv bGliYXZ1dGlsL2ltZ3V0aWxzLmMKQEAgLTM2Miw3ICszNjIsNyBAQCB2b2lkIGF2X2ltYWdlX2Nv cHlfcGxhbmVfdWNfZnJvbSh1aW50OF90ICpkc3QsIHB0cmRpZmZfdCBkc3RfbGluZXNpemUsCiB7 CiAgICAgaW50IHJldCA9IC0xOwogCi0jaWYgQVJDSF9YODYKKyNpZiBBUkNIX1g4NiAmJiBIQVZF X1g4NkFTTQogICAgIHJldCA9IGZmX2ltYWdlX2NvcHlfcGxhbmVfdWNfZnJvbV94ODYoZHN0LCBk c3RfbGluZXNpemUsIHNyYywgc3JjX2xpbmVzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYnl0ZXdpZHRoLCBoZWlnaHQpOwogI2VuZGlmCmRpZmYgLS1naXQg YS9saWJhdnV0aWwvbGxzLmMgYi9saWJhdnV0aWwvbGxzLmMKaW5kZXggZmU4ZjU1OTc2ZC4uMjcx NjgwMDljNSAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL2xscy5jCisrKyBiL2xpYmF2dXRpbC9sbHMu YwpAQCAtMTE0LDcgKzExNCw3IEBAIGF2X2NvbGQgdm9pZCBhdnByaXZfaW5pdF9sbHMoTExTTW9k ZWwgKm0sIGludCBpbmRlcF9jb3VudCkKICAgICBtLT5ldmFsdWF0ZV9sbHMgPSBldmFsdWF0ZV9s bHM7CiAjaWYgQVJDSF9SSVNDVgogICAgIGZmX2luaXRfbGxzX3Jpc2N2KG0pOwotI2VsaWYgQVJD SF9YODYKKyNlbGlmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNNCiAgICAgZmZfaW5pdF9sbHNfeDg2 KG0pOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9saWJhdnV0aWwvcGl4ZWx1dGlscy5jIGIvbGli YXZ1dGlsL3BpeGVsdXRpbHMuYwppbmRleCA4MjA4ODlhMTQzLi44ZTkxZjBhMmNjIDEwMDY0NAot LS0gYS9saWJhdnV0aWwvcGl4ZWx1dGlscy5jCisrKyBiL2xpYmF2dXRpbC9waXhlbHV0aWxzLmMK QEAgLTg2LDcgKzg2LDcgQEAgYXZfcGl4ZWx1dGlsc19zYWRfZm4gYXZfcGl4ZWx1dGlsc19nZXRf c2FkX2ZuKGludCB3X2JpdHMsIGludCBoX2JpdHMsIGludCBhbGlnbmUKICAgICBpZiAod19iaXRz ICE9IGhfYml0cykgLy8gb25seSBzcXVhcmVkIHNhZCBmb3Igbm93CiAgICAgICAgIHJldHVybiBO VUxMOwogCi0jaWYgQVJDSF9YODYKKyNpZiBBUkNIX1g4NiAmJiBIQVZFX1g4NkFTTQogICAgIGZm X3BpeGVsdXRpbHNfc2FkX2luaXRfeDg2KHNhZCwgYWxpZ25lZCk7CiAjZW5kaWYKIApkaWZmIC0t Z2l0IGEvbGliYXZ1dGlsL3g4Ni9NYWtlZmlsZSBiL2xpYmF2dXRpbC94ODYvTWFrZWZpbGUKaW5k ZXggOGNmZDY0NjEwOC4uNGUxYjRiMTE3NiAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL3g4Ni9NYWtl ZmlsZQorKysgYi9saWJhdnV0aWwveDg2L01ha2VmaWxlCkBAIC0xLDIzICsxLDE0IEBACi1PQkpT ICs9IHg4Ni9hZXNfaW5pdC5vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCi0gICAgICAgIHg4Ni9jcHUubyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIHg4Ni9maXhlZF9kc3BfaW5p dC5vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAg IHg4Ni9mbG9hdF9kc3BfaW5pdC5vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCi0gICAgICAgIHg4Ni9pbWd1dGlsc19pbml0Lm8gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIHg4Ni9sbHNfaW5pdC5vICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0KLU9CSlMtJChI QVZFX1g4NkFTTSkgKz0geDg2L3R4X2Zsb2F0X2luaXQubyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKLQotT0JKUy0kKENPTkZJR19QSVhFTFVUSUxTKSArPSB4ODYvcGl4ZWx1dGlsc19p bml0Lm8gICAgICAgICAgICAgICAgICAgICAgXAorT0JKUyArPSB4ODYvY3B1Lm8gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogCiBFTU1TX09C SlNfJChIQVZFX01NWF9JTkxJTkUpXyQoSEFWRV9NTVhfRVhURVJOQUwpXyQoSEFWRV9NTV9FTVBU WSkgPSB4ODYvZW1tcy5vCiAKLVg4NkFTTS1PQkpTICs9IHg4Ni9hZXMubyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICB4ODYvY3B1 aWQubyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg ICAgICAgICAgICAkKEVNTVNfT0JKU19feWVzXykgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKLSAgICAgICAgICAgICB4ODYvZml4ZWRfZHNwLm8gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICB4ODYvZmxvYXRfZHNw Lm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAg ICAgICB4ODYvaW1ndXRpbHMubyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKLSAgICAgICAgICAgICB4ODYvbGxzLm8gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICB4ODYvdHhfZmxvYXQubyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK1g4NkFTTS1PQkpT ICs9IHg4Ni9hZXMubyB4ODYvYWVzX2luaXQubyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgICAgICAgIHg4Ni9jcHVpZC5vICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICQoRU1NU19PQkpTX195ZXNf KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg IHg4Ni9maXhlZF9kc3AubyB4ODYvZml4ZWRfZHNwX2luaXQubyAgICAgICAgICAgICAgICAgICAg IFwKKyAgICAgICAgICAgICAgIHg4Ni9mbG9hdF9kc3AubyB4ODYvZmxvYXRfZHNwX2luaXQubyAg ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgIHg4Ni9pbWd1dGlscy5vIHg4Ni9p bWd1dGlsc19pbml0Lm8gICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgIHg4 Ni9sbHMubyB4ODYvbGxzX2luaXQubyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICAgICAgICAgICAgIHg4Ni90eF9mbG9hdC5vIHg4Ni90eF9mbG9hdF9pbml0Lm8gICAgICAg ICAgICAgICAgICAgICAgIFwKIAotWDg2QVNNLU9CSlMtJChDT05GSUdfUElYRUxVVElMUykgKz0g eDg2L3BpeGVsdXRpbHMubyAgICAgICAgICAgICAgICAgICAgXAorWDg2QVNNLU9CSlMtJChDT05G SUdfUElYRUxVVElMUykgKz0geDg2L3BpeGVsdXRpbHMubyB4ODYvcGl4ZWx1dGlsc19pbml0Lm8K LS0gCjIuNTIuMAoKCkZyb20gZDNmOGY4MDlhOWExNDU3OWNmZmViNjcwYTlkNTc0YmU4OWUyMGRj YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUnVzc2VsbCBHcmVlbmUgPHJ1c3NlbGxn cmVlbmU4QGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAyOSBOb3YgMjAyNSAxMjo0MjoxMyAtMDcwMApT dWJqZWN0OiBbUEFUQ0ggMTU5LzMwNF0gaHdjb250ZXh0X3Z1bGthbjogcmVtb3ZlIFZLX0hPU1Rf SU1BR0VfQ09QWV9NRU1DUFkKIGZsYWcKClJlYWRpbmcgdGhlIHNwZWMgZm9yIHdoYXQgdGhpcyBm bGFnIG1lYW5zLCBpdCBjb3BpZXMgdGhlIGRhdGEgdmVyYmF0aW0sIGluY2x1ZGluZyBhbnkgc3dp enpsaW5nL3RpbGluZywgdGhpcyBoYXMgdHdvIGlzc3VlcwoKMS4gdGhlIGZvcm1hdCBtYXkgbm90 IGJlIHdoYXQgZmZtcGVnIGV4cGVjdHMgZWxzZXdoZXJlLCBhcyBpdCBpcyBleHBlY2luZyBub3Jt YWwgcGl0Y2ggbGluZWFyIGhvc3QgbWVtZW9yeSBpbiBgc3dmYAoyLiB0aGUgc2l6ZSBvZiB0aGUg Y29waWVkIGRhdGEgbWF5IG5vdCBtYXRjaCB0aGUgc2l6ZSBvZiBidWZmZXIgcHJvdmlkZWQsIGNh dXNpbmcgaGVhcCBidWZmZXIgb3ZlcmZsb3cKCkl0IHNlZW1zIGxpa2UgYWRkaXRpb24gb2YgdGhp cyBmbGFnIGlzIGFuIG92ZXJzaWdodCBhcyBpdCBzZWVtcyB0byBiZSBmb3IgY2FjaGluZy9iYWNr dXBzIG9mIGltYWdlIGRhdGEsIGp1c3QgdG8gYmUgdXNlZCB3aXRoIGNvcHlpbmcgYmFjayB0byB0 aGUgR1BVIHdpdGggdGhlIE1FTUNQWSBmbGFnLCB3aGljaCBpcyAqbm90KiBob3cgaXRzIHVzZWQg aW4gZmZtcGVnLgoKQWRkaXRpb25hbGx5LCBzZXQgbWVtb3J5Um93TGVuZ3RoIGFzIGlmIGl0IGlz bid0IHNldCwgaXQgYXNzdW1lcyBwaXRjaCA9IHdpZHRoX2luX2J5dGVzLCB3aGljaCBJIGRvbid0 IHRoaW5rIGlzIG5lY2Vzc2FyaWx5IHRoZSBjYXNlCi0tLQogbGliYXZ1dGlsL2h3Y29udGV4dF92 dWxrYW4uYyB8IDMgKy0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL2h3Y29udGV4dF92dWxrYW4uYyBiL2xpYmF2 dXRpbC9od2NvbnRleHRfdnVsa2FuLmMKaW5kZXggYTJjYWFhMDk1OS4uYWFjNzc2ODAzMyAxMDA2 NDQKLS0tIGEvbGliYXZ1dGlsL2h3Y29udGV4dF92dWxrYW4uYworKysgYi9saWJhdnV0aWwvaHdj b250ZXh0X3Z1bGthbi5jCkBAIC00NDQwLDcgKzQ0NDAsNiBAQCBzdGF0aWMgaW50IHZ1bGthbl90 cmFuc2Zlcl9ob3N0KEFWSFdGcmFtZXNDb250ZXh0ICpod2ZjLCBBVkZyYW1lICpod2YsCiAgICAg ICAgIH07CiAgICAgICAgIFZrQ29weU1lbW9yeVRvSW1hZ2VJbmZvRVhUIGNvcHlfaW5mbyA9IHsK ICAgICAgICAgICAgIC5zVHlwZSA9IFZLX1NUUlVDVFVSRV9UWVBFX0NPUFlfTUVNT1JZX1RPX0lN QUdFX0lORk9fRVhULAotICAgICAgICAgICAgLmZsYWdzID0gVktfSE9TVF9JTUFHRV9DT1BZX01F TUNQWV9FWFQsCiAgICAgICAgICAgICAucmVnaW9uQ291bnQgPSAxLAogICAgICAgICAgICAgLnBS ZWdpb25zID0gJnJlZ2lvbl9pbmZvLAogICAgICAgICB9OwpAQCAtNDQ2Niw3ICs0NDY1LDYgQEAg c3RhdGljIGludCB2dWxrYW5fdHJhbnNmZXJfaG9zdChBVkhXRnJhbWVzQ29udGV4dCAqaHdmYywg QVZGcmFtZSAqaHdmLAogICAgICAgICB9OwogICAgICAgICBWa0NvcHlJbWFnZVRvTWVtb3J5SW5m b0VYVCBjb3B5X2luZm8gPSB7CiAgICAgICAgICAgICAuc1R5cGUgPSBWS19TVFJVQ1RVUkVfVFlQ RV9DT1BZX0lNQUdFX1RPX01FTU9SWV9JTkZPX0VYVCwKLSAgICAgICAgICAgIC5mbGFncyA9IFZL X0hPU1RfSU1BR0VfQ09QWV9NRU1DUFlfRVhULAogICAgICAgICAgICAgLnJlZ2lvbkNvdW50ID0g MSwKICAgICAgICAgICAgIC5wUmVnaW9ucyA9ICZyZWdpb25faW5mbywKICAgICAgICAgfTsKQEAg LTQ0NzYsNiArNDQ3NCw3IEBAIHN0YXRpYyBpbnQgdnVsa2FuX3RyYW5zZmVyX2hvc3QoQVZIV0Zy YW1lc0NvbnRleHQgKmh3ZmMsIEFWRnJhbWUgKmh3ZiwKICAgICAgICAgICAgIGdldF9wbGFuZV93 aCgmcF93LCAmcF9oLCBzd2YtPmZvcm1hdCwgc3dmLT53aWR0aCwgc3dmLT5oZWlnaHQsIGkpOwog CiAgICAgICAgICAgICByZWdpb25faW5mby5wSG9zdFBvaW50ZXIgPSBzd2YtPmRhdGFbaV07Cisg ICAgICAgICAgICByZWdpb25faW5mby5tZW1vcnlSb3dMZW5ndGggPSBzd2YtPmxpbmVzaXplW2ld OwogICAgICAgICAgICAgcmVnaW9uX2luZm8uaW1hZ2VTdWJyZXNvdXJjZS5hc3BlY3RNYXNrID0g ZmZfdmtfYXNwZWN0X2ZsYWcoaHdmLCBpKTsKICAgICAgICAgICAgIHJlZ2lvbl9pbmZvLmltYWdl RXh0ZW50ID0gKFZrRXh0ZW50M0QpeyBwX3csIHBfaCwgMSB9OwogICAgICAgICAgICAgY29weV9p bmZvLnNyY0ltYWdlID0gaHdmX3ZrLT5pbWdbaW1nX2lkeF07Ci0tIAoyLjUyLjAKCgpGcm9tIGFk ZjAyNWI0ZjIwMDE5NjRhMzE4ZDhlYmRiZWJhYWQwODk0MjczNTkgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206ID0/VVRGLTg/cT9LYWNwZXI9MjBNaWNoYWo9QzU9ODJvdz89IDxrYXNwZXI5 M0BnbWFpbC5jb20+CkRhdGU6IFN1biwgMzAgTm92IDIwMjUgMDc6Mzg6MzEgKzAxMDAKU3ViamVj dDogW1BBVENIIDE2MC8zMDRdIHRlc3RzL2NoZWNrYXNtOiBmaXggY2hlY2sgZm9yIDMyLWJpdCBX aW5kb3dzIGJ1aWxkCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsg Y2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpXaXRoIC0tZGlz YWJsZS1hc20sIEFSQ0hfWDg2XzMyIGlzIHNldCB0byAwLCBidXQgd2Ugc3RpbGwgYnVpbGQgdGhl CmNoZWNrYXNtIGJpbmFyeS4gVXBkYXRlIHRoZSBjaGVjayBzbyBpdCBpcyBjb25maWcuaCBhZ25v c3RpYy4KClNpZ25lZC1vZmYtYnk6IEthY3BlciBNaWNoYWrFgm93IDxrYXNwZXI5M0BnbWFpbC5j b20+Ci0tLQogdGVzdHMvY2hlY2thc20vY2hlY2thc20uaCB8IDIgKy0KIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNr YXNtL2NoZWNrYXNtLmggYi90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oCmluZGV4IGJkMzNhYmEy NjMuLjA1Zjc0Y2ExNmIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmgKKysr IGIvdGVzdHMvY2hlY2thc20vY2hlY2thc20uaApAQCAtNDQsNyArNDQsNyBAQAogCiAjaWZkZWYg X1dJTjMyCiAjaW5jbHVkZSA8d2luZG93cy5oPgotI2lmIEFSQ0hfWDg2XzMyCisjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfTV9JWDg2KQogI2luY2x1ZGUgPHNldGptcC5oPgogdHlw ZWRlZiBqbXBfYnVmIGNoZWNrYXNtX2NvbnRleHQ7CiAjZGVmaW5lIGNoZWNrYXNtX3NhdmVfY29u dGV4dCgpIGNoZWNrYXNtX2hhbmRsZV9zaWduYWwoc2V0am1wKGNoZWNrYXNtX2NvbnRleHRfYnVm KSkKLS0gCjIuNTIuMAoKCkZyb20gMmU3NzU2MDk3ZGJhY2I4YzQzYjk3M2NiMGE1MDNhYzcwZDVm ZTg2YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTHlubmUgPGRldkBseW5uZS5lZT4K RGF0ZTogU3VuLCAzMCBOb3YgMjAyNSAyMzoxMDozMSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTYx LzMwNF0gaHdjb250ZXh0X3Z1bGthbjogZml4IFZrSW1hZ2VUb01lbW9yeUNvcHlFWFQuc1R5cGUK Ckl0IHdhcyBjb3B5IHBhc3RlZCBmcm9tIHRoZSB1cGxvYWQgcGF0aC4KU29tZWhvdywgaXQgd2Fz IG1pc3NlZCwgZGVzcGl0ZSBnb2Qga25vd3MgaG93IG1hbnkgdmFsaWRhdGlvbiBsYXllciBydW5z LgotLS0KIGxpYmF2dXRpbC9od2NvbnRleHRfdnVsa2FuLmMgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9saWJhdnV0aWwv aHdjb250ZXh0X3Z1bGthbi5jIGIvbGliYXZ1dGlsL2h3Y29udGV4dF92dWxrYW4uYwppbmRleCBh YWM3NzY4MDMzLi5jMzMyMmJhZmJkIDEwMDY0NAotLS0gYS9saWJhdnV0aWwvaHdjb250ZXh0X3Z1 bGthbi5jCisrKyBiL2xpYmF2dXRpbC9od2NvbnRleHRfdnVsa2FuLmMKQEAgLTQ0NTgsNyArNDQ1 OCw3IEBAIHN0YXRpYyBpbnQgdnVsa2FuX3RyYW5zZmVyX2hvc3QoQVZIV0ZyYW1lc0NvbnRleHQg Kmh3ZmMsIEFWRnJhbWUgKmh3ZiwKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIFZr SW1hZ2VUb01lbW9yeUNvcHlFWFQgcmVnaW9uX2luZm8gPSB7Ci0gICAgICAgICAgICAuc1R5cGUg PSBWS19TVFJVQ1RVUkVfVFlQRV9NRU1PUllfVE9fSU1BR0VfQ09QWV9FWFQsCisgICAgICAgICAg ICAuc1R5cGUgPSBWS19TVFJVQ1RVUkVfVFlQRV9JTUFHRV9UT19NRU1PUllfQ09QWV9FWFQsCiAg ICAgICAgICAgICAuaW1hZ2VTdWJyZXNvdXJjZSA9IHsKICAgICAgICAgICAgICAgICAubGF5ZXJD b3VudCA9IDEsCiAgICAgICAgICAgICB9LAotLSAKMi41Mi4wCgoKRnJvbSAzNmU4OTE3ZTliNmZk NjI3ZmE2YzBkZjJmODZlZDlmM2RmNTdiOTk3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBsbHl5ciA8bGx5eXIucHVibGljQGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAyOSBOb3YgMjAyNSAx NzowMzoxNyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggMTYyLzMwNF0gYXZ1dGlsL2h3Y29udGV4dF9k M2QxMnZhOiB1c2UgaHdkZXYgY29udGV4dCBmb3IKIGxvZ2dpbmcKClRoaXMgZml4ZXMgd2Fybmlu ZyBhYm91dCBhdl9sb2cgYmVpbmcgY2FsbGVkIHdpdGggTlVMTCBBVkNsYXNzLiBUaGlzIGlzCmFs c28gYW4gQVBJIHZpb2xhdGlvbgoKRml4ZXM6IGh0dHBzOi8vdHJhYy5mZm1wZWcub3JnL3RpY2tl dC8xMTMzNQotLS0KIGxpYmF2dXRpbC9od2NvbnRleHRfZDNkMTJ2YS5jIHwgNCArKy0tCiAxIGZp bGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2xpYmF2dXRpbC9od2NvbnRleHRfZDNkMTJ2YS5jIGIvbGliYXZ1dGlsL2h3Y29udGV4dF9kM2Qx MnZhLmMKaW5kZXggYjgwMjI3YjU2Yy4uMTY0ZjE1YTI4NSAxMDA2NDQKLS0tIGEvbGliYXZ1dGls L2h3Y29udGV4dF9kM2QxMnZhLmMKKysrIGIvbGliYXZ1dGlsL2h3Y29udGV4dF9kM2QxMnZhLmMK QEAgLTc0Niw3ICs3NDYsNyBAQCBzdGF0aWMgaW50IGQzZDEydmFfZGV2aWNlX2NyZWF0ZShBVkhX RGV2aWNlQ29udGV4dCAqaHdkZXYsIGNvbnN0IGNoYXIgKmRldmljZSwKICAgICAgICAgICAgIERY R0lfQURBUFRFUl9ERVNDIGRlc2M7CiAgICAgICAgICAgICBociA9IElEWEdJQWRhcHRlcjJfR2V0 RGVzYyhwQWRhcHRlciwgJmRlc2MpOwogICAgICAgICAgICAgaWYgKCFGQUlMRUQoaHIpKSB7Ci0g ICAgICAgICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0lORk8sICJVc2luZyBkZXZpY2UgJTA0 eDolMDR4ICglbHMpLlxuIiwKKyAgICAgICAgICAgICAgICBhdl9sb2coaHdkZXYsIEFWX0xPR19J TkZPLCAiVXNpbmcgZGV2aWNlICUwNHg6JTA0eCAoJWxzKS5cbiIsCiAgICAgICAgICAgICAgICAg ICAgICAgIGRlc2MuVmVuZG9ySWQsIGRlc2MuRGV2aWNlSWQsIGRlc2MuRGVzY3JpcHRpb24pOwog ICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC03NTQsNyArNzU0LDcgQEAgc3RhdGljIGludCBk M2QxMnZhX2RldmljZV9jcmVhdGUoQVZIV0RldmljZUNvbnRleHQgKmh3ZGV2LCBjb25zdCBjaGFy ICpkZXZpY2UsCiAgICAgICAgIGhyID0gcHJpdi0+Y3JlYXRlX2RldmljZSgoSVVua25vd24gKilw QWRhcHRlciwgRDNEX0ZFQVRVUkVfTEVWRUxfMTJfMCwgJklJRF9JRDNEMTJEZXZpY2UsICh2b2lk ICoqKSZjdHgtPmRldmljZSk7CiAgICAgICAgIEQzRDEyX09CSkVDVF9SRUxFQVNFKHBBZGFwdGVy KTsKICAgICAgICAgaWYgKEZBSUxFRChocikpIHsKLSAgICAgICAgICAgIGF2X2xvZyhjdHgsIEFW X0xPR19FUlJPUiwgIkZhaWxlZCB0byBjcmVhdGUgRGlyZWN0IDNEIDEyIGRldmljZSAoJWx4KVxu IiwgKGxvbmcpaHIpOworICAgICAgICAgICAgYXZfbG9nKGh3ZGV2LCBBVl9MT0dfRVJST1IsICJG YWlsZWQgdG8gY3JlYXRlIERpcmVjdCAzRCAxMiBkZXZpY2UgKCVseClcbiIsIChsb25nKWhyKTsK ICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX1VOS05PV047CiAgICAgICAgIH0KICAgICB9Ci0t IAoyLjUyLjAKCgpGcm9tIDM5ZWNmNWQwMzBmMTJmYzA2NDlhYmZiNzRjMjM5Y2Y1MjFjYTVlOGIg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IGF2ZXJuZSA8YXZlcm5lMzgxQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAxIERlYyAyMDI1IDE1OjQwOjQwICswMTAwClN1YmplY3Q6IFtQQVRDSCAx NjMvMzA0XSB2dWxrYW46IGZpeCBob3N0IGNvcHkgc3RyaWRlCgptZW1vcnlSb3dMZW5ndGggaXMg aXMgdGV4ZWxzLCBub3QgYnl0ZXMKLS0tCiBsaWJhdnV0aWwvaHdjb250ZXh0X3Z1bGthbi5jIHwg MyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9saWJhdnV0aWwvaHdjb250ZXh0X3Z1bGthbi5jIGIvbGliYXZ1dGlsL2h3Y29u dGV4dF92dWxrYW4uYwppbmRleCBjMzMyMmJhZmJkLi44OWJmMzliYjNmIDEwMDY0NAotLS0gYS9s aWJhdnV0aWwvaHdjb250ZXh0X3Z1bGthbi5jCisrKyBiL2xpYmF2dXRpbC9od2NvbnRleHRfdnVs a2FuLmMKQEAgLTQzODIsNiArNDM4Miw3IEBAIHN0YXRpYyBpbnQgdnVsa2FuX3RyYW5zZmVyX2hv c3QoQVZIV0ZyYW1lc0NvbnRleHQgKmh3ZmMsIEFWRnJhbWUgKmh3ZiwKICAgICBGRlZ1bGthbkZ1 bmN0aW9ucyAqdmsgPSAmcC0+dmtjdHgudmtmbjsKIAogICAgIEFWVmtGcmFtZSAqaHdmX3ZrID0g KEFWVmtGcmFtZSAqKWh3Zi0+ZGF0YVswXTsKKyAgICBjb25zdCBBVlBpeEZtdERlc2NyaXB0b3Ig KmRlc2MgPSBhdl9waXhfZm10X2Rlc2NfZ2V0KHN3Zi0+Zm9ybWF0KTsKICAgICBjb25zdCBpbnQg cGxhbmVzID0gYXZfcGl4X2ZtdF9jb3VudF9wbGFuZXMoc3dmLT5mb3JtYXQpOwogICAgIGNvbnN0 IGludCBuYl9pbWFnZXMgPSBmZl92a19jb3VudF9pbWFnZXMoaHdmX3ZrKTsKIApAQCAtNDQ3NCw3 ICs0NDc1LDcgQEAgc3RhdGljIGludCB2dWxrYW5fdHJhbnNmZXJfaG9zdChBVkhXRnJhbWVzQ29u dGV4dCAqaHdmYywgQVZGcmFtZSAqaHdmLAogICAgICAgICAgICAgZ2V0X3BsYW5lX3doKCZwX3cs ICZwX2gsIHN3Zi0+Zm9ybWF0LCBzd2YtPndpZHRoLCBzd2YtPmhlaWdodCwgaSk7CiAKICAgICAg ICAgICAgIHJlZ2lvbl9pbmZvLnBIb3N0UG9pbnRlciA9IHN3Zi0+ZGF0YVtpXTsKLSAgICAgICAg ICAgIHJlZ2lvbl9pbmZvLm1lbW9yeVJvd0xlbmd0aCA9IHN3Zi0+bGluZXNpemVbaV07CisgICAg ICAgICAgICByZWdpb25faW5mby5tZW1vcnlSb3dMZW5ndGggPSBzd2YtPmxpbmVzaXplW2ldIC8g ZGVzYy0+Y29tcFtpXS5zdGVwOwogICAgICAgICAgICAgcmVnaW9uX2luZm8uaW1hZ2VTdWJyZXNv dXJjZS5hc3BlY3RNYXNrID0gZmZfdmtfYXNwZWN0X2ZsYWcoaHdmLCBpKTsKICAgICAgICAgICAg IHJlZ2lvbl9pbmZvLmltYWdlRXh0ZW50ID0gKFZrRXh0ZW50M0QpeyBwX3csIHBfaCwgMSB9Owog ICAgICAgICAgICAgY29weV9pbmZvLnNyY0ltYWdlID0gaHdmX3ZrLT5pbWdbaW1nX2lkeF07Ci0t IAoyLjUyLjAKCgpGcm9tIDU3ZTQ3MGIyY2NhOWNhNmVjYTcyNDI3YTVlNjYyZjZhYjBmZDBhMTgg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRob21hcyBHcml0emFuIDxwaHlnb25AZ214 LmRlPgpEYXRlOiBUaHUsIDI3IE5vdiAyMDI1IDAyOjMwOjI1ICswMTAwClN1YmplY3Q6IFtQQVRD SCAxNjQvMzA0XSBsaWJhdmRldmljZS9kZWNrbGluazogYWRkIHN1cHBvcnQgZm9yIERlY2tMaW5r IFNESwogMTQuMwoKVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIERlY2tMaW5rIFNESyAxNC4z IGFuZCBuZXdlciBieSB1c2luZwp0aGUgbGVnYWN5IGludGVyZmFjZXMgaW4gdGhlIGhlYWRlciA8 RGVja0xpbmtBUElfdjE0XzJfMS5oPi4KClRoZSBtaXNzaW5nIFF1ZXJ5SW50ZXJmYWNlIGltcGxl bWVudGF0aW9ucyBhcmUgYWxzbyBwcm92aWRlZC4KLS0tCiBsaWJhdmRldmljZS9kZWNrbGlua19j b21tb24uY3BwIHwgMTMgKysrKystLS0KIGxpYmF2ZGV2aWNlL2RlY2tsaW5rX2NvbW1vbi5oICAg fCAzMSArKysrKysrKysrKysrKysrKy0tCiBsaWJhdmRldmljZS9kZWNrbGlua19kZWMuY3BwICAg IHwgNTUgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiBsaWJhdmRldmljZS9kZWNr bGlua19lbmMuY3BwICAgIHwgNDYgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiA0IGZpbGVz IGNoYW5nZWQsIDEwNyBpbnNlcnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9saWJhdmRldmljZS9kZWNrbGlua19jb21tb24uY3BwIGIvbGliYXZkZXZpY2UvZGVja2xpbmtf Y29tbW9uLmNwcAppbmRleCA0N2RlN2VmNmIwLi5mZTE4N2NkMmM5IDEwMDY0NAotLS0gYS9saWJh dmRldmljZS9kZWNrbGlua19jb21tb24uY3BwCisrKyBiL2xpYmF2ZGV2aWNlL2RlY2tsaW5rX2Nv bW1vbi5jcHAKQEAgLTI1LDcgKzI1LDEyIEBAIGV4dGVybiAiQyIgewogI2luY2x1ZGUgImxpYmF2 Zm9ybWF0L2ludGVybmFsLmgiCiB9CiAKKyNpbmNsdWRlIDxEZWNrTGlua0FQSVZlcnNpb24uaD4K ICNpbmNsdWRlIDxEZWNrTGlua0FQSS5oPgorI2lmIEJMQUNLTUFHSUNfREVDS0xJTktfQVBJX1ZF UlNJT04gPj0gMHgwZTAzMDAwMAorI2luY2x1ZGUgPERlY2tMaW5rQVBJX3YxNF8yXzEuaD4KKyNl bmRpZgorCiAjaWZkZWYgX1dJTjMyCiAjaW5jbHVkZSA8RGVja0xpbmtBUElfaS5jPgogI2Vsc2UK QEAgLTUxMiw4ICs1MTcsOCBAQCBpbnQgZmZfZGVja2xpbmtfbGlzdF9kZXZpY2VzKEFWRm9ybWF0 Q29udGV4dCAqYXZjdHgsCiAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CiAKICAgICB3aGls ZSAocmV0ID09IDAgJiYgaXRlci0+TmV4dCgmZGwpID09IFNfT0spIHsKLSAgICAgICAgSURlY2tM aW5rT3V0cHV0ICpvdXRwdXRfY29uZmlnOwotICAgICAgICBJRGVja0xpbmtJbnB1dCAqaW5wdXRf Y29uZmlnOworICAgICAgICBJRGVja0xpbmtPdXRwdXRfdjE0XzJfMSAqb3V0cHV0X2NvbmZpZzsK KyAgICAgICAgSURlY2tMaW5rSW5wdXRfdjE0XzJfMSAqaW5wdXRfY29uZmlnOwogICAgICAgICBj b25zdCBjaGFyICpkaXNwbGF5X25hbWUgPSBOVUxMOwogICAgICAgICBjb25zdCBjaGFyICp1bmlx dWVfbmFtZSA9IE5VTEw7CiAgICAgICAgIEFWRGV2aWNlSW5mbyAqbmV3X2RldmljZSA9IE5VTEw7 CkBAIC01MjcsMTQgKzUzMiwxNCBAQCBpbnQgZmZfZGVja2xpbmtfbGlzdF9kZXZpY2VzKEFWRm9y bWF0Q29udGV4dCAqYXZjdHgsCiAgICAgICAgICAgICBnb3RvIG5leHQ7CiAKICAgICAgICAgaWYg KHNob3dfb3V0cHV0cykgewotICAgICAgICAgICAgaWYgKGRsLT5RdWVyeUludGVyZmFjZShJSURf SURlY2tMaW5rT3V0cHV0LCAodm9pZCAqKikmb3V0cHV0X2NvbmZpZykgPT0gU19PSykgeworICAg ICAgICAgICAgaWYgKGRsLT5RdWVyeUludGVyZmFjZShJSURfSURlY2tMaW5rT3V0cHV0X3YxNF8y XzEsICh2b2lkICoqKSZvdXRwdXRfY29uZmlnKSA9PSBTX09LKSB7CiAgICAgICAgICAgICAgICAg b3V0cHV0X2NvbmZpZy0+UmVsZWFzZSgpOwogICAgICAgICAgICAgICAgIGFkZCA9IDE7CiAgICAg ICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoc2hvd19pbnB1dHMpIHsKLSAgICAg ICAgICAgIGlmIChkbC0+UXVlcnlJbnRlcmZhY2UoSUlEX0lEZWNrTGlua0lucHV0LCAodm9pZCAq KikmaW5wdXRfY29uZmlnKSA9PSBTX09LKSB7CisgICAgICAgICAgICBpZiAoZGwtPlF1ZXJ5SW50 ZXJmYWNlKElJRF9JRGVja0xpbmtJbnB1dF92MTRfMl8xLCAodm9pZCAqKikmaW5wdXRfY29uZmln KSA9PSBTX09LKSB7CiAgICAgICAgICAgICAgICAgaW5wdXRfY29uZmlnLT5SZWxlYXNlKCk7CiAg ICAgICAgICAgICAgICAgYWRkID0gMTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL2xpYmF2 ZGV2aWNlL2RlY2tsaW5rX2NvbW1vbi5oIGIvbGliYXZkZXZpY2UvZGVja2xpbmtfY29tbW9uLmgK aW5kZXggNmIzMmRjMmQwOS4uMDk1YjQzOGJjZSAxMDA2NDQKLS0tIGEvbGliYXZkZXZpY2UvZGVj a2xpbmtfY29tbW9uLmgKKysrIGIvbGliYXZkZXZpY2UvZGVja2xpbmtfY29tbW9uLmgKQEAgLTI5 LDYgKzI5LDIzIEBACiAjZGVmaW5lIElEZWNrTGlua1Byb2ZpbGVBdHRyaWJ1dGVzIElEZWNrTGlu a0F0dHJpYnV0ZXMKICNlbmRpZgogCisjaWYgQkxBQ0tNQUdJQ19ERUNLTElOS19BUElfVkVSU0lP TiA8IDB4MGUwMzAwMDAKKyNkZWZpbmUgSURlY2tMaW5rSW5wdXRfdjE0XzJfMSBJRGVja0xpbmtJ bnB1dAorI2RlZmluZSBJRGVja0xpbmtJbnB1dENhbGxiYWNrX3YxNF8yXzEgSURlY2tMaW5rSW5w dXRDYWxsYmFjaworI2RlZmluZSBJRGVja0xpbmtNZW1vcnlBbGxvY2F0b3JfdjE0XzJfMSBJRGVj a0xpbmtNZW1vcnlBbGxvY2F0b3IKKyNkZWZpbmUgSURlY2tMaW5rT3V0cHV0X3YxNF8yXzEgSURl Y2tMaW5rT3V0cHV0CisjZGVmaW5lIElEZWNrTGlua1ZpZGVvRnJhbWVfdjE0XzJfMSBJRGVja0xp bmtWaWRlb0ZyYW1lCisjZGVmaW5lIElEZWNrTGlua1ZpZGVvSW5wdXRGcmFtZV92MTRfMl8xIElE ZWNrTGlua1ZpZGVvSW5wdXRGcmFtZQorI2RlZmluZSBJRGVja0xpbmtWaWRlb091dHB1dENhbGxi YWNrX3YxNF8yXzEgSURlY2tMaW5rVmlkZW9PdXRwdXRDYWxsYmFjaworI2RlZmluZSBJSURfSURl Y2tMaW5rSW5wdXRfdjE0XzJfMSBJSURfSURlY2tMaW5rSW5wdXQKKyNkZWZpbmUgSUlEX0lEZWNr TGlua0lucHV0Q2FsbGJhY2tfdjE0XzJfMSBJSURfSURlY2tMaW5rSW5wdXRDYWxsYmFjaworI2Rl ZmluZSBJSURfSURlY2tMaW5rTWVtb3J5QWxsb2NhdG9yX3YxNF8yXzEgSUlEX0lEZWNrTGlua01l bW9yeUFsbG9jYXRvcgorI2RlZmluZSBJSURfSURlY2tMaW5rT3V0cHV0X3YxNF8yXzEgSUlEX0lE ZWNrTGlua091dHB1dAorI2RlZmluZSBJSURfSURlY2tMaW5rVmlkZW9GcmFtZV92MTRfMl8xIElJ RF9JRGVja0xpbmtWaWRlb0ZyYW1lCisjZGVmaW5lIElJRF9JRGVja0xpbmtWaWRlb0lucHV0RnJh bWVfdjE0XzJfMSBJSURfSURlY2tMaW5rVmlkZW9JbnB1dEZyYW1lCisjZGVmaW5lIElJRF9JRGVj a0xpbmtWaWRlb091dHB1dENhbGxiYWNrX3YxNF8yXzEgSUlEX0lEZWNrTGlua1ZpZGVvT3V0cHV0 Q2FsbGJhY2sKKyNlbmRpZgorCiBleHRlcm4gIkMiIHsKICNpbmNsdWRlICJsaWJhdnV0aWwvbWVt LmgiCiAjaW5jbHVkZSAibGliYXZjb2RlYy9wYWNrZXRfaW50ZXJuYWwuaCIKQEAgLTc2LDYgKzkz LDE2IEBAIHN0YXRpYyBjaGFyICpkdXBfY2ZzdHJpbmdfdG9fdXRmOChDRlN0cmluZ1JlZiB3KQog I2RlZmluZSBERUNLTElOS19GUkVFKHMpIGZyZWUoKHZvaWQgKikgcykKICNlbmRpZgogCisjaWZk ZWYgX1dJTjMyCisjaW5jbHVkZSA8Z3VpZGRlZi5oPiAgICAvLyBSRUZJSUQsIElzRXF1YWxJSUQo KQorI2RlZmluZSBERUNLTElOS19Jc0VxdWFsSUlEIElzRXF1YWxJSUQKKyNlbHNlCitzdGF0aWMg aW5saW5lIGJvb2wgREVDS0xJTktfSXNFcXVhbElJRChjb25zdCBSRUZJSUQmIHJpaWQxLCBjb25z dCBSRUZJSUQmIHJpaWQyKQoreworICAgIHJldHVybiBtZW1jbXAoJnJpaWQxLCAmcmlpZDIsIHNp emVvZihSRUZJSUQpKSA9PSAwOworfQorI2VuZGlmCisKIGNsYXNzIGRlY2tsaW5rX291dHB1dF9j YWxsYmFjazsKIGNsYXNzIGRlY2tsaW5rX2lucHV0X2NhbGxiYWNrOwogCkBAIC05Myw4ICsxMjAs OCBAQCB0eXBlZGVmIHN0cnVjdCBEZWNrbGlua1BhY2tldFF1ZXVlIHsKIHN0cnVjdCBkZWNrbGlu a19jdHggewogICAgIC8qIERlY2tMaW5rIFNESyBpbnRlcmZhY2VzICovCiAgICAgSURlY2tMaW5r ICpkbDsKLSAgICBJRGVja0xpbmtPdXRwdXQgKmRsbzsKLSAgICBJRGVja0xpbmtJbnB1dCAqZGxp OworICAgIElEZWNrTGlua091dHB1dF92MTRfMl8xICpkbG87CisgICAgSURlY2tMaW5rSW5wdXRf djE0XzJfMSAqZGxpOwogICAgIElEZWNrTGlua0NvbmZpZ3VyYXRpb24gKmNmZzsKICAgICBJRGVj a0xpbmtQcm9maWxlQXR0cmlidXRlcyAqYXR0cjsKICAgICBkZWNrbGlua19vdXRwdXRfY2FsbGJh Y2sgKm91dHB1dF9jYWxsYmFjazsKZGlmZiAtLWdpdCBhL2xpYmF2ZGV2aWNlL2RlY2tsaW5rX2Rl Yy5jcHAgYi9saWJhdmRldmljZS9kZWNrbGlua19kZWMuY3BwCmluZGV4IDQxODcwMWU0ZTAuLjg4 MzA3Nzk5OTAgMTAwNjQ0Ci0tLSBhL2xpYmF2ZGV2aWNlL2RlY2tsaW5rX2RlYy5jcHAKKysrIGIv bGliYXZkZXZpY2UvZGVja2xpbmtfZGVjLmNwcApAQCAtMzEsNyArMzEsMTEgQEAgZXh0ZXJuICJD IiB7CiAjaW5jbHVkZSAibGliYXZmb3JtYXQvaW50ZXJuYWwuaCIKIH0KIAorI2luY2x1ZGUgPERl Y2tMaW5rQVBJVmVyc2lvbi5oPgogI2luY2x1ZGUgPERlY2tMaW5rQVBJLmg+CisjaWYgQkxBQ0tN QUdJQ19ERUNLTElOS19BUElfVkVSU0lPTiA+PSAweDBlMDMwMDAwCisjaW5jbHVkZSA8RGVja0xp bmtBUElfdjE0XzJfMS5oPgorI2VuZGlmCiAKIGV4dGVybiAiQyIgewogI2luY2x1ZGUgImNvbmZp Zy5oIgpAQCAtMTA1LDcgKzEwOSw3IEBAIHN0YXRpYyBWQU5DTGluZU51bWJlciB2YW5jX2xpbmVf bnVtYmVyc1tdID0gewogICAgIHtibWRNb2RlVW5rbm93biwgMCwgLTEsIC0xLCAtMX0KIH07CiAK LWNsYXNzIGRlY2tsaW5rX2FsbG9jYXRvciA6IHB1YmxpYyBJRGVja0xpbmtNZW1vcnlBbGxvY2F0 b3IKK2NsYXNzIGRlY2tsaW5rX2FsbG9jYXRvciA6IHB1YmxpYyBJRGVja0xpbmtNZW1vcnlBbGxv Y2F0b3JfdjE0XzJfMQogewogcHVibGljOgogICAgICAgICBkZWNrbGlua19hbGxvY2F0b3IoKTog X3JlZnMoMSkgeyB9CkBAIC0xMjksNyArMTMzLDIxIEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVh bCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIERlY29tbWl0KCkgeyByZXR1cm4gU19PSzsgfQog CiAgICAgICAgIC8vIElVbmtub3duIG1ldGhvZHMKLSAgICAgICAgdmlydHVhbCBIUkVTVUxUIFNU RE1FVEhPRENBTExUWVBFIFF1ZXJ5SW50ZXJmYWNlKFJFRklJRCBpaWQsIExQVk9JRCAqcHB2KSB7 IHJldHVybiBFX05PSU5URVJGQUNFOyB9CisgICAgICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI T0RDQUxMVFlQRSBRdWVyeUludGVyZmFjZShSRUZJSUQgcmlpZCwgTFBWT0lEICpwcHYpCisgICAg ICAgIHsKKyAgICAgICAgICAgIGlmIChERUNLTElOS19Jc0VxdWFsSUlEKHJpaWQsIElJRF9JVW5r bm93bikpIHsKKyAgICAgICAgICAgICAgICAqcHB2ID0gc3RhdGljX2Nhc3Q8SVVua25vd24qPih0 aGlzKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoREVDS0xJTktfSXNFcXVhbElJRChyaWlkLCBJ SURfSURlY2tMaW5rTWVtb3J5QWxsb2NhdG9yX3YxNF8yXzEpKSB7CisgICAgICAgICAgICAgICAg KnBwdiA9IHN0YXRpY19jYXN0PElEZWNrTGlua01lbW9yeUFsbG9jYXRvcl92MTRfMl8xKj4odGhp cyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICpwcHYgPSBOVUxMOwor ICAgICAgICAgICAgICAgIHJldHVybiBFX05PSU5URVJGQUNFOworICAgICAgICAgICAgfQorCisg ICAgICAgICAgICBBZGRSZWYoKTsKKyAgICAgICAgICAgIHJldHVybiBTX09LOworICAgICAgICB9 CisKICAgICAgICAgdmlydHVhbCBVTE9ORyAgIFNURE1FVEhPRENBTExUWVBFIEFkZFJlZih2b2lk KSB7IHJldHVybiArK19yZWZzOyB9CiAgICAgICAgIHZpcnR1YWwgVUxPTkcgICBTVERNRVRIT0RD QUxMVFlQRSBSZWxlYXNlKHZvaWQpCiAgICAgICAgIHsKQEAgLTQ3Miw3ICs0OTAsNyBAQCBza2lw X3BhY2tldDoKIH0KIAogCi1zdGF0aWMgdm9pZCBoYW5kbGVfa2x2KEFWRm9ybWF0Q29udGV4dCAq YXZjdHgsIGRlY2tsaW5rX2N0eCAqY3R4LCBJRGVja0xpbmtWaWRlb0lucHV0RnJhbWUgKnZpZGVv RnJhbWUsIGludDY0X3QgcHRzKQorc3RhdGljIHZvaWQgaGFuZGxlX2tsdihBVkZvcm1hdENvbnRl eHQgKmF2Y3R4LCBkZWNrbGlua19jdHggKmN0eCwgSURlY2tMaW5rVmlkZW9JbnB1dEZyYW1lX3Yx NF8yXzEgKnZpZGVvRnJhbWUsIGludDY0X3QgcHRzKQogewogICAgIGNvbnN0IHVpbnQ4X3QgS0xW X0RJRCA9IDB4NDQ7CiAgICAgY29uc3QgdWludDhfdCBLTFZfSU5fVkFOQ19TRElEID0gMHgwNDsK QEAgLTU3NCwxNyArNTkyLDMwIEBAIHN0YXRpYyB2b2lkIGhhbmRsZV9rbHYoQVZGb3JtYXRDb250 ZXh0ICphdmN0eCwgZGVja2xpbmtfY3R4ICpjdHgsIElEZWNrTGlua1ZpZGVvCiAgICAgfQogfQog Ci1jbGFzcyBkZWNrbGlua19pbnB1dF9jYWxsYmFjayA6IHB1YmxpYyBJRGVja0xpbmtJbnB1dENh bGxiYWNrCitjbGFzcyBkZWNrbGlua19pbnB1dF9jYWxsYmFjayA6IHB1YmxpYyBJRGVja0xpbmtJ bnB1dENhbGxiYWNrX3YxNF8yXzEKIHsKIHB1YmxpYzoKICAgICAgICAgZXhwbGljaXQgZGVja2xp bmtfaW5wdXRfY2FsbGJhY2soQVZGb3JtYXRDb250ZXh0ICpfYXZjdHgpOwogICAgICAgICB+ZGVj a2xpbmtfaW5wdXRfY2FsbGJhY2soKTsKIAotICAgICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVU SE9EQ0FMTFRZUEUgUXVlcnlJbnRlcmZhY2UoUkVGSUlEIGlpZCwgTFBWT0lEICpwcHYpIHsgcmV0 dXJuIEVfTk9JTlRFUkZBQ0U7IH0KKyAgICAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENB TExUWVBFIFF1ZXJ5SW50ZXJmYWNlKFJFRklJRCByaWlkLCBMUFZPSUQgKnBwdikKKyAgICAgICAg eworICAgICAgICAgICAgaWYgKERFQ0tMSU5LX0lzRXF1YWxJSUQocmlpZCwgSUlEX0lVbmtub3du KSkgeworICAgICAgICAgICAgICAgICpwcHYgPSBzdGF0aWNfY2FzdDxJVW5rbm93bio+KHRoaXMp OworICAgICAgICAgICAgfSBlbHNlIGlmIChERUNLTElOS19Jc0VxdWFsSUlEKHJpaWQsIElJRF9J RGVja0xpbmtJbnB1dENhbGxiYWNrX3YxNF8yXzEpKSB7CisgICAgICAgICAgICAgICAgKnBwdiA9 IHN0YXRpY19jYXN0PElEZWNrTGlua0lucHV0Q2FsbGJhY2tfdjE0XzJfMSo+KHRoaXMpOworICAg ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAqcHB2ID0gTlVMTDsKKyAgICAgICAg ICAgICAgICByZXR1cm4gRV9OT0lOVEVSRkFDRTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg ICAgQWRkUmVmKCk7CisgICAgICAgICAgICByZXR1cm4gU19PSzsKKyAgICAgICAgfQogICAgICAg ICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIEFkZFJlZih2b2lkKTsKICAgICAgICAg dmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSAgUmVsZWFzZSh2b2lkKTsKICAgICAgICAg dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFZpZGVvSW5wdXRGb3JtYXRDaGFuZ2Vk KEJNRFZpZGVvSW5wdXRGb3JtYXRDaGFuZ2VkRXZlbnRzLCBJRGVja0xpbmtEaXNwbGF5TW9kZSos IEJNRERldGVjdGVkVmlkZW9JbnB1dEZvcm1hdEZsYWdzKTsKLSAgICAgICAgdmlydHVhbCBIUkVT VUxUIFNURE1FVEhPRENBTExUWVBFIFZpZGVvSW5wdXRGcmFtZUFycml2ZWQoSURlY2tMaW5rVmlk ZW9JbnB1dEZyYW1lKiwgSURlY2tMaW5rQXVkaW9JbnB1dFBhY2tldCopOworICAgICAgICB2aXJ0 dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgVmlkZW9JbnB1dEZyYW1lQXJyaXZlZChJRGVj a0xpbmtWaWRlb0lucHV0RnJhbWVfdjE0XzJfMSosIElEZWNrTGlua0F1ZGlvSW5wdXRQYWNrZXQq KTsKIAogcHJpdmF0ZToKICAgICAgICAgc3RkOjphdG9taWM8aW50PiAgX3JlZnM7CkBAIC01OTMs NyArNjI0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgaW50IG5vX3ZpZGVvOwogICAgICAgICBpbnQ2 NF90IGluaXRpYWxfdmlkZW9fcHRzOwogICAgICAgICBpbnQ2NF90IGluaXRpYWxfYXVkaW9fcHRz OwotICAgICAgICBJRGVja0xpbmtWaWRlb0lucHV0RnJhbWUqIGxhc3RfdmlkZW9fZnJhbWU7Cisg ICAgICAgIElEZWNrTGlua1ZpZGVvSW5wdXRGcmFtZV92MTRfMl8xKiBsYXN0X3ZpZGVvX2ZyYW1l OwogfTsKIAogZGVja2xpbmtfaW5wdXRfY2FsbGJhY2s6OmRlY2tsaW5rX2lucHV0X2NhbGxiYWNr KEFWRm9ybWF0Q29udGV4dCAqX2F2Y3R4KSA6IF9yZWZzKDEpCkBAIC02MjUsNyArNjU2LDcgQEAg VUxPTkcgZGVja2xpbmtfaW5wdXRfY2FsbGJhY2s6OlJlbGVhc2Uodm9pZCkKICAgICByZXR1cm4g cmV0OwogfQogCi1zdGF0aWMgaW50NjRfdCBnZXRfcGt0X3B0cyhJRGVja0xpbmtWaWRlb0lucHV0 RnJhbWUgKnZpZGVvRnJhbWUsCitzdGF0aWMgaW50NjRfdCBnZXRfcGt0X3B0cyhJRGVja0xpbmtW aWRlb0lucHV0RnJhbWVfdjE0XzJfMSAqdmlkZW9GcmFtZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElEZWNrTGlua0F1ZGlvSW5wdXRQYWNrZXQgKmF1ZGlvRnJhbWUsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQ2NF90IHdhbGxjbG9jaywKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGludDY0X3QgYWJzX3dhbGxjbG9jaywKQEAgLTY3OSw3ICs3MTAsNyBAQCBzdGF0aWMg aW50NjRfdCBnZXRfcGt0X3B0cyhJRGVja0xpbmtWaWRlb0lucHV0RnJhbWUgKnZpZGVvRnJhbWUs CiAgICAgcmV0dXJuIHB0czsKIH0KIAotc3RhdGljIGludCBnZXRfYm1kX3RpbWVjb2RlKEFWRm9y bWF0Q29udGV4dCAqYXZjdHgsIEFWVGltZWNvZGUgKnRjLCBBVlJhdGlvbmFsIGZyYW1lX3JhdGUs IEJNRFRpbWVjb2RlRm9ybWF0IHRjX2Zvcm1hdCwgSURlY2tMaW5rVmlkZW9JbnB1dEZyYW1lICp2 aWRlb0ZyYW1lKQorc3RhdGljIGludCBnZXRfYm1kX3RpbWVjb2RlKEFWRm9ybWF0Q29udGV4dCAq YXZjdHgsIEFWVGltZWNvZGUgKnRjLCBBVlJhdGlvbmFsIGZyYW1lX3JhdGUsIEJNRFRpbWVjb2Rl Rm9ybWF0IHRjX2Zvcm1hdCwgSURlY2tMaW5rVmlkZW9JbnB1dEZyYW1lX3YxNF8yXzEgKnZpZGVv RnJhbWUpCiB7CiAgICAgSURlY2tMaW5rVGltZWNvZGUgKnRpbWVjb2RlOwogICAgIGludCByZXQg PSBBVkVSUk9SKEVOT0VOVCk7CkBAIC03MDEsNyArNzMyLDcgQEAgc3RhdGljIGludCBnZXRfYm1k X3RpbWVjb2RlKEFWRm9ybWF0Q29udGV4dCAqYXZjdHgsIEFWVGltZWNvZGUgKnRjLCBBVlJhdGlv bmFsIGYKICAgICByZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IGdldF9mcmFtZV90aW1lY29k ZShBVkZvcm1hdENvbnRleHQgKmF2Y3R4LCBkZWNrbGlua19jdHggKmN0eCwgQVZUaW1lY29kZSAq dGMsIElEZWNrTGlua1ZpZGVvSW5wdXRGcmFtZSAqdmlkZW9GcmFtZSkKK3N0YXRpYyBpbnQgZ2V0 X2ZyYW1lX3RpbWVjb2RlKEFWRm9ybWF0Q29udGV4dCAqYXZjdHgsIGRlY2tsaW5rX2N0eCAqY3R4 LCBBVlRpbWVjb2RlICp0YywgSURlY2tMaW5rVmlkZW9JbnB1dEZyYW1lX3YxNF8yXzEgKnZpZGVv RnJhbWUpCiB7CiAgICAgQVZSYXRpb25hbCBmcmFtZV9yYXRlID0gY3R4LT52aWRlb19zdC0+cl9m cmFtZV9yYXRlOwogICAgIGludCByZXQ7CkBAIC03MjYsNyArNzU3LDcgQEAgc3RhdGljIGludCBn ZXRfZnJhbWVfdGltZWNvZGUoQVZGb3JtYXRDb250ZXh0ICphdmN0eCwgZGVja2xpbmtfY3R4ICpj dHgsIEFWVGltZWMKIH0KIAogSFJFU1VMVCBkZWNrbGlua19pbnB1dF9jYWxsYmFjazo6VmlkZW9J bnB1dEZyYW1lQXJyaXZlZCgKLSAgICBJRGVja0xpbmtWaWRlb0lucHV0RnJhbWUgKnZpZGVvRnJh bWUsIElEZWNrTGlua0F1ZGlvSW5wdXRQYWNrZXQgKmF1ZGlvRnJhbWUpCisgICAgSURlY2tMaW5r VmlkZW9JbnB1dEZyYW1lX3YxNF8yXzEgKnZpZGVvRnJhbWUsIElEZWNrTGlua0F1ZGlvSW5wdXRQ YWNrZXQgKmF1ZGlvRnJhbWUpCiB7CiAgICAgdm9pZCAqZnJhbWVCeXRlczsKICAgICB2b2lkICph dWRpb0ZyYW1lQnl0ZXM7CkBAIC0xMTQxLDcgKzExNzIsNyBAQCBhdl9jb2xkIGludCBmZl9kZWNr bGlua19yZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKmF2Y3R4KQogICAgICAgICBnb3RvIGVy cm9yOwogCiAgICAgLyogR2V0IGlucHV0IGRldmljZS4gKi8KLSAgICBpZiAoY3R4LT5kbC0+UXVl cnlJbnRlcmZhY2UoSUlEX0lEZWNrTGlua0lucHV0LCAodm9pZCAqKikgJmN0eC0+ZGxpKSAhPSBT X09LKSB7CisgICAgaWYgKGN0eC0+ZGwtPlF1ZXJ5SW50ZXJmYWNlKElJRF9JRGVja0xpbmtJbnB1 dF92MTRfMl8xLCAodm9pZCAqKikgJmN0eC0+ZGxpKSAhPSBTX09LKSB7CiAgICAgICAgIGF2X2xv ZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiQ291bGQgbm90IG9wZW4gaW5wdXQgZGV2aWNlIGZyb20g JyVzJ1xuIiwKICAgICAgICAgICAgICAgIGF2Y3R4LT51cmwpOwogICAgICAgICByZXQgPSBBVkVS Uk9SKEVJTyk7CmRpZmYgLS1naXQgYS9saWJhdmRldmljZS9kZWNrbGlua19lbmMuY3BwIGIvbGli YXZkZXZpY2UvZGVja2xpbmtfZW5jLmNwcAppbmRleCAxOTVmMDA1YzE3Li5kMmUyNDZjODE4IDEw MDY0NAotLS0gYS9saWJhdmRldmljZS9kZWNrbGlua19lbmMuY3BwCisrKyBiL2xpYmF2ZGV2aWNl L2RlY2tsaW5rX2VuYy5jcHAKQEAgLTI4LDcgKzI4LDExIEBAIGV4dGVybiAiQyIgewogI2luY2x1 ZGUgImxpYmF2Zm9ybWF0L2ludGVybmFsLmgiCiB9CiAKKyNpbmNsdWRlIDxEZWNrTGlua0FQSVZl cnNpb24uaD4KICNpbmNsdWRlIDxEZWNrTGlua0FQSS5oPgorI2lmIEJMQUNLTUFHSUNfREVDS0xJ TktfQVBJX1ZFUlNJT04gPj0gMHgwZTAzMDAwMAorI2luY2x1ZGUgPERlY2tMaW5rQVBJX3YxNF8y XzEuaD4KKyNlbmRpZgogCiBleHRlcm4gIkMiIHsKICNpbmNsdWRlICJsaWJhdmZvcm1hdC9hdmZv cm1hdC5oIgpAQCAtNDcsMTggKzUxLDggQEAgZXh0ZXJuICJDIiB7CiAjaW5jbHVkZSAibGlia2x2 YW5jL3BpeGVscy5oIgogI2VuZGlmCiAKLSNpZmRlZiBfV0lOMzIKLSNpbmNsdWRlIDxndWlkZGVm Lmg+Ci0jZWxzZQotLyogVGhlcmUgaXMgbm8gZ3VpZGRlZi5oIGluIExpbnV4IGJ1aWxkcywgc28g d2UgcHJvdmlkZSBvdXIgb3duIElzRXF1YWxJSUQoKSAqLwotc3RhdGljIGJvb2wgSXNFcXVhbElJ RChSRUZJSUQgcmlpZDEsIFJFRklJRCByaWlkMikKLXsKLSAgICByZXR1cm4gbWVtY21wKCZyaWlk MSwgJnJpaWQyLCBzaXplb2YoUkVGSUlEKSkgPT0gMDsKLX0KLSNlbmRpZgotCiAvKiBEZWNrTGlu ayBjYWxsYmFjayBjbGFzcyBkZWNsYXJhdGlvbiAqLwotY2xhc3MgZGVja2xpbmtfZnJhbWUgOiBw dWJsaWMgSURlY2tMaW5rVmlkZW9GcmFtZQorY2xhc3MgZGVja2xpbmtfZnJhbWUgOiBwdWJsaWMg SURlY2tMaW5rVmlkZW9GcmFtZV92MTRfMl8xCiB7CiBwdWJsaWM6CiAgICAgZGVja2xpbmtfZnJh bWUoc3RydWN0IGRlY2tsaW5rX2N0eCAqY3R4LCBBVkZyYW1lICphdmZyYW1lLCBBVkNvZGVjSUQg Y29kZWNfaWQsIGludCBoZWlnaHQsIGludCB3aWR0aCkgOgpAQCAtMTIzLDEwICsxMTcsMTAgQEAg cHVibGljOgogICAgIH0KICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgUXVl cnlJbnRlcmZhY2UoUkVGSUlEIHJpaWQsIExQVk9JRCAqcHB2KQogICAgIHsKLSAgICAgICAgaWYg KElzRXF1YWxJSUQocmlpZCwgSUlEX0lVbmtub3duKSkgeworICAgICAgICBpZiAoREVDS0xJTktf SXNFcXVhbElJRChyaWlkLCBJSURfSVVua25vd24pKSB7CiAgICAgICAgICAgICAqcHB2ID0gc3Rh dGljX2Nhc3Q8SVVua25vd24qPih0aGlzKTsKLSAgICAgICAgfSBlbHNlIGlmIChJc0VxdWFsSUlE KHJpaWQsIElJRF9JRGVja0xpbmtWaWRlb0ZyYW1lKSkgewotICAgICAgICAgICAgKnBwdiA9IHN0 YXRpY19jYXN0PElEZWNrTGlua1ZpZGVvRnJhbWUqPih0aGlzKTsKKyAgICAgICAgfSBlbHNlIGlm IChERUNLTElOS19Jc0VxdWFsSUlEKHJpaWQsIElJRF9JRGVja0xpbmtWaWRlb0ZyYW1lX3YxNF8y XzEpKSB7CisgICAgICAgICAgICAqcHB2ID0gc3RhdGljX2Nhc3Q8SURlY2tMaW5rVmlkZW9GcmFt ZV92MTRfMl8xKj4odGhpcyk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAqcHB2ID0g TlVMTDsKICAgICAgICAgICAgIHJldHVybiBFX05PSU5URVJGQUNFOwpAQCAtMTM1LDcgKzEyOSw2 IEBAIHB1YmxpYzoKICAgICAgICAgQWRkUmVmKCk7CiAgICAgICAgIHJldHVybiBTX09LOwogICAg IH0KLQogICAgIHZpcnR1YWwgVUxPTkcgICBTVERNRVRIT0RDQUxMVFlQRSBBZGRSZWYodm9pZCkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gKytfcmVmczsgfQogICAgIHZpcnR1 YWwgVUxPTkcgICBTVERNRVRIT0RDQUxMVFlQRSBSZWxlYXNlKHZvaWQpCiAgICAgewpAQCAtMTYy LDEwICsxNTUsMTAgQEAgcHJpdmF0ZToKICAgICBzdGQ6OmF0b21pYzxpbnQ+ICBfcmVmczsKIH07 CiAKLWNsYXNzIGRlY2tsaW5rX291dHB1dF9jYWxsYmFjayA6IHB1YmxpYyBJRGVja0xpbmtWaWRl b091dHB1dENhbGxiYWNrCitjbGFzcyBkZWNrbGlua19vdXRwdXRfY2FsbGJhY2sgOiBwdWJsaWMg SURlY2tMaW5rVmlkZW9PdXRwdXRDYWxsYmFja192MTRfMl8xCiB7CiBwdWJsaWM6Ci0gICAgdmly dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFNjaGVkdWxlZEZyYW1lQ29tcGxldGVkKElE ZWNrTGlua1ZpZGVvRnJhbWUgKl9mcmFtZSwgQk1ET3V0cHV0RnJhbWVDb21wbGV0aW9uUmVzdWx0 IHJlc3VsdCkKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgU2NoZWR1bGVk RnJhbWVDb21wbGV0ZWQoSURlY2tMaW5rVmlkZW9GcmFtZV92MTRfMl8xICpfZnJhbWUsIEJNRE91 dHB1dEZyYW1lQ29tcGxldGlvblJlc3VsdCByZXN1bHQpCiAgICAgewogICAgICAgICBkZWNrbGlu a19mcmFtZSAqZnJhbWUgPSBzdGF0aWNfY2FzdDxkZWNrbGlua19mcmFtZSAqPihfZnJhbWUpOwog ICAgICAgICBzdHJ1Y3QgZGVja2xpbmtfY3R4ICpjdHggPSBmcmFtZS0+X2N0eDsKQEAgLTE4Myw3 ICsxNzYsMjAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gU19PSzsKICAgICB9CiAgICAgdmly dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFNjaGVkdWxlZFBsYXliYWNrSGFzU3RvcHBl ZCh2b2lkKSAgICAgICB7IHJldHVybiBTX09LOyB9Ci0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1F VEhPRENBTExUWVBFIFF1ZXJ5SW50ZXJmYWNlKFJFRklJRCBpaWQsIExQVk9JRCAqcHB2KSB7IHJl dHVybiBFX05PSU5URVJGQUNFOyB9CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExU WVBFIFF1ZXJ5SW50ZXJmYWNlKFJFRklJRCByaWlkLCBMUFZPSUQgKnBwdikKKyAgICB7CisgICAg ICAgIGlmIChERUNLTElOS19Jc0VxdWFsSUlEKHJpaWQsIElJRF9JVW5rbm93bikpIHsKKyAgICAg ICAgICAgICpwcHYgPSBzdGF0aWNfY2FzdDxJVW5rbm93bio+KHRoaXMpOworICAgICAgICB9IGVs c2UgaWYgKERFQ0tMSU5LX0lzRXF1YWxJSUQocmlpZCwgSUlEX0lEZWNrTGlua1ZpZGVvT3V0cHV0 Q2FsbGJhY2tfdjE0XzJfMSkpIHsKKyAgICAgICAgICAgICpwcHYgPSBzdGF0aWNfY2FzdDxJRGVj a0xpbmtWaWRlb091dHB1dENhbGxiYWNrX3YxNF8yXzEqPih0aGlzKTsKKyAgICAgICAgfSBlbHNl IHsKKyAgICAgICAgICAgICpwcHYgPSBOVUxMOworICAgICAgICAgICAgcmV0dXJuIEVfTk9JTlRF UkZBQ0U7CisgICAgICAgIH0KKworICAgICAgICBBZGRSZWYoKTsKKyAgICAgICAgcmV0dXJuIFNf T0s7CisgICAgfQogICAgIHZpcnR1YWwgVUxPTkcgICBTVERNRVRIT0RDQUxMVFlQRSBBZGRSZWYo dm9pZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gMTsgfQogICAgIHZpcnR1 YWwgVUxPTkcgICBTVERNRVRIT0RDQUxMVFlQRSBSZWxlYXNlKHZvaWQpICAgICAgICAgICAgICAg ICAgICAgICAgICAgeyByZXR1cm4gMTsgfQogfTsKQEAgLTc2Myw3ICs3NjksNyBAQCBzdGF0aWMg aW50IGRlY2tsaW5rX3dyaXRlX3ZpZGVvX3BhY2tldChBVkZvcm1hdENvbnRleHQgKmF2Y3R4LCBB VlBhY2tldCAqcGt0KQogICAgICAgICBjdHgtPmZpcnN0X3B0cyA9IHBrdC0+cHRzOwogCiAgICAg LyogU2NoZWR1bGUgZnJhbWUgZm9yIHBsYXliYWNrLiAqLwotICAgIGhyID0gY3R4LT5kbG8tPlNj aGVkdWxlVmlkZW9GcmFtZSgoY2xhc3MgSURlY2tMaW5rVmlkZW9GcmFtZSAqKSBmcmFtZSwKKyAg ICBociA9IGN0eC0+ZGxvLT5TY2hlZHVsZVZpZGVvRnJhbWUoZnJhbWUsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBrdC0+cHRzICogY3R4LT5ibWRfdGJfbnVtLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPmJtZF90Yl9udW0sIGN0eC0+ Ym1kX3RiX2Rlbik7CiAgICAgLyogUGFzcyBvd25lcnNoaXAgdG8gRGVja0xpbmssIG9yIHJlbGVh c2Ugb24gZmFpbHVyZSAqLwpAQCAtODk4LDcgKzkwNCw3IEBAIGF2X2NvbGQgaW50IGZmX2RlY2ts aW5rX3dyaXRlX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKmF2Y3R4KQogICAgICAgICByZXR1cm4g cmV0OwogCiAgICAgLyogR2V0IG91dHB1dCBkZXZpY2UuICovCi0gICAgaWYgKGN0eC0+ZGwtPlF1 ZXJ5SW50ZXJmYWNlKElJRF9JRGVja0xpbmtPdXRwdXQsICh2b2lkICoqKSAmY3R4LT5kbG8pICE9 IFNfT0spIHsKKyAgICBpZiAoY3R4LT5kbC0+UXVlcnlJbnRlcmZhY2UoSUlEX0lEZWNrTGlua091 dHB1dF92MTRfMl8xLCAodm9pZCAqKikgJmN0eC0+ZGxvKSAhPSBTX09LKSB7CiAgICAgICAgIGF2 X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiQ291bGQgbm90IG9wZW4gb3V0cHV0IGRldmljZSBm cm9tICclcydcbiIsCiAgICAgICAgICAgICAgICBhdmN0eC0+dXJsKTsKICAgICAgICAgcmV0ID0g QVZFUlJPUihFSU8pOwotLSAKMi41Mi4wCgoKRnJvbSA5MGQ1NWZmMzIzODk2MzFhMzFjMGU0NWZj YzEzYjlhYjYzM2NhZWEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBaaGFvIFpoaWxp IDx6aGlsaXpoYW9AdGVuY2VudC5jb20+CkRhdGU6IEZyaSwgMjggTm92IDIwMjUgMTE6MTc6MDUg KzA4MDAKU3ViamVjdDogW1BBVENIIDE2NS8zMDRdIGZmdG9vbHMvZmZtcGVnOiBhZGQgZm9yY2Ug a2V5IGZyYW1lIGJ5IHNjZGV0IG1ldGFkYXRhCiBzdXBwb3J0CgpGb3IgZXhhbXBsZToKCi4vZmZt cGVnIC1od2FjY2VsIHZpZGVvdG9vbGJveCBcCgktaSBpbnB1dC5tcDQgLWM6YSBjb3B5IFwKCS12 ZiBzY2RldD10aHJlc2hvbGQ9MTAgXAoJLWM6diBoMjY0X3ZpZGVvdG9vbGJveCBcCgktZm9yY2Vf a2V5X2ZyYW1lcyBzY2RfbWV0YWRhdGEgXAoJLWcgMTAwMCAtdCAzMCBvdXRwdXQubXA0Ci0tLQog ZG9jL2ZmbXBlZy50ZXhpICAgICAgICAgICB8IDkgKysrKysrKysrCiBmZnRvb2xzL2ZmbXBlZy5o ICAgICAgICAgIHwgMiArKwogZmZ0b29scy9mZm1wZWdfZW5jLmMgICAgICB8IDMgKysrCiBmZnRv b2xzL2ZmbXBlZ19tdXhfaW5pdC5jIHwgMiArKwogNCBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvZG9jL2ZmbXBlZy50ZXhpIGIvZG9jL2ZmbXBlZy50ZXhpCmlu ZGV4IDNkYWYyZjdlYzIuLjJkYWU2NjMyYmMgMTAwNjQ0Ci0tLSBhL2RvYy9mZm1wZWcudGV4aQor KysgYi9kb2MvZmZtcGVnLnRleGkKQEAgLTE2NjUsNiArMTY2NSw3IEBAIEZvcmNlIHZpZGVvIHRh Zy9mb3VyY2MuIFRoaXMgaXMgYW4gYWxpYXMgZm9yIEBjb2Rley10YWc6dn0uCiBAaXRlbSAtZm9y Y2Vfa2V5X2ZyYW1lc1s6QHZhcntzdHJlYW1fc3BlY2lmaWVyfV0gQHZhcnt0aW1lfVssQHZhcnt0 aW1lfS4uLl0gKEBlbXBoe291dHB1dCxwZXItc3RyZWFtfSkKIEBpdGVtIC1mb3JjZV9rZXlfZnJh bWVzWzpAdmFye3N0cmVhbV9zcGVjaWZpZXJ9XSBleHByOkB2YXJ7ZXhwcn0gKEBlbXBoe291dHB1 dCxwZXItc3RyZWFtfSkKIEBpdGVtIC1mb3JjZV9rZXlfZnJhbWVzWzpAdmFye3N0cmVhbV9zcGVj aWZpZXJ9XSBzb3VyY2UgKEBlbXBoe291dHB1dCxwZXItc3RyZWFtfSkKK0BpdGVtIC1mb3JjZV9r ZXlfZnJhbWVzWzpAdmFye3N0cmVhbV9zcGVjaWZpZXJ9XSBzY2RfbWV0YWRhdGEgKEBlbXBoe291 dHB1dCxwZXItc3RyZWFtfSkKIAogQHZhcntmb3JjZV9rZXlfZnJhbWVzfSBjYW4gdGFrZSBhcmd1 bWVudHMgb2YgdGhlIGZvbGxvd2luZyBmb3JtOgogCkBAIC0xNzI4LDYgKzE3MjksMTQgQEAgdGhl IGN1cnJlbnQgZnJhbWUgYmVpbmcgZW5jb2RlZCBpcyBtYXJrZWQgYXMgYSBrZXkgZnJhbWUgaW4g aXRzIHNvdXJjZS4KIEluIGNhc2VzIHdoZXJlIHRoaXMgcGFydGljdWxhciBzb3VyY2UgZnJhbWUg aGFzIHRvIGJlIGRyb3BwZWQsCiBlbmZvcmNlIHRoZSBuZXh0IGF2YWlsYWJsZSBmcmFtZSB0byBi ZWNvbWUgYSBrZXkgZnJhbWUgaW5zdGVhZC4KIAorQGl0ZW0gc2NkX21ldGFkYXRhCitJZiB0aGUg YXJndW1lbnQgaXMgQGNvZGV7c2NkX21ldGFkYXRhfSwgZmZtcGVnIHdpbGwgZm9yY2UgYSBrZXkg ZnJhbWUgaWYKK3RoZSBjdXJyZW50IGZyYW1lIGNvbnRhaW5zIGEgbWV0YWRhdGEgZW50cnkgd2l0 aCB0aGUga2V5IEBjb2Rle2xhdmZpLnNjZC50aW1lfS4KK1RoZSBtZXRhZGF0YSBjYW4gYmUgYWRk ZWQgYnkgZmlsdGVycyBsaWtlIEBjb2Rle3NjZGV0fSBhbmQgQGNvZGV7c2NkZXRfdnVsa2FufS4K K0F2b2lkIGluc2VydGluZyBmaWx0ZXJzIHRoYXQgZHVwbGljYXRlIGZyYW1lcyBhZnRlciBAY29k ZXtzY2RldH0sIGFzIHRoaXMgY2FuCitjYXVzZSBkdXBsaWNhdGUgbWV0YWRhdGEgZm9yIG11bHRp cGxlIGZyYW1lcyBhbmQgcmVwZWF0ZWQgaW5zZXJ0aW9uIG9mIGtleQorZnJhbWVzLgorCiBAZW5k IHRhYmxlCiAKIE5vdGUgdGhhdCBmb3JjaW5nIHRvbyBtYW55IGtleWZyYW1lcyBpcyB2ZXJ5IGhh cm1mdWwgZm9yIHRoZSBsb29rYWhlYWQKZGlmZiAtLWdpdCBhL2ZmdG9vbHMvZmZtcGVnLmggYi9m ZnRvb2xzL2ZmbXBlZy5oCmluZGV4IGNjMmVhMWE1NmUuLjc3MjBkZDljNTkgMTAwNjQ0Ci0tLSBh L2ZmdG9vbHMvZmZtcGVnLmgKKysrIGIvZmZ0b29scy9mZm1wZWcuaApAQCAtNjAyLDYgKzYwMiw4 IEBAIGVudW0gewogI2lmIEZGTVBFR19PUFRfRk9SQ0VfS0ZfU09VUkNFX05PX0RST1AKICAgICBL Rl9GT1JDRV9TT1VSQ0VfTk9fRFJPUCA9IDIsCiAjZW5kaWYKKyAgICAvLyBmb3JjZSBrZXlmcmFt ZSBpZiBsYXZmaS5zY2QudGltZSBtZXRhZGF0YSBpcyBzZXQKKyAgICBLRl9GT1JDRV9TQ0RfTUVU QURBVEEgPSAzLAogfTsKIAogdHlwZWRlZiBzdHJ1Y3QgS2V5ZnJhbWVGb3JjZUN0eCB7CmRpZmYg LS1naXQgYS9mZnRvb2xzL2ZmbXBlZ19lbmMuYyBiL2ZmdG9vbHMvZmZtcGVnX2VuYy5jCmluZGV4 IDhmMDdhMTA4NDguLjBmN2Q5NjE0NzIgMTAwNjQ0Ci0tLSBhL2ZmdG9vbHMvZmZtcGVnX2VuYy5j CisrKyBiL2ZmdG9vbHMvZmZtcGVnX2VuYy5jCkBAIC03NjgsNiArNzY4LDkgQEAgc3RhdGljIGVu dW0gQVZQaWN0dXJlVHlwZSBmb3JjZWRfa2ZfYXBwbHkodm9pZCAqbG9nY3R4LCBLZXlmcmFtZUZv cmNlQ3R4ICprZiwKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAoa2YtPnR5cGUgPT0gS0ZfRk9S Q0VfU09VUkNFICYmIChmcmFtZS0+ZmxhZ3MgJiBBVl9GUkFNRV9GTEFHX0tFWSkpIHsKICAgICAg ICAgZ290byBmb3JjZV9rZXlmcmFtZTsKKyAgICB9IGVsc2UgaWYgKGtmLT50eXBlID09IEtGX0ZP UkNFX1NDRF9NRVRBREFUQSAmJgorICAgICAgICAgICAgICAgYXZfZGljdF9nZXQoZnJhbWUtPm1l dGFkYXRhLCAibGF2Zmkuc2NkLnRpbWUiLCBOVUxMLCAwKSkgeworICAgICAgICBnb3RvIGZvcmNl X2tleWZyYW1lOwogICAgIH0KIAogICAgIHJldHVybiBBVl9QSUNUVVJFX1RZUEVfTk9ORTsKZGlm ZiAtLWdpdCBhL2ZmdG9vbHMvZmZtcGVnX211eF9pbml0LmMgYi9mZnRvb2xzL2ZmbXBlZ19tdXhf aW5pdC5jCmluZGV4IGJjYmJlZTkxMjYuLjE5NGE4Nzg3NWQgMTAwNjQ0Ci0tLSBhL2ZmdG9vbHMv ZmZtcGVnX211eF9pbml0LmMKKysrIGIvZmZ0b29scy9mZm1wZWdfbXV4X2luaXQuYwpAQCAtMzI3 OSw2ICszMjc5LDggQEAgc3RhdGljIGludCBwcm9jZXNzX2ZvcmNlZF9rZXlmcmFtZXMoTXV4ZXIg Km11eCwgY29uc3QgT3B0aW9uc0NvbnRleHQgKm8pCiAgICAgICAgICAgICAgICAgICAgIi1mb3Jj ZV9rZXlfZnJhbWVzIGlzIGRlcHJlY2F0ZWQsIHVzZSBqdXN0ICdzb3VyY2UnXG4iKTsKICAgICAg ICAgICAgIG9zdC0+a2YudHlwZSA9IEtGX0ZPUkNFX1NPVVJDRTsKICNlbmRpZgorICAgICAgICB9 IGVsc2UgaWYgKCFzdHJjbXAoZm9yY2VkX2tleWZyYW1lcywgInNjZF9tZXRhZGF0YSIpKSB7Cisg ICAgICAgICAgICBvc3QtPmtmLnR5cGUgPSBLRl9GT1JDRV9TQ0RfTUVUQURBVEE7CiAgICAgICAg IH0gZWxzZSB7CiAgICAgICAgICAgICBpbnQgcmV0ID0gcGFyc2VfZm9yY2VkX2tleV9mcmFtZXMo b3N0LCAmb3N0LT5rZiwgbXV4LCBmb3JjZWRfa2V5ZnJhbWVzKTsKICAgICAgICAgICAgIGlmIChy ZXQgPCAwKQotLSAKMi41Mi4wCgoKRnJvbSA4ZDQ3YjIyNDg2ZTJhYmNjYzVlODRmMDk5MDE0OTJh MmVlMTNjNTZiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBaaGFvIFpoaWxpIDx6aGls aXpoYW9AdGVuY2VudC5jb20+CkRhdGU6IFN1biwgMzAgTm92IDIwMjUgMTY6NTU6MDIgKzA4MDAK U3ViamVjdDogW1BBVENIIDE2Ni8zMDRdIHRlc3RzL2ZhdGUvZmZtcGVnOiBhZGQgdGVzdCBmb3Ig LWZvcmNlX2tleV9mcmFtZXMKIHNjZF9tZXRhZGF0YQoKLS0tCiB0ZXN0cy9mYXRlL2ZmbXBlZy5t YWsgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOSArLQogdGVzdHMvcmVmL2ZhdGUvZm9yY2Vf a2V5X2ZyYW1lcy1zY2RfbWV0YWRhdGEgfCAzOTcgKysrKysrKysrKysrKysrKysrKwogMiBmaWxl cyBjaGFuZ2VkLCA0MDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCB0ZXN0cy9yZWYvZmF0ZS9mb3JjZV9rZXlfZnJhbWVzLXNjZF9tZXRhZGF0YQoKZGlm ZiAtLWdpdCBhL3Rlc3RzL2ZhdGUvZmZtcGVnLm1hayBiL3Rlc3RzL2ZhdGUvZmZtcGVnLm1hawpp bmRleCA1NzAyOGE3OTM2Li5jMGRhMmRhN2Y4IDEwMDY0NAotLS0gYS90ZXN0cy9mYXRlL2ZmbXBl Zy5tYWsKKysrIGIvdGVzdHMvZmF0ZS9mZm1wZWcubWFrCkBAIC00MCw4ICs0MCwxMyBAQCBmYXRl LWZvcmNlX2tleV9mcmFtZXMtc291cmNlLWR1cDogQ01EID0gZnJhbWVjcmMgLWkgJChUQVJHRVRf U0FNUExFUykvaDI2NC9pbnRyYQogICAtYzp2IG1wZWcydmlkZW8gLWcgNDAwIC1zY190aHJlc2hv bGQgOTk5OTkgXAogICAtZm9yY2Vfa2V5X2ZyYW1lcyBzb3VyY2UgLXIgMzkgLWZvcmNlX2ZwcyAt c3RyaWN0IGV4cGVyaW1lbnRhbAogCi1GQVRFX1NBTVBMRVNfRkZNUEVHLSQoY2FsbCBFTkNERUMs IE1QRUcyVklERU8gSDI2NCwgRlJBTUVDUkMgSDI2NCwgSDI2NF9QQVJTRVIgQ1JPUF9GSUxURVIg RFJBV0JPWF9GSUxURVIgUElQRV9QUk9UT0NPTCkgKz0gXAotICAgIGZhdGUtZm9yY2Vfa2V5X2Zy YW1lcy1zb3VyY2UgZmF0ZS1mb3JjZV9rZXlfZnJhbWVzLXNvdXJjZS1kcm9wIGZhdGUtZm9yY2Vf a2V5X2ZyYW1lcy1zb3VyY2UtZHVwCitmYXRlLWZvcmNlX2tleV9mcmFtZXMtc2NkX21ldGFkYXRh OiBDTUQgPSBmcmFtZWNyYyAtaSAkKFRBUkdFVF9TQU1QTEVTKS9oMjY0L2ludHJhX3JlZnJlc2gu aDI2NCBcCisgIC12ZiBzY2RldD10aHJlc2hvbGQ9MTAsY3JvcD0yOjIsZHJhd2JveD1jb2xvcj1i bGFjazp0PWZpbGwgXAorICAtYzp2IG1wZWcydmlkZW8gLWcgNDAwIFwKKyAgLWZvcmNlX2tleV9m cmFtZXMgc2NkX21ldGFkYXRhCisKK0ZBVEVfU0FNUExFU19GRk1QRUctJChjYWxsIEVOQ0RFQywg TVBFRzJWSURFTyBIMjY0LCBGUkFNRUNSQyBIMjY0LCBIMjY0X1BBUlNFUiBDUk9QX0ZJTFRFUiBE UkFXQk9YX0ZJTFRFUiBTQ0RFVF9GSUxURVIgUElQRV9QUk9UT0NPTCkgKz0gXAorICAgIGZhdGUt Zm9yY2Vfa2V5X2ZyYW1lcy1zb3VyY2UgZmF0ZS1mb3JjZV9rZXlfZnJhbWVzLXNvdXJjZS1kcm9w IGZhdGUtZm9yY2Vfa2V5X2ZyYW1lcy1zb3VyY2UtZHVwIGZhdGUtZm9yY2Vfa2V5X2ZyYW1lcy1z Y2RfbWV0YWRhdGEKIAogIyBUZXN0cyB0aGF0IHRoZSB2aWRlbyBpcyBwcm9wZXJseSBhdXRvcm90 YXRlZCB1c2luZyB0aGUgY29udGFpbmVkCiAjIGRpc3BsYXkgbWF0cml4IGFuZCB0aGF0IHRoZSBn ZW5lcmF0ZWQgZmlsZSBkb2VzIG5vdCBjb250YWluCmRpZmYgLS1naXQgYS90ZXN0cy9yZWYvZmF0 ZS9mb3JjZV9rZXlfZnJhbWVzLXNjZF9tZXRhZGF0YSBiL3Rlc3RzL3JlZi9mYXRlL2ZvcmNlX2tl eV9mcmFtZXMtc2NkX21ldGFkYXRhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAuLmY1NzU3YmY2YzgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9yZWYvZmF0ZS9mb3JjZV9r ZXlfZnJhbWVzLXNjZF9tZXRhZGF0YQpAQCAtMCwwICsxLDM5NyBAQAorI3RiIDA6IDEvMjUKKyNt ZWRpYV90eXBlIDA6IHZpZGVvCisjY29kZWNfaWQgMDogbXBlZzJ2aWRlbworI2RpbWVuc2lvbnMg MDogMngyCisjc2FyIDA6IDAvMQorMCwgICAgICAgICAtMSwgICAgICAgICAgMCwgICAgICAgIDEs ICAgICAgIDU3LCAweDdkYjAwZWI3LCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA1 ZWMwMGJlCiswLCAgICAgICAgICAwLCAgICAgICAgICAxLCAgICAgICAgMSwgICAgICAgMjQsIDB4 NGYxYzA2NjAsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVl CiswLCAgICAgICAgICAxLCAgICAgICAgICAyLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTNkYzA2 YTAsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAg ICAgICAgICAyLCAgICAgICAgICAzLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTg5YzA2ZTAsIEY9 MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAg ICAzLCAgICAgICAgICA0LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGE3MDA2MjEsIEY9MHgwLCBT PTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgICA0LCAg ICAgICAgICA1LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGYzMDA2NjEsIEY9MHgwLCBTPTEsIFF1 YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgICA1LCAgICAgICAg ICA2LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTNmMDA2YTEsIEY9MHgwLCBTPTEsIFF1YWxpdHkg c3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgICA2LCAgICAgICAgICA3LCAg ICAgICAgMSwgICAgICAgMjQsIDB4NThiMDA2ZTEsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMs ICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgICA3LCAgICAgICAgICA4LCAgICAgICAg MSwgICAgICAgMjQsIDB4NGE4NDA2MjIsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAg ICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgICA4LCAgICAgICAgICA5LCAgICAgICAgMSwgICAg ICAgMjQsIDB4NGY0NDA2NjIsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAw eDA3NjgwMGVlCiswLCAgICAgICAgICA5LCAgICAgICAgIDEwLCAgICAgICAgMSwgICAgICAgMjQs IDB4NTQwNDA2YTIsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3Njgw MGVlCiswLCAgICAgICAgIDEwLCAgICAgICAgIDExLCAgICAgICAgMSwgICAgICAgMjQsIDB4NThj NDA2ZTIsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCisw LCAgICAgICAgIDExLCAgICAgICAgIDEyLCAgICAgICAgMSwgICAgICAgMjQsIDB4NGE5ODA2MjMs IEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAg ICAgIDEyLCAgICAgICAgIDEzLCAgICAgICAgMSwgICAgICAgMjQsIDB4NGY1ODA2NjMsIEY9MHgw LCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDEz LCAgICAgICAgIDE0LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTQxODA2YTMsIEY9MHgwLCBTPTEs IFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDE0LCAgICAg ICAgIDE1LCAgICAgICAgMSwgICAgICAgMjQsIDB4NThkODA2ZTMsIEY9MHgwLCBTPTEsIFF1YWxp dHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDE1LCAgICAgICAgIDE2 LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGFhYzA2MjQsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3Rh dHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDE2LCAgICAgICAgIDE3LCAgICAg ICAgMSwgICAgICAgMjQsIDB4NGY2YzA2NjQsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAg ICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDE3LCAgICAgICAgIDE4LCAgICAgICAgMSwg ICAgICAgMjQsIDB4NTQyYzA2YTQsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4 LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDE4LCAgICAgICAgIDE5LCAgICAgICAgMSwgICAgICAg MjQsIDB4NThlYzA2ZTQsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3 NjgwMGVlCiswLCAgICAgICAgIDE5LCAgICAgICAgIDIwLCAgICAgICAgMSwgICAgICAgMjQsIDB4 NGFjMDA2MjUsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVl CiswLCAgICAgICAgIDIwLCAgICAgICAgIDIxLCAgICAgICAgMSwgICAgICAgMjQsIDB4NGY4MDA2 NjUsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAg ICAgICAgIDIxLCAgICAgICAgIDIyLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTQ0MDA2YTUsIEY9 MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAg IDIyLCAgICAgICAgIDIzLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTkwMDA2ZTUsIEY9MHgwLCBT PTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDIzLCAg ICAgICAgIDI0LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGFkNDA2MjYsIEY9MHgwLCBTPTEsIFF1 YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDI0LCAgICAgICAg IDI1LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGY5NDA2NjYsIEY9MHgwLCBTPTEsIFF1YWxpdHkg c3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDI1LCAgICAgICAgIDI2LCAg ICAgICAgMSwgICAgICAgMjQsIDB4NTQ1NDA2YTYsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMs ICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDI2LCAgICAgICAgIDI3LCAgICAgICAg MSwgICAgICAgMjQsIDB4NTkxNDA2ZTYsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAg ICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDI3LCAgICAgICAgIDI4LCAgICAgICAgMSwgICAg ICAgMjQsIDB4NGFlODA2MjcsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAw eDA3NjgwMGVlCiswLCAgICAgICAgIDI4LCAgICAgICAgIDI5LCAgICAgICAgMSwgICAgICAgMjQs IDB4NGZhODA2NjcsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3Njgw MGVlCiswLCAgICAgICAgIDI5LCAgICAgICAgIDMwLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTQ2 ODA2YTcsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCisw LCAgICAgICAgIDMwLCAgICAgICAgIDMxLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTkyODA2ZTcs IEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAg ICAgIDMxLCAgICAgICAgIDMyLCAgICAgICAgMSwgICAgICAgMjQsIDB4NGFmYzA2MjgsIEY9MHgw LCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDMy LCAgICAgICAgIDMzLCAgICAgICAgMSwgICAgICAgMjQsIDB4NGZiYzA2NjgsIEY9MHgwLCBTPTEs IFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDMzLCAgICAg ICAgIDM0LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTQ3YzA2YTgsIEY9MHgwLCBTPTEsIFF1YWxp dHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDM0LCAgICAgICAgIDM1 LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTkzYzA2ZTgsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3Rh dHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDM1LCAgICAgICAgIDM2LCAgICAg ICAgMSwgICAgICAgMjQsIDB4NGIxMDA2MjksIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAg ICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDM2LCAgICAgICAgIDM3LCAgICAgICAgMSwg ICAgICAgMjQsIDB4NGZkMDA2NjksIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4 LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDM3LCAgICAgICAgIDM4LCAgICAgICAgMSwgICAgICAg MjQsIDB4NTQ5MDA2YTksIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3 NjgwMGVlCiswLCAgICAgICAgIDM4LCAgICAgICAgIDM5LCAgICAgICAgMSwgICAgICAgMjQsIDB4 NTk1MDA2ZTksIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVl CiswLCAgICAgICAgIDM5LCAgICAgICAgIDQwLCAgICAgICAgMSwgICAgICAgMjQsIDB4NGIyNDA2 MmEsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAg ICAgICAgIDQwLCAgICAgICAgIDQxLCAgICAgICAgMSwgICAgICAgMjQsIDB4NGZlNDA2NmEsIEY9 MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAg IDQxLCAgICAgICAgIDQyLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTRhNDA2YWEsIEY9MHgwLCBT PTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDQyLCAg ICAgICAgIDQzLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTk2NDA2ZWEsIEY9MHgwLCBTPTEsIFF1 YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDQzLCAgICAgICAg IDQ0LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGIzODA2MmIsIEY9MHgwLCBTPTEsIFF1YWxpdHkg c3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDQ0LCAgICAgICAgIDQ1LCAg ICAgICAgMSwgICAgICAgMjQsIDB4NGZmODA2NmIsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMs ICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDQ1LCAgICAgICAgIDQ2LCAgICAgICAg MSwgICAgICAgMjQsIDB4NTRiODA2YWIsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAg ICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDQ2LCAgICAgICAgIDQ3LCAgICAgICAgMSwgICAg ICAgMjQsIDB4NTk3ODA2ZWIsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAw eDA3NjgwMGVlCiswLCAgICAgICAgIDQ3LCAgICAgICAgIDQ4LCAgICAgICAgMSwgICAgICAgMjQs IDB4NGI0YzA2MmMsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3Njgw MGVlCiswLCAgICAgICAgIDQ4LCAgICAgICAgIDQ5LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTAw YzA2NmMsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCisw LCAgICAgICAgIDQ5LCAgICAgICAgIDUwLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTRjYzA2YWMs IEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAg ICAgIDUwLCAgICAgICAgIDUxLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTk4YzA2ZWMsIEY9MHgw LCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDUx LCAgICAgICAgIDUyLCAgICAgICAgMSwgICAgICAgMjQsIDB4NGI2MDA2MmQsIEY9MHgwLCBTPTEs IFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDUyLCAgICAg ICAgIDUzLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTAyMDA2NmQsIEY9MHgwLCBTPTEsIFF1YWxp dHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDUzLCAgICAgICAgIDU0 LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTRlMDA2YWQsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3Rh dHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDU0LCAgICAgICAgIDU1LCAgICAg ICAgMSwgICAgICAgMjQsIDB4NTlhMDA2ZWQsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAg ICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDU1LCAgICAgICAgIDU2LCAgICAgICAgMSwg ICAgICAgMjQsIDB4NGI3NDA2MmUsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4 LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDU2LCAgICAgICAgIDU3LCAgICAgICAgMSwgICAgICAg MjQsIDB4NTAzNDA2NmUsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3 NjgwMGVlCiswLCAgICAgICAgIDU3LCAgICAgICAgIDU4LCAgICAgICAgMSwgICAgICAgMjQsIDB4 NTRmNDA2YWUsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVl CiswLCAgICAgICAgIDU4LCAgICAgICAgIDU5LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTliNDA2 ZWUsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAg ICAgICAgIDU5LCAgICAgICAgIDYwLCAgICAgICAgMSwgICAgICAgMjQsIDB4NGI4ODA2MmYsIEY9 MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAg IDYwLCAgICAgICAgIDYxLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTA0ODA2NmYsIEY9MHgwLCBT PTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDYxLCAg ICAgICAgIDYyLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTUwODA2YWYsIEY9MHgwLCBTPTEsIFF1 YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDYyLCAgICAgICAg IDYzLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTljODA2ZWYsIEY9MHgwLCBTPTEsIFF1YWxpdHkg c3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDYzLCAgICAgICAgIDY0LCAg ICAgICAgMSwgICAgICAgMjQsIDB4NGI5YzA2MzAsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMs ICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDY0LCAgICAgICAgIDY1LCAgICAgICAg MSwgICAgICAgMjQsIDB4NTA1YzA2NzAsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAg ICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDY1LCAgICAgICAgIDY2LCAgICAgICAgMSwgICAg ICAgMjQsIDB4NTUxYzA2YjAsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAw eDA3NjgwMGVlCiswLCAgICAgICAgIDY2LCAgICAgICAgIDY3LCAgICAgICAgMSwgICAgICAgMjQs IDB4NTlkYzA2ZjAsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3Njgw MGVlCiswLCAgICAgICAgIDY3LCAgICAgICAgIDY4LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGJi MDA2MzEsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCisw LCAgICAgICAgIDY4LCAgICAgICAgIDY5LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTA3MDA2NzEs IEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAg ICAgIDY5LCAgICAgICAgIDcwLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTUzMDA2YjEsIEY9MHgw LCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDcw LCAgICAgICAgIDcxLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTlmMDA2ZjEsIEY9MHgwLCBTPTEs IFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDcxLCAgICAg ICAgIDcyLCAgICAgICAgMSwgICAgICAgMjQsIDB4NGJjNDA2MzIsIEY9MHgwLCBTPTEsIFF1YWxp dHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDcyLCAgICAgICAgIDcz LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTA4NDA2NzIsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3Rh dHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDczLCAgICAgICAgIDc0LCAgICAg ICAgMSwgICAgICAgMjQsIDB4NTU0NDA2YjIsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAg ICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDc0LCAgICAgICAgIDc1LCAgICAgICAgMSwg ICAgICAgMjQsIDB4NWEwNDA2ZjIsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4 LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDc1LCAgICAgICAgIDc2LCAgICAgICAgMSwgICAgICAg MjQsIDB4NGJkODA2MzMsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3 NjgwMGVlCiswLCAgICAgICAgIDc2LCAgICAgICAgIDc3LCAgICAgICAgMSwgICAgICAgMjQsIDB4 NTA5ODA2NzMsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVl CiswLCAgICAgICAgIDc3LCAgICAgICAgIDc4LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTU1ODA2 YjMsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAg ICAgICAgIDc4LCAgICAgICAgIDc5LCAgICAgICAgMSwgICAgICAgMjQsIDB4NWExODA2ZjMsIEY9 MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAg IDc5LCAgICAgICAgIDgwLCAgICAgICAgMSwgICAgICAgMjQsIDB4NGJlYzA2MzQsIEY9MHgwLCBT PTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDgwLCAg ICAgICAgIDgxLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTBhYzA2NzQsIEY9MHgwLCBTPTEsIFF1 YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDgxLCAgICAgICAg IDgyLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTU2YzA2YjQsIEY9MHgwLCBTPTEsIFF1YWxpdHkg c3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDgyLCAgICAgICAgIDgzLCAg ICAgICAgMSwgICAgICAgMjQsIDB4NWEyYzA2ZjQsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMs ICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDgzLCAgICAgICAgIDg0LCAgICAgICAg MSwgICAgICAgMjQsIDB4NGMwMDA2MzUsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAg ICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDg0LCAgICAgICAgIDg1LCAgICAgICAgMSwgICAg ICAgMjQsIDB4NTBjMDA2NzUsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAw eDA3NjgwMGVlCiswLCAgICAgICAgIDg1LCAgICAgICAgIDg2LCAgICAgICAgMSwgICAgICAgMjQs IDB4NTU4MDA2YjUsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3Njgw MGVlCiswLCAgICAgICAgIDg2LCAgICAgICAgIDg3LCAgICAgICAgMSwgICAgICAgMjQsIDB4NWE0 MDA2ZjUsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCisw LCAgICAgICAgIDg3LCAgICAgICAgIDg4LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGMxNDA2MzYs IEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAg ICAgIDg4LCAgICAgICAgIDg5LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTBkNDA2NzYsIEY9MHgw LCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDg5 LCAgICAgICAgIDkwLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTU5NDA2YjYsIEY9MHgwLCBTPTEs IFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDkwLCAgICAg ICAgIDkxLCAgICAgICAgMSwgICAgICAgMjQsIDB4NWE1NDA2ZjYsIEY9MHgwLCBTPTEsIFF1YWxp dHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDkxLCAgICAgICAgIDky LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGMyODA2MzcsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3Rh dHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDkyLCAgICAgICAgIDkzLCAgICAg ICAgMSwgICAgICAgMjQsIDB4NTBlODA2NzcsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAg ICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDkzLCAgICAgICAgIDk0LCAgICAgICAgMSwg ICAgICAgMjQsIDB4NTVhODA2YjcsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4 LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDk0LCAgICAgICAgIDk1LCAgICAgICAgMSwgICAgICAg MjQsIDB4NWE2ODA2ZjcsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3 NjgwMGVlCiswLCAgICAgICAgIDk1LCAgICAgICAgIDk2LCAgICAgICAgMSwgICAgICAgMjQsIDB4 NGMzYzA2MzgsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVl CiswLCAgICAgICAgIDk2LCAgICAgICAgIDk3LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTBmYzA2 NzgsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAg ICAgICAgIDk3LCAgICAgICAgIDk4LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTViYzA2YjgsIEY9 MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAg IDk4LCAgICAgICAgIDk5LCAgICAgICAgMSwgICAgICAgMjQsIDB4NWE3YzA2ZjgsIEY9MHgwLCBT PTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgIDk5LCAg ICAgICAgMTAwLCAgICAgICAgMSwgICAgICAgMjQsIDB4NGM1MDA2MzksIEY9MHgwLCBTPTEsIFF1 YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMTAwLCAgICAgICAg MTAxLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTExMDA2NzksIEY9MHgwLCBTPTEsIFF1YWxpdHkg c3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMTAxLCAgICAgICAgMTAyLCAg ICAgICAgMSwgICAgICAgMjQsIDB4NTVkMDA2YjksIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMs ICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMTAyLCAgICAgICAgMTAzLCAgICAgICAg MSwgICAgICAgMjQsIDB4NWE5MDA2ZjksIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAg ICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMTAzLCAgICAgICAgMTA0LCAgICAgICAgMSwgICAg ICAgMjQsIDB4NGM2NDA2M2EsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAw eDA3NjgwMGVlCiswLCAgICAgICAgMTA0LCAgICAgICAgMTA1LCAgICAgICAgMSwgICAgICAgMjQs IDB4NTEyNDA2N2EsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3Njgw MGVlCiswLCAgICAgICAgMTA1LCAgICAgICAgMTA2LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTVl NDA2YmEsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCisw LCAgICAgICAgMTA2LCAgICAgICAgMTA3LCAgICAgICAgMSwgICAgICAgMjQsIDB4NWFhNDA2ZmEs IEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAg ICAgMTA3LCAgICAgICAgMTA4LCAgICAgICAgMSwgICAgICAgNTcsIDB4ODVhNDBlZmIsIFM9MSwg UXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDVlYzAwYmUKKzAsICAgICAgICAxMDgsICAgICAg ICAxMDksICAgICAgICAxLCAgICAgICAyNCwgMHg0ZjFjMDY2MCwgRj0weDAsIFM9MSwgUXVhbGl0 eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxMDksICAgICAgICAxMTAs ICAgICAgICAxLCAgICAgICAyNCwgMHg1M2RjMDZhMCwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0 cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxMTAsICAgICAgICAxMTEsICAgICAg ICAxLCAgICAgICAyNCwgMHg1ODljMDZlMCwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAg ICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxMTEsICAgICAgICAxMTIsICAgICAgICAxLCAg ICAgICAyNCwgMHg0YTcwMDYyMSwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgs IDB4MDc2ODAwZWUKKzAsICAgICAgICAxMTIsICAgICAgICAxMTMsICAgICAgICAxLCAgICAgICAy NCwgMHg0ZjMwMDY2MSwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2 ODAwZWUKKzAsICAgICAgICAxMTMsICAgICAgICAxMTQsICAgICAgICAxLCAgICAgICAyNCwgMHg1 M2YwMDZhMSwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUK KzAsICAgICAgICAxMTQsICAgICAgICAxMTUsICAgICAgICAxLCAgICAgICAyNCwgMHg1OGIwMDZl MSwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAg ICAgICAxMTUsICAgICAgICAxMTYsICAgICAgICAxLCAgICAgICAyNCwgMHg0YTg0MDYyMiwgRj0w eDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAx MTYsICAgICAgICAxMTcsICAgICAgICAxLCAgICAgICAyNCwgMHg0ZjQ0MDY2MiwgRj0weDAsIFM9 MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxMTcsICAg ICAgICAxMTgsICAgICAgICAxLCAgICAgICAyNCwgMHg1NDA0MDZhMiwgRj0weDAsIFM9MSwgUXVh bGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxMTgsICAgICAgICAx MTksICAgICAgICAxLCAgICAgICAyNCwgMHg1OGM0MDZlMiwgRj0weDAsIFM9MSwgUXVhbGl0eSBz dGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxMTksICAgICAgICAxMjAsICAg ICAgICAxLCAgICAgICAyNCwgMHg0YTk4MDYyMywgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywg ICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxMjAsICAgICAgICAxMjEsICAgICAgICAx LCAgICAgICAyNCwgMHg0ZjU4MDY2MywgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAg IDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxMjEsICAgICAgICAxMjIsICAgICAgICAxLCAgICAg ICAyNCwgMHg1NDE4MDZhMywgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4 MDc2ODAwZWUKKzAsICAgICAgICAxMjIsICAgICAgICAxMjMsICAgICAgICAxLCAgICAgICAyNCwg MHg1OGQ4MDZlMywgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAw ZWUKKzAsICAgICAgICAxMjMsICAgICAgICAxMjQsICAgICAgICAxLCAgICAgICAyNCwgMHg0YWFj MDYyNCwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAs ICAgICAgICAxMjQsICAgICAgICAxMjUsICAgICAgICAxLCAgICAgICAyNCwgMHg0ZjZjMDY2NCwg Rj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAg ICAxMjUsICAgICAgICAxMjYsICAgICAgICAxLCAgICAgICAyNCwgMHg1NDJjMDZhNCwgRj0weDAs IFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxMjYs ICAgICAgICAxMjcsICAgICAgICAxLCAgICAgICAyNCwgMHg1OGVjMDZlNCwgRj0weDAsIFM9MSwg UXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxMjcsICAgICAg ICAxMjgsICAgICAgICAxLCAgICAgICAyNCwgMHg0YWMwMDYyNSwgRj0weDAsIFM9MSwgUXVhbGl0 eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxMjgsICAgICAgICAxMjks ICAgICAgICAxLCAgICAgICAyNCwgMHg0ZjgwMDY2NSwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0 cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxMjksICAgICAgICAxMzAsICAgICAg ICAxLCAgICAgICAyNCwgMHg1NDQwMDZhNSwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAg ICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxMzAsICAgICAgICAxMzEsICAgICAgICAxLCAg ICAgICAyNCwgMHg1OTAwMDZlNSwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgs IDB4MDc2ODAwZWUKKzAsICAgICAgICAxMzEsICAgICAgICAxMzIsICAgICAgICAxLCAgICAgICAy NCwgMHg0YWQ0MDYyNiwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2 ODAwZWUKKzAsICAgICAgICAxMzIsICAgICAgICAxMzMsICAgICAgICAxLCAgICAgICAyNCwgMHg0 Zjk0MDY2NiwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUK KzAsICAgICAgICAxMzMsICAgICAgICAxMzQsICAgICAgICAxLCAgICAgICAyNCwgMHg1NDU0MDZh NiwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAg ICAgICAxMzQsICAgICAgICAxMzUsICAgICAgICAxLCAgICAgICAyNCwgMHg1OTE0MDZlNiwgRj0w eDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAx MzUsICAgICAgICAxMzYsICAgICAgICAxLCAgICAgICAyNCwgMHg0YWU4MDYyNywgRj0weDAsIFM9 MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxMzYsICAg ICAgICAxMzcsICAgICAgICAxLCAgICAgICAyNCwgMHg0ZmE4MDY2NywgRj0weDAsIFM9MSwgUXVh bGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxMzcsICAgICAgICAx MzgsICAgICAgICAxLCAgICAgICAyNCwgMHg1NDY4MDZhNywgRj0weDAsIFM9MSwgUXVhbGl0eSBz dGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxMzgsICAgICAgICAxMzksICAg ICAgICAxLCAgICAgICAyNCwgMHg1OTI4MDZlNywgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywg ICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxMzksICAgICAgICAxNDAsICAgICAgICAx LCAgICAgICAyNCwgMHg0YWZjMDYyOCwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAg IDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxNDAsICAgICAgICAxNDEsICAgICAgICAxLCAgICAg ICAyNCwgMHg0ZmJjMDY2OCwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4 MDc2ODAwZWUKKzAsICAgICAgICAxNDEsICAgICAgICAxNDIsICAgICAgICAxLCAgICAgICAyNCwg MHg1NDdjMDZhOCwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAw ZWUKKzAsICAgICAgICAxNDIsICAgICAgICAxNDMsICAgICAgICAxLCAgICAgICAyNCwgMHg1OTNj MDZlOCwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAs ICAgICAgICAxNDMsICAgICAgICAxNDQsICAgICAgICAxLCAgICAgICAyNCwgMHg0YjEwMDYyOSwg Rj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAg ICAxNDQsICAgICAgICAxNDUsICAgICAgICAxLCAgICAgICAyNCwgMHg0ZmQwMDY2OSwgRj0weDAs IFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxNDUs ICAgICAgICAxNDYsICAgICAgICAxLCAgICAgICAyNCwgMHg1NDkwMDZhOSwgRj0weDAsIFM9MSwg UXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxNDYsICAgICAg ICAxNDcsICAgICAgICAxLCAgICAgICAyNCwgMHg1OTUwMDZlOSwgRj0weDAsIFM9MSwgUXVhbGl0 eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxNDcsICAgICAgICAxNDgs ICAgICAgICAxLCAgICAgICAyNCwgMHg0YjI0MDYyYSwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0 cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxNDgsICAgICAgICAxNDksICAgICAg ICAxLCAgICAgICAyNCwgMHg0ZmU0MDY2YSwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAg ICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAxNDksICAgICAgICAxNTAsICAgICAgICAxLCAg ICAgICAyNCwgMHg1NGE0MDZhYSwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgs IDB4MDc2ODAwZWUKKzAsICAgICAgICAxNTAsICAgICAgICAxNTEsICAgICAgICAxLCAgICAgICAy NCwgMHg1OTY0MDZlYSwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2 ODAwZWUKKzAsICAgICAgICAxNTEsICAgICAgICAxNTIsICAgICAgICAxLCAgICAgICA1NywgMHg4 YzhkMGYzOCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNWVjMDBiZQorMCwgICAg ICAgIDE1MiwgICAgICAgIDE1MywgICAgICAgIDEsICAgICAgIDI0LCAweDRmMWMwNjYwLCBGPTB4 MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE1 MywgICAgICAgIDE1NCwgICAgICAgIDEsICAgICAgIDI0LCAweDUzZGMwNmEwLCBGPTB4MCwgUz0x LCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE1NCwgICAg ICAgIDE1NSwgICAgICAgIDEsICAgICAgIDI0LCAweDU4OWMwNmUwLCBGPTB4MCwgUz0xLCBRdWFs aXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE1NSwgICAgICAgIDE1 NiwgICAgICAgIDEsICAgICAgIDI0LCAweDRhNzAwNjIxLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0 YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE1NiwgICAgICAgIDE1NywgICAg ICAgIDEsICAgICAgIDI0LCAweDRmMzAwNjYxLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAg ICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE1NywgICAgICAgIDE1OCwgICAgICAgIDEs ICAgICAgIDI0LCAweDUzZjAwNmExLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAg OCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE1OCwgICAgICAgIDE1OSwgICAgICAgIDEsICAgICAg IDI0LCAweDU4YjAwNmUxLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgw NzY4MDBlZQorMCwgICAgICAgIDE1OSwgICAgICAgIDE2MCwgICAgICAgIDEsICAgICAgIDI0LCAw eDRhODQwNjIyLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBl ZQorMCwgICAgICAgIDE2MCwgICAgICAgIDE2MSwgICAgICAgIDEsICAgICAgIDI0LCAweDRmNDQw NjYyLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwg ICAgICAgIDE2MSwgICAgICAgIDE2MiwgICAgICAgIDEsICAgICAgIDI0LCAweDU0MDQwNmEyLCBG PTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAg IDE2MiwgICAgICAgIDE2MywgICAgICAgIDEsICAgICAgIDI0LCAweDU4YzQwNmUyLCBGPTB4MCwg Uz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE2Mywg ICAgICAgIDE2NCwgICAgICAgIDEsICAgICAgIDI0LCAweDRhOTgwNjIzLCBGPTB4MCwgUz0xLCBR dWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE2NCwgICAgICAg IDE2NSwgICAgICAgIDEsICAgICAgIDI0LCAweDRmNTgwNjYzLCBGPTB4MCwgUz0xLCBRdWFsaXR5 IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE2NSwgICAgICAgIDE2Niwg ICAgICAgIDEsICAgICAgIDI0LCAweDU0MTgwNmEzLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRz LCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE2NiwgICAgICAgIDE2NywgICAgICAg IDEsICAgICAgIDI0LCAweDU4ZDgwNmUzLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAg ICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE2NywgICAgICAgIDE2OCwgICAgICAgIDEsICAg ICAgIDI0LCAweDRhYWMwNjI0LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwg MHgwNzY4MDBlZQorMCwgICAgICAgIDE2OCwgICAgICAgIDE2OSwgICAgICAgIDEsICAgICAgIDI0 LCAweDRmNmMwNjY0LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4 MDBlZQorMCwgICAgICAgIDE2OSwgICAgICAgIDE3MCwgICAgICAgIDEsICAgICAgIDI0LCAweDU0 MmMwNmE0LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQor MCwgICAgICAgIDE3MCwgICAgICAgIDE3MSwgICAgICAgIDEsICAgICAgIDI0LCAweDU4ZWMwNmU0 LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAg ICAgIDE3MSwgICAgICAgIDE3MiwgICAgICAgIDEsICAgICAgIDI0LCAweDRhYzAwNjI1LCBGPTB4 MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE3 MiwgICAgICAgIDE3MywgICAgICAgIDEsICAgICAgIDI0LCAweDRmODAwNjY1LCBGPTB4MCwgUz0x LCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE3MywgICAg ICAgIDE3NCwgICAgICAgIDEsICAgICAgIDI0LCAweDU0NDAwNmE1LCBGPTB4MCwgUz0xLCBRdWFs aXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE3NCwgICAgICAgIDE3 NSwgICAgICAgIDEsICAgICAgIDI0LCAweDU5MDAwNmU1LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0 YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE3NSwgICAgICAgIDE3NiwgICAg ICAgIDEsICAgICAgIDI0LCAweDRhZDQwNjI2LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAg ICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE3NiwgICAgICAgIDE3NywgICAgICAgIDEs ICAgICAgIDI0LCAweDRmOTQwNjY2LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAg OCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE3NywgICAgICAgIDE3OCwgICAgICAgIDEsICAgICAg IDI0LCAweDU0NTQwNmE2LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgw NzY4MDBlZQorMCwgICAgICAgIDE3OCwgICAgICAgIDE3OSwgICAgICAgIDEsICAgICAgIDI0LCAw eDU5MTQwNmU2LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBl ZQorMCwgICAgICAgIDE3OSwgICAgICAgIDE4MCwgICAgICAgIDEsICAgICAgIDI0LCAweDRhZTgw NjI3LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwg ICAgICAgIDE4MCwgICAgICAgIDE4MSwgICAgICAgIDEsICAgICAgIDI0LCAweDRmYTgwNjY3LCBG PTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAg IDE4MSwgICAgICAgIDE4MiwgICAgICAgIDEsICAgICAgIDI0LCAweDU0NjgwNmE3LCBGPTB4MCwg Uz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE4Miwg ICAgICAgIDE4MywgICAgICAgIDEsICAgICAgIDI0LCAweDU5MjgwNmU3LCBGPTB4MCwgUz0xLCBR dWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE4MywgICAgICAg IDE4NCwgICAgICAgIDEsICAgICAgIDI0LCAweDRhZmMwNjI4LCBGPTB4MCwgUz0xLCBRdWFsaXR5 IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE4NCwgICAgICAgIDE4NSwg ICAgICAgIDEsICAgICAgIDI0LCAweDRmYmMwNjY4LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRz LCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE4NSwgICAgICAgIDE4NiwgICAgICAg IDEsICAgICAgIDI0LCAweDU0N2MwNmE4LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAg ICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE4NiwgICAgICAgIDE4NywgICAgICAgIDEsICAg ICAgIDI0LCAweDU5M2MwNmU4LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwg MHgwNzY4MDBlZQorMCwgICAgICAgIDE4NywgICAgICAgIDE4OCwgICAgICAgIDEsICAgICAgIDI0 LCAweDRiMTAwNjI5LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4 MDBlZQorMCwgICAgICAgIDE4OCwgICAgICAgIDE4OSwgICAgICAgIDEsICAgICAgIDI0LCAweDRm ZDAwNjY5LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQor MCwgICAgICAgIDE4OSwgICAgICAgIDE5MCwgICAgICAgIDEsICAgICAgIDI0LCAweDU0OTAwNmE5 LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAg ICAgIDE5MCwgICAgICAgIDE5MSwgICAgICAgIDEsICAgICAgIDI0LCAweDU5NTAwNmU5LCBGPTB4 MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE5 MSwgICAgICAgIDE5MiwgICAgICAgIDEsICAgICAgIDI0LCAweDRiMjQwNjJhLCBGPTB4MCwgUz0x LCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE5MiwgICAg ICAgIDE5MywgICAgICAgIDEsICAgICAgIDI0LCAweDRmZTQwNjZhLCBGPTB4MCwgUz0xLCBRdWFs aXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE5MywgICAgICAgIDE5 NCwgICAgICAgIDEsICAgICAgIDI0LCAweDU0YTQwNmFhLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0 YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE5NCwgICAgICAgIDE5NSwgICAg ICAgIDEsICAgICAgIDI0LCAweDU5NjQwNmVhLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAg ICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE5NSwgICAgICAgIDE5NiwgICAgICAgIDEs ICAgICAgIDI0LCAweDRiMzgwNjJiLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAg OCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDE5NiwgICAgICAgIDE5NywgICAgICAgIDEsICAgICAg IDI0LCAweDRmZjgwNjZiLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgw NzY4MDBlZQorMCwgICAgICAgIDE5NywgICAgICAgIDE5OCwgICAgICAgIDEsICAgICAgIDI0LCAw eDU0YjgwNmFiLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBl ZQorMCwgICAgICAgIDE5OCwgICAgICAgIDE5OSwgICAgICAgIDEsICAgICAgIDI0LCAweDU5Nzgw NmViLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwg ICAgICAgIDE5OSwgICAgICAgIDIwMCwgICAgICAgIDEsICAgICAgIDI0LCAweDRiNGMwNjJjLCBG PTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAg IDIwMCwgICAgICAgIDIwMSwgICAgICAgIDEsICAgICAgIDI0LCAweDUwMGMwNjZjLCBGPTB4MCwg Uz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIwMSwg ICAgICAgIDIwMiwgICAgICAgIDEsICAgICAgIDI0LCAweDU0Y2MwNmFjLCBGPTB4MCwgUz0xLCBR dWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIwMiwgICAgICAg IDIwMywgICAgICAgIDEsICAgICAgIDI0LCAweDU5OGMwNmVjLCBGPTB4MCwgUz0xLCBRdWFsaXR5 IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIwMywgICAgICAgIDIwNCwg ICAgICAgIDEsICAgICAgIDI0LCAweDRiNjAwNjJkLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRz LCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIwNCwgICAgICAgIDIwNSwgICAgICAg IDEsICAgICAgIDI0LCAweDUwMjAwNjZkLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAg ICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIwNSwgICAgICAgIDIwNiwgICAgICAgIDEsICAg ICAgIDI0LCAweDU0ZTAwNmFkLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwg MHgwNzY4MDBlZQorMCwgICAgICAgIDIwNiwgICAgICAgIDIwNywgICAgICAgIDEsICAgICAgIDI0 LCAweDU5YTAwNmVkLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4 MDBlZQorMCwgICAgICAgIDIwNywgICAgICAgIDIwOCwgICAgICAgIDEsICAgICAgIDI0LCAweDRi NzQwNjJlLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQor MCwgICAgICAgIDIwOCwgICAgICAgIDIwOSwgICAgICAgIDEsICAgICAgIDI0LCAweDUwMzQwNjZl LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAg ICAgIDIwOSwgICAgICAgIDIxMCwgICAgICAgIDEsICAgICAgIDI0LCAweDU0ZjQwNmFlLCBGPTB4 MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIx MCwgICAgICAgIDIxMSwgICAgICAgIDEsICAgICAgIDI0LCAweDU5YjQwNmVlLCBGPTB4MCwgUz0x LCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIxMSwgICAg ICAgIDIxMiwgICAgICAgIDEsICAgICAgIDI0LCAweDRiODgwNjJmLCBGPTB4MCwgUz0xLCBRdWFs aXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIxMiwgICAgICAgIDIx MywgICAgICAgIDEsICAgICAgIDI0LCAweDUwNDgwNjZmLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0 YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIxMywgICAgICAgIDIxNCwgICAg ICAgIDEsICAgICAgIDI0LCAweDU1MDgwNmFmLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAg ICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIxNCwgICAgICAgIDIxNSwgICAgICAgIDEs ICAgICAgIDI0LCAweDU5YzgwNmVmLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAg OCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIxNSwgICAgICAgIDIxNiwgICAgICAgIDEsICAgICAg IDI0LCAweDRiOWMwNjMwLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgw NzY4MDBlZQorMCwgICAgICAgIDIxNiwgICAgICAgIDIxNywgICAgICAgIDEsICAgICAgIDI0LCAw eDUwNWMwNjcwLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBl ZQorMCwgICAgICAgIDIxNywgICAgICAgIDIxOCwgICAgICAgIDEsICAgICAgIDI0LCAweDU1MWMw NmIwLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwg ICAgICAgIDIxOCwgICAgICAgIDIxOSwgICAgICAgIDEsICAgICAgIDI0LCAweDU5ZGMwNmYwLCBG PTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAg IDIxOSwgICAgICAgIDIyMCwgICAgICAgIDEsICAgICAgIDI0LCAweDRiYjAwNjMxLCBGPTB4MCwg Uz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIyMCwg ICAgICAgIDIyMSwgICAgICAgIDEsICAgICAgIDI0LCAweDUwNzAwNjcxLCBGPTB4MCwgUz0xLCBR dWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIyMSwgICAgICAg IDIyMiwgICAgICAgIDEsICAgICAgIDI0LCAweDU1MzAwNmIxLCBGPTB4MCwgUz0xLCBRdWFsaXR5 IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIyMiwgICAgICAgIDIyMywg ICAgICAgIDEsICAgICAgIDI0LCAweDU5ZjAwNmYxLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRz LCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIyMywgICAgICAgIDIyNCwgICAgICAg IDEsICAgICAgIDI0LCAweDRiYzQwNjMyLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAg ICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIyNCwgICAgICAgIDIyNSwgICAgICAgIDEsICAg ICAgIDI0LCAweDUwODQwNjcyLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwg MHgwNzY4MDBlZQorMCwgICAgICAgIDIyNSwgICAgICAgIDIyNiwgICAgICAgIDEsICAgICAgIDI0 LCAweDU1NDQwNmIyLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4 MDBlZQorMCwgICAgICAgIDIyNiwgICAgICAgIDIyNywgICAgICAgIDEsICAgICAgIDI0LCAweDVh MDQwNmYyLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQor MCwgICAgICAgIDIyNywgICAgICAgIDIyOCwgICAgICAgIDEsICAgICAgIDI0LCAweDRiZDgwNjMz LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAg ICAgIDIyOCwgICAgICAgIDIyOSwgICAgICAgIDEsICAgICAgIDI0LCAweDUwOTgwNjczLCBGPTB4 MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIy OSwgICAgICAgIDIzMCwgICAgICAgIDEsICAgICAgIDI0LCAweDU1NTgwNmIzLCBGPTB4MCwgUz0x LCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIzMCwgICAg ICAgIDIzMSwgICAgICAgIDEsICAgICAgIDI0LCAweDVhMTgwNmYzLCBGPTB4MCwgUz0xLCBRdWFs aXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIzMSwgICAgICAgIDIz MiwgICAgICAgIDEsICAgICAgIDI0LCAweDRiZWMwNjM0LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0 YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIzMiwgICAgICAgIDIzMywgICAg ICAgIDEsICAgICAgIDI0LCAweDUwYWMwNjc0LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAg ICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIzMywgICAgICAgIDIzNCwgICAgICAgIDEs ICAgICAgIDI0LCAweDU1NmMwNmI0LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAg OCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDIzNCwgICAgICAgIDIzNSwgICAgICAgIDEsICAgICAg IDI0LCAweDVhMmMwNmY0LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgw NzY4MDBlZQorMCwgICAgICAgIDIzNSwgICAgICAgIDIzNiwgICAgICAgIDEsICAgICAgIDI0LCAw eDRjMDAwNjM1LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBl ZQorMCwgICAgICAgIDIzNiwgICAgICAgIDIzNywgICAgICAgIDEsICAgICAgIDU3LCAweDdiMWMw ZTllLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA1ZWMwMGJlCiswLCAgICAgICAg MjM3LCAgICAgICAgMjM4LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGYxYzA2NjAsIEY9MHgwLCBT PTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjM4LCAg ICAgICAgMjM5LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTNkYzA2YTAsIEY9MHgwLCBTPTEsIFF1 YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjM5LCAgICAgICAg MjQwLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTg5YzA2ZTAsIEY9MHgwLCBTPTEsIFF1YWxpdHkg c3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjQwLCAgICAgICAgMjQxLCAg ICAgICAgMSwgICAgICAgMjQsIDB4NGE3MDA2MjEsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMs ICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjQxLCAgICAgICAgMjQyLCAgICAgICAg MSwgICAgICAgMjQsIDB4NGYzMDA2NjEsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAg ICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjQyLCAgICAgICAgMjQzLCAgICAgICAgMSwgICAg ICAgMjQsIDB4NTNmMDA2YTEsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAw eDA3NjgwMGVlCiswLCAgICAgICAgMjQzLCAgICAgICAgMjQ0LCAgICAgICAgMSwgICAgICAgMjQs IDB4NThiMDA2ZTEsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3Njgw MGVlCiswLCAgICAgICAgMjQ0LCAgICAgICAgMjQ1LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGE4 NDA2MjIsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCisw LCAgICAgICAgMjQ1LCAgICAgICAgMjQ2LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGY0NDA2NjIs IEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAg ICAgMjQ2LCAgICAgICAgMjQ3LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTQwNDA2YTIsIEY9MHgw LCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjQ3 LCAgICAgICAgMjQ4LCAgICAgICAgMSwgICAgICAgMjQsIDB4NThjNDA2ZTIsIEY9MHgwLCBTPTEs IFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjQ4LCAgICAg ICAgMjQ5LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGE5ODA2MjMsIEY9MHgwLCBTPTEsIFF1YWxp dHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjQ5LCAgICAgICAgMjUw LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGY1ODA2NjMsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3Rh dHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjUwLCAgICAgICAgMjUxLCAgICAg ICAgMSwgICAgICAgMjQsIDB4NTQxODA2YTMsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAg ICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjUxLCAgICAgICAgMjUyLCAgICAgICAgMSwg ICAgICAgMjQsIDB4NThkODA2ZTMsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4 LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjUyLCAgICAgICAgMjUzLCAgICAgICAgMSwgICAgICAg MjQsIDB4NGFhYzA2MjQsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3 NjgwMGVlCiswLCAgICAgICAgMjUzLCAgICAgICAgMjU0LCAgICAgICAgMSwgICAgICAgMjQsIDB4 NGY2YzA2NjQsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVl CiswLCAgICAgICAgMjU0LCAgICAgICAgMjU1LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTQyYzA2 YTQsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAg ICAgICAgMjU1LCAgICAgICAgMjU2LCAgICAgICAgMSwgICAgICAgMjQsIDB4NThlYzA2ZTQsIEY9 MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAg MjU2LCAgICAgICAgMjU3LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGFjMDA2MjUsIEY9MHgwLCBT PTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjU3LCAg ICAgICAgMjU4LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGY4MDA2NjUsIEY9MHgwLCBTPTEsIFF1 YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjU4LCAgICAgICAg MjU5LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTQ0MDA2YTUsIEY9MHgwLCBTPTEsIFF1YWxpdHkg c3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjU5LCAgICAgICAgMjYwLCAg ICAgICAgMSwgICAgICAgMjQsIDB4NTkwMDA2ZTUsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMs ICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjYwLCAgICAgICAgMjYxLCAgICAgICAg MSwgICAgICAgMjQsIDB4NGFkNDA2MjYsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAg ICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjYxLCAgICAgICAgMjYyLCAgICAgICAgMSwgICAg ICAgMjQsIDB4NGY5NDA2NjYsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAw eDA3NjgwMGVlCiswLCAgICAgICAgMjYyLCAgICAgICAgMjYzLCAgICAgICAgMSwgICAgICAgMjQs IDB4NTQ1NDA2YTYsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3Njgw MGVlCiswLCAgICAgICAgMjYzLCAgICAgICAgMjY0LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTkx NDA2ZTYsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCisw LCAgICAgICAgMjY0LCAgICAgICAgMjY1LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGFlODA2Mjcs IEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAg ICAgMjY1LCAgICAgICAgMjY2LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGZhODA2NjcsIEY9MHgw LCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjY2 LCAgICAgICAgMjY3LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTQ2ODA2YTcsIEY9MHgwLCBTPTEs IFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjY3LCAgICAg ICAgMjY4LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTkyODA2ZTcsIEY9MHgwLCBTPTEsIFF1YWxp dHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjY4LCAgICAgICAgMjY5 LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGFmYzA2MjgsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3Rh dHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjY5LCAgICAgICAgMjcwLCAgICAg ICAgMSwgICAgICAgMjQsIDB4NGZiYzA2NjgsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAg ICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjcwLCAgICAgICAgMjcxLCAgICAgICAgMSwg ICAgICAgMjQsIDB4NTQ3YzA2YTgsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4 LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjcxLCAgICAgICAgMjcyLCAgICAgICAgMSwgICAgICAg MjQsIDB4NTkzYzA2ZTgsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3 NjgwMGVlCiswLCAgICAgICAgMjcyLCAgICAgICAgMjczLCAgICAgICAgMSwgICAgICAgMjQsIDB4 NGIxMDA2MjksIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVl CiswLCAgICAgICAgMjczLCAgICAgICAgMjc0LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGZkMDA2 NjksIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAg ICAgICAgMjc0LCAgICAgICAgMjc1LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTQ5MDA2YTksIEY9 MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAg Mjc1LCAgICAgICAgMjc2LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTk1MDA2ZTksIEY9MHgwLCBT PTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjc2LCAg ICAgICAgMjc3LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGIyNDA2MmEsIEY9MHgwLCBTPTEsIFF1 YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjc3LCAgICAgICAg Mjc4LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGZlNDA2NmEsIEY9MHgwLCBTPTEsIFF1YWxpdHkg c3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjc4LCAgICAgICAgMjc5LCAg ICAgICAgMSwgICAgICAgMjQsIDB4NTRhNDA2YWEsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMs ICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjc5LCAgICAgICAgMjgwLCAgICAgICAg MSwgICAgICAgMjQsIDB4NTk2NDA2ZWEsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAg ICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjgwLCAgICAgICAgMjgxLCAgICAgICAgMSwgICAg ICAgMjQsIDB4NGIzODA2MmIsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAw eDA3NjgwMGVlCiswLCAgICAgICAgMjgxLCAgICAgICAgMjgyLCAgICAgICAgMSwgICAgICAgMjQs IDB4NGZmODA2NmIsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3Njgw MGVlCiswLCAgICAgICAgMjgyLCAgICAgICAgMjgzLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTRi ODA2YWIsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCisw LCAgICAgICAgMjgzLCAgICAgICAgMjg0LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTk3ODA2ZWIs IEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAg ICAgMjg0LCAgICAgICAgMjg1LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGI0YzA2MmMsIEY9MHgw LCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjg1 LCAgICAgICAgMjg2LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTAwYzA2NmMsIEY9MHgwLCBTPTEs IFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjg2LCAgICAg ICAgMjg3LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTRjYzA2YWMsIEY9MHgwLCBTPTEsIFF1YWxp dHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjg3LCAgICAgICAgMjg4 LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTk4YzA2ZWMsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3Rh dHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjg4LCAgICAgICAgMjg5LCAgICAg ICAgMSwgICAgICAgMjQsIDB4NGI2MDA2MmQsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAg ICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjg5LCAgICAgICAgMjkwLCAgICAgICAgMSwg ICAgICAgMjQsIDB4NTAyMDA2NmQsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4 LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjkwLCAgICAgICAgMjkxLCAgICAgICAgMSwgICAgICAg MjQsIDB4NTRlMDA2YWQsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3 NjgwMGVlCiswLCAgICAgICAgMjkxLCAgICAgICAgMjkyLCAgICAgICAgMSwgICAgICAgMjQsIDB4 NTlhMDA2ZWQsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVl CiswLCAgICAgICAgMjkyLCAgICAgICAgMjkzLCAgICAgICAgMSwgICAgICAgMjQsIDB4NGI3NDA2 MmUsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAg ICAgICAgMjkzLCAgICAgICAgMjk0LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTAzNDA2NmUsIEY9 MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAg Mjk0LCAgICAgICAgMjk1LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTRmNDA2YWUsIEY9MHgwLCBT PTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjk1LCAg ICAgICAgMjk2LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTliNDA2ZWUsIEY9MHgwLCBTPTEsIFF1 YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjk2LCAgICAgICAg Mjk3LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGI4ODA2MmYsIEY9MHgwLCBTPTEsIFF1YWxpdHkg c3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjk3LCAgICAgICAgMjk4LCAg ICAgICAgMSwgICAgICAgMjQsIDB4NTA0ODA2NmYsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMs ICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjk4LCAgICAgICAgMjk5LCAgICAgICAg MSwgICAgICAgMjQsIDB4NTUwODA2YWYsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAg ICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMjk5LCAgICAgICAgMzAwLCAgICAgICAgMSwgICAg ICAgMjQsIDB4NTljODA2ZWYsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAw eDA3NjgwMGVlCiswLCAgICAgICAgMzAwLCAgICAgICAgMzAxLCAgICAgICAgMSwgICAgICAgMjQs IDB4NGI5YzA2MzAsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3Njgw MGVlCiswLCAgICAgICAgMzAxLCAgICAgICAgMzAyLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTA1 YzA2NzAsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCisw LCAgICAgICAgMzAyLCAgICAgICAgMzAzLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTUxYzA2YjAs IEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAg ICAgMzAzLCAgICAgICAgMzA0LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTlkYzA2ZjAsIEY9MHgw LCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzA0 LCAgICAgICAgMzA1LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGJiMDA2MzEsIEY9MHgwLCBTPTEs IFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzA1LCAgICAg ICAgMzA2LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTA3MDA2NzEsIEY9MHgwLCBTPTEsIFF1YWxp dHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzA2LCAgICAgICAgMzA3 LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTUzMDA2YjEsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3Rh dHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzA3LCAgICAgICAgMzA4LCAgICAg ICAgMSwgICAgICAgMjQsIDB4NTlmMDA2ZjEsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAg ICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzA4LCAgICAgICAgMzA5LCAgICAgICAgMSwg ICAgICAgMjQsIDB4NGJjNDA2MzIsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4 LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzA5LCAgICAgICAgMzEwLCAgICAgICAgMSwgICAgICAg MjQsIDB4NTA4NDA2NzIsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3 NjgwMGVlCiswLCAgICAgICAgMzEwLCAgICAgICAgMzExLCAgICAgICAgMSwgICAgICAgMjQsIDB4 NTU0NDA2YjIsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVl CiswLCAgICAgICAgMzExLCAgICAgICAgMzEyLCAgICAgICAgMSwgICAgICAgMjQsIDB4NWEwNDA2 ZjIsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAg ICAgICAgMzEyLCAgICAgICAgMzEzLCAgICAgICAgMSwgICAgICAgMjQsIDB4NGJkODA2MzMsIEY9 MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAg MzEzLCAgICAgICAgMzE0LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTA5ODA2NzMsIEY9MHgwLCBT PTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzE0LCAg ICAgICAgMzE1LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTU1ODA2YjMsIEY9MHgwLCBTPTEsIFF1 YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzE1LCAgICAgICAg MzE2LCAgICAgICAgMSwgICAgICAgMjQsIDB4NWExODA2ZjMsIEY9MHgwLCBTPTEsIFF1YWxpdHkg c3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzE2LCAgICAgICAgMzE3LCAg ICAgICAgMSwgICAgICAgMjQsIDB4NGJlYzA2MzQsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMs ICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzE3LCAgICAgICAgMzE4LCAgICAgICAg MSwgICAgICAgMjQsIDB4NTBhYzA2NzQsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAg ICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzE4LCAgICAgICAgMzE5LCAgICAgICAgMSwgICAg ICAgMjQsIDB4NTU2YzA2YjQsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAw eDA3NjgwMGVlCiswLCAgICAgICAgMzE5LCAgICAgICAgMzIwLCAgICAgICAgMSwgICAgICAgMjQs IDB4NWEyYzA2ZjQsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3Njgw MGVlCiswLCAgICAgICAgMzIwLCAgICAgICAgMzIxLCAgICAgICAgMSwgICAgICAgMjQsIDB4NGMw MDA2MzUsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCisw LCAgICAgICAgMzIxLCAgICAgICAgMzIyLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTBjMDA2NzUs IEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAg ICAgMzIyLCAgICAgICAgMzIzLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTU4MDA2YjUsIEY9MHgw LCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzIz LCAgICAgICAgMzI0LCAgICAgICAgMSwgICAgICAgMjQsIDB4NWE0MDA2ZjUsIEY9MHgwLCBTPTEs IFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzI0LCAgICAg ICAgMzI1LCAgICAgICAgMSwgICAgICAgMjQsIDB4NGMxNDA2MzYsIEY9MHgwLCBTPTEsIFF1YWxp dHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzI1LCAgICAgICAgMzI2 LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTBkNDA2NzYsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3Rh dHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzI2LCAgICAgICAgMzI3LCAgICAg ICAgMSwgICAgICAgMjQsIDB4NTU5NDA2YjYsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAg ICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzI3LCAgICAgICAgMzI4LCAgICAgICAgMSwg ICAgICAgMjQsIDB4NWE1NDA2ZjYsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4 LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzI4LCAgICAgICAgMzI5LCAgICAgICAgMSwgICAgICAg MjQsIDB4NGMyODA2MzcsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3 NjgwMGVlCiswLCAgICAgICAgMzI5LCAgICAgICAgMzMwLCAgICAgICAgMSwgICAgICAgMjQsIDB4 NTBlODA2NzcsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVl CiswLCAgICAgICAgMzMwLCAgICAgICAgMzMxLCAgICAgICAgMSwgICAgICAgMjQsIDB4NTVhODA2 YjcsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAg ICAgICAgMzMxLCAgICAgICAgMzMyLCAgICAgICAgMSwgICAgICAgMjQsIDB4NWE2ODA2ZjcsIEY9 MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAg MzMyLCAgICAgICAgMzMzLCAgICAgICAgMSwgICAgICAgMjQsIDB4NGMzYzA2MzgsIEY9MHgwLCBT PTEsIFF1YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzMzLCAg ICAgICAgMzM0LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTBmYzA2NzgsIEY9MHgwLCBTPTEsIFF1 YWxpdHkgc3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzM0LCAgICAgICAg MzM1LCAgICAgICAgMSwgICAgICAgMjQsIDB4NTViYzA2YjgsIEY9MHgwLCBTPTEsIFF1YWxpdHkg c3RhdHMsICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzM1LCAgICAgICAgMzM2LCAg ICAgICAgMSwgICAgICAgMjQsIDB4NWE3YzA2ZjgsIEY9MHgwLCBTPTEsIFF1YWxpdHkgc3RhdHMs ICAgICAgICA4LCAweDA3NjgwMGVlCiswLCAgICAgICAgMzM2LCAgICAgICAgMzM3LCAgICAgICAg MSwgICAgICAgNTcsIDB4ODk5YzBmMWUsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4 MDVlYzAwYmUKKzAsICAgICAgICAzMzcsICAgICAgICAzMzgsICAgICAgICAxLCAgICAgICAyNCwg MHg0ZjFjMDY2MCwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAw ZWUKKzAsICAgICAgICAzMzgsICAgICAgICAzMzksICAgICAgICAxLCAgICAgICAyNCwgMHg1M2Rj MDZhMCwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAs ICAgICAgICAzMzksICAgICAgICAzNDAsICAgICAgICAxLCAgICAgICAyNCwgMHg1ODljMDZlMCwg Rj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAg ICAzNDAsICAgICAgICAzNDEsICAgICAgICAxLCAgICAgICAyNCwgMHg0YTcwMDYyMSwgRj0weDAs IFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAzNDEs ICAgICAgICAzNDIsICAgICAgICAxLCAgICAgICAyNCwgMHg0ZjMwMDY2MSwgRj0weDAsIFM9MSwg UXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAzNDIsICAgICAg ICAzNDMsICAgICAgICAxLCAgICAgICAyNCwgMHg1M2YwMDZhMSwgRj0weDAsIFM9MSwgUXVhbGl0 eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAzNDMsICAgICAgICAzNDQs ICAgICAgICAxLCAgICAgICAyNCwgMHg1OGIwMDZlMSwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0 cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAzNDQsICAgICAgICAzNDUsICAgICAg ICAxLCAgICAgICAyNCwgMHg0YTg0MDYyMiwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAg ICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAzNDUsICAgICAgICAzNDYsICAgICAgICAxLCAg ICAgICAyNCwgMHg0ZjQ0MDY2MiwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgs IDB4MDc2ODAwZWUKKzAsICAgICAgICAzNDYsICAgICAgICAzNDcsICAgICAgICAxLCAgICAgICAy NCwgMHg1NDA0MDZhMiwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2 ODAwZWUKKzAsICAgICAgICAzNDcsICAgICAgICAzNDgsICAgICAgICAxLCAgICAgICAyNCwgMHg1 OGM0MDZlMiwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUK KzAsICAgICAgICAzNDgsICAgICAgICAzNDksICAgICAgICAxLCAgICAgICAyNCwgMHg0YTk4MDYy MywgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAg ICAgICAzNDksICAgICAgICAzNTAsICAgICAgICAxLCAgICAgICAyNCwgMHg0ZjU4MDY2MywgRj0w eDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAz NTAsICAgICAgICAzNTEsICAgICAgICAxLCAgICAgICAyNCwgMHg1NDE4MDZhMywgRj0weDAsIFM9 MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAzNTEsICAg ICAgICAzNTIsICAgICAgICAxLCAgICAgICAyNCwgMHg1OGQ4MDZlMywgRj0weDAsIFM9MSwgUXVh bGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAzNTIsICAgICAgICAz NTMsICAgICAgICAxLCAgICAgICAyNCwgMHg0YWFjMDYyNCwgRj0weDAsIFM9MSwgUXVhbGl0eSBz dGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAzNTMsICAgICAgICAzNTQsICAg ICAgICAxLCAgICAgICAyNCwgMHg0ZjZjMDY2NCwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywg ICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAzNTQsICAgICAgICAzNTUsICAgICAgICAx LCAgICAgICAyNCwgMHg1NDJjMDZhNCwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAg IDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAzNTUsICAgICAgICAzNTYsICAgICAgICAxLCAgICAg ICAyNCwgMHg1OGVjMDZlNCwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4 MDc2ODAwZWUKKzAsICAgICAgICAzNTYsICAgICAgICAzNTcsICAgICAgICAxLCAgICAgICAyNCwg MHg0YWMwMDYyNSwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAw ZWUKKzAsICAgICAgICAzNTcsICAgICAgICAzNTgsICAgICAgICAxLCAgICAgICAyNCwgMHg0Zjgw MDY2NSwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAs ICAgICAgICAzNTgsICAgICAgICAzNTksICAgICAgICAxLCAgICAgICAyNCwgMHg1NDQwMDZhNSwg Rj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAg ICAzNTksICAgICAgICAzNjAsICAgICAgICAxLCAgICAgICAyNCwgMHg1OTAwMDZlNSwgRj0weDAs IFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAzNjAs ICAgICAgICAzNjEsICAgICAgICAxLCAgICAgICAyNCwgMHg0YWQ0MDYyNiwgRj0weDAsIFM9MSwg UXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAzNjEsICAgICAg ICAzNjIsICAgICAgICAxLCAgICAgICAyNCwgMHg0Zjk0MDY2NiwgRj0weDAsIFM9MSwgUXVhbGl0 eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAzNjIsICAgICAgICAzNjMs ICAgICAgICAxLCAgICAgICAyNCwgMHg1NDU0MDZhNiwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0 cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAzNjMsICAgICAgICAzNjQsICAgICAg ICAxLCAgICAgICAyNCwgMHg1OTE0MDZlNiwgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAg ICAgIDgsIDB4MDc2ODAwZWUKKzAsICAgICAgICAzNjQsICAgICAgICAzNjUsICAgICAgICAxLCAg ICAgICAyNCwgMHg0YWU4MDYyNywgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgs IDB4MDc2ODAwZWUKKzAsICAgICAgICAzNjUsICAgICAgICAzNjYsICAgICAgICAxLCAgICAgICAy NCwgMHg0ZmE4MDY2NywgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2 ODAwZWUKKzAsICAgICAgICAzNjYsICAgICAgICAzNjcsICAgICAgICAxLCAgICAgICAyNCwgMHg1 NDY4MDZhNywgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUK KzAsICAgICAgICAzNjcsICAgICAgICAzNjgsICAgICAgICAxLCAgICAgICAyNCwgMHg1OTI4MDZl NywgRj0weDAsIFM9MSwgUXVhbGl0eSBzdGF0cywgICAgICAgIDgsIDB4MDc2ODAwZWUKKzAsICAg ICAgICAzNjgsICAgICAgICAzNjksICAgICAgICAxLCAgICAgICA1NywgMHg5YjkzMGZjMSwgUz0x LCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNWVjMDBiZQorMCwgICAgICAgIDM2OSwgICAg ICAgIDM3MCwgICAgICAgIDEsICAgICAgIDI0LCAweDRmMWMwNjYwLCBGPTB4MCwgUz0xLCBRdWFs aXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDM3MCwgICAgICAgIDM3 MSwgICAgICAgIDEsICAgICAgIDI0LCAweDUzZGMwNmEwLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0 YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDM3MSwgICAgICAgIDM3MiwgICAg ICAgIDEsICAgICAgIDI0LCAweDU4OWMwNmUwLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAg ICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDM3MiwgICAgICAgIDM3MywgICAgICAgIDEs ICAgICAgIDI0LCAweDRhNzAwNjIxLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAg OCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDM3MywgICAgICAgIDM3NCwgICAgICAgIDEsICAgICAg IDI0LCAweDRmMzAwNjYxLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgw NzY4MDBlZQorMCwgICAgICAgIDM3NCwgICAgICAgIDM3NSwgICAgICAgIDEsICAgICAgIDI0LCAw eDUzZjAwNmExLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBl ZQorMCwgICAgICAgIDM3NSwgICAgICAgIDM3NiwgICAgICAgIDEsICAgICAgIDI0LCAweDU4YjAw NmUxLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwg ICAgICAgIDM3NiwgICAgICAgIDM3NywgICAgICAgIDEsICAgICAgIDI0LCAweDRhODQwNjIyLCBG PTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAg IDM3NywgICAgICAgIDM3OCwgICAgICAgIDEsICAgICAgIDI0LCAweDRmNDQwNjYyLCBGPTB4MCwg Uz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDM3OCwg ICAgICAgIDM3OSwgICAgICAgIDEsICAgICAgIDI0LCAweDU0MDQwNmEyLCBGPTB4MCwgUz0xLCBR dWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDM3OSwgICAgICAg IDM4MCwgICAgICAgIDEsICAgICAgIDI0LCAweDU4YzQwNmUyLCBGPTB4MCwgUz0xLCBRdWFsaXR5 IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDM4MCwgICAgICAgIDM4MSwg ICAgICAgIDEsICAgICAgIDI0LCAweDRhOTgwNjIzLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRz LCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDM4MSwgICAgICAgIDM4MiwgICAgICAg IDEsICAgICAgIDI0LCAweDRmNTgwNjYzLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAg ICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDM4MiwgICAgICAgIDM4MywgICAgICAgIDEsICAg ICAgIDI0LCAweDU0MTgwNmEzLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwg MHgwNzY4MDBlZQorMCwgICAgICAgIDM4MywgICAgICAgIDM4NCwgICAgICAgIDEsICAgICAgIDI0 LCAweDU4ZDgwNmUzLCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4 MDBlZQorMCwgICAgICAgIDM4NCwgICAgICAgIDM4NSwgICAgICAgIDEsICAgICAgIDI0LCAweDRh YWMwNjI0LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQor MCwgICAgICAgIDM4NSwgICAgICAgIDM4NiwgICAgICAgIDEsICAgICAgIDI0LCAweDRmNmMwNjY0 LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAg ICAgIDM4NiwgICAgICAgIDM4NywgICAgICAgIDEsICAgICAgIDI0LCAweDU0MmMwNmE0LCBGPTB4 MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDM4 NywgICAgICAgIDM4OCwgICAgICAgIDEsICAgICAgIDI0LCAweDU4ZWMwNmU0LCBGPTB4MCwgUz0x LCBRdWFsaXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDM4OCwgICAg ICAgIDM4OSwgICAgICAgIDEsICAgICAgIDI0LCAweDRhYzAwNjI1LCBGPTB4MCwgUz0xLCBRdWFs aXR5IHN0YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDM4OSwgICAgICAgIDM5 MCwgICAgICAgIDEsICAgICAgIDI0LCAweDRmODAwNjY1LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0 YXRzLCAgICAgICAgOCwgMHgwNzY4MDBlZQorMCwgICAgICAgIDM5MCwgICAgICAgIDM5MSwgICAg ICAgIDEsICAgICAgIDI0LCAweDU0NDAwNmE1LCBGPTB4MCwgUz0xLCBRdWFsaXR5IHN0YXRzLCAg ICAgICAgOCwgMHgwNzY4MDBlZQotLSAKMi41Mi4wCgoKRnJvbSA2ZjRmYjUxNTk1MjkwMTc5NGYy NjEwOTU4MWQ3MWFhY2E2YzViMzc1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiB5dWFu aGVjYWkgPHl1YW5oZWNhaUBsb29uZ3Nvbi5jbj4KRGF0ZTogTW9uLCAxNyBOb3YgMjAyNSAxNzoz Mjo1MyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTY3LzMwNF0gYXZjb2RlYzogZml4IGNoZWNrYXNt LWhwZWxkc3AgZmFpbGVkIG9uIExBCgotLS0KIGxpYmF2Y29kZWMvbG9vbmdhcmNoL2hwZWxkc3Bf aW5pdF9sb29uZ2FyY2guYyB8ICAgIDIgKy0KIGxpYmF2Y29kZWMvbG9vbmdhcmNoL2hwZWxkc3Bf bGFzeC5jICAgICAgICAgICB8IDExOTIgKysrKy0tLS0tLS0tLS0tLS0KIGxpYmF2Y29kZWMvbG9v bmdhcmNoL2hwZWxkc3BfbGFzeC5oICAgICAgICAgICB8ICAgIDQgKy0KIDMgZmlsZXMgY2hhbmdl ZCwgMjMxIGluc2VydGlvbnMoKyksIDk2NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJh dmNvZGVjL2xvb25nYXJjaC9ocGVsZHNwX2luaXRfbG9vbmdhcmNoLmMgYi9saWJhdmNvZGVjL2xv b25nYXJjaC9ocGVsZHNwX2luaXRfbG9vbmdhcmNoLmMKaW5kZXggMTY5MGJlNTQzOC4uZmZkZmI2 OWJiYSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9sb29uZ2FyY2gvaHBlbGRzcF9pbml0X2xvb25n YXJjaC5jCisrKyBiL2xpYmF2Y29kZWMvbG9vbmdhcmNoL2hwZWxkc3BfaW5pdF9sb29uZ2FyY2gu YwpAQCAtNDUsNiArNDUsNiBAQCB2b2lkIGZmX2hwZWxkc3BfaW5pdF9sb29uZ2FyY2goSHBlbERT UENvbnRleHQgKmMsIGludCBmbGFncykKICAgICAgICAgYy0+cHV0X25vX3JuZF9waXhlbHNfdGFi WzFdWzBdID0gZmZfcHV0X3BpeGVsczhfOF9sYXN4OwogICAgICAgICBjLT5wdXRfbm9fcm5kX3Bp eGVsc190YWJbMV1bMV0gPSBmZl9wdXRfbm9fcm5kX3BpeGVsczhfeDJfOF9sYXN4OwogICAgICAg ICBjLT5wdXRfbm9fcm5kX3BpeGVsc190YWJbMV1bMl0gPSBmZl9wdXRfbm9fcm5kX3BpeGVsczhf eTJfOF9sYXN4OwotICAgICAgICBjLT5wdXRfbm9fcm5kX3BpeGVsc190YWJbMV1bM10gPSBmZl9w dXRfbm9fcm5kX3BpeGVsczhfeHkyXzhfbGFzeDsKKyAgICAgICAgYy0+cHV0X25vX3JuZF9waXhl bHNfdGFiWzFdWzNdID0gZmZfcHV0X25vX3JuZF9waXhlbHM4X3h5Ml84X2xzeDsKICAgICB9CiB9 CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2xvb25nYXJjaC9ocGVsZHNwX2xhc3guYyBiL2xpYmF2 Y29kZWMvbG9vbmdhcmNoL2hwZWxkc3BfbGFzeC5jCmluZGV4IGRkMmFlMTczZGEuLjY4Y2FiNzE1 YjkgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvbG9vbmdhcmNoL2hwZWxkc3BfbGFzeC5jCisrKyBi L2xpYmF2Y29kZWMvbG9vbmdhcmNoL2hwZWxkc3BfbGFzeC5jCkBAIC0xOTIsNjEgKzE5MiwzMyBA QCB2b2lkIGZmX3B1dF9waXhlbHM4XzhfbGFzeCh1aW50OF90ICpibG9jaywgY29uc3QgdWludDhf dCAqcGl4ZWxzLAogICAgICk7CiB9CiAKKy8qKgorICogRm9yIHdpZHRocyAxNiwgaCBpcyBhbHdh eXMgYSBwb3NpdGl2ZSBtdWx0aXBsZSBvZiA0LgorICogVGhlIGZ1bmN0aW9uIHByb2Nlc3NlcyA0 IHJvd3MgcGVyIGl0ZXJhdGlvbi4KKyAqLwogdm9pZCBmZl9wdXRfcGl4ZWxzMTZfOF9sc3godWlu dDhfdCAqYmxvY2ssIGNvbnN0IHVpbnQ4X3QgKnBpeGVscywKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHB0cmRpZmZfdCBsaW5lX3NpemUsIGludCBoKQogewotICAgIGludCBoXzggPSBoID4+ IDM7Ci0gICAgaW50IHJlcyA9IGggJiA3OwotICAgIHB0cmRpZmZfdCBzdHJpZGUyLCBzdHJpZGUz LCBzdHJpZGU0OworICAgIGludCBoXzQgPSBoID4+IDI7CisgICAgcHRyZGlmZl90IHN0cmlkZTIg PSBsaW5lX3NpemUgPDwgMTsKKyAgICBwdHJkaWZmX3Qgc3RyaWRlMyA9IHN0cmlkZTIgKyBsaW5l X3NpemU7CisgICAgcHRyZGlmZl90IHN0cmlkZTQgPSBsaW5lX3NpemUgPDwgMjsKKyAgICBfX20x MjhpIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzM7CiAKLSAgICBfX2FzbV9fIHZvbGF0aWxlICgKLSAg ICAgICAgImJlcXogICAgICVbaF84XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAyZiAgICAg ICAgICAgIFxuXHQiCi0gICAgICAgICJzbGxpLmQgICAlW3N0cmlkZTJdLCAgICAlW3N0cmlkZV0s ICAgICAgICAgMSAgICAgICAgICAgICBcblx0IgotICAgICAgICAiYWRkLmQgICAgJVtzdHJpZGUz XSwgICAgJVtzdHJpZGUyXSwgICAgICAgICVbc3RyaWRlXSAgICAgXG5cdCIKLSAgICAgICAgInNs bGkuZCAgICVbc3RyaWRlNF0sICAgICVbc3RyaWRlMl0sICAgICAgICAxICAgICAgICAgICAgIFxu XHQiCi0gICAgICAgICIxOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcblx0IgotICAgICAgICAidmxkICAgICAgJHZyMCwgICAgICAgICAgJVtz cmNdLCAgICAgICAgICAgIDB4MCAgICAgICAgICAgXG5cdCIKLSAgICAgICAgInZsZHggICAgICR2 cjEsICAgICAgICAgICVbc3JjXSwgICAgICAgICAgICAlW3N0cmlkZV0gICAgIFxuXHQiCi0gICAg ICAgICJ2bGR4ICAgICAkdnIyLCAgICAgICAgICAlW3NyY10sICAgICAgICAgICAgJVtzdHJpZGUy XSAgICBcblx0IgotICAgICAgICAidmxkeCAgICAgJHZyMywgICAgICAgICAgJVtzcmNdLCAgICAg ICAgICAgICVbc3RyaWRlM10gICAgXG5cdCIKLSAgICAgICAgImFkZC5kICAgICVbc3JjXSwgICAg ICAgICVbc3JjXSwgICAgICAgICAgICAlW3N0cmlkZTRdICAgIFxuXHQiCi0gICAgICAgICJ2bGQg ICAgICAkdnI0LCAgICAgICAgICAlW3NyY10sICAgICAgICAgICAgMHgwICAgICAgICAgICBcblx0 IgotICAgICAgICAidmxkeCAgICAgJHZyNSwgICAgICAgICAgJVtzcmNdLCAgICAgICAgICAgICVb c3RyaWRlXSAgICAgXG5cdCIKLSAgICAgICAgInZsZHggICAgICR2cjYsICAgICAgICAgICVbc3Jj XSwgICAgICAgICAgICAlW3N0cmlkZTJdICAgIFxuXHQiCi0gICAgICAgICJ2bGR4ICAgICAkdnI3 LCAgICAgICAgICAlW3NyY10sICAgICAgICAgICAgJVtzdHJpZGUzXSAgICBcblx0IgotICAgICAg ICAiYWRkLmQgICAgJVtzcmNdLCAgICAgICAgJVtzcmNdLCAgICAgICAgICAgICVbc3RyaWRlNF0g ICAgXG5cdCIKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGhfNDsgaSsrKSB7CisgICAgICAgIHNy YzAgPSBfX2xzeF92bGQocGl4ZWxzLCAwKTsKKyAgICAgICAgc3JjMSA9IF9fbHN4X3ZsZHgocGl4 ZWxzLCBsaW5lX3NpemUpOworICAgICAgICBzcmMyID0gX19sc3hfdmxkeChwaXhlbHMsIHN0cmlk ZTIpOworICAgICAgICBzcmMzID0gX19sc3hfdmxkeChwaXhlbHMsIHN0cmlkZTMpOwogCi0gICAg ICAgICJhZGRpLmQgICAlW2hfOF0sICAgICAgICAlW2hfOF0sICAgICAgICAgICAgLTEgICAgICAg ICAgICBcblx0IgorICAgICAgICBfX2xzeF92c3Qoc3JjMCwgYmxvY2ssIDApOworICAgICAgICBf X2xzeF92c3R4KHNyYzEsIGJsb2NrLCBsaW5lX3NpemUpOworICAgICAgICBfX2xzeF92c3R4KHNy YzIsIGJsb2NrLCBzdHJpZGUyKTsKKyAgICAgICAgX19sc3hfdnN0eChzcmMzLCBibG9jaywgc3Ry aWRlMyk7CiAKLSAgICAgICAgInZzdCAgICAgICR2cjAsICAgICAgICAgICVbZHN0XSwgICAgICAg ICAgICAweDAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICJ2c3R4ICAgICAkdnIxLCAgICAgICAg ICAlW2RzdF0sICAgICAgICAgICAgJVtzdHJpZGVdICAgICBcblx0IgotICAgICAgICAidnN0eCAg ICAgJHZyMiwgICAgICAgICAgJVtkc3RdLCAgICAgICAgICAgICVbc3RyaWRlMl0gICAgXG5cdCIK LSAgICAgICAgInZzdHggICAgICR2cjMsICAgICAgICAgICVbZHN0XSwgICAgICAgICAgICAlW3N0 cmlkZTNdICAgIFxuXHQiCi0gICAgICAgICJhZGQuZCAgICAlW2RzdF0sICAgICAgICAlW2RzdF0s ICAgICAgICAgICAgJVtzdHJpZGU0XSAgICBcblx0IgotICAgICAgICAidnN0ICAgICAgJHZyNCwg ICAgICAgICAgJVtkc3RdLCAgICAgICAgICAgIDB4MCAgICAgICAgICAgXG5cdCIKLSAgICAgICAg InZzdHggICAgICR2cjUsICAgICAgICAgICVbZHN0XSwgICAgICAgICAgICAlW3N0cmlkZV0gICAg IFxuXHQiCi0gICAgICAgICJ2c3R4ICAgICAkdnI2LCAgICAgICAgICAlW2RzdF0sICAgICAgICAg ICAgJVtzdHJpZGUyXSAgICBcblx0IgotICAgICAgICAidnN0eCAgICAgJHZyNywgICAgICAgICAg JVtkc3RdLCAgICAgICAgICAgICVbc3RyaWRlM10gICAgXG5cdCIKLSAgICAgICAgImFkZC5kICAg ICVbZHN0XSwgICAgICAgICVbZHN0XSwgICAgICAgICAgICAlW3N0cmlkZTRdICAgIFxuXHQiCi0g ICAgICAgICJibmV6ICAgICAlW2hfOF0sICAgICAgICAxYiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcblx0IgotCi0gICAgICAgICIyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAiYmVxeiAgICAgJVtyZXNd LCAgICAgICAgNGYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAg IjM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuXHQiCi0gICAgICAgICJ2bGQgICAgICAkdnIwLCAgICAgICAgICAlW3NyY10sICAgICAgICAg ICAgMHgwICAgICAgICAgICBcblx0IgotICAgICAgICAiYWRkLmQgICAgJVtzcmNdLCAgICAgICAg JVtzcmNdLCAgICAgICAgICAgICVbc3RyaWRlXSAgICAgXG5cdCIKLSAgICAgICAgImFkZGkuZCAg ICVbcmVzXSwgICAgICAgICVbcmVzXSwgICAgICAgICAgICAtMSAgICAgICAgICAgIFxuXHQiCi0g ICAgICAgICJ2c3QgICAgICAkdnIwLCAgICAgICAgICAlW2RzdF0sICAgICAgICAgICAgMHgwICAg ICAgICAgICBcblx0IgotICAgICAgICAiYWRkLmQgICAgJVtkc3RdLCAgICAgICAgJVtkc3RdLCAg ICAgICAgICAgICVbc3RyaWRlXSAgICAgXG5cdCIKLSAgICAgICAgImJuZXogICAgICVbcmVzXSwg ICAgICAgIDNiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICI0 OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc blx0IgotICAgICAgICA6IFtkc3RdIismciIoYmxvY2spLCAgICAgICAgICBbc3JjXSIrJnIiKHBp eGVscyksCi0gICAgICAgICAgW2hfOF0iKyZyIihoXzgpLCAgICAgICAgICAgIFtyZXNdIismciIo cmVzKSwKLSAgICAgICAgICBbc3RyaWRlMl0iPSZyIihzdHJpZGUyKSwgICAgW3N0cmlkZTNdIj0m ciIoc3RyaWRlMyksCi0gICAgICAgICAgW3N0cmlkZTRdIj0mciIoc3RyaWRlNCkKLSAgICAgICAg OiBbc3RyaWRlXSJyIihsaW5lX3NpemUpCi0gICAgICAgIDogIm1lbW9yeSIKLSAgICApOworICAg ICAgICBwaXhlbHMgKz0gc3RyaWRlNDsKKyAgICAgICAgYmxvY2sgKz0gc3RyaWRlNDsKKyAgICB9 CiB9CiAKIHZvaWQgZmZfcHV0X3BpeGVsczhfeDJfOF9sYXN4KHVpbnQ4X3QgKmJsb2NrLCBjb25z dCB1aW50OF90ICpwaXhlbHMsCkBAIC0yNzcsOTYxICsyNDksMjUzIEBAIHZvaWQgZmZfcHV0X3Bp eGVsczE2X3kyXzhfbGFzeCh1aW50OF90ICpibG9jaywgY29uc3QgdWludDhfdCAqcGl4ZWxzLAog ICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lX3NpemUsIGxpbmVfc2l6ZSwgaCk7CiB9CiAK LXN0YXRpYyB2b2lkIGNvbW1vbl9oel9iaWxfbm9fcm5kXzE2eDE2X2xhc3goY29uc3QgdWludDhf dCAqc3JjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQz Ml90IHNyY19zdHJpZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQ4X3QgKmRzdCwgaW50MzJfdCBkc3Rfc3RyaWRlKQotewotICAgIF9fbTI1Nmkgc3Jj MCwgc3JjMSwgc3JjMiwgc3JjMywgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNzsKLSAgICBpbnQzMl90 IHNyY19zdHJpZGVfMnggPSBzcmNfc3RyaWRlIDw8IDE7Ci0gICAgaW50MzJfdCBzcmNfc3RyaWRl XzR4ID0gc3JjX3N0cmlkZSA8PCAyOwotICAgIGludDMyX3Qgc3JjX3N0cmlkZV8zeCA9IHNyY19z dHJpZGVfMnggKyBzcmNfc3RyaWRlOwotICAgIHVpbnQ4X3QgKl9zcmMgPSAodWludDhfdCopc3Jj OwotCi0gICAgc3JjMCA9IF9fbGFzeF94dmxkKF9zcmMsIDApOwotICAgIERVUDJfQVJHMihfX2xh c3hfeHZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9zcmMsIHNyY19zdHJpZGVfMngsIHNyYzEsIHNy YzIpOwotICAgIHNyYzMgPSBfX2xhc3hfeHZsZHgoX3NyYywgc3JjX3N0cmlkZV8zeCk7Ci0gICAg X3NyYyArPSAxOwotICAgIHNyYzQgPSBfX2xhc3hfeHZsZChfc3JjLCAwKTsKLSAgICBEVVAyX0FS RzIoX19sYXN4X3h2bGR4LCBfc3JjLCBzcmNfc3RyaWRlLCBfc3JjLCBzcmNfc3RyaWRlXzJ4LCBz cmM1LCBzcmM2KTsKLSAgICBzcmM3ID0gX19sYXN4X3h2bGR4KF9zcmMsIHNyY19zdHJpZGVfM3gp OwotICAgIF9zcmMgKz0gKHNyY19zdHJpZGVfNHggLTEpOwotICAgIERVUDRfQVJHMyhfX2xhc3hf eHZwZXJtaV9xLCBzcmMxLCBzcmMwLCAweDIwLCBzcmMzLCBzcmMyLCAweDIwLCBzcmM1LAotICAg ICAgICAgICAgICBzcmM0LCAweDIwLCBzcmM3LCBzcmM2LCAweDIwLCBzcmMwLCBzcmMxLCBzcmMy LCBzcmMzKTsKLSAgICBzcmMwID0gX19sYXN4X3h2YXZnX2J1KHNyYzAsIHNyYzIpOwotICAgIHNy YzEgPSBfX2xhc3hfeHZhdmdfYnUoc3JjMSwgc3JjMyk7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChz cmMwLCBkc3QsIDAsIDApOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMCwgZHN0LCA4LCAxKTsK LSAgICBkc3QgKz0gZHN0X3N0cmlkZTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzAsIGRzdCwg MCwgMik7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmMwLCBkc3QsIDgsIDMpOwotICAgIGRzdCAr PSBkc3Rfc3RyaWRlOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMSwgZHN0LCAwLCAwKTsKLSAg ICBfX2xhc3hfeHZzdGVsbV9kKHNyYzEsIGRzdCwgOCwgMSk7Ci0gICAgZHN0ICs9IGRzdF9zdHJp ZGU7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmMxLCBkc3QsIDAsIDIpOwotICAgIF9fbGFzeF94 dnN0ZWxtX2Qoc3JjMSwgZHN0LCA4LCAzKTsKLSAgICBkc3QgKz0gZHN0X3N0cmlkZTsKLQotICAg IHNyYzAgPSBfX2xhc3hfeHZsZChfc3JjLCAwKTsKLSAgICBEVVAyX0FSRzIoX19sYXN4X3h2bGR4 LCBfc3JjLCBzcmNfc3RyaWRlLCBfc3JjLCBzcmNfc3RyaWRlXzJ4LCBzcmMxLCBzcmMyKTsKLSAg ICBzcmMzID0gX19sYXN4X3h2bGR4KF9zcmMsIHNyY19zdHJpZGVfM3gpOwotICAgIF9zcmMgKz0g MTsKLSAgICBzcmM0ID0gX19sYXN4X3h2bGQoX3NyYywgMCk7Ci0gICAgRFVQMl9BUkcyKF9fbGFz eF94dmxkeCwgX3NyYywgc3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlkZV8yeCwgc3JjNSwgc3Jj Nik7Ci0gICAgc3JjNyA9IF9fbGFzeF94dmxkeChfc3JjLCBzcmNfc3RyaWRlXzN4KTsKLSAgICBf c3JjICs9IChzcmNfc3RyaWRlXzR4IC0gMSk7Ci0gICAgRFVQNF9BUkczKF9fbGFzeF94dnBlcm1p X3EsIHNyYzEsIHNyYzAsIDB4MjAsIHNyYzMsIHNyYzIsIDB4MjAsIHNyYzUsIHNyYzQsCi0gICAg ICAgICAgICAgIDB4MjAsIHNyYzcsIHNyYzYsIDB4MjAsIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMp OwotICAgIHNyYzAgPSBfX2xhc3hfeHZhdmdfYnUoc3JjMCwgc3JjMik7Ci0gICAgc3JjMSA9IF9f bGFzeF94dmF2Z19idShzcmMxLCBzcmMzKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzAsIGRz dCwgMCwgMCk7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmMwLCBkc3QsIDgsIDEpOwotICAgIGRz dCArPSBkc3Rfc3RyaWRlOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMCwgZHN0LCAwLCAyKTsK LSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzAsIGRzdCwgOCwgMyk7Ci0gICAgZHN0ICs9IGRzdF9z dHJpZGU7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmMxLCBkc3QsIDAsIDApOwotICAgIF9fbGFz eF94dnN0ZWxtX2Qoc3JjMSwgZHN0LCA4LCAxKTsKLSAgICBkc3QgKz0gZHN0X3N0cmlkZTsKLSAg ICBfX2xhc3hfeHZzdGVsbV9kKHNyYzEsIGRzdCwgMCwgMik7Ci0gICAgX19sYXN4X3h2c3RlbG1f ZChzcmMxLCBkc3QsIDgsIDMpOwotICAgIGRzdCArPSBkc3Rfc3RyaWRlOwotCi0gICAgc3JjMCA9 IF9fbGFzeF94dmxkKF9zcmMsIDApOwotICAgIERVUDJfQVJHMihfX2xhc3hfeHZsZHgsIF9zcmMs IHNyY19zdHJpZGUsIF9zcmMsIHNyY19zdHJpZGVfMngsIHNyYzEsIHNyYzIpOwotICAgIHNyYzMg PSBfX2xhc3hfeHZsZHgoX3NyYywgc3JjX3N0cmlkZV8zeCk7Ci0gICAgX3NyYyArPSAxOwotICAg IHNyYzQgPSBfX2xhc3hfeHZsZChfc3JjLCAwKTsKLSAgICBEVVAyX0FSRzIoX19sYXN4X3h2bGR4 LCBfc3JjLCBzcmNfc3RyaWRlLCBfc3JjLCBzcmNfc3RyaWRlXzJ4LCBzcmM1LCBzcmM2KTsKLSAg ICBzcmM3ID0gX19sYXN4X3h2bGR4KF9zcmMsIHNyY19zdHJpZGVfM3gpOwotICAgIF9zcmMgKz0g KHNyY19zdHJpZGVfNHggLSAxKTsKLSAgICBEVVA0X0FSRzMoX19sYXN4X3h2cGVybWlfcSwgc3Jj MSwgc3JjMCwgMHgyMCwgc3JjMywgc3JjMiwgMHgyMCwgc3JjNSwgc3JjNCwKLSAgICAgICAgICAg ICAgMHgyMCwgc3JjNywgc3JjNiwgMHgyMCwgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Ci0gICAg c3JjMCA9IF9fbGFzeF94dmF2Z19idShzcmMwLCBzcmMyKTsKLSAgICBzcmMxID0gX19sYXN4X3h2 YXZnX2J1KHNyYzEsIHNyYzMpOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMCwgZHN0LCAwLCAw KTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzAsIGRzdCwgOCwgMSk7Ci0gICAgZHN0ICs9IGRz dF9zdHJpZGU7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmMwLCBkc3QsIDAsIDIpOwotICAgIF9f bGFzeF94dnN0ZWxtX2Qoc3JjMCwgZHN0LCA4LCAzKTsKLSAgICBkc3QgKz0gZHN0X3N0cmlkZTsK LSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzEsIGRzdCwgMCwgMCk7Ci0gICAgX19sYXN4X3h2c3Rl bG1fZChzcmMxLCBkc3QsIDgsIDEpOwotICAgIGRzdCArPSBkc3Rfc3RyaWRlOwotICAgIF9fbGFz eF94dnN0ZWxtX2Qoc3JjMSwgZHN0LCAwLCAyKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzEs IGRzdCwgOCwgMyk7Ci0gICAgZHN0ICs9IGRzdF9zdHJpZGU7Ci0KLSAgICBzcmMwID0gX19sYXN4 X3h2bGQoX3NyYywgMCk7Ci0gICAgRFVQMl9BUkcyKF9fbGFzeF94dmxkeCwgX3NyYywgc3JjX3N0 cmlkZSwgX3NyYywgc3JjX3N0cmlkZV8yeCwgc3JjMSwgc3JjMik7Ci0gICAgc3JjMyA9IF9fbGFz eF94dmxkeChfc3JjLCBzcmNfc3RyaWRlXzN4KTsKLSAgICBfc3JjICs9IDE7Ci0gICAgc3JjNCA9 IF9fbGFzeF94dmxkKF9zcmMsIDApOwotICAgIERVUDJfQVJHMihfX2xhc3hfeHZsZHgsIF9zcmMs IHNyY19zdHJpZGUsIF9zcmMsIHNyY19zdHJpZGVfMngsIHNyYzUsIHNyYzYpOwotICAgIHNyYzcg PSBfX2xhc3hfeHZsZHgoX3NyYywgc3JjX3N0cmlkZV8zeCk7Ci0gICAgRFVQNF9BUkczKF9fbGFz eF94dnBlcm1pX3EsIHNyYzEsIHNyYzAsIDB4MjAsIHNyYzMsIHNyYzIsIDB4MjAsIHNyYzUsIHNy YzQsCi0gICAgICAgICAgICAgIDB4MjAsIHNyYzcsIHNyYzYsIDB4MjAsIHNyYzAsIHNyYzEsIHNy YzIsIHNyYzMpOwotICAgIHNyYzAgPSBfX2xhc3hfeHZhdmdfYnUoc3JjMCwgc3JjMik7Ci0gICAg c3JjMSA9IF9fbGFzeF94dmF2Z19idShzcmMxLCBzcmMzKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9k KHNyYzAsIGRzdCwgMCwgMCk7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmMwLCBkc3QsIDgsIDEp OwotICAgIGRzdCArPSBkc3Rfc3RyaWRlOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMCwgZHN0 LCAwLCAyKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzAsIGRzdCwgOCwgMyk7Ci0gICAgZHN0 ICs9IGRzdF9zdHJpZGU7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmMxLCBkc3QsIDAsIDApOwot ICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMSwgZHN0LCA4LCAxKTsKLSAgICBkc3QgKz0gZHN0X3N0 cmlkZTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzEsIGRzdCwgMCwgMik7Ci0gICAgX19sYXN4 X3h2c3RlbG1fZChzcmMxLCBkc3QsIDgsIDMpOwotfQotCi1zdGF0aWMgdm9pZCBjb21tb25faHpf YmlsX25vX3JuZF84eDE2X2xhc3goY29uc3QgdWludDhfdCAqc3JjLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3Qgc3JjX3N0cmlkZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpkc3QsIGludDMyX3Qg ZHN0X3N0cmlkZSkKLXsKLSAgICBfX20yNTZpIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMsIHNyYzQs IHNyYzUsIHNyYzYsIHNyYzc7Ci0gICAgaW50MzJfdCBzcmNfc3RyaWRlXzJ4ID0gc3JjX3N0cmlk ZSA8PCAxOwotICAgIGludDMyX3Qgc3JjX3N0cmlkZV80eCA9IHNyY19zdHJpZGUgPDwgMjsKLSAg ICBpbnQzMl90IHNyY19zdHJpZGVfM3ggPSBzcmNfc3RyaWRlXzJ4ICsgc3JjX3N0cmlkZTsKLSAg ICB1aW50OF90KiBfc3JjID0gKHVpbnQ4X3QqKXNyYzsKLQotICAgIHNyYzAgPSBfX2xhc3hfeHZs ZChfc3JjLCAwKTsKLSAgICBEVVAyX0FSRzIoX19sYXN4X3h2bGR4LCBfc3JjLCBzcmNfc3RyaWRl LCBfc3JjLCBzcmNfc3RyaWRlXzJ4LCBzcmMxLCBzcmMyKTsKLSAgICBzcmMzID0gX19sYXN4X3h2 bGR4KF9zcmMsIHNyY19zdHJpZGVfM3gpOwotICAgIF9zcmMgKz0gMTsKLSAgICBzcmM0ID0gX19s YXN4X3h2bGQoX3NyYywgMCk7Ci0gICAgRFVQMl9BUkcyKF9fbGFzeF94dmxkeCwgX3NyYywgc3Jj X3N0cmlkZSwgX3NyYywgc3JjX3N0cmlkZV8yeCwgc3JjNSwgc3JjNik7Ci0gICAgc3JjNyA9IF9f bGFzeF94dmxkeChfc3JjLCBzcmNfc3RyaWRlXzN4KTsKLSAgICBfc3JjICs9IChzcmNfc3RyaWRl XzR4IC0gMSk7Ci0gICAgRFVQNF9BUkczKF9fbGFzeF94dnBlcm1pX3EsIHNyYzEsIHNyYzAsIDB4 MjAsIHNyYzMsIHNyYzIsIDB4MjAsIHNyYzUsIHNyYzQsCi0gICAgICAgICAgICAgIDB4MjAsIHNy YzcsIHNyYzYsIDB4MjAsIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMpOwotICAgIHNyYzAgPSBfX2xh c3hfeHZhdmdfYnUoc3JjMCwgc3JjMik7Ci0gICAgc3JjMSA9IF9fbGFzeF94dmF2Z19idShzcmMx LCBzcmMzKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzAsIGRzdCwgMCwgMCk7Ci0gICAgX19s YXN4X3h2c3RlbG1fZChzcmMwLCBkc3QsIDgsIDEpOwotICAgIGRzdCArPSBkc3Rfc3RyaWRlOwot ICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMCwgZHN0LCAwLCAyKTsKLSAgICBfX2xhc3hfeHZzdGVs bV9kKHNyYzAsIGRzdCwgOCwgMyk7Ci0gICAgZHN0ICs9IGRzdF9zdHJpZGU7Ci0gICAgX19sYXN4 X3h2c3RlbG1fZChzcmMxLCBkc3QsIDAsIDApOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMSwg ZHN0LCA4LCAxKTsKLSAgICBkc3QgKz0gZHN0X3N0cmlkZTsKLSAgICBfX2xhc3hfeHZzdGVsbV9k KHNyYzEsIGRzdCwgMCwgMik7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmMxLCBkc3QsIDgsIDMp OwotICAgIGRzdCArPSBkc3Rfc3RyaWRlOwotCi0gICAgc3JjMCA9IF9fbGFzeF94dmxkKF9zcmMs IDApOwotICAgIERVUDJfQVJHMihfX2xhc3hfeHZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9zcmMs IHNyY19zdHJpZGVfMngsIHNyYzEsIHNyYzIpOwotICAgIHNyYzMgPSBfX2xhc3hfeHZsZHgoX3Ny Yywgc3JjX3N0cmlkZV8zeCk7Ci0gICAgX3NyYyArPSAxOwotICAgIHNyYzQgPSBfX2xhc3hfeHZs ZChfc3JjLCAwKTsKLSAgICBEVVAyX0FSRzIoX19sYXN4X3h2bGR4LCBfc3JjLCBzcmNfc3RyaWRl LCBfc3JjLCBzcmNfc3RyaWRlXzJ4LCBzcmM1LCBzcmM2KTsKLSAgICBzcmM3ID0gX19sYXN4X3h2 bGR4KF9zcmMsIHNyY19zdHJpZGVfM3gpOwotICAgIERVUDRfQVJHMyhfX2xhc3hfeHZwZXJtaV9x LCBzcmMxLCBzcmMwLCAweDIwLCBzcmMzLCBzcmMyLCAweDIwLCBzcmM1LCBzcmM0LAotICAgICAg ICAgICAgICAweDIwLCBzcmM3LCBzcmM2LCAweDIwLCBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzKTsK LSAgICBzcmMwID0gX19sYXN4X3h2YXZnX2J1KHNyYzAsIHNyYzIpOwotICAgIHNyYzEgPSBfX2xh c3hfeHZhdmdfYnUoc3JjMSwgc3JjMyk7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmMwLCBkc3Qs IDAsIDApOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMCwgZHN0LCA4LCAxKTsKLSAgICBkc3Qg Kz0gZHN0X3N0cmlkZTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzAsIGRzdCwgMCwgMik7Ci0g ICAgX19sYXN4X3h2c3RlbG1fZChzcmMwLCBkc3QsIDgsIDMpOwotICAgIGRzdCArPSBkc3Rfc3Ry aWRlOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMSwgZHN0LCAwLCAwKTsKLSAgICBfX2xhc3hf eHZzdGVsbV9kKHNyYzEsIGRzdCwgOCwgMSk7Ci0gICAgZHN0ICs9IGRzdF9zdHJpZGU7Ci0gICAg X19sYXN4X3h2c3RlbG1fZChzcmMxLCBkc3QsIDAsIDIpOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qo c3JjMSwgZHN0LCA4LCAzKTsKLX0KLQorLyoqCisgKiBGb3Igd2lkdGhzIDE2LCBoIGlzIGFsd2F5 cyBhIHBvc2l0aXZlIG11bHRpcGxlIG9mIDQuCisgKiBUaGUgZnVuY3Rpb24gcHJvY2Vzc2VzIDQg cm93cyBwZXIgaXRlcmF0aW9uLgorICovCiB2b2lkIGZmX3B1dF9ub19ybmRfcGl4ZWxzMTZfeDJf OF9sYXN4KHVpbnQ4X3QgKmJsb2NrLCBjb25zdCB1aW50OF90ICpwaXhlbHMsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBsaW5lX3NpemUsIGludCBoKQog ewotICAgIGlmIChoID09IDE2KSB7Ci0gICAgICAgIGNvbW1vbl9oel9iaWxfbm9fcm5kXzE2eDE2 X2xhc3gocGl4ZWxzLCBsaW5lX3NpemUsIGJsb2NrLCBsaW5lX3NpemUpOwotICAgIH0gZWxzZSBp ZiAoaCA9PSA4KSB7Ci0gICAgICAgIGNvbW1vbl9oel9iaWxfbm9fcm5kXzh4MTZfbGFzeChwaXhl bHMsIGxpbmVfc2l6ZSwgYmxvY2ssIGxpbmVfc2l6ZSk7CisgICAgX19tMjU2aSBzcmMwLCBzcmMx LCBzcmMyLCBzcmMzLCBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3OworICAgIGludDMyX3QgaF80ID0g aCA+PiAyOworICAgIGludDMyX3Qgc3RyaWRlMnggPSBsaW5lX3NpemUgPDwgMTsKKyAgICBpbnQz Ml90IHN0cmlkZTR4ID0gbGluZV9zaXplIDw8IDI7CisgICAgaW50MzJfdCBzdHJpZGUzeCA9IHN0 cmlkZTJ4ICsgbGluZV9zaXplOworICAgIHVpbnQ4X3QqIF9zcmMgPSAodWludDhfdCopcGl4ZWxz ICsgMTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaF80OyBpKyspIHsKKyAgICAgICAgc3Jj MCA9IF9fbGFzeF94dmxkKHBpeGVscywgMCk7CisgICAgICAgIERVUDJfQVJHMihfX2xhc3hfeHZs ZHgsIHBpeGVscywgbGluZV9zaXplLCBwaXhlbHMsIHN0cmlkZTJ4LCBzcmMxLCBzcmMyKTsKKyAg ICAgICAgc3JjMyA9IF9fbGFzeF94dmxkeChwaXhlbHMsIHN0cmlkZTN4KTsKKyAgICAgICAgc3Jj NCA9IF9fbGFzeF94dmxkKF9zcmMsIDApOworICAgICAgICBEVVAyX0FSRzIoX19sYXN4X3h2bGR4 LCBfc3JjLCBsaW5lX3NpemUsIF9zcmMsIHN0cmlkZTJ4LCBzcmM1LCBzcmM2KTsKKyAgICAgICAg c3JjNyA9IF9fbGFzeF94dmxkeChfc3JjLCBzdHJpZGUzeCk7CisgICAgICAgIERVUDRfQVJHMyhf X2xhc3hfeHZwZXJtaV9xLCBzcmMxLCBzcmMwLCAweDIwLCBzcmMzLCBzcmMyLCAweDIwLCBzcmM1 LCBzcmM0LAorICAgICAgICAgICAgICAgICAgMHgyMCwgc3JjNywgc3JjNiwgMHgyMCwgc3JjMCwg c3JjMSwgc3JjMiwgc3JjMyk7CisgICAgICAgIHNyYzAgPSBfX2xhc3hfeHZhdmdfYnUoc3JjMCwg c3JjMik7CisgICAgICAgIHNyYzEgPSBfX2xhc3hfeHZhdmdfYnUoc3JjMSwgc3JjMyk7CisgICAg ICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMCwgYmxvY2ssIDAsIDApOworICAgICAgICBfX2xhc3hf eHZzdGVsbV9kKHNyYzAsIGJsb2NrLCA4LCAxKTsKKyAgICAgICAgYmxvY2sgKz0gbGluZV9zaXpl OworICAgICAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzAsIGJsb2NrLCAwLCAyKTsKKyAgICAgICAg X19sYXN4X3h2c3RlbG1fZChzcmMwLCBibG9jaywgOCwgMyk7CisgICAgICAgIGJsb2NrICs9IGxp bmVfc2l6ZTsKKyAgICAgICAgX19sYXN4X3h2c3RlbG1fZChzcmMxLCBibG9jaywgMCwgMCk7Cisg ICAgICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMSwgYmxvY2ssIDgsIDEpOworICAgICAgICBibG9j ayArPSBsaW5lX3NpemU7CisgICAgICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMSwgYmxvY2ssIDAs IDIpOworICAgICAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzEsIGJsb2NrLCA4LCAzKTsKKyAgICAg ICAgYmxvY2sgKz0gbGluZV9zaXplOworCisgICAgICAgIF9zcmMgKz0gc3RyaWRlNHg7CisgICAg ICAgIHBpeGVscyArPSBzdHJpZGU0eDsKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIGNvbW1vbl92 dF9iaWxfbm9fcm5kXzE2eDE2X2xhc3goY29uc3QgdWludDhfdCAqc3JjLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHNyY19zdHJpZGUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmRzdCwgaW50 MzJfdCBkc3Rfc3RyaWRlKQotewotICAgIF9fbTI1Nmkgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMywg c3JjNCwgc3JjNSwgc3JjNiwgc3JjNywgc3JjODsKLSAgICBfX20yNTZpIHNyYzksIHNyYzEwLCBz cmMxMSwgc3JjMTIsIHNyYzEzLCBzcmMxNCwgc3JjMTUsIHNyYzE2OwotICAgIGludDMyX3Qgc3Jj X3N0cmlkZV8yeCA9IHNyY19zdHJpZGUgPDwgMTsKLSAgICBpbnQzMl90IHNyY19zdHJpZGVfNHgg PSBzcmNfc3RyaWRlIDw8IDI7Ci0gICAgaW50MzJfdCBzcmNfc3RyaWRlXzN4ID0gc3JjX3N0cmlk ZV8yeCArIHNyY19zdHJpZGU7Ci0gICAgdWludDhfdCogX3NyYyA9ICh1aW50OF90KilzcmM7Ci0K LSAgICBzcmMwID0gX19sYXN4X3h2bGQoX3NyYywgMCk7Ci0gICAgRFVQMl9BUkcyKF9fbGFzeF94 dmxkeCwgX3NyYywgc3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlkZV8yeCwgc3JjMSwgc3JjMik7 Ci0gICAgc3JjMyA9IF9fbGFzeF94dmxkeChfc3JjLCBzcmNfc3RyaWRlXzN4KTsKLSAgICBfc3Jj ICs9IHNyY19zdHJpZGVfNHg7Ci0gICAgc3JjNCA9IF9fbGFzeF94dmxkKF9zcmMsIDApOwotICAg IERVUDJfQVJHMihfX2xhc3hfeHZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9zcmMsIHNyY19zdHJp ZGVfMngsIHNyYzUsIHNyYzYpOwotICAgIHNyYzcgPSBfX2xhc3hfeHZsZHgoX3NyYywgc3JjX3N0 cmlkZV8zeCk7Ci0gICAgX3NyYyArPSBzcmNfc3RyaWRlXzR4OwotICAgIHNyYzggPSBfX2xhc3hf eHZsZChfc3JjLCAwKTsKLSAgICBEVVAyX0FSRzIoX19sYXN4X3h2bGR4LCBfc3JjLCBzcmNfc3Ry aWRlLCBfc3JjLCBzcmNfc3RyaWRlXzJ4LCBzcmM5LCBzcmMxMCk7Ci0gICAgc3JjMTEgPSBfX2xh c3hfeHZsZHgoX3NyYywgc3JjX3N0cmlkZV8zeCk7Ci0gICAgX3NyYyArPSBzcmNfc3RyaWRlXzR4 OwotICAgIHNyYzEyID0gX19sYXN4X3h2bGQoX3NyYywgMCk7Ci0gICAgRFVQMl9BUkcyKF9fbGFz eF94dmxkeCwgX3NyYywgc3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlkZV8yeCwKLSAgICAgICAg ICAgICAgc3JjMTMsIHNyYzE0KTsKLSAgICBzcmMxNSA9IF9fbGFzeF94dmxkeChfc3JjLCBzcmNf c3RyaWRlXzN4KTsKLSAgICBfc3JjICs9IHNyY19zdHJpZGVfNHg7Ci0gICAgc3JjMTYgPSBfX2xh c3hfeHZsZChfc3JjLCAwKTsKLQotICAgIERVUDRfQVJHMyhfX2xhc3hfeHZwZXJtaV9xLCBzcmMx LCBzcmMwLCAweDIwLCBzcmMyLCBzcmMxLCAweDIwLCBzcmMzLCBzcmMyLAotICAgICAgICAgICAg ICAweDIwLCBzcmM0LCBzcmMzLCAweDIwLCBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzKTsKLSAgICBE VVA0X0FSRzMoX19sYXN4X3h2cGVybWlfcSwgc3JjNSwgc3JjNCwgMHgyMCwgc3JjNiwgc3JjNSwg MHgyMCwgc3JjNywgc3JjNiwKLSAgICAgICAgICAgICAgMHgyMCwgc3JjOCwgc3JjNywgMHgyMCwg c3JjNCwgc3JjNSwgc3JjNiwgc3JjNyk7Ci0gICAgRFVQNF9BUkczKF9fbGFzeF94dnBlcm1pX3Es IHNyYzksIHNyYzgsIDB4MjAsIHNyYzEwLCBzcmM5LCAweDIwLCBzcmMxMSwKLSAgICAgICAgICAg ICAgc3JjMTAsIDB4MjAsIHNyYzEyLCBzcmMxMSwgMHgyMCwgc3JjOCwgc3JjOSwgc3JjMTAsIHNy YzExKTsKLSAgICBEVVA0X0FSRzMoX19sYXN4X3h2cGVybWlfcSwgc3JjMTMsIHNyYzEyLCAweDIw LCBzcmMxNCwgc3JjMTMsIDB4MjAsIHNyYzE1LAotICAgICAgICAgICAgICBzcmMxNCwgMHgyMCwg c3JjMTYsIHNyYzE1LCAweDIwLCBzcmMxMiwgc3JjMTMsIHNyYzE0LCBzcmMxNSk7Ci0gICAgRFVQ NF9BUkcyKF9fbGFzeF94dmF2Z19idSwgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMywgc3JjNCwgc3Jj NSwgc3JjNiwgc3JjNywKLSAgICAgICAgICAgICAgc3JjMCwgc3JjMiwgc3JjNCwgc3JjNik7Ci0g ICAgRFVQNF9BUkcyKF9fbGFzeF94dmF2Z19idSwgc3JjOCwgc3JjOSwgc3JjMTAsIHNyYzExLCBz cmMxMiwgc3JjMTMsIHNyYzE0LAotICAgICAgICAgICAgICBzcmMxNSwgc3JjOCwgc3JjMTAsIHNy YzEyLCBzcmMxNCk7Ci0KLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzAsIGRzdCwgMCwgMCk7Ci0g ICAgX19sYXN4X3h2c3RlbG1fZChzcmMwLCBkc3QsIDgsIDEpOwotICAgIGRzdCArPSBkc3Rfc3Ry aWRlOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMCwgZHN0LCAwLCAyKTsKLSAgICBfX2xhc3hf eHZzdGVsbV9kKHNyYzAsIGRzdCwgOCwgMyk7Ci0gICAgZHN0ICs9IGRzdF9zdHJpZGU7Ci0gICAg X19sYXN4X3h2c3RlbG1fZChzcmMyLCBkc3QsIDAsIDApOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qo c3JjMiwgZHN0LCA4LCAxKTsKLSAgICBkc3QgKz0gZHN0X3N0cmlkZTsKLSAgICBfX2xhc3hfeHZz dGVsbV9kKHNyYzIsIGRzdCwgMCwgMik7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmMyLCBkc3Qs IDgsIDMpOwotICAgIGRzdCArPSBkc3Rfc3RyaWRlOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3Jj NCwgZHN0LCAwLCAwKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzQsIGRzdCwgOCwgMSk7Ci0g ICAgZHN0ICs9IGRzdF9zdHJpZGU7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmM0LCBkc3QsIDAs IDIpOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjNCwgZHN0LCA4LCAzKTsKLSAgICBkc3QgKz0g ZHN0X3N0cmlkZTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzYsIGRzdCwgMCwgMCk7Ci0gICAg X19sYXN4X3h2c3RlbG1fZChzcmM2LCBkc3QsIDgsIDEpOwotICAgIGRzdCArPSBkc3Rfc3RyaWRl OwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjNiwgZHN0LCAwLCAyKTsKLSAgICBfX2xhc3hfeHZz dGVsbV9kKHNyYzYsIGRzdCwgOCwgMyk7Ci0gICAgZHN0ICs9IGRzdF9zdHJpZGU7Ci0gICAgX19s YXN4X3h2c3RlbG1fZChzcmM4LCBkc3QsIDAsIDApOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3Jj OCwgZHN0LCA4LCAxKTsKLSAgICBkc3QgKz0gZHN0X3N0cmlkZTsKLSAgICBfX2xhc3hfeHZzdGVs bV9kKHNyYzgsIGRzdCwgMCwgMik7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmM4LCBkc3QsIDgs IDMpOwotICAgIGRzdCArPSBkc3Rfc3RyaWRlOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMTAs IGRzdCwgMCwgMCk7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmMxMCwgZHN0LCA4LCAxKTsKLSAg ICBkc3QgKz0gZHN0X3N0cmlkZTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzEwLCBkc3QsIDAs IDIpOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMTAsIGRzdCwgOCwgMyk7Ci0gICAgZHN0ICs9 IGRzdF9zdHJpZGU7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmMxMiwgZHN0LCAwLCAwKTsKLSAg ICBfX2xhc3hfeHZzdGVsbV9kKHNyYzEyLCBkc3QsIDgsIDEpOwotICAgIGRzdCArPSBkc3Rfc3Ry aWRlOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMTIsIGRzdCwgMCwgMik7Ci0gICAgX19sYXN4 X3h2c3RlbG1fZChzcmMxMiwgZHN0LCA4LCAzKTsKLSAgICBkc3QgKz0gZHN0X3N0cmlkZTsKLSAg ICBfX2xhc3hfeHZzdGVsbV9kKHNyYzE0LCBkc3QsIDAsIDApOwotICAgIF9fbGFzeF94dnN0ZWxt X2Qoc3JjMTQsIGRzdCwgOCwgMSk7Ci0gICAgZHN0ICs9IGRzdF9zdHJpZGU7Ci0gICAgX19sYXN4 X3h2c3RlbG1fZChzcmMxNCwgZHN0LCAwLCAyKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzE0 LCBkc3QsIDgsIDMpOwotfQotCi1zdGF0aWMgdm9pZCBjb21tb25fdnRfYmlsX25vX3JuZF84eDE2 X2xhc3goY29uc3QgdWludDhfdCAqc3JjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludDMyX3Qgc3JjX3N0cmlkZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpkc3QsIGludDMyX3QgZHN0X3N0cmlkZSkKLXsK LSAgICBfX20yNTZpIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMsIHNyYzQsIHNyYzUsIHNyYzYsIHNy YzcsIHNyYzg7Ci0gICAgaW50MzJfdCBzcmNfc3RyaWRlXzJ4ID0gc3JjX3N0cmlkZSA8PCAxOwot ICAgIGludDMyX3Qgc3JjX3N0cmlkZV80eCA9IHNyY19zdHJpZGUgPDwgMjsKLSAgICBpbnQzMl90 IHNyY19zdHJpZGVfM3ggPSBzcmNfc3RyaWRlXzJ4ICsgc3JjX3N0cmlkZTsKLSAgICB1aW50OF90 KiBfc3JjID0gKHVpbnQ4X3QqKXNyYzsKLQotICAgIHNyYzAgPSBfX2xhc3hfeHZsZChfc3JjLCAw KTsKLSAgICBEVVAyX0FSRzIoX19sYXN4X3h2bGR4LCBfc3JjLCBzcmNfc3RyaWRlLCBfc3JjLCBz cmNfc3RyaWRlXzJ4LCBzcmMxLCBzcmMyKTsKLSAgICBzcmMzID0gX19sYXN4X3h2bGR4KF9zcmMs IHNyY19zdHJpZGVfM3gpOwotICAgIF9zcmMgKz0gc3JjX3N0cmlkZV80eDsKLSAgICBzcmM0ID0g X19sYXN4X3h2bGQoX3NyYywgMCk7Ci0gICAgRFVQMl9BUkcyKF9fbGFzeF94dmxkeCwgX3NyYywg c3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlkZV8yeCwgc3JjNSwgc3JjNik7Ci0gICAgc3JjNyA9 IF9fbGFzeF94dmxkeChfc3JjLCBzcmNfc3RyaWRlXzN4KTsKLSAgICBfc3JjICs9IHNyY19zdHJp ZGVfNHg7Ci0gICAgc3JjOCA9IF9fbGFzeF94dmxkKF9zcmMsIDApOwotCi0gICAgRFVQNF9BUkcz KF9fbGFzeF94dnBlcm1pX3EsIHNyYzEsIHNyYzAsIDB4MjAsIHNyYzIsIHNyYzEsIDB4MjAsIHNy YzMsIHNyYzIsCi0gICAgICAgICAgICAgIDB4MjAsIHNyYzQsIHNyYzMsIDB4MjAsIHNyYzAsIHNy YzEsIHNyYzIsIHNyYzMpOwotICAgIERVUDRfQVJHMyhfX2xhc3hfeHZwZXJtaV9xLCBzcmM1LCBz cmM0LCAweDIwLCBzcmM2LCBzcmM1LCAweDIwLCBzcmM3LCBzcmM2LAotICAgICAgICAgICAgICAw eDIwLCBzcmM4LCBzcmM3LCAweDIwLCBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3KTsKLSAgICBEVVA0 X0FSRzIoX19sYXN4X3h2YXZnX2J1LCBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBzcmM0LCBzcmM1 LCBzcmM2LCBzcmM3LAotICAgICAgICAgICAgICBzcmMwLCBzcmMyLCBzcmM0LCBzcmM2KTsKLQot ICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMCwgZHN0LCAwLCAwKTsKLSAgICBfX2xhc3hfeHZzdGVs bV9kKHNyYzAsIGRzdCwgOCwgMSk7Ci0gICAgZHN0ICs9IGRzdF9zdHJpZGU7Ci0gICAgX19sYXN4 X3h2c3RlbG1fZChzcmMwLCBkc3QsIDAsIDIpOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMCwg ZHN0LCA4LCAzKTsKLSAgICBkc3QgKz0gZHN0X3N0cmlkZTsKLSAgICBfX2xhc3hfeHZzdGVsbV9k KHNyYzIsIGRzdCwgMCwgMCk7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmMyLCBkc3QsIDgsIDEp OwotICAgIGRzdCArPSBkc3Rfc3RyaWRlOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMiwgZHN0 LCAwLCAyKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzIsIGRzdCwgOCwgMyk7Ci0gICAgZHN0 ICs9IGRzdF9zdHJpZGU7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmM0LCBkc3QsIDAsIDApOwot ICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjNCwgZHN0LCA4LCAxKTsKLSAgICBkc3QgKz0gZHN0X3N0 cmlkZTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzQsIGRzdCwgMCwgMik7Ci0gICAgX19sYXN4 X3h2c3RlbG1fZChzcmM0LCBkc3QsIDgsIDMpOwotICAgIGRzdCArPSBkc3Rfc3RyaWRlOwotICAg IF9fbGFzeF94dnN0ZWxtX2Qoc3JjNiwgZHN0LCAwLCAwKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9k KHNyYzYsIGRzdCwgOCwgMSk7Ci0gICAgZHN0ICs9IGRzdF9zdHJpZGU7Ci0gICAgX19sYXN4X3h2 c3RlbG1fZChzcmM2LCBkc3QsIDAsIDIpOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjNiwgZHN0 LCA4LCAzKTsKLX0KLQorLyoqCisgKiBGb3Igd2lkdGhzIDE2LCBoIGlzIGFsd2F5cyBhIHBvc2l0 aXZlIG11bHRpcGxlIG9mIDQuCisgKiBUaGUgZnVuY3Rpb24gcHJvY2Vzc2VzIDQgcm93cyBwZXIg aXRlcmF0aW9uLgorICovCiB2b2lkIGZmX3B1dF9ub19ybmRfcGl4ZWxzMTZfeTJfOF9sYXN4KHVp bnQ4X3QgKmJsb2NrLCBjb25zdCB1aW50OF90ICpwaXhlbHMsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBsaW5lX3NpemUsIGludCBoKQogewotICAgIGlm IChoID09IDE2KSB7Ci0gICAgICAgIGNvbW1vbl92dF9iaWxfbm9fcm5kXzE2eDE2X2xhc3gocGl4 ZWxzLCBsaW5lX3NpemUsIGJsb2NrLCBsaW5lX3NpemUpOwotICAgIH0gZWxzZSBpZiAoaCA9PSA4 KSB7Ci0gICAgICAgIGNvbW1vbl92dF9iaWxfbm9fcm5kXzh4MTZfbGFzeChwaXhlbHMsIGxpbmVf c2l6ZSwgYmxvY2ssIGxpbmVfc2l6ZSk7CisgICAgX19tMjU2aSBzcmMwLCBzcmMxLCBzcmMyLCBz cmMzLCBzcmM0OworICAgIGludDMyX3Qgc3RyaWRlMnggPSBsaW5lX3NpemUgPDwgMTsKKyAgICBp bnQzMl90IHN0cmlkZTR4ID0gbGluZV9zaXplIDw8IDI7CisgICAgaW50MzJfdCBzdHJpZGUzeCA9 IHN0cmlkZTJ4ICsgbGluZV9zaXplOworICAgIHVpbnQ4X3QqIF9zcmMgPSAodWludDhfdCopcGl4 ZWxzOworICAgIGludDMyX3QgaF80ID0gaCA+PiAyOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkg PCBoXzQ7IGkrKykgeworICAgICAgICBzcmMwID0gX19sYXN4X3h2bGQoX3NyYywgMCk7CisgICAg ICAgIERVUDJfQVJHMihfX2xhc3hfeHZsZHgsIF9zcmMsIGxpbmVfc2l6ZSwgX3NyYywgc3RyaWRl MngsIHNyYzEsIHNyYzIpOworICAgICAgICBzcmMzID0gX19sYXN4X3h2bGR4KF9zcmMsIHN0cmlk ZTN4KTsKKyAgICAgICAgX3NyYyArPSBzdHJpZGU0eDsKKyAgICAgICAgc3JjNCA9IF9fbGFzeF94 dmxkKF9zcmMsIDApOworCisgICAgICAgIERVUDRfQVJHMyhfX2xhc3hfeHZwZXJtaV9xLCBzcmMx LCBzcmMwLCAweDIwLCBzcmMyLCBzcmMxLCAweDIwLCBzcmMzLCBzcmMyLAorICAgICAgICAgICAg ICAgICAgMHgyMCwgc3JjNCwgc3JjMywgMHgyMCwgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Cisg ICAgICAgIERVUDJfQVJHMihfX2xhc3hfeHZhdmdfYnUsIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMs IHNyYzAsIHNyYzIpOworCisgICAgICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMCwgYmxvY2ssIDAs IDApOworICAgICAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzAsIGJsb2NrLCA4LCAxKTsKKyAgICAg ICAgYmxvY2sgKz0gbGluZV9zaXplOworICAgICAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzAsIGJs b2NrLCAwLCAyKTsKKyAgICAgICAgX19sYXN4X3h2c3RlbG1fZChzcmMwLCBibG9jaywgOCwgMyk7 CisgICAgICAgIGJsb2NrICs9IGxpbmVfc2l6ZTsKKyAgICAgICAgX19sYXN4X3h2c3RlbG1fZChz cmMyLCBibG9jaywgMCwgMCk7CisgICAgICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMiwgYmxvY2ss IDgsIDEpOworICAgICAgICBibG9jayArPSBsaW5lX3NpemU7CisgICAgICAgIF9fbGFzeF94dnN0 ZWxtX2Qoc3JjMiwgYmxvY2ssIDAsIDIpOworICAgICAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzIs IGJsb2NrLCA4LCAzKTsKKyAgICAgICAgYmxvY2sgKz0gbGluZV9zaXplOwogICAgIH0KIH0KIAot c3RhdGljIHZvaWQgY29tbW9uX2h2X2JpbF9ub19ybmRfMTZ4MTZfbGFzeChjb25zdCB1aW50OF90 ICpzcmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMy X3Qgc3JjX3N0cmlkZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDhfdCAqZHN0LCBpbnQzMl90IGRzdF9zdHJpZGUpCi17Ci0gICAgX19tMjU2aSBzcmMw LCBzcmMxLCBzcmMyLCBzcmMzLCBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3LCBzcmM4LCBzcmM5Owot ICAgIF9fbTI1Nmkgc3JjMTAsIHNyYzExLCBzcmMxMiwgc3JjMTMsIHNyYzE0LCBzcmMxNSwgc3Jj MTYsIHNyYzE3OwotICAgIF9fbTI1Nmkgc3VtMCwgc3VtMSwgc3VtMiwgc3VtMywgc3VtNCwgc3Vt NSwgc3VtNiwgc3VtNzsKLSAgICBpbnQzMl90IHNyY19zdHJpZGVfMnggPSBzcmNfc3RyaWRlIDw8 IDE7Ci0gICAgaW50MzJfdCBzcmNfc3RyaWRlXzR4ID0gc3JjX3N0cmlkZSA8PCAyOwotICAgIGlu dDMyX3Qgc3JjX3N0cmlkZV8zeCA9IHNyY19zdHJpZGVfMnggKyBzcmNfc3RyaWRlOwotICAgIHVp bnQ4X3QqIF9zcmMgPSAodWludDhfdCopc3JjOwotCi0gICAgc3JjMCA9IF9fbGFzeF94dmxkKF9z cmMsIDApOwotICAgIERVUDJfQVJHMihfX2xhc3hfeHZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9z cmMsIHNyY19zdHJpZGVfMngsIHNyYzEsIHNyYzIpOwotICAgIHNyYzMgPSBfX2xhc3hfeHZsZHgo X3NyYywgc3JjX3N0cmlkZV8zeCk7Ci0gICAgX3NyYyArPSBzcmNfc3RyaWRlXzR4OwotICAgIHNy YzQgPSBfX2xhc3hfeHZsZChfc3JjLCAwKTsKLSAgICBEVVAyX0FSRzIoX19sYXN4X3h2bGR4LCBf c3JjLCBzcmNfc3RyaWRlLCBfc3JjLCBzcmNfc3RyaWRlXzJ4LCBzcmM1LCBzcmM2KTsKLSAgICBz cmM3ID0gX19sYXN4X3h2bGR4KF9zcmMsIHNyY19zdHJpZGVfM3gpOwotICAgIF9zcmMgKz0gKDEg LSBzcmNfc3RyaWRlXzR4KTsKLSAgICBzcmM5ID0gX19sYXN4X3h2bGQoX3NyYywgMCk7Ci0gICAg RFVQMl9BUkcyKF9fbGFzeF94dmxkeCwgX3NyYywgc3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlk ZV8yeCwKLSAgICAgICAgICAgICAgc3JjMTAsIHNyYzExKTsKLSAgICBzcmMxMiA9IF9fbGFzeF94 dmxkeChfc3JjLCBzcmNfc3RyaWRlXzN4KTsKLSAgICBfc3JjICs9IHNyY19zdHJpZGVfNHg7Ci0g ICAgc3JjMTMgPSBfX2xhc3hfeHZsZChfc3JjLCAwKTsKLSAgICBEVVAyX0FSRzIoX19sYXN4X3h2 bGR4LCBfc3JjLCBzcmNfc3RyaWRlLCBfc3JjLCBzcmNfc3RyaWRlXzJ4LAotICAgICAgICAgICAg ICBzcmMxNCwgc3JjMTUpOwotICAgIHNyYzE2ID0gX19sYXN4X3h2bGR4KF9zcmMsIHNyY19zdHJp ZGVfM3gpOwotICAgIF9zcmMgKz0gKHNyY19zdHJpZGVfNHggLSAxKTsKLSAgICBEVVAyX0FSRzIo X19sYXN4X3h2bGQsIF9zcmMsIDAsIF9zcmMsIDEsIHNyYzgsIHNyYzE3KTsKLQotICAgIERVUDRf QVJHMyhfX2xhc3hfeHZwZXJtaV9xLCBzcmMwLCBzcmM0LCAweDAyLCBzcmMxLCBzcmM1LCAweDAy LCBzcmMyLAotICAgICAgICAgICAgICBzcmM2LCAweDAyLCBzcmMzLCBzcmM3LCAweDAyLCBzcmMw LCBzcmMxLCBzcmMyLCBzcmMzKTsKLSAgICBEVVA0X0FSRzMoX19sYXN4X3h2cGVybWlfcSwgc3Jj NCwgc3JjOCwgMHgwMiwgc3JjOSwgc3JjMTMsIDB4MDIsIHNyYzEwLAotICAgICAgICAgICAgICBz cmMxNCwgMHgwMiwgc3JjMTEsIHNyYzE1LCAweDAyLCBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3KTsK LSAgICBEVVAyX0FSRzMoX19sYXN4X3h2cGVybWlfcSwgc3JjMTIsIHNyYzE2LCAweDAyLCBzcmMx Mywgc3JjMTcsIDB4MDIsCi0gICAgICAgICAgICAgIHNyYzgsIHNyYzkpOwotICAgIERVUDRfQVJH MihfX2xhc3hfeHZpbHZsX2gsIHNyYzUsIHNyYzAsIHNyYzYsIHNyYzEsIHNyYzcsIHNyYzIsIHNy YzgsIHNyYzMsCi0gICAgICAgICAgICAgIHN1bTAsIHN1bTIsIHN1bTQsIHN1bTYpOwotICAgIERV UDRfQVJHMihfX2xhc3hfeHZpbHZoX2gsIHNyYzUsIHNyYzAsIHNyYzYsIHNyYzEsIHNyYzcsIHNy YzIsIHNyYzgsIHNyYzMsCi0gICAgICAgICAgICAgIHN1bTEsIHN1bTMsIHN1bTUsIHN1bTcpOwot ICAgIHNyYzggPSBfX2xhc3hfeHZpbHZsX2goc3JjOSwgc3JjNCk7Ci0gICAgc3JjOSA9IF9fbGFz eF94dmlsdmhfaChzcmM5LCBzcmM0KTsKLQotICAgIERVUDRfQVJHMihfX2xhc3hfeHZoYWRkd19o dV9idSwgc3VtMCwgc3VtMCwgc3VtMSwgc3VtMSwgc3VtMiwgc3VtMiwKLSAgICAgICAgICAgICAg c3VtMywgc3VtMywgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Ci0gICAgRFVQNF9BUkcyKF9fbGFz eF94dmhhZGR3X2h1X2J1LCBzdW00LCBzdW00LCBzdW01LCBzdW01LCBzdW02LCBzdW02LAotICAg ICAgICAgICAgICBzdW03LCBzdW03LCBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3KTsKLSAgICBEVVAy X0FSRzIoX19sYXN4X3h2aGFkZHdfaHVfYnUsIHNyYzgsIHNyYzgsIHNyYzksIHNyYzksIHNyYzgs IHNyYzkpOwotCi0gICAgRFVQNF9BUkcyKF9fbGFzeF94dmFkZF9oLCBzcmMwLCBzcmMyLCBzcmMx LCBzcmMzLCBzcmMyLCBzcmM0LCBzcmMzLCBzcmM1LAotICAgICAgICAgICAgICBzdW0wLCBzdW0x LCBzdW0yLCBzdW0zKTsKLSAgICBEVVA0X0FSRzIoX19sYXN4X3h2YWRkX2gsIHNyYzQsIHNyYzYs IHNyYzUsIHNyYzcsIHNyYzYsIHNyYzgsIHNyYzcsIHNyYzksCi0gICAgICAgICAgICAgIHN1bTQs IHN1bTUsIHN1bTYsIHN1bTcpOwotICAgIERVUDRfQVJHMihfX2xhc3hfeHZhZGRpX2h1LCBzdW0w LCAxLCBzdW0xLCAxLCBzdW0yLCAxLCBzdW0zLCAxLAotICAgICAgICAgICAgICBzdW0wLCBzdW0x LCBzdW0yLCBzdW0zKTsKLSAgICBEVVA0X0FSRzIoX19sYXN4X3h2YWRkaV9odSwgc3VtNCwgMSwg c3VtNSwgMSwgc3VtNiwgMSwgc3VtNywgMSwKLSAgICAgICAgICAgICAgc3VtNCwgc3VtNSwgc3Vt Niwgc3VtNyk7Ci0gICAgRFVQNF9BUkczKF9fbGFzeF94dnNyYW5pX2JfaCwgc3VtMSwgc3VtMCwg Miwgc3VtMywgc3VtMiwgMiwgc3VtNSwgc3VtNCwgMiwKLSAgICAgICAgICAgICAgc3VtNywgc3Vt NiwgMiwgc3VtMCwgc3VtMSwgc3VtMiwgc3VtMyk7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzdW0w LCBkc3QsIDAsIDApOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3VtMCwgZHN0LCA4LCAxKTsKLSAg ICBkc3QgKz0gZHN0X3N0cmlkZTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHN1bTEsIGRzdCwgMCwg MCk7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzdW0xLCBkc3QsIDgsIDEpOwotICAgIGRzdCArPSBk c3Rfc3RyaWRlOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3VtMiwgZHN0LCAwLCAwKTsKLSAgICBf X2xhc3hfeHZzdGVsbV9kKHN1bTIsIGRzdCwgOCwgMSk7Ci0gICAgZHN0ICs9IGRzdF9zdHJpZGU7 Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzdW0zLCBkc3QsIDAsIDApOwotICAgIF9fbGFzeF94dnN0 ZWxtX2Qoc3VtMywgZHN0LCA4LCAxKTsKLSAgICBkc3QgKz0gZHN0X3N0cmlkZTsKLSAgICBfX2xh c3hfeHZzdGVsbV9kKHN1bTAsIGRzdCwgMCwgMik7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzdW0w LCBkc3QsIDgsIDMpOwotICAgIGRzdCArPSBkc3Rfc3RyaWRlOwotICAgIF9fbGFzeF94dnN0ZWxt X2Qoc3VtMSwgZHN0LCAwLCAyKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHN1bTEsIGRzdCwgOCwg Myk7Ci0gICAgZHN0ICs9IGRzdF9zdHJpZGU7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzdW0yLCBk c3QsIDAsIDIpOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3VtMiwgZHN0LCA4LCAzKTsKLSAgICBk c3QgKz0gZHN0X3N0cmlkZTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHN1bTMsIGRzdCwgMCwgMik7 Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzdW0zLCBkc3QsIDgsIDMpOwotICAgIGRzdCArPSBkc3Rf c3RyaWRlOwotCi0gICAgc3JjMCA9IF9fbGFzeF94dmxkKF9zcmMsIDApOwotICAgIERVUDJfQVJH MihfX2xhc3hfeHZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9zcmMsIHNyY19zdHJpZGVfMngsIHNy YzEsIHNyYzIpOwotICAgIHNyYzMgPSBfX2xhc3hfeHZsZHgoX3NyYywgc3JjX3N0cmlkZV8zeCk7 Ci0gICAgX3NyYyArPSBzcmNfc3RyaWRlXzR4OwotICAgIHNyYzQgPSBfX2xhc3hfeHZsZChfc3Jj LCAwKTsKLSAgICBEVVAyX0FSRzIoX19sYXN4X3h2bGR4LCBfc3JjLCBzcmNfc3RyaWRlLCBfc3Jj LCBzcmNfc3RyaWRlXzJ4LCBzcmM1LCBzcmM2KTsKLSAgICBzcmM3ID0gX19sYXN4X3h2bGR4KF9z cmMsIHNyY19zdHJpZGVfM3gpOwotICAgIF9zcmMgKz0gKDEgLSBzcmNfc3RyaWRlXzR4KTsKLSAg ICBzcmM5ID0gX19sYXN4X3h2bGQoX3NyYywgMCk7Ci0gICAgRFVQMl9BUkcyKF9fbGFzeF94dmxk eCwgX3NyYywgc3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlkZV8yeCwKLSAgICAgICAgICAgICAg c3JjMTAsIHNyYzExKTsKLSAgICBzcmMxMiA9IF9fbGFzeF94dmxkeChfc3JjLCBzcmNfc3RyaWRl XzN4KTsKLSAgICBfc3JjICs9IHNyY19zdHJpZGVfNHg7Ci0gICAgc3JjMTMgPSBfX2xhc3hfeHZs ZChfc3JjLCAwKTsKLSAgICBEVVAyX0FSRzIoX19sYXN4X3h2bGR4LCBfc3JjLCBzcmNfc3RyaWRl LCBfc3JjLCBzcmNfc3RyaWRlXzJ4LAotICAgICAgICAgICAgICBzcmMxNCwgc3JjMTUpOwotICAg IHNyYzE2ID0gX19sYXN4X3h2bGR4KF9zcmMsIHNyY19zdHJpZGVfM3gpOwotICAgIF9zcmMgKz0g KHNyY19zdHJpZGVfNHggLSAxKTsKLSAgICBEVVAyX0FSRzIoX19sYXN4X3h2bGQsIF9zcmMsIDAs IF9zcmMsIDEsIHNyYzgsIHNyYzE3KTsKLQotICAgIERVUDRfQVJHMyhfX2xhc3hfeHZwZXJtaV9x LCBzcmMwLCBzcmM0LCAweDAyLCBzcmMxLCBzcmM1LCAweDAyLCBzcmMyLCBzcmM2LCAweDAyLAot ICAgICAgICAgICAgICBzcmMzLCBzcmM3LCAweDAyLCBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzKTsK LSAgICBEVVA0X0FSRzMoX19sYXN4X3h2cGVybWlfcSwgc3JjNCwgc3JjOCwgMHgwMiwgc3JjOSwg c3JjMTMsIDB4MDIsIHNyYzEwLCBzcmMxNCwgMHgwMiwKLSAgICAgICAgICAgICAgc3JjMTEsIHNy YzE1LCAweDAyLCBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3KTsKLSAgICBEVVAyX0FSRzMoX19sYXN4 X3h2cGVybWlfcSwgc3JjMTIsIHNyYzE2LCAweDAyLCBzcmMxMywgc3JjMTcsIDB4MDIsIHNyYzgs IHNyYzkpOwotCi0gICAgRFVQNF9BUkcyKF9fbGFzeF94dmlsdmxfaCwgc3JjNSwgc3JjMCwgc3Jj Niwgc3JjMSwgc3JjNywgc3JjMiwgc3JjOCwgc3JjMywKLSAgICAgICAgICAgICAgc3VtMCwgc3Vt Miwgc3VtNCwgc3VtNik7Ci0gICAgRFVQNF9BUkcyKF9fbGFzeF94dmlsdmhfaCwgc3JjNSwgc3Jj MCwgc3JjNiwgc3JjMSwgc3JjNywgc3JjMiwgc3JjOCwgc3JjMywKLSAgICAgICAgICAgICAgc3Vt MSwgc3VtMywgc3VtNSwgc3VtNyk7Ci0gICAgc3JjOCA9IF9fbGFzeF94dmlsdmxfaChzcmM5LCBz cmM0KTsKLSAgICBzcmM5ID0gX19sYXN4X3h2aWx2aF9oKHNyYzksIHNyYzQpOwotCi0gICAgRFVQ NF9BUkcyKF9fbGFzeF94dmhhZGR3X2h1X2J1LCBzdW0wLCBzdW0wLCBzdW0xLCBzdW0xLCBzdW0y LCBzdW0yLAotICAgICAgICAgICAgICBzdW0zLCBzdW0zLCBzcmMwLCBzcmMxLCBzcmMyLCBzcmMz KTsKLSAgICBEVVA0X0FSRzIoX19sYXN4X3h2aGFkZHdfaHVfYnUsIHN1bTQsIHN1bTQsIHN1bTUs IHN1bTUsIHN1bTYsIHN1bTYsCi0gICAgICAgICAgICAgIHN1bTcsIHN1bTcsIHNyYzQsIHNyYzUs IHNyYzYsIHNyYzcpOwotICAgIERVUDJfQVJHMihfX2xhc3hfeHZoYWRkd19odV9idSwgc3JjOCwg c3JjOCwgc3JjOSwgc3JjOSwgc3JjOCwgc3JjOSk7Ci0KLSAgICBEVVA0X0FSRzIoX19sYXN4X3h2 YWRkX2gsIHNyYzAsIHNyYzIsIHNyYzEsIHNyYzMsIHNyYzIsIHNyYzQsIHNyYzMsIHNyYzUsCi0g ICAgICAgICAgICAgIHN1bTAsIHN1bTEsIHN1bTIsIHN1bTMpOwotICAgIERVUDRfQVJHMihfX2xh c3hfeHZhZGRfaCwgc3JjNCwgc3JjNiwgc3JjNSwgc3JjNywgc3JjNiwgc3JjOCwgc3JjNywgc3Jj OSwKLSAgICAgICAgICAgICAgc3VtNCwgc3VtNSwgc3VtNiwgc3VtNyk7Ci0gICAgRFVQNF9BUkcy KF9fbGFzeF94dmFkZGlfaHUsIHN1bTAsIDEsIHN1bTEsIDEsIHN1bTIsIDEsIHN1bTMsIDEsCi0g ICAgICAgICAgICAgIHN1bTAsIHN1bTEsIHN1bTIsIHN1bTMpOwotICAgIERVUDRfQVJHMihfX2xh c3hfeHZhZGRpX2h1LCBzdW00LCAxLCBzdW01LCAxLCBzdW02LCAxLCBzdW03LCAxLAotICAgICAg ICAgICAgICBzdW00LCBzdW01LCBzdW02LCBzdW03KTsKLSAgICBEVVA0X0FSRzMoX19sYXN4X3h2 c3JhbmlfYl9oLCBzdW0xLCBzdW0wLCAyLCBzdW0zLCBzdW0yLCAyLCBzdW01LCBzdW00LCAyLAot ICAgICAgICAgICAgICBzdW03LCBzdW02LCAyLCBzdW0wLCBzdW0xLCBzdW0yLCBzdW0zKTsKLSAg ICBfX2xhc3hfeHZzdGVsbV9kKHN1bTAsIGRzdCwgMCwgMCk7Ci0gICAgX19sYXN4X3h2c3RlbG1f ZChzdW0wLCBkc3QsIDgsIDEpOwotICAgIGRzdCArPSBkc3Rfc3RyaWRlOwotICAgIF9fbGFzeF94 dnN0ZWxtX2Qoc3VtMSwgZHN0LCAwLCAwKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHN1bTEsIGRz dCwgOCwgMSk7Ci0gICAgZHN0ICs9IGRzdF9zdHJpZGU7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChz dW0yLCBkc3QsIDAsIDApOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3VtMiwgZHN0LCA4LCAxKTsK LSAgICBkc3QgKz0gZHN0X3N0cmlkZTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHN1bTMsIGRzdCwg MCwgMCk7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzdW0zLCBkc3QsIDgsIDEpOwotICAgIGRzdCAr PSBkc3Rfc3RyaWRlOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3VtMCwgZHN0LCAwLCAyKTsKLSAg ICBfX2xhc3hfeHZzdGVsbV9kKHN1bTAsIGRzdCwgOCwgMyk7Ci0gICAgZHN0ICs9IGRzdF9zdHJp ZGU7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzdW0xLCBkc3QsIDAsIDIpOwotICAgIF9fbGFzeF94 dnN0ZWxtX2Qoc3VtMSwgZHN0LCA4LCAzKTsKLSAgICBkc3QgKz0gZHN0X3N0cmlkZTsKLSAgICBf X2xhc3hfeHZzdGVsbV9kKHN1bTIsIGRzdCwgMCwgMik7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChz dW0yLCBkc3QsIDgsIDMpOwotICAgIGRzdCArPSBkc3Rfc3RyaWRlOwotICAgIF9fbGFzeF94dnN0 ZWxtX2Qoc3VtMywgZHN0LCAwLCAyKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHN1bTMsIGRzdCwg OCwgMyk7Ci19Ci0KLXN0YXRpYyB2b2lkIGNvbW1vbl9odl9iaWxfbm9fcm5kXzh4MTZfbGFzeChj b25zdCB1aW50OF90ICpzcmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50MzJfdCBzcmNfc3RyaWRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQ4X3QgKmRzdCwgaW50MzJfdCBkc3Rfc3RyaWRlKQotewotICAgIF9f bTI1Nmkgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMywgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNywgc3Jj OCwgc3JjOTsKLSAgICBfX20yNTZpIHNyYzEwLCBzcmMxMSwgc3JjMTIsIHNyYzEzLCBzcmMxNCwg c3JjMTUsIHNyYzE2LCBzcmMxNzsKLSAgICBfX20yNTZpIHN1bTAsIHN1bTEsIHN1bTIsIHN1bTMs IHN1bTQsIHN1bTUsIHN1bTYsIHN1bTc7Ci0gICAgaW50MzJfdCBzcmNfc3RyaWRlXzJ4ID0gc3Jj X3N0cmlkZSA8PCAxOwotICAgIGludDMyX3Qgc3JjX3N0cmlkZV80eCA9IHNyY19zdHJpZGUgPDwg MjsKLSAgICBpbnQzMl90IHNyY19zdHJpZGVfM3ggPSBzcmNfc3RyaWRlXzJ4ICsgc3JjX3N0cmlk ZTsKLSAgICB1aW50OF90KiBfc3JjID0gKHVpbnQ4X3QqKXNyYzsKLQotICAgIHNyYzAgPSBfX2xh c3hfeHZsZChfc3JjLCAwKTsKLSAgICBEVVAyX0FSRzIoX19sYXN4X3h2bGR4LCBfc3JjLCBzcmNf c3RyaWRlLCBfc3JjLCBzcmNfc3RyaWRlXzJ4LCBzcmMxLCBzcmMyKTsKLSAgICBzcmMzID0gX19s YXN4X3h2bGR4KF9zcmMsIHNyY19zdHJpZGVfM3gpOwotICAgIF9zcmMgKz0gc3JjX3N0cmlkZV80 eDsKLSAgICBzcmM0ID0gX19sYXN4X3h2bGQoX3NyYywgMCk7Ci0gICAgRFVQMl9BUkcyKF9fbGFz eF94dmxkeCwgX3NyYywgc3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlkZV8yeCwgc3JjNSwgc3Jj Nik7Ci0gICAgc3JjNyA9IF9fbGFzeF94dmxkeChfc3JjLCBzcmNfc3RyaWRlXzN4KTsKLSAgICBf c3JjICs9ICgxIC0gc3JjX3N0cmlkZV80eCk7Ci0gICAgc3JjOSA9IF9fbGFzeF94dmxkKF9zcmMs IDApOwotICAgIERVUDJfQVJHMihfX2xhc3hfeHZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9zcmMs IHNyY19zdHJpZGVfMngsCi0gICAgICAgICAgICAgIHNyYzEwLCBzcmMxMSk7Ci0gICAgc3JjMTIg PSBfX2xhc3hfeHZsZHgoX3NyYywgc3JjX3N0cmlkZV8zeCk7Ci0gICAgX3NyYyArPSBzcmNfc3Ry aWRlXzR4OwotICAgIHNyYzEzID0gX19sYXN4X3h2bGQoX3NyYywgMCk7Ci0gICAgRFVQMl9BUkcy KF9fbGFzeF94dmxkeCwgX3NyYywgc3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlkZV8yeCwKLSAg ICAgICAgICAgICAgc3JjMTQsIHNyYzE1KTsKLSAgICBzcmMxNiA9IF9fbGFzeF94dmxkeChfc3Jj LCBzcmNfc3RyaWRlXzN4KTsKLSAgICBfc3JjICs9IChzcmNfc3RyaWRlXzR4IC0gMSk7Ci0gICAg RFVQMl9BUkcyKF9fbGFzeF94dmxkLCBfc3JjLCAwLCBfc3JjLCAxLCBzcmM4LCBzcmMxNyk7Ci0K LSAgICBEVVA0X0FSRzMoX19sYXN4X3h2cGVybWlfcSwgc3JjMCwgc3JjNCwgMHgwMiwgc3JjMSwg c3JjNSwgMHgwMiwgc3JjMiwKLSAgICAgICAgICAgICAgc3JjNiwgMHgwMiwgc3JjMywgc3JjNywg MHgwMiwgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Ci0gICAgRFVQNF9BUkczKF9fbGFzeF94dnBl cm1pX3EsIHNyYzQsIHNyYzgsIDB4MDIsIHNyYzksIHNyYzEzLCAweDAyLCBzcmMxMCwKLSAgICAg ICAgICAgICAgc3JjMTQsIDB4MDIsIHNyYzExLCBzcmMxNSwgMHgwMiwgc3JjNCwgc3JjNSwgc3Jj Niwgc3JjNyk7Ci0gICAgRFVQMl9BUkczKF9fbGFzeF94dnBlcm1pX3EsIHNyYzEyLCBzcmMxNiwg MHgwMiwgc3JjMTMsIHNyYzE3LCAweDAyLCBzcmM4LCBzcmM5KTsKLQotICAgIERVUDRfQVJHMihf X2xhc3hfeHZpbHZsX2gsIHNyYzUsIHNyYzAsIHNyYzYsIHNyYzEsIHNyYzcsIHNyYzIsIHNyYzgs IHNyYzMsCi0gICAgICAgICAgICAgIHN1bTAsIHN1bTIsIHN1bTQsIHN1bTYpOwotICAgIERVUDRf QVJHMihfX2xhc3hfeHZpbHZoX2gsIHNyYzUsIHNyYzAsIHNyYzYsIHNyYzEsIHNyYzcsIHNyYzIs IHNyYzgsIHNyYzMsCi0gICAgICAgICAgICAgIHN1bTEsIHN1bTMsIHN1bTUsIHN1bTcpOwotICAg IHNyYzggPSBfX2xhc3hfeHZpbHZsX2goc3JjOSwgc3JjNCk7Ci0gICAgc3JjOSA9IF9fbGFzeF94 dmlsdmhfaChzcmM5LCBzcmM0KTsKLQotICAgIERVUDRfQVJHMihfX2xhc3hfeHZoYWRkd19odV9i dSwgc3VtMCwgc3VtMCwgc3VtMSwgc3VtMSwgc3VtMiwgc3VtMiwKLSAgICAgICAgICAgICAgc3Vt Mywgc3VtMywgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Ci0gICAgRFVQNF9BUkcyKF9fbGFzeF94 dmhhZGR3X2h1X2J1LCBzdW00LCBzdW00LCBzdW01LCBzdW01LCBzdW02LCBzdW02LAotICAgICAg ICAgICAgICBzdW03LCBzdW03LCBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3KTsKLSAgICBEVVAyX0FS RzIoX19sYXN4X3h2aGFkZHdfaHVfYnUsIHNyYzgsIHNyYzgsIHNyYzksIHNyYzksIHNyYzgsIHNy YzkpOwotCi0gICAgRFVQNF9BUkcyKF9fbGFzeF94dmFkZF9oLCBzcmMwLCBzcmMyLCBzcmMxLCBz cmMzLCBzcmMyLCBzcmM0LCBzcmMzLCBzcmM1LAotICAgICAgICAgICAgICBzdW0wLCBzdW0xLCBz dW0yLCBzdW0zKTsKLSAgICBEVVA0X0FSRzIoX19sYXN4X3h2YWRkX2gsIHNyYzQsIHNyYzYsIHNy YzUsIHNyYzcsIHNyYzYsIHNyYzgsIHNyYzcsIHNyYzksCi0gICAgICAgICAgICAgIHN1bTQsIHN1 bTUsIHN1bTYsIHN1bTcpOwotICAgIERVUDRfQVJHMihfX2xhc3hfeHZhZGRpX2h1LCBzdW0wLCAx LCBzdW0xLCAxLCBzdW0yLCAxLCBzdW0zLCAxLAotICAgICAgICAgICAgICBzdW0wLCBzdW0xLCBz dW0yLCBzdW0zKTsKLSAgICBEVVA0X0FSRzIoX19sYXN4X3h2YWRkaV9odSwgc3VtNCwgMSwgc3Vt NSwgMSwgc3VtNiwgMSwgc3VtNywgMSwKLSAgICAgICAgICAgICAgc3VtNCwgc3VtNSwgc3VtNiwg c3VtNyk7Ci0gICAgRFVQNF9BUkczKF9fbGFzeF94dnNyYW5pX2JfaCwgc3VtMSwgc3VtMCwgMiwg c3VtMywgc3VtMiwgMiwgc3VtNSwgc3VtNCwgMiwKLSAgICAgICAgICAgICAgc3VtNywgc3VtNiwg Miwgc3VtMCwgc3VtMSwgc3VtMiwgc3VtMyk7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzdW0wLCBk c3QsIDAsIDApOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3VtMCwgZHN0LCA4LCAxKTsKLSAgICBk c3QgKz0gZHN0X3N0cmlkZTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHN1bTEsIGRzdCwgMCwgMCk7 Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzdW0xLCBkc3QsIDgsIDEpOwotICAgIGRzdCArPSBkc3Rf c3RyaWRlOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3VtMiwgZHN0LCAwLCAwKTsKLSAgICBfX2xh c3hfeHZzdGVsbV9kKHN1bTIsIGRzdCwgOCwgMSk7Ci0gICAgZHN0ICs9IGRzdF9zdHJpZGU7Ci0g ICAgX19sYXN4X3h2c3RlbG1fZChzdW0zLCBkc3QsIDAsIDApOwotICAgIF9fbGFzeF94dnN0ZWxt X2Qoc3VtMywgZHN0LCA4LCAxKTsKLSAgICBkc3QgKz0gZHN0X3N0cmlkZTsKLSAgICBfX2xhc3hf eHZzdGVsbV9kKHN1bTAsIGRzdCwgMCwgMik7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzdW0wLCBk c3QsIDgsIDMpOwotICAgIGRzdCArPSBkc3Rfc3RyaWRlOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qo c3VtMSwgZHN0LCAwLCAyKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHN1bTEsIGRzdCwgOCwgMyk7 Ci0gICAgZHN0ICs9IGRzdF9zdHJpZGU7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzdW0yLCBkc3Qs IDAsIDIpOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3VtMiwgZHN0LCA4LCAzKTsKLSAgICBkc3Qg Kz0gZHN0X3N0cmlkZTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHN1bTMsIGRzdCwgMCwgMik7Ci0g ICAgX19sYXN4X3h2c3RlbG1fZChzdW0zLCBkc3QsIDgsIDMpOwotfQotCiB2b2lkIGZmX3B1dF9u b19ybmRfcGl4ZWxzMTZfeHkyXzhfbGFzeCh1aW50OF90ICpibG9jaywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnBpeGVscywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBsaW5lX3NpemUsIGludCBo KQogewotICAgIGlmIChoID09IDE2KSB7Ci0gICAgICAgIGNvbW1vbl9odl9iaWxfbm9fcm5kXzE2 eDE2X2xhc3gocGl4ZWxzLCBsaW5lX3NpemUsIGJsb2NrLCBsaW5lX3NpemUpOwotICAgIH0gZWxz ZSBpZiAoaCA9PSA4KSB7Ci0gICAgICAgIGNvbW1vbl9odl9iaWxfbm9fcm5kXzh4MTZfbGFzeChw aXhlbHMsIGxpbmVfc2l6ZSwgYmxvY2ssIGxpbmVfc2l6ZSk7CisgICAgX19tMjU2aSBzcmMwLCBz cmMxLCBzcmMyLCBzcmMzOworICAgIF9fbTI1Nmkgc3VtMCwgc3VtMSwgc3VtMjsKKyAgICBzcmMw ID0gX19sYXN4X3h2bGQocGl4ZWxzLCAwKTsKKyAgICBzcmMxID0gX19sYXN4X3h2bGQocGl4ZWxz LCAxKTsKKyAgICBzcmMyID0gX19sYXN4X3ZleHQyeHZfaHVfYnUoc3JjMCk7CisgICAgc3JjMyA9 IF9fbGFzeF92ZXh0Mnh2X2h1X2J1KHNyYzEpOworICAgIHN1bTAgPSBfX2xhc3hfeHZhZGRfaChz cmMyLCBzcmMzKTsKKyAgICBzdW0wID0gX19sYXN4X3h2YWRkaV9odShzdW0wLCAxKTsKKworICAg IGZvciAoaW50IGk9IDA7IGkgPCBoOyBpKyspIHsKKyAgICAgICAgcGl4ZWxzICs9IGxpbmVfc2l6 ZTsKKyAgICAgICAgc3JjMCA9IF9fbGFzeF94dmxkKHBpeGVscywgMCk7CisgICAgICAgIHNyYzEg PSBfX2xhc3hfeHZsZChwaXhlbHMsIDEpOworCisgICAgICAgIHNyYzIgPSBfX2xhc3hfdmV4dDJ4 dl9odV9idShzcmMwKTsKKyAgICAgICAgc3JjMyA9IF9fbGFzeF92ZXh0Mnh2X2h1X2J1KHNyYzEp OworICAgICAgICBzdW0xID0gX19sYXN4X3h2YWRkX2goc3JjMiwgc3JjMyk7CisgICAgICAgIHN1 bTIgPSBfX2xhc3hfeHZhZGRfaChzdW0wLCBzdW0xKTsKKyAgICAgICAgc3VtMiA9IF9fbGFzeF94 dnNyYW5pX2JfaChzdW0yLCBzdW0yLCAyKTsKKworICAgICAgICBzdW0wID0gX19sYXN4X3h2YWRk aV9odShzdW0xLCAxKTsKKyAgICAgICAgX19sYXN4X3h2c3RlbG1fZChzdW0yLCBibG9jaywgMCwg MCk7CisgICAgICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3VtMiwgYmxvY2ssIDgsIDMpOworCisgICAg ICAgIGJsb2NrICs9IGxpbmVfc2l6ZTsKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIGNvbW1vbl9o el9iaWxfbm9fcm5kXzh4OF9sYXN4KGNvbnN0IHVpbnQ4X3QgKnNyYywKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3Qgc3JjX3N0cmlkZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmRzdCwgaW50MzJfdCBk c3Rfc3RyaWRlKQotewotICAgIF9fbTI1Nmkgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMywgc3JjNCwg c3JjNSwgc3JjNiwgc3JjNzsKLSAgICBfX20yNTZpIHNyYzgsIHNyYzksIHNyYzEwLCBzcmMxMSwg c3JjMTIsIHNyYzEzLCBzcmMxNCwgc3JjMTU7Ci0gICAgaW50MzJfdCBzcmNfc3RyaWRlXzJ4ID0g c3JjX3N0cmlkZSA8PCAxOwotICAgIGludDMyX3Qgc3JjX3N0cmlkZV80eCA9IHNyY19zdHJpZGUg PDwgMjsKLSAgICBpbnQzMl90IGRzdF9zdHJpZGVfMnggPSBkc3Rfc3RyaWRlIDw8IDE7Ci0gICAg aW50MzJfdCBkc3Rfc3RyaWRlXzR4ID0gZHN0X3N0cmlkZSA8PCAyOwotICAgIGludDMyX3QgZHN0 X3N0cmlkZV8zeCA9IGRzdF9zdHJpZGVfMnggKyBkc3Rfc3RyaWRlOwotICAgIGludDMyX3Qgc3Jj X3N0cmlkZV8zeCA9IHNyY19zdHJpZGVfMnggKyBzcmNfc3RyaWRlOwotICAgIHVpbnQ4X3QqIF9z cmMgPSAodWludDhfdCopc3JjOwotCi0gICAgc3JjMCA9IF9fbGFzeF94dmxkKF9zcmMsIDApOwot ICAgIERVUDJfQVJHMihfX2xhc3hfeHZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9zcmMsIHNyY19z dHJpZGVfMngsIHNyYzEsIHNyYzIpOwotICAgIHNyYzMgPSBfX2xhc3hfeHZsZHgoX3NyYywgc3Jj X3N0cmlkZV8zeCk7Ci0gICAgX3NyYyArPSBzcmNfc3RyaWRlXzR4OwotICAgIHNyYzQgPSBfX2xh c3hfeHZsZChfc3JjLCAwKTsKLSAgICBEVVAyX0FSRzIoX19sYXN4X3h2bGR4LCBfc3JjLCBzcmNf c3RyaWRlLCBfc3JjLCBzcmNfc3RyaWRlXzJ4LCBzcmM1LCBzcmM2KTsKLSAgICBzcmM3ID0gX19s YXN4X3h2bGR4KF9zcmMsIHNyY19zdHJpZGVfM3gpOwotICAgIF9zcmMgKz0gKDEgLSBzcmNfc3Ry aWRlXzR4KTsKLSAgICBzcmM4ID0gX19sYXN4X3h2bGQoX3NyYywgMCk7Ci0gICAgRFVQMl9BUkcy KF9fbGFzeF94dmxkeCwgX3NyYywgc3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlkZV8yeCwgc3Jj OSwgc3JjMTApOwotICAgIHNyYzExID0gX19sYXN4X3h2bGR4KF9zcmMsIHNyY19zdHJpZGVfM3gp OwotICAgIF9zcmMgKz0gc3JjX3N0cmlkZV80eDsKLSAgICBzcmMxMiA9IF9fbGFzeF94dmxkKF9z cmMsIDApOwotICAgIERVUDJfQVJHMihfX2xhc3hfeHZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9z cmMsIHNyY19zdHJpZGVfMngsCi0gICAgICAgICAgICAgIHNyYzEzLCBzcmMxNCk7Ci0gICAgc3Jj MTUgPSBfX2xhc3hfeHZsZHgoX3NyYywgc3JjX3N0cmlkZV8zeCk7Ci0KLSAgICBEVVA0X0FSRzIo X19sYXN4X3h2cGlja2V2X2QsIHNyYzEsIHNyYzAsIHNyYzMsIHNyYzIsIHNyYzUsIHNyYzQsIHNy YzcsCi0gICAgICAgICAgICAgIHNyYzYsIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMpOwotICAgIERV UDRfQVJHMihfX2xhc3hfeHZwaWNrZXZfZCwgc3JjOSwgc3JjOCwgc3JjMTEsIHNyYzEwLCBzcmMx Mywgc3JjMTIsIHNyYzE1LAotICAgICAgICAgICAgICBzcmMxNCwgc3JjNCwgc3JjNSwgc3JjNiwg c3JjNyk7Ci0gICAgRFVQNF9BUkczKF9fbGFzeF94dnBlcm1pX3EsIHNyYzEsIHNyYzAsIDB4MjAs IHNyYzMsIHNyYzIsIDB4MjAsIHNyYzUsIHNyYzQsCi0gICAgICAgICAgICAgIDB4MjAsIHNyYzcs IHNyYzYsIDB4MjAsIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMpOwotICAgIHNyYzAgPSBfX2xhc3hf eHZhdmdfYnUoc3JjMCwgc3JjMik7Ci0gICAgc3JjMSA9IF9fbGFzeF94dmF2Z19idShzcmMxLCBz cmMzKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzAsIGRzdCwgMCwgMCk7Ci0gICAgX19sYXN4 X3h2c3RlbG1fZChzcmMwLCBkc3QgKyBkc3Rfc3RyaWRlLCAwLCAxKTsKLSAgICBfX2xhc3hfeHZz dGVsbV9kKHNyYzAsIGRzdCArIGRzdF9zdHJpZGVfMngsIDAsIDIpOwotICAgIF9fbGFzeF94dnN0 ZWxtX2Qoc3JjMCwgZHN0ICsgZHN0X3N0cmlkZV8zeCwgMCwgMyk7Ci0gICAgZHN0ICs9IGRzdF9z dHJpZGVfNHg7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmMxLCBkc3QsIDAsIDApOwotICAgIF9f bGFzeF94dnN0ZWxtX2Qoc3JjMSwgZHN0ICsgZHN0X3N0cmlkZSwgMCwgMSk7Ci0gICAgX19sYXN4 X3h2c3RlbG1fZChzcmMxLCBkc3QgKyBkc3Rfc3RyaWRlXzJ4LCAwLCAyKTsKLSAgICBfX2xhc3hf eHZzdGVsbV9kKHNyYzEsIGRzdCArIGRzdF9zdHJpZGVfM3gsIDAsIDMpOwotfQotCi1zdGF0aWMg dm9pZCBjb21tb25faHpfYmlsX25vX3JuZF80eDhfbGFzeChjb25zdCB1aW50OF90ICpzcmMsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHNyY19zdHJp ZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpk c3QsIGludDMyX3QgZHN0X3N0cmlkZSkKLXsKLSAgICBfX20yNTZpIHNyYzAsIHNyYzEsIHNyYzIs IHNyYzMsIHNyYzQsIHNyYzUsIHNyYzYsIHNyYzc7Ci0gICAgaW50MzJfdCBzcmNfc3RyaWRlXzJ4 ID0gc3JjX3N0cmlkZSA8PCAxOwotICAgIGludDMyX3Qgc3JjX3N0cmlkZV8zeCA9IHNyY19zdHJp ZGVfMnggKyBzcmNfc3RyaWRlOwotICAgIGludDMyX3QgZHN0X3N0cmlkZV8yeCA9IGRzdF9zdHJp ZGUgPDwgMTsKLSAgICBpbnQzMl90IGRzdF9zdHJpZGVfM3ggPSBkc3Rfc3RyaWRlXzJ4ICsgZHN0 X3N0cmlkZTsKLSAgICB1aW50OF90ICpfc3JjID0gKHVpbnQ4X3QqKXNyYzsKLQotICAgIHNyYzAg PSBfX2xhc3hfeHZsZChfc3JjLCAwKTsKLSAgICBEVVAyX0FSRzIoX19sYXN4X3h2bGR4LCBfc3Jj LCBzcmNfc3RyaWRlLCBfc3JjLCBzcmNfc3RyaWRlXzJ4LCBzcmMxLCBzcmMyKTsKLSAgICBzcmMz ID0gX19sYXN4X3h2bGR4KF9zcmMsIHNyY19zdHJpZGVfM3gpOwotICAgIF9zcmMgKz0gMTsKLSAg ICBzcmM0ID0gX19sYXN4X3h2bGQoX3NyYywgMCk7Ci0gICAgRFVQMl9BUkcyKF9fbGFzeF94dmxk eCwgX3NyYywgc3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlkZV8yeCwgc3JjNSwgc3JjNik7Ci0g ICAgc3JjNyA9IF9fbGFzeF94dmxkeChfc3JjLCBzcmNfc3RyaWRlXzN4KTsKLSAgICBEVVA0X0FS RzIoX19sYXN4X3h2cGlja2V2X2QsIHNyYzEsIHNyYzAsIHNyYzMsIHNyYzIsIHNyYzUsIHNyYzQs IHNyYzcsIHNyYzYsCi0gICAgICAgICAgICAgIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMpOwotICAg IERVUDJfQVJHMyhfX2xhc3hfeHZwZXJtaV9xLCBzcmMxLCBzcmMwLCAweDIwLCBzcmMzLCBzcmMy LCAweDIwLCBzcmMwLCBzcmMxKTsKLSAgICBzcmMwID0gX19sYXN4X3h2YXZnX2J1KHNyYzAsIHNy YzEpOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMCwgZHN0LCAwLCAwKTsKLSAgICBfX2xhc3hf eHZzdGVsbV9kKHNyYzAsIGRzdCArIGRzdF9zdHJpZGUsIDAsIDEpOwotICAgIF9fbGFzeF94dnN0 ZWxtX2Qoc3JjMCwgZHN0ICsgZHN0X3N0cmlkZV8yeCwgMCwgMik7Ci0gICAgX19sYXN4X3h2c3Rl bG1fZChzcmMwLCBkc3QgKyBkc3Rfc3RyaWRlXzN4LCAwLCAzKTsKLX0KLQorLyoqCisgKiBGb3Ig d2lkdGhzIDgsIGggaXMgYWx3YXlzIGEgcG9zaXRpdmUgbXVsdGlwbGUgb2YgNC4KKyAqIFRoZSBm dW5jdGlvbiBwcm9jZXNzZXMgNCByb3dzIHBlciBpdGVyYXRpb24uCisgKi8KIHZvaWQgZmZfcHV0 X25vX3JuZF9waXhlbHM4X3gyXzhfbGFzeCh1aW50OF90ICpibG9jaywgY29uc3QgdWludDhfdCAq cGl4ZWxzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBs aW5lX3NpemUsIGludCBoKQogewotICAgIGlmIChoID09IDgpIHsKLSAgICAgICAgY29tbW9uX2h6 X2JpbF9ub19ybmRfOHg4X2xhc3gocGl4ZWxzLCBsaW5lX3NpemUsIGJsb2NrLCBsaW5lX3NpemUp OwotICAgIH0gZWxzZSBpZiAoaCA9PSA0KSB7Ci0gICAgICAgIGNvbW1vbl9oel9iaWxfbm9fcm5k XzR4OF9sYXN4KHBpeGVscywgbGluZV9zaXplLCBibG9jaywgbGluZV9zaXplKTsKKyAgICBfX20y NTZpIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMsIHNyYzQsIHNyYzUsIHNyYzYsIHNyYzc7CisgICAg aW50MzJfdCBzdHJpZGUyeCA9IGxpbmVfc2l6ZSA8PCAxOworICAgIGludDMyX3Qgc3RyaWRlM3gg PSBzdHJpZGUyeCArIGxpbmVfc2l6ZTsKKyAgICBpbnQzMl90IHN0cmlkZTR4ID0gbGluZV9zaXpl IDw8IDI7CisgICAgdWludDhfdCAqX3NyYyA9ICh1aW50OF90KilwaXhlbHMgKyAxOworICAgIGlu dDMyX3QgaF80ID0gaCA+PiAyOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBoXzQ7IGkrKykg eworICAgICAgICBzcmMwID0gX19sYXN4X3h2bGQocGl4ZWxzLCAwKTsKKyAgICAgICAgRFVQMl9B UkcyKF9fbGFzeF94dmxkeCwgcGl4ZWxzLCBsaW5lX3NpemUsIHBpeGVscywgc3RyaWRlMngsIHNy YzEsIHNyYzIpOworICAgICAgICBzcmMzID0gX19sYXN4X3h2bGR4KHBpeGVscywgc3RyaWRlM3gp OworICAgICAgICBzcmM0ID0gX19sYXN4X3h2bGQoX3NyYywgMCk7CisgICAgICAgIERVUDJfQVJH MihfX2xhc3hfeHZsZHgsIF9zcmMsIGxpbmVfc2l6ZSwgX3NyYywgc3RyaWRlMngsIHNyYzUsIHNy YzYpOworICAgICAgICBzcmM3ID0gX19sYXN4X3h2bGR4KF9zcmMsIHN0cmlkZTN4KTsKKyAgICAg ICAgRFVQNF9BUkcyKF9fbGFzeF94dnBpY2tldl9kLCBzcmMxLCBzcmMwLCBzcmMzLCBzcmMyLCBz cmM1LCBzcmM0LCBzcmM3LCBzcmM2LAorICAgICAgICAgICAgICAgICAgc3JjMCwgc3JjMSwgc3Jj Miwgc3JjMyk7CisgICAgICAgIERVUDJfQVJHMyhfX2xhc3hfeHZwZXJtaV9xLCBzcmMxLCBzcmMw LCAweDIwLCBzcmMzLCBzcmMyLCAweDIwLCBzcmMwLCBzcmMxKTsKKyAgICAgICAgc3JjMCA9IF9f bGFzeF94dmF2Z19idShzcmMwLCBzcmMxKTsKKyAgICAgICAgX19sYXN4X3h2c3RlbG1fZChzcmMw LCBibG9jaywgMCwgMCk7CisgICAgICAgIGJsb2NrICs9IGxpbmVfc2l6ZTsKKyAgICAgICAgX19s YXN4X3h2c3RlbG1fZChzcmMwLCBibG9jaywgMCwgMSk7CisgICAgICAgIGJsb2NrICs9IGxpbmVf c2l6ZTsKKyAgICAgICAgX19sYXN4X3h2c3RlbG1fZChzcmMwLCBibG9jaywgMCwgMik7CisgICAg ICAgIGJsb2NrICs9IGxpbmVfc2l6ZTsKKyAgICAgICAgX19sYXN4X3h2c3RlbG1fZChzcmMwLCBi bG9jaywgMCwgMyk7CisgICAgICAgIGJsb2NrICs9IGxpbmVfc2l6ZTsKKworICAgICAgICBwaXhl bHMgKz0gc3RyaWRlNHg7CisgICAgICAgIF9zcmMgKz0gc3RyaWRlNHg7CiAgICAgfQogfQogCi1z dGF0aWMgdm9pZCBjb21tb25fdnRfYmlsX25vX3JuZF84eDhfbGFzeChjb25zdCB1aW50OF90ICpz cmMsIGludDMyX3Qgc3JjX3N0cmlkZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQ4X3QgKmRzdCwgaW50MzJfdCBkc3Rfc3RyaWRlKQotewotICAgIF9fbTI1 Nmkgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMywgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNywgc3JjODsK LSAgICBpbnQzMl90IHNyY19zdHJpZGVfMnggPSBzcmNfc3RyaWRlIDw8IDE7Ci0gICAgaW50MzJf dCBzcmNfc3RyaWRlXzR4ID0gc3JjX3N0cmlkZSA8PCAyOwotICAgIGludDMyX3QgZHN0X3N0cmlk ZV8yeCA9IGRzdF9zdHJpZGUgPDwgMTsKLSAgICBpbnQzMl90IGRzdF9zdHJpZGVfNHggPSBkc3Rf c3RyaWRlIDw8IDI7Ci0gICAgaW50MzJfdCBkc3Rfc3RyaWRlXzN4ID0gZHN0X3N0cmlkZV8yeCAr IGRzdF9zdHJpZGU7Ci0gICAgaW50MzJfdCBzcmNfc3RyaWRlXzN4ID0gc3JjX3N0cmlkZV8yeCAr IHNyY19zdHJpZGU7Ci0gICAgdWludDhfdCogX3NyYyA9ICh1aW50OF90KilzcmM7Ci0KLSAgICBz cmMwID0gX19sYXN4X3h2bGQoX3NyYywgMCk7Ci0gICAgRFVQMl9BUkcyKF9fbGFzeF94dmxkeCwg X3NyYywgc3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlkZV8yeCwgc3JjMSwgc3JjMik7Ci0gICAg c3JjMyA9IF9fbGFzeF94dmxkeChfc3JjLCBzcmNfc3RyaWRlXzN4KTsKLSAgICBfc3JjICs9IHNy Y19zdHJpZGVfNHg7Ci0gICAgc3JjNCA9IF9fbGFzeF94dmxkKF9zcmMsIDApOwotICAgIERVUDJf QVJHMihfX2xhc3hfeHZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9zcmMsIHNyY19zdHJpZGVfMngs IHNyYzUsIHNyYzYpOwotICAgIHNyYzcgPSBfX2xhc3hfeHZsZHgoX3NyYywgc3JjX3N0cmlkZV8z eCk7Ci0gICAgX3NyYyArPSBzcmNfc3RyaWRlXzR4OwotICAgIHNyYzggPSBfX2xhc3hfeHZsZChf c3JjLCAwKTsKLQotICAgIERVUDRfQVJHMihfX2xhc3hfeHZwaWNrZXZfZCwgc3JjMSwgc3JjMCwg c3JjMiwgc3JjMSwgc3JjMywgc3JjMiwgc3JjNCwgc3JjMywKLSAgICAgICAgICAgICAgc3JjMCwg c3JjMSwgc3JjMiwgc3JjMyk7Ci0gICAgRFVQNF9BUkcyKF9fbGFzeF94dnBpY2tldl9kLCBzcmM1 LCBzcmM0LCBzcmM2LCBzcmM1LCBzcmM3LCBzcmM2LCBzcmM4LCBzcmM3LAotICAgICAgICAgICAg ICBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3KTsKLSAgICBEVVA0X0FSRzMoX19sYXN4X3h2cGVybWlf cSwgc3JjMiwgc3JjMCwgMHgyMCwgc3JjMywgc3JjMSwgMHgyMCwgc3JjNiwgc3JjNCwKLSAgICAg ICAgICAgICAgMHgyMCwgc3JjNywgc3JjNSwgMHgyMCwgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7 Ci0gICAgc3JjMCA9IF9fbGFzeF94dmF2Z19idShzcmMwLCBzcmMxKTsKLSAgICBzcmMxID0gX19s YXN4X3h2YXZnX2J1KHNyYzIsIHNyYzMpOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMCwgZHN0 LCAwLCAwKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzAsIGRzdCArIGRzdF9zdHJpZGUsIDAs IDEpOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMCwgZHN0ICsgZHN0X3N0cmlkZV8yeCwgMCwg Mik7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmMwLCBkc3QgKyBkc3Rfc3RyaWRlXzN4LCAwLCAz KTsKLSAgICBkc3QgKz0gZHN0X3N0cmlkZV80eDsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzEs IGRzdCwgMCwgMCk7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmMxLCBkc3QgKyBkc3Rfc3RyaWRl LCAwLCAxKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzEsIGRzdCArIGRzdF9zdHJpZGVfMngs IDAsIDIpOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMSwgZHN0ICsgZHN0X3N0cmlkZV8zeCwg MCwgMyk7Ci19Ci0KLXN0YXRpYyB2b2lkIGNvbW1vbl92dF9iaWxfbm9fcm5kXzR4OF9sYXN4KGNv bnN0IHVpbnQ4X3QgKnNyYywgaW50MzJfdCBzcmNfc3RyaWRlLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqZHN0LCBpbnQzMl90IGRzdF9zdHJpZGUp Ci17Ci0gICAgX19tMjU2aSBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBzcmM0OwotICAgIGludDMy X3Qgc3JjX3N0cmlkZV8yeCA9IHNyY19zdHJpZGUgPDwgMTsKLSAgICBpbnQzMl90IHNyY19zdHJp ZGVfNHggPSBzcmNfc3RyaWRlIDw8IDI7Ci0gICAgaW50MzJfdCBkc3Rfc3RyaWRlXzJ4ID0gZHN0 X3N0cmlkZSA8PCAxOwotICAgIGludDMyX3QgZHN0X3N0cmlkZV8zeCA9IGRzdF9zdHJpZGVfMngg KyBkc3Rfc3RyaWRlOwotICAgIGludDMyX3Qgc3JjX3N0cmlkZV8zeCA9IHNyY19zdHJpZGVfMngg KyBzcmNfc3RyaWRlOwotICAgIHVpbnQ4X3QqIF9zcmMgPSAodWludDhfdCopc3JjOwotCi0gICAg c3JjMCA9IF9fbGFzeF94dmxkKF9zcmMsIDApOwotICAgIERVUDRfQVJHMihfX2xhc3hfeHZsZHgs IF9zcmMsIHNyY19zdHJpZGUsIF9zcmMsIHNyY19zdHJpZGVfMngsIF9zcmMsCi0gICAgICAgICAg ICAgIHNyY19zdHJpZGVfM3gsIF9zcmMsIHNyY19zdHJpZGVfNHgsIHNyYzEsIHNyYzIsIHNyYzMs IHNyYzQpOwotICAgIERVUDRfQVJHMihfX2xhc3hfeHZwaWNrZXZfZCwgc3JjMSwgc3JjMCwgc3Jj Miwgc3JjMSwgc3JjMywgc3JjMiwgc3JjNCwgc3JjMywKLSAgICAgICAgICAgICAgc3JjMCwgc3Jj MSwgc3JjMiwgc3JjMyk7Ci0gICAgRFVQMl9BUkczKF9fbGFzeF94dnBlcm1pX3EsIHNyYzIsIHNy YzAsIDB4MjAsIHNyYzMsIHNyYzEsIDB4MjAsIHNyYzAsIHNyYzEpOwotICAgIHNyYzAgPSBfX2xh c3hfeHZhdmdfYnUoc3JjMCwgc3JjMSk7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmMwLCBkc3Qs IDAsIDApOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3JjMCwgZHN0ICsgZHN0X3N0cmlkZSwgMCwg MSk7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzcmMwLCBkc3QgKyBkc3Rfc3RyaWRlXzJ4LCAwLCAy KTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzAsIGRzdCArIGRzdF9zdHJpZGVfM3gsIDAsIDMp OwotfQotCisvKioKKyAqIEZvciB3aWR0aHMgOCwgaCBpcyBhbHdheXMgYSBwb3NpdGl2ZSBtdWx0 aXBsZSBvZiA0LgorICogVGhlIGZ1bmN0aW9uIHByb2Nlc3NlcyA0IHJvd3MgcGVyIGl0ZXJhdGlv bi4KKyAqLwogdm9pZCBmZl9wdXRfbm9fcm5kX3BpeGVsczhfeTJfOF9sYXN4KHVpbnQ4X3QgKmJs b2NrLCBjb25zdCB1aW50OF90ICpwaXhlbHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcHRyZGlmZl90IGxpbmVfc2l6ZSwgaW50IGgpCiB7Ci0gICAgaWYgKGggPT0gOCkg ewotICAgICAgICBjb21tb25fdnRfYmlsX25vX3JuZF84eDhfbGFzeChwaXhlbHMsIGxpbmVfc2l6 ZSwgYmxvY2ssIGxpbmVfc2l6ZSk7Ci0gICAgfSBlbHNlIGlmIChoID09IDQpIHsKLSAgICAgICAg Y29tbW9uX3Z0X2JpbF9ub19ybmRfNHg4X2xhc3gocGl4ZWxzLCBsaW5lX3NpemUsIGJsb2NrLCBs aW5lX3NpemUpOwotICAgIH0KLX0KKyAgICBfX20yNTZpIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMs IHNyYzQ7CisgICAgaW50MzJfdCBzdHJpZGUyeCA9IGxpbmVfc2l6ZSA8PCAxOworICAgIGludDMy X3Qgc3RyaWRlNHggPSBsaW5lX3NpemUgPDwgMjsKKyAgICBpbnQzMl90IHN0cmlkZTN4ID0gc3Ry aWRlMnggKyBsaW5lX3NpemU7CisgICAgdWludDhfdCogX3NyYyA9ICh1aW50OF90KilwaXhlbHM7 CisgICAgaW50MzJfdCBoXzQgPSBoID4+IDI7CiAKLXN0YXRpYyB2b2lkIGNvbW1vbl9odl9iaWxf bm9fcm5kXzh4OF9sYXN4KGNvbnN0IHVpbnQ4X3QgKnNyYywgaW50MzJfdCBzcmNfc3RyaWRlLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqZHN0LCBp bnQzMl90IGRzdF9zdHJpZGUpCi17Ci0gICAgX19tMjU2aSBzcmMwLCBzcmMxLCBzcmMyLCBzcmMz LCBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3OwotICAgIF9fbTI1Nmkgc3JjOCwgc3JjOSwgc3JjMTAs IHNyYzExLCBzcmMxMiwgc3JjMTMsIHNyYzE0LCBzcmMxNSwgc3JjMTYsIHNyYzE3OwotICAgIF9f bTI1Nmkgc3VtMCwgc3VtMSwgc3VtMiwgc3VtMzsKLSAgICBpbnQzMl90IHNyY19zdHJpZGVfMngg PSBzcmNfc3RyaWRlIDw8IDE7Ci0gICAgaW50MzJfdCBzcmNfc3RyaWRlXzR4ID0gc3JjX3N0cmlk ZSA8PCAyOwotICAgIGludDMyX3QgZHN0X3N0cmlkZV8yeCA9IGRzdF9zdHJpZGUgPDwgMTsKLSAg ICBpbnQzMl90IGRzdF9zdHJpZGVfNHggPSBkc3Rfc3RyaWRlIDw8IDI7Ci0gICAgaW50MzJfdCBk c3Rfc3RyaWRlXzN4ID0gZHN0X3N0cmlkZV8yeCArIGRzdF9zdHJpZGU7Ci0gICAgaW50MzJfdCBz cmNfc3RyaWRlXzN4ID0gc3JjX3N0cmlkZV8yeCArIHNyY19zdHJpZGU7Ci0gICAgdWludDhfdCog X3NyYyA9ICh1aW50OF90KilzcmM7Ci0KLSAgICBzcmMwID0gX19sYXN4X3h2bGQoX3NyYywgMCk7 Ci0gICAgRFVQMl9BUkcyKF9fbGFzeF94dmxkeCwgX3NyYywgc3JjX3N0cmlkZSwgX3NyYywgc3Jj X3N0cmlkZV8yeCwgc3JjMSwgc3JjMik7Ci0gICAgc3JjMyA9IF9fbGFzeF94dmxkeChfc3JjLCBz cmNfc3RyaWRlXzN4KTsKLSAgICBfc3JjICs9IHNyY19zdHJpZGVfNHg7Ci0gICAgc3JjNCA9IF9f bGFzeF94dmxkKF9zcmMsIDApOwotICAgIERVUDJfQVJHMihfX2xhc3hfeHZsZHgsIF9zcmMsIHNy Y19zdHJpZGUsIF9zcmMsIHNyY19zdHJpZGVfMngsIHNyYzUsIHNyYzYpOwotICAgIHNyYzcgPSBf X2xhc3hfeHZsZHgoX3NyYywgc3JjX3N0cmlkZV8zeCk7Ci0gICAgX3NyYyArPSAoMSAtIHNyY19z dHJpZGVfNHgpOwotICAgIHNyYzkgPSBfX2xhc3hfeHZsZChfc3JjLCAwKTsKLSAgICBEVVAyX0FS RzIoX19sYXN4X3h2bGR4LCBfc3JjLCBzcmNfc3RyaWRlLCBfc3JjLCBzcmNfc3RyaWRlXzJ4LAot ICAgICAgICAgICAgICBzcmMxMCwgc3JjMTEpOwotICAgIHNyYzEyID0gX19sYXN4X3h2bGR4KF9z cmMsIHNyY19zdHJpZGVfM3gpOwotICAgIF9zcmMgKz0gc3JjX3N0cmlkZV80eDsKLSAgICBzcmMx MyA9IF9fbGFzeF94dmxkKF9zcmMsIDApOwotICAgIERVUDJfQVJHMihfX2xhc3hfeHZsZHgsIF9z cmMsIHNyY19zdHJpZGUsIF9zcmMsIHNyY19zdHJpZGVfMngsCi0gICAgICAgICAgICAgIHNyYzE0 LCBzcmMxNSk7Ci0gICAgc3JjMTYgPSBfX2xhc3hfeHZsZHgoX3NyYywgc3JjX3N0cmlkZV8zeCk7 Ci0gICAgX3NyYyArPSAoc3JjX3N0cmlkZV80eCAtIDEpOwotICAgIERVUDJfQVJHMihfX2xhc3hf eHZsZCwgX3NyYywgMCwgX3NyYywgMSwgc3JjOCwgc3JjMTcpOwotCi0gICAgRFVQNF9BUkcyKF9f bGFzeF94dmlsdmxfYiwgc3JjOSwgc3JjMCwgc3JjMTAsIHNyYzEsIHNyYzExLCBzcmMyLCBzcmMx Miwgc3JjMywKLSAgICAgICAgICAgICAgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Ci0gICAgRFVQ NF9BUkcyKF9fbGFzeF94dmlsdmxfYiwgc3JjMTMsIHNyYzQsIHNyYzE0LCBzcmM1LCBzcmMxNSwg c3JjNiwgc3JjMTYsIHNyYzcsCi0gICAgICAgICAgICAgIHNyYzQsIHNyYzUsIHNyYzYsIHNyYzcp OwotICAgIHNyYzggPSBfX2xhc3hfeHZpbHZsX2Ioc3JjMTcsIHNyYzgpOwotICAgIERVUDRfQVJH MyhfX2xhc3hfeHZwZXJtaV9xLCBzcmMxLCBzcmMwLCAweDIwLCBzcmMyLCBzcmMxLCAweDIwLCBz cmMzLCBzcmMyLAotICAgICAgICAgICAgICAweDIwLCBzcmM0LCBzcmMzLCAweDIwLCBzcmMwLCBz cmMxLCBzcmMyLCBzcmMzKTsKLSAgICBEVVA0X0FSRzMoX19sYXN4X3h2cGVybWlfcSwgc3JjNSwg c3JjNCwgMHgyMCwgc3JjNiwgc3JjNSwgMHgyMCwgc3JjNywgc3JjNiwKLSAgICAgICAgICAgICAg MHgyMCwgc3JjOCwgc3JjNywgMHgyMCwgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNyk7Ci0gICAgRFVQ NF9BUkcyKF9fbGFzeF94dmhhZGR3X2h1X2J1LCBzcmMwLCBzcmMwLCBzcmMxLCBzcmMxLCBzcmMy LCBzcmMyLAotICAgICAgICAgICAgICBzcmMzLCBzcmMzLCBzcmMwLCBzcmMxLCBzcmMyLCBzcmMz KTsKLSAgICBEVVA0X0FSRzIoX19sYXN4X3h2aGFkZHdfaHVfYnUsIHNyYzQsIHNyYzQsIHNyYzUs IHNyYzUsIHNyYzYsIHNyYzYsCi0gICAgICAgICAgICAgIHNyYzcsIHNyYzcsIHNyYzQsIHNyYzUs IHNyYzYsIHNyYzcpOwotICAgIERVUDRfQVJHMihfX2xhc3hfeHZhZGRfaCwgc3JjMCwgc3JjMSwg c3JjMiwgc3JjMywgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNywKLSAgICAgICAgICAgICAgc3VtMCwg c3VtMSwgc3VtMiwgc3VtMyk7Ci0gICAgRFVQNF9BUkcyKF9fbGFzeF94dmFkZGlfaHUsIHN1bTAs IDEsIHN1bTEsIDEsIHN1bTIsIDEsIHN1bTMsIDEsCi0gICAgICAgICAgICAgIHN1bTAsIHN1bTEs IHN1bTIsIHN1bTMpOwotICAgIERVUDJfQVJHMyhfX2xhc3hfeHZzcmFuaV9iX2gsIHN1bTEsIHN1 bTAsIDIsIHN1bTMsIHN1bTIsIDIsIHN1bTAsIHN1bTEpOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qo c3VtMCwgZHN0LCAwLCAwKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHN1bTAsIGRzdCArIGRzdF9z dHJpZGUsIDAsIDIpOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3VtMCwgZHN0ICsgZHN0X3N0cmlk ZV8yeCwgMCwgMSk7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzdW0wLCBkc3QgKyBkc3Rfc3RyaWRl XzN4LCAwLCAzKTsKLSAgICBkc3QgKz0gZHN0X3N0cmlkZV80eDsKLSAgICBfX2xhc3hfeHZzdGVs bV9kKHN1bTEsIGRzdCwgMCwgMCk7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzdW0xLCBkc3QgKyBk c3Rfc3RyaWRlLCAwLCAyKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHN1bTEsIGRzdCArIGRzdF9z dHJpZGVfMngsIDAsIDEpOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3VtMSwgZHN0ICsgZHN0X3N0 cmlkZV8zeCwgMCwgMyk7Ci19Ci0KLXN0YXRpYyB2b2lkIGNvbW1vbl9odl9iaWxfbm9fcm5kXzR4 OF9sYXN4KGNvbnN0IHVpbnQ4X3QgKnNyYywgaW50MzJfdCBzcmNfc3RyaWRlLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqZHN0LCBpbnQzMl90IGRz dF9zdHJpZGUpCi17Ci0gICAgX19tMjU2aSBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBzcmM0LCBz cmM1LCBzcmM2LCBzcmM3OwotICAgIF9fbTI1Nmkgc3JjOCwgc3JjOSwgc3VtMCwgc3VtMTsKLSAg ICBpbnQzMl90IHNyY19zdHJpZGVfMnggPSBzcmNfc3RyaWRlIDw8IDE7Ci0gICAgaW50MzJfdCBz cmNfc3RyaWRlXzR4ID0gc3JjX3N0cmlkZSA8PCAyOwotICAgIGludDMyX3QgZHN0X3N0cmlkZV8y eCA9IGRzdF9zdHJpZGUgPDwgMTsKLSAgICBpbnQzMl90IGRzdF9zdHJpZGVfM3ggPSBkc3Rfc3Ry aWRlXzJ4ICsgZHN0X3N0cmlkZTsKLSAgICBpbnQzMl90IHNyY19zdHJpZGVfM3ggPSBzcmNfc3Ry aWRlXzJ4ICsgc3JjX3N0cmlkZTsKLSAgICB1aW50OF90ICpfc3JjID0gKHVpbnQ4X3QqKXNyYzsK LQotICAgIHNyYzAgPSBfX2xhc3hfeHZsZChfc3JjLCAwKTsKLSAgICBEVVAyX0FSRzIoX19sYXN4 X3h2bGR4LCBfc3JjLCBzcmNfc3RyaWRlLCBfc3JjLCBzcmNfc3RyaWRlXzJ4LCBzcmMxLCBzcmMy KTsKLSAgICBzcmMzID0gX19sYXN4X3h2bGR4KF9zcmMsIHNyY19zdHJpZGVfM3gpOwotICAgIF9z cmMgKz0gMTsKLSAgICBzcmM1ID0gX19sYXN4X3h2bGQoX3NyYywgMCk7Ci0gICAgRFVQMl9BUkcy KF9fbGFzeF94dmxkeCwgX3NyYywgc3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlkZV8yeCwgc3Jj Niwgc3JjNyk7Ci0gICAgc3JjOCA9IF9fbGFzeF94dmxkeChfc3JjLCBzcmNfc3RyaWRlXzN4KTsK LSAgICBfc3JjICs9IChzcmNfc3RyaWRlXzR4IC0gMSk7Ci0gICAgRFVQMl9BUkcyKF9fbGFzeF94 dmxkLCBfc3JjLCAwLCBfc3JjLCAxLCBzcmM0LCBzcmM5KTsKLQotICAgIERVUDRfQVJHMihfX2xh c3hfeHZpbHZsX2IsIHNyYzUsIHNyYzAsIHNyYzYsIHNyYzEsIHNyYzcsIHNyYzIsIHNyYzgsIHNy YzMsCi0gICAgICAgICAgICAgIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMpOwotICAgIHNyYzQgPSBf X2xhc3hfeHZpbHZsX2Ioc3JjOSwgc3JjNCk7Ci0gICAgRFVQNF9BUkczKF9fbGFzeF94dnBlcm1p X3EsIHNyYzEsIHNyYzAsIDB4MjAsIHNyYzIsIHNyYzEsIDB4MjAsIHNyYzMsIHNyYzIsCi0gICAg ICAgICAgICAgIDB4MjAsIHNyYzQsIHNyYzMsIDB4MjAsIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMp OwotICAgIERVUDRfQVJHMihfX2xhc3hfeHZoYWRkd19odV9idSwgc3JjMCwgc3JjMCwgc3JjMSwg c3JjMSwgc3JjMiwgc3JjMiwKLSAgICAgICAgICAgICAgc3JjMywgc3JjMywgc3JjMCwgc3JjMSwg c3JjMiwgc3JjMyk7Ci0gICAgRFVQMl9BUkcyKF9fbGFzeF94dmFkZF9oLCBzcmMwLCBzcmMxLCBz cmMyLCBzcmMzLCBzdW0wLCBzdW0xKTsKLSAgICBzdW0wID0gX19sYXN4X3h2YWRkaV9odShzdW0w LCAxKTsKLSAgICBzdW0xID0gX19sYXN4X3h2YWRkaV9odShzdW0xLCAxKTsKLSAgICBzdW0wID0g X19sYXN4X3h2c3JhbmlfYl9oKHN1bTEsIHN1bTAsIDIpOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qo c3VtMCwgZHN0LCAwLCAwKTsKLSAgICBfX2xhc3hfeHZzdGVsbV9kKHN1bTAsIGRzdCArIGRzdF9z dHJpZGUsIDAsIDIpOwotICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3VtMCwgZHN0ICsgZHN0X3N0cmlk ZV8yeCwgMCwgMSk7Ci0gICAgX19sYXN4X3h2c3RlbG1fZChzdW0wLCBkc3QgKyBkc3Rfc3RyaWRl XzN4LCAwLCAzKTsKLX0KLQotdm9pZCBmZl9wdXRfbm9fcm5kX3BpeGVsczhfeHkyXzhfbGFzeCh1 aW50OF90ICpibG9jaywgY29uc3QgdWludDhfdCAqcGl4ZWxzLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwdHJkaWZmX3QgbGluZV9zaXplLCBpbnQgaCkKLXsKLSAgICBp ZiAoaCA9PSA4KSB7Ci0gICAgICAgIGNvbW1vbl9odl9iaWxfbm9fcm5kXzh4OF9sYXN4KHBpeGVs cywgbGluZV9zaXplLCBibG9jaywgbGluZV9zaXplKTsKLSAgICB9IGVsc2UgaWYgKGggPT0gNCkg ewotICAgICAgICBjb21tb25faHZfYmlsX25vX3JuZF80eDhfbGFzeChwaXhlbHMsIGxpbmVfc2l6 ZSwgYmxvY2ssIGxpbmVfc2l6ZSk7Ci0gICAgfQotfQotCi1zdGF0aWMgdm9pZCBjb21tb25faHZf YmlsXzE2d19sYXN4KGNvbnN0IHVpbnQ4X3QgKnNyYywgaW50MzJfdCBzcmNfc3RyaWRlLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpkc3QsIGludDMyX3QgZHN0 X3N0cmlkZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBoZWln aHQpCi17Ci0gICAgX19tMjU2aSBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBzcmM0LCBzcmM1LCBz cmM2LCBzcmM3LCBzcmM4LCBzcmM5OwotICAgIF9fbTI1Nmkgc3JjMTAsIHNyYzExLCBzcmMxMiwg c3JjMTMsIHNyYzE0LCBzcmMxNSwgc3JjMTYsIHNyYzE3OwotICAgIF9fbTI1Nmkgc3VtMCwgc3Vt MSwgc3VtMiwgc3VtMywgc3VtNCwgc3VtNSwgc3VtNiwgc3VtNzsKLSAgICB1aW50OF90IGxvb3Bf Y250OwotICAgIGludDMyX3Qgc3JjX3N0cmlkZV8yeCA9IHNyY19zdHJpZGUgPDwgMTsKLSAgICBp bnQzMl90IHNyY19zdHJpZGVfNHggPSBzcmNfc3RyaWRlIDw8IDI7Ci0gICAgaW50MzJfdCBzcmNf c3RyaWRlXzN4ID0gc3JjX3N0cmlkZV8yeCArIHNyY19zdHJpZGU7Ci0gICAgdWludDhfdCogX3Ny YyA9ICh1aW50OF90KilzcmM7Ci0KLSAgICBmb3IgKGxvb3BfY250ID0gKGhlaWdodCA+PiAzKTsg bG9vcF9jbnQtLTspIHsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGhfNDsgaSsrKSB7CiAgICAg ICAgIHNyYzAgPSBfX2xhc3hfeHZsZChfc3JjLCAwKTsKLSAgICAgICAgRFVQMl9BUkcyKF9fbGFz eF94dmxkeCwgX3NyYywgc3JjX3N0cmlkZSwgX3NyYywgc3JjX3N0cmlkZV8yeCwgc3JjMSwgc3Jj Mik7Ci0gICAgICAgIHNyYzMgPSBfX2xhc3hfeHZsZHgoX3NyYywgc3JjX3N0cmlkZV8zeCk7Ci0g ICAgICAgIF9zcmMgKz0gc3JjX3N0cmlkZV80eDsKLSAgICAgICAgc3JjNCA9IF9fbGFzeF94dmxk KF9zcmMsIDApOwotICAgICAgICBEVVAyX0FSRzIoX19sYXN4X3h2bGR4LCBfc3JjLCBzcmNfc3Ry aWRlLCBfc3JjLCBzcmNfc3RyaWRlXzJ4LCBzcmM1LCBzcmM2KTsKLSAgICAgICAgc3JjNyA9IF9f bGFzeF94dmxkeChfc3JjLCBzcmNfc3RyaWRlXzN4KTsKLSAgICAgICAgX3NyYyArPSAoMSAtIHNy Y19zdHJpZGVfNHgpOwotICAgICAgICBzcmM5ID0gX19sYXN4X3h2bGQoX3NyYywgMCk7Ci0gICAg ICAgIERVUDJfQVJHMihfX2xhc3hfeHZsZHgsIF9zcmMsIHNyY19zdHJpZGUsIF9zcmMsIHNyY19z dHJpZGVfMngsCi0gICAgICAgICAgICAgICAgICBzcmMxMCwgc3JjMTEpOwotICAgICAgICBzcmMx MiA9IF9fbGFzeF94dmxkeChfc3JjLCBzcmNfc3RyaWRlXzN4KTsKLSAgICAgICAgX3NyYyArPSBz cmNfc3RyaWRlXzR4OwotICAgICAgICBzcmMxMyA9IF9fbGFzeF94dmxkKF9zcmMsIDApOwotICAg ICAgICBEVVAyX0FSRzIoX19sYXN4X3h2bGR4LCBfc3JjLCBzcmNfc3RyaWRlLCBfc3JjLCBzcmNf c3RyaWRlXzJ4LAotICAgICAgICAgICAgICAgICAgc3JjMTQsIHNyYzE1KTsKLSAgICAgICAgc3Jj MTYgPSBfX2xhc3hfeHZsZHgoX3NyYywgc3JjX3N0cmlkZV8zeCk7Ci0gICAgICAgIF9zcmMgKz0g KHNyY19zdHJpZGVfNHggLSAxKTsKLSAgICAgICAgRFVQMl9BUkcyKF9fbGFzeF94dmxkLCBfc3Jj LCAwLCBfc3JjLCAxLCBzcmM4LCBzcmMxNyk7CisgICAgICAgIERVUDRfQVJHMihfX2xhc3hfeHZs ZHgsIF9zcmMsIGxpbmVfc2l6ZSwgX3NyYywgc3RyaWRlMngsIF9zcmMsCisgICAgICAgICAgICAg ICAgICBzdHJpZGUzeCwgX3NyYywgc3RyaWRlNHgsIHNyYzEsIHNyYzIsIHNyYzMsIHNyYzQpOwor ICAgICAgICBEVVA0X0FSRzIoX19sYXN4X3h2cGlja2V2X2QsIHNyYzEsIHNyYzAsIHNyYzIsIHNy YzEsIHNyYzMsIHNyYzIsIHNyYzQsIHNyYzMsCisgICAgICAgICAgICAgICAgICBzcmMwLCBzcmMx LCBzcmMyLCBzcmMzKTsKKyAgICAgICAgRFVQMl9BUkczKF9fbGFzeF94dnBlcm1pX3EsIHNyYzIs IHNyYzAsIDB4MjAsIHNyYzMsIHNyYzEsIDB4MjAsIHNyYzAsIHNyYzEpOworICAgICAgICBzcmMw ID0gX19sYXN4X3h2YXZnX2J1KHNyYzAsIHNyYzEpOworICAgICAgICBfX2xhc3hfeHZzdGVsbV9k KHNyYzAsIGJsb2NrLCAwLCAwKTsKKyAgICAgICAgYmxvY2sgKz0gbGluZV9zaXplOworICAgICAg ICBfX2xhc3hfeHZzdGVsbV9kKHNyYzAsIGJsb2NrLCAwLCAxKTsKKyAgICAgICAgYmxvY2sgKz0g bGluZV9zaXplOworICAgICAgICBfX2xhc3hfeHZzdGVsbV9kKHNyYzAsIGJsb2NrLCAwLCAyKTsK KyAgICAgICAgYmxvY2sgKz0gbGluZV9zaXplOworICAgICAgICBfX2xhc3hfeHZzdGVsbV9kKHNy YzAsIGJsb2NrLCAwLCAzKTsKKyAgICAgICAgYmxvY2sgKz0gbGluZV9zaXplOwogCi0gICAgICAg IERVUDRfQVJHMyhfX2xhc3hfeHZwZXJtaV9xLCBzcmMwLCBzcmM0LCAweDAyLCBzcmMxLCBzcmM1 LCAweDAyLCBzcmMyLAotICAgICAgICAgICAgICAgICAgc3JjNiwgMHgwMiwgc3JjMywgc3JjNywg MHgwMiwgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMyk7Ci0gICAgICAgIERVUDRfQVJHMyhfX2xhc3hf eHZwZXJtaV9xLCBzcmM0LCBzcmM4LCAweDAyLCBzcmM5LCBzcmMxMywgMHgwMiwgc3JjMTAsCi0g ICAgICAgICAgICAgICAgICBzcmMxNCwgMHgwMiwgc3JjMTEsIHNyYzE1LCAweDAyLCBzcmM0LCBz cmM1LCBzcmM2LCBzcmM3KTsKLSAgICAgICAgRFVQMl9BUkczKF9fbGFzeF94dnBlcm1pX3EsIHNy YzEyLCBzcmMxNiwgMHgwMiwgc3JjMTMsIHNyYzE3LCAweDAyLAotICAgICAgICAgICAgICAgICAg IHNyYzgsIHNyYzkpOworICAgICAgICBfc3JjICs9IHN0cmlkZTR4OworICAgIH0KK30KIAotICAg ICAgICBEVVA0X0FSRzIoX19sYXN4X3h2aWx2bF9oLCBzcmM1LCBzcmMwLCBzcmM2LCBzcmMxLCBz cmM3LCBzcmMyLCBzcmM4LAotICAgICAgICAgICAgICAgICAgc3JjMywgc3VtMCwgc3VtMiwgc3Vt NCwgc3VtNik7Ci0gICAgICAgIERVUDRfQVJHMihfX2xhc3hfeHZpbHZoX2gsIHNyYzUsIHNyYzAs IHNyYzYsIHNyYzEsIHNyYzcsIHNyYzIsIHNyYzgsCi0gICAgICAgICAgICAgICAgICBzcmMzLCBz dW0xLCBzdW0zLCBzdW01LCBzdW03KTsKLSAgICAgICAgc3JjOCA9IF9fbGFzeF94dmlsdmxfaChz cmM5LCBzcmM0KTsKLSAgICAgICAgc3JjOSA9IF9fbGFzeF94dmlsdmhfaChzcmM5LCBzcmM0KTsK K3ZvaWQgZmZfcHV0X25vX3JuZF9waXhlbHM4X3h5Ml84X2xzeCh1aW50OF90ICpibG9jaywgY29u c3QgdWludDhfdCAqcGl4ZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHB0cmRpZmZfdCBsaW5lX3NpemUsIGludCBoKQoreworICAgIF9fbTEyOGkgc3JjMCwgc3JjMSwg c3JjMiwgc3JjMzsKKyAgICBfX20xMjhpIHN1bTAsIHN1bTEsIHN1bTI7CiAKLSAgICAgICAgRFVQ NF9BUkcyKF9fbGFzeF94dmhhZGR3X2h1X2J1LCBzdW0wLCBzdW0wLCBzdW0xLCBzdW0xLCBzdW0y LCBzdW0yLAotICAgICAgICAgICAgICAgICAgc3VtMywgc3VtMywgc3JjMCwgc3JjMSwgc3JjMiwg c3JjMyk7Ci0gICAgICAgIERVUDRfQVJHMihfX2xhc3hfeHZoYWRkd19odV9idSwgc3VtNCwgc3Vt NCwgc3VtNSwgc3VtNSwgc3VtNiwgc3VtNiwKLSAgICAgICAgICAgICAgICAgIHN1bTcsIHN1bTcs IHNyYzQsIHNyYzUsIHNyYzYsIHNyYzcpOwotICAgICAgICBEVVAyX0FSRzIoX19sYXN4X3h2aGFk ZHdfaHVfYnUsIHNyYzgsIHNyYzgsIHNyYzksIHNyYzksIHNyYzgsIHNyYzkpOworICAgIHNyYzAg PSBfX2xzeF92bGQocGl4ZWxzLCAwKTsKKyAgICBzcmMxID0gX19sc3hfdmxkKHBpeGVscywgMSk7 CisgICAgc3JjMiA9IF9fbHN4X3ZzbGx3aWxfaHVfYnUoc3JjMCwgMCk7CisgICAgc3JjMyA9IF9f bHN4X3ZzbGx3aWxfaHVfYnUoc3JjMSwgMCk7CisgICAgc3VtMCA9IF9fbHN4X3ZhZGRfaChzcmMy LCBzcmMzKTsKKyAgICBzdW0wID0gX19sc3hfdmFkZGlfaHUoc3VtMCwgMSk7CiAKLSAgICAgICAg RFVQNF9BUkcyKF9fbGFzeF94dmFkZF9oLCBzcmMwLCBzcmMyLCBzcmMxLCBzcmMzLCBzcmMyLCBz cmM0LCBzcmMzLAotICAgICAgICAgICAgICAgICAgc3JjNSwgc3VtMCwgc3VtMSwgc3VtMiwgc3Vt Myk7Ci0gICAgICAgIERVUDRfQVJHMihfX2xhc3hfeHZhZGRfaCwgc3JjNCwgc3JjNiwgc3JjNSwg c3JjNywgc3JjNiwgc3JjOCwgc3JjNywKLSAgICAgICAgICAgICAgICAgIHNyYzksIHN1bTQsIHN1 bTUsIHN1bTYsIHN1bTcpOwotICAgICAgICBEVVA0X0FSRzMoX19sYXN4X3h2c3Jhcm5pX2JfaCwg c3VtMSwgc3VtMCwgMiwgc3VtMywgc3VtMiwgMiwgc3VtNSwKLSAgICAgICAgICAgICAgICAgIHN1 bTQsIDIsIHN1bTcsIHN1bTYsIDIsIHN1bTAsIHN1bTEsIHN1bTIsIHN1bTMpOwotICAgICAgICBf X2xhc3hfeHZzdGVsbV9kKHN1bTAsIGRzdCwgMCwgMCk7Ci0gICAgICAgIF9fbGFzeF94dnN0ZWxt X2Qoc3VtMCwgZHN0LCA4LCAxKTsKLSAgICAgICAgZHN0ICs9IGRzdF9zdHJpZGU7Ci0gICAgICAg IF9fbGFzeF94dnN0ZWxtX2Qoc3VtMSwgZHN0LCAwLCAwKTsKLSAgICAgICAgX19sYXN4X3h2c3Rl bG1fZChzdW0xLCBkc3QsIDgsIDEpOwotICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsKLSAgICAg ICAgX19sYXN4X3h2c3RlbG1fZChzdW0yLCBkc3QsIDAsIDApOwotICAgICAgICBfX2xhc3hfeHZz dGVsbV9kKHN1bTIsIGRzdCwgOCwgMSk7Ci0gICAgICAgIGRzdCArPSBkc3Rfc3RyaWRlOwotICAg ICAgICBfX2xhc3hfeHZzdGVsbV9kKHN1bTMsIGRzdCwgMCwgMCk7Ci0gICAgICAgIF9fbGFzeF94 dnN0ZWxtX2Qoc3VtMywgZHN0LCA4LCAxKTsKLSAgICAgICAgZHN0ICs9IGRzdF9zdHJpZGU7Ci0g ICAgICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3VtMCwgZHN0LCAwLCAyKTsKLSAgICAgICAgX19sYXN4 X3h2c3RlbG1fZChzdW0wLCBkc3QsIDgsIDMpOwotICAgICAgICBkc3QgKz0gZHN0X3N0cmlkZTsK LSAgICAgICAgX19sYXN4X3h2c3RlbG1fZChzdW0xLCBkc3QsIDAsIDIpOwotICAgICAgICBfX2xh c3hfeHZzdGVsbV9kKHN1bTEsIGRzdCwgOCwgMyk7Ci0gICAgICAgIGRzdCArPSBkc3Rfc3RyaWRl OwotICAgICAgICBfX2xhc3hfeHZzdGVsbV9kKHN1bTIsIGRzdCwgMCwgMik7Ci0gICAgICAgIF9f bGFzeF94dnN0ZWxtX2Qoc3VtMiwgZHN0LCA4LCAzKTsKLSAgICAgICAgZHN0ICs9IGRzdF9zdHJp ZGU7Ci0gICAgICAgIF9fbGFzeF94dnN0ZWxtX2Qoc3VtMywgZHN0LCAwLCAyKTsKLSAgICAgICAg X19sYXN4X3h2c3RlbG1fZChzdW0zLCBkc3QsIDgsIDMpOwotICAgICAgICBkc3QgKz0gZHN0X3N0 cmlkZTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGg7IGkrKykgeworICAgICAgICBwaXhlbHMg Kz0gbGluZV9zaXplOworICAgICAgICBzcmMwID0gX19sc3hfdmxkKHBpeGVscywgMCk7CisgICAg ICAgIHNyYzEgPSBfX2xzeF92bGQocGl4ZWxzLCAxKTsKKyAgICAgICAgc3JjMiA9IF9fbHN4X3Zz bGx3aWxfaHVfYnUoc3JjMCwgMCk7CisgICAgICAgIHNyYzMgPSBfX2xzeF92c2xsd2lsX2h1X2J1 KHNyYzEsIDApOworICAgICAgICBzdW0xID0gX19sc3hfdmFkZF9oKHNyYzIsIHNyYzMpOworICAg ICAgICBzdW0yID0gX19sc3hfdmFkZF9oKHN1bTAsIHN1bTEpOworICAgICAgICBzdW0yID0gX19s c3hfdnNyYW5pX2JfaChzdW0yLCBzdW0yLCAyKTsKKworICAgICAgICBzdW0wID0gX19sc3hfdmFk ZGlfaHUoc3VtMSwgMSk7CisgICAgICAgIF9fbHN4X3ZzdGVsbV9kKHN1bTIsIGJsb2NrLCAwLCAw KTsKKworICAgICAgICBibG9jayArPSBsaW5lX3NpemU7CiAgICAgfQogfQogCiB2b2lkIGZmX3B1 dF9waXhlbHMxNl94eTJfOF9sYXN4KHVpbnQ4X3QgKmJsb2NrLCBjb25zdCB1aW50OF90ICpwaXhl bHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBsaW5lX3NpemUs IGludCBoKQogewotICAgIGNvbW1vbl9odl9iaWxfMTZ3X2xhc3gocGl4ZWxzLCBsaW5lX3NpemUs IGJsb2NrLCBsaW5lX3NpemUsIGgpOworICAgIF9fbTI1Nmkgc3JjMCwgc3JjMSwgc3JjMiwgc3Jj MzsKKyAgICBfX20yNTZpIHN1bTAsIHN1bTEsIHN1bTI7CisKKyAgICBzcmMwID0gX19sYXN4X3h2 bGQocGl4ZWxzLCAwKTsKKyAgICBzcmMxID0gX19sYXN4X3h2bGQocGl4ZWxzLCAxKTsKKyAgICBz cmMyID0gX19sYXN4X3ZleHQyeHZfaHVfYnUoc3JjMCk7CisgICAgc3JjMyA9IF9fbGFzeF92ZXh0 Mnh2X2h1X2J1KHNyYzEpOworICAgIHN1bTAgPSBfX2xhc3hfeHZhZGRfaChzcmMyLCBzcmMzKTsK KyAgICBzdW0wID0gX19sYXN4X3h2YWRkaV9odShzdW0wLCAyKTsKKworICAgIGZvciAoaW50IGkg PSAwOyBpIDwgaDsgaSsrKSB7CisgICAgICAgIHBpeGVscyArPSBsaW5lX3NpemU7CisgICAgICAg IHNyYzAgPSBfX2xhc3hfeHZsZChwaXhlbHMsIDApOworICAgICAgICBzcmMxID0gX19sYXN4X3h2 bGQocGl4ZWxzLCAxKTsKKworICAgICAgICBzcmMyID0gX19sYXN4X3ZleHQyeHZfaHVfYnUoc3Jj MCk7CisgICAgICAgIHNyYzMgPSBfX2xhc3hfdmV4dDJ4dl9odV9idShzcmMxKTsKKyAgICAgICAg c3VtMSA9IF9fbGFzeF94dmFkZF9oKHNyYzIsIHNyYzMpOworICAgICAgICBzdW0yID0gX19sYXN4 X3h2YWRkX2goc3VtMCwgc3VtMSk7CisgICAgICAgIHN1bTIgPSBfX2xhc3hfeHZzcmFuaV9iX2go c3VtMiwgc3VtMiwgMik7CisgICAgICAgIHN1bTAgPSBfX2xhc3hfeHZhZGRpX2h1KHN1bTEsIDIp OworICAgICAgICBfX2xhc3hfeHZzdGVsbV9kKHN1bTIsIGJsb2NrLCAwLCAwKTsKKyAgICAgICAg X19sYXN4X3h2c3RlbG1fZChzdW0yLCBibG9jaywgOCwgMyk7CisgICAgICAgIGJsb2NrICs9IGxp bmVfc2l6ZTsKKyAgICB9CiB9CiAKIHN0YXRpYyB2b2lkIGNvbW1vbl9odl9iaWxfOHdfbGFzeChj b25zdCB1aW50OF90ICpzcmMsIGludDMyX3Qgc3JjX3N0cmlkZSwKZGlmZiAtLWdpdCBhL2xpYmF2 Y29kZWMvbG9vbmdhcmNoL2hwZWxkc3BfbGFzeC5oIGIvbGliYXZjb2RlYy9sb29uZ2FyY2gvaHBl bGRzcF9sYXN4LmgKaW5kZXggMmUwMzVlYWRlOC4uZGYzOTg3ZDMwOCAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy9sb29uZ2FyY2gvaHBlbGRzcF9sYXN4LmgKKysrIGIvbGliYXZjb2RlYy9sb29uZ2Fy Y2gvaHBlbGRzcF9sYXN4LmgKQEAgLTQ5LDggKzQ5LDggQEAgdm9pZCBmZl9wdXRfbm9fcm5kX3Bp eGVsczhfeDJfOF9sYXN4KHVpbnQ4X3QgKmJsb2NrLCBjb25zdCB1aW50OF90ICpwaXhlbHMsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyZGlmZl90IGxpbmVfc2l6ZSwg aW50IGgpOwogdm9pZCBmZl9wdXRfbm9fcm5kX3BpeGVsczhfeTJfOF9sYXN4KHVpbnQ4X3QgKmJs b2NrLCBjb25zdCB1aW50OF90ICpwaXhlbHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcHRyZGlmZl90IGxpbmVfc2l6ZSwgaW50IGgpOwotdm9pZCBmZl9wdXRfbm9fcm5k X3BpeGVsczhfeHkyXzhfbGFzeCh1aW50OF90ICpibG9jaywgY29uc3QgdWludDhfdCAqcGl4ZWxz LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHJkaWZmX3QgbGluZV9z aXplLCBpbnQgaCk7Cit2b2lkIGZmX3B1dF9ub19ybmRfcGl4ZWxzOF94eTJfOF9sc3godWludDhf dCAqYmxvY2ssIGNvbnN0IHVpbnQ4X3QgKnBpeGVscywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwdHJkaWZmX3QgbGluZV9zaXplLCBpbnQgaCk7CiB2b2lkIGZmX3B1dF9w aXhlbHM4X3h5Ml84X2xhc3godWludDhfdCAqYmxvY2ssIGNvbnN0IHVpbnQ4X3QgKnBpeGVscywK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHJkaWZmX3QgbGluZV9zaXplLCBpbnQg aCk7CiB2b2lkIGZmX3B1dF9waXhlbHMxNl94eTJfOF9sYXN4KHVpbnQ4X3QgKmJsb2NrLCBjb25z dCB1aW50OF90ICpwaXhlbHMsCi0tIAoyLjUyLjAKCgpGcm9tIGY3N2ZlMTZhZmIxNzMxMTdjNDE3 YWY4NzVhZjNiYzQ4MWIyNTcxOWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJl YXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgpEYXRlOiBGcmks IDE0IE5vdiAyMDI1IDExOjI0OjQ1ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxNjgvMzA0XSBhdmNv ZGVjL21wZWd2aWRlb191bnF1YW50aXplOiBDb25zdGlmeSBNUFZDb250ZXh0CiBwb2ludGVlCgpB bHNvIHVzZSBNUFZDb250ZXh0IGluc3RlYWQgb2YgTXBlZ0VuY0NvbnRleHQuCgpTaWduZWQtb2Zm LWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4K LS0tCiBsaWJhdmNvZGVjL2FybS9tcGVndmlkZW9fYXJtLmMgICAgIHwgIDQgKystLQogbGliYXZj b2RlYy9hcm0vbXBlZ3ZpZGVvX2FybXY1dGUuYyB8ICA4ICsrKystLS0tCiBsaWJhdmNvZGVjL21p cHMvaDI2M2RzcF9taXBzLmggICAgIHwgIDYgKysrLS0tCiBsaWJhdmNvZGVjL21pcHMvbXBlZ3Zp ZGVvX21pcHMuaCAgIHwgMjAgKysrKysrKysrKy0tLS0tLS0tLS0KIGxpYmF2Y29kZWMvbWlwcy9t cGVndmlkZW9fbW1pLmMgICAgfCAyMCArKysrKysrKysrLS0tLS0tLS0tLQogbGliYXZjb2RlYy9t aXBzL21wZWd2aWRlb19tc2EuYyAgICB8ICA2ICsrKy0tLQogbGliYXZjb2RlYy9tcGVnNHZpZGVv ZGVjLmggICAgICAgICB8ICA2ICsrKy0tLQogbGliYXZjb2RlYy9tcGVndmlkZW8uaCAgICAgICAg ICAgICB8IDEyICsrKysrKy0tLS0tLQogbGliYXZjb2RlYy9tcGVndmlkZW9fdW5xdWFudGl6ZS5j ICB8IDI4ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIGxpYmF2Y29kZWMvbXBlZ3ZpZGVv X3VucXVhbnRpemUuaCAgfCAyNiArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogbGliYXZjb2Rl Yy9uZW9uL21wZWd2aWRlby5jICAgICAgICB8ICA0ICsrLS0KIGxpYmF2Y29kZWMvcHBjL21wZWd2 aWRlb19hbHRpdmVjLmMgfCAgNCArKy0tCiBsaWJhdmNvZGVjL3g4Ni9tcGVndmlkZW8uYyAgICAg ICAgIHwgMjQgKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiAxMyBmaWxlcyBjaGFuZ2VkLCA4NCBp bnNlcnRpb25zKCspLCA4NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2Fy bS9tcGVndmlkZW9fYXJtLmMgYi9saWJhdmNvZGVjL2FybS9tcGVndmlkZW9fYXJtLmMKaW5kZXgg NWM5NmM5ZGYyYy4uY2IxMDljZDgzMiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9hcm0vbXBlZ3Zp ZGVvX2FybS5jCisrKyBiL2xpYmF2Y29kZWMvYXJtL21wZWd2aWRlb19hcm0uYwpAQCAtNDEsOSAr NDEsOSBAQCBDSEVDS19PRkZTRVQoTXBlZ0VuY0NvbnRleHQsIGludGVyX3NjYW50YWJsZS5yYXN0 ZXJfZW5kLAogQ0hFQ0tfT0ZGU0VUKE1wZWdFbmNDb250ZXh0LCBoMjYzX2FpYywgICAgICAgICBI MjYzX0FJQyk7CiAjZW5kaWYKIAotdm9pZCBmZl9kY3RfdW5xdWFudGl6ZV9oMjYzX2ludGVyX25l b24oTXBlZ0VuY0NvbnRleHQgKnMsIGludDE2X3QgKmJsb2NrLAordm9pZCBmZl9kY3RfdW5xdWFu dGl6ZV9oMjYzX2ludGVyX25lb24oY29uc3QgTVBWQ29udGV4dCAqcywgaW50MTZfdCAqYmxvY2ss CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbiwgaW50IHFzY2Fs ZSk7Ci12b2lkIGZmX2RjdF91bnF1YW50aXplX2gyNjNfaW50cmFfbmVvbihNcGVnRW5jQ29udGV4 dCAqcywgaW50MTZfdCAqYmxvY2ssCit2b2lkIGZmX2RjdF91bnF1YW50aXplX2gyNjNfaW50cmFf bmVvbihjb25zdCBNUFZDb250ZXh0ICpzLCBpbnQxNl90ICpibG9jaywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuLCBpbnQgcXNjYWxlKTsKIAogYXZfY29sZCB2 b2lkIGZmX21wdl91bnF1YW50aXplX2luaXRfYXJtKE1QVlVucXVhbnREU1BDb250ZXh0ICpzLCBp bnQgYml0ZXhhY3QpCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2FybS9tcGVndmlkZW9fYXJtdjV0 ZS5jIGIvbGliYXZjb2RlYy9hcm0vbXBlZ3ZpZGVvX2FybXY1dGUuYwppbmRleCAyNzM3ZjY4NjQz Li4zYTZkMDE1NzY3IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2FybS9tcGVndmlkZW9fYXJtdjV0 ZS5jCisrKyBiL2xpYmF2Y29kZWMvYXJtL21wZWd2aWRlb19hcm12NXRlLmMKQEAgLTUwLDggKzUw LDggQEAgc3RhdGljIGlubGluZSB2b2lkIGRjdF91bnF1YW50aXplX2gyNjNfaGVscGVyX2MoaW50 MTZfdCAqYmxvY2ssIGludCBxbXVsLCBpbnQgcWEKIH0KICNlbmRpZgogCi1zdGF0aWMgdm9pZCBk Y3RfdW5xdWFudGl6ZV9oMjYzX2ludHJhX2FybXY1dGUoTXBlZ0VuY0NvbnRleHQgKnMsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCAqYmxvY2ssIGludCBuLCBpbnQg cXNjYWxlKQorc3RhdGljIHZvaWQgZGN0X3VucXVhbnRpemVfaDI2M19pbnRyYV9hcm12NXRlKGNv bnN0IE1QVkNvbnRleHQgKnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50MTZfdCAqYmxvY2ssIGludCBuLCBpbnQgcXNjYWxlKQogewogICAgIGludCBs ZXZlbCwgcW11bCwgcWFkZDsKICAgICBpbnQgbkNvZWZmczsKQEAgLTc5LDggKzc5LDggQEAgc3Rh dGljIHZvaWQgZGN0X3VucXVhbnRpemVfaDI2M19pbnRyYV9hcm12NXRlKE1wZWdFbmNDb250ZXh0 ICpzLAogICAgIGJsb2NrWzBdID0gbGV2ZWw7CiB9CiAKLXN0YXRpYyB2b2lkIGRjdF91bnF1YW50 aXplX2gyNjNfaW50ZXJfYXJtdjV0ZShNcGVnRW5jQ29udGV4dCAqcywKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQxNl90ICpibG9jaywgaW50IG4sIGludCBxc2NhbGUpCitz dGF0aWMgdm9pZCBkY3RfdW5xdWFudGl6ZV9oMjYzX2ludGVyX2FybXY1dGUoY29uc3QgTVBWQ29u dGV4dCAqcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQxNl90ICpibG9jaywgaW50IG4sIGludCBxc2NhbGUpCiB7CiAgICAgaW50IHFtdWwsIHFhZGQ7 CiAgICAgaW50IG5Db2VmZnM7CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL21pcHMvaDI2M2RzcF9t aXBzLmggYi9saWJhdmNvZGVjL21pcHMvaDI2M2RzcF9taXBzLmgKaW5kZXggZDRkZTIyMzNhNy4u NWVhOWZjYmI4OCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9taXBzL2gyNjNkc3BfbWlwcy5oCisr KyBiL2xpYmF2Y29kZWMvbWlwcy9oMjYzZHNwX21pcHMuaApAQCAtMjUsMTEgKzI1LDExIEBACiAK IHZvaWQgZmZfaDI2M19oX2xvb3BfZmlsdGVyX21zYSh1aW50OF90ICpzcmMsIGludCBzdHJpZGUs IGludCBxX3NjYWxlKTsKIHZvaWQgZmZfaDI2M192X2xvb3BfZmlsdGVyX21zYSh1aW50OF90ICpz cmMsIGludCBzdHJpZGUsIGludCBxX3NjYWxlKTsKLXZvaWQgZmZfZGN0X3VucXVhbnRpemVfbXBl ZzJfaW50ZXJfbXNhKE1wZWdFbmNDb250ZXh0ICpzLCBpbnQxNl90ICpibG9jaywKK3ZvaWQgZmZf ZGN0X3VucXVhbnRpemVfbXBlZzJfaW50ZXJfbXNhKGNvbnN0IE1QVkNvbnRleHQgKnMsIGludDE2 X3QgKmJsb2NrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJf dCBpbmRleCwgaW50MzJfdCBxX3NjYWxlKTsKLXZvaWQgZmZfZGN0X3VucXVhbnRpemVfaDI2M19p bnRlcl9tc2EoTXBlZ0VuY0NvbnRleHQgKnMsIGludDE2X3QgKmJsb2NrLAordm9pZCBmZl9kY3Rf dW5xdWFudGl6ZV9oMjYzX2ludGVyX21zYShjb25zdCBNUFZDb250ZXh0ICpzLCBpbnQxNl90ICpi bG9jaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBpbmRl eCwgaW50MzJfdCBxX3NjYWxlKTsKLXZvaWQgZmZfZGN0X3VucXVhbnRpemVfaDI2M19pbnRyYV9t c2EoTXBlZ0VuY0NvbnRleHQgKnMsIGludDE2X3QgKmJsb2NrLAordm9pZCBmZl9kY3RfdW5xdWFu dGl6ZV9oMjYzX2ludHJhX21zYShjb25zdCBNUFZDb250ZXh0ICpzLCBpbnQxNl90ICpibG9jaywK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBpbmRleCwgaW50 MzJfdCBxX3NjYWxlKTsKIGludCBmZl9waXhfc3VtX21zYShjb25zdCB1aW50OF90ICpwaXgsIHB0 cmRpZmZfdCBsaW5lX3NpemUpOwogCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL21pcHMvbXBlZ3Zp ZGVvX21pcHMuaCBiL2xpYmF2Y29kZWMvbWlwcy9tcGVndmlkZW9fbWlwcy5oCmluZGV4IDJhOWVh NDAwNmUuLjI1NDQyNzlhYzUgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvbWlwcy9tcGVndmlkZW9f bWlwcy5oCisrKyBiL2xpYmF2Y29kZWMvbWlwcy9tcGVndmlkZW9fbWlwcy5oCkBAIC0yMywxNiAr MjMsMTYgQEAKIAogI2luY2x1ZGUgImxpYmF2Y29kZWMvbXBlZ3ZpZGVvLmgiCiAKLXZvaWQgZmZf ZGN0X3VucXVhbnRpemVfaDI2M19pbnRyYV9tbWkoTXBlZ0VuY0NvbnRleHQgKnMsIGludDE2X3Qg KmJsb2NrLAotICAgICAgICBpbnQgbiwgaW50IHFzY2FsZSk7Ci12b2lkIGZmX2RjdF91bnF1YW50 aXplX2gyNjNfaW50ZXJfbW1pKE1wZWdFbmNDb250ZXh0ICpzLCBpbnQxNl90ICpibG9jaywKLSAg ICAgICAgaW50IG4sIGludCBxc2NhbGUpOwotdm9pZCBmZl9kY3RfdW5xdWFudGl6ZV9tcGVnMV9p bnRyYV9tbWkoTXBlZ0VuY0NvbnRleHQgKnMsIGludDE2X3QgKmJsb2NrLAotICAgICAgICBpbnQg biwgaW50IHFzY2FsZSk7Ci12b2lkIGZmX2RjdF91bnF1YW50aXplX21wZWcxX2ludGVyX21taShN cGVnRW5jQ29udGV4dCAqcywgaW50MTZfdCAqYmxvY2ssCi0gICAgICAgIGludCBuLCBpbnQgcXNj YWxlKTsKLXZvaWQgZmZfZGN0X3VucXVhbnRpemVfbXBlZzJfaW50cmFfbW1pKE1wZWdFbmNDb250 ZXh0ICpzLCBpbnQxNl90ICpibG9jaywKLSAgICAgICAgaW50IG4sIGludCBxc2NhbGUpOwordm9p ZCBmZl9kY3RfdW5xdWFudGl6ZV9oMjYzX2ludHJhX21taShjb25zdCBNUFZDb250ZXh0ICpzLCBp bnQxNl90ICpibG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 IG4sIGludCBxc2NhbGUpOwordm9pZCBmZl9kY3RfdW5xdWFudGl6ZV9oMjYzX2ludGVyX21taShj b25zdCBNUFZDb250ZXh0ICpzLCBpbnQxNl90ICpibG9jaywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50IG4sIGludCBxc2NhbGUpOwordm9pZCBmZl9kY3RfdW5xdWFu dGl6ZV9tcGVnMV9pbnRyYV9tbWkoY29uc3QgTVBWQ29udGV4dCAqcywgaW50MTZfdCAqYmxvY2ss CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbiwgaW50IHFzY2Fs ZSk7Cit2b2lkIGZmX2RjdF91bnF1YW50aXplX21wZWcxX2ludGVyX21taShjb25zdCBNUFZDb250 ZXh0ICpzLCBpbnQxNl90ICpibG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGludCBuLCBpbnQgcXNjYWxlKTsKK3ZvaWQgZmZfZGN0X3VucXVhbnRpemVfbXBlZzJf aW50cmFfbW1pKGNvbnN0IE1QVkNvbnRleHQgKnMsIGludDE2X3QgKmJsb2NrLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG4sIGludCBxc2NhbGUpOwogdm9pZCBm Zl9kZW5vaXNlX2RjdF9tbWkoaW50MTZfdCBibG9ja1s2NF0sIGludCBzdW1bNjRdLCBjb25zdCB1 aW50MTZfdCBvZmZzZXRbNjRdKTsKIAogI2VuZGlmIC8qIEFWQ09ERUNfTUlQU19NUEVHVklERU9f TUlQU19IICovCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL21pcHMvbXBlZ3ZpZGVvX21taS5jIGIv bGliYXZjb2RlYy9taXBzL21wZWd2aWRlb19tbWkuYwppbmRleCA4N2Q0YWFmZDhjLi45MGJkOTBj MTQ3IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL21pcHMvbXBlZ3ZpZGVvX21taS5jCisrKyBiL2xp YmF2Y29kZWMvbWlwcy9tcGVndmlkZW9fbW1pLmMKQEAgLTI1LDggKzI1LDggQEAKICNpbmNsdWRl ICJtcGVndmlkZW9fbWlwcy5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9taXBzL21taXV0aWxzLmgi CiAKLXZvaWQgZmZfZGN0X3VucXVhbnRpemVfaDI2M19pbnRyYV9tbWkoTXBlZ0VuY0NvbnRleHQg KnMsIGludDE2X3QgKmJsb2NrLAotICAgICAgICBpbnQgbiwgaW50IHFzY2FsZSkKK3ZvaWQgZmZf ZGN0X3VucXVhbnRpemVfaDI2M19pbnRyYV9tbWkoY29uc3QgTVBWQ29udGV4dCAqcywgaW50MTZf dCAqYmxvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuLCBp bnQgcXNjYWxlKQogewogICAgIGludDY0X3QgbGV2ZWwsIG5Db2VmZnM7CiAgICAgZG91YmxlIGZ0 bXBbNl07CkBAIC0xMDEsOCArMTAxLDggQEAgdm9pZCBmZl9kY3RfdW5xdWFudGl6ZV9oMjYzX2lu dHJhX21taShNcGVnRW5jQ29udGV4dCAqcywgaW50MTZfdCAqYmxvY2ssCiAgICAgYmxvY2tbMF0g PSBsZXZlbDsKIH0KIAotdm9pZCBmZl9kY3RfdW5xdWFudGl6ZV9oMjYzX2ludGVyX21taShNcGVn RW5jQ29udGV4dCAqcywgaW50MTZfdCAqYmxvY2ssCi0gICAgICAgIGludCBuLCBpbnQgcXNjYWxl KQordm9pZCBmZl9kY3RfdW5xdWFudGl6ZV9oMjYzX2ludGVyX21taShjb25zdCBNUFZDb250ZXh0 ICpzLCBpbnQxNl90ICpibG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IG4sIGludCBxc2NhbGUpCiB7CiAgICAgaW50NjRfdCBuQ29lZmZzOwogICAgIGRvdWJs ZSBmdG1wWzZdOwpAQCAtMTYwLDggKzE2MCw4IEBAIHZvaWQgZmZfZGN0X3VucXVhbnRpemVfaDI2 M19pbnRlcl9tbWkoTXBlZ0VuY0NvbnRleHQgKnMsIGludDE2X3QgKmJsb2NrLAogICAgICk7CiB9 CiAKLXZvaWQgZmZfZGN0X3VucXVhbnRpemVfbXBlZzFfaW50cmFfbW1pKE1wZWdFbmNDb250ZXh0 ICpzLCBpbnQxNl90ICpibG9jaywKLSAgICAgICAgaW50IG4sIGludCBxc2NhbGUpCit2b2lkIGZm X2RjdF91bnF1YW50aXplX21wZWcxX2ludHJhX21taShjb25zdCBNUFZDb250ZXh0ICpzLCBpbnQx Nl90ICpibG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBu LCBpbnQgcXNjYWxlKQogewogICAgIGludDY0X3QgbkNvZWZmczsKICAgICBjb25zdCB1aW50MTZf dCAqcXVhbnRfbWF0cml4OwpAQCAtMjU0LDggKzI1NCw4IEBAIHZvaWQgZmZfZGN0X3VucXVhbnRp emVfbXBlZzFfaW50cmFfbW1pKE1wZWdFbmNDb250ZXh0ICpzLCBpbnQxNl90ICpibG9jaywKICAg ICBibG9ja1swXSA9IGJsb2NrMDsKIH0KIAotdm9pZCBmZl9kY3RfdW5xdWFudGl6ZV9tcGVnMV9p bnRlcl9tbWkoTXBlZ0VuY0NvbnRleHQgKnMsIGludDE2X3QgKmJsb2NrLAotICAgICAgICBpbnQg biwgaW50IHFzY2FsZSkKK3ZvaWQgZmZfZGN0X3VucXVhbnRpemVfbXBlZzFfaW50ZXJfbW1pKGNv bnN0IE1QVkNvbnRleHQgKnMsIGludDE2X3QgKmJsb2NrLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50IG4sIGludCBxc2NhbGUpCiB7CiAgICAgaW50NjRfdCBuQ29l ZmZzOwogICAgIGNvbnN0IHVpbnQxNl90ICpxdWFudF9tYXRyaXg7CkBAIC0zNDIsOCArMzQyLDgg QEAgdm9pZCBmZl9kY3RfdW5xdWFudGl6ZV9tcGVnMV9pbnRlcl9tbWkoTXBlZ0VuY0NvbnRleHQg KnMsIGludDE2X3QgKmJsb2NrLAogICAgICk7CiB9CiAKLXZvaWQgZmZfZGN0X3VucXVhbnRpemVf bXBlZzJfaW50cmFfbW1pKE1wZWdFbmNDb250ZXh0ICpzLCBpbnQxNl90ICpibG9jaywKLSAgICAg ICAgaW50IG4sIGludCBxc2NhbGUpCit2b2lkIGZmX2RjdF91bnF1YW50aXplX21wZWcyX2ludHJh X21taShjb25zdCBNUFZDb250ZXh0ICpzLCBpbnQxNl90ICpibG9jaywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuLCBpbnQgcXNjYWxlKQogewogICAgIHVpbnQ2 NF90IG5Db2VmZnM7CiAgICAgY29uc3QgdWludDE2X3QgKnF1YW50X21hdHJpeDsKZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMvbWlwcy9tcGVndmlkZW9fbXNhLmMgYi9saWJhdmNvZGVjL21pcHMvbXBl Z3ZpZGVvX21zYS5jCmluZGV4IGNkNGFkYzBmNzcuLmE4NzBhMmNkNzkgMTAwNjQ0Ci0tLSBhL2xp YmF2Y29kZWMvbWlwcy9tcGVndmlkZW9fbXNhLmMKKysrIGIvbGliYXZjb2RlYy9taXBzL21wZWd2 aWRlb19tc2EuYwpAQCAtMTk0LDcgKzE5NCw3IEBAIHN0YXRpYyBpbnQzMl90IG1wZWcyX2RjdF91 bnF1YW50aXplX2ludGVyX21zYShpbnQxNl90ICpibG9jaywKICAgICByZXR1cm4gc3VtX3JlczsK IH0KIAotdm9pZCBmZl9kY3RfdW5xdWFudGl6ZV9oMjYzX2ludHJhX21zYShNcGVnRW5jQ29udGV4 dCAqcywKK3ZvaWQgZmZfZGN0X3VucXVhbnRpemVfaDI2M19pbnRyYV9tc2EoY29uc3QgTVBWQ29u dGV4dCAqcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCAq YmxvY2ssIGludDMyX3QgaW5kZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludDMyX3QgcXNjYWxlKQogewpAQCAtMjE5LDcgKzIxOSw3IEBAIHZvaWQgZmZfZGN0X3Vu cXVhbnRpemVfaDI2M19pbnRyYV9tc2EoTXBlZ0VuY0NvbnRleHQgKnMsCiAgICAgaDI2M19kY3Rf dW5xdWFudGl6ZV9tc2EoYmxvY2ssIHFtdWwsIHFhZGQsIG5Db2VmZnMsIDEpOwogfQogCi12b2lk IGZmX2RjdF91bnF1YW50aXplX2gyNjNfaW50ZXJfbXNhKE1wZWdFbmNDb250ZXh0ICpzLAordm9p ZCBmZl9kY3RfdW5xdWFudGl6ZV9oMjYzX2ludGVyX21zYShjb25zdCBNUFZDb250ZXh0ICpzLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90ICpibG9jaywgaW50 MzJfdCBpbmRleCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJf dCBxc2NhbGUpCiB7CkBAIC0yMzYsNyArMjM2LDcgQEAgdm9pZCBmZl9kY3RfdW5xdWFudGl6ZV9o MjYzX2ludGVyX21zYShNcGVnRW5jQ29udGV4dCAqcywKICAgICBoMjYzX2RjdF91bnF1YW50aXpl X21zYShibG9jaywgcW11bCwgcWFkZCwgbkNvZWZmcywgMCk7CiB9CiAKLXZvaWQgZmZfZGN0X3Vu cXVhbnRpemVfbXBlZzJfaW50ZXJfbXNhKE1wZWdFbmNDb250ZXh0ICpzLAordm9pZCBmZl9kY3Rf dW5xdWFudGl6ZV9tcGVnMl9pbnRlcl9tc2EoY29uc3QgTVBWQ29udGV4dCAqcywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDE2X3QgKmJsb2NrLCBpbnQzMl90IGlu ZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBxc2Nh bGUpCiB7CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL21wZWc0dmlkZW9kZWMuaCBiL2xpYmF2Y29k ZWMvbXBlZzR2aWRlb2RlYy5oCmluZGV4IGFhZmRlNDU0ZWEuLjJlYWZhMWVmOGIgMTAwNjQ0Ci0t LSBhL2xpYmF2Y29kZWMvbXBlZzR2aWRlb2RlYy5oCisrKyBiL2xpYmF2Y29kZWMvbXBlZzR2aWRl b2RlYy5oCkBAIC05MywxMSArOTMsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgTXBlZzREZWNDb250ZXh0 IHsKIAogICAgIE1wZWc0VmlkZW9EU1BDb250ZXh0IG1kc3A7CiAKLSAgICB2b2lkICgqZGN0X3Vu cXVhbnRpemVfbXBlZzJfaW50ZXIpKE1wZWdFbmNDb250ZXh0ICpzLAorICAgIHZvaWQgKCpkY3Rf dW5xdWFudGl6ZV9tcGVnMl9pbnRlcikoY29uc3QgTVBWQ29udGV4dCAqcywKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDE2X3QgKmJsb2NrLCBpbnQgbiwgaW50IHFz Y2FsZSk7Ci0gICAgdm9pZCAoKmRjdF91bnF1YW50aXplX21wZWcyX2ludHJhKShNcGVnRW5jQ29u dGV4dCAqcywKKyAgICB2b2lkICgqZGN0X3VucXVhbnRpemVfbXBlZzJfaW50cmEpKGNvbnN0IE1Q VkNvbnRleHQgKnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQx Nl90ICpibG9jaywgaW50IG4sIGludCBxc2NhbGUpOwotICAgIHZvaWQgKCpkY3RfdW5xdWFudGl6 ZV9oMjYzX2ludHJhKShNcGVnRW5jQ29udGV4dCAqcywKKyAgICB2b2lkICgqZGN0X3VucXVhbnRp emVfaDI2M19pbnRyYSkoY29uc3QgTVBWQ29udGV4dCAqcywKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50MTZfdCAqYmxvY2ssIGludCBuLCBpbnQgcXNjYWxlKTsKIAog ICAgIHVuaW9uIHsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvbXBlZ3ZpZGVvLmggYi9saWJhdmNv ZGVjL21wZWd2aWRlby5oCmluZGV4IGNiNGI5OWFjZDMuLmUyMWNlNTE2NGQgMTAwNjQ0Ci0tLSBh L2xpYmF2Y29kZWMvbXBlZ3ZpZGVvLmgKKysrIGIvbGliYXZjb2RlYy9tcGVndmlkZW8uaApAQCAt NTcsNiArNTcsOCBAQCBlbnVtIE91dHB1dEZvcm1hdCB7CiAgICAgRk1UX1NQRUVESFEsCiB9Owog Cit0eXBlZGVmIHN0cnVjdCBNcGVnRW5jQ29udGV4dCBNUFZDb250ZXh0OworCiAvKioKICAqIE1w ZWdFbmNDb250ZXh0LgogICovCkBAIC0yNzEsMTAgKzI3MywxMCBAQCB0eXBlZGVmIHN0cnVjdCBN cGVnRW5jQ29udGV4dCB7CiAgICAgaW50IGludGVybGFjZWRfZGN0OwogICAgIGludCBmaXJzdF9m aWVsZDsgICAgICAgICAvLy88IGlzIDEgZm9yIHRoZSBmaXJzdCBmaWVsZCBvZiBhIGZpZWxkIHBp Y3R1cmUgMCBvdGhlcndpc2UKIAotICAgIHZvaWQgKCpkY3RfdW5xdWFudGl6ZV9pbnRyYSkoc3Ry dWN0IE1wZWdFbmNDb250ZXh0ICpzLCAvLyB1bnF1YW50aXplciB0byB1c2UgKE1QRUctNCBjYW4g dXNlIGJvdGgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90ICpibG9jay8qYWxp Z24gMTYqLywgaW50IG4sIGludCBxc2NhbGUpOwotICAgIHZvaWQgKCpkY3RfdW5xdWFudGl6ZV9p bnRlcikoc3RydWN0IE1wZWdFbmNDb250ZXh0ICpzLCAvLyB1bnF1YW50aXplciB0byB1c2UgKE1Q RUctNCBjYW4gdXNlIGJvdGgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90ICpi bG9jay8qYWxpZ24gMTYqLywgaW50IG4sIGludCBxc2NhbGUpOworICAgIHZvaWQgKCpkY3RfdW5x dWFudGl6ZV9pbnRyYSkoY29uc3QgTVBWQ29udGV4dCAqcywgLy8gdW5xdWFudGl6ZXIgdG8gdXNl IChNUEVHLTQgY2FuIHVzZSBib3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50MTZfdCAqYmxvY2svKmFsaWduIDE2Ki8sIGludCBuLCBpbnQgcXNjYWxlKTsKKyAgICB2b2lk ICgqZGN0X3VucXVhbnRpemVfaW50ZXIpKGNvbnN0IE1QVkNvbnRleHQgKnMsIC8vIHVucXVhbnRp emVyIHRvIHVzZSAoTVBFRy00IGNhbiB1c2UgYm90aCkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludDE2X3QgKmJsb2NrLyphbGlnbiAxNiovLCBpbnQgbiwgaW50IHFzY2FsZSk7 CiAKICAgICAvKiBmbGFnIHRvIGluZGljYXRlIGEgcmVpbml0aWFsaXphdGlvbiBpcyByZXF1aXJl ZCwgZS5nLiBhZnRlcgogICAgICAqIGEgZnJhbWUgc2l6ZSBjaGFuZ2UgKi8KQEAgLTI4Niw4ICsy ODgsNiBAQCB0eXBlZGVmIHN0cnVjdCBNcGVnRW5jQ29udGV4dCB7CiAgICAgRVJDb250ZXh0IGVy OwogfSBNcGVnRW5jQ29udGV4dDsKIAotdHlwZWRlZiBNcGVnRW5jQ29udGV4dCBNUFZDb250ZXh0 OwotCiAvKioKICAqIFNldCB0aGUgZ2l2ZW4gTXBlZ0VuY0NvbnRleHQgdG8gY29tbW9uIGRlZmF1 bHRzIChzYW1lIGZvciBlbmNvZGluZwogICogYW5kIGRlY29kaW5nKS4gIFRoZSBjaGFuZ2VkIGZp ZWxkcyB3aWxsIG5vdCBkZXBlbmQgdXBvbiB0aGUgcHJpb3IKZGlmZiAtLWdpdCBhL2xpYmF2Y29k ZWMvbXBlZ3ZpZGVvX3VucXVhbnRpemUuYyBiL2xpYmF2Y29kZWMvbXBlZ3ZpZGVvX3VucXVhbnRp emUuYwppbmRleCAyMTNlMzdhNTE0Li4wNmMyOWQwNzUzIDEwMDY0NAotLS0gYS9saWJhdmNvZGVj L21wZWd2aWRlb191bnF1YW50aXplLmMKKysrIGIvbGliYXZjb2RlYy9tcGVndmlkZW9fdW5xdWFu dGl6ZS5jCkBAIC0zMyw4ICszMyw4IEBACiAjaW5jbHVkZSAibXBlZ3ZpZGVvZGF0YS5oIgogI2lu Y2x1ZGUgIm1wZWd2aWRlb191bnF1YW50aXplLmgiCiAKLXN0YXRpYyB2b2lkIGRjdF91bnF1YW50 aXplX21wZWcxX2ludHJhX2MoTXBlZ0VuY0NvbnRleHQgKnMsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludDE2X3QgKmJsb2NrLCBpbnQgbiwgaW50IHFzY2FsZSkKK3N0YXRp YyB2b2lkIGRjdF91bnF1YW50aXplX21wZWcxX2ludHJhX2MoY29uc3QgTVBWQ29udGV4dCAqcywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCAqYmxvY2ss IGludCBuLCBpbnQgcXNjYWxlKQogewogICAgIGludCBpLCBsZXZlbCwgbkNvZWZmczsKICAgICBj b25zdCB1aW50MTZfdCAqcXVhbnRfbWF0cml4OwpAQCAtNjIsOCArNjIsOCBAQCBzdGF0aWMgdm9p ZCBkY3RfdW5xdWFudGl6ZV9tcGVnMV9pbnRyYV9jKE1wZWdFbmNDb250ZXh0ICpzLAogICAgIH0K IH0KIAotc3RhdGljIHZvaWQgZGN0X3VucXVhbnRpemVfbXBlZzFfaW50ZXJfYyhNcGVnRW5jQ29u dGV4dCAqcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCAqYmxv Y2ssIGludCBuLCBpbnQgcXNjYWxlKQorc3RhdGljIHZvaWQgZGN0X3VucXVhbnRpemVfbXBlZzFf aW50ZXJfYyhjb25zdCBNUFZDb250ZXh0ICpzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQxNl90ICpibG9jaywgaW50IG4sIGludCBxc2NhbGUpCiB7CiAgICAg aW50IGksIGxldmVsLCBuQ29lZmZzOwogICAgIGNvbnN0IHVpbnQxNl90ICpxdWFudF9tYXRyaXg7 CkBAIC05MSw4ICs5MSw4IEBAIHN0YXRpYyB2b2lkIGRjdF91bnF1YW50aXplX21wZWcxX2ludGVy X2MoTXBlZ0VuY0NvbnRleHQgKnMsCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBkY3RfdW5xdWFu dGl6ZV9tcGVnMl9pbnRyYV9jKE1wZWdFbmNDb250ZXh0ICpzLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQxNl90ICpibG9jaywgaW50IG4sIGludCBxc2NhbGUpCitzdGF0 aWMgdm9pZCBkY3RfdW5xdWFudGl6ZV9tcGVnMl9pbnRyYV9jKGNvbnN0IE1QVkNvbnRleHQgKnMs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDE2X3QgKmJsb2Nr LCBpbnQgbiwgaW50IHFzY2FsZSkKIHsKICAgICBpbnQgaSwgbGV2ZWwsIG5Db2VmZnM7CiAgICAg Y29uc3QgdWludDE2X3QgKnF1YW50X21hdHJpeDsKQEAgLTEyMCw4ICsxMjAsOCBAQCBzdGF0aWMg dm9pZCBkY3RfdW5xdWFudGl6ZV9tcGVnMl9pbnRyYV9jKE1wZWdFbmNDb250ZXh0ICpzLAogICAg IH0KIH0KIAotc3RhdGljIHZvaWQgZGN0X3VucXVhbnRpemVfbXBlZzJfaW50cmFfYml0ZXhhY3Qo TXBlZ0VuY0NvbnRleHQgKnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dDE2X3QgKmJsb2NrLCBpbnQgbiwgaW50IHFzY2FsZSkKK3N0YXRpYyB2b2lkIGRjdF91bnF1YW50 aXplX21wZWcyX2ludHJhX2JpdGV4YWN0KGNvbnN0IE1QVkNvbnRleHQgKnMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90ICpibG9jaywgaW50 IG4sIGludCBxc2NhbGUpCiB7CiAgICAgaW50IGksIGxldmVsLCBuQ29lZmZzOwogICAgIGNvbnN0 IHVpbnQxNl90ICpxdWFudF9tYXRyaXg7CkBAIC0xNTMsOCArMTUzLDggQEAgc3RhdGljIHZvaWQg ZGN0X3VucXVhbnRpemVfbXBlZzJfaW50cmFfYml0ZXhhY3QoTXBlZ0VuY0NvbnRleHQgKnMsCiAg ICAgYmxvY2tbNjNdXj1zdW0mMTsKIH0KIAotc3RhdGljIHZvaWQgZGN0X3VucXVhbnRpemVfbXBl ZzJfaW50ZXJfYyhNcGVnRW5jQ29udGV4dCAqcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50MTZfdCAqYmxvY2ssIGludCBuLCBpbnQgcXNjYWxlKQorc3RhdGljIHZvaWQg ZGN0X3VucXVhbnRpemVfbXBlZzJfaW50ZXJfYyhjb25zdCBNUFZDb250ZXh0ICpzLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90ICpibG9jaywgaW50IG4s IGludCBxc2NhbGUpCiB7CiAgICAgaW50IGksIGxldmVsLCBuQ29lZmZzOwogICAgIGNvbnN0IHVp bnQxNl90ICpxdWFudF9tYXRyaXg7CkBAIC0xODYsOCArMTg2LDggQEAgc3RhdGljIHZvaWQgZGN0 X3VucXVhbnRpemVfbXBlZzJfaW50ZXJfYyhNcGVnRW5jQ29udGV4dCAqcywKICAgICBibG9ja1s2 M11ePXN1bSYxOwogfQogCi1zdGF0aWMgdm9pZCBkY3RfdW5xdWFudGl6ZV9oMjYzX2ludHJhX2Mo TXBlZ0VuY0NvbnRleHQgKnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 MTZfdCAqYmxvY2ssIGludCBuLCBpbnQgcXNjYWxlKQorc3RhdGljIHZvaWQgZGN0X3VucXVhbnRp emVfaDI2M19pbnRyYV9jKGNvbnN0IE1QVkNvbnRleHQgKnMsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCAqYmxvY2ssIGludCBuLCBpbnQgcXNjYWxlKQog ewogICAgIGludCBpLCBsZXZlbCwgcW11bCwgcWFkZDsKICAgICBpbnQgbkNvZWZmczsKQEAgLTIy MCw4ICsyMjAsOCBAQCBzdGF0aWMgdm9pZCBkY3RfdW5xdWFudGl6ZV9oMjYzX2ludHJhX2MoTXBl Z0VuY0NvbnRleHQgKnMsCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBkY3RfdW5xdWFudGl6ZV9o MjYzX2ludGVyX2MoTXBlZ0VuY0NvbnRleHQgKnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50MTZfdCAqYmxvY2ssIGludCBuLCBpbnQgcXNjYWxlKQorc3RhdGljIHZvaWQg ZGN0X3VucXVhbnRpemVfaDI2M19pbnRlcl9jKGNvbnN0IE1QVkNvbnRleHQgKnMsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCAqYmxvY2ssIGludCBuLCBp bnQgcXNjYWxlKQogewogICAgIGludCBpLCBsZXZlbCwgcW11bCwgcWFkZDsKICAgICBpbnQgbkNv ZWZmczsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvbXBlZ3ZpZGVvX3VucXVhbnRpemUuaCBiL2xp YmF2Y29kZWMvbXBlZ3ZpZGVvX3VucXVhbnRpemUuaAppbmRleCAzZTZkOGFlZGY3Li4xYTQzZjQ2 N2M2IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL21wZWd2aWRlb191bnF1YW50aXplLmgKKysrIGIv bGliYXZjb2RlYy9tcGVndmlkZW9fdW5xdWFudGl6ZS5oCkBAIC0yOSwyMSArMjksMjEgQEAKIAog I2luY2x1ZGUgImNvbmZpZy5oIgogCi10eXBlZGVmIHN0cnVjdCBNcGVnRW5jQ29udGV4dCBNcGVn RW5jQ29udGV4dDsKK3R5cGVkZWYgc3RydWN0IE1wZWdFbmNDb250ZXh0IE1QVkNvbnRleHQ7CiAK IHR5cGVkZWYgc3RydWN0IE1QVlVucXVhbnREU1BDb250ZXh0IHsKLSAgICB2b2lkICgqZGN0X3Vu cXVhbnRpemVfbXBlZzFfaW50cmEpKHN0cnVjdCBNcGVnRW5jQ29udGV4dCAqcywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludDE2X3QgKmJsb2NrLyphbGlnbiAxNiovLCBpbnQgbiwgaW50 IHFzY2FsZSk7Ci0gICAgdm9pZCAoKmRjdF91bnF1YW50aXplX21wZWcxX2ludGVyKShzdHJ1Y3Qg TXBlZ0VuY0NvbnRleHQgKnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90ICpi bG9jay8qYWxpZ24gMTYqLywgaW50IG4sIGludCBxc2NhbGUpOwotICAgIHZvaWQgKCpkY3RfdW5x dWFudGl6ZV9tcGVnMl9pbnRyYSkoc3RydWN0IE1wZWdFbmNDb250ZXh0ICpzLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50MTZfdCAqYmxvY2svKmFsaWduIDE2Ki8sIGludCBuLCBpbnQg cXNjYWxlKTsKLSAgICB2b2lkICgqZGN0X3VucXVhbnRpemVfbXBlZzJfaW50ZXIpKHN0cnVjdCBN cGVnRW5jQ29udGV4dCAqcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDE2X3QgKmJs b2NrLyphbGlnbiAxNiovLCBpbnQgbiwgaW50IHFzY2FsZSk7Ci0gICAgdm9pZCAoKmRjdF91bnF1 YW50aXplX2gyNjNfaW50cmEpKHN0cnVjdCBNcGVnRW5jQ29udGV4dCAqcywKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludDE2X3QgKmJsb2NrLyphbGlnbiAxNiovLCBpbnQgbiwgaW50IHFz Y2FsZSk7Ci0gICAgdm9pZCAoKmRjdF91bnF1YW50aXplX2gyNjNfaW50ZXIpKHN0cnVjdCBNcGVn RW5jQ29udGV4dCAqcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDE2X3QgKmJsb2Nr LyphbGlnbiAxNiovLCBpbnQgbiwgaW50IHFzY2FsZSk7CisgICAgdm9pZCAoKmRjdF91bnF1YW50 aXplX21wZWcxX2ludHJhKShjb25zdCBNUFZDb250ZXh0ICpzLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCAqYmxvY2svKmFsaWduIDE2Ki8sIGludCBuLCBp bnQgcXNjYWxlKTsKKyAgICB2b2lkICgqZGN0X3VucXVhbnRpemVfbXBlZzFfaW50ZXIpKGNvbnN0 IE1QVkNvbnRleHQgKnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQxNl90ICpibG9jay8qYWxpZ24gMTYqLywgaW50IG4sIGludCBxc2NhbGUpOworICAgIHZvaWQg KCpkY3RfdW5xdWFudGl6ZV9tcGVnMl9pbnRyYSkoY29uc3QgTVBWQ29udGV4dCAqcywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDE2X3QgKmJsb2NrLyphbGlnbiAx NiovLCBpbnQgbiwgaW50IHFzY2FsZSk7CisgICAgdm9pZCAoKmRjdF91bnF1YW50aXplX21wZWcy X2ludGVyKShjb25zdCBNUFZDb250ZXh0ICpzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW50MTZfdCAqYmxvY2svKmFsaWduIDE2Ki8sIGludCBuLCBpbnQgcXNjYWxl KTsKKyAgICB2b2lkICgqZGN0X3VucXVhbnRpemVfaDI2M19pbnRyYSkoY29uc3QgTVBWQ29udGV4 dCAqcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCAqYmxv Y2svKmFsaWduIDE2Ki8sIGludCBuLCBpbnQgcXNjYWxlKTsKKyAgICB2b2lkICgqZGN0X3VucXVh bnRpemVfaDI2M19pbnRlcikoY29uc3QgTVBWQ29udGV4dCAqcywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCAqYmxvY2svKmFsaWduIDE2Ki8sIGludCBuLCBp bnQgcXNjYWxlKTsKIH0gTVBWVW5xdWFudERTUENvbnRleHQ7CiAKICNpZiAhQVJDSF9NSVBTCmRp ZmYgLS1naXQgYS9saWJhdmNvZGVjL25lb24vbXBlZ3ZpZGVvLmMgYi9saWJhdmNvZGVjL25lb24v bXBlZ3ZpZGVvLmMKaW5kZXggYTAyNzZhZDgwOC4uZmRjNTdkMzg3NiAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy9uZW9uL21wZWd2aWRlby5jCisrKyBiL2xpYmF2Y29kZWMvbmVvbi9tcGVndmlkZW8u YwpAQCAtODQsNyArODQsNyBAQCBzdGF0aWMgdm9pZCBpbmxpbmUgZmZfZGN0X3VucXVhbnRpemVf aDI2M19uZW9uKGludCBxc2NhbGUsIGludCBxYWRkLCBpbnQgbkNvZWZmcwogICAgIHZzdDFfczE2 KGJsb2NrLCBkMHMxNik7CiB9CiAKLXN0YXRpYyB2b2lkIGRjdF91bnF1YW50aXplX2gyNjNfaW50 ZXJfbmVvbihNcGVnRW5jQ29udGV4dCAqcywgaW50MTZfdCAqYmxvY2ssCitzdGF0aWMgdm9pZCBk Y3RfdW5xdWFudGl6ZV9oMjYzX2ludGVyX25lb24oY29uc3QgTVBWQ29udGV4dCAqcywgaW50MTZf dCAqYmxvY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 IG4sIGludCBxc2NhbGUpCiB7CiAgICAgaW50IG5Db2VmZnMgPSBzLT5pbnRlcl9zY2FudGFibGUu cmFzdGVyX2VuZFtzLT5ibG9ja19sYXN0X2luZGV4W25dXTsKQEAgLTkzLDcgKzkzLDcgQEAgc3Rh dGljIHZvaWQgZGN0X3VucXVhbnRpemVfaDI2M19pbnRlcl9uZW9uKE1wZWdFbmNDb250ZXh0ICpz LCBpbnQxNl90ICpibG9jaywKICAgICBmZl9kY3RfdW5xdWFudGl6ZV9oMjYzX25lb24ocXNjYWxl LCBxYWRkLCBuQ29lZmZzICsgMSwgYmxvY2spOwogfQogCi1zdGF0aWMgdm9pZCBkY3RfdW5xdWFu dGl6ZV9oMjYzX2ludHJhX25lb24oTXBlZ0VuY0NvbnRleHQgKnMsIGludDE2X3QgKmJsb2NrLAor c3RhdGljIHZvaWQgZGN0X3VucXVhbnRpemVfaDI2M19pbnRyYV9uZW9uKGNvbnN0IE1QVkNvbnRl eHQgKnMsIGludDE2X3QgKmJsb2NrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCBuLCBpbnQgcXNjYWxlKQogewogICAgIGludCBxYWRkOwpkaWZmIC0tZ2l0 IGEvbGliYXZjb2RlYy9wcGMvbXBlZ3ZpZGVvX2FsdGl2ZWMuYyBiL2xpYmF2Y29kZWMvcHBjL21w ZWd2aWRlb19hbHRpdmVjLmMKaW5kZXggMjZlOThhY2ZiOC4uYWQzYTc4M2E4NyAxMDA2NDQKLS0t IGEvbGliYXZjb2RlYy9wcGMvbXBlZ3ZpZGVvX2FsdGl2ZWMuYworKysgYi9saWJhdmNvZGVjL3Bw Yy9tcGVndmlkZW9fYWx0aXZlYy5jCkBAIC00MCw4ICs0MCw4IEBACiAKIC8qIEFsdGlWZWMgdmVy c2lvbiBvZiBkY3RfdW5xdWFudGl6ZV9oMjYzCiAgICB0aGlzIGNvZGUgYXNzdW1lcyBgYmxvY2sn IGlzIDE2IGJ5dGVzLWFsaWduZWQgKi8KLXN0YXRpYyB2b2lkIGRjdF91bnF1YW50aXplX2gyNjNf YWx0aXZlYyhNcGVnRW5jQ29udGV4dCAqcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludDE2X3QgKmJsb2NrLCBpbnQgbiwgaW50IHFzY2FsZSkKK3N0YXRpYyB2b2lkIGRjdF91 bnF1YW50aXplX2gyNjNfYWx0aXZlYyhjb25zdCBNUFZDb250ZXh0ICpzLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDE2X3QgKmJsb2NrLCBpbnQgbiwgaW50IHFz Y2FsZSkKIHsKICAgICBpbnQgaSwgcW11bCwgcWFkZDsKICAgICBpbnQgbkNvZWZmczsKZGlmZiAt LWdpdCBhL2xpYmF2Y29kZWMveDg2L21wZWd2aWRlby5jIGIvbGliYXZjb2RlYy94ODYvbXBlZ3Zp ZGVvLmMKaW5kZXggODYzMmFjZDQxMi4uNGMzMjk5MzYyZSAxMDA2NDQKLS0tIGEvbGliYXZjb2Rl Yy94ODYvbXBlZ3ZpZGVvLmMKKysrIGIvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVvLmMKQEAgLTMw LDggKzMwLDggQEAKIAogI2lmIEhBVkVfTU1YX0lOTElORQogCi1zdGF0aWMgdm9pZCBkY3RfdW5x dWFudGl6ZV9oMjYzX2ludHJhX21teChNcGVnRW5jQ29udGV4dCAqcywKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQxNl90ICpibG9jaywgaW50IG4sIGludCBxc2NhbGUpCitz dGF0aWMgdm9pZCBkY3RfdW5xdWFudGl6ZV9oMjYzX2ludHJhX21teChjb25zdCBNUFZDb250ZXh0 ICpzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCAq YmxvY2ssIGludCBuLCBpbnQgcXNjYWxlKQogewogICAgIHg4Nl9yZWcgbGV2ZWwsIHFtdWwsIHFh ZGQsIG5Db2VmZnM7CiAKQEAgLTEwNSw4ICsxMDUsOCBAQCBfX2FzbV9fIHZvbGF0aWxlKAogfQog CiAKLXN0YXRpYyB2b2lkIGRjdF91bnF1YW50aXplX2gyNjNfaW50ZXJfbW14KE1wZWdFbmNDb250 ZXh0ICpzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDE2X3QgKmJsb2Nr LCBpbnQgbiwgaW50IHFzY2FsZSkKK3N0YXRpYyB2b2lkIGRjdF91bnF1YW50aXplX2gyNjNfaW50 ZXJfbW14KGNvbnN0IE1QVkNvbnRleHQgKnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQxNl90ICpibG9jaywgaW50IG4sIGludCBxc2NhbGUpCiB7CiAgICAg eDg2X3JlZyBxbXVsLCBxYWRkLCBuQ29lZmZzOwogCkBAIC0xNjYsOCArMTY2LDggQEAgX19hc21f XyB2b2xhdGlsZSgKICAgICAgICAgKTsKIH0KIAotc3RhdGljIHZvaWQgZGN0X3VucXVhbnRpemVf bXBlZzFfaW50cmFfbW14KE1wZWdFbmNDb250ZXh0ICpzLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludDE2X3QgKmJsb2NrLCBpbnQgbiwgaW50IHFzY2FsZSkKK3N0YXRp YyB2b2lkIGRjdF91bnF1YW50aXplX21wZWcxX2ludHJhX21teChjb25zdCBNUFZDb250ZXh0ICpz LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDE2X3QgKmJs b2NrLCBpbnQgbiwgaW50IHFzY2FsZSkKIHsKICAgICB4ODZfcmVnIG5Db2VmZnM7CiAgICAgY29u c3QgdWludDE2X3QgKnF1YW50X21hdHJpeDsKQEAgLTIzNSw4ICsyMzUsOCBAQCBfX2FzbV9fIHZv bGF0aWxlKAogICAgIGJsb2NrWzBdPSBibG9jazA7CiB9CiAKLXN0YXRpYyB2b2lkIGRjdF91bnF1 YW50aXplX21wZWcxX2ludGVyX21teChNcGVnRW5jQ29udGV4dCAqcywKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90ICpibG9jaywgaW50IG4sIGludCBxc2NhbGUp CitzdGF0aWMgdm9pZCBkY3RfdW5xdWFudGl6ZV9tcGVnMV9pbnRlcl9tbXgoY29uc3QgTVBWQ29u dGV4dCAqcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQx Nl90ICpibG9jaywgaW50IG4sIGludCBxc2NhbGUpCiB7CiAgICAgeDg2X3JlZyBuQ29lZmZzOwog ICAgIGNvbnN0IHVpbnQxNl90ICpxdWFudF9tYXRyaXg7CkBAIC0zMDEsOCArMzAxLDggQEAgX19h c21fXyB2b2xhdGlsZSgKICAgICAgICAgKTsKIH0KIAotc3RhdGljIHZvaWQgZGN0X3VucXVhbnRp emVfbXBlZzJfaW50cmFfbW14KE1wZWdFbmNDb250ZXh0ICpzLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludDE2X3QgKmJsb2NrLCBpbnQgbiwgaW50IHFzY2FsZSkKK3N0 YXRpYyB2b2lkIGRjdF91bnF1YW50aXplX21wZWcyX2ludHJhX21teChjb25zdCBNUFZDb250ZXh0 ICpzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDE2X3Qg KmJsb2NrLCBpbnQgbiwgaW50IHFzY2FsZSkKIHsKICAgICB4ODZfcmVnIG5Db2VmZnM7CiAgICAg Y29uc3QgdWludDE2X3QgKnF1YW50X21hdHJpeDsKQEAgLTM2OSw4ICszNjksOCBAQCBfX2FzbV9f IHZvbGF0aWxlKAogICAgICAgICAvL05vdGUsIHdlIGRvIG5vdCBkbyBtaXNtYXRjaCBjb250cm9s IGZvciBpbnRyYSBhcyBlcnJvcnMgY2Fubm90IGFjY3VtdWxhdGUKIH0KIAotc3RhdGljIHZvaWQg ZGN0X3VucXVhbnRpemVfbXBlZzJfaW50ZXJfbW14KE1wZWdFbmNDb250ZXh0ICpzLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDE2X3QgKmJsb2NrLCBpbnQgbiwgaW50 IHFzY2FsZSkKK3N0YXRpYyB2b2lkIGRjdF91bnF1YW50aXplX21wZWcyX2ludGVyX21teChjb25z dCBNUFZDb250ZXh0ICpzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludDE2X3QgKmJsb2NrLCBpbnQgbiwgaW50IHFzY2FsZSkKIHsKICAgICB4ODZfcmVnIG5D b2VmZnM7CiAgICAgY29uc3QgdWludDE2X3QgKnF1YW50X21hdHJpeDsKLS0gCjIuNTIuMAoKCkZy b20gY2FhY2YwYWQyY2Y0ZjY4M2YyNjY0NGRkZTYzYzU5NWI4ZmYxYTgxNyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRA b3V0bG9vay5jb20+CkRhdGU6IFdlZCwgMTkgTm92IDIwMjUgMTE6NTE6MDMgKzAxMDAKU3ViamVj dDogW1BBVENIIDE2OS8zMDRdIGF2Y29kZWMvcHBjL21wZWd2aWRlb19hbHRpdmVjOiBTcGxpdCBp bnRyYS9pbnRlcgogdW5xdWFudGl6aW5nCgpEb24ndCB1c2UgYSBzaW5nbGUgZnVuY3Rpb24gdGhh dCBjaGVja3MgbWJfaW50cmEuIEZvcmdvdHRlbgppbiBkNTA2MzVjZDI0N2UxN2ZlMTZjNjMyMTli OWFlODBkNDVhODE4NWIxLgoKU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRy ZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGliYXZjb2RlYy9wcGMvbXBlZ3ZpZGVv X2FsdGl2ZWMuYyB8IDcxICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xp YmF2Y29kZWMvcHBjL21wZWd2aWRlb19hbHRpdmVjLmMgYi9saWJhdmNvZGVjL3BwYy9tcGVndmlk ZW9fYWx0aXZlYy5jCmluZGV4IGFkM2E3ODNhODcuLjdiNTRkZTNkOTEgMTAwNjQ0Ci0tLSBhL2xp YmF2Y29kZWMvcHBjL21wZWd2aWRlb19hbHRpdmVjLmMKKysrIGIvbGliYXZjb2RlYy9wcGMvbXBl Z3ZpZGVvX2FsdGl2ZWMuYwpAQCAtNDAsNDEgKzQwLDE0IEBACiAKIC8qIEFsdGlWZWMgdmVyc2lv biBvZiBkY3RfdW5xdWFudGl6ZV9oMjYzCiAgICB0aGlzIGNvZGUgYXNzdW1lcyBgYmxvY2snIGlz IDE2IGJ5dGVzLWFsaWduZWQgKi8KLXN0YXRpYyB2b2lkIGRjdF91bnF1YW50aXplX2gyNjNfYWx0 aXZlYyhjb25zdCBNUFZDb250ZXh0ICpzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludDE2X3QgKmJsb2NrLCBpbnQgbiwgaW50IHFzY2FsZSkKK3N0YXRpYyBhdl9h bHdheXNfaW5saW5lCit2b2lkIGRjdF91bnF1YW50aXplX2gyNjNfYWx0aXZlYyhpbnQxNl90ICpi bG9jaywgaW50IG5iX2NvZWZmcywgaW50IHFhZGQsIGludCBxbXVsKQogewotICAgIGludCBpLCBx bXVsLCBxYWRkOwotICAgIGludCBuQ29lZmZzOwotCi0gICAgcWFkZCA9IChxc2NhbGUgLSAxKSB8 IDE7Ci0gICAgcW11bCA9IHFzY2FsZSA8PCAxOwotCi0gICAgaWYgKHMtPm1iX2ludHJhKSB7Ci0g ICAgICAgIGlmICghcy0+aDI2M19haWMpIHsKLSAgICAgICAgICAgIGlmIChuIDwgNCkKLSAgICAg ICAgICAgICAgICBibG9ja1swXSA9IGJsb2NrWzBdICogcy0+eV9kY19zY2FsZTsKLSAgICAgICAg ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBibG9ja1swXSA9IGJsb2NrWzBdICogcy0+Y19kY19z Y2FsZTsKLSAgICAgICAgfWVsc2UKLSAgICAgICAgICAgIHFhZGQgPSAwOwotICAgICAgICBpID0g MTsKLSAgICAgICAgaWYgKHMtPmFjX3ByZWQpCi0gICAgICAgICAgICBuQ29lZmZzID0gNjM7Ci0g ICAgICAgIGVsc2UKLSAgICAgICAgICAgIG5Db2VmZnMgPSBzLT5pbnRyYV9zY2FudGFibGUucmFz dGVyX2VuZFtzLT5ibG9ja19sYXN0X2luZGV4W25dXTsKLSAgICB9IGVsc2UgewotICAgICAgICBp ID0gMDsKLSAgICAgICAgYXZfYXNzZXJ0MihzLT5ibG9ja19sYXN0X2luZGV4W25dPj0wKTsKLSAg ICAgICAgbkNvZWZmcyA9IHMtPmludGVyX3NjYW50YWJsZS5yYXN0ZXJfZW5kW3MtPmJsb2NrX2xh c3RfaW5kZXhbbl1dOwotICAgIH0KLQotICAgIHsKICAgICAgICAgcmVnaXN0ZXIgY29uc3QgdmVj dG9yIHNpZ25lZCBzaG9ydCB2Y3plcm8gPSAoY29uc3QgdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNf c3BsYXRfczE2KDApOwogICAgICAgICBERUNMQVJFX0FMSUdORUQoMTYsIHNob3J0LCBxbXVsOCkg PSBxbXVsOwogICAgICAgICBERUNMQVJFX0FMSUdORUQoMTYsIHNob3J0LCBxYWRkOCkgPSBxYWRk OwogICAgICAgICByZWdpc3RlciB2ZWN0b3Igc2lnbmVkIHNob3J0IGJsb2NrdiwgcW11bHYsIHFh ZGR2LCBucWFkZHYsIHRlbXAxOwogICAgICAgICByZWdpc3RlciB2ZWN0b3IgYm9vbCBzaG9ydCBi bG9ja3ZfbnVsbCwgYmxvY2t2X25lZzsKLSAgICAgICAgcmVnaXN0ZXIgc2hvcnQgYmFja3VwXzAg PSBibG9ja1swXTsKIAogICAgICAgICBxbXVsdiA9IHZlY19zcGxhdCgodmVjX3MxNil2ZWNfbGRl KDAsICZxbXVsOCksIDApOwogICAgICAgICBxYWRkdiA9IHZlY19zcGxhdCgodmVjX3MxNil2ZWNf bGRlKDAsICZxYWRkOCksIDApOwpAQCAtODIsNyArNTUsNyBAQCBzdGF0aWMgdm9pZCBkY3RfdW5x dWFudGl6ZV9oMjYzX2FsdGl2ZWMoY29uc3QgTVBWQ29udGV4dCAqcywKIAogICAgICAgICAvLyB2 ZWN0b3JpemUgYWxsIHRoZSAxNiBieXRlcy1hbGlnbmVkIGJsb2NrcwogICAgICAgICAvLyBvZiA4 IGVsZW1lbnRzCi0gICAgICAgIGZvciAocmVnaXN0ZXIgaW50IGogPSAwOyBqIDw9IG5Db2VmZnMg OyBqICs9IDgpIHsKKyAgICAgICAgZm9yIChyZWdpc3RlciBpbnQgaiA9IDA7IGogPD0gbmJfY29l ZmZzOyBqICs9IDgpIHsKICAgICAgICAgICAgIGJsb2NrdiA9IHZlY19sZChqIDw8IDEsIGJsb2Nr KTsKICAgICAgICAgICAgIGJsb2Nrdl9uZWcgPSB2ZWNfY21wbHQoYmxvY2t2LCB2Y3plcm8pOwog ICAgICAgICAgICAgYmxvY2t2X251bGwgPSB2ZWNfY21wZXEoYmxvY2t2LCB2Y3plcm8pOwpAQCAt OTQsMTQgKzY3LDM2IEBAIHN0YXRpYyB2b2lkIGRjdF91bnF1YW50aXplX2gyNjNfYWx0aXZlYyhj b25zdCBNUFZDb250ZXh0ICpzLAogICAgICAgICAgICAgYmxvY2t2ID0gdmVjX3NlbCh0ZW1wMSwg YmxvY2t2LCBibG9ja3ZfbnVsbCk7CiAgICAgICAgICAgICB2ZWNfc3QoYmxvY2t2LCBqIDw8IDEs IGJsb2NrKTsKICAgICAgICAgfQotCi0gICAgICAgIGlmIChpID09IDEpIHsKLSAgICAgICAgICAg IC8vIGNoZWF0LiB0aGlzIGF2b2lkIHNwZWNpYWwtY2FzaW5nIHRoZSBmaXJzdCBpdGVyYXRpb24K LSAgICAgICAgICAgIGJsb2NrWzBdID0gYmFja3VwXzA7Ci0gICAgICAgIH0KLSAgICB9CiB9CiAK K3N0YXRpYyB2b2lkIGRjdF91bnF1YW50aXplX2gyNjNfaW50cmFfYWx0aXZlYyhjb25zdCBNUFZD b250ZXh0ICpzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludDE2X3QgKmJsb2NrLCBpbnQgbiwgaW50IHFzY2FsZSkKK3sKKyAgICBpbnQgcWFkZCA9IChx c2NhbGUgLSAxKSB8IDE7CisgICAgaW50IHFtdWwgPSBxc2NhbGUgPDwgMTsKKyAgICBpbnQgYmxv Y2swID0gYmxvY2tbMF07CisgICAgaWYgKCFzLT5oMjYzX2FpYykgeworICAgICAgICBibG9jazAg Kj0gbiA8IDQgPyBzLT55X2RjX3NjYWxlIDogcy0+Y19kY19zY2FsZTsKKyAgICB9IGVsc2UKKyAg ICAgICAgcWFkZCA9IDA7CisgICAgaW50IG5iX2NvZWZmcyA9IHMtPmFjX3ByZWQgPyA2MyA6IHMt PmludHJhX3NjYW50YWJsZS5yYXN0ZXJfZW5kW3MtPmJsb2NrX2xhc3RfaW5kZXhbbl1dOworCisg ICAgZGN0X3VucXVhbnRpemVfaDI2M19hbHRpdmVjKGJsb2NrLCBuYl9jb2VmZnMsIHFhZGQsIHFt dWwpOworCisgICAgLy8gY2hlYXQuIHRoaXMgYXZvaWQgc3BlY2lhbC1jYXNpbmcgdGhlIGZpcnN0 IGl0ZXJhdGlvbgorICAgIGJsb2NrWzBdID0gYmxvY2swOworfQorCitzdGF0aWMgdm9pZCBkY3Rf dW5xdWFudGl6ZV9oMjYzX2ludGVyX2FsdGl2ZWMoY29uc3QgTVBWQ29udGV4dCAqcywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90ICpibG9jaywg aW50IG4sIGludCBxc2NhbGUpCit7CisgICAgaW50IHFhZGQgPSAocXNjYWxlIC0gMSkgfCAxOwor ICAgIGludCBxbXVsID0gcXNjYWxlIDw8IDE7CisgICAgYXZfYXNzZXJ0MihzLT5ibG9ja19sYXN0 X2luZGV4W25dPj0wKTsKKyAgICBpbnQgbmJfY29lZmZzID0gcy0+aW50ZXJfc2NhbnRhYmxlLnJh c3Rlcl9lbmRbcy0+YmxvY2tfbGFzdF9pbmRleFtuXV07CisKKyAgICBkY3RfdW5xdWFudGl6ZV9o MjYzX2FsdGl2ZWMoYmxvY2ssIG5iX2NvZWZmcywgcWFkZCwgcW11bCk7Cit9CiAjZW5kaWYgLyog SEFWRV9BTFRJVkVDICovCiAKIGF2X2NvbGQgdm9pZCBmZl9tcHZfdW5xdWFudGl6ZV9pbml0X3Bw YyhNUFZVbnF1YW50RFNQQ29udGV4dCAqcywgaW50IGJpdGV4YWN0KQpAQCAtMTEwLDcgKzEwNSw3 IEBAIGF2X2NvbGQgdm9pZCBmZl9tcHZfdW5xdWFudGl6ZV9pbml0X3BwYyhNUFZVbnF1YW50RFNQ Q29udGV4dCAqcywgaW50IGJpdGV4YWN0KQogICAgIGlmICghUFBDX0FMVElWRUMoYXZfZ2V0X2Nw dV9mbGFncygpKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcy0+ZGN0X3VucXVhbnRpemVfaDI2 M19pbnRyYSA9IGRjdF91bnF1YW50aXplX2gyNjNfYWx0aXZlYzsKLSAgICBzLT5kY3RfdW5xdWFu dGl6ZV9oMjYzX2ludGVyID0gZGN0X3VucXVhbnRpemVfaDI2M19hbHRpdmVjOworICAgIHMtPmRj dF91bnF1YW50aXplX2gyNjNfaW50cmEgPSBkY3RfdW5xdWFudGl6ZV9oMjYzX2ludHJhX2FsdGl2 ZWM7CisgICAgcy0+ZGN0X3VucXVhbnRpemVfaDI2M19pbnRlciA9IGRjdF91bnF1YW50aXplX2gy NjNfaW50ZXJfYWx0aXZlYzsKICNlbmRpZiAvKiBIQVZFX0FMVElWRUMgKi8KIH0KLS0gCjIuNTIu MAoKCkZyb20gZDEyYzg0YjY4MjU3OTM1NGZjMDM3NmE0MGM4NWM2ZjYwYjA4NjgxNiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWlu aGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFdlZCwgMTkgTm92IDIwMjUgMTI6MDA6MDggKzAxMDAK U3ViamVjdDogW1BBVENIIDE3MC8zMDRdIGF2Y29kZWMvcHBjL21wZWd2aWRlb19hbHRpdmVjOiBS ZWluZGVudCBhZnRlciB0aGUKIHByZXZpb3VzIGNvbW1pdAoKU2lnbmVkLW9mZi1ieTogQW5kcmVh cyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGliYXZj b2RlYy9wcGMvbXBlZ3ZpZGVvX2FsdGl2ZWMuYyB8IDQ0ICsrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvcHBjL21wZWd2aWRlb19hbHRpdmVjLmMgYi9saWJh dmNvZGVjL3BwYy9tcGVndmlkZW9fYWx0aXZlYy5jCmluZGV4IDdiNTRkZTNkOTEuLjcxODk0ZTc2 MGIgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvcHBjL21wZWd2aWRlb19hbHRpdmVjLmMKKysrIGIv bGliYXZjb2RlYy9wcGMvbXBlZ3ZpZGVvX2FsdGl2ZWMuYwpAQCAtNDMsMzAgKzQzLDMwIEBACiBz dGF0aWMgYXZfYWx3YXlzX2lubGluZQogdm9pZCBkY3RfdW5xdWFudGl6ZV9oMjYzX2FsdGl2ZWMo aW50MTZfdCAqYmxvY2ssIGludCBuYl9jb2VmZnMsIGludCBxYWRkLCBpbnQgcW11bCkKIHsKLSAg ICAgICAgcmVnaXN0ZXIgY29uc3QgdmVjdG9yIHNpZ25lZCBzaG9ydCB2Y3plcm8gPSAoY29uc3Qg dmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRfczE2KDApOwotICAgICAgICBERUNMQVJFX0FM SUdORUQoMTYsIHNob3J0LCBxbXVsOCkgPSBxbXVsOwotICAgICAgICBERUNMQVJFX0FMSUdORUQo MTYsIHNob3J0LCBxYWRkOCkgPSBxYWRkOwotICAgICAgICByZWdpc3RlciB2ZWN0b3Igc2lnbmVk IHNob3J0IGJsb2NrdiwgcW11bHYsIHFhZGR2LCBucWFkZHYsIHRlbXAxOwotICAgICAgICByZWdp c3RlciB2ZWN0b3IgYm9vbCBzaG9ydCBibG9ja3ZfbnVsbCwgYmxvY2t2X25lZzsKKyAgICByZWdp c3RlciBjb25zdCB2ZWN0b3Igc2lnbmVkIHNob3J0IHZjemVybyA9IChjb25zdCB2ZWN0b3Igc2ln bmVkIHNob3J0KXZlY19zcGxhdF9zMTYoMCk7CisgICAgREVDTEFSRV9BTElHTkVEKDE2LCBzaG9y dCwgcW11bDgpID0gcW11bDsKKyAgICBERUNMQVJFX0FMSUdORUQoMTYsIHNob3J0LCBxYWRkOCkg PSBxYWRkOworICAgIHJlZ2lzdGVyIHZlY3RvciBzaWduZWQgc2hvcnQgYmxvY2t2LCBxbXVsdiwg cWFkZHYsIG5xYWRkdiwgdGVtcDE7CisgICAgcmVnaXN0ZXIgdmVjdG9yIGJvb2wgc2hvcnQgYmxv Y2t2X251bGwsIGJsb2Nrdl9uZWc7CiAKLSAgICAgICAgcW11bHYgPSB2ZWNfc3BsYXQoKHZlY19z MTYpdmVjX2xkZSgwLCAmcW11bDgpLCAwKTsKLSAgICAgICAgcWFkZHYgPSB2ZWNfc3BsYXQoKHZl Y19zMTYpdmVjX2xkZSgwLCAmcWFkZDgpLCAwKTsKLSAgICAgICAgbnFhZGR2ID0gdmVjX3N1Yih2 Y3plcm8sIHFhZGR2KTsKKyAgICBxbXVsdiA9IHZlY19zcGxhdCgodmVjX3MxNil2ZWNfbGRlKDAs ICZxbXVsOCksIDApOworICAgIHFhZGR2ID0gdmVjX3NwbGF0KCh2ZWNfczE2KXZlY19sZGUoMCwg JnFhZGQ4KSwgMCk7CisgICAgbnFhZGR2ID0gdmVjX3N1Yih2Y3plcm8sIHFhZGR2KTsKIAotICAg ICAgICAvLyB2ZWN0b3JpemUgYWxsIHRoZSAxNiBieXRlcy1hbGlnbmVkIGJsb2NrcwotICAgICAg ICAvLyBvZiA4IGVsZW1lbnRzCi0gICAgICAgIGZvciAocmVnaXN0ZXIgaW50IGogPSAwOyBqIDw9 IG5iX2NvZWZmczsgaiArPSA4KSB7Ci0gICAgICAgICAgICBibG9ja3YgPSB2ZWNfbGQoaiA8PCAx LCBibG9jayk7Ci0gICAgICAgICAgICBibG9ja3ZfbmVnID0gdmVjX2NtcGx0KGJsb2NrdiwgdmN6 ZXJvKTsKLSAgICAgICAgICAgIGJsb2Nrdl9udWxsID0gdmVjX2NtcGVxKGJsb2NrdiwgdmN6ZXJv KTsKLSAgICAgICAgICAgIC8vIGNob29zZSBiZXR3ZWVuICtxYWRkIG9yIC1xYWRkIGFzIHRoZSB0 aGlyZCBvcGVyYW5kCi0gICAgICAgICAgICB0ZW1wMSA9IHZlY19zZWwocWFkZHYsIG5xYWRkdiwg YmxvY2t2X25lZyk7Ci0gICAgICAgICAgICAvLyBtdWx0aXBseSAmIGFkZCAoYmxvY2t7aSxpKzd9 ICogcW11bCBbKy1dIHFhZGQpCi0gICAgICAgICAgICB0ZW1wMSA9IHZlY19tbGFkZChibG9ja3Ys IHFtdWx2LCB0ZW1wMSk7Ci0gICAgICAgICAgICAvLyBwdXQgMCB3aGVyZSBibG9ja1t7aSxpKzd9 IHVzZWQgdG8gaGF2ZSAwCi0gICAgICAgICAgICBibG9ja3YgPSB2ZWNfc2VsKHRlbXAxLCBibG9j a3YsIGJsb2Nrdl9udWxsKTsKLSAgICAgICAgICAgIHZlY19zdChibG9ja3YsIGogPDwgMSwgYmxv Y2spOwotICAgICAgICB9CisgICAgLy8gdmVjdG9yaXplIGFsbCB0aGUgMTYgYnl0ZXMtYWxpZ25l ZCBibG9ja3MKKyAgICAvLyBvZiA4IGVsZW1lbnRzCisgICAgZm9yIChyZWdpc3RlciBpbnQgaiA9 IDA7IGogPD0gbmJfY29lZmZzOyBqICs9IDgpIHsKKyAgICAgICAgYmxvY2t2ID0gdmVjX2xkKGog PDwgMSwgYmxvY2spOworICAgICAgICBibG9ja3ZfbmVnID0gdmVjX2NtcGx0KGJsb2NrdiwgdmN6 ZXJvKTsKKyAgICAgICAgYmxvY2t2X251bGwgPSB2ZWNfY21wZXEoYmxvY2t2LCB2Y3plcm8pOwor ICAgICAgICAvLyBjaG9vc2UgYmV0d2VlbiArcWFkZCBvciAtcWFkZCBhcyB0aGUgdGhpcmQgb3Bl cmFuZAorICAgICAgICB0ZW1wMSA9IHZlY19zZWwocWFkZHYsIG5xYWRkdiwgYmxvY2t2X25lZyk7 CisgICAgICAgIC8vIG11bHRpcGx5ICYgYWRkIChibG9ja3tpLGkrN30gKiBxbXVsIFsrLV0gcWFk ZCkKKyAgICAgICAgdGVtcDEgPSB2ZWNfbWxhZGQoYmxvY2t2LCBxbXVsdiwgdGVtcDEpOworICAg ICAgICAvLyBwdXQgMCB3aGVyZSBibG9ja1t7aSxpKzd9IHVzZWQgdG8gaGF2ZSAwCisgICAgICAg IGJsb2NrdiA9IHZlY19zZWwodGVtcDEsIGJsb2NrdiwgYmxvY2t2X251bGwpOworICAgICAgICB2 ZWNfc3QoYmxvY2t2LCBqIDw8IDEsIGJsb2NrKTsKKyAgICB9CiB9CiAKIHN0YXRpYyB2b2lkIGRj dF91bnF1YW50aXplX2gyNjNfaW50cmFfYWx0aXZlYyhjb25zdCBNUFZDb250ZXh0ICpzLAotLSAK Mi41Mi4wCgoKRnJvbSA4NDBhNDc5OWMzMTU2MjlkMTgzNjUxYmY1N2VhNThkNzMwMmZkOWIzIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMu cmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogRnJpLCAyOCBOb3YgMjAyNSAxNjo1ODo0NCAr MDEwMApTdWJqZWN0OiBbUEFUQ0ggMTcxLzMwNF0gYXZjb2RlYy97YXJtLG5lb259L21wZWd2aWRl bzogVXNlIGludHJhIHNjYW50YWJsZSB0bwogdW5xdWFudCBIMjYzIGludHJhCk1JTUUtVmVyc2lv bjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRy YW5zZmVyLUVuY29kaW5nOiA4Yml0CgpGb3Jnb3R0ZW4gaW4gNzBhN2RmMDQ5YzQxMWQ5MjQ3ZWI2 MDc1NzIwYzg0MTk2YzNlNTVlOC4KClVzaW5nIHRoZSB3cm9uZyBzY2FudGFibGUgbWF0dGVycyBm b3IgY29kZWNzIGZvciB3aGljaCBib3RoIHNjYW50YWJsZXMKY2FuIGRpZmZlciwgbmFtZWx5IHRo ZSBNUEVHLTQgZGVjb2RlciBhbmQgdGhlIFdNVjEvMiBjb2RlY3MuCgpGb3IgV01WMSBpdCBjYW4g bGVhZCB0byB3cm9uZyBvdXRwdXQgaW4gY2FzZSB0aGUgSURDVCBwZXJtdXRhdGlvbgppcyBGRl9J RENUX1BFUk1fUEFSVFRSQU5TLCBiZWNhdXNlIGluIHRoaXMgY2FzZSB0aGUgZW50cmllcyBvZgpv ZiB0aGUgaW50cmEgc2NhbnRhYmxlJ3MgcmFzdGVyIGVuZCBhcmUgbm90IGFsd2F5cyA8PSB0aGUg Y29ycmVzcG9uZGluZwplbnRyaWVzIG9mIHRoZSBpbnRlciBzY2FudGFibGUncyByYXN0ZXIgZW5k IHdoZW4gdGhlIGZvcm1lciBpcwppbml0aWFsaXplZCB2aWEgZmZfd212MV9zY2FudGFibGVbMV0g YW5kIHRoZSBsYXR0ZXIgdmlhIGZmX3dtdjFfc2NhbnRhYmxlWzBdLgpGRl9JRENUX1BFUk1fUEFS VFRSQU5TIGlzIHVzZWQgaWZmIHRoZSBOZW9uIElEQ1QgaXMgdXNlZCAoZm9yIGJvdGggYXJtCmFu ZCBhYXJjaDY0KS4qIFNhaWQgSURDVCBpcyBub3QgdXNlZCBkdXJpbmcgRkFURSwgc28gdGhhdCB0 aGlzIGlzc3VlCndlbnQgdW5ub3RpY2VkLgoKV01WMiB1c2VzIHRoZSBzYW1lIHNjYW50YWJsZXMs IGJ1dCB1c2VzIGEgY3VzdG9tIElEQ1QKd2hpY2ggYWx3YXlzIHVzZXMgRkZfSURDVF9QRVJNX05P TkUgZm9yIHdoaWNoIHRoZSBpbnRlcl9zY2FudGFibGUsCnNvIHRoYXQgdGhlIG91dHB1dCBpcyBh bHdheXMgY29ycmVjdCBmb3IgaXQuCgpUaGUgc2NhbnRhYmxlIGZvciBNUEVHLTQgY2FuIGNoYW5n ZSBtaWQtc3RyZWFtIChmb3IgdGhlIGRlY29kZXIpLApidXQgc2luY2UgYzQxODE4ZGM1ZGMxNGVi OTQ0NzYxMjA0ZTdiMGFjMTc5YTZkY2QxYSBvbmx5IHRoZSBpbnRyYQpzY2FudGFibGUgaXMgdXBk YXRlZCwgc28gdGhhdCBib3RoIHNjYW50YWJsZXMgY2FuIGdldCBvdXQgb2Ygc3luYy4KSW4gc3Vj aCBhIGNhc2UgdGhlIHVucXVhbnRpemUgaW50cmEgZnVuY3Rpb25zIGNvdWxkIHVucXVhbnRpemUK YW4gaW5jb3JyZWN0IG51bWJlciBvZiBjb2VmZmljaWVudHMuCgpVc2luZyByYXN0ZXJfZW5kIG9m IHRoZSB3cm9uZyBzY2FudGFibGUgY2FuIGFsc28gbGVhZCB0byBhbgp1bm5lY2Vzc2FyaWx5IGxh cmdlIGFtb3VudCBvZiBjb2VmZmljaWVudHMgdW5xdWFudGl6ZWQuCgoqOiBGRl9JRENUX1BFUk1f U0lNUExFIGFuZCBGRl9JRENUX1BFUk1fVFJBTlNQT1NFIHdvdWxkIGFsc28gbm90IHdvcmssCmJ1 dCB0aGV5IGFyZSBub3QgdXNlZCBhdCBhbGwgYnkgYXJtIGFuZCBhYXJjaDY0LgoKUmV2aWV3ZWQt Ynk6IE1hcnRpbiBTdG9yc2rDtiA8bWFydGluQG1hcnRpbi5zdD4KU2lnbmVkLW9mZi1ieTogQW5k cmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGli YXZjb2RlYy9hcm0vYXNtLW9mZnNldHMuaCAgICAgICB8IDEgKwogbGliYXZjb2RlYy9hcm0vbXBl Z3ZpZGVvX2FybS5jICAgICB8IDIgKysKIGxpYmF2Y29kZWMvYXJtL21wZWd2aWRlb19hcm12NXRl LmMgfCAyICstCiBsaWJhdmNvZGVjL2FybS9tcGVndmlkZW9fbmVvbi5TICAgIHwgMiArLQogbGli YXZjb2RlYy9tcGVndmlkZW8uaCAgICAgICAgICAgICB8IDIgKy0KIGxpYmF2Y29kZWMvbmVvbi9t cGVndmlkZW8uYyAgICAgICAgfCAyICstCiA2IGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2FybS9hc20tb2Zmc2V0 cy5oIGIvbGliYXZjb2RlYy9hcm0vYXNtLW9mZnNldHMuaAppbmRleCBhMjE3NGIwYTA4Li42N2Ux ZjJmZjZkIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2FybS9hc20tb2Zmc2V0cy5oCisrKyBiL2xp YmF2Y29kZWMvYXJtL2FzbS1vZmZzZXRzLmgKQEAgLTI4LDUgKzI4LDYgQEAKICNkZWZpbmUgQkxP Q0tfTEFTVF9JTkRFWCAgICAgICAgIDB4MTAKICNkZWZpbmUgSDI2M19BSUMgICAgICAgICAgICAg ICAgIDB4NDAKICNkZWZpbmUgSU5URVJfU0NBTlRBQl9SQVNURVJfRU5EIDB4ODgKKyNkZWZpbmUg SU5UUkFfU0NBTlRBQl9SQVNURVJfRU5EIDB4MTBjCiAKICNlbmRpZiAvKiBBVkNPREVDX0FSTV9B U01fT0ZGU0VUU19IICovCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2FybS9tcGVndmlkZW9fYXJt LmMgYi9saWJhdmNvZGVjL2FybS9tcGVndmlkZW9fYXJtLmMKaW5kZXggY2IxMDljZDgzMi4uNTkz ZTk5ODE4MSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9hcm0vbXBlZ3ZpZGVvX2FybS5jCisrKyBi L2xpYmF2Y29kZWMvYXJtL21wZWd2aWRlb19hcm0uYwpAQCAtMzgsNiArMzgsOCBAQCBDSEVDS19P RkZTRVQoTXBlZ0VuY0NvbnRleHQsIGFjX3ByZWQsICAgICAgICAgIEFDX1BSRUQpOwogQ0hFQ0tf T0ZGU0VUKE1wZWdFbmNDb250ZXh0LCBibG9ja19sYXN0X2luZGV4LCBCTE9DS19MQVNUX0lOREVY KTsKIENIRUNLX09GRlNFVChNcGVnRW5jQ29udGV4dCwgaW50ZXJfc2NhbnRhYmxlLnJhc3Rlcl9l bmQsCiAgICAgICAgICAgICAgSU5URVJfU0NBTlRBQl9SQVNURVJfRU5EKTsKK0NIRUNLX09GRlNF VChNcGVnRW5jQ29udGV4dCwgaW50cmFfc2NhbnRhYmxlLnJhc3Rlcl9lbmQsCisgICAgICAgICAg ICAgSU5UUkFfU0NBTlRBQl9SQVNURVJfRU5EKTsKIENIRUNLX09GRlNFVChNcGVnRW5jQ29udGV4 dCwgaDI2M19haWMsICAgICAgICAgSDI2M19BSUMpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2xp YmF2Y29kZWMvYXJtL21wZWd2aWRlb19hcm12NXRlLmMgYi9saWJhdmNvZGVjL2FybS9tcGVndmlk ZW9fYXJtdjV0ZS5jCmluZGV4IDNhNmQwMTU3NjcuLmIyNzkwYjQ4ZmUgMTAwNjQ0Ci0tLSBhL2xp YmF2Y29kZWMvYXJtL21wZWd2aWRlb19hcm12NXRlLmMKKysrIGIvbGliYXZjb2RlYy9hcm0vbXBl Z3ZpZGVvX2FybXY1dGUuYwpAQCAtNzMsNyArNzMsNyBAQCBzdGF0aWMgdm9pZCBkY3RfdW5xdWFu dGl6ZV9oMjYzX2ludHJhX2FybXY1dGUoY29uc3QgTVBWQ29udGV4dCAqcywKICAgICBpZihzLT5h Y19wcmVkKQogICAgICAgICBuQ29lZmZzPTYzOwogICAgIGVsc2UKLSAgICAgICAgbkNvZWZmcz0g cy0+aW50ZXJfc2NhbnRhYmxlLnJhc3Rlcl9lbmRbIHMtPmJsb2NrX2xhc3RfaW5kZXhbbl0gXTsK KyAgICAgICAgbkNvZWZmcyA9IHMtPmludHJhX3NjYW50YWJsZS5yYXN0ZXJfZW5kW3MtPmJsb2Nr X2xhc3RfaW5kZXhbbl1dOwogCiAgICAgZmZfZGN0X3VucXVhbnRpemVfaDI2M19hcm12NXRlKGJs b2NrLCBxbXVsLCBxYWRkLCBuQ29lZmZzICsgMSk7CiAgICAgYmxvY2tbMF0gPSBsZXZlbDsKZGlm ZiAtLWdpdCBhL2xpYmF2Y29kZWMvYXJtL21wZWd2aWRlb19uZW9uLlMgYi9saWJhdmNvZGVjL2Fy bS9tcGVndmlkZW9fbmVvbi5TCmluZGV4IDE4ODlkN2E5MTIuLmM3YTM1ZWEyNjcgMTAwNjQ0Ci0t LSBhL2xpYmF2Y29kZWMvYXJtL21wZWd2aWRlb19uZW9uLlMKKysrIGIvbGliYXZjb2RlYy9hcm0v bXBlZ3ZpZGVvX25lb24uUwpAQCAtNzcsNyArNzcsNyBAQCBmdW5jdGlvbiBmZl9kY3RfdW5xdWFu dGl6ZV9oMjYzX2ludHJhX25lb24sIGV4cG9ydD0xCiAgICAgICAgIHB1c2ggICAgICAgICAgICB7 cjQtcjYsbHJ9CiAgICAgICAgIGFkZCAgICAgICAgICAgICByMTIsIHIwLCAgI0JMT0NLX0xBU1Rf SU5ERVgKICAgICAgICAgbGRyICAgICAgICAgICAgIHI2LCAgW3IwLCAjQUNfUFJFRF0KLSAgICAg ICAgYWRkICAgICAgICAgICAgIGxyLCAgcjAsICAjSU5URVJfU0NBTlRBQl9SQVNURVJfRU5ECisg ICAgICAgIGFkZCAgICAgICAgICAgICBsciwgIHIwLCAgI0lOVFJBX1NDQU5UQUJfUkFTVEVSX0VO RAogICAgICAgICBjbXAgICAgICAgICAgICAgcjYsICAjMAogICAgICAgICBpdCAgICAgICAgICAg ICAgbmUKICAgICAgICAgbW92bmUgICAgICAgICAgIHIxMiwgIzYzCmRpZmYgLS1naXQgYS9saWJh dmNvZGVjL21wZWd2aWRlby5oIGIvbGliYXZjb2RlYy9tcGVndmlkZW8uaAppbmRleCBlMjFjZTUx NjRkLi43NThiZjU3YWI5IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL21wZWd2aWRlby5oCisrKyBi L2xpYmF2Y29kZWMvbXBlZ3ZpZGVvLmgKQEAgLTcyLDExICs3MiwxMSBAQCB0eXBlZGVmIHN0cnVj dCBNcGVnRW5jQ29udGV4dCB7CiAKICAgICAvKiBzY2FudGFibGVzICovCiAgICAgU2NhblRhYmxl IGludGVyX3NjYW50YWJsZTsgLy8vPCBpZiBpbnRlciA9PSBpbnRyYSB0aGVuIGludHJhIHNob3Vs ZCBiZSB1c2VkIHRvIHJlZHVjZSB0aGUgY2FjaGUgdXNhZ2UKKyAgICBTY2FuVGFibGUgaW50cmFf c2NhbnRhYmxlOwogCiAgICAgLyogV0FSTklORzogY2hhbmdlcyBhYm92ZSB0aGlzIGxpbmUgcmVx dWlyZSB1cGRhdGVzIHRvIGhhcmRjb2RlZAogICAgICAqICAgICAgICAgIG9mZnNldHMgdXNlZCBp biBBU00uICovCiAKLSAgICBTY2FuVGFibGUgaW50cmFfc2NhbnRhYmxlOwogICAgIHVpbnQ4X3Qg cGVybXV0YXRlZF9pbnRyYV9oX3NjYW50YWJsZVs2NF07CiAgICAgdWludDhfdCBwZXJtdXRhdGVk X2ludHJhX3Zfc2NhbnRhYmxlWzY0XTsKIApkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9uZW9uL21w ZWd2aWRlby5jIGIvbGliYXZjb2RlYy9uZW9uL21wZWd2aWRlby5jCmluZGV4IGZkYzU3ZDM4NzYu LjM0MjdkYmU0MjcgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvbmVvbi9tcGVndmlkZW8uYworKysg Yi9saWJhdmNvZGVjL25lb24vbXBlZ3ZpZGVvLmMKQEAgLTExMiw3ICsxMTIsNyBAQCBzdGF0aWMg dm9pZCBkY3RfdW5xdWFudGl6ZV9oMjYzX2ludHJhX25lb24oY29uc3QgTVBWQ29udGV4dCAqcywg aW50MTZfdCAqYmxvY2ssCiAgICAgaWYgKHMtPmFjX3ByZWQpIHsKICAgICAgICAgbkNvZWZmcyA9 IDYzOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG5Db2VmZnMgPSBzLT5pbnRlcl9zY2FudGFibGUu cmFzdGVyX2VuZFtzLT5ibG9ja19sYXN0X2luZGV4W25dXTsKKyAgICAgICAgbkNvZWZmcyA9IHMt PmludHJhX3NjYW50YWJsZS5yYXN0ZXJfZW5kW3MtPmJsb2NrX2xhc3RfaW5kZXhbbl1dOwogICAg ICAgICBpZiAobkNvZWZmcyA8PSAwKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KLS0gCjIu NTIuMAoKCkZyb20gM2UyOWY5NzYxMDVhNWY4OThlZDNhODlmMmYzMWFkNDYyN2Y0YjM1YiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJo ZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IEZyaSwgMjggTm92IDIwMjUgMjI6MjU6MzkgKzAx MDAKU3ViamVjdDogW1BBVENIIDE3Mi8zMDRdIHRlc3RzL2NoZWNrYXNtOiBBZGQgbXBlZ3ZpZGVv IHVucXVhbnRpemUgdGVzdAoKVGhpcyBhZGRzIGEgdGVzdCBmb3IgdGhlIG1wZWd2aWRlbyB1bnF1 YW50aXplIGZ1bmN0aW9ucy4KCkl0IGhhcyBiZWVuIHdyaXR0ZW4gaW4gb3JkZXIgdG8gYmUgYWJs ZSB0byBlYXNpbHkgYmVuY2gKdGhlc2UgZnVuY3Rpb25zLiBJdCBzaG91bGQgYmUgbm90ZWQgdGhh dCB0aGUgcmFuZG9tIGlucHV0CmZlZCB0byB0aGUgdGVzdGVkIGZ1bmN0aW9ucyBpcyBub3QgbmVj ZXNzYXJpbHkgcmVwcmVzZW50YXRpdmUKb2YgdGhlIHN0dWZmIGFjdHVhbGx5IG9jY3VyaW5nIGlu IHRoZSB3aWxkLiBTbyBiZW5jaG1hcmtzIHNob3VsZApiZSB0YWtlbiB3aXRoIGEgZ3JhaW4gb2Yg c2FsdDsgYnV0IGNvbXBhcmlzb25zIGJldHdlZW4gdHdvIGZ1bmN0aW9ucwp0aGF0IGRvIG5vdCBk ZXBlbmQgb24gYnJhbmNoIHByZWRpY3Rpb25zIGFyZSB2YWxpZCAodGhlIHVzZWNhc2UKZm9yIHRo aXMgaXMgdG8gcG9ydCB0aGUgeDg2IG1teCBmdW5jdGlvbnMgdG8gdXNlIHhtbSByZWdpc3RlcnMp LgoKRHVyaW5nIHRlc3RpbmcgSSBoYXZlIGZvdW5kIGEgYnVnIGluIHRoZSBhcm0vYWFyY2g2NCBu ZW9uIG9wdGltaXphdGlvbnMKd2hlbiB1c2luZyB0aGUgTElCTVBFRzIgcGVybXV0YXRpb24gKHVz ZWQgYnkgRkZfSURDVF9JTlQpOiBUaGUgY29kZQpzZWVtcyB0byBiZSBiYXNlZCBvbiB0aGUgcHJl c3VtcHRpb24gdGhhdCB0aGUgcmVtYWluZGVyIG9mIHRoZSBudW1iZXIKb2YgY29lZmZpY2llbnRz IHRvIHByb2Nlc3MgaXMgYWx3YXlzIDw9IDQgbW9kIDE2LiBUaGUgdGVzdCB0aGVyZWZvcmUKc29t ZXRpbWVzIGZhaWxzIGZvciB0aGVzZSBhcmNoZXMuCgpIaW50OiBJIGFtIG5vdCBjZXJ0YWluIHRo YXQgMTYgYml0cyBhcmUgZW5vdWdoIGZvciB0aGUgaW50ZXJtZWRpYXRlCnZhbHVlcyBvZiBhbGwg dGhlIGNvbXB1dGF0aW9ucyBpbnZvbHZlZDsgZS5nLiBib3RoIEZMViBhbmQgTVBFRy00CmVzY2Fw ZSB2YWx1ZXMgY2FuIGdvIGJleW9uZCB0aGF0IGFmdGVyIHRoZSBjb3JyZXNwb25kaW5nCm11bHRp cGxpY2F0aW9ucy4gVGhlIGlucHV0IGluIHRoaXMgdGVzdCBpcyBuZXZlcnRoZWxlc3MgZGVzaWdu ZWQKdG8gZml0IGludG8gMTYgYml0cy4KClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJk dCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIHRlc3RzL2NoZWNrYXNtL01h a2VmaWxlICAgICAgICAgICAgICAgfCAgIDEgKwogdGVzdHMvY2hlY2thc20vY2hlY2thc20uYyAg ICAgICAgICAgICB8ICAgMyArCiB0ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oICAgICAgICAgICAg IHwgICAxICsKIHRlc3RzL2NoZWNrYXNtL21wZWd2aWRlb191bnF1YW50aXplLmMgfCAyNzMgKysr KysrKysrKysrKysrKysrKysrKysrKysKIHRlc3RzL2ZhdGUvY2hlY2thc20ubWFrICAgICAgICAg ICAgICAgfCAgIDEgKwogNSBmaWxlcyBjaGFuZ2VkLCAyNzkgaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHRlc3RzL2NoZWNrYXNtL21wZWd2aWRlb191bnF1YW50aXplLmMKCmRpZmYg LS1naXQgYS90ZXN0cy9jaGVja2FzbS9NYWtlZmlsZSBiL3Rlc3RzL2NoZWNrYXNtL01ha2VmaWxl CmluZGV4IDM3NjJjMGQ4M2IuLmI5YzhhZGIyMWYgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNt L01ha2VmaWxlCisrKyBiL3Rlc3RzL2NoZWNrYXNtL01ha2VmaWxlCkBAIC0xOSw2ICsxOSw3IEBA IEFWQ09ERUNPQkpTLSQoQ09ORklHX0xMVklERFNQKSAgICAgICAgICArPSBsbHZpZGRzcC5vCiBB VkNPREVDT0JKUy0kKENPTkZJR19MTFZJREVOQ0RTUCkgICAgICAgKz0gbGx2aWRkc3BlbmMubwog QVZDT0RFQ09CSlMtJChDT05GSUdfTFBDKSAgICAgICAgICAgICAgICs9IGxwYy5vCiBBVkNPREVD T0JKUy0kKENPTkZJR19NRV9DTVApICAgICAgICAgICAgKz0gbW90aW9uLm8KK0FWQ09ERUNPQkpT LSQoQ09ORklHX01QRUdWSURFTykgICAgICAgICArPSBtcGVndmlkZW9fdW5xdWFudGl6ZS5vCiBB VkNPREVDT0JKUy0kKENPTkZJR19NUEVHVklERU9FTkNEU1ApICAgKz0gbXBlZ3ZpZGVvZW5jZHNw Lm8KIEFWQ09ERUNPQkpTLSQoQ09ORklHX1FQRUxEU1ApICAgICAgICAgICArPSBxcGVsZHNwLm8K IEFWQ09ERUNPQkpTLSQoQ09ORklHX1ZDMURTUCkgICAgICAgICAgICArPSB2YzFkc3AubwpkaWZm IC0tZ2l0IGEvdGVzdHMvY2hlY2thc20vY2hlY2thc20uYyBiL3Rlc3RzL2NoZWNrYXNtL2NoZWNr YXNtLmMKaW5kZXggOGM2NDY4NGZhMy4uYTg5OTk2NzkzNyAxMDA2NDQKLS0tIGEvdGVzdHMvY2hl Y2thc20vY2hlY2thc20uYworKysgYi90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jCkBAIC0yMTUs NiArMjE1LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAgI2lmIENPTkZJR19NRV9DTVAK ICAgICAgICAgeyAibW90aW9uIiwgY2hlY2thc21fY2hlY2tfbW90aW9uIH0sCiAgICAgI2VuZGlm CisgICAgI2lmIENPTkZJR19NUEVHVklERU8KKyAgICAgICAgeyAibXBlZ3ZpZGVvX3VucXVhbnRp emUiLCBjaGVja2FzbV9jaGVja19tcGVndmlkZW9fdW5xdWFudGl6ZSB9LAorICAgICNlbmRpZgog ICAgICNpZiBDT05GSUdfTVBFR1ZJREVPRU5DRFNQCiAgICAgICAgIHsgIm1wZWd2aWRlb2VuY2Rz cCIsIGNoZWNrYXNtX2NoZWNrX21wZWd2aWRlb2VuY2RzcCB9LAogICAgICNlbmRpZgpkaWZmIC0t Z2l0IGEvdGVzdHMvY2hlY2thc20vY2hlY2thc20uaCBiL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNt LmgKaW5kZXggMDVmNzRjYTE2Yi4uZWMwNzVjNDc2MyAxMDA2NDQKLS0tIGEvdGVzdHMvY2hlY2th c20vY2hlY2thc20uaAorKysgYi90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oCkBAIC0xMjMsNiAr MTIzLDcgQEAgdm9pZCBjaGVja2FzbV9jaGVja19sbHZpZGRzcCh2b2lkKTsKIHZvaWQgY2hlY2th c21fY2hlY2tfbGx2aWRkc3BlbmModm9pZCk7CiB2b2lkIGNoZWNrYXNtX2NoZWNrX2xwYyh2b2lk KTsKIHZvaWQgY2hlY2thc21fY2hlY2tfbW90aW9uKHZvaWQpOwordm9pZCBjaGVja2FzbV9jaGVj a19tcGVndmlkZW9fdW5xdWFudGl6ZSh2b2lkKTsKIHZvaWQgY2hlY2thc21fY2hlY2tfbXBlZ3Zp ZGVvZW5jZHNwKHZvaWQpOwogdm9pZCBjaGVja2FzbV9jaGVja19ubG1lYW5zKHZvaWQpOwogdm9p ZCBjaGVja2FzbV9jaGVja19vcHVzZHNwKHZvaWQpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2th c20vbXBlZ3ZpZGVvX3VucXVhbnRpemUuYyBiL3Rlc3RzL2NoZWNrYXNtL21wZWd2aWRlb191bnF1 YW50aXplLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uODM3NjA2ZTYw ZQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2NoZWNrYXNtL21wZWd2aWRlb191bnF1YW50aXpl LmMKQEAgLTAsMCArMSwyNzMgQEAKKy8qCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcu CisgKgorICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3Ig KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBGRm1wZWcgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBu b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisg Ki8KKworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPHN0ZGRlZi5oPgorCisjaW5jbHVk ZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJjaGVja2FzbS5oIgorCisjaW5jbHVkZSAibGliYXZj b2RlYy9pZGN0ZHNwLmgiCisjaW5jbHVkZSAibGliYXZjb2RlYy9tYXRob3BzLmgiCisjaW5jbHVk ZSAibGliYXZjb2RlYy9tcGVndmlkZW8uaCIKKyNpbmNsdWRlICJsaWJhdmNvZGVjL21wZWd2aWRl b2RhdGEuaCIKKyNpbmNsdWRlICJsaWJhdmNvZGVjL21wZWd2aWRlb191bnF1YW50aXplLmgiCisK KyNpbmNsdWRlICJsaWJhdnV0aWwvaW50cmVhZHdyaXRlLmgiCisjaW5jbHVkZSAibGliYXZ1dGls L21lbV9pbnRlcm5hbC5oIgorCisjZGVmaW5lIHJhbmRvbWl6ZV9zdHJ1Y3QoVFlQRSwgcykgZG8g eyAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0YXRpY19hc3NlcnQoIShfQWxpZ25vZihUWVBF KSAlIDQpLCAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICJjYW4ndCB1c2Ug YWxpZ25lZCBzdG9yZXMiKTsgICAgICAgICAgICBcCisgICAgdW5zaWduZWQgY2hhciAqcHRyID0g KHVuc2lnbmVkIGNoYXIqKXM7ICAgICAgICAgICAgICAgXAorICAgIGZvciAoc2l6ZV90IGkgPSAw OyBpIDwgc2l6ZW9mKCpzKSAmIH4zOyBpICs9IDQpICAgICAgIFwKKyAgICAgICAgQVZfV04zMkEo cHRyICsgaSwgcm5kKCkpOyAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZm9yIChzaXpl X3QgaSA9IHNpemVvZigqcykgJiB+MzsgaSA8IHNpemVvZigqcyk7ICsraSkgXAorICAgICAgICBw dHJbaV0gPSBybmQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIH0g d2hpbGUgKDApCisKK2VudW0gVGVzdFR5cGUgeworICAgIEgyNjMsCisgICAgTVBFRzEsCisgICAg TVBFRzIsCit9OworCitzdGF0aWMgdm9pZCBpbml0X2lkY3Rfc2NhbnRhYmxlKE1QVkNvbnRleHQg KmNvbnN0IHMsIGludCBpbnRyYV9zY2FudGFibGUpCit7CisgICAgc3RhdGljIGNvbnN0IGVudW0g aWRjdF9wZXJtdXRhdGlvbl90eXBlIHBlcm11dGF0aW9uX3R5cGVzW10gPSB7CisgICAgICAgIEZG X0lEQ1RfUEVSTV9OT05FLAorICAgICAgICBGRl9JRENUX1BFUk1fTElCTVBFRzIsCisjaWYgQVJD SF9YODZfMzIgJiYgSEFWRV9YODZBU00KKyAgICAgICAgRkZfSURDVF9QRVJNX1NJTVBMRSwKKyNl bmRpZgorI2lmIEFSQ0hfUFBDIHx8IEFSQ0hfWDg2CisgICAgICAgIEZGX0lEQ1RfUEVSTV9UUkFO U1BPU0UsCisjZW5kaWYKKyNpZiBBUkNIX0FSTSB8fCBBUkNIX0FBUkNINjQKKyAgICAgICAgRkZf SURDVF9QRVJNX1BBUlRUUkFOUywKKyNlbmRpZgorI2lmIEFSQ0hfWDg2ICYmIEhBVkVfWDg2QVNN CisgICAgICAgIEZGX0lEQ1RfUEVSTV9TU0UyLAorI2VuZGlmCisgICAgfTsKKyAgICAvLyBDb3Bp ZWQgaGVyZSB0byBhdm9pZCAjaWZzLgorICAgIHN0YXRpYyBjb25zdCB1aW50OF90IGZmX3dtdjFf c2NhbnRhYmxlW11bNjRdID0geworICAgIHsgMHgwMCwgMHgwOCwgMHgwMSwgMHgwMiwgMHgwOSwg MHgxMCwgMHgxOCwgMHgxMSwKKyAgICAgIDB4MEEsIDB4MDMsIDB4MDQsIDB4MEIsIDB4MTIsIDB4 MTksIDB4MjAsIDB4MjgsCisgICAgICAweDMwLCAweDM4LCAweDI5LCAweDIxLCAweDFBLCAweDEz LCAweDBDLCAweDA1LAorICAgICAgMHgwNiwgMHgwRCwgMHgxNCwgMHgxQiwgMHgyMiwgMHgzMSwg MHgzOSwgMHgzQSwKKyAgICAgIDB4MzIsIDB4MkEsIDB4MjMsIDB4MUMsIDB4MTUsIDB4MEUsIDB4 MDcsIDB4MEYsCisgICAgICAweDE2LCAweDFELCAweDI0LCAweDJCLCAweDMzLCAweDNCLCAweDND LCAweDM0LAorICAgICAgMHgyQywgMHgyNSwgMHgxRSwgMHgxNywgMHgxRiwgMHgyNiwgMHgyRCwg MHgzNSwKKyAgICAgIDB4M0QsIDB4M0UsIDB4MzYsIDB4MkUsIDB4MjcsIDB4MkYsIDB4MzcsIDB4 M0YsIH0sCisgICAgeyAweDAwLCAweDA4LCAweDAxLCAweDAyLCAweDA5LCAweDEwLCAweDE4LCAw eDExLAorICAgICAgMHgwQSwgMHgwMywgMHgwNCwgMHgwQiwgMHgxMiwgMHgxOSwgMHgyMCwgMHgy OCwKKyAgICAgIDB4MjEsIDB4MzAsIDB4MUEsIDB4MTMsIDB4MEMsIDB4MDUsIDB4MDYsIDB4MEQs CisgICAgICAweDE0LCAweDFCLCAweDIyLCAweDI5LCAweDM4LCAweDMxLCAweDM5LCAweDJBLAor ICAgICAgMHgyMywgMHgxQywgMHgxNSwgMHgwRSwgMHgwNywgMHgwRiwgMHgxNiwgMHgxRCwKKyAg ICAgIDB4MjQsIDB4MkIsIDB4MzIsIDB4M0EsIDB4MzMsIDB4M0IsIDB4MkMsIDB4MjUsCisgICAg ICAweDFFLCAweDE3LCAweDFGLCAweDI2LCAweDJELCAweDM0LCAweDNDLCAweDM1LAorICAgICAg MHgzRCwgMHgyRSwgMHgyNywgMHgyRiwgMHgzNiwgMHgzRSwgMHgzNywgMHgzRiwgfSwKKyAgICB7 IDB4MDAsIDB4MDEsIDB4MDgsIDB4MDIsIDB4MDMsIDB4MDksIDB4MTAsIDB4MTgsCisgICAgICAw eDExLCAweDBBLCAweDA0LCAweDA1LCAweDBCLCAweDEyLCAweDE5LCAweDIwLAorICAgICAgMHgy OCwgMHgzMCwgMHgyMSwgMHgxQSwgMHgxMywgMHgwQywgMHgwNiwgMHgwNywKKyAgICAgIDB4MEQs IDB4MTQsIDB4MUIsIDB4MjIsIDB4MjksIDB4MzgsIDB4MzEsIDB4MzksCisgICAgICAweDJBLCAw eDIzLCAweDFDLCAweDE1LCAweDBFLCAweDBGLCAweDE2LCAweDFELAorICAgICAgMHgyNCwgMHgy QiwgMHgzMiwgMHgzQSwgMHgzMywgMHgyQywgMHgyNSwgMHgxRSwKKyAgICAgIDB4MTcsIDB4MUYs IDB4MjYsIDB4MkQsIDB4MzQsIDB4M0IsIDB4M0MsIDB4MzUsCisgICAgICAweDJFLCAweDI3LCAw eDJGLCAweDM2LCAweDNELCAweDNFLCAweDM3LCAweDNGLCB9LAorICAgIHsgMHgwMCwgMHgwOCwg MHgxMCwgMHgwMSwgMHgxOCwgMHgyMCwgMHgyOCwgMHgwOSwKKyAgICAgIDB4MDIsIDB4MDMsIDB4 MEEsIDB4MTEsIDB4MTksIDB4MzAsIDB4MzgsIDB4MjksCisgICAgICAweDIxLCAweDFBLCAweDEy LCAweDBCLCAweDA0LCAweDA1LCAweDBDLCAweDEzLAorICAgICAgMHgxQiwgMHgyMiwgMHgzMSwg MHgzOSwgMHgzMiwgMHgyQSwgMHgyMywgMHgxQywKKyAgICAgIDB4MTQsIDB4MEQsIDB4MDYsIDB4 MDcsIDB4MEUsIDB4MTUsIDB4MUQsIDB4MjQsCisgICAgICAweDJCLCAweDMzLCAweDNBLCAweDNC LCAweDM0LCAweDJDLCAweDI1LCAweDFFLAorICAgICAgMHgxNiwgMHgwRiwgMHgxNywgMHgxRiwg MHgyNiwgMHgyRCwgMHgzQywgMHgzNSwKKyAgICAgIDB4MkUsIDB4MjcsIDB4MkYsIDB4MzYsIDB4 M0QsIDB4M0UsIDB4MzcsIDB4M0YsIH0KKyAgICB9OworCisgICAgc3RhdGljIGNvbnN0IHVpbnQ4 X3QgKmNvbnN0IHNjYW50YWJsZXNbXSA9IHsKKyAgICAgICAgZmZfYWx0ZXJuYXRlX3ZlcnRpY2Fs X3NjYW4sCisgICAgICAgIGZmX2FsdGVybmF0ZV9ob3Jpem9udGFsX3NjYW4sCisgICAgICAgIGZm X3ppZ3phZ19kaXJlY3QsCisgICAgICAgIGZmX3dtdjFfc2NhbnRhYmxlWzBdLAorICAgICAgICBm Zl93bXYxX3NjYW50YWJsZVsxXSwKKyAgICAgICAgZmZfd212MV9zY2FudGFibGVbMl0sCisgICAg ICAgIGZmX3dtdjFfc2NhbnRhYmxlWzNdLAorICAgIH07CisgICAgc3RhdGljIGNvbnN0IHVpbnQ4 X3QgKnNjYW50YWJsZSA9IE5VTEw7CisgICAgc3RhdGljIGVudW0gaWRjdF9wZXJtdXRhdGlvbl90 eXBlIGlkY3RfcGVybXV0YXRpb247CisKKyAgICBpZiAoIXNjYW50YWJsZSkgeworICAgICAgICBz Y2FudGFibGUgICAgICAgID0gc2NhbnRhYmxlc1tybmQoKSAlIEZGX0FSUkFZX0VMRU1TKHNjYW50 YWJsZXMpXTsKKyAgICAgICAgaWRjdF9wZXJtdXRhdGlvbiA9IHBlcm11dGF0aW9uX3R5cGVzW3Ju ZCgpICUgRkZfQVJSQVlfRUxFTVMocGVybXV0YXRpb25fdHlwZXMpXTsKKyAgICB9CisgICAgZmZf aW5pdF9zY2FudGFibGVfcGVybXV0YXRpb24ocy0+aWRzcC5pZGN0X3Blcm11dGF0aW9uLCBpZGN0 X3Blcm11dGF0aW9uKTsKKyAgICBmZl9pbml0X3NjYW50YWJsZShzLT5pZHNwLmlkY3RfcGVybXV0 YXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgaW50cmFfc2NhbnRhYmxlID8gJnMtPmludHJh X3NjYW50YWJsZSA6ICZzLT5pbnRlcl9zY2FudGFibGUsCisgICAgICAgICAgICAgICAgICAgICAg c2NhbnRhYmxlKTsKK30KKworc3RhdGljIHZvaWQgaW5pdF9oMjYzX3Rlc3QoTVBWQ29udGV4dCAq Y29uc3QgcywgaW50MTZfdCBibG9ja1s2NF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgbGFzdF9ub256ZXJvX2NvZWZmLCBpbnQgcXNjYWxlLCBpbnQgaW50cmEpCit7CisgICAgY29u c3QgdWludDhfdCAqcGVybXV0YXRpb24gPSBzLT5pbnRlcl9zY2FudGFibGUucGVybXV0YXRlZDsK KyAgICBpZiAoaW50cmEpIHsKKyAgICAgICAgcGVybXV0YXRpb24gPSBzLT5pbnRyYV9zY2FudGFi bGUucGVybXV0YXRlZDsKKyAgICAgICAgYmxvY2tbMF0gICAgPSBybmQoKSAmIDUxMTsKKyAgICAg ICAgc3RhdGljIGludCBoMjYzX2FpYyA9IC0xLCBhY19wcmVkOworICAgICAgICBpZiAoaDI2M19h aWMgPCAwKSB7CisgICAgICAgICAgICBoMjYzX2FpYyA9IHJuZCgpICYgMTsKKyAgICAgICAgICAg IGFjX3ByZWQgID0gcm5kKCkgJiAxOworICAgICAgICB9CisgICAgICAgIHMtPmgyNjNfYWljID0g aDI2M19haWM7CisgICAgICAgIHMtPmFjX3ByZWQgID0gYWNfcHJlZDsKKyAgICAgICAgaWYgKHMt PmFjX3ByZWQpCisgICAgICAgICAgICBsYXN0X25vbnplcm9fY29lZmYgPSA2MzsKKyAgICB9Cisg ICAgZm9yIChpbnQgaSA9IGludHJhOyBpIDw9IGxhc3Rfbm9uemVyb19jb2VmZjsgKytpKSB7Cisg ICAgICAgIGludCByYW5kb20gPSBybmQoKTsKKyAgICAgICAgaWYgKHJhbmRvbSAmIDEpCisgICAg ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgcmFuZG9tID4+PSAxOworICAgICAgICAvLyBTZWxl Y3QgbGV2ZWwgc28gdGhhdCB0aGUgbXVsdGlwbGljYXRpb24gZml0cyBpbnRvIDE2IGJpdHMuCisg ICAgICAgIC8vIEZJWE1FOiBUaGUgRkxWIGFuZCBNUEVHLTQgZGVjb2RlcnMgY2FuIGhhdmUgZXNj YXBlIHZhbHVlcyBleGNlZWRpbmcgdGhpcy4KKyAgICAgICAgYmxvY2tbcGVybXV0YXRpb25baV1d ID0gc2lnbl9leHRlbmQocmFuZG9tLCAxMCk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZCBpbml0 X21wZWcxMl90ZXN0KE1QVkNvbnRleHQgKmNvbnN0IHMsIGludDE2X3QgYmxvY2tbNjRdLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGFzdF9ub256ZXJvX2NvZWZmLCBpbnQgcXNj YWxlLCBpbnQgaW50cmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gVGVzdFR5 cGUgdHlwZSkKK3sKKyAgICB1aW50MTZfdCAqbWF0cml4ID0gaW50cmEgPyBzLT5pbnRyYV9tYXRy aXggOiBzLT5pbnRlcl9tYXRyaXg7CisKKyAgICBpZiAodHlwZSA9PSBNUEVHMikKKyAgICAgICAg cXNjYWxlID0gcy0+cV9zY2FsZV90eXBlID8gZmZfbXBlZzJfbm9uX2xpbmVhcl9xc2NhbGVbcXNj YWxlXSA6IHFzY2FsZSA8PCAxOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA2NDsgKytpKQor ICAgICAgICBtYXRyaXhbaV0gPSAxICsgcm5kKCkgJSAyNTQ7CisKKyAgICBjb25zdCB1aW50OF90 ICpwZXJtdXRhdGlvbiA9IHMtPmludHJhX3NjYW50YWJsZS5wZXJtdXRhdGVkOworICAgIGlmIChp bnRyYSkgeworICAgICAgICBibG9ja1swXSA9IChpbnQ4X3Qpcm5kKCk7CisgICAgICAgIGZvciAo aW50IGkgPSAxOyBpIDw9IGxhc3Rfbm9uemVyb19jb2VmZjsgKytpKSB7CisgICAgICAgICAgICBp bnQgaiA9IHBlcm11dGF0aW9uW2ldOworICAgICAgICAgICAgdW5zaWduZWQgcmFuZG9tID0gcm5k KCk7CisgICAgICAgICAgICBpZiAocmFuZG9tICYgMSkKKyAgICAgICAgICAgICAgICBjb250aW51 ZTsKKyAgICAgICAgICAgIHJhbmRvbSA+Pj0gMTsKKyAgICAgICAgICAgIC8vIFNlbGVjdCBsZXZl bCBzbyB0aGF0IHRoZSBtdWx0aXBsaWNhdGlvbiBkb2VzIG5vdCBvdmVyZmxvdworICAgICAgICAg ICAgLy8gYW4gaW50MTZfdCBhbmQgc28gdGhhdCBpdCBpcyB3aXRoaW4gdGhlIHBvc3NpYmxlIHJh bmdlCisgICAgICAgICAgICAvLyAoLTIwNDguLjIwNDcpLiBGSVhNRTogSXQgc2VlbXMgdGhhdCB0 aGlzIG5lZWQgbm90IGJlIGZ1bGZpbGxlZAorICAgICAgICAgICAgLy8gaW4gcHJhY3RpY2UgZm9y IHRoZSBNUEVHLTQgZGVjb2RlciBhdCBsZWFzdC4KKyAgICAgICAgICAgIGludCBsaW1pdCA9IEZG TUlOKElOVDE2X01BWCAvIChxc2NhbGUgKiBtYXRyaXhbal0pLCAyMDQ3KTsKKyAgICAgICAgICAg IGJsb2NrW2pdID0gcmFuZG9tICUgKDIgKiBsaW1pdCArIDEpIC0gbGltaXQ7CisgICAgICAgIH0K KyAgICB9IGVsc2UgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBsYXN0X25vbnplcm9f Y29lZmY7ICsraSkgeworICAgICAgICAgICAgaW50IGogPSBwZXJtdXRhdGlvbltpXTsKKyAgICAg ICAgICAgIHVuc2lnbmVkIHJhbmRvbSA9IHJuZCgpOworICAgICAgICAgICAgaWYgKHJhbmRvbSAm IDEpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICByYW5kb20gPj49IDE7 CisgICAgICAgICAgICBpbnQgbGltaXQgPSBGRk1JTigoSU5UMTZfTUFYIC8gKHFzY2FsZSAqIG1h dHJpeFtqXSkgLSAxKSAvIDIsIDIwNDcpOworICAgICAgICAgICAgYmxvY2tbal0gPSByYW5kb20g JSAoMiAqIGxpbWl0ICsgMSkgLSBsaW1pdDsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBj aGVja2FzbV9jaGVja19tcGVndmlkZW9fdW5xdWFudGl6ZSh2b2lkKQoreworICAgIHN0YXRpYyBj b25zdCBzdHJ1Y3QgeworICAgICAgICBjb25zdCBjaGFyICpuYW1lOworICAgICAgICBzaXplX3Qg b2Zmc2V0OworICAgICAgICBpbnQgaW50cmEsIGludHJhX3NjYW50YWJsZTsKKyAgICAgICAgZW51 bSBUZXN0VHlwZSB0eXBlOworICAgIH0gdGVzdHNbXSA9IHsKKyNkZWZpbmUgVEVTVChOQU1FLCBJ TlRSQSwgSU5UUkFfU0NBTlRBQkxFLCBUWVBFKSAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgeyAubmFtZSA9ICNOQU1FLCAub2Zmc2V0ID0gb2Zmc2V0b2YoTVBWVW5xdWFudERTUENvbnRl eHQsIE5BTUUpLCAgICAgXAorICAgICAgLmludHJhID0gSU5UUkEsIC5pbnRyYV9zY2FudGFibGUg PSBJTlRSQV9TQ0FOVEFCTEUsIC50eXBlID0gVFlQRSB9CisgICAgICAgIFRFU1QoZGN0X3VucXVh bnRpemVfbXBlZzFfaW50cmEsIDEsIDEsIE1QRUcxKSwKKyAgICAgICAgVEVTVChkY3RfdW5xdWFu dGl6ZV9tcGVnMV9pbnRlciwgMCwgMSwgTVBFRzEpLAorICAgICAgICBURVNUKGRjdF91bnF1YW50 aXplX21wZWcyX2ludHJhLCAxLCAxLCBNUEVHMiksCisgICAgICAgIFRFU1QoZGN0X3VucXVhbnRp emVfbXBlZzJfaW50ZXIsIDAsIDEsIE1QRUcyKSwKKyAgICAgICAgVEVTVChkY3RfdW5xdWFudGl6 ZV9oMjYzX2ludHJhLCAgMSwgMSwgSDI2MyksCisgICAgICAgIFRFU1QoZGN0X3VucXVhbnRpemVf aDI2M19pbnRlciwgIDAsIDAsIEgyNjMpLAorICAgIH07CisgICAgTVBWVW5xdWFudERTUENvbnRl eHQgdW5xdWFudF9kc3BfY3R4OworICAgIGludCBxX3NjYWxlX3R5cGUgPSBybmQoKSAmIDE7CisK KyAgICBmZl9tcHZfdW5xdWFudGl6ZV9pbml0KCZ1bnF1YW50X2RzcF9jdHgsIDEgLyogYml0ZXhh Y3QgKi8sIHFfc2NhbGVfdHlwZSk7CisgICAgZGVjbGFyZV9mdW5jX2VtbXMoQVZfQ1BVX0ZMQUdf TU1YLCB2b2lkLCBNUFZDb250ZXh0ICpzLCBpbnQxNl90ICpibG9jaywgaW50IG4sIGludCBxc2Nh bGUpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBGRl9BUlJBWV9FTEVNUyh0ZXN0cyk7 ICsraSkgeworICAgICAgICB2b2lkICgqZnVuYykoTVBWQ29udGV4dCAqcywgaW50MTZfdCAqYmxv Y2ssIGludCBuLCBpbnQgcXNjYWxlKSA9CisgICAgICAgICAgICAqKHZvaWQgKCoqKShNUFZDb250 ZXh0ICosIGludDE2X3QgKiwgaW50LCBpbnQpKSgoY2hhciopJnVucXVhbnRfZHNwX2N0eCArIHRl c3RzW2ldLm9mZnNldCk7CisgICAgICAgIGlmIChjaGVja19mdW5jKGZ1bmMsICIlcyIsIHRlc3Rz W2ldLm5hbWUpKSB7CisgICAgICAgICAgICBNUFZDb250ZXh0IG5ldywgcmVmOworICAgICAgICAg ICAgREVDTEFSRV9BTElHTkVEKDE2LCBpbnQxNl90LCBibG9ja19uZXcpWzY0XTsKKyAgICAgICAg ICAgIERFQ0xBUkVfQUxJR05FRCgxNiwgaW50MTZfdCwgYmxvY2tfcmVmKVs2NF07CisgICAgICAg ICAgICBzdGF0aWMgaW50IGJsb2NrX2xhc3RfaW5kZXggPSAtMTsKKworICAgICAgICAgICAgcmFu ZG9taXplX3N0cnVjdChNUFZDb250ZXh0LCAmcmVmKTsKKworICAgICAgICAgICAgcmVmLnFfc2Nh bGVfdHlwZSA9IHFfc2NhbGVfdHlwZTsKKworICAgICAgICAgICAgaW5pdF9pZGN0X3NjYW50YWJs ZSgmcmVmLCB0ZXN0c1tpXS5pbnRyYV9zY2FudGFibGUpOworCisgICAgICAgICAgICBpZiAoYmxv Y2tfbGFzdF9pbmRleCA8IDApCisgICAgICAgICAgICAgICAgYmxvY2tfbGFzdF9pbmRleCA9IHJu ZCgpICUgNjQ7CisKKyAgICAgICAgICAgIG1lbXNldChibG9ja19yZWYsIDAsIHNpemVvZihibG9j a19yZWYpKTsKKworICAgICAgICAgICAgaWYgKHRlc3RzW2ldLmludHJhKSB7CisgICAgICAgICAg ICAgICAgLy8gTGVzcyByZXN0cmljdGVkIHRoYW4gcmVhbCBkY19zY2FsZSB2YWx1ZXMKKyAgICAg ICAgICAgICAgICByZWYueV9kY19zY2FsZSA9IDEgKyBybmQoKSAlIDY0OworICAgICAgICAgICAg ICAgIHJlZi5jX2RjX3NjYWxlID0gMSArIHJuZCgpICUgNjQ7CisgICAgICAgICAgICB9CisKKyAg ICAgICAgICAgIHN0YXRpYyBpbnQgcXNjYWxlID0gMDsKKworICAgICAgICAgICAgaWYgKHFzY2Fs ZSA9PSAwKQorICAgICAgICAgICAgICAgIHFzY2FsZSA9IDEgKyBybmQoKSAlIDMxOworCisgICAg ICAgICAgICBpZiAodGVzdHNbaV0udHlwZSA9PSBIMjYzKQorICAgICAgICAgICAgICAgIGluaXRf aDI2M190ZXN0KCZyZWYsIGJsb2NrX3JlZiwgYmxvY2tfbGFzdF9pbmRleCwgcXNjYWxlLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RzW2ldLmludHJhKTsKKyAgICAgICAgICAg IGVsc2UKKyAgICAgICAgICAgICAgICBpbml0X21wZWcxMl90ZXN0KCZyZWYsIGJsb2NrX3JlZiwg YmxvY2tfbGFzdF9pbmRleCwgcXNjYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGVzdHNbaV0uaW50cmEsIHRlc3RzW2ldLnR5cGUpOworCisgICAgICAgICAgICBpbnQgbiA9 IHJuZCgpICUgNjsKKyAgICAgICAgICAgIHJlZi5ibG9ja19sYXN0X2luZGV4W25dID0gYmxvY2tf bGFzdF9pbmRleDsKKworICAgICAgICAgICAgbWVtY3B5KCZuZXcsICZyZWYsIHNpemVvZihuZXcp KTsKKyAgICAgICAgICAgIG1lbWNweShibG9ja19uZXcsIGJsb2NrX3JlZiwgc2l6ZW9mKGJsb2Nr X25ldykpOworCisgICAgICAgICAgICBjYWxsX3JlZigmcmVmLCBibG9ja19yZWYsIG4sIHFzY2Fs ZSk7CisgICAgICAgICAgICBjYWxsX25ldygmbmV3LCBibG9ja19uZXcsIG4sIHFzY2FsZSk7CisK KyAgICAgICAgICAgIGlmIChtZW1jbXAoJnJlZiwgJm5ldywgc2l6ZW9mKG5ldykpIHx8IG1lbWNt cChibG9ja19uZXcsIGJsb2NrX3JlZiwgc2l6ZW9mKGJsb2NrX25ldykpKQorICAgICAgICAgICAg ICAgIGZhaWwoKTsKKworICAgICAgICAgICAgYmVuY2hfbmV3KCZuZXcsIGJsb2NrX25ldywgbiwg cXNjYWxlKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3Rlc3RzL2ZhdGUvY2hl Y2thc20ubWFrIGIvdGVzdHMvZmF0ZS9jaGVja2FzbS5tYWsKaW5kZXggZjE4MmVmZGU0Ni4uNDhl ZGQxN2JmMiAxMDA2NDQKLS0tIGEvdGVzdHMvZmF0ZS9jaGVja2FzbS5tYWsKKysrIGIvdGVzdHMv ZmF0ZS9jaGVja2FzbS5tYWsKQEAgLTM5LDYgKzM5LDcgQEAgRkFURV9DSEVDS0FTTSA9IGZhdGUt Y2hlY2thc20tYWFjZW5jZHNwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg ICAgICAgICAgICAgIGZhdGUtY2hlY2thc20tbGx2aWRkc3BlbmMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgIGZhdGUtY2hlY2thc20tbHBjICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgIGZhdGUtY2hl Y2thc20tbW90aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg ICAgICAgICAgIGZhdGUtY2hlY2thc20tbXBlZ3ZpZGVvX3VucXVhbnRpemUgICAgICAgICAgICAg ICAgICAgICAgXAogICAgICAgICAgICAgICAgIGZhdGUtY2hlY2thc20tbXBlZ3ZpZGVvZW5jZHNw ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgIGZhdGUtY2hlY2th c20tb3B1c2RzcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAg ICAgICAgIGZhdGUtY2hlY2thc20tcGl4YmxvY2tkc3AgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAotLSAKMi41Mi4wCgoKRnJvbSBkODQxNDhlOGVkODkwNmMyZjllMzM0ZTFhYWY0M2U0 OTk1ZTJkYjJlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFy ZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogU2F0LCAyOSBOb3YgMjAy NSAwMTowNTo1MSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTczLzMwNF0gYXZjb2RlYy97YXJtLG5l b259L21wZWd2aWRlbzogRml4IGgyNjMgdW5xdWFudGl6ZQogZnVuY3Rpb25zCk1JTUUtVmVyc2lv bjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRy YW5zZmVyLUVuY29kaW5nOiA4Yml0CgpUaGVzZSBmdW5jdGlvbnMgY3VycmVudGx5IG9wZXJhdGUg b24gdGhlIGFzc3VtcHRpb24gdGhhdCB0aGUgbnVtYmVyCm9mIGNvZWZmaWNpZW50cyB0byBwcm9j ZXNzIGlzIGFsd2F5cyBvZiB0aGUgZm9ybSAxNmsrbSB3aXRoIG08PTQgb3IgPjguCllldCB0aGlz IGlzIG5vdCB0cnVlIHdoZW4gdGhlIElEQ1QgcGVybXV0YXRpb24gaXMgb2YgdHlwZSBGRl9JRENU X1BFUk1fTElCTVBFRzIKKGkuZS4gd2hlbiBGRl9JRENUX0lOVCBpcyBpbiB1c2UpLgoKUmV2aWV3 ZWQtYnk6IE1hcnRpbiBTdG9yc2rDtiA8bWFydGluQG1hcnRpbi5zdD4KU2lnbmVkLW9mZi1ieTog QW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQog bGliYXZjb2RlYy9hcm0vbXBlZ3ZpZGVvX25lb24uUyB8IDE4ICsrKysrKysrKy0tLS0tLS0tLQog bGliYXZjb2RlYy9uZW9uL21wZWd2aWRlby5jICAgICB8IDIyICsrKysrKysrLS0tLS0tLS0tLS0t LS0KIDIgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hcm0vbXBlZ3ZpZGVvX25lb24uUyBiL2xpYmF2Y29kZWMv YXJtL21wZWd2aWRlb19uZW9uLlMKaW5kZXggYzdhMzVlYTI2Ny4uN2U0MmJkZjZjNSAxMDA2NDQK LS0tIGEvbGliYXZjb2RlYy9hcm0vbXBlZ3ZpZGVvX25lb24uUworKysgYi9saWJhdmNvZGVjL2Fy bS9tcGVndmlkZW9fbmVvbi5TCkBAIC0zNiw3ICszNiw3IEBAIGZ1bmN0aW9uIGZmX2RjdF91bnF1 YW50aXplX2gyNjNfbmVvbiwgZXhwb3J0PTEKICAgICAgICAgdmR1cC4xNiAgICAgICAgIHExNSwg cjAgICAgICAgICAgICAgICAgIEAgcW11bAogICAgICAgICB2ZHVwLjE2ICAgICAgICAgcTE0LCBy MiAgICAgICAgICAgICAgICAgQCBxYWRkCiAgICAgICAgIHZuZWcuczE2ICAgICAgICBxMTMsIHEx NAotICAgICAgICBjbXAgICAgICAgICAgICAgcjMsICAjNAorICAgICAgICBjbXAgICAgICAgICAg ICAgcjMsICAjOAogICAgICAgICBtb3YgICAgICAgICAgICAgcjAsICByMQogICAgICAgICBibGUg ICAgICAgICAgICAgMmYKIDE6CkBAIC02MiwxNCArNjIsMTQgQEAgZnVuY3Rpb24gZmZfZGN0X3Vu cXVhbnRpemVfaDI2M19uZW9uLCBleHBvcnQ9MQogICAgICAgICBjbXAgICAgICAgICAgICAgcjMs ICAjOAogICAgICAgICBiZ3QgICAgICAgICAgICAgMWIKIDI6Ci0gICAgICAgIHZsZDEuMTYgICAg ICAgICB7ZDB9LCAgICAgW3IwLDo2NF0KLSAgICAgICAgdmNsdC5zMTYgICAgICAgIGQzLCAgZDAs ICAjMAotICAgICAgICB2Y2VxLnMxNiAgICAgICAgZDEsICBkMCwgICMwCi0gICAgICAgIHZtdWwu czE2ICAgICAgICBkMiwgIGQwLCAgZDMwCi0gICAgICAgIHZic2wgICAgICAgICAgICBkMywgIGQy NiwgZDI4Ci0gICAgICAgIHZhZGQuczE2ICAgICAgICBkMiwgIGQyLCAgZDMKLSAgICAgICAgdmJp ZiAgICAgICAgICAgIGQwLCAgZDIsICBkMQotICAgICAgICB2c3QxLjE2ICAgICAgICAge2QwfSwg ICAgIFtyMSw6NjRdCisgICAgICAgIHZsZDEuMTYgICAgICAgICB7cTB9LCAgICAgW3IwLDoxMjhd CisgICAgICAgIHZjbHQuczE2ICAgICAgICBxMywgIHEwLCAgIzAKKyAgICAgICAgdmNlcS5zMTYg ICAgICAgIHExLCAgcTAsICAjMAorICAgICAgICB2bXVsLnMxNiAgICAgICAgcTIsICBxMCwgIHEx NQorICAgICAgICB2YnNsICAgICAgICAgICAgcTMsICBxMTMsIHExNAorICAgICAgICB2YWRkLnMx NiAgICAgICAgcTIsICBxMiwgIHEzCisgICAgICAgIHZiaWYgICAgICAgICAgICBxMCwgIHEyLCAg cTEKKyAgICAgICAgdnN0MS4xNiAgICAgICAgIHtxMH0sICAgICBbcjEsOjEyOF0KICAgICAgICAg YnggICAgICAgICAgICAgIGxyCiBlbmRmdW5jCiAKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvbmVv bi9tcGVndmlkZW8uYyBiL2xpYmF2Y29kZWMvbmVvbi9tcGVndmlkZW8uYwppbmRleCAzNDI3ZGJl NDI3Li40NGU5YjcwMzAzIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL25lb24vbXBlZ3ZpZGVvLmMK KysrIGIvbGliYXZjb2RlYy9uZW9uL21wZWd2aWRlby5jCkBAIC0zOSwxMiArMzksNyBAQCBzdGF0 aWMgdm9pZCBpbmxpbmUgZmZfZGN0X3VucXVhbnRpemVfaDI2M19uZW9uKGludCBxc2NhbGUsIGlu dCBxYWRkLCBpbnQgbkNvZWZmcwogewogICAgIGludDE2eDhfdCBxMHMxNiwgcTJzMTYsIHEzczE2 LCBxOHMxNiwgcTEwczE2LCBxMTFzMTYsIHExM3MxNjsKICAgICBpbnQxNng4X3QgcTE0czE2LCBx MTVzMTYsIHF6czE2OwotICAgIGludDE2eDRfdCBkMHMxNiwgZDJzMTYsIGQzczE2LCBkenMxNjsK ICAgICB1aW50MTZ4OF90IHExdTE2LCBxOXUxNjsKLSAgICB1aW50MTZ4NF90IGQxdTE2OwotCi0g ICAgZHpzMTYgPSB2ZHVwX25fczE2KDApOwotICAgIHF6czE2ID0gdmR1cHFfbl9zMTYoMCk7CiAK ICAgICBxMTVzMTYgPSB2ZHVwcV9uX3MxNihxc2NhbGUgPDwgMSk7CiAgICAgcTE0czE2ID0gdmR1 cHFfbl9zMTYocWFkZCk7CkBAIC03MywxNSArNjgsMTQgQEAgc3RhdGljIHZvaWQgaW5saW5lIGZm X2RjdF91bnF1YW50aXplX2gyNjNfbmVvbihpbnQgcXNjYWxlLCBpbnQgcWFkZCwgaW50IG5Db2Vm ZnMKICAgICBpZiAobkNvZWZmcyA8PSAwKQogICAgICAgICByZXR1cm47CiAKLSAgICBkMHMxNiA9 IHZsZDFfczE2KGJsb2NrKTsKLSAgICBkM3MxNiA9IHZyZWludGVycHJldF9zMTZfdTE2KHZjbHRf czE2KGQwczE2LCBkenMxNikpOwotICAgIGQxdTE2ID0gdmNlcV9zMTYoZDBzMTYsIGR6czE2KTsK LSAgICBkMnMxNiA9IHZtdWxfczE2KGQwczE2LCB2Z2V0X2hpZ2hfczE2KHExNXMxNikpOwotICAg IGQzczE2ID0gdmJzbF9zMTYodnJlaW50ZXJwcmV0X3UxNl9zMTYoZDNzMTYpLAotICAgICAgICAg ICAgICAgICAgICAgdmdldF9oaWdoX3MxNihxMTNzMTYpLCB2Z2V0X2hpZ2hfczE2KHExNHMxNikp OwotICAgIGQyczE2ID0gdmFkZF9zMTYoZDJzMTYsIGQzczE2KTsKLSAgICBkMHMxNiA9IHZic2xf czE2KGQxdTE2LCBkMHMxNiwgZDJzMTYpOwotICAgIHZzdDFfczE2KGJsb2NrLCBkMHMxNik7Cisg ICAgcTBzMTYgPSB2bGQxcV9zMTYoYmxvY2spOworICAgIHEzczE2ID0gdnJlaW50ZXJwcmV0cV9z MTZfdTE2KHZjbHRxX3MxNihxMHMxNiwgcXpzMTYpKTsKKyAgICBxMXUxNiA9IHZjZXFxX3MxNihx MHMxNiwgcXpzMTYpOworICAgIHEyczE2ID0gdm11bHFfczE2KHEwczE2LCBxMTVzMTYpOworICAg IHEzczE2ID0gdmJzbHFfczE2KHZyZWludGVycHJldHFfdTE2X3MxNihxM3MxNiksIHExM3MxNiwg cTE0czE2KTsKKyAgICBxMnMxNiA9IHZhZGRxX3MxNihxMnMxNiwgcTNzMTYpOworICAgIHEwczE2 ID0gdmJzbHFfczE2KHExdTE2LCBxMHMxNiwgcTJzMTYpOworICAgIHZzdDFxX3MxNihibG9jaywg cTBzMTYpOwogfQogCiBzdGF0aWMgdm9pZCBkY3RfdW5xdWFudGl6ZV9oMjYzX2ludGVyX25lb24o Y29uc3QgTVBWQ29udGV4dCAqcywgaW50MTZfdCAqYmxvY2ssCi0tIAoyLjUyLjAKCgpGcm9tIDg0 ZjhmYmM2ZTcyOTYzMmFlNDVjMTQzOTlmOTcyOWMyYTU2ODE5YWQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxv b2suY29tPgpEYXRlOiBTYXQsIDI5IE5vdiAyMDI1IDAxOjE3OjA4ICswMTAwClN1YmplY3Q6IFtQ QVRDSCAxNzQvMzA0XSBhdmNvZGVjL21wZWd2aWRlbzogTW92ZSBmZl9pbml0X3NjYW50YWJsZSgp IHRvCiBtcGVndmlkZW9fdW5xdWFudGl6ZS5jCgpUaGlzIGlzIG5lY2Vzc2FyeSBzbyB0aGF0IHRo ZSBtcGVndmlkZW9fdW5xdWFudGl6ZSBjaGVja2FzbSB0ZXN0CmRvZXMgbm90IHB1bGwgbXBlZ3Zp ZGVvLm8gYW5kIHRoZW4gYWxsIG9mIGxpYmF2Y29kZWMgaW50byBjaGVja2FzbS4KClNpZ25lZC1v ZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29t PgotLS0KIGxpYmF2Y29kZWMvbXBlZ3ZpZGVvLmMgICAgICAgICAgICB8IDE1IC0tLS0tLS0tLS0t LS0tLQogbGliYXZjb2RlYy9tcGVndmlkZW9fdW5xdWFudGl6ZS5jIHwgMTQgKysrKysrKysrKysr KysKIDIgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9tcGVndmlkZW8uYyBiL2xpYmF2Y29kZWMvbXBlZ3ZpZGVv LmMKaW5kZXggYTEzN2ZlMzFkYi4uN2NhMmM4ZjcwMSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9t cGVndmlkZW8uYworKysgYi9saWJhdmNvZGVjL21wZWd2aWRlby5jCkBAIC00Miw3ICs0Miw2IEBA CiAjaW5jbHVkZSAibXBlZ3V0aWxzLmgiCiAjaW5jbHVkZSAibXBlZ3ZpZGVvLmgiCiAjaW5jbHVk ZSAibXBlZ3ZpZGVvZGF0YS5oIgotI2luY2x1ZGUgIm1wZWd2aWRlb191bnF1YW50aXplLmgiCiAj aW5jbHVkZSAibGliYXZ1dGlsL3JlZnN0cnVjdC5oIgogCiAKQEAgLTc5LDIwICs3OCw2IEBAIHN0 YXRpYyBhdl9jb2xkIHZvaWQgZHNwX2luaXQoTXBlZ0VuY0NvbnRleHQgKnMpCiAgICAgfQogfQog Ci1hdl9jb2xkIHZvaWQgZmZfaW5pdF9zY2FudGFibGUoY29uc3QgdWludDhfdCAqcGVybXV0YXRp b24sIFNjYW5UYWJsZSAqc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg dWludDhfdCAqc3JjX3NjYW50YWJsZSkKLXsKLSAgICBzdC0+c2NhbnRhYmxlID0gc3JjX3NjYW50 YWJsZTsKLQotICAgIGZvciAoaW50IGkgPSAwLCBlbmQgPSAtMTsgaSA8IDY0OyBpKyspIHsKLSAg ICAgICAgaW50IGogPSBzcmNfc2NhbnRhYmxlW2ldOwotICAgICAgICBzdC0+cGVybXV0YXRlZFtp XSA9IHBlcm11dGF0aW9uW2pdOwotICAgICAgICBpZiAocGVybXV0YXRpb25bal0gPiBlbmQpCi0g ICAgICAgICAgICBlbmQgPSBwZXJtdXRhdGlvbltqXTsKLSAgICAgICAgc3QtPnJhc3Rlcl9lbmRb aV0gPSBlbmQ7Ci0gICAgfQotfQotCiBhdl9jb2xkIHZvaWQgZmZfbXB2X2lkY3RfaW5pdChNcGVn RW5jQ29udGV4dCAqcykKIHsKICAgICBpZiAocy0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfTVBF RzQpCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL21wZWd2aWRlb191bnF1YW50aXplLmMgYi9saWJh dmNvZGVjL21wZWd2aWRlb191bnF1YW50aXplLmMKaW5kZXggMDZjMjlkMDc1My4uOTI5N2M4MGI0 NyAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9tcGVndmlkZW9fdW5xdWFudGl6ZS5jCisrKyBiL2xp YmF2Y29kZWMvbXBlZ3ZpZGVvX3VucXVhbnRpemUuYwpAQCAtMzMsNiArMzMsMjAgQEAKICNpbmNs dWRlICJtcGVndmlkZW9kYXRhLmgiCiAjaW5jbHVkZSAibXBlZ3ZpZGVvX3VucXVhbnRpemUuaCIK IAorYXZfY29sZCB2b2lkIGZmX2luaXRfc2NhbnRhYmxlKGNvbnN0IHVpbnQ4X3QgKnBlcm11dGF0 aW9uLCBTY2FuVGFibGUgKnN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHVpbnQ4X3QgKnNyY19zY2FudGFibGUpCit7CisgICAgc3QtPnNjYW50YWJsZSA9IHNyY19zY2Fu dGFibGU7CisKKyAgICBmb3IgKGludCBpID0gMCwgZW5kID0gLTE7IGkgPCA2NDsgaSsrKSB7Cisg ICAgICAgIGludCBqID0gc3JjX3NjYW50YWJsZVtpXTsKKyAgICAgICAgc3QtPnBlcm11dGF0ZWRb aV0gPSBwZXJtdXRhdGlvbltqXTsKKyAgICAgICAgaWYgKHBlcm11dGF0aW9uW2pdID4gZW5kKQor ICAgICAgICAgICAgZW5kID0gcGVybXV0YXRpb25bal07CisgICAgICAgIHN0LT5yYXN0ZXJfZW5k W2ldID0gZW5kOworICAgIH0KK30KKwogc3RhdGljIHZvaWQgZGN0X3VucXVhbnRpemVfbXBlZzFf aW50cmFfYyhjb25zdCBNUFZDb250ZXh0ICpzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQxNl90ICpibG9jaywgaW50IG4sIGludCBxc2NhbGUpCiB7Ci0tIAoy LjUyLjAKCgpGcm9tIDk2NDA4MjM0OTU3ZmIyNTNkMjc3ODM4NWJkMDI5NWNhMTRkOGI0YTIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5y aGVpbmhhcmR0QG91dGxvb2suY29tPgpEYXRlOiBTYXQsIDI5IE5vdiAyMDI1IDIyOjIzOjUwICsw MTAwClN1YmplY3Q6IFtQQVRDSCAxNzUvMzA0XSBhdmNvZGVjL3g4Ni9tcGVndmlkZW86IFVzZSBj b3JyZWN0IGlubGluZSBhc3NlbWJseQogY29uc3RyYWludHMKClRoZSBILjI2MyB1bnF1YW50aXpl IGZ1bmN0aW9ucyBtb2RpZmllZCBhbiBpbnB1dCBwYXJhbWV0ZXIuCihBbmQgdGhleSBkaWQgc28g c2luY2UgdGhpcyBjb2RlIHdhcyBhZGRlZCBpbgo3ZjNmNWVjODdiY2JmMjQ0ZmNlNDlmZmRiNDc2 ZDRhZTZlNTIzYWY2LiBJIGFtIHN1cnByaXNlZAp0aGF0IHRoaXMgZGlkbid0IGNhdXNlIGlzc3Vl cywgcGFydGljdWxhcmx5IHdpdGggdGhlIGludHJhIGZ1bmN0aW9uLikKClNpZ25lZC1vZmYtYnk6 IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0K IGxpYmF2Y29kZWMveDg2L21wZWd2aWRlby5jIHwgNjQgKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCAzMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni9tcGVndmlkZW8uYyBiL2xpYmF2 Y29kZWMveDg2L21wZWd2aWRlby5jCmluZGV4IDRjMzI5OTM2MmUuLjM4ZGNkOGZjNmUgMTAwNjQ0 Ci0tLSBhL2xpYmF2Y29kZWMveDg2L21wZWd2aWRlby5jCisrKyBiL2xpYmF2Y29kZWMveDg2L21w ZWd2aWRlby5jCkBAIC0zMyw5ICszMyw4IEBACiBzdGF0aWMgdm9pZCBkY3RfdW5xdWFudGl6ZV9o MjYzX2ludHJhX21teChjb25zdCBNUFZDb250ZXh0ICpzLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCAqYmxvY2ssIGludCBuLCBpbnQgcXNjYWxlKQog ewotICAgIHg4Nl9yZWcgbGV2ZWwsIHFtdWwsIHFhZGQsIG5Db2VmZnM7Ci0KLSAgICBxbXVsID0g cXNjYWxlIDw8IDE7CisgICAgeDg2X3JlZyBxbXVsID0gKHVuc2lnbmVkKXFzY2FsZSA8PCAxOwor ICAgIGludCBsZXZlbCwgcWFkZDsKIAogICAgIGF2X2Fzc2VydDIocy0+YmxvY2tfbGFzdF9pbmRl eFtuXT49MCB8fCBzLT5oMjYzX2FpYyk7CiAKQEAgLTQ5LDE2ICs0OCwxNSBAQCBzdGF0aWMgdm9p ZCBkY3RfdW5xdWFudGl6ZV9oMjYzX2ludHJhX21teChjb25zdCBNUFZDb250ZXh0ICpzLAogICAg ICAgICBxYWRkID0gMDsKICAgICAgICAgbGV2ZWw9IGJsb2NrWzBdOwogICAgIH0KLSAgICBpZihz LT5hY19wcmVkKQotICAgICAgICBuQ29lZmZzPTYzOwotICAgIGVsc2UKLSAgICAgICAgbkNvZWZm cz0gcy0+aW50cmFfc2NhbnRhYmxlLnJhc3Rlcl9lbmRbIHMtPmJsb2NrX2xhc3RfaW5kZXhbbl0g XTsKKyAgICB4ODZfcmVnIG9mZnNldCA9IHMtPmFjX3ByZWQgPyA2MyA8PCAxIDogcy0+aW50cmFf c2NhbnRhYmxlLnJhc3Rlcl9lbmRbcy0+YmxvY2tfbGFzdF9pbmRleFtuXV0gPDwgMTsKIAogX19h c21fXyB2b2xhdGlsZSgKLSAgICAgICAgICAgICAgICAibW92ZCAlMSwgJSVtbTYgICAgICAgICAg ICAgICAgIFxuXHQiIC8vcW11bAorICAgICAgICAgICAgICAgICJtb3ZkICAgICAgICAgICVrMSwg JSVtbTYgICAgICAgXG5cdCIgLy9xbXVsCisgICAgICAgICAgICAgICAgImxlYSAgICAgICglMiwg JTApLCAlMSAgICAgICAgICBcblx0IgorICAgICAgICAgICAgICAgICJuZWcgICAgICAgICAgICAl MCAgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAicGFja3NzZHcgJSVtbTYsICUl bW02ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgInBhY2tzc2R3ICUlbW02LCAlJW1t NiAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJtb3ZkICUyLCAlJW1tNSAgICAgICAg ICAgICAgICAgXG5cdCIgLy9xYWRkCisgICAgICAgICAgICAgICAgIm1vdmQgICAgICAgICAgICUz LCAlJW1tNSAgICAgICBcblx0IiAvL3FhZGQKICAgICAgICAgICAgICAgICAicHhvciAlJW1tNywg JSVtbTcgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgInBhY2tzc2R3ICUlbW01 LCAlJW1tNSAgICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICJwYWNrc3NkdyAlJW1tNSwg JSVtbTUgICAgICAgICAgXG5cdCIKQEAgLTY2LDE0ICs2NCwxNCBAQCBfX2FzbV9fIHZvbGF0aWxl KAogICAgICAgICAgICAgICAgICJweG9yICUlbW00LCAlJW1tNCAgICAgICAgICAgICAgXG5cdCIK ICAgICAgICAgICAgICAgICAiLnAyYWxpZ24gNCAgICAgICAgICAgICAgICAgICAgIFxuXHQiCiAg ICAgICAgICAgICAgICAgIjE6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgotICAg ICAgICAgICAgICAgICJtb3ZxICglMCwgJTMpLCAlJW1tMCAgICAgICAgICAgXG5cdCIKLSAgICAg ICAgICAgICAgICAibW92cSA4KCUwLCAlMyksICUlbW0xICAgICAgICAgIFxuXHQiCisgICAgICAg ICAgICAgICAgIm1vdnEgICAgICglMSwgJTApLCAlJW1tMCAgICAgICBcblx0IgorICAgICAgICAg ICAgICAgICJtb3ZxICAgIDgoJTEsICUwKSwgJSVtbTEgICAgICAgXG5cdCIKIAogICAgICAgICAg ICAgICAgICJwbXVsbHcgJSVtbTYsICUlbW0wICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAg ICAgICAicG11bGx3ICUlbW02LCAlJW1tMSAgICAgICAgICAgIFxuXHQiCiAKLSAgICAgICAgICAg ICAgICAibW92cSAoJTAsICUzKSwgJSVtbTIgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAg ICAgIm1vdnEgOCglMCwgJTMpLCAlJW1tMyAgICAgICAgICBcblx0IgorICAgICAgICAgICAgICAg ICJtb3ZxICAgICAoJTEsICUwKSwgJSVtbTIgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAi bW92cSAgICA4KCUxLCAlMCksICUlbW0zICAgICAgIFxuXHQiCiAKICAgICAgICAgICAgICAgICAi cGNtcGd0dyAlJW1tNCwgJSVtbTIgICAgICAgICAgIFxuXHQiIC8vIGJsb2NrW2ldIDwgMCA/IC0x IDogMAogICAgICAgICAgICAgICAgICJwY21wZ3R3ICUlbW00LCAlJW1tMyAgICAgICAgICAgXG5c dCIgLy8gYmxvY2tbaV0gPCAwID8gLTEgOiAwCkBAIC05MywxMiArOTEsMTMgQEAgX19hc21fXyB2 b2xhdGlsZSgKICAgICAgICAgICAgICAgICAicGFuZG4gJSVtbTIsICUlbW0wICAgICAgICAgICAg IFxuXHQiCiAgICAgICAgICAgICAgICAgInBhbmRuICUlbW0zLCAlJW1tMSAgICAgICAgICAgICBc blx0IgogCi0gICAgICAgICAgICAgICAgIm1vdnEgJSVtbTAsICglMCwgJTMpICAgICAgICAgICBc blx0IgotICAgICAgICAgICAgICAgICJtb3ZxICUlbW0xLCA4KCUwLCAlMykgICAgICAgICAgXG5c dCIKKyAgICAgICAgICAgICAgICAibW92cSAgICAgICAgJSVtbTAsICglMSwgJTApICAgIFxuXHQi CisgICAgICAgICAgICAgICAgIm1vdnEgICAgICAgICUlbW0xLCA4KCUxLCAlMCkgICBcblx0Igog Ci0gICAgICAgICAgICAgICAgImFkZCAkMTYsICUzICAgICAgICAgICAgICAgICAgICBcblx0Igor ICAgICAgICAgICAgICAgICJhZGQgICAgICAgICAgICQxNiwgJTAgICAgICAgICAgXG5cdCIKICAg ICAgICAgICAgICAgICAiam5nIDFiICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAg ICAgICAgICAgICAgOjoiciIgKGJsb2NrK25Db2VmZnMpLCAicm0iKHFtdWwpLCAicm0iIChxYWRk KSwgInIiICgyKigtbkNvZWZmcykpCisgICAgICAgICAgICAgICAgOiAiK3IiKG9mZnNldCksICIr ciIocW11bCkKKyAgICAgICAgICAgICAgICA6ICJyIiAoYmxvY2spLCAicm0iIChxYWRkKQogICAg ICAgICAgICAgICAgIDogIm1lbW9yeSIKICAgICAgICAgKTsKICAgICAgICAgYmxvY2tbMF09IGxl dmVsOwpAQCAtMTA4LDIwICsxMDcsMjAgQEAgX19hc21fXyB2b2xhdGlsZSgKIHN0YXRpYyB2b2lk IGRjdF91bnF1YW50aXplX2gyNjNfaW50ZXJfbW14KGNvbnN0IE1QVkNvbnRleHQgKnMsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90ICpibG9jaywgaW50 IG4sIGludCBxc2NhbGUpCiB7Ci0gICAgeDg2X3JlZyBxbXVsLCBxYWRkLCBuQ29lZmZzOwotCi0g ICAgcW11bCA9IHFzY2FsZSA8PCAxOwotICAgIHFhZGQgPSAocXNjYWxlIC0gMSkgfCAxOworICAg IGludCBxbXVsID0gcXNjYWxlIDw8IDE7CisgICAgaW50IHFhZGQgPSAocXNjYWxlIC0gMSkgfCAx OwogCiAgICAgYXZfYXNzZXJ0MihzLT5ibG9ja19sYXN0X2luZGV4W25dPj0wIHx8IHMtPmgyNjNf YWljKTsKIAotICAgIG5Db2VmZnM9IHMtPmludGVyX3NjYW50YWJsZS5yYXN0ZXJfZW5kWyBzLT5i bG9ja19sYXN0X2luZGV4W25dIF07CisgICAgeDg2X3JlZyBvZmZzZXQgPSBzLT5pbnRlcl9zY2Fu dGFibGUucmFzdGVyX2VuZFtzLT5ibG9ja19sYXN0X2luZGV4W25dXSA8PCAxOwogCiBfX2FzbV9f IHZvbGF0aWxlKAotICAgICAgICAgICAgICAgICJtb3ZkICUxLCAlJW1tNiAgICAgICAgICAgICAg ICAgXG5cdCIgLy9xbXVsCisgICAgICAgICAgICAgICAgIm1vdmQgICAgICAgICAgICUyLCAlJW1t NiAgICAgICBcblx0IiAvL3FtdWwKICAgICAgICAgICAgICAgICAicGFja3NzZHcgJSVtbTYsICUl bW02ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgInBhY2tzc2R3ICUlbW02LCAlJW1t NiAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJtb3ZkICUyLCAlJW1tNSAgICAgICAg ICAgICAgICAgXG5cdCIgLy9xYWRkCisgICAgICAgICAgICAgICAgIm1vdmQgICAgICAgICAgICUz LCAlJW1tNSAgICAgICBcblx0IiAvL3FhZGQKKyAgICAgICAgICAgICAgICAiYWRkICAgICAgICAg ICAgJTEsICUwICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgIm5lZyAgICAgICAgICAg ICUxICAgICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICJweG9yICUlbW03LCAlJW1t NyAgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAicGFja3NzZHcgJSVtbTUsICUl bW01ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgInBhY2tzc2R3ICUlbW01LCAlJW1t NSAgICAgICAgICBcblx0IgpAQCAtMTI5LDE0ICsxMjgsMTQgQEAgX19hc21fXyB2b2xhdGlsZSgK ICAgICAgICAgICAgICAgICAicHhvciAlJW1tNCwgJSVtbTQgICAgICAgICAgICAgIFxuXHQiCiAg ICAgICAgICAgICAgICAgIi5wMmFsaWduIDQgICAgICAgICAgICAgICAgICAgICBcblx0IgogICAg ICAgICAgICAgICAgICIxOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAg ICAgICAgICAgICAibW92cSAoJTAsICUzKSwgJSVtbTAgICAgICAgICAgIFxuXHQiCi0gICAgICAg ICAgICAgICAgIm1vdnEgOCglMCwgJTMpLCAlJW1tMSAgICAgICAgICBcblx0IgorICAgICAgICAg ICAgICAgICJtb3ZxICAgICAoJTAsICUxKSwgJSVtbTAgICAgICAgXG5cdCIKKyAgICAgICAgICAg ICAgICAibW92cSAgICA4KCUwLCAlMSksICUlbW0xICAgICAgIFxuXHQiCiAKICAgICAgICAgICAg ICAgICAicG11bGx3ICUlbW02LCAlJW1tMCAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAg ICAgInBtdWxsdyAlJW1tNiwgJSVtbTEgICAgICAgICAgICBcblx0IgogCi0gICAgICAgICAgICAg ICAgIm1vdnEgKCUwLCAlMyksICUlbW0yICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAg ICJtb3ZxIDgoJTAsICUzKSwgJSVtbTMgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAi bW92cSAgICAgKCUwLCAlMSksICUlbW0yICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgIm1v dnEgICAgOCglMCwgJTEpLCAlJW1tMyAgICAgICBcblx0IgogCiAgICAgICAgICAgICAgICAgInBj bXBndHcgJSVtbTQsICUlbW0yICAgICAgICAgICBcblx0IiAvLyBibG9ja1tpXSA8IDAgPyAtMSA6 IDAKICAgICAgICAgICAgICAgICAicGNtcGd0dyAlJW1tNCwgJSVtbTMgICAgICAgICAgIFxuXHQi IC8vIGJsb2NrW2ldIDwgMCA/IC0xIDogMApAQCAtMTU2LDEyICsxNTUsMTMgQEAgX19hc21fXyB2 b2xhdGlsZSgKICAgICAgICAgICAgICAgICAicGFuZG4gJSVtbTIsICUlbW0wICAgICAgICAgICAg IFxuXHQiCiAgICAgICAgICAgICAgICAgInBhbmRuICUlbW0zLCAlJW1tMSAgICAgICAgICAgICBc blx0IgogCi0gICAgICAgICAgICAgICAgIm1vdnEgJSVtbTAsICglMCwgJTMpICAgICAgICAgICBc blx0IgotICAgICAgICAgICAgICAgICJtb3ZxICUlbW0xLCA4KCUwLCAlMykgICAgICAgICAgXG5c dCIKKyAgICAgICAgICAgICAgICAibW92cSAgICAgICAgJSVtbTAsICglMCwgJTEpICAgIFxuXHQi CisgICAgICAgICAgICAgICAgIm1vdnEgICAgICAgICUlbW0xLCA4KCUwLCAlMSkgICBcblx0Igog Ci0gICAgICAgICAgICAgICAgImFkZCAkMTYsICUzICAgICAgICAgICAgICAgICAgICBcblx0Igor ICAgICAgICAgICAgICAgICJhZGQgICAgICAgICAgICQxNiwgJTEgICAgICAgICAgXG5cdCIKICAg ICAgICAgICAgICAgICAiam5nIDFiICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAg ICAgICAgICAgICAgOjoiciIgKGJsb2NrK25Db2VmZnMpLCAicm0iKHFtdWwpLCAicm0iIChxYWRk KSwgInIiICgyKigtbkNvZWZmcykpCisgICAgICAgICAgICAgICAgOiAiK3IiIChibG9jayksICIr ciIgKG9mZnNldCkKKyAgICAgICAgICAgICAgICA6ICJybSIocW11bCksICJybSIgKHFhZGQpCiAg ICAgICAgICAgICAgICAgOiAibWVtb3J5IgogICAgICAgICApOwogfQotLSAKMi41Mi4wCgoKRnJv bSBhYzQ0ZGJiNTgwNjJmZDdjNmRiMGVmNDQ2NjhmYWJlZjA5ZDdmYTM2IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBv dXRsb29rLmNvbT4KRGF0ZTogVHVlLCA3IE9jdCAyMDI1IDEwOjM1OjA4ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAxNzYvMzA0XSBhdmNvZGVjL3g4Ni9tcGVndmlkZW86IEltcHJvdmUgdW5xdWFudGl6 aW5nIE1QRUctMgogaW50cmEgYmxvY2tzCgpVbnF1YW50aXppbmcgaW52b2x2ZXMgY2FsY3VsYXRp bmcKICAgIChibG9ja1tqXSAqIHFzY2FsZSAqIHF1YW50X21hdHJpeFtqXSkgLyAxNgp3aGVyZSAv IHJvdW5kcyB0b3dhcmRzIHplcm8uIEFyaXRobWV0aWMgcmlnaHQgc2hpZnRzCm5hdHVyYWxseSBy b3VuZCB0b3dhcmRzIC1pbmYsIHNvIHRoZSBlYXJsaWVyIGNvZGUKY2FsY3VsYXRlZCB0aGUgYWJz b2x1dGUgdmFsdWUgZmlyc3QsIHRoZW4gdXNlZCBhIHJpZ2h0LXNoaWZ0CmFuZCB0aGVuIG5lZ2F0 ZWQgdGhlIHJlc3VsdCBpZiBuZWNlc3NhcnkuCgpUaGlzIGNvbW1pdCB1c2VzIGEgZGlmZmVyZW50 IHByb2NlZHVyZTogSXQgYmlhc2VzIHRoZSBwcm9kdWN0CmZvciBuZWdhdGl2ZSB2YWx1ZXMgb2Yg YmxvY2tbal0gYnkgMHhmLiBUaGUgY29tYmluYXRpb24gb2YKdGhpcyBhbmQgdGhlIGFyaXRobWV0 aWMgcmlnaHQgc2hpZnQgaXMgdGhlIHNhbWUgYXMgcm91bmRpbmcKdG93YXJkcyB6ZXJvLgoKRnVy dGhlcm1vcmUsIGEgd3JpdGUtb25seSBzdG9yZSB0byBtbTcgaGFzIGJlZW4gcmVtb3ZlZC4KCkJl bmNobWFya3M6CmRjdF91bnF1YW50aXplX21wZWcyX2ludHJhX2M6ICAgICAgICAgICAgICAgICAg ICAgICAgICAyMTQuMyAoIDEuMDB4KQpkY3RfdW5xdWFudGl6ZV9tcGVnMl9pbnRyYV9tbXggKG9s ZCk6ICAgICAgICAgICAgICAgICAgIDQzLjAgKCA0Ljk4eCkKZGN0X3VucXVhbnRpemVfbXBlZzJf aW50cmFfbW14IChuZXcpOiAgICAgICAgICAgICAgICAgICAyOC40ICggNy41NngpCgooVGhlIGJp dGV4YWN0IGZsYWcgYW5kIHRoZSB0ZXN0IGZvciBjb3JyZWN0bmVzcyBoYXZlIGJlZW0gcmVtb3Zl ZApmcm9tIGNoZWNrYXNtIGZvciB0aGUgYmVuY2htYXJrcy4pCgpTaWduZWQtb2ZmLWJ5OiBBbmRy ZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KLS0tCiBsaWJh dmNvZGVjL3g4Ni9tcGVndmlkZW8uYyB8IDM4ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVvLmMgYi9saWJhdmNvZGVj L3g4Ni9tcGVndmlkZW8uYwppbmRleCAzOGRjZDhmYzZlLi5kMTYxNGViMWViIDEwMDY0NAotLS0g YS9saWJhdmNvZGVjL3g4Ni9tcGVndmlkZW8uYworKysgYi9saWJhdmNvZGVjL3g4Ni9tcGVndmlk ZW8uYwpAQCAtMzIxLDggKzMyMSw2IEBAIHN0YXRpYyB2b2lkIGRjdF91bnF1YW50aXplX21wZWcy X2ludHJhX21teChjb25zdCBNUFZDb250ZXh0ICpzLAogICAgICAgICBibG9jazAgPSBibG9ja1sw XSAqIHMtPmNfZGNfc2NhbGU7CiAgICAgcXVhbnRfbWF0cml4ID0gcy0+aW50cmFfbWF0cml4Owog X19hc21fXyB2b2xhdGlsZSgKLSAgICAgICAgICAgICAgICAicGNtcGVxdyAlJW1tNywgJSVtbTcg ICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInBzcmx3ICQxNSwgJSVtbTcgICAgICAg ICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICJtb3ZkICUyLCAlJW1tNiAgICAgICAgICAg ICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAicGFja3NzZHcgJSVtbTYsICUlbW02ICAgICAg ICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgInBhY2tzc2R3ICUlbW02LCAlJW1tNiAgICAgICAg ICBcblx0IgpAQCAtMzM1LDMwICszMzMsMTggQEAgX19hc21fXyB2b2xhdGlsZSgKICAgICAgICAg ICAgICAgICAibW92cSA4KCUxLCAlJSJGRl9SRUdfYSIpLCAlJW1tNVxuXHQiCiAgICAgICAgICAg ICAgICAgInBtdWxsdyAlJW1tNiwgJSVtbTQgICAgICAgICAgICBcblx0IiAvLyBxPXFzY2FsZSpx dWFudF9tYXRyaXhbaV0KICAgICAgICAgICAgICAgICAicG11bGx3ICUlbW02LCAlJW1tNSAgICAg ICAgICAgIFxuXHQiIC8vIHE9cXNjYWxlKnF1YW50X21hdHJpeFtpXQotICAgICAgICAgICAgICAg ICJweG9yICUlbW0yLCAlJW1tMiAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAi cHhvciAlJW1tMywgJSVtbTMgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInBj bXBndHcgJSVtbTAsICUlbW0yICAgICAgICAgICBcblx0IiAvLyBibG9ja1tpXSA8IDAgPyAtMSA6 IDAKLSAgICAgICAgICAgICAgICAicGNtcGd0dyAlJW1tMSwgJSVtbTMgICAgICAgICAgIFxuXHQi IC8vIGJsb2NrW2ldIDwgMCA/IC0xIDogMAotICAgICAgICAgICAgICAgICJweG9yICUlbW0yLCAl JW1tMCAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAicHhvciAlJW1tMywgJSVt bTEgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInBzdWJ3ICUlbW0yLCAlJW1t MCAgICAgICAgICAgICBcblx0IiAvLyBhYnMoYmxvY2tbaV0pCi0gICAgICAgICAgICAgICAgInBz dWJ3ICUlbW0zLCAlJW1tMSAgICAgICAgICAgICBcblx0IiAvLyBhYnMoYmxvY2tbaV0pCi0gICAg ICAgICAgICAgICAgInBtdWxsdyAlJW1tNCwgJSVtbTAgICAgICAgICAgICBcblx0IiAvLyBhYnMo YmxvY2tbaV0pKnEKLSAgICAgICAgICAgICAgICAicG11bGx3ICUlbW01LCAlJW1tMSAgICAgICAg ICAgIFxuXHQiIC8vIGFicyhibG9ja1tpXSkqcQotICAgICAgICAgICAgICAgICJweG9yICUlbW00 LCAlJW1tNCAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAicHhvciAlJW1tNSwg JSVtbTUgICAgICAgICAgICAgIFxuXHQiIC8vIEZJWE1FIHNsb3cKLSAgICAgICAgICAgICAgICAi cGNtcGVxdyAoJTAsICUlIkZGX1JFR19hIiksICUlbW00IFxuXHQiIC8vIGJsb2NrW2ldID09IDAg PyAtMSA6IDAKLSAgICAgICAgICAgICAgICAicGNtcGVxdyA4KCUwLCAlJSJGRl9SRUdfYSIpLCAl JW1tNVxuXHQiIC8vIGJsb2NrW2ldID09IDAgPyAtMSA6IDAKLSAgICAgICAgICAgICAgICAicHNy YXcgJDQsICUlbW0wICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInBzcmF3 ICQ0LCAlJW1tMSAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJweG9yICUl bW0yLCAlJW1tMCAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAicHhvciAlJW1t MywgJSVtbTEgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInBzdWJ3ICUlbW0y LCAlJW1tMCAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJwc3VidyAlJW1tMywg JSVtbTEgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAicGFuZG4gJSVtbTAsICUl bW00ICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInBhbmRuICUlbW0xLCAlJW1t NSAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJtb3ZxICUlbW00LCAoJTAsICUl IkZGX1JFR19hIikgXG5cdCIKLSAgICAgICAgICAgICAgICAibW92cSAlJW1tNSwgOCglMCwgJSUi RkZfUkVHX2EiKVxuXHQiCisgICAgICAgICAgICAgICAgIm1vdnEgJSVtbTAsICUlbW0yICAgICAg ICAgICAgICBcblx0IgorICAgICAgICAgICAgICAgICJtb3ZxICUlbW0xLCAlJW1tMyAgICAgICAg ICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAicHNybHcgJDEyLCAlJW1tMiAgICAgICAgICAg ICAgIFxuXHQiIC8vIGJsb2NrW2ldIDwgMCA/IDB4ZiA6IDAKKyAgICAgICAgICAgICAgICAicHNy bHcgJDEyLCAlJW1tMyAgICAgICAgICAgICAgIFxuXHQiIC8vIChibG9ja1tpXSBpcyBpbiB0aGUg LTIwNDguLjIwNDcgcmFuZ2UpCisgICAgICAgICAgICAgICAgInBtdWxsdyAlJW1tNCwgJSVtbTAg ICAgICAgICAgICBcblx0IiAvLyBibG9ja1tpXSpxCisgICAgICAgICAgICAgICAgInBtdWxsdyAl JW1tNSwgJSVtbTEgICAgICAgICAgICBcblx0IiAvLyBibG9ja1tpXSpxCisgICAgICAgICAgICAg ICAgInBhZGR3ICUlbW0yLCAlJW1tMCAgICAgICAgICAgICBcblx0IiAvLyBiaWFzIG5lZ2F0aXZl IGJsb2NrW2ldCisgICAgICAgICAgICAgICAgInBhZGR3ICUlbW0zLCAlJW1tMSAgICAgICAgICAg ICBcblx0IiAvLyBzbyB0aGF0IGEgcmlnaHQtc2hpZnQKKyAgICAgICAgICAgICAgICAicHNyYXcg JDQsICUlbW0wICAgICAgICAgICAgICAgIFxuXHQiIC8vIGlzIGVxdWl2YWxlbnQgdG8gZGl2aWRl CisgICAgICAgICAgICAgICAgInBzcmF3ICQ0LCAlJW1tMSAgICAgICAgICAgICAgICBcblx0IiAv LyB3aXRoIHJvdW5kaW5nIHRvd2FyZHMgemVybworICAgICAgICAgICAgICAgICJtb3ZxICUlbW0w LCAoJTAsICUlIkZGX1JFR19hIikgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92cSAlJW1tMSwg OCglMCwgJSUiRkZfUkVHX2EiKVxuXHQiCiAKICAgICAgICAgICAgICAgICAiYWRkICQxNiwgJSUi RkZfUkVHX2EiICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgImpuZyAxYiAgICAgICAg ICAgICAgICAgICAgICAgICBcblx0IgotLSAKMi41Mi4wCgoKRnJvbSBhOWIwYTRlZTYxOGI0M2Nm NTMwZTFkY2Q0MTg4OTQ3NGQ4YzM0YWQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBB bmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTog TW9uLCAzIE5vdiAyMDI1IDE5OjE3OjE2ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxNzcvMzA0XSBh dmNvZGVjL3g4Ni9tcGVndmlkZW86IERvbid0IGR1cGxpY2F0ZSByZWdpc3RlcgoKQ3VycmVudGx5 IHNldmVyYWwgaW5saW5lIEFTTSBibG9ja3MgdXNlZCBhIHZhbHVlIGFzCmFuIGlucHV0IGFuZCBy YXggYXMgY2xvYmJlciByZWdpc3Rlci4gVGhlIGlucHV0IHZhbHVlCndhcyBqdXN0IG1vdmVkIGlu dG8gdGhlIHJlZ2lzdGVyIHdoaWNoIHRoZW4gc2VydmVkIGFzIGxvb3AKY291bnRlci4gVGhpcyBp cyB3YXN0ZWZ1bCwgYXMgb25lIGNhbiBqdXN0IHVzZSB0aGUgdmFsdWUncwpyZWdpc3RlciBkaXJl Y3RseSBhcyBsb29wIGNvdW50ZXIuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQg PGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KLS0tCiBsaWJhdmNvZGVjL3g4Ni9tcGVn dmlkZW8uYyB8IDExOSArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgNTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVvLmMgYi9saWJhdmNvZGVjL3g4Ni9tcGVndmlkZW8u YwppbmRleCBkMTYxNGViMWViLi5hYTE1ZTJiMzJhIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4 Ni9tcGVndmlkZW8uYworKysgYi9saWJhdmNvZGVjL3g4Ni9tcGVndmlkZW8uYwpAQCAtMTgzLDE5 ICsxODMsMTkgQEAgc3RhdGljIHZvaWQgZGN0X3VucXVhbnRpemVfbXBlZzFfaW50cmFfbW14KGNv bnN0IE1QVkNvbnRleHQgKnMsCiAgICAgICAgIGJsb2NrMCA9IGJsb2NrWzBdICogcy0+Y19kY19z Y2FsZTsKICAgICAvKiBYWFg6IG9ubHkgTVBFRy0xICovCiAgICAgcXVhbnRfbWF0cml4ID0gcy0+ aW50cmFfbWF0cml4OworICAgIHg4Nl9yZWcgb2Zmc2V0ID0gLTIgKiBuQ29lZmZzOwogX19hc21f XyB2b2xhdGlsZSgKICAgICAgICAgICAgICAgICAicGNtcGVxdyAlJW1tNywgJSVtbTcgICAgICAg ICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgInBzcmx3ICQxNSwgJSVtbTcgICAgICAgICAgICAg ICBcblx0IgotICAgICAgICAgICAgICAgICJtb3ZkICUyLCAlJW1tNiAgICAgICAgICAgICAgICAg XG5cdCIKKyAgICAgICAgICAgICAgICAibW92ZCAlMywgJSVtbTYgICAgICAgICAgICAgICAgIFxu XHQiCiAgICAgICAgICAgICAgICAgInBhY2tzc2R3ICUlbW02LCAlJW1tNiAgICAgICAgICBcblx0 IgogICAgICAgICAgICAgICAgICJwYWNrc3NkdyAlJW1tNiwgJSVtbTYgICAgICAgICAgXG5cdCIK LSAgICAgICAgICAgICAgICAibW92ICUzLCAlJSJGRl9SRUdfYSIgICAgICAgICAgIFxuXHQiCiAg ICAgICAgICAgICAgICAgIi5wMmFsaWduIDQgICAgICAgICAgICAgICAgICAgICBcblx0IgogICAg ICAgICAgICAgICAgICIxOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAg ICAgICAgICAgICAibW92cSAoJTAsICUlIkZGX1JFR19hIiksICUlbW0wIFxuXHQiCi0gICAgICAg ICAgICAgICAgIm1vdnEgOCglMCwgJSUiRkZfUkVHX2EiKSwgJSVtbTFcblx0IgotICAgICAgICAg ICAgICAgICJtb3ZxICglMSwgJSUiRkZfUkVHX2EiKSwgJSVtbTQgXG5cdCIKLSAgICAgICAgICAg ICAgICAibW92cSA4KCUxLCAlJSJGRl9SRUdfYSIpLCAlJW1tNVxuXHQiCisgICAgICAgICAgICAg ICAgIm1vdnEgKCUxLCAlMCksICUlbW0wICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgICAg ICJtb3ZxIDgoJTEsICUwKSwgJSVtbTEgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAi bW92cSAoJTIsICUwKSwgJSVtbTQgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgIm1v dnEgOCglMiwgJTApLCAlJW1tNSAgICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICJwbXVs bHcgJSVtbTYsICUlbW00ICAgICAgICAgICAgXG5cdCIgLy8gcT1xc2NhbGUqcXVhbnRfbWF0cml4 W2ldCiAgICAgICAgICAgICAgICAgInBtdWxsdyAlJW1tNiwgJSVtbTUgICAgICAgICAgICBcblx0 IiAvLyBxPXFzY2FsZSpxdWFudF9tYXRyaXhbaV0KICAgICAgICAgICAgICAgICAicHhvciAlJW1t MiwgJSVtbTIgICAgICAgICAgICAgIFxuXHQiCkBAIC0yMTAsOCArMjEwLDggQEAgX19hc21fXyB2 b2xhdGlsZSgKICAgICAgICAgICAgICAgICAicG11bGx3ICUlbW01LCAlJW1tMSAgICAgICAgICAg IFxuXHQiIC8vIGFicyhibG9ja1tpXSkqcQogICAgICAgICAgICAgICAgICJweG9yICUlbW00LCAl JW1tNCAgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAicHhvciAlJW1tNSwgJSVt bTUgICAgICAgICAgICAgIFxuXHQiIC8vIEZJWE1FIHNsb3cKLSAgICAgICAgICAgICAgICAicGNt cGVxdyAoJTAsICUlIkZGX1JFR19hIiksICUlbW00IFxuXHQiIC8vIGJsb2NrW2ldID09IDAgPyAt MSA6IDAKLSAgICAgICAgICAgICAgICAicGNtcGVxdyA4KCUwLCAlJSJGRl9SRUdfYSIpLCAlJW1t NVxuXHQiIC8vIGJsb2NrW2ldID09IDAgPyAtMSA6IDAKKyAgICAgICAgICAgICAgICAicGNtcGVx dyAoJTEsICUwKSwgJSVtbTQgICAgICAgIFxuXHQiIC8vIGJsb2NrW2ldID09IDAgPyAtMSA6IDAK KyAgICAgICAgICAgICAgICAicGNtcGVxdyA4KCUxLCAlMCksICUlbW01ICAgICAgIFxuXHQiIC8v IGJsb2NrW2ldID09IDAgPyAtMSA6IDAKICAgICAgICAgICAgICAgICAicHNyYXcgJDMsICUlbW0w ICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgInBzcmF3ICQzLCAlJW1tMSAg ICAgICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICJwc3VidyAlJW1tNywgJSVtbTAg ICAgICAgICAgICAgXG5cdCIKQEAgLTIyNCwxMyArMjI0LDE0IEBAIF9fYXNtX18gdm9sYXRpbGUo CiAgICAgICAgICAgICAgICAgInBzdWJ3ICUlbW0zLCAlJW1tMSAgICAgICAgICAgICBcblx0Igog ICAgICAgICAgICAgICAgICJwYW5kbiAlJW1tMCwgJSVtbTQgICAgICAgICAgICAgXG5cdCIKICAg ICAgICAgICAgICAgICAicGFuZG4gJSVtbTEsICUlbW01ICAgICAgICAgICAgIFxuXHQiCi0gICAg ICAgICAgICAgICAgIm1vdnEgJSVtbTQsICglMCwgJSUiRkZfUkVHX2EiKSBcblx0IgotICAgICAg ICAgICAgICAgICJtb3ZxICUlbW01LCA4KCUwLCAlJSJGRl9SRUdfYSIpXG5cdCIKKyAgICAgICAg ICAgICAgICAibW92cSAlJW1tNCwgKCUxLCAlMCkgICAgICAgICAgIFxuXHQiCisgICAgICAgICAg ICAgICAgIm1vdnEgJSVtbTUsIDgoJTEsICUwKSAgICAgICAgICBcblx0IgogCi0gICAgICAgICAg ICAgICAgImFkZCAkMTYsICUlIkZGX1JFR19hIiAgICAgICAgICBcblx0IgorICAgICAgICAgICAg ICAgICJhZGQgJDE2LCAlMCAgICAgICAgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAg ICAianMgMWIgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAg OjoiciIgKGJsb2NrK25Db2VmZnMpLCAiciIocXVhbnRfbWF0cml4K25Db2VmZnMpLCAicm0iIChx c2NhbGUpLCAiZyIgKC0yKm5Db2VmZnMpCi0gICAgICAgICAgICAgICAgOiAiJSJGRl9SRUdfYSwg Im1lbW9yeSIKKyAgICAgICAgICAgICAgICA6ICIrciIgKG9mZnNldCkKKyAgICAgICAgICAgICAg ICA6ICJyIiAoYmxvY2srbkNvZWZmcyksICJyIihxdWFudF9tYXRyaXgrbkNvZWZmcyksICJybSIg KHFzY2FsZSkKKyAgICAgICAgICAgICAgICA6ICJtZW1vcnkiCiAgICAgICAgICk7CiAgICAgYmxv Y2tbMF09IGJsb2NrMDsKIH0KQEAgLTI0NiwxOSArMjQ3LDE5IEBAIHN0YXRpYyB2b2lkIGRjdF91 bnF1YW50aXplX21wZWcxX2ludGVyX21teChjb25zdCBNUFZDb250ZXh0ICpzLAogICAgIG5Db2Vm ZnM9IHMtPmludHJhX3NjYW50YWJsZS5yYXN0ZXJfZW5kWyBzLT5ibG9ja19sYXN0X2luZGV4W25d IF0rMTsKIAogICAgICAgICBxdWFudF9tYXRyaXggPSBzLT5pbnRlcl9tYXRyaXg7CisgICAgeDg2 X3JlZyBvZmZzZXQgPSAtMiAqIG5Db2VmZnM7CiBfX2FzbV9fIHZvbGF0aWxlKAogICAgICAgICAg ICAgICAgICJwY21wZXF3ICUlbW03LCAlJW1tNyAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAg ICAgICAicHNybHcgJDE1LCAlJW1tNyAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAg ICAgIm1vdmQgJTIsICUlbW02ICAgICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgICAg ICJtb3ZkICUzLCAlJW1tNiAgICAgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAi cGFja3NzZHcgJSVtbTYsICUlbW02ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgInBh Y2tzc2R3ICUlbW02LCAlJW1tNiAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJtb3Yg JTMsICUlIkZGX1JFR19hIiAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAiLnAyYWxp Z24gNCAgICAgICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgIjE6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJtb3ZxICglMCwg JSUiRkZfUkVHX2EiKSwgJSVtbTAgXG5cdCIKLSAgICAgICAgICAgICAgICAibW92cSA4KCUwLCAl JSJGRl9SRUdfYSIpLCAlJW1tMVxuXHQiCi0gICAgICAgICAgICAgICAgIm1vdnEgKCUxLCAlJSJG Rl9SRUdfYSIpLCAlJW1tNCBcblx0IgotICAgICAgICAgICAgICAgICJtb3ZxIDgoJTEsICUlIkZG X1JFR19hIiksICUlbW01XG5cdCIKKyAgICAgICAgICAgICAgICAibW92cSAoJTEsICUwKSwgJSVt bTAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgIm1vdnEgOCglMSwgJTApLCAlJW1t MSAgICAgICAgICBcblx0IgorICAgICAgICAgICAgICAgICJtb3ZxICglMiwgJTApLCAlJW1tNCAg ICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92cSA4KCUyLCAlMCksICUlbW01ICAg ICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgInBtdWxsdyAlJW1tNiwgJSVtbTQgICAgICAg ICAgICBcblx0IiAvLyBxPXFzY2FsZSpxdWFudF9tYXRyaXhbaV0KICAgICAgICAgICAgICAgICAi cG11bGx3ICUlbW02LCAlJW1tNSAgICAgICAgICAgIFxuXHQiIC8vIHE9cXNjYWxlKnF1YW50X21h dHJpeFtpXQogICAgICAgICAgICAgICAgICJweG9yICUlbW0yLCAlJW1tMiAgICAgICAgICAgICAg XG5cdCIKQEAgLTI3Nyw4ICsyNzgsOCBAQCBfX2FzbV9fIHZvbGF0aWxlKAogICAgICAgICAgICAg ICAgICJwbXVsbHcgJSVtbTUsICUlbW0xICAgICAgICAgICAgXG5cdCIgLy8gKGFicyhibG9ja1tp XSkqMiArIDEpKnEKICAgICAgICAgICAgICAgICAicHhvciAlJW1tNCwgJSVtbTQgICAgICAgICAg ICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgInB4b3IgJSVtbTUsICUlbW01ICAgICAgICAgICAg ICBcblx0IiAvLyBGSVhNRSBzbG93Ci0gICAgICAgICAgICAgICAgInBjbXBlcXcgKCUwLCAlJSJG Rl9SRUdfYSIpLCAlJW1tNCBcblx0IiAvLyBibG9ja1tpXSA9PSAwID8gLTEgOiAwCi0gICAgICAg ICAgICAgICAgInBjbXBlcXcgOCglMCwgJSUiRkZfUkVHX2EiKSwgJSVtbTVcblx0IiAvLyBibG9j a1tpXSA9PSAwID8gLTEgOiAwCisgICAgICAgICAgICAgICAgInBjbXBlcXcgKCUxLCAlMCksICUl bW00ICAgICAgICBcblx0IiAvLyBibG9ja1tpXSA9PSAwID8gLTEgOiAwCisgICAgICAgICAgICAg ICAgInBjbXBlcXcgOCglMSwgJTApLCAlJW1tNSAgICAgICBcblx0IiAvLyBibG9ja1tpXSA9PSAw ID8gLTEgOiAwCiAgICAgICAgICAgICAgICAgInBzcmF3ICQ0LCAlJW1tMCAgICAgICAgICAgICAg ICBcblx0IgogICAgICAgICAgICAgICAgICJwc3JhdyAkNCwgJSVtbTEgICAgICAgICAgICAgICAg XG5cdCIKICAgICAgICAgICAgICAgICAicHN1YncgJSVtbTcsICUlbW0wICAgICAgICAgICAgIFxu XHQiCkBAIC0yOTEsMTMgKzI5MiwxNCBAQCBfX2FzbV9fIHZvbGF0aWxlKAogICAgICAgICAgICAg ICAgICJwc3VidyAlJW1tMywgJSVtbTEgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAg ICAicGFuZG4gJSVtbTAsICUlbW00ICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAg InBhbmRuICUlbW0xLCAlJW1tNSAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJt b3ZxICUlbW00LCAoJTAsICUlIkZGX1JFR19hIikgXG5cdCIKLSAgICAgICAgICAgICAgICAibW92 cSAlJW1tNSwgOCglMCwgJSUiRkZfUkVHX2EiKVxuXHQiCisgICAgICAgICAgICAgICAgIm1vdnEg JSVtbTQsICglMSwgJTApICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgICAgICJtb3ZxICUl bW01LCA4KCUxLCAlMCkgICAgICAgICAgXG5cdCIKIAotICAgICAgICAgICAgICAgICJhZGQgJDE2 LCAlJSJGRl9SRUdfYSIgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAiYWRkICQxNiwg JTAgICAgICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgImpzIDFiICAgICAg ICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgIDo6InIiIChibG9jaytu Q29lZmZzKSwgInIiKHF1YW50X21hdHJpeCtuQ29lZmZzKSwgInJtIiAocXNjYWxlKSwgImciICgt MipuQ29lZmZzKQotICAgICAgICAgICAgICAgIDogIiUiRkZfUkVHX2EsICJtZW1vcnkiCisgICAg ICAgICAgICAgICAgOiAiK3IiIChvZmZzZXQpCisgICAgICAgICAgICAgICAgOiAiciIgKGJsb2Nr K25Db2VmZnMpLCAiciIocXVhbnRfbWF0cml4K25Db2VmZnMpLCAicm0iIChxc2NhbGUpCisgICAg ICAgICAgICAgICAgOiAibWVtb3J5IgogICAgICAgICApOwogfQogCkBAIC0zMjAsMTcgKzMyMiwx NyBAQCBzdGF0aWMgdm9pZCBkY3RfdW5xdWFudGl6ZV9tcGVnMl9pbnRyYV9tbXgoY29uc3QgTVBW Q29udGV4dCAqcywKICAgICBlbHNlCiAgICAgICAgIGJsb2NrMCA9IGJsb2NrWzBdICogcy0+Y19k Y19zY2FsZTsKICAgICBxdWFudF9tYXRyaXggPSBzLT5pbnRyYV9tYXRyaXg7CisgICAgeDg2X3Jl ZyBvZmZzZXQgPSAtMiAqIG5Db2VmZnM7CiBfX2FzbV9fIHZvbGF0aWxlKAotICAgICAgICAgICAg ICAgICJtb3ZkICUyLCAlJW1tNiAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAg ICAibW92ZCAlMywgJSVtbTYgICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAg InBhY2tzc2R3ICUlbW02LCAlJW1tNiAgICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICJw YWNrc3NkdyAlJW1tNiwgJSVtbTYgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAibW92 ICUzLCAlJSJGRl9SRUdfYSIgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgIi5wMmFs aWduIDQgICAgICAgICAgICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICIxOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAibW92cSAoJTAs ICUlIkZGX1JFR19hIiksICUlbW0wIFxuXHQiCi0gICAgICAgICAgICAgICAgIm1vdnEgOCglMCwg JSUiRkZfUkVHX2EiKSwgJSVtbTFcblx0IgotICAgICAgICAgICAgICAgICJtb3ZxICglMSwgJSUi RkZfUkVHX2EiKSwgJSVtbTQgXG5cdCIKLSAgICAgICAgICAgICAgICAibW92cSA4KCUxLCAlJSJG Rl9SRUdfYSIpLCAlJW1tNVxuXHQiCisgICAgICAgICAgICAgICAgIm1vdnEgKCUxLCAlMCksICUl bW0wICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgICAgICJtb3ZxIDgoJTEsICUwKSwgJSVt bTEgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92cSAoJTIsICUwKSwgJSVtbTQg ICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgIm1vdnEgOCglMiwgJTApLCAlJW1tNSAg ICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICJwbXVsbHcgJSVtbTYsICUlbW00ICAgICAg ICAgICAgXG5cdCIgLy8gcT1xc2NhbGUqcXVhbnRfbWF0cml4W2ldCiAgICAgICAgICAgICAgICAg InBtdWxsdyAlJW1tNiwgJSVtbTUgICAgICAgICAgICBcblx0IiAvLyBxPXFzY2FsZSpxdWFudF9t YXRyaXhbaV0KICAgICAgICAgICAgICAgICAibW92cSAlJW1tMCwgJSVtbTIgICAgICAgICAgICAg IFxuXHQiCkBAIC0zNDMsMTMgKzM0NSwxNCBAQCBfX2FzbV9fIHZvbGF0aWxlKAogICAgICAgICAg ICAgICAgICJwYWRkdyAlJW1tMywgJSVtbTEgICAgICAgICAgICAgXG5cdCIgLy8gc28gdGhhdCBh IHJpZ2h0LXNoaWZ0CiAgICAgICAgICAgICAgICAgInBzcmF3ICQ0LCAlJW1tMCAgICAgICAgICAg ICAgICBcblx0IiAvLyBpcyBlcXVpdmFsZW50IHRvIGRpdmlkZQogICAgICAgICAgICAgICAgICJw c3JhdyAkNCwgJSVtbTEgICAgICAgICAgICAgICAgXG5cdCIgLy8gd2l0aCByb3VuZGluZyB0b3dh cmRzIHplcm8KLSAgICAgICAgICAgICAgICAibW92cSAlJW1tMCwgKCUwLCAlJSJGRl9SRUdfYSIp IFxuXHQiCi0gICAgICAgICAgICAgICAgIm1vdnEgJSVtbTEsIDgoJTAsICUlIkZGX1JFR19hIilc blx0IgorICAgICAgICAgICAgICAgICJtb3ZxICUlbW0wLCAoJTEsICUwKSAgICAgICAgICAgXG5c dCIKKyAgICAgICAgICAgICAgICAibW92cSAlJW1tMSwgOCglMSwgJTApICAgICAgICAgIFxuXHQi CiAKLSAgICAgICAgICAgICAgICAiYWRkICQxNiwgJSUiRkZfUkVHX2EiICAgICAgICAgIFxuXHQi CisgICAgICAgICAgICAgICAgImFkZCAkMTYsICUwICAgICAgICAgICAgICAgICAgICBcblx0Igog ICAgICAgICAgICAgICAgICJqbmcgMWIgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAg ICAgICAgICAgICAgICA6OiJyIiAoYmxvY2srbkNvZWZmcyksICJyIihxdWFudF9tYXRyaXgrbkNv ZWZmcyksICJybSIgKHFzY2FsZSksICJnIiAoLTIqbkNvZWZmcykKLSAgICAgICAgICAgICAgICA6 ICIlIkZGX1JFR19hLCAibWVtb3J5IgorICAgICAgICAgICAgICAgIDogIityIiAob2Zmc2V0KQor ICAgICAgICAgICAgICAgIDogInIiIChibG9jaytuQ29lZmZzKSwgInIiKHF1YW50X21hdHJpeCtu Q29lZmZzKSwgInJtIiAocXNjYWxlKQorICAgICAgICAgICAgICAgIDogIm1lbW9yeSIKICAgICAg ICAgKTsKICAgICBibG9ja1swXT0gYmxvY2swOwogICAgICAgICAvL05vdGUsIHdlIGRvIG5vdCBk byBtaXNtYXRjaCBjb250cm9sIGZvciBpbnRyYSBhcyBlcnJvcnMgY2Fubm90IGFjY3VtdWxhdGUK QEAgLTM1OCwzMCArMzYxLDI3IEBAIF9fYXNtX18gdm9sYXRpbGUoCiBzdGF0aWMgdm9pZCBkY3Rf dW5xdWFudGl6ZV9tcGVnMl9pbnRlcl9tbXgoY29uc3QgTVBWQ29udGV4dCAqcywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90ICpibG9jaywgaW50IG4s IGludCBxc2NhbGUpCiB7Ci0gICAgeDg2X3JlZyBuQ29lZmZzOwotICAgIGNvbnN0IHVpbnQxNl90 ICpxdWFudF9tYXRyaXg7Ci0KICAgICBhdl9hc3NlcnQyKHMtPmJsb2NrX2xhc3RfaW5kZXhbbl0+ PTApOwogCi0gICAgaWYgKHMtPnFfc2NhbGVfdHlwZSkgcXNjYWxlID0gZmZfbXBlZzJfbm9uX2xp bmVhcl9xc2NhbGVbcXNjYWxlXTsKLSAgICBlbHNlICAgICAgICAgICAgICAgICBxc2NhbGUgPDw9 IDE7CisgICAgeDg2X3JlZyBxc2NhbGUyID0gcy0+cV9zY2FsZV90eXBlID8gZmZfbXBlZzJfbm9u X2xpbmVhcl9xc2NhbGVbcXNjYWxlXSA6ICh1bnNpZ25lZClxc2NhbGUgPDwgMTsKKyAgICB4ODZf cmVnIG9mZnNldCAgPSBzLT5pbnRyYV9zY2FudGFibGUucmFzdGVyX2VuZFtzLT5ibG9ja19sYXN0 X2luZGV4W25dXSA8PCAxOworICAgIGNvbnN0IHZvaWQgKnF1YW50X21hdHJpeCA9IChjb25zdCBj aGFyKilzLT5pbnRlcl9tYXRyaXggKyBvZmZzZXQ7CiAKLSAgICBuQ29lZmZzPSBzLT5pbnRyYV9z Y2FudGFibGUucmFzdGVyX2VuZFsgcy0+YmxvY2tfbGFzdF9pbmRleFtuXSBdOwogCi0gICAgICAg IHF1YW50X21hdHJpeCA9IHMtPmludGVyX21hdHJpeDsKIF9fYXNtX18gdm9sYXRpbGUoCisgICAg ICAgICAgICAgICAgIm1vdmQgICAgICAgICAgJWsxLCAlJW1tNiAgICAgIFxuXHQiCisgICAgICAg ICAgICAgICAgImxlYSAgICAgICglMiwgJTApLCAlMSAgICAgICAgIFxuXHQiCisgICAgICAgICAg ICAgICAgIm5lZyAgICAgICAgICAgICUwICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAg ICAgInBjbXBlcXcgJSVtbTcsICUlbW03ICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgICAg ICJwc3JscSAkNDgsICUlbW03ICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAi bW92ZCAlMiwgJSVtbTYgICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgInBh Y2tzc2R3ICUlbW02LCAlJW1tNiAgICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICJwYWNr c3NkdyAlJW1tNiwgJSVtbTYgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAibW92ICUz LCAlJSJGRl9SRUdfYSIgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgIi5wMmFsaWdu IDQgICAgICAgICAgICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICIxOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAibW92cSAoJTAsICUl IkZGX1JFR19hIiksICUlbW0wIFxuXHQiCi0gICAgICAgICAgICAgICAgIm1vdnEgOCglMCwgJSUi RkZfUkVHX2EiKSwgJSVtbTFcblx0IgotICAgICAgICAgICAgICAgICJtb3ZxICglMSwgJSUiRkZf UkVHX2EiKSwgJSVtbTQgXG5cdCIKLSAgICAgICAgICAgICAgICAibW92cSA4KCUxLCAlJSJGRl9S RUdfYSIpLCAlJW1tNVxuXHQiCisgICAgICAgICAgICAgICAgIm1vdnEgICAgICglMSwgJTApLCAl JW1tMCAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgIm1vdnEgICAgOCglMSwgJTApLCAlJW1t MSAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgIm1vdnEgICAgICglMywgJTApLCAlJW1tNCAg ICAgIFxuXHQiCisgICAgICAgICAgICAgICAgIm1vdnEgICAgOCglMywgJTApLCAlJW1tNSAgICAg IFxuXHQiCiAgICAgICAgICAgICAgICAgInBtdWxsdyAlJW1tNiwgJSVtbTQgICAgICAgICAgICBc blx0IiAvLyBxPXFzY2FsZSpxdWFudF9tYXRyaXhbaV0KICAgICAgICAgICAgICAgICAicG11bGx3 ICUlbW02LCAlJW1tNSAgICAgICAgICAgIFxuXHQiIC8vIHE9cXNjYWxlKnF1YW50X21hdHJpeFtp XQogICAgICAgICAgICAgICAgICJweG9yICUlbW0yLCAlJW1tMiAgICAgICAgICAgICAgXG5cdCIK QEAgLTQwMCw4ICs0MDAsOCBAQCBfX2FzbV9fIHZvbGF0aWxlKAogICAgICAgICAgICAgICAgICJw YWRkdyAlJW1tNSwgJSVtbTEgICAgICAgICAgICAgXG5cdCIgLy8gKGFicyhibG9ja1tpXSkqMiAr IDEpKnEKICAgICAgICAgICAgICAgICAicHhvciAlJW1tNCwgJSVtbTQgICAgICAgICAgICAgIFxu XHQiCiAgICAgICAgICAgICAgICAgInB4b3IgJSVtbTUsICUlbW01ICAgICAgICAgICAgICBcblx0 IiAvLyBGSVhNRSBzbG93Ci0gICAgICAgICAgICAgICAgInBjbXBlcXcgKCUwLCAlJSJGRl9SRUdf YSIpLCAlJW1tNCBcblx0IiAvLyBibG9ja1tpXSA9PSAwID8gLTEgOiAwCi0gICAgICAgICAgICAg ICAgInBjbXBlcXcgOCglMCwgJSUiRkZfUkVHX2EiKSwgJSVtbTVcblx0IiAvLyBibG9ja1tpXSA9 PSAwID8gLTEgOiAwCisgICAgICAgICAgICAgICAgInBjbXBlcXcgICglMSwgJTApLCAlJW1tNCAg ICAgIFxuXHQiIC8vIGJsb2NrW2ldID09IDAgPyAtMSA6IDAKKyAgICAgICAgICAgICAgICAicGNt cGVxdyA4KCUxLCAlMCksICUlbW01ICAgICAgXG5cdCIgLy8gYmxvY2tbaV0gPT0gMCA/IC0xIDog MAogICAgICAgICAgICAgICAgICJwc3JsdyAkNSwgJSVtbTAgICAgICAgICAgICAgICAgXG5cdCIK ICAgICAgICAgICAgICAgICAicHNybHcgJDUsICUlbW0xICAgICAgICAgICAgICAgIFxuXHQiCiAg ICAgICAgICAgICAgICAgInB4b3IgJSVtbTIsICUlbW0wICAgICAgICAgICAgICBcblx0IgpAQCAt NDEyLDEyICs0MTIsMTIgQEAgX19hc21fXyB2b2xhdGlsZSgKICAgICAgICAgICAgICAgICAicGFu ZG4gJSVtbTEsICUlbW01ICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgInB4b3Ig JSVtbTQsICUlbW03ICAgICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICJweG9yICUl bW01LCAlJW1tNyAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAibW92cSAlJW1t NCwgKCUwLCAlJSJGRl9SRUdfYSIpIFxuXHQiCi0gICAgICAgICAgICAgICAgIm1vdnEgJSVtbTUs IDgoJTAsICUlIkZGX1JFR19hIilcblx0IgorICAgICAgICAgICAgICAgICJtb3ZxICAgICAgICAl JW1tNCwgKCUxLCAlMCkgICBcblx0IgorICAgICAgICAgICAgICAgICJtb3ZxICAgICAgICAlJW1t NSwgOCglMSwgJTApICBcblx0IgogCi0gICAgICAgICAgICAgICAgImFkZCAkMTYsICUlIkZGX1JF R19hIiAgICAgICAgICBcblx0IgorICAgICAgICAgICAgICAgICJhZGQgICAgICAgICAgICQxNiwg JTAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAiam5nIDFiICAgICAgICAgICAgICAg ICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgIm1vdmQgMTI0KCUwLCAlMyksICUlbW0w ICAgICAgICBcblx0IgorICAgICAgICAgICAgICAgICJtb3ZkICAgICAgMTI0KCUyKSwgJSVtbTAg ICAgICBcblx0IgogICAgICAgICAgICAgICAgICJtb3ZxICUlbW03LCAlJW1tNiAgICAgICAgICAg ICAgXG5cdCIKICAgICAgICAgICAgICAgICAicHNybHEgJDMyLCAlJW1tNyAgICAgICAgICAgICAg IFxuXHQiCiAgICAgICAgICAgICAgICAgInB4b3IgJSVtbTYsICUlbW03ICAgICAgICAgICAgICBc blx0IgpAQCAtNDI3LDEwICs0MjcsMTEgQEAgX19hc21fXyB2b2xhdGlsZSgKICAgICAgICAgICAg ICAgICAicHNsbGQgJDMxLCAlJW1tNyAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAg ICAgInBzcmxxICQxNSwgJSVtbTcgICAgICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgICAg ICJweG9yICUlbW03LCAlJW1tMCAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAi bW92ZCAlJW1tMCwgMTI0KCUwLCAlMykgICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgIm1v dmQgICAgICAgICUlbW0wLCAxMjQoJTIpICAgIFxuXHQiCiAKLSAgICAgICAgICAgICAgICA6OiJy IiAoYmxvY2srbkNvZWZmcyksICJyIihxdWFudF9tYXRyaXgrbkNvZWZmcyksICJybSIgKHFzY2Fs ZSksICJyIiAoLTIqbkNvZWZmcykKLSAgICAgICAgICAgICAgICA6ICIlIkZGX1JFR19hLCAibWVt b3J5IgorICAgICAgICAgICAgICAgIDogIityIihvZmZzZXQpLCAiK3IiIChxc2NhbGUyKQorICAg ICAgICAgICAgICAgIDogInIiIChibG9jayksICJyIihxdWFudF9tYXRyaXgpCisgICAgICAgICAg ICAgICAgOiAibWVtb3J5IgogICAgICAgICApOwogfQogCi0tIAoyLjUyLjAKCgpGcm9tIDVmNGFh Y2U5YzQ5N2YyYjlmZjU1YTlkNGEwNDE0ZTVmOWUyOWVkODkgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2su Y29tPgpEYXRlOiBUdWUsIDQgTm92IDIwMjUgMDc6NTM6MDkgKzAxMDAKU3ViamVjdDogW1BBVENI IDE3OC8zMDRdIGF2Y29kZWMveDg2L21wZWd2aWRlbzogUG9ydAogZGN0X3VucXVhbnRpemVfaDI2 M197aW50cmEsaW50ZXJ9X21teCB0byBTU1NFMwoKSXQgYmVuZWZpdHMgZnJvbSB3aWRlciByZWdp c3RlcnMgYW5kIHBzaWdudy4KCkJlbmNobWFya3M6CmRjdF91bnF1YW50aXplX2gyNjNfaW50ZXJf YzogICAgICAgICAgICAgICAgICAgICAgICAgICAgODguMyAoIDEuMDB4KQpkY3RfdW5xdWFudGl6 ZV9oMjYzX2ludGVyX21teDogICAgICAgICAgICAgICAgICAgICAgICAgIDI0LjcgKCAzLjU4eCkK ZGN0X3VucXVhbnRpemVfaDI2M19pbnRlcl9zc3NlMzogICAgICAgICAgICAgICAgICAgICAgICAg OS4zICggOS40N3gpCmRjdF91bnF1YW50aXplX2gyNjNfaW50cmFfYzogICAgICAgICAgICAgICAg ICAgICAgICAgICAgOTMuNyAoIDEuMDB4KQpkY3RfdW5xdWFudGl6ZV9oMjYzX2ludHJhX21teDog ICAgICAgICAgICAgICAgICAgICAgICAgIDMwLjYgKCAzLjA2eCkKZGN0X3VucXVhbnRpemVfaDI2 M19pbnRyYV9zc3NlMzogICAgICAgICAgICAgICAgICAgICAgICAxNi41ICggNS42OXgpCgpTaWdu ZWQtb2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29r LmNvbT4KLS0tCiBsaWJhdmNvZGVjL3g4Ni9tcGVndmlkZW8uYyB8IDE0NiArKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjIgaW5zZXJ0aW9ucygr KSwgODQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVv LmMgYi9saWJhdmNvZGVjL3g4Ni9tcGVndmlkZW8uYwppbmRleCBhYTE1ZTJiMzJhLi44MmEyOWQx YmNmIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4Ni9tcGVndmlkZW8uYworKysgYi9saWJhdmNv ZGVjL3g4Ni9tcGVndmlkZW8uYwpAQCAtMzAsOCArMzAsMTMgQEAKIAogI2lmIEhBVkVfTU1YX0lO TElORQogCi1zdGF0aWMgdm9pZCBkY3RfdW5xdWFudGl6ZV9oMjYzX2ludHJhX21teChjb25zdCBN UFZDb250ZXh0ICpzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50MTZfdCAqYmxvY2ssIGludCBuLCBpbnQgcXNjYWxlKQorI2RlZmluZSBTUExBVFcocmVnKSAi cHVucGNrbHdkICAgICUlIiAjcmVnICIsICUlIiAjcmVnICJcblx0IiBcCisgICAgICAgICAgICAg ICAgICAgICJwc2h1ZmQgICAkMCwgJSUiICNyZWcgIiwgJSUiICNyZWcgIlxuXHQiCisKKyNpZiBI QVZFX1NTU0UzX0lOTElORQorCitzdGF0aWMgdm9pZCBkY3RfdW5xdWFudGl6ZV9oMjYzX2ludHJh X3Nzc2UzKGNvbnN0IE1QVkNvbnRleHQgKnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludDE2X3QgKmJsb2NrLCBpbnQgbiwgaW50IHFzY2FsZSkKIHsKICAg ICB4ODZfcmVnIHFtdWwgPSAodW5zaWduZWQpcXNjYWxlIDw8IDE7CiAgICAgaW50IGxldmVsLCBx YWRkOwpAQCAtNTEsNjEgKzU2LDQ1IEBAIHN0YXRpYyB2b2lkIGRjdF91bnF1YW50aXplX2gyNjNf aW50cmFfbW14KGNvbnN0IE1QVkNvbnRleHQgKnMsCiAgICAgeDg2X3JlZyBvZmZzZXQgPSBzLT5h Y19wcmVkID8gNjMgPDwgMSA6IHMtPmludHJhX3NjYW50YWJsZS5yYXN0ZXJfZW5kW3MtPmJsb2Nr X2xhc3RfaW5kZXhbbl1dIDw8IDE7CiAKIF9fYXNtX18gdm9sYXRpbGUoCi0gICAgICAgICAgICAg ICAgIm1vdmQgICAgICAgICAgJWsxLCAlJW1tNiAgICAgICBcblx0IiAvL3FtdWwKLSAgICAgICAg ICAgICAgICAibGVhICAgICAgKCUyLCAlMCksICUxICAgICAgICAgIFxuXHQiCi0gICAgICAgICAg ICAgICAgIm5lZyAgICAgICAgICAgICUwICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAg ICAgICJwYWNrc3NkdyAlJW1tNiwgJSVtbTYgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAg ICAicGFja3NzZHcgJSVtbTYsICUlbW02ICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAg Im1vdmQgICAgICAgICAgICUzLCAlJW1tNSAgICAgICBcblx0IiAvL3FhZGQKLSAgICAgICAgICAg ICAgICAicHhvciAlJW1tNywgJSVtbTcgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAg ICAgInBhY2tzc2R3ICUlbW01LCAlJW1tNSAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAg ICJwYWNrc3NkdyAlJW1tNSwgJSVtbTUgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAi cHN1YncgJSVtbTUsICUlbW03ICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInB4 b3IgJSVtbTQsICUlbW00ICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICIucDJh bGlnbiA0ICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAiMTogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgIm1vdnEgICAg ICglMSwgJTApLCAlJW1tMCAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJtb3ZxICAgIDgo JTEsICUwKSwgJSVtbTEgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92ZCAgICAgICAg ICAlazEsICUleG1tMCAgICAgXG5cdCIgLy9xbXVsCisgICAgICAgICAgICAgICAgImxlYSAgICAg ICglMiwgJTApLCAlMSAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgIm5lZyAgICAgICAg ICAgICUwICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgIm1vdmQgICAgICAgICAg ICUzLCAlJXhtbTEgICAgIFxuXHQiIC8vcWFkZAorICAgICAgICAgICAgICAgIFNQTEFUVyh4bW0w KQorICAgICAgICAgICAgICAgIFNQTEFUVyh4bW0xKQogCi0gICAgICAgICAgICAgICAgInBtdWxs dyAlJW1tNiwgJSVtbTAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJwbXVsbHcg JSVtbTYsICUlbW0xICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAiLnAyYWxpZ24g NCAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAiMTogICAgICAgICAg ICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92ZHFhICAgKCUxLCAl MCksICUleG1tMiAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92ZHFhIDE2KCUxLCAlMCks ICUleG1tMyAgICAgXG5cdCIKIAotICAgICAgICAgICAgICAgICJtb3ZxICAgICAoJTEsICUwKSwg JSVtbTIgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAibW92cSAgICA4KCUxLCAlMCksICUl bW0zICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgIm1vdmRxYSAgICAgJSV4bW0xLCAlJXht bTQgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgIm1vdmRxYSAgICAgJSV4bW0xLCAlJXhtbTUg ICAgIFxuXHQiCiAKLSAgICAgICAgICAgICAgICAicGNtcGd0dyAlJW1tNCwgJSVtbTIgICAgICAg ICAgIFxuXHQiIC8vIGJsb2NrW2ldIDwgMCA/IC0xIDogMAotICAgICAgICAgICAgICAgICJwY21w Z3R3ICUlbW00LCAlJW1tMyAgICAgICAgICAgXG5cdCIgLy8gYmxvY2tbaV0gPCAwID8gLTEgOiAw CisgICAgICAgICAgICAgICAgInBzaWdudyAgICAgJSV4bW0yLCAlJXhtbTQgICAgIFxuXHQiIC8v IHNnbihibG9ja1tpXSkqcWFkZAorICAgICAgICAgICAgICAgICJwc2lnbncgICAgICUleG1tMywg JSV4bW01ICAgICBcblx0IiAvLyBzZ24oYmxvY2tbaV0pKnFhZGQKIAotICAgICAgICAgICAgICAg ICJweG9yICUlbW0yLCAlJW1tMCAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAi cHhvciAlJW1tMywgJSVtbTEgICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgInBt dWxsdyAgICAgJSV4bW0wLCAlJXhtbTIgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgInBtdWxs dyAgICAgJSV4bW0wLCAlJXhtbTMgICAgIFxuXHQiCiAKLSAgICAgICAgICAgICAgICAicGFkZHcg JSVtbTcsICUlbW0wICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInBhZGR3ICUl bW03LCAlJW1tMSAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgICAgICJwYWRkdyAgICAg ICUleG1tNCwgJSV4bW0yICAgICBcblx0IgorICAgICAgICAgICAgICAgICJwYWRkdyAgICAgICUl eG1tNSwgJSV4bW0zICAgICBcblx0IgogCi0gICAgICAgICAgICAgICAgInB4b3IgJSVtbTAsICUl bW0yICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJweG9yICUlbW0xLCAlJW1t MyAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92ZHFhICAgICAlJXhtbTIs ICglMSwgJTApICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92ZHFhICAgICAlJXhtbTMsIDE2 KCUxLCAlMCkgXG5cdCIKIAotICAgICAgICAgICAgICAgICJwY21wZXF3ICUlbW03LCAlJW1tMCAg ICAgICAgICAgXG5cdCIgLy8gYmxvY2tbaV0gPT0gMCA/IC0xIDogMAotICAgICAgICAgICAgICAg ICJwY21wZXF3ICUlbW03LCAlJW1tMSAgICAgICAgICAgXG5cdCIgLy8gYmxvY2tbaV0gPT0gMCA/ IC0xIDogMAotCi0gICAgICAgICAgICAgICAgInBhbmRuICUlbW0yLCAlJW1tMCAgICAgICAgICAg ICBcblx0IgotICAgICAgICAgICAgICAgICJwYW5kbiAlJW1tMywgJSVtbTEgICAgICAgICAgICAg XG5cdCIKLQotICAgICAgICAgICAgICAgICJtb3ZxICAgICAgICAlJW1tMCwgKCUxLCAlMCkgICAg XG5cdCIKLSAgICAgICAgICAgICAgICAibW92cSAgICAgICAgJSVtbTEsIDgoJTEsICUwKSAgIFxu XHQiCi0KLSAgICAgICAgICAgICAgICAiYWRkICAgICAgICAgICAkMTYsICUwICAgICAgICAgIFxu XHQiCi0gICAgICAgICAgICAgICAgImpuZyAxYiAgICAgICAgICAgICAgICAgICAgICAgICBcblx0 IgorICAgICAgICAgICAgICAgICJhZGQgICAgICAgICAgICQzMiwgJTAgICAgICAgICBcblx0Igor ICAgICAgICAgICAgICAgICJqbmcgICAgICAgICAgICAxYiAgICAgICAgICAgICBcblx0IgogICAg ICAgICAgICAgICAgIDogIityIihvZmZzZXQpLCAiK3IiKHFtdWwpCiAgICAgICAgICAgICAgICAg OiAiciIgKGJsb2NrKSwgInJtIiAocWFkZCkKLSAgICAgICAgICAgICAgICA6ICJtZW1vcnkiCisg ICAgICAgICAgICAgICAgOiBYTU1fQ0xPQkJFUlMoIiV4bW0wIiwgIiV4bW0xIiwgIiV4bW0yIiwg IiV4bW0zIiwgIiV4bW00IiwgIiV4bW01IiwpICJtZW1vcnkiCiAgICAgICAgICk7CiAgICAgICAg IGJsb2NrWzBdPSBsZXZlbDsKIH0KIAogCi1zdGF0aWMgdm9pZCBkY3RfdW5xdWFudGl6ZV9oMjYz X2ludGVyX21teChjb25zdCBNUFZDb250ZXh0ICpzLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50MTZfdCAqYmxvY2ssIGludCBuLCBpbnQgcXNjYWxlKQorc3Rh dGljIHZvaWQgZGN0X3VucXVhbnRpemVfaDI2M19pbnRlcl9zc3NlMyhjb25zdCBNUFZDb250ZXh0 ICpzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90 ICpibG9jaywgaW50IG4sIGludCBxc2NhbGUpCiB7CiAgICAgaW50IHFtdWwgPSBxc2NhbGUgPDwg MTsKICAgICBpbnQgcWFkZCA9IChxc2NhbGUgLSAxKSB8IDE7CkBAIC0xMTUsNTYgKzEwNCw0MSBA QCBzdGF0aWMgdm9pZCBkY3RfdW5xdWFudGl6ZV9oMjYzX2ludGVyX21teChjb25zdCBNUFZDb250 ZXh0ICpzLAogICAgIHg4Nl9yZWcgb2Zmc2V0ID0gcy0+aW50ZXJfc2NhbnRhYmxlLnJhc3Rlcl9l bmRbcy0+YmxvY2tfbGFzdF9pbmRleFtuXV0gPDwgMTsKIAogX19hc21fXyB2b2xhdGlsZSgKLSAg ICAgICAgICAgICAgICAibW92ZCAgICAgICAgICAgJTIsICUlbW02ICAgICAgIFxuXHQiIC8vcW11 bAotICAgICAgICAgICAgICAgICJwYWNrc3NkdyAlJW1tNiwgJSVtbTYgICAgICAgICAgXG5cdCIK LSAgICAgICAgICAgICAgICAicGFja3NzZHcgJSVtbTYsICUlbW02ICAgICAgICAgIFxuXHQiCi0g ICAgICAgICAgICAgICAgIm1vdmQgICAgICAgICAgICUzLCAlJW1tNSAgICAgICBcblx0IiAvL3Fh ZGQKLSAgICAgICAgICAgICAgICAiYWRkICAgICAgICAgICAgJTEsICUwICAgICAgICAgIFxuXHQi Ci0gICAgICAgICAgICAgICAgIm5lZyAgICAgICAgICAgICUxICAgICAgICAgICAgICBcblx0Igot ICAgICAgICAgICAgICAgICJweG9yICUlbW03LCAlJW1tNyAgICAgICAgICAgICAgXG5cdCIKLSAg ICAgICAgICAgICAgICAicGFja3NzZHcgJSVtbTUsICUlbW01ICAgICAgICAgIFxuXHQiCi0gICAg ICAgICAgICAgICAgInBhY2tzc2R3ICUlbW01LCAlJW1tNSAgICAgICAgICBcblx0IgotICAgICAg ICAgICAgICAgICJwc3VidyAlJW1tNSwgJSVtbTcgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAg ICAgICAgICAicHhvciAlJW1tNCwgJSVtbTQgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAg ICAgICAgIi5wMmFsaWduIDQgICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAg ICAgICIxOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAg ICAibW92cSAgICAgKCUwLCAlMSksICUlbW0wICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAg Im1vdnEgICAgOCglMCwgJTEpLCAlJW1tMSAgICAgICBcblx0IgorICAgICAgICAgICAgICAgICJt b3ZkICAgICAgICAgICAlMiwgJSV4bW0wICAgICBcblx0IiAvL3FtdWwKKyAgICAgICAgICAgICAg ICAibW92ZCAgICAgICAgICAgJTMsICUleG1tMSAgICAgXG5cdCIgLy9xYWRkCisgICAgICAgICAg ICAgICAgImFkZCAgICAgICAgICAgICUxLCAlMCAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAg ICAgIm5lZyAgICAgICAgICAgICUxICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAg U1BMQVRXKHhtbTApCisgICAgICAgICAgICAgICAgU1BMQVRXKHhtbTEpCiAKLSAgICAgICAgICAg ICAgICAicG11bGx3ICUlbW02LCAlJW1tMCAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAg ICAgInBtdWxsdyAlJW1tNiwgJSVtbTEgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgICAg ICIucDJhbGlnbiA0ICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgICAgICIx OiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgICAgICJtb3Zk cWEgICAoJTAsICUxKSwgJSV4bW0yICAgICBcblx0IgorICAgICAgICAgICAgICAgICJtb3ZkcWEg MTYoJTAsICUxKSwgJSV4bW0zICAgICBcblx0IgogCi0gICAgICAgICAgICAgICAgIm1vdnEgICAg ICglMCwgJTEpLCAlJW1tMiAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJtb3ZxICAgIDgo JTAsICUxKSwgJSVtbTMgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92ZHFhICAgICAl JXhtbTEsICUleG1tNCAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92ZHFhICAgICAlJXht bTEsICUleG1tNSAgICAgXG5cdCIKIAotICAgICAgICAgICAgICAgICJwY21wZ3R3ICUlbW00LCAl JW1tMiAgICAgICAgICAgXG5cdCIgLy8gYmxvY2tbaV0gPCAwID8gLTEgOiAwCi0gICAgICAgICAg ICAgICAgInBjbXBndHcgJSVtbTQsICUlbW0zICAgICAgICAgICBcblx0IiAvLyBibG9ja1tpXSA8 IDAgPyAtMSA6IDAKKyAgICAgICAgICAgICAgICAicHNpZ253ICAgICAlJXhtbTIsICUleG1tNCAg ICAgXG5cdCIgLy8gc2duKGJsb2NrW2ldKSpxYWRkCisgICAgICAgICAgICAgICAgInBzaWdudyAg ICAgJSV4bW0zLCAlJXhtbTUgICAgIFxuXHQiIC8vIHNnbihibG9ja1tpXSkqcWFkZAogCi0gICAg ICAgICAgICAgICAgInB4b3IgJSVtbTIsICUlbW0wICAgICAgICAgICAgICBcblx0IgotICAgICAg ICAgICAgICAgICJweG9yICUlbW0zLCAlJW1tMSAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAg ICAgICAgICAicG11bGx3ICAgICAlJXhtbTAsICUleG1tMiAgICAgXG5cdCIKKyAgICAgICAgICAg ICAgICAicG11bGx3ICAgICAlJXhtbTAsICUleG1tMyAgICAgXG5cdCIKIAotICAgICAgICAgICAg ICAgICJwYWRkdyAlJW1tNywgJSVtbTAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAg ICAicGFkZHcgJSVtbTcsICUlbW0xICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAg InBhZGR3ICAgICAgJSV4bW00LCAlJXhtbTIgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgInBh ZGR3ICAgICAgJSV4bW01LCAlJXhtbTMgICAgIFxuXHQiCiAKLSAgICAgICAgICAgICAgICAicHhv ciAlJW1tMCwgJSVtbTIgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInB4b3Ig JSVtbTEsICUlbW0zICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgICAgICJtb3ZkcWEg ICAgICUleG1tMiwgKCUwLCAlMSkgICBcblx0IgorICAgICAgICAgICAgICAgICJtb3ZkcWEgICAg ICUleG1tMywgMTYoJTAsICUxKSBcblx0IgogCi0gICAgICAgICAgICAgICAgInBjbXBlcXcgJSVt bTcsICUlbW0wICAgICAgICAgICBcblx0IiAvLyBibG9ja1tpXSA9PSAwID8gLTEgOiAwCi0gICAg ICAgICAgICAgICAgInBjbXBlcXcgJSVtbTcsICUlbW0xICAgICAgICAgICBcblx0IiAvLyBibG9j a1tpXSA9PSAwID8gLTEgOiAwCi0KLSAgICAgICAgICAgICAgICAicGFuZG4gJSVtbTIsICUlbW0w ICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInBhbmRuICUlbW0zLCAlJW1tMSAg ICAgICAgICAgICBcblx0IgotCi0gICAgICAgICAgICAgICAgIm1vdnEgICAgICAgICUlbW0wLCAo JTAsICUxKSAgICBcblx0IgotICAgICAgICAgICAgICAgICJtb3ZxICAgICAgICAlJW1tMSwgOCgl MCwgJTEpICAgXG5cdCIKLQotICAgICAgICAgICAgICAgICJhZGQgICAgICAgICAgICQxNiwgJTEg ICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAiam5nIDFiICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgImFkZCAgICAgICAgICAgJDMyLCAlMSAgICAg ICAgIFxuXHQiCisgICAgICAgICAgICAgICAgImpuZyAxYiAgICAgICAgICAgICAgICAgICAgICAg IFxuXHQiCiAgICAgICAgICAgICAgICAgOiAiK3IiIChibG9jayksICIrciIgKG9mZnNldCkKICAg ICAgICAgICAgICAgICA6ICJybSIocW11bCksICJybSIgKHFhZGQpCi0gICAgICAgICAgICAgICAg OiAibWVtb3J5IgorICAgICAgICAgICAgICAgIDogWE1NX0NMT0JCRVJTKCIleG1tMCIsICIleG1t MSIsICIleG1tMiIsICIleG1tMyIsICIleG1tNCIsICIleG1tNSIsKSAibWVtb3J5IgogICAgICAg ICApOwogfQorI2VuZGlmCiAKIHN0YXRpYyB2b2lkIGRjdF91bnF1YW50aXplX21wZWcxX2ludHJh X21teChjb25zdCBNUFZDb250ZXh0ICpzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludDE2X3QgKmJsb2NrLCBpbnQgbiwgaW50IHFzY2FsZSkKQEAgLTQ0Mywx MyArNDE3LDE3IEBAIGF2X2NvbGQgdm9pZCBmZl9tcHZfdW5xdWFudGl6ZV9pbml0X3g4NihNUFZV bnF1YW50RFNQQ29udGV4dCAqcywgaW50IGJpdGV4YWN0KQogICAgIGludCBjcHVfZmxhZ3MgPSBh dl9nZXRfY3B1X2ZsYWdzKCk7CiAKICAgICBpZiAoSU5MSU5FX01NWChjcHVfZmxhZ3MpKSB7Ci0g ICAgICAgIHMtPmRjdF91bnF1YW50aXplX2gyNjNfaW50cmEgPSBkY3RfdW5xdWFudGl6ZV9oMjYz X2ludHJhX21teDsKLSAgICAgICAgcy0+ZGN0X3VucXVhbnRpemVfaDI2M19pbnRlciA9IGRjdF91 bnF1YW50aXplX2gyNjNfaW50ZXJfbW14OwogICAgICAgICBzLT5kY3RfdW5xdWFudGl6ZV9tcGVn MV9pbnRyYSA9IGRjdF91bnF1YW50aXplX21wZWcxX2ludHJhX21teDsKICAgICAgICAgcy0+ZGN0 X3VucXVhbnRpemVfbXBlZzFfaW50ZXIgPSBkY3RfdW5xdWFudGl6ZV9tcGVnMV9pbnRlcl9tbXg7 CiAgICAgICAgIGlmICghYml0ZXhhY3QpCiAgICAgICAgICAgICBzLT5kY3RfdW5xdWFudGl6ZV9t cGVnMl9pbnRyYSA9IGRjdF91bnF1YW50aXplX21wZWcyX2ludHJhX21teDsKICAgICAgICAgcy0+ ZGN0X3VucXVhbnRpemVfbXBlZzJfaW50ZXIgPSBkY3RfdW5xdWFudGl6ZV9tcGVnMl9pbnRlcl9t bXg7CiAgICAgfQorI2lmIEhBVkVfU1NTRTNfSU5MSU5FCisgICAgaWYgKElOTElORV9TU1NFMyhj cHVfZmxhZ3MpKSB7CisgICAgICAgIHMtPmRjdF91bnF1YW50aXplX2gyNjNfaW50cmEgID0gZGN0 X3VucXVhbnRpemVfaDI2M19pbnRyYV9zc3NlMzsKKyAgICAgICAgcy0+ZGN0X3VucXVhbnRpemVf aDI2M19pbnRlciAgPSBkY3RfdW5xdWFudGl6ZV9oMjYzX2ludGVyX3Nzc2UzOworICAgIH0KKyNl bmRpZiAvKiBIQVZFX1NTU0UzX0lOTElORSAqLwogI2VuZGlmIC8qIEhBVkVfTU1YX0lOTElORSAq LwogfQotLSAKMi41Mi4wCgoKRnJvbSBlOWZlM2I1Y2MwYjY0ZDY1ODlkNDRkZWI0ZWExY2QyZWIy ZmRiMmUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQg PGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogTW9uLCAzIE5vdiAyMDI1IDE5 OjQ1OjQ5ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxNzkvMzA0XSBhdmNvZGVjL3g4Ni9tcGVndmlk ZW86IFBvcnQgTVBFRy0xIHVucXVhbnRpemUKIGZ1bmN0aW9ucyB0byBTU1NFMwoKQmVuZWZpdHMg ZnJvbSB3aWRlciByZWdpc3RlcnMgYW5kIHBhYnN3LCBwc2lnbncuCgpCZW5jaG1hcmtzOgpkY3Rf dW5xdWFudGl6ZV9tcGVnMV9pbnRlcl9jOiAgICAgICAgICAgICAgICAgICAgICAgICAgMzQzLjAg KCAxLjAweCkKZGN0X3VucXVhbnRpemVfbXBlZzFfaW50ZXJfbW14OiAgICAgICAgICAgICAgICAg ICAgICAgICA1MC42ICggNi43OHgpCmRjdF91bnF1YW50aXplX21wZWcxX2ludGVyX3Nzc2UzOiAg ICAgICAgICAgICAgICAgICAgICAgMTcuMiAoMTkuOTR4KQpkY3RfdW5xdWFudGl6ZV9tcGVnMV9p bnRyYV9jOiAgICAgICAgICAgICAgICAgICAgICAgICAgMzUyLjEgKCAxLjAweCkKZGN0X3VucXVh bnRpemVfbXBlZzFfaW50cmFfbW14OiAgICAgICAgICAgICAgICAgICAgICAgICA0OC44ICggNy4y MngpCmRjdF91bnF1YW50aXplX21wZWcxX2ludHJhX3Nzc2UzOiAgICAgICAgICAgICAgICAgICAg ICAgMTkuNSAoMTguMDN4KQoKU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRy ZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGliYXZjb2RlYy9tcGVndmlkZW8uaCAg ICAgfCAgMTAgKystCiBsaWJhdmNvZGVjL3g4Ni9tcGVndmlkZW8uYyB8IDE3MSArKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDc4IGluc2VydGlv bnMoKyksIDEwMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL21wZWd2aWRl by5oIGIvbGliYXZjb2RlYy9tcGVndmlkZW8uaAppbmRleCA3NThiZjU3YWI5Li42YWZmNWZiY2Qw IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL21wZWd2aWRlby5oCisrKyBiL2xpYmF2Y29kZWMvbXBl Z3ZpZGVvLmgKQEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRlICJxcGVsZHNwLmgiCiAjaW5jbHVk ZSAidmlkZW9kc3AuaCIKIAorI2luY2x1ZGUgImxpYmF2dXRpbC9tZW1faW50ZXJuYWwuaCIKKwog I2RlZmluZSBNQVhfVEhSRUFEUyAzMgogCiAvKioKQEAgLTIwMiwxMCArMjA0LDEwIEBAIHR5cGVk ZWYgc3RydWN0IE1wZWdFbmNDb250ZXh0IHsKICAgICBpbnQgKm1iX2luZGV4Mnh5OyAgICAgICAg Ly8vPCBtYl9pbmRleCAtPiBtYl94ICsgbWJfeSptYl9zdHJpZGUKIAogICAgIC8qKiBtYXRyaXgg dHJhbnNtaXR0ZWQgaW4gdGhlIGJpdHN0cmVhbSAqLwotICAgIHVpbnQxNl90IGludHJhX21hdHJp eFs2NF07Ci0gICAgdWludDE2X3QgY2hyb21hX2ludHJhX21hdHJpeFs2NF07Ci0gICAgdWludDE2 X3QgaW50ZXJfbWF0cml4WzY0XTsKLSAgICB1aW50MTZfdCBjaHJvbWFfaW50ZXJfbWF0cml4WzY0 XTsKKyAgICBERUNMQVJFX0FMSUdORUQoMTYsIHVpbnQxNl90LCBpbnRyYV9tYXRyaXgpWzY0XTsK KyAgICBERUNMQVJFX0FMSUdORUQoMTYsIHVpbnQxNl90LCBjaHJvbWFfaW50cmFfbWF0cml4KVs2 NF07CisgICAgREVDTEFSRV9BTElHTkVEKDE2LCB1aW50MTZfdCwgaW50ZXJfbWF0cml4KVs2NF07 CisgICAgREVDTEFSRV9BTElHTkVEKDE2LCB1aW50MTZfdCwgY2hyb21hX2ludGVyX21hdHJpeClb NjRdOwogCiAgICAgLyogZXJyb3IgY29uY2VhbG1lbnQgLyByZXN5bmMgKi8KICAgICBpbnQgcmVz eW5jX21iX3g7ICAgICAgICAgICAgICAgICAvLy88IHggcG9zaXRpb24gb2YgbGFzdCByZXN5bmMg bWFya2VyCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni9tcGVndmlkZW8uYyBiL2xpYmF2Y29k ZWMveDg2L21wZWd2aWRlby5jCmluZGV4IDgyYTI5ZDFiY2YuLjAxMDQ4ZGY0N2QgMTAwNjQ0Ci0t LSBhL2xpYmF2Y29kZWMveDg2L21wZWd2aWRlby5jCisrKyBiL2xpYmF2Y29kZWMveDg2L21wZWd2 aWRlby5jCkBAIC0xMzgsMTAgKzEzOCw5IEBAIF9fYXNtX18gdm9sYXRpbGUoCiAgICAgICAgICAg ICAgICAgOiBYTU1fQ0xPQkJFUlMoIiV4bW0wIiwgIiV4bW0xIiwgIiV4bW0yIiwgIiV4bW0zIiwg IiV4bW00IiwgIiV4bW01IiwpICJtZW1vcnkiCiAgICAgICAgICk7CiB9Ci0jZW5kaWYKIAotc3Rh dGljIHZvaWQgZGN0X3VucXVhbnRpemVfbXBlZzFfaW50cmFfbW14KGNvbnN0IE1QVkNvbnRleHQg KnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCAq YmxvY2ssIGludCBuLCBpbnQgcXNjYWxlKQorc3RhdGljIHZvaWQgZGN0X3VucXVhbnRpemVfbXBl ZzFfaW50cmFfc3NzZTMoY29uc3QgTVBWQ29udGV4dCAqcywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludDE2X3QgKmJsb2NrLCBpbnQgbiwgaW50IHFzY2Fs ZSkKIHsKICAgICB4ODZfcmVnIG5Db2VmZnM7CiAgICAgY29uc3QgdWludDE2X3QgKnF1YW50X21h dHJpeDsKQEAgLTE1OSw1OSArMTU4LDQ1IEBAIHN0YXRpYyB2b2lkIGRjdF91bnF1YW50aXplX21w ZWcxX2ludHJhX21teChjb25zdCBNUFZDb250ZXh0ICpzLAogICAgIHF1YW50X21hdHJpeCA9IHMt PmludHJhX21hdHJpeDsKICAgICB4ODZfcmVnIG9mZnNldCA9IC0yICogbkNvZWZmczsKIF9fYXNt X18gdm9sYXRpbGUoCi0gICAgICAgICAgICAgICAgInBjbXBlcXcgJSVtbTcsICUlbW03ICAgICAg ICAgICBcblx0IgotICAgICAgICAgICAgICAgICJwc3JsdyAkMTUsICUlbW03ICAgICAgICAgICAg ICAgXG5cdCIKLSAgICAgICAgICAgICAgICAibW92ZCAlMywgJSVtbTYgICAgICAgICAgICAgICAg IFxuXHQiCi0gICAgICAgICAgICAgICAgInBhY2tzc2R3ICUlbW02LCAlJW1tNiAgICAgICAgICBc blx0IgotICAgICAgICAgICAgICAgICJwYWNrc3NkdyAlJW1tNiwgJSVtbTYgICAgICAgICAgXG5c dCIKLSAgICAgICAgICAgICAgICAiLnAyYWxpZ24gNCAgICAgICAgICAgICAgICAgICAgIFxuXHQi Ci0gICAgICAgICAgICAgICAgIjE6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Igot ICAgICAgICAgICAgICAgICJtb3ZxICglMSwgJTApLCAlJW1tMCAgICAgICAgICAgXG5cdCIKLSAg ICAgICAgICAgICAgICAibW92cSA4KCUxLCAlMCksICUlbW0xICAgICAgICAgIFxuXHQiCi0gICAg ICAgICAgICAgICAgIm1vdnEgKCUyLCAlMCksICUlbW00ICAgICAgICAgICBcblx0IgotICAgICAg ICAgICAgICAgICJtb3ZxIDgoJTIsICUwKSwgJSVtbTUgICAgICAgICAgXG5cdCIKLSAgICAgICAg ICAgICAgICAicG11bGx3ICUlbW02LCAlJW1tNCAgICAgICAgICAgIFxuXHQiIC8vIHE9cXNjYWxl KnF1YW50X21hdHJpeFtpXQotICAgICAgICAgICAgICAgICJwbXVsbHcgJSVtbTYsICUlbW01ICAg ICAgICAgICAgXG5cdCIgLy8gcT1xc2NhbGUqcXVhbnRfbWF0cml4W2ldCi0gICAgICAgICAgICAg ICAgInB4b3IgJSVtbTIsICUlbW0yICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAg ICJweG9yICUlbW0zLCAlJW1tMyAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAi cGNtcGd0dyAlJW1tMCwgJSVtbTIgICAgICAgICAgIFxuXHQiIC8vIGJsb2NrW2ldIDwgMCA/IC0x IDogMAotICAgICAgICAgICAgICAgICJwY21wZ3R3ICUlbW0xLCAlJW1tMyAgICAgICAgICAgXG5c dCIgLy8gYmxvY2tbaV0gPCAwID8gLTEgOiAwCi0gICAgICAgICAgICAgICAgInB4b3IgJSVtbTIs ICUlbW0wICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJweG9yICUlbW0zLCAl JW1tMSAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAicHN1YncgJSVtbTIsICUl bW0wICAgICAgICAgICAgIFxuXHQiIC8vIGFicyhibG9ja1tpXSkKLSAgICAgICAgICAgICAgICAi cHN1YncgJSVtbTMsICUlbW0xICAgICAgICAgICAgIFxuXHQiIC8vIGFicyhibG9ja1tpXSkKLSAg ICAgICAgICAgICAgICAicG11bGx3ICUlbW00LCAlJW1tMCAgICAgICAgICAgIFxuXHQiIC8vIGFi cyhibG9ja1tpXSkqcQotICAgICAgICAgICAgICAgICJwbXVsbHcgJSVtbTUsICUlbW0xICAgICAg ICAgICAgXG5cdCIgLy8gYWJzKGJsb2NrW2ldKSpxCi0gICAgICAgICAgICAgICAgInB4b3IgJSVt bTQsICUlbW00ICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJweG9yICUlbW01 LCAlJW1tNSAgICAgICAgICAgICAgXG5cdCIgLy8gRklYTUUgc2xvdwotICAgICAgICAgICAgICAg ICJwY21wZXF3ICglMSwgJTApLCAlJW1tNCAgICAgICAgXG5cdCIgLy8gYmxvY2tbaV0gPT0gMCA/ IC0xIDogMAotICAgICAgICAgICAgICAgICJwY21wZXF3IDgoJTEsICUwKSwgJSVtbTUgICAgICAg XG5cdCIgLy8gYmxvY2tbaV0gPT0gMCA/IC0xIDogMAotICAgICAgICAgICAgICAgICJwc3JhdyAk MywgJSVtbTAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAicHNyYXcgJDMs ICUlbW0xICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInBzdWJ3ICUlbW03 LCAlJW1tMCAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJwc3VidyAlJW1tNywg JSVtbTEgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAicG9yICUlbW03LCAlJW1t MCAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInBvciAlJW1tNywgJSVtbTEg ICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJweG9yICUlbW0yLCAlJW1tMCAg ICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAicHhvciAlJW1tMywgJSVtbTEgICAg ICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInBzdWJ3ICUlbW0yLCAlJW1tMCAgICAg ICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJwc3VidyAlJW1tMywgJSVtbTEgICAgICAg ICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAicGFuZG4gJSVtbTAsICUlbW00ICAgICAgICAg ICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInBhbmRuICUlbW0xLCAlJW1tNSAgICAgICAgICAg ICBcblx0IgotICAgICAgICAgICAgICAgICJtb3ZxICUlbW00LCAoJTEsICUwKSAgICAgICAgICAg XG5cdCIKLSAgICAgICAgICAgICAgICAibW92cSAlJW1tNSwgOCglMSwgJTApICAgICAgICAgIFxu XHQiCisgICAgICAgICAgICAgICAgIm1vdmQgICAgICAgICAgICUzLCAlJXhtbTYgICAgIFxuXHQi CisgICAgICAgICAgICAgICAgInBjbXBlcXcgICAgJSV4bW03LCAlJXhtbTcgICAgIFxuXHQiCisg ICAgICAgICAgICAgICAgInBzcmx3ICAgICAgICAgJDE1LCAlJXhtbTcgICAgIFxuXHQiCisgICAg ICAgICAgICAgICAgU1BMQVRXKHhtbTYpCisgICAgICAgICAgICAgICAgIi5wMmFsaWduIDQgICAg ICAgICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgIjE6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgIm1vdmRxYSAgICglMiwgJTApLCAl JXhtbTQgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgIm1vdmRxYSAxNiglMiwgJTApLCAlJXht bTUgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgIm1vdmRxYSAgICglMSwgJTApLCAlJXhtbTAg ICAgIFxuXHQiCisgICAgICAgICAgICAgICAgIm1vdmRxYSAxNiglMSwgJTApLCAlJXhtbTEgICAg IFxuXHQiCisgICAgICAgICAgICAgICAgInBtdWxsdyAgICAgJSV4bW02LCAlJXhtbTQgICAgIFxu XHQiIC8vIHE9cXNjYWxlKnF1YW50X21hdHJpeFtpXQorICAgICAgICAgICAgICAgICJwbXVsbHcg ICAgICUleG1tNiwgJSV4bW01ICAgICBcblx0IiAvLyBxPXFzY2FsZSpxdWFudF9tYXRyaXhbaV0K KyAgICAgICAgICAgICAgICAicGFic3cgICAgICAlJXhtbTAsICUleG1tMiAgICAgXG5cdCIgLy8g YWJzKGJsb2NrW2ldKQorICAgICAgICAgICAgICAgICJwYWJzdyAgICAgICUleG1tMSwgJSV4bW0z ICAgICBcblx0IiAvLyBhYnMoYmxvY2tbaV0pCisgICAgICAgICAgICAgICAgInBtdWxsdyAgICAg JSV4bW00LCAlJXhtbTIgICAgIFxuXHQiIC8vIGFicyhibG9ja1tpXSkqcQorICAgICAgICAgICAg ICAgICJwbXVsbHcgICAgICUleG1tNSwgJSV4bW0zICAgICBcblx0IiAvLyBhYnMoYmxvY2tbaV0p KnEKKyAgICAgICAgICAgICAgICAicHNyYXcgICAgICAgICAgJDMsICUleG1tMiAgICAgXG5cdCIK KyAgICAgICAgICAgICAgICAicHNyYXcgICAgICAgICAgJDMsICUleG1tMyAgICAgXG5cdCIKKyAg ICAgICAgICAgICAgICAicHN1YncgICAgICAlJXhtbTcsICUleG1tMiAgICAgXG5cdCIKKyAgICAg ICAgICAgICAgICAicHN1YncgICAgICAlJXhtbTcsICUleG1tMyAgICAgXG5cdCIKKyAgICAgICAg ICAgICAgICAicG9yICAgICAgICAlJXhtbTcsICUleG1tMiAgICAgXG5cdCIKKyAgICAgICAgICAg ICAgICAicG9yICAgICAgICAlJXhtbTcsICUleG1tMyAgICAgXG5cdCIKKyAgICAgICAgICAgICAg ICAicHNpZ253ICAgICAlJXhtbTAsICUleG1tMiAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAi cHNpZ253ICAgICAlJXhtbTEsICUleG1tMyAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92 ZHFhICAgICAlJXhtbTIsICglMSwgJTApICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92ZHFh ICAgICAlJXhtbTMsIDE2KCUxLCAlMCkgXG5cdCIKIAotICAgICAgICAgICAgICAgICJhZGQgJDE2 LCAlMCAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAianMgMWIgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgImFkZCAgICAgICAg ICAgJDMyLCAlMCAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgImpzIDFiICAgICAgICAg ICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgOiAiK3IiIChvZmZzZXQpCiAg ICAgICAgICAgICAgICAgOiAiciIgKGJsb2NrK25Db2VmZnMpLCAiciIocXVhbnRfbWF0cml4K25D b2VmZnMpLCAicm0iIChxc2NhbGUpCi0gICAgICAgICAgICAgICAgOiAibWVtb3J5IgorICAgICAg ICAgICAgICAgIDogWE1NX0NMT0JCRVJTKCIleG1tMCIsICIleG1tMSIsICIleG1tMiIsICIleG1t MyIsICIleG1tNCIsICIleG1tNSIsICIleG1tNiIsICIleG1tNyIsKQorICAgICAgICAgICAgICAg ICAgIm1lbW9yeSIKICAgICAgICAgKTsKICAgICBibG9ja1swXT0gYmxvY2swOwogfQogCi1zdGF0 aWMgdm9pZCBkY3RfdW5xdWFudGl6ZV9tcGVnMV9pbnRlcl9tbXgoY29uc3QgTVBWQ29udGV4dCAq cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90ICpi bG9jaywgaW50IG4sIGludCBxc2NhbGUpCitzdGF0aWMgdm9pZCBkY3RfdW5xdWFudGl6ZV9tcGVn MV9pbnRlcl9zc3NlMyhjb25zdCBNUFZDb250ZXh0ICpzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCAqYmxvY2ssIGludCBuLCBpbnQgcXNjYWxl KQogewogICAgIHg4Nl9yZWcgbkNvZWZmczsKICAgICBjb25zdCB1aW50MTZfdCAqcXVhbnRfbWF0 cml4OwpAQCAtMjIzLDYwICsyMDgsNDggQEAgc3RhdGljIHZvaWQgZGN0X3VucXVhbnRpemVfbXBl ZzFfaW50ZXJfbW14KGNvbnN0IE1QVkNvbnRleHQgKnMsCiAgICAgICAgIHF1YW50X21hdHJpeCA9 IHMtPmludGVyX21hdHJpeDsKICAgICB4ODZfcmVnIG9mZnNldCA9IC0yICogbkNvZWZmczsKIF9f YXNtX18gdm9sYXRpbGUoCi0gICAgICAgICAgICAgICAgInBjbXBlcXcgJSVtbTcsICUlbW03ICAg ICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJwc3JsdyAkMTUsICUlbW03ICAgICAgICAg ICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAibW92ZCAlMywgJSVtbTYgICAgICAgICAgICAg ICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInBhY2tzc2R3ICUlbW02LCAlJW1tNiAgICAgICAg ICBcblx0IgotICAgICAgICAgICAgICAgICJwYWNrc3NkdyAlJW1tNiwgJSVtbTYgICAgICAgICAg XG5cdCIKLSAgICAgICAgICAgICAgICAiLnAyYWxpZ24gNCAgICAgICAgICAgICAgICAgICAgIFxu XHQiCi0gICAgICAgICAgICAgICAgIjE6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0 IgotICAgICAgICAgICAgICAgICJtb3ZxICglMSwgJTApLCAlJW1tMCAgICAgICAgICAgXG5cdCIK LSAgICAgICAgICAgICAgICAibW92cSA4KCUxLCAlMCksICUlbW0xICAgICAgICAgIFxuXHQiCi0g ICAgICAgICAgICAgICAgIm1vdnEgKCUyLCAlMCksICUlbW00ICAgICAgICAgICBcblx0IgotICAg ICAgICAgICAgICAgICJtb3ZxIDgoJTIsICUwKSwgJSVtbTUgICAgICAgICAgXG5cdCIKLSAgICAg ICAgICAgICAgICAicG11bGx3ICUlbW02LCAlJW1tNCAgICAgICAgICAgIFxuXHQiIC8vIHE9cXNj YWxlKnF1YW50X21hdHJpeFtpXQotICAgICAgICAgICAgICAgICJwbXVsbHcgJSVtbTYsICUlbW01 ICAgICAgICAgICAgXG5cdCIgLy8gcT1xc2NhbGUqcXVhbnRfbWF0cml4W2ldCi0gICAgICAgICAg ICAgICAgInB4b3IgJSVtbTIsICUlbW0yICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAg ICAgICJweG9yICUlbW0zLCAlJW1tMyAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAg ICAicGNtcGd0dyAlJW1tMCwgJSVtbTIgICAgICAgICAgIFxuXHQiIC8vIGJsb2NrW2ldIDwgMCA/ IC0xIDogMAotICAgICAgICAgICAgICAgICJwY21wZ3R3ICUlbW0xLCAlJW1tMyAgICAgICAgICAg XG5cdCIgLy8gYmxvY2tbaV0gPCAwID8gLTEgOiAwCi0gICAgICAgICAgICAgICAgInB4b3IgJSVt bTIsICUlbW0wICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJweG9yICUlbW0z LCAlJW1tMSAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAicHN1YncgJSVtbTIs ICUlbW0wICAgICAgICAgICAgIFxuXHQiIC8vIGFicyhibG9ja1tpXSkKLSAgICAgICAgICAgICAg ICAicHN1YncgJSVtbTMsICUlbW0xICAgICAgICAgICAgIFxuXHQiIC8vIGFicyhibG9ja1tpXSkK LSAgICAgICAgICAgICAgICAicGFkZHcgJSVtbTAsICUlbW0wICAgICAgICAgICAgIFxuXHQiIC8v IGFicyhibG9ja1tpXSkqMgotICAgICAgICAgICAgICAgICJwYWRkdyAlJW1tMSwgJSVtbTEgICAg ICAgICAgICAgXG5cdCIgLy8gYWJzKGJsb2NrW2ldKSoyCi0gICAgICAgICAgICAgICAgInBhZGR3 ICUlbW03LCAlJW1tMCAgICAgICAgICAgICBcblx0IiAvLyBhYnMoYmxvY2tbaV0pKjIgKyAxCi0g ICAgICAgICAgICAgICAgInBhZGR3ICUlbW03LCAlJW1tMSAgICAgICAgICAgICBcblx0IiAvLyBh YnMoYmxvY2tbaV0pKjIgKyAxCi0gICAgICAgICAgICAgICAgInBtdWxsdyAlJW1tNCwgJSVtbTAg ICAgICAgICAgICBcblx0IiAvLyAoYWJzKGJsb2NrW2ldKSoyICsgMSkqcQotICAgICAgICAgICAg ICAgICJwbXVsbHcgJSVtbTUsICUlbW0xICAgICAgICAgICAgXG5cdCIgLy8gKGFicyhibG9ja1tp XSkqMiArIDEpKnEKLSAgICAgICAgICAgICAgICAicHhvciAlJW1tNCwgJSVtbTQgICAgICAgICAg ICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInB4b3IgJSVtbTUsICUlbW01ICAgICAgICAgICAg ICBcblx0IiAvLyBGSVhNRSBzbG93Ci0gICAgICAgICAgICAgICAgInBjbXBlcXcgKCUxLCAlMCks ICUlbW00ICAgICAgICBcblx0IiAvLyBibG9ja1tpXSA9PSAwID8gLTEgOiAwCi0gICAgICAgICAg ICAgICAgInBjbXBlcXcgOCglMSwgJTApLCAlJW1tNSAgICAgICBcblx0IiAvLyBibG9ja1tpXSA9 PSAwID8gLTEgOiAwCi0gICAgICAgICAgICAgICAgInBzcmF3ICQ0LCAlJW1tMCAgICAgICAgICAg ICAgICBcblx0IgotICAgICAgICAgICAgICAgICJwc3JhdyAkNCwgJSVtbTEgICAgICAgICAgICAg ICAgXG5cdCIKLSAgICAgICAgICAgICAgICAicHN1YncgJSVtbTcsICUlbW0wICAgICAgICAgICAg IFxuXHQiCi0gICAgICAgICAgICAgICAgInBzdWJ3ICUlbW03LCAlJW1tMSAgICAgICAgICAgICBc blx0IgotICAgICAgICAgICAgICAgICJwb3IgJSVtbTcsICUlbW0wICAgICAgICAgICAgICAgXG5c dCIKLSAgICAgICAgICAgICAgICAicG9yICUlbW03LCAlJW1tMSAgICAgICAgICAgICAgIFxuXHQi Ci0gICAgICAgICAgICAgICAgInB4b3IgJSVtbTIsICUlbW0wICAgICAgICAgICAgICBcblx0Igot ICAgICAgICAgICAgICAgICJweG9yICUlbW0zLCAlJW1tMSAgICAgICAgICAgICAgXG5cdCIKLSAg ICAgICAgICAgICAgICAicHN1YncgJSVtbTIsICUlbW0wICAgICAgICAgICAgIFxuXHQiCi0gICAg ICAgICAgICAgICAgInBzdWJ3ICUlbW0zLCAlJW1tMSAgICAgICAgICAgICBcblx0IgotICAgICAg ICAgICAgICAgICJwYW5kbiAlJW1tMCwgJSVtbTQgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAg ICAgICAgICAicGFuZG4gJSVtbTEsICUlbW01ICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAg ICAgICAgIm1vdnEgJSVtbTQsICglMSwgJTApICAgICAgICAgICBcblx0IgotICAgICAgICAgICAg ICAgICJtb3ZxICUlbW01LCA4KCUxLCAlMCkgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAg ICAibW92ZCAgICAgICAgICAgJTMsICUleG1tNiAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAi cGNtcGVxdyAgICAlJXhtbTcsICUleG1tNyAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAicHNy bHcgICAgICAgICAkMTUsICUleG1tNyAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICBTUExBVFco eG1tNikKKyAgICAgICAgICAgICAgICAiLnAyYWxpZ24gNCAgICAgICAgICAgICAgICAgICAgXG5c dCIKKyAgICAgICAgICAgICAgICAiMTogICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIK KyAgICAgICAgICAgICAgICAibW92ZHFhICAgKCUyLCAlMCksICUleG1tNCAgICAgXG5cdCIKKyAg ICAgICAgICAgICAgICAibW92ZHFhIDE2KCUyLCAlMCksICUleG1tNSAgICAgXG5cdCIKKyAgICAg ICAgICAgICAgICAibW92ZHFhICAgKCUxLCAlMCksICUleG1tMCAgICAgXG5cdCIKKyAgICAgICAg ICAgICAgICAibW92ZHFhIDE2KCUxLCAlMCksICUleG1tMSAgICAgXG5cdCIKKyAgICAgICAgICAg ICAgICAicG11bGx3ICAgICAlJXhtbTYsICUleG1tNCAgICAgXG5cdCIgLy8gcT1xc2NhbGUqcXVh bnRfbWF0cml4W2ldCisgICAgICAgICAgICAgICAgInBtdWxsdyAgICAgJSV4bW02LCAlJXhtbTUg ICAgIFxuXHQiIC8vIHE9cXNjYWxlKnF1YW50X21hdHJpeFtpXQorICAgICAgICAgICAgICAgICJw YWJzdyAgICAgICUleG1tMCwgJSV4bW0yICAgICBcblx0IiAvLyBhYnMoYmxvY2tbaV0pCisgICAg ICAgICAgICAgICAgInBhYnN3ICAgICAgJSV4bW0xLCAlJXhtbTMgICAgIFxuXHQiIC8vIGFicyhi bG9ja1tpXSkKKyAgICAgICAgICAgICAgICAicGFkZHcgICAgICAlJXhtbTIsICUleG1tMiAgICAg XG5cdCIgLy8gYWJzKGJsb2NrW2ldKSoyCisgICAgICAgICAgICAgICAgInBhZGR3ICAgICAgJSV4 bW0zLCAlJXhtbTMgICAgIFxuXHQiIC8vIGFicyhibG9ja1tpXSkqMgorICAgICAgICAgICAgICAg ICJwYWRkdyAgICAgICUleG1tNywgJSV4bW0yICAgICBcblx0IiAvLyBhYnMoYmxvY2tbaV0pKjIg KyAxCisgICAgICAgICAgICAgICAgInBhZGR3ICAgICAgJSV4bW03LCAlJXhtbTMgICAgIFxuXHQi IC8vIGFicyhibG9ja1tpXSkqMiArIDEKKyAgICAgICAgICAgICAgICAicG11bGx3ICAgICAlJXht bTQsICUleG1tMiAgICAgXG5cdCIgLy8gKGFicyhibG9ja1tpXSkqMiArIDEpKnEKKyAgICAgICAg ICAgICAgICAicG11bGx3ICAgICAlJXhtbTUsICUleG1tMyAgICAgXG5cdCIgLy8gKGFicyhibG9j a1tpXSkqMiArIDEpKnEKKyAgICAgICAgICAgICAgICAicHNyYXcgICAgICAgICAgJDQsICUleG1t MiAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAicHNyYXcgICAgICAgICAgJDQsICUleG1tMyAg ICAgXG5cdCIKKyAgICAgICAgICAgICAgICAicHN1YncgICAgICAlJXhtbTcsICUleG1tMiAgICAg XG5cdCIKKyAgICAgICAgICAgICAgICAicHN1YncgICAgICAlJXhtbTcsICUleG1tMyAgICAgXG5c dCIKKyAgICAgICAgICAgICAgICAicG9yICAgICAgICAlJXhtbTcsICUleG1tMiAgICAgXG5cdCIK KyAgICAgICAgICAgICAgICAicG9yICAgICAgICAlJXhtbTcsICUleG1tMyAgICAgXG5cdCIKKyAg ICAgICAgICAgICAgICAicHNpZ253ICAgICAlJXhtbTAsICUleG1tMiAgICAgXG5cdCIKKyAgICAg ICAgICAgICAgICAicHNpZ253ICAgICAlJXhtbTEsICUleG1tMyAgICAgXG5cdCIKKyAgICAgICAg ICAgICAgICAibW92ZHFhICAgICAlJXhtbTIsICglMSwgJTApICAgXG5cdCIKKyAgICAgICAgICAg ICAgICAibW92ZHFhICAgICAlJXhtbTMsIDE2KCUxLCAlMCkgXG5cdCIKIAotICAgICAgICAgICAg ICAgICJhZGQgJDE2LCAlMCAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAg ICAianMgMWIgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAg ImFkZCAgICAgICAgICAgJDMyLCAlMCAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgImpz IDFiICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgOiAiK3Ii IChvZmZzZXQpCiAgICAgICAgICAgICAgICAgOiAiciIgKGJsb2NrK25Db2VmZnMpLCAiciIocXVh bnRfbWF0cml4K25Db2VmZnMpLCAicm0iIChxc2NhbGUpCi0gICAgICAgICAgICAgICAgOiAibWVt b3J5IgorICAgICAgICAgICAgICAgIDogWE1NX0NMT0JCRVJTKCIleG1tMCIsICIleG1tMSIsICIl eG1tMiIsICIleG1tMyIsICIleG1tNCIsICIleG1tNSIsICIleG1tNiIsICIleG1tNyIsKQorICAg ICAgICAgICAgICAgICAgIm1lbW9yeSIKICAgICAgICAgKTsKIH0KIAorI2VuZGlmIC8qIEhBVkVf U1NTRTNfSU5MSU5FICovCisKIHN0YXRpYyB2b2lkIGRjdF91bnF1YW50aXplX21wZWcyX2ludHJh X21teChjb25zdCBNUFZDb250ZXh0ICpzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludDE2X3QgKmJsb2NrLCBpbnQgbiwgaW50IHFzY2FsZSkKIHsKQEAgLTQx Nyw4ICszOTAsNiBAQCBhdl9jb2xkIHZvaWQgZmZfbXB2X3VucXVhbnRpemVfaW5pdF94ODYoTVBW VW5xdWFudERTUENvbnRleHQgKnMsIGludCBiaXRleGFjdCkKICAgICBpbnQgY3B1X2ZsYWdzID0g YXZfZ2V0X2NwdV9mbGFncygpOwogCiAgICAgaWYgKElOTElORV9NTVgoY3B1X2ZsYWdzKSkgewot ICAgICAgICBzLT5kY3RfdW5xdWFudGl6ZV9tcGVnMV9pbnRyYSA9IGRjdF91bnF1YW50aXplX21w ZWcxX2ludHJhX21teDsKLSAgICAgICAgcy0+ZGN0X3VucXVhbnRpemVfbXBlZzFfaW50ZXIgPSBk Y3RfdW5xdWFudGl6ZV9tcGVnMV9pbnRlcl9tbXg7CiAgICAgICAgIGlmICghYml0ZXhhY3QpCiAg ICAgICAgICAgICBzLT5kY3RfdW5xdWFudGl6ZV9tcGVnMl9pbnRyYSA9IGRjdF91bnF1YW50aXpl X21wZWcyX2ludHJhX21teDsKICAgICAgICAgcy0+ZGN0X3VucXVhbnRpemVfbXBlZzJfaW50ZXIg PSBkY3RfdW5xdWFudGl6ZV9tcGVnMl9pbnRlcl9tbXg7CkBAIC00MjcsNiArMzk4LDggQEAgYXZf Y29sZCB2b2lkIGZmX21wdl91bnF1YW50aXplX2luaXRfeDg2KE1QVlVucXVhbnREU1BDb250ZXh0 ICpzLCBpbnQgYml0ZXhhY3QpCiAgICAgaWYgKElOTElORV9TU1NFMyhjcHVfZmxhZ3MpKSB7CiAg ICAgICAgIHMtPmRjdF91bnF1YW50aXplX2gyNjNfaW50cmEgID0gZGN0X3VucXVhbnRpemVfaDI2 M19pbnRyYV9zc3NlMzsKICAgICAgICAgcy0+ZGN0X3VucXVhbnRpemVfaDI2M19pbnRlciAgPSBk Y3RfdW5xdWFudGl6ZV9oMjYzX2ludGVyX3Nzc2UzOworICAgICAgICBzLT5kY3RfdW5xdWFudGl6 ZV9tcGVnMV9pbnRyYSA9IGRjdF91bnF1YW50aXplX21wZWcxX2ludHJhX3Nzc2UzOworICAgICAg ICBzLT5kY3RfdW5xdWFudGl6ZV9tcGVnMV9pbnRlciA9IGRjdF91bnF1YW50aXplX21wZWcxX2lu dGVyX3Nzc2UzOwogICAgIH0KICNlbmRpZiAvKiBIQVZFX1NTU0UzX0lOTElORSAqLwogI2VuZGlm IC8qIEhBVkVfTU1YX0lOTElORSAqLwotLSAKMi41Mi4wCgoKRnJvbSA3NTkzMGQ5MDdhYmQwMzc1 N2Y4YjY5MTAyZGI0ZjI5ZmQ1OWFhMjBmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBB bmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTog VHVlLCA0IE5vdiAyMDI1IDA2OjQ1OjEyICswMTAwClN1YmplY3Q6IFtQQVRDSCAxODAvMzA0XSBh dmNvZGVjL3g4Ni9tcGVndmlkZW86IFBvcnQKIGRjdF91bnF1YW50aXplX21wZWcyX2ludGVyX21t eCB0byBTU1NFMwoKQmVuZWZpdHMgZnJvbSB3aWRlciByZWdpc3RlcnMsIHBhYnN3IGFuZCBwc2ln bncuCgpCZW5jaG1hcmtzOgpkY3RfdW5xdWFudGl6ZV9tcGVnMl9pbnRlcl9jOiAgICAgICAgICAg ICAgICAgICAgICAgICAgMTMxLjIgKCAxLjAweCkKZGN0X3VucXVhbnRpemVfbXBlZzJfaW50ZXJf bW14OiAgICAgICAgICAgICAgICAgICAgICAgICA1MC4yICggMi42MngpCmRjdF91bnF1YW50aXpl X21wZWcyX2ludGVyX3Nzc2UzOiAgICAgICAgICAgICAgICAgICAgICAgMjAuNSAoIDYuMzh4KQoK U2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0 bG9vay5jb20+Ci0tLQogbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVvLmMgfCAxMDkgKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ5IGluc2VydGlv bnMoKyksIDYwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2L21wZWd2 aWRlby5jIGIvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVvLmMKaW5kZXggMDEwNDhkZjQ3ZC4uNTc2 ZjhmMzIwZiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvbXBlZ3ZpZGVvLmMKKysrIGIvbGli YXZjb2RlYy94ODYvbXBlZ3ZpZGVvLmMKQEAgLTMwNSw4ICszMDUsMTAgQEAgX19hc21fXyB2b2xh dGlsZSgKICAgICAgICAgLy9Ob3RlLCB3ZSBkbyBub3QgZG8gbWlzbWF0Y2ggY29udHJvbCBmb3Ig aW50cmEgYXMgZXJyb3JzIGNhbm5vdCBhY2N1bXVsYXRlCiB9CiAKLXN0YXRpYyB2b2lkIGRjdF91 bnF1YW50aXplX21wZWcyX2ludGVyX21teChjb25zdCBNUFZDb250ZXh0ICpzLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDE2X3QgKmJsb2NrLCBpbnQgbiwg aW50IHFzY2FsZSkKKyNpZiBIQVZFX1NTU0UzX0lOTElORQorCitzdGF0aWMgdm9pZCBkY3RfdW5x dWFudGl6ZV9tcGVnMl9pbnRlcl9zc3NlMyhjb25zdCBNUFZDb250ZXh0ICpzLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCAqYmxvY2ssIGludCBu LCBpbnQgcXNjYWxlKQogewogICAgIGF2X2Fzc2VydDIocy0+YmxvY2tfbGFzdF9pbmRleFtuXT49 MCk7CiAKQEAgLTMxNiw3MiArMzE4LDU5IEBAIHN0YXRpYyB2b2lkIGRjdF91bnF1YW50aXplX21w ZWcyX2ludGVyX21teChjb25zdCBNUFZDb250ZXh0ICpzLAogCiAKIF9fYXNtX18gdm9sYXRpbGUo Ci0gICAgICAgICAgICAgICAgIm1vdmQgICAgICAgICAgJWsxLCAlJW1tNiAgICAgIFxuXHQiCisg ICAgICAgICAgICAgICAgIm1vdmQgICAgICAgICAgJWsxLCAlJXhtbTYgICAgIFxuXHQiCiAgICAg ICAgICAgICAgICAgImxlYSAgICAgICglMiwgJTApLCAlMSAgICAgICAgIFxuXHQiCiAgICAgICAg ICAgICAgICAgIm5lZyAgICAgICAgICAgICUwICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAg ICAgICAgInBjbXBlcXcgJSVtbTcsICUlbW03ICAgICAgICAgICBcblx0IgotICAgICAgICAgICAg ICAgICJwc3JscSAkNDgsICUlbW03ICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAg ICAicGFja3NzZHcgJSVtbTYsICUlbW02ICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAg InBhY2tzc2R3ICUlbW02LCAlJW1tNiAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICIu cDJhbGlnbiA0ICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAiMTog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgIm1vdnEg ICAgICglMSwgJTApLCAlJW1tMCAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgIm1vdnEgICAg OCglMSwgJTApLCAlJW1tMSAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgIm1vdnEgICAgICgl MywgJTApLCAlJW1tNCAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgIm1vdnEgICAgOCglMywg JTApLCAlJW1tNSAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInBtdWxsdyAlJW1tNiwgJSVt bTQgICAgICAgICAgICBcblx0IiAvLyBxPXFzY2FsZSpxdWFudF9tYXRyaXhbaV0KLSAgICAgICAg ICAgICAgICAicG11bGx3ICUlbW02LCAlJW1tNSAgICAgICAgICAgIFxuXHQiIC8vIHE9cXNjYWxl KnF1YW50X21hdHJpeFtpXQotICAgICAgICAgICAgICAgICJweG9yICUlbW0yLCAlJW1tMiAgICAg ICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAicHhvciAlJW1tMywgJSVtbTMgICAgICAg ICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInBjbXBndHcgJSVtbTAsICUlbW0yICAgICAg ICAgICBcblx0IiAvLyBibG9ja1tpXSA8IDAgPyAtMSA6IDAKLSAgICAgICAgICAgICAgICAicGNt cGd0dyAlJW1tMSwgJSVtbTMgICAgICAgICAgIFxuXHQiIC8vIGJsb2NrW2ldIDwgMCA/IC0xIDog MAotICAgICAgICAgICAgICAgICJweG9yICUlbW0yLCAlJW1tMCAgICAgICAgICAgICAgXG5cdCIK LSAgICAgICAgICAgICAgICAicHhvciAlJW1tMywgJSVtbTEgICAgICAgICAgICAgIFxuXHQiCi0g ICAgICAgICAgICAgICAgInBzdWJ3ICUlbW0yLCAlJW1tMCAgICAgICAgICAgICBcblx0IiAvLyBh YnMoYmxvY2tbaV0pCi0gICAgICAgICAgICAgICAgInBzdWJ3ICUlbW0zLCAlJW1tMSAgICAgICAg ICAgICBcblx0IiAvLyBhYnMoYmxvY2tbaV0pCi0gICAgICAgICAgICAgICAgInBhZGR3ICUlbW0w LCAlJW1tMCAgICAgICAgICAgICBcblx0IiAvLyBhYnMoYmxvY2tbaV0pKjIKLSAgICAgICAgICAg ICAgICAicGFkZHcgJSVtbTEsICUlbW0xICAgICAgICAgICAgIFxuXHQiIC8vIGFicyhibG9ja1tp XSkqMgotICAgICAgICAgICAgICAgICJwbXVsbHcgJSVtbTQsICUlbW0wICAgICAgICAgICAgXG5c dCIgLy8gYWJzKGJsb2NrW2ldKSoyKnEKLSAgICAgICAgICAgICAgICAicG11bGx3ICUlbW01LCAl JW1tMSAgICAgICAgICAgIFxuXHQiIC8vIGFicyhibG9ja1tpXSkqMipxCi0gICAgICAgICAgICAg ICAgInBhZGR3ICUlbW00LCAlJW1tMCAgICAgICAgICAgICBcblx0IiAvLyAoYWJzKGJsb2NrW2ld KSoyICsgMSkqcQotICAgICAgICAgICAgICAgICJwYWRkdyAlJW1tNSwgJSVtbTEgICAgICAgICAg ICAgXG5cdCIgLy8gKGFicyhibG9ja1tpXSkqMiArIDEpKnEKLSAgICAgICAgICAgICAgICAicHhv ciAlJW1tNCwgJSVtbTQgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInB4b3Ig JSVtbTUsICUlbW01ICAgICAgICAgICAgICBcblx0IiAvLyBGSVhNRSBzbG93Ci0gICAgICAgICAg ICAgICAgInBjbXBlcXcgICglMSwgJTApLCAlJW1tNCAgICAgIFxuXHQiIC8vIGJsb2NrW2ldID09 IDAgPyAtMSA6IDAKLSAgICAgICAgICAgICAgICAicGNtcGVxdyA4KCUxLCAlMCksICUlbW01ICAg ICAgXG5cdCIgLy8gYmxvY2tbaV0gPT0gMCA/IC0xIDogMAotICAgICAgICAgICAgICAgICJwc3Js dyAkNSwgJSVtbTAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAicHNybHcg JDUsICUlbW0xICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInB4b3IgJSVt bTIsICUlbW0wICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJweG9yICUlbW0z LCAlJW1tMSAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAicHN1YncgJSVtbTIs ICUlbW0wICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInBzdWJ3ICUlbW0zLCAl JW1tMSAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJwYW5kbiAlJW1tMCwgJSVt bTQgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAicGFuZG4gJSVtbTEsICUlbW01 ICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgInB4b3IgJSVtbTQsICUlbW03ICAg ICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJweG9yICUlbW01LCAlJW1tNyAgICAg ICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAibW92cSAgICAgICAgJSVtbTQsICglMSwg JTApICAgXG5cdCIKLSAgICAgICAgICAgICAgICAibW92cSAgICAgICAgJSVtbTUsIDgoJTEsICUw KSAgXG5cdCIKKyAgICAgICAgICAgICAgICBTUExBVFcoeG1tNikKKyAgICAgICAgICAgICAgICAi cGNtcGVxdyAgICAlJXhtbTcsICUleG1tNyAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAicHNy bGRxICAgICAgICAkMTQsICUleG1tNyAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAiLnAyYWxp Z24gNCAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAiMTogICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92ZHFhICAgKCUz LCAlMCksICUleG1tNCAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92ZHFhIDE2KCUzLCAl MCksICUleG1tNSAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92ZHFhICAgKCUxLCAlMCks ICUleG1tMCAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92ZHFhIDE2KCUxLCAlMCksICUl eG1tMSAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAicG11bGx3ICAgICAlJXhtbTYsICUleG1t NCAgICAgXG5cdCIgLy8gcT1xc2NhbGUqcXVhbnRfbWF0cml4W2ldCisgICAgICAgICAgICAgICAg InBtdWxsdyAgICAgJSV4bW02LCAlJXhtbTUgICAgIFxuXHQiIC8vIHE9cXNjYWxlKnF1YW50X21h dHJpeFtpXQorICAgICAgICAgICAgICAgICJwYWJzdyAgICAgICUleG1tMCwgJSV4bW0yICAgICBc blx0IiAvLyBhYnMoYmxvY2tbaV0pCisgICAgICAgICAgICAgICAgInBhYnN3ICAgICAgJSV4bW0x LCAlJXhtbTMgICAgIFxuXHQiIC8vIGFicyhibG9ja1tpXSkKKyAgICAgICAgICAgICAgICAicGFk ZHcgICAgICAlJXhtbTIsICUleG1tMiAgICAgXG5cdCIgLy8gYWJzKGJsb2NrW2ldKSoyCisgICAg ICAgICAgICAgICAgInBhZGR3ICAgICAgJSV4bW0zLCAlJXhtbTMgICAgIFxuXHQiIC8vIGFicyhi bG9ja1tpXSkqMgorICAgICAgICAgICAgICAgICJwbXVsbHcgICAgICUleG1tNCwgJSV4bW0yICAg ICBcblx0IiAvLyBhYnMoYmxvY2tbaV0pKjIqcQorICAgICAgICAgICAgICAgICJwbXVsbHcgICAg ICUleG1tNSwgJSV4bW0zICAgICBcblx0IiAvLyBhYnMoYmxvY2tbaV0pKjIqcQorICAgICAgICAg ICAgICAgICJwYWRkdyAgICAgICUleG1tNCwgJSV4bW0yICAgICBcblx0IiAvLyAoYWJzKGJsb2Nr W2ldKSoyICsgMSkqcQorICAgICAgICAgICAgICAgICJwYWRkdyAgICAgICUleG1tNSwgJSV4bW0z ICAgICBcblx0IiAvLyAoYWJzKGJsb2NrW2ldKSoyICsgMSkqcQorICAgICAgICAgICAgICAgICJw c3JsdyAgICAgICAgICAkNSwgJSV4bW0yICAgICBcblx0IgorICAgICAgICAgICAgICAgICJwc3Js dyAgICAgICAgICAkNSwgJSV4bW0zICAgICBcblx0IgorICAgICAgICAgICAgICAgICJwc2lnbncg ICAgICUleG1tMCwgJSV4bW0yICAgICBcblx0IgorICAgICAgICAgICAgICAgICJwc2lnbncgICAg ICUleG1tMSwgJSV4bW0zICAgICBcblx0IgorICAgICAgICAgICAgICAgICJtb3ZkcWEgICAgICUl eG1tMiwgKCUxLCAlMCkgICBcblx0IgorICAgICAgICAgICAgICAgICJtb3ZkcWEgICAgICUleG1t MywgMTYoJTEsICUwKSBcblx0IgorICAgICAgICAgICAgICAgICJweG9yICAgICAgICUleG1tMiwg JSV4bW03ICAgICBcblx0IgorICAgICAgICAgICAgICAgICJweG9yICAgICAgICUleG1tMywgJSV4 bW03ICAgICBcblx0IgogCi0gICAgICAgICAgICAgICAgImFkZCAgICAgICAgICAgJDE2LCAlMCAg ICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJqbmcgMWIgICAgICAgICAgICAgICAgICAg ICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAibW92ZCAgICAgIDEyNCglMiksICUlbW0wICAg ICAgXG5cdCIKLSAgICAgICAgICAgICAgICAibW92cSAlJW1tNywgJSVtbTYgICAgICAgICAgICAg IFxuXHQiCi0gICAgICAgICAgICAgICAgInBzcmxxICQzMiwgJSVtbTcgICAgICAgICAgICAgICBc blx0IgotICAgICAgICAgICAgICAgICJweG9yICUlbW02LCAlJW1tNyAgICAgICAgICAgICAgXG5c dCIKLSAgICAgICAgICAgICAgICAibW92cSAlJW1tNywgJSVtbTYgICAgICAgICAgICAgIFxuXHQi Ci0gICAgICAgICAgICAgICAgInBzcmxxICQxNiwgJSVtbTcgICAgICAgICAgICAgICBcblx0Igot ICAgICAgICAgICAgICAgICJweG9yICUlbW02LCAlJW1tNyAgICAgICAgICAgICAgXG5cdCIKLSAg ICAgICAgICAgICAgICAicHNsbGQgJDMxLCAlJW1tNyAgICAgICAgICAgICAgIFxuXHQiCi0gICAg ICAgICAgICAgICAgInBzcmxxICQxNSwgJSVtbTcgICAgICAgICAgICAgICBcblx0IgotICAgICAg ICAgICAgICAgICJweG9yICUlbW03LCAlJW1tMCAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAg ICAgICAgICAibW92ZCAgICAgICAgJSVtbTAsIDEyNCglMikgICAgXG5cdCIKKyAgICAgICAgICAg ICAgICAiYWRkICAgICAgICAgICAkMzIsICUwICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAg ICAiam5nIDFiICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAi bW92ZCAgICAgIDEyNCglMiksICUleG1tMCAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92 aGxwcyAgICAlJXhtbTcsICUleG1tNiAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAicHhvciAg ICAgICAlJXhtbTYsICUleG1tNyAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAicHNodWZkICQx LCAlJXhtbTcsICUleG1tNiAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAicHhvciAgICAgICAl JXhtbTYsICUleG1tNyAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAicHNodWZsdyAkMSwgJSV4 bW03LCAlJXhtbTYgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAicHhvciAgICAgICAlJXhtbTYs ICUleG1tNyAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAicHNsbGQgICAgICAgICAkMzEsICUl eG1tNyAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAicHNybGQgICAgICAgICAkMTUsICUleG1t NyAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAicHhvciAgICAgICAlJXhtbTcsICUleG1tMCAg ICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92ZCAgICAgICAlJXhtbTAsIDEyNCglMikgICAg XG5cdCIKIAogICAgICAgICAgICAgICAgIDogIityIihvZmZzZXQpLCAiK3IiIChxc2NhbGUyKQog ICAgICAgICAgICAgICAgIDogInIiIChibG9jayksICJyIihxdWFudF9tYXRyaXgpCi0gICAgICAg ICAgICAgICAgOiAibWVtb3J5IgorICAgICAgICAgICAgICAgIDogWE1NX0NMT0JCRVJTKCIleG1t MCIsICIleG1tMSIsICIleG1tMiIsICIleG1tMyIsICIleG1tNCIsICIleG1tNSIsICIleG1tNiIs ICIleG1tNyIsKQorICAgICAgICAgICAgICAgICAgIm1lbW9yeSIKICAgICAgICAgKTsKIH0KIAor I2VuZGlmIC8qIEhBVkVfU1NTRTNfSU5MSU5FICovCiAjZW5kaWYgLyogSEFWRV9NTVhfSU5MSU5F ICovCiAKIGF2X2NvbGQgdm9pZCBmZl9tcHZfdW5xdWFudGl6ZV9pbml0X3g4NihNUFZVbnF1YW50 RFNQQ29udGV4dCAqcywgaW50IGJpdGV4YWN0KQpAQCAtMzkyLDcgKzM4MSw2IEBAIGF2X2NvbGQg dm9pZCBmZl9tcHZfdW5xdWFudGl6ZV9pbml0X3g4NihNUFZVbnF1YW50RFNQQ29udGV4dCAqcywg aW50IGJpdGV4YWN0KQogICAgIGlmIChJTkxJTkVfTU1YKGNwdV9mbGFncykpIHsKICAgICAgICAg aWYgKCFiaXRleGFjdCkKICAgICAgICAgICAgIHMtPmRjdF91bnF1YW50aXplX21wZWcyX2ludHJh ID0gZGN0X3VucXVhbnRpemVfbXBlZzJfaW50cmFfbW14OwotICAgICAgICBzLT5kY3RfdW5xdWFu dGl6ZV9tcGVnMl9pbnRlciA9IGRjdF91bnF1YW50aXplX21wZWcyX2ludGVyX21teDsKICAgICB9 CiAjaWYgSEFWRV9TU1NFM19JTkxJTkUKICAgICBpZiAoSU5MSU5FX1NTU0UzKGNwdV9mbGFncykp IHsKQEAgLTQwMCw2ICszODgsNyBAQCBhdl9jb2xkIHZvaWQgZmZfbXB2X3VucXVhbnRpemVfaW5p dF94ODYoTVBWVW5xdWFudERTUENvbnRleHQgKnMsIGludCBiaXRleGFjdCkKICAgICAgICAgcy0+ ZGN0X3VucXVhbnRpemVfaDI2M19pbnRlciAgPSBkY3RfdW5xdWFudGl6ZV9oMjYzX2ludGVyX3Nz c2UzOwogICAgICAgICBzLT5kY3RfdW5xdWFudGl6ZV9tcGVnMV9pbnRyYSA9IGRjdF91bnF1YW50 aXplX21wZWcxX2ludHJhX3Nzc2UzOwogICAgICAgICBzLT5kY3RfdW5xdWFudGl6ZV9tcGVnMV9p bnRlciA9IGRjdF91bnF1YW50aXplX21wZWcxX2ludGVyX3Nzc2UzOworICAgICAgICBzLT5kY3Rf dW5xdWFudGl6ZV9tcGVnMl9pbnRlciA9IGRjdF91bnF1YW50aXplX21wZWcyX2ludGVyX3Nzc2Uz OwogICAgIH0KICNlbmRpZiAvKiBIQVZFX1NTU0UzX0lOTElORSAqLwogI2VuZGlmIC8qIEhBVkVf TU1YX0lOTElORSAqLwotLSAKMi41Mi4wCgoKRnJvbSAwYjUyYzgzMGVmNjkxMGU1OGMyYjMxNmJi ZTY2YTI3MzJmM2I1ZmIxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJo ZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogVHVlLCA0IE5v diAyMDI1IDA2OjQ4OjE5ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxODEvMzA0XSBhdmNvZGVjL21w ZWd2aWRlbzogUG9ydAogZGN0X3VucXVhbnRpemVfbXBlZzJfaW50cmFfbW14IHRvIFNTRTIKCkJl bmVmaXRzIGZyb20gd2lkZXIgcmVnaXN0ZXJzLgoKQmVuY2htYXJrczoKZGN0X3VucXVhbnRpemVf bXBlZzJfaW50cmFfYzogICAgICAgICAgICAgICAgICAgICAgICAgIDIyOC4yICggMS4wMHgpCmRj dF91bnF1YW50aXplX21wZWcyX2ludHJhX21teDogICAgICAgICAgICAgICAgICAgICAgICAgMjgu MiAoIDguMTB4KQpkY3RfdW5xdWFudGl6ZV9tcGVnMl9pbnRyYV9zc2UyOiAgICAgICAgICAgICAg ICAgICAgICAgIDE4LjQgKDEyLjM3eCkKClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJk dCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIGxpYmF2Y29kZWMveDg2L21w ZWd2aWRlby5jICAgICAgICAgICAgfCA2OCArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIHRl c3RzL2NoZWNrYXNtL21wZWd2aWRlb191bnF1YW50aXplLmMgfCAgMiArLQogMiBmaWxlcyBjaGFu Z2VkLCAzNSBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJh dmNvZGVjL3g4Ni9tcGVndmlkZW8uYyBiL2xpYmF2Y29kZWMveDg2L21wZWd2aWRlby5jCmluZGV4 IDU3NmY4ZjMyMGYuLjdjMTM3Y2Y3NWUgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L21wZWd2 aWRlby5jCisrKyBiL2xpYmF2Y29kZWMveDg2L21wZWd2aWRlby5jCkBAIC0yOCw3ICsyOCw3IEBA CiAjaW5jbHVkZSAibGliYXZjb2RlYy9tcGVndmlkZW9kYXRhLmgiCiAjaW5jbHVkZSAibGliYXZj b2RlYy9tcGVndmlkZW9fdW5xdWFudGl6ZS5oIgogCi0jaWYgSEFWRV9NTVhfSU5MSU5FCisjaWYg SEFWRV9TU0UyX0lOTElORQogCiAjZGVmaW5lIFNQTEFUVyhyZWcpICJwdW5wY2tsd2QgICAgJSUi ICNyZWcgIiwgJSUiICNyZWcgIlxuXHQiIFwKICAgICAgICAgICAgICAgICAgICAgInBzaHVmZCAg ICQwLCAlJSIgI3JlZyAiLCAlJSIgI3JlZyAiXG5cdCIKQEAgLTI1MCw4ICsyNTAsOCBAQCBfX2Fz bV9fIHZvbGF0aWxlKAogCiAjZW5kaWYgLyogSEFWRV9TU1NFM19JTkxJTkUgKi8KIAotc3RhdGlj IHZvaWQgZGN0X3VucXVhbnRpemVfbXBlZzJfaW50cmFfbW14KGNvbnN0IE1QVkNvbnRleHQgKnMs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCAqYmxv Y2ssIGludCBuLCBpbnQgcXNjYWxlKQorc3RhdGljIHZvaWQgZGN0X3VucXVhbnRpemVfbXBlZzJf aW50cmFfc3NlMihjb25zdCBNUFZDb250ZXh0ICpzLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQxNl90ICpibG9jaywgaW50IG4sIGludCBxc2NhbGUpCiB7 CiAgICAgeDg2X3JlZyBuQ29lZmZzOwogICAgIGNvbnN0IHVpbnQxNl90ICpxdWFudF9tYXRyaXg7 CkBAIC0yNzEsMzUgKzI3MSwzNSBAQCBzdGF0aWMgdm9pZCBkY3RfdW5xdWFudGl6ZV9tcGVnMl9p bnRyYV9tbXgoY29uc3QgTVBWQ29udGV4dCAqcywKICAgICBxdWFudF9tYXRyaXggPSBzLT5pbnRy YV9tYXRyaXg7CiAgICAgeDg2X3JlZyBvZmZzZXQgPSAtMiAqIG5Db2VmZnM7CiBfX2FzbV9fIHZv bGF0aWxlKAotICAgICAgICAgICAgICAgICJtb3ZkICUzLCAlJW1tNiAgICAgICAgICAgICAgICAg XG5cdCIKLSAgICAgICAgICAgICAgICAicGFja3NzZHcgJSVtbTYsICUlbW02ICAgICAgICAgIFxu XHQiCi0gICAgICAgICAgICAgICAgInBhY2tzc2R3ICUlbW02LCAlJW1tNiAgICAgICAgICBcblx0 IgotICAgICAgICAgICAgICAgICIucDJhbGlnbiA0ICAgICAgICAgICAgICAgICAgICAgXG5cdCIK LSAgICAgICAgICAgICAgICAiMTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0g ICAgICAgICAgICAgICAgIm1vdnEgKCUxLCAlMCksICUlbW0wICAgICAgICAgICBcblx0IgotICAg ICAgICAgICAgICAgICJtb3ZxIDgoJTEsICUwKSwgJSVtbTEgICAgICAgICAgXG5cdCIKLSAgICAg ICAgICAgICAgICAibW92cSAoJTIsICUwKSwgJSVtbTQgICAgICAgICAgIFxuXHQiCi0gICAgICAg ICAgICAgICAgIm1vdnEgOCglMiwgJTApLCAlJW1tNSAgICAgICAgICBcblx0IgotICAgICAgICAg ICAgICAgICJwbXVsbHcgJSVtbTYsICUlbW00ICAgICAgICAgICAgXG5cdCIgLy8gcT1xc2NhbGUq cXVhbnRfbWF0cml4W2ldCi0gICAgICAgICAgICAgICAgInBtdWxsdyAlJW1tNiwgJSVtbTUgICAg ICAgICAgICBcblx0IiAvLyBxPXFzY2FsZSpxdWFudF9tYXRyaXhbaV0KLSAgICAgICAgICAgICAg ICAibW92cSAlJW1tMCwgJSVtbTIgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAg Im1vdnEgJSVtbTEsICUlbW0zICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICJw c3JsdyAkMTIsICUlbW0yICAgICAgICAgICAgICAgXG5cdCIgLy8gYmxvY2tbaV0gPCAwID8gMHhm IDogMAotICAgICAgICAgICAgICAgICJwc3JsdyAkMTIsICUlbW0zICAgICAgICAgICAgICAgXG5c dCIgLy8gKGJsb2NrW2ldIGlzIGluIHRoZSAtMjA0OC4uMjA0NyByYW5nZSkKLSAgICAgICAgICAg ICAgICAicG11bGx3ICUlbW00LCAlJW1tMCAgICAgICAgICAgIFxuXHQiIC8vIGJsb2NrW2ldKnEK LSAgICAgICAgICAgICAgICAicG11bGx3ICUlbW01LCAlJW1tMSAgICAgICAgICAgIFxuXHQiIC8v IGJsb2NrW2ldKnEKLSAgICAgICAgICAgICAgICAicGFkZHcgJSVtbTIsICUlbW0wICAgICAgICAg ICAgIFxuXHQiIC8vIGJpYXMgbmVnYXRpdmUgYmxvY2tbaV0KLSAgICAgICAgICAgICAgICAicGFk ZHcgJSVtbTMsICUlbW0xICAgICAgICAgICAgIFxuXHQiIC8vIHNvIHRoYXQgYSByaWdodC1zaGlm dAotICAgICAgICAgICAgICAgICJwc3JhdyAkNCwgJSVtbTAgICAgICAgICAgICAgICAgXG5cdCIg Ly8gaXMgZXF1aXZhbGVudCB0byBkaXZpZGUKLSAgICAgICAgICAgICAgICAicHNyYXcgJDQsICUl bW0xICAgICAgICAgICAgICAgIFxuXHQiIC8vIHdpdGggcm91bmRpbmcgdG93YXJkcyB6ZXJvCi0g ICAgICAgICAgICAgICAgIm1vdnEgJSVtbTAsICglMSwgJTApICAgICAgICAgICBcblx0IgotICAg ICAgICAgICAgICAgICJtb3ZxICUlbW0xLCA4KCUxLCAlMCkgICAgICAgICAgXG5cdCIKKyAgICAg ICAgICAgICAgICAibW92ZCAgICAgICAgICAgJTMsICUleG1tNiAgICAgXG5cdCIKKyAgICAgICAg ICAgICAgICBTUExBVFcoeG1tNikKKyAgICAgICAgICAgICAgICAiLnAyYWxpZ24gNCAgICAgICAg ICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAiMTogICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92ZHFhICAgKCUxLCAlMCksICUleG1t MCAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92ZHFhIDE2KCUxLCAlMCksICUleG1tMSAg ICAgXG5cdCIKKyAgICAgICAgICAgICAgICAibW92ZHFhICAgKCUyLCAlMCksICUleG1tNCAgICAg XG5cdCIKKyAgICAgICAgICAgICAgICAibW92ZHFhIDE2KCUyLCAlMCksICUleG1tNSAgICAgXG5c dCIKKyAgICAgICAgICAgICAgICAicG11bGx3ICAgICAlJXhtbTYsICUleG1tNCAgICAgXG5cdCIg Ly8gcT1xc2NhbGUqcXVhbnRfbWF0cml4W2ldCisgICAgICAgICAgICAgICAgInBtdWxsdyAgICAg JSV4bW02LCAlJXhtbTUgICAgIFxuXHQiIC8vIHE9cXNjYWxlKnF1YW50X21hdHJpeFtpXQorICAg ICAgICAgICAgICAgICJtb3ZkcWEgICAgICUleG1tMCwgJSV4bW0yICAgICBcblx0IgorICAgICAg ICAgICAgICAgICJtb3ZkcWEgICAgICUleG1tMSwgJSV4bW0zICAgICBcblx0IgorICAgICAgICAg ICAgICAgICJwc3JsdyAgICAgICAgICQxMiwgJSV4bW0yICAgICBcblx0IiAvLyBibG9ja1tpXSA8 IDAgPyAweGYgOiAwCisgICAgICAgICAgICAgICAgInBzcmx3ICAgICAgICAgJDEyLCAlJXhtbTMg ICAgIFxuXHQiIC8vIChibG9ja1tpXSBpcyBpbiB0aGUgLTIwNDguLjIwNDcgcmFuZ2UpCisgICAg ICAgICAgICAgICAgInBtdWxsdyAgICAgJSV4bW00LCAlJXhtbTAgICAgIFxuXHQiIC8vIGJsb2Nr W2ldKnEKKyAgICAgICAgICAgICAgICAicG11bGx3ICAgICAlJXhtbTUsICUleG1tMSAgICAgXG5c dCIgLy8gYmxvY2tbaV0qcQorICAgICAgICAgICAgICAgICJwYWRkdyAgICAgICUleG1tMiwgJSV4 bW0wICAgICBcblx0IiAvLyBiaWFzIG5lZ2F0aXZlIGJsb2NrW2ldCisgICAgICAgICAgICAgICAg InBhZGR3ICAgICAgJSV4bW0zLCAlJXhtbTEgICAgIFxuXHQiIC8vIHNvIHRoYXQgYSByaWdodC1z aGlmdAorICAgICAgICAgICAgICAgICJwc3JhdyAgICAgICAgICAkNCwgJSV4bW0wICAgICBcblx0 IiAvLyBpcyBlcXVpdmFsZW50IHRvIGRpdmlkZQorICAgICAgICAgICAgICAgICJwc3JhdyAgICAg ICAgICAkNCwgJSV4bW0xICAgICBcblx0IiAvLyB3aXRoIHJvdW5kaW5nIHRvd2FyZHMgemVybwor ICAgICAgICAgICAgICAgICJtb3ZkcWEgICAgICUleG1tMCwgKCUxLCAlMCkgICBcblx0IgorICAg ICAgICAgICAgICAgICJtb3ZkcWEgICAgICUleG1tMSwgMTYoJTEsICUwKSBcblx0IgogCi0gICAg ICAgICAgICAgICAgImFkZCAkMTYsICUwICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAg ICAgICAgICAgICJqbmcgMWIgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAg ICAgICAgICAiYWRkICAgICAgICAgICAkMzIsICUwICAgICAgICAgXG5cdCIKKyAgICAgICAgICAg ICAgICAiam5nIDFiICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAg ICA6ICIrciIgKG9mZnNldCkKICAgICAgICAgICAgICAgICA6ICJyIiAoYmxvY2srbkNvZWZmcyks ICJyIihxdWFudF9tYXRyaXgrbkNvZWZmcyksICJybSIgKHFzY2FsZSkKLSAgICAgICAgICAgICAg ICA6ICJtZW1vcnkiCisgICAgICAgICAgICAgICAgOiBYTU1fQ0xPQkJFUlMoIiV4bW0wIiwgIiV4 bW0xIiwgIiV4bW0yIiwgIiV4bW0zIiwgIiV4bW00IiwgIiV4bW01IiwgIiV4bW02IiwpCisgICAg ICAgICAgICAgICAgICAibWVtb3J5IgogICAgICAgICApOwogICAgIGJsb2NrWzBdPSBibG9jazA7 CiAgICAgICAgIC8vTm90ZSwgd2UgZG8gbm90IGRvIG1pc21hdGNoIGNvbnRyb2wgZm9yIGludHJh IGFzIGVycm9ycyBjYW5ub3QgYWNjdW11bGF0ZQpAQCAtMzcxLDE2ICszNzEsMTYgQEAgX19hc21f XyB2b2xhdGlsZSgKIH0KIAogI2VuZGlmIC8qIEhBVkVfU1NTRTNfSU5MSU5FICovCi0jZW5kaWYg LyogSEFWRV9NTVhfSU5MSU5FICovCisjZW5kaWYgLyogSEFWRV9TU0UyX0lOTElORSAqLwogCiBh dl9jb2xkIHZvaWQgZmZfbXB2X3VucXVhbnRpemVfaW5pdF94ODYoTVBWVW5xdWFudERTUENvbnRl eHQgKnMsIGludCBiaXRleGFjdCkKIHsKLSNpZiBIQVZFX01NWF9JTkxJTkUKKyNpZiBIQVZFX1NT RTJfSU5MSU5FCiAgICAgaW50IGNwdV9mbGFncyA9IGF2X2dldF9jcHVfZmxhZ3MoKTsKIAotICAg IGlmIChJTkxJTkVfTU1YKGNwdV9mbGFncykpIHsKKyAgICBpZiAoSU5MSU5FX1NTRTIoY3B1X2Zs YWdzKSkgewogICAgICAgICBpZiAoIWJpdGV4YWN0KQotICAgICAgICAgICAgcy0+ZGN0X3VucXVh bnRpemVfbXBlZzJfaW50cmEgPSBkY3RfdW5xdWFudGl6ZV9tcGVnMl9pbnRyYV9tbXg7CisgICAg ICAgICAgICBzLT5kY3RfdW5xdWFudGl6ZV9tcGVnMl9pbnRyYSA9IGRjdF91bnF1YW50aXplX21w ZWcyX2ludHJhX3NzZTI7CiAgICAgfQogI2lmIEhBVkVfU1NTRTNfSU5MSU5FCiAgICAgaWYgKElO TElORV9TU1NFMyhjcHVfZmxhZ3MpKSB7CkBAIC0zOTEsNSArMzkxLDUgQEAgYXZfY29sZCB2b2lk IGZmX21wdl91bnF1YW50aXplX2luaXRfeDg2KE1QVlVucXVhbnREU1BDb250ZXh0ICpzLCBpbnQg Yml0ZXhhY3QpCiAgICAgICAgIHMtPmRjdF91bnF1YW50aXplX21wZWcyX2ludGVyID0gZGN0X3Vu cXVhbnRpemVfbXBlZzJfaW50ZXJfc3NzZTM7CiAgICAgfQogI2VuZGlmIC8qIEhBVkVfU1NTRTNf SU5MSU5FICovCi0jZW5kaWYgLyogSEFWRV9NTVhfSU5MSU5FICovCisjZW5kaWYgLyogSEFWRV9T U0UyX0lOTElORSAqLwogfQpkaWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2thc20vbXBlZ3ZpZGVvX3Vu cXVhbnRpemUuYyBiL3Rlc3RzL2NoZWNrYXNtL21wZWd2aWRlb191bnF1YW50aXplLmMKaW5kZXgg ODM3NjA2ZTYwZS4uMjIwYTc0M2E5NiAxMDA2NDQKLS0tIGEvdGVzdHMvY2hlY2thc20vbXBlZ3Zp ZGVvX3VucXVhbnRpemUuYworKysgYi90ZXN0cy9jaGVja2FzbS9tcGVndmlkZW9fdW5xdWFudGl6 ZS5jCkBAIC0yMTUsNyArMjE1LDcgQEAgdm9pZCBjaGVja2FzbV9jaGVja19tcGVndmlkZW9fdW5x dWFudGl6ZSh2b2lkKQogICAgIGludCBxX3NjYWxlX3R5cGUgPSBybmQoKSAmIDE7CiAKICAgICBm Zl9tcHZfdW5xdWFudGl6ZV9pbml0KCZ1bnF1YW50X2RzcF9jdHgsIDEgLyogYml0ZXhhY3QgKi8s IHFfc2NhbGVfdHlwZSk7Ci0gICAgZGVjbGFyZV9mdW5jX2VtbXMoQVZfQ1BVX0ZMQUdfTU1YLCB2 b2lkLCBNUFZDb250ZXh0ICpzLCBpbnQxNl90ICpibG9jaywgaW50IG4sIGludCBxc2NhbGUpOwor ICAgIGRlY2xhcmVfZnVuYyh2b2lkLCBNUFZDb250ZXh0ICpzLCBpbnQxNl90ICpibG9jaywgaW50 IG4sIGludCBxc2NhbGUpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBGRl9BUlJBWV9F TEVNUyh0ZXN0cyk7ICsraSkgewogICAgICAgICB2b2lkICgqZnVuYykoTVBWQ29udGV4dCAqcywg aW50MTZfdCAqYmxvY2ssIGludCBuLCBpbnQgcXNjYWxlKSA9Ci0tIAoyLjUyLjAKCgpGcm9tIGU3 MDk5ZDA2MWRkNGEwOTU3NzA3NmI5MTNmMDllNDFjMmM4MWRiNTQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxv b2suY29tPgpEYXRlOiBXZWQsIDMgRGVjIDIwMjUgMDA6NDE6MDAgKzAxMDAKU3ViamVjdDogW1BB VENIIDE4Mi8zMDRdIGxpYmF2dXRpbC9pbnRlcm5hbDogUmVtb3ZlIHtTSVpFLFBUUkRJRkZ9X1NQ RUNJRklFUgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKUG9zc2libGUgc2luY2Ug MjIyMTI3NDE4YmJkZWUzMjQ3ZWI5YzAyYmI4Y2YzMTk5MWUzMjI0MS4KClJldmlld2VkLWJ5OiBL YWNwZXIgTWljaGFqxYJvdyA8a2FzcGVyOTNAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogTHlubmUg PGRldkBseW5uZS5lZT4KU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFz LnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGliYXZjb2RlYy9hbHNkZWMuYyAgICAgICAg ICAgICAgICAgfCAgNCArKy0tCiBsaWJhdmNvZGVjL2F2MWRlYy5jICAgICAgICAgICAgICAgICB8 ICAyICstCiBsaWJhdmNvZGVjL2Nicy5jICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBsaWJh dmNvZGVjL2Nic19hcHYuYyAgICAgICAgICAgICAgICB8ICAyICstCiBsaWJhdmNvZGVjL2Nic19h djEuYyAgICAgICAgICAgICAgICB8ICA4ICsrKystLS0tCiBsaWJhdmNvZGVjL2Nic192cDkuYyAg ICAgICAgICAgICAgICB8ICAyICstCiBsaWJhdmNvZGVjL2QzZDEydmFfZW5jb2RlLmMgICAgICAg ICB8ICAyICstCiBsaWJhdmNvZGVjL2QzZDEydmFfZW5jb2RlX2F2MS5jICAgICB8ICAyICstCiBs aWJhdmNvZGVjL2RlY29kZS5jICAgICAgICAgICAgICAgICB8ICA2ICsrKy0tLQogbGliYXZjb2Rl Yy9kbnhoZGRlYy5jICAgICAgICAgICAgICAgfCAgMiArLQogbGliYXZjb2RlYy9kdmRzdWJlbmMu YyAgICAgICAgICAgICAgfCAgMiArLQogbGliYXZjb2RlYy9nMm1lZXQuYyAgICAgICAgICAgICAg ICAgfCAgMiArLQogbGliYXZjb2RlYy9oMjY0X3BzLmMgICAgICAgICAgICAgICAgfCAgMiArLQog bGliYXZjb2RlYy9oMjY0X3NsaWNlLmMgICAgICAgICAgICAgfCAgNCArKy0tCiBsaWJhdmNvZGVj L2hhcGVuYy5jICAgICAgICAgICAgICAgICB8ICAyICstCiBsaWJhdmNvZGVjL2hxX2hxYS5jICAg ICAgICAgICAgICAgICB8ICA0ICsrLS0KIGxpYmF2Y29kZWMvanBlZzIwMDBkZWMuYyAgICAgICAg ICAgIHwgIDYgKysrLS0tCiBsaWJhdmNvZGVjL2xpYmFvbWVuYy5jICAgICAgICAgICAgICB8IDEw ICsrKysrLS0tLS0KIGxpYmF2Y29kZWMvbGliaWxiYy5jICAgICAgICAgICAgICAgIHwgIDMgKy0t CiBsaWJhdmNvZGVjL2xpYnZweGVuYy5jICAgICAgICAgICAgICB8ICA2ICsrKy0tLQogbGliYXZj b2RlYy9tanBlZ2RlYy5jICAgICAgICAgICAgICAgfCAgNiArKystLS0KIGxpYmF2Y29kZWMvbWpw ZWdlbmNfY29tbW9uLmMgICAgICAgIHwgIDIgKy0KIGxpYmF2Y29kZWMvbXBlZzEyZGVjLmMgICAg ICAgICAgICAgIHwgIDIgKy0KIGxpYmF2Y29kZWMvbXBlZzEyZW5jLmMgICAgICAgICAgICAgIHwg IDIgKy0KIGxpYmF2Y29kZWMvbXBlZ3BpY3R1cmUuYyAgICAgICAgICAgIHwgIDIgKy0KIGxpYmF2 Y29kZWMvbXBlZ3ZpZGVvX2VuYy5jICAgICAgICAgIHwgIDIgKy0KIGxpYmF2Y29kZWMvbXNjYy5j ICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGxpYmF2Y29kZWMvdnVsa2FuX2F2MS5jICAgICAg ICAgICAgIHwgIDIgKy0KIGxpYmF2Y29kZWMvdnVsa2FuX2VuY29kZV9hdjEuYyAgICAgIHwgIDIg Ky0KIGxpYmF2Y29kZWMvdnVsa2FuX2VuY29kZV9oMjY0LmMgICAgIHwgIDIgKy0KIGxpYmF2Y29k ZWMvdnVsa2FuX2VuY29kZV9oMjY1LmMgICAgIHwgIDIgKy0KIGxpYmF2Y29kZWMvdnVsa2FuX2gy NjQuYyAgICAgICAgICAgIHwgIDIgKy0KIGxpYmF2Y29kZWMvdnVsa2FuX2hldmMuYyAgICAgICAg ICAgIHwgIDIgKy0KIGxpYmF2Y29kZWMvdnVsa2FuX3ZwOS5jICAgICAgICAgICAgIHwgIDIgKy0K IGxpYmF2Y29kZWMvem1idi5jICAgICAgICAgICAgICAgICAgIHwgIDggKysrKy0tLS0KIGxpYmF2 ZmlsdGVyL2FmX2FzaG93aW5mby5jICAgICAgICAgIHwgIDIgKy0KIGxpYmF2ZmlsdGVyL2ZfZ3Jh cGhtb25pdG9yLmMgICAgICAgIHwgIDIgKy0KIGxpYmF2ZmlsdGVyL3ZmX2F2Z2JsdXJfb3BlbmNs LmMgICAgIHwgIDIgKy0KIGxpYmF2ZmlsdGVyL3ZmX2NvbnZvbHV0aW9uX29wZW5jbC5jIHwgIDQg KystLQogbGliYXZmaWx0ZXIvdmZfbGNldmMuYyAgICAgICAgICAgICAgfCAgNCArKy0tCiBsaWJh dmZpbHRlci92Zl9uZWlnaGJvcl9vcGVuY2wuYyAgICB8ICAzICstLQogbGliYXZmaWx0ZXIvdmZf cHJvZ3JhbV9vcGVuY2wuYyAgICAgfCAgMyArLS0KIGxpYmF2ZmlsdGVyL3ZmX3Nob3dpbmZvLmMg ICAgICAgICAgIHwgMTIgKysrKystLS0tLS0tCiBsaWJhdmZpbHRlci92Zl91bnNoYXJwX29wZW5j bC5jICAgICB8ICAzICstLQogbGliYXZmb3JtYXQvYXBlLmMgICAgICAgICAgICAgICAgICAgfCAg MiArLQogbGliYXZmb3JtYXQvZHVtcC5jICAgICAgICAgICAgICAgICAgfCAgOSArKystLS0tLS0K IGxpYmF2Zm9ybWF0L2ZyYW1lY3JjZW5jLmMgICAgICAgICAgIHwgIDIgKy0KIGxpYmF2Zm9ybWF0 L2hhc2hlbmMuYyAgICAgICAgICAgICAgIHwgIDIgKy0KIGxpYmF2Zm9ybWF0L2h0dHAuYyAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIGxpYmF2Zm9ybWF0L2lkM3YyLmMgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGxpYmF2Zm9ybWF0L21tc2guYyAgICAgICAgICAgICAgICAgIHwgIDQgKystLQog bGliYXZmb3JtYXQvbW1zdC5jICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBsaWJhdmZvcm1h dC9tcGpwZWdkZWMuYyAgICAgICAgICAgICB8ICAyICstCiBsaWJhdmZvcm1hdC9vZ2dwYXJzZXZv cmJpcy5jICAgICAgICB8ICAyICstCiBsaWJhdmZvcm1hdC9ydHBkZWNfeGlwaC5jICAgICAgICAg ICB8ICA0ICsrLS0KIGxpYmF2Zm9ybWF0L3NkcC5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IGxpYmF2Zm9ybWF0L3N1cGVuYy5jICAgICAgICAgICAgICAgIHwgIDQgKystLQogbGliYXZ1dGls L2h3Y29udGV4dF9vcGVuY2wuYyAgICAgICAgfCAgMiArLQogbGliYXZ1dGlsL2h3Y29udGV4dF92 dWxrYW4uYyAgICAgICAgfCAgMiArLQogbGliYXZ1dGlsL2ludGVybmFsLmggICAgICAgICAgICAg ICAgfCAgMyAtLS0KIGxpYmF2dXRpbC90ZXN0cy9jaGFubmVsX2xheW91dC5jICAgIHwgIDMgKy0t CiBsaWJhdnV0aWwvdGVzdHMvaW1ndXRpbHMuYyAgICAgICAgICB8ICA0ICsrLS0KIGxpYmF2dXRp bC90ZXN0cy9zaWRlX2RhdGFfYXJyYXkuYyAgIHwgIDIgKy0KIGxpYmF2dXRpbC92dWxrYW4uYyAg ICAgICAgICAgICAgICAgIHwgIDIgKy0KIDY0IGZpbGVzIGNoYW5nZWQsIDk3IGluc2VydGlvbnMo KyksIDExMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2Fsc2RlYy5jIGIv bGliYXZjb2RlYy9hbHNkZWMuYwppbmRleCBmYzU1YWEyNjg3Li4wOWMxYjhkYjllIDEwMDY0NAot LS0gYS9saWJhdmNvZGVjL2Fsc2RlYy5jCisrKyBiL2xpYmF2Y29kZWMvYWxzZGVjLmMKQEAgLTEz NDMsMTMgKzEzNDMsMTMgQEAgc3RhdGljIGludCByZXZlcnRfY2hhbm5lbF9jb3JyZWxhdGlvbihB TFNEZWNDb250ZXh0ICpjdHgsIEFMU0Jsb2NrRGF0YSAqYmQsCiAgICAgICAgICAgICBpZiAoY2hb ZGVwXS50aW1lX2RpZmZfc2lnbikgewogICAgICAgICAgICAgICAgIHQgICAgICA9IC10OwogICAg ICAgICAgICAgICAgIGlmIChiZWdpbiA8IHQpIHsKLSAgICAgICAgICAgICAgICAgICAgYXZfbG9n KGN0eC0+YXZjdHgsIEFWX0xPR19FUlJPUiwgImJlZ2luICUiUFRSRElGRl9TUEVDSUZJRVIiIHNt YWxsZXIgdGhhbiB0aW1lIGRpZmYgaW5kZXggJWQuXG4iLCBiZWdpbiwgdCk7CisgICAgICAgICAg ICAgICAgICAgIGF2X2xvZyhjdHgtPmF2Y3R4LCBBVl9MT0dfRVJST1IsICJiZWdpbiAldGQgc21h bGxlciB0aGFuIHRpbWUgZGlmZiBpbmRleCAlZC5cbiIsIGJlZ2luLCB0KTsKICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgIGJlZ2luIC09IHQ7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg ICAgICAgICAgIGlmIChlbmQgPCB0KSB7Ci0gICAgICAgICAgICAgICAgICAgIGF2X2xvZyhjdHgt PmF2Y3R4LCBBVl9MT0dfRVJST1IsICJlbmQgJSJQVFJESUZGX1NQRUNJRklFUiIgc21hbGxlciB0 aGFuIHRpbWUgZGlmZiBpbmRleCAlZC5cbiIsIGVuZCwgdCk7CisgICAgICAgICAgICAgICAgICAg IGF2X2xvZyhjdHgtPmF2Y3R4LCBBVl9MT0dfRVJST1IsICJlbmQgJXRkIHNtYWxsZXIgdGhhbiB0 aW1lIGRpZmYgaW5kZXggJWQuXG4iLCBlbmQsIHQpOwogICAgICAgICAgICAgICAgICAgICByZXR1 cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgZW5kICAgLT0gdDsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYXYxZGVjLmMgYi9saWJhdmNv ZGVjL2F2MWRlYy5jCmluZGV4IGQ0Y2ViNWVmMDkuLjFkZmZjN2MxYjkgMTAwNjQ0Ci0tLSBhL2xp YmF2Y29kZWMvYXYxZGVjLmMKKysrIGIvbGliYXZjb2RlYy9hdjFkZWMuYwpAQCAtMTQ1MCw3ICsx NDUwLDcgQEAgc3RhdGljIGludCBhdjFfcmVjZWl2ZV9mcmFtZV9pbnRlcm5hbChBVkNvZGVjQ29u dGV4dCAqYXZjdHgsIEFWRnJhbWUgKmZyYW1lKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg IGRlZmF1bHQ6CiAgICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19ERUJVRywKLSAgICAg ICAgICAgICAgICAgICAiVW5rbm93biBvYnUgdHlwZTogJWQgKCUiU0laRV9TUEVDSUZJRVIiIGJp dHMpLlxuIiwKKyAgICAgICAgICAgICAgICAgICAiVW5rbm93biBvYnUgdHlwZTogJWQgKCV6dSBi aXRzKS5cbiIsCiAgICAgICAgICAgICAgICAgICAgdW5pdC0+dHlwZSwgdW5pdC0+ZGF0YV9zaXpl KTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2Nicy5jIGIvbGliYXZjb2Rl Yy9jYnMuYwppbmRleCBjZWE2ZTZkYjIxLi40MWM4MTg0NDM0IDEwMDY0NAotLS0gYS9saWJhdmNv ZGVjL2Nicy5jCisrKyBiL2xpYmF2Y29kZWMvY2JzLmMKQEAgLTM3Niw3ICszNzYsNyBAQCBzdGF0 aWMgaW50IGNic193cml0ZV91bml0X2RhdGEoQ29kZWRCaXRzdHJlYW1Db250ZXh0ICpjdHgsCiAg ICAgICAgIGlmIChyZXQgPCAwKSB7CiAgICAgICAgICAgICBhdl9sb2coY3R4LT5sb2dfY3R4LCBB Vl9MT0dfRVJST1IsICJVbmFibGUgdG8gYWxsb2NhdGUgYSAiCiAgICAgICAgICAgICAgICAgICAg InN1ZmZpY2llbnRseSBsYXJnZSB3cml0ZSBidWZmZXIgKGxhc3QgYXR0ZW1wdCAiCi0gICAgICAg ICAgICAgICAgICAgIiUiU0laRV9TUEVDSUZJRVIiIGJ5dGVzKS5cbiIsIGN0eC0+d3JpdGVfYnVm ZmVyX3NpemUpOworICAgICAgICAgICAgICAgICAgICIlenUgYnl0ZXMpLlxuIiwgY3R4LT53cml0 ZV9idWZmZXJfc2l6ZSk7CiAgICAgICAgICAgICByZXR1cm4gcmV0OwogICAgICAgICB9CiAgICAg fQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9jYnNfYXB2LmMgYi9saWJhdmNvZGVjL2Nic19hcHYu YwppbmRleCA3YTA2MjQ0YzY5Li5iZTUyYzJlNTExIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2Ni c19hcHYuYworKysgYi9saWJhdmNvZGVjL2Nic19hcHYuYwpAQCAtMjAxLDcgKzIwMSw3IEBAIHN0 YXRpYyBpbnQgY2JzX2Fwdl9zcGxpdF9mcmFnbWVudChDb2RlZEJpdHN0cmVhbUNvbnRleHQgKmN0 eCwKIAogICAgICAgICBpZiAoc2l6ZSA8IDgpIHsKICAgICAgICAgICAgIGF2X2xvZyhjdHgtPmxv Z19jdHgsIEFWX0xPR19FUlJPUiwgIkludmFsaWQgUEJVOiAiCi0gICAgICAgICAgICAgICAgICAg ImZyYWdtZW50IHRvbyBzaG9ydCAoJSJTSVpFX1NQRUNJRklFUiIgYnl0ZXMpLlxuIiwKKyAgICAg ICAgICAgICAgICAgICAiZnJhZ21lbnQgdG9vIHNob3J0ICglenUgYnl0ZXMpLlxuIiwKICAgICAg ICAgICAgICAgICAgICBzaXplKTsKICAgICAgICAgICAgIGVyciA9IEFWRVJST1JfSU5WQUxJRERB VEE7CiAgICAgICAgICAgICBnb3RvIGZhaWw7CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2Nic19h djEuYyBiL2xpYmF2Y29kZWMvY2JzX2F2MS5jCmluZGV4IDc1NjAxYzkzNGIuLmQwNTM1MmM3Mzgg MTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvY2JzX2F2MS5jCisrKyBiL2xpYmF2Y29kZWMvY2JzX2F2 MS5jCkBAIC03MTQsNyArNzE0LDcgQEAgc3RhdGljIGludCBjYnNfYXYxX3NwbGl0X2ZyYWdtZW50 KENvZGVkQml0c3RyZWFtQ29udGV4dCAqY3R4LAogCiAgICAgaWYgKElOVF9NQVggLyA4IDwgc2l6 ZSkgewogICAgICAgICBhdl9sb2coY3R4LT5sb2dfY3R4LCBBVl9MT0dfRVJST1IsICJJbnZhbGlk IGZyYWdtZW50OiAiCi0gICAgICAgICAgICAgICAidG9vIGxhcmdlICglIlNJWkVfU1BFQ0lGSUVS IiBieXRlcykuXG4iLCBzaXplKTsKKyAgICAgICAgICAgICAgICJ0b28gbGFyZ2UgKCV6dSBieXRl cykuXG4iLCBzaXplKTsKICAgICAgICAgZXJyID0gQVZFUlJPUl9JTlZBTElEREFUQTsKICAgICAg ICAgZ290byBmYWlsOwogICAgIH0KQEAgLTc2NSw3ICs3NjUsNyBAQCBzdGF0aWMgaW50IGNic19h djFfc3BsaXRfZnJhZ21lbnQoQ29kZWRCaXRzdHJlYW1Db250ZXh0ICpjdHgsCiAgICAgICAgIGlm IChvYnVfaGVhZGVyLm9idV9oYXNfc2l6ZV9maWVsZCkgewogICAgICAgICAgICAgaWYgKGdldF9i aXRzX2xlZnQoJmdiYykgPCA4KSB7CiAgICAgICAgICAgICAgICAgYXZfbG9nKGN0eC0+bG9nX2N0 eCwgQVZfTE9HX0VSUk9SLCAiSW52YWxpZCBPQlU6IGZyYWdtZW50ICIKLSAgICAgICAgICAgICAg ICAgICAgICAgInRvbyBzaG9ydCAoJSJTSVpFX1NQRUNJRklFUiIgYnl0ZXMpLlxuIiwgc2l6ZSk7 CisgICAgICAgICAgICAgICAgICAgICAgICJ0b28gc2hvcnQgKCV6dSBieXRlcykuXG4iLCBzaXpl KTsKICAgICAgICAgICAgICAgICBlcnIgPSBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgICAgICAg ICAgICAgIGdvdG8gZmFpbDsKICAgICAgICAgICAgIH0KQEAgLTc4Miw3ICs3ODIsNyBAQCBzdGF0 aWMgaW50IGNic19hdjFfc3BsaXRfZnJhZ21lbnQoQ29kZWRCaXRzdHJlYW1Db250ZXh0ICpjdHgs CiAKICAgICAgICAgaWYgKHNpemUgPCBvYnVfbGVuZ3RoKSB7CiAgICAgICAgICAgICBhdl9sb2co Y3R4LT5sb2dfY3R4LCBBVl9MT0dfRVJST1IsICJJbnZhbGlkIE9CVSBsZW5ndGg6ICIKLSAgICAg ICAgICAgICAgICAgICAiJSJQUkl1NjQiLCBidXQgb25seSAlIlNJWkVfU1BFQ0lGSUVSIiBieXRl cyByZW1haW5pbmcgaW4gZnJhZ21lbnQuXG4iLAorICAgICAgICAgICAgICAgICAgICIlIlBSSXU2 NCIsIGJ1dCBvbmx5ICV6dSBieXRlcyByZW1haW5pbmcgaW4gZnJhZ21lbnQuXG4iLAogICAgICAg ICAgICAgICAgICAgIG9idV9sZW5ndGgsIHNpemUpOwogICAgICAgICAgICAgZXJyID0gQVZFUlJP Ul9JTlZBTElEREFUQTsKICAgICAgICAgICAgIGdvdG8gZmFpbDsKQEAgLTg2OCw3ICs4NjgsNyBA QCBzdGF0aWMgaW50IGNic19hdjFfcmVhZF91bml0KENvZGVkQml0c3RyZWFtQ29udGV4dCAqY3R4 LAogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICh1bml0LT5kYXRhX3NpemUgPCAxICsgb2J1LT5o ZWFkZXIub2J1X2V4dGVuc2lvbl9mbGFnKSB7CiAgICAgICAgICAgICBhdl9sb2coY3R4LT5sb2df Y3R4LCBBVl9MT0dfRVJST1IsICJJbnZhbGlkIE9CVSBsZW5ndGg6ICIKLSAgICAgICAgICAgICAg ICAgICAidW5pdCB0b28gc2hvcnQgKCUiU0laRV9TUEVDSUZJRVIiKS5cbiIsIHVuaXQtPmRhdGFf c2l6ZSk7CisgICAgICAgICAgICAgICAgICAgInVuaXQgdG9vIHNob3J0ICglenUpLlxuIiwgdW5p dC0+ZGF0YV9zaXplKTsKICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwog ICAgICAgICB9CiAgICAgICAgIG9idS0+b2J1X3NpemUgPSB1bml0LT5kYXRhX3NpemUgLSAxIC0g b2J1LT5oZWFkZXIub2J1X2V4dGVuc2lvbl9mbGFnOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9j YnNfdnA5LmMgYi9saWJhdmNvZGVjL2Nic192cDkuYwppbmRleCA5ZTliMzdlNTI3Li4zNzAxNWY1 Yzc3IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2Nic192cDkuYworKysgYi9saWJhdmNvZGVjL2Ni c192cDkuYwpAQCAtNDE1LDcgKzQxNSw3IEBAIHN0YXRpYyBpbnQgY2JzX3ZwOV9zcGxpdF9mcmFn bWVudChDb2RlZEJpdHN0cmVhbUNvbnRleHQgKmN0eCwKICAgICAgICAgfQogICAgICAgICBpZiAo cG9zICsgaW5kZXhfc2l6ZSAhPSBmcmFnLT5kYXRhX3NpemUpIHsKICAgICAgICAgICAgIGF2X2xv ZyhjdHgtPmxvZ19jdHgsIEFWX0xPR19XQVJOSU5HLCAiRXh0cmEgcGFkZGluZyBhdCAiCi0gICAg ICAgICAgICAgICAgICAgImVuZCBvZiBzdXBlcmZyYW1lOiAlIlNJWkVfU1BFQ0lGSUVSIiBieXRl cy5cbiIsCisgICAgICAgICAgICAgICAgICAgImVuZCBvZiBzdXBlcmZyYW1lOiAlenUgYnl0ZXMu XG4iLAogICAgICAgICAgICAgICAgICAgIGZyYWctPmRhdGFfc2l6ZSAtIChwb3MgKyBpbmRleF9z aXplKSk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9kM2QxMnZhX2VuY29k ZS5jIGIvbGliYXZjb2RlYy9kM2QxMnZhX2VuY29kZS5jCmluZGV4IGQyODQ0N2MzYzkuLjVhODJh NDJjNWYgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvZDNkMTJ2YV9lbmNvZGUuYworKysgYi9saWJh dmNvZGVjL2QzZDEydmFfZW5jb2RlLmMKQEAgLTcwNyw3ICs3MDcsNyBAQCBzdGF0aWMgaW50IGQz ZDEydmFfZW5jb2RlX2dldF9jb2RlZF9kYXRhKEFWQ29kZWNDb250ZXh0ICphdmN0eCwKICAgICAg ICAgZ290byBlbmQ7CiAKICAgICB0b3RhbF9zaXplICs9IHBpYy0+aGVhZGVyX3NpemU7Ci0gICAg YXZfbG9nKGF2Y3R4LCBBVl9MT0dfREVCVUcsICJPdXRwdXQgYnVmZmVyIHNpemUgJSJTSVpFX1NQ RUNJRklFUiJcbiIsIHRvdGFsX3NpemUpOworICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0RFQlVH LCAiT3V0cHV0IGJ1ZmZlciBzaXplICV6dVxuIiwgdG90YWxfc2l6ZSk7CiAKICAgICBociA9IElE M0QxMlJlc291cmNlX01hcChwaWMtPm91dHB1dF9idWZmZXIsIDAsIE5VTEwsICh2b2lkICoqKSZt YXBwZWRfZGF0YSk7CiAgICAgaWYgKEZBSUxFRChocikpIHsKZGlmZiAtLWdpdCBhL2xpYmF2Y29k ZWMvZDNkMTJ2YV9lbmNvZGVfYXYxLmMgYi9saWJhdmNvZGVjL2QzZDEydmFfZW5jb2RlX2F2MS5j CmluZGV4IGU3YTExNWEyZWUuLjM0ZTgwM2RiOTggMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvZDNk MTJ2YV9lbmNvZGVfYXYxLmMKKysrIGIvbGliYXZjb2RlYy9kM2QxMnZhX2VuY29kZV9hdjEuYwpA QCAtNDA2LDcgKzQwNiw3IEBAIHN0YXRpYyBpbnQgZDNkMTJ2YV9lbmNvZGVfYXYxX2dldF9jb2Rl ZF9kYXRhKEFWQ29kZWNDb250ZXh0ICphdmN0eCwKICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19E RUJVRywgIlRpbGUgZ3JvdXAgZXh0cmEgc2l6ZTogJWQgYnl0ZXMuXG4iLCB0aWxlX2dyb3VwX2V4 dHJhX3NpemUpOwogCiAgICAgdG90YWxfc2l6ZSArPSAocGljLT5oZWFkZXJfc2l6ZSArIHRpbGVf Z3JvdXBfZXh0cmFfc2l6ZSArIGF2MV9waWNfaGRfc2l6ZSk7Ci0gICAgYXZfbG9nKGF2Y3R4LCBB Vl9MT0dfREVCVUcsICJPdXRwdXQgYnVmZmVyIHNpemUgJSJTSVpFX1NQRUNJRklFUiJcbiIsIHRv dGFsX3NpemUpOworICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0RFQlVHLCAiT3V0cHV0IGJ1ZmZl ciBzaXplICV6dVxuIiwgdG90YWxfc2l6ZSk7CiAKICAgICBociA9IElEM0QxMlJlc291cmNlX01h cChwaWMtPm91dHB1dF9idWZmZXIsIDAsIE5VTEwsICh2b2lkICoqKSZtYXBwZWRfZGF0YSk7CiAg ICAgaWYgKEZBSUxFRChocikpIHsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvZGVjb2RlLmMgYi9s aWJhdmNvZGVjL2RlY29kZS5jCmluZGV4IDcwODkxMTRlOTguLmYwNjQ2OTAxYzggMTAwNjQ0Ci0t LSBhL2xpYmF2Y29kZWMvZGVjb2RlLmMKKysrIGIvbGliYXZjb2RlYy9kZWNvZGUuYwpAQCAtNzQ3 LDggKzc0Nyw4IEBAIHN0YXRpYyBpbnQgYXBwbHlfY3JvcHBpbmcoQVZDb2RlY0NvbnRleHQgKmF2 Y3R4LCBBVkZyYW1lICpmcmFtZSkKICAgICAgICAgKGZyYW1lLT5jcm9wX3RvcCArIGZyYW1lLT5j cm9wX2JvdHRvbSkgPj0gZnJhbWUtPmhlaWdodCkgewogICAgICAgICBhdl9sb2coYXZjdHgsIEFW X0xPR19XQVJOSU5HLAogICAgICAgICAgICAgICAgIkludmFsaWQgY3JvcHBpbmcgaW5mb3JtYXRp b24gc2V0IGJ5IGEgZGVjb2RlcjogIgotICAgICAgICAgICAgICAgIiUiU0laRV9TUEVDSUZJRVIi LyUiU0laRV9TUEVDSUZJRVIiLyUiU0laRV9TUEVDSUZJRVIiLyUiU0laRV9TUEVDSUZJRVIiICIK LSAgICAgICAgICAgICAgICIoZnJhbWUgc2l6ZSAlZHglZCkuIFRoaXMgaXMgYSBidWcsIHBsZWFz ZSByZXBvcnQgaXRcbiIsCisgICAgICAgICAgICAgICAiJXp1LyV6dS8lenUvJXp1IChmcmFtZSBz aXplICVkeCVkKS4gIgorICAgICAgICAgICAgICAgIlRoaXMgaXMgYSBidWcsIHBsZWFzZSByZXBv cnQgaXRcbiIsCiAgICAgICAgICAgICAgICBmcmFtZS0+Y3JvcF9sZWZ0LCBmcmFtZS0+Y3JvcF9y aWdodCwgZnJhbWUtPmNyb3BfdG9wLCBmcmFtZS0+Y3JvcF9ib3R0b20sCiAgICAgICAgICAgICAg ICBmcmFtZS0+d2lkdGgsIGZyYW1lLT5oZWlnaHQpOwogICAgICAgICBmcmFtZS0+Y3JvcF9sZWZ0 ICAgPSAwOwpAQCAtMjI3MCw3ICsyMjcwLDcgQEAgaW50IGZmX2NvcHlfcGFsZXR0ZSh2b2lkICpk c3QsIGNvbnN0IEFWUGFja2V0ICpzcmMsIHZvaWQgKmxvZ2N0eCkKICAgICAgICAgcmV0dXJuIDE7 CiAgICAgfSBlbHNlIGlmIChwYWwpIHsKICAgICAgICAgYXZfbG9nKGxvZ2N0eCwgQVZfTE9HX0VS Uk9SLAotICAgICAgICAgICAgICAgIlBhbGV0dGUgc2l6ZSAlIlNJWkVfU1BFQ0lGSUVSIiBpcyB3 cm9uZ1xuIiwgc2l6ZSk7CisgICAgICAgICAgICAgICAiUGFsZXR0ZSBzaXplICV6dSBpcyB3cm9u Z1xuIiwgc2l6ZSk7CiAgICAgfQogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvbGliYXZj b2RlYy9kbnhoZGRlYy5jIGIvbGliYXZjb2RlYy9kbnhoZGRlYy5jCmluZGV4IGZlMDgwOWE1ZjUu LjdlYzYxZjllYmQgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvZG54aGRkZWMuYworKysgYi9saWJh dmNvZGVjL2RueGhkZGVjLmMKQEAgLTMzMyw3ICszMzMsNyBAQCBzdGF0aWMgaW50IGRueGhkX2Rl Y29kZV9oZWFkZXIoRE5YSERDb250ZXh0ICpjdHgsIEFWRnJhbWUgKmZyYW1lLAogCiAgICAgaWYg KGN0eC0+bWJfaGVpZ2h0ID4gRkZfQVJSQVlfRUxFTVMoY3R4LT5tYl9zY2FuX2luZGV4KSkgewog ICAgICAgICBhdl9sb2coY3R4LT5hdmN0eCwgQVZfTE9HX0VSUk9SLAotICAgICAgICAgICAgICAg Im1iX2hlaWdodCB0b28gYmlnICglZCA+ICUiU0laRV9TUEVDSUZJRVIiKS5cbiIsIGN0eC0+bWJf aGVpZ2h0LCBGRl9BUlJBWV9FTEVNUyhjdHgtPm1iX3NjYW5faW5kZXgpKTsKKyAgICAgICAgICAg ICAgICJtYl9oZWlnaHQgdG9vIGJpZyAoJWQgPiAlenUpLlxuIiwgY3R4LT5tYl9oZWlnaHQsIEZG X0FSUkFZX0VMRU1TKGN0eC0+bWJfc2Nhbl9pbmRleCkpOwogICAgICAgICByZXR1cm4gQVZFUlJP Ul9JTlZBTElEREFUQTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvZHZkc3ViZW5j LmMgYi9saWJhdmNvZGVjL2R2ZHN1YmVuYy5jCmluZGV4IDAwYmFiMzU5ODguLjJhNTQ2M2I4ZDgg MTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvZHZkc3ViZW5jLmMKKysrIGIvbGliYXZjb2RlYy9kdmRz dWJlbmMuYwpAQCAtNDExLDcgKzQxMSw3IEBAIHN0YXRpYyBpbnQgZHZkc3ViX2VuY29kZShBVkNv ZGVjQ29udGV4dCAqYXZjdHgsCiAgICAgcXEgPSBvdXRidWY7CiAgICAgYnl0ZXN0cmVhbV9wdXRf YmUxNigmcXEsIHEgLSBvdXRidWYpOwogCi0gICAgYXZfbG9nKE5VTEwsIEFWX0xPR19ERUJVRywg InN1YnRpdGxlX3BhY2tldCBzaXplPSUiUFRSRElGRl9TUEVDSUZJRVIiXG4iLCBxIC0gb3V0YnVm KTsKKyAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0RFQlVHLCAic3VidGl0bGVfcGFja2V0IHNpemU9 JXRkXG4iLCBxIC0gb3V0YnVmKTsKICAgICByZXQgPSBxIC0gb3V0YnVmOwogCiBmYWlsOgpkaWZm IC0tZ2l0IGEvbGliYXZjb2RlYy9nMm1lZXQuYyBiL2xpYmF2Y29kZWMvZzJtZWV0LmMKaW5kZXgg Zjk1MmEwNmYxMi4uYTQ5MDA2NDFlNyAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9nMm1lZXQuYwor KysgYi9saWJhdmNvZGVjL2cybWVldC5jCkBAIC04OTAsNyArODkwLDcgQEAgc3RhdGljIGludCBl cGljX2piX2RlY29kZV90aWxlKEcyTUNvbnRleHQgKmMsIGludCB0aWxlX3gsIGludCB0aWxlX3ks CiAgICAgfQogCiAgICAgaWYgKHNyY19zaXplIDwgZWxzX2RzaXplKSB7Ci0gICAgICAgIGF2X2xv ZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiZVBJQzogZGF0YSB0b28gc2hvcnQsIG5lZWRlZCAlIlNJ WkVfU1BFQ0lGSUVSIiwgZ290ICUiU0laRV9TUEVDSUZJRVIiXG4iLAorICAgICAgICBhdl9sb2co YXZjdHgsIEFWX0xPR19FUlJPUiwgImVQSUM6IGRhdGEgdG9vIHNob3J0LCBuZWVkZWQgJXp1LCBn b3QgJXp1XG4iLAogICAgICAgICAgICAgICAgZWxzX2RzaXplLCBzcmNfc2l6ZSk7CiAgICAgICAg IHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29k ZWMvaDI2NF9wcy5jIGIvbGliYXZjb2RlYy9oMjY0X3BzLmMKaW5kZXggM2EzY2FkN2RlNy4uYWMy MDQxNzJjYiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9oMjY0X3BzLmMKKysrIGIvbGliYXZjb2Rl Yy9oMjY0X3BzLmMKQEAgLTcxNSw3ICs3MTUsNyBAQCBpbnQgZmZfaDI2NF9kZWNvZGVfcGljdHVy ZV9wYXJhbWV0ZXJfc2V0KEdldEJpdENvbnRleHQgKmdiLCBBVkNvZGVjQ29udGV4dCAqYXZjdAog ICAgIHBwcy0+ZGF0YV9zaXplID0gZ2V0X2JpdHNfYnl0ZXNpemUoZ2IsIDEpOwogICAgIGlmIChw cHMtPmRhdGFfc2l6ZSA+IHNpemVvZihwcHMtPmRhdGEpKSB7CiAgICAgICAgIGF2X2xvZyhhdmN0 eCwgQVZfTE9HX0RFQlVHLCAiVHJ1bmNhdGluZyBsaWtlbHkgb3ZlcnNpemVkIFBQUyAiCi0gICAg ICAgICAgICAgICAiKCUiU0laRV9TUEVDSUZJRVIiID4gJSJTSVpFX1NQRUNJRklFUiIpXG4iLAor ICAgICAgICAgICAgICAgIiglenUgPiAlenUpXG4iLAogICAgICAgICAgICAgICAgcHBzLT5kYXRh X3NpemUsIHNpemVvZihwcHMtPmRhdGEpKTsKICAgICAgICAgcHBzLT5kYXRhX3NpemUgPSBzaXpl b2YocHBzLT5kYXRhKTsKICAgICB9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2gyNjRfc2xpY2Uu YyBiL2xpYmF2Y29kZWMvaDI2NF9zbGljZS5jCmluZGV4IDdlNTNlMzhjY2EuLmQ5MWYwNGZhNjcg MTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvaDI2NF9zbGljZS5jCisrKyBiL2xpYmF2Y29kZWMvaDI2 NF9zbGljZS5jCkBAIC0yNjM5LDEwICsyNjM5LDEwIEBAIHN0YXRpYyBpbnQgZGVjb2RlX3NsaWNl KHN0cnVjdCBBVkNvZGVjQ29udGV4dCAqYXZjdHgsIHZvaWQgKmFyZykKICAgICAgICAgICAgICAg ICBnb3RvIGZpbmlzaDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChzbC0+Y2FiYWMu Ynl0ZXN0cmVhbSA+IHNsLT5jYWJhYy5ieXRlc3RyZWFtX2VuZCArIDIgKQotICAgICAgICAgICAg ICAgIGF2X2xvZyhoLT5hdmN0eCwgQVZfTE9HX0RFQlVHLCAiYnl0ZXN0cmVhbSBvdmVycmVhZCAl IlBUUkRJRkZfU1BFQ0lGSUVSIlxuIiwgc2wtPmNhYmFjLmJ5dGVzdHJlYW1fZW5kIC0gc2wtPmNh YmFjLmJ5dGVzdHJlYW0pOworICAgICAgICAgICAgICAgIGF2X2xvZyhoLT5hdmN0eCwgQVZfTE9H X0RFQlVHLCAiYnl0ZXN0cmVhbSBvdmVycmVhZCAldGRcbiIsIHNsLT5jYWJhYy5ieXRlc3RyZWFt X2VuZCAtIHNsLT5jYWJhYy5ieXRlc3RyZWFtKTsKICAgICAgICAgICAgIGlmIChyZXQgPCAwIHx8 IHNsLT5jYWJhYy5ieXRlc3RyZWFtID4gc2wtPmNhYmFjLmJ5dGVzdHJlYW1fZW5kICsgNCkgewog ICAgICAgICAgICAgICAgIGF2X2xvZyhoLT5hdmN0eCwgQVZfTE9HX0VSUk9SLAotICAgICAgICAg ICAgICAgICAgICAgICAiZXJyb3Igd2hpbGUgZGVjb2RpbmcgTUIgJWQgJWQsIGJ5dGVzdHJlYW0g JSJQVFJESUZGX1NQRUNJRklFUiJcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICJlcnJvciB3 aGlsZSBkZWNvZGluZyBNQiAlZCAlZCwgYnl0ZXN0cmVhbSAldGRcbiIsCiAgICAgICAgICAgICAg ICAgICAgICAgIHNsLT5tYl94LCBzbC0+bWJfeSwKICAgICAgICAgICAgICAgICAgICAgICAgc2wt PmNhYmFjLmJ5dGVzdHJlYW1fZW5kIC0gc2wtPmNhYmFjLmJ5dGVzdHJlYW0pOwogICAgICAgICAg ICAgICAgIGVyX2FkZF9zbGljZShzbCwgc2wtPnJlc3luY19tYl94LCBzbC0+cmVzeW5jX21iX3ks IHNsLT5tYl94LApkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9oYXBlbmMuYyBiL2xpYmF2Y29kZWMv aGFwZW5jLmMKaW5kZXggYTBiMTk5OTA2ZC4uNjg4MmIxZTU2MyAxMDA2NDQKLS0tIGEvbGliYXZj b2RlYy9oYXBlbmMuYworKysgYi9saWJhdmNvZGVjL2hhcGVuYy5jCkBAIC0xMjEsNyArMTIxLDcg QEAgc3RhdGljIGludCBoYXBfY29tcHJlc3NfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCB1 aW50OF90ICpkc3QpCiAgICAgICAgIC8qIElmIHRoZXJlIGlzIG5vIGdhaW4gZnJvbSBzbmFwcHks IGp1c3QgdXNlIHRoZSByYXcgdGV4dHVyZS4gKi8KICAgICAgICAgaWYgKGNodW5rLT5jb21wcmVz c2VkX3NpemUgPj0gY2h1bmstPnVuY29tcHJlc3NlZF9zaXplKSB7CiAgICAgICAgICAgICBhdl9s b2coYXZjdHgsIEFWX0xPR19WRVJCT1NFLAotICAgICAgICAgICAgICAgICAgICJTbmFwcHkgYnVm ZmVyIGJpZ2dlciB0aGFuIHVuY29tcHJlc3NlZCAoJSJTSVpFX1NQRUNJRklFUiIgPj0gJSJTSVpF X1NQRUNJRklFUiIgYnl0ZXMpLlxuIiwKKyAgICAgICAgICAgICAgICAgICAiU25hcHB5IGJ1ZmZl ciBiaWdnZXIgdGhhbiB1bmNvbXByZXNzZWQgKCV6dSA+PSAlenUgYnl0ZXMpLlxuIiwKICAgICAg ICAgICAgICAgICAgICBjaHVuay0+Y29tcHJlc3NlZF9zaXplLCBjaHVuay0+dW5jb21wcmVzc2Vk X3NpemUpOwogICAgICAgICAgICAgbWVtY3B5KGNodW5rX2RzdCwgY2h1bmtfc3JjLCBjaHVuay0+ dW5jb21wcmVzc2VkX3NpemUpOwogICAgICAgICAgICAgY2h1bmstPmNvbXByZXNzb3IgPSBIQVBf Q09NUF9OT05FOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9ocV9ocWEuYyBiL2xpYmF2Y29kZWMv aHFfaHFhLmMKaW5kZXggYzgxM2I5MjNiNi4uNjEyNDI2NzhiMiAxMDA2NDQKLS0tIGEvbGliYXZj b2RlYy9ocV9ocWEuYworKysgYi9saWJhdmNvZGVjL2hxX2hxYS5jCkBAIC0xNzcsNyArMTc3LDcg QEAgc3RhdGljIGludCBocV9kZWNvZGVfZnJhbWUoSFFDb250ZXh0ICpjdHgsIEFWRnJhbWUgKnBp YywgR2V0Qnl0ZUNvbnRleHQgKmdiYywKICAgICAgICAgICAgIHNsaWNlX29mZltzbGljZV0gPj0g c2xpY2Vfb2ZmW3NsaWNlICsgMV0gfHwKICAgICAgICAgICAgIHNsaWNlX29mZltzbGljZSArIDFd ID4gZGF0YV9zaXplKSB7CiAgICAgICAgICAgICBhdl9sb2coY3R4LT5hdmN0eCwgQVZfTE9HX0VS Uk9SLAotICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIHNsaWNlIHNpemUgJSJTSVpFX1NQRUNJ RklFUiIuXG4iLCBkYXRhX3NpemUpOworICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIHNsaWNl IHNpemUgJXp1LlxuIiwgZGF0YV9zaXplKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9 CiAgICAgICAgIGluaXRfZ2V0X2JpdHMoJmdiLCBzcmMgKyBzbGljZV9vZmZbc2xpY2VdLApAQCAt MzA0LDcgKzMwNCw3IEBAIHN0YXRpYyBpbnQgaHFhX2RlY29kZV9mcmFtZShIUUNvbnRleHQgKmN0 eCwgQVZGcmFtZSAqcGljLCBHZXRCeXRlQ29udGV4dCAqZ2JjLCBzCiAgICAgICAgICAgICBzbGlj ZV9vZmZbc2xpY2VdID49IHNsaWNlX29mZltzbGljZSArIDFdIHx8CiAgICAgICAgICAgICBzbGlj ZV9vZmZbc2xpY2UgKyAxXSA+IGRhdGFfc2l6ZSkgewogICAgICAgICAgICAgYXZfbG9nKGN0eC0+ YXZjdHgsIEFWX0xPR19FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAiSW52YWxpZCBzbGljZSBz aXplICUiU0laRV9TUEVDSUZJRVIiLlxuIiwgZGF0YV9zaXplKTsKKyAgICAgICAgICAgICAgICAg ICAiSW52YWxpZCBzbGljZSBzaXplICV6dS5cbiIsIGRhdGFfc2l6ZSk7CiAgICAgICAgICAgICBi cmVhazsKICAgICAgICAgfQogICAgICAgICBpbml0X2dldF9iaXRzKCZnYiwgc3JjICsgc2xpY2Vf b2ZmW3NsaWNlXSwKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvanBlZzIwMDBkZWMuYyBiL2xpYmF2 Y29kZWMvanBlZzIwMDBkZWMuYwppbmRleCA1ZDE1MDJmYWJiLi5kZTFhNzNiOTJiIDEwMDY0NAot LS0gYS9saWJhdmNvZGVjL2pwZWcyMDAwZGVjLmMKKysrIGIvbGliYXZjb2RlYy9qcGVnMjAwMGRl Yy5jCkBAIC0xNDc2LDcgKzE0NzYsNyBAQCBzdGF0aWMgaW50IGpwZWcyMDAwX2RlY29kZV9wYWNr ZXQoSnBlZzIwMDBEZWNvZGVyQ29udGV4dCAqcywgSnBlZzIwMDBUaWxlICp0aWxlLAogICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAodG1wX2xlbmd0aCA+IGNibGstPmRhdGFf YWxsb2NhdGVkKSB7CiAgICAgICAgICAgICAgICAgICAgIGF2cHJpdl9yZXF1ZXN0X3NhbXBsZShz LT5hdmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQmxvY2sg d2l0aCBsZW5ndGhpbmMgZ3JlYXRlciB0aGFuICUiU0laRV9TUEVDSUZJRVIiIiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQmxvY2sgd2l0aCBsZW5ndGhpbmMgZ3Jl YXRlciB0aGFuICV6dSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2Jsay0+ZGF0YV9hbGxvY2F0ZWQpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJP Ul9QQVRDSFdFTENPTUU7CiAgICAgICAgICAgICAgICAgfQpAQCAtMjA3MSw3ICsyMDcxLDcgQEAg c3RhdGljIGludCBkZWNvZGVfY2Jsayhjb25zdCBKcGVnMjAwMERlY29kZXJDb250ZXh0ICpzLCBK cGVnMjAwMENvZGluZ1N0eWxlICpjb2QKICAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9J TlZBTElEREFUQTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChGRkFCUyhjYmxrLT5k YXRhICsgY2Jsay0+ZGF0YV9zdGFydFt0ZXJtX2NudCArIDFdIC0gMiAtIHQxLT5tcWMuYnApID4g MCkgewotICAgICAgICAgICAgICAgIGF2X2xvZyhzLT5hdmN0eCwgQVZfTE9HX1dBUk5JTkcsICJN aWQgbWlzbWF0Y2ggJSJQVFJESUZGX1NQRUNJRklFUiIgaW4gcGFzcyAlZCBvZiAlZFxuIiwKKyAg ICAgICAgICAgICAgICBhdl9sb2cocy0+YXZjdHgsIEFWX0xPR19XQVJOSU5HLCAiTWlkIG1pc21h dGNoICV0ZCBpbiBwYXNzICVkIG9mICVkXG4iLAogICAgICAgICAgICAgICAgICAgICBjYmxrLT5k YXRhICsgY2Jsay0+ZGF0YV9zdGFydFt0ZXJtX2NudCArIDFdIC0gMiAtIHQxLT5tcWMuYnAsCiAg ICAgICAgICAgICAgICAgICAgIHBhc3NfY250LCBjYmxrLT5ucGFzc2VzKTsKICAgICAgICAgICAg IH0KQEAgLTIwODgsNyArMjA4OCw3IEBAIHN0YXRpYyBpbnQgZGVjb2RlX2NibGsoY29uc3QgSnBl ZzIwMDBEZWNvZGVyQ29udGV4dCAqcywgSnBlZzIwMDBDb2RpbmdTdHlsZSAqY29kCiAgICAgfQog CiAgICAgaWYgKGNibGstPmRhdGEgKyBjYmxrLT5sZW5ndGggLSAyID4gdDEtPm1xYy5icCkgewot ICAgICAgICBhdl9sb2cocy0+YXZjdHgsIEFWX0xPR19XQVJOSU5HLCAiRW5kIG1pc21hdGNoICUi UFRSRElGRl9TUEVDSUZJRVIiXG4iLAorICAgICAgICBhdl9sb2cocy0+YXZjdHgsIEFWX0xPR19X QVJOSU5HLCAiRW5kIG1pc21hdGNoICV0ZFxuIiwKICAgICAgICAgICAgICAgIGNibGstPmRhdGEg KyBjYmxrLT5sZW5ndGggLSAyIC0gdDEtPm1xYy5icCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9s aWJhdmNvZGVjL2xpYmFvbWVuYy5jIGIvbGliYXZjb2RlYy9saWJhb21lbmMuYwppbmRleCAxZTVk YjRhZDhjLi5iZTMxOWQwZjNjIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2xpYmFvbWVuYy5jCisr KyBiL2xpYmF2Y29kZWMvbGliYW9tZW5jLmMKQEAgLTI0MCw3ICsyNDAsNyBAQCBzdGF0aWMgYXZf Y29sZCB2b2lkIGR1bXBfZW5jX2NmZyhBVkNvZGVjQ29udGV4dCAqYXZjdHgsCiAgICAgICAgICAg IHdpZHRoLCAiZ19wYXNzOiIsICAgICAgICAgICAgY2ZnLT5nX3Bhc3MsCiAgICAgICAgICAgIHdp ZHRoLCAiZ19sYWdfaW5fZnJhbWVzOiIsICAgY2ZnLT5nX2xhZ19pbl9mcmFtZXMpOwogICAgIGF2 X2xvZyhhdmN0eCwgbGV2ZWwsICJyYXRlIGNvbnRyb2wgc2V0dGluZ3NcbiIKLSAgICAgICAgICAg ICAgICAgICAgICAgICAiICAlKnMldVxuICAlKnMlZFxuICAlKnMlcCglIlNJWkVfU1BFQ0lGSUVS IilcbiAgJSpzJXVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIiAgJSpzJXVcbiAgJSpz JWRcbiAgJSpzJXAoJXp1KVxuICAlKnMldVxuIiwKICAgICAgICAgICAgd2lkdGgsICJyY19kcm9w ZnJhbWVfdGhyZXNoOiIsIGNmZy0+cmNfZHJvcGZyYW1lX3RocmVzaCwKICAgICAgICAgICAgd2lk dGgsICJyY19lbmRfdXNhZ2U6IiwgICAgICAgIGNmZy0+cmNfZW5kX3VzYWdlLAogICAgICAgICAg ICB3aWR0aCwgInJjX3R3b3Bhc3Nfc3RhdHNfaW46IiwgY2ZnLT5yY190d29wYXNzX3N0YXRzX2lu LmJ1ZiwgY2ZnLT5yY190d29wYXNzX3N0YXRzX2luLnN6LApAQCAtODk2LDcgKzg5Niw3IEBAIHN0 YXRpYyBhdl9jb2xkIGludCBhb21faW5pdChBVkNvZGVjQ29udGV4dCAqYXZjdHgsCiAgICAgICAg IHJldCAgICAgICAgICAgICAgICAgICA9IGF2X3JlYWxsb2NwKCZjdHgtPnR3b3Bhc3Nfc3RhdHMu YnVmLCBjdHgtPnR3b3Bhc3Nfc3RhdHMuc3opOwogICAgICAgICBpZiAocmV0IDwgMCkgewogICAg ICAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsCi0gICAgICAgICAgICAgICAgICAg IlN0YXQgYnVmZmVyIGFsbG9jICglIlNJWkVfU1BFQ0lGSUVSIiBieXRlcykgZmFpbGVkXG4iLAor ICAgICAgICAgICAgICAgICAgICJTdGF0IGJ1ZmZlciBhbGxvYyAoJXp1IGJ5dGVzKSBmYWlsZWRc biIsCiAgICAgICAgICAgICAgICAgICAgY3R4LT50d29wYXNzX3N0YXRzLnN6KTsKICAgICAgICAg ICAgIGN0eC0+dHdvcGFzc19zdGF0cy5zeiA9IDA7CiAgICAgICAgICAgICByZXR1cm4gcmV0OwpA QCAtMTA5MSw3ICsxMDkxLDcgQEAgc3RhdGljIGludCBzdG9yZWZyYW1lKEFWQ29kZWNDb250ZXh0 ICphdmN0eCwgc3RydWN0IEZyYW1lTGlzdERhdGEgKmN4X2ZyYW1lLAogICAgIGludCByZXQgPSBm Zl9nZXRfZW5jb2RlX2J1ZmZlcihhdmN0eCwgcGt0LCBjeF9mcmFtZS0+c3osIDApOwogICAgIGlm IChyZXQgPCAwKSB7CiAgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLAotICAgICAg ICAgICAgICAgIkVycm9yIGdldHRpbmcgb3V0cHV0IHBhY2tldCBvZiBzaXplICUiU0laRV9TUEVD SUZJRVIiLlxuIiwgY3hfZnJhbWUtPnN6KTsKKyAgICAgICAgICAgICAgICJFcnJvciBnZXR0aW5n IG91dHB1dCBwYWNrZXQgb2Ygc2l6ZSAlenUuXG4iLCBjeF9mcmFtZS0+c3opOwogICAgICAgICBy ZXR1cm4gcmV0OwogICAgIH0KICAgICBtZW1jcHkocGt0LT5kYXRhLCBjeF9mcmFtZS0+YnVmLCBw a3QtPnNpemUpOwpAQCAtMTE5MCw3ICsxMTkwLDcgQEAgc3RhdGljIGludCBxdWV1ZV9mcmFtZXMo QVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVlBhY2tldCAqcGt0X291dCkKIAogICAgICAgICAgICAg ICAgIGlmICghY3hfZnJhbWUtPmJ1ZikgewogICAgICAgICAgICAgICAgICAgICBhdl9sb2coYXZj dHgsIEFWX0xPR19FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJEYXRhIGJ1ZmZl ciBhbGxvYyAoJSJTSVpFX1NQRUNJRklFUiIgYnl0ZXMpIGZhaWxlZFxuIiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICJEYXRhIGJ1ZmZlciBhbGxvYyAoJXp1IGJ5dGVzKSBmYWlsZWRcbiIs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjeF9mcmFtZS0+c3opOwogICAgICAgICAgICAg ICAgICAgICBhdl9mcmVlcCgmY3hfZnJhbWUpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4g QVZFUlJPUihFTk9NRU0pOwpAQCAtMTM1Miw3ICsxMzUyLDcgQEAgc3RhdGljIGludCBhb21fZW5j b2RlKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZQYWNrZXQgKnBrdCwKIAogICAgICAgICBhdmN0 eC0+c3RhdHNfb3V0ID0gYXZfbWFsbG9jKGI2NF9zaXplKTsKICAgICAgICAgaWYgKCFhdmN0eC0+ c3RhdHNfb3V0KSB7Ci0gICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIlN0 YXQgYnVmZmVyIGFsbG9jICglIlNJWkVfU1BFQ0lGSUVSIiBieXRlcykgZmFpbGVkXG4iLAorICAg ICAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJTdGF0IGJ1ZmZlciBhbGxvYyAo JXp1IGJ5dGVzKSBmYWlsZWRcbiIsCiAgICAgICAgICAgICAgICAgICAgYjY0X3NpemUpOwogICAg ICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv bGliYXZjb2RlYy9saWJpbGJjLmMgYi9saWJhdmNvZGVjL2xpYmlsYmMuYwppbmRleCBmNDk2ZjE2 ZGI5Li45YTQzZTU2NmY1IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2xpYmlsYmMuYworKysgYi9s aWJhdmNvZGVjL2xpYmlsYmMuYwpAQCAtOTksOCArOTksNyBAQCBzdGF0aWMgaW50IGlsYmNfZGVj b2RlX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUsCiAjaWYgTElC SUxCQ19WRVJTSU9OX01BSk9SIDwgMwogICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJP UiwgImlMQkMgZnJhbWUgdG9vIHNob3J0ICgldSwgc2hvdWxkIGJlICV1KVxuIiwKICNlbHNlCi0g ICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiaUxCQyBmcmFtZSB0b28gc2hvcnQg KCV1LCBzaG91bGQgYmUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiUi U0laRV9TUEVDSUZJRVIiKVxuIiwKKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1Is ICJpTEJDIGZyYW1lIHRvbyBzaG9ydCAoJXUsIHNob3VsZCBiZSAlenUpXG4iLAogI2VuZGlmCiAg ICAgICAgICAgICAgICBidWZfc2l6ZSwgcy0+ZGVjb2Rlci5ub19vZl9ieXRlcyk7CiAgICAgICAg IHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9saWJ2 cHhlbmMuYyBiL2xpYmF2Y29kZWMvbGlidnB4ZW5jLmMKaW5kZXggMDVjMzRhNjg1Ny4uZWY1Mjlh YmNhYiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9saWJ2cHhlbmMuYworKysgYi9saWJhdmNvZGVj L2xpYnZweGVuYy5jCkBAIC0yNDIsNyArMjQyLDcgQEAgc3RhdGljIGF2X2NvbGQgdm9pZCBkdW1w X2VuY19jZmcoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAogICAgICAgICAgICB3aWR0aCwgImdfbGFn X2luX2ZyYW1lczoiLCAgIGNmZy0+Z19sYWdfaW5fZnJhbWVzKTsKICAgICBhdl9sb2coYXZjdHgs IGxldmVsLCAicmF0ZSBjb250cm9sIHNldHRpbmdzXG4iCiAgICAgICAgICAgICIgICUqcyV1XG4g ICUqcyV1XG4gICUqcyV1XG4gICUqcyV1XG4iCi0gICAgICAgICAgICIgICUqcyVkXG4gICUqcyVw KCUiU0laRV9TUEVDSUZJRVIiKVxuICAlKnMldVxuIiwKKyAgICAgICAgICAgIiAgJSpzJWRcbiAg JSpzJXAoJXp1KVxuICAlKnMldVxuIiwKICAgICAgICAgICAgd2lkdGgsICJyY19kcm9wZnJhbWVf dGhyZXNoOiIsICAgY2ZnLT5yY19kcm9wZnJhbWVfdGhyZXNoLAogICAgICAgICAgICB3aWR0aCwg InJjX3Jlc2l6ZV9hbGxvd2VkOiIsICAgICBjZmctPnJjX3Jlc2l6ZV9hbGxvd2VkLAogICAgICAg ICAgICB3aWR0aCwgInJjX3Jlc2l6ZV91cF90aHJlc2g6IiwgICBjZmctPnJjX3Jlc2l6ZV91cF90 aHJlc2gsCkBAIC0xMTE3LDcgKzExMTcsNyBAQCBzdGF0aWMgYXZfY29sZCBpbnQgdnB4X2luaXQo QVZDb2RlY0NvbnRleHQgKmF2Y3R4LAogICAgICAgICByZXQgPSBhdl9yZWFsbG9jcCgmY3R4LT50 d29wYXNzX3N0YXRzLmJ1ZiwgY3R4LT50d29wYXNzX3N0YXRzLnN6KTsKICAgICAgICAgaWYgKHJl dCA8IDApIHsKICAgICAgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLAotICAgICAg ICAgICAgICAgICAgICJTdGF0IGJ1ZmZlciBhbGxvYyAoJSJTSVpFX1NQRUNJRklFUiIgYnl0ZXMp IGZhaWxlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAiU3RhdCBidWZmZXIgYWxsb2MgKCV6dSBi eXRlcykgZmFpbGVkXG4iLAogICAgICAgICAgICAgICAgICAgIGN0eC0+dHdvcGFzc19zdGF0cy5z eik7CiAgICAgICAgICAgICBjdHgtPnR3b3Bhc3Nfc3RhdHMuc3ogPSAwOwogICAgICAgICAgICAg cmV0dXJuIHJldDsKQEAgLTE0MjMsNyArMTQyMyw3IEBAIHN0YXRpYyBpbnQgcXVldWVfZnJhbWVz KEFWQ29kZWNDb250ZXh0ICphdmN0eCwgc3RydWN0IHZweF9jb2RlY19jdHggKmVuY29kZXIsCiAK ICAgICAgICAgICAgICAgICBpZiAoIWN4X2ZyYW1lLT5idWYpIHsKICAgICAgICAgICAgICAgICAg ICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAiRGF0YSBidWZmZXIgYWxsb2MgKCUiU0laRV9TUEVDSUZJRVIiIGJ5dGVzKSBmYWlsZWRcbiIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGF0YSBidWZmZXIgYWxsb2MgKCV6dSBieXRl cykgZmFpbGVkXG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3hfZnJhbWUtPnN6KTsK ICAgICAgICAgICAgICAgICAgICAgYXZfZnJlZXAoJmN4X2ZyYW1lKTsKICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvbWpw ZWdkZWMuYyBiL2xpYmF2Y29kZWMvbWpwZWdkZWMuYwppbmRleCBmYjM5YzRlOWZkLi40ZDdjZGZk ZTEyIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL21qcGVnZGVjLmMKKysrIGIvbGliYXZjb2RlYy9t anBlZ2RlYy5jCkBAIC0yMjgxLDcgKzIyODEsNyBAQCBpbnQgZmZfbWpwZWdfZmluZF9tYXJrZXIo TUpwZWdEZWNvZGVDb250ZXh0ICpzLAogICAgICAgICBtZW1zZXQocy0+YnVmZmVyICsgKnVuZXNj YXBlZF9idWZfc2l6ZSwgMCwKICAgICAgICAgICAgICAgIEFWX0lOUFVUX0JVRkZFUl9QQURESU5H X1NJWkUpOwogCi0gICAgICAgIGF2X2xvZyhzLT5hdmN0eCwgQVZfTE9HX0RFQlVHLCAiZXNjYXBp bmcgcmVtb3ZlZCAlIlBUUkRJRkZfU1BFQ0lGSUVSIiBieXRlc1xuIiwKKyAgICAgICAgYXZfbG9n KHMtPmF2Y3R4LCBBVl9MT0dfREVCVUcsICJlc2NhcGluZyByZW1vdmVkICV0ZCBieXRlc1xuIiwK ICAgICAgICAgICAgICAgIChidWZfZW5kIC0gKmJ1Zl9wdHIpIC0gKGRzdCAtIHMtPmJ1ZmZlcikp OwogICAgIH0gZWxzZSBpZiAoc3RhcnRfY29kZSA9PSBTT1MgJiYgcy0+bHMpIHsKICAgICAgICAg Y29uc3QgdWludDhfdCAqc3JjID0gKmJ1Zl9wdHI7CkBAIC0yMzg5LDcgKzIzODksNyBAQCByZWRv X2Zvcl9wYWw4OgogICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvZGUsIHVuZXNjYXBlZF9idWZf c2l6ZSwgYnVmX3NpemUpOwogICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7 CiAgICAgICAgIH0KLSAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfREVCVUcsICJtYXJrZXI9 JXggYXZhaWxfc2l6ZV9pbl9idWY9JSJQVFJESUZGX1NQRUNJRklFUiJcbiIsCisgICAgICAgIGF2 X2xvZyhhdmN0eCwgQVZfTE9HX0RFQlVHLCAibWFya2VyPSV4IGF2YWlsX3NpemVfaW5fYnVmPSV0 ZFxuIiwKICAgICAgICAgICAgICAgIHN0YXJ0X2NvZGUsIGJ1Zl9lbmQgLSBidWZfcHRyKTsKIAog ICAgICAgICByZXQgPSBpbml0X2dldF9iaXRzOCgmcy0+Z2IsIHVuZXNjYXBlZF9idWZfcHRyLCB1 bmVzY2FwZWRfYnVmX3NpemUpOwpAQCAtMjg1OSw3ICsyODU5LDcgQEAgdGhlX2VuZDoKICAgICB9 CiAKIHRoZV9lbmRfbm9fcGljdHVyZToKLSAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19ERUJVRywg ImRlY29kZSBmcmFtZSB1bnVzZWQgJSJQVFJESUZGX1NQRUNJRklFUiIgYnl0ZXNcbiIsCisgICAg YXZfbG9nKGF2Y3R4LCBBVl9MT0dfREVCVUcsICJkZWNvZGUgZnJhbWUgdW51c2VkICV0ZCBieXRl c1xuIiwKICAgICAgICAgICAgYnVmX2VuZCAtIGJ1Zl9wdHIpOwogICAgIHJldHVybiBidWZfcHRy IC0gYnVmOwogfQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9tanBlZ2VuY19jb21tb24uYyBiL2xp YmF2Y29kZWMvbWpwZWdlbmNfY29tbW9uLmMKaW5kZXggMjFiM2IxOWI5My4uNWVmZmJkYmMzMiAx MDA2NDQKLS0tIGEvbGliYXZjb2RlYy9tanBlZ2VuY19jb21tb24uYworKysgYi9saWJhdmNvZGVj L21qcGVnZW5jX2NvbW1vbi5jCkBAIC0xNDUsNyArMTQ1LDcgQEAgaW50IGZmX21qcGVnX2FkZF9p Y2NfcHJvZmlsZV9zaXplKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgY29uc3QgQVZGcmFtZSAqZnJh bWUsCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKHNkLT5zaXplID4gSUNDX01BWF9DSFVO S1MgKiBJQ0NfQ0hVTktfU0laRSkgewotICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJP UiwgIkNhbm5vdCBzdG9yZSAlIlNJWkVfU1BFQ0lGSUVSIiBieXRlIElDQyAiCisgICAgICAgIGF2 X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiQ2Fubm90IHN0b3JlICV6dSBieXRlIElDQyAiCiAg ICAgICAgICAgICAgICAicHJvZmlsZTogdG9vIGxhcmdlIGZvciBKUEVHXG4iLAogICAgICAgICAg ICAgICAgc2QtPnNpemUpOwogICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKZGlm ZiAtLWdpdCBhL2xpYmF2Y29kZWMvbXBlZzEyZGVjLmMgYi9saWJhdmNvZGVjL21wZWcxMmRlYy5j CmluZGV4IDFjYWE4Mjc5YmQuLjRjODNiY2ZhOTAgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvbXBl ZzEyZGVjLmMKKysrIGIvbGliYXZjb2RlYy9tcGVnMTJkZWMuYwpAQCAtMjI2OSw3ICsyMjY5LDcg QEAgc3RhdGljIGludCBkZWNvZGVfY2h1bmtzKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFt ZSAqcGljdHVyZSwKICAgICAgICAgaW5wdXRfc2l6ZSA9IGJ1Zl9lbmQgLSBidWZfcHRyOwogCiAg ICAgICAgIGlmIChhdmN0eC0+ZGVidWcgJiBGRl9ERUJVR19TVEFSVENPREUpCi0gICAgICAgICAg ICBhdl9sb2coYXZjdHgsIEFWX0xPR19ERUJVRywgIiUzIlBSSVgzMiIgYXQgJSJQVFJESUZGX1NQ RUNJRklFUiIgbGVmdCAlZFxuIiwKKyAgICAgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0RF QlVHLCAiJTMiUFJJWDMyIiBhdCAldGQgbGVmdCAlZFxuIiwKICAgICAgICAgICAgICAgICAgICBz dGFydF9jb2RlLCBidWZfcHRyIC0gYnVmLCBpbnB1dF9zaXplKTsKIAogICAgICAgICAvKiBwcmVw YXJlIGRhdGEgZm9yIG5leHQgc3RhcnQgY29kZSAqLwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9t cGVnMTJlbmMuYyBiL2xpYmF2Y29kZWMvbXBlZzEyZW5jLmMKaW5kZXggNGI5ZDE4NjM5Ni4uM2Jh YWRiY2ZlYiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9tcGVnMTJlbmMuYworKysgYi9saWJhdmNv ZGVjL21wZWcxMmVuYy5jCkBAIC00ODEsNyArNDgxLDcgQEAgc3RhdGljIGludCBtcGVnMV9lbmNv ZGVfcGljdHVyZV9oZWFkZXIoTVBWTWFpbkVuY0NvbnRleHQgKmNvbnN0IG0pCiAgICAgICAgICAg ICAgICAgcHV0X2JpdHMoJnMtPnBiLCA4LCAweGZmKTsgICAgICAgICAgICAgICAgICAvLyBtYXJr ZXJfYml0cwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBhdl9sb2cocy0+ Yy5hdmN0eCwgQVZfTE9HX1dBUk5JTkcsCi0gICAgICAgICAgICAgICAgICAgICJDbG9zZWQgQ2Fw dGlvbiBzaXplICglIlNJWkVfU1BFQ0lGSUVSIikgY2FuIG5vdCBleGNlZWQgIgorICAgICAgICAg ICAgICAgICAgICAiQ2xvc2VkIENhcHRpb24gc2l6ZSAoJXp1KSBjYW4gbm90IGV4Y2VlZCAiCiAg ICAgICAgICAgICAgICAgICAgICI5MyBieXRlcyBhbmQgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDNc biIsIHNpZGVfZGF0YS0+c2l6ZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMvbXBlZ3BpY3R1cmUuYyBiL2xpYmF2Y29kZWMvbXBlZ3BpY3R1cmUuYwpp bmRleCA2ZTk2Mzg5YzM0Li4zZjMyZmU4NzczIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL21wZWdw aWN0dXJlLmMKKysrIGIvbGliYXZjb2RlYy9tcGVncGljdHVyZS5jCkBAIC0xODYsNyArMTg2LDcg QEAgaW50IGZmX21wdl9waWNfY2hlY2tfbGluZXNpemUodm9pZCAqbG9nY3R4LCBjb25zdCBBVkZy YW1lICpmLAogICAgIGlmICgobGluZXNpemUgICAmJiAgIGxpbmVzaXplICE9IGYtPmxpbmVzaXpl WzBdKSB8fAogICAgICAgICAodXZsaW5lc2l6ZSAmJiB1dmxpbmVzaXplICE9IGYtPmxpbmVzaXpl WzFdKSkgewogICAgICAgICBhdl9sb2cobG9nY3R4LCBBVl9MT0dfRVJST1IsICJTdHJpZGUgY2hh bmdlIHVuc3VwcG9ydGVkOiAiCi0gICAgICAgICAgICAgICAibGluZXNpemU9JSJQVFJESUZGX1NQ RUNJRklFUiIvJWQgdXZsaW5lc2l6ZT0lIlBUUkRJRkZfU1BFQ0lGSUVSIi8lZClcbiIsCisgICAg ICAgICAgICAgICAibGluZXNpemU9JXRkLyVkIHV2bGluZXNpemU9JXRkLyVkKVxuIiwKICAgICAg ICAgICAgICAgIGxpbmVzaXplLCAgIGYtPmxpbmVzaXplWzBdLAogICAgICAgICAgICAgICAgdXZs aW5lc2l6ZSwgZi0+bGluZXNpemVbMV0pOwogICAgICAgICByZXR1cm4gQVZFUlJPUl9QQVRDSFdF TENPTUU7CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL21wZWd2aWRlb19lbmMuYyBiL2xpYmF2Y29k ZWMvbXBlZ3ZpZGVvX2VuYy5jCmluZGV4IGUxZjk2MjNkNjUuLmE0Zjc4YzI1ZGIgMTAwNjQ0Ci0t LSBhL2xpYmF2Y29kZWMvbXBlZ3ZpZGVvX2VuYy5jCisrKyBiL2xpYmF2Y29kZWMvbXBlZ3ZpZGVv X2VuYy5jCkBAIC0xMzY1LDcgKzEzNjUsNyBAQCBzdGF0aWMgaW50IGxvYWRfaW5wdXRfcGljdHVy ZShNUFZNYWluRW5jQ29udGV4dCAqY29uc3QgbSwgY29uc3QgQVZGcmFtZSAqcGljX2FyZwogICAg ICAgICBpZiAocy0+Yy5saW5lc2l6ZSAmIChTVFJJREVfQUxJR04tMSkpCiAgICAgICAgICAgICBk aXJlY3QgPSAwOwogCi0gICAgICAgIGZmX2Rsb2cocy0+Yy5hdmN0eCwgIiVkICVkICUiUFRSRElG Rl9TUEVDSUZJRVIiICUiUFRSRElGRl9TUEVDSUZJRVIiXG4iLCBwaWNfYXJnLT5saW5lc2l6ZVsw XSwKKyAgICAgICAgZmZfZGxvZyhzLT5jLmF2Y3R4LCAiJWQgJWQgJXRkICV0ZFxuIiwgcGljX2Fy Zy0+bGluZXNpemVbMF0sCiAgICAgICAgICAgICAgICAgcGljX2FyZy0+bGluZXNpemVbMV0sIHMt PmMubGluZXNpemUsIHMtPmMudXZsaW5lc2l6ZSk7CiAKICAgICAgICAgcGljID0gYXZfcmVmc3Ry dWN0X3Bvb2xfZ2V0KHMtPmMucGljdHVyZV9wb29sKTsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMv bXNjYy5jIGIvbGliYXZjb2RlYy9tc2NjLmMKaW5kZXggNzA4ZTg0YThlMS4uYmE0OGZjMDhkOSAx MDA2NDQKLS0tIGEvbGliYXZjb2RlYy9tc2NjLmMKKysrIGIvbGliYXZjb2RlYy9tc2NjLmMKQEAg LTE4OCw3ICsxODgsNyBAQCBpbmZsYXRlX2Vycm9yOgogICAgICAgICAgICAgICAgIHMtPnBhbFtq XSA9IDB4RkYwMDAwMDAgfCBBVl9STDMyKHBhbCArIGogKiA0KTsKICAgICAgICAgfSBlbHNlIGlm IChwYWwpIHsKICAgICAgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLAotICAgICAg ICAgICAgICAgICAgICJQYWxldHRlIHNpemUgJSJTSVpFX1NQRUNJRklFUiIgaXMgd3JvbmdcbiIs IHNpemUpOworICAgICAgICAgICAgICAgICAgICJQYWxldHRlIHNpemUgJXp1IGlzIHdyb25nXG4i LCBzaXplKTsKICAgICAgICAgfQogICAgICAgICBtZW1jcHkoZnJhbWUtPmRhdGFbMV0sIHMtPnBh bCwgQVZQQUxFVFRFX1NJWkUpOwogICAgIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnVsa2Fu X2F2MS5jIGIvbGliYXZjb2RlYy92dWxrYW5fYXYxLmMKaW5kZXggNzg4ZTNjY2E3OC4uM2E1MmQx ZjMzYSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy92dWxrYW5fYXYxLmMKKysrIGIvbGliYXZjb2Rl Yy92dWxrYW5fYXYxLmMKQEAgLTYzNCw3ICs2MzQsNyBAQCBzdGF0aWMgaW50IHZrX2F2MV9lbmRf ZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogICAgICAgICByYXZbaV0gPSBhcC0+cmVmX3Ny Y1tpXS0+ZjsKICAgICB9CiAKLSAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19ERUJVRywgIkRlY29k aW5nIGZyYW1lLCAlIlNJWkVfU1BFQ0lGSUVSIiBieXRlcywgJWkgdGlsZXNcbiIsCisgICAgYXZf bG9nKGF2Y3R4LCBBVl9MT0dfREVCVUcsICJEZWNvZGluZyBmcmFtZSwgJXp1IGJ5dGVzLCAlaSB0 aWxlc1xuIiwKICAgICAgICAgICAgdnAtPnNsaWNlc19zaXplLCBhcC0+YXYxX3BpY19pbmZvLnRp bGVDb3VudCk7CiAKICAgICByZXR1cm4gZmZfdmtfZGVjb2RlX2ZyYW1lKGF2Y3R4LCBwaWMtPmYs IHZwLCByYXYsIHJ2cCk7CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z1bGthbl9lbmNvZGVfYXYx LmMgYi9saWJhdmNvZGVjL3Z1bGthbl9lbmNvZGVfYXYxLmMKaW5kZXggNDJiYTMwYjMwMi4uYzI4 MGYzN2E5MSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy92dWxrYW5fZW5jb2RlX2F2MS5jCisrKyBi L2xpYmF2Y29kZWMvdnVsa2FuX2VuY29kZV9hdjEuYwpAQCAtMTAyMSw3ICsxMDIxLDcgQEAgc3Rh dGljIGludCBpbml0X2Jhc2VfdW5pdHMoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogICAgICAgICBp ZiAoIWRhdGEpCiAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwogICAgIH0gZWxz ZSB7Ci0gICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiVW5hYmxlIHRvIGdldCBm ZWVkYmFjayBmb3IgQVYxIHNlcXVlbmNlIGhlYWRlciA9ICUiU0laRV9TUEVDSUZJRVIiXG4iLAor ICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIlVuYWJsZSB0byBnZXQgZmVlZGJh Y2sgZm9yIEFWMSBzZXF1ZW5jZSBoZWFkZXIgPSAlenVcbiIsCiAgICAgICAgICAgICAgICBkYXRh X3NpemUpOwogICAgICAgICByZXR1cm4gZXJyOwogICAgIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29k ZWMvdnVsa2FuX2VuY29kZV9oMjY0LmMgYi9saWJhdmNvZGVjL3Z1bGthbl9lbmNvZGVfaDI2NC5j CmluZGV4IDk0MmU5MTFmYjcuLjAzMjdjY2JhMGIgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdnVs a2FuX2VuY29kZV9oMjY0LmMKKysrIGIvbGliYXZjb2RlYy92dWxrYW5fZW5jb2RlX2gyNjQuYwpA QCAtMTE0Nyw3ICsxMTQ3LDcgQEAgc3RhdGljIGludCBpbml0X2Jhc2VfdW5pdHMoQVZDb2RlY0Nv bnRleHQgKmF2Y3R4KQogICAgICAgICBpZiAoIWRhdGEpCiAgICAgICAgICAgICByZXR1cm4gQVZF UlJPUihFTk9NRU0pOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9H X0VSUk9SLCAiVW5hYmxlIHRvIGdldCBmZWVkYmFjayBmb3IgSC4yNjQgdW5pdHMgPSAlIlNJWkVf U1BFQ0lGSUVSIlxuIiwgZGF0YV9zaXplKTsKKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0df RVJST1IsICJVbmFibGUgdG8gZ2V0IGZlZWRiYWNrIGZvciBILjI2NCB1bml0cyA9ICV6dVxuIiwg ZGF0YV9zaXplKTsKICAgICAgICAgcmV0dXJuIGVycjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL2xp YmF2Y29kZWMvdnVsa2FuX2VuY29kZV9oMjY1LmMgYi9saWJhdmNvZGVjL3Z1bGthbl9lbmNvZGVf aDI2NS5jCmluZGV4IGMzMGI3ZThmOTMuLjljZDMzYWJmZTMgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29k ZWMvdnVsa2FuX2VuY29kZV9oMjY1LmMKKysrIGIvbGliYXZjb2RlYy92dWxrYW5fZW5jb2RlX2gy NjUuYwpAQCAtMTMxNiw3ICsxMzE2LDcgQEAgc3RhdGljIGludCBpbml0X2Jhc2VfdW5pdHMoQVZD b2RlY0NvbnRleHQgKmF2Y3R4KQogICAgICAgICBpZiAoIWRhdGEpCiAgICAgICAgICAgICByZXR1 cm4gQVZFUlJPUihFTk9NRU0pOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGF2X2xvZyhhdmN0eCwg QVZfTE9HX0VSUk9SLCAiVW5hYmxlIHRvIGdldCBmZWVkYmFjayBmb3IgSC4yNjUgdW5pdHMgPSAl IlNJWkVfU1BFQ0lGSUVSIlxuIiwgZGF0YV9zaXplKTsKKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBB Vl9MT0dfRVJST1IsICJVbmFibGUgdG8gZ2V0IGZlZWRiYWNrIGZvciBILjI2NSB1bml0cyA9ICV6 dVxuIiwgZGF0YV9zaXplKTsKICAgICAgICAgcmV0dXJuIGVycjsKICAgICB9CiAKZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMvdnVsa2FuX2gyNjQuYyBiL2xpYmF2Y29kZWMvdnVsa2FuX2gyNjQuYwpp bmRleCBiY2M1Yzk5YjRiLi44MjkzZjdlY2U5IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Z1bGth bl9oMjY0LmMKKysrIGIvbGliYXZjb2RlYy92dWxrYW5faDI2NC5jCkBAIC01NTYsNyArNTU2LDcg QEAgc3RhdGljIGludCB2a19oMjY0X2VuZF9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgpCiAg ICAgICAgIHJhdltpXSA9IGhwLT5yZWZfc3JjW2ldLT5mOwogICAgIH0KIAotICAgIGF2X2xvZyhh dmN0eCwgQVZfTE9HX0RFQlVHLCAiRGVjb2RpbmcgZnJhbWUsICUiU0laRV9TUEVDSUZJRVIiIGJ5 dGVzLCAlaSBzbGljZXNcbiIsCisgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfREVCVUcsICJEZWNv ZGluZyBmcmFtZSwgJXp1IGJ5dGVzLCAlaSBzbGljZXNcbiIsCiAgICAgICAgICAgIHZwLT5zbGlj ZXNfc2l6ZSwgaHAtPmgyNjRfcGljX2luZm8uc2xpY2VDb3VudCk7CiAKICAgICByZXR1cm4gZmZf dmtfZGVjb2RlX2ZyYW1lKGF2Y3R4LCBwaWMtPmYsIHZwLCByYXYsIHJ2cCk7CmRpZmYgLS1naXQg YS9saWJhdmNvZGVjL3Z1bGthbl9oZXZjLmMgYi9saWJhdmNvZGVjL3Z1bGthbl9oZXZjLmMKaW5k ZXggNWUxNWM2YjkzMS4uZjYwOWM0MzAxZiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy92dWxrYW5f aGV2Yy5jCisrKyBiL2xpYmF2Y29kZWMvdnVsa2FuX2hldmMuYwpAQCAtOTIxLDcgKzkyMSw3IEBA IHN0YXRpYyBpbnQgdmtfaGV2Y19lbmRfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogICAg ICAgICBydnBbaV0gPSAmcmZocC0+dnA7CiAgICAgfQogCi0gICAgYXZfbG9nKGF2Y3R4LCBBVl9M T0dfREVCVUcsICJEZWNvZGluZyBmcmFtZSwgJSJTSVpFX1NQRUNJRklFUiIgYnl0ZXMsICVpIHNs aWNlc1xuIiwKKyAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19ERUJVRywgIkRlY29kaW5nIGZyYW1l LCAlenUgYnl0ZXMsICVpIHNsaWNlc1xuIiwKICAgICAgICAgICAgdnAtPnNsaWNlc19zaXplLCBo cC0+aDI2NV9waWNfaW5mby5zbGljZVNlZ21lbnRDb3VudCk7CiAKICAgICByZXR1cm4gZmZfdmtf ZGVjb2RlX2ZyYW1lKGF2Y3R4LCBwaWMtPmYsIHZwLCByYXYsIHJ2cCk7CmRpZmYgLS1naXQgYS9s aWJhdmNvZGVjL3Z1bGthbl92cDkuYyBiL2xpYmF2Y29kZWMvdnVsa2FuX3ZwOS5jCmluZGV4IDdi ODUyYTI5YTUuLjViNTkyYzE0NDMgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdnVsa2FuX3ZwOS5j CisrKyBiL2xpYmF2Y29kZWMvdnVsa2FuX3ZwOS5jCkBAIC0zMzYsNyArMzM2LDcgQEAgc3RhdGlj IGludCB2a192cDlfZW5kX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCkKICAgICAgICAgcmF2 W2ldID0gYXAtPnJlZl9zcmNbaV0tPnRmLmY7CiAgICAgfQogCi0gICAgYXZfbG9nKGF2Y3R4LCBB Vl9MT0dfVkVSQk9TRSwgIkRlY29kaW5nIGZyYW1lLCAlIlNJWkVfU1BFQ0lGSUVSIiBieXRlc1xu IiwKKyAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19WRVJCT1NFLCAiRGVjb2RpbmcgZnJhbWUsICV6 dSBieXRlc1xuIiwKICAgICAgICAgICAgdnAtPnNsaWNlc19zaXplKTsKIAogICAgIHJldHVybiBm Zl92a19kZWNvZGVfZnJhbWUoYXZjdHgsIHBpYy0+dGYuZiwgdnAsIHJhdiwgcnZwKTsKZGlmZiAt LWdpdCBhL2xpYmF2Y29kZWMvem1idi5jIGIvbGliYXZjb2RlYy96bWJ2LmMKaW5kZXggMmMwOWNj YmQ3My4uZjBiZmZkODk2NiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy96bWJ2LmMKKysrIGIvbGli YXZjb2RlYy96bWJ2LmMKQEAgLTE1MCw3ICsxNTAsNyBAQCBzdGF0aWMgaW50IHptYnZfZGVjb2Rl X3hvcl84KFptYnZDb250ZXh0ICpjKQogICAgICAgICBwcmV2ICs9IGMtPndpZHRoICogYy0+Ymg7 CiAgICAgfQogICAgIGlmIChzcmMgLSBjLT5kZWNvbXBfYnVmICE9IGMtPmRlY29tcF9sZW4pCi0g ICAgICAgIGF2X2xvZyhjLT5hdmN0eCwgQVZfTE9HX0VSUk9SLCAiVXNlZCAlIlBUUkRJRkZfU1BF Q0lGSUVSIiBvZiAlaSBieXRlc1xuIiwKKyAgICAgICAgYXZfbG9nKGMtPmF2Y3R4LCBBVl9MT0df RVJST1IsICJVc2VkICV0ZCBvZiAlaSBieXRlc1xuIiwKICAgICAgICAgICAgICAgIHNyYy1jLT5k ZWNvbXBfYnVmLCBjLT5kZWNvbXBfbGVuKTsKICAgICByZXR1cm4gMDsKIH0KQEAgLTIyNiw3ICsy MjYsNyBAQCBzdGF0aWMgaW50IHptYnZfZGVjb2RlX3hvcl8xNihabWJ2Q29udGV4dCAqYykKICAg ICAgICAgcHJldiArPSBjLT53aWR0aCAqIGMtPmJoOwogICAgIH0KICAgICBpZiAoc3JjIC0gYy0+ ZGVjb21wX2J1ZiAhPSBjLT5kZWNvbXBfbGVuKQotICAgICAgICBhdl9sb2coYy0+YXZjdHgsIEFW X0xPR19FUlJPUiwgIlVzZWQgJSJQVFJESUZGX1NQRUNJRklFUiIgb2YgJWkgYnl0ZXNcbiIsCisg ICAgICAgIGF2X2xvZyhjLT5hdmN0eCwgQVZfTE9HX0VSUk9SLCAiVXNlZCAldGQgb2YgJWkgYnl0 ZXNcbiIsCiAgICAgICAgICAgICAgICBzcmMtYy0+ZGVjb21wX2J1ZiwgYy0+ZGVjb21wX2xlbik7 CiAgICAgcmV0dXJuIDA7CiB9CkBAIC0zMTEsNyArMzExLDcgQEAgc3RhdGljIGludCB6bWJ2X2Rl Y29kZV94b3JfMjQoWm1idkNvbnRleHQgKmMpCiAgICAgICAgIHByZXYgKz0gc3RyaWRlICogYy0+ Ymg7CiAgICAgfQogICAgIGlmIChzcmMgLSBjLT5kZWNvbXBfYnVmICE9IGMtPmRlY29tcF9sZW4p Ci0gICAgICAgIGF2X2xvZyhjLT5hdmN0eCwgQVZfTE9HX0VSUk9SLCAiVXNlZCAlIlBUUkRJRkZf U1BFQ0lGSUVSIiBvZiAlaSBieXRlc1xuIiwKKyAgICAgICAgYXZfbG9nKGMtPmF2Y3R4LCBBVl9M T0dfRVJST1IsICJVc2VkICV0ZCBvZiAlaSBieXRlc1xuIiwKICAgICAgICAgICAgICAgIHNyYy1j LT5kZWNvbXBfYnVmLCBjLT5kZWNvbXBfbGVuKTsKICAgICByZXR1cm4gMDsKIH0KQEAgLTM4OCw3 ICszODgsNyBAQCBzdGF0aWMgaW50IHptYnZfZGVjb2RlX3hvcl8zMihabWJ2Q29udGV4dCAqYykK ICAgICAgICAgcHJldiAgICs9IGMtPndpZHRoICogYy0+Ymg7CiAgICAgfQogICAgIGlmIChzcmMg LSBjLT5kZWNvbXBfYnVmICE9IGMtPmRlY29tcF9sZW4pCi0gICAgICAgIGF2X2xvZyhjLT5hdmN0 eCwgQVZfTE9HX0VSUk9SLCAiVXNlZCAlIlBUUkRJRkZfU1BFQ0lGSUVSIiBvZiAlaSBieXRlc1xu IiwKKyAgICAgICAgYXZfbG9nKGMtPmF2Y3R4LCBBVl9MT0dfRVJST1IsICJVc2VkICV0ZCBvZiAl aSBieXRlc1xuIiwKICAgICAgICAgICAgICAgIHNyYy1jLT5kZWNvbXBfYnVmLCBjLT5kZWNvbXBf bGVuKTsKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL2FmX2FzaG93 aW5mby5jIGIvbGliYXZmaWx0ZXIvYWZfYXNob3dpbmZvLmMKaW5kZXggNTdmMWViZjUzNS4uZWJj ZDVjOTk2ZiAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvYWZfYXNob3dpbmZvLmMKKysrIGIvbGli YXZmaWx0ZXIvYWZfYXNob3dpbmZvLmMKQEAgLTE2OCw3ICsxNjgsNyBAQCBzdGF0aWMgdm9pZCBk dW1wX2F1ZGlvX3NlcnZpY2VfdHlwZShBVkZpbHRlckNvbnRleHQgKmN0eCwgQVZGcmFtZVNpZGVE YXRhICpzZCkKIHN0YXRpYyB2b2lkIGR1bXBfdW5rbm93bihBVkZpbHRlckNvbnRleHQgKmN0eCwg QVZGcmFtZVNpZGVEYXRhICpzZCkKIHsKICAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5GTywgInVu a25vd24gc2lkZSBkYXRhIHR5cGU6ICVkLCBzaXplICIKLSAgICAgICAgICAgIiUiU0laRV9TUEVD SUZJRVIiIGJ5dGVzIiwgc2QtPnR5cGUsIHNkLT5zaXplKTsKKyAgICAgICAgICAgIiV6dSBieXRl cyIsIHNkLT50eXBlLCBzZC0+c2l6ZSk7CiB9CiAKIHN0YXRpYyBpbnQgZmlsdGVyX2ZyYW1lKEFW RmlsdGVyTGluayAqaW5saW5rLCBBVkZyYW1lICpidWYpCmRpZmYgLS1naXQgYS9saWJhdmZpbHRl ci9mX2dyYXBobW9uaXRvci5jIGIvbGliYXZmaWx0ZXIvZl9ncmFwaG1vbml0b3IuYwppbmRleCAy MGNkY2NlNzlkLi45NWMzNDU5M2QyIDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci9mX2dyYXBobW9u aXRvci5jCisrKyBiL2xpYmF2ZmlsdGVyL2ZfZ3JhcGhtb25pdG9yLmMKQEAgLTMwNCw3ICszMDQs NyBAQCBzdGF0aWMgaW50IGRyYXdfaXRlbXMoQVZGaWx0ZXJDb250ZXh0ICpjdHgsCiAgICAgICAg IGxlbiA9IHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciktMSwgIiB8IHF1ZXVlOiAiKTsK ICAgICAgICAgZHJhd3RleHQob3V0LCB4cG9zLCB5cG9zLCBidWZmZXIsIGxlbiwgcy0+d2hpdGUp OwogICAgICAgICB4cG9zICs9IGxlbiAqIDg7Ci0gICAgICAgIGxlbiA9IHNucHJpbnRmKGJ1ZmZl ciwgc2l6ZW9mKGJ1ZmZlciktMSwgIiUiU0laRV9TUEVDSUZJRVIsIGZyYW1lcyk7CisgICAgICAg IGxlbiA9IHNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciktMSwgIiV6dSIsIGZyYW1lcyk7 CiAgICAgICAgIGRyYXd0ZXh0KG91dCwgeHBvcywgeXBvcywgYnVmZmVyLCBsZW4sIGZyYW1lcyA+ IDAgPyBmcmFtZXMgPj0gMTAgPyBmcmFtZXMgPj0gNTAgPyBzLT5yZWQgOiBzLT55ZWxsb3cgOiBz LT5ncmVlbiA6IHMtPndoaXRlKTsKICAgICAgICAgeHBvcyArPSBsZW4gKiA4OwogICAgIH0KZGlm ZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2F2Z2JsdXJfb3BlbmNsLmMgYi9saWJhdmZpbHRlci92 Zl9hdmdibHVyX29wZW5jbC5jCmluZGV4IDc5MGE1MWVhODAuLjJiZDdhODk5ZDUgMTAwNjQ0Ci0t LSBhL2xpYmF2ZmlsdGVyL3ZmX2F2Z2JsdXJfb3BlbmNsLmMKKysrIGIvbGliYXZmaWx0ZXIvdmZf YXZnYmx1cl9vcGVuY2wuYwpAQCAtMjIyLDcgKzIyMiw3IEBAIHN0YXRpYyBpbnQgYXZnYmx1cl9v cGVuY2xfZmlsdGVyX2ZyYW1lKEFWRmlsdGVyTGluayAqaW5saW5rLCBBVkZyYW1lICppbnB1dCkK ICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7CiAKICAgICAgICAgICAgIGF2X2xvZyhhdmN0eCwg QVZfTE9HX0RFQlVHLCAiUnVuIGtlcm5lbCBvbiBwbGFuZSAlZCAiCi0gICAgICAgICAgICAgICAg ICAgIiglIlNJWkVfU1BFQ0lGSUVSInglIlNJWkVfU1BFQ0lGSUVSIikuXG4iLAorICAgICAgICAg ICAgICAgICAgICIoJXp1eCV6dSkuXG4iLAogICAgICAgICAgICAgICAgICAgIHAsIGdsb2JhbF93 b3JrWzBdLCBnbG9iYWxfd29ya1sxXSk7CiAKICAgICAgICAgICAgIGNsZSA9IGNsRW5xdWV1ZU5E UmFuZ2VLZXJuZWwoY3R4LT5jb21tYW5kX3F1ZXVlLCBjdHgtPmtlcm5lbF9ob3JpeiwgMiwgTlVM TCwKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2NvbnZvbHV0aW9uX29wZW5jbC5jIGIvbGli YXZmaWx0ZXIvdmZfY29udm9sdXRpb25fb3BlbmNsLmMKaW5kZXggYzg2NjAyMmExMi4uOTllZjE4 NjAzOCAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvdmZfY29udm9sdXRpb25fb3BlbmNsLmMKKysr IGIvbGliYXZmaWx0ZXIvdmZfY29udm9sdXRpb25fb3BlbmNsLmMKQEAgLTIzNSw3ICsyMzUsNyBA QCBzdGF0aWMgaW50IGNvbnZvbHV0aW9uX29wZW5jbF9maWx0ZXJfZnJhbWUoQVZGaWx0ZXJMaW5r ICppbmxpbmssIEFWRnJhbWUgKmlucHV0KQogICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKIAog ICAgICAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfREVCVUcsICJSdW4ga2VybmVsIG9uIHBs YW5lICVkICIKLSAgICAgICAgICAgICAgICAgICAiKCUiU0laRV9TUEVDSUZJRVIieCUiU0laRV9T UEVDSUZJRVIiKS5cbiIsCisgICAgICAgICAgICAgICAgICAgIiglenV4JXp1KS5cbiIsCiAgICAg ICAgICAgICAgICAgICAgcCwgZ2xvYmFsX3dvcmtbMF0sIGdsb2JhbF93b3JrWzFdKTsKIAogICAg ICAgICAgICAgY2xlID0gY2xFbnF1ZXVlTkRSYW5nZUtlcm5lbChjdHgtPmNvbW1hbmRfcXVldWUs IGN0eC0+a2VybmVsLCAyLCBOVUxMLApAQCAtMjY0LDcgKzI2NCw3IEBAIHN0YXRpYyBpbnQgY29u dm9sdXRpb25fb3BlbmNsX2ZpbHRlcl9mcmFtZShBVkZpbHRlckxpbmsgKmlubGluaywgQVZGcmFt ZSAqaW5wdXQpCiAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKIAogICAgICAgICAgICAg ICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0RFQlVHLCAiUnVuIGtlcm5lbCBvbiBwbGFuZSAlZCAi Ci0gICAgICAgICAgICAgICAgICAgICAgICIoJSJTSVpFX1NQRUNJRklFUiJ4JSJTSVpFX1NQRUNJ RklFUiIpLlxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIiglenV4JXp1KS5cbiIsCiAgICAg ICAgICAgICAgICAgICAgICAgIHAsIGdsb2JhbF93b3JrWzBdLCBnbG9iYWxfd29ya1sxXSk7CiAK ICAgICAgICAgICAgICAgICBjbGUgPSBjbEVucXVldWVORFJhbmdlS2VybmVsKGN0eC0+Y29tbWFu ZF9xdWV1ZSwgY3R4LT5rZXJuZWwsIDIsIE5VTEwsCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92 Zl9sY2V2Yy5jIGIvbGliYXZmaWx0ZXIvdmZfbGNldmMuYwppbmRleCA2MGZhYjQxZmNiLi41NzVi YmQ3NWZhIDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci92Zl9sY2V2Yy5jCisrKyBiL2xpYmF2Zmls dGVyL3ZmX2xjZXZjLmMKQEAgLTExMCw3ICsxMTAsNyBAQCBzdGF0aWMgaW50IGFsbG9jX2Jhc2Vf ZnJhbWUoQVZGaWx0ZXJMaW5rICppbmxpbmssIGNvbnN0IEFWRnJhbWUgKmluLAogICAgIGRlc2Mu bWF0cml4Q29lZmZpY2llbnRzID0gKExDRVZDX01hdHJpeENvZWZmaWNpZW50cylpbi0+Y29sb3Jz cGFjZTsKICAgICBkZXNjLnRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzID0gKExDRVZDX1RyYW5zZmVy Q2hhcmFjdGVyaXN0aWNzKWluLT5jb2xvcl90cmM7CiAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0RF QlVHLCAiaW4gIFBUUyAlIlBSSWQ2NCIsICVkeCVkLCAiCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiJSJTSVpFX1NQRUNJRklFUiIvJSJTSVpFX1NQRUNJRklFUiIvJSJTSVpFX1NQRUNJ RklFUiIvJSJTSVpFX1NQRUNJRklFUiIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIlenUvJXp1LyV6dS8lenUsICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTQVIg JWQ6JWRcbiIsCiAgICAgICAgICAgIGluLT5wdHMsIGluLT53aWR0aCwgaW4tPmhlaWdodCwKICAg ICAgICAgICAgaW4tPmNyb3BfdG9wLCBpbi0+Y3JvcF9ib3R0b20sIGluLT5jcm9wX2xlZnQsIGlu LT5jcm9wX3JpZ2h0LApAQCAtMjM0LDcgKzIzNCw3IEBAIHN0YXRpYyBpbnQgZ2VuZXJhdGVfb3V0 cHV0KEFWRmlsdGVyTGluayAqaW5saW5rLCBBVkZyYW1lICpvdXQpCiAgICAgb3V0LT5oZWlnaHQg PSBvdXRsaW5rLT5oID0gZGVzYy5oZWlnaHQgKyBvdXQtPmNyb3BfdG9wICsgb3V0LT5jcm9wX2Jv dHRvbTsKIAogICAgIGF2X2xvZyhjdHgsIEFWX0xPR19ERUJVRywgIm91dCBQVFMgJSJQUklkNjQi LCAlZHglZCwgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiUiU0laRV9TUEVDSUZJ RVIiLyUiU0laRV9TUEVDSUZJRVIiLyUiU0laRV9TUEVDSUZJRVIiLyUiU0laRV9TUEVDSUZJRVIi LCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXp1LyV6dS8lenUvJXp1LCAiCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0FSICVkOiVkLCAiCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiaGFzRW5oYW5jZW1lbnQgJWQsIGVuaGFuY2VkICVkXG4iLAogICAg ICAgICAgICBvdXQtPnB0cywgb3V0LT53aWR0aCwgb3V0LT5oZWlnaHQsCmRpZmYgLS1naXQgYS9s aWJhdmZpbHRlci92Zl9uZWlnaGJvcl9vcGVuY2wuYyBiL2xpYmF2ZmlsdGVyL3ZmX25laWdoYm9y X29wZW5jbC5jCmluZGV4IDM4YTFiNzgyMWUuLjBiOGQ3ZmM5OTggMTAwNjQ0Ci0tLSBhL2xpYmF2 ZmlsdGVyL3ZmX25laWdoYm9yX29wZW5jbC5jCisrKyBiL2xpYmF2ZmlsdGVyL3ZmX25laWdoYm9y X29wZW5jbC5jCkBAIC0xODIsOCArMTgyLDcgQEAgc3RhdGljIGludCBuZWlnaGJvcl9vcGVuY2xf ZmlsdGVyX2ZyYW1lKEFWRmlsdGVyTGluayAqaW5saW5rLCBBVkZyYW1lICppbnB1dCkKICAgICAg ICAgICAgIGlmIChlcnIgPCAwKQogICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKIAotICAgICAg ICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfREVCVUcsICJSdW4ga2VybmVsIG9uIHBsYW5lICVk ICIKLSAgICAgICAgICAgICAgICAgICAiKCUiU0laRV9TUEVDSUZJRVIieCUiU0laRV9TUEVDSUZJ RVIiKS5cbiIsCisgICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19ERUJVRywgIlJ1biBr ZXJuZWwgb24gcGxhbmUgJWQgKCV6dXglenUpLlxuIiwKICAgICAgICAgICAgICAgICAgICBwLCBn bG9iYWxfd29ya1swXSwgZ2xvYmFsX3dvcmtbMV0pOwogCiAgICAgICAgICAgICBjbGUgPSBjbEVu cXVldWVORFJhbmdlS2VybmVsKGN0eC0+Y29tbWFuZF9xdWV1ZSwgY3R4LT5rZXJuZWwsIDIsIE5V TEwsCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92Zl9wcm9ncmFtX29wZW5jbC5jIGIvbGliYXZm aWx0ZXIvdmZfcHJvZ3JhbV9vcGVuY2wuYwppbmRleCBjMGMxMDA0NWRiLi4wYmI4YjZlOThmIDEw MDY0NAotLS0gYS9saWJhdmZpbHRlci92Zl9wcm9ncmFtX29wZW5jbC5jCisrKyBiL2xpYmF2Zmls dGVyL3ZmX3Byb2dyYW1fb3BlbmNsLmMKQEAgLTE0NSw4ICsxNDUsNyBAQCBzdGF0aWMgaW50IHBy b2dyYW1fb3BlbmNsX3J1bihBVkZpbHRlckNvbnRleHQgKmF2Y3R4KQogICAgICAgICBpZiAoZXJy IDwgMCkKICAgICAgICAgICAgIGdvdG8gZmFpbDsKIAotICAgICAgICBhdl9sb2coYXZjdHgsIEFW X0xPR19ERUJVRywgIlJ1biBrZXJuZWwgb24gcGxhbmUgJWQgIgotICAgICAgICAgICAgICAgIigl IlNJWkVfU1BFQ0lGSUVSInglIlNJWkVfU1BFQ0lGSUVSIikuXG4iLAorICAgICAgICBhdl9sb2co YXZjdHgsIEFWX0xPR19ERUJVRywgIlJ1biBrZXJuZWwgb24gcGxhbmUgJWQgKCV6dXglenUpLlxu IiwKICAgICAgICAgICAgICAgIHBsYW5lLCBnbG9iYWxfd29ya1swXSwgZ2xvYmFsX3dvcmtbMV0p OwogCiAgICAgICAgIGNsZSA9IGNsRW5xdWV1ZU5EUmFuZ2VLZXJuZWwoY3R4LT5jb21tYW5kX3F1 ZXVlLCBjdHgtPmtlcm5lbCwgMiwgTlVMTCwKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX3No b3dpbmZvLmMgYi9saWJhdmZpbHRlci92Zl9zaG93aW5mby5jCmluZGV4IGE4NWU4OTRhZTUuLjRh YzNkNDVkYzAgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3ZmX3Nob3dpbmZvLmMKKysrIGIvbGli YXZmaWx0ZXIvdmZfc2hvd2luZm8uYwpAQCAtODcsOCArODcsNyBAQCBzdGF0aWMgdm9pZCBkdW1w X3NwaGVyaWNhbChBVkZpbHRlckNvbnRleHQgKmN0eCwgQVZGcmFtZSAqZnJhbWUsIGNvbnN0IEFW RnJhbWVTaQogICAgICAgICBzaXplX3QgbCwgdCwgciwgYjsKICAgICAgICAgYXZfc3BoZXJpY2Fs X3RpbGVfYm91bmRzKHNwaGVyaWNhbCwgZnJhbWUtPndpZHRoLCBmcmFtZS0+aGVpZ2h0LAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmwsICZ0LCAmciwgJmIpOwotICAgICAgICBh dl9sb2coY3R4LCBBVl9MT0dfSU5GTywKLSAgICAgICAgICAgICAgICJbJSJTSVpFX1NQRUNJRklF UiIsICUiU0laRV9TUEVDSUZJRVIiLCAlIlNJWkVfU1BFQ0lGSUVSIiwgJSJTSVpFX1NQRUNJRklF UiJdICIsCisgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19JTkZPLCAiWyV6dSwgJXp1LCAlenUs ICV6dV0gIiwKICAgICAgICAgICAgICAgIGwsIHQsIHIsIGIpOwogICAgIH0gZWxzZSBpZiAoc3Bo ZXJpY2FsLT5wcm9qZWN0aW9uID09IEFWX1NQSEVSSUNBTF9DVUJFTUFQKSB7CiAgICAgICAgIGF2 X2xvZyhjdHgsIEFWX0xPR19JTkZPLCAiW3BhZCAlIlBSSXUzMiJdICIsIHNwaGVyaWNhbC0+cGFk ZGluZyk7CkBAIC00MjYsOCArNDI1LDggQEAgc3RhdGljIHZvaWQgZHVtcF9zZWlfdW5yZWdpc3Rl cmVkX21ldGFkYXRhKEFWRmlsdGVyQ29udGV4dCAqY3R4LCBjb25zdCBBVkZyYW1lU2kKICAgICBT aG93SW5mb0NvbnRleHQgKnMgPSBjdHgtPnByaXY7CiAKICAgICBpZiAoc2QtPnNpemUgPCBBVl9V VUlEX0xFTikgewotICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfRVJST1IsICJpbnZhbGlkIGRh dGEoJSJTSVpFX1NQRUNJRklFUiIgPCAiCi0gICAgICAgICAgICAgICAiVVVJRCglZC1ieXRlcykp XG4iLCBzZC0+c2l6ZSwgQVZfVVVJRF9MRU4pOworICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0df RVJST1IsICJpbnZhbGlkIGRhdGEgKCV6dSA8IFVVSUQoJWQtYnl0ZXMpKVxuIiwKKyAgICAgICAg ICAgICAgIHNkLT5zaXplLCBBVl9VVUlEX0xFTik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK QEAgLTg3NCwxMSArODczLDEwIEBAIHN0YXRpYyBpbnQgZmlsdGVyX2ZyYW1lKEFWRmlsdGVyTGlu ayAqaW5saW5rLCBBVkZyYW1lICpmcmFtZSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBk ZWZhdWx0OgogICAgICAgICAgICAgaWYgKG5hbWUpCi0gICAgICAgICAgICAgICAgYXZfbG9nKGN0 eCwgQVZfTE9HX0lORk8sCi0gICAgICAgICAgICAgICAgICAgICAgICIoJSJTSVpFX1NQRUNJRklF UiIgYnl0ZXMpIiwgc2QtPnNpemUpOworICAgICAgICAgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xP R19JTkZPLCAiKCV6dSBieXRlcykiLCBzZC0+c2l6ZSk7CiAgICAgICAgICAgICBlbHNlCiAgICAg ICAgICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX1dBUk5JTkcsICJ1bmtub3duIHNpZGUgZGF0 YSB0eXBlICVkICIKLSAgICAgICAgICAgICAgICAgICAgICAgIiglIlNJWkVfU1BFQ0lGSUVSIiBi eXRlcykiLCBzZC0+dHlwZSwgc2QtPnNpemUpOworICAgICAgICAgICAgICAgICAgICAgICAiKCV6 dSBieXRlcykiLCBzZC0+dHlwZSwgc2QtPnNpemUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg ICAgIH0KIApkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvdmZfdW5zaGFycF9vcGVuY2wuYyBiL2xp YmF2ZmlsdGVyL3ZmX3Vuc2hhcnBfb3BlbmNsLmMKaW5kZXggMTU4NTNlOGRiMy4uOGEwZGI3ZDk3 NSAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvdmZfdW5zaGFycF9vcGVuY2wuYworKysgYi9saWJh dmZpbHRlci92Zl91bnNoYXJwX29wZW5jbC5jCkBAIC0yNjksOCArMjY5LDcgQEAgc3RhdGljIGlu dCB1bnNoYXJwX29wZW5jbF9maWx0ZXJfZnJhbWUoQVZGaWx0ZXJMaW5rICppbmxpbmssIEFWRnJh bWUgKmlucHV0KQogICAgICAgICBsb2NhbF93b3JrWzBdICA9IDE2OwogICAgICAgICBsb2NhbF93 b3JrWzFdICA9IDE2OwogCi0gICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0RFQlVHLCAiUnVu IGtlcm5lbCBvbiBwbGFuZSAlZCAiCi0gICAgICAgICAgICAgICAiKCUiU0laRV9TUEVDSUZJRVIi eCUiU0laRV9TUEVDSUZJRVIiKS5cbiIsCisgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0RF QlVHLCAiUnVuIGtlcm5lbCBvbiBwbGFuZSAlZCAoJXp1eCV6dSkuXG4iLAogICAgICAgICAgICAg ICAgcCwgZ2xvYmFsX3dvcmtbMF0sIGdsb2JhbF93b3JrWzFdKTsKIAogICAgICAgICBjbGUgPSBj bEVucXVldWVORFJhbmdlS2VybmVsKGN0eC0+Y29tbWFuZF9xdWV1ZSwgY3R4LT5rZXJuZWwsIDIs IE5VTEwsCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9hcGUuYyBiL2xpYmF2Zm9ybWF0L2FwZS5j CmluZGV4IDdlNmJmMTI5NjEuLmQyZmQ2MjkwMmMgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L2Fw ZS5jCisrKyBiL2xpYmF2Zm9ybWF0L2FwZS5jCkBAIC0yNDcsNyArMjQ3LDcgQEAgc3RhdGljIGlu dCBhcGVfcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICogcykKICAgICB9CiAgICAgaWYgKGFw ZS0+c2Vla3RhYmxlbGVuZ3RoIC8gc2l6ZW9mKHVpbnQzMl90KSA8IGFwZS0+dG90YWxmcmFtZXMp IHsKICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwKLSAgICAgICAgICAgICAgICJOdW1i ZXIgb2Ygc2VlayBlbnRyaWVzIGlzIGxlc3MgdGhhbiBudW1iZXIgb2YgZnJhbWVzOiAlIlNJWkVf U1BFQ0lGSUVSIiB2cy4gJSJQUkl1MzIiXG4iLAorICAgICAgICAgICAgICAgIk51bWJlciBvZiBz ZWVrIGVudHJpZXMgaXMgbGVzcyB0aGFuIG51bWJlciBvZiBmcmFtZXM6ICV6dSB2cy4gJSJQUkl1 MzIiXG4iLAogICAgICAgICAgICAgICAgYXBlLT5zZWVrdGFibGVsZW5ndGggLyBzaXplb2YodWlu dDMyX3QpLCBhcGUtPnRvdGFsZnJhbWVzKTsKICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJ RERBVEE7CiAgICAgfQpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvZHVtcC5jIGIvbGliYXZmb3Jt YXQvZHVtcC5jCmluZGV4IDI5NDgxODk0MzIuLjczNGE2ZTBiYmYgMTAwNjQ0Ci0tLSBhL2xpYmF2 Zm9ybWF0L2R1bXAuYworKysgYi9saWJhdmZvcm1hdC9kdW1wLmMKQEAgLTQwMiw5ICs0MDIsNyBA QCBzdGF0aWMgdm9pZCBkdW1wX3NwaGVyaWNhbCh2b2lkICpjdHgsIGludCB3LCBpbnQgaCwKICAg ICAgICAgc2l6ZV90IGwsIHQsIHIsIGI7CiAgICAgICAgIGF2X3NwaGVyaWNhbF90aWxlX2JvdW5k cyhzcGhlcmljYWwsIHcsIGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbCwg JnQsICZyLCAmYik7Ci0gICAgICAgIGF2X2xvZyhjdHgsIGxvZ19sZXZlbCwKLSAgICAgICAgICAg ICAgICJbJSJTSVpFX1NQRUNJRklFUiIsICUiU0laRV9TUEVDSUZJRVIiLCAlIlNJWkVfU1BFQ0lG SUVSIiwgJSJTSVpFX1NQRUNJRklFUiJdICIsCi0gICAgICAgICAgICAgICBsLCB0LCByLCBiKTsK KyAgICAgICAgYXZfbG9nKGN0eCwgbG9nX2xldmVsLCAiWyV6dSwgJXp1LCAlenUsICV6dV0gIiwg bCwgdCwgciwgYik7CiAgICAgfSBlbHNlIGlmIChzcGhlcmljYWwtPnByb2plY3Rpb24gPT0gQVZf U1BIRVJJQ0FMX0NVQkVNQVApIHsKICAgICAgICAgYXZfbG9nKGN0eCwgbG9nX2xldmVsLCAiW3Bh ZCAlIlBSSXUzMiJdICIsIHNwaGVyaWNhbC0+cGFkZGluZyk7CiAgICAgfQpAQCAtNTM2LDExICs1 MzQsMTAgQEAgc3RhdGljIHZvaWQgZHVtcF9zaWRlZGF0YSh2b2lkICpjdHgsIGNvbnN0IEFWUGFj a2V0U2lkZURhdGEgKnNpZGVfZGF0YSwgaW50IG5iX3MKICAgICAgICAgICAgIGJyZWFrOwogICAg ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgaWYgKG5hbWUpCi0gICAgICAgICAgICAgICAgYXZf bG9nKGN0eCwgbG9nX2xldmVsLAotICAgICAgICAgICAgICAgICAgICAgICAiKCUiU0laRV9TUEVD SUZJRVIiIGJ5dGVzKSIsIHNkLT5zaXplKTsKKyAgICAgICAgICAgICAgICBhdl9sb2coY3R4LCBs b2dfbGV2ZWwsICIoJXp1IGJ5dGVzKSIsIHNkLT5zaXplKTsKICAgICAgICAgICAgIGVsc2UKICAg ICAgICAgICAgICAgICBhdl9sb2coY3R4LCBsb2dfbGV2ZWwsICJ1bmtub3duIHNpZGUgZGF0YSB0 eXBlICVkICIKLSAgICAgICAgICAgICAgICAgICAgICAgIiglIlNJWkVfU1BFQ0lGSUVSIiBieXRl cykiLCBzZC0+dHlwZSwgc2QtPnNpemUpOworICAgICAgICAgICAgICAgICAgICAgICAiKCV6dSBi eXRlcykiLCBzZC0+dHlwZSwgc2QtPnNpemUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg IH0KIApkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvZnJhbWVjcmNlbmMuYyBiL2xpYmF2Zm9ybWF0 L2ZyYW1lY3JjZW5jLmMKaW5kZXggOGMzNWEyMTIyYy4uMjVjNTkxMzJlOSAxMDA2NDQKLS0tIGEv bGliYXZmb3JtYXQvZnJhbWVjcmNlbmMuYworKysgYi9saWJhdmZvcm1hdC9mcmFtZWNyY2VuYy5j CkBAIC0xNzAsNyArMTcwLDcgQEAgc3RhdGljIGludCBmcmFtZWNyY193cml0ZV9wYWNrZXQoc3Ry dWN0IEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKICAgICAgICAgICAgICAgICBz aWRlX2RhdGFfY3JjID0gMDsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXZfc3RybGNh dGYoYnVmLCBzaXplb2YoYnVmKSwgIiwgJXMsICU4IlNJWkVfU1BFQ0lGSUVSIiwgMHglMDgiUFJJ eDMyLAorICAgICAgICAgICAgYXZfc3RybGNhdGYoYnVmLCBzaXplb2YoYnVmKSwgIiwgJXMsICU4 enUsIDB4JTA4IlBSSXgzMiwKICAgICAgICAgICAgICAgICAgICAgICAgIGF2X3BhY2tldF9zaWRl X2RhdGFfbmFtZShzZC0+dHlwZSksIHNkLT5zaXplLCBzaWRlX2RhdGFfY3JjKTsKICAgICAgICAg fQogICAgIH0KZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2hhc2hlbmMuYyBiL2xpYmF2Zm9ybWF0 L2hhc2hlbmMuYwppbmRleCBlNGUzMjQ0MjQ2Li5iMTA4ZWNhNDFiIDEwMDY0NAotLS0gYS9saWJh dmZvcm1hdC9oYXNoZW5jLmMKKysrIGIvbGliYXZmb3JtYXQvaGFzaGVuYy5jCkBAIC0zMDYsNyAr MzA2LDcgQEAgc3RhdGljIGludCBmcmFtZWhhc2hfd3JpdGVfcGFja2V0KHN0cnVjdCBBVkZvcm1h dENvbnRleHQgKnMsIEFWUGFja2V0ICpwa3QpCiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAg ICAgICAgICBhdl9oYXNoX3VwZGF0ZShjLT5oYXNoZXNbMF0sIHBrdC0+c2lkZV9kYXRhW2ldLmRh dGEsIHBrdC0+c2lkZV9kYXRhW2ldLnNpemUpOwogICAgICAgICAgICAgc25wcmludGYoYnVmLCBz aXplb2YoYnVmKSAtIChBVl9IQVNIX01BWF9TSVpFICogMiArIDEpLAotICAgICAgICAgICAgICAg ICAgICAgIiwgJTgiU0laRV9TUEVDSUZJRVIiLCAiLCBwa3QtPnNpZGVfZGF0YVtpXS5zaXplKTsK KyAgICAgICAgICAgICAgICAgICAgICIsICU4enUsICIsIHBrdC0+c2lkZV9kYXRhW2ldLnNpemUp OwogICAgICAgICAgICAgbGVuID0gc3RybGVuKGJ1Zik7CiAgICAgICAgICAgICBhdl9oYXNoX2Zp bmFsX2hleChjLT5oYXNoZXNbMF0sIGJ1ZiArIGxlbiwgc2l6ZW9mKGJ1ZikgLSBsZW4pOwogICAg ICAgICAgICAgYXZpb193cml0ZShzLT5wYiwgYnVmLCBzdHJsZW4oYnVmKSk7CmRpZmYgLS1naXQg YS9saWJhdmZvcm1hdC9odHRwLmMgYi9saWJhdmZvcm1hdC9odHRwLmMKaW5kZXggYzRlNjI5MmE5 NS4uYmQyNWE0NTYzNiAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvaHR0cC5jCisrKyBiL2xpYmF2 Zm9ybWF0L2h0dHAuYwpAQCAtNjI1LDcgKzYyNSw3IEBAIHN0YXRpYyBpbnQgaHR0cF93cml0ZV9y ZXBseShVUkxDb250ZXh0KiBoLCBpbnQgc3RhdHVzX2NvZGUpCiAgICAgICAgIG1lc3NhZ2VfbGVu ID0gc25wcmludGYobWVzc2FnZSwgc2l6ZW9mKG1lc3NhZ2UpLAogICAgICAgICAgICAgICAgICAi SFRUUC8xLjEgJTAzZCAlc1xyXG4iCiAgICAgICAgICAgICAgICAgICJDb250ZW50LVR5cGU6ICVz XHJcbiIKLSAgICAgICAgICAgICAgICAgIkNvbnRlbnQtTGVuZ3RoOiAlIlNJWkVfU1BFQ0lGSUVS IlxyXG4iCisgICAgICAgICAgICAgICAgICJDb250ZW50LUxlbmd0aDogJXp1XHJcbiIKICAgICAg ICAgICAgICAgICAgIiVzIgogICAgICAgICAgICAgICAgICAiXHJcbiIKICAgICAgICAgICAgICAg ICAgIiUwM2QgJXNcclxuIiwKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2lkM3YyLmMgYi9saWJh dmZvcm1hdC9pZDN2Mi5jCmluZGV4IDNjZTJmYWRjZTguLjlkNGE5ODAyYTkgMTAwNjQ0Ci0tLSBh L2xpYmF2Zm9ybWF0L2lkM3YyLmMKKysrIGIvbGliYXZmb3JtYXQvaWQzdjIuYwpAQCAtNDg1LDcg KzQ4NSw3IEBAIHN0YXRpYyB2b2lkIHJlYWRfZ2VvYnRhZyhBVkZvcm1hdENvbnRleHQgKnMsIEFW SU9Db250ZXh0ICpwYiwgaW50IHRhZ2xlbiwKIAogICAgIG5ld19leHRyYSA9IGF2X21hbGxvY3oo c2l6ZW9mKElEM3YyRXh0cmFNZXRhKSk7CiAgICAgaWYgKCFuZXdfZXh0cmEpIHsKLSAgICAgICAg YXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byBhbGxvYyAlIlNJWkVfU1BFQ0lGSUVS IiBieXRlc1xuIiwKKyAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byBh bGxvYyAlenUgYnl0ZXNcbiIsCiAgICAgICAgICAgICAgICBzaXplb2YoSUQzdjJFeHRyYU1ldGEp KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L21tc2gu YyBiL2xpYmF2Zm9ybWF0L21tc2guYwppbmRleCBhZWFkYjEyZGFiLi5kZGVlYWZhNDIzIDEwMDY0 NAotLS0gYS9saWJhdmZvcm1hdC9tbXNoLmMKKysrIGIvbGliYXZmb3JtYXQvbW1zaC5jCkBAIC0x MTgsNyArMTE4LDcgQEAgc3RhdGljIGludCByZWFkX2RhdGFfcGFja2V0KE1NU0hDb250ZXh0ICpt bXNoLCBjb25zdCBpbnQgbGVuKQogICAgIGludCByZXM7CiAgICAgaWYgKGxlbiA+IHNpemVvZiht bXMtPmluX2J1ZmZlcikpIHsKICAgICAgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19FUlJPUiwKLSAg ICAgICAgICAgICAgICJEYXRhIHBhY2tldCBsZW5ndGggJWQgZXhjZWVkcyB0aGUgaW5fYnVmZmVy IHNpemUgJSJTSVpFX1NQRUNJRklFUiJcbiIsCisgICAgICAgICAgICAgICAiRGF0YSBwYWNrZXQg bGVuZ3RoICVkIGV4Y2VlZHMgdGhlIGluX2J1ZmZlciBzaXplICV6dVxuIiwKICAgICAgICAgICAg ICAgIGxlbiwgc2l6ZW9mKG1tcy0+aW5fYnVmZmVyKSk7CiAgICAgICAgIHJldHVybiBBVkVSUk9S KEVJTyk7CiAgICAgfQpAQCAtMTkzLDcgKzE5Myw3IEBAIHN0YXRpYyBpbnQgZ2V0X2h0dHBfaGVh ZGVyX2RhdGEoTU1TSENvbnRleHQgKm1tc2gpCiAgICAgICAgICAgICBpZiAobGVuKSB7CiAgICAg ICAgICAgICAgICAgaWYgKGxlbiA+IHNpemVvZihtbXMtPmluX2J1ZmZlcikpIHsKICAgICAgICAg ICAgICAgICAgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19FUlJPUiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICJPdGhlciBwYWNrZXQgbGVuID0gJWQgZXhjZWVkIHRoZSBpbl9idWZmZXIgc2l6 ZSAlIlNJWkVfU1BFQ0lGSUVSIlxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhl ciBwYWNrZXQgbGVuID0gJWQgZXhjZWVkIHRoZSBpbl9idWZmZXIgc2l6ZSAlenVcbiIsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZW4sIHNpemVvZihtbXMtPmluX2J1ZmZlcikpOwogICAg ICAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8pOwogICAgICAgICAgICAgICAgIH0K ZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L21tc3QuYyBiL2xpYmF2Zm9ybWF0L21tc3QuYwppbmRl eCBlNjg2MDYwODZlLi41OWQzZjk3MjZlIDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9tbXN0LmMK KysrIGIvbGliYXZmb3JtYXQvbW1zdC5jCkBAIC0yODQsNyArMjg0LDcgQEAgc3RhdGljIE1NU1ND UGFja2V0VHlwZSBnZXRfdGNwX3NlcnZlcl9yZXNwb25zZShNTVNUQ29udGV4dCAqbW1zdCkKICAg ICAgICAgICAgIGlmIChsZW5ndGhfcmVtYWluaW5nIDwgMAogICAgICAgICAgICAgICAgIHx8IGxl bmd0aF9yZW1haW5pbmcgPiBzaXplb2YobW1zLT5pbl9idWZmZXIpIC0gMTIpIHsKICAgICAgICAg ICAgICAgICBhdl9sb2cobW1zLT5tbXNfaGQsIEFWX0xPR19FUlJPUiwKLSAgICAgICAgICAgICAg ICAgICAgICAgIkluY29taW5nIHBhY2tldCBsZW5ndGggJWQgZXhjZWVkcyBidWZzaXplICUiU0la RV9TUEVDSUZJRVIiXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAiSW5jb21pbmcgcGFja2V0 IGxlbmd0aCAlZCBleGNlZWRzIGJ1ZnNpemUgJXp1XG4iLAogICAgICAgICAgICAgICAgICAgICAg ICBsZW5ndGhfcmVtYWluaW5nLCBzaXplb2YobW1zLT5pbl9idWZmZXIpIC0gMTIpOwogICAgICAg ICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgICAgICAgICAgfQpAQCAt MzIwLDcgKzMyMCw3IEBAIHN0YXRpYyBNTVNTQ1BhY2tldFR5cGUgZ2V0X3RjcF9zZXJ2ZXJfcmVz cG9uc2UoTU1TVENvbnRleHQgKm1tc3QpCiAgICAgICAgICAgICBpZiAobGVuZ3RoX3JlbWFpbmlu ZyA8IDAKICAgICAgICAgICAgICAgICB8fCBsZW5ndGhfcmVtYWluaW5nID4gc2l6ZW9mKG1tcy0+ aW5fYnVmZmVyKSAtIDgpIHsKICAgICAgICAgICAgICAgICBhdl9sb2cobW1zLT5tbXNfaGQsIEFW X0xPR19FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgIkRhdGEgbGVuZ3RoICVkIGlzIGlu dmFsaWQgb3IgdG9vIGxhcmdlIChtYXg9JSJTSVpFX1NQRUNJRklFUiIpXG4iLAorICAgICAgICAg ICAgICAgICAgICAgICAiRGF0YSBsZW5ndGggJWQgaXMgaW52YWxpZCBvciB0b28gbGFyZ2UgKG1h eD0lenUpXG4iLAogICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhfcmVtYWluaW5nLCBzaXpl b2YobW1zLT5pbl9idWZmZXIpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZB TElEREFUQTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L21wanBlZ2Rl Yy5jIGIvbGliYXZmb3JtYXQvbXBqcGVnZGVjLmMKaW5kZXggMTI1YjE3NTg1ZS4uM2I0N2JjY2Y5 ZCAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvbXBqcGVnZGVjLmMKKysrIGIvbGliYXZmb3JtYXQv bXBqcGVnZGVjLmMKQEAgLTE5Myw3ICsxOTMsNyBAQCBzdGF0aWMgaW50IHBhcnNlX211bHRpcGFy dF9oZWFkZXIoQVZJT0NvbnRleHQgKnBiLAogICAgICAgICBpZiAobG9nX2N0eCkKICAgICAgICAg YXZfbG9nKGxvZ19jdHgsCiAgICAgICAgICAgICBBVl9MT0dfRVJST1IsCi0gICAgICAgICAgICAi RXhwZWN0ZWQgYm91bmRhcnkgJyVzJyBub3QgZm91bmQsIGluc3RlYWQgZm91bmQgYSBsaW5lIG9m ICUiU0laRV9TUEVDSUZJRVIiIGJ5dGVzXG4iLAorICAgICAgICAgICAgIkV4cGVjdGVkIGJvdW5k YXJ5ICclcycgbm90IGZvdW5kLCBpbnN0ZWFkIGZvdW5kIGEgbGluZSBvZiAlenUgYnl0ZXNcbiIs CiAgICAgICAgICAgICBleHBlY3RlZF9ib3VuZGFyeSwKICAgICAgICAgICAgIHN0cmxlbihsaW5l KSk7CiAKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L29nZ3BhcnNldm9yYmlzLmMgYi9saWJhdmZv cm1hdC9vZ2dwYXJzZXZvcmJpcy5jCmluZGV4IDdjNGY3NjI0ZjguLmVkODFhNDMxZjYgMTAwNjQ0 Ci0tLSBhL2xpYmF2Zm9ybWF0L29nZ3BhcnNldm9yYmlzLmMKKysrIGIvbGliYXZmb3JtYXQvb2dn cGFyc2V2b3JiaXMuYwpAQCAtMTg0LDcgKzE4NCw3IEBAIGludCBmZl92b3JiaXNfY29tbWVudChB VkZvcm1hdENvbnRleHQgKmFzLCBBVkRpY3Rpb25hcnkgKiptLAogCiAgICAgaWYgKHAgIT0gZW5k KQogICAgICAgICBhdl9sb2coYXMsIEFWX0xPR19JTkZPLAotICAgICAgICAgICAgICAgIiUiUFRS RElGRl9TUEVDSUZJRVIiIGJ5dGVzIG9mIGNvbW1lbnQgaGVhZGVyIHJlbWFpblxuIiwgZW5kIC0g cCk7CisgICAgICAgICAgICAgICAiJXRkIGJ5dGVzIG9mIGNvbW1lbnQgaGVhZGVyIHJlbWFpblxu IiwgZW5kIC0gcCk7CiAgICAgaWYgKG4gPiAwKQogICAgICAgICBhdl9sb2coYXMsIEFWX0xPR19J TkZPLAogICAgICAgICAgICAgICAgInRydW5jYXRlZCBjb21tZW50IGhlYWRlciwgJWkgY29tbWVu dHMgbm90IGZvdW5kXG4iLCBuKTsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L3J0cGRlY194aXBo LmMgYi9saWJhdmZvcm1hdC9ydHBkZWNfeGlwaC5jCmluZGV4IDk1ZjRiZGYzYTEuLjIzOTI0ZjIz NjMgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L3J0cGRlY194aXBoLmMKKysrIGIvbGliYXZmb3Jt YXQvcnRwZGVjX3hpcGguYwpAQCAtMjM0LDcgKzIzNCw3IEBAIHBhcnNlX3BhY2tlZF9oZWFkZXJz KEFWRm9ybWF0Q29udGV4dCAqcywKIAogICAgIGlmIChwYWNrZWRfaGVhZGVyc19lbmQgLSBwYWNr ZWRfaGVhZGVycyA8IDkpIHsKICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwKLSAgICAg ICAgICAgICAgICJJbnZhbGlkICUiUFRSRElGRl9TUEVDSUZJRVIiIGJ5dGUgcGFja2VkIGhlYWRl ci4iLAorICAgICAgICAgICAgICAgIkludmFsaWQgJXRkIGJ5dGUgcGFja2VkIGhlYWRlci4iLAog ICAgICAgICAgICAgICAgcGFja2VkX2hlYWRlcnNfZW5kIC0gcGFja2VkX2hlYWRlcnMpOwogICAg ICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKICAgICB9CkBAIC0yNTUsNyArMjU1LDcg QEAgcGFyc2VfcGFja2VkX2hlYWRlcnMoQVZGb3JtYXRDb250ZXh0ICpzLAogICAgIGlmIChwYWNr ZWRfaGVhZGVyc19lbmQgLSBwYWNrZWRfaGVhZGVycyAhPSBsZW5ndGggfHwKICAgICAgICAgbGVu Z3RoMSA+IGxlbmd0aCB8fCBsZW5ndGgyID4gbGVuZ3RoIC0gbGVuZ3RoMSkgewogICAgICAgICBh dl9sb2cocywgQVZfTE9HX0VSUk9SLAotICAgICAgICAgICAgICAgIkJhZCBwYWNrZWQgaGVhZGVy IGxlbmd0aHMgKCVkLCVkLCUiUFRSRElGRl9TUEVDSUZJRVIiLCV1KVxuIiwgbGVuZ3RoMSwKKyAg ICAgICAgICAgICAgICJCYWQgcGFja2VkIGhlYWRlciBsZW5ndGhzICglZCwlZCwldGQsJXUpXG4i LCBsZW5ndGgxLAogICAgICAgICAgICAgICAgbGVuZ3RoMiwgcGFja2VkX2hlYWRlcnNfZW5kIC0g cGFja2VkX2hlYWRlcnMsIGxlbmd0aCk7CiAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSURE QVRBOwogICAgIH0KZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L3NkcC5jIGIvbGliYXZmb3JtYXQv c2RwLmMKaW5kZXggMjFhZGE1ZDFjZS4uZjY3OThmNGJkOSAxMDA2NDQKLS0tIGEvbGliYXZmb3Jt YXQvc2RwLmMKKysrIGIvbGliYXZmb3JtYXQvc2RwLmMKQEAgLTIzNSw3ICsyMzUsNyBAQCBzdGF0 aWMgaW50IGV4dHJhZGF0YTJwc2V0cyhBVkZvcm1hdENvbnRleHQgKnMsIGNvbnN0IEFWQ29kZWNQ YXJhbWV0ZXJzICpwYXIsCiAgICAgICAgICAgICBzcHNfZW5kID0gcjE7CiAgICAgICAgIH0KICAg ICAgICAgaWYgKCFhdl9iYXNlNjRfZW5jb2RlKHAsIE1BWF9QU0VUX1NJWkUgLSAocCAtIHBzZXRz KSwgciwgcjEgLSByKSkgewotICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIkNh bm5vdCBCYXNlNjQtZW5jb2RlICUiUFRSRElGRl9TUEVDSUZJRVIiICUiUFRSRElGRl9TUEVDSUZJ RVIiIVxuIiwKKyAgICAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJST1IsICJDYW5ub3QgQmFz ZTY0LWVuY29kZSAldGQgJXRkIVxuIiwKICAgICAgICAgICAgICAgICAgICBNQVhfUFNFVF9TSVpF IC0gKHAgLSBwc2V0cyksIHIxIC0gcik7CiBmYWlsX2luX2xvb3A6CiAgICAgICAgICAgICBhdl9m cmVlKHBzZXRzKTsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L3N1cGVuYy5jIGIvbGliYXZmb3Jt YXQvc3VwZW5jLmMKaW5kZXggZWJkZmM3YzkzOS4uYzY2NDcyM2JjNCAxMDA2NDQKLS0tIGEvbGli YXZmb3JtYXQvc3VwZW5jLmMKKysrIGIvbGliYXZmb3JtYXQvc3VwZW5jLmMKQEAgLTQ3LDcgKzQ3 LDcgQEAgc3RhdGljIGludCBzdXBfd3JpdGVfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQ YWNrZXQgKnBrdCkKICAgICAgICAgc2l6ZV90IGxlbiA9IEFWX1JCMTYoZGF0YSArIDEpICsgMzsK IAogICAgICAgICBpZiAobGVuID4gc2l6ZSkgewotICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xP R19FUlJPUiwgIk5vdCBlbm91Z2ggZGF0YSwgc2tpcHBpbmcgJSJTSVpFX1NQRUNJRklFUiIgYnl0 ZXNcbiIsCisgICAgICAgICAgICBhdl9sb2cocywgQVZfTE9HX0VSUk9SLCAiTm90IGVub3VnaCBk YXRhLCBza2lwcGluZyAlenUgYnl0ZXNcbiIsCiAgICAgICAgICAgICAgICAgICAgc2l6ZSk7CiAg ICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKICAgICAgICAgfQpAQCAtNjQs NyArNjQsNyBAQCBzdGF0aWMgaW50IHN1cF93cml0ZV9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpz LCBBVlBhY2tldCAqcGt0KQogICAgIH0KIAogICAgIGlmIChzaXplID4gMCkgewotICAgICAgICBh dl9sb2cocywgQVZfTE9HX0VSUk9SLCAiU2tpcHBpbmcgJSJTSVpFX1NQRUNJRklFUiIgYnl0ZXMg YWZ0ZXIgbGFzdCBzZWdtZW50IGluIGZyYW1lXG4iLAorICAgICAgICBhdl9sb2cocywgQVZfTE9H X0VSUk9SLCAiU2tpcHBpbmcgJXp1IGJ5dGVzIGFmdGVyIGxhc3Qgc2VnbWVudCBpbiBmcmFtZVxu IiwKICAgICAgICAgICAgICAgIHNpemUpOwogICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElE REFUQTsKICAgICB9CmRpZmYgLS1naXQgYS9saWJhdnV0aWwvaHdjb250ZXh0X29wZW5jbC5jIGIv bGliYXZ1dGlsL2h3Y29udGV4dF9vcGVuY2wuYwppbmRleCA0NjQyNGViNTJhLi4wM2Y0NjIzOGIy IDEwMDY0NAotLS0gYS9saWJhdnV0aWwvaHdjb250ZXh0X29wZW5jbC5jCisrKyBiL2xpYmF2dXRp bC9od2NvbnRleHRfb3BlbmNsLmMKQEAgLTI3NDcsNyArMjc0Nyw3IEBAIHN0YXRpYyBpbnQgb3Bl bmNsX21hcF9mcm9tX2RybV9hcm0oQVZIV0ZyYW1lc0NvbnRleHQgKmRzdF9mYywgQVZGcmFtZSAq ZHN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZkLCBkZXNjLT5vYmplY3RzW2ld LnNpemUsICZjbGUpOwogICAgICAgICBpZiAoIW1hcHBpbmctPm9iamVjdF9idWZmZXJzW2ldKSB7 CiAgICAgICAgICAgICBhdl9sb2coZHN0X2ZjLCBBVl9MT0dfRVJST1IsICJGYWlsZWQgdG8gY3Jl YXRlIENMIGJ1ZmZlciAiCi0gICAgICAgICAgICAgICAgICAgImZyb20gb2JqZWN0ICVkIChmZCAl ZCwgc2l6ZSAlIlNJWkVfU1BFQ0lGSUVSIikgb2YgRFJNIGZyYW1lOiAlZC5cbiIsCisgICAgICAg ICAgICAgICAgICAgImZyb20gb2JqZWN0ICVkIChmZCAlZCwgc2l6ZSAlenUpIG9mIERSTSBmcmFt ZTogJWQuXG4iLAogICAgICAgICAgICAgICAgICAgIGksIGZkLCBkZXNjLT5vYmplY3RzW2ldLnNp emUsIGNsZSk7CiAgICAgICAgICAgICBlcnIgPSBBVkVSUk9SKEVJTyk7CiAgICAgICAgICAgICBn b3RvIGZhaWw7CmRpZmYgLS1naXQgYS9saWJhdnV0aWwvaHdjb250ZXh0X3Z1bGthbi5jIGIvbGli YXZ1dGlsL2h3Y29udGV4dF92dWxrYW4uYwppbmRleCA4OWJmMzliYjNmLi5lYmJiMTc1YjZlIDEw MDY0NAotLS0gYS9saWJhdnV0aWwvaHdjb250ZXh0X3Z1bGthbi5jCisrKyBiL2xpYmF2dXRpbC9o d2NvbnRleHRfdnVsa2FuLmMKQEAgLTE4OTAsNyArMTg5MCw3IEBAIHN0YXRpYyBpbnQgdnVsa2Fu X2RldmljZV9pbml0KEFWSFdEZXZpY2VDb250ZXh0ICpjdHgpCiAgICAgYXZfbG9nKGN0eCwgQVZf TE9HX1ZFUkJPU0UsICJBbGlnbm1lbnRzOlxuIik7CiAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX1ZF UkJPU0UsICIgICAgb3B0aW1hbEJ1ZmZlckNvcHlSb3dQaXRjaEFsaWdubWVudDogJSJQUkl1NjQi XG4iLAogICAgICAgICAgICBwLT5wcm9wcy5wcm9wZXJ0aWVzLmxpbWl0cy5vcHRpbWFsQnVmZmVy Q29weVJvd1BpdGNoQWxpZ25tZW50KTsKLSAgICBhdl9sb2coY3R4LCBBVl9MT0dfVkVSQk9TRSwg IiAgICBtaW5NZW1vcnlNYXBBbGlnbm1lbnQ6ICAgICAgICAgICAgICAlIlNJWkVfU1BFQ0lGSUVS IlxuIiwKKyAgICBhdl9sb2coY3R4LCBBVl9MT0dfVkVSQk9TRSwgIiAgICBtaW5NZW1vcnlNYXBB bGlnbm1lbnQ6ICAgICAgICAgICAgICAlenVcbiIsCiAgICAgICAgICAgIHAtPnByb3BzLnByb3Bl cnRpZXMubGltaXRzLm1pbk1lbW9yeU1hcEFsaWdubWVudCk7CiAgICAgYXZfbG9nKGN0eCwgQVZf TE9HX1ZFUkJPU0UsICIgICAgbm9uQ29oZXJlbnRBdG9tU2l6ZTogICAgICAgICAgICAgICAgJSJQ Ukl1NjQiXG4iLAogICAgICAgICAgICBwLT5wcm9wcy5wcm9wZXJ0aWVzLmxpbWl0cy5ub25Db2hl cmVudEF0b21TaXplKTsKZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9pbnRlcm5hbC5oIGIvbGliYXZ1 dGlsL2ludGVybmFsLmgKaW5kZXggMTBlYzI2ZTlhMC4uMmE4NTE3MDc5NSAxMDA2NDQKLS0tIGEv bGliYXZ1dGlsL2ludGVybmFsLmgKKysrIGIvbGliYXZ1dGlsL2ludGVybmFsLmgKQEAgLTExNSw5 ICsxMTUsNiBAQCB2b2lkIGF2cHJpdl9yZXBvcnRfbWlzc2luZ19mZWF0dXJlKHZvaWQgKmF2YywK IHZvaWQgYXZwcml2X3JlcXVlc3Rfc2FtcGxlKHZvaWQgKmF2YywKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKm1zZywgLi4uKSBhdl9wcmludGZfZm9ybWF0KDIsIDMpOwog Ci0jZGVmaW5lIFBUUkRJRkZfU1BFQ0lGSUVSICJ0ZCIKLSNkZWZpbmUgU0laRV9TUEVDSUZJRVIg Inp1IgotCiAjaWZkZWYgREVCVUcKICMgICBkZWZpbmUgZmZfZGxvZyhjdHgsIC4uLikgYXZfbG9n KGN0eCwgQVZfTE9HX0RFQlVHLCBfX1ZBX0FSR1NfXykKICNlbHNlCmRpZmYgLS1naXQgYS9saWJh dnV0aWwvdGVzdHMvY2hhbm5lbF9sYXlvdXQuYyBiL2xpYmF2dXRpbC90ZXN0cy9jaGFubmVsX2xh eW91dC5jCmluZGV4IGU3OWU0YzM2MTEuLjkxODU1NDdlYWEgMTAwNjQ0Ci0tLSBhL2xpYmF2dXRp bC90ZXN0cy9jaGFubmVsX2xheW91dC5jCisrKyBiL2xpYmF2dXRpbC90ZXN0cy9jaGFubmVsX2xh eW91dC5jCkBAIC0yNSw3ICsyNSw2IEBACiAjaW5jbHVkZSAibGliYXZ1dGlsL2JwcmludC5oIgog I2luY2x1ZGUgImxpYmF2dXRpbC9jaGFubmVsX2xheW91dC5oIgogI2luY2x1ZGUgImxpYmF2dXRp bC9lcnJvci5oIgotI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRlcm5hbC5oIgogI2luY2x1ZGUgImxp YmF2dXRpbC9tYWNyb3MuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvbWVtLmgiCiAKQEAgLTQxLDcg KzQwLDcgQEAKICAgICBmdW5jX25hbWUgIyMgX2JwcmludChCUFJJTlRfQVJHUyAjIyBBUkdfT1JE RVIoKGJwKSwgX19WQV9BUkdTX18pKTsgICAgIFwKICAgICBpZiAoc3RybGVuKChicCktPnN0cikg IT0gKGJwKS0+bGVuKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAg ICAgcHJpbnRmKCJzdHJsZW4gb2YgQVZCUHJpbnQtc3RyaW5nIHJldHVybmVkIGJ5ICIjZnVuY19u YW1lIl9icHJpbnQiIFwKLSAgICAgICAgICAgICAgICIgZGlmZmVycyBmcm9tIEFWQlByaW50Lmxl bjogJSJTSVpFX1NQRUNJRklFUiIgdnMuICV1XG4iLCAgIFwKKyAgICAgICAgICAgICAgICIgZGlm ZmVycyBmcm9tIEFWQlByaW50LmxlbjogJXp1IHZzLiAldVxuIiwgICAgICAgICAgICAgICAgIFwK ICAgICAgICAgICAgICAgIHN0cmxlbigoYnApLT5zdHIpLCAoYnApLT5sZW4pOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB9ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC90ZXN0cy9pbWd1dGlscy5jIGIvbGliYXZ1dGls L3Rlc3RzL2ltZ3V0aWxzLmMKaW5kZXggY2QzNjMxNDVhZC4uMzk2ODQ3OTVkNCAxMDA2NDQKLS0t IGEvbGliYXZ1dGlsL3Rlc3RzL2ltZ3V0aWxzLmMKKysrIGIvbGliYXZ1dGlsL3Rlc3RzL2ltZ3V0 aWxzLmMKQEAgLTQ0LDEzICs0NCwxMyBAQCBzdGF0aWMgaW50IGNoZWNrX2ltYWdlX2ZpbGwoZW51 bSBBVlBpeGVsRm9ybWF0IHBpeF9mbXQsIGludCB3LCBpbnQgaCkgewogICAgIC8vIFRlc3QgdGhl IG91dHB1dCBvZiBhdl9pbWFnZV9maWxsX3BsYW5lX3NpemVzKCkKICAgICBwcmludGYoIiwgcGxh bmVfc2l6ZXM6Iik7CiAgICAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykKLSAgICAgICAgcHJpbnRm KCIgJTUiU0laRV9TUEVDSUZJRVIsIHNpemVzW2ldKTsKKyAgICAgICAgcHJpbnRmKCIgJTV6dSIs IHNpemVzW2ldKTsKICAgICAvLyBUZXN0IHRoZSBvdXRwdXQgb2YgYXZfaW1hZ2VfZmlsbF9wb2lu dGVycygpCiAgICAgZm9yIChpID0gMDsgaSA8IDMgJiYgZGF0YVtpICsgMV07IGkrKykKICAgICAg ICAgb2Zmc2V0c1tpXSA9IGRhdGFbaSArIDFdIC0gZGF0YVtpXTsKICAgICBwcmludGYoIiwgcGxh bmVfb2Zmc2V0czoiKTsKICAgICBmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKQotICAgICAgICBwcmlu dGYoIiAlNSJQVFJESUZGX1NQRUNJRklFUiwgb2Zmc2V0c1tpXSk7CisgICAgICAgIHByaW50Zigi ICU1dGQiLCBvZmZzZXRzW2ldKTsKICAgICBwcmludGYoIiwgdG90YWxfc2l6ZTogJWQiLCB0b3Rh bF9zaXplKTsKIAogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL3Rlc3RzL3Np ZGVfZGF0YV9hcnJheS5jIGIvbGliYXZ1dGlsL3Rlc3RzL3NpZGVfZGF0YV9hcnJheS5jCmluZGV4 IDYzM2U5ZWU2ODEuLmZjYzZmNWU4ZDAgMTAwNjQ0Ci0tLSBhL2xpYmF2dXRpbC90ZXN0cy9zaWRl X2RhdGFfYXJyYXkuYworKysgYi9saWJhdnV0aWwvdGVzdHMvc2lkZV9kYXRhX2FycmF5LmMKQEAg LTI3LDcgKzI3LDcgQEAgc3RhdGljIHZvaWQgcHJpbnRfZW50cmllcyhjb25zdCBBVkZyYW1lU2lk ZURhdGEgKipzZCwgY29uc3QgaW50IG5iX3NkKQogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmJf c2Q7IGkrKykgewogICAgICAgICBjb25zdCBBVkZyYW1lU2lkZURhdGEgKmVudHJ5ID0gc2RbaV07 CiAKLSAgICAgICAgcHJpbnRmKCJzZCAlZCAoc2l6ZSAlIlNJWkVfU1BFQ0lGSUVSIiksICVzIiwK KyAgICAgICAgcHJpbnRmKCJzZCAlZCAoc2l6ZSAlenUpLCAlcyIsCiAgICAgICAgICAgICAgICBp LCBlbnRyeS0+c2l6ZSwgYXZfZnJhbWVfc2lkZV9kYXRhX25hbWUoZW50cnktPnR5cGUpKTsKIAog ICAgICAgICBpZiAoZW50cnktPnR5cGUgIT0gQVZfRlJBTUVfREFUQV9TRUlfVU5SRUdJU1RFUkVE KSB7CmRpZmYgLS1naXQgYS9saWJhdnV0aWwvdnVsa2FuLmMgYi9saWJhdnV0aWwvdnVsa2FuLmMK aW5kZXggYzNkOGMxZDBkOS4uMzAxNWE1MzZjMiAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL3Z1bGth bi5jCisrKyBiL2xpYmF2dXRpbC92dWxrYW4uYwpAQCAtMTA2Niw3ICsxMDY2LDcgQEAgaW50IGZm X3ZrX2NyZWF0ZV9idWYoRkZWdWxrYW5Db250ZXh0ICpzLCBGRlZrQnVmZmVyICpidWYsIHNpemVf dCBzaXplLAogICAgICAgICAucE5leHQgPSAmZGVkX3JlcSwKICAgICB9OwogCi0gICAgYXZfbG9n KHMsIEFWX0xPR19ERUJVRywgIkNyZWF0aW5nIGEgYnVmZmVyIG9mICUiU0laRV9TUEVDSUZJRVIi IGJ5dGVzLCAiCisgICAgYXZfbG9nKHMsIEFWX0xPR19ERUJVRywgIkNyZWF0aW5nIGEgYnVmZmVy IG9mICV6dSBieXRlcywgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1c2FnZTogMHgl eCwgZmxhZ3M6IDB4JXhcbiIsCiAgICAgICAgICAgIHNpemUsIHVzYWdlLCBmbGFncyk7CiAKLS0g CjIuNTIuMAoKCkZyb20gYjdkMDM0M2Q4ZDhhOGQwNmE4OGM5ZjE5ZjhkZTk4OTEyZTcyZmVjNyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP01hcnRpbj0yMFN0b3Jzaj1D Mz1CNj89IDxtYXJ0aW5AbWFydGluLnN0PgpEYXRlOiBXZWQsIDMgRGVjIDIwMjUgMTM6NDk6Mzkg KzAyMDAKU3ViamVjdDogW1BBVENIIDE4My8zMDRdIGF2Y29kZWMve2FybSxuZW9ufS9tcGVndmlk ZW86IFJlYWRkIGEgbWlzc2VkCiBpbml0aWFsaXphdGlvbgoKVGhpcyB3YXMgYWNjaWRlbnRhbGx5 IHJlbW92ZWQgaW4KMzU3ZmM1MjQzYzMyMzAwYmJhOTFjMDk2NDg4ZTg2NTU4YmVlZDRjOC4KClRo aXMgZml4ZXMgdGVzdCBmYWlsdXJlcyB3aGVuIGJ1aWx0IHdpdGggQ2xhbmcgYW5kIE1TVkM7CnN1 cnByaXNpbmdseSwgdGhlIGNoZWNrYXNtIHRlc3QgZGlkIHNlZW0gdG8gcGFzcyB3aGVuIGJ1aWx0 IHdpdGgKR0NDLiBDbGFuZyBhbmQgTVNWQyBhbHNvIHdhcm4gYWJvdXQgdGhlIHVzZSBvZiB0aGUg dW5pbml0aWFsaXplZAp2YXJpYWJsZSwgd2hpbGUgR0NDIGRpZG4ndC4KLS0tCiBsaWJhdmNvZGVj L25lb24vbXBlZ3ZpZGVvLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9uZW9uL21wZWd2aWRlby5jIGIvbGliYXZjb2RlYy9u ZW9uL21wZWd2aWRlby5jCmluZGV4IDQ0ZTliNzAzMDMuLjQ1YWMzNmRmMTggMTAwNjQ0Ci0tLSBh L2xpYmF2Y29kZWMvbmVvbi9tcGVndmlkZW8uYworKysgYi9saWJhdmNvZGVjL25lb24vbXBlZ3Zp ZGVvLmMKQEAgLTQxLDYgKzQxLDggQEAgc3RhdGljIHZvaWQgaW5saW5lIGZmX2RjdF91bnF1YW50 aXplX2gyNjNfbmVvbihpbnQgcXNjYWxlLCBpbnQgcWFkZCwgaW50IG5Db2VmZnMKICAgICBpbnQx Nng4X3QgcTE0czE2LCBxMTVzMTYsIHF6czE2OwogICAgIHVpbnQxNng4X3QgcTF1MTYsIHE5dTE2 OwogCisgICAgcXpzMTYgPSB2ZHVwcV9uX3MxNigwKTsKKwogICAgIHExNXMxNiA9IHZkdXBxX25f czE2KHFzY2FsZSA8PCAxKTsKICAgICBxMTRzMTYgPSB2ZHVwcV9uX3MxNihxYWRkKTsKICAgICBx MTNzMTYgPSB2bmVncV9zMTYocTE0czE2KTsKLS0gCjIuNTIuMAoKCkZyb20gM2U4OWZkOWMxNmZi YzlkYTM5NzM0MThkODQxNTY1MmNlODI4YjAyZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRh dGU6IFdlZCwgMyBEZWMgMjAyNSAxMzowNTo1OCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTg0LzMw NF0gdGVzdHMvY2hlY2thc20vbXBlZ3ZpZGVvX3VucXVhbnRpemU6IEFkZCBtaXNzaW5nCiBjb25z dAoKRml4ZXMgdGhpcyB0ZXN0IHVuZGVyIFVCU2FuOgpydW50aW1lIGVycm9yOiBjYWxsIHRvIGZ1 bmN0aW9uIGRjdF91bnF1YW50aXplX21wZWcxX2ludHJhX2MgdGhyb3VnaCBwb2ludGVyIHRvIGlu Y29ycmVjdCBmdW5jdGlvbiB0eXBlICd2b2lkICgqKShzdHJ1Y3QgTXBlZ0VuY0NvbnRleHQgKiwg c2hvcnQgKiwgaW50LCBpbnQpJwpJIGRvbid0IGtub3cgaG93IEkgY291bGQgZm9yZ2V0IHRoaXMu CgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBv dXRsb29rLmNvbT4KLS0tCiB0ZXN0cy9jaGVja2FzbS9tcGVndmlkZW9fdW5xdWFudGl6ZS5jIHwg NiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2thc20vbXBlZ3ZpZGVvX3VucXVhbnRpemUuYyBiL3Rl c3RzL2NoZWNrYXNtL21wZWd2aWRlb191bnF1YW50aXplLmMKaW5kZXggMjIwYTc0M2E5Ni4uNjBj NjFiMjE3YiAxMDA2NDQKLS0tIGEvdGVzdHMvY2hlY2thc20vbXBlZ3ZpZGVvX3VucXVhbnRpemUu YworKysgYi90ZXN0cy9jaGVja2FzbS9tcGVndmlkZW9fdW5xdWFudGl6ZS5jCkBAIC0yMTUsMTEg KzIxNSwxMSBAQCB2b2lkIGNoZWNrYXNtX2NoZWNrX21wZWd2aWRlb191bnF1YW50aXplKHZvaWQp CiAgICAgaW50IHFfc2NhbGVfdHlwZSA9IHJuZCgpICYgMTsKIAogICAgIGZmX21wdl91bnF1YW50 aXplX2luaXQoJnVucXVhbnRfZHNwX2N0eCwgMSAvKiBiaXRleGFjdCAqLywgcV9zY2FsZV90eXBl KTsKLSAgICBkZWNsYXJlX2Z1bmModm9pZCwgTVBWQ29udGV4dCAqcywgaW50MTZfdCAqYmxvY2ss IGludCBuLCBpbnQgcXNjYWxlKTsKKyAgICBkZWNsYXJlX2Z1bmModm9pZCwgY29uc3QgTVBWQ29u dGV4dCAqcywgaW50MTZfdCAqYmxvY2ssIGludCBuLCBpbnQgcXNjYWxlKTsKIAogICAgIGZvciAo c2l6ZV90IGkgPSAwOyBpIDwgRkZfQVJSQVlfRUxFTVModGVzdHMpOyArK2kpIHsKLSAgICAgICAg dm9pZCAoKmZ1bmMpKE1QVkNvbnRleHQgKnMsIGludDE2X3QgKmJsb2NrLCBpbnQgbiwgaW50IHFz Y2FsZSkgPQotICAgICAgICAgICAgKih2b2lkICgqKikoTVBWQ29udGV4dCAqLCBpbnQxNl90ICos IGludCwgaW50KSkoKGNoYXIqKSZ1bnF1YW50X2RzcF9jdHggKyB0ZXN0c1tpXS5vZmZzZXQpOwor ICAgICAgICB2b2lkICgqZnVuYykoY29uc3QgTVBWQ29udGV4dCAqcywgaW50MTZfdCAqYmxvY2ss IGludCBuLCBpbnQgcXNjYWxlKSA9CisgICAgICAgICAgICAqKHZvaWQgKCoqKShjb25zdCBNUFZD b250ZXh0ICosIGludDE2X3QgKiwgaW50LCBpbnQpKSgoY2hhciopJnVucXVhbnRfZHNwX2N0eCAr IHRlc3RzW2ldLm9mZnNldCk7CiAgICAgICAgIGlmIChjaGVja19mdW5jKGZ1bmMsICIlcyIsIHRl c3RzW2ldLm5hbWUpKSB7CiAgICAgICAgICAgICBNUFZDb250ZXh0IG5ldywgcmVmOwogICAgICAg ICAgICAgREVDTEFSRV9BTElHTkVEKDE2LCBpbnQxNl90LCBibG9ja19uZXcpWzY0XTsKLS0gCjIu NTIuMAoKCkZyb20gZmY3YzM3NjJmM2MwOGFiZjk3YTM5ZDIzNzViZTYzNTU1MTc3ZDJmNyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogT2xpdmVyIENoYW5nIDxvY2hhbmdAZ29vZ2xlLmNv bT4KRGF0ZTogV2VkLCAzIERlYyAyMDI1IDAyOjU3OjQzICswMDAwClN1YmplY3Q6IFtQQVRDSCAx ODUvMzA0XSBsaWJhdmNvZGVjL3Byb3Jlc19yYXc6IEZpeCBoZWFwLWJ1ZmZlci1vdmVyZmxvdyBp bgogZGVjb2RlX2ZyYW1lCgpGaXhlcyBhIGhlYXAtYnVmZmVyLW92ZXJmbG93IGluIGBkZWNvZGVf ZnJhbWVgIHdoZXJlIGBoZWFkZXJfbGVuYCByZWFkCmZyb20gdGhlIGJpdHN0cmVhbSB3YXMgbm90 IHZhbGlkYXRlZCBhZ2FpbnN0IHRoZSByZW1haW5pbmcgYnl0ZXMgaW4gdGhlCmlucHV0IGJ1ZmZl ciAoYGdiYCkuIFRoaXMgYWxsb3dlZCBgZ2JfaGRyYCB0byBiZSBpbml0aWFsaXplZCB3aXRoIGEg c2l6ZQpleGNlZWRpbmcgdGhlIGFjdHVhbCBwYWNrZXQgZGF0YSwgbGVhZGluZyB0byBhbiBvdXQt b2YtYm91bmRzIHJlYWQuCgpUaGUgZml4IGFkZHMgYSBjaGVjayB0byBlbnN1cmUgYGJ5dGVzdHJl YW0yX2dldF9ieXRlc19sZWZ0KCZnYilgIGlzCmdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBgaGVh ZGVyX2xlbiAtIDJgIGJlZm9yZSBpbml0aWFsaXppbmcgYGdiX2hkcmAuCgpGaXhlczogaHR0cHM6 Ly9pc3N1ZXMub3NzLWZ1enouY29tL2lzc3Vlcy80Mzk3MTEwNTMKLS0tCiBsaWJhdmNvZGVjL3By b3Jlc19yYXcuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvcHJvcmVzX3Jhdy5jIGIvbGliYXZjb2Rl Yy9wcm9yZXNfcmF3LmMKaW5kZXggMDFmMWJiZDJmYi4uOGJlNTY2ZWQzNiAxMDA2NDQKLS0tIGEv bGliYXZjb2RlYy9wcm9yZXNfcmF3LmMKKysrIGIvbGliYXZjb2RlYy9wcm9yZXNfcmF3LmMKQEAg LTM2MCw3ICszNjAsNyBAQCBzdGF0aWMgaW50IGRlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAq YXZjdHgsCiAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogCiAgICAgaW50IGhl YWRlcl9sZW4gPSBieXRlc3RyZWFtMl9nZXRfYmUxNigmZ2IpOwotICAgIGlmIChoZWFkZXJfbGVu IDwgNjIpCisgICAgaWYgKGhlYWRlcl9sZW4gPCA2MiB8fCBieXRlc3RyZWFtMl9nZXRfYnl0ZXNf bGVmdCgmZ2IpIDwgaGVhZGVyX2xlbiAtIDIpCiAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFM SUREQVRBOwogCiAgICAgR2V0Qnl0ZUNvbnRleHQgZ2JfaGRyOwotLSAKMi41Mi4wCgoKRnJvbSAx YTk5NWJjMWEzMGVkYjQ0ZWUxZjE1ZmZlMDgyNGE3MWNhNmIwMTdlIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBMeW5uZSA8ZGV2QGx5bm5lLmVlPgpEYXRlOiBXZWQsIDMgRGVjIDIwMjUg MjE6MjE6MTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDE4Ni8zMDRdIGh3Y29udGV4dF92dWxrYW46 IGZpeCBjb21waWxhdGlvbiB3aXRoIG9sZGVyIGhlYWRlcgogdmVyc2lvbnMKCi0tLQogbGliYXZ1 dGlsL2h3Y29udGV4dF92dWxrYW4uYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdnV0aWwvaHdjb250ZXh0 X3Z1bGthbi5jIGIvbGliYXZ1dGlsL2h3Y29udGV4dF92dWxrYW4uYwppbmRleCBlYmJiMTc1YjZl Li4yZmM2NmEwY2VhIDEwMDY0NAotLS0gYS9saWJhdnV0aWwvaHdjb250ZXh0X3Z1bGthbi5jCisr KyBiL2xpYmF2dXRpbC9od2NvbnRleHRfdnVsa2FuLmMKQEAgLTI1NjksNyArMjU2OSw3IEBAIHN0 YXRpYyBpbnQgc3dpdGNoX2xheW91dF9ob3N0KEFWSFdGcmFtZXNDb250ZXh0ICpod2ZjLCBGRlZr RXhlY1Bvb2wgKmVjdHgsCiAgICAgVmtSZXN1bHQgcmV0OwogICAgIFZ1bGthbkRldmljZVByaXYg KnAgPSBod2ZjLT5kZXZpY2VfY3R4LT5od2N0eDsKICAgICBGRlZ1bGthbkZ1bmN0aW9ucyAqdmsg PSAmcC0+dmtjdHgudmtmbjsKLSAgICBWa0hvc3RJbWFnZUxheW91dFRyYW5zaXRpb25JbmZvIGxh eW91dF9jaGFuZ2VbQVZfTlVNX0RBVEFfUE9JTlRFUlNdOworICAgIFZrSG9zdEltYWdlTGF5b3V0 VHJhbnNpdGlvbkluZm9FWFQgbGF5b3V0X2NoYW5nZVtBVl9OVU1fREFUQV9QT0lOVEVSU107CiAg ICAgaW50IG5iX2ltYWdlcyA9IGZmX3ZrX2NvdW50X2ltYWdlcyhmcmFtZSk7CiAKICAgICBWa0lt YWdlTGF5b3V0IG5ld19sYXlvdXQ7CkBAIC0yNTg1LDcgKzI1ODUsNyBAQCBzdGF0aWMgaW50IHN3 aXRjaF9sYXlvdXRfaG9zdChBVkhXRnJhbWVzQ29udGV4dCAqaHdmYywgRkZWa0V4ZWNQb29sICpl Y3R4LAogICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9UU1VQKTsKIAogICAgIGZvciAoaSA9IDA7 IGkgPCBuYl9pbWFnZXM7IGkrKykgewotICAgICAgICBsYXlvdXRfY2hhbmdlW2ldID0gKFZrSG9z dEltYWdlTGF5b3V0VHJhbnNpdGlvbkluZm8pIHsKKyAgICAgICAgbGF5b3V0X2NoYW5nZVtpXSA9 IChWa0hvc3RJbWFnZUxheW91dFRyYW5zaXRpb25JbmZvRVhUKSB7CiAgICAgICAgICAgICAuc1R5 cGUgPSBWS19TVFJVQ1RVUkVfVFlQRV9IT1NUX0lNQUdFX0xBWU9VVF9UUkFOU0lUSU9OX0lORk8s CiAgICAgICAgICAgICAuaW1hZ2UgPSBmcmFtZS0+aW1nW2ldLAogICAgICAgICAgICAgLm9sZExh eW91dCA9IGZyYW1lLT5sYXlvdXRbaV0sCi0tIAoyLjUyLjAKCgpGcm9tIGRmN2U5ODI1ZjhmOTZj MmJmNzlhNDkwNDVmNjY2MjkzZmMzMDUwYzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEphY2sgTGF1IDxqYWNrbGF1MTIyMmdtQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAxOCBOb3YgMjAy NSAwNjo0NTowNiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTg3LzMwNF0gYXZmaWx0ZXIvdmZfZmVl ZGJhY2s6IGZpeCBmZWVkYmFjayBibG9jawoKRml4ICMyMDk0MAoKVGhlIGZlZWRiYWNrIGFuZCBp dHMgc3ViLWZpbHRlciBib3RoIHJlcXVlc3QgZnJhbWUKZnJvbSBlYWNoIG90aGVyLCBjYXN1aW5n IGJsb2NrIHNpbmNlIDQ0NDBlNDk5YmEKClRoZSBmZWVkYmFjayBzaG91bGQgb25seSByZXF1ZXN0 IGlucHV0c1sxXSBvbmNlCnJhdGhlciB0aGFuIGNvbnRpbnVvdXNseSByZXF1ZXN0IGZyYW1lIGNh dXNlIGJsb2NraW5nLgoKVGhpcyBwYXRjaCBhZGQgY2hlY2sgd2hldGhlciBmZWVkYmFjayBhbHJl YWR5IHJlcXVlc3QKaW5wdXRzWzFdIHZpYSBmZl9vdXRsaW5rX2ZyYW1lX3dhbnRlZChjdHgtPm91 dHB1dHNbMV0pLAppZiB0cnVlLCB0aGVuIGV4aXQgYW5kIHdhaXRpbmcgaW5wdXRzWzBdIGJlY2F1 c2UgaXQgbWVhbnMKd2UgbmVlZCBtb3JlIGZyYW1lcyBpbnB1dCB0byBwcm9jZWVkLgoKU2lnbmVk LW9mZi1ieTogSmFjayBMYXUgPGphY2tsYXUxMjIyZ21AZ21haWwuY29tPgotLS0KIGxpYmF2Zmls dGVyL3ZmX2ZlZWRiYWNrLmMgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92Zl9mZWVkYmFjay5jIGIvbGliYXZmaWx0ZXIv dmZfZmVlZGJhY2suYwppbmRleCA2NjY3ZGRmZDE2Li5lMzYzM2Q3ZDM3IDEwMDY0NAotLS0gYS9s aWJhdmZpbHRlci92Zl9mZWVkYmFjay5jCisrKyBiL2xpYmF2ZmlsdGVyL3ZmX2ZlZWRiYWNrLmMK QEAgLTI0NSw2ICsyNDUsMTAgQEAgc3RhdGljIGludCBhY3RpdmF0ZShBVkZpbHRlckNvbnRleHQg KmN0eCkKICAgICB9CiAKICAgICBpZiAoIXMtPmZlZWQgfHwgY3R4LT5pc19kaXNhYmxlZCkgewor ICAgICAgICBpZiAoIWN0eC0+aXNfZGlzYWJsZWQgJiYgZmZfb3V0bGlua19mcmFtZV93YW50ZWQo Y3R4LT5vdXRwdXRzWzFdKSkgeworICAgICAgICAgICAgZmZfaW5saW5rX3JlcXVlc3RfZnJhbWUo Y3R4LT5pbnB1dHNbMF0pOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KICAgICAg ICAgaWYgKGZmX291dGxpbmtfZnJhbWVfd2FudGVkKGN0eC0+b3V0cHV0c1swXSkpIHsKICAgICAg ICAgICAgIGZmX2lubGlua19yZXF1ZXN0X2ZyYW1lKGN0eC0+aW5wdXRzWzBdKTsKICAgICAgICAg ICAgIGlmICghY3R4LT5pc19kaXNhYmxlZCkKLS0gCjIuNTIuMAoKCkZyb20gNWJiN2E4NDgzMWI5 NzE1NDYzODU2MmU2ZDg0MGMwZDNkY2Y3ZDIzNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogSmFjayBMYXUgPGphY2tsYXUxMjIyZ21AZ21haWwuY29tPgpEYXRlOiBUdWUsIDE4IE5vdiAy MDI1IDIxOjI5OjQzICswODAwClN1YmplY3Q6IFtQQVRDSCAxODgvMzA0XSB0ZXN0cy9mYXRlL2Zp bHRlci12aWRlbzogYWRkIHR3byBmZWVkYmFjayB0ZXN0cwoKLSBBZGQgZmF0ZS1maWx0ZXItZmVl ZGJhY2steWFkaWYKCi0gYWRkIGZhdGUtZmlsdGVyLWZlZWRiYWNrLWhmbGlwCgpTaWduZWQtb2Zm LWJ5OiBKYWNrIExhdSA8amFja2xhdTEyMjJnbUBnbWFpbC5jb20+Ci0tLQogdGVzdHMvZmF0ZS9m aWx0ZXItdmlkZW8ubWFrICAgICAgICAgIHwgIDggKysrKysrKwogdGVzdHMvcmVmL2ZhdGUvZmls dGVyLWZlZWRiYWNrLWhmbGlwIHwgMzAgKysrKysrKysrKysrKysrKysrKysrKysrCiB0ZXN0cy9y ZWYvZmF0ZS9maWx0ZXItZmVlZGJhY2steWFkaWYgfCAzNSArKysrKysrKysrKysrKysrKysrKysr KysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDczIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw MDY0NCB0ZXN0cy9yZWYvZmF0ZS9maWx0ZXItZmVlZGJhY2staGZsaXAKIGNyZWF0ZSBtb2RlIDEw MDY0NCB0ZXN0cy9yZWYvZmF0ZS9maWx0ZXItZmVlZGJhY2steWFkaWYKCmRpZmYgLS1naXQgYS90 ZXN0cy9mYXRlL2ZpbHRlci12aWRlby5tYWsgYi90ZXN0cy9mYXRlL2ZpbHRlci12aWRlby5tYWsK aW5kZXggMDg3YmE4ZDljZC4uOWYzYzkyYTM5NSAxMDA2NDQKLS0tIGEvdGVzdHMvZmF0ZS9maWx0 ZXItdmlkZW8ubWFrCisrKyBiL3Rlc3RzL2ZhdGUvZmlsdGVyLXZpZGVvLm1hawpAQCAtMjAsNiAr MjAsMTEgQEAgZmF0ZS1maWx0ZXItYndkaWYxMDogQ01EID0gZnJhbWVjcmMgLWVjIDAgLWZsYWdz IGJpdGV4YWN0IC1pZGN0IHNpbXBsZSAtaSAkKFRBUkcKIAogRkFURV9GSUxURVJfU0FNUExFUy15 ZXMgKz0gJChGQVRFX0JXRElGLXllcykKIAorRkFURV9GRUVEQkFDSy0kKGNhbGwgRklMVEVSREVN REVDLCBGRUVEQkFDSyBZQURJRiwgTVBFR1RTLCBNUEVHMlZJREVPKSArPSBmYXRlLWZpbHRlci1m ZWVkYmFjay15YWRpZgorZmF0ZS1maWx0ZXItZmVlZGJhY2steWFkaWY6IENNRCA9IGZyYW1lY3Jj IC1lYyAwIC1mbGFncyBiaXRleGFjdCAtaWRjdCBzaW1wbGUgLWkgJChUQVJHRVRfU0FNUExFUykv bXBlZzIvbXBlZzJfZmllbGRfZW5jb2RpbmcudHMgLWZyYW1lczp2IDMwIC12ZiAiW2luXVt5YWRp ZmluXWZlZWRiYWNrPXg9MDp5PTA6dz0xMDA6aD0xMDBbb3V0XVt5YWRpZm91dF07W3lhZGlmb3V0 XXlhZGlmW3lhZGlmaW5dIgorCitGQVRFX0ZJTFRFUl9TQU1QTEVTLXllcyArPSAkKEZBVEVfRkVF REJBQ0steWVzKQorCiBGQVRFX1lBRElGLSQoY2FsbCBGSUxURVJERU1ERUMsIFlBRElGLCBNUEVH VFMsIE1QRUcyVklERU8pICs9IGZhdGUtZmlsdGVyLXlhZGlmLW1vZGUwIGZhdGUtZmlsdGVyLXlh ZGlmLW1vZGUxCiBmYXRlLWZpbHRlci15YWRpZi1tb2RlMDogQ01EID0gZnJhbWVjcmMgLWVjIDAg LWZsYWdzIGJpdGV4YWN0IC1pZGN0IHNpbXBsZSAtaSAkKFRBUkdFVF9TQU1QTEVTKS9tcGVnMi9t cGVnMl9maWVsZF9lbmNvZGluZy50cyAtZnJhbWVzOnYgMzAgLXZmIHlhZGlmPTAKIGZhdGUtZmls dGVyLXlhZGlmLW1vZGUxOiBDTUQgPSBmcmFtZWNyYyAtZWMgMCAtZmxhZ3MgYml0ZXhhY3QgLWlk Y3Qgc2ltcGxlIC1pICQoVEFSR0VUX1NBTVBMRVMpL21wZWcyL21wZWcyX2ZpZWxkX2VuY29kaW5n LnRzIC1mcmFtZXM6diA1OSAtdmYgeWFkaWY9MQpAQCAtMTcwLDYgKzE3NSw5IEBAIEZBVEVfRklM VEVSLSQoY2FsbCBGSUxURVJGUkFNRUNSQywgVEVTVFNSQyBGT1JNQVQgQ09OQ0FUIFNDQUxFLCBM QVZGSV9JTkRFViBGSUxFCiBmYXRlLWZpbHRlci1sYXZkLXNjYWxlbm9ybTogdGVzdHMvZGF0YS9m aWx0ZXJncmFwaHMvc2NhbGVub3JtCiBmYXRlLWZpbHRlci1sYXZkLXNjYWxlbm9ybTogQ01EID0g ZnJhbWVjcmMgLWYgbGF2ZmkgLWdyYXBoX2ZpbGUgJChUQVJHRVRfUEFUSCkvdGVzdHMvZGF0YS9m aWx0ZXJncmFwaHMvc2NhbGVub3JtIC1pIGR1bW15CiAKK0ZBVEVfRklMVEVSLSQoY2FsbCBGSUxU RVJGUkFNRUNSQywgVEVTVFNSQzIgRkVFREJBQ0sgSEZMSVApICs9IGZhdGUtZmlsdGVyLWZlZWRi YWNrLWhmbGlwCitmYXRlLWZpbHRlci1mZWVkYmFjay1oZmxpcDogQ01EID0gZnJhbWVjcmMgLWYg bGF2ZmkgLWkgdGVzdHNyYzI9ZD0xIC12ZiAiW2luXVtoZmxpcGluXWZlZWRiYWNrPXg9MDp5PTA6 dz0xMDA6aD0xMDBbb3V0XVtoZmxpcG91dF07W2hmbGlwb3V0XWhmbGlwW2hmbGlwaW5dIgorCiBG QVRFX0ZJTFRFUi0kKGNhbGwgRklMVEVSRlJBTUVDUkMsIEZSQU1FUkFURSBURVNUU1JDMikgKz0g ZmF0ZS1maWx0ZXItZnJhbWVyYXRlLXVwIGZhdGUtZmlsdGVyLWZyYW1lcmF0ZS1kb3duCiBmYXRl LWZpbHRlci1mcmFtZXJhdGUtdXA6IENNRCA9IGZyYW1lY3JjIC1sYXZmaSB0ZXN0c3JjMj1yPTI6 ZD0xMCxmcmFtZXJhdGU9ZnBzPTEwIC10IDEKIGZhdGUtZmlsdGVyLWZyYW1lcmF0ZS1kb3duOiBD TUQgPSBmcmFtZWNyYyAtbGF2ZmkgdGVzdHNyYzI9cj0yOmQ9MTAsZnJhbWVyYXRlPWZwcz0xIC10 IDEKZGlmZiAtLWdpdCBhL3Rlc3RzL3JlZi9mYXRlL2ZpbHRlci1mZWVkYmFjay1oZmxpcCBiL3Rl c3RzL3JlZi9mYXRlL2ZpbHRlci1mZWVkYmFjay1oZmxpcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi4wYzAwNGVlMjgxCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcmVm L2ZhdGUvZmlsdGVyLWZlZWRiYWNrLWhmbGlwCkBAIC0wLDAgKzEsMzAgQEAKKyN0YiAwOiAxLzI1 CisjbWVkaWFfdHlwZSAwOiB2aWRlbworI2NvZGVjX2lkIDA6IHJhd3ZpZGVvCisjZGltZW5zaW9u cyAwOiAzMjB4MjQwCisjc2FyIDA6IDEvMQorMCwgICAgICAgICAgMCwgICAgICAgICAgMCwgICAg ICAgIDEsICAgMTE1MjAwLCAweDQ0MWQwZmYzCiswLCAgICAgICAgICAxLCAgICAgICAgICAxLCAg ICAgICAgMSwgICAxMTUyMDAsIDB4NWRlNzM2NTgKKzAsICAgICAgICAgIDIsICAgICAgICAgIDIs ICAgICAgICAxLCAgIDExNTIwMCwgMHgxZjcyN2UwMworMCwgICAgICAgICAgMywgICAgICAgICAg MywgICAgICAgIDEsICAgMTE1MjAwLCAweGJmMmZhMGM0CiswLCAgICAgICAgICA0LCAgICAgICAg ICA0LCAgICAgICAgMSwgICAxMTUyMDAsIDB4ZWU0ZWQ0NzQKKzAsICAgICAgICAgIDUsICAgICAg ICAgIDUsICAgICAgICAxLCAgIDExNTIwMCwgMHgwMDEzZjQ1YgorMCwgICAgICAgICAgNiwgICAg ICAgICAgNiwgICAgICAgIDEsICAgMTE1MjAwLCAweDdjN2NmOTI5CiswLCAgICAgICAgICA3LCAg ICAgICAgICA3LCAgICAgICAgMSwgICAxMTUyMDAsIDB4ZDRjZGY4MjQKKzAsICAgICAgICAgIDgs ICAgICAgICAgIDgsICAgICAgICAxLCAgIDExNTIwMCwgMHgxZTQ4ZmFkOQorMCwgICAgICAgICAg OSwgICAgICAgICAgOSwgICAgICAgIDEsICAgMTE1MjAwLCAweGNiYmZmMjIwCiswLCAgICAgICAg IDEwLCAgICAgICAgIDEwLCAgICAgICAgMSwgICAxMTUyMDAsIDB4MTE2MmZjYzkKKzAsICAgICAg ICAgMTEsICAgICAgICAgMTEsICAgICAgICAxLCAgIDExNTIwMCwgMHg3NDJmZjAyOQorMCwgICAg ICAgICAxMiwgICAgICAgICAxMiwgICAgICAgIDEsICAgMTE1MjAwLCAweDk5MDFmMmUwCiswLCAg ICAgICAgIDEzLCAgICAgICAgIDEzLCAgICAgICAgMSwgICAxMTUyMDAsIDB4ZjBhMWY4MjgKKzAs ICAgICAgICAgMTQsICAgICAgICAgMTQsICAgICAgICAxLCAgIDExNTIwMCwgMHg1ODU5MDNiOAor MCwgICAgICAgICAxNSwgICAgICAgICAxNSwgICAgICAgIDEsICAgMTE1MjAwLCAweDJkYmYxNWY2 CiswLCAgICAgICAgIDE2LCAgICAgICAgIDE2LCAgICAgICAgMSwgICAxMTUyMDAsIDB4MGZkMDEx ZjUKKzAsICAgICAgICAgMTcsICAgICAgICAgMTcsICAgICAgICAxLCAgIDExNTIwMCwgMHg3M2Vj MTJjZgorMCwgICAgICAgICAxOCwgICAgICAgICAxOCwgICAgICAgIDEsICAgMTE1MjAwLCAweDA5 YzkxMGU5CiswLCAgICAgICAgIDE5LCAgICAgICAgIDE5LCAgICAgICAgMSwgICAxMTUyMDAsIDB4 OTA4MTEwMjUKKzAsICAgICAgICAgMjAsICAgICAgICAgMjAsICAgICAgICAxLCAgIDExNTIwMCwg MHhkMmQ3MjFiMQorMCwgICAgICAgICAyMSwgICAgICAgICAyMSwgICAgICAgIDEsICAgMTE1MjAw LCAweGZhYTMwOWEwCiswLCAgICAgICAgIDIyLCAgICAgICAgIDIyLCAgICAgICAgMSwgICAxMTUy MDAsIDB4NGMwMTA3NzYKKzAsICAgICAgICAgMjMsICAgICAgICAgMjMsICAgICAgICAxLCAgIDEx NTIwMCwgMHgzNTYwZWFhYworMCwgICAgICAgICAyNCwgICAgICAgICAyNCwgICAgICAgIDEsICAg MTE1MjAwLCAweGVlZDJkNTVkCmRpZmYgLS1naXQgYS90ZXN0cy9yZWYvZmF0ZS9maWx0ZXItZmVl ZGJhY2steWFkaWYgYi90ZXN0cy9yZWYvZmF0ZS9maWx0ZXItZmVlZGJhY2steWFkaWYKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uODQxYjE3YTdjZAotLS0gL2Rldi9udWxs CisrKyBiL3Rlc3RzL3JlZi9mYXRlL2ZpbHRlci1mZWVkYmFjay15YWRpZgpAQCAtMCwwICsxLDM1 IEBACisjdGIgMDogMS8yNQorI21lZGlhX3R5cGUgMDogdmlkZW8KKyNjb2RlY19pZCAwOiByYXd2 aWRlbworI2RpbWVuc2lvbnMgMDogNzIweDU3NgorI3NhciAwOiAxNi8xNQorMCwgICAgICAgICAg OSwgICAgICAgICAgOSwgICAgICAgIDEsICAgNjIyMDgwLCAweDY5NGM5NTUzCiswLCAgICAgICAg IDEwLCAgICAgICAgIDEwLCAgICAgICAgMSwgICA2MjIwODAsIDB4MjEzZWMwMTIKKzAsICAgICAg ICAgMTEsICAgICAgICAgMTEsICAgICAgICAxLCAgIDYyMjA4MCwgMHgyNWM1ZDAwNgorMCwgICAg ICAgICAxMiwgICAgICAgICAxMiwgICAgICAgIDEsICAgNjIyMDgwLCAweDY1YjYyMDdkCiswLCAg ICAgICAgIDEzLCAgICAgICAgIDEzLCAgICAgICAgMSwgICA2MjIwODAsIDB4YTY3MGI5ZWIKKzAs ICAgICAgICAgMTQsICAgICAgICAgMTQsICAgICAgICAxLCAgIDYyMjA4MCwgMHgxZTAxZTJjZgor MCwgICAgICAgICAxNSwgICAgICAgICAxNSwgICAgICAgIDEsICAgNjIyMDgwLCAweGFlOTI3YzEx CiswLCAgICAgICAgIDE2LCAgICAgICAgIDE2LCAgICAgICAgMSwgICA2MjIwODAsIDB4ZTA1YWU5 ZjgKKzAsICAgICAgICAgMTcsICAgICAgICAgMTcsICAgICAgICAxLCAgIDYyMjA4MCwgMHg5M2I1 ZGI2OQorMCwgICAgICAgICAxOCwgICAgICAgICAxOCwgICAgICAgIDEsICAgNjIyMDgwLCAweDI1 Mjk1NzUwCiswLCAgICAgICAgIDE5LCAgICAgICAgIDE5LCAgICAgICAgMSwgICA2MjIwODAsIDB4 ODJlYmYxMjYKKzAsICAgICAgICAgMjAsICAgICAgICAgMjAsICAgICAgICAxLCAgIDYyMjA4MCwg MHgzMmFlYTAyMgorMCwgICAgICAgICAyMSwgICAgICAgICAyMSwgICAgICAgIDEsICAgNjIyMDgw LCAweDU1YTU4NTFmCiswLCAgICAgICAgIDIyLCAgICAgICAgIDIyLCAgICAgICAgMSwgICA2MjIw ODAsIDB4Njk5NTFkY2MKKzAsICAgICAgICAgMjMsICAgICAgICAgMjMsICAgICAgICAxLCAgIDYy MjA4MCwgMHhmNGQ5YzZkMAorMCwgICAgICAgICAyNCwgICAgICAgICAyNCwgICAgICAgIDEsICAg NjIyMDgwLCAweDUxNzhkMWIxCiswLCAgICAgICAgIDI1LCAgICAgICAgIDI1LCAgICAgICAgMSwg ICA2MjIwODAsIDB4M2ZhMjIxYTMKKzAsICAgICAgICAgMjYsICAgICAgICAgMjYsICAgICAgICAx LCAgIDYyMjA4MCwgMHg2ZjUwNDRmNAorMCwgICAgICAgICAyNywgICAgICAgICAyNywgICAgICAg IDEsICAgNjIyMDgwLCAweDY5MWMzMjM0CiswLCAgICAgICAgIDI4LCAgICAgICAgIDI4LCAgICAg ICAgMSwgICA2MjIwODAsIDB4ZTY3YWM0NDgKKzAsICAgICAgICAgMjksICAgICAgICAgMjksICAg ICAgICAxLCAgIDYyMjA4MCwgMHg3MTk1MzUwYworMCwgICAgICAgICAzMCwgICAgICAgICAzMCwg ICAgICAgIDEsICAgNjIyMDgwLCAweDFiYjcwZTdiCiswLCAgICAgICAgIDMxLCAgICAgICAgIDMx LCAgICAgICAgMSwgICA2MjIwODAsIDB4ZjA4OTM5N2QKKzAsICAgICAgICAgMzIsICAgICAgICAg MzIsICAgICAgICAxLCAgIDYyMjA4MCwgMHg2ZTIzNjNiNgorMCwgICAgICAgICAzMywgICAgICAg ICAzMywgICAgICAgIDEsICAgNjIyMDgwLCAweDg0Yzg1NDhjCiswLCAgICAgICAgIDM0LCAgICAg ICAgIDM0LCAgICAgICAgMSwgICA2MjIwODAsIDB4ODEyZTVlYTkKKzAsICAgICAgICAgMzUsICAg ICAgICAgMzUsICAgICAgICAxLCAgIDYyMjA4MCwgMHg3YmEyMzhjNgorMCwgICAgICAgICAzNiwg ICAgICAgICAzNiwgICAgICAgIDEsICAgNjIyMDgwLCAweDc0MDMxN2Y1CiswLCAgICAgICAgIDM3 LCAgICAgICAgIDM3LCAgICAgICAgMSwgICA2MjIwODAsIDB4ZjViMjJlZjYKKzAsICAgICAgICAg MzgsICAgICAgICAgMzgsICAgICAgICAxLCAgIDYyMjA4MCwgMHg1NGUzYjNmMgotLSAKMi41Mi4w CgoKRnJvbSBlNmVkZWY5ZGIwM2VlY2E3YzBiNjY0MjhiYmJkNmYwZjlmYTcxZTllIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMeW5uZSA8ZGV2QGx5bm5lLmVlPgpEYXRlOiBXZWQsIDMg RGVjIDIwMjUgMjI6MzQ6MDMgKzAxMDAKU3ViamVjdDogW1BBVENIIDE4OS8zMDRdIGh3Y29udGV4 dF92dWxrYW46IGZpeCBmaW5hbCBlcnJvciB0byBsZXQgb2xkIGhlYWRlcgogZmlsZXMgd29yawoK Li4uLi4uLi4KLS0tCiBsaWJhdnV0aWwvaHdjb250ZXh0X3Z1bGthbi5jIHwgMiArLQogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbGli YXZ1dGlsL2h3Y29udGV4dF92dWxrYW4uYyBiL2xpYmF2dXRpbC9od2NvbnRleHRfdnVsa2FuLmMK aW5kZXggMmZjNjZhMGNlYS4uYTEyMGU2MTg1YyAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL2h3Y29u dGV4dF92dWxrYW4uYworKysgYi9saWJhdnV0aWwvaHdjb250ZXh0X3Z1bGthbi5jCkBAIC0yNTg2 LDcgKzI1ODYsNyBAQCBzdGF0aWMgaW50IHN3aXRjaF9sYXlvdXRfaG9zdChBVkhXRnJhbWVzQ29u dGV4dCAqaHdmYywgRkZWa0V4ZWNQb29sICplY3R4LAogCiAgICAgZm9yIChpID0gMDsgaSA8IG5i X2ltYWdlczsgaSsrKSB7CiAgICAgICAgIGxheW91dF9jaGFuZ2VbaV0gPSAoVmtIb3N0SW1hZ2VM YXlvdXRUcmFuc2l0aW9uSW5mb0VYVCkgewotICAgICAgICAgICAgLnNUeXBlID0gVktfU1RSVUNU VVJFX1RZUEVfSE9TVF9JTUFHRV9MQVlPVVRfVFJBTlNJVElPTl9JTkZPLAorICAgICAgICAgICAg LnNUeXBlID0gVktfU1RSVUNUVVJFX1RZUEVfSE9TVF9JTUFHRV9MQVlPVVRfVFJBTlNJVElPTl9J TkZPX0VYVCwKICAgICAgICAgICAgIC5pbWFnZSA9IGZyYW1lLT5pbWdbaV0sCiAgICAgICAgICAg ICAub2xkTGF5b3V0ID0gZnJhbWUtPmxheW91dFtpXSwKICAgICAgICAgICAgIC5uZXdMYXlvdXQg PSBuZXdfbGF5b3V0LAotLSAKMi41Mi4wCgoKRnJvbSBkZjE5MWE4MDczMDQwZmJkZmIzNmIwZTEz ZTQ3MTNlZGJjYzIzYjQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiB3dXRubyA8YWFy b25AaW5zdGFsbGdlbnRvby5uZXQ+CkRhdGU6IFRodSwgMjAgTm92IDIwMjUgMTY6MTk6NDkgLTA1 MDAKU3ViamVjdDogW1BBVENIIDE5MC8zMDRdIGF2Zm9ybWF0L3htdjogSGFuZGxlIHplcm8gc2l6 ZWQgcGFja2V0IGF0IGVuZCBvZiBmaWxlCgpTb21lIFhNVnMgaW50cm9kdWNlIGEgYmxhbmsgcGFj a2V0IGF0IHRoZSBlbmQgb2YgdGhlIHN0cmVhbS4gUHJldmlvdXNseSwgd2UKZGlkbid0IGFjY291 bnQgZm9yIHRoaXMgYW5kIHJldHVybmVkIEFWRVJST1JfSU5WQUxJRERBVEEsIGluZGljYXRpbmcg YW4gaXNzdWUKd2l0aCB0aGUgZmlsZS4gSW5zdGVhZCwgbGV0J3MgY2hlY2sgZm9yIHRoaXMgYW5k IGNsb3NlIG91dCB3aXRoIEFWRVJST1JfRU9GLgotLS0KIGxpYmF2Zm9ybWF0L3htdi5jIHwgMiAr LQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvbGliYXZmb3JtYXQveG12LmMgYi9saWJhdmZvcm1hdC94bXYuYwppbmRleCBjMGI0MDI4 NjBlLi4yYzVlMmJiNDc1IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC94bXYuYworKysgYi9saWJh dmZvcm1hdC94bXYuYwpAQCAtNDEyLDcgKzQxMiw3IEBAIHN0YXRpYyBpbnQgeG12X2ZldGNoX25l d19wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgIEFWSU9Db250ZXh0ICAgICAqcGIgID0g cy0+cGI7CiAgICAgaW50IHJlc3VsdDsKIAotICAgIGlmICh4bXYtPnRoaXNfcGFja2V0X29mZnNl dCA9PSB4bXYtPm5leHRfcGFja2V0X29mZnNldCkKKyAgICBpZiAoeG12LT5uZXh0X3BhY2tldF9z aXplID09IDApCiAgICAgICAgIHJldHVybiBBVkVSUk9SX0VPRjsKIAogICAgIC8qIFNlZWsgdG8g aXQgKi8KLS0gCjIuNTIuMAoKCkZyb20gYzIwNDhiYTM1YzEyNGE4M2U5ZDY1YWM3ZmRkYjNhODdk ZThhZWQwZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0thY3Blcj0y ME1pY2hhaj1DNT04Mm93Pz0gPGthc3BlcjkzQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxIERlYyAy MDI1IDIxOjA5OjM0ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxOTEvMzA0XSBhdmRldmljZS9nZGln cmFiOiBzdXBwcmVzcyBpbnQgdG8gcG9pbnRlciBjYXN0CiB3YXJuaW5nCk1JTUUtVmVyc2lvbjog MS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0CgpGaXhlczogd2FybmluZzogY2FzdCB0byBwb2ludGVyIGZyb20g aW50ZWdlciBvZiBkaWZmZXJlbnQgc2l6ZSBbLVdpbnQtdG8tcG9pbnRlci1jYXN0XQpTaWduZWQt b2ZmLWJ5OiBLYWNwZXIgTWljaGFqxYJvdyA8a2FzcGVyOTNAZ21haWwuY29tPgotLS0KIGxpYmF2 ZGV2aWNlL2dkaWdyYWIuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2xpYmF2ZGV2aWNlL2dkaWdyYWIuYyBiL2xpYmF2 ZGV2aWNlL2dkaWdyYWIuYwppbmRleCAwOGE0MWMzMDRiLi5mYTliYTI3ZGIwIDEwMDY0NAotLS0g YS9saWJhdmRldmljZS9nZGlncmFiLmMKKysrIGIvbGliYXZkZXZpY2UvZ2RpZ3JhYi5jCkBAIC0y NzksNyArMjc5LDcgQEAgZ2RpZ3JhYl9yZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMxKQog ICAgICAgICBjaGFyICpwOwogICAgICAgICBuYW1lID0gZmlsZW5hbWUgKyA1OwogCi0gICAgICAg IGh3bmQgPSAoSFdORCkgc3RydG91bGwobmFtZSwgJnAsIDApOworICAgICAgICBod25kID0gKEhX TkQpKGludHB0cl90KSBzdHJ0b3VsbChuYW1lLCAmcCwgMCk7CiAKICAgICAgICAgaWYgKHAgPT0g TlVMTCB8fCBwID09IG5hbWUgfHwgcFswXSAhPSAnXDAnKQogICAgICAgICB7Ci0tIAoyLjUyLjAK CgpGcm9tIGM2ODYxNTg1YTRlOTBlOTM1YjM0M2ZhYmQ5MTQ2YzhkYjVjOTNlYjggTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9LYWNwZXI9MjBNaWNoYWo9QzU9ODJvdz89 IDxrYXNwZXI5M0BnbWFpbC5jb20+CkRhdGU6IE1vbiwgMSBEZWMgMjAyNSAyMToyMToyNSArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMTkyLzMwNF0gZmZ0b29scy9jbWR1dGlsczogdXNlIHN0cmNweSBk aXJlY3RseSwgdGhlIGxlbmd0aCBpcwogY29tcHV0ZWQgYWxyZWFkeQpNSU1FLVZlcnNpb246IDEu MApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zl ci1FbmNvZGluZzogOGJpdAoKVGhlcmUgaXMgbm8gbmVlZCB0byBzY2FuIGZvciBOVUxMLCBpZiB3 ZSBpbmplY3QgaXQgb3Vyc2VsdmVzLgoKRml4ZXM6IHdhcm5pbmc6ICdzdHJuY2F0JyBzcGVjaWZp ZWQgYm91bmQgMTAgZXF1YWxzIHNvdXJjZSBsZW5ndGggWy1Xc3RyaW5nb3Atb3ZlcmZsb3c9XQpT aWduZWQtb2ZmLWJ5OiBLYWNwZXIgTWljaGFqxYJvdyA8a2FzcGVyOTNAZ21haWwuY29tPgotLS0K IGZmdG9vbHMvY21kdXRpbHMuYyB8IDMgKy0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZmZ0b29scy9jbWR1dGlscy5jIGIvZmZ0 b29scy9jbWR1dGlscy5jCmluZGV4IGU5MDZkNDUwNmQuLjlhMzY1YzIyOGQgMTAwNjQ0Ci0tLSBh L2ZmdG9vbHMvY21kdXRpbHMuYworKysgYi9mZnRvb2xzL2NtZHV0aWxzLmMKQEAgLTk2Miw4ICs5 NjIsNyBAQCBGSUxFICpnZXRfcHJlc2V0X2ZpbGUoY2hhciAqZmlsZW5hbWUsIHNpemVfdCBmaWxl bmFtZV9zaXplLAogICAgICAgICAgICAgICAgICAgICBkYXRhZGlyLCBkZXNpcmVkX3NpemUsIHNp emVvZiAqZGF0YWRpcik7CiAgICAgICAgICAgICAgICAgaWYgKG5ld19kYXRhZGlyKSB7CiAgICAg ICAgICAgICAgICAgICAgIGRhdGFkaXIgPSBuZXdfZGF0YWRpcjsKLSAgICAgICAgICAgICAgICAg ICAgZGF0YWRpcltkYXRhZGlyX2xlbl0gPSAwOwotICAgICAgICAgICAgICAgICAgICBzdHJuY2F0 KGRhdGFkaXIsICIvZmZwcmVzZXRzIiwgIGRlc2lyZWRfc2l6ZSAtIDEgLSBkYXRhZGlyX2xlbik7 CisgICAgICAgICAgICAgICAgICAgIHN0cmNweShkYXRhZGlyICsgZGF0YWRpcl9sZW4sICIvZmZw cmVzZXRzIik7CiAgICAgICAgICAgICAgICAgICAgIGJhc2VbMl0gPSBkYXRhZGlyOwogICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLS0gCjIuNTIuMAoKCkZyb20gNTQ5ZDk2NGUyYjY2 MTI2MzU2N2U0NWU2YzE2Mzk1ZTExNWQ2NDZiNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogPT9VVEYtOD9xP0thY3Blcj0yME1pY2hhaj1DNT04Mm93Pz0gPGthc3BlcjkzQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAxIERlYyAyMDI1IDIxOjMwOjI2ICswMTAwClN1YmplY3Q6IFtQQVRDSCAx OTMvMzA0XSBhdnV0aWwvdnVsa2FuOiBmaXggZGV2aWNlIG1lbW9yeSBzaXplIHRydW5jYXRpb24K TUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04 CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCnNpemVfdCBjYW5ub3QgZml0IFZLX1dI T0xFX1NJWkUgb24gMzItYml0IGJ1aWxkcy4KCkZpeGVzOiB3YXJuaW5nOiBjb252ZXJzaW9uIGZy b20gJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnIHRvICdzaXplX3QnIHtha2EgJ3Vuc2lnbmVkIGlu dCd9IGNoYW5nZXMgdmFsdWUgZnJvbSAnMTg0NDY3NDQwNzM3MDk1NTE2MTUnIHRvICc0Mjk0OTY3 Mjk1JwoKU2lnbmVkLW9mZi1ieTogS2FjcGVyIE1pY2hhasWCb3cgPGthc3BlcjkzQGdtYWlsLmNv bT4KLS0tCiBsaWJhdnV0aWwvdnVsa2FuLmMgfCAyICstCiBsaWJhdnV0aWwvdnVsa2FuLmggfCAy ICstCiAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9saWJhdnV0aWwvdnVsa2FuLmMgYi9saWJhdnV0aWwvdnVsa2FuLmMKaW5kZXgg MzAxNWE1MzZjMi4uNzg1OGUwMDJlZCAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL3Z1bGthbi5jCisr KyBiL2xpYmF2dXRpbC92dWxrYW4uYwpAQCAtMTE2OCw3ICsxMTY4LDcgQEAgaW50IGZmX3ZrX21h cF9idWZmZXJzKEZGVnVsa2FuQ29udGV4dCAqcywgRkZWa0J1ZmZlciAqKmJ1ZiwgdWludDhfdCAq bWVtW10sCiB9CiAKIGludCBmZl92a19mbHVzaF9idWZmZXIoRkZWdWxrYW5Db250ZXh0ICpzLCBG RlZrQnVmZmVyICpidWYsCi0gICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQsIHNp emVfdCBtZW1fc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgVmtEZXZpY2VTaXplIG9mZnNl dCwgVmtEZXZpY2VTaXplIG1lbV9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICBpbnQgZmx1 c2gpCiB7CiAgICAgVmtSZXN1bHQgcmV0OwpkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL3Z1bGthbi5o IGIvbGliYXZ1dGlsL3Z1bGthbi5oCmluZGV4IDg2ODc4OGMyYTQuLjI5MTE2YmNiMmMgMTAwNjQ0 Ci0tLSBhL2xpYmF2dXRpbC92dWxrYW4uaAorKysgYi9saWJhdnV0aWwvdnVsa2FuLmgKQEAgLTUy Nyw3ICs1MjcsNyBAQCBpbnQgZmZfdmtfY3JlYXRlX2J1ZihGRlZ1bGthbkNvbnRleHQgKnMsIEZG VmtCdWZmZXIgKmJ1Ziwgc2l6ZV90IHNpemUsCiAgKiBGbHVzaCBvciBpbnZhbGlkYXRlIGEgc2lu Z2xlIGJ1ZmZlciwgd2l0aCBhIGdpdmVuIHNpemUgYW5kIG9mZnNldC4KICAqLwogaW50IGZmX3Zr X2ZsdXNoX2J1ZmZlcihGRlZ1bGthbkNvbnRleHQgKnMsIEZGVmtCdWZmZXIgKmJ1ZiwKLSAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZV90IG9mZnNldCwgc2l6ZV90IG1lbV9zaXplLAorICAgICAg ICAgICAgICAgICAgICAgICBWa0RldmljZVNpemUgb2Zmc2V0LCBWa0RldmljZVNpemUgbWVtX3Np emUsCiAgICAgICAgICAgICAgICAgICAgICAgIGludCBmbHVzaCk7CiAKIC8qKgotLSAKMi41Mi4w CgoKRnJvbSA1ZTY3OTRjYTdkOTgxMWQwYjIwMDdkNGQ4ZDRmMWVhMmU2YjYyMjc0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWVsIE5pZWRlcm1heWVyIDxtaWNoYWVsQG5pZWRl cm1heWVyLmNjPgpEYXRlOiBUdWUsIDIgRGVjIDIwMjUgMDQ6MzY6NDcgKzAxMDAKU3ViamVjdDog W1BBVENIIDE5NC8zMDRdIFJldmVydCAiYXZmb3JtYXQvcmF3ZGVjOiBzZXQgZnJhbWVyYXRlIGlu IGNvZGVjCiBwYXJhbWV0ZXJzIgoKRml4ZXMgc2luZ2xlIGltYWdlIHZpZGVvcwp0aGlzIHdvcmtz IGFuZCBjcmVhdGVzIG91ciBzaW5nbGUgaW1hZ2UgdmlkZW8KLi9mZm1wZWcgLWkgbGVuYS5wbm0g L3RtcC9maWxlLm0ydgoKdGhpcyBmYWlscyBhZnRlciAzZDk2ZDgzYTBhMDA5YTNiZjU2NmIyMDhi MTRhN2QyNjRmMTcyNjNiOgouL2ZmbXBlZyAtaSAvdG1wL2ZpbGUubTJ2IC90bXAvZmlsZS5qcGcg LXkKClRoaXMgcmV2ZXJ0cyBjb21taXQgM2Q5NmQ4M2EwYTAwOWEzYmY1NjZiMjA4YjE0YTdkMjY0 ZjE3MjYzYi4KLS0tCiBsaWJhdmZvcm1hdC9yYXdkZWMuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKy0KIHRlc3RzL3JlZi9mYXRlL2NhdnMtZGVtdXggICAgICAgICAgICAgICAgICAg ICB8ICAgMiArLQogdGVzdHMvcmVmL2ZhdGUvZW5oYW5jZWQtZmx2LWhldmMtaGRyMTAgICAgICAg IHwgICA0ICstCiB0ZXN0cy9yZWYvZmF0ZS9oMjY0LWJzZi1kdHMycHRzICAgICAgICAgICAgICAg fCAxMDIgKysrKysrKysrLS0tLS0tLS0tCiAuLi4vcmVmL2ZhdGUvaDI2NC1jb25mb3JtYW5jZS1j dnBjbW5sMl9zdmFfYyAgfCAgIDYgKy0KIHRlc3RzL3JlZi9mYXRlL2hldmMtYnNmLWR0czJwdHMt Y3JhICAgICAgICAgICB8ICA2OCArKysrKystLS0tLS0KIHRlc3RzL3JlZi9mYXRlL2hldmMtYnNm LWR0czJwdHMtaWRyICAgICAgICAgICB8ICAzOCArKystLS0tCiB0ZXN0cy9yZWYvZmF0ZS9oZXZj LWJzZi1kdHMycHRzLWlkci1jcmEgICAgICAgfCAgMzggKysrLS0tLQogdGVzdHMvcmVmL2xhdmYt ZmF0ZS9oZXZjLm1wNCAgICAgICAgICAgICAgICAgIHwgICAyICstCiA5IGZpbGVzIGNoYW5nZWQs IDEzMSBpbnNlcnRpb25zKCspLCAxMzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZm b3JtYXQvcmF3ZGVjLmMgYi9saWJhdmZvcm1hdC9yYXdkZWMuYwppbmRleCA1Y2YyNzY0YTBkLi5k MGM4MjlkYzQyIDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9yYXdkZWMuYworKysgYi9saWJhdmZv cm1hdC9yYXdkZWMuYwpAQCAtODMsOSArODMsOSBAQCBpbnQgZmZfcmF3X3ZpZGVvX3JlYWRfaGVh ZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKIAogICAgIHN0LT5jb2RlY3Bhci0+Y29kZWNfdHlwZSA9 IEFWTUVESUFfVFlQRV9WSURFTzsKICAgICBzdC0+Y29kZWNwYXItPmNvZGVjX2lkID0gZmZpZm10 KHMtPmlmb3JtYXQpLT5yYXdfY29kZWNfaWQ7Ci0gICAgc3QtPmNvZGVjcGFyLT5mcmFtZXJhdGUg PSBzMS0+ZnJhbWVyYXRlOwogICAgIHN0aS0+bmVlZF9wYXJzaW5nID0gQVZTVFJFQU1fUEFSU0Vf RlVMTF9SQVc7CiAKKyAgICBzdC0+YXZnX2ZyYW1lX3JhdGUgPSBzMS0+ZnJhbWVyYXRlOwogICAg IGF2cHJpdl9zZXRfcHRzX2luZm8oc3QsIDY0LCAxLCAxMjAwMDAwKTsKIAogZmFpbDoKZGlmZiAt LWdpdCBhL3Rlc3RzL3JlZi9mYXRlL2NhdnMtZGVtdXggYi90ZXN0cy9yZWYvZmF0ZS9jYXZzLWRl bXV4CmluZGV4IGViMTZlYjFmOWQuLmM0ODQ3MjkzYWIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3JlZi9m YXRlL2NhdnMtZGVtdXgKKysrIGIvdGVzdHMvcmVmL2ZhdGUvY2F2cy1kZW11eApAQCAtNTgsNSAr NTgsNSBAQCBwYWNrZXR8Y29kZWNfdHlwZT12aWRlb3xzdHJlYW1faW5kZXg9MHxwdHM9MjI0MDAw MHxwdHNfdGltZT0xLjg2NjY2N3xkdHM9MjI0MDAwMAogcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98 c3RyZWFtX2luZGV4PTB8cHRzPTIyODAwMDB8cHRzX3RpbWU9MS45MDAwMDB8ZHRzPTIyODAwMDB8 ZHRzX3RpbWU9MS45MDAwMDB8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xz aXplPTY3fHBvcz0xNzIxODV8ZmxhZ3M9X19ffGRhdGFfaGFzaD1DUkMzMjo0MjQ4NDQ0OQogcGFj a2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8cHRzPTIzMjAwMDB8cHRzX3RpbWU9 MS45MzMzMzN8ZHRzPTIzMjAwMDB8ZHRzX3RpbWU9MS45MzMzMzN8ZHVyYXRpb249NDAwMDB8ZHVy YXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTgzfHBvcz0xNzIyNTJ8ZmxhZ3M9X19ffGRhdGFfaGFz aD1DUkMzMjphOTQxYmRmMAogcGFja2V0fGNvZGVjX3R5cGU9dmlkZW98c3RyZWFtX2luZGV4PTB8 cHRzPTIzNjAwMDB8cHRzX3RpbWU9MS45NjY2Njd8ZHRzPTIzNjAwMDB8ZHRzX3RpbWU9MS45NjY2 Njd8ZHVyYXRpb249NDAwMDB8ZHVyYXRpb25fdGltZT0wLjAzMzMzM3xzaXplPTU0MTd8cG9zPTE3 MjMzNXxmbGFncz1fX198ZGF0YV9oYXNoPUNSQzMyOjlkMGQ1MDNiCi1zdHJlYW18aW5kZXg9MHxj b2RlY19uYW1lPWNhdnN8cHJvZmlsZT11bmtub3dufGNvZGVjX3R5cGU9dmlkZW98Y29kZWNfdGFn X3N0cmluZz1bMF1bMF1bMF1bMF18Y29kZWNfdGFnPTB4MDAwMHx3aWR0aD0xMjgwfGhlaWdodD03 MjB8Y29kZWRfd2lkdGg9MTI4MHxjb2RlZF9oZWlnaHQ9NzIwfGhhc19iX2ZyYW1lcz0wfHNhbXBs ZV9hc3BlY3RfcmF0aW89Ti9BfGRpc3BsYXlfYXNwZWN0X3JhdGlvPU4vQXxwaXhfZm10PXl1djQy MHB8bGV2ZWw9LTk5fGNvbG9yX3JhbmdlPXVua25vd258Y29sb3Jfc3BhY2U9dW5rbm93bnxjb2xv cl90cmFuc2Zlcj11bmtub3dufGNvbG9yX3ByaW1hcmllcz11bmtub3dufGNocm9tYV9sb2NhdGlv bj11bnNwZWNpZmllZHxmaWVsZF9vcmRlcj11bmtub3dufHJlZnM9MXxpZD1OL0F8cl9mcmFtZV9y YXRlPTMwLzF8YXZnX2ZyYW1lX3JhdGU9MzAvMXx0aW1lX2Jhc2U9MS8xMjAwMDAwfHN0YXJ0X3B0 cz1OL0F8c3RhcnRfdGltZT1OL0F8ZHVyYXRpb25fdHM9Ti9BfGR1cmF0aW9uPU4vQXxiaXRfcmF0 ZT1OL0F8bWF4X2JpdF9yYXRlPU4vQXxiaXRzX3Blcl9yYXdfc2FtcGxlPU4vQXxuYl9mcmFtZXM9 Ti9BfG5iX3JlYWRfZnJhbWVzPU4vQXxuYl9yZWFkX3BhY2tldHM9NjB8ZXh0cmFkYXRhX3NpemU9 MTh8ZXh0cmFkYXRhX2hhc2g9Q1JDMzI6MTI1NWQ1MmV8ZGlzcG9zaXRpb246ZGVmYXVsdD0wfGRp c3Bvc2l0aW9uOmR1Yj0wfGRpc3Bvc2l0aW9uOm9yaWdpbmFsPTB8ZGlzcG9zaXRpb246Y29tbWVu dD0wfGRpc3Bvc2l0aW9uOmx5cmljcz0wfGRpc3Bvc2l0aW9uOmthcmFva2U9MHxkaXNwb3NpdGlv bjpmb3JjZWQ9MHxkaXNwb3NpdGlvbjpoZWFyaW5nX2ltcGFpcmVkPTB8ZGlzcG9zaXRpb246dmlz dWFsX2ltcGFpcmVkPTB8ZGlzcG9zaXRpb246Y2xlYW5fZWZmZWN0cz0wfGRpc3Bvc2l0aW9uOmF0 dGFjaGVkX3BpYz0wfGRpc3Bvc2l0aW9uOnRpbWVkX3RodW1ibmFpbHM9MHxkaXNwb3NpdGlvbjpu b25fZGllZ2V0aWM9MHxkaXNwb3NpdGlvbjpjYXB0aW9ucz0wfGRpc3Bvc2l0aW9uOmRlc2NyaXB0 aW9ucz0wfGRpc3Bvc2l0aW9uOm1ldGFkYXRhPTB8ZGlzcG9zaXRpb246ZGVwZW5kZW50PTB8ZGlz cG9zaXRpb246c3RpbGxfaW1hZ2U9MHxkaXNwb3NpdGlvbjptdWx0aWxheWVyPTAKK3N0cmVhbXxp bmRleD0wfGNvZGVjX25hbWU9Y2F2c3xwcm9maWxlPXVua25vd258Y29kZWNfdHlwZT12aWRlb3xj b2RlY190YWdfc3RyaW5nPVswXVswXVswXVswXXxjb2RlY190YWc9MHgwMDAwfHdpZHRoPTEyODB8 aGVpZ2h0PTcyMHxjb2RlZF93aWR0aD0xMjgwfGNvZGVkX2hlaWdodD03MjB8aGFzX2JfZnJhbWVz PTB8c2FtcGxlX2FzcGVjdF9yYXRpbz1OL0F8ZGlzcGxheV9hc3BlY3RfcmF0aW89Ti9BfHBpeF9m bXQ9eXV2NDIwcHxsZXZlbD0tOTl8Y29sb3JfcmFuZ2U9dW5rbm93bnxjb2xvcl9zcGFjZT11bmtu b3dufGNvbG9yX3RyYW5zZmVyPXVua25vd258Y29sb3JfcHJpbWFyaWVzPXVua25vd258Y2hyb21h X2xvY2F0aW9uPXVuc3BlY2lmaWVkfGZpZWxkX29yZGVyPXVua25vd258cmVmcz0xfGlkPU4vQXxy X2ZyYW1lX3JhdGU9MzAvMXxhdmdfZnJhbWVfcmF0ZT0yNS8xfHRpbWVfYmFzZT0xLzEyMDAwMDB8 c3RhcnRfcHRzPU4vQXxzdGFydF90aW1lPU4vQXxkdXJhdGlvbl90cz1OL0F8ZHVyYXRpb249Ti9B fGJpdF9yYXRlPU4vQXxtYXhfYml0X3JhdGU9Ti9BfGJpdHNfcGVyX3Jhd19zYW1wbGU9Ti9BfG5i X2ZyYW1lcz1OL0F8bmJfcmVhZF9mcmFtZXM9Ti9BfG5iX3JlYWRfcGFja2V0cz02MHxleHRyYWRh dGFfc2l6ZT0xOHxleHRyYWRhdGFfaGFzaD1DUkMzMjoxMjU1ZDUyZXxkaXNwb3NpdGlvbjpkZWZh dWx0PTB8ZGlzcG9zaXRpb246ZHViPTB8ZGlzcG9zaXRpb246b3JpZ2luYWw9MHxkaXNwb3NpdGlv bjpjb21tZW50PTB8ZGlzcG9zaXRpb246bHlyaWNzPTB8ZGlzcG9zaXRpb246a2FyYW9rZT0wfGRp c3Bvc2l0aW9uOmZvcmNlZD0wfGRpc3Bvc2l0aW9uOmhlYXJpbmdfaW1wYWlyZWQ9MHxkaXNwb3Np dGlvbjp2aXN1YWxfaW1wYWlyZWQ9MHxkaXNwb3NpdGlvbjpjbGVhbl9lZmZlY3RzPTB8ZGlzcG9z aXRpb246YXR0YWNoZWRfcGljPTB8ZGlzcG9zaXRpb246dGltZWRfdGh1bWJuYWlscz0wfGRpc3Bv c2l0aW9uOm5vbl9kaWVnZXRpYz0wfGRpc3Bvc2l0aW9uOmNhcHRpb25zPTB8ZGlzcG9zaXRpb246 ZGVzY3JpcHRpb25zPTB8ZGlzcG9zaXRpb246bWV0YWRhdGE9MHxkaXNwb3NpdGlvbjpkZXBlbmRl bnQ9MHxkaXNwb3NpdGlvbjpzdGlsbF9pbWFnZT0wfGRpc3Bvc2l0aW9uOm11bHRpbGF5ZXI9MAog Zm9ybWF0fGZpbGVuYW1lPWJ1bm55Lm1wNHxuYl9zdHJlYW1zPTF8bmJfcHJvZ3JhbXM9MHxuYl9z dHJlYW1fZ3JvdXBzPTB8Zm9ybWF0X25hbWU9Y2F2c3ZpZGVvfHN0YXJ0X3RpbWU9Ti9BfGR1cmF0 aW9uPU4vQXxzaXplPTE3Nzc1MnxiaXRfcmF0ZT1OL0F8cHJvYmVfc2NvcmU9NTEKZGlmZiAtLWdp dCBhL3Rlc3RzL3JlZi9mYXRlL2VuaGFuY2VkLWZsdi1oZXZjLWhkcjEwIGIvdGVzdHMvcmVmL2Zh dGUvZW5oYW5jZWQtZmx2LWhldmMtaGRyMTAKaW5kZXggYmViY2Y4NGZhYi4uNTI1ZjA1NmQ2NiAx MDA2NDQKLS0tIGEvdGVzdHMvcmVmL2ZhdGUvZW5oYW5jZWQtZmx2LWhldmMtaGRyMTAKKysrIGIv dGVzdHMvcmVmL2ZhdGUvZW5oYW5jZWQtZmx2LWhldmMtaGRyMTAKQEAgLTQsNyArNCw3IEBACiAj Y29kZWNfaWQgMDogaGV2YwogI2RpbWVuc2lvbnMgMDogMTI4MHg3MjAKICNzYXIgMDogMC8xCi0w LCAgICAgICAgICAwLCAgICAgICAgICAwLCAgICAgICAgMCwgICAgNzc3MTgsIDB4YjU5YzgzYTUK KzAsICAgICAgICAgIDAsICAgICAgICAgIDAsICAgICAgIDQwLCAgICA3NzcxOCwgMHhiNTljODNh NQogW0ZSQU1FXQogbWVkaWFfdHlwZT12aWRlbwogc3RyZWFtX2luZGV4PTAKQEAgLTE3LDcgKzE3 LDcgQEAgYmVzdF9lZmZvcnRfdGltZXN0YW1wPTAKIGJlc3RfZWZmb3J0X3RpbWVzdGFtcF90aW1l PTAuMDAwMDAwCiBkdXJhdGlvbj1OL0EKIGR1cmF0aW9uX3RpbWU9Ti9BCi1wa3RfcG9zPTQzOQor cGt0X3Bvcz00NTkKIHBrdF9zaXplPTc3NzE4CiB3aWR0aD0xMjgwCiBoZWlnaHQ9NzIwCmRpZmYg LS1naXQgYS90ZXN0cy9yZWYvZmF0ZS9oMjY0LWJzZi1kdHMycHRzIGIvdGVzdHMvcmVmL2ZhdGUv aDI2NC1ic2YtZHRzMnB0cwppbmRleCA0NmM2NDBlYWI4Li5mOTA4YmI0NGY1IDEwMDY0NAotLS0g YS90ZXN0cy9yZWYvZmF0ZS9oMjY0LWJzZi1kdHMycHRzCisrKyBiL3Rlc3RzL3JlZi9mYXRlL2gy NjQtYnNmLWR0czJwdHMKQEAgLTEsNSArMSw1IEBACi00NTE2MDEwMzhiOTA5MTAxNGU0NTY2MGJj OThlMDlkYyAqdGVzdHMvZGF0YS9mYXRlL2gyNjQtYnNmLWR0czJwdHMubW92Ci0yNDQwMzMgdGVz dHMvZGF0YS9mYXRlL2gyNjQtYnNmLWR0czJwdHMubW92CisyMTllZGQzNDdjZTMxNTFmNWI1NTc5 ZDMwMGNkNzE3OSAqdGVzdHMvZGF0YS9mYXRlL2gyNjQtYnNmLWR0czJwdHMubW92CisyNDM5Mzcg dGVzdHMvZGF0YS9mYXRlL2gyNjQtYnNmLWR0czJwdHMubW92CiAjZXh0cmFkYXRhIDA6ICAgICAg IDI2LCAweDc1ZTIwOTNkCiAjdGIgMDogMS8xMjAwMDAwCiAjbWVkaWFfdHlwZSAwOiB2aWRlbwpA QCAtNyw1MiArNyw1MiBAQAogI2RpbWVuc2lvbnMgMDogMzUyeDI4OAogI3NhciAwOiAwLzEKIDAs ICAgICAtNDgwMDAsICAgICAgICAgIDAsICAgIDQ4MDAwLCAgICAxMzY4NiwgMHg1ZWU5YmQ0Ywot MCwgICAgICAgICAgMCwgICAgIDE0NDAwMCwgICAgMjQwMDAsICAgICA5MzIwLCAweDE3MjI0ZGIx LCBGPTB4MAotMCwgICAgICAyNDAwMCwgICAgIDE2ODAwMCwgICAgMjQwMDAsICAgICA4OTAzLCAw eGUzOTQ5MThiLCBGPTB4MAotMCwgICAgICA0ODAwMCwgICAgICA0ODAwMCwgICAgNDgwMDAsICAg IDEwMTA4LCAweDk4NDE4ZTdlLCBGPTB4MAotMCwgICAgICA5NjAwMCwgICAgICA5NjAwMCwgICAg MjQwMDAsICAgICAyOTM3LCAweDQ5ZGNjYjc2LCBGPTB4MAotMCwgICAgIDEyMDAwMCwgICAgIDEy MDAwMCwgICAgMjQwMDAsICAgICAyNjA0LCAweGZjODAxM2NkLCBGPTB4MAotMCwgICAgIDE0NDAw MCwgICAgIDI4ODAwMCwgICAgMjQwMDAsICAgICA3NDIwLCAweGNiNDE1NWNkLCBGPTB4MAotMCwg ICAgIDE2ODAwMCwgICAgIDMxMjAwMCwgICAgMjQwMDAsICAgICA1NjY0LCAweDA2MGJjOTQ4LCBG PTB4MAotMCwgICAgIDE5MjAwMCwgICAgIDE5MjAwMCwgICAgNDgwMDAsICAgICA0ODU5LCAweDBh NWE4MzY4LCBGPTB4MAotMCwgICAgIDI0MDAwMCwgICAgIDI0MDAwMCwgICAgMjQwMDAsICAgICAy ODgzLCAweGI5NjM5YTE5LCBGPTB4MAotMCwgICAgIDI2NDAwMCwgICAgIDI2NDAwMCwgICAgMjQw MDAsICAgICAyNTQ3LCAweGJhOTVlOTlkLCBGPTB4MAotMCwgICAgIDI4ODAwMCwgICAgIDQzMjAw MCwgICAgMjQwMDAsICAgICA0NjU5LCAweDE5MjAzYTBkLCBGPTB4MAotMCwgICAgIDMxMjAwMCwg ICAgIDQ1NjAwMCwgICAgMjQwMDAsICAgICA5NzE5LCAweGI1MDBjMzI4LCBGPTB4MAotMCwgICAg IDMzNjAwMCwgICAgIDMzNjAwMCwgICAgNDgwMDAsICAgICA1MDc4LCAweDUzNTljNmI4LCBGPTB4 MAotMCwgICAgIDM4NDAwMCwgICAgIDM4NDAwMCwgICAgNDgwMDAsICAgICA1MDQxLCAweDg4ZGZj ZGYxLCBGPTB4MAotMCwgICAgIDQzMjAwMCwgICAgIDU3NjAwMCwgICAgNDgwMDAsICAgICA5NDk0 LCAweDI5Mjk3MzE5LCBGPTB4MAotMCwgICAgIDQ4MDAwMCwgICAgIDQ4MDAwMCwgICAgNDgwMDAs ICAgICA0NzcyLCAweDgwMjczYTYwLCBGPTB4MAotMCwgICAgIDUyODAwMCwgICAgIDUyODAwMCwg ICAgMjQwMDAsICAgICAzMjM3LCAweGQ5OWU3NDJjLCBGPTB4MAotMCwgICAgIDU1MjAwMCwgICAg IDU1MjAwMCwgICAgMjQwMDAsICAgICAyNjUwLCAweGM3Y2MzNzhhLCBGPTB4MAotMCwgICAgIDU3 NjAwMCwgICAgIDcyMDAwMCwgICAgMjQwMDAsICAgICA2NTE5LCAweDE0MmFhMzU3LCBGPTB4MAot MCwgICAgIDYwMDAwMCwgICAgIDc0NDAwMCwgICAgMjQwMDAsICAgICA1ODc4LCAweGU3MGQ3ZTIx LCBGPTB4MAotMCwgICAgIDYyNDAwMCwgICAgIDYyNDAwMCwgICAgMjQwMDAsICAgICAyNjQ4LCAw eGU1OGIxYzRiLCBGPTB4MAotMCwgICAgIDY0ODAwMCwgICAgIDY0ODAwMCwgICAgMjQwMDAsICAg ICA0NTIyLCAweDMzYWQwODgyLCBGPTB4MAotMCwgICAgIDY3MjAwMCwgICAgIDY3MjAwMCwgICAg MjQwMDAsICAgICAzMjQ2LCAweGRiZmE1MzlmLCBGPTB4MAotMCwgICAgIDY5NjAwMCwgICAgIDY5 NjAwMCwgICAgMjQwMDAsICAgICAzMDI3LCAweGRiNWJmNjc1LCBGPTB4MAotMCwgICAgIDcyMDAw MCwgICAgIDg2NDAwMCwgICAgNDgwMDAsICAgICA5MjgyLCAweDA3OTczNjAzLCBGPTB4MAotMCwg ICAgIDc2ODAwMCwgICAgIDc2ODAwMCwgICAgMjQwMDAsICAgICAyNzg2LCAweDE0ODI0ZDkyLCBG PTB4MAotMCwgICAgIDc5MjAwMCwgICAgIDc5MjAwMCwgICAgMjQwMDAsICAgICAyNzE5LCAweDAw NjE0ZWVmLCBGPTB4MAotMCwgICAgIDgxNjAwMCwgICAgIDgxNjAwMCwgICAgMjQwMDAsICAgICAy NjI3LCAweGU4ZTkxMjE2LCBGPTB4MAotMCwgICAgIDg0MDAwMCwgICAgIDg0MDAwMCwgICAgMjQw MDAsICAgICAyNzIwLCAweGJlOTc0ZmNjLCBGPTB4MAotMCwgICAgIDg2NDAwMCwgICAgMTAwODAw MCwgICAgNDgwMDAsICAgICA3Njg3LCAweDBkZTAxODk1LCBGPTB4MAotMCwgICAgIDkxMjAwMCwg ICAgIDkxMjAwMCwgICAgNDgwMDAsICAgICA1NDY0LCAweDExM2Y5NTRkLCBGPTB4MAotMCwgICAg IDk2MDAwMCwgICAgIDk2MDAwMCwgICAgMjQwMDAsICAgICAzNDgyLCAweDVjOTBjZGFlLCBGPTB4 MAotMCwgICAgIDk4NDAwMCwgICAgIDk4NDAwMCwgICAgMjQwMDAsICAgICAyNzkxLCAweDRhY2I3 MDJhLCBGPTB4MAotMCwgICAgMTAwODAwMCwgICAgMTE1MjAwMCwgICAgMjQwMDAsICAgIDExMzYy LCAweDEzMzYzYmRiLCBGPTB4MAotMCwgICAgMTAzMjAwMCwgICAgMTE3NjAwMCwgICAgMjQwMDAs ICAgICAyOTc1LCAweDk5YjFlODEzLCBGPTB4MAotMCwgICAgMTA1NjAwMCwgICAgMTA1NjAwMCwg ICAgMjQwMDAsICAgICAyMzQyLCAweGU5NTg3ODY3LCBGPTB4MAotMCwgICAgMTA4MDAwMCwgICAg MTA4MDAwMCwgICAgMjQwMDAsICAgICAyNjM0LCAweDhkOTgxNGZjLCBGPTB4MAotMCwgICAgMTEw NDAwMCwgICAgMTEwNDAwMCwgICAgMjQwMDAsICAgICAyNDE5LCAweDAzM2NiYjVmLCBGPTB4MAot MCwgICAgMTEyODAwMCwgICAgMTEyODAwMCwgICAgMjQwMDAsICAgICAyNDk4LCAweDdkZDllNDc2 LCBGPTB4MAotMCwgICAgMTE1MjAwMCwgICAgMTI5NjAwMCwgICAgMjQwMDAsICAgICAyNjY4LCAw eDM1OGUyYmQ4LCBGPTB4MAotMCwgICAgMTE3NjAwMCwgICAgMTMyMDAwMCwgICAgMjQwMDAsICAg ICA5MDY4LCAweDNhNjM5OTI3LCBGPTB4MAotMCwgICAgMTIwMDAwMCwgICAgMTIwMDAwMCwgICAg NDgwMDAsICAgICA0OTM5LCAweGE1MzA5YThjLCBGPTB4MAotMCwgICAgMTI0ODAwMCwgICAgMTI0 ODAwMCwgICAgMjQwMDAsICAgICAyNjUwLCAweDJhYjgyYjk3LCBGPTB4MAotMCwgICAgMTI3MjAw MCwgICAgMTI3MjAwMCwgICAgMjQwMDAsICAgICAyNTAzLCAweGZkOTdjZDRjLCBGPTB4MAotMCwg ICAgMTI5NjAwMCwgICAgMTQ0MDAwMCwgICAgNDgwMDAsICAgICA1MTIxLCAweGFmODhlNWI4LCBG PTB4MAotMCwgICAgMTM0NDAwMCwgICAgMTM0NDAwMCwgICAgMjQwMDAsICAgICAyNjQzLCAweGEx NzkxZGIwLCBGPTB4MAotMCwgICAgMTM2ODAwMCwgICAgMTM2ODAwMCwgICAgMjQwMDAsICAgICAy NjM3LCAweGUxYTQyNTEwLCBGPTB4MAotMCwgICAgMTM5MjAwMCwgICAgMTM5MjAwMCwgICAgMjQw MDAsICAgICAyNjMzLCAweDA4NDMwZjE1LCBGPTB4MAotMCwgICAgMTQxNjAwMCwgICAgMTQxNjAw MCwgICAgMjQwMDAsICAgICAyNzIxLCAweGU2NzU2OTkwLCBGPTB4MAorMCwgICAgICAgICAgMCwg ICAgIDI0MDAwMCwgICAgNDgwMDAsICAgICA5MzIwLCAweDE3MjI0ZGIxLCBGPTB4MAorMCwgICAg ICA0ODAwMCwgICAgIDI4ODAwMCwgICAgNDgwMDAsICAgICA4OTAzLCAweGUzOTQ5MThiLCBGPTB4 MAorMCwgICAgICA5NjAwMCwgICAgICA5NjAwMCwgICAgNDgwMDAsICAgIDEwMTA4LCAweDk4NDE4 ZTdlLCBGPTB4MAorMCwgICAgIDE0NDAwMCwgICAgIDE0NDAwMCwgICAgNDgwMDAsICAgICAyOTM3 LCAweDQ5ZGNjYjc2LCBGPTB4MAorMCwgICAgIDE5MjAwMCwgICAgIDE5MjAwMCwgICAgNDgwMDAs ICAgICAyNjA0LCAweGZjODAxM2NkLCBGPTB4MAorMCwgICAgIDI0MDAwMCwgICAgIDQ4MDAwMCwg ICAgNDgwMDAsICAgICA3NDIwLCAweGNiNDE1NWNkLCBGPTB4MAorMCwgICAgIDI4ODAwMCwgICAg IDUyODAwMCwgICAgNDgwMDAsICAgICA1NjY0LCAweDA2MGJjOTQ4LCBGPTB4MAorMCwgICAgIDMz NjAwMCwgICAgIDMzNjAwMCwgICAgNDgwMDAsICAgICA0ODU5LCAweDBhNWE4MzY4LCBGPTB4MAor MCwgICAgIDM4NDAwMCwgICAgIDM4NDAwMCwgICAgNDgwMDAsICAgICAyODgzLCAweGI5NjM5YTE5 LCBGPTB4MAorMCwgICAgIDQzMjAwMCwgICAgIDQzMjAwMCwgICAgNDgwMDAsICAgICAyNTQ3LCAw eGJhOTVlOTlkLCBGPTB4MAorMCwgICAgIDQ4MDAwMCwgICAgIDY3MjAwMCwgICAgNDgwMDAsICAg ICA0NjU5LCAweDE5MjAzYTBkLCBGPTB4MAorMCwgICAgIDUyODAwMCwgICAgIDY5NjAwMCwgICAg NDgwMDAsICAgICA5NzE5LCAweGI1MDBjMzI4LCBGPTB4MAorMCwgICAgIDU3NjAwMCwgICAgIDU3 NjAwMCwgICAgNDgwMDAsICAgICA1MDc4LCAweDUzNTljNmI4LCBGPTB4MAorMCwgICAgIDYyNDAw MCwgICAgIDYyNDAwMCwgICAgNDgwMDAsICAgICA1MDQxLCAweDg4ZGZjZGYxLCBGPTB4MAorMCwg ICAgIDY3MjAwMCwgICAgIDg2NDAwMCwgICAgNDgwMDAsICAgICA5NDk0LCAweDI5Mjk3MzE5LCBG PTB4MAorMCwgICAgIDcyMDAwMCwgICAgIDcyMDAwMCwgICAgNDgwMDAsICAgICA0NzcyLCAweDgw MjczYTYwLCBGPTB4MAorMCwgICAgIDc2ODAwMCwgICAgIDc2ODAwMCwgICAgNDgwMDAsICAgICAz MjM3LCAweGQ5OWU3NDJjLCBGPTB4MAorMCwgICAgIDgxNjAwMCwgICAgIDgxNjAwMCwgICAgNDgw MDAsICAgICAyNjUwLCAweGM3Y2MzNzhhLCBGPTB4MAorMCwgICAgIDg2NDAwMCwgICAgMTE1MjAw MCwgICAgNDgwMDAsICAgICA2NTE5LCAweDE0MmFhMzU3LCBGPTB4MAorMCwgICAgIDkxMjAwMCwg ICAgMTE3NjAwMCwgICAgNDgwMDAsICAgICA1ODc4LCAweGU3MGQ3ZTIxLCBGPTB4MAorMCwgICAg IDk2MDAwMCwgICAgIDk2MDAwMCwgICAgNDgwMDAsICAgICAyNjQ4LCAweGU1OGIxYzRiLCBGPTB4 MAorMCwgICAgMTAwODAwMCwgICAgMTAwODAwMCwgICAgNDgwMDAsICAgICA0NTIyLCAweDMzYWQw ODgyLCBGPTB4MAorMCwgICAgMTA1NjAwMCwgICAgMTA1NjAwMCwgICAgNDgwMDAsICAgICAzMjQ2 LCAweGRiZmE1MzlmLCBGPTB4MAorMCwgICAgMTEwNDAwMCwgICAgMTEwNDAwMCwgICAgNDgwMDAs ICAgICAzMDI3LCAweGRiNWJmNjc1LCBGPTB4MAorMCwgICAgMTE1MjAwMCwgICAgMTM5MjAwMCwg ICAgNDgwMDAsICAgICA5MjgyLCAweDA3OTczNjAzLCBGPTB4MAorMCwgICAgMTIwMDAwMCwgICAg MTIwMDAwMCwgICAgNDgwMDAsICAgICAyNzg2LCAweDE0ODI0ZDkyLCBGPTB4MAorMCwgICAgMTI0 ODAwMCwgICAgMTI0ODAwMCwgICAgNDgwMDAsICAgICAyNzE5LCAweDAwNjE0ZWVmLCBGPTB4MAor MCwgICAgMTI5NjAwMCwgICAgMTI5NjAwMCwgICAgNDgwMDAsICAgICAyNjI3LCAweGU4ZTkxMjE2 LCBGPTB4MAorMCwgICAgMTM0NDAwMCwgICAgMTM0NDAwMCwgICAgNDgwMDAsICAgICAyNzIwLCAw eGJlOTc0ZmNjLCBGPTB4MAorMCwgICAgMTM5MjAwMCwgICAgMTU4NDAwMCwgICAgNDgwMDAsICAg ICA3Njg3LCAweDBkZTAxODk1LCBGPTB4MAorMCwgICAgMTQ0MDAwMCwgICAgMTQ0MDAwMCwgICAg NDgwMDAsICAgICA1NDY0LCAweDExM2Y5NTRkLCBGPTB4MAorMCwgICAgMTQ4ODAwMCwgICAgMTQ4 ODAwMCwgICAgNDgwMDAsICAgICAzNDgyLCAweDVjOTBjZGFlLCBGPTB4MAorMCwgICAgMTUzNjAw MCwgICAgMTUzNjAwMCwgICAgNDgwMDAsICAgICAyNzkxLCAweDRhY2I3MDJhLCBGPTB4MAorMCwg ICAgMTU4NDAwMCwgICAgMTg3MjAwMCwgICAgNDgwMDAsICAgIDExMzYyLCAweDEzMzYzYmRiLCBG PTB4MAorMCwgICAgMTYzMjAwMCwgICAgMTkyMDAwMCwgICAgNDgwMDAsICAgICAyOTc1LCAweDk5 YjFlODEzLCBGPTB4MAorMCwgICAgMTY4MDAwMCwgICAgMTY4MDAwMCwgICAgNDgwMDAsICAgICAy MzQyLCAweGU5NTg3ODY3LCBGPTB4MAorMCwgICAgMTcyODAwMCwgICAgMTcyODAwMCwgICAgNDgw MDAsICAgICAyNjM0LCAweDhkOTgxNGZjLCBGPTB4MAorMCwgICAgMTc3NjAwMCwgICAgMTc3NjAw MCwgICAgNDgwMDAsICAgICAyNDE5LCAweDAzM2NiYjVmLCBGPTB4MAorMCwgICAgMTgyNDAwMCwg ICAgMTgyNDAwMCwgICAgNDgwMDAsICAgICAyNDk4LCAweDdkZDllNDc2LCBGPTB4MAorMCwgICAg MTg3MjAwMCwgICAgMjExMjAwMCwgICAgNDgwMDAsICAgICAyNjY4LCAweDM1OGUyYmQ4LCBGPTB4 MAorMCwgICAgMTkyMDAwMCwgICAgMjEzNjAwMCwgICAgNDgwMDAsICAgICA5MDY4LCAweDNhNjM5 OTI3LCBGPTB4MAorMCwgICAgMTk2ODAwMCwgICAgMTk2ODAwMCwgICAgNDgwMDAsICAgICA0OTM5 LCAweGE1MzA5YThjLCBGPTB4MAorMCwgICAgMjAxNjAwMCwgICAgMjAxNjAwMCwgICAgNDgwMDAs ICAgICAyNjUwLCAweDJhYjgyYjk3LCBGPTB4MAorMCwgICAgMjA2NDAwMCwgICAgMjA2NDAwMCwg ICAgNDgwMDAsICAgICAyNTAzLCAweGZkOTdjZDRjLCBGPTB4MAorMCwgICAgMjExMjAwMCwgICAg MjM1MjAwMCwgICAgNDgwMDAsICAgICA1MTIxLCAweGFmODhlNWI4LCBGPTB4MAorMCwgICAgMjE2 MDAwMCwgICAgMjE2MDAwMCwgICAgNDgwMDAsICAgICAyNjQzLCAweGExNzkxZGIwLCBGPTB4MAor MCwgICAgMjIwODAwMCwgICAgMjIwODAwMCwgICAgNDgwMDAsICAgICAyNjM3LCAweGUxYTQyNTEw LCBGPTB4MAorMCwgICAgMjI1NjAwMCwgICAgMjI1NjAwMCwgICAgNDgwMDAsICAgICAyNjMzLCAw eDA4NDMwZjE1LCBGPTB4MAorMCwgICAgMjMwNDAwMCwgICAgMjMwNDAwMCwgICAgNDgwMDAsICAg ICAyNzIxLCAweGU2NzU2OTkwLCBGPTB4MApkaWZmIC0tZ2l0IGEvdGVzdHMvcmVmL2ZhdGUvaDI2 NC1jb25mb3JtYW5jZS1jdnBjbW5sMl9zdmFfYyBiL3Rlc3RzL3JlZi9mYXRlL2gyNjQtY29uZm9y bWFuY2UtY3ZwY21ubDJfc3ZhX2MKaW5kZXggMGEwNzk1ZGY0MS4uMDMwM2JjMjRlNiAxMDA2NDQK LS0tIGEvdGVzdHMvcmVmL2ZhdGUvaDI2NC1jb25mb3JtYW5jZS1jdnBjbW5sMl9zdmFfYworKysg Yi90ZXN0cy9yZWYvZmF0ZS9oMjY0LWNvbmZvcm1hbmNlLWN2cGNtbmwyX3N2YV9jCkBAIC0xLDcg KzEsNyBAQAotI3RiIDA6IDEvNTAKKyN0YiAwOiAxLzI1CiAjbWVkaWFfdHlwZSAwOiB2aWRlbwog I2NvZGVjX2lkIDA6IHJhd3ZpZGVvCiAjZGltZW5zaW9ucyAwOiAxMjgweDcyMAogI3NhciAwOiAw LzEKLTAsICAgICAgICAgIDAsICAgICAgICAgIDAsICAgICAgICAyLCAgMTM4MjQwMCwgMHhjY2Jl NmJmOAotMCwgICAgICAgICAgMiwgICAgICAgICAgMiwgICAgICAgIDIsICAxMzgyNDAwLCAweDQ5 YzBjZmQ3CiswLCAgICAgICAgICAwLCAgICAgICAgICAwLCAgICAgICAgMSwgIDEzODI0MDAsIDB4 Y2NiZTZiZjgKKzAsICAgICAgICAgIDEsICAgICAgICAgIDEsICAgICAgICAxLCAgMTM4MjQwMCwg MHg0OWMwY2ZkNwpkaWZmIC0tZ2l0IGEvdGVzdHMvcmVmL2ZhdGUvaGV2Yy1ic2YtZHRzMnB0cy1j cmEgYi90ZXN0cy9yZWYvZmF0ZS9oZXZjLWJzZi1kdHMycHRzLWNyYQppbmRleCBlNTBhYWQ2Zjcw Li40ZTllMmM1MTE0IDEwMDY0NAotLS0gYS90ZXN0cy9yZWYvZmF0ZS9oZXZjLWJzZi1kdHMycHRz LWNyYQorKysgYi90ZXN0cy9yZWYvZmF0ZS9oZXZjLWJzZi1kdHMycHRzLWNyYQpAQCAtMSw1ICsx LDUgQEAKLWY2MTAyNjg0ZmJmMTNhYTYyNGU2ZWRlY2UzOGM4M2YyICp0ZXN0cy9kYXRhL2ZhdGUv aGV2Yy1ic2YtZHRzMnB0cy1jcmEubW92Ci0xMDI5NzEgdGVzdHMvZGF0YS9mYXRlL2hldmMtYnNm LWR0czJwdHMtY3JhLm1vdgorYzNjMDBmZGM2MzdhMTlmYTNkMjNkMzdkOTk3NGQyOGQgKnRlc3Rz L2RhdGEvZmF0ZS9oZXZjLWJzZi1kdHMycHRzLWNyYS5tb3YKKzEwMzA2NyB0ZXN0cy9kYXRhL2Zh dGUvaGV2Yy1ic2YtZHRzMnB0cy1jcmEubW92CiAjZXh0cmFkYXRhIDA6ICAgICAgMTE4LCAweDI1 ZjUxOTk0CiAjdGIgMDogMS8xMjAwMDAwCiAjbWVkaWFfdHlwZSAwOiB2aWRlbwpAQCAtNTQsMzUg KzU0LDM1IEBAIGY2MTAyNjg0ZmJmMTNhYTYyNGU2ZWRlY2UzOGM4M2YyICp0ZXN0cy9kYXRhL2Zh dGUvaGV2Yy1ic2YtZHRzMnB0cy1jcmEubW92CiAwLCAgICAyMDE2MDAwLCAgICAyMTYwMDAwLCAg ICA0ODAwMCwgICAgICA4OTIsIDB4MGQyYWIzYmMsIEY9MHgwCiAwLCAgICAyMDY0MDAwLCAgICAy MTEyMDAwLCAgICA0ODAwMCwgICAgICAyMzgsIDB4NDU4Mjc1NjEsIEY9MHgwCiAwLCAgICAyMTEy MDAwLCAgICAyMjA4MDAwLCAgICA0ODAwMCwgICAgICAyODEsIDB4MmEzYThlNjEsIEY9MHgwCi0w LCAgICAyMTYwMDAwLCAgICAyNjQwMDAwLCAgICA0ODAwMCwgICAgIDQ2MjksIDB4ZjJlMGZiMGYs IEY9MHgwCi0wLCAgICAyMjA4MDAwLCAgICAyNDQ4MDAwLCAgICA0ODAwMCwgICAgIDE0NTMsIDB4 NmFlNWRjOTgsIEY9MHgwCi0wLCAgICAyMjU2MDAwLCAgICAyMzUyMDAwLCAgICA0ODAwMCwgICAg ICA4NjksIDB4Mzk4MmFlNjksIEY9MHgwCi0wLCAgICAyMzA0MDAwLCAgICAyMzA0MDAwLCAgICA0 ODAwMCwgICAgICAyODIsIDB4ZDllMjg5NjAsIEY9MHgwCi0wLCAgICAyMzUyMDAwLCAgICAyNDAw MDAwLCAgICA0ODAwMCwgICAgICAyNTksIDB4MjUzYTgwOWQsIEY9MHgwCi0wLCAgICAyNDAwMDAw LCAgICAyNTQ0MDAwLCAgICA0ODAwMCwgICAgICA4MzUsIDB4ODM0OTlmMzAsIEY9MHgwCi0wLCAg ICAyNDQ4MDAwLCAgICAyNDk2MDAwLCAgICA0ODAwMCwgICAgICAyNTUsIDB4YTc3Yjc2OTAsIEY9 MHgwCi0wLCAgICAyNDk2MDAwLCAgICAyNTkyMDAwLCAgICA0ODAwMCwgICAgICAyNDIsIDB4ODM5 NzdjY2YsIEY9MHgwCi0wLCAgICAyNTQ0MDAwLCAgICAzMDI0MDAwLCAgICA0ODAwMCwgICAgIDUw ODIsIDB4YmE1NWVlNTEsIEY9MHgwCi0wLCAgICAyNTkyMDAwLCAgICAyODMyMDAwLCAgICA0ODAw MCwgICAgIDEzOTMsIDB4Yzk5OGI0NDIsIEY9MHgwCi0wLCAgICAyNjQwMDAwLCAgICAyNzM2MDAw LCAgICA0ODAwMCwgICAgICA3NDIsIDB4OTFhYjc1ZDIsIEY9MHgwCi0wLCAgICAyNjg4MDAwLCAg ICAyNjg4MDAwLCAgICA0ODAwMCwgICAgICAyMjksIDB4ZmEzMjZkOTgsIEY9MHgwCi0wLCAgICAy NzM2MDAwLCAgICAyNzg0MDAwLCAgICA0ODAwMCwgICAgICAyNzUsIDB4NDljMzgyMjYsIEY9MHgw Ci0wLCAgICAyNzg0MDAwLCAgICAyOTI4MDAwLCAgICA0ODAwMCwgICAgICA4NjksIDB4ZGQwNWFj YzQsIEY9MHgwCi0wLCAgICAyODMyMDAwLCAgICAyODgwMDAwLCAgICA0ODAwMCwgICAgICAyOTMs IDB4Y2M5ZTkwNGYsIEY9MHgwCi0wLCAgICAyODgwMDAwLCAgICAyOTc2MDAwLCAgICA0ODAwMCwg ICAgICAzMzQsIDB4MjEyYWE0YjEsIEY9MHgwCi0wLCAgICAyOTI4MDAwLCAgICAzNDA4MDAwLCAg ICA0ODAwMCwgICAgIDg1MzksIDB4Y2NjYzllYjEKLTAsICAgIDI5NzYwMDAsICAgIDMyMTYwMDAs ICAgIDQ4MDAwLCAgICAgMTU5MywgMHg1YTM1MWE2OCwgRj0weDAKLTAsICAgIDMwMjQwMDAsICAg IDMxMjAwMDAsICAgIDQ4MDAwLCAgICAgMTA0MiwgMHhiNzdkMDBjYywgRj0weDAKLTAsICAgIDMw NzIwMDAsICAgIDMwNzIwMDAsICAgIDQ4MDAwLCAgICAgIDMwMiwgMHhiY2RiOTc1MCwgRj0weDAK LTAsICAgIDMxMjAwMDAsICAgIDMxNjgwMDAsICAgIDQ4MDAwLCAgICAgIDMzNiwgMHhjN2IwYTU1 ZCwgRj0weDAKLTAsICAgIDMxNjgwMDAsICAgIDMzMTIwMDAsICAgIDQ4MDAwLCAgICAgIDg3NSwg MHg3ZTMxYjA0NiwgRj0weDAKLTAsICAgIDMyMTYwMDAsICAgIDMyNjQwMDAsICAgIDQ4MDAwLCAg ICAgIDQwMSwgMHhiNDczYmNhOCwgRj0weDAKLTAsICAgIDMyNjQwMDAsICAgIDMzNjAwMDAsICAg IDQ4MDAwLCAgICAgIDI0NiwgMHg0MzM1NzI2MywgRj0weDAKLTAsICAgIDMzMTIwMDAsICAgIDM3 OTIwMDAsICAgIDQ4MDAwLCAgICAgMzI1NCwgMHg4YmU0NGEyZCwgRj0weDAKLTAsICAgIDMzNjAw MDAsICAgIDM2MDAwMDAsICAgIDQ4MDAwLCAgICAgMTE1MSwgMHgyOWQ1MmQxNCwgRj0weDAKLTAs ICAgIDM0MDgwMDAsICAgIDM1MDQwMDAsICAgIDQ4MDAwLCAgICAgIDczMywgMHgzMzYwNjk4Miwg Rj0weDAKLTAsICAgIDM0NTYwMDAsICAgIDM0NTYwMDAsICAgIDQ4MDAwLCAgICAgIDIzNCwgMHhi NzBhNzlmZiwgRj0weDAKLTAsICAgIDM1MDQwMDAsICAgIDM1NTIwMDAsICAgIDQ4MDAwLCAgICAg IDIyOCwgMHg4NjkxNjg0OCwgRj0weDAKLTAsICAgIDM1NTIwMDAsICAgIDM2OTYwMDAsICAgIDQ4 MDAwLCAgICAgIDY4OSwgMHhjY2EzNGI0MCwgRj0weDAKLTAsICAgIDM2MDAwMDAsICAgIDM2NDgw MDAsICAgIDQ4MDAwLCAgICAgIDIyMywgMHhhOTZmNmUzMSwgRj0weDAKLTAsICAgIDM2NDgwMDAs ICAgIDM3NDQwMDAsICAgIDQ4MDAwLCAgICAgIDI0MSwgMHg3YWMxNzUzMSwgRj0weDAKKzAsICAg IDIxNjAwMDAsICAgIDIyNTYwMTAsICAgIDQ4MDAwLCAgICAgNDYyOSwgMHhmMmUwZmIwZiwgRj0w eDAKKzAsICAgIDIyMDgwMDAsICAgIDIyNTYwMDUsICAgIDQ4MDAwLCAgICAgMTQ1MywgMHg2YWU1 ZGM5OCwgRj0weDAKKzAsICAgIDIyNTYwMDAsICAgIDIyNTYwMDIsICAgICAgICAxLCAgICAgIDg2 OSwgMHgzOTgyYWU2OSwgRj0weDAKKzAsICAgIDIyNTYwMDEsICAgIDIyNTYwMDEsICAgICAgICAx LCAgICAgIDI4MiwgMHhkOWUyODk2MCwgRj0weDAKKzAsICAgIDIyNTYwMDIsICAgIDIyNTYwMDQs ICAgICAgICAyLCAgICAgIDI1OSwgMHgyNTNhODA5ZCwgRj0weDAKKzAsICAgIDIyNTYwMDQsICAg IDIyNTYwMDcsICAgICAgICAxLCAgICAgIDgzNSwgMHg4MzQ5OWYzMCwgRj0weDAKKzAsICAgIDIy NTYwMDUsICAgIDIyNTYwMDYsICAgICAgICAxLCAgICAgIDI1NSwgMHhhNzdiNzY5MCwgRj0weDAK KzAsICAgIDIyNTYwMDYsICAgIDIyNTYwMDgsICAgICAgICAxLCAgICAgIDI0MiwgMHg4Mzk3N2Nj ZiwgRj0weDAKKzAsICAgIDIyNTYwMDcsICAgIDIyNTYwMTksICAgICAgICAxLCAgICAgNTA4Miwg MHhiYTU1ZWU1MSwgRj0weDAKKzAsICAgIDIyNTYwMDgsICAgIDIyNTYwMTQsICAgICAgICAyLCAg ICAgMTM5MywgMHhjOTk4YjQ0MiwgRj0weDAKKzAsICAgIDIyNTYwMTAsICAgIDIyNTYwMTIsICAg ICAgICAxLCAgICAgIDc0MiwgMHg5MWFiNzVkMiwgRj0weDAKKzAsICAgIDIyNTYwMTEsICAgIDIy NTYwMTEsICAgICAgICAxLCAgICAgIDIyOSwgMHhmYTMyNmQ5OCwgRj0weDAKKzAsICAgIDIyNTYw MTIsICAgIDIyNTYwMTMsICAgICAgICAxLCAgICAgIDI3NSwgMHg0OWMzODIyNiwgRj0weDAKKzAs ICAgIDIyNTYwMTMsICAgIDIyNTYwMTcsICAgICAgICAxLCAgICAgIDg2OSwgMHhkZDA1YWNjNCwg Rj0weDAKKzAsICAgIDIyNTYwMTQsICAgIDIyNTYwMTYsICAgICAgICAyLCAgICAgIDI5MywgMHhj YzllOTA0ZiwgRj0weDAKKzAsICAgIDIyNTYwMTYsICAgIDIyNTYwMTgsICAgICAgICAxLCAgICAg IDMzNCwgMHgyMTJhYTRiMSwgRj0weDAKKzAsICAgIDIyNTYwMTcsICAgIDIyNTYwMjksICAgICAg ICAxLCAgICAgODUzOSwgMHhjY2NjOWViMQorMCwgICAgMjI1NjAxOCwgICAgMjI1NjAyNCwgICAg ICAgIDEsICAgICAxNTkzLCAweDVhMzUxYTY4LCBGPTB4MAorMCwgICAgMjI1NjAxOSwgICAgMjI1 NjAyMiwgICAgICAgIDEsICAgICAxMDQyLCAweGI3N2QwMGNjLCBGPTB4MAorMCwgICAgMjI1NjAy MCwgICAgMjI1NjAyMCwgICAgICAgIDIsICAgICAgMzAyLCAweGJjZGI5NzUwLCBGPTB4MAorMCwg ICAgMjI1NjAyMiwgICAgMjI1NjAyMywgICAgICAgIDEsICAgICAgMzM2LCAweGM3YjBhNTVkLCBG PTB4MAorMCwgICAgMjI1NjAyMywgICAgMjI1NjAyNiwgICAgICAgIDEsICAgICAgODc1LCAweDdl MzFiMDQ2LCBGPTB4MAorMCwgICAgMjI1NjAyNCwgICAgMjI1NjAyNSwgICAgICAgIDEsICAgICAg NDAxLCAweGI0NzNiY2E4LCBGPTB4MAorMCwgICAgMjI1NjAyNSwgICAgMjI1NjAyOCwgICAgICAg IDEsICAgICAgMjQ2LCAweDQzMzU3MjYzLCBGPTB4MAorMCwgICAgMjI1NjAyNiwgICAgMjI1NjAz OCwgICAgICAgIDIsICAgICAzMjU0LCAweDhiZTQ0YTJkLCBGPTB4MAorMCwgICAgMjI1NjAyOCwg ICAgMjI1NjAzNCwgICAgICAgIDEsICAgICAxMTUxLCAweDI5ZDUyZDE0LCBGPTB4MAorMCwgICAg MjI1NjAyOSwgICAgMjI1NjAzMSwgICAgICAgIDEsICAgICAgNzMzLCAweDMzNjA2OTgyLCBGPTB4 MAorMCwgICAgMjI1NjAzMCwgICAgMjI1NjAzMCwgICAgICAgIDEsICAgICAgMjM0LCAweGI3MGE3 OWZmLCBGPTB4MAorMCwgICAgMjI1NjAzMSwgICAgMjI1NjAzMiwgICAgICAgIDEsICAgICAgMjI4 LCAweDg2OTE2ODQ4LCBGPTB4MAorMCwgICAgMjI1NjAzMiwgICAgMjI1NjAzNiwgICAgICAgIDIs ICAgICAgNjg5LCAweGNjYTM0YjQwLCBGPTB4MAorMCwgICAgMjI1NjAzNCwgICAgMjI1NjAzNSwg ICAgICAgIDEsICAgICAgMjIzLCAweGE5NmY2ZTMxLCBGPTB4MAorMCwgICAgMjI1NjAzNSwgICAg MjI1NjAzNywgICAgICAgIDEsICAgICAgMjQxLCAweDdhYzE3NTMxLCBGPTB4MApkaWZmIC0tZ2l0 IGEvdGVzdHMvcmVmL2ZhdGUvaGV2Yy1ic2YtZHRzMnB0cy1pZHIgYi90ZXN0cy9yZWYvZmF0ZS9o ZXZjLWJzZi1kdHMycHRzLWlkcgppbmRleCBhZGZiZTc1OTg3Li45NTY4YTU5MzJjIDEwMDY0NAot LS0gYS90ZXN0cy9yZWYvZmF0ZS9oZXZjLWJzZi1kdHMycHRzLWlkcgorKysgYi90ZXN0cy9yZWYv ZmF0ZS9oZXZjLWJzZi1kdHMycHRzLWlkcgpAQCAtMSw1ICsxLDUgQEAKLThmMDJkMzFmZWNlNmEw NjdhODQ4OGQ4Y2E2ZWUzMzI5ICp0ZXN0cy9kYXRhL2ZhdGUvaGV2Yy1ic2YtZHRzMnB0cy1pZHIu bW92Ci0zNDY1NzkgdGVzdHMvZGF0YS9mYXRlL2hldmMtYnNmLWR0czJwdHMtaWRyLm1vdgorMzY4 ZDE3NzgyMTQ1MDI0MTgyMGJmMzUwN2Q3NGIzNWEgKnRlc3RzL2RhdGEvZmF0ZS9oZXZjLWJzZi1k dHMycHRzLWlkci5tb3YKKzM0NjYwMyB0ZXN0cy9kYXRhL2ZhdGUvaGV2Yy1ic2YtZHRzMnB0cy1p ZHIubW92CiAjZXh0cmFkYXRhIDA6ICAgICAgNjk5LCAweDljODEwYzEwCiAjdGIgMDogMS8xMjAw MDAwCiAjbWVkaWFfdHlwZSAwOiB2aWRlbwpAQCAtNDcsNyArNDcsNyBAQAogMCwgICAgMTY4MDAw MCwgICAgMTgyNDAwMCwgICAgNDgwMDAsICAgICAyMjA4LCAweDhlMjE0NmU4LCBGPTB4MAogMCwg ICAgMTcyODAwMCwgICAgMTc3NjAwMCwgICAgNDgwMDAsICAgICAgOTAwLCAweDY2OWZiOTdiLCBG PTB4MAogMCwgICAgMTc3NjAwMCwgICAgMTg3MjAwMCwgICAgNDgwMDAsICAgICAgODE3LCAweDNl YjY4OWUxLCBGPTB4MAotMCwgICAgMTgyNDAwMCwgICAgMjMwNDAwMCwgICAgNDgwMDAsICAgIDE3 OTE5LCAweDRlODNiMzAxLCBGPTB4MAorMCwgICAgMTgyNDAwMCwgICAgMjI1NjAwMSwgICAgNDgw MDAsICAgIDE3OTE5LCAweDRlODNiMzAxLCBGPTB4MAogMCwgICAgMTg3MjAwMCwgICAgMjExMjAw MCwgICAgNDgwMDAsICAgICA0OTExLCAweDJmYzg4ZTFmLCBGPTB4MAogMCwgICAgMTkyMDAwMCwg ICAgMjAxNjAwMCwgICAgNDgwMDAsICAgICAyNzE3LCAweGNjMWY1NTFlLCBGPTB4MAogMCwgICAg MTk2ODAwMCwgICAgMTk2ODAwMCwgICAgNDgwMDAsICAgICAgOTA4LCAweDQzZTFiNDIxLCBGPTB4 MApAQCAtNTUsMTkgKzU1LDE5IEBACiAwLCAgICAyMDY0MDAwLCAgICAyMjA4MDAwLCAgICA0ODAw MCwgICAgIDI4NTcsIDB4ZGVlZTk2MTQsIEY9MHgwCiAwLCAgICAyMTEyMDAwLCAgICAyMTYwMDAw LCAgICA0ODAwMCwgICAgIDEwMzksIDB4OWNmOGY0OTQsIEY9MHgwCiAwLCAgICAyMTYwMDAwLCAg ICAyMjU2MDAwLCAgICA0ODAwMCwgICAgICA5NzUsIDB4MGY0ZWM4NWIsIEY9MHgwCi0wLCAgICAy MjA4MDAwLCAgICAyNjg4MDAwLCAgICA0ODAwMCwgICAgMTgzNDUsIDB4ZjlkYWJkM2IsIEY9MHgw Ci0wLCAgICAyMjU2MDAwLCAgICAyNDk2MDAwLCAgICA0ODAwMCwgICAgIDUyODAsIDB4YzVjMzM4 MDksIEY9MHgwCi0wLCAgICAyMzA0MDAwLCAgICAyNDAwMDAwLCAgICA0ODAwMCwgICAgIDI3NTUs IDB4ZGE5NTVjNzUsIEY9MHgwCi0wLCAgICAyMzUyMDAwLCAgICAyMzUyMDAwLCAgICA0ODAwMCwg ICAgIDEwMjcsIDB4ZjY1MmVmZjMsIEY9MHgwCi0wLCAgICAyNDAwMDAwLCAgICAyNDQ4MDAwLCAg ICA0ODAwMCwgICAgICA5MDEsIDB4ZTIzY2I3MTYsIEY9MHgwCi0wLCAgICAyNDQ4MDAwLCAgICAy NTkyMDAwLCAgICA0ODAwMCwgICAgIDMwMTAsIDB4NzgzZGU1Y2IsIEY9MHgwCi0wLCAgICAyNDk2 MDAwLCAgICAyNTQ0MDAwLCAgICA0ODAwMCwgICAgIDEwMDUsIDB4OTFmY2Y5MmYsIEY9MHgwCi0w LCAgICAyNTQ0MDAwLCAgICAyNjQwMDAwLCAgICA0ODAwMCwgICAgIDExMzEsIDB4ZDg4YjI5MjAs IEY9MHgwCi0wLCAgICAyNTkyMDAwLCAgICAyNTkyMDAwLCAgICA0ODAwMCwgICAgMjkwMTgsIDB4 YzliMjU2MDgKLTAsICAgIDI2NDAwMDAsICAgIDI4ODAwMDAsICAgIDQ4MDAwLCAgICAgNzQzNiwg MHgxODM0NGU3NywgRj0weDAKLTAsICAgIDI2ODgwMDAsICAgIDI3ODQwMDAsICAgIDQ4MDAwLCAg ICAgNDA1MCwgMHg1NGZjYmVlMCwgRj0weDAKLTAsICAgIDI3MzYwMDAsICAgIDI3MzYwMDAsICAg IDQ4MDAwLCAgICAgMTQxMiwgMHhlMjQ5YmQ4NiwgRj0weDAKLTAsICAgIDI3ODQwMDAsICAgIDI4 MzIwMDAsICAgICAgICAxLCAgICAgIDk3NywgMHhhNzQ5ZGMyMSwgRj0weDAKLTAsICAgIDI3ODQw MDEsICAgIDI3ODQwMDEsICAgIDk1OTk5LCAgICAgMjk1MywgMHhiYTkwYzAwOCwgRj0weDAKLTAs ICAgIDI4ODAwMDAsICAgIDI5MjgwMDAsICAgICAgICAxLCAgICAgMTAwNCwgMHhkZGViZWE5YSwg Rj0weDAKLTAsICAgIDI4ODAwMDEsICAgIDI4ODAwMDEsICAgIDQ4MDAwLCAgICAgMTEwOSwgMHg3 ZTA4MTU3MCwgRj0weDAKKzAsICAgIDIyMDgwMDAsICAgIDIyNTYwMTEsICAgIDQ4MDAwLCAgICAx ODM0NSwgMHhmOWRhYmQzYiwgRj0weDAKKzAsICAgIDIyNTYwMDAsICAgIDIyNTYwMDYsICAgICAg ICAxLCAgICAgNTI4MCwgMHhjNWMzMzgwOSwgRj0weDAKKzAsICAgIDIyNTYwMDEsICAgIDIyNTYw MDQsICAgICAgICAxLCAgICAgMjc1NSwgMHhkYTk1NWM3NSwgRj0weDAKKzAsICAgIDIyNTYwMDIs ICAgIDIyNTYwMDIsICAgICAgICAyLCAgICAgMTAyNywgMHhmNjUyZWZmMywgRj0weDAKKzAsICAg IDIyNTYwMDQsICAgIDIyNTYwMDUsICAgICAgICAxLCAgICAgIDkwMSwgMHhlMjNjYjcxNiwgRj0w eDAKKzAsICAgIDIyNTYwMDUsICAgIDIyNTYwMDgsICAgICAgICAxLCAgICAgMzAxMCwgMHg3ODNk ZTVjYiwgRj0weDAKKzAsICAgIDIyNTYwMDYsICAgIDIyNTYwMDcsICAgICAgICAxLCAgICAgMTAw NSwgMHg5MWZjZjkyZiwgRj0weDAKKzAsICAgIDIyNTYwMDcsICAgIDIyNTYwMTAsICAgICAgICAx LCAgICAgMTEzMSwgMHhkODhiMjkyMCwgRj0weDAKKzAsICAgIDIyNTYwMDgsICAgIDIyNTYwMDgs ICAgICAgICAyLCAgICAyOTAxOCwgMHhjOWIyNTYwOAorMCwgICAgMjI1NjAxMCwgICAgMjI1NjAx NiwgICAgICAgIDEsICAgICA3NDM2LCAweDE4MzQ0ZTc3LCBGPTB4MAorMCwgICAgMjI1NjAxMSwg ICAgMjI1NjAxMywgICAgICAgIDEsICAgICA0MDUwLCAweDU0ZmNiZWUwLCBGPTB4MAorMCwgICAg MjI1NjAxMiwgICAgMjI1NjAxMiwgICAgICAgIDEsICAgICAxNDEyLCAweGUyNDliZDg2LCBGPTB4 MAorMCwgICAgMjI1NjAxMywgICAgMjI1NjAxNCwgICAgICAgIDEsICAgICAgOTc3LCAweGE3NDlk YzIxLCBGPTB4MAorMCwgICAgMjI1NjAxNCwgICAgMjI1NjAxNCwgICAgICAgIDIsICAgICAyOTUz LCAweGJhOTBjMDA4LCBGPTB4MAorMCwgICAgMjI1NjAxNiwgICAgMjI1NjAxNywgICAgICAgIDEs ICAgICAxMDA0LCAweGRkZWJlYTlhLCBGPTB4MAorMCwgICAgMjI1NjAxNywgICAgMjI1NjAxNywg ICAgICAgIDEsICAgICAxMTA5LCAweDdlMDgxNTcwLCBGPTB4MApkaWZmIC0tZ2l0IGEvdGVzdHMv cmVmL2ZhdGUvaGV2Yy1ic2YtZHRzMnB0cy1pZHItY3JhIGIvdGVzdHMvcmVmL2ZhdGUvaGV2Yy1i c2YtZHRzMnB0cy1pZHItY3JhCmluZGV4IGIxMmYwMjU4MWYuLjAyZTk3NjVhMjYgMTAwNjQ0Ci0t LSBhL3Rlc3RzL3JlZi9mYXRlL2hldmMtYnNmLWR0czJwdHMtaWRyLWNyYQorKysgYi90ZXN0cy9y ZWYvZmF0ZS9oZXZjLWJzZi1kdHMycHRzLWlkci1jcmEKQEAgLTEsNSArMSw1IEBACi1lZDhkNzM1 YjlhMjc4MGNlOGFkYTYxZmQzMWM2ODg4NiAqdGVzdHMvZGF0YS9mYXRlL2hldmMtYnNmLWR0czJw dHMtaWRyLWNyYS5tb3YKLTM3NTIxMCB0ZXN0cy9kYXRhL2ZhdGUvaGV2Yy1ic2YtZHRzMnB0cy1p ZHItY3JhLm1vdgorMDdhMjE2ZDY1Mzc1MDI3MDUzNDhmZWEzOTJkNWQ3M2QgKnRlc3RzL2RhdGEv ZmF0ZS9oZXZjLWJzZi1kdHMycHRzLWlkci1jcmEubW92CiszNzUyNjYgdGVzdHMvZGF0YS9mYXRl L2hldmMtYnNmLWR0czJwdHMtaWRyLWNyYS5tb3YKICNleHRyYWRhdGEgMDogICAgICA2NDgsIDB4 MzBhN2ZhNWMKICN0YiAwOiAxLzEyMDAwMDAKICNtZWRpYV90eXBlIDA6IHZpZGVvCkBAIC00Nyw3 ICs0Nyw3IEBAIGVkOGQ3MzViOWEyNzgwY2U4YWRhNjFmZDMxYzY4ODg2ICp0ZXN0cy9kYXRhL2Zh dGUvaGV2Yy1ic2YtZHRzMnB0cy1pZHItY3JhLm1vdgogMCwgICAgMTY4MDAwMCwgICAgMTgyNDAw MCwgICAgNDgwMDAsICAgICAyNjc0LCAweDI5NmZkNDExLCBGPTB4MAogMCwgICAgMTcyODAwMCwg ICAgMTc3NjAwMCwgICAgNDgwMDAsICAgICAxNDIwLCAweDMwNGQ2MTY4LCBGPTB4MAogMCwgICAg MTc3NjAwMCwgICAgMTg3MjAwMCwgICAgNDgwMDAsICAgICAxMzY0LCAweDQ4NzM0MDg0LCBGPTB4 MAotMCwgICAgMTgyNDAwMCwgICAgMjMwNDAwMCwgICAgNDgwMDAsICAgIDE5MzQ5LCAweGRhMDk0 NGYwLCBGPTB4MAorMCwgICAgMTgyNDAwMCwgICAgMjI1NjAwMSwgICAgNDgwMDAsICAgIDE5MzQ5 LCAweGRhMDk0NGYwLCBGPTB4MAogMCwgICAgMTg3MjAwMCwgICAgMjExMjAwMCwgICAgNDgwMDAs ICAgICA1NTUwLCAweDljMzQ2YjdiLCBGPTB4MAogMCwgICAgMTkyMDAwMCwgICAgMjAxNjAwMCwg ICAgNDgwMDAsICAgICAzMTgwLCAweDUzNjhmNzJiLCBGPTB4MAogMCwgICAgMTk2ODAwMCwgICAg MTk2ODAwMCwgICAgNDgwMDAsICAgICAxNDc1LCAweDM2OWI3YWFlLCBGPTB4MApAQCAtNTUsMTkg KzU1LDE5IEBAIGVkOGQ3MzViOWEyNzgwY2U4YWRhNjFmZDMxYzY4ODg2ICp0ZXN0cy9kYXRhL2Zh dGUvaGV2Yy1ic2YtZHRzMnB0cy1pZHItY3JhLm1vdgogMCwgICAgMjA2NDAwMCwgICAgMjIwODAw MCwgICAgNDgwMDAsICAgICAzMzY1LCAweDgxZDUxMWE2LCBGPTB4MAogMCwgICAgMjExMjAwMCwg ICAgMjE2MDAwMCwgICAgNDgwMDAsICAgICAxNTc1LCAweGJhODFiMGE1LCBGPTB4MAogMCwgICAg MjE2MDAwMCwgICAgMjI1NjAwMCwgICAgNDgwMDAsICAgICAxNTM4LCAweGYxMTk5NDM5LCBGPTB4 MAotMCwgICAgMjIwODAwMCwgICAgMjY4ODAwMCwgICAgNDgwMDAsICAgIDIwMTM4LCAweDEwMWZi MjIwLCBGPTB4MAotMCwgICAgMjI1NjAwMCwgICAgMjQ5NjAwMCwgICAgNDgwMDAsICAgICA1ODA2 LCAweGNjNTAwMTU4LCBGPTB4MAotMCwgICAgMjMwNDAwMCwgICAgMjQwMDAwMCwgICAgNDgwMDAs ICAgICAzMjY3LCAweGY4ZjBkNmNkLCBGPTB4MAotMCwgICAgMjM1MjAwMCwgICAgMjM1MjAwMCwg ICAgNDgwMDAsICAgICAxNTU3LCAweDg5NGZhZjNlLCBGPTB4MAotMCwgICAgMjQwMDAwMCwgICAg MjQ0ODAwMCwgICAgNDgwMDAsICAgICAxNDgyLCAweDZiMTg4NGI3LCBGPTB4MAotMCwgICAgMjQ0 ODAwMCwgICAgMjU5MjAwMCwgICAgNDgwMDAsICAgICAzNTEzLCAweDgxMjI3YTU5LCBGPTB4MAot MCwgICAgMjQ5NjAwMCwgICAgMjU0NDAwMCwgICAgNDgwMDAsICAgICAxNTc2LCAweDg1NWVhYmQ4 LCBGPTB4MAotMCwgICAgMjU0NDAwMCwgICAgMjY0MDAwMCwgICAgNDgwMDAsICAgICAxNjY4LCAw eDAzMGFkZTJlLCBGPTB4MAotMCwgICAgMjU5MjAwMCwgICAgMjU5MjAwMCwgICAgNDgwMDAsICAg IDMyMDg4LCAweGZhZGJmNWY2Ci0wLCAgICAyNjQwMDAwLCAgICAyODgwMDAwLCAgICA0ODAwMCwg ICAgIDU5MjEsIDB4MjFmYjQ5NzYsIEY9MHgwCi0wLCAgICAyNjg4MDAwLCAgICAyNzg0MDAwLCAg ICA0ODAwMCwgICAgIDM0MzYsIDB4OTIwODVjZDYsIEY9MHgwCi0wLCAgICAyNzM2MDAwLCAgICAy NzM2MDAwLCAgICA0ODAwMCwgICAgIDE2MTMsIDB4MWUwY2I3YzYsIEY9MHgwCi0wLCAgICAyNzg0 MDAwLCAgICAyODMyMDAwLCAgICA0ODAwMCwgICAgIDE0ODMsIDB4ODhkMThhNGUsIEY9MHgwCi0w LCAgICAyODMyMDAwLCAgICAyOTc2MDAwLCAgICA0ODAwMCwgICAgIDM1NDAsIDB4YzU3YzhlN2Is IEY9MHgwCi0wLCAgICAyODgwMDAwLCAgICAyOTI4MDAwLCAgICA0ODAwMCwgICAgIDE1NjEsIDB4 OTc0MGEzNjMsIEY9MHgwCi0wLCAgICAyOTI4MDAwLCAgICAzMDI0MDAwLCAgICA0ODAwMCwgICAg IDE2NTEsIDB4MThlM2Q1MmQsIEY9MHgwCiswLCAgICAyMjA4MDAwLCAgICAyMjU2MDExLCAgICA0 ODAwMCwgICAgMjAxMzgsIDB4MTAxZmIyMjAsIEY9MHgwCiswLCAgICAyMjU2MDAwLCAgICAyMjU2 MDA2LCAgICAgICAgMSwgICAgIDU4MDYsIDB4Y2M1MDAxNTgsIEY9MHgwCiswLCAgICAyMjU2MDAx LCAgICAyMjU2MDA0LCAgICAgICAgMSwgICAgIDMyNjcsIDB4ZjhmMGQ2Y2QsIEY9MHgwCiswLCAg ICAyMjU2MDAyLCAgICAyMjU2MDAyLCAgICAgICAgMiwgICAgIDE1NTcsIDB4ODk0ZmFmM2UsIEY9 MHgwCiswLCAgICAyMjU2MDA0LCAgICAyMjU2MDA1LCAgICAgICAgMSwgICAgIDE0ODIsIDB4NmIx ODg0YjcsIEY9MHgwCiswLCAgICAyMjU2MDA1LCAgICAyMjU2MDA4LCAgICAgICAgMSwgICAgIDM1 MTMsIDB4ODEyMjdhNTksIEY9MHgwCiswLCAgICAyMjU2MDA2LCAgICAyMjU2MDA3LCAgICAgICAg MSwgICAgIDE1NzYsIDB4ODU1ZWFiZDgsIEY9MHgwCiswLCAgICAyMjU2MDA3LCAgICAyMjU2MDEw LCAgICAgICAgMSwgICAgIDE2NjgsIDB4MDMwYWRlMmUsIEY9MHgwCiswLCAgICAyMjU2MDA4LCAg ICAyMjU2MDA4LCAgICAgICAgMiwgICAgMzIwODgsIDB4ZmFkYmY1ZjYKKzAsICAgIDIyNTYwMTAs ICAgIDIyNTYwMTYsICAgICAgICAxLCAgICAgNTkyMSwgMHgyMWZiNDk3NiwgRj0weDAKKzAsICAg IDIyNTYwMTEsICAgIDIyNTYwMTMsICAgICAgICAxLCAgICAgMzQzNiwgMHg5MjA4NWNkNiwgRj0w eDAKKzAsICAgIDIyNTYwMTIsICAgIDIyNTYwMTIsICAgICAgICAxLCAgICAgMTYxMywgMHgxZTBj YjdjNiwgRj0weDAKKzAsICAgIDIyNTYwMTMsICAgIDIyNTYwMTQsICAgICAgICAxLCAgICAgMTQ4 MywgMHg4OGQxOGE0ZSwgRj0weDAKKzAsICAgIDIyNTYwMTQsICAgIDIyNTYwMTgsICAgICAgICAy LCAgICAgMzU0MCwgMHhjNTdjOGU3YiwgRj0weDAKKzAsICAgIDIyNTYwMTYsICAgIDIyNTYwMTcs ICAgICAgICAxLCAgICAgMTU2MSwgMHg5NzQwYTM2MywgRj0weDAKKzAsICAgIDIyNTYwMTcsICAg IDIyNTYwMTksICAgICAgICAxLCAgICAgMTY1MSwgMHgxOGUzZDUyZCwgRj0weDAKZGlmZiAtLWdp dCBhL3Rlc3RzL3JlZi9sYXZmLWZhdGUvaGV2Yy5tcDQgYi90ZXN0cy9yZWYvbGF2Zi1mYXRlL2hl dmMubXA0CmluZGV4IDM5ZGRkZDQ5Y2IuLmFlYTVhZTg5NzkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3Jl Zi9sYXZmLWZhdGUvaGV2Yy5tcDQKKysrIGIvdGVzdHMvcmVmL2xhdmYtZmF0ZS9oZXZjLm1wNApA QCAtMSwzICsxLDMgQEAKLTUzOWIwZjZkYWVjZTY2NTY2MDlkZTA4OThhMWYzZDQyICp0ZXN0cy9k YXRhL2xhdmYtZmF0ZS9sYXZmLmhldmMubXA0CiszN2IzYTNlODRkZjIzNTAzODBiMDViMmFmNGRj OTdmNSAqdGVzdHMvZGF0YS9sYXZmLWZhdGUvbGF2Zi5oZXZjLm1wNAogMTUxMzQwIHRlc3RzL2Rh dGEvbGF2Zi1mYXRlL2xhdmYuaGV2Yy5tcDQKIHRlc3RzL2RhdGEvbGF2Zi1mYXRlL2xhdmYuaGV2 Yy5tcDQgQ1JDPTB4YzBhNzcxZGUKLS0gCjIuNTIuMAoKCkZyb20gZmI1NjIwNDQ0M2RlZDQ4Mzc0 YWZhMGJiZjYxNTVkNTI0NmQ4MmVlMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogc3Rl dnhpYW8gPHN0ZXZlbi54aWFvQGFtZC5jb20+CkRhdGU6IEZyaSwgMjEgTm92IDIwMjUgMjA6Mzk6 MjIgLTA1MDAKU3ViamVjdDogW1BBVENIIDE5NS8zMDRdIGF2Y29kZWMvZDNkMTJ2YV9lbmNvZGU6 IGFkZCBpbnRyYSByZWZyZXNoIHN1cHBvcnQgZm9yCiBkM2QxMnZhIGVuY29kZQoKSW50cmEgcmVm cmVzaCBpcyBhIHRlY2huaXF1ZSB0aGF0IGdyYWR1YWxseSByZWZyZXNoZXMgdGhlIHZpZGVvIGJ5 IGVuY29kaW5nIHJvd3Mgb3IgcmVnaW9ucyBhcyBpbnRyYSBtYWNyb2Jsb2Nrcy9DVFVzIHNwcmVh ZCBvdmVyIG11bHRpcGxlIGZyYW1lcywgcmF0aGVyIHRoYW4gdXNpbmcgcGVyaW9kaWMgSS1mcmFt ZXMuClRoaXMgcHJvdmlkZXMgYmV0dGVyIGVycm9yIHJlc2lsaWVuY2UgZm9yIHZpZGVvIHN0cmVh bWluZyB3aGlsZSBtYWludGFpbmluZyBtb3JlIGNvbnNpc3RlbnQgYml0cmF0ZS4KCkRpc2FibGUg SW50cmEgUmVmcmVzaCAoVGhpcyBpcyB0aGUgZGVmYXVsdCkKZmZtcGVnIC1pbml0X2h3X2Rldmlj ZSBkM2QxMnZhIC1od2FjY2VsIGQzZDEydmEgLWh3YWNjZWxfb3V0cHV0X2Zvcm1hdCBkM2QxMiBc Ci1pIGlucHV0Lm1wNCBcCi1jOnYgaDI2NF9kM2QxMnZhIFwKLWludHJhX3JlZnJlc2hfbW9kZSBu b25lIFwKLWludHJhX3JlZnJlc2hfZHVyYXRpb24gMzAgXAotZyA2MCBcCm91dHB1dC5oMjY0CgpF bmFibGUgSW50cmEgUmVmcmVzaApmZm1wZWcgLWluaXRfaHdfZGV2aWNlIGQzZDEydmEgLWh3YWNj ZWwgZDNkMTJ2YSAtaHdhY2NlbF9vdXRwdXRfZm9ybWF0IGQzZDEyIFwKLWkgaW5wdXQubXA0IFwK LWM6diBoMjY0X2QzZDEydmEgXAotaW50cmFfcmVmcmVzaF9tb2RlIHJvd19iYXNlZCBcCi1pbnRy YV9yZWZyZXNoX2R1cmF0aW9uIDMwIFwKLWcgNjAgXApvdXRwdXQuaDI2NAoKUGFyYW1ldGVycwot IGAtaW50cmFfcmVmcmVzaF9tb2RlYDogU2V0IHRvIGByb3dfYmFzZWRgIHRvIGVuYWJsZSByb3ct YmFzZWQgaW50cmEgcmVmcmVzaCwgb3IgYE5PTkVgIHRvIGRpc2FibGUKLSBgLWludHJhX3JlZnJl c2hfZHVyYXRpb25gOiBOdW1iZXIgb2YgZnJhbWVzIG92ZXIgd2hpY2ggdG8gc3ByZWFkIHRoZSBp bnRyYSByZWZyZXNoIChkZWZhdWx0OiAwID0gdXNlIEdPUCBzaXplKQotIGAtZ2A6IEdPUCBzaXpl IChzaG91bGQgdHlwaWNhbGx5IGJlIGxhcmdlciB0aGFuIGludHJhIHJlZnJlc2ggZHVyYXRpb24p Ci0tLQogY29uZmlndXJlICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArCiBsaWJhdmNvZGVj L2QzZDEydmFfZW5jb2RlLmMgICAgICB8IDk4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystCiBsaWJhdmNvZGVjL2QzZDEydmFfZW5jb2RlLmggICAgICB8IDI5ICsrKysrKysrKy0KIGxp YmF2Y29kZWMvZDNkMTJ2YV9lbmNvZGVfYXYxLmMgIHwgIDMgKy0KIGxpYmF2Y29kZWMvZDNkMTJ2 YV9lbmNvZGVfaDI2NC5jIHwgIDIgKy0KIGxpYmF2Y29kZWMvZDNkMTJ2YV9lbmNvZGVfaGV2Yy5j IHwgIDIgKy0KIDYgZmlsZXMgY2hhbmdlZCwgMTI5IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IDg4MzUzOWUzNjEu LjA0ZTA4NmMzMmEgMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysgYi9jb25maWd1cmUKQEAgLTI2 MTUsNiArMjYxNSw3IEBAIENPTkZJR19FWFRSQT0iCiAgICAgY2JzX3ZwOAogICAgIGNic192cDkK ICAgICBjZWxwX21hdGgKKyAgICBkM2QxMl9pbnRyYV9yZWZyZXNoCiAgICAgZDNkMTJ2YV9lbmNv ZGUKICAgICBkZWZsYXRlX3dyYXBwZXIKICAgICBkaXJhY19wYXJzZQpAQCAtNjk2NCw2ICs2OTY1 LDcgQEAgY2hlY2tfdHlwZSAid2luZG93cy5oIGQzZDEydmlkZW8uaCIgIklEM0QxMlZpZGVvRW5j b2RlciIKIHRlc3RfY29kZSBjYyAid2luZG93cy5oIGQzZDEydmlkZW8uaCIgIkQzRDEyX0ZFQVRV UkVfVklERU8gZmVhdHVyZSA9IEQzRDEyX0ZFQVRVUkVfVklERU9fRU5DT0RFUl9DT0RFQyIgJiYg XAogdGVzdF9jb2RlIGNjICJ3aW5kb3dzLmggZDNkMTJ2aWRlby5oIiAiRDNEMTJfRkVBVFVSRV9E QVRBX1ZJREVPX0VOQ09ERVJfUkVTT1VSQ0VfUkVRVUlSRU1FTlRTIHJlcSIgJiYgZW5hYmxlIGQz ZDEyX2VuY29kZXJfZmVhdHVyZQogdGVzdF9jb2RlIGNjICJ3aW5kb3dzLmggZDNkMTJ2aWRlby5o IiAiRDNEMTJfVklERU9fRU5DT0RFUl9DT0RFQyBjID0gRDNEMTJfVklERU9fRU5DT0RFUl9DT0RF Q19BVjE7ICh2b2lkKWM7IiAmJiBlbmFibGUgZDNkMTJ2YV9hdjFfaGVhZGVycwordGVzdF9jb2Rl IGNjICJ3aW5kb3dzLmggZDNkMTJ2aWRlby5oIiAiRDNEMTJfRkVBVFVSRV9EQVRBX1ZJREVPX0VO Q09ERVJfSU5UUkFfUkVGUkVTSF9NT0RFIGNoZWNrID0geyAwIH07IiAmJiBlbmFibGUgZDNkMTJf aW50cmFfcmVmcmVzaAogY2hlY2tfdHlwZSAid2luZG93cy5oIiAiRFBJX0FXQVJFTkVTU19DT05U RVhUIiAtRF9XSU4zMl9XSU5OVD0weDBBMDAKIGNoZWNrX3R5cGUgIndpbmRvd3MuaCBzZWN1cml0 eS5oIHNjaG5sc3AuaCIgU2VjUGtnQ29udGV4dF9LZXlpbmdNYXRlcmlhbEluZm8gLURTRUNVUklU WV9XSU4zMgogY2hlY2tfdHlwZSAiZDNkOS5oIGR4dmEyYXBpLmgiIERYVkEyX0NvbmZpZ1BpY3R1 cmVEZWNvZGUgLURfV0lOMzJfV0lOTlQ9MHgwNjAyCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2Qz ZDEydmFfZW5jb2RlLmMgYi9saWJhdmNvZGVjL2QzZDEydmFfZW5jb2RlLmMKaW5kZXggNWE4MmE0 MmM1Zi4uZjE1ZGYzN2I5NiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9kM2QxMnZhX2VuY29kZS5j CisrKyBiL2xpYmF2Y29kZWMvZDNkMTJ2YV9lbmNvZGUuYwpAQCAtMjExLDEwICsyMTEsMTcgQEAg c3RhdGljIGludCBkM2QxMnZhX2VuY29kZV9pc3N1ZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsCiAg ICAgaW50IGJhcnJpZXJzX3JlZl9pbmRleCA9IDA7CiAgICAgRDNEMTJfUkVTT1VSQ0VfQkFSUklF UiAqYmFycmllcnNfcmVmID0gTlVMTDsKIAorICAgIEQzRDEyX1ZJREVPX0VOQ09ERVJfU0VRVUVO Q0VfQ09OVFJPTF9GTEFHUyBzZXFfZmxhZ3MgPSBEM0QxMl9WSURFT19FTkNPREVSX1NFUVVFTkNF X0NPTlRST0xfRkxBR19OT05FOworCisgICAgLy8gUmVxdWVzdCBpbnRyYSByZWZyZXNoIGlmIGVu YWJsZWQKKyAgICBpZiAoY3R4LT5pbnRyYV9yZWZyZXNoLk1vZGUgIT0gRDNEMTJfVklERU9fRU5D T0RFUl9JTlRSQV9SRUZSRVNIX01PREVfTk9ORSkgeworICAgICAgICBzZXFfZmxhZ3MgfD0gRDNE MTJfVklERU9fRU5DT0RFUl9TRVFVRU5DRV9DT05UUk9MX0ZMQUdfUkVRVUVTVF9JTlRSQV9SRUZS RVNIOworICAgIH0KKwogICAgIEQzRDEyX1ZJREVPX0VOQ09ERVJfRU5DT0RFRlJBTUVfSU5QVVRf QVJHVU1FTlRTIGlucHV0X2FyZ3MgPSB7CiAgICAgICAgIC5TZXF1ZW5jZUNvbnRyb2xEZXNjID0g ewotICAgICAgICAgICAgLkZsYWdzID0gRDNEMTJfVklERU9fRU5DT0RFUl9TRVFVRU5DRV9DT05U Uk9MX0ZMQUdfTk9ORSwKLSAgICAgICAgICAgIC5JbnRyYVJlZnJlc2hDb25maWcgPSB7IDAgfSwK KyAgICAgICAgICAgIC5GbGFncyA9IHNlcV9mbGFncywKKyAgICAgICAgICAgIC5JbnRyYVJlZnJl c2hDb25maWcgPSBjdHgtPmludHJhX3JlZnJlc2gsCiAgICAgICAgICAgICAuUmF0ZUNvbnRyb2wg PSBjdHgtPnJjLAogICAgICAgICAgICAgLlBpY3R1cmVUYXJnZXRSZXNvbHV0aW9uID0gY3R4LT5y ZXNvbHV0aW9uLAogICAgICAgICAgICAgLlNlbGVjdGVkTGF5b3V0TW9kZSA9IEQzRDEyX1ZJREVP X0VOQ09ERVJfRlJBTUVfU1VCUkVHSU9OX0xBWU9VVF9NT0RFX0ZVTExfRlJBTUUsCkBAIC0zNTks NyArMzY2LDcgQEAgc3RhdGljIGludCBkM2QxMnZhX2VuY29kZV9pc3N1ZShBVkNvZGVjQ29udGV4 dCAqYXZjdHgsCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpbnB1dF9hcmdzLlBpY3R1cmVDb250 cm9sRGVzYy5JbnRyYVJlZnJlc2hGcmFtZUluZGV4ICA9IDA7CisgICAgaW5wdXRfYXJncy5QaWN0 dXJlQ29udHJvbERlc2MuSW50cmFSZWZyZXNoRnJhbWVJbmRleCAgPSBjdHgtPmludHJhX3JlZnJl c2hfZnJhbWVfaW5kZXg7CiAgICAgaWYgKGJhc2VfcGljLT5pc19yZWZlcmVuY2UpCiAgICAgICAg IGlucHV0X2FyZ3MuUGljdHVyZUNvbnRyb2xEZXNjLkZsYWdzIHw9IEQzRDEyX1ZJREVPX0VOQ09E RVJfUElDVFVSRV9DT05UUk9MX0ZMQUdfVVNFRF9BU19SRUZFUkVOQ0VfUElDVFVSRTsKIApAQCAt NTQ3LDYgKzU1NCwxMiBAQCBzdGF0aWMgaW50IGQzZDEydmFfZW5jb2RlX2lzc3VlKEFWQ29kZWND b250ZXh0ICphdmN0eCwKIAogICAgIHBpYy0+ZmVuY2VfdmFsdWUgPSBjdHgtPnN5bmNfY3R4LmZl bmNlX3ZhbHVlOwogCisgICAgLy8gVXBkYXRlIGludHJhIHJlZnJlc2ggZnJhbWUgaW5kZXggZm9y IG5leHQgZnJhbWUKKyAgICBpZiAoY3R4LT5pbnRyYV9yZWZyZXNoLk1vZGUgIT0gRDNEMTJfVklE RU9fRU5DT0RFUl9JTlRSQV9SRUZSRVNIX01PREVfTk9ORSkgeworICAgICAgICBjdHgtPmludHJh X3JlZnJlc2hfZnJhbWVfaW5kZXggPQorICAgICAgICAgICAgKGN0eC0+aW50cmFfcmVmcmVzaF9m cmFtZV9pbmRleCArIDEpICUgY3R4LT5pbnRyYV9yZWZyZXNoLkludHJhUmVmcmVzaER1cmF0aW9u OworICAgIH0KKwogICAgIGlmIChkM2QxMl9yZWZzLnBwVGV4dHVyZTJEcykKICAgICAgICAgYXZf ZnJlZXAoJmQzZDEyX3JlZnMucHBUZXh0dXJlMkRzKTsKIApAQCAtMTIyMCw2ICsxMjMzLDgxIEBA IHN0YXRpYyBpbnQgZDNkMTJ2YV9lbmNvZGVfaW5pdF9nb3Bfc3RydWN0dXJlKEFWQ29kZWNDb250 ZXh0ICphdmN0eCkKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBkM2QxMnZhX2VuY29k ZV9pbml0X2ludHJhX3JlZnJlc2goQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQoreworICAgIEZGSFdC YXNlRW5jb2RlQ29udGV4dCAqYmFzZV9jdHggPSBhdmN0eC0+cHJpdl9kYXRhOworICAgIEQzRDEy VkFFbmNvZGVDb250ZXh0ICAgICAgICpjdHggPSBhdmN0eC0+cHJpdl9kYXRhOworCisgICAgaWYg KGN0eC0+aW50cmFfcmVmcmVzaC5Nb2RlID09IEQzRDEyX1ZJREVPX0VOQ09ERVJfSU5UUkFfUkVG UkVTSF9NT0RFX05PTkUpCisgICAgICAgIHJldHVybiAwOworCisgICAgLy8gQ2hlY2sgZm9yIFNE SyBBUEkgYXZhaWxhYmlsaXR5CisjaWYgQ09ORklHX0QzRDEyX0lOVFJBX1JFRlJFU0gKKyAgICBI UkVTVUxUIGhyOworICAgIEQzRDEyX1ZJREVPX0VOQ09ERVJfTEVWRUxfU0VUVElORyAgICAgICAg ICAgICAgICAgICAgbGV2ZWwgPSB7IDAgfTsKKyAgICBEM0QxMl9WSURFT19FTkNPREVSX0xFVkVM U19IMjY0ICAgICAgICAgICAgICAgICBoMjY0X2xldmVsID0geyAwIH07CisgICAgRDNEMTJfVklE RU9fRU5DT0RFUl9MRVZFTF9USUVSX0NPTlNUUkFJTlRTX0hFVkMgaGV2Y19sZXZlbCA9IHsgMCB9 OworI2lmIENPTkZJR19BVjFfRDNEMTJWQV9FTkNPREVSCisgICAgRDNEMTJfVklERU9fRU5DT0RF Ul9BVjFfTEVWRUxfVElFUl9DT05TVFJBSU5UUyAgIGF2MV9sZXZlbCA9IHsgMCB9OworI2VuZGlm CisKKyAgICBzd2l0Y2ggKGN0eC0+Y29kZWMtPmQzZDEyX2NvZGVjKSB7CisgICAgICAgIGNhc2Ug RDNEMTJfVklERU9fRU5DT0RFUl9DT0RFQ19IMjY0OgorICAgICAgICAgICAgbGV2ZWwuRGF0YVNp emUgPSBzaXplb2YoRDNEMTJfVklERU9fRU5DT0RFUl9MRVZFTFNfSDI2NCk7CisgICAgICAgICAg ICBsZXZlbC5wSDI2NExldmVsU2V0dGluZyA9ICZoMjY0X2xldmVsOworICAgICAgICAgICAgYnJl YWs7CisgICAgICAgIGNhc2UgRDNEMTJfVklERU9fRU5DT0RFUl9DT0RFQ19IRVZDOgorICAgICAg ICAgICAgbGV2ZWwuRGF0YVNpemUgPSBzaXplb2YoRDNEMTJfVklERU9fRU5DT0RFUl9MRVZFTF9U SUVSX0NPTlNUUkFJTlRTX0hFVkMpOworICAgICAgICAgICAgbGV2ZWwucEhFVkNMZXZlbFNldHRp bmcgPSAmaGV2Y19sZXZlbDsKKyAgICAgICAgICAgIGJyZWFrOworI2lmIENPTkZJR19BVjFfRDNE MTJWQV9FTkNPREVSCisgICAgICAgIGNhc2UgRDNEMTJfVklERU9fRU5DT0RFUl9DT0RFQ19BVjE6 CisgICAgICAgICAgICBsZXZlbC5EYXRhU2l6ZSA9IHNpemVvZihEM0QxMl9WSURFT19FTkNPREVS X0FWMV9MRVZFTF9USUVSX0NPTlNUUkFJTlRTKTsKKyAgICAgICAgICAgIGxldmVsLnBBVjFMZXZl bFNldHRpbmcgPSAmYXYxX2xldmVsOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICAg ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGF2X2Fzc2VydDAoMCk7CisgICAgfQorCisgICAgRDNE MTJfRkVBVFVSRV9EQVRBX1ZJREVPX0VOQ09ERVJfSU5UUkFfUkVGUkVTSF9NT0RFIGludHJhX3Jl ZnJlc2hfc3VwcG9ydCA9IHsKKyAgICAgICAgLk5vZGVJbmRleCA9IDAsCisgICAgICAgIC5Db2Rl YyA9IGN0eC0+Y29kZWMtPmQzZDEyX2NvZGVjLAorICAgICAgICAuUHJvZmlsZSA9IGN0eC0+cHJv ZmlsZS0+ZDNkMTJfcHJvZmlsZSwKKyAgICAgICAgLkxldmVsID0gbGV2ZWwsCisgICAgICAgIC5J bnRyYVJlZnJlc2hNb2RlID0gY3R4LT5pbnRyYV9yZWZyZXNoLk1vZGUsCisgICAgfTsKKworICAg IGhyID0gSUQzRDEyVmlkZW9EZXZpY2UzX0NoZWNrRmVhdHVyZVN1cHBvcnQoY3R4LT52aWRlb19k ZXZpY2UzLAorICAgICAgICBEM0QxMl9GRUFUVVJFX1ZJREVPX0VOQ09ERVJfSU5UUkFfUkVGUkVT SF9NT0RFLAorICAgICAgICAmaW50cmFfcmVmcmVzaF9zdXBwb3J0LCBzaXplb2YoaW50cmFfcmVm cmVzaF9zdXBwb3J0KSk7CisKKyAgICBpZiAoRkFJTEVEKGhyKSB8fCAhaW50cmFfcmVmcmVzaF9z dXBwb3J0LklzU3VwcG9ydGVkKSB7CisgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9S LCAiUmVxdWVzdGVkIGludHJhIHJlZnJlc2ggbW9kZSBub3Qgc3VwcG9ydGVkIGJ5IGRyaXZlci5c biIpOworICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9UU1VQKTsKKyAgICB9CisjZWxzZQorICAg IC8vIE9sZGVyIFNESyAtIHZhbGlkYXRpb24gd2lsbCBvY2N1ciBpbiBpbml0X3NlcXVlbmNlX3Bh cmFtcyB2aWEgRDNEMTJfRkVBVFVSRV9WSURFT19FTkNPREVSX1NVUFBPUlQKKyAgICBhdl9sb2co YXZjdHgsIEFWX0xPR19WRVJCT1NFLCAiSW50cmEgcmVmcmVzaCBleHBsaWNpdCBjaGVjayBub3Qg YXZhaWxhYmxlIGluIHRoaXMgU0RLLlxuIgorICAgICAgICAgICAiU3VwcG9ydCB3aWxsIGJlIHZh bGlkYXRlZCBkdXJpbmcgZW5jb2RlciBpbml0aWFsaXphdGlvbi5cbiIpOworI2VuZGlmCisKKyAg ICAvLyBTZXQgZHVyYXRpb246IHVzZSBHT1Agc2l6ZSBpZiBub3Qgc3BlY2lmaWVkCisgICAgaWYg KGN0eC0+aW50cmFfcmVmcmVzaC5JbnRyYVJlZnJlc2hEdXJhdGlvbiA9PSAwKSB7CisgICAgICAg IGN0eC0+aW50cmFfcmVmcmVzaC5JbnRyYVJlZnJlc2hEdXJhdGlvbiA9IGJhc2VfY3R4LT5nb3Bf c2l6ZTsKKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfVkVSQk9TRSwgIkludHJhIHJlZnJl c2ggZHVyYXRpb24gc2V0IHRvIEdPUCBzaXplOiAlZFxuIiwKKyAgICAgICAgICAgICAgIGN0eC0+ aW50cmFfcmVmcmVzaC5JbnRyYVJlZnJlc2hEdXJhdGlvbik7CisgICAgfQorCisgICAgLy8gSW5p dGlhbGl6ZSBmcmFtZSBpbmRleAorICAgIGN0eC0+aW50cmFfcmVmcmVzaF9mcmFtZV9pbmRleCA9 IDA7CisKKyAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19WRVJCT1NFLCAiSW50cmEgcmVmcmVzaDog bW9kZT0lZCwgZHVyYXRpb249JWQgZnJhbWVzXG4iLAorICAgICAgICAgICBjdHgtPmludHJhX3Jl ZnJlc2guTW9kZSwgY3R4LT5pbnRyYV9yZWZyZXNoLkludHJhUmVmcmVzaER1cmF0aW9uKTsKKwor ICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgaW50IGQzZDEydmFfY3JlYXRlX2VuY29kZXIoQVZD b2RlY0NvbnRleHQgKmF2Y3R4KQogewogICAgIEZGSFdCYXNlRW5jb2RlQ29udGV4dCAgKmJhc2Vf Y3R4ICAgICA9IGF2Y3R4LT5wcml2X2RhdGE7CkBAIC0xNTcwLDYgKzE2NTgsMTAgQEAgaW50IGZm X2QzZDEydmFfZW5jb2RlX2luaXQoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogICAgIGlmIChlcnIg PCAwKQogICAgICAgICBnb3RvIGZhaWw7CiAKKyAgICBlcnIgPSBkM2QxMnZhX2VuY29kZV9pbml0 X2ludHJhX3JlZnJlc2goYXZjdHgpOworICAgIGlmIChlcnIgPCAwKQorICAgICAgICBnb3RvIGZh aWw7CisKICAgICBpZiAoIShjdHgtPmNvZGVjLT5mbGFncyAmIEZGX0hXX0ZMQUdfU0xJQ0VfQ09O VFJPTCkgJiYgYXZjdHgtPnNsaWNlcyA+IDApIHsKICAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9M T0dfV0FSTklORywgIk11bHRpcGxlIHNsaWNlcyB3ZXJlIHJlcXVlc3RlZCAiCiAgICAgICAgICAg ICAgICAiYnV0IHRoaXMgY29kZWMgZG9lcyBub3Qgc3VwcG9ydCBjb250cm9sbGluZyBzbGljZXMu XG4iKTsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvZDNkMTJ2YV9lbmNvZGUuaCBiL2xpYmF2Y29k ZWMvZDNkMTJ2YV9lbmNvZGUuaAppbmRleCBiN2NmZWEwNTgyLi42OTlkOGQyMDc3IDEwMDY0NAot LS0gYS9saWJhdmNvZGVjL2QzZDEydmFfZW5jb2RlLmgKKysrIGIvbGliYXZjb2RlYy9kM2QxMnZh X2VuY29kZS5oCkBAIC0yNjYsNiArMjY2LDE3IEBAIHR5cGVkZWYgc3RydWN0IEQzRDEyVkFFbmNv ZGVDb250ZXh0IHsKICAgICBEM0QxMl9WSURFT19FTkNPREVSX0xFVkVMX1NFVFRJTkcgbGV2ZWw7 CiAKICAgICBEM0QxMl9WSURFT19FTkNPREVSX1BJQ1RVUkVfQ09OVFJPTF9TVUJSRUdJT05TX0xB WU9VVF9EQVRBIHN1YnJlZ2lvbnNfbGF5b3V0OworCisgICAgLyoqCisgICAgICogSW50cmEgcmVm cmVzaCBjb25maWd1cmF0aW9uCisgICAgICovCisgICAgRDNEMTJfVklERU9fRU5DT0RFUl9JTlRS QV9SRUZSRVNIIGludHJhX3JlZnJlc2g7CisKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IGZyYW1l IGluZGV4IHdpdGhpbiBpbnRyYSByZWZyZXNoIGN5Y2xlCisgICAgICovCisgICAgVUlOVCBpbnRy YV9yZWZyZXNoX2ZyYW1lX2luZGV4OworCiB9IEQzRDEyVkFFbmNvZGVDb250ZXh0OwogCiB0eXBl ZGVmIHN0cnVjdCBEM0QxMlZBRW5jb2RlVHlwZSB7CkBAIC0zNDcsMTEgKzM1OCwyNyBAQCBpbnQg ZmZfZDNkMTJ2YV9lbmNvZGVfcmVjZWl2ZV9wYWNrZXQoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBB VlBhY2tldCAqcGt0KTsKIGludCBmZl9kM2QxMnZhX2VuY29kZV9pbml0KEFWQ29kZWNDb250ZXh0 ICphdmN0eCk7CiBpbnQgZmZfZDNkMTJ2YV9lbmNvZGVfY2xvc2UoQVZDb2RlY0NvbnRleHQgKmF2 Y3R4KTsKIAorI2RlZmluZSBEM0QxMlZBX0VOQ09ERV9JTlRSQV9SRUZSRVNIX01PREUobmFtZSwg bW9kZSwgZGVzYykgXAorICAgIHsgI25hbWUsIGRlc2MsIDAsIEFWX09QVF9UWVBFX0NPTlNULCB7 IC5pNjQgPSBEM0QxMl9WSURFT19FTkNPREVSX0lOVFJBX1JFRlJFU0hfTU9ERV8gIyMgbW9kZSB9 LCBcCisgICAgICAwLCAwLCBGTEFHUywgLnVuaXQgPSAiaW50cmFfcmVmcmVzaF9tb2RlIiB9CisK ICNkZWZpbmUgRDNEMTJWQV9FTkNPREVfQ09NTU9OX09QVElPTlMgXAogICAgIHsgIm1heF9mcmFt ZV9zaXplIiwgXAogICAgICAgIk1heGltdW0gZnJhbWUgc2l6ZSAoaW4gYnl0ZXMpIixcCiAgICAg ICBPRkZTRVQoY29tbW9uLm1heF9mcmFtZV9zaXplKSwgQVZfT1BUX1RZUEVfSU5ULCBcCi0gICAg ICB7IC5pNjQgPSAwIH0sIDAsIElOVF9NQVggLyA4LCBGTEFHUyB9CisgICAgICB7IC5pNjQgPSAw IH0sIDAsIElOVF9NQVggLyA4LCBGTEFHUyB9LCBcCisgICAgeyAiaW50cmFfcmVmcmVzaF9tb2Rl IiwgXAorICAgICAgIlNldCBpbnRyYSByZWZyZXNoIG1vZGUiLCBcCisgICAgICBPRkZTRVQoY29t bW9uLmludHJhX3JlZnJlc2guTW9kZSksIEFWX09QVF9UWVBFX0lOVCwgXAorICAgICAgeyAuaTY0 ID0gRDNEMTJfVklERU9fRU5DT0RFUl9JTlRSQV9SRUZSRVNIX01PREVfTk9ORSB9LCBcCisgICAg ICBEM0QxMl9WSURFT19FTkNPREVSX0lOVFJBX1JFRlJFU0hfTU9ERV9OT05FLCBcCisgICAgICBE M0QxMl9WSURFT19FTkNPREVSX0lOVFJBX1JFRlJFU0hfTU9ERV9ST1dfQkFTRUQsIEZMQUdTLCAu dW5pdCA9ICJpbnRyYV9yZWZyZXNoX21vZGUiIH0sIFwKKyAgICBEM0QxMlZBX0VOQ09ERV9JTlRS QV9SRUZSRVNIX01PREUobm9uZSwgTk9ORSwgIkRpc2FibGUgaW50cmEgcmVmcmVzaCIpLCBcCisg ICAgRDNEMTJWQV9FTkNPREVfSU5UUkFfUkVGUkVTSF9NT0RFKHJvd19iYXNlZCwgUk9XX0JBU0VE LCAiUm93LWJhc2VkIGludHJhIHJlZnJlc2giKSwgXAorICAgIHsgImludHJhX3JlZnJlc2hfZHVy YXRpb24iLCBcCisgICAgICAiTnVtYmVyIG9mIGZyYW1lcyBvdmVyIHdoaWNoIHRvIHNwcmVhZCBp bnRyYSByZWZyZXNoICgwID0gR09QIHNpemUpIiwgXAorICAgICAgT0ZGU0VUKGNvbW1vbi5pbnRy YV9yZWZyZXNoLkludHJhUmVmcmVzaER1cmF0aW9uKSwgQVZfT1BUX1RZUEVfSU5ULCBcCisgICAg ICB7IC5pNjQgPSAwIH0sIDAsIElOVF9NQVgsIEZMQUdTIH0KIAogI2RlZmluZSBEM0QxMlZBX0VO Q09ERV9SQ19NT0RFKG5hbWUsIGRlc2MpIFwKICAgICB7ICNuYW1lLCBkZXNjLCAwLCBBVl9PUFRf VFlQRV9DT05TVCwgeyAuaTY0ID0gUkNfTU9ERV8gIyMgbmFtZSB9LCBcCmRpZmYgLS1naXQgYS9s aWJhdmNvZGVjL2QzZDEydmFfZW5jb2RlX2F2MS5jIGIvbGliYXZjb2RlYy9kM2QxMnZhX2VuY29k ZV9hdjEuYwppbmRleCAzNGU4MDNkYjk4Li4zMWQzZGYzM2JkIDEwMDY0NAotLS0gYS9saWJhdmNv ZGVjL2QzZDEydmFfZW5jb2RlX2F2MS5jCisrKyBiL2xpYmF2Y29kZWMvZDNkMTJ2YV9lbmNvZGVf YXYxLmMKQEAgLTU1OSw3ICs1NTksNyBAQCBzdGF0aWMgaW50IGQzZDEydmFfZW5jb2RlX2F2MV9p bml0X3NlcXVlbmNlX3BhcmFtcyhBVkNvZGVjQ29udGV4dCAqYXZjdHgpCiAgICAgICAgIC5Db2Rl YyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IEQzRDEyX1ZJREVPX0VOQ09ERVJfQ09ERUNf QVYxLAogICAgICAgICAuSW5wdXRGb3JtYXQgICAgICAgICAgICAgICAgICAgICAgPSBod2N0eC0+ Zm9ybWF0LAogICAgICAgICAuUmF0ZUNvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgPSBjdHgt PnJjLAotICAgICAgICAuSW50cmFSZWZyZXNoICAgICAgICAgICAgICAgICAgICAgPSBEM0QxMl9W SURFT19FTkNPREVSX0lOVFJBX1JFRlJFU0hfTU9ERV9OT05FLAorICAgICAgICAuSW50cmFSZWZy ZXNoICAgICAgICAgICAgICAgICAgICAgPSBjdHgtPmludHJhX3JlZnJlc2guTW9kZSwKICAgICAg ICAgLlN1YnJlZ2lvbkZyYW1lRW5jb2RpbmcgICAgICAgICAgID0gRDNEMTJfVklERU9fRU5DT0RF Ul9GUkFNRV9TVUJSRUdJT05fTEFZT1VUX01PREVfRlVMTF9GUkFNRSwKICAgICAgICAgLlJlc29s dXRpb25zTGlzdENvdW50ICAgICAgICAgICAgID0gMSwKICAgICAgICAgLnBSZXNvbHV0aW9uTGlz dCAgICAgICAgICAgICAgICAgID0gJmN0eC0+cmVzb2x1dGlvbiwKQEAgLTEwODIsNiArMTA4Miw3 IEBAIHN0YXRpYyBpbnQgZDNkMTJ2YV9lbmNvZGVfYXYxX2Nsb3NlKEFWQ29kZWNDb250ZXh0ICph dmN0eCkKICNkZWZpbmUgRkxBR1MgKEFWX09QVF9GTEFHX1ZJREVPX1BBUkFNIHwgQVZfT1BUX0ZM QUdfRU5DT0RJTkdfUEFSQU0pCiBzdGF0aWMgY29uc3QgQVZPcHRpb24gZDNkMTJ2YV9lbmNvZGVf YXYxX29wdGlvbnNbXSA9IHsKICAgICBIV19CQVNFX0VOQ09ERV9DT01NT05fT1BUSU9OUywKKyAg ICBEM0QxMlZBX0VOQ09ERV9DT01NT05fT1BUSU9OUywKICAgICBEM0QxMlZBX0VOQ09ERV9SQ19P UFRJT05TLAogCiAgICAgeyAicXAiLCAiQ29uc3RhbnQgUVAgKGZvciBQLWZyYW1lczsgc2NhbGVk IGJ5IHFmYWN0b3IvcW9mZnNldCBmb3IgSS9CKSIsCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2Qz ZDEydmFfZW5jb2RlX2gyNjQuYyBiL2xpYmF2Y29kZWMvZDNkMTJ2YV9lbmNvZGVfaDI2NC5jCmlu ZGV4IDk2NzU0NGVhMjQuLmJjZjVhMzI2ZTUgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvZDNkMTJ2 YV9lbmNvZGVfaDI2NC5jCisrKyBiL2xpYmF2Y29kZWMvZDNkMTJ2YV9lbmNvZGVfaDI2NC5jCkBA IC0xNzgsNyArMTc4LDcgQEAgc3RhdGljIGludCBkM2QxMnZhX2VuY29kZV9oMjY0X2luaXRfc2Vx dWVuY2VfcGFyYW1zKEFWQ29kZWNDb250ZXh0ICphdmN0eCkKICAgICAgICAgLkNvZGVjICAgICAg ICAgICAgICAgICAgICAgICAgICAgID0gRDNEMTJfVklERU9fRU5DT0RFUl9DT0RFQ19IMjY0LAog ICAgICAgICAuSW5wdXRGb3JtYXQgICAgICAgICAgICAgICAgICAgICAgPSBod2N0eC0+Zm9ybWF0 LAogICAgICAgICAuUmF0ZUNvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgPSBjdHgtPnJjLAot ICAgICAgICAuSW50cmFSZWZyZXNoICAgICAgICAgICAgICAgICAgICAgPSBEM0QxMl9WSURFT19F TkNPREVSX0lOVFJBX1JFRlJFU0hfTU9ERV9OT05FLAorICAgICAgICAuSW50cmFSZWZyZXNoICAg ICAgICAgICAgICAgICAgICAgPSBjdHgtPmludHJhX3JlZnJlc2guTW9kZSwKICAgICAgICAgLlN1 YnJlZ2lvbkZyYW1lRW5jb2RpbmcgICAgICAgICAgID0gRDNEMTJfVklERU9fRU5DT0RFUl9GUkFN RV9TVUJSRUdJT05fTEFZT1VUX01PREVfRlVMTF9GUkFNRSwKICAgICAgICAgLlJlc29sdXRpb25z TGlzdENvdW50ICAgICAgICAgICAgID0gMSwKICAgICAgICAgLnBSZXNvbHV0aW9uTGlzdCAgICAg ICAgICAgICAgICAgID0gJmN0eC0+cmVzb2x1dGlvbiwKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMv ZDNkMTJ2YV9lbmNvZGVfaGV2Yy5jIGIvbGliYXZjb2RlYy9kM2QxMnZhX2VuY29kZV9oZXZjLmMK aW5kZXggMDFlNWI0Y2I0Yy4uZTAwZWNiYjRkZSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9kM2Qx MnZhX2VuY29kZV9oZXZjLmMKKysrIGIvbGliYXZjb2RlYy9kM2QxMnZhX2VuY29kZV9oZXZjLmMK QEAgLTI1MCw3ICsyNTAsNyBAQCBzdGF0aWMgaW50IGQzZDEydmFfZW5jb2RlX2hldmNfaW5pdF9z ZXF1ZW5jZV9wYXJhbXMoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogICAgICAgICAuQ29kZWMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPSBEM0QxMl9WSURFT19FTkNPREVSX0NPREVDX0hFVkMs CiAgICAgICAgIC5JbnB1dEZvcm1hdCAgICAgICAgICAgICAgICAgICAgICA9IGh3Y3R4LT5mb3Jt YXQsCiAgICAgICAgIC5SYXRlQ29udHJvbCAgICAgICAgICAgICAgICAgICAgICA9IGN0eC0+cmMs Ci0gICAgICAgIC5JbnRyYVJlZnJlc2ggICAgICAgICAgICAgICAgICAgICA9IEQzRDEyX1ZJREVP X0VOQ09ERVJfSU5UUkFfUkVGUkVTSF9NT0RFX05PTkUsCisgICAgICAgIC5JbnRyYVJlZnJlc2gg ICAgICAgICAgICAgICAgICAgICA9IGN0eC0+aW50cmFfcmVmcmVzaC5Nb2RlLAogICAgICAgICAu U3VicmVnaW9uRnJhbWVFbmNvZGluZyAgICAgICAgICAgPSBEM0QxMl9WSURFT19FTkNPREVSX0ZS QU1FX1NVQlJFR0lPTl9MQVlPVVRfTU9ERV9GVUxMX0ZSQU1FLAogICAgICAgICAuUmVzb2x1dGlv bnNMaXN0Q291bnQgICAgICAgICAgICAgPSAxLAogICAgICAgICAucFJlc29sdXRpb25MaXN0ICAg ICAgICAgICAgICAgICAgPSAmY3R4LT5yZXNvbHV0aW9uLAotLSAKMi41Mi4wCgoKRnJvbSA5ZTE3 NmQ1NWY0YWUyNmQ2NWM1MjllODcwYmRmNTJjZTkwOWQzODJhIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBYaWEgVGFvIDx4aWF0YW9AZ21haWwuY29tPgpEYXRlOiBUaHUsIDQgRGVjIDIw MjUgMTE6NDk6NTAgKzA4MDAKU3ViamVjdDogW1BBVENIIDE5Ni8zMDRdIGF2Y29kZWMvd2FzbS9o ZXZjOiBmaXggdHlwbyBpbiBidXR0ZXJmbHkgbWFjcm8KClNpZ25lZC1vZmYtYnk6IFhpYSBUYW8g PHhpYXRhb0BnbWFpbC5jb20+Ci0tLQogbGliYXZjb2RlYy93YXNtL2hldmMvaWRjdC5jIHwgMTAg KysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3dhc20vaGV2Yy9pZGN0LmMgYi9saWJhdmNvZGVj L3dhc20vaGV2Yy9pZGN0LmMKaW5kZXggODI4ZmMyNmE0OS4uZjJiMDRmMzA3YyAxMDA2NDQKLS0t IGEvbGliYXZjb2RlYy93YXNtL2hldmMvaWRjdC5jCisrKyBiL2xpYmF2Y29kZWMvd2FzbS9oZXZj L2lkY3QuYwpAQCAtMjc5LDcgKzI3OSw3IEBAIHZvaWQgZmZfaGV2Y19pZGN0Xzh4OF8xMF9zaW1k MTI4KGludDE2X3QgKmNvZWZmcywgaW50IGNvbF9saW1pdCkKICAgICB4MSArPSB4MjsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB4MyArPSB4MjsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKIAotI2RlZmluZSBidWZmZXJmbHkoZSwgbywgcCwgbSkg ICBcCisjZGVmaW5lIGJ1dHRlcmZseShlLCBvLCBwLCBtKSAgIFwKICAgICBwID0gd2FzbV9pMzJ4 NF9hZGQoZSwgbyk7ICAgXAogICAgIG0gPSB3YXNtX2kzMng0X3N1YihlLCBvKTsgICBcCiAKQEAg LTMwOSwxMCArMzA5LDEwIEBAIHN0YXRpYyB2b2lkIHRyMTZfOHg0KHYxMjhfdCBpbjAsIHYxMjhf dCBpbjEsIHYxMjhfdCBpbjIsIHYxMjhfdCBpbjMsCiAgICAgdjMwID0gd2FzbV9pMzJ4NF9hZGQo djMwLCB3YXNtX2kzMng0X2V4dG11bF9oaWdoX2kxNng4KGluMywgdHJhbnNbNV0pKTsKICAgICB2 MzEgPSB3YXNtX2kzMng0X3N1Yih2MzEsIHdhc21faTMyeDRfZXh0bXVsX2hpZ2hfaTE2eDgoaW4z LCB0cmFuc1s0XSkpOwogCi0gICAgYnVmZmVyZmx5KHYyNCwgdjI4LCB2MTYsIHYyMyk7Ci0gICAg YnVmZmVyZmx5KHYyNSwgdjI5LCB2MTcsIHYyMik7Ci0gICAgYnVmZmVyZmx5KHYyNiwgdjMwLCB2 MTgsIHYyMSk7Ci0gICAgYnVmZmVyZmx5KHYyNywgdjMxLCB2MTksIHYyMCk7CisgICAgYnV0dGVy Zmx5KHYyNCwgdjI4LCB2MTYsIHYyMyk7CisgICAgYnV0dGVyZmx5KHYyNSwgdjI5LCB2MTcsIHYy Mik7CisgICAgYnV0dGVyZmx5KHYyNiwgdjMwLCB2MTgsIHYyMSk7CisgICAgYnV0dGVyZmx5KHYy NywgdjMxLCB2MTksIHYyMCk7CiAKICAgICBzcCArPSBvZmZzZXQ7CiAgICAgd2FzbV92MTI4X3N0 b3JlKHNwLCB2MTYpOyBzcCArPSAxNjsKLS0gCjIuNTIuMAoKCkZyb20gY2FiMzYyNWY5ODViZTUz ZmY5ZTRkZmE5N2UyMjUxMDUxNzkzZDg2NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog T2xpdmVyIENoYW5nIDxvY2hhbmdAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAzIERlYyAyMDI1IDA0 OjUzOjA5ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxOTcvMzA0XSBhdmNvZGVjL2FhY2RlYzogRml4 IGhlYXAtdXNlLWFmdGVyLWZyZWUgaW4gVVNBQwogZGVjb2RpbmcKCkEgaGVhcC11c2UtYWZ0ZXIt ZnJlZSB2dWxuZXJhYmlsaXR5IHdhcyBpZGVudGlmaWVkIGluCmBsaWJhdmNvZGVjL2FhYy9hYWNk ZWMuY2AuICBXaGVuIGBjaGVfY29uZmlndXJlYCBmcmVlcyBhCmBDaGFubmVsRWxlbWVudGAgKGBh Yy0+Y2hlW3R5cGVdW2lkXWApLCBpdCBmYWlsZWQgdG8gY2xlYXIgYWxsCnJlZmVyZW5jZXMgdG8g aXQgaW4gYGFjLT50YWdfY2hlX21hcGAuICBgYWMtPnRhZ19jaGVfbWFwYCBjYWNoZXMKcG9pbnRl cnMgdG8gYENoYW5uZWxFbGVtZW50YHMgYW5kIGNhbiBjb250YWluIGNyb3NzLXR5cGUgbWFwcGlu Z3MgKGUuZy4sCmEgYFRZUEVfU0NFYCB0YWcgbWFwcGluZyB0byBhIGBUWVBFX0xGRWAgZWxlbWVu dCkuCgpJbiBhIFVTQUMgc3RyZWFtIHJlY29uZmlndXJhdGlvbiBzY2VuYXJpbywgYW4gTEZFIGVs ZW1lbnQgd2FzIGZyZWVkLCBidXQKYSBzdGFsZSBwb2ludGVyIHJlbWFpbmVkIGluIGBhYy0+dGFn X2NoZV9tYXBgLiBTdWJzZXF1ZW50IGNhbGxzIHRvCmBmZl9hYWNfZ2V0X2NoZWAgcmV0dXJuZWQg dGhpcyBkYW5nbGluZyBwb2ludGVyLCBsZWFkaW5nIHRvIGEgY3Jhc2ggaW4KYGRlY29kZV91c2Fj X2NvcmVfY29kZXJgLgoKVGhpcyBjb21taXQgZml4ZXMgdGhlIGlzc3VlIGJ5IGl0ZXJhdGluZyBv dmVyIHRoZSBlbnRpcmUKYGFjLT50YWdfY2hlX21hcGAgaW4gYGNoZV9jb25maWd1cmVgIGFuZCBj bGVhcmluZyBhbnkgZW50cmllcyB0aGF0IHBvaW50CnRvIHRoZSBgQ2hhbm5lbEVsZW1lbnRgIGFi b3V0IHRvIGJlIGZyZWVkLCBlbnN1cmluZyBubyBkYW5nbGluZyBwb2ludGVycwpyZW1haW4uCgpG aXhlczogaHR0cHM6Ly9pc3N1ZXMub3NzLWZ1enouY29tL2lzc3Vlcy80NDAyMjA0NjcKLS0tCiBs aWJhdmNvZGVjL2FhYy9hYWNkZWMuYyB8IDYgKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hYWMvYWFjZGVjLmMgYi9saWJhdmNv ZGVjL2FhYy9hYWNkZWMuYwppbmRleCA5YjQyMDE0ZWU4Li5iOGQ1MzAzNmQ0IDEwMDY0NAotLS0g YS9saWJhdmNvZGVjL2FhYy9hYWNkZWMuYworKysgYi9saWJhdmNvZGVjL2FhYy9hYWNkZWMuYwpA QCAtMTY0LDYgKzE2NCwxMiBAQCBzdGF0aWMgYXZfY29sZCBpbnQgY2hlX2NvbmZpZ3VyZShBQUNE ZWNDb250ZXh0ICphYywKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChhYy0+ Y2hlW3R5cGVdW2lkXSkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBGRl9BUlJB WV9FTEVNUyhhYy0+dGFnX2NoZV9tYXApOyBpKyspIHsKKyAgICAgICAgICAgICAgICBmb3IgKGlu dCBqID0gMDsgaiA8IE1BWF9FTEVNX0lEOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg KGFjLT50YWdfY2hlX21hcFtpXVtqXSA9PSBhYy0+Y2hlW3R5cGVdW2lkXSkKKyAgICAgICAgICAg ICAgICAgICAgICAgIGFjLT50YWdfY2hlX21hcFtpXVtqXSA9IE5VTEw7CisgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgfQogICAgICAgICAgICAgYWMtPnByb2Muc2JyX2N0eF9jbG9zZShh Yy0+Y2hlW3R5cGVdW2lkXSk7CiAgICAgICAgIH0KICAgICAgICAgYXZfZnJlZXAoJmFjLT5jaGVb dHlwZV1baWRdKTsKLS0gCjIuNTIuMAoKCkZyb20gMzVkNDM1OTY5OTA0YWYyYjhhZTlkNWFhMjc4 YWU5YzAyOGQ3MDk1NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTHlubmUgPGRldkBs eW5uZS5lZT4KRGF0ZTogVGh1LCA0IERlYyAyMDI1IDE1OjAyOjQwICswMTAwClN1YmplY3Q6IFtQ QVRDSCAxOTgvMzA0XSB2dWxrYW5fZHB4OiBmaXggYWxpZ25tZW50IGlzc3VlCgoxMi1iaXQgaW1h Z2VzIGFwcGFyZW50bHkgcmVxdWlyZSBtb2QtMzIgYWxpZ25tZW50IGZvciBlYWNoIGxpbmUuCkdv IGZpZ3VyZS4KLS0tCiBsaWJhdmNvZGVjL3Z1bGthbi9kcHhfdW5wYWNrLmNvbXAgfCA3ICsrKysr LS0KIGxpYmF2Y29kZWMvdnVsa2FuX2RweC5jICAgICAgICAgICB8IDIgLS0KIDIgZmlsZXMgY2hh bmdlZCwgNSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2 Y29kZWMvdnVsa2FuL2RweF91bnBhY2suY29tcCBiL2xpYmF2Y29kZWMvdnVsa2FuL2RweF91bnBh Y2suY29tcAppbmRleCA1YTQ0ZGU4N2JmLi5iMDRjZTVkZGM2IDEwMDY0NAotLS0gYS9saWJhdmNv ZGVjL3Z1bGthbi9kcHhfdW5wYWNrLmNvbXAKKysrIGIvbGliYXZjb2RlYy92dWxrYW4vZHB4X3Vu cGFjay5jb21wCkBAIC00NCw4ICs0NCwxMSBAQCBpMTZ2ZWM0IHBhcnNlX3BhY2tlZF9pbl8zMihp dmVjMiBwb3MsIGludCBzdHJpZGUpCiAjZWxzZQogaTE2dmVjNCBwYXJzZV9wYWNrZWRfaW5fMzIo aXZlYzIgcG9zLCBpbnQgc3RyaWRlKQogewotICAgIHVpbnQgbGluZV9vZmYgPSBwb3MueSooc3Ry aWRlKkJJVFNfUEVSX0NPTVAqQ09NUE9ORU5UUyArCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAobmVlZF9hbGlnbiA8PCAzKSk7CisgICAgdWludCBsaW5lX3NpemUgPSBzdHJpZGUqQklUU19Q RVJfQ09NUCpDT01QT05FTlRTOworICAgIGxpbmVfc2l6ZSArPSBsaW5lX3NpemUgJiAzMTsKKyAg ICBsaW5lX3NpemUgKz0gbmVlZF9hbGlnbiA8PCAzOworCisgICAgdWludCBsaW5lX29mZiA9IHBv cy55KmxpbmVfc2l6ZTsKICAgICB1aW50IHBpeF9vZmYgPSBwb3MueCpCSVRTX1BFUl9DT01QKkNP TVBPTkVOVFM7CiAKICAgICB1aW50IG9mZiA9IChsaW5lX29mZiArIHBpeF9vZmYgPj4gNSk7CmRp ZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z1bGthbl9kcHguYyBiL2xpYmF2Y29kZWMvdnVsa2FuX2Rw eC5jCmluZGV4IDU0Nzc0ZjI0MjQuLjE2YWMxMGM1YjggMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMv dnVsa2FuX2RweC5jCisrKyBiL2xpYmF2Y29kZWMvdnVsa2FuX2RweC5jCkBAIC00MDIsOSArNDAy LDcgQEAgc3RhdGljIGludCB2a19kZWNvZGVfZHB4X2luaXQoQVZDb2RlY0NvbnRleHQgKmF2Y3R4 KQogCiAgICAgc3dpdGNoIChkcHgtPnBpeF9mbXQpIHsKICAgICBjYXNlIEFWX1BJWF9GTVRfR1JB WTEwOgotICAgIGNhc2UgQVZfUElYX0ZNVF9HUkFZMTI6CiAgICAgY2FzZSBBVl9QSVhfRk1UX0dC UkFQMTA6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0dCUkFQMTI6CiAgICAgY2FzZSBBVl9QSVhfRk1U X1VZVlk0MjI6CiAgICAgY2FzZSBBVl9QSVhfRk1UX1lVVjQ0NFA6CiAgICAgY2FzZSBBVl9QSVhf Rk1UX1lVVkE0NDRQOgotLSAKMi41Mi4wCgoKRnJvbSBhMjAwZjY3ZGRlMWJjYjJhMWFmMDg2OThk OWZiMWIzOTQ0NzQyYmZiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJo ZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogU3VuLCAyMyBO b3YgMjAyNSAxMTowODoxNCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTk5LzMwNF0gYXZjb2RlYy94 ODYvdnA4ZHNwOiBSZW1vdmUgTU1YRVhUIGZ1bmN0aW9ucwogb3ZlcnJpZGRlbiBieSBTU1NFMwoK U1NTRTMgaXMgYWxyZWFkeSBxdWl0ZSBvbGQgKGludHJvZHVjZWQgMjAwNiBmb3IgSW50ZWwsIDIw MTEgZm9yIEFNRCksCnNvIHRoYXQgdGhlIG92ZXJ3aGVsbWluZyBtYWpvcml0eSBvZiBvdXIgdXNl cnMgKHBhcnRpY3VsYXJseSB0aG9zZQp0aGF0IGFjdHVhbGx5IHVwZGF0ZSB0aGVpciBGRm1wZWcp IHdpbGwgYmUgdXNpbmcgdGhlIFNTU0UzIHZlcnNpb25zLgpUaGlzIGNvbW1pdCB0aGVyZWZvcmUg cmVtb3ZlcyB0aGUgTU1YKEVYVCkgZnVuY3Rpb25zIG92ZXJyaWRkZW4KYnkgdGhlbSAod2hpY2gg ZG9uJ3QgYWJpZGUgYnkgdGhlIEFCSSkgdG8gZ2V0IGNsb3NlciB0byBhIHJlbW92YWwKb2YgZW1t c19jLgoKUmV2aWV3ZWQtYnk6IFJvbmFsZCBTLiBCdWx0amUgPHJzYnVsdGplQGdtYWlsLmNvbT4K U2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0 bG9vay5jb20+Ci0tLQogbGliYXZjb2RlYy94ODYvdnA4ZHNwLmFzbSAgICB8IDE1OSArLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogbGliYXZjb2RlYy94ODYvdnA4ZHNwX2luaXQu YyB8ICAzNyArLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDE5MCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni92cDhkc3AuYXNtIGIvbGli YXZjb2RlYy94ODYvdnA4ZHNwLmFzbQppbmRleCAyMzFjMjFlYTBkLi43YjgzNjM1MWU0IDEwMDY0 NAotLS0gYS9saWJhdmNvZGVjL3g4Ni92cDhkc3AuYXNtCisrKyBiL2xpYmF2Y29kZWMveDg2L3Zw OGRzcC5hc20KQEAgLTEsNSArMSw1IEBACiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi07KiBWUDgg TU1YRVhUIG9wdGltaXphdGlvbnMKKzsqIFZQOCBBU00gb3B0aW1pemF0aW9ucwogOyogQ29weXJp Z2h0IChjKSAyMDEwIFJvbmFsZCBTLiBCdWx0amUgPHJzYnVsdGplQGdtYWlsLmNvbT4KIDsqIENv cHlyaWdodCAoYykgMjAxMCBGaW9uYSBHbGFzZXIgPGZpb25hQHgyNjQuY29tPgogOyoKQEAgLTI0 LDI1ICsyNCw2IEBACiAKIFNFQ1RJT05fUk9EQVRBCiAKLWZvdXJ0YXBfZmlsdGVyX2h3X206IHRp bWVzIDQgZHcgIC02LCAxMjMKLSAgICAgICAgICAgICAgICAgICAgIHRpbWVzIDQgZHcgIDEyLCAg LTEKLSAgICAgICAgICAgICAgICAgICAgIHRpbWVzIDQgZHcgIC05LCAgOTMKLSAgICAgICAgICAg ICAgICAgICAgIHRpbWVzIDQgZHcgIDUwLCAgLTYKLSAgICAgICAgICAgICAgICAgICAgIHRpbWVz IDQgZHcgIC02LCAgNTAKLSAgICAgICAgICAgICAgICAgICAgIHRpbWVzIDQgZHcgIDkzLCAgLTkK LSAgICAgICAgICAgICAgICAgICAgIHRpbWVzIDQgZHcgIC0xLCAgMTIKLSAgICAgICAgICAgICAg ICAgICAgIHRpbWVzIDQgZHcgMTIzLCAgLTYKLQotc2l4dGFwX2ZpbHRlcl9od19tOiAgdGltZXMg NCBkdyAgIDIsIC0xMQotICAgICAgICAgICAgICAgICAgICAgdGltZXMgNCBkdyAxMDgsICAzNgot ICAgICAgICAgICAgICAgICAgICAgdGltZXMgNCBkdyAgLTgsICAgMQotICAgICAgICAgICAgICAg ICAgICAgdGltZXMgNCBkdyAgIDMsIC0xNgotICAgICAgICAgICAgICAgICAgICAgdGltZXMgNCBk dyAgNzcsICA3NwotICAgICAgICAgICAgICAgICAgICAgdGltZXMgNCBkdyAtMTYsICAgMwotICAg ICAgICAgICAgICAgICAgICAgdGltZXMgNCBkdyAgIDEsICAtOAotICAgICAgICAgICAgICAgICAg ICAgdGltZXMgNCBkdyAgMzYsIDEwOAotICAgICAgICAgICAgICAgICAgICAgdGltZXMgNCBkdyAt MTEsICAgMgotCiBmb3VydGFwX2ZpbHRlcl9oYl9tOiB0aW1lcyA4IGRiICAtNiwgMTIzCiAgICAg ICAgICAgICAgICAgICAgICB0aW1lcyA4IGRiICAxMiwgIC0xCiAgICAgICAgICAgICAgICAgICAg ICB0aW1lcyA4IGRiICAtOSwgIDkzCkBAIC0xMTUsOCArOTYsNiBAQCBiaWxpbmVhcl9maWx0ZXJf dmJfbTogdGltZXMgOCBkYiA3LCAxCiAgICAgICAgICAgICAgICAgICAgICAgdGltZXMgOCBkYiAx LCA3CiAKICVpZiBQSUMKLSVkZWZpbmUgZm91cnRhcF9maWx0ZXJfaHcgIHBpY3JlZ3EKLSVkZWZp bmUgc2l4dGFwX2ZpbHRlcl9odyAgIHBpY3JlZ3EKICVkZWZpbmUgZm91cnRhcF9maWx0ZXJfaGIg IHBpY3JlZ3EKICVkZWZpbmUgc2l4dGFwX2ZpbHRlcl9oYiAgIHBpY3JlZ3EKICVkZWZpbmUgZm91 cnRhcF9maWx0ZXJfdiAgIHBpY3JlZ3EKQEAgLTEyNSw4ICsxMDQsNiBAQCBiaWxpbmVhcl9maWx0 ZXJfdmJfbTogdGltZXMgOCBkYiA3LCAxCiAlZGVmaW5lIGJpbGluZWFyX2ZpbHRlcl92YiBwaWNy ZWdxCiAlZGVmaW5lIG5waWNyZWdzIDEKICVlbHNlCi0lZGVmaW5lIGZvdXJ0YXBfZmlsdGVyX2h3 ICBmb3VydGFwX2ZpbHRlcl9od19tCi0lZGVmaW5lIHNpeHRhcF9maWx0ZXJfaHcgICBzaXh0YXBf ZmlsdGVyX2h3X20KICVkZWZpbmUgZm91cnRhcF9maWx0ZXJfaGIgIGZvdXJ0YXBfZmlsdGVyX2hi X20KICVkZWZpbmUgc2l4dGFwX2ZpbHRlcl9oYiAgIHNpeHRhcF9maWx0ZXJfaGJfbQogJWRlZmlu ZSBmb3VydGFwX2ZpbHRlcl92ICAgZm91cnRhcF9maWx0ZXJfdl9tCkBAIC0zMjIsMTEyICsyOTks NiBAQCBGSUxURVJfU1NTRTMgNAogSU5JVF9YTU0gc3NzZTMKIEZJTFRFUl9TU1NFMyA4CiAKLTsg NHg0IGJsb2NrLCBILW9ubHkgNC10YXAgZmlsdGVyCi1JTklUX01NWCBtbXhleHQKLWNnbG9iYWwg cHV0X3ZwOF9lcGVsNF9oNCwgNiwgNiArIG5waWNyZWdzLCAwLCBkc3QsIGRzdHN0cmlkZSwgc3Jj LCBzcmNzdHJpZGUsIGhlaWdodCwgbXgsIHBpY3JlZwotICAgIHNobCAgICAgICBteGQsIDQKLSVp ZiBQSUMKLSAgICBsZWEgICBwaWNyZWdxLCBbZm91cnRhcF9maWx0ZXJfaHdfbV0KLSVlbmRpZgot ICAgIG1vdnEgICAgICBtbTQsIFtmb3VydGFwX2ZpbHRlcl9odytteHEtMTZdIDsgc2V0IHVwIDR0 YXAgZmlsdGVyIGluIHdvcmRzCi0gICAgbW92cSAgICAgIG1tNSwgW2ZvdXJ0YXBfZmlsdGVyX2h3 K214cV0KLSAgICBtb3ZxICAgICAgbW03LCBbcHdfNjRdCi0gICAgcHhvciAgICAgIG1tNiwgbW02 Ci0KLS5uZXh0cm93OgotICAgIG1vdnEgICAgICBtbTEsIFtzcmNxLTFdICAgICAgICAgICAgICAg IDsgKEFCQ0RFRkdIKSBsb2FkIDggaG9yaXpvbnRhbCBwaXhlbHMKLQotICAgIDsgZmlyc3Qgc2V0 IG9mIDIgcGl4ZWxzCi0gICAgbW92cSAgICAgIG1tMiwgbW0xICAgICAgICAgICAgICAgICAgICAg OyBieXRlIEFCQ0QuLgotICAgIHB1bnBja2xidyBtbTEsIG1tNiAgICAgICAgICAgICAgICAgICAg IDsgYnl0ZS0+d29yZCBBQkNECi0gICAgcHNodWZ3ICAgIG1tMCwgbW0yLCA5ICAgICAgICAgICAg ICAgICAgOyBieXRlIENERUYuLgotICAgIHB1bnBja2xidyBtbTAsIG1tNiAgICAgICAgICAgICAg ICAgICAgIDsgYnl0ZS0+d29yZCBDREVGCi0gICAgcHNodWZ3ICAgIG1tMywgbW0xLCAweDk0ICAg ICAgICAgICAgICAgOyB3b3JkIEFCQkMKLSAgICBwc2h1ZncgICAgbW0xLCBtbTAsIDB4OTQgICAg ICAgICAgICAgICA7IHdvcmQgQ0RERQotICAgIHBtYWRkd2QgICBtbTMsIG1tNCAgICAgICAgICAg ICAgICAgICAgIDsgbXVsdGlwbHkgMnB4IHdpdGggRjAvRjEKLSAgICBtb3ZxICAgICAgbW0wLCBt bTEgICAgICAgICAgICAgICAgICAgICA7IGJhY2t1cCBmb3Igc2Vjb25kIHNldCBvZiBwaXhlbHMK LSAgICBwbWFkZHdkICAgbW0xLCBtbTUgICAgICAgICAgICAgICAgICAgICA7IG11bHRpcGx5IDJw eCB3aXRoIEYyL0YzCi0gICAgcGFkZGQgICAgIG1tMywgbW0xICAgICAgICAgICAgICAgICAgICAg OyBmaW5pc2ggMXN0IDJweAotCi0gICAgOyBzZWNvbmQgc2V0IG9mIDIgcGl4ZWxzLCB1c2UgYmFj a3VwIG9mIGFib3ZlCi0gICAgcHVucGNraGJ3IG1tMiwgbW02ICAgICAgICAgICAgICAgICAgICAg OyBieXRlLT53b3JkIEVGR0gKLSAgICBwbWFkZHdkICAgbW0wLCBtbTQgICAgICAgICAgICAgICAg ICAgICA7IG11bHRpcGx5IGJhY2tlZCB1cCAycHggd2l0aCBGMC9GMQotICAgIHBzaHVmdyAgICBt bTEsIG1tMiwgMHg5NCAgICAgICAgICAgICAgIDsgd29yZCBFRkZHCi0gICAgcG1hZGR3ZCAgIG1t MSwgbW01ICAgICAgICAgICAgICAgICAgICAgOyBtdWx0aXBseSAycHggd2l0aCBGMi9GMwotICAg IHBhZGRkICAgICBtbTAsIG1tMSAgICAgICAgICAgICAgICAgICAgIDsgZmluaXNoIDJuZCAycHgK LQotICAgIDsgbWVyZ2UgdHdvIHNldHMgb2YgMiBwaXhlbHMgaW50byBvbmUgc2V0IG9mIDQsIHJv dW5kL2NsaXAvc3RvcmUKLSAgICBwYWNrc3NkdyAgbW0zLCBtbTAgICAgICAgICAgICAgICAgICAg ICA7IG1lcmdlIGR3b3JkLT53b3JkICg0cHgpCi0gICAgcGFkZHN3ICAgIG1tMywgbW03ICAgICAg ICAgICAgICAgICAgICAgOyByb3VuZGluZwotICAgIHBzcmF3ICAgICBtbTMsIDcKLSAgICBwYWNr dXN3YiAgbW0zLCBtbTYgICAgICAgICAgICAgICAgICAgICA7IGNsaXAgYW5kIHdvcmQtPmJ5dGVz Ci0gICAgbW92ZCAgIFtkc3RxXSwgbW0zICAgICAgICAgICAgICAgICAgICAgOyBzdG9yZQotCi0g ICAgOyBnbyB0byBuZXh0IGxpbmUKLSAgICBhZGQgICAgICBkc3RxLCBkc3RzdHJpZGVxCi0gICAg YWRkICAgICAgc3JjcSwgc3Jjc3RyaWRlcQotICAgIGRlYyAgIGhlaWdodGQgICAgICAgICAgICAg ICAgICAgICAgICAgIDsgbmV4dCByb3cKLSAgICBqZyAubmV4dHJvdwotICAgIFJFVAotCi07IDR4 NCBibG9jaywgSC1vbmx5IDYtdGFwIGZpbHRlcgotSU5JVF9NTVggbW14ZXh0Ci1jZ2xvYmFsIHB1 dF92cDhfZXBlbDRfaDYsIDYsIDYgKyBucGljcmVncywgMCwgZHN0LCBkc3RzdHJpZGUsIHNyYywg c3Jjc3RyaWRlLCBoZWlnaHQsIG14LCBwaWNyZWcKLSAgICBsZWEgICAgICAgbXhkLCBbbXhxKjNd Ci0laWYgUElDCi0gICAgbGVhICAgcGljcmVncSwgW3NpeHRhcF9maWx0ZXJfaHdfbV0KLSVlbmRp ZgotICAgIG1vdnEgICAgICBtbTQsIFtzaXh0YXBfZmlsdGVyX2h3K214cSo4LTQ4XSA7IHNldCB1 cCA0dGFwIGZpbHRlciBpbiB3b3JkcwotICAgIG1vdnEgICAgICBtbTUsIFtzaXh0YXBfZmlsdGVy X2h3K214cSo4LTMyXQotICAgIG1vdnEgICAgICBtbTYsIFtzaXh0YXBfZmlsdGVyX2h3K214cSo4 LTE2XQotICAgIG1vdnEgICAgICBtbTcsIFtwd182NF0KLSAgICBweG9yICAgICAgbW0zLCBtbTMK LQotLm5leHRyb3c6Ci0gICAgbW92cSAgICAgIG1tMSwgW3NyY3EtMl0gICAgICAgICAgICAgICAg OyAoQUJDREVGR0gpIGxvYWQgOCBob3Jpem9udGFsIHBpeGVscwotCi0gICAgOyBmaXJzdCBzZXQg b2YgMiBwaXhlbHMKLSAgICBtb3ZxICAgICAgbW0yLCBtbTEgICAgICAgICAgICAgICAgICAgICA7 IGJ5dGUgQUJDRC4uCi0gICAgcHVucGNrbGJ3IG1tMSwgbW0zICAgICAgICAgICAgICAgICAgICAg OyBieXRlLT53b3JkIEFCQ0QKLSAgICBwc2h1ZncgICAgbW0wLCBtbTIsIDB4OSAgICAgICAgICAg ICAgICA7IGJ5dGUgQ0RFRi4uCi0gICAgcHVucGNraGJ3IG1tMiwgbW0zICAgICAgICAgICAgICAg ICAgICAgOyBieXRlLT53b3JkIEVGR0gKLSAgICBwdW5wY2tsYncgbW0wLCBtbTMgICAgICAgICAg ICAgICAgICAgICA7IGJ5dGUtPndvcmQgQ0RFRgotICAgIHBzaHVmdyAgICBtbTEsIG1tMSwgMHg5 NCAgICAgICAgICAgICAgIDsgd29yZCBBQkJDCi0gICAgcHNodWZ3ICAgIG1tMiwgbW0yLCAweDk0 ICAgICAgICAgICAgICAgOyB3b3JkIEVGRkcKLSAgICBwbWFkZHdkICAgbW0xLCBtbTQgICAgICAg ICAgICAgICAgICAgICA7IG11bHRpcGx5IDJweCB3aXRoIEYwL0YxCi0gICAgcHNodWZ3ICAgIG1t MywgbW0wLCAweDk0ICAgICAgICAgICAgICAgOyB3b3JkIENEREUKLSAgICBtb3ZxICAgICAgbW0w LCBtbTMgICAgICAgICAgICAgICAgICAgICA7IGJhY2t1cCBmb3Igc2Vjb25kIHNldCBvZiBwaXhl bHMKLSAgICBwbWFkZHdkICAgbW0zLCBtbTUgICAgICAgICAgICAgICAgICAgICA7IG11bHRpcGx5 IDJweCB3aXRoIEYyL0YzCi0gICAgcGFkZGQgICAgIG1tMSwgbW0zICAgICAgICAgICAgICAgICAg ICAgOyBhZGQgdG8gMXN0IDJweCBjYWNoZQotICAgIG1vdnEgICAgICBtbTMsIG1tMiAgICAgICAg ICAgICAgICAgICAgIDsgYmFja3VwIGZvciBzZWNvbmQgc2V0IG9mIHBpeGVscwotICAgIHBtYWRk d2QgICBtbTIsIG1tNiAgICAgICAgICAgICAgICAgICAgIDsgbXVsdGlwbHkgMnB4IHdpdGggRjQv RjUKLSAgICBwYWRkZCAgICAgbW0xLCBtbTIgICAgICAgICAgICAgICAgICAgICA7IGZpbmlzaCAx c3QgMnB4Ci0KLSAgICA7IHNlY29uZCBzZXQgb2YgMiBwaXhlbHMsIHVzZSBiYWNrdXAgb2YgYWJv dmUKLSAgICBtb3ZkICAgICAgbW0yLCBbc3JjcSszXSAgICAgICAgICAgICAgICA7IGJ5dGUgRkdI SSAocHJldmVudCBvdmVycmVhZHMpCi0gICAgcG1hZGR3ZCAgIG1tMCwgbW00ICAgICAgICAgICAg ICAgICAgICAgOyBtdWx0aXBseSAxc3QgYmFja2VkIHVwIDJweCB3aXRoIEYwL0YxCi0gICAgcG1h ZGR3ZCAgIG1tMywgbW01ICAgICAgICAgICAgICAgICAgICAgOyBtdWx0aXBseSAybmQgYmFja2Vk IHVwIDJweCB3aXRoIEYyL0YzCi0gICAgcGFkZGQgICAgIG1tMCwgbW0zICAgICAgICAgICAgICAg ICAgICAgOyBhZGQgdG8gMm5kIDJweCBjYWNoZQotICAgIHB4b3IgICAgICBtbTMsIG1tMwotICAg IHB1bnBja2xidyBtbTIsIG1tMyAgICAgICAgICAgICAgICAgICAgIDsgYnl0ZS0+d29yZCBGR0hJ Ci0gICAgcHNodWZ3ICAgIG1tMiwgbW0yLCAweEU5ICAgICAgICAgICAgICAgOyB3b3JkIEdISEkK LSAgICBwbWFkZHdkICAgbW0yLCBtbTYgICAgICAgICAgICAgICAgICAgICA7IG11bHRpcGx5IDJw eCB3aXRoIEY0L0Y1Ci0gICAgcGFkZGQgICAgIG1tMCwgbW0yICAgICAgICAgICAgICAgICAgICAg OyBmaW5pc2ggMm5kIDJweAotCi0gICAgOyBtZXJnZSB0d28gc2V0cyBvZiAyIHBpeGVscyBpbnRv IG9uZSBzZXQgb2YgNCwgcm91bmQvY2xpcC9zdG9yZQotICAgIHBhY2tzc2R3ICBtbTEsIG1tMCAg ICAgICAgICAgICAgICAgICAgIDsgbWVyZ2UgZHdvcmQtPndvcmQgKDRweCkKLSAgICBwYWRkc3cg ICAgbW0xLCBtbTcgICAgICAgICAgICAgICAgICAgICA7IHJvdW5kaW5nCi0gICAgcHNyYXcgICAg IG1tMSwgNwotICAgIHBhY2t1c3diICBtbTEsIG1tMyAgICAgICAgICAgICAgICAgICAgIDsgY2xp cCBhbmQgd29yZC0+Ynl0ZXMKLSAgICBtb3ZkICAgW2RzdHFdLCBtbTEgICAgICAgICAgICAgICAg ICAgICA7IHN0b3JlCi0KLSAgICA7IGdvIHRvIG5leHQgbGluZQotICAgIGFkZCAgICAgIGRzdHEs IGRzdHN0cmlkZXEKLSAgICBhZGQgICAgICBzcmNxLCBzcmNzdHJpZGVxCi0gICAgZGVjICAgaGVp Z2h0ZCAgICAgICAgICAgICAgICAgICAgICAgICAgOyBuZXh0IHJvdwotICAgIGpnIC5uZXh0cm93 Ci0gICAgUkVUCi0KIElOSVRfWE1NIHNzZTIKIGNnbG9iYWwgcHV0X3ZwOF9lcGVsOF9oNCwgNiwg NiArIG5waWNyZWdzLCAxMCwgZHN0LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3RyaWRlLCBoZWlnaHQs IG14LCBwaWNyZWcKICAgICBzaGwgICAgICBteGQsIDUKQEAgLTUzOSw5ICs0MTAsOSBAQCBjZ2xv YmFsIHB1dF92cDhfZXBlbDhfaDYsIDYsIDYgKyBucGljcmVncywgMTQsIGRzdCwgZHN0c3RyaWRl LCBzcmMsIHNyY3N0cmlkZSwgaAogICAgIGpnIC5uZXh0cm93CiAgICAgUkVUCiAKLSVtYWNybyBG SUxURVJfViAxCitJTklUX1hNTSBzc2UyCiA7IDR4NCBibG9jaywgVi1vbmx5IDQtdGFwIGZpbHRl cgotY2dsb2JhbCBwdXRfdnA4X2VwZWwlMV92NCwgNywgNywgOCwgZHN0LCBkc3RzdHJpZGUsIHNy Yywgc3Jjc3RyaWRlLCBoZWlnaHQsIHBpY3JlZywgbXkKK2NnbG9iYWwgcHV0X3ZwOF9lcGVsOF92 NCwgNywgNywgOCwgZHN0LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3RyaWRlLCBoZWlnaHQsIHBpY3Jl ZywgbXkKICAgICBzaGwgICAgICBteWQsIDUKICVpZiBQSUMKICAgICBsZWEgIHBpY3JlZ3EsIFtm b3VydGFwX2ZpbHRlcl92X21dCkBAIC01OTQsNyArNDY1LDcgQEAgY2dsb2JhbCBwdXRfdnA4X2Vw ZWwlMV92NCwgNywgNywgOCwgZHN0LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3RyaWRlLCBoZWlnaHQs IHBpY3IKIAogCiA7IDR4NCBibG9jaywgVi1vbmx5IDYtdGFwIGZpbHRlcgotY2dsb2JhbCBwdXRf dnA4X2VwZWwlMV92NiwgNywgNywgOCwgZHN0LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3RyaWRlLCBo ZWlnaHQsIHBpY3JlZywgbXkKK2NnbG9iYWwgcHV0X3ZwOF9lcGVsOF92NiwgNywgNywgOCwgZHN0 LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3RyaWRlLCBoZWlnaHQsIHBpY3JlZywgbXkKICAgICBzaGwg ICAgICBteWQsIDQKICAgICBsZWEgICAgICBteXEsIFtteXEqM10KICVpZiBQSUMKQEAgLTY1Niwx MiArNTI3LDYgQEAgY2dsb2JhbCBwdXRfdnA4X2VwZWwlMV92NiwgNywgNywgOCwgZHN0LCBkc3Rz dHJpZGUsIHNyYywgc3Jjc3RyaWRlLCBoZWlnaHQsIHBpY3IKICAgICBkZWMgIGhlaWdodGQgICAg ICAgICAgICAgICAgICAgICAgICAgICA7IG5leHQgcm93CiAgICAgamcgLm5leHRyb3cKICAgICBS RVQKLSVlbmRtYWNybwotCi1JTklUX01NWCBtbXhleHQKLUZJTFRFUl9WIDQKLUlOSVRfWE1NIHNz ZTIKLUZJTFRFUl9WIDgKIAogJW1hY3JvIEZJTFRFUl9CSUxJTkVBUiAxCiAlaWYgY3B1ZmxhZyhz c3NlMykKQEAgLTcyMiwxNiArNTg3LDkgQEAgY2dsb2JhbCBwdXRfdnA4X2JpbGluZWFyJTFfdiwg NywgNywgNywgZHN0LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3RyaWRlLCBoZWlnaHQsIHAKICAgICBw c3JhdyAgICAgbTIsIDIKICAgICBwYXZndyAgICAgbTAsIG02CiAgICAgcGF2Z3cgICAgIG0yLCBt NgotJWlmIG1tc2l6ZSA9PSA4Ci0gICAgcGFja3Vzd2IgIG0wLCBtMAotICAgIHBhY2t1c3diICBt MiwgbTIKLSAgICBtb3ZoICAgW2RzdHErZHN0c3RyaWRlcSowXSwgbTAKLSAgICBtb3ZoICAgW2Rz dHErZHN0c3RyaWRlcSoxXSwgbTIKLSVlbHNlCiAgICAgcGFja3Vzd2IgIG0wLCBtMgogICAgIG1v dmggICBbZHN0cStkc3RzdHJpZGVxKjBdLCBtMAogICAgIG1vdmhwcyBbZHN0cStkc3RzdHJpZGVx KjFdLCBtMAotJWVuZGlmCiAlZW5kaWYgOyBjcHVmbGFnKHNzc2UzKQogCiAgICAgbGVhICAgICBk c3RxLCBbZHN0cStkc3RzdHJpZGVxKjJdCkBAIC03OTksMTYgKzY1Nyw5IEBAIGNnbG9iYWwgcHV0 X3ZwOF9iaWxpbmVhciUxX2gsIDYsIDYgKyBucGljcmVncywgNywgZHN0LCBkc3RzdHJpZGUsIHNy Yywgc3Jjc3RyaWRlCiAgICAgcHNyYXcgICAgIG0yLCAyCiAgICAgcGF2Z3cgICAgIG0wLCBtNgog ICAgIHBhdmd3ICAgICBtMiwgbTYKLSVpZiBtbXNpemUgPT0gOAotICAgIHBhY2t1c3diICBtMCwg bTAKLSAgICBwYWNrdXN3YiAgbTIsIG0yCi0gICAgbW92aCAgIFtkc3RxK2RzdHN0cmlkZXEqMF0s IG0wCi0gICAgbW92aCAgIFtkc3RxK2RzdHN0cmlkZXEqMV0sIG0yCi0lZWxzZQogICAgIHBhY2t1 c3diICBtMCwgbTIKICAgICBtb3ZoICAgW2RzdHErZHN0c3RyaWRlcSowXSwgbTAKICAgICBtb3Zo cHMgW2RzdHErZHN0c3RyaWRlcSoxXSwgbTAKLSVlbmRpZgogJWVuZGlmIDsgY3B1ZmxhZyhzc3Nl MykKIAogICAgIGxlYSAgICAgZHN0cSwgW2RzdHErZHN0c3RyaWRlcSoyXQpAQCAtODE4LDggKzY2 OSw2IEBAIGNnbG9iYWwgcHV0X3ZwOF9iaWxpbmVhciUxX2gsIDYsIDYgKyBucGljcmVncywgNywg ZHN0LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3RyaWRlCiAgICAgUkVUCiAlZW5kbWFjcm8KIAotSU5J VF9NTVggbW14ZXh0Ci1GSUxURVJfQklMSU5FQVIgNAogSU5JVF9YTU0gc3NlMgogRklMVEVSX0JJ TElORUFSIDgKIElOSVRfTU1YIHNzc2UzCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni92cDhk c3BfaW5pdC5jIGIvbGliYXZjb2RlYy94ODYvdnA4ZHNwX2luaXQuYwppbmRleCBlMzdhZmFiNzc1 Li4wMDczM2EyNTY0IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4Ni92cDhkc3BfaW5pdC5jCisr KyBiL2xpYmF2Y29kZWMveDg2L3ZwOGRzcF9pbml0LmMKQEAgLTI5LDE5ICsyOSw2IEBACiAvKgog ICogTUMgZnVuY3Rpb25zCiAgKi8KLXZvaWQgZmZfcHV0X3ZwOF9lcGVsNF9oNF9tbXhleHQodWlu dDhfdCAqZHN0LCBwdHJkaWZmX3QgZHN0c3RyaWRlLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCB1aW50OF90ICpzcmMsIHB0cmRpZmZfdCBzcmNzdHJpZGUsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBoZWlnaHQsIGludCBteCwgaW50IG15KTsKLXZv aWQgZmZfcHV0X3ZwOF9lcGVsNF9oNl9tbXhleHQodWludDhfdCAqZHN0LCBwdHJkaWZmX3QgZHN0 c3RyaWRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpz cmMsIHB0cmRpZmZfdCBzcmNzdHJpZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludCBoZWlnaHQsIGludCBteCwgaW50IG15KTsKLXZvaWQgZmZfcHV0X3ZwOF9lcGVsNF92NF9t bXhleHQodWludDhfdCAqZHN0LCBwdHJkaWZmX3QgZHN0c3RyaWRlLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpzcmMsIHB0cmRpZmZfdCBzcmNzdHJpZGUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBoZWlnaHQsIGludCBteCwgaW50 IG15KTsKLXZvaWQgZmZfcHV0X3ZwOF9lcGVsNF92Nl9tbXhleHQodWludDhfdCAqZHN0LCBwdHJk aWZmX3QgZHN0c3RyaWRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1 aW50OF90ICpzcmMsIHB0cmRpZmZfdCBzcmNzdHJpZGUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCBoZWlnaHQsIGludCBteCwgaW50IG15KTsKLQogdm9pZCBmZl9wdXRfdnA4 X2VwZWw4X2g0X3NzZTIgICh1aW50OF90ICpkc3QsIHB0cmRpZmZfdCBkc3RzdHJpZGUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNyYywgcHRyZGlmZl90 IHNyY3N0cmlkZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGhlaWdodCwg aW50IG14LCBpbnQgbXkpOwpAQCAtODAsOSArNjcsNiBAQCB2b2lkIGZmX3B1dF92cDhfZXBlbDhf djZfc3NzZTMgKHVpbnQ4X3QgKmRzdCwgcHRyZGlmZl90IGRzdHN0cmlkZSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqc3JjLCBwdHJkaWZmX3Qgc3Jjc3Ry aWRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaGVpZ2h0LCBpbnQgbXgs IGludCBteSk7CiAKLXZvaWQgZmZfcHV0X3ZwOF9iaWxpbmVhcjRfaF9tbXhleHQodWludDhfdCAq ZHN0LCBwdHJkaWZmX3QgZHN0c3RyaWRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCB1aW50OF90ICpzcmMsIHB0cmRpZmZfdCBzcmNzdHJpZGUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBoZWlnaHQsIGludCBteCwgaW50IG15KTsKIHZv aWQgZmZfcHV0X3ZwOF9iaWxpbmVhcjhfaF9zc2UyICAodWludDhfdCAqZHN0LCBwdHJkaWZmX3Qg ZHN0c3RyaWRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50 OF90ICpzcmMsIHB0cmRpZmZfdCBzcmNzdHJpZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCBoZWlnaHQsIGludCBteCwgaW50IG15KTsKQEAgLTkzLDkgKzc3LDYgQEAg dm9pZCBmZl9wdXRfdnA4X2JpbGluZWFyOF9oX3Nzc2UzICh1aW50OF90ICpkc3QsIHB0cmRpZmZf dCBkc3RzdHJpZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVp bnQ4X3QgKnNyYywgcHRyZGlmZl90IHNyY3N0cmlkZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW50IGhlaWdodCwgaW50IG14LCBpbnQgbXkpOwogCi12b2lkIGZmX3B1dF92 cDhfYmlsaW5lYXI0X3ZfbW14ZXh0KHVpbnQ4X3QgKmRzdCwgcHRyZGlmZl90IGRzdHN0cmlkZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqc3JjLCBw dHJkaWZmX3Qgc3Jjc3RyaWRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgaGVpZ2h0LCBpbnQgbXgsIGludCBteSk7CiB2b2lkIGZmX3B1dF92cDhfYmlsaW5lYXI4X3Zf c3NlMiAgKHVpbnQ4X3QgKmRzdCwgcHRyZGlmZl90IGRzdHN0cmlkZSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqc3JjLCBwdHJkaWZmX3Qgc3Jjc3Ry aWRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaGVpZ2h0LCBpbnQg bXgsIGludCBteSk7CkBAIC0xNTksMTQgKzE0MCw2IEBAIHN0YXRpYyB2b2lkIGZmX3B1dF92cDhf ZXBlbCAjIyBTSVpFICMjIF9oICMjIFRBUE5VTVggIyMgdiAjIyBUQVBOVU1ZICMjIF8gIyMgT1BU CiAgICAgICAgIGRzdCwgZHN0c3RyaWRlLCB0bXBwdHIsIFNJWkUsICAgICAgaGVpZ2h0LCAgICAg ICAgICAgICAgIG14LCBteSk7IFwKIH0KIAotI2RlZmluZSBIVlRBUE1NWCh4LCB5KSBcCi1IVlRB UChtbXhleHQsIDgsIHgsIHksICA0LCAgOCkKLQotSFZUQVBNTVgoNCwgNCkKLUhWVEFQTU1YKDQs IDYpCi1IVlRBUE1NWCg2LCA0KQotSFZUQVBNTVgoNiwgNikKLQogI2RlZmluZSBIVlRBUFNTRTIo eCwgeSwgdykgXAogSFZUQVAoc3NlMiwgIDE2LCB4LCB5LCB3LCAxNikgXAogSFZUQVAoc3NzZTMs IDE2LCB4LCB5LCB3LCAxNikKQEAgLTE5NCw3ICsxNjcsNiBAQCBzdGF0aWMgdm9pZCBmZl9wdXRf dnA4X2JpbGluZWFyICMjIFNJWkUgIyMgX2h2XyAjIyBPUFQoIFwKICAgICAgICAgZHN0LCBkc3Rz dHJpZGUsIHRtcCwgU0laRSwgICAgICBoZWlnaHQsICAgICBteCwgbXkpOyBcCiB9CiAKLUhWQklM SU4obW14ZXh0LCAgOCwgIDQsICA4KQogSFZCSUxJTihzc2UyLCAgOCwgIDgsIDE2KQogSFZCSUxJ Tihzc2UyLCAgOCwgMTYsIDE2KQogSFZCSUxJTihzc3NlMywgOCwgIDQsICA4KQpAQCAtMjg1LDEz ICsyNTcsNiBAQCBhdl9jb2xkIHZvaWQgZmZfdnA3OGRzcF9pbml0X3g4NihWUDhEU1BDb250ZXh0 ICpjKQogICAgICAgICBjLT5wdXRfdnA4X2JpbGluZWFyX3BpeGVsc190YWJbMV1bMF1bMF0gPSBm Zl9wdXRfdnA4X3BpeGVsczhfbW14OwogICAgIH0KIAotICAgIC8qIG5vdGUgdGhhdCA0LXRhcCB3 aWR0aD0xNiBmdW5jdGlvbnMgYXJlIG1pc3NpbmcgYmVjYXVzZSB3PTE2Ci0gICAgICogaXMgb25s eSB1c2VkIGZvciBsdW1hLCBhbmQgbHVtYSBpcyBhbHdheXMgYSBjb3B5IG9yIHNpeHRhcC4gKi8K LSAgICBpZiAoRVhURVJOQUxfTU1YRVhUKGNwdV9mbGFncykpIHsKLSAgICAgICAgVlA4X01DX0ZV TkMoMiwgNCwgbW14ZXh0KTsKLSAgICAgICAgVlA4X0JJTElORUFSX01DX0ZVTkMoMiwgNCwgbW14 ZXh0KTsKLSAgICB9Ci0KICAgICBpZiAoRVhURVJOQUxfU1NFKGNwdV9mbGFncykpIHsKICAgICAg ICAgYy0+cHV0X3ZwOF9lcGVsX3BpeGVsc190YWJbMF1bMF1bMF0gICAgID0KICAgICAgICAgYy0+ cHV0X3ZwOF9iaWxpbmVhcl9waXhlbHNfdGFiWzBdWzBdWzBdID0gZmZfcHV0X3ZwOF9waXhlbHMx Nl9zc2U7CkBAIC0zMDQsNiArMjY5LDggQEAgYXZfY29sZCB2b2lkIGZmX3ZwNzhkc3BfaW5pdF94 ODYoVlA4RFNQQ29udGV4dCAqYykKICAgICAgICAgVlA4X0JJTElORUFSX01DX0ZVTkMoMSwgOCwg c3NlMik7CiAgICAgfQogCisgICAgLyogbm90ZSB0aGF0IDQtdGFwIHdpZHRoPTE2IGZ1bmN0aW9u cyBhcmUgbWlzc2luZyBiZWNhdXNlIHc9MTYKKyAgICAgKiBpcyBvbmx5IHVzZWQgZm9yIGx1bWEs IGFuZCBsdW1hIGlzIGFsd2F5cyBhIGNvcHkgb3Igc2l4dGFwLiAqLwogICAgIGlmIChFWFRFUk5B TF9TU1NFMyhjcHVfZmxhZ3MpKSB7CiAgICAgICAgIFZQOF9MVU1BX01DX0ZVTkMoMCwgMTYsIHNz c2UzKTsKICAgICAgICAgVlA4X01DX0ZVTkMoMSwgOCwgc3NzZTMpOwotLSAKMi41Mi4wCgoKRnJv bSA5NmFlZGQxZTExOWU2MDYzZjE3Njg0MjM3YzFhNmJhNmQzYzczYjg0IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBv dXRsb29rLmNvbT4KRGF0ZTogU3VuLCAyMyBOb3YgMjAyNSAxMToyNToyNiArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMjAwLzMwNF0gYXZjb2RlYy94ODYvdnA4ZHNwOiBEb24ndCB1c2UgTU1YIHJlZ2lz dGVycyBpbgogcHV0X3ZwOF9waXhlbHM4CgpVc2UgR1BScyBvbiB4NjQgYW5kIHhtbSByZWdpc3Rl cnMgZWxzZSAodXNpbmcgR1BScyByZWR1Y2VzIGNvZGVzaXplKS4KVGhpcyBhdm9pZHMgY2xvYmJl cmluZyB0aGUgZmxvYXRpbmcgcG9pbnQgc3RhdGUgYW5kIHRoZXJlZm9yZSBubyBsb25nZXIKYnJl YWtzIHRoZSBBQkkuCk5vIGNoYW5nZSBpbiBiZW5jaG1hcmtzIGhlcmUuCgpSZXZpZXdlZC1ieTog Um9uYWxkIFMuIEJ1bHRqZSA8cnNidWx0amVAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbmRy ZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KLS0tCiBsaWJh dmNvZGVjL3g4Ni92cDhkc3AuYXNtICAgIHwgMjAgKysrKysrKysrKysrKystLS0tLS0KIGxpYmF2 Y29kZWMveDg2L3ZwOGRzcF9pbml0LmMgfCAgOSArKystLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwg MTcgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2Rl Yy94ODYvdnA4ZHNwLmFzbSBiL2xpYmF2Y29kZWMveDg2L3ZwOGRzcC5hc20KaW5kZXggN2I4MzYz NTFlNC4uN2RlZTk3OWUyMCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvdnA4ZHNwLmFzbQor KysgYi9saWJhdmNvZGVjL3g4Ni92cDhkc3AuYXNtCkBAIC02NzYsMTQgKzY3NiwyMiBAQCBGSUxU RVJfQklMSU5FQVIgNAogSU5JVF9YTU0gc3NzZTMKIEZJTFRFUl9CSUxJTkVBUiA4CiAKLUlOSVRf TU1YIG1teAotY2dsb2JhbCBwdXRfdnA4X3BpeGVsczgsIDUsIDUsIDAsIGRzdCwgZHN0c3RyaWRl LCBzcmMsIHNyY3N0cmlkZSwgaGVpZ2h0CitJTklUX1hNTSBzc2UyCitjZ2xvYmFsIHB1dF92cDhf cGl4ZWxzOCwgNSwgNSsyKkFSQ0hfWDg2XzY0LCAyLCBkc3QsIGRzdHN0cmlkZSwgc3JjLCBzcmNz dHJpZGUsIGhlaWdodAogLm5leHRyb3c6Ci0gICAgbW92cSAgICBtbTAsIFtzcmNxK3NyY3N0cmlk ZXEqMF0KLSAgICBtb3ZxICAgIG1tMSwgW3NyY3Erc3Jjc3RyaWRlcSoxXQorJWlmIEFSQ0hfWDg2 XzY0CisgICAgbW92ICAgICByNXEsIFtzcmNxK3NyY3N0cmlkZXEqMF0KKyAgICBtb3YgICAgIHI2 cSwgW3NyY3Erc3Jjc3RyaWRlcSoxXQogICAgIGxlYSAgICBzcmNxLCBbc3JjcStzcmNzdHJpZGVx KjJdCi0gICAgbW92cSBbZHN0cStkc3RzdHJpZGVxKjBdLCBtbTAKLSAgICBtb3ZxIFtkc3RxK2Rz dHN0cmlkZXEqMV0sIG1tMQorICAgIG1vdiBbZHN0cStkc3RzdHJpZGVxKjBdLCByNXEKKyAgICBt b3YgW2RzdHErZHN0c3RyaWRlcSoxXSwgcjZxCislZWxzZQorICAgIG1vdnEgICAgIG0wLCBbc3Jj cStzcmNzdHJpZGVxKjBdCisgICAgbW92cSAgICAgbTEsIFtzcmNxK3NyY3N0cmlkZXEqMV0KKyAg ICBsZWEgICAgc3JjcSwgW3NyY3Erc3Jjc3RyaWRlcSoyXQorICAgIG1vdnEgW2RzdHErZHN0c3Ry aWRlcSowXSwgbTAKKyAgICBtb3ZxIFtkc3RxK2RzdHN0cmlkZXEqMV0sIG0xCislZW5kaWYKICAg ICBsZWEgICAgZHN0cSwgW2RzdHErZHN0c3RyaWRlcSoyXQogICAgIHN1YiBoZWlnaHRkLCAyCiAg ICAgamcgLm5leHRyb3cKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2L3ZwOGRzcF9pbml0LmMg Yi9saWJhdmNvZGVjL3g4Ni92cDhkc3BfaW5pdC5jCmluZGV4IDAwNzMzYTI1NjQuLjQwYWE1MmM3 ZjAgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L3ZwOGRzcF9pbml0LmMKKysrIGIvbGliYXZj b2RlYy94ODYvdnA4ZHNwX2luaXQuYwpAQCAtODgsNyArODgsNyBAQCB2b2lkIGZmX3B1dF92cDhf YmlsaW5lYXI4X3Zfc3NzZTMgKHVpbnQ4X3QgKmRzdCwgcHRyZGlmZl90IGRzdHN0cmlkZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGhlaWdodCwgaW50IG14LCBpbnQg bXkpOwogCiAKLXZvaWQgZmZfcHV0X3ZwOF9waXhlbHM4X21teCAodWludDhfdCAqZHN0LCBwdHJk aWZmX3QgZHN0c3RyaWRlLAordm9pZCBmZl9wdXRfdnA4X3BpeGVsczhfc3NlMih1aW50OF90ICpk c3QsIHB0cmRpZmZfdCBkc3RzdHJpZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHVpbnQ4X3QgKnNyYywgcHRyZGlmZl90IHNyY3N0cmlkZSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW50IGhlaWdodCwgaW50IG14LCBpbnQgbXkpOwogdm9pZCBmZl9wdXRfdnA4 X3BpeGVsczE2X3NzZSh1aW50OF90ICpkc3QsIHB0cmRpZmZfdCBkc3RzdHJpZGUsCkBAIC0yNTIs MTcgKzI1MiwxNCBAQCBhdl9jb2xkIHZvaWQgZmZfdnA3OGRzcF9pbml0X3g4NihWUDhEU1BDb250 ZXh0ICpjKQogewogICAgIGludCBjcHVfZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7CiAKLSAg ICBpZiAoRVhURVJOQUxfTU1YKGNwdV9mbGFncykpIHsKLSAgICAgICAgYy0+cHV0X3ZwOF9lcGVs X3BpeGVsc190YWJbMV1bMF1bMF0gICAgID0KLSAgICAgICAgYy0+cHV0X3ZwOF9iaWxpbmVhcl9w aXhlbHNfdGFiWzFdWzBdWzBdID0gZmZfcHV0X3ZwOF9waXhlbHM4X21teDsKLSAgICB9Ci0KICAg ICBpZiAoRVhURVJOQUxfU1NFKGNwdV9mbGFncykpIHsKICAgICAgICAgYy0+cHV0X3ZwOF9lcGVs X3BpeGVsc190YWJbMF1bMF1bMF0gICAgID0KICAgICAgICAgYy0+cHV0X3ZwOF9iaWxpbmVhcl9w aXhlbHNfdGFiWzBdWzBdWzBdID0gZmZfcHV0X3ZwOF9waXhlbHMxNl9zc2U7CiAgICAgfQogCiAg ICAgaWYgKEVYVEVSTkFMX1NTRTJfU0xPVyhjcHVfZmxhZ3MpKSB7CisgICAgICAgIGMtPnB1dF92 cDhfZXBlbF9waXhlbHNfdGFiWzFdWzBdWzBdICAgICA9CisgICAgICAgIGMtPnB1dF92cDhfYmls aW5lYXJfcGl4ZWxzX3RhYlsxXVswXVswXSA9IGZmX3B1dF92cDhfcGl4ZWxzOF9zc2UyOwogICAg ICAgICBWUDhfTFVNQV9NQ19GVU5DKDAsIDE2LCBzc2UyKTsKICAgICAgICAgVlA4X01DX0ZVTkMo MSwgOCwgc3NlMik7CiAgICAgICAgIFZQOF9CSUxJTkVBUl9NQ19GVU5DKDAsIDE2LCBzc2UyKTsK LS0gCjIuNTIuMAoKCkZyb20gYjFlM2VmMWE1YjdkN2NiZjMwZDM0MTU5NTE5NTliMTg5OTU2ZjYy OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRy ZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFN1biwgMjMgTm92IDIwMjUgMTI6NTM6 MTIgKzAxMDAKU3ViamVjdDogW1BBVENIIDIwMS8zMDRdIGF2Y29kZWMveDg2L3ZwOGRzcDogRGly ZWN0bHkgdXNlIG5lZ2F0ZWQgc3RyaWRlCgpUaGVyZSBpcyBhIHJlZ2lzdGVyIGF2YWlsYWJsZS4g Tm8gY2hhbmdlIGluIGJlbmNobWFya3MgaGVyZS4KClJldmlld2VkLWJ5OiBSb25hbGQgUy4gQnVs dGplIDxyc2J1bHRqZUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJk dCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIGxpYmF2Y29kZWMveDg2L3Zw OGRzcC5hc20gfCA0NCArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9saWJhdmNvZGVjL3g4Ni92cDhkc3AuYXNtIGIvbGliYXZjb2RlYy94ODYvdnA4ZHNwLmFz bQppbmRleCA3ZGVlOTc5ZTIwLi42YjVjYTlmMzA5IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4 Ni92cDhkc3AuYXNtCisrKyBiL2xpYmF2Y29kZWMveDg2L3ZwOGRzcC5hc20KQEAgLTIxOSwxMSAr MjE5LDExIEBAIGNnbG9iYWwgcHV0X3ZwOF9lcGVsJTFfdjQsIDcsIDcsIDgsIGRzdCwgZHN0c3Ry aWRlLCBzcmMsIHNyY3N0cmlkZSwgaGVpZ2h0LCBwaWNyCiAgICAgbW92YSAgICAgIG03LCBbcHdf MjU2XQogCiAgICAgOyByZWFkIDMgbGluZXMKLSAgICBzdWIgICAgIHNyY3EsIHNyY3N0cmlkZXEK LSAgICBtb3ZoICAgICAgbTAsIFtzcmNxXQotICAgIG1vdmggICAgICBtMSwgW3NyY3ErICBzcmNz dHJpZGVxXQotICAgIG1vdmggICAgICBtMiwgW3NyY3ErMipzcmNzdHJpZGVxXQotICAgIGFkZCAg ICAgc3JjcSwgc3Jjc3RyaWRlcQorICAgIG1vdiAgcGljcmVncSwgc3Jjc3RyaWRlcQorICAgIG5l ZyAgcGljcmVncQorICAgIG1vdmggICAgICBtMCwgW3NyY3ErcGljcmVncV0KKyAgICBtb3ZoICAg ICAgbTEsIFtzcmNxXQorICAgIG1vdmggICAgICBtMiwgW3NyY3Erc3Jjc3RyaWRlcV0KIAogLm5l eHRyb3c6CiAgICAgbW92aCAgICAgIG0zLCBbc3JjcSsyKnNyY3N0cmlkZXFdICAgICAgOyByZWFk IG5ldyByb3cKQEAgLTI1NSwxOCArMjU1LDE3IEBAIGNnbG9iYWwgcHV0X3ZwOF9lcGVsJTFfdjYs IDcsIDcsIDgsIGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0cmlkZSwgaGVpZ2h0LCBwaWNyCiAg ICAgbGVhICAgICAgbXlxLCBbc2l4dGFwX2ZpbHRlcl9oYitteXEqOF0KIAogICAgIDsgcmVhZCA1 IGxpbmVzCi0gICAgc3ViICAgICBzcmNxLCBzcmNzdHJpZGVxCi0gICAgc3ViICAgICBzcmNxLCBz cmNzdHJpZGVxCi0gICAgbW92aCAgICAgIG0wLCBbc3JjcV0KLSAgICBtb3ZoICAgICAgbTEsIFtz cmNxK3NyY3N0cmlkZXFdCi0gICAgbW92aCAgICAgIG0yLCBbc3JjcStzcmNzdHJpZGVxKjJdCisg ICAgbW92ICBwaWNyZWdxLCBzcmNzdHJpZGVxCisgICAgbmVnICBwaWNyZWdxCisgICAgbW92aCAg ICAgIG0wLCBbc3JjcSsyKnBpY3JlZ3FdCisgICAgbW92aCAgICAgIG0xLCBbc3JjcStwaWNyZWdx XQorICAgIG1vdmggICAgICBtMiwgW3NyY3FdCisgICAgbW92aCAgICAgIG0zLCBbc3JjcStzcmNz dHJpZGVxXQorICAgIG1vdmggICAgICBtNCwgW3NyY3ErMipzcmNzdHJpZGVxXQogICAgIGxlYSAg ICAgc3JjcSwgW3NyY3Erc3Jjc3RyaWRlcSoyXQotICAgIGFkZCAgICAgc3JjcSwgc3Jjc3RyaWRl cQotICAgIG1vdmggICAgICBtMywgW3NyY3FdCi0gICAgbW92aCAgICAgIG00LCBbc3JjcStzcmNz dHJpZGVxXQogCiAubmV4dHJvdzoKLSAgICBtb3ZoICAgICAgbTUsIFtzcmNxKzIqc3Jjc3RyaWRl cV0gICAgICA7IHJlYWQgbmV3IHJvdworICAgIG1vdmggICAgICBtNSwgW3NyY3Erc3Jjc3RyaWRl cV0gICAgICA7IHJlYWQgbmV3IHJvdwogICAgIG1vdmEgICAgICBtNiwgbTAKICAgICBwdW5wY2ts YncgbTYsIG01CiAgICAgbW92YSAgICAgIG0wLCBtMQpAQCAtNDc1LDE1ICs0NzQsMTQgQEAgY2ds b2JhbCBwdXRfdnA4X2VwZWw4X3Y2LCA3LCA3LCA4LCBkc3QsIGRzdHN0cmlkZSwgc3JjLCBzcmNz dHJpZGUsIGhlaWdodCwgcGljcmUKICAgICBweG9yICAgICAgbTcsIG03CiAKICAgICA7IHJlYWQg NSBsaW5lcwotICAgIHN1YiAgICAgc3JjcSwgc3Jjc3RyaWRlcQotICAgIHN1YiAgICAgc3JjcSwg c3Jjc3RyaWRlcQotICAgIG1vdmggICAgICBtMCwgW3NyY3FdCi0gICAgbW92aCAgICAgIG0xLCBb c3JjcStzcmNzdHJpZGVxXQotICAgIG1vdmggICAgICBtMiwgW3NyY3Erc3Jjc3RyaWRlcSoyXQor ICAgIG1vdiAgcGljcmVncSwgc3Jjc3RyaWRlcQorICAgIG5lZyAgcGljcmVncQorICAgIG1vdmgg ICAgICBtMCwgW3NyY3ErMipwaWNyZWdxXQorICAgIG1vdmggICAgICBtMSwgW3NyY3ErcGljcmVn cV0KKyAgICBtb3ZoICAgICAgbTIsIFtzcmNxXQorICAgIG1vdmggICAgICBtMywgW3NyY3Erc3Jj c3RyaWRlcV0KKyAgICBtb3ZoICAgICAgbTQsIFtzcmNxKzIqc3Jjc3RyaWRlcV0KICAgICBsZWEg ICAgIHNyY3EsIFtzcmNxK3NyY3N0cmlkZXEqMl0KLSAgICBhZGQgICAgIHNyY3EsIHNyY3N0cmlk ZXEKLSAgICBtb3ZoICAgICAgbTMsIFtzcmNxXQotICAgIG1vdmggICAgICBtNCwgW3NyY3Erc3Jj c3RyaWRlcV0KICAgICBwdW5wY2tsYncgbTAsIG03CiAgICAgcHVucGNrbGJ3IG0xLCBtNwogICAg IHB1bnBja2xidyBtMiwgbTcKQEAgLTQ5OSw3ICs0OTcsNyBAQCBjZ2xvYmFsIHB1dF92cDhfZXBl bDhfdjYsIDcsIDcsIDgsIGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0cmlkZSwgaGVpZ2h0LCBw aWNyZQogICAgIHBhZGRzdyAgICBtNiwgbTUKIAogICAgIDsgdGhlbiBjYWxjdWxhdGUgcG9zaXRp dmUgdGFwcwotICAgIG1vdmggICAgICBtNSwgW3NyY3ErMipzcmNzdHJpZGVxXSAgICAgIDsgcmVh ZCBuZXcgcm93CisgICAgbW92aCAgICAgIG01LCBbc3JjcStzcmNzdHJpZGVxXSAgICAgIDsgcmVh ZCBuZXcgcm93CiAgICAgcHVucGNrbGJ3IG01LCBtNwogICAgIHBtdWxsdyAgICBtMCwgW215cSsw XQogICAgIHBhZGRzdyAgICBtNiwgbTAKLS0gCjIuNTIuMAoKCkZyb20gZTgxMmRhZjMzNTRkNjI5 OGY2M2U0ZGE3MmZjODMxZjE2MmQwMjJiNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog QW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6 IFN1biwgMjMgTm92IDIwMjUgMTM6MTU6MDcgKzAxMDAKU3ViamVjdDogW1BBVENIIDIwMi8zMDRd IGF2Y29kZWMveDg2L3ZwOGRzcDogSW5jcmVtZW50IHNyYyBwb2ludGVyIGVhcmxpZXIKClJldmll d2VkLWJ5OiBSb25hbGQgUy4gQnVsdGplIDxyc2J1bHRqZUBnbWFpbC5jb20+ClNpZ25lZC1vZmYt Ynk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgot LS0KIGxpYmF2Y29kZWMveDg2L3ZwOGRzcC5hc20gfCAyMiArKysrKysrKysrKystLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvdnA4ZHNwLmFzbSBiL2xpYmF2Y29kZWMveDg2L3ZwOGRz cC5hc20KaW5kZXggNmI1Y2E5ZjMwOS4uMGQzNzAxMmU5ZCAxMDA2NDQKLS0tIGEvbGliYXZjb2Rl Yy94ODYvdnA4ZHNwLmFzbQorKysgYi9saWJhdmNvZGVjL3g4Ni92cDhkc3AuYXNtCkBAIC0xNjYs NiArMTY2LDcgQEAgY2dsb2JhbCBwdXRfdnA4X2VwZWwlMV9oNiwgNiwgNiArIG5waWNyZWdzLCA4 LCBkc3QsIGRzdHN0cmlkZSwgc3JjLCBzcmNzdHJpZGUsIGgKICAgICBwbWFkZHVic3cgbTAsIG01 CiAgICAgcG1hZGR1YnN3IG0xLCBtNgogICAgIHBtYWRkdWJzdyBtMiwgbTcKKyAgICBhZGQgICAg IHNyY3EsIHNyY3N0cmlkZXEKICAgICBwYWRkc3cgICAgbTAsIG0xCiAgICAgcGFkZHN3ICAgIG0w LCBtMgogICAgIHBtdWxocnN3ICBtMCwgW3B3XzI1Nl0KQEAgLTE3NCw3ICsxNzUsNiBAQCBjZ2xv YmFsIHB1dF92cDhfZXBlbCUxX2g2LCA2LCA2ICsgbnBpY3JlZ3MsIDgsIGRzdCwgZHN0c3RyaWRl LCBzcmMsIHNyY3N0cmlkZSwgaAogCiAgICAgOyBnbyB0byBuZXh0IGxpbmUKICAgICBhZGQgICAg IGRzdHEsIGRzdHN0cmlkZXEKLSAgICBhZGQgICAgIHNyY3EsIHNyY3N0cmlkZXEKICAgICBkZWMg IGhlaWdodGQgICAgICAgICAgICA7IG5leHQgcm93CiAgICAgamcgLm5leHRyb3cKICAgICBSRVQK QEAgLTE5Nyw2ICsxOTcsNyBAQCBjZ2xvYmFsIHB1dF92cDhfZXBlbCUxX2g0LCA2LCA2ICsgbnBp Y3JlZ3MsIDcsIGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0cmlkZSwgaAogICAgIHBzaHVmYiAg ICBtMSwgbTQKICAgICBwbWFkZHVic3cgbTAsIG01CiAgICAgcG1hZGR1YnN3IG0xLCBtNgorICAg IGFkZCAgICAgc3JjcSwgc3Jjc3RyaWRlcQogICAgIHBhZGRzdyAgICBtMCwgbTEKICAgICBwbXVs aHJzdyAgbTAsIG0yCiAgICAgcGFja3Vzd2IgIG0wLCBtMApAQCAtMjA0LDcgKzIwNSw2IEBAIGNn bG9iYWwgcHV0X3ZwOF9lcGVsJTFfaDQsIDYsIDYgKyBucGljcmVncywgNywgZHN0LCBkc3RzdHJp ZGUsIHNyYywgc3Jjc3RyaWRlLCBoCiAKICAgICA7IGdvIHRvIG5leHQgbGluZQogICAgIGFkZCAg ICAgZHN0cSwgZHN0c3RyaWRlcQotICAgIGFkZCAgICAgc3JjcSwgc3Jjc3RyaWRlcQogICAgIGRl YyAgaGVpZ2h0ZCAgICAgICAgICAgIDsgbmV4dCByb3cKICAgICBqZyAubmV4dHJvdwogICAgIFJF VApAQCAtMjM0LDYgKzIzNCw3IEBAIGNnbG9iYWwgcHV0X3ZwOF9lcGVsJTFfdjQsIDcsIDcsIDgs IGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0cmlkZSwgaGVpZ2h0LCBwaWNyCiAgICAgcHVucGNr bGJ3IG0yLCBtMwogICAgIHBtYWRkdWJzdyBtNCwgbTUKICAgICBwbWFkZHVic3cgbTIsIG02Cisg ICAgYWRkICAgICAgc3JjcSwgc3Jjc3RyaWRlcQogICAgIHBhZGRzdyAgICBtNCwgbTIKICAgICBt b3ZhICAgICAgbTIsIG0zCiAgICAgcG11bGhyc3cgIG00LCBtNwpAQCAtMjQyLDcgKzI0Myw2IEBA IGNnbG9iYWwgcHV0X3ZwOF9lcGVsJTFfdjQsIDcsIDcsIDgsIGRzdCwgZHN0c3RyaWRlLCBzcmMs IHNyY3N0cmlkZSwgaGVpZ2h0LCBwaWNyCiAKICAgICA7IGdvIHRvIG5leHQgbGluZQogICAgIGFk ZCAgICAgIGRzdHEsIGRzdHN0cmlkZXEKLSAgICBhZGQgICAgICBzcmNxLCBzcmNzdHJpZGVxCiAg ICAgZGVjICAgaGVpZ2h0ZCAgICAgICAgICAgICAgICAgICAgICAgICAgOyBuZXh0IHJvdwogICAg IGpnIC5uZXh0cm93CiAgICAgUkVUCkBAIC0yNzUsNiArMjc1LDcgQEAgY2dsb2JhbCBwdXRfdnA4 X2VwZWwlMV92NiwgNywgNywgOCwgZHN0LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3RyaWRlLCBoZWln aHQsIHBpY3IKICAgICBwbWFkZHVic3cgbTYsIFtteXEtNDhdCiAgICAgcG1hZGR1YnN3IG0xLCBb bXlxLTMyXQogICAgIHBtYWRkdWJzdyBtNywgW215cS0xNl0KKyAgICBhZGQgICAgICBzcmNxLCBz cmNzdHJpZGVxCiAgICAgcGFkZHN3ICAgIG02LCBtMQogICAgIHBhZGRzdyAgICBtNiwgbTcKICAg ICBtb3ZhICAgICAgbTEsIG0yCkBAIC0yODcsNyArMjg4LDYgQEAgY2dsb2JhbCBwdXRfdnA4X2Vw ZWwlMV92NiwgNywgNywgOCwgZHN0LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3RyaWRlLCBoZWlnaHQs IHBpY3IKIAogICAgIDsgZ28gdG8gbmV4dCBsaW5lCiAgICAgYWRkICAgICAgZHN0cSwgZHN0c3Ry aWRlcQotICAgIGFkZCAgICAgIHNyY3EsIHNyY3N0cmlkZXEKICAgICBkZWMgICBoZWlnaHRkICAg ICAgICAgICAgICAgICAgICAgICAgICA7IG5leHQgcm93CiAgICAgamcgLm5leHRyb3cKICAgICBS RVQKQEAgLTMzMSw2ICszMzEsNyBAQCBjZ2xvYmFsIHB1dF92cDhfZXBlbDhfaDQsIDYsIDYgKyBu cGljcmVncywgMTAsIGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0cmlkZSwgaAogICAgIHBtdWxs dyAgICBtMiwgW214cSszMl0KICAgICBwbXVsbHcgICAgbTMsIFtteHErNDhdCiAlZW5kaWYKKyAg ICBhZGQgICAgIHNyY3EsIHNyY3N0cmlkZXEKICAgICBwYWRkc3cgICAgbTAsIG0xCiAgICAgcGFk ZHN3ICAgIG0yLCBtMwogICAgIHBhZGRzdyAgICBtMCwgbTIKQEAgLTM0MSw3ICszNDIsNiBAQCBj Z2xvYmFsIHB1dF92cDhfZXBlbDhfaDQsIDYsIDYgKyBucGljcmVncywgMTAsIGRzdCwgZHN0c3Ry aWRlLCBzcmMsIHNyY3N0cmlkZSwgaAogCiAgICAgOyBnbyB0byBuZXh0IGxpbmUKICAgICBhZGQg ICAgIGRzdHEsIGRzdHN0cmlkZXEKLSAgICBhZGQgICAgIHNyY3EsIHNyY3N0cmlkZXEKICAgICBk ZWMgIGhlaWdodGQgICAgICAgICAgICA7IG5leHQgcm93CiAgICAgamcgLm5leHRyb3cKICAgICBS RVQKQEAgLTM5Miw2ICszOTIsNyBAQCBjZ2xvYmFsIHB1dF92cDhfZXBlbDhfaDYsIDYsIDYgKyBu cGljcmVncywgMTQsIGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0cmlkZSwgaAogICAgIHBtdWxs dyAgICBtNCwgW214cSs2NF0KICAgICBwbXVsbHcgICAgbTUsIFtteHErODBdCiAlZW5kaWYKKyAg ICBhZGQgICAgIHNyY3EsIHNyY3N0cmlkZXEKICAgICBwYWRkc3cgICAgbTEsIG00CiAgICAgcGFk ZHN3ICAgIG0wLCBtNQogICAgIHBhZGRzdyAgICBtMSwgbTIKQEAgLTQwNCw3ICs0MDUsNiBAQCBj Z2xvYmFsIHB1dF92cDhfZXBlbDhfaDYsIDYsIDYgKyBucGljcmVncywgMTQsIGRzdCwgZHN0c3Ry aWRlLCBzcmMsIHNyY3N0cmlkZSwgaAogCiAgICAgOyBnbyB0byBuZXh0IGxpbmUKICAgICBhZGQg ICAgIGRzdHEsIGRzdHN0cmlkZXEKLSAgICBhZGQgICAgIHNyY3EsIHNyY3N0cmlkZXEKICAgICBk ZWMgIGhlaWdodGQgICAgICAgICAgICA7IG5leHQgcm93CiAgICAgamcgLm5leHRyb3cKICAgICBS RVQKQEAgLTQ0Niw2ICs0NDYsNyBAQCBjZ2xvYmFsIHB1dF92cDhfZXBlbDhfdjQsIDcsIDcsIDgs IGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0cmlkZSwgaGVpZ2h0LCBwaWNyZQogICAgIHBhZGRz dyAgICBtNCwgbTEKICAgICBtb3ZhICAgICAgbTEsIG0yCiAgICAgcG11bGx3ICAgIG0yLCBbbXlx KzMyXQorICAgIGFkZCAgICAgc3JjcSwgc3Jjc3RyaWRlcQogICAgIHBhZGRzdyAgICBtNCwgbTIK ICAgICBtb3ZhICAgICAgbTIsIG0zCiAKQEAgLTQ1Nyw3ICs0NTgsNiBAQCBjZ2xvYmFsIHB1dF92 cDhfZXBlbDhfdjQsIDcsIDcsIDgsIGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0cmlkZSwgaGVp Z2h0LCBwaWNyZQogCiAgICAgOyBnbyB0byBuZXh0IGxpbmUKICAgICBhZGQgICAgIGRzdHEsIGRz dHN0cmlkZXEKLSAgICBhZGQgICAgIHNyY3EsIHNyY3N0cmlkZXEKICAgICBkZWMgIGhlaWdodGQg ICAgICAgICAgICAgICAgICAgICAgICAgICA7IG5leHQgcm93CiAgICAgamcgLm5leHRyb3cKICAg ICBSRVQKQEAgLTUwNyw2ICs1MDcsNyBAQCBjZ2xvYmFsIHB1dF92cDhfZXBlbDhfdjYsIDcsIDcs IDgsIGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0cmlkZSwgaGVpZ2h0LCBwaWNyZQogICAgIHBh ZGRzdyAgICBtNiwgbTIKICAgICBtb3ZhICAgICAgbTIsIG0zCiAgICAgcG11bGx3ICAgIG0zLCBb bXlxKzQ4XQorICAgIGFkZCAgICAgc3JjcSwgc3Jjc3RyaWRlcQogICAgIHBhZGRzdyAgICBtNiwg bTMKICAgICBtb3ZhICAgICAgbTMsIG00CiAgICAgbW92YSAgICAgIG00LCBtNQpAQCAtNTIxLDcg KzUyMiw2IEBAIGNnbG9iYWwgcHV0X3ZwOF9lcGVsOF92NiwgNywgNywgOCwgZHN0LCBkc3RzdHJp ZGUsIHNyYywgc3Jjc3RyaWRlLCBoZWlnaHQsIHBpY3JlCiAKICAgICA7IGdvIHRvIG5leHQgbGlu ZQogICAgIGFkZCAgICAgZHN0cSwgZHN0c3RyaWRlcQotICAgIGFkZCAgICAgc3JjcSwgc3Jjc3Ry aWRlcQogICAgIGRlYyAgaGVpZ2h0ZCAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgbmV4dCBy b3cKICAgICBqZyAubmV4dHJvdwogICAgIFJFVApAQCAtNTQzLDYgKzU0Myw3IEBAIGNnbG9iYWwg cHV0X3ZwOF9iaWxpbmVhciUxX3YsIDcsIDcsIDUsIGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0 cmlkZSwgaGVpZ2h0LCBwCiAgICAgcHVucGNrbGJ3IG0xLCBtMgogICAgIHBtYWRkdWJzdyBtMCwg bTMKICAgICBwbWFkZHVic3cgbTEsIG0zCisgICAgbGVhICAgICBzcmNxLCBbc3JjcStzcmNzdHJp ZGVxKjJdCiAgICAgcHNyYXcgICAgIG0wLCAyCiAgICAgcHNyYXcgICAgIG0xLCAyCiAgICAgcGF2 Z3cgICAgIG0wLCBtNApAQCAtNTc5LDYgKzU4MCw3IEBAIGNnbG9iYWwgcHV0X3ZwOF9iaWxpbmVh ciUxX3YsIDcsIDcsIDcsIGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0cmlkZSwgaGVpZ2h0LCBw CiAgICAgcG11bGx3ICAgIG0xLCBtNQogICAgIHBtdWxsdyAgICBtMiwgbTQKICAgICBwbXVsbHcg ICAgbTMsIG01CisgICAgbGVhICAgICBzcmNxLCBbc3JjcStzcmNzdHJpZGVxKjJdCiAgICAgcGFk ZHN3ICAgIG0wLCBtMQogICAgIHBhZGRzdyAgICBtMiwgbTMKICAgICBwc3JhdyAgICAgbTAsIDIK QEAgLTU5MSw3ICs1OTMsNiBAQCBjZ2xvYmFsIHB1dF92cDhfYmlsaW5lYXIlMV92LCA3LCA3LCA3 LCBkc3QsIGRzdHN0cmlkZSwgc3JjLCBzcmNzdHJpZGUsIGhlaWdodCwgcAogJWVuZGlmIDsgY3B1 ZmxhZyhzc3NlMykKIAogICAgIGxlYSAgICAgZHN0cSwgW2RzdHErZHN0c3RyaWRlcSoyXQotICAg IGxlYSAgICAgc3JjcSwgW3NyY3Erc3Jjc3RyaWRlcSoyXQogICAgIHN1YiAgaGVpZ2h0ZCwgMgog ICAgIGpnIC5uZXh0cm93CiAgICAgUkVUCkBAIC02MTIsNiArNjEzLDcgQEAgY2dsb2JhbCBwdXRf dnA4X2JpbGluZWFyJTFfaCwgNiwgNiArIG5waWNyZWdzLCA1LCBkc3QsIGRzdHN0cmlkZSwgc3Jj LCBzcmNzdHJpZGUKICAgICBwc2h1ZmIgICAgbTEsIG0yCiAgICAgcG1hZGR1YnN3IG0wLCBtMwog ICAgIHBtYWRkdWJzdyBtMSwgbTMKKyAgICBsZWEgICAgIHNyY3EsIFtzcmNxK3NyY3N0cmlkZXEq Ml0KICAgICBwc3JhdyAgICAgbTAsIDIKICAgICBwc3JhdyAgICAgbTEsIDIKICAgICBwYXZndyAg ICAgbTAsIG00CkBAIC02NDksNiArNjUxLDcgQEAgY2dsb2JhbCBwdXRfdnA4X2JpbGluZWFyJTFf aCwgNiwgNiArIG5waWNyZWdzLCA3LCBkc3QsIGRzdHN0cmlkZSwgc3JjLCBzcmNzdHJpZGUKICAg ICBwbXVsbHcgICAgbTEsIG01CiAgICAgcG11bGx3ICAgIG0yLCBtNAogICAgIHBtdWxsdyAgICBt MywgbTUKKyAgICBsZWEgICAgIHNyY3EsIFtzcmNxK3NyY3N0cmlkZXEqMl0KICAgICBwYWRkc3cg ICAgbTAsIG0xCiAgICAgcGFkZHN3ICAgIG0yLCBtMwogICAgIHBzcmF3ICAgICBtMCwgMgpAQCAt NjYxLDcgKzY2NCw2IEBAIGNnbG9iYWwgcHV0X3ZwOF9iaWxpbmVhciUxX2gsIDYsIDYgKyBucGlj cmVncywgNywgZHN0LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3RyaWRlCiAlZW5kaWYgOyBjcHVmbGFn KHNzc2UzKQogCiAgICAgbGVhICAgICBkc3RxLCBbZHN0cStkc3RzdHJpZGVxKjJdCi0gICAgbGVh ICAgICBzcmNxLCBbc3JjcStzcmNzdHJpZGVxKjJdCiAgICAgc3ViICBoZWlnaHRkLCAyCiAgICAg amcgLm5leHRyb3cKICAgICBSRVQKLS0gCjIuNTIuMAoKCkZyb20gMmM3YmIwOTBiZDk3Y2NhNzgy OTQ4MThmMWY4NzA5MzM4Y2M2M2EyOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5k cmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFN1 biwgMjMgTm92IDIwMjUgMTM6Mjc6MzUgKzAxMDAKU3ViamVjdDogW1BBVENIIDIwMy8zMDRdIGF2 Y29kZWMveDg2L3ZwOGRzcDogQXZvaWQgcmVsb2FkCgpSZXZpZXdlZC1ieTogUm9uYWxkIFMuIEJ1 bHRqZSA8cnNidWx0amVAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFy ZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KLS0tCiBsaWJhdmNvZGVjL3g4Ni92 cDhkc3AuYXNtIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni92cDhkc3AuYXNtIGIvbGliYXZj b2RlYy94ODYvdnA4ZHNwLmFzbQppbmRleCAwZDM3MDEyZTlkLi5lOTcxZGE2OGFjIDEwMDY0NAot LS0gYS9saWJhdmNvZGVjL3g4Ni92cDhkc3AuYXNtCisrKyBiL2xpYmF2Y29kZWMveDg2L3ZwOGRz cC5hc20KQEAgLTUzNSw4ICs1MzUsOCBAQCBjZ2xvYmFsIHB1dF92cDhfYmlsaW5lYXIlMV92LCA3 LCA3LCA1LCBkc3QsIGRzdHN0cmlkZSwgc3JjLCBzcmNzdHJpZGUsIGhlaWdodCwgcAogJWVuZGlm CiAgICAgcHhvciAgICAgIG00LCBtNAogICAgIG1vdmEgICAgICBtMywgW2JpbGluZWFyX2ZpbHRl cl92YitteXEtMTZdCi0ubmV4dHJvdzoKICAgICBtb3ZoICAgICAgbTAsIFtzcmNxK3NyY3N0cmlk ZXEqMF0KKy5uZXh0cm93OgogICAgIG1vdmggICAgICBtMSwgW3NyY3Erc3Jjc3RyaWRlcSoxXQog ICAgIG1vdmggICAgICBtMiwgW3NyY3Erc3Jjc3RyaWRlcSoyXQogICAgIHB1bnBja2xidyBtMCwg bTEKQEAgLTU1OCw2ICs1NTgsNyBAQCBjZ2xvYmFsIHB1dF92cDhfYmlsaW5lYXIlMV92LCA3LCA3 LCA1LCBkc3QsIGRzdHN0cmlkZSwgc3JjLCBzcmNzdHJpZGUsIGhlaWdodCwgcAogICAgIG1vdmgg ICBbZHN0cStkc3RzdHJpZGVxKjBdLCBtMAogICAgIG1vdmhwcyBbZHN0cStkc3RzdHJpZGVxKjFd LCBtMAogJWVuZGlmCisgICAgbW92YSAgICAgIG0wLCBtMgogJWVsc2UgOyBjcHVmbGFnKHNzc2Uz KQogY2dsb2JhbCBwdXRfdnA4X2JpbGluZWFyJTFfdiwgNywgNywgNywgZHN0LCBkc3RzdHJpZGUs IHNyYywgc3Jjc3RyaWRlLCBoZWlnaHQsIHBpY3JlZywgbXkKICAgICBzaGwgICAgICBteWQsIDQK LS0gCjIuNTIuMAoKCkZyb20gMWIwNzhjODJjOTBjNTZjY2I5NWJmNjg4MTQ5NmNmZDI4N2Y0MWE0 ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRy ZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFN1biwgMjMgTm92IDIwMjUgMTU6Mzk6 NDggKzAxMDAKU3ViamVjdDogW1BBVENIIDIwNC8zMDRdIGF2Y29kZWMveDg2L3ZwOGRzcF9pbml0 OiBSZW1vdmUgdW51c2VkIG1hY3JvCgpGb3Jnb3R0ZW4gaW4gNmE1NTFmMTQwNTA2NzRmYjY4NTky MGViMWIwNjQwODEwY2FjY2NmOS4KClJldmlld2VkLWJ5OiBSb25hbGQgUy4gQnVsdGplIDxyc2J1 bHRqZUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVh cy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIGxpYmF2Y29kZWMveDg2L3ZwOGRzcF9pbml0 LmMgfCAxMCAtLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvdnA4ZHNwX2luaXQuYyBiL2xpYmF2Y29kZWMveDg2L3Zw OGRzcF9pbml0LmMKaW5kZXggNDBhYTUyYzdmMC4uODI4YjAzOGNkZiAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy94ODYvdnA4ZHNwX2luaXQuYworKysgYi9saWJhdmNvZGVjL3g4Ni92cDhkc3BfaW5p dC5jCkBAIC0xMDUsMTYgKzEwNSw2IEBAIHN0YXRpYyB2b2lkIGZmX3B1dF92cDhfICMjIEZJTFRF UlRZUEUgIyMgMTZfICMjIFRBUFRZUEUgIyMgXyAjIyBPUFQoIFwKICAgICBmZl9wdXRfdnA4XyAj IyBGSUxURVJUWVBFICMjIDhfICMjIFRBUFRZUEUgIyMgXyAjIyBPUFQoIFwKICAgICAgICAgZHN0 ICsgOCwgZHN0c3RyaWRlLCBzcmMgKyA4LCBzcmNzdHJpZGUsIGhlaWdodCwgbXgsIG15KTsgXAog fQotI2RlZmluZSBUQVBfVzgoT1BULCBGSUxURVJUWVBFLCBUQVBUWVBFKSBcCi1zdGF0aWMgdm9p ZCBmZl9wdXRfdnA4XyAjIyBGSUxURVJUWVBFICMjIDhfICMjIFRBUFRZUEUgIyMgXyAjIyBPUFQo IFwKLSAgICB1aW50OF90ICpkc3QsICBwdHJkaWZmX3QgZHN0c3RyaWRlLCB1aW50OF90ICpzcmMs IFwKLSAgICBwdHJkaWZmX3Qgc3Jjc3RyaWRlLCBpbnQgaGVpZ2h0LCBpbnQgbXgsIGludCBteSkg XAoteyBcCi0gICAgZmZfcHV0X3ZwOF8gIyMgRklMVEVSVFlQRSAjIyA0XyAjIyBUQVBUWVBFICMj IF8gIyMgT1BUKCBcCi0gICAgICAgIGRzdCwgICAgIGRzdHN0cmlkZSwgc3JjLCAgICAgc3Jjc3Ry aWRlLCBoZWlnaHQsIG14LCBteSk7IFwKLSAgICBmZl9wdXRfdnA4XyAjIyBGSUxURVJUWVBFICMj IDRfICMjIFRBUFRZUEUgIyMgXyAjIyBPUFQoIFwKLSAgICAgICAgZHN0ICsgNCwgZHN0c3RyaWRl LCBzcmMgKyA0LCBzcmNzdHJpZGUsIGhlaWdodCwgbXgsIG15KTsgXAotfQogCiBUQVBfVzE2KHNz ZTIsICBlcGVsLCBoNikKIFRBUF9XMTYoc3NlMiwgIGVwZWwsIHY2KQotLSAKMi41Mi4wCgoKRnJv bSBiZmU4ODExODU0MWE2ODdhNjYxYjliNzY4Y2VjODFkNzBhM2Q0MmIzIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBv dXRsb29rLmNvbT4KRGF0ZTogU3VuLCAyMyBOb3YgMjAyNSAyMDoyNToyNiArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMjA1LzMwNF0gYXZjb2RlYy94ODYvdnA4ZHNwOiBBdm9pZCB1bnBhY2tpbmcgbXVs dGlwbGUgdGltZXMKCkFsd2F5cyBwYWlyIHJvdyBpIHdpdGggcm93IGkrMiBmb3IgdGhlIHZlcnRp Y2FsIGZvdXItdGFwIGZpbHRlcgphbmQgcm93IGkrMyBmb3IgdGhlIHZlcnRpY2FsIHNpeC10YXAg ZmlsdGVyIChpbnN0ZWFkIG9mIHBhaXJpbmcKdGhlIGZpcnN0IHdpdGggdGhlIHNpeHRoLCB0aGUg c2Vjb25kIHdpdGggdGhlIHRoaXJkIGFuZCB0aGUgZm91cnRoCmFuZCB0aGUgZmlmdGgpLiBUaGlz IGFsbG93cyB0byB1bnBhY2sgZWFjaCByb3cgb25seSBvbmNlIGluc3RlYWQKb2YgKGF0IG1vc3Qp IHRocmVlIHRpbWVzLgoKT2xkIGJlbmNobWFya3M6CnZwOF9wdXRfZXBlbDRfdjRfYzogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTguNCAoIDEuMDB4KQp2cDhfcHV0X2VwZWw0 X3Y0X3Nzc2UzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4LjYgKCAzLjQ0eCkK dnA4X3B1dF9lcGVsNF92Nl9jOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEz MS42ICggMS4wMHgpCnZwOF9wdXRfZXBlbDRfdjZfc3NzZTM6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMzguNSAoIDMuNDJ4KQp2cDhfcHV0X2VwZWw4X3Y0X2M6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMzYyLjUgKCAxLjAweCkKdnA4X3B1dF9lcGVsOF92NF9z c2UyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2My44ICggNS42OHgpCnZwOF9w dXRfZXBlbDhfdjRfc3NzZTM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQuNCAo IDguMTZ4KQp2cDhfcHV0X2VwZWw4X3Y2X2M6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgNTM4LjMgKCAxLjAweCkKdnA4X3B1dF9lcGVsOF92Nl9zc2UyOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA4Ni41ICggNi4yMngpCnZwOF9wdXRfZXBlbDhfdjZfc3NzZTM6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTcuMCAoIDkuNDR4KQp2cDhfcHV0X2Vw ZWwxNl92Nl9jOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDQ0LjYgKCAxLjAw eCkKdnA4X3B1dF9lcGVsMTZfdjZfc3NlMjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDE1OC4wICggNi42MXgpCnZwOF9wdXRfZXBlbDE2X3Y2X3Nzc2UzOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAxMDYuNyAoIDkuNzl4KQoKTmV3IGJlbmNobWFya3M6CnZwOF9wdXRfZXBl bDRfdjRfYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAuMCAoIDEuMDB4 KQp2cDhfcHV0X2VwZWw0X3Y0X3Nzc2UzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDI4LjQgKCAzLjUyeCkKdnA4X3B1dF9lcGVsNF92Nl9jOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDEzMS43ICggMS4wMHgpCnZwOF9wdXRfZXBlbDRfdjZfc3NzZTM6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMzQuMyAoIDMuODR4KQp2cDhfcHV0X2VwZWw4X3Y0 X2M6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzY0LjQgKCAxLjAweCkKdnA4 X3B1dF9lcGVsOF92NF9zc2UyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2My43 ICggNS43MngpCnZwOF9wdXRfZXBlbDhfdjRfc3NzZTM6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgNDMuMyAoIDguNDJ4KQp2cDhfcHV0X2VwZWw4X3Y2X2M6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgNTUwLjIgKCAxLjAweCkKdnA4X3B1dF9lcGVsOF92Nl9zc2Uy OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4Ni40ICggNi4zN3gpCnZwOF9wdXRf ZXBlbDhfdjZfc3NzZTM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTIuOSAoMTAu NDB4KQp2cDhfcHV0X2VwZWwxNl92Nl9jOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAxMDUyLjUgKCAxLjAweCkKdnA4X3B1dF9lcGVsMTZfdjZfc3NlMjogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDE1OC4zICggNi42NXgpCnZwOF9wdXRfZXBlbDE2X3Y2X3Nzc2UzOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTguOSAoMTAuNjR4KQoKUmV2aWV3ZWQtYnk6 IFJvbmFsZCBTLiBCdWx0amUgPHJzYnVsdGplQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogQW5k cmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGli YXZjb2RlYy94ODYvdnA4ZHNwLmFzbSB8IDY4ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2L3ZwOGRzcC5hc20gYi9saWJhdmNvZGVj L3g4Ni92cDhkc3AuYXNtCmluZGV4IGU5NzFkYTY4YWMuLjdjYjcyOWE0NDMgMTAwNjQ0Ci0tLSBh L2xpYmF2Y29kZWMveDg2L3ZwOGRzcC5hc20KKysrIGIvbGliYXZjb2RlYy94ODYvdnA4ZHNwLmFz bQpAQCAtMzMsNiArMzMsMTUgQEAgZm91cnRhcF9maWx0ZXJfaGJfbTogdGltZXMgOCBkYiAgLTYs IDEyMwogICAgICAgICAgICAgICAgICAgICAgdGltZXMgOCBkYiAgLTEsICAxMgogICAgICAgICAg ICAgICAgICAgICAgdGltZXMgOCBkYiAxMjMsICAtNgogCitmb3VydGFwX2ZpbHRlcl9iX206ICB0 aW1lcyA4IGRiICAtNiwgIDEyCisgICAgICAgICAgICAgICAgICAgICB0aW1lcyA4IGRiIDEyMywg IC0xCisgICAgICAgICAgICAgICAgICAgICB0aW1lcyA4IGRiICAtOSwgIDUwCisgICAgICAgICAg ICAgICAgICAgICB0aW1lcyA4IGRiICA5MywgIC02CisgICAgICAgICAgICAgICAgICAgICB0aW1l cyA4IGRiICAtNiwgIDkzCisgICAgICAgICAgICAgICAgICAgICB0aW1lcyA4IGRiICA1MCwgIC05 CisgICAgICAgICAgICAgICAgICAgICB0aW1lcyA4IGRiICAtMSwgMTIzCisgICAgICAgICAgICAg ICAgICAgICB0aW1lcyA4IGRiICAxMiwgIC02CisKIHNpeHRhcF9maWx0ZXJfaGJfbTogIHRpbWVz IDggZGIgICAyLCAgIDEKICAgICAgICAgICAgICAgICAgICAgIHRpbWVzIDggZGIgLTExLCAxMDgK ICAgICAgICAgICAgICAgICAgICAgIHRpbWVzIDggZGIgIDM2LCAgLTgKQEAgLTQzLDYgKzUyLDE2 IEBAIHNpeHRhcF9maWx0ZXJfaGJfbTogIHRpbWVzIDggZGIgICAyLCAgIDEKICAgICAgICAgICAg ICAgICAgICAgIHRpbWVzIDggZGIgIC04LCAgMzYKICAgICAgICAgICAgICAgICAgICAgIHRpbWVz IDggZGIgMTA4LCAtMTEKIAorc2l4dGFwX2ZpbHRlcl9iX206ICAgdGltZXMgOCBkYiAgIDIsICAz NgorICAgICAgICAgICAgICAgICAgICAgdGltZXMgOCBkYiAtMTEsICAtOAorICAgICAgICAgICAg ICAgICAgICAgdGltZXMgOCBkYiAxMDgsICAgMQorICAgICAgICAgICAgICAgICAgICAgdGltZXMg OCBkYiAgIDMsICA3NworICAgICAgICAgICAgICAgICAgICAgdGltZXMgOCBkYiAtMTYsIC0xNgor ICAgICAgICAgICAgICAgICAgICAgdGltZXMgOCBkYiAgNzcsICAgMworICAgICAgICAgICAgICAg ICAgICAgdGltZXMgOCBkYiAgIDEsIDEwOAorICAgICAgICAgICAgICAgICAgICAgdGltZXMgOCBk YiAgLTgsIC0xMQorICAgICAgICAgICAgICAgICAgICAgdGltZXMgOCBkYiAgMzYsICAgMgorCiBm b3VydGFwX2ZpbHRlcl92X206ICB0aW1lcyA4IGR3ICAtNgogICAgICAgICAgICAgICAgICAgICAg dGltZXMgOCBkdyAxMjMKICAgICAgICAgICAgICAgICAgICAgIHRpbWVzIDggZHcgIDEyCkBAIC05 Nyw3ICsxMTYsOSBAQCBiaWxpbmVhcl9maWx0ZXJfdmJfbTogdGltZXMgOCBkYiA3LCAxCiAKICVp ZiBQSUMKICVkZWZpbmUgZm91cnRhcF9maWx0ZXJfaGIgIHBpY3JlZ3EKKyVkZWZpbmUgZm91cnRh cF9maWx0ZXJfYiAgIHBpY3JlZ3EKICVkZWZpbmUgc2l4dGFwX2ZpbHRlcl9oYiAgIHBpY3JlZ3EK KyVkZWZpbmUgc2l4dGFwX2ZpbHRlcl9iICAgIHBpY3JlZ3EKICVkZWZpbmUgZm91cnRhcF9maWx0 ZXJfdiAgIHBpY3JlZ3EKICVkZWZpbmUgc2l4dGFwX2ZpbHRlcl92ICAgIHBpY3JlZ3EKICVkZWZp bmUgYmlsaW5lYXJfZmlsdGVyX3Z3IHBpY3JlZ3EKQEAgLTEwNSw3ICsxMjYsOSBAQCBiaWxpbmVh cl9maWx0ZXJfdmJfbTogdGltZXMgOCBkYiA3LCAxCiAlZGVmaW5lIG5waWNyZWdzIDEKICVlbHNl CiAlZGVmaW5lIGZvdXJ0YXBfZmlsdGVyX2hiICBmb3VydGFwX2ZpbHRlcl9oYl9tCislZGVmaW5l IGZvdXJ0YXBfZmlsdGVyX2IgICBmb3VydGFwX2ZpbHRlcl9iX20KICVkZWZpbmUgc2l4dGFwX2Zp bHRlcl9oYiAgIHNpeHRhcF9maWx0ZXJfaGJfbQorJWRlZmluZSBzaXh0YXBfZmlsdGVyX2IgICAg c2l4dGFwX2ZpbHRlcl9iX20KICVkZWZpbmUgZm91cnRhcF9maWx0ZXJfdiAgIGZvdXJ0YXBfZmls dGVyX3ZfbQogJWRlZmluZSBzaXh0YXBfZmlsdGVyX3YgICAgc2l4dGFwX2ZpbHRlcl92X20KICVk ZWZpbmUgYmlsaW5lYXJfZmlsdGVyX3Z3IGJpbGluZWFyX2ZpbHRlcl92d19tCkBAIC0yMTIsMTAg KzIzNSwxMCBAQCBjZ2xvYmFsIHB1dF92cDhfZXBlbCUxX2g0LCA2LCA2ICsgbnBpY3JlZ3MsIDcs IGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0cmlkZSwgaAogY2dsb2JhbCBwdXRfdnA4X2VwZWwl MV92NCwgNywgNywgOCwgZHN0LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3RyaWRlLCBoZWlnaHQsIHBp Y3JlZywgbXkKICAgICBzaGwgICAgICBteWQsIDQKICVpZiBQSUMKLSAgICBsZWEgIHBpY3JlZ3Es IFtmb3VydGFwX2ZpbHRlcl9oYl9tXQorICAgIGxlYSAgcGljcmVncSwgW2ZvdXJ0YXBfZmlsdGVy X2JfbV0KICVlbmRpZgotICAgIG1vdmEgICAgICBtNSwgW2ZvdXJ0YXBfZmlsdGVyX2hiK215cS0x Nl0KLSAgICBtb3ZhICAgICAgbTYsIFtmb3VydGFwX2ZpbHRlcl9oYitteXFdCisgICAgbW92YSAg ICAgIG01LCBbZm91cnRhcF9maWx0ZXJfYitteXEtMTZdCisgICAgbW92YSAgICAgIG02LCBbZm91 cnRhcF9maWx0ZXJfYitteXFdCiAgICAgbW92YSAgICAgIG03LCBbcHdfMjU2XQogCiAgICAgOyBy ZWFkIDMgbGluZXMKQEAgLTIyNCwyMSArMjQ3LDIwIEBAIGNnbG9iYWwgcHV0X3ZwOF9lcGVsJTFf djQsIDcsIDcsIDgsIGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0cmlkZSwgaGVpZ2h0LCBwaWNy CiAgICAgbW92aCAgICAgIG0wLCBbc3JjcStwaWNyZWdxXQogICAgIG1vdmggICAgICBtMSwgW3Ny Y3FdCiAgICAgbW92aCAgICAgIG0yLCBbc3JjcStzcmNzdHJpZGVxXQorICAgIHB1bnBja2xidyBt MCwgbTIKIAogLm5leHRyb3c6CiAgICAgbW92aCAgICAgIG0zLCBbc3JjcSsyKnNyY3N0cmlkZXFd ICAgICAgOyByZWFkIG5ldyByb3cKLSAgICBtb3ZhICAgICAgbTQsIG0wCisgICAgcG1hZGR1YnN3 IG0wLCBtNQorICAgIHB1bnBja2xidyBtMSwgbTMKKyAgICBwbWFkZHVic3cgbTQsIG0xLCBtNgor ICAgIGFkZCAgICAgc3JjcSwgc3Jjc3RyaWRlcQorICAgIHBhZGRzdyAgICBtNCwgbTAKICAgICBt b3ZhICAgICAgbTAsIG0xCi0gICAgcHVucGNrbGJ3IG00LCBtMQotICAgIG1vdmEgICAgICBtMSwg bTIKLSAgICBwdW5wY2tsYncgbTIsIG0zCi0gICAgcG1hZGR1YnN3IG00LCBtNQotICAgIHBtYWRk dWJzdyBtMiwgbTYKLSAgICBhZGQgICAgICBzcmNxLCBzcmNzdHJpZGVxCi0gICAgcGFkZHN3ICAg IG00LCBtMgotICAgIG1vdmEgICAgICBtMiwgbTMKICAgICBwbXVsaHJzdyAgbTQsIG03CisgICAg bW92YSAgICAgIG0xLCBtMgogICAgIHBhY2t1c3diICBtNCwgbTQKKyAgICBtb3ZhICAgICAgbTIs IG0zCiAgICAgbW92aCAgW2RzdHFdLCBtNAogCiAgICAgOyBnbyB0byBuZXh0IGxpbmUKQEAgLTI1 MCw5ICsyNzIsOSBAQCBjZ2xvYmFsIHB1dF92cDhfZXBlbCUxX3Y0LCA3LCA3LCA4LCBkc3QsIGRz dHN0cmlkZSwgc3JjLCBzcmNzdHJpZGUsIGhlaWdodCwgcGljcgogY2dsb2JhbCBwdXRfdnA4X2Vw ZWwlMV92NiwgNywgNywgOCwgZHN0LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3RyaWRlLCBoZWlnaHQs IHBpY3JlZywgbXkKICAgICBsZWEgICAgICBteWQsIFtteXEqM10KICVpZiBQSUMKLSAgICBsZWEg IHBpY3JlZ3EsIFtzaXh0YXBfZmlsdGVyX2hiX21dCisgICAgbGVhICBwaWNyZWdxLCBbc2l4dGFw X2ZpbHRlcl9iX21dCiAlZW5kaWYKLSAgICBsZWEgICAgICBteXEsIFtzaXh0YXBfZmlsdGVyX2hi K215cSo4XQorICAgIGxlYSAgICAgIG15cSwgW3NpeHRhcF9maWx0ZXJfYitteXEqOF0KIAogICAg IDsgcmVhZCA1IGxpbmVzCiAgICAgbW92ICBwaWNyZWdxLCBzcmNzdHJpZGVxCkBAIC0yNjMsMjAg KzI4NSwxOCBAQCBjZ2xvYmFsIHB1dF92cDhfZXBlbCUxX3Y2LCA3LCA3LCA4LCBkc3QsIGRzdHN0 cmlkZSwgc3JjLCBzcmNzdHJpZGUsIGhlaWdodCwgcGljcgogICAgIG1vdmggICAgICBtMywgW3Ny Y3Erc3Jjc3RyaWRlcV0KICAgICBtb3ZoICAgICAgbTQsIFtzcmNxKzIqc3Jjc3RyaWRlcV0KICAg ICBsZWEgICAgIHNyY3EsIFtzcmNxK3NyY3N0cmlkZXEqMl0KKyAgICBwdW5wY2tsYncgbTAsIG0z CisgICAgcHVucGNrbGJ3IG0xLCBtNAogCiAubmV4dHJvdzoKICAgICBtb3ZoICAgICAgbTUsIFtz cmNxK3NyY3N0cmlkZXFdICAgICAgOyByZWFkIG5ldyByb3cKLSAgICBtb3ZhICAgICAgbTYsIG0w Ci0gICAgcHVucGNrbGJ3IG02LCBtNQorICAgIHBtYWRkdWJzdyBtMCwgW215cS00OF0KKyAgICBw dW5wY2tsYncgbTIsIG01CisgICAgcG1hZGR1YnN3IG02LCBtMSwgW215cS0zMl0KKyAgICBwbWFk ZHVic3cgbTcsIG0yLCBbbXlxLTE2XQorICAgIGFkZCAgICAgc3JjcSwgc3Jjc3RyaWRlcQorICAg IHBhZGR3ICAgICBtNiwgbTAKICAgICBtb3ZhICAgICAgbTAsIG0xCi0gICAgcHVucGNrbGJ3IG0x LCBtMgotICAgIG1vdmEgICAgICBtNywgbTMKLSAgICBwdW5wY2tsYncgbTcsIG00Ci0gICAgcG1h ZGR1YnN3IG02LCBbbXlxLTQ4XQotICAgIHBtYWRkdWJzdyBtMSwgW215cS0zMl0KLSAgICBwbWFk ZHVic3cgbTcsIFtteXEtMTZdCi0gICAgYWRkICAgICAgc3JjcSwgc3Jjc3RyaWRlcQotICAgIHBh ZGRzdyAgICBtNiwgbTEKICAgICBwYWRkc3cgICAgbTYsIG03CiAgICAgbW92YSAgICAgIG0xLCBt MgogICAgIG1vdmEgICAgICBtMiwgbTMKLS0gCjIuNTIuMAoKCkZyb20gMDVkYWMwOGM3NmIxMzZm ZWQ5Nzc1OWMzMjBkMzM5MWU4OGZmZGUxNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog QW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6 IFN1biwgMjMgTm92IDIwMjUgMjM6Mjk6MjQgKzAxMDAKU3ViamVjdDogW1BBVENIIDIwNi8zMDRd IGF2Y29kZWMveDg2L3ZwOGRzcDogRG9uJ3QgdXNlIE1NWCByZWdpc3RlcnMgaW4KIGZmX3B1dF92 cDhfZXBlbDRfdjZfc3NzZTMKClN3aXRjaGluZyB0byB4bW0gcmVnaXN0ZXJzIGFsbG93cyB0byBw cm9jZXNzIHR3byByb3dzIGluIHBhcmFsbGVsLApsZWFkaW5nIHRvIHNwZWVkdXBzLiBJdCBpcyBh bHNvIEFCSSBjb21wbGlhbnQgKG5vIG1vcmUgbWlzc2luZyBlbW1zKS4KCk9sZCBiZW5jaG1hcmtz Ogp2cDhfcHV0X2VwZWw0X3Y2X2M6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MTMyLjggKCAxLjAweCkKdnA4X3B1dF9lcGVsNF92Nl9zc3NlMzogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAzNC4zICggMy44N3gpCgpOZXcgYmVuY2htYXJrczoKdnA4X3B1dF9lcGVs NF92Nl9jOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzMS41ICggMS4wMHgp CnZwOF9wdXRfZXBlbDRfdjZfc3NzZTM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MjcuMSAoIDQuODZ4KQoKUmV2aWV3ZWQtYnk6IFJvbmFsZCBTLiBCdWx0amUgPHJzYnVsdGplQGdt YWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWlu aGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGliYXZjb2RlYy94ODYvdnA4ZHNwLmFzbSB8IDQ4ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQz IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94 ODYvdnA4ZHNwLmFzbSBiL2xpYmF2Y29kZWMveDg2L3ZwOGRzcC5hc20KaW5kZXggN2NiNzI5YTQ0 My4uNDc3ODk0NGFjNyAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvdnA4ZHNwLmFzbQorKysg Yi9saWJhdmNvZGVjL3g4Ni92cDhkc3AuYXNtCkBAIC0xNjIsNiArMTYyLDEyIEBAIFNFQ1RJT04g LnRleHQKIDstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICVtYWNybyBGSUxURVJfU1NTRTMgMQor JWlmICUxID09IDQKKyVkZWZpbmUgTU9WIG1vdmQKKyVlbHNlCislZGVmaW5lIE1PViBtb3ZxCisl ZW5kaWYKKwogY2dsb2JhbCBwdXRfdnA4X2VwZWwlMV9oNiwgNiwgNiArIG5waWNyZWdzLCA4LCBk c3QsIGRzdHN0cmlkZSwgc3JjLCBzcmNzdHJpZGUsIGhlaWdodCwgbXgsIHBpY3JlZwogICAgIGxl YSAgICAgIG14ZCwgW214cSozXQogICAgIG1vdmEgICAgICBtMywgW2ZpbHRlcl9oNl9zaHVmMl0K QEAgLTI2OSw2ICsyNzUsNyBAQCBjZ2xvYmFsIHB1dF92cDhfZXBlbCUxX3Y0LCA3LCA3LCA4LCBk c3QsIGRzdHN0cmlkZSwgc3JjLCBzcmNzdHJpZGUsIGhlaWdodCwgcGljcgogICAgIGpnIC5uZXh0 cm93CiAgICAgUkVUCiAKK0lOSVRfWE1NIHNzc2UzCiBjZ2xvYmFsIHB1dF92cDhfZXBlbCUxX3Y2 LCA3LCA3LCA4LCBkc3QsIGRzdHN0cmlkZSwgc3JjLCBzcmNzdHJpZGUsIGhlaWdodCwgcGljcmVn LCBteQogICAgIGxlYSAgICAgIG15ZCwgW215cSozXQogJWlmIFBJQwpAQCAtMjc5LDE0ICsyODYs NDQgQEAgY2dsb2JhbCBwdXRfdnA4X2VwZWwlMV92NiwgNywgNywgOCwgZHN0LCBkc3RzdHJpZGUs IHNyYywgc3Jjc3RyaWRlLCBoZWlnaHQsIHBpY3IKICAgICA7IHJlYWQgNSBsaW5lcwogICAgIG1v diAgcGljcmVncSwgc3Jjc3RyaWRlcQogICAgIG5lZyAgcGljcmVncQotICAgIG1vdmggICAgICBt MCwgW3NyY3ErMipwaWNyZWdxXQotICAgIG1vdmggICAgICBtMSwgW3NyY3ErcGljcmVncV0KLSAg ICBtb3ZoICAgICAgbTIsIFtzcmNxXQotICAgIG1vdmggICAgICBtMywgW3NyY3Erc3Jjc3RyaWRl cV0KLSAgICBtb3ZoICAgICAgbTQsIFtzcmNxKzIqc3Jjc3RyaWRlcV0KKyAgICBNT1YgICAgICAg bTAsIFtzcmNxKzIqcGljcmVncV0KKyAgICBNT1YgICAgICAgbTEsIFtzcmNxK3BpY3JlZ3FdCisg ICAgTU9WICAgICAgIG0yLCBbc3JjcV0KKyAgICBNT1YgICAgICAgbTMsIFtzcmNxK3NyY3N0cmlk ZXFdCisgICAgTU9WICAgICAgIG00LCBbc3JjcSsyKnNyY3N0cmlkZXFdCiAgICAgbGVhICAgICBz cmNxLCBbc3JjcStzcmNzdHJpZGVxKjJdCiAgICAgcHVucGNrbGJ3IG0wLCBtMwogICAgIHB1bnBj a2xidyBtMSwgbTQKKyVpZiAlMSA9PSA0CisgICAgcHVucGNrbHFkcSBtMCwgbTEKKworLm5leHQy cm93czoKKyAgICBtb3ZkICAgICAgIG01LCBbc3JjcStzcmNzdHJpZGVxXQorICAgIG1vdmQgICAg ICAgbTYsIFtzcmNxKzIqc3Jjc3RyaWRlcV0KKyAgICBwbWFkZHVic3cgIG0wLCBbbXlxLTQ4XQor ICAgIHB1bnBja2xidyAgbTIsIG01CisgICAgcHVucGNrbHFkcSBtMSwgbTIKKyAgICBwbWFkZHVi c3cgIG0xLCBbbXlxLTMyXQorICAgIHB1bnBja2xidyAgbTMsIG02CisgICAgcHVucGNrbHFkcSBt MiwgbTMKKyAgICBwYWRkdyAgICAgIG0wLCBtMQorICAgIHBtYWRkdWJzdyAgbTEsIG0yLCBbbXlx LTE2XQorICAgIGxlYSAgICAgIHNyY3EsIFtzcmNxKzIqc3Jjc3RyaWRlcV0KKyAgICBwYWRkc3cg ICAgIG0xLCBtMAorICAgIG1vdmEgICAgICAgbTAsIG0yCisgICAgcG11bGhyc3cgICBtMSwgW3B3 XzI1Nl0KKyAgICBtb3ZhICAgICAgIG0yLCBtNAorICAgIHBhY2t1c3diICAgbTEsIG0xCisgICAg bW92ZCAgIFtkc3RxXSwgbTEKKyAgICBtb3ZhICAgICAgIG00LCBtNgorICAgIHBzcmxkcSAgICAg bTEsIDQKKyAgICBtb3ZkIFtkc3RxK2RzdHN0cmlkZXFdLCBtMQorICAgIGxlYSAgICAgIGRzdHEs IFtkc3RxKzIqZHN0c3RyaWRlcV0KKyAgICBtb3ZhICAgICAgIG0xLCBtMworICAgIG1vdmEgICAg ICAgbTMsIG01CisgICAgc3ViICAgaGVpZ2h0ZCwgMgorICAgIGpnIC5uZXh0MnJvd3MKKyVlbHNl CiAKIC5uZXh0cm93OgogICAgIG1vdmggICAgICBtNSwgW3NyY3Erc3Jjc3RyaWRlcV0gICAgICA7 IHJlYWQgbmV3IHJvdwpAQCAtMzEwLDYgKzM0Nyw3IEBAIGNnbG9iYWwgcHV0X3ZwOF9lcGVsJTFf djYsIDcsIDcsIDgsIGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0cmlkZSwgaGVpZ2h0LCBwaWNy CiAgICAgYWRkICAgICAgZHN0cSwgZHN0c3RyaWRlcQogICAgIGRlYyAgIGhlaWdodGQgICAgICAg ICAgICAgICAgICAgICAgICAgIDsgbmV4dCByb3cKICAgICBqZyAubmV4dHJvdworJWVuZGlmCiAg ICAgUkVUCiAlZW5kbWFjcm8KIAotLSAKMi41Mi4wCgoKRnJvbSAyM2ExM2IyYmFkYzNlY2NkZDE3 NGJjZjIzYmQ3YTUyZWRmNzViNWViIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRy ZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogTW9u LCAyNCBOb3YgMjAyNSAwOToxNjoyNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjA3LzMwNF0gYXZj b2RlYy94ODYvdnA4ZHNwOiBEb24ndCB1c2UgTU1YIHJlZ2lzdGVycyBpbgogZmZfcHV0X3ZwOF9l cGVsNF92NF9zc3NlMwoKU3dpdGNoaW5nIHRvIHhtbSByZWdpc3RlcnMgYWxsb3dzIHRvIHByb2Nl c3MgdHdvIHJvd3MgaW4gcGFyYWxsZWwsCmxlYWRpbmcgdG8gc3BlZWR1cHMuIEl0IGlzIGFsc28g QUJJIGNvbXBsaWFudCAobm8gbW9yZSBtaXNzaW5nIGVtbXMpLgoKT2xkIGJlbmNobWFya3M6CnZw OF9wdXRfZXBlbDRfdjRfYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTYu OCAoIDEuMDB4KQp2cDhfcHV0X2VwZWw0X3Y0X3Nzc2UzOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDI4LjIgKCAzLjQzeCkKCk5ldyBiZW5jaG1hcmtzOgp2cDhfcHV0X2VwZWw0X3Y0 X2M6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDk1LjEgKCAxLjAweCkKdnA4 X3B1dF9lcGVsNF92NF9zc3NlMzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMi44 ICggNC4xN3gpCgpSZXZpZXdlZC1ieTogUm9uYWxkIFMuIEJ1bHRqZSA8cnNidWx0amVAZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJk dEBvdXRsb29rLmNvbT4KLS0tCiBsaWJhdmNvZGVjL3g4Ni92cDhkc3AuYXNtIHwgMzYgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzEgaW5zZXJ0 aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni92cDhk c3AuYXNtIGIvbGliYXZjb2RlYy94ODYvdnA4ZHNwLmFzbQppbmRleCA0Nzc4OTQ0YWM3Li5mZDYw ZmVhZjFmIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4Ni92cDhkc3AuYXNtCisrKyBiL2xpYmF2 Y29kZWMveDg2L3ZwOGRzcC5hc20KQEAgLTIzOCw2ICsyMzgsNyBAQCBjZ2xvYmFsIHB1dF92cDhf ZXBlbCUxX2g0LCA2LCA2ICsgbnBpY3JlZ3MsIDcsIGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0 cmlkZSwgaAogICAgIGpnIC5uZXh0cm93CiAgICAgUkVUCiAKK0lOSVRfWE1NIHNzc2UzCiBjZ2xv YmFsIHB1dF92cDhfZXBlbCUxX3Y0LCA3LCA3LCA4LCBkc3QsIGRzdHN0cmlkZSwgc3JjLCBzcmNz dHJpZGUsIGhlaWdodCwgcGljcmVnLCBteQogICAgIHNobCAgICAgIG15ZCwgNAogJWlmIFBJQwpA QCAtMjUwLDEzICsyNTEsMzggQEAgY2dsb2JhbCBwdXRfdnA4X2VwZWwlMV92NCwgNywgNywgOCwg ZHN0LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3RyaWRlLCBoZWlnaHQsIHBpY3IKICAgICA7IHJlYWQg MyBsaW5lcwogICAgIG1vdiAgcGljcmVncSwgc3Jjc3RyaWRlcQogICAgIG5lZyAgcGljcmVncQot ICAgIG1vdmggICAgICBtMCwgW3NyY3ErcGljcmVncV0KLSAgICBtb3ZoICAgICAgbTEsIFtzcmNx XQotICAgIG1vdmggICAgICBtMiwgW3NyY3Erc3Jjc3RyaWRlcV0KKyAgICBNT1YgICAgICAgbTAs IFtzcmNxK3BpY3JlZ3FdCisgICAgTU9WICAgICAgIG0xLCBbc3JjcV0KKyAgICBNT1YgICAgICAg bTIsIFtzcmNxK3NyY3N0cmlkZXFdCisgICAgbGVhICAgICBzcmNxLCBbc3JjcSsyKnNyY3N0cmlk ZXFdCiAgICAgcHVucGNrbGJ3IG0wLCBtMgogCislaWYgJTEgPT0gNAorLm5leHQycm93czoKKyAg ICBtb3ZkICAgICAgIG0zLCBbc3JjcV0KKyAgICBtb3ZkICAgICAgIG00LCBbc3JjcStzcmNzdHJp ZGVxXQorICAgIHB1bnBja2xidyAgbTEsIG0zCisgICAgcHVucGNrbHFkcSBtMCwgbTEKKyAgICBw dW5wY2tsYncgIG0yLCBtNAorICAgIHBtYWRkdWJzdyAgbTAsIG01CisgICAgcHVucGNrbHFkcSBt MSwgbTIKKyAgICBwbWFkZHVic3cgIG0xLCBtNgorICAgIGxlYSAgICAgc3JjcSwgW3NyY3ErMipz cmNzdHJpZGVxXQorICAgIHBhZGRzdyAgICAgbTEsIG0wCisgICAgcG11bGhyc3cgICBtMSwgbTcK KyAgICBtb3ZhICAgICAgIG0wLCBtMgorICAgIHBhY2t1c3diICAgbTEsIG0xCisgICAgbW92ZCAg IFtkc3RxXSwgbTEKKyAgICBtb3ZhICAgICAgIG0yLCBtNAorICAgIHBzcmxkcSAgICAgbTEsIDQK KyAgICBtb3ZkIFtkc3RxK2RzdHN0cmlkZXFdLCBtMQorICAgIG1vdmEgICAgICAgbTEsIG0zCisg ICAgbGVhICAgICAgZHN0cSwgW2RzdHErMipkc3RzdHJpZGVxXQorICAgIHN1YiAgIGhlaWdodGQs IDIKKyAgICBqZyAubmV4dDJyb3dzCislZWxzZQogLm5leHRyb3c6Ci0gICAgbW92aCAgICAgIG0z LCBbc3JjcSsyKnNyY3N0cmlkZXFdICAgICAgOyByZWFkIG5ldyByb3cKKyAgICBtb3ZoICAgICAg bTMsIFtzcmNxXSAgICAgIDsgcmVhZCBuZXcgcm93CiAgICAgcG1hZGR1YnN3IG0wLCBtNQogICAg IHB1bnBja2xidyBtMSwgbTMKICAgICBwbWFkZHVic3cgbTQsIG0xLCBtNgpAQCAtMjczLDkgKzI5 OSw5IEBAIGNnbG9iYWwgcHV0X3ZwOF9lcGVsJTFfdjQsIDcsIDcsIDgsIGRzdCwgZHN0c3RyaWRl LCBzcmMsIHNyY3N0cmlkZSwgaGVpZ2h0LCBwaWNyCiAgICAgYWRkICAgICAgZHN0cSwgZHN0c3Ry aWRlcQogICAgIGRlYyAgIGhlaWdodGQgICAgICAgICAgICAgICAgICAgICAgICAgIDsgbmV4dCBy b3cKICAgICBqZyAubmV4dHJvdworJWVuZGlmCiAgICAgUkVUCiAKLUlOSVRfWE1NIHNzc2UzCiBj Z2xvYmFsIHB1dF92cDhfZXBlbCUxX3Y2LCA3LCA3LCA4LCBkc3QsIGRzdHN0cmlkZSwgc3JjLCBz cmNzdHJpZGUsIGhlaWdodCwgcGljcmVnLCBteQogICAgIGxlYSAgICAgIG15ZCwgW215cSozXQog JWlmIFBJQwotLSAKMi41Mi4wCgoKRnJvbSBjYWMwMmI0ZjU2NzNiMTk4YThlNDFiMzFlYWQ4NjEy NGQ2NDFjMzU1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFy ZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogTW9uLCAyNCBOb3YgMjAy NSAxMzoyOTo0MiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjA4LzMwNF0gYXZjb2RlYy94ODYvdnA4 ZHNwOiBEb24ndCB1c2UgTU1YIHJlZ2lzdGVycyBpbgogZmZfcHV0X3ZwOF9lcGVsNF9oNF9zc3Nl MwoKRG91YmxpbmcgdGhlIHJlZ2lzdGVyIHdpZHRoIGFsbG93cyB0byB1c2Ugb25seSBvbmUgcHNo dWZiIGFuZCBwbWFkZHVic3cuCgpPbGQgYmVuY2htYXJrczoKdnA4X3B1dF9lcGVsNF9oNF9jOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4Mi44ICggMS4wMHgpCnZwOF9wdXRf ZXBlbDRfaDRfc3NzZTM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMuOSAoIDUu OTZ4KQoKTmV3IGJlbmNobWFya3M6CnZwOF9wdXRfZXBlbDRfaDRfYzogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgODIuNyAoIDEuMDB4KQp2cDhfcHV0X2VwZWw0X2g0X3Nzc2Uz OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjcgKCA3LjA4eCkKClJldmlld2Vk LWJ5OiBSb25hbGQgUy4gQnVsdGplIDxyc2J1bHRqZUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0K IGxpYmF2Y29kZWMveDg2L3ZwOGRzcC5hc20gfCAzNiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2L3ZwOGRzcC5hc20gYi9saWJhdmNvZGVj L3g4Ni92cDhkc3AuYXNtCmluZGV4IGZkNjBmZWFmMWYuLjZjMzY1ODk4Y2UgMTAwNjQ0Ci0tLSBh L2xpYmF2Y29kZWMveDg2L3ZwOGRzcC5hc20KKysrIGIvbGliYXZjb2RlYy94ODYvdnA4ZHNwLmFz bQpAQCAtMjQsNiArMjQsMTUgQEAKIAogU0VDVElPTl9ST0RBVEEKIAorZm91cnRhcF9maWx0ZXI0 X2JfbTogdGltZXMgNCBkYiAgLTYsIDEyMworICAgICAgICAgICAgICAgICAgICAgdGltZXMgNCBk YiAgMTIsICAtMQorICAgICAgICAgICAgICAgICAgICAgdGltZXMgNCBkYiAgLTksICA5MworICAg ICAgICAgICAgICAgICAgICAgdGltZXMgNCBkYiAgNTAsICAtNgorICAgICAgICAgICAgICAgICAg ICAgdGltZXMgNCBkYiAgLTYsICA1MAorICAgICAgICAgICAgICAgICAgICAgdGltZXMgNCBkYiAg OTMsICAtOQorICAgICAgICAgICAgICAgICAgICAgdGltZXMgNCBkYiAgLTEsICAxMgorICAgICAg ICAgICAgICAgICAgICAgdGltZXMgNCBkYiAxMjMsICAtNgorCiBmb3VydGFwX2ZpbHRlcl9oYl9t OiB0aW1lcyA4IGRiICAtNiwgMTIzCiAgICAgICAgICAgICAgICAgICAgICB0aW1lcyA4IGRiICAx MiwgIC0xCiAgICAgICAgICAgICAgICAgICAgICB0aW1lcyA4IGRiICAtOSwgIDkzCkBAIC0xMTcs NiArMTI2LDcgQEAgYmlsaW5lYXJfZmlsdGVyX3ZiX206IHRpbWVzIDggZGIgNywgMQogJWlmIFBJ QwogJWRlZmluZSBmb3VydGFwX2ZpbHRlcl9oYiAgcGljcmVncQogJWRlZmluZSBmb3VydGFwX2Zp bHRlcl9iICAgcGljcmVncQorJWRlZmluZSBmb3VydGFwX2ZpbHRlcjRfYiAgcGljcmVncQogJWRl ZmluZSBzaXh0YXBfZmlsdGVyX2hiICAgcGljcmVncQogJWRlZmluZSBzaXh0YXBfZmlsdGVyX2Ig ICAgcGljcmVncQogJWRlZmluZSBmb3VydGFwX2ZpbHRlcl92ICAgcGljcmVncQpAQCAtMTI3LDYg KzEzNyw3IEBAIGJpbGluZWFyX2ZpbHRlcl92Yl9tOiB0aW1lcyA4IGRiIDcsIDEKICVlbHNlCiAl ZGVmaW5lIGZvdXJ0YXBfZmlsdGVyX2hiICBmb3VydGFwX2ZpbHRlcl9oYl9tCiAlZGVmaW5lIGZv dXJ0YXBfZmlsdGVyX2IgICBmb3VydGFwX2ZpbHRlcl9iX20KKyVkZWZpbmUgZm91cnRhcF9maWx0 ZXI0X2IgIGZvdXJ0YXBfZmlsdGVyNF9iX20KICVkZWZpbmUgc2l4dGFwX2ZpbHRlcl9oYiAgIHNp eHRhcF9maWx0ZXJfaGJfbQogJWRlZmluZSBzaXh0YXBfZmlsdGVyX2IgICAgc2l4dGFwX2ZpbHRl cl9iX20KICVkZWZpbmUgZm91cnRhcF9maWx0ZXJfdiAgIGZvdXJ0YXBfZmlsdGVyX3ZfbQpAQCAt MTM2LDYgKzE0Nyw3IEBAIGJpbGluZWFyX2ZpbHRlcl92Yl9tOiB0aW1lcyA4IGRiIDcsIDEKICVk ZWZpbmUgbnBpY3JlZ3MgMAogJWVuZGlmCiAKK2ZpbHRlcjRfaDRfc2h1ZjogZGIgMCwgMSwgMSwg MiwgMiwgMywgMywgNCwgMiwgMywgMywgIDQsIDQsICA1LCA1LCAgNgogZmlsdGVyX2gyX3NodWY6 ICBkYiAwLCAxLCAxLCAyLCAyLCAzLCAzLCA0LCA0LCA1LCA1LCAgNiwgNiwgIDcsICA3LCAgOAog ZmlsdGVyX2g0X3NodWY6ICBkYiAyLCAzLCAzLCA0LCA0LCA1LCA1LCA2LCA2LCA3LCA3LCAgOCwg OCwgIDksICA5LCAxMAogCkBAIC0yMDgsOSArMjIwLDExIEBAIGNnbG9iYWwgcHV0X3ZwOF9lcGVs JTFfaDYsIDYsIDYgKyBucGljcmVncywgOCwgZHN0LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3RyaWRl LCBoCiAgICAgamcgLm5leHRyb3cKICAgICBSRVQKIAotY2dsb2JhbCBwdXRfdnA4X2VwZWwlMV9o NCwgNiwgNiArIG5waWNyZWdzLCA3LCBkc3QsIGRzdHN0cmlkZSwgc3JjLCBzcmNzdHJpZGUsIGhl aWdodCwgbXgsIHBpY3JlZwotICAgIHNobCAgICAgIG14ZCwgNAorSU5JVF9YTU0gc3NzZTMKK2Nn bG9iYWwgcHV0X3ZwOF9lcGVsJTFfaDQsIDYsIDYgKyBucGljcmVncywgNishISglMSA9PSA4KSwg ZHN0LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3RyaWRlLCBoZWlnaHQsIG14LCBwaWNyZWcKICAgICBt b3ZhICAgICAgbTIsIFtwd18yNTZdCislaWYgJTEgPT0gOAorICAgIHNobCAgICAgIG14ZCwgNAog ICAgIG1vdmEgICAgICBtMywgW2ZpbHRlcl9oMl9zaHVmXQogICAgIG1vdmEgICAgICBtNCwgW2Zp bHRlcl9oNF9zaHVmXQogJWlmIFBJQwpAQCAtMjE4LDE5ICsyMzIsMzQgQEAgY2dsb2JhbCBwdXRf dnA4X2VwZWwlMV9oNCwgNiwgNiArIG5waWNyZWdzLCA3LCBkc3QsIGRzdHN0cmlkZSwgc3JjLCBz cmNzdHJpZGUsIGgKICVlbmRpZgogICAgIG1vdmEgICAgICBtNSwgW2ZvdXJ0YXBfZmlsdGVyX2hi K214cS0xNl0gOyBzZXQgdXAgNHRhcCBmaWx0ZXIgaW4gYnl0ZXMKICAgICBtb3ZhICAgICAgbTYs IFtmb3VydGFwX2ZpbHRlcl9oYitteHFdCislZWxzZQorICAgIHNobCAgICAgIG14ZCwgMworICAg IG1vdmEgICAgICBtMywgW2ZpbHRlcjRfaDRfc2h1Zl0KKyVpZiBQSUMKKyAgICBsZWEgIHBpY3Jl Z3EsIFtmb3VydGFwX2ZpbHRlcjRfYl9tXQorJWVuZGlmCisgICAgbW92YSAgICAgIG01LCBbZm91 cnRhcF9maWx0ZXI0X2IrbXhxLThdCislZW5kaWYKIAogLm5leHRyb3c6CislaWYgJTEgPT0gNAor ICAgIG1vdnEgICAgICBtMCwgW3NyY3EtMV0KKyAgICBwc2h1ZmIgICAgbTAsIG0zCisgICAgcG1h ZGR1YnN3IG0wLCBtNQorICAgIG1vdmhscHMgICBtMSwgbTAKKyVlbHNlCiAgICAgbW92dSAgICAg IG0wLCBbc3JjcS0xXQogICAgIG1vdmEgICAgICBtMSwgbTAKICAgICBwc2h1ZmIgICAgbTAsIG0z CiAgICAgcHNodWZiICAgIG0xLCBtNAogICAgIHBtYWRkdWJzdyBtMCwgbTUKICAgICBwbWFkZHVi c3cgbTEsIG02CislZW5kaWYKICAgICBhZGQgICAgIHNyY3EsIHNyY3N0cmlkZXEKICAgICBwYWRk c3cgICAgbTAsIG0xCiAgICAgcG11bGhyc3cgIG0wLCBtMgogICAgIHBhY2t1c3diICBtMCwgbTAK LSAgICBtb3ZoICBbZHN0cV0sIG0wICAgICAgICA7IHN0b3JlCisgICAgTU9WICAgW2RzdHFdLCBt MCAgICAgICAgOyBzdG9yZQogCiAgICAgOyBnbyB0byBuZXh0IGxpbmUKICAgICBhZGQgICAgIGRz dHEsIGRzdHN0cmlkZXEKQEAgLTIzOCw3ICsyNjcsNiBAQCBjZ2xvYmFsIHB1dF92cDhfZXBlbCUx X2g0LCA2LCA2ICsgbnBpY3JlZ3MsIDcsIGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0cmlkZSwg aAogICAgIGpnIC5uZXh0cm93CiAgICAgUkVUCiAKLUlOSVRfWE1NIHNzc2UzCiBjZ2xvYmFsIHB1 dF92cDhfZXBlbCUxX3Y0LCA3LCA3LCA4LCBkc3QsIGRzdHN0cmlkZSwgc3JjLCBzcmNzdHJpZGUs IGhlaWdodCwgcGljcmVnLCBteQogICAgIHNobCAgICAgIG15ZCwgNAogJWlmIFBJQwotLSAKMi41 Mi4wCgoKRnJvbSAwNGI3Nzc4M2MwNDI5NTVkNmNhYzI3NTEyNDQ5ZTUyMDhhMjBkMzFlIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhl aW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogTW9uLCAyNCBOb3YgMjAyNSAxNjoxMToxMCArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMjA5LzMwNF0gYXZjb2RlYy94ODYvdnA4ZHNwOiBEb24ndCB1c2Ug TU1YIHJlZ2lzdGVycyBpbgogZmZfcHV0X3ZwOF9lcGVsNF9oNl9zc3NlMwoKRG91YmxpbmcgdGhl IHJlZ2lzdGVyIHdpZHRoIGFsbG93ZWQgdG8gYXZvaWQgYSBwc2h1ZmIgYW5kIGEgcG1hZGR1YnN3 LgoKT2xkIGJlbmNobWFya3M6CnZwOF9wdXRfZXBlbDRfaDZfYzogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAxMTUuOSAoIDEuMDB4KQp2cDhfcHV0X2VwZWw0X2g2X3Nzc2UzOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwLjIgKCA1Ljc0eCkKdnA4X3B1dF9lcGVs NF9oNnY0X2M6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI3Ni4zICggMS4wMHgp CnZwOF9wdXRfZXBlbDRfaDZ2NF9zc3NlMzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg NTguNiAoIDQuNzF4KQp2cDhfcHV0X2VwZWw0X2g2djZfYzogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMzYzLjYgKCAxLjAweCkKdnA4X3B1dF9lcGVsNF9oNnY2X3Nzc2UzOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA2Mi41ICggNS44MngpCgpOZXcgYmVuY2htYXJrczoK dnA4X3B1dF9lcGVsNF9oNl9jOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEx Ni40ICggMS4wMHgpCnZwOF9wdXRfZXBlbDRfaDZfc3NzZTM6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMTYuMCAoIDcuMjl4KQp2cDhfcHV0X2VwZWw0X2g2djRfYzogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMjgwLjkgKCAxLjAweCkKdnA4X3B1dF9lcGVsNF9oNnY0 X3Nzc2UzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NC4zICggNi4zM3gpCnZwOF9w dXRfZXBlbDRfaDZ2Nl9jOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNjUuNiAo IDEuMDB4KQp2cDhfcHV0X2VwZWw0X2g2djZfc3NzZTM6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDUzLjEgKCA2Ljg5eCkKClJldmlld2VkLWJ5OiBSb25hbGQgUy4gQnVsdGplIDxyc2J1 bHRqZUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVh cy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIGxpYmF2Y29kZWMveDg2L3ZwOGRzcC5hc20g fCA1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCAzOCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJh dmNvZGVjL3g4Ni92cDhkc3AuYXNtIGIvbGliYXZjb2RlYy94ODYvdnA4ZHNwLmFzbQppbmRleCA2 YzM2NTg5OGNlLi4yYTY2ZTUxZGE2IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4Ni92cDhkc3Au YXNtCisrKyBiL2xpYmF2Y29kZWMveDg2L3ZwOGRzcC5hc20KQEAgLTMzLDYgKzMzLDE2IEBAIGZv dXJ0YXBfZmlsdGVyNF9iX206IHRpbWVzIDQgZGIgIC02LCAxMjMKICAgICAgICAgICAgICAgICAg ICAgIHRpbWVzIDQgZGIgIC0xLCAgMTIKICAgICAgICAgICAgICAgICAgICAgIHRpbWVzIDQgZGIg MTIzLCAgLTYKIAorc2l4dGFwX2ZpbHRlcjRfaGJfbTogdGltZXMgOCBkYiAgIDIsIC0xMQorICAg ICAgICAgICAgICAgICAgICAgdGltZXMgNCBkYiAxMDgsICAtOAorICAgICAgICAgICAgICAgICAg ICAgdGltZXMgNCBkYiAgMzYsICAgMQorICAgICAgICAgICAgICAgICAgICAgdGltZXMgOCBkYiAg IDMsIC0xNgorICAgICAgICAgICAgICAgICAgICAgdGltZXMgNCBkYiAgNzcsIC0xNgorICAgICAg ICAgICAgICAgICAgICAgdGltZXMgNCBkYiAgNzcsICAgMworICAgICAgICAgICAgICAgICAgICAg dGltZXMgOCBkYiAgIDEsICAtOAorICAgICAgICAgICAgICAgICAgICAgdGltZXMgNCBkYiAgMzYs IC0xMQorICAgICAgICAgICAgICAgICAgICAgdGltZXMgNCBkYiAxMDgsICAgMgorCiBmb3VydGFw X2ZpbHRlcl9oYl9tOiB0aW1lcyA4IGRiICAtNiwgMTIzCiAgICAgICAgICAgICAgICAgICAgICB0 aW1lcyA4IGRiICAxMiwgIC0xCiAgICAgICAgICAgICAgICAgICAgICB0aW1lcyA4IGRiICAtOSwg IDkzCkBAIC0xMjksNiArMTM5LDcgQEAgYmlsaW5lYXJfZmlsdGVyX3ZiX206IHRpbWVzIDggZGIg NywgMQogJWRlZmluZSBmb3VydGFwX2ZpbHRlcjRfYiAgcGljcmVncQogJWRlZmluZSBzaXh0YXBf ZmlsdGVyX2hiICAgcGljcmVncQogJWRlZmluZSBzaXh0YXBfZmlsdGVyX2IgICAgcGljcmVncQor JWRlZmluZSBzaXh0YXBfZmlsdGVyNF9oYiAgcGljcmVncQogJWRlZmluZSBmb3VydGFwX2ZpbHRl cl92ICAgcGljcmVncQogJWRlZmluZSBzaXh0YXBfZmlsdGVyX3YgICAgcGljcmVncQogJWRlZmlu ZSBiaWxpbmVhcl9maWx0ZXJfdncgcGljcmVncQpAQCAtMTQwLDYgKzE1MSw3IEBAIGJpbGluZWFy X2ZpbHRlcl92Yl9tOiB0aW1lcyA4IGRiIDcsIDEKICVkZWZpbmUgZm91cnRhcF9maWx0ZXI0X2Ig IGZvdXJ0YXBfZmlsdGVyNF9iX20KICVkZWZpbmUgc2l4dGFwX2ZpbHRlcl9oYiAgIHNpeHRhcF9m aWx0ZXJfaGJfbQogJWRlZmluZSBzaXh0YXBfZmlsdGVyX2IgICAgc2l4dGFwX2ZpbHRlcl9iX20K KyVkZWZpbmUgc2l4dGFwX2ZpbHRlcjRfaGIgIHNpeHRhcF9maWx0ZXI0X2hiX20KICVkZWZpbmUg Zm91cnRhcF9maWx0ZXJfdiAgIGZvdXJ0YXBfZmlsdGVyX3ZfbQogJWRlZmluZSBzaXh0YXBfZmls dGVyX3YgICAgc2l4dGFwX2ZpbHRlcl92X20KICVkZWZpbmUgYmlsaW5lYXJfZmlsdGVyX3Z3IGJp bGluZWFyX2ZpbHRlcl92d19tCkBAIC0xNDgsNiArMTYwLDcgQEAgYmlsaW5lYXJfZmlsdGVyX3Zi X206IHRpbWVzIDggZGIgNywgMQogJWVuZGlmCiAKIGZpbHRlcjRfaDRfc2h1ZjogZGIgMCwgMSwg MSwgMiwgMiwgMywgMywgNCwgMiwgMywgMywgIDQsIDQsICA1LCA1LCAgNgorZmlsdGVyNF9oNl9z aHVmOiBkYiAxLCAzLCAyLCA0LCAzLCA1LCA0LCA2LCAyLCA0LCAzLCAgNSwgNCwgIDYsIDUsICA3 CiBmaWx0ZXJfaDJfc2h1ZjogIGRiIDAsIDEsIDEsIDIsIDIsIDMsIDMsIDQsIDQsIDUsIDUsICA2 LCA2LCAgNywgIDcsICA4CiBmaWx0ZXJfaDRfc2h1ZjogIGRiIDIsIDMsIDMsIDQsIDQsIDUsIDUs IDYsIDYsIDcsIDcsICA4LCA4LCAgOSwgIDksIDEwCiAKQEAgLTE4MCw3ICsxOTMsMTYgQEAgU0VD VElPTiAudGV4dAogJWRlZmluZSBNT1YgbW92cQogJWVuZGlmCiAKLWNnbG9iYWwgcHV0X3ZwOF9l cGVsJTFfaDYsIDYsIDYgKyBucGljcmVncywgOCwgZHN0LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3Ry aWRlLCBoZWlnaHQsIG14LCBwaWNyZWcKK2NnbG9iYWwgcHV0X3ZwOF9lcGVsJTFfaDYsIDYsIDYg KyBucGljcmVncywgNisyKiglMT09OCksIGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0cmlkZSwg aGVpZ2h0LCBteCwgcGljcmVnCislaWYgJTEgPT0gNAorICAgIG1vdmEgICAgICBtMywgW2ZpbHRl cjRfaDZfc2h1Zl0KKyVpZiBQSUMKKyAgICBsZWEgIHBpY3JlZ3EsIFtzaXh0YXBfZmlsdGVyNF9o Yl9tXQorJWVuZGlmCisgICAgc2hsICAgICAgbXhkLCA0CisgICAgbW92YSAgICAgIG00LCBbc2l4 dGFwX2ZpbHRlcjRfaGIrbXhxLTMyXQorICAgIG1vdmEgICAgICBtNSwgW3NpeHRhcF9maWx0ZXI0 X2hiK214cS0xNl0KKyVlbHNlCiAgICAgbGVhICAgICAgbXhkLCBbbXhxKjNdCiAgICAgbW92YSAg ICAgIG0zLCBbZmlsdGVyX2g2X3NodWYyXQogICAgIG1vdmEgICAgICBtNCwgW2ZpbHRlcl9oNl9z aHVmM10KQEAgLTE5MCwyOSArMjEyLDM1IEBAIGNnbG9iYWwgcHV0X3ZwOF9lcGVsJTFfaDYsIDYs IDYgKyBucGljcmVncywgOCwgZHN0LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3RyaWRlLCBoCiAgICAg bW92YSAgICAgIG01LCBbc2l4dGFwX2ZpbHRlcl9oYitteHEqOC00OF0gOyBzZXQgdXAgNnRhcCBm aWx0ZXIgaW4gYnl0ZXMKICAgICBtb3ZhICAgICAgbTYsIFtzaXh0YXBfZmlsdGVyX2hiK214cSo4 LTMyXQogICAgIG1vdmEgICAgICBtNywgW3NpeHRhcF9maWx0ZXJfaGIrbXhxKjgtMTZdCislZW5k aWYKIAogLm5leHRyb3c6CislaWYgJTEgPT0gNAorICAgIDsgd2UgbmVlZCBuaW5lIGJ5dGVzLCBz byB0d28gbG9hZHMKKyAgICBtb3ZxICAgICAgbTEsIFtzcmNxLTFdCisgICAgbW92cSAgICAgIG0w LCBbc3JjcS0yXQorICAgIHB1bnBja2xidyBtMCwgbTEKKyAgICBwc2h1ZmIgICAgbTEsIG0zCisg ICAgcG1hZGR1YnN3IG0xLCBtNQorICAgIHBtYWRkdWJzdyBtMCwgbTQKKyAgICBtb3ZobHBzICAg bTIsIG0xCislZWxzZQogICAgIG1vdnUgICAgICBtMCwgW3NyY3EtMl0KICAgICBtb3ZhICAgICAg bTEsIG0wCiAgICAgbW92YSAgICAgIG0yLCBtMAotJWlmIG1tc2l6ZSA9PSA4Ci07IEZvciBlcGVs NCwgd2UgbmVlZCA5IGJ5dGVzLCBidXQgb25seSA4IGdldCBsb2FkZWQ7IHRvIGNvbXBlbnNhdGUs IGRvIHRoZQotOyBzaHVmZmxlIHdpdGggYSBtZW1vcnkgb3BlcmFuZAotICAgIHB1bnBja2xidyBt MCwgW3NyY3ErM10KLSVlbHNlCiAgICAgcHNodWZiICAgIG0wLCBbZmlsdGVyX2g2X3NodWYxXQot JWVuZGlmCiAgICAgcHNodWZiICAgIG0xLCBtMwogICAgIHBzaHVmYiAgICBtMiwgbTQKICAgICBw bWFkZHVic3cgbTAsIG01CiAgICAgcG1hZGR1YnN3IG0xLCBtNgogICAgIHBtYWRkdWJzdyBtMiwg bTcKKyVlbmRpZgogICAgIGFkZCAgICAgc3JjcSwgc3Jjc3RyaWRlcQotICAgIHBhZGRzdyAgICBt MCwgbTEKKyAgICBwYWRkdyAgICAgbTAsIG0xCiAgICAgcGFkZHN3ICAgIG0wLCBtMgogICAgIHBt dWxocnN3ICBtMCwgW3B3XzI1Nl0KICAgICBwYWNrdXN3YiAgbTAsIG0wCi0gICAgbW92aCAgW2Rz dHFdLCBtMCAgICAgICAgOyBzdG9yZQorICAgIE1PViAgIFtkc3RxXSwgbTAgICAgICAgIDsgc3Rv cmUKIAogICAgIDsgZ28gdG8gbmV4dCBsaW5lCiAgICAgYWRkICAgICBkc3RxLCBkc3RzdHJpZGVx CkBAIC0yMjAsNyArMjQ4LDYgQEAgY2dsb2JhbCBwdXRfdnA4X2VwZWwlMV9oNiwgNiwgNiArIG5w aWNyZWdzLCA4LCBkc3QsIGRzdHN0cmlkZSwgc3JjLCBzcmNzdHJpZGUsIGgKICAgICBqZyAubmV4 dHJvdwogICAgIFJFVAogCi1JTklUX1hNTSBzc3NlMwogY2dsb2JhbCBwdXRfdnA4X2VwZWwlMV9o NCwgNiwgNiArIG5waWNyZWdzLCA2KyEhKCUxID09IDgpLCBkc3QsIGRzdHN0cmlkZSwgc3JjLCBz cmNzdHJpZGUsIGhlaWdodCwgbXgsIHBpY3JlZwogICAgIG1vdmEgICAgICBtMiwgW3B3XzI1Nl0K ICVpZiAlMSA9PSA4CkBAIC00MDUsOSArNDMyLDggQEAgY2dsb2JhbCBwdXRfdnA4X2VwZWwlMV92 NiwgNywgNywgOCwgZHN0LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3RyaWRlLCBoZWlnaHQsIHBpY3IK ICAgICBSRVQKICVlbmRtYWNybwogCi1JTklUX01NWCBzc3NlMwotRklMVEVSX1NTU0UzIDQKIElO SVRfWE1NIHNzc2UzCitGSUxURVJfU1NTRTMgNAogRklMVEVSX1NTU0UzIDgKIAogSU5JVF9YTU0g c3NlMgotLSAKMi41Mi4wCgoKRnJvbSA2ZDRlYjU4YWYxNDBmMzRhZThiZTAxYmI0MjVlZDMyZWI5 ZDQwOWVmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQg PGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogTW9uLCAyNCBOb3YgMjAyNSAy MDozMjo1OCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjEwLzMwNF0gYXZjb2RlYy94ODYvdnA4ZHNw OiBSZWR1Y2UgbnVtYmVyIG9mIGNvZWZmaWNpZW50CiB0YWJsZXMKCkJ5IGNoYW5naW5nIHRoZSBw ZXJtdXRhdGlvbnMgdXNlZCBpbiB0aGUgZXBlbDhfaHs0LDZ9IGNhc2UKd2UgY2FuIHNpbXBseSBy ZXVzZSB0aGUgY29lZmZpY2llbnQgdGFibGVzIGZyb20gdGhlIHZlcnRpY2FsIGVwZWwKZmlsdGVy cy4KClJldmlld2VkLWJ5OiBSb25hbGQgUy4gQnVsdGplIDxyc2J1bHRqZUBnbWFpbC5jb20+ClNp Z25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxv b2suY29tPgotLS0KIGxpYmF2Y29kZWMveDg2L3ZwOGRzcC5hc20gfCA1NCArKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25z KCspLCAzNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni92cDhkc3Au YXNtIGIvbGliYXZjb2RlYy94ODYvdnA4ZHNwLmFzbQppbmRleCAyYTY2ZTUxZGE2Li4zNDBmNmNj ODE4IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4Ni92cDhkc3AuYXNtCisrKyBiL2xpYmF2Y29k ZWMveDg2L3ZwOGRzcC5hc20KQEAgLTQzLDE1ICs0Myw2IEBAIHNpeHRhcF9maWx0ZXI0X2hiX206 IHRpbWVzIDggZGIgICAyLCAtMTEKICAgICAgICAgICAgICAgICAgICAgIHRpbWVzIDQgZGIgIDM2 LCAtMTEKICAgICAgICAgICAgICAgICAgICAgIHRpbWVzIDQgZGIgMTA4LCAgIDIKIAotZm91cnRh cF9maWx0ZXJfaGJfbTogdGltZXMgOCBkYiAgLTYsIDEyMwotICAgICAgICAgICAgICAgICAgICAg dGltZXMgOCBkYiAgMTIsICAtMQotICAgICAgICAgICAgICAgICAgICAgdGltZXMgOCBkYiAgLTks ICA5MwotICAgICAgICAgICAgICAgICAgICAgdGltZXMgOCBkYiAgNTAsICAtNgotICAgICAgICAg ICAgICAgICAgICAgdGltZXMgOCBkYiAgLTYsICA1MAotICAgICAgICAgICAgICAgICAgICAgdGlt ZXMgOCBkYiAgOTMsICAtOQotICAgICAgICAgICAgICAgICAgICAgdGltZXMgOCBkYiAgLTEsICAx MgotICAgICAgICAgICAgICAgICAgICAgdGltZXMgOCBkYiAxMjMsICAtNgotCiBmb3VydGFwX2Zp bHRlcl9iX206ICB0aW1lcyA4IGRiICAtNiwgIDEyCiAgICAgICAgICAgICAgICAgICAgICB0aW1l cyA4IGRiIDEyMywgIC0xCiAgICAgICAgICAgICAgICAgICAgICB0aW1lcyA4IGRiICAtOSwgIDUw CkBAIC02MSwxNiArNTIsNiBAQCBmb3VydGFwX2ZpbHRlcl9iX206ICB0aW1lcyA4IGRiICAtNiwg IDEyCiAgICAgICAgICAgICAgICAgICAgICB0aW1lcyA4IGRiICAtMSwgMTIzCiAgICAgICAgICAg ICAgICAgICAgICB0aW1lcyA4IGRiICAxMiwgIC02CiAKLXNpeHRhcF9maWx0ZXJfaGJfbTogIHRp bWVzIDggZGIgICAyLCAgIDEKLSAgICAgICAgICAgICAgICAgICAgIHRpbWVzIDggZGIgLTExLCAx MDgKLSAgICAgICAgICAgICAgICAgICAgIHRpbWVzIDggZGIgIDM2LCAgLTgKLSAgICAgICAgICAg ICAgICAgICAgIHRpbWVzIDggZGIgICAzLCAgIDMKLSAgICAgICAgICAgICAgICAgICAgIHRpbWVz IDggZGIgLTE2LCAgNzcKLSAgICAgICAgICAgICAgICAgICAgIHRpbWVzIDggZGIgIDc3LCAtMTYK LSAgICAgICAgICAgICAgICAgICAgIHRpbWVzIDggZGIgICAxLCAgIDIKLSAgICAgICAgICAgICAg ICAgICAgIHRpbWVzIDggZGIgIC04LCAgMzYKLSAgICAgICAgICAgICAgICAgICAgIHRpbWVzIDgg ZGIgMTA4LCAtMTEKLQogc2l4dGFwX2ZpbHRlcl9iX206ICAgdGltZXMgOCBkYiAgIDIsICAzNgog ICAgICAgICAgICAgICAgICAgICAgdGltZXMgOCBkYiAtMTEsICAtOAogICAgICAgICAgICAgICAg ICAgICAgdGltZXMgOCBkYiAxMDgsICAgMQpAQCAtMTM0LDEwICsxMTUsOCBAQCBiaWxpbmVhcl9m aWx0ZXJfdmJfbTogdGltZXMgOCBkYiA3LCAxCiAgICAgICAgICAgICAgICAgICAgICAgdGltZXMg OCBkYiAxLCA3CiAKICVpZiBQSUMKLSVkZWZpbmUgZm91cnRhcF9maWx0ZXJfaGIgIHBpY3JlZ3EK ICVkZWZpbmUgZm91cnRhcF9maWx0ZXJfYiAgIHBpY3JlZ3EKICVkZWZpbmUgZm91cnRhcF9maWx0 ZXI0X2IgIHBpY3JlZ3EKLSVkZWZpbmUgc2l4dGFwX2ZpbHRlcl9oYiAgIHBpY3JlZ3EKICVkZWZp bmUgc2l4dGFwX2ZpbHRlcl9iICAgIHBpY3JlZ3EKICVkZWZpbmUgc2l4dGFwX2ZpbHRlcjRfaGIg IHBpY3JlZ3EKICVkZWZpbmUgZm91cnRhcF9maWx0ZXJfdiAgIHBpY3JlZ3EKQEAgLTE0NiwxMCAr MTI1LDggQEAgYmlsaW5lYXJfZmlsdGVyX3ZiX206IHRpbWVzIDggZGIgNywgMQogJWRlZmluZSBi aWxpbmVhcl9maWx0ZXJfdmIgcGljcmVncQogJWRlZmluZSBucGljcmVncyAxCiAlZWxzZQotJWRl ZmluZSBmb3VydGFwX2ZpbHRlcl9oYiAgZm91cnRhcF9maWx0ZXJfaGJfbQogJWRlZmluZSBmb3Vy dGFwX2ZpbHRlcl9iICAgZm91cnRhcF9maWx0ZXJfYl9tCiAlZGVmaW5lIGZvdXJ0YXBfZmlsdGVy NF9iICBmb3VydGFwX2ZpbHRlcjRfYl9tCi0lZGVmaW5lIHNpeHRhcF9maWx0ZXJfaGIgICBzaXh0 YXBfZmlsdGVyX2hiX20KICVkZWZpbmUgc2l4dGFwX2ZpbHRlcl9iICAgIHNpeHRhcF9maWx0ZXJf Yl9tCiAlZGVmaW5lIHNpeHRhcF9maWx0ZXI0X2hiICBzaXh0YXBfZmlsdGVyNF9oYl9tCiAlZGVm aW5lIGZvdXJ0YXBfZmlsdGVyX3YgICBmb3VydGFwX2ZpbHRlcl92X20KQEAgLTE2MSwxMiArMTM4 LDE1IEBAIGJpbGluZWFyX2ZpbHRlcl92Yl9tOiB0aW1lcyA4IGRiIDcsIDEKIAogZmlsdGVyNF9o NF9zaHVmOiBkYiAwLCAxLCAxLCAyLCAyLCAzLCAzLCA0LCAyLCAzLCAzLCAgNCwgNCwgIDUsIDUs ICA2CiBmaWx0ZXI0X2g2X3NodWY6IGRiIDEsIDMsIDIsIDQsIDMsIDUsIDQsIDYsIDIsIDQsIDMs ICA1LCA0LCAgNiwgNSwgIDcKLWZpbHRlcl9oMl9zaHVmOiAgZGIgMCwgMSwgMSwgMiwgMiwgMywg MywgNCwgNCwgNSwgNSwgIDYsIDYsICA3LCAgNywgIDgKLWZpbHRlcl9oNF9zaHVmOiAgZGIgMiwg MywgMywgNCwgNCwgNSwgNSwgNiwgNiwgNywgNywgIDgsIDgsICA5LCAgOSwgMTAKIAotZmlsdGVy X2g2X3NodWYxOiBkYiAwLCA1LCAxLCA2LCAyLCA3LCAzLCA4LCA0LCA5LCA1LCAxMCwgNiwgMTEs ICA3LCAxMgotZmlsdGVyX2g2X3NodWYyOiBkYiAxLCAyLCAyLCAzLCAzLCA0LCA0LCA1LCA1LCA2 LCA2LCAgNywgNywgIDgsICA4LCAgOQotZmlsdGVyX2g2X3NodWYzOiBkYiAzLCA0LCA0LCA1LCA1 LCA2LCA2LCA3LCA3LCA4LCA4LCAgOSwgOSwgMTAsIDEwLCAxMQorZmlsdGVyX2g0X3NodWYxOiBk YiAwLCAyLCAxLCAzLCAyLCA0LCAzLCA1LCA0LCA2LCA1LCAgNywgNiwgIDgsIDcsICA5CitmaWx0 ZXJfaDRfc2h1ZjI6IGRiIDEsIDMsIDIsIDQsIDMsIDUsIDQsIDYsIDUsIDcsIDYsICA4LCA3LCAg OSwgOCwgMTAKKworZmlsdGVyX2g2X3NodWYxOiBkYiAwLCAzLCAxLCA0LCAyLCA1LCAzLCA2LCA0 LCA3LCA1LCAgOCwgNiwgIDksIDcsIDEwCitmaWx0ZXJfaDZfc2h1ZjI6IGRiIDEsIDQsIDIsIDUs IDMsIDYsIDQsIDcsIDUsIDgsIDYsICA5LCA3LCAxMCwgOCwgMTEKK2ZpbHRlcl9oNl9zaHVmMzog ZGIgMiwgNSwgMywgNiwgNCwgNywgNSwgOCwgNiwgOSwgNywgMTAsIDgsIDExLCA5LCAxMgorCitm aWx0ZXJfaDJfc2h1ZjogIGRiIDAsIDEsIDEsIDIsIDIsIDMsIDMsIDQsIDQsIDUsIDUsICA2LCA2 LCAgNywgNywgIDgKIAogcHdfMjAwOTE6IHRpbWVzIDQgZHcgMjAwOTEKIHB3XzE3NzM0OiB0aW1l cyA0IGR3IDE3NzM0CkBAIC0yMDcsMTEgKzE4NywxMSBAQCBjZ2xvYmFsIHB1dF92cDhfZXBlbCUx X2g2LCA2LCA2ICsgbnBpY3JlZ3MsIDYrMiooJTE9PTgpLCBkc3QsIGRzdHN0cmlkZSwgc3JjLCBz cgogICAgIG1vdmEgICAgICBtMywgW2ZpbHRlcl9oNl9zaHVmMl0KICAgICBtb3ZhICAgICAgbTQs IFtmaWx0ZXJfaDZfc2h1ZjNdCiAlaWYgUElDCi0gICAgbGVhICBwaWNyZWdxLCBbc2l4dGFwX2Zp bHRlcl9oYl9tXQorICAgIGxlYSAgcGljcmVncSwgW3NpeHRhcF9maWx0ZXJfYl9tXQogJWVuZGlm Ci0gICAgbW92YSAgICAgIG01LCBbc2l4dGFwX2ZpbHRlcl9oYitteHEqOC00OF0gOyBzZXQgdXAg NnRhcCBmaWx0ZXIgaW4gYnl0ZXMKLSAgICBtb3ZhICAgICAgbTYsIFtzaXh0YXBfZmlsdGVyX2hi K214cSo4LTMyXQotICAgIG1vdmEgICAgICBtNywgW3NpeHRhcF9maWx0ZXJfaGIrbXhxKjgtMTZd CisgICAgbW92YSAgICAgIG01LCBbc2l4dGFwX2ZpbHRlcl9iK214cSo4LTQ4XSA7IHNldCB1cCA2 dGFwIGZpbHRlciBpbiBieXRlcworICAgIG1vdmEgICAgICBtNiwgW3NpeHRhcF9maWx0ZXJfYitt eHEqOC0zMl0KKyAgICBtb3ZhICAgICAgbTcsIFtzaXh0YXBfZmlsdGVyX2IrbXhxKjgtMTZdCiAl ZW5kaWYKIAogLm5leHRyb3c6CkBAIC0yNTIsMTMgKzIzMiwxMyBAQCBjZ2xvYmFsIHB1dF92cDhf ZXBlbCUxX2g0LCA2LCA2ICsgbnBpY3JlZ3MsIDYrISEoJTEgPT0gOCksIGRzdCwgZHN0c3RyaWRl LCBzcmMsCiAgICAgbW92YSAgICAgIG0yLCBbcHdfMjU2XQogJWlmICUxID09IDgKICAgICBzaGwg ICAgICBteGQsIDQKLSAgICBtb3ZhICAgICAgbTMsIFtmaWx0ZXJfaDJfc2h1Zl0KLSAgICBtb3Zh ICAgICAgbTQsIFtmaWx0ZXJfaDRfc2h1Zl0KKyAgICBtb3ZhICAgICAgbTMsIFtmaWx0ZXJfaDRf c2h1ZjFdCisgICAgbW92YSAgICAgIG00LCBbZmlsdGVyX2g0X3NodWYyXQogJWlmIFBJQwotICAg IGxlYSAgcGljcmVncSwgW2ZvdXJ0YXBfZmlsdGVyX2hiX21dCisgICAgbGVhICBwaWNyZWdxLCBb Zm91cnRhcF9maWx0ZXJfYl9tXQogJWVuZGlmCi0gICAgbW92YSAgICAgIG01LCBbZm91cnRhcF9m aWx0ZXJfaGIrbXhxLTE2XSA7IHNldCB1cCA0dGFwIGZpbHRlciBpbiBieXRlcwotICAgIG1vdmEg ICAgICBtNiwgW2ZvdXJ0YXBfZmlsdGVyX2hiK214cV0KKyAgICBtb3ZhICAgICAgbTUsIFtmb3Vy dGFwX2ZpbHRlcl9iK214cS0xNl0gOyBzZXQgdXAgNHRhcCBmaWx0ZXIgaW4gYnl0ZXMKKyAgICBt b3ZhICAgICAgbTYsIFtmb3VydGFwX2ZpbHRlcl9iK214cV0KICVlbHNlCiAgICAgc2hsICAgICAg bXhkLCAzCiAgICAgbW92YSAgICAgIG0zLCBbZmlsdGVyNF9oNF9zaHVmXQotLSAKMi41Mi4wCgoK RnJvbSA2MWVmNTZiYWQxY2VmMWVmZjFhNzVjZmEwZGU5OWUyNTM3OWM0NjA5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJk dEBvdXRsb29rLmNvbT4KRGF0ZTogTW9uLCAyNCBOb3YgMjAyNSAyMjozNjo0NSArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMjExLzMwNF0gYXZjb2RlYy94ODYvdnA4ZHNwOiBEb24ndCB1c2Ugc2F0dXJh dGVkIGFkZGl0aW9uIHdoZW4KIHVubmVjZXNzYXJ5CgpGb3IgdGhlIGVwZWwgZnVuY3Rpb25zLCB0 aGVyZSBjYW4gYmUgbm8gb3ZlcmZsb3cgYXMgbG9uZyBhcyB0aGUgc3VtCmNvbnRhaW5zIG9ubHkg b25lIG9mIHRoZSB0d28gbGFyZ2UgY2VudHJhbCBjb2VmZmljaWVudHM7IGZvciBiaWxpbmVhcgpm dW5jdGlvbnMsIHRoZXJlIGNhbiBiZSBubyBvdmVyZmxvdyB3aGF0c29ldmVyLgoKUmV2aWV3ZWQt Ynk6IFJvbmFsZCBTLiBCdWx0amUgPHJzYnVsdGplQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTog QW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQog bGliYXZjb2RlYy94ODYvdnA4ZHNwLmFzbSB8IDM4ICsrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvdnA4ZHNwLmFzbSBiL2xpYmF2Y29k ZWMveDg2L3ZwOGRzcC5hc20KaW5kZXggMzQwZjZjYzgxOC4uMjIzNTZmNjg3YiAxMDA2NDQKLS0t IGEvbGliYXZjb2RlYy94ODYvdnA4ZHNwLmFzbQorKysgYi9saWJhdmNvZGVjL3g4Ni92cDhkc3Au YXNtCkBAIC00NTAsMTAgKzQ1MCwxMCBAQCBjZ2xvYmFsIHB1dF92cDhfZXBlbDhfaDQsIDYsIDYg KyBucGljcmVncywgMTAsIGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0cmlkZSwgaAogICAgIHBt dWxsdyAgICBtMywgW214cSs0OF0KICVlbmRpZgogICAgIGFkZCAgICAgc3JjcSwgc3Jjc3RyaWRl cQotICAgIHBhZGRzdyAgICBtMCwgbTEKLSAgICBwYWRkc3cgICAgbTIsIG0zCisgICAgcGFkZHcg ICAgIG0wLCBtMQorICAgIHBhZGR3ICAgICBtMiwgbTMKKyAgICBwYWRkdyAgICAgbTAsIG00CiAg ICAgcGFkZHN3ICAgIG0wLCBtMgotICAgIHBhZGRzdyAgICBtMCwgbTQKICAgICBwc3JhdyAgICAg bTAsIDcKICAgICBwYWNrdXN3YiAgbTAsIG03CiAgICAgbW92aCAgW2RzdHFdLCBtMCAgICAgICAg OyBzdG9yZQpAQCAtNTExLDEyICs1MTEsMTIgQEAgY2dsb2JhbCBwdXRfdnA4X2VwZWw4X2g2LCA2 LCA2ICsgbnBpY3JlZ3MsIDE0LCBkc3QsIGRzdHN0cmlkZSwgc3JjLCBzcmNzdHJpZGUsIGgKICAg ICBwbXVsbHcgICAgbTUsIFtteHErODBdCiAlZW5kaWYKICAgICBhZGQgICAgIHNyY3EsIHNyY3N0 cmlkZXEKLSAgICBwYWRkc3cgICAgbTEsIG00Ci0gICAgcGFkZHN3ICAgIG0wLCBtNQotICAgIHBh ZGRzdyAgICBtMSwgbTIKLSAgICBwYWRkc3cgICAgbTAsIG0zCisgICAgcGFkZHcgICAgIG0xLCBt NAorICAgIHBhZGR3ICAgICBtMCwgbTUKKyAgICBwYWRkdyAgICAgbTEsIG0yCisgICAgcGFkZHcg ICAgIG0wLCBtMworICAgIHBhZGR3ICAgICBtMSwgbTYKICAgICBwYWRkc3cgICAgbTAsIG0xCi0g ICAgcGFkZHN3ICAgIG0wLCBtNgogICAgIHBzcmF3ICAgICBtMCwgNwogICAgIHBhY2t1c3diICBt MCwgbTcKICAgICBtb3ZoICBbZHN0cV0sIG0wICAgICAgICA7IHN0b3JlCkBAIC01NTYsMjAgKzU1 NiwyMCBAQCBjZ2xvYmFsIHB1dF92cDhfZXBlbDhfdjQsIDcsIDcsIDgsIGRzdCwgZHN0c3RyaWRl LCBzcmMsIHNyY3N0cmlkZSwgaGVpZ2h0LCBwaWNyZQogICAgIG1vdmEgICAgICBtMywgbTQKICAg ICBwbXVsbHcgICAgbTAsIFtteXErMF0KICAgICBwbXVsbHcgICAgbTQsIG01Ci0gICAgcGFkZHN3 ICAgIG00LCBtMAorICAgIHBhZGR3ICAgICBtNCwgbTAKIAogICAgIDsgdGhlbiBjYWxjdWxhdGUg cG9zaXRpdmUgdGFwcwogICAgIG1vdmEgICAgICBtMCwgbTEKICAgICBwbXVsbHcgICAgbTEsIFtt eXErMTZdCi0gICAgcGFkZHN3ICAgIG00LCBtMQorICAgIHBhZGR3ICAgICBtNCwgbTEKICAgICBt b3ZhICAgICAgbTEsIG0yCiAgICAgcG11bGx3ICAgIG0yLCBbbXlxKzMyXQorICAgIHBhZGR3ICAg ICBtNCwgbTYKICAgICBhZGQgICAgIHNyY3EsIHNyY3N0cmlkZXEKICAgICBwYWRkc3cgICAgbTQs IG0yCiAgICAgbW92YSAgICAgIG0yLCBtMwogCiAgICAgOyByb3VuZC9jbGlwL3N0b3JlCi0gICAg cGFkZHN3ICAgIG00LCBtNgogICAgIHBzcmF3ICAgICBtNCwgNwogICAgIHBhY2t1c3diICBtNCwg bTcKICAgICBtb3ZoICBbZHN0cV0sIG00CkBAIC02MTIsMTcgKzYxMiwxOCBAQCBjZ2xvYmFsIHB1 dF92cDhfZXBlbDhfdjYsIDcsIDcsIDgsIGRzdCwgZHN0c3RyaWRlLCBzcmMsIHNyY3N0cmlkZSwg aGVpZ2h0LCBwaWNyZQogICAgIHBtdWxsdyAgICBtNSwgW215cSsxNl0KICAgICBtb3ZhICAgICAg bTYsIG00CiAgICAgcG11bGx3ICAgIG02LCBbbXlxKzY0XQotICAgIHBhZGRzdyAgICBtNiwgbTUK KyAgICBwYWRkdyAgICAgbTYsIG01CiAKICAgICA7IHRoZW4gY2FsY3VsYXRlIHBvc2l0aXZlIHRh cHMKICAgICBtb3ZoICAgICAgbTUsIFtzcmNxK3NyY3N0cmlkZXFdICAgICAgOyByZWFkIG5ldyBy b3cKICAgICBwdW5wY2tsYncgbTUsIG03CiAgICAgcG11bGx3ICAgIG0wLCBbbXlxKzBdCi0gICAg cGFkZHN3ICAgIG02LCBtMAorICAgIHBhZGR3ICAgICBtNiwgW3B3XzY0XQorICAgIHBhZGR3ICAg ICBtNiwgbTAKICAgICBtb3ZhICAgICAgbTAsIG0xCiAgICAgbW92YSAgICAgIG0xLCBtMgogICAg IHBtdWxsdyAgICBtMiwgW215cSszMl0KLSAgICBwYWRkc3cgICAgbTYsIG0yCisgICAgcGFkZHcg ICAgIG02LCBtMgogICAgIG1vdmEgICAgICBtMiwgbTMKICAgICBwbXVsbHcgICAgbTMsIFtteXEr NDhdCiAgICAgYWRkICAgICBzcmNxLCBzcmNzdHJpZGVxCkBAIC02MzMsNyArNjM0LDYgQEAgY2ds b2JhbCBwdXRfdnA4X2VwZWw4X3Y2LCA3LCA3LCA4LCBkc3QsIGRzdHN0cmlkZSwgc3JjLCBzcmNz dHJpZGUsIGhlaWdodCwgcGljcmUKICAgICBwYWRkc3cgICAgbTYsIG01CiAKICAgICA7IHJvdW5k L2NsaXAvc3RvcmUKLSAgICBwYWRkc3cgICAgbTYsIFtwd182NF0KICAgICBwc3JhdyAgICAgbTYs IDcKICAgICBwYWNrdXN3YiAgbTYsIG03CiAgICAgbW92aCAgW2RzdHFdLCBtNgpAQCAtNzAwLDgg KzcwMCw4IEBAIGNnbG9iYWwgcHV0X3ZwOF9iaWxpbmVhciUxX3YsIDcsIDcsIDcsIGRzdCwgZHN0 c3RyaWRlLCBzcmMsIHNyY3N0cmlkZSwgaGVpZ2h0LCBwCiAgICAgcG11bGx3ICAgIG0yLCBtNAog ICAgIHBtdWxsdyAgICBtMywgbTUKICAgICBsZWEgICAgIHNyY3EsIFtzcmNxK3NyY3N0cmlkZXEq Ml0KLSAgICBwYWRkc3cgICAgbTAsIG0xCi0gICAgcGFkZHN3ICAgIG0yLCBtMworICAgIHBhZGR3 ICAgICBtMCwgbTEKKyAgICBwYWRkdyAgICAgbTIsIG0zCiAgICAgcHNyYXcgICAgIG0wLCAyCiAg ICAgcHNyYXcgICAgIG0yLCAyCiAgICAgcGF2Z3cgICAgIG0wLCBtNgpAQCAtNzcxLDggKzc3MSw4 IEBAIGNnbG9iYWwgcHV0X3ZwOF9iaWxpbmVhciUxX2gsIDYsIDYgKyBucGljcmVncywgNywgZHN0 LCBkc3RzdHJpZGUsIHNyYywgc3Jjc3RyaWRlCiAgICAgcG11bGx3ICAgIG0yLCBtNAogICAgIHBt dWxsdyAgICBtMywgbTUKICAgICBsZWEgICAgIHNyY3EsIFtzcmNxK3NyY3N0cmlkZXEqMl0KLSAg ICBwYWRkc3cgICAgbTAsIG0xCi0gICAgcGFkZHN3ICAgIG0yLCBtMworICAgIHBhZGR3ICAgICBt MCwgbTEKKyAgICBwYWRkdyAgICAgbTIsIG0zCiAgICAgcHNyYXcgICAgIG0wLCAyCiAgICAgcHNy YXcgICAgIG0yLCAyCiAgICAgcGF2Z3cgICAgIG0wLCBtNgotLSAKMi41Mi4wCgoKRnJvbSAzNjA3 ODI2ZjU4M2Y0ZDViMWM1Zjk2ZTRjM2JlMGFlYzRhZTk2YmRmIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29r LmNvbT4KRGF0ZTogVHVlLCAyIERlYyAyMDI1IDE5OjQ5OjE3ICswMTAwClN1YmplY3Q6IFtQQVRD SCAyMTIvMzA0XSBhdmNvZGVjL3Jpc2N2L3ZwOGRzcF9ydnY6IFJlbW92ZSB1bnVzZWQgZnVuY3Rp b25zCgpPbmx5IHRoZSBzaXh0YXAgZnVuY3Rpb25zIGFyZSB1c2VkIGZvciBzaXplIDE2LgoKU2ln bmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9v ay5jb20+Ci0tLQogbGliYXZjb2RlYy9yaXNjdi92cDhkc3BfaW5pdC5jIHwgNSAtLS0tLQogbGli YXZjb2RlYy9yaXNjdi92cDhkc3BfcnZ2LlMgIHwgOSArKysrKysrKy0KIDIgZmlsZXMgY2hhbmdl ZCwgOCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29k ZWMvcmlzY3YvdnA4ZHNwX2luaXQuYyBiL2xpYmF2Y29kZWMvcmlzY3YvdnA4ZHNwX2luaXQuYwpp bmRleCAzZTM1YzcyMTk4Li5mZWNmNmVmOWIwIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Jpc2N2 L3ZwOGRzcF9pbml0LmMKKysrIGIvbGliYXZjb2RlYy9yaXNjdi92cDhkc3BfaW5pdC5jCkBAIC05 MCwyNyArOTAsMjIgQEAgYXZfY29sZCB2b2lkIGZmX3ZwNzhkc3BfaW5pdF9yaXNjdihWUDhEU1BD b250ZXh0ICpjKQogICAgICAgICAgICAgYy0+cHV0X3ZwOF9lcGVsX3BpeGVsc190YWJbMF1bMF1b Ml0gPSBmZl9wdXRfdnA4X2VwZWwxNl9oNl9ydnY7CiAgICAgICAgICAgICBjLT5wdXRfdnA4X2Vw ZWxfcGl4ZWxzX3RhYlsxXVswXVsyXSA9IGZmX3B1dF92cDhfZXBlbDhfaDZfcnZ2OwogICAgICAg ICAgICAgYy0+cHV0X3ZwOF9lcGVsX3BpeGVsc190YWJbMl1bMF1bMl0gPSBmZl9wdXRfdnA4X2Vw ZWw0X2g2X3J2djsKLSAgICAgICAgICAgIGMtPnB1dF92cDhfZXBlbF9waXhlbHNfdGFiWzBdWzBd WzFdID0gZmZfcHV0X3ZwOF9lcGVsMTZfaDRfcnZ2OwogICAgICAgICAgICAgYy0+cHV0X3ZwOF9l cGVsX3BpeGVsc190YWJbMV1bMF1bMV0gPSBmZl9wdXRfdnA4X2VwZWw4X2g0X3J2djsKICAgICAg ICAgICAgIGMtPnB1dF92cDhfZXBlbF9waXhlbHNfdGFiWzJdWzBdWzFdID0gZmZfcHV0X3ZwOF9l cGVsNF9oNF9ydnY7CiAKICAgICAgICAgICAgIGMtPnB1dF92cDhfZXBlbF9waXhlbHNfdGFiWzBd WzJdWzBdID0gZmZfcHV0X3ZwOF9lcGVsMTZfdjZfcnZ2OwogICAgICAgICAgICAgYy0+cHV0X3Zw OF9lcGVsX3BpeGVsc190YWJbMV1bMl1bMF0gPSBmZl9wdXRfdnA4X2VwZWw4X3Y2X3J2djsKICAg ICAgICAgICAgIGMtPnB1dF92cDhfZXBlbF9waXhlbHNfdGFiWzJdWzJdWzBdID0gZmZfcHV0X3Zw OF9lcGVsNF92Nl9ydnY7Ci0gICAgICAgICAgICBjLT5wdXRfdnA4X2VwZWxfcGl4ZWxzX3RhYlsw XVsxXVswXSA9IGZmX3B1dF92cDhfZXBlbDE2X3Y0X3J2djsKICAgICAgICAgICAgIGMtPnB1dF92 cDhfZXBlbF9waXhlbHNfdGFiWzFdWzFdWzBdID0gZmZfcHV0X3ZwOF9lcGVsOF92NF9ydnY7CiAg ICAgICAgICAgICBjLT5wdXRfdnA4X2VwZWxfcGl4ZWxzX3RhYlsyXVsxXVswXSA9IGZmX3B1dF92 cDhfZXBlbDRfdjRfcnZ2OwogI2lmIF9fcmlzY3ZfeGxlbiA8PSA2NAogICAgICAgICAgICAgYy0+ cHV0X3ZwOF9lcGVsX3BpeGVsc190YWJbMF1bMl1bMl0gPSBmZl9wdXRfdnA4X2VwZWwxNl9oNnY2 X3J2djsKICAgICAgICAgICAgIGMtPnB1dF92cDhfZXBlbF9waXhlbHNfdGFiWzFdWzJdWzJdID0g ZmZfcHV0X3ZwOF9lcGVsOF9oNnY2X3J2djsKICAgICAgICAgICAgIGMtPnB1dF92cDhfZXBlbF9w aXhlbHNfdGFiWzJdWzJdWzJdID0gZmZfcHV0X3ZwOF9lcGVsNF9oNnY2X3J2djsKLSAgICAgICAg ICAgIGMtPnB1dF92cDhfZXBlbF9waXhlbHNfdGFiWzBdWzJdWzFdID0gZmZfcHV0X3ZwOF9lcGVs MTZfaDR2Nl9ydnY7CiAgICAgICAgICAgICBjLT5wdXRfdnA4X2VwZWxfcGl4ZWxzX3RhYlsxXVsy XVsxXSA9IGZmX3B1dF92cDhfZXBlbDhfaDR2Nl9ydnY7CiAgICAgICAgICAgICBjLT5wdXRfdnA4 X2VwZWxfcGl4ZWxzX3RhYlsyXVsyXVsxXSA9IGZmX3B1dF92cDhfZXBlbDRfaDR2Nl9ydnY7Ci0g ICAgICAgICAgICBjLT5wdXRfdnA4X2VwZWxfcGl4ZWxzX3RhYlswXVsxXVsxXSA9IGZmX3B1dF92 cDhfZXBlbDE2X2g0djRfcnZ2OwogICAgICAgICAgICAgYy0+cHV0X3ZwOF9lcGVsX3BpeGVsc190 YWJbMV1bMV1bMV0gPSBmZl9wdXRfdnA4X2VwZWw4X2g0djRfcnZ2OwogICAgICAgICAgICAgYy0+ cHV0X3ZwOF9lcGVsX3BpeGVsc190YWJbMl1bMV1bMV0gPSBmZl9wdXRfdnA4X2VwZWw0X2g0djRf cnZ2OwotICAgICAgICAgICAgYy0+cHV0X3ZwOF9lcGVsX3BpeGVsc190YWJbMF1bMV1bMl0gPSBm Zl9wdXRfdnA4X2VwZWwxNl9oNnY0X3J2djsKICAgICAgICAgICAgIGMtPnB1dF92cDhfZXBlbF9w aXhlbHNfdGFiWzFdWzFdWzJdID0gZmZfcHV0X3ZwOF9lcGVsOF9oNnY0X3J2djsKICAgICAgICAg ICAgIGMtPnB1dF92cDhfZXBlbF9waXhlbHNfdGFiWzJdWzFdWzJdID0gZmZfcHV0X3ZwOF9lcGVs NF9oNnY0X3J2djsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9yaXNjdi92cDhkc3Bf cnZ2LlMgYi9saWJhdmNvZGVjL3Jpc2N2L3ZwOGRzcF9ydnYuUwppbmRleCAyZWU3MDI5YzYwLi5l ZDA4ZjcyY2RjIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Jpc2N2L3ZwOGRzcF9ydnYuUworKysg Yi9saWJhdmNvZGVjL3Jpc2N2L3ZwOGRzcF9ydnYuUwpAQCAtNTM3LDcgKzUzNywxNCBAQCBmdW5j IGZmX3B1dF92cDhfZXBlbFxsZW5cKClfaFxoc2l6ZVwoKXZcdnNpemVcKClfcnZ2LCB6dmUzMngs IHpiYQogZW5kZnVuYwogLmVuZG0KIAotLmlycCBsZW4sMTYsOCw0CisjIE9ubHkgdGhlIHNpeHRh cHMgdmVyc2lvbnMgYXJlIHVzZWQgZm9yIGVwZWwxNi4KK2VwZWwgMTYgNiBoCitlcGVsIDE2IDYg dgorI2lmIF9fcmlzY3ZfeGxlbiA8PSA2NAorZXBlbF9odiAxNiA2IDYKKyNlbmRpZgorCisuaXJw IGxlbiw4LDQKIGVwZWwgXGxlbiA2IGgKIGVwZWwgXGxlbiA0IGgKIGVwZWwgXGxlbiA2IHYKLS0g CjIuNTIuMAoKCkZyb20gYjhlZTkyMjJhMTgxZjJjYWRkOTk2YzQ0YWQ1ODQ4NTRhZDE5NjYzZCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFz LnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMjM6MTM6MTYg KzAxMDAKU3ViamVjdDogW1BBVENIIDIxMy8zMDRdIGF2Y29kZWMvdnA4ZHNwOiBEb24ndCBjb21w aWxlIHVudXNlZCBmdW5jdGlvbnMKClRoZSB3aWR0aCAxNiBlcGVsIGZ1bmN0aW9ucyBuZXZlciB1 c2UgZm91ciB0YXBzIGluIGFueSBkaXJlY3Rpb24qLApzbyBkb24ndCBidWlsZCBzYWlkIGZ1bmN0 aW9ucy4gU2F2ZXMgNDM1MkIgb2YgLnRleHQgYW5kIDg5QiBvZgoudGV4dC51bmxpa2VseSBoZXJl LgoKKjogbXggYW5kIG15IGluIHZwOF9tY19sdW1hKCkgYXJlIGFsd2F5cyBldmVuLgoKUmV2aWV3 ZWQtYnk6IFJvbmFsZCBTLiBCdWx0amUgPHJzYnVsdGplQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0t LQogbGliYXZjb2RlYy92cDhkc3AuYyAgICAgfCAxMSArKysrKy0tLS0tLQogdGVzdHMvY2hlY2th c20vdnA4ZHNwLmMgfCAgMyArKy0KIDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnA4ZHNwLmMgYi9saWJhdmNv ZGVjL3ZwOGRzcC5jCmluZGV4IDU1NDMzMDNhZGIuLmVhYmUzZWRiMjcgMTAwNjQ0Ci0tLSBhL2xp YmF2Y29kZWMvdnA4ZHNwLmMKKysrIGIvbGliYXZjb2RlYy92cDhkc3AuYwpAQCAtNTU4LDI2ICs1 NTgsMjEgQEAgcHV0X3ZwOF9lcGVsICMjIFNJWkUgIyMgX2ggIyMgSFRBUFMgIyMgdiAjIyBWVEFQ UyAjIyBfYyh1aW50OF90ICpkc3QsICAgICAgICAgXAogICAgIH0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog fQogCi1WUDhfRVBFTF9IKDE2LCA0KQogVlA4X0VQRUxfSCg4LCAgNCkKIFZQOF9FUEVMX0goNCwg IDQpCiBWUDhfRVBFTF9IKDE2LCA2KQogVlA4X0VQRUxfSCg4LCAgNikKIFZQOF9FUEVMX0goNCwg IDYpCi1WUDhfRVBFTF9WKDE2LCA0KQogVlA4X0VQRUxfVig4LCAgNCkKIFZQOF9FUEVMX1YoNCwg IDQpCiBWUDhfRVBFTF9WKDE2LCA2KQogVlA4X0VQRUxfVig4LCAgNikKIFZQOF9FUEVMX1YoNCwg IDYpCiAKLVZQOF9FUEVMX0hWKDE2LCA0LCA0KQogVlA4X0VQRUxfSFYoOCwgIDQsIDQpCiBWUDhf RVBFTF9IVig0LCAgNCwgNCkKLVZQOF9FUEVMX0hWKDE2LCA0LCA2KQogVlA4X0VQRUxfSFYoOCwg IDQsIDYpCiBWUDhfRVBFTF9IVig0LCAgNCwgNikKLVZQOF9FUEVMX0hWKDE2LCA2LCA0KQogVlA4 X0VQRUxfSFYoOCwgIDYsIDQpCiBWUDhfRVBFTF9IVig0LCAgNiwgNCkKIFZQOF9FUEVMX0hWKDE2 LCA2LCA2KQpAQCAtNjY3LDcgKzY2MiwxMSBAQCBWUDhfQklMSU5FQVIoNCkKIAogYXZfY29sZCB2 b2lkIGZmX3ZwNzhkc3BfaW5pdChWUDhEU1BDb250ZXh0ICpkc3ApCiB7Ci0gICAgVlA3OF9NQ19G VU5DKDAsIDE2KTsKKyAgICBkc3AtPnB1dF92cDhfZXBlbF9waXhlbHNfdGFiWzBdWzBdWzBdID0g cHV0X3ZwOF9waXhlbHMxNl9jOworICAgIGRzcC0+cHV0X3ZwOF9lcGVsX3BpeGVsc190YWJbMF1b MF1bMl0gPSBwdXRfdnA4X2VwZWwxNl9oNl9jOworICAgIGRzcC0+cHV0X3ZwOF9lcGVsX3BpeGVs c190YWJbMF1bMl1bMF0gPSBwdXRfdnA4X2VwZWwxNl92Nl9jOworICAgIGRzcC0+cHV0X3ZwOF9l cGVsX3BpeGVsc190YWJbMF1bMl1bMl0gPSBwdXRfdnA4X2VwZWwxNl9oNnY2X2M7CisKICAgICBW UDc4X01DX0ZVTkMoMSwgOCk7CiAgICAgVlA3OF9NQ19GVU5DKDIsIDQpOwogCmRpZmYgLS1naXQg YS90ZXN0cy9jaGVja2FzbS92cDhkc3AuYyBiL3Rlc3RzL2NoZWNrYXNtL3ZwOGRzcC5jCmluZGV4 IGExMmMyOTVhMmEuLjRkNjcwNGQ1YTkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL3ZwOGRz cC5jCisrKyBiL3Rlc3RzL2NoZWNrYXNtL3ZwOGRzcC5jCkBAIC01MTAsNyArNTEwLDggQEAgc3Rh dGljIHZvaWQgY2hlY2thc21fY2hlY2tfdnA3OGRzcChWUDhEU1BDb250ZXh0ICpkLCBib29sIGlz X3ZwNykKIAogdm9pZCBjaGVja2FzbV9jaGVja192cDhkc3Aodm9pZCkKIHsKLSAgICBWUDhEU1BD b250ZXh0IGQ7CisgICAgLy8gTmVlZHMgdG8gYmUgemVyb2VkIGJlY2F1c2Ugbm90IGFsbCBzaXpl IDE2IGVwZWwgZnVuY3Rpb25zIGV4aXN0LgorICAgIFZQOERTUENvbnRleHQgZCA9IHsgMCB9Owog CiAgICAgZmZfdnA3OGRzcF9pbml0KCZkKTsKICAgICBjaGVja19tYygmZCk7Ci0tIAoyLjUyLjAK CgpGcm9tIDgxMjNiYjQyZDE4ODg2NWQzMmUzNGY5MjIzNzcxYzI3OThmMTIzM2QgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEx5bm5lIDxkZXZAbHlubmUuZWU+CkRhdGU6IFRodSwgNCBE ZWMgMjAyNSAxNjo0NzowMCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjE0LzMwNF0gZmZ2MWVuY192 dWxrYW46IGZpeCBlbmNvZGluZyB3aXRoIGxhcmdlIGNvbnRleHRzCgpXaGVuIFJHQl9MSU5FQ0FD SEUgPT0gMiwgdGhlbiB0b3AyIGlzIG5vdCB0aGUgY3VycmVudCBsaW5lLgotLS0KIGxpYmF2Y29k ZWMvdnVsa2FuL2ZmdjFfY29tbW9uLmNvbXAgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGlu c2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z1bGthbi9mZnYxX2NvbW1vbi5j b21wIGIvbGliYXZjb2RlYy92dWxrYW4vZmZ2MV9jb21tb24uY29tcAppbmRleCAzZDQwNTkyNzM5 Li41ZjY1NGUyYjI5IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Z1bGthbi9mZnYxX2NvbW1vbi5j b21wCisrKyBiL2xpYmF2Y29kZWMvdnVsa2FuL2ZmdjFfY29tbW9uLmNvbXAKQEAgLTEyNCw4ICsx MjQsMTIgQEAgaXZlYzIgZ2V0X3ByZWQocmVhZG9ubHkgdWltYWdlMkQgcHJlZCwgaXZlYzIgc3As IGl2ZWMyIG9mZiwKICAgICAgICAgfQogICAgICAgICBiYXNlICs9IHF1YW50X3RhYmxlW3F1YW50 X3RhYmxlX2lkeF1bM11bKGN1cjIgLSBjdXIpICYgTUFYX1FVQU5UX1RBQkxFX01BU0tdOwogCisj aWYgUkdCX0xJTkVDQUNIRSA9PSAyCiAgICAgICAgIC8qIHRvcC0yIGJlY2FtZSBjdXJyZW50IHVw b24gc3dhcCAqLwogICAgICAgICBUWVBFIHRvcDIgPSBUWVBFKGltYWdlTG9hZChwcmVkLCBzcCAr IExBRERSKG9mZikpW2NvbXBdKTsKKyNlbHNlCisgICAgICAgIFRZUEUgdG9wMiA9IFRZUEUoaW1h Z2VMb2FkKHByZWQsIHNwICsgTEFERFIob2ZmICsgaXZlYzIoMCwgLTIpKSlbY29tcF0pOworI2Vu ZGlmCiAgICAgICAgIGJhc2UgKz0gcXVhbnRfdGFibGVbcXVhbnRfdGFibGVfaWR4XVs0XVsodG9w MiAtIHRvcFsxXSkgJiBNQVhfUVVBTlRfVEFCTEVfTUFTS107CiAgICAgfQogCi0tIAoyLjUyLjAK CgpGcm9tIDlkYmFkMWJlOWIzZTE4YzI4ZGU1ZmNkOTMxNGI2MTU1NmZiMjFmZDcgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhh cmR0QG91dGxvb2suY29tPgpEYXRlOiBUaHUsIDQgRGVjIDIwMjUgMTU6NTM6MjcgKzAxMDAKU3Vi amVjdDogW1BBVENIIDIxNS8zMDRdIGF2Zm9ybWF0L21vdmVuYzogRml4IGxlYWsgb2YgSUFNRkNv bnRleHQgb24gZXJyb3IKCkZvcmdvdHRlbiBpbiA1Yjg3ODY5YzA5Y2VjZTE1ODNlNzRiNmY3OTZh YTgyNWE0NzY1NjMxLgoKU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFz LnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGliYXZmb3JtYXQvbW92ZW5jLmMgfCA1ICsr KystCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvbGliYXZmb3JtYXQvbW92ZW5jLmMgYi9saWJhdmZvcm1hdC9tb3ZlbmMuYwppbmRl eCBhZmJiMTE1MWFmLi44ZDhhY2QyYWZmIDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9tb3ZlbmMu YworKysgYi9saWJhdmZvcm1hdC9tb3ZlbmMuYwpAQCAtNzg2Nyw4ICs3ODY3LDExIEBAIHN0YXRp YyBpbnQgbW92X2luaXRfaWFtZl90cmFjayhBVkZvcm1hdENvbnRleHQgKnMpCiAgICAgICAgIGRl ZmF1bHQ6CiAgICAgICAgICAgICBhdl9hc3NlcnQwKDApOwogICAgICAgICB9Ci0gICAgICAgIGlm IChyZXQgPCAwKQorICAgICAgICBpZiAocmV0IDwgMCkgeworICAgICAgICAgICAgZmZfaWFtZl91 bmluaXRfY29udGV4dChpYW1mKTsKKyAgICAgICAgICAgIGF2X2ZyZWUoaWFtZik7CiAgICAgICAg ICAgICByZXR1cm4gcmV0OworICAgICAgICB9CiAgICAgfQogCiAgICAgdHJhY2sgPSAmbW92LT50 cmFja3NbZmlyc3RfaWFtZl9pZHhdOwotLSAKMi41Mi4wCgoKRnJvbSBlYzNhYTdhMTc2NTQyNjE3 OGRlZDAyMDFlNDhkODdiM2ZmZmI2ODc1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBK YW1lcyBBbG1lciA8amFtcmlhbEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMSBEZWMgMjAyNSAxMTow Nzo0MyAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjE2LzMwNF0gYXZmaWx0ZXIvZl9zaWRlZGF0YTog YWxzbyBoYW5kbGUgZ2xvYmFsIHNpZGUgZGF0YSBpbgogZmlsdGVyIGxpbmtzCgpTaG91bGQgZml4 IGlzc3VlICMyMTA3MQoKU2lnbmVkLW9mZi1ieTogSmFtZXMgQWxtZXIgPGphbXJpYWxAZ21haWwu Y29tPgotLS0KIGxpYmF2ZmlsdGVyL2Zfc2lkZWRhdGEuYyB8IDQ3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCsp LCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL2Zfc2lkZWRhdGEuYyBi L2xpYmF2ZmlsdGVyL2Zfc2lkZWRhdGEuYwppbmRleCBiODhhOGNiZDAyLi4xNjFmZDJiOWEyIDEw MDY0NAotLS0gYS9saWJhdmZpbHRlci9mX3NpZGVkYXRhLmMKKysrIGIvbGliYXZmaWx0ZXIvZl9z aWRlZGF0YS5jCkBAIC0yNywxMCArMjcsOCBAQAogI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRlcm5h bC5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9mcmFtZS5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9v cHQuaCIKLSNpbmNsdWRlICJhdWRpby5oIgogI2luY2x1ZGUgImF2ZmlsdGVyLmgiCiAjaW5jbHVk ZSAiZmlsdGVycy5oIgotI2luY2x1ZGUgInZpZGVvLmgiCiAKIGVudW0gU2lkZURhdGFNb2RlIHsK ICAgICBTSURFREFUQV9TRUxFQ1QsCkBAIC05Niw2ICs5NCwzMSBAQCBzdGF0aWMgYXZfY29sZCBp bnQgaW5pdChBVkZpbHRlckNvbnRleHQgKmN0eCkKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGlj IGludCBjb25maWdfcHJvcHMoQVZGaWx0ZXJMaW5rICpvdXRsaW5rKQoreworICAgIEFWRmlsdGVy Q29udGV4dCAqY3R4ID0gb3V0bGluay0+c3JjOworICAgIFNpZGVEYXRhQ29udGV4dCAqcyA9IGN0 eC0+cHJpdjsKKyAgICBjb25zdCBBVkZyYW1lU2lkZURhdGEgKnNkID0gTlVMTDsKKworICAgIGlm IChzLT50eXBlICE9IC0xKQorICAgICAgIHNkID0gYXZfZnJhbWVfc2lkZV9kYXRhX2dldChvdXRs aW5rLT5zaWRlX2RhdGEsIG91dGxpbmstPm5iX3NpZGVfZGF0YSwgcy0+dHlwZSk7CisKKyAgICBz d2l0Y2ggKHMtPm1vZGUpIHsKKyAgICBjYXNlIFNJREVEQVRBX1NFTEVDVDoKKyAgICAgICAgYnJl YWs7CisgICAgY2FzZSBTSURFREFUQV9ERUxFVEU6CisgICAgICAgIGlmIChzLT50eXBlID09IC0x KQorICAgICAgICAgICAgYXZfZnJhbWVfc2lkZV9kYXRhX2ZyZWUoJm91dGxpbmstPnNpZGVfZGF0 YSwgJm91dGxpbmstPm5iX3NpZGVfZGF0YSk7CisgICAgICAgIGVsc2UgaWYgKHNkKQorICAgICAg ICAgICAgYXZfZnJhbWVfc2lkZV9kYXRhX3JlbW92ZSgmb3V0bGluay0+c2lkZV9kYXRhLCAmb3V0 bGluay0+bmJfc2lkZV9kYXRhLCBzLT50eXBlKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVs dDoKKyAgICAgICAgYXZfYXNzZXJ0MCgwKTsKKyAgICB9OworCisgICAgcmV0dXJuIDA7Cit9CisK IHN0YXRpYyBpbnQgZmlsdGVyX2ZyYW1lKEFWRmlsdGVyTGluayAqaW5saW5rLCBBVkZyYW1lICpm cmFtZSkKIHsKICAgICBBVkZpbHRlckNvbnRleHQgKmN0eCA9IGlubGluay0+ZHN0OwpAQCAtMTQz LDYgKzE2NiwxNCBAQCBzdGF0aWMgY29uc3QgQVZGaWx0ZXJQYWQgYWlucHV0c1tdID0gewogICAg IH0sCiB9OwogCitzdGF0aWMgY29uc3QgQVZGaWx0ZXJQYWQgYW91dHB1dHNbXSA9IHsKKyAgICB7 CisgICAgICAgIC5uYW1lICAgICAgICAgPSAiZGVmYXVsdCIsCisgICAgICAgIC50eXBlICAgICAg ICAgPSBBVk1FRElBX1RZUEVfQVVESU8sCisgICAgICAgIC5jb25maWdfcHJvcHMgPSBjb25maWdf cHJvcHMsCisgICAgfSwKK307CisKIGNvbnN0IEZGRmlsdGVyIGZmX2FmX2FzaWRlZGF0YSA9IHsK ICAgICAucC5uYW1lICAgICAgICA9ICJhc2lkZWRhdGEiLAogICAgIC5wLmRlc2NyaXB0aW9uID0g TlVMTF9JRl9DT05GSUdfU01BTEwoIk1hbmlwdWxhdGUgYXVkaW8gZnJhbWUgc2lkZSBkYXRhLiIp LApAQCAtMTUyLDcgKzE4Myw3IEBAIGNvbnN0IEZGRmlsdGVyIGZmX2FmX2FzaWRlZGF0YSA9IHsK ICAgICAucHJpdl9zaXplICAgICA9IHNpemVvZihTaWRlRGF0YUNvbnRleHQpLAogICAgIC5pbml0 ICAgICAgICAgID0gaW5pdCwKICAgICBGSUxURVJfSU5QVVRTKGFpbnB1dHMpLAotICAgIEZJTFRF Ul9PVVRQVVRTKGZmX2F1ZGlvX2RlZmF1bHRfZmlsdGVycGFkKSwKKyAgICBGSUxURVJfT1VUUFVU Uyhhb3V0cHV0cyksCiB9OwogI2VuZGlmIC8qIENPTkZJR19BU0lERURBVEFfRklMVEVSICovCiAK QEAgLTE2OSw2ICsyMDAsMTQgQEAgc3RhdGljIGNvbnN0IEFWRmlsdGVyUGFkIGlucHV0c1tdID0g ewogICAgIH0sCiB9OwogCitzdGF0aWMgY29uc3QgQVZGaWx0ZXJQYWQgb3V0cHV0c1tdID0gewor ICAgIHsKKyAgICAgICAgLm5hbWUgICAgICAgICA9ICJkZWZhdWx0IiwKKyAgICAgICAgLnR5cGUg ICAgICAgICA9IEFWTUVESUFfVFlQRV9WSURFTywKKyAgICAgICAgLmNvbmZpZ19wcm9wcyA9IGNv bmZpZ19wcm9wcywKKyAgICB9LAorfTsKKwogY29uc3QgRkZGaWx0ZXIgZmZfdmZfc2lkZWRhdGEg PSB7CiAgICAgLnAubmFtZSAgICAgICAgPSAic2lkZWRhdGEiLAogICAgIC5wLmRlc2NyaXB0aW9u ID0gTlVMTF9JRl9DT05GSUdfU01BTEwoIk1hbmlwdWxhdGUgdmlkZW8gZnJhbWUgc2lkZSBkYXRh LiIpLApAQCAtMTc4LDYgKzIxNyw2IEBAIGNvbnN0IEZGRmlsdGVyIGZmX3ZmX3NpZGVkYXRhID0g ewogICAgIC5wcml2X3NpemUgICA9IHNpemVvZihTaWRlRGF0YUNvbnRleHQpLAogICAgIC5pbml0 ICAgICAgICA9IGluaXQsCiAgICAgRklMVEVSX0lOUFVUUyhpbnB1dHMpLAotICAgIEZJTFRFUl9P VVRQVVRTKGZmX3ZpZGVvX2RlZmF1bHRfZmlsdGVycGFkKSwKKyAgICBGSUxURVJfT1VUUFVUUyhv dXRwdXRzKSwKIH07CiAjZW5kaWYgLyogQ09ORklHX1NJREVEQVRBX0ZJTFRFUiAqLwotLSAKMi41 Mi4wCgoKRnJvbSAwZGY1ZDU3MjFkODBhY2VkNjg3NmNlMzQzNmUzNGI4MDcwNWE2M2FjIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhl aW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogRnJpLCA1IERlYyAyMDI1IDAwOjQwOjQ3ICswMTAw ClN1YmplY3Q6IFtQQVRDSCAyMTcvMzA0XSBzd3NjYWxlL3Rlc3RzL3N3c2NhbGU6IEZpeCB0eXBv CgpSZXZpZXdlZC1ieTogVGltbyBSb3RoZW5waWVsZXIgPHRpbW9Acm90aGVucGllbGVyLm9yZz4K U2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0 bG9vay5jb20+Ci0tLQogbGlic3dzY2FsZS90ZXN0cy9zd3NjYWxlLmMgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9saWJz d3NjYWxlL3Rlc3RzL3N3c2NhbGUuYyBiL2xpYnN3c2NhbGUvdGVzdHMvc3dzY2FsZS5jCmluZGV4 IDhhODViZWY5NGUuLjM3M2YwMzEzNjMgMTAwNjQ0Ci0tLSBhL2xpYnN3c2NhbGUvdGVzdHMvc3dz Y2FsZS5jCisrKyBiL2xpYnN3c2NhbGUvdGVzdHMvc3dzY2FsZS5jCkBAIC0xLDUgKzEsNSBAQAog LyoKLSAqIENvcHlyaWdodCAoQykgMjAyNCAgICAgIE5pa2xlcyBIYWFzCisgKiBDb3B5cmlnaHQg KEMpIDIwMjQgICAgICBOaWtsYXMgSGFhcwogICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMTEgTWlj aGFlbCBOaWVkZXJtYXllciA8bWljaGFlbG5pQGdteC5hdD4KICAqCiAgKiBUaGlzIGZpbGUgaXMg cGFydCBvZiBGRm1wZWcuCi0tIAoyLjUyLjAKCgpGcm9tIDQzMGNmZTEzNjRhODUyMDQzNzliNmI3 YTBjYjBmNTExM2MzMWNhZTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFycGFkIFBh bnlpayA8QXJwYWQuUGFueWlrQGFybS5jb20+CkRhdGU6IFdlZCwgMjYgTm92IDIwMjUgMTY6MzU6 MTEgKzAwMDAKU3ViamVjdDogW1BBVENIIDIxOC8zMDRdIHN3c2NhbGU6IFJlZmFjdG9yIFhZWitS R0Igc3RhdGUgYW5kIGFkZCBmdW5jdGlvbgogaG9va3MKClByZXBhcmUgZm9yIHh5ejEyVG9yZ2I0 OCBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgb3B0aW1pemF0aW9ucyBpbgpzdWJzZXF1ZW50IHBhdGNo ZXMgYnk6CiAtIEdyb3VwaW5nIFhZWitSR0IgZ2FtbWEgTFVUcyBhbmQgM3gzIG1hdHJpY2VzIGlu dG8gU3dzQ29sb3JYZm9ybQogICAoY3R4LT54eXoycmdiIGFuZCBjdHgtPnJnYjJ4eXopLCByZXBs YWNpbmcgc2NhdHRlcmVkIGZpZWxkcy4KIC0gRHJvcHBpbmcgdGhlIHVudXNlZCBsYXN0IG1hdHJp eCBjb2x1bW4gZ2l2aW5nIHRoZSBzYW1lIG9yIHNtYWxsZXIKICAgU3dzSW50ZXJuYWwgc2l6ZS4K IC0gUmVuYW1pbmcgZmZfeHl6MTJUb3JnYjQ4IGFuZCBmZl9yZ2I0OFRveHl6MTIgYW5kIHJvdXRp bmcgY2FsbHMgdmlhCiAgIHRoZSBuZXcgcGVyLWNvbnRleHQgZnVuY3Rpb24gcG9pbnRlciAoY3R4 LT54eXoxMlRvcmdiNDggYW5kCiAgIGN0eC0+cmdiNDhUb3h5ejEyKSBpbiBncmFwaC5jIGFuZCBz d3NjYWxlLmMuCiAtIEFkZGluZyBmZl9zd3NfaW5pdF94eXpkc3AgYW5kIGludm9raW5nIGl0IGlu IHN3c2NhbGUgaW5pdCBwYXRocwogICAobm9ybWFsIGFuZCB1bnNjYWxlZCkuCiAtIE1ha2luZyBm aWxsX3h5enRhYmxlcyBwdWJsaWMgdG8gZWFzZSBpdHMgc2V0dXAgbGF0ZXIgaW4gY2hlY2thc20u CgpUaGVzZSBtb2RpZmljYXRpb25zIGRvIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hh bmdlcy4KClNpZ25lZC1vZmYtYnk6IEFycGFkIFBhbnlpayA8QXJwYWQuUGFueWlrQGFybS5jb20+ Ci0tLQogbGlic3dzY2FsZS9ncmFwaC5jICAgICAgICAgICAgfCAgNiArKy0KIGxpYnN3c2NhbGUv c3dzY2FsZS5jICAgICAgICAgIHwgOTIgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0KIGxpYnN3c2NhbGUvc3dzY2FsZV9pbnRlcm5hbC5oIHwgMzIgKysrKysrKy0tLS0tCiBsaWJz d3NjYWxlL3N3c2NhbGVfdW5zY2FsZWQuYyB8ICAyICsKIGxpYnN3c2NhbGUvdXRpbHMuYyAgICAg ICAgICAgIHwgMzcgKysrKysrKy0tLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9u cygrKSwgNzQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlic3dzY2FsZS9ncmFwaC5jIGIv bGlic3dzY2FsZS9ncmFwaC5jCmluZGV4IDBhNzliMTdmODkuLmNmNDQ3MTBjMmQgMTAwNjQ0Ci0t LSBhL2xpYnN3c2NhbGUvZ3JhcGguYworKysgYi9saWJzd3NjYWxlL2dyYXBoLmMKQEAgLTE0Miw3 ICsxNDIsOCBAQCBzdGF0aWMgdm9pZCBydW5fcmdiMChjb25zdCBTd3NJbWcgKm91dCwgY29uc3Qg U3dzSW1nICppbiwgaW50IHksIGludCBoLAogc3RhdGljIHZvaWQgcnVuX3h5ejJyZ2IoY29uc3Qg U3dzSW1nICpvdXQsIGNvbnN0IFN3c0ltZyAqaW4sIGludCB5LCBpbnQgaCwKICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IFN3c1Bhc3MgKnBhc3MpCiB7Ci0gICAgZmZfeHl6MTJUb3JnYjQ4 KHBhc3MtPnByaXYsIG91dC0+ZGF0YVswXSArIHkgKiBvdXQtPmxpbmVzaXplWzBdLCBvdXQtPmxp bmVzaXplWzBdLAorICAgIGNvbnN0IFN3c0ludGVybmFsICpjID0gcGFzcy0+cHJpdjsKKyAgICBj LT54eXoxMlRvcmdiNDgoYywgb3V0LT5kYXRhWzBdICsgeSAqIG91dC0+bGluZXNpemVbMF0sIG91 dC0+bGluZXNpemVbMF0sCiAgICAgICAgICAgICAgICAgICAgIGluLT5kYXRhWzBdICsgeSAqIGlu LT5saW5lc2l6ZVswXSwgaW4tPmxpbmVzaXplWzBdLAogICAgICAgICAgICAgICAgICAgICBwYXNz LT53aWR0aCwgaCk7CiB9CkBAIC0xNTAsNyArMTUxLDggQEAgc3RhdGljIHZvaWQgcnVuX3h5ejJy Z2IoY29uc3QgU3dzSW1nICpvdXQsIGNvbnN0IFN3c0ltZyAqaW4sIGludCB5LCBpbnQgaCwKIHN0 YXRpYyB2b2lkIHJ1bl9yZ2IyeHl6KGNvbnN0IFN3c0ltZyAqb3V0LCBjb25zdCBTd3NJbWcgKmlu LCBpbnQgeSwgaW50IGgsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTd3NQYXNzICpw YXNzKQogewotICAgIGZmX3JnYjQ4VG94eXoxMihwYXNzLT5wcml2LCBvdXQtPmRhdGFbMF0gKyB5 ICogb3V0LT5saW5lc2l6ZVswXSwgb3V0LT5saW5lc2l6ZVswXSwKKyAgICBjb25zdCBTd3NJbnRl cm5hbCAqYyA9IHBhc3MtPnByaXY7CisgICAgYy0+cmdiNDhUb3h5ejEyKGMsIG91dC0+ZGF0YVsw XSArIHkgKiBvdXQtPmxpbmVzaXplWzBdLCBvdXQtPmxpbmVzaXplWzBdLAogICAgICAgICAgICAg ICAgICAgICBpbi0+ZGF0YVswXSArIHkgKiBpbi0+bGluZXNpemVbMF0sIGluLT5saW5lc2l6ZVsw XSwKICAgICAgICAgICAgICAgICAgICAgcGFzcy0+d2lkdGgsIGgpOwogfQpkaWZmIC0tZ2l0IGEv bGlic3dzY2FsZS9zd3NjYWxlLmMgYi9saWJzd3NjYWxlL3N3c2NhbGUuYwppbmRleCBmNGM3ZWNj YWM0Li45NWE2MWE0MTgzIDEwMDY0NAotLS0gYS9saWJzd3NjYWxlL3N3c2NhbGUuYworKysgYi9s aWJzd3NjYWxlL3N3c2NhbGUuYwpAQCAtNjYwLDYgKzY2MCw4IEBAIHN0YXRpYyBhdl9jb2xkIHZv aWQgc3dzX2luaXRfc3dzY2FsZShTd3NJbnRlcm5hbCAqYykKIHsKICAgICBlbnVtIEFWUGl4ZWxG b3JtYXQgc3JjRm9ybWF0ID0gYy0+b3B0cy5zcmNfZm9ybWF0OwogCisgICAgZmZfc3dzX2luaXRf eHl6ZHNwKGMpOworCiAgICAgZmZfc3dzX2luaXRfb3V0cHV0X2Z1bmNzKGMsICZjLT55dXYycGxh bmUxLCAmYy0+eXV2MnBsYW5lWCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmMtPnl1 djJudjEyY1gsICZjLT55dXYycGFja2VkMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JmMtPnl1djJwYWNrZWQyLCAmYy0+eXV2MnBhY2tlZFgsICZjLT55dXYyYW55WCk7CkBAIC03Mzcs OCArNzM5LDggQEAgc3RhdGljIGludCBjaGVja19pbWFnZV9wb2ludGVycyhjb25zdCB1aW50OF90 ICogY29uc3QgZGF0YVs0XSwgZW51bSBBVlBpeGVsRm9ybWEKICAgICByZXR1cm4gMTsKIH0KIAot dm9pZCBmZl94eXoxMlRvcmdiNDgoY29uc3QgU3dzSW50ZXJuYWwgKmMsIHVpbnQ4X3QgKmRzdCwg aW50IGRzdF9zdHJpZGUsCi0gICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpzcmMs IGludCBzcmNfc3RyaWRlLCBpbnQgdywgaW50IGgpCitzdGF0aWMgdm9pZCB4eXoxMlRvcmdiNDhf Yyhjb25zdCBTd3NJbnRlcm5hbCAqYywgdWludDhfdCAqZHN0LCBpbnQgZHN0X3N0cmlkZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNyYywgaW50IHNyY19zdHJp ZGUsIGludCB3LCBpbnQgaCkKIHsKICAgICBjb25zdCBBVlBpeEZtdERlc2NyaXB0b3IgKmRlc2Mg PSBhdl9waXhfZm10X2Rlc2NfZ2V0KGMtPm9wdHMuc3JjX2Zvcm1hdCk7CiAKQEAgLTc1OSwyMCAr NzYxLDIwIEBAIHZvaWQgZmZfeHl6MTJUb3JnYjQ4KGNvbnN0IFN3c0ludGVybmFsICpjLCB1aW50 OF90ICpkc3QsIGludCBkc3Rfc3RyaWRlLAogICAgICAgICAgICAgICAgIHogPSBBVl9STDE2KHNy YzE2ICsgeHAgKyAyKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgeCA9IGMtPnh5emdh bW1hW3ggPj4gNF07Ci0gICAgICAgICAgICB5ID0gYy0+eHl6Z2FtbWFbeSA+PiA0XTsKLSAgICAg ICAgICAgIHogPSBjLT54eXpnYW1tYVt6ID4+IDRdOworICAgICAgICAgICAgeCA9IGMtPnh5ejJy Z2IuZ2FtbWEuaW5beCA+PiA0XTsKKyAgICAgICAgICAgIHkgPSBjLT54eXoycmdiLmdhbW1hLmlu W3kgPj4gNF07CisgICAgICAgICAgICB6ID0gYy0+eHl6MnJnYi5nYW1tYS5pblt6ID4+IDRdOwog CiAgICAgICAgICAgICAvLyBjb252ZXJ0IGZyb20gWFlabGluZWFyIHRvIHNSR0JsaW5lYXIKLSAg ICAgICAgICAgIHIgPSBjLT54eXoycmdiX21hdHJpeFswXVswXSAqIHggKwotICAgICAgICAgICAg ICAgIGMtPnh5ejJyZ2JfbWF0cml4WzBdWzFdICogeSArCi0gICAgICAgICAgICAgICAgYy0+eHl6 MnJnYl9tYXRyaXhbMF1bMl0gKiB6ID4+IDEyOwotICAgICAgICAgICAgZyA9IGMtPnh5ejJyZ2Jf bWF0cml4WzFdWzBdICogeCArCi0gICAgICAgICAgICAgICAgYy0+eHl6MnJnYl9tYXRyaXhbMV1b MV0gKiB5ICsKLSAgICAgICAgICAgICAgICBjLT54eXoycmdiX21hdHJpeFsxXVsyXSAqIHogPj4g MTI7Ci0gICAgICAgICAgICBiID0gYy0+eHl6MnJnYl9tYXRyaXhbMl1bMF0gKiB4ICsKLSAgICAg ICAgICAgICAgICBjLT54eXoycmdiX21hdHJpeFsyXVsxXSAqIHkgKwotICAgICAgICAgICAgICAg IGMtPnh5ejJyZ2JfbWF0cml4WzJdWzJdICogeiA+PiAxMjsKKyAgICAgICAgICAgIHIgPSBjLT54 eXoycmdiLm1hdFswXVswXSAqIHggKworICAgICAgICAgICAgICAgIGMtPnh5ejJyZ2IubWF0WzBd WzFdICogeSArCisgICAgICAgICAgICAgICAgYy0+eHl6MnJnYi5tYXRbMF1bMl0gKiB6ID4+IDEy OworICAgICAgICAgICAgZyA9IGMtPnh5ejJyZ2IubWF0WzFdWzBdICogeCArCisgICAgICAgICAg ICAgICAgYy0+eHl6MnJnYi5tYXRbMV1bMV0gKiB5ICsKKyAgICAgICAgICAgICAgICBjLT54eXoy cmdiLm1hdFsxXVsyXSAqIHogPj4gMTI7CisgICAgICAgICAgICBiID0gYy0+eHl6MnJnYi5tYXRb Ml1bMF0gKiB4ICsKKyAgICAgICAgICAgICAgICBjLT54eXoycmdiLm1hdFsyXVsxXSAqIHkgKwor ICAgICAgICAgICAgICAgIGMtPnh5ejJyZ2IubWF0WzJdWzJdICogeiA+PiAxMjsKIAogICAgICAg ICAgICAgLy8gbGltaXQgdmFsdWVzIHRvIDE2LWJpdCBkZXB0aAogICAgICAgICAgICAgciA9IGF2 X2NsaXBfdWludDE2KHIpOwpAQCAtNzgxLDEzICs3ODMsMTMgQEAgdm9pZCBmZl94eXoxMlRvcmdi NDgoY29uc3QgU3dzSW50ZXJuYWwgKmMsIHVpbnQ4X3QgKmRzdCwgaW50IGRzdF9zdHJpZGUsCiAK ICAgICAgICAgICAgIC8vIGNvbnZlcnQgZnJvbSBzUkdCbGluZWFyIHRvIFJHQiBhbmQgc2NhbGUg ZnJvbSAxMmJpdCB0byAxNmJpdAogICAgICAgICAgICAgaWYgKGRlc2MtPmZsYWdzICYgQVZfUElY X0ZNVF9GTEFHX0JFKSB7Ci0gICAgICAgICAgICAgICAgQVZfV0IxNihkc3QxNiArIHhwICsgMCwg Yy0+cmdiZ2FtbWFbcl0gPDwgNCk7Ci0gICAgICAgICAgICAgICAgQVZfV0IxNihkc3QxNiArIHhw ICsgMSwgYy0+cmdiZ2FtbWFbZ10gPDwgNCk7Ci0gICAgICAgICAgICAgICAgQVZfV0IxNihkc3Qx NiArIHhwICsgMiwgYy0+cmdiZ2FtbWFbYl0gPDwgNCk7CisgICAgICAgICAgICAgICAgQVZfV0Ix Nihkc3QxNiArIHhwICsgMCwgYy0+eHl6MnJnYi5nYW1tYS5vdXRbcl0gPDwgNCk7CisgICAgICAg ICAgICAgICAgQVZfV0IxNihkc3QxNiArIHhwICsgMSwgYy0+eHl6MnJnYi5nYW1tYS5vdXRbZ10g PDwgNCk7CisgICAgICAgICAgICAgICAgQVZfV0IxNihkc3QxNiArIHhwICsgMiwgYy0+eHl6MnJn Yi5nYW1tYS5vdXRbYl0gPDwgNCk7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg ICAgIEFWX1dMMTYoZHN0MTYgKyB4cCArIDAsIGMtPnJnYmdhbW1hW3JdIDw8IDQpOwotICAgICAg ICAgICAgICAgIEFWX1dMMTYoZHN0MTYgKyB4cCArIDEsIGMtPnJnYmdhbW1hW2ddIDw8IDQpOwot ICAgICAgICAgICAgICAgIEFWX1dMMTYoZHN0MTYgKyB4cCArIDIsIGMtPnJnYmdhbW1hW2JdIDw8 IDQpOworICAgICAgICAgICAgICAgIEFWX1dMMTYoZHN0MTYgKyB4cCArIDAsIGMtPnh5ejJyZ2Iu Z2FtbWEub3V0W3JdIDw8IDQpOworICAgICAgICAgICAgICAgIEFWX1dMMTYoZHN0MTYgKyB4cCAr IDEsIGMtPnh5ejJyZ2IuZ2FtbWEub3V0W2ddIDw8IDQpOworICAgICAgICAgICAgICAgIEFWX1dM MTYoZHN0MTYgKyB4cCArIDIsIGMtPnh5ejJyZ2IuZ2FtbWEub3V0W2JdIDw8IDQpOwogICAgICAg ICAgICAgfQogICAgICAgICB9CiAKQEAgLTc5Niw4ICs3OTgsOCBAQCB2b2lkIGZmX3h5ejEyVG9y Z2I0OChjb25zdCBTd3NJbnRlcm5hbCAqYywgdWludDhfdCAqZHN0LCBpbnQgZHN0X3N0cmlkZSwK ICAgICB9CiB9CiAKLXZvaWQgZmZfcmdiNDhUb3h5ejEyKGNvbnN0IFN3c0ludGVybmFsICpjLCB1 aW50OF90ICpkc3QsIGludCBkc3Rfc3RyaWRlLAotICAgICAgICAgICAgICAgICAgICAgY29uc3Qg dWludDhfdCAqc3JjLCBpbnQgc3JjX3N0cmlkZSwgaW50IHcsIGludCBoKQorc3RhdGljIHZvaWQg cmdiNDhUb3h5ejEyX2MoY29uc3QgU3dzSW50ZXJuYWwgKmMsIHVpbnQ4X3QgKmRzdCwgaW50IGRz dF9zdHJpZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpzcmMs IGludCBzcmNfc3RyaWRlLCBpbnQgdywgaW50IGgpCiB7CiAgICAgY29uc3QgQVZQaXhGbXREZXNj cmlwdG9yICpkZXNjID0gYXZfcGl4X2ZtdF9kZXNjX2dldChjLT5vcHRzLmRzdF9mb3JtYXQpOwog CkBAIC04MTgsMjAgKzgyMCwyMCBAQCB2b2lkIGZmX3JnYjQ4VG94eXoxMihjb25zdCBTd3NJbnRl cm5hbCAqYywgdWludDhfdCAqZHN0LCBpbnQgZHN0X3N0cmlkZSwKICAgICAgICAgICAgICAgICBi ID0gQVZfUkwxNihzcmMxNiArIHhwICsgMik7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg IHIgPSBjLT5yZ2JnYW1tYWludltyPj40XTsKLSAgICAgICAgICAgIGcgPSBjLT5yZ2JnYW1tYWlu dltnPj40XTsKLSAgICAgICAgICAgIGIgPSBjLT5yZ2JnYW1tYWludltiPj40XTsKKyAgICAgICAg ICAgIHIgPSBjLT5yZ2IyeHl6LmdhbW1hLmluW3IgPj4gNF07CisgICAgICAgICAgICBnID0gYy0+ cmdiMnh5ei5nYW1tYS5pbltnID4+IDRdOworICAgICAgICAgICAgYiA9IGMtPnJnYjJ4eXouZ2Ft bWEuaW5bYiA+PiA0XTsKIAogICAgICAgICAgICAgLy8gY29udmVydCBmcm9tIHNSR0JsaW5lYXIg dG8gWFlabGluZWFyCi0gICAgICAgICAgICB4ID0gYy0+cmdiMnh5el9tYXRyaXhbMF1bMF0gKiBy ICsKLSAgICAgICAgICAgICAgICBjLT5yZ2IyeHl6X21hdHJpeFswXVsxXSAqIGcgKwotICAgICAg ICAgICAgICAgIGMtPnJnYjJ4eXpfbWF0cml4WzBdWzJdICogYiA+PiAxMjsKLSAgICAgICAgICAg IHkgPSBjLT5yZ2IyeHl6X21hdHJpeFsxXVswXSAqIHIgKwotICAgICAgICAgICAgICAgIGMtPnJn YjJ4eXpfbWF0cml4WzFdWzFdICogZyArCi0gICAgICAgICAgICAgICAgYy0+cmdiMnh5el9tYXRy aXhbMV1bMl0gKiBiID4+IDEyOwotICAgICAgICAgICAgeiA9IGMtPnJnYjJ4eXpfbWF0cml4WzJd WzBdICogciArCi0gICAgICAgICAgICAgICAgYy0+cmdiMnh5el9tYXRyaXhbMl1bMV0gKiBnICsK LSAgICAgICAgICAgICAgICBjLT5yZ2IyeHl6X21hdHJpeFsyXVsyXSAqIGIgPj4gMTI7CisgICAg ICAgICAgICB4ID0gYy0+cmdiMnh5ei5tYXRbMF1bMF0gKiByICsKKyAgICAgICAgICAgICAgICBj LT5yZ2IyeHl6Lm1hdFswXVsxXSAqIGcgKworICAgICAgICAgICAgICAgIGMtPnJnYjJ4eXoubWF0 WzBdWzJdICogYiA+PiAxMjsKKyAgICAgICAgICAgIHkgPSBjLT5yZ2IyeHl6Lm1hdFsxXVswXSAq IHIgKworICAgICAgICAgICAgICAgIGMtPnJnYjJ4eXoubWF0WzFdWzFdICogZyArCisgICAgICAg ICAgICAgICAgYy0+cmdiMnh5ei5tYXRbMV1bMl0gKiBiID4+IDEyOworICAgICAgICAgICAgeiA9 IGMtPnJnYjJ4eXoubWF0WzJdWzBdICogciArCisgICAgICAgICAgICAgICAgYy0+cmdiMnh5ei5t YXRbMl1bMV0gKiBnICsKKyAgICAgICAgICAgICAgICBjLT5yZ2IyeHl6Lm1hdFsyXVsyXSAqIGIg Pj4gMTI7CiAKICAgICAgICAgICAgIC8vIGxpbWl0IHZhbHVlcyB0byAxNi1iaXQgZGVwdGgKICAg ICAgICAgICAgIHggPSBhdl9jbGlwX3VpbnQxNih4KTsKQEAgLTg0MCwxMyArODQyLDEzIEBAIHZv aWQgZmZfcmdiNDhUb3h5ejEyKGNvbnN0IFN3c0ludGVybmFsICpjLCB1aW50OF90ICpkc3QsIGlu dCBkc3Rfc3RyaWRlLAogCiAgICAgICAgICAgICAvLyBjb252ZXJ0IGZyb20gWFlabGluZWFyIHRv IFgnWSdaJyBhbmQgc2NhbGUgZnJvbSAxMmJpdCB0byAxNmJpdAogICAgICAgICAgICAgaWYgKGRl c2MtPmZsYWdzICYgQVZfUElYX0ZNVF9GTEFHX0JFKSB7Ci0gICAgICAgICAgICAgICAgQVZfV0Ix Nihkc3QxNiArIHhwICsgMCwgYy0+eHl6Z2FtbWFpbnZbeF0gPDwgNCk7Ci0gICAgICAgICAgICAg ICAgQVZfV0IxNihkc3QxNiArIHhwICsgMSwgYy0+eHl6Z2FtbWFpbnZbeV0gPDwgNCk7Ci0gICAg ICAgICAgICAgICAgQVZfV0IxNihkc3QxNiArIHhwICsgMiwgYy0+eHl6Z2FtbWFpbnZbel0gPDwg NCk7CisgICAgICAgICAgICAgICAgQVZfV0IxNihkc3QxNiArIHhwICsgMCwgYy0+cmdiMnh5ei5n YW1tYS5vdXRbeF0gPDwgNCk7CisgICAgICAgICAgICAgICAgQVZfV0IxNihkc3QxNiArIHhwICsg MSwgYy0+cmdiMnh5ei5nYW1tYS5vdXRbeV0gPDwgNCk7CisgICAgICAgICAgICAgICAgQVZfV0Ix Nihkc3QxNiArIHhwICsgMiwgYy0+cmdiMnh5ei5nYW1tYS5vdXRbel0gPDwgNCk7CiAgICAgICAg ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIEFWX1dMMTYoZHN0MTYgKyB4cCArIDAsIGMt Pnh5emdhbW1haW52W3hdIDw8IDQpOwotICAgICAgICAgICAgICAgIEFWX1dMMTYoZHN0MTYgKyB4 cCArIDEsIGMtPnh5emdhbW1haW52W3ldIDw8IDQpOwotICAgICAgICAgICAgICAgIEFWX1dMMTYo ZHN0MTYgKyB4cCArIDIsIGMtPnh5emdhbW1haW52W3pdIDw8IDQpOworICAgICAgICAgICAgICAg IEFWX1dMMTYoZHN0MTYgKyB4cCArIDAsIGMtPnJnYjJ4eXouZ2FtbWEub3V0W3hdIDw8IDQpOwor ICAgICAgICAgICAgICAgIEFWX1dMMTYoZHN0MTYgKyB4cCArIDEsIGMtPnJnYjJ4eXouZ2FtbWEu b3V0W3ldIDw8IDQpOworICAgICAgICAgICAgICAgIEFWX1dMMTYoZHN0MTYgKyB4cCArIDIsIGMt PnJnYjJ4eXouZ2FtbWEub3V0W3pdIDw8IDQpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAK QEAgLTg1NSw2ICs4NTcsMTIgQEAgdm9pZCBmZl9yZ2I0OFRveHl6MTIoY29uc3QgU3dzSW50ZXJu YWwgKmMsIHVpbnQ4X3QgKmRzdCwgaW50IGRzdF9zdHJpZGUsCiAgICAgfQogfQogCithdl9jb2xk IHZvaWQgZmZfc3dzX2luaXRfeHl6ZHNwKFN3c0ludGVybmFsICpjKQoreworICAgIGMtPnh5ejEy VG9yZ2I0OCA9IHh5ejEyVG9yZ2I0OF9jOworICAgIGMtPnJnYjQ4VG94eXoxMiA9IHJnYjQ4VG94 eXoxMl9jOworfQorCiB2b2lkIGZmX3VwZGF0ZV9wYWxldHRlKFN3c0ludGVybmFsICpjLCBjb25z dCB1aW50MzJfdCAqcGFsKQogewogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjU2OyBpKyspIHsK QEAgLTExMTAsNyArMTExOCw3IEBAIHN0YXRpYyBpbnQgc2NhbGVfaW50ZXJuYWwoU3dzQ29udGV4 dCAqc3dzLAogICAgICAgICBiYXNlID0gc3JjU3RyaWRlWzBdIDwgMCA/IGMtPnh5el9zY3JhdGNo IC0gc3JjU3RyaWRlWzBdICogKHNyY1NsaWNlSC0xKSA6CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYy0+eHl6X3NjcmF0Y2g7CiAKLSAgICAgICAgZmZfeHl6MTJUb3JnYjQ4KGMs IGJhc2UsIHNyY1N0cmlkZVswXSwgc3JjMlswXSwgc3JjU3RyaWRlWzBdLCBzd3MtPnNyY193LCBz cmNTbGljZUgpOworICAgICAgICBjLT54eXoxMlRvcmdiNDgoYywgYmFzZSwgc3JjU3RyaWRlWzBd LCBzcmMyWzBdLCBzcmNTdHJpZGVbMF0sIHN3cy0+c3JjX3csIHNyY1NsaWNlSCk7CiAgICAgICAg IHNyYzJbMF0gPSBiYXNlOwogICAgIH0KIApAQCAtMTE4Miw3ICsxMTkwLDcgQEAgc3RhdGljIGlu dCBzY2FsZV9pbnRlcm5hbChTd3NDb250ZXh0ICpzd3MsCiAgICAgICAgIH0KIAogICAgICAgICAv KiByZXBsYWNlIG9uIHRoZSBzYW1lIGRhdGEgKi8KLSAgICAgICAgZmZfcmdiNDhUb3h5ejEyKGMs IGRzdCwgZHN0U3RyaWRlMlswXSwgZHN0LCBkc3RTdHJpZGUyWzBdLCBzd3MtPmRzdF93LCByZXQp OworICAgICAgICBjLT5yZ2I0OFRveHl6MTIoYywgZHN0LCBkc3RTdHJpZGUyWzBdLCBkc3QsIGRz dFN0cmlkZTJbMF0sIHN3cy0+ZHN0X3csIHJldCk7CiAgICAgfQogCiAgICAgLyogcmVzZXQgc2xp Y2UgZGlyZWN0aW9uIGF0IGVuZCBvZiBmcmFtZSAqLwpkaWZmIC0tZ2l0IGEvbGlic3dzY2FsZS9z d3NjYWxlX2ludGVybmFsLmggYi9saWJzd3NjYWxlL3N3c2NhbGVfaW50ZXJuYWwuaAppbmRleCA1 ZGQ2NWE4ZDcxLi4wMmU2MjVhMTBlIDEwMDY0NAotLS0gYS9saWJzd3NjYWxlL3N3c2NhbGVfaW50 ZXJuYWwuaAorKysgYi9saWJzd3NjYWxlL3N3c2NhbGVfaW50ZXJuYWwuaApAQCAtOTMsNiArOTMs MTkgQEAgdHlwZWRlZiBpbnQgKCpTd3NGdW5jKShTd3NJbnRlcm5hbCAqYywgY29uc3QgdWludDhf dCAqY29uc3Qgc3JjW10sCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCBzcmNTdHJp ZGVbXSwgaW50IHNyY1NsaWNlWSwgaW50IHNyY1NsaWNlSCwKICAgICAgICAgICAgICAgICAgICAg ICAgdWludDhfdCAqY29uc3QgZHN0W10sIGNvbnN0IGludCBkc3RTdHJpZGVbXSk7CiAKK3R5cGVk ZWYgdm9pZCAoKlN3c0NvbG9yRnVuYykoY29uc3QgU3dzSW50ZXJuYWwgKmMsIHVpbnQ4X3QgKmRz dCwgaW50IGRzdF9zdHJpZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVp bnQ4X3QgKnNyYywgaW50IHNyY19zdHJpZGUsIGludCB3LCBpbnQgaCk7CisKK3R5cGVkZWYgc3Ry dWN0IFN3c0x1dHMgeworICAgIHVpbnQxNl90ICppbjsKKyAgICB1aW50MTZfdCAqb3V0OworfSBT d3NMdXRzOworCit0eXBlZGVmIHN0cnVjdCBTd3NDb2xvclhmb3JtIHsKKyAgICBTd3NMdXRzIGdh bW1hOworICAgIGludDE2X3QgbWF0WzNdWzNdOworfSBTd3NDb2xvclhmb3JtOworCiAvKioKICAq IFdyaXRlIG9uZSBsaW5lIG9mIGhvcml6b250YWxseSBzY2FsZWQgZGF0YSB0byBwbGFuYXIgb3V0 cHV0CiAgKiB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHZlcnRpY2FsIHNjYWxpbmcgKG9yIHBvaW50 LXNjYWxpbmcpLgpAQCAtNTQ3LDEyICs1NjAsMTAgQEAgc3RydWN0IFN3c0ludGVybmFsIHsKIC8q IHByZSBkZWZpbmVkIGNvbG9yLXNwYWNlcyBnYW1tYSAqLwogI2RlZmluZSBYWVpfR0FNTUEgKDIu NikKICNkZWZpbmUgUkdCX0dBTU1BICgyLjIpCi0gICAgdWludDE2X3QgKnh5emdhbW1hOwotICAg IHVpbnQxNl90ICpyZ2JnYW1tYTsKLSAgICB1aW50MTZfdCAqeHl6Z2FtbWFpbnY7Ci0gICAgdWlu dDE2X3QgKnJnYmdhbW1haW52OwotICAgIGludDE2X3QgeHl6MnJnYl9tYXRyaXhbM11bNF07Ci0g ICAgaW50MTZfdCByZ2IyeHl6X21hdHJpeFszXVs0XTsKKyAgICBTd3NDb2xvckZ1bmMgIHh5ejEy VG9yZ2I0ODsKKyAgICBTd3NDb2xvckZ1bmMgIHJnYjQ4VG94eXoxMjsKKyAgICBTd3NDb2xvclhm b3JtIHh5ejJyZ2I7CisgICAgU3dzQ29sb3JYZm9ybSByZ2IyeHl6OwogCiAgICAgLyogZnVuY3Rp b24gcG9pbnRlcnMgZm9yIHN3c2NhbGUoKSAqLwogICAgIHl1djJwbGFuYXIxX2ZuIHl1djJwbGFu ZTE7CkBAIC03MjAsNiArNzMxLDkgQEAgYXZfY29sZCB2b2lkIGZmX3N3c19pbml0X3JhbmdlX2Nv bnZlcnRfbG9vbmdhcmNoKFN3c0ludGVybmFsICpjKTsKIGF2X2NvbGQgdm9pZCBmZl9zd3NfaW5p dF9yYW5nZV9jb252ZXJ0X3Jpc2N2KFN3c0ludGVybmFsICpjKTsKIGF2X2NvbGQgdm9pZCBmZl9z d3NfaW5pdF9yYW5nZV9jb252ZXJ0X3g4NihTd3NJbnRlcm5hbCAqYyk7CiAKK2F2X2NvbGQgdm9p ZCBmZl9zd3NfaW5pdF94eXpkc3AoU3dzSW50ZXJuYWwgKmMpOworYXZfY29sZCBpbnQgZmZfc3dz X2ZpbGxfeHl6dGFibGVzKFN3c0ludGVybmFsICpjKTsKKwogU3dzRnVuYyBmZl95dXYycmdiX2lu aXRfeDg2KFN3c0ludGVybmFsICpjKTsKIFN3c0Z1bmMgZmZfeXV2MnJnYl9pbml0X3BwYyhTd3NJ bnRlcm5hbCAqYyk7CiBTd3NGdW5jIGZmX3l1djJyZ2JfaW5pdF9sb29uZ2FyY2goU3dzSW50ZXJu YWwgKmMpOwpAQCAtMTA0MywxMiArMTA1Nyw2IEBAIHZvaWQgZmZfY29weVBsYW5lKGNvbnN0IHVp bnQ4X3QgKnNyYywgaW50IHNyY1N0cmlkZSwKICAgICAgICAgICAgICAgICAgIGludCBzcmNTbGlj ZVksIGludCBzcmNTbGljZUgsIGludCB3aWR0aCwKICAgICAgICAgICAgICAgICAgIHVpbnQ4X3Qg KmRzdCwgaW50IGRzdFN0cmlkZSk7CiAKLXZvaWQgZmZfeHl6MTJUb3JnYjQ4KGNvbnN0IFN3c0lu dGVybmFsICpjLCB1aW50OF90ICpkc3QsIGludCBkc3Rfc3RyaWRlLAotICAgICAgICAgICAgICAg ICAgICAgY29uc3QgdWludDhfdCAqc3JjLCBpbnQgc3JjX3N0cmlkZSwgaW50IHcsIGludCBoKTsK LQotdm9pZCBmZl9yZ2I0OFRveHl6MTIoY29uc3QgU3dzSW50ZXJuYWwgKmMsIHVpbnQ4X3QgKmRz dCwgaW50IGRzdF9zdHJpZGUsCi0gICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpz cmMsIGludCBzcmNfc3RyaWRlLCBpbnQgdywgaW50IGgpOwotCiBzdGF0aWMgaW5saW5lIHZvaWQg ZmlsbFBsYW5lMTYodWludDhfdCAqcGxhbmUsIGludCBzdHJpZGUsIGludCB3aWR0aCwgaW50IGhl aWdodCwgaW50IHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFscGhhLCBp bnQgYml0cywgY29uc3QgaW50IGJpZ19lbmRpYW4pCiB7CmRpZmYgLS1naXQgYS9saWJzd3NjYWxl L3N3c2NhbGVfdW5zY2FsZWQuYyBiL2xpYnN3c2NhbGUvc3dzY2FsZV91bnNjYWxlZC5jCmluZGV4 IDJjNzkxZTg5ZmUuLmM5ZmViODRjOGUgMTAwNjQ0Ci0tLSBhL2xpYnN3c2NhbGUvc3dzY2FsZV91 bnNjYWxlZC5jCisrKyBiL2xpYnN3c2NhbGUvc3dzY2FsZV91bnNjYWxlZC5jCkBAIC0yNjg1LDYg KzI2ODUsOCBAQCB2b2lkIGZmX2dldF91bnNjYWxlZF9zd3NjYWxlKFN3c0ludGVybmFsICpjKQog ICAgICAgICB9CiAgICAgfQogCisgICAgZmZfc3dzX2luaXRfeHl6ZHNwKGMpOworCiAjaWYgQVJD SF9QUEMKICAgICBmZl9nZXRfdW5zY2FsZWRfc3dzY2FsZV9wcGMoYyk7CiAjZWxpZiBBUkNIX0FS TQpkaWZmIC0tZ2l0IGEvbGlic3dzY2FsZS91dGlscy5jIGIvbGlic3dzY2FsZS91dGlscy5jCmlu ZGV4IGExM2Q4ZGY3ZTguLjhmODc4OWIyNGQgMTAwNjQ0Ci0tLSBhL2xpYnN3c2NhbGUvdXRpbHMu YworKysgYi9saWJzd3NjYWxlL3V0aWxzLmMKQEAgLTcxOSwzNiArNzE5LDM3IEBAIHN0YXRpYyBh dl9jb2xkIHZvaWQgaW5pdF94eXpfdGFibGVzKHZvaWQpCiAgICAgfQogfQogCi1zdGF0aWMgaW50 IGZpbGxfeHl6dGFibGVzKFN3c0ludGVybmFsICpjKQorYXZfY29sZCBpbnQgZmZfc3dzX2ZpbGxf eHl6dGFibGVzKFN3c0ludGVybmFsICpjKQogewotICAgIHN0YXRpYyBjb25zdCBpbnQxNl90IHh5 ejJyZ2JfbWF0cml4WzNdWzRdID0geworICAgIHN0YXRpYyBjb25zdCBpbnQxNl90IHh5ejJyZ2Jf bWF0cml4WzNdWzNdID0gewogICAgICAgICB7MTMyNzAsIC02Mjk1LCAtMjA0MX0sCiAgICAgICAg IHstMzk2OSwgIDc2ODIsICAgMTcwfSwKICAgICAgICAgeyAgMjI4LCAgLTgzNSwgIDQzMjl9IH07 Ci0gICAgc3RhdGljIGNvbnN0IGludDE2X3QgcmdiMnh5el9tYXRyaXhbM11bNF0gPSB7CisgICAg c3RhdGljIGNvbnN0IGludDE2X3QgcmdiMnh5el9tYXRyaXhbM11bM10gPSB7CiAgICAgICAgIHsx Njg5LCAxNDY0LCAgNzM5fSwKICAgICAgICAgeyA4NzEsIDI5MjksICAyOTZ9LAogICAgICAgICB7 ICA3OSwgIDQ4OCwgMzg5MX0gfTsKIAotICAgIGlmIChjLT54eXpnYW1tYSkKKyAgICBpZiAoYy0+ eHl6MnJnYi5nYW1tYS5pbikKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBtZW1jcHkoYy0+eHl6 MnJnYl9tYXRyaXgsIHh5ejJyZ2JfbWF0cml4LCBzaXplb2YoYy0+eHl6MnJnYl9tYXRyaXgpKTsK LSAgICBtZW1jcHkoYy0+cmdiMnh5el9tYXRyaXgsIHJnYjJ4eXpfbWF0cml4LCBzaXplb2YoYy0+ cmdiMnh5el9tYXRyaXgpKTsKKyAgICBtZW1jcHkoYy0+eHl6MnJnYi5tYXQsIHh5ejJyZ2JfbWF0 cml4LCBzaXplb2YoYy0+eHl6MnJnYi5tYXQpKTsKKyAgICBtZW1jcHkoYy0+cmdiMnh5ei5tYXQs IHJnYjJ4eXpfbWF0cml4LCBzaXplb2YoYy0+cmdiMnh5ei5tYXQpKTsKIAogI2lmIENPTkZJR19T TUFMTAotICAgIGMtPnh5emdhbW1hID0gYXZfbWFsbG9jKHNpemVvZih1aW50MTZfdCkgKiAyICog KDQwOTYgKyA2NTUzNikpOwotICAgIGlmICghYy0+eHl6Z2FtbWEpCisgICAgYy0+eHl6MnJnYi5n YW1tYS5pbiA9IGF2X21hbGxvYyhzaXplb2YodWludDE2X3QpICogMiAqICg0MDk2ICsgNjU1MzYp KTsKKyAgICBpZiAoIWMtPnh5ejJyZ2IuZ2FtbWEuaW4pCiAgICAgICAgIHJldHVybiBBVkVSUk9S KEVOT01FTSk7Ci0gICAgYy0+cmdiZ2FtbWFpbnYgPSBjLT54eXpnYW1tYSArIDQwOTY7Ci0gICAg Yy0+cmdiZ2FtbWEgPSBjLT5yZ2JnYW1tYWludiArIDQwOTY7Ci0gICAgYy0+eHl6Z2FtbWFpbnYg PSBjLT5yZ2JnYW1tYSArIDY1NTM2OwotICAgIGluaXRfeHl6X3RhYmxlcyhjLT54eXpnYW1tYSwg Yy0+eHl6Z2FtbWFpbnYsIGMtPnJnYmdhbW1hLCBjLT5yZ2JnYW1tYWludik7CisgICAgYy0+cmdi Mnh5ei5nYW1tYS5pbiAgPSBjLT54eXoycmdiLmdhbW1hLmluICArIDQwOTY7CisgICAgYy0+eHl6 MnJnYi5nYW1tYS5vdXQgPSBjLT5yZ2IyeHl6LmdhbW1hLmluICArIDQwOTY7CisgICAgYy0+cmdi Mnh5ei5nYW1tYS5vdXQgPSBjLT54eXoycmdiLmdhbW1hLm91dCArIDY1NTM2OworICAgIGluaXRf eHl6X3RhYmxlcyhjLT54eXoycmdiLmdhbW1hLmluLCAgYy0+cmdiMnh5ei5nYW1tYS5vdXQsCisg ICAgICAgICAgICAgICAgICAgIGMtPnh5ejJyZ2IuZ2FtbWEub3V0LCBjLT5yZ2IyeHl6LmdhbW1h LmluKTsKICNlbHNlCi0gICAgYy0+eHl6Z2FtbWEgPSB4eXpnYW1tYV90YWI7Ci0gICAgYy0+cmdi Z2FtbWEgPSByZ2JnYW1tYV90YWI7Ci0gICAgYy0+eHl6Z2FtbWFpbnYgPSB4eXpnYW1tYWludl90 YWI7Ci0gICAgYy0+cmdiZ2FtbWFpbnYgPSByZ2JnYW1tYWludl90YWI7CisgICAgYy0+eHl6MnJn Yi5nYW1tYS5pbiAgPSB4eXpnYW1tYV90YWI7CisgICAgYy0+eHl6MnJnYi5nYW1tYS5vdXQgPSBy Z2JnYW1tYV90YWI7CisgICAgYy0+cmdiMnh5ei5nYW1tYS5pbiAgPSByZ2JnYW1tYWludl90YWI7 CisgICAgYy0+cmdiMnh5ei5nYW1tYS5vdXQgPSB4eXpnYW1tYWludl90YWI7CiAKICAgICBzdGF0 aWMgQVZPbmNlIHh5el9pbml0X3N0YXRpY19vbmNlID0gQVZfT05DRV9JTklUOwogICAgIGZmX3Ro cmVhZF9vbmNlKCZ4eXpfaW5pdF9zdGF0aWNfb25jZSwgaW5pdF94eXpfdGFibGVzKTsKQEAgLTgy Miw3ICs4MjMsNyBAQCBzdGF0aWMgaW50IGhhbmRsZV9mb3JtYXRzKFN3c0NvbnRleHQgKnN3cykK ICAgICBjLT5zcmNYWVogICAgfD0gaGFuZGxlX3h5eigmc3dzLT5zcmNfZm9ybWF0KTsKICAgICBj LT5kc3RYWVogICAgfD0gaGFuZGxlX3h5eigmc3dzLT5kc3RfZm9ybWF0KTsKICAgICBpZiAoYy0+ c3JjWFlaIHx8IGMtPmRzdFhZWikKLSAgICAgICAgcmV0dXJuIGZpbGxfeHl6dGFibGVzKGMpOwor ICAgICAgICByZXR1cm4gZmZfc3dzX2ZpbGxfeHl6dGFibGVzKGMpOwogICAgIGVsc2UKICAgICAg ICAgcmV0dXJuIDA7CiB9CkBAIC0yMzEyLDcgKzIzMTMsNyBAQCB2b2lkIHN3c19mcmVlQ29udGV4 dChTd3NDb250ZXh0ICpzd3MpCiAgICAgYXZfZnJlZXAoJmMtPmdhbW1hKTsKICAgICBhdl9mcmVl cCgmYy0+aW52X2dhbW1hKTsKICNpZiBDT05GSUdfU01BTEwKLSAgICBhdl9mcmVlcCgmYy0+eHl6 Z2FtbWEpOworICAgIGF2X2ZyZWVwKCZjLT54eXoycmdiLmdhbW1hLmluKTsKICNlbmRpZgogCiAg ICAgYXZfZnJlZXAoJmMtPnJnYjBfc2NyYXRjaCk7Ci0tIAoyLjUyLjAKCgpGcm9tIDM0NDE2ZDky MDQ5MzAwZTlmN2ZmMmRmYzI5ZWNiNmI5ZDM4NmM5MWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEFycGFkIFBhbnlpayA8QXJwYWQuUGFueWlrQGFybS5jb20+CkRhdGU6IFdlZCwgMjYg Tm92IDIwMjUgMTY6MzY6MTMgKzAwMDAKU3ViamVjdDogW1BBVENIIDIxOS8zMDRdIGNoZWNrYXNt OiBBZGQgeHl6MTJUb3JnYjQ4bGUgdGVzdAoKQWRkIGNoZWNrYXNtIGNvdmVyYWdlIGZvciB0aGUg WFlaMTJMRSB0byBSR0I0OExFIHBhdGggdmlhIHRoZQpjdHgtPnh5ejEyVG9yZ2I0OCBob29rLiBJ bnRlZ3JhdGUgdGhlIHRlc3QgaW50byB0aGUgYnVpbGQgYW5kIHJ1bm5lciwKZXhlcmNpc2UgYSB2 YXJpZXR5IG9mIHdpZHRocy9oZWlnaHRzLCBjb21wYXJlIGFnYWluc3QgdGhlIEMgcmVmZXJlbmNl LAphbmQgYmVuY2htYXJrIHdoZW4gd2lkdGggaXMgbXVsdGlwbGUgb2YgNC4KClRoaXMgaW1wcm92 ZXMgdGVzdCBjb3ZlcmFnZSBmb3IgdGhlIG5ldyBmdW5jdGlvbiBwb2ludGVyIGluIHByZXBhcmF0 aW9uCmZvciBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zIGluIHN1YnNlcXVl bnQgY29tbWl0cy4KClNpZ25lZC1vZmYtYnk6IEFycGFkIFBhbnlpayA8QXJwYWQuUGFueWlrQGFy bS5jb20+Ci0tLQogdGVzdHMvY2hlY2thc20vTWFrZWZpbGUgICAgIHwgICAxICsKIHRlc3RzL2No ZWNrYXNtL2NoZWNrYXNtLmMgICB8ICAgMSArCiB0ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oICAg fCAgIDEgKwogdGVzdHMvY2hlY2thc20vc3dfeHl6MnJnYi5jIHwgMTA4ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogdGVzdHMvZmF0ZS9jaGVja2FzbS5tYWsgICAgIHwgICAx ICsKIDUgZmlsZXMgY2hhbmdlZCwgMTEyIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0 NCB0ZXN0cy9jaGVja2FzbS9zd194eXoycmdiLmMKCmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja2Fz bS9NYWtlZmlsZSBiL3Rlc3RzL2NoZWNrYXNtL01ha2VmaWxlCmluZGV4IGI5YzhhZGIyMWYuLjFj MzQ2MTkyNDkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL01ha2VmaWxlCisrKyBiL3Rlc3Rz L2NoZWNrYXNtL01ha2VmaWxlCkBAIC04Miw2ICs4Miw3IEBAIFNXU0NBTEVPQkpTICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArPSBzd19nYnJwLm8gICAgICAgICAgICBcCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dfcmFuZ2VfY29udmVydC5vICAgXAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3X3JnYi5vICAgICAg ICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd19z Y2FsZS5vICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3dfeHl6MnJnYi5vICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN3X3l1djJyZ2IubyAgICAgICAgIFwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzd195dXYyeXV2Lm8KIApkaWZmIC0tZ2l0IGEvdGVz dHMvY2hlY2thc20vY2hlY2thc20uYyBiL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMKaW5kZXgg YTg5OTk2NzkzNy4uN2VkYzhlNGU2ZSAxMDA2NDQKLS0tIGEvdGVzdHMvY2hlY2thc20vY2hlY2th c20uYworKysgYi90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jCkBAIC0zMzAsNiArMzMwLDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAgeyAic3dfcmFuZ2VfY29udmVydCIsIGNoZWNrYXNt X2NoZWNrX3N3X3JhbmdlX2NvbnZlcnQgfSwKICAgICB7ICJzd19yZ2IiLCBjaGVja2FzbV9jaGVj a19zd19yZ2IgfSwKICAgICB7ICJzd19zY2FsZSIsIGNoZWNrYXNtX2NoZWNrX3N3X3NjYWxlIH0s CisgICAgeyAic3dfeHl6MnJnYiIsIGNoZWNrYXNtX2NoZWNrX3N3X3h5ejJyZ2IgfSwKICAgICB7 ICJzd195dXYycmdiIiwgY2hlY2thc21fY2hlY2tfc3dfeXV2MnJnYiB9LAogICAgIHsgInN3X3l1 djJ5dXYiLCBjaGVja2FzbV9jaGVja19zd195dXYyeXV2IH0sCiAgICAgeyAic3dfb3BzIiwgY2hl Y2thc21fY2hlY2tfc3dfb3BzIH0sCmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja2FzbS9jaGVja2Fz bS5oIGIvdGVzdHMvY2hlY2thc20vY2hlY2thc20uaAppbmRleCBlYzA3NWM0NzYzLi45ZjRmYjhi MjgzIDEwMDY0NAotLS0gYS90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oCisrKyBiL3Rlc3RzL2No ZWNrYXNtL2NoZWNrYXNtLmgKQEAgLTEzOSw2ICsxMzksNyBAQCB2b2lkIGNoZWNrYXNtX2NoZWNr X3N3X2dicnAodm9pZCk7CiB2b2lkIGNoZWNrYXNtX2NoZWNrX3N3X3JhbmdlX2NvbnZlcnQodm9p ZCk7CiB2b2lkIGNoZWNrYXNtX2NoZWNrX3N3X3JnYih2b2lkKTsKIHZvaWQgY2hlY2thc21fY2hl Y2tfc3dfc2NhbGUodm9pZCk7Cit2b2lkIGNoZWNrYXNtX2NoZWNrX3N3X3h5ejJyZ2Iodm9pZCk7 CiB2b2lkIGNoZWNrYXNtX2NoZWNrX3N3X3l1djJyZ2Iodm9pZCk7CiB2b2lkIGNoZWNrYXNtX2No ZWNrX3N3X3l1djJ5dXYodm9pZCk7CiB2b2lkIGNoZWNrYXNtX2NoZWNrX3N3X29wcyh2b2lkKTsK ZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrYXNtL3N3X3h5ejJyZ2IuYyBiL3Rlc3RzL2NoZWNrYXNt L3N3X3h5ejJyZ2IuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5hZmZm YjZjOGRhCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvY2hlY2thc20vc3dfeHl6MnJnYi5jCkBA IC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDI1IEFycGFkIFBhbnlpayA8 QXJwYWQuUGFueWlrQGFybS5jb20+CisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVn LgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQor ICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhbG9uZworICogd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKKyAqIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg Rmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EuCisgKi8KKworI2luY2x1ZGUgPHN0cmlu Zy5oPgorCisjaW5jbHVkZSAibGliYXZ1dGlsL2ludHJlYWR3cml0ZS5oIgorI2luY2x1ZGUgImxp YmF2dXRpbC9tZW1faW50ZXJuYWwuaCIKKyNpbmNsdWRlICJsaWJhdnV0aWwvcGl4ZGVzYy5oIgor I2luY2x1ZGUgImxpYmF2dXRpbC9waXhmbXQuaCIKKworI2luY2x1ZGUgImxpYnN3c2NhbGUvc3dz Y2FsZS5oIgorI2luY2x1ZGUgImxpYnN3c2NhbGUvc3dzY2FsZV9pbnRlcm5hbC5oIgorCisjaW5j bHVkZSAiY2hlY2thc20uaCIKKworI2RlZmluZSBOVU1fTElORVMgNAorI2RlZmluZSBNQVhfTElO RV9TSVpFIDE5MjAKKworI2RlZmluZSByYW5kb21pemVfYnVmZmVycyhidWYsIHNpemUpICAgICAg XAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBm b3IgKGludCBqID0gMDsgaiA8IHNpemU7IGogKz0gMikgXAorICAgICAgICAgICAgQVZfV04zMihi dWYgKyBqLCBybmQoKSk7ICAgICAgXAorICAgIH0gd2hpbGUgKDApCisKK3N0YXRpYyB2b2lkIGNo ZWNrX3h5ejEyVG9yZ2I0OGxlKHZvaWQpCit7CisgICAgc3RhdGljIGNvbnN0IGludCBpbnB1dF9z aXplc1tdID0gezEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDE2LCAxNywgMjEsIDMxLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMiwgNjQsIDEyOCwgMjU2LCA1MTIsIDEw MjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BWF9MSU5FX1NJWkV9 OworCisgICAgY29uc3QgaW50IHNyY19zdHJpZGUgPSAzICogc2l6ZW9mKHVpbnQxNl90KSAqIE1B WF9MSU5FX1NJWkU7CisgICAgY29uc3QgaW50IGRzdF9zdHJpZGUgPSBzcmNfc3RyaWRlOworCisg ICAgY29uc3QgaW50IHNyY19waXhfZm10ID0gQVZfUElYX0ZNVF9YWVoxMkxFOworICAgIGNvbnN0 IGludCBkc3RfcGl4X2ZtdCA9IEFWX1BJWF9GTVRfUkdCNDhMRTsKKworICAgIGNvbnN0IEFWUGl4 Rm10RGVzY3JpcHRvciAqc3JjX2Rlc2MgPSBhdl9waXhfZm10X2Rlc2NfZ2V0KHNyY19waXhfZm10 KTsKKyAgICBjb25zdCBBVlBpeEZtdERlc2NyaXB0b3IgKmRzdF9kZXNjID0gYXZfcGl4X2ZtdF9k ZXNjX2dldChkc3RfcGl4X2ZtdCk7CisKKyAgICBMT0NBTF9BTElHTkVEXzgodWludDE2X3QsIHNy YywgICAgIFszICogTUFYX0xJTkVfU0laRSAqIE5VTV9MSU5FU10pOworICAgIExPQ0FMX0FMSUdO RURfOCh1aW50MTZfdCwgZHN0X3JlZiwgWzMgKiBNQVhfTElORV9TSVpFICogTlVNX0xJTkVTXSk7 CisgICAgTE9DQUxfQUxJR05FRF84KHVpbnQxNl90LCBkc3RfbmV3LCBbMyAqIE1BWF9MSU5FX1NJ WkUgKiBOVU1fTElORVNdKTsKKworICAgIGRlY2xhcmVfZnVuYyh2b2lkLCBjb25zdCBTd3NDb250 ZXh0ICosIHVpbnQ4X3QgKiwgaW50LCBjb25zdCB1aW50OF90ICosCisgICAgICAgICAgICAgICAg IGludCwgaW50LCBpbnQpOworCisgICAgU3dzSW50ZXJuYWwgYzsKKyAgICBtZW1zZXQoJmMsIDAs IHNpemVvZihjKSk7CisgICAgYy5vcHRzLnNyY19mb3JtYXQgPSBzcmNfcGl4X2ZtdDsKKyAgICBm Zl9zd3NfaW5pdF94eXpkc3AoJmMpOworICAgIGZmX3N3c19maWxsX3h5enRhYmxlcygmYyk7CisK KyAgICByYW5kb21pemVfYnVmZmVycyhzcmMsIDMgKiBNQVhfTElORV9TSVpFICogTlVNX0xJTkVT KTsKKworICAgIGZvciAoaW50IGhlaWdodCA9IDE7IGhlaWdodCA8PSBOVU1fTElORVM7IGhlaWdo dCsrKSB7CisgICAgICAgIGZvciAoaW50IGlzaSA9IDA7IGlzaSA8IEZGX0FSUkFZX0VMRU1TKGlu cHV0X3NpemVzKTsgaXNpKyspIHsKKyAgICAgICAgICAgIGludCB3aWR0aCA9IGlucHV0X3NpemVz W2lzaV07CisKKyAgICAgICAgICAgIGlmIChjaGVja19mdW5jKGMueHl6MTJUb3JnYjQ4LCAiJXNf JXNfJWR4JWQiLCBzcmNfZGVzYy0+bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRz dF9kZXNjLT5uYW1lLCB3aWR0aCwgaGVpZ2h0KSkgeworICAgICAgICAgICAgICAgIG1lbXNldChk c3RfcmVmLCAweEZFLAorICAgICAgICAgICAgICAgICAgICAgICAzICogc2l6ZW9mKHVpbnQxNl90 KSAqIE1BWF9MSU5FX1NJWkUgKiBOVU1fTElORVMpOworICAgICAgICAgICAgICAgIG1lbXNldChk c3RfbmV3LCAweEZFLAorICAgICAgICAgICAgICAgICAgICAgICAzICogc2l6ZW9mKHVpbnQxNl90 KSAqIE1BWF9MSU5FX1NJWkUgKiBOVU1fTElORVMpOworCisgICAgICAgICAgICAgICAgY2FsbF9y ZWYoKGNvbnN0IFN3c0NvbnRleHQqKSZjLCAodWludDhfdCAqKWRzdF9yZWYsIGRzdF9zdHJpZGUs CisgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IHVpbnQ4X3QgKilzcmMsIHNyY19zdHJp ZGUsIHdpZHRoLCBoZWlnaHQpOworICAgICAgICAgICAgICAgIGNhbGxfbmV3KChjb25zdCBTd3ND b250ZXh0KikmYywgKHVpbnQ4X3QgKilkc3RfbmV3LCBkc3Rfc3RyaWRlLAorICAgICAgICAgICAg ICAgICAgICAgICAgIChjb25zdCB1aW50OF90ICopc3JjLCBzcmNfc3RyaWRlLCB3aWR0aCwgaGVp Z2h0KTsKKworICAgICAgICAgICAgICAgIGNoZWNrYXNtX2NoZWNrKHVpbnQxNl90LCBkc3RfcmVm LCBkc3Rfc3RyaWRlLCBkc3RfbmV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRz dF9zdHJpZGUsIHdpZHRoLCBoZWlnaHQsICJkc3RfcmdiIik7CisKKyAgICAgICAgICAgICAgICBp ZiAoISh3aWR0aCAmIDMpICYmIGhlaWdodCA9PSBOVU1fTElORVMpIHsKKyAgICAgICAgICAgICAg ICAgICAgYmVuY2hfbmV3KChjb25zdCBTd3NDb250ZXh0KikmYywgKHVpbnQ4X3QgKilkc3RfbmV3 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X3N0cmlkZSwgKGNvbnN0IHVpbnQ4 X3QgKilzcmMsIHNyY19zdHJpZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0 aCwgaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0K KyAgICB9Cit9CisKKyN1bmRlZiBOVU1fTElORVMKKyN1bmRlZiBNQVhfTElORV9TSVpFCisKK3Zv aWQgY2hlY2thc21fY2hlY2tfc3dfeHl6MnJnYih2b2lkKQoreworICAgIGNoZWNrX3h5ejEyVG9y Z2I0OGxlKCk7CisgICAgcmVwb3J0KCJ4eXoxMlRvcmdiNDhsZSIpOworfQpkaWZmIC0tZ2l0IGEv dGVzdHMvZmF0ZS9jaGVja2FzbS5tYWsgYi90ZXN0cy9mYXRlL2NoZWNrYXNtLm1hawppbmRleCA0 OGVkZDE3YmYyLi5mMjZlNTM0NTkxIDEwMDY0NAotLS0gYS90ZXN0cy9mYXRlL2NoZWNrYXNtLm1h aworKysgYi90ZXN0cy9mYXRlL2NoZWNrYXNtLm1hawpAQCAtNTUsNiArNTUsNyBAQCBGQVRFX0NI RUNLQVNNID0gZmF0ZS1jaGVja2FzbS1hYWNlbmNkc3AgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCiAgICAgICAgICAgICAgICAgZmF0ZS1jaGVja2FzbS1zd19yYW5nZV9jb252ZXJ0 ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgZmF0ZS1jaGVja2Fz bS1zd19yZ2IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAg ICAgICAgZmF0ZS1jaGVja2FzbS1zd19zY2FsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICAgICAgICAgICAgZmF0ZS1jaGVja2FzbS1zd194eXoycmdiICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgZmF0ZS1jaGVja2FzbS1z d195dXYycmdiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAg ICAgZmF0ZS1jaGVja2FzbS1zd195dXYyeXV2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCiAgICAgICAgICAgICAgICAgZmF0ZS1jaGVja2FzbS10YWtkc3AgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCi0tIAoyLjUyLjAKCgpGcm9tIGU5YTBiZTAwOWE2NGE3Nzll ZmU5ZGIzNzVkNmUzZTgxZTg3YzI1YTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFy cGFkIFBhbnlpayA8QXJwYWQuUGFueWlrQGFybS5jb20+CkRhdGU6IFdlZCwgMjYgTm92IDIwMjUg MTY6Mzg6MTYgKzAwMDAKU3ViamVjdDogW1BBVENIIDIyMC8zMDRdIHN3c2NhbGU6IEFkZCBBQXJj aDY0IE5lb24gcGF0aCBmb3IgeHl6MTJUb3JnYjQ4IExFCgpBZGQgb3B0aW1pemVkIE5lb24gY29k ZSBwYXRoIGZvciB0aGUgbGl0dGxlIGVuZGlhbiBjYXNlIG9mIHRoZQp4eXoxMlRvcmdiNDggZnVu Y3Rpb24uIFRoZSBpbm5lcm1vc3QgbG9vcCBwcm9jZXNzZXMgdGhlIGRhdGEgaW4gNHgyCnBpeGVs IGJsb2NrcyB1c2luZyBzb2Z0d2FyZSBnYXRoZXJzIHdpdGggdGhlIG1hdHJpeCBtdWx0aXBsaWNh dGlvbgphbmQgY2xpcHBpbmcgZG9uZSBieSBOZW9uLgoKUmVsYXRpdmUgcnVudGltZSBvZiBtaWNy byBiZW5jaG1hcmtzIGFmdGVyIHRoaXMgcGF0Y2ggb24gc29tZQpDb3J0ZXggYW5kIE5lb3ZlcnNl IENQVSBjb3JlczoKCiB4eXoxMmxlX3JnYjQ4bGUgICAgWDEgICAgICBYMyAgICAgIFg0ICAgIFg5 MjUgICAgICBWMgogMTZ4NF9uZW9uOiAgICAgICAyLjU1eCAgIDQuMzR4ICAgMy44NHggICAzLjMx eCAgIDMuMjJ4CiAzMng0X25lb246ICAgICAgIDIuMzl4ICAgMy42M3ggICAzLjIyeCAgIDMuMzV4 ICAgMy4yOXgKIDY0eDRfbmVvbjogICAgICAgMi4zN3ggICAzLjMxeCAgIDIuOTF4ICAgMy4zM3gg ICAzLjI3eAogMTI4eDRfbmVvbjogICAgICAyLjM0eCAgIDMuMjh4ICAgMi45MXggICAzLjM1eCAg IDMuMjR4CiAyNTZ4NF9uZW9uOiAgICAgIDIuMzB4ICAgMy4xN3ggICAyLjkxeCAgIDMuMzJ4ICAg My4xMHgKIDUxMng0X25lb246ICAgICAgMi4yNnggICAzLjEweCAgIDIuOTF4ICAgMy4zMHggICAz LjA3eAogMTAyNHg0X25lb246ICAgICAyLjI2eCAgIDMuMDd4ICAgMi45NnggICAzLjMweCAgIDMu MDV4CiAxOTIweDRfbmVvbjogICAgIDIuMjZ4ICAgMy4wNnggICAyLjkzeCAgIDMuMjh4ICAgMy4w NHgKCiB4eXoxMmxlX3JnYjQ4bGUgICBBNzYgICAgIEE3OCAgICBBNzE1ICAgIEE3MjAgICAgQTcy NQogMTZ4NF9uZW9uOiAgICAgICAyLjMzeCAgIDIuMjh4ICAgMi41M3ggICAzLjMzeCAgIDMuMTl4 CiAzMng0X25lb246ICAgICAgIDIuMzV4ICAgMi4xOHggICAyLjQ1eCAgIDMuMjN4ICAgMy4yNHgK IDY0eDRfbmVvbjogICAgICAgMi4zNXggICAyLjE2eCAgIDIuNDJ4ICAgMy4xNXggICAzLjIxeAog MTI4eDRfbmVvbjogICAgICAyLjM1eCAgIDIuMTN4ICAgMi4zOXggICAzLjAweCAgIDMuMDl4CiAy NTZ4NF9uZW9uOiAgICAgIDIuMzZ4ICAgMi4xMnggICAyLjM1eCAgIDIuODV4ICAgMi45OXgKIDUx Mng0X25lb246ICAgICAgMi4zNXggICAyLjE0eCAgIDIuMzV4ICAgMi43OHggICAyLjk1eAogMTAy NHg0X25lb246ICAgICAyLjMxeCAgIDIuMDl4ICAgMi4zM3ggICAyLjgweCAgIDIuOTF4CiAxOTIw eDRfbmVvbjogICAgIDIuMzB4ICAgMi4wN3ggICAyLjMyeCAgIDIuODF4ICAgMi45NHgKCiB4eXox MmxlX3JnYjQ4bGUgICBBNTUgICAgQTUxMCAgICBBNTIwCiAxNng0X25lb246ICAgICAgIDIuMDl4 ICAgMS45MnggICAyLjM2eAogMzJ4NF9uZW9uOiAgICAgICAyLjA1eCAgIDEuODl4ICAgMi4zOHgK IDY0eDRfbmVvbjogICAgICAgMi4wMnggICAxLjc3eCAgIDIuMzV4CiAxMjh4NF9uZW9uOiAgICAg IDEuOTZ4ICAgMS43NHggICAyLjI1eAogMjU2eDRfbmVvbjogICAgICAxLjkweCAgIDEuNzJ4ICAg Mi4xOXgKIDUxMng0X25lb246ICAgICAgMS44M3ggICAxLjc1eCAgIDIuMTZ4CiAxMDI0eDRfbmVv bjogICAgIDEuODN4ICAgMS42MnggICAyLjE1eAogMTkyMHg0X25lb246ICAgICAxLjgyeCAgIDEu NjB4ICAgMi4xNXgKClNpZ25lZC1vZmYtYnk6IEFycGFkIFBhbnlpayA8QXJwYWQuUGFueWlrQGFy bS5jb20+Ci0tLQogbGlic3dzY2FsZS9hYXJjaDY0L01ha2VmaWxlICAgICAgIHwgICAxICsKIGxp YnN3c2NhbGUvYWFyY2g2NC9hc20tb2Zmc2V0cy5oICB8ICAzNiArKwogbGlic3dzY2FsZS9hYXJj aDY0L3N3c2NhbGUuYyAgICAgIHwgIDQwICsrCiBsaWJzd3NjYWxlL2FhcmNoNjQveHl6MnJnYl9u ZW9uLlMgfCA3MDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBsaWJzd3NjYWxlL3N3 c2NhbGUuYyAgICAgICAgICAgICAgfCAgIDQgKwogbGlic3dzY2FsZS9zd3NjYWxlX2ludGVybmFs LmggICAgIHwgICAyICsKIDYgZmlsZXMgY2hhbmdlZCwgNzg1IGluc2VydGlvbnMoKykKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBsaWJzd3NjYWxlL2FhcmNoNjQvYXNtLW9mZnNldHMuaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IGxpYnN3c2NhbGUvYWFyY2g2NC94eXoycmdiX25lb24uUwoKZGlmZiAtLWdpdCBh L2xpYnN3c2NhbGUvYWFyY2g2NC9NYWtlZmlsZSBiL2xpYnN3c2NhbGUvYWFyY2g2NC9NYWtlZmls ZQppbmRleCAxZGU4YzljMGQ2Li4xYzgyZTM0ZTI4IDEwMDY0NAotLS0gYS9saWJzd3NjYWxlL2Fh cmNoNjQvTWFrZWZpbGUKKysrIGIvbGlic3dzY2FsZS9hYXJjaDY0L01ha2VmaWxlCkBAIC04LDQg KzgsNSBAQCBORU9OLU9CSlMgICArPSBhYXJjaDY0L2hzY2FsZS5vICAgICAgICAgICAgICAgICBc CiAgICAgICAgICAgICAgICBhYXJjaDY0L3JhbmdlX2NvbnZlcnRfbmVvbi5vICAgICBcCiAgICAg ICAgICAgICAgICBhYXJjaDY0L3JnYjJyZ2JfbmVvbi5vICAgICAgICAgICBcCiAgICAgICAgICAg ICAgICBhYXJjaDY0L3N3c2NhbGVfdW5zY2FsZWRfbmVvbi5vICBcCisgICAgICAgICAgICAgICBh YXJjaDY0L3h5ejJyZ2JfbmVvbi5vICAgICAgICAgICBcCiAgICAgICAgICAgICAgICBhYXJjaDY0 L3l1djJyZ2JfbmVvbi5vICAgICAgICAgICBcCmRpZmYgLS1naXQgYS9saWJzd3NjYWxlL2FhcmNo NjQvYXNtLW9mZnNldHMuaCBiL2xpYnN3c2NhbGUvYWFyY2g2NC9hc20tb2Zmc2V0cy5oCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjExMDM4OWM5NjUKLS0tIC9kZXYvbnVs bAorKysgYi9saWJzd3NjYWxlL2FhcmNoNjQvYXNtLW9mZnNldHMuaApAQCAtMCwwICsxLDM2IEBA CisvKgorICogQ29weXJpZ2h0IChjKSAyMDI1IEFycGFkIFBhbnlpayA8QXJwYWQuUGFueWlrQGFy bS5jb20+CisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgorICoKKyAqIEZGbXBl ZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0 aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0 LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNpZm5kZWYg U1dTQ0FMRV9BQVJDSDY0X0FTTV9PRkZTRVRTX0gKKyNkZWZpbmUgU1dTQ0FMRV9BQVJDSDY0X0FT TV9PRkZTRVRTX0gKKworLyogU3dzTHV0cyAqLworI2RlZmluZSBTTF9JTiAgMHgwMAorI2RlZmlu ZSBTTF9PVVQgMHgwOAorCisvKiBTd3NDb2xvclhmb3JtICovCisjZGVmaW5lIFNDWF9HQU1NQSAg ICAgMHgwMAorI2RlZmluZSBTQ1hfTUFUICAgICAgIDB4MTAKKyNkZWZpbmUgU0NYX0dBTU1BX0lO ICAoU0NYX0dBTU1BICsgU0xfSU4pCisjZGVmaW5lIFNDWF9HQU1NQV9PVVQgKFNDWF9HQU1NQSAr IFNMX09VVCkKKyNkZWZpbmUgU0NYX01BVF8wMCAgICBTQ1hfTUFUCisjZGVmaW5lIFNDWF9NQVRf MjIgICAgKFNDWF9NQVQgKyA4ICogMikKKworI2VuZGlmIC8qIFNXU0NBTEVfQUFSQ0g2NF9BU01f T0ZGU0VUU19IICovCmRpZmYgLS1naXQgYS9saWJzd3NjYWxlL2FhcmNoNjQvc3dzY2FsZS5jIGIv bGlic3dzY2FsZS9hYXJjaDY0L3N3c2NhbGUuYwppbmRleCA1NWZmZjAzYTVhLi40Zjg2MzY0ZjRi IDEwMDY0NAotLS0gYS9saWJzd3NjYWxlL2FhcmNoNjQvc3dzY2FsZS5jCisrKyBiL2xpYnN3c2Nh bGUvYWFyY2g2NC9zd3NjYWxlLmMKQEAgLTIxLDYgKzIxLDM1IEBACiAjaW5jbHVkZSAibGlic3dz Y2FsZS9zd3NjYWxlLmgiCiAjaW5jbHVkZSAibGlic3dzY2FsZS9zd3NjYWxlX2ludGVybmFsLmgi CiAjaW5jbHVkZSAibGliYXZ1dGlsL2FhcmNoNjQvY3B1LmgiCisjaW5jbHVkZSAiYXNtLW9mZnNl dHMuaCIKKworI2RlZmluZSBTSVpFT0ZfTUVNQkVSKHR5cGUsIG1lbWJlcikgXAorICAgIHNpemVv ZigoKHR5cGUqKTApLT5tZW1iZXIpCisKK3N0YXRpY19hc3NlcnQob2Zmc2V0b2YoU3dzTHV0cywg aW4pICA9PSBTTF9JTiwgICJzdHJ1Y3QgbGF5b3V0IG1pc21hdGNoIik7CitzdGF0aWNfYXNzZXJ0 KG9mZnNldG9mKFN3c0x1dHMsIG91dCkgPT0gU0xfT1VULCAic3RydWN0IGxheW91dCBtaXNtYXRj aCIpOworCitzdGF0aWNfYXNzZXJ0KG9mZnNldG9mKFN3c0NvbG9yWGZvcm0sIGdhbW1hKSA9PSBT Q1hfR0FNTUEsCisgICAgICAgICAgICAgICJzdHJ1Y3QgbGF5b3V0IG1pc21hdGNoIik7CitzdGF0 aWNfYXNzZXJ0KG9mZnNldG9mKFN3c0NvbG9yWGZvcm0sIG1hdCkgPT0gU0NYX01BVCwKKyAgICAg ICAgICAgICAgInN0cnVjdCBsYXlvdXQgbWlzbWF0Y2giKTsKKworc3RhdGljX2Fzc2VydChvZmZz ZXRvZihTd3NDb2xvclhmb3JtLCBtYXQpICsKKyAgICAgICAgICAgICAgMiAqIFNJWkVPRl9NRU1C RVIoU3dzQ29sb3JYZm9ybSwgbWF0WzBdKSArCisgICAgICAgICAgICAgIDIgKiBTSVpFT0ZfTUVN QkVSKFN3c0NvbG9yWGZvcm0sIG1hdFswXVswXSkgPT0gU0NYX01BVF8yMiwKKyAgICAgICAgICAg ICAgInN0cnVjdCBsYXlvdXQgbWlzbWF0Y2giKTsKKwordm9pZCBmZl94eXoxMlRvcmdiNDhsZV9u ZW9uX2FzbShjb25zdCBTd3NDb2xvclhmb3JtICpjLCB1aW50OF90ICpkc3QsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCBkc3Rfc3RyaWRlLCBjb25zdCB1aW50OF90ICpzcmMs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzcmNfc3RyaWRlLCBpbnQgdywg aW50IGgpOworCitzdGF0aWMgdm9pZCB4eXoxMlRvcmdiNDhsZV9uZW9uKGNvbnN0IFN3c0ludGVy bmFsICpjLCB1aW50OF90ICpkc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCBkc3Rfc3RyaWRlLCBjb25zdCB1aW50OF90ICpzcmMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCBzcmNfc3RyaWRlLCBpbnQgdywgaW50IGgpCit7CisgICAgZmZfeHl6MTJU b3JnYjQ4bGVfbmVvbl9hc20oJmMtPnh5ejJyZ2IsIGRzdCwgZHN0X3N0cmlkZSwgc3JjLCBzcmNf c3RyaWRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcsIGgpOworfQogCiB2b2lk IGZmX2hzY2FsZTE2dG8xNV80X25lb25fYXNtKGludCBzaGlmdCwgaW50MTZfdCAqX2RzdCwgaW50 IGRzdFcsCiAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqX3NyYywgY29uc3Qg aW50MTZfdCAqZmlsdGVyLApAQCAtMzA3LDYgKzMzNiwxNyBAQCBhdl9jb2xkIHZvaWQgZmZfc3dz X2luaXRfcmFuZ2VfY29udmVydF9hYXJjaDY0KFN3c0ludGVybmFsICpjKQogICAgIH0KIH0KIAor YXZfY29sZCB2b2lkIGZmX3N3c19pbml0X3h5emRzcF9hYXJjaDY0KFN3c0ludGVybmFsICpjKQor eworICAgIGludCBjcHVfZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7CisKKyAgICBpZiAoaGF2 ZV9uZW9uKGNwdV9mbGFncykpIHsKKyAgICAgICAgaWYgKCFpc0JFKGMtPm9wdHMuc3JjX2Zvcm1h dCkpIHsKKyAgICAgICAgICAgIGMtPnh5ejEyVG9yZ2I0OCA9IHh5ejEyVG9yZ2I0OGxlX25lb247 CisgICAgICAgIH0KKyAgICB9Cit9CisKIGF2X2NvbGQgdm9pZCBmZl9zd3NfaW5pdF9zd3NjYWxl X2FhcmNoNjQoU3dzSW50ZXJuYWwgKmMpCiB7CiAgICAgaW50IGNwdV9mbGFncyA9IGF2X2dldF9j cHVfZmxhZ3MoKTsKZGlmZiAtLWdpdCBhL2xpYnN3c2NhbGUvYWFyY2g2NC94eXoycmdiX25lb24u UyBiL2xpYnN3c2NhbGUvYWFyY2g2NC94eXoycmdiX25lb24uUwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwLi40YjIxMzUwODVhCi0tLSAvZGV2L251bGwKKysrIGIvbGlic3dz Y2FsZS9hYXJjaDY0L3h5ejJyZ2JfbmVvbi5TCkBAIC0wLDAgKzEsNzAyIEBACisvKgorICogQ29w eXJpZ2h0IChjKSAyMDI1IEFycGFkIFBhbnlpayA8QXJwYWQuUGFueWlrQGFybS5jb20+CisgKgor ICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog dmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisgKgorICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog TGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0 d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v ciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNpbmNsdWRlICJsaWJhdnV0aWwv YWFyY2g2NC9hc20uUyIKKyNpbmNsdWRlICJhc20tb2Zmc2V0cy5oIgorCisjZGVmaW5lIEpVTVBf QUxJR04gMgorI2RlZmluZSBMT09QX0FMSUdOIDIKKworZnVuY3Rpb24gZmZfeHl6MTJUb3JnYjQ4 bGVfbmVvbl9hc20sIGV4cG9ydD0xCisvLyB4MCAgY29uc3QgU3dzQ29sb3JYZm9ybSAqYworLy8g eDEgIHVpbnQ4X3QgKmRzdAorLy8gdzIgIGludCBkc3Rfc3RyaWRlCisvLyB4MyAgY29uc3QgdWlu dDhfdCAqc3JjCisvLyB3NCAgaW50IHNyY19zdHJpZGUKKy8vIHc1ICBpbnQgdworLy8gdzYgIGlu dCBoCisKKyAgICAgICAgbGRwICAgICAgICAgICAgIHg3LCAgeDgsIFt4MCwgIyhTQ1hfR0FNTUFf SU4pXSAgLy8gZ2FtbWEuaW4sIGdhbW1hLm91dAorICAgICAgICBsZHIgICAgICAgICAgICAgcTYs ICBbeDAsICMoU0NYX01BVF8wMCldICAgICAgICAvLyBtYXRbMF1bMF0uLlsyXVsxXQorICAgICAg ICBsZHIgICAgICAgICAgICAgaDcsICBbeDAsICMoU0NYX01BVF8yMildICAgICAgICAvLyBtYXRb Ml1bMl07ID4gMAorCisgICAgICAgIGFkZCAgICAgICAgICAgICB3OSwgIHc1LCAgdzUsIGxzbCAj MSAgICAgICAgLy8gdyAqIDMKKyAgICAgICAgYWRkICAgICAgICAgICAgIHgxNywgeDMsICB3NCwg c3h0dyAgICAgICAgICAvLyBzcjIgPSBzcmMgKyBzcmNfc3RyaWRlCisgICAgICAgIGFkZCAgICAg ICAgICAgICB4MTYsIHgxLCAgdzIsIHN4dHcgICAgICAgICAgLy8gZHMyID0gZHN0ICsgZHN0X3N0 cmlkZQorICAgICAgICBzdWIgICAgICAgICAgICAgdzQsICB3NCwgIHc5ICAgICAgICAgICAgICAg IC8vIHNyY19zdHJpZGUgLSB3ICogMworICAgICAgICBzdWIgICAgICAgICAgICAgdzIsICB3Miwg IHc5ICAgICAgICAgICAgICAgIC8vIGRzdF9zdHJpZGUgLSB3ICogMworICAgICAgICBhYnMgICAg ICAgICAgICAgdjYuOGgsICB2Ni44aCAgICAgICAgICAgICAgIC8vIGFicyhtYXRbMF1bMF0uLlsy XVsxXSkKKyAgICAgICAgc2JmaXogICAgICAgICAgIHg0LCAgeDQsICAjMSwgIzMyICAgICAgICAg ICAvLyBzcmNfc3RyaWRlICogMiAtIHcgKiA2CisgICAgICAgIHNiZml6ICAgICAgICAgICB4Miwg IHgyLCAgIzEsICMzMiAgICAgICAgICAgLy8gZHN0X3N0cmlkZSAqIDIgLSB3ICogNgorCisgICAg ICAgIHN1YnMgICAgICAgICAgICB3NiwgIHc2LCAgIzIKKyAgICAgICAgYi5sdCAgICAgICAgICAg IDZmICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoIDwgMgorCisgICAgICAgIHN0cCAgICAg ICAgICAgICB4MTksIHgyMCwgW3NwLCAjLTY0XSEKKyAgICAgICAgc3RwICAgICAgICAgICAgIHgy MSwgeDIyLCBbc3AsICMxNl0KKyAgICAgICAgc3RwICAgICAgICAgICAgIHgyMywgeDI0LCBbc3As ICMzMl0KKyAgICAgICAgc3RyICAgICAgICAgICAgIHgyNSwgW3NwLCAjNDhdCisKKyAgICAgICAg LmFsaWduIExPT1BfQUxJR04KKzE6ICAgICAgLy8geXAgbG9vcCBmb3IgMng0IHBpeGVscworICAg ICAgICBzdWJzICAgICAgICAgICAgdzAsICB3NSwgICM0CisgICAgICAgIGIubHQgICAgICAgICAg ICAzZiAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdyA8IDQKKworICAgICAgICAuYWxpZ24g TE9PUF9BTElHTgorMjogICAgICAvLyB4cCBsb29wIGZvciAyeDQgcGl4ZWxzOiBYWVowWzAuLjNd LCBYWVoxWzAuLjNdCisgICAgICAgIGxkcCAgICAgICAgICAgICB4OSwgIHgxMCwgW3gzXSAgICAg ICAgICAgICAgLy8geDkgID0gWDBbMF0gWTBbMF0gWjBbMF0gWDBbMV0sIHgxMCA9IFkwWzFdIFow WzFdIFgwWzJdIFkwWzJdCisgICAgICAgIGxkciAgICAgICAgICAgICB4MTEsIFt4MywgIzE2XSAg ICAgICAgICAgICAgLy8geDExID0gWjBbMl0gWDBbM10gWTBbM10gWjBbM10KKyAgICAgICAgYWRk ICAgICAgICAgICAgIHgzLCAgeDMsICAjMjQKKyAgICAgICAgdWJmeCAgICAgICAgICAgIHgxMiwg eDksICAjNCwgICMxMiAgICAgICAgICAvLyBYMFswXSA+PiA0CisgICAgICAgIGxzciAgICAgICAg ICAgICB4MTMsIHg5LCAgIzUyICAgICAgICAgICAgICAgLy8gWDBbMV0gPj4gNAorICAgICAgICB1 YmZ4ICAgICAgICAgICAgeDE0LCB4MTAsICMzNiwgIzEyICAgICAgICAgIC8vIFgwWzJdID4+IDQK KyAgICAgICAgdWJmeCAgICAgICAgICAgIHgxNSwgeDExLCAjMjAsICMxMiAgICAgICAgICAvLyBY MFszXSA+PiA0CisKKyAgICAgICAgbGRwICAgICAgICAgICAgIHgxOSwgeDIwLCBbeDE3XSAgICAg ICAgICAgICAvLyB4MTkgPSBYMVswXSBZMVswXSBaMVswXSBYMVsxXSwgeDIwID0gWTFbMV0gWjFb MV0gWDFbMl0gWTFbMl0KKyAgICAgICAgbGRyICAgICAgICAgICAgIHgyMSwgW3gxNywgIzE2XSAg ICAgICAgICAgICAvLyB4MjEgPSBaMVsyXSBYMVszXSBZMVszXSBaMVszXQorICAgICAgICBhZGQg ICAgICAgICAgICAgeDE3LCB4MTcsICMyNAorICAgICAgICB1YmZ4ICAgICAgICAgICAgeDIyLCB4 MTksICM0LCAjMTIgICAgICAgICAgIC8vIFgxWzBdID4+IDQKKyAgICAgICAgbHNyICAgICAgICAg ICAgIHgyMywgeDE5LCAjNTIgICAgICAgICAgICAgICAvLyBYMVsxXSA+PiA0CisgICAgICAgIHVi ZnggICAgICAgICAgICB4MjQsIHgyMCwgIzM2LCAjMTIgICAgICAgICAgLy8gWDFbMl0gPj4gNAor ICAgICAgICB1YmZ4ICAgICAgICAgICAgeDI1LCB4MjEsICMyMCwgIzEyICAgICAgICAgIC8vIFgx WzNdID4+IDQKKworICAgICAgICBsZHIgICAgICAgICAgICAgaDAsICBbeDcsIHgxMiwgbHNsICMx XSAgICAgIC8vIGdhbW1hLmluW1gwWzBdID4+IDRdCisgICAgICAgIHViZnggICAgICAgICAgICB4 MTIsIHg5LCAgIzIwLCAjMTIgICAgICAgICAgLy8gWTBbMF0gPj4gNAorICAgICAgICBsZHIgICAg ICAgICAgICAgaDE2LCBbeDcsIHgxMywgbHNsICMxXSAgICAgIC8vIGdhbW1hLmluW1gwWzFdID4+ IDRdCisgICAgICAgIHViZnggICAgICAgICAgICB4MTMsIHgxMCwgIzQsICMxMiAgICAgICAgICAg Ly8gWTBbMV0gPj4gNAorICAgICAgICBsZHIgICAgICAgICAgICAgaDE3LCBbeDcsIHgxNCwgbHNs ICMxXSAgICAgIC8vIGdhbW1hLmluW1gwWzJdID4+IDRdCisgICAgICAgIGxzciAgICAgICAgICAg ICB4MTQsIHgxMCwgIzUyICAgICAgICAgICAgICAgLy8gWTBbMl0gPj4gNAorICAgICAgICBsZHIg ICAgICAgICAgICAgaDE4LCBbeDcsIHgxNSwgbHNsICMxXSAgICAgIC8vIGdhbW1hLmluW1gwWzNd ID4+IDRdCisgICAgICAgIHViZnggICAgICAgICAgICB4MTUsIHgxMSwgIzM2LCAjMTIgICAgICAg ICAgLy8gWTBbM10gPj4gNAorCisgICAgICAgIGxkciAgICAgICAgICAgICBoMjAsIFt4NywgeDIy LCBsc2wgIzFdICAgICAgLy8gZ2FtbWEuaW5bWDFbMF0gPj4gNF0KKyAgICAgICAgdWJmeCAgICAg ICAgICAgIHgyMiwgeDE5LCAjMjAsICMxMiAgICAgICAgICAvLyBZMVswXSA+PiA0CisgICAgICAg IGxkciAgICAgICAgICAgICBoMjYsIFt4NywgeDIzLCBsc2wgIzFdICAgICAgLy8gZ2FtbWEuaW5b WDFbMV0gPj4gNF0KKyAgICAgICAgdWJmeCAgICAgICAgICAgIHgyMywgeDIwLCAjNCwgICMxMiAg ICAgICAgICAvLyBZMVsxXSA+PiA0CisgICAgICAgIGxkciAgICAgICAgICAgICBoMjcsIFt4Nywg eDI0LCBsc2wgIzFdICAgICAgLy8gZ2FtbWEuaW5bWDFbMl0gPj4gNF0KKyAgICAgICAgbHNyICAg ICAgICAgICAgIHgyNCwgeDIwLCAjNTIgICAgICAgICAgICAgICAvLyBZMVsyXSA+PiA0CisgICAg ICAgIGxkciAgICAgICAgICAgICBoMjgsIFt4NywgeDI1LCBsc2wgIzFdICAgICAgLy8gZ2FtbWEu aW5bWDFbM10gPj4gNF0KKyAgICAgICAgdWJmeCAgICAgICAgICAgIHgyNSwgeDIxLCAjMzYsICMx MiAgICAgICAgICAvLyBZMVszXSA+PiA0CisKKyAgICAgICAgbW92ICAgICAgICAgICAgIHYwLmhb MV0sICB2MTYuaFswXSAgICAgICAgICAvLyB2MC40aCAgPSBnYW1tYS5pbltYMFswLi4xXSA+PiA0 XQorICAgICAgICBtb3YgICAgICAgICAgICAgdjE3LmhbMV0sIHYxOC5oWzBdICAgICAgICAgIC8v IHYxNy40aCA9IGdhbW1hLmluW1gwWzIuLjNdID4+IDRdCisgICAgICAgIG1vdiAgICAgICAgICAg ICB2MC5zWzFdLCAgdjE3LnNbMF0gICAgICAgICAgLy8gdjAuNGggID0gZ2FtbWEuaW5bWDBbMC4u M10gPj4gNF0KKyAgICAgICAgbGRyICAgICAgICAgICAgIGgxLCAgW3g3LCB4MTIsIGxzbCAjMV0g ICAgICAvLyBnYW1tYS5pbltZMFswXSA+PiA0XQorICAgICAgICB1bXVsbCAgICAgICAgICAgdjMu NHMsIHYwLjRoLCB2Ni5oWzBdICAgICAgIC8vIFIwWzAuLjNdID0gZ2FtbWEuaW5bWDBbMC4uM10g Pj4gNF0gKiBtYXRbMF1bMF0KKyAgICAgICAgdW11bGwgICAgICAgICAgIHY1LjRzLCB2MC40aCwg djYuaFs2XSAgICAgICAvLyBCMFswLi4zXSA9IGdhbW1hLmluW1gwWzAuLjNdID4+IDRdICogbWF0 WzJdWzBdCisgICAgICAgIHViZnggICAgICAgICAgICB4MTIsIHg5LCAgIzM2LCAjMTIgICAgICAg ICAgLy8gWjBbMF0gPj4gNAorICAgICAgICBsZHIgICAgICAgICAgICAgaDE2LCBbeDcsIHgxMywg bHNsICMxXSAgICAgIC8vIGdhbW1hLmluW1kwWzFdID4+IDRdCisKKyAgICAgICAgbW92ICAgICAg ICAgICAgIHYyMC5oWzFdLCB2MjYuaFswXSAgICAgICAgICAvLyB2MjAuNGggPSBnYW1tYS5pbltY MVswLi4xXSA+PiA0XQorICAgICAgICBtb3YgICAgICAgICAgICAgdjI3LmhbMV0sIHYyOC5oWzBd ICAgICAgICAgIC8vIHYyNy40aCA9IGdhbW1hLmluW1gxWzIuLjNdID4+IDRdCisgICAgICAgIG1v diAgICAgICAgICAgICB2MjAuc1sxXSwgdjI3LnNbMF0gICAgICAgICAgLy8gdjIwLjRoID0gZ2Ft bWEuaW5bWDFbMC4uM10gPj4gNF0KKyAgICAgICAgbGRyICAgICAgICAgICAgIGgyMSwgW3g3LCB4 MjIsIGxzbCAjMV0gICAgICAvLyBnYW1tYS5pbltZMVswXSA+PiA0XQorICAgICAgICB1bXVsbCAg ICAgICAgICAgdjIzLjRzLCB2MjAuNGgsIHY2LmhbMF0gICAgIC8vIFIxWzAuLjNdID0gZ2FtbWEu aW5bWDFbMC4uM10gPj4gNF0gKiBtYXRbMF1bMF0KKyAgICAgICAgdW11bGwgICAgICAgICAgIHYy NS40cywgdjIwLjRoLCB2Ni5oWzZdICAgICAvLyBCMVswLi4zXSA9IGdhbW1hLmluW1gxWzAuLjNd ID4+IDRdICogbWF0WzJdWzBdCisgICAgICAgIHViZnggICAgICAgICAgICB4MjIsIHgxOSwgIzM2 LCAjMTIgICAgICAgICAgLy8gWjFbMF0gPj4gNAorICAgICAgICBsZHIgICAgICAgICAgICAgaDI2 LCBbeDcsIHgyMywgbHNsICMxXSAgICAgIC8vIGdhbW1hLmluW1kxWzFdID4+IDRdCisKKyAgICAg ICAgdWJmeCAgICAgICAgICAgIHgxMywgeDEwLCAjMjAsICMxMiAgICAgICAgICAvLyBaMFsxXSA+ PiA0CisgICAgICAgIGxkciAgICAgICAgICAgICBoMTcsIFt4NywgeDE0LCBsc2wgIzFdICAgICAg Ly8gZ2FtbWEuaW5bWTBbMl0gPj4gNF0KKyAgICAgICAgdWJmeCAgICAgICAgICAgIHgxNCwgeDEx LCAjNCwgICMxMiAgICAgICAgICAvLyBaMFsyXSA+PiA0CisgICAgICAgIGxkciAgICAgICAgICAg ICBoMTgsIFt4NywgeDE1LCBsc2wgIzFdICAgICAgLy8gZ2FtbWEuaW5bWTBbM10gPj4gNF0KKyAg ICAgICAgbHNyICAgICAgICAgICAgIHgxNSwgeDExLCAjNTIgICAgICAgICAgICAgICAvLyBaMFsz XSA+PiA0CisgICAgICAgIG1vdiAgICAgICAgICAgICB2MS5oWzFdLCAgdjE2LmhbMF0gICAgICAg ICAgLy8gdjEuNGggID0gZ2FtbWEuaW5bWTBbMC4uMV0gPj4gNF0KKyAgICAgICAgbW92ICAgICAg ICAgICAgIHYxNy5oWzFdLCB2MTguaFswXSAgICAgICAgICAvLyB2MTcuNGggPSBnYW1tYS5pbltZ MFsyLi4zXSA+PiA0XQorICAgICAgICBtb3YgICAgICAgICAgICAgdjEuc1sxXSwgIHYxNy5zWzBd ICAgICAgICAgIC8vIHYxLjRoICA9IGdhbW1hLmluW1kwWzAuLjNdID4+IDRdCisKKyAgICAgICAg dWJmeCAgICAgICAgICAgIHgyMywgeDIwLCAjMjAsICMxMiAgICAgICAgICAvLyBaMVsxXSA+PiA0 CisgICAgICAgIGxkciAgICAgICAgICAgICBoMjcsIFt4NywgeDI0LCBsc2wgIzFdICAgICAgLy8g Z2FtbWEuaW5bWTFbMl0gPj4gNF0KKyAgICAgICAgdWJmeCAgICAgICAgICAgIHgyNCwgeDIxLCAj NCwgICMxMiAgICAgICAgICAvLyBaMVsyXSA+PiA0CisgICAgICAgIGxkciAgICAgICAgICAgICBo MjgsIFt4NywgeDI1LCBsc2wgIzFdICAgICAgLy8gZ2FtbWEuaW5bWTFbM10gPj4gNF0KKyAgICAg ICAgdW11bGwgICAgICAgICAgIHY0LjRzLCAgdjEuNGgsICB2Ni5oWzRdICAgICAvLyBHMFswLi4z XSAgPSBnYW1tYS5pbltZMFswLi4zXSA+PiA0XSAqIG1hdFsxXVsxXQorICAgICAgICB1bWxzbCAg ICAgICAgICAgdjMuNHMsICB2MS40aCwgIHY2LmhbMV0gICAgIC8vIFIwWzAuLjNdIC09IGdhbW1h LmluW1kwWzAuLjNdID4+IDRdICogbWF0WzBdWzFdCisKKyAgICAgICAgbHNyICAgICAgICAgICAg IHgyNSwgeDIxLCAjNTIgICAgICAgICAgICAgICAvLyBaMVszXSA+PiA0CisgICAgICAgIG1vdiAg ICAgICAgICAgICB2MjEuaFsxXSwgdjI2LmhbMF0gICAgICAgICAgLy8gdjIxLjRoID0gZ2FtbWEu aW5bWTFbMC4uMV0gPj4gNF0KKyAgICAgICAgbW92ICAgICAgICAgICAgIHYyNy5oWzFdLCB2Mjgu aFswXSAgICAgICAgICAvLyB2MjcuNGggPSBnYW1tYS5pbltZMVsyLi4zXSA+PiA0XQorICAgICAg ICBtb3YgICAgICAgICAgICAgdjIxLnNbMV0sIHYyNy5zWzBdICAgICAgICAgIC8vIHYyMS40aCA9 IGdhbW1hLmluW1kxWzAuLjNdID4+IDRdCisgICAgICAgIHVtbHNsICAgICAgICAgICB2NC40cywg IHYwLjRoLCAgdjYuaFszXSAgICAgLy8gRzBbMC4uM10gLT0gZ2FtbWEuaW5bWDBbMC4uM10gPj4g NF0gKiBtYXRbMV1bMF0KKyAgICAgICAgdW1sc2wgICAgICAgICAgIHY1LjRzLCAgdjEuNGgsICB2 Ni5oWzddICAgICAvLyBCMFswLi4zXSAtPSBnYW1tYS5pbltZMFswLi4zXSA+PiA0XSAqIG1hdFsy XVsxXQorCisgICAgICAgIGxkciAgICAgICAgICAgICBoMiwgIFt4NywgeDEyLCBsc2wgIzFdICAg ICAgLy8gZ2FtbWEuaW5bWjBbMF0gPj4gNF0KKyAgICAgICAgbGRyICAgICAgICAgICAgIGgxNiwg W3g3LCB4MTMsIGxzbCAjMV0gICAgICAvLyBnYW1tYS5pbltaMFsxXSA+PiA0XQorICAgICAgICBs ZHIgICAgICAgICAgICAgaDE3LCBbeDcsIHgxNCwgbHNsICMxXSAgICAgIC8vIGdhbW1hLmluW1ow WzJdID4+IDRdCisgICAgICAgIGxkciAgICAgICAgICAgICBoMTgsIFt4NywgeDE1LCBsc2wgIzFd ICAgICAgLy8gZ2FtbWEuaW5bWjBbM10gPj4gNF0KKyAgICAgICAgdW11bGwgICAgICAgICAgIHYy NC40cywgdjIxLjRoLCB2Ni5oWzRdICAgICAvLyBHMVswLi4zXSAgPSBnYW1tYS5pbltZMVswLi4z XSA+PiA0XSAqIG1hdFsxXVsxXQorICAgICAgICB1bWxzbCAgICAgICAgICAgdjIzLjRzLCB2MjEu NGgsIHY2LmhbMV0gICAgIC8vIFIxWzAuLjNdIC09IGdhbW1hLmluW1kxWzAuLjNdID4+IDRdICog bWF0WzBdWzFdCisKKyAgICAgICAgbW92ICAgICAgICAgICAgIHYyLmhbMV0sICB2MTYuaFswXSAg ICAgICAgICAvLyB2Mi40aCAgPSBnYW1tYS5pbltaMFswLi4xXSA+PiA0XQorICAgICAgICBtb3Yg ICAgICAgICAgICAgdjE3LmhbMV0sIHYxOC5oWzBdICAgICAgICAgIC8vIHYxNy40aCA9IGdhbW1h LmluW1owWzIuLjNdID4+IDRdCisgICAgICAgIG1vdiAgICAgICAgICAgICB2Mi5zWzFdLCAgdjE3 LnNbMF0gICAgICAgICAgLy8gdjIuNGggID0gZ2FtbWEuaW5bWjBbMC4uM10gPj4gNF0KKyAgICAg ICAgdW1sc2wgICAgICAgICAgIHYyNC40cywgdjIwLjRoLCB2Ni5oWzNdICAgICAvLyBHMVswLi4z XSAtPSBnYW1tYS5pbltYMVswLi4zXSA+PiA0XSAqIG1hdFsxXVswXQorICAgICAgICB1bWxzbCAg ICAgICAgICAgdjI1LjRzLCB2MjEuNGgsIHY2LmhbN10gICAgIC8vIEIxWzAuLjNdIC09IGdhbW1h LmluW1kxWzAuLjNdID4+IDRdICogbWF0WzJdWzFdCisKKyAgICAgICAgbGRyICAgICAgICAgICAg IGgyMiwgW3g3LCB4MjIsIGxzbCAjMV0gICAgICAvLyBnYW1tYS5pbltaMVswXSA+PiA0XQorICAg ICAgICBsZHIgICAgICAgICAgICAgaDI2LCBbeDcsIHgyMywgbHNsICMxXSAgICAgIC8vIGdhbW1h LmluW1oxWzFdID4+IDRdCisgICAgICAgIGxkciAgICAgICAgICAgICBoMjcsIFt4NywgeDI0LCBs c2wgIzFdICAgICAgLy8gZ2FtbWEuaW5bWjFbMl0gPj4gNF0KKyAgICAgICAgbGRyICAgICAgICAg ICAgIGgyOCwgW3g3LCB4MjUsIGxzbCAjMV0gICAgICAvLyBnYW1tYS5pbltaMVszXSA+PiA0XQor ICAgICAgICBtb3YgICAgICAgICAgICAgdjIyLmhbMV0sIHYyNi5oWzBdICAgICAgICAgIC8vIHYy Mi40aCA9IGdhbW1hLmluW1oxWzAuLjFdID4+IDRdCisgICAgICAgIG1vdiAgICAgICAgICAgICB2 MjcuaFsxXSwgdjI4LmhbMF0gICAgICAgICAgLy8gdjI3LjRoID0gZ2FtbWEuaW5bWjFbMi4uM10g Pj4gNF0KKyAgICAgICAgbW92ICAgICAgICAgICAgIHYyMi5zWzFdLCB2Mjcuc1swXSAgICAgICAg ICAvLyB2MjIuNGggPSBnYW1tYS5pbltaMVswLi4zXSA+PiA0XQorCisgICAgICAgIHVtbHNsICAg ICAgICAgICB2My40cywgIHYyLjRoLCAgdjYuaFsyXSAgICAgLy8gUjBbMC4uM10gLT0gZ2FtbWEu aW5bWjBbMC4uM10gPj4gNF0gKiBtYXRbMF1bMl0KKyAgICAgICAgc3FzaHJ1biAgICAgICAgIHYz LjRoLCAgdjMuNHMsICAjMTIgICAgICAgICAvLyBjbGlwKFIwWzAuLjNdID4+IDEyKQorICAgICAg ICB1bWxhbCAgICAgICAgICAgdjQuNHMsICB2Mi40aCwgIHY2LmhbNV0gICAgIC8vIEcwWzAuLjNd ICs9IGdhbW1hLmluW1owWzAuLjNdID4+IDRdICogbWF0WzFdWzJdCisgICAgICAgIHNxc2hydW4g ICAgICAgICB2NC40aCwgIHY0LjRzLCAgIzEyICAgICAgICAgLy8gY2xpcChHMFswLi4zXSA+PiAx MikKKyAgICAgICAgdW1vdiAgICAgICAgICAgIHc5LCAgdjMuaFswXSAgICAgICAgICAgICAgICAv LyBjbGlwKFIwWzBdID4+IDEyKQorICAgICAgICB1bW92ICAgICAgICAgICAgdzEwLCB2NC5oWzFd ICAgICAgICAgICAgICAgIC8vIGNsaXAoRzBbMV0gPj4gMTIpCisgICAgICAgIHVtbGFsICAgICAg ICAgICB2NS40cywgIHYyLjRoLCAgdjcuaFswXSAgICAgLy8gQjBbMC4uM10gKz0gZ2FtbWEuaW5b WjBbMC4uM10gPj4gNF0gKiBtYXRbMl1bMl0KKyAgICAgICAgc3FzaHJ1biAgICAgICAgIHY1LjRo LCAgdjUuNHMsICAjMTIgICAgICAgICAvLyBjbGlwKEIwWzAuLjNdID4+IDEyKQorCisgICAgICAg IHVtbHNsICAgICAgICAgICB2MjMuNHMsIHYyMi40aCwgdjYuaFsyXSAgICAgLy8gUjFbMC4uM10g LT0gZ2FtbWEuaW5bWjFbMC4uM10gPj4gNF0gKiBtYXRbMF1bMl0KKyAgICAgICAgc3FzaHJ1biAg ICAgICAgIHYyMy40aCwgdjIzLjRzLCAjMTIgICAgICAgICAvLyBjbGlwKFIxWzAuLjNdID4+IDEy KQorICAgICAgICB1bWxhbCAgICAgICAgICAgdjI0LjRzLCB2MjIuNGgsIHY2LmhbNV0gICAgIC8v IEcxWzAuLjNdICs9IGdhbW1hLmluW1oxWzAuLjNdID4+IDRdICogbWF0WzFdWzJdCisgICAgICAg IHNxc2hydW4gICAgICAgICB2MjQuNGgsIHYyNC40cywgIzEyICAgICAgICAgLy8gY2xpcChHMVsw Li4zXSA+PiAxMikKKyAgICAgICAgdW1vdiAgICAgICAgICAgIHcxOSwgdjIzLmhbMF0gICAgICAg ICAgICAgICAvLyBjbGlwKFIxWzBdID4+IDEyKQorICAgICAgICB1bW92ICAgICAgICAgICAgdzIw LCB2MjQuaFsxXSAgICAgICAgICAgICAgIC8vIGNsaXAoRzFbMV0gPj4gMTIpCisgICAgICAgIHVt bGFsICAgICAgICAgICB2MjUuNHMsIHYyMi40aCwgdjcuaFswXSAgICAgLy8gQjFbMC4uM10gKz0g Z2FtbWEuaW5bWjFbMC4uM10gPj4gNF0gKiBtYXRbMl1bMl0KKyAgICAgICAgc3FzaHJ1biAgICAg ICAgIHYyNS40aCwgdjI1LjRzLCAjMTIgICAgICAgICAvLyBjbGlwKEIxWzAuLjNdID4+IDEyKQor CisgICAgICAgIHVtb3YgICAgICAgICAgICB3MTEsIHY1LmhbMl0gICAgICAgICAgICAgICAgLy8g Y2xpcChCMFsyXSA+PiAxMikKKyAgICAgICAgdW1vdiAgICAgICAgICAgIHcxMiwgdjQuaFswXSAg ICAgICAgICAgICAgICAvLyBjbGlwKEcwWzBdID4+IDEyKQorICAgICAgICBsZHJoICAgICAgICAg ICAgdzksICBbeDgsIHg5LCAgbHNsICMxXSAgICAgIC8vIFIwWzBdID0gZ2FtbWEub3V0W2NsaXAo UjBbMF0gPj4gMTIpXQorICAgICAgICBsc2wgICAgICAgICAgICAgeDksICB4OSwgICM0ICAgICAg ICAgICAgICAgIC8vIFIwWzBdIDw8IDQKKyAgICAgICAgdW1vdiAgICAgICAgICAgIHcxMywgdjUu aFsxXSAgICAgICAgICAgICAgICAvLyBjbGlwKEIwWzFdID4+IDEyKQorICAgICAgICBsZHJoICAg ICAgICAgICAgdzEwLCBbeDgsIHgxMCwgbHNsICMxXSAgICAgIC8vIEcwWzFdID0gZ2FtbWEub3V0 W2NsaXAoRzBbMV0gPj4gMTIpXQorICAgICAgICBsc2wgICAgICAgICAgICAgeDEwLCB4MTAsICM0 ICAgICAgICAgICAgICAgIC8vIEcwWzFdIDw8IDQKKworICAgICAgICB1bW92ICAgICAgICAgICAg dzIxLCB2MjUuaFsyXSAgICAgICAgICAgICAgIC8vIGNsaXAoQjFbMl0gPj4gMTIpCisgICAgICAg IHVtb3YgICAgICAgICAgICB3MjIsIHYyNC5oWzBdICAgICAgICAgICAgICAgLy8gY2xpcChHMVsw XSA+PiAxMikKKyAgICAgICAgbGRyaCAgICAgICAgICAgIHcxOSwgW3g4LCB4MTksIGxzbCAjMV0g ICAgICAvLyBSMVswXSA9IGdhbW1hLm91dFtjbGlwKFIxWzBdID4+IDEyKV0KKyAgICAgICAgbHNs ICAgICAgICAgICAgIHgxOSwgeDE5LCAjNCAgICAgICAgICAgICAgICAvLyBSMVswXSA8PCA0Cisg ICAgICAgIHVtb3YgICAgICAgICAgICB3MjMsIHYyNS5oWzFdICAgICAgICAgICAgICAgLy8gY2xp cChCMVsxXSA+PiAxMikKKyAgICAgICAgbGRyaCAgICAgICAgICAgIHcyMCwgW3g4LCB4MjAsIGxz bCAjMV0gICAgICAvLyBHMVsxXSA9IGdhbW1hLm91dFtjbGlwKEcxWzFdID4+IDEyKV0KKyAgICAg ICAgbHNsICAgICAgICAgICAgIHgyMCwgeDIwLCAjNCAgICAgICAgICAgICAgICAvLyBHMVsxXSA8 PCA0CisKKyAgICAgICAgdW1vdiAgICAgICAgICAgIHcxNCwgdjMuaFszXSAgICAgICAgICAgICAg ICAvLyBjbGlwKFIwWzNdID4+IDEyKQorICAgICAgICBsZHJoICAgICAgICAgICAgdzExLCBbeDgs IHgxMSwgbHNsICMxXSAgICAgIC8vIEIwWzJdID0gZ2FtbWEub3V0W2NsaXAoQjBbMl0gPj4gMTIp XQorICAgICAgICBsc2wgICAgICAgICAgICAgeDExLCB4MTEsICM0ICAgICAgICAgICAgICAgIC8v IEIwWzJdIDw8IDQKKyAgICAgICAgdW1vdiAgICAgICAgICAgIHcxNSwgdjUuaFswXSAgICAgICAg ICAgICAgICAvLyBjbGlwKEIwWzBdID4+IDEyKQorICAgICAgICBsZHJoICAgICAgICAgICAgdzEy LCBbeDgsIHgxMiwgbHNsICMxXSAgICAgIC8vIEcwWzBdID0gZ2FtbWEub3V0W2NsaXAoRzBbMF0g Pj4gMTIpXQorICAgICAgICBvcnIgICAgICAgICAgICAgeDksICB4OSwgIHgxMiwgbHNsICMyMCAg ICAgIC8vIFIwWzBdIDw8IDQsIEcwWzBdIDw8IDQKKyAgICAgICAgdW1vdiAgICAgICAgICAgIHcx MiwgdjMuaFsyXSAgICAgICAgICAgICAgICAvLyBjbGlwKFIwWzJdID4+IDEyKQorICAgICAgICBs ZHJoICAgICAgICAgICAgdzEzLCBbeDgsIHgxMywgbHNsICMxXSAgICAgIC8vIEIwWzFdID0gZ2Ft bWEub3V0W2NsaXAoQjBbMV0gPj4gMTIpXQorCisgICAgICAgIHVtb3YgICAgICAgICAgICB3MjQs IHYyMy5oWzNdICAgICAgICAgICAgICAgLy8gY2xpcChSMVszXSA+PiAxMikKKyAgICAgICAgbGRy aCAgICAgICAgICAgIHcyMSwgW3g4LCB4MjEsIGxzbCAjMV0gICAgICAvLyBCMVsyXSA9IGdhbW1h Lm91dFtjbGlwKEIxWzJdID4+IDEyKV0KKyAgICAgICAgbHNsICAgICAgICAgICAgIHgyMSwgeDIx LCAjNCAgICAgICAgICAgICAgICAvLyBCMVsyXSA8PCA0CisgICAgICAgIHVtb3YgICAgICAgICAg ICB3MjUsIHYyNS5oWzBdICAgICAgICAgICAgICAgLy8gY2xpcChCMVswXSA+PiAxMikKKyAgICAg ICAgbGRyaCAgICAgICAgICAgIHcyMiwgW3g4LCB4MjIsIGxzbCAjMV0gICAgICAvLyBHMVswXSA9 IGdhbW1hLm91dFtjbGlwKEcxWzBdID4+IDEyKV0KKyAgICAgICAgb3JyICAgICAgICAgICAgIHgx OSwgeDE5LCB4MjIsIGxzbCAjMjAgICAgICAvLyBSMVswXSA8PCA0LCBHMVswXSA8PCA0CisgICAg ICAgIHVtb3YgICAgICAgICAgICB3MjIsIHYyMy5oWzJdICAgICAgICAgICAgICAgLy8gY2xpcChS MVsyXSA+PiAxMikKKyAgICAgICAgbGRyaCAgICAgICAgICAgIHcyMywgW3g4LCB4MjMsIGxzbCAj MV0gICAgICAvLyBCMVsxXSA9IGdhbW1hLm91dFtjbGlwKEIxWzFdID4+IDEyKV0KKworICAgICAg ICBvcnIgICAgICAgICAgICAgeDEwLCB4MTAsIHgxMywgbHNsICMyMCAgICAgIC8vIEcwWzFdIDw8 IDQsIEIwWzFdIDw8IDQKKyAgICAgICAgdW1vdiAgICAgICAgICAgIHcxMywgdjQuaFszXSAgICAg ICAgICAgICAgICAvLyBjbGlwKEcwWzNdID4+IDEyKQorICAgICAgICBsZHJoICAgICAgICAgICAg dzE0LCBbeDgsIHgxNCwgbHNsICMxXSAgICAgIC8vIFIwWzNdID0gZ2FtbWEub3V0W2NsaXAoUjBb M10gPj4gMTIpXQorICAgICAgICBvcnIgICAgICAgICAgICAgeDExLCB4MTEsIHgxNCwgbHNsICMy MCAgICAgIC8vIEIwWzJdIDw8IDQsIFIwWzNdIDw8IDQKKyAgICAgICAgdW1vdiAgICAgICAgICAg IHcxNCwgdjMuaFsxXSAgICAgICAgICAgICAgICAvLyBjbGlwKFIwWzFdID4+IDEyKQorICAgICAg ICBsZHJoICAgICAgICAgICAgdzE1LCBbeDgsIHgxNSwgbHNsICMxXSAgICAgIC8vIEIwWzBdID0g Z2FtbWEub3V0W2NsaXAoQjBbMF0gPj4gMTIpXQorICAgICAgICBvcnIgICAgICAgICAgICAgeDks ICB4OSwgIHgxNSwgbHNsICMzNiAgICAgIC8vIFIwWzBdIDw8IDQsIEcwWzBdIDw8IDQsIEIwWzBd IDw8IDQKKyAgICAgICAgdW1vdiAgICAgICAgICAgIHcxNSwgdjQuaFsyXSAgICAgICAgICAgICAg ICAvLyBjbGlwKEcwWzJdID4+IDEyKQorCisgICAgICAgIG9yciAgICAgICAgICAgICB4MjAsIHgy MCwgeDIzLCBsc2wgIzIwICAgICAgLy8gRzFbMV0gPDwgNCwgQjFbMV0gPDwgNAorICAgICAgICB1 bW92ICAgICAgICAgICAgdzIzLCB2MjQuaFszXSAgICAgICAgICAgICAgIC8vIGNsaXAoRzFbM10g Pj4gMTIpCisgICAgICAgIGxkcmggICAgICAgICAgICB3MjQsIFt4OCwgeDI0LCBsc2wgIzFdICAg ICAgLy8gUjFbM10gPSBnYW1tYS5vdXRbY2xpcChSMVszXSA+PiAxMildCisgICAgICAgIG9yciAg ICAgICAgICAgICB4MjEsIHgyMSwgeDI0LCBsc2wgIzIwICAgICAgLy8gQjFbMl0gPDwgNCwgUjFb M10gPDwgNAorICAgICAgICB1bW92ICAgICAgICAgICAgdzI0LCB2MjMuaFsxXSAgICAgICAgICAg ICAgIC8vIGNsaXAoUjFbMV0gPj4gMTIpCisgICAgICAgIGxkcmggICAgICAgICAgICB3MjUsIFt4 OCwgeDI1LCBsc2wgIzFdICAgICAgLy8gQjFbMF0gPSBnYW1tYS5vdXRbY2xpcChCMVswXSA+PiAx MildCisgICAgICAgIG9yciAgICAgICAgICAgICB4MTksIHgxOSwgeDI1LCBsc2wgIzM2ICAgICAg Ly8gUjFbMF0gPDwgNCwgRzFbMF0gPDwgNCwgQjFbMF0gPDwgNAorICAgICAgICB1bW92ICAgICAg ICAgICAgdzI1LCB2MjQuaFsyXSAgICAgICAgICAgICAgIC8vIGNsaXAoRzFbMl0gPj4gMTIpCisK KyAgICAgICAgbGRyaCAgICAgICAgICAgIHcxMiwgW3g4LCB4MTIsIGxzbCAjMV0gICAgICAvLyBS MFsyXSA9IGdhbW1hLm91dFtjbGlwKFIwWzJdID4+IDEyKV0KKyAgICAgICAgb3JyICAgICAgICAg ICAgIHgxMCwgeDEwLCB4MTIsIGxzbCAjMzYgICAgICAvLyBHMFsxXSA8PCA0LCBCMFsxXSA8PCA0 LCBSMFsyXSA8PCA0CisgICAgICAgIHVtb3YgICAgICAgICAgICB3MTIsIHY1LmhbM10gICAgICAg ICAgICAgICAgLy8gY2xpcChCMFszXSA+PiAxMikKKyAgICAgICAgbGRyaCAgICAgICAgICAgIHcx MywgW3g4LCB4MTMsIGxzbCAjMV0gICAgICAvLyBHMFszXSA9IGdhbW1hLm91dFtjbGlwKEcwWzNd ID4+IDEyKV0KKyAgICAgICAgb3JyICAgICAgICAgICAgIHgxMSwgeDExLCB4MTMsIGxzbCAjMzYg ICAgICAvLyBCMFsyXSA8PCA0LCBSMFszXSA8PCA0LCBHMFszXSA8PCA0CisgICAgICAgIGxkcmgg ICAgICAgICAgICB3MTQsIFt4OCwgeDE0LCBsc2wgIzFdICAgICAgLy8gUjBbMV0gPSBnYW1tYS5v dXRbY2xpcChSMFsxXSA+PiAxMildCisgICAgICAgIG9yciAgICAgICAgICAgICB4OSwgIHg5LCAg eDE0LCBsc2wgIzUyICAgICAgLy8geDkgID0gUjBbMF0gPDwgNCwgRzBbMF0gPDwgNCwgQjBbMF0g PDwgNCwgUjBbMV0gPDwgNAorICAgICAgICBsZHJoICAgICAgICAgICAgdzE1LCBbeDgsIHgxNSwg bHNsICMxXSAgICAgIC8vIEcwWzJdID0gZ2FtbWEub3V0W2NsaXAoRzBbMl0gPj4gMTIpXQorICAg ICAgICBvcnIgICAgICAgICAgICAgeDEwLCB4MTAsIHgxNSwgbHNsICM1MiAgICAgIC8vIHgxMCA9 IEcwWzFdIDw8IDQsIEIwWzFdIDw8IDQsIFIwWzJdIDw8IDQsIEcwWzJdIDw8IDQKKyAgICAgICAg bGRyaCAgICAgICAgICAgIHcxMiwgW3g4LCB4MTIsIGxzbCAjMV0gICAgICAvLyBCMFszXSA9IGdh bW1hLm91dFtjbGlwKEIwWzNdID4+IDEyKV0KKyAgICAgICAgb3JyICAgICAgICAgICAgIHgxMSwg eDExLCB4MTIsIGxzbCAjNTIgICAgICAvLyB4MTEgPSBCMFsyXSA8PCA0LCBSMFszXSA8PCA0LCBH MFszXSA8PCA0LCBCMFszXSA8PCA0CisgICAgICAgIHN0cCAgICAgICAgICAgICB4OSwgIHgxMCwg W3gxXQorICAgICAgICBzdHIgICAgICAgICAgICAgeDExLCBbeDEsICMxNl0KKworICAgICAgICBs ZHJoICAgICAgICAgICAgdzIyLCBbeDgsIHgyMiwgbHNsICMxXSAgICAgIC8vIFIxWzJdID0gZ2Ft bWEub3V0W2NsaXAoUjFbMl0gPj4gMTIpXQorICAgICAgICBvcnIgICAgICAgICAgICAgeDIwLCB4 MjAsIHgyMiwgbHNsICMzNiAgICAgIC8vIEcxWzFdIDw8IDQsIEIxWzFdIDw8IDQsIFIxWzJdIDw8 IDQKKyAgICAgICAgdW1vdiAgICAgICAgICAgIHcyMiwgdjI1LmhbM10gICAgICAgICAgICAgICAv LyBjbGlwKEIxWzNdID4+IDEyKQorICAgICAgICBsZHJoICAgICAgICAgICAgdzIzLCBbeDgsIHgy MywgbHNsICMxXSAgICAgIC8vIEcxWzNdID0gZ2FtbWEub3V0W2NsaXAoRzFbM10gPj4gMTIpXQor ICAgICAgICBvcnIgICAgICAgICAgICAgeDIxLCB4MjEsIHgyMywgbHNsICMzNiAgICAgIC8vIEIx WzJdIDw8IDQsIFIxWzNdIDw8IDQsIEcxWzNdIDw8IDQKKyAgICAgICAgbGRyaCAgICAgICAgICAg IHcyNCwgW3g4LCB4MjQsIGxzbCAjMV0gICAgICAvLyBSMVsxXSA9IGdhbW1hLm91dFtjbGlwKFIx WzFdID4+IDEyKV0KKyAgICAgICAgb3JyICAgICAgICAgICAgIHgxOSwgeDE5LCB4MjQsIGxzbCAj NTIgICAgICAvLyB4MTkgPSBSMVswXSA8PCA0LCBHMVswXSA8PCA0LCBCMVswXSA8PCA0LCBSMVsx XSA8PCA0CisgICAgICAgIGxkcmggICAgICAgICAgICB3MjUsIFt4OCwgeDI1LCBsc2wgIzFdICAg ICAgLy8gRzFbMl0gPSBnYW1tYS5vdXRbY2xpcChHMVsyXSA+PiAxMildCisgICAgICAgIG9yciAg ICAgICAgICAgICB4MjAsIHgyMCwgeDI1LCBsc2wgIzUyICAgICAgLy8geDIwID0gRzFbMV0gPDwg NCwgQjFbMV0gPDwgNCwgUjFbMl0gPDwgNCwgRzFbMl0gPDwgNAorICAgICAgICBsZHJoICAgICAg ICAgICAgdzIyLCBbeDgsIHgyMiwgbHNsICMxXSAgICAgIC8vIEIxWzNdID0gZ2FtbWEub3V0W2Ns aXAoQjFbM10gPj4gMTIpXQorICAgICAgICBvcnIgICAgICAgICAgICAgeDIxLCB4MjEsIHgyMiwg bHNsICM1MiAgICAgIC8vIHgyMSA9IEIxWzJdIDw8IDQsIFIxWzNdIDw8IDQsIEcxWzNdIDw8IDQs IEIxWzNdIDw8IDQKKyAgICAgICAgc3RwICAgICAgICAgICAgIHgxOSwgeDIwLCBbeDE2XQorICAg ICAgICBzdHIgICAgICAgICAgICAgeDIxLCBbeDE2LCAjMTZdCisKKyAgICAgICAgYWRkICAgICAg ICAgICAgIHgxLCAgeDEsICAjMjQKKyAgICAgICAgYWRkICAgICAgICAgICAgIHgxNiwgeDE2LCAj MjQKKworICAgICAgICBzdWJzICAgICAgICAgICAgdzAsICB3MCwgICM0CisgICAgICAgIGIuZ2Ug ICAgICAgICAgICAyYgorCisgICAgICAgIC5hbGlnbiBKVU1QX0FMSUdOCiszOgorICAgICAgICB0 c3QgICAgICAgICAgICAgdzUsICAjMworICAgICAgICBiLmVxICAgICAgICAgICAgNWYgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIG5vIHJlc2lkdWFsIHBpeGVsczsgKHcgJiAzKSA9PSAwCisK KyAgICAgICAgbGRyICAgICAgICAgICAgIHcxMCwgW3gzXSAgICAgICAgICAgICAgICAgICAvLyB3 MTAgPSBYMFswXSBZMFswXQorICAgICAgICBsZHJoICAgICAgICAgICAgdzExLCBbeDMsICM0XSAg ICAgICAgICAgICAgIC8vIHcxMSA9IFowWzBdCisgICAgICAgIGFkZCAgICAgICAgICAgICB4Mywg IHgzLCAgIzYKKyAgICAgICAgbGRyICAgICAgICAgICAgIHcyMCwgW3gxN10gICAgICAgICAgICAg ICAgICAvLyB3MjAgPSBYMVswXSBZMVswXQorICAgICAgICBsZHJoICAgICAgICAgICAgdzIxLCBb eDE3LCAjNF0gICAgICAgICAgICAgIC8vIHcyMSA9IFoxWzBdCisgICAgICAgIGFkZCAgICAgICAg ICAgICB4MTcsIHgxNywgIzYKKyAgICAgICAgdWJmeCAgICAgICAgICAgIHc5LCAgdzEwLCAjNCwg ICMxMiAgICAgICAgICAvLyBYMFswXSA+PiA0CisgICAgICAgIHViZnggICAgICAgICAgICB3MTAs IHcxMCwgIzIwLCAjMTIgICAgICAgICAgLy8gWTBbMF0gPj4gNAorICAgICAgICBsc3IgICAgICAg ICAgICAgdzExLCB3MTEsICM0ICAgICAgICAgICAgICAgIC8vIFowWzBdID4+IDQKKyAgICAgICAg bGRyICAgICAgICAgICAgIGgwLCAgW3g3LCB4OSwgIGxzbCAjMV0gICAgICAvLyB2MC40aCA9IGdh bW1hLmluW1gwWzBdID4+IDRdCisgICAgICAgIGxkciAgICAgICAgICAgICBoMSwgIFt4NywgeDEw LCBsc2wgIzFdICAgICAgLy8gdjEuNGggPSBnYW1tYS5pbltZMFswXSA+PiA0XQorICAgICAgICBs ZHIgICAgICAgICAgICAgaDIsICBbeDcsIHgxMSwgbHNsICMxXSAgICAgIC8vIHYyLjRoID0gZ2Ft bWEuaW5bWjBbMF0gPj4gNF0KKyAgICAgICAgdWJmeCAgICAgICAgICAgIHcxOSwgdzIwLCAjNCwg ICMxMiAgICAgICAgICAvLyBYMVswXSA+PiA0CisgICAgICAgIHViZnggICAgICAgICAgICB3MjAs IHcyMCwgIzIwLCAjMTIgICAgICAgICAgLy8gWTFbMF0gPj4gNAorICAgICAgICBsc3IgICAgICAg ICAgICAgdzIxLCB3MjEsICM0ICAgICAgICAgICAgICAgIC8vIFoxWzBdID4+IDQKKyAgICAgICAg bGRyICAgICAgICAgICAgIGgyMCwgW3g3LCB4MTksIGxzbCAjMV0gICAgICAvLyB2MjAuNGggPSBn YW1tYS5pbltYMVswXSA+PiA0XQorICAgICAgICBsZHIgICAgICAgICAgICAgaDIxLCBbeDcsIHgy MCwgbHNsICMxXSAgICAgIC8vIHYyMS40aCA9IGdhbW1hLmluW1kxWzBdID4+IDRdCisgICAgICAg IGxkciAgICAgICAgICAgICBoMjIsIFt4NywgeDIxLCBsc2wgIzFdICAgICAgLy8gdjIyLjRoID0g Z2FtbWEuaW5bWjFbMF0gPj4gNF0KKworICAgICAgICBjbXAgICAgICAgICAgICAgdzAsICAjLTIK KyAgICAgICAgYi5sdCAgICAgICAgICAgIDRmICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAo dyAmIDMpID09IDEKKworICAgICAgICBsZHIgICAgICAgICAgICAgdzEwLCBbeDNdICAgICAgICAg ICAgICAgICAgIC8vIHcxMCA9IFgwWzFdIFkwWzFdCisgICAgICAgIGxkcmggICAgICAgICAgICB3 MTEsIFt4MywgIzRdICAgICAgICAgICAgICAgLy8gdzExID0gWjBbMV0KKyAgICAgICAgYWRkICAg ICAgICAgICAgIHgzLCAgeDMsICAjNgorICAgICAgICBsZHIgICAgICAgICAgICAgdzIwLCBbeDE3 XSAgICAgICAgICAgICAgICAgIC8vIHcyMCA9IFgxWzFdIFkxWzFdCisgICAgICAgIGxkcmggICAg ICAgICAgICB3MjEsIFt4MTcsICM0XSAgICAgICAgICAgICAgLy8gdzIxID0gWjFbMV0KKyAgICAg ICAgYWRkICAgICAgICAgICAgIHgxNywgeDE3LCAgIzYKKyAgICAgICAgdWJmeCAgICAgICAgICAg IHc5LCAgdzEwLCAjNCwgICMxMiAgICAgICAgICAvLyBYMFsxXSA+PiA0CisgICAgICAgIHViZngg ICAgICAgICAgICB3MTAsIHcxMCwgIzIwLCAjMTIgICAgICAgICAgLy8gWTBbMV0gPj4gNAorICAg ICAgICBsc3IgICAgICAgICAgICAgdzExLCB3MTEsICM0ICAgICAgICAgICAgICAgIC8vIFowWzFd ID4+IDQKKyAgICAgICAgbGRyICAgICAgICAgICAgIGgxNiwgW3g3LCB4OSwgIGxzbCAjMV0gICAg ICAvLyBnYW1tYS5pbltYMFsxXSA+PiA0XQorICAgICAgICBsZHIgICAgICAgICAgICAgaDE3LCBb eDcsIHgxMCwgbHNsICMxXSAgICAgIC8vIGdhbW1hLmluW1kwWzFdID4+IDRdCisgICAgICAgIGxk ciAgICAgICAgICAgICBoMTgsIFt4NywgeDExLCBsc2wgIzFdICAgICAgLy8gZ2FtbWEuaW5bWjBb MV0gPj4gNF0KKyAgICAgICAgdWJmeCAgICAgICAgICAgIHcxOSwgdzIwLCAjNCwgICMxMiAgICAg ICAgICAvLyBYMVsxXSA+PiA0CisgICAgICAgIHViZnggICAgICAgICAgICB3MjAsIHcyMCwgIzIw LCAjMTIgICAgICAgICAgLy8gWTFbMV0gPj4gNAorICAgICAgICBsc3IgICAgICAgICAgICAgdzIx LCB3MjEsICM0ICAgICAgICAgICAgICAgIC8vIFoxWzFdID4+IDQKKyAgICAgICAgbGRyICAgICAg ICAgICAgIGgyMywgW3g3LCB4MTksIGxzbCAjMV0gICAgICAvLyBnYW1tYS5pbltYMVsxXSA+PiA0 XQorICAgICAgICBsZHIgICAgICAgICAgICAgaDI0LCBbeDcsIHgyMCwgbHNsICMxXSAgICAgIC8v IGdhbW1hLmluW1kxWzFdID4+IDRdCisgICAgICAgIGxkciAgICAgICAgICAgICBoMjUsIFt4Nywg eDIxLCBsc2wgIzFdICAgICAgLy8gZ2FtbWEuaW5bWjFbMV0gPj4gNF0KKyAgICAgICAgbW92ICAg ICAgICAgICAgIHYwLmhbMV0sICB2MTYuaFswXSAgICAgICAgICAvLyB2MC40aCA9IGdhbW1hLmlu W1gwWzAuLjFdID4+IDRdCisgICAgICAgIG1vdiAgICAgICAgICAgICB2MS5oWzFdLCAgdjE3Lmhb MF0gICAgICAgICAgLy8gdjEuNGggPSBnYW1tYS5pbltZMFswLi4xXSA+PiA0XQorICAgICAgICBt b3YgICAgICAgICAgICAgdjIuaFsxXSwgIHYxOC5oWzBdICAgICAgICAgIC8vIHYyLjRoID0gZ2Ft bWEuaW5bWjBbMC4uMV0gPj4gNF0KKyAgICAgICAgbW92ICAgICAgICAgICAgIHYyMC5oWzFdLCB2 MjMuaFswXSAgICAgICAgICAvLyB2MjAuNGggPSBnYW1tYS5pbltYMVswLi4xXSA+PiA0XQorICAg ICAgICBtb3YgICAgICAgICAgICAgdjIxLmhbMV0sIHYyNC5oWzBdICAgICAgICAgIC8vIHYyMS40 aCA9IGdhbW1hLmluW1kxWzAuLjFdID4+IDRdCisgICAgICAgIG1vdiAgICAgICAgICAgICB2MjIu aFsxXSwgdjI1LmhbMF0gICAgICAgICAgLy8gdjIyLjRoID0gZ2FtbWEuaW5bWjFbMC4uMV0gPj4g NF0KKworICAgICAgICBiLmxlICAgICAgICAgICAgNGYgICAgICAgICAgICAgICAgICAgICAgICAg IC8vICh3ICYgMykgPT0gMgorCisgICAgICAgIGxkciAgICAgICAgICAgICB3MTAsIFt4M10gICAg ICAgICAgICAgICAgICAgLy8gdzEwID0gWDBbMl0gWTBbMl0KKyAgICAgICAgbGRyaCAgICAgICAg ICAgIHcxMSwgW3gzLCAjNF0gICAgICAgICAgICAgICAvLyB3MTEgPSBaMFsyXQorICAgICAgICBh ZGQgICAgICAgICAgICAgeDMsICB4MywgICM2CisgICAgICAgIGxkciAgICAgICAgICAgICB3MjAs IFt4MTddICAgICAgICAgICAgICAgICAgLy8gdzIwID0gWDFbMl0gWTFbMl0KKyAgICAgICAgbGRy aCAgICAgICAgICAgIHcyMSwgW3gxNywgIzRdICAgICAgICAgICAgICAvLyB3MjEgPSBaMVsyXQor ICAgICAgICBhZGQgICAgICAgICAgICAgeDE3LCB4MTcsICM2CisgICAgICAgIHViZnggICAgICAg ICAgICB3OSwgIHcxMCwgIzQsICAjMTIgICAgICAgICAgLy8gWDBbMl0gPj4gNAorICAgICAgICB1 YmZ4ICAgICAgICAgICAgdzEwLCB3MTAsICMyMCwgIzEyICAgICAgICAgIC8vIFkwWzJdID4+IDQK KyAgICAgICAgbHNyICAgICAgICAgICAgIHcxMSwgdzExLCAjNCAgICAgICAgICAgICAgICAvLyBa MFsyXSA+PiA0CisgICAgICAgIGxkciAgICAgICAgICAgICBoMTYsIFt4NywgeDksICBsc2wgIzFd ICAgICAgLy8gZ2FtbWEuaW5bWDBbMl0gPj4gNF0KKyAgICAgICAgbGRyICAgICAgICAgICAgIGgx NywgW3g3LCB4MTAsIGxzbCAjMV0gICAgICAvLyBnYW1tYS5pbltZMFsyXSA+PiA0XQorICAgICAg ICBsZHIgICAgICAgICAgICAgaDE4LCBbeDcsIHgxMSwgbHNsICMxXSAgICAgIC8vIGdhbW1hLmlu W1owWzJdID4+IDRdCisgICAgICAgIHViZnggICAgICAgICAgICB3MTksIHcyMCwgIzQsICAjMTIg ICAgICAgICAgLy8gWDFbMl0gPj4gNAorICAgICAgICB1YmZ4ICAgICAgICAgICAgdzIwLCB3MjAs ICMyMCwgIzEyICAgICAgICAgIC8vIFkxWzJdID4+IDQKKyAgICAgICAgbHNyICAgICAgICAgICAg IHcyMSwgdzIxLCAjNCAgICAgICAgICAgICAgICAvLyBaMVsyXSA+PiA0CisgICAgICAgIGxkciAg ICAgICAgICAgICBoMjMsIFt4NywgeDE5LCBsc2wgIzFdICAgICAgLy8gZ2FtbWEuaW5bWDFbMl0g Pj4gNF0KKyAgICAgICAgbGRyICAgICAgICAgICAgIGgyNCwgW3g3LCB4MjAsIGxzbCAjMV0gICAg ICAvLyBnYW1tYS5pbltZMVsyXSA+PiA0XQorICAgICAgICBsZHIgICAgICAgICAgICAgaDI1LCBb eDcsIHgyMSwgbHNsICMxXSAgICAgIC8vIGdhbW1hLmluW1oxWzJdID4+IDRdCisgICAgICAgIG1v diAgICAgICAgICAgICB2MC5oWzJdLCAgdjE2LmhbMF0gICAgICAgICAgLy8gdjAuNGggPSBnYW1t YS5pbltYMFswLi4yXSA+PiA0XQorICAgICAgICBtb3YgICAgICAgICAgICAgdjEuaFsyXSwgIHYx Ny5oWzBdICAgICAgICAgIC8vIHYxLjRoID0gZ2FtbWEuaW5bWTBbMC4uMl0gPj4gNF0KKyAgICAg ICAgbW92ICAgICAgICAgICAgIHYyLmhbMl0sICB2MTguaFswXSAgICAgICAgICAvLyB2Mi40aCA9 IGdhbW1hLmluW1owWzAuLjJdID4+IDRdCisgICAgICAgIG1vdiAgICAgICAgICAgICB2MjAuaFsy XSwgdjIzLmhbMF0gICAgICAgICAgLy8gdjIwLjRoID0gZ2FtbWEuaW5bWDFbMC4uMl0gPj4gNF0K KyAgICAgICAgbW92ICAgICAgICAgICAgIHYyMS5oWzJdLCB2MjQuaFswXSAgICAgICAgICAvLyB2 MjEuNGggPSBnYW1tYS5pbltZMVswLi4yXSA+PiA0XQorICAgICAgICBtb3YgICAgICAgICAgICAg djIyLmhbMl0sIHYyNS5oWzBdICAgICAgICAgIC8vIHYyMi40aCA9IGdhbW1hLmluW1oxWzAuLjJd ID4+IDRdCisKKyAgICAgICAgLmFsaWduIEpVTVBfQUxJR04KKzQ6CisgICAgICAgIHVtdWxsICAg ICAgICAgICB2My40cywgIHYwLjRoLCAgdjYuaFswXSAgICAgLy8gUjBbMC4uMl0gPSBnYW1tYS5p bltYMFswLi4yXSA+PiA0XSAqIG1hdFswXVswXQorICAgICAgICB1bXVsbCAgICAgICAgICAgdjUu NHMsICB2MC40aCwgIHY2LmhbNl0gICAgIC8vIEIwWzAuLjJdID0gZ2FtbWEuaW5bWDBbMC4uMl0g Pj4gNF0gKiBtYXRbMl1bMF0KKworICAgICAgICB1bXVsbCAgICAgICAgICAgdjIzLjRzLCB2MjAu NGgsIHY2LmhbMF0gICAgIC8vIFIxWzAuLjJdID0gZ2FtbWEuaW5bWDFbMC4uMl0gPj4gNF0gKiBt YXRbMF1bMF0KKyAgICAgICAgdW11bGwgICAgICAgICAgIHYyNS40cywgdjIwLjRoLCB2Ni5oWzZd ICAgICAvLyBCMVswLi4yXSA9IGdhbW1hLmluW1gxWzAuLjJdID4+IDRdICogbWF0WzJdWzBdCisK KyAgICAgICAgdW11bGwgICAgICAgICAgIHY0LjRzLCAgdjEuNGgsICB2Ni5oWzRdICAgICAvLyBH MFswLi4yXSAgPSBnYW1tYS5pbltZMFswLi4yXSA+PiA0XSAqIG1hdFsxXVsxXQorICAgICAgICB1 bWxzbCAgICAgICAgICAgdjMuNHMsICB2MS40aCwgIHY2LmhbMV0gICAgIC8vIFIwWzAuLjJdIC09 IGdhbW1hLmluW1kwWzAuLjJdID4+IDRdICogbWF0WzBdWzFdCisgICAgICAgIHVtbHNsICAgICAg ICAgICB2NC40cywgIHYwLjRoLCAgdjYuaFszXSAgICAgLy8gRzBbMC4uMl0gLT0gZ2FtbWEuaW5b WDBbMC4uMl0gPj4gNF0gKiBtYXRbMV1bMF0KKyAgICAgICAgdW1sc2wgICAgICAgICAgIHY1LjRz LCAgdjEuNGgsICB2Ni5oWzddICAgICAvLyBCMFswLi4yXSAtPSBnYW1tYS5pbltZMFswLi4yXSA+ PiA0XSAqIG1hdFsyXVsxXQorCisgICAgICAgIHVtdWxsICAgICAgICAgICB2MjQuNHMsIHYyMS40 aCwgdjYuaFs0XSAgICAgLy8gRzFbMC4uMl0gID0gZ2FtbWEuaW5bWTFbMC4uMl0gPj4gNF0gKiBt YXRbMV1bMV0KKyAgICAgICAgdW1sc2wgICAgICAgICAgIHYyMy40cywgdjIxLjRoLCB2Ni5oWzFd ICAgICAvLyBSMVswLi4yXSAtPSBnYW1tYS5pbltZMVswLi4yXSA+PiA0XSAqIG1hdFswXVsxXQor ICAgICAgICB1bWxzbCAgICAgICAgICAgdjI0LjRzLCB2MjAuNGgsIHY2LmhbM10gICAgIC8vIEcx WzAuLjJdIC09IGdhbW1hLmluW1gxWzAuLjJdID4+IDRdICogbWF0WzFdWzBdCisgICAgICAgIHVt bHNsICAgICAgICAgICB2MjUuNHMsIHYyMS40aCwgdjYuaFs3XSAgICAgLy8gQjFbMC4uMl0gLT0g Z2FtbWEuaW5bWTFbMC4uMl0gPj4gNF0gKiBtYXRbMl1bMV0KKworICAgICAgICB1bWxzbCAgICAg ICAgICAgdjMuNHMsICB2Mi40aCwgIHY2LmhbMl0gICAgIC8vIFIwWzAuLjJdIC09IGdhbW1hLmlu W1owWzAuLjJdID4+IDRdICogbWF0WzBdWzJdCisgICAgICAgIHNxc2hydW4gICAgICAgICB2My40 aCwgIHYzLjRzLCAgIzEyICAgICAgICAgLy8gY2xpcChSMFswLi4yXSA+PiAxMikKKyAgICAgICAg dW1sYWwgICAgICAgICAgIHY0LjRzLCAgdjIuNGgsICB2Ni5oWzVdICAgICAvLyBHMFswLi4yXSAr PSBnYW1tYS5pbltaMFswLi4yXSA+PiA0XSAqIG1hdFsxXVsyXQorICAgICAgICBzcXNocnVuICAg ICAgICAgdjQuNGgsICB2NC40cywgICMxMiAgICAgICAgIC8vIGNsaXAoRzBbMC4uMl0gPj4gMTIp CisgICAgICAgIHVtbGFsICAgICAgICAgICB2NS40cywgIHYyLjRoLCAgdjcuaFswXSAgICAgLy8g QjBbMC4uMl0gKz0gZ2FtbWEuaW5bWjBbMC4uMl0gPj4gNF0gKiBtYXRbMl1bMl0KKyAgICAgICAg c3FzaHJ1biAgICAgICAgIHY1LjRoLCAgdjUuNHMsICAjMTIgICAgICAgICAvLyBjbGlwKEIwWzAu LjJdID4+IDEyKQorCisgICAgICAgIHVtbHNsICAgICAgICAgICB2MjMuNHMsIHYyMi40aCwgdjYu aFsyXSAgICAgLy8gUjFbMC4uMl0gLT0gZ2FtbWEuaW5bWjFbMC4uMl0gPj4gNF0gKiBtYXRbMF1b Ml0KKyAgICAgICAgc3FzaHJ1biAgICAgICAgIHYyMy40aCwgdjIzLjRzLCAjMTIgICAgICAgICAv LyBjbGlwKFIxWzAuLjJdID4+IDEyKQorICAgICAgICB1bWxhbCAgICAgICAgICAgdjI0LjRzLCB2 MjIuNGgsIHY2LmhbNV0gICAgIC8vIEcxWzAuLjJdICs9IGdhbW1hLmluW1oxWzAuLjJdID4+IDRd ICogbWF0WzFdWzJdCisgICAgICAgIHNxc2hydW4gICAgICAgICB2MjQuNGgsIHYyNC40cywgIzEy ICAgICAgICAgLy8gY2xpcChHMVswLi4yXSA+PiAxMikKKyAgICAgICAgdW1sYWwgICAgICAgICAg IHYyNS40cywgdjIyLjRoLCB2Ny5oWzBdICAgICAvLyBCMVswLi4yXSArPSBnYW1tYS5pbltaMVsw Li4yXSA+PiA0XSAqIG1hdFsyXVsyXQorICAgICAgICBzcXNocnVuICAgICAgICAgdjI1LjRoLCB2 MjUuNHMsICMxMiAgICAgICAgIC8vIGNsaXAoQjFbMC4uMl0gPj4gMTIpCisKKyAgICAgICAgdW1v diAgICAgICAgICAgIHc5LCAgdjMuaFswXSAgICAgICAgICAgICAgICAvLyBjbGlwKFIwWzBdID4+ IDEyKQorICAgICAgICB1bW92ICAgICAgICAgICAgdzEwLCB2NC5oWzBdICAgICAgICAgICAgICAg IC8vIGNsaXAoRzBbMF0gPj4gMTIpCisgICAgICAgIHVtb3YgICAgICAgICAgICB3MTEsIHY1Lmhb MF0gICAgICAgICAgICAgICAgLy8gY2xpcChCMFswXSA+PiAxMikKKyAgICAgICAgbGRyaCAgICAg ICAgICAgIHc5LCAgW3g4LCB4OSwgIGxzbCAjMV0gICAgICAvLyBSMFswXSA9IGdhbW1hLm91dFtj bGlwKFIwWzBdID4+IDEyKV0KKyAgICAgICAgbGRyaCAgICAgICAgICAgIHcxMCwgW3g4LCB4MTAs IGxzbCAjMV0gICAgICAvLyBHMFswXSA9IGdhbW1hLm91dFtjbGlwKEcwWzBdID4+IDEyKV0KKyAg ICAgICAgbGRyaCAgICAgICAgICAgIHcxMSwgW3g4LCB4MTEsIGxzbCAjMV0gICAgICAvLyBCMFsw XSA9IGdhbW1hLm91dFtjbGlwKEIwWzBdID4+IDEyKV0KKyAgICAgICAgdW1vdiAgICAgICAgICAg IHcxOSwgdjIzLmhbMF0gICAgICAgICAgICAgICAvLyBjbGlwKFIxWzBdID4+IDEyKQorICAgICAg ICB1bW92ICAgICAgICAgICAgdzIwLCB2MjQuaFswXSAgICAgICAgICAgICAgIC8vIGNsaXAoRzFb MF0gPj4gMTIpCisgICAgICAgIHVtb3YgICAgICAgICAgICB3MjEsIHYyNS5oWzBdICAgICAgICAg ICAgICAgLy8gY2xpcChCMVswXSA+PiAxMikKKyAgICAgICAgbGRyaCAgICAgICAgICAgIHcxOSwg W3g4LCB4MTksIGxzbCAjMV0gICAgICAvLyBSMVswXSA9IGdhbW1hLm91dFtjbGlwKFIxWzBdID4+ IDEyKV0KKyAgICAgICAgbGRyaCAgICAgICAgICAgIHcyMCwgW3g4LCB4MjAsIGxzbCAjMV0gICAg ICAvLyBHMVswXSA9IGdhbW1hLm91dFtjbGlwKEcxWzBdID4+IDEyKV0KKyAgICAgICAgbGRyaCAg ICAgICAgICAgIHcyMSwgW3g4LCB4MjEsIGxzbCAjMV0gICAgICAvLyBCMVswXSA9IGdhbW1hLm91 dFtjbGlwKEIxWzBdID4+IDEyKV0KKyAgICAgICAgbHNsICAgICAgICAgICAgIHc5LCAgdzksICAj NCAgICAgICAgICAgICAgICAvLyB3OSAgPSBSMFswXSA8PCA0CisgICAgICAgIGxzbCAgICAgICAg ICAgICB3MTAsIHcxMCwgIzQgICAgICAgICAgICAgICAgLy8gdzEwID0gRzBbMF0gPDwgNAorICAg ICAgICBsc2wgICAgICAgICAgICAgdzExLCB3MTEsICM0ICAgICAgICAgICAgICAgIC8vIHcxMSA9 IEIwWzBdIDw8IDQKKyAgICAgICAgc3RyaCAgICAgICAgICAgIHc5LCAgW3gxXQorICAgICAgICBz dHJoICAgICAgICAgICAgdzEwLCBbeDEsICMyXQorICAgICAgICBzdHJoICAgICAgICAgICAgdzEx LCBbeDEsICM0XQorICAgICAgICBsc2wgICAgICAgICAgICAgdzE5LCB3MTksICM0ICAgICAgICAg ICAgICAgIC8vIHcxOSA9IFIxWzBdIDw8IDQKKyAgICAgICAgbHNsICAgICAgICAgICAgIHcyMCwg dzIwLCAjNCAgICAgICAgICAgICAgICAvLyB3MjAgPSBHMVswXSA8PCA0CisgICAgICAgIGxzbCAg ICAgICAgICAgICB3MjEsIHcyMSwgIzQgICAgICAgICAgICAgICAgLy8gdzIxID0gQjFbMF0gPDwg NAorICAgICAgICBzdHJoICAgICAgICAgICAgdzE5LCBbeDE2XQorICAgICAgICBzdHJoICAgICAg ICAgICAgdzIwLCBbeDE2LCAjMl0KKyAgICAgICAgc3RyaCAgICAgICAgICAgIHcyMSwgW3gxNiwg IzRdCisgICAgICAgIGFkZCAgICAgICAgICAgICB4MSwgIHgxLCAgIzYKKyAgICAgICAgYWRkICAg ICAgICAgICAgIHgxNiwgeDE2LCAjNgorCisgICAgICAgIGNtcCAgICAgICAgICAgICB3MCwgICMt MgorICAgICAgICBiLmx0ICAgICAgICAgICAgNWYgICAgICAgICAgICAgICAgICAgICAgICAgIC8v ICh3ICYgMykgPT0gMQorCisgICAgICAgIHVtb3YgICAgICAgICAgICB3OSwgIHYzLmhbMV0gICAg ICAgICAgICAgICAgLy8gY2xpcChSMFsxXSA+PiAxMikKKyAgICAgICAgdW1vdiAgICAgICAgICAg IHcxMCwgdjQuaFsxXSAgICAgICAgICAgICAgICAvLyBjbGlwKEcwWzFdID4+IDEyKQorICAgICAg ICB1bW92ICAgICAgICAgICAgdzExLCB2NS5oWzFdICAgICAgICAgICAgICAgIC8vIGNsaXAoQjBb MV0gPj4gMTIpCisgICAgICAgIGxkcmggICAgICAgICAgICB3OSwgIFt4OCwgeDksICBsc2wgIzFd ICAgICAgLy8gUjBbMV0gPSBnYW1tYS5vdXRbY2xpcChSMFsxXSA+PiAxMildCisgICAgICAgIGxk cmggICAgICAgICAgICB3MTAsIFt4OCwgeDEwLCBsc2wgIzFdICAgICAgLy8gRzBbMV0gPSBnYW1t YS5vdXRbY2xpcChHMFsxXSA+PiAxMildCisgICAgICAgIGxkcmggICAgICAgICAgICB3MTEsIFt4 OCwgeDExLCBsc2wgIzFdICAgICAgLy8gQjBbMV0gPSBnYW1tYS5vdXRbY2xpcChCMFsxXSA+PiAx MildCisgICAgICAgIHVtb3YgICAgICAgICAgICB3MTksIHYyMy5oWzFdICAgICAgICAgICAgICAg Ly8gY2xpcChSMVsxXSA+PiAxMikKKyAgICAgICAgdW1vdiAgICAgICAgICAgIHcyMCwgdjI0Lmhb MV0gICAgICAgICAgICAgICAvLyBjbGlwKEcxWzFdID4+IDEyKQorICAgICAgICB1bW92ICAgICAg ICAgICAgdzIxLCB2MjUuaFsxXSAgICAgICAgICAgICAgIC8vIGNsaXAoQjFbMV0gPj4gMTIpCisg ICAgICAgIGxkcmggICAgICAgICAgICB3MTksIFt4OCwgeDE5LCBsc2wgIzFdICAgICAgLy8gUjFb MV0gPSBnYW1tYS5vdXRbY2xpcChSMVsxXSA+PiAxMildCisgICAgICAgIGxkcmggICAgICAgICAg ICB3MjAsIFt4OCwgeDIwLCBsc2wgIzFdICAgICAgLy8gRzFbMV0gPSBnYW1tYS5vdXRbY2xpcChH MVsxXSA+PiAxMildCisgICAgICAgIGxkcmggICAgICAgICAgICB3MjEsIFt4OCwgeDIxLCBsc2wg IzFdICAgICAgLy8gQjFbMV0gPSBnYW1tYS5vdXRbY2xpcChCMVsxXSA+PiAxMildCisgICAgICAg IGxzbCAgICAgICAgICAgICB3OSwgIHc5LCAgIzQgICAgICAgICAgICAgICAgLy8gdzkgID0gUjBb MV0gPDwgNAorICAgICAgICBsc2wgICAgICAgICAgICAgdzEwLCB3MTAsICM0ICAgICAgICAgICAg ICAgIC8vIHcxMCA9IEcwWzFdIDw8IDQKKyAgICAgICAgbHNsICAgICAgICAgICAgIHcxMSwgdzEx LCAjNCAgICAgICAgICAgICAgICAvLyB3MTEgPSBCMFsxXSA8PCA0CisgICAgICAgIHN0cmggICAg ICAgICAgICB3OSwgIFt4MV0KKyAgICAgICAgc3RyaCAgICAgICAgICAgIHcxMCwgW3gxLCAjMl0K KyAgICAgICAgc3RyaCAgICAgICAgICAgIHcxMSwgW3gxLCAjNF0KKyAgICAgICAgbHNsICAgICAg ICAgICAgIHcxOSwgdzE5LCAjNCAgICAgICAgICAgICAgICAvLyB3MTkgPSBSMVsxXSA8PCA0Cisg ICAgICAgIGxzbCAgICAgICAgICAgICB3MjAsIHcyMCwgIzQgICAgICAgICAgICAgICAgLy8gdzIw ID0gRzFbMV0gPDwgNAorICAgICAgICBsc2wgICAgICAgICAgICAgdzIxLCB3MjEsICM0ICAgICAg ICAgICAgICAgIC8vIHcyMSA9IEIxWzFdIDw8IDQKKyAgICAgICAgc3RyaCAgICAgICAgICAgIHcx OSwgW3gxNl0KKyAgICAgICAgc3RyaCAgICAgICAgICAgIHcyMCwgW3gxNiwgIzJdCisgICAgICAg IHN0cmggICAgICAgICAgICB3MjEsIFt4MTYsICM0XQorICAgICAgICBhZGQgICAgICAgICAgICAg eDEsICB4MSwgICM2CisgICAgICAgIGFkZCAgICAgICAgICAgICB4MTYsIHgxNiwgIzYKKworICAg ICAgICBiLmxlICAgICAgICAgICAgNWYgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICh3ICYg MykgPT0gMgorCisgICAgICAgIHVtb3YgICAgICAgICAgICB3OSwgIHYzLmhbMl0gICAgICAgICAg ICAgICAgLy8gY2xpcChSMFsyXSA+PiAxMikKKyAgICAgICAgdW1vdiAgICAgICAgICAgIHcxMCwg djQuaFsyXSAgICAgICAgICAgICAgICAvLyBjbGlwKEcwWzJdID4+IDEyKQorICAgICAgICB1bW92 ICAgICAgICAgICAgdzExLCB2NS5oWzJdICAgICAgICAgICAgICAgIC8vIGNsaXAoQjBbMl0gPj4g MTIpCisgICAgICAgIGxkcmggICAgICAgICAgICB3OSwgIFt4OCwgeDksICBsc2wgIzFdICAgICAg Ly8gUjBbMl0gPSBnYW1tYS5vdXRbY2xpcChSMFsyXSA+PiAxMildCisgICAgICAgIGxkcmggICAg ICAgICAgICB3MTAsIFt4OCwgeDEwLCBsc2wgIzFdICAgICAgLy8gRzBbMl0gPSBnYW1tYS5vdXRb Y2xpcChHMFsyXSA+PiAxMildCisgICAgICAgIGxkcmggICAgICAgICAgICB3MTEsIFt4OCwgeDEx LCBsc2wgIzFdICAgICAgLy8gQjBbMl0gPSBnYW1tYS5vdXRbY2xpcChCMFsyXSA+PiAxMildCisg ICAgICAgIHVtb3YgICAgICAgICAgICB3MTksIHYyMy5oWzJdICAgICAgICAgICAgICAgLy8gY2xp cChSMVsyXSA+PiAxMikKKyAgICAgICAgdW1vdiAgICAgICAgICAgIHcyMCwgdjI0LmhbMl0gICAg ICAgICAgICAgICAvLyBjbGlwKEcxWzJdID4+IDEyKQorICAgICAgICB1bW92ICAgICAgICAgICAg dzIxLCB2MjUuaFsyXSAgICAgICAgICAgICAgIC8vIGNsaXAoQjFbMl0gPj4gMTIpCisgICAgICAg IGxkcmggICAgICAgICAgICB3MTksIFt4OCwgeDE5LCBsc2wgIzFdICAgICAgLy8gUjFbMl0gPSBn YW1tYS5vdXRbY2xpcChSMVsyXSA+PiAxMildCisgICAgICAgIGxkcmggICAgICAgICAgICB3MjAs IFt4OCwgeDIwLCBsc2wgIzFdICAgICAgLy8gRzFbMl0gPSBnYW1tYS5vdXRbY2xpcChHMVsyXSA+ PiAxMildCisgICAgICAgIGxkcmggICAgICAgICAgICB3MjEsIFt4OCwgeDIxLCBsc2wgIzFdICAg ICAgLy8gQjFbMl0gPSBnYW1tYS5vdXRbY2xpcChCMVsyXSA+PiAxMildCisgICAgICAgIGxzbCAg ICAgICAgICAgICB3OSwgIHc5LCAgIzQgICAgICAgICAgICAgICAgLy8gdzkgID0gUjBbMl0gPDwg NAorICAgICAgICBsc2wgICAgICAgICAgICAgdzEwLCB3MTAsICM0ICAgICAgICAgICAgICAgIC8v IHcxMCA9IEcwWzJdIDw8IDQKKyAgICAgICAgbHNsICAgICAgICAgICAgIHcxMSwgdzExLCAjNCAg ICAgICAgICAgICAgICAvLyB3MTEgPSBCMFsyXSA8PCA0CisgICAgICAgIHN0cmggICAgICAgICAg ICB3OSwgIFt4MV0KKyAgICAgICAgc3RyaCAgICAgICAgICAgIHcxMCwgW3gxLCAjMl0KKyAgICAg ICAgc3RyaCAgICAgICAgICAgIHcxMSwgW3gxLCAjNF0KKyAgICAgICAgbHNsICAgICAgICAgICAg IHcxOSwgdzE5LCAjNCAgICAgICAgICAgICAgICAvLyB3MTkgPSBSMVsyXSA8PCA0CisgICAgICAg IGxzbCAgICAgICAgICAgICB3MjAsIHcyMCwgIzQgICAgICAgICAgICAgICAgLy8gdzIwID0gRzFb Ml0gPDwgNAorICAgICAgICBsc2wgICAgICAgICAgICAgdzIxLCB3MjEsICM0ICAgICAgICAgICAg ICAgIC8vIHcyMSA9IEIxWzJdIDw8IDQKKyAgICAgICAgc3RyaCAgICAgICAgICAgIHcxOSwgW3gx Nl0KKyAgICAgICAgc3RyaCAgICAgICAgICAgIHcyMCwgW3gxNiwgIzJdCisgICAgICAgIHN0cmgg ICAgICAgICAgICB3MjEsIFt4MTYsICM0XQorICAgICAgICBhZGQgICAgICAgICAgICAgeDEsICB4 MSwgICM2CisgICAgICAgIGFkZCAgICAgICAgICAgICB4MTYsIHgxNiwgIzYKKworICAgICAgICAu YWxpZ24gSlVNUF9BTElHTgorNToKKyAgICAgICAgYWRkICAgICAgICAgICAgIHgzLCAgeDMsICB4 NAorICAgICAgICBhZGQgICAgICAgICAgICAgeDE3LCB4MTcsIHg0CisgICAgICAgIGFkZCAgICAg ICAgICAgICB4MSwgIHgxLCAgeDIKKyAgICAgICAgYWRkICAgICAgICAgICAgIHgxNiwgeDE2LCB4 MgorCisgICAgICAgIHN1YnMgICAgICAgICAgICB3NiwgIHc2LCAgIzIKKyAgICAgICAgYi5nZSAg ICAgICAgICAgIDFiCisKKyAgICAgICAgbGRwICAgICAgICAgICAgIHgyMSwgeDIyLCBbc3AsICMx Nl0KKyAgICAgICAgbGRwICAgICAgICAgICAgIHgyMywgeDI0LCBbc3AsICMzMl0KKyAgICAgICAg bGRyICAgICAgICAgICAgIHgyNSwgW3NwLCAjNDhdCisgICAgICAgIGxkcCAgICAgICAgICAgICB4 MTksIHgyMCwgW3NwXSwgIzY0CisKKyAgICAgICAgLmFsaWduIEpVTVBfQUxJR04KKzY6CisgICAg ICAgIHRieiAgICAgICAgICAgICB3NiwgICMwLCAgMTBmICAgICAgICAgICAgICAgLy8gZXZlbiBu dW1iZXIgb2YgbGluZXM7IChoICYgMSkgPT0gMAorCisgICAgICAgIHN1YnMgICAgICAgICAgICB3 MCwgIHc1LCAgIzQKKyAgICAgICAgYi5sdCAgICAgICAgICAgIDhmICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyB3IDwgNAorCisgICAgICAgIC5hbGlnbiBMT09QX0FMSUdOCis3OiAgICAgIC8v IGxvb3AgZm9yIGxhc3Qgb2RkIGxpbmUgYnkgNCBwaXhlbHM6IFhZWlswLi4zXQorICAgICAgICBs ZHAgICAgICAgICAgICAgeDksICB4MTAsIFt4M10gICAgICAgICAgICAgIC8vIHg5ICA9IFhbMF0g WVswXSBaWzBdIFhbMV0sIHgxMCA9IFlbMV0gWlsxXSBYWzJdIFlbMl0KKyAgICAgICAgbGRyICAg ICAgICAgICAgIHgxMSwgW3gzLCAjMTZdICAgICAgICAgICAgICAvLyB4MTEgPSBaWzJdIFhbM10g WVszXSBaWzNdCisgICAgICAgIGFkZCAgICAgICAgICAgICB4MywgIHgzLCAgIzI0CisKKyAgICAg ICAgdWJmeCAgICAgICAgICAgIHgxMiwgeDksICAjNCwgICMxMiAgICAgICAgICAvLyBYWzBdID4+ IDQKKyAgICAgICAgbHNyICAgICAgICAgICAgIHgxMywgeDksICAjNTIgICAgICAgICAgICAgICAv LyBYWzFdID4+IDQKKyAgICAgICAgdWJmeCAgICAgICAgICAgIHgxNCwgeDEwLCAjMzYsICMxMiAg ICAgICAgICAvLyBYWzJdID4+IDQKKyAgICAgICAgdWJmeCAgICAgICAgICAgIHgxNSwgeDExLCAj MjAsICMxMiAgICAgICAgICAvLyBYWzNdID4+IDQKKworICAgICAgICBsZHIgICAgICAgICAgICAg aDAsICBbeDcsIHgxMiwgbHNsICMxXSAgICAgIC8vIGdhbW1hLmluW1hbMF0gPj4gNF0KKyAgICAg ICAgdWJmeCAgICAgICAgICAgIHgxMiwgeDksICAjMjAsICMxMiAgICAgICAgICAvLyBZWzBdID4+ IDQKKyAgICAgICAgbGRyICAgICAgICAgICAgIGgxNiwgW3g3LCB4MTMsIGxzbCAjMV0gICAgICAv LyBnYW1tYS5pbltYWzFdID4+IDRdCisgICAgICAgIHViZnggICAgICAgICAgICB4MTMsIHgxMCwg IzQsICAjMTIgICAgICAgICAgLy8gWVsxXSA+PiA0CisgICAgICAgIGxkciAgICAgICAgICAgICBo MTcsIFt4NywgeDE0LCBsc2wgIzFdICAgICAgLy8gZ2FtbWEuaW5bWFsyXSA+PiA0XQorICAgICAg ICBsc3IgICAgICAgICAgICAgeDE0LCB4MTAsICM1MiAgICAgICAgICAgICAgIC8vIFlbMl0gPj4g NAorICAgICAgICBsZHIgICAgICAgICAgICAgaDE4LCBbeDcsIHgxNSwgbHNsICMxXSAgICAgIC8v IGdhbW1hLmluW1hbM10gPj4gNF0KKyAgICAgICAgdWJmeCAgICAgICAgICAgIHgxNSwgeDExLCAj MzYsICMxMiAgICAgICAgICAvLyBZWzNdID4+IDQKKyAgICAgICAgbW92ICAgICAgICAgICAgIHYw LmhbMV0sICB2MTYuaFswXSAgICAgICAgICAvLyB2MC40aCAgPSBnYW1tYS5pbltYWzAuLjFdID4+ IDRdCisgICAgICAgIG1vdiAgICAgICAgICAgICB2MTcuaFsxXSwgdjE4LmhbMF0gICAgICAgICAg Ly8gdjE3LjRoID0gZ2FtbWEuaW5bWFsyLi4zXSA+PiA0XQorICAgICAgICBtb3YgICAgICAgICAg ICAgdjAuc1sxXSwgIHYxNy5zWzBdICAgICAgICAgIC8vIHYwLjRoICA9IGdhbW1hLmluW1hbMC4u M10gPj4gNF0KKworICAgICAgICB1bXVsbCAgICAgICAgICAgdjMuNHMsICB2MC40aCwgIHY2Lmhb MF0gICAgIC8vIFJbMC4uM10gPSBnYW1tYS5pbltYWzAuLjNdID4+IDRdICogbWF0WzBdWzBdCisg ICAgICAgIHVtdWxsICAgICAgICAgICB2NS40cywgIHYwLjRoLCAgdjYuaFs2XSAgICAgLy8gQlsw Li4zXSA9IGdhbW1hLmluW1hbMC4uM10gPj4gNF0gKiBtYXRbMl1bMF0KKworICAgICAgICBsZHIg ICAgICAgICAgICAgaDEsICBbeDcsIHgxMiwgbHNsICMxXSAgICAgIC8vIGdhbW1hLmluW1lbMF0g Pj4gNF0KKyAgICAgICAgdWJmeCAgICAgICAgICAgIHgxMiwgeDksICAjMzYsICMxMiAgICAgICAg ICAvLyBaWzBdID4+IDQKKyAgICAgICAgbGRyICAgICAgICAgICAgIGgxNiwgW3g3LCB4MTMsIGxz bCAjMV0gICAgICAvLyBnYW1tYS5pbltZWzFdID4+IDRdCisgICAgICAgIHViZnggICAgICAgICAg ICB4MTMsIHgxMCwgIzIwLCAjMTIgICAgICAgICAgLy8gWlsxXSA+PiA0CisgICAgICAgIGxkciAg ICAgICAgICAgICBoMTcsIFt4NywgeDE0LCBsc2wgIzFdICAgICAgLy8gZ2FtbWEuaW5bWVsyXSA+ PiA0XQorICAgICAgICB1YmZ4ICAgICAgICAgICAgeDE0LCB4MTEsICM0LCAgIzEyICAgICAgICAg IC8vIFpbMl0gPj4gNAorICAgICAgICBsZHIgICAgICAgICAgICAgaDE4LCBbeDcsIHgxNSwgbHNs ICMxXSAgICAgIC8vIGdhbW1hLmluW1lbM10gPj4gNF0KKyAgICAgICAgbHNyICAgICAgICAgICAg IHgxNSwgeDExLCAjNTIgICAgICAgICAgICAgICAvLyBaWzNdID4+IDQKKyAgICAgICAgbW92ICAg ICAgICAgICAgIHYxLmhbMV0sICB2MTYuaFswXSAgICAgICAgICAvLyB2MS40aCAgPSBnYW1tYS5p bltZWzAuLjFdID4+IDRdCisgICAgICAgIG1vdiAgICAgICAgICAgICB2MTcuaFsxXSwgdjE4Lmhb MF0gICAgICAgICAgLy8gdjE3LjRoID0gZ2FtbWEuaW5bWVsyLi4zXSA+PiA0XQorICAgICAgICBt b3YgICAgICAgICAgICAgdjEuc1sxXSwgIHYxNy5zWzBdICAgICAgICAgIC8vIHYxLjRoICA9IGdh bW1hLmluW1lbMC4uM10gPj4gNF0KKworICAgICAgICB1bXVsbCAgICAgICAgICAgdjQuNHMsICB2 MS40aCwgIHY2LmhbNF0gICAgIC8vIEdbMC4uM10gID0gZ2FtbWEuaW5bWVswLi4zXSA+PiA0XSAq IG1hdFsxXVsxXQorICAgICAgICB1bWxzbCAgICAgICAgICAgdjMuNHMsICB2MS40aCwgIHY2Lmhb MV0gICAgIC8vIFJbMC4uM10gLT0gZ2FtbWEuaW5bWVswLi4zXSA+PiA0XSAqIG1hdFswXVsxXQor ICAgICAgICB1bWxzbCAgICAgICAgICAgdjQuNHMsICB2MC40aCwgIHY2LmhbM10gICAgIC8vIEdb MC4uM10gLT0gZ2FtbWEuaW5bWFswLi4zXSA+PiA0XSAqIG1hdFsxXVswXQorICAgICAgICB1bWxz bCAgICAgICAgICAgdjUuNHMsICB2MS40aCwgIHY2LmhbN10gICAgIC8vIEJbMC4uM10gLT0gZ2Ft bWEuaW5bWVswLi4zXSA+PiA0XSAqIG1hdFsyXVsxXQorCisgICAgICAgIGxkciAgICAgICAgICAg ICBoMiwgIFt4NywgeDEyLCBsc2wgIzFdICAgICAgLy8gZ2FtbWEuaW5bWlswXSA+PiA0XQorICAg ICAgICBsZHIgICAgICAgICAgICAgaDE2LCBbeDcsIHgxMywgbHNsICMxXSAgICAgIC8vIGdhbW1h LmluW1pbMV0gPj4gNF0KKyAgICAgICAgbGRyICAgICAgICAgICAgIGgxNywgW3g3LCB4MTQsIGxz bCAjMV0gICAgICAvLyBnYW1tYS5pbltaWzJdID4+IDRdCisgICAgICAgIGxkciAgICAgICAgICAg ICBoMTgsIFt4NywgeDE1LCBsc2wgIzFdICAgICAgLy8gZ2FtbWEuaW5bWlszXSA+PiA0XQorICAg ICAgICBtb3YgICAgICAgICAgICAgdjIuaFsxXSwgIHYxNi5oWzBdICAgICAgICAgIC8vIHYyLjRo ICA9IGdhbW1hLmluW1pbMC4uMV0gPj4gNF0KKyAgICAgICAgbW92ICAgICAgICAgICAgIHYxNy5o WzFdLCB2MTguaFswXSAgICAgICAgICAvLyB2MTcuNGggPSBnYW1tYS5pbltaWzIuLjNdID4+IDRd CisgICAgICAgIG1vdiAgICAgICAgICAgICB2Mi5zWzFdLCAgdjE3LnNbMF0gICAgICAgICAgLy8g djIuNGggID0gZ2FtbWEuaW5bWlswLi4zXSA+PiA0XQorCisgICAgICAgIHVtbHNsICAgICAgICAg ICB2My40cywgIHYyLjRoLCAgdjYuaFsyXSAgICAgLy8gUlswLi4zXSAtPSBnYW1tYS5pbltaWzAu LjNdID4+IDRdICogbWF0WzBdWzJdCisgICAgICAgIHNxc2hydW4gICAgICAgICB2My40aCwgIHYz LjRzLCAgIzEyICAgICAgICAgLy8gY2xpcChSWzAuLjNdID4+IDEyKQorICAgICAgICB1bWxhbCAg ICAgICAgICAgdjQuNHMsICB2Mi40aCwgIHY2LmhbNV0gICAgIC8vIEdbMC4uM10gKz0gZ2FtbWEu aW5bWlswLi4zXSA+PiA0XSAqIG1hdFsxXVsyXQorICAgICAgICBzcXNocnVuICAgICAgICAgdjQu NGgsICB2NC40cywgICMxMiAgICAgICAgIC8vIGNsaXAoR1swLi4zXSA+PiAxMikKKyAgICAgICAg dW1sYWwgICAgICAgICAgIHY1LjRzLCAgdjIuNGgsICB2Ny5oWzBdICAgICAvLyBCWzAuLjNdICs9 IGdhbW1hLmluW1pbMC4uM10gPj4gNF0gKiBtYXRbMl1bMl0KKyAgICAgICAgc3FzaHJ1biAgICAg ICAgIHY1LjRoLCAgdjUuNHMsICAjMTIgICAgICAgICAvLyBjbGlwKEJbMC4uM10gPj4gMTIpCisK KyAgICAgICAgdW1vdiAgICAgICAgICAgIHc5LCAgdjMuaFswXSAgICAgICAgICAgICAgICAvLyBj bGlwKFJbMF0gPj4gMTIpCisgICAgICAgIHVtb3YgICAgICAgICAgICB3MTAsIHY0LmhbMV0gICAg ICAgICAgICAgICAgLy8gY2xpcChHWzFdID4+IDEyKQorICAgICAgICB1bW92ICAgICAgICAgICAg dzExLCB2NS5oWzJdICAgICAgICAgICAgICAgIC8vIGNsaXAoQlsyXSA+PiAxMikKKworICAgICAg ICB1bW92ICAgICAgICAgICAgdzEyLCB2NC5oWzBdICAgICAgICAgICAgICAgIC8vIGNsaXAoR1sw XSA+PiAxMikKKyAgICAgICAgbGRyaCAgICAgICAgICAgIHc5LCAgW3g4LCB4OSwgIGxzbCAjMV0g ICAgICAvLyBSWzBdID0gZ2FtbWEub3V0W2NsaXAoUlswXSA+PiAxMildCisgICAgICAgIGxzbCAg ICAgICAgICAgICB4OSwgIHg5LCAgIzQgICAgICAgICAgICAgICAgLy8gUlswXSA8PCA0CisgICAg ICAgIHVtb3YgICAgICAgICAgICB3MTMsIHY1LmhbMV0gICAgICAgICAgICAgICAgLy8gY2xpcChC WzFdID4+IDEyKQorICAgICAgICBsZHJoICAgICAgICAgICAgdzEwLCBbeDgsIHgxMCwgbHNsICMx XSAgICAgIC8vIEdbMV0gPSBnYW1tYS5vdXRbY2xpcChHWzFdID4+IDEyKV0KKyAgICAgICAgbHNs ICAgICAgICAgICAgIHgxMCwgeDEwLCAjNCAgICAgICAgICAgICAgICAvLyBHWzFdIDw8IDQKKyAg ICAgICAgdW1vdiAgICAgICAgICAgIHcxNCwgdjMuaFszXSAgICAgICAgICAgICAgICAvLyBjbGlw KFJbM10gPj4gMTIpCisgICAgICAgIGxkcmggICAgICAgICAgICB3MTEsIFt4OCwgeDExLCBsc2wg IzFdICAgICAgLy8gQlsyXSA9IGdhbW1hLm91dFtjbGlwKEJbMl0gPj4gMTIpXQorICAgICAgICBs c2wgICAgICAgICAgICAgeDExLCB4MTEsICM0ICAgICAgICAgICAgICAgIC8vIEJbMl0gPDwgNAor CisgICAgICAgIHVtb3YgICAgICAgICAgICB3MTUsIHY1LmhbMF0gICAgICAgICAgICAgICAgLy8g Y2xpcChCWzBdID4+IDEyKQorICAgICAgICBsZHJoICAgICAgICAgICAgdzEyLCBbeDgsIHgxMiwg bHNsICMxXSAgICAgIC8vIEdbMF0gPSBnYW1tYS5vdXRbY2xpcChHWzBdID4+IDEyKV0KKyAgICAg ICAgb3JyICAgICAgICAgICAgIHg5LCAgeDksICB4MTIsIGxzbCAjMjAgICAgICAvLyBSWzBdIDw8 IDQsIEdbMF0gPDwgNAorICAgICAgICB1bW92ICAgICAgICAgICAgdzEyLCB2My5oWzJdICAgICAg ICAgICAgICAgIC8vIGNsaXAoUlsyXSA+PiAxMikKKyAgICAgICAgbGRyaCAgICAgICAgICAgIHcx MywgW3g4LCB4MTMsIGxzbCAjMV0gICAgICAvLyBCWzFdID0gZ2FtbWEub3V0W2NsaXAoQlsxXSA+ PiAxMildCisgICAgICAgIG9yciAgICAgICAgICAgICB4MTAsIHgxMCwgeDEzLCBsc2wgIzIwICAg ICAgLy8gR1sxXSA8PCA0LCBCWzFdIDw8IDQKKyAgICAgICAgdW1vdiAgICAgICAgICAgIHcxMywg djQuaFszXSAgICAgICAgICAgICAgICAvLyBjbGlwKEdbM10gPj4gMTIpCisgICAgICAgIGxkcmgg ICAgICAgICAgICB3MTQsIFt4OCwgeDE0LCBsc2wgIzFdICAgICAgLy8gUlszXSA9IGdhbW1hLm91 dFtjbGlwKFJbM10gPj4gMTIpXQorICAgICAgICBvcnIgICAgICAgICAgICAgeDExLCB4MTEsIHgx NCwgbHNsICMyMCAgICAgIC8vIEJbMl0gPDwgNCwgUlszXSA8PCA0CisKKyAgICAgICAgdW1vdiAg ICAgICAgICAgIHcxNCwgdjMuaFsxXSAgICAgICAgICAgICAgICAvLyBjbGlwKFJbMV0gPj4gMTIp CisgICAgICAgIGxkcmggICAgICAgICAgICB3MTUsIFt4OCwgeDE1LCBsc2wgIzFdICAgICAgLy8g QlswXSA9IGdhbW1hLm91dFtjbGlwKEJbMF0gPj4gMTIpXQorICAgICAgICBvcnIgICAgICAgICAg ICAgeDksICB4OSwgIHgxNSwgbHNsICMzNiAgICAgIC8vIFJbMF0gPDwgNCwgR1swXSA8PCA0LCBC WzBdIDw8IDQKKyAgICAgICAgdW1vdiAgICAgICAgICAgIHcxNSwgdjQuaFsyXSAgICAgICAgICAg ICAgICAvLyBjbGlwKEdbMl0gPj4gMTIpCisgICAgICAgIGxkcmggICAgICAgICAgICB3MTIsIFt4 OCwgeDEyLCBsc2wgIzFdICAgICAgLy8gUlsyXSA9IGdhbW1hLm91dFtjbGlwKFJbMl0gPj4gMTIp XQorICAgICAgICBvcnIgICAgICAgICAgICAgeDEwLCB4MTAsIHgxMiwgbHNsICMzNiAgICAgIC8v IEdbMV0gPDwgNCwgQlsxXSA8PCA0LCBSWzJdIDw8IDQKKyAgICAgICAgdW1vdiAgICAgICAgICAg IHcxMiwgdjUuaFszXSAgICAgICAgICAgICAgICAvLyBjbGlwKEJbM10gPj4gMTIpCisgICAgICAg IGxkcmggICAgICAgICAgICB3MTMsIFt4OCwgeDEzLCBsc2wgIzFdICAgICAgLy8gR1szXSA9IGdh bW1hLm91dFtjbGlwKEdbM10gPj4gMTIpXQorICAgICAgICBvcnIgICAgICAgICAgICAgeDExLCB4 MTEsIHgxMywgbHNsICMzNiAgICAgIC8vIEJbMl0gPDwgNCwgUlszXSA8PCA0LCBHWzNdIDw8IDQK KworICAgICAgICBsZHJoICAgICAgICAgICAgdzE0LCBbeDgsIHgxNCwgbHNsICMxXSAgICAgIC8v IFJbMV0gPSBnYW1tYS5vdXRbY2xpcChSWzFdID4+IDEyKV0KKyAgICAgICAgb3JyICAgICAgICAg ICAgIHg5LCAgeDksICB4MTQsIGxzbCAjNTIgICAgICAvLyB4OSAgPSBSWzBdIDw8IDQsIEdbMF0g PDwgNCwgQlswXSA8PCA0LCBSWzFdIDw8IDQKKyAgICAgICAgbGRyaCAgICAgICAgICAgIHcxNSwg W3g4LCB4MTUsIGxzbCAjMV0gICAgICAvLyBHWzJdID0gZ2FtbWEub3V0W2NsaXAoR1syXSA+PiAx MildCisgICAgICAgIG9yciAgICAgICAgICAgICB4MTAsIHgxMCwgeDE1LCBsc2wgIzUyICAgICAg Ly8geDEwID0gR1sxXSA8PCA0LCBCWzFdIDw8IDQsIFJbMl0gPDwgNCwgR1syXSA8PCA0CisgICAg ICAgIGxkcmggICAgICAgICAgICB3MTIsIFt4OCwgeDEyLCBsc2wgIzFdICAgICAgLy8gQlszXSA9 IGdhbW1hLm91dFtjbGlwKEJbM10gPj4gMTIpXQorICAgICAgICBvcnIgICAgICAgICAgICAgeDEx LCB4MTEsIHgxMiwgbHNsICM1MiAgICAgIC8vIHgxMSA9IEJbMl0gPDwgNCwgUlszXSA8PCA0LCBH WzNdIDw8IDQsIEJbM10gPDwgNAorCisgICAgICAgIHN0cCAgICAgICAgICAgICB4OSwgIHgxMCwg W3gxXQorICAgICAgICBzdHIgICAgICAgICAgICAgeDExLCBbeDEsICMxNl0KKyAgICAgICAgYWRk ICAgICAgICAgICAgIHgxLCAgeDEsICAjMjQKKworICAgICAgICBzdWJzICAgICAgICAgICAgdzAs ICB3MCwgICM0CisgICAgICAgIGIuZ2UgICAgICAgICAgICA3YgorCisgICAgICAgIC5hbGlnbiBK VU1QX0FMSUdOCis4OgorICAgICAgICB0c3QgICAgICAgICAgICAgdzUsICAjMworICAgICAgICBi LmVxICAgICAgICAgICAgMTBmICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vIHJlc2lkdWFs IHBpeGVsczsgKHcgJiAzKSA9PSAwCisKKyAgICAgICAgbGRyICAgICAgICAgICAgIHcxMCwgW3gz XSAgICAgICAgICAgICAgICAgICAvLyB3MTAgPSBYWzBdIFlbMF0KKyAgICAgICAgbGRyaCAgICAg ICAgICAgIHcxMSwgW3gzLCAjNF0gICAgICAgICAgICAgICAvLyB3MTEgPSBaWzBdCisgICAgICAg IGFkZCAgICAgICAgICAgICB4MywgIHgzLCAgIzYKKyAgICAgICAgdWJmeCAgICAgICAgICAgIHc5 LCAgdzEwLCAjNCwgICMxMiAgICAgICAgICAvLyBYWzBdID4+IDQKKyAgICAgICAgdWJmeCAgICAg ICAgICAgIHcxMCwgdzEwLCAjMjAsICMxMiAgICAgICAgICAvLyBZWzBdID4+IDQKKyAgICAgICAg bHNyICAgICAgICAgICAgIHcxMSwgdzExLCAjNCAgICAgICAgICAgICAgICAvLyBaWzBdID4+IDQK KyAgICAgICAgbGRyICAgICAgICAgICAgIGgwLCAgW3g3LCB4OSwgIGxzbCAjMV0gICAgICAvLyB2 MC40aCA9IGdhbW1hLmluW1hbMF0gPj4gNF0KKyAgICAgICAgbGRyICAgICAgICAgICAgIGgxLCAg W3g3LCB4MTAsIGxzbCAjMV0gICAgICAvLyB2MS40aCA9IGdhbW1hLmluW1lbMF0gPj4gNF0KKyAg ICAgICAgbGRyICAgICAgICAgICAgIGgyLCAgW3g3LCB4MTEsIGxzbCAjMV0gICAgICAvLyB2Mi40 aCA9IGdhbW1hLmluW1pbMF0gPj4gNF0KKworICAgICAgICBjbXAgICAgICAgICAgICAgdzAsICAj LTIKKyAgICAgICAgYi5sdCAgICAgICAgICAgIDlmICAgICAgICAgICAgICAgICAgICAgICAgICAv LyAodyAmIDMpID09IDEKKworICAgICAgICBsZHIgICAgICAgICAgICAgdzEwLCBbeDNdICAgICAg ICAgICAgICAgICAgIC8vIHcxMCA9IFhbMV0gWVsxXQorICAgICAgICBsZHJoICAgICAgICAgICAg dzExLCBbeDMsICM0XSAgICAgICAgICAgICAgIC8vIHcxMSA9IFpbMV0KKyAgICAgICAgYWRkICAg ICAgICAgICAgIHgzLCAgeDMsICAjNgorICAgICAgICB1YmZ4ICAgICAgICAgICAgdzksICB3MTAs ICM0LCAjMTIgICAgICAgICAgIC8vIFhbMV0gPj4gNAorICAgICAgICB1YmZ4ICAgICAgICAgICAg dzEwLCB3MTAsICMyMCwgIzEyICAgICAgICAgIC8vIFlbMV0gPj4gNAorICAgICAgICBsc3IgICAg ICAgICAgICAgdzExLCB3MTEsICM0ICAgICAgICAgICAgICAgIC8vIFpbMV0gPj4gNAorICAgICAg ICBsZHIgICAgICAgICAgICAgaDE2LCBbeDcsIHg5LCAgbHNsICMxXSAgICAgIC8vIGdhbW1hLmlu W1hbMV0gPj4gNF0KKyAgICAgICAgbGRyICAgICAgICAgICAgIGgxNywgW3g3LCB4MTAsIGxzbCAj MV0gICAgICAvLyBnYW1tYS5pbltZWzFdID4+IDRdCisgICAgICAgIGxkciAgICAgICAgICAgICBo MTgsIFt4NywgeDExLCBsc2wgIzFdICAgICAgLy8gZ2FtbWEuaW5bWlsxXSA+PiA0XQorICAgICAg ICBtb3YgICAgICAgICAgICAgdjAuaFsxXSwgdjE2LmhbMF0gICAgICAgICAgIC8vIHYwLjRoID0g Z2FtbWEuaW5bWFswLi4xXSA+PiA0XQorICAgICAgICBtb3YgICAgICAgICAgICAgdjEuaFsxXSwg djE3LmhbMF0gICAgICAgICAgIC8vIHYxLjRoID0gZ2FtbWEuaW5bWVswLi4xXSA+PiA0XQorICAg ICAgICBtb3YgICAgICAgICAgICAgdjIuaFsxXSwgdjE4LmhbMF0gICAgICAgICAgIC8vIHYyLjRo ID0gZ2FtbWEuaW5bWlswLi4xXSA+PiA0XQorCisgICAgICAgIGIubGUgICAgICAgICAgICA5ZiAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gKHcgJiAzKSA9PSAyCisKKyAgICAgICAgbGRyICAg ICAgICAgICAgIHcxMCwgW3gzXSAgICAgICAgICAgICAgICAgICAvLyB3MTAgPSBYWzJdIFlbMl0K KyAgICAgICAgbGRyaCAgICAgICAgICAgIHcxMSwgW3gzLCAjNF0gICAgICAgICAgICAgICAvLyB3 MTEgPSBaWzJdCisgICAgICAgIGFkZCAgICAgICAgICAgICB4MywgIHgzLCAgIzYKKyAgICAgICAg dWJmeCAgICAgICAgICAgIHc5LCAgdzEwLCAjNCwgIzEyICAgICAgICAgICAvLyBYWzJdID4+IDQK KyAgICAgICAgdWJmeCAgICAgICAgICAgIHcxMCwgdzEwLCAjMjAsICMxMiAgICAgICAgICAvLyBZ WzJdID4+IDQKKyAgICAgICAgbHNyICAgICAgICAgICAgIHcxMSwgdzExLCAjNCAgICAgICAgICAg ICAgICAvLyBaWzJdID4+IDQKKyAgICAgICAgbGRyICAgICAgICAgICAgIGgxNiwgW3g3LCB4OSwg IGxzbCAjMV0gICAgICAvLyBnYW1tYS5pbltYWzJdID4+IDRdCisgICAgICAgIGxkciAgICAgICAg ICAgICBoMTcsIFt4NywgeDEwLCBsc2wgIzFdICAgICAgLy8gZ2FtbWEuaW5bWVsyXSA+PiA0XQor ICAgICAgICBsZHIgICAgICAgICAgICAgaDE4LCBbeDcsIHgxMSwgbHNsICMxXSAgICAgIC8vIGdh bW1hLmluW1pbMl0gPj4gNF0KKyAgICAgICAgbW92ICAgICAgICAgICAgIHYwLmhbMl0sIHYxNi5o WzBdICAgICAgICAgICAvLyB2MC40aCA9IGdhbW1hLmluW1hbMC4uMl0gPj4gNF0KKyAgICAgICAg bW92ICAgICAgICAgICAgIHYxLmhbMl0sIHYxNy5oWzBdICAgICAgICAgICAvLyB2MS40aCA9IGdh bW1hLmluW1lbMC4uMl0gPj4gNF0KKyAgICAgICAgbW92ICAgICAgICAgICAgIHYyLmhbMl0sIHYx OC5oWzBdICAgICAgICAgICAvLyB2Mi40aCA9IGdhbW1hLmluW1pbMC4uMl0gPj4gNF0KKworICAg ICAgICAuYWxpZ24gSlVNUF9BTElHTgorOToKKyAgICAgICAgdW11bGwgICAgICAgICAgIHYzLjRz LCAgdjAuNGgsICB2Ni5oWzBdICAgICAvLyBSWzAuLjJdID0gZ2FtbWEuaW5bWFswLi4yXSA+PiA0 XSAqIG1hdFswXVswXQorICAgICAgICB1bXVsbCAgICAgICAgICAgdjUuNHMsICB2MC40aCwgIHY2 LmhbNl0gICAgIC8vIEJbMC4uMl0gPSBnYW1tYS5pbltYWzAuLjJdID4+IDRdICogbWF0WzJdWzBd CisKKyAgICAgICAgdW11bGwgICAgICAgICAgIHY0LjRzLCAgdjEuNGgsICB2Ni5oWzRdICAgICAv LyBHWzAuLjJdICA9IGdhbW1hLmluW1lbMC4uMl0gPj4gNF0gKiBtYXRbMV1bMV0KKyAgICAgICAg dW1sc2wgICAgICAgICAgIHYzLjRzLCAgdjEuNGgsICB2Ni5oWzFdICAgICAvLyBSWzAuLjJdIC09 IGdhbW1hLmluW1lbMC4uMl0gPj4gNF0gKiBtYXRbMF1bMV0KKyAgICAgICAgdW1sc2wgICAgICAg ICAgIHY0LjRzLCAgdjAuNGgsICB2Ni5oWzNdICAgICAvLyBHWzAuLjJdIC09IGdhbW1hLmluW1hb MC4uMl0gPj4gNF0gKiBtYXRbMV1bMF0KKyAgICAgICAgdW1sc2wgICAgICAgICAgIHY1LjRzLCAg djEuNGgsICB2Ni5oWzddICAgICAvLyBCWzAuLjJdIC09IGdhbW1hLmluW1lbMC4uMl0gPj4gNF0g KiBtYXRbMl1bMV0KKworICAgICAgICB1bWxzbCAgICAgICAgICAgdjMuNHMsICB2Mi40aCwgIHY2 LmhbMl0gICAgIC8vIFJbMC4uMl0gLT0gZ2FtbWEuaW5bWlswLi4yXSA+PiA0XSAqIG1hdFswXVsy XQorICAgICAgICBzcXNocnVuICAgICAgICAgdjMuNGgsICB2My40cywgICMxMiAgICAgICAgIC8v IGNsaXAoUlswLi4yXSA+PiAxMikKKyAgICAgICAgdW1sYWwgICAgICAgICAgIHY0LjRzLCAgdjIu NGgsICB2Ni5oWzVdICAgICAvLyBHWzAuLjJdICs9IGdhbW1hLmluW1pbMC4uMl0gPj4gNF0gKiBt YXRbMV1bMl0KKyAgICAgICAgc3FzaHJ1biAgICAgICAgIHY0LjRoLCAgdjQuNHMsICAjMTIgICAg ICAgICAvLyBjbGlwKEdbMC4uMl0gPj4gMTIpCisgICAgICAgIHVtbGFsICAgICAgICAgICB2NS40 cywgIHYyLjRoLCAgdjcuaFswXSAgICAgLy8gQlswLi4yXSArPSBnYW1tYS5pbltaWzAuLjJdID4+ IDRdICogbWF0WzJdWzJdCisgICAgICAgIHNxc2hydW4gICAgICAgICB2NS40aCwgIHY1LjRzLCAg IzEyICAgICAgICAgLy8gY2xpcChCWzAuLjJdID4+IDEyKQorCisgICAgICAgIHVtb3YgICAgICAg ICAgICB3OSwgIHYzLmhbMF0gICAgICAgICAgICAgICAgLy8gY2xpcChSWzBdID4+IDEyKQorICAg ICAgICB1bW92ICAgICAgICAgICAgdzEwLCB2NC5oWzBdICAgICAgICAgICAgICAgIC8vIGNsaXAo R1swXSA+PiAxMikKKyAgICAgICAgdW1vdiAgICAgICAgICAgIHcxMSwgdjUuaFswXSAgICAgICAg ICAgICAgICAvLyBjbGlwKEJbMF0gPj4gMTIpCisgICAgICAgIGxkcmggICAgICAgICAgICB3OSwg IFt4OCwgeDksICBsc2wgIzFdICAgICAgLy8gUlswXSA9IGdhbW1hLm91dFtjbGlwKFJbMF0gPj4g MTIpXQorICAgICAgICBsZHJoICAgICAgICAgICAgdzEwLCBbeDgsIHgxMCwgbHNsICMxXSAgICAg IC8vIEdbMF0gPSBnYW1tYS5vdXRbY2xpcChHWzBdID4+IDEyKV0KKyAgICAgICAgbGRyaCAgICAg ICAgICAgIHcxMSwgW3g4LCB4MTEsIGxzbCAjMV0gICAgICAvLyBCWzBdID0gZ2FtbWEub3V0W2Ns aXAoQlswXSA+PiAxMildCisgICAgICAgIGxzbCAgICAgICAgICAgICB3OSwgIHc5LCAgIzQgICAg ICAgICAgICAgICAgLy8gdzkgID0gUlswXSA8PCA0CisgICAgICAgIGxzbCAgICAgICAgICAgICB3 MTAsIHcxMCwgIzQgICAgICAgICAgICAgICAgLy8gdzEwID0gR1swXSA8PCA0CisgICAgICAgIGxz bCAgICAgICAgICAgICB3MTEsIHcxMSwgIzQgICAgICAgICAgICAgICAgLy8gdzExID0gQlswXSA8 PCA0CisgICAgICAgIHN0cmggICAgICAgICAgICB3OSwgIFt4MV0KKyAgICAgICAgc3RyaCAgICAg ICAgICAgIHcxMCwgW3gxLCAjMl0KKyAgICAgICAgc3RyaCAgICAgICAgICAgIHcxMSwgW3gxLCAj NF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHgxLCAgeDEsICAjNgorCisgICAgICAgIGNtcCAg ICAgICAgICAgICB3MCwgICMtMgorICAgICAgICBiLmx0ICAgICAgICAgICAgMTBmICAgICAgICAg ICAgICAgICAgICAgICAgIC8vICh3ICYgMykgPT0gMQorCisgICAgICAgIHVtb3YgICAgICAgICAg ICB3OSwgIHYzLmhbMV0gICAgICAgICAgICAgICAgLy8gY2xpcChSWzFdID4+IDEyKQorICAgICAg ICB1bW92ICAgICAgICAgICAgdzEwLCB2NC5oWzFdICAgICAgICAgICAgICAgIC8vIGNsaXAoR1sx XSA+PiAxMikKKyAgICAgICAgdW1vdiAgICAgICAgICAgIHcxMSwgdjUuaFsxXSAgICAgICAgICAg ICAgICAvLyBjbGlwKEJbMV0gPj4gMTIpCisgICAgICAgIGxkcmggICAgICAgICAgICB3OSwgIFt4 OCwgeDksICBsc2wgIzFdICAgICAgLy8gUlsxXSA9IGdhbW1hLm91dFtjbGlwKFJbMV0gPj4gMTIp XQorICAgICAgICBsZHJoICAgICAgICAgICAgdzEwLCBbeDgsIHgxMCwgbHNsICMxXSAgICAgIC8v IEdbMV0gPSBnYW1tYS5vdXRbY2xpcChHWzFdID4+IDEyKV0KKyAgICAgICAgbGRyaCAgICAgICAg ICAgIHcxMSwgW3g4LCB4MTEsIGxzbCAjMV0gICAgICAvLyBCWzFdID0gZ2FtbWEub3V0W2NsaXAo QlsxXSA+PiAxMildCisgICAgICAgIGxzbCAgICAgICAgICAgICB3OSwgIHc5LCAgIzQgICAgICAg ICAgICAgICAgLy8gdzkgID0gUlsxXSA8PCA0CisgICAgICAgIGxzbCAgICAgICAgICAgICB3MTAs IHcxMCwgIzQgICAgICAgICAgICAgICAgLy8gdzEwID0gR1sxXSA8PCA0CisgICAgICAgIGxzbCAg ICAgICAgICAgICB3MTEsIHcxMSwgIzQgICAgICAgICAgICAgICAgLy8gdzExID0gQlsxXSA8PCA0 CisgICAgICAgIHN0cmggICAgICAgICAgICB3OSwgIFt4MV0KKyAgICAgICAgc3RyaCAgICAgICAg ICAgIHcxMCwgW3gxLCAjMl0KKyAgICAgICAgc3RyaCAgICAgICAgICAgIHcxMSwgW3gxLCAjNF0K KyAgICAgICAgYWRkICAgICAgICAgICAgIHgxLCAgeDEsICAjNgorCisgICAgICAgIGIubGUgICAg ICAgICAgICAxMGYgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKHcgJiAzKSA9PSAyCisKKyAg ICAgICAgdW1vdiAgICAgICAgICAgIHc5LCAgdjMuaFsyXSAgICAgICAgICAgICAgICAvLyBjbGlw KFJbMl0gPj4gMTIpCisgICAgICAgIHVtb3YgICAgICAgICAgICB3MTAsIHY0LmhbMl0gICAgICAg ICAgICAgICAgLy8gY2xpcChHWzJdID4+IDEyKQorICAgICAgICB1bW92ICAgICAgICAgICAgdzEx LCB2NS5oWzJdICAgICAgICAgICAgICAgIC8vIGNsaXAoQlsyXSA+PiAxMikKKyAgICAgICAgbGRy aCAgICAgICAgICAgIHc5LCAgW3g4LCB4OSwgIGxzbCAjMV0gICAgICAvLyBSWzJdID0gZ2FtbWEu b3V0W2NsaXAoUlsyXSA+PiAxMildCisgICAgICAgIGxkcmggICAgICAgICAgICB3MTAsIFt4OCwg eDEwLCBsc2wgIzFdICAgICAgLy8gR1syXSA9IGdhbW1hLm91dFtjbGlwKEdbMl0gPj4gMTIpXQor ICAgICAgICBsZHJoICAgICAgICAgICAgdzExLCBbeDgsIHgxMSwgbHNsICMxXSAgICAgIC8vIEJb Ml0gPSBnYW1tYS5vdXRbY2xpcChCWzJdID4+IDEyKV0KKyAgICAgICAgbHNsICAgICAgICAgICAg IHc5LCAgdzksICAjNCAgICAgICAgICAgICAgICAvLyB3OSAgPSBSWzJdIDw8IDQKKyAgICAgICAg bHNsICAgICAgICAgICAgIHcxMCwgdzEwLCAjNCAgICAgICAgICAgICAgICAvLyB3MTAgPSBHWzJd IDw8IDQKKyAgICAgICAgbHNsICAgICAgICAgICAgIHcxMSwgdzExLCAjNCAgICAgICAgICAgICAg ICAvLyB3MTEgPSBCWzJdIDw8IDQKKyAgICAgICAgc3RyaCAgICAgICAgICAgIHc5LCAgW3gxXQor ICAgICAgICBzdHJoICAgICAgICAgICAgdzEwLCBbeDEsICMyXQorICAgICAgICBzdHJoICAgICAg ICAgICAgdzExLCBbeDEsICM0XQorICAgICAgICBhZGQgICAgICAgICAgICAgeDEsICB4MSwgICM2 CisKKyAgICAgICAgLmFsaWduIEpVTVBfQUxJR04KKzEwOgorICAgICAgICByZXQKK2VuZGZ1bmMK ZGlmZiAtLWdpdCBhL2xpYnN3c2NhbGUvc3dzY2FsZS5jIGIvbGlic3dzY2FsZS9zd3NjYWxlLmMK aW5kZXggOTVhNjFhNDE4My4uOTZkZjRlZDNmNCAxMDA2NDQKLS0tIGEvbGlic3dzY2FsZS9zd3Nj YWxlLmMKKysrIGIvbGlic3dzY2FsZS9zd3NjYWxlLmMKQEAgLTg2MSw2ICs4NjEsMTAgQEAgYXZf Y29sZCB2b2lkIGZmX3N3c19pbml0X3h5emRzcChTd3NJbnRlcm5hbCAqYykKIHsKICAgICBjLT54 eXoxMlRvcmdiNDggPSB4eXoxMlRvcmdiNDhfYzsKICAgICBjLT5yZ2I0OFRveHl6MTIgPSByZ2I0 OFRveHl6MTJfYzsKKworI2lmIEFSQ0hfQUFSQ0g2NAorICAgIGZmX3N3c19pbml0X3h5emRzcF9h YXJjaDY0KGMpOworI2VuZGlmCiB9CiAKIHZvaWQgZmZfdXBkYXRlX3BhbGV0dGUoU3dzSW50ZXJu YWwgKmMsIGNvbnN0IHVpbnQzMl90ICpwYWwpCmRpZmYgLS1naXQgYS9saWJzd3NjYWxlL3N3c2Nh bGVfaW50ZXJuYWwuaCBiL2xpYnN3c2NhbGUvc3dzY2FsZV9pbnRlcm5hbC5oCmluZGV4IDAyZTYy NWExMGUuLjVjNTgyNzI2NjQgMTAwNjQ0Ci0tLSBhL2xpYnN3c2NhbGUvc3dzY2FsZV9pbnRlcm5h bC5oCisrKyBiL2xpYnN3c2NhbGUvc3dzY2FsZV9pbnRlcm5hbC5oCkBAIC03MzIsNiArNzMyLDgg QEAgYXZfY29sZCB2b2lkIGZmX3N3c19pbml0X3JhbmdlX2NvbnZlcnRfcmlzY3YoU3dzSW50ZXJu YWwgKmMpOwogYXZfY29sZCB2b2lkIGZmX3N3c19pbml0X3JhbmdlX2NvbnZlcnRfeDg2KFN3c0lu dGVybmFsICpjKTsKIAogYXZfY29sZCB2b2lkIGZmX3N3c19pbml0X3h5emRzcChTd3NJbnRlcm5h bCAqYyk7Cithdl9jb2xkIHZvaWQgZmZfc3dzX2luaXRfeHl6ZHNwX2FhcmNoNjQoU3dzSW50ZXJu YWwgKmMpOworCiBhdl9jb2xkIGludCBmZl9zd3NfZmlsbF94eXp0YWJsZXMoU3dzSW50ZXJuYWwg KmMpOwogCiBTd3NGdW5jIGZmX3l1djJyZ2JfaW5pdF94ODYoU3dzSW50ZXJuYWwgKmMpOwotLSAK Mi41Mi4wCgoKRnJvbSAyOTVhOTM0M2Y5MmJjNDIzYWE3NmYyMzc5MzgyZWI4ZTQxYjRiM2JhIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMu cmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogVGh1LCA0IERlYyAyMDI1IDE4OjQyOjAyICsw MTAwClN1YmplY3Q6IFtQQVRDSCAyMjEvMzA0XSBhdmNvZGVjL3RhYmxlcHJpbnRfdmxjOiBVbmJy ZWFrIGhhcmRjb2RlZCB0YWJsZXMKCkZvcmdvdHRlbiBpbiBkOGZmZWM1YmY5YTI4MDNmNTVjYzA4 MjJhOTdiNzgxNWYyNGJlZTgzLgpGaXhlcyBpc3N1ZSAjMjExMDIuCgpTaWduZWQtb2ZmLWJ5OiBB bmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KLS0tCiBs aWJhdmNvZGVjL3RhYmxlcHJpbnRfdmxjLmggfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3RhYmxlcHJp bnRfdmxjLmggYi9saWJhdmNvZGVjL3RhYmxlcHJpbnRfdmxjLmgKaW5kZXggYWIzM2U5MDA5MC4u ZTdjNjc2NDU3MyAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy90YWJsZXByaW50X3ZsYy5oCisrKyBi L2xpYmF2Y29kZWMvdGFibGVwcmludF92bGMuaApAQCAtMjgsNyArMjgsNyBAQAogI2RlZmluZSBm Zl9kbG9nKGEsIC4uLikgd2hpbGUoMCkKICNkZWZpbmUgZmZfdGxvZyhhLCAuLi4pIHdoaWxlKDAp CiAjZGVmaW5lIEFWVVRJTF9NRU1fSAotI2RlZmluZSBhdl9tYWxsb2MocykgTlVMTAorI2RlZmlu ZSBhdl9tYWxsb2N6KHMpIE5VTEwKICNkZWZpbmUgYXZfbWFsbG9jX2FycmF5KGEsIGIpIE5VTEwK ICNkZWZpbmUgYXZfcmVhbGxvY19mKHAsIG8sIG4pIE5VTEwKICNkZWZpbmUgYXZfZnJlZShwKSB3 aGlsZSgwKQotLSAKMi41Mi4wCgoKRnJvbSBiYzMwODA3YTY4OTJmYjU5Y2EwNDI5MDZlZmQxMTU5 ZmQxYTUxYWUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBaaGFvIFpoaWxpIDx6aGls aXpoYW9AdGVuY2VudC5jb20+CkRhdGU6IEZyaSwgMTQgTm92IDIwMjUgMjM6NDY6MDQgKzA4MDAK U3ViamVjdDogW1BBVENIIDIyMi8zMDRdIGF2Y29kZWMvaDI2NF9zbGljZTogZG9uJ3QgZm9yY2Ug ZmZfZ2V0X2Zvcm1hdAogdW5jb25kaXRpb25hbGx5IGFmdGVyIGZsdXNoCgpoLT5jb250ZXh0X2lu aXRpYWxpemVkIGlzIHplcm8gYWZ0ZXIgZmx1c2gsIHdoaWNoIHRyaWdnZXJzIGNhbGwgdG8KZmZf Z2V0X2Zvcm1hdCB1bmNvbmRpdGlvbmFsbHkuIGZmX2dldF9mb3JtYXQgY2FuIGJlIGhlYXZ5IHdp dGgKZmZfaHdhY2NlbF91bmluaXQgYW5kIGh3YWNjZWxfaW5pdC4gRm9yIGV4YW1wbGUsIGl0IHRh a2VzIDIwIG1zIG9uCm1hY09TIHdpdGggdmlkZW90b29sYm94LiBmZl9nZXRfZm9ybWF0IHNob3Vs ZCBub3QgYmUgY2FsbGVkIGlmCm5vdGhpbmcgY2hhbmdlZC4gZmZfZ2V0X2Zvcm1hdCBpcyBndWFy YW50ZWUgdG8gYmUgY2FsbGVkIGF0IHRoZQpmaXJzdCB0aW1lIGFuZCB3aGVuIHZpZGVvIGluZm9y bWF0aW9uIGNoYW5nZWQgd2l0aAoobXVzdF9yZWluaXQgfHwgbmVlZHNfcmVpbml0KS4KCkZpeCAj MjA3NjAuCi0tLQogbGliYXZjb2RlYy9oMjY0X3NsaWNlLmMgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVj L2gyNjRfc2xpY2UuYyBiL2xpYmF2Y29kZWMvaDI2NF9zbGljZS5jCmluZGV4IGQ5MWYwNGZhNjcu LjY5ZjcwYzkwYmIgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvaDI2NF9zbGljZS5jCisrKyBiL2xp YmF2Y29kZWMvaDI2NF9zbGljZS5jCkBAIC0xMTUwLDcgKzExNTAsNyBAQCBzdGF0aWMgaW50IGgy NjRfaW5pdF9wcyhIMjY0Q29udGV4dCAqaCwgY29uc3QgSDI2NFNsaWNlQ29udGV4dCAqc2wsIGlu dCBmaXJzdF9zbAogICAgICAgICBpZiAoZmx1c2hfY2hhbmdlcykKICAgICAgICAgICAgIGZmX2gy NjRfZmx1c2hfY2hhbmdlKGgpOwogCi0gICAgICAgIGlmICgocmV0ID0gZ2V0X3BpeGVsX2Zvcm1h dChoLCAxKSkgPCAwKQorICAgICAgICBpZiAoKHJldCA9IGdldF9waXhlbF9mb3JtYXQoaCwgbXVz dF9yZWluaXQgfHwgbmVlZHNfcmVpbml0KSkgPCAwKQogICAgICAgICAgICAgcmV0dXJuIHJldDsK ICAgICAgICAgaC0+YXZjdHgtPnBpeF9mbXQgPSByZXQ7CiAKLS0gCjIuNTIuMAoKCkZyb20gM2Fi NTFlNTkyZWNjNGRhZjczMjllOWU2YTQ0NzQ5NTkxZWY0MWMwNyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogQXJheiBJdXN1Ym92IDxQcmltZWFkdmljZUBnbWFpbC5jb20+CkRhdGU6IEZy aSwgNSBEZWMgMjAyNSAxNjozMjo0NiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjIzLzMwNF0gYXZj b2RlYy9hbWY6IGZpeCBod19kZXZpY2VfY3R4IGhhbmRsaW5nCgotLS0KIGxpYmF2Y29kZWMvYW1m ZGVjLmMgfCA5ICsrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2FtZmRlYy5jIGIvbGliYXZjb2Rl Yy9hbWZkZWMuYwppbmRleCAxYTJlYjkzOTJjLi5lMWE1YjcxZWU2IDEwMDY0NAotLS0gYS9saWJh dmNvZGVjL2FtZmRlYy5jCisrKyBiL2xpYmF2Y29kZWMvYW1mZGVjLmMKQEAgLTI3NCwxNSArMjc0 LDE2IEBAIHN0YXRpYyBpbnQgYW1mX2RlY29kZV9pbml0KEFWQ29kZWNDb250ZXh0ICphdmN0eCkK ICAgICBpZiAoIWN0eC0+aW5fcGt0KQogICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwog Ci0gICAgaWYgIChhdmN0eC0+aHdfZGV2aWNlX2N0eCAmJiAhYXZjdHgtPmh3X2ZyYW1lc19jdHgp IHsKKyAgICBpZiAgKGF2Y3R4LT5od19kZXZpY2VfY3R4KSB7CiAgICAgICAgIEFWSFdEZXZpY2VD b250ZXh0ICAgKmh3ZGV2X2N0eDsKICAgICAgICAgaHdkZXZfY3R4ID0gKEFWSFdEZXZpY2VDb250 ZXh0KilhdmN0eC0+aHdfZGV2aWNlX2N0eC0+ZGF0YTsKICAgICAgICAgaWYgKGh3ZGV2X2N0eC0+ dHlwZSA9PSBBVl9IV0RFVklDRV9UWVBFX0FNRikKICAgICAgICAgewogICAgICAgICAgICAgY3R4 LT5kZXZpY2VfY3R4X3JlZiA9IGF2X2J1ZmZlcl9yZWYoYXZjdHgtPmh3X2RldmljZV9jdHgpOwot ICAgICAgICAgICAgYXZjdHgtPmh3X2ZyYW1lc19jdHggPSBhdl9od2ZyYW1lX2N0eF9hbGxvYyhh dmN0eC0+aHdfZGV2aWNlX2N0eCk7Ci0KLSAgICAgICAgICAgIEFNRl9HT1RPX0ZBSUxfSUZfRkFM U0UoYXZjdHgsICEhYXZjdHgtPmh3X2ZyYW1lc19jdHgsIEFWRVJST1IoRU5PTUVNKSwgImF2X2h3 ZnJhbWVfY3R4X2FsbG9jIGZhaWxlZFxuIik7CisgICAgICAgICAgICBpZiAoIWF2Y3R4LT5od19m cmFtZXNfY3R4KSB7CisgICAgICAgICAgICAgICAgYXZjdHgtPmh3X2ZyYW1lc19jdHggPSBhdl9o d2ZyYW1lX2N0eF9hbGxvYyhhdmN0eC0+aHdfZGV2aWNlX2N0eCk7CisgICAgICAgICAgICAgICAg QU1GX0dPVE9fRkFJTF9JRl9GQUxTRShhdmN0eCwgISFhdmN0eC0+aHdfZnJhbWVzX2N0eCwgQVZF UlJPUihFTk9NRU0pLCAiYXZfaHdmcmFtZV9jdHhfYWxsb2MgZmFpbGVkXG4iKTsKKyAgICAgICAg ICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHJldCA9IGF2X2h3ZGV2aWNlX2N0 eF9jcmVhdGVfZGVyaXZlZCgmY3R4LT5kZXZpY2VfY3R4X3JlZiwgQVZfSFdERVZJQ0VfVFlQRV9B TUYsIGF2Y3R4LT5od19kZXZpY2VfY3R4LCAwKTsKICAgICAgICAgICAgIEFNRl9HT1RPX0ZBSUxf SUZfRkFMU0UoYXZjdHgsIHJldCA9PSAwLCByZXQsICJGYWlsZWQgdG8gY3JlYXRlIGRlcml2ZWQg QU1GIGRldmljZSBjb250ZXh0OiAlc1xuIiwgYXZfZXJyMnN0cihyZXQpKTsKLS0gCjIuNTIuMAoK CkZyb20gMWY5OTFkMmExOWEwYmIyNjBkNzQ3YTQ2NzI0YjkyNGU3YTczZDMxMCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogTmlrbGFzIEhhYXMgPGdpdEBoYWFzbi5kZXY+CkRhdGU6IEZy aSwgNSBEZWMgMjAyNSAxOTo0MTozNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjI0LzMwNF0gYXZj b2RlYzogYWxsb3cgYnlwYXNzaW5nIGZyYW1lIHRocmVhZGluZyB3aXRoIGFuCiBvcHRpb25hbCBm bGFnCgpOb3JtYWxseSwgdGhpcyBmdW5jdGlvbiB0cmllcyB0byBtYWtlIHN1cmUgYWxsIHRocmVh ZHMgYXJlIHNhdHVyYXRlZCB3aXRoCndvcmsgdG8gZG8gYmVmb3JlIHJldHVybmluZyBhbnkgZnJh bWVzOyBhbmQgd2lsbCBjb250aW51ZSByZXF1ZXN0aW5nIHBhY2tldHMKdW50aWwgdGhhdCBpcyB0 aGUgY2FzZS4KCkhvd2V2ZXIsIHRoaXMgc2lnbmlmaWNhbnRseSBzbG93cyBkb3duIGluaXRpYWwg ZGVjb2RpbmcgbGF0ZW5jeSB3aGVuIG9ubHkKcmVxdWVzdGluZyBhIHNpbmdsZSBmcmFtZSAodG8g ZS5nLiBjb25maWd1cmUgdGhlIGZpbHRlciBncmFwaCksIGFuZCBhbHNvCndhc3RlcyBhIGxvdCBv ZiB1bm5lY2Vzc2FyeSBtZW1vcnkgaW4gdGhlIGV2ZW50IHRoYXQgdGhlIHVzZXIgZG9lcyBub3Qg aW50ZW5kCnRvIGRlY29kZSBtb3JlIGZyYW1lcyB1bnRpbCBsYXRlci4KCkJ5IGludHJvZHVjaW5n IGEgbmV3IGBmbGFnc2AgcGFyYW1hdGVyIGFuZCBhIG5ldyBmbGFnCmBBVl9DT0RFQ19SRUNFSVZF X0ZSQU1FX0ZMQUdfU1lOQ0hST05PVVNgIHRvIGdvIGFsb25nIHdpdGggaXQsIHdlIGNhbiBhbGxv dwp1c2VycyB0byB0ZW1wb3JhcmlseSBieXBhc3MgdGhpcyBsb2dpYy4KLS0tCiBkb2MvQVBJY2hh bmdlcyAgICAgICAgICAgICAgICB8ICA0ICsrKysKIGxpYmF2Y29kZWMvYXZjb2RlYy5jICAgICAg ICAgIHwgMTAgKysrKysrKystLQogbGliYXZjb2RlYy9hdmNvZGVjLmggICAgICAgICAgfCAxNCAr KysrKysrKysrKysrKwogbGliYXZjb2RlYy9hdmNvZGVjX2ludGVybmFsLmggfCAgOCArKysrKy0t LQogbGliYXZjb2RlYy9kZWNvZGUuYyAgICAgICAgICAgfCAxMSArKysrKystLS0tLQogbGliYXZj b2RlYy9wdGhyZWFkX2ZyYW1lLmMgICAgfCAgNyArKysrKystCiBsaWJhdmNvZGVjL3ZlcnNpb24u aCAgICAgICAgICB8ICAyICstCiA3IGZpbGVzIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDEy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9BUEljaGFuZ2VzIGIvZG9jL0FQSWNoYW5n ZXMKaW5kZXggMjM5MTM3ZjFmMi4uZjMwOGZkNDBhMiAxMDA2NDQKLS0tIGEvZG9jL0FQSWNoYW5n ZXMKKysrIGIvZG9jL0FQSWNoYW5nZXMKQEAgLTIsNiArMiwxMCBAQCBUaGUgbGFzdCB2ZXJzaW9u IGluY3JlYXNlcyBvZiBhbGwgbGlicmFyaWVzIHdlcmUgb24gMjAyNS0wMy0yOAogCiBBUEkgY2hh bmdlcywgbW9zdCByZWNlbnQgZmlyc3Q6CiAKKzIwMjUtMTIteHggLSB4eHh4eHh4eHh4IC0gbGF2 YyA2Mi4yMi4xMDAgLSBhdmNvZGVjLmgKKyAgQWRkIGF2Y29kZWNfcmVjZWl2ZV9mcmFtZTIoKS4K KyAgQWRkIEFWX0NPREVDX1JFQ0VJVkVfRlJBTUVfRkxBR19TWU5DSFJPTk9VUy4KKwogMjAyNS0w OS14eCAtIHh4eHh4eHh4eHggLSBsYXZmaSAxMS4xMC4xMDAgLSBidWZmZXJzcmMuaAogICBBZGQg YXZfYnVmZmVyc3JjX2dldF9zdGF0dXMoKS4KIApkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hdmNv ZGVjLmMgYi9saWJhdmNvZGVjL2F2Y29kZWMuYwppbmRleCBkYWNkZmJhOGRhLi44YjRiMzA1ZmNk IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2F2Y29kZWMuYworKysgYi9saWJhdmNvZGVjL2F2Y29k ZWMuYwpAQCAtNzA1LDcgKzcwNSw4IEBAIGludCBhdmNvZGVjX2lzX29wZW4oQVZDb2RlY0NvbnRl eHQgKnMpCiAgICAgcmV0dXJuICEhcy0+aW50ZXJuYWw7CiB9CiAKLWludCBhdHRyaWJ1dGVfYWxp Z25fYXJnIGF2Y29kZWNfcmVjZWl2ZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJh bWUgKmZyYW1lKQoraW50IGF0dHJpYnV0ZV9hbGlnbl9hcmcgYXZjb2RlY19yZWNlaXZlX2ZyYW1l MihBVkNvZGVjQ29udGV4dCAqYXZjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFWRnJhbWUgKmZyYW1lLCB1bnNpZ25lZCBmbGFncykKIHsKICAgICBh dl9mcmFtZV91bnJlZihmcmFtZSk7CiAKQEAgLTcxMywxMCArNzE0LDE1IEBAIGludCBhdHRyaWJ1 dGVfYWxpZ25fYXJnIGF2Y29kZWNfcmVjZWl2ZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgs IEFWRnJhbWUgKmZyCiAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7CiAKICAgICBpZiAo ZmZfY29kZWNfaXNfZGVjb2RlcihhdmN0eC0+Y29kZWMpKQotICAgICAgICByZXR1cm4gZmZfZGVj b2RlX3JlY2VpdmVfZnJhbWUoYXZjdHgsIGZyYW1lKTsKKyAgICAgICAgcmV0dXJuIGZmX2RlY29k ZV9yZWNlaXZlX2ZyYW1lKGF2Y3R4LCBmcmFtZSwgZmxhZ3MpOwogICAgIHJldHVybiBmZl9lbmNv ZGVfcmVjZWl2ZV9mcmFtZShhdmN0eCwgZnJhbWUpOwogfQogCitpbnQgYXZjb2RlY19yZWNlaXZl X2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUpCit7CisgICAgcmV0 dXJuIGF2Y29kZWNfcmVjZWl2ZV9mcmFtZTIoYXZjdHgsIGZyYW1lLCAwKTsKK30KKwogI2RlZmlu ZSBXUkFQX0NPTkZJRyhhbGxvd2VkX3R5cGUsIGZpZWxkLCB2YXIsIGZpZWxkX3R5cGUsIHNlbnRp bmVsX2NoZWNrKSAgIFwKICAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIGlmIChjb2RlYy0+ dHlwZSAhPSAoYWxsb3dlZF90eXBlKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XApkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hdmNvZGVjLmggYi9saWJhdmNvZGVjL2F2Y29kZWMu aAppbmRleCA5MWJkN2NiN2VmLi45MmMwMjA3Y2Y2IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2F2 Y29kZWMuaAorKysgYi9saWJhdmNvZGVjL2F2Y29kZWMuaApAQCAtNDE1LDYgKzQxNSwxNCBAQCB0 eXBlZGVmIHN0cnVjdCBSY092ZXJyaWRlewogICovCiAjZGVmaW5lIEFWX0dFVF9FTkNPREVfQlVG RkVSX0ZMQUdfUkVGICgxIDw8IDApCiAKKy8qKgorICogVGhlIGRlY29kZXIgd2lsbCBieXBhc3Mg ZnJhbWUgdGhyZWFkaW5nIGFuZCByZXR1cm4gdGhlIG5leHQgZnJhbWUgYXMgc29vbiBhcworICog cG9zc2libGUuIE5vdGUgdGhhdCB0aGlzIG1heSBkZWxpdmVyIGZyYW1lcyBlYXJsaWVyIHRoYW4g dGhlIGFkdmVydGlzZWQKKyAqIGBBVkNvZGVjQ29udGV4dC5kZWxheWAuIE5vIGVmZmVjdCB3aGVu IGZyYW1lIHRocmVhZGluZyBpcyBkaXNhYmxlZCwgb3Igb24KKyAqIGVuY29kaW5nLgorICovCisj ZGVmaW5lIEFWX0NPREVDX1JFQ0VJVkVfRlJBTUVfRkxBR19TWU5DSFJPTk9VUyAoMSA8PCAwKQor CiAvKioKICAqIG1haW4gZXh0ZXJuYWwgQVBJIHN0cnVjdHVyZS4KICAqIE5ldyBmaWVsZHMgY2Fu IGJlIGFkZGVkIHRvIHRoZSBlbmQgd2l0aCBtaW5vciB2ZXJzaW9uIGJ1bXBzLgpAQCAtMjM2MCw2 ICsyMzY4LDcgQEAgaW50IGF2Y29kZWNfc2VuZF9wYWNrZXQoQVZDb2RlY0NvbnRleHQgKmF2Y3R4 LCBjb25zdCBBVlBhY2tldCAqYXZwa3QpOwogICogICAgICAgICAgICAgIGZyYW1lIChkZXBlbmRp bmcgb24gdGhlIGRlY29kZXIgdHlwZSkgYWxsb2NhdGVkIGJ5IHRoZQogICogICAgICAgICAgICAg IGNvZGVjLiBOb3RlIHRoYXQgdGhlIGZ1bmN0aW9uIHdpbGwgYWx3YXlzIGNhbGwKICAqICAgICAg ICAgICAgICBhdl9mcmFtZV91bnJlZihmcmFtZSkgYmVmb3JlIGRvaW5nIGFueXRoaW5nIGVsc2Uu CisgKiBAcGFyYW0gZmxhZ3MgQ29tYmluYXRpb24gb2YgQVZfQ09ERUNfUkVDRUlWRV9GUkFNRV9G TEFHXyogZmxhZ3MuCiAgKgogICogQHJldHZhbCAwICAgICAgICAgICAgICAgIHN1Y2Nlc3MsIGEg ZnJhbWUgd2FzIHJldHVybmVkCiAgKiBAcmV0dmFsIEFWRVJST1IoRUFHQUlOKSAgb3V0cHV0IGlz IG5vdCBhdmFpbGFibGUgaW4gdGhpcyBzdGF0ZSAtIHVzZXIgbXVzdApAQCAtMjM3MCw2ICsyMzc5 LDExIEBAIGludCBhdmNvZGVjX3NlbmRfcGFja2V0KEFWQ29kZWNDb250ZXh0ICphdmN0eCwgY29u c3QgQVZQYWNrZXQgKmF2cGt0KTsKICAqICAgICAgICAgICAgICAgICAgICAgICAgICBAcmVmIEFW X0NPREVDX0ZMQUdfUkVDT05fRlJBTUUgZmxhZyBlbmFibGVkCiAgKiBAcmV0dmFsICJvdGhlciBu ZWdhdGl2ZSBlcnJvciBjb2RlIiBsZWdpdGltYXRlIGRlY29kaW5nIGVycm9ycwogICovCitpbnQg YXZjb2RlY19yZWNlaXZlX2ZyYW1lMihBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUgKmZy YW1lLCB1bnNpZ25lZCBmbGFncyk7CisKKy8qKgorICogQWxpYXMgZm9yIGBhdmNvZGVjX3JlY2Vp dmVfZnJhbWUyKGF2Y3R4LCBmcmFtZSwgMClgLgorICovCiBpbnQgYXZjb2RlY19yZWNlaXZlX2Zy YW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUpOwogCiAvKioKZGlmZiAt LWdpdCBhL2xpYmF2Y29kZWMvYXZjb2RlY19pbnRlcm5hbC5oIGIvbGliYXZjb2RlYy9hdmNvZGVj X2ludGVybmFsLmgKaW5kZXggMTg0ZDdiNTI2Yy4uMDY2NDVlOTFhMCAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy9hdmNvZGVjX2ludGVybmFsLmgKKysrIGIvbGliYXZjb2RlYy9hdmNvZGVjX2ludGVy bmFsLmgKQEAgLTQ1LDcgKzQ1LDggQEAgZXh0ZXJuIGNvbnN0IFNpZGVEYXRhTWFwIGZmX3NkX2ds b2JhbF9tYXBbXTsKIC8qKgogICogYXZjb2RlY19yZWNlaXZlX2ZyYW1lKCkgaW1wbGVtZW50YXRp b24gZm9yIGRlY29kZXJzLgogICovCi1pbnQgZmZfZGVjb2RlX3JlY2VpdmVfZnJhbWUoc3RydWN0 IEFWQ29kZWNDb250ZXh0ICphdmN0eCwgc3RydWN0IEFWRnJhbWUgKmZyYW1lKTsKK2ludCBmZl9k ZWNvZGVfcmVjZWl2ZV9mcmFtZShzdHJ1Y3QgQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBzdHJ1Y3Qg QVZGcmFtZSAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZmxh Z3MpOwogCiAvKioKICAqIGF2Y29kZWNfcmVjZWl2ZV9mcmFtZSgpIGltcGxlbWVudGF0aW9uIGZv ciBlbmNvZGVycy4KQEAgLTkxLDkgKzkyLDEwIEBAIHZvaWQgZmZfdGhyZWFkX2ZsdXNoKHN0cnVj dCBBVkNvZGVjQ29udGV4dCAqYXZjdHgpOwogICogU3VibWl0IGF2YWlsYWJsZSBwYWNrZXRzIGZv ciBkZWNvZGluZyB0byB3b3JrZXIgdGhyZWFkcywgcmV0dXJuIGEKICAqIGRlY29kZWQgZnJhbWUg aWYgYXZhaWxhYmxlLiBSZXR1cm5zIEFWRVJST1IoRUFHQUlOKSBpZiBub25lIGlzIGF2YWlsYWJs ZS4KICAqCi0gKiBQYXJhbWV0ZXJzIGFyZSB0aGUgc2FtZSBhcyBGRkNvZGVjLnJlY2VpdmVfZnJh bWUuCisgKiBQYXJhbWV0ZXJzIGFyZSB0aGUgc2FtZSBhcyBGRkNvZGVjLnJlY2VpdmVfZnJhbWUs IHBsdXMgZmxhZ3MuCiAgKi8KLWludCBmZl90aHJlYWRfcmVjZWl2ZV9mcmFtZShzdHJ1Y3QgQVZD b2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpmcmFtZSk7CitpbnQgZmZfdGhyZWFkX3JlY2Vp dmVfZnJhbWUoc3RydWN0IEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZmxhZ3MpOwogCiAvKioKICAqIERv IHRoZSBhY3R1YWwgZGVjb2RpbmcgYW5kIG9idGFpbiBhIGRlY29kZWQgZnJhbWUgZnJvbSB0aGUg ZGVjb2RlciwgaWYKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvZGVjb2RlLmMgYi9saWJhdmNvZGVj L2RlY29kZS5jCmluZGV4IGYwNjQ2OTAxYzguLjg5YTU1YzFjZDggMTAwNjQ0Ci0tLSBhL2xpYmF2 Y29kZWMvZGVjb2RlLmMKKysrIGIvbGliYXZjb2RlYy9kZWNvZGUuYwpAQCAtNjQ1LDE0ICs2NDUs MTUgQEAgaW50IGZmX2RlY29kZV9yZWNlaXZlX2ZyYW1lX2ludGVybmFsKEFWQ29kZWNDb250ZXh0 ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUpCiAgICAgcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGlu dCBkZWNvZGVfcmVjZWl2ZV9mcmFtZV9pbnRlcm5hbChBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFW RnJhbWUgKmZyYW1lKQorc3RhdGljIGludCBkZWNvZGVfcmVjZWl2ZV9mcmFtZV9pbnRlcm5hbChB VkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUgKmZyYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBmbGFncykKIHsKICAgICBBVkNvZGVjSW50 ZXJuYWwgKmF2Y2kgPSBhdmN0eC0+aW50ZXJuYWw7CiAgICAgRGVjb2RlQ29udGV4dCAgICAgKmRj ID0gZGVjb2RlX2N0eChhdmNpKTsKICAgICBpbnQgcmV0LCBvazsKIAogICAgIGlmIChhdmN0eC0+ YWN0aXZlX3RocmVhZF90eXBlICYgRkZfVEhSRUFEX0ZSQU1FKQotICAgICAgICByZXQgPSBmZl90 aHJlYWRfcmVjZWl2ZV9mcmFtZShhdmN0eCwgZnJhbWUpOworICAgICAgICByZXQgPSBmZl90aHJl YWRfcmVjZWl2ZV9mcmFtZShhdmN0eCwgZnJhbWUsIGZsYWdzKTsKICAgICBlbHNlCiAgICAgICAg IHJldCA9IGZmX2RlY29kZV9yZWNlaXZlX2ZyYW1lX2ludGVybmFsKGF2Y3R4LCBmcmFtZSk7CiAK QEAgLTczMCw3ICs3MzEsNyBAQCBpbnQgYXR0cmlidXRlX2FsaWduX2FyZyBhdmNvZGVjX3NlbmRf cGFja2V0KEFWQ29kZWNDb250ZXh0ICphdmN0eCwgY29uc3QgQVZQYWNrZQogICAgICAgICBkYy0+ ZHJhaW5pbmdfc3RhcnRlZCA9IDE7CiAKICAgICBpZiAoIWF2Y2ktPmJ1ZmZlcl9mcmFtZS0+YnVm WzBdICYmICFkYy0+ZHJhaW5pbmdfc3RhcnRlZCkgewotICAgICAgICByZXQgPSBkZWNvZGVfcmVj ZWl2ZV9mcmFtZV9pbnRlcm5hbChhdmN0eCwgYXZjaS0+YnVmZmVyX2ZyYW1lKTsKKyAgICAgICAg cmV0ID0gZGVjb2RlX3JlY2VpdmVfZnJhbWVfaW50ZXJuYWwoYXZjdHgsIGF2Y2ktPmJ1ZmZlcl9m cmFtZSwgMCk7CiAgICAgICAgIGlmIChyZXQgPCAwICYmIHJldCAhPSBBVkVSUk9SKEVBR0FJTikg JiYgcmV0ICE9IEFWRVJST1JfRU9GKQogICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICB9CkBA IC03OTIsNyArNzkzLDcgQEAgZmFpbDoKICAgICByZXR1cm4gQVZFUlJPUl9CVUc7CiB9CiAKLWlu dCBmZl9kZWNvZGVfcmVjZWl2ZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUg KmZyYW1lKQoraW50IGZmX2RlY29kZV9yZWNlaXZlX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0 eCwgQVZGcmFtZSAqZnJhbWUsIHVuc2lnbmVkIGZsYWdzKQogewogICAgIEFWQ29kZWNJbnRlcm5h bCAqYXZjaSA9IGF2Y3R4LT5pbnRlcm5hbDsKICAgICBpbnQgcmV0OwpAQCAtODAwLDcgKzgwMSw3 IEBAIGludCBmZl9kZWNvZGVfcmVjZWl2ZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFW RnJhbWUgKmZyYW1lKQogICAgIGlmIChhdmNpLT5idWZmZXJfZnJhbWUtPmJ1ZlswXSkgewogICAg ICAgICBhdl9mcmFtZV9tb3ZlX3JlZihmcmFtZSwgYXZjaS0+YnVmZmVyX2ZyYW1lKTsKICAgICB9 IGVsc2UgewotICAgICAgICByZXQgPSBkZWNvZGVfcmVjZWl2ZV9mcmFtZV9pbnRlcm5hbChhdmN0 eCwgZnJhbWUpOworICAgICAgICByZXQgPSBkZWNvZGVfcmVjZWl2ZV9mcmFtZV9pbnRlcm5hbChh dmN0eCwgZnJhbWUsIGZsYWdzKTsKICAgICAgICAgaWYgKHJldCA8IDApCiAgICAgICAgICAgICBy ZXR1cm4gcmV0OwogICAgIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvcHRocmVhZF9mcmFtZS5j IGIvbGliYXZjb2RlYy9wdGhyZWFkX2ZyYW1lLmMKaW5kZXggZmYwMTVjMDBiMy4uMjExNWQ0MjA0 ZCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9wdGhyZWFkX2ZyYW1lLmMKKysrIGIvbGliYXZjb2Rl Yy9wdGhyZWFkX2ZyYW1lLmMKQEAgLTU1OSw3ICs1NTksNyBAQCBzdGF0aWMgaW50IHN1Ym1pdF9w YWNrZXQoUGVyVGhyZWFkQ29udGV4dCAqcCwgQVZDb2RlY0NvbnRleHQgKnVzZXJfYXZjdHgsCiAg ICAgcmV0dXJuIDA7CiB9CiAKLWludCBmZl90aHJlYWRfcmVjZWl2ZV9mcmFtZShBVkNvZGVjQ29u dGV4dCAqYXZjdHgsIEFWRnJhbWUgKmZyYW1lKQoraW50IGZmX3RocmVhZF9yZWNlaXZlX2ZyYW1l KEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUsIHVuc2lnbmVkIGZsYWdzKQog ewogICAgIEZyYW1lVGhyZWFkQ29udGV4dCAqZmN0eCA9IGF2Y3R4LT5pbnRlcm5hbC0+dGhyZWFk X2N0eDsKICAgICBpbnQgcmV0ID0gMDsKQEAgLTU3Miw2ICs1NzIsMTAgQEAgaW50IGZmX3RocmVh ZF9yZWNlaXZlX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUpCiAg ICAgd2hpbGUgKCFmY3R4LT5kZi5uYl9mICYmICFmY3R4LT5yZXN1bHQpIHsKICAgICAgICAgUGVy VGhyZWFkQ29udGV4dCAqcDsKIAorICAgICAgICBpZiAoZmN0eC0+bmV4dF9kZWNvZGluZyAhPSBm Y3R4LT5uZXh0X2ZpbmlzaGVkICYmCisgICAgICAgICAgICAoZmxhZ3MgJiBBVl9DT0RFQ19SRUNF SVZFX0ZSQU1FX0ZMQUdfU1lOQ0hST05PVVMpKQorICAgICAgICAgICAgZ290byB3YWl0X2Zvcl9y ZXN1bHQ7CisKICAgICAgICAgLyogZ2V0IGEgcGFja2V0IHRvIGJlIHN1Ym1pdHRlZCB0byB0aGUg bmV4dCB0aHJlYWQgKi8KICAgICAgICAgYXZfcGFja2V0X3VucmVmKGZjdHgtPm5leHRfcGt0KTsK ICAgICAgICAgcmV0ID0gZmZfZGVjb2RlX2dldF9wYWNrZXQoYXZjdHgsIGZjdHgtPm5leHRfcGt0 KTsKQEAgLTU4OCw2ICs1OTIsNyBAQCBpbnQgZmZfdGhyZWFkX3JlY2VpdmVfZnJhbWUoQVZDb2Rl Y0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpmcmFtZSkKICAgICAgICAgICAgICFhdmN0eC0+aW50 ZXJuYWwtPmRyYWluaW5nKQogICAgICAgICAgICAgY29udGludWU7CiAKKyAgICB3YWl0X2Zvcl9y ZXN1bHQ6CiAgICAgICAgIHAgICAgICAgICAgICAgICAgICAgPSAmZmN0eC0+dGhyZWFkc1tmY3R4 LT5uZXh0X2ZpbmlzaGVkXTsKICAgICAgICAgZmN0eC0+bmV4dF9maW5pc2hlZCA9IChmY3R4LT5u ZXh0X2ZpbmlzaGVkICsgMSkgJSBhdmN0eC0+dGhyZWFkX2NvdW50OwogCmRpZmYgLS1naXQgYS9s aWJhdmNvZGVjL3ZlcnNpb24uaCBiL2xpYmF2Y29kZWMvdmVyc2lvbi5oCmluZGV4IGRhNmYzYTg0 YWMuLjk0MTE1MTFlMDQgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdmVyc2lvbi5oCisrKyBiL2xp YmF2Y29kZWMvdmVyc2lvbi5oCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJ2ZXJzaW9u X21ham9yLmgiCiAKLSNkZWZpbmUgTElCQVZDT0RFQ19WRVJTSU9OX01JTk9SICAyMQorI2RlZmlu ZSBMSUJBVkNPREVDX1ZFUlNJT05fTUlOT1IgIDIyCiAjZGVmaW5lIExJQkFWQ09ERUNfVkVSU0lP Tl9NSUNSTyAxMDAKIAogI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05fSU5UICBBVl9WRVJTSU9O X0lOVChMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IsIFwKLS0gCjIuNTIuMAoKCkZyb20gOGU1MTRj OWZmYjc0N2E3YTUwNmQ1ZGZmYTVkZjQxZWE0NGU2ODBiOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogTmlrbGFzIEhhYXMgPGdpdEBoYWFzbi5kZXY+CkRhdGU6IE1vbiwgMjIgU2VwIDIw MjUgMTU6Mzg6MDYgKzAyMDAKU3ViamVjdDogW1BBVENIIDIyNS8zMDRdIGZmdG9vbHMvZmZtcGVn X2RlYzogZGVjb2RlIHRoZSBmaXJzdCBmcmFtZQogc3luY2hyb25vdXNseQoKSW4gYW4gaWRlYWwg d29ybGQsIGEgZmlsdGVyZ3JhcGggbGlrZSBgLWkgQSAtaSBCIC4uLiAtZmlsdGVyX2NvbXBsZXgg Y29uY2F0YAp3b3VsZCBvbmx5IGtlZXAgcmVzb3VyY2VzIGluIG1lbW9yeSByZWxhdGVkIHRvIHRo ZSBmaWxlIGN1cnJlbnRseSBiZWluZyBvdXRwdXQKYnkgdGhlIGNvbmNhdCBmaWx0ZXIuIFNvIGlk ZWFsbHksIHdlJ2Qgb3BlbiBhbmQgZnVsbHkgZGVjb2RlIEEsIHRoZW4gb3BlbiBhbmQKZnVsbHkg ZGVjb2RlIEIsIGFuZCBzbyBvbi4KClByYWN0aWNhbGx5LCBob3dldmVyLCBmZnRvb2xzIHdhbnRz IHRvIGdldCBvbmUgZnJhbWUgZnJvbSBlYWNoIGlucHV0IGZpbGUgaW4Kb3JkZXIgdG8gaW5pdGlh bGl6ZSB0aGUgZmlsdGVyIGdyYXBoIChidWZmZXJzcmMgcGFyYW1ldGVycykuIFNvIHdoYXQgaGFw cGVucwpjdXJyZW50bHkgaXMgdGhhdCBmZnRvb2xzIHdpbGwgcmVxdWVzdCBhIHNpbmdsZSBmcmFt ZSBmcm9tIGVhY2ggaW5wdXQgQSwgQiwgZXRjCnRoYXQgaXMgcGx1Z2dlZCBpbnRvIHRoZSBmaWx0 ZXJncmFwaC4KCldoZW4gdXNpbmcgZnJhbWUgdGhyZWFkaW5nLCB0aGUgZGVzaWduIG9mIHRoZSBk ZWNvZGVyIChmZl90aHJlYWRfcmVjZWl2ZV9mcmFtZSkKaXMgdGhhdCBpdCB3aWxsIG5vdCBvdXRw dXQgYW55IGZyYW1lcyB1bnRpbCB3ZSBoYXZlIHJlY2VpdmVkIGVub3VnaCBwYWNrZXRzIHRvCnNh dHVyYXRlIGFsbCB0aHJlYWRzLiBUaGlzLCBob3dldmVyLCBmb3JjZXMgdGhlIGRlY29kZXIgdG8g YnVmZmVyIGF0IGxlYXN0IGFzCm1hbnkgZnJhbWVzIGZvciBlYWNoIGlucHV0IGZpbGUgYXMgd2Ug aGF2ZSB0aHJlYWRzLCBiZWZvcmUgb3V0cHV0dGluZyBhbnl0aGluZy4KCkJ5IGRlY29kaW5nIHRo ZSBmaXJzdCBmcmFtZSBzeW5jaHJvbm91c2x5LCB3ZSBhdm9pZCB0aGlzIGlzc3VlIGFuZCBhbGxv dwpjb25maWd1cmluZyB0aGUgZmlsdGVyIGdyYXBoIG1vcmUgcXVpY2tseSBhbmQgd2l0aG91dCB3 YXN0aW5nIGV4Y2VzcyByZXNvdXJjZXMKb24gZnJhbWVzIHRoYXQgd2lsbCBub3QgKHlldCkgYmUg dXNlZC4KLS0tCiBmZnRvb2xzL2ZmbXBlZ19kZWMuYyB8IDUgKysrKy0KIDEgZmlsZSBjaGFuZ2Vk LCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9mZnRvb2xzL2Zm bXBlZ19kZWMuYyBiL2ZmdG9vbHMvZmZtcGVnX2RlYy5jCmluZGV4IDJmMjUyNjU5OTcuLmE3NmQ0 YjFhZTggMTAwNjQ0Ci0tLSBhL2ZmdG9vbHMvZmZtcGVnX2RlYy5jCisrKyBiL2ZmdG9vbHMvZmZt cGVnX2RlYy5jCkBAIC03NDQsMTEgKzc0NCwxNCBAQCBzdGF0aWMgaW50IHBhY2tldF9kZWNvZGUo RGVjb2RlclByaXYgKmRwLCBBVlBhY2tldCAqcGt0LCBBVkZyYW1lICpmcmFtZSkKICAgICB3aGls ZSAoMSkgewogICAgICAgICBGcmFtZURhdGEgKmZkOwogICAgICAgICB1bnNpZ25lZCBvdXRwdXRz X21hc2sgPSAxOworICAgICAgICB1bnNpZ25lZCBmbGFncyA9IDA7CisgICAgICAgIGlmICghZHAt PmRlYy5mcmFtZXNfZGVjb2RlZCkKKyAgICAgICAgICAgIGZsYWdzIHw9IEFWX0NPREVDX1JFQ0VJ VkVfRlJBTUVfRkxBR19TWU5DSFJPTk9VUzsKIAogICAgICAgICBhdl9mcmFtZV91bnJlZihmcmFt ZSk7CiAKICAgICAgICAgdXBkYXRlX2JlbmNobWFyayhOVUxMKTsKLSAgICAgICAgcmV0ID0gYXZj b2RlY19yZWNlaXZlX2ZyYW1lKGRlYywgZnJhbWUpOworICAgICAgICByZXQgPSBhdmNvZGVjX3Jl Y2VpdmVfZnJhbWUyKGRlYywgZnJhbWUsIGZsYWdzKTsKICAgICAgICAgdXBkYXRlX2JlbmNobWFy aygiZGVjb2RlXyVzICVzIiwgdHlwZV9kZXNjLCBkcC0+cGFyZW50X25hbWUpOwogCiAgICAgICAg IGlmIChyZXQgPT0gQVZFUlJPUihFQUdBSU4pKSB7Ci0tIAoyLjUyLjAKCgpGcm9tIDMyMmIxZmRm NmY1OWUxMTFiMGNiMDY2MzQ3NGExZWYwNDhiMmIyMzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206ID0/VVRGLTg/cT9LYWNwZXI9MjBNaWNoYWo9QzU9ODJvdz89IDxrYXNwZXI5M0BnbWFp bC5jb20+CkRhdGU6IEZyaSwgNSBEZWMgMjAyNSAxNzo1NzoyMSArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMjI2LzMwNF0gY2hlY2thc20vc3dfeHl6MnJnYjogZml4IGZ1bmN0aW9uIHR5cGUKTUlNRS1W ZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClNpZ25lZC1vZmYtYnk6IEthY3BlciBNaWNoYWrF gm93IDxrYXNwZXI5M0BnbWFpbC5jb20+Ci0tLQogdGVzdHMvY2hlY2thc20vc3dfeHl6MnJnYi5j IHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja2FzbS9zd194eXoycmdiLmMgYi90ZXN0cy9j aGVja2FzbS9zd194eXoycmdiLmMKaW5kZXggYWZmZmI2YzhkYS4uMTdjNWZjY2U3YiAxMDA2NDQK LS0tIGEvdGVzdHMvY2hlY2thc20vc3dfeHl6MnJnYi5jCisrKyBiL3Rlc3RzL2NoZWNrYXNtL3N3 X3h5ejJyZ2IuYwpAQCAtNTgsNyArNTgsNyBAQCBzdGF0aWMgdm9pZCBjaGVja194eXoxMlRvcmdi NDhsZSh2b2lkKQogICAgIExPQ0FMX0FMSUdORURfOCh1aW50MTZfdCwgZHN0X3JlZiwgWzMgKiBN QVhfTElORV9TSVpFICogTlVNX0xJTkVTXSk7CiAgICAgTE9DQUxfQUxJR05FRF84KHVpbnQxNl90 LCBkc3RfbmV3LCBbMyAqIE1BWF9MSU5FX1NJWkUgKiBOVU1fTElORVNdKTsKIAotICAgIGRlY2xh cmVfZnVuYyh2b2lkLCBjb25zdCBTd3NDb250ZXh0ICosIHVpbnQ4X3QgKiwgaW50LCBjb25zdCB1 aW50OF90ICosCisgICAgZGVjbGFyZV9mdW5jKHZvaWQsIGNvbnN0IFN3c0ludGVybmFsICosIHVp bnQ4X3QgKiwgaW50LCBjb25zdCB1aW50OF90ICosCiAgICAgICAgICAgICAgICAgIGludCwgaW50 LCBpbnQpOwogCiAgICAgU3dzSW50ZXJuYWwgYzsKQEAgLTgwLDE2ICs4MCwxNiBAQCBzdGF0aWMg dm9pZCBjaGVja194eXoxMlRvcmdiNDhsZSh2b2lkKQogICAgICAgICAgICAgICAgIG1lbXNldChk c3RfbmV3LCAweEZFLAogICAgICAgICAgICAgICAgICAgICAgICAzICogc2l6ZW9mKHVpbnQxNl90 KSAqIE1BWF9MSU5FX1NJWkUgKiBOVU1fTElORVMpOwogCi0gICAgICAgICAgICAgICAgY2FsbF9y ZWYoKGNvbnN0IFN3c0NvbnRleHQqKSZjLCAodWludDhfdCAqKWRzdF9yZWYsIGRzdF9zdHJpZGUs CisgICAgICAgICAgICAgICAgY2FsbF9yZWYoJmMsICh1aW50OF90ICopZHN0X3JlZiwgZHN0X3N0 cmlkZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgdWludDhfdCAqKXNyYywgc3Jj X3N0cmlkZSwgd2lkdGgsIGhlaWdodCk7Ci0gICAgICAgICAgICAgICAgY2FsbF9uZXcoKGNvbnN0 IFN3c0NvbnRleHQqKSZjLCAodWludDhfdCAqKWRzdF9uZXcsIGRzdF9zdHJpZGUsCisgICAgICAg ICAgICAgICAgY2FsbF9uZXcoJmMsICh1aW50OF90ICopZHN0X25ldywgZHN0X3N0cmlkZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgdWludDhfdCAqKXNyYywgc3JjX3N0cmlkZSwg d2lkdGgsIGhlaWdodCk7CiAKICAgICAgICAgICAgICAgICBjaGVja2FzbV9jaGVjayh1aW50MTZf dCwgZHN0X3JlZiwgZHN0X3N0cmlkZSwgZHN0X25ldywKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkc3Rfc3RyaWRlLCB3aWR0aCwgaGVpZ2h0LCAiZHN0X3JnYiIpOwogCiAgICAgICAg ICAgICAgICAgaWYgKCEod2lkdGggJiAzKSAmJiBoZWlnaHQgPT0gTlVNX0xJTkVTKSB7Ci0gICAg ICAgICAgICAgICAgICAgIGJlbmNoX25ldygoY29uc3QgU3dzQ29udGV4dCopJmMsICh1aW50OF90 ICopZHN0X25ldywKKyAgICAgICAgICAgICAgICAgICAgYmVuY2hfbmV3KCZjLCAodWludDhfdCAq KWRzdF9uZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3Rfc3RyaWRlLCAoY29u c3QgdWludDhfdCAqKXNyYywgc3JjX3N0cmlkZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHdpZHRoLCBoZWlnaHQpOwogICAgICAgICAgICAgICAgIH0KLS0gCjIuNTIuMAoKCkZyb20g MWJiNGVjMTNiMDhiMWEyMjUwNjhiMmNkYWQ2NTE5ZWVkNzdlMjg1MyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogTWljaGFlbCBOaWVkZXJtYXllciA8bWljaGFlbEBuaWVkZXJtYXllci5j Yz4KRGF0ZTogU3VuLCA3IERlYyAyMDI1IDExOjU3OjEzICswMTAwClN1YmplY3Q6IFtQQVRDSCAy MjcvMzA0XSBhdmNvZGVjL2RlY29kZTogRml4IGJ1aWxkIGR1ZSB0bwogZmZfdGhyZWFkX3JlY2Vp dmVfZnJhbWUoKQoKUmVncmVzc2lvbiBzaW5jZTogNWU1NjkzN2I3NDJiOTExMGQzOGNlNmZhNGM3 YmRmMmQ1YzM1NWRmNAoKU2lnbmVkLW9mZi1ieTogTWljaGFlbCBOaWVkZXJtYXllciA8bWljaGFl bEBuaWVkZXJtYXllci5jYz4KLS0tCiBsaWJhdmNvZGVjL2RlY29kZS5jIHwgMiArLQogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbGli YXZjb2RlYy9kZWNvZGUuYyBiL2xpYmF2Y29kZWMvZGVjb2RlLmMKaW5kZXggODlhNTVjMWNkOC4u Y2ExYWRmYTM4NiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9kZWNvZGUuYworKysgYi9saWJhdmNv ZGVjL2RlY29kZS5jCkBAIC0yMTgsNyArMjE4LDcgQEAgZmFpbDoKIAogI2lmICFIQVZFX1RIUkVB RFMKICNkZWZpbmUgZmZfdGhyZWFkX2dldF9wYWNrZXQoYXZjdHgsIHBrdCkgKEFWRVJST1JfQlVH KQotI2RlZmluZSBmZl90aHJlYWRfcmVjZWl2ZV9mcmFtZShhdmN0eCwgZnJhbWUpIChBVkVSUk9S X0JVRykKKyNkZWZpbmUgZmZfdGhyZWFkX3JlY2VpdmVfZnJhbWUoYXZjdHgsIGZyYW1lLCBmbGFn cykgKEFWRVJST1JfQlVHKQogI2VuZGlmCiAKIHN0YXRpYyBpbnQgZGVjb2RlX2dldF9wYWNrZXQo QVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVlBhY2tldCAqcGt0KQotLSAKMi41Mi4wCgoKRnJvbSAx NDA1MWVjM2Y0OGI4OTdkOWNlOGJkOTc2MjE1MTQzMWI5Mjc4M2I1IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBKYW1lcyBBbG1lciA8amFtcmlhbEBnbWFpbC5jb20+CkRhdGU6IFN1biwg NyBEZWMgMjAyNSAxMjo0MToyNyAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjI4LzMwNF0gYXZjb2Rl YzogcmVuYW1lIGF2Y29kZWNfcmVjZWl2ZV9mcmFtZTIgdG8KIGF2Y29kZWNfcmVjZWl2ZV9mcmFt ZV9mbGFncwoKSXQncyBhIG5hbWUgdGhhdCBjb21tdW5pY2F0ZXMgaXRzIGZ1bmN0aW9uYWxpdHkg aW4gYSBiZXR0ZXIgd2F5LgpTaW5jZSB0aGUgZnVuY3Rpb24gd2FzIGludHJvZHVjZWQgdmVyeSBy ZWNlbnRseSwgd2UgY2FuIHNhZmVseSByZW5hbWUgaXQuCgpTaWduZWQtb2ZmLWJ5OiBKYW1lcyBB bG1lciA8amFtcmlhbEBnbWFpbC5jb20+Ci0tLQogZG9jL0FQSWNoYW5nZXMgICAgICAgfCA0ICsr LS0KIGZmdG9vbHMvZmZtcGVnX2RlYy5jIHwgMiArLQogbGliYXZjb2RlYy9hdmNvZGVjLmMgfCA0 ICsrLS0KIGxpYmF2Y29kZWMvYXZjb2RlYy5oIHwgNCArKy0tCiBsaWJhdmNvZGVjL3ZlcnNpb24u aCB8IDIgKy0KIDUgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RvYy9BUEljaGFuZ2VzIGIvZG9jL0FQSWNoYW5nZXMKaW5kZXggZjMw OGZkNDBhMi4uNzQ0YzUyZmYyOSAxMDA2NDQKLS0tIGEvZG9jL0FQSWNoYW5nZXMKKysrIGIvZG9j L0FQSWNoYW5nZXMKQEAgLTIsOCArMiw4IEBAIFRoZSBsYXN0IHZlcnNpb24gaW5jcmVhc2VzIG9m IGFsbCBsaWJyYXJpZXMgd2VyZSBvbiAyMDI1LTAzLTI4CiAKIEFQSSBjaGFuZ2VzLCBtb3N0IHJl Y2VudCBmaXJzdDoKIAotMjAyNS0xMi14eCAtIHh4eHh4eHh4eHggLSBsYXZjIDYyLjIyLjEwMCAt IGF2Y29kZWMuaAotICBBZGQgYXZjb2RlY19yZWNlaXZlX2ZyYW1lMigpLgorMjAyNS0xMi14eCAt IHh4eHh4eHh4eHggLSBsYXZjIDYyLjIyLjEwMSAtIGF2Y29kZWMuaAorICBBZGQgYXZjb2RlY19y ZWNlaXZlX2ZyYW1lX2ZsYWdzKCkuCiAgIEFkZCBBVl9DT0RFQ19SRUNFSVZFX0ZSQU1FX0ZMQUdf U1lOQ0hST05PVVMuCiAKIDIwMjUtMDkteHggLSB4eHh4eHh4eHh4IC0gbGF2ZmkgMTEuMTAuMTAw IC0gYnVmZmVyc3JjLmgKZGlmZiAtLWdpdCBhL2ZmdG9vbHMvZmZtcGVnX2RlYy5jIGIvZmZ0b29s cy9mZm1wZWdfZGVjLmMKaW5kZXggYTc2ZDRiMWFlOC4uNTAyMDY4NGEyOCAxMDA2NDQKLS0tIGEv ZmZ0b29scy9mZm1wZWdfZGVjLmMKKysrIGIvZmZ0b29scy9mZm1wZWdfZGVjLmMKQEAgLTc1MSw3 ICs3NTEsNyBAQCBzdGF0aWMgaW50IHBhY2tldF9kZWNvZGUoRGVjb2RlclByaXYgKmRwLCBBVlBh Y2tldCAqcGt0LCBBVkZyYW1lICpmcmFtZSkKICAgICAgICAgYXZfZnJhbWVfdW5yZWYoZnJhbWUp OwogCiAgICAgICAgIHVwZGF0ZV9iZW5jaG1hcmsoTlVMTCk7Ci0gICAgICAgIHJldCA9IGF2Y29k ZWNfcmVjZWl2ZV9mcmFtZTIoZGVjLCBmcmFtZSwgZmxhZ3MpOworICAgICAgICByZXQgPSBhdmNv ZGVjX3JlY2VpdmVfZnJhbWVfZmxhZ3MoZGVjLCBmcmFtZSwgZmxhZ3MpOwogICAgICAgICB1cGRh dGVfYmVuY2htYXJrKCJkZWNvZGVfJXMgJXMiLCB0eXBlX2Rlc2MsIGRwLT5wYXJlbnRfbmFtZSk7 CiAKICAgICAgICAgaWYgKHJldCA9PSBBVkVSUk9SKEVBR0FJTikpIHsKZGlmZiAtLWdpdCBhL2xp YmF2Y29kZWMvYXZjb2RlYy5jIGIvbGliYXZjb2RlYy9hdmNvZGVjLmMKaW5kZXggOGI0YjMwNWZj ZC4uZGU0ZTA4M2RiMSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9hdmNvZGVjLmMKKysrIGIvbGli YXZjb2RlYy9hdmNvZGVjLmMKQEAgLTcwNSw3ICs3MDUsNyBAQCBpbnQgYXZjb2RlY19pc19vcGVu KEFWQ29kZWNDb250ZXh0ICpzKQogICAgIHJldHVybiAhIXMtPmludGVybmFsOwogfQogCi1pbnQg YXR0cmlidXRlX2FsaWduX2FyZyBhdmNvZGVjX3JlY2VpdmVfZnJhbWUyKEFWQ29kZWNDb250ZXh0 ICphdmN0eCwKK2ludCBhdHRyaWJ1dGVfYWxpZ25fYXJnIGF2Y29kZWNfcmVjZWl2ZV9mcmFtZV9m bGFncyhBVkNvZGVjQ29udGV4dCAqYXZjdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFWRnJhbWUgKmZyYW1lLCB1bnNpZ25lZCBmbGFncykKIHsKICAg ICBhdl9mcmFtZV91bnJlZihmcmFtZSk7CkBAIC03MjAsNyArNzIwLDcgQEAgaW50IGF0dHJpYnV0 ZV9hbGlnbl9hcmcgYXZjb2RlY19yZWNlaXZlX2ZyYW1lMihBVkNvZGVjQ29udGV4dCAqYXZjdHgs CiAKIGludCBhdmNvZGVjX3JlY2VpdmVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZy YW1lICpmcmFtZSkKIHsKLSAgICByZXR1cm4gYXZjb2RlY19yZWNlaXZlX2ZyYW1lMihhdmN0eCwg ZnJhbWUsIDApOworICAgIHJldHVybiBhdmNvZGVjX3JlY2VpdmVfZnJhbWVfZmxhZ3MoYXZjdHgs IGZyYW1lLCAwKTsKIH0KIAogI2RlZmluZSBXUkFQX0NPTkZJRyhhbGxvd2VkX3R5cGUsIGZpZWxk LCB2YXIsIGZpZWxkX3R5cGUsIHNlbnRpbmVsX2NoZWNrKSAgIFwKZGlmZiAtLWdpdCBhL2xpYmF2 Y29kZWMvYXZjb2RlYy5oIGIvbGliYXZjb2RlYy9hdmNvZGVjLmgKaW5kZXggOTJjMDIwN2NmNi4u MWE4Zjc3YWY4MiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9hdmNvZGVjLmgKKysrIGIvbGliYXZj b2RlYy9hdmNvZGVjLmgKQEAgLTIzNzksMTAgKzIzNzksMTAgQEAgaW50IGF2Y29kZWNfc2VuZF9w YWNrZXQoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBjb25zdCBBVlBhY2tldCAqYXZwa3QpOwogICog ICAgICAgICAgICAgICAgICAgICAgICAgIEByZWYgQVZfQ09ERUNfRkxBR19SRUNPTl9GUkFNRSBm bGFnIGVuYWJsZWQKICAqIEByZXR2YWwgIm90aGVyIG5lZ2F0aXZlIGVycm9yIGNvZGUiIGxlZ2l0 aW1hdGUgZGVjb2RpbmcgZXJyb3JzCiAgKi8KLWludCBhdmNvZGVjX3JlY2VpdmVfZnJhbWUyKEFW Q29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUsIHVuc2lnbmVkIGZsYWdzKTsKK2lu dCBhdmNvZGVjX3JlY2VpdmVfZnJhbWVfZmxhZ3MoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZy YW1lICpmcmFtZSwgdW5zaWduZWQgZmxhZ3MpOwogCiAvKioKLSAqIEFsaWFzIGZvciBgYXZjb2Rl Y19yZWNlaXZlX2ZyYW1lMihhdmN0eCwgZnJhbWUsIDApYC4KKyAqIEFsaWFzIGZvciBgYXZjb2Rl Y19yZWNlaXZlX2ZyYW1lX2ZsYWdzKGF2Y3R4LCBmcmFtZSwgMClgLgogICovCiBpbnQgYXZjb2Rl Y19yZWNlaXZlX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUpOwog CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3ZlcnNpb24uaCBiL2xpYmF2Y29kZWMvdmVyc2lvbi5o CmluZGV4IDk0MTE1MTFlMDQuLjlmNTUzODFjZjEgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdmVy c2lvbi5oCisrKyBiL2xpYmF2Y29kZWMvdmVyc2lvbi5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5j bHVkZSAidmVyc2lvbl9tYWpvci5oIgogCiAjZGVmaW5lIExJQkFWQ09ERUNfVkVSU0lPTl9NSU5P UiAgMjIKLSNkZWZpbmUgTElCQVZDT0RFQ19WRVJTSU9OX01JQ1JPIDEwMAorI2RlZmluZSBMSUJB VkNPREVDX1ZFUlNJT05fTUlDUk8gMTAxCiAKICNkZWZpbmUgTElCQVZDT0RFQ19WRVJTSU9OX0lO VCAgQVZfVkVSU0lPTl9JTlQoTElCQVZDT0RFQ19WRVJTSU9OX01BSk9SLCBcCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQkFWQ09ERUNfVkVSU0lPTl9N SU5PUiwgXAotLSAKMi41Mi4wCgoKRnJvbSA4NjQ4NWU3YzBmNTI2OTQwMWRiZTAyMmU5NzY5NzY1 ODc3ZWIwOTBjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ2aW4gU2Nob2x6IDxl cGlyYXQwN0BnbWFpbC5jb20+CkRhdGU6IFdlZCwgMTkgTm92IDIwMjUgMDE6NDE6MjIgKzAxMDAK U3ViamVjdDogW1BBVENIIDIyOS8zMDRdIC5mb3JnZWpvL2xhYmVsZXI6IGNvbnNpc3RlbnRseSBx dW90ZSBzdHJpbmdzCgotLS0KIC5mb3JnZWpvL2xhYmVsZXIvbGFiZWxlci55bWwgfCAxNiArKysr KysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhLy5mb3JnZWpvL2xhYmVsZXIvbGFiZWxlci55bWwgYi8uZm9yZ2Vq by9sYWJlbGVyL2xhYmVsZXIueW1sCmluZGV4IDljNDcyMWNmMjkuLjIxMmRkMTJhOWEgMTAwNjQ0 Ci0tLSBhLy5mb3JnZWpvL2xhYmVsZXIvbGFiZWxlci55bWwKKysrIGIvLmZvcmdlam8vbGFiZWxl ci9sYWJlbGVyLnltbApAQCAtMSwzMSArMSwzMSBAQAogYXZjb2RlYzoKICAgLSBjaGFuZ2VkLWZp bGVzOgotICAgIC0gYW55LWdsb2ItdG8tYW55LWZpbGU6IGxpYmF2Y29kZWMvKioKKyAgICAtIGFu eS1nbG9iLXRvLWFueS1maWxlOiAnbGliYXZjb2RlYy8qKicKIAogYXZkZXZpY2U6CiAgIC0gY2hh bmdlZC1maWxlczoKLSAgICAtIGFueS1nbG9iLXRvLWFueS1maWxlOiBsaWJhdmRldmljZS8qKgor ICAgIC0gYW55LWdsb2ItdG8tYW55LWZpbGU6ICdsaWJhdmRldmljZS8qKicKIAogYXZmaWx0ZXI6 CiAgIC0gY2hhbmdlZC1maWxlczoKLSAgICAtIGFueS1nbG9iLXRvLWFueS1maWxlOiBsaWJhdmZp bHRlci8qKgorICAgIC0gYW55LWdsb2ItdG8tYW55LWZpbGU6ICdsaWJhdmZpbHRlci8qKicKIAog YXZmb3JtYXQ6CiAgIC0gY2hhbmdlZC1maWxlczoKLSAgICAtIGFueS1nbG9iLXRvLWFueS1maWxl OiBsaWJhdmZvcm1hdC8qKgorICAgIC0gYW55LWdsb2ItdG8tYW55LWZpbGU6ICdsaWJhdmZvcm1h dC8qKicKIAogYXZ1dGlsOgogICAtIGNoYW5nZWQtZmlsZXM6Ci0gICAgLSBhbnktZ2xvYi10by1h bnktZmlsZTogbGliYXZ1dGlsLyoqCisgICAgLSBhbnktZ2xvYi10by1hbnktZmlsZTogJ2xpYmF2 dXRpbC8qKicKIAogc3dyZXNhbXBsZToKICAgLSBjaGFuZ2VkLWZpbGVzOgotICAgIC0gYW55LWds b2ItdG8tYW55LWZpbGU6IGxpYnN3cmVzYW1wbGUvKioKKyAgICAtIGFueS1nbG9iLXRvLWFueS1m aWxlOiAnbGlic3dyZXNhbXBsZS8qKicKIAogc3dzY2FsZToKICAgLSBjaGFuZ2VkLWZpbGVzOgot ICAgIC0gYW55LWdsb2ItdG8tYW55LWZpbGU6IGxpYnN3c2NhbGUvKioKKyAgICAtIGFueS1nbG9i LXRvLWFueS1maWxlOiAnbGlic3dzY2FsZS8qKicKIAogQ0xJOgogICAtIGNoYW5nZWQtZmlsZXM6 Ci0gICAgLSBhbnktZ2xvYi10by1hbnktZmlsZTogZmZ0b29scy8qKgorICAgIC0gYW55LWdsb2It dG8tYW55LWZpbGU6ICdmZnRvb2xzLyoqJwotLSAKMi41Mi4wCgoKRnJvbSBjNTI2MjUxYThlNDE2 MjQ4YjQ0Njk2ZDM4YzJiOTFlZGViZDhlNWI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBhdmVybmUgPGF2ZXJuZTM4MUBnbWFpbC5jb20+CkRhdGU6IFNhdCwgNiBEZWMgMjAyNSAxOTo0 NToxOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjMwLzMwNF0gdnVsa2FuL3Byb3JlczogdXNlIHZr Q21kQ2xlYXJDb2xvckltYWdlCgpUaGUgVksgc3BlYyBmb3JiaWRzIHVzaW5nIGNsZWFyIGNvbW1h bmRzIG9uIFlVViBpbWFnZXMsCnNvIHdlIG5lZWQgdG8gYWxsb2NhdGUgc2VwYXJhdGUgcGVyLXBs YW5lIGltYWdlcy4KVGhpcyByZW1vdmVzIHRoZSBuZWVkIGZvciBhIHNlcGFyYXRlIHJlc2V0IHNo YWRlci4KLS0tCiBsaWJhdmNvZGVjL3Z1bGthbi9NYWtlZmlsZSAgICAgICAgICB8ICAgMSAtCiBs aWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNfcmVzZXQuY29tcCB8ICAzOCAtLS0tLS0tLS0tCiBsaWJh dmNvZGVjL3Z1bGthbl9kZWNvZGUuYyAgICAgICAgICB8ICAyOCArKysrKy0tCiBsaWJhdmNvZGVj L3Z1bGthbl9wcm9yZXMuYyAgICAgICAgICB8IDEwOSArKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tCiA0IGZpbGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDEwNyBkZWxldGlvbnMoLSkK IGRlbGV0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNfcmVzZXQuY29tcAoK ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnVsa2FuL01ha2VmaWxlIGIvbGliYXZjb2RlYy92dWxr YW4vTWFrZWZpbGUKaW5kZXggMjZlOGUxNDdjMi4uOWQxMzQ5ZTBlMyAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy92dWxrYW4vTWFrZWZpbGUKKysrIGIvbGliYXZjb2RlYy92dWxrYW4vTWFrZWZpbGUK QEAgLTE5LDcgKzE5LDYgQEAgT0JKUy0kKENPTkZJR19QUk9SRVNfUkFXX1ZVTEtBTl9IV0FDQ0VM KSArPSB2dWxrYW4vY29tbW9uLm8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2dWxrYW4vcHJvcmVzX3Jhd19pZGN0Lm8KIAogT0JKUy0kKENPTkZJR19QUk9S RVNfVlVMS0FOX0hXQUNDRUwpICs9IHZ1bGthbi9jb21tb24ubyBcCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdnVsa2FuL3Byb3Jlc19yZXNldC5vIFwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dWxrYW4vcHJvcmVzX3ZsZC5vIFwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dWxrYW4vcHJvcmVzX2lkY3Qu bwogCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z1bGthbi9wcm9yZXNfcmVzZXQuY29tcCBiL2xp YmF2Y29kZWMvdnVsa2FuL3Byb3Jlc19yZXNldC5jb21wCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA1MWNiYzZiM2Q5Li4wMDAwMDAwMDAwCi0tLSBhL2xpYmF2Y29kZWMvdnVsa2FuL3By b3Jlc19yZXNldC5jb21wCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotLyoKLSAqIFRo aXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KLSAqCi0gKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNp b24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgotICoKLSAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vu c2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK LSAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv c3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKLSAqLwotCi12b2lkIG1haW4odm9pZCkKLXsKLSAgICB1 dmVjMyBnaWQgPSBnbF9HbG9iYWxJbnZvY2F0aW9uSUQ7Ci0jaWZuZGVmIElOVEVSTEFDRUQKLSAg ICBpdmVjMiBwb3MgPSBpdmVjMihnaWQpOwotI2Vsc2UKLSAgICBpdmVjMiBwb3MgPSBpdmVjMihn aWQueCwgKGdpZC55IDw8IDEpICsgYm90dG9tX2ZpZWxkKTsKLSNlbmRpZgotCi0gICAgLyogQ2xl YXIgbHVtYSBwbGFuZSAqLwotICAgIGltYWdlU3RvcmUoZHN0WzBdLCBwb3MsIHV2ZWM0KDApKTsK LQotICAgIC8qIENsZWFyIGNocm9tYSBwbGFuZSAqLwotICAgIGlmIChnaWQueCA8IG1iX3dpZHRo IDw8ICg0IC0gbG9nMl9jaHJvbWFfdykpIHsKLSAgICAgICAgaW1hZ2VTdG9yZShkc3RbMV0sIHBv cywgdXZlYzQoMCkpOwotICAgICAgICBpbWFnZVN0b3JlKGRzdFsyXSwgcG9zLCB1dmVjNCgwKSk7 Ci0gICAgfQotCi0gICAgLyogQWxwaGEgcGxhbmUgZG9lc24ndCBuZWVkIGEgY2xlYXIgYmVjYXVz ZSBpdCBpcyBub3Qgc3BhcnNlbHkgZW5jb2RlZCAqLwotfQpkaWZmIC0tZ2l0IGEvbGliYXZjb2Rl Yy92dWxrYW5fZGVjb2RlLmMgYi9saWJhdmNvZGVjL3Z1bGthbl9kZWNvZGUuYwppbmRleCBkNmY2 ZWM4YzNiLi42NTQxNDk4NTFkIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Z1bGthbl9kZWNvZGUu YworKysgYi9saWJhdmNvZGVjL3Z1bGthbl9kZWNvZGUuYwpAQCAtMTA4OCw3ICsxMDg4LDYgQEAg c3RhdGljIHZvaWQgZnJlZV9wcm9maWxlX2RhdGEoQVZIV0ZyYW1lc0NvbnRleHQgKmh3ZmMpCiAK IGludCBmZl92a19mcmFtZV9wYXJhbXMoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkJ1ZmZlclJl ZiAqaHdfZnJhbWVzX2N0eCkKIHsKLSAgICBWa0Zvcm1hdCB2a2ZtdCA9IFZLX0ZPUk1BVF9VTkRF RklORUQ7CiAgICAgaW50IGVyciwgZGVkaWNhdGVkX2RwYjsKICAgICBBVkhXRnJhbWVzQ29udGV4 dCAqZnJhbWVzX2N0eCA9IChBVkhXRnJhbWVzQ29udGV4dCopaHdfZnJhbWVzX2N0eC0+ZGF0YTsK ICAgICBBVlZ1bGthbkZyYW1lc0NvbnRleHQgKmh3ZmMgPSBmcmFtZXNfY3R4LT5od2N0eDsKQEAg LTExMDcsNyArMTEwNiw4IEBAIGludCBmZl92a19mcmFtZV9wYXJhbXMoQVZDb2RlY0NvbnRleHQg KmF2Y3R4LCBBVkJ1ZmZlclJlZiAqaHdfZnJhbWVzX2N0eCkKICAgICAgICAgICAgIHJldHVybiBB VkVSUk9SKEVOT01FTSk7CiAKICAgICAgICAgZXJyID0gdnVsa2FuX2RlY29kZV9nZXRfcHJvZmls ZShhdmN0eCwgaHdfZnJhbWVzX2N0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmZnJhbWVzX2N0eC0+c3dfZm9ybWF0LCAmdmtmbXQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJmZyYW1lc19jdHgtPnN3X2Zvcm1hdCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaHdmYy0+Zm9ybWF0WzBdLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2YsICZkZWRpY2F0ZWRfZHBiKTsK ICAgICAgICAgaWYgKGVyciA8IDApIHsKICAgICAgICAgICAgIGF2X2ZyZWUocHJvZik7CkBAIC0x MTE5LDYgKzExMTksNyBAQCBpbnQgZmZfdmtfZnJhbWVfcGFyYW1zKEFWQ29kZWNDb250ZXh0ICph dmN0eCwgQVZCdWZmZXJSZWYgKmh3X2ZyYW1lc19jdHgpCiAKICAgICAgICAgaHdmYy0+Y3JlYXRl X3BuZXh0ID0gJnByb2YtPnByb2ZpbGVfbGlzdDsKICAgICB9IGVsc2UgeworICAgICAgICBod2Zj LT5mb3JtYXRbMF0gPSBWS19GT1JNQVRfVU5ERUZJTkVEOwogICAgICAgICBzd2l0Y2ggKGZyYW1l c19jdHgtPnN3X2Zvcm1hdCkgewogICAgICAgICBjYXNlIEFWX1BJWF9GTVRfR0JSQVAxNjoKICAg ICAgICAgICAgIC8qIFRoaXMgc2hvdWxkIGJlIG1vcmUgZWZmaWNpZW50IGZvciBkb3dubG9hZGlu ZyBhbmQgdXNpbmcgKi8KQEAgLTExNDEsNiArMTE0MiwyMCBAQCBpbnQgZmZfdmtfZnJhbWVfcGFy YW1zKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZCdWZmZXJSZWYgKmh3X2ZyYW1lc19jdHgpCiAg ICAgICAgICAgICAvKiBtcHYgaGFzIGlzc3VlcyB3aXRoIGJncjAgbWFwcGluZywgc28ganVzdCBy ZW1hcCBpdCAqLwogICAgICAgICAgICAgZnJhbWVzX2N0eC0+c3dfZm9ybWF0ID0gQVZfUElYX0ZN VF9SR0IwOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVZfUElYX0ZNVF9ZVVZB NDIyUDEwOiAvKiBQcm9SZXMgbmVlZHMgdG8gY2xlYXIgdGhlIGlucHV0IGltYWdlLCB3aGljaCBp cyBub3QgcG9zc2libGUgb24gWVVWIGZvcm1hdHMgKi8KKyAgICAgICAgY2FzZSBBVl9QSVhfRk1U X1lVVkE0NDRQMTA6CisgICAgICAgIGNhc2UgQVZfUElYX0ZNVF9ZVVZBNDIyUDEyOgorICAgICAg ICBjYXNlIEFWX1BJWF9GTVRfWVVWQTQ0NFAxMjoKKyAgICAgICAgICAgIGh3ZmMtPmZvcm1hdFsz XSA9IFZLX0ZPUk1BVF9SMTZfVU5PUk07CisgICAgICAgICAgICAvKiBmYWxsdGhyb3VnaCAqLwor ICAgICAgICBjYXNlIEFWX1BJWF9GTVRfWVVWNDIyUDEwOgorICAgICAgICBjYXNlIEFWX1BJWF9G TVRfWVVWNDQ0UDEwOgorICAgICAgICBjYXNlIEFWX1BJWF9GTVRfWVVWNDIyUDEyOgorICAgICAg ICBjYXNlIEFWX1BJWF9GTVRfWVVWNDQ0UDEyOgorICAgICAgICAgICAgaHdmYy0+Zm9ybWF0WzBd ID0gVktfRk9STUFUX1IxNl9VTk9STTsKKyAgICAgICAgICAgIGh3ZmMtPmZvcm1hdFsxXSA9IFZL X0ZPUk1BVF9SMTZfVU5PUk07CisgICAgICAgICAgICBod2ZjLT5mb3JtYXRbMl0gPSBWS19GT1JN QVRfUjE2X1VOT1JNOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAg ICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTE1MSwxMSArMTE2NiwxMCBAQCBpbnQgZmZf dmtfZnJhbWVfcGFyYW1zKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZCdWZmZXJSZWYgKmh3X2Zy YW1lc19jdHgpCiAgICAgZnJhbWVzX2N0eC0+aGVpZ2h0ID0gRkZBTElHTihhdmN0eC0+Y29kZWRf aGVpZ2h0LCAxIDw8IHBkZXNjLT5sb2cyX2Nocm9tYV9oKTsKICAgICBmcmFtZXNfY3R4LT5mb3Jt YXQgPSBBVl9QSVhfRk1UX1ZVTEtBTjsKIAotICAgIGh3ZmMtPmZvcm1hdFswXSAgICA9IHZrZm10 OwotICAgIGh3ZmMtPnRpbGluZyAgICAgICA9IFZLX0lNQUdFX1RJTElOR19PUFRJTUFMOwotICAg IGh3ZmMtPnVzYWdlICAgICAgICA9IFZLX0lNQUdFX1VTQUdFX1RSQU5TRkVSX1NSQ19CSVQgfAot ICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0lNQUdFX1VTQUdFX1NUT1JBR0VfQklUICAgICAg fAotICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0lNQUdFX1VTQUdFX1NBTVBMRURfQklUOwor ICAgIGh3ZmMtPnRpbGluZyA9IFZLX0lNQUdFX1RJTElOR19PUFRJTUFMOworICAgIGh3ZmMtPnVz YWdlICA9IFZLX0lNQUdFX1VTQUdFX1RSQU5TRkVSX1NSQ19CSVQgfAorICAgICAgICAgICAgICAg ICAgIFZLX0lNQUdFX1VTQUdFX1NUT1JBR0VfQklUICAgICAgfAorICAgICAgICAgICAgICAgICAg IFZLX0lNQUdFX1VTQUdFX1NBTVBMRURfQklUOwogCiAgICAgaWYgKHByb2YpIHsKICAgICAgICAg RkZWdWxrYW5EZWNvZGVTaGFyZWQgKmN0eDsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnVsa2Fu X3Byb3Jlcy5jIGIvbGliYXZjb2RlYy92dWxrYW5fcHJvcmVzLmMKaW5kZXggOTBiODYxMDgxNy4u MTJlNjY4NzZmMiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy92dWxrYW5fcHJvcmVzLmMKKysrIGIv bGliYXZjb2RlYy92dWxrYW5fcHJvcmVzLmMKQEAgLTI0LDcgKzI0LDYgQEAKICNpbmNsdWRlICJs aWJhdnV0aWwvdnVsa2FuX3NwaXJ2LmgiCiAKIGV4dGVybiBjb25zdCBjaGFyICpmZl9zb3VyY2Vf Y29tbW9uX2NvbXA7Ci1leHRlcm4gY29uc3QgY2hhciAqZmZfc291cmNlX3Byb3Jlc19yZXNldF9j b21wOwogZXh0ZXJuIGNvbnN0IGNoYXIgKmZmX3NvdXJjZV9wcm9yZXNfdmxkX2NvbXA7CiBleHRl cm4gY29uc3QgY2hhciAqZmZfc291cmNlX3Byb3Jlc19pZGN0X2NvbXA7CiAKQEAgLTQ2LDcgKzQ1 LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgUHJvcmVzVnVsa2FuRGVjb2RlUGljdHVyZSB7CiB9IFByb3Jl c1Z1bGthbkRlY29kZVBpY3R1cmU7CiAKIHR5cGVkZWYgc3RydWN0IFByb3Jlc1Z1bGthbkRlY29k ZUNvbnRleHQgewotICAgIEZGVnVsa2FuU2hhZGVyIHJlc2V0OwogICAgIEZGVnVsa2FuU2hhZGVy IHZsZDsKICAgICBGRlZ1bGthblNoYWRlciBpZGN0OwogCkBAIC0xNTcsMTIgKzE1NSwxNCBAQCBz dGF0aWMgaW50IHZrX3Byb3Jlc19lbmRfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogICAg IFByb3Jlc1Z1bGthbkRlY29kZUNvbnRleHQgKnB2ID0gY3R4LT5zZF9jdHg7CiAgICAgUHJvcmVz VnVsa2FuRGVjb2RlUGljdHVyZSAqcHAgPSBwci0+aHdhY2NlbF9waWN0dXJlX3ByaXZhdGU7CiAg ICAgRkZWdWxrYW5EZWNvZGVQaWN0dXJlICAgICAqdnAgPSAmcHAtPnZwOworICAgIEFWRnJhbWUg ICAgICAgICAgICAgICAgICAgICpmID0gcHItPmZyYW1lOworICAgIEFWVmtGcmFtZSAgICAgICAg ICAgICAgICAqdmtmID0gKEFWVmtGcmFtZSAqKWYtPmRhdGFbMF07CiAKICAgICBQcm9yZXNWa1Bh cmFtZXRlcnMgcGQ7CiAgICAgRkZWa0J1ZmZlciAqc2xpY2VfZGF0YSwgKm1ldGFkYXRhOwogICAg IFZrSW1hZ2VNZW1vcnlCYXJyaWVyMiBpbWdfYmFyW0FWX05VTV9EQVRBX1BPSU5URVJTXTsKICAg ICBWa0J1ZmZlck1lbW9yeUJhcnJpZXIyIGJ1Zl9iYXJbMl07Ci0gICAgaW50IG5iX2ltZ19iYXIg PSAwLCBuYl9idWZfYmFyID0gMCwgZXJyOworICAgIGludCBuYl9pbWdfYmFyID0gMCwgbmJfYnVm X2JhciA9IDAsIG5iX2ltZ3MsIGksIGVycjsKICAgICBjb25zdCBBVlBpeEZtdERlc2NyaXB0b3Ig KnBpeF9kZXNjOwogCiAgICAgaWYgKCFwcC0+c2xpY2VfbnVtKQpAQCAtMTk5LDEyICsxOTksMTEg QEAgc3RhdGljIGludCB2a19wcm9yZXNfZW5kX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCkK ICAgICBSRVQoZmZfdmtfZXhlY19zdGFydCgmY3R4LT5zLCBleGVjKSk7CiAKICAgICAvKiBQcmVw YXJlIGRlcHMgKi8KLSAgICBSRVQoZmZfdmtfZXhlY19hZGRfZGVwX2ZyYW1lKCZjdHgtPnMsIGV4 ZWMsIHByLT5mcmFtZSwKKyAgICBSRVQoZmZfdmtfZXhlY19hZGRfZGVwX2ZyYW1lKCZjdHgtPnMs IGV4ZWMsIGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWS19QSVBFTElORV9T VEFHRV8yX0FMTF9DT01NQU5EU19CSVQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBWS19QSVBFTElORV9TVEFHRV8yX0NPTVBVVEVfU0hBREVSX0JJVCkpOwogCi0gICAgUkVUKGZm X3ZrX2V4ZWNfbWlycm9yX3NlbV92YWx1ZSgmY3R4LT5zLCBleGVjLCAmdnAtPnNlbSwgJnZwLT5z ZW1fdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwci0+ZnJhbWUp KTsKKyAgICBSRVQoZmZfdmtfZXhlY19taXJyb3Jfc2VtX3ZhbHVlKCZjdHgtPnMsIGV4ZWMsICZ2 cC0+c2VtLCAmdnAtPnNlbV92YWx1ZSwgZikpOwogCiAgICAgLyogVHJhbnNmZXIgb3duZXJzaGlw IHRvIHRoZSBleGVjIGNvbnRleHQgKi8KICAgICBSRVQoZmZfdmtfZXhlY19hZGRfZGVwX2J1Zigm Y3R4LT5zLCBleGVjLCAmdnAtPnNsaWNlc19idWYsIDEsIDApKTsKQEAgLTIxMiwxMSArMjExLDQ3 IEBAIHN0YXRpYyBpbnQgdmtfcHJvcmVzX2VuZF9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgp CiAgICAgUkVUKGZmX3ZrX2V4ZWNfYWRkX2RlcF9idWYoJmN0eC0+cywgZXhlYywgJnBwLT5tZXRh ZGF0YV9idWYsIDEsIDApKTsKICAgICBwcC0+bWV0YWRhdGFfYnVmID0gTlVMTDsKIAotICAgIC8q IElucHV0IGJhcnJpZXIgKi8KLSAgICBmZl92a19mcmFtZV9iYXJyaWVyKCZjdHgtPnMsIGV4ZWMs IHByLT5mcmFtZSwgaW1nX2JhciwgJm5iX2ltZ19iYXIsCi0gICAgICAgICAgICAgICAgICAgICAg ICBWS19QSVBFTElORV9TVEFHRV8yX0FMTF9DT01NQU5EU19CSVQsCisgICAgdmtmLT5sYXlvdXRb MF0gPSBWS19JTUFHRV9MQVlPVVRfVU5ERUZJTkVEOworICAgIHZrZi0+YWNjZXNzWzBdID0gVktf QUNDRVNTXzJfTk9ORTsKKworICAgIG5iX2ltZ3MgPSBmZl92a19jb3VudF9pbWFnZXModmtmKTsK KworICAgIGlmIChwci0+Zmlyc3RfZmllbGQpIHsKKyAgICAgICAgLyogSW5wdXQgYmFycmllciAq LworICAgICAgICBmZl92a19mcmFtZV9iYXJyaWVyKCZjdHgtPnMsIGV4ZWMsIGYsIGltZ19iYXIs ICZuYl9pbWdfYmFyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX1BJUEVMSU5FX1NU QUdFXzJfQUxMX0NPTU1BTkRTX0JJVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWS19Q SVBFTElORV9TVEFHRV8yX0NMRUFSX0JJVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBW S19BQ0NFU1NfMl9UUkFOU0ZFUl9XUklURV9CSVQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVktfSU1BR0VfTEFZT1VUX0dFTkVSQUwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg VktfUVVFVUVfRkFNSUxZX0lHTk9SRUQpOworCisgICAgICAgIHZrLT5DbWRQaXBlbGluZUJhcnJp ZXIyKGV4ZWMtPmJ1ZiwgJihWa0RlcGVuZGVuY3lJbmZvKSB7CisgICAgICAgICAgICAuc1R5cGUg ICAgICAgICAgICAgICAgICAgID0gVktfU1RSVUNUVVJFX1RZUEVfREVQRU5ERU5DWV9JTkZPLAor ICAgICAgICAgICAgLnBCdWZmZXJNZW1vcnlCYXJyaWVycyAgICA9IGJ1Zl9iYXIsCisgICAgICAg ICAgICAuYnVmZmVyTWVtb3J5QmFycmllckNvdW50ID0gbmJfYnVmX2JhciwKKyAgICAgICAgICAg IC5wSW1hZ2VNZW1vcnlCYXJyaWVycyAgICAgPSBpbWdfYmFyLAorICAgICAgICAgICAgLmltYWdl TWVtb3J5QmFycmllckNvdW50ICA9IG5iX2ltZ19iYXIsCisgICAgICAgIH0pOworICAgICAgICBu Yl9pbWdfYmFyID0gbmJfYnVmX2JhciA9IDA7CisKKyAgICAgICAgLyogQ2xlYXIgdGhlIGlucHV0 IGltYWdlIHNpbmNlIHRoZSB2bGQgc2hhZGVyIGRvZXMgc3BhcnNlIHdyaXRlcywgZXhjZXB0IGZv ciBhbHBoYSAqLworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgRkZNSU4obmJfaW1ncywgMyk7ICsr aSkgeworICAgICAgICAgICAgdmstPkNtZENsZWFyQ29sb3JJbWFnZShleGVjLT5idWYsIHZrZi0+ aW1nW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWS19JTUFHRV9MQVlP VVRfR0VORVJBTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJigoVmtDbGVh ckNvbG9yVmFsdWUpIHsgMCB9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MSwgJigoVmtJbWFnZVN1YnJlc291cmNlUmFuZ2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC5hc3BlY3RNYXNrID0gVktfSU1BR0VfQVNQRUNUX0NPTE9SX0JJVCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5sZXZlbENvdW50ID0gMSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5sYXllckNvdW50ID0gMSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpOworICAgICAgICB9CisgICAg fQorCisgICAgLyogSW5wdXQgYmFycmllciwgb3Igc3luY2hyb25pemF0aW9uIGJldHdlZW4gY2xl YXIgYW5kIHZsZCBzaGFkZXIgKi8KKyAgICBmZl92a19mcmFtZV9iYXJyaWVyKCZjdHgtPnMsIGV4 ZWMsIGYsIGltZ19iYXIsICZuYl9pbWdfYmFyLAorICAgICAgICAgICAgICAgICAgICAgICAgcHIt PmZpcnN0X2ZpZWxkID8gVktfUElQRUxJTkVfU1RBR0VfMl9DTEVBUl9CSVQgOiBWS19QSVBFTElO RV9TVEFHRV8yX0FMTF9DT01NQU5EU19CSVQsCiAgICAgICAgICAgICAgICAgICAgICAgICBWS19Q SVBFTElORV9TVEFHRV8yX0NPTVBVVEVfU0hBREVSX0JJVCwKLSAgICAgICAgICAgICAgICAgICAg ICAgIFZLX0FDQ0VTU19TSEFERVJfUkVBRF9CSVQgfCBWS19BQ0NFU1NfU0hBREVSX1dSSVRFX0JJ VCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFZLX0FDQ0VTU18yX1NIQURFUl9TVE9SQUdFX1dS SVRFX0JJVCwKICAgICAgICAgICAgICAgICAgICAgICAgIFZLX0lNQUdFX0xBWU9VVF9HRU5FUkFM LAogICAgICAgICAgICAgICAgICAgICAgICAgVktfUVVFVUVfRkFNSUxZX0lHTk9SRUQpOwogCkBA IC0yNDQsMzcgKzI3OSw2IEBAIHN0YXRpYyBpbnQgdmtfcHJvcmVzX2VuZF9mcmFtZShBVkNvZGVj Q29udGV4dCAqYXZjdHgpCiAgICAgfSk7CiAgICAgbmJfaW1nX2JhciA9IG5iX2J1Zl9iYXIgPSAw OwogCi0gICAgLyogUmVzZXQgKi8KLSAgICBmZl92a19zaGFkZXJfdXBkYXRlX2ltZ19hcnJheSgm Y3R4LT5zLCBleGVjLCAmcHYtPnJlc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHByLT5mcmFtZSwgdnAtPnZpZXcub3V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVktfSU1BR0Vf TEFZT1VUX0dFTkVSQUwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVktfTlVM TF9IQU5ETEUpOwotCi0gICAgZmZfdmtfZXhlY19iaW5kX3NoYWRlcigmY3R4LT5zLCBleGVjLCAm cHYtPnJlc2V0KTsKLSAgICBmZl92a19zaGFkZXJfdXBkYXRlX3B1c2hfY29uc3QoJmN0eC0+cywg ZXhlYywgJnB2LT5yZXNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVktf U0hBREVSX1NUQUdFX0NPTVBVVEVfQklULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAwLCBzaXplb2YocGQpLCAmcGQpOwotCi0gICAgdmstPkNtZERpc3BhdGNoKGV4ZWMtPmJ1 ZiwgcHItPm1iX3dpZHRoIDw8IDEsIHByLT5tYl9oZWlnaHQgPDwgMSwgMSk7Ci0KLSAgICAvKiBJ bnB1dCBmcmFtZSBiYXJyaWVyIGFmdGVyIHJlc2V0ICovCi0gICAgZmZfdmtfZnJhbWVfYmFycmll cigmY3R4LT5zLCBleGVjLCBwci0+ZnJhbWUsIGltZ19iYXIsICZuYl9pbWdfYmFyLAotICAgICAg ICAgICAgICAgICAgICAgICAgVktfUElQRUxJTkVfU1RBR0VfMl9DT01QVVRFX1NIQURFUl9CSVQs Ci0gICAgICAgICAgICAgICAgICAgICAgICBWS19QSVBFTElORV9TVEFHRV8yX0NPTVBVVEVfU0hB REVSX0JJVCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFZLX0FDQ0VTU19TSEFERVJfV1JJVEVf QklULAotICAgICAgICAgICAgICAgICAgICAgICAgVktfSU1BR0VfTEFZT1VUX0dFTkVSQUwsCi0g ICAgICAgICAgICAgICAgICAgICAgICBWS19RVUVVRV9GQU1JTFlfSUdOT1JFRCk7Ci0KLSAgICB2 ay0+Q21kUGlwZWxpbmVCYXJyaWVyMihleGVjLT5idWYsICYoVmtEZXBlbmRlbmN5SW5mbykgewot ICAgICAgICAuc1R5cGUgICAgICAgICAgICAgICAgICAgID0gVktfU1RSVUNUVVJFX1RZUEVfREVQ RU5ERU5DWV9JTkZPLAotICAgICAgICAucEJ1ZmZlck1lbW9yeUJhcnJpZXJzICAgID0gYnVmX2Jh ciwKLSAgICAgICAgLmJ1ZmZlck1lbW9yeUJhcnJpZXJDb3VudCA9IG5iX2J1Zl9iYXIsCi0gICAg ICAgIC5wSW1hZ2VNZW1vcnlCYXJyaWVycyAgICAgPSBpbWdfYmFyLAotICAgICAgICAuaW1hZ2VN ZW1vcnlCYXJyaWVyQ291bnQgID0gbmJfaW1nX2JhciwKLSAgICB9KTsKLSAgICBuYl9pbWdfYmFy ID0gbmJfYnVmX2JhciA9IDA7Ci0KICAgICAvKiBFbnRyb3B5IGRlY29kZSAqLwogICAgIGZmX3Zr X3NoYWRlcl91cGRhdGVfZGVzY19idWZmZXIoJmN0eC0+cywgZXhlYywgJnB2LT52bGQsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLApAQCAtMjg3LDcgKzI5MSw3 IEBAIHN0YXRpYyBpbnQgdmtfcHJvcmVzX2VuZF9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcC0+bWJfcGFyYW1zX3N6LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVktfRk9STUFUX1VOREVGSU5FRCk7 CiAgICAgZmZfdmtfc2hhZGVyX3VwZGF0ZV9pbWdfYXJyYXkoJmN0eC0+cywgZXhlYywgJnB2LT52 bGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHItPmZyYW1lLCB2cC0+dmll dy5vdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZiwgdnAtPnZpZXcub3V0 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDIsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVktfSU1BR0VfTEFZT1VUX0dFTkVSQUwsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVktfTlVMTF9IQU5ETEUpOwpAQCAtMzAxLDcgKzMwNSw3 IEBAIHN0YXRpYyBpbnQgdmtfcHJvcmVzX2VuZF9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgp CiAgICAgICAgICAgICAgICAgICAgIDMgKyAhIXByLT5hbHBoYV9pbmZvKTsKIAogICAgIC8qIFN5 bmNocm9uaXplIHZsZCBhbmQgaWRjdCBzaGFkZXJzICovCi0gICAgZmZfdmtfZnJhbWVfYmFycmll cigmY3R4LT5zLCBleGVjLCBwci0+ZnJhbWUsIGltZ19iYXIsICZuYl9pbWdfYmFyLAorICAgIGZm X3ZrX2ZyYW1lX2JhcnJpZXIoJmN0eC0+cywgZXhlYywgZiwgaW1nX2JhciwgJm5iX2ltZ19iYXIs CiAgICAgICAgICAgICAgICAgICAgICAgICBWS19QSVBFTElORV9TVEFHRV8yX0NPTVBVVEVfU0hB REVSX0JJVCwKICAgICAgICAgICAgICAgICAgICAgICAgIFZLX1BJUEVMSU5FX1NUQUdFXzJfQ09N UFVURV9TSEFERVJfQklULAogICAgICAgICAgICAgICAgICAgICAgICAgVktfQUNDRVNTX1NIQURF Ul9SRUFEX0JJVCB8IFZLX0FDQ0VTU19TSEFERVJfV1JJVEVfQklULApAQCAtMzM5LDcgKzM0Myw3 IEBAIHN0YXRpYyBpbnQgdmtfcHJvcmVzX2VuZF9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcC0+bWJfcGFyYW1zX3N6LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVktfRk9STUFUX1VOREVGSU5FRCk7 CiAgICAgZmZfdmtfc2hhZGVyX3VwZGF0ZV9pbWdfYXJyYXkoJmN0eC0+cywgZXhlYywgJnB2LT5p ZGN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByLT5mcmFtZSwgdnAtPnZp ZXcub3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYsIHZwLT52aWV3Lm91 dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFZLX0lNQUdFX0xBWU9VVF9HRU5FUkFMLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFZLX05VTExfSEFORExFKTsKQEAgLTQzNCw3ICs0Mzgs NiBAQCBzdGF0aWMgdm9pZCB2a19kZWNvZGVfcHJvcmVzX3VuaW5pdChGRlZ1bGthbkRlY29kZVNo YXJlZCAqY3R4KQogewogICAgIFByb3Jlc1Z1bGthbkRlY29kZUNvbnRleHQgKnB2ID0gY3R4LT5z ZF9jdHg7CiAKLSAgICBmZl92a19zaGFkZXJfZnJlZSgmY3R4LT5zLCAmcHYtPnJlc2V0KTsKICAg ICBmZl92a19zaGFkZXJfZnJlZSgmY3R4LT5zLCAmcHYtPnZsZCk7CiAgICAgZmZfdmtfc2hhZGVy X2ZyZWUoJmN0eC0+cywgJnB2LT5pZGN0KTsKIApAQCAtNDc4LDIyICs0ODEsNiBAQCBzdGF0aWMg aW50IHZrX2RlY29kZV9wcm9yZXNfaW5pdChBVkNvZGVjQ29udGV4dCAqYXZjdHgpCiAKICAgICBj dHgtPnNkX2N0eF9mcmVlID0gdmtfZGVjb2RlX3Byb3Jlc191bmluaXQ7CiAKLSAgICBkZXNjX3Nl dCA9IChGRlZ1bGthbkRlc2NyaXB0b3JTZXRCaW5kaW5nIFtdKSB7Ci0gICAgICAgIHsKLSAgICAg ICAgICAgIC5uYW1lICAgICAgID0gImRzdCIsCi0gICAgICAgICAgICAudHlwZSAgICAgICA9IFZL X0RFU0NSSVBUT1JfVFlQRV9TVE9SQUdFX0lNQUdFLAotICAgICAgICAgICAgLmRpbWVuc2lvbnMg PSAyLAotICAgICAgICAgICAgLm1lbV9sYXlvdXQgPSBmZl92a19zaGFkZXJfcmVwX2ZtdChvdXRf ZnJhbWVzX2N0eC0+c3dfZm9ybWF0LAotICAgICAgICAgICAgRkZfVktfUkVQX05BVElWRSksCi0g ICAgICAgICAgICAubWVtX3F1YWxpICA9ICJ3cml0ZW9ubHkiLAotICAgICAgICAgICAgLmVsZW1z ICAgICAgPSBhdl9waXhfZm10X2NvdW50X3BsYW5lcyhvdXRfZnJhbWVzX2N0eC0+c3dfZm9ybWF0 KSwKLSAgICAgICAgICAgIC5zdGFnZXMgICAgID0gVktfU0hBREVSX1NUQUdFX0NPTVBVVEVfQklU LAotICAgICAgICB9LAotICAgIH07Ci0gICAgUkVUKGluaXRfc2hhZGVyKGF2Y3R4LCAmY3R4LT5z LCAmY3R4LT5leGVjX3Bvb2wsIHNwdiwgJnB2LT5yZXNldCwKLSAgICAgICAgICAgICAgICAgICAg InByb3Jlc19kZWNfcmVzZXQiLCAibWFpbiIsIGRlc2Nfc2V0LCAxLAotICAgICAgICAgICAgICAg ICAgICBmZl9zb3VyY2VfcHJvcmVzX3Jlc2V0X2NvbXAsIDB4MDgwODAxLCBwci0+ZnJhbWVfdHlw ZSAhPSAwKSk7Ci0KICAgICBkZXNjX3NldCA9IChGRlZ1bGthbkRlc2NyaXB0b3JTZXRCaW5kaW5n IFtdKSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIC5uYW1lICAgICAgICA9ICJzbGljZV9vZmZz ZXRzX2J1ZiIsCi0tIAoyLjUyLjAKCgpGcm9tIGQ3OTczNTY3YWRmNmQyM2VhZDFmOGM3MTU4NzIw MjgyZWM0MTZmMGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9SPUMz PUE5bWk9MjBEZW5pcy1Db3VybW9udD89IDxyZW1pQHJlbWxhYi5uZXQ+CkRhdGU6IFNhdCwgOCBK dW4gMjAyNCAyMzowODoyMSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjMxLzMwNF0gbGF2Yy9tcHZf dW5xdWFudGl6ZTogUi1WIFYgSC4yNjMgRENUIHVucXVhbnRpemUKClNwYWNlbWlUIFg2MDoKZGN0 X3VucXVhbnRpemVfaDI2M19pbnRlcl9jOiAgICAgICAgICAgICAgICAgICAgICAgICAgIDQxNy44 ICggMS4wMHgpCmRjdF91bnF1YW50aXplX2gyNjNfaW50ZXJfcnZ2X2kzMjogICAgICAgICAgICAg ICAgICAgICAgNjYuMCAoIDYuMzN4KQpkY3RfdW5xdWFudGl6ZV9oMjYzX2ludHJhX2M6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgMTQwLjIgKCAxLjAweCkKZGN0X3VucXVhbnRpemVfaDI2M19p bnRyYV9ydnZfaTMyOiAgICAgICAgICAgICAgICAgICAgICA2Ny43ICggMi4wN3gpCgpOb3RlIHRo YXQgdGhlIEMgYmVuY2htYXJrcyBhcmUgbm90IHN0YWJsZSwgZGVwZW5kaW5nIGhlYXZpbHkgb24g dGhlCm51bWJlciBvZiBjb2VmZmljaWVudHMgcGlja2VkIGJ5IHRoZSBSTkcuIFRoZSBSLVYgViBi ZW5jaG1hcmtzIGFyZQpob3dldmVyIHZlcnkgc3RhYmxlIGFuZCBnZW5lcmFsbHkgYmV0dGVyIHRo YW4gQydzLgotLS0KIGxpYmF2Y29kZWMvbXBlZ3ZpZGVvX3VucXVhbnRpemUuYyB8ICAyICsKIGxp YmF2Y29kZWMvbXBlZ3ZpZGVvX3VucXVhbnRpemUuaCB8ICAxICsKIGxpYmF2Y29kZWMvcmlzY3Yv TWFrZWZpbGUgICAgICAgICB8ICAyICsKIGxpYmF2Y29kZWMvcmlzY3YvbXBlZ3ZpZGVvX2luaXQu YyB8IDYyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxpYmF2Y29kZWMvcmlzY3Yv bXBlZ3ZpZGVvX3J2di5TICB8IDUzICsrKysrKysrKysrKysrKysrKysrKysrKysrCiA1IGZpbGVz IGNoYW5nZWQsIDEyMCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZjb2Rl Yy9yaXNjdi9tcGVndmlkZW9faW5pdC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZjb2RlYy9y aXNjdi9tcGVndmlkZW9fcnZ2LlMKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL21wZWd2aWRlb191 bnF1YW50aXplLmMgYi9saWJhdmNvZGVjL21wZWd2aWRlb191bnF1YW50aXplLmMKaW5kZXggOTI5 N2M4MGI0Ny4uMDU0ZjVjMDE4NyAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9tcGVndmlkZW9fdW5x dWFudGl6ZS5jCisrKyBiL2xpYmF2Y29kZWMvbXBlZ3ZpZGVvX3VucXVhbnRpemUuYwpAQCAtMjgw LDYgKzI4MCw4IEBAIGF2X2NvbGQgdm9pZCBmZl9tcHZfdW5xdWFudGl6ZV9pbml0KE1QVlVucXVh bnREU1BDb250ZXh0ICpzLAogICAgIGZmX21wdl91bnF1YW50aXplX2luaXRfYXJtKHMsIGJpdGV4 YWN0KTsKICNlbGlmIEFSQ0hfUFBDCiAgICAgZmZfbXB2X3VucXVhbnRpemVfaW5pdF9wcGMocywg Yml0ZXhhY3QpOworI2VsaWYgQVJDSF9SSVNDVgorICAgIGZmX21wdl91bnF1YW50aXplX2luaXRf cmlzY3YocywgYml0ZXhhY3QpOwogI2VsaWYgQVJDSF9YODYKICAgICBmZl9tcHZfdW5xdWFudGl6 ZV9pbml0X3g4NihzLCBiaXRleGFjdCk7CiAjZWxpZiBBUkNIX01JUFMKZGlmZiAtLWdpdCBhL2xp YmF2Y29kZWMvbXBlZ3ZpZGVvX3VucXVhbnRpemUuaCBiL2xpYmF2Y29kZWMvbXBlZ3ZpZGVvX3Vu cXVhbnRpemUuaAppbmRleCAxYTQzZjQ2N2M2Li41MDMxOWQ3YWQzIDEwMDY0NAotLS0gYS9saWJh dmNvZGVjL21wZWd2aWRlb191bnF1YW50aXplLmgKKysrIGIvbGliYXZjb2RlYy9tcGVndmlkZW9f dW5xdWFudGl6ZS5oCkBAIC01NSw2ICs1NSw3IEBAIHZvaWQgZmZfbXB2X3VucXVhbnRpemVfaW5p dChNUFZVbnF1YW50RFNQQ29udGV4dCAqcywKIHZvaWQgZmZfbXB2X3VucXVhbnRpemVfaW5pdF9h cm0gKE1QVlVucXVhbnREU1BDb250ZXh0ICpzLCBpbnQgYml0ZXhhY3QpOwogdm9pZCBmZl9tcHZf dW5xdWFudGl6ZV9pbml0X25lb24oTVBWVW5xdWFudERTUENvbnRleHQgKnMsIGludCBiaXRleGFj dCk7CiB2b2lkIGZmX21wdl91bnF1YW50aXplX2luaXRfcHBjIChNUFZVbnF1YW50RFNQQ29udGV4 dCAqcywgaW50IGJpdGV4YWN0KTsKK3ZvaWQgZmZfbXB2X3VucXVhbnRpemVfaW5pdF9yaXNjdihN UFZVbnF1YW50RFNQQ29udGV4dCAqcywgaW50IGJpdGV4YWN0KTsKIHZvaWQgZmZfbXB2X3VucXVh bnRpemVfaW5pdF94ODYgKE1QVlVucXVhbnREU1BDb250ZXh0ICpzLCBpbnQgYml0ZXhhY3QpOwog dm9pZCBmZl9tcHZfdW5xdWFudGl6ZV9pbml0X21pcHMoTVBWVW5xdWFudERTUENvbnRleHQgKnMs IGludCBiaXRleGFjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBxX3Nj YWxlX3R5cGUpOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9yaXNjdi9NYWtlZmlsZSBiL2xpYmF2 Y29kZWMvcmlzY3YvTWFrZWZpbGUKaW5kZXggNzM2Zjg3M2ZlOC4uOGMxZjJmNWY2ZSAxMDA2NDQK LS0tIGEvbGliYXZjb2RlYy9yaXNjdi9NYWtlZmlsZQorKysgYi9saWJhdmNvZGVjL3Jpc2N2L01h a2VmaWxlCkBAIC01MSw2ICs1MSw4IEBAIE9CSlMtJChDT05GSUdfTFBDKSArPSByaXNjdi9scGNf aW5pdC5vCiBSVlYtT0JKUy0kKENPTkZJR19MUEMpICs9IHJpc2N2L2xwY19ydnYubwogT0JKUy0k KENPTkZJR19NRV9DTVApICs9IHJpc2N2L21lX2NtcF9pbml0Lm8KIFJWVi1PQkpTLSQoQ09ORklH X01FX0NNUCkgKz0gcmlzY3YvbWVfY21wX3J2di5vCitPQkpTLSQoQ09ORklHX01QRUdWSURFTykg Kz0gcmlzY3YvbXBlZ3ZpZGVvX2luaXQubworUlZWLU9CSlMtJChDT05GSUdfTVBFR1ZJREVPKSAr PSByaXNjdi9tcGVndmlkZW9fcnZ2Lm8KIE9CSlMtJChDT05GSUdfTVBFR1ZJREVPRU5DRFNQKSAr PSByaXNjdi9tcGVndmlkZW9lbmNkc3BfaW5pdC5vCiBSVlYtT0JKUy0kKENPTkZJR19NUEVHVklE RU9FTkNEU1ApICs9IHJpc2N2L21wZWd2aWRlb2VuY2RzcF9ydnYubwogT0JKUy0kKENPTkZJR19P UFVTX0RFQ09ERVIpICs9IHJpc2N2L29wdXNkc3BfaW5pdC5vCmRpZmYgLS1naXQgYS9saWJhdmNv ZGVjL3Jpc2N2L21wZWd2aWRlb19pbml0LmMgYi9saWJhdmNvZGVjL3Jpc2N2L21wZWd2aWRlb19p bml0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDE4YjkxZjQzNwot LS0gL2Rldi9udWxsCisrKyBiL2xpYmF2Y29kZWMvcmlzY3YvbXBlZ3ZpZGVvX2luaXQuYwpAQCAt MCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMjIgUsOpbWkgRGVuaXMtQ291cm1v bnQuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgorICoKKyAqIEZGbXBlZyBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUg RnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG aWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNpbmNsdWRlICJj b25maWcuaCIKKworI2luY2x1ZGUgImxpYmF2dXRpbC9hdHRyaWJ1dGVzLmgiCisjaW5jbHVkZSAi bGliYXZ1dGlsL2NwdS5oIgorI2luY2x1ZGUgImxpYmF2Y29kZWMvbXBlZ3ZpZGVvLmgiCisjaW5j bHVkZSAibGliYXZjb2RlYy9tcGVndmlkZW9fdW5xdWFudGl6ZS5oIgorCit2b2lkIGZmX2gyNjNf ZGN0X3VucXVhbnRpemVfaW50cmFfcnZ2KGNvbnN0IE1QVkNvbnRleHQgKnMsIGludDE2X3QgKmJs b2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHJkaWZmX3QgbGVu LCBpbnQgcXNjYWxlLCBpbnQgYWljKTsKK3ZvaWQgZmZfaDI2M19kY3RfdW5xdWFudGl6ZV9pbnRl cl9ydnYoY29uc3QgTVBWQ29udGV4dCAqcywgaW50MTZfdCAqYmxvY2ssCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBsZW4sIGludCBxc2NhbGUpOworCitz dGF0aWMgdm9pZCBkY3RfdW5xdWFudGl6ZV9oMjYzX2ludHJhX3J2dihjb25zdCBNUFZDb250ZXh0 ICpzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCAq YmxvY2ssIGludCBuLCBpbnQgcXNjYWxlKQoreworICAgIGlmICghcy0+aDI2M19haWMpCisgICAg ICAgIGJsb2NrWzBdICo9IChuIDwgNCkgPyBzLT55X2RjX3NjYWxlIDogcy0+Y19kY19zY2FsZTsK KworICAgIG4gPSBzLT5hY19wcmVkID8gNjMKKyAgICAgICAgICAgICAgICAgICA6IHMtPmludHJh X3NjYW50YWJsZS5yYXN0ZXJfZW5kW3MtPmJsb2NrX2xhc3RfaW5kZXhbbl1dOworICAgIGZmX2gy NjNfZGN0X3VucXVhbnRpemVfaW50cmFfcnZ2KHMsIGJsb2NrLCBuLCBxc2NhbGUsIHMtPmgyNjNf YWljKTsKK30KKworc3RhdGljIHZvaWQgZGN0X3VucXVhbnRpemVfaDI2M19pbnRlcl9ydnYoY29u c3QgTVBWQ29udGV4dCAqcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludDE2X3QgKmJsb2NrLCBpbnQgbiwgaW50IHFzY2FsZSkKK3sKKyAgICBuID0gcy0+aW50 ZXJfc2NhbnRhYmxlLnJhc3Rlcl9lbmRbcy0+YmxvY2tfbGFzdF9pbmRleFtuXV07CisgICAgZmZf aDI2M19kY3RfdW5xdWFudGl6ZV9pbnRlcl9ydnYocywgYmxvY2ssIG4sIHFzY2FsZSk7Cit9CisK K2F2X2NvbGQKK3ZvaWQgZmZfbXB2X3VucXVhbnRpemVfaW5pdF9yaXNjdihNUFZVbnF1YW50RFNQ Q29udGV4dCAqYywgaW50IGJpdGV4YWN0KQoreworI2lmIEhBVkVfUlZWCisgICAgaW50IGZsYWdz ID0gYXZfZ2V0X2NwdV9mbGFncygpOworCisgICAgaWYgKChmbGFncyAmIEFWX0NQVV9GTEFHX1JW Vl9JMzIpICYmIChmbGFncyAmIEFWX0NQVV9GTEFHX1JWQikpIHsKKyAgICAgICAgYy0+ZGN0X3Vu cXVhbnRpemVfaDI2M19pbnRyYSA9IGRjdF91bnF1YW50aXplX2gyNjNfaW50cmFfcnZ2OworICAg ICAgICBjLT5kY3RfdW5xdWFudGl6ZV9oMjYzX2ludGVyID0gZGN0X3VucXVhbnRpemVfaDI2M19p bnRlcl9ydnY7CisgICAgfQorI2VuZGlmCit9CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Jpc2N2 L21wZWd2aWRlb19ydnYuUyBiL2xpYmF2Y29kZWMvcmlzY3YvbXBlZ3ZpZGVvX3J2di5TCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjUzMTI0MTNkYjQKLS0tIC9kZXYvbnVs bAorKysgYi9saWJhdmNvZGVjL3Jpc2N2L21wZWd2aWRlb19ydnYuUwpAQCAtMCwwICsxLDUzIEBA CisvKgorICogQ29weXJpZ2h0IMKpIDIwMjQgUsOpbWkgRGVuaXMtQ291cm1vbnQuCisgKgorICog VGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy c2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisgKgorICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGlj ZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy ZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg Qm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNpbmNsdWRlICJsaWJhdnV0aWwvcmlz Y3YvYXNtLlMiCisKK2Z1bmMgZmZfaDI2M19kY3RfdW5xdWFudGl6ZV9pbnRyYV9ydnYKKyAgICAg ICAgbHBhZCAgICAwCisgICAgICAgIGFkZGkgICAgYTEsIGExLCAyCisgICAgICAgIGJlcXogICAg YTQsIDFmCisgICAgICAgIHNsbGkgICAgYTMsIGEzLCAxCisgICAgICAgIG12ICAgICAgYTQsIHpl cm8KKyAgICAgICAgaiAgICAgICAyZgorZW5kZnVuYworCitmdW5jIGZmX2gyNjNfZGN0X3VucXVh bnRpemVfaW50ZXJfcnZ2LCB6dmUzMngsIHpiYQorICAgICAgICBscGFkICAgIDAKKyAgICAgICAg YWRkaSAgICBhMiwgYTIsIDEKKzE6CisgICAgICAgIGFkZGkgICAgYTQsIGEzLCAtMQorICAgICAg ICBzbGxpICAgIGEzLCBhMywgMQorICAgICAgICBvcmkgICAgIGE0LCBhNCwgMQorMjoKKyAgICAg ICAgdnNldHZsaSB0MCwgYTIsIGUxNiwgbTgsIHRhLCBtdQorICAgICAgICB2bGUxNi52IHY4LCAo YTEpCisgICAgICAgIHN1YiAgICAgYTIsIGEyLCB0MAorICAgICAgICB2bXYudi54IHYxNiwgYTQK KyAgICAgICAgdm1zbHQudmkgICAgdjAsIHY4LCAwCisgICAgICAgIHZuZWcudiAgdjE2LCB2MTYs IHYwLnQKKyAgICAgICAgdm1zbmUudmkgICAgdjAsIHY4LCAwCisgICAgICAgIHZtYWRkLnZ4ICAg IHY4LCBhMywgdjE2LCB2MC50CisgICAgICAgIHZzZTE2LnYgdjgsIChhMSkKKyAgICAgICAgc2gx YWRkICBhMSwgdDAsIGExCisgICAgICAgIGJuZXogICAgYTIsIDJiCisKKyAgICAgICAgcmV0Citl bmRmdW5jCi0tIAoyLjUyLjAKCgpGcm9tIDg4YjBkZDQ1NTUzM2M3NmM2ZTJiNjM3ZTE4ZTNhNjYz YWI0OTE5ZjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9SPUMzPUE5 bWk9MjBEZW5pcy1Db3VybW9udD89IDxyZW1pQHJlbWxhYi5uZXQ+CkRhdGU6IFNhdCwgMjkgTm92 IDIwMjUgMTc6NDY6NTUgKzAyMDAKU3ViamVjdDogW1BBVENIIDIzMi8zMDRdIGxhdmMvaDI2NGlk Y3Q6IFItViBWIDgtYml0IGgyNjRfbHVtYV9kY19kZXF1YW50X2lkY3QKClRoaXMgZG9lcyBub3Qg aW1wcm92ZSBwZXJmb3JtYW5jZSB3aXRoIGN1cnJlbnQgaGFyZHdhcmUgZHVlIHRvIHRoZSBwb29y CnBlcmZvcm1hbmNlIG9mIHNlZ21lbnRlZCBhY2Nlc3Nlcy4gUGVyZm9ybWFuY2Ugc2hvdWxkIGJl IHNsaWdodGx5IGJldHRlcgp3aXRoIGV4cGVuc2l2ZSBvciBuZWFyLWZ1dHVyZSBoYXJkd2FyZSB0 aGF0IEkgZG9uJ3QgaGF2ZSwgaG93ZXZlciBpdCBpcwpzdGlsbCBsaW1pdGVkIGJ5IHR3byBvdGhl ciBmYWN0b3JzOgotIFRoZXJlIGFyZSBvbmx5IDQgZWxlbWVudHMuCi0gVGhlIGZpbmFsIHN0b3Jl cyBhcmUgbmVjZXNzYXJpbHkgaW5kZXhlZCBhbmQgaGl0IG11bHRpcGxlIGNhY2hlIGxpbmVzLAog IHRodXMgYXMgc2xvdyBhcyBzY2FsYXIuCi0tLQogbGliYXZjb2RlYy9yaXNjdi9NYWtlZmlsZSAg ICAgICAgICAgICAgIHwgIDIgKy0KIGxpYmF2Y29kZWMvcmlzY3YvaDI2NGRzcF9pbml0LmMgICAg ICAgICB8ICA3ICstCiBsaWJhdmNvZGVjL3Jpc2N2L2gyNjRpZGN0X2RlcXVhbnRfcnZ2LlMgfCA4 NiArKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZjb2RlYy9yaXNj di9oMjY0aWRjdF9kZXF1YW50X3J2di5TCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9yaXNjdi9N YWtlZmlsZSBiL2xpYmF2Y29kZWMvcmlzY3YvTWFrZWZpbGUKaW5kZXggOGMxZjJmNWY2ZS4uMzgw MjFmODczZiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9yaXNjdi9NYWtlZmlsZQorKysgYi9saWJh dmNvZGVjL3Jpc2N2L01ha2VmaWxlCkBAIC0zMiw3ICszMiw3IEBAIE9CSlMtJChDT05GSUdfSDI2 NENIUk9NQSkgKz0gcmlzY3YvaDI2NF9jaHJvbWFfaW5pdF9yaXNjdi5vCiBSVlYtT0JKUy0kKENP TkZJR19IMjY0Q0hST01BKSArPSByaXNjdi9oMjY0X21jX2Nocm9tYS5vCiBPQkpTLSQoQ09ORklH X0gyNjREU1ApICs9IHJpc2N2L2gyNjRkc3BfaW5pdC5vCiBSVlYtT0JKUy0kKENPTkZJR19IMjY0 RFNQKSArPSByaXNjdi9oMjY0YWRkcHhfcnZ2Lm8gcmlzY3YvaDI2NGRzcF9ydnYubyBcCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByaXNjdi9oMjY0aWRjdF9ydnYubworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmlzY3YvaDI2NGlkY3RfcnZ2Lm8gcmlzY3YvaDI2NGlkY3Rf ZGVxdWFudF9ydnYubwogT0JKUy0kKENPTkZJR19IMjY0UVBFTCkgKz0gcmlzY3YvaDI2NHFwZWxf aW5pdC5vCiBSVlYtT0JKUy0kKENPTkZJR19IMjY0UVBFTCkgKz0gcmlzY3YvaDI2NHFwZWxfcnZ2 Lm8KIE9CSlMtJChDT05GSUdfSEVWQ19ERUNPREVSKSArPSByaXNjdi9oZXZjZHNwX2luaXQubwpk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9yaXNjdi9oMjY0ZHNwX2luaXQuYyBiL2xpYmF2Y29kZWMv cmlzY3YvaDI2NGRzcF9pbml0LmMKaW5kZXggZjIxNDQ4NmJiZS4uN2FiOGQzODY5OCAxMDA2NDQK LS0tIGEvbGliYXZjb2RlYy9yaXNjdi9oMjY0ZHNwX2luaXQuYworKysgYi9saWJhdmNvZGVjL3Jp c2N2L2gyNjRkc3BfaW5pdC5jCkBAIC04MCw3ICs4MCw4IEBAIHZvaWQgZmZfaDI2NF9pZGN0NF9h ZGQ4XyMjZGVwdGgjI19ydnYodWludDhfdCAqKmQsIGNvbnN0IGludCAqc29mZnNldCwgXAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90IG5uemNbNSAq IDhdKTsgXAogdm9pZCBmZl9oMjY0X2lkY3Q0X2FkZDhfNDIyXyMjZGVwdGgjI19ydnYodWludDhf dCAqKmQsIGNvbnN0IGludCAqc29mZnNldCwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50MTZfdCAqcywgaW50IHN0cmlkZSwgXAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCBubnpjWzUgKiA4XSk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90IG5u emNbNSAqIDhdKTsgXAordm9pZCBmZl9oMjY0X2x1bWFfZGNfZGVxdWFudF9pZGN0XyMjZGVwdGgj I19ydnYoaW50MTZfdCAqZCwgaW50MTZfdCAqcywgaW50IHEpOwogCiBJRENUX0RFUFRIKDgpCiBJ RENUX0RFUFRIKDkpCkBAIC0xNzQsNiArMTc1LDEwIEBAIGF2X2NvbGQgdm9pZCBmZl9oMjY0ZHNw X2luaXRfcmlzY3YoSDI2NERTUENvbnRleHQgKmRzcCwgY29uc3QgaW50IGJpdF9kZXB0aCwKICAg ICAgICAgICAgICAgICAgICAgZHNwLT5oMjY0X2lkY3RfYWRkOCAgID0gZmZfaDI2NF9pZGN0NF9h ZGQ4XzQyMl84X3J2djsKICMgIGVuZGlmCiAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRz cC0+aDI2NF9sdW1hX2RjX2RlcXVhbnRfaWRjdCA9CisgICAgICAgICAgICAgICAgZmZfaDI2NF9s dW1hX2RjX2RlcXVhbnRfaWRjdF84X3J2djsKKwogICAgICAgICAgICAgaWYgKGZsYWdzICYgQVZf Q1BVX0ZMQUdfUlZWX0k2NCkgewogICAgICAgICAgICAgICAgIGRzcC0+aDI2NF9hZGRfcGl4ZWxz OF9jbGVhciA9IGZmX2gyNjRfYWRkX3BpeGVsczhfOF9ydnY7CiAgICAgICAgICAgICAgICAgaWYg KGZsYWdzICYgQVZfQ1BVX0ZMQUdfUlZCKQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9yaXNjdi9o MjY0aWRjdF9kZXF1YW50X3J2di5TIGIvbGliYXZjb2RlYy9yaXNjdi9oMjY0aWRjdF9kZXF1YW50 X3J2di5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjczYTY4YTI4YWIK LS0tIC9kZXYvbnVsbAorKysgYi9saWJhdmNvZGVjL3Jpc2N2L2gyNjRpZGN0X2RlcXVhbnRfcnZ2 LlMKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt Mi1DbGF1c2UKKyAqCisgKiBDb3B5cmlnaHQgwqkgMjAyNSBSw6ltaSBEZW5pcy1Db3VybW9udC4K KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlz dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0 IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n IGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11 c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0 IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1l bnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCisgKiBBTkQgQU5ZIEVYUFJF U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U IFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFCisgKiBMSUFCTEUg Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCisgKiBQT1NTSUJJTElU WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAibGliYXZ1dGlsL3Jpc2N2L2FzbS5T IgorCitjb25zdCBvZmZzZXRzXzgsIDEKKyAgICAgICAgLnNob3J0IDAsIDY0LCAyNTYsIDMyMAor ZW5kY29uc3QKKworZnVuYyBmZl9oMjY0X2x1bWFfZGNfZGVxdWFudF9pZGN0XzhfcnZ2LCB6dmUz MngKKyAgICAgICAgbHBhZCAgIDAKKyAgICAgICAgY3Nyd2kgIHZ4cm0sIDAKKyAgICAgICAgdnNl dGl2bGkgICAgemVybywgNCwgZTE2LCBtZjIsIHRhLCBtYQorICAgICAgICB2bHNlZzRlMTYudiB2 OCwgKGExKQorICAgICAgICB2d2FkZC52diAgICB2MTYsIHY4LCB2OSAgICAgIyB6MAorICAgICAg ICBhZGRpICAgIHQxLCBzcCwgNCAqIDQgKiAtMworICAgICAgICB2d2FkZC52diAgICB2MTksIHYx MCwgdjExICAgIyB6MworICAgICAgICBhZGRpICAgIHQyLCBzcCwgNCAqIDQgKiAtMgorICAgICAg ICB2d3N1Yi52diAgICB2MTcsIHY4LCB2OSAgICAgIyB6MQorICAgICAgICBhZGRpICAgIHQzLCBz cCwgNCAqIDQgKiAtMQorICAgICAgICB2d3N1Yi52diAgICB2MTgsIHYxMCwgdjExICAgIyB6Mgor ICAgICAgICB2c2V0dmxpIHplcm8sIHplcm8sIGUzMiwgbTEsIHRhLCBtYQorICAgICAgICB2YWRk LnZ2IHY4LCB2MTYsIHYxOQorICAgICAgICBhZGRpICAgIHNwLCBzcCwgNCAqIDQgKiAtNAorICAg ICAgICB2c3ViLnZ2IHY5LCB2MTYsIHYxOQorICAgICAgICB2c3ViLnZ2IHYxMCwgdjE3LCB2MTgK KyAgICAgICAgdmFkZC52diB2MTEsIHYxNywgdjE4CisgICAgICAgIHZzc2VnNGUzMi52IHY4LCAo c3ApCisgICAgICAgIHZsZTMyLnYgdjgsIChzcCkKKyAgICAgICAgdmxlMzIudiB2OSwgKHQxKQor ICAgICAgICB2bGUzMi52IHYxMCwgKHQyKQorICAgICAgICB2bGUzMi52IHYxMSwgKHQzKQorICAg ICAgICB2YWRkLnZ2IHYxNiwgdjgsIHYxMCAgICAjIHowCisgICAgICAgIGFkZGkgICAgc3AsIHNw LCA0ICogNCAqIDQKKyAgICAgICAgdmFkZC52diB2MTksIHY5LCB2MTEgICAgIyB6MworICAgICAg ICBsbGEgICAgIHQwLCBvZmZzZXRzXzgKKyAgICAgICAgdnN1Yi52diB2MTcsIHY4LCB2MTAgICAg IyB6MQorICAgICAgICB2c3ViLnZ2IHYxOCwgdjksIHYxMSAgICAjIHoyCisgICAgICAgIHZhZGQu dnYgdjgsIHYxNiwgdjE5CisgICAgICAgIHZhZGQudnYgdjksIHYxNywgdjE4CisgICAgICAgIHZz dWIudnYgdjEwLCB2MTcsIHYxOAorICAgICAgICB2c3ViLnZ2IHYxMSwgdjE2LCB2MTkKKyAgICAg ICAgdmxlMTYudiB2MjQsICh0MCkKKyAgICAgICAgdm11bC52eCB2OCwgdjgsIGEyCisgICAgICAg IHZtdWwudnggdjksIHY5LCBhMgorICAgICAgICB2bXVsLnZ4IHYxMCwgdjEwLCBhMgorICAgICAg ICB2bXVsLnZ4IHYxMSwgdjExLCBhMgorICAgICAgICB2c2V0dmxpIHplcm8sIHplcm8sIGUxNiwg bWYyLCB0YSwgbWEKKyAgICAgICAgdm5jbGlwLndpICAgdjE2LCB2OCwgOAorICAgICAgICBhZGRp ICAgIHQxLCBhMCwgMiAqIDE2ICogMQorICAgICAgICB2bmNsaXAud2kgICB2MTcsIHY5LCA4Cisg ICAgICAgIGFkZGkgICAgdDIsIGEwLCAyICogMTYgKiA0CisgICAgICAgIHZuY2xpcC53aSAgIHYx OCwgdjEwLCA4CisgICAgICAgIGFkZGkgICAgdDMsIGEwLCAyICogMTYgKiA1CisgICAgICAgIHZu Y2xpcC53aSAgIHYxOSwgdjExLCA4CisgICAgICAgIHZzdXhlaTE2LnYgIHYxNiwgKGEwKSwgdjI0 CisgICAgICAgIHZzdXhlaTE2LnYgIHYxNywgKHQxKSwgdjI0CisgICAgICAgIHZzdXhlaTE2LnYg IHYxOCwgKHQyKSwgdjI0CisgICAgICAgIHZzdXhlaTE2LnYgIHYxOSwgKHQzKSwgdjI0CisgICAg ICAgIHJldAorZW5kZnVuYwotLSAKMi41Mi4wCgoKRnJvbSBlZTRjODExZDE5ZTA0ODFjYjgxMjhl YTRmMjUxZDgwODVmNzRmZDliIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04 P3E/Uj1DMz1BOW1pPTIwRGVuaXMtQ291cm1vbnQ/PSA8cmVtaUByZW1sYWIubmV0PgpEYXRlOiBT YXQsIDI5IE5vdiAyMDI1IDIyOjUxOjAxICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMzMvMzA0XSBs YXZjL2gyNjRpZGN0OiBSLVYgViA5LWJpdCBoMjY0X2x1bWFfZGNfZGVxdWFudF9pZGN0CgpOb3Rl IHRoYXQsIGxpa2UgdGhlIEMgcmVmZXJlbmNlLCB0aGUgc2FtZSBmdW5jdGlvbiBjYW4gYmUgdXNl ZCBmb3IKbGFyZ2VyIGJpdCBkZXB0aHMuCi0tLQogbGliYXZjb2RlYy9yaXNjdi9oMjY0ZHNwX2lu aXQuYyAgICAgICAgIHwgIDUgKystCiBsaWJhdmNvZGVjL3Jpc2N2L2gyNjRpZGN0X2RlcXVhbnRf cnZ2LlMgfCA1NSArKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDU5 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Jp c2N2L2gyNjRkc3BfaW5pdC5jIGIvbGliYXZjb2RlYy9yaXNjdi9oMjY0ZHNwX2luaXQuYwppbmRl eCA3YWI4ZDM4Njk4Li4wNmNiM2M1OWRlIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Jpc2N2L2gy NjRkc3BfaW5pdC5jCisrKyBiL2xpYmF2Y29kZWMvcmlzY3YvaDI2NGRzcF9pbml0LmMKQEAgLTE4 OSw4ICsxODksMTEgQEAgYXZfY29sZCB2b2lkIGZmX2gyNjRkc3BfaW5pdF9yaXNjdihIMjY0RFNQ Q29udGV4dCAqZHNwLCBjb25zdCBpbnQgYml0X2RlcHRoLAogCiAjZGVmaW5lIElEQ1RfREVQVEgo ZGVwdGgpIFwKICAgICAgICAgaWYgKGJpdF9kZXB0aCA9PSBkZXB0aCkgeyBcCi0gICAgICAgICAg ICBpZiAoenZsMTI4YikgXAorICAgICAgICAgICAgaWYgKHp2bDEyOGIpIHsgXAogICAgICAgICAg ICAgICAgIGRzcC0+aDI2NF9pZGN0X2FkZCA9IGZmX2gyNjRfaWRjdF9hZGRfIyNkZXB0aCMjX3J2 djsgXAorICAgICAgICAgICAgICAgIGRzcC0+aDI2NF9sdW1hX2RjX2RlcXVhbnRfaWRjdCA9IFwK KyAgICAgICAgICAgICAgICAgICAgZmZfaDI2NF9sdW1hX2RjX2RlcXVhbnRfaWRjdF85X3J2djsg XAorICAgICAgICAgICAgfSBcCiAgICAgICAgICAgICBpZiAoZmxhZ3MgJiBBVl9DUFVfRkxBR19S VkIpIFwKICAgICAgICAgICAgICAgICBkc3AtPmgyNjRfaWRjdDhfYWRkID0gZmZfaDI2NF9pZGN0 OF9hZGRfIyNkZXB0aCMjX3J2djsgXAogICAgICAgICAgICAgaWYgKHp2bDEyOGIgJiYgKGZsYWdz ICYgQVZfQ1BVX0ZMQUdfUlZCKSkgeyBcCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Jpc2N2L2gy NjRpZGN0X2RlcXVhbnRfcnZ2LlMgYi9saWJhdmNvZGVjL3Jpc2N2L2gyNjRpZGN0X2RlcXVhbnRf cnZ2LlMKaW5kZXggNzNhNjhhMjhhYi4uYmM0OWNhNmFkNCAxMDA2NDQKLS0tIGEvbGliYXZjb2Rl Yy9yaXNjdi9oMjY0aWRjdF9kZXF1YW50X3J2di5TCisrKyBiL2xpYmF2Y29kZWMvcmlzY3YvaDI2 NGlkY3RfZGVxdWFudF9ydnYuUwpAQCAtODQsMyArODQsNTggQEAgZnVuYyBmZl9oMjY0X2x1bWFf ZGNfZGVxdWFudF9pZGN0XzhfcnZ2LCB6dmUzMngKICAgICAgICAgdnN1eGVpMTYudiAgdjE5LCAo dDMpLCB2MjQKICAgICAgICAgcmV0CiBlbmRmdW5jCisKK2NvbnN0IG9mZnNldHNfOSwgMQorICAg ICAgICAuc2hvcnQgMCwgMTI4LCA1MTIsIDY0MAorZW5kY29uc3QKKworZnVuYyBmZl9oMjY0X2x1 bWFfZGNfZGVxdWFudF9pZGN0XzlfcnZ2LCB6dmUzMngKKyAgICAgICAgbHBhZCAgIDAKKyAgICAg ICAgY3Nyd2kgIHZ4cm0sIDAKKyAgICAgICAgdnNldGl2bGkgICAgemVybywgNCwgZTMyLCBtMSwg dGEsIG1hCisgICAgICAgIHZsc2VnNGUzMi52IHY4LCAoYTEpCisgICAgICAgIHZhZGQudnYgdjE2 LCB2OCwgdjkgICAgICMgejAKKyAgICAgICAgYWRkaSAgICB0MSwgc3AsIDQgKiA0ICogLTMKKyAg ICAgICAgdmFkZC52diB2MTksIHYxMCwgdjExICAgIyB6MworICAgICAgICBhZGRpICAgIHQyLCBz cCwgNCAqIDQgKiAtMgorICAgICAgICB2c3ViLnZ2IHYxNywgdjgsIHY5ICAgICAjIHoxCisgICAg ICAgIGFkZGkgICAgdDMsIHNwLCA0ICogNCAqIC0xCisgICAgICAgIHZzdWIudnYgdjE4LCB2MTAs IHYxMSAgICMgejIKKyAgICAgICAgdmFkZC52diB2OCwgdjE2LCB2MTkKKyAgICAgICAgYWRkaSAg ICBzcCwgc3AsIDQgKiA0ICogLTQKKyAgICAgICAgdnN1Yi52diB2OSwgdjE2LCB2MTkKKyAgICAg ICAgdnN1Yi52diB2MTAsIHYxNywgdjE4CisgICAgICAgIHZhZGQudnYgdjExLCB2MTcsIHYxOAor ICAgICAgICB2c3NlZzRlMzIudiB2OCwgKHNwKQorICAgICAgICB2bGUzMi52IHY4LCAoc3ApCisg ICAgICAgIHZsZTMyLnYgdjksICh0MSkKKyAgICAgICAgdmxlMzIudiB2MTAsICh0MikKKyAgICAg ICAgdmxlMzIudiB2MTEsICh0MykKKyAgICAgICAgdmFkZC52diB2MTYsIHY4LCB2MTAgICAgIyB6 MAorICAgICAgICBhZGRpICAgIHNwLCBzcCwgNCAqIDQgKiA0CisgICAgICAgIHZhZGQudnYgdjE5 LCB2OSwgdjExICAgICMgejMKKyAgICAgICAgbGxhICAgICB0MCwgb2Zmc2V0c185CisgICAgICAg IHZzdWIudnYgdjE3LCB2OCwgdjEwICAgICMgejEKKyAgICAgICAgdnN1Yi52diB2MTgsIHY5LCB2 MTEgICAgIyB6MgorICAgICAgICB2YWRkLnZ2IHY4LCB2MTYsIHYxOQorICAgICAgICB2YWRkLnZ2 IHY5LCB2MTcsIHYxOAorICAgICAgICB2c3ViLnZ2IHYxMCwgdjE3LCB2MTgKKyAgICAgICAgdnN1 Yi52diB2MTEsIHYxNiwgdjE5CisgICAgICAgIHZsZTE2LnYgdjI0LCAodDApCisgICAgICAgIHZt dWwudnggdjgsIHY4LCBhMgorICAgICAgICB2bXVsLnZ4IHY5LCB2OSwgYTIKKyAgICAgICAgdm11 bC52eCB2MTAsIHYxMCwgYTIKKyAgICAgICAgdm11bC52eCB2MTEsIHYxMSwgYTIKKyAgICAgICAg dnNzcmEudmkgICAgdjE2LCB2OCwgOAorICAgICAgICBhZGRpICAgIHQxLCBhMCwgNCAqIDE2ICog MQorICAgICAgICB2c3NyYS52aSAgICB2MTcsIHY5LCA4CisgICAgICAgIGFkZGkgICAgdDIsIGEw LCA0ICogMTYgKiA0CisgICAgICAgIHZzc3JhLnZpICAgIHYxOCwgdjEwLCA4CisgICAgICAgIGFk ZGkgICAgdDMsIGEwLCA0ICogMTYgKiA1CisgICAgICAgIHZzc3JhLnZpICAgIHYxOSwgdjExLCA4 CisgICAgICAgIHZzdXhlaTE2LnYgIHYxNiwgKGEwKSwgdjI0CisgICAgICAgIHZzdXhlaTE2LnYg IHYxNywgKHQxKSwgdjI0CisgICAgICAgIHZzdXhlaTE2LnYgIHYxOCwgKHQyKSwgdjI0CisgICAg ICAgIHZzdXhlaTE2LnYgIHYxOSwgKHQzKSwgdjI0CisgICAgICAgIHJldAorZW5kZnVuYwotLSAK Mi41Mi4wCgoKRnJvbSA3MmFkNGQzNTllNDY2MGExODMxMDJkMWQyOTZlZjc2ZGE0MmJkYWVlIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBjYWlmYW4zIDxjYWlmYW4zQHhpYW9taS5jb20+ CkRhdGU6IFRodSwgNCBEZWMgMjAyNSAyMjoxNToxNSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjM0 LzMwNF0gYXZmb3JtYXQvdW5peDogYWRkIHBrdF9zaXplIG9wdGlvbgoKQWRkIGEgInBrdF9zaXpl IiBBVk9wdGlvbiB0byB0aGUgVW5peCBkb21haW4gc29ja2V0IHByb3RvY29sLiBUaGlzIG9wdGlv bgphbGxvd3MgdGhlIHVzZXIgdG8gc3BlY2lmeSB0aGUgbWF4aW11bSBwYWNrZXQgc2l6ZSBmb3Ig cGFja2V0LW9yaWVudGVkCnNvY2tldHMgKFNPQ0tfREdSQU0gYW5kIFNPQ0tfU0VRUEFDS0VUKS4K ClNpZ25lZC1vZmYtYnk6IGNhaWZhbjMgPGNhaWZhbjNAeGlhb21pLmNvbT4KLS0tCiBkb2MvcHJv dG9jb2xzLnRleGkgfCA0ICsrKysKIGxpYmF2Zm9ybWF0L3VuaXguYyB8IDUgKysrKysKIDIgZmls ZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZG9jL3Byb3RvY29scy50 ZXhpIGIvZG9jL3Byb3RvY29scy50ZXhpCmluZGV4IGI3NDM4MzEyMmEuLmRlZTJiODQ1YWMgMTAw NjQ0Ci0tLSBhL2RvYy9wcm90b2NvbHMudGV4aQorKysgYi9kb2MvcHJvdG9jb2xzLnRleGkKQEAg LTIyNzEsNiArMjI3MSwxMCBAQCBUaGUgZm9sbG93aW5nIHBhcmFtZXRlcnMgY2FuIGJlIHNldCB2 aWEgY29tbWFuZCBsaW5lIG9wdGlvbnMKIFRpbWVvdXQgaW4gbXMuCiBAaXRlbSBsaXN0ZW4KIENy ZWF0ZSB0aGUgVW5peCBzb2NrZXQgaW4gbGlzdGVuaW5nIG1vZGUuCitAaXRlbSBwa3Rfc2l6ZQor TWF4aW11bSBwYWNrZXQgc2l6ZSBmb3IgcGFja2V0LW9yaWVudGVkIHNvY2tldHMgKFNPQ0tfREdS QU0gYW5kCitTT0NLX1NFUVBBQ0tFVCkuIElmIGdyZWF0ZXIgdGhhbiB6ZXJvLCB0aGlzIHZhbHVl IGlzIHVzZWQgYXMKK0Bjb2Rle21heF9wYWNrZXRfc2l6ZX0uIElnbm9yZWQgZm9yIFNPQ0tfU1RS RUFNLiBEZWZhdWx0IGlzIEBjb2RlezB9LgogQGVuZCB0YWJsZQogCiBAc2VjdGlvbiB6bXEKZGlm ZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L3VuaXguYyBiL2xpYmF2Zm9ybWF0L3VuaXguYwppbmRleCBm ZWQyMTVhNjkxLi4zYTBjYWY5NmVkIDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC91bml4LmMKKysr IGIvbGliYXZmb3JtYXQvdW5peC5jCkBAIC0zOSw2ICszOSw3IEBAIHR5cGVkZWYgc3RydWN0IFVu aXhDb250ZXh0IHsKICAgICBpbnQgbGlzdGVuOwogICAgIGludCB0eXBlOwogICAgIGludCBmZDsK KyAgICBpbnQgcGt0X3NpemU7CiB9IFVuaXhDb250ZXh0OwogCiAjZGVmaW5lIE9GRlNFVCh4KSBv ZmZzZXRvZihVbml4Q29udGV4dCwgeCkKQEAgLTUwLDYgKzUxLDcgQEAgc3RhdGljIGNvbnN0IEFW T3B0aW9uIHVuaXhfb3B0aW9uc1tdID0gewogICAgIHsgInN0cmVhbSIsICAgICJTdHJlYW0gKHJl bGlhYmxlIHN0cmVhbS1vcmllbnRlZCkiLCAgICAgMCwgICAgICAgICAgICAgICBBVl9PUFRfVFlQ RV9DT05TVCwgeyAuaTY0ID0gU09DS19TVFJFQU0gfSwgICAgSU5UX01JTiwgSU5UX01BWCwgRUQs IC51bml0ID0gInR5cGUiIH0sCiAgICAgeyAiZGF0YWdyYW0iLCAgIkRhdGFncmFtICh1bnJlbGlh YmxlIHBhY2tldC1vcmllbnRlZCkiLCAwLCAgICAgICAgICAgICAgIEFWX09QVF9UWVBFX0NPTlNU LCB7IC5pNjQgPSBTT0NLX0RHUkFNIH0sICAgICBJTlRfTUlOLCBJTlRfTUFYLCBFRCwgLnVuaXQg PSAidHlwZSIgfSwKICAgICB7ICJzZXFwYWNrZXQiLCAiU2VxcGFja2V0IChyZWxpYWJsZSBwYWNr ZXQtb3JpZW50ZWQiLCAgIDAsICAgICAgICAgICAgICAgQVZfT1BUX1RZUEVfQ09OU1QsIHsgLmk2 NCA9IFNPQ0tfU0VRUEFDS0VUIH0sIElOVF9NSU4sIElOVF9NQVgsIEVELCAudW5pdCA9ICJ0eXBl IiB9LAorICAgIHsgInBrdF9zaXplIiwgICJNYXhpbXVtIHBhY2tldCBzaXplIiwgICAgICAgICAg ICAgICAgICAgT0ZGU0VUKHBrdF9zaXplKSwgQVZfT1BUX1RZUEVfSU5ULCAgeyAuaTY0ID0gMCB9 LCAgICAgICAgICAgICAgMCwgSU5UX01BWCwgRUQgfSwKICAgICB7IE5VTEwgfQogfTsKIApAQCAt OTEsNiArOTMsOSBAQCBzdGF0aWMgaW50IHVuaXhfb3BlbihVUkxDb250ZXh0ICpoLCBjb25zdCBj aGFyICpmaWxlbmFtZSwgaW50IGZsYWdzKQogICAgIHMtPmZkID0gZmQ7CiAgICAgaC0+aXNfc3Ry ZWFtZWQgPSAxOwogCisgICAgaWYgKChzLT50eXBlID09IFNPQ0tfREdSQU0gfHwgcy0+dHlwZSA9 PSBTT0NLX1NFUVBBQ0tFVCkgJiYgcy0+cGt0X3NpemUgPiAwKQorICAgICAgICBoLT5tYXhfcGFj a2V0X3NpemUgPSBzLT5wa3Rfc2l6ZTsKKwogICAgIHJldHVybiAwOwogCiBmYWlsOgotLSAKMi41 Mi4wCgoKRnJvbSAwOWZhYjNlMzVmNmE2YzViYmQ4NzMxZDkxMGJiNzI0Nzc3YzFlNjA5IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0b24gQmFsaW50IDxjdXNAcGFzc3dkLmh1PgpE YXRlOiBUaHUsIDI3IE5vdiAyMDI1IDIzOjU3OjIwICswMTAwClN1YmplY3Q6IFtQQVRDSCAyMzUv MzA0XSBhdmZpbHRlci9hZl9hbWVyZ2U6IGZpeCBwb3NzaWJsZSBjcmFzaCB3aXRoIGN1c3RvbQog bGF5b3V0cwoKVGhlIGNoZWNrIGlmIGEgbmF0aXZlIGxheW91dCBjYW4gYmUgY3JlYXRlZCBmcm9t IHRoZSBzb3VyY2VzIHdhcyBpbmNvbXBsZXRlIGFuZApjYXN1ZWQgYSBjcmFzaCB3aXRoIGN1c3Rv bSBsYXlvdXRzIGlmIHRoZSBsYXlvdXQgY29udGFpbmVkIGEgbmF0aXZlIGNoYW5uZWwKbXVsdGlw bGUgdGltZXMsIGFzIGluIHRoaXMgZXhhbXBsZSBjb21tYW5kIGxpbmU6CgpmZm1wZWcgLWxhdmZp ICJzaW5lW2EwXTtzaW5lLHBhbj1GTCtGTFthMV07W2EwXVthMV1hbWVyZ2VbYW91dF0iIC1tYXAg Ilthb3V0XSIgLXQgMSAtZiBmcmFtZWNyYyAtCgpTaWduZWQtb2ZmLWJ5OiBNYXJ0b24gQmFsaW50 IDxjdXNAcGFzc3dkLmh1PgotLS0KIGxpYmF2ZmlsdGVyL2FmX2FtZXJnZS5jIHwgMTggKysrKysr Ky0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci9hZl9hbWVyZ2UuYyBiL2xpYmF2ZmlsdGVy L2FmX2FtZXJnZS5jCmluZGV4IGJiODIxMjhhODQuLjQxMTM3ZDRiOGIgMTAwNjQ0Ci0tLSBhL2xp YmF2ZmlsdGVyL2FmX2FtZXJnZS5jCisrKyBiL2xpYmF2ZmlsdGVyL2FmX2FtZXJnZS5jCkBAIC03 Nyw3ICs3Nyw3IEBAIHN0YXRpYyBpbnQgcXVlcnlfZm9ybWF0cyhBVkZpbHRlckNvbnRleHQgKmN0 eCkKICAgICBBVkNoYW5uZWxMYXlvdXQgKmlubGF5b3V0W1NXUl9DSF9NQVhdID0geyBOVUxMIH0s IG91dGxheW91dCA9IHsgMCB9OwogICAgIHVpbnQ2NF90IG91dG1hc2sgPSAwOwogICAgIEFWRmls dGVyQ2hhbm5lbExheW91dHMgKmxheW91dHM7Ci0gICAgaW50IGksIHJldCwgb3ZlcmxhcCA9IDAs IG5iX2NoID0gMDsKKyAgICBpbnQgaSwgcmV0LCBuYl9jaCA9IDA7CiAKICAgICBmb3IgKGkgPSAw OyBpIDwgcy0+bmJfaW5wdXRzOyBpKyspIHsKICAgICAgICAgaWYgKCFjdHgtPmlucHV0c1tpXS0+ aW5jZmcuY2hhbm5lbF9sYXlvdXRzIHx8CkBAIC05MiwxNSArOTIsMTEgQEAgc3RhdGljIGludCBx dWVyeV9mb3JtYXRzKEFWRmlsdGVyQ29udGV4dCAqY3R4KQogICAgICAgICAgICAgYXZfY2hhbm5l bF9sYXlvdXRfZGVzY3JpYmUoaW5sYXlvdXRbaV0sIGJ1Ziwgc2l6ZW9mKGJ1ZikpOwogICAgICAg ICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0lORk8sICJVc2luZyBcIiVzXCIgZm9yIGlucHV0ICVk XG4iLCBidWYsIGkgKyAxKTsKICAgICAgICAgfQotICAgICAgICBzLT5pbltpXS5uYl9jaCA9IEZG X0xBWU9VVDJDT1VOVChpbmxheW91dFtpXSk7Ci0gICAgICAgIGlmIChzLT5pbltpXS5uYl9jaCkg ewotICAgICAgICAgICAgb3ZlcmxhcCsrOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg cy0+aW5baV0ubmJfY2ggPSBpbmxheW91dFtpXS0+bmJfY2hhbm5lbHM7Ci0gICAgICAgICAgICBp ZiAoYXZfY2hhbm5lbF9sYXlvdXRfc3Vic2V0KGlubGF5b3V0W2ldLCBvdXRtYXNrKSkKLSAgICAg ICAgICAgICAgICBvdmVybGFwKys7Ci0gICAgICAgICAgICBvdXRtYXNrIHw9IGlubGF5b3V0W2ld LT5vcmRlciA9PSBBVl9DSEFOTkVMX09SREVSX05BVElWRSA/Ci0gICAgICAgICAgICAgICAgICAg ICAgIGlubGF5b3V0W2ldLT51Lm1hc2sgOiAwOworICAgICAgICBzLT5pbltpXS5uYl9jaCA9IGlu bGF5b3V0W2ldLT5uYl9jaGFubmVsczsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBzLT5p bltpXS5uYl9jaDsgaisrKSB7CisgICAgICAgICAgICBlbnVtIEFWQ2hhbm5lbCBpZCA9IGF2X2No YW5uZWxfbGF5b3V0X2NoYW5uZWxfZnJvbV9pbmRleChpbmxheW91dFtpXSwgaik7CisgICAgICAg ICAgICBpZiAoaWQgPj0gMCAmJiBpZCA8IDY0KQorICAgICAgICAgICAgICAgIG91dG1hc2sgfD0g KDFVTEwgPDwgaWQpOwogICAgICAgICB9CiAgICAgICAgIG5iX2NoICs9IHMtPmluW2ldLm5iX2No OwogICAgIH0KQEAgLTEwOCw3ICsxMDQsNyBAQCBzdGF0aWMgaW50IHF1ZXJ5X2Zvcm1hdHMoQVZG aWx0ZXJDb250ZXh0ICpjdHgpCiAgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19FUlJPUiwgIlRv byBtYW55IGNoYW5uZWxzIChtYXggJWQpXG4iLCBTV1JfQ0hfTUFYKTsKICAgICAgICAgcmV0dXJu IEFWRVJST1IoRUlOVkFMKTsKICAgICB9Ci0gICAgaWYgKG92ZXJsYXApIHsKKyAgICBpZiAoYXZf cG9wY291bnQ2NChvdXRtYXNrKSAhPSBuYl9jaCkgewogICAgICAgICBhdl9sb2coY3R4LCBBVl9M T0dfV0FSTklORywKICAgICAgICAgICAgICAgICJJbnB1dCBjaGFubmVsIGxheW91dHMgb3Zlcmxh cDogIgogICAgICAgICAgICAgICAgIm91dHB1dCBsYXlvdXQgd2lsbCBiZSBkZXRlcm1pbmVkIGJ5 IHRoZSBudW1iZXIgb2YgZGlzdGluY3QgaW5wdXQgY2hhbm5lbHNcbiIpOwotLSAKMi41Mi4wCgoK RnJvbSAxNzM0MjE4MjAyOTdiNDVhYzU5YjY1ZTI4OWQ3Mzc2ZDI5YjhmMWY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0b24gQmFsaW50IDxjdXNAcGFzc3dkLmh1PgpEYXRlOiBG cmksIDI4IE5vdiAyMDI1IDIxOjAxOjI4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAyMzYvMzA0XSBh dmZpbHRlci9hZl9hbWVyZ2U6IHJld29yayByb3V0aW5nIGNhbGN1bGF0aW9uCgpObyBjaGFuZ2Ug aW4gZnVuY3Rpb25hbGl0eS4KClNpZ25lZC1vZmYtYnk6IE1hcnRvbiBCYWxpbnQgPGN1c0BwYXNz d2QuaHU+Ci0tLQogbGliYXZmaWx0ZXIvYWZfYW1lcmdlLmMgfCA0MyArKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlvbnMo KyksIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL2FmX2FtZXJnZS5j IGIvbGliYXZmaWx0ZXIvYWZfYW1lcmdlLmMKaW5kZXggNDExMzdkNGI4Yi4uOTJhZmI0NjkxZiAx MDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvYWZfYW1lcmdlLmMKKysrIGIvbGliYXZmaWx0ZXIvYWZf YW1lcmdlLmMKQEAgLTYzLDYgKzYzLDggQEAgc3RhdGljIGF2X2NvbGQgdm9pZCB1bmluaXQoQVZG aWx0ZXJDb250ZXh0ICpjdHgpCiAgICAgYXZfZnJlZXAoJnMtPmluKTsKIH0KIAorI2RlZmluZSBJ TkxBWU9VVChjdHgsIGkpICgmKGN0eCktPmlucHV0c1tpXS0+aW5jZmcuY2hhbm5lbF9sYXlvdXRz LT5jaGFubmVsX2xheW91dHNbMF0pCisKIHN0YXRpYyBpbnQgcXVlcnlfZm9ybWF0cyhBVkZpbHRl ckNvbnRleHQgKmN0eCkKIHsKICAgICBzdGF0aWMgY29uc3QgZW51bSBBVlNhbXBsZUZvcm1hdCBw YWNrZWRfc2FtcGxlX2ZtdHNbXSA9IHsKQEAgLTc0LDEwICs3NiwxMSBAQCBzdGF0aWMgaW50IHF1 ZXJ5X2Zvcm1hdHMoQVZGaWx0ZXJDb250ZXh0ICpjdHgpCiAgICAgICAgIEFWX1NBTVBMRV9GTVRf Tk9ORQogICAgIH07CiAgICAgQU1lcmdlQ29udGV4dCAqcyA9IGN0eC0+cHJpdjsKLSAgICBBVkNo YW5uZWxMYXlvdXQgKmlubGF5b3V0W1NXUl9DSF9NQVhdID0geyBOVUxMIH0sIG91dGxheW91dCA9 IHsgMCB9OworICAgIEFWQ2hhbm5lbExheW91dCBvdXRsYXlvdXQgPSB7IDAgfTsKICAgICB1aW50 NjRfdCBvdXRtYXNrID0gMDsKICAgICBBVkZpbHRlckNoYW5uZWxMYXlvdXRzICpsYXlvdXRzOwog ICAgIGludCBpLCByZXQsIG5iX2NoID0gMDsKKyAgICBpbnQgbmF0aXZlX2xheW91dF9yb3V0ZXNb U1dSX0NIX01BWF0gPSB7IDAgfTsKIAogICAgIGZvciAoaSA9IDA7IGkgPCBzLT5uYl9pbnB1dHM7 IGkrKykgewogICAgICAgICBpZiAoIWN0eC0+aW5wdXRzW2ldLT5pbmNmZy5jaGFubmVsX2xheW91 dHMgfHwKQEAgLTg2LDUxICs4OSw0NyBAQCBzdGF0aWMgaW50IHF1ZXJ5X2Zvcm1hdHMoQVZGaWx0 ZXJDb250ZXh0ICpjdHgpCiAgICAgICAgICAgICAgICAgICAgIk5vIGNoYW5uZWwgbGF5b3V0IGZv ciBpbnB1dCAlZFxuIiwgaSArIDEpOwogICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUFHQUlO KTsKICAgICAgICAgfQotICAgICAgICBpbmxheW91dFtpXSA9ICZjdHgtPmlucHV0c1tpXS0+aW5j ZmcuY2hhbm5lbF9sYXlvdXRzLT5jaGFubmVsX2xheW91dHNbMF07CiAgICAgICAgIGlmIChjdHgt PmlucHV0c1tpXS0+aW5jZmcuY2hhbm5lbF9sYXlvdXRzLT5uYl9jaGFubmVsX2xheW91dHMgPiAx KSB7CiAgICAgICAgICAgICBjaGFyIGJ1ZlsyNTZdOwotICAgICAgICAgICAgYXZfY2hhbm5lbF9s YXlvdXRfZGVzY3JpYmUoaW5sYXlvdXRbaV0sIGJ1Ziwgc2l6ZW9mKGJ1ZikpOworICAgICAgICAg ICAgYXZfY2hhbm5lbF9sYXlvdXRfZGVzY3JpYmUoSU5MQVlPVVQoY3R4LCBpKSwgYnVmLCBzaXpl b2YoYnVmKSk7CiAgICAgICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5GTywgIlVzaW5nIFwi JXNcIiBmb3IgaW5wdXQgJWRcbiIsIGJ1ZiwgaSArIDEpOwogICAgICAgICB9Ci0gICAgICAgIHMt PmluW2ldLm5iX2NoID0gaW5sYXlvdXRbaV0tPm5iX2NoYW5uZWxzOwotICAgICAgICBmb3IgKGlu dCBqID0gMDsgaiA8IHMtPmluW2ldLm5iX2NoOyBqKyspIHsKLSAgICAgICAgICAgIGVudW0gQVZD aGFubmVsIGlkID0gYXZfY2hhbm5lbF9sYXlvdXRfY2hhbm5lbF9mcm9tX2luZGV4KGlubGF5b3V0 W2ldLCBqKTsKLSAgICAgICAgICAgIGlmIChpZCA+PSAwICYmIGlkIDwgNjQpCi0gICAgICAgICAg ICAgICAgb3V0bWFzayB8PSAoMVVMTCA8PCBpZCk7Ci0gICAgICAgIH0KKyAgICAgICAgcy0+aW5b aV0ubmJfY2ggPSBJTkxBWU9VVChjdHgsIGkpLT5uYl9jaGFubmVsczsKICAgICAgICAgbmJfY2gg Kz0gcy0+aW5baV0ubmJfY2g7CiAgICAgfQogICAgIGlmIChuYl9jaCA+IFNXUl9DSF9NQVgpIHsK ICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiVG9vIG1hbnkgY2hhbm5lbHMgKG1h eCAlZClcbiIsIFNXUl9DSF9NQVgpOwogICAgICAgICByZXR1cm4gQVZFUlJPUihFSU5WQUwpOwog ICAgIH0KKyAgICBmb3IgKGludCBpID0gMCwgY2hfaWR4ID0gMDsgaSA8IHMtPm5iX2lucHV0czsg aSsrKSB7CisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgcy0+aW5baV0ubmJfY2g7IGorKykg eworICAgICAgICAgICAgZW51bSBBVkNoYW5uZWwgaWQgPSBhdl9jaGFubmVsX2xheW91dF9jaGFu bmVsX2Zyb21faW5kZXgoSU5MQVlPVVQoY3R4LCBpKSwgaik7CisgICAgICAgICAgICBpZiAoaWQg Pj0gMCAmJiBpZCA8IDY0KSB7CisgICAgICAgICAgICAgICAgb3V0bWFzayB8PSAoMVVMTCA8PCBp ZCk7CisgICAgICAgICAgICAgICAgbmF0aXZlX2xheW91dF9yb3V0ZXNbaWRdID0gY2hfaWR4Owor ICAgICAgICAgICAgfQorICAgICAgICAgICAgcy0+cm91dGVbY2hfaWR4XSA9IGNoX2lkeDsKKyAg ICAgICAgICAgIGNoX2lkeCsrOworICAgICAgICB9CisgICAgfQogICAgIGlmIChhdl9wb3Bjb3Vu dDY0KG91dG1hc2spICE9IG5iX2NoKSB7CiAgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19XQVJO SU5HLAogICAgICAgICAgICAgICAgIklucHV0IGNoYW5uZWwgbGF5b3V0cyBvdmVybGFwOiAiCiAg ICAgICAgICAgICAgICAib3V0cHV0IGxheW91dCB3aWxsIGJlIGRldGVybWluZWQgYnkgdGhlIG51 bWJlciBvZiBkaXN0aW5jdCBpbnB1dCBjaGFubmVsc1xuIik7Ci0gICAgICAgIGZvciAoaSA9IDA7 IGkgPCBuYl9jaDsgaSsrKQotICAgICAgICAgICAgcy0+cm91dGVbaV0gPSBpOwogICAgICAgICBh dl9jaGFubmVsX2xheW91dF9kZWZhdWx0KCZvdXRsYXlvdXQsIG5iX2NoKTsKICAgICAgICAgaWYg KCFLTk9XTigmb3V0bGF5b3V0KSAmJiBuYl9jaCkKICAgICAgICAgICAgIGF2X2NoYW5uZWxfbGF5 b3V0X2Zyb21fbWFzaygmb3V0bGF5b3V0LCAweEZGRkZGRkZGRkZGRkZGRkZVTEwgPj4gKDY0IC0g bmJfY2gpKTsKICAgICB9IGVsc2UgewotICAgICAgICBpbnQgKnJvdXRlW1NXUl9DSF9NQVhdOwot ICAgICAgICBpbnQgYywgb3V0X2NoX251bWJlciA9IDA7Ci0KKyAgICAgICAgZm9yIChpbnQgYyA9 IDAsIGNoX2lkeCA9IDA7IGMgPCA2NDsgYysrKQorICAgICAgICAgICAgaWYgKCgxVUxMIDw8IGMp ICYgb3V0bWFzaykKKyAgICAgICAgICAgICAgICBzLT5yb3V0ZVtuYXRpdmVfbGF5b3V0X3JvdXRl c1tjXV0gPSBjaF9pZHgrKzsKICAgICAgICAgYXZfY2hhbm5lbF9sYXlvdXRfZnJvbV9tYXNrKCZv dXRsYXlvdXQsIG91dG1hc2spOwotICAgICAgICByb3V0ZVswXSA9IHMtPnJvdXRlOwotICAgICAg ICBmb3IgKGkgPSAxOyBpIDwgcy0+bmJfaW5wdXRzOyBpKyspCi0gICAgICAgICAgICByb3V0ZVtp XSA9IHJvdXRlW2kgLSAxXSArIHMtPmluW2kgLSAxXS5uYl9jaDsKLSAgICAgICAgZm9yIChjID0g MDsgYyA8IDY0OyBjKyspCi0gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcy0+bmJfaW5wdXRz OyBpKyspCi0gICAgICAgICAgICAgICAgaWYgKGF2X2NoYW5uZWxfbGF5b3V0X2luZGV4X2Zyb21f Y2hhbm5lbChpbmxheW91dFtpXSwgYykgPj0gMCkKLSAgICAgICAgICAgICAgICAgICAgKihyb3V0 ZVtpXSsrKSA9IG91dF9jaF9udW1iZXIrKzsKICAgICB9CiAgICAgaWYgKChyZXQgPSBmZl9zZXRf Y29tbW9uX2Zvcm1hdHNfZnJvbV9saXN0KGN0eCwgcGFja2VkX3NhbXBsZV9mbXRzKSkgPCAwKQog ICAgICAgICByZXR1cm4gcmV0OwogICAgIGZvciAoaSA9IDA7IGkgPCBzLT5uYl9pbnB1dHM7IGkr KykgewogICAgICAgICBsYXlvdXRzID0gTlVMTDsKLSAgICAgICAgaWYgKChyZXQgPSBmZl9hZGRf Y2hhbm5lbF9sYXlvdXQoJmxheW91dHMsIGlubGF5b3V0W2ldKSkgPCAwKQorICAgICAgICBpZiAo KHJldCA9IGZmX2FkZF9jaGFubmVsX2xheW91dCgmbGF5b3V0cywgSU5MQVlPVVQoY3R4LCBpKSkp IDwgMCkKICAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgIGlmICgocmV0ID0gZmZfY2hh bm5lbF9sYXlvdXRzX3JlZihsYXlvdXRzLCAmY3R4LT5pbnB1dHNbaV0tPm91dGNmZy5jaGFubmVs X2xheW91dHMpKSA8IDApCiAgICAgICAgICAgICByZXR1cm4gcmV0OwotLSAKMi41Mi4wCgoKRnJv bSBiMDE2OTEyZjUyYTA3ZmIzY2IyZGU5MmFhYWRmMzk2ODE4ZGM4MTlkIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBNYXJ0b24gQmFsaW50IDxjdXNAcGFzc3dkLmh1PgpEYXRlOiBGcmks IDI4IE5vdiAyMDI1IDIzOjU5OjE4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAyMzcvMzA0XSBhdmZp bHRlci9hZl9hbWVyZ2U6IGFkZCBsYXlvdXRfbW9kZSBvcHRpb24gdG8gY29udHJvbAogb3V0cHV0 IGNoYW5uZWwgbGF5b3V0CgpTaWduZWQtb2ZmLWJ5OiBNYXJ0b24gQmFsaW50IDxjdXNAcGFzc3dk Lmh1PgotLS0KIGRvYy9maWx0ZXJzLnRleGkgICAgICAgIHwgNDkgKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLQogbGliYXZmaWx0ZXIvYWZfYW1lcmdlLmMgfCA1MyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA4NSBp bnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvZmlsdGVycy50 ZXhpIGIvZG9jL2ZpbHRlcnMudGV4aQppbmRleCAxNjhlYTBkMmRhLi40NjRhNjAyZjhkIDEwMDY0 NAotLS0gYS9kb2MvZmlsdGVycy50ZXhpCisrKyBiL2RvYy9maWx0ZXJzLnRleGkKQEAgLTI0MzYs NiArMjQzNiwxMSBAQCBPbmx5IHVzZWQgaWYgb3B0aW9uIG5hbWVkIEB2YXJ7c3RhcnR9IGlzIHNl dCB0byBAY29kZXstMX0uCiAKIE1lcmdlIHR3byBvciBtb3JlIGF1ZGlvIHN0cmVhbXMgaW50byBh IHNpbmdsZSBtdWx0aS1jaGFubmVsIHN0cmVhbS4KIAorQWxsIGlucHV0cyBtdXN0IGhhdmUgdGhl IHNhbWUgc2FtcGxlIHJhdGUsIGFuZCBmb3JtYXQuCisKK0lmIGlucHV0cyBkbyBub3QgaGF2ZSB0 aGUgc2FtZSBkdXJhdGlvbiwgdGhlIG91dHB1dCB3aWxsIHN0b3Agd2l0aCB0aGUKK3Nob3J0ZXN0 LgorCiBUaGUgZmlsdGVyIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgogCiBAdGFibGUg QG9wdGlvbgpAQCAtMjQ0MywxNSArMjQ0OCwyNSBAQCBUaGUgZmlsdGVyIGFjY2VwdHMgdGhlIGZv bGxvd2luZyBvcHRpb25zOgogQGl0ZW0gaW5wdXRzCiBTZXQgdGhlIG51bWJlciBvZiBpbnB1dHMu IERlZmF1bHQgaXMgMi4KIAotQGVuZCB0YWJsZQorQGl0ZW0gbGF5b3V0X21vZGUKIAotSWYgdGhl IGNoYW5uZWwgbGF5b3V0cyBvZiB0aGUgaW5wdXRzIGFyZSBkaXNqb2ludCwgYW5kIHRoZXJlZm9y ZSBjb21wYXRpYmxlLAotdGhlIGNoYW5uZWwgbGF5b3V0IG9mIHRoZSBvdXRwdXQgd2lsbCBiZSBz ZXQgYWNjb3JkaW5nbHkgYW5kIHRoZSBjaGFubmVscwotd2lsbCBiZSByZW9yZGVyZWQgYXMgbmVj ZXNzYXJ5LiBJZiB0aGUgY2hhbm5lbCBsYXlvdXRzIG9mIHRoZSBpbnB1dHMgYXJlIG5vdAotZGlz am9pbnQsIHRoZSBvdXRwdXQgd2lsbCBoYXZlIGFsbCB0aGUgY2hhbm5lbHMgb2YgdGhlIGZpcnN0 IGlucHV0IHRoZW4gYWxsCi10aGUgY2hhbm5lbHMgb2YgdGhlIHNlY29uZCBpbnB1dCwgaW4gdGhh dCBvcmRlciwgYW5kIHRoZSBjaGFubmVsIGxheW91dCBvZgotdGhlIG91dHB1dCB3aWxsIGJlIHRo ZSBkZWZhdWx0IHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHRvdGFsIG51bWJlciBvZgotY2hh bm5lbHMuCitUaGlzIG9wdGlvbiBjb250cm9scyBob3cgdGhlIG91dHB1dCBjaGFubmVsIGxheW91 dCBpcyBkZXRlcm1pbmVkIGFuZCBpZiB0aGUKK2F1ZGlvIGNoYW5uZWxzIGFyZSByZW9yZGVyZWQg ZHVyaW5nIG1lcmdlLgorCitAdGFibGUgQG9wdGlvbgorCitAaXRlbSBsZWdhY3kKKworVGhpcyBp cyB0aGUgbW9kZSBob3cgdGhlIGZpbHRlciBiZWhhdmVkIGhpc3RvcmljYWxseSBzbyBpdCBpcyB0 aGUgZGVmYXVsdC4KKworSWYgdGhlIGNoYW5uZWwgbGF5b3V0cyBvZiB0aGUgaW5wdXRzIGFyZSBr bm93biBhbmQgZGlzam9pbnQsIGFuZCB0aGVyZWZvcmUKK2NvbXBhdGlibGUsIHRoZSBjaGFubmVs IGxheW91dCBvZiB0aGUgb3V0cHV0IHdpbGwgYmUgc2V0IGFjY29yZGluZ2x5IGFuZCB0aGUKK2No YW5uZWxzIHdpbGwgYmUgcmVvcmRlcmVkIGFzIG5lY2Vzc2FyeS4gSWYgdGhlIGNoYW5uZWwgbGF5 b3V0cyBvZiB0aGUgaW5wdXRzCithcmUgbm90IGRpc2pvaW50LCBzb21lIG9mIHRoZW0gYXJlIHVu a25vd24sIG9yIHRoZXkgYXJlIHVzaW5nIHNwZWNpYWwgY2hhbm5lbAorbGF5b3V0cywgc3VjaCBh cyBhbWJpc29uaWNzLCB0aGUgb3V0cHV0IHdpbGwgaGF2ZSBhbGwgdGhlIGNoYW5uZWxzIG9mIHRo ZSBmaXJzdAoraW5wdXQgdGhlbiBhbGwgdGhlIGNoYW5uZWxzIG9mIHRoZSBzZWNvbmQgaW5wdXQs IGluIHRoYXQgb3JkZXIsIGFuZCB0aGUgY2hhbm5lbAorbGF5b3V0IG9mIHRoZSBvdXRwdXQgd2ls bCBiZSB0aGUgZGVmYXVsdCB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSB0b3RhbAorbnVtYmVy IG9mIGNoYW5uZWxzLgogCiBGb3IgZXhhbXBsZSwgaWYgdGhlIGZpcnN0IGlucHV0IGlzIGluIDIu MSAoRkwrRlIrTEYpIGFuZCB0aGUgc2Vjb25kIGlucHV0CiBpcyBGQytCTCtCUiwgdGhlbiB0aGUg b3V0cHV0IHdpbGwgYmUgaW4gNS4xLCB3aXRoIHRoZSBjaGFubmVscyBpbiB0aGUKQEAgLTI0NjIs MTAgKzI0NzcsMjIgQEAgT24gdGhlIG90aGVyIGhhbmQsIGlmIGJvdGggaW5wdXQgYXJlIGluIHN0 ZXJlbywgdGhlIG91dHB1dCBjaGFubmVscyB3aWxsIGJlCiBpbiB0aGUgZGVmYXVsdCBvcmRlcjog YTEsIGEyLCBiMSwgYjIsIGFuZCB0aGUgY2hhbm5lbCBsYXlvdXQgd2lsbCBiZQogYXJiaXRyYXJp bHkgc2V0IHRvIDQuMCwgd2hpY2ggbWF5IG9yIG1heSBub3QgYmUgdGhlIGV4cGVjdGVkIHZhbHVl LgogCi1BbGwgaW5wdXRzIG11c3QgaGF2ZSB0aGUgc2FtZSBzYW1wbGUgcmF0ZSwgYW5kIGZvcm1h dC4KK0BpdGVtIHJlc2V0CitUaGlzIG1vZGUgaWdub3JlcyB0aGUgaW5wdXQgY2hhbm5lbCBsYXlv dXRzIGFuZCBkb2VzIG5vIGNoYW5uZWwgcmVvcmRlcmluZy4KK1RoZSBvdXRwdXQgd2lsbCBoYXZl IGFsbCB0aGUgY2hhbm5lbHMgb2YgdGhlIGZpcnN0IGlucHV0LCB0aGVuIGFsbCB0aGUgY2hhbm5l bHMKK29mIHRoZSBzZWNvbmQgaW5wdXQsIGluIHRoYXQgb3JkZXIsIGFuZCBzbyBvbi4KIAotSWYg aW5wdXRzIGRvIG5vdCBoYXZlIHRoZSBzYW1lIGR1cmF0aW9uLCB0aGUgb3V0cHV0IHdpbGwgc3Rv cCB3aXRoIHRoZQotc2hvcnRlc3QuCitUaGUgb3V0cHV0IGNoYW5uZWwgbGF5b3V0IHdpbGwgb25s eSBzcGVjaWZ5IHRoZSB0b3RhbCBjaGFubmVsIGNvdW50LgorCitAaXRlbSBub3JtYWwKK1RoaXMg bW9kZSBrZWVwcyBjaGFubmVsIG5hbWUgYW5kIGRlc2lnbmF0aW9uIGluZm9ybWF0aW9uIGZyb20g dGhlIGlucHV0CitjaGFubmVscyBhbmQgZG9lcyBubyBjaGFubmVsIHJlb3JkZXJpbmcuIFRoZSBv dXRwdXQgd2lsbCBoYXZlIGFsbCB0aGUgY2hhbm5lbHMKK29mIHRoZSBmaXJzdCBpbnB1dCwgdGhl biBhbGwgdGhlIGNoYW5uZWxzIG9mIHRoZSBzZWNvbmQgaW5wdXQsIGluIHRoYXQgb3JkZXIsCith bmQgc28gb24uCisKK0BlbmQgdGFibGUKKworQGVuZCB0YWJsZQogCiBAc3Vic2VjdGlvbiBFeGFt cGxlcwogCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci9hZl9hbWVyZ2UuYyBiL2xpYmF2ZmlsdGVy L2FmX2FtZXJnZS5jCmluZGV4IDkyYWZiNDY5MWYuLmUzMDBjZjljN2IgMTAwNjQ0Ci0tLSBhL2xp YmF2ZmlsdGVyL2FmX2FtZXJnZS5jCisrKyBiL2xpYmF2ZmlsdGVyL2FmX2FtZXJnZS5jCkBAIC0y Myw2ICsyMyw3IEBACiAgKiBBdWRpbyBtZXJnaW5nIGZpbHRlcgogICovCiAKKyNpbmNsdWRlICJs aWJhdnV0aWwvYXZhc3NlcnQuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvYXZzdHJpbmcuaCIKICNp bmNsdWRlICJsaWJhdnV0aWwvYnByaW50LmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL2NoYW5uZWxf bGF5b3V0LmgiCkBAIC00MywxNCArNDQsMjcgQEAgdHlwZWRlZiBzdHJ1Y3QgQU1lcmdlQ29udGV4 dCB7CiAgICAgc3RydWN0IGFtZXJnZV9pbnB1dCB7CiAgICAgICAgIGludCBuYl9jaDsgICAgICAg ICAvKio8IG51bWJlciBvZiBjaGFubmVscyBmb3IgdGhlIGlucHV0ICovCiAgICAgfSAqaW47Cisg ICAgaW50IGxheW91dF9tb2RlOyAgICAgICAvKio8IHRoZSBtZXRob2QgZm9yIGRldGVybWluaW5n IHRoZSBvdXRwdXQgY2hhbm5lbCBsYXlvdXQgKi8KIH0gQU1lcmdlQ29udGV4dDsKIAogI2RlZmlu ZSBPRkZTRVQoeCkgb2Zmc2V0b2YoQU1lcmdlQ29udGV4dCwgeCkKICNkZWZpbmUgRkxBR1MgQVZf T1BUX0ZMQUdfQVVESU9fUEFSQU18QVZfT1BUX0ZMQUdfRklMVEVSSU5HX1BBUkFNCiAKK2VudW0g TGF5b3V0TW9kZXMgeworICAgIExNX0xFR0FDWSwKKyAgICBMTV9SRVNFVCwKKyAgICBMTV9OT1JN QUwsCisgICAgTkJfTEFZT1VUTU9ERVMKK307CisKIHN0YXRpYyBjb25zdCBBVk9wdGlvbiBhbWVy Z2Vfb3B0aW9uc1tdID0gewogICAgIHsgImlucHV0cyIsICJzcGVjaWZ5IHRoZSBudW1iZXIgb2Yg aW5wdXRzIiwgT0ZGU0VUKG5iX2lucHV0cyksCiAgICAgICBBVl9PUFRfVFlQRV9JTlQsIHsgLmk2 NCA9IDIgfSwgMSwgU1dSX0NIX01BWCwgRkxBR1MgfSwKKyAgICB7ICJsYXlvdXRfbW9kZSIsICAg Im1ldGhvZCB1c2VkIHRvIGRldGVybWluZSB0aGUgb3V0cHV0IGNoYW5uZWwgbGF5b3V0IiwgT0ZG U0VUKGxheW91dF9tb2RlKSwKKyAgICAgIEFWX09QVF9UWVBFX0lOVCwgeyAuaTY0ID0gTE1fTEVH QUNZIH0sIDAsIE5CX0xBWU9VVE1PREVTIC0gMSwgRkxBR1MsIC51bml0ID0gImxheW91dF9tb2Rl In0sCisgICAgICAgIHsgImxlZ2FjeSIsICAgTlVMTCwgMCwgQVZfT1BUX1RZUEVfQ09OU1QsIHsu aTY0ID0gTE1fTEVHQUNZICAgfSwgMCwgMCwgRkxBR1MsIC51bml0ID0gImxheW91dF9tb2RlIiB9 LAorICAgICAgICB7ICJyZXNldCIsICAgIE5VTEwsIDAsIEFWX09QVF9UWVBFX0NPTlNULCB7Lmk2 NCA9IExNX1JFU0VUICAgIH0sIDAsIDAsIEZMQUdTLCAudW5pdCA9ICJsYXlvdXRfbW9kZSIgfSwK KyAgICAgICAgeyAibm9ybWFsIiwgICBOVUxMLCAwLCBBVl9PUFRfVFlQRV9DT05TVCwgey5pNjQg PSBMTV9OT1JNQUwgICB9LCAwLCAwLCBGTEFHUywgLnVuaXQgPSAibGF5b3V0X21vZGUiIH0sCiAg ICAgeyBOVUxMIH0KIH07CiAKQEAgLTEwMSw5ICsxMTUsMTYgQEAgc3RhdGljIGludCBxdWVyeV9m b3JtYXRzKEFWRmlsdGVyQ29udGV4dCAqY3R4KQogICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0df RVJST1IsICJUb28gbWFueSBjaGFubmVscyAobWF4ICVkKVxuIiwgU1dSX0NIX01BWCk7CiAgICAg ICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7CiAgICAgfQorICAgIHJldCA9IGF2X2NoYW5uZWxf bGF5b3V0X2N1c3RvbV9pbml0KCZvdXRsYXlvdXQsIG5iX2NoKTsKKyAgICBpZiAocmV0IDwgMCkK KyAgICAgICAgcmV0dXJuIHJldDsKICAgICBmb3IgKGludCBpID0gMCwgY2hfaWR4ID0gMDsgaSA8 IHMtPm5iX2lucHV0czsgaSsrKSB7CiAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgcy0+aW5b aV0ubmJfY2g7IGorKykgewogICAgICAgICAgICAgZW51bSBBVkNoYW5uZWwgaWQgPSBhdl9jaGFu bmVsX2xheW91dF9jaGFubmVsX2Zyb21faW5kZXgoSU5MQVlPVVQoY3R4LCBpKSwgaik7CisgICAg ICAgICAgICBpZiAoSU5MQVlPVVQoY3R4LCBpKS0+b3JkZXIgPT0gQVZfQ0hBTk5FTF9PUkRFUl9D VVNUT00pCisgICAgICAgICAgICAgICAgb3V0bGF5b3V0LnUubWFwW2NoX2lkeF0gPSBJTkxBWU9V VChjdHgsIGkpLT51Lm1hcFtqXTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBv dXRsYXlvdXQudS5tYXBbY2hfaWR4XS5pZCA9IChpZCA9PSBBVl9DSEFOX05PTkUgPyBBVl9DSEFO X1VOS05PV04gOiBpZCk7CiAgICAgICAgICAgICBpZiAoaWQgPj0gMCAmJiBpZCA8IDY0KSB7CiAg ICAgICAgICAgICAgICAgb3V0bWFzayB8PSAoMVVMTCA8PCBpZCk7CiAgICAgICAgICAgICAgICAg bmF0aXZlX2xheW91dF9yb3V0ZXNbaWRdID0gY2hfaWR4OwpAQCAtMTEyLDYgKzEzMyw5IEBAIHN0 YXRpYyBpbnQgcXVlcnlfZm9ybWF0cyhBVkZpbHRlckNvbnRleHQgKmN0eCkKICAgICAgICAgICAg IGNoX2lkeCsrOwogICAgICAgICB9CiAgICAgfQorICAgIHN3aXRjaCAocy0+bGF5b3V0X21vZGUp IHsKKyAgICBjYXNlIExNX0xFR0FDWToKKyAgICBhdl9jaGFubmVsX2xheW91dF91bmluaXQoJm91 dGxheW91dCk7CiAgICAgaWYgKGF2X3BvcGNvdW50NjQob3V0bWFzaykgIT0gbmJfY2gpIHsKICAg ICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX1dBUk5JTkcsCiAgICAgICAgICAgICAgICAiSW5wdXQg Y2hhbm5lbCBsYXlvdXRzIG92ZXJsYXA6ICIKQEAgLTEyNSwyMiArMTQ5LDM5IEBAIHN0YXRpYyBp bnQgcXVlcnlfZm9ybWF0cyhBVkZpbHRlckNvbnRleHQgKmN0eCkKICAgICAgICAgICAgICAgICBz LT5yb3V0ZVtuYXRpdmVfbGF5b3V0X3JvdXRlc1tjXV0gPSBjaF9pZHgrKzsKICAgICAgICAgYXZf Y2hhbm5lbF9sYXlvdXRfZnJvbV9tYXNrKCZvdXRsYXlvdXQsIG91dG1hc2spOwogICAgIH0KKyAg ICBicmVhazsKKyAgICBjYXNlIExNX1JFU0VUOgorICAgICAgICBhdl9jaGFubmVsX2xheW91dF91 bmluaXQoJm91dGxheW91dCk7CisgICAgICAgIG91dGxheW91dC5vcmRlciA9IEFWX0NIQU5ORUxf T1JERVJfVU5TUEVDOworICAgICAgICBvdXRsYXlvdXQubmJfY2hhbm5lbHMgPSBuYl9jaDsKKyAg ICAgICAgYnJlYWs7CisgICAgY2FzZSBMTV9OT1JNQUw6CisgICAgICAgIHJldCA9IGF2X2NoYW5u ZWxfbGF5b3V0X3JldHlwZSgmb3V0bGF5b3V0LCAwLCBBVl9DSEFOTkVMX0xBWU9VVF9SRVRZUEVf RkxBR19DQU5PTklDQUwpOworICAgICAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgICAgIGdvdG8g b3V0OworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBhdl91bnJlYWNoYWJs ZSgiSW52YWxpZCBsYXlvdXRfbW9kZSIpOworICAgIH0KICAgICBpZiAoKHJldCA9IGZmX3NldF9j b21tb25fZm9ybWF0c19mcm9tX2xpc3QoY3R4LCBwYWNrZWRfc2FtcGxlX2ZtdHMpKSA8IDApCi0g ICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIGdvdG8gb3V0OwogICAgIGZvciAoaSA9IDA7IGkg PCBzLT5uYl9pbnB1dHM7IGkrKykgewogICAgICAgICBsYXlvdXRzID0gTlVMTDsKICAgICAgICAg aWYgKChyZXQgPSBmZl9hZGRfY2hhbm5lbF9sYXlvdXQoJmxheW91dHMsIElOTEFZT1VUKGN0eCwg aSkpKSA8IDApCi0gICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICAgICAgZ290byBvdXQ7 CiAgICAgICAgIGlmICgocmV0ID0gZmZfY2hhbm5lbF9sYXlvdXRzX3JlZihsYXlvdXRzLCAmY3R4 LT5pbnB1dHNbaV0tPm91dGNmZy5jaGFubmVsX2xheW91dHMpKSA8IDApCi0gICAgICAgICAgICBy ZXR1cm4gcmV0OworICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgfQogICAgIGxheW91dHMgPSBO VUxMOwogICAgIGlmICgocmV0ID0gZmZfYWRkX2NoYW5uZWxfbGF5b3V0KCZsYXlvdXRzLCAmb3V0 bGF5b3V0KSkgPCAwKQotICAgICAgICByZXR1cm4gcmV0OworICAgICAgICBnb3RvIG91dDsKICAg ICBpZiAoKHJldCA9IGZmX2NoYW5uZWxfbGF5b3V0c19yZWYobGF5b3V0cywgJmN0eC0+b3V0cHV0 c1swXS0+aW5jZmcuY2hhbm5lbF9sYXlvdXRzKSkgPCAwKQotICAgICAgICByZXR1cm4gcmV0Owor ICAgICAgICBnb3RvIG91dDsKIAotICAgIHJldHVybiBmZl9zZXRfY29tbW9uX2FsbF9zYW1wbGVy YXRlcyhjdHgpOworICAgIHJldCA9IGZmX3NldF9jb21tb25fYWxsX3NhbXBsZXJhdGVzKGN0eCk7 CitvdXQ6CisgICAgYXZfY2hhbm5lbF9sYXlvdXRfdW5pbml0KCZvdXRsYXlvdXQpOworICAgIHJl dHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgY29uZmlnX291dHB1dChBVkZpbHRlckxpbmsgKm91 dGxpbmspCi0tIAoyLjUyLjAKCgpGcm9tIDEzOWVlNmY2Y2ExODEwOWE1M2VlYjJhYzljZjEwOTdh YTMxMzI2ZDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcnRvbiBCYWxpbnQgPGN1 c0BwYXNzd2QuaHU+CkRhdGU6IFNhdCwgMjkgTm92IDIwMjUgMDA6MTA6NTAgKzAxMDAKU3ViamVj dDogW1BBVENIIDIzOC8zMDRdIGF2ZmlsdGVyL2FmX2FtZXJnZTogZml4IGluZGVudGF0aW9uCgpT aWduZWQtb2ZmLWJ5OiBNYXJ0b24gQmFsaW50IDxjdXNAcGFzc3dkLmh1PgotLS0KIGxpYmF2Zmls dGVyL2FmX2FtZXJnZS5jIHwgMzAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbGliYXZmaWx0ZXIvYWZfYW1lcmdlLmMgYi9saWJhdmZpbHRlci9hZl9hbWVyZ2UuYwppbmRl eCBlMzAwY2Y5YzdiLi4xM2RlY2RhZGM1IDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci9hZl9hbWVy Z2UuYworKysgYi9saWJhdmZpbHRlci9hZl9hbWVyZ2UuYwpAQCAtMTM1LDIxICsxMzUsMjEgQEAg c3RhdGljIGludCBxdWVyeV9mb3JtYXRzKEFWRmlsdGVyQ29udGV4dCAqY3R4KQogICAgIH0KICAg ICBzd2l0Y2ggKHMtPmxheW91dF9tb2RlKSB7CiAgICAgY2FzZSBMTV9MRUdBQ1k6Ci0gICAgYXZf Y2hhbm5lbF9sYXlvdXRfdW5pbml0KCZvdXRsYXlvdXQpOwotICAgIGlmIChhdl9wb3Bjb3VudDY0 KG91dG1hc2spICE9IG5iX2NoKSB7Ci0gICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19XQVJOSU5H LAotICAgICAgICAgICAgICAgIklucHV0IGNoYW5uZWwgbGF5b3V0cyBvdmVybGFwOiAiCi0gICAg ICAgICAgICAgICAib3V0cHV0IGxheW91dCB3aWxsIGJlIGRldGVybWluZWQgYnkgdGhlIG51bWJl ciBvZiBkaXN0aW5jdCBpbnB1dCBjaGFubmVsc1xuIik7Ci0gICAgICAgIGF2X2NoYW5uZWxfbGF5 b3V0X2RlZmF1bHQoJm91dGxheW91dCwgbmJfY2gpOwotICAgICAgICBpZiAoIUtOT1dOKCZvdXRs YXlvdXQpICYmIG5iX2NoKQotICAgICAgICAgICAgYXZfY2hhbm5lbF9sYXlvdXRfZnJvbV9tYXNr KCZvdXRsYXlvdXQsIDB4RkZGRkZGRkZGRkZGRkZGRlVMTCA+PiAoNjQgLSBuYl9jaCkpOwotICAg IH0gZWxzZSB7Ci0gICAgICAgIGZvciAoaW50IGMgPSAwLCBjaF9pZHggPSAwOyBjIDwgNjQ7IGMr KykKLSAgICAgICAgICAgIGlmICgoMVVMTCA8PCBjKSAmIG91dG1hc2spCi0gICAgICAgICAgICAg ICAgcy0+cm91dGVbbmF0aXZlX2xheW91dF9yb3V0ZXNbY11dID0gY2hfaWR4Kys7Ci0gICAgICAg IGF2X2NoYW5uZWxfbGF5b3V0X2Zyb21fbWFzaygmb3V0bGF5b3V0LCBvdXRtYXNrKTsKLSAgICB9 Ci0gICAgYnJlYWs7CisgICAgICAgIGF2X2NoYW5uZWxfbGF5b3V0X3VuaW5pdCgmb3V0bGF5b3V0 KTsKKyAgICAgICAgaWYgKGF2X3BvcGNvdW50NjQob3V0bWFzaykgIT0gbmJfY2gpIHsKKyAgICAg ICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19XQVJOSU5HLAorICAgICAgICAgICAgICAgICAgICJJ bnB1dCBjaGFubmVsIGxheW91dHMgb3ZlcmxhcDogIgorICAgICAgICAgICAgICAgICAgICJvdXRw dXQgbGF5b3V0IHdpbGwgYmUgZGV0ZXJtaW5lZCBieSB0aGUgbnVtYmVyIG9mIGRpc3RpbmN0IGlu cHV0IGNoYW5uZWxzXG4iKTsKKyAgICAgICAgICAgIGF2X2NoYW5uZWxfbGF5b3V0X2RlZmF1bHQo Jm91dGxheW91dCwgbmJfY2gpOworICAgICAgICAgICAgaWYgKCFLTk9XTigmb3V0bGF5b3V0KSAm JiBuYl9jaCkKKyAgICAgICAgICAgICAgICBhdl9jaGFubmVsX2xheW91dF9mcm9tX21hc2soJm91 dGxheW91dCwgMHhGRkZGRkZGRkZGRkZGRkZGVUxMID4+ICg2NCAtIG5iX2NoKSk7CisgICAgICAg IH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKGludCBjID0gMCwgY2hfaWR4ID0gMDsgYyA8IDY0 OyBjKyspCisgICAgICAgICAgICAgICAgaWYgKCgxVUxMIDw8IGMpICYgb3V0bWFzaykKKyAgICAg ICAgICAgICAgICAgICAgcy0+cm91dGVbbmF0aXZlX2xheW91dF9yb3V0ZXNbY11dID0gY2hfaWR4 Kys7CisgICAgICAgICAgICBhdl9jaGFubmVsX2xheW91dF9mcm9tX21hc2soJm91dGxheW91dCwg b3V0bWFzayk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMTV9SRVNFVDoK ICAgICAgICAgYXZfY2hhbm5lbF9sYXlvdXRfdW5pbml0KCZvdXRsYXlvdXQpOwogICAgICAgICBv dXRsYXlvdXQub3JkZXIgPSBBVl9DSEFOTkVMX09SREVSX1VOU1BFQzsKLS0gCjIuNTIuMAoKCkZy b20gZmZhNTU4YTYyZDgzMDZhN2NhMzExMDBmNjg2MzBiMzdiMmRhMmQwYSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogTWFydG9uIEJhbGludCA8Y3VzQHBhc3N3ZC5odT4KRGF0ZTogU3Vu LCAzMCBOb3YgMjAyNSAyMzowMDoxNSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjM5LzMwNF0gZmF0 ZS9maWx0ZXItYXVkaW86IGFkZCBhbWVyZ2UgbGF5b3V0X21vZGUgdGVzdAoKU2lnbmVkLW9mZi1i eTogTWFydG9uIEJhbGludCA8Y3VzQHBhc3N3ZC5odT4KLS0tCiB0ZXN0cy9mYXRlL2ZpbHRlci1h dWRpby5tYWsgICAgICAgfCAgNiArKysKIHRlc3RzL3JlZi9mYXRlL2ZpbHRlci1hbWVyZ2UtbW9k ZSB8IDY1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwg NzEgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL3JlZi9mYXRlL2ZpbHRl ci1hbWVyZ2UtbW9kZQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2ZhdGUvZmlsdGVyLWF1ZGlvLm1hayBi L3Rlc3RzL2ZhdGUvZmlsdGVyLWF1ZGlvLm1hawppbmRleCBiMjQ0ZjgyYmI3Li41MjY2NDVhNjM0 IDEwMDY0NAotLS0gYS90ZXN0cy9mYXRlL2ZpbHRlci1hdWRpby5tYWsKKysrIGIvdGVzdHMvZmF0 ZS9maWx0ZXItYXVkaW8ubWFrCkBAIC03NSw2ICs3NSwxMiBAQCBmYXRlLWZpbHRlci1hbWVyZ2U6 IHRlc3RzL2RhdGEvYXN5bnRoLTQ0MTAwLTEud2F2CiBmYXRlLWZpbHRlci1hbWVyZ2U6IFNSQyA9 ICQoVEFSR0VUX1BBVEgpL3Rlc3RzL2RhdGEvYXN5bnRoLTQ0MTAwLTEud2F2CiBmYXRlLWZpbHRl ci1hbWVyZ2U6IENNRCA9IGZyYW1lY3JjIC1pICQoU1JDKSAtaSAkKFNSQykgLWZpbHRlcl9jb21w bGV4ICJbMDphXVsxOmFdYW1lcmdlPWlucHV0cz0yW2FvdXRdIiAtbWFwICJbYW91dF0iCiAKK0ZB VEVfQUZJTFRFUi0kKGNhbGwgRklMVEVSREVNREVDRU5DTVVYLCBBTUVSR0UsIFdBViwgUENNX1Mx NkxFLCBQQ01fUzE2TEUsIFdBVikgKz0gZmF0ZS1maWx0ZXItYW1lcmdlLW1vZGUKK2ZhdGUtZmls dGVyLWFtZXJnZS1tb2RlOiB0ZXN0cy9kYXRhL2FzeW50aC00NDEwMC0xLndhdgorZmF0ZS1maWx0 ZXItYW1lcmdlLW1vZGU6IFNSQyA9ICQoVEFSR0VUX1BBVEgpL3Rlc3RzL2RhdGEvYXN5bnRoLTQ0 MTAwLTEud2F2CitmYXRlLWZpbHRlci1hbWVyZ2UtbW9kZTogQ01EID0gZnJhbWVjcmMgLWNoYW5u ZWxfbGF5b3V0IEZMIC1pICQoU1JDKSAtc3MgMC4xIC1jaGFubmVsX2xheW91dCBGUiAtaSAkKFNS QykgLXNzIDAuMiAtaSAkKFNSQykgLXNzIDAuMyAtaSAkKFNSQykgLXNzIDAuNCAtaSAkKFNSQykg LXNzIDAuNSAtaSAkKFNSQykgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1maWx0 ZXJfY29tcGxleCAiWzE6YV1bMDphXWFtZXJnZVt0bXAxXTtbMjphXVszOmFdYW1lcmdlPWxheW91 dF9tb2RlPXJlc2V0W3RtcDJdO1t0bXAxXVt0bXAyXVs0OmFdWzU6YV1hbWVyZ2U9aW5wdXRzPTQ6 bGF5b3V0X21vZGU9bm9ybWFsW2FvdXRdIiAtbWFwICJbYW91dF0iCisKIEZBVEVfQUZJTFRFUi0k KGNhbGwgRklMVEVSREVNREVDRU5DTVVYLCBBUEFELCBXQVYsIFBDTV9TMTZMRSwgUENNX1MxNkxF LCBXQVYpICs9IGZhdGUtZmlsdGVyLWFwYWQKIGZhdGUtZmlsdGVyLWFwYWQ6IHRlc3RzL2RhdGEv YXN5bnRoLTQ0MTAwLTIud2F2CiBmYXRlLWZpbHRlci1hcGFkOiBTUkMgPSAkKFRBUkdFVF9QQVRI KS90ZXN0cy9kYXRhL2FzeW50aC00NDEwMC0yLndhdgpkaWZmIC0tZ2l0IGEvdGVzdHMvcmVmL2Zh dGUvZmlsdGVyLWFtZXJnZS1tb2RlIGIvdGVzdHMvcmVmL2ZhdGUvZmlsdGVyLWFtZXJnZS1tb2Rl Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmIwNjYzMjNmMTMKLS0tIC9k ZXYvbnVsbAorKysgYi90ZXN0cy9yZWYvZmF0ZS9maWx0ZXItYW1lcmdlLW1vZGUKQEAgLTAsMCAr MSw2NSBAQAorI3RiIDA6IDEvNDQxMDAKKyNtZWRpYV90eXBlIDA6IGF1ZGlvCisjY29kZWNfaWQg MDogcGNtX3MxNmxlCisjc2FtcGxlX3JhdGUgMDogNDQxMDAKKyNjaGFubmVsX2xheW91dF9uYW1l IDA6IDYgY2hhbm5lbHMgKEZMK0ZSK1VOSytVTksrRkMrRkMpCiswLCAgICAgICAgICAwLCAgICAg ICAgICAwLCAgICAgNDA5NiwgICAgNDkxNTIsIDB4ZDViNTllMGIKKzAsICAgICAgIDQwOTYsICAg ICAgIDQwOTYsICAgICA0MDk2LCAgICA0OTE1MiwgMHg1ZDk5YjJiYworMCwgICAgICAgODE5Miwg ICAgICAgODE5MiwgICAgIDQwOTYsICAgIDQ5MTUyLCAweGFmYTg5MDFmCiswLCAgICAgIDEyMjg4 LCAgICAgIDEyMjg4LCAgICAgNDA5NiwgICAgNDkxNTIsIDB4OTdjZDk4YjMKKzAsICAgICAgMTYz ODQsICAgICAgMTYzODQsICAgICA0MDk2LCAgICA0OTE1MiwgMHg3NjdmYTk1MQorMCwgICAgICAy MDQ4MCwgICAgICAyMDQ4MCwgICAgIDQwOTYsICAgIDQ5MTUyLCAweDA5YmM4NzYzCiswLCAgICAg IDI0NTc2LCAgICAgIDI0NTc2LCAgICAgNDA5NiwgICAgNDkxNTIsIDB4ZDUwZTkwYWUKKzAsICAg ICAgMjg2NzIsICAgICAgMjg2NzIsICAgICA0MDk2LCAgICA0OTE1MiwgMHhjN2NlOTc4ZAorMCwg ICAgICAzMjc2OCwgICAgICAzMjc2OCwgICAgIDQwOTYsICAgIDQ5MTUyLCAweGI5MGFjNTIwCisw LCAgICAgIDM2ODY0LCAgICAgIDM2ODY0LCAgICAgNDA5NiwgICAgNDkxNTIsIDB4MzJhMmFjNTIK KzAsICAgICAgNDA5NjAsICAgICAgNDA5NjAsICAgICA0MDk2LCAgICA0OTE1MiwgMHg3MWVjODVj OAorMCwgICAgICA0NTA1NiwgICAgICA0NTA1NiwgICAgIDQwOTYsICAgIDQ5MTUyLCAweDQ0MDFi OThhCiswLCAgICAgIDQ5MTUyLCAgICAgIDQ5MTUyLCAgICAgNDA5NiwgICAgNDkxNTIsIDB4OTcy Y2IzYjcKKzAsICAgICAgNTMyNDgsICAgICAgNTMyNDgsICAgICA0MDk2LCAgICA0OTE1MiwgMHgy YzM3ZjYyZAorMCwgICAgICA1NzM0NCwgICAgICA1NzM0NCwgICAgIDQwOTYsICAgIDQ5MTUyLCAw eGVlNjEyMDAzCiswLCAgICAgIDYxNDQwLCAgICAgIDYxNDQwLCAgICAgNDA5NiwgICAgNDkxNTIs IDB4NGY0NmU5ODcKKzAsICAgICAgNjU1MzYsICAgICAgNjU1MzYsICAgICA0MDk2LCAgICA0OTE1 MiwgMHhiMzk0ODRjYQorMCwgICAgICA2OTYzMiwgICAgICA2OTYzMiwgICAgIDQwOTYsICAgIDQ5 MTUyLCAweGM5MDQyMDI4CiswLCAgICAgIDczNzI4LCAgICAgIDczNzI4LCAgICAgNDA5NiwgICAg NDkxNTIsIDB4YjE5NmEzOWEKKzAsICAgICAgNzc4MjQsICAgICAgNzc4MjQsICAgICA0MDk2LCAg ICA0OTE1MiwgMHhlNDYyNzczOQorMCwgICAgICA4MTkyMCwgICAgICA4MTkyMCwgICAgIDQwOTYs ICAgIDQ5MTUyLCAweDMxMDdkOTkzCiswLCAgICAgIDg2MDE2LCAgICAgIDg2MDE2LCAgICAgNDA5 NiwgICAgNDkxNTIsIDB4ODg2MDY1OTcKKzAsICAgICAgOTAxMTIsICAgICAgOTAxMTIsICAgICA0 MDk2LCAgICA0OTE1MiwgMHhhM2RmOTY1NgorMCwgICAgICA5NDIwOCwgICAgICA5NDIwOCwgICAg IDQwOTYsICAgIDQ5MTUyLCAweDQ5NDQyNzA1CiswLCAgICAgIDk4MzA0LCAgICAgIDk4MzA0LCAg ICAgNDA5NiwgICAgNDkxNTIsIDB4ODAwMjU2YjIKKzAsICAgICAxMDI0MDAsICAgICAxMDI0MDAs ICAgICA0MDk2LCAgICA0OTE1MiwgMHgxY2I5YWYxMgorMCwgICAgIDEwNjQ5NiwgICAgIDEwNjQ5 NiwgICAgIDQwOTYsICAgIDQ5MTUyLCAweGJlMmQzZTU5CiswLCAgICAgMTEwNTkyLCAgICAgMTEw NTkyLCAgICAgNDA5NiwgICAgNDkxNTIsIDB4NzNlMTcxMzkKKzAsICAgICAxMTQ2ODgsICAgICAx MTQ2ODgsICAgICA0MDk2LCAgICA0OTE1MiwgMHhjOTFhNzc4NworMCwgICAgIDExODc4NCwgICAg IDExODc4NCwgICAgIDQwOTYsICAgIDQ5MTUyLCAweDRlZGY4YzU1CiswLCAgICAgMTIyODgwLCAg ICAgMTIyODgwLCAgICAgNDA5NiwgICAgNDkxNTIsIDB4NzAwNTczMTkKKzAsICAgICAxMjY5NzYs ICAgICAxMjY5NzYsICAgICA0MDk2LCAgICA0OTE1MiwgMHg4YTYyOWE1NQorMCwgICAgIDEzMTA3 MiwgICAgIDEzMTA3MiwgICAgIDQwOTYsICAgIDQ5MTUyLCAweGM5Nzg2YjI4CiswLCAgICAgMTM1 MTY4LCAgICAgMTM1MTY4LCAgICAgNDA5NiwgICAgNDkxNTIsIDB4MmVmZDdlN2MKKzAsICAgICAx MzkyNjQsICAgICAxMzkyNjQsICAgICA0MDk2LCAgICA0OTE1MiwgMHgyODg3N2NkMAorMCwgICAg IDE0MzM2MCwgICAgIDE0MzM2MCwgICAgIDQwOTYsICAgIDQ5MTUyLCAweGZkNjQ5NjdlCiswLCAg ICAgMTQ3NDU2LCAgICAgMTQ3NDU2LCAgICAgNDA5NiwgICAgNDkxNTIsIDB4MGNhYThiZTUKKzAs ICAgICAxNTE1NTIsICAgICAxNTE1NTIsICAgICA0MDk2LCAgICA0OTE1MiwgMHgwOTdkYzNjMgor MCwgICAgIDE1NTY0OCwgICAgIDE1NTY0OCwgICAgIDQwOTYsICAgIDQ5MTUyLCAweGRlNzg1MjRk CiswLCAgICAgMTU5NzQ0LCAgICAgMTU5NzQ0LCAgICAgNDA5NiwgICAgNDkxNTIsIDB4YmRkYjk2 OGIKKzAsICAgICAxNjM4NDAsICAgICAxNjM4NDAsICAgICA0MDk2LCAgICA0OTE1MiwgMHgxNDYz NDdjZAorMCwgICAgIDE2NzkzNiwgICAgIDE2NzkzNiwgICAgIDQwOTYsICAgIDQ5MTUyLCAweDIx YWI4ZjBkCiswLCAgICAgMTcyMDMyLCAgICAgMTcyMDMyLCAgICAgNDA5NiwgICAgNDkxNTIsIDB4 ZDJhMGI2MGUKKzAsICAgICAxNzYxMjgsICAgICAxNzYxMjgsICAgICA0MDk2LCAgICA0OTE1Miwg MHhjNzkxNmU0MAorMCwgICAgIDE4MDIyNCwgICAgIDE4MDIyNCwgICAgIDQwOTYsICAgIDQ5MTUy LCAweGQ0MmY1YjY2CiswLCAgICAgMTg0MzIwLCAgICAgMTg0MzIwLCAgICAgNDA5NiwgICAgNDkx NTIsIDB4MmRhZWRhMzUKKzAsICAgICAxODg0MTYsICAgICAxODg0MTYsICAgICA0MDk2LCAgICA0 OTE1MiwgMHhkMDIyMGEyNQorMCwgICAgIDE5MjUxMiwgICAgIDE5MjUxMiwgICAgIDQwOTYsICAg IDQ5MTUyLCAweGZiOTYyYjBkCiswLCAgICAgMTk2NjA4LCAgICAgMTk2NjA4LCAgICAgNDA5Niwg ICAgNDkxNTIsIDB4YjFjNjQxOGMKKzAsICAgICAyMDA3MDQsICAgICAyMDA3MDQsICAgICA0MDk2 LCAgICA0OTE1MiwgMHhjNWUzNTgyNworMCwgICAgIDIwNDgwMCwgICAgIDIwNDgwMCwgICAgIDQw OTYsICAgIDQ5MTUyLCAweGYzY2IwYzEyCiswLCAgICAgMjA4ODk2LCAgICAgMjA4ODk2LCAgICAg NDA5NiwgICAgNDkxNTIsIDB4ZmVjNjRkOTAKKzAsICAgICAyMTI5OTIsICAgICAyMTI5OTIsICAg ICA0MDk2LCAgICA0OTE1MiwgMHhiODY4NWY3OAorMCwgICAgIDIxNzA4OCwgICAgIDIxNzA4OCwg ICAgIDQwOTYsICAgIDQ5MTUyLCAweGU3ZDE1NjJmCiswLCAgICAgMjIxMTg0LCAgICAgMjIxMTg0 LCAgICAgNDA5NiwgICAgNDkxNTIsIDB4ZjQ1M2NiYTkKKzAsICAgICAyMjUyODAsICAgICAyMjUy ODAsICAgICA0MDk2LCAgICA0OTE1MiwgMHgyODkyOGZjZQorMCwgICAgIDIyOTM3NiwgICAgIDIy OTM3NiwgICAgIDQwOTYsICAgIDQ5MTUyLCAweDY0YTkwOWQ5CiswLCAgICAgMjMzNDcyLCAgICAg MjMzNDcyLCAgICAgNDA5NiwgICAgNDkxNTIsIDB4MmJmNzYyYjEKKzAsICAgICAyMzc1NjgsICAg ICAyMzc1NjgsICAgICA0MDk2LCAgICA0OTE1MiwgMHgwODVkYWVjOAorMCwgICAgIDI0MTY2NCwg ICAgIDI0MTY2NCwgICAgICA4ODYsICAgIDEwNjMyLCAweDE1MjI5MDZjCi0tIAoyLjUyLjAKCgpG cm9tIGQ0ODY1ZDdhOTEzZjIyNmZmOWZjOTQ0ZTkyOGUxYTBhY2RhNGEwNWEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IE9saXZlciBDaGFuZyA8b2NoYW5nQGdvb2dsZS5jb20+CkRhdGU6 IEZyaSwgNSBEZWMgMjAyNSAwMjowNzoxMCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMjQwLzMwNF0g YXZjb2RlYy9kcHg6IEZpeCBoZWFwLWJ1ZmZlci1vdmVyZmxvdyBpbiAxNi1iaXQKIGRlY29kaW5n CgpGaXhlcyBhIGhlYXAtYnVmZmVyLW92ZXJmbG93IGluIGBsaWJhdmNvZGVjL2RweC5jYCB0cmln Z2VyZWQgYnkgYSBzdGFsZQpgdW5wYWRkZWRfMTBiaXRgIGZsYWcgaW4gdGhlIGBEUFhEZWNDb250 ZXh0YC4gVGhpcyBmbGFnLCBzZXQgZm9yIDEwLWJpdAp1bnBhZGRlZCBmcmFtZXMsIHBlcnNpc3Rl ZCBhY3Jvc3MgYGRlY29kZV9mcmFtZWAgY2FsbHMuIElmIGEgc3Vic2VxdWVudApmcmFtZSB3YXMg MTYtYml0LCB0aGUgc3RhbGUgZmxhZyBjYXVzZWQgaW5jb3JyZWN0IGJ1ZmZlciBzaXplCnZhbGlk YXRpb24sIGFsbG93aW5nIHRydW5jYXRlZCBidWZmZXJzIHRvIHBhc3MgY2hlY2tzIGRlc2lnbmVk IGZvcgpzbWFsbGVyIDEwLWJpdCBwYWNrZWQgZGF0YS4gVGhpcyBsZWQgdG8gYW4gb3V0LW9mLWJv dW5kcyByZWFkIGluCmBhdl9pbWFnZV9jb3B5X3BsYW5lYCBkdXJpbmcgMTYtYml0IGRlY29kaW5n LgoKVGhlIGZpeCBleHBsaWNpdGx5IHJlc2V0cyBgZHB4LT51bnBhZGRlZF8xMGJpdCA9IDBgIGF0 IHRoZSBzdGFydCBvZgpgZGVjb2RlX2ZyYW1lYCB0byBlbnN1cmUgY29ycmVjdCB2YWxpZGF0aW9u IGZvciBlYWNoIGZyYW1lLgoKRml4ZXM6IGh0dHBzOi8vaXNzdWVzLm9zcy1mdXp6LmNvbS9pc3N1 ZXMvNDY0NDcxNzkyClNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgTmllZGVybWF5ZXIgPG1pY2hhZWxA bmllZGVybWF5ZXIuY2M+CkZpeGVzOiBvdXQgb2YgYXJyYXkgcmVhZApGaXhlczogNDY0NDcxNzky L2NsdXN0ZXJmdXp6LXRlc3RjYXNlLW1pbmltaXplZC1mZm1wZWdfQVZfQ09ERUNfSURfRFBYX0RF Q19mdXp6ZXItNTI3NTUyMjIxMDAwNDk5MgotLS0KIGxpYmF2Y29kZWMvZHB4LmMgfCAxICsKIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvZHB4 LmMgYi9saWJhdmNvZGVjL2RweC5jCmluZGV4IDczNTViNTBmN2EuLjhjMDc1ZmQ1MzggMTAwNjQ0 Ci0tLSBhL2xpYmF2Y29kZWMvZHB4LmMKKysrIGIvbGliYXZjb2RlYy9kcHguYwpAQCAtNjEyLDYg KzYxMiw3IEBAIHN0YXRpYyBpbnQgZGVjb2RlX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwg QVZGcmFtZSAqcCwKICAgICBhdl9kaWN0X3NldCgmcC0+bWV0YWRhdGEsICJJbnB1dCBEZXZpY2Ui LCBpbnB1dF9kZXZpY2UsIDApOwogCiAgICAgLy8gU29tZSBkZXZpY2VzIGRvIG5vdCBwYWQgMTBi aXQgc2FtcGxlcyB0byB3aG9sZSAzMmJpdCB3b3JkcyBwZXIgcm93CisgICAgZHB4LT51bnBhZGRl ZF8xMGJpdCA9IDA7CiAgICAgaWYgKCFtZW1jbXAoaW5wdXRfZGV2aWNlLCAiU2Nhbml0eSIsIDcp IHx8CiAgICAgICAgICFtZW1jbXAoY3JlYXRvciwgIkxhc2VyZ3JhcGhpY3MgSW5jLiIsIDE4KSkg ewogICAgICAgICBpZiAoYXZjdHgtPmJpdHNfcGVyX3Jhd19zYW1wbGUgPT0gMTApCi0tIAoyLjUy LjAKCgpGcm9tIDAxMjczYTljMzBiMDAwNDE0YWQwNDYxZWRjY2I2MjBmZmFlOGQwOWMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEx5bm5lIDxkZXZAbHlubmUuZWU+CkRhdGU6IFN1biwg NyBEZWMgMjAyNSAxOToxNToyOSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjQxLzMwNF0gZm9yZ2Vq by9sYWJlbGVyOiBhdXRvbWF0aWNhbGx5IGZsYWcgVnVsa2FuLXJlbGF0ZWQKIGNvbW1pdHMgIzIw MTE4CgotLS0KIC5mb3JnZWpvL2xhYmVsZXIvbGFiZWxlci5qcyAgfCAzICsrLQogLmZvcmdlam8v bGFiZWxlci9sYWJlbGVyLnltbCB8IDQgKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlv bnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS8uZm9yZ2Vqby9sYWJlbGVyL2xhYmVs ZXIuanMgYi8uZm9yZ2Vqby9sYWJlbGVyL2xhYmVsZXIuanMKaW5kZXggYjBjMDg5ODY2OC4uMTcz ZDk4MDgwYyAxMDA2NDQKLS0tIGEvLmZvcmdlam8vbGFiZWxlci9sYWJlbGVyLmpzCisrKyBiLy5m b3JnZWpvL2xhYmVsZXIvbGFiZWxlci5qcwpAQCAtMTEsNyArMTEsOCBAQCBtb2R1bGUuZXhwb3J0 cyA9IGFzeW5jICh7Z2l0aHViLCBjb250ZXh0fSkgPT4gewogICAgICAgJ2F2dXRpbCc6ICdhdnV0 aWwnLAogICAgICAgJ3N3cmVzYW1wbGUnOiAnc3dyZXNhbXBsZScsCiAgICAgICAnc3dzY2FsZSc6 ICdzd3NjYWxlJywKLSAgICAgICdmZnRvb2xzJzogJ0NMSScKKyAgICAgICdmZnRvb2xzJzogJ0NM SScsCisgICAgICAndnVsa2FuJzogJ3Z1bGthbicKICAgICB9OwogCiAgICAgYXN5bmMgZnVuY3Rp b24gaXNPcmdNZW1iZXIodXNlcm5hbWUpIHsKZGlmZiAtLWdpdCBhLy5mb3JnZWpvL2xhYmVsZXIv bGFiZWxlci55bWwgYi8uZm9yZ2Vqby9sYWJlbGVyL2xhYmVsZXIueW1sCmluZGV4IDIxMmRkMTJh OWEuLjQ0NmE2NzUzMTYgMTAwNjQ0Ci0tLSBhLy5mb3JnZWpvL2xhYmVsZXIvbGFiZWxlci55bWwK KysrIGIvLmZvcmdlam8vbGFiZWxlci9sYWJlbGVyLnltbApAQCAtMjksMyArMjksNyBAQCBzd3Nj YWxlOgogQ0xJOgogICAtIGNoYW5nZWQtZmlsZXM6CiAgICAgLSBhbnktZ2xvYi10by1hbnktZmls ZTogJ2ZmdG9vbHMvKionCisKK3Z1bGthbjoKKyAgLSBjaGFuZ2VkLWZpbGVzOgorICAgIC0gYW55 LWdsb2ItdG8tYW55LWZpbGU6ICcqKi8qdnVsa2FuKicKLS0gCjIuNTIuMAoKCkZyb20gZmRlYjEx M2U1ZjliZjkxNjdiYjkyZjY3NmQwYWFjN2U4ODNjMzYxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogQXJheiBJdXN1Ym92IDxQcmltZWFkdmljZUBnbWFpbC5jb20+CkRhdGU6IEZyaSwg NSBEZWMgMjAyNSAxNjoyNzo0MSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjQyLzMwNF0gYXZmaWx0 ZXI6IEQzRDEyIHNjYWxlIHZpZGVvIGZpbHRlciBzdXBwb3J0CgpUaGlzIGZpbHRlciBhbGxvd3Mg c2NhbGluZyBvZiB2aWRlbyBmcmFtZXMgdXNpbmcgRGlyZWN0M0QgMTIgYWNjZWxlcmF0aW9uLgoK RXhhbXBsZToKICAgIGZmbXBlZyAtaHdhY2NlbCBkM2QxMnZhIC1od2FjY2VsX291dHB1dF9mb3Jt YXQgZDNkMTIgXAogICAgICAgICAgIC1pIGlucHV0Lm1wNCAtdmYgc2NhbGVfZDNkMTI9MTkyMDox MjgwIFwKICAgICAgICAgICAtYzp2IGhldmNfZDNkMTJ2YSAteSBvdXRwdXRfMTkyMHgxMjgwLm1w NAotLS0KIENoYW5nZWxvZyAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogY29uZmlndXJlICAg ICAgICAgICAgICAgICAgICB8ICAgMiArCiBsaWJhdmZpbHRlci9NYWtlZmlsZSAgICAgICAgIHwg ICAxICsKIGxpYmF2ZmlsdGVyL2FsbGZpbHRlcnMuYyAgICAgfCAgIDEgKwogbGliYXZmaWx0ZXIv dmZfc2NhbGVfZDNkMTIuYyB8IDc3NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogNSBmaWxlcyBjaGFuZ2VkLCA3NzkgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IGxpYmF2ZmlsdGVyL3ZmX3NjYWxlX2QzZDEyLmMKCmRpZmYgLS1naXQgYS9DaGFuZ2Vsb2cgYi9D aGFuZ2Vsb2cKaW5kZXggY2RhNTllYmM5MC4uZWY3MmFmMWU5MyAxMDA2NDQKLS0tIGEvQ2hhbmdl bG9nCisrKyBiL0NoYW5nZWxvZwpAQCAtMTQsNiArMTQsNyBAQCB2ZXJzaW9uIDxuZXh0PjoKIC0g UHJvUmVzIFZ1bGthbiBod2FjY2VsCiAtIERQWCBWdWxrYW4gaHdhY2NlbAogLSBSb2NrY2hpcCBI LjI2NC9IRVZDIGhhcmR3YXJlIGVuY29kZXIKKy0gQWRkIHZmX3NjYWxlX2QzZDEyIGZpbHRlcgog CiAKIHZlcnNpb24gOC4wOgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4 IDA0ZTA4NmMzMmEuLjE4OWU5NzM1MDEgMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysgYi9jb25m aWd1cmUKQEAgLTM0MzAsNiArMzQzMCw3IEBAIGRkYWdyYWJfZmlsdGVyX2RlcHM9ImQzZDExdmEg SURYR0lPdXRwdXQxIERYR0lfT1VURFVQTF9GUkFNRV9JTkZPIgogZ2Z4Y2FwdHVyZV9maWx0ZXJf ZGVwcz0iY3h4MTcgdGhyZWFkcyBkM2QxMXZhIElHcmFwaGljc0NhcHR1cmVJdGVtSW50ZXJvcCBf X3hfQUJJX0NXaW5kb3dzX0NHcmFwaGljc19DQ2FwdHVyZV9DSUdyYXBoaWNzQ2FwdHVyZVNlc3Np b24zIgogZ2Z4Y2FwdHVyZV9maWx0ZXJfZXh0cmFsaWJzPSItbHN0ZGMrKyIKIHNjYWxlX2QzZDEx X2ZpbHRlcl9kZXBzPSJkM2QxMXZhIgorc2NhbGVfZDNkMTJfZmlsdGVyX2RlcHM9ImQzZDEydmEg SUQzRDEyVmlkZW9Qcm9jZXNzb3IiCiAKIGFtZl9kZXBzX2FueT0ibGliZGwgTG9hZExpYnJhcnki CiBudmVuY19kZXBzPSJmZm52Y29kZWMiCkBAIC02OTYyLDYgKzY5NjMsNyBAQCBjaGVja190eXBl ICJ3aW5kb3dzLmggZDNkMTEuaCIgIklEM0QxMVZpZGVvQ29udGV4dCIKIGNoZWNrX3R5cGUgIndp bmRvd3MuaCBkM2QxMi5oIiAiSUQzRDEyRGV2aWNlIgogY2hlY2tfdHlwZSAid2luZG93cy5oIGQz ZDEydmlkZW8uaCIgIklEM0QxMlZpZGVvRGVjb2RlciIKIGNoZWNrX3R5cGUgIndpbmRvd3MuaCBk M2QxMnZpZGVvLmgiICJJRDNEMTJWaWRlb0VuY29kZXIiCitjaGVja190eXBlICJ3aW5kb3dzLmgg ZDNkMTJ2aWRlby5oIiAiSUQzRDEyVmlkZW9Qcm9jZXNzb3IiCiB0ZXN0X2NvZGUgY2MgIndpbmRv d3MuaCBkM2QxMnZpZGVvLmgiICJEM0QxMl9GRUFUVVJFX1ZJREVPIGZlYXR1cmUgPSBEM0QxMl9G RUFUVVJFX1ZJREVPX0VOQ09ERVJfQ09ERUMiICYmIFwKIHRlc3RfY29kZSBjYyAid2luZG93cy5o IGQzZDEydmlkZW8uaCIgIkQzRDEyX0ZFQVRVUkVfREFUQV9WSURFT19FTkNPREVSX1JFU09VUkNF X1JFUVVJUkVNRU5UUyByZXEiICYmIGVuYWJsZSBkM2QxMl9lbmNvZGVyX2ZlYXR1cmUKIHRlc3Rf Y29kZSBjYyAid2luZG93cy5oIGQzZDEydmlkZW8uaCIgIkQzRDEyX1ZJREVPX0VOQ09ERVJfQ09E RUMgYyA9IEQzRDEyX1ZJREVPX0VOQ09ERVJfQ09ERUNfQVYxOyAodm9pZCljOyIgJiYgZW5hYmxl IGQzZDEydmFfYXYxX2hlYWRlcnMKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL01ha2VmaWxlIGIv bGliYXZmaWx0ZXIvTWFrZWZpbGUKaW5kZXggNjc4MTRjMGQ3Ny4uNWY1YTE5OWE2MyAxMDA2NDQK LS0tIGEvbGliYXZmaWx0ZXIvTWFrZWZpbGUKKysrIGIvbGliYXZmaWx0ZXIvTWFrZWZpbGUKQEAg LTQ2OSw2ICs0NjksNyBAQCBPQkpTLSQoQ09ORklHX1JPVEFURV9GSUxURVIpICAgICAgICAgICAg ICAgICArPSB2Zl9yb3RhdGUubwogT0JKUy0kKENPTkZJR19TQUJfRklMVEVSKSAgICAgICAgICAg ICAgICAgICAgKz0gdmZfc2FiLm8KIE9CSlMtJChDT05GSUdfU0NBTEVfRklMVEVSKSAgICAgICAg ICAgICAgICAgICs9IHZmX3NjYWxlLm8gc2NhbGVfZXZhbC5vIGZyYW1lc3luYy5vCiBPQkpTLSQo Q09ORklHX1NDQUxFX0QzRDExX0ZJTFRFUikgICAgICAgICAgICArPSB2Zl9zY2FsZV9kM2QxMS5v IHNjYWxlX2V2YWwubworT0JKUy0kKENPTkZJR19TQ0FMRV9EM0QxMl9GSUxURVIpICAgICAgICAg ICAgKz0gdmZfc2NhbGVfZDNkMTIubyBzY2FsZV9ldmFsLm8KIE9CSlMtJChDT05GSUdfU0NBTEVf Q1VEQV9GSUxURVIpICAgICAgICAgICAgICs9IHZmX3NjYWxlX2N1ZGEubyBzY2FsZV9ldmFsLm8g XAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmZfc2Nh bGVfY3VkYS5wdHgubyBjdWRhL2xvYWRfaGVscGVyLm8KIE9CSlMtJChDT05GSUdfU0NBTEVfTlBQ X0ZJTFRFUikgICAgICAgICAgICAgICs9IHZmX3NjYWxlX25wcC5vIHNjYWxlX2V2YWwubwpkaWZm IC0tZ2l0IGEvbGliYXZmaWx0ZXIvYWxsZmlsdGVycy5jIGIvbGliYXZmaWx0ZXIvYWxsZmlsdGVy cy5jCmluZGV4IDBhM2U3ODJmZTkuLjllYTA3YTQ4NmQgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVy L2FsbGZpbHRlcnMuYworKysgYi9saWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMKQEAgLTQ0Miw2ICs0 NDIsNyBAQCBleHRlcm4gY29uc3QgRkZGaWx0ZXIgZmZfdmZfdnBwX2FtZjsKIGV4dGVybiBjb25z dCBGRkZpbHRlciBmZl92Zl9zcl9hbWY7CiBleHRlcm4gY29uc3QgRkZGaWx0ZXIgZmZfdmZfc2Nh bGVfY3VkYTsKIGV4dGVybiBjb25zdCBGRkZpbHRlciBmZl92Zl9zY2FsZV9kM2QxMTsKK2V4dGVy biBjb25zdCBGRkZpbHRlciBmZl92Zl9zY2FsZV9kM2QxMjsKIGV4dGVybiBjb25zdCBGRkZpbHRl ciBmZl92Zl9zY2FsZV9ucHA7CiBleHRlcm4gY29uc3QgRkZGaWx0ZXIgZmZfdmZfc2NhbGVfcXN2 OwogZXh0ZXJuIGNvbnN0IEZGRmlsdGVyIGZmX3ZmX3NjYWxlX3ZhYXBpOwpkaWZmIC0tZ2l0IGEv bGliYXZmaWx0ZXIvdmZfc2NhbGVfZDNkMTIuYyBiL2xpYmF2ZmlsdGVyL3ZmX3NjYWxlX2QzZDEy LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNjk1MGZlYjMyYgotLS0g L2Rldi9udWxsCisrKyBiL2xpYmF2ZmlsdGVyL3ZmX3NjYWxlX2QzZDEyLmMKQEAgLTAsMCArMSw3 NzQgQEAKKy8qKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgorICoKKyAqIEZGbXBl ZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0 aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0 LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNkZWZpbmUg Q09CSk1BQ1JPUworCisjaW5jbHVkZSAibGliYXZ1dGlsL29wdC5oIgorI2luY2x1ZGUgImxpYmF2 dXRpbC9waXhkZXNjLmgiCisjaW5jbHVkZSAiY29tcGF0L3czMmRsZmNuLmgiCisKKyNpbmNsdWRl ICJsaWJhdnV0aWwvaHdjb250ZXh0LmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL2h3Y29udGV4dF9k M2QxMnZhLmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL2h3Y29udGV4dF9kM2QxMnZhX2ludGVybmFs LmgiCisKKyNpbmNsdWRlICJmaWx0ZXJzLmgiCisjaW5jbHVkZSAic2NhbGVfZXZhbC5oIgorI2lu Y2x1ZGUgInZpZGVvLmgiCisKK3R5cGVkZWYgc3RydWN0IFNjYWxlRDNEMTJDb250ZXh0IHsKKyAg ICBjb25zdCBBVkNsYXNzICpjbGFzc0N0eDsKKyAgICBjaGFyICp3X2V4cHI7CisgICAgY2hhciAq aF9leHByOworICAgIGVudW0gQVZQaXhlbEZvcm1hdCBmb3JtYXQ7CisKKyAgICAvKiBEM0QxMiBv YmplY3RzICovCisgICAgSUQzRDEyRGV2aWNlICpkZXZpY2U7CisgICAgSUQzRDEyVmlkZW9EZXZp Y2UgKnZpZGVvX2RldmljZTsKKyAgICBJRDNEMTJWaWRlb1Byb2Nlc3NvciAqdmlkZW9fcHJvY2Vz c29yOworICAgIElEM0QxMkNvbW1hbmRRdWV1ZSAqY29tbWFuZF9xdWV1ZTsKKyAgICBJRDNEMTJW aWRlb1Byb2Nlc3NDb21tYW5kTGlzdCAqY29tbWFuZF9saXN0OworICAgIElEM0QxMkNvbW1hbmRB bGxvY2F0b3IgKmNvbW1hbmRfYWxsb2NhdG9yOworCisgICAgLyogU3luY2hyb25pemF0aW9uICov CisgICAgSUQzRDEyRmVuY2UgKmZlbmNlOworICAgIFVJTlQ2NCBmZW5jZV92YWx1ZTsKKyAgICBI QU5ETEUgZmVuY2VfZXZlbnQ7CisKKyAgICAvKiBCdWZmZXIgcmVmZXJlbmNlcyAqLworICAgIEFW QnVmZmVyUmVmICpod19kZXZpY2VfY3R4OworICAgIEFWQnVmZmVyUmVmICpod19mcmFtZXNfY3R4 X291dDsKKworICAgIC8qIERpbWVuc2lvbnMgYW5kIGZvcm1hdHMgKi8KKyAgICBpbnQgd2lkdGgs IGhlaWdodDsKKyAgICBpbnQgaW5wdXRfd2lkdGgsIGlucHV0X2hlaWdodDsKKyAgICBEWEdJX0ZP Uk1BVCBpbnB1dF9mb3JtYXQ7CisgICAgRFhHSV9GT1JNQVQgb3V0cHV0X2Zvcm1hdDsKKworICAg IC8qIENvbG9yIHNwYWNlIGFuZCBmcmFtZSByYXRlICovCisgICAgRFhHSV9DT0xPUl9TUEFDRV9U WVBFIGlucHV0X2NvbG9yc3BhY2U7CisgICAgQVZSYXRpb25hbCBpbnB1dF9mcmFtZXJhdGU7CisK KyAgICAvKiBWaWRlbyBwcm9jZXNzb3IgY2FwYWJpbGl0aWVzICovCisgICAgRDNEMTJfRkVBVFVS RV9EQVRBX1ZJREVPX1BST0NFU1NfU1VQUE9SVCBwcm9jZXNzX3N1cHBvcnQ7Cit9IFNjYWxlRDNE MTJDb250ZXh0OworCitzdGF0aWMgYXZfY29sZCBpbnQgc2NhbGVfZDNkMTJfaW5pdChBVkZpbHRl ckNvbnRleHQgKmN0eCkgeworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCByZWxlYXNl X2QzZDEyX3Jlc291cmNlcyhTY2FsZUQzRDEyQ29udGV4dCAqcykgeworICAgIFVJTlQ2NCBmZW5j ZV92YWx1ZTsKKyAgICBIUkVTVUxUIGhyOworICAgIC8qIFdhaXQgZm9yIGFsbCBHUFUgb3BlcmF0 aW9ucyB0byBjb21wbGV0ZSBiZWZvcmUgcmVsZWFzaW5nIHJlc291cmNlcyAqLworICAgIGlmIChz LT5jb21tYW5kX3F1ZXVlICYmIHMtPmZlbmNlICYmIHMtPmZlbmNlX2V2ZW50KSB7CisgICAgICAg IGZlbmNlX3ZhbHVlID0gcy0+ZmVuY2VfdmFsdWUgLSAxOworICAgICAgICBociA9IElEM0QxMkNv bW1hbmRRdWV1ZV9TaWduYWwocy0+Y29tbWFuZF9xdWV1ZSwgcy0+ZmVuY2UsIGZlbmNlX3ZhbHVl KTsKKyAgICAgICAgaWYgKFNVQ0NFRURFRChocikpIHsKKyAgICAgICAgICAgIFVJTlQ2NCBjb21w bGV0ZWQgPSBJRDNEMTJGZW5jZV9HZXRDb21wbGV0ZWRWYWx1ZShzLT5mZW5jZSk7CisgICAgICAg ICAgICBpZiAoY29tcGxldGVkIDwgZmVuY2VfdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBociA9 IElEM0QxMkZlbmNlX1NldEV2ZW50T25Db21wbGV0aW9uKHMtPmZlbmNlLCBmZW5jZV92YWx1ZSwg cy0+ZmVuY2VfZXZlbnQpOworICAgICAgICAgICAgICAgIGlmIChTVUNDRUVERUQoaHIpKSB7Cisg ICAgICAgICAgICAgICAgICAgIFdhaXRGb3JTaW5nbGVPYmplY3Qocy0+ZmVuY2VfZXZlbnQsIElO RklOSVRFKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg ICB9CisKKyAgICBpZiAocy0+ZmVuY2VfZXZlbnQpIHsKKyAgICAgICAgQ2xvc2VIYW5kbGUocy0+ ZmVuY2VfZXZlbnQpOworICAgICAgICBzLT5mZW5jZV9ldmVudCA9IE5VTEw7CisgICAgfQorCisg ICAgaWYgKHMtPmZlbmNlKSB7CisgICAgICAgIElEM0QxMkZlbmNlX1JlbGVhc2Uocy0+ZmVuY2Up OworICAgICAgICBzLT5mZW5jZSA9IE5VTEw7CisgICAgfQorCisgICAgaWYgKHMtPmNvbW1hbmRf bGlzdCkgeworICAgICAgICBJRDNEMTJWaWRlb1Byb2Nlc3NDb21tYW5kTGlzdF9SZWxlYXNlKHMt PmNvbW1hbmRfbGlzdCk7CisgICAgICAgIHMtPmNvbW1hbmRfbGlzdCA9IE5VTEw7CisgICAgfQor CisgICAgaWYgKHMtPmNvbW1hbmRfYWxsb2NhdG9yKSB7CisgICAgICAgIElEM0QxMkNvbW1hbmRB bGxvY2F0b3JfUmVsZWFzZShzLT5jb21tYW5kX2FsbG9jYXRvcik7CisgICAgICAgIHMtPmNvbW1h bmRfYWxsb2NhdG9yID0gTlVMTDsKKyAgICB9CisKKyAgICBpZiAocy0+dmlkZW9fcHJvY2Vzc29y KSB7CisgICAgICAgIElEM0QxMlZpZGVvUHJvY2Vzc29yX1JlbGVhc2Uocy0+dmlkZW9fcHJvY2Vz c29yKTsKKyAgICAgICAgcy0+dmlkZW9fcHJvY2Vzc29yID0gTlVMTDsKKyAgICB9CisKKyAgICBp ZiAocy0+dmlkZW9fZGV2aWNlKSB7CisgICAgICAgIElEM0QxMlZpZGVvRGV2aWNlX1JlbGVhc2Uo cy0+dmlkZW9fZGV2aWNlKTsKKyAgICAgICAgcy0+dmlkZW9fZGV2aWNlID0gTlVMTDsKKyAgICB9 CisKKyAgICBpZiAocy0+Y29tbWFuZF9xdWV1ZSkgeworICAgICAgICBJRDNEMTJDb21tYW5kUXVl dWVfUmVsZWFzZShzLT5jb21tYW5kX3F1ZXVlKTsKKyAgICAgICAgcy0+Y29tbWFuZF9xdWV1ZSA9 IE5VTEw7CisgICAgfQorfQorCitzdGF0aWMgRFhHSV9DT0xPUl9TUEFDRV9UWVBFIGdldF9keGdp X2NvbG9yc3BhY2UoZW51bSBBVkNvbG9yU3BhY2UgY29sb3JzcGFjZSwgZW51bSBBVkNvbG9yVHJh bnNmZXJDaGFyYWN0ZXJpc3RpYyB0cmMsIGludCBpc18xMGJpdCkKK3sKKyAgICAvKiBNYXAgRkZt cGVnIGNvbG9yIHNwYWNlIHRvIERYR0kgY29sb3Igc3BhY2UgKi8KKyAgICBpZiAoaXNfMTBiaXQp IHsKKyAgICAgICAgLyogMTAtYml0IGZvcm1hdHMgKFAwMTApICovCisgICAgICAgIGlmIChjb2xv cnNwYWNlID09IEFWQ09MX1NQQ19CVDIwMjBfTkNMIHx8IGNvbG9yc3BhY2UgPT0gQVZDT0xfU1BD X0JUMjAyMF9DTCkgeworICAgICAgICAgICAgaWYgKHRyYyA9PSBBVkNPTF9UUkNfU01QVEUyMDg0 KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIERYR0lfQ09MT1JfU1BBQ0VfWUNCQ1JfU1RVRElP X0cyMDg0X0xFRlRfUDIwMjA7ICAgICAgLy8vPCBIRFIxMAorICAgICAgICAgICAgfSBlbHNlIGlm ICh0cmMgPT0gQVZDT0xfVFJDX0FSSUJfU1REX0I2NykgeworICAgICAgICAgICAgICAgIHJldHVy biBEWEdJX0NPTE9SX1NQQUNFX1lDQkNSX1NUVURJT19HSExHX1RPUExFRlRfUDIwMjA7ICAgIC8v LzwgSExHCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBEWEdJ X0NPTE9SX1NQQUNFX1lDQkNSX1NUVURJT19HMjJfTEVGVF9QMjAyMDsKKyAgICAgICAgICAgIH0K KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBEWEdJX0NPTE9SX1NQQUNFX1lD QkNSX1NUVURJT19HMjJfTEVGVF9QNzA5OyAgICAgICAgICAgICAvLy88IFJlYy43MDkgMTAtYml0 CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICAvKiA4LWJpdCBmb3JtYXRzIChOVjEy KSAqLworICAgICAgICBpZiAoY29sb3JzcGFjZSA9PSBBVkNPTF9TUENfQlQyMDIwX05DTCB8fCBj b2xvcnNwYWNlID09IEFWQ09MX1NQQ19CVDIwMjBfQ0wpIHsKKyAgICAgICAgICAgIHJldHVybiBE WEdJX0NPTE9SX1NQQUNFX1lDQkNSX1NUVURJT19HMjJfTEVGVF9QMjAyMDsKKyAgICAgICAgfSBl bHNlIGlmIChjb2xvcnNwYWNlID09IEFWQ09MX1NQQ19CVDQ3MEJHIHx8IGNvbG9yc3BhY2UgPT0g QVZDT0xfU1BDX1NNUFRFMTcwTSkgeworICAgICAgICAgICAgcmV0dXJuIERYR0lfQ09MT1JfU1BB Q0VfWUNCQ1JfU1RVRElPX0cyMl9MRUZUX1A2MDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg ICAgICByZXR1cm4gRFhHSV9DT0xPUl9TUEFDRV9ZQ0JDUl9TVFVESU9fRzIyX0xFRlRfUDcwOTsg ICAgICAgICAgICAgLy8vPCBEZWZhdWx0IHRvIFJlYy43MDkKKyAgICAgICAgfQorICAgIH0KK30K Kworc3RhdGljIEFWUmF0aW9uYWwgZ2V0X2lucHV0X2ZyYW1lcmF0ZShBVkZpbHRlckNvbnRleHQg KmN0eCwgQVZGaWx0ZXJMaW5rICppbmxpbmssIEFWRnJhbWUgKmluKQoreworICAgIGludDY0X3Qg ZHVyYXRpb25fc2NhbGVkOworICAgIGludDY0X3QgdGltZV9iYXNlX2RlbjsKKyAgICBBVlJhdGlv bmFsIGZyYW1lcmF0ZSA9IHswLCAwfTsKKworICAgIGlmIChpbi0+ZHVyYXRpb24gPiAwICYmIGlu bGluay0+dGltZV9iYXNlLm51bSA+IDAgJiYgaW5saW5rLT50aW1lX2Jhc2UuZGVuID4gMCkgewor ICAgICAgICAvKgorICAgICAgICAqIENhbGN1bGF0ZSBmcmFtZXJhdGUgZnJvbSBmcmFtZSBkdXJh dGlvbiBhbmQgdGltZWJhc2UKKyAgICAgICAgKiBmcmFtZXJhdGUgPSAxIC8gKGR1cmF0aW9uICog dGltZWJhc2UpCisgICAgICAgICovCisgICAgICAgIGR1cmF0aW9uX3NjYWxlZCA9IGluLT5kdXJh dGlvbiAqIGlubGluay0+dGltZV9iYXNlLm51bTsKKyAgICAgICAgdGltZV9iYXNlX2RlbiA9IGlu bGluay0+dGltZV9iYXNlLmRlbjsKKyAgICAgICAgZnJhbWVyYXRlLm51bSA9IHRpbWVfYmFzZV9k ZW47CisgICAgICAgIGZyYW1lcmF0ZS5kZW4gPSBkdXJhdGlvbl9zY2FsZWQ7CisgICAgICAgIC8q IFJlZHVjZSB0aGUgZnJhY3Rpb24gKi8KKyAgICAgICAgYXZfcmVkdWNlKCZmcmFtZXJhdGUubnVt LCAmZnJhbWVyYXRlLmRlbiwKKyAgICAgICAgICAgICAgICAgZnJhbWVyYXRlLm51bSwgZnJhbWVy YXRlLmRlbiwgSU5UX01BWCk7CisgICAgfSBlbHNlIGlmIChpbmxpbmstPnRpbWVfYmFzZS5udW0g PiAwICYmIGlubGluay0+dGltZV9iYXNlLmRlbiA+IDApIHsKKyAgICAgICAgLyogRXN0aW1hdGUg ZnJvbSB0aW1lYmFzZSAoaW52ZXJzZSBvZiB0aW1lYmFzZSBpcyBvZnRlbiB0aGUgZnJhbWVyYXRl KSAqLworICAgICAgICBmcmFtZXJhdGUubnVtID0gaW5saW5rLT50aW1lX2Jhc2UuZGVuOworICAg ICAgICBmcmFtZXJhdGUuZGVuID0gaW5saW5rLT50aW1lX2Jhc2UubnVtOworICAgIH0gZWxzZSB7 CisgICAgICAgIC8qIERlZmF1bHQgdG8gMzBmcHMgaWYgZnJhbWVyYXRlIGNhbm5vdCBiZSBkZXRl cm1pbmVkICovCisgICAgICAgIGZyYW1lcmF0ZS5udW0gPSAzMDsKKyAgICAgICAgZnJhbWVyYXRl LmRlbiA9IDE7CisgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19XQVJOSU5HLCAiSW5wdXQgZnJh bWVyYXRlIG5vdCBkZXRlcm1pbmFibGUsIGRlZmF1bHRpbmcgdG8gMzBmcHNcbiIpOworICAgIH0K KworICAgIHJldHVybiBmcmFtZXJhdGU7Cit9CisKK3N0YXRpYyBpbnQgc2NhbGVfZDNkMTJfY29u ZmlndXJlX3Byb2Nlc3NvcihTY2FsZUQzRDEyQ29udGV4dCAqcywgQVZGaWx0ZXJDb250ZXh0ICpj dHgpIHsKKyAgICBIUkVTVUxUIGhyOworCisgICAgaWYgKHMtPm91dHB1dF9mb3JtYXQgPT0gRFhH SV9GT1JNQVRfVU5LTk9XTikgeworICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfRVJST1IsICJP dXRwdXQgZm9ybWF0IG5vdCBpbml0aWFsaXplZFxuIik7CisgICAgICAgIHJldHVybiBBVkVSUk9S KEVJTlZBTCk7CisgICAgfQorCisgICAgQVZIV0RldmljZUNvbnRleHQgKmh3Y3R4ID0gKEFWSFdE ZXZpY2VDb250ZXh0ICopcy0+aHdfZGV2aWNlX2N0eC0+ZGF0YTsKKyAgICBBVkQzRDEyVkFEZXZp Y2VDb250ZXh0ICpkM2QxMl9od2N0eCA9IChBVkQzRDEyVkFEZXZpY2VDb250ZXh0ICopaHdjdHgt Pmh3Y3R4OworICAgIHMtPmRldmljZSA9IGQzZDEyX2h3Y3R4LT5kZXZpY2U7CisKKyAgICBhdl9s b2coY3R4LCBBVl9MT0dfVkVSQk9TRSwgIkNvbmZpZ3VyaW5nIEQzRDEyIHZpZGVvIHByb2Nlc3Nv cjogJWR4JWQgLT4gJWR4JWRcbiIsCisgICAgICAgICAgIHMtPmlucHV0X3dpZHRoLCBzLT5pbnB1 dF9oZWlnaHQsIHMtPndpZHRoLCBzLT5oZWlnaHQpOworCisgICAgaHIgPSBJRDNEMTJEZXZpY2Vf UXVlcnlJbnRlcmZhY2Uocy0+ZGV2aWNlLCAmSUlEX0lEM0QxMlZpZGVvRGV2aWNlLCAodm9pZCAq Kikmcy0+dmlkZW9fZGV2aWNlKTsKKyAgICBpZiAoRkFJTEVEKGhyKSkgeworICAgICAgICBhdl9s b2coY3R4LCBBVl9MT0dfRVJST1IsICJGYWlsZWQgdG8gZ2V0IEQzRDEyIHZpZGVvIGRldmljZSBp bnRlcmZhY2U6IEhSRVNVTFQgMHglbFhcbiIsIGhyKTsKKyAgICAgICAgcmV0dXJuIEFWRVJST1Jf RVhURVJOQUw7CisgICAgfQorCisgICAgRDNEMTJfQ09NTUFORF9RVUVVRV9ERVNDIHF1ZXVlX2Rl c2MgPSB7CisgICAgICAgIC5UeXBlID0gRDNEMTJfQ09NTUFORF9MSVNUX1RZUEVfVklERU9fUFJP Q0VTUywKKyAgICAgICAgLlByaW9yaXR5ID0gRDNEMTJfQ09NTUFORF9RVUVVRV9QUklPUklUWV9O T1JNQUwsCisgICAgICAgIC5GbGFncyA9IEQzRDEyX0NPTU1BTkRfUVVFVUVfRkxBR19OT05FLAor ICAgICAgICAuTm9kZU1hc2sgPSAwCisgICAgfTsKKworICAgIGhyID0gSUQzRDEyRGV2aWNlX0Ny ZWF0ZUNvbW1hbmRRdWV1ZShzLT5kZXZpY2UsICZxdWV1ZV9kZXNjLCAmSUlEX0lEM0QxMkNvbW1h bmRRdWV1ZSwgKHZvaWQgKiopJnMtPmNvbW1hbmRfcXVldWUpOworICAgIGlmIChGQUlMRUQoaHIp KSB7CisgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byBjcmVhdGUg Y29tbWFuZCBxdWV1ZTogSFJFU1VMVCAweCVsWFxuIiwgaHIpOworICAgICAgICByZXR1cm4gQVZF UlJPUl9FWFRFUk5BTDsKKyAgICB9CisKKyAgICBzLT5wcm9jZXNzX3N1cHBvcnQuTm9kZUluZGV4 ID0gMDsKKworICAgIHMtPnByb2Nlc3Nfc3VwcG9ydC5JbnB1dFNhbXBsZS5Gb3JtYXQuRm9ybWF0 ICAgICA9IHMtPmlucHV0X2Zvcm1hdDsKKyAgICBzLT5wcm9jZXNzX3N1cHBvcnQuSW5wdXRTYW1w bGUuRm9ybWF0LkNvbG9yU3BhY2UgPSBzLT5pbnB1dF9jb2xvcnNwYWNlOworICAgIHMtPnByb2Nl c3Nfc3VwcG9ydC5JbnB1dFNhbXBsZS5XaWR0aCAgICAgICAgICAgICA9IHMtPmlucHV0X3dpZHRo OworICAgIHMtPnByb2Nlc3Nfc3VwcG9ydC5JbnB1dFNhbXBsZS5IZWlnaHQgICAgICAgICAgICA9 IHMtPmlucHV0X2hlaWdodDsKKyAgICBzLT5wcm9jZXNzX3N1cHBvcnQuSW5wdXRGcmFtZVJhdGUu TnVtZXJhdG9yICAgICAgPSBzLT5pbnB1dF9mcmFtZXJhdGUubnVtOworICAgIHMtPnByb2Nlc3Nf c3VwcG9ydC5JbnB1dEZyYW1lUmF0ZS5EZW5vbWluYXRvciAgICA9IHMtPmlucHV0X2ZyYW1lcmF0 ZS5kZW47CisgICAgcy0+cHJvY2Vzc19zdXBwb3J0LklucHV0RmllbGRUeXBlICAgICAgICAgICAg ICAgID0gRDNEMTJfVklERU9fRklFTERfVFlQRV9OT05FOworICAgIHMtPnByb2Nlc3Nfc3VwcG9y dC5JbnB1dFN0ZXJlb0Zvcm1hdCAgICAgICAgICAgICA9IEQzRDEyX1ZJREVPX0ZSQU1FX1NURVJF T19GT1JNQVRfTk9ORTsKKworICAgIHMtPnByb2Nlc3Nfc3VwcG9ydC5PdXRwdXRGb3JtYXQuRm9y bWF0ICAgICAgICAgICA9IHMtPm91dHB1dF9mb3JtYXQ7CisgICAgcy0+cHJvY2Vzc19zdXBwb3J0 Lk91dHB1dEZvcm1hdC5Db2xvclNwYWNlICAgICAgID0gcy0+aW5wdXRfY29sb3JzcGFjZTsKKyAg ICBzLT5wcm9jZXNzX3N1cHBvcnQuT3V0cHV0RnJhbWVSYXRlLk51bWVyYXRvciAgICAgPSBzLT5p bnB1dF9mcmFtZXJhdGUubnVtOworICAgIHMtPnByb2Nlc3Nfc3VwcG9ydC5PdXRwdXRGcmFtZVJh dGUuRGVub21pbmF0b3IgICA9IHMtPmlucHV0X2ZyYW1lcmF0ZS5kZW47CisgICAgcy0+cHJvY2Vz c19zdXBwb3J0Lk91dHB1dFN0ZXJlb0Zvcm1hdCAgICAgICAgICAgID0gRDNEMTJfVklERU9fRlJB TUVfU1RFUkVPX0ZPUk1BVF9OT05FOworCisgICAgaHIgPSBJRDNEMTJWaWRlb0RldmljZV9DaGVj a0ZlYXR1cmVTdXBwb3J0KAorICAgICAgICBzLT52aWRlb19kZXZpY2UsCisgICAgICAgIEQzRDEy X0ZFQVRVUkVfVklERU9fUFJPQ0VTU19TVVBQT1JULAorICAgICAgICAmcy0+cHJvY2Vzc19zdXBw b3J0LAorICAgICAgICBzaXplb2Yocy0+cHJvY2Vzc19zdXBwb3J0KQorICAgICk7CisKKyAgICBp ZiAoRkFJTEVEKGhyKSkgeworICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfRVJST1IsICJWaWRl byBwcm9jZXNzIGZlYXR1cmUgbm90IHN1cHBvcnRlZDogSFJFU1VMVCAweCVsWFxuIiwgaHIpOwor ICAgICAgICByZXR1cm4gQVZFUlJPUl9FWFRFUk5BTDsKKyAgICB9CisKKyAgICBpZiAoIShzLT5w cm9jZXNzX3N1cHBvcnQuU3VwcG9ydEZsYWdzICYgRDNEMTJfVklERU9fUFJPQ0VTU19TVVBQT1JU X0ZMQUdfU1VQUE9SVEVEKSkgeworICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfRVJST1IsICJW aWRlbyBwcm9jZXNzIGNvbmZpZ3VyYXRpb24gbm90IHN1cHBvcnRlZCBieSBoYXJkd2FyZVxuIik7 CisgICAgICAgIHJldHVybiBBVkVSUk9SX0VYVEVSTkFMOworICAgIH0KKworICAgIEQzRDEyX1ZJ REVPX1BST0NFU1NfT1VUUFVUX1NUUkVBTV9ERVNDIHByb2Nlc3Nvcl9vdXRwdXRfZGVzYyA9IHsK KyAgICAgICAgLkZvcm1hdCAgICAgICAgICAgICAgICAgICAgICAgICA9IHMtPm91dHB1dF9mb3Jt YXQsCisgICAgICAgIC5Db2xvclNwYWNlICAgICAgICAgICAgICAgICAgICAgPSBzLT5pbnB1dF9j b2xvcnNwYWNlLAorICAgICAgICAuQWxwaGFGaWxsTW9kZSAgICAgICAgICAgICAgICAgID0gRDNE MTJfVklERU9fUFJPQ0VTU19BTFBIQV9GSUxMX01PREVfT1BBUVVFLAorICAgICAgICAuQWxwaGFG aWxsTW9kZVNvdXJjZVN0cmVhbUluZGV4ID0gMCwKKyAgICAgICAgLkJhY2tncm91bmRDb2xvciAg ICAgICAgICAgICAgICA9IHsgMC4wZiwgMC4wZiwgMC4wZiwgMS4wZiB9LAorICAgICAgICAuRnJh bWVSYXRlICAgICAgICAgICAgICAgICAgICAgID0geyBzLT5pbnB1dF9mcmFtZXJhdGUubnVtLCBz LT5pbnB1dF9mcmFtZXJhdGUuZGVuIH0sCisgICAgICAgIC5FbmFibGVTdGVyZW8gICAgICAgICAg ICAgICAgICAgPSBGQUxTRSwKKyAgICB9OworCisgICAgRDNEMTJfVklERU9fUFJPQ0VTU19JTlBV VF9TVFJFQU1fREVTQyBwcm9jZXNzb3JfaW5wdXRfZGVzYyA9IHsKKyAgICAgICAgLkZvcm1hdCAg ICAgICAgICAgICAgICAgPSBzLT5pbnB1dF9mb3JtYXQsCisgICAgICAgIC5Db2xvclNwYWNlICAg ICAgICAgICAgID0gcy0+aW5wdXRfY29sb3JzcGFjZSwKKyAgICAgICAgLlNvdXJjZUFzcGVjdFJh dGlvICAgICAgPSB7IHMtPmlucHV0X3dpZHRoLCBzLT5pbnB1dF9oZWlnaHQgfSwKKyAgICAgICAg LkRlc3RpbmF0aW9uQXNwZWN0UmF0aW8gPSB7IHMtPndpZHRoLCBzLT5oZWlnaHQgfSwKKyAgICAg ICAgLkZyYW1lUmF0ZSAgICAgICAgICAgICAgPSB7IHMtPmlucHV0X2ZyYW1lcmF0ZS5udW0sIHMt PmlucHV0X2ZyYW1lcmF0ZS5kZW4gfSwKKyAgICAgICAgLlN0ZXJlb0Zvcm1hdCAgICAgICAgICAg PSBEM0QxMl9WSURFT19GUkFNRV9TVEVSRU9fRk9STUFUX05PTkUsCisgICAgICAgIC5GaWVsZFR5 cGUgICAgICAgICAgICAgID0gRDNEMTJfVklERU9fRklFTERfVFlQRV9OT05FLAorICAgICAgICAu RGVpbnRlcmxhY2VNb2RlICAgICAgICA9IEQzRDEyX1ZJREVPX1BST0NFU1NfREVJTlRFUkxBQ0Vf RkxBR19OT05FLAorICAgICAgICAuRW5hYmxlT3JpZW50YXRpb24gICAgICA9IEZBTFNFLAorICAg ICAgICAuRmlsdGVyRmxhZ3MgICAgICAgICAgICA9IEQzRDEyX1ZJREVPX1BST0NFU1NfRklMVEVS X0ZMQUdfTk9ORSwKKyAgICAgICAgLlNvdXJjZVNpemVSYW5nZSAgICAgICAgPSB7CisgICAgICAg ICAgICAuTWF4V2lkdGggID0gcy0+aW5wdXRfd2lkdGgsCisgICAgICAgICAgICAuTWF4SGVpZ2h0 ID0gcy0+aW5wdXRfaGVpZ2h0LAorICAgICAgICAgICAgLk1pbldpZHRoICA9IHMtPmlucHV0X3dp ZHRoLAorICAgICAgICAgICAgLk1pbkhlaWdodCA9IHMtPmlucHV0X2hlaWdodAorICAgICAgICB9 LAorICAgICAgICAuRGVzdGluYXRpb25TaXplUmFuZ2UgID0geworICAgICAgICAgICAgLk1heFdp ZHRoICA9IHMtPndpZHRoLAorICAgICAgICAgICAgLk1heEhlaWdodCA9IHMtPmhlaWdodCwKKyAg ICAgICAgICAgIC5NaW5XaWR0aCAgPSBzLT53aWR0aCwKKyAgICAgICAgICAgIC5NaW5IZWlnaHQg PSBzLT5oZWlnaHQKKyAgICAgICAgfSwKKyAgICAgICAgLkVuYWJsZUFscGhhQmxlbmRpbmcgICA9 IEZBTFNFLAorICAgICAgICAuTHVtYUtleSAgICAgICAgICAgICAgID0geyAuRW5hYmxlID0gRkFM U0UsIC5Mb3dlciA9IDAuMGYsIC5VcHBlciA9IDEuMGYgfSwKKyAgICAgICAgLk51bVBhc3RGcmFt ZXMgICAgICAgICA9IDAsCisgICAgICAgIC5OdW1GdXR1cmVGcmFtZXMgICAgICAgPSAwLAorICAg ICAgICAuRW5hYmxlQXV0b1Byb2Nlc3NpbmcgID0gRkFMU0UsCisgICAgfTsKKworICAgIC8qIElm IHBpeGVsIGFzcGVjdCByYXRpbyBhZGp1c3RtZW50IGlzIG5vdCBzdXBwb3J0ZWQsIHNldCB0byAx OjEgYW5kIHdhcm4gKi8KKyAgICBpZiAoIShzLT5wcm9jZXNzX3N1cHBvcnQuRmVhdHVyZVN1cHBv cnQgJiBEM0QxMl9WSURFT19QUk9DRVNTX0ZFQVRVUkVfRkxBR19QSVhFTF9BU1BFQ1RfUkFUSU8p KSB7CisgICAgICAgIHByb2Nlc3Nvcl9pbnB1dF9kZXNjLlNvdXJjZUFzcGVjdFJhdGlvLk51bWVy YXRvciAgICAgICAgPSAxOworICAgICAgICBwcm9jZXNzb3JfaW5wdXRfZGVzYy5Tb3VyY2VBc3Bl Y3RSYXRpby5EZW5vbWluYXRvciAgICAgID0gMTsKKyAgICAgICAgcHJvY2Vzc29yX2lucHV0X2Rl c2MuRGVzdGluYXRpb25Bc3BlY3RSYXRpby5OdW1lcmF0b3IgICA9IDE7CisgICAgICAgIHByb2Nl c3Nvcl9pbnB1dF9kZXNjLkRlc3RpbmF0aW9uQXNwZWN0UmF0aW8uRGVub21pbmF0b3IgPSAxOwor ICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfV0FSTklORywgIlBpeGVsIGFzcGVjdCByYXRpbyBh ZGp1c3RtZW50IG5vdCBzdXBwb3J0ZWQgYnkgaGFyZHdhcmVcbiIpOworICAgIH0KKworICAgIGhy ID0gSUQzRDEyVmlkZW9EZXZpY2VfQ3JlYXRlVmlkZW9Qcm9jZXNzb3IoCisgICAgICAgIHMtPnZp ZGVvX2RldmljZSwKKyAgICAgICAgMCwKKyAgICAgICAgJnByb2Nlc3Nvcl9vdXRwdXRfZGVzYywK KyAgICAgICAgMSwKKyAgICAgICAgJnByb2Nlc3Nvcl9pbnB1dF9kZXNjLAorICAgICAgICAmSUlE X0lEM0QxMlZpZGVvUHJvY2Vzc29yLAorICAgICAgICAodm9pZCAqKikmcy0+dmlkZW9fcHJvY2Vz c29yCisgICAgKTsKKworICAgIGlmIChGQUlMRUQoaHIpKSB7CisgICAgICAgIGF2X2xvZyhjdHgs IEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byBjcmVhdGUgdmlkZW8gcHJvY2Vzc29yOiBIUkVTVUxU IDB4JWxYXG4iLCBocik7CisgICAgICAgIHJldHVybiBBVkVSUk9SX0VYVEVSTkFMOworICAgIH0K KworICAgIGhyID0gSUQzRDEyRGV2aWNlX0NyZWF0ZUNvbW1hbmRBbGxvY2F0b3IoCisgICAgICAg IHMtPmRldmljZSwKKyAgICAgICAgRDNEMTJfQ09NTUFORF9MSVNUX1RZUEVfVklERU9fUFJPQ0VT UywKKyAgICAgICAgJklJRF9JRDNEMTJDb21tYW5kQWxsb2NhdG9yLAorICAgICAgICAodm9pZCAq Kikmcy0+Y29tbWFuZF9hbGxvY2F0b3IKKyAgICApOworCisgICAgaWYgKEZBSUxFRChocikpIHsK KyAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIGNyZWF0ZSBjb21t YW5kIGFsbG9jYXRvcjogSFJFU1VMVCAweCVsWFxuIiwgaHIpOworICAgICAgICByZXR1cm4gQVZF UlJPUl9FWFRFUk5BTDsKKyAgICB9CisKKyAgICBociA9IElEM0QxMkRldmljZV9DcmVhdGVDb21t YW5kTGlzdCgKKyAgICAgICAgcy0+ZGV2aWNlLAorICAgICAgICAwLAorICAgICAgICBEM0QxMl9D T01NQU5EX0xJU1RfVFlQRV9WSURFT19QUk9DRVNTLAorICAgICAgICBzLT5jb21tYW5kX2FsbG9j YXRvciwKKyAgICAgICAgTlVMTCwKKyAgICAgICAgJklJRF9JRDNEMTJWaWRlb1Byb2Nlc3NDb21t YW5kTGlzdCwKKyAgICAgICAgKHZvaWQgKiopJnMtPmNvbW1hbmRfbGlzdAorICAgICk7CisKKyAg ICBpZiAoRkFJTEVEKGhyKSkgeworICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfRVJST1IsICJG YWlsZWQgdG8gY3JlYXRlIGNvbW1hbmQgbGlzdDogSFJFU1VMVCAweCVsWFxuIiwgaHIpOworICAg ICAgICByZXR1cm4gQVZFUlJPUl9FWFRFUk5BTDsKKyAgICB9CisKKyAgICBJRDNEMTJWaWRlb1By b2Nlc3NDb21tYW5kTGlzdF9DbG9zZShzLT5jb21tYW5kX2xpc3QpOworCisgICAgaHIgPSBJRDNE MTJEZXZpY2VfQ3JlYXRlRmVuY2Uocy0+ZGV2aWNlLCAwLCBEM0QxMl9GRU5DRV9GTEFHX05PTkUs ICZJSURfSUQzRDEyRmVuY2UsICh2b2lkICoqKSZzLT5mZW5jZSk7CisgICAgaWYgKEZBSUxFRCho cikpIHsKKyAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIGNyZWF0 ZSBmZW5jZTogSFJFU1VMVCAweCVsWFxuIiwgaHIpOworICAgICAgICByZXR1cm4gQVZFUlJPUl9F WFRFUk5BTDsKKyAgICB9CisKKyAgICBzLT5mZW5jZV92YWx1ZSA9IDE7CisgICAgcy0+ZmVuY2Vf ZXZlbnQgPSBDcmVhdGVFdmVudChOVUxMLCBGQUxTRSwgRkFMU0UsIE5VTEwpOworICAgIGlmICgh cy0+ZmVuY2VfZXZlbnQpIHsKKyAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiRmFp bGVkIHRvIGNyZWF0ZSBmZW5jZSBldmVudFxuIik7CisgICAgICAgIHJldHVybiBBVkVSUk9SX0VY VEVSTkFMOworICAgIH0KKworICAgIGF2X2xvZyhjdHgsIEFWX0xPR19WRVJCT1NFLCAiRDNEMTIg dmlkZW8gcHJvY2Vzc29yIHN1Y2Nlc3NmdWxseSBjb25maWd1cmVkXG4iKTsKKyAgICByZXR1cm4g MDsKK30KKworc3RhdGljIGludCBzY2FsZV9kM2QxMl9maWx0ZXJfZnJhbWUoQVZGaWx0ZXJMaW5r ICppbmxpbmssIEFWRnJhbWUgKmluKQoreworICAgIEFWRmlsdGVyQ29udGV4dCAqY3R4ICA9IGlu bGluay0+ZHN0OworICAgIFNjYWxlRDNEMTJDb250ZXh0ICpzICA9IGN0eC0+cHJpdjsKKyAgICBB VkZpbHRlckxpbmsgKm91dGxpbmsgPSBjdHgtPm91dHB1dHNbMF07CisgICAgQVZGcmFtZSAgICAg ICAgICAqb3V0ID0gTlVMTDsKKyAgICBpbnQgcmV0ID0gMDsKKyAgICBIUkVTVUxUIGhyOworCisg ICAgaWYgKCFpbikgeworICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfRVJST1IsICJOdWxsIGlu cHV0IGZyYW1lXG4iKTsKKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKKyAgICB9CisK KyAgICBpZiAoIWluLT5od19mcmFtZXNfY3R4KSB7CisgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xP R19FUlJPUiwgIk5vIGhhcmR3YXJlIGZyYW1lcyBjb250ZXh0IGluIGlucHV0IGZyYW1lXG4iKTsK KyAgICAgICAgYXZfZnJhbWVfZnJlZSgmaW4pOworICAgICAgICByZXR1cm4gQVZFUlJPUihFSU5W QUwpOworICAgIH0KKworICAgIEFWSFdGcmFtZXNDb250ZXh0ICpmcmFtZXNfY3R4ID0gKEFWSFdG cmFtZXNDb250ZXh0ICopaW4tPmh3X2ZyYW1lc19jdHgtPmRhdGE7CisKKyAgICBpZiAoIXMtPmh3 X2RldmljZV9jdHgpIHsKKyAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiRmlsdGVy IGhhcmR3YXJlIGRldmljZSBjb250ZXh0IGlzIHVuaW5pdGlhbGl6ZWRcbiIpOworICAgICAgICBh dl9mcmFtZV9mcmVlKCZpbik7CisgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7CisgICAg fQorCisgICAgQVZIV0RldmljZUNvbnRleHQgKmlucHV0X2RldmljZV9jdHggPSAoQVZIV0Rldmlj ZUNvbnRleHQgKilmcmFtZXNfY3R4LT5kZXZpY2VfcmVmLT5kYXRhOworICAgIEFWSFdEZXZpY2VD b250ZXh0ICpmaWx0ZXJfZGV2aWNlX2N0eCA9IChBVkhXRGV2aWNlQ29udGV4dCAqKXMtPmh3X2Rl dmljZV9jdHgtPmRhdGE7CisKKyAgICBpZiAoaW5wdXRfZGV2aWNlX2N0eC0+dHlwZSAhPSBmaWx0 ZXJfZGV2aWNlX2N0eC0+dHlwZSkgeworICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfRVJST1Is ICJNaXNtYXRjaCBiZXR3ZWVuIGlucHV0IGFuZCBmaWx0ZXIgaGFyZHdhcmUgZGV2aWNlIHR5cGVz XG4iKTsKKyAgICAgICAgYXZfZnJhbWVfZnJlZSgmaW4pOworICAgICAgICByZXR1cm4gQVZFUlJP UihFSU5WQUwpOworICAgIH0KKworICAgIG91dCA9IGF2X2ZyYW1lX2FsbG9jKCk7CisgICAgaWYg KCFvdXQpIHsKKyAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIGFs bG9jYXRlIG91dHB1dCBmcmFtZVxuIik7CisgICAgICAgIGF2X2ZyYW1lX2ZyZWUoJmluKTsKKyAg ICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKyAgICB9CisKKyAgICByZXQgPSBhdl9od2Zy YW1lX2dldF9idWZmZXIocy0+aHdfZnJhbWVzX2N0eF9vdXQsIG91dCwgMCk7CisgICAgaWYgKHJl dCA8IDApIHsKKyAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIGdl dCBvdXRwdXQgZnJhbWUgZnJvbSBwb29sXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0K KworICAgIGlmICghcy0+dmlkZW9fcHJvY2Vzc29yKSB7CisgICAgICAgIEFWSFdGcmFtZXNDb250 ZXh0ICppbnB1dF9mcmFtZXNfY3R4ID0gKEFWSFdGcmFtZXNDb250ZXh0ICopaW4tPmh3X2ZyYW1l c19jdHgtPmRhdGE7CisKKyAgICAgICAgcy0+aW5wdXRfd2lkdGggPSBpbnB1dF9mcmFtZXNfY3R4 LT53aWR0aDsKKyAgICAgICAgcy0+aW5wdXRfaGVpZ2h0ID0gaW5wdXRfZnJhbWVzX2N0eC0+aGVp Z2h0OworCisgICAgICAgIEFWRDNEMTJWQUZyYW1lc0NvbnRleHQgKmlucHV0X2h3Y3R4ID0gKEFW RDNEMTJWQUZyYW1lc0NvbnRleHQgKilpbnB1dF9mcmFtZXNfY3R4LT5od2N0eDsKKyAgICAgICAg cy0+aW5wdXRfZm9ybWF0ID0gaW5wdXRfaHdjdHgtPmZvcm1hdDsKKworICAgICAgICBpZiAocy0+ aW5wdXRfZm9ybWF0ID09IERYR0lfRk9STUFUX1VOS05PV04pIHsKKyAgICAgICAgICAgIHN3aXRj aCAoaW5wdXRfZnJhbWVzX2N0eC0+c3dfZm9ybWF0KSB7CisgICAgICAgICAgICAgICAgY2FzZSBB Vl9QSVhfRk1UX05WMTI6CisgICAgICAgICAgICAgICAgICAgIHMtPmlucHV0X2Zvcm1hdCA9IERY R0lfRk9STUFUX05WMTI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg ICAgIGNhc2UgQVZfUElYX0ZNVF9QMDEwOgorICAgICAgICAgICAgICAgICAgICBzLT5pbnB1dF9m b3JtYXQgPSBEWEdJX0ZPUk1BVF9QMDEwOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBhdl9sb2coY3R4LCBB Vl9MT0dfRVJST1IsICJVbnN1cHBvcnRlZCBpbnB1dCBmb3JtYXRcbiIpOworICAgICAgICAgICAg ICAgICAgICByZXQgPSBBVkVSUk9SKEVJTlZBTCk7CisgICAgICAgICAgICAgICAgICAgIGdvdG8g ZmFpbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGludCBpc18xMGJpdCA9 IChzLT5pbnB1dF9mb3JtYXQgPT0gRFhHSV9GT1JNQVRfUDAxMCk7CisgICAgICAgIHMtPmlucHV0 X2NvbG9yc3BhY2UgPSBnZXRfZHhnaV9jb2xvcnNwYWNlKGluLT5jb2xvcnNwYWNlLCBpbi0+Y29s b3JfdHJjLCBpc18xMGJpdCk7CisKKyAgICAgICAgcy0+aW5wdXRfZnJhbWVyYXRlID0gZ2V0X2lu cHV0X2ZyYW1lcmF0ZShjdHgsIGlubGluaywgaW4pOworCisgICAgICAgIGF2X2xvZyhjdHgsIEFW X0xPR19WRVJCT1NFLCAiSW5wdXQgZm9ybWF0OiAlZHglZCwgRFhHSSBmb3JtYXQ6ICVkLCBjb2xv cnNwYWNlOiAlZCwgZnJhbWVyYXRlOiAlZC8lZFxuIiwKKyAgICAgICAgICAgICAgIHMtPmlucHV0 X3dpZHRoLCBzLT5pbnB1dF9oZWlnaHQsIHMtPmlucHV0X2Zvcm1hdCwgcy0+aW5wdXRfY29sb3Jz cGFjZSwKKyAgICAgICAgICAgICAgIHMtPmlucHV0X2ZyYW1lcmF0ZS5udW0sIHMtPmlucHV0X2Zy YW1lcmF0ZS5kZW4pOworCisgICAgICAgIHJldCA9IHNjYWxlX2QzZDEyX2NvbmZpZ3VyZV9wcm9j ZXNzb3IocywgY3R4KTsKKyAgICAgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgICAgIGF2X2xv ZyhjdHgsIEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byBjb25maWd1cmUgcHJvY2Vzc29yXG4iKTsK KyAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIEFWRDNEMTJW QUZyYW1lICppbnB1dF9mcmFtZSAgPSAoQVZEM0QxMlZBRnJhbWUgKilpbi0+ZGF0YVswXTsKKyAg ICBBVkQzRDEyVkFGcmFtZSAqb3V0cHV0X2ZyYW1lID0gKEFWRDNEMTJWQUZyYW1lICopb3V0LT5k YXRhWzBdOworCisgICAgaWYgKCFpbnB1dF9mcmFtZSB8fCAhb3V0cHV0X2ZyYW1lKSB7CisgICAg ICAgIGF2X2xvZyhjdHgsIEFWX0xPR19FUlJPUiwgIkludmFsaWQgZnJhbWUgcG9pbnRlcnNcbiIp OworICAgICAgICByZXQgPSBBVkVSUk9SKEVJTlZBTCk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAg ICB9CisKKyAgICBJRDNEMTJSZXNvdXJjZSAqaW5wdXRfcmVzb3VyY2UgID0gaW5wdXRfZnJhbWUt PnRleHR1cmU7CisgICAgSUQzRDEyUmVzb3VyY2UgKm91dHB1dF9yZXNvdXJjZSA9IG91dHB1dF9m cmFtZS0+dGV4dHVyZTsKKworICAgIGlmICghaW5wdXRfcmVzb3VyY2UgfHwgIW91dHB1dF9yZXNv dXJjZSkgeworICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfRVJST1IsICJJbnZhbGlkIEQzRDEy IHJlc291cmNlcyBpbiBmcmFtZXNcbiIpOworICAgICAgICByZXQgPSBBVkVSUk9SKEVJTlZBTCk7 CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAvKiBXYWl0IGZvciBpbnB1dCBmcmFt ZSdzIGZlbmNlIGJlZm9yZSBhY2Nlc3NpbmcgaXQgKi8KKyAgICBpZiAoaW5wdXRfZnJhbWUtPnN5 bmNfY3R4LmZlbmNlICYmIGlucHV0X2ZyYW1lLT5zeW5jX2N0eC5mZW5jZV92YWx1ZSA+IDApIHsK KyAgICAgICAgVUlOVDY0IGNvbXBsZXRlZCA9IElEM0QxMkZlbmNlX0dldENvbXBsZXRlZFZhbHVl KGlucHV0X2ZyYW1lLT5zeW5jX2N0eC5mZW5jZSk7CisgICAgICAgIGlmIChjb21wbGV0ZWQgPCBp bnB1dF9mcmFtZS0+c3luY19jdHguZmVuY2VfdmFsdWUpIHsKKyAgICAgICAgICAgIGhyID0gSUQz RDEyQ29tbWFuZFF1ZXVlX1dhaXQocy0+Y29tbWFuZF9xdWV1ZSwgaW5wdXRfZnJhbWUtPnN5bmNf Y3R4LmZlbmNlLCBpbnB1dF9mcmFtZS0+c3luY19jdHguZmVuY2VfdmFsdWUpOworICAgICAgICAg ICAgaWYgKEZBSUxFRChocikpIHsKKyAgICAgICAgICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0df RVJST1IsICJGYWlsZWQgdG8gd2FpdCBmb3IgaW5wdXQgZmVuY2U6IEhSRVNVTFQgMHglbFhcbiIs IGhyKTsKKyAgICAgICAgICAgICAgICByZXQgPSBBVkVSUk9SX0VYVEVSTkFMOworICAgICAgICAg ICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAg IGhyID0gSUQzRDEyQ29tbWFuZEFsbG9jYXRvcl9SZXNldChzLT5jb21tYW5kX2FsbG9jYXRvcik7 CisgICAgaWYgKEZBSUxFRChocikpIHsKKyAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9S LCAiRmFpbGVkIHRvIHJlc2V0IGNvbW1hbmQgYWxsb2NhdG9yOiBIUkVTVUxUIDB4JWxYXG4iLCBo cik7CisgICAgICAgIHJldCA9IEFWRVJST1JfRVhURVJOQUw7CisgICAgICAgIGdvdG8gZmFpbDsK KyAgICB9CisKKyAgICBociA9IElEM0QxMlZpZGVvUHJvY2Vzc0NvbW1hbmRMaXN0X1Jlc2V0KHMt PmNvbW1hbmRfbGlzdCwgcy0+Y29tbWFuZF9hbGxvY2F0b3IpOworICAgIGlmIChGQUlMRUQoaHIp KSB7CisgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byByZXNldCBj b21tYW5kIGxpc3Q6IEhSRVNVTFQgMHglbFhcbiIsIGhyKTsKKyAgICAgICAgcmV0ID0gQVZFUlJP Ul9FWFRFUk5BTDsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIEQzRDEyX1JFU09V UkNFX0JBUlJJRVIgYmFycmllcnNbMl0gPSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIC5UeXBl ID0gRDNEMTJfUkVTT1VSQ0VfQkFSUklFUl9UWVBFX1RSQU5TSVRJT04sCisgICAgICAgICAgICAu RmxhZ3MgPSBEM0QxMl9SRVNPVVJDRV9CQVJSSUVSX0ZMQUdfTk9ORSwKKyAgICAgICAgICAgIC5U cmFuc2l0aW9uID0geworICAgICAgICAgICAgICAgIC5wUmVzb3VyY2UgICA9IGlucHV0X3Jlc291 cmNlLAorICAgICAgICAgICAgICAgIC5TdWJyZXNvdXJjZSA9IEQzRDEyX1JFU09VUkNFX0JBUlJJ RVJfQUxMX1NVQlJFU09VUkNFUywKKyAgICAgICAgICAgICAgICAuU3RhdGVCZWZvcmUgPSBEM0Qx Ml9SRVNPVVJDRV9TVEFURV9DT01NT04sCisgICAgICAgICAgICAgICAgLlN0YXRlQWZ0ZXIgID0g RDNEMTJfUkVTT1VSQ0VfU1RBVEVfVklERU9fUFJPQ0VTU19SRUFECisgICAgICAgICAgICB9Cisg ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIC5UeXBlID0gRDNEMTJfUkVTT1VSQ0Vf QkFSUklFUl9UWVBFX1RSQU5TSVRJT04sCisgICAgICAgICAgICAuRmxhZ3MgPSBEM0QxMl9SRVNP VVJDRV9CQVJSSUVSX0ZMQUdfTk9ORSwKKyAgICAgICAgICAgIC5UcmFuc2l0aW9uID0geworICAg ICAgICAgICAgICAgIC5wUmVzb3VyY2UgICA9IG91dHB1dF9yZXNvdXJjZSwKKyAgICAgICAgICAg ICAgICAuU3VicmVzb3VyY2UgPSBEM0QxMl9SRVNPVVJDRV9CQVJSSUVSX0FMTF9TVUJSRVNPVVJD RVMsCisgICAgICAgICAgICAgICAgLlN0YXRlQmVmb3JlID0gRDNEMTJfUkVTT1VSQ0VfU1RBVEVf Q09NTU9OLAorICAgICAgICAgICAgICAgIC5TdGF0ZUFmdGVyICA9IEQzRDEyX1JFU09VUkNFX1NU QVRFX1ZJREVPX1BST0NFU1NfV1JJVEUKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH07 CisKKyAgICBJRDNEMTJWaWRlb1Byb2Nlc3NDb21tYW5kTGlzdF9SZXNvdXJjZUJhcnJpZXIocy0+ Y29tbWFuZF9saXN0LCAyLCBiYXJyaWVycyk7CisKKyAgICBEM0QxMl9WSURFT19QUk9DRVNTX0lO UFVUX1NUUkVBTV9BUkdVTUVOVFMgaW5wdXRfYXJncyA9IHswfTsKKworICAgIGlucHV0X2FyZ3Mu SW5wdXRTdHJlYW1bMF0ucFRleHR1cmUyRCA9IGlucHV0X3Jlc291cmNlOworICAgIGlucHV0X2Fy Z3MuVHJhbnNmb3JtLlNvdXJjZVJlY3RhbmdsZS5yaWdodCAgICAgICA9IHMtPmlucHV0X3dpZHRo OworICAgIGlucHV0X2FyZ3MuVHJhbnNmb3JtLlNvdXJjZVJlY3RhbmdsZS5ib3R0b20gICAgICA9 IHMtPmlucHV0X2hlaWdodDsKKyAgICBpbnB1dF9hcmdzLlRyYW5zZm9ybS5EZXN0aW5hdGlvblJl Y3RhbmdsZS5yaWdodCAgPSBzLT53aWR0aDsKKyAgICBpbnB1dF9hcmdzLlRyYW5zZm9ybS5EZXN0 aW5hdGlvblJlY3RhbmdsZS5ib3R0b20gPSBzLT5oZWlnaHQ7CisgICAgaW5wdXRfYXJncy5UcmFu c2Zvcm0uT3JpZW50YXRpb24gPSBEM0QxMl9WSURFT19QUk9DRVNTX09SSUVOVEFUSU9OX0RFRkFV TFQ7CisKKyAgICBpbnB1dF9hcmdzLkZsYWdzID0gRDNEMTJfVklERU9fUFJPQ0VTU19JTlBVVF9T VFJFQU1fRkxBR19OT05FOworCisgICAgaW5wdXRfYXJncy5SYXRlSW5mby5PdXRwdXRJbmRleCA9 IDA7CisgICAgaW5wdXRfYXJncy5SYXRlSW5mby5JbnB1dEZyYW1lT3JGaWVsZCA9IDA7CisKKyAg ICBtZW1zZXQoaW5wdXRfYXJncy5GaWx0ZXJMZXZlbHMsIDAsIHNpemVvZihpbnB1dF9hcmdzLkZp bHRlckxldmVscykpOworCisgICAgaW5wdXRfYXJncy5BbHBoYUJsZW5kaW5nLkVuYWJsZSA9IEZB TFNFOworICAgIGlucHV0X2FyZ3MuQWxwaGFCbGVuZGluZy5BbHBoYSA9IDEuMGY7CisKKyAgICBE M0QxMl9WSURFT19QUk9DRVNTX09VVFBVVF9TVFJFQU1fQVJHVU1FTlRTIG91dHB1dF9hcmdzID0g ezB9OworCisgICAgb3V0cHV0X2FyZ3MuT3V0cHV0U3RyZWFtWzBdLnBUZXh0dXJlMkQgPSBvdXRw dXRfcmVzb3VyY2U7CisgICAgb3V0cHV0X2FyZ3MuVGFyZ2V0UmVjdGFuZ2xlLnJpZ2h0ICA9IHMt PndpZHRoOworICAgIG91dHB1dF9hcmdzLlRhcmdldFJlY3RhbmdsZS5ib3R0b20gPSBzLT5oZWln aHQ7CisKKyAgICBJRDNEMTJWaWRlb1Byb2Nlc3NDb21tYW5kTGlzdF9Qcm9jZXNzRnJhbWVzKAor ICAgICAgICBzLT5jb21tYW5kX2xpc3QsCisgICAgICAgIHMtPnZpZGVvX3Byb2Nlc3NvciwKKyAg ICAgICAgJm91dHB1dF9hcmdzLAorICAgICAgICAxLAorICAgICAgICAmaW5wdXRfYXJncworICAg ICk7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICBGRlNXQVAo RDNEMTJfUkVTT1VSQ0VfU1RBVEVTLCBiYXJyaWVyc1tpXS5UcmFuc2l0aW9uLlN0YXRlQmVmb3Jl LCBiYXJyaWVyc1tpXS5UcmFuc2l0aW9uLlN0YXRlQWZ0ZXIpOworICAgIH0KKyAgICBJRDNEMTJW aWRlb1Byb2Nlc3NDb21tYW5kTGlzdF9SZXNvdXJjZUJhcnJpZXIocy0+Y29tbWFuZF9saXN0LCAy LCBiYXJyaWVycyk7CisKKyAgICBociA9IElEM0QxMlZpZGVvUHJvY2Vzc0NvbW1hbmRMaXN0X0Ns b3NlKHMtPmNvbW1hbmRfbGlzdCk7CisgICAgaWYgKEZBSUxFRChocikpIHsKKyAgICAgICAgYXZf bG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIGNsb3NlIGNvbW1hbmQgbGlzdDogSFJF U1VMVCAweCVsWFxuIiwgaHIpOworICAgICAgICByZXQgPSBBVkVSUk9SX0VYVEVSTkFMOworICAg ICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgSUQzRDEyQ29tbWFuZExpc3QgKmNtZF9saXN0 c1tdID0geyAoSUQzRDEyQ29tbWFuZExpc3QgKilzLT5jb21tYW5kX2xpc3QgfTsKKyAgICBJRDNE MTJDb21tYW5kUXVldWVfRXhlY3V0ZUNvbW1hbmRMaXN0cyhzLT5jb21tYW5kX3F1ZXVlLCAxLCBj bWRfbGlzdHMpOworCisgICAgaHIgPSBJRDNEMTJDb21tYW5kUXVldWVfU2lnbmFsKHMtPmNvbW1h bmRfcXVldWUsIHMtPmZlbmNlLCBzLT5mZW5jZV92YWx1ZSk7CisgICAgaWYgKEZBSUxFRChocikp IHsKKyAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIHNpZ25hbCBm ZW5jZTogSFJFU1VMVCAweCVsWFxuIiwgaHIpOworICAgICAgICByZXQgPSBBVkVSUk9SX0VYVEVS TkFMOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb3V0cHV0X2ZyYW1lLT5zeW5j X2N0eC5mZW5jZSA9IHMtPmZlbmNlOworICAgIG91dHB1dF9mcmFtZS0+c3luY19jdHguZmVuY2Vf dmFsdWUgPSBzLT5mZW5jZV92YWx1ZTsKKyAgICBJRDNEMTJGZW5jZV9BZGRSZWYocy0+ZmVuY2Up OyAgLy8vPCBJbmNyZW1lbnQgcmVmZXJlbmNlIGNvdW50CisKKyAgICBzLT5mZW5jZV92YWx1ZSsr OworCisgICAgcmV0ID0gYXZfZnJhbWVfY29weV9wcm9wcyhvdXQsIGluKTsKKyAgICBpZiAocmV0 IDwgMCkgeworICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfRVJST1IsICJGYWlsZWQgdG8gY29w eSBmcmFtZSBwcm9wZXJ0aWVzXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAg IG91dC0+d2lkdGggPSBzLT53aWR0aDsKKyAgICBvdXQtPmhlaWdodCA9IHMtPmhlaWdodDsKKyAg ICBvdXQtPmZvcm1hdCA9IEFWX1BJWF9GTVRfRDNEMTI7CisKKyAgICBhdl9mcmFtZV9mcmVlKCZp bik7CisKKyAgICByZXR1cm4gZmZfZmlsdGVyX2ZyYW1lKG91dGxpbmssIG91dCk7CisKK2ZhaWw6 CisgICAgYXZfZnJhbWVfZnJlZSgmaW4pOworICAgIGF2X2ZyYW1lX2ZyZWUoJm91dCk7CisgICAg cmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBzY2FsZV9kM2QxMl9jb25maWdfcHJvcHMoQVZG aWx0ZXJMaW5rICpvdXRsaW5rKQoreworICAgIEFWRmlsdGVyQ29udGV4dCAqY3R4ID0gb3V0bGlu ay0+c3JjOworICAgIFNjYWxlRDNEMTJDb250ZXh0ICpzID0gY3R4LT5wcml2OworICAgIEFWRmls dGVyTGluayAqaW5saW5rID0gY3R4LT5pbnB1dHNbMF07CisgICAgRmlsdGVyTGluayAgICAgICpp bmwgPSBmZl9maWx0ZXJfbGluayhpbmxpbmspOworICAgIEZpbHRlckxpbmsgICAgICpvdXRsID0g ZmZfZmlsdGVyX2xpbmsob3V0bGluayk7CisgICAgaW50IHJldDsKKworICAgIHJlbGVhc2VfZDNk MTJfcmVzb3VyY2VzKHMpOworCisgICAgYXZfYnVmZmVyX3VucmVmKCZzLT5od19mcmFtZXNfY3R4 X291dCk7CisgICAgYXZfYnVmZmVyX3VucmVmKCZzLT5od19kZXZpY2VfY3R4KTsKKworICAgIHJl dCA9IGZmX3NjYWxlX2V2YWxfZGltZW5zaW9ucyhzLCBzLT53X2V4cHIsIHMtPmhfZXhwciwgaW5s aW5rLCBvdXRsaW5rLCAmcy0+d2lkdGgsICZzLT5oZWlnaHQpOworICAgIGlmIChyZXQgPCAwKSB7 CisgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byBldmFsdWF0ZSBk aW1lbnNpb25zXG4iKTsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICAvKiBBZGp1 c3QgZGltZW5zaW9ucyB0byBtZWV0IGNvZGVjL2hhcmR3YXJlIGFsaWdubWVudCByZXF1aXJlbWVu dHMgKi8KKyAgICBmZl9zY2FsZV9hZGp1c3RfZGltZW5zaW9ucyhpbmxpbmssICZzLT53aWR0aCwg JnMtPmhlaWdodCwgMCwgMSwgMS5mKTsKKworICAgIG91dGxpbmstPncgPSBzLT53aWR0aDsKKyAg ICBvdXRsaW5rLT5oID0gcy0+aGVpZ2h0OworCisgICAgaWYgKCFpbmwtPmh3X2ZyYW1lc19jdHgp IHsKKyAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiTm8gaHdfZnJhbWVzX2N0eCBh dmFpbGFibGUgb24gaW5wdXQgbGlua1xuIik7CisgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZB TCk7CisgICAgfQorCisgICAgaWYgKCFzLT5od19kZXZpY2VfY3R4KSB7CisgICAgICAgIEFWSFdG cmFtZXNDb250ZXh0ICppbl9mcmFtZXNfY3R4ID0gKEFWSFdGcmFtZXNDb250ZXh0ICopaW5sLT5o d19mcmFtZXNfY3R4LT5kYXRhOworICAgICAgICBzLT5od19kZXZpY2VfY3R4ID0gYXZfYnVmZmVy X3JlZihpbl9mcmFtZXNfY3R4LT5kZXZpY2VfcmVmKTsKKyAgICAgICAgaWYgKCFzLT5od19kZXZp Y2VfY3R4KSB7CisgICAgICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfRVJST1IsICJGYWlsZWQg dG8gaW5pdGlhbGl6ZSBmaWx0ZXIgaGFyZHdhcmUgZGV2aWNlIGNvbnRleHRcbiIpOworICAgICAg ICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEFW SFdEZXZpY2VDb250ZXh0ICpod2N0eCA9IChBVkhXRGV2aWNlQ29udGV4dCAqKXMtPmh3X2Rldmlj ZV9jdHgtPmRhdGE7CisgICAgQVZEM0QxMlZBRGV2aWNlQ29udGV4dCAqZDNkMTJfaHdjdHggPSAo QVZEM0QxMlZBRGV2aWNlQ29udGV4dCAqKWh3Y3R4LT5od2N0eDsKKworICAgIHMtPmRldmljZSA9 IGQzZDEyX2h3Y3R4LT5kZXZpY2U7CisKKyAgICBpZiAoIXMtPmRldmljZSkgeworICAgICAgICBh dl9sb2coY3R4LCBBVl9MT0dfRVJST1IsICJGYWlsZWQgdG8gZ2V0IHZhbGlkIEQzRDEyIGRldmlj ZVxuIik7CisgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7CisgICAgfQorCisgICAgcy0+ aHdfZnJhbWVzX2N0eF9vdXQgPSBhdl9od2ZyYW1lX2N0eF9hbGxvYyhzLT5od19kZXZpY2VfY3R4 KTsKKyAgICBpZiAoIXMtPmh3X2ZyYW1lc19jdHhfb3V0KQorICAgICAgICByZXR1cm4gQVZFUlJP UihFTk9NRU0pOworCisgICAgQVZIV0ZyYW1lc0NvbnRleHQgKmZyYW1lc19jdHggPSAoQVZIV0Zy YW1lc0NvbnRleHQgKilzLT5od19mcmFtZXNfY3R4X291dC0+ZGF0YTsKKyAgICBBVkhXRnJhbWVz Q29udGV4dCAqaW5fZnJhbWVzX2N0eCA9IChBVkhXRnJhbWVzQ29udGV4dCAqKWlubC0+aHdfZnJh bWVzX2N0eC0+ZGF0YTsKKworICAgIGlmIChzLT5mb3JtYXQgPT0gQVZfUElYX0ZNVF9OT05FKSB7 CisgICAgICAgIC8qIElmIGZvcm1hdCBpcyBub3Qgc3BlY2lmaWVkLCB1c2UgdGhlIHNhbWUgZm9y bWF0IGFzIGlucHV0ICovCisgICAgICAgIGZyYW1lc19jdHgtPnN3X2Zvcm1hdCA9IGluX2ZyYW1l c19jdHgtPnN3X2Zvcm1hdDsKKyAgICAgICAgcy0+Zm9ybWF0ID0gaW5fZnJhbWVzX2N0eC0+c3df Zm9ybWF0OworICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfVkVSQk9TRSwgIkQzRDEyIHNjYWxl IG91dHB1dCBmb3JtYXQgbm90IHNwZWNpZmllZCwgdXNpbmcgaW5wdXQgZm9ybWF0OiAlc1xuIiwK KyAgICAgICAgICAgICAgIGF2X2dldF9waXhfZm10X25hbWUocy0+Zm9ybWF0KSk7CisgICAgfSBl bHNlIHsKKyAgICAgICAgZnJhbWVzX2N0eC0+c3dfZm9ybWF0ID0gcy0+Zm9ybWF0OworICAgIH0K KworICAgIC8qIFNldCBvdXRwdXQgZm9ybWF0IGJhc2VkIG9uIHN3X2Zvcm1hdCAqLworICAgIHN3 aXRjaCAoZnJhbWVzX2N0eC0+c3dfZm9ybWF0KSB7CisgICAgICAgIGNhc2UgQVZfUElYX0ZNVF9O VjEyOgorICAgICAgICAgICAgcy0+b3V0cHV0X2Zvcm1hdCA9IERYR0lfRk9STUFUX05WMTI7Cisg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBVl9QSVhfRk1UX1AwMTA6CisgICAgICAg ICAgICBzLT5vdXRwdXRfZm9ybWF0ID0gRFhHSV9GT1JNQVRfUDAxMDsKKyAgICAgICAgICAgIGJy ZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0VS Uk9SLCAiVW5zdXBwb3J0ZWQgb3V0cHV0IGZvcm1hdDogJXNcbiIsCisgICAgICAgICAgICAgICAg ICAgYXZfZ2V0X3BpeF9mbXRfbmFtZShmcmFtZXNfY3R4LT5zd19mb3JtYXQpKTsKKyAgICAgICAg ICAgIGF2X2J1ZmZlcl91bnJlZigmcy0+aHdfZnJhbWVzX2N0eF9vdXQpOworICAgICAgICAgICAg cmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKKyAgICB9CisKKyAgICBmcmFtZXNfY3R4LT53aWR0aCAg PSBzLT53aWR0aDsKKyAgICBmcmFtZXNfY3R4LT5oZWlnaHQgPSBzLT5oZWlnaHQ7CisgICAgZnJh bWVzX2N0eC0+Zm9ybWF0ID0gQVZfUElYX0ZNVF9EM0QxMjsKKyAgICBmcmFtZXNfY3R4LT5pbml0 aWFsX3Bvb2xfc2l6ZSA9IDEwOworCisgICAgaWYgKGN0eC0+ZXh0cmFfaHdfZnJhbWVzID4gMCkK KyAgICAgICAgZnJhbWVzX2N0eC0+aW5pdGlhbF9wb29sX3NpemUgKz0gY3R4LT5leHRyYV9od19m cmFtZXM7CisKKyAgICBBVkQzRDEyVkFGcmFtZXNDb250ZXh0ICpmcmFtZXNfaHdjdHggPSBmcmFt ZXNfY3R4LT5od2N0eDsKKworICAgIC8qCisgICAgKiBTZXQgRDNEMTIgcmVzb3VyY2UgZmxhZ3Mg Zm9yIHZpZGVvIHByb2Nlc3NpbmcKKyAgICAqIEFMTE9XX1JFTkRFUl9UQVJHRVQgaXMgbmVlZGVk IGZvciB2aWRlbyBwcm9jZXNzb3Igb3V0cHV0CisgICAgKi8KKyAgICBmcmFtZXNfaHdjdHgtPmZv cm1hdCA9IHMtPm91dHB1dF9mb3JtYXQ7CisgICAgZnJhbWVzX2h3Y3R4LT5yZXNvdXJjZV9mbGFn cyA9IEQzRDEyX1JFU09VUkNFX0ZMQUdfQUxMT1dfUkVOREVSX1RBUkdFVDsKKyAgICBmcmFtZXNf aHdjdHgtPmhlYXBfZmxhZ3MgPSBEM0QxMl9IRUFQX0ZMQUdfTk9ORTsKKworICAgIHJldCA9IGF2 X2h3ZnJhbWVfY3R4X2luaXQocy0+aHdfZnJhbWVzX2N0eF9vdXQpOworICAgIGlmIChyZXQgPCAw KSB7CisgICAgICAgIGF2X2J1ZmZlcl91bnJlZigmcy0+aHdfZnJhbWVzX2N0eF9vdXQpOworICAg ICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIG91dGwtPmh3X2ZyYW1lc19jdHggPSBhdl9i dWZmZXJfcmVmKHMtPmh3X2ZyYW1lc19jdHhfb3V0KTsKKyAgICBpZiAoIW91dGwtPmh3X2ZyYW1l c19jdHgpCisgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7CisKKyAgICBhdl9sb2coY3R4 LCBBVl9MT0dfVkVSQk9TRSwgIkQzRDEyIHNjYWxlIGNvbmZpZzogJWR4JWQgLT4gJWR4JWRcbiIs CisgICAgICAgICAgIGlubGluay0+dywgaW5saW5rLT5oLCBvdXRsaW5rLT53LCBvdXRsaW5rLT5o KTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGF2X2NvbGQgdm9pZCBzY2FsZV9kM2QxMl91 bmluaXQoQVZGaWx0ZXJDb250ZXh0ICpjdHgpIHsKKyAgICBTY2FsZUQzRDEyQ29udGV4dCAqcyA9 IGN0eC0+cHJpdjsKKworICAgIHJlbGVhc2VfZDNkMTJfcmVzb3VyY2VzKHMpOworCisgICAgYXZf YnVmZmVyX3VucmVmKCZzLT5od19mcmFtZXNfY3R4X291dCk7CisgICAgYXZfYnVmZmVyX3VucmVm KCZzLT5od19kZXZpY2VfY3R4KTsKKworICAgIGF2X2ZyZWVwKCZzLT53X2V4cHIpOworICAgIGF2 X2ZyZWVwKCZzLT5oX2V4cHIpOworfQorCitzdGF0aWMgY29uc3QgQVZGaWx0ZXJQYWQgc2NhbGVf ZDNkMTJfaW5wdXRzW10gPSB7CisgICAgeworICAgICAgICAubmFtZSAgICAgICAgID0gImRlZmF1 bHQiLAorICAgICAgICAudHlwZSAgICAgICAgID0gQVZNRURJQV9UWVBFX1ZJREVPLAorICAgICAg ICAuZmlsdGVyX2ZyYW1lID0gc2NhbGVfZDNkMTJfZmlsdGVyX2ZyYW1lLAorICAgIH0sCit9Owor CitzdGF0aWMgY29uc3QgQVZGaWx0ZXJQYWQgc2NhbGVfZDNkMTJfb3V0cHV0c1tdID0geworICAg IHsKKyAgICAgICAgLm5hbWUgICAgICAgICA9ICJkZWZhdWx0IiwKKyAgICAgICAgLnR5cGUgICAg ICAgICA9IEFWTUVESUFfVFlQRV9WSURFTywKKyAgICAgICAgLmNvbmZpZ19wcm9wcyA9IHNjYWxl X2QzZDEyX2NvbmZpZ19wcm9wcywKKyAgICB9LAorfTsKKworI2RlZmluZSBPRkZTRVQoeCkgb2Zm c2V0b2YoU2NhbGVEM0QxMkNvbnRleHQsIHgpCisjZGVmaW5lIEZMQUdTIChBVl9PUFRfRkxBR19G SUxURVJJTkdfUEFSQU0gfCBBVl9PUFRfRkxBR19WSURFT19QQVJBTSkKKworc3RhdGljIGNvbnN0 IEFWT3B0aW9uIHNjYWxlX2QzZDEyX29wdGlvbnNbXSA9IHsKKyAgICB7ICJ3IiwgICJPdXRwdXQg dmlkZW8gd2lkdGgiLCAgICAgICBPRkZTRVQod19leHByKSwgQVZfT1BUX1RZUEVfU1RSSU5HLCAg ICB7LnN0ciA9ICJpdyJ9LCAuZmxhZ3MgPSBGTEFHUyB9LAorICAgIHsgImgiLCAiT3V0cHV0IHZp ZGVvIGhlaWdodCIsICAgICAgIE9GRlNFVChoX2V4cHIpLCBBVl9PUFRfVFlQRV9TVFJJTkcsICAg IHsuc3RyID0gImloIn0sIC5mbGFncyA9IEZMQUdTIH0sCisgICAgeyAiZm9ybWF0IiwgIk91dHB1 dCB2aWRlbyBwaXhlbCBmb3JtYXQiLCBPRkZTRVQoZm9ybWF0KSwgQVZfT1BUX1RZUEVfUElYRUxf Rk1ULCB7IC5pNjQgPSBBVl9QSVhfRk1UX05PTkUgfSwgSU5UX01JTiwgSU5UX01BWCwgLmZsYWdz PUZMQUdTIH0sCisgICAgeyBOVUxMIH0KK307CisKK0FWRklMVEVSX0RFRklORV9DTEFTUyhzY2Fs ZV9kM2QxMik7CisKK2NvbnN0IEZGRmlsdGVyIGZmX3ZmX3NjYWxlX2QzZDEyID0geworICAgIC5w Lm5hbWUgICAgICAgICAgID0gInNjYWxlX2QzZDEyIiwKKyAgICAucC5kZXNjcmlwdGlvbiAgICA9 IE5VTExfSUZfQ09ORklHX1NNQUxMKCJTY2FsZSB2aWRlbyB1c2luZyBEaXJlY3QzRDEyIiksCisg ICAgLnByaXZfc2l6ZSAgICAgICAgPSBzaXplb2YoU2NhbGVEM0QxMkNvbnRleHQpLAorICAgIC5w LnByaXZfY2xhc3MgICAgID0gJnNjYWxlX2QzZDEyX2NsYXNzLAorICAgIC5pbml0ICAgICAgICAg ICAgID0gc2NhbGVfZDNkMTJfaW5pdCwKKyAgICAudW5pbml0ICAgICAgICAgICA9IHNjYWxlX2Qz ZDEyX3VuaW5pdCwKKyAgICBGSUxURVJfSU5QVVRTKHNjYWxlX2QzZDEyX2lucHV0cyksCisgICAg RklMVEVSX09VVFBVVFMoc2NhbGVfZDNkMTJfb3V0cHV0cyksCisgICAgRklMVEVSX1NJTkdMRV9Q SVhGTVQoQVZfUElYX0ZNVF9EM0QxMiksCisgICAgLnAuZmxhZ3MgICAgICAgICAgPSBBVkZJTFRF Ul9GTEFHX0hXREVWSUNFLAorICAgIC5mbGFnc19pbnRlcm5hbCAgID0gRkZfRklMVEVSX0ZMQUdf SFdGUkFNRV9BV0FSRSwKK307Ci0tIAoyLjUyLjAKCgpGcm9tIDQwZDA4ZDIxNzMwNzljZGQxM2Vh YWU2YWY5NTA3YmRhZDliMjJlZjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRpbW8g Um90aGVucGllbGVyIDx0aW1vQHJvdGhlbnBpZWxlci5vcmc+CkRhdGU6IE1vbiwgOCBEZWMgMjAy NSAxNDoxODozNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjQzLzMwNF0gYXZmaWx0ZXIvdmZfc2Nh bGVfZDNkMTI6IGZpeCBpbnRlZ2VyIG92ZXJmbG93IGluCiBpbnB1dCBmcmFtZXJhdGUgY2FsY3Vs YXRpb24KCkFsc28gcmVtb3ZlcyBwb2ludGxlc3MgaW50ZXJtZWRpYXRlIHZhcmlhYmxlcyB0aGF0 IGNhdXNlZAp0aGUgb3ZlcmZsb3cgYW5kIHRydW5jYXRpb24gdG8gaGFwcGVuIGluIHRoZSBmaXJz dCBwbGFjZS4KCkZpeGVzICNZV0gtUEdNNDA2NDYtMQotLS0KIGxpYmF2ZmlsdGVyL3ZmX3NjYWxl X2QzZDEyLmMgfCAxMCArKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX3NjYWxlX2QzZDEy LmMgYi9saWJhdmZpbHRlci92Zl9zY2FsZV9kM2QxMi5jCmluZGV4IDY5NTBmZWIzMmIuLjgwNjZi ZDA3MjUgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3ZmX3NjYWxlX2QzZDEyLmMKKysrIGIvbGli YXZmaWx0ZXIvdmZfc2NhbGVfZDNkMTIuYwpAQCAtMTU1LDggKzE1NSw2IEBAIHN0YXRpYyBEWEdJ X0NPTE9SX1NQQUNFX1RZUEUgZ2V0X2R4Z2lfY29sb3JzcGFjZShlbnVtIEFWQ29sb3JTcGFjZSBj b2xvcnNwYWNlLCBlCiAKIHN0YXRpYyBBVlJhdGlvbmFsIGdldF9pbnB1dF9mcmFtZXJhdGUoQVZG aWx0ZXJDb250ZXh0ICpjdHgsIEFWRmlsdGVyTGluayAqaW5saW5rLCBBVkZyYW1lICppbikKIHsK LSAgICBpbnQ2NF90IGR1cmF0aW9uX3NjYWxlZDsKLSAgICBpbnQ2NF90IHRpbWVfYmFzZV9kZW47 CiAgICAgQVZSYXRpb25hbCBmcmFtZXJhdGUgPSB7MCwgMH07CiAKICAgICBpZiAoaW4tPmR1cmF0 aW9uID4gMCAmJiBpbmxpbmstPnRpbWVfYmFzZS5udW0gPiAwICYmIGlubGluay0+dGltZV9iYXNl LmRlbiA+IDApIHsKQEAgLTE2NCwxMyArMTYyLDkgQEAgc3RhdGljIEFWUmF0aW9uYWwgZ2V0X2lu cHV0X2ZyYW1lcmF0ZShBVkZpbHRlckNvbnRleHQgKmN0eCwgQVZGaWx0ZXJMaW5rICppbmxpbmsK ICAgICAgICAgKiBDYWxjdWxhdGUgZnJhbWVyYXRlIGZyb20gZnJhbWUgZHVyYXRpb24gYW5kIHRp bWViYXNlCiAgICAgICAgICogZnJhbWVyYXRlID0gMSAvIChkdXJhdGlvbiAqIHRpbWViYXNlKQog ICAgICAgICAqLwotICAgICAgICBkdXJhdGlvbl9zY2FsZWQgPSBpbi0+ZHVyYXRpb24gKiBpbmxp bmstPnRpbWVfYmFzZS5udW07Ci0gICAgICAgIHRpbWVfYmFzZV9kZW4gPSBpbmxpbmstPnRpbWVf YmFzZS5kZW47Ci0gICAgICAgIGZyYW1lcmF0ZS5udW0gPSB0aW1lX2Jhc2VfZGVuOwotICAgICAg ICBmcmFtZXJhdGUuZGVuID0gZHVyYXRpb25fc2NhbGVkOwotICAgICAgICAvKiBSZWR1Y2UgdGhl IGZyYWN0aW9uICovCiAgICAgICAgIGF2X3JlZHVjZSgmZnJhbWVyYXRlLm51bSwgJmZyYW1lcmF0 ZS5kZW4sCi0gICAgICAgICAgICAgICAgIGZyYW1lcmF0ZS5udW0sIGZyYW1lcmF0ZS5kZW4sIElO VF9NQVgpOworICAgICAgICAgICAgICAgICAgaW5saW5rLT50aW1lX2Jhc2UuZGVuLCBpbi0+ZHVy YXRpb24gKiBpbmxpbmstPnRpbWVfYmFzZS5udW0sCisgICAgICAgICAgICAgICAgICBJTlRfTUFY KTsKICAgICB9IGVsc2UgaWYgKGlubGluay0+dGltZV9iYXNlLm51bSA+IDAgJiYgaW5saW5rLT50 aW1lX2Jhc2UuZGVuID4gMCkgewogICAgICAgICAvKiBFc3RpbWF0ZSBmcm9tIHRpbWViYXNlIChp bnZlcnNlIG9mIHRpbWViYXNlIGlzIG9mdGVuIHRoZSBmcmFtZXJhdGUpICovCiAgICAgICAgIGZy YW1lcmF0ZS5udW0gPSBpbmxpbmstPnRpbWVfYmFzZS5kZW47Ci0tIAoyLjUyLjAKCgpGcm9tIGE1 NWIyNTlhZjRmYjIzOGMxOGQ3Mjk4M2ZjYWE1YjNiYTUyYWM1M2QgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IE5pa2xhcyBIYWFzIDxnaXRAaGFhc24uZGV2PgpEYXRlOiBUaHUsIDQgRGVj IDIwMjUgMTk6MzI6MTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDI0NC8zMDRdIHN3c2NhbGUvZm9y bWF0OiBoYW5kbGUgWUEgZm9ybWF0IHN3aXp6bGVzIG1vcmUKIHJvYnVzdGx5CgpUaGlzIGNvZGUg d2FzIHByZXZpb3VzbHkgYnJva2VuOyBzaW5jZSBZQUYzMkJFL0xFIHdlcmUgbm90IGluY2x1ZGVk IGFzCnBhcnQgb2YgdGhlIGZvcm1hdCBlbnVtZXJhdGlvbi4gSG93ZXZlciwgc2luY2Ugd2UgKmFs d2F5cyoga25vdyB0aGUgY29ycmVjdApzd2l6emxlIGZvciBZQSBmb3JtYXRzLCB3ZSBjYW4ganVz dCBzcGVjaWFsLWNhc2UgdGhpcyBieSB0aGUgbnVtYmVyIG9mCmNvbXBvbmVudHMgaW5zdGVhZC4K LS0tCiBsaWJzd3NjYWxlL2Zvcm1hdC5jIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJzd3NjYWxlL2Zv cm1hdC5jIGIvbGlic3dzY2FsZS9mb3JtYXQuYwppbmRleCAyYWU2ZDUwNTIzLi41YWMwNDE4MjY2 IDEwMDY0NAotLS0gYS9saWJzd3NjYWxlL2Zvcm1hdC5jCisrKyBiL2xpYnN3c2NhbGUvZm9ybWF0 LmMKQEAgLTYzMCw2ICs2MzAsMTAgQEAgc3RhdGljIFN3c1BpeGVsVHlwZSBmbXRfcGl4ZWxfdHlw ZShlbnVtIEFWUGl4ZWxGb3JtYXQgZm10KQogCiBzdGF0aWMgU3dzU3dpenpsZU9wIGZtdF9zd2l6 emxlKGVudW0gQVZQaXhlbEZvcm1hdCBmbXQpCiB7CisgICAgY29uc3QgQVZQaXhGbXREZXNjcmlw dG9yICpkZXNjID0gYXZfcGl4X2ZtdF9kZXNjX2dldChmbXQpOworICAgIGlmIChkZXNjLT5uYl9j b21wb25lbnRzID09IDIpIC8qIFlBIGZvcm1hdHMgKi8KKyAgICAgICAgcmV0dXJuIChTd3NTd2l6 emxlT3ApIHt7IC54ID0gMCwgMywgMSwgMiB9fTsKKwogICAgIHN3aXRjaCAoZm10KSB7CiAgICAg Y2FzZSBBVl9QSVhfRk1UX0FSR0I6CiAgICAgY2FzZSBBVl9QSVhfRk1UXzBSR0I6CkBAIC02NjMs MTAgKzY2Nyw2IEBAIHN0YXRpYyBTd3NTd2l6emxlT3AgZm10X3N3aXp6bGUoZW51bSBBVlBpeGVs Rm9ybWF0IGZtdCkKICAgICBjYXNlIEFWX1BJWF9GTVRfWDJCR1IxMExFOgogICAgIGNhc2UgQVZf UElYX0ZNVF9YMkJHUjEwQkU6CiAgICAgICAgIHJldHVybiAoU3dzU3dpenpsZU9wKSB7eyAueCA9 IDMsIDIsIDEsIDAgfX07Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1lBODoKLSAgICBjYXNlIEFWX1BJ WF9GTVRfWUExNkJFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9ZQTE2TEU6Ci0gICAgICAgIHJldHVy biAoU3dzU3dpenpsZU9wKSB7eyAueCA9IDAsIDMsIDEsIDIgfX07CiAgICAgY2FzZSBBVl9QSVhf Rk1UX1hWMzBCRToKICAgICBjYXNlIEFWX1BJWF9GTVRfWFYzMExFOgogICAgICAgICByZXR1cm4g KFN3c1N3aXp6bGVPcCkge3sgLnggPSAzLCAyLCAwLCAxIH19OwotLSAKMi41Mi4wCgoKRnJvbSA5 NWUxMjdmOGVmODM3ZjQxNWMyOGVkNzRiNjdmNmMzOTVhODEzNTA2IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBOaWtsYXMgSGFhcyA8Z2l0QGhhYXNuLmRldj4KRGF0ZTogRnJpLCA1IERl YyAyMDI1IDEzOjI2OjIyICswMTAwClN1YmplY3Q6IFtQQVRDSCAyNDUvMzA0XSBzd3NjYWxlL2Zv cm1hdDogYWRkIGFzc2VydGlvbiB0byBwcmV2ZW50IG5hbi9pbmYKIG1hdHJpeCBjb2VmZnMKCi0t LQogbGlic3dzY2FsZS9mb3JtYXQuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspCgpkaWZmIC0tZ2l0IGEvbGlic3dzY2FsZS9mb3JtYXQuYyBiL2xpYnN3c2NhbGUvZm9ybWF0 LmMKaW5kZXggNWFjMDQxODI2Ni4uY2JiNWNiMzVmZSAxMDA2NDQKLS0tIGEvbGlic3dzY2FsZS9m b3JtYXQuYworKysgYi9saWJzd3NjYWxlL2Zvcm1hdC5jCkBAIC0xMjE2LDYgKzEyMTYsNyBAQCBz dGF0aWMgU3dzTGluZWFyT3AgZm10X2RlY29kZV9yYW5nZShjb25zdCBTd3NGb3JtYXQgZm10LCBi b29sICppbmNvbXBsZXRlKQogCiAgICAgLyogSW52ZXJ0IG1haW4gZGlhZ29uYWwgKyBvZmZzZXQ6 IHggPSBzICogeSArIGsgID09PiAgeSA9ICh4IC0gaykgLyBzICovCiAgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCA0OyBpKyspIHsKKyAgICAgICAgYXZfYXNzZXJ0MShjLm1baV1baV0ubnVtKTsKICAg ICAgICAgYy5tW2ldW2ldID0gYXZfaW52X3EoYy5tW2ldW2ldKTsKICAgICAgICAgYy5tW2ldWzRd ID0gYXZfbXVsX3EoYy5tW2ldWzRdLCBhdl9uZWdfcShjLm1baV1baV0pKTsKICAgICB9Ci0tIAoy LjUyLjAKCgpGcm9tIDk4YTliNTQ2YjJjZTRhNjNiYjY5NjdlNmY1NDFjMGY3YzZlMDQ2YmUgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pa2xhcyBIYWFzIDxnaXRAaGFhc24uZGV2PgpE YXRlOiBUaHUsIDQgRGVjIDIwMjUgMTk6MjU6NTEgKzAxMDAKU3ViamVjdDogW1BBVENIIDI0Ni8z MDRdIHN3c2NhbGUvdGVzdHM6IGFkZCBuZXcgdGVzdCBmb3IgZ2VuZXJhdGVkIG9wZXJhdGlvbgog bGlzdHMKClRoaXMgaXMgc2ltaWxhciB0byBzd3NjYWxlL3Rlc3RzL3N3c2NhbGUuYywgYnV0IHNp Z25pZmljYW50bHkgY2hlYXBlciAtIGl0Cm1lcmVseSBwcmludHMgdGhlIGdlbmVyYXRlZCAob3B0 aW1pemVkKSBvcGVyYXRpb24gbGlzdCBmb3IgZXZlcnkgZm9ybWF0CmNvbnZlcnNpb24uCgpNb3N0 bHkgdXNlZnVsIGZvciBteSBvd24gcHVycG9zZXMgYXMgYSByZWdyZXNzaW9uIHRlc3Qgd2hlbiBt YWtpbmcgY2hhbmdlcwp0byB0aGUgb3BzIG9wdGltaXplci4gTm90ZSB0aGUgZGlzdGluY3Rpb24g YmV0d2VlbiB0aGlzIGFuZCB0ZXN0cy9zd3NjYWxlLmMsCnRoZSBsYXR0ZXIgb2Ygd2hpY2ggdGVz dHMgdGhlIHJlc3VsdCBvZiAqYXBwbHlpbmcqIGFuIG9wZXJhdGlvbiBsaXN0IGZvcgplcXVhbGl0 eS4KClRoZXJlIGlzIGFuIGFyZ3VtZW50IHRvIGJlIG1hZGUgdGhhdCB0aGUgdHdvIHRlc3RzIGNv dWxkIGJlIG1lcmdlZCwgYnV0CkkgdGhpbmsgdGhlIGFtb3VudCBvZiBvdmVybGFwIGlzIHNtYWxs IGVub3VnaCB0byBub3QgYmUgd29ydGggdGhlIGFtb3VudApvZiBkaWZmZXJlbmNlcy4KLS0tCiBs aWJzd3NjYWxlL01ha2VmaWxlICAgICAgICB8ICAxICsKIGxpYnN3c2NhbGUvdGVzdHMvc3dzX29w cy5jIHwgOTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMg Y2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYnN3c2NhbGUv dGVzdHMvc3dzX29wcy5jCgpkaWZmIC0tZ2l0IGEvbGlic3dzY2FsZS9NYWtlZmlsZSBiL2xpYnN3 c2NhbGUvTWFrZWZpbGUKaW5kZXggYTA5NmVkMzMxZS4uYmRlMTE0NDg5NyAxMDA2NDQKLS0tIGEv bGlic3dzY2FsZS9NYWtlZmlsZQorKysgYi9saWJzd3NjYWxlL01ha2VmaWxlCkBAIC00MywzICs0 Myw0IEBAIFRFU1RQUk9HUyA9IGNvbG9yc3BhY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIGZsb2F0aW1nX2NtcCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHBp eGRlc2NfcXVlcnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKICAgICAgICAgICAgIHN3c2NhbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHN3c19vcHMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKZGlmZiAtLWdpdCBhL2xpYnN3 c2NhbGUvdGVzdHMvc3dzX29wcy5jIGIvbGlic3dzY2FsZS90ZXN0cy9zd3Nfb3BzLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOGJiNDRkNjM0ZAotLS0gL2Rldi9udWxs CisrKyBiL2xpYnN3c2NhbGUvdGVzdHMvc3dzX29wcy5jCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisg KiBDb3B5cmlnaHQgKEMpIDIwMjUgTmlrbGFzIEhhYXMKKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFy dCBvZiBGRm1wZWcuCisgKgorICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUg TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBG Rm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGgg RkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9u LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEw LTEzMDEgVVNBCisgKi8KKworI2luY2x1ZGUgImxpYmF2dXRpbC9waXhkZXNjLmgiCisjaW5jbHVk ZSAibGlic3dzY2FsZS9vcHMuaCIKKyNpbmNsdWRlICJsaWJzd3NjYWxlL2Zvcm1hdC5oIgorCitz dGF0aWMgaW50IHJ1bl90ZXN0KFN3c0NvbnRleHQgKmNvbnN0IGN0eCwgQVZGcmFtZSAqZnJhbWUs CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFWUGl4Rm10RGVzY3JpcHRvciAqY29uc3Qgc3Jj X2Rlc2MsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFWUGl4Rm10RGVzY3JpcHRvciAqY29u c3QgZHN0X2Rlc2MpCit7CisgICAgLyogUmV1c2UgZmZfZm10X2Zyb21fZnJhbWUoKSB0byBlbnN1 cmUgY29ycmVjdGx5IHNhbml0aXplZCBtZXRhZGF0YSAqLworICAgIGZyYW1lLT5mb3JtYXQgPSBh dl9waXhfZm10X2Rlc2NfZ2V0X2lkKHNyY19kZXNjKTsKKyAgICBTd3NGb3JtYXQgc3JjID0gZmZf Zm10X2Zyb21fZnJhbWUoZnJhbWUsIDApOworICAgIGZyYW1lLT5mb3JtYXQgPSBhdl9waXhfZm10 X2Rlc2NfZ2V0X2lkKGRzdF9kZXNjKTsKKyAgICBTd3NGb3JtYXQgZHN0ID0gZmZfZm10X2Zyb21f ZnJhbWUoZnJhbWUsIDApOworICAgIGJvb2wgaW5jb21wbGV0ZSA9IGZmX2luZmVyX2NvbG9ycygm c3JjLmNvbG9yLCAmZHN0LmNvbG9yKTsKKworICAgIFN3c09wTGlzdCAqb3BzID0gZmZfc3dzX29w X2xpc3RfYWxsb2MoKTsKKyAgICBpZiAoIW9wcykKKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5P TUVNKTsKKyAgICBvcHMtPnNyYyA9IHNyYzsKKyAgICBvcHMtPmRzdCA9IGRzdDsKKworICAgIGlm IChmZl9zd3NfZGVjb2RlX3BpeGZtdChvcHMsIHNyYy5mb3JtYXQpIDwgMCkKKyAgICAgICAgZ290 byBmYWlsOworICAgIGlmIChmZl9zd3NfZGVjb2RlX2NvbG9ycyhjdHgsIFNXU19QSVhFTF9GMzIs IG9wcywgc3JjLCAmaW5jb21wbGV0ZSkgPCAwKQorICAgICAgICBnb3RvIGZhaWw7CisgICAgaWYg KGZmX3N3c19lbmNvZGVfY29sb3JzKGN0eCwgU1dTX1BJWEVMX0YzMiwgb3BzLCBkc3QsICZpbmNv bXBsZXRlKSA8IDApCisgICAgICAgIGdvdG8gZmFpbDsKKyAgICBpZiAoZmZfc3dzX2VuY29kZV9w aXhmbXQob3BzLCBkc3QuZm9ybWF0KSA8IDApCisgICAgICAgIGdvdG8gZmFpbDsKKworICAgIGF2 X2xvZyhOVUxMLCBBVl9MT0dfSU5GTywgIiVzIC0+ICVzOlxuIiwKKyAgICAgICAgICAgYXZfZ2V0 X3BpeF9mbXRfbmFtZShzcmMuZm9ybWF0KSwgYXZfZ2V0X3BpeF9mbXRfbmFtZShkc3QuZm9ybWF0 KSk7CisKKyAgICBmZl9zd3Nfb3BfbGlzdF9vcHRpbWl6ZShvcHMpOworICAgIGZmX3N3c19vcF9s aXN0X3ByaW50KE5VTEwsIEFWX0xPR19JTkZPLCBvcHMpOworCitmYWlsOgorICAgIC8qIHNpbGVu dGx5IHNraXAgdW5zdXBwb3J0ZWQgZm9ybWF0cyAqLworICAgIGZmX3N3c19vcF9saXN0X2ZyZWUo Jm9wcyk7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGxvZ19zdGRvdXQodm9pZCAq YXZjbCwgaW50IGxldmVsLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgdmwpCit7CisgICAgaWYg KGxldmVsICE9IEFWX0xPR19JTkZPKSB7CisgICAgICAgIGF2X2xvZ19kZWZhdWx0X2NhbGxiYWNr KGF2Y2wsIGxldmVsLCBmbXQsIHZsKTsKKyAgICB9IGVsc2UgeworICAgICAgICB2ZnByaW50Zihz dGRvdXQsIGZtdCwgdmwpOworICAgIH0KK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KQoreworICAgIGludCByZXQgPSAxOworCisgICAgU3dzQ29udGV4dCAqY3R4ID0gc3dzX2Fs bG9jX2NvbnRleHQoKTsKKyAgICBBVkZyYW1lICpmcmFtZSA9IGF2X2ZyYW1lX2FsbG9jKCk7Cisg ICAgaWYgKCFjdHggfHwgIWZyYW1lKQorICAgICAgICBnb3RvIGZhaWw7CisgICAgZnJhbWUtPndp ZHRoID0gZnJhbWUtPmhlaWdodCA9IDE2OworCisgICAgYXZfbG9nX3NldF9jYWxsYmFjayhsb2df c3Rkb3V0KTsKKyAgICBmb3IgKGNvbnN0IEFWUGl4Rm10RGVzY3JpcHRvciAqc3JjID0gTlVMTDsg KHNyYyA9IGF2X3BpeF9mbXRfZGVzY19uZXh0KHNyYykpOykgeworICAgICAgICBmb3IgKGNvbnN0 IEFWUGl4Rm10RGVzY3JpcHRvciAqZHN0ID0gTlVMTDsgKGRzdCA9IGF2X3BpeF9mbXRfZGVzY19u ZXh0KGRzdCkpOykgeworICAgICAgICAgICAgaW50IGVyciA9IHJ1bl90ZXN0KGN0eCwgZnJhbWUs IHNyYywgZHN0KTsKKyAgICAgICAgICAgIGlmIChlcnIgPCAwKQorICAgICAgICAgICAgICAgIGdv dG8gZmFpbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldCA9IDA7CitmYWlsOgorICAgIGF2 X2ZyYW1lX2ZyZWUoJmZyYW1lKTsKKyAgICBzd3NfZnJlZV9jb250ZXh0KCZjdHgpOworICAgIHJl dHVybiByZXQ7Cit9Ci0tIAoyLjUyLjAKCgpGcm9tIGZhMzMzMzE4NGMwNGRhMjJjZTc2ZjEwODI3 MjQyMDkzZTllZjY3OTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pa2xhcyBIYWFz IDxnaXRAaGFhc24uZGV2PgpEYXRlOiBGcmksIDUgRGVjIDIwMjUgMTM6NTM6NTkgKzAxMDAKU3Vi amVjdDogW1BBVENIIDI0Ny8zMDRdIHRlc3RzL2ZhdGU6IGFkZCBmYXRlLXN3cy1vcHMtbGlzdCB0 ZXN0CgpUaGlzIG9uZSB1c2VzIHRoZSB0ZXN0IGZyYW1ld29yayBhZGRlZCBpbiB0aGUgcHJldmlv dXMgY29tbWl0IHRvIGFkZCBhCmxpZ2h0LXdlaWdodCByZWdyZXNzaW9uIHRlc3QgdG8gZW5zdXJl IHRoZSBnZW5lcmF0ZWQgU3dzT3BzTGlzdCBpcyBpZGVudGljYWwuCgpPbmx5IGNvbXBhcmUgdGhl IG1kNXN1bSwgdG8gbWFrZSB0aGUgcmVmZXJlbmNlIGZpbGUgc2lnbmlmaWNhbnRseSBzbWFsbGVy Cihkb3duIGZyb20gfjEwIE1CKS4KLS0tCiB0ZXN0cy9mYXRlL2xpYnN3c2NhbGUubWFrICAgfCA0 ICsrKysKIHRlc3RzL3JlZi9mYXRlL3N3cy1vcHMtbGlzdCB8IDEgKwogMiBmaWxlcyBjaGFuZ2Vk LCA1IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9yZWYvZmF0ZS9zd3Mt b3BzLWxpc3QKCmRpZmYgLS1naXQgYS90ZXN0cy9mYXRlL2xpYnN3c2NhbGUubWFrIGIvdGVzdHMv ZmF0ZS9saWJzd3NjYWxlLm1hawppbmRleCA1OWRhNTA2NjQ4Li44ZDg3YzM5ZWJmIDEwMDY0NAot LS0gYS90ZXN0cy9mYXRlL2xpYnN3c2NhbGUubWFrCisrKyBiL3Rlc3RzL2ZhdGUvbGlic3dzY2Fs ZS5tYWsKQEAgLTM2LDYgKzM2LDEwIEBAIEZBVEVfTElCU1dTQ0FMRS0kKENPTkZJR19VTlNUQUJM RSkgKz0gZmF0ZS1zd3MtdW5zY2FsZWQKIGZhdGUtc3dzLXVuc2NhbGVkOiBsaWJzd3NjYWxlL3Rl c3RzL3N3c2NhbGUkKEVYRVNVRikKIGZhdGUtc3dzLXVuc2NhbGVkOiBDTUQgPSBydW4gbGlic3dz Y2FsZS90ZXN0cy9zd3NjYWxlJChFWEVTVUYpIC11bnNjYWxlZCAxIC1mbGFncyAweDEwMDAwMCAt diAxNgogCitGQVRFX0xJQlNXU0NBTEUtJChDT05GSUdfVU5TVEFCTEUpICs9IGZhdGUtc3dzLW9w cy1saXN0CitmYXRlLXN3cy1vcHMtbGlzdDogbGlic3dzY2FsZS90ZXN0cy9zd3Nfb3BzJChFWEVT VUYpCitmYXRlLXN3cy1vcHMtbGlzdDogQ01EID0gcnVuIGxpYnN3c2NhbGUvdGVzdHMvc3dzX29w cyQoRVhFU1VGKSB8IGRvX21kNXN1bSB8IGN1dCAtZCIgIiAtZjEKKwogRkFURV9MSUJTV1NDQUxF ICs9ICQoRkFURV9MSUJTV1NDQUxFLXllcykKIEZBVEVfTElCU1dTQ0FMRV9TQU1QTEVTICs9ICQo RkFURV9MSUJTV1NDQUxFX1NBTVBMRVMteWVzKQogRkFURS0kKENPTkZJR19TV1NDQUxFKSArPSAk KEZBVEVfTElCU1dTQ0FMRSkKZGlmZiAtLWdpdCBhL3Rlc3RzL3JlZi9mYXRlL3N3cy1vcHMtbGlz dCBiL3Rlc3RzL3JlZi9mYXRlL3N3cy1vcHMtbGlzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwLi5mNzdjNjBmZGUzCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcmVmL2Zh dGUvc3dzLW9wcy1saXN0CkBAIC0wLDAgKzEgQEAKK2UxMjQ4NDdiYzY2NjNjYTUzOGI3ODRkZTE3 YmY0MmYwCi0tIAoyLjUyLjAKCgpGcm9tIDlhZmE0YjVmNDc4MWZiYTQyZDU3ZDI4ZmExMjc2NWMx Y2M0ZGZkNjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9LYWNwZXI9 MjBNaWNoYWo9QzU9ODJvdz89IDxrYXNwZXI5M0BnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBEZWMg MjAyNSAwNDoyMzowNCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjQ4LzMwNF0gYXZjb2RlYy94ODYv aDI2NF9pZGN0OiBmaXggdmVyc2lvbiBjaGVjayBmb3IgTkFTTSAzCiBhbmQgbmV3ZXIKTUlNRS1W ZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClNpZ25lZC1vZmYtYnk6IEthY3BlciBNaWNoYWrF gm93IDxrYXNwZXI5M0BnbWFpbC5jb20+Ci0tLQogbGliYXZjb2RlYy94ODYvaDI2NF9pZGN0LmFz bSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2L2gyNjRfaWRjdC5hc20gYi9saWJhdmNvZGVjL3g4 Ni9oMjY0X2lkY3QuYXNtCmluZGV4IDQ3ZTQxMTZmNDIuLjZhZTgyMDI3NDggMTAwNjQ0Ci0tLSBh L2xpYmF2Y29kZWMveDg2L2gyNjRfaWRjdC5hc20KKysrIGIvbGliYXZjb2RlYy94ODYvaDI2NF9p ZGN0LmFzbQpAQCAtNjk1LDcgKzY5NSw3IEBAIGNnbG9iYWwgaDI2NF9sdW1hX2RjX2RlcXVhbnRf aWRjdCwgMywgNCwgNwogICAgIFJFVAogCiAlaWZkZWYgX19OQVNNX1ZFUl9fCi0laWYgX19OQVNN X01BSk9SX18gPj0gMiAmJiBfX05BU01fTUlOT1JfXyA+PSA0CislaWYgX19OQVNNX01BSk9SX18g PiAyIHx8IChfX05BU01fTUFKT1JfXyA9PSAyICYmIF9fTkFTTV9NSU5PUl9fID49IDQpCiAldW5t YWNybyBTVE9SRV9ESUZGeDIgOCA7IHJlbW92ZSBtYWNybyBmcm9tIHg4NnV0aWwuYXNtIGJ1dCB5 YXNtIGRvZXNuJ3QgaGF2ZSB0aGlzIHlldAogJWVuZGlmCiAlZW5kaWYKLS0gCjIuNTIuMAoKCkZy b20gMGViMDVlNDlkZWU2MmUxYjUxNTc4NWYwY2RlYjYzMzhmYTQ5N2JhYyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0thY3Blcj0yME1pY2hhaj1DNT04Mm93Pz0gPGth c3BlcjkzQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IERlYyAyMDI1IDA0OjI3OjI5ICswMTAwClN1 YmplY3Q6IFtQQVRDSCAyNDkvMzA0XSBzd3NjYWxlL3g4Ni95dXYyeXV2WDogZG9uJ3QgdXNlIGRl cHJlY2F0ZWQKIGhleGFkZWNpbWFsIHByZWZpeApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5 cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzog OGJpdAoKRml4ZXM6IHdhcm5pbmc6ICQgcHJlZml4IGZvciBoZXhhZGVjaW1hbCBpcyBkZXByZWNh dGVkIFstdytudW1iZXItZGVwcmVjYXRlZC1oZXhdClNpZ25lZC1vZmYtYnk6IEthY3BlciBNaWNo YWrFgm93IDxrYXNwZXI5M0BnbWFpbC5jb20+Ci0tLQogbGlic3dzY2FsZS94ODYveXV2Mnl1dlgu YXNtIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlic3dzY2FsZS94ODYveXV2Mnl1dlguYXNtIGIvbGlic3dz Y2FsZS94ODYveXV2Mnl1dlguYXNtCmluZGV4IDM2OWM4NTA2NzQuLjcxMzdiZTJlMTcgMTAwNjQ0 Ci0tLSBhL2xpYnN3c2NhbGUveDg2L3l1djJ5dXZYLmFzbQorKysgYi9saWJzd3NjYWxlL3g4Ni95 dXYyeXV2WC5hc20KQEAgLTU0LDggKzU0LDggQEAgY2dsb2JhbCB5dXYyeXV2WCwgNywgNywgOCwg ZmlsdGVyLCBmaWx0ZXJTaXplLCBzcmMsIGRlc3QsIGRzdFcsIGRpdGhlciwgb2Zmc2V0CiAgICAg anogICAgICAgICAgICAgICAgICAgLm9mZnNldAogCiAgICAgOyBvZmZzZXQgIT0gMCBwYXRoLgot ICAgIHBzcmxxICAgICAgICAgICAgICAgIG01LCBtMywgJDE4Ci0gICAgcHNsbHEgICAgICAgICAg ICAgICAgbTMsIG0zLCAkMjgKKyAgICBwc3JscSAgICAgICAgICAgICAgICBtNSwgbTMsIDB4MTgK KyAgICBwc2xscSAgICAgICAgICAgICAgICBtMywgbTMsIDB4MjgKICAgICBwb3IgICAgICAgICAg ICAgICAgICBtMywgbTMsIG01CiAKIC5vZmZzZXQ6CkBAIC05NCw3ICs5NCw3IEBAIGNnbG9iYWwg eXV2Mnl1dlgsIDcsIDcsIDgsIGZpbHRlciwgZmlsdGVyU2l6ZSwgc3JjLCBkZXN0LCBkc3RXLCBk aXRoZXIsIG9mZnNldAogICAgIHBhZGR3ICAgICAgICAgICAgICAgIG02LCBtNiwgbTIKICAgICBw YWRkdyAgICAgICAgICAgICAgICBtMSwgbTEsIG01CiAlZW5kaWYKLSAgICBhZGQgICAgICAgICAg ICAgICAgICBmaWx0ZXJTaXplcSwgJDEwCisgICAgYWRkICAgICAgICAgICAgICAgICAgZmlsdGVy U2l6ZXEsIDB4MTAKICAgICBtb3YgICAgICAgICAgICAgICAgICBzcmNxLCBbZmlsdGVyU2l6ZXFd CiAgICAgdGVzdCAgICAgICAgICAgICAgICAgc3JjcSwgc3JjcQogICAgIGpueiAgICAgICAgICAg ICAgICAgIC5sb29wCi0tIAoyLjUyLjAKCgpGcm9tIDk3YTNlZGQ3ZmZkNTRiNzhjOTY1MTE0Yjk2 NTQ1YWRmMjc0NWRiZTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJlYXMgUmhl aW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgpEYXRlOiBTdW4sIDMwIE5v diAyMDI1IDE4OjA4OjM4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAyNTAvMzA0XSBhdmNvZGVjL3Zw OW1jOiBSZW1vdmUgTU1YRVhUIGZ1bmN0aW9ucyBvdmVycmlkZGVuIGJ5CiBTU1NFMwoKU1NTRTMg aXMgYWxyZWFkeSBxdWl0ZSBvbGQgKGludHJvZHVjZWQgMjAwNiBmb3IgSW50ZWwsIDIwMTEgZm9y IEFNRCksCnNvIHRoYXQgdGhlIG92ZXJ3aGVsbWluZyBtYWpvcml0eSBvZiBvdXIgdXNlcnMgKHBh cnRpY3VsYXJseSB0aG9zZQp0aGF0IGFjdHVhbGx5IHVwZGF0ZSB0aGVpciBGRm1wZWcpIHdpbGwg YmUgdXNpbmcgdGhlIFNTU0UzIHZlcnNpb25zLgpUaGlzIGNvbW1pdCB0aGVyZWZvcmUgcmVtb3Zl cyB0aGUgTU1YRVhUIGZ1bmN0aW9ucyBvdmVycmlkZGVuCmJ5IHRoZW0gKHdoaWNoIGRvbid0IGFi aWRlIGJ5IHRoZSBBQkkpIHRvIGdldCBjbG9zZXIgdG8gYSByZW1vdmFsCm9mIGVtbXNfYy4KClJl dmlld2VkLWJ5OiBSb25hbGQgUy4gQnVsdGplIDxyc2J1bHRqZUBnbWFpbC5jb20+ClNpZ25lZC1v ZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29t PgotLS0KIGxpYmF2Y29kZWMveDg2L3ZwOWRzcF9pbml0LmMgICAgICAgICAgICAgICAgfCAyMCAr KysrKysrKystLS0tLS0tLS0tLQogbGliYXZjb2RlYy94ODYvdnA5ZHNwX2luaXQuaCAgICAgICAg ICAgICAgICB8IDE0ICsrKysrKysrKystLS0tCiBsaWJhdmNvZGVjL3g4Ni92cDlkc3BfaW5pdF8x NmJwcF90ZW1wbGF0ZS5jIHwgIDggKysrKy0tLS0KIGxpYmF2Y29kZWMveDg2L3ZwOW1jLmFzbSAg ICAgICAgICAgICAgICAgICAgfCAyMCArKysrKystLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFu Z2VkLCAyOSBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJh dmNvZGVjL3g4Ni92cDlkc3BfaW5pdC5jIGIvbGliYXZjb2RlYy94ODYvdnA5ZHNwX2luaXQuYwpp bmRleCBjMTAzNzUxMzUxLi4yNWEwMDcwMDhiIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4Ni92 cDlkc3BfaW5pdC5jCisrKyBiL2xpYmF2Y29kZWMveDg2L3ZwOWRzcF9pbml0LmMKQEAgLTQxLDcg KzQxLDYgQEAgZGVjbF9mcGVsX2Z1bmMocHV0LCA2NCwgICAsIGF2eCk7CiBkZWNsX2ZwZWxfZnVu YyhhdmcsIDMyLCBfOCwgYXZ4Mik7CiBkZWNsX2ZwZWxfZnVuYyhhdmcsIDY0LCBfOCwgYXZ4Mik7 CiAKLWRlY2xfbWNfZnVuY3MoNCwgbW14ZXh0LCBpbnQxNl90LCA4LCA4KTsKIGRlY2xfbWNfZnVu Y3MoOCwgc3NlMiwgaW50MTZfdCwgIDgsIDgpOwogZGVjbF9tY19mdW5jcyg0LCBzc3NlMywgaW50 OF90LCAzMiwgOCk7CiBkZWNsX21jX2Z1bmNzKDgsIHNzc2UzLCBpbnQ4X3QsIDMyLCA4KTsKQEAg LTcwLDEwICs2OSwxMSBAQCBtY19yZXBfZnVuY3MoNjQsIDMyLCAzMiwgYXZ4MiwgIGludDhfdCwg IDMyLCA4KQogZXh0ZXJuIGNvbnN0IGludDhfdCBmZl9maWx0ZXJzX3Nzc2UzWzNdWzE1XVs0XVsz Ml07CiBleHRlcm4gY29uc3QgaW50MTZfdCBmZl9maWx0ZXJzX3NzZTJbM11bMTVdWzhdWzhdOwog Ci1maWx0ZXJzXzh0YXBfMmRfZm4yKHB1dCwgMTYsIDgsIDEsIG1teGV4dCwgc3NlMiwgc3NlMikK LWZpbHRlcnNfOHRhcF8yZF9mbjIoYXZnLCAxNiwgOCwgMSwgbW14ZXh0LCBzc2UyLCBzc2UyKQot ZmlsdGVyc184dGFwXzJkX2ZuMihwdXQsIDE2LCA4LCAxLCBzc3NlMywgc3NzZTMsIHNzc2UzKQot ZmlsdGVyc184dGFwXzJkX2ZuMihhdmcsIDE2LCA4LCAxLCBzc3NlMywgc3NzZTMsIHNzc2UzKQor ZmlsdGVyc184dGFwXzJkX2ZuMihwdXQsIDE2LCA4LCAxLCBzc2UyLCBzc2UyKQorZmlsdGVyc184 dGFwXzJkX2ZuMihhdmcsIDE2LCA4LCAxLCBzc2UyLCBzc2UyKQorZmlsdGVyc184dGFwXzJkX2Zu MyhwdXQsIDE2LCA4LCAxLCBzc3NlMywgc3NzZTMpCitmaWx0ZXJzXzh0YXBfMmRfZm4zKGF2Zywg MTYsIDgsIDEsIHNzc2UzLCBzc3NlMykKKwogI2lmIEFSQ0hfWDg2XzY0ICYmIEhBVkVfQVZYMl9F WFRFUk5BTAogZmlsdGVyc184dGFwXzJkX2ZuKHB1dCwgNjQsIDMyLCA4LCAxLCBhdngyLCBzc3Nl MykKIGZpbHRlcnNfOHRhcF8yZF9mbihwdXQsIDMyLCAzMiwgOCwgMSwgYXZ4Miwgc3NzZTMpCkBA IC04MSwxMCArODEsMTAgQEAgZmlsdGVyc184dGFwXzJkX2ZuKGF2ZywgNjQsIDMyLCA4LCAxLCBh dngyLCBzc3NlMykKIGZpbHRlcnNfOHRhcF8yZF9mbihhdmcsIDMyLCAzMiwgOCwgMSwgYXZ4Miwg c3NzZTMpCiAjZW5kaWYKIAotZmlsdGVyc184dGFwXzFkX2ZuMyhwdXQsIDgsIG1teGV4dCwgc3Nl Miwgc3NlMikKLWZpbHRlcnNfOHRhcF8xZF9mbjMoYXZnLCA4LCBtbXhleHQsIHNzZTIsIHNzZTIp Ci1maWx0ZXJzXzh0YXBfMWRfZm4zKHB1dCwgOCwgc3NzZTMsIHNzc2UzLCBzc3NlMykKLWZpbHRl cnNfOHRhcF8xZF9mbjMoYXZnLCA4LCBzc3NlMywgc3NzZTMsIHNzc2UzKQorZmlsdGVyc184dGFw XzFkX2ZuMyhwdXQsIDgsIHNzZTIsIHNzZTIpCitmaWx0ZXJzXzh0YXBfMWRfZm4zKGF2ZywgOCwg c3NlMiwgc3NlMikKK2ZpbHRlcnNfOHRhcF8xZF9mbjQocHV0LCA4LCBzc3NlMywgc3NzZTMpCitm aWx0ZXJzXzh0YXBfMWRfZm40KGF2ZywgOCwgc3NzZTMsIHNzc2UzKQogI2lmIEFSQ0hfWDg2XzY0 ICYmIEhBVkVfQVZYMl9FWFRFUk5BTAogZmlsdGVyc184dGFwXzFkX2ZuMihwdXQsIDY0LCA4LCBh dngyLCBzc3NlMykKIGZpbHRlcnNfOHRhcF8xZF9mbjIocHV0LCAzMiwgOCwgYXZ4Miwgc3NzZTMp CkBAIC0yODUsOCArMjg1LDYgQEAgYXZfY29sZCB2b2lkIGZmX3ZwOWRzcF9pbml0X3g4NihWUDlE U1BDb250ZXh0ICpkc3AsIGludCBicHAsIGludCBiaXRleGFjdCkKICAgICAgICAgZHNwLT5sb29w X2ZpbHRlcl84WzBdWzFdID0gZmZfdnA5X2xvb3BfZmlsdGVyX3ZfNF84X21teGV4dDsKICAgICAg ICAgZHNwLT5sb29wX2ZpbHRlcl84WzFdWzBdID0gZmZfdnA5X2xvb3BfZmlsdGVyX2hfOF84X21t eGV4dDsKICAgICAgICAgZHNwLT5sb29wX2ZpbHRlcl84WzFdWzFdID0gZmZfdnA5X2xvb3BfZmls dGVyX3ZfOF84X21teGV4dDsKLSAgICAgICAgaW5pdF9zdWJwZWwyKDQsIDAsIDQsIHB1dCwgOCwg bW14ZXh0KTsKLSAgICAgICAgaW5pdF9zdWJwZWwyKDQsIDEsIDQsIGF2ZywgOCwgbW14ZXh0KTsK ICAgICAgICAgaW5pdF9mcGVsX2Z1bmMoNCwgMSwgIDQsIGF2ZywgXzgsIG1teGV4dCk7CiAgICAg ICAgIGluaXRfZnBlbF9mdW5jKDMsIDEsICA4LCBhdmcsIF84LCBtbXhleHQpOwogICAgICAgICBk c3AtPml0eGZtX2FkZFtUWF80WDRdW0RDVF9EQ1RdID0gZmZfdnA5X2lkY3RfaWRjdF80eDRfYWRk X21teGV4dDsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2L3ZwOWRzcF9pbml0LmggYi9saWJh dmNvZGVjL3g4Ni92cDlkc3BfaW5pdC5oCmluZGV4IDU2OTBkMTY5NzAuLjY0NzQ3MTczYzggMTAw NjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L3ZwOWRzcF9pbml0LmgKKysrIGIvbGliYXZjb2RlYy94 ODYvdnA5ZHNwX2luaXQuaApAQCAtMTA3LDEyICsxMDcsMTUgQEAgZmlsdGVyXzh0YXBfMWRfZm4o b3AsIHN6LCBGSUxURVJfOFRBUF9TTU9PVEgsICBmX29wdCwgc21vb3RoLCAgZGlyLCBkdmFyLCBi cHAsIG8KIGZpbHRlcnNfOHRhcF8xZF9mbihvcCwgc3osIGgsIG14LCBicHAsIG9wdCwgZl9vcHQp IFwKIGZpbHRlcnNfOHRhcF8xZF9mbihvcCwgc3osIHYsIG15LCBicHAsIG9wdCwgZl9vcHQpCiAK LSNkZWZpbmUgZmlsdGVyc184dGFwXzFkX2ZuMyhvcCwgYnBwLCBvcHQ0LCBvcHQ4LCBmX29wdCkg XAorI2RlZmluZSBmaWx0ZXJzXzh0YXBfMWRfZm4zKG9wLCBicHAsIG9wdDgsIGZfb3B0KSBcCiBm aWx0ZXJzXzh0YXBfMWRfZm4yKG9wLCA2NCwgYnBwLCBvcHQ4LCBmX29wdCkgXAogZmlsdGVyc184 dGFwXzFkX2ZuMihvcCwgMzIsIGJwcCwgb3B0OCwgZl9vcHQpIFwKIGZpbHRlcnNfOHRhcF8xZF9m bjIob3AsIDE2LCBicHAsIG9wdDgsIGZfb3B0KSBcCiBmaWx0ZXJzXzh0YXBfMWRfZm4yKG9wLCA4 LCBicHAsIG9wdDgsIGZfb3B0KSBcCi1maWx0ZXJzXzh0YXBfMWRfZm4yKG9wLCA0LCBicHAsIG9w dDQsIGZfb3B0KQorCisjZGVmaW5lIGZpbHRlcnNfOHRhcF8xZF9mbjQob3AsIGJwcCwgb3B0LCBm X29wdCkgXAorZmlsdGVyc184dGFwXzFkX2ZuMyhvcCwgYnBwLCBvcHQsIGZfb3B0KSBcCitmaWx0 ZXJzXzh0YXBfMWRfZm4yKG9wLCA0LCBicHAsIG9wdCwgZl9vcHQpIFwKIAogI2RlZmluZSBmaWx0 ZXJfOHRhcF8yZF9mbihvcCwgc3osIGYsIGZfb3B0LCBmbmFtZSwgYWxpZ24sIGJwcCwgYnl0ZXMs IG9wdCkgXAogc3RhdGljIHZvaWQgb3AjI184dGFwXyMjZm5hbWUjI18jI3N6IyNodl8jI2JwcCMj XyMjb3B0KHVpbnQ4X3QgKmRzdCwgcHRyZGlmZl90IGRzdF9zdHJpZGUsIFwKQEAgLTEzMywxMiAr MTM2LDE1IEBAIGZpbHRlcl84dGFwXzJkX2ZuKG9wLCBzeiwgRklMVEVSXzhUQVBfUkVHVUxBUiwg Zl9vcHQsIHJlZ3VsYXIsIGFsaWduLCBicHAsIGJ5dGVzCiBmaWx0ZXJfOHRhcF8yZF9mbihvcCwg c3osIEZJTFRFUl84VEFQX1NIQVJQLCAgIGZfb3B0LCBzaGFycCwgYWxpZ24sIGJwcCwgYnl0ZXMs IG9wdCkgXAogZmlsdGVyXzh0YXBfMmRfZm4ob3AsIHN6LCBGSUxURVJfOFRBUF9TTU9PVEgsICBm X29wdCwgc21vb3RoLCBhbGlnbiwgYnBwLCBieXRlcywgb3B0KQogCi0jZGVmaW5lIGZpbHRlcnNf OHRhcF8yZF9mbjIob3AsIGFsaWduLCBicHAsIGJ5dGVzLCBvcHQ0LCBvcHQ4LCBmX29wdCkgXAor I2RlZmluZSBmaWx0ZXJzXzh0YXBfMmRfZm4yKG9wLCBhbGlnbiwgYnBwLCBieXRlcywgb3B0OCwg Zl9vcHQpIFwKIGZpbHRlcnNfOHRhcF8yZF9mbihvcCwgNjQsIGFsaWduLCBicHAsIGJ5dGVzLCBv cHQ4LCBmX29wdCkgXAogZmlsdGVyc184dGFwXzJkX2ZuKG9wLCAzMiwgYWxpZ24sIGJwcCwgYnl0 ZXMsIG9wdDgsIGZfb3B0KSBcCiBmaWx0ZXJzXzh0YXBfMmRfZm4ob3AsIDE2LCBhbGlnbiwgYnBw LCBieXRlcywgb3B0OCwgZl9vcHQpIFwKIGZpbHRlcnNfOHRhcF8yZF9mbihvcCwgOCwgYWxpZ24s IGJwcCwgYnl0ZXMsIG9wdDgsIGZfb3B0KSBcCi1maWx0ZXJzXzh0YXBfMmRfZm4ob3AsIDQsIGFs aWduLCBicHAsIGJ5dGVzLCBvcHQ0LCBmX29wdCkKKworI2RlZmluZSBmaWx0ZXJzXzh0YXBfMmRf Zm4zKG9wLCBhbGlnbiwgYnBwLCBieXRlcywgb3B0LCBmX29wdCkgXAorZmlsdGVyc184dGFwXzJk X2ZuMihvcCwgYWxpZ24sIGJwcCwgYnl0ZXMsIG9wdCwgZl9vcHQpIFwKK2ZpbHRlcnNfOHRhcF8y ZF9mbihvcCwgNCwgYWxpZ24sIGJwcCwgYnl0ZXMsIG9wdCwgZl9vcHQpCiAKICNkZWZpbmUgaW5p dF9mcGVsX2Z1bmMoaWR4MSwgaWR4Miwgc3osIHR5cGUsIGJwcCwgb3B0KSBcCiAgICAgZHNwLT5t Y1tpZHgxXVtGSUxURVJfOFRBUF9TTU9PVEggXVtpZHgyXVswXVswXSA9IFwKZGlmZiAtLWdpdCBh L2xpYmF2Y29kZWMveDg2L3ZwOWRzcF9pbml0XzE2YnBwX3RlbXBsYXRlLmMgYi9saWJhdmNvZGVj L3g4Ni92cDlkc3BfaW5pdF8xNmJwcF90ZW1wbGF0ZS5jCmluZGV4IGE2YWEwM2JkYzguLjU0ZmY4 ODkyY2YgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L3ZwOWRzcF9pbml0XzE2YnBwX3RlbXBs YXRlLmMKKysrIGIvbGliYXZjb2RlYy94ODYvdnA5ZHNwX2luaXRfMTZicHBfdGVtcGxhdGUuYwpA QCAtNDAsOCArNDAsOCBAQCBtY19yZXBfZnVuY3MoMzIsIDE2LCAzMiwgYXZ4MiwgaW50MTZfdCwg MTYsIEJQQykKIG1jX3JlcF9mdW5jcyg2NCwgMzIsIDY0LCBhdngyLCBpbnQxNl90LCAxNiwgQlBD KQogI2VuZGlmCiAKLWZpbHRlcnNfOHRhcF8yZF9mbjIocHV0LCAxNiwgQlBDLCAyLCBzc2UyLCBz c2UyLCAxNmJwcCkKLWZpbHRlcnNfOHRhcF8yZF9mbjIoYXZnLCAxNiwgQlBDLCAyLCBzc2UyLCBz c2UyLCAxNmJwcCkKK2ZpbHRlcnNfOHRhcF8yZF9mbjMocHV0LCAxNiwgQlBDLCAyLCBzc2UyLCAx NmJwcCkKK2ZpbHRlcnNfOHRhcF8yZF9mbjMoYXZnLCAxNiwgQlBDLCAyLCBzc2UyLCAxNmJwcCkK ICNpZiBIQVZFX0FWWDJfRVhURVJOQUwKIGZpbHRlcnNfOHRhcF8yZF9mbihwdXQsIDY0LCAzMiwg QlBDLCAyLCBhdngyLCAxNmJwcCkKIGZpbHRlcnNfOHRhcF8yZF9mbihhdmcsIDY0LCAzMiwgQlBD LCAyLCBhdngyLCAxNmJwcCkKQEAgLTUxLDggKzUxLDggQEAgZmlsdGVyc184dGFwXzJkX2ZuKHB1 dCwgMTYsIDMyLCBCUEMsIDIsIGF2eDIsIDE2YnBwKQogZmlsdGVyc184dGFwXzJkX2ZuKGF2Zywg MTYsIDMyLCBCUEMsIDIsIGF2eDIsIDE2YnBwKQogI2VuZGlmCiAKLWZpbHRlcnNfOHRhcF8xZF9m bjMocHV0LCBCUEMsIHNzZTIsIHNzZTIsIDE2YnBwKQotZmlsdGVyc184dGFwXzFkX2ZuMyhhdmcs IEJQQywgc3NlMiwgc3NlMiwgMTZicHApCitmaWx0ZXJzXzh0YXBfMWRfZm40KHB1dCwgQlBDLCBz c2UyLCAxNmJwcCkKK2ZpbHRlcnNfOHRhcF8xZF9mbjQoYXZnLCBCUEMsIHNzZTIsIDE2YnBwKQog I2lmIEhBVkVfQVZYMl9FWFRFUk5BTAogZmlsdGVyc184dGFwXzFkX2ZuMihwdXQsIDY0LCBCUEMs IGF2eDIsIDE2YnBwKQogZmlsdGVyc184dGFwXzFkX2ZuMihhdmcsIDY0LCBCUEMsIGF2eDIsIDE2 YnBwKQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvdnA5bWMuYXNtIGIvbGliYXZjb2RlYy94 ODYvdnA5bWMuYXNtCmluZGV4IGI5YTYyZTc5YTguLjY4MmM2YTZlYTAgMTAwNjQ0Ci0tLSBhL2xp YmF2Y29kZWMveDg2L3ZwOW1jLmFzbQorKysgYi9saWJhdmNvZGVjL3g4Ni92cDltYy5hc20KQEAg LTIwNSw3ICsyMDUsNyBAQCBjZ2xvYmFsIHZwOV8lMV84dGFwXzFkX2hfICUrICUlcHggJSsgXzgs IDYsIDYsIDE1LCBkc3QsIGRzdHJpZGUsIHNyYywgc3N0cmlkZSwgaAogICAgIHB4b3IgICAgICAg IG01LCBtNQogICAgIG1vdmEgICAgICAgIG02LCBbcHdfNjRdCiAgICAgbW92YSAgICAgICAgbTcs IFtmaWx0ZXJ5cSsgIDBdCi0laWYgQVJDSF9YODZfNjQgJiYgbW1zaXplID4gOAorJWlmIEFSQ0hf WDg2XzY0CiAgICAgbW92YSAgICAgICAgbTgsIFtmaWx0ZXJ5cSsgMTZdCiAgICAgbW92YSAgICAg ICAgbTksIFtmaWx0ZXJ5cSsgMzJdCiAgICAgbW92YSAgICAgICBtMTAsIFtmaWx0ZXJ5cSsgNDhd CkBAIC0yMjYsNyArMjI2LDcgQEAgY2dsb2JhbCB2cDlfJTFfOHRhcF8xZF9oXyAlKyAlJXB4ICUr IF84LCA2LCA2LCAxNSwgZHN0LCBkc3RyaWRlLCBzcmMsIHNzdHJpZGUsIGgKICAgICBwdW5wY2ts YncgICBtMywgbTUKICAgICBwdW5wY2tsYncgICBtNCwgbTUKICAgICBwbXVsbHcgICAgICBtMCwg bTcKLSVpZiBBUkNIX1g4Nl82NCAmJiBtbXNpemUgPiA4CislaWYgQVJDSF9YODZfNjQKICAgICBw bXVsbHcgICAgICBtMSwgbTgKICAgICBwbXVsbHcgICAgICBtMiwgbTkKICAgICBwbXVsbHcgICAg ICBtMywgbTEwCkBAIC0yNDcsNyArMjQ3LDcgQEAgY2dsb2JhbCB2cDlfJTFfOHRhcF8xZF9oXyAl KyAlJXB4ICUrIF84LCA2LCA2LCAxNSwgZHN0LCBkc3RyaWRlLCBzcmMsIHNzdHJpZGUsIGgKICAg ICBwdW5wY2tsYncgICBtMSwgbTUKICAgICBwdW5wY2tsYncgICBtMywgbTUKICAgICBwdW5wY2ts YncgICBtNCwgbTUKLSVpZiBBUkNIX1g4Nl82NCAmJiBtbXNpemUgPiA4CislaWYgQVJDSF9YODZf NjQKICAgICBwbXVsbHcgICAgICBtMSwgbTEyCiAgICAgcG11bGx3ICAgICAgbTMsIG0xMwogICAg IHBtdWxsdyAgICAgIG00LCBtMTQKQEAgLTI3NiwxMCArMjc2LDYgQEAgY2dsb2JhbCB2cDlfJTFf OHRhcF8xZF9oXyAlKyAlJXB4ICUrIF84LCA2LCA2LCAxNSwgZHN0LCBkc3RyaWRlLCBzcmMsIHNz dHJpZGUsIGgKICAgICBSRVQKICVlbmRtYWNybwogCi1JTklUX01NWCBtbXhleHQKLWZpbHRlcl9z c2UyX2hfZm4gcHV0Ci1maWx0ZXJfc3NlMl9oX2ZuIGF2ZwotCiBJTklUX1hNTSBzc2UyCiBmaWx0 ZXJfc3NlMl9oX2ZuIHB1dAogZmlsdGVyX3NzZTJfaF9mbiBhdmcKQEAgLTQyMSw3ICs0MTcsNyBA QCBjZ2xvYmFsIHZwOV8lMV84dGFwXzFkX3ZfICUrICUlcHggJSsgXzgsIDQsIDcsIDE1LCBkc3Qs IGRzdHJpZGUsIHNyYywgc3N0cmlkZSwgZgogICAgIGxlYSAgICAgIHNyYzRxLCBbc3JjcStzc3Ry aWRlcV0KICAgICBzdWIgICAgICAgc3JjcSwgc3N0cmlkZTNxCiAgICAgbW92YSAgICAgICAgbTcs IFtmaWx0ZXJ5cSsgIDBdCi0laWYgQVJDSF9YODZfNjQgJiYgbW1zaXplID4gOAorJWlmZGVmIG04 CiAgICAgbW92YSAgICAgICAgbTgsIFtmaWx0ZXJ5cSsgMTZdCiAgICAgbW92YSAgICAgICAgbTks IFtmaWx0ZXJ5cSsgMzJdCiAgICAgbW92YSAgICAgICBtMTAsIFtmaWx0ZXJ5cSsgNDhdCkBAIC00 NDYsNyArNDQyLDcgQEAgY2dsb2JhbCB2cDlfJTFfOHRhcF8xZF92XyAlKyAlJXB4ICUrIF84LCA0 LCA3LCAxNSwgZHN0LCBkc3RyaWRlLCBzcmMsIHNzdHJpZGUsIGYKICAgICBwdW5wY2tsYncgICBt MywgbTUKICAgICBwdW5wY2tsYncgICBtNCwgbTUKICAgICBwbXVsbHcgICAgICBtMCwgbTcKLSVp ZiBBUkNIX1g4Nl82NCAmJiBtbXNpemUgPiA4CislaWZkZWYgbTgKICAgICBwbXVsbHcgICAgICBt MSwgbTgKICAgICBwbXVsbHcgICAgICBtMiwgbTkKICAgICBwbXVsbHcgICAgICBtMywgbTEwCkBA IC00NjcsNyArNDYzLDcgQEAgY2dsb2JhbCB2cDlfJTFfOHRhcF8xZF92XyAlKyAlJXB4ICUrIF84 LCA0LCA3LCAxNSwgZHN0LCBkc3RyaWRlLCBzcmMsIHNzdHJpZGUsIGYKICAgICBwdW5wY2tsYncg ICBtMSwgbTUKICAgICBwdW5wY2tsYncgICBtMywgbTUKICAgICBwdW5wY2tsYncgICBtNCwgbTUK LSVpZiBBUkNIX1g4Nl82NCAmJiBtbXNpemUgPiA4CislaWZkZWYgbTgKICAgICBwbXVsbHcgICAg ICBtMSwgbTEyCiAgICAgcG11bGx3ICAgICAgbTMsIG0xMwogICAgIHBtdWxsdyAgICAgIG00LCBt MTQKQEAgLTQ5NiwxMCArNDkyLDYgQEAgY2dsb2JhbCB2cDlfJTFfOHRhcF8xZF92XyAlKyAlJXB4 ICUrIF84LCA0LCA3LCAxNSwgZHN0LCBkc3RyaWRlLCBzcmMsIHNzdHJpZGUsIGYKICAgICBSRVQK ICVlbmRtYWNybwogCi1JTklUX01NWCBtbXhleHQKLWZpbHRlcl9zc2UyX3ZfZm4gcHV0Ci1maWx0 ZXJfc3NlMl92X2ZuIGF2ZwotCiBJTklUX1hNTSBzc2UyCiBmaWx0ZXJfc3NlMl92X2ZuIHB1dAog ZmlsdGVyX3NzZTJfdl9mbiBhdmcKLS0gCjIuNTIuMAoKCkZyb20gYTlmN2EyODNmZGY2MmZlM2Y0 ZDNkNGVjOTEzMGVhNzg4N2IzMzhkOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5k cmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFN1 biwgMzAgTm92IDIwMjUgMjA6MjY6NDQgKzAxMDAKU3ViamVjdDogW1BBVENIIDI1MS8zMDRdIGF2 Y29kZWMvdnA5aW50cmFwcmVkOiBSZW1vdmUgTU1YRVhUIGZ1bmN0aW9ucwogb3ZlcnJpZGRlbiBi eSBTU1NFMwoKU1NTRTMgaXMgYWxyZWFkeSBxdWl0ZSBvbGQgKGludHJvZHVjZWQgMjAwNiBmb3Ig SW50ZWwsIDIwMTEgZm9yIEFNRCksCnNvIHRoYXQgdGhlIG92ZXJ3aGVsbWluZyBtYWpvcml0eSBv ZiBvdXIgdXNlcnMgKHBhcnRpY3VsYXJseSB0aG9zZQp0aGF0IGFjdHVhbGx5IHVwZGF0ZSB0aGVp ciBGRm1wZWcpIHdpbGwgYmUgdXNpbmcgdGhlIFNTU0UzIHZlcnNpb25zLgpUaGlzIGNvbW1pdCB0 aGVyZWZvcmUgcmVtb3ZlcyB0aGUgTU1YRVhUIGZ1bmN0aW9ucyBvdmVycmlkZGVuCmJ5IHRoZW0g KHdoaWNoIGRvbid0IGFiaWRlIGJ5IHRoZSBBQkkpIHRvIGdldCBjbG9zZXIgdG8gYSByZW1vdmFs Cm9mIGVtbXNfYy4KClJldmlld2VkLWJ5OiBSb25hbGQgUy4gQnVsdGplIDxyc2J1bHRqZUBnbWFp bC5jb20+ClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhh cmR0QG91dGxvb2suY29tPgotLS0KIGxpYmF2Y29kZWMveDg2L3ZwOWRzcF9pbml0LmMgICAgfCAg MTIgKystLQogbGliYXZjb2RlYy94ODYvdnA5aW50cmFwcmVkLmFzbSB8IDEyMiArKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCsp LCAxMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy94ODYvdnA5ZHNwX2lu aXQuYyBiL2xpYmF2Y29kZWMveDg2L3ZwOWRzcF9pbml0LmMKaW5kZXggMjVhMDA3MDA4Yi4uODUz MzJkYTJiOSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvdnA5ZHNwX2luaXQuYworKysgYi9s aWJhdmNvZGVjL3g4Ni92cDlkc3BfaW5pdC5jCkBAIC0xNTQsNiArMTU0LDggQEAgbHBmX2Z1bmNz KDg4LCAxNiwgYXZ4KTsKIHZvaWQgZmZfdnA5X2lwcmVkXyMjdHlwZSMjXyMjc2l6ZSMjeCMjc2l6 ZSMjXyMjb3B0KHVpbnQ4X3QgKmRzdCwgcHRyZGlmZl90IHN0cmlkZSwgXAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqbCwg Y29uc3QgdWludDhfdCAqYSkKIAoraXByZWRfZnVuYyg0LCBoZCwgbW14ZXh0KTsKK2lwcmVkX2Z1 bmMoNCwgdmwsIG1teGV4dCk7CiBpcHJlZF9mdW5jKDgsIHYsIG1teCk7CiAKICNkZWZpbmUgaXBy ZWRfZGNfZnVuY3Moc2l6ZSwgb3B0KSBcCkBAIC0xNjEsOSArMTYzLDYgQEAgaXByZWRfZnVuYyhz aXplLCBkYywgb3B0KTsgXAogaXByZWRfZnVuYyhzaXplLCBkY19sZWZ0LCBvcHQpOyBcCiBpcHJl ZF9mdW5jKHNpemUsIGRjX3RvcCwgb3B0KQogCi1pcHJlZF9kY19mdW5jcyg0LCBtbXhleHQpOwot aXByZWRfZGNfZnVuY3MoOCwgbW14ZXh0KTsKLQogI2RlZmluZSBpcHJlZF9kaXJfdG1fZnVuY3Mo c2l6ZSwgb3B0KSBcCiBpcHJlZF9mdW5jKHNpemUsIHRtLCBvcHQpOyBcCiBpcHJlZF9mdW5jKHNp emUsIGRsLCBvcHQpOyBcCkBAIC0xNzMsOCArMTcyLDYgQEAgaXByZWRfZnVuYyhzaXplLCBodSwg b3B0KTsgXAogaXByZWRfZnVuYyhzaXplLCB2bCwgb3B0KTsgXAogaXByZWRfZnVuYyhzaXplLCB2 ciwgb3B0KQogCi1pcHJlZF9kaXJfdG1fZnVuY3MoNCwgbW14ZXh0KTsKLQogaXByZWRfZnVuYygx Niwgdiwgc3NlKTsKIGlwcmVkX2Z1bmMoMzIsIHYsIHNzZSk7CiAKQEAgLTI4OCw5ICsyODUsOCBA QCBhdl9jb2xkIHZvaWQgZmZfdnA5ZHNwX2luaXRfeDg2KFZQOURTUENvbnRleHQgKmRzcCwgaW50 IGJwcCwgaW50IGJpdGV4YWN0KQogICAgICAgICBpbml0X2ZwZWxfZnVuYyg0LCAxLCAgNCwgYXZn LCBfOCwgbW14ZXh0KTsKICAgICAgICAgaW5pdF9mcGVsX2Z1bmMoMywgMSwgIDgsIGF2ZywgXzgs IG1teGV4dCk7CiAgICAgICAgIGRzcC0+aXR4Zm1fYWRkW1RYXzRYNF1bRENUX0RDVF0gPSBmZl92 cDlfaWRjdF9pZGN0XzR4NF9hZGRfbW14ZXh0OwotICAgICAgICBpbml0X2RjX2lwcmVkKDQsIG1t eGV4dCk7Ci0gICAgICAgIGluaXRfZGNfaXByZWQoOCwgbW14ZXh0KTsKLSAgICAgICAgaW5pdF9k aXJfdG1faXByZWQoNCwgbW14ZXh0KTsKKyAgICAgICAgZHNwLT5pbnRyYV9wcmVkW1RYXzRYNF1b SE9SX0RPV05fUFJFRF0gPSBmZl92cDlfaXByZWRfaGRfNHg0X21teGV4dDsKKyAgICAgICAgZHNw LT5pbnRyYV9wcmVkW1RYXzRYNF1bVkVSVF9MRUZUX1BSRURdID0gZmZfdnA5X2lwcmVkX3ZsXzR4 NF9tbXhleHQ7CiAgICAgfQogCiAgICAgaWYgKEVYVEVSTkFMX1NTRShjcHVfZmxhZ3MpKSB7CmRp ZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni92cDlpbnRyYXByZWQuYXNtIGIvbGliYXZjb2RlYy94 ODYvdnA5aW50cmFwcmVkLmFzbQppbmRleCBiNjdhZGRkN2UzLi4yMjM5MGNhODMxIDEwMDY0NAot LS0gYS9saWJhdmNvZGVjL3g4Ni92cDlpbnRyYXByZWQuYXNtCisrKyBiL2xpYmF2Y29kZWMveDg2 L3ZwOWludHJhcHJlZC5hc20KQEAgLTkzLDIxICs5MywxNCBAQCBTRUNUSU9OIC50ZXh0CiAKIDsg ZGNfTnhOKHVpbnQ4X3QgKmRzdCwgcHRyZGlmZl90IHN0cmlkZSwgY29uc3QgdWludDhfdCAqbCwg Y29uc3QgdWludDhfdCAqYSkKIAotJW1hY3JvIERDXzR0bzhfRlVOQ1MgMAorSU5JVF9NTVggc3Nz ZTMKIGNnbG9iYWwgdnA5X2lwcmVkX2RjXzR4NCwgNCwgNCwgMCwgZHN0LCBzdHJpZGUsIGwsIGEK ICAgICBtb3ZkICAgICAgICAgICAgICAgICAgICBtMCwgW2xxXQogICAgIHB1bnBja2xkcSAgICAg ICAgICAgICAgIG0wLCBbYXFdCiAgICAgcHhvciAgICAgICAgICAgICAgICAgICAgbTEsIG0xCiAg ICAgcHNhZGJ3ICAgICAgICAgICAgICAgICAgbTAsIG0xCi0laWYgY3B1ZmxhZyhzc3NlMykKICAg ICBwbXVsaHJzdyAgICAgICAgICAgICAgICBtMCwgW3B3XzQwOTZdCiAgICAgcHNodWZiICAgICAg ICAgICAgICAgICAgbTAsIG0xCi0lZWxzZQotICAgIHBhZGR3ICAgICAgICAgICAgICAgICAgIG0w LCBbcHdfNF0KLSAgICBwc3JhdyAgICAgICAgICAgICAgICAgICBtMCwgMwotICAgIHB1bnBja2xi dyAgICAgICAgICAgICAgIG0wLCBtMAotICAgIHBzaHVmdyAgICAgICAgICAgICAgICAgIG0wLCBt MCwgcTAwMDAKLSVlbmRpZgogICAgIG1vdmQgICAgICBbZHN0cStzdHJpZGVxKjBdLCBtMAogICAg IG1vdmQgICAgICBbZHN0cStzdHJpZGVxKjFdLCBtMAogICAgIGxlYSAgICAgICAgICAgICAgICAg ICBkc3RxLCBbZHN0cStzdHJpZGVxKjJdCkBAIC0xMjQsMTUgKzExNyw4IEBAIGNnbG9iYWwgdnA5 X2lwcmVkX2RjXzh4OCwgNCwgNCwgMCwgZHN0LCBzdHJpZGUsIGwsIGEKICAgICBwc2FkYncgICAg ICAgICAgICAgICAgICBtMCwgbTIKICAgICBwc2FkYncgICAgICAgICAgICAgICAgICBtMSwgbTIK ICAgICBwYWRkdyAgICAgICAgICAgICAgICAgICBtMCwgbTEKLSVpZiBjcHVmbGFnKHNzc2UzKQog ICAgIHBtdWxocnN3ICAgICAgICAgICAgICAgIG0wLCBbcHdfMjA0OF0KICAgICBwc2h1ZmIgICAg ICAgICAgICAgICAgICBtMCwgbTIKLSVlbHNlCi0gICAgcGFkZHcgICAgICAgICAgICAgICAgICAg bTAsIFtwd184XQotICAgIHBzcmF3ICAgICAgICAgICAgICAgICAgIG0wLCA0Ci0gICAgcHVucGNr bGJ3ICAgICAgICAgICAgICAgbTAsIG0wCi0gICAgcHNodWZ3ICAgICAgICAgICAgICAgICAgbTAs IG0wLCBxMDAwMAotJWVuZGlmCiAgICAgbW92cSAgICAgIFtkc3RxK3N0cmlkZXEqMF0sIG0wCiAg ICAgbW92cSAgICAgIFtkc3RxK3N0cmlkZXEqMV0sIG0wCiAgICAgbW92cSAgICAgIFtkc3RxK3N0 cmlkZXEqMl0sIG0wCkBAIC0xNDMsMTIgKzEyOSw3IEBAIGNnbG9iYWwgdnA5X2lwcmVkX2RjXzh4 OCwgNCwgNCwgMCwgZHN0LCBzdHJpZGUsIGwsIGEKICAgICBtb3ZxICAgICAgW2RzdHErc3RyaWRl cSoyXSwgbTAKICAgICBtb3ZxICAgICAgW2RzdHErc3RyaWRlM3EgXSwgbTAKICAgICBSRVQKLSVl bmRtYWNybwogCi1JTklUX01NWCBtbXhleHQKLURDXzR0bzhfRlVOQ1MKLUlOSVRfTU1YIHNzc2Uz Ci1EQ180dG84X0ZVTkNTCiAKICVtYWNybyBEQ18xNnRvMzJfRlVOQ1MgMAogY2dsb2JhbCB2cDlf aXByZWRfZGNfMTZ4MTYsIDQsIDQsIDMsIGRzdCwgc3RyaWRlLCBsLCBhCkBAIC0yMzgsMTUgKzIx OSw4IEBAIGNnbG9iYWwgdnA5X2lwcmVkX2RjXyUxXzR4NCwgNCwgNCwgMCwgZHN0LCBzdHJpZGUs IGwsIGEKICAgICBtb3ZkICAgICAgICAgICAgICAgICAgICBtMCwgWyUycV0KICAgICBweG9yICAg ICAgICAgICAgICAgICAgICBtMSwgbTEKICAgICBwc2FkYncgICAgICAgICAgICAgICAgICBtMCwg bTEKLSVpZiBjcHVmbGFnKHNzc2UzKQogICAgIHBtdWxocnN3ICAgICAgICAgICAgICAgIG0wLCBb cHdfODE5Ml0KICAgICBwc2h1ZmIgICAgICAgICAgICAgICAgICBtMCwgbTEKLSVlbHNlCi0gICAg cGFkZHcgICAgICAgICAgICAgICAgICAgbTAsIFtwd18yXQotICAgIHBzcmF3ICAgICAgICAgICAg ICAgICAgIG0wLCAyCi0gICAgcHVucGNrbGJ3ICAgICAgICAgICAgICAgbTAsIG0wCi0gICAgcHNo dWZ3ICAgICAgICAgICAgICAgICAgbTAsIG0wLCBxMDAwMAotJWVuZGlmCiAgICAgbW92ZCAgICAg IFtkc3RxK3N0cmlkZXEqMF0sIG0wCiAgICAgbW92ZCAgICAgIFtkc3RxK3N0cmlkZXEqMV0sIG0w CiAgICAgbGVhICAgICAgICAgICAgICAgICAgIGRzdHEsIFtkc3RxK3N0cmlkZXEqMl0KQEAgLTI2 MCwxNSArMjM0LDggQEAgY2dsb2JhbCB2cDlfaXByZWRfZGNfJTFfOHg4LCA0LCA0LCAwLCBkc3Qs IHN0cmlkZSwgbCwgYQogICAgIGxlYSAgICAgICAgICAgICAgIHN0cmlkZTNxLCBbc3RyaWRlcSoz XQogICAgIHB4b3IgICAgICAgICAgICAgICAgICAgIG0xLCBtMQogICAgIHBzYWRidyAgICAgICAg ICAgICAgICAgIG0wLCBtMQotJWlmIGNwdWZsYWcoc3NzZTMpCiAgICAgcG11bGhyc3cgICAgICAg ICAgICAgICAgbTAsIFtwd180MDk2XQogICAgIHBzaHVmYiAgICAgICAgICAgICAgICAgIG0wLCBt MQotJWVsc2UKLSAgICBwYWRkdyAgICAgICAgICAgICAgICAgICBtMCwgW3B3XzRdCi0gICAgcHNy YXcgICAgICAgICAgICAgICAgICAgbTAsIDMKLSAgICBwdW5wY2tsYncgICAgICAgICAgICAgICBt MCwgbTAKLSAgICBwc2h1ZncgICAgICAgICAgICAgICAgICBtMCwgbTAsIHEwMDAwCi0lZW5kaWYK ICAgICBtb3ZxICAgICAgW2RzdHErc3RyaWRlcSowXSwgbTAKICAgICBtb3ZxICAgICAgW2RzdHEr c3RyaWRlcSoxXSwgbTAKICAgICBtb3ZxICAgICAgW2RzdHErc3RyaWRlcSoyXSwgbTAKQEAgLTI4 MSw5ICsyNDgsNiBAQCBjZ2xvYmFsIHZwOV9pcHJlZF9kY18lMV84eDgsIDQsIDQsIDAsIGRzdCwg c3RyaWRlLCBsLCBhCiAgICAgUkVUCiAlZW5kbWFjcm8KIAotSU5JVF9NTVggbW14ZXh0Ci1EQ18x RF80dG84X0ZVTkNTIHRvcCwgIGEKLURDXzFEXzR0bzhfRlVOQ1MgbGVmdCwgbAogSU5JVF9NTVgg c3NzZTMKIERDXzFEXzR0bzhfRlVOQ1MgdG9wLCAgYQogRENfMURfNHRvOF9GVU5DUyBsZWZ0LCBs CkBAIC01NDgsMzMgKzUxMiwyMiBAQCBIX1hNTV9GVU5DUyA0LCA4CiBJTklUX1hNTSBhdngKIEhf WE1NX0ZVTkNTIDQsIDgKIAotJW1hY3JvIFRNX01NWF9GVU5DUyAwCitJTklUX01NWCBzc3NlMwog Y2dsb2JhbCB2cDlfaXByZWRfdG1fNHg0LCA0LCA0LCAwLCBkc3QsIHN0cmlkZSwgbCwgYQogICAg IHB4b3IgICAgICAgICAgICAgICAgICAgIG0xLCBtMQogICAgIG1vdmQgICAgICAgICAgICAgICAg ICAgIG0wLCBbYXFdCiAgICAgcGluc3J3ICAgICAgICAgICAgICAgICAgbTIsIFthcS0xXSwgMAog ICAgIHB1bnBja2xidyAgICAgICAgICAgICAgIG0wLCBtMQogICAgIERFRklORV9BUkdTIGRzdCwg c3RyaWRlLCBsLCBjbnQKLSVpZiBjcHVmbGFnKHNzc2UzKQogICAgIG1vdmEgICAgICAgICAgICAg ICAgICAgIG0zLCBbcHdfbTI1Nl0KICAgICBtb3ZhICAgICAgICAgICAgICAgICAgICBtMSwgW3B3 X20yNTVdCiAgICAgcHNodWZiICAgICAgICAgICAgICAgICAgbTIsIG0zCi0lZWxzZQotICAgIHB1 bnBja2xidyAgICAgICAgICAgICAgIG0yLCBtMQotICAgIHBzaHVmdyAgICAgICAgICAgICAgICAg IG0yLCBtMiwgcTAwMDAKLSVlbmRpZgogICAgIHBzdWJ3ICAgICAgICAgICAgICAgICAgIG0wLCBt MgogICAgIG1vdiAgICAgICAgICAgICAgICAgICBjbnRxLCAxCiAubG9vcDoKICAgICBwaW5zcncg ICAgICAgICAgICAgICAgICBtMiwgW2xxK2NudHEqMl0sIDAKLSVpZiBjcHVmbGFnKHNzc2UzKQog ICAgIHBzaHVmYiAgICAgICAgICAgICAgICAgIG00LCBtMiwgbTEKICAgICBwc2h1ZmIgICAgICAg ICAgICAgICAgICBtMiwgbTMKLSVlbHNlCi0gICAgcHVucGNrbGJ3ICAgICAgICAgICAgICAgbTIs IG0xCi0gICAgcHNodWZ3ICAgICAgICAgICAgICAgICAgbTQsIG0yLCBxMTExMQotICAgIHBzaHVm dyAgICAgICAgICAgICAgICAgIG0yLCBtMiwgcTAwMDAKLSVlbmRpZgogICAgIHBhZGR3ICAgICAg ICAgICAgICAgICAgIG00LCBtMAogICAgIHBhZGR3ICAgICAgICAgICAgICAgICAgIG0yLCBtMAog ICAgIHBhY2t1c3diICAgICAgICAgICAgICAgIG00LCBtNApAQCAtNTg1LDEyICs1MzgsNiBAQCBj Z2xvYmFsIHZwOV9pcHJlZF90bV80eDQsIDQsIDQsIDAsIGRzdCwgc3RyaWRlLCBsLCBhCiAgICAg ZGVjICAgICAgICAgICAgICAgICAgIGNudHEKICAgICBqZ2UgLmxvb3AKICAgICBSRVQKLSVlbmRt YWNybwotCi1JTklUX01NWCBtbXhleHQKLVRNX01NWF9GVU5DUwotSU5JVF9NTVggc3NzZTMKLVRN X01NWF9GVU5DUwogCiAlbWFjcm8gVE1fWE1NX0ZVTkNTIDAKIGNnbG9iYWwgdnA5X2lwcmVkX3Rt Xzh4OCwgNCwgNCwgNSwgZHN0LCBzdHJpZGUsIGwsIGEKQEAgLTc4NCwyMCArNzMxLDExIEBAIFRN X1hNTV9GVU5DUwogICAgIHBhdmdiICAgICAgICAgICAgICAgICAgbSUxLCBtJTIKICVlbmRtYWNy bwogCi0lbWFjcm8gRExfTU1YX0ZVTkNTIDAKK0lOSVRfTU1YIHNzc2UzCiBjZ2xvYmFsIHZwOV9p cHJlZF9kbF80eDQsIDQsIDQsIDAsIGRzdCwgc3RyaWRlLCBsLCBhCiAgICAgbW92cSAgICAgICAg ICAgICAgICAgICAgbTEsIFthcV0KLSVpZiBjcHVmbGFnKHNzc2UzKQogICAgIHBzaHVmYiAgICAg ICAgICAgICAgICAgIG0wLCBtMSwgW3BiXzB0bzVfMng3XQogICAgIHBzaHVmYiAgICAgICAgICAg ICAgICAgIG0yLCBtMSwgW3BiXzJ0bzZfM3g3XQotJWVsc2UKLSAgICBwdW5wY2toYncgICAgICAg ICAgICAgICBtMywgbTEsIG0xICAgICAgICAgICAgICA7IDQ0NTU2Njc3Ci0gICAgcGFuZCAgICAg ICAgICAgICAgICAgICAgbTAsIG0xLCBbcGJfNnhtMV8yeDBdICAgOyAwMTIzNDVfXwotICAgIHBh bmQgICAgICAgICAgICAgICAgICAgIG0zLCBbcGJfNngwXzJ4bTFdICAgICAgIDsgX19fX19fNzcK LSAgICBwc3JscSAgICAgICAgICAgICAgICAgICBtMiwgbTEsIDE2ICAgICAgICAgICAgICA7IDIz NDU2N19fCi0gICAgcG9yICAgICAgICAgICAgICAgICAgICAgbTAsIG0zICAgICAgICAgICAgICAg ICAgOyAwMTIzNDU3NwotICAgIHBvciAgICAgICAgICAgICAgICAgICAgIG0yLCBtMyAgICAgICAg ICAgICAgICAgIDsgMjM0NTY3NzcKLSVlbmRpZgogICAgIHBzcmxxICAgICAgICAgICAgICAgICAg IG0xLCA4CiAgICAgTE9XUEFTUyAgICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMKIApAQCAtODEw LDEyICs3NDgsNiBAQCBjZ2xvYmFsIHZwOV9pcHJlZF9kbF80eDQsIDQsIDQsIDAsIGRzdCwgc3Ry aWRlLCBsLCBhCiAgICAgbW92ZCAgICAgIFtkc3RxK3N0cmlkZXEqMF0sIG0wCiAgICAgbW92ZCAg ICAgIFtkc3RxK3N0cmlkZXEqMl0sIG0xCiAgICAgUkVUCi0lZW5kbWFjcm8KLQotSU5JVF9NTVgg bW14ZXh0Ci1ETF9NTVhfRlVOQ1MKLUlOSVRfTU1YIHNzc2UzCi1ETF9NTVhfRlVOQ1MKIAogJW1h Y3JvIERMX1hNTV9GVU5DUyAwCiBjZ2xvYmFsIHZwOV9pcHJlZF9kbF84eDgsIDQsIDQsIDQsIGRz dCwgc3RyaWRlLCBzdHJpZGU1LCBhCkBAIC05NjQsMTQgKzg5NiwxNCBAQCBETF9YTU1fRlVOQ1MK IAogOyBkcgogCi0lbWFjcm8gRFJfTU1YX0ZVTkNTIDAKK0lOSVRfTU1YIHNzc2UzCiBjZ2xvYmFs IHZwOV9pcHJlZF9kcl80eDQsIDQsIDQsIDAsIGRzdCwgc3RyaWRlLCBsLCBhCiAgICAgbW92ZCAg ICAgICAgICAgICAgICAgICAgbTAsIFtscV0KICAgICBwdW5wY2tsZHEgICAgICAgICAgICAgICBt MCwgW2FxLTFdCiAgICAgbW92ZCAgICAgICAgICAgICAgICAgICAgbTEsIFthcSszXQogICAgIERF RklORV9BUkdTIGRzdCwgc3RyaWRlLCBzdHJpZGUzCiAgICAgbGVhICAgICAgICAgICAgICAgc3Ry aWRlM3EsIFtzdHJpZGVxKjNdCi0gICAgUEFMSUdOUiAgICAgICAgICAgICAgICAgbTEsIG0wLCAx LCBtMworICAgIHBhbGlnbnIgICAgICAgICAgICAgICAgIG0xLCBtMCwgMQogICAgIHBzcmxxICAg ICAgICAgICAgICAgICAgIG0yLCBtMSwgOAogICAgIExPV1BBU1MgICAgICAgICAgICAgICAgICAw LCAxLCAyLCAzCiAKQEAgLTk4MywxMiArOTE1LDYgQEAgY2dsb2JhbCB2cDlfaXByZWRfZHJfNHg0 LCA0LCA0LCAwLCBkc3QsIHN0cmlkZSwgbCwgYQogICAgIHBzcmxxICAgICAgICAgICAgICAgICAg IG0wLCA4CiAgICAgbW92ZCAgICAgIFtkc3RxK3N0cmlkZXEqMF0sIG0wCiAgICAgUkVUCi0lZW5k bWFjcm8KLQotSU5JVF9NTVggbW14ZXh0Ci1EUl9NTVhfRlVOQ1MKLUlOSVRfTU1YIHNzc2UzCi1E Ul9NTVhfRlVOQ1MKIAogJW1hY3JvIERSX1hNTV9GVU5DUyAwCiBjZ2xvYmFsIHZwOV9pcHJlZF9k cl84eDgsIDQsIDQsIDQsIGRzdCwgc3RyaWRlLCBsLCBhCkBAIC0xMjY2LDcgKzExOTIsNyBAQCBW TF9YTU1fRlVOQ1MKIAogOyB2cgogCi0lbWFjcm8gVlJfTU1YX0ZVTkNTIDAKK0lOSVRfTU1YIHNz c2UzCiBjZ2xvYmFsIHZwOV9pcHJlZF92cl80eDQsIDQsIDQsIDAsIGRzdCwgc3RyaWRlLCBsLCBh CiAgICAgbW92cSAgICAgICAgICAgICAgICAgICAgbTEsIFthcS0xXQogICAgIHB1bnBja2xkcSAg ICAgICAgICAgICAgIG0yLCBbbHFdCkBAIC0xMjc0LDcgKzEyMDAsNyBAQCBjZ2xvYmFsIHZwOV9p cHJlZF92cl80eDQsIDQsIDQsIDAsIGRzdCwgc3RyaWRlLCBsLCBhCiAgICAgREVGSU5FX0FSR1Mg ZHN0LCBzdHJpZGUsIHN0cmlkZTMKICAgICBsZWEgICAgICAgICAgICAgICBzdHJpZGUzcSwgW3N0 cmlkZXEqM10KICAgICBwYXZnYiAgICAgICAgICAgICAgICAgICBtMCwgbTEKLSAgICBQQUxJR05S ICAgICAgICAgICAgICAgICBtMSwgbTIsIDUsIG0zCisgICAgcGFsaWduciAgICAgICAgICAgICAg ICAgbTEsIG0yLCA1CiAgICAgcHNybHEgICAgICAgICAgICAgICAgICAgbTIsIG0xLCA4CiAgICAg cHNsbHEgICAgICAgICAgICAgICAgICAgbTMsIG0xLCA4CiAgICAgTE9XUEFTUyAgICAgICAgICAg ICAgICAgIDIsICAxLCAzLCA0CkBAIC0xMjg0LDcgKzEyMTAsNiBAQCBjZ2xvYmFsIHZwOV9pcHJl ZF92cl80eDQsIDQsIDQsIDAsIGRzdCwgc3RyaWRlLCBsLCBhCiAgICAgOyBJQUJDICB8IG0wIGNv bnRhaW5zIEFCQ0R4eHh4CiAgICAgOyBKRUZHICB8IG0yIGNvbnRhaW5zIHhKSUVGR0h4CiAKLSVp ZiBjcHVmbGFnKHNzc2UzKQogICAgIHB1bnBja2xkcSAgICAgICAgICAgICAgIG0wLCBtMgogICAg IHBzaHVmYiAgICAgICAgICAgICAgICAgIG0yLCBbcGJfMTM0NTZfM3htMV0KICAgICBtb3ZkICAg ICAgW2RzdHErc3RyaWRlcSowXSwgbTAKQEAgLTEyOTMsMjQgKzEyMTgsNyBAQCBjZ2xvYmFsIHZw OV9pcHJlZF92cl80eDQsIDQsIDQsIDAsIGRzdCwgc3RyaWRlLCBsLCBhCiAgICAgcHNybHEgICAg ICAgICAgICAgICAgICAgbTIsIDgKICAgICBtb3ZkICAgICAgW2RzdHErc3RyaWRlcSoyXSwgbTAK ICAgICBtb3ZkICAgICAgW2RzdHErc3RyaWRlcSoxXSwgbTIKLSVlbHNlCi0gICAgcHNsbHEgICAg ICAgICAgICAgICAgICAgbTEsIG0yLCA0MAotICAgIHBzcmxxICAgICAgICAgICAgICAgICAgIG0y LCAyNAotICAgIG1vdmQgICAgICBbZHN0cStzdHJpZGVxKjBdLCBtMAotICAgIG1vdmQgICAgICBb ZHN0cStzdHJpZGVxKjFdLCBtMgotICAgIFBBTElHTlIgICAgICAgICAgICAgICAgIG0wLCBtMSwg NywgbTMKLSAgICBwc2xscSAgICAgICAgICAgICAgICAgICBtMSwgOAotICAgIFBBTElHTlIgICAg ICAgICAgICAgICAgIG0yLCBtMSwgNywgbTMKLSAgICBtb3ZkICAgICAgW2RzdHErc3RyaWRlcSoy XSwgbTAKLSAgICBtb3ZkICAgICAgW2RzdHErc3RyaWRlM3EgXSwgbTIKLSVlbmRpZgogICAgIFJF VAotJWVuZG1hY3JvCi0KLUlOSVRfTU1YIG1teGV4dAotVlJfTU1YX0ZVTkNTCi1JTklUX01NWCBz c3NlMwotVlJfTU1YX0ZVTkNTCiAKICVtYWNybyBWUl9YTU1fRlVOQ1MgMSA7IG5feG1tX3JlZ3Mg Zm9yIDE2eDE2CiBjZ2xvYmFsIHZwOV9pcHJlZF92cl84eDgsIDQsIDQsIDUsIGRzdCwgc3RyaWRl LCBsLCBhCkBAIC0xNjg4LDE2ICsxNTk2LDEwIEBAIEhEX1hNTV9GVU5DUwogSU5JVF9YTU0gYXZ4 CiBIRF9YTU1fRlVOQ1MKIAotJW1hY3JvIEhVX01NWF9GVU5DUyAwCitJTklUX01NWCBzc3NlMwog Y2dsb2JhbCB2cDlfaXByZWRfaHVfNHg0LCAzLCAzLCAwLCBkc3QsIHN0cmlkZSwgbAogICAgIG1v dmQgICAgICAgICAgICAgICAgICAgIG0wLCBbbHFdCi0laWYgY3B1ZmxhZyhzc3NlMykKICAgICBw c2h1ZmIgICAgICAgICAgICAgICAgICBtMCwgW3BiXzB0bzJfNXgzXQotJWVsc2UKLSAgICBwdW5w Y2tsYncgICAgICAgICAgICAgICBtMSwgbTAsIG0wICAgICAgICAgIDsgMDAxMTIyMzMKLSAgICBw c2h1ZncgICAgICAgICAgICAgICAgICBtMSwgbTEsIHEzMzMzICAgICAgIDsgMzMzMzMzMzMKLSAg ICBwdW5wY2tsZHEgICAgICAgICAgICAgICBtMCwgbTEgICAgICAgICAgICAgIDsgMDEyMzMzMzMK LSVlbmRpZgogICAgIHBzcmxxICAgICAgICAgICAgICAgICAgIG0xLCBtMCwgOAogICAgIHBzcmxx ICAgICAgICAgICAgICAgICAgIG0yLCBtMSwgOAogICAgIExPV1BBU1MgICAgICAgICAgICAgICAg ICAyLCAgMSwgMCwgMwpAQCAtMTcwNSw3ICsxNjA3LDcgQEAgY2dsb2JhbCB2cDlfaXByZWRfaHVf NHg0LCAzLCAzLCAwLCBkc3QsIHN0cmlkZSwgbAogICAgIERFRklORV9BUkdTIGRzdCwgc3RyaWRl LCBzdHJpZGUzCiAgICAgbGVhICAgICAgICAgICAgICAgc3RyaWRlM3EsIFtzdHJpZGVxKjNdCiAg ICAgU0JVVFRFUkZMWSAgICAgICAgICAgICAgYncsICAxLCAyLCAwCi0gICAgUEFMSUdOUiAgICAg ICAgICAgICAgICAgbTIsIG0xLCAyLCBtMAorICAgIHBhbGlnbnIgICAgICAgICAgICAgICAgIG0y LCBtMSwgMgogICAgIG1vdmQgICAgICBbZHN0cStzdHJpZGVxKjBdLCBtMQogICAgIG1vdmQgICAg ICBbZHN0cStzdHJpZGVxKjFdLCBtMgogICAgIHB1bnBja2hkcSAgICAgICAgICAgICAgIG0xLCBt MQpAQCAtMTcxMywxMiArMTYxNSw2IEBAIGNnbG9iYWwgdnA5X2lwcmVkX2h1XzR4NCwgMywgMywg MCwgZHN0LCBzdHJpZGUsIGwKICAgICBtb3ZkICAgICAgW2RzdHErc3RyaWRlcSoyXSwgbTEKICAg ICBtb3ZkICAgICAgW2RzdHErc3RyaWRlM3EgXSwgbTIKICAgICBSRVQKLSVlbmRtYWNybwotCi1J TklUX01NWCBtbXhleHQKLUhVX01NWF9GVU5DUwotSU5JVF9NTVggc3NzZTMKLUhVX01NWF9GVU5D UwogCiAlbWFjcm8gSFVfWE1NX0ZVTkNTIDEgOyBuX3htbV9yZWdzIGluIGh1XzMyeDMyCiBjZ2xv YmFsIHZwOV9pcHJlZF9odV84eDgsIDMsIDQsIDQsIGRzdCwgc3RyaWRlLCBsCi0tIAoyLjUyLjAK CgpGcm9tIGQ3ZWY4NzAxODcwOTIwM2RhYzhhM2ExN2UyZThiMTFmNGEwNWE5NDggTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhh cmR0QG91dGxvb2suY29tPgpEYXRlOiBTdW4sIDMwIE5vdiAyMDI1IDIwOjQ5OjUxICswMTAwClN1 YmplY3Q6IFtQQVRDSCAyNTIvMzA0XSBhdmNvZGVjL3ZwOWl0eGZteyxfMTZicHB9OiBSZW1vdmUg TU1YRVhUIGZ1bmN0aW9ucwogb3ZlcnJpZGRlbiBieSBTU1NFMwoKU1NTRTMgaXMgYWxyZWFkeSBx dWl0ZSBvbGQgKGludHJvZHVjZWQgMjAwNiBmb3IgSW50ZWwsIDIwMTEgZm9yIEFNRCksCnNvIHRo YXQgdGhlIG92ZXJ3aGVsbWluZyBtYWpvcml0eSBvZiBvdXIgdXNlcnMgKHBhcnRpY3VsYXJseSB0 aG9zZQp0aGF0IGFjdHVhbGx5IHVwZGF0ZSB0aGVpciBGRm1wZWcpIHdpbGwgYmUgdXNpbmcgdGhl IFNTU0UzIHZlcnNpb25zLgpUaGlzIGNvbW1pdCB0aGVyZWZvcmUgcmVtb3ZlcyB0aGUgTU1YRVhU IGZ1bmN0aW9ucyBvdmVycmlkZGVuCmJ5IHRoZW0gKHdoaWNoIGRvbid0IGFiaWRlIGJ5IHRoZSBB QkkpIHRvIGdldCBjbG9zZXIgdG8gYSByZW1vdmFsCm9mIGVtbXNfYy4KClJldmlld2VkLWJ5OiBS b25hbGQgUy4gQnVsdGplIDxyc2J1bHRqZUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFuZHJl YXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIGxpYmF2 Y29kZWMveDg2L3ZwOWRzcF9pbml0LmMgICAgICAgICAgICAgICAgfCAgMiAtLQogbGliYXZjb2Rl Yy94ODYvdnA5ZHNwX2luaXRfMTZicHBfdGVtcGxhdGUuYyB8ICA0IC0tLQogbGliYXZjb2RlYy94 ODYvdnA5aXR4Zm0uYXNtICAgICAgICAgICAgICAgICB8IDMwICstLS0tLS0tLS0tLS0tLS0tLS0t LQogbGliYXZjb2RlYy94ODYvdnA5aXR4Zm1fMTZicHAuYXNtICAgICAgICAgICB8IDE4ICstLS0t LS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCA1MiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3g4Ni92cDlkc3BfaW5pdC5jIGIvbGliYXZjb2Rl Yy94ODYvdnA5ZHNwX2luaXQuYwppbmRleCA4NTMzMmRhMmI5Li5lNDc5ZmQyNWVlIDEwMDY0NAot LS0gYS9saWJhdmNvZGVjL3g4Ni92cDlkc3BfaW5pdC5jCisrKyBiL2xpYmF2Y29kZWMveDg2L3Zw OWRzcF9pbml0LmMKQEAgLTEwMSw3ICsxMDEsNiBAQCBpdHhmbV9mdW5jKGlhZHN0LCBpZGN0LCAg c2l6ZSwgb3B0KTsgXAogaXR4Zm1fZnVuYyhpZGN0LCAgaWFkc3QsIHNpemUsIG9wdCk7IFwKIGl0 eGZtX2Z1bmMoaWFkc3QsIGlhZHN0LCBzaXplLCBvcHQpCiAKLWl0eGZtX2Z1bmMoaWRjdCwgIGlk Y3QsICA0LCBtbXhleHQpOwogaXR4Zm1fZnVuYyhpZGN0LCAgaWFkc3QsIDQsIHNzZTIpOwogaXR4 Zm1fZnVuYyhpYWRzdCwgaWRjdCwgIDQsIHNzZTIpOwogaXR4Zm1fZnVuYyhpYWRzdCwgaWFkc3Qs IDQsIHNzZTIpOwpAQCAtMjg0LDcgKzI4Myw2IEBAIGF2X2NvbGQgdm9pZCBmZl92cDlkc3BfaW5p dF94ODYoVlA5RFNQQ29udGV4dCAqZHNwLCBpbnQgYnBwLCBpbnQgYml0ZXhhY3QpCiAgICAgICAg IGRzcC0+bG9vcF9maWx0ZXJfOFsxXVsxXSA9IGZmX3ZwOV9sb29wX2ZpbHRlcl92XzhfOF9tbXhl eHQ7CiAgICAgICAgIGluaXRfZnBlbF9mdW5jKDQsIDEsICA0LCBhdmcsIF84LCBtbXhleHQpOwog ICAgICAgICBpbml0X2ZwZWxfZnVuYygzLCAxLCAgOCwgYXZnLCBfOCwgbW14ZXh0KTsKLSAgICAg ICAgZHNwLT5pdHhmbV9hZGRbVFhfNFg0XVtEQ1RfRENUXSA9IGZmX3ZwOV9pZGN0X2lkY3RfNHg0 X2FkZF9tbXhleHQ7CiAgICAgICAgIGRzcC0+aW50cmFfcHJlZFtUWF80WDRdW0hPUl9ET1dOX1BS RURdID0gZmZfdnA5X2lwcmVkX2hkXzR4NF9tbXhleHQ7CiAgICAgICAgIGRzcC0+aW50cmFfcHJl ZFtUWF80WDRdW1ZFUlRfTEVGVF9QUkVEXSA9IGZmX3ZwOV9pcHJlZF92bF80eDRfbW14ZXh0Owog ICAgIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2L3ZwOWRzcF9pbml0XzE2YnBwX3RlbXBs YXRlLmMgYi9saWJhdmNvZGVjL3g4Ni92cDlkc3BfaW5pdF8xNmJwcF90ZW1wbGF0ZS5jCmluZGV4 IDU0ZmY4ODkyY2YuLjk2OWRiOTRkM2MgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L3ZwOWRz cF9pbml0XzE2YnBwX3RlbXBsYXRlLmMKKysrIGIvbGliYXZjb2RlYy94ODYvdnA5ZHNwX2luaXRf MTZicHBfdGVtcGxhdGUuYwpAQCAtMTIzLDcgKzEyMyw2IEBAIGRlY2xfaXByZWRfZm5zKHRtLCBC UEMsIG1teGV4dCwgc3NlMik7CiAKIGRlY2xfaXR4Zm1fZnVuYyhpd2h0LCBpd2h0LCA0LCBCUEMs IG1teGV4dCk7CiAjaWYgQlBDID09IDEwCi1kZWNsX2l0eGZtX2Z1bmMoaWRjdCwgIGlkY3QsICA0 LCBCUEMsIG1teGV4dCk7CiBkZWNsX2l0eGZtX2Z1bmNzKDQsIEJQQywgc3NzZTMpOwogZGVjbF9p dHhmbV9mdW5jcygxNiwgQlBDLCBhdng1MTJpY2wpOwogZGVjbF9pdHhmbV9mdW5jKGlkY3QsICBp ZGN0LCAzMiwgQlBDLCBhdng1MTJpY2wpOwpAQCAtMTg0LDkgKzE4Myw2IEBAIGF2X2NvbGQgdm9p ZCBJTklUX0ZVTkMoVlA5RFNQQ29udGV4dCAqZHNwLCBpbnQgYml0ZXhhY3QpCiAgICAgICAgIGlu aXRfaXByZWRfZnVuYyh0bSwgVE1fVlA4LCA0LCBCUEMsIG1teGV4dCk7CiAgICAgICAgIGlmICgh Yml0ZXhhY3QpIHsKICAgICAgICAgICAgIGluaXRfaXR4X2Z1bmNfb25lKDQgLyogbG9zc2xlc3Mg Ki8sIGl3aHQsIGl3aHQsIDQsIEJQQywgbW14ZXh0KTsKLSNpZiBCUEMgPT0gMTAKLSAgICAgICAg ICAgIGluaXRfaXR4X2Z1bmMoVFhfNFg0LCBEQ1RfRENULCBpZGN0LCBpZGN0LCA0LCAxMCwgbW14 ZXh0KTsKLSNlbmRpZgogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9saWJhdmNvZGVj L3g4Ni92cDlpdHhmbS5hc20gYi9saWJhdmNvZGVjL3g4Ni92cDlpdHhmbS5hc20KaW5kZXggZmU2 NTBkNTE5Yy4uYmQ1OTY2NjQ2YyAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy94ODYvdnA5aXR4Zm0u YXNtCisrKyBiL2xpYmF2Y29kZWMveDg2L3ZwOWl0eGZtLmFzbQpAQCAtMjIzLDQ5ICsyMjMsMjgg QEAgY2dsb2JhbCB2cDlfaXdodF9pd2h0XzR4NF9hZGQsIDMsIDMsIDAsIGRzdCwgc3RyaWRlLCBi bG9jaywgZW9iCiAgICAgVlA5X1NUT1JFXzJYICAgICAgICAgMiwgIDMsICA2LCAgNywgIDQKICVl bmRtYWNybwogCi0lbWFjcm8gSURDVF80eDRfRk4gMQotSU5JVF9NTVggJTEKK0lOSVRfTU1YIHNz c2UzCiBjZ2xvYmFsIHZwOV9pZGN0X2lkY3RfNHg0X2FkZCwgNCwgNCwgMCwgZHN0LCBzdHJpZGUs IGJsb2NrLCBlb2IKIAotJWlmIGNwdWZsYWcoc3NzZTMpCiAgICAgY21wIGVvYmQsIDQgOyAyeDIg b3Igc21hbGxlcgogICAgIGpnIC5pZGN0ZnVsbAogCiAgICAgY21wIGVvYmQsIDEgOyBmYXN0ZXIg cGF0aCBmb3Igd2hlbiBvbmx5IERDIGlzIHNldAogICAgIGpuZSAuaWRjdDJ4MgotJWVsc2UKLSAg ICBjbXAgZW9iZCwgMQotICAgIGpnIC5pZGN0ZnVsbAotJWVuZGlmCiAKLSVpZiBjcHVmbGFnKHNz c2UzKQogICAgIG1vdmQgICAgICAgICAgICAgICAgbTAsIFtibG9ja3FdCiAgICAgbW92YSAgICAg ICAgICAgICAgICBtNSwgW3B3XzExNTg1eDJdCiAgICAgcG11bGhyc3cgICAgICAgICAgICBtMCwg bTUKICAgICBwbXVsaHJzdyAgICAgICAgICAgIG0wLCBtNQotJWVsc2UKLSAgICBERUZJTkVfQVJH UyBkc3QsIHN0cmlkZSwgYmxvY2ssIGNvZWYKLSAgICBtb3ZzeCAgICAgICAgICAgIGNvZWZkLCB3 b3JkIFtibG9ja3FdCi0gICAgaW11bCAgICAgICAgICAgICBjb2VmZCwgMTE1ODUKLSAgICBhZGQg ICAgICAgICAgICAgIGNvZWZkLCA4MTkyCi0gICAgc2FyICAgICAgICAgICAgICBjb2VmZCwgMTQK LSAgICBpbXVsICAgICAgICAgICAgIGNvZWZkLCAxMTU4NQotICAgIGFkZCAgICAgICAgICAgICAg Y29lZmQsICg4IDw8IDE0KSArIDgxOTIKLSAgICBzYXIgICAgICAgICAgICAgIGNvZWZkLCAxNCAr IDQKLSAgICBtb3ZkICAgICAgICAgICAgICAgIG0wLCBjb2VmZAotJWVuZGlmCiAgICAgcHNodWZ3 ICAgICAgICAgICAgICBtMCwgbTAsIDAKICAgICBweG9yICAgICAgICAgICAgICAgIG00LCBtNAog ICAgIG1vdmggICAgICAgICAgW2Jsb2NrcV0sIG00Ci0laWYgY3B1ZmxhZyhzc3NlMykKICAgICBw bXVsaHJzdyAgICAgICAgICAgIG0wLCBbcHdfMjA0OF0gICAgICAgOyAoeCoyMDQ4ICsgKDE8PDE0 KSk+PjE1IDw9PiAoeCs4KT4+NAotJWVuZGlmCiAgICAgVlA5X1NUT1JFXzJYICAgICAgICAgMCwg IDAsICA2LCAgNywgIDQKICAgICBsZWEgICAgICAgICAgICAgICBkc3RxLCBbZHN0cSsyKnN0cmlk ZXFdCiAgICAgVlA5X1NUT1JFXzJYICAgICAgICAgMCwgIDAsICA2LCAgNywgIDQKICAgICBSRVQK IAotJWlmIGNwdWZsYWcoc3NzZTMpCiA7IGZhc3RlciBwYXRoIGZvciB3aGVuIG9ubHkgdG9wIGxl ZnQgMngyIGJsb2NrIGlzIHNldAogLmlkY3QyeDI6CiAgICAgbW92ZCAgICAgICAgICAgICAgICBt MCwgW2Jsb2NrcSswXQpAQCAtMjg1LDE2ICsyNjQsMTMgQEAgY2dsb2JhbCB2cDlfaWRjdF9pZGN0 XzR4NF9hZGQsIDQsIDQsIDAsIGRzdCwgc3RyaWRlLCBibG9jaywgZW9iCiAgICAgbW92aCAgICAg ICBbYmxvY2txKyA4XSwgbTQKICAgICBWUDlfSURDVDRfV1JJVEVPVVQKICAgICBSRVQKLSVlbmRp ZgogCiAuaWRjdGZ1bGw6IDsgZ2VuZXJpYyBmdWxsIDR4NCBpZGN0L2lkY3QKICAgICBtb3ZhICAg ICAgICAgICAgICAgIG0wLCBbYmxvY2txKyAwXQogICAgIG1vdmEgICAgICAgICAgICAgICAgbTEs IFtibG9ja3ErIDhdCiAgICAgbW92YSAgICAgICAgICAgICAgICBtMiwgW2Jsb2NrcSsxNl0KICAg ICBtb3ZhICAgICAgICAgICAgICAgIG0zLCBbYmxvY2txKzI0XQotJWlmIGNwdWZsYWcoc3NzZTMp CiAgICAgbW92YSAgICAgICAgICAgICAgICBtNiwgW3B3XzExNTg1eDJdCi0lZW5kaWYKICAgICBt b3ZhICAgICAgICAgICAgICAgIG03LCBbcGRfODE5Ml0gICAgICAgOyByb3VuZGluZwogICAgIFZQ OV9JRENUNF8xRAogICAgIFRSQU5TUE9TRTR4NFcgIDAsIDEsIDIsIDMsIDQKQEAgLTMwNiwxMCAr MjgyLDYgQEAgY2dsb2JhbCB2cDlfaWRjdF9pZGN0XzR4NF9hZGQsIDQsIDQsIDAsIGRzdCwgc3Ry aWRlLCBibG9jaywgZW9iCiAgICAgbW92YSAgICAgICBbYmxvY2txKzI0XSwgbTQKICAgICBWUDlf SURDVDRfV1JJVEVPVVQKICAgICBSRVQKLSVlbmRtYWNybwotCi1JRENUXzR4NF9GTiBtbXhleHQK LUlEQ1RfNHg0X0ZOIHNzc2UzCiAKIDstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiA7IHZvaWQgdnA5X2lhZHN0X2lhZHN0XzR4NF9hZGRfPG9wdD4odWludDhfdCAqZHN0LCBwdHJk aWZmX3Qgc3RyaWRlLCBpbnQxNl90ICpibG9jaywgaW50IGVvYik7CmRpZmYgLS1naXQgYS9saWJh dmNvZGVjL3g4Ni92cDlpdHhmbV8xNmJwcC5hc20gYi9saWJhdmNvZGVjL3g4Ni92cDlpdHhmbV8x NmJwcC5hc20KaW5kZXggZWJlNjIyMjI4NS4uMTYxYzczZjVhMSAxMDA2NDQKLS0tIGEvbGliYXZj b2RlYy94ODYvdnA5aXR4Zm1fMTZicHAuYXNtCisrKyBiL2xpYmF2Y29kZWMveDg2L3ZwOWl0eGZt XzE2YnBwLmFzbQpAQCAtMjQzLDI5ICsyNDMsMjEgQEAgSVdIVDRfRk4gMTIsIDQwOTUKIDsgNHg0 IGNvZWZmaWNpZW50cyBhcmUgNStkZXB0aCtzaWduIGJpdHMsIHNvIGZvciAxMGJwcCwgZXZlcnl0 aGluZyBzdGlsbCBmaXRzCiA7IGluIDE1KzEgd29yZHMgd2l0aG91dCBhZGRpdGlvbmFsIGVmZm9y dCwgc2luY2UgdGhlIGNvZWZmaWNpZW50cyBhcmUgMTVicHAuCiAKLSVtYWNybyBJRENUNF8xMF9G TiAwCitJTklUX01NWCBzc3NlMwogY2dsb2JhbCB2cDlfaWRjdF9pZGN0XzR4NF9hZGRfMTAsIDQs IDQsIDgsIGRzdCwgc3RyaWRlLCBibG9jaywgZW9iCiAgICAgY21wICAgICAgICAgICAgICAgZW9i ZCwgMQogICAgIGpnIC5pZGN0ZnVsbAogCiAgICAgOyBkYy1vbmx5CiAgICAgcHhvciAgICAgICAg ICAgICAgICBtNCwgbTQKLSVpZiBjcHVmbGFnKHNzc2UzKQogICAgIG1vdmQgICAgICAgICAgICAg ICAgbTAsIFtibG9ja3FdCiAgICAgbW92ZCAgICAgICAgICBbYmxvY2txXSwgbTQKICAgICBtb3Zh ICAgICAgICAgICAgICAgIG01LCBbcHdfMTE1ODV4Ml0KICAgICBwbXVsaHJzdyAgICAgICAgICAg IG0wLCBtNQogICAgIHBtdWxocnN3ICAgICAgICAgICAgbTAsIG01Ci0lZWxzZQotICAgIERFRklO RV9BUkdTIGRzdCwgc3RyaWRlLCBibG9jaywgY29lZgotICAgIERDX09OTFkgICAgICAgICAgICAg IDQsIG00Ci0gICAgbW92ZCAgICAgICAgICAgICAgICBtMCwgY29lZmQKLSVlbmRpZgogICAgIHBz aHVmdyAgICAgICAgICAgICAgbTAsIG0wLCAwCiAgICAgbW92YSAgICAgICAgICAgICAgICBtNSwg W3B3XzEwMjNdCi0laWYgY3B1ZmxhZyhzc3NlMykKICAgICBwbXVsaHJzdyAgICAgICAgICAgIG0w LCBbcHdfMjA0OF0gICAgICAgOyAoeCoyMDQ4ICsgKDE8PDE0KSk+PjE1IDw9PiAoeCs4KT4+NAot JWVuZGlmCiAgICAgVlA5X1NUT1JFXzJYICAgICAgICAgMCwgIDAsICA2LCAgNywgIDQsICA1CiAg ICAgbGVhICAgICAgICAgICAgICAgZHN0cSwgW2RzdHErMipzdHJpZGVxXQogICAgIFZQOV9TVE9S RV8yWCAgICAgICAgIDAsICAwLCAgNiwgIDcsICA0LCAgNQpAQCAtMjgxLDkgKzI3Myw3IEBAIGNn bG9iYWwgdnA5X2lkY3RfaWRjdF80eDRfYWRkXzEwLCA0LCA0LCA4LCBkc3QsIHN0cmlkZSwgYmxv Y2ssIGVvYgogICAgIHBhY2tzc2R3ICAgICAgICAgICAgbTIsIFtibG9ja3ErMioxNis4XQogICAg IHBhY2tzc2R3ICAgICAgICAgICAgbTMsIFtibG9ja3ErMyoxNis4XQogCi0laWYgY3B1ZmxhZyhz c3NlMykKICAgICBtb3ZhICAgICAgICAgICAgICAgIG02LCBbcHdfMTE1ODV4Ml0KLSVlbmRpZgog ICAgIG1vdmEgICAgICAgICAgICAgICAgbTcsIFtwZF84MTkyXSAgICAgICA7IHJvdW5kaW5nCiAg ICAgVlA5X0lEQ1Q0XzFECiAgICAgVFJBTlNQT1NFNHg0VyAgMCwgMSwgMiwgMywgNApAQCAtMjkz LDEyICsyODMsNiBAQCBjZ2xvYmFsIHZwOV9pZGN0X2lkY3RfNHg0X2FkZF8xMCwgNCwgNCwgOCwg ZHN0LCBzdHJpZGUsIGJsb2NrLCBlb2IKICAgICBaRVJPX0JMT0NLICAgICAgYmxvY2txLCAxNiwg NCwgbTQKICAgICBWUDlfSURDVDRfV1JJVEVPVVQKICAgICBSRVQKLSVlbmRtYWNybwotCi1JTklU X01NWCBtbXhleHQKLUlEQ1Q0XzEwX0ZOCi1JTklUX01NWCBzc3NlMwotSURDVDRfMTBfRk4KIAog JW1hY3JvIElBRFNUNF9GTiA0CiBjZ2xvYmFsIHZwOV8lMV8lM180eDRfYWRkXzEwLCAzLCAzLCAw LCBkc3QsIHN0cmlkZSwgYmxvY2ssIGVvYgotLSAKMi41Mi4wCgoKRnJvbSA3MDgyZDlmOWUzOGQ5 OTU2MjJiMDgwOTIyMzMxZjM4NzZhZmU1ODVmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0 ZTogU3VuLCAzMCBOb3YgMjAyNSAyMzo0ODozNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjUzLzMw NF0gdGVzdHMvY2hlY2thc20vdnA5ZHNwOiBBbGxvdyB0byBydW4gb25seSBhIHN1YnNldCBvZgog dGVzdHMKCk1ha2UgaXQgcG9zc2libGUgdG8gcnVuIG9ubHkgYSBzdWJzZXQgb2YgdGhlIFZQOSB0 ZXN0cwppbiBhZGRpdGlvbiB0byBhbGwgb2YgdGhlbSAodmlhIHRoZSB2cDlkc3AgdGVzdCkuIFRo aXMKcmVkdWNlcyBub2lzZSBhbmQgc3BlZWRzIHVwIHRlc3RpbmcuCkZBVEUgY29udGludWVzIHRv IHVzZSB2cDlkc3AuCgpSZXZpZXdlZC1ieTogUm9uYWxkIFMuIEJ1bHRqZSA8cnNidWx0amVAZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5o YXJkdEBvdXRsb29rLmNvbT4KLS0tCiB0ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jIHwgIDYgKysr KystCiB0ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oIHwgIDQgKysrKwogdGVzdHMvY2hlY2thc20v dnA5ZHNwLmMgICB8IDE2ICsrKysrKysrLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTcgaW5z ZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja2FzbS9j aGVja2FzbS5jIGIvdGVzdHMvY2hlY2thc20vY2hlY2thc20uYwppbmRleCA3ZWRjOGU0ZTZlLi42 ZTA2NmQ0NjlhIDEwMDY0NAotLS0gYS90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jCisrKyBiL3Rl c3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMKQEAgLTI2NCw3ICsyNjQsMTEgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCB7CiAgICAgICAgIHsgInZwOGRzcCIsIGNoZWNrYXNtX2NoZWNrX3ZwOGRzcCB9LAog ICAgICNlbmRpZgogICAgICNpZiBDT05GSUdfVlA5X0RFQ09ERVIKLSAgICAgICAgeyAidnA5ZHNw IiwgY2hlY2thc21fY2hlY2tfdnA5ZHNwIH0sCisgICAgICAgIHsgInZwOWRzcCIsIGNoZWNrYXNt X2NoZWNrX3ZwOWRzcCB9LCAvLyBhbGwgb2YgdGhlIGJlbG93CisgICAgICAgIHsgInZwOV9pcHJl ZCIsIGNoZWNrYXNtX2NoZWNrX3ZwOV9pcHJlZCB9LAorICAgICAgICB7ICJ2cDlfaXR4Zm0iLCBj aGVja2FzbV9jaGVja192cDlfaXR4Zm0gfSwKKyAgICAgICAgeyAidnA5X2xvb3BmaWx0ZXIiLCBj aGVja2FzbV9jaGVja192cDlfbG9vcGZpbHRlciB9LAorICAgICAgICB7ICJ2cDlfbWMiLCBjaGVj a2FzbV9jaGVja192cDlfbWMgfSwKICAgICAjZW5kaWYKICAgICAjaWYgQ09ORklHX1ZJREVPRFNQ CiAgICAgICAgIHsgInZpZGVvZHNwIiwgY2hlY2thc21fY2hlY2tfdmlkZW9kc3AgfSwKZGlmZiAt LWdpdCBhL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmggYi90ZXN0cy9jaGVja2FzbS9jaGVja2Fz bS5oCmluZGV4IDlmNGZiOGIyODMuLjkxMGZjNDE3YTcgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNr YXNtL2NoZWNrYXNtLmgKKysrIGIvdGVzdHMvY2hlY2thc20vY2hlY2thc20uaApAQCAtMTU5LDYg KzE1OSwxMCBAQCB2b2lkIGNoZWNrYXNtX2NoZWNrX3ZwM2RzcCh2b2lkKTsKIHZvaWQgY2hlY2th c21fY2hlY2tfdnA2ZHNwKHZvaWQpOwogdm9pZCBjaGVja2FzbV9jaGVja192cDhkc3Aodm9pZCk7 CiB2b2lkIGNoZWNrYXNtX2NoZWNrX3ZwOWRzcCh2b2lkKTsKK3ZvaWQgY2hlY2thc21fY2hlY2tf dnA5X2lwcmVkKHZvaWQpOwordm9pZCBjaGVja2FzbV9jaGVja192cDlfaXR4Zm0odm9pZCk7Cit2 b2lkIGNoZWNrYXNtX2NoZWNrX3ZwOV9sb29wZmlsdGVyKHZvaWQpOwordm9pZCBjaGVja2FzbV9j aGVja192cDlfbWModm9pZCk7CiB2b2lkIGNoZWNrYXNtX2NoZWNrX3ZpZGVvZHNwKHZvaWQpOwog dm9pZCBjaGVja2FzbV9jaGVja192b3JiaXNkc3Aodm9pZCk7CiB2b2lkIGNoZWNrYXNtX2NoZWNr X3Z2Y19hbGYodm9pZCk7CmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja2FzbS92cDlkc3AuYyBiL3Rl c3RzL2NoZWNrYXNtL3ZwOWRzcC5jCmluZGV4IDJhMzM3NDU0MWYuLmQ1ZmY1YWEyY2QgMTAwNjQ0 Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL3ZwOWRzcC5jCisrKyBiL3Rlc3RzL2NoZWNrYXNtL3ZwOWRz cC5jCkBAIC00Nyw3ICs0Nyw3IEBAIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwaXhlbF9tYXNrWzNd ID0geyAweGZmZmZmZmZmLCAweDAzZmYwM2ZmLCAweDBmZmYwZmZmIH07CiAgICAgICAgIH0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog ICAgIH0gd2hpbGUgKDApCiAKLXN0YXRpYyB2b2lkIGNoZWNrX2lwcmVkKHZvaWQpCit2b2lkIGNo ZWNrYXNtX2NoZWNrX3ZwOV9pcHJlZCh2b2lkKQogewogICAgIExPQ0FMX0FMSUdORURfMzIodWlu dDhfdCwgYV9idWYsIFs2NCAqIDJdKTsKICAgICB1aW50OF90ICphID0gJmFfYnVmWzMyICogMl07 CkBAIC0zMDgsNyArMzA4LDcgQEAgc3RhdGljIGludCBpc196ZXJvKGNvbnN0IGludDE2X3QgKmMs IGludCBzeikKIAogI2RlZmluZSBTSVpFT0ZfQ09FRiAoMiAqICgoYml0X2RlcHRoICsgNykgLyA4 KSkKIAotc3RhdGljIHZvaWQgY2hlY2tfaXR4Zm0odm9pZCkKK3ZvaWQgY2hlY2thc21fY2hlY2tf dnA5X2l0eGZtKHZvaWQpCiB7CiAgICAgTE9DQUxfQUxJR05FRF82NCh1aW50OF90LCBzcmMsIFsz MiAqIDMyICogMl0pOwogICAgIExPQ0FMX0FMSUdORURfNjQodWludDhfdCwgZHN0LCBbMzIgKiAz MiAqIDJdKTsKQEAgLTQ0OSw3ICs0NDksNyBAQCBzdGF0aWMgdm9pZCByYW5kb21pemVfbG9vcGZp bHRlcl9idWZmZXJzKGludCBiaWR4LCBpbnQgbGluZW9mZiwgaW50IHN0ciwKICAgICAgICAgcmFu ZG9taXplX2xvb3BmaWx0ZXJfYnVmZmVycyhiaWR4LCBsaW5lb2ZmLCBzdHIsIGJpdF9kZXB0aCwg ZGlyLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRSwgRiwgSCwgSSwg YnVmMCwgYnVmMSkKIAotc3RhdGljIHZvaWQgY2hlY2tfbG9vcGZpbHRlcih2b2lkKQordm9pZCBj aGVja2FzbV9jaGVja192cDlfbG9vcGZpbHRlcih2b2lkKQogewogICAgIExPQ0FMX0FMSUdORURf MzIodWludDhfdCwgYmFzZTAsIFszMiArIDE2ICogMTYgKiAyXSk7CiAgICAgTE9DQUxfQUxJR05F RF8zMih1aW50OF90LCBiYXNlMSwgWzMyICsgMTYgKiAxNiAqIDJdKTsKQEAgLTU1Niw3ICs1NTYs NyBAQCBzdGF0aWMgdm9pZCBjaGVja19sb29wZmlsdGVyKHZvaWQpCiAgICAgICAgIH0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIH0gd2hpbGUg KDApCiAKLXN0YXRpYyB2b2lkIGNoZWNrX21jKHZvaWQpCit2b2lkIGNoZWNrYXNtX2NoZWNrX3Zw OV9tYyh2b2lkKQogewogICAgIExPQ0FMX0FMSUdORURfNjQodWludDhfdCwgYnVmLCBbNzIgKiA3 MiAqIDJdKTsKICAgICBMT0NBTF9BTElHTkVEXzY0KHVpbnQ4X3QsIGRzdDAsIFs2NCAqIDY0ICog Ml0pOwpAQCAtNjI2LDggKzYyNiw4IEBAIHN0YXRpYyB2b2lkIGNoZWNrX21jKHZvaWQpCiAKIHZv aWQgY2hlY2thc21fY2hlY2tfdnA5ZHNwKHZvaWQpCiB7Ci0gICAgY2hlY2tfaXByZWQoKTsKLSAg ICBjaGVja19pdHhmbSgpOwotICAgIGNoZWNrX2xvb3BmaWx0ZXIoKTsKLSAgICBjaGVja19tYygp OworICAgIGNoZWNrYXNtX2NoZWNrX3ZwOV9pcHJlZCgpOworICAgIGNoZWNrYXNtX2NoZWNrX3Zw OV9pdHhmbSgpOworICAgIGNoZWNrYXNtX2NoZWNrX3ZwOV9sb29wZmlsdGVyKCk7CisgICAgY2hl Y2thc21fY2hlY2tfdnA5X21jKCk7CiB9Ci0tIAoyLjUyLjAKCgpGcm9tIDY4YjFkMWEzNjNhODkx ZWViMTcwYjI1Mzc5MjIwN2E3OWViNDk5YzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgpEYXRl OiBNb24sIDEgRGVjIDIwMjUgMDA6MTc6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDI1NC8zMDRd IGF2Y29kZWMveDg2L3ZwOW1jOiBBdm9pZCByZWxvYWRzLCBNTVggcmVncyBpbiB3aWR0aCA0CiB2 ZXJ0IDh0YXAgZnVuYwoKRm91ciByb3dzIG9mIGZvdXIgYnl0ZXMgZml0IGludG8gb25lIHhtbSBy ZWdpc3RlcjsgdGhlcmVmb3JlCm9uZSBjYW4gYXJyYW5nZSB0aGUgcm93cyBhcyBmb2xsb3dzIChB LEIsQzogZmlyc3QsIHNlY29uZCwgdGhpcmQgZXRjLgpyb3cpCgp4bW0wOiBBQkFCQUJBQiBCQ0JD QkNCQwp4bW0xOiBDRENEQ0RDRCBERURFREVERQp4bW0yOiBFRkVGRUZFRiBGR0ZHRkdGRwp4bW0z OiBHSEdIR0hHSCBISUhJSElISQoKYW5kIHVzZSBmb3VyIHBtYWRkdWJzdyB0byBjYWxjdWxhdGUg dHdvIHJvd3MgaW4gcGFyYWxsZWwuIFRoZSBoaXN0b3J5CmZpdHMgaW50byBmb3VyIHJlZ2lzdGVy cywgbWFraW5nIHRoaXMgcG9zc2libGUgZXZlbiBvbiAzMmJpdCBzeXN0ZW1zLgoKT2xkIGJlbmNo bWFya3MgKFVuaXggNjQpOgp2cDlfYXZnXzh0YXBfc21vb3RoXzR2XzhicHBfYzogICAgICAgICAg ICAgICAgICAgICAgICAgMTA1LjUgKCAxLjAweCkKdnA5X2F2Z184dGFwX3Ntb290aF80dl84YnBw X3Nzc2UzOiAgICAgICAgICAgICAgICAgICAgICAxNi40ICggNi40NHgpCnZwOV9wdXRfOHRhcF9z bW9vdGhfNHZfOGJwcF9jOiAgICAgICAgICAgICAgICAgICAgICAgICAgOTkuMyAoIDEuMDB4KQp2 cDlfcHV0Xzh0YXBfc21vb3RoXzR2XzhicHBfc3NzZTM6ICAgICAgICAgICAgICAgICAgICAgIDE1 LjQgKCA2LjQ0eCkKCk5ldyBiZW5jaG1hcmtzIChVbml4IDY0KToKdnA5X2F2Z184dGFwX3Ntb290 aF80dl84YnBwX2M6ICAgICAgICAgICAgICAgICAgICAgICAgIDEwNS4wICggMS4wMHgpCnZwOV9h dmdfOHRhcF9zbW9vdGhfNHZfOGJwcF9zc3NlMzogICAgICAgICAgICAgICAgICAgICAgMTEuOCAo IDguOTB4KQp2cDlfcHV0Xzh0YXBfc21vb3RoXzR2XzhicHBfYzogICAgICAgICAgICAgICAgICAg ICAgICAgIDk5LjcgKCAxLjAweCkKdnA5X3B1dF84dGFwX3Ntb290aF80dl84YnBwX3Nzc2UzOiAg ICAgICAgICAgICAgICAgICAgICAxMC43ICggOS4zMHgpCgpPbGQgYmVuY2htYXJrcyAoeDg2LTMy KToKdnA5X2F2Z184dGFwX3Ntb290aF80dl84YnBwX2M6ICAgICAgICAgICAgICAgICAgICAgICAg IDEzOC4yICggMS4wMHgpCnZwOV9hdmdfOHRhcF9zbW9vdGhfNHZfOGJwcF9zc3NlMzogICAgICAg ICAgICAgICAgICAgICAgMjguMCAoIDQuOTN4KQp2cDlfcHV0Xzh0YXBfc21vb3RoXzR2XzhicHBf YzogICAgICAgICAgICAgICAgICAgICAgICAgMTIzLjYgKCAxLjAweCkKdnA5X3B1dF84dGFwX3Nt b290aF80dl84YnBwX3Nzc2UzOiAgICAgICAgICAgICAgICAgICAgICAyOC4wICggNC40MXgpCgpO ZXcgYmVuY2htYXJrcyAoeDg2LTMyKToKdnA5X2F2Z184dGFwX3Ntb290aF80dl84YnBwX2M6ICAg ICAgICAgICAgICAgICAgICAgICAgIDEzOS4wICggMS4wMHgpCnZwOV9hdmdfOHRhcF9zbW9vdGhf NHZfOGJwcF9zc3NlMzogICAgICAgICAgICAgICAgICAgICAgMjAuMSAoIDYuOTJ4KQp2cDlfcHV0 Xzh0YXBfc21vb3RoXzR2XzhicHBfYzogICAgICAgICAgICAgICAgICAgICAgICAgMTI0LjUgKCAx LjAweCkKdnA5X3B1dF84dGFwX3Ntb290aF80dl84YnBwX3Nzc2UzOiAgICAgICAgICAgICAgICAg ICAgICAxOS45ICggNi4yNngpCgpMb2FkaW5nIHRoZSBjb25zdGFudHMgaW50byByZWdpc3RlcnMg ZGlkIG5vdCB0dXJuIG91dCB0byBiZSBhZHZhbnRhZ2VvdXMKaGVyZSAobm90IHRvIG1lbnRpb24g V2luNjQsIHdoZXJlIHRoaXMgd291bGQgbmVjZXNzaXRhdGUgc2F2aW5nCmFuZCByZXN0b3Jpbmcg ZXZlciBtb3JlIHJlZ2lzdGVyKTsgcHJvYmFibHkgYmVjYXVzZSB0aGVyZSBhcmUgb25seSB0d28K bG9vcCBpdGVyYXRpb25zLgoKUmV2aWV3ZWQtYnk6IFJvbmFsZCBTLiBCdWx0amUgPHJzYnVsdGpl QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJo ZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGliYXZjb2RlYy94ODYvdnA5bWMuYXNtIHwgOTAg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQs IDgxIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2Rl Yy94ODYvdnA5bWMuYXNtIGIvbGliYXZjb2RlYy94ODYvdnA5bWMuYXNtCmluZGV4IDY4MmM2YTZl YTAuLjg1MjQ5YmI1MDcgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMveDg2L3ZwOW1jLmFzbQorKysg Yi9saWJhdmNvZGVjL3g4Ni92cDltYy5hc20KQEAgLTQ5NiwxMiArNDk2LDg0IEBAIElOSVRfWE1N IHNzZTIKIGZpbHRlcl9zc2UyX3ZfZm4gcHV0CiBmaWx0ZXJfc3NlMl92X2ZuIGF2ZwogCi0lbWFj cm8gZmlsdGVyX3ZfZm4gMQotJWFzc2lnbiAlJXB4IG1tc2l6ZS8yCislbWFjcm8gZmlsdGVyNF92 X2ZuIDEKICVpZiBBUkNIX1g4Nl82NAotY2dsb2JhbCB2cDlfJTFfOHRhcF8xZF92XyAlKyAlJXB4 ICUrIF84LCA2LCA4LCAxMSwgZHN0LCBkc3RyaWRlLCBzcmMsIHNzdHJpZGUsIGgsIGZpbHRlcnks IHNyYzQsIHNzdHJpZGUzCitjZ2xvYmFsIHZwOV8lMV84dGFwXzFkX3ZfNF84LCA2LCA3LCA4LCBk c3QsIGRzdHJpZGUsIHNyYywgc3N0cmlkZSwgaCwgZmlsdGVyeSwgc3N0cmlkZTMKICVlbHNlCi1j Z2xvYmFsIHZwOV8lMV84dGFwXzFkX3ZfICUrICUlcHggJSsgXzgsIDQsIDcsIDExLCBkc3QsIGRz dHJpZGUsIHNyYywgc3N0cmlkZSwgZmlsdGVyeSwgc3JjNCwgc3N0cmlkZTMKK2NnbG9iYWwgdnA5 XyUxXzh0YXBfMWRfdl80XzgsIDQsIDUsIDgsIGRzdCwgZHN0cmlkZSwgc3JjLCBzc3RyaWRlLCBm aWx0ZXJ5CislZGVmaW5lIGhkIHI0bXAKKyVkZWZpbmUgc3N0cmlkZTNxIGZpbHRlcnlxCislZW5k aWYKKyAgICBsZWEgIHNzdHJpZGUzcSwgW3NzdHJpZGVxKjNdCisgICAgc3ViICAgICAgIHNyY3Es IHNzdHJpZGUzcQorICAgIG1vdmQgICAgICAgIG0wLCBbc3JjcV0KKyAgICBtb3ZkICAgICAgICBt MSwgW3NyY3Erc3N0cmlkZXFdCisgICAgbW92ZCAgICAgICAgbTIsIFtzcmNxK3NzdHJpZGVxKjJd CisgICAgbW92ZCAgICAgICAgbTMsIFtzcmNxK3NzdHJpZGUzcV0KKyAgICBsZWEgICAgICAgc3Jj cSwgW3NyY3Erc3N0cmlkZXEqNF0KKyAgICBtb3ZkICAgICAgICBtNCwgW3NyY3FdCisgICAgbW92 ZCAgICAgICAgbTUsIFtzcmNxK3NzdHJpZGVxXQorICAgIHB1bnBja2xidyAgIG0wLCBtMQorICAg IHB1bnBja2xidyAgIG0xLCBtMgorICAgIHB1bnBja2xidyAgIG0yLCBtMworICAgIHB1bnBja2xi dyAgIG0zLCBtNAorICAgIHB1bnBja2xxZHEgIG0wLCBtMQorICAgIG1vdmQgICAgICAgIG0xLCBb c3JjcStzc3RyaWRlcSoyXQorICAgIGFkZCAgICAgICBzcmNxLCBzc3RyaWRlM3EKKyVpZiBBUkNI X1g4Nl8zMgorICAgIG1vdiAgIGZpbHRlcnlxLCByNW1wCislZW5kaWYKKyAgICBwdW5wY2tscWRx ICBtMiwgbTMKKyAgICBwdW5wY2tsYncgICBtNCwgbTUKKyAgICBwdW5wY2tsYncgICBtNSwgbTEK KyAgICBwdW5wY2tscWRxICBtNCwgbTUKKy5sb29wOgorICAgIHBtYWRkdWJzdyAgIG0wLCBbZmls dGVyeXFdCisgICAgbW92ZCAgICAgICAgbTMsIFtzcmNxXQorICAgIG1vdmQgICAgICAgIG01LCBb c3JjcStzc3RyaWRlcV0KKyAgICBwbWFkZHVic3cgICBtNywgbTQsIFtmaWx0ZXJ5cSs2NF0KKyAg ICBwbWFkZHVic3cgICBtNiwgbTIsIFtmaWx0ZXJ5cSszMl0KKyAgICBwdW5wY2tsYncgICBtMSwg bTMKKyAgICBwdW5wY2tsYncgICBtMywgbTUKKyAgICBwdW5wY2tscWRxICBtMSwgbTMKKyAgICBw bWFkZHVic3cgICBtMywgbTEsIFtmaWx0ZXJ5cSs5Nl0KKyAgICBwYWRkdyAgICAgICBtMCwgW3B3 XzY0XQorICAgIGxlYSAgICAgICBzcmNxLCBbc3JjcSsyKnNzdHJpZGVxXQorICAgIHBhZGR3ICAg ICAgIG03LCBtMAorICAgIG1vdmEgICAgICAgIG0wLCBtMgorICAgIG1vdmEgICAgICAgIG0yLCBt NAorJWlmaWRuICUxLCBhdmcKKyAgICBtb3ZkICAgICAgICBtNCwgW2RzdHFdCislZW5kaWYKKyAg ICBwYWRkdyAgICAgICBtNiwgbTMKKyVpZmlkbiAlMSwgYXZnCisgICAgbW92ZCAgICAgICAgbTMs IFtkc3RxK2RzdHJpZGVxXQorJWVuZGlmCisgICAgcGFkZHN3ICAgICAgbTYsIG03CisgICAgcHNy YXcgICAgICAgbTYsIDcKKyAgICBwYWNrdXN3YiAgICBtNiwgbTYKKyAgICBwc2h1Zmx3ICAgICBt NywgbTYsIDB4RQorJWlmaWRuICUxLCBhdmcKKyAgICBwYXZnYiAgICAgICBtNiwgbTQKKyVlbmRp ZgorICAgIG1vdmQgICAgW2RzdHFdLCBtNgorICAgIG1vdmEgICAgICAgIG00LCBtMQorJWlmaWRu ICUxLCBhdmcKKyAgICBwYXZnYiAgICAgICBtNywgbTMKKyVlbmRpZgorICAgIG1vdmQgW2RzdHEr ZHN0cmlkZXFdLCBtNworICAgIGxlYSAgICAgICBkc3RxLCBbZHN0cSsyKmRzdHJpZGVxXQorICAg IG1vdmEgICAgICAgIG0xLCBtNQorICAgIHN1YiAgICAgICAgIGhkLCAyCisgICAgamcgLmxvb3AK KyAgICBSRVQKKyVlbmRtYWNybworCislbWFjcm8gZmlsdGVyX3ZfZm4gMQorJWlmIEFSQ0hfWDg2 XzY0CitjZ2xvYmFsIHZwOV8lMV84dGFwXzFkX3ZfOF84LCA2LCA4LCAxMSwgZHN0LCBkc3RyaWRl LCBzcmMsIHNzdHJpZGUsIGgsIGZpbHRlcnksIHNyYzQsIHNzdHJpZGUzCislZWxzZQorY2dsb2Jh bCB2cDlfJTFfOHRhcF8xZF92XzhfOCwgNCwgNywgMTEsIGRzdCwgZHN0cmlkZSwgc3JjLCBzc3Ry aWRlLCBmaWx0ZXJ5LCBzcmM0LCBzc3RyaWRlMwogICAgIG1vdiAgIGZpbHRlcnlxLCByNW1wCiAl ZGVmaW5lIGhkIHI0bXAKICVlbmRpZgpAQCAtNTEwLDcgKzU4Miw3IEBAIGNnbG9iYWwgdnA5XyUx Xzh0YXBfMWRfdl8gJSsgJSVweCAlKyBfOCwgNCwgNywgMTEsIGRzdCwgZHN0cmlkZSwgc3JjLCBz c3RyaWRlLCBmCiAgICAgbGVhICAgICAgc3JjNHEsIFtzcmNxK3NzdHJpZGVxXQogICAgIHN1YiAg ICAgICBzcmNxLCBzc3RyaWRlM3EKICAgICBtb3ZhICAgICAgICBtNywgW2ZpbHRlcnlxKyAwXQot JWlmIEFSQ0hfWDg2XzY0ICYmIG1tc2l6ZSA+IDgKKyVpZiBBUkNIX1g4Nl82NAogICAgIG1vdmEg ICAgICAgIG04LCBbZmlsdGVyeXErMzJdCiAgICAgbW92YSAgICAgICAgbTksIFtmaWx0ZXJ5cSs2 NF0KICAgICBtb3ZhICAgICAgIG0xMCwgW2ZpbHRlcnlxKzk2XQpAQCAtNTMzLDcgKzYwNSw3IEBA IGNnbG9iYWwgdnA5XyUxXzh0YXBfMWRfdl8gJSsgJSVweCAlKyBfOCwgNCwgNywgMTEsIGRzdCwg ZHN0cmlkZSwgc3JjLCBzc3RyaWRlLCBmCiAgICAgcHVucGNrbGJ3ICAgbTQsIG01CiAgICAgcHVu cGNrbGJ3ICAgbTEsIG0zCiAgICAgcG1hZGR1YnN3ICAgbTAsIG03Ci0laWYgQVJDSF9YODZfNjQg JiYgbW1zaXplID4gOAorJWlmIEFSQ0hfWDg2XzY0CiAgICAgcG1hZGR1YnN3ICAgbTIsIG04CiAg ICAgcG1hZGR1YnN3ICAgbTQsIG05CiAgICAgcG1hZGR1YnN3ICAgbTEsIG0xMApAQCAtNTYwLDkg KzYzMiw5IEBAIGNnbG9iYWwgdnA5XyUxXzh0YXBfMWRfdl8gJSsgJSVweCAlKyBfOCwgNCwgNywg MTEsIGRzdCwgZHN0cmlkZSwgc3JjLCBzc3RyaWRlLCBmCiAgICAgUkVUCiAlZW5kbWFjcm8KIAot SU5JVF9NTVggc3NzZTMKLWZpbHRlcl92X2ZuIHB1dAotZmlsdGVyX3ZfZm4gYXZnCitJTklUX1hN TSBzc3NlMworZmlsdGVyNF92X2ZuIHB1dAorZmlsdGVyNF92X2ZuIGF2ZwogCiBJTklUX1hNTSBz c3NlMwogZmlsdGVyX3ZfZm4gcHV0Ci0tIAoyLjUyLjAKCgpGcm9tIDY1ZTM0ZWU5OTk1NzhjMGIz NjY5NGY1MWIwNWRkMzI0MDAxMDk4ZmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFu ZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgpEYXRlOiBU dWUsIDIgRGVjIDIwMjUgMTM6NDc6MzIgKzAxMDAKU3ViamVjdDogW1BBVENIIDI1NS8zMDRdIGF2 Y29kZWMveDg2L3ZwOW1jOiBBdm9pZCBNTVggcmVncyBpbiB3aWR0aCA0IGhvciA4dGFwCiBmdW5j cwoKVXNpbmcgd2lkZXIgcmVnaXN0ZXJzIChhbmQgcHNodWZiKSBhbGxvd3MgdG8gaGFsdmUgdGhl IG51bWJlciBvZgpwbWFkZHVic3cgdXNlZC4gSXQgaXMgYWxzbyBBQkkgY29tcGxpYW50IChubyBt b3JlIG1pc3NpbmcgZW1tcykuCgpPbGQgYmVuY2htYXJrczoKdnA5X2F2Z184dGFwX3Ntb290aF80 aF84YnBwX2M6ICAgICAgICAgICAgICAgICAgICAgICAgICA5Ny42ICggMS4wMHgpCnZwOV9hdmdf OHRhcF9zbW9vdGhfNGhfOGJwcF9zc3NlMzogICAgICAgICAgICAgICAgICAgICAgMTUuMCAoIDYu NTJ4KQp2cDlfYXZnXzh0YXBfc21vb3RoXzRodl84YnBwX2M6ICAgICAgICAgICAgICAgICAgICAg ICAgMzQyLjkgKCAxLjAweCkKdnA5X2F2Z184dGFwX3Ntb290aF80aHZfOGJwcF9zc3NlMzogICAg ICAgICAgICAgICAgICAgICA1NC4wICggNi4zNXgpCnZwOV9wdXRfOHRhcF9zbW9vdGhfNGhfOGJw cF9jOiAgICAgICAgICAgICAgICAgICAgICAgICAgOTQuOSAoIDEuMDB4KQp2cDlfcHV0Xzh0YXBf c21vb3RoXzRoXzhicHBfc3NzZTM6ICAgICAgICAgICAgICAgICAgICAgIDE0LjIgKCA2LjY3eCkK dnA5X3B1dF84dGFwX3Ntb290aF80aHZfOGJwcF9jOiAgICAgICAgICAgICAgICAgICAgICAgIDMy NS45ICggMS4wMHgpCnZwOV9wdXRfOHRhcF9zbW9vdGhfNGh2XzhicHBfc3NzZTM6ICAgICAgICAg ICAgICAgICAgICAgNTIuNSAoIDYuMjB4KQoKTmV3IGJlbmNobWFya3M6CnZwOV9hdmdfOHRhcF9z bW9vdGhfNGhfOGJwcF9jOiAgICAgICAgICAgICAgICAgICAgICAgICAgOTcuNiAoIDEuMDB4KQp2 cDlfYXZnXzh0YXBfc21vb3RoXzRoXzhicHBfc3NzZTM6ICAgICAgICAgICAgICAgICAgICAgIDEw LjggKCA5LjA4eCkKdnA5X2F2Z184dGFwX3Ntb290aF80aHZfOGJwcF9jOiAgICAgICAgICAgICAg ICAgICAgICAgIDM0Mi40ICggMS4wMHgpCnZwOV9hdmdfOHRhcF9zbW9vdGhfNGh2XzhicHBfc3Nz ZTM6ICAgICAgICAgICAgICAgICAgICAgMzguOCAoIDguODJ4KQp2cDlfcHV0Xzh0YXBfc21vb3Ro XzRoXzhicHBfYzogICAgICAgICAgICAgICAgICAgICAgICAgIDk0LjcgKCAxLjAweCkKdnA5X3B1 dF84dGFwX3Ntb290aF80aF84YnBwX3Nzc2UzOiAgICAgICAgICAgICAgICAgICAgICAgOS43ICgg OS43NXgpCnZwOV9wdXRfOHRhcF9zbW9vdGhfNGh2XzhicHBfYzogICAgICAgICAgICAgICAgICAg ICAgICAzMjEuNyAoIDEuMDB4KQp2cDlfcHV0Xzh0YXBfc21vb3RoXzRodl84YnBwX3Nzc2UzOiAg ICAgICAgICAgICAgICAgICAgIDM3LjAgKCA4LjY5eCkKClJldmlld2VkLWJ5OiBSb25hbGQgUy4g QnVsdGplIDxyc2J1bHRqZUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5o YXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIGxpYmF2Y29kZWMveDg2 L3ZwOW1jLmFzbSB8IDUwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2xpYmF2Y29kZWMveDg2L3ZwOW1jLmFzbSBiL2xpYmF2Y29kZWMveDg2L3ZwOW1jLmFz bQppbmRleCA4NTI0OWJiNTA3Li40MmY5MDc0YzIxIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4 Ni92cDltYy5hc20KKysrIGIvbGliYXZjb2RlYy94ODYvdnA5bWMuYXNtCkBAIC0xMTQsNiArMTE0 LDkgQEAgRklMVEVSIHNzZTIKIDsgaW50MTZfdCBmZl9maWx0ZXJzXzE2YnBwWzNdWzE1XVs0XVsx Nl0KIEZJTFRFUiAxNmJwcAogCitmaWx0ZXI0X2hfcGVybTA6IGRiIDAsIDEsIDEsIDIsIDIsIDMs IDMsIDQsIDIsIDMsIDMsIDQsIDQsIDUsIDUsIDYKK2ZpbHRlcjRfaF9wZXJtMTogZGIgMSwgMiwg MiwgMywgMywgNCwgNCwgNSwgMywgNCwgNCwgNSwgNSwgNiwgNiwgNworCiAlaWYgSEFWRV9BVlg1 MTJJQ0xfRVhURVJOQUwgJiYgQVJDSF9YODZfNjQKIEFMSUdOIDY0CiBzcGVsX2hfcGVybTE2OiAg ZGIgIDAsICAxLCAgMiwgIDMsICAxLCAgMiwgIDMsICA0LCAgMiwgIDMsICA0LCAgNSwgIDMsICA0 LCAgNSwgIDYKQEAgLTI4MCwxMiArMjgzLDUxIEBAIElOSVRfWE1NIHNzZTIKIGZpbHRlcl9zc2Uy X2hfZm4gcHV0CiBmaWx0ZXJfc3NlMl9oX2ZuIGF2ZwogCislbWFjcm8gZmlsdGVyNF9oX2ZuIDIK K2NnbG9iYWwgdnA5XyUxXzh0YXBfMWRfaF80XzgsIDYsIDYsICUyLCBkc3QsIGRzdHJpZGUsIHNy Yywgc3N0cmlkZSwgaCwgZmlsdGVyeQorICAgIG1vdmEgICAgICAgIG0yLCBbZmlsdGVyNF9oX3Bl cm0wXQorICAgIG1vdmEgICAgICAgIG0zLCBbZmlsdGVyNF9oX3Blcm0xXQorICAgIHBjbXBlcXcg ICAgIG00LCBtNAorICAgIG1vdnUgICAgICAgIG01LCBbZmlsdGVyeXErMjRdCisgICAgbW92dSAg ICAgICAgbTYsIFtmaWx0ZXJ5cSs4OF0KKyAgICBwc2xsdyAgICAgICBtNCwgNiAgIDsgcHdfbTY0 CisubG9vcDoKKyAgICBtb3ZxICAgICAgICBtMCwgW3NyY3EtM10KKyAgICBtb3ZxICAgICAgICBt MSwgW3NyY3ErMF0KKyAgICBwc2h1ZmIgICAgICBtMCwgbTIKKyAgICBwc2h1ZmIgICAgICBtMSwg bTMKKyAgICBwbWFkZHVic3cgICBtMCwgbTUKKyAgICBwbWFkZHVic3cgICBtMSwgbTYKKyVpZmlk biAlMSwgYXZnCisgICAgbW92ZCAgICAgICAgbTcsIFtkc3RxXQorJWVuZGlmCisgICAgYWRkICAg ICAgIHNyY3EsIHNzdHJpZGVxCisgICAgcGFkZHcgICAgICAgbTAsIG0xCisgICAgbW92aGxwcyAg ICAgbTEsIG0wCisgICAgcHN1YncgICAgICAgbTAsIG00CisgICAgcGFkZHN3ICAgICAgbTAsIG0x CisgICAgcHNyYXcgICAgICAgbTAsIDcKKyAgICBwYWNrdXN3YiAgICBtMCwgbTAKKyVpZmlkbiAl MSwgYXZnCisgICAgcGF2Z2IgICAgICAgbTAsIG03CislZW5kaWYKKyAgICBtb3ZkICAgIFtkc3Rx XSwgbTAKKyAgICBhZGQgICAgICAgZHN0cSwgZHN0cmlkZXEKKyAgICBzdWIgICAgICAgICBoZCwg MQorICAgIGpnIC5sb29wCisgICAgUkVUCislZW5kbWFjcm8KKworSU5JVF9YTU0gc3NzZTMKK2Zp bHRlcjRfaF9mbiBwdXQsIDcKK2ZpbHRlcjRfaF9mbiBhdmcsIDgKKwogJW1hY3JvIGZpbHRlcl9o X2ZuIDEKICVhc3NpZ24gJSVweCBtbXNpemUvMgogY2dsb2JhbCB2cDlfJTFfOHRhcF8xZF9oXyAl KyAlJXB4ICUrIF84LCA2LCA2LCAxMSwgZHN0LCBkc3RyaWRlLCBzcmMsIHNzdHJpZGUsIGgsIGZp bHRlcnkKICAgICBtb3ZhICAgICAgICBtNiwgW3B3XzI1Nl0KICAgICBtb3ZhICAgICAgICBtNywg W2ZpbHRlcnlxKyAwXQotJWlmIEFSQ0hfWDg2XzY0ICYmIG1tc2l6ZSA+IDgKKyVpZmRlZiBtOAog ICAgIG1vdmEgICAgICAgIG04LCBbZmlsdGVyeXErMzJdCiAgICAgbW92YSAgICAgICAgbTksIFtm aWx0ZXJ5cSs2NF0KICAgICBtb3ZhICAgICAgIG0xMCwgW2ZpbHRlcnlxKzk2XQpAQCAtMzA1LDcg KzM0Nyw3IEBAIGNnbG9iYWwgdnA5XyUxXzh0YXBfMWRfaF8gJSsgJSVweCAlKyBfOCwgNiwgNiwg MTEsIGRzdCwgZHN0cmlkZSwgc3JjLCBzc3RyaWRlLCBoCiAgICAgcHVucGNrbGJ3ICAgbTQsIG01 CiAgICAgcHVucGNrbGJ3ICAgbTEsIG0zCiAgICAgcG1hZGR1YnN3ICAgbTAsIG03Ci0laWYgQVJD SF9YODZfNjQgJiYgbW1zaXplID4gOAorJWlmZGVmIG04CiAgICAgcG1hZGR1YnN3ICAgbTIsIG04 CiAgICAgcG1hZGR1YnN3ICAgbTQsIG05CiAgICAgcG1hZGR1YnN3ICAgbTEsIG0xMApAQCAtMzMy LDEwICszNzQsNiBAQCBjZ2xvYmFsIHZwOV8lMV84dGFwXzFkX2hfICUrICUlcHggJSsgXzgsIDYs IDYsIDExLCBkc3QsIGRzdHJpZGUsIHNyYywgc3N0cmlkZSwgaAogICAgIFJFVAogJWVuZG1hY3Jv CiAKLUlOSVRfTU1YIHNzc2UzCi1maWx0ZXJfaF9mbiBwdXQKLWZpbHRlcl9oX2ZuIGF2ZwotCiBJ TklUX1hNTSBzc3NlMwogZmlsdGVyX2hfZm4gcHV0CiBmaWx0ZXJfaF9mbiBhdmcKLS0gCjIuNTIu MAoKCkZyb20gZjhjNGU1NjMyOTZmYzc4M2ZkYTdmNWY2ZTlmYWQzMTk1OGUzYjRkYyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWlu aGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxNDoyNzoyMyArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMjU2LzMwNF0gYXZjb2RlYy94ODYvdnA5bWM6IERlZHVwbGljYXRlIGNv ZWZmaWNpZW50IHRhYmxlcwoKUmV2aWV3ZWQtYnk6IFJvbmFsZCBTLiBCdWx0amUgPHJzYnVsdGpl QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJo ZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGliYXZjb2RlYy94ODYvdnA5bWMuYXNtIHwgNzIg KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDIyIGluc2VydGlvbnMoKyksIDUwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29k ZWMveDg2L3ZwOW1jLmFzbSBiL2xpYmF2Y29kZWMveDg2L3ZwOW1jLmFzbQppbmRleCA0MmY5MDc0 YzIxLi4zNmU4MzY0M2E5IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3g4Ni92cDltYy5hc20KKysr IGIvbGliYXZjb2RlYy94ODYvdnA5bWMuYXNtCkBAIC01Myw4ICs1MywxMSBAQCB0aW1lcyA4IGR3 ICU1LCAlNgogdGltZXMgOCBkdyAlNywgJTgKICVlbmRtYWNybwogCi0lbWFjcm8gRklMVEVSIDEK LWNvbnN0IGZpbHRlcnNfJTEgOyBzbW9vdGgKKyVtYWNybyBGSUxURVIgMC0xCisgICAgICAgICAg ICAgICAgICAgIDsgc21vb3RoCislaWYgJTAgPiAwCislMSAlKyBfc21vb3RoOgorJWVuZGlmCiAg ICAgICAgICAgICAgICAgICAgIEY4X1RBUFMgLTMsIC0xLCAgMzIsICA2NCwgIDM4LCAgIDEsIC0z LCAgMAogICAgICAgICAgICAgICAgICAgICBGOF9UQVBTIC0yLCAtMiwgIDI5LCAgNjMsICA0MSwg ICAyLCAtMywgIDAKICAgICAgICAgICAgICAgICAgICAgRjhfVEFQUyAtMiwgLTIsICAyNiwgIDYz LCAgNDMsICAgNCwgLTQsICAwCkBAIC03MSw2ICs3NCw5IEBAIGNvbnN0IGZpbHRlcnNfJTEgOyBz bW9vdGgKICAgICAgICAgICAgICAgICAgICAgRjhfVEFQUyAgMCwgLTMsICAgMiwgIDQxLCAgNjMs ICAyOSwgLTIsIC0yCiAgICAgICAgICAgICAgICAgICAgIEY4X1RBUFMgIDAsIC0zLCAgIDEsICAz OCwgIDY0LCAgMzIsIC0xLCAtMwogICAgICAgICAgICAgICAgICAgICA7IHJlZ3VsYXIKKyVpZiAl MCA+IDAKKyUxICUrIF9yZWd1bGFyOgorJWVuZGlmCiAgICAgICAgICAgICAgICAgICAgIEY4X1RB UFMgIDAsICAxLCAgLTUsIDEyNiwgICA4LCAgLTMsICAxLCAgMAogICAgICAgICAgICAgICAgICAg ICBGOF9UQVBTIC0xLCAgMywgLTEwLCAxMjIsICAxOCwgIC02LCAgMiwgIDAKICAgICAgICAgICAg ICAgICAgICAgRjhfVEFQUyAtMSwgIDQsIC0xMywgMTE4LCAgMjcsICAtOSwgIDMsIC0xCkBAIC04 Nyw2ICs5Myw5IEBAIGNvbnN0IGZpbHRlcnNfJTEgOyBzbW9vdGgKICAgICAgICAgICAgICAgICAg ICAgRjhfVEFQUyAgMCwgIDIsICAtNiwgIDE4LCAxMjIsIC0xMCwgIDMsIC0xCiAgICAgICAgICAg ICAgICAgICAgIEY4X1RBUFMgIDAsICAxLCAgLTMsICAgOCwgMTI2LCAgLTUsICAxLCAgMAogICAg ICAgICAgICAgICAgICAgICA7IHNoYXJwCislaWYgJTAgPiAwCislMSAlKyBfc2hhcnA6CislZW5k aWYKICAgICAgICAgICAgICAgICAgICAgRjhfVEFQUyAtMSwgIDMsICAtNywgMTI3LCAgIDgsICAt MywgIDEsICAwCiAgICAgICAgICAgICAgICAgICAgIEY4X1RBUFMgLTIsICA1LCAtMTMsIDEyNSwg IDE3LCAgLTYsICAzLCAtMQogICAgICAgICAgICAgICAgICAgICBGOF9UQVBTIC0zLCAgNywgLTE3 LCAxMjEsICAyNywgLTEwLCAgNSwgLTIKQEAgLTEwNiwxMyArMTE1LDE2IEBAIGNvbnN0IGZpbHRl cnNfJTEgOyBzbW9vdGgKIAogJWRlZmluZSBGOF9UQVBTIEY4X1NTU0UzX1RBUFMKIDsgaW50OF90 IGZmX2ZpbHRlcnNfc3NzZTNbM11bMTVdWzRdWzMyXQotRklMVEVSIHNzc2UzCitjb25zdCBmaWx0 ZXJzX3Nzc2UzCitGSUxURVIKICVkZWZpbmUgRjhfVEFQUyBGOF9TU0UyX1RBUFMKIDsgaW50MTZf dCBmZl9maWx0ZXJzX3NzZTJbM11bMTVdWzhdWzhdCi1GSUxURVIgc3NlMgorY29uc3QgZmlsdGVy c19zc2UyCitGSUxURVIKICVkZWZpbmUgRjhfVEFQUyBGOF8xNkJQUF9UQVBTCiA7IGludDE2X3Qg ZmZfZmlsdGVyc18xNmJwcFszXVsxNV1bNF1bMTZdCi1GSUxURVIgMTZicHAKK2NvbnN0IGZpbHRl cnNfMTZicHAKK0ZJTFRFUgogCiBmaWx0ZXI0X2hfcGVybTA6IGRiIDAsIDEsIDEsIDIsIDIsIDMs IDMsIDQsIDIsIDMsIDMsIDQsIDQsIDUsIDUsIDYKIGZpbHRlcjRfaF9wZXJtMTogZGIgMSwgMiwg MiwgMywgMywgNCwgNCwgNSwgMywgNCwgNCwgNSwgNSwgNiwgNiwgNwpAQCAtMTQ4LDUxICsxNjAs MTEgQEAgc3BlbF9oX3NodWZCOiAgIGRiICA0LCAgNSwgIDYsICA3LCAgNSwgIDYsICA3LCAgOCwg IDYsICA3LCAgOCwgIDksICA3LCAgOCwgIDksIDEKICVkZWZpbmUgc3BlbF9oX3NodWZBIChzcGVs X2hfcGVybTE2KyAwKQogJWRlZmluZSBzcGVsX2hfc2h1ZkMgKHNwZWxfaF9wZXJtMTYrMTYpCiAK LXZwOV9zcGVsX2ZpbHRlcl9yZWd1bGFyOiBkYiAgIDAsICAgMSwgIC01LCAxMjYsICAgOCwgIC0z LCAgIDEsICAgMAotICAgICAgICAgICAgICAgICAgICAgICAgIGRiICAtMSwgICAzLCAtMTAsIDEy MiwgIDE4LCAgLTYsICAgMiwgICAwCi0gICAgICAgICAgICAgICAgICAgICAgICAgZGIgIC0xLCAg IDQsIC0xMywgMTE4LCAgMjcsICAtOSwgICAzLCAgLTEKLSAgICAgICAgICAgICAgICAgICAgICAg ICBkYiAgLTEsICAgNCwgLTE2LCAxMTIsICAzNywgLTExLCAgIDQsICAtMQotICAgICAgICAgICAg ICAgICAgICAgICAgIGRiICAtMSwgICA1LCAtMTgsIDEwNSwgIDQ4LCAtMTQsICAgNCwgIC0xCi0g ICAgICAgICAgICAgICAgICAgICAgICAgZGIgIC0xLCAgIDUsIC0xOSwgIDk3LCAgNTgsIC0xNiwg ICA1LCAgLTEKLSAgICAgICAgICAgICAgICAgICAgICAgICBkYiAgLTEsICAgNiwgLTE5LCAgODgs ICA2OCwgLTE4LCAgIDUsICAtMQotICAgICAgICAgICAgICAgICAgICAgICAgIGRiICAtMSwgICA2 LCAtMTksICA3OCwgIDc4LCAtMTksICAgNiwgIC0xCi0gICAgICAgICAgICAgICAgICAgICAgICAg ZGIgIC0xLCAgIDUsIC0xOCwgIDY4LCAgODgsIC0xOSwgICA2LCAgLTEKLSAgICAgICAgICAgICAg ICAgICAgICAgICBkYiAgLTEsICAgNSwgLTE2LCAgNTgsICA5NywgLTE5LCAgIDUsICAtMQotICAg ICAgICAgICAgICAgICAgICAgICAgIGRiICAtMSwgICA0LCAtMTQsICA0OCwgMTA1LCAtMTgsICAg NSwgIC0xCi0gICAgICAgICAgICAgICAgICAgICAgICAgZGIgIC0xLCAgIDQsIC0xMSwgIDM3LCAx MTIsIC0xNiwgICA0LCAgLTEKLSAgICAgICAgICAgICAgICAgICAgICAgICBkYiAgLTEsICAgMywg IC05LCAgMjcsIDExOCwgLTEzLCAgIDQsICAtMQotICAgICAgICAgICAgICAgICAgICAgICAgIGRi ICAgMCwgICAyLCAgLTYsICAxOCwgMTIyLCAtMTAsICAgMywgIC0xCi0gICAgICAgICAgICAgICAg ICAgICAgICAgZGIgICAwLCAgIDEsICAtMywgICA4LCAxMjYsICAtNSwgICAxLCAgIDAKLXZwOV9z cGVsX2ZpbHRlcl9zaGFycDogICBkYiAgLTEsICAgMywgIC03LCAxMjcsICAgOCwgIC0zLCAgIDEs ICAgMAotICAgICAgICAgICAgICAgICAgICAgICAgIGRiICAtMiwgICA1LCAtMTMsIDEyNSwgIDE3 LCAgLTYsICAgMywgIC0xCi0gICAgICAgICAgICAgICAgICAgICAgICAgZGIgIC0zLCAgIDcsIC0x NywgMTIxLCAgMjcsIC0xMCwgICA1LCAgLTIKLSAgICAgICAgICAgICAgICAgICAgICAgICBkYiAg LTQsICAgOSwgLTIwLCAxMTUsICAzNywgLTEzLCAgIDYsICAtMgotICAgICAgICAgICAgICAgICAg ICAgICAgIGRiICAtNCwgIDEwLCAtMjMsIDEwOCwgIDQ4LCAtMTYsICAgOCwgIC0zCi0gICAgICAg ICAgICAgICAgICAgICAgICAgZGIgIC00LCAgMTAsIC0yNCwgMTAwLCAgNTksIC0xOSwgICA5LCAg LTMKLSAgICAgICAgICAgICAgICAgICAgICAgICBkYiAgLTQsICAxMSwgLTI0LCAgOTAsICA3MCwg LTIxLCAgMTAsICAtNAotICAgICAgICAgICAgICAgICAgICAgICAgIGRiICAtNCwgIDExLCAtMjMs ICA4MCwgIDgwLCAtMjMsICAxMSwgIC00Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZGIgIC00 LCAgMTAsIC0yMSwgIDcwLCAgOTAsIC0yNCwgIDExLCAgLTQKLSAgICAgICAgICAgICAgICAgICAg ICAgICBkYiAgLTMsICAgOSwgLTE5LCAgNTksIDEwMCwgLTI0LCAgMTAsICAtNAotICAgICAgICAg ICAgICAgICAgICAgICAgIGRiICAtMywgICA4LCAtMTYsICA0OCwgMTA4LCAtMjMsICAxMCwgIC00 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZGIgIC0yLCAgIDYsIC0xMywgIDM3LCAxMTUsIC0y MCwgICA5LCAgLTQKLSAgICAgICAgICAgICAgICAgICAgICAgICBkYiAgLTIsICAgNSwgLTEwLCAg MjcsIDEyMSwgLTE3LCAgIDcsICAtMwotICAgICAgICAgICAgICAgICAgICAgICAgIGRiICAtMSwg ICAzLCAgLTYsICAxNywgMTI1LCAtMTMsICAgNSwgIC0yCi0gICAgICAgICAgICAgICAgICAgICAg ICAgZGIgICAwLCAgIDEsICAtMywgICA4LCAxMjcsICAtNywgICAzLCAgLTEKLXZwOV9zcGVsX2Zp bHRlcl9zbW9vdGg6ICBkYiAgLTMsICAtMSwgIDMyLCAgNjQsICAzOCwgICAxLCAgLTMsICAgMAot ICAgICAgICAgICAgICAgICAgICAgICAgIGRiICAtMiwgIC0yLCAgMjksICA2MywgIDQxLCAgIDIs ICAtMywgICAwCi0gICAgICAgICAgICAgICAgICAgICAgICAgZGIgIC0yLCAgLTIsICAyNiwgIDYz LCAgNDMsICAgNCwgIC00LCAgIDAKLSAgICAgICAgICAgICAgICAgICAgICAgICBkYiAgLTIsICAt MywgIDI0LCAgNjIsICA0NiwgICA1LCAgLTQsICAgMAotICAgICAgICAgICAgICAgICAgICAgICAg IGRiICAtMiwgIC0zLCAgMjEsICA2MCwgIDQ5LCAgIDcsICAtNCwgICAwCi0gICAgICAgICAgICAg ICAgICAgICAgICAgZGIgIC0xLCAgLTQsICAxOCwgIDU5LCAgNTEsICAgOSwgIC00LCAgIDAKLSAg ICAgICAgICAgICAgICAgICAgICAgICBkYiAgLTEsICAtNCwgIDE2LCAgNTcsICA1MywgIDEyLCAg LTQsICAtMQotICAgICAgICAgICAgICAgICAgICAgICAgIGRiICAtMSwgIC00LCAgMTQsICA1NSwg IDU1LCAgMTQsICAtNCwgIC0xCi0gICAgICAgICAgICAgICAgICAgICAgICAgZGIgIC0xLCAgLTQs ICAxMiwgIDUzLCAgNTcsICAxNiwgIC00LCAgLTEKLSAgICAgICAgICAgICAgICAgICAgICAgICBk YiAgIDAsICAtNCwgICA5LCAgNTEsICA1OSwgIDE4LCAgLTQsICAtMQotICAgICAgICAgICAgICAg ICAgICAgICAgIGRiICAgMCwgIC00LCAgIDcsICA0OSwgIDYwLCAgMjEsICAtMywgIC0yCi0gICAg ICAgICAgICAgICAgICAgICAgICAgZGIgICAwLCAgLTQsICAgNSwgIDQ2LCAgNjIsICAyNCwgIC0z LCAgLTIKLSAgICAgICAgICAgICAgICAgICAgICAgICBkYiAgIDAsICAtNCwgICA0LCAgNDMsICA2 MywgIDI2LCAgLTIsICAtMgotICAgICAgICAgICAgICAgICAgICAgICAgIGRiICAgMCwgIC0zLCAg IDIsICA0MSwgIDYzLCAgMjksICAtMiwgIC0yCi0gICAgICAgICAgICAgICAgICAgICAgICAgZGIg ICAwLCAgLTMsICAgMSwgIDM4LCAgNjQsICAzMiwgIC0xLCAgLTMKKyVtYWNybyBGOF9BVlg1MTJf VEFQUyA4CitkYiAlMSwgJTIsICUzLCAlNCwgJTUsICU2LCAlNywgJTgKKyVlbmRtYWNybworJWRl ZmluZSBGOF9UQVBTIEY4X0FWWDUxMl9UQVBTCitGSUxURVIgdnA5X3NwZWxfZmlsdGVyCiAKIHBi XzAyNDYxMzU3OiAgICBkYiAgMCwgIDIsICA0LCAgNiwgIDEsICAzLCAgNSwgIDcKIHBkXzY0OiAg ICAgICAgICBkZCA2NAotLSAKMi41Mi4wCgoKRnJvbSBmZTlhOWM3ZTAwNjM1ZmE0MzMwZjdhMDIx YjE3OWQ5YzQ4Yjk1ZjI2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJo ZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogVHVlLCAyIERl YyAyMDI1IDE3OjEzOjMxICswMTAwClN1YmplY3Q6IFtQQVRDSCAyNTcvMzA0XSBhdmNvZGVjL3g4 Ni92cDltYzogUmVpbmRlbnQgYWZ0ZXIgdGhlIHByZXZpb3VzIGNvbW1pdAoKUmV2aWV3ZWQtYnk6 IFJvbmFsZCBTLiBCdWx0amUgPHJzYnVsdGplQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogQW5k cmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogbGli YXZjb2RlYy94ODYvdnA5bWMuYXNtIHwgOTYgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2L3ZwOW1jLmFzbSBiL2xpYmF2Y29kZWMv eDg2L3ZwOW1jLmFzbQppbmRleCAzNmU4MzY0M2E5Li4wZTZhYTYyN2RiIDEwMDY0NAotLS0gYS9s aWJhdmNvZGVjL3g4Ni92cDltYy5hc20KKysrIGIvbGliYXZjb2RlYy94ODYvdnA5bWMuYXNtCkBA IC01NCw2MyArNTQsNjMgQEAgdGltZXMgOCBkdyAlNywgJTgKICVlbmRtYWNybwogCiAlbWFjcm8g RklMVEVSIDAtMQotICAgICAgICAgICAgICAgICAgICA7IHNtb290aAogJWlmICUwID4gMAogJTEg JSsgX3Ntb290aDoKICVlbmRpZgotICAgICAgICAgICAgICAgICAgICBGOF9UQVBTIC0zLCAtMSwg IDMyLCAgNjQsICAzOCwgICAxLCAtMywgIDAKLSAgICAgICAgICAgICAgICAgICAgRjhfVEFQUyAt MiwgLTIsICAyOSwgIDYzLCAgNDEsICAgMiwgLTMsICAwCi0gICAgICAgICAgICAgICAgICAgIEY4 X1RBUFMgLTIsIC0yLCAgMjYsICA2MywgIDQzLCAgIDQsIC00LCAgMAotICAgICAgICAgICAgICAg ICAgICBGOF9UQVBTIC0yLCAtMywgIDI0LCAgNjIsICA0NiwgICA1LCAtNCwgIDAKLSAgICAgICAg ICAgICAgICAgICAgRjhfVEFQUyAtMiwgLTMsICAyMSwgIDYwLCAgNDksICAgNywgLTQsICAwCi0g ICAgICAgICAgICAgICAgICAgIEY4X1RBUFMgLTEsIC00LCAgMTgsICA1OSwgIDUxLCAgIDksIC00 LCAgMAotICAgICAgICAgICAgICAgICAgICBGOF9UQVBTIC0xLCAtNCwgIDE2LCAgNTcsICA1Mywg IDEyLCAtNCwgLTEKLSAgICAgICAgICAgICAgICAgICAgRjhfVEFQUyAtMSwgLTQsICAxNCwgIDU1 LCAgNTUsICAxNCwgLTQsIC0xCi0gICAgICAgICAgICAgICAgICAgIEY4X1RBUFMgLTEsIC00LCAg MTIsICA1MywgIDU3LCAgMTYsIC00LCAtMQotICAgICAgICAgICAgICAgICAgICBGOF9UQVBTICAw LCAtNCwgICA5LCAgNTEsICA1OSwgIDE4LCAtNCwgLTEKLSAgICAgICAgICAgICAgICAgICAgRjhf VEFQUyAgMCwgLTQsICAgNywgIDQ5LCAgNjAsICAyMSwgLTMsIC0yCi0gICAgICAgICAgICAgICAg ICAgIEY4X1RBUFMgIDAsIC00LCAgIDUsICA0NiwgIDYyLCAgMjQsIC0zLCAtMgotICAgICAgICAg ICAgICAgICAgICBGOF9UQVBTICAwLCAtNCwgICA0LCAgNDMsICA2MywgIDI2LCAtMiwgLTIKLSAg ICAgICAgICAgICAgICAgICAgRjhfVEFQUyAgMCwgLTMsICAgMiwgIDQxLCAgNjMsICAyOSwgLTIs IC0yCi0gICAgICAgICAgICAgICAgICAgIEY4X1RBUFMgIDAsIC0zLCAgIDEsICAzOCwgIDY0LCAg MzIsIC0xLCAtMwotICAgICAgICAgICAgICAgICAgICA7IHJlZ3VsYXIKKyAgICA7IHNtb290aAor ICAgIEY4X1RBUFMgLTMsIC0xLCAgMzIsICA2NCwgIDM4LCAgIDEsIC0zLCAgMAorICAgIEY4X1RB UFMgLTIsIC0yLCAgMjksICA2MywgIDQxLCAgIDIsIC0zLCAgMAorICAgIEY4X1RBUFMgLTIsIC0y LCAgMjYsICA2MywgIDQzLCAgIDQsIC00LCAgMAorICAgIEY4X1RBUFMgLTIsIC0zLCAgMjQsICA2 MiwgIDQ2LCAgIDUsIC00LCAgMAorICAgIEY4X1RBUFMgLTIsIC0zLCAgMjEsICA2MCwgIDQ5LCAg IDcsIC00LCAgMAorICAgIEY4X1RBUFMgLTEsIC00LCAgMTgsICA1OSwgIDUxLCAgIDksIC00LCAg MAorICAgIEY4X1RBUFMgLTEsIC00LCAgMTYsICA1NywgIDUzLCAgMTIsIC00LCAtMQorICAgIEY4 X1RBUFMgLTEsIC00LCAgMTQsICA1NSwgIDU1LCAgMTQsIC00LCAtMQorICAgIEY4X1RBUFMgLTEs IC00LCAgMTIsICA1MywgIDU3LCAgMTYsIC00LCAtMQorICAgIEY4X1RBUFMgIDAsIC00LCAgIDks ICA1MSwgIDU5LCAgMTgsIC00LCAtMQorICAgIEY4X1RBUFMgIDAsIC00LCAgIDcsICA0OSwgIDYw LCAgMjEsIC0zLCAtMgorICAgIEY4X1RBUFMgIDAsIC00LCAgIDUsICA0NiwgIDYyLCAgMjQsIC0z LCAtMgorICAgIEY4X1RBUFMgIDAsIC00LCAgIDQsICA0MywgIDYzLCAgMjYsIC0yLCAtMgorICAg IEY4X1RBUFMgIDAsIC0zLCAgIDIsICA0MSwgIDYzLCAgMjksIC0yLCAtMgorICAgIEY4X1RBUFMg IDAsIC0zLCAgIDEsICAzOCwgIDY0LCAgMzIsIC0xLCAtMwogJWlmICUwID4gMAogJTEgJSsgX3Jl Z3VsYXI6CiAlZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgRjhfVEFQUyAgMCwgIDEsICAtNSwg MTI2LCAgIDgsICAtMywgIDEsICAwCi0gICAgICAgICAgICAgICAgICAgIEY4X1RBUFMgLTEsICAz LCAtMTAsIDEyMiwgIDE4LCAgLTYsICAyLCAgMAotICAgICAgICAgICAgICAgICAgICBGOF9UQVBT IC0xLCAgNCwgLTEzLCAxMTgsICAyNywgIC05LCAgMywgLTEKLSAgICAgICAgICAgICAgICAgICAg RjhfVEFQUyAtMSwgIDQsIC0xNiwgMTEyLCAgMzcsIC0xMSwgIDQsIC0xCi0gICAgICAgICAgICAg ICAgICAgIEY4X1RBUFMgLTEsICA1LCAtMTgsIDEwNSwgIDQ4LCAtMTQsICA0LCAtMQotICAgICAg ICAgICAgICAgICAgICBGOF9UQVBTIC0xLCAgNSwgLTE5LCAgOTcsICA1OCwgLTE2LCAgNSwgLTEK LSAgICAgICAgICAgICAgICAgICAgRjhfVEFQUyAtMSwgIDYsIC0xOSwgIDg4LCAgNjgsIC0xOCwg IDUsIC0xCi0gICAgICAgICAgICAgICAgICAgIEY4X1RBUFMgLTEsICA2LCAtMTksICA3OCwgIDc4 LCAtMTksICA2LCAtMQotICAgICAgICAgICAgICAgICAgICBGOF9UQVBTIC0xLCAgNSwgLTE4LCAg NjgsICA4OCwgLTE5LCAgNiwgLTEKLSAgICAgICAgICAgICAgICAgICAgRjhfVEFQUyAtMSwgIDUs IC0xNiwgIDU4LCAgOTcsIC0xOSwgIDUsIC0xCi0gICAgICAgICAgICAgICAgICAgIEY4X1RBUFMg LTEsICA0LCAtMTQsICA0OCwgMTA1LCAtMTgsICA1LCAtMQotICAgICAgICAgICAgICAgICAgICBG OF9UQVBTIC0xLCAgNCwgLTExLCAgMzcsIDExMiwgLTE2LCAgNCwgLTEKLSAgICAgICAgICAgICAg ICAgICAgRjhfVEFQUyAtMSwgIDMsICAtOSwgIDI3LCAxMTgsIC0xMywgIDQsIC0xCi0gICAgICAg ICAgICAgICAgICAgIEY4X1RBUFMgIDAsICAyLCAgLTYsICAxOCwgMTIyLCAtMTAsICAzLCAtMQot ICAgICAgICAgICAgICAgICAgICBGOF9UQVBTICAwLCAgMSwgIC0zLCAgIDgsIDEyNiwgIC01LCAg MSwgIDAKLSAgICAgICAgICAgICAgICAgICAgOyBzaGFycAorICAgIDsgcmVndWxhcgorICAgIEY4 X1RBUFMgIDAsICAxLCAgLTUsIDEyNiwgICA4LCAgLTMsICAxLCAgMAorICAgIEY4X1RBUFMgLTEs ICAzLCAtMTAsIDEyMiwgIDE4LCAgLTYsICAyLCAgMAorICAgIEY4X1RBUFMgLTEsICA0LCAtMTMs IDExOCwgIDI3LCAgLTksICAzLCAtMQorICAgIEY4X1RBUFMgLTEsICA0LCAtMTYsIDExMiwgIDM3 LCAtMTEsICA0LCAtMQorICAgIEY4X1RBUFMgLTEsICA1LCAtMTgsIDEwNSwgIDQ4LCAtMTQsICA0 LCAtMQorICAgIEY4X1RBUFMgLTEsICA1LCAtMTksICA5NywgIDU4LCAtMTYsICA1LCAtMQorICAg IEY4X1RBUFMgLTEsICA2LCAtMTksICA4OCwgIDY4LCAtMTgsICA1LCAtMQorICAgIEY4X1RBUFMg LTEsICA2LCAtMTksICA3OCwgIDc4LCAtMTksICA2LCAtMQorICAgIEY4X1RBUFMgLTEsICA1LCAt MTgsICA2OCwgIDg4LCAtMTksICA2LCAtMQorICAgIEY4X1RBUFMgLTEsICA1LCAtMTYsICA1OCwg IDk3LCAtMTksICA1LCAtMQorICAgIEY4X1RBUFMgLTEsICA0LCAtMTQsICA0OCwgMTA1LCAtMTgs ICA1LCAtMQorICAgIEY4X1RBUFMgLTEsICA0LCAtMTEsICAzNywgMTEyLCAtMTYsICA0LCAtMQor ICAgIEY4X1RBUFMgLTEsICAzLCAgLTksICAyNywgMTE4LCAtMTMsICA0LCAtMQorICAgIEY4X1RB UFMgIDAsICAyLCAgLTYsICAxOCwgMTIyLCAtMTAsICAzLCAtMQorICAgIEY4X1RBUFMgIDAsICAx LCAgLTMsICAgOCwgMTI2LCAgLTUsICAxLCAgMAogJWlmICUwID4gMAogJTEgJSsgX3NoYXJwOgog JWVuZGlmCi0gICAgICAgICAgICAgICAgICAgIEY4X1RBUFMgLTEsICAzLCAgLTcsIDEyNywgICA4 LCAgLTMsICAxLCAgMAotICAgICAgICAgICAgICAgICAgICBGOF9UQVBTIC0yLCAgNSwgLTEzLCAx MjUsICAxNywgIC02LCAgMywgLTEKLSAgICAgICAgICAgICAgICAgICAgRjhfVEFQUyAtMywgIDcs IC0xNywgMTIxLCAgMjcsIC0xMCwgIDUsIC0yCi0gICAgICAgICAgICAgICAgICAgIEY4X1RBUFMg LTQsICA5LCAtMjAsIDExNSwgIDM3LCAtMTMsICA2LCAtMgotICAgICAgICAgICAgICAgICAgICBG OF9UQVBTIC00LCAxMCwgLTIzLCAxMDgsICA0OCwgLTE2LCAgOCwgLTMKLSAgICAgICAgICAgICAg ICAgICAgRjhfVEFQUyAtNCwgMTAsIC0yNCwgMTAwLCAgNTksIC0xOSwgIDksIC0zCi0gICAgICAg ICAgICAgICAgICAgIEY4X1RBUFMgLTQsIDExLCAtMjQsICA5MCwgIDcwLCAtMjEsIDEwLCAtNAot ICAgICAgICAgICAgICAgICAgICBGOF9UQVBTIC00LCAxMSwgLTIzLCAgODAsICA4MCwgLTIzLCAx MSwgLTQKLSAgICAgICAgICAgICAgICAgICAgRjhfVEFQUyAtNCwgMTAsIC0yMSwgIDcwLCAgOTAs IC0yNCwgMTEsIC00Ci0gICAgICAgICAgICAgICAgICAgIEY4X1RBUFMgLTMsICA5LCAtMTksICA1 OSwgMTAwLCAtMjQsIDEwLCAtNAotICAgICAgICAgICAgICAgICAgICBGOF9UQVBTIC0zLCAgOCwg LTE2LCAgNDgsIDEwOCwgLTIzLCAxMCwgLTQKLSAgICAgICAgICAgICAgICAgICAgRjhfVEFQUyAt MiwgIDYsIC0xMywgIDM3LCAxMTUsIC0yMCwgIDksIC00Ci0gICAgICAgICAgICAgICAgICAgIEY4 X1RBUFMgLTIsICA1LCAtMTAsICAyNywgMTIxLCAtMTcsICA3LCAtMwotICAgICAgICAgICAgICAg ICAgICBGOF9UQVBTIC0xLCAgMywgIC02LCAgMTcsIDEyNSwgLTEzLCAgNSwgLTIKLSAgICAgICAg ICAgICAgICAgICAgRjhfVEFQUyAgMCwgIDEsICAtMywgICA4LCAxMjcsICAtNywgIDMsIC0xCisg ICAgOyBzaGFycAorICAgIEY4X1RBUFMgLTEsICAzLCAgLTcsIDEyNywgICA4LCAgLTMsICAxLCAg MAorICAgIEY4X1RBUFMgLTIsICA1LCAtMTMsIDEyNSwgIDE3LCAgLTYsICAzLCAtMQorICAgIEY4 X1RBUFMgLTMsICA3LCAtMTcsIDEyMSwgIDI3LCAtMTAsICA1LCAtMgorICAgIEY4X1RBUFMgLTQs ICA5LCAtMjAsIDExNSwgIDM3LCAtMTMsICA2LCAtMgorICAgIEY4X1RBUFMgLTQsIDEwLCAtMjMs IDEwOCwgIDQ4LCAtMTYsICA4LCAtMworICAgIEY4X1RBUFMgLTQsIDEwLCAtMjQsIDEwMCwgIDU5 LCAtMTksICA5LCAtMworICAgIEY4X1RBUFMgLTQsIDExLCAtMjQsICA5MCwgIDcwLCAtMjEsIDEw LCAtNAorICAgIEY4X1RBUFMgLTQsIDExLCAtMjMsICA4MCwgIDgwLCAtMjMsIDExLCAtNAorICAg IEY4X1RBUFMgLTQsIDEwLCAtMjEsICA3MCwgIDkwLCAtMjQsIDExLCAtNAorICAgIEY4X1RBUFMg LTMsICA5LCAtMTksICA1OSwgMTAwLCAtMjQsIDEwLCAtNAorICAgIEY4X1RBUFMgLTMsICA4LCAt MTYsICA0OCwgMTA4LCAtMjMsIDEwLCAtNAorICAgIEY4X1RBUFMgLTIsICA2LCAtMTMsICAzNywg MTE1LCAtMjAsICA5LCAtNAorICAgIEY4X1RBUFMgLTIsICA1LCAtMTAsICAyNywgMTIxLCAtMTcs ICA3LCAtMworICAgIEY4X1RBUFMgLTEsICAzLCAgLTYsICAxNywgMTI1LCAtMTMsICA1LCAtMgor ICAgIEY4X1RBUFMgIDAsICAxLCAgLTMsICAgOCwgMTI3LCAgLTcsICAzLCAtMQogJWVuZG1hY3Jv CiAKICVkZWZpbmUgRjhfVEFQUyBGOF9TU1NFM19UQVBTCi0tIAoyLjUyLjAKCgpGcm9tIGM0YWUy OWIyZjMwY2QxYTY0M2M0Yjk3MmFhM2NiNjZiOWZlY2ZlNmQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IE5pa2xhcyBIYWFzIDxnaXRAaGFhc24uZGV2PgpEYXRlOiBNb24sIDggRGVjIDIw MjUgMTg6Mzg6MzYgKzAxMDAKU3ViamVjdDogW1BBVENIIDI1OC8zMDRdIHN3c2NhbGUvb3BzX29w dGltaXplcjogc2V0IGNvcnJlY3QgdmFsdWUgcmFuZ2UgZm9yCiBzdWJwaXhlbCByZWFkcwoKZS5n LiByZ2I0IG9ubHkgcmVhZHMgdmFsdWVzIHVwIHRvIDE1LCBub3QgMjU1LgoKU2V0dGluZyB0aGlz IGNvcnJlY3RseSBlbGltaW5hdGVzIGEgbnVtYmVyIG9mIHJlZHVuZGFudCBjbGFtcHMgaW4gY2Fz ZXMKbGlrZSBlLmcuIHJnYjQgLT4gbW9ub3cuCi0tLQogbGlic3dzY2FsZS9vcHNfb3B0aW1pemVy LmMgIHwgMiArLQogdGVzdHMvcmVmL2ZhdGUvc3dzLW9wcy1saXN0IHwgMiArLQogMiBmaWxlcyBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGli c3dzY2FsZS9vcHNfb3B0aW1pemVyLmMgYi9saWJzd3NjYWxlL29wc19vcHRpbWl6ZXIuYwppbmRl eCBiMTNlN2ViZGMxLi5mMTczZTFmNzhmIDEwMDY0NAotLS0gYS9saWJzd3NjYWxlL29wc19vcHRp bWl6ZXIuYworKysgYi9saWJzd3NjYWxlL29wc19vcHRpbWl6ZXIuYwpAQCAtOTcsNyArOTcsNyBA QCB2b2lkIGZmX3N3c19vcF9saXN0X3VwZGF0ZV9jb21wcyhTd3NPcExpc3QgKm9wcykKICAgICAg ICAgY2FzZSBTV1NfT1BfUkVBRDoKICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3At PnJ3LmVsZW1zOyBpKyspIHsKICAgICAgICAgICAgICAgICBpZiAoZmZfc3dzX3BpeGVsX3R5cGVf aXNfaW50KG9wLT50eXBlKSkgewotICAgICAgICAgICAgICAgICAgICBpbnQgYml0cyA9IDggKiBm Zl9zd3NfcGl4ZWxfdHlwZV9zaXplKG9wLT50eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgaW50 IGJpdHMgPSA4ICogZmZfc3dzX3BpeGVsX3R5cGVfc2l6ZShvcC0+dHlwZSkgPj4gb3AtPnJ3LmZy YWM7CiAgICAgICAgICAgICAgICAgICAgIGlmICghb3AtPnJ3LnBhY2tlZCAmJiBvcHMtPnNyYy5k ZXNjKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVc2UgbGVnYWwgdmFsdWUgcmFuZ2Ug ZnJvbSBwaXhkZXNjIGlmIGF2YWlsYWJsZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAqIHdl IGRvbid0IG5lZWQgdG8gZG8gdGhpcyBmb3IgcGFja2VkIGZvcm1hdHMgYmVjYXVzZQpkaWZmIC0t Z2l0IGEvdGVzdHMvcmVmL2ZhdGUvc3dzLW9wcy1saXN0IGIvdGVzdHMvcmVmL2ZhdGUvc3dzLW9w cy1saXN0CmluZGV4IGY3N2M2MGZkZTMuLjEzMmY2NmY0ZmMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3Jl Zi9mYXRlL3N3cy1vcHMtbGlzdAorKysgYi90ZXN0cy9yZWYvZmF0ZS9zd3Mtb3BzLWxpc3QKQEAg LTEgKzEgQEAKLWUxMjQ4NDdiYzY2NjNjYTUzOGI3ODRkZTE3YmY0MmYwCitlYWUzYTQ5YWMzYWY0 MmMxM2FkMjc0ODgzNjExYWMyMQotLSAKMi41Mi4wCgoKRnJvbSBmMDMzYzc5ZGYxNjM5YTM2MDNl YTJkMDRlODhhOTI4YTRmNzkxZDFhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWts YXMgSGFhcyA8Z2l0QGhhYXNuLmRldj4KRGF0ZTogTW9uLCA4IERlYyAyMDI1IDE4OjUzOjMzICsw MTAwClN1YmplY3Q6IFtQQVRDSCAyNTkvMzA0XSBzd3NjYWxlL29wczogY2xhcmlmeSBTd3NPcExp c3Quc3JjL2RzdCBzZW1hbnRpY3MKClR1cm5zIG91dCB0aGVzZSBhcmUgbm90LCBpbiBmYWN0LCBw dXJlbHkgaW5mb3JtYXRpdmUgLSBidXQgdGhlIG9wdGltaXplcgpjYW4gdGFrZSB0aGVtIGludG8g YWNjb3VudC4gVGhpcyBzaG91bGQgYmUgZG9jdW1lbnRlZCBwcm9wZXJseS4KCkkgdHJpZWQgdG8g dGhpbmsgb2YgYSB3YXkgdG8gYXZvaWQgbmVlZGluZyB0aGlzIGluIHRoZSBvcHRpbWl6ZXIsIGJ1 dCBhbnkKd2F5IEkgY291bGQgdGhpbmsgb2Ygd291bGQgcmVxdWlyZSBzaG92aW5nIHRoaXMgdG8g U3dzUmVhZFdyaXRlT3AsIHdoaWNoIEkKYW0gcGFydGljdWxhcmx5IHVud2lsbGluZyB0byBkby4K LS0tCiBsaWJzd3NjYWxlL29wcy5oIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYnN3c2NhbGUvb3BzLmggYi9s aWJzd3NjYWxlL29wcy5oCmluZGV4IGRjY2MwMGQyZjAuLjE0ZWRjNzc5NzggMTAwNjQ0Ci0tLSBh L2xpYnN3c2NhbGUvb3BzLmgKKysrIGIvbGlic3dzY2FsZS9vcHMuaApAQCAtMjA5LDggKzIwOSw4 IEBAIHR5cGVkZWYgc3RydWN0IFN3c09wTGlzdCB7CiAgICAgU3dzT3AgKm9wczsKICAgICBpbnQg bnVtX29wczsKIAotICAgIC8qIFB1cmVseSBpbmZvcm1hdGl2ZSBtZXRhZGF0YSBhc3NvY2lhdGVk IHdpdGggdGhpcyBvcGVyYXRpb24gbGlzdCAqLwotICAgIFN3c0Zvcm1hdCBzcmMsIGRzdDsKKyAg ICAvKiBNZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhpcyBvcGVyYXRpb24gbGlzdCAqLworICAg IFN3c0Zvcm1hdCBzcmMsIGRzdDsgLyogaWYgc2V0OyBtYXkgaW5mb3JtIHRoZSBvcHRpbWl6ZXIg YWJvdXQgZS5nIHZhbHVlIHJhbmdlcyAqLwogfSBTd3NPcExpc3Q7CiAKIFN3c09wTGlzdCAqZmZf c3dzX29wX2xpc3RfYWxsb2Modm9pZCk7Ci0tIAoyLjUyLjAKCgpGcm9tIDgxNzc0ZmFjMTI4MTkw MjA1NTVhYTQ4MzRlYmIxNWRjNDAxMTBiNzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 ID0/VVRGLTg/cT9NYXJ0aW49MjBTdG9yc2o9QzM9QjY/PSA8bWFydGluQG1hcnRpbi5zdD4KRGF0 ZTogTW9uLCA4IERlYyAyMDI1IDIyOjM1OjMzICswMjAwClN1YmplY3Q6IFtQQVRDSCAyNjAvMzA0 XSBzd3NjYWxlL3Rlc3RzOiBGaXggZmF0ZS1zd3Mtb3BzLWxpc3Qgb24gV2luZG93cwoKU2V0IHN0 ZG91dCB0byBiaW5hcnkgbW9kZSwgdG8gYXZvaWQgcGxhdGZvcm0gc3BlY2lmaWMgZGlmZmVyZW5j ZXMKaW4gdGhlIG91dHB1dCB0aGF0IGlzIGhhc2hlZC4KLS0tCiBsaWJzd3NjYWxlL3Rlc3RzL3N3 c19vcHMuYyB8IDkgKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvbGlic3dzY2FsZS90ZXN0cy9zd3Nfb3BzLmMgYi9saWJzd3NjYWxlL3Rlc3Rz L3N3c19vcHMuYwppbmRleCA4YmI0NGQ2MzRkLi4wNmZiODdlM2FlIDEwMDY0NAotLS0gYS9saWJz d3NjYWxlL3Rlc3RzL3N3c19vcHMuYworKysgYi9saWJzd3NjYWxlL3Rlc3RzL3N3c19vcHMuYwpA QCAtMjIsNiArMjIsMTEgQEAKICNpbmNsdWRlICJsaWJzd3NjYWxlL29wcy5oIgogI2luY2x1ZGUg ImxpYnN3c2NhbGUvZm9ybWF0LmgiCiAKKyNpZmRlZiBfV0lOMzIKKyNpbmNsdWRlIDxpby5oPgor I2luY2x1ZGUgPGZjbnRsLmg+CisjZW5kaWYKKwogc3RhdGljIGludCBydW5fdGVzdChTd3NDb250 ZXh0ICpjb25zdCBjdHgsIEFWRnJhbWUgKmZyYW1lLAogICAgICAgICAgICAgICAgICAgICBjb25z dCBBVlBpeEZtdERlc2NyaXB0b3IgKmNvbnN0IHNyY19kZXNjLAogICAgICAgICAgICAgICAgICAg ICBjb25zdCBBVlBpeEZtdERlc2NyaXB0b3IgKmNvbnN0IGRzdF9kZXNjKQpAQCAtNzMsNiArNzgs MTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogICAgIGludCByZXQgPSAx OwogCisjaWZkZWYgX1dJTjMyCisgICAgX3NldG1vZGUoX2ZpbGVubyhzdGRvdXQpLCBfT19CSU5B UlkpOworI2VuZGlmCisKICAgICBTd3NDb250ZXh0ICpjdHggPSBzd3NfYWxsb2NfY29udGV4dCgp OwogICAgIEFWRnJhbWUgKmZyYW1lID0gYXZfZnJhbWVfYWxsb2MoKTsKICAgICBpZiAoIWN0eCB8 fCAhZnJhbWUpCi0tIAoyLjUyLjAKCgpGcm9tIGQ2YjA3NTFkYjQ0MDQ2ODhlMWJjZmIwMGQzMTgz YTk4Y2ZiMmI5YmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9LYWNw ZXI9MjBNaWNoYWo9QzU9ODJvdz89IDxrYXNwZXI5M0BnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBE ZWMgMjAyNSAwMzozNjowNSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjYxLzMwNF0gYXZmaWx0ZXIv dmZfbmVpZ2hib3Jfb3BlbmNsOiBhZGQgZXJyb3IgY29uZGl0aW9uIHdoZW4KIGZpbHRlciBuYW1l IGRvZXNuJ3QgbWF0Y2gKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu OyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClRoaXMgY2Fu bm90IHJlYWxseSBoYXBwZW4sIGJ1dCB0byBzdXBwcmVzcyBjb21waWxlciB3YXJuaW5ncywgd2Ug Y2FuCmp1c3QgcmV0dXJuIEFWRVJST1JfQlVHIGhlcmUuCgpGaXhlczogd2FybmluZzogdmFyaWFi bGUgJ2tlcm5lbF9uYW1lJyBpcyB1c2VkIHVuaW5pdGlhbGl6ZWQgd2hlbmV2ZXIgJ2lmJyBjb25k aXRpb24gaXMgZmFsc2UgWy1Xc29tZXRpbWVzLXVuaW5pdGlhbGl6ZWRdClNpZ25lZC1vZmYtYnk6 IEthY3BlciBNaWNoYWrFgm93IDxrYXNwZXI5M0BnbWFpbC5jb20+Ci0tLQogbGliYXZmaWx0ZXIv dmZfbmVpZ2hib3Jfb3BlbmNsLmMgfCAzICsrKwogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKQoKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX25laWdoYm9yX29wZW5jbC5jIGIvbGli YXZmaWx0ZXIvdmZfbmVpZ2hib3Jfb3BlbmNsLmMKaW5kZXggMGI4ZDdmYzk5OC4uZWIzOWE1ZWM1 OSAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvdmZfbmVpZ2hib3Jfb3BlbmNsLmMKKysrIGIvbGli YXZmaWx0ZXIvdmZfbmVpZ2hib3Jfb3BlbmNsLmMKQEAgLTY5LDYgKzY5LDkgQEAgc3RhdGljIGlu dCBuZWlnaGJvcl9vcGVuY2xfaW5pdChBVkZpbHRlckNvbnRleHQgKmF2Y3R4KQogICAgICAgICBr ZXJuZWxfbmFtZSA9ICJlcm9zaW9uX2dsb2JhbCI7CiAgICAgfSBlbHNlIGlmICghc3RyY21wKGF2 Y3R4LT5maWx0ZXItPm5hbWUsICJkaWxhdGlvbl9vcGVuY2wiKSl7CiAgICAgICAgIGtlcm5lbF9u YW1lID0gImRpbGF0aW9uX2dsb2JhbCI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZXJyID0gQVZF UlJPUl9CVUc7CisgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAgICAgY3R4LT5rZXJuZWwgPSBj bENyZWF0ZUtlcm5lbChjdHgtPm9jZi5wcm9ncmFtLCBrZXJuZWxfbmFtZSwgJmNsZSk7CiAgICAg Q0xfRkFJTF9PTl9FUlJPUihBVkVSUk9SKEVJTyksICJGYWlsZWQgdG8gY3JlYXRlICIKLS0gCjIu NTIuMAoKCkZyb20gNDAyZjk1NGU4Nzc5YzllOTU1NGIxZGEyMGIxNDMyOTI3YTYwM2U1MyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0thY3Blcj0yME1pY2hhaj1DNT04 Mm93Pz0gPGthc3BlcjkzQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IERlYyAyMDI1IDAzOjM4OjU2 ICswMTAwClN1YmplY3Q6IFtQQVRDSCAyNjIvMzA0XSBhdmZpbHRlci92Zl9saWJvcGVuY3Y6IG1h a2Ugc3VyZSB0aGVyZSBpcyBzcGFjZSBmb3IKIG51bGwtdGVybWluYXRvciBpbiBzaGFwZV9zdHIK TUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04 CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCkZpeGVzOiB3YXJuaW5nOiAnc3NjYW5m JyBtYXkgb3ZlcmZsb3c7IGRlc3RpbmF0aW9uIGJ1ZmZlciBpbiBhcmd1bWVudCA3IGhhcyBzaXpl IDMyLCBidXQgdGhlIGNvcnJlc3BvbmRpbmcgc3BlY2lmaWVyIG1heSByZXF1aXJlIHNpemUgMzMg Wy1XZm9ydGlmeS1zb3VyY2VdClNpZ25lZC1vZmYtYnk6IEthY3BlciBNaWNoYWrFgm93IDxrYXNw ZXI5M0BnbWFpbC5jb20+Ci0tLQogbGliYXZmaWx0ZXIvdmZfbGlib3BlbmN2LmMgfCAyICstCiAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9saWJhdmZpbHRlci92Zl9saWJvcGVuY3YuYyBiL2xpYmF2ZmlsdGVyL3ZmX2xpYm9wZW5jdi5j CmluZGV4IGFlOGRkNDliMmMuLjhhODBhN2ZkYWIgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3Zm X2xpYm9wZW5jdi5jCisrKyBiL2xpYmF2ZmlsdGVyL3ZmX2xpYm9wZW5jdi5jCkBAIC0yMDUsNyAr MjA1LDcgQEAgc3RhdGljIGludCBwYXJzZV9pcGxjb252a2VybmVsKElwbENvbnZLZXJuZWwgKipr ZXJuZWwsIGNoYXIgKmJ1Ziwgdm9pZCAqbG9nX2N0eCkKICAgICBpbnQgY29scyA9IDAsIHJvd3Mg PSAwLCBhbmNob3JfeCA9IDAsIGFuY2hvcl95ID0gMCwgc2hhcGUgPSBDVl9TSEFQRV9SRUNUOwog ICAgIGludCAqdmFsdWVzID0gTlVMTCwgcmV0ID0gMDsKIAotICAgIHNzY2FuZihidWYsICIlZHgl ZCslZHglZC8lMzJbXj1dPSUxMjdzIiwgJmNvbHMsICZyb3dzLCAmYW5jaG9yX3gsICZhbmNob3Jf eSwgc2hhcGVfc3RyLCBzaGFwZV9maWxlbmFtZSk7CisgICAgc3NjYW5mKGJ1ZiwgIiVkeCVkKyVk eCVkLyUzMVtePV09JTEyN3MiLCAmY29scywgJnJvd3MsICZhbmNob3JfeCwgJmFuY2hvcl95LCBz aGFwZV9zdHIsIHNoYXBlX2ZpbGVuYW1lKTsKIAogICAgIGlmICAgICAgKCFzdHJjbXAoc2hhcGVf c3RyLCAicmVjdCIgICApKSBzaGFwZSA9IENWX1NIQVBFX1JFQ1Q7CiAgICAgZWxzZSBpZiAoIXN0 cmNtcChzaGFwZV9zdHIsICJjcm9zcyIgICkpIHNoYXBlID0gQ1ZfU0hBUEVfQ1JPU1M7Ci0tIAoy LjUyLjAKCgpGcm9tIDQxZmQ2OGNhZjBkNzRlZWRkMDQ1Yjg3YmVjNTYyNTY3YzlmZjhlMWYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9LYWNwZXI9MjBNaWNoYWo9QzU9 ODJvdz89IDxrYXNwZXI5M0BnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBEZWMgMjAyNSAwMzo0Mjoz NiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjYzLzMwNF0gYXZjb2RlYy9saWJhb21kZWM6IGFkZCBl eHBsaWNpdCBlbnVtIGNhc3QgdG8gc3VwcHJlc3MKIGNvbXBpbGVyIHdhcm5pbmdzCk1JTUUtVmVy c2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50 LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpTaWduZWQtb2ZmLWJ5OiBLYWNwZXIgTWljaGFqxYJv dyA8a2FzcGVyOTNAZ21haWwuY29tPgotLS0KIGxpYmF2Y29kZWMvbGliYW9tZGVjLmMgfCA2ICsr Ky0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9saWJhdmNvZGVjL2xpYmFvbWRlYy5jIGIvbGliYXZjb2RlYy9saWJhb21kZWMu YwppbmRleCBjZjU5ODZiYWY0Li45ZTljNGQxOGM1IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2xp YmFvbWRlYy5jCisrKyBiL2xpYmF2Y29kZWMvbGliYW9tZGVjLmMKQEAgLTcxLDkgKzcxLDkgQEAg c3RhdGljIGludCBzZXRfcGl4X2ZtdChBVkNvZGVjQ29udGV4dCAqYXZjdHgsIHN0cnVjdCBhb21f aW1hZ2UgKmltZykKICAgICAgICAgQVZDT0xfUkFOR0VfTVBFRywgQVZDT0xfUkFOR0VfSlBFRwog ICAgIH07CiAgICAgYXZjdHgtPmNvbG9yX3JhbmdlID0gY29sb3JfcmFuZ2VzW2ltZy0+cmFuZ2Vd OwotICAgIGF2Y3R4LT5jb2xvcl9wcmltYXJpZXMgPSBpbWctPmNwOwotICAgIGF2Y3R4LT5jb2xv cnNwYWNlICA9IGltZy0+bWM7Ci0gICAgYXZjdHgtPmNvbG9yX3RyYyAgID0gaW1nLT50YzsKKyAg ICBhdmN0eC0+Y29sb3JfcHJpbWFyaWVzID0gKGVudW0gQVZDb2xvclByaW1hcmllcylpbWctPmNw OworICAgIGF2Y3R4LT5jb2xvcnNwYWNlICA9IChlbnVtIEFWQ29sb3JTcGFjZSlpbWctPm1jOwor ICAgIGF2Y3R4LT5jb2xvcl90cmMgICA9IChlbnVtIEFWQ29sb3JUcmFuc2ZlckNoYXJhY3Rlcmlz dGljKWltZy0+dGM7CiAKICAgICBzd2l0Y2ggKGltZy0+Zm10KSB7CiAgICAgY2FzZSBBT01fSU1H X0ZNVF9JNDIwOgotLSAKMi41Mi4wCgoKRnJvbSAxNWUyMmVlZDk0MzU5YzY5YWU3ZjFjOGViYTZi ZDI2Mzg4YTkxMWIyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/S2Fj cGVyPTIwTWljaGFqPUM1PTgyb3c/PSA8a2FzcGVyOTNAZ21haWwuY29tPgpEYXRlOiBNb24sIDgg RGVjIDIwMjUgMDM6NDg6MDggKzAxMDAKU3ViamVjdDogW1BBVENIIDI2NC8zMDRdIGF2Y29kZWMv bGlic3Z0YXYxOiBhZGQgZXhwbGljaXQgZW51bSBjYXN0IHRvIHN1cHByZXNzCiBjb21waWxlciB3 YXJuaW5ncwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKU2lnbmVkLW9mZi1ieTog S2FjcGVyIE1pY2hhasWCb3cgPGthc3BlcjkzQGdtYWlsLmNvbT4KLS0tCiBsaWJhdmNvZGVjL2xp YnN2dGF2MS5jIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwg NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2xpYnN2dGF2MS5jIGIvbGli YXZjb2RlYy9saWJzdnRhdjEuYwppbmRleCAwZTNlNzQ4YjhkLi43MDQ3YjcyNDIyIDEwMDY0NAot LS0gYS9saWJhdmNvZGVjL2xpYnN2dGF2MS5jCisrKyBiL2xpYmF2Y29kZWMvbGlic3Z0YXYxLmMK QEAgLTI0MSwxMCArMjQxLDEwIEBAIHN0YXRpYyBpbnQgY29uZmlnX2VuY19wYXJhbXMoRWJTdnRB djFFbmNDb25maWd1cmF0aW9uICpwYXJhbSwKICAgICB9CiAKICAgICBkZXNjID0gYXZfcGl4X2Zt dF9kZXNjX2dldChhdmN0eC0+cGl4X2ZtdCk7Ci0gICAgcGFyYW0tPmNvbG9yX3ByaW1hcmllcyAg ICAgICAgICA9IGF2Y3R4LT5jb2xvcl9wcmltYXJpZXM7Ci0gICAgcGFyYW0tPm1hdHJpeF9jb2Vm ZmljaWVudHMgICAgICA9IChkZXNjLT5mbGFncyAmIEFWX1BJWF9GTVRfRkxBR19SR0IpID8KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZDT0xfU1BDX1JHQiA6IGF2Y3R4 LT5jb2xvcnNwYWNlOwotICAgIHBhcmFtLT50cmFuc2Zlcl9jaGFyYWN0ZXJpc3RpY3MgPSBhdmN0 eC0+Y29sb3JfdHJjOworICAgIHBhcmFtLT5jb2xvcl9wcmltYXJpZXMgICAgICAgICAgPSAoZW51 bSBFYkNvbG9yUHJpbWFyaWVzKWF2Y3R4LT5jb2xvcl9wcmltYXJpZXM7CisgICAgcGFyYW0tPm1h dHJpeF9jb2VmZmljaWVudHMgICAgICA9IChlbnVtIEViTWF0cml4Q29lZmZpY2llbnRzKSgoZGVz Yy0+ZmxhZ3MgJiBBVl9QSVhfRk1UX0ZMQUdfUkdCKSA/CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFWQ09MX1NQQ19SR0IgOiBhdmN0eC0+Y29sb3JzcGFjZSk7CisgICAg cGFyYW0tPnRyYW5zZmVyX2NoYXJhY3RlcmlzdGljcyA9IChlbnVtIEViVHJhbnNmZXJDaGFyYWN0 ZXJpc3RpY3MpYXZjdHgtPmNvbG9yX3RyYzsKIAogICAgIGlmIChhdmN0eC0+Y29sb3JfcmFuZ2Ug IT0gQVZDT0xfUkFOR0VfVU5TUEVDSUZJRUQpCiAgICAgICAgIHBhcmFtLT5jb2xvcl9yYW5nZSA9 IGF2Y3R4LT5jb2xvcl9yYW5nZSA9PSBBVkNPTF9SQU5HRV9KUEVHOwotLSAKMi41Mi4wCgoKRnJv bSAzZjQ2YTMwOWJlYmZlMDQ5MTI5N2JhNWJmN2NmYzU0YjE1NWNiYjhmIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/S2FjcGVyPTIwTWljaGFqPUM1PTgyb3c/PSA8a2Fz cGVyOTNAZ21haWwuY29tPgpEYXRlOiBNb24sIDggRGVjIDIwMjUgMDM6NTM6MTAgKzAxMDAKU3Vi amVjdDogW1BBVENIIDI2NS8zMDRdIGF2Y29kZWMvbGlieDI2NTogYWRkIGV4cGxpY2l0IGVudW0g Y2FzdCB0byBzdXBwcmVzcwogY29tcGlsZXIgd2FybmluZ3MKTUlNRS1WZXJzaW9uOiAxLjAKQ29u dGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5j b2Rpbmc6IDhiaXQKClNpZ25lZC1vZmYtYnk6IEthY3BlciBNaWNoYWrFgm93IDxrYXNwZXI5M0Bn bWFpbC5jb20+Ci0tLQogbGliYXZjb2RlYy9saWJ4MjY1LmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZj b2RlYy9saWJ4MjY1LmMgYi9saWJhdmNvZGVjL2xpYngyNjUuYwppbmRleCAyYjgzYTkxZDAwLi4z NDE4NjhlN2NkIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2xpYngyNjUuYworKysgYi9saWJhdmNv ZGVjL2xpYngyNjUuYwpAQCAtNzcwLDcgKzc3MCw3IEBAIHN0YXRpYyBpbnQgbGlieDI2NV9lbmNv ZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVlBhY2tldCAqcGt0LAogICAgICAgICAg ICAgICAgIHNlaV9wYXlsb2FkID0gJnNlaS0+cGF5bG9hZHNbc2VpLT5udW1QYXlsb2Fkc107CiAg ICAgICAgICAgICAgICAgc2VpX3BheWxvYWQtPnBheWxvYWQgPSBzZWlfZGF0YTsKICAgICAgICAg ICAgICAgICBzZWlfcGF5bG9hZC0+cGF5bG9hZFNpemUgPSBzZWlfc2l6ZTsKLSAgICAgICAgICAg ICAgICBzZWlfcGF5bG9hZC0+cGF5bG9hZFR5cGUgPSBTRUlfVFlQRV9VU0VSX0RBVEFfUkVHSVNU RVJFRF9JVFVfVF9UMzU7CisgICAgICAgICAgICAgICAgc2VpX3BheWxvYWQtPnBheWxvYWRUeXBl ID0gKFNFSVBheWxvYWRUeXBlKVNFSV9UWVBFX1VTRVJfREFUQV9SRUdJU1RFUkVEX0lUVV9UX1Qz NTsKICAgICAgICAgICAgICAgICBzZWktPm51bVBheWxvYWRzKys7CiAgICAgICAgICAgICB9CiAg ICAgICAgIH0KQEAgLTgwMSw3ICs4MDEsNyBAQCBzdGF0aWMgaW50IGxpYngyNjVfZW5jb2RlX2Zy YW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZQYWNrZXQgKnBrdCwKICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgc2VpX3BheWxvYWQtPnBheWxvYWRTaXplID0gc2lkZV9kYXRh LT5zaXplOwogICAgICAgICAgICAgICAgIC8qIEVxdWFsIHRvIGxpYngyNjUgVVNFUl9EQVRBX1VO UkVHSVNURVJFRCAqLwotICAgICAgICAgICAgICAgIHNlaV9wYXlsb2FkLT5wYXlsb2FkVHlwZSA9 IFNFSV9UWVBFX1VTRVJfREFUQV9VTlJFR0lTVEVSRUQ7CisgICAgICAgICAgICAgICAgc2VpX3Bh eWxvYWQtPnBheWxvYWRUeXBlID0gKFNFSVBheWxvYWRUeXBlKVNFSV9UWVBFX1VTRVJfREFUQV9V TlJFR0lTVEVSRUQ7CiAgICAgICAgICAgICAgICAgc2VpLT5udW1QYXlsb2FkcysrOwogICAgICAg ICAgICAgfQogICAgICAgICB9Ci0tIAoyLjUyLjAKCgpGcm9tIDVkODFhMGE1YjZkNTQzODE1OWFj ZTU3MjllN2RhOTNkNWRjYjhkZGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRG LTg/cT9LYWNwZXI9MjBNaWNoYWo9QzU9ODJvdz89IDxrYXNwZXI5M0BnbWFpbC5jb20+CkRhdGU6 IE1vbiwgOCBEZWMgMjAyNSAwMzo1NzoyNSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjY2LzMwNF0g c3dyZXNhbXBsZS9zb3hyX3Jlc2FtcGxlOiBwYXNzIGluaXRpYWxpemVkIGRhdGEgdG8KIHNveHJf cHJvY2VzcygpIGluIGZsdXNoKCkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClNp Z25lZC1vZmYtYnk6IEthY3BlciBNaWNoYWrFgm93IDxrYXNwZXI5M0BnbWFpbC5jb20+Ci0tLQog bGlic3dyZXNhbXBsZS9zb3hyX3Jlc2FtcGxlLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9saWJzd3Jlc2FtcGxlL3Nv eHJfcmVzYW1wbGUuYyBiL2xpYnN3cmVzYW1wbGUvc294cl9yZXNhbXBsZS5jCmluZGV4IGNjNWI0 ZGI1ZDQuLmI3MWVjZTYxZjggMTAwNjQ0Ci0tLSBhL2xpYnN3cmVzYW1wbGUvc294cl9yZXNhbXBs ZS5jCisrKyBiL2xpYnN3cmVzYW1wbGUvc294cl9yZXNhbXBsZS5jCkBAIC03Miw3ICs3Miw3IEBA IHN0YXRpYyBpbnQgZmx1c2goc3RydWN0IFN3ckNvbnRleHQgKnMpewogICAgIHNveHJfcHJvY2Vz cygoc294cl90KXMtPnJlc2FtcGxlLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCAwLCBOVUxMKTsKIAog ICAgIHsKLSAgICAgICAgZmxvYXQgZjsKKyAgICAgICAgZmxvYXQgZiA9IDA7CiAgICAgICAgIHNp emVfdCBpZG9uZSwgb2RvbmU7CiAgICAgICAgIHNveHJfcHJvY2Vzcygoc294cl90KXMtPnJlc2Ft cGxlLCAmZiwgMCwgJmlkb25lLCAmZiwgMCwgJm9kb25lKTsKICAgICAgICAgcy0+ZGVsYXllZF9z YW1wbGVzX2ZpeHVwIC09IHNveHJfZGVsYXkoKHNveHJfdClzLT5yZXNhbXBsZSk7Ci0tIAoyLjUy LjAKCgpGcm9tIDNlMGIxMzg5NGE3OWUxYzk4NWFlNjhiNWFiODk5NmRmNWFiOWJhYTcgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9LYWNwZXI9MjBNaWNoYWo9QzU9ODJv dz89IDxrYXNwZXI5M0BnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBEZWMgMjAyNSAwNDowMjoxOSAr MDEwMApTdWJqZWN0OiBbUEFUQ0ggMjY3LzMwNF0gYXZ1dGlsL2h3Y29udGV4dF92YWFwaTogbWFy ayB0cnlfYWxsIHdpdGggYXZfdW51c2VkCiB0byBzdXBwcmVzIHdhcm5pbmcKTUlNRS1WZXJzaW9u OiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJh bnNmZXItRW5jb2Rpbmc6IDhiaXQKCkZpeGVzOiB3YXJuaW5nOiB2YXJpYWJsZSAndHJ5X2FsbCcg c2V0IGJ1dCBub3QgdXNlZCBbLVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZV0KU2lnbmVkLW9mZi1i eTogS2FjcGVyIE1pY2hhasWCb3cgPGthc3BlcjkzQGdtYWlsLmNvbT4KLS0tCiBsaWJhdnV0aWwv aHdjb250ZXh0X3ZhYXBpLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9saWJhdnV0aWwvaHdjb250ZXh0X3ZhYXBpLmMg Yi9saWJhdnV0aWwvaHdjb250ZXh0X3ZhYXBpLmMKaW5kZXggNGYzNTAyNzk3Yi4uOTgxMzBmOWZi MSAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL2h3Y29udGV4dF92YWFwaS5jCisrKyBiL2xpYmF2dXRp bC9od2NvbnRleHRfdmFhcGkuYwpAQCAtMTcxNSw3ICsxNzE1LDcgQEAgc3RhdGljIGludCB2YWFw aV9kZXZpY2VfY3JlYXRlKEFWSFdEZXZpY2VDb250ZXh0ICpjdHgsIGNvbnN0IGNoYXIgKmRldmlj ZSwKICAgICBWQUFQSURldmljZVByaXYgKnByaXY7CiAgICAgVkFEaXNwbGF5IGRpc3BsYXkgPSBO VUxMOwogICAgIGNvbnN0IEFWRGljdGlvbmFyeUVudHJ5ICplbnQ7Ci0gICAgaW50IHRyeV9kcm0s IHRyeV94MTEsIHRyeV93aW4zMiwgdHJ5X2FsbDsKKyAgICBpbnQgdHJ5X2RybSwgdHJ5X3gxMSwg dHJ5X3dpbjMyLCB0cnlfYWxsIGF2X3VudXNlZDsKIAogICAgIHByaXYgPSBhdl9tYWxsb2N6KHNp emVvZigqcHJpdikpOwogICAgIGlmICghcHJpdikKLS0gCjIuNTIuMAoKCkZyb20gZWU3Mzk1NGEw YTU3MWM5MDAxMjJiMTNkOTZlZTI2ZTAwODMzODAwYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogPT9VVEYtOD9xP0thY3Blcj0yME1pY2hhaj1DNT04Mm93Pz0gPGthc3BlcjkzQGdtYWls LmNvbT4KRGF0ZTogTW9uLCA4IERlYyAyMDI1IDIwOjQ5OjU5ICswMTAwClN1YmplY3Q6IFtQQVRD SCAyNjgvMzA0XSBhdmNvZGVjL2QzZDEydmFfZW5jb2RlX2F2MTogcmVtb3ZlIHVudXNlZCB2YXJp YWJsZXMKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0 PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClNpZ25lZC1vZmYtYnk6IEth Y3BlciBNaWNoYWrFgm93IDxrYXNwZXI5M0BnbWFpbC5jb20+Ci0tLQogbGliYXZjb2RlYy9kM2Qx MnZhX2VuY29kZV9hdjEuYyB8IDMgLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2QzZDEydmFfZW5jb2RlX2F2MS5jIGIvbGliYXZjb2Rl Yy9kM2QxMnZhX2VuY29kZV9hdjEuYwppbmRleCAzMWQzZGYzM2JkLi5kOThjYmVmZWNhIDEwMDY0 NAotLS0gYS9saWJhdmNvZGVjL2QzZDEydmFfZW5jb2RlX2F2MS5jCisrKyBiL2xpYmF2Y29kZWMv ZDNkMTJ2YV9lbmNvZGVfYXYxLmMKQEAgLTM0Niw4ICszNDYsNiBAQCBmYWlsOgogc3RhdGljIGlu dCBkM2QxMnZhX2VuY29kZV9hdjFfZ2V0X2J1ZmZlcl9zaXplKEFWQ29kZWNDb250ZXh0ICphdmN0 eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEM0QxMlZB RW5jb2RlUGljdHVyZSAqcGljLCBzaXplX3QgKnNpemUpCiB7Ci0gICAgRDNEMTJWQUVuY29kZUNv bnRleHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqY3R4ID0gYXZjdHgtPnBy aXZfZGF0YTsKLSAgICBEM0QxMl9WSURFT19FTkNPREVSX09VVFBVVF9NRVRBREFUQSAgICAgICAg ICAgICAgICAgICAgKm1ldGEgPSBOVUxMOwogICAgIEQzRDEyX1ZJREVPX0VOQ09ERVJfRlJBTUVf U1VCUkVHSU9OX01FVEFEQVRBICpzdWJyZWdpb25fbWV0YSA9IE5VTEw7CiAgICAgdWludDhfdCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpkYXRhID0gTlVM TDsKICAgICBIUkVTVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaHIgPSBTX09LOwpAQCAtMzgzLDcgKzM4MSw2IEBAIHN0YXRpYyBpbnQgZDNkMTJ2 YV9lbmNvZGVfYXYxX2dldF9jb2RlZF9kYXRhKEFWQ29kZWNDb250ZXh0ICphdmN0eCwKICAgICBz aXplX3QgICAgYXYxX3BpY19oZF9zaXplID0gMDsKICAgICBpbnQgdGlsZV9ncm91cF9leHRyYV9z aXplID0gMDsKICAgICBzaXplX3QgICAgICAgICAgICBiaXRfbGVuID0gMDsKLSAgICBEM0QxMlZB RW5jb2RlQ29udGV4dCAqY3R4ID0gYXZjdHgtPnByaXZfZGF0YTsKIAogICAgIGNoYXIgcGljX2hk X2RhdGFbTUFYX1BBUkFNX0JVRkZFUl9TSVpFXSA9IHsgMCB9OwogCi0tIAoyLjUyLjAKCgpGcm9t IGE4NGE1ZTdhYjIyM2FhNjFhYWI2Y2FkMDFkOWQ0OThmMzUzYzkxMzIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9LYWNwZXI9MjBNaWNoYWo9QzU9ODJvdz89IDxrYXNw ZXI5M0BnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBEZWMgMjAyNSAyMDo1MDoyMSArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMjY5LzMwNF0gYXZjb2RlYy9kM2QxMnZhX2VuY29kZV9hdjE6IGZpeCBzaXpl X3QgZm9ybWF0CiBzcGVjaWZpZXIKCi0tLQogbGliYXZjb2RlYy9kM2QxMnZhX2VuY29kZV9hdjEu YyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvZDNkMTJ2YV9lbmNvZGVfYXYxLmMgYi9saWJhdmNvZGVj L2QzZDEydmFfZW5jb2RlX2F2MS5jCmluZGV4IGQ5OGNiZWZlY2EuLjc2MmUxYzc5ODcgMTAwNjQ0 Ci0tLSBhL2xpYmF2Y29kZWMvZDNkMTJ2YV9lbmNvZGVfYXYxLmMKKysrIGIvbGliYXZjb2RlYy9k M2QxMnZhX2VuY29kZV9hdjEuYwpAQCAtNDI1LDcgKzQyNSw3IEBAIHN0YXRpYyBpbnQgZDNkMTJ2 YV9lbmNvZGVfYXYxX2dldF9jb2RlZF9kYXRhKEFWQ29kZWNDb250ZXh0ICphdmN0eCwKICAgICBt ZW1jcHkocHRyLCBwaWNfaGRfZGF0YSwgYXYxX3BpY19oZF9zaXplKTsKICAgICBwdHIgKz0gYXYx X3BpY19oZF9zaXplOwogICAgIHRvdGFsX3NpemUgLT0gYXYxX3BpY19oZF9zaXplOwotICAgIGF2 X2xvZyhhdmN0eCwgQVZfTE9HX0RFQlVHLCAiQVYxIHRvdGFsX3NpemUgYWZ0ZXIgd3JpdGUgcGlj dHVyZSBoZWFkZXI6ICVkLlxuIiwgdG90YWxfc2l6ZSk7CisgICAgYXZfbG9nKGF2Y3R4LCBBVl9M T0dfREVCVUcsICJBVjEgdG90YWxfc2l6ZSBhZnRlciB3cml0ZSBwaWN0dXJlIGhlYWRlcjogJXp1 LlxuIiwgdG90YWxfc2l6ZSk7CiAKICAgICB0b3RhbF9zaXplIC09IHRpbGVfZ3JvdXBfZXh0cmFf c2l6ZTsKICAgICBlcnIgPSBkM2QxMnZhX2VuY29kZV9hdjFfd3JpdGVfdGlsZV9ncm91cChhdmN0 eCwgbWFwcGVkX2RhdGEsIHRvdGFsX3NpemUsIHB0ciwgJmJpdF9sZW4pOwotLSAKMi41Mi4wCgoK RnJvbSA1MDhlZDc2ZDg3NzM2YmNiOWRkNWZiYzIyMmYyYjBjZWM0ZTJkNGY0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/S2FjcGVyPTIwTWljaGFqPUM1PTgyb3c/PSA8 a2FzcGVyOTNAZ21haWwuY29tPgpEYXRlOiBNb24sIDggRGVjIDIwMjUgMjA6NTA6NDIgKzAxMDAK U3ViamVjdDogW1BBVENIIDI3MC8zMDRdIGF2Y29kZWMvZDNkMTJ2YV9lbmNvZGVfYXYxOiBkb24n dCBpZ25vcmUgcmV0dXJuIHZhbHVlCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4 dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpT aWduZWQtb2ZmLWJ5OiBLYWNwZXIgTWljaGFqxYJvdyA8a2FzcGVyOTNAZ21haWwuY29tPgotLS0K IGxpYmF2Y29kZWMvZDNkMTJ2YV9lbmNvZGVfYXYxLmMgfCA0ICstLS0KIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVj L2QzZDEydmFfZW5jb2RlX2F2MS5jIGIvbGliYXZjb2RlYy9kM2QxMnZhX2VuY29kZV9hdjEuYwpp bmRleCA3NjJlMWM3OTg3Li5jZjE5NTk3ZjBkIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2QzZDEy dmFfZW5jb2RlX2F2MS5jCisrKyBiL2xpYmF2Y29kZWMvZDNkMTJ2YV9lbmNvZGVfYXYxLmMKQEAg LTk5Miw5ICs5OTIsNyBAQCBzdGF0aWMgaW50IGQzZDEydmFfZW5jb2RlX2F2MV9pbml0X3BpY3R1 cmVfcGFyYW1zKEFWQ29kZWNDb250ZXh0ICphdmN0eCwKICAgICAgICAgICAgIGQzZDEydmFfcGlj LT5waWNfY3RsLnBBVjFQaWNEYXRhLT5SZWZlcmVuY2VJbmRpY2VzW2ldID0gZmgtPnJlZl9mcmFt ZV9pZHhbaV07CiAgICAgfQogCi0gICAgaW50IHJldCA9IGF2X2ZpZm9fd3JpdGUocHJpdi0+cGlj dHVyZV9oZWFkZXJfbGlzdCwgJnByaXYtPnVuaXRzLnJhd19mcmFtZV9oZWFkZXIsIDEpOwotCi0g ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGF2X2ZpZm9fd3JpdGUocHJpdi0+cGljdHVyZV9oZWFk ZXJfbGlzdCwgJnByaXYtPnVuaXRzLnJhd19mcmFtZV9oZWFkZXIsIDEpOwogfQogCiAKLS0gCjIu NTIuMAoKCkZyb20gN2JkNTNmYmNhODRkZjc3NmE4OWRlZjhiZjJmYzBjNGNjNGUxMWE0MSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFtZXMgQWxtZXIgPGphbXJpYWxAZ21haWwuY29t PgpEYXRlOiBNb24sIDggRGVjIDIwMjUgMjA6MDc6MTkgLTAzMDAKU3ViamVjdDogW1BBVENIIDI3 MS8zMDRdIGF2Zm9ybWF0L2NiczogYWRkIG1pc3NpbmcgbGljZW5zZSBoZWFkZXJzCgpTaWduZWQt b2ZmLWJ5OiBKYW1lcyBBbG1lciA8amFtcmlhbEBnbWFpbC5jb20+Ci0tLQogbGliYXZmb3JtYXQv Y2JzLmMgICAgIHwgMTggKysrKysrKysrKysrKysrKysrCiBsaWJhdmZvcm1hdC9jYnNfYXB2LmMg fCAxOCArKysrKysrKysrKysrKysrKysKIGxpYmF2Zm9ybWF0L2Nic19hdjEuYyB8IDE4ICsrKysr KysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvbGliYXZmb3JtYXQvY2JzLmMgYi9saWJhdmZvcm1hdC9jYnMuYwppbmRleCA3NDhkMjk4 YTQwLi5jNzEyMjBlMzM4IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9jYnMuYworKysgYi9saWJh dmZvcm1hdC9jYnMuYwpAQCAtMSwyICsxLDIwIEBACisvKgorICogVGhpcyBmaWxlIGlzIHBhcnQg b2YgRkZtcGVnLgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExp Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZt cGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIEZG bXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwg SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0x MzAxIFVTQQorICovCisKICNpbmNsdWRlICJjYnMuaCIKICNpbmNsdWRlICJsaWJhdmNvZGVjL2Ni cy5jIgpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvY2JzX2Fwdi5jIGIvbGliYXZmb3JtYXQvY2Jz X2Fwdi5jCmluZGV4IDE0NWU1ZDA5YmIuLjNmNmRmNWVkMDUgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9y bWF0L2Nic19hcHYuYworKysgYi9saWJhdmZvcm1hdC9jYnNfYXB2LmMKQEAgLTEsMiArMSwyMCBA QAorLyoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KKyAqCisgKiBGRm1wZWcgaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIKKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy ZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm dGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCiAjaW5jbHVkZSAiY2Jz LmgiCiAjaW5jbHVkZSAibGliYXZjb2RlYy9jYnNfYXB2LmMiCmRpZmYgLS1naXQgYS9saWJhdmZv cm1hdC9jYnNfYXYxLmMgYi9saWJhdmZvcm1hdC9jYnNfYXYxLmMKaW5kZXggMzA2MTgzMjk2Ny4u ZWZhZWQ3ZGZkMCAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvY2JzX2F2MS5jCisrKyBiL2xpYmF2 Zm9ybWF0L2Nic19hdjEuYwpAQCAtMSwzICsxLDIxIEBACisvKgorICogVGhpcyBmaWxlIGlzIHBh cnQgb2YgRkZtcGVnLgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhl IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog RkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRo IEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlv biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjEx MC0xMzAxIFVTQQorICovCisKICNkZWZpbmUgQ0JTX0FWMV9PQlVfVElMRV9MSVNUIDAKICNkZWZp bmUgQ0JTX0FWMV9PQlVfTUVUQURBVEEgMAogI2RlZmluZSBDQlNfQVYxX09CVV9QQURESU5HIDAK LS0gCjIuNTIuMAoKCkZyb20gYzg2ODg4NzM1YjMzOTJmMDQyMWRiOWZjODkyODUyYjdkOTIxNjE5 MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2FtZXJvbiBHdXRtYW4gPGFpY29tbWFu ZGVyQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA3IERlYyAyMDI1IDEzOjUxOjA1IC0wNjAwClN1Ympl Y3Q6IFtQQVRDSCAyNzIvMzA0XSBod2NvbnRleHRfdnVsa2FuOiBhZGQgQVBJcyB0byBnZXQgb3B0 aW9uYWwgZXh0ZW5zaW9ucwoKVGhlc2UgcHJvdmlkZSBhIHdheSBmb3IgYXBwcyB0aGF0IGluaXRp YWxpemUgVnVsa2FuIHRoZW1zZWx2ZXMgdG8ga25vdwp3aGljaCBleHRlbnNpb25zIHdlIG1heSBi ZSBhYmxlIHRvIHVzZSB3aXRob3V0IGhhdmluZyB0byBoYXJkY29kZSBpdC4KClNpZ25lZC1vZmYt Ynk6IENhbWVyb24gR3V0bWFuIDxhaWNvbW1hbmRlckBnbWFpbC5jb20+Ci0tLQogZG9jL0FQSWNo YW5nZXMgICAgICAgICAgICAgICB8ICA0ICsrKysKIGxpYmF2dXRpbC9od2NvbnRleHRfdnVsa2Fu LmMgfCAyOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBsaWJhdnV0aWwvaHdjb250ZXh0 X3Z1bGthbi5oIHwgMTggKysrKysrKysrKysrKysrKysrCiBsaWJhdnV0aWwvdmVyc2lvbi5oICAg ICAgICAgIHwgIDQgKystLQogNCBmaWxlcyBjaGFuZ2VkLCA1MiBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9BUEljaGFuZ2VzIGIvZG9jL0FQSWNoYW5nZXMK aW5kZXggNzQ0YzUyZmYyOS4uZTY3MGEwOGNmOSAxMDA2NDQKLS0tIGEvZG9jL0FQSWNoYW5nZXMK KysrIGIvZG9jL0FQSWNoYW5nZXMKQEAgLTIsNiArMiwxMCBAQCBUaGUgbGFzdCB2ZXJzaW9uIGlu Y3JlYXNlcyBvZiBhbGwgbGlicmFyaWVzIHdlcmUgb24gMjAyNS0wMy0yOAogCiBBUEkgY2hhbmdl cywgbW9zdCByZWNlbnQgZmlyc3Q6CiAKKzIwMjUtMTIteHggLSB4eHh4eHh4eHh4IC0gbGF2dSA2 MC4yMC4xMDAgLSBod2NvbnRleHRfdnVsa2FuLmgKKyAgQWRkIGF2X3ZrX2dldF9vcHRpb25hbF9p bnN0YW5jZV9leHRlbnNpb25zKCkuCisgIEFkZCBhdl92a19nZXRfb3B0aW9uYWxfZGV2aWNlX2V4 dGVuc2lvbnMoKS4KKwogMjAyNS0xMi14eCAtIHh4eHh4eHh4eHggLSBsYXZjIDYyLjIyLjEwMSAt IGF2Y29kZWMuaAogICBBZGQgYXZjb2RlY19yZWNlaXZlX2ZyYW1lX2ZsYWdzKCkuCiAgIEFkZCBB Vl9DT0RFQ19SRUNFSVZFX0ZSQU1FX0ZMQUdfU1lOQ0hST05PVVMuCmRpZmYgLS1naXQgYS9saWJh dnV0aWwvaHdjb250ZXh0X3Z1bGthbi5jIGIvbGliYXZ1dGlsL2h3Y29udGV4dF92dWxrYW4uYwpp bmRleCBhMTIwZTYxODVjLi45ZGZjYjUwM2MxIDEwMDY0NAotLS0gYS9saWJhdnV0aWwvaHdjb250 ZXh0X3Z1bGthbi5jCisrKyBiL2xpYmF2dXRpbC9od2NvbnRleHRfdnVsa2FuLmMKQEAgLTY5Myw2 ICs2OTMsMzQgQEAgc3RhdGljIGNvbnN0IFZ1bGthbk9wdEV4dGVuc2lvbiBvcHRpb25hbF9kZXZp Y2VfZXh0c1tdID0gewogICAgIHsgVktfS0hSX1ZJREVPX0RFQ09ERV9BVjFfRVhURU5TSU9OX05B TUUsICAgICAgICAgICAgICAgICBGRl9WS19FWFRfVklERU9fREVDT0RFX0FWMSAgICAgICB9LAog fTsKIAorY29uc3QgY2hhciAqKmF2X3ZrX2dldF9vcHRpb25hbF9pbnN0YW5jZV9leHRlbnNpb25z KGludCAqY291bnQpCit7CisgICAgY29uc3QgY2hhciAqKmV4dHMgPSBhdl9tYWxsb2NfYXJyYXko c2l6ZW9mKCpleHRzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG Rl9BUlJBWV9FTEVNUyhvcHRpb25hbF9pbnN0YW5jZV9leHRzKSk7CisgICAgaWYgKCFleHRzKQor ICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgRkZfQVJSQVlf RUxFTVMob3B0aW9uYWxfaW5zdGFuY2VfZXh0cyk7IGkrKykKKyAgICAgICAgZXh0c1tpXSA9IG9w dGlvbmFsX2luc3RhbmNlX2V4dHNbaV0ubmFtZTsKKworICAgICpjb3VudCA9IEZGX0FSUkFZX0VM RU1TKG9wdGlvbmFsX2luc3RhbmNlX2V4dHMpOworICAgIHJldHVybiBleHRzOworfQorCitjb25z dCBjaGFyICoqYXZfdmtfZ2V0X29wdGlvbmFsX2RldmljZV9leHRlbnNpb25zKGludCAqY291bnQp Cit7CisgICAgY29uc3QgY2hhciAqKmV4dHMgPSBhdl9tYWxsb2NfYXJyYXkoc2l6ZW9mKCpleHRz KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGRl9BUlJBWV9FTEVN UyhvcHRpb25hbF9kZXZpY2VfZXh0cykpOworICAgIGlmICghZXh0cykKKyAgICAgICAgcmV0dXJu IE5VTEw7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IEZGX0FSUkFZX0VMRU1TKG9wdGlvbmFs X2RldmljZV9leHRzKTsgaSsrKQorICAgICAgICBleHRzW2ldID0gb3B0aW9uYWxfZGV2aWNlX2V4 dHNbaV0ubmFtZTsKKworICAgICpjb3VudCA9IEZGX0FSUkFZX0VMRU1TKG9wdGlvbmFsX2Rldmlj ZV9leHRzKTsKKyAgICByZXR1cm4gZXh0czsKK30KKwogc3RhdGljIFZrQm9vbDMyIFZLQVBJX0NB TEwgdmtfZGJnX2NhbGxiYWNrKFZrRGVidWdVdGlsc01lc3NhZ2VTZXZlcml0eUZsYWdCaXRzRVhU IHNldmVyaXR5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZr RGVidWdVdGlsc01lc3NhZ2VUeXBlRmxhZ3NFWFQgbWVzc2FnZVR5cGUsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmtEZWJ1Z1V0aWxzTWVzc2VuZ2Vy Q2FsbGJhY2tEYXRhRVhUICpkYXRhLApkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL2h3Y29udGV4dF92 dWxrYW4uaCBiL2xpYmF2dXRpbC9od2NvbnRleHRfdnVsa2FuLmgKaW5kZXggMGJiNTM2YWIzZi4u NzdkNTMyODliNCAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL2h3Y29udGV4dF92dWxrYW4uaAorKysg Yi9saWJhdnV0aWwvaHdjb250ZXh0X3Z1bGthbi5oCkBAIC05Nyw2ICs5Nyw4IEBAIHR5cGVkZWYg c3RydWN0IEFWVnVsa2FuRGV2aWNlQ29udGV4dCB7CiAgICAgICogZWFjaCBlbnRyeSBjb250YWlu aW5nIHRoZSBzcGVjaWZpZWQgVnVsa2FuIGV4dGVuc2lvbiBzdHJpbmcgdG8gZW5hYmxlLgogICAg ICAqIER1cGxpY2F0ZXMgYXJlIHBvc3NpYmxlIGFuZCBhY2NlcHRlZC4KICAgICAgKiBJZiBubyBl eHRlbnNpb25zIGFyZSBlbmFibGVkLCBzZXQgdGhlc2UgZmllbGRzIHRvIE5VTEwsIGFuZCAwIHJl c3BlY3RpdmVseS4KKyAgICAgKiBhdl92a19nZXRfb3B0aW9uYWxfaW5zdGFuY2VfZXh0ZW5zaW9u cygpIGNhbiBiZSB1c2VkIHRvIGVudW1lcmF0ZSBleHRlbnNpb25zCisgICAgICogdGhhdCBGRm1w ZWcgbWF5IHVzZSBpZiBlbmFibGVkLgogICAgICAqLwogICAgIGNvbnN0IGNoYXIgKiBjb25zdCAq ZW5hYmxlZF9pbnN0X2V4dGVuc2lvbnM7CiAgICAgaW50IG5iX2VuYWJsZWRfaW5zdF9leHRlbnNp b25zOwpAQCAtMTA4LDYgKzExMCw4IEBAIHR5cGVkZWYgc3RydWN0IEFWVnVsa2FuRGV2aWNlQ29u dGV4dCB7CiAgICAgICogSWYgc3VwcGx5aW5nIHlvdXIgb3duIGRldmljZSBjb250ZXh0LCB0aGVz ZSBmaWVsZHMgdGFrZXMgdGhlIHNhbWUgZm9ybWF0IGFzCiAgICAgICogdGhlIGFib3ZlIGZpZWxk cywgd2l0aCB0aGUgc2FtZSBjb25kaXRpb25zIHRoYXQgZHVwbGljYXRlcyBhcmUgcG9zc2libGUK ICAgICAgKiBhbmQgYWNjZXB0ZWQsIGFuZCB0aGF0IE5VTEwgYW5kIDAgcmVzcGVjdGl2ZWx5IG1l YW5zIG5vIGV4dGVuc2lvbnMgYXJlIGVuYWJsZWQuCisgICAgICogYXZfdmtfZ2V0X29wdGlvbmFs X2RldmljZV9leHRlbnNpb25zKCkgY2FuIGJlIHVzZWQgdG8gZW51bWVyYXRlIGV4dGVuc2lvbnMK KyAgICAgKiB0aGF0IEZGbXBlZyBtYXkgdXNlIGlmIGVuYWJsZWQuCiAgICAgICovCiAgICAgY29u c3QgY2hhciAqIGNvbnN0ICplbmFibGVkX2Rldl9leHRlbnNpb25zOwogICAgIGludCBuYl9lbmFi bGVkX2Rldl9leHRlbnNpb25zOwpAQCAtMzc1LDQgKzM3OSwxOCBAQCBBVlZrRnJhbWUgKmF2X3Zr X2ZyYW1lX2FsbG9jKHZvaWQpOwogICovCiBjb25zdCBWa0Zvcm1hdCAqYXZfdmtmbXRfZnJvbV9w aXhmbXQoZW51bSBBVlBpeGVsRm9ybWF0IHApOwogCisvKioKKyAqIFJldHVybnMgYW4gYXJyYXkg b2Ygb3B0aW9uYWwgVnVsa2FuIGluc3RhbmNlIGV4dGVuc2lvbnMgdGhhdCBGRm1wZWcKKyAqIG1h eSB1c2UgaWYgZW5hYmxlZC4KKyAqIEBub3RlIE11c3QgYmUgZnJlZWQgdmlhIGF2X2ZyZWUoKQor ICovCitjb25zdCBjaGFyICoqYXZfdmtfZ2V0X29wdGlvbmFsX2luc3RhbmNlX2V4dGVuc2lvbnMo aW50ICpjb3VudCk7CisKKy8qKgorICogUmV0dXJucyBhbiBhcnJheSBvZiBvcHRpb25hbCBWdWxr YW4gZGV2aWNlIGV4dGVuc2lvbnMgdGhhdCBGRm1wZWcKKyAqIG1heSB1c2UgaWYgZW5hYmxlZC4K KyAqIEBub3RlIE11c3QgYmUgZnJlZWQgdmlhIGF2X2ZyZWUoKQorICovCitjb25zdCBjaGFyICoq YXZfdmtfZ2V0X29wdGlvbmFsX2RldmljZV9leHRlbnNpb25zKGludCAqY291bnQpOworCiAjZW5k aWYgLyogQVZVVElMX0hXQ09OVEVYVF9WVUxLQU5fSCAqLwpkaWZmIC0tZ2l0IGEvbGliYXZ1dGls L3ZlcnNpb24uaCBiL2xpYmF2dXRpbC92ZXJzaW9uLmgKaW5kZXggZDA1OGU5NDQyNS4uZmU3NmFm ZmI0MSAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL3ZlcnNpb24uaAorKysgYi9saWJhdnV0aWwvdmVy c2lvbi5oCkBAIC03OSw4ICs3OSw4IEBACiAgKi8KIAogI2RlZmluZSBMSUJBVlVUSUxfVkVSU0lP Tl9NQUpPUiAgNjAKLSNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fTUlOT1IgIDE5Ci0jZGVmaW5l IExJQkFWVVRJTF9WRVJTSU9OX01JQ1JPIDEwMQorI2RlZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9N SU5PUiAgMjAKKyNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fTUlDUk8gMTAwCiAKICNkZWZpbmUg TElCQVZVVElMX1ZFUlNJT05fSU5UICAgQVZfVkVSU0lPTl9JTlQoTElCQVZVVElMX1ZFUlNJT05f TUFKT1IsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TElCQVZVVElMX1ZFUlNJT05fTUlOT1IsIFwKLS0gCjIuNTIuMAoKCkZyb20gYjgzOTZlMThkNTM1 YmQ5NDE2NTk2NjcwMDI4ZjRmNWFiYzhiNzQ4ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogQ2FtZXJvbiBHdXRtYW4gPGFpY29tbWFuZGVyQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA3IERl YyAyMDI1IDEzOjU3OjQyIC0wNjAwClN1YmplY3Q6IFtQQVRDSCAyNzMvMzA0XSBmZnRvb2xzL2Zm cGxheV9yZW5kZXJlcjogdXNlIG5ldyBWdWxrYW4gZXh0ZW5zaW9uIEFQSQoKU2lnbmVkLW9mZi1i eTogQ2FtZXJvbiBHdXRtYW4gPGFpY29tbWFuZGVyQGdtYWlsLmNvbT4KLS0tCiBmZnRvb2xzL2Zm cGxheV9yZW5kZXJlci5jIHwgNDEgKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9mZnRvb2xzL2ZmcGxheV9yZW5kZXJlci5jIGIvZmZ0b29scy9mZnBsYXlfcmVu ZGVyZXIuYwppbmRleCA2OTljZDZlY2QwLi4xMzIxNDUyYWQ4IDEwMDY0NAotLS0gYS9mZnRvb2xz L2ZmcGxheV9yZW5kZXJlci5jCisrKyBiL2ZmdG9vbHMvZmZwbGF5X3JlbmRlcmVyLmMKQEAgLTEw NCwzNiArMTA0LDYgQEAgc3RhdGljIHZvaWQgdmtfbG9nX2NiKHZvaWQgKmxvZ19wcml2LCBlbnVt IHBsX2xvZ19sZXZlbCBsZXZlbCwKICAgICAgICAgYXZfbG9nKGxvZ19wcml2LCBsZXZlbF9tYXBb bGV2ZWxdLCAiJXNcbiIsIG1zZyk7CiB9CiAKLS8vIFNob3VsZCBrZWVwIHN5bmMgd2l0aCBvcHRp b25hbF9kZXZpY2VfZXh0cyBpbnNpZGUgaHdjb250ZXh0X3Z1bGthbi5jCi1zdGF0aWMgY29uc3Qg Y2hhciAqb3B0aW9uYWxfZGV2aWNlX2V4dHNbXSA9IHsKLSAgICAvKiBNaXNjIG9yIHJlcXVpcmVk IGJ5IG90aGVyIGV4dGVuc2lvbnMgKi8KLSAgICBWS19LSFJfUE9SVEFCSUxJVFlfU1VCU0VUX0VY VEVOU0lPTl9OQU1FLAotICAgIFZLX0tIUl9QVVNIX0RFU0NSSVBUT1JfRVhURU5TSU9OX05BTUUs Ci0gICAgVktfS0hSX1NBTVBMRVJfWUNCQ1JfQ09OVkVSU0lPTl9FWFRFTlNJT05fTkFNRSwKLSAg ICBWS19FWFRfREVTQ1JJUFRPUl9CVUZGRVJfRVhURU5TSU9OX05BTUUsCi0gICAgVktfRVhUX1BI WVNJQ0FMX0RFVklDRV9EUk1fRVhURU5TSU9OX05BTUUsCi0gICAgVktfRVhUX1NIQURFUl9BVE9N SUNfRkxPQVRfRVhURU5TSU9OX05BTUUsCi0gICAgVktfS0hSX0NPT1BFUkFUSVZFX01BVFJJWF9F WFRFTlNJT05fTkFNRSwKLQotICAgIC8qIEltcG9ydHMvZXhwb3J0cyAqLwotICAgIFZLX0tIUl9F WFRFUk5BTF9NRU1PUllfRkRfRVhURU5TSU9OX05BTUUsCi0gICAgVktfRVhUX0VYVEVSTkFMX01F TU9SWV9ETUFfQlVGX0VYVEVOU0lPTl9OQU1FLAotICAgIFZLX0VYVF9JTUFHRV9EUk1fRk9STUFU X01PRElGSUVSX0VYVEVOU0lPTl9OQU1FLAotICAgIFZLX0tIUl9FWFRFUk5BTF9TRU1BUEhPUkVf RkRfRVhURU5TSU9OX05BTUUsCi0gICAgVktfRVhUX0VYVEVSTkFMX01FTU9SWV9IT1NUX0VYVEVO U0lPTl9OQU1FLAotI2lmZGVmIF9XSU4zMgotICAgIFZLX0tIUl9FWFRFUk5BTF9NRU1PUllfV0lO MzJfRVhURU5TSU9OX05BTUUsCi0gICAgVktfS0hSX0VYVEVSTkFMX1NFTUFQSE9SRV9XSU4zMl9F WFRFTlNJT05fTkFNRSwKLSNlbmRpZgotCi0gICAgLyogVmlkZW8gZW5jb2RpbmcvZGVjb2Rpbmcg Ki8KLSAgICBWS19LSFJfVklERU9fUVVFVUVfRVhURU5TSU9OX05BTUUsCi0gICAgVktfS0hSX1ZJ REVPX0RFQ09ERV9RVUVVRV9FWFRFTlNJT05fTkFNRSwKLSAgICBWS19LSFJfVklERU9fREVDT0RF X0gyNjRfRVhURU5TSU9OX05BTUUsCi0gICAgVktfS0hSX1ZJREVPX0RFQ09ERV9IMjY1X0VYVEVO U0lPTl9OQU1FLAotICAgICJWS19NRVNBX3ZpZGVvX2RlY29kZV9hdjEiLAotfTsKLQogc3RhdGlj IGlubGluZSBpbnQgZW5hYmxlX2RlYnVnKGNvbnN0IEFWRGljdGlvbmFyeSAqb3B0KQogewogICAg IEFWRGljdGlvbmFyeUVudHJ5ICplbnRyeSA9IGF2X2RpY3RfZ2V0KG9wdCwgImRlYnVnIiwgTlVM TCwgMCk7CkBAIC0zNzQsNiArMzQ0LDggQEAgc3RhdGljIGludCBjcmVhdGVfdmtfYnlfcGxhY2Vi byhWa1JlbmRlcmVyICpyZW5kZXJlciwKICAgICBpbnQgZGVjb2RlX2luZGV4OwogICAgIGludCBk ZWNvZGVfY291bnQ7CiAgICAgaW50IHJldDsKKyAgICBjb25zdCBjaGFyICoqZGV2X2V4dHM7Cisg ICAgaW50IG51bV9kZXZfZXh0czsKIAogICAgIGN0eC0+Z2V0X3Byb2NfYWRkciA9IFNETF9WdWxr YW5fR2V0VmtHZXRJbnN0YW5jZVByb2NBZGRyKCk7CiAKQEAgLTM4OCwxNiArMzYwLDIxIEBAIHN0 YXRpYyBpbnQgY3JlYXRlX3ZrX2J5X3BsYWNlYm8oVmtSZW5kZXJlciAqcmVuZGVyZXIsCiAgICAg fQogICAgIGN0eC0+aW5zdCA9IGN0eC0+cGxhY2Vib19pbnN0YW5jZS0+aW5zdGFuY2U7CiAKKyAg ICBkZXZfZXh0cyA9IGF2X3ZrX2dldF9vcHRpb25hbF9kZXZpY2VfZXh0ZW5zaW9ucygmbnVtX2Rl dl9leHRzKTsKKyAgICBpZiAoIWRldl9leHRzKQorICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9N RU0pOworCiAgICAgY3R4LT5wbGFjZWJvX3Z1bGthbiA9IHBsX3Z1bGthbl9jcmVhdGUoY3R4LT52 a19sb2csIHBsX3Z1bGthbl9wYXJhbXMoCiAgICAgICAgICAgICAuaW5zdGFuY2UgPSBjdHgtPnBs YWNlYm9faW5zdGFuY2UtPmluc3RhbmNlLAogICAgICAgICAgICAgLmdldF9wcm9jX2FkZHIgPSBj dHgtPnBsYWNlYm9faW5zdGFuY2UtPmdldF9wcm9jX2FkZHIsCiAgICAgICAgICAgICAuc3VyZmFj ZSA9IGN0eC0+dmtfc3VyZmFjZSwKICAgICAgICAgICAgIC5hbGxvd19zb2Z0d2FyZSA9IGZhbHNl LAotICAgICAgICAgICAgLm9wdF9leHRlbnNpb25zID0gb3B0aW9uYWxfZGV2aWNlX2V4dHMsCi0g ICAgICAgICAgICAubnVtX29wdF9leHRlbnNpb25zID0gRkZfQVJSQVlfRUxFTVMob3B0aW9uYWxf ZGV2aWNlX2V4dHMpLAorICAgICAgICAgICAgLm9wdF9leHRlbnNpb25zID0gZGV2X2V4dHMsCisg ICAgICAgICAgICAubnVtX29wdF9leHRlbnNpb25zID0gbnVtX2Rldl9leHRzLAogICAgICAgICAg ICAgLmV4dHJhX3F1ZXVlcyA9IFZLX1FVRVVFX1ZJREVPX0RFQ09ERV9CSVRfS0hSLAogICAgICAg ICAgICAgLmRldmljZV9uYW1lID0gc2VsZWN0X2RldmljZShvcHQpLAogICAgICkpOworICAgIGF2 X2ZyZWUoZGV2X2V4dHMpOwogICAgIGlmICghY3R4LT5wbGFjZWJvX3Z1bGthbikKICAgICAgICAg cmV0dXJuIEFWRVJST1JfRVhURVJOQUw7CiAgICAgY3R4LT5od19kZXZpY2VfcmVmID0gYXZfaHdk ZXZpY2VfY3R4X2FsbG9jKEFWX0hXREVWSUNFX1RZUEVfVlVMS0FOKTsKLS0gCjIuNTIuMAoKCkZy b20gOWM5YmRlOTQ0ODk1OTIxZjgzYzE0YjQzN2ZjNGYzYmFkZTIwZmVjNyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRA b3V0bG9vay5jb20+CkRhdGU6IFR1ZSwgOSBEZWMgMjAyNSAwMDoyMToyNSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMjc0LzMwNF0gdGVzdHMvcmVmL2ZhdGUvc291cmNlOiBGaXggZmF0ZS1zb3VyY2Ug YWZ0ZXIgbGFzdAogY29tbWl0CgpCcm9rZW4gaW4gYWM5NTUyYmViZjk3MDFlZGFiYThkZWY5MWYw MDNmNzFhNjYyMzUwNC4KClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVh cy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIHRlc3RzL3JlZi9mYXRlL3NvdXJjZSB8IDMg LS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90ZXN0cy9y ZWYvZmF0ZS9zb3VyY2UgYi90ZXN0cy9yZWYvZmF0ZS9zb3VyY2UKaW5kZXggNTRhZjcyYzAwOC4u NzhkM2EyZTBmYSAxMDA2NDQKLS0tIGEvdGVzdHMvcmVmL2ZhdGUvc291cmNlCisrKyBiL3Rlc3Rz L3JlZi9mYXRlL3NvdXJjZQpAQCAtMTAsOSArMTAsNiBAQCBsaWJhdmRldmljZS9yaXNjdi9jcHVf Y29tbW9uLmMKIGxpYmF2ZmlsdGVyL2ZpbGVfb3Blbi5jCiBsaWJhdmZpbHRlci9sb2cyX3RhYi5j CiBsaWJhdmZpbHRlci9yaXNjdi9jcHVfY29tbW9uLmMKLWxpYmF2Zm9ybWF0L2Nicy5jCi1saWJh dmZvcm1hdC9jYnNfYXB2LmMKLWxpYmF2Zm9ybWF0L2Nic19hdjEuYwogbGliYXZmb3JtYXQvZmls ZV9vcGVuLmMKIGxpYmF2Zm9ybWF0L2dvbG9tYl90YWIuYwogbGliYXZmb3JtYXQvbG9nMl90YWIu YwotLSAKMi41Mi4wCgoKRnJvbSAzYTRiZGU2YzNjMDkzYzlkY2E0MTE5YzBkMmMwNTg4ZDJiZThk NTFlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQgPGFu ZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogU3VuLCA3IERlYyAyMDI1IDE2OjU4 OjQxICswMTAwClN1YmplY3Q6IFtQQVRDSCAyNzUvMzA0XSB0ZXN0cy9jaGVja2FzbS9jaGVja2Fz bTogRG9uJ3QgdGVzdCAzZG5vdwoKVGhlIGxhc3QgM2Rub3cgZnVuY3Rpb25zIGhhdmUgYmVlbiBy ZW1vdmVkIGluIGNvbW1pdAo1ZWY2MTNiY2IwNTA4ZjE2YmQ1YjE5MDE2ODE4MzMyNjM5MWRlOWIw LCBzbyBkb24ndCB0ZXN0Cml0IGluIGNoZWNrYXNtLgoKKFRoaXMgd2lsbCBhZmZlY3Qgb25seSBv bmUgdGVzdCwgbmFtZWx5IHNjYWxhcnByb2R1Y3RfYW5kX21hZGRfaW50MTYKZnJvbSBsb3NzbGVz c19hdWRpb2RzcDogSXQgZG9lcyBub3QgdXNlIGFuIFNTU0UzIGZ1bmN0aW9uIHdoZW4KdGhlIDNk bm93IGZsYWcgaXMgc2V0LiBTbyBmb3Igb2xkIEFNRHMgKHdoaWNoIGFkdmVydGlzZSBzdXBwb3J0 IGZvcgozZG5vdyksIHNhaWQgU1NTRTMgZnVuY3Rpb24gaXMgbmV2ZXIgdGVzdGVkLiBOb3cgaXQg d2lsbC4pCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5o YXJkdEBvdXRsb29rLmNvbT4KLS0tCiB0ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jIHwgMiAtLQog MSBmaWxlIGNoYW5nZWQsIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2th c20vY2hlY2thc20uYyBiL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMKaW5kZXggNmUwNjZkNDY5 YS4uMTRmYWY3MTI3NSAxMDA2NDQKLS0tIGEvdGVzdHMvY2hlY2thc20vY2hlY2thc20uYworKysg Yi90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jCkBAIC0zOTAsOCArMzkwLDYgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCB7CiAjZWxpZiBBUkNIX1g4NgogICAgIHsgIk1NWCIsICAgICAgICAibW14Iiwg ICAgICAgQVZfQ1BVX0ZMQUdfTU1YfEFWX0NQVV9GTEFHX0NNT1YgfSwKICAgICB7ICJNTVhFWFQi LCAgICAgIm1teGV4dCIsICAgIEFWX0NQVV9GTEFHX01NWEVYVCB9LAotICAgIHsgIjNETk9XIiwg ICAgICAiM2Rub3ciLCAgICAgQVZfQ1BVX0ZMQUdfM0ROT1cgfSwKLSAgICB7ICIzRE5PV0VYVCIs ICAgIjNkbm93ZXh0IiwgIEFWX0NQVV9GTEFHXzNETk9XRVhUIH0sCiAgICAgeyAiU1NFIiwgICAg ICAgICJzc2UiLCAgICAgICBBVl9DUFVfRkxBR19TU0UgfSwKICAgICB7ICJTU0UyIiwgICAgICAg InNzZTIiLCAgICAgIEFWX0NQVV9GTEFHX1NTRTJ8QVZfQ1BVX0ZMQUdfU1NFMlNMT1cgfSwKICAg ICB7ICJTU0UzIiwgICAgICAgInNzZTMiLCAgICAgIEFWX0NQVV9GTEFHX1NTRTN8QVZfQ1BVX0ZM QUdfU1NFM1NMT1cgfSwKLS0gCjIuNTIuMAoKCkZyb20gZDM3YTkxMGM4Njk1ZTcxMWE5OTMxNDdj ZGY1Y2QxNDkyZjBlYTExOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR3lhbiBEb3No aSA8ZmZtcGVnQGd5YW5pLnBybz4KRGF0ZTogVHVlLCA5IERlYyAyMDI1IDEwOjIyOjM2ICswNTMw ClN1YmplY3Q6IFtQQVRDSCAyNzYvMzA0XSBkb2MvaHRtbHhyZWYuY25mOiBhZGQgZHJhd3ZnLXJl ZmVyZW5jZQoKRml4ZXMgIzIxMTI1Ci0tLQogZG9jL2h0bWx4cmVmLmNuZiB8IDEgKwogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZG9jL2h0bWx4cmVmLmNuZiBi L2RvYy9odG1seHJlZi5jbmYKaW5kZXggMDc5Yzg0OGE2NS4uMDU1MmFiMmE2NCAxMDA2NDQKLS0t IGEvZG9jL2h0bWx4cmVmLmNuZgorKysgYi9kb2MvaHRtbHhyZWYuY25mCkBAIC00LDMgKzQsNCBA QCBmZm1wZWctZm9ybWF0cyBtb25vIC4vZmZtcGVnLWZvcm1hdHMuaHRtbAogZmZtcGVnLXJlc2Ft cGxlciBtb25vIC4vZmZtcGVnLXJlc2FtcGxlci5odG1sCiBmZm1wZWctc2NhbGVyIG1vbm8gLi9m Zm1wZWctc2NhbGVyLmh0bWwKIGZmbXBlZy11dGlscyBtb25vIC4vZmZtcGVnLXV0aWxzLmh0bWwK K2RyYXd2Zy1yZWZlcmVuY2UgbW9ubyAuL2RyYXd2Zy1yZWZlcmVuY2UuaHRtbAotLSAKMi41Mi4w CgoKRnJvbSBlNmQ1MmE2ZmNlYjhhZDlhYjJjMWU2MzE3ZjE4NWY1NGM5M2QyZDRhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtsYXMgSGFhcyA8Z2l0QGhhYXNuLmRldj4KRGF0ZTog RnJpLCA1IERlYyAyMDI1IDE4OjI4OjEwICswMTAwClN1YmplY3Q6IFtQQVRDSCAyNzcvMzA0XSBz d3NjYWxlL2Zvcm1hdDogZXhjbHVkZSBVMzIgZnJvbSBzd3NfcGl4ZWxfdHlwZSgpCgpUaGlzIGZ1 bmN0aW9uIGlzIHN1cHBvc2VkIHRvIGdpdmUgdXMgcmVwcmVzZW50YWJsZSBwaXhlbCB0eXBlczsg YnV0IFUzMiBpcyBub3QKcmVwcmVzZW50YWJsZSAoZHVlIG9ubHkgdG8gdGhlIEFWUmF0aW9uYWwg cmFuZ2UgbGltaXQpLgotLS0KIGxpYnN3c2NhbGUvZm9ybWF0LmMgfCAzICsrLQogMSBmaWxlIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2xpYnN3 c2NhbGUvZm9ybWF0LmMgYi9saWJzd3NjYWxlL2Zvcm1hdC5jCmluZGV4IGNiYjVjYjM1ZmUuLmY5 YTE1NmUyOWUgMTAwNjQ0Ci0tLSBhL2xpYnN3c2NhbGUvZm9ybWF0LmMKKysrIGIvbGlic3dzY2Fs ZS9mb3JtYXQuYwpAQCAtNjE2LDEyICs2MTYsMTMgQEAgc3RhdGljIFN3c1BpeGVsVHlwZSBmbXRf cGl4ZWxfdHlwZShlbnVtIEFWUGl4ZWxGb3JtYXQgZm10KQogICAgIGlmIChkZXNjLT5mbGFncyAm IEFWX1BJWF9GTVRfRkxBR19GTE9BVCkgewogICAgICAgICBzd2l0Y2ggKGJpdHMpIHsKICAgICAg ICAgY2FzZSAzMjogcmV0dXJuIFNXU19QSVhFTF9GMzI7CisgICAgICAgIC8qIFRPRE86IG5vIHN1 cHBvcnQgZm9yIDE2LWJpdCBmbG9hdCB5ZXQgKi8KICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAg ICAgICAgIHN3aXRjaCAoYml0cykgewogICAgICAgICBjYXNlICA4OiByZXR1cm4gU1dTX1BJWEVM X1U4OwogICAgICAgICBjYXNlIDE2OiByZXR1cm4gU1dTX1BJWEVMX1UxNjsKLSAgICAgICAgY2Fz ZSAzMjogcmV0dXJuIFNXU19QSVhFTF9VMzI7CisgICAgICAgIC8qIFRPRE86IEFWUmF0aW9uYWwg Y2Fubm90IHJlcHJlc2VudCBVSU5UMzJfTUFYICovCiAgICAgICAgIH0KICAgICB9CiAKLS0gCjIu NTIuMAoKCkZyb20gMTBjOWM4NGRmODYyNzhlMjQ1MTk0N2Q2MGZiMmEyNWUwYmIyODU3NCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmlrbGFzIEhhYXMgPGdpdEBoYWFzbi5kZXY+CkRh dGU6IEZyaSwgNSBEZWMgMjAyNSAxODozMjoxMCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjc4LzMw NF0gc3dzY2FsZS9mb3JtYXQ6IGNoZWNrIFN3c1BpeGVsVHlwZSBpbgogZm10X3JlYWRfd3JpdGUo KQoKVGhpcyBpcyB0aGUgb25seSBmdW5jdGlvbiB0aGF0IGFjdHVhbGx5IGhhcyB0aGUgYWJpbGl0 eSB0byByZXR1cm4gYW4KZXJyb3IsIHNvIGp1c3QgbW92ZSB0aGUgcGl4ZWwgdHlwZSBhc3NpZ25t ZW50IGhlcmUgYW5kIGFkZCBhIGNoZWNrIHRvCmVuc3VyZSBhIHZhbGlkIHBpeGVsIHR5cGUgaXMg Zm91bmQuCi0tLQogbGlic3dzY2FsZS9mb3JtYXQuYyB8IDIwICsrKysrKysrKysrKystLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9saWJzd3NjYWxlL2Zvcm1hdC5jIGIvbGlic3dzY2FsZS9mb3JtYXQuYwppbmRleCBm OWExNTZlMjllLi5hMWFmYTY0ZjRkIDEwMDY0NAotLS0gYS9saWJzd3NjYWxlL2Zvcm1hdC5jCisr KyBiL2xpYnN3c2NhbGUvZm9ybWF0LmMKQEAgLTc4OCwxMiArNzg4LDE2IEBAIHN0YXRpYyBTd3ND b25zdCBmbXRfY2xlYXIoZW51bSBBVlBpeGVsRm9ybWF0IGZtdCkKIH0KIAogc3RhdGljIGludCBm bXRfcmVhZF93cml0ZShlbnVtIEFWUGl4ZWxGb3JtYXQgZm10LCBTd3NSZWFkV3JpdGVPcCAqcndf b3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFN3c1BhY2tPcCAqcGFja19vcCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgU3dzUGFja09wICpwYWNrX29wLCBTd3NQaXhlbFR5cGUgKnBp eGVsX3R5cGUpCiB7CiAgICAgY29uc3QgQVZQaXhGbXREZXNjcmlwdG9yICpkZXNjID0gYXZfcGl4 X2ZtdF9kZXNjX2dldChmbXQpOwogICAgIGlmICghZGVzYykKICAgICAgICAgcmV0dXJuIEFWRVJS T1IoRUlOVkFMKTsKIAorICAgICpwaXhlbF90eXBlID0gZm10X3BpeGVsX3R5cGUoZm10KTsKKyAg ICBpZiAoISpwaXhlbF90eXBlKQorICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9UU1VQKTsKKwog ICAgIHN3aXRjaCAoZm10KSB7CiAgICAgY2FzZSBBVl9QSVhfRk1UX05PTkU6CiAgICAgY2FzZSBB Vl9QSVhfRk1UX05COgpAQCAtMTAyNCwxMiArMTAyOCwxMyBAQCBzdGF0aWMgU3dzUGl4ZWxUeXBl IGdldF9wYWNrZWRfdHlwZShTd3NQYWNrT3AgcGFjaykKIGludCBmZl9zd3NfZGVjb2RlX3BpeGZt dChTd3NPcExpc3QgKm9wcywgZW51bSBBVlBpeGVsRm9ybWF0IGZtdCkKIHsKICAgICBjb25zdCBB VlBpeEZtdERlc2NyaXB0b3IgKmRlc2MgPSBhdl9waXhfZm10X2Rlc2NfZ2V0KGZtdCk7Ci0gICAg U3dzUGl4ZWxUeXBlIHBpeGVsX3R5cGUgPSBmbXRfcGl4ZWxfdHlwZShmbXQpOwotICAgIFN3c1Bp eGVsVHlwZSByYXdfdHlwZSA9IHBpeGVsX3R5cGU7CisgICAgU3dzUGl4ZWxUeXBlIHBpeGVsX3R5 cGU7CiAgICAgU3dzUmVhZFdyaXRlT3Agcndfb3A7CiAgICAgU3dzUGFja09wIHVucGFjazsKIAot ICAgIFJFVChmbXRfcmVhZF93cml0ZShmbXQsICZyd19vcCwgJnVucGFjaykpOworICAgIFJFVChm bXRfcmVhZF93cml0ZShmbXQsICZyd19vcCwgJnVucGFjaywgJnBpeGVsX3R5cGUpKTsKKworICAg IFN3c1BpeGVsVHlwZSByYXdfdHlwZSA9IHBpeGVsX3R5cGU7CiAgICAgaWYgKHVucGFjay5wYXR0 ZXJuWzBdKQogICAgICAgICByYXdfdHlwZSA9IGdldF9wYWNrZWRfdHlwZSh1bnBhY2spOwogCkBA IC0xMDg1LDEyICsxMDkwLDEzIEBAIGludCBmZl9zd3NfZGVjb2RlX3BpeGZtdChTd3NPcExpc3Qg Km9wcywgZW51bSBBVlBpeGVsRm9ybWF0IGZtdCkKIGludCBmZl9zd3NfZW5jb2RlX3BpeGZtdChT d3NPcExpc3QgKm9wcywgZW51bSBBVlBpeGVsRm9ybWF0IGZtdCkKIHsKICAgICBjb25zdCBBVlBp eEZtdERlc2NyaXB0b3IgKmRlc2MgPSBhdl9waXhfZm10X2Rlc2NfZ2V0KGZtdCk7Ci0gICAgU3dz UGl4ZWxUeXBlIHBpeGVsX3R5cGUgPSBmbXRfcGl4ZWxfdHlwZShmbXQpOwotICAgIFN3c1BpeGVs VHlwZSByYXdfdHlwZSA9IHBpeGVsX3R5cGU7CisgICAgU3dzUGl4ZWxUeXBlIHBpeGVsX3R5cGU7 CiAgICAgU3dzUmVhZFdyaXRlT3Agcndfb3A7CiAgICAgU3dzUGFja09wIHBhY2s7CiAKLSAgICBS RVQoZm10X3JlYWRfd3JpdGUoZm10LCAmcndfb3AsICZwYWNrKSk7CisgICAgUkVUKGZtdF9yZWFk X3dyaXRlKGZtdCwgJnJ3X29wLCAmcGFjaywgJnBpeGVsX3R5cGUpKTsKKworICAgIFN3c1BpeGVs VHlwZSByYXdfdHlwZSA9IHBpeGVsX3R5cGU7CiAgICAgaWYgKHBhY2sucGF0dGVyblswXSkKICAg ICAgICAgcmF3X3R5cGUgPSBnZXRfcGFja2VkX3R5cGUocGFjayk7CiAKLS0gCjIuNTIuMAoKCkZy b20gZWNkNDIwMDRiZDE5NTkyYmI4NGUxMzg5NmY3MTBjNmU0Yzg3ZDkxZiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogTmlrbGFzIEhhYXMgPGdpdEBoYWFzbi5kZXY+CkRhdGU6IEZyaSwg NSBEZWMgMjAyNSAxODo0NToyMiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjc5LzMwNF0gc3dzY2Fs ZS9mb3JtYXQ6IGRlcml2ZSBmbXRfc3dpenpsZSgpIGZyb20KIEFWUGl4Rm10RGVzY3JpcHRvciB3 aGVuIHBvc3NpYmxlCgpVbmZvcnR1bmF0ZWx5LCB0aGlzIGlzIGV4Y2VwdGlvbmFsbHkgZGlmZmlj dWx0IHRvIGhhbmRsZSBpbiB0aGUgZ2VuZXJhbCBjYXNlLAp3aGVuIHBhY2tlZC9iaXRzdHJlYW0g Zm9ybWF0cyBjb21lIGludG8gcGxheSAtIHRoZSBhY3R1YWwgaW50ZXJwcmV0YXRpb24gb2YKdGhl IG9mZnNldCwgc2hpZnQgZXRjLiBhcmUgc28gZGlmZmljdWx0IHRvIGRlYWwgd2l0aCBpbiBhIGdl bmVyYWwgY2FzZSB0aGF0CkkgdGhpbmsgaXQncyBzaW1wbGVyIHRvIGNvbnRpbnVlIGZhbGxpbmcg YmFjayB0byBhIHN0YXRpYyB0YWJsZSBvZiB2YXJpYW50cwpmb3IgdGhlc2UgZXhjZXB0aW9ucy4g VGhleSBhcmUgZm9ydHVuYXRlbHkgc21hbGwgaW4gbnVtYmVyLgotLS0KIGxpYnN3c2NhbGUvZm9y bWF0LmMgfCAxMDggKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA1OSBpbnNlcnRpb25zKCspLCA0OSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9saWJzd3NjYWxlL2Zvcm1hdC5jIGIvbGlic3dzY2FsZS9mb3JtYXQuYwppbmRleCBh MWFmYTY0ZjRkLi43YmUzNjg1YzZjIDEwMDY0NAotLS0gYS9saWJzd3NjYWxlL2Zvcm1hdC5jCisr KyBiL2xpYnN3c2NhbGUvZm9ybWF0LmMKQEAgLTYyOSw0MSArNjI5LDg2IEBAIHN0YXRpYyBTd3NQ aXhlbFR5cGUgZm10X3BpeGVsX3R5cGUoZW51bSBBVlBpeGVsRm9ybWF0IGZtdCkKICAgICByZXR1 cm4gU1dTX1BJWEVMX05PTkU7CiB9CiAKKy8qIEEgcmVndWxhciBmb3JtYXQgaXMgZGVmaW5lZCBh cyBhbnkgZm9ybWF0IHRoYXQgY29udGFpbnMgb25seSBhIHNpbmdsZQorICogY29tcG9uZW50IHBl ciBlbGVtZW50YXJ5IGRhdGEgdHlwZSAoaS5lLiBubyBzdWItYnl0ZSBwYWNrL3VucGFjayBuZWVk ZWQpLAorICogYW5kIHdob3NlIGNvbXBvbmVudHMgbWFwIDE6MSBvbnRvIGVsZW1lbnRhcnkgZGF0 YSB1bml0cyAqLworc3RhdGljIGludCBpc19yZWd1bGFyX2ZtdChlbnVtIEFWUGl4ZWxGb3JtYXQg Zm10KQoreworICAgIGNvbnN0IEFWUGl4Rm10RGVzY3JpcHRvciAqZGVzYyA9IGF2X3BpeF9mbXRf ZGVzY19nZXQoZm10KTsKKyAgICBpZiAoZGVzYy0+ZmxhZ3MgJiAoQVZfUElYX0ZNVF9GTEFHX1BB TCB8IEFWX1BJWF9GTVRfRkxBR19CQVlFUikpCisgICAgICAgIHJldHVybiAwOyAvKiBubyAxOjEg Y29ycmVzcG9uZGVuY2UgYmV0d2VlbiBjb21wb25lbnRzIGFuZCBkYXRhIHVuaXRzICovCisgICAg aWYgKGRlc2MtPmZsYWdzICYgKEFWX1BJWF9GTVRfRkxBR19CSVRTVFJFQU0pKQorICAgICAgICBy ZXR1cm4gMDsgLyogYml0c3RyZWFtIGZvcm1hdHMgYXJlIHBhY2tlZCBieSBkZWZpbml0aW9uICov CisgICAgaWYgKChkZXNjLT5mbGFncyAmIEFWX1BJWF9GTVRfRkxBR19QTEFOQVIpIHx8IGRlc2Mt Pm5iX2NvbXBvbmVudHMgPT0gMSkKKyAgICAgICAgcmV0dXJuIDE7IC8qIHBsYW5hciBmb3JtYXRz IGFyZSByZWd1bGFyIGJ5IGRlZmluaXRpb24gKi8KKworICAgIGNvbnN0IGludCBzdGVwID0gZGVz Yy0+Y29tcFswXS5zdGVwOworICAgIGludCB0b3RhbF9iaXRzID0gMDsKKworICAgIGZvciAoaW50 IGkgPSAwOyBpIDwgZGVzYy0+bmJfY29tcG9uZW50czsgaSsrKSB7CisgICAgICAgIGlmIChkZXNj LT5jb21wW2ldLnNoaWZ0IHx8IGRlc2MtPmNvbXBbaV0uc3RlcCAhPSBzdGVwKQorICAgICAgICAg ICAgcmV0dXJuIDA7IC8qIGlycmVndWxhci9wYWNrZWQgZm9ybWF0ICovCisgICAgICAgIHRvdGFs X2JpdHMgKz0gZGVzYy0+Y29tcFtpXS5kZXB0aDsKKyAgICB9CisKKyAgICAvKiBFeGNsdWRlIGZv cm1hdHMgd2l0aCBtaXNzaW5nIGNvbXBvbmVudHMgbGlrZSBSR0IwLCAwUkdCLCBldGMuICovCisg ICAgcmV0dXJuIHRvdGFsX2JpdHMgPT0gc3RlcCAqIDg7Cit9CisKK3N0cnVjdCBjb21wIHsKKyAg ICBpbnQgaW5kZXg7CisgICAgaW50IHBsYW5lOworICAgIGludCBvZmZzZXQ7Cit9OworCisvKiBD b21wYXJlIGJ5IChwbGFuZSwgb2Zmc2V0KSAqLworc3RhdGljIGludCBjbXBfY29tcChjb25zdCB2 b2lkICphLCBjb25zdCB2b2lkICpiKSB7CisgICAgY29uc3Qgc3RydWN0IGNvbXAgKmNhID0gYTsK KyAgICBjb25zdCBzdHJ1Y3QgY29tcCAqY2IgPSBiOworICAgIGlmIChjYS0+cGxhbmUgIT0gY2It PnBsYW5lKQorICAgICAgICByZXR1cm4gY2EtPnBsYW5lIC0gY2ItPnBsYW5lOworICAgIHJldHVy biBjYS0+b2Zmc2V0IC0gY2ItPm9mZnNldDsKK30KKwogc3RhdGljIFN3c1N3aXp6bGVPcCBmbXRf c3dpenpsZShlbnVtIEFWUGl4ZWxGb3JtYXQgZm10KQogewogICAgIGNvbnN0IEFWUGl4Rm10RGVz Y3JpcHRvciAqZGVzYyA9IGF2X3BpeF9mbXRfZGVzY19nZXQoZm10KTsKLSAgICBpZiAoZGVzYy0+ bmJfY29tcG9uZW50cyA9PSAyKSAvKiBZQSBmb3JtYXRzICovCi0gICAgICAgIHJldHVybiAoU3dz U3dpenpsZU9wKSB7eyAueCA9IDAsIDMsIDEsIDIgfX07CisgICAgaWYgKGRlc2MtPm5iX2NvbXBv bmVudHMgPT0gMikgeworICAgICAgICAvKiBZQSBmb3JtYXRzICovCisgICAgICAgIHJldHVybiBT V1NfU1dJWlpMRSgwLCAzLCAxLCAyKTsKKyAgICB9IGVsc2UgaWYgKGlzX3JlZ3VsYXJfZm10KGZt dCkpIHsKKyAgICAgICAgLyogU29ydCBieSBpbmNyZWFzaW5nIGNvbXBvbmVudCBvcmRlciAqLwor ICAgICAgICBzdHJ1Y3QgY29tcCBzb3J0ZWRbNF0gPSB7IHswfSwgezF9LCB7Mn0sIHszfSB9Owor ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlc2MtPm5iX2NvbXBvbmVudHM7IGkrKykgewor ICAgICAgICAgICAgc29ydGVkW2ldLnBsYW5lICA9IGRlc2MtPmNvbXBbaV0ucGxhbmU7CisgICAg ICAgICAgICBzb3J0ZWRbaV0ub2Zmc2V0ID0gZGVzYy0+Y29tcFtpXS5vZmZzZXQ7CisgICAgICAg IH0KKworICAgICAgICBxc29ydChzb3J0ZWQsIGRlc2MtPm5iX2NvbXBvbmVudHMsIHNpemVvZihz dHJ1Y3QgY29tcCksIGNtcF9jb21wKTsKKworICAgICAgICBTd3NTd2l6emxlT3Agc3dpeiA9IFNX U19TV0laWkxFKDAsIDEsIDIsIDMpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlc2Mt Pm5iX2NvbXBvbmVudHM7IGkrKykKKyAgICAgICAgICAgIHN3aXouaW5baV0gPSBzb3J0ZWRbaV0u aW5kZXg7CisgICAgICAgIHJldHVybiBzd2l6OworICAgIH0KIAogICAgIHN3aXRjaCAoZm10KSB7 Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0FSR0I6CiAgICAgY2FzZSBBVl9QSVhfRk1UXzBSR0I6Ci0g ICAgY2FzZSBBVl9QSVhfRk1UX0FZVVY2NExFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9BWVVWNjRC RToKLSAgICBjYXNlIEFWX1BJWF9GTVRfQVlVVjoKICAgICBjYXNlIEFWX1BJWF9GTVRfWDJSR0Ix MExFOgogICAgIGNhc2UgQVZfUElYX0ZNVF9YMlJHQjEwQkU6CiAgICAgICAgIHJldHVybiAoU3dz U3dpenpsZU9wKSB7eyAueCA9IDMsIDAsIDEsIDIgfX07Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0JH UjI0OgogICAgIGNhc2UgQVZfUElYX0ZNVF9CR1I4OgogICAgIGNhc2UgQVZfUElYX0ZNVF9CR1I0 OgogICAgIGNhc2UgQVZfUElYX0ZNVF9CR1I0X0JZVEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0JH UkE6CiAgICAgY2FzZSBBVl9QSVhfRk1UX0JHUjU2NUJFOgogICAgIGNhc2UgQVZfUElYX0ZNVF9C R1I1NjVMRToKICAgICBjYXNlIEFWX1BJWF9GTVRfQkdSNTU1QkU6CiAgICAgY2FzZSBBVl9QSVhf Rk1UX0JHUjU1NUxFOgogICAgIGNhc2UgQVZfUElYX0ZNVF9CR1I0NDRCRToKICAgICBjYXNlIEFW X1BJWF9GTVRfQkdSNDQ0TEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0JHUjQ4QkU6Ci0gICAgY2Fz ZSBBVl9QSVhfRk1UX0JHUjQ4TEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0JHUkE2NEJFOgotICAg IGNhc2UgQVZfUElYX0ZNVF9CR1JBNjRMRToKICAgICBjYXNlIEFWX1BJWF9GTVRfQkdSMDoKLSAg ICBjYXNlIEFWX1BJWF9GTVRfVlVZQToKICAgICBjYXNlIEFWX1BJWF9GTVRfVlVZWDoKICAgICAg ICAgcmV0dXJuIChTd3NTd2l6emxlT3ApIHt7IC54ID0gMiwgMSwgMCwgMyB9fTsKLSAgICBjYXNl IEFWX1BJWF9GTVRfQUJHUjoKICAgICBjYXNlIEFWX1BJWF9GTVRfMEJHUjoKICAgICBjYXNlIEFW X1BJWF9GTVRfWDJCR1IxMExFOgogICAgIGNhc2UgQVZfUElYX0ZNVF9YMkJHUjEwQkU6CkBAIC02 NzEsNyArNzE2LDYgQEAgc3RhdGljIFN3c1N3aXp6bGVPcCBmbXRfc3dpenpsZShlbnVtIEFWUGl4 ZWxGb3JtYXQgZm10KQogICAgIGNhc2UgQVZfUElYX0ZNVF9YVjMwQkU6CiAgICAgY2FzZSBBVl9Q SVhfRk1UX1hWMzBMRToKICAgICAgICAgcmV0dXJuIChTd3NTd2l6emxlT3ApIHt7IC54ID0gMywg MiwgMCwgMSB9fTsKLSAgICBjYXNlIEFWX1BJWF9GTVRfVllVNDQ0OgogICAgIGNhc2UgQVZfUElY X0ZNVF9WMzBYQkU6CiAgICAgY2FzZSBBVl9QSVhfRk1UX1YzMFhMRToKICAgICAgICAgcmV0dXJu IChTd3NTd2l6emxlT3ApIHt7IC54ID0gMiwgMCwgMSwgMyB9fTsKQEAgLTY3OSw0MSArNzIzLDcg QEAgc3RhdGljIFN3c1N3aXp6bGVPcCBmbXRfc3dpenpsZShlbnVtIEFWUGl4ZWxGb3JtYXQgZm10 KQogICAgIGNhc2UgQVZfUElYX0ZNVF9YVjM2TEU6CiAgICAgY2FzZSBBVl9QSVhfRk1UX1hWNDhC RToKICAgICBjYXNlIEFWX1BJWF9GTVRfWFY0OExFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9VWVZB OgogICAgICAgICByZXR1cm4gKFN3c1N3aXp6bGVPcCkge3sgLnggPSAxLCAwLCAyLCAzIH19Owot ICAgIGNhc2UgQVZfUElYX0ZNVF9HQlJQOgotICAgIGNhc2UgQVZfUElYX0ZNVF9HQlJQOUJFOgot ICAgIGNhc2UgQVZfUElYX0ZNVF9HQlJQOUxFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9HQlJQMTBC RToKLSAgICBjYXNlIEFWX1BJWF9GTVRfR0JSUDEwTEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0dC UlAxMkJFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9HQlJQMTJMRToKLSAgICBjYXNlIEFWX1BJWF9G TVRfR0JSUDE0QkU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0dCUlAxNExFOgotICAgIGNhc2UgQVZf UElYX0ZNVF9HQlJQMTZCRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfR0JSUDE2TEU6Ci0gICAgY2Fz ZSBBVl9QSVhfRk1UX0dCUlBGMTZCRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfR0JSUEYxNkxFOgot ICAgIGNhc2UgQVZfUElYX0ZNVF9HQlJBUDoKLSAgICBjYXNlIEFWX1BJWF9GTVRfR0JSQVAxMExF OgotICAgIGNhc2UgQVZfUElYX0ZNVF9HQlJBUDEwQkU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0dC UkFQMTJMRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfR0JSQVAxMkJFOgotICAgIGNhc2UgQVZfUElY X0ZNVF9HQlJBUDE0TEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0dCUkFQMTRCRToKLSAgICBjYXNl IEFWX1BJWF9GTVRfR0JSQVAxNkxFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9HQlJBUDE2QkU6Ci0g ICAgY2FzZSBBVl9QSVhfRk1UX0dCUlBGMzJCRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfR0JSUEYz MkxFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9HQlJBUEYxNkJFOgotICAgIGNhc2UgQVZfUElYX0ZN VF9HQlJBUEYxNkxFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9HQlJBUEYzMkJFOgotICAgIGNhc2Ug QVZfUElYX0ZNVF9HQlJBUEYzMkxFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9HQlJQMTBNU0JCRToK LSAgICBjYXNlIEFWX1BJWF9GTVRfR0JSUDEwTVNCTEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0dC UlAxMk1TQkJFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9HQlJQMTJNU0JMRToKLSAgICAgICAgcmV0 dXJuIChTd3NTd2l6emxlT3ApIHt7IC54ID0gMSwgMiwgMCwgMyB9fTsKICAgICBkZWZhdWx0Ogog ICAgICAgICByZXR1cm4gKFN3c1N3aXp6bGVPcCkge3sgLnggPSAwLCAxLCAyLCAzIH19OwogICAg IH0KLS0gCjIuNTIuMAoKCkZyb20gYmRiOGI0NjM4MWU2YTBjNjIwNzA5NmQyMGRlYjczOTcwODQ1 Y2JlMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmlrbGFzIEhhYXMgPGdpdEBoYWFz bi5kZXY+CkRhdGU6IEZyaSwgNSBEZWMgMjAyNSAxODo0OTo1NCArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMjgwLzMwNF0gc3dzY2FsZS9mb3JtYXQ6IGRlcml2ZSBmbXRfc2hpZnQoKSBmcm9tCiBBVlBp eEZtdERlc2NyaXB0b3IKClhWMzYgaXMgdGhlIG9kZCBvbmUgb3V0LCBiZWluZyBhIGJ5dGUtc2hp ZnRlZCBwYWNrZWQgZm9ybWF0IHdob3NlIGNvbXBvbmVudHMKZG9uJ3QgYWN0dWFsbHkgY3Jvc3Mg YW55IGJ5dGUgYm91bmRhcmllcy4KLS0tCiBsaWJzd3NjYWxlL2Zvcm1hdC5jIHwgMzkgKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTEgaW5z ZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlic3dzY2FsZS9mb3Jt YXQuYyBiL2xpYnN3c2NhbGUvZm9ybWF0LmMKaW5kZXggN2JlMzY4NWM2Yy4uMDc2OTkwZDQ4ZCAx MDA2NDQKLS0tIGEvbGlic3dzY2FsZS9mb3JtYXQuYworKysgYi9saWJzd3NjYWxlL2Zvcm1hdC5j CkBAIC03NDIsMzYgKzc0MiwxOSBAQCBzdGF0aWMgU3dzU3dpenpsZU9wIHN3aXp6bGVfaW52KFN3 c1N3aXp6bGVPcCBzd2l6KSB7CiAvKiBTaGlmdCBmYWN0b3IgZm9yIE1TQiBhbGlnbmVkIGZvcm1h dHMgKi8KIHN0YXRpYyBpbnQgZm10X3NoaWZ0KGVudW0gQVZQaXhlbEZvcm1hdCBmbXQpCiB7Ci0g ICAgc3dpdGNoIChmbXQpIHsKLSAgICBjYXNlIEFWX1BJWF9GTVRfUDAxMEJFOgotICAgIGNhc2Ug QVZfUElYX0ZNVF9QMDEwTEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1AyMTBCRToKLSAgICBjYXNl IEFWX1BJWF9GTVRfUDIxMExFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9ZMjEwQkU6Ci0gICAgY2Fz ZSBBVl9QSVhfRk1UX1kyMTBMRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfWVVWNDQ0UDEwTVNCQkU6 Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1lVVjQ0NFAxME1TQkxFOgotICAgIGNhc2UgQVZfUElYX0ZN VF9HQlJQMTBNU0JCRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfR0JSUDEwTVNCTEU6Ci0gICAgICAg IHJldHVybiA2OwotICAgIGNhc2UgQVZfUElYX0ZNVF9QMDEyQkU6Ci0gICAgY2FzZSBBVl9QSVhf Rk1UX1AwMTJMRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfUDIxMkJFOgotICAgIGNhc2UgQVZfUElY X0ZNVF9QMjEyTEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1A0MTJCRToKLSAgICBjYXNlIEFWX1BJ WF9GTVRfUDQxMkxFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9YVjM2QkU6Ci0gICAgY2FzZSBBVl9Q SVhfRk1UX1hWMzZMRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfWFlaMTJCRToKLSAgICBjYXNlIEFW X1BJWF9GTVRfWFlaMTJMRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfWVVWNDQ0UDEyTVNCQkU6Ci0g ICAgY2FzZSBBVl9QSVhfRk1UX1lVVjQ0NFAxMk1TQkxFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9H QlJQMTJNU0JCRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfR0JSUDEyTVNCTEU6Ci0gICAgICAgIHJl dHVybiA0OworICAgIGlmIChpc19yZWd1bGFyX2ZtdChmbXQpKSB7CisgICAgICAgIGNvbnN0IEFW UGl4Rm10RGVzY3JpcHRvciAqZGVzYyA9IGF2X3BpeF9mbXRfZGVzY19nZXQoZm10KTsKKyAgICAg ICAgcmV0dXJuIGRlc2MtPmNvbXBbMF0uc2hpZnQ7CiAgICAgfQogCi0gICAgcmV0dXJuIDA7Cisg ICAgc3dpdGNoIChmbXQpIHsKKyAgICBjYXNlIEFWX1BJWF9GTVRfWFYzNkJFOgorICAgIGNhc2Ug QVZfUElYX0ZNVF9YVjM2TEU6CisgICAgICAgIHJldHVybiA0OworICAgIGRlZmF1bHQ6CisgICAg ICAgIC8qIFN1Yi1ieXRlIGlycmVndWxhciBmb3JtYXRzIGFyZSBhbHdheXMgaGFuZGxlZCBieSBT V1NfT1BfKFVOKVBBQ0sgKi8KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQogfQogCiAvKioKLS0g CjIuNTIuMAoKCkZyb20gYTE3ZGIwNzMyZjYwYmVjZjgwOGM0NGYzNDU1NmQ1NWZjOGU5MWM2ZSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmlrbGFzIEhhYXMgPGdpdEBoYWFzbi5kZXY+ CkRhdGU6IEZyaSwgNSBEZWMgMjAyNSAxOToxMjoxMSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjgx LzMwNF0gc3dzY2FsZS9mb3JtYXQ6IGV4cGxpY2l0bHkgdGVzdCBmb3IgdW5zdXBwb3J0ZWQKIHN1 YnNhbXBsZWQgZm9ybWF0cwoKVGhpcyBpbmNsdWRlcyBzZW1pcGxhbmFyIGZvcm1hdHMuIE5vdGUg dGhhdCB0aGUgZmlyc3QgY2hlY2sgdHlwaWNhbGx5CnN1YnN1bWVzIHRoZSBzZWNvbmQgY2hlY2ss IGJ1dCBJIGRlY2lkZWQgdG8ga2VlcCBib3RoIGZvciBjbGFyaXR5LgotLS0KIGxpYnN3c2NhbGUv Zm9ybWF0LmMgfCA5ICsrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL2xpYnN3c2NhbGUvZm9ybWF0LmMgYi9saWJzd3NjYWxlL2Zvcm1hdC5jCmlu ZGV4IDA3Njk5MGQ0OGQuLmZmZGRlMmFmMDEgMTAwNjQ0Ci0tLSBhL2xpYnN3c2NhbGUvZm9ybWF0 LmMKKysrIGIvbGlic3dzY2FsZS9mb3JtYXQuYwpAQCAtNzg3LDYgKzc4NywxNSBAQCBzdGF0aWMg aW50IGZtdF9yZWFkX3dyaXRlKGVudW0gQVZQaXhlbEZvcm1hdCBmbXQsIFN3c1JlYWRXcml0ZU9w ICpyd19vcCwKICAgICBpZiAoIWRlc2MpCiAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7 CiAKKyAgICAvKiBObyBzdXBwb3J0IGZvciBzdWJzYW1wbGVkIGZvcm1hdHMgYXQgdGhlIG1vbWVu dCAqLworICAgIGlmIChkZXNjLT5sb2cyX2Nocm9tYV93IHx8IGRlc2MtPmxvZzJfY2hyb21hX2gp CisgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT1RTVVApOworCisgICAgLyogTm8gc3VwcG9ydCBm b3Igc2VtaS1wbGFuYXIgZm9ybWF0cyBhdCB0aGUgbW9tZW50ICovCisgICAgaWYgKGRlc2MtPmZs YWdzICYgQVZfUElYX0ZNVF9GTEFHX1BMQU5BUiAmJgorICAgICAgICBhdl9waXhfZm10X2NvdW50 X3BsYW5lcyhmbXQpIDwgZGVzYy0+bmJfY29tcG9uZW50cykKKyAgICAgICAgcmV0dXJuIEFWRVJS T1IoRU5PVFNVUCk7CisKICAgICAqcGl4ZWxfdHlwZSA9IGZtdF9waXhlbF90eXBlKGZtdCk7CiAg ICAgaWYgKCEqcGl4ZWxfdHlwZSkKICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PVFNVUCk7Ci0t IAoyLjUyLjAKCgpGcm9tIGVjN2M0OTAwNDEwMTgzNDlhOGVlNGI4NWE3OTVkMmJmOWQ3MzVmMTcg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pa2xhcyBIYWFzIDxnaXRAaGFhc24uZGV2 PgpEYXRlOiBGcmksIDUgRGVjIDIwMjUgMTk6MTc6MzAgKzAxMDAKU3ViamVjdDogW1BBVENIIDI4 Mi8zMDRdIHN3c2NhbGUvZm9ybWF0OiBkZXJpdmUgZm10X3JlYWRfd3JpdGUoKSBmb3IgcmVndWxh cgogZm9ybWF0cwoKLS0tCiBsaWJzd3NjYWxlL2Zvcm1hdC5jIHwgMTI5ICsrKystLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRp b25zKCspLCAxMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlic3dzY2FsZS9mb3JtYXQu YyBiL2xpYnN3c2NhbGUvZm9ybWF0LmMKaW5kZXggZmZkZGUyYWYwMS4uMDEzZmYwNDBiNCAxMDA2 NDQKLS0tIGEvbGlic3dzY2FsZS9mb3JtYXQuYworKysgYi9saWJzd3NjYWxlL2Zvcm1hdC5jCkBA IC04MDAsMTEgKzgwMCwxNiBAQCBzdGF0aWMgaW50IGZtdF9yZWFkX3dyaXRlKGVudW0gQVZQaXhl bEZvcm1hdCBmbXQsIFN3c1JlYWRXcml0ZU9wICpyd19vcCwKICAgICBpZiAoISpwaXhlbF90eXBl KQogICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9UU1VQKTsKIAotICAgIHN3aXRjaCAoZm10KSB7 Ci0gICAgY2FzZSBBVl9QSVhfRk1UX05PTkU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX05COgotICAg ICAgICBicmVhazsKKyAgICBpZiAoaXNfcmVndWxhcl9mbXQoZm10KSkgeworICAgICAgICAqcGFj a19vcCA9IChTd3NQYWNrT3ApIHswfTsKKyAgICAgICAgKnJ3X29wID0gKFN3c1JlYWRXcml0ZU9w KSB7CisgICAgICAgICAgICAuZWxlbXMgID0gZGVzYy0+bmJfY29tcG9uZW50cywKKyAgICAgICAg ICAgIC5wYWNrZWQgPSBkZXNjLT5uYl9jb21wb25lbnRzID4gMSAmJiAhKGRlc2MtPmZsYWdzICYg QVZfUElYX0ZNVF9GTEFHX1BMQU5BUiksCisgICAgICAgIH07CisgICAgICAgIHJldHVybiAwOwor ICAgIH0KIAorICAgIHN3aXRjaCAoZm10KSB7CiAgICAgLyogUGFja2VkIGJpdHN0cmVhbSBmb3Jt YXRzICovCiAgICAgY2FzZSBBVl9QSVhfRk1UX01PTk9XSElURToKICAgICBjYXNlIEFWX1BJWF9G TVRfTU9OT0JMQUNLOgpAQCAtODg4LDEyMiArODkzLDYgQEAgc3RhdGljIGludCBmbXRfcmVhZF93 cml0ZShlbnVtIEFWUGl4ZWxGb3JtYXQgZm10LCBTd3NSZWFkV3JpdGVPcCAqcndfb3AsCiAgICAg ICAgICpwYWNrX29wID0gKFN3c1BhY2tPcCkgezB9OwogICAgICAgICAqcndfb3AgPSAoU3dzUmVh ZFdyaXRlT3ApIHsgLmVsZW1zID0gNCwgLnBhY2tlZCA9IHRydWUgfTsKICAgICAgICAgcmV0dXJu IDA7Ci0gICAgLyogVW5wYWNrZWQgYnl0ZS1hbGlnbmVkIDQ6NDo0IGZvcm1hdHMgKi8KLSAgICBj YXNlIEFWX1BJWF9GTVRfWVVWNDQ0UDoKLSAgICBjYXNlIEFWX1BJWF9GTVRfWVVWSjQ0NFA6Ci0g ICAgY2FzZSBBVl9QSVhfRk1UX1lVVjQ0NFA5QkU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1lVVjQ0 NFA5TEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1lVVjQ0NFAxMEJFOgotICAgIGNhc2UgQVZfUElY X0ZNVF9ZVVY0NDRQMTBMRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfWVVWNDQ0UDEyQkU6Ci0gICAg Y2FzZSBBVl9QSVhfRk1UX1lVVjQ0NFAxMkxFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9ZVVY0NDRQ MTRCRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfWVVWNDQ0UDE0TEU6Ci0gICAgY2FzZSBBVl9QSVhf Rk1UX1lVVjQ0NFAxNkJFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9ZVVY0NDRQMTZMRToKLSAgICBj YXNlIEFWX1BJWF9GTVRfWVVWNDQ0UDEwTVNCQkU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1lVVjQ0 NFAxME1TQkxFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9ZVVY0NDRQMTJNU0JCRToKLSAgICBjYXNl IEFWX1BJWF9GTVRfWVVWNDQ0UDEyTVNCTEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1lVVkE0NDRQ OgotICAgIGNhc2UgQVZfUElYX0ZNVF9ZVVZBNDQ0UDlCRToKLSAgICBjYXNlIEFWX1BJWF9GTVRf WVVWQTQ0NFA5TEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1lVVkE0NDRQMTBCRToKLSAgICBjYXNl IEFWX1BJWF9GTVRfWVVWQTQ0NFAxMExFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9ZVVZBNDQ0UDEy QkU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1lVVkE0NDRQMTJMRToKLSAgICBjYXNlIEFWX1BJWF9G TVRfWVVWQTQ0NFAxNkJFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9ZVVZBNDQ0UDE2TEU6Ci0gICAg Y2FzZSBBVl9QSVhfRk1UX0FZVVY6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1VZVkE6Ci0gICAgY2Fz ZSBBVl9QSVhfRk1UX1ZZVTQ0NDoKLSAgICBjYXNlIEFWX1BJWF9GTVRfQVlVVjY0QkU6Ci0gICAg Y2FzZSBBVl9QSVhfRk1UX0FZVVY2NExFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9WVVlBOgotICAg IGNhc2UgQVZfUElYX0ZNVF9SR0IyNDoKLSAgICBjYXNlIEFWX1BJWF9GTVRfQkdSMjQ6Ci0gICAg Y2FzZSBBVl9QSVhfRk1UX1JHQjQ4QkU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1JHQjQ4TEU6Ci0g ICAgY2FzZSBBVl9QSVhfRk1UX0JHUjQ4QkU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0JHUjQ4TEU6 Ci0gICAgLy9jYXNlIEFWX1BJWF9GTVRfUkdCOTZCRTogVE9ETzogQVZSYXRpb25hbCBjYW4ndCBm aXQgMl4zMi0xCi0gICAgLy9jYXNlIEFWX1BJWF9GTVRfUkdCOTZMRToKLSAgICAvL2Nhc2UgQVZf UElYX0ZNVF9SR0JGMTZCRTogVE9ETzogbm8gc3VwcG9ydCBmb3IgZmxvYXQxNiBjdXJyZW50bHkK LSAgICAvL2Nhc2UgQVZfUElYX0ZNVF9SR0JGMTZMRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfUkdC RjMyQkU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1JHQkYzMkxFOgotICAgIGNhc2UgQVZfUElYX0ZN VF9BUkdCOgotICAgIGNhc2UgQVZfUElYX0ZNVF9SR0JBOgotICAgIGNhc2UgQVZfUElYX0ZNVF9B QkdSOgotICAgIGNhc2UgQVZfUElYX0ZNVF9CR1JBOgotICAgIGNhc2UgQVZfUElYX0ZNVF9SR0JB NjRCRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfUkdCQTY0TEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1U X0JHUkE2NEJFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9CR1JBNjRMRToKLSAgICAvL2Nhc2UgQVZf UElYX0ZNVF9SR0JBMTI4QkU6IFRPRE86IEFWUmF0aW9uYWwgY2FuJ3QgZml0IDJeMzItMQotICAg IC8vY2FzZSBBVl9QSVhfRk1UX1JHQkExMjhMRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfUkdCQUYz MkJFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9SR0JBRjMyTEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1U X0dCUlA6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0dCUlA5QkU6Ci0gICAgY2FzZSBBVl9QSVhfRk1U X0dCUlA5TEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0dCUlAxMEJFOgotICAgIGNhc2UgQVZfUElY X0ZNVF9HQlJQMTBMRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfR0JSUDEyQkU6Ci0gICAgY2FzZSBB Vl9QSVhfRk1UX0dCUlAxMkxFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9HQlJQMTRCRToKLSAgICBj YXNlIEFWX1BJWF9GTVRfR0JSUDE0TEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0dCUlAxNkJFOgot ICAgIGNhc2UgQVZfUElYX0ZNVF9HQlJQMTZMRToKLSAgICAvL2Nhc2UgQVZfUElYX0ZNVF9HQlJQ RjE2QkU6IFRPRE8KLSAgICAvL2Nhc2UgQVZfUElYX0ZNVF9HQlJQRjE2TEU6Ci0gICAgY2FzZSBB Vl9QSVhfRk1UX0dCUlAxME1TQkJFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9HQlJQMTBNU0JMRToK LSAgICBjYXNlIEFWX1BJWF9GTVRfR0JSUDEyTVNCQkU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0dC UlAxMk1TQkxFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9HQlJQRjMyQkU6Ci0gICAgY2FzZSBBVl9Q SVhfRk1UX0dCUlBGMzJMRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfR0JSQVA6Ci0gICAgY2FzZSBB Vl9QSVhfRk1UX0dCUkFQMTBCRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfR0JSQVAxMExFOgotICAg IGNhc2UgQVZfUElYX0ZNVF9HQlJBUDEyQkU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0dCUkFQMTJM RToKLSAgICBjYXNlIEFWX1BJWF9GTVRfR0JSQVAxNEJFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9H QlJBUDE0TEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0dCUkFQMTZCRToKLSAgICBjYXNlIEFWX1BJ WF9GTVRfR0JSQVAxNkxFOgotICAgIC8vY2FzZSBBVl9QSVhfRk1UX0dCUkFQRjE2QkU6IFRPRE8K LSAgICAvL2Nhc2UgQVZfUElYX0ZNVF9HQlJBUEYxNkxFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9H QlJBUEYzMkJFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9HQlJBUEYzMkxFOgotICAgIGNhc2UgQVZf UElYX0ZNVF9HUkFZODoKLSAgICBjYXNlIEFWX1BJWF9GTVRfR1JBWTlCRToKLSAgICBjYXNlIEFW X1BJWF9GTVRfR1JBWTlMRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfR1JBWTEwQkU6Ci0gICAgY2Fz ZSBBVl9QSVhfRk1UX0dSQVkxMExFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9HUkFZMTJCRToKLSAg ICBjYXNlIEFWX1BJWF9GTVRfR1JBWTEyTEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0dSQVkxNEJF OgotICAgIGNhc2UgQVZfUElYX0ZNVF9HUkFZMTRMRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfR1JB WTE2QkU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0dSQVkxNkxFOgotICAgIC8vY2FzZSBBVl9QSVhf Rk1UX0dSQVlGMTZCRTogVE9ETwotICAgIC8vY2FzZSBBVl9QSVhfRk1UX0dSQVlGMTZMRToKLSAg ICAvL2Nhc2UgQVZfUElYX0ZNVF9ZQUYxNkJFOgotICAgIC8vY2FzZSBBVl9QSVhfRk1UX1lBRjE2 TEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0dSQVlGMzJCRToKLSAgICBjYXNlIEFWX1BJWF9GTVRf R1JBWUYzMkxFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9ZQUYzMkJFOgotICAgIGNhc2UgQVZfUElY X0ZNVF9ZQUYzMkxFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9ZQTg6Ci0gICAgY2FzZSBBVl9QSVhf Rk1UX1lBMTZMRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfWUExNkJFOgotICAgICAgICAqcGFja19v cCA9IChTd3NQYWNrT3ApIHswfTsKLSAgICAgICAgKnJ3X29wID0gKFN3c1JlYWRXcml0ZU9wKSB7 Ci0gICAgICAgICAgICAuZWxlbXMgID0gZGVzYy0+bmJfY29tcG9uZW50cywKLSAgICAgICAgICAg IC5wYWNrZWQgPSBkZXNjLT5uYl9jb21wb25lbnRzID4gMSAmJiAhKGRlc2MtPmZsYWdzICYgQVZf UElYX0ZNVF9GTEFHX1BMQU5BUiksCi0gICAgICAgIH07Ci0gICAgICAgIHJldHVybiAwOwogICAg IH0KIAogICAgIHJldHVybiBBVkVSUk9SKEVOT1RTVVApOwotLSAKMi41Mi4wCgoKRnJvbSBmZGJh YmUwNzQ2ODI0MjA1MWQ4YTI5NGE1Yjc2M2MwM2YyYjZhNWFmIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBOaWtsYXMgSGFhcyA8Z2l0QGhhYXNuLmRldj4KRGF0ZTogRnJpLCA1IERlYyAy MDI1IDE5OjM1OjM5ICswMTAwClN1YmplY3Q6IFtQQVRDSCAyODMvMzA0XSBzd3NjYWxlL2Zvcm1h dDogY29uc29saWRhdGUgZm9ybWF0IGluZm9ybWF0aW9uIGludG8gYQogc2luZ2xlIHN0cnVjdAoK SSB1c2UgYSBzd2l0Y2gvY2FzZSBpbnN0ZWFkIG9mIGFuIGFycmF5IGJlY2F1c2UgdGhpcyBpcyBv bmx5IG5lZWRlZCBmb3IKaXJyZWd1bGFyIGZvcm1hdHMsIHdoaWNoIGFyZSB2ZXJ5IHNwYXJzZS4K LS0tCiBsaWJzd3NjYWxlL2Zvcm1hdC5jIHwgMjQwICsrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTExIGluc2VydGlvbnMoKyksIDEy OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJzd3NjYWxlL2Zvcm1hdC5jIGIvbGlic3dz Y2FsZS9mb3JtYXQuYwppbmRleCAwMTNmZjA0MGI0Li5mZjQxNTAzOTE1IDEwMDY0NAotLS0gYS9s aWJzd3NjYWxlL2Zvcm1hdC5jCisrKyBiL2xpYnN3c2NhbGUvZm9ybWF0LmMKQEAgLTY1NSw2ICs2 NTUsMTA3IEBAIHN0YXRpYyBpbnQgaXNfcmVndWxhcl9mbXQoZW51bSBBVlBpeGVsRm9ybWF0IGZt dCkKICAgICByZXR1cm4gdG90YWxfYml0cyA9PSBzdGVwICogODsKIH0KIAordHlwZWRlZiBzdHJ1 Y3QgRm10SW5mbyB7CisgICAgU3dzUmVhZFdyaXRlT3Agcnc7CisgICAgU3dzU3dpenpsZU9wICAg c3dpenpsZTsKKyAgICBTd3NQYWNrT3AgICAgICBwYWNrOworICAgIGludCAgICAgICAgICAgIHNo aWZ0OworfSBGbXRJbmZvOworCisjZGVmaW5lIEJJVFNUUkVBTV9GTVQoU1dJWiwgRlJBQywgUEFD S0VELCAuLi4pIChGbXRJbmZvKSB7ICAgICAgXAorICAgIC5ydyA9IHsgLmVsZW1zID0gMSwgLmZy YWMgPSBGUkFDLCAucGFja2VkID0gUEFDS0VEIH0sICAgICAgIFwKKyAgICAuc3dpenpsZSA9IFNX SVosICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgX19W QV9BUkdTX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorfQorCisjZGVmaW5lIFNVQlBBQ0tFRF9GTVQoU1dJWiwgLi4uKSAoRm10SW5mbykgeyAgICAg ICAgICAgICAgICAgICAgXAorICAgIC5ydyA9IHsgLmVsZW1zID0gMSwgLnBhY2tlZCA9IHRydWUg fSwgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAuc3dpenpsZSA9IFNXSVosICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgLnBhY2sucGF0dGVybiA9 IHtfX1ZBX0FSR1NfX30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfQorCisjZGVm aW5lIFBBQ0tFRF9GTVQoU1dJWiwgTiwgLi4uKSAoRm10SW5mbykgeyAgICAgICAgICAgICAgICAg ICAgXAorICAgIC5ydyA9IHsgLmVsZW1zID0gTiwgLnBhY2tlZCA9IChOKSA+IDEgfSwgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAuc3dpenpsZSA9IFNXSVosICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgX19WQV9BUkdTX18gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfQorCisjZGVmaW5lIFJHQkEgU1dT X1NXSVpaTEUoMCwgMSwgMiwgMykKKyNkZWZpbmUgQkdSQSBTV1NfU1dJWlpMRSgyLCAxLCAwLCAz KQorI2RlZmluZSBBUkdCIFNXU19TV0laWkxFKDMsIDAsIDEsIDIpCisjZGVmaW5lIEFCR1IgU1dT X1NXSVpaTEUoMywgMiwgMSwgMCkKKyNkZWZpbmUgQVZZVSBTV1NfU1dJWlpMRSgzLCAyLCAwLCAx KQorI2RlZmluZSBWWVVBIFNXU19TV0laWkxFKDIsIDAsIDEsIDMpCisjZGVmaW5lIFVZVkEgU1dT X1NXSVpaTEUoMSwgMCwgMiwgMykKKyNkZWZpbmUgVlVZQSBCR1JBCisKK3N0YXRpYyBGbXRJbmZv IGZtdF9pbmZvX2lycmVndWxhcihlbnVtIEFWUGl4ZWxGb3JtYXQgZm10KQoreworICAgIHN3aXRj aCAoZm10KSB7CisgICAgLyogQml0c3RyZWFtIGZvcm1hdHMgKi8KKyAgICBjYXNlIEFWX1BJWF9G TVRfTU9OT1dISVRFOgorICAgIGNhc2UgQVZfUElYX0ZNVF9NT05PQkxBQ0s6CisgICAgICAgIHJl dHVybiBCSVRTVFJFQU1fRk1UKFJHQkEsIDMsIGZhbHNlKTsKKyAgICBjYXNlIEFWX1BJWF9GTVRf UkdCNDogcmV0dXJuIEJJVFNUUkVBTV9GTVQoUkdCQSwgMSwgdHJ1ZSwgLnBhY2sgPSB7eyAxLCAy LCAxIH19KTsKKyAgICBjYXNlIEFWX1BJWF9GTVRfQkdSNDogcmV0dXJuIEJJVFNUUkVBTV9GTVQo QkdSQSwgMSwgdHJ1ZSwgLnBhY2sgPSB7eyAxLCAyLCAxIH19KTsKKworICAgIC8qIFN1Yi1wYWNr ZWQgOC1iaXQgYWxpZ25lZCBmb3JtYXRzICovCisgICAgY2FzZSBBVl9QSVhfRk1UX1JHQjRfQllU RTogIHJldHVybiBTVUJQQUNLRURfRk1UKFJHQkEsIDEsIDIsIDEpOworICAgIGNhc2UgQVZfUElY X0ZNVF9CR1I0X0JZVEU6ICByZXR1cm4gU1VCUEFDS0VEX0ZNVChCR1JBLCAxLCAyLCAxKTsKKyAg ICBjYXNlIEFWX1BJWF9GTVRfUkdCODogICAgICAgcmV0dXJuIFNVQlBBQ0tFRF9GTVQoUkdCQSwg MywgMywgMik7CisgICAgY2FzZSBBVl9QSVhfRk1UX0JHUjg6ICAgICAgIHJldHVybiBTVUJQQUNL RURfRk1UKEJHUkEsIDIsIDMsIDMpOworCisgICAgLyogU3ViLXBhY2tlZCAxNi1iaXQgYWxpZ25l ZCBmb3JtYXRzICovCisgICAgY2FzZSBBVl9QSVhfRk1UX1JHQjU2NUxFOgorICAgIGNhc2UgQVZf UElYX0ZNVF9SR0I1NjVCRToKKyAgICAgICAgcmV0dXJuIFNVQlBBQ0tFRF9GTVQoUkdCQSwgNSwg NiwgNSk7CisgICAgY2FzZSBBVl9QSVhfRk1UX0JHUjU2NUxFOgorICAgIGNhc2UgQVZfUElYX0ZN VF9CR1I1NjVCRToKKyAgICAgICAgcmV0dXJuIFNVQlBBQ0tFRF9GTVQoQkdSQSwgNSwgNiwgNSk7 CisgICAgY2FzZSBBVl9QSVhfRk1UX1JHQjU1NUxFOgorICAgIGNhc2UgQVZfUElYX0ZNVF9SR0I1 NTVCRToKKyAgICAgICAgcmV0dXJuIFNVQlBBQ0tFRF9GTVQoUkdCQSwgNSwgNSwgNSk7CisgICAg Y2FzZSBBVl9QSVhfRk1UX0JHUjU1NUxFOgorICAgIGNhc2UgQVZfUElYX0ZNVF9CR1I1NTVCRToK KyAgICAgICAgcmV0dXJuIFNVQlBBQ0tFRF9GTVQoQkdSQSwgNSwgNSwgNSk7CisgICAgY2FzZSBB Vl9QSVhfRk1UX1JHQjQ0NExFOgorICAgIGNhc2UgQVZfUElYX0ZNVF9SR0I0NDRCRToKKyAgICAg ICAgcmV0dXJuIFNVQlBBQ0tFRF9GTVQoUkdCQSwgNCwgNCwgNCk7CisgICAgY2FzZSBBVl9QSVhf Rk1UX0JHUjQ0NExFOgorICAgIGNhc2UgQVZfUElYX0ZNVF9CR1I0NDRCRToKKyAgICAgICAgcmV0 dXJuIFNVQlBBQ0tFRF9GTVQoQkdSQSwgNCwgNCwgNCk7CisKKyAgICAvKiBTdWItcGFja2VkIDMy LWJpdCBhbGlnbmVkIGZvcm1hdHMgKi8KKyAgICBjYXNlIEFWX1BJWF9GTVRfWDJSR0IxMExFOgor ICAgIGNhc2UgQVZfUElYX0ZNVF9YMlJHQjEwQkU6CisgICAgICAgIHJldHVybiBTVUJQQUNLRURf Rk1UKEFSR0IsIDIsIDEwLCAxMCwgMTApOworICAgIGNhc2UgQVZfUElYX0ZNVF9YMkJHUjEwTEU6 CisgICAgY2FzZSBBVl9QSVhfRk1UX1gyQkdSMTBCRToKKyAgICAgICAgcmV0dXJuIFNVQlBBQ0tF RF9GTVQoQUJHUiwgMiwgMTAsIDEwLCAxMCk7CisgICAgY2FzZSBBVl9QSVhfRk1UX1hWMzBMRToK KyAgICBjYXNlIEFWX1BJWF9GTVRfWFYzMEJFOgorICAgICAgICByZXR1cm4gU1VCUEFDS0VEX0ZN VChBVllVLCAyLCAxMCwgMTAsIDEwKTsKKyAgICBjYXNlIEFWX1BJWF9GTVRfVjMwWExFOgorICAg IGNhc2UgQVZfUElYX0ZNVF9WMzBYQkU6CisgICAgICAgIHJldHVybiBTVUJQQUNLRURfRk1UKFZZ VUEsIDEwLCAxMCwgMTAsIDIpOworCisgICAgLyogMy1jb21wb25lbnQgZm9ybWF0cyB3aXRoIGV4 dHJhIHBhZGRpbmcgKi8KKyAgICBjYXNlIEFWX1BJWF9GTVRfUkdCMDogICByZXR1cm4gUEFDS0VE X0ZNVChSR0JBLCA0KTsKKyAgICBjYXNlIEFWX1BJWF9GTVRfQkdSMDogICByZXR1cm4gUEFDS0VE X0ZNVChCR1JBLCA0KTsKKyAgICBjYXNlIEFWX1BJWF9GTVRfMFJHQjogICByZXR1cm4gUEFDS0VE X0ZNVChBUkdCLCA0KTsKKyAgICBjYXNlIEFWX1BJWF9GTVRfMEJHUjogICByZXR1cm4gUEFDS0VE X0ZNVChBQkdSLCA0KTsKKyAgICBjYXNlIEFWX1BJWF9GTVRfVlVZWDogICByZXR1cm4gUEFDS0VE X0ZNVChWVVlBLCA0KTsKKyAgICBjYXNlIEFWX1BJWF9GTVRfWFYzNkxFOgorICAgIGNhc2UgQVZf UElYX0ZNVF9YVjM2QkU6CisgICAgICAgIHJldHVybiBQQUNLRURfRk1UKFVZVkEsIDQsIC5zaGlm dCA9IDQpOworICAgIGNhc2UgQVZfUElYX0ZNVF9YVjQ4TEU6CisgICAgY2FzZSBBVl9QSVhfRk1U X1hWNDhCRToKKyAgICAgICAgcmV0dXJuIFBBQ0tFRF9GTVQoVVlWQSwgNCk7CisgICAgfQorCisg ICAgcmV0dXJuIChGbXRJbmZvKSB7MH07Cit9CisKIHN0cnVjdCBjb21wIHsKICAgICBpbnQgaW5k ZXg7CiAgICAgaW50IHBsYW5lOwpAQCAtNjkyLDQxICs3OTMsOCBAQCBzdGF0aWMgU3dzU3dpenps ZU9wIGZtdF9zd2l6emxlKGVudW0gQVZQaXhlbEZvcm1hdCBmbXQpCiAgICAgICAgIHJldHVybiBz d2l6OwogICAgIH0KIAotICAgIHN3aXRjaCAoZm10KSB7Ci0gICAgY2FzZSBBVl9QSVhfRk1UXzBS R0I6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1gyUkdCMTBMRToKLSAgICBjYXNlIEFWX1BJWF9GTVRf WDJSR0IxMEJFOgotICAgICAgICByZXR1cm4gKFN3c1N3aXp6bGVPcCkge3sgLnggPSAzLCAwLCAx LCAyIH19OwotICAgIGNhc2UgQVZfUElYX0ZNVF9CR1I4OgotICAgIGNhc2UgQVZfUElYX0ZNVF9C R1I0OgotICAgIGNhc2UgQVZfUElYX0ZNVF9CR1I0X0JZVEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1U X0JHUjU2NUJFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9CR1I1NjVMRToKLSAgICBjYXNlIEFWX1BJ WF9GTVRfQkdSNTU1QkU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0JHUjU1NUxFOgotICAgIGNhc2Ug QVZfUElYX0ZNVF9CR1I0NDRCRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfQkdSNDQ0TEU6Ci0gICAg Y2FzZSBBVl9QSVhfRk1UX0JHUjA6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1ZVWVg6Ci0gICAgICAg IHJldHVybiAoU3dzU3dpenpsZU9wKSB7eyAueCA9IDIsIDEsIDAsIDMgfX07Ci0gICAgY2FzZSBB Vl9QSVhfRk1UXzBCR1I6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1gyQkdSMTBMRToKLSAgICBjYXNl IEFWX1BJWF9GTVRfWDJCR1IxMEJFOgotICAgICAgICByZXR1cm4gKFN3c1N3aXp6bGVPcCkge3sg LnggPSAzLCAyLCAxLCAwIH19OwotICAgIGNhc2UgQVZfUElYX0ZNVF9YVjMwQkU6Ci0gICAgY2Fz ZSBBVl9QSVhfRk1UX1hWMzBMRToKLSAgICAgICAgcmV0dXJuIChTd3NTd2l6emxlT3ApIHt7IC54 ID0gMywgMiwgMCwgMSB9fTsKLSAgICBjYXNlIEFWX1BJWF9GTVRfVjMwWEJFOgotICAgIGNhc2Ug QVZfUElYX0ZNVF9WMzBYTEU6Ci0gICAgICAgIHJldHVybiAoU3dzU3dpenpsZU9wKSB7eyAueCA9 IDIsIDAsIDEsIDMgfX07Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1hWMzZCRToKLSAgICBjYXNlIEFW X1BJWF9GTVRfWFYzNkxFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9YVjQ4QkU6Ci0gICAgY2FzZSBB Vl9QSVhfRk1UX1hWNDhMRToKLSAgICAgICAgcmV0dXJuIChTd3NTd2l6emxlT3ApIHt7IC54ID0g MSwgMCwgMiwgMyB9fTsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gKFN3c1N3aXp6bGVP cCkge3sgLnggPSAwLCAxLCAyLCAzIH19OwotICAgIH0KKyAgICAvKiBUaGlzIGZ1bmN0aW9uIGlz IG9ubHkgZXZlciBjYWxsZWQgaWYgZm10X3JlYWRfd3JpdGUoKSBhbHJlYWR5IHBhc3NlcyAqLwor ICAgIHJldHVybiBmbXRfaW5mb19pcnJlZ3VsYXIoZm10KS5zd2l6emxlOwogfQogCiBzdGF0aWMg U3dzU3dpenpsZU9wIHN3aXp6bGVfaW52KFN3c1N3aXp6bGVPcCBzd2l6KSB7CkBAIC03NDcsMTQg KzgxNSw4IEBAIHN0YXRpYyBpbnQgZm10X3NoaWZ0KGVudW0gQVZQaXhlbEZvcm1hdCBmbXQpCiAg ICAgICAgIHJldHVybiBkZXNjLT5jb21wWzBdLnNoaWZ0OwogICAgIH0KIAotICAgIHN3aXRjaCAo Zm10KSB7Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1hWMzZCRToKLSAgICBjYXNlIEFWX1BJWF9GTVRf WFYzNkxFOgotICAgICAgICByZXR1cm4gNDsKLSAgICBkZWZhdWx0OgotICAgICAgICAvKiBTdWIt Ynl0ZSBpcnJlZ3VsYXIgZm9ybWF0cyBhcmUgYWx3YXlzIGhhbmRsZWQgYnkgU1dTX09QXyhVTilQ QUNLICovCi0gICAgICAgIHJldHVybiAwOwotICAgIH0KKyAgICAvKiBUaGlzIGZ1bmN0aW9uIGlz IG9ubHkgZXZlciBjYWxsZWQgaWYgZm10X3JlYWRfd3JpdGUoKSBhbHJlYWR5IHBhc3NlcyAqLwor ICAgIHJldHVybiBmbXRfaW5mb19pcnJlZ3VsYXIoZm10KS5zaGlmdDsKIH0KIAogLyoqCkBAIC04 MDksOTMgKzg3MSwxMyBAQCBzdGF0aWMgaW50IGZtdF9yZWFkX3dyaXRlKGVudW0gQVZQaXhlbEZv cm1hdCBmbXQsIFN3c1JlYWRXcml0ZU9wICpyd19vcCwKICAgICAgICAgcmV0dXJuIDA7CiAgICAg fQogCi0gICAgc3dpdGNoIChmbXQpIHsKLSAgICAvKiBQYWNrZWQgYml0c3RyZWFtIGZvcm1hdHMg Ki8KLSAgICBjYXNlIEFWX1BJWF9GTVRfTU9OT1dISVRFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9N T05PQkxBQ0s6Ci0gICAgICAgICpwYWNrX29wID0gKFN3c1BhY2tPcCkgezB9OwotICAgICAgICAq cndfb3AgPSAoU3dzUmVhZFdyaXRlT3ApIHsKLSAgICAgICAgICAgIC5lbGVtcyA9IDEsCi0gICAg ICAgICAgICAuZnJhYyAgPSAzLAotICAgICAgICB9OwotICAgICAgICByZXR1cm4gMDsKLSAgICBj YXNlIEFWX1BJWF9GTVRfUkdCNDoKLSAgICBjYXNlIEFWX1BJWF9GTVRfQkdSNDoKLSAgICAgICAg KnBhY2tfb3AgPSAoU3dzUGFja09wKSB7eyAxLCAyLCAxIH19OwotICAgICAgICAqcndfb3AgPSAo U3dzUmVhZFdyaXRlT3ApIHsKLSAgICAgICAgICAgIC5lbGVtcyA9IDEsCi0gICAgICAgICAgICAu cGFja2VkID0gdHJ1ZSwKLSAgICAgICAgICAgIC5mcmFjICA9IDEsCi0gICAgICAgIH07Ci0gICAg ICAgIHJldHVybiAwOwotICAgIC8qIFBhY2tlZCA4LWJpdCBhbGlnbmVkIGZvcm1hdHMgKi8KLSAg ICBjYXNlIEFWX1BJWF9GTVRfUkdCNF9CWVRFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9CR1I0X0JZ VEU6Ci0gICAgICAgICpwYWNrX29wID0gKFN3c1BhY2tPcCkge3sgMSwgMiwgMSB9fTsKLSAgICAg ICAgKnJ3X29wID0gKFN3c1JlYWRXcml0ZU9wKSB7IC5lbGVtcyA9IDEsIC5wYWNrZWQgPSB0cnVl IH07Ci0gICAgICAgIHJldHVybiAwOwotICAgIGNhc2UgQVZfUElYX0ZNVF9CR1I4OgotICAgICAg ICAqcGFja19vcCA9IChTd3NQYWNrT3ApIHt7IDIsIDMsIDMgfX07Ci0gICAgICAgICpyd19vcCA9 IChTd3NSZWFkV3JpdGVPcCkgeyAuZWxlbXMgPSAxLCAucGFja2VkID0gdHJ1ZSB9OwotICAgICAg ICByZXR1cm4gMDsKLSAgICBjYXNlIEFWX1BJWF9GTVRfUkdCODoKLSAgICAgICAgKnBhY2tfb3Ag PSAoU3dzUGFja09wKSB7eyAzLCAzLCAyIH19OwotICAgICAgICAqcndfb3AgPSAoU3dzUmVhZFdy aXRlT3ApIHsgLmVsZW1zID0gMSwgLnBhY2tlZCA9IHRydWUgfTsKLSAgICAgICAgcmV0dXJuIDA7 CisgICAgRm10SW5mbyBpbmZvID0gZm10X2luZm9faXJyZWd1bGFyKGZtdCk7CisgICAgaWYgKCFp bmZvLnJ3LmVsZW1zKQorICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9UU1VQKTsKIAotICAgIC8q IFBhY2tlZCAxNi1iaXQgYWxpZ25lZCBmb3JtYXRzICovCi0gICAgY2FzZSBBVl9QSVhfRk1UX1JH QjU2NUJFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9SR0I1NjVMRToKLSAgICBjYXNlIEFWX1BJWF9G TVRfQkdSNTY1QkU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX0JHUjU2NUxFOgotICAgICAgICAqcGFj a19vcCA9IChTd3NQYWNrT3ApIHt7IDUsIDYsIDUgfX07Ci0gICAgICAgICpyd19vcCA9IChTd3NS ZWFkV3JpdGVPcCkgeyAuZWxlbXMgPSAxLCAucGFja2VkID0gdHJ1ZSB9OwotICAgICAgICByZXR1 cm4gMDsKLSAgICBjYXNlIEFWX1BJWF9GTVRfUkdCNTU1QkU6Ci0gICAgY2FzZSBBVl9QSVhfRk1U X1JHQjU1NUxFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9CR1I1NTVCRToKLSAgICBjYXNlIEFWX1BJ WF9GTVRfQkdSNTU1TEU6Ci0gICAgICAgICpwYWNrX29wID0gKFN3c1BhY2tPcCkge3sgNSwgNSwg NSB9fTsKLSAgICAgICAgKnJ3X29wID0gKFN3c1JlYWRXcml0ZU9wKSB7IC5lbGVtcyA9IDEsIC5w YWNrZWQgPSB0cnVlIH07Ci0gICAgICAgIHJldHVybiAwOwotICAgIGNhc2UgQVZfUElYX0ZNVF9S R0I0NDRCRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfUkdCNDQ0TEU6Ci0gICAgY2FzZSBBVl9QSVhf Rk1UX0JHUjQ0NEJFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9CR1I0NDRMRToKLSAgICAgICAgKnBh Y2tfb3AgPSAoU3dzUGFja09wKSB7eyA0LCA0LCA0IH19OwotICAgICAgICAqcndfb3AgPSAoU3dz UmVhZFdyaXRlT3ApIHsgLmVsZW1zID0gMSwgLnBhY2tlZCA9IHRydWUgfTsKLSAgICAgICAgcmV0 dXJuIDA7Ci0gICAgLyogUGFja2VkIDMyLWJpdCBhbGlnbmVkIDQ6NDo0IGZvcm1hdHMgKi8KLSAg ICBjYXNlIEFWX1BJWF9GTVRfWDJSR0IxMEJFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9YMlJHQjEw TEU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1gyQkdSMTBCRToKLSAgICBjYXNlIEFWX1BJWF9GTVRf WDJCR1IxMExFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9YVjMwQkU6Ci0gICAgY2FzZSBBVl9QSVhf Rk1UX1hWMzBMRToKLSAgICAgICAgKnBhY2tfb3AgPSAoU3dzUGFja09wKSB7eyAyLCAxMCwgMTAs IDEwIH19OwotICAgICAgICAqcndfb3AgPSAoU3dzUmVhZFdyaXRlT3ApIHsgLmVsZW1zID0gMSwg LnBhY2tlZCA9IHRydWUgfTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgY2FzZSBBVl9QSVhfRk1U X1YzMFhCRToKLSAgICBjYXNlIEFWX1BJWF9GTVRfVjMwWExFOgotICAgICAgICAqcGFja19vcCA9 IChTd3NQYWNrT3ApIHt7IDEwLCAxMCwgMTAsIDIgfX07Ci0gICAgICAgICpyd19vcCA9IChTd3NS ZWFkV3JpdGVPcCkgeyAuZWxlbXMgPSAxLCAucGFja2VkID0gdHJ1ZSB9OwotICAgICAgICByZXR1 cm4gMDsKLSAgICAvKiAzIGNvbXBvbmVudCBmb3JtYXRzIHdpdGggb25lIGNoYW5uZWwgaWdub3Jl ZCAqLwotICAgIGNhc2UgQVZfUElYX0ZNVF9SR0IwOgotICAgIGNhc2UgQVZfUElYX0ZNVF9CR1Iw OgotICAgIGNhc2UgQVZfUElYX0ZNVF8wUkdCOgotICAgIGNhc2UgQVZfUElYX0ZNVF8wQkdSOgot ICAgIGNhc2UgQVZfUElYX0ZNVF9YVjM2QkU6Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1hWMzZMRToK LSAgICBjYXNlIEFWX1BJWF9GTVRfWFY0OEJFOgotICAgIGNhc2UgQVZfUElYX0ZNVF9YVjQ4TEU6 Ci0gICAgY2FzZSBBVl9QSVhfRk1UX1ZVWVg6Ci0gICAgICAgICpwYWNrX29wID0gKFN3c1BhY2tP cCkgezB9OwotICAgICAgICAqcndfb3AgPSAoU3dzUmVhZFdyaXRlT3ApIHsgLmVsZW1zID0gNCwg LnBhY2tlZCA9IHRydWUgfTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgcmV0dXJu IEFWRVJST1IoRU5PVFNVUCk7CisgICAgKnBhY2tfb3AgPSBpbmZvLnBhY2s7CisgICAgKnJ3X29w ICAgPSBpbmZvLnJ3OworICAgIHJldHVybiAwOwogfQogCiBzdGF0aWMgU3dzUGl4ZWxUeXBlIGdl dF9wYWNrZWRfdHlwZShTd3NQYWNrT3AgcGFjaykKLS0gCjIuNTIuMAoKCkZyb20gYmYzMmNhYWZi ZTMyZmNiOThkY2ZlNmJjOWJiNzUzNWY2MGRjYWJjOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogTmlrbGFzIEhhYXMgPGdpdEBoYWFzbi5kZXY+CkRhdGU6IEZyaSwgNSBEZWMgMjAyNSAy MDo1Nzo1NSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjg0LzMwNF0gc3dzY2FsZS9mb3JtYXQ6IG1l cmdlIGZtdF8qIGhlbHBlcnMgaW50byBhIHNpbmdsZQogZm10X2FuYWx5emUoKQoKSGFuZGxlcyB0 aGUgc3BsaXQgYmV0d2VlbiAicmVndWxhciIgYW5kICJpcnJlZ3VsYXIiIHBpeGVsIGZvcm1hdHMg aW4gYSBzaW5nbGUKcGxhY2UsIGFuZCBvcGVucyB1cCB0aGUgZG9vciBmb3IgbW9yZSBjb21wbGlj YXRlZCBmb3JtYXRzLgotLS0KIGxpYnN3c2NhbGUvZm9ybWF0LmMgfCAxNjAgKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3NSBpbnNl cnRpb25zKCspLCA4NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJzd3NjYWxlL2Zvcm1h dC5jIGIvbGlic3dzY2FsZS9mb3JtYXQuYwppbmRleCBmZjQxNTAzOTE1Li45ZWY3OWVkN2RjIDEw MDY0NAotLS0gYS9saWJzd3NjYWxlL2Zvcm1hdC5jCisrKyBiL2xpYnN3c2NhbGUvZm9ybWF0LmMK QEAgLTc3MSwxMyArNzcxLDEzIEBAIHN0YXRpYyBpbnQgY21wX2NvbXAoY29uc3Qgdm9pZCAqYSwg Y29uc3Qgdm9pZCAqYikgewogICAgIHJldHVybiBjYS0+b2Zmc2V0IC0gY2ItPm9mZnNldDsKIH0K IAotc3RhdGljIFN3c1N3aXp6bGVPcCBmbXRfc3dpenpsZShlbnVtIEFWUGl4ZWxGb3JtYXQgZm10 KQorc3RhdGljIGludCBmbXRfYW5hbHl6ZV9yZWd1bGFyKGNvbnN0IEFWUGl4Rm10RGVzY3JpcHRv ciAqZGVzYywgU3dzUmVhZFdyaXRlT3AgKnJ3X29wLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFN3c1N3aXp6bGVPcCAqc3dpenpsZSwgaW50ICpzaGlmdCkKIHsKLSAgICBjb25zdCBB VlBpeEZtdERlc2NyaXB0b3IgKmRlc2MgPSBhdl9waXhfZm10X2Rlc2NfZ2V0KGZtdCk7CiAgICAg aWYgKGRlc2MtPm5iX2NvbXBvbmVudHMgPT0gMikgewogICAgICAgICAvKiBZQSBmb3JtYXRzICov Ci0gICAgICAgIHJldHVybiBTV1NfU1dJWlpMRSgwLCAzLCAxLCAyKTsKLSAgICB9IGVsc2UgaWYg KGlzX3JlZ3VsYXJfZm10KGZtdCkpIHsKKyAgICAgICAgKnN3aXp6bGUgPSBTV1NfU1dJWlpMRSgw LCAzLCAxLCAyKTsKKyAgICB9IGVsc2UgewogICAgICAgICAvKiBTb3J0IGJ5IGluY3JlYXNpbmcg Y29tcG9uZW50IG9yZGVyICovCiAgICAgICAgIHN0cnVjdCBjb21wIHNvcnRlZFs0XSA9IHsgezB9 LCB7MX0sIHsyfSwgezN9IH07CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVzYy0+bmJf Y29tcG9uZW50czsgaSsrKSB7CkBAIC03OTAsMTEgKzc5MCw2NCBAQCBzdGF0aWMgU3dzU3dpenps ZU9wIGZtdF9zd2l6emxlKGVudW0gQVZQaXhlbEZvcm1hdCBmbXQpCiAgICAgICAgIFN3c1N3aXp6 bGVPcCBzd2l6ID0gU1dTX1NXSVpaTEUoMCwgMSwgMiwgMyk7CiAgICAgICAgIGZvciAoaW50IGkg PSAwOyBpIDwgZGVzYy0+bmJfY29tcG9uZW50czsgaSsrKQogICAgICAgICAgICAgc3dpei5pbltp XSA9IHNvcnRlZFtpXS5pbmRleDsKLSAgICAgICAgcmV0dXJuIHN3aXo7CisgICAgICAgICpzd2l6 emxlID0gc3dpejsKICAgICB9CiAKLSAgICAvKiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgZXZlciBj YWxsZWQgaWYgZm10X3JlYWRfd3JpdGUoKSBhbHJlYWR5IHBhc3NlcyAqLwotICAgIHJldHVybiBm bXRfaW5mb19pcnJlZ3VsYXIoZm10KS5zd2l6emxlOworICAgICpzaGlmdCA9IGRlc2MtPmNvbXBb MF0uc2hpZnQ7CisgICAgKnJ3X29wID0gKFN3c1JlYWRXcml0ZU9wKSB7CisgICAgICAgIC5lbGVt cyAgPSBkZXNjLT5uYl9jb21wb25lbnRzLAorICAgICAgICAucGFja2VkID0gZGVzYy0+bmJfY29t cG9uZW50cyA+IDEgJiYgIShkZXNjLT5mbGFncyAmIEFWX1BJWF9GTVRfRkxBR19QTEFOQVIpLAor ICAgIH07CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZm10X2FuYWx5emUoZW51bSBB VlBpeGVsRm9ybWF0IGZtdCwgU3dzUmVhZFdyaXRlT3AgKnJ3X29wLAorICAgICAgICAgICAgICAg ICAgICAgICBTd3NQYWNrT3AgKnBhY2tfb3AsIFN3c1N3aXp6bGVPcCAqc3dpenpsZSwgaW50ICpz aGlmdCwKKyAgICAgICAgICAgICAgICAgICAgICAgU3dzUGl4ZWxUeXBlICpwaXhlbF90eXBlLCBT d3NQaXhlbFR5cGUgKnJhd190eXBlKQoreworICAgIGNvbnN0IEFWUGl4Rm10RGVzY3JpcHRvciAq ZGVzYyA9IGF2X3BpeF9mbXRfZGVzY19nZXQoZm10KTsKKyAgICBpZiAoIWRlc2MpCisgICAgICAg IHJldHVybiBBVkVSUk9SKEVJTlZBTCk7CisKKyAgICAvKiBObyBzdXBwb3J0IGZvciBzdWJzYW1w bGVkIGZvcm1hdHMgYXQgdGhlIG1vbWVudCAqLworICAgIGlmIChkZXNjLT5sb2cyX2Nocm9tYV93 IHx8IGRlc2MtPmxvZzJfY2hyb21hX2gpCisgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT1RTVVAp OworCisgICAgLyogTm8gc3VwcG9ydCBmb3Igc2VtaS1wbGFuYXIgZm9ybWF0cyBhdCB0aGUgbW9t ZW50ICovCisgICAgaWYgKGRlc2MtPmZsYWdzICYgQVZfUElYX0ZNVF9GTEFHX1BMQU5BUiAmJgor ICAgICAgICBhdl9waXhfZm10X2NvdW50X3BsYW5lcyhmbXQpIDwgZGVzYy0+bmJfY29tcG9uZW50 cykKKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PVFNVUCk7CisKKyAgICAqcGl4ZWxfdHlwZSA9 ICpyYXdfdHlwZSA9IGZtdF9waXhlbF90eXBlKGZtdCk7CisgICAgaWYgKCEqcGl4ZWxfdHlwZSkK KyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PVFNVUCk7CisKKyAgICBpZiAoaXNfcmVndWxhcl9m bXQoZm10KSkgeworICAgICAgICAqcGFja19vcCA9IChTd3NQYWNrT3ApIHswfTsKKyAgICAgICAg cmV0dXJuIGZtdF9hbmFseXplX3JlZ3VsYXIoZGVzYywgcndfb3AsIHN3aXp6bGUsIHNoaWZ0KTsK KyAgICB9CisKKyAgICBGbXRJbmZvIGluZm8gPSBmbXRfaW5mb19pcnJlZ3VsYXIoZm10KTsKKyAg ICBpZiAoIWluZm8ucncuZWxlbXMpCisgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT1RTVVApOwor CisgICAgKnJ3X29wICAgPSBpbmZvLnJ3OworICAgICpwYWNrX29wID0gaW5mby5wYWNrOworICAg ICpzd2l6emxlID0gaW5mby5zd2l6emxlOworICAgICpzaGlmdCAgID0gaW5mby5zaGlmdDsKKwor ICAgIGlmIChpbmZvLnBhY2sucGF0dGVyblswXSkgeworICAgICAgICBjb25zdCBpbnQgc3VtID0g aW5mby5wYWNrLnBhdHRlcm5bMF0gKyBpbmZvLnBhY2sucGF0dGVyblsxXSArCisgICAgICAgICAg ICAgICAgICAgICAgICBpbmZvLnBhY2sucGF0dGVyblsyXSArIGluZm8ucGFjay5wYXR0ZXJuWzNd OworICAgICAgICBpZiAoc3VtID4gMTYpCisgICAgICAgICAgICAqcmF3X3R5cGUgPSBTV1NfUElY RUxfVTMyOworICAgICAgICBlbHNlIGlmIChzdW0gPiA4KQorICAgICAgICAgICAgKnJhd190eXBl ID0gU1dTX1BJWEVMX1UxNjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgKnJhd190eXBlID0g U1dTX1BJWEVMX1U4OworICAgIH0KKworICAgIHJldHVybiAwOwogfQogCiBzdGF0aWMgU3dzU3dp enpsZU9wIHN3aXp6bGVfaW52KFN3c1N3aXp6bGVPcCBzd2l6KSB7CkBAIC04MDcsMTggKzg2MCw2 IEBAIHN0YXRpYyBTd3NTd2l6emxlT3Agc3dpenpsZV9pbnYoU3dzU3dpenpsZU9wIHN3aXopIHsK ICAgICByZXR1cm4gKFN3c1N3aXp6bGVPcCkge3sgLnggPSBvdXRbMF0sIG91dFsxXSwgb3V0WzJd LCBvdXRbM10gfX07CiB9CiAKLS8qIFNoaWZ0IGZhY3RvciBmb3IgTVNCIGFsaWduZWQgZm9ybWF0 cyAqLwotc3RhdGljIGludCBmbXRfc2hpZnQoZW51bSBBVlBpeGVsRm9ybWF0IGZtdCkKLXsKLSAg ICBpZiAoaXNfcmVndWxhcl9mbXQoZm10KSkgewotICAgICAgICBjb25zdCBBVlBpeEZtdERlc2Ny aXB0b3IgKmRlc2MgPSBhdl9waXhfZm10X2Rlc2NfZ2V0KGZtdCk7Ci0gICAgICAgIHJldHVybiBk ZXNjLT5jb21wWzBdLnNoaWZ0OwotICAgIH0KLQotICAgIC8qIFRoaXMgZnVuY3Rpb24gaXMgb25s eSBldmVyIGNhbGxlZCBpZiBmbXRfcmVhZF93cml0ZSgpIGFscmVhZHkgcGFzc2VzICovCi0gICAg cmV0dXJuIGZtdF9pbmZvX2lycmVndWxhcihmbXQpLnNoaWZ0OwotfQotCiAvKioKICAqIFRoaXMg aW5pdGlhbGl6ZXMgYWxsIGFic2VudCBjb21wb25lbnRzIGV4cGxpY2l0bHkgdG8gemVyby4gVGhl cmUgaXMgbm8KICAqIG5lZWQgdG8gd29ycnkgYWJvdXQgdGhlIGNvcnJlY3QgbmV1dHJhbCB2YWx1 ZSBhcyBmbXRfZGVjb2RlKCkgd2lsbApAQCAtODQyLDU2ICs4ODMsNiBAQCBzdGF0aWMgU3dzQ29u c3QgZm10X2NsZWFyKGVudW0gQVZQaXhlbEZvcm1hdCBmbXQpCiAgICAgcmV0dXJuIGM7CiB9CiAK LXN0YXRpYyBpbnQgZm10X3JlYWRfd3JpdGUoZW51bSBBVlBpeGVsRm9ybWF0IGZtdCwgU3dzUmVh ZFdyaXRlT3AgKnJ3X29wLAotICAgICAgICAgICAgICAgICAgICAgICAgICBTd3NQYWNrT3AgKnBh Y2tfb3AsIFN3c1BpeGVsVHlwZSAqcGl4ZWxfdHlwZSkKLXsKLSAgICBjb25zdCBBVlBpeEZtdERl c2NyaXB0b3IgKmRlc2MgPSBhdl9waXhfZm10X2Rlc2NfZ2V0KGZtdCk7Ci0gICAgaWYgKCFkZXNj KQotICAgICAgICByZXR1cm4gQVZFUlJPUihFSU5WQUwpOwotCi0gICAgLyogTm8gc3VwcG9ydCBm b3Igc3Vic2FtcGxlZCBmb3JtYXRzIGF0IHRoZSBtb21lbnQgKi8KLSAgICBpZiAoZGVzYy0+bG9n Ml9jaHJvbWFfdyB8fCBkZXNjLT5sb2cyX2Nocm9tYV9oKQotICAgICAgICByZXR1cm4gQVZFUlJP UihFTk9UU1VQKTsKLQotICAgIC8qIE5vIHN1cHBvcnQgZm9yIHNlbWktcGxhbmFyIGZvcm1hdHMg YXQgdGhlIG1vbWVudCAqLwotICAgIGlmIChkZXNjLT5mbGFncyAmIEFWX1BJWF9GTVRfRkxBR19Q TEFOQVIgJiYKLSAgICAgICAgYXZfcGl4X2ZtdF9jb3VudF9wbGFuZXMoZm10KSA8IGRlc2MtPm5i X2NvbXBvbmVudHMpCi0gICAgICAgIHJldHVybiBBVkVSUk9SKEVOT1RTVVApOwotCi0gICAgKnBp eGVsX3R5cGUgPSBmbXRfcGl4ZWxfdHlwZShmbXQpOwotICAgIGlmICghKnBpeGVsX3R5cGUpCi0g ICAgICAgIHJldHVybiBBVkVSUk9SKEVOT1RTVVApOwotCi0gICAgaWYgKGlzX3JlZ3VsYXJfZm10 KGZtdCkpIHsKLSAgICAgICAgKnBhY2tfb3AgPSAoU3dzUGFja09wKSB7MH07Ci0gICAgICAgICpy d19vcCA9IChTd3NSZWFkV3JpdGVPcCkgewotICAgICAgICAgICAgLmVsZW1zICA9IGRlc2MtPm5i X2NvbXBvbmVudHMsCi0gICAgICAgICAgICAucGFja2VkID0gZGVzYy0+bmJfY29tcG9uZW50cyA+ IDEgJiYgIShkZXNjLT5mbGFncyAmIEFWX1BJWF9GTVRfRkxBR19QTEFOQVIpLAotICAgICAgICB9 OwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBGbXRJbmZvIGluZm8gPSBmbXRfaW5m b19pcnJlZ3VsYXIoZm10KTsKLSAgICBpZiAoIWluZm8ucncuZWxlbXMpCi0gICAgICAgIHJldHVy biBBVkVSUk9SKEVOT1RTVVApOwotCi0gICAgKnBhY2tfb3AgPSBpbmZvLnBhY2s7Ci0gICAgKnJ3 X29wICAgPSBpbmZvLnJ3OwotICAgIHJldHVybiAwOwotfQotCi1zdGF0aWMgU3dzUGl4ZWxUeXBl IGdldF9wYWNrZWRfdHlwZShTd3NQYWNrT3AgcGFjaykKLXsKLSAgICBjb25zdCBpbnQgc3VtID0g cGFjay5wYXR0ZXJuWzBdICsgcGFjay5wYXR0ZXJuWzFdICsKLSAgICAgICAgICAgICAgICAgICAg cGFjay5wYXR0ZXJuWzJdICsgcGFjay5wYXR0ZXJuWzNdOwotICAgIGlmIChzdW0gPiAxNikKLSAg ICAgICAgcmV0dXJuIFNXU19QSVhFTF9VMzI7Ci0gICAgZWxzZSBpZiAoc3VtID4gOCkKLSAgICAg ICAgcmV0dXJuIFNXU19QSVhFTF9VMTY7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gU1dTX1BJ WEVMX1U4OwotfQotCiAjaWYgSEFWRV9CSUdFTkRJQU4KICMgIGRlZmluZSBOQVRJVkVfRU5ESUFO X0ZMQUcgQVZfUElYX0ZNVF9GTEFHX0JFCiAjZWxzZQpAQCAtOTAxLDE1ICs4OTIsMTQgQEAgc3Rh dGljIFN3c1BpeGVsVHlwZSBnZXRfcGFja2VkX3R5cGUoU3dzUGFja09wIHBhY2spCiBpbnQgZmZf c3dzX2RlY29kZV9waXhmbXQoU3dzT3BMaXN0ICpvcHMsIGVudW0gQVZQaXhlbEZvcm1hdCBmbXQp CiB7CiAgICAgY29uc3QgQVZQaXhGbXREZXNjcmlwdG9yICpkZXNjID0gYXZfcGl4X2ZtdF9kZXNj X2dldChmbXQpOwotICAgIFN3c1BpeGVsVHlwZSBwaXhlbF90eXBlOworICAgIFN3c1BpeGVsVHlw ZSBwaXhlbF90eXBlLCByYXdfdHlwZTsKICAgICBTd3NSZWFkV3JpdGVPcCByd19vcDsKKyAgICBT d3NTd2l6emxlT3Agc3dpenpsZTsKICAgICBTd3NQYWNrT3AgdW5wYWNrOworICAgIGludCBzaGlm dDsKIAotICAgIFJFVChmbXRfcmVhZF93cml0ZShmbXQsICZyd19vcCwgJnVucGFjaywgJnBpeGVs X3R5cGUpKTsKLQotICAgIFN3c1BpeGVsVHlwZSByYXdfdHlwZSA9IHBpeGVsX3R5cGU7Ci0gICAg aWYgKHVucGFjay5wYXR0ZXJuWzBdKQotICAgICAgICByYXdfdHlwZSA9IGdldF9wYWNrZWRfdHlw ZSh1bnBhY2spOworICAgIFJFVChmbXRfYW5hbHl6ZShmbXQsICZyd19vcCwgJnVucGFjaywgJnN3 aXp6bGUsICZzaGlmdCwKKyAgICAgICAgICAgICAgICAgICAgJnBpeGVsX3R5cGUsICZyYXdfdHlw ZSkpOwogCiAgICAgLyogVE9ETzogaGFuZGxlIHN1YnNhbXBsZWQgb3Igc2VtaXBhY2tlZCBpbnB1 dCBmb3JtYXRzICovCiAgICAgUkVUKGZmX3N3c19vcF9saXN0X2FwcGVuZChvcHMsICYoU3dzT3Ap IHsKQEAgLTk0MiwxMyArOTMyLDEzIEBAIGludCBmZl9zd3NfZGVjb2RlX3BpeGZtdChTd3NPcExp c3QgKm9wcywgZW51bSBBVlBpeGVsRm9ybWF0IGZtdCkKICAgICBSRVQoZmZfc3dzX29wX2xpc3Rf YXBwZW5kKG9wcywgJihTd3NPcCkgewogICAgICAgICAub3AgICAgICA9IFNXU19PUF9TV0laWkxF LAogICAgICAgICAudHlwZSAgICA9IHBpeGVsX3R5cGUsCi0gICAgICAgIC5zd2l6emxlID0gc3dp enpsZV9pbnYoZm10X3N3aXp6bGUoZm10KSksCisgICAgICAgIC5zd2l6emxlID0gc3dpenpsZV9p bnYoc3dpenpsZSksCiAgICAgfSkpOwogCiAgICAgUkVUKGZmX3N3c19vcF9saXN0X2FwcGVuZChv cHMsICYoU3dzT3ApIHsKICAgICAgICAgLm9wICAgPSBTV1NfT1BfUlNISUZULAogICAgICAgICAu dHlwZSA9IHBpeGVsX3R5cGUsCi0gICAgICAgIC5jLnUgID0gZm10X3NoaWZ0KGZtdCksCisgICAg ICAgIC5jLnUgID0gc2hpZnQsCiAgICAgfSkpOwogCiAgICAgUkVUKGZmX3N3c19vcF9saXN0X2Fw cGVuZChvcHMsICYoU3dzT3ApIHsKQEAgLTk2MywyMCArOTUzLDE5IEBAIGludCBmZl9zd3NfZGVj b2RlX3BpeGZtdChTd3NPcExpc3QgKm9wcywgZW51bSBBVlBpeGVsRm9ybWF0IGZtdCkKIGludCBm Zl9zd3NfZW5jb2RlX3BpeGZtdChTd3NPcExpc3QgKm9wcywgZW51bSBBVlBpeGVsRm9ybWF0IGZt dCkKIHsKICAgICBjb25zdCBBVlBpeEZtdERlc2NyaXB0b3IgKmRlc2MgPSBhdl9waXhfZm10X2Rl c2NfZ2V0KGZtdCk7Ci0gICAgU3dzUGl4ZWxUeXBlIHBpeGVsX3R5cGU7CisgICAgU3dzUGl4ZWxU eXBlIHBpeGVsX3R5cGUsIHJhd190eXBlOwogICAgIFN3c1JlYWRXcml0ZU9wIHJ3X29wOworICAg IFN3c1N3aXp6bGVPcCBzd2l6emxlOwogICAgIFN3c1BhY2tPcCBwYWNrOworICAgIGludCBzaGlm dDsKIAotICAgIFJFVChmbXRfcmVhZF93cml0ZShmbXQsICZyd19vcCwgJnBhY2ssICZwaXhlbF90 eXBlKSk7Ci0KLSAgICBTd3NQaXhlbFR5cGUgcmF3X3R5cGUgPSBwaXhlbF90eXBlOwotICAgIGlm IChwYWNrLnBhdHRlcm5bMF0pCi0gICAgICAgIHJhd190eXBlID0gZ2V0X3BhY2tlZF90eXBlKHBh Y2spOworICAgIFJFVChmbXRfYW5hbHl6ZShmbXQsICZyd19vcCwgJnBhY2ssICZzd2l6emxlLCAm c2hpZnQsCisgICAgICAgICAgICAgICAgICAgICZwaXhlbF90eXBlLCAmcmF3X3R5cGUpKTsKIAog ICAgIFJFVChmZl9zd3Nfb3BfbGlzdF9hcHBlbmQob3BzLCAmKFN3c09wKSB7CiAgICAgICAgIC5v cCAgID0gU1dTX09QX0xTSElGVCwKICAgICAgICAgLnR5cGUgPSBwaXhlbF90eXBlLAotICAgICAg ICAuYy51ICA9IGZtdF9zaGlmdChmbXQpLAorICAgICAgICAuYy51ICA9IHNoaWZ0LAogICAgIH0p KTsKIAogICAgIGlmIChyd19vcC5lbGVtcyA+IGRlc2MtPm5iX2NvbXBvbmVudHMpIHsKQEAgLTk5 Miw3ICs5ODEsNyBAQCBpbnQgZmZfc3dzX2VuY29kZV9waXhmbXQoU3dzT3BMaXN0ICpvcHMsIGVu dW0gQVZQaXhlbEZvcm1hdCBmbXQpCiAgICAgUkVUKGZmX3N3c19vcF9saXN0X2FwcGVuZChvcHMs ICYoU3dzT3ApIHsKICAgICAgICAgLm9wICAgICAgPSBTV1NfT1BfU1dJWlpMRSwKICAgICAgICAg LnR5cGUgICAgPSBwaXhlbF90eXBlLAotICAgICAgICAuc3dpenpsZSA9IGZtdF9zd2l6emxlKGZt dCksCisgICAgICAgIC5zd2l6emxlID0gc3dpenpsZSwKICAgICB9KSk7CiAKICAgICBpZiAocGFj ay5wYXR0ZXJuWzBdKSB7CkBAIC0xMDIxLDYgKzEwMTAsNyBAQCBpbnQgZmZfc3dzX2VuY29kZV9w aXhmbXQoU3dzT3BMaXN0ICpvcHMsIGVudW0gQVZQaXhlbEZvcm1hdCBmbXQpCiAgICAgICAgIC50 eXBlID0gcmF3X3R5cGUsCiAgICAgICAgIC5ydyAgID0gcndfb3AsCiAgICAgfSkpOworCiAgICAg cmV0dXJuIDA7CiB9CiAKLS0gCjIuNTIuMAoKCkZyb20gMzcwMjMxNmY1MTcyODRjNGJlMTY2Y2Fl YzYyYzYzZTMxZWExYTQzNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2FtZXJvbiBH dXRtYW4gPGFpY29tbWFuZGVyQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA3IERlYyAyMDI1IDEzOjUx OjA1IC0wNjAwClN1YmplY3Q6IFtQQVRDSCAyODUvMzA0XSBod2NvbnRleHRfdnVsa2FuOiBhZGQg QVBJcyB0byBnZXQgb3B0aW9uYWwgZXh0ZW5zaW9ucwoKVGhlc2UgcHJvdmlkZSBhIHdheSBmb3Ig YXBwcyB0aGF0IGluaXRpYWxpemUgVnVsa2FuIHRoZW1zZWx2ZXMgdG8ga25vdwp3aGljaCBleHRl bnNpb25zIHdlIG1heSBiZSBhYmxlIHRvIHVzZSB3aXRob3V0IGhhdmluZyB0byBoYXJkY29kZSBp dC4KClNpZ25lZC1vZmYtYnk6IENhbWVyb24gR3V0bWFuIDxhaWNvbW1hbmRlckBnbWFpbC5jb20+ Ci0tIAoyLjUyLjAKCgpGcm9tIGZiYWQyYWE2M2Y0Zjc2MzI3NDlmZWU1ZGM4YjY2ZGNlZGY4NDU0 NTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENhbWVyb24gR3V0bWFuIDxhaWNvbW1h bmRlckBnbWFpbC5jb20+CkRhdGU6IFN1biwgNyBEZWMgMjAyNSAxMzo1Nzo0MiAtMDYwMApTdWJq ZWN0OiBbUEFUQ0ggMjg2LzMwNF0gZmZ0b29scy9mZnBsYXlfcmVuZGVyZXI6IHVzZSBuZXcgVnVs a2FuIGV4dGVuc2lvbiBBUEkKClNpZ25lZC1vZmYtYnk6IENhbWVyb24gR3V0bWFuIDxhaWNvbW1h bmRlckBnbWFpbC5jb20+Ci0tIAoyLjUyLjAKCgpGcm9tIDE3ODg5MzQ3OWM4N2IyMThjM2Y4MmVk Zjc1YjY0ZDcwMGJhYjU4Y2QgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEphbWVzIEFs bWVyIDxqYW1yaWFsQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA1IERlYyAyMDI1IDIyOjQwOjQwIC0w MzAwClN1YmplY3Q6IFtQQVRDSCAyODcvMzA0XSBhdmZvcm1hdC9pYW1mX3BhcnNlOiBmaXggcGFy c2luZyBvZiBTY2FsYWJsZSBsYXlvdXRzCiB3aXRoIE1vbm8gYW5kIFN0ZXJlbyBsYXllcnMKCkFu IEFTQU4gaGVhcC1idWZmZXItb3ZlcmZsb3cgaW4gc2NhbGFibGVfY2hhbm5lbF9sYXlvdXRfY29u ZmlnIHdhcyBjYXVzZWQgYnkgYW4KdW5jaGVja2VkIGFzc3VtcHRpb24gdGhhdCB0aGUgY2hhbm5l bCBsYXlvdXQgb2YgYSBzY2FsYWJsZSBhdWRpbyBsYXllciBpcyBhCnN1cGVyc2V0IG9mIHRoZSBw cmV2aW91cyBsYXllcidzIGNoYW5uZWwgbGF5b3V0LgoKc2NhbGFibGVfY2hhbm5lbF9sYXlvdXRf Y29uZmlnIGNvbnN0cnVjdHMgYSBjaGFubmVsIGxheW91dCBtYXAgYnkgY29weWluZwpjaGFubmVs cyBmcm9tIHRoZSBwcmV2aW91cyBsYXllciBhbmQgYWRkaW5nIG5ldyBvbmVzLiBUaGUgbWVtb3J5 IGFsbG9jYXRpb24gaXMKYmFzZWQgb24gdGhlIHRhcmdldCBsb3Vkc3BlYWtlcl9sYXlvdXQuIEhv d2V2ZXIsIGlmIHRoZSB0YXJnZXQgbGF5b3V0IGRvZXNuJ3QKZW5jb21wYXNzIGFsbCBwcmV2aW91 cyBjaGFubmVscyAoZS5nLiwgTW9ubyB0byBTdGVyZW8pLCBjb3B5aW5nIHByZXZpb3VzCmNoYW5u ZWxzIGZvbGxvd2VkIGJ5IGFkZGluZyBjdXJyZW50IG9uZXMgY291bGQgZXhjZWVkIHRoZSBhbGxv Y2F0ZWQgc2l6ZSwKY2F1c2luZyBhIGhlYXAgYnVmZmVyIG92ZXJmbG93LgoKVGhpcyBjb21taXQg YWRkcyBhbiBleGNlcHRpb24gZm9yIHRoZSBrbm93IGNhc2Ugb2YgTW9ubyAtPiBTdGVyZW8sIGFu ZCBhIGNoZWNrCnRvIGVuc3VyZSB0aGUgcHJldmlvdXMgbGF5ZXIncyBjaGFubmVsIGxheW91dCBp cyBhIHN1YnNldCBvZiB0aGUgY3VycmVudApsYXllcidzIGxheW91dCBieSBjb21wYXJpbmcgdGhl aXIgbWFza3MuIElmIHRoZSBjb25kaXRpb24gaXNuJ3QgbWV0LAphbiBlcnJvciBpcyByZXR1cm5l ZC4KCkZpeGVzOiBodHRwczovL2lzc3Vlcy5vc3MtZnV6ei5jb20vaXNzdWVzLzQ2NDk2NTQxNAoK Q28tYXV0aG9yZWQtYnk6IE9saXZlciBDaGFuZyA8b2NoYW5nQGdvb2dsZS5jb20+ClNpZ25lZC1v ZmYtYnk6IEphbWVzIEFsbWVyIDxqYW1yaWFsQGdtYWlsLmNvbT4KLS0tCiBsaWJhdmZvcm1hdC9p YW1mX3BhcnNlLmMgfCA3OSArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbGliYXZmb3JtYXQvaWFtZl9wYXJzZS5jIGIvbGliYXZmb3JtYXQvaWFtZl9wYXJz ZS5jCmluZGV4IDU5N2Q4MDBiZTAuLjNkNzg1MzNmYWYgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0 L2lhbWZfcGFyc2UuYworKysgYi9saWJhdmZvcm1hdC9pYW1mX3BhcnNlLmMKQEAgLTM0Nyw2ICsz NDcsNDEgQEAgc3RhdGljIGludCB1cGRhdGVfZXh0cmFkYXRhKEFWQ29kZWNQYXJhbWV0ZXJzICpj b2RlY3BhcikKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBwYXJzZV9jb3VwbGVkX3N1 YnN0cmVhbShBVkNoYW5uZWxMYXlvdXQgKm91dCwgQVZDaGFubmVsTGF5b3V0ICppbiwgaW50IG4p Cit7CisgICAgaWYgKGluLT51Lm1hc2sgJiBBVl9DSF9MQVlPVVRfU1RFUkVPKSB7CisgICAgICAg IG91dC0+dS5tYXBbbisrXS5pZCA9IEFWX0NIQU5fRlJPTlRfTEVGVDsKKyAgICAgICAgb3V0LT51 Lm1hcFtuKytdLmlkID0gQVZfQ0hBTl9GUk9OVF9SSUdIVDsKKyAgICAgICAgaW4tPnUubWFzayAm PSB+QVZfQ0hfTEFZT1VUX1NURVJFTzsKKyAgICB9IGVsc2UgaWYgKGluLT51Lm1hc2sgJiAoQVZf Q0hfRlJPTlRfTEVGVF9PRl9DRU5URVJ8QVZfQ0hfRlJPTlRfUklHSFRfT0ZfQ0VOVEVSKSkgewor ICAgICAgICBvdXQtPnUubWFwW24rK10uaWQgPSBBVl9DSEFOX0ZST05UX0xFRlRfT0ZfQ0VOVEVS OworICAgICAgICBvdXQtPnUubWFwW24rK10uaWQgPSBBVl9DSEFOX0ZST05UX1JJR0hUX09GX0NF TlRFUjsKKyAgICAgICAgaW4tPnUubWFzayAmPSB+KEFWX0NIX0ZST05UX0xFRlRfT0ZfQ0VOVEVS fEFWX0NIX0ZST05UX1JJR0hUX09GX0NFTlRFUik7CisgICAgfSBlbHNlIGlmIChpbi0+dS5tYXNr ICYgKEFWX0NIX1NJREVfTEVGVHxBVl9DSF9TSURFX1JJR0hUKSkgeworICAgICAgICBvdXQtPnUu bWFwW24rK10uaWQgPSBBVl9DSEFOX1NJREVfTEVGVDsKKyAgICAgICAgb3V0LT51Lm1hcFtuKytd LmlkID0gQVZfQ0hBTl9TSURFX1JJR0hUOworICAgICAgICBpbi0+dS5tYXNrICY9IH4oQVZfQ0hf U0lERV9MRUZUfEFWX0NIX1NJREVfUklHSFQpOworICAgIH0gZWxzZSBpZiAoaW4tPnUubWFzayAm IChBVl9DSF9CQUNLX0xFRlR8QVZfQ0hfQkFDS19SSUdIVCkpIHsKKyAgICAgICAgb3V0LT51Lm1h cFtuKytdLmlkID0gQVZfQ0hBTl9CQUNLX0xFRlQ7CisgICAgICAgIG91dC0+dS5tYXBbbisrXS5p ZCA9IEFWX0NIQU5fQkFDS19SSUdIVDsKKyAgICAgICAgaW4tPnUubWFzayAmPSB+KEFWX0NIX0JB Q0tfTEVGVHxBVl9DSF9CQUNLX1JJR0hUKTsKKyAgICB9IGVsc2UgaWYgKGluLT51Lm1hc2sgJiAo QVZfQ0hfVE9QX0ZST05UX0xFRlR8QVZfQ0hfVE9QX0ZST05UX1JJR0hUKSkgeworICAgICAgICBv dXQtPnUubWFwW24rK10uaWQgPSBBVl9DSEFOX1RPUF9GUk9OVF9MRUZUOworICAgICAgICBvdXQt PnUubWFwW24rK10uaWQgPSBBVl9DSEFOX1RPUF9GUk9OVF9SSUdIVDsKKyAgICAgICAgaW4tPnUu bWFzayAmPSB+KEFWX0NIX1RPUF9GUk9OVF9MRUZUfEFWX0NIX1RPUF9GUk9OVF9SSUdIVCk7Cisg ICAgfSBlbHNlIGlmIChpbi0+dS5tYXNrICYgKEFWX0NIX1RPUF9TSURFX0xFRlR8QVZfQ0hfVE9Q X1NJREVfUklHSFQpKSB7CisgICAgICAgIG91dC0+dS5tYXBbbisrXS5pZCA9IEFWX0NIQU5fVE9Q X1NJREVfTEVGVDsKKyAgICAgICAgb3V0LT51Lm1hcFtuKytdLmlkID0gQVZfQ0hBTl9UT1BfU0lE RV9SSUdIVDsKKyAgICAgICAgaW4tPnUubWFzayAmPSB+KEFWX0NIX1RPUF9TSURFX0xFRlR8QVZf Q0hfVE9QX1NJREVfUklHSFQpOworICAgIH0gZWxzZSBpZiAoaW4tPnUubWFzayAmIChBVl9DSF9U T1BfQkFDS19MRUZUfEFWX0NIX1RPUF9CQUNLX1JJR0hUKSkgeworICAgICAgICBvdXQtPnUubWFw W24rK10uaWQgPSBBVl9DSEFOX1RPUF9CQUNLX0xFRlQ7CisgICAgICAgIG91dC0+dS5tYXBbbisr XS5pZCA9IEFWX0NIQU5fVE9QX0JBQ0tfUklHSFQ7CisgICAgICAgIGluLT51Lm1hc2sgJj0gfihB Vl9DSF9UT1BfQkFDS19MRUZUfEFWX0NIX1RPUF9CQUNLX1JJR0hUKTsKKyAgICB9CisKKyAgICBy ZXR1cm4gbjsKK30KKwogc3RhdGljIGludCBzY2FsYWJsZV9jaGFubmVsX2xheW91dF9jb25maWco dm9pZCAqcywgQVZJT0NvbnRleHQgKnBiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSUFNRkF1ZGlvRWxlbWVudCAqYXVkaW9fZWxlbWVudCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElBTUZDb2RlY0NvbmZpZyAqY29k ZWNfY29uZmlnKQpAQCAtMzk1LDEyICs0MzAsMTkgQEAgc3RhdGljIGludCBzY2FsYWJsZV9jaGFu bmVsX2xheW91dF9jb25maWcodm9pZCAqcywgQVZJT0NvbnRleHQgKnBiLAogCiAgICAgICAgIGlm ICghaSAmJiBsb3Vkc3BlYWtlcl9sYXlvdXQgPT0gMTUpCiAgICAgICAgICAgICBleHBhbmRlZF9s b3Vkc3BlYWtlcl9sYXlvdXQgPSBhdmlvX3I4KHBiKTsKLSAgICAgICAgaWYgKGV4cGFuZGVkX2xv dWRzcGVha2VyX2xheW91dCA+IDAgJiYgZXhwYW5kZWRfbG91ZHNwZWFrZXJfbGF5b3V0IDwgMTMp IHsKKyAgICAgICAgaWYgKGV4cGFuZGVkX2xvdWRzcGVha2VyX2xheW91dCA+PSAwICYmIGV4cGFu ZGVkX2xvdWRzcGVha2VyX2xheW91dCA8IDEzKSB7CiAgICAgICAgICAgICBhdl9jaGFubmVsX2xh eW91dF9jb3B5KCZjaF9sYXlvdXQsICZmZl9pYW1mX2V4cGFuZGVkX3NjYWxhYmxlX2NoX2xheW91 dHNbZXhwYW5kZWRfbG91ZHNwZWFrZXJfbGF5b3V0XSk7CiAgICAgICAgIH0gZWxzZSBpZiAobG91 ZHNwZWFrZXJfbGF5b3V0IDwgMTApIHsKICAgICAgICAgICAgIGF2X2NoYW5uZWxfbGF5b3V0X2Nv cHkoJmNoX2xheW91dCwgJmZmX2lhbWZfc2NhbGFibGVfY2hfbGF5b3V0c1tsb3Vkc3BlYWtlcl9s YXlvdXRdKTsKLSAgICAgICAgICAgIGlmIChpKQotICAgICAgICAgICAgICAgIGNoX2xheW91dC51 Lm1hc2sgJj0gfmF2X2NoYW5uZWxfbGF5b3V0X3N1YnNldCgmYXVkaW9fZWxlbWVudC0+ZWxlbWVu dC0+bGF5ZXJzW2ktMV0tPmNoX2xheW91dCwgVUlOVDY0X01BWCk7CisgICAgICAgICAgICBpZiAo aSkgeworICAgICAgICAgICAgICAgIHVpbnQ2NF90IG1hc2sgPSBhdl9jaGFubmVsX2xheW91dF9z dWJzZXQoJmF1ZGlvX2VsZW1lbnQtPmVsZW1lbnQtPmxheWVyc1tpLTFdLT5jaF9sYXlvdXQsIFVJ TlQ2NF9NQVgpOworICAgICAgICAgICAgICAgIC8vIFdoZW4gdGhlIGZpcnN0IGxheWVyIGlzIE1v bm8sIHRoZSBzZWNvbmQgbGF5ZXIgbWF5IG5vdCBoYXZlIHRoZSBDIGNoYW5uZWwgKGUuZy4gU3Rl cmVvKQorICAgICAgICAgICAgICAgIGlmIChhdWRpb19lbGVtZW50LT5lbGVtZW50LT5sYXllcnNb aS0xXS0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzID09IDEpCisgICAgICAgICAgICAgICAgICAgIG4t LTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmICgoY2hfbGF5b3V0LnUubWFzayAmIG1hc2spICE9 IG1hc2spCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwor ICAgICAgICAgICAgICAgIGNoX2xheW91dC51Lm1hc2sgJj0gfm1hc2s7CisgICAgICAgICAgICB9 CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgY2hfbGF5b3V0ID0gKEFWQ2hhbm5lbExheW91 dCl7IC5vcmRlciA9IEFWX0NIQU5ORUxfT1JERVJfVU5TUEVDLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5uYl9jaGFubmVscyA9IHN1 YnN0cmVhbV9jb3VudCArCkBAIC00MzAsMzggKzQ3MiwxMSBAQCBzdGF0aWMgaW50IHNjYWxhYmxl X2NoYW5uZWxfbGF5b3V0X2NvbmZpZyh2b2lkICpzLCBBVklPQ29udGV4dCAqcGIsCiAKICAgICAg ICAgICAgIGNvdXBsZWRfc3Vic3RyZWFtX2NvdW50ID0gYXVkaW9fZWxlbWVudC0+bGF5ZXJzW2ld LmNvdXBsZWRfc3Vic3RyZWFtX2NvdW50OwogICAgICAgICAgICAgd2hpbGUgKGNvdXBsZWRfc3Vi c3RyZWFtX2NvdW50LS0pIHsKLSAgICAgICAgICAgICAgICBpZiAoY2hfbGF5b3V0LnUubWFzayAm IEFWX0NIX0xBWU9VVF9TVEVSRU8pIHsKLSAgICAgICAgICAgICAgICAgICAgbGF5ZXItPmNoX2xh eW91dC51Lm1hcFtuKytdLmlkID0gQVZfQ0hBTl9GUk9OVF9MRUZUOwotICAgICAgICAgICAgICAg ICAgICBsYXllci0+Y2hfbGF5b3V0LnUubWFwW24rK10uaWQgPSBBVl9DSEFOX0ZST05UX1JJR0hU OwotICAgICAgICAgICAgICAgICAgICBjaF9sYXlvdXQudS5tYXNrICY9IH5BVl9DSF9MQVlPVVRf U1RFUkVPOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hfbGF5b3V0LnUubWFzayAmIChB Vl9DSF9GUk9OVF9MRUZUX09GX0NFTlRFUnxBVl9DSF9GUk9OVF9SSUdIVF9PRl9DRU5URVIpKSB7 Ci0gICAgICAgICAgICAgICAgICAgIGxheWVyLT5jaF9sYXlvdXQudS5tYXBbbisrXS5pZCA9IEFW X0NIQU5fRlJPTlRfTEVGVF9PRl9DRU5URVI7Ci0gICAgICAgICAgICAgICAgICAgIGxheWVyLT5j aF9sYXlvdXQudS5tYXBbbisrXS5pZCA9IEFWX0NIQU5fRlJPTlRfUklHSFRfT0ZfQ0VOVEVSOwot ICAgICAgICAgICAgICAgICAgICBjaF9sYXlvdXQudS5tYXNrICY9IH4oQVZfQ0hfRlJPTlRfTEVG VF9PRl9DRU5URVJ8QVZfQ0hfRlJPTlRfUklHSFRfT0ZfQ0VOVEVSKTsKLSAgICAgICAgICAgICAg ICB9IGVsc2UgaWYgKGNoX2xheW91dC51Lm1hc2sgJiAoQVZfQ0hfU0lERV9MRUZUfEFWX0NIX1NJ REVfUklHSFQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxheWVyLT5jaF9sYXlvdXQudS5tYXBb bisrXS5pZCA9IEFWX0NIQU5fU0lERV9MRUZUOwotICAgICAgICAgICAgICAgICAgICBsYXllci0+ Y2hfbGF5b3V0LnUubWFwW24rK10uaWQgPSBBVl9DSEFOX1NJREVfUklHSFQ7Ci0gICAgICAgICAg ICAgICAgICAgIGNoX2xheW91dC51Lm1hc2sgJj0gfihBVl9DSF9TSURFX0xFRlR8QVZfQ0hfU0lE RV9SSUdIVCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaF9sYXlvdXQudS5tYXNrICYg KEFWX0NIX0JBQ0tfTEVGVHxBVl9DSF9CQUNLX1JJR0hUKSkgewotICAgICAgICAgICAgICAgICAg ICBsYXllci0+Y2hfbGF5b3V0LnUubWFwW24rK10uaWQgPSBBVl9DSEFOX0JBQ0tfTEVGVDsKLSAg ICAgICAgICAgICAgICAgICAgbGF5ZXItPmNoX2xheW91dC51Lm1hcFtuKytdLmlkID0gQVZfQ0hB Tl9CQUNLX1JJR0hUOwotICAgICAgICAgICAgICAgICAgICBjaF9sYXlvdXQudS5tYXNrICY9IH4o QVZfQ0hfQkFDS19MRUZUfEFWX0NIX0JBQ0tfUklHSFQpOwotICAgICAgICAgICAgICAgIH0gZWxz ZSBpZiAoY2hfbGF5b3V0LnUubWFzayAmIChBVl9DSF9UT1BfRlJPTlRfTEVGVHxBVl9DSF9UT1Bf RlJPTlRfUklHSFQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxheWVyLT5jaF9sYXlvdXQudS5t YXBbbisrXS5pZCA9IEFWX0NIQU5fVE9QX0ZST05UX0xFRlQ7Ci0gICAgICAgICAgICAgICAgICAg IGxheWVyLT5jaF9sYXlvdXQudS5tYXBbbisrXS5pZCA9IEFWX0NIQU5fVE9QX0ZST05UX1JJR0hU OwotICAgICAgICAgICAgICAgICAgICBjaF9sYXlvdXQudS5tYXNrICY9IH4oQVZfQ0hfVE9QX0ZS T05UX0xFRlR8QVZfQ0hfVE9QX0ZST05UX1JJR0hUKTsKLSAgICAgICAgICAgICAgICB9IGVsc2Ug aWYgKGNoX2xheW91dC51Lm1hc2sgJiAoQVZfQ0hfVE9QX1NJREVfTEVGVHxBVl9DSF9UT1BfU0lE RV9SSUdIVCkpIHsKLSAgICAgICAgICAgICAgICAgICAgbGF5ZXItPmNoX2xheW91dC51Lm1hcFtu KytdLmlkID0gQVZfQ0hBTl9UT1BfU0lERV9MRUZUOwotICAgICAgICAgICAgICAgICAgICBsYXll ci0+Y2hfbGF5b3V0LnUubWFwW24rK10uaWQgPSBBVl9DSEFOX1RPUF9TSURFX1JJR0hUOwotICAg ICAgICAgICAgICAgICAgICBjaF9sYXlvdXQudS5tYXNrICY9IH4oQVZfQ0hfVE9QX1NJREVfTEVG VHxBVl9DSF9UT1BfU0lERV9SSUdIVCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaF9s YXlvdXQudS5tYXNrICYgKEFWX0NIX1RPUF9CQUNLX0xFRlR8QVZfQ0hfVE9QX0JBQ0tfUklHSFQp KSB7Ci0gICAgICAgICAgICAgICAgICAgIGxheWVyLT5jaF9sYXlvdXQudS5tYXBbbisrXS5pZCA9 IEFWX0NIQU5fVE9QX0JBQ0tfTEVGVDsKLSAgICAgICAgICAgICAgICAgICAgbGF5ZXItPmNoX2xh eW91dC51Lm1hcFtuKytdLmlkID0gQVZfQ0hBTl9UT1BfQkFDS19SSUdIVDsKLSAgICAgICAgICAg ICAgICAgICAgY2hfbGF5b3V0LnUubWFzayAmPSB+KEFWX0NIX1RPUF9CQUNLX0xFRlR8QVZfQ0hf VE9QX0JBQ0tfUklHSFQpOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuID0g cGFyc2VfY291cGxlZF9zdWJzdHJlYW0oJmxheWVyLT5jaF9sYXlvdXQsICZjaF9sYXlvdXQsIG4p OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBzdWJzdHJlYW1fY291bnQgLT0gYXVkaW9f ZWxlbWVudC0+bGF5ZXJzW2ldLmNvdXBsZWRfc3Vic3RyZWFtX2NvdW50OworICAgICAgICAgICAg biA9IHBhcnNlX2NvdXBsZWRfc3Vic3RyZWFtKCZsYXllci0+Y2hfbGF5b3V0LCAmY2hfbGF5b3V0 LCBuKTsgLy8gSW4gY2FzZSB0aGUgZmlyc3QgbGF5ZXIgaXMgTW9ubwogICAgICAgICAgICAgd2hp bGUgKHN1YnN0cmVhbV9jb3VudC0tKSB7CiAgICAgICAgICAgICAgICAgaWYgKGNoX2xheW91dC51 Lm1hc2sgJiBBVl9DSF9GUk9OVF9DRU5URVIpIHsKICAgICAgICAgICAgICAgICAgICAgbGF5ZXIt PmNoX2xheW91dC51Lm1hcFtuKytdLmlkID0gQVZfQ0hBTl9GUk9OVF9DRU5URVI7Ci0tIAoyLjUy LjAKCgpGcm9tIDExNDJhZWVlNWI2NmQxMTdhYzdhZDc4ZWU2YmQzZDQ1ZDdmN2VlYzggTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEphbWVzIEFsbWVyIDxqYW1yaWFsQGdtYWlsLmNvbT4K RGF0ZTogRnJpLCA1IERlYyAyMDI1IDIyOjUzOjIyIC0wMzAwClN1YmplY3Q6IFtQQVRDSCAyODgv MzA0XSBhdmZvcm1hdC9pYW1mX3BhcnNlOiBhZGQgYSBmZXcgZXh0cmEgc2FuaXR5IGNoZWNrcwoK U2lnbmVkLW9mZi1ieTogSmFtZXMgQWxtZXIgPGphbXJpYWxAZ21haWwuY29tPgotLS0KIGxpYmF2 Zm9ybWF0L2lhbWZfcGFyc2UuYyB8IDE0ICsrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwg MTIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmZvcm1h dC9pYW1mX3BhcnNlLmMgYi9saWJhdmZvcm1hdC9pYW1mX3BhcnNlLmMKaW5kZXggM2Q3ODUzM2Zh Zi4uNTdlZDg5ZTc0ZCAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvaWFtZl9wYXJzZS5jCisrKyBi L2xpYmF2Zm9ybWF0L2lhbWZfcGFyc2UuYwpAQCAtNDE4LDcgKzQxOCw4IEBAIHN0YXRpYyBpbnQg c2NhbGFibGVfY2hhbm5lbF9sYXlvdXRfY29uZmlnKHZvaWQgKnMsIEFWSU9Db250ZXh0ICpwYiwK ICAgICAgICAgc3Vic3RyZWFtX2NvdW50ID0gYXZpb19yOChwYik7CiAgICAgICAgIGNvdXBsZWRf c3Vic3RyZWFtX2NvdW50ID0gYXZpb19yOChwYik7CiAKLSAgICAgICAgaWYgKHN1YnN0cmVhbV9j b3VudCArIGsgPiBhdWRpb19lbGVtZW50LT5uYl9zdWJzdHJlYW1zKQorICAgICAgICBpZiAoIXN1 YnN0cmVhbV9jb3VudCB8fCBjb3VwbGVkX3N1YnN0cmVhbV9jb3VudCA+IHN1YnN0cmVhbV9jb3Vu dCB8fAorICAgICAgICAgICAgc3Vic3RyZWFtX2NvdW50ICsgayA+IGF1ZGlvX2VsZW1lbnQtPm5i X3N1YnN0cmVhbXMpCiAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKIAog ICAgICAgICBhdWRpb19lbGVtZW50LT5sYXllcnNbaV0uc3Vic3RyZWFtX2NvdW50ICAgICAgICAg PSBzdWJzdHJlYW1fY291bnQ7CkBAIC00MjgsOCArNDI5LDE0IEBAIHN0YXRpYyBpbnQgc2NhbGFi bGVfY2hhbm5lbF9sYXlvdXRfY29uZmlnKHZvaWQgKnMsIEFWSU9Db250ZXh0ICpwYiwKICAgICAg ICAgICAgIGxheWVyLT5vdXRwdXRfZ2FpbiA9IGF2X21ha2VfcShzaWduX2V4dGVuZChhdmlvX3Ji MTYocGIpLCAxNiksIDEgPDwgOCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIWkgJiYgbG91 ZHNwZWFrZXJfbGF5b3V0ID09IDE1KQorICAgICAgICBpZiAobG91ZHNwZWFrZXJfbGF5b3V0ID09 IDE1KSB7CisgICAgICAgICAgICBpZiAoaSkgeworICAgICAgICAgICAgICAgIGF2X2xvZyhzLCBB Vl9MT0dfRVJST1IsICJleHBhbmRlZF9sb3Vkc3BlYWtlcl9sYXlvdXQgc2V0IHdpdGggbW9yZSB0 aGFuIG9uZSBsYXllciBpbiBBdWRpbyBFbGVtZW50ICMlZFxuIiwKKyAgICAgICAgICAgICAgICAg ICAgICAgYXVkaW9fZWxlbWVudC0+YXVkaW9fZWxlbWVudF9pZCk7CisgICAgICAgICAgICAgICAg cmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBl eHBhbmRlZF9sb3Vkc3BlYWtlcl9sYXlvdXQgPSBhdmlvX3I4KHBiKTsKKyAgICAgICAgfQogICAg ICAgICBpZiAoZXhwYW5kZWRfbG91ZHNwZWFrZXJfbGF5b3V0ID49IDAgJiYgZXhwYW5kZWRfbG91 ZHNwZWFrZXJfbGF5b3V0IDwgMTMpIHsKICAgICAgICAgICAgIGF2X2NoYW5uZWxfbGF5b3V0X2Nv cHkoJmNoX2xheW91dCwgJmZmX2lhbWZfZXhwYW5kZWRfc2NhbGFibGVfY2hfbGF5b3V0c1tleHBh bmRlZF9sb3Vkc3BlYWtlcl9sYXlvdXRdKTsKICAgICAgICAgfSBlbHNlIGlmIChsb3Vkc3BlYWtl cl9sYXlvdXQgPCAxMCkgewpAQCAtNDg4LDYgKzQ5NSw5IEBAIHN0YXRpYyBpbnQgc2NhbGFibGVf Y2hhbm5lbF9sYXlvdXRfY29uZmlnKHZvaWQgKnMsIEFWSU9Db250ZXh0ICpwYiwKICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgIGlmIChuICE9IGNoX2xheW91 dC5uYl9jaGFubmVscykKKyAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFU QTsKKwogICAgICAgICAgICAgcmV0ID0gYXZfY2hhbm5lbF9sYXlvdXRfcmV0eXBlKCZsYXllci0+ Y2hfbGF5b3V0LCBBVl9DSEFOTkVMX09SREVSX05BVElWRSwgMCk7CiAgICAgICAgICAgICBpZiAo cmV0IDwgMCAmJiByZXQgIT0gQVZFUlJPUihFTk9TWVMpKQogICAgICAgICAgICAgICAgIHJldHVy biByZXQ7Ci0tIAoyLjUyLjAKCgpGcm9tIDM3OGMyN2VjODRlM2I1OTdmYjk0MjA0OGM5MGI2NWEz NjUxMDgzMzEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEphbWVzIEFsbWVyIDxqYW1y aWFsQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA3IERlYyAyMDI1IDE0OjUyOjI1IC0wMzAwClN1Ympl Y3Q6IFtQQVRDSCAyODkvMzA0XSBhdmZvcm1hdC9pYW1mX3dyaXRlcjogZW5zdXJlCiBleHBhbmRl ZF9sb3Vkc3BlYWtlcl9sYXlvdXQgaXMgb25seSB3cml0dGVuIHdoZW4gdXNpbmcgYSBzaW5nbGUg c2NhbGFibGUKIGxheW91dCBsYXllcgoKU2lnbmVkLW9mZi1ieTogSmFtZXMgQWxtZXIgPGphbXJp YWxAZ21haWwuY29tPgotLS0KIGxpYmF2Zm9ybWF0L2lhbWZfd3JpdGVyLmMgfCAxMCArKysrKysr KystCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvbGliYXZmb3JtYXQvaWFtZl93cml0ZXIuYyBiL2xpYmF2Zm9ybWF0L2lhbWZfd3Jp dGVyLmMKaW5kZXggZTlkZDE3MDM4MC4uYjkxN2ExNTk3OCAxMDA2NDQKLS0tIGEvbGliYXZmb3Jt YXQvaWFtZl93cml0ZXIuYworKysgYi9saWJhdmZvcm1hdC9pYW1mX3dyaXRlci5jCkBAIC03NTMs OCArNzUzLDE2IEBAIHN0YXRpYyBpbnQgaWFtZl93cml0ZV9hdWRpb19lbGVtZW50KGNvbnN0IElB TUZDb250ZXh0ICppYW1mLAogICAgICAgICBpbnQgbGF5b3V0ID0gMCwgZXhwYW5kZWRfbGF5b3V0 ID0gMDsKICAgICAgICAgZ2V0X2xvdWRzcGVha2VyX2xheW91dChlbGVtZW50LT5sYXllcnNbMF0s ICZsYXlvdXQsICZleHBhbmRlZF9sYXlvdXQpOwogICAgICAgICAvKiBXaGVuIHRoZSBsb3Vkc3Bl YWtlcl9sYXlvdXQgPSAxNSwgdGhlIHR5cGUgUEFSQU1FVEVSX0RFRklOSVRJT05fREVNSVhJTkcg U0hBTEwgTk9UIGJlIHByZXNlbnQuICovCi0gICAgICAgIGlmIChsYXlvdXQgPT0gMTUpCisgICAg ICAgIGlmIChsYXlvdXQgPT0gMTUpIHsKICAgICAgICAgICAgIHBhcmFtX2RlZmluaXRpb25fdHlw ZXMgJj0gfkFWX0lBTUZfUEFSQU1FVEVSX0RFRklOSVRJT05fREVNSVhJTkc7CisgICAgICAgICAg ICAvKiBleHBhbmRlZF9sb3Vkc3BlYWtlcl9sYXlvdXQgU0hBTEwgb25seSBiZSBwcmVzZW50IHdo ZW4gbnVtX2xheWVycyA9IDEgYW5kIGxvdWRzcGVha2VyX2xheW91dCBpcyBzZXQgdG8gMTUgKi8K KyAgICAgICAgICAgIGlmIChlbGVtZW50LT5uYl9sYXllcnMgPiAxKSB7CisgICAgICAgICAgICAg ICAgYXZfbG9nKGxvZ19jdHgsIEFWX0xPR19FUlJPUiwgImV4cGFuZGVkX2xvdWRzcGVha2VyX2xh eW91dCBwcmVzZW50IHdoZW4gdXNpbmcgbW9yZSB0aGFuIG9uZSBsYXllciBpbiAiCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0cmVhbSBHcm91cCAjJXVc biIsCisgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX2VsZW1lbnQtPmF1ZGlvX2VsZW1lbnRf aWQpOworICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7CisgICAgICAgICAg ICB9CisgICAgICAgIH0KICAgICAgICAgLyogV2hlbiB0aGUgbG91ZHNwZWFrZXJfbGF5b3V0IG9m IHRoZSAobm9uLSlzY2FsYWJsZSBjaGFubmVsIGF1ZGlvIChpLmUuLCBudW1fbGF5ZXJzID0gMSkg aXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDMuMS4yY2gsCiAgICAgICAgICAqIChpLmUuLCBNb25v LCBTdGVyZW8sIG9yIDMuMS4yY2gpLCB0aGUgdHlwZSBQQVJBTUVURVJfREVGSU5JVElPTl9ERU1J WElORyBTSEFMTCBOT1QgYmUgcHJlc2VudC4gKi8KICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC0+ bmJfbGF5ZXJzID09IDEgJiYgKGxheW91dCA9PSAwIHx8IGxheW91dCA9PSAxIHx8IGxheW91dCA9 PSA4KSkKLS0gCjIuNTIuMAoKCkZyb20gMWY1YmEwMjQ3MWE1Yjc5NTRkYjI3YmU0OGYxNDE4MDQw YTE1NmRmNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmlrbGFzIEhhYXMgPGdpdEBo YWFzbi5kZXY+CkRhdGU6IFRodSwgNCBEZWMgMjAyNSAxMzoyNTowMyArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMjkwLzMwNF0gYXZmaWx0ZXIvYXZmaWx0ZXJncmFwaDogYWx3YXlzIHJldHJ5IGZvcm1h dAogbmVnb3RpYXRpb24gYWZ0ZXIgYXV0by1maWx0ZXJzCgpUaGVyZSBpcyBhbiBlZGdlIGNhc2Ug bm90IGNvdmVyZWQgYnkgdGhlIGN1cnJlbnQgbG9naWM6IElmIHRoZXJlIGlzIG9ubHkKYSBzaW5n bGUgYXV0by1maWx0ZXIgaW5zZXJ0ZWQsIGJ1dCB0aGUgYXV0by1pbnNlcnRlZCBmaWx0ZXIgaXMg aW5jb21wYXRpYmxlCndpdGggYSAqZGlmZmVyZW50KiBmb3JtYXQgYXR0cmlidXRlIChhZnRlciBz ZXR0bGluZyB0aGUgcHJldmlvdXMgZm9ybWF0cyksCndlIG1heSBuZWVkIGEgc2Vjb25kIGF1dG8t ZmlsdGVyIChlLmcuIGBzY2FsZWApIHRvIHNldHRsZSB0aGUgbmV3bHkgaW50cm9kdWNlZAppbmNv bXBhdGliaWxpdHkuCgpBIHJlZ3Jlc3Npb24gdGVzdCBkZW1vbnN0cmF0aW5nIHRoZSBpc3N1ZSBp cyBhZGRlZC4KLS0tCiBsaWJhdmZpbHRlci9hdmZpbHRlcmdyYXBoLmMgICAgICAgICAgICAgfCAg OSArKysrKy0tLS0KIHRlc3RzL2ZhdGUvZmlsdGVyLXZpZGVvLm1hayAgICAgICAgICAgICB8ICAz ICsrKwogdGVzdHMvcmVmL2ZhdGUvZmlsdGVyLXNjYWxlLXByZW11bHRpcGx5IHwgMTUgKysrKysr KysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvcmVmL2ZhdGUvZmlsdGVyLXNjYWxlLXByZW11 bHRpcGx5CgpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvYXZmaWx0ZXJncmFwaC5jIGIvbGliYXZm aWx0ZXIvYXZmaWx0ZXJncmFwaC5jCmluZGV4IGQ1YzJlZjU0ZTYuLmMxNWQ5NWI5MWUgMTAwNjQ0 Ci0tLSBhL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyZ3JhcGguYworKysgYi9saWJhdmZpbHRlci9hdmZp bHRlcmdyYXBoLmMKQEAgLTcwMSwxMCArNzAxLDExIEBAIHJldHJ5OgogICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgLyogaWYgdGhlcmUgaXMgbW9yZSB0aGFu IG9uZSBhdXRvIGZpbHRlciwgd2UgbWF5IG5lZWQgYW5vdGhlciByb3VuZAotICAgICAgICAgICAg ICogdG8gZnVsbHkgc2V0dGxlIGZvcm1hdHMgZHVlIHRvIHBvc3NpYmxlIGNyb3NzLWluY29tcGF0 aWJpbGl0aWVzCi0gICAgICAgICAgICAgKiBiZXR3ZWVuIHRoZSBhdXRvIGZpbHRlcnMgdGhlbXNl bHZlcyAqLwotICAgICAgICAgICAgaWYgKG51bV9jb252ID4gMSkKKyAgICAgICAgICAgIC8qIGlm IHRoZXJlIGlzIGFuIGF1dG8gZmlsdGVyLCB3ZSBtYXkgbmVlZCBhbm90aGVyIHJvdW5kIHRvIGZ1 bGx5CisgICAgICAgICAgICAgKiBzZXR0bGUgZm9ybWF0cyBkdWUgdG8gcG9zc2libGUgY3Jvc3Mt aW5jb21wYXRpYmlsaXRpZXMgYmV0d2VlbgorICAgICAgICAgICAgICogdGhlIGF1dG8gZmlsdGVy cyB0aGVtc2VsdmVzLCBvciBiZXR3ZWVuIHRoZSBhdXRvIGZpbHRlcnMgYW5kCisgICAgICAgICAg ICAgKiBhIGRpZmZlcmVudCBhdHRyaWJ1dGUgb2YgdGhlIGZpbHRlciB0aGV5IGFyZSBtb2RpZnlp bmcgKi8KKyAgICAgICAgICAgIGlmIChudW1fY29udikKICAgICAgICAgICAgICAgICBnb3RvIHJl dHJ5OwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvdGVzdHMvZmF0ZS9maWx0ZXItdmlk ZW8ubWFrIGIvdGVzdHMvZmF0ZS9maWx0ZXItdmlkZW8ubWFrCmluZGV4IDlmM2M5MmEzOTUuLjM1 YjI2ODdiMjcgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ZhdGUvZmlsdGVyLXZpZGVvLm1haworKysgYi90 ZXN0cy9mYXRlL2ZpbHRlci12aWRlby5tYWsKQEAgLTgzNiw2ICs4MzYsOSBAQCBGQVRFX0ZJTFRF Ui0kKGNhbGwgQUxMWUVTLCBURVNUU1JDMl9GSUxURVIgU1BMSVRfRklMVEVSIEFWR0JMVVJfRklM VEVSICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRVRBREFUQV9GSUxURVIg V1JBUFBFRF9BVkZSQU1FX0VOQ09ERVIgTlVMTF9NVVhFUiBcCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQSVBFX1BST1RPQ09MKSArPSAkKEZBVEVfRklMVEVSX1JFRkNNUF9NRVRBREFUQS15 ZXMpCiAKK0ZBVEVfRklMVEVSLSQoY2FsbCBGSUxURVJGUkFNRUNSQywgVEVTVFNSQyBTQ0FMRSBQ UkVNVUxUSVBMWSwgTEFWRklfSU5ERVYpICs9IGZhdGUtZmlsdGVyLXNjYWxlLXByZW11bHRpcGx5 CitmYXRlLWZpbHRlci1zY2FsZS1wcmVtdWx0aXBseTogQ01EID0gZnJhbWVjcmMgLWF1dG9fY29u dmVyc2lvbl9maWx0ZXJzIC1sYXZmaSAidGVzdHNyYyxmb3JtYXQ9cmdiYSxzZXRwYXJhbXM9YWxw aGFfbW9kZT1wcmVtdWx0aXBsaWVkLGZvcm1hdD1yZ2JhOmFscGhhX21vZGVzPXN0cmFpZ2h0IiAt ZnJhbWVzOnYgMTAKKwogRkFURV9TQU1QTEVTX0ZGUFJPQkUgKz0gJChGQVRFX01FVEFEQVRBX0ZJ TFRFUi15ZXMpCiBGQVRFX1NBTVBMRVNfRkZNUEVHICs9ICQoRkFURV9GSUxURVJfU0FNUExFUy15 ZXMpCiBGQVRFX0ZGUFJPQkUgKz0gJChGQVRFX0ZJTFRFUl9GRlBST0JFLXllcykKZGlmZiAtLWdp dCBhL3Rlc3RzL3JlZi9mYXRlL2ZpbHRlci1zY2FsZS1wcmVtdWx0aXBseSBiL3Rlc3RzL3JlZi9m YXRlL2ZpbHRlci1zY2FsZS1wcmVtdWx0aXBseQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwLi4xM2ZkNzkzMTBhCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcmVmL2ZhdGUv ZmlsdGVyLXNjYWxlLXByZW11bHRpcGx5CkBAIC0wLDAgKzEsMTUgQEAKKyN0YiAwOiAxLzI1Cisj bWVkaWFfdHlwZSAwOiB2aWRlbworI2NvZGVjX2lkIDA6IHJhd3ZpZGVvCisjZGltZW5zaW9ucyAw OiAzMjB4MjQwCisjc2FyIDA6IDEvMQorMCwgICAgICAgICAgMCwgICAgICAgICAgMCwgICAgICAg IDEsICAgMzA3MjAwLCAweDczYTNiNzFmCiswLCAgICAgICAgICAxLCAgICAgICAgICAxLCAgICAg ICAgMSwgICAzMDcyMDAsIDB4M2YwNWYwNDcKKzAsICAgICAgICAgIDIsICAgICAgICAgIDIsICAg ICAgICAxLCAgIDMwNzIwMCwgMHg1MDM4MjM3MAorMCwgICAgICAgICAgMywgICAgICAgICAgMywg ICAgICAgIDEsICAgMzA3MjAwLCAweDQxYTE1MTM2CiswLCAgICAgICAgICA0LCAgICAgICAgICA0 LCAgICAgICAgMSwgICAzMDcyMDAsIDB4YmM4Yzc4ZWUKKzAsICAgICAgICAgIDUsICAgICAgICAg IDUsICAgICAgICAxLCAgIDMwNzIwMCwgMHgxOTgzOWUxYgorMCwgICAgICAgICAgNiwgICAgICAg ICAgNiwgICAgICAgIDEsICAgMzA3MjAwLCAweDg1NDViOTNiCiswLCAgICAgICAgICA3LCAgICAg ICAgICA3LCAgICAgICAgMSwgICAzMDcyMDAsIDB4NGE0YWNmMDcKKzAsICAgICAgICAgIDgsICAg ICAgICAgIDgsICAgICAgICAxLCAgIDMwNzIwMCwgMHhlZmExZGVlNAorMCwgICAgICAgICAgOSwg ICAgICAgICAgOSwgICAgICAgIDEsICAgMzA3MjAwLCAweDIyZGFlOWNhCi0tIAoyLjUyLjAKCgpG cm9tIGUxZTg2ODcxM2RhZDk4MzdkYzI3MmUyZDlkODQ5Yjk5YWI4YThmYWMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IE5pa2xhcyBIYWFzIDxnaXRAaGFhc24uZGV2PgpEYXRlOiBUaHUs IDQgRGVjIDIwMjUgMTM6MTA6NDcgKzAxMDAKU3ViamVjdDogW1BBVENIIDI5MS8zMDRdIGF2Zmls dGVyL2F2ZmlsdGVyZ3JhcGg6IGFkZCBtaXNzaW5nIG5ld2xpbmVzIHRvCiBmb3JtYXQgcHJpbnRp bmcKCi0tLQogbGliYXZmaWx0ZXIvYXZmaWx0ZXJncmFwaC5jIHwgOCArKysrLS0tLQogMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9s aWJhdmZpbHRlci9hdmZpbHRlcmdyYXBoLmMgYi9saWJhdmZpbHRlci9hdmZpbHRlcmdyYXBoLmMK aW5kZXggYzE1ZDk1YjkxZS4uYWQ4MWQ5MWJiYyAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvYXZm aWx0ZXJncmFwaC5jCisrKyBiL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyZ3JhcGguYwpAQCAtNDg1LDEz ICs0ODUsMTMgQEAgc3RhdGljIHZvaWQgcHJpbnRfZmlsdGVyX2Zvcm1hdHModm9pZCAqbG9nX2N0 eCwgaW50IGxldmVsLCBjb25zdCBBVkZpbHRlckNvbnRleHQKICAgICBmb3IgKGludCBpID0gMDsg aSA8IGYtPm5iX2lucHV0czsgaSsrKSB7CiAgICAgICAgIGNvbnN0IEFWRmlsdGVyTGluayAqaW4g PSBmLT5pbnB1dHNbaV07CiAgICAgICAgIGNvbnN0IEFWRmlsdGVyTmVnb3RpYXRpb24gKm5lZyA9 IGZmX2ZpbHRlcl9nZXRfbmVnb3RpYXRpb24oaW4pOwotICAgICAgICBhdl9sb2cobG9nX2N0eCwg bGV2ZWwsICIgIGluWyVkXSAnJXMnOiIsIGksIGYtPmlucHV0X3BhZHNbaV0ubmFtZSk7CisgICAg ICAgIGF2X2xvZyhsb2dfY3R4LCBsZXZlbCwgIiAgaW5bJWRdICclcyc6XG4iLCBpLCBmLT5pbnB1 dF9wYWRzW2ldLm5hbWUpOwogCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBuZWct Pm5iX21lcmdlcnM7IGkrKykgewogICAgICAgICAgICAgY29uc3QgQVZGaWx0ZXJGb3JtYXRzTWVy Z2VyICptID0gJm5lZy0+bWVyZ2Vyc1tpXTsKICAgICAgICAgICAgIG0tPnByaW50X2xpc3QoJmJw LCBGRl9GSUVMRF9BVCh2b2lkICosIG0tPm9mZnNldCwgaW4tPm91dGNmZykpOwogICAgICAgICAg ICAgaWYgKGF2X2JwcmludF9pc19jb21wbGV0ZSgmYnApKQotICAgICAgICAgICAgICAgIGF2X2xv Zyhsb2dfY3R4LCBsZXZlbCwgIiAgICAlczogJXMiLCBtLT5uYW1lLCBicC5zdHIpOworICAgICAg ICAgICAgICAgIGF2X2xvZyhsb2dfY3R4LCBsZXZlbCwgIiAgICAlczogJXNcbiIsIG0tPm5hbWUs IGJwLnN0cik7CiAgICAgICAgICAgICBhdl9icHJpbnRfY2xlYXIoJmJwKTsKICAgICAgICAgfQog ICAgIH0KQEAgLTQ5OSwxMyArNDk5LDEzIEBAIHN0YXRpYyB2b2lkIHByaW50X2ZpbHRlcl9mb3Jt YXRzKHZvaWQgKmxvZ19jdHgsIGludCBsZXZlbCwgY29uc3QgQVZGaWx0ZXJDb250ZXh0CiAgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCBmLT5uYl9vdXRwdXRzOyBpKyspIHsKICAgICAgICAgY29uc3Qg QVZGaWx0ZXJMaW5rICpvdXQgPSBmLT5vdXRwdXRzW2ldOwogICAgICAgICBjb25zdCBBVkZpbHRl ck5lZ290aWF0aW9uICpuZWcgPSBmZl9maWx0ZXJfZ2V0X25lZ290aWF0aW9uKG91dCk7Ci0gICAg ICAgIGF2X2xvZyhsb2dfY3R4LCBsZXZlbCwgIiAgb3V0WyVkXSAnJXMnOiIsIGksIGYtPm91dHB1 dF9wYWRzW2ldLm5hbWUpOworICAgICAgICBhdl9sb2cobG9nX2N0eCwgbGV2ZWwsICIgIG91dFsl ZF0gJyVzJzpcbiIsIGksIGYtPm91dHB1dF9wYWRzW2ldLm5hbWUpOwogCiAgICAgICAgIGZvciAo dW5zaWduZWQgaSA9IDA7IGkgPCBuZWctPm5iX21lcmdlcnM7IGkrKykgewogICAgICAgICAgICAg Y29uc3QgQVZGaWx0ZXJGb3JtYXRzTWVyZ2VyICptID0gJm5lZy0+bWVyZ2Vyc1tpXTsKICAgICAg ICAgICAgIG0tPnByaW50X2xpc3QoJmJwLCBGRl9GSUVMRF9BVCh2b2lkICosIG0tPm9mZnNldCwg b3V0LT5pbmNmZykpOwogICAgICAgICAgICAgaWYgKGF2X2JwcmludF9pc19jb21wbGV0ZSgmYnAp KQotICAgICAgICAgICAgICAgIGF2X2xvZyhsb2dfY3R4LCBsZXZlbCwgIiAgICAlczogJXMiLCBt LT5uYW1lLCBicC5zdHIpOworICAgICAgICAgICAgICAgIGF2X2xvZyhsb2dfY3R4LCBsZXZlbCwg IiAgICAlczogJXNcbiIsIG0tPm5hbWUsIGJwLnN0cik7CiAgICAgICAgICAgICBhdl9icHJpbnRf Y2xlYXIoJmJwKTsKICAgICAgICAgfQogICAgIH0KLS0gCjIuNTIuMAoKCkZyb20gOWY0OWE5NWU0 ZWUzNjEwZjNjN2ZmMTk5YWYxZTZjNTYxZTJiMDZkOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogR2VvcmdpaSBaYWdvcnVpa28gPGdlb3JnZS56YWd1cmlAZ21haWwuY29tPgpEYXRlOiBN b24sIDggRGVjIDIwMjUgMTk6NDQ6NTcgKzAwMDAKU3ViamVjdDogW1BBVENIIDI5Mi8zMDRdIE1h a2VmaWxlOiBhZGQgbWlzc2luZyB2YXJpYWJsZXMgaW4gTWFrZWZpbGUKCi0tLQogTWFrZWZpbGUg fCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggNGZjMGFlYmQzMy4uZjNmZWQ3 NTk1NCAxMDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTExMCw3ICsxMTAs OCBAQCBTVUJESVJfVkFSUyA6PSBDTEVBTkZJTEVTIEZGTElCUyBIT1NUUFJPR1MgVEVTVFBST0dT IFRPT0xTICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgQUxUSVZFQy1PQkpTIFZTWC1P QkpTIFg4NkFTTS1PQkpTICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAg IE1JUFNGUFUtT0JKUyBNSVBTRFNQUjItT0JKUyBNSVBTRFNQLU9CSlMgTVNBLU9CSlMgICAgICAg ICBcCiAgICAgICAgICAgICAgICBNTUktT0JKUyBMU1gtT0JKUyBMQVNYLU9CSlMgUlYtT0JKUyBS VlYtT0JKUyBSVlZCLU9CSlMgICAgXAotICAgICAgICAgICAgICAgT0JKUyBTSExJQk9CSlMgU1RM SUJPQkpTIEhPU1RPQkpTIFRFU1RPQkpTIFNJTUQxMjgtT0JKUworICAgICAgICAgICAgICAgT0JK UyBTSExJQk9CSlMgU1RMSUJPQkpTIEhPU1RPQkpTIFRFU1RPQkpTIFNJTUQxMjgtT0JKUyAgIFwK KyAgICAgICAgICAgICAgIFNWRS1PQkpTIFNWRTItT0JKUwogCiBkZWZpbmUgUkVTRVQKICQoMSkg Oj0KLS0gCjIuNTIuMAoKCkZyb20gZTNkN2ExZjUwMzFhNDFlZThkNTMyYzg3ZmMyYWRmN2NiNWU2 ZDdkYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR2VvcmdpaSBaYWdvcnVpa28gPGdl b3JnZS56YWd1cmlAZ21haWwuY29tPgpEYXRlOiBNb24sIDggRGVjIDIwMjUgMTk6NDU6MzIgKzAw MDAKU3ViamVjdDogW1BBVENIIDI5My8zMDRdIGNvbmZpZ3VyZTogYWRkIGRldGVjdGlvbiBvZiBh c3NlbWJsZXIgc3VwcG9ydCBmb3IgU01FCgpBbGwgY2hhbmdlcyBhcmUgbWFkZSBkdXJpbmcgZGV2 ZWxvcG1lbnQvdGVzdGluZyBvZiBTVkUvU01FIGZvciBmZm1wZWcgKHZ2YykuIFRlc3RlZCBvbiBB cHBsZSBNNAotLS0KIE1ha2VmaWxlICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBjb25maWd1 cmUgICAgICAgICAgICAgICAgICAgfCAgOCArKysrKysrLQogZmZidWlsZC9hcmNoLm1hayAgICAg ICAgICAgIHwgIDEgKwogbGliYXZ1dGlsL2FhcmNoNjQvTWFrZWZpbGUgIHwgIDIgKysKIGxpYmF2 dXRpbC9hYXJjaDY0L2FzbS5TICAgICB8ICA5ICsrKysrKysrKwogbGliYXZ1dGlsL2FhcmNoNjQv Y3B1LmMgICAgIHwgMTIgKysrKysrKysrKysrCiBsaWJhdnV0aWwvYWFyY2g2NC9jcHUuaCAgICAg fCAgNSArKysrKwogbGliYXZ1dGlsL2FhcmNoNjQvY3B1X3NtZS5TIHwgMzEgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogbGliYXZ1dGlsL2NwdS5jICAgICAgICAgICAgIHwgIDEgKwog bGliYXZ1dGlsL2NwdS5oICAgICAgICAgICAgIHwgIDEgKwogbGliYXZ1dGlsL3Rlc3RzL2NwdS5j ICAgICAgIHwgIDggKysrKysrKy0KIHRlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMgICB8ICA5ICsr KysrKysrLQogMTIgZmlsZXMgY2hhbmdlZCwgODUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdnV0aWwvYWFyY2g2NC9jcHVfc21lLlMKCmRpZmYg LS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCmluZGV4IGYzZmVkNzU5NTQuLmY1NjNhMzdmY2Eg MTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBiL01ha2VmaWxlCkBAIC0xMTEsNyArMTExLDcgQEAg U1VCRElSX1ZBUlMgOj0gQ0xFQU5GSUxFUyBGRkxJQlMgSE9TVFBST0dTIFRFU1RQUk9HUyBUT09M UyAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgIE1JUFNGUFUtT0JKUyBNSVBTRFNQUjIt T0JKUyBNSVBTRFNQLU9CSlMgTVNBLU9CSlMgICAgICAgICBcCiAgICAgICAgICAgICAgICBNTUkt T0JKUyBMU1gtT0JKUyBMQVNYLU9CSlMgUlYtT0JKUyBSVlYtT0JKUyBSVlZCLU9CSlMgICAgXAog ICAgICAgICAgICAgICAgT0JKUyBTSExJQk9CSlMgU1RMSUJPQkpTIEhPU1RPQkpTIFRFU1RPQkpT IFNJTUQxMjgtT0JKUyAgIFwKLSAgICAgICAgICAgICAgIFNWRS1PQkpTIFNWRTItT0JKUworICAg ICAgICAgICAgICAgU1ZFLU9CSlMgU1ZFMi1PQkpTIFNNRS1PQkpTCiAKIGRlZmluZSBSRVNFVAog JCgxKSA6PQpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IDE4OWU5NzM1 MDEuLjE1YjMzYmI4NzAgMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysgYi9jb25maWd1cmUKQEAg LTQ3OCw2ICs0NzgsNyBAQCBPcHRpbWl6YXRpb24gb3B0aW9ucyAoZXhwZXJ0cyBvbmx5KToKICAg LS1kaXNhYmxlLWk4bW0gICAgICAgICAgIGRpc2FibGUgSThNTSBvcHRpbWl6YXRpb25zCiAgIC0t ZGlzYWJsZS1zdmUgICAgICAgICAgICBkaXNhYmxlIFNWRSBvcHRpbWl6YXRpb25zCiAgIC0tZGlz YWJsZS1zdmUyICAgICAgICAgICBkaXNhYmxlIFNWRTIgb3B0aW1pemF0aW9ucworICAtLWRpc2Fi bGUtc21lICAgICAgICAgICAgZGlzYWJsZSBTTUUgb3B0aW1pemF0aW9ucwogICAtLWRpc2FibGUt aW5saW5lLWFzbSAgICAgZGlzYWJsZSB1c2Ugb2YgaW5saW5lIGFzc2VtYmx5CiAgIC0tZGlzYWJs ZS14ODZhc20gICAgICAgICBkaXNhYmxlIHVzZSBvZiBzdGFuZGFsb25lIHg4NiBhc3NlbWJseQog ICAtLWRpc2FibGUtbWlwc2RzcCAgICAgICAgZGlzYWJsZSBNSVBTIERTUCBBU0UgUjEgb3B0aW1p emF0aW9ucwpAQCAtMjIyNCw2ICsyMjI1LDcgQEAgQVJDSF9FWFRfTElTVF9BUk09IgogICAgIHNl dGVuZAogICAgIHN2ZQogICAgIHN2ZTIKKyAgICBzbWUKICIKIAogQVJDSF9FWFRfTElTVF9NSVBT PSIKQEAgLTI0OTEsNiArMjQ5Myw3IEBAIFRPT0xDSEFJTl9GRUFUVVJFUz0iCiAgICAgYXNfYXJj aGV4dF9pOG1tX2RpcmVjdGl2ZQogICAgIGFzX2FyY2hleHRfc3ZlX2RpcmVjdGl2ZQogICAgIGFz X2FyY2hleHRfc3ZlMl9kaXJlY3RpdmUKKyAgICBhc19hcmNoZXh0X3NtZV9kaXJlY3RpdmUKICAg ICBhc19kbl9kaXJlY3RpdmUKICAgICBhc19mcHVfZGlyZWN0aXZlCiAgICAgYXNfZnVuYwpAQCAt MjgyMyw2ICsyODI2LDcgQEAgZG90cHJvZF9kZXBzPSJhYXJjaDY0IG5lb24iCiBpOG1tX2RlcHM9 ImFhcmNoNjQgbmVvbiIKIHN2ZV9kZXBzPSJhYXJjaDY0IG5lb24iCiBzdmUyX2RlcHM9ImFhcmNo NjQgbmVvbiBzdmUiCitzbWVfZGVwcz0iYWFyY2g2NCBuZW9uIHN2ZSBzdmUyIgogCiBtYXAgJ2V2 YWwgJHt2fV9pbmxpbmVfZGVwcz1pbmxpbmVfYXNtJyAkQVJDSF9FWFRfTElTVF9BUk0KIApAQCAt NjQ0NywxMSArNjQ1MSwxMiBAQCBpZiBlbmFibGVkIGFhcmNoNjQ7IHRoZW4KICAgICAjIGludGVy bmFsIGFzc2VtYmxlciBpbiBjbGFuZyAzLjMgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGluc3RydWN0 aW9uCiAgICAgZW5hYmxlZCBuZW9uICYmIGNoZWNrX2luc24gbmVvbiAnZXh0ICAgdjAuOEIsIHYw LjhCLCB2MS44QiwgIzEnCiAKLSAgICBhcmNoZXh0X2xpc3Q9ImRvdHByb2QgaThtbSBzdmUgc3Zl MiIKKyAgICBhcmNoZXh0X2xpc3Q9ImRvdHByb2QgaThtbSBzdmUgc3ZlMiBzbWUiCiAgICAgZW5h YmxlZCBkb3Rwcm9kICYmIGNoZWNrX2FyY2hleHRfaW5zbiBkb3Rwcm9kICd1ZG90IHYwLjRzLCB2 MC4xNmIsIHYwLjE2YicKICAgICBlbmFibGVkIGk4bW0gICAgJiYgY2hlY2tfYXJjaGV4dF9pbnNu IGk4bW0gICAgJ3VzZG90IHYwLjRzLCB2MC4xNmIsIHYwLjE2YicKICAgICBlbmFibGVkIHN2ZSAg ICAgJiYgY2hlY2tfYXJjaGV4dF9pbnNuIHN2ZSAgICAgJ3doaWxlbHQgcDAucywgeDAsIHgxJwog ICAgIGVuYWJsZWQgc3ZlMiAgICAmJiBjaGVja19hcmNoZXh0X2luc24gc3ZlMiAgICAnc3FyZG11 bGggejAucywgejAucywgejAucycKKyAgICBlbmFibGVkIHNtZSAgICAgJiYgY2hlY2tfYXJjaGV4 dF9pbnNuIHNtZSAgICAgJ3Ntc3RvcCcKIAogICAgICMgRGlzYWJsZSB0aGUgbWFpbiBmZWF0dXJl IChlLmcuIEhBVkVfTkVPTikgaWYgbmVpdGhlciBpbmxpbmUgbm9yIGV4dGVybmFsCiAgICAgIyBh c3NlbWJseSBzdXBwb3J0IHRoZSBmZWF0dXJlIG91dCBvZiB0aGUgYm94LiBTa2lwIHRoaXMgZm9y IHRoZSBmZWF0dXJlcwpAQCAtODIxMSw2ICs4MjE2LDcgQEAgaWYgZW5hYmxlZCBhYXJjaDY0OyB0 aGVuCiAgICAgZWNobyAiSThNTSBlbmFibGVkICAgICAgICAgICAgICAke2k4bW0tbm99IgogICAg IGVjaG8gIlNWRSBlbmFibGVkICAgICAgICAgICAgICAgJHtzdmUtbm99IgogICAgIGVjaG8gIlNW RTIgZW5hYmxlZCAgICAgICAgICAgICAgJHtzdmUyLW5vfSIKKyAgICBlY2hvICJTTUUgZW5hYmxl ZCAgICAgICAgICAgICAgICR7c21lLW5vfSIKIGZpCiBpZiBlbmFibGVkIGFybTsgdGhlbgogICAg IGVjaG8gIkFSTXY1VEUgZW5hYmxlZCAgICAgICAgICAgJHthcm12NXRlLW5vfSIKZGlmZiAtLWdp dCBhL2ZmYnVpbGQvYXJjaC5tYWsgYi9mZmJ1aWxkL2FyY2gubWFrCmluZGV4IGVjNzlhZTc4NjYu LjgzZDZiZjI3NmYgMTAwNjQ0Ci0tLSBhL2ZmYnVpbGQvYXJjaC5tYWsKKysrIGIvZmZidWlsZC9h cmNoLm1hawpAQCAtNSw2ICs1LDcgQEAgT0JKUy0kKEhBVkVfVkZQKSAgICAgKz0gJChWRlAtT0JK UykgICAgICQoVkZQLU9CSlMteWVzKQogT0JKUy0kKEhBVkVfTkVPTikgICAgKz0gJChORU9OLU9C SlMpICAgICQoTkVPTi1PQkpTLXllcykKIE9CSlMtJChIQVZFX1NWRSkgICAgICs9ICQoU1ZFLU9C SlMpICAgICAkKFNWRS1PQkpTLXllcykKIE9CSlMtJChIQVZFX1NWRTIpICAgICs9ICQoU1ZFMi1P QkpTKSAgICAkKFNWRTItT0JKUy15ZXMpCitPQkpTLSQoSEFWRV9TTUUpICAgICArPSAkKFNNRS1P QkpTKSAgICAgJChTTUUtT0JKUy15ZXMpCiAKIE9CSlMtJChIQVZFX01JUFNGUFUpICAgKz0gJChN SVBTRlBVLU9CSlMpICAgICQoTUlQU0ZQVS1PQkpTLXllcykKIE9CSlMtJChIQVZFX01JUFNEU1Ap ICAgKz0gJChNSVBTRFNQLU9CSlMpICAgICQoTUlQU0RTUC1PQkpTLXllcykKZGlmZiAtLWdpdCBh L2xpYmF2dXRpbC9hYXJjaDY0L01ha2VmaWxlIGIvbGliYXZ1dGlsL2FhcmNoNjQvTWFrZWZpbGUK aW5kZXggOTkyZTk1ZTRkZi4uNzQ0YzJjNTNkNyAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL2FhcmNo NjQvTWFrZWZpbGUKKysrIGIvbGliYXZ1dGlsL2FhcmNoNjQvTWFrZWZpbGUKQEAgLTYsMyArNiw1 IEBAIE5FT04tT0JKUyArPSBhYXJjaDY0L2Zsb2F0X2RzcF9uZW9uLm8gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgYWFyY2g2NC90eF9mbG9hdF9uZW9uLm8g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogCiBTVkUtT0JKUyArPSBhYXJjaDY0 L2NwdV9zdmUubyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCitT TUUtT0JKUyArPSBhYXJjaDY0L2NwdV9zbWUubyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXApkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL2FhcmNoNjQvYXNtLlMgYi9saWJh dnV0aWwvYWFyY2g2NC9hc20uUwppbmRleCAyZTRlNDUxZWMyLi43N2NlYTU3Y2ZjIDEwMDY0NAot LS0gYS9saWJhdnV0aWwvYWFyY2g2NC9hc20uUworKysgYi9saWJhdnV0aWwvYWFyY2g2NC9hc20u UwpAQCAtNzIsMTAgKzcyLDE5IEBACiAjZGVmaW5lIERJU0FCTEVfU1ZFMgogI2VuZGlmCiAKKyNp ZiBIQVZFX0FTX0FSQ0hFWFRfU01FX0RJUkVDVElWRQorI2RlZmluZSBFTkFCTEVfU01FICAgLmFy Y2hfZXh0ZW5zaW9uIHNtZQorI2RlZmluZSBESVNBQkxFX1NNRSAgLmFyY2hfZXh0ZW5zaW9uIG5v c21lCisjZWxzZQorI2RlZmluZSBFTkFCTEVfU01FCisjZGVmaW5lIERJU0FCTEVfU01FCisjZW5k aWYKKwogRElTQUJMRV9ET1RQUk9ECiBESVNBQkxFX0k4TU0KIERJU0FCTEVfU1ZFCiBESVNBQkxF X1NWRTIKK0RJU0FCTEVfU01FCiAKIAogLyogU3VwcG9ydCBtYWNyb3MgZm9yCmRpZmYgLS1naXQg YS9saWJhdnV0aWwvYWFyY2g2NC9jcHUuYyBiL2xpYmF2dXRpbC9hYXJjaDY0L2NwdS5jCmluZGV4 IGU4MmMwZjE5YWIuLjMzOTQ5NjMzMDMgMTAwNjQ0Ci0tLSBhL2xpYmF2dXRpbC9hYXJjaDY0L2Nw dS5jCisrKyBiL2xpYmF2dXRpbC9hYXJjaDY0L2NwdS5jCkBAIC0yOCw2ICsyOCw3IEBACiAjZGVm aW5lIEhXQ0FQX0FBUkNINjRfU1ZFICAgICAoMSA8PCAyMikKICNkZWZpbmUgSFdDQVAyX0FBUkNI NjRfU1ZFMiAgICgxIDw8IDEpCiAjZGVmaW5lIEhXQ0FQMl9BQVJDSDY0X0k4TU0gICAoMSA8PCAx MykKKyNkZWZpbmUgSFdDQVAyX0FBUkNINjRfU01FICAgICgxIDw8IDIzKQogCiBzdGF0aWMgaW50 IGRldGVjdF9mbGFncyh2b2lkKQogewpAQCAtNDQsNiArNDUsOCBAQCBzdGF0aWMgaW50IGRldGVj dF9mbGFncyh2b2lkKQogICAgICAgICBmbGFncyB8PSBBVl9DUFVfRkxBR19TVkUyOwogICAgIGlm IChod2NhcDIgJiBIV0NBUDJfQUFSQ0g2NF9JOE1NKQogICAgICAgICBmbGFncyB8PSBBVl9DUFVf RkxBR19JOE1NOworICAgIGlmIChod2NhcCAmIEhXQ0FQMl9BQVJDSDY0X1NNRSkKKyAgICAgICAg ZmxhZ3MgfD0gQVZfQ1BVX0ZMQUdfU01FOwogCiAgICAgcmV0dXJuIGZsYWdzOwogfQpAQCAtNjcs NiArNzAsOCBAQCBzdGF0aWMgaW50IGRldGVjdF9mbGFncyh2b2lkKQogICAgICAgICBmbGFncyB8 PSBBVl9DUFVfRkxBR19ET1RQUk9EOwogICAgIGlmIChoYXZlX2ZlYXR1cmUoImh3Lm9wdGlvbmFs LmFybS5GRUFUX0k4TU0iKSkKICAgICAgICAgZmxhZ3MgfD0gQVZfQ1BVX0ZMQUdfSThNTTsKKyAg ICBpZiAoaGF2ZV9mZWF0dXJlKCJody5vcHRpb25hbC5hcm0uRkVBVF9TTUUiKSkKKyAgICAgICAg ZmxhZ3MgfD0gQVZfQ1BVX0ZMQUdfU01FOwogCiAgICAgcmV0dXJuIGZsYWdzOwogfQpAQCAtMTMz LDYgKzEzOCwxMCBAQCBzdGF0aWMgaW50IGRldGVjdF9mbGFncyh2b2lkKQogI2lmZGVmIFBGX0FS TV9TVkUyX0lOU1RSVUNUSU9OU19BVkFJTEFCTEUKICAgICBpZiAoSXNQcm9jZXNzb3JGZWF0dXJl UHJlc2VudChQRl9BUk1fU1ZFMl9JTlNUUlVDVElPTlNfQVZBSUxBQkxFKSkKICAgICAgICAgZmxh Z3MgfD0gQVZfQ1BVX0ZMQUdfU1ZFMjsKKyNlbmRpZgorI2lmZGVmIFBGX0FSTV9TTUVfSU5TVFJV Q1RJT05TX0FWQUlMQUJMRQorICAgIGlmIChJc1Byb2Nlc3NvckZlYXR1cmVQcmVzZW50KFBGX0FS TV9TTUVfSU5TVFJVQ1RJT05TX0FWQUlMQUJMRSkpCisgICAgICAgIGZsYWdzIHw9IEFWX0NQVV9G TEFHX1NNRTsKICNlbmRpZgogICAgIHJldHVybiBmbGFnczsKIH0KQEAgLTE2Miw2ICsxNzEsOSBA QCBpbnQgZmZfZ2V0X2NwdV9mbGFnc19hYXJjaDY0KHZvaWQpCiAjaWZkZWYgX19BUk1fRkVBVFVS RV9TVkUyCiAgICAgZmxhZ3MgfD0gQVZfQ1BVX0ZMQUdfU1ZFMjsKICNlbmRpZgorI2lmZGVmIF9f QVJNX0ZFQVRVUkVfU01FCisgICAgZmxhZ3MgfD0gQVZfQ1BVX0ZMQUdfU01FOworI2VuZGlmCiAK ICAgICBmbGFncyB8PSBkZXRlY3RfZmxhZ3MoKTsKIApkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL2Fh cmNoNjQvY3B1LmggYi9saWJhdnV0aWwvYWFyY2g2NC9jcHUuaAppbmRleCBhNDFiNzI5NjU5Li42 MmQ1ZWI3NjhmIDEwMDY0NAotLS0gYS9saWJhdnV0aWwvYWFyY2g2NC9jcHUuaAorKysgYi9saWJh dnV0aWwvYWFyY2g2NC9jcHUuaApAQCAtMjksOSArMjksMTQgQEAKICNkZWZpbmUgaGF2ZV9pOG1t KGZsYWdzKSAgICBDUFVFWFQoZmxhZ3MsIEk4TU0pCiAjZGVmaW5lIGhhdmVfc3ZlKGZsYWdzKSAg ICAgQ1BVRVhUKGZsYWdzLCBTVkUpCiAjZGVmaW5lIGhhdmVfc3ZlMihmbGFncykgICAgQ1BVRVhU KGZsYWdzLCBTVkUyKQorI2RlZmluZSBoYXZlX3NtZShmbGFncykgICAgIENQVUVYVChmbGFncywg U01FKQogCiAjaWYgSEFWRV9TVkUKIGludCBmZl9hYXJjaDY0X3N2ZV9sZW5ndGgodm9pZCk7CiAj ZW5kaWYKIAorI2lmIEhBVkVfU01FCitpbnQgZmZfYWFyY2g2NF9zbWVfbGVuZ3RoKHZvaWQpOwor I2VuZGlmCisKICNlbmRpZiAvKiBBVlVUSUxfQUFSQ0g2NF9DUFVfSCAqLwpkaWZmIC0tZ2l0IGEv bGliYXZ1dGlsL2FhcmNoNjQvY3B1X3NtZS5TIGIvbGliYXZ1dGlsL2FhcmNoNjQvY3B1X3NtZS5T Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmJhNzlkNDgzYTEKLS0tIC9k ZXYvbnVsbAorKysgYi9saWJhdnV0aWwvYWFyY2g2NC9jcHVfc21lLlMKQEAgLTAsMCArMSwzMSBA QAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyNSBHZW9yZ2lpIFphZ29ydWlrbworICoKKyAqIFRo aXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KKyAqCisgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp b24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgorICoKKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu c2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK KyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv c3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j bHVkZSAiYXNtLlMiCisKK0VOQUJMRV9TTUUKKworZnVuY3Rpb24gZmZfYWFyY2g2NF9zbWVfbGVu Z3RoLCBleHBvcnQ9MQorICAgICAgICBzbXN0YXJ0CisgICAgICAgIGNudGIgICAgICAgICAgICB4 MAorICAgICAgICBzbXN0b3AKKyAgICAgICAgcmV0CitlbmRmdW5jCmRpZmYgLS1naXQgYS9saWJh dnV0aWwvY3B1LmMgYi9saWJhdnV0aWwvY3B1LmMKaW5kZXggOGY5Yjc4NWViYy4uNWFlZDJmMzlk YyAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL2NwdS5jCisrKyBiL2xpYmF2dXRpbC9jcHUuYwpAQCAt MTg2LDYgKzE4Niw3IEBAIGludCBhdl9wYXJzZV9jcHVfY2Fwcyh1bnNpZ25lZCAqZmxhZ3MsIGNv bnN0IGNoYXIgKnMpCiAgICAgICAgIHsgImk4bW0iLCAgICAgTlVMTCwgMCwgQVZfT1BUX1RZUEVf Q09OU1QsIHsgLmk2NCA9IEFWX0NQVV9GTEFHX0k4TU0gICAgIH0sICAgIC51bml0ID0gImZsYWdz IiB9LAogICAgICAgICB7ICJzdmUiLCAgICAgIE5VTEwsIDAsIEFWX09QVF9UWVBFX0NPTlNULCB7 IC5pNjQgPSBBVl9DUFVfRkxBR19TVkUgICAgICB9LCAgICAudW5pdCA9ICJmbGFncyIgfSwKICAg ICAgICAgeyAic3ZlMiIsICAgICBOVUxMLCAwLCBBVl9PUFRfVFlQRV9DT05TVCwgeyAuaTY0ID0g QVZfQ1BVX0ZMQUdfU1ZFMiAgICAgfSwgICAgLnVuaXQgPSAiZmxhZ3MiIH0sCisgICAgICAgIHsg InNtZSIsICAgICAgTlVMTCwgMCwgQVZfT1BUX1RZUEVfQ09OU1QsIHsgLmk2NCA9IEFWX0NQVV9G TEFHX1NNRSAgICAgIH0sICAgIC51bml0ID0gImZsYWdzIiB9LAogI2VsaWYgQVJDSF9NSVBTCiAg ICAgICAgIHsgIm1taSIsICAgICAgTlVMTCwgMCwgQVZfT1BUX1RZUEVfQ09OU1QsIHsgLmk2NCA9 IEFWX0NQVV9GTEFHX01NSSAgICAgIH0sICAgIC51bml0ID0gImZsYWdzIiB9LAogICAgICAgICB7 ICJtc2EiLCAgICAgIE5VTEwsIDAsIEFWX09QVF9UWVBFX0NPTlNULCB7IC5pNjQgPSBBVl9DUFVf RkxBR19NU0EgICAgICB9LCAgICAudW5pdCA9ICJmbGFncyIgfSwKZGlmZiAtLWdpdCBhL2xpYmF2 dXRpbC9jcHUuaCBiL2xpYmF2dXRpbC9jcHUuaAppbmRleCBhMDZmYzA4ZTU2Li44N2NlY2QwNDI0 IDEwMDY0NAotLS0gYS9saWJhdnV0aWwvY3B1LmgKKysrIGIvbGliYXZ1dGlsL2NwdS5oCkBAIC03 Niw2ICs3Niw3IEBACiAjZGVmaW5lIEFWX0NQVV9GTEFHX0k4TU0gICAgICAgICAoMSA8PCA5KQog I2RlZmluZSBBVl9DUFVfRkxBR19TVkUgICAgICAgICAgKDEgPDwxMCkKICNkZWZpbmUgQVZfQ1BV X0ZMQUdfU1ZFMiAgICAgICAgICgxIDw8MTEpCisjZGVmaW5lIEFWX0NQVV9GTEFHX1NNRSAgICAg ICAgICAoMSA8PDEyKQogI2RlZmluZSBBVl9DUFVfRkxBR19TRVRFTkQgICAgICAgKDEgPDwxNikK IAogI2RlZmluZSBBVl9DUFVfRkxBR19NTUkgICAgICAgICAgKDEgPDwgMCkKZGlmZiAtLWdpdCBh L2xpYmF2dXRpbC90ZXN0cy9jcHUuYyBiL2xpYmF2dXRpbC90ZXN0cy9jcHUuYwppbmRleCBmZDJl MzI5MDFkLi5jNjNiN2U3ZDUzIDEwMDY0NAotLS0gYS9saWJhdnV0aWwvdGVzdHMvY3B1LmMKKysr IGIvbGliYXZ1dGlsL3Rlc3RzL2NwdS5jCkBAIC00OCw2ICs0OCw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgewogICAgIHsgQVZfQ1BVX0ZMQUdfSThNTSwgICAgICAiaThtbSIgICAgICAgfSwKICAg ICB7IEFWX0NQVV9GTEFHX1NWRSwgICAgICAgInN2ZSIgICAgICAgIH0sCiAgICAgeyBBVl9DUFVf RkxBR19TVkUyLCAgICAgICJzdmUyIiAgICAgICB9LAorICAgIHsgQVZfQ1BVX0ZMQUdfU01FLCAg ICAgICAic21lIiAgICAgICAgfSwKICNlbGlmIEFSQ0hfQVJNCiAgICAgeyBBVl9DUFVfRkxBR19B Uk1WNVRFLCAgICJhcm12NXRlIiAgICB9LAogICAgIHsgQVZfQ1BVX0ZMQUdfQVJNVjYsICAgICAi YXJtdjYiICAgICAgfSwKQEAgLTE3NCw3ICsxNzUsMTIgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogI2lmIEFSQ0hfQUFSQ0g2NCAmJiBIQVZFX1NWRQogICAgIGlmIChjcHVfZmxh Z3NfcmF3ICYgQVZfQ1BVX0ZMQUdfU1ZFKQogICAgICAgICBwcmludGYoInN2ZV92ZWN0b3JfbGVu Z3RoID0gJWRcbiIsIDggKiBmZl9hYXJjaDY0X3N2ZV9sZW5ndGgoKSk7Ci0jZWxpZiBBUkNIX1JJ U0NWICYmIEhBVkVfUlZWCisjZW5kaWYKKyNpZiBBUkNIX0FBUkNINjQgJiYgSEFWRV9TTUUKKyAg ICBpZiAoY3B1X2ZsYWdzX3JhdyAmIEFWX0NQVV9GTEFHX1NNRSkKKyAgICAgICAgcHJpbnRmKCJz bWVfdmVjdG9yX2xlbmd0aCA9ICVkXG4iLCA4ICogZmZfYWFyY2g2NF9zbWVfbGVuZ3RoKCkpOwor I2VuZGlmCisjaWYgQVJDSF9SSVNDViAmJiBIQVZFX1JWVgogICAgIGlmIChjcHVfZmxhZ3NfcmF3 ICYgQVZfQ1BVX0ZMQUdfUlZWX0kzMikgewogICAgICAgICBzaXplX3QgYnl0ZXMgPSBmZl9nZXRf cnZfdmxlbmIoKTsKIApkaWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2thc20vY2hlY2thc20uYyBiL3Rl c3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMKaW5kZXggMTRmYWY3MTI3NS4uNTQ2NjVjMmZhZCAxMDA2 NDQKLS0tIGEvdGVzdHMvY2hlY2thc20vY2hlY2thc20uYworKysgYi90ZXN0cy9jaGVja2FzbS9j aGVja2FzbS5jCkBAIC0zNjIsNiArMzYyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAg eyAiSThNTSIsICAgICAiaThtbSIsICAgICBBVl9DUFVfRkxBR19JOE1NIH0sCiAgICAgeyAiU1ZF IiwgICAgICAic3ZlIiwgICAgICBBVl9DUFVfRkxBR19TVkUgfSwKICAgICB7ICJTVkUyIiwgICAg ICJzdmUyIiwgICAgIEFWX0NQVV9GTEFHX1NWRTIgfSwKKyAgICB7ICJTTUUiLCAgICAgICJzbWUi LCAgICAgIEFWX0NQVV9GTEFHX1NNRSB9LAogI2VsaWYgQVJDSF9BUk0KICAgICB7ICJBUk1WNVRF IiwgICJhcm12NXRlIiwgIEFWX0NQVV9GTEFHX0FSTVY1VEUgfSwKICAgICB7ICJBUk1WNiIsICAg ICJhcm12NiIsICAgIEFWX0NQVV9GTEFHX0FSTVY2IH0sCkBAIC0xMDM5LDcgKzEwNDAsMTMgQEAg aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICBpZiAoaGF2ZV9zdmUoYXZfZ2V0 X2NwdV9mbGFncygpKSkKICAgICAgICAgc25wcmludGYoYXJjaF9pbmZvX2J1Ziwgc2l6ZW9mKGFy Y2hfaW5mb19idWYpLAogICAgICAgICAgICAgICAgICAiU1ZFICVkIGJpdHMsICIsIDggKiBmZl9h YXJjaDY0X3N2ZV9sZW5ndGgoKSk7Ci0jZWxpZiBBUkNIX1JJU0NWICYmIEhBVkVfUlZWCisjZW5k aWYKKyNpZiBBUkNIX0FBUkNINjQgJiYgSEFWRV9TTUUKKyAgICBpZiAoaGF2ZV9zbWUoYXZfZ2V0 X2NwdV9mbGFncygpKSkKKyAgICAgICAgc25wcmludGYoYXJjaF9pbmZvX2J1Ziwgc2l6ZW9mKGFy Y2hfaW5mb19idWYpLAorICAgICAgICAgICAgICAgICAiU01FICVkIGJpdHMsICIsIDggKiBmZl9h YXJjaDY0X3NtZV9sZW5ndGgoKSk7CisjZW5kaWYKKyNpZiBBUkNIX1JJU0NWICYmIEhBVkVfUlZW CiAgICAgaWYgKGF2X2dldF9jcHVfZmxhZ3MoKSAmIEFWX0NQVV9GTEFHX1JWVl9JMzIpCiAgICAg ICAgIHNucHJpbnRmKGFyY2hfaW5mb19idWYsIHNpemVvZiAoYXJjaF9pbmZvX2J1ZiksCiAgICAg ICAgICAgICAgICAgICIlenUtYml0IHZlY3RvcnMsICIsIDggKiBmZl9nZXRfcnZfdmxlbmIoKSk7 Ci0tIAoyLjUyLjAKCgpGcm9tIDM0ZjY2ZTBiNjc2ZjA4MmU0NDI1YzdiZTVjNjVlZGU3ZmE4NjVj NDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEh5dW5qdW4gS28gPHp6b29uQGlnYWxp YS5jb20+CkRhdGU6IE1vbiwgOCBEZWMgMjAyNSAxNjowMTo0NSArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMjk0LzMwNF0gdnVsa2FuX3ZwOTogZml4IHN1YnNhbXBsaW5nIHNvdXJjZSBhbmQgc2hvd19m cmFtZQogZmxhZwoKLS0tCiBsaWJhdmNvZGVjL3Z1bGthbl92cDkuYyB8IDggKysrKystLS0KIDEg ZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbGliYXZjb2RlYy92dWxrYW5fdnA5LmMgYi9saWJhdmNvZGVjL3Z1bGthbl92cDkuYwppbmRl eCA1YjU5MmMxNDQzLi42ZDBhNWNlNDZmIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Z1bGthbl92 cDkuYworKysgYi9saWJhdmNvZGVjL3Z1bGthbl92cDkuYwpAQCAtMTE1LDYgKzExNSw3IEBAIHN0 YXRpYyBpbnQgdmtfdnA5X3N0YXJ0X2ZyYW1lKEFWQ29kZWNDb250ZXh0ICAgICAgICAgICphdmN0 eCwKICAgICB1aW50MzJfdCBmcmFtZV9pZF9hbGxvY19tYXNrID0gMDsKIAogICAgIGNvbnN0IFZQ OUZyYW1lICpwaWMgPSAmcy0+ZnJhbWVzW0NVUl9GUkFNRV07CisgICAgY29uc3QgQVZQaXhGbXRE ZXNjcmlwdG9yICpwaXhkZXNjID0gYXZfcGl4X2ZtdF9kZXNjX2dldChhdmN0eC0+c3dfcGl4X2Zt dCk7CiAgICAgRkZWdWxrYW5EZWNvZGVDb250ZXh0ICpkZWMgPSBhdmN0eC0+aW50ZXJuYWwtPmh3 YWNjZWxfcHJpdl9kYXRhOwogICAgIHVpbnQ4X3QgcHJvZmlsZSA9IChwaWMtPmZyYW1lX2hlYWRl ci0+cHJvZmlsZV9oaWdoX2JpdCA8PCAxKSB8IHBpYy0+ZnJhbWVfaGVhZGVyLT5wcm9maWxlX2xv d19iaXQ7CiAKQEAgLTIyMiw4ICsyMjMsOSBAQCBzdGF0aWMgaW50IHZrX3ZwOV9zdGFydF9mcmFt ZShBVkNvZGVjQ29udGV4dCAgICAgICAgICAqYXZjdHgsCiAgICAgICAgIH0sCiAgICAgICAgIC5C aXREZXB0aCA9IHByb2ZpbGUgPCAyID8gOCA6CiAgICAgICAgICAgICAgICAgICAgIHBpYy0+ZnJh bWVfaGVhZGVyLT50ZW5fb3JfdHdlbHZlX2JpdCA/IDEyIDogMTAsCi0gICAgICAgIC5zdWJzYW1w bGluZ194ID0gcGljLT5mcmFtZV9oZWFkZXItPnN1YnNhbXBsaW5nX3gsCi0gICAgICAgIC5zdWJz YW1wbGluZ195ID0gcGljLT5mcmFtZV9oZWFkZXItPnN1YnNhbXBsaW5nX3ksCisgICAgICAgIC5z dWJzYW1wbGluZ194ID0gcGl4ZGVzYy0+bG9nMl9jaHJvbWFfdywKKyAgICAgICAgLnN1YnNhbXBs aW5nX3kgPSBwaXhkZXNjLT5sb2cyX2Nocm9tYV9oLAorCiAgICAgICAgIC5jb2xvcl9zcGFjZSA9 IHBpYy0+ZnJhbWVfaGVhZGVyLT5jb2xvcl9zcGFjZSwKICAgICB9OwogCkBAIC0yMzUsNyArMjM3 LDcgQEAgc3RhdGljIGludCB2a192cDlfc3RhcnRfZnJhbWUoQVZDb2RlY0NvbnRleHQgICAgICAg ICAgKmF2Y3R4LAogICAgICAgICAgICAucmVmcmVzaF9mcmFtZV9jb250ZXh0ID0gcGljLT5mcmFt ZV9oZWFkZXItPnJlZnJlc2hfZnJhbWVfY29udGV4dCwKICAgICAgICAgICAgLmZyYW1lX3BhcmFs bGVsX2RlY29kaW5nX21vZGUgPSBwaWMtPmZyYW1lX2hlYWRlci0+ZnJhbWVfcGFyYWxsZWxfZGVj b2RpbmdfbW9kZSwKICAgICAgICAgICAgLnNlZ21lbnRhdGlvbl9lbmFibGVkID0gcGljLT5mcmFt ZV9oZWFkZXItPnNlZ21lbnRhdGlvbl9lbmFibGVkLAotICAgICAgICAgICAuc2hvd19mcmFtZSA9 IHBpYy0+ZnJhbWVfaGVhZGVyLT5zZWdtZW50YXRpb25fZW5hYmxlZCwKKyAgICAgICAgICAgLnNo b3dfZnJhbWUgPSAhcy0+aC5pbnZpc2libGUsCiAgICAgICAgICAgIC5Vc2VQcmV2RnJhbWVNdnMg PSBzLT5oLnVzZV9sYXN0X2ZyYW1lX212cywKICAgICAgICAgfSwKICAgICAgICAgLnByb2ZpbGUg PSBwcm9maWxlLAotLSAKMi41Mi4wCgoKRnJvbSAxYmYyMmMyYTNlNzRlOGZlYmY1ODE5YzJkNDli MzYxN2Q0MWY1NmJhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/S2Fj cGVyPTIwTWljaGFqPUM1PTgyb3c/PSA8a2FzcGVyOTNAZ21haWwuY29tPgpEYXRlOiBTdW4sIDMw IE5vdiAyMDI1IDA0OjMxOjE5ICswMTAwClN1YmplY3Q6IFtQQVRDSCAyOTUvMzA0XSBjb25maWd1 cmU6IG1ha2UgLS1kaXNhYmxlLW9wdGltaXphdGlvbnMgd29yayBvbgogTVNWQy9JQ0MKTUlNRS1W ZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCl9jZmxhZ3Nfbm9vcHQgd2FzIHByZXZpb3VzbHkg c2V0IHRvIG9wdGltaXplIGZvciBzaXplIGFzIGEgd29ya2Fyb3VuZApmb3IgaXNzdWVzIGluIE1T VkMgYnVpbGRzIHdpdGhvdXQgYW55IG9wdGltaXphdGlvbnMuIFNwZWNpZmljYWxseSB0aGUKbGFj ayBvZiBEQ0UgYW5kIGNvbnN0YW50IG1lcmdpbmcuIFRoaXMgaXMgbm8gbG9uZ2VyIG5lZWRlZCwg YXMgdGhvc2UKaXNzdWVzIGhhdmUgYmVlbiBmaXhlZCBpbiBvdXIgY29kZWJhc2UuCgpTaWduZWQt b2ZmLWJ5OiBLYWNwZXIgTWljaGFqxYJvdyA8a2FzcGVyOTNAZ21haWwuY29tPgotLS0KIGNvbmZp Z3VyZSB8IDIgLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRleCAxNWIzM2JiODcwLi45ZWM0MjFjZDIzIDEwMDc1 NQotLS0gYS9jb25maWd1cmUKKysrIGIvY29uZmlndXJlCkBAIC01MTYwLDcgKzUxNjAsNiBAQCBw cm9iZV9jYygpewogICAgICAgICBfZGVwZmxhZ3M9Jy1NTUQnCiAgICAgICAgIF9jZmxhZ3Nfc3Bl ZWQ9Jy1PMycKICAgICAgICAgX2NmbGFnc19zaXplPSctT3MnCi0gICAgICAgIF9jZmxhZ3Nfbm9v cHQ9Jy1PMScKICAgICAgICAgX2ZsYWdzX2ZpbHRlcj1pY2NfZmxhZ3MKICAgICBlbGlmICRfY2Mg LXYgMj4mMSB8IGdyZXAgLXEgeGxjOyB0aGVuCiAgICAgICAgIF90eXBlPXhsYwpAQCAtNTI3NCw3 ICs1MjczLDYgQEAgcHJvYmVfY2MoKXsKICAgICAgICAgX0RFUENYWEZMQUdTPSckKENYWEZMQUdT KScKICAgICAgICAgX2NmbGFnc19zcGVlZD0iLU8yIgogICAgICAgICBfY2ZsYWdzX3NpemU9Ii1P MSIKLSAgICAgICAgX2NmbGFnc19ub29wdD0iLU8xIgogICAgICAgICBpZiAkX2NjIC1ub2xvZ28t IDI+JjEgfCBncmVwIC1xIExpbmtlcjsgdGhlbgogICAgICAgICAgICAgX2xkX289Jy1vdXQ6JEAn CiAgICAgICAgICAgICBfZmxhZ3NfZmlsdGVyPW1zdmNfZmxhZ3NfbGluawotLSAKMi41Mi4wCgoK RnJvbSBkN2RiNzQ2MDgwMDk2OGEwZDJhMzcxNmY4ODFlNzczYTQzYzAyOGI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYW1lcyBBbG1lciA8amFtcmlhbEBnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMTAgRGVjIDIwMjUgMjE6NTE6MTEgLTAzMDAKU3ViamVjdDogW1BBVENIIDI5Ni8zMDRd IGF2dXRpbC9hYXJjaDY0L2NwdTogZml4IGNoZWNrIGZvciBTTUUgb24gTGludXgKClNNRSBpcyBh IEFUX0hXQ0FQMiBlbnRyeSwgbm90IEFUX0hXQ0FQLgoKU2lnbmVkLW9mZi1ieTogSmFtZXMgQWxt ZXIgPGphbXJpYWxAZ21haWwuY29tPgotLS0KIGxpYmF2dXRpbC9hYXJjaDY0L2NwdS5jIHwgMiAr LQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvbGliYXZ1dGlsL2FhcmNoNjQvY3B1LmMgYi9saWJhdnV0aWwvYWFyY2g2NC9jcHUuYwpp bmRleCAzMzk0OTYzMzAzLi5mOTNmZjA4ZmI1IDEwMDY0NAotLS0gYS9saWJhdnV0aWwvYWFyY2g2 NC9jcHUuYworKysgYi9saWJhdnV0aWwvYWFyY2g2NC9jcHUuYwpAQCAtNDUsNyArNDUsNyBAQCBz dGF0aWMgaW50IGRldGVjdF9mbGFncyh2b2lkKQogICAgICAgICBmbGFncyB8PSBBVl9DUFVfRkxB R19TVkUyOwogICAgIGlmIChod2NhcDIgJiBIV0NBUDJfQUFSQ0g2NF9JOE1NKQogICAgICAgICBm bGFncyB8PSBBVl9DUFVfRkxBR19JOE1NOwotICAgIGlmIChod2NhcCAmIEhXQ0FQMl9BQVJDSDY0 X1NNRSkKKyAgICBpZiAoaHdjYXAyICYgSFdDQVAyX0FBUkNINjRfU01FKQogICAgICAgICBmbGFn cyB8PSBBVl9DUFVfRkxBR19TTUU7CiAKICAgICByZXR1cm4gZmxhZ3M7Ci0tIAoyLjUyLjAKCgpG cm9tIDg3ZmIzNjQ0ZGZiODUyNzg4MTYwNTlkNTc3YzQ3NDQyODYyOTMxODkgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEphbWVzIEFsbWVyIDxqYW1yaWFsQGdtYWlsLmNvbT4KRGF0ZTog V2VkLCAxMCBEZWMgMjAyNSAyMjowMTozMyAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjk3LzMwNF0g dGVzdHMvZmF0ZS9maWx0ZXItdmlkZW86IGFkZCBtaXNzaW5nIGxhdmZpX2luZGV2CiBkZXBlbmRl bmN5IHRvIGZhdGUtZmlsdGVyLWZlZWRiYWNrLWhmbGlwCgpTaWduZWQtb2ZmLWJ5OiBKYW1lcyBB bG1lciA8amFtcmlhbEBnbWFpbC5jb20+Ci0tLQogdGVzdHMvZmF0ZS9maWx0ZXItdmlkZW8ubWFr IHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvdGVzdHMvZmF0ZS9maWx0ZXItdmlkZW8ubWFrIGIvdGVzdHMvZmF0ZS9maWx0 ZXItdmlkZW8ubWFrCmluZGV4IDM1YjI2ODdiMjcuLjBjNmNiYjJlZTIgMTAwNjQ0Ci0tLSBhL3Rl c3RzL2ZhdGUvZmlsdGVyLXZpZGVvLm1haworKysgYi90ZXN0cy9mYXRlL2ZpbHRlci12aWRlby5t YWsKQEAgLTE3NSw3ICsxNzUsNyBAQCBGQVRFX0ZJTFRFUi0kKGNhbGwgRklMVEVSRlJBTUVDUkMs IFRFU1RTUkMgRk9STUFUIENPTkNBVCBTQ0FMRSwgTEFWRklfSU5ERVYgRklMRQogZmF0ZS1maWx0 ZXItbGF2ZC1zY2FsZW5vcm06IHRlc3RzL2RhdGEvZmlsdGVyZ3JhcGhzL3NjYWxlbm9ybQogZmF0 ZS1maWx0ZXItbGF2ZC1zY2FsZW5vcm06IENNRCA9IGZyYW1lY3JjIC1mIGxhdmZpIC1ncmFwaF9m aWxlICQoVEFSR0VUX1BBVEgpL3Rlc3RzL2RhdGEvZmlsdGVyZ3JhcGhzL3NjYWxlbm9ybSAtaSBk dW1teQogCi1GQVRFX0ZJTFRFUi0kKGNhbGwgRklMVEVSRlJBTUVDUkMsIFRFU1RTUkMyIEZFRURC QUNLIEhGTElQKSArPSBmYXRlLWZpbHRlci1mZWVkYmFjay1oZmxpcAorRkFURV9GSUxURVItJChj YWxsIEZJTFRFUkZSQU1FQ1JDLCBURVNUU1JDMiBGRUVEQkFDSyBIRkxJUCwgTEFWRklfSU5ERVYp ICs9IGZhdGUtZmlsdGVyLWZlZWRiYWNrLWhmbGlwCiBmYXRlLWZpbHRlci1mZWVkYmFjay1oZmxp cDogQ01EID0gZnJhbWVjcmMgLWYgbGF2ZmkgLWkgdGVzdHNyYzI9ZD0xIC12ZiAiW2luXVtoZmxp cGluXWZlZWRiYWNrPXg9MDp5PTA6dz0xMDA6aD0xMDBbb3V0XVtoZmxpcG91dF07W2hmbGlwb3V0 XWhmbGlwW2hmbGlwaW5dIgogCiBGQVRFX0ZJTFRFUi0kKGNhbGwgRklMVEVSRlJBTUVDUkMsIEZS QU1FUkFURSBURVNUU1JDMikgKz0gZmF0ZS1maWx0ZXItZnJhbWVyYXRlLXVwIGZhdGUtZmlsdGVy LWZyYW1lcmF0ZS1kb3duCi0tIAoyLjUyLjAKCgpGcm9tIGI5ODQxNjE1NjZlZTMyNmM2MmJhOTI3 MTdjMDkzNWE2OGNjYzU4NDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IExlbyBJemVu IDxsZW8uaXplbkBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMSBEZWMgMjAyNSAwNjoxMTo1OCAtMDUw MApTdWJqZWN0OiBbUEFUQ0ggMjk4LzMwNF0gYXZjb2RlYy9saWJqeGxlbmM6IGdpdmUgZGlzcGxh eSBtYXRyaXggc2lkZWRhdGEKIHByaW9yaXR5CgpCZWZvcmUgdGhpcyBjb21taXQsIHdlIGlnbm9y ZSB0aGUgZGlzcGxheSBtYXRyaXggc2lkZSBkYXRhIGlmIGFueSBFWElGCnNpZGUgZGF0YSBpcyBw cmVzZW50LCBldmVuIGlmIHRoYXQgc2lkZSBkYXRhIGNvbnRhaW5zIG5vIG9yaWVudGF0aW9uCnRh Zy4gVGhpcyBhbGxvd3MgdXMgdG8gY2FsY3VsYXRlIHRoZSBvcmllbnRhdGlvbiBmcm9tIHRoZSBk aXNwbGF5Cm1hdHJpeCBzaWRlZGF0YSBmaXJzdCwgaWYgcHJlc2VudC4gSWRlYWxseSB0aGUgZGVj b2RlciB3aWxsIGhhdmUKcmVtb3ZlZCB0aGUgb3JpZW50YXRpb24gdGFnIHVwb24gZGVjb2Rpbmcg YW5kIGF0dGFjaGVkIHRoZSBkYXRhIGFzCmRpc3BsYXkgbWF0cml4IHNpZGUgZGF0YSBpbnN0ZWFk LCBzbyB0aGlzIG1ha2VzIG91ciBvcmllbnRhdGlvbiBjb2RlCnJlc3BlY3QgdGhpcyBiZWhhdmlv ci4KClNpZ25lZC1vZmYtYnk6IExlbyBJemVuIDxsZW8uaXplbkBnbWFpbC5jb20+Ci0tLQogbGli YXZjb2RlYy9saWJqeGxlbmMuYyB8IDI4ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9saWJhdmNvZGVjL2xpYmp4bGVuYy5jIGIvbGliYXZjb2RlYy9saWJqeGxlbmMuYwppbmRl eCBhMmZlYzg5NTYwLi44ZGRiZmFhMDk4IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2xpYmp4bGVu Yy5jCisrKyBiL2xpYmF2Y29kZWMvbGlianhsZW5jLmMKQEAgLTMyNSw3ICszMjUsNyBAQCBzdGF0 aWMgaW50IGxpYmp4bF9wcmVwcm9jZXNzX3N0cmVhbShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIGNv bnN0IEFWRnJhbWUgKmZyYW1lLAogICAgIExpYkp4bEVuY29kZUNvbnRleHQgKmN0eCA9IGF2Y3R4 LT5wcml2X2RhdGE7CiAgICAgQVZGcmFtZVNpZGVEYXRhICpzZDsKICAgICBpbnQzMl90ICptYXRy aXggPSAoaW50MzJfdFs5XSl7IDAgfTsKLSAgICBpbnQgcmV0ID0gMDsKKyAgICBpbnQgcmV0ID0g MCwgaGF2ZV9tYXRyaXggPSAwOwogICAgIGNvbnN0IEFWUGl4Rm10RGVzY3JpcHRvciAqcGl4X2Rl c2MgPSBhdl9waXhfZm10X2Rlc2NfZ2V0KGZyYW1lLT5mb3JtYXQpOwogICAgIEp4bEJhc2ljSW5m byBpbmZvOwogICAgIEp4bFBpeGVsRm9ybWF0ICpqeGxfZm10ID0gJmN0eC0+anhsX2ZtdDsKQEAg LTM4Myw2ICszODMsMTEgQEAgc3RhdGljIGludCBsaWJqeGxfcHJlcHJvY2Vzc19zdHJlYW0oQVZD b2RlY0NvbnRleHQgKmF2Y3R4LCBjb25zdCBBVkZyYW1lICpmcmFtZSwKICAgICAvKiBiaXRleGFj dCBsb3NzbGVzcyByZXF1aXJlcyB0aGVyZSB0byBiZSBubyBYWUIgdHJhbnNmb3JtICovCiAgICAg aW5mby51c2VzX29yaWdpbmFsX3Byb2ZpbGUgPSBjdHgtPmRpc3RhbmNlID09IDAuMCB8fCAhY3R4 LT54eWI7CiAKKyAgICBzZCA9IGF2X2ZyYW1lX2dldF9zaWRlX2RhdGEoZnJhbWUsIEFWX0ZSQU1F X0RBVEFfRElTUExBWU1BVFJJWCk7CisgICAgaWYgKHNkKSB7CisgICAgICAgIG1hdHJpeCA9IChp bnQzMl90ICopIHNkLT5kYXRhOworICAgICAgICBoYXZlX21hdHJpeCA9IDE7CisgICAgfQogICAg IHNkID0gYXZfZnJhbWVfZ2V0X3NpZGVfZGF0YShmcmFtZSwgQVZfRlJBTUVfREFUQV9FWElGKTsK ICAgICBpZiAoc2QpIHsKICAgICAgICAgQVZFeGlmTWV0YWRhdGEgaWZkID0geyAwIH07CkBAIC0z OTMsMjUgKzM5OCwyNiBAQCBzdGF0aWMgaW50IGxpYmp4bF9wcmVwcm9jZXNzX3N0cmVhbShBVkNv ZGVjQ29udGV4dCAqYXZjdHgsIGNvbnN0IEFWRnJhbWUgKmZyYW1lLAogICAgICAgICAgICAgcmV0 ID0gZmZfZXhpZl9zYW5pdGl6ZV9pZmQoYXZjdHgsIGZyYW1lLCAmaWZkKTsKICAgICAgICAgaWYg KHJldCA+PSAwKQogICAgICAgICAgICAgcmV0ID0gYXZfZXhpZl9nZXRfZW50cnkoYXZjdHgsICZp ZmQsIHRhZywgMCwgJm9yaWVudCk7Ci0gICAgICAgIGlmIChyZXQgPj0gMCAmJiBvcmllbnQgJiYg b3JpZW50LT52YWx1ZS51aW50WzBdID49IDEgJiYgb3JpZW50LT52YWx1ZS51aW50WzBdIDw9IDgp IHsKLSAgICAgICAgICAgIGF2X2V4aWZfb3JpZW50YXRpb25fdG9fbWF0cml4KG1hdHJpeCwgb3Jp ZW50LT52YWx1ZS51aW50WzBdKTsKKyAgICAgICAgaWYgKHJldCA+PSAwICYmIG9yaWVudCkgewor ICAgICAgICAgICAgaWYgKCFoYXZlX21hdHJpeCAmJiBvcmllbnQtPnZhbHVlLnVpbnRbMF0gPj0g MSAmJiBvcmllbnQtPnZhbHVlLnVpbnRbMF0gPD0gOCkgeworICAgICAgICAgICAgICAgIGF2X2V4 aWZfb3JpZW50YXRpb25fdG9fbWF0cml4KG1hdHJpeCwgb3JpZW50LT52YWx1ZS51aW50WzBdKTsK KyAgICAgICAgICAgICAgICBoYXZlX21hdHJpeCA9IDE7CisgICAgICAgICAgICB9CisgICAgICAg ICAgICAvKiBwb3AgdGhlIG9yaWVudGF0aW9uIHRhZyBhbnl3YXksIGJlY2F1c2UgaXQgb25seSBj cmVhdGVzICovCisgICAgICAgICAgICAvKiBhbWJpZ3VpdHkgd2l0aCB0aGUgY29kZXN0cmVhbSBv cmllbnRhdGlvbiB0YWtpbmcgcHJlY2RlbmNlICovCiAgICAgICAgICAgICByZXQgPSBhdl9leGlm X3JlbW92ZV9lbnRyeShhdmN0eCwgJmlmZCwgdGFnLCAwKTsKLSAgICAgICAgfSBlbHNlIHsKLSAg ICAgICAgICAgIGF2X2V4aWZfb3JpZW50YXRpb25fdG9fbWF0cml4KG1hdHJpeCwgMSk7CiAgICAg ICAgIH0KICAgICAgICAgaWYgKHJldCA+PSAwKQogICAgICAgICAgICAgcmV0ID0gYXZfZXhpZl93 cml0ZShhdmN0eCwgJmlmZCwgJmV4aWZfYnVmZmVyLCBBVl9FWElGX1RJRkZfSEVBREVSKTsKICAg ICAgICAgaWYgKHJldCA8IDApCiAgICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19XQVJO SU5HLCAidW5hYmxlIHRvIHByb2Nlc3MgRVhJRiBmcmFtZSBkYXRhXG4iKTsKICAgICAgICAgYXZf ZXhpZl9mcmVlKCZpZmQpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHNkID0gYXZfZnJhbWVfZ2V0 X3NpZGVfZGF0YShmcmFtZSwgQVZfRlJBTUVfREFUQV9ESVNQTEFZTUFUUklYKTsKLSAgICAgICAg aWYgKHNkKQotICAgICAgICAgICAgbWF0cml4ID0gKGludDMyX3QgKikgc2QtPmRhdGE7Ci0gICAg ICAgIGVsc2UKLSAgICAgICAgICAgIGF2X2V4aWZfb3JpZW50YXRpb25fdG9fbWF0cml4KG1hdHJp eCwgMSk7CiAgICAgfQogCisgICAgLyogdXNlIGlkZW50aXR5IG1hdHJpeCBhcyBkZWZhdWx0ICov CisgICAgaWYgKCFoYXZlX21hdHJpeCkKKyAgICAgICAgYXZfZXhpZl9vcmllbnRhdGlvbl90b19t YXRyaXgobWF0cml4LCAxKTsKKwogICAgIC8qIGF2X2Rpc3BsYXlfbWF0cml4X2ZsaXAgaXMgYSBy aWdodC1tdWx0aXBpbGNhdGlvbiAqLwogICAgIC8qIGkuZS4gZmxpcCBpcyBhcHBsaWVkIGJlZm9y ZSB0aGUgcHJldmlvdXMgbWF0cml4ICovCiAgICAgaWYgKGZyYW1lLT5saW5lc2l6ZSA8IDApCi0t IAoyLjUyLjAKCgpGcm9tIGYxYjM1OWM1MmI3ODA4NmZlMDgxZGY3ZTlhNDY3MTc3MWIzYTk2Y2Ug TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IExlbyBJemVuIDxsZW8uaXplbkBnbWFpbC5j b20+CkRhdGU6IE1vbiwgMSBEZWMgMjAyNSAwNjoyMDo1OCAtMDUwMApTdWJqZWN0OiBbUEFUQ0gg Mjk5LzMwNF0gYXZjb2RlYy9saWJqeGxlbmM6IGF2b2lkIGNhbGxpbmcgZnVuY3Rpb25zIGluc2lk ZSBpZgogc3RhdGVtZW50cwoKSXQgbGVhZHMgdG8gbWVzc2llciwgbGVzcyByZWFkYWJsZSBjb2Rl LCBhbmQgY2FuIGFsc28gbGVhZCB0byBidWdzLgpJIHByZWZlciB0aGlzIGNvZGUgc3R5bGUuCgpT aWduZWQtb2ZmLWJ5OiBMZW8gSXplbiA8bGVvLml6ZW5AZ21haWwuY29tPgotLS0KIGxpYmF2Y29k ZWMvbGlianhsZW5jLmMgfCAzMCArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9saWJhdmNvZGVjL2xpYmp4bGVuYy5jIGIvbGliYXZjb2RlYy9saWJqeGxlbmMuYwppbmRleCA4 ZGRiZmFhMDk4Li42NzY1MGRhN2U5IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2xpYmp4bGVuYy5j CisrKyBiL2xpYmF2Y29kZWMvbGlianhsZW5jLmMKQEAgLTMyNiw2ICszMjYsNyBAQCBzdGF0aWMg aW50IGxpYmp4bF9wcmVwcm9jZXNzX3N0cmVhbShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIGNvbnN0 IEFWRnJhbWUgKmZyYW1lLAogICAgIEFWRnJhbWVTaWRlRGF0YSAqc2Q7CiAgICAgaW50MzJfdCAq bWF0cml4ID0gKGludDMyX3RbOV0peyAwIH07CiAgICAgaW50IHJldCA9IDAsIGhhdmVfbWF0cml4 ID0gMDsKKyAgICBKeGxFbmNvZGVyU3RhdHVzIGpyZXQgPSBKWExfRU5DX1NVQ0NFU1M7CiAgICAg Y29uc3QgQVZQaXhGbXREZXNjcmlwdG9yICpwaXhfZGVzYyA9IGF2X3BpeF9mbXRfZGVzY19nZXQo ZnJhbWUtPmZvcm1hdCk7CiAgICAgSnhsQmFzaWNJbmZvIGluZm87CiAgICAgSnhsUGl4ZWxGb3Jt YXQgKmp4bF9mbXQgPSAmY3R4LT5qeGxfZm10OwpAQCAtNDQ1LDcgKzQ0Niw4IEBAIHN0YXRpYyBp bnQgbGlianhsX3ByZXByb2Nlc3Nfc3RyZWFtKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgY29uc3Qg QVZGcmFtZSAqZnJhbWUsCiAgICAgICAgIGluZm8uYW5pbWF0aW9uLnRwc19kZW5vbWluYXRvciA9 IGF2Y3R4LT50aW1lX2Jhc2UubnVtOwogICAgIH0KIAotICAgIGlmIChKeGxFbmNvZGVyU2V0QmFz aWNJbmZvKGN0eC0+ZW5jb2RlciwgJmluZm8pICE9IEpYTF9FTkNfU1VDQ0VTUykgeworICAgIGpy ZXQgPSBKeGxFbmNvZGVyU2V0QmFzaWNJbmZvKGN0eC0+ZW5jb2RlciwgJmluZm8pOworICAgIGlm IChqcmV0ICE9IEpYTF9FTkNfU1VDQ0VTUykgewogICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xP R19FUlJPUiwgIkZhaWxlZCB0byBzZXQgSnhsQmFzaWNJbmZvXG4iKTsKICAgICAgICAgcmV0ID0g QVZFUlJPUl9FWFRFUk5BTDsKICAgICAgICAgZ290byBlbmQ7CkBAIC00NTcsMzYgKzQ1OSw0MiBA QCBzdGF0aWMgaW50IGxpYmp4bF9wcmVwcm9jZXNzX3N0cmVhbShBVkNvZGVjQ29udGV4dCAqYXZj dHgsIGNvbnN0IEFWRnJhbWUgKmZyYW1lLAogICAgICAgICBleHRyYV9pbmZvLmJpdHNfcGVyX3Nh bXBsZSA9IGluZm8uYWxwaGFfYml0czsKICAgICAgICAgZXh0cmFfaW5mby5leHBvbmVudF9iaXRz X3Blcl9zYW1wbGUgPSBpbmZvLmFscGhhX2V4cG9uZW50X2JpdHM7CiAgICAgICAgIGV4dHJhX2lu Zm8uYWxwaGFfcHJlbXVsdGlwbGllZCA9IGluZm8uYWxwaGFfcHJlbXVsdGlwbGllZDsKLQotICAg ICAgICBpZiAoSnhsRW5jb2RlclNldEV4dHJhQ2hhbm5lbEluZm8oY3R4LT5lbmNvZGVyLCAwLCAm ZXh0cmFfaW5mbykgIT0gSlhMX0VOQ19TVUNDRVNTKSB7CisgICAgICAgIGpyZXQgPSBKeGxFbmNv ZGVyU2V0RXh0cmFDaGFubmVsSW5mbyhjdHgtPmVuY29kZXIsIDAsICZleHRyYV9pbmZvKTsKKyAg ICAgICAgaWYgKGpyZXQgIT0gSlhMX0VOQ19TVUNDRVNTKSB7CiAgICAgICAgICAgICBhdl9sb2co YXZjdHgsIEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byBzZXQgSnhsRXh0cmFDaGFubmVsSW5mbyBm b3IgYWxwaGEhXG4iKTsKLSAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0VYVEVSTkFMOworICAg ICAgICAgICAgcmV0ID0gQVZFUlJPUl9FWFRFUk5BTDsKKyAgICAgICAgICAgIGdvdG8gZW5kOwog ICAgICAgICB9CiAgICAgfQogCiAgICAgc2QgPSBhdl9mcmFtZV9nZXRfc2lkZV9kYXRhKGZyYW1l LCBBVl9GUkFNRV9EQVRBX0lDQ19QUk9GSUxFKTsKLSAgICBpZiAoc2QgJiYgc2QtPnNpemUgJiYg SnhsRW5jb2RlclNldElDQ1Byb2ZpbGUoY3R4LT5lbmNvZGVyLCBzZC0+ZGF0YSwgc2QtPnNpemUp ICE9IEpYTF9FTkNfU1VDQ0VTUykgewotICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19XQVJO SU5HLCAiQ291bGQgbm90IHNldCBJQ0MgUHJvZmlsZVxuIik7Ci0gICAgICAgIHNkID0gTlVMTDsK KyAgICBpZiAoc2QgJiYgc2QtPnNpemUpIHsKKyAgICAgICAganJldCA9IEp4bEVuY29kZXJTZXRJ Q0NQcm9maWxlKGN0eC0+ZW5jb2Rlciwgc2QtPmRhdGEsIHNkLT5zaXplKTsKKyAgICAgICAgaWYg KGpyZXQgIT0gSlhMX0VOQ19TVUNDRVNTKQorICAgICAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9M T0dfV0FSTklORywgIkNvdWxkIG5vdCBzZXQgSUNDIFByb2ZpbGVcbiIpOwogICAgIH0KIAotICAg IGlmICghc2QgfHwgIXNkLT5zaXplKQorICAgIC8qIGpyZXQgIT0gSlhMX0VOQ19TVUNDRVNTIG1l YW5zIGZhbGx0aHJvdWdoIGZyb20gYWJvdmUgKi8KKyAgICBpZiAoIXNkIHx8ICFzZC0+c2l6ZSB8 fCBqcmV0ICE9IEpYTF9FTkNfU1VDQ0VTUykKICAgICAgICAgbGlianhsX3BvcHVsYXRlX2NvbG9y c3BhY2UoYXZjdHgsIGZyYW1lLCBwaXhfZGVzYywgJmluZm8pOwogCiAjaWYgSlBFR1hMX05VTUVS SUNfVkVSU0lPTiA+PSBKUEVHWExfQ09NUFVURV9OVU1FUklDX1ZFUlNJT04oMCwgOCwgMCkKLSAg ICBpZiAoSnhsRW5jb2RlclNldEZyYW1lQml0RGVwdGgoY3R4LT5vcHRpb25zLCAmanhsX2JpdF9k ZXB0aCkgIT0gSlhMX0VOQ19TVUNDRVNTKQorICAgIGpyZXQgPSBKeGxFbmNvZGVyU2V0RnJhbWVC aXREZXB0aChjdHgtPm9wdGlvbnMsICZqeGxfYml0X2RlcHRoKTsKKyAgICBpZiAoanJldCAhPSBK WExfRU5DX1NVQ0NFU1MpCiAgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX1dBUk5JTkcsICJG YWlsZWQgdG8gc2V0IEp4bEJpdERlcHRoXG4iKTsKICNlbmRpZgogCiAgICAgaWYgKGV4aWZfYnVm ZmVyKSB7Ci0gICAgICAgIGlmIChKeGxFbmNvZGVyVXNlQm94ZXMoY3R4LT5lbmNvZGVyKSAhPSBK WExfRU5DX1NVQ0NFU1MpCisgICAgICAgIGpyZXQgPSBKeGxFbmNvZGVyVXNlQm94ZXMoY3R4LT5l bmNvZGVyKTsKKyAgICAgICAgaWYgKGpyZXQgIT0gSlhMX0VOQ19TVUNDRVNTKQogICAgICAgICAg ICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfV0FSTklORywgIkNvdWxkbid0IGVuYWJsZSBVc2VCb3hl c1xuIik7CiAgICAgfQogCiAgICAgLyogZGVwZW5kaW5nIG9uIGJhc2ljIGluZm8sIGxldmVsIDEw IG1pZ2h0CiAgICAgICogYmUgcmVxdWlyZWQgaW5zdGVhZCBvZiBsZXZlbCA1ICovCiAgICAgaWYg KEp4bEVuY29kZXJHZXRSZXF1aXJlZENvZGVzdHJlYW1MZXZlbChjdHgtPmVuY29kZXIpID4gNSkg ewotICAgICAgICBpZiAoSnhsRW5jb2RlclNldENvZGVzdHJlYW1MZXZlbChjdHgtPmVuY29kZXIs IDEwKSAhPSBKWExfRU5DX1NVQ0NFU1MpCisgICAgICAgIGpyZXQgPSBKeGxFbmNvZGVyU2V0Q29k ZXN0cmVhbUxldmVsKGN0eC0+ZW5jb2RlciwgMTApOworICAgICAgICBpZiAoanJldCAhPSBKWExf RU5DX1NVQ0NFU1MpCiAgICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19XQVJOSU5HLCAi Q291bGQgbm90IGluY3JlYXNlIGNvZGVzdHJlYW0gbGV2ZWxcbiIpOwogICAgIH0KIAotLSAKMi41 Mi4wCgoKRnJvbSBhZDJlMDZjNmY1MzU4MmNhZjYyMjE4NmJkMDc4NjRhNWUxMDdmZWVlIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gSXplbiA8bGVvLml6ZW5AZ21haWwuY29tPgpE YXRlOiBNb24sIDEgRGVjIDIwMjUgMDY6NDM6MzIgLTA1MDAKU3ViamVjdDogW1BBVENIIDMwMC8z MDRdIGF2Y29kZWMvbGlianhsZW5jOiBhZGQgRVhJRiBib3ggdG8gb3V0cHV0CgpXZSBhbHJlYWR5 IHBhcnNlIHRoZSBFWElGIHNpZGUgZGF0YSB0byBleHRyYWN0IHRoZSBvcmllbnRhdGlvbiwgc28g d2UKc2hvdWxkIGFkZCBpdCB0byB0aGUgb3V0cHV0IGZpbGUgYXMgYW4gRVhJRiBib3guCgpTaWdu ZWQtb2ZmLWJ5OiBMZW8gSXplbiA8bGVvLml6ZW5AZ21haWwuY29tPgotLS0KIGxpYmF2Y29kZWMv bGlianhsZW5jLmMgfCA0OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2xpYmF2Y29kZWMvbGlianhsZW5jLmMgYi9saWJhdmNvZGVjL2xpYmp4bGVuYy5j CmluZGV4IDY3NjUwZGE3ZTkuLmNhNDYwNjE1NDUgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvbGli anhsZW5jLmMKKysrIGIvbGliYXZjb2RlYy9saWJqeGxlbmMuYwpAQCAtNTksNiArNTksNyBAQCB0 eXBlZGVmIHN0cnVjdCBMaWJKeGxFbmNvZGVDb250ZXh0IHsKICAgICB1aW50OF90ICpidWZmZXI7 CiAgICAgc2l6ZV90IGJ1ZmZlcl9zaXplOwogICAgIEp4bFBpeGVsRm9ybWF0IGp4bF9mbXQ7Cisg ICAgQVZCdWZmZXJSZWYgKmV4aWZfYnVmZmVyOwogCiAgICAgLyogYW5pbWF0aW9uIHN0dWZmICov CiAgICAgQVZGcmFtZSAqZnJhbWU7CkBAIC0zMTYsNiArMzE3LDQwIEBAIHN0YXRpYyBpbnQgbGli anhsX3BvcHVsYXRlX2NvbG9yc3BhY2UoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBjb25zdCBBVkZy YW1lICpmcmFtCiAgICAgcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgbGlianhsX2FkZF9ib3hl cyhBVkNvZGVjQ29udGV4dCAqYXZjdHgpCit7CisgICAgTGliSnhsRW5jb2RlQ29udGV4dCAqY3R4 ID0gYXZjdHgtPnByaXZfZGF0YTsKKyAgICBKeGxFbmNvZGVyU3RhdHVzIGpyZXQgPSBKWExfRU5D X1NVQ0NFU1M7CisgICAgaW50IHJldCA9IDAsIG9wZW5lZCA9IDA7CisKKyAgICAvKiBubyBib3hl cyBuZWVkIHRvIGJlIGFkZGVkICovCisgICAgaWYgKCFjdHgtPmV4aWZfYnVmZmVyKQorICAgICAg ICBnb3RvIGVuZDsKKworICAgIGpyZXQgPSBKeGxFbmNvZGVyVXNlQm94ZXMoY3R4LT5lbmNvZGVy KTsKKyAgICBpZiAoanJldCAhPSBKWExfRU5DX1NVQ0NFU1MpIHsKKyAgICAgICAgYXZfbG9nKGF2 Y3R4LCBBVl9MT0dfV0FSTklORywgIkNvdWxkIG5vdCBlbmFibGUgVXNlQm94ZXNcbiIpOworICAg ICAgICByZXQgPSBBVkVSUk9SX0VYVEVSTkFMOworICAgICAgICBnb3RvIGVuZDsKKyAgICB9Cisg ICAgb3BlbmVkID0gMTsKKworICAgIGpyZXQgPSBKeGxFbmNvZGVyQWRkQm94KGN0eC0+ZW5jb2Rl ciwgIkV4aWYiLCBjdHgtPmV4aWZfYnVmZmVyLT5kYXRhLCBjdHgtPmV4aWZfYnVmZmVyLT5zaXpl LCBKWExfVFJVRSk7CisgICAgaWYgKGpyZXQgIT0gSlhMX0VOQ19TVUNDRVNTKQorICAgICAgICBq cmV0ID0gSnhsRW5jb2RlckFkZEJveChjdHgtPmVuY29kZXIsICJFeGlmIiwgY3R4LT5leGlmX2J1 ZmZlci0+ZGF0YSwgY3R4LT5leGlmX2J1ZmZlci0+c2l6ZSwgSlhMX0ZBTFNFKTsKKyAgICBpZiAo anJldCAhPSBKWExfRU5DX1NVQ0NFU1MpIHsKKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0df V0FSTklORywgIkZhaWxlZCB0byBhZGQgRXhpZiBib3hcbiIpOworICAgICAgICByZXQgPSBBVkVS Uk9SX0VYVEVSTkFMOworICAgICAgICBnb3RvIGVuZDsKKyAgICB9CisKK2VuZDoKKyAgICBpZiAo b3BlbmVkKQorICAgICAgICBKeGxFbmNvZGVyQ2xvc2VCb3hlcyhjdHgtPmVuY29kZXIpOworCisg ICAgcmV0dXJuIHJldDsKK30KKwogLyoqCiAgKiBTZW5kcyBtZXRhZGF0YSB0byBsaWJqeGwgYmFz ZWQgb24gdGhlIGZpcnN0IGZyYW1lIG9mIHRoZSBzdHJlYW0sIHN1Y2ggYXMgcGl4ZWwgZm9ybWF0 LAogICogb3JpZW50YXRpb24sIGJpdCBkZXB0aCwgYW5kIHRoYXQgc29ydCBvZiB0aGluZy4KQEAg LTMzMiw3ICszNjcsNiBAQCBzdGF0aWMgaW50IGxpYmp4bF9wcmVwcm9jZXNzX3N0cmVhbShBVkNv ZGVjQ29udGV4dCAqYXZjdHgsIGNvbnN0IEFWRnJhbWUgKmZyYW1lLAogICAgIEp4bFBpeGVsRm9y bWF0ICpqeGxfZm10ID0gJmN0eC0+anhsX2ZtdDsKICAgICBpbnQgYml0c19wZXJfc2FtcGxlOwog ICAgIGludCBvcmllbnRhdGlvbjsKLSAgICBBVkJ1ZmZlclJlZiAqZXhpZl9idWZmZXIgPSBOVUxM OwogI2lmIEpQRUdYTF9OVU1FUklDX1ZFUlNJT04gPj0gSlBFR1hMX0NPTVBVVEVfTlVNRVJJQ19W RVJTSU9OKDAsIDgsIDApCiAgICAgSnhsQml0RGVwdGgganhsX2JpdF9kZXB0aDsKICNlbmRpZgpA QCAtNDA5LDcgKzQ0Myw3IEBAIHN0YXRpYyBpbnQgbGlianhsX3ByZXByb2Nlc3Nfc3RyZWFtKEFW Q29kZWNDb250ZXh0ICphdmN0eCwgY29uc3QgQVZGcmFtZSAqZnJhbWUsCiAgICAgICAgICAgICBy ZXQgPSBhdl9leGlmX3JlbW92ZV9lbnRyeShhdmN0eCwgJmlmZCwgdGFnLCAwKTsKICAgICAgICAg fQogICAgICAgICBpZiAocmV0ID49IDApCi0gICAgICAgICAgICByZXQgPSBhdl9leGlmX3dyaXRl KGF2Y3R4LCAmaWZkLCAmZXhpZl9idWZmZXIsIEFWX0VYSUZfVElGRl9IRUFERVIpOworICAgICAg ICAgICAgcmV0ID0gYXZfZXhpZl93cml0ZShhdmN0eCwgJmlmZCwgJmN0eC0+ZXhpZl9idWZmZXIs IEFWX0VYSUZfVF9PRkYpOwogICAgICAgICBpZiAocmV0IDwgMCkKICAgICAgICAgICAgIGF2X2xv ZyhhdmN0eCwgQVZfTE9HX1dBUk5JTkcsICJ1bmFibGUgdG8gcHJvY2VzcyBFWElGIGZyYW1lIGRh dGFcbiIpOwogICAgICAgICBhdl9leGlmX2ZyZWUoJmlmZCk7CkBAIC00ODQsMTIgKzUxOCw2IEBA IHN0YXRpYyBpbnQgbGlianhsX3ByZXByb2Nlc3Nfc3RyZWFtKEFWQ29kZWNDb250ZXh0ICphdmN0 eCwgY29uc3QgQVZGcmFtZSAqZnJhbWUsCiAgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX1dB Uk5JTkcsICJGYWlsZWQgdG8gc2V0IEp4bEJpdERlcHRoXG4iKTsKICNlbmRpZgogCi0gICAgaWYg KGV4aWZfYnVmZmVyKSB7Ci0gICAgICAgIGpyZXQgPSBKeGxFbmNvZGVyVXNlQm94ZXMoY3R4LT5l bmNvZGVyKTsKLSAgICAgICAgaWYgKGpyZXQgIT0gSlhMX0VOQ19TVUNDRVNTKQotICAgICAgICAg ICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfV0FSTklORywgIkNvdWxkbid0IGVuYWJsZSBVc2VCb3hl c1xuIik7Ci0gICAgfQotCiAgICAgLyogZGVwZW5kaW5nIG9uIGJhc2ljIGluZm8sIGxldmVsIDEw IG1pZ2h0CiAgICAgICogYmUgcmVxdWlyZWQgaW5zdGVhZCBvZiBsZXZlbCA1ICovCiAgICAgaWYg KEp4bEVuY29kZXJHZXRSZXF1aXJlZENvZGVzdHJlYW1MZXZlbChjdHgtPmVuY29kZXIpID4gNSkg ewpAQCAtNDk4LDggKzUyNiwxMCBAQCBzdGF0aWMgaW50IGxpYmp4bF9wcmVwcm9jZXNzX3N0cmVh bShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIGNvbnN0IEFWRnJhbWUgKmZyYW1lLAogICAgICAgICAg ICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfV0FSTklORywgIkNvdWxkIG5vdCBpbmNyZWFzZSBjb2Rl c3RyZWFtIGxldmVsXG4iKTsKICAgICB9CiAKKyAgICBsaWJqeGxfYWRkX2JveGVzKGF2Y3R4KTsK KwogZW5kOgotICAgIGF2X2J1ZmZlcl91bnJlZigmZXhpZl9idWZmZXIpOworICAgIGF2X2J1ZmZl cl91bnJlZigmY3R4LT5leGlmX2J1ZmZlcik7CiAgICAgcmV0dXJuIHJldDsKIH0KIAotLSAKMi41 Mi4wCgoKRnJvbSBjZjE2ZWI3NGM1OWQwMTZhZjY1NDE4Yzc4ZjA0MWM1YzZhMTcwMzZlIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Uj1DMz1BOW1pPTIwRGVuaXMtQ291 cm1vbnQ/PSA8cmVtaUByZW1sYWIubmV0PgpEYXRlOiBXZWQsIDEwIERlYyAyMDI1IDIwOjM1OjU5 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzMDEvMzA0XSBsYXZjL2xsdmlkZW5jZHNwOiBSLVYgViBz dWJfbGVmdF9wcmVkaWN0CgpTcGFjZW1pVCBYNjA6CnN1Yl9sZWZ0X3ByZWRpY3RfYzogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgNTE4MzYuMCAoIDEuMDB4KQpzdWJfbGVmdF9wcmVk aWN0X3J2dl9pMzI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1ODQzLjEgKCA4Ljg3eCkK LS0tCiBsaWJhdmNvZGVjL3Jpc2N2L2xsdmlkZW5jZHNwX2luaXQuYyB8ICA0ICsrKysKIGxpYmF2 Y29kZWMvcmlzY3YvbGx2aWRlbmNkc3BfcnZ2LlMgIHwgMjcgKysrKysrKysrKysrKysrKysrKysr KysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9s aWJhdmNvZGVjL3Jpc2N2L2xsdmlkZW5jZHNwX2luaXQuYyBiL2xpYmF2Y29kZWMvcmlzY3YvbGx2 aWRlbmNkc3BfaW5pdC5jCmluZGV4IGUzNTQwNmRjNDEuLmJkMmZmZWY0MmYgMTAwNjQ0Ci0tLSBh L2xpYmF2Y29kZWMvcmlzY3YvbGx2aWRlbmNkc3BfaW5pdC5jCisrKyBiL2xpYmF2Y29kZWMvcmlz Y3YvbGx2aWRlbmNkc3BfaW5pdC5jCkBAIC0yNiw2ICsyNiw5IEBACiAKIHZvaWQgZmZfbGx2aWRl bmNfZGlmZl9ieXRlc19ydnYodWludDhfdCAqZHN0LCBjb25zdCB1aW50OF90ICpzcmMxLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpzcmMyLCBpbnRwdHJf dCB3KTsKK3ZvaWQgZmZfbGx2aWRlbmNfc3ViX2xlZnRfcHJlZGljdF9ydnYodWludDhfdCAqZHN0 LCBjb25zdCB1aW50OF90ICpzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHB0cmRpZmZfdCBzdHJpZGUsIHB0cmRpZmZfdCB3aWR0aCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50IGhlaWdodCk7CiAKIGF2X2NvbGQgdm9pZCBmZl9sbHZp ZGVuY2RzcF9pbml0X3Jpc2N2KExMVmlkRW5jRFNQQ29udGV4dCAqYykKIHsKQEAgLTM0LDYgKzM3 LDcgQEAgYXZfY29sZCB2b2lkIGZmX2xsdmlkZW5jZHNwX2luaXRfcmlzY3YoTExWaWRFbmNEU1BD b250ZXh0ICpjKQogCiAgICAgaWYgKGZsYWdzICYgQVZfQ1BVX0ZMQUdfUlZWX0kzMikgewogICAg ICAgICBjLT5kaWZmX2J5dGVzID0gZmZfbGx2aWRlbmNfZGlmZl9ieXRlc19ydnY7CisgICAgICAg IGMtPnN1Yl9sZWZ0X3ByZWRpY3QgPSBmZl9sbHZpZGVuY19zdWJfbGVmdF9wcmVkaWN0X3J2djsK ICAgICB9CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvcmlzY3YvbGx2aWRlbmNk c3BfcnZ2LlMgYi9saWJhdmNvZGVjL3Jpc2N2L2xsdmlkZW5jZHNwX3J2di5TCmluZGV4IDQ0YmYz YWM3ZTUuLmE4NjJiNzc2ZTAgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvcmlzY3YvbGx2aWRlbmNk c3BfcnZ2LlMKKysrIGIvbGliYXZjb2RlYy9yaXNjdi9sbHZpZGVuY2RzcF9ydnYuUwpAQCAtMzYs MyArMzYsMzAgQEAgZnVuYyBmZl9sbHZpZGVuY19kaWZmX2J5dGVzX3J2diwgenZlMzJ4CiAKICAg ICAgICAgcmV0CiBlbmRmdW5jCisKK2Z1bmMgZmZfbGx2aWRlbmNfc3ViX2xlZnRfcHJlZGljdF9y dnYsIHp2ZTMyeAorICAgICAgICBscGFkICAgIDAKKyAgICAgICAgbGkgICAgICBhNSwgLTB4ODAK KyAgICAgICAgc3ViICAgICBhMiwgYTIsIGEzCisxOgorICAgICAgICBtdiAgICAgIHQzLCBhMwor ICAgICAgICBhZGRpICAgIGE0LCBhNCwgLTEKKzI6CisgICAgICAgIHZzZXR2bGkgdDAsIHQzLCBl OCwgbTgsIHRhLCBtYQorICAgICAgICB2bGU4LnYgIHYxNiwgKGExKQorICAgICAgICBzdWIgICAg IHQzLCB0MywgdDAKKyAgICAgICAgdmxlOC52ICB2OCwgKGEwKQorICAgICAgICBhZGQgICAgIGEx LCBhMSwgdDAKKyAgICAgICAgdnNsaWRlMXVwLnZ4ICAgIHYyNCwgdjE2LCBhNQorICAgICAgICB2 YWRkLnZ2IHY4LCB2OCwgdjE2CisgICAgICAgIGxiICAgICAgYTUsIC0xKGExKQorICAgICAgICB2 c3ViLnZ2IHY4LCB2OCwgdjI0CisgICAgICAgIHZzZTgudiAgdjgsIChhMCkKKyAgICAgICAgYWRk ICAgICBhMCwgYTAsIHQwCisgICAgICAgIGJuZXogICAgdDMsIDJiCisKKyAgICAgICAgYWRkICAg ICBhMSwgYTEsIGEyCisgICAgICAgIGJuZXogICAgYTQsIDFiCisKKyAgICAgICAgcmV0CitlbmRm dW5jCi0tIAoyLjUyLjAKCgpGcm9tIDVlM2FmNjZmNmU4ZDE5MzJkYWExNGJjMzI1ODE0MjZmZjhj YTA1M2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJ1aWthaSBQZW5nIDxydWlrYWlA cHduby5pbz4KRGF0ZTogVGh1LCAxMSBEZWMgMjAyNSAwNjoyNzo0OCArMDAwMApTdWJqZWN0OiBb UEFUQ0ggMzAyLzMwNF0gYXZmb3JtYXQvc2llcnJhdm1kOiBmaXggaGVhZGVyIHJlYWQgZXJyb3Ig Y2hlY2sKClRoZSBoZWFkZXIgcmVhZCBjaGVjayBzdG9yZWQgdGhlIGNvbXBhcmlzb24gcmVzdWx0 IGludG8gcmV0LCBzbyByZWFkCmZhaWx1cmVzIGJlY2FtZSByZXQ9MSBhbmQgd2VyZSB0cmVhdGVk IGFzIHN1Y2Nlc3MsIGxlYXZpbmcgdGhlIFZNRCBoZWFkZXIKdW5pbml0aWFsaXplZCBhbmQgbGV0 dGluZyBwYXJzaW5nIGNvbnRpbnVlIHdpdGggYm9ndXMgc3RhdGUuCgpSZWdyZXNzaW9uIHNpbmNl OiBlZTYyM2E0M2UzLgpGb3VuZC1ieTogUHdubwotLS0KIGxpYmF2Zm9ybWF0L3NpZXJyYXZtZC5j IHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvc2llcnJhdm1kLmMgYi9saWJhdmZvcm1hdC9zaWVycmF2 bWQuYwppbmRleCBiYjFkMWM1ZGY3Li4yNTE5NzU2NTMzIDEwMDY0NAotLS0gYS9saWJhdmZvcm1h dC9zaWVycmF2bWQuYworKysgYi9saWJhdmZvcm1hdC9zaWVycmF2bWQuYwpAQCAtMTAzLDcgKzEw Myw3IEBAIHN0YXRpYyBpbnQgdm1kX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKIAog ICAgIC8qIGZldGNoIHRoZSBtYWluIGhlYWRlciwgaW5jbHVkaW5nIHRoZSAyIGhlYWRlciBsZW5n dGggYnl0ZXMgKi8KICAgICBhdmlvX3NlZWsocGIsIDAsIFNFRUtfU0VUKTsKLSAgICBpZiAoKHJl dCA9IGZmaW9fcmVhZF9zaXplKHBiLCB2bWQtPnZtZF9oZWFkZXIsIFZNRF9IRUFERVJfU0laRSkg PCAwKSkKKyAgICBpZiAoKHJldCA9IGZmaW9fcmVhZF9zaXplKHBiLCB2bWQtPnZtZF9oZWFkZXIs IFZNRF9IRUFERVJfU0laRSkpIDwgMCkKICAgICAgICAgcmV0dXJuIHJldDsKIAogICAgIHdpZHRo ID0gQVZfUkwxNigmdm1kLT52bWRfaGVhZGVyWzEyXSk7Ci0tIAoyLjUyLjAKCgpGcm9tIDRiODIw OTM2MjNjNWM2YWUxYmM5NTI1NjQ2Y2Q0ZjQxNWYwM2Q2OTYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206ID0/VVRGLTg/cT9KYW49MjBFa3N0cj1DMz1CNm0/PSA8amVlYmpwQGdtYWlsLmNv bT4KRGF0ZTogVGh1LCAxMSBEZWMgMjAyNSAyMjoxMTowNyArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MzAzLzMwNF0gZmF0ZS9mZm1wZWc6IHJlbW92ZSBjb21wYXJpc29uIGFnYWluc3QgcmVmIGZyb20K IGZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0CgpBZnRlciB0aGUgZnVsbCBmZm1wZWcgQ0xJIG11 bHRpdGhyZWFkaW5nIGNoYW5nZXMgd2VudCBpbiwgdGhpcwp0ZXN0IHN0YXJ0ZWQgZGVwZW5kaW5n IG9uIGhvdyBmYXIgdGhlIGlucHV0IHNpZGUgcmVhZCBhbmQgZGVjb2RlZAp0aGUgaW5wdXQgY29t cGFyZWQgdG8gaG93IHF1aWNrbHkgdGhlIG91dHB1dCBlbmNvZGVkIHRoaW5ncywgY2F1c2luZwpz cHVyaW91cyBmYWlsdXJlcyBvbiB0aGUgQ0kuCgpUbyBteSBrbm93bGVkZ2UgYWxsIG9mIHRoZSBm YWlsdXJlcyBoYXZlIHNvIGZhciBiZWVuIHZhbGlkIGNvcnJlY3QKcmVzdWx0cywgYnV0IHVuZm9y dHVuYXRlbHkgRkFURSdzIGJ1aWx0IGluIGNoZWNrcyBtb3N0bHkgY29uc2lzdCBvZgp3aGV0aGVy IHRoZXJlIGlzIGEgZGlmZmVyZW5jZSBhZ2FpbnN0IGFuIGV4YWN0IHJlc3VsdC4KClRoaXMgd2F5 IHdlIHN0aWxsIGdldCB0aGUgQ0kgYW5kIHZhbGdyaW5kIHJ1bm5pbmcgb2YgdGhlIGNvZGUsCmJ1 dCBzdG9wIGl0cyBjb21wYXJpc29uLiBSZWZlcmVuY2UgZmlsZSBpcyBsZWZ0IGFyb3VuZCBzbyB0 aGF0CnRoZSBwcmV2aW91cyByZWZlcmVuY2UgaXMgc3RpbGwgYXZhaWxhYmxlLgotLS0KIHRlc3Rz L2ZhdGUvZmZtcGVnLm1hayB8IDUgKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS90ZXN0cy9mYXRlL2ZmbXBlZy5tYWsgYi90ZXN0cy9mYXRlL2ZmbXBl Zy5tYWsKaW5kZXggYzBkYTJkYTdmOC4uY2QwMDI3NTYzOCAxMDA2NDQKLS0tIGEvdGVzdHMvZmF0 ZS9mZm1wZWcubWFrCisrKyBiL3Rlc3RzL2ZhdGUvZmZtcGVnLm1hawpAQCAtMTMzLDYgKzEzMywx MSBAQCBmYXRlLWZmbXBlZy1maXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdDogQ01EID0gZm10c3Rk b3V0IHNydCAtZml4X3N1Yl9kdXJhdGlvbiBcCiAgIC1jOnYgbXBlZzJ2aWRlbyAtYjp2IDJNIC1n IDMwIC1zY190aHJlc2hvbGQgMTAwMDAwMDAwMCBcCiAgIC1jOnMgc3J0IFwKICAgLWYgbnVsbCAt CisjIEZJWE1FOiBkaXNhYmxpbmcgY29tcGFyaXNvbiBhZ2FpbnN0IHJlZmVyZW5jZSBhcyBhZnRl ciBmZm1wZWcgbXVsdGl0aHJlYWRpbmcKKyMgICAgICAgIHdlbnQgaW4sIHRoaXMgdGVzdCBzdGFy dGVkIGRlcGVuZGluZyBvbiBob3cgZmFyIHRoZSBpbnB1dCBzaWRlCisjICAgICAgICBwcm9ncmVz c2VkIGNvbXBhcmVkIHRvIGhvdyBxdWlja2x5IHRoZSBvdXRwdXQgZW5jb2RlZCBwYWNrZXRzLAor IyAgICAgICAgY2F1c2luZyBzcHVyaW91cyBmYWlsdXJlcyBvbiB0aGUgQ0kuCitmYXRlLWZmbXBl Zy1maXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdDogQ01QID0gbnVsbAogCiAjIEZJWE1FOiB0aGUg aW50ZWdlciBBQUMgZGVjb2RlciBkb2VzIG5vdCBwcm9kdWNlIHRoZSBzYW1lIG91dHB1dCBvbiBh bGwgcGxhdGZvcm1zCiAjIHNvIHVudGlsIHRoYXQgaXMgZml4ZWQgd2UgdXNlIHRoZSB2b2x1bWUg ZmlsdGVyIHRvIHNpbGVuY2UgdGhlIGRhdGEKLS0gCjIuNTIuMAoKCkZyb20gMjgwNTA2MTAxMGFk MDg1OGY2YjlmMmQwODg0YmY3ODZjNDZmN2RiZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogQW50aG9ueSBCYWpvdWEgPGFudGhvbnliYWpvdWFAbWV0YS5jb20+CkRhdGU6IEZyaSwgMzAg SmFuIDIwMjYgMTM6NDM6MDMgLTA4MDAKU3ViamVjdDogW1BBVENIIDMwNC8zMDRdIGxpYmF2Zm9y bWF0L21vdmVuYzogVXNlcyBkeW5hbWljIGJ1ZmZlcnMgZm9yCiBmcmFnbWVudGVkIGNodW5rcwoK LS0tCiBsaWJhdmZvcm1hdC9tb3ZlbmMuYyB8IDE3ICsrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xp YmF2Zm9ybWF0L21vdmVuYy5jIGIvbGliYXZmb3JtYXQvbW92ZW5jLmMKaW5kZXggOGQ4YWNkMmFm Zi4uZjNiNWYyZDc1OCAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvbW92ZW5jLmMKKysrIGIvbGli YXZmb3JtYXQvbW92ZW5jLmMKQEAgLTYzODYsNyArNjM4Niw3IEBAIHN0YXRpYyBpbnQgbW92X2Zs dXNoX2ZyYWdtZW50X2ludGVybGVhdmluZyhBVkZvcm1hdENvbnRleHQgKnMsIE1PVlRyYWNrICp0 cmFjaykKIAogICAgIG9mZnNldCA9IGF2aW9fdGVsbChtb3YtPm1kYXRfYnVmKTsKICAgICBhdmlv X3dyaXRlKG1vdi0+bWRhdF9idWYsIGJ1ZiwgYnVmX3NpemUpOwotICAgIGZmaW9fZnJlZV9keW5f YnVmKCZ0cmFjay0+bWRhdF9idWYpOworICAgIGZmaW9fcmVzZXRfZHluX2J1Zih0cmFjay0+bWRh dF9idWYpOwogCiAgICAgZm9yIChpID0gdHJhY2stPmVudHJpZXNfZmx1c2hlZDsgaSA8IHRyYWNr LT5lbnRyeTsgaSsrKQogICAgICAgICB0cmFjay0+Y2x1c3RlcltpXS5wb3MgKz0gb2Zmc2V0OwpA QCAtNjU5MSw3ICs2NTkxLDcgQEAgc3RhdGljIGludCBtb3ZfZmx1c2hfZnJhZ21lbnQoQVZGb3Jt YXRDb250ZXh0ICpzLCBpbnQgZm9yY2UpCiAgICAgICAgIGF2aW9fd2IzMihzLT5wYiwgYnVmX3Np emUgKyA4KTsKICAgICAgICAgZmZpb193Zm91cmNjKHMtPnBiLCAibWRhdCIpOwogICAgICAgICBh dmlvX3dyaXRlKHMtPnBiLCBidWYsIGJ1Zl9zaXplKTsKLSAgICAgICAgZmZpb19mcmVlX2R5bl9i dWYoJm1vdi0+bWRhdF9idWYpOworICAgICAgICBmZmlvX3Jlc2V0X2R5bl9idWYobW92LT5tZGF0 X2J1Zik7CiAKICAgICAgICAgaWYgKG1vdi0+ZmxhZ3MgJiBGRl9NT1ZfRkxBR19HTE9CQUxfU0lE WCkKICAgICAgICAgICAgIG1vdi0+cmVzZXJ2ZWRfaGVhZGVyX3BvcyA9IGF2aW9fdGVsbChzLT5w Yik7CkBAIC02Njc4LDE3ICs2Njc4LDE2IEBAIHN0YXRpYyBpbnQgbW92X2ZsdXNoX2ZyYWdtZW50 KEFWRm9ybWF0Q29udGV4dCAqcywgaW50IGZvcmNlKQogICAgICAgICBpZiAoIW1vdi0+ZnJhZ19p bnRlcmxlYXZlKSB7CiAgICAgICAgICAgICBpZiAoIXRyYWNrLT5tZGF0X2J1ZikKICAgICAgICAg ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGJ1Zl9zaXplID0gYXZpb19jbG9zZV9keW5f YnVmKHRyYWNrLT5tZGF0X2J1ZiwgJmJ1Zik7Ci0gICAgICAgICAgICB0cmFjay0+bWRhdF9idWYg PSBOVUxMOworICAgICAgICAgICAgYnVmX3NpemUgPSBhdmlvX2dldF9keW5fYnVmKHRyYWNrLT5t ZGF0X2J1ZiwgJmJ1Zik7CisgICAgICAgICAgICBhdmlvX3dyaXRlKHMtPnBiLCBidWYsIGJ1Zl9z aXplKTsKKyAgICAgICAgICAgIGZmaW9fcmVzZXRfZHluX2J1Zih0cmFjay0+bWRhdF9idWYpOwog ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKCFtb3YtPm1kYXRfYnVmKQogICAgICAg ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgYnVmX3NpemUgPSBhdmlvX2Nsb3NlX2R5 bl9idWYobW92LT5tZGF0X2J1ZiwgJmJ1Zik7Ci0gICAgICAgICAgICBtb3YtPm1kYXRfYnVmID0g TlVMTDsKKyAgICAgICAgICAgIGJ1Zl9zaXplID0gYXZpb19nZXRfZHluX2J1Zihtb3YtPm1kYXRf YnVmLCAmYnVmKTsKKyAgICAgICAgICAgIGF2aW9fd3JpdGUocy0+cGIsIGJ1ZiwgYnVmX3NpemUp OworICAgICAgICAgICAgZmZpb19yZXNldF9keW5fYnVmKG1vdi0+bWRhdF9idWYpOwogICAgICAg ICB9Ci0KLSAgICAgICAgYXZpb193cml0ZShzLT5wYiwgYnVmLCBidWZfc2l6ZSk7Ci0gICAgICAg IGF2X2ZyZWUoYnVmKTsKICAgICB9CiAKICAgICBtb3YtPm1kYXRfc2l6ZSA9IDA7Ci0tIAoyLjUy LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBl Zy1kZXZlbCBtYWlsaW5nIGxpc3QgLS0gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKVG8gdW5zdWJz Y3JpYmUgc2VuZCBhbiBlbWFpbCB0byBmZm1wZWctZGV2ZWwtbGVhdmVAZmZtcGVnLm9yZwo=