From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pj1-x1034.google.com (mail-pj1-x1034.google.com [IPv6:2607:f8b0:4864:20::1034]) by sourceware.org (Postfix) with ESMTPS id 63FA13858403; Sat, 3 Feb 2024 03:17:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 63FA13858403 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 63FA13858403 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::1034 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706930282; cv=none; b=qr21LDMmobX6J/BVHAsPBtkH646GyKmsQsopeEEJhPWkHu56d7ha04/C1C3nA/jq3OmHDamxQ6yNovldA1q/GOe0n2P7uSXIOHp0D2+zZQ8CTCSBWMYZptSMYNtiJB+wUZIZDAlpTRcBIZxa1YlTKeIs8o/wQmwd93pL+R6Ew8U= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706930282; c=relaxed/simple; bh=IfnU260MQ5INRjbdc5nc2dK2HBO7u33Ip5fVYi2BG/o=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=SFBQVjS/X1OgWz4al9kYjqKxeaXyAjgLqJoUogcgCiRdpx6CSNnoev5MdQ53YnAFpa/Nbg/yHimfcAL3iGkDOR4ewdCIYg5MaQQDuuYYmzBn36Q0QY8OlTMOz/KNRJR20CveCCHr8IFh87viEcA9wKn/vb5y5KI3wQccK0XAeHs= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-2866b15b013so722561a91.0; Fri, 02 Feb 2024 19:17:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706930278; x=1707535078; darn=gcc.gnu.org; h=in-reply-to:autocrypt:from:content-language:references:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=zH53NZr8/3wsHEWzwgHMaV2hnDWqGzMDi0gzF97PTW4=; b=jeSijaCHITC5m49Us6zFNX2VW9b6rkjpMplrbTQLX1UvCAd0cV1IKHL8AANV6tcLnN rwj3nMRhQdf3/DN6uYB+vmmtm4D+ey/O2k2Lk4DGboFLsLJO+edEhomRdXD/EzFHgDr5 yNK1ZBuDMcWTbrmFm2jbEDtYpn8N9sguNzaMRxsd71XJiHhkiEFJxZcZ7K0fD9bTa13D cADoNceE4VWfO/ipPH2Ta9eLFMr7W4OjAQ3Vwb1kvk+V+FUeYYlNRgGMgSsP3/JPbrPm fofg8SHQrc9u9ad0HFEzjDbX66Xz1fBcNmKlUBFBV1ega5U0yLKW26/awGoF/lRFhI+d d0rA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706930278; x=1707535078; h=in-reply-to:autocrypt:from:content-language:references:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=zH53NZr8/3wsHEWzwgHMaV2hnDWqGzMDi0gzF97PTW4=; b=PK0BqbtdQlqZU78nX5eja6mSb1WLrdLeQQRpGfBgQAe6U2xQI0cDwZqRI9NkYoL4Hu vBRA8wYn1U8Y5AOTP/aIpcfG5NuHyjnRqb8ej390+8gILJD4WqFtL3F4DFuaAG39vhEK FZLjfyinlt5nywAb5hLnep+GMt8sy45TEquvKQiNdUtK2Ojxe65O20iO+geJlwrkG7Sh CLOblatjMDGEhIDfEo99K5uhdj4PEGavw2ayACEujHwIT3TvZp9sVGk/ZsecD4ke/cCb mg8mGHMdWMVWTy9GEUgYQj30EPDE6OI0fTfRtO/R+6OkDoIFFQlG2aKIxR7My5mob7eJ SolA== X-Forwarded-Encrypted: i=0; AJvYcCVdMcePi0v3ZGx4bhOJO3yrMF1w11NSxZwospNW9pwp9ZhHxeD0pIOO/mVIr/oZD0O7VYzA807PCAf5COTj43re9kzRdq8PfphRzyJU22kgNQ1DAHlff4GWbp11Mg== X-Gm-Message-State: AOJu0YxDUOQ+mVUdkQmW4ky3cqhZwADf8GeWbhPYvJCHey6ONCkpZEwW FmeJhhQIVyW23OC42eThXIxco7S+bWNl6T/0J58OBjCXoyvMymI23c2S+F539Nw= X-Google-Smtp-Source: AGHT+IHLhDprqeit6UX5WfolIW3QlGBYxfJPQpoRqA7oJ07gmkGeJ1a8Jfz49UxMIEiLfD08qK4i/w== X-Received: by 2002:a17:902:c20a:b0:1d8:ca6d:ae90 with SMTP id 10-20020a170902c20a00b001d8ca6dae90mr7929975pll.3.1706930278198; Fri, 02 Feb 2024 19:17:58 -0800 (PST) X-Forwarded-Encrypted: i=0; AJvYcCU6pSsRzrVfbfQ/EB101o05kEOR/xfJlE12S4sGdnu+5+NKrj95lYKh/Dj53sfQClUduZHeWWf8KlVXuawIddoTwQFsXgJgbOy/9K4HGJf0NPJifg8iFWMw9XUUtw== Received: from [192.168.1.20] ([50.37.177.113]) by smtp.gmail.com with ESMTPSA id jb2-20020a170903258200b001d70ad0fe79sm2296035plb.291.2024.02.02.19.17.56 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 02 Feb 2024 19:17:56 -0800 (PST) Content-Type: multipart/mixed; boundary="------------eLHKalGghosvehbCk3t0Nxmx" Message-ID: <86b7aa32-db1e-4717-af28-4b7ba9c42e36@gmail.com> Date: Fri, 2 Feb 2024 19:17:55 -0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [patch, libgfortran] PR111022 ES0.0E0 format gave ES0.dE0 output with d too high. To: Harald Anlauf , gfortran , gcc-patches References: <472c030d-fc70-4997-b16a-e84a0c97bee2@gmail.com> <830f8286-e41b-4dc2-99c2-8acf789c5d39@gmx.de> Content-Language: en-US From: Jerry D Autocrypt: addr=jvdelisle2@gmail.com; keydata= xjMEY5TlkxYJKwYBBAHaRw8BAQdAyrkRDhmJhSTTlV/50gJLlvliU6/Lm5C9ViKV8T9y1GnN HkplcnJ5IEQgPGp2ZGVsaXNsZTJAZ21haWwuY29tPsKJBBMWCAAxFiEEOFR0TS0390uh8dRV uWXAJaWpwWoFAmOU5ZMCGwMECwkIBwUVCAkKCwUWAgMBAAAKCRC5ZcAlpanBalsJAP4wdCiH 2Of9oZv1QWgZ/AVdbWFM3Fv47/WZQHOXfoZ9HgD6AkXrKeJ+6usST7PEaDJjptaViT1fLiYY V/6XaOKSsgLOOARjlOWTEgorBgEEAZdVAQUBAQdAdA7PczYnl07vnOT9oP/wvvMDd4HP09Zl g3LzwXQJWT8DAQgHwngEGBYIACAWIQQ4VHRNLTf3S6Hx1FW5ZcAlpanBagUCY5TlkwIbDAAK CRC5ZcAlpanBasF/AQCa5WjlsVpLsEiggZyT18MOJNAdeRd7wkGDUrwedHrvawD/cE1H+/Ms L1ZwvQiLfGdx8crigQqWTQyos4kH8Wx82wc= In-Reply-To: <830f8286-e41b-4dc2-99c2-8acf789c5d39@gmx.de> X-Spam-Status: No, score=-7.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------eLHKalGghosvehbCk3t0Nxmx Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 1/30/24 12:36 PM, Harald Anlauf wrote: > Hi Jerry, > > Am 30.01.24 um 19:15 schrieb Jerry D: >> The attached patch attempts to fix the handling of the EN0.0E0 and >> ES0.0E0 formatting by correctly calculating the number of digits needed >> for the exponents and building those exponents into the float string. > > while your patch addresses ENw.dE0 and ESw.dE0 formatting, > it does not fix Ew.dE0, which can be seen with the following test: > >   write(buffer,"(E0.3E0)") .6660_4 >   print *, buffer >   write(buffer,"(E0.3)") .6660_4 >   print *, buffer > > I get even with your patch: > >  0.666 >  0.666 > > but would have expected: > >  0.666E+0   ! F2018 & F2023, table 13.1 >  0.666E+0   ! F2023, table 13.1 > Tha attached file shows the complete revised patch and git log generated by using the 'git show' command. I only just discovered that one. (eye roll). Regressions tested on x86-64. OK for trunk? Regards, Jerry --------------eLHKalGghosvehbCk3t0Nxmx Content-Type: text/x-patch; charset=UTF-8; name="submitlog.diff" Content-Disposition: attachment; filename="submitlog.diff" Content-Transfer-Encoding: base64 Y29tbWl0IDk1Yzg3OGE5Nzk0NGY5NTJhZWYyMjZmZjAyMjRiMjE5OGFiZmJlMGYKQXV0aG9y OiBKZXJyeSBEZUxpc2xlIDxqdmRlbGlzbGVAZ2NjLmdudS5vcmc+CkRhdGU6ICAgRnJpIEZl YiAyIDE4OjEyOjMzIDIwMjQgLTA4MDAKCiAgICBsaWJnZm9ydHJhbjogRU4wLjBFMCBhbmQg RVMwLjBFMCBmb3JtYXQgZWRpdGluZy4KICAgIAogICAgICAgICAgICBQUiBsaWJnZm9ydHJh bi8xMTEwMjIKICAgIAogICAgRjIwMTggYW5kIEYyMDIzIHN0YW5kYXJkcyBhZGRlZCB6ZXJv IHdpZHRoIGV4cG9uZW50cy4gVGhpcyByZXF1aXJlZAogICAgYWRkaXRpb25hbCBzcGVjaWFs IGhhbmRpbmcgaW4gdGhlIHByb2Nlc3Mgb2YgYnVpbGRpbmcgZm9ybWF0dGVkCiAgICBmbG9h dGluZyBwb2ludCBzdHJpbmdzLgogICAgCiAgICBHIGZvcm1hdHRpbmcgdXNlcyBlaXRoZXIg RiBvciBFIGZvcm1hdHRpbmcgYXMgZG9jdW1lbnRlZCBpbgogICAgd3JpdGVfZmxvYXQuZGVm IGNvbW1lbnRzLiBUaGlzIGxvZ2ljIGNoYW5nZXMgdGhlIGZvcm1hdCB0b2tlbiBmcm9tIEZN VF9HCiAgICB0byBGTVRfRiBvciBGTVRfRS4gVGhlIG5ldyBmb3JtYXR0aW5nIHJlcXVpcmVt ZW50cyBpbnRlcmZlcmUgd2l0aCB0aGlzCiAgICBwcm9jZXNzIHdoZW4gYSBGTVRfRyBmbG9h dCBzdHJpbmcgaXMgYmVpbmcgYnVpbHQuICBUbyBhdm9pZCB0aGlzLCBhIG5ldwogICAgY29t cG9uZW50IGNhbGxlZCAncHVzaGVkJyBpcyBhZGRlZCB0byB0aGUgZm5vZGUgc3RydWN0dXJl IHRvIHNhdmUgdGhpcwogICAgY29uZGl0aW9uLiAgVGhlICdwdXNoZWQnIGNvbmRpdGlvbiBp cyB0aGVuIHVzZWQgdG8gYnlwYXNzIHBvcnRpb25zIG9mCiAgICB0aGUgbmV3IEVTLEUsRU4s IGFuZCBEIGZvcm1hdHRpbmcsIGZhbGxpbmcgdGhyb3VnaCB0byB0aGUgZXhpc3RpbmcKICAg IGRlZmF1bHQgZm9ybWF0dGluZyB3aGljaCBpcyByZXRhaW5lZC4KICAgIAogICAgbGliZ2Zv cnRyYW4vQ2hhbmdlTG9nOgogICAgCiAgICAgICAgICAgICogaW8vZm9ybWF0LmMgKGdldF9m bm9kZSk6IFVwZGF0ZSBpbml0aWFsaXphdGlvbiBvZiBmbm9kZS4KICAgICAgICAgICAgKHBh cnNlX2Zvcm1hdF9saXN0KTogSW5pdGlhbGl6YXRpb24uCiAgICAgICAgICAgICogaW8vZm9y bWF0LmggKHN0cnVjdCBmbm9kZSk6IEFkZGVkIHRoZSBuZXcgJ3B1c2hlZCcgY29tcG9uZW50 LgogICAgICAgICAgICAqIGlvL3dyaXRlLmMgKHNlbGVjdF9idWZmZXIpOiBXaGl0ZXNwYWNl LgogICAgICAgICAgICAod3JpdGVfcmVhbCk6IFdoaXRlc3BhY2UuCiAgICAgICAgICAgICh3 cml0ZV9yZWFsX3cwKTogQWRqdXN0IGxvZ2ljIGZvciB0aGUgZCA9PSAwIGNvbmRpdGlvbi4K ICAgICAgICAgICAgKiBpby93cml0ZV9mbG9hdC5kZWYgKGRldGVybWluZV9wcmVjaXNpb24p OiBXaGl0ZXNwYWNlLgogICAgICAgICAgICAoYnVpbGRfZmxvYXRfc3RyaW5nKTogQ2FsY3Vs YXRlIHdpZHRoIG9mIC4uRTAgZXhwb25lbnRzIGFuZAogICAgICAgICAgICBhZGp1c3QgbG9n aWMgYWNjb3JkaW5nbHkuCiAgICAgICAgICAgIChidWlsZF9pbmZuYW5fc3RyaW5nKTogV2hp dGVzcGFjZS4KICAgICAgICAgICAgKENBTENVTEFURV9FWFApOiBXaGl0ZXNwYWNlLgogICAg ICAgICAgICAocXVhZG1hdGhfc25wcmludGYpOiBXaGl0ZXNwYWNlLgogICAgICAgICAgICAo ZGV0ZXJtaW5lX2VuX3ByZWNpc2lvbik6IFdoaXRlc3BhY2UuCiAgICAKICAgIGdjYy90ZXN0 c3VpdGUvQ2hhbmdlTG9nOgogICAgCiAgICAgICAgICAgICogZ2ZvcnRyYW4uZGcvZm10X2Vy cm9yXzEwLmY6IFNob3cgRCswIGV4cG9uZW50LgogICAgICAgICAgICAqIGdmb3J0cmFuLmRn L3ByOTY0MzZfNC5mOTA6IFNob3cgRSswIGV4cG9uZW50LgogICAgICAgICAgICAqIGdmb3J0 cmFuLmRnL3ByOTY0MzZfNS5mOTA6IFNob3cgRSswIGV4cG9uZW50LgogICAgICAgICAgICAq IGdmb3J0cmFuLmRnL3ByMTExMDIyLmY5MDogTmV3IHRlc3QuCgpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9mbXRfZXJyb3JfMTAuZiBiL2djYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvZm10X2Vycm9yXzEwLmYKaW5kZXggNmUxYTVmNjBiZWEuLmZjNjYyMGE2 MGE2IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2ZtdF9lcnJvcl8x MC5mCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZm10X2Vycm9yXzEwLmYKQEAg LTE4LDcgKzE4LDcgQEAKIAogICAgICAgc3RyID0gJygxcGQwLjE1KScKICAgICAgIHdyaXRl IChsaW5lLHN0cixpb3N0YXQ9aXN0YXQsIGlvbXNnPW1zZykgMS4wZDAKLSAgICAgIGlmIChs aW5lLm5lLiIxLjAwMDAwMDAwMDAwMDAwMCIpIFNUT1AgNQorICAgICAgaWYgKGxpbmUubmUu IjEuMDAwMDAwMDAwMDAwMDAwRCswIikgU1RPUCA1CiAgICAgICByZWFkICgqLHN0cixpb3N0 YXQ9aXN0YXQsIGlvbXNnPW1zZykgeAogICAgICAgaWYgKGlzdGF0Lm5lLjUwMDYgLm9yLiBt c2coMToxMCkubmUuIlplcm8gd2lkdGgiKSBTVE9QIDYKICAgICAgIGlmICh4Lm5lLjU1NS4y NSkgU1RPUCA3CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3ByMTEx MDIyLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvcHIxMTEwMjIuZjkwCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lZWY1NWZmNWNlMAotLS0gL2Rl di9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvcHIxMTEwMjIuZjkwCkBA IC0wLDAgKzEsNzIgQEAKKyEgeyBkZy1kbyBydW4gfQorcHJvZ3JhbSBwcjExMTAyMgorICBj aGFyYWN0ZXIoMjApIDo6IGJ1ZmZlcgorICB3cml0ZShidWZmZXIsIihFTjAuM0UwKSIpIC42 NjYwXzQKKyAgaWYgKGJ1ZmZlci5uZS4iNjY2LjAwMEUtMyIpIHN0b3AgMQorICB3cml0ZShi dWZmZXIsIihFTjAuM0UwKSIpIDYuNjYwXzQKKyAgaWYgKGJ1ZmZlci5uZS4iNi42NjBFKzAi KSBzdG9wIDIKKyAgd3JpdGUoYnVmZmVyLCIoRU4wLjNFMCkiKSA2Ni42MF80CisgIGlmIChi dWZmZXIubmUuIjY2LjYwMEUrMCIpIHN0b3AgMworICB3cml0ZShidWZmZXIsIihFTjAuM0Uw KSIpIDY2Ni4wXzQKKyAgaWYgKGJ1ZmZlci5uZS4iNjY2LjAwMEUrMCIpIHN0b3AgNAorICB3 cml0ZShidWZmZXIsIihFTjAuM0UwKSIpIDY2NjAuMF80CisgIGlmIChidWZmZXIubmUuIjYu NjYwRSszIikgc3RvcCA1CisgIHdyaXRlKGJ1ZmZlciwiKEVOMC4zRTApIikgNjY2MDAuMF80 CisgIGlmIChidWZmZXIubmUuIjY2LjYwMEUrMyIpIHN0b3AgNgorICAKKyAgd3JpdGUoYnVm ZmVyLCIoRU4wLjBFMCkiKSA2NjYuMF80CisgIGlmIChidWZmZXIubmUuIjY2Ni5FKzAiKSBz dG9wIDcKKyAgd3JpdGUoYnVmZmVyLCIoRU4wLjBFMSkiKSA2NjYuMF80CisgIGlmIChidWZm ZXIubmUuIjY2Ni5FKzAiKSBzdG9wIDgKKyAgd3JpdGUoYnVmZmVyLCIoRU4wLjBFMikiKSA2 NjYuMF80CisgIGlmIChidWZmZXIubmUuIjY2Ni5FKzAwIikgc3RvcCA5CisgIHdyaXRlKGJ1 ZmZlciwiKEVOMC4wRTMpIikgNjY2LjBfNAorICBpZiAoYnVmZmVyLm5lLiI2NjYuRSswMDAi KSBzdG9wIDEwCisgIHdyaXRlKGJ1ZmZlciwiKEVOMC4wRTQpIikgNjY2LjBfNAorICBpZiAo YnVmZmVyLm5lLiI2NjYuRSswMDAwIikgc3RvcCAxMQorICB3cml0ZShidWZmZXIsIihFTjAu MEU1KSIpIDY2Ni4wXzQKKyAgaWYgKGJ1ZmZlci5uZS4iNjY2LkUrMDAwMDAiKSBzdG9wIDEy CisgIHdyaXRlKGJ1ZmZlciwiKEVOMC4wRTYpIikgNjY2LjBfNAorICBpZiAoYnVmZmVyLm5l LiI2NjYuRSswMDAwMDAiKSBzdG9wIDEzCisgIAorICB3cml0ZShidWZmZXIsIihFUzAuM0Uw KSIpIC42NjYwXzQKKyAgaWYgKGJ1ZmZlci5uZS4iNi42NjBFLTEiKSBzdG9wIDE0CisgIHdy aXRlKGJ1ZmZlciwiKEVTMC4zRTApIikgNi42NjBfNAorICBpZiAoYnVmZmVyLm5lLiI2LjY2 MEUrMCIpIHN0b3AgMTUKKyAgd3JpdGUoYnVmZmVyLCIoRVMwLjNFMCkiKSA2Ni42MF80Cisg IGlmIChidWZmZXIubmUuIjYuNjYwRSsxIikgc3RvcCAxNgorICB3cml0ZShidWZmZXIsIihF UzAuM0UwKSIpIDY2Ni4wXzQKKyAgaWYgKGJ1ZmZlci5uZS4iNi42NjBFKzIiKSBzdG9wIDE3 CisgIHdyaXRlKGJ1ZmZlciwiKEVTMC4zRTApIikgNjY2MC4wXzQKKyAgaWYgKGJ1ZmZlci5u ZS4iNi42NjBFKzMiKSBzdG9wIDE4CisgIHdyaXRlKGJ1ZmZlciwiKEVTMC4zRTApIikgNjY2 MDAuMF80CisgIGlmIChidWZmZXIubmUuIjYuNjYwRSs0Iikgc3RvcCAxOQorICAKKyAgd3Jp dGUoYnVmZmVyLCIoRVMwLjBFMCkiKSA2NjYuMF80CisgIGlmIChidWZmZXIubmUuIjcuRSsy Iikgc3RvcCAyMAorICB3cml0ZShidWZmZXIsIihFUzAuMEUxKSIpIDY2Ni4wXzQKKyAgaWYg KGJ1ZmZlci5uZS4iNy5FKzIiKSBzdG9wIDIxCisgIHdyaXRlKGJ1ZmZlciwiKEVTMC4wRTIp IikgNjY2LjBfNAorICBpZiAoYnVmZmVyLm5lLiI3LkUrMDIiKSBzdG9wIDIyCisgIHdyaXRl KGJ1ZmZlciwiKEVTMC4wRTMpIikgNjY2LjBfNAorICBpZiAoYnVmZmVyLm5lLiI3LkUrMDAy Iikgc3RvcCAyMworICB3cml0ZShidWZmZXIsIihFUzAuMEU0KSIpIDY2Ni4wXzQKKyAgaWYg KGJ1ZmZlci5uZS4iNy5FKzAwMDIiKSBzdG9wIDI0CisgIHdyaXRlKGJ1ZmZlciwiKEVTMC4w RTUpIikgNjY2LjBfNAorICBpZiAoYnVmZmVyLm5lLiI3LkUrMDAwMDIiKSBzdG9wIDI1Cisg IHdyaXRlKGJ1ZmZlciwiKEVTMC4wRTYpIikgNjY2LjBfNAorICBpZiAoYnVmZmVyLm5lLiI3 LkUrMDAwMDAyIikgc3RvcCAyNgorICAKKyAgd3JpdGUoYnVmZmVyLCIoRTAuM0UwKSIpIC42 NjYwXzQKKyAgaWYgKGJ1ZmZlci5uZS4iMC42NjZFKzAiKSBzdG9wIDI3CisgIHdyaXRlKGJ1 ZmZlciwiKEUwLjMpIikgLjY2NjBfNAorICBpZiAoYnVmZmVyLm5lLiIwLjY2NkUrMCIpIHN0 b3AgMjgKKyAgd3JpdGUoYnVmZmVyLCIoRTAuMUUwKSIpIC42NjYwXzQKKyAgaWYgKGJ1ZmZl ci5uZS4iMC43RSswIikgc3RvcCAyOQorICB3cml0ZShidWZmZXIsIihFMC4xKSIpIC42NjYw XzQKKyAgaWYgKGJ1ZmZlci5uZS4iMC43RSswIikgc3RvcCAzMAorICB3cml0ZShidWZmZXIs IihFMC41RTApIikgLjY2NjBfNAorICBpZiAoYnVmZmVyLm5lLiIwLjY2NjAwRSswIikgc3Rv cCAzMQorICB3cml0ZShidWZmZXIsIihFMC41KSIpIC42NjYwXzQKKyAgaWYgKGJ1ZmZlci5u ZS4iMC42NjYwMEUrMCIpIHN0b3AgMzIKK2VuZCBwcm9ncmFtIHByMTExMDIyCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3ByOTY0MzZfNC5mOTAgYi9nY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL3ByOTY0MzZfNC5mOTAKaW5kZXggMzM1Y2U1ZmIwMDkuLjdk MmNmZWYwZWY4IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3ByOTY0 MzZfNC5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9wcjk2NDM2XzQuZjkw CkBAIC0xNyw5ICsxNyw5IEBAIHdyaXRlKGJ1ZmZlcixmbXQpICI+IiwgMy4wLCAiPCIKIGlm IChidWZmZXIubmUuIj4wLjMwRSsxPCIpIHN0b3AgNAogZm10ID0gIigxYTEsZW4wLjIsMWEx KSIKIHdyaXRlKGJ1ZmZlcixmbXQpICI+IiwgMy4wLCAiPCIKLWlmIChidWZmZXIubmUuIj4z LjAwPCIpIHN0b3AgNQoraWYgKGJ1ZmZlci5uZS4iPjMuMDBFKzA8Iikgc3RvcCA1CiBmbXQg PSAiKDFhMSxlczAuMiwxYTEpIgogd3JpdGUoYnVmZmVyLGZtdCkgIj4iLCAzLjAsICI8Igot aWYgKGJ1ZmZlci5uZS4iPjMuMDA8Iikgc3RvcCA2CitpZiAoYnVmZmVyLm5lLiI+My4wMEUr MDwiKSBzdG9wIDYKIGVuZAogCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL3ByOTY0MzZfNS5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3ByOTY0MzZf NS5mOTAKaW5kZXggYTQ1ZGY4OTYzYzguLjM4NzBkOTg4Zjk3IDEwMDY0NAotLS0gYS9nY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL3ByOTY0MzZfNS5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nZm9ydHJhbi5kZy9wcjk2NDM2XzUuZjkwCkBAIC0xNyw5ICsxNyw5IEBAIHdyaXRlKGJ1 ZmZlcixmbXQpICI+IiwgMy4wLCAiPCIKIGlmIChidWZmZXIubmUuIj4wLjMwRSsxPCIpIHN0 b3AgNAogZm10ID0gIigxYTEsZW4wLjIsMWExKSIKIHdyaXRlKGJ1ZmZlcixmbXQpICI+Iiwg My4wLCAiPCIKLWlmIChidWZmZXIubmUuIj4zLjAwPCIpIHN0b3AgNQoraWYgKGJ1ZmZlci5u ZS4iPjMuMDBFKzA8Iikgc3RvcCA1CiBmbXQgPSAiKDFhMSxlczAuMiwxYTEpIgogd3JpdGUo YnVmZmVyLGZtdCkgIj4iLCAzLjAsICI8IgotaWYgKGJ1ZmZlci5uZS4iPjMuMDA8Iikgc3Rv cCA2CitpZiAoYnVmZmVyLm5lLiI+My4wMEUrMDwiKSBzdG9wIDYKIGVuZAogCmRpZmYgLS1n aXQgYS9saWJnZm9ydHJhbi9pby9mb3JtYXQuYyBiL2xpYmdmb3J0cmFuL2lvL2Zvcm1hdC5j CmluZGV4IGFjOTJhY2MxNzVjLi5mMzlkNmVjYzY1YiAxMDA2NDQKLS0tIGEvbGliZ2ZvcnRy YW4vaW8vZm9ybWF0LmMKKysrIGIvbGliZ2ZvcnRyYW4vaW8vZm9ybWF0LmMKQEAgLTMyLDcg KzMyLDcgQEAgc2VlIHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USU1FIHJl c3BlY3RpdmVseS4gIElmIG5vdCwgc2VlCiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAKIAotc3Rh dGljIGNvbnN0IGZub2RlIGNvbG9uX25vZGUgPSB7IEZNVF9DT0xPTiwgMCwgTlVMTCwgTlVM TCwge3sgMCwgMCwgMCB9fSwgMCwKK3N0YXRpYyBjb25zdCBmbm9kZSBjb2xvbl9ub2RlID0g eyBGTVRfQ09MT04sIEZNVF9OT05FLCAwLCBOVUxMLCBOVUxMLCB7eyAwLCAwLCAwIH19LCAw LAogCQkJCSAgTlVMTCB9OwogCiAvKiBFcnJvciBtZXNzYWdlcy4gKi8KQEAgLTIyNSw2ICsy MjUsNyBAQCBnZXRfZm5vZGUgKGZvcm1hdF9kYXRhICpmbXQsIGZub2RlICoqaGVhZCwgZm5v ZGUgKip0YWlsLCBmb3JtYXRfdG9rZW4gdCkKICAgICB9CiAgIGYgPSBmbXQtPmF2YWlsKys7 CiAgIG1lbXNldCAoZiwgJ1wwJywgc2l6ZW9mIChmbm9kZSkpOworICBmLT5wdXNoZWQgPSBG TVRfTk9ORTsKIAogICBpZiAoKmhlYWQgPT0gTlVMTCkKICAgICAqaGVhZCA9ICp0YWlsID0g ZjsKQEAgLTkyMiw2ICs5MjMsNyBAQCBwYXJzZV9mb3JtYXRfbGlzdCAoc3RfcGFyYW1ldGVy X2R0ICpkdHAsIGJvb2wgKnNlZW5fZGQpCiAgICAgICAqc2Vlbl9kZCA9IHRydWU7CiAgICAg ICBnZXRfZm5vZGUgKGZtdCwgJmhlYWQsICZ0YWlsLCB0KTsKICAgICAgIHRhaWwtPnJlcGVh dCA9IHJlcGVhdDsKKyAgICAgIHRhaWwtPnB1c2hlZCA9IEZNVF9OT05FOwogCiAgICAgICB1 ID0gZm9ybWF0X2xleCAoZm10KTsKICAgICAgIApkaWZmIC0tZ2l0IGEvbGliZ2ZvcnRyYW4v aW8vZm9ybWF0LmggYi9saWJnZm9ydHJhbi9pby9mb3JtYXQuaAppbmRleCA5ZTFlOTAyYjk0 NC4uMmQ1ZWE3ZDRkMmMgMTAwNjQ0Ci0tLSBhL2xpYmdmb3J0cmFuL2lvL2Zvcm1hdC5oCisr KyBiL2xpYmdmb3J0cmFuL2lvL2Zvcm1hdC5oCkBAIC0zMyw2ICszMyw3IEBAIHNlZSB0aGUg ZmlsZXMgQ09QWUlORzMgYW5kIENPUFlJTkcuUlVOVElNRSByZXNwZWN0aXZlbHkuICBJZiBu b3QsIHNlZQogc3RydWN0IGZub2RlCiB7CiAgIGZvcm1hdF90b2tlbiBmb3JtYXQ7CisgIGZv cm1hdF90b2tlbiBwdXNoZWQ7CiAgIGludCByZXBlYXQ7CiAgIHN0cnVjdCBmbm9kZSAqbmV4 dDsKICAgY2hhciAqc291cmNlOwpkaWZmIC0tZ2l0IGEvbGliZ2ZvcnRyYW4vaW8vd3JpdGUu YyBiL2xpYmdmb3J0cmFuL2lvL3dyaXRlLmMKaW5kZXggNDliZWFlZTQ3MjQuLjFhN2MxMjM0 NWY5IDEwMDY0NAotLS0gYS9saWJnZm9ydHJhbi9pby93cml0ZS5jCisrKyBiL2xpYmdmb3J0 cmFuL2lvL3dyaXRlLmMKQEAgLTE1NzQsNyArMTU3NCw3IEBAIHNlbGVjdF9idWZmZXIgKHN0 X3BhcmFtZXRlcl9kdCAqZHRwLCBjb25zdCBmbm9kZSAqZiwgaW50IHByZWNpc2lvbiwKIAkg ICAgICAgY2hhciAqYnVmLCBzaXplX3QgKnNpemUsIGludCBraW5kKQogewogICBjaGFyICpy ZXN1bHQ7Ci0gIAorCiAgIC8qIFRoZSBidWZmZXIgbmVlZHMgYXQgbGVhc3Qgb25lIG1vcmUg Ynl0ZSB0byBhbGxvdyByb29tIGZvcgogICAgICBub3JtYWxpemluZyBhbmQgMSB0byBob2xk IG51bGwgdGVybWluYXRvci4gICovCiAgICpzaXplID0gc2l6ZV9mcm9tX2tpbmQgKGR0cCwg Ziwga2luZCkgKyBwcmVjaXNpb24gKyAxICsgMTsKQEAgLTE3NTcsNyArMTc1Nyw3IEBAIHdy aXRlX3JlYWwgKHN0X3BhcmFtZXRlcl9kdCAqZHRwLCBjb25zdCBjaGFyICpzb3VyY2UsIGlu dCBraW5kKQogCiAgIC8qIFNjcmF0Y2ggYnVmZmVyIHRvIGhvbGQgZmluYWwgcmVzdWx0LiAg Ki8KICAgYnVmZmVyID0gc2VsZWN0X2J1ZmZlciAoZHRwLCAmZiwgcHJlY2lzaW9uLCBidWZf c3RhY2ssICZidWZfc2l6ZSwga2luZCk7Ci0gIAorCiAgIGdldF9mbG9hdF9zdHJpbmcgKGR0 cCwgJmYsIHNvdXJjZSAsIGtpbmQsIDEsIGJ1ZmZlciwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHByZWNpc2lvbiwgYnVmX3NpemUsIHJlc3VsdCwgJmZsdF9zdHJfbGVuKTsKICAg d3JpdGVfZmxvYXRfc3RyaW5nIChkdHAsIHJlc3VsdCwgZmx0X3N0cl9sZW4pOwpAQCAtMTc4 NSw4ICsxNzg1LDYgQEAgd3JpdGVfcmVhbF93MCAoc3RfcGFyYW1ldGVyX2R0ICpkdHAsIGNv bnN0IGNoYXIgKnNvdXJjZSwgaW50IGtpbmQsCiAKICAgc2V0X2Zub2RlX2RlZmF1bHQgKGR0 cCwgJmZmLCBraW5kKTsKIAotICBpZiAoZi0+dS5yZWFsLmQgPiAwKQotICAgIGZmLnUucmVh bC5kID0gZi0+dS5yZWFsLmQ7CiAgIGZmLmZvcm1hdCA9IGYtPmZvcm1hdDsKIAogICAvKiBG b3IgRk1UX0csIENvbXBlbnNhdGUgZm9yIGV4dHJhIGRpZ2l0cyB3aGVuIHVzaW5nIHNjYWxl IGZhY3RvciwgZApAQCAtMTc5NCwxMSArMTc5MiwxNyBAQCB3cml0ZV9yZWFsX3cwIChzdF9w YXJhbWV0ZXJfZHQgKmR0cCwgY29uc3QgY2hhciAqc291cmNlLCBpbnQga2luZCwKICAgICAg aXMgdXNlZC4gICovCiAgIGlmIChmLT5mb3JtYXQgPT0gRk1UX0cpCiAgICAgeworICAgICAg aWYgKGYtPnUucmVhbC5kID4gMCkKKwlmZi51LnJlYWwuZCA9IGYtPnUucmVhbC5kOwogICAg ICAgaWYgKGR0cC0+dS5wLnNjYWxlX2ZhY3RvciA+IDAgJiYgZi0+dS5yZWFsLmQgPT0gMCkK IAljb21wX2QgPSAxOwogICAgICAgZWxzZQogCWNvbXBfZCA9IDA7CiAgICAgfQorICBlbHNl CisgICAgaWYgKGYtPnUucmVhbC5kID49IDApCisgICAgICBmZi51LnJlYWwuZCA9IGYtPnUu cmVhbC5kOworCiAKICAgaWYgKGYtPnUucmVhbC5lID49IDApCiAgICAgZmYudS5yZWFsLmUg PSBmLT51LnJlYWwuZTsKZGlmZiAtLWdpdCBhL2xpYmdmb3J0cmFuL2lvL3dyaXRlX2Zsb2F0 LmRlZiBiL2xpYmdmb3J0cmFuL2lvL3dyaXRlX2Zsb2F0LmRlZgppbmRleCAxZjg0MzkxNDU2 My4uMmQ2OGIxZDM1M2MgMTAwNjQ0Ci0tLSBhL2xpYmdmb3J0cmFuL2lvL3dyaXRlX2Zsb2F0 LmRlZgorKysgYi9saWJnZm9ydHJhbi9pby93cml0ZV9mbG9hdC5kZWYKQEAgLTEsNiArMSw2 IEBACiAvKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAyNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KICAgIENvbnRyaWJ1dGVkIGJ5IEFuZHkgVmF1Z2h0Ci0gICBXcml0ZSBmbG9h dCBjb2RlIGZhY3RvcmluZyB0byB0aGlzIGZpbGUgYnkgSmVycnkgRGVMaXNsZSAgIAorICAg V3JpdGUgZmxvYXQgY29kZSBmYWN0b3JpbmcgdG8gdGhpcyBmaWxlIGJ5IEplcnJ5IERlTGlz bGUKICAgIEYyMDAzIEkvTyBzdXBwb3J0IGNvbnRyaWJ1dGVkIGJ5IEplcnJ5IERlTGlzbGUK IAogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBGb3J0cmFuIHJ1bnRpbWUgbGlicmFy eSAobGliZ2ZvcnRyYW4pLgpAQCAtODksOCArODksOCBAQCBkZXRlcm1pbmVfcHJlY2lzaW9u IChzdF9wYXJhbWV0ZXJfZHQgKiBkdHAsIGNvbnN0IGZub2RlICogZiwgaW50IGxlbikKICAg LyogSWYgdGhlIHNjYWxlIGZhY3RvciBoYXMgYSBsYXJnZSBuZWdhdGl2ZSB2YWx1ZSwgd2Ug bXVzdCBkbyBvdXIKICAgICAgb3duIHJvdW5kaW5nPyBVc2UgUk9VTkQ9J05FQVJFU1QnLCB3 aGljaCBzaG91bGQgYmUgd2hhdCBzbnByaW50ZgogICAgICBpcyB1c2luZyBhcyB3ZWxsLiAg Ki8KLSAgaWYgKHByZWNpc2lvbiA8IDAgJiYgCi0gICAgICAoZHRwLT51LnAuY3VycmVudF91 bml0LT5yb3VuZF9zdGF0dXMgPT0gUk9VTkRfVU5TUEVDSUZJRUQgCisgIGlmIChwcmVjaXNp b24gPCAwICYmCisgICAgICAoZHRwLT51LnAuY3VycmVudF91bml0LT5yb3VuZF9zdGF0dXMg PT0gUk9VTkRfVU5TUEVDSUZJRUQKICAgICAgICB8fCBkdHAtPnUucC5jdXJyZW50X3VuaXQt PnJvdW5kX3N0YXR1cyA9PSBST1VORF9QUk9DREVGSU5FRCkpCiAgICAgZHRwLT51LnAuY3Vy cmVudF91bml0LT5yb3VuZF9zdGF0dXMgPSBST1VORF9ORUFSRVNUOwogCkBAIC0xNTQsNyAr MTU0LDcgQEAgYnVpbGRfZmxvYXRfc3RyaW5nIChzdF9wYXJhbWV0ZXJfZHQgKmR0cCwgY29u c3QgZm5vZGUgKmYsIGNoYXIgKmJ1ZmZlciwKICAgICBpbnRlcm5hbF9lcnJvciAoJmR0cC0+ Y29tbW9uLCAiVW5zcGVjaWZpZWQgcHJlY2lzaW9uIik7CiAKICAgc2lnbiA9IGNhbGN1bGF0 ZV9zaWduIChkdHAsIHNpZ25fYml0KTsKLSAgCisKICAgLyogQ2FsY3VsYXRlIHRvdGFsIG51 bWJlciBvZiBkaWdpdHMuICAqLwogICBpZiAoZnQgPT0gRk1UX0YpCiAgICAgbmRpZ2l0cyA9 IG5wcmludGVkIC0gMjsKQEAgLTM1MSw3ICszNTEsNyBAQCBidWlsZF9mbG9hdF9zdHJpbmcg KHN0X3BhcmFtZXRlcl9kdCAqZHRwLCBjb25zdCBmbm9kZSAqZiwgY2hhciAqYnVmZmVyLAog CSBsZXQgc25wcmludGYgaGFuZGxlIHRoZSByb3VuZGluZy4gIE9uIHN5c3RlbSBjbGFpbWlu ZyBzdXBwb3J0CiAJIGZvciBJRUVFIDc1NCwgdGhpcyBvdWdodCB0byBiZSByb3VuZCB0byBu ZWFyZXN0LCB0aWVzIHRvCiAJIGV2ZW4sIGNvcnJlc3BvbmRpbmcgdG8gdGhlIEZvcnRyYW4g Uk9VTkQ9J05FQVJFU1QnLiAgKi8KLSAgICAgIGNhc2UgUk9VTkRfUFJPQ0RFRklORUQ6IAor ICAgICAgY2FzZSBST1VORF9QUk9DREVGSU5FRDoKICAgICAgIGNhc2UgUk9VTkRfVU5TUEVD SUZJRUQ6CiAgICAgICBjYXNlIFJPVU5EX1pFUk86IC8qIERvIG5vdGhpbmcgYW5kIHRydW5j YXRpb24gb2NjdXJzLiAgKi8KIAlnb3RvIHNraXA7CkBAIC00MDksOSArNDA5LDkgQEAgYnVp bGRfZmxvYXRfc3RyaW5nIChzdF9wYXJhbWV0ZXJfZHQgKmR0cCwgY29uc3QgZm5vZGUgKmYs IGNoYXIgKmJ1ZmZlciwKIAlnb3RvIGRvX3JuZDsKICAgICB9CiAgIGdvdG8gc2tpcDsKLSAg ICAKKwogICBkb19ybmQ6Ci0gCisKICAgaWYgKG5iZWZvcmUgKyBuYWZ0ZXIgPT0gMCkKICAg ICAvKiBIYW5kbGUgdGhlIGNhc2UgRncuMCBhbmQgdmFsdWUgPCAxLjAgKi8KICAgICB7CkBA IC00NzYsNDkgKzQ3Niw3MSBAQCBidWlsZF9mbG9hdF9zdHJpbmcgKHN0X3BhcmFtZXRlcl9k dCAqZHRwLCBjb25zdCBmbm9kZSAqZiwgY2hhciAqYnVmZmVyLAogCiAgIHNraXA6CiAKLSAg LyogQ2FsY3VsYXRlIHRoZSBmb3JtYXQgb2YgdGhlIGV4cG9uZW50IGZpZWxkLiAgKi8KLSAg aWYgKGV4cGNoYXIgJiYgIShkdHAtPnUucC5nMF9ub19ibGFua3MgJiYgZSA9PSAwKSkKKyAg LyogQ2FsY3VsYXRlIHRoZSBmb3JtYXQgb2YgdGhlIGV4cG9uZW50IGZpZWxkLiAgVGhlIG51 bWJlciBvZiBleHBvbmVudCBkaWdpdHMKKyAgICAgcmVxdWlyZWQgaXMgbmVlZGVkIHRvIGRl dGVybWluZSBwYWRkaW5nIG9mIHRoZSBmbG9hdCBzdHJpbmcgYmVmb3JlIHRoZQorICAgICBl eHBlbmVudCBpcyB3cml0dGVuIGRvd24uICovCisgIGVkaWdpdHMgPSAwOyAvLyBBc3N1bWUg dGhlcmUgaXMgbm8gZXhwb25lbnQgY2hhcmFjdGVyIHNldC4KKyAgaWYgKGV4cGNoYXIpCiAg ICAgewotICAgICAgZWRpZ2l0cyA9IDE7Ci0gICAgICBmb3IgKGkgPSBhYnMgKGUpOyBpID49 IDEwOyBpIC89IDEwKQotCWVkaWdpdHMrKzsKLQotICAgICAgaWYgKGYtPnUucmVhbC5lIDwg MCkKLQl7Ci0JICAvKiBXaWR0aCBub3Qgc3BlY2lmaWVkLiAgTXVzdCBiZSBubyBtb3JlIHRo YW4gMyBkaWdpdHMuICAqLwotCSAgaWYgKGUgPiA5OTkgfHwgZSA8IC05OTkpCi0JICAgIGVk aWdpdHMgPSAtMTsKLQkgIGVsc2UKKyAgICAgIHN3aXRjaCAoZnQpCisgICAgICB7CisJY2Fz ZSBGTVRfRDoKKwljYXNlIEZNVF9FOgorCWNhc2UgRk1UX0VOOgorCWNhc2UgRk1UX0VTOgor CSAgaWYgKGYtPnB1c2hlZCA9PSBGTVRfTk9ORSkKIAkgICAgewotCSAgICAgIGVkaWdpdHMg PSA0OwotCSAgICAgIGlmIChlID4gOTkgfHwgZSA8IC05OSkKLQkJZXhwY2hhciA9ICcgJzsK KwkgICAgICBpZiAoZi0+dS5yZWFsLmUgPT0gMCAmJiBlID09IDApCisJCXsKKwkJICBlZGln aXRzID0gMzsKKwkJICBicmVhazsKKwkJfQorCSAgICAgIGVsc2UgaWYgKGYtPnUucmVhbC5l ID4gMCkKKwkJZWRpZ2l0cyA9IGYtPnUucmVhbC5lICsgMjsKIAkgICAgfQotCX0KLSAgICAg IGVsc2UgaWYgKGYtPnUucmVhbC5lID09IDApCi0JewotCSAgLyogWmVybyB3aWR0aCBzcGVj aWZpZWQsIG5vIGxlYWRpbmcgemVyb3MgaW4gZXhwb25lbnQgICovCi0JICBpZiAoZSA+IDk5 OSB8fCBlIDwgLTk5OSkKLQkgICAgZWRpZ2l0cyA9IDY7Ci0JICBlbHNlIGlmIChlID4gOTkg fHwgZSA8IC05OSkKLQkgICAgZWRpZ2l0cyA9IDU7Ci0JICBlbHNlIGlmIChlID4gOSB8fCBl IDwgLTkpCi0JICAgIGVkaWdpdHMgPSA0OwotCSAgZWxzZQotCSAgICBlZGlnaXRzID0gMzsK LQl9Ci0gICAgICBlbHNlCi0JewotCSAgLyogRXhwb25lbnQgd2lkdGggc3BlY2lmaWVkLCBj aGVjayBpdCBpcyB3aWRlIGVub3VnaC4gICovCi0JICBpZiAoZWRpZ2l0cyA+IGYtPnUucmVh bC5lKQotCSAgICBlZGlnaXRzID0gLTE7Ci0JICBlbHNlCi0JICAgIGVkaWdpdHMgPSBmLT51 LnJlYWwuZSArIDI7Ci0JfQotICAgIH0KLSAgZWxzZQotICAgIGVkaWdpdHMgPSAwOworCS8q IEZhbGwgdGhyb3VnaC4gICovCisJZGVmYXVsdDoKKwkgIGlmICghKGR0cC0+dS5wLmcwX25v X2JsYW5rcyAmJiBlID09IDApKQorCSAgICB7CisJICAgICAgZWRpZ2l0cyA9IDE7CisJICAg ICAgZm9yIChpID0gYWJzIChlKTsgaSA+PSAxMDsgaSAvPSAxMCkKKwkJZWRpZ2l0cysrOwog CisJICAgICAgaWYgKGYtPnUucmVhbC5lIDwgMCkKKwkJeworCQkgIC8qIFdpZHRoIG5vdCBz cGVjaWZpZWQuICBNdXN0IGJlIG5vIG1vcmUgdGhhbiAzIGRpZ2l0cy4gICovCisJCSAgaWYg KGUgPiA5OTkgfHwgZSA8IC05OTkpCisJCSAgICBlZGlnaXRzID0gLTE7CisJCSAgZWxzZQor CQkgICAgeworCQkgICAgICBlZGlnaXRzID0gNDsKKwkJICAgICAgaWYgKGUgPiA5OSB8fCBl IDwgLTk5KQorCQkJZXhwY2hhciA9ICcgJzsKKwkJICAgIH0KKwkJfQorCSAgICAgIGVsc2Ug aWYgKGYtPnUucmVhbC5lID09IDApCisJCXsKKwkJICAvKiBaZXJvIHdpZHRoIHNwZWNpZmll ZCwgbm8gbGVhZGluZyB6ZXJvcyBpbiBleHBvbmVudCAgKi8KKwkJICBpZiAoZSA+IDk5OSB8 fCBlIDwgLTk5OSkKKwkJICAgIGVkaWdpdHMgPSA2OworCQkgIGVsc2UgaWYgKGUgPiA5OSB8 fCBlIDwgLTk5KQorCQkgICAgZWRpZ2l0cyA9IDU7CisJCSAgZWxzZSBpZiAoZSA+IDkgfHwg ZSA8IC05KQorCQkgICAgZWRpZ2l0cyA9IDQ7CisJCSAgZWxzZQorCQkgICAgZWRpZ2l0cyA9 IDM7CisJCX0KKwkgICAgICBlbHNlCisJCXsKKwkJICAvKiBFeHBvbmVudCB3aWR0aCBzcGVj aWZpZWQsIGNoZWNrIGl0IGlzIHdpZGUgZW5vdWdoLiAgKi8KKwkJICBpZiAoZWRpZ2l0cyA+ IGYtPnUucmVhbC5lKQorCQkgICAgZWRpZ2l0cyA9IC0xOworCQkgIGVsc2UKKwkJICAgIGVk aWdpdHMgPSBmLT51LnJlYWwuZSArIDI7CisJCX0KKwkgICAgfQorICAgICAgfQorICB9CiAg IC8qIFNjYW4gdGhlIGRpZ2l0cyBzdHJpbmcgYW5kIGNvdW50IHRoZSBudW1iZXIgb2YgemVy b3MuICBJZiB3ZSBtYWtlIGl0CiAgICAgIGFsbCB0aGUgd2F5IHRocm91Z2ggdGhlIGxvb3As IHdlIGtub3cgdGhlIHZhbHVlIGlzIHplcm8gYWZ0ZXIgdGhlCiAgICAgIHJvdW5kaW5nIGNv bXBsZXRlZCBhYm92ZS4gICovCkBAIC02MzEsNyArNjUzLDcgQEAgYnVpbGRfZmxvYXRfc3Ry aW5nIChzdF9wYXJhbWV0ZXJfZHQgKmR0cCwgY29uc3QgZm5vZGUgKmYsIGNoYXIgKmJ1ZmZl ciwKICAgLyogU2V0IHRoZSBkZWNpbWFsIHBvaW50LiAgKi8KICAgKihwdXQrKykgPSBkdHAt PnUucC5jdXJyZW50X3VuaXQtPmRlY2ltYWxfc3RhdHVzID09IERFQ0lNQUxfUE9JTlQgPyAn LicgOiAnLCc7CiAgIGlmIChmdCA9PSBGTVRfRgotCSAgJiYgKGR0cC0+dS5wLmN1cnJlbnRf dW5pdC0+cm91bmRfc3RhdHVzID09IFJPVU5EX1VOU1BFQ0lGSUVEIAorCSAgJiYgKGR0cC0+ dS5wLmN1cnJlbnRfdW5pdC0+cm91bmRfc3RhdHVzID09IFJPVU5EX1VOU1BFQ0lGSUVECiAJ ICAgICAgfHwgZHRwLT51LnAuY3VycmVudF91bml0LT5yb3VuZF9zdGF0dXMgPT0gUk9VTkRf UFJPQ0RFRklORUQpKQogICAgIGRpZ2l0cysrOwogCkBAIC02NjEsMTYgKzY4Myw0OSBAQCBi dWlsZF9mbG9hdF9zdHJpbmcgKHN0X3BhcmFtZXRlcl9kdCAqZHRwLCBjb25zdCBmbm9kZSAq ZiwgY2hhciAqYnVmZmVyLAogICAgIH0KIAogICAvKiBTZXQgdGhlIGV4cG9uZW50LiAgKi8K LSAgaWYgKGV4cGNoYXIgJiYgIShkdHAtPnUucC5nMF9ub19ibGFua3MgJiYgZSA9PSAwKSkK KyAgaWYgKGV4cGNoYXIpCiAgICAgewotICAgICAgaWYgKGV4cGNoYXIgIT0gJyAnKQotCXsK LQkgICoocHV0KyspID0gZXhwY2hhcjsKLQkgIGVkaWdpdHMtLTsKKyAgICAgIHN3aXRjaCAo ZnQpCisgICAgICB7CisJY2FzZSBGTVRfRDoKKwljYXNlIEZNVF9FOgorCWNhc2UgRk1UX0VO OgorCWNhc2UgRk1UX0VTOgorCWlmIChmLT5wdXNoZWQgPT0gRk1UX05PTkUpCisJICB7CisJ ICAgIGlmICgoZi0+dS5yZWFsLmUgPT0gMCkgJiYgKGUgPT0gMCkpCisJICAgICAgeworCQkq KHB1dCsrKSA9IGV4cGNoYXI7CisJCWVkaWdpdHMtLTsKKwkJc25wcmludGYgKGJ1ZmZlciwg c2l6ZSwgIiUrMCpkIiwgZWRpZ2l0cywgZSk7CisJCW1lbWNweSAocHV0LCBidWZmZXIsIGVk aWdpdHMpOworCQlwdXQgKz0gZWRpZ2l0czsKKwkJYnJlYWs7CisJICAgICAgfQorCSAgICBp ZiAoZi0+dS5yZWFsLmUgPiAwKQorCSAgICAgIHsKKwkJKihwdXQrKykgPSBleHBjaGFyOwor CQllZGlnaXRzLS07CisJCXNucHJpbnRmIChidWZmZXIsIHNpemUsICIlKzAqZCIsIGVkaWdp dHMsIGUpOworCQltZW1jcHkgKHB1dCwgYnVmZmVyLCBlZGlnaXRzKTsKKwkJcHV0ICs9IGVk aWdpdHM7CisJCWJyZWFrOworCSAgICAgIH0KKwkgIH0KKwkgIC8qIEZhbGwgdGhyb3VnaC4g ICovCisJZGVmYXVsdDoKKwkgIGlmICghKGR0cC0+dS5wLmcwX25vX2JsYW5rcyAmJiBlID09 IDApKQorCSAgICB7CisJICAgICAgaWYgKGV4cGNoYXIgIT0gJyAnKQorCQl7CisJCSAgKihw dXQrKykgPSBleHBjaGFyOworCQkgIGVkaWdpdHMtLTsKKwkJfQorCSAgICAgIHNucHJpbnRm IChidWZmZXIsIHNpemUsICIlKzAqZCIsIGVkaWdpdHMsIGUpOworCSAgICAgIG1lbWNweSAo cHV0LCBidWZmZXIsIGVkaWdpdHMpOworCSAgICAgIHB1dCArPSBlZGlnaXRzOworCSAgICB9 CiAJfQotICAgICAgc25wcmludGYgKGJ1ZmZlciwgc2l6ZSwgIiUrMCpkIiwgZWRpZ2l0cywg ZSk7Ci0gICAgICBtZW1jcHkgKHB1dCwgYnVmZmVyLCBlZGlnaXRzKTsKLSAgICAgIHB1dCAr PSBlZGlnaXRzOwogICAgIH0KIAogICBpZiAoZHRwLT51LnAubm9fbGVhZGluZ19ibGFuaykK QEAgLTY4OCw3ICs3NDMsNyBAQCBidWlsZF9mbG9hdF9zdHJpbmcgKHN0X3BhcmFtZXRlcl9k dCAqZHRwLCBjb25zdCBmbm9kZSAqZiwgY2hhciAqYnVmZmVyLAogCiAgIC8qIE5VTEwgdGVy bWluYXRlIHRoZSBzdHJpbmcuICAqLwogICAqcHV0ID0gJ1wwJzsKLSAgCisKICAgcmV0dXJu OwogfQogCkBAIC03MTIsOSArNzY3LDkgQEAgYnVpbGRfaW5mbmFuX3N0cmluZyAoc3RfcGFy YW1ldGVyX2R0ICpkdHAsIGNvbnN0IGZub2RlICpmLCBpbnQgaXNuYW5fZmxhZywKICAgICAg IG5iID0gIGYtPnUucmVhbC53OwogICAgICAgKmxlbiA9IG5iOwogCi0gICAgICAvKiBJZiB0 aGUgZmllbGQgd2lkdGggaXMgemVybywgdGhlIHByb2Nlc3NvciBtdXN0IHNlbGVjdCBhIHdp ZHRoIAorICAgICAgLyogSWYgdGhlIGZpZWxkIHdpZHRoIGlzIHplcm8sIHRoZSBwcm9jZXNz b3IgbXVzdCBzZWxlY3QgYSB3aWR0aAogCSBub3QgemVyby4gIDQgaXMgY2hvc2VuIHRvIGFs bG93IG91dHB1dCBvZiAnLUluZicgb3IgJytJbmYnICovCi0gICAgIAorCiAgICAgICBpZiAo KG5iID09IDApIHx8IGR0cC0+dS5wLmcwX25vX2JsYW5rcykKIAl7CiAJICBpZiAoaXNuYW5f ZmxhZykKQEAgLTc0NiwxMiArODAxLDEyIEBAIGJ1aWxkX2luZm5hbl9zdHJpbmcgKHN0X3Bh cmFtZXRlcl9kdCAqZHRwLCBjb25zdCBmbm9kZSAqZiwgaW50IGlzbmFuX2ZsYWcsCiAJCX0K IAkgICAgICAvKiBUaGUgbmVnYXRpdmUgc2lnbiBpcyBtYW5kYXRvcnkgKi8KIAkgICAgICBm aW4gPSAnLSc7Ci0JICAgIH0gICAgCisJICAgIH0KIAkgIGVsc2UKIAkgICAgLyogVGhlIHBv c2l0aXZlIHNpZ24gaXMgb3B0aW9uYWwsIGJ1dCB3ZSBvdXRwdXQgaXQgZm9yCiAJICAgICAg IGNvbnNpc3RlbmN5ICovCiAJICAgIGZpbiA9ICcrJzsKLQkgICAgCisKIAkgIGlmIChuYiA+ IG1hcmspCiAJICAgIC8qIFdlIGhhdmUgcm9vbSwgc28gb3V0cHV0ICdJbmZpbml0eScgKi8K IAkgICAgbWVtY3B5KHAgKyBuYiAtIDgsICJJbmZpbml0eSIsIDgpOwpAQCAtODA5LDcgKzg2 NCw3IEBAIENBTENVTEFURV9FWFAoMTcpCiAvKiBEZWZpbmUgbWFjcm9zIHRvIGJ1aWxkIGNv ZGUgZm9yIGZvcm1hdF9mbG9hdC4gICovCiAKICAgLyogTm90ZTogQmVmb3JlIG91dHB1dF9m bG9hdCBpcyBjYWxsZWQsIHNucHJpbnRmIGlzIHVzZWQgdG8gcHJpbnQgdG8gYnVmZmVyIHRo ZQotICAgICBudW1iZXIgaW4gdGhlIGZvcm1hdCArRC5EREREZStkZGQuIAorICAgICBudW1i ZXIgaW4gdGhlIGZvcm1hdCArRC5EREREZStkZGQuCiAKICAgICAgIyAgIFRoZSByZXN1bHQg d2lsbCBhbHdheXMgY29udGFpbiBhIGRlY2ltYWwgcG9pbnQsIGV2ZW4gaWYgbm8KIAkgZGln aXRzIGZvbGxvdyBpdApAQCAtOTMyLDcgKzk4Nyw3IEBAIHF1YWRtYXRoX3NucHJpbnRmIChi dWZmZXIsIHNpemUsICIlKy0jLipRZiIsIChwcmVjKSwgKHZhbCkpCiAgICAxMC4wKiplIGV2 ZW4gd2hlbiB0aGUgZmluYWwgcmVzdWx0IHdpbGwgbm90IGJlIHJvdW5kZWQgdG8gMTAuMCoq ZS4KICAgIEZvciB0aGVzZSB2YWx1ZXMgdGhlIGV4cG9uZW50IHJldHVybmVkIGJ5IGF0b2kg aGFzIHRvIGJlIGRlY3JlbWVudGVkCiAgICBieSBvbmUuIFRoZSB2YWx1ZXMgeSBpbiB0aGUg cmFuZ2VzCi0gICAgICAgKDEwMDAuMC0wLjUqMTAuMCoqKC1kKSkqMTAuMCoqKDMqbikgPD0g eSA8IDEwLjAqKDMqKG4rMSkpICAKKyAgICAgICAoMTAwMC4wLTAuNSoxMC4wKiooLWQpKSox MC4wKiooMypuKSA8PSB5IDwgMTAuMCooMyoobisxKSkKICAgICAgICAgKDEwMC4wLTAuNSox MC4wKiooLWQpKSoxMC4wKiooMypuKSA8PSB5IDwgMTAuMCooMypuKzIpCiAgICAgICAgICAo MTAuMC0wLjUqMTAuMCoqKC1kKSkqMTAuMCoqKDMqbikgPD0geSA8IDEwLjAqKDMqbisxKQog ICAgYXJlIGNvcnJlY3RseSByb3VuZGVkIHJlc3BlY3RpdmVseSB0byAxLjAuLi4wKjEwLjAq KDMqKG4rMSkpLApAQCAtOTYyLDcgKzEwMTcsNyBAQCBxdWFkbWF0aF9zbnByaW50ZiAoYnVm ZmVyLCBzaXplLCAiJSstIy4qUWYiLCAocHJlYyksICh2YWwpKQogfVwKIAogc3RhdGljIGlu dAotZGV0ZXJtaW5lX2VuX3ByZWNpc2lvbiAoc3RfcGFyYW1ldGVyX2R0ICpkdHAsIGNvbnN0 IGZub2RlICpmLCAKK2RldGVybWluZV9lbl9wcmVjaXNpb24gKHN0X3BhcmFtZXRlcl9kdCAq ZHRwLCBjb25zdCBmbm9kZSAqZiwKIAkJCWNvbnN0IGNoYXIgKnNvdXJjZSwgaW50IGxlbikK IHsKICAgaW50IG5wcmludGVkOwpAQCAtMTAxMiw3ICsxMDY3LDcgQEAgZGV0ZXJtaW5lX2Vu X3ByZWNpc2lvbiAoc3RfcGFyYW1ldGVyX2R0ICpkdHAsIGNvbnN0IGZub2RlICpmLAogICAg IHByZWMgKz0gMiAqIGxlbiArIDQ7CiAgIHJldHVybiBwcmVjOwogfQotICAKKwogCiAvKiBH ZW5lcmF0ZSBjb3JyZXNwb25kaW5nIEkvTyBmb3JtYXQuIGFuZCBvdXRwdXQuCiAgICBUaGUg cnVsZXMgdG8gdHJhbnNsYXRlIEZNVF9HIHRvIEZNVF9FIG9yIEZNVF9GIGZyb20gREVDIGZv cnRyYW4KQEAgLTEwNDUsMTIgKzExMDAsMTIgQEAgZGV0ZXJtaW5lX2VuX3ByZWNpc2lvbiAo c3RfcGFyYW1ldGVyX2R0ICpkdHAsIGNvbnN0IGZub2RlICpmLAogICAgIH1cCiAgIG0gPSBz aWduX2JpdCA/IC1tIDogbTtcCiAgIHplcm9fZmxhZyA9IChtID09IDAuMCk7XAorICBmbm9k ZSBuZXdmO1wKKyAgaW50IGUgPSBmLT51LnJlYWwuZTtcCisgIGludCBkID0gZi0+dS5yZWFs LmQ7XAorICBpbnQgdyA9IGYtPnUucmVhbC53O1wKICAgaWYgKGYtPmZvcm1hdCA9PSBGTVRf RylcCiAgICAge1wKLSAgICAgIGludCBlID0gZi0+dS5yZWFsLmU7XAotICAgICAgaW50IGQg PSBmLT51LnJlYWwuZDtcCi0gICAgICBpbnQgdyA9IGYtPnUucmVhbC53O1wKLSAgICAgIGZu b2RlIG5ld2Y7XAogICAgICAgR0ZDX1JFQUxfICMjIHggZXhwX2QsIHIgPSAwLjUsIHJfc2M7 XAogICAgICAgaW50IGxvdywgaGlnaCwgbWlkO1wKICAgICAgIGludCB1Ym91bmQsIGxib3Vu ZDtcCkBAIC0xMTQwLDYgKzExOTUsNyBAQCBkZXRlcm1pbmVfZW5fcHJlY2lzaW9uIChzdF9w YXJhbWV0ZXJfZHQgKmR0cCwgY29uc3QgZm5vZGUgKmYsCiAJICBwcmVjaXNpb24gPSBkZXRl cm1pbmVfcHJlY2lzaW9uIChkdHAsICZuZXdmLCB4KTtcCiAJICBucHJpbnRlZCA9IEZEVE9B KHkscHJlY2lzaW9uLG0pO1wKIAl9XAorICAgICAgbmV3Zi5wdXNoZWQgPSBGTVRfRztcCiAg ICAgICBidWlsZF9mbG9hdF9zdHJpbmcgKGR0cCwgJm5ld2YsIGJ1ZmZlciwgc2l6ZSwgbnBy aW50ZWQsIHByZWNpc2lvbixcCiAJCQkJICAgc2lnbl9iaXQsIHplcm9fZmxhZywgbnBhZCwg ZGVmYXVsdF93aWR0aCxcCiAJCQkJICAgcmVzdWx0LCByZXNfbGVuKTtcCkBAIC0xMTQ3LDEx ICsxMjAzLDE2IEBAIGRldGVybWluZV9lbl9wcmVjaXNpb24gKHN0X3BhcmFtZXRlcl9kdCAq ZHRwLCBjb25zdCBmbm9kZSAqZiwKICAgICB9XAogICBlbHNlXAogICAgIHtcCisgICAgICBu ZXdmLmZvcm1hdCA9IGYtPmZvcm1hdDtcCisgICAgICBuZXdmLnUucmVhbC53ID0gdztcCisg ICAgICBuZXdmLnUucmVhbC5kID0gZDtcCisgICAgICBuZXdmLnUucmVhbC5lID0gZTtcCisg ICAgICBuZXdmLnB1c2hlZCA9IEZNVF9OT05FO1wKICAgICAgIGlmIChmLT5mb3JtYXQgPT0g Rk1UX0YpXAogCW5wcmludGVkID0gRkRUT0EoeSxwcmVjaXNpb24sbSk7XAogICAgICAgZWxz ZVwKIAlucHJpbnRlZCA9IERUT0EoeSxwcmVjaXNpb24sbSk7XAotICAgICAgYnVpbGRfZmxv YXRfc3RyaW5nIChkdHAsIGYsIGJ1ZmZlciwgc2l6ZSwgbnByaW50ZWQsIHByZWNpc2lvbixc CisgICAgICBidWlsZF9mbG9hdF9zdHJpbmcgKGR0cCwgJm5ld2YsIGJ1ZmZlciwgc2l6ZSwg bnByaW50ZWQsIHByZWNpc2lvbixcCiAJCQkJICAgc2lnbl9iaXQsIHplcm9fZmxhZywgbnBh ZCwgZGVmYXVsdF93aWR0aCxcCiAJCQkJICAgcmVzdWx0LCByZXNfbGVuKTtcCiAgICAgfVwK --------------eLHKalGghosvehbCk3t0Nxmx--