From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.bugs Subject: bug#60585: 30.0.50; global-text-scale-adjust shrinks window (was not before), was: Re: bug#52493: 29.0.50; Setting Inconsolata up in init.el makes default face rendered wrong Date: Thu, 26 Jan 2023 16:44:03 +0100 Message-ID: References: <80e7f515-e16f-5ce8-86a3-e5f47cd2d2f5@yandex.ru> <0547624a-15c0-792c-dce5-85101cf9cd71@gmx.at> <5770c9ec-4de5-8365-fb70-5a88d14d8179@yandex.ru> <75e1b3d4-a79f-d36f-4898-fdf1ed05492c@gmx.at> <33214f9c-f89f-b96f-e1db-12aad7b03261@yandex.ru> <36f67e04-8450-5273-2136-fb9832ed703f@gmx.at> <67b92c69-f456-0d31-c7b2-83600cc12f61@yandex.ru> <936558fd-5c6e-f575-7211-3d6a14f8febd@yandex.ru> <46994f90-a8ab-7797-73f6-51af01759fb1@gmx.at> <661a804a-ad05-81f8-1aa0-b83811a0576c@yandex.ru> <9c02c0b0-9b96-7d46-37ae-a258a9496891@gmx.at> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------5Nfi0h3QGqNPoL0vG5c8h6cD" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="24179"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 60585@debbugs.gnu.org, rpluim@gmail.com To: Dmitry Gutov , Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Jan 26 16:45:35 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pL4RS-00066T-BI for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 26 Jan 2023 16:45:34 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pL4Qy-0007Bh-LD; Thu, 26 Jan 2023 10:45:04 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pL4Qx-00078K-3O for bug-gnu-emacs@gnu.org; Thu, 26 Jan 2023 10:45:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pL4Qw-00009A-Ee for bug-gnu-emacs@gnu.org; Thu, 26 Jan 2023 10:45:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pL4Qv-0000yg-V1 for bug-gnu-emacs@gnu.org; Thu, 26 Jan 2023 10:45:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 26 Jan 2023 15:45:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 60585 X-GNU-PR-Package: emacs Original-Received: via spool by 60585-submit@debbugs.gnu.org id=B60585.16747478633666 (code B ref 60585); Thu, 26 Jan 2023 15:45:01 +0000 Original-Received: (at 60585) by debbugs.gnu.org; 26 Jan 2023 15:44:23 +0000 Original-Received: from localhost ([127.0.0.1]:35926 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pL4QH-0000x3-9h for submit@debbugs.gnu.org; Thu, 26 Jan 2023 10:44:23 -0500 Original-Received: from mout.gmx.net ([212.227.15.15]:36545) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pL4QE-0000wm-05 for 60585@debbugs.gnu.org; Thu, 26 Jan 2023 10:44:20 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.at; s=s31663417; t=1674747849; bh=y6f5YYOWlVJF3RTjJ6V80aNJGWekbocCSnD3MC8CMuY=; h=X-UI-Sender-Class:Date:Subject:To:Cc:References:From:In-Reply-To; b=dzQsWSb3HfcqAJxJZ34MtFjnEM+qgurONoDheBRunfzdfxmQ7BmRBb/ITFA1B3unF JYoYCb5IvK/BhMS1kOl8j/LxPYsfDyJtiIHrQidXegyTFu5o8QremMYcvun3XrxGfO dEske4oSD0Hfet4Q2OO4BKHjy+Zs6VOtozApy2MwKEvBCHAy1H18Uu5dDW6c2HBkDG wV2dVq4NlPtYn+ropPefRMd+BrUIwsYZqjYwgV6NxP9ahmPm0L3eU7w9OHvImRd8wO FfBCODDXAcVRwn6ppG33poAg5eKdoPv9OSCle8JT7upQj+UnYYLopQpN8jkbJGCW69 8aDhT+kJCLG9w== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Original-Received: from [192.168.1.100] ([212.95.5.83]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M1HZo-1pMi2t0bd4-002pE3; Thu, 26 Jan 2023 16:44:09 +0100 Content-Language: en-US In-Reply-To: X-Provags-ID: V03:K1:Z4V2wLMvQjBOzELC0tJBJrHE3YfeFZ42/z2sfBDqGrcli5KfRwB RhimFit+MtkY1c7BsjXdZwqrDHMlDZA/phdtjrC2LxrbKfqf8QGx+lRy7vZXGpNRpoTvDfP J9LqpVB9TUAYgXKkWQJtvke6+FD/TTo3/A2ssuN+Hg6Q87KRDqUKe96D2OvsAEC2su2PoLC ZhV0tWRmYpjKpKypxj8bQ== UI-OutboundReport: notjunk:1;M01:P0:6JV4qfLEON8=;GZIEoWSiXFFGSBMauhfLmH/oQtC THXzdQFyLhLhVEOa9XWsjqRXyMVpgyvcH1tzeMmDdKEdPI/8Y3qjjfbPXjjX7vAKH6AKhsyBf BLaivMDmYFAgdQHw/6pmzXC7zVlW508SkldLL2IhnEdN0xjNGWxhwm4xDDteJAg71nU+smhxo yVzlmt71nTXev+oN7a66G7RaxA6rAtEagxWlKZNtbEY3979VhD9EFTJT+0hNjJHglKvke0lUt PLCvtghtT1hWpkprXW8+8Rsz4HEtHk48e/Ha8omikfLwhn5B7RkgcytP1B0qxxyCM9yF0VVoS bTMfkVzPt2RpKoHK+PlJrMZnzEMuDbOvA8A4gi2Gg/9Ln0JTWk4yRKHAmUxE3xsiYa66j2wMI kd6rj4QJLyMH4RN0EPV8NgPxiO3a0oWMpxT7arKo0tWZ2/hMiOjB9UTSrAKZXCbhnhcDn5rt9 1XVZHnPABuqkCRm5EtJ8BwdMeXXmD2HYU7ZlRpTWFC1p8MCRvBw1c5SOWSmwtcAGsrQVtFBRz Smxl4cMd4JJrjXOlJQee8GYGxKS38OPZunAM8MVK485V21+B/6LU5jMRAgAV31bb/ln5nkYyz dTaA4nxUADtYTsUs08APYGVmXSkFgG3dj+Tp4LqxX/At8j469WZNukHaxBErbvTE6ODK+J8Xq wTqXDVA9bK5xckc4LEiIkiFu4evAuKPE/5E4bERBGvFwxf6Bn0rLrnSyrgVd7Omo15MFNm6ni EHxSAR3gBtJXAMoieK/HTKxSatxa7bKnkB/CESkalexwIorROG3Kw3SVJW7n0P1qBN0X3OKa X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:254211 Archived-At: This is a multi-part message in MIME format. --------------5Nfi0h3QGqNPoL0vG5c8h6cD Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit > It seems to have a different effect: the last version at least has one size where s-f-a changes the height by 2 line heights. > > See this transcript where at the end (and multiple times before that) change the frame to 118x35 (per GNOME) which is 112x35 internally, and s-f-a changes the height to 33 (per GNOME) which is 34 internally. I suppose you're talking about this part: x_new_font old char size 17x37 new char size 17x37 text chars 112x35 old text pixels 1904x1330 new text pixels 1904x1295 xg_frame_set_char_size old native pixels 1952x1330 new native pixels 1952x1295 outer pixels 976x713 outer rest 0x0 xg_frame_resized old native pixels 1952x1330 new native pixels 1952x1294 adjust_frame_size old native pixels 1952x1330 new native pixels 1952x1294 old text pixels 1904x1330 new text pixels 1904x1294 old text chars 112x35 new text chars 112x34 And what you probably mean here is that you've seen the GNOME window show 118x35, then you did 'set-face-attribute' and after that the GNOME window showed 118x33. The explanation is probably that GNOME shows the N from the frame_height = base_height + N * height_inc calculation and after 'set-face-attribute' already removed one line, increasing base_height to make the equation hold removed another one. I attach a patch where I try to mimic in *foo*, after a text "WM hint", what a WM would typically show there. Please switch to *foo* right away and, while you drag a border, check whether the numbers are the same GNOME displays. If so, please show me again the transcript of the above. (118 vs 112 looks slightly preposterous BTW - it would mean that scroll bar and fringes are six characters wide. Here both width and height differ by 1 only.) martin --------------5Nfi0h3QGqNPoL0vG5c8h6cD Content-Type: text/x-patch; charset=UTF-8; name="x_rest.diff" Content-Disposition: attachment; filename="x_rest.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpc3Avd2luZG93LmVsIGIvbGlzcC93aW5kb3cuZWwKaW5kZXggYTEx MjkzZDM3Mi4uNzA2Yzk4OGIyZSAxMDA2NDQKLS0tIGEvbGlzcC93aW5kb3cuZWwKKysrIGIv bGlzcC93aW5kb3cuZWwKQEAgLTEwNTk2LDYgKzEwNTk2LDIxIEBAIHdpbmRvdy1wcmVmaXgt bWFwCiAgICIwIiAjJ2RlbGV0ZS13aW5kb3dzLW9uKQogKGRlZmluZS1rZXkgY3RsLXgtbWFw ICJ3IiB3aW5kb3ctcHJlZml4LW1hcCkKIAorKGRlZnVuIGZvby1pdCAoJnJlc3QgcmVzdCkK KyAgKHdpdGgtY3VycmVudC1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlICIqZm9vKiIpCisg ICAgKGdvdG8tY2hhciAocG9pbnQtbWF4KSkKKyAgICAod2hlbiByZXN0CisgICAgICAoaWYg KGNvbnNwIChjYXIgcmVzdCkpCisgICAgICAgICAgKGluc2VydCAoZm9ybWF0ICIlc3glcyIg KGNhYXIgcmVzdCkgKGNkYXIgcmVzdCkpKQorICAgICAgICAoaW5zZXJ0IChmb3JtYXQgIiVz IiAoY2FyIHJlc3QpKSkpCisgICAgICAoc2V0cSByZXN0IChjZHIgcmVzdCkpCisgICAgICAo d2hpbGUgcmVzdAorICAgICAgICAoaWYgKGNvbnNwIChjYXIgcmVzdCkpCisgICAgICAgICAg ICAoaW5zZXJ0IChmb3JtYXQgIiAlc3glcyIgKGNhYXIgcmVzdCkgKGNkYXIgcmVzdCkpKQor CSAgKGluc2VydCAoZm9ybWF0ICIgJXMiIChjYXIgcmVzdCkpKSkKKwkoc2V0cSByZXN0IChj ZHIgcmVzdCkpKQorICAgICAgKGluc2VydCAiXG4iKSkpKQorCiAocHJvdmlkZSAnd2luZG93 KQogCiA7Ozsgd2luZG93LmVsIGVuZHMgaGVyZQpkaWZmIC0tZ2l0IGEvc3JjL2ZyYW1lLmMg Yi9zcmMvZnJhbWUuYwppbmRleCBiNTdiMjk2YmU1Li5mMDAwNTQwY2UxIDEwMDY0NAotLS0g YS9zcmMvZnJhbWUuYworKysgYi9zcmMvZnJhbWUuYwpAQCAtOTA2LDYgKzkwNiw2NCBAQCBh ZGp1c3RfZnJhbWVfc2l6ZSAoc3RydWN0IGZyYW1lICpmLCBpbnQgbmV3X3RleHRfd2lkdGgs IGludCBuZXdfdGV4dF9oZWlnaHQsCiAKICAgdW5ibG9ja19pbnB1dCAoKTsKIAorICBpZiAo b2xkX25hdGl2ZV93aWR0aCAhPSBuZXdfbmF0aXZlX3dpZHRoCisgICAgICB8fCBvbGRfbmF0 aXZlX2hlaWdodCAhPSBuZXdfbmF0aXZlX2hlaWdodAorICAgICAgfHwgb2xkX3RleHRfd2lk dGggIT0gbmV3X3RleHRfd2lkdGgKKyAgICAgIHx8IG9sZF90ZXh0X2hlaWdodCAhPSBuZXdf dGV4dF9oZWlnaHQKKyAgICAgIHx8IG9sZF90ZXh0X2NvbHMgIT0gbmV3X3RleHRfY29scwor ICAgICAgfHwgb2xkX3RleHRfbGluZXMgIT0gbmV3X3RleHRfbGluZXMpCisgICAgQ0FMTE4g KEZmdW5jYWxsLCBRZm9vX2l0LCBpbnRlcm4gKCJhZGp1c3RfZnJhbWVfc2l6ZSIpLAorCSAg IGludGVybiAoIm9sZCBuYXRpdmUgcGl4ZWxzIiksCisJICAgRmNvbnMgKG1ha2VfZml4bnVt IChvbGRfbmF0aXZlX3dpZHRoKSwKKwkJICBtYWtlX2ZpeG51bSAob2xkX25hdGl2ZV9oZWln aHQpKSwKKwkgICBpbnRlcm4gKCJuZXcgbmF0aXZlIHBpeGVscyIpLAorCSAgIEZjb25zICht YWtlX2ZpeG51bSAobmV3X25hdGl2ZV93aWR0aCksCisJCSAgbWFrZV9maXhudW0gKG5ld19u YXRpdmVfaGVpZ2h0KSksCisJICAgaW50ZXJuICgib2xkIHRleHQgcGl4ZWxzIiksCisJICAg RmNvbnMgKG1ha2VfZml4bnVtIChvbGRfdGV4dF93aWR0aCksCisJCSAgbWFrZV9maXhudW0g KG9sZF90ZXh0X2hlaWdodCkpLAorCSAgIGludGVybiAoIm5ldyB0ZXh0IHBpeGVscyIpLAor CSAgIEZjb25zIChtYWtlX2ZpeG51bSAobmV3X3RleHRfd2lkdGgpLAorCQkgIG1ha2VfZml4 bnVtIChuZXdfdGV4dF9oZWlnaHQpKSwKKwkgICBpbnRlcm4gKCJvbGQgdGV4dCBjaGFycyIp LAorCSAgIEZjb25zIChtYWtlX2ZpeG51bSAob2xkX3RleHRfY29scyksCisJCSAgbWFrZV9m aXhudW0gKG9sZF90ZXh0X2xpbmVzKSksCisJICAgaW50ZXJuICgibmV3IHRleHQgY2hhcnMi KSwKKwkgICBGY29ucyAobWFrZV9maXhudW0gKG5ld190ZXh0X2NvbHMpLAorCQkgIG1ha2Vf Zml4bnVtIChuZXdfdGV4dF9saW5lcykpKTsKKworI2lmZGVmIFVTRV9HVEsKKyAgaWYgKGYt PnJlc2l6ZWRfb25jZV9wKQorICAgIHsKKyAgICAgIGludCBvdXRlcl9oZWlnaHQKKwk9IEZS QU1FX1BJWEVMX0hFSUdIVCAoZikgKyBGUkFNRV9UT09MQkFSX0hFSUdIVCAoZikgKyBGUkFN RV9NRU5VQkFSX0hFSUdIVCAoZik7CisgICAgICBpbnQgb3V0ZXJfd2lkdGggPSBGUkFNRV9Q SVhFTF9XSURUSCAoZikgKyBGUkFNRV9UT09MQkFSX1dJRFRIIChmKTsKKyAgICAgIGludCBz Y2FsZSA9IHhnX2dldF9zY2FsZSAoZik7CisgICAgICBHZGtHZW9tZXRyeSBzaXplX2hpbnRz ID0gZi0+b3V0cHV0X2RhdGEueC0+c2l6ZV9oaW50czsKKworICAgICAgb3V0ZXJfaGVpZ2h0 IC89IHNjYWxlOworICAgICAgb3V0ZXJfd2lkdGggLz0gc2NhbGU7CisKKyAgICAgIGlmIChv dXRlcl93aWR0aCA+IDAgJiYgc2l6ZV9oaW50cy5iYXNlX3dpZHRoID4gMAorCSAgJiYgc2l6 ZV9oaW50cy53aWR0aF9pbmMgPiAwICYmIG91dGVyX2hlaWdodCA+IDAKKwkgICYmIHNpemVf aGludHMuYmFzZV9oZWlnaHQgPiAwICYmIHNpemVfaGludHMuaGVpZ2h0X2luYyA+IDApCisJ eworCSAgQ0FMTE4gKEZmdW5jYWxsLCBRZm9vX2l0LAorCQkgaW50ZXJuICgiICAgIGJhc2Vf c2l6ZSIpLAorCQkgRmNvbnMgKG1ha2VfZml4bnVtIChzaXplX2hpbnRzLmJhc2Vfd2lkdGgp LAorCQkJbWFrZV9maXhudW0gKHNpemVfaGludHMuYmFzZV9oZWlnaHQpKSwKKwkJIGludGVy biAoInNpemUgaW5jcmVtZW50cyIpLAorCQkgRmNvbnMgKG1ha2VfZml4bnVtIChzaXplX2hp bnRzLndpZHRoX2luYyksCisJCQltYWtlX2ZpeG51bSAoc2l6ZV9oaW50cy5oZWlnaHRfaW5j KSksCisJCSBpbnRlcm4gKCJXTSBoaW50IiksCisJCSBGY29ucyAobWFrZV9maXhudW0gKChv dXRlcl93aWR0aCAtIHNpemVfaGludHMuYmFzZV93aWR0aCkKKwkJCQkgICAgIC8gc2l6ZV9o aW50cy53aWR0aF9pbmMpLAorCQkJbWFrZV9maXhudW0gKChvdXRlcl9oZWlnaHQgLSBzaXpl X2hpbnRzLmJhc2VfaGVpZ2h0KQorCQkJCSAgICAgLyBzaXplX2hpbnRzLmhlaWdodF9pbmMp KSk7CisJfQorICAgIH0KKyNlbmRpZgorCiAjaWZkZWYgSEFWRV9XSU5ET1dfU1lTVEVNCiAg IHsKICAgICAvKiBBZGp1c3Qgc2l6ZSBvZiBGJ3MgY2hpbGQgZnJhbWVzLiAgKi8KZGlmZiAt LWdpdCBhL3NyYy9mcmFtZS5oIGIvc3JjL2ZyYW1lLmgKaW5kZXggZDZmZDYyYjJhYy4uNzI0 YjY1MmVlYyAxMDA2NDQKLS0tIGEvc3JjL2ZyYW1lLmgKKysrIGIvc3JjL2ZyYW1lLmgKQEAg LTI2NSw2ICsyNjUsOCBAQCAjZGVmaW5lIEVNQUNTX0ZSQU1FX0gKICAgICAgY2hhbmdlZC4g IENsZWFyIHRoZSBmcmFtZSBpbiBjbGVhcl9nYXJiYWdlZF9mcmFtZXMgaWYgc2V0LiAgKi8K ICAgYm9vbF9iZiByZXNpemVkX3AgOiAxOwogCisgIGJvb2xfYmYgcmVzaXplZF9vbmNlX3Ag OiAxOworCiAgIC8qIFNldCB0byB0cnVlIGlmIHRoZSBkZWZhdWx0IGZhY2UgZm9yIHRoZSBm cmFtZSBoYXMgYmVlbgogICAgICByZWFsaXplZC4gIFJlc2V0IHRvIHplcm8gd2hlbmV2ZXIg dGhlIGRlZmF1bHQgZmFjZSBjaGFuZ2VzLgogICAgICBVc2VkIHRvIHNlZSB0aGUgZGlmZmVy ZW5jZSBiZXR3ZWVuIGEgZm9udCBjaGFuZ2UgYW5kIGZhY2UgY2hhbmdlLiAgKi8KZGlmZiAt LWdpdCBhL3NyYy9ndGt1dGlsLmMgYi9zcmMvZ3RrdXRpbC5jCmluZGV4IGE2YmJhMDk2YTQu Ljg5NDY2MzZmMGIgMTAwNjQ0Ci0tLSBhL3NyYy9ndGt1dGlsLmMKKysrIGIvc3JjL2d0a3V0 aWwuYwpAQCAtMTE0OSw2ICsxMTQ5LDE0IEBAIHhnX2ZyYW1lX3Jlc2l6ZWQgKHN0cnVjdCBm cmFtZSAqZiwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogCSAgIGYtPm5ld19zaXplX3AgPyBm LT5uZXdfaGVpZ2h0IDogLTEpOwogCiAgICAgICBGUkFNRV9SSUYgKGYpLT5jbGVhcl91bmRl cl9pbnRlcm5hbF9ib3JkZXIgKGYpOworCisgICAgICBDQUxMTiAoRmZ1bmNhbGwsIFFmb29f aXQsIGludGVybiAoInhnX2ZyYW1lX3Jlc2l6ZWQiKSwKKwkgICAgIGludGVybiAoIm9sZCBu YXRpdmUgcGl4ZWxzIiksCisJICAgICBGY29ucyAobWFrZV9maXhudW0gKEZSQU1FX1BJWEVM X1dJRFRIIChmKSksCisJCSAgICBtYWtlX2ZpeG51bSAoRlJBTUVfUElYRUxfSEVJR0hUIChm KSkpLAorCSAgICAgaW50ZXJuICgibmV3IG5hdGl2ZSBwaXhlbHMiKSwKKwkgICAgIEZjb25z IChtYWtlX2ZpeG51bSAod2lkdGgpLCBtYWtlX2ZpeG51bSAoaGVpZ2h0KSkpOworCiAgICAg ICBjaGFuZ2VfZnJhbWVfc2l6ZSAoZiwgd2lkdGgsIGhlaWdodCwgZmFsc2UsIHRydWUsIGZh bHNlKTsKICAgICAgIFNFVF9GUkFNRV9HQVJCQUdFRCAoZik7CiAgICAgICBjYW5jZWxfbW91 c2VfZmFjZSAoZik7CkBAIC0xMTc0LDYgKzExODIsOCBAQCB4Z19mcmFtZV9zZXRfY2hhcl9z aXplIChzdHJ1Y3QgZnJhbWUgKmYsIGludCB3aWR0aCwgaW50IGhlaWdodCkKICAgaW50IG91 dGVyX3dpZHRoID0gd2lkdGggKyBGUkFNRV9UT09MQkFSX1dJRFRIIChmKTsKICAgYm9vbCB3 YXNfdmlzaWJsZSA9IGZhbHNlOwogICBib29sIGhpZGVfY2hpbGRfZnJhbWU7CisgIGludCBz Y2FsZSA9IHhnX2dldF9zY2FsZSAoZik7CisgIEdka0dlb21ldHJ5IHNpemVfaGludHMgPSBm LT5vdXRwdXRfZGF0YS54cC0+c2l6ZV9oaW50czsKIAogI2lmbmRlZiBIQVZFX1BHVEsKICAg Z3RrX3dpbmRvd19nZXRfc2l6ZSAoR1RLX1dJTkRPVyAoRlJBTUVfR1RLX09VVEVSX1dJREdF VCAoZikpLApAQCAtMTE5NiwxMCArMTIwNiw0MiBAQCB4Z19mcmFtZV9zZXRfY2hhcl9zaXpl IChzdHJ1Y3QgZnJhbWUgKmYsIGludCB3aWR0aCwgaW50IGhlaWdodCkKICAgLyogRG8gdGhp cyBiZWZvcmUgcmVzaXplLCBhcyB3ZSBkb24ndCBrbm93IHlldCBpZiB3ZSB3aWxsIGJlIHJl c2l6ZWQuICAqLwogICBGUkFNRV9SSUYgKGYpLT5jbGVhcl91bmRlcl9pbnRlcm5hbF9ib3Jk ZXIgKGYpOwogCi0gIG91dGVyX2hlaWdodCAvPSB4Z19nZXRfc2NhbGUgKGYpOwotICBvdXRl cl93aWR0aCAvPSB4Z19nZXRfc2NhbGUgKGYpOworICBpZiAoc2NhbGUgIT0gMSAmJiAhZnJh bWVfcmVzaXplX3BpeGVsd2lzZQorICAgICAgLyogRG9uJ3QgYm90aGVyIHRoZSBXTSB3aGVu IHRoZSBudW1iZXIgb2YgdGV4dCBjb2x1bW5zIG9yIHRleHQKKwkgbGluZXMgd291bGRuJ3Qg Y2hhbmdlIGFuZCBvbmx5IHRoZSBwaXhlbCBzaXplcyB3b3VsZC4gIEJ1dCBtYWtlCisJIHN1 cmUgZmlyc3QgdGhhdCB0aGVzZSBzaXplcyBhcmUgIm91dCBvZiBzeW5jaCIgZHVlIHRvIGEK KwkgcHJlY2VkaW5nICJpbXByZWNpc2UgYnkgc2NhbGluZyIgb3BlcmF0aW9uIGxpa2UgYSBt b3VzZSBkcmFnLgorCSBPdGhlcndpc2UsIHdlIG1pZ2h0IGVuZCB1cCB3aXRoIGEgZnJhbWUg dGhhdCBkb2Vzbid0IGdldCBhCisJIHN1aXRhYmxlIGluaXRpYWwgc2l6ZS4gICovCisgICAg ICAmJiAoRlJBTUVfUElYRUxfVE9fVEVYVF9XSURUSCAoZiwgd2lkdGgpIC8gRlJBTUVfQ09M UyAoZikKKwkgID09IEZSQU1FX1RFWFRfV0lEVEggKGYpIC8gRlJBTUVfQ09MUyAoZikpCisg ICAgICAmJiBGUkFNRV9URVhUX1dJRFRIIChmKSAhPSBGUkFNRV9DT0xTIChmKSAqIEZSQU1F X0NPTFVNTl9XSURUSCAoZikKKyAgICAgICYmIChGUkFNRV9QSVhFTF9UT19URVhUX0hFSUdI VCAoZiwgaGVpZ2h0KSAvIEZSQU1FX0xJTkVTIChmKQorCSAgPT0gRlJBTUVfVEVYVF9IRUlH SFQgKGYpIC8gRlJBTUVfTElORVMgKGYpKQorICAgICAgJiYgRlJBTUVfVEVYVF9IRUlHSFQg KGYpICE9IEZSQU1FX0xJTkVTIChmKSAqIEZSQU1FX0xJTkVfSEVJR0hUIChmKSkKKyAgICB7 CisgICAgICBDQUxMTiAoRmZ1bmNhbGwsIFFmb29faXQsIGludGVybiAoInhnX2ZyYW1lX3Nl dF9jaGFyX3NpemVfcmV0dXJuIiksCisJICAgICBpbnRlcm4gKCJjaGFyIHNpemUiKSwKKwkg ICAgIEZjb25zIChtYWtlX2ZpeG51bSAoRlJBTUVfQ09MVU1OX1dJRFRIIChmKSksCisJCSAg ICBtYWtlX2ZpeG51bSAoRlJBTUVfTElORV9IRUlHSFQgKGYpKSksCisJICAgICBpbnRlcm4g KCJ0ZXh0IGNvbHVtbnMvbGluZXMiKSwKKwkgICAgIEZjb25zIChtYWtlX2ZpeG51bSAoRlJB TUVfQ09MUyAoZikpLAorCQkgICAgbWFrZV9maXhudW0gKEZSQU1FX0xJTkVTIChmKSkpLAor CSAgICAgaW50ZXJuICgicGl4ZWxzIHRvIHRleHQgd2lkdGgvaGVpZ2h0IiksCisJICAgICBG Y29ucyAobWFrZV9maXhudW0gKEZSQU1FX1BJWEVMX1RPX1RFWFRfV0lEVEggKGYsIHdpZHRo KSksCisJCSAgICBtYWtlX2ZpeG51bSAoRlJBTUVfUElYRUxfVE9fVEVYVF9IRUlHSFQgKGYs IGhlaWdodCkpKSwKKwkgICAgIGludGVybiAoInRleHQgd2lkdGgvaGVpZ2h0IiksCisJICAg ICBGY29ucyAobWFrZV9maXhudW0gKEZSQU1FX1RFWFRfV0lEVEggKGYpKSwKKwkJICAgIG1h a2VfZml4bnVtIChGUkFNRV9URVhUX0hFSUdIVCAoZikpKSk7CisKKyAgICAgIHJldHVybjsK KyAgICB9CiAKLSAgeGdfd21fc2V0X3NpemVfaGludCAoZiwgMCwgMCk7CisgIG91dGVyX2hl aWdodCAvPSBzY2FsZTsKKyAgb3V0ZXJfd2lkdGggLz0gc2NhbGU7CisKKyAgeGdfd21fc2V0 X3NpemVfaGludCAoZiwgMCwgMCwgRlJBTUVfUElYRUxfVE9fVEVYVF9XSURUSCAoZiwgd2lk dGgpLAorCQkgICAgICAgRlJBTUVfUElYRUxfVE9fVEVYVF9IRUlHSFQgKGYsIGhlaWdodCkp OwogCiAgIC8qIFJlc2l6ZSB0aGUgdG9wIGxldmVsIHdpZGdldCBzbyByb3dzIGFuZCBjb2x1 bW5zIHJlbWFpbiBjb25zdGFudC4KIApAQCAtMTMxNyw2ICsxMzU5LDUwIEBAIHhnX2ZyYW1l X3NldF9jaGFyX3NpemUgKHN0cnVjdCBmcmFtZSAqZiwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0 KQogICBTRVRfRlJBTUVfR0FSQkFHRUQgKGYpOwogICBjYW5jZWxfbW91c2VfZmFjZSAoZik7 CiAKKyAgZi0+cmVzaXplZF9vbmNlX3AgPSB0cnVlOworCisgIHNpemVfaGludHMgPSBmLT5v dXRwdXRfZGF0YS54cC0+c2l6ZV9oaW50czsKKyAgaWYgKG91dGVyX3dpZHRoID4gMCAmJiBz aXplX2hpbnRzLmJhc2Vfd2lkdGggPiAwCisgICAgICAmJiBzaXplX2hpbnRzLndpZHRoX2lu YyA+IDAgJiYgb3V0ZXJfaGVpZ2h0ID4gMAorICAgICAgJiYgc2l6ZV9oaW50cy5iYXNlX2hl aWdodCA+IDAgJiYgc2l6ZV9oaW50cy5oZWlnaHRfaW5jID4gMCkKKyAgICB7CisKKyAgICAg IENBTExOIChGZnVuY2FsbCwgUWZvb19pdCwgaW50ZXJuICgieGdfZnJhbWVfc2V0X2NoYXJf c2l6ZSIpLAorCSAgICAgaW50ZXJuICgib2xkIG5hdGl2ZSBwaXhlbHMiKSwKKwkgICAgIEZj b25zIChtYWtlX2ZpeG51bSAoRlJBTUVfUElYRUxfV0lEVEggKGYpKSwKKwkJICAgIG1ha2Vf Zml4bnVtIChGUkFNRV9QSVhFTF9IRUlHSFQgKGYpKSksCisJICAgICBpbnRlcm4gKCJuZXcg bmF0aXZlIHBpeGVscyIpLAorCSAgICAgRmNvbnMgKG1ha2VfZml4bnVtICh3aWR0aCksIG1h a2VfZml4bnVtIChoZWlnaHQpKSwKKwkgICAgIGludGVybiAoIm91dGVyIHBpeGVscyIpLAor CSAgICAgRmNvbnMgKG1ha2VfZml4bnVtIChvdXRlcl93aWR0aCksIG1ha2VfZml4bnVtIChv dXRlcl9oZWlnaHQpKSwKKwkgICAgIGludGVybiAoIm91dGVyIHJlc3QiKSwKKwkgICAgIEZj b25zIChtYWtlX2ZpeG51bSAoKG91dGVyX3dpZHRoIC0gc2l6ZV9oaW50cy5iYXNlX3dpZHRo KQorCQkJCSAlIHNpemVfaGludHMud2lkdGhfaW5jKSwKKwkJICAgIG1ha2VfZml4bnVtICgo b3V0ZXJfaGVpZ2h0IC0gc2l6ZV9oaW50cy5iYXNlX2hlaWdodCkKKwkJCQkgJSBzaXplX2hp bnRzLmhlaWdodF9pbmMpKSk7CisgICAgICBDQUxMTiAoRmZ1bmNhbGwsIFFmb29faXQsCisJ ICAgICBpbnRlcm4gKCIgICAgYmFzZV9zaXplIiksCisJICAgICBGY29ucyAobWFrZV9maXhu dW0gKHNpemVfaGludHMuYmFzZV93aWR0aCksCisJCSAgICBtYWtlX2ZpeG51bSAoc2l6ZV9o aW50cy5iYXNlX2hlaWdodCkpLAorCSAgICAgaW50ZXJuICgic2l6ZSBpbmNyZW1lbnRzIiks CisJICAgICBGY29ucyAobWFrZV9maXhudW0gKHNpemVfaGludHMud2lkdGhfaW5jKSwKKwkJ ICAgIG1ha2VfZml4bnVtIChzaXplX2hpbnRzLmhlaWdodF9pbmMpKSwKKwkgICAgIGludGVy biAoIldNIGhpbnQiKSwKKwkgICAgIEZjb25zIChtYWtlX2ZpeG51bSAoKG91dGVyX3dpZHRo IC0gc2l6ZV9oaW50cy5iYXNlX3dpZHRoKQorCQkJCSAvIHNpemVfaGludHMud2lkdGhfaW5j KSwKKwkJICAgIG1ha2VfZml4bnVtICgob3V0ZXJfaGVpZ2h0IC0gc2l6ZV9oaW50cy5iYXNl X2hlaWdodCkKKwkJCQkgLyBzaXplX2hpbnRzLmhlaWdodF9pbmMpKSk7CisgICAgfQorICBl bHNlCisgICAgQ0FMTE4gKEZmdW5jYWxsLCBRZm9vX2l0LCBpbnRlcm4gKCJ4Z19mcmFtZV9z ZXRfY2hhcl9zaXplIiksCisJICAgaW50ZXJuICgib2xkIG5hdGl2ZSBwaXhlbHMiKSwKKwkg ICBGY29ucyAobWFrZV9maXhudW0gKEZSQU1FX1BJWEVMX1dJRFRIIChmKSksCisJCSAgbWFr ZV9maXhudW0gKEZSQU1FX1BJWEVMX0hFSUdIVCAoZikpKSwKKwkgICBpbnRlcm4gKCJuZXcg bmF0aXZlIHBpeGVscyIpLAorCSAgIEZjb25zIChtYWtlX2ZpeG51bSAod2lkdGgpLCBtYWtl X2ZpeG51bSAoaGVpZ2h0KSksCisJICAgaW50ZXJuICgib3V0ZXIgcGl4ZWxzIiksCisJICAg RmNvbnMgKG1ha2VfZml4bnVtIChvdXRlcl93aWR0aCksIG1ha2VfZml4bnVtIChvdXRlcl9o ZWlnaHQpKSk7CisKICAgLyogV2UgY2FuIG5vdCBjYWxsIGNoYW5nZV9mcmFtZV9zaXplIGZv ciBhIG1hcHBlZCBmcmFtZSwKICAgICAgd2UgY2FuIG5vdCBzZXQgcGl4ZWwgd2lkdGgvaGVp Z2h0IGVpdGhlci4gIFRoZSB3aW5kb3cgbWFuYWdlciBtYXkKICAgICAgb3ZlcnJpZGUgb3Vy IHJlc2l6ZSByZXF1ZXN0LCBYTW9uYWQgZG9lcyB0aGlzIGFsbCB0aGUgdGltZS4KQEAgLTEz NjAsMjEgKzE0NDYsNiBAQCB4Z19mcmFtZV9zZXRfY2hhcl9zaXplIChzdHJ1Y3QgZnJhbWUg KmYsIGludCB3aWR0aCwgaW50IGhlaWdodCkKICAgICB9CiB9CiAKLS8qIEhhbmRsZSBoZWln aHQvd2lkdGggY2hhbmdlcyAoaS5lLiBhZGQvcmVtb3ZlL21vdmUgbWVudS90b29sYmFyKS4K LSAgIFRoZSBwb2xpY3kgaXMgdG8ga2VlcCB0aGUgbnVtYmVyIG9mIGVkaXRhYmxlIGxpbmVz LiAgKi8KLQotI2lmIDAKLXN0YXRpYyB2b2lkCi14Z19oZWlnaHRfb3Jfd2lkdGhfY2hhbmdl ZCAoc3RydWN0IGZyYW1lICpmKQotewotICBndGtfd2luZG93X3Jlc2l6ZSAoR1RLX1dJTkRP VyAoRlJBTUVfR1RLX09VVEVSX1dJREdFVCAoZikpLAotICAgICAgICAgICAgICAgICAgICAg RlJBTUVfVE9UQUxfUElYRUxfV0lEVEggKGYpLAotICAgICAgICAgICAgICAgICAgICAgRlJB TUVfVE9UQUxfUElYRUxfSEVJR0hUIChmKSk7Ci0gIGYtPm91dHB1dF9kYXRhLnhwLT5oaW50 X2ZsYWdzID0gMDsKLSAgeF93bV9zZXRfc2l6ZV9oaW50IChmLCAwLCAwKTsKLX0KLSNlbmRp ZgotCiAjaWZuZGVmIEhBVkVfUEdUSwogLyogQ29udmVydCBhbiBYIFdpbmRvdyBXU0VTQyBv biBkaXNwbGF5IERQWSB0byBpdHMgY29ycmVzcG9uZGluZyBHdGtXaWRnZXQuCiAgICBNdXN0 IGJlIGRvbmUgbGlrZSB0aGlzLCBiZWNhdXNlIEd0a1dpZGdldDpzIGNhbiBoYXZlICJoaWRk ZW4iCkBAIC0xOTE3LDcgKzE5ODgsOCBAQCB4Z19mcmVlX2ZyYW1lX3dpZGdldHMgKHN0cnVj dCBmcmFtZSAqZikKICAgIGZsYWcgKHRoaXMgaXMgdXNlZnVsIHdoZW4gRkxBR1MgaXMgMCku ICAqLwogCiB2b2lkCi14Z193bV9zZXRfc2l6ZV9oaW50IChzdHJ1Y3QgZnJhbWUgKmYsIGxv bmcgaW50IGZsYWdzLCBib29sIHVzZXJfcG9zaXRpb24pCit4Z193bV9zZXRfc2l6ZV9oaW50 IChzdHJ1Y3QgZnJhbWUgKmYsIGxvbmcgaW50IGZsYWdzLCBib29sIHVzZXJfcG9zaXRpb24s CisJCSAgICAgaW50IHRleHRfd2lkdGgsIGludCB0ZXh0X2hlaWdodCkKIHsKICAgLyogTXVz dCB1c2UgR1RLIHJvdXRpbmVzIGhlcmUsIG90aGVyd2lzZSBHVEsgcmVzZXRzIHRoZSBzaXpl IGhpbnRzCiAgICAgIHRvIGl0cyBvd24gZGVmYXVsdHMuICAqLwpAQCAtMTk2NCwyMSArMjAz NiwzMyBAQCB4Z193bV9zZXRfc2l6ZV9oaW50IChzdHJ1Y3QgZnJhbWUgKmYsIGxvbmcgaW50 IGZsYWdzLCBib29sIHVzZXJfcG9zaXRpb24pCiAgIGhpbnRfZmxhZ3MgPSBmLT5vdXRwdXRf ZGF0YS54cC0+aGludF9mbGFnczsKIAogICBoaW50X2ZsYWdzIHw9IEdES19ISU5UX1JFU0la RV9JTkMgfCBHREtfSElOVF9NSU5fU0laRTsKLSAgc2l6ZV9oaW50cy53aWR0aF9pbmMgPSBm cmFtZV9yZXNpemVfcGl4ZWx3aXNlID8gMSA6IEZSQU1FX0NPTFVNTl9XSURUSCAoZik7Ci0g IHNpemVfaGludHMuaGVpZ2h0X2luYyA9IGZyYW1lX3Jlc2l6ZV9waXhlbHdpc2UgPyAxIDog RlJBTUVfTElORV9IRUlHSFQgKGYpOworICBzaXplX2hpbnRzLndpZHRoX2luYworICAgID0g ZnJhbWVfcmVzaXplX3BpeGVsd2lzZSA/IDEgOiAoRlJBTUVfQ09MVU1OX1dJRFRIIChmKSAv IHNjYWxlKTsKKyAgc2l6ZV9oaW50cy5oZWlnaHRfaW5jCisgICAgPSBmcmFtZV9yZXNpemVf cGl4ZWx3aXNlID8gMSA6IChGUkFNRV9MSU5FX0hFSUdIVCAoZikgLyBzY2FsZSk7CiAKICAg aGludF9mbGFncyB8PSBHREtfSElOVF9CQVNFX1NJWkU7CiAgIC8qIFVzZSBvbmUgcm93L2Nv bCBoZXJlIHNvIGJhc2VfaGVpZ2h0L3dpZHRoIGRvZXMgbm90IGJlY29tZSB6ZXJvLgogICAg ICBHdGsrIGFuZC9vciBVbml0eSBvbiBVYnVudHUgMTIuMDQgY2FuJ3QgaGFuZGxlIGl0Lgog ICAgICBPYnZpb3VzbHkgdGhpcyBtYWtlcyB0aGUgcm93L2NvbCB2YWx1ZSBkaXNwbGF5ZWQg b2ZmIGJ5IDEuICAqLwotICBiYXNlX3dpZHRoID0gRlJBTUVfVEVYVF9DT0xTX1RPX1BJWEVM X1dJRFRIIChmLCAxKSArIEZSQU1FX1RPT0xCQVJfV0lEVEggKGYpOwotICBiYXNlX2hlaWdo dCA9IEZSQU1FX1RFWFRfTElORVNfVE9fUElYRUxfSEVJR0hUIChmLCAxKQotICAgICsgRlJB TUVfTUVOVUJBUl9IRUlHSFQgKGYpICsgRlJBTUVfVE9PTEJBUl9IRUlHSFQgKGYpOworICBi YXNlX3dpZHRoID0gKChGUkFNRV9URVhUX0NPTFNfVE9fUElYRUxfV0lEVEggKGYsIDEpCisJ CSArIEZSQU1FX1RPT0xCQVJfV0lEVEggKGYpKSAvIHNjYWxlKTsKKyAgYmFzZV9oZWlnaHQg PSAoKEZSQU1FX1RFWFRfTElORVNfVE9fUElYRUxfSEVJR0hUIChmLCAxKQorCQkgICsgRlJB TUVfTUVOVUJBUl9IRUlHSFQgKGYpICsgRlJBTUVfVE9PTEJBUl9IRUlHSFQgKGYpKQorCQkg LyBzY2FsZSk7CisKKyAgaWYgKHRleHRfd2lkdGggPCAwKQorICAgIHRleHRfd2lkdGggPSBG UkFNRV9URVhUX1dJRFRIIChmKTsKKyAgdGV4dF93aWR0aCAvPSBzY2FsZTsKKworICBpZiAo dGV4dF9oZWlnaHQgPCAwKQorICAgIHRleHRfaGVpZ2h0ID0gRlJBTUVfVEVYVF9IRUlHSFQg KGYpOworICB0ZXh0X2hlaWdodCAvPSBzY2FsZTsKIAotICBzaXplX2hpbnRzLmJhc2Vfd2lk dGggPSBiYXNlX3dpZHRoOwotICBzaXplX2hpbnRzLmJhc2VfaGVpZ2h0ID0gYmFzZV9oZWln aHQ7Ci0gIHNpemVfaGludHMubWluX3dpZHRoICA9IGJhc2Vfd2lkdGg7Ci0gIHNpemVfaGlu dHMubWluX2hlaWdodCA9IGJhc2VfaGVpZ2h0OworICBzaXplX2hpbnRzLmJhc2Vfd2lkdGgg PSBiYXNlX3dpZHRoICsgKHRleHRfd2lkdGggJSBzaXplX2hpbnRzLndpZHRoX2luYyk7Cisg IHNpemVfaGludHMuYmFzZV9oZWlnaHQgPSBiYXNlX2hlaWdodCArICh0ZXh0X2hlaWdodCAl IHNpemVfaGludHMuaGVpZ2h0X2luYyk7CisgIHNpemVfaGludHMubWluX3dpZHRoID0gc2l6 ZV9oaW50cy5iYXNlX3dpZHRoOworICBzaXplX2hpbnRzLm1pbl9oZWlnaHQgPSBzaXplX2hp bnRzLmJhc2VfaGVpZ2h0OwogCiAgIC8qIFRoZXNlIGN1cnJlbnRseSBoYXZlIGEgb25lIHRv IG9uZSBtYXBwaW5nIHdpdGggdGhlIFggdmFsdWVzLCBidXQgSQogICAgICBkb24ndCB0aGlu ayB3ZSBzaG91bGQgcmVseSBvbiB0aGF0LiAgKi8KQEAgLTIwMTgsMTYgKzIxMDIsMzEgQEAg eGdfd21fc2V0X3NpemVfaGludCAoc3RydWN0IGZyYW1lICpmLCBsb25nIGludCBmbGFncywg Ym9vbCB1c2VyX3Bvc2l0aW9uKQogICAgICAgaGludF9mbGFncyB8PSBHREtfSElOVF9VU0VS X1BPUzsKICAgICB9CiAKLSAgc2l6ZV9oaW50cy5iYXNlX3dpZHRoIC89IHNjYWxlOwotICBz aXplX2hpbnRzLmJhc2VfaGVpZ2h0IC89IHNjYWxlOwotICBzaXplX2hpbnRzLndpZHRoX2lu YyAvPSBzY2FsZTsKLSAgc2l6ZV9oaW50cy5oZWlnaHRfaW5jIC89IHNjYWxlOwotCiAgIGlm IChoaW50X2ZsYWdzICE9IGYtPm91dHB1dF9kYXRhLnhwLT5oaW50X2ZsYWdzCiAgICAgICB8 fCBtZW1jbXAgKCZzaXplX2hpbnRzLAogCQkgJmYtPm91dHB1dF9kYXRhLnhwLT5zaXplX2hp bnRzLAogCQkgc2l6ZW9mIChzaXplX2hpbnRzKSkgIT0gMCkKICAgICB7CisgICAgICBDQUxM TiAoRmZ1bmNhbGwsIFFmb29faXQsIGludGVybiAoInhnX3dtX3NldF9zaXplX2hpbnQiKSwK KwkgICAgIGludGVybiAoInNjYWxlIiksIG1ha2VfZml4bnVtIChzY2FsZSksCisJICAgICBp bnRlcm4gKCJjaGFyIHdpZHRoIiksIG1ha2VfZml4bnVtIChGUkFNRV9DT0xVTU5fV0lEVEgg KGYpKSwKKwkgICAgIGludGVybiAoInRvb2xiYXIiKSwgbWFrZV9maXhudW0gKEZSQU1FX1RP T0xCQVJfV0lEVEggKGYpKSwKKwkgICAgIGludGVybiAoInZzY3JvbGwiKSwgbWFrZV9maXhu dW0gKEZSQU1FX1NDUk9MTF9CQVJfQVJFQV9XSURUSCAoZikpLAorCSAgICAgaW50ZXJuICgi ZnJpbmdlcyIpLCBtYWtlX2ZpeG51bSAoRlJBTUVfVE9UQUxfRlJJTkdFX1dJRFRIIChmKSks CisJICAgICBpbnRlcm4gKCJib3JkZXJzIiksIG1ha2VfZml4bnVtICgyICogRlJBTUVfSU5U RVJOQUxfQk9SREVSX1dJRFRIIChmKSksCisJICAgICBpbnRlcm4gKCJ0ZXh0IHdpZHRoIiks IG1ha2VfZml4bnVtICh0ZXh0X3dpZHRoKSwKKwkgICAgIGludGVybiAoImJhc2Ugd2lkdGgi KSwgbWFrZV9maXhudW0gKHNpemVfaGludHMuYmFzZV93aWR0aCksCisJICAgICBpbnRlcm4g KCJ3aWR0aCBpbmMiKSwgbWFrZV9maXhudW0gKHNpemVfaGludHMud2lkdGhfaW5jKSk7Cisg ICAgICBDQUxMTiAoRmZ1bmNhbGwsIFFmb29faXQsIGludGVybiAoIiAgICIpLAorCSAgICAg aW50ZXJuICgiY2hhciBoZWlnaHQiKSwgbWFrZV9maXhudW0gKEZSQU1FX0xJTkVfSEVJR0hU IChmKSksCisJICAgICBpbnRlcm4gKCJtZW51YmFyIiksIG1ha2VfZml4bnVtIChGUkFNRV9N RU5VQkFSX0hFSUdIVCAoZikpLAorCSAgICAgaW50ZXJuICgidG9vbGJhciIpLCBtYWtlX2Zp eG51bSAoRlJBTUVfVE9PTEJBUl9IRUlHSFQgKGYpKSwKKwkgICAgIGludGVybiAoImhzY3Jv bGwiKSwgbWFrZV9maXhudW0gKEZSQU1FX1NDUk9MTF9CQVJfQVJFQV9IRUlHSFQgKGYpKSwK KwkgICAgIGludGVybiAoImJvcmRlcnMiKSwgbWFrZV9maXhudW0gKDIgKiBGUkFNRV9JTlRF Uk5BTF9CT1JERVJfV0lEVEggKGYpKSwKKwkgICAgIGludGVybiAoInRleHQgaGVpZ2h0Iiks IG1ha2VfZml4bnVtICh0ZXh0X2hlaWdodCksCisJICAgICBpbnRlcm4gKCJiYXNlIGhlaWdo dCIpLCBtYWtlX2ZpeG51bSAoc2l6ZV9oaW50cy5iYXNlX2hlaWdodCksCisJICAgICBpbnRl cm4gKCJoZWlnaHQgaW5jIiksIG1ha2VfZml4bnVtIChzaXplX2hpbnRzLmhlaWdodF9pbmMp KTsKKwogICAgICAgYmxvY2tfaW5wdXQgKCk7CiAgICAgICBndGtfd2luZG93X3NldF9nZW9t ZXRyeV9oaW50cyAoR1RLX1dJTkRPVyAoRlJBTUVfR1RLX09VVEVSX1dJREdFVCAoZikpLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsICZzaXplX2hpbnRz LCBoaW50X2ZsYWdzKTsKZGlmZiAtLWdpdCBhL3NyYy9ndGt1dGlsLmggYi9zcmMvZ3RrdXRp bC5oCmluZGV4IDE5MGQ2NjI4MzEuLjIxMjQ1ZGRlNWYgMTAwNjQ0Ci0tLSBhL3NyYy9ndGt1 dGlsLmgKKysrIGIvc3JjL2d0a3V0aWwuaApAQCAtMTUzLDcgKzE1Myw3IEBAICNkZWZpbmUg WEdfSVRFTV9EQVRBICJlbWFjc19tZW51aXRlbSIKIGV4dGVybiBpbnQgeGdfZ2V0X2RlZmF1 bHRfc2Nyb2xsYmFyX3dpZHRoIChzdHJ1Y3QgZnJhbWUgKmYpOwogZXh0ZXJuIGludCB4Z19n ZXRfZGVmYXVsdF9zY3JvbGxiYXJfaGVpZ2h0IChzdHJ1Y3QgZnJhbWUgKmYpOwogCi1leHRl cm4gdm9pZCB4Z193bV9zZXRfc2l6ZV9oaW50IChzdHJ1Y3QgZnJhbWUgKiwgbG9uZyBpbnQs IGJvb2wpOworZXh0ZXJuIHZvaWQgeGdfd21fc2V0X3NpemVfaGludCAoc3RydWN0IGZyYW1l ICosIGxvbmcgaW50LCBib29sLCBpbnQsIGludCk7CiAKIGV4dGVybiB2b2lkIHVwZGF0ZV9m cmFtZV90b29sX2JhciAoc3RydWN0IGZyYW1lICpmKTsKIGV4dGVybiB2b2lkIGZyZWVfZnJh bWVfdG9vbF9iYXIgKHN0cnVjdCBmcmFtZSAqZik7CmRpZmYgLS1naXQgYS9zcmMvcGd0a2Zu cy5jIGIvc3JjL3BndGtmbnMuYwppbmRleCBhMzIwNjdhZjgxLi5hMzkxNTQxZTEwIDEwMDY0 NAotLS0gYS9zcmMvcGd0a2Zucy5jCisrKyBiL3NyYy9wZ3RrZm5zLmMKQEAgLTE2NjIsNyAr MTY2Miw4IEBAICNkZWZpbmUgSU5TVEFMTF9DVVJTT1IoRklFTEQsIE5BTUUpIFwKICAgICAg YmFkbHkgd2Ugd2FudCB0aGVtLiAgVGhpcyBzaG91bGQgYmUgZG9uZSBhZnRlciB3ZSBoYXZl IHRoZSBtZW51CiAgICAgIGJhciBzbyB0aGF0IGl0cyBzaXplIGNhbiBiZSB0YWtlbiBpbnRv IGFjY291bnQuICAqLwogICBibG9ja19pbnB1dCAoKTsKLSAgeGdfd21fc2V0X3NpemVfaGlu dCAoZiwgd2luZG93X3Byb21wdGluZywgZmFsc2UpOworICB4Z193bV9zZXRfc2l6ZV9oaW50 IChmLCB3aW5kb3dfcHJvbXB0aW5nLCBmYWxzZSwKKwkJICAgICAgIEZSQU1FX1RFWFRfV0lE VEggKGYpLCBGUkFNRV9URVhUX0hFSUdIVCAoZikpOwogICB1bmJsb2NrX2lucHV0ICgpOwog CiAgIGFkanVzdF9mcmFtZV9zaXplIChmLCBGUkFNRV9URVhUX1dJRFRIIChmKSwgRlJBTUVf VEVYVF9IRUlHSFQgKGYpLApkaWZmIC0tZ2l0IGEvc3JjL3BndGt0ZXJtLmMgYi9zcmMvcGd0 a3Rlcm0uYwppbmRleCAxM2Y2YzZjM2M0Li44YjA3N2JlMTc4IDEwMDY0NAotLS0gYS9zcmMv cGd0a3Rlcm0uYworKysgYi9zcmMvcGd0a3Rlcm0uYwpAQCAtNjU4LDcgKzY1OCw3IEBAIHBn dGtfc2V0X29mZnNldCAoc3RydWN0IGZyYW1lICpmLCBpbnQgeG9mZiwgaW50IHlvZmYsIGlu dCBjaGFuZ2VfZ3Jhdml0eSkKICAgcGd0a19jYWxjX2Fic29sdXRlX3Bvc2l0aW9uIChmKTsK IAogICBibG9ja19pbnB1dCAoKTsKLSAgeGdfd21fc2V0X3NpemVfaGludCAoZiwgMCwgZmFs c2UpOworICB4Z193bV9zZXRfc2l6ZV9oaW50IChmLCAwLCBmYWxzZSwgLTEsIC0xKTsKIAog ICBpZiAoY2hhbmdlX2dyYXZpdHkgIT0gMCkKICAgICB7CkBAIC03MDUsNyArNzA1LDggQEAg cGd0a19zZXRfd2luZG93X3NpemUgKHN0cnVjdCBmcmFtZSAqZiwgYm9vbCBjaGFuZ2VfZ3Jh dml0eSwKIAogICBmLT5vdXRwdXRfZGF0YS5wZ3RrLT5wcmVmZXJyZWRfd2lkdGggPSBwaXhl bHdpZHRoOwogICBmLT5vdXRwdXRfZGF0YS5wZ3RrLT5wcmVmZXJyZWRfaGVpZ2h0ID0gcGl4 ZWxoZWlnaHQ7Ci0gIHhnX3dtX3NldF9zaXplX2hpbnQgKGYsIDAsIDApOworICB4Z193bV9z ZXRfc2l6ZV9oaW50IChmLCAwLCAwLCBGUkFNRV9QSVhFTF9UT19URVhUX1dJRFRIIChwaXhl bHdpZHRoKSwKKwkJICAgICAgIEZSQU1FX1BJWEVMX1RPX1RFWFRfSEVJR0hUIChwaXhlbGhl aWdodCkpOwogICB4Z19mcmFtZV9zZXRfY2hhcl9zaXplIChmLCBwaXhlbHdpZHRoLCBwaXhl bGhlaWdodCk7CiAgIGd0a193aWRnZXRfcXVldWVfcmVzaXplIChGUkFNRV9XSURHRVQgKGYp KTsKIApAQCAtOTkzLDcgKzk5NCwxMCBAQCBwZ3RrX3NldF9wYXJlbnRfZnJhbWUgKHN0cnVj dCBmcmFtZSAqZiwgTGlzcF9PYmplY3QgbmV3X3ZhbHVlLAogCQkJICAgICAgZml4ZWQsIFRS VUUsIFRSVUUsIDApOwogCSAgZi0+b3V0cHV0X2RhdGEucGd0ay0+cHJlZmVycmVkX3dpZHRo ID0gYWxsb2Mud2lkdGg7CiAJICBmLT5vdXRwdXRfZGF0YS5wZ3RrLT5wcmVmZXJyZWRfaGVp Z2h0ID0gYWxsb2MuaGVpZ2h0OwotCSAgeGdfd21fc2V0X3NpemVfaGludCAoZiwgMCwgMCk7 CisJICB4Z193bV9zZXRfc2l6ZV9oaW50IChmLCAwLCAwLCBGUkFNRV9QSVhFTF9UT19URVhU X1dJRFRIIChhbGxvYy53aWR0aCksCisJCQkgICAgICAgRlJBTUVfUElYRUxfVE9fVEVYVF9I RUlHSFQgKGFsbG9jLmhlaWdodCkpOworCSAgLyogV2h5IGNvbnZlcnQgaGVyZT8gIHhnX2Zy YW1lX3NldF9jaGFyX3NpemUgd2FudHMgbmF0aXZlCisJICAgICBwaXhlbHMuICAqLwogCSAg eGdfZnJhbWVfc2V0X2NoYXJfc2l6ZSAoZiwgRlJBTUVfUElYRUxfVE9fVEVYVF9XSURUSCAo ZiwgYWxsb2Mud2lkdGgpLAogCQkJCSAgRlJBTUVfUElYRUxfVE9fVEVYVF9IRUlHSFQgKGYs IGFsbG9jLmhlaWdodCkpOwogCSAgZ3RrX3dpZGdldF9xdWV1ZV9yZXNpemUgKEZSQU1FX1dJ REdFVCAoZikpOwpkaWZmIC0tZ2l0IGEvc3JjL3dpZGdldC5jIGIvc3JjL3dpZGdldC5jCmlu ZGV4IGFhYWIzM2I2ZDguLjc0NjhiZjYzZmMgMTAwNjQ0Ci0tLSBhL3NyYy93aWRnZXQuYwor KysgYi9zcmMvd2lkZ2V0LmMKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJzeXNzdGRp by5oIgogI2luY2x1ZGUgInh0ZXJtLmgiCiAjaW5jbHVkZSAiZnJhbWUuaCIKKyNpbmNsdWRl ICJibG9ja2lucHV0LmgiCiAKICNpbmNsdWRlIDxYMTEvU3RyaW5nRGVmcy5oPgogI2luY2x1 ZGUgPFgxMS9JbnRyaW5zaWNQLmg+CkBAIC0xNTQsMTUgKzE1NSw2IEBAIGVtYWNzRnJhbWVD bGFzcyAodm9pZCkKICAgcmV0dXJuIChXaWRnZXRDbGFzcykgJmVtYWNzRnJhbWVDbGFzc1Jl YzsKIH0KIAotc3RhdGljIHZvaWQKLWdldF9kZWZhdWx0X2NoYXJfcGl4ZWxfc2l6ZSAoRW1h Y3NGcmFtZSBldywgaW50ICpwaXhlbF93aWR0aCwgaW50ICpwaXhlbF9oZWlnaHQpCi17Ci0g IHN0cnVjdCBmcmFtZSAqZiA9IGV3LT5lbWFjc19mcmFtZS5mcmFtZTsKLQotICAqcGl4ZWxf d2lkdGggPSBGUkFNRV9DT0xVTU5fV0lEVEggKGYpOwotICAqcGl4ZWxfaGVpZ2h0ID0gRlJB TUVfTElORV9IRUlHSFQgKGYpOwotfQotCiBzdGF0aWMgdm9pZAogcGl4ZWxfdG9fY2hhcl9z aXplIChFbWFjc0ZyYW1lIGV3LCBEaW1lbnNpb24gcGl4ZWxfd2lkdGgsCiAJCSAgICBEaW1l bnNpb24gcGl4ZWxfaGVpZ2h0LCBpbnQgKmNoYXJfd2lkdGgsIGludCAqY2hhcl9oZWlnaHQp CkBAIC0yMDcsMTIwICsxOTksOTcgQEAgZ2V0X3dtX3NoZWxsIChXaWRnZXQgdykKICAgcmV0 dXJuIChXTVNoZWxsV2lkZ2V0KSB3bXNoZWxsOwogfQogCi0jaWYgMCAvKiBDdXJyZW50bHkg bm90IHVzZWQuICAqLwotCi1zdGF0aWMgdm9pZAotbWFya19zaGVsbF9zaXplX3VzZXJfc3Bl Y2lmaWVkIChXaWRnZXQgd21zaGVsbCkKLXsKLSAgaWYgKCEgWHRJc1dNU2hlbGwgKHdtc2hl bGwpKSBlbWFjc19hYm9ydCAoKTsKLSAgLyogVGhpcyBpcyBraW5kIG9mIHNsZWF6eSwgYnV0 IEkgY2FuJ3Qgc2VlIGhvdyBlbHNlIHRvIHRlbGwgaXQgdG8gbWFrZSBpdAotICAgICBtYXJr IHRoZSBXTV9TSVpFX0hJTlRTIHNpemUgYXMgdXNlciBzcGVjaWZpZWQgd2hlbiBhcHByb3By aWF0ZS4gKi8KLSAgKChXTVNoZWxsV2lkZ2V0KSB3bXNoZWxsKS0+d20uc2l6ZV9oaW50cy5m bGFncyB8PSBVU1NpemU7Ci19Ci0KLSNlbmRpZgotCi0KIHN0YXRpYyB2b2lkCiBzZXRfZnJh bWVfc2l6ZSAoRW1hY3NGcmFtZSBldykKIHsKLSAgLyogVGhlIHdpZGdldCBoaWVyYXJjaHkg aXMKLQotCWFyZ3ZbMF0JCQllbWFjc1NoZWxsCXBhbmUJRnJhbWUtTkFNRQotCUFwcGxpY2F0 aW9uU2hlbGwJRW1hY3NTaGVsbAlQYW5lZAlFbWFjc0ZyYW1lCi0KLSAgICAgV2UgYWNjZXB0 IGdlb21ldHJ5IHNwZWNzIGluIHRoaXMgb3JkZXI6Ci0KLQkqRnJhbWUtTkFNRS5nZW9tZXRy eQotCSpFbWFjc0ZyYW1lLmdlb21ldHJ5Ci0JRW1hY3MuZ2VvbWV0cnkKLQotICAgICBPdGhl ciBwb3NzaWJpbGl0aWVzIGZvciB3aWRnZXQgaGllcmFyY2hpZXMgbWlnaHQgYmUKLQotCWFy Z3ZbMF0JCQlmcmFtZQkJcGFuZQlGcmFtZS1OQU1FCi0JQXBwbGljYXRpb25TaGVsbAlFbWFj c1NoZWxsCVBhbmVkCUVtYWNzRnJhbWUKLSAgICAgb3IKLQlhcmd2WzBdCQkJRnJhbWUtTkFN RQlwYW5lCUZyYW1lLU5BTUUKLQlBcHBsaWNhdGlvblNoZWxsCUVtYWNzU2hlbGwJUGFuZWQJ RW1hY3NGcmFtZQotICAgICBvcgotCWFyZ3ZbMF0JCQlGcmFtZS1OQU1FCXBhbmUJZW1hY3NU ZXh0UGFuZQotCUFwcGxpY2F0aW9uU2hlbGwJRW1hY3NGcmFtZQlQYW5lZAlFbWFjc1RleHRQ YW5lCi0KLSAgICAgV2l0aCB0aGUgY3VycmVudCBzZXR1cCwgdGhlIHRleHQtZGlzcGxheS1h cmVhIGlzIHRoZSBwYXJ0IHdoaWNoIGlzCi0gICAgIGFuIGVtYWNzICJmcmFtZSIsIHNpbmNl IHRoYXQncyB0aGUgb25seSBwYXJ0IG1hbmFnZWQgYnkgZW1hY3MgcHJvcGVyCi0gICAgICh0 aGUgbWVudWJhciBhbmQgdGhlIHBhcmVudCBvZiB0aGUgbWVudWJhciBhbmQgYWxsIHRoYXQg c29ydCBvZiB0aGluZwotICAgICBhcmUgbWFuYWdlZCBieSBsd2xpYi4pCi0KLSAgICAgVGhl IEVtYWNzU2hlbGwgd2lkZ2V0IGlzIHNpbXBseSBhIHJlcGxhY2VtZW50IGZvciB0aGUgU2hl bGwgd2lkZ2V0Ci0gICAgIHdoaWNoIGlzIGFibGUgdG8gZGVhbCB3aXRoIHVzaW5nIGFuIGV4 dGVybmFsbHktc3VwcGxpZWQgd2luZG93IGluc3RlYWQKLSAgICAgb2YgYWx3YXlzIGNyZWF0 aW5nIGl0cyBvd24uICBJdCBpcyBub3QgYWN0dWFsbHkgZW1hY3Mgc3BlY2lmaWMsIGFuZAot ICAgICBzaG91bGQgcG9zc2libHkgaGF2ZSBjbGFzcyAiU2hlbGwiIGluc3RlYWQgb2YgIkVt YWNzU2hlbGwiIHRvIHNpbXBsaWZ5Ci0gICAgIHRoZSByZXNvdXJjZXMuCi0KLSAgICovCi0K ICAgc3RydWN0IGZyYW1lICpmID0gZXctPmVtYWNzX2ZyYW1lLmZyYW1lOwogCiAgIGV3LT5j b3JlLndpZHRoID0gRlJBTUVfUElYRUxfV0lEVEggKGYpOwogICBldy0+Y29yZS5oZWlnaHQg PSBGUkFNRV9QSVhFTF9IRUlHSFQgKGYpOwogCi0gIGlmIChDT05TUCAoZnJhbWVfc2l6ZV9o aXN0b3J5KSkKLSAgICBmcmFtZV9zaXplX2hpc3RvcnlfcGxhaW4KLSAgICAgIChmLCBidWls ZF9zdHJpbmcgKCJzZXRfZnJhbWVfc2l6ZSIpKTsKKyAgQ0FMTE4gKEZmdW5jYWxsLCBRZm9v X2l0LCBidWlsZF9zdHJpbmcgKCJzZXRfZnJhbWVfc2l6ZSIpLAorCSBidWlsZF9zdHJpbmcg KCJuYXRpdmUgcGl4ZWxzIiksCisJIEZjb25zIChtYWtlX2ZpeG51bSAoRlJBTUVfUElYRUxf V0lEVEggKGYpKSwKKwkJbWFrZV9maXhudW0gKEZSQU1FX1BJWEVMX0hFSUdIVCAoZikpKSk7 CiB9CiAKIHN0YXRpYyBib29sCi11cGRhdGVfd21faGludHMgKFdNU2hlbGxXaWRnZXQgd21z aGVsbCwgRW1hY3NGcmFtZSBldykKK3VwZGF0ZV93bV9oaW50cyAoV01TaGVsbFdpZGdldCB3 bXNoZWxsLCBFbWFjc0ZyYW1lIGV3LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7Ci0gIGlu dCBjdzsKLSAgaW50IGNoOwotICBEaW1lbnNpb24gcm91bmRlZF93aWR0aDsKLSAgRGltZW5z aW9uIHJvdW5kZWRfaGVpZ2h0OwotICBpbnQgY2hhcl93aWR0aDsKLSAgaW50IGNoYXJfaGVp Z2h0OwotICBpbnQgYmFzZV93aWR0aDsKLSAgaW50IGJhc2VfaGVpZ2h0OwotICBjaGFyIGJ1 ZmZlcltzaXplb2Ygd21zaGVsbC0+d20uc2l6ZV9oaW50c107Ci0gIGNoYXIgKmhpbnRzX3B0 cjsKLQotICAvKiBDb3B5IHRoZSBvbGQgc2l6ZSBoaW50cyB0byB0aGUgYnVmZmVyLiAgKi8K LSAgbWVtY3B5IChidWZmZXIsICZ3bXNoZWxsLT53bS5zaXplX2hpbnRzLAotCSAgc2l6ZW9m IHdtc2hlbGwtPndtLnNpemVfaGludHMpOwotCi0gIHBpeGVsX3RvX2NoYXJfc2l6ZSAoZXcs IGV3LT5jb3JlLndpZHRoLCBldy0+Y29yZS5oZWlnaHQsCi0JCSAgICAgICZjaGFyX3dpZHRo LCAmY2hhcl9oZWlnaHQpOwotICBjaGFyX3RvX3BpeGVsX3NpemUgKGV3LCBjaGFyX3dpZHRo LCBjaGFyX2hlaWdodCwKLQkJICAgICAgJnJvdW5kZWRfd2lkdGgsICZyb3VuZGVkX2hlaWdo dCk7Ci0gIGdldF9kZWZhdWx0X2NoYXJfcGl4ZWxfc2l6ZSAoZXcsICZjdywgJmNoKTsKLQot ICBiYXNlX3dpZHRoID0gKHdtc2hlbGwtPmNvcmUud2lkdGggLSBldy0+Y29yZS53aWR0aAot CQkrIChyb3VuZGVkX3dpZHRoIC0gKGNoYXJfd2lkdGggKiBjdykpKTsKLSAgYmFzZV9oZWln aHQgPSAod21zaGVsbC0+Y29yZS5oZWlnaHQgLSBldy0+Y29yZS5oZWlnaHQKLQkJICsgKHJv dW5kZWRfaGVpZ2h0IC0gKGNoYXJfaGVpZ2h0ICogY2gpKSk7CisgIHN0cnVjdCBmcmFtZSAq ZiA9IGV3LT5lbWFjc19mcmFtZS5mcmFtZTsKKyAgaW50IGNoYXJfd2lkdGggPSBmcmFtZV9y ZXNpemVfcGl4ZWx3aXNlID8gMSA6IEZSQU1FX0NPTFVNTl9XSURUSCAoZik7CisgIGludCBj aGFyX2hlaWdodCA9IGZyYW1lX3Jlc2l6ZV9waXhlbHdpc2UgPyAxIDogRlJBTUVfTElORV9I RUlHSFQgKGYpOworICBpbnQgYmFzZV93aWR0aAorICAgID0gKEZSQU1FX1RFWFRfQ09MU19U T19QSVhFTF9XSURUSCAoZiwgMSkKKyAgICAgICArICgoKHdpZHRoIDwgMCkgPyBGUkFNRV9U RVhUX1dJRFRIIChmKSA6IHdpZHRoKSAlIGNoYXJfd2lkdGgpKTsKKyAgaW50IGJhc2VfaGVp Z2h0CisgICAgPSAoRlJBTUVfVEVYVF9MSU5FU19UT19QSVhFTF9IRUlHSFQgKGYsIDEpCisg ICAgICAgKyBGUkFNRV9NRU5VQkFSX0hFSUdIVCAoZikKKyAgICAgICArICgoKGhlaWdodCA8 IDApID8gRlJBTUVfVEVYVF9IRUlHSFQgKGYpIDogaGVpZ2h0KSAlIGNoYXJfaGVpZ2h0KSk7 CisgIGludCBtaW5fd2lkdGggPSBiYXNlX3dpZHRoOworICBpbnQgbWluX2hlaWdodCA9IGJh c2VfaGVpZ2h0OworICBib29sIHZhbHVlOworCisgIGludCBvbGRfYmFzZV93aWR0aCwgb2xk X2Jhc2VfaGVpZ2h0OworICBpbnQgb2xkX2NoYXJfd2lkdGgsIG9sZF9jaGFyX2hlaWdodDsK KyAgaW50IG9sZF9taW5fd2lkdGgsIG9sZF9taW5faGVpZ2h0OworCisgIGJsb2NrX2lucHV0 ICgpOworICBYdFZhR2V0VmFsdWVzICgoV2lkZ2V0KSB3bXNoZWxsLAorCQkgWHROYmFzZVdp ZHRoLCAmb2xkX2Jhc2Vfd2lkdGgsCisJCSBYdE5iYXNlSGVpZ2h0LCAmb2xkX2Jhc2VfaGVp Z2h0LAorCQkgWHROd2lkdGhJbmMsICZvbGRfY2hhcl93aWR0aCwKKwkJIFh0TmhlaWdodElu YywgJm9sZF9jaGFyX2hlaWdodCwKKwkJIFh0Tm1pbldpZHRoLCAmb2xkX21pbl93aWR0aCwK KwkJIFh0Tm1pbkhlaWdodCwgJm9sZF9taW5faGVpZ2h0LAorCQkgTlVMTCk7CisgIHVuYmxv Y2tfaW5wdXQgKCk7CiAKICAgWHRWYVNldFZhbHVlcyAoKFdpZGdldCkgd21zaGVsbCwKIAkJ IFh0TmJhc2VXaWR0aCwgKFh0QXJnVmFsKSBiYXNlX3dpZHRoLAogCQkgWHROYmFzZUhlaWdo dCwgKFh0QXJnVmFsKSBiYXNlX2hlaWdodCwKLQkJIFh0TndpZHRoSW5jLCAoWHRBcmdWYWwp IChmcmFtZV9yZXNpemVfcGl4ZWx3aXNlID8gMSA6IGN3KSwKLQkJIFh0TmhlaWdodEluYywg KFh0QXJnVmFsKSAoZnJhbWVfcmVzaXplX3BpeGVsd2lzZSA/IDEgOiBjaCksCi0JCSBYdE5t aW5XaWR0aCwgKFh0QXJnVmFsKSBiYXNlX3dpZHRoLAotCQkgWHRObWluSGVpZ2h0LCAoWHRB cmdWYWwpIGJhc2VfaGVpZ2h0LAorCQkgWHROd2lkdGhJbmMsIChYdEFyZ1ZhbCkgY2hhcl93 aWR0aCwKKwkJIFh0TmhlaWdodEluYywgKFh0QXJnVmFsKSBjaGFyX2hlaWdodCwKKwkJIFh0 Tm1pbldpZHRoLCAoWHRBcmdWYWwpIG1pbl93aWR0aCwKKwkJIFh0Tm1pbkhlaWdodCwgKFh0 QXJnVmFsKSBtaW5faGVpZ2h0LAogCQkgTlVMTCk7CiAKLSAgLyogUmV0dXJuIGlmIHNpemUg aGludHMgcmVhbGx5IGNoYW5nZWQuICBJZiB0aGV5IGRpZCBub3QsIHRoZW4gWHQKLSAgICAg cHJvYmFibHkgZGlkbid0IHNldCB0aGVtIGVpdGhlciAob3IgdGFrZSB0aGUgZmxhZ3MgaW50 bwotICAgICBhY2NvdW50LikgICovCi0gIGhpbnRzX3B0ciA9IChjaGFyICopICZ3bXNoZWxs LT53bS5zaXplX2hpbnRzOworICB2YWx1ZSA9IChiYXNlX3dpZHRoICE9IG9sZF9iYXNlX3dp ZHRoIHx8IGJhc2VfaGVpZ2h0ICE9IG9sZF9iYXNlX2hlaWdodAorCSAgIHx8IGNoYXJfd2lk dGggIT0gb2xkX2NoYXJfd2lkdGggfHwgY2hhcl9oZWlnaHQgIT0gb2xkX2NoYXJfaGVpZ2h0 CisJICAgfHwgbWluX3dpZHRoICE9IG9sZF9taW5fd2lkdGggfHwgbWluX2hlaWdodCAhPSBv bGRfbWluX2hlaWdodCk7CiAKLSAgLyogU2tpcCBmbGFncywgd2hpY2ggaXMgdW5zaWduZWQg bG9uZy4gICovCi0gIHJldHVybiBtZW1jbXAgKGhpbnRzX3B0ciArIHNpemVvZiAobG9uZyks IGJ1ZmZlciArIHNpemVvZiAobG9uZyksCi0JCSBzaXplb2Ygd21zaGVsbC0+d20ud21faGlu dHMgLSBzaXplb2YgKGxvbmcpKTsKKyAgaWYgKHZhbHVlKQorICAgIHsKKyAgICAgIENBTExO IChGZnVuY2FsbCwgUWZvb19pdCwgYnVpbGRfc3RyaW5nICgidXBkYXRlX3dtX2hpbnRzIiks CisJICAgICBidWlsZF9zdHJpbmcgKCJjaGFyIHdpZHRoIiksIG1ha2VfZml4bnVtIChGUkFN RV9DT0xVTU5fV0lEVEggKGYpKSwKKwkgICAgIGJ1aWxkX3N0cmluZyAoIm9sZCBjaGFyIHdp ZHRoIiksIG1ha2VfZml4bnVtIChvbGRfY2hhcl93aWR0aCksCisJICAgICBidWlsZF9zdHJp bmcgKCJ2c2Nyb2xsIiksIG1ha2VfZml4bnVtIChGUkFNRV9TQ1JPTExfQkFSX0FSRUFfV0lE VEggKGYpKSwKKwkgICAgIGJ1aWxkX3N0cmluZyAoImZyaW5nZXMiKSwgbWFrZV9maXhudW0g KEZSQU1FX1RPVEFMX0ZSSU5HRV9XSURUSCAoZikpLAorCSAgICAgYnVpbGRfc3RyaW5nICgi Ym9yZGVycyIpLCBtYWtlX2ZpeG51bSAoMiAqIEZSQU1FX0lOVEVSTkFMX0JPUkRFUl9XSURU SCAoZikpLAorCSAgICAgYnVpbGRfc3RyaW5nICgiYmFzZSB3aWR0aCIpLCBtYWtlX2ZpeG51 bSAoYmFzZV93aWR0aCksCisJICAgICBidWlsZF9zdHJpbmcgKCJvbGRfYmFzZSB3aWR0aCIp LCBtYWtlX2ZpeG51bSAob2xkX2Jhc2Vfd2lkdGgpLAorCSAgICAgYnVpbGRfc3RyaW5nICgi bWluIHdpZHRoIiksIG1ha2VfZml4bnVtIChtaW5fd2lkdGgpLAorCSAgICAgYnVpbGRfc3Ry aW5nICgib2xkIG1pbiB3aWR0aCIpLCBtYWtlX2ZpeG51bSAob2xkX21pbl93aWR0aCkpOwor ICAgICAgQ0FMTE4gKEZmdW5jYWxsLCBRZm9vX2l0LCBidWlsZF9zdHJpbmcgKCIgICAiKSwK KwkgICAgIGJ1aWxkX3N0cmluZyAoImNoYXIgaGVpZ2h0IiksIG1ha2VfZml4bnVtIChGUkFN RV9MSU5FX0hFSUdIVCAoZikpLAorCSAgICAgYnVpbGRfc3RyaW5nICgib2xkIGNoYXIgaGVp Z2h0IiksIG1ha2VfZml4bnVtIChvbGRfY2hhcl9oZWlnaHQpLAorCSAgICAgYnVpbGRfc3Ry aW5nICgibWVudWJhciIpLCBtYWtlX2ZpeG51bSAoRlJBTUVfTUVOVUJBUl9IRUlHSFQgKGYp KSwKKwkgICAgIGJ1aWxkX3N0cmluZyAoImhzY3JvbGwiKSwgbWFrZV9maXhudW0gKEZSQU1F X1NDUk9MTF9CQVJfQVJFQV9IRUlHSFQgKGYpKSwKKwkgICAgIGJ1aWxkX3N0cmluZyAoImJv cmRlcnMiKSwgbWFrZV9maXhudW0gKDIgKiBGUkFNRV9JTlRFUk5BTF9CT1JERVJfV0lEVEgg KGYpKSwKKwkgICAgIGJ1aWxkX3N0cmluZyAoImJhc2UgaGVpZ2h0IiksIG1ha2VfZml4bnVt IChiYXNlX2hlaWdodCksCisJICAgICBidWlsZF9zdHJpbmcgKCJvbGQgYmFzZSBoZWlnaHQi KSwgbWFrZV9maXhudW0gKG9sZF9iYXNlX2hlaWdodCksCisJICAgICBidWlsZF9zdHJpbmcg KCJtaW4gaGVpZ2h0IiksIG1ha2VfZml4bnVtIChtaW5faGVpZ2h0KSwKKwkgICAgIGJ1aWxk X3N0cmluZyAoIm9sZCBtaW4gaGVpZ2h0IiksIG1ha2VfZml4bnVtIChvbGRfbWluX2hlaWdo dCkpOworICAgIH0KKworICByZXR1cm4gdmFsdWU7CiB9CiAKIGJvb2wKLXdpZGdldF91cGRh dGVfd21fc2l6ZV9oaW50cyAoV2lkZ2V0IHdpZGdldCwgV2lkZ2V0IGZyYW1lKQord2lkZ2V0 X3VwZGF0ZV93bV9zaXplX2hpbnRzIChXaWRnZXQgd2lkZ2V0LCBXaWRnZXQgZnJhbWUsIGlu dCB3aWR0aCwgaW50IGhlaWdodCkKIHsKLSAgcmV0dXJuIHVwZGF0ZV93bV9oaW50cyAoKFdN U2hlbGxXaWRnZXQpIHdpZGdldCwgKEVtYWNzRnJhbWUpIGZyYW1lKTsKKyAgcmV0dXJuIHVw ZGF0ZV93bV9oaW50cyAoKFdNU2hlbGxXaWRnZXQpIHdpZGdldCwgKEVtYWNzRnJhbWUpIGZy YW1lLAorCQkJICB3aWR0aCwgaGVpZ2h0KTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTMzNyw3 ICszMDYsNyBAQCB1cGRhdGVfZnJvbV92YXJpb3VzX2ZyYW1lX3Nsb3RzIChFbWFjc0ZyYW1l IGV3KQogICBzdHJ1Y3QgZnJhbWUgKmYgPSBldy0+ZW1hY3NfZnJhbWUuZnJhbWU7CiAgIHN0 cnVjdCB4X291dHB1dCAqeCA9IGYtPm91dHB1dF9kYXRhLng7CiAKLSAgZXctPmNvcmUuaGVp Z2h0ID0gRlJBTUVfUElYRUxfSEVJR0hUIChmKSAtIHgtPm1lbnViYXJfaGVpZ2h0OworICBl dy0+Y29yZS5oZWlnaHQgPSBGUkFNRV9QSVhFTF9IRUlHSFQgKGYpOyAvLyAtIHgtPm1lbnVi YXJfaGVpZ2h0OwogICBldy0+Y29yZS53aWR0aCA9IEZSQU1FX1BJWEVMX1dJRFRIIChmKTsK ICAgZXctPmNvcmUuYmFja2dyb3VuZF9waXhlbCA9IEZSQU1FX0JBQ0tHUk9VTkRfUElYRUwg KGYpOwogICBldy0+ZW1hY3NfZnJhbWUuaW50ZXJuYWxfYm9yZGVyX3dpZHRoID0gZi0+aW50 ZXJuYWxfYm9yZGVyX3dpZHRoOwpAQCAtMzQ1LDEyICszMTQsMTEgQEAgdXBkYXRlX2Zyb21f dmFyaW91c19mcmFtZV9zbG90cyAoRW1hY3NGcmFtZSBldykKICAgZXctPmVtYWNzX2ZyYW1l LmN1cnNvcl9jb2xvciA9IHgtPmN1cnNvcl9waXhlbDsKICAgZXctPmNvcmUuYm9yZGVyX3Bp eGVsID0geC0+Ym9yZGVyX3BpeGVsOwogCi0gIGlmIChDT05TUCAoZnJhbWVfc2l6ZV9oaXN0 b3J5KSkKLSAgICBmcmFtZV9zaXplX2hpc3RvcnlfZXh0cmEKLSAgICAgIChmLCBidWlsZF9z dHJpbmcgKCJ1cGRhdGVfZnJvbV92YXJpb3VzX2ZyYW1lX3Nsb3RzIiksCi0gICAgICAgRlJB TUVfUElYRUxfV0lEVEggKGYpLCBGUkFNRV9QSVhFTF9IRUlHSFQgKGYpLAotICAgICAgIGV3 LT5jb3JlLndpZHRoLCBldy0+Y29yZS5oZWlnaHQsCi0gICAgICAgZi0+bmV3X3dpZHRoLCBm LT5uZXdfaGVpZ2h0KTsKKyAgQ0FMTE4gKEZmdW5jYWxsLCBRZm9vX2l0LAorCSBidWlsZF9z dHJpbmcgKCJ1cGRhdGVfZnJvbV92YXJpb3VzX2ZyYW1lX3Nsb3RzIiksCisJIGJ1aWxkX3N0 cmluZyAoIm5hdGl2ZSBwaXhlbHMiKSwKKwkgKEZjb25zIChtYWtlX2ZpeG51bSAoRlJBTUVf UElYRUxfV0lEVEggKGYpKSwKKwkJIG1ha2VfZml4bnVtIChGUkFNRV9QSVhFTF9IRUlHSFQg KGYpKSkpKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTM4NCw3ICszNTIsNiBAQCBFbWFjc0Zy YW1lUmVhbGl6ZSAoV2lkZ2V0IHdpZGdldCwgWHRWYWx1ZU1hc2sgKm1hc2ssCiAJCSAgIFhT ZXRXaW5kb3dBdHRyaWJ1dGVzICphdHRycykKIHsKICAgRW1hY3NGcmFtZSBldyA9IChFbWFj c0ZyYW1lKSB3aWRnZXQ7Ci0gIHN0cnVjdCBmcmFtZSAqZiA9IGV3LT5lbWFjc19mcmFtZS5m cmFtZTsKIAogICAvKiBUaGlzIHVzZWQgdG8gY29udGFpbiBTdWJzdHJ1Y3R1cmVSZWRpcmVj dE1hc2ssIGJ1dCB0aGlzIHR1cm5zIG91dAogICAgICB0byBiZSBhIHByb2JsZW0gd2l0aCBY SU0gb24gU29sYXJpcywgYW5kIGV2ZW50cyBmcm9tIHRoYXQgbWFzawpAQCAtMzk5LDEyICsz NjYsOCBAQCBFbWFjc0ZyYW1lUmVhbGl6ZSAoV2lkZ2V0IHdpZGdldCwgWHRWYWx1ZU1hc2sg Km1hc2ssCiAgICAgIG1ha2Ugc3VyZSB3ZSBnZXQgdGhlbSBhbGwuICBTZWVuIHdpdGggeGZj d200IGZvciBleGFtcGxlLiAgKi8KICAgWHRBZGRSYXdFdmVudEhhbmRsZXIgKHdpZGdldCwg U3RydWN0dXJlTm90aWZ5TWFzaywgRmFsc2UsIHJlc2l6ZV9jYiwgTlVMTCk7CiAKLSAgaWYg KENPTlNQIChmcmFtZV9zaXplX2hpc3RvcnkpKQotICAgIGZyYW1lX3NpemVfaGlzdG9yeV9w bGFpbgotICAgICAgKGYsIGJ1aWxkX3N0cmluZyAoIkVtYWNzRnJhbWVSZWFsaXplIikpOwot CiAgIGlmIChnZXRfd21fc2hlbGwgKHdpZGdldCkpCi0gICAgdXBkYXRlX3dtX2hpbnRzIChn ZXRfd21fc2hlbGwgKHdpZGdldCksIGV3KTsKKyAgICB1cGRhdGVfd21faGludHMgKGdldF93 bV9zaGVsbCAod2lkZ2V0KSwgZXcsIC0xLCAtMSk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC00 MTksMTggKzM4MiwyMyBAQCBFbWFjc0ZyYW1lUmVzaXplIChXaWRnZXQgd2lkZ2V0KQogICBF bWFjc0ZyYW1lIGV3ID0gKEVtYWNzRnJhbWUpIHdpZGdldDsKICAgc3RydWN0IGZyYW1lICpm ID0gZXctPmVtYWNzX2ZyYW1lLmZyYW1lOwogCi0gIGlmIChDT05TUCAoZnJhbWVfc2l6ZV9o aXN0b3J5KSkKLSAgICBmcmFtZV9zaXplX2hpc3RvcnlfZXh0cmEKLSAgICAgIChmLCBidWls ZF9zdHJpbmcgKCJFbWFjc0ZyYW1lUmVzaXplIiksCi0gICAgICAgRlJBTUVfUElYRUxfV0lE VEggKGYpLCBGUkFNRV9QSVhFTF9IRUlHSFQgKGYpLAotICAgICAgIGV3LT5jb3JlLndpZHRo LCBldy0+Y29yZS5oZWlnaHQsCi0gICAgICAgZi0+bmV3X3dpZHRoLCBmLT5uZXdfaGVpZ2h0 KTsKKyAgaWYgKEZSQU1FX1BJWEVMX1dJRFRIIChmKSAhPSBldy0+Y29yZS53aWR0aAorICAg ICAgfHwgRlJBTUVfUElYRUxfSEVJR0hUIChmKQkhPSBldy0+Y29yZS5oZWlnaHQpCisgICAg Q0FMTE4gKEZmdW5jYWxsLCBRZm9vX2l0LCBidWlsZF9zdHJpbmcgKCJFbWFjc0ZyYW1lUmVz aXplIiksCisJICAgYnVpbGRfc3RyaW5nICgib2xkIG5hdGl2ZSBwaXhlbHMiKSwKKwkgICBG Y29ucyAobWFrZV9maXhudW0gKEZSQU1FX1BJWEVMX1dJRFRIIChmKSksCisJCSAgbWFrZV9m aXhudW0gKEZSQU1FX1BJWEVMX0hFSUdIVCAoZikpKSwKKwkgICBidWlsZF9zdHJpbmcgKCJu ZXcgbmF0aXZlIHBpeGVscyIpLAorCSAgIEZjb25zIChtYWtlX2ZpeG51bSAoZXctPmNvcmUu d2lkdGgpLAorCQkgIG1ha2VfZml4bnVtIChldy0+Y29yZS5oZWlnaHQpKSk7CiAKICAgY2hh bmdlX2ZyYW1lX3NpemUgKGYsIGV3LT5jb3JlLndpZHRoLCBldy0+Y29yZS5oZWlnaHQsCiAJ CSAgICAgZmFsc2UsIHRydWUsIGZhbHNlKTsKIAogICBpZiAoZ2V0X3dtX3NoZWxsICh3aWRn ZXQpKQotICAgIHVwZGF0ZV93bV9oaW50cyAoZ2V0X3dtX3NoZWxsICh3aWRnZXQpLCBldyk7 CisgICAgdXBkYXRlX3dtX2hpbnRzIChnZXRfd21fc2hlbGwgKHdpZGdldCksIGV3LAorCQkg ICAgIEZSQU1FX1BJWEVMX1RPX1RFWFRfV0lEVEggKGYsIGV3LT5jb3JlLndpZHRoKSwKKwkJ ICAgICBGUkFNRV9QSVhFTF9UT19URVhUX0hFSUdIVCAoZiwgZXctPmNvcmUuaGVpZ2h0KSk7 CiAgIHVwZGF0ZV92YXJpb3VzX2ZyYW1lX3Nsb3RzIChldyk7CiAKICAgY2FuY2VsX21vdXNl X2ZhY2UgKGYpOwpAQCAtNDcyLDEzICs0NDAsNiBAQCBFbWFjc0ZyYW1lU2V0Q2hhclNpemUg KFdpZGdldCB3aWRnZXQsIGludCBjb2x1bW5zLCBpbnQgcm93cykKICAgRW1hY3NGcmFtZSBl dyA9IChFbWFjc0ZyYW1lKSB3aWRnZXQ7CiAgIHN0cnVjdCBmcmFtZSAqZiA9IGV3LT5lbWFj c19mcmFtZS5mcmFtZTsKIAotICBpZiAoQ09OU1AgKGZyYW1lX3NpemVfaGlzdG9yeSkpCi0g ICAgZnJhbWVfc2l6ZV9oaXN0b3J5X2V4dHJhCi0gICAgICAoZiwgYnVpbGRfc3RyaW5nICgi RW1hY3NGcmFtZVNldENoYXJTaXplIiksCi0gICAgICAgRlJBTUVfUElYRUxfV0lEVEggKGYp LCBGUkFNRV9QSVhFTF9IRUlHSFQgKGYpLAotICAgICAgIGNvbHVtbnMsIHJvd3MsCi0gICAg ICAgZi0+bmV3X3dpZHRoLCBmLT5uZXdfaGVpZ2h0KTsKLQogICBpZiAoIWZyYW1lX2luaGli aXRfcmVzaXplIChmLCAwLCBRZm9udCkKICAgICAgICYmICFmcmFtZV9pbmhpYml0X3Jlc2l6 ZSAoZiwgMSwgUWZvbnQpKQogICAgIHhfc2V0X3dpbmRvd19zaXplIChmLCAwLCBjb2x1bW5z ICogRlJBTUVfQ09MVU1OX1dJRFRIIChmKSwKZGlmZiAtLWdpdCBhL3NyYy93aWRnZXQuaCBi L3NyYy93aWRnZXQuaAppbmRleCBjZjgzY2IxMDc4Li4wM2JjODA5YzQxIDEwMDY0NAotLS0g YS9zcmMvd2lkZ2V0LmgKKysrIGIvc3JjL3dpZGdldC5oCkBAIC05Nyw2ICs5Nyw2IEBAICNk ZWZpbmUgWHRDSW5pdGlhbEdlb21ldHJ5ICJJbml0aWFsR2VvbWV0cnkiCiAvKiBTcGVjaWFs IGVudHJ5IHBvaW50cyAqLwogdm9pZCBFbWFjc0ZyYW1lU2V0Q2hhclNpemUgKFdpZGdldCwg aW50LCBpbnQpOwogdm9pZCB3aWRnZXRfc3RvcmVfaW50ZXJuYWxfYm9yZGVyIChXaWRnZXQg d2lkZ2V0KTsKLWJvb2wgd2lkZ2V0X3VwZGF0ZV93bV9zaXplX2hpbnRzIChXaWRnZXQgd2lk Z2V0LCBXaWRnZXQgZnJhbWUpOworYm9vbCB3aWRnZXRfdXBkYXRlX3dtX3NpemVfaGludHMg KFdpZGdldCB3aWRnZXQsIFdpZGdldCBmcmFtZSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsK IAogI2VuZGlmIC8qIF9FbWFjc0ZyYW1lX2ggKi8KZGlmZiAtLWdpdCBhL3NyYy93aW5kb3cu YyBiL3NyYy93aW5kb3cuYwppbmRleCBmMTE2YjlhOWQ3Li5jMDkwZjI5NDYxIDEwMDY0NAot LS0gYS9zcmMvd2luZG93LmMKKysrIGIvc3JjL3dpbmRvdy5jCkBAIC04Mzk0LDYgKzgzOTQs NyBAQCBzeW1zX29mX3dpbmRvdyAodm9pZCkKICAgREVGU1lNIChRaGVhZGVyX2xpbmVfZm9y bWF0LCAiaGVhZGVyLWxpbmUtZm9ybWF0Iik7CiAgIERFRlNZTSAoUXRhYl9saW5lX2Zvcm1h dCwgInRhYi1saW5lLWZvcm1hdCIpOwogICBERUZTWU0gKFFub19vdGhlcl93aW5kb3csICJu by1vdGhlci13aW5kb3ciKTsKKyAgREVGU1lNIChRZm9vX2l0LCAiZm9vLWl0Iik7CiAKICAg REVGVkFSX0xJU1AgKCJ0ZW1wLWJ1ZmZlci1zaG93LWZ1bmN0aW9uIiwgVnRlbXBfYnVmZmVy X3Nob3dfZnVuY3Rpb24sCiAJICAgICAgIGRvYzogLyogTm9uLW5pbCBtZWFucyBjYWxsIGFz IGZ1bmN0aW9uIHRvIGRpc3BsYXkgYSBoZWxwIGJ1ZmZlci4KZGlmZiAtLWdpdCBhL3NyYy94 Zm5zLmMgYi9zcmMveGZucy5jCmluZGV4IDM2YjUxYTMwMTEuLjI1ZTFhZjI3OWQgMTAwNjQ0 Ci0tLSBhL3NyYy94Zm5zLmMKKysrIGIvc3JjL3hmbnMuYwpAQCAtNDU3NSw3ICs0NTc1LDcg QEAgREVGVU4gKCJ4LXdtLXNldC1zaXplLWhpbnQiLCBGeF93bV9zZXRfc2l6ZV9oaW50LCBT eF93bV9zZXRfc2l6ZV9oaW50LAogICBzdHJ1Y3QgZnJhbWUgKmYgPSBkZWNvZGVfd2luZG93 X3N5c3RlbV9mcmFtZSAoZnJhbWUpOwogCiAgIGJsb2NrX2lucHV0ICgpOwotICB4X3dtX3Nl dF9zaXplX2hpbnQgKGYsIDAsIGZhbHNlKTsKKyAgeF93bV9zZXRfc2l6ZV9oaW50IChmLCAw LCBmYWxzZSwgLTEsIC0xKTsKICAgdW5ibG9ja19pbnB1dCAoKTsKICAgcmV0dXJuIFFuaWw7 CiB9CkBAIC01MDk3LDcgKzUwOTcsOCBAQCBERUZVTiAoIngtY3JlYXRlLWZyYW1lIiwgRnhf Y3JlYXRlX2ZyYW1lLCBTeF9jcmVhdGVfZnJhbWUsCiAgICAgIGJhZGx5IHdlIHdhbnQgdGhl bS4gIFRoaXMgc2hvdWxkIGJlIGRvbmUgYWZ0ZXIgd2UgaGF2ZSB0aGUgbWVudQogICAgICBi YXIgc28gdGhhdCBpdHMgc2l6ZSBjYW4gYmUgdGFrZW4gaW50byBhY2NvdW50LiAgKi8KICAg YmxvY2tfaW5wdXQgKCk7Ci0gIHhfd21fc2V0X3NpemVfaGludCAoZiwgd2luZG93X3Byb21w dGluZywgZmFsc2UpOworICB4X3dtX3NldF9zaXplX2hpbnQgKGYsIHdpbmRvd19wcm9tcHRp bmcsIGZhbHNlLAorCQkgICAgICBGUkFNRV9URVhUX1dJRFRIIChmKSwgRlJBTUVfVEVYVF9I RUlHSFQgKGYpKTsKICAgdW5ibG9ja19pbnB1dCAoKTsKIAogICBhZGp1c3RfZnJhbWVfc2l6 ZSAoZiwgRlJBTUVfVEVYVF9XSURUSCAoZiksIEZSQU1FX1RFWFRfSEVJR0hUIChmKSwKZGlm ZiAtLWdpdCBhL3NyYy94dGVybS5jIGIvc3JjL3h0ZXJtLmMKaW5kZXggN2VhZjU5ZDU0Yi4u YjFkNjVjZTU5ZCAxMDA2NDQKLS0tIGEvc3JjL3h0ZXJtLmMKKysrIGIvc3JjL3h0ZXJtLmMK QEAgLTI2MTYwLDYgKzI2MTYwLDggQEAgeF9uZXdfZm9udCAoc3RydWN0IGZyYW1lICpmLCBM aXNwX09iamVjdCBmb250X29iamVjdCwgaW50IGZvbnRzZXQpCiB7CiAgIHN0cnVjdCBmb250 ICpmb250ID0gWEZPTlRfT0JKRUNUIChmb250X29iamVjdCk7CiAgIGludCB1bml0LCBmb250 X2FzY2VudCwgZm9udF9kZXNjZW50OworICBpbnQgb2xkX3dpZHRoID0gRlJBTUVfQ09MVU1O X1dJRFRIIChmKTsKKyAgaW50IG9sZF9oZWlnaHQgPSBGUkFNRV9MSU5FX0hFSUdIVCAoZik7 CiAKICAgaWYgKGZvbnRzZXQgPCAwKQogICAgIGZvbnRzZXQgPSBmb250c2V0X2Zyb21fZm9u dCAoZm9udF9vYmplY3QpOwpAQCAtMjYxOTcsOSArMjYxOTksMjcgQEAgeF9uZXdfZm9udCAo c3RydWN0IGZyYW1lICpmLCBMaXNwX09iamVjdCBmb250X29iamVjdCwgaW50IGZvbnRzZXQp CiAgICAgIGJlY2F1c2UgaXQncyBkb25lIGluIEZ4X3Nob3dfdGlwLCBhbmQgaXQgbGVhZHMg dG8gcHJvYmxlbXMgYmVjYXVzZQogICAgICB0aGUgdGlwIGZyYW1lIGhhcyBubyB3aWRnZXQu ICAqLwogICBpZiAoRlJBTUVfWF9XSU5ET1cgKGYpICE9IDAgJiYgIUZSQU1FX1RPT0xUSVBf UCAoZikpCi0gICAgYWRqdXN0X2ZyYW1lX3NpemUKLSAgICAgIChmLCBGUkFNRV9DT0xTIChm KSAqIEZSQU1FX0NPTFVNTl9XSURUSCAoZiksCi0gICAgICAgRlJBTUVfTElORVMgKGYpICog RlJBTUVfTElORV9IRUlHSFQgKGYpLCAzLCBmYWxzZSwgUWZvbnQpOworICAgIHsKKyAgICAg IENBTExOIChGZnVuY2FsbCwgUWZvb19pdCwgaW50ZXJuICgiXG54X25ld19mb250IiksCisJ ICAgICBpbnRlcm4gKCJvbGQgY2hhciBzaXplIiksCisJICAgICBGY29ucyAobWFrZV9maXhu dW0gKG9sZF93aWR0aCksIG1ha2VfZml4bnVtIChvbGRfaGVpZ2h0KSksCisJICAgICBpbnRl cm4gKCJuZXcgY2hhciBzaXplIiksCisJICAgICBGY29ucyAobWFrZV9maXhudW0gKEZSQU1F X0NPTFVNTl9XSURUSCAoZikpLAorCQkgICAgbWFrZV9maXhudW0gKEZSQU1FX0xJTkVfSEVJ R0hUIChmKSkpLAorCSAgICAgaW50ZXJuICgidGV4dCBjaGFycyIpLAorCSAgICAgRmNvbnMg KG1ha2VfZml4bnVtIChGUkFNRV9DT0xTIChmKSksCisJCSAgICBtYWtlX2ZpeG51bSAoRlJB TUVfTElORVMgKGYpKSksCisJICAgICBpbnRlcm4gKCJvbGQgdGV4dCBwaXhlbHMiKSwKKwkg ICAgIEZjb25zIChtYWtlX2ZpeG51bSAoRlJBTUVfVEVYVF9XSURUSCAoZikpLAorCQkgICAg bWFrZV9maXhudW0gKEZSQU1FX1RFWFRfSEVJR0hUIChmKSkpLAorCSAgICAgaW50ZXJuICgi bmV3IHRleHQgcGl4ZWxzIiksCisJICAgICBGY29ucyAobWFrZV9maXhudW0gKEZSQU1FX0NP TFMgKGYpICogRlJBTUVfQ09MVU1OX1dJRFRIIChmKSksCisJCSAgICBtYWtlX2ZpeG51bSAo RlJBTUVfTElORVMgKGYpICogRlJBTUVfTElORV9IRUlHSFQgKGYpKSkpOworCisgICAgICBh ZGp1c3RfZnJhbWVfc2l6ZQorCShmLCBGUkFNRV9DT0xTIChmKSAqIEZSQU1FX0NPTFVNTl9X SURUSCAoZiksCisJIEZSQU1FX0xJTkVTIChmKSAqIEZSQU1FX0xJTkVfSEVJR0hUIChmKSwg MywgZmFsc2UsIFFmb250KTsKKyAgICB9CiAKICNpZmRlZiBIQVZFX1hfSTE4TgogICBpZiAo RlJBTUVfWElDIChmKQpAQCAtMjY1ODksNyArMjY2MDksNyBAQCB4X3NldF9vZmZzZXQgKHN0 cnVjdCBmcmFtZSAqZiwgaW50IHhvZmYsIGludCB5b2ZmLCBpbnQgY2hhbmdlX2dyYXZpdHkp CiAgIHhfY2FsY19hYnNvbHV0ZV9wb3NpdGlvbiAoZik7CiAKICAgYmxvY2tfaW5wdXQgKCk7 Ci0gIHhfd21fc2V0X3NpemVfaGludCAoZiwgMCwgZmFsc2UpOworICB4X3dtX3NldF9zaXpl X2hpbnQgKGYsIDAsIGZhbHNlLCAtMSwgLTEpOwogCiAjaWZkZWYgVVNFX0dUSwogICBpZiAo eF9ndGtfdXNlX3dpbmRvd19tb3ZlKQpAQCAtMjcyNzksNyArMjcyOTksNyBAQCB4X2NoZWNr X2Z1bGxzY3JlZW4gKHN0cnVjdCBmcmFtZSAqZikKIAkgIGVtYWNzX2Fib3J0ICgpOwogICAg ICAgICB9CiAKLSAgICAgIHhfd21fc2V0X3NpemVfaGludCAoZiwgMCwgZmFsc2UpOworICAg ICAgeF93bV9zZXRfc2l6ZV9oaW50IChmLCAwLCBmYWxzZSwgLTEsIC0xKTsKIAogICAgICAg WFJlc2l6ZVdpbmRvdyAoRlJBTUVfWF9ESVNQTEFZIChmKSwgRlJBTUVfT1VURVJfV0lORE9X IChmKSwKIAkJICAgICB3aWR0aCwgaGVpZ2h0KTsKQEAgLTI3NDUzLDcgKzI3NDczLDggQEAg eF9zZXRfd2luZG93X3NpemVfMSAoc3RydWN0IGZyYW1lICpmLCBib29sIGNoYW5nZV9ncmF2 aXR5LAogewogICBpZiAoY2hhbmdlX2dyYXZpdHkpCiAgICAgZi0+d2luX2dyYXZpdHkgPSBO b3J0aFdlc3RHcmF2aXR5OwotICB4X3dtX3NldF9zaXplX2hpbnQgKGYsIDAsIGZhbHNlKTsK KyAgeF93bV9zZXRfc2l6ZV9oaW50IChmLCAwLCBmYWxzZSwgRlJBTUVfUElYRUxfVE9fVEVY VF9XSURUSCAoZiwgd2lkdGgpLAorCQkgICAgICBGUkFNRV9QSVhFTF9UT19URVhUX0hFSUdI VCAoZiwgaGVpZ2h0KSk7CiAKICAgWFJlc2l6ZVdpbmRvdyAoRlJBTUVfWF9ESVNQTEFZIChm KSwgRlJBTUVfT1VURVJfV0lORE9XIChmKSwKIAkJIHdpZHRoLCBoZWlnaHQgKyBGUkFNRV9N RU5VQkFSX0hFSUdIVCAoZikpOwpAQCAtMjgyNDMsNyArMjgyNjQsNyBAQCB4X21ha2VfZnJh bWVfaW52aXNpYmxlIChzdHJ1Y3QgZnJhbWUgKmYpCiAgICAgIHByb2dyYW0tc3BlY2lmaWVk LCBzbyB0aGF0IHdoZW4gdGhlIHdpbmRvdyBpcyBtYXBwZWQgYWdhaW4sIGl0IHdpbGwgYmUK ICAgICAgcGxhY2VkIGF0IHRoZSBzYW1lIGxvY2F0aW9uLCB3aXRob3V0IGZvcmNpbmcgdGhl IHVzZXIgdG8gcG9zaXRpb24gaXQKICAgICAgYnkgaGFuZCBhZ2FpbiAodGhleSBoYXZlIGFs cmVhZHkgZG9uZSB0aGF0IG9uY2UgZm9yIHRoaXMgd2luZG93LikgICovCi0gIHhfd21fc2V0 X3NpemVfaGludCAoZiwgMCwgdHJ1ZSk7CisgIHhfd21fc2V0X3NpemVfaGludCAoZiwgMCwg dHJ1ZSwgLTEsIC0xKTsKIAogI2lmZGVmIFVTRV9HVEsKICAgaWYgKEZSQU1FX0dUS19PVVRF Ul9XSURHRVQgKGYpKQpAQCAtMjg4OTYsNyArMjg5MTcsOCBAQCB4X2VtYmVkX2ZyYW1lIChz dHJ1Y3QgeF9kaXNwbGF5X2luZm8gKmRweWluZm8sIHN0cnVjdCBmcmFtZSAqZikKICAgIFRo ZSBHVEsgdmVyc2lvbiBpcyBpbiBndGt1dGlscy5jLiAgKi8KIAogdm9pZAoteF93bV9zZXRf c2l6ZV9oaW50IChzdHJ1Y3QgZnJhbWUgKmYsIGxvbmcgZmxhZ3MsIGJvb2wgdXNlcl9wb3Np dGlvbikKK3hfd21fc2V0X3NpemVfaGludCAoc3RydWN0IGZyYW1lICpmLCBsb25nIGZsYWdz LCBib29sIHVzZXJfcG9zaXRpb24sCisJCSAgICBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7 CiAjaWZuZGVmIFVTRV9HVEsKICAgWFNpemVIaW50cyBzaXplX2hpbnRzOwpAQCAtMjg5MzUs MTAgKzI4OTU3LDEyIEBAIHhfd21fc2V0X3NpemVfaGludCAoc3RydWN0IGZyYW1lICpmLCBs b25nIGZsYWdzLCBib29sIHVzZXJfcG9zaXRpb24pCiAjaWZuZGVmIFVTRV9NT1RJRgogICAg ICAgaGludHNfY2hhbmdlZAogCT0gd2lkZ2V0X3VwZGF0ZV93bV9zaXplX2hpbnRzIChmLT5v dXRwdXRfZGF0YS54LT53aWRnZXQsCi0JCQkJICAgICAgIGYtPm91dHB1dF9kYXRhLngtPmVk aXRfd2lkZ2V0KTsKKwkJCQkgICAgICAgZi0+b3V0cHV0X2RhdGEueC0+ZWRpdF93aWRnZXQs CisJCQkJICAgICAgIHdpZHRoLCBoZWlnaHQpOwogI2Vsc2UKICAgICAgIHdpZGdldF91cGRh dGVfd21fc2l6ZV9oaW50cyAoZi0+b3V0cHV0X2RhdGEueC0+d2lkZ2V0LAotCQkJCSAgIGYt Pm91dHB1dF9kYXRhLngtPmVkaXRfd2lkZ2V0KTsKKwkJCQkgICBmLT5vdXRwdXRfZGF0YS54 LT5lZGl0X3dpZGdldCwKKwkJCQkgICB3aWR0aCwgaGVpZ2h0KTsKIAogICAgICAgLyogRG8g dGhpcyBhbGwgb3ZlciBhZ2FpbiBmb3IgdGhlIGJlbmVmaXQgb2YgTW90aWYsIHdoaWNoIGFs d2F5cwogCSBrbm93cyBiZXR0ZXIgdGhhbiB0aGUgcHJvZ3JhbW1lci4gICovCkBAIC0yOTAx Miw4ICsyOTAzNiwxNiBAQCB4X3dtX3NldF9zaXplX2hpbnQgKHN0cnVjdCBmcmFtZSAqZiwg bG9uZyBmbGFncywgYm9vbCB1c2VyX3Bvc2l0aW9uKQogICB7CiAgICAgaW50IGJhc2Vfd2lk dGgsIGJhc2VfaGVpZ2h0OwogCi0gICAgYmFzZV93aWR0aCA9IEZSQU1FX1RFWFRfQ09MU19U T19QSVhFTF9XSURUSCAoZiwgMCk7Ci0gICAgYmFzZV9oZWlnaHQgPSBGUkFNRV9URVhUX0xJ TkVTX1RPX1BJWEVMX0hFSUdIVCAoZiwgMCk7CisgICAgaWYgKHdpZHRoID09IC0xKQorICAg ICAgd2lkdGggPSBGUkFNRV9URVhUX1dJRFRIIChmKTsKKworICAgIGlmIChoZWlnaHQgPT0g LTEpCisgICAgICBoZWlnaHQgPSBGUkFNRV9URVhUX0hFSUdIVCAoZik7CisKKyAgICBiYXNl X3dpZHRoID0gKEZSQU1FX1RFWFRfQ09MU19UT19QSVhFTF9XSURUSCAoZiwgMCkKKwkJICAr IHdpZHRoICUgRlJBTUVfQ09MVU1OX1dJRFRIIChmKSk7CisgICAgYmFzZV9oZWlnaHQgPSAo RlJBTUVfVEVYVF9MSU5FU19UT19QSVhFTF9IRUlHSFQgKGYsIDApCisJCSAgICsgaGVpZ2h0 ICUgRlJBTUVfTElORV9IRUlHSFQgKGYpKTsKIAogICAgIC8qIFRoZSB3aW5kb3cgbWFuYWdl ciB1c2VzIHRoZSBiYXNlIHdpZHRoIGhpbnRzIHRvIGNhbGN1bGF0ZSB0aGUKICAgICAgICBj dXJyZW50IG51bWJlciBvZiByb3dzIGFuZCBjb2x1bW5zIGluIHRoZSBmcmFtZSB3aGlsZQpA QCAtMjkwNzUsNyArMjkxMDcsNyBAQCB4X3dtX3NldF9zaXplX2hpbnQgKHN0cnVjdCBmcmFt ZSAqZiwgbG9uZyBmbGFncywgYm9vbCB1c2VyX3Bvc2l0aW9uKQogCiAgIFhTZXRXTU5vcm1h bEhpbnRzIChGUkFNRV9YX0RJU1BMQVkgKGYpLCB3aW5kb3csICZzaXplX2hpbnRzKTsKICNl bHNlCi0gIHhnX3dtX3NldF9zaXplX2hpbnQgKGYsIGZsYWdzLCB1c2VyX3Bvc2l0aW9uKTsK KyAgeGdfd21fc2V0X3NpemVfaGludCAoZiwgZmxhZ3MsIHVzZXJfcG9zaXRpb24sIHdpZHRo LCBoZWlnaHQpOwogI2VuZGlmIC8qIFVTRV9HVEsgKi8KIH0KIApkaWZmIC0tZ2l0IGEvc3Jj L3h0ZXJtLmggYi9zcmMveHRlcm0uaAppbmRleCBlZTQyOWU5YzY4Li42MTUxMmYxMTE3IDEw MDY0NAotLS0gYS9zcmMveHRlcm0uaAorKysgYi9zcmMveHRlcm0uaApAQCAtMTY1Myw3ICsx NjUzLDcgQEAgI2RlZmluZSBTRUxFQ1RJT05fRVZFTlRfVElNRShldmVudHApCVwKIGV4dGVy biB2b2lkIHhfbWFrZV9mcmFtZV9pbnZpc2libGUgKHN0cnVjdCBmcmFtZSAqKTsKIGV4dGVy biB2b2lkIHhfaWNvbmlmeV9mcmFtZSAoc3RydWN0IGZyYW1lICopOwogZXh0ZXJuIHZvaWQg eF9mcmVlX2ZyYW1lX3Jlc291cmNlcyAoc3RydWN0IGZyYW1lICopOwotZXh0ZXJuIHZvaWQg eF93bV9zZXRfc2l6ZV9oaW50IChzdHJ1Y3QgZnJhbWUgKiwgbG9uZywgYm9vbCk7CitleHRl cm4gdm9pZCB4X3dtX3NldF9zaXplX2hpbnQgKHN0cnVjdCBmcmFtZSAqLCBsb25nLCBib29s LCBpbnQsIGludCk7CiAjaWYgZGVmaW5lZCBIQVZFX1hTWU5DVFJJR0dFUkZFTkNFICYmICFk ZWZpbmVkIFVTRV9HVEsgXAogICAmJiBkZWZpbmVkIEhBVkVfQ0xPQ0tfR0VUVElNRQogZXh0 ZXJuIHZvaWQgeF9zeW5jX2luaXRfZmVuY2VzIChzdHJ1Y3QgZnJhbWUgKik7Cg== --------------5Nfi0h3QGqNPoL0vG5c8h6cD--