From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x529.google.com (mail-pg1-x529.google.com [IPv6:2607:f8b0:4864:20::529]) by sourceware.org (Postfix) with ESMTPS id 46EC73858C41; Tue, 5 Mar 2024 03:15:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 46EC73858C41 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 46EC73858C41 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::529 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709608519; cv=none; b=rFWoC77a6/+XIWWnlIPgm5ECwJsGJz9083mIyc8ZVw8YRDefFY8tGF/9M+NFUxbsh4TXRMCizwDWNUQGvz5YRcZ54/CRRr6qaCYmQ7X52nrdXHmZWGWpE3ktu9BgH5vbe33/foTEmR4If2nPiKIYnxzQ2qVZzyI0rUa9jZSklKU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709608519; c=relaxed/simple; bh=92UVzapX4BJHtVMQvRScisM4PwnXBNjq+TyjK2uAGr8=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=Ou9swWOow3rWsYHtOaAfiPr7NEweVPXNSsM5jOij4UsCzceqKdx9BNTakGbUvz1bmC46kBQspQkX6z6cg3ds7oaJuWz9eMdd1p4MNO5TcQWXqcGLWTTZMoV4K9uAvHXPmBmD/Xqhf14c0AhMNu99ERBN96786GLS7Es1y6/JFp8= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pg1-x529.google.com with SMTP id 41be03b00d2f7-5cfb8126375so879792a12.1; Mon, 04 Mar 2024 19:15:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709608514; x=1710213314; darn=gcc.gnu.org; h=in-reply-to:autocrypt:from:cc:references:to:content-language :subject:user-agent:mime-version:date:message-id:from:to:cc:subject :date:message-id:reply-to; bh=0pglj0xO4kwDmOLhlwKnqwodCF2DTIIffasH1Eqv/q4=; b=L7c6vINw+7gxwQAJu4THkVGDTb/ko91plPi2T3yJ+6MPAWN5Uo9UZsFmjUPwSwJOyg i5bnj3Z5GnHpJdoIwB1AGDLEK0vNn+6FwlddfKHy5x87JKprnm+5xz5FJKhrf7/QHMlx baevS7IxNKDvrjLOFRTfDV1/UTsNIwTeGPJd+BGt2GiuwF/eLsa0fGjdh7JUnh61nqtM X4rP9ELbvrl0wkaUPdSxqTONVGXIri4z6xOwyWK3xBwVrQ8kJfVJLz7/MgIX28tB+8lv Uc8v6uvDG7TKtPCyGzGRjpWzU0cs1ox94o4FO+w6cdscfaju0kXtNK0QwUcn83N5VGFL EtxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709608514; x=1710213314; h=in-reply-to:autocrypt:from:cc:references:to:content-language :subject:user-agent:mime-version:date:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=0pglj0xO4kwDmOLhlwKnqwodCF2DTIIffasH1Eqv/q4=; b=UBEzmlbDoHTKwlYCaUikpRgQkx/cX6GM6qj8QpZtUAQg6cxNLh3SKdJZE3wE+p3xIl +79WmZq8PkhW5v1PqXnoqIVCxn74/OuSBJtrIkQpTCYfv2s7/KI9500P/TZryH3T7bCo qUcmlbIko7JDWOFv18KRbn5e+AYwTqrnxEuotm9er+keMr78GdTvMxkp+TvuMarvlVUp Nc1cNqcXPd6rczc5EpLWVZYd00R6oyVQDFIhdin4oE/st/NtNnlTSMJcqBJ/BqkYX1RC Mg8+yph5oyvF22bxVaDiTsCJW6Qi8jivmF/VgBFz94Bukrb8yEfnpKSpymVbvzJMt5Jf /P4g== X-Forwarded-Encrypted: i=1; AJvYcCVq6tOLW3cr5qcCezSk7ubueoIA9oHe98ltRJ0yPSAbuqUVk7P1CBsdaGn7UjxdLgmWtHA9vt9A2z/+MdWNFuRpAwhm X-Gm-Message-State: AOJu0YyTH1jDiYRUg1yteRNanoTsnB1IMxKEZ0SiwFNCzNBsD7+es6pH 19ls+vkSYU3K59ZxIfbz0sKpHgc6ot/zP/Efsh4CVo9v65EJAIg8 X-Google-Smtp-Source: AGHT+IHpFhmrKZEZ55OjQjdVr9hy1/cqiP8gnk5123X7QNkdmA+mGy0xDxsxtbWtbhtAClifN6z5tA== X-Received: by 2002:a05:6a20:160b:b0:1a0:d4d4:260b with SMTP id l11-20020a056a20160b00b001a0d4d4260bmr13526031pzj.3.1709608513888; Mon, 04 Mar 2024 19:15:13 -0800 (PST) Received: from [192.168.1.20] ([50.37.177.113]) by smtp.gmail.com with ESMTPSA id q13-20020a170902c74d00b001dbcb39dd81sm9311489plq.300.2024.03.04.19.15.13 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 04 Mar 2024 19:15:13 -0800 (PST) Content-Type: multipart/mixed; boundary="------------MEm6ny52R7syVIql8LA0i59S" Message-ID: <65b13e02-bc1d-4cad-98cc-cf5d6090b742@gmail.com> Date: Mon, 4 Mar 2024 19:15:12 -0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [patch, libgfortran] Part 2: PR105456 Child I/O does not propage iostat Content-Language: en-US To: rep.dot.nop@gmail.com, sgk@troutmask.apl.washington.edu, gfortran References: <943c3685-c4d4-4f22-8b65-6336f8770043@gmail.com> <20240229104705.62e46010@nbbrfq.loc> <033ebcdd-6e25-4af7-9012-3338978751d8@gmail.com> <05A1AEE6-6A68-4D4F-8BEA-6E87969E19E7@gmail.com> Cc: gcc-patches 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: <05A1AEE6-6A68-4D4F-8BEA-6E87969E19E7@gmail.com> X-Spam-Status: No, score=-8.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,GB_TO_NAME_FREEMAIL,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. --------------MEm6ny52R7syVIql8LA0i59S Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 3/1/24 11:24 AM, rep.dot.nop@gmail.com wrote: > Hi Jerry and Steve, > > On 29 February 2024 19:28:19 CET, Jerry D wrote: >> On 2/29/24 10:13 AM, Steve Kargl wrote: >>> On Thu, Feb 29, 2024 at 09:36:43AM -0800, Jerry D wrote: >>>> On 2/29/24 1:47 AM, Bernhard Reutner-Fischer wrote: >>>> >>>>> And, just for my own education, the length limitation of iomsg to 255 >>>>> chars is not backed by the standard AFAICS, right? It's just our >>>>> STRERR_MAXSZ? >>>> >>>> Yes, its what we have had for a long lone time. Once you throw an error >>>> things get very processor dependent. I found MSGLEN set to 100 and IOMSG_len >>>> to 256. Nothing magic about it. >>>> >>> >>> There is no restriction on the length for the iomsg-variable >>> that receives the generated error message. In fact, if the >>> iomsg-variable has a deferred-length type parameter, then >>> (re)-allocation to the exact length is expected. >>> >>> F2023 >>> >>> 12.11.6 IOMSG= specifier >>> >>> If an error, end-of-file, or end-of-record condition occurs during >>> execution of an input/output statement, iomsg-variable is assigned >>> an explanatory message, as if by intrinsic assignment. If no such >>> condition occurs, the definition status and value of iomsg-variable >>> are unchanged. >>> character(len=23) emsg >>> read(fd,*,iomsg=emsg) >>> >>> Here, the generated iomsg is either truncated to a length of 23 >>> or padded with blanks to a length of 23. >>> >>> character(len=:), allocatable :: emsg >>> read(fd,*,iomsg=emsg) >>> >>> Here, emsg should have the length of whatever error message was >>> generated. >>> HTH >>> >> >> Well, currently, if someone uses a larger string than 256 we are going to chop it off. >> >> Do we want to process this differently now? > > Yes. There is some odd hunk about discrepancy of passed len and actual len afterwards in 22-007-r1, IIRC. Didn't look closely though. > --- snip --- Attached is the revised patch using the already available string_len_trim function. This hunk is only executed if a user has not passed an iostat or iomsg variable in the parent I/O statement and an error is triggered which terminates execution of the program. In this case, the iomsg string is provided in the usual error message in a "processor defined" way. (F2023): 12.6.4.8.3 Executing defined input/output data transfers --- 11 If the iostat argument of the defined input/output procedure has a nonzero value when that procedure returns, and the processor therefore terminates execution of the program as described in 12.11, the processor shall make the value of the iomsg argument available in a processor-dependent manner. --- OK for trunk? Regards, Jerry --------------MEm6ny52R7syVIql8LA0i59S Content-Type: text/x-patch; charset=UTF-8; name="pr105456-submit.diff" Content-Disposition: attachment; filename="pr105456-submit.diff" Content-Transfer-Encoding: base64 Y29tbWl0IDUxYTI0YWNlNTEyZTk2YjQyNWJjZGU0NmMwNTZlODE2YzQ2MDY3ODQKQXV0aG9y OiBKZXJyeSBEZUxpc2xlIDxqdmRlbGlzbGVAZ2NjLmdudS5vcmc+CkRhdGU6ICAgTW9uIE1h ciA0IDE4OjQ1OjQ5IDIwMjQgLTA4MDAKCiAgICBGb3J0cmFuOiBBZGQgdXNlciBkZWZpbmVk IGVycm9yIG1lc3NhZ2VzIGZvciBVRFRJTy4KICAgIAogICAgVGhlIGRlZmluZXMgSU9NU0df TEVOIGFuZCBNU0dMRU4gd2VyZSByZWR1bmRhbnQgc28gdGhlc2UgYXJlIGNvbWJpbmVkCiAg ICBpbnRvIElPTVNHX0xFTiBhcyBkZWZpbmVkIGluIGlvLmguCiAgICAKICAgIFRoZSByZW1h aW5kZXIgb2YgdGhlIHBhdGNoIGFkZHMgY2hlY2tzIGZvciB3aGVuIGEgdXNlciBkZWZpbmVk CiAgICBkZXJpdmVkIHR5cGUgSU8gcHJvY2VkdXJlIHNldHMgdGhlIElPU1RBVCBvciBJT01T RyB2YXJpYWJsZXMKICAgIGluZGVwZW5kZW50IG9mIHRoZSBsaWJycmFyeSBkZWZpbmVkIEkv TyBtZXNzYWdlcy4KICAgIAogICAgICAgICAgICBQUiBsaWJmb3J0cmFuLzEwNTQ1NgogICAg CiAgICBsaWJnZm9ydHJhbi9DaGFuZ2VMb2c6CiAgICAKICAgICAgICAgICAgKiBpby9pby5o IChJT01TR19MRU4pOiBNb3ZlZCB0byBoZXJlLgogICAgICAgICAgICAqIGlvL2xpc3RfcmVh ZC5jIChNU0dMRU4pOiBSZW1vdmVkIE1TR0xFTi4KICAgICAgICAgICAgKGNvbnZlcnRfaW50 ZWdlcik6IENoYW5nZWQgTVNHTEVOIHRvIElPTVNHX0xFTi4KICAgICAgICAgICAgKHBhcnNl X3JlcGVhdCk6IExpa2V3aXNlLgogICAgICAgICAgICAocmVhZF9sb2dpY2FsKTogTGlrZXdp c2UuCiAgICAgICAgICAgIChyZWFkX2ludGVnZXIpOiBMaWtld2lzZS4KICAgICAgICAgICAg KHJlYWRfY2hhcmFjdGVyKTogTGlrZXdpc2UuCiAgICAgICAgICAgIChwYXJzZV9yZWFsKTog TGlrZXdpc2UuCiAgICAgICAgICAgIChyZWFkX2NvbXBsZXgpOiBMaWtld2lzZS4KICAgICAg ICAgICAgKHJlYWRfcmVhbCk6IExpa2V3aXNlLgogICAgICAgICAgICAoY2hlY2tfdHlwZSk6 IExpa2V3aXNlLgogICAgICAgICAgICAobGlzdF9mb3JtYXR0ZWRfcmVhZF9zY2FsYXIpOiBB ZGp1c3QgdG8gSU9NU0dfTEVOLgogICAgICAgICAgICAobm1sX3JlYWRfb2JqKTogQWRkIHVz ZXIgZGVmaW5lZCBlcnJvciBtZXNzYWdlLgogICAgICAgICAgICAqIGlvL3RyYW5zZmVyLmMg KHVuZm9ybWF0dGVkX3JlYWQpOiBBZGQgdXNlciBkZWZpbmVkIGVycm9yCiAgICAgICAgICAg IG1lc3NhZ2UuCiAgICAgICAgICAgICh1bmZvcm1hdHRlZF93cml0ZSk6IEFkZCB1c2VyIGRl ZmluZWQgZXJyb3IgbWVzc2FnZS4KICAgICAgICAgICAgKGZvcm1hdHRlZF90cmFuc2Zlcl9z Y2FsYXJfcmVhZCk6IEFkZCB1c2VyIGRlZmluZWQgZXJyb3IgbWVzc2FnZS4KICAgICAgICAg ICAgKGZvcm1hdHRlZF90cmFuc2Zlcl9zY2FsYXJfd3JpdGUpOiBBZGQgdXNlciBkZWZpbmVk IGVycm9yIG1lc3NhZ2UuCiAgICAgICAgICAgICogaW8vd3JpdGUuYyAobGlzdF9mb3JtYXR0 ZWRfd3JpdGVfc2NhbGFyKTogQWRkIHVzZXIgZGVmaW5lZCBlcnJvciBtZXNzYWdlLgogICAg ICAgICAgICAobm1sX3dyaXRlX29iaik6IEFkZCB1c2VyIGRlZmluZWQgZXJyb3IgbWVzc2Fn ZS4KICAgIAogICAgZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CiAgICAKICAgICAgICAgICAg KiBnZm9ydHJhbi5kZy9wcjEwNTQ1Ni1ubWxyLmY5MDogTmV3IHRlc3QuCiAgICAgICAgICAg ICogZ2ZvcnRyYW4uZGcvcHIxMDU0NTYtbm1sdy5mOTA6IE5ldyB0ZXN0LgogICAgICAgICAg ICAqIGdmb3J0cmFuLmRnL3ByMTA1NDU2LXJ1Zi5mOTA6IE5ldyB0ZXN0LgogICAgICAgICAg ICAqIGdmb3J0cmFuLmRnL3ByMTA1NDU2LXdmLmY5MDogTmV3IHRlc3QuCiAgICAgICAgICAg ICogZ2ZvcnRyYW4uZGcvcHIxMDU0NTYtd3VmLmY5MDogTmV3IHRlc3QuCgpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9wcjEwNTQ1Ni1ubWxyLmY5MCBiL2djYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvcHIxMDU0NTYtbm1sci5mOTAKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVjZTVkMDgyMTMzCi0tLSAvZGV2L251bGwKKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9wcjEwNTQ1Ni1ubWxyLmY5MApAQCAtMCww ICsxLDYwIEBACishIHsgZGctZG8gcnVuIH0KKyEgeyBkZy1zaG91bGRmYWlsICJUaGUgdXNl cnMgbWVzc2FnZSIgfQorbW9kdWxlIG0KKyAgaW1wbGljaXQgbm9uZQorICB0eXBlIDo6IHQK KyAgICBjaGFyYWN0ZXIgOjogYworICAgIGludGVnZXIgOjogaworICBjb250YWlucworICAg IHByb2NlZHVyZSA6OiB3cml0ZV9mb3JtYXR0ZWQKKyAgICBnZW5lcmljIDo6IHdyaXRlKGZv cm1hdHRlZCkgPT4gd3JpdGVfZm9ybWF0dGVkCisgICAgcHJvY2VkdXJlIDo6IHJlYWRfZm9y bWF0dGVkCisgICAgZ2VuZXJpYyA6OiByZWFkKGZvcm1hdHRlZCkgPT4gcmVhZF9mb3JtYXR0 ZWQKKyAgZW5kIHR5cGUKK2NvbnRhaW5zCisgIHN1YnJvdXRpbmUgd3JpdGVfZm9ybWF0dGVk KGR0diwgdW5pdCwgaW90eXBlLCB2X2xpc3QsIGlvc3RhdCwgaW9tc2cpCisgICAgY2xhc3Mo dCksIGludGVudChpbikgOjogZHR2CisgICAgaW50ZWdlciwgaW50ZW50KGluKSA6OiB1bml0 CisgICAgY2hhcmFjdGVyKCopLCBpbnRlbnQoaW4pIDo6IGlvdHlwZQorICAgIGludGVnZXIs IGludGVudChpbikgOjogdl9saXN0KDopCisgICAgaW50ZWdlciwgaW50ZW50KG91dCkgOjog aW9zdGF0CisgICAgY2hhcmFjdGVyKCopLCBpbnRlbnQoaW5vdXQpIDo6IGlvbXNnCisgICAg aWYgKGlvdHlwZS5lcS4iTkFNRUxJU1QiKSB0aGVuCisgICAgICB3cml0ZSAodW5pdCwgJyhh MSxhMSxpMyknKSBkdHYlYywnLCcsIGR0diVrCisgICAgZWxzZQorICAgICAgd3JpdGUgKHVu aXQsKikgZHR2JWMsIGR0diVrCisgICAgZW5kIGlmCisgIGVuZCBzdWJyb3V0aW5lCisgIHN1 YnJvdXRpbmUgcmVhZF9mb3JtYXR0ZWQoZHR2LCB1bml0LCBpb3R5cGUsIHZfbGlzdCwgaW9z dGF0LCBpb21zZykKKyAgICBjbGFzcyh0KSwgaW50ZW50KGlub3V0KSA6OiBkdHYKKyAgICBp bnRlZ2VyLCBpbnRlbnQoaW4pIDo6IHVuaXQKKyAgICBjaGFyYWN0ZXIoKiksIGludGVudChp bikgOjogaW90eXBlCisgICAgaW50ZWdlciwgaW50ZW50KGluKSA6OiB2X2xpc3QoOikKKyAg ICBpbnRlZ2VyLCBpbnRlbnQob3V0KSA6OiBpb3N0YXQKKyAgICBjaGFyYWN0ZXIoKiksIGlu dGVudChpbm91dCkgOjogaW9tc2cKKyAgICBjaGFyYWN0ZXIgOjogY29tbWEKKyAgICBpZiAo aW90eXBlLmVxLiJOQU1FTElTVCIpIHRoZW4KKyAgICAgIHJlYWQgKHVuaXQsICcoYTEsYTEs aTMpJykgZHR2JWMsIGNvbW1hLCBkdHYlaworICAgIGVsc2UKKyAgICAgIHJlYWQgKHVuaXQs KikgZHR2JWMsIGNvbW1hLCBkdHYlaworICAgIGVuZGlmCisgICAgaW9zdGF0ID0gNDIKKyAg ICBpb21zZyA9ICJUaGUgdXNlcnMgbWVzc2FnZSIKKyAgICBpZiAoY29tbWEgLz0gJywnKSBT VE9QIDEKKyAgZW5kIHN1YnJvdXRpbmUKK2VuZCBtb2R1bGUKKworcHJvZ3JhbSBwCisgIHVz ZSBtCisgIGltcGxpY2l0IG5vbmUKKyAgY2hhcmFjdGVyKGxlbj01MCkgOjogYnVmZmVyCisg IHR5cGUodCkgOjogeAorICBuYW1lbGlzdCAvbm1sLyB4CisgIHggPSB0KCdhJywgNSkKKyAg d3JpdGUgKGJ1ZmZlciwgbm1sKQorICBpZiAoYnVmZmVyLm5lLicgJk5NTCAgWD1hLCAgNSAg LycpIFNUT1AgMQorICB4ID0gdCgneCcsIDApCisgIHJlYWQgKGJ1ZmZlciwgbm1sKQorICBp ZiAoeCVjLm5lLidhJy5vci4geCVrLm5lLjUpIFNUT1AgMgorZW5kCishIHsgZGctb3V0cHV0 ICJGb3J0cmFuIHJ1bnRpbWUgZXJyb3I6IFRoZSB1c2VycyBtZXNzYWdlIiB9CmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3ByMTA1NDU2LW5tbHcuZjkwIGIvZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9wcjEwNTQ1Ni1ubWx3LmY5MApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMmM0OTZlNjExZjQKLS0tIC9kZXYvbnVsbAor KysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3ByMTA1NDU2LW5tbHcuZjkwCkBAIC0w LDAgKzEsNjAgQEAKKyEgeyBkZy1kbyBydW4gfQorISB7IGRnLXNob3VsZGZhaWwgIlRoZSB1 c2VycyBtZXNzYWdlIiB9Cittb2R1bGUgbQorICBpbXBsaWNpdCBub25lCisgIHR5cGUgOjog dAorICAgIGNoYXJhY3RlciA6OiBjCisgICAgaW50ZWdlciA6OiBrCisgIGNvbnRhaW5zCisg ICAgcHJvY2VkdXJlIDo6IHdyaXRlX2Zvcm1hdHRlZAorICAgIGdlbmVyaWMgOjogd3JpdGUo Zm9ybWF0dGVkKSA9PiB3cml0ZV9mb3JtYXR0ZWQKKyAgICBwcm9jZWR1cmUgOjogcmVhZF9m b3JtYXR0ZWQKKyAgICBnZW5lcmljIDo6IHJlYWQoZm9ybWF0dGVkKSA9PiByZWFkX2Zvcm1h dHRlZAorICBlbmQgdHlwZQorY29udGFpbnMKKyAgc3Vicm91dGluZSB3cml0ZV9mb3JtYXR0 ZWQoZHR2LCB1bml0LCBpb3R5cGUsIHZfbGlzdCwgaW9zdGF0LCBpb21zZykKKyAgICBjbGFz cyh0KSwgaW50ZW50KGluKSA6OiBkdHYKKyAgICBpbnRlZ2VyLCBpbnRlbnQoaW4pIDo6IHVu aXQKKyAgICBjaGFyYWN0ZXIoKiksIGludGVudChpbikgOjogaW90eXBlCisgICAgaW50ZWdl ciwgaW50ZW50KGluKSA6OiB2X2xpc3QoOikKKyAgICBpbnRlZ2VyLCBpbnRlbnQob3V0KSA6 OiBpb3N0YXQKKyAgICBjaGFyYWN0ZXIoKiksIGludGVudChpbm91dCkgOjogaW9tc2cKKyAg ICBpZiAoaW90eXBlLmVxLiJOQU1FTElTVCIpIHRoZW4KKyAgICAgIHdyaXRlICh1bml0LCAn KGExLGExLGkzKScpIGR0diVjLCcsJywgZHR2JWsKKyAgICBlbHNlCisgICAgICB3cml0ZSAo dW5pdCwqKSBkdHYlYywgZHR2JWsKKyAgICBlbmQgaWYKKyAgICBpb3N0YXQgPSA0MgorICAg IGlvbXNnID0gIlRoZSB1c2VycyBtZXNzYWdlIgorICBlbmQgc3Vicm91dGluZQorICBzdWJy b3V0aW5lIHJlYWRfZm9ybWF0dGVkKGR0diwgdW5pdCwgaW90eXBlLCB2X2xpc3QsIGlvc3Rh dCwgaW9tc2cpCisgICAgY2xhc3ModCksIGludGVudChpbm91dCkgOjogZHR2CisgICAgaW50 ZWdlciwgaW50ZW50KGluKSA6OiB1bml0CisgICAgY2hhcmFjdGVyKCopLCBpbnRlbnQoaW4p IDo6IGlvdHlwZQorICAgIGludGVnZXIsIGludGVudChpbikgOjogdl9saXN0KDopCisgICAg aW50ZWdlciwgaW50ZW50KG91dCkgOjogaW9zdGF0CisgICAgY2hhcmFjdGVyKCopLCBpbnRl bnQoaW5vdXQpIDo6IGlvbXNnCisgICAgY2hhcmFjdGVyIDo6IGNvbW1hCisgICAgaWYgKGlv dHlwZS5lcS4iTkFNRUxJU1QiKSB0aGVuCisgICAgICByZWFkICh1bml0LCAnKGExLGExLGkz KScpIGR0diVjLCBjb21tYSwgZHR2JWsKKyAgICBlbHNlCisgICAgICByZWFkICh1bml0LCop IGR0diVjLCBjb21tYSwgZHR2JWsKKyAgICBlbmQgaWYKKyAgICBpZiAoY29tbWEgLz0gJywn KSBTVE9QIDEKKyAgZW5kIHN1YnJvdXRpbmUKK2VuZCBtb2R1bGUKKworcHJvZ3JhbSBwCisg IHVzZSBtCisgIGltcGxpY2l0IG5vbmUKKyAgY2hhcmFjdGVyKGxlbj01MCkgOjogYnVmZmVy CisgIHR5cGUodCkgOjogeAorICBuYW1lbGlzdCAvbm1sLyB4CisgIHggPSB0KCdhJywgNSkK KyAgd3JpdGUgKGJ1ZmZlciwgbm1sKQorICBpZiAoYnVmZmVyLm5lLicgJk5NTCAgWD1hLCAg NSAgLycpIFNUT1AgMQorICB4ID0gdCgneCcsIDApCisgIHJlYWQgKGJ1ZmZlciwgbm1sKQor ICBpZiAoeCVjLm5lLidhJy5vci4geCVrLm5lLjUpIFNUT1AgMgorZW5kCishIHsgZGctb3V0 cHV0ICJGb3J0cmFuIHJ1bnRpbWUgZXJyb3I6IFRoZSB1c2VycyBtZXNzYWdlIiB9CmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3ByMTA1NDU2LXJ1Zi5mOTAgYi9n Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3ByMTA1NDU2LXJ1Zi5mOTAKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmMxNzZjNGFhMThjCi0tLSAvZGV2L251bGwK KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9wcjEwNTQ1Ni1ydWYuZjkwCkBAIC0w LDAgKzEsMzYgQEAKKyEgeyBkZy1kbyBydW4gfQorISB7IGRnLXNob3VsZGZhaWwgIlRoZSB1 c2VycyBtZXNzYWdlIiB9Cittb2R1bGUgc2sxCisgIGltcGxpY2l0IG5vbmUKKyAgdHlwZSBj aGFyCisgICAgIGNoYXJhY3RlciA6OiBjaAorICBlbmQgdHlwZSBjaGFyCisgIGludGVyZmFj ZSByZWFkICh1bmZvcm1hdHRlZCkKKyAgICAgbW9kdWxlIHByb2NlZHVyZSByZWFkX3VuZm9y bWF0dGVkCisgIGVuZCBpbnRlcmZhY2UgcmVhZCAodW5mb3JtYXR0ZWQpCitjb250YWlucwor ICBzdWJyb3V0aW5lIHJlYWRfdW5mb3JtYXR0ZWQgKGR0diwgdW5pdCwgcGlvc3RhdCwgcGlv bXNnKQorICAgIGNsYXNzIChjaGFyKSwgaW50ZW50KGlub3V0KSA6OiBkdHYKKyAgICBpbnRl Z2VyLCBpbnRlbnQoaW4pIDo6IHVuaXQKKyAgICAhY2hhcmFjdGVyIChsZW49KiksIGludGVu dChpbikgOjogaW90eXBlCisgICAgIWludGVnZXIsIGludGVudChpbikgOjogdmxpc3QoOikK KyAgICBpbnRlZ2VyLCBpbnRlbnQob3V0KSA6OiBwaW9zdGF0CisgICAgY2hhcmFjdGVyIChs ZW49KiksIGludGVudChpbm91dCkgOjogcGlvbXNnCisgICAgcmVhZCAodW5pdCxmbXQ9JyhB MSknLCBhZHZhbmNlPSJubyIsIGlvc3RhdD1waW9zdGF0LCBpb21zZz1waW9tc2cpIGR0diVj aAorICAgIHBpb3N0YXQgPSA0MgorICAgIHBpb21zZz0iVGhlIHVzZXJzIG1lc3NhZ2UiCisg IGVuZCBzdWJyb3V0aW5lIHJlYWRfdW5mb3JtYXR0ZWQKK2VuZCBtb2R1bGUgc2sxCisKK3By b2dyYW0gc2tpcDEKKyAgdXNlIHNrMQorICBpbXBsaWNpdCBub25lCisgIHR5cGUgKGNoYXIp IDo6IHgKKyAgeCVjaCA9ICdYJworICBvcGVuICgxMCwgZm9ybT0ndW5mb3JtYXR0ZWQnLCBz dGF0dXM9J3NjcmF0Y2gnKQorICB3cml0ZSAoMTApICdYJworICByZXdpbmQgKDEwKQorICBy ZWFkICgxMCkgeAorZW5kIHByb2dyYW0gc2tpcDEKKyEgeyBkZy1vdXRwdXQgIi4qKHVuaXQg PSAxMCwgZmlsZSA9IC4qKSIgfQorISB7IGRnLW91dHB1dCAiRm9ydHJhbiBydW50aW1lIGVy cm9yOiBUaGUgdXNlcnMgbWVzc2FnZSIgfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9wcjEwNTQ1Ni13Zi5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L3ByMTA1NDU2LXdmLmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uZjFjNTM1MGNjMDAKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL3ByMTA1NDU2LXdmLmY5MApAQCAtMCwwICsxLDM0IEBACishIHsgZGctZG8gcnVu IH0KKyEgeyBkZy1zaG91bGRmYWlsICJUaGUgdXNlcnMgbWVzc2FnZSIgfQorbW9kdWxlIHNr MQorICBpbXBsaWNpdCBub25lCisgIHR5cGUgY2hhcgorICAgICBjaGFyYWN0ZXIgOjogY2gK KyAgZW5kIHR5cGUgY2hhcgorICBpbnRlcmZhY2Ugd3JpdGUgKGZvcm1hdHRlZCkKKyAgICAg bW9kdWxlIHByb2NlZHVyZSB3cml0ZV9mb3JtYXR0ZWQKKyAgZW5kIGludGVyZmFjZSB3cml0 ZSAoZm9ybWF0dGVkKQorY29udGFpbnMKKyAgc3Vicm91dGluZSB3cml0ZV9mb3JtYXR0ZWQg KGR0diwgdW5pdCwgaW90eXBlLCB2bGlzdCwgcGlvc3RhdCwgcGlvbXNnKQorICAgIGNsYXNz IChjaGFyKSwgaW50ZW50KGluKSA6OiBkdHYKKyAgICBpbnRlZ2VyLCBpbnRlbnQoaW4pIDo6 IHVuaXQKKyAgICBjaGFyYWN0ZXIgKGxlbj0qKSwgaW50ZW50KGluKSA6OiBpb3R5cGUKKyAg ICBpbnRlZ2VyLCBpbnRlbnQoaW4pIDo6IHZsaXN0KDopCisgICAgaW50ZWdlciwgaW50ZW50 KG91dCkgOjogcGlvc3RhdAorICAgIGNoYXJhY3RlciAobGVuPSopLCBpbnRlbnQoaW5vdXQp IDo6IHBpb21zZworICAgIHdyaXRlICh1bml0LGZtdD0nKEExKScsIGFkdmFuY2U9Im5vIiwg aW9zdGF0PXBpb3N0YXQsIGlvbXNnPXBpb21zZykgZHR2JWNoCisgICAgcGlvc3RhdCA9IDQy CisgICAgcGlvbXNnPSJUaGUgdXNlcnMgbWVzc2FnZSIKKyAgZW5kIHN1YnJvdXRpbmUgd3Jp dGVfZm9ybWF0dGVkCitlbmQgbW9kdWxlIHNrMQorCitwcm9ncmFtIHNraXAxCisgIHVzZSBz azEKKyAgaW1wbGljaXQgbm9uZQorICB0eXBlIChjaGFyKSA6OiB4CisgIHglY2ggPSAnWCcK KyAgb3BlbiAoMTAsIHN0YXR1cz0nc2NyYXRjaCcpCisgIHdyaXRlICgxMCwqKSB4CitlbmQg cHJvZ3JhbSBza2lwMQorISB7IGRnLW91dHB1dCAiLioodW5pdCA9IDEwLCBmaWxlID0gLiop IiB9CishIHsgZGctb3V0cHV0ICJGb3J0cmFuIHJ1bnRpbWUgZXJyb3I6IFRoZSB1c2VycyBt ZXNzYWdlIiB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3ByMTA1 NDU2LXd1Zi5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3ByMTA1NDU2LXd1Zi5m OTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJiNjM3YjcwNGE0 Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9wcjEwNTQ1 Ni13dWYuZjkwCkBAIC0wLDAgKzEsMzQgQEAKKyEgeyBkZy1kbyBydW4gfQorISB7IGRnLXNo b3VsZGZhaWwgIlRoZSB1c2VycyBtZXNzYWdlIiB9Cittb2R1bGUgc2sxCisgIGltcGxpY2l0 IG5vbmUKKyAgdHlwZSBjaGFyCisgICAgIGNoYXJhY3RlciA6OiBjaAorICBlbmQgdHlwZSBj aGFyCisgIGludGVyZmFjZSB3cml0ZSAodW5mb3JtYXR0ZWQpCisgICAgIG1vZHVsZSBwcm9j ZWR1cmUgd3JpdGVfdW5mb3JtYXR0ZWQKKyAgZW5kIGludGVyZmFjZSB3cml0ZSAodW5mb3Jt YXR0ZWQpCitjb250YWlucworICBzdWJyb3V0aW5lIHdyaXRlX3VuZm9ybWF0dGVkIChkdHYs IHVuaXQsIHBpb3N0YXQsIHBpb21zZykKKyAgICBjbGFzcyAoY2hhciksIGludGVudChpbikg OjogZHR2CisgICAgaW50ZWdlciwgaW50ZW50KGluKSA6OiB1bml0CisgICAgIWNoYXJhY3Rl ciAobGVuPSopLCBpbnRlbnQoaW4pIDo6IGlvdHlwZQorICAgICFpbnRlZ2VyLCBpbnRlbnQo aW4pIDo6IHZsaXN0KDopCisgICAgaW50ZWdlciwgaW50ZW50KG91dCkgOjogcGlvc3RhdAor ICAgIGNoYXJhY3RlciAobGVuPSopLCBpbnRlbnQoaW5vdXQpIDo6IHBpb21zZworICAgIHdy aXRlICh1bml0LGZtdD0nKEExKScsIGFkdmFuY2U9Im5vIiwgaW9zdGF0PXBpb3N0YXQsIGlv bXNnPXBpb21zZykgZHR2JWNoCisgICAgcGlvc3RhdCA9IDQyCisgICAgcGlvbXNnPSJUaGUg dXNlcnMgbWVzc2FnZSIKKyAgZW5kIHN1YnJvdXRpbmUgd3JpdGVfdW5mb3JtYXR0ZWQKK2Vu ZCBtb2R1bGUgc2sxCisKK3Byb2dyYW0gc2tpcDEKKyAgdXNlIHNrMQorICBpbXBsaWNpdCBu b25lCisgIHR5cGUgKGNoYXIpIDo6IHgKKyAgeCVjaCA9ICdYJworICBvcGVuICgxMCwgZm9y bT0ndW5mb3JtYXR0ZWQnLCBzdGF0dXM9J3NjcmF0Y2gnKQorICB3cml0ZSAoMTApIHgKK2Vu ZCBwcm9ncmFtIHNraXAxCishIHsgZGctb3V0cHV0ICIuKih1bml0ID0gMTAsIGZpbGUgPSAu KikiIH0KKyEgeyBkZy1vdXRwdXQgIkZvcnRyYW4gcnVudGltZSBlcnJvcjogVGhlIHVzZXJz IG1lc3NhZ2UiIH0KZGlmZiAtLWdpdCBhL2xpYmdmb3J0cmFuL2lvL2lvLmggYi9saWJnZm9y dHJhbi9pby9pby5oCmluZGV4IDU5YmMxOWVlODE1Li4xYzIzNjc2Y2M0YyAxMDA2NDQKLS0t IGEvbGliZ2ZvcnRyYW4vaW8vaW8uaAorKysgYi9saWJnZm9ydHJhbi9pby9pby5oCkBAIC0z NCw2ICszNCw5IEBAIHNlZSB0aGUgZmlsZXMgQ09QWUlORzMgYW5kIENPUFlJTkcuUlVOVElN RSByZXNwZWN0aXZlbHkuICBJZiBub3QsIHNlZQogCiAjZGVmaW5lIGdjY191bnJlYWNoYWJs ZSgpIF9fYnVpbHRpbl91bnJlYWNoYWJsZSAoKQogCisvKiBVc2VkIGZvciBidWlsZGluZyBl cnJvciBtZXNzYWdlIHN0cmluZ3MuICAqLworI2RlZmluZSBJT01TR19MRU4gMjU2CisKIC8q IFBPU0lYIDIwMDggc3BlY2lmaWVzIHRoYXQgdGhlIGV4dGVuZGVkIGxvY2FsZSBzdHVmZiBp cyBmb3VuZCBpbgogICAgbG9jYWxlLmgsIGJ1dCBzb21lIHN5c3RlbXMgaGF2ZSB0aGVtIGlu IHhsb2NhbGUuaC4gICovCiAKQEAgLTk5LDEwICsxMDIsNiBAQCB0eXBlZGVmIHN0cnVjdCBh cnJheV9sb29wX3NwZWMKIH0KIGFycmF5X2xvb3Bfc3BlYzsKIAotLyogVXNlciBkZWZpbmVk IGlucHV0L291dHB1dCBpb21zZyBsZW5ndGguICovCi0KLSNkZWZpbmUgSU9NU0dfTEVOIDI1 NgotCiAvKiBTdWJyb3V0aW5lIGZvcm1hdHRlZF9kdGlvIChzdHJ1Y3QsIHVuaXQsIGlvdHlw ZSwgdl9saXN0LCBpb3N0YXQsCiAJCQkgICAgICBpb21zZywgKF9pb3R5cGUpLCAoX2lvbXNn KSkgICovCiB0eXBlZGVmIHZvaWQgKCpmb3JtYXR0ZWRfZHRpbykodm9pZCAqLCBHRkNfSU5U RUdFUl80ICosIGNoYXIgKiwKZGlmZiAtLWdpdCBhL2xpYmdmb3J0cmFuL2lvL2xpc3RfcmVh ZC5jIGIvbGliZ2ZvcnRyYW4vaW8vbGlzdF9yZWFkLmMKaW5kZXggZWUzYWI3MTM1MTkuLjNk Mzc0ZjU1MDI3IDEwMDY0NAotLS0gYS9saWJnZm9ydHJhbi9pby9saXN0X3JlYWQuYworKysg Yi9saWJnZm9ydHJhbi9pby9saXN0X3JlYWQuYwpAQCAtNjQsMTAgKzY0LDYgQEAgdHlwZWRl ZiB1bnNpZ25lZCBjaGFyIHVjaGFyOwogCiAjZGVmaW5lIE1BWF9SRVBFQVQgMjAwMDAwMDAw CiAKLQotI2RlZmluZSBNU0dMRU4gMTAwCi0KLQogLyogV3JhcHBlcnMgZm9yIGNhbGxpbmcg dGhlIGN1cnJlbnQgd29ya2VyIGZ1bmN0aW9ucy4gICovCiAKICNkZWZpbmUgbmV4dF9jaGFy KGR0cCkgKChkdHApLT51LnAuY3VycmVudF91bml0LT5uZXh0X2NoYXJfZm5fcHRyIChkdHAp KQpAQCAtNjMyLDcgKzYyOCw3IEBAIG5tbF9iYWRfcmV0dXJuIChzdF9wYXJhbWV0ZXJfZHQg KmR0cCwgY2hhciBjKQogc3RhdGljIGludAogY29udmVydF9pbnRlZ2VyIChzdF9wYXJhbWV0 ZXJfZHQgKmR0cCwgaW50IGxlbmd0aCwgaW50IG5lZ2F0aXZlKQogewotICBjaGFyIGMsICpi dWZmZXIsIG1lc3NhZ2VbTVNHTEVOXTsKKyAgY2hhciBjLCAqYnVmZmVyLCBtZXNzYWdlW0lP TVNHX0xFTl07CiAgIGludCBtOwogICBHRkNfVUlOVEVHRVJfTEFSR0VTVCB2LCBtYXgsIG1h eDEwOwogICBHRkNfSU5URUdFUl9MQVJHRVNUIHZhbHVlOwpAQCAtNjgyLDcgKzY3OCw3IEBA IGNvbnZlcnRfaW50ZWdlciAoc3RfcGFyYW1ldGVyX2R0ICpkdHAsIGludCBsZW5ndGgsIGlu dCBuZWdhdGl2ZSkKIAogICAgICAgaWYgKGR0cC0+dS5wLnJlcGVhdF9jb3VudCA9PSAwKQog CXsKLQkgIHNucHJpbnRmIChtZXNzYWdlLCBNU0dMRU4sICJaZXJvIHJlcGVhdCBjb3VudCBp biBpdGVtICVkIG9mIGxpc3QgaW5wdXQiLAorCSAgc25wcmludGYgKG1lc3NhZ2UsIElPTVNH X0xFTiwgIlplcm8gcmVwZWF0IGNvdW50IGluIGl0ZW0gJWQgb2YgbGlzdCBpbnB1dCIsCiAJ CSAgIGR0cC0+dS5wLml0ZW1fY291bnQpOwogCiAJICBnZW5lcmF0ZV9lcnJvciAoJmR0cC0+ Y29tbW9uLCBMSUJFUlJPUl9SRUFEX1ZBTFVFLCBtZXNzYWdlKTsKQEAgLTY5NSwxMCArNjkx LDEwIEBAIGNvbnZlcnRfaW50ZWdlciAoc3RfcGFyYW1ldGVyX2R0ICpkdHAsIGludCBsZW5n dGgsIGludCBuZWdhdGl2ZSkKIAogIG92ZXJmbG93OgogICBpZiAobGVuZ3RoID09IC0xKQot ICAgIHNucHJpbnRmIChtZXNzYWdlLCBNU0dMRU4sICJSZXBlYXQgY291bnQgb3ZlcmZsb3cg aW4gaXRlbSAlZCBvZiBsaXN0IGlucHV0IiwKKyAgICBzbnByaW50ZiAobWVzc2FnZSwgSU9N U0dfTEVOLCAiUmVwZWF0IGNvdW50IG92ZXJmbG93IGluIGl0ZW0gJWQgb2YgbGlzdCBpbnB1 dCIsCiAJICAgICBkdHAtPnUucC5pdGVtX2NvdW50KTsKICAgZWxzZQotICAgIHNucHJpbnRm IChtZXNzYWdlLCBNU0dMRU4sICJJbnRlZ2VyIG92ZXJmbG93IHdoaWxlIHJlYWRpbmcgaXRl bSAlZCIsCisgICAgc25wcmludGYgKG1lc3NhZ2UsIElPTVNHX0xFTiwgIkludGVnZXIgb3Zl cmZsb3cgd2hpbGUgcmVhZGluZyBpdGVtICVkIiwKIAkgICAgIGR0cC0+dS5wLml0ZW1fY291 bnQpOwogCiAgIGZyZWVfc2F2ZWQgKGR0cCk7CkBAIC03MTUsNyArNzExLDcgQEAgY29udmVy dF9pbnRlZ2VyIChzdF9wYXJhbWV0ZXJfZHQgKmR0cCwgaW50IGxlbmd0aCwgaW50IG5lZ2F0 aXZlKQogc3RhdGljIGludAogcGFyc2VfcmVwZWF0IChzdF9wYXJhbWV0ZXJfZHQgKmR0cCkK IHsKLSAgY2hhciBtZXNzYWdlW01TR0xFTl07CisgIGNoYXIgbWVzc2FnZVtJT01TR19MRU5d OwogICBpbnQgYywgcmVwZWF0OwogCiAgIGlmICgoYyA9IG5leHRfY2hhciAoZHRwKSkgPT0g RU9GKQpAQCAtNzQ2LDcgKzc0Miw3IEBAIHBhcnNlX3JlcGVhdCAoc3RfcGFyYW1ldGVyX2R0 ICpkdHApCiAKIAkgIGlmIChyZXBlYXQgPiBNQVhfUkVQRUFUKQogCSAgICB7Ci0JICAgICAg c25wcmludGYgKG1lc3NhZ2UsIE1TR0xFTiwKKwkgICAgICBzbnByaW50ZiAobWVzc2FnZSwg SU9NU0dfTEVOLAogCQkgICAgICAgIlJlcGVhdCBjb3VudCBvdmVyZmxvdyBpbiBpdGVtICVk IG9mIGxpc3QgaW5wdXQiLAogCQkgICAgICAgZHRwLT51LnAuaXRlbV9jb3VudCk7CiAKQEAg LTc1OSw3ICs3NTUsNyBAQCBwYXJzZV9yZXBlYXQgKHN0X3BhcmFtZXRlcl9kdCAqZHRwKQog CWNhc2UgJyonOgogCSAgaWYgKHJlcGVhdCA9PSAwKQogCSAgICB7Ci0JICAgICAgc25wcmlu dGYgKG1lc3NhZ2UsIE1TR0xFTiwKKwkgICAgICBzbnByaW50ZiAobWVzc2FnZSwgSU9NU0df TEVOLAogCQkgICAgICAgIlplcm8gcmVwZWF0IGNvdW50IGluIGl0ZW0gJWQgb2YgbGlzdCBp bnB1dCIsCiAJCSAgICAgICBkdHAtPnUucC5pdGVtX2NvdW50KTsKIApAQCAtNzg5LDcgKzc4 NSw3IEBAIHBhcnNlX3JlcGVhdCAoc3RfcGFyYW1ldGVyX2R0ICpkdHApCiAgICAgfQogICBl bHNlCiAgICAgZWF0X2xpbmUgKGR0cCk7Ci0gIHNucHJpbnRmIChtZXNzYWdlLCBNU0dMRU4s ICJCYWQgcmVwZWF0IGNvdW50IGluIGl0ZW0gJWQgb2YgbGlzdCBpbnB1dCIsCisgIHNucHJp bnRmIChtZXNzYWdlLCBJT01TR19MRU4sICJCYWQgcmVwZWF0IGNvdW50IGluIGl0ZW0gJWQg b2YgbGlzdCBpbnB1dCIsCiAJICAgZHRwLT51LnAuaXRlbV9jb3VudCk7CiAgIGdlbmVyYXRl X2Vycm9yICgmZHRwLT5jb21tb24sIExJQkVSUk9SX1JFQURfVkFMVUUsIG1lc3NhZ2UpOwog ICByZXR1cm4gMTsKQEAgLTgxNiw3ICs4MTIsNyBAQCBsX3B1c2hfY2hhciAoc3RfcGFyYW1l dGVyX2R0ICpkdHAsIGNoYXIgYykKIHN0YXRpYyB2b2lkCiByZWFkX2xvZ2ljYWwgKHN0X3Bh cmFtZXRlcl9kdCAqZHRwLCBpbnQgbGVuZ3RoKQogewotICBjaGFyIG1lc3NhZ2VbTVNHTEVO XTsKKyAgY2hhciBtZXNzYWdlW0lPTVNHX0xFTl07CiAgIGludCBjLCBpLCB2OwogCiAgIGlm IChwYXJzZV9yZXBlYXQgKGR0cCkpCkBAIC05NTMsNyArOTQ5LDcgQEAgcmVhZF9sb2dpY2Fs IChzdF9wYXJhbWV0ZXJfZHQgKmR0cCwgaW50IGxlbmd0aCkKICAgICB9CiAgIGVsc2UgaWYg KGMgIT0gJ1xuJykKICAgICBlYXRfbGluZSAoZHRwKTsKLSAgc25wcmludGYgKG1lc3NhZ2Us IE1TR0xFTiwgIkJhZCBsb2dpY2FsIHZhbHVlIHdoaWxlIHJlYWRpbmcgaXRlbSAlZCIsCisg IHNucHJpbnRmIChtZXNzYWdlLCBJT01TR19MRU4sICJCYWQgbG9naWNhbCB2YWx1ZSB3aGls ZSByZWFkaW5nIGl0ZW0gJWQiLAogCSAgICAgIGR0cC0+dS5wLml0ZW1fY291bnQpOwogICBm cmVlX2xpbmUgKGR0cCk7CiAgIGdlbmVyYXRlX2Vycm9yICgmZHRwLT5jb21tb24sIExJQkVS Uk9SX1JFQURfVkFMVUUsIG1lc3NhZ2UpOwpAQCAtOTc3LDcgKzk3Myw3IEBAIHJlYWRfbG9n aWNhbCAoc3RfcGFyYW1ldGVyX2R0ICpkdHAsIGludCBsZW5ndGgpCiBzdGF0aWMgdm9pZAog cmVhZF9pbnRlZ2VyIChzdF9wYXJhbWV0ZXJfZHQgKmR0cCwgaW50IGxlbmd0aCkKIHsKLSAg Y2hhciBtZXNzYWdlW01TR0xFTl07CisgIGNoYXIgbWVzc2FnZVtJT01TR19MRU5dOwogICBp bnQgYywgbmVnYXRpdmU7CiAKICAgbmVnYXRpdmUgPSAwOwpAQCAtMTExMiw3ICsxMTA4LDcg QEAgcmVhZF9pbnRlZ2VyIChzdF9wYXJhbWV0ZXJfZHQgKmR0cCwgaW50IGxlbmd0aCkKICAg ZWxzZSBpZiAoYyAhPSAnXG4nKQogICAgIGVhdF9saW5lIChkdHApOwogCi0gIHNucHJpbnRm IChtZXNzYWdlLCBNU0dMRU4sICJCYWQgaW50ZWdlciBmb3IgaXRlbSAlZCBpbiBsaXN0IGlu cHV0IiwKKyAgc25wcmludGYgKG1lc3NhZ2UsIElPTVNHX0xFTiwgIkJhZCBpbnRlZ2VyIGZv ciBpdGVtICVkIGluIGxpc3QgaW5wdXQiLAogCSAgICAgIGR0cC0+dS5wLml0ZW1fY291bnQp OwogICBmcmVlX2xpbmUgKGR0cCk7CiAgIGdlbmVyYXRlX2Vycm9yICgmZHRwLT5jb21tb24s IExJQkVSUk9SX1JFQURfVkFMVUUsIG1lc3NhZ2UpOwpAQCAtMTE0MCw3ICsxMTM2LDcgQEAg cmVhZF9pbnRlZ2VyIChzdF9wYXJhbWV0ZXJfZHQgKmR0cCwgaW50IGxlbmd0aCkKIHN0YXRp YyB2b2lkCiByZWFkX2NoYXJhY3RlciAoc3RfcGFyYW1ldGVyX2R0ICpkdHAsIGludCBsZW5n dGggX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpKQogewotICBjaGFyIHF1b3RlLCBtZXNzYWdl W01TR0xFTl07CisgIGNoYXIgcXVvdGUsIG1lc3NhZ2VbSU9NU0dfTEVOXTsKICAgaW50IGM7 CiAKICAgcXVvdGUgPSAnICc7CQkJLyogU3BhY2UgbWVhbnMgbm8gcXVvdGUgY2hhcmFjdGVy LiAgKi8KQEAgLTEyODYsNyArMTI4Miw3IEBAIHJlYWRfY2hhcmFjdGVyIChzdF9wYXJhbWV0 ZXJfZHQgKmR0cCwgaW50IGxlbmd0aCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkpCiAgIGVs c2UKICAgICB7CiAgICAgICBmcmVlX3NhdmVkIChkdHApOwotICAgICAgc25wcmludGYgKG1l c3NhZ2UsIE1TR0xFTiwgIkludmFsaWQgc3RyaW5nIGlucHV0IGluIGl0ZW0gJWQiLAorICAg ICAgc25wcmludGYgKG1lc3NhZ2UsIElPTVNHX0xFTiwgIkludmFsaWQgc3RyaW5nIGlucHV0 IGluIGl0ZW0gJWQiLAogCQkgIGR0cC0+dS5wLml0ZW1fY291bnQpOwogICAgICAgZ2VuZXJh dGVfZXJyb3IgKCZkdHAtPmNvbW1vbiwgTElCRVJST1JfUkVBRF9WQUxVRSwgbWVzc2FnZSk7 CiAgICAgfQpAQCAtMTMwNiw3ICsxMzAyLDcgQEAgcmVhZF9jaGFyYWN0ZXIgKHN0X3BhcmFt ZXRlcl9kdCAqZHRwLCBpbnQgbGVuZ3RoIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSkKIHN0 YXRpYyBpbnQKIHBhcnNlX3JlYWwgKHN0X3BhcmFtZXRlcl9kdCAqZHRwLCB2b2lkICpidWZm ZXIsIGludCBsZW5ndGgpCiB7Ci0gIGNoYXIgbWVzc2FnZVtNU0dMRU5dOworICBjaGFyIG1l c3NhZ2VbSU9NU0dfTEVOXTsKICAgaW50IGMsIG0sIHNlZW5fZHA7CiAKICAgaWYgKChjID0g bmV4dF9jaGFyIChkdHApKSA9PSBFT0YpCkBAIC0xNTIxLDcgKzE1MTcsNyBAQCBwYXJzZV9y ZWFsIChzdF9wYXJhbWV0ZXJfZHQgKmR0cCwgdm9pZCAqYnVmZmVyLCBpbnQgbGVuZ3RoKQog ICBlbHNlIGlmIChjICE9ICdcbicpCiAgICAgZWF0X2xpbmUgKGR0cCk7CiAKLSAgc25wcmlu dGYgKG1lc3NhZ2UsIE1TR0xFTiwgIkJhZCBjb21wbGV4IGZsb2F0aW5nIHBvaW50ICIKKyAg c25wcmludGYgKG1lc3NhZ2UsIElPTVNHX0xFTiwgIkJhZCBjb21wbGV4IGZsb2F0aW5nIHBv aW50ICIKIAkgICAgIm51bWJlciBmb3IgaXRlbSAlZCIsIGR0cC0+dS5wLml0ZW1fY291bnQp OwogICBmcmVlX2xpbmUgKGR0cCk7CiAgIGdlbmVyYXRlX2Vycm9yICgmZHRwLT5jb21tb24s IExJQkVSUk9SX1JFQURfVkFMVUUsIG1lc3NhZ2UpOwpAQCAtMTUzNiw3ICsxNTMyLDcgQEAg cGFyc2VfcmVhbCAoc3RfcGFyYW1ldGVyX2R0ICpkdHAsIHZvaWQgKmJ1ZmZlciwgaW50IGxl bmd0aCkKIHN0YXRpYyB2b2lkCiByZWFkX2NvbXBsZXggKHN0X3BhcmFtZXRlcl9kdCAqZHRw LCB2b2lkICpkZXN0LCBpbnQga2luZCwgc2l6ZV90IHNpemUpCiB7Ci0gIGNoYXIgbWVzc2Fn ZVtNU0dMRU5dOworICBjaGFyIG1lc3NhZ2VbSU9NU0dfTEVOXTsKICAgaW50IGM7CiAKICAg aWYgKHBhcnNlX3JlcGVhdCAoZHRwKSkKQEAgLTE2MzMsNyArMTYyOSw3IEBAIGVvbF80Ogog ICBlbHNlIGlmIChjICE9ICdcbicpCiAgICAgZWF0X2xpbmUgKGR0cCk7CiAKLSAgc25wcmlu dGYgKG1lc3NhZ2UsIE1TR0xFTiwgIkJhZCBjb21wbGV4IHZhbHVlIGluIGl0ZW0gJWQgb2Yg bGlzdCBpbnB1dCIsCisgIHNucHJpbnRmIChtZXNzYWdlLCBJT01TR19MRU4sICJCYWQgY29t cGxleCB2YWx1ZSBpbiBpdGVtICVkIG9mIGxpc3QgaW5wdXQiLAogCSAgICAgIGR0cC0+dS5w Lml0ZW1fY291bnQpOwogICBmcmVlX2xpbmUgKGR0cCk7CiAgIGdlbmVyYXRlX2Vycm9yICgm ZHRwLT5jb21tb24sIExJQkVSUk9SX1JFQURfVkFMVUUsIG1lc3NhZ2UpOwpAQCAtMTY0NSw3 ICsxNjQxLDcgQEAgZW9sXzQ6CiBzdGF0aWMgdm9pZAogcmVhZF9yZWFsIChzdF9wYXJhbWV0 ZXJfZHQgKmR0cCwgdm9pZCAqZGVzdCwgaW50IGxlbmd0aCkKIHsKLSAgY2hhciBtZXNzYWdl W01TR0xFTl07CisgIGNoYXIgbWVzc2FnZVtJT01TR19MRU5dOwogICBpbnQgYzsKICAgaW50 IHNlZW5fZHA7CiAgIGludCBpc19pbmY7CkBAIC0yMDU5LDcgKzIwNTUsNyBAQCByZWFkX3Jl YWwgKHN0X3BhcmFtZXRlcl9kdCAqZHRwLCB2b2lkICpkZXN0LCBpbnQgbGVuZ3RoKQogICBl bHNlIGlmIChjICE9ICdcbicpCiAgICAgZWF0X2xpbmUgKGR0cCk7CiAKLSAgc25wcmludGYg KG1lc3NhZ2UsIE1TR0xFTiwgIkJhZCByZWFsIG51bWJlciBpbiBpdGVtICVkIG9mIGxpc3Qg aW5wdXQiLAorICBzbnByaW50ZiAobWVzc2FnZSwgSU9NU0dfTEVOLCAiQmFkIHJlYWwgbnVt YmVyIGluIGl0ZW0gJWQgb2YgbGlzdCBpbnB1dCIsCiAJICAgICAgZHRwLT51LnAuaXRlbV9j b3VudCk7CiAgIGZyZWVfbGluZSAoZHRwKTsKICAgZ2VuZXJhdGVfZXJyb3IgKCZkdHAtPmNv bW1vbiwgTElCRVJST1JfUkVBRF9WQUxVRSwgbWVzc2FnZSk7CkBAIC0yMDcyLDExICsyMDY4 LDExIEBAIHJlYWRfcmVhbCAoc3RfcGFyYW1ldGVyX2R0ICpkdHAsIHZvaWQgKmRlc3QsIGlu dCBsZW5ndGgpCiBzdGF0aWMgaW50CiBjaGVja190eXBlIChzdF9wYXJhbWV0ZXJfZHQgKmR0 cCwgYnQgdHlwZSwgaW50IGtpbmQpCiB7Ci0gIGNoYXIgbWVzc2FnZVtNU0dMRU5dOworICBj aGFyIG1lc3NhZ2VbSU9NU0dfTEVOXTsKIAogICBpZiAoZHRwLT51LnAuc2F2ZWRfdHlwZSAh PSBCVF9VTktOT1dOICYmIGR0cC0+dS5wLnNhdmVkX3R5cGUgIT0gdHlwZSkKICAgICB7Ci0g ICAgICBzbnByaW50ZiAobWVzc2FnZSwgTVNHTEVOLCAiUmVhZCB0eXBlICVzIHdoZXJlICVz IHdhcyBleHBlY3RlZCBmb3IgaXRlbSAlZCIsCisgICAgICBzbnByaW50ZiAobWVzc2FnZSwg SU9NU0dfTEVOLCAiUmVhZCB0eXBlICVzIHdoZXJlICVzIHdhcyBleHBlY3RlZCBmb3IgaXRl bSAlZCIsCiAJCSAgdHlwZV9uYW1lIChkdHAtPnUucC5zYXZlZF90eXBlKSwgdHlwZV9uYW1l ICh0eXBlKSwKIAkJICBkdHAtPnUucC5pdGVtX2NvdW50KTsKICAgICAgIGZyZWVfbGluZSAo ZHRwKTsKQEAgLTIwOTAsNyArMjA4Niw3IEBAIGNoZWNrX3R5cGUgKHN0X3BhcmFtZXRlcl9k dCAqZHRwLCBidCB0eXBlLCBpbnQga2luZCkKICAgaWYgKCh0eXBlICE9IEJUX0NPTVBMRVgg JiYgZHRwLT51LnAuc2F2ZWRfbGVuZ3RoICE9IGtpbmQpCiAgICAgICB8fCAodHlwZSA9PSBC VF9DT01QTEVYICYmIGR0cC0+dS5wLnNhdmVkX2xlbmd0aCAhPSBraW5kKjIpKQogICAgIHsK LSAgICAgIHNucHJpbnRmIChtZXNzYWdlLCBNU0dMRU4sCisgICAgICBzbnByaW50ZiAobWVz c2FnZSwgSU9NU0dfTEVOLAogCQkgICJSZWFkIGtpbmQgJWQgJXMgd2hlcmUga2luZCAlZCBp cyByZXF1aXJlZCBmb3IgaXRlbSAlZCIsCiAJCSAgdHlwZSA9PSBCVF9DT01QTEVYID8gZHRw LT51LnAuc2F2ZWRfbGVuZ3RoIC8gMgogCQkJCSAgICAgOiBkdHAtPnUucC5zYXZlZF9sZW5n dGgsCkBAIC0yMTM4LDcgKzIxMzQsNiBAQCBzdGF0aWMgaW50CiBsaXN0X2Zvcm1hdHRlZF9y ZWFkX3NjYWxhciAoc3RfcGFyYW1ldGVyX2R0ICpkdHAsIGJ0IHR5cGUsIHZvaWQgKnAsCiAJ CQkgICAgaW50IGtpbmQsIHNpemVfdCBzaXplKQogewotICBjaGFyIG1lc3NhZ2VbTVNHTEVO XTsKICAgZ2ZjX2NoYXI0X3QgKnEsICpyOwogICBzaXplX3QgbTsKICAgaW50IGM7CkBAIC0y MjMzLDcgKzIyMjgsNyBAQCBsaXN0X2Zvcm1hdHRlZF9yZWFkX3NjYWxhciAoc3RfcGFyYW1l dGVyX2R0ICpkdHAsIGJ0IHR5cGUsIHZvaWQgKnAsCiAJICBHRkNfSU5URUdFUl80IHVuaXQg PSBkdHAtPnUucC5jdXJyZW50X3VuaXQtPnVuaXRfbnVtYmVyOwogCSAgY2hhciBpb3R5cGVb XSA9ICJMSVNURElSRUNURUQiOwogICAgICAgICAgIGdmY19jaGFybGVuX3R5cGUgaW90eXBl X2xlbiA9IDEyOwotCSAgY2hhciB0bXBfaW9tc2dbSU9NU0dfTEVOXSA9ICIiOworCSAgY2hh ciB0bXBfaW9tc2dbSU9NU0dfTEVOXTsKIAkgIGNoYXIgKmNoaWxkX2lvbXNnOwogCSAgZ2Zj X2NoYXJsZW5fdHlwZSBjaGlsZF9pb21zZ19sZW47CiAJICBHRkNfSU5URUdFUl80IG5vaW9z dGF0OwpAQCAtMjI2NywyMCArMjI2MiwxMyBAQCBsaXN0X2Zvcm1hdHRlZF9yZWFkX3NjYWxh ciAoc3RfcGFyYW1ldGVyX2R0ICpkdHAsIGJ0IHR5cGUsIHZvaWQgKnAsCiAJCQkgICAgICBp b3R5cGVfbGVuLCBjaGlsZF9pb21zZ19sZW4pOwogCSAgZHRwLT51LnAuY2hpbGRfc2F2ZWRf aW9zdGF0ID0gKmNoaWxkX2lvc3RhdDsKIAkgIGR0cC0+dS5wLmN1cnJlbnRfdW5pdC0+Y2hp bGRfZHRpby0tOwotCSAgCi0JICAKKwogCSAgaWYgKChkdHAtPnUucC5jaGlsZF9zYXZlZF9p b3N0YXQgIT0gMCkgJiYKIAkgICAgICAhKGR0cC0+Y29tbW9uLmZsYWdzICYgSU9QQVJNX0hB U19JT01TRykgJiYKIAkgICAgICAhKGR0cC0+Y29tbW9uLmZsYWdzICYgSU9QQVJNX0hBU19J T1NUQVQpKQogCSAgICB7Ci0JICAgICAgLyogVHJpbSB0cmFpbGluZyBzcGFjZXMgZnJvbSB0 aGUgbWVzc2FnZS4gICovCi0JICAgICAgZm9yKGludCBpID0gSU9NU0dfTEVOIC0gMTsgaSA+ IDA7IGktLSkKLQkJaWYgKCFpc3NwYWNlKGNoaWxkX2lvbXNnW2ldKSkKLQkJICB7Ci0JCSAg ICAvKiBBZGQgdHdvIHRvIGdldCBiYWNrIHRvIHRoZSBlbmQgb2YgY2hpbGRfaW9tc2cuICAq LwotCQkgICAgY2hpbGRfaW9tc2dfbGVuID0gaSsyOwotCQkgICAgYnJlYWs7Ci0JCSAgfQor CSAgICAgIGNoYXIgbWVzc2FnZVtJT01TR19MRU5dOworCSAgICAgIGNoaWxkX2lvbXNnX2xl biA9IHN0cmluZ19sZW5fdHJpbSAoSU9NU0dfTEVOLCBjaGlsZF9pb21zZykgKyAxOwogCSAg ICAgIGZyZWVfbGluZSAoZHRwKTsKIAkgICAgICBzbnByaW50ZiAobWVzc2FnZSwgY2hpbGRf aW9tc2dfbGVuLCBjaGlsZF9pb21zZyk7CiAJICAgICAgZ2VuZXJhdGVfZXJyb3IgKCZkdHAt PmNvbW1vbiwgZHRwLT51LnAuY2hpbGRfc2F2ZWRfaW9zdGF0LApAQCAtMzA2MCw3ICszMDQ4 LDcgQEAgbm1sX3JlYWRfb2JqIChzdF9wYXJhbWV0ZXJfZHQgKmR0cCwgbmFtZWxpc3RfaW5m byAqbmwsIGluZGV4X3R5cGUgb2Zmc2V0LAogCiAJCUdGQ19ERVNDUklQVE9SX0RBVEEoJnZs aXN0KSA9IE5VTEw7CiAJCUdGQ19ESU1FTlNJT05fU0VUKHZsaXN0LmRpbVswXSwxLCAwLCAw KTsKLQkJCisKIAkJbGlzdF9vYmoudnB0ciA9IG5sLT52dGFibGU7CiAJCWxpc3Rfb2JqLmxl biA9IDA7CiAKQEAgLTMwODgsNiArMzA3NiwxOSBAQCBubWxfcmVhZF9vYmogKHN0X3BhcmFt ZXRlcl9kdCAqZHRwLCBuYW1lbGlzdF9pbmZvICpubCwgaW5kZXhfdHlwZSBvZmZzZXQsCiAJ CQkgIGlvdHlwZV9sZW4sIGNoaWxkX2lvbXNnX2xlbik7CiAJCWR0cC0+dS5wLmNoaWxkX3Nh dmVkX2lvc3RhdCA9ICpjaGlsZF9pb3N0YXQ7CiAJCWR0cC0+dS5wLmN1cnJlbnRfdW5pdC0+ Y2hpbGRfZHRpby0tOworCisJCWlmICgoZHRwLT51LnAuY2hpbGRfc2F2ZWRfaW9zdGF0ICE9 IDApICYmCisJCSAgICAhKGR0cC0+Y29tbW9uLmZsYWdzICYgSU9QQVJNX0hBU19JT01TRykg JiYKKwkJICAgICEoZHRwLT5jb21tb24uZmxhZ3MgJiBJT1BBUk1fSEFTX0lPU1RBVCkpCisJ CSAgeworCQkgICAgY2hhciBtZXNzYWdlW0lPTVNHX0xFTl07CisJCSAgICBjaGlsZF9pb21z Z19sZW4gPSBzdHJpbmdfbGVuX3RyaW0gKElPTVNHX0xFTiwgY2hpbGRfaW9tc2cpICsgMTsK KwkJICAgIHNucHJpbnRmIChtZXNzYWdlLCBjaGlsZF9pb21zZ19sZW4sIGNoaWxkX2lvbXNn KTsKKwkJICAgIGdlbmVyYXRlX2Vycm9yICgmZHRwLT5jb21tb24sIGR0cC0+dS5wLmNoaWxk X3NhdmVkX2lvc3RhdCwKKwkJCQkgICAgbWVzc2FnZSk7CisJCSAgICBnb3RvIG5tbF9lcnJf cmV0OworCQkgIH0KKwogCQlnb3RvIGluY3JfaWR4OwogCSAgICAgIH0KIApkaWZmIC0tZ2l0 IGEvbGliZ2ZvcnRyYW4vaW8vdHJhbnNmZXIuYyBiL2xpYmdmb3J0cmFuL2lvL3RyYW5zZmVy LmMKaW5kZXggMDFkYjQxMjJkMTYuLjhhMDk0YTZhYTA5IDEwMDY0NAotLS0gYS9saWJnZm9y dHJhbi9pby90cmFuc2Zlci5jCisrKyBiL2xpYmdmb3J0cmFuL2lvL3RyYW5zZmVyLmMKQEAg LTExMjAsNyArMTEyMCwyMCBAQCB1bmZvcm1hdHRlZF9yZWFkIChzdF9wYXJhbWV0ZXJfZHQg KmR0cCwgYnQgdHlwZSwKIAkgIGR0cC0+dS5wLmN1cnJlbnRfdW5pdC0+Y2hpbGRfZHRpbysr OwogCSAgZHRwLT51LnAudWZkdGlvX3B0ciAoZGVzdCwgJnVuaXQsIGNoaWxkX2lvc3RhdCwg Y2hpbGRfaW9tc2csCiAJCQkgICAgICAgY2hpbGRfaW9tc2dfbGVuKTsKKwkgIGR0cC0+dS5w LmNoaWxkX3NhdmVkX2lvc3RhdCA9ICpjaGlsZF9pb3N0YXQ7CiAJICBkdHAtPnUucC5jdXJy ZW50X3VuaXQtPmNoaWxkX2R0aW8tLTsKKworCSAgaWYgKChkdHAtPnUucC5jaGlsZF9zYXZl ZF9pb3N0YXQgIT0gMCkgJiYKKwkgICAgICAhKGR0cC0+Y29tbW9uLmZsYWdzICYgSU9QQVJN X0hBU19JT01TRykgJiYKKwkgICAgICAhKGR0cC0+Y29tbW9uLmZsYWdzICYgSU9QQVJNX0hB U19JT1NUQVQpKQorCSAgICB7CisJICAgICAgY2hhciBtZXNzYWdlW0lPTVNHX0xFTl07CisJ ICAgICAgY2hpbGRfaW9tc2dfbGVuID0gc3RyaW5nX2xlbl90cmltIChJT01TR19MRU4sIGNo aWxkX2lvbXNnKSArIDE7CisJICAgICAgc25wcmludGYgKG1lc3NhZ2UsIGNoaWxkX2lvbXNn X2xlbiwgY2hpbGRfaW9tc2cpOworCSAgICAgIGdlbmVyYXRlX2Vycm9yICgmZHRwLT5jb21t b24sIGR0cC0+dS5wLmNoaWxkX3NhdmVkX2lvc3RhdCwKKwkJCSAgICAgIG1lc3NhZ2UpOwor CSAgICB9CisKIAkgIHJldHVybjsKICAgICB9CiAKQEAgLTEyNTAsNyArMTI2MywxOSBAQCB1 bmZvcm1hdHRlZF93cml0ZSAoc3RfcGFyYW1ldGVyX2R0ICpkdHAsIGJ0IHR5cGUsCiAJICBk dHAtPnUucC5jdXJyZW50X3VuaXQtPmNoaWxkX2R0aW8rKzsKIAkgIGR0cC0+dS5wLnVmZHRp b19wdHIgKHNvdXJjZSwgJnVuaXQsIGNoaWxkX2lvc3RhdCwgY2hpbGRfaW9tc2csCiAJCQkg ICAgICAgY2hpbGRfaW9tc2dfbGVuKTsKKwkgIGR0cC0+dS5wLmNoaWxkX3NhdmVkX2lvc3Rh dCA9ICpjaGlsZF9pb3N0YXQ7CiAJICBkdHAtPnUucC5jdXJyZW50X3VuaXQtPmNoaWxkX2R0 aW8tLTsKKworCSAgaWYgKChkdHAtPnUucC5jaGlsZF9zYXZlZF9pb3N0YXQgIT0gMCkgJiYK KwkgICAgICAhKGR0cC0+Y29tbW9uLmZsYWdzICYgSU9QQVJNX0hBU19JT01TRykgJiYKKwkg ICAgICAhKGR0cC0+Y29tbW9uLmZsYWdzICYgSU9QQVJNX0hBU19JT1NUQVQpKQorCSAgICB7 CisJICAgICAgY2hhciBtZXNzYWdlW0lPTVNHX0xFTl07CisJICAgICAgY2hpbGRfaW9tc2df bGVuID0gc3RyaW5nX2xlbl90cmltIChJT01TR19MRU4sIGNoaWxkX2lvbXNnKSArIDE7CisJ ICAgICAgc25wcmludGYgKG1lc3NhZ2UsIGNoaWxkX2lvbXNnX2xlbiwgY2hpbGRfaW9tc2cp OworCSAgICAgIGdlbmVyYXRlX2Vycm9yICgmZHRwLT5jb21tb24sIGR0cC0+dS5wLmNoaWxk X3NhdmVkX2lvc3RhdCwKKwkJCSAgICAgIG1lc3NhZ2UpOworCSAgICB9CiAJICByZXR1cm47 CiAgICAgfQogCkBAIC0xNzMwLDggKzE3NTUsMjAgQEAgZm9ybWF0dGVkX3RyYW5zZmVyX3Nj YWxhcl9yZWFkIChzdF9wYXJhbWV0ZXJfZHQgKmR0cCwgYnQgdHlwZSwgdm9pZCAqcCwgaW50 IGtpbmQKIAkgIGR0cC0+dS5wLmZkdGlvX3B0ciAocCwgJnVuaXQsIGlvdHlwZSwgZi0+dS51 ZGYudmxpc3QsCiAJCQkgICAgICBjaGlsZF9pb3N0YXQsIGNoaWxkX2lvbXNnLAogCQkJICAg ICAgaW90eXBlX2xlbiwgY2hpbGRfaW9tc2dfbGVuKTsKKwkgIGR0cC0+dS5wLmNoaWxkX3Nh dmVkX2lvc3RhdCA9ICpjaGlsZF9pb3N0YXQ7CiAJICBkdHAtPnUucC5jdXJyZW50X3VuaXQt PmNoaWxkX2R0aW8tLTsKIAorCSAgaWYgKChkdHAtPnUucC5jaGlsZF9zYXZlZF9pb3N0YXQg IT0gMCkgJiYKKwkgICAgICAhKGR0cC0+Y29tbW9uLmZsYWdzICYgSU9QQVJNX0hBU19JT01T RykgJiYKKwkgICAgICAhKGR0cC0+Y29tbW9uLmZsYWdzICYgSU9QQVJNX0hBU19JT1NUQVQp KQorCSAgICB7CisJICAgICAgY2hhciBtZXNzYWdlW0lPTVNHX0xFTl07CisJICAgICAgY2hp bGRfaW9tc2dfbGVuID0gc3RyaW5nX2xlbl90cmltIChJT01TR19MRU4sIGNoaWxkX2lvbXNn KSArIDE7CisJICAgICAgc25wcmludGYgKG1lc3NhZ2UsIGNoaWxkX2lvbXNnX2xlbiwgY2hp bGRfaW9tc2cpOworCSAgICAgIGdlbmVyYXRlX2Vycm9yICgmZHRwLT5jb21tb24sIGR0cC0+ dS5wLmNoaWxkX3NhdmVkX2lvc3RhdCwKKwkJCSAgICAgIG1lc3NhZ2UpOworCSAgICB9CisK IAkgIGlmIChmLT51LnVkZi5zdHJpbmdfbGVuICE9IDApCiAJICAgIGZyZWUgKGlvdHlwZSk7 CiAJICAvKiBOb3RlOiB2bGlzdCBpcyBmcmVlZCBpbiBmcmVlX2Zvcm1hdF9kYXRhLiAgKi8K QEAgLTIyMTQsOCArMjI1MSwyMCBAQCBmb3JtYXR0ZWRfdHJhbnNmZXJfc2NhbGFyX3dyaXRl IChzdF9wYXJhbWV0ZXJfZHQgKmR0cCwgYnQgdHlwZSwgdm9pZCAqcCwgaW50IGtpbgogCSAg ZHRwLT51LnAuZmR0aW9fcHRyIChwLCAmdW5pdCwgaW90eXBlLCBmLT51LnVkZi52bGlzdCwK IAkJCSAgICAgIGNoaWxkX2lvc3RhdCwgY2hpbGRfaW9tc2csCiAJCQkgICAgICBpb3R5cGVf bGVuLCBjaGlsZF9pb21zZ19sZW4pOworCSAgZHRwLT51LnAuY2hpbGRfc2F2ZWRfaW9zdGF0 ID0gKmNoaWxkX2lvc3RhdDsKIAkgIGR0cC0+dS5wLmN1cnJlbnRfdW5pdC0+Y2hpbGRfZHRp by0tOwogCisJICBpZiAoKGR0cC0+dS5wLmNoaWxkX3NhdmVkX2lvc3RhdCAhPSAwKSAmJgor CSAgICAgICEoZHRwLT5jb21tb24uZmxhZ3MgJiBJT1BBUk1fSEFTX0lPTVNHKSAmJgorCSAg ICAgICEoZHRwLT5jb21tb24uZmxhZ3MgJiBJT1BBUk1fSEFTX0lPU1RBVCkpCisJICAgIHsK KwkgICAgICBjaGFyIG1lc3NhZ2VbSU9NU0dfTEVOXTsKKwkgICAgICBjaGlsZF9pb21zZ19s ZW4gPSBzdHJpbmdfbGVuX3RyaW0gKElPTVNHX0xFTiwgY2hpbGRfaW9tc2cpICsgMTsKKwkg ICAgICBzbnByaW50ZiAobWVzc2FnZSwgY2hpbGRfaW9tc2dfbGVuLCBjaGlsZF9pb21zZyk7 CisJICAgICAgZ2VuZXJhdGVfZXJyb3IgKCZkdHAtPmNvbW1vbiwgZHRwLT51LnAuY2hpbGRf c2F2ZWRfaW9zdGF0LAorCQkJICAgICAgbWVzc2FnZSk7CisJICAgIH0KKwogCSAgaWYgKGYt PnUudWRmLnN0cmluZ19sZW4gIT0gMCkKIAkgICAgZnJlZSAoaW90eXBlKTsKIAkgIC8qIE5v dGU6IHZsaXN0IGlzIGZyZWVkIGluIGZyZWVfZm9ybWF0X2RhdGEuICAqLwpkaWZmIC0tZ2l0 IGEvbGliZ2ZvcnRyYW4vaW8vd3JpdGUuYyBiL2xpYmdmb3J0cmFuL2lvL3dyaXRlLmMKaW5k ZXggMWE3YzEyMzQ1ZjkuLjkxMzM2OWRiNDg2IDEwMDY0NAotLS0gYS9saWJnZm9ydHJhbi9p by93cml0ZS5jCisrKyBiL2xpYmdmb3J0cmFuL2lvL3dyaXRlLmMKQEAgLTE5OTEsNyArMTk5 MSwxOSBAQCBsaXN0X2Zvcm1hdHRlZF93cml0ZV9zY2FsYXIgKHN0X3BhcmFtZXRlcl9kdCAq ZHRwLCBidCB0eXBlLCB2b2lkICpwLCBpbnQga2luZCwKIAkgIGR0cC0+dS5wLmZkdGlvX3B0 ciAocCwgJnVuaXQsIGlvdHlwZSwgJnZsaXN0LAogCQkJICAgICAgY2hpbGRfaW9zdGF0LCBj aGlsZF9pb21zZywKIAkJCSAgICAgIGlvdHlwZV9sZW4sIGNoaWxkX2lvbXNnX2xlbik7CisJ ICBkdHAtPnUucC5jaGlsZF9zYXZlZF9pb3N0YXQgPSAqY2hpbGRfaW9zdGF0OwogCSAgZHRw LT51LnAuY3VycmVudF91bml0LT5jaGlsZF9kdGlvLS07CisKKwkgIGlmICgoZHRwLT51LnAu Y2hpbGRfc2F2ZWRfaW9zdGF0ICE9IDApICYmCisJICAgICAgIShkdHAtPmNvbW1vbi5mbGFn cyAmIElPUEFSTV9IQVNfSU9NU0cpICYmCisJICAgICAgIShkdHAtPmNvbW1vbi5mbGFncyAm IElPUEFSTV9IQVNfSU9TVEFUKSkKKwkgICAgeworCSAgICAgIGNoYXIgbWVzc2FnZVtJT01T R19MRU5dOworCSAgICAgIGNoaWxkX2lvbXNnX2xlbiA9IHN0cmluZ19sZW5fdHJpbSAoSU9N U0dfTEVOLCBjaGlsZF9pb21zZykgKyAxOworCSAgICAgIHNucHJpbnRmIChtZXNzYWdlLCBj aGlsZF9pb21zZ19sZW4sIGNoaWxkX2lvbXNnKTsKKwkgICAgICBnZW5lcmF0ZV9lcnJvciAo JmR0cC0+Y29tbW9uLCBkdHAtPnUucC5jaGlsZF9zYXZlZF9pb3N0YXQsCisJCQkgICAgICBt ZXNzYWdlKTsKKwkgICAgfQogICAgICAgfQogICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoK QEAgLTIzMzAsOCArMjM0MiwyMiBAQCBubWxfd3JpdGVfb2JqIChzdF9wYXJhbWV0ZXJfZHQg KmR0cCwgbmFtZWxpc3RfaW5mbyAqb2JqLCBpbmRleF90eXBlIG9mZnNldCwKIAkJCQljaGls ZF9pb3N0YXQsIGNoaWxkX2lvbXNnLAogCQkJCWlvdHlwZV9sZW4sIGNoaWxkX2lvbXNnX2xl bik7CiAJCSAgICB9CisJCSAgZHRwLT51LnAuY2hpbGRfc2F2ZWRfaW9zdGF0ID0gKmNoaWxk X2lvc3RhdDsKIAkJICBkdHAtPnUucC5jdXJyZW50X3VuaXQtPmNoaWxkX2R0aW8tLTsKIAor CQkgIGlmICgoZHRwLT51LnAuY2hpbGRfc2F2ZWRfaW9zdGF0ICE9IDApICYmCisJCSAgICAg ICEoZHRwLT5jb21tb24uZmxhZ3MgJiBJT1BBUk1fSEFTX0lPTVNHKSAmJgorCQkgICAgICAh KGR0cC0+Y29tbW9uLmZsYWdzICYgSU9QQVJNX0hBU19JT1NUQVQpKQorCQkgICAgeworCQkg ICAgICBjaGFyIG1lc3NhZ2VbSU9NU0dfTEVOXTsKKworCQkgICAgICAvKiBUcmltIHRyYWls aW5nIHNwYWNlcyBmcm9tIHRoZSBtZXNzYWdlLiAgKi8KKwkJICAgICAgY2hpbGRfaW9tc2df bGVuID0gc3RyaW5nX2xlbl90cmltIChJT01TR19MRU4sIGNoaWxkX2lvbXNnKSArIDE7CisJ CSAgICAgIHNucHJpbnRmIChtZXNzYWdlLCBjaGlsZF9pb21zZ19sZW4sIGNoaWxkX2lvbXNn KTsKKwkJICAgICAgZ2VuZXJhdGVfZXJyb3IgKCZkdHAtPmNvbW1vbiwgZHRwLT51LnAuY2hp bGRfc2F2ZWRfaW9zdGF0LAorCQkJCSAgICAgIG1lc3NhZ2UpOworCQkgICAgfQorCiAJCSAg Z290byBvYmpfbG9vcDsKIAkJfQogCg== --------------MEm6ny52R7syVIql8LA0i59S--