From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by sourceware.org (Postfix) with ESMTPS id 0E6FF384B0CC for ; Mon, 9 May 2022 10:53:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 0E6FF384B0CC Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.cz Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id C5CD721C3B; Mon, 9 May 2022 10:53:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1652093600; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=8vRZcb6KlEJEBpDxUzjHm+ayhrJTFV1Dtu1X0P2QFDs=; b=Ol+csh87ioXVG/LL+GJ9Qem6Vz5LN9OKlZc4XT2hl3Sq2KyehGOb1/s7pmd5VPDLYnpt1V aEWP49B1ZAfYGBlPPi7P2PVvRr1SLiKjadpPnUEAWzFsx2MBnrNUJEo3YLJtHcKgkpxAK3 5wvTMAZjnLpafANnAD4px6rzaxRV1WY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1652093600; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=8vRZcb6KlEJEBpDxUzjHm+ayhrJTFV1Dtu1X0P2QFDs=; b=bsS8fhBv6A51Wupg148iuAbk5kJC589iymKkABSxvsawmQaHI/+iRAq5eoEeT+kXCvvYGf 9bAlF9UfDjxoeRAQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id AA3B2132C0; Mon, 9 May 2022 10:53:20 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id JtDkJ6DyeGLuEQAAMHmgww (envelope-from ); Mon, 09 May 2022 10:53:20 +0000 Content-Type: multipart/mixed; boundary="------------G0iMsdX8V3Z0pZp1VQt1NUfX" Message-ID: Date: Mon, 9 May 2022 12:53:20 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.0 Subject: Re: [PATCH] Use more ARRAY_SIZE. Content-Language: en-US To: Arnaud Charlet Cc: gcc-patches@gcc.gnu.org References: <20220509102157.GA1290490@adacore.com> From: =?UTF-8?Q?Martin_Li=c5=a1ka?= In-Reply-To: <20220509102157.GA1290490@adacore.com> X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 May 2022 10:53:27 -0000 This is a multi-part message in MIME format. --------------G0iMsdX8V3Z0pZp1VQt1NUfX Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 5/9/22 12:21, Arnaud Charlet wrote: > So I don't see how your patch can work, can you clarify? Sorry for that, fixed in the updated version. Cheers, Martin --------------G0iMsdX8V3Z0pZp1VQt1NUfX Content-Type: text/x-patch; charset=UTF-8; name="0001-Use-more-ARRAY_SIZE.patch" Content-Disposition: attachment; filename="0001-Use-more-ARRAY_SIZE.patch" Content-Transfer-Encoding: base64 RnJvbSA1YWQ4ZmUwNTlkMzQxOTQ0NjY0N2VhZGY4Nzg1Yzc2OGI2NDdkMTViIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gTGlza2EgPG1saXNrYUBzdXNlLmN6PgpE YXRlOiBUaHUsIDEzIEphbiAyMDIyIDE4OjQ2OjI2ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g VXNlIG1vcmUgQVJSQVlfU0laRS4KCmdjYy9hZGEvQ2hhbmdlTG9nOgoKCSogbG9jYWxlcy5j IChpc29fNjM5XzFfdG9fNjM5XzMpOiBVc2UgQVJSQVlfU0laRS4KCShsYW5ndWFnZV9uYW1l X3RvXzYzOV8zKTogTGlrZXdpc2UuCgkoY291bnRyeV9uYW1lX3RvXzMxNjYpOiBMaWtld2lz ZS4KCmdjYy9hbmFseXplci9DaGFuZ2VMb2c6CgoJKiBlbmdpbmUuY2MgKGV4cGxvZGVkX25v ZGU6OmdldF9kb3RfZmlsbGNvbG9yKTogVXNlIEFSUkFZX1NJWkUuCgkqIGZ1bmN0aW9uLXNl dC5jYyAodGVzdF9zdGRpb19leGFtcGxlKTogTGlrZXdpc2UuCgkqIHNtLWZpbGUuY2MgKGdl dF9maWxlX3VzaW5nX2Zucyk6IExpa2V3aXNlLgoJKiBzbS1tYWxsb2MuY2MgKG1hbGxvY19z dGF0ZV9tYWNoaW5lOjp1bmFmZmVjdGVkX2J5X2NhbGxfcCk6IExpa2V3aXNlLgoJKiBzbS1z aWduYWwuY2MgKGdldF9hc3luY19zaWduYWxfdW5zYWZlX2Zucyk6IExpa2V3aXNlLgoKZ2Nj L0NoYW5nZUxvZzoKCgkqIGF0dHJpYnMuY2MgKGRpYWdfYXR0cl9leGNsdXNpb25zKTogVXNl IEFSUkFZX1NJWkUuCgkoZGVjbHNfbWlzbWF0Y2hlZF9hdHRyaWJ1dGVzKTogTGlrZXdpc2Uu CgkqIGJ1aWx0aW5zLmNjIChjX3N0cmxlbik6IExpa2V3aXNlLgoJKiBjZmcuY2MgKERFRl9C QVNJQ19CTE9DS19GTEFHKTogTGlrZXdpc2UuCgkqIGNvbW1vbi9jb25maWcvYWFyY2g2NC9h YXJjaDY0LWNvbW1vbi5jYyAoYWFyY2g2NF9vcHRpb25faW5pdF9zdHJ1Y3QpOiBMaWtld2lz ZS4KCSogY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1idWlsdGlucy5jYyAoYWFyY2g2NF9sb29r dXBfc2ltZF9idWlsdGluX3R5cGUpOiBMaWtld2lzZS4KCShhYXJjaDY0X2luaXRfc2ltZF9i dWlsdGluX3R5cGVzKTogTGlrZXdpc2UuCgkoYWFyY2g2NF9pbml0X2J1aWx0aW5fcnNxcnQp OiBMaWtld2lzZS4KCSogY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5jYyAoaXNfbWFkZF9vcCk6 IExpa2V3aXNlLgoJKiBjb25maWcvYXJtL2FybS1idWlsdGlucy5jYyAoYXJtX2xvb2t1cF9z aW1kX2J1aWx0aW5fdHlwZSk6IExpa2V3aXNlLgoJKGFybV9pbml0X3NpbWRfYnVpbHRpbl90 eXBlcyk6IExpa2V3aXNlLgoJKiBjb25maWcvYXZyL2dlbi1hdnItbW1jdS10ZXhpLmNjICht Y3VzW0FSUkFZX1NJWkUpOiBMaWtld2lzZS4KCShjX3ByZWZpeCk6IExpa2V3aXNlLgoJKG1h aW4pOiBMaWtld2lzZS4KCSogY29uZmlnL2M2eC9jNnguY2MgKE5fU0FWRV9PUkRFUik6IExp a2V3aXNlLgoJKiBjb25maWcvZGFyd2luLWMuY2MgKGRhcndpbl9yZWdpc3Rlcl9mcmFtZXdv cmtzKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9nY24vbWtvZmZsb2FkLmNjIChwcm9jZXNzX29i aik6IExpa2V3aXNlLgoJKiBjb25maWcvaTM4Ni9pMzg2LWJ1aWx0aW5zLmNjIChnZXRfYnVp bHRpbl9jb2RlX2Zvcl92ZXJzaW9uKTogTGlrZXdpc2UuCgkoZm9sZF9idWlsdGluX2NwdSk6 IExpa2V3aXNlLgoJKiBjb25maWcvbTMyYy9tMzJjLmNjIChQVVNITV9OKTogTGlrZXdpc2Uu CgkqIGNvbmZpZy9udnB0eC9ta29mZmxvYWQuY2MgKHByb2Nlc3MpOiBMaWtld2lzZS4KCSog Y29uZmlnL3JzNjAwMC9kcml2ZXItcnM2MDAwLmNjIChob3N0X2RldGVjdF9sb2NhbF9jcHUp OiBMaWtld2lzZS4KCSogY29uZmlnL3MzOTAvczM5MC5jYyAoTlJfQ19NT0RFUyk6IExpa2V3 aXNlLgoJKiBjb25maWcvdGlsZXByby9nZW4tbXVsLXRhYmxlcy5jYyAoZmluZF9zZXF1ZW5j ZXMpOiBMaWtld2lzZS4KCShjcmVhdGVfaW5zbl9jb2RlX2NvbXByZXNzaW9uX3RhYmxlKTog TGlrZXdpc2UuCgkqIGNvbmZpZy92bXMvdm1zLmNjIChOQlJfQ1JUTF9OQU1FUyk6IExpa2V3 aXNlLgoJKiBkaWFnbm9zdGljLWZvcm1hdC1qc29uLmNjIChqc29uX2Zyb21fZXhwYW5kZWRf bG9jYXRpb24pOiBMaWtld2lzZS4KCSogZHdhcmYyb3V0LmNjIChBUlJBWV9TSVpFKTogTGlr ZXdpc2UuCgkqIGdlbmhvb2tzLmNjIChlbWl0X2RvY3VtZW50YXRpb24pOiBMaWtld2lzZS4K CShlbWl0X2luaXRfbWFjcm9zKTogTGlrZXdpc2UuCgkqIGdpbXBsZS1zc2Etc3ByaW50Zi5j YyAoZm9ybWF0X2Zsb2F0aW5nKTogTGlrZXdpc2UuCgkqIGdpbXBsZS1zc2Etd2Fybi1hY2Nl c3MuY2MgKG1lbW1vZGVsX25hbWUpOiBMaWtld2lzZS4KCSogZ29kdW1wLmNjIChrZXl3b3Jk X2hhc2hfaW5pdCk6IExpa2V3aXNlLgoJKiBoYXNoLXRhYmxlLmNjIChoYXNoX3RhYmxlX2hp Z2hlcl9wcmltZV9pbmRleCk6IExpa2V3aXNlLgoJKiBpbnB1dC5jYyAoZm9yX2VhY2hfbGlu ZV90YWJsZV9jYXNlKTogTGlrZXdpc2UuCgkqIGlwYS1mcmVlLWxhbmctZGF0YS5jYyAoZnJl ZV9sYW5nX2RhdGEpOiBMaWtld2lzZS4KCSogaXBhLWlubGluZS5jYyAoc2FuaXRpemVfYXR0 cnNfbWF0Y2hfZm9yX2lubGluZV9wKTogTGlrZXdpc2UuCgkqIG9wdGMtc2F2ZS1nZW4uYXdr OiBMaWtld2lzZS4KCSogc3BlbGxjaGVjay5jYyAodGVzdF9tZXRyaWNfY29uZGl0aW9ucyk6 IExpa2V3aXNlLgoJKiB0cmVlLXZlY3Qtc2xwLXBhdHRlcm5zLmNjIChzaXplb2YpOiBMaWtl d2lzZS4KCShBUlJBWV9TSVpFKTogTGlrZXdpc2UuCgkqIHRyZWUuY2MgKGJ1aWxkX2NvbW1v bl90cmVlX25vZGVzKTogTGlrZXdpc2UuCgpnY2MvYy1mYW1pbHkvQ2hhbmdlTG9nOgoKCSog Yy1jb21tb24uY2MgKEFSUkFZX1NJWkUpOiBVc2UgQVJSQVlfU0laRS4KCShjX2NvbW1vbl9u b2Rlc19hbmRfYnVpbHRpbnMpOiBMaWtld2lzZS4KCSogYy1mb3JtYXQuY2MgKGNoZWNrX3Rv a2Vucyk6IExpa2V3aXNlLgoJKGNoZWNrX3BsYWluKTogTGlrZXdpc2UuCgkqIGMtcHJhZ21h LmNjIChjX3BwX2xvb2t1cF9wcmFnbWEpOiBMaWtld2lzZS4KCShpbml0X3ByYWdtYSk6IExp a2V3aXNlLgoJKiBrbm93bi1oZWFkZXJzLmNjIChnZXRfc3RyaW5nX21hY3JvX2hpbnQpOiBM aWtld2lzZS4KCShnZXRfc3RkbGliX2hlYWRlcl9mb3JfbmFtZSk6IExpa2V3aXNlLgoJKiBj LWF0dHJpYnMuY2M6IExpa2V3aXNlLgoKZ2NjL2MvQ2hhbmdlTG9nOgoKCSogYy1kZWNsLmNj IChtYXRjaF9idWlsdGluX2Z1bmN0aW9uX3R5cGVzKTogVXNlIEFSUkFZX1NJWkUuCgpnY2Mv Y3AvQ2hhbmdlTG9nOgoKCSogbW9kdWxlLmNjIChkZXBzZXQ6OmVudGl0eV9raW5kX25hbWUp OiBVc2UgQVJSQVlfU0laRS4KCSogbmFtZS1sb29rdXAuY2MgKGdldF9zdGRfbmFtZV9oaW50 KTogTGlrZXdpc2UuCgkqIHBhcnNlci5jYyAoY3BfcGFyc2VyX25ldyk6IExpa2V3aXNlLgoK Z2NjL2ZvcnRyYW4vQ2hhbmdlTG9nOgoKCSogZnJvbnRlbmQtcGFzc2VzLmNjIChnZmNfY29k ZV93YWxrZXIpOiBVc2UgQVJSQVlfU0laRS4KCSogb3Blbm1wLmNjIChnZmNfbWF0Y2hfb21w X2NvbnRleHRfc2VsZWN0b3Jfc3BlY2lmaWNhdGlvbik6IExpa2V3aXNlLgoJKiB0cmFucy1p bnRyaW5zaWMuY2MgKGNvbnZfaW50cmluc2ljX2llZWVfYnVpbHRpbik6IExpa2V3aXNlLgoJ KiB0cmFucy10eXBlcy5jYyAoZ2ZjX2dldF9hcnJheV9kZXNjcl9pbmZvKTogTGlrZXdpc2Uu CgpnY2Mvaml0L0NoYW5nZUxvZzoKCgkqIGppdC1idWlsdGlucy5jYyAoZmluZF9idWlsdGlu X2J5X25hbWUpOiBVc2UgQVJSQVlfU0laRS4KCShnZXRfc3RyaW5nX2Zvcl90eXBlX2lkKTog TGlrZXdpc2UuCgkqIGppdC1yZWNvcmRpbmcuY2MgKHJlY29yZGluZzo6Y29udGV4dDo6Y29u dGV4dCk6IExpa2V3aXNlLgoKZ2NjL2x0by9DaGFuZ2VMb2c6CgoJKiBsdG8tY29tbW9uLmNj IChsdG9fcmVzb2x1dGlvbl9yZWFkKTogVXNlIEFSUkFZX1NJWkUuCgkqIGx0by1sYW5nLmNj IChsdG9faW5pdCk6IExpa2V3aXNlLgotLS0KIGdjYy9hZGEvbG9jYWxlcy5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgOCArKysrKy0tLQogZ2NjL2FuYWx5emVyL2VuZ2luZS5j YyAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBnY2MvYW5hbHl6ZXIvZnVuY3Rpb24t c2V0LmNjICAgICAgICAgICAgICAgIHwgIDIgKy0KIGdjYy9hbmFseXplci9zbS1maWxlLmNj ICAgICAgICAgICAgICAgICAgICAgfCAgMyArLS0KIGdjYy9hbmFseXplci9zbS1tYWxsb2Mu Y2MgICAgICAgICAgICAgICAgICAgfCAgMyArLS0KIGdjYy9hbmFseXplci9zbS1zaWduYWwu Y2MgICAgICAgICAgICAgICAgICAgfCAgMyArLS0KIGdjYy9hdHRyaWJzLmNjICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBnY2MvYnVpbHRpbnMuY2MgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGdjYy9jLWZhbWlseS9jLWF0dHJpYnMu Y2MgICAgICAgICAgICAgICAgICAgfCAgMyArLS0KIGdjYy9jLWZhbWlseS9jLWNvbW1vbi5j YyAgICAgICAgICAgICAgICAgICAgfCAgNyArKy0tLS0tCiBnY2MvYy1mYW1pbHkvYy1mb3Jt YXQuY2MgICAgICAgICAgICAgICAgICAgIHwgMTIgKysrKysrLS0tLS0tCiBnY2MvYy1mYW1p bHkvYy1wcmFnbWEuY2MgICAgICAgICAgICAgICAgICAgIHwgIDkgKysrKy0tLS0tCiBnY2Mv Yy1mYW1pbHkva25vd24taGVhZGVycy5jYyAgICAgICAgICAgICAgIHwgIDUgKystLS0KIGdj Yy9jL2MtZGVjbC5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArKystLS0t LQogZ2NjL2NmZy5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICst CiBnY2MvY29tbW9uL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtY29tbW9uLmNjIHwgIDMgKy0t CiBnY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1idWlsdGlucy5jYyAgICAgIHwgIDYgKysr LS0tCiBnY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5jYyAgICAgICAgICAgICAgIHwgIDIg Ky0KIGdjYy9jb25maWcvYXJtL2FybS1idWlsdGlucy5jYyAgICAgICAgICAgICAgfCAgNCAr Ky0tCiBnY2MvY29uZmlnL2F2ci9nZW4tYXZyLW1tY3UtdGV4aS5jYyAgICAgICAgIHwgIDgg KysrKystLS0KIGdjYy9jb25maWcvYzZ4L2M2eC5jYyAgICAgICAgICAgICAgICAgICAgICAg fCAgMiArLQogZ2NjL2NvbmZpZy9kYXJ3aW4tYy5jYyAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBnY2MvY29uZmlnL2djbi9ta29mZmxvYWQuY2MgICAgICAgICAgICAgICAgIHwg IDIgKy0KIGdjYy9jb25maWcvaTM4Ni9pMzg2LWJ1aWx0aW5zLmNjICAgICAgICAgICAgfCAg NiArKy0tLS0KIGdjYy9jb25maWcvbTMyYy9tMzJjLmNjICAgICAgICAgICAgICAgICAgICAg fCAgMiArLQogZ2NjL2NvbmZpZy9udnB0eC9ta29mZmxvYWQuY2MgICAgICAgICAgICAgICB8 ICA2ICsrKy0tLQogZ2NjL2NvbmZpZy9yczYwMDAvZHJpdmVyLXJzNjAwMC5jYyAgICAgICAg ICB8ICAyICstCiBnY2MvY29uZmlnL3MzOTAvczM5MC5jYyAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGdjYy9jb25maWcvdGlsZXByby9nZW4tbXVsLXRhYmxlcy5jYyAgICAgICAg fCAgNCArKy0tCiBnY2MvY29uZmlnL3Ztcy92bXMuY2MgICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGdjYy9jcC9tb2R1bGUuY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMiArLQogZ2NjL2NwL25hbWUtbG9va3VwLmNjICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBnY2MvY3AvcGFyc2VyLmNjICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIGdjYy9kaWFnbm9zdGljLWZvcm1hdC1qc29uLmNjICAgICAgICAgICAgICAgfCAg MiArLQogZ2NjL2R3YXJmMm91dC5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAz ICstLQogZ2NjL2ZvcnRyYW4vZnJvbnRlbmQtcGFzc2VzLmNjICAgICAgICAgICAgICB8ICA0 ICstLS0KIGdjYy9mb3J0cmFuL29wZW5tcC5jYyAgICAgICAgICAgICAgICAgICAgICAgfCAg MyArLS0KIGdjYy9mb3J0cmFuL3RyYW5zLWludHJpbnNpYy5jYyAgICAgICAgICAgICAgfCAg MiArLQogZ2NjL2ZvcnRyYW4vdHJhbnMtdHlwZXMuY2MgICAgICAgICAgICAgICAgICB8ICAy ICstCiBnY2MvZ2VuaG9va3MuY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDkg KysrKy0tLS0tCiBnY2MvZ2ltcGxlLXNzYS1zcHJpbnRmLmNjICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGdjYy9naW1wbGUtc3NhLXdhcm4tYWNjZXNzLmNjICAgICAgICAgICAgICAg fCAgMiArLQogZ2NjL2dvZHVtcC5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBnY2MvaGFzaC10YWJsZS5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIGdjYy9pbnB1dC5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg MyArLS0KIGdjYy9pcGEtZnJlZS1sYW5nLWRhdGEuY2MgICAgICAgICAgICAgICAgICAgfCAg NCArLS0tCiBnY2MvaXBhLWlubGluZS5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIGdjYy9qaXQvaml0LWJ1aWx0aW5zLmNjICAgICAgICAgICAgICAgICAgICAgfCAg NiArKy0tLS0KIGdjYy9qaXQvaml0LXJlY29yZGluZy5jYyAgICAgICAgICAgICAgICAgICAg fCAgNCArLS0tCiBnY2MvbHRvL2x0by1jb21tb24uY2MgICAgICAgICAgICAgICAgICAgICAg IHwgIDMgKy0tCiBnY2MvbHRvL2x0by1sYW5nLmNjICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDQgKy0tLQogZ2NjL29wdGMtc2F2ZS1nZW4uYXdrICAgICAgICAgICAgICAgICAgICAg ICB8IDE2ICsrKysrKysrLS0tLS0tLS0KIGdjYy9zcGVsbGNoZWNrLmNjICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMiArLQogZ2NjL3RyZWUtdmVjdC1zbHAtcGF0dGVybnMuY2Mg ICAgICAgICAgICAgICB8ICAyICstCiBnY2MvdHJlZS5jYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDQgKy0tLQogNTUgZmlsZXMgY2hhbmdlZCwgOTQgaW5zZXJ0aW9u cygrKSwgMTIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2djYy9hZGEvbG9jYWxlcy5j IGIvZ2NjL2FkYS9sb2NhbGVzLmMKaW5kZXggZWUxMzg1YTZiZGMuLjAxY2I0NWJjMjFmIDEw MDY0NAotLS0gYS9nY2MvYWRhL2xvY2FsZXMuYworKysgYi9nY2MvYWRhL2xvY2FsZXMuYwpA QCAtMzUsNiArMzUsOCBAQAogI2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVkZSA8c3RkZGVm Lmg+CiAKKyNkZWZpbmUgQVJSQVlfU0laRShhKSAoc2l6ZW9mIChhKSAvIHNpemVvZiAoKGEp WzBdKSkKKwogdHlwZWRlZiBjaGFyIGNoYXI0IFs0XTsKIAogLyogVGFibGUgY29udGFpbmlu ZyBlcXVpdmFsZW5jZXMgYmV0d2VlbiBJU09fNjM5XzEgY29kZXMgYW5kIHRoZWlyIElTT182 MzlfMwpAQCAtNjQ5LDcgKzY1MSw3IEBAIHN0cl9nZXRfbGFzdF9ieXRlIChjaGFyICpsY19h bGwpIHsKIAogc3RhdGljIGNoYXIqCiBpc29fNjM5XzFfdG9fNjM5XzMoY2hhciogaXNvXzYz OV8xX2NvZGUpIHsKLSAgaW50IGxlbiA9IHNpemVvZihpc29fNjM5KS9zaXplb2YoaXNvXzYz OVswXSk7CisgIGludCBsZW4gPSBBUlJBWV9TSVpFIChpc29fNjM5KTsKICAgY2hhciAqKnAg PSBpc29fNjM5OwogICBpbnQgajsKIApAQCAtNjczLDcgKzY3NSw3IEBAIGlzb182MzlfMV90 b182MzlfMyhjaGFyKiBpc29fNjM5XzFfY29kZSkgewogCiBzdGF0aWMgY2hhcioKIGxhbmd1 YWdlX25hbWVfdG9fNjM5XzMoY2hhciogbmFtZSkgewotICBpbnQgbGVuID0gc2l6ZW9mKGlz b182MzkpL3NpemVvZihpc29fNjM5WzBdKTsKKyAgaW50IGxlbiA9IEFSUkFZX1NJWkUgKGlz b182MzkpOwogICBjaGFyICoqcCA9IGlzb182Mzk7CiAgIGludCBqOwogCkBAIC02OTUsNyAr Njk3LDcgQEAgbGFuZ3VhZ2VfbmFtZV90b182MzlfMyhjaGFyKiBuYW1lKSB7CiAKIHN0YXRp YyBjaGFyKgogY291bnRyeV9uYW1lX3RvXzMxNjYgKGNoYXIqIG5hbWUpIHsKLSAgaW50IGxl biA9IHNpemVvZihpc29fMzE2Nikvc2l6ZW9mKGlzb18zMTY2WzBdKTsKKyAgaW50IGxlbiA9 IEFSUkFZX1NJWkUgKGlzb18zMTY2KTsKICAgY2hhciAqKnAgPSBpc29fMzE2NjsKICAgaW50 IGo7CiAKZGlmZiAtLWdpdCBhL2djYy9hbmFseXplci9lbmdpbmUuY2MgYi9nY2MvYW5hbHl6 ZXIvZW5naW5lLmNjCmluZGV4IGU0MzQwNmUzNTU2Li45YzBjOTcxOWZjMiAxMDA2NDQKLS0t IGEvZ2NjL2FuYWx5emVyL2VuZ2luZS5jYworKysgYi9nY2MvYW5hbHl6ZXIvZW5naW5lLmNj CkBAIC0xMTM5LDcgKzExMzksNyBAQCBleHBsb2RlZF9ub2RlOjpnZXRfZG90X2ZpbGxjb2xv ciAoKSBjb25zdAogCT0geyJhenVyZSIsICJjb3JhbCIsICJjb3Juc2lsayIsICJsaWdodGJs dWUiLCAieWVsbG93IiwKIAkgICAiaG9uZXlkZXciLCAibGlnaHRwaW5rIiwgImxpZ2h0c2Fs bW9uIiwgInBhbGVncmVlbjEiLAogCSAgICJ3aGVhdCIsICJzZWFzaGVsbCJ9OwotICAgICAg Y29uc3QgaW50IG51bV9jb2xvcnMgPSBzaXplb2YgKGNvbG9ycykgLyBzaXplb2YgKGNvbG9y c1swXSk7CisgICAgICBjb25zdCBpbnQgbnVtX2NvbG9ycyA9IEFSUkFZX1NJWkUgKGNvbG9y cyk7CiAgICAgICByZXR1cm4gY29sb3JzW3RvdGFsX3NtX3N0YXRlICUgbnVtX2NvbG9yc107 CiAgICAgfQogICBlbHNlCmRpZmYgLS1naXQgYS9nY2MvYW5hbHl6ZXIvZnVuY3Rpb24tc2V0 LmNjIGIvZ2NjL2FuYWx5emVyL2Z1bmN0aW9uLXNldC5jYwppbmRleCA4ZDkyMzdkZWI2My4u YmUwNDE4NmVkMGQgMTAwNjQ0Ci0tLSBhL2djYy9hbmFseXplci9mdW5jdGlvbi1zZXQuY2MK KysrIGIvZ2NjL2FuYWx5emVyL2Z1bmN0aW9uLXNldC5jYwpAQCAtMTY2LDcgKzE2Niw3IEBA IHRlc3Rfc3RkaW9fZXhhbXBsZSAoKQogICAgICJnZXR3Y191bmxvY2tlZCIsCiAgICAgInB1 dGNfdW5sb2NrZWQiCiAgIH07Ci0gIGNvbnN0IHNpemVfdCBjb3VudCA9IHNpemVvZihleGFt cGxlKSAvIHNpemVvZiAoZXhhbXBsZVswXSk7CisgIGNvbnN0IHNpemVfdCBjb3VudCA9IEFS UkFZX1NJWkUgKGV4YW1wbGUpOwogICBmdW5jdGlvbl9zZXQgZnMgKGV4YW1wbGUsIGNvdW50 KTsKICAgZnMuYXNzZXJ0X3NvcnRlZCAoKTsKICAgZnMuYXNzZXJ0X3NhbmUgKCk7CmRpZmYg LS1naXQgYS9nY2MvYW5hbHl6ZXIvc20tZmlsZS5jYyBiL2djYy9hbmFseXplci9zbS1maWxl LmNjCmluZGV4IGZmYzI4MDlkYzU3Li4zYTQ1ZTYyN2IzNSAxMDA2NDQKLS0tIGEvZ2NjL2Fu YWx5emVyL3NtLWZpbGUuY2MKKysrIGIvZ2NjL2FuYWx5emVyL3NtLWZpbGUuY2MKQEAgLTMy OSw4ICszMjksNyBAQCBnZXRfZmlsZV91c2luZ19mbnMgKCkKICAgICAidW5nZXRjIiwKICAg ICAidmZwcmludGYiCiAgIH07Ci0gIGNvbnN0IHNpemVfdCBjb3VudAotICAgID0gc2l6ZW9m KGZ1bmNuYW1lcykgLyBzaXplb2YgKGZ1bmNuYW1lc1swXSk7CisgIGNvbnN0IHNpemVfdCBj b3VudCA9IEFSUkFZX1NJWkUgKGZ1bmNuYW1lcyk7CiAgIGZ1bmN0aW9uX3NldCBmcyAoZnVu Y25hbWVzLCBjb3VudCk7CiAgIHJldHVybiBmczsKIH0KZGlmZiAtLWdpdCBhL2djYy9hbmFs eXplci9zbS1tYWxsb2MuY2MgYi9nY2MvYW5hbHl6ZXIvc20tbWFsbG9jLmNjCmluZGV4IDRj MDMwODAzZTU5Li4yMGMxNjc3YzQ5OCAxMDA2NDQKLS0tIGEvZ2NjL2FuYWx5emVyL3NtLW1h bGxvYy5jYworKysgYi9nY2MvYW5hbHl6ZXIvc20tbWFsbG9jLmNjCkBAIC0yMDU0LDggKzIw NTQsNyBAQCBtYWxsb2Nfc3RhdGVfbWFjaGluZTo6dW5hZmZlY3RlZF9ieV9jYWxsX3AgKHRy ZWUgZm5kZWNsKQogICAgIC8qIFRoaXMgYXJyYXkgbXVzdCBiZSBrZXB0IHNvcnRlZC4gICov CiAgICAgInN0cnNlcCIsCiAgIH07Ci0gIGNvbnN0IHNpemVfdCBjb3VudAotICAgID0gc2l6 ZW9mKGZ1bmNuYW1lcykgLyBzaXplb2YgKGZ1bmNuYW1lc1swXSk7CisgIGNvbnN0IHNpemVf dCBjb3VudCA9IEFSUkFZX1NJWkUgKGZ1bmNuYW1lcyk7CiAgIGZ1bmN0aW9uX3NldCBmcyAo ZnVuY25hbWVzLCBjb3VudCk7CiAKICAgaWYgKGZzLmNvbnRhaW5zX2RlY2xfcCAoZm5kZWNs KSkKZGlmZiAtLWdpdCBhL2djYy9hbmFseXplci9zbS1zaWduYWwuY2MgYi9nY2MvYW5hbHl6 ZXIvc20tc2lnbmFsLmNjCmluZGV4IDc3MDQ0ZTEwODA1Li45YjAyMTNlODliNyAxMDA2NDQK LS0tIGEvZ2NjL2FuYWx5emVyL3NtLXNpZ25hbC5jYworKysgYi9nY2MvYW5hbHl6ZXIvc20t c2lnbmFsLmNjCkBAIC0zMDksOCArMzA5LDcgQEAgZ2V0X2FzeW5jX3NpZ25hbF91bnNhZmVf Zm5zICgpCiAgICAgInZzbnByaW50ZiIsCiAgICAgInZzcHJpbnRmIgogICB9OwotICBjb25z dCBzaXplX3QgY291bnQKLSAgICA9IHNpemVvZihhc3luY19zaWduYWxfdW5zYWZlX2Zucykg LyBzaXplb2YgKGFzeW5jX3NpZ25hbF91bnNhZmVfZm5zWzBdKTsKKyAgY29uc3Qgc2l6ZV90 IGNvdW50ID0gQVJSQVlfU0laRSAoYXN5bmNfc2lnbmFsX3Vuc2FmZV9mbnMpOwogICBmdW5j dGlvbl9zZXQgZnMgKGFzeW5jX3NpZ25hbF91bnNhZmVfZm5zLCBjb3VudCk7CiAgIHJldHVy biBmczsKIH0KZGlmZiAtLWdpdCBhL2djYy9hdHRyaWJzLmNjIGIvZ2NjL2F0dHJpYnMuY2MK aW5kZXggYjIxOWY4NzgwNDIuLjZkNGEzMGRjNDEyIDEwMDY0NAotLS0gYS9nY2MvYXR0cmli cy5jYworKysgYi9nY2MvYXR0cmlicy5jYwpAQCAtNDk5LDcgKzQ5OSw3IEBAIGRpYWdfYXR0 cl9leGNsdXNpb25zICh0cmVlIGxhc3RfZGVjbCwgdHJlZSBub2RlLCB0cmVlIGF0dHJuYW1l LAogCiAgIC8qIEl0ZXJhdGUgb3ZlciB0aGUgbXV0dWFsbHkgZXhjbHVzaXZlIGF0dHJpYnV0 ZSBuYW1lcyBhbmQgdmVyaWZ5CiAgICAgIHRoYXQgdGhlIHN5bWJvbCBkb2Vzbid0IGNvbnRh aW4gaXQuICAqLwotICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpICE9IHNpemVvZiBhdHRycyAv IHNpemVvZiAqYXR0cnM7ICsraSkKKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSAhPSBBUlJB WV9TSVpFIChhdHRycyk7ICsraSkKICAgICB7CiAgICAgICBpZiAoIWF0dHJzW2ldKQogCWNv bnRpbnVlOwpAQCAtMjEwNiw3ICsyMTA2LDcgQEAgZGVjbHNfbWlzbWF0Y2hlZF9hdHRyaWJ1 dGVzICh0cmVlIHRtcGwsIHRyZWUgZGVjbCwgdHJlZSBhdHRybGlzdCwKICAgfTsKIAogICBm b3IgKHVuc2lnbmVkIGkgPSAwOyBpICE9IDI7ICsraSkKLSAgICBmb3IgKHVuc2lnbmVkIGog PSAwOyBqICE9IHNpemVvZiB3aGl0ZWxpc3QgLyBzaXplb2YgKndoaXRlbGlzdDsgKytqKQor ICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGogIT0gQVJSQVlfU0laRSAod2hpdGVsaXN0KTsg KytqKQogICAgICAgaWYgKGxvb2t1cF9hdHRyaWJ1dGUgKHdoaXRlbGlzdFtqXSwgdG1wbF9h dHRyc1tpXSkKIAkgIHx8IGxvb2t1cF9hdHRyaWJ1dGUgKHdoaXRlbGlzdFtqXSwgZGVjbF9h dHRyc1tpXSkpCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9nY2MvYnVpbHRpbnMuY2MgYi9n Y2MvYnVpbHRpbnMuY2MKaW5kZXggNWIwODVlM2ExNGYuLjI1NDhjZTQzOTEwIDEwMDY0NAot LS0gYS9nY2MvYnVpbHRpbnMuY2MKKysrIGIvZ2NjL2J1aWx0aW5zLmNjCkBAIC02MTMsNyAr NjEzLDcgQEAgY19zdHJsZW4gKHRyZWUgYXJnLCBpbnQgb25seV92YWx1ZSwgY19zdHJsZW5f ZGF0YSAqZGF0YSwgdW5zaWduZWQgZWx0c2l6ZSkKICAgaWYgKGVsdHNpemUgIT0gdHJlZV90 b191aHdpIChUWVBFX1NJWkVfVU5JVCAoVFJFRV9UWVBFIChUUkVFX1RZUEUgKHNyYykpKSkp CiAgICAgcmV0dXJuIE5VTExfVFJFRTsKIAotICAvKiBTZXQgTUFYRUxUUyB0byBzaXplb2Yg KFNSQykgLyBzaXplb2YgKCpTUkMpIC0gMSwgdGhlIG1heGltdW0gcG9zc2libGUKKyAgLyog U2V0IE1BWEVMVFMgdG8gQVJSQVlfU0laRSAoU1JDKSAtIDEsIHRoZSBtYXhpbXVtIHBvc3Np YmxlCiAgICAgIGxlbmd0aCBvZiBTUkMuICBQcmVmZXIgVFlQRV9TSVpFKCkgdG8gVFJFRV9T VFJJTkdfTEVOR1RIKCkgaWYgcG9zc2libGUKICAgICAgaW4gY2FzZSB0aGUgbGF0dGVyIGlz IGxlc3MgdGhhbiB0aGUgc2l6ZSBvZiB0aGUgYXJyYXksIHN1Y2ggYXMgd2hlbgogICAgICBT UkMgcmVmZXJzIHRvIGEgc2hvcnQgc3RyaW5nIGxpdGVyYWwgdXNlZCB0byBpbml0aWFsaXpl IGEgbGFyZ2UgYXJyYXkuCmRpZmYgLS1naXQgYS9nY2MvYy1mYW1pbHkvYy1hdHRyaWJzLmNj IGIvZ2NjL2MtZmFtaWx5L2MtYXR0cmlicy5jYwppbmRleCAwZjA0N2ExMDVjMi4uZTUwZTc5 ZTBjZDEgMTAwNjQ0Ci0tLSBhL2djYy9jLWZhbWlseS9jLWF0dHJpYnMuY2MKKysrIGIvZ2Nj L2MtZmFtaWx5L2MtYXR0cmlicy5jYwpAQCAtNDk1Miw4ICs0OTUyLDcgQEAgaGFuZGxlX2Fj Y2Vzc19hdHRyaWJ1dGUgKHRyZWUgbm9kZVszXSwgdHJlZSBuYW1lLCB0cmVlIGFyZ3MsIGlu dCBmbGFncywKICAgaW50IGltb2RlOwogCiAgIHsKLSAgICBjb25zdCBpbnQgbm1vZGVzID0K LSAgICAgIHNpemVvZiBhdHRyX2FjY2Vzczo6bW9kZV9uYW1lcyAvIHNpemVvZiAqYXR0cl9h Y2Nlc3M6Om1vZGVfbmFtZXM7CisgICAgY29uc3QgaW50IG5tb2RlcyA9IEFSUkFZX1NJWkUg KGF0dHJfYWNjZXNzOjptb2RlX25hbWVzKTsKIAogICAgIGZvciAoaW1vZGUgPSAwOyBpbW9k ZSAhPSBubW9kZXM7ICsraW1vZGUpCiAgICAgICBpZiAoIXN0cm5jbXAgKHBzLCBhdHRyX2Fj Y2Vzczo6bW9kZV9uYW1lc1tpbW9kZV0sCmRpZmYgLS1naXQgYS9nY2MvYy1mYW1pbHkvYy1j b21tb24uY2MgYi9nY2MvYy1mYW1pbHkvYy1jb21tb24uY2MKaW5kZXggNjE1NmU1ZmNiMGMu LmM5YzllNzIwYmM4IDEwMDY0NAotLS0gYS9nY2MvYy1mYW1pbHkvYy1jb21tb24uY2MKKysr IGIvZ2NjL2MtZmFtaWx5L2MtY29tbW9uLmNjCkBAIC02MDIsOCArNjAyLDcgQEAgY29uc3Qg c3RydWN0IGNfY29tbW9uX3Jlc3dvcmQgY19jb21tb25fcmVzd29yZHNbXSA9CiAgIHsgIm51 bGxfcmVzZXR0YWJsZSIsCVJJRF9OVUxMX1JFU0VUVEFCTEUsCURfT0JKQyB9LAogfTsKIAot Y29uc3QgdW5zaWduZWQgaW50IG51bV9jX2NvbW1vbl9yZXN3b3JkcyA9Ci0gIHNpemVvZiBj X2NvbW1vbl9yZXN3b3JkcyAvIHNpemVvZiAoc3RydWN0IGNfY29tbW9uX3Jlc3dvcmQpOwor Y29uc3QgdW5zaWduZWQgaW50IG51bV9jX2NvbW1vbl9yZXN3b3JkcyA9IEFSUkFZX1NJWkUg KGNfY29tbW9uX3Jlc3dvcmRzKTsKIAogLyogUmV0dXJuIGlkZW50aWZpZXIgZm9yIGFkZHJl c3Mgc3BhY2UgQVMuICAqLwogCkBAIC00NDgyLDkgKzQ0ODEsNyBAQCBjX2NvbW1vbl9ub2Rl c19hbmRfYnVpbHRpbnMgKHZvaWQpCiAKICAgLyogTWFrZSBmaWxlcHRyX3R5cGVfbm9kZSBh IGRpc3RpbmN0IHZvaWQgKiB0eXBlIHVudGlsCiAgICAgIEZJTEUgdHlwZSBpcyBkZWZpbmVk LiAgTGlrZXdpc2UgZm9yIGNvbnN0IHN0cnVjdCB0bSouICAqLwotICBmb3IgKHVuc2lnbmVk IGkgPSAwOwotICAgICAgIGkgPCBzaXplb2YgKGJ1aWx0aW5fc3RydWN0cHRyX3R5cGVzKSAv IHNpemVvZiAoYnVpbHRpbl9zdHJ1Y3RwdHJfdHlwZSk7Ci0gICAgICAgKytpKQorICBmb3Ig KHVuc2lnbmVkIGkgPSAwOyBpIDwgQVJSQVlfU0laRSAoYnVpbHRpbl9zdHJ1Y3RwdHJfdHlw ZXMpOyArK2kpCiAgICAgYnVpbHRpbl9zdHJ1Y3RwdHJfdHlwZXNbaV0ubm9kZQogICAgICAg PSBidWlsZF92YXJpYW50X3R5cGVfY29weSAoYnVpbHRpbl9zdHJ1Y3RwdHJfdHlwZXNbaV0u YmFzZSk7CiAKZGlmZiAtLWdpdCBhL2djYy9jLWZhbWlseS9jLWZvcm1hdC5jYyBiL2djYy9j LWZhbWlseS9jLWZvcm1hdC5jYwppbmRleCBlYTU3ZmRlODAxYy4uMjViMWMxZDBmMTUgMTAw NjQ0Ci0tLSBhL2djYy9jLWZhbWlseS9jLWZvcm1hdC5jYworKysgYi9nY2MvYy1mYW1pbHkv Yy1mb3JtYXQuY2MKQEAgLTMxODksNyArMzE4OSw3IEBAIGNoZWNrX3Rva2VucyAoY29uc3Qg dG9rZW5fdCAqdG9rZW5zLCB1bnNpZ25lZCBudG9rcywKICAgZWxzZQogICAgIHsKICAgICAg IC8qIERpYWdub3NlIHNvbWUgY29tbW9uIG1pc3NwZWxsaW5ncy4gICovCi0gICAgICBmb3Ig KHVuc2lnbmVkIGkgPSAwOyBpICE9IHNpemVvZiBiYWR3b3JkcyAvIHNpemVvZiAqYmFkd29y ZHM7ICsraSkKKyAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgIT0gQVJSQVlfU0laRSAo YmFkd29yZHMpOyArK2kpCiAJewogCSAgdW5zaWduZWQgYmFkd2xlbiA9IHN0cnNwbiAoYmFk d29yZHNbaV0ubmFtZSwgIiAtIik7CiAJICBpZiAod2xlbiA+PSBiYWR3bGVuCkBAIC0zMzg0 LDE0ICszMzg0LDE0IEBAIGNoZWNrX3BsYWluIChsb2NhdGlvbl90IGZvcm1hdF9zdHJpbmdf bG9jLCB0cmVlIGZvcm1hdF9zdHJpbmdfY3N0LAogCiAgIGlmIChJU1BVTkNUIChmb3JtYXRf Y2hhcnNbMF0pKQogICAgIHsKLSAgICAgIHNpemVfdCBuZWx0cyA9IHNpemVvZiBjX29wZXJz IC8gc2l6ZW9mICpjX29wZXJzOworICAgICAgc2l6ZV90IG5lbHRzID0gQVJSQVlfU0laRSAo Y19vcGVycyk7CiAgICAgICBpZiAoY29uc3QgY2hhciAqcmV0ID0gY2hlY2tfdG9rZW5zIChj X29wZXJzLCBuZWx0cywKIAkJCQkJICBmb3JtYXRfc3RyaW5nX2xvYywgZm9ybWF0X3N0cmlu Z19jc3QsCiAJCQkJCSAgb3JpZ19mb3JtYXRfY2hhcnMsIGZvcm1hdF9jaGFycywKIAkJCQkJ ICBiYWx0b2tzKSkKIAlyZXR1cm4gcmV0OwogCi0gICAgICBuZWx0cyA9IGNfZGlhbGVjdF9j eHggKCkgPyBzaXplb2YgY3h4X29wZXJzIC8gc2l6ZW9mICpjeHhfb3BlcnMgOiAwOworICAg ICAgbmVsdHMgPSBjX2RpYWxlY3RfY3h4ICgpID8gQVJSQVlfU0laRSAoY3h4X29wZXJzKSA6 IDA7CiAgICAgICBpZiAoY29uc3QgY2hhciAqcmV0ID0gY2hlY2tfdG9rZW5zIChjeHhfb3Bl cnMsIG5lbHRzLAogCQkJCQkgIGZvcm1hdF9zdHJpbmdfbG9jLCBmb3JtYXRfc3RyaW5nX2Nz dCwKIAkJCQkJICBvcmlnX2Zvcm1hdF9jaGFycywgZm9ybWF0X2NoYXJzLApAQCAtMzQwMSwx NCArMzQwMSwxNCBAQCBjaGVja19wbGFpbiAobG9jYXRpb25fdCBmb3JtYXRfc3RyaW5nX2xv YywgdHJlZSBmb3JtYXRfc3RyaW5nX2NzdCwKIAogICBpZiAoSVNBTFBIQSAoZm9ybWF0X2No YXJzWzBdKSkKICAgICB7Ci0gICAgICBzaXplX3QgbmVsdHMgPSBzaXplb2YgY19rZXl3b3Jk cyAvIHNpemVvZiAqY19rZXl3b3JkczsKKyAgICAgIHNpemVfdCBuZWx0cyA9IEFSUkFZX1NJ WkUgKGNfa2V5d29yZHMpOwogICAgICAgaWYgKGNvbnN0IGNoYXIgKnJldCA9IGNoZWNrX3Rv a2VucyAoY19rZXl3b3JkcywgbmVsdHMsCiAJCQkJCSAgZm9ybWF0X3N0cmluZ19sb2MsIGZv cm1hdF9zdHJpbmdfY3N0LAogCQkJCQkgIG9yaWdfZm9ybWF0X2NoYXJzLCBmb3JtYXRfY2hh cnMsCiAJCQkJCSAgYmFsdG9rcykpCiAJcmV0dXJuIHJldDsKIAotICAgICAgbmVsdHMgPSBj X2RpYWxlY3RfY3h4ICgpID8gc2l6ZW9mIGN4eF9rZXl3b3JkcyAvIHNpemVvZiAqY3h4X2tl eXdvcmRzIDogMDsKKyAgICAgIG5lbHRzID0gY19kaWFsZWN0X2N4eCAoKSA/IEFSUkFZX1NJ WkUgKGN4eF9rZXl3b3JkcykgOiAwOwogICAgICAgaWYgKGNvbnN0IGNoYXIgKnJldCA9IGNo ZWNrX3Rva2VucyAoY3h4X2tleXdvcmRzLCBuZWx0cywKIAkJCQkJICBmb3JtYXRfc3RyaW5n X2xvYywgZm9ybWF0X3N0cmluZ19jc3QsCiAJCQkJCSAgb3JpZ19mb3JtYXRfY2hhcnMsIGZv cm1hdF9jaGFycywKQEAgLTM1MjcsNyArMzUyNyw3IEBAIGNoZWNrX3BsYWluIChsb2NhdGlv bl90IGZvcm1hdF9zdHJpbmdfbG9jLCB0cmVlIGZvcm1hdF9zdHJpbmdfY3N0LAogCSAgJiYg SVNBTFBIQSAoZm9ybWF0X2NoYXJzWzFdKSkKIAl7CiAJICAvKiBEaWFnbm9zZSBhIHN1YnNl dCBvZiBjb250cmFjdGlvbnMgdGhhdCBhcmUgYmVzdCBhdm9pZGVkLiAgKi8KLQkgIGZvciAo dW5zaWduZWQgaSA9IDA7IGkgIT0gc2l6ZW9mIGNvbnRycyAvIHNpemVvZiAqY29udHJzOyAr K2kpCisJICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpICE9IEFSUkFZX1NJWkUgKGNvbnRycyk7 ICsraSkKIAkgICAgewogCSAgICAgIGNvbnN0IGNoYXIgKmFwb3MgPSBzdHJjaHIgKGNvbnRy c1tpXS5uYW1lLCAnXCcnKTsKIAkgICAgICBnY2NfYXNzZXJ0IChhcG9zICE9IE5VTEwpOwpk aWZmIC0tZ2l0IGEvZ2NjL2MtZmFtaWx5L2MtcHJhZ21hLmNjIGIvZ2NjL2MtZmFtaWx5L2Mt cHJhZ21hLmNjCmluZGV4IDRjODBiZGQyNmQ2Li5jYzA1YjI1ODBmYSAxMDA2NDQKLS0tIGEv Z2NjL2MtZmFtaWx5L2MtcHJhZ21hLmNjCisrKyBiL2djYy9jLWZhbWlseS9jLXByYWdtYS5j YwpAQCAtMTQwMCw4ICsxNDAwLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvbXBfcHJhZ21h X2RlZiBvbXBfcHJhZ21hc19zaW1kW10gPSB7CiB2b2lkCiBjX3BwX2xvb2t1cF9wcmFnbWEg KHVuc2lnbmVkIGludCBpZCwgY29uc3QgY2hhciAqKnNwYWNlLCBjb25zdCBjaGFyICoqbmFt ZSkKIHsKLSAgY29uc3QgaW50IG5fb2FjY19wcmFnbWFzID0gc2l6ZW9mIChvYWNjX3ByYWdt YXMpIC8gc2l6ZW9mICgqb2FjY19wcmFnbWFzKTsKLSAgY29uc3QgaW50IG5fb21wX3ByYWdt YXMgPSBzaXplb2YgKG9tcF9wcmFnbWFzKSAvIHNpemVvZiAoKm9tcF9wcmFnbWFzKTsKKyAg Y29uc3QgaW50IG5fb2FjY19wcmFnbWFzID0gQVJSQVlfU0laRSAob2FjY19wcmFnbWFzKTsK KyAgY29uc3QgaW50IG5fb21wX3ByYWdtYXMgPSBBUlJBWV9TSVpFIChvbXBfcHJhZ21hcyk7 CiAgIGNvbnN0IGludCBuX29tcF9wcmFnbWFzX3NpbWQgPSBzaXplb2YgKG9tcF9wcmFnbWFz X3NpbWQpCiAJCQkJIC8gc2l6ZW9mICgqb21wX3ByYWdtYXMpOwogICBpbnQgaTsKQEAgLTE1 NzYsOCArMTU3Niw3IEBAIGluaXRfcHJhZ21hICh2b2lkKQogewogICBpZiAoZmxhZ19vcGVu YWNjKQogICAgIHsKLSAgICAgIGNvbnN0IGludCBuX29hY2NfcHJhZ21hcwotCT0gc2l6ZW9m IChvYWNjX3ByYWdtYXMpIC8gc2l6ZW9mICgqb2FjY19wcmFnbWFzKTsKKyAgICAgIGNvbnN0 IGludCBuX29hY2NfcHJhZ21hcyA9IEFSUkFZX1NJWkUgKG9hY2NfcHJhZ21hcyk7CiAgICAg ICBpbnQgaTsKIAogICAgICAgZm9yIChpID0gMDsgaSA8IG5fb2FjY19wcmFnbWFzOyArK2kp CkBAIC0xNTg3LDcgKzE1ODYsNyBAQCBpbml0X3ByYWdtYSAodm9pZCkKIAogICBpZiAoZmxh Z19vcGVubXApCiAgICAgewotICAgICAgY29uc3QgaW50IG5fb21wX3ByYWdtYXMgPSBzaXpl b2YgKG9tcF9wcmFnbWFzKSAvIHNpemVvZiAoKm9tcF9wcmFnbWFzKTsKKyAgICAgIGNvbnN0 IGludCBuX29tcF9wcmFnbWFzID0gQVJSQVlfU0laRSAob21wX3ByYWdtYXMpOwogICAgICAg aW50IGk7CiAKICAgICAgIGZvciAoaSA9IDA7IGkgPCBuX29tcF9wcmFnbWFzOyArK2kpCmRp ZmYgLS1naXQgYS9nY2MvYy1mYW1pbHkva25vd24taGVhZGVycy5jYyBiL2djYy9jLWZhbWls eS9rbm93bi1oZWFkZXJzLmNjCmluZGV4IDhhZDNlYjNmNDY2Li4wMWM4NmIyN2RjOCAxMDA2 NDQKLS0tIGEvZ2NjL2MtZmFtaWx5L2tub3duLWhlYWRlcnMuY2MKKysrIGIvZ2NjL2MtZmFt aWx5L2tub3duLWhlYWRlcnMuY2MKQEAgLTc5LDggKzc5LDcgQEAgZ2V0X3N0cmluZ19tYWNy b19oaW50IChjb25zdCBjaGFyICpuYW1lLCBlbnVtIHN0ZGxpYiBsaWIpCiAgIGlmICgobGli ID09IFNURExJQl9DICYmIGZsYWdfaXNvYzk5KQogICAgICAgfHwgKGxpYiA9PSBTVERMSUJf Q1BMVVNQTFVTICYmIGN4eF9kaWFsZWN0ID49IGN4eDExICkpCiAgICAgewotICAgICAgY29u c3Qgc2l6ZV90IG51bV9jOTlfY3h4MTFfbWFjcm9zCi0JPSBzaXplb2YgKGM5OV9jeHgxMV9t YWNyb3MpIC8gc2l6ZW9mIChjOTlfY3h4MTFfbWFjcm9zWzBdKTsKKyAgICAgIGNvbnN0IHNp emVfdCBudW1fYzk5X2N4eDExX21hY3JvcyA9IEFSUkFZX1NJWkUgKGM5OV9jeHgxMV9tYWNy b3MpOwogICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1fYzk5X2N4eDExX21hY3Jv czsgaSsrKQogCWlmIChzdHJjbXAgKG5hbWUsIGM5OV9jeHgxMV9tYWNyb3NbaV0pID09IDAp CiAJICByZXR1cm4gbGliID09IFNURExJQl9DID8gIjxpbnR0eXBlcy5oPiIgOiAiPGNpbnR0 eXBlcz4iOwpAQCAtMjA0LDcgKzIwMyw3IEBAIGdldF9zdGRsaWJfaGVhZGVyX2Zvcl9uYW1l IChjb25zdCBjaGFyICpuYW1lLCBlbnVtIHN0ZGxpYiBsaWIpCiAgICAgeyJXQ0hBUl9NQVgi LCB7Ijx3Y2hhci5oPiIsICI8Y3djaGFyPiJ9IH0sCiAgICAgeyJXQ0hBUl9NSU4iLCB7Ijx3 Y2hhci5oPiIsICI8Y3djaGFyPiJ9IH0KICAgfTsKLSAgY29uc3Qgc2l6ZV90IG51bV9oaW50 cyA9IHNpemVvZiAoaGludHMpIC8gc2l6ZW9mIChoaW50c1swXSk7CisgIGNvbnN0IHNpemVf dCBudW1faGludHMgPSBBUlJBWV9TSVpFIChoaW50cyk7CiAgIGZvciAoc2l6ZV90IGkgPSAw OyBpIDwgbnVtX2hpbnRzOyBpKyspCiAgICAgaWYgKHN0cmNtcCAobmFtZSwgaGludHNbaV0u bmFtZSkgPT0gMCkKICAgICAgIHJldHVybiBoaW50c1tpXS5oZWFkZXJbbGliXTsKZGlmZiAt LWdpdCBhL2djYy9jL2MtZGVjbC5jYyBiL2djYy9jL2MtZGVjbC5jYwppbmRleCBjNzAxZjA3 YmVmZS4uZTQ5ODc5YWIyODYgMTAwNjQ0Ci0tLSBhL2djYy9jL2MtZGVjbC5jYworKysgYi9n Y2MvYy9jLWRlY2wuY2MKQEAgLTE2NTgsNyArMTY1OCw3IEBAIGNfYmluZCAobG9jYXRpb25f dCBsb2MsIHRyZWUgZGVjbCwgYm9vbCBpc19nbG9iYWwpCiAgICBVc2VkIG9ubHkgYnkgbWF0 Y2hfYnVpbHRpbl9mdW5jdGlvbl90eXBlcy4gICovCiAKIHN0YXRpYyBjb25zdCB1bnNpZ25l ZCBidWlsdGluX3N0cnVjdHB0cl90eXBlX2NvdW50Ci0gID0gc2l6ZW9mIGJ1aWx0aW5fc3Ry dWN0cHRyX3R5cGVzIC8gc2l6ZW9mIGJ1aWx0aW5fc3RydWN0cHRyX3R5cGVzWzBdOworICA9 IEFSUkFZX1NJWkUgKGJ1aWx0aW5fc3RydWN0cHRyX3R5cGVzKTsKIAogc3RhdGljIEdUWSgo KSkgdHJlZSBsYXN0X3N0cnVjdHB0cl90eXBlc1tidWlsdGluX3N0cnVjdHB0cl90eXBlX2Nv dW50XTsKIApAQCAtMTcwNSwxMCArMTcwNSw4IEBAIG1hdGNoX2J1aWx0aW5fZnVuY3Rpb25f dHlwZXMgKHRyZWUgbmV3dHlwZSwgdHJlZSBvbGR0eXBlLAogICB0cmVlIG5ld2FyZ3MgPSBU WVBFX0FSR19UWVBFUyAobmV3dHlwZSk7CiAgIHRyZWUgdHJ5YXJncyA9IG5ld2FyZ3M7CiAK LSAgY29uc3QgdW5zaWduZWQgbmxzdAotICAgID0gc2l6ZW9mIGxhc3Rfc3RydWN0cHRyX3R5 cGVzIC8gc2l6ZW9mIGxhc3Rfc3RydWN0cHRyX3R5cGVzWzBdOwotICBjb25zdCB1bnNpZ25l ZCBuYnN0Ci0gICAgPSBzaXplb2YgYnVpbHRpbl9zdHJ1Y3RwdHJfdHlwZXMgLyBzaXplb2Yg YnVpbHRpbl9zdHJ1Y3RwdHJfdHlwZXNbMF07CisgIGNvbnN0IHVuc2lnbmVkIG5sc3QgPSBB UlJBWV9TSVpFIChsYXN0X3N0cnVjdHB0cl90eXBlcyk7CisgIGNvbnN0IHVuc2lnbmVkIG5i c3QgPSBBUlJBWV9TSVpFIChidWlsdGluX3N0cnVjdHB0cl90eXBlcyk7CiAKICAgZ2NjX2No ZWNraW5nX2Fzc2VydCAobmxzdCA9PSBuYnN0KTsKIApkaWZmIC0tZ2l0IGEvZ2NjL2NmZy5j YyBiL2djYy9jZmcuY2MKaW5kZXggZGE3ODFiYTJkYTguLmJiZDAxYmEyMWJiIDEwMDY0NAot LS0gYS9nY2MvY2ZnLmNjCisrKyBiL2djYy9jZmcuY2MKQEAgLTc4Nyw3ICs3ODcsNyBAQCBk dW1wX2JiX2luZm8gKEZJTEUgKm91dGYsIGJhc2ljX2Jsb2NrIGJiLCBpbnQgaW5kZW50LCBk dW1wX2ZsYWdzX3QgZmxhZ3MsCiAgICAgICBOVUxMCiAjdW5kZWYgREVGX0JBU0lDX0JMT0NL X0ZMQUcKICAgICB9OwotICBjb25zdCB1bnNpZ25lZCBuX2JpdG5hbWVzID0gc2l6ZW9mIChi Yl9iaXRuYW1lcykgLyBzaXplb2YgKGNoYXIgKik7CisgIGNvbnN0IHVuc2lnbmVkIG5fYml0 bmFtZXMgPSBBUlJBWV9TSVpFIChiYl9iaXRuYW1lcyk7CiAgIGJvb2wgZmlyc3Q7CiAgIGNo YXIgKnNfaW5kZW50ID0gKGNoYXIgKikgYWxsb2NhICgoc2l6ZV90KSBpbmRlbnQgKyAxKTsK ICAgbWVtc2V0ICgodm9pZCAqKSBzX2luZGVudCwgJyAnLCAoc2l6ZV90KSBpbmRlbnQpOwpk aWZmIC0tZ2l0IGEvZ2NjL2NvbW1vbi9jb25maWcvYWFyY2g2NC9hYXJjaDY0LWNvbW1vbi5j YyBiL2djYy9jb21tb24vY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1jb21tb24uY2MKaW5kZXgg ZGZkYTViODM3MmEuLjdmYWM5MGQzMTNiIDEwMDY0NAotLS0gYS9nY2MvY29tbW9uL2NvbmZp Zy9hYXJjaDY0L2FhcmNoNjQtY29tbW9uLmNjCisrKyBiL2djYy9jb21tb24vY29uZmlnL2Fh cmNoNjQvYWFyY2g2NC1jb21tb24uY2MKQEAgLTMxNCw4ICszMTQsNyBAQCBhYXJjaDY0X29w dGlvbl9pbml0X3N0cnVjdCAoc3RydWN0IGdjY19vcHRpb25zICpvcHRzIEFUVFJJQlVURV9V TlVTRUQpCiAgICAgICAgcG9wIGFuZCBhdHRyaWJ1dGUgY2hhbmdlIChhcm1fbmVvbiBoZWFk ZXJzLCBsdG8gZXRjIGFsbCBjYXVzZSB0aGlzIHRvCiAgICAgICAgaGFwcGVuIHF1aXRlIGZy ZXF1ZW50bHkpLiAgSXQgaXMgYSB0cmFkZS1vZmYgYmV0d2VlbiB0aW1lIGFuZCBzcGFjZSBh bmQKICAgICAgICBzbyB0aW1lIHdvbi4gICovCi0gICAgaW50IG5fZXh0ZW5zaW9ucwotICAg ICAgPSBzaXplb2YgKGFsbF9leHRlbnNpb25zKSAvIHNpemVvZiAoc3RydWN0IGFhcmNoNjRf b3B0aW9uX2V4dGVuc2lvbik7CisgICAgaW50IG5fZXh0ZW5zaW9ucyA9IEFSUkFZX1NJWkUg KGFsbF9leHRlbnNpb25zKTsKICAgICBxc29ydCAoJmFsbF9leHRlbnNpb25zX2J5X29uLCBu X2V4dGVuc2lvbnMsCiAJICAgc2l6ZW9mIChzdHJ1Y3QgYWFyY2g2NF9vcHRpb25fZXh0ZW5z aW9uKSwgb3B0X2V4dF9jbXApOwogfQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hYXJjaDY0 L2FhcmNoNjQtYnVpbHRpbnMuY2MgYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1idWls dGlucy5jYwppbmRleCBjMjE0NzZkN2FlOS4uZTBhNzQxYWM2NjMgMTAwNjQ0Ci0tLSBhL2dj Yy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LWJ1aWx0aW5zLmNjCisrKyBiL2djYy9jb25maWcv YWFyY2g2NC9hYXJjaDY0LWJ1aWx0aW5zLmNjCkBAIC04MzIsNyArODMyLDcgQEAgYWFyY2g2 NF9sb29rdXBfc2ltZF9idWlsdGluX3R5cGUgKG1hY2hpbmVfbW9kZSBtb2RlLAogCQkJCSAg ZW51bSBhYXJjaDY0X3R5cGVfcXVhbGlmaWVycyBxKQogewogICBpbnQgaTsKLSAgaW50IG5l bHRzID0gc2l6ZW9mIChhYXJjaDY0X3NpbWRfdHlwZXMpIC8gc2l6ZW9mIChhYXJjaDY0X3Np bWRfdHlwZXNbMF0pOworICBpbnQgbmVsdHMgPSBBUlJBWV9TSVpFIChhYXJjaDY0X3NpbWRf dHlwZXMpOwogCiAgIC8qIE5vbi1wb2x5IHNjYWxhciBtb2RlcyBtYXAgdG8gc3RhbmRhcmQg dHlwZXMgbm90IGluIHRoZSB0YWJsZS4gICovCiAgIGlmIChxICE9IHF1YWxpZmllcl9wb2x5 ICYmICFWRUNUT1JfTU9ERV9QIChtb2RlKSkKQEAgLTg2OSw3ICs4NjksNyBAQCBzdGF0aWMg dm9pZAogYWFyY2g2NF9pbml0X3NpbWRfYnVpbHRpbl90eXBlcyAodm9pZCkKIHsKICAgaW50 IGk7Ci0gIGludCBuZWx0cyA9IHNpemVvZiAoYWFyY2g2NF9zaW1kX3R5cGVzKSAvIHNpemVv ZiAoYWFyY2g2NF9zaW1kX3R5cGVzWzBdKTsKKyAgaW50IG5lbHRzID0gQVJSQVlfU0laRSAo YWFyY2g2NF9zaW1kX3R5cGVzKTsKICAgdHJlZSB0ZGVjbDsKIAogICAvKiBJbml0IGFsbCB0 aGUgZWxlbWVudCB0eXBlcyBidWlsdCBieSB0aGUgZnJvbnQtZW5kLiAgKi8KQEAgLTE0MzQs NyArMTQzNCw3IEBAIGFhcmNoNjRfaW5pdF9idWlsdGluX3JzcXJ0ICh2b2lkKQogICB9Owog CiAgIGJ1aWx0aW5fZGVjbHNfZGF0YSAqYmRkID0gYmRkYTsKLSAgYnVpbHRpbl9kZWNsc19k YXRhICpiZGRfZW5kID0gYmRkICsgKHNpemVvZiAoYmRkYSkgLyBzaXplb2YgKGJ1aWx0aW5f ZGVjbHNfZGF0YSkpOworICBidWlsdGluX2RlY2xzX2RhdGEgKmJkZF9lbmQgPSBiZGQgKyAo QVJSQVlfU0laRSAoYmRkYSkpOwogCiAgIGZvciAoOyBiZGQgPCBiZGRfZW5kOyBiZGQrKykK ICAgewpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQuY2MgYi9nY2Mv Y29uZmlnL2FhcmNoNjQvYWFyY2g2NC5jYwppbmRleCBmNjUwYWJiYzRjZS4uNmYyZjVkMjdk ZGMgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LmNjCisrKyBiL2dj Yy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LmNjCkBAIC0yMDc1NSw3ICsyMDc1NSw3IEBAIGlz X21hZGRfb3AgKGVudW0gYXR0cl90eXBlIHQxKQogICAgIFRZUEVfU01NTEEsIFRZUEVfVU1M QUwsIFRZUEVfVU1MQUxTLFRZUEVfU01MU0QsIFRZUEVfU01MU0RYLCBUWVBFX1NNTFNMRAog ICB9OwogCi0gIGZvciAoaSA9IDA7IGkgPCBzaXplb2YgKG1sYXR5cGVzKSAvIHNpemVvZiAo ZW51bSBhdHRyX3R5cGUpOyBpKyspCisgIGZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFICht bGF0eXBlcyk7IGkrKykKICAgICB7CiAgICAgICBpZiAodDEgPT0gbWxhdHlwZXNbaV0pCiAJ cmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FybS9hcm0tYnVpbHRpbnMu Y2MgYi9nY2MvY29uZmlnL2FybS9hcm0tYnVpbHRpbnMuY2MKaW5kZXggMzZhNDBhMWRjODAu LmQ5MTcxMzdlNWVlIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FybS9hcm0tYnVpbHRpbnMu Y2MKKysrIGIvZ2NjL2NvbmZpZy9hcm0vYXJtLWJ1aWx0aW5zLmNjCkBAIC0xNDcxLDcgKzE0 NzEsNyBAQCBhcm1fbG9va3VwX3NpbWRfYnVpbHRpbl90eXBlIChtYWNoaW5lX21vZGUgbW9k ZSwKIAkJCSAgICAgIGVudW0gYXJtX3R5cGVfcXVhbGlmaWVycyBxKQogewogICBpbnQgaTsK LSAgaW50IG5lbHRzID0gc2l6ZW9mIChhcm1fc2ltZF90eXBlcykgLyBzaXplb2YgKGFybV9z aW1kX3R5cGVzWzBdKTsKKyAgaW50IG5lbHRzID0gQVJSQVlfU0laRSAoYXJtX3NpbWRfdHlw ZXMpOwogCiAgIC8qIE5vbi1wb2x5IHNjYWxhciBtb2RlcyBtYXAgdG8gc3RhbmRhcmQgdHlw ZXMgbm90IGluIHRoZSB0YWJsZS4gICovCiAgIGlmIChxICE9IHF1YWxpZmllcl9wb2x5ICYm ICFWRUNUT1JfTU9ERV9QIChtb2RlKSkKQEAgLTE1MDMsNyArMTUwMyw3IEBAIHN0YXRpYyB2 b2lkCiBhcm1faW5pdF9zaW1kX2J1aWx0aW5fdHlwZXMgKHZvaWQpCiB7CiAgIGludCBpOwot ICBpbnQgbmVsdHMgPSBzaXplb2YgKGFybV9zaW1kX3R5cGVzKSAvIHNpemVvZiAoYXJtX3Np bWRfdHlwZXNbMF0pOworICBpbnQgbmVsdHMgPSBBUlJBWV9TSVpFIChhcm1fc2ltZF90eXBl cyk7CiAgIHRyZWUgdGRlY2w7CiAKICAgLyogUG9seSB0eXBlcyBhcmUgYSB3b3JsZCBvZiB0 aGVpciBvd24uICBJbiBvcmRlciB0byBtYWludGFpbiBsZWdhY3kKZGlmZiAtLWdpdCBhL2dj Yy9jb25maWcvYXZyL2dlbi1hdnItbW1jdS10ZXhpLmNjIGIvZ2NjL2NvbmZpZy9hdnIvZ2Vu LWF2ci1tbWN1LXRleGkuY2MKaW5kZXggZDljM2EzMDg3N2QuLmE0NGUxOGU0YzM1IDEwMDY0 NAotLS0gYS9nY2MvY29uZmlnL2F2ci9nZW4tYXZyLW1tY3UtdGV4aS5jYworKysgYi9nY2Mv Y29uZmlnL2F2ci9nZW4tYXZyLW1tY3UtdGV4aS5jYwpAQCAtMjMsMTAgKzIzLDEyIEBACiAK ICNkZWZpbmUgSU5fR0VOX0FWUl9NTUNVX1RFWEkKIAorI2RlZmluZSBBUlJBWV9TSVpFKGEp IChzaXplb2YgKGEpIC8gc2l6ZW9mICgoYSlbMF0pKQorCiAjaW5jbHVkZSAiYXZyLWRldmlj ZXMuY2MiCiAKIHN0YXRpYyBjb25zdCBhdnJfbWN1X3QqCi1tY3VzW3NpemVvZiBhdnJfbWN1 X3R5cGVzIC8gc2l6ZW9mIGF2cl9tY3VfdHlwZXNbMF1dOworbWN1c1tBUlJBWV9TSVpFIChh dnJfbWN1X3R5cGVzKV07CiAKIHN0YXRpYyBpbnQgbGV0dGVyIChjaGFyIGMpCiB7CkBAIC01 Niw3ICs1OCw3IEBAIGNfcHJlZml4IChjb25zdCBjaGFyICpzdHIpCiAgICAgICAiYXR0aW55 IiwgImF0bWVnYSIsICJhdHhtZWdhIiwgImF0YSIsICJhdDkwIgogICAgIH07CiAKLSAgaW50 IGksIG4gPSAoaW50KSAoc2l6ZW9mIChwcmVmaXhlcykgLyBzaXplb2YgKCpwcmVmaXhlcykp OworICBpbnQgaSwgbiA9IChpbnQpIChBUlJBWV9TSVpFIChwcmVmaXhlcykpOwogCiAgIGZv ciAoaSA9IDA7IGkgPCBuOyBpKyspCiAgICAgaWYgKHN0cl9wcmVmaXhfcCAoc3RyLCBwcmVm aXhlc1tpXSkpCkBAIC0xODUsNyArMTg3LDcgQEAgaW50IG1haW4gKHZvaWQpCiAJICBwcmlu dF9tY3VzIChuX21jdXMpOwogCSAgbl9tY3VzID0gMDsKIAotCSAgZm9yIChpID0gMDsgaSA8 IHNpemVvZiAoYXZyX3RleGluZm8pIC8gc2l6ZW9mICgqYXZyX3RleGluZm8pOyBpKyspCisJ ICBmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSAoYXZyX3RleGluZm8pOyBpKyspCiAJICAg IGlmIChhcmNoX2lkID09IGF2cl90ZXhpbmZvW2ldLmFyY2hfaWQpCiAJICAgICAgcHJpbnRm ICgiQGl0ZW0gJXNcbiVzXG4iLCBtY3UtPm5hbWUsIGF2cl90ZXhpbmZvW2ldLnRleGluZm8p OwogCX0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYzZ4L2M2eC5jYyBiL2djYy9jb25maWcv YzZ4L2M2eC5jYwppbmRleCA3ZmUxOGQ2OWM3Zi4uZGMwMWE2ZTQ3YzQgMTAwNjQ0Ci0tLSBh L2djYy9jb25maWcvYzZ4L2M2eC5jYworKysgYi9nY2MvY29uZmlnL2M2eC9jNnguY2MKQEAg LTI1ODAsNyArMjU4MCw3IEBAIHN0YXRpYyB1bnNpZ25lZCByZWdfc2F2ZV9vcmRlcltdID0K ICAgUkVHX0IxNCwgUkVHX0ExNQogfTsKIAotI2RlZmluZSBOX1NBVkVfT1JERVIgKHNpemVv ZiByZWdfc2F2ZV9vcmRlciAvIHNpemVvZiAqcmVnX3NhdmVfb3JkZXIpCisjZGVmaW5lIE5f U0FWRV9PUkRFUiAoQVJSQVlfU0laRSAocmVnX3NhdmVfb3JkZXIpKQogCiAvKiBDb21wdXRl IHRoZSBsYXlvdXQgb2YgdGhlIHN0YWNrIGZyYW1lIGFuZCBzdG9yZSBpdCBpbiBGUkFNRS4g ICovCiAKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvZGFyd2luLWMuY2MgYi9nY2MvY29uZmln L2Rhcndpbi1jLmNjCmluZGV4IDM3NzA4NTdhYTQyLi45MjAzYzg0ZDJjMiAxMDA2NDQKLS0t IGEvZ2NjL2NvbmZpZy9kYXJ3aW4tYy5jYworKysgYi9nY2MvY29uZmlnL2Rhcndpbi1jLmNj CkBAIC01MDUsNyArNTA1LDcgQEAgZGFyd2luX3JlZ2lzdGVyX2ZyYW1ld29ya3MgKGNvbnN0 IGNoYXIgKnN5c3Jvb3QsCiAgICAgICBzaXplX3QgaTsKIAogICAgICAgLyogU2V0dXAgZGVm YXVsdCBzZWFyY2ggcGF0aCBmb3IgZnJhbWV3b3Jrcy4gICovCi0gICAgICBmb3IgKGk9MDsg aTxzaXplb2YgKGZyYW1ld29ya19kZWZhdWx0cykvc2l6ZW9mKGNvbnN0IGNoYXIgKik7ICsr aSkKKyAgICAgIGZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFIChmcmFtZXdvcmtfZGVmYXVs dHMpOyArK2kpCiAJewogCSAgY2hhciAqc3RyOwogCSAgaWYgKHN5c3Jvb3QpCmRpZmYgLS1n aXQgYS9nY2MvY29uZmlnL2djbi9ta29mZmxvYWQuY2MgYi9nY2MvY29uZmlnL2djbi9ta29m ZmxvYWQuY2MKaW5kZXggOTRiYTdmZmE1YWYuLjlkYjIxMjRiMTI5IDEwMDY0NAotLS0gYS9n Y2MvY29uZmlnL2djbi9ta29mZmxvYWQuY2MKKysrIGIvZ2NjL2NvbmZpZy9nY24vbWtvZmZs b2FkLmNjCkBAIC03MjMsNyArNzIzLDcgQEAgcHJvY2Vzc19vYmogKEZJTEUgKmluLCBGSUxF ICpjZmlsZSkKIAkgICAiICB1bnNpZ25lZCBnbG9iYWxfdmFyaWFibGVfY291bnQ7XG4iCiAJ ICAgIn0gdGFyZ2V0X2RhdGEgPSB7XG4iCiAJICAgIiAgJmdjbl9pbWFnZSxcbiIKLQkgICAi ICBzaXplb2YgKGdjbl9rZXJuZWxzKSAvIHNpemVvZiAoZ2NuX2tlcm5lbHNbMF0pLFxuIgor CSAgICIgIEFSUkFZX1NJWkUgKGdjbl9rZXJuZWxzKSxcbiIKIAkgICAiICBnY25fa2VybmVs cyxcbiIKIAkgICAiICBnY25fbnVtX3ZhcnNcbiIKIAkgICAifTtcblxuIik7CmRpZmYgLS1n aXQgYS9nY2MvY29uZmlnL2kzODYvaTM4Ni1idWlsdGlucy5jYyBiL2djYy9jb25maWcvaTM4 Ni9pMzg2LWJ1aWx0aW5zLmNjCmluZGV4IDhjNmQwZmU5NjMxLi4wZWEwZWVlNTYyNCAxMDA2 NDQKLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2kzODYtYnVpbHRpbnMuY2MKKysrIGIvZ2NjL2Nv bmZpZy9pMzg2L2kzODYtYnVpbHRpbnMuY2MKQEAgLTE5MzYsOCArMTkzNiw3IEBAIGdldF9i dWlsdGluX2NvZGVfZm9yX3ZlcnNpb24gKHRyZWUgZGVjbCwgdHJlZSAqcHJlZGljYXRlX2xp c3QpCiAKICAgZW51bSBmZWF0dXJlX3ByaW9yaXR5IHByaW9yaXR5ID0gUF9OT05FOwogCi0g IHN0YXRpYyB1bnNpZ25lZCBpbnQgTlVNX0ZFQVRVUkVTCi0gICAgPSBzaXplb2YgKGlzYV9u YW1lc190YWJsZSkgLyBzaXplb2YgKF9pc2FfbmFtZXNfdGFibGUpOworICBzdGF0aWMgdW5z aWduZWQgaW50IE5VTV9GRUFUVVJFUyA9IEFSUkFZX1NJWkUgKGlzYV9uYW1lc190YWJsZSk7 CiAKICAgdW5zaWduZWQgaW50IGk7CiAKQEAgLTIyOTAsOCArMjI4OSw3IEBAIGZvbGRfYnVp bHRpbl9jcHUgKHRyZWUgZm5kZWNsLCB0cmVlICphcmdzKQogICAgICAgdHJlZSBmaW5hbDsK IAogICAgICAgdW5zaWduZWQgaW50IGZpZWxkX3ZhbCA9IDA7Ci0gICAgICB1bnNpZ25lZCBp bnQgTlVNX0lTQV9OQU1FUwotCT0gc2l6ZW9mIChpc2FfbmFtZXNfdGFibGUpIC8gc2l6ZW9m IChzdHJ1Y3QgX2lzYV9uYW1lc190YWJsZSk7CisgICAgICB1bnNpZ25lZCBpbnQgTlVNX0lT QV9OQU1FUyA9IEFSUkFZX1NJWkUgKGlzYV9uYW1lc190YWJsZSk7CiAKICAgICAgIGZvciAo aSA9IDA7IGkgPCBOVU1fSVNBX05BTUVTOyBpKyspCiAJaWYgKHN0cmNtcCAoaXNhX25hbWVz X3RhYmxlW2ldLm5hbWUsCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL20zMmMvbTMyYy5jYyBi L2djYy9jb25maWcvbTMyYy9tMzJjLmNjCmluZGV4IDExY2E5YTQzYTBiLi41YTE5ZmFhMDYz YyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9tMzJjL20zMmMuY2MKKysrIGIvZ2NjL2NvbmZp Zy9tMzJjL20zMmMuY2MKQEAgLTEwOTAsNyArMTA5MCw3IEBAIHN0YXRpYyBzdHJ1Y3QKICAg eyBGQl9SRUdOTywgMHgwMSwgMiwgNCB9CiB9OwogCi0jZGVmaW5lIFBVU0hNX04gKHNpemVv ZihwdXNobV9pbmZvKS9zaXplb2YocHVzaG1faW5mb1swXSkpCisjZGVmaW5lIFBVU0hNX04g KEFSUkFZX1NJWkUgKHB1c2htX2luZm8pKQogCiAvKiBSZXR1cm5zIFRSVUUgaWYgd2UgbmVl ZCB0byBzYXZlL3Jlc3RvcmUgdGhlIGdpdmVuIHJlZ2lzdGVyLiAgV2UKICAgIHNhdmUgZXZl cnl0aGluZyBmb3IgZXhjZXB0aW9uIGhhbmRsZXJzLCBzbyB0aGF0IGFueSByZWdpc3RlciBj YW4gYmUKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvbnZwdHgvbWtvZmZsb2FkLmNjIGIvZ2Nj L2NvbmZpZy9udnB0eC9ta29mZmxvYWQuY2MKaW5kZXggYjI4YzFhMzIyOTIuLmZhM2I0Yjc2 ODIxIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL252cHR4L21rb2ZmbG9hZC5jYworKysgYi9n Y2MvY29uZmlnL252cHR4L21rb2ZmbG9hZC5jYwpAQCAtMzE2LDExICszMTYsMTEgQEAgcHJv Y2VzcyAoRklMRSAqaW4sIEZJTEUgKm91dCkKIAkgICAiICBjb25zdCBzdHJ1Y3QgbnZwdHhf Zm4gKmZuX25hbWVzO1xuIgogCSAgICIgIHVuc2lnbmVkIGZuX251bTtcbiIKIAkgICAifSB0 YXJnZXRfZGF0YSA9IHtcbiIKLQkgICAiICBwdHhfb2Jqcywgc2l6ZW9mIChwdHhfb2Jqcykg LyBzaXplb2YgKHB0eF9vYmpzWzBdKSxcbiIKKwkgICAiICBwdHhfb2JqcywgQVJSQVlfU0la RSAocHR4X29ianMpLFxuIgogCSAgICIgIHZhcl9tYXBwaW5ncywiCi0JICAgIiAgc2l6ZW9m ICh2YXJfbWFwcGluZ3MpIC8gc2l6ZW9mICh2YXJfbWFwcGluZ3NbMF0pLFxuIgorCSAgICIg IEFSUkFZX1NJWkUgKHZhcl9tYXBwaW5ncyksXG4iCiAJICAgIiAgZnVuY19tYXBwaW5ncywi Ci0JICAgIiAgc2l6ZW9mIChmdW5jX21hcHBpbmdzKSAvIHNpemVvZiAoZnVuY19tYXBwaW5n c1swXSlcbiIKKwkgICAiICBBUlJBWV9TSVpFIChmdW5jX21hcHBpbmdzKVxuIgogCSAgICJ9 O1xuXG4iKTsKIAogICBmcHJpbnRmIChvdXQsICIjaWZkZWYgX19jcGx1c3BsdXNcbiIKZGlm ZiAtLWdpdCBhL2djYy9jb25maWcvcnM2MDAwL2RyaXZlci1yczYwMDAuY2MgYi9nY2MvY29u ZmlnL3JzNjAwMC9kcml2ZXItcnM2MDAwLmNjCmluZGV4IGVjODkwZTBkYjNhLi5iODcxZjBh MzZhOCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yczYwMDAvZHJpdmVyLXJzNjAwMC5jYwor KysgYi9nY2MvY29uZmlnL3JzNjAwMC9kcml2ZXItcnM2MDAwLmNjCkBAIC01OTksNyArNTk5 LDcgQEAgaG9zdF9kZXRlY3RfbG9jYWxfY3B1IChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFy Z3YpCiAKICAgaWYgKGFzc2VtYmxlcikKICAgICB7Ci0gICAgICBmb3IgKGkgPSAwOyBpIDwg c2l6ZW9mIChhc21fbmFtZXMpIC8gc2l6ZW9mIChhc21fbmFtZXNbMF0pOyBpKyspCisgICAg ICBmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSAoYXNtX25hbWVzKTsgaSsrKQogCXsKIAkg IGlmICghYXNtX25hbWVzW2ldLmNwdSB8fCAhc3RyY21wIChhc21fbmFtZXNbaV0uY3B1LCBj cHUpKQogCSAgICByZXR1cm4gYXNtX25hbWVzW2ldLmFzbV9zdzsKZGlmZiAtLWdpdCBhL2dj Yy9jb25maWcvczM5MC9zMzkwLmNjIGIvZ2NjL2NvbmZpZy9zMzkwL3MzOTAuY2MKaW5kZXgg N2MzYmQ2Y2JlN2YuLjkwY2E1MDUxNWE3IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3MzOTAv czM5MC5jYworKysgYi9nY2MvY29uZmlnL3MzOTAvczM5MC5jYwpAQCAtODc2OCw3ICs4NzY4 LDcgQEAgc3RhdGljIG1hY2hpbmVfbW9kZSBjb25zdGFudF9tb2Rlc1tdID0KICAgUUltb2Rl LAogICBWMVFJbW9kZQogfTsKLSNkZWZpbmUgTlJfQ19NT0RFUyAoc2l6ZW9mIChjb25zdGFu dF9tb2RlcykgLyBzaXplb2YgKGNvbnN0YW50X21vZGVzWzBdKSkKKyNkZWZpbmUgTlJfQ19N T0RFUyAoQVJSQVlfU0laRSAoY29uc3RhbnRfbW9kZXMpKQogCiBzdHJ1Y3QgY29uc3RhbnQK IHsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvdGlsZXByby9nZW4tbXVsLXRhYmxlcy5jYyBi L2djYy9jb25maWcvdGlsZXByby9nZW4tbXVsLXRhYmxlcy5jYwppbmRleCBjOTY0OWZiOWM3 MC4uNzk4NzY2YTcyM2IgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvdGlsZXByby9nZW4tbXVs LXRhYmxlcy5jYworKysgYi9nY2MvY29uZmlnL3RpbGVwcm8vZ2VuLW11bC10YWJsZXMuY2MK QEAgLTQ2Miw3ICs0NjIsNyBAQCBmaW5kX3NlcXVlbmNlcyAoRXhwcmVzc2lvblRyZWUgJnMs IEV4cHJlc3Npb25UcmVlTWFwICZiZXN0X3NvbHV0aW9uKQogICBjb25zdCBPcGVyYXRvciAq Y29uc3QgcHJldl9vcCA9IHMubV9leHByc1tudW1fdmFscyAtIDFdLm1fb3A7CiAgIGNvbnN0 IGludCBwcmV2X3RvcF9pbmRleCA9IChwcmV2X29wICE9IE5VTEwpID8gcHJldl9vcC0+bV90 b3BfaW5kZXggOiAtMTsKIAotICBmb3IgKHNpemVfdCBmID0gMDsgZiA8IHNpemVvZiBvcHMg LyBzaXplb2Ygb3BzWzBdOyBmKyspCisgIGZvciAoc2l6ZV90IGYgPSAwOyBmIDwgQVJSQVlf U0laRSAob3BzKTsgZisrKQogICAgIHsKICAgICAgIGNvbnN0IE9wZXJhdG9yICpjb25zdCBv cCA9ICZvcHNbZl07CiAKQEAgLTU2NCw3ICs1NjQsNyBAQCBjcmVhdGVfaW5zbl9jb2RlX2Nv bXByZXNzaW9uX3RhYmxlICgpCiAgIHByaW50ZiAoImNvbnN0IGVudW0gaW5zbl9jb2RlICVz X211bHRpcGx5X2luc25fc2VxX2RlY29kZV9vcGNvZGVbXSA9IHtcbiIKIAkgICIgIENPREVf Rk9SX25vdGhpbmcgLyogbXVzdCBiZSBmaXJzdCAqLyAiLCBBUkNIKTsKIAotICBmb3IgKHNp emVfdCBpID0gMDsgaSA8IHNpemVvZiBvcHMgLyBzaXplb2Ygb3BzWzBdOyBpKyspCisgIGZv ciAoc2l6ZV90IGkgPSAwOyBpIDwgQVJSQVlfU0laRSAob3BzKTsgaSsrKQogICAgIHsKICAg ICAgIE9wZXJhdG9yICpvcCA9ICZvcHNbaV07CiAgICAgICBpbnQgaW5kZXggPSAtMTsKZGlm ZiAtLWdpdCBhL2djYy9jb25maWcvdm1zL3Ztcy5jYyBiL2djYy9jb25maWcvdm1zL3Ztcy5j YwppbmRleCA1ZDU2NWUzNWZiNC4uZDBkNDRiYWQyY2UgMTAwNjQ0Ci0tLSBhL2djYy9jb25m aWcvdm1zL3Ztcy5jYworKysgYi9nY2MvY29uZmlnL3Ztcy92bXMuY2MKQEAgLTk5LDcgKzk5 LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2bXNfY3J0bF9uYW1lIHZtc19jcnRsX25hbWVz W10gPQogCiAvKiBOdW1iZXIgb2YgZW50aXJlcyBpbiB0aGUgYWJvdmUgYXJyYXkuICAqLwog Ci0jZGVmaW5lIE5CUl9DUlRMX05BTUVTIChzaXplb2YgKHZtc19jcnRsX25hbWVzKSAvIHNp emVvZiAoKnZtc19jcnRsX25hbWVzKSkKKyNkZWZpbmUgTkJSX0NSVExfTkFNRVMgKEFSUkFZ X1NJWkUgKHZtc19jcnRsX25hbWVzKSkKIAogLyogTGlzdCBvZiBhbGlhc2VkIGlkZW50aWZp ZXJzLiAgVGhleSBtdXN0IGJlIHBlcnNpc3RlbnQgYWNyb3NzIGdjLiAgKi8KIApkaWZmIC0t Z2l0IGEvZ2NjL2NwL21vZHVsZS5jYyBiL2djYy9jcC9tb2R1bGUuY2MKaW5kZXggMThkYWJm Y2M5YWMuLmYwZjU3YjFjNjkwIDEwMDY0NAotLS0gYS9nY2MvY3AvbW9kdWxlLmNjCisrKyBi L2djYy9jcC9tb2R1bGUuY2MKQEAgLTI2MTUsNyArMjYxNSw3IEBAIGRlcHNldDo6ZW50aXR5 X2tpbmRfbmFtZSAoKSBjb25zdAogICAgIHsiZGVjbCIsICJzcGVjaWFsaXphdGlvbiIsICJw YXJ0aWFsIiwgInVzaW5nIiwKICAgICAgIm5hbWVzcGFjZSIsICJyZWRpcmVjdCIsICJiaW5k aW5nIn07CiAgIGVudGl0eV9raW5kIGtpbmQgPSBnZXRfZW50aXR5X2tpbmQgKCk7Ci0gIGdj Y19jaGVja2luZ19hc3NlcnQgKGtpbmQgPCBzaXplb2YgKG5hbWVzKSAvIHNpemVvZihuYW1l c1swXSkpOworICBnY2NfY2hlY2tpbmdfYXNzZXJ0IChraW5kIDwgQVJSQVlfU0laRSAobmFt ZXMpKTsKICAgcmV0dXJuIG5hbWVzW2tpbmRdOwogfQogCmRpZmYgLS1naXQgYS9nY2MvY3Av bmFtZS1sb29rdXAuY2MgYi9nY2MvY3AvbmFtZS1sb29rdXAuY2MKaW5kZXggN2IwNjM4ZDMx NjYuLjA1ZjI5Y2ViYWMyIDEwMDY0NAotLS0gYS9nY2MvY3AvbmFtZS1sb29rdXAuY2MKKysr IGIvZ2NjL2NwL25hbWUtbG9va3VwLmNjCkBAIC02OTE1LDcgKzY5MTUsNyBAQCBnZXRfc3Rk X25hbWVfaGludCAoY29uc3QgY2hhciAqbmFtZSkKICAgICAvKiA8dmVjdG9yPi4gICovCiAg ICAgeyJ2ZWN0b3IiLCAiPHZlY3Rvcj4iLCBjeHg5OH0sCiAgIH07Ci0gIGNvbnN0IHNpemVf dCBudW1faGludHMgPSBzaXplb2YgKGhpbnRzKSAvIHNpemVvZiAoaGludHNbMF0pOworICBj b25zdCBzaXplX3QgbnVtX2hpbnRzID0gQVJSQVlfU0laRSAoaGludHMpOwogICBmb3IgKHNp emVfdCBpID0gMDsgaSA8IG51bV9oaW50czsgaSsrKQogICAgIHsKICAgICAgIGlmIChzdHJj bXAgKG5hbWUsIGhpbnRzW2ldLm5hbWUpID09IDApCmRpZmYgLS1naXQgYS9nY2MvY3AvcGFy c2VyLmNjIGIvZ2NjL2NwL3BhcnNlci5jYwppbmRleCBhMjhlMGUyMGM3NS4uNGE3OGVmMzA2 MjIgMTAwNjQ0Ci0tLSBhL2djYy9jcC9wYXJzZXIuY2MKKysrIGIvZ2NjL2NwL3BhcnNlci5j YwpAQCAtNDIwMCw3ICs0MjAwLDcgQEAgY3BfcGFyc2VyX25ldyAoY3BfbGV4ZXIgKmxleGVy KQogewogICAvKiBJbml0aWFsaXplIHRoZSBiaW5vcHNfYnlfdG9rZW4gc28gdGhhdCB3ZSBj YW4gZ2V0IHRoZSB0cmVlCiAgICAgIGRpcmVjdGx5IGZyb20gdGhlIHRva2VuLiAgKi8KLSAg Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemVvZiAoYmlub3BzKSAvIHNpemVvZiAoYmlu b3BzWzBdKTsgaSsrKQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgQVJSQVlfU0laRSAo Ymlub3BzKTsgaSsrKQogICAgIGJpbm9wc19ieV90b2tlbltiaW5vcHNbaV0udG9rZW5fdHlw ZV0gPSBiaW5vcHNbaV07CiAKICAgY3BfcGFyc2VyICpwYXJzZXIgPSBnZ2NfY2xlYXJlZF9h bGxvYzxjcF9wYXJzZXI+ICgpOwpkaWZmIC0tZ2l0IGEvZ2NjL2RpYWdub3N0aWMtZm9ybWF0 LWpzb24uY2MgYi9nY2MvZGlhZ25vc3RpYy1mb3JtYXQtanNvbi5jYwppbmRleCBkZWYzNzE4 MTZlNi4uNjI1OTRlYmI0ZDcgMTAwNjQ0Ci0tLSBhL2djYy9kaWFnbm9zdGljLWZvcm1hdC1q c29uLmNjCisrKyBiL2djYy9kaWFnbm9zdGljLWZvcm1hdC1qc29uLmNjCkBAIC02Miw3ICs2 Miw3IEBAIGpzb25fZnJvbV9leHBhbmRlZF9sb2NhdGlvbiAoZGlhZ25vc3RpY19jb250ZXh0 ICpjb250ZXh0LCBsb2NhdGlvbl90IGxvYykKICAgICB7ImJ5dGUtY29sdW1uIiwgRElBR05P U1RJQ1NfQ09MVU1OX1VOSVRfQllURX0KICAgfTsKICAgaW50IHRoZV9jb2x1bW4gPSBJTlRf TUlOOwotICBmb3IgKGludCBpID0gMDsgaSAhPSBzaXplb2YgY29sdW1uX2ZpZWxkcyAvIHNp emVvZiAoKmNvbHVtbl9maWVsZHMpOyArK2kpCisgIGZvciAoaW50IGkgPSAwOyBpICE9IEFS UkFZX1NJWkUgKGNvbHVtbl9maWVsZHMpOyArK2kpCiAgICAgewogICAgICAgY29udGV4dC0+ Y29sdW1uX3VuaXQgPSBjb2x1bW5fZmllbGRzW2ldLnVuaXQ7CiAgICAgICBjb25zdCBpbnQg Y29sID0gZGlhZ25vc3RpY19jb252ZXJ0ZWRfY29sdW1uIChjb250ZXh0LCBleHBsb2MpOwpk aWZmIC0tZ2l0IGEvZ2NjL2R3YXJmMm91dC5jYyBiL2djYy9kd2FyZjJvdXQuY2MKaW5kZXgg NTY4MWIwMTc0OWEuLjRlZjY0NGM1ZmFlIDEwMDY0NAotLS0gYS9nY2MvZHdhcmYyb3V0LmNj CisrKyBiL2djYy9kd2FyZjJvdXQuY2MKQEAgLTEzNTMyLDggKzEzNTMyLDcgQEAgc3RhdGlj IGNvbnN0IGR3YXJmX3F1YWxfaW5mb190IGR3YXJmX3F1YWxfaW5mb1tdID0KICAgeyBUWVBF X1FVQUxfUkVTVFJJQ1QsIERXX1RBR19yZXN0cmljdF90eXBlIH0sCiAgIHsgVFlQRV9RVUFM X0FUT01JQywgRFdfVEFHX2F0b21pY190eXBlIH0KIH07Ci1zdGF0aWMgY29uc3QgdW5zaWdu ZWQgaW50IGR3YXJmX3F1YWxfaW5mb19zaXplCi0gID0gc2l6ZW9mIChkd2FyZl9xdWFsX2lu Zm8pIC8gc2l6ZW9mIChkd2FyZl9xdWFsX2luZm9bMF0pOworc3RhdGljIGNvbnN0IHVuc2ln bmVkIGludCBkd2FyZl9xdWFsX2luZm9fc2l6ZSA9IEFSUkFZX1NJWkUgKGR3YXJmX3F1YWxf aW5mbyk7CiAKIC8qIElmIERJRSBpcyBhIHF1YWxpZmllZCBESUUgb2Ygc29tZSBiYXNlIERJ RSB3aXRoIHRoZSBzYW1lIHBhcmVudCwKICAgIHJldHVybiB0aGUgYmFzZSBESUUsIG90aGVy d2lzZSByZXR1cm4gTlVMTC4gIFNldCBNQVNLIHRvIHRoZQpkaWZmIC0tZ2l0IGEvZ2NjL2Zv cnRyYW4vZnJvbnRlbmQtcGFzc2VzLmNjIGIvZ2NjL2ZvcnRyYW4vZnJvbnRlbmQtcGFzc2Vz LmNjCmluZGV4IDVlYmE2MzQ1MTQ1Li42MTJjMTJkMjMzZCAxMDA2NDQKLS0tIGEvZ2NjL2Zv cnRyYW4vZnJvbnRlbmQtcGFzc2VzLmNjCisrKyBiL2djYy9mb3J0cmFuL2Zyb250ZW5kLXBh c3Nlcy5jYwpAQCAtNTY1NCw5ICs1NjU0LDcgQEAgZ2ZjX2NvZGVfd2Fsa2VyIChnZmNfY29k ZSAqKmMsIHdhbGtfY29kZV9mbl90IGNvZGVmbiwgd2Fsa19leHByX2ZuX3QgZXhwcmZuLAog CQkgIFdBTEtfU1VCRVhQUiAoY28tPmV4dC5vbXBfY2xhdXNlcy0+ZGV0YWNoKTsKIAkJICBm b3IgKGlkeCA9IDA7IGlkeCA8IE9NUF9JRl9MQVNUOyBpZHgrKykKIAkJICAgIFdBTEtfU1VC RVhQUiAoY28tPmV4dC5vbXBfY2xhdXNlcy0+aWZfZXhwcnNbaWR4XSk7Ci0JCSAgZm9yIChp ZHggPSAwOwotCQkgICAgICAgaWR4IDwgc2l6ZW9mIChsaXN0X3R5cGVzKSAvIHNpemVvZiAo bGlzdF90eXBlc1swXSk7Ci0JCSAgICAgICBpZHgrKykKKwkJICBmb3IgKGlkeCA9IDA7IGlk eCA8IEFSUkFZX1NJWkUgKGxpc3RfdHlwZXMpOyBpZHgrKykKIAkJICAgIGZvciAobiA9IGNv LT5leHQub21wX2NsYXVzZXMtPmxpc3RzW2xpc3RfdHlwZXNbaWR4XV07CiAJCQkgbjsgbiA9 IG4tPm5leHQpCiAJCSAgICAgIFdBTEtfU1VCRVhQUiAobi0+ZXhwcik7CmRpZmYgLS1naXQg YS9nY2MvZm9ydHJhbi9vcGVubXAuY2MgYi9nY2MvZm9ydHJhbi9vcGVubXAuY2MKaW5kZXgg NGQzZmNjOGJiNzguLjg2NDNlNDMwMDVmIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9vcGVu bXAuY2MKKysrIGIvZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjCkBAIC00OTAyLDggKzQ5MDIsNyBA QCBnZmNfbWF0Y2hfb21wX2NvbnRleHRfc2VsZWN0b3Jfc3BlY2lmaWNhdGlvbiAoZ2ZjX29t cF9kZWNsYXJlX3ZhcmlhbnQgKm9kdikKICAgICAgIG1hdGNoIG07CiAgICAgICBjb25zdCBj aGFyICpzZWxlY3Rvcl9zZXRzW10gPSB7ICJjb25zdHJ1Y3QiLCAiZGV2aWNlIiwKIAkJCQkg ICAgICAiaW1wbGVtZW50YXRpb24iLCAidXNlciIgfTsKLSAgICAgIGNvbnN0IGludCBzZWxl Y3Rvcl9zZXRfY291bnQKLQk9IHNpemVvZiAoc2VsZWN0b3Jfc2V0cykgLyBzaXplb2YgKCpz ZWxlY3Rvcl9zZXRzKTsKKyAgICAgIGNvbnN0IGludCBzZWxlY3Rvcl9zZXRfY291bnQgPSBB UlJBWV9TSVpFIChzZWxlY3Rvcl9zZXRzKTsKICAgICAgIGludCBpOwogICAgICAgY2hhciBi dWZbR0ZDX01BWF9TWU1CT0xfTEVOICsgMV07CiAKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFu L3RyYW5zLWludHJpbnNpYy5jYyBiL2djYy9mb3J0cmFuL3RyYW5zLWludHJpbnNpYy5jYwpp bmRleCAyMjQ5NzIzNTQwZC4uNjg4NDA2MGZkNmYgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFu L3RyYW5zLWludHJpbnNpYy5jYworKysgYi9nY2MvZm9ydHJhbi90cmFucy1pbnRyaW5zaWMu Y2MKQEAgLTk3ODQsNyArOTc4NCw3IEBAIGNvbnZfaW50cmluc2ljX2llZWVfYnVpbHRpbiAo Z2ZjX3NlICogc2UsIGdmY19leHByICogZXhwciwKIAkJCSAgICAgZW51bSBidWlsdF9pbl9m dW5jdGlvbiBjb2RlLCBpbnQgbmFyZ3MpCiB7CiAgIHRyZWUgYXJnc1syXTsKLSAgZ2NjX2Fz c2VydCAoKHVuc2lnbmVkKSBuYXJncyA8PSBzaXplb2YoYXJncykvc2l6ZW9mKGFyZ3NbMF0p KTsKKyAgZ2NjX2Fzc2VydCAoKHVuc2lnbmVkKSBuYXJncyA8PSBBUlJBWV9TSVpFIChhcmdz KSk7CiAKICAgY29udl9pZWVlX2Z1bmN0aW9uX2FyZ3MgKHNlLCBleHByLCBhcmdzLCBuYXJn cyk7CiAgIHNlLT5leHByID0gYnVpbGRfY2FsbF9leHByX2xvY19hcnJheSAoaW5wdXRfbG9j YXRpb24sCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi90cmFucy10eXBlcy5jYyBiL2djYy9m b3J0cmFuL3RyYW5zLXR5cGVzLmNjCmluZGV4IDNjZGM1MjllYjI4Li4zNzQyYmYzMTJjZCAx MDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vdHJhbnMtdHlwZXMuY2MKKysrIGIvZ2NjL2ZvcnRy YW4vdHJhbnMtdHlwZXMuY2MKQEAgLTM0MjAsNyArMzQyMCw3IEBAIGdmY19nZXRfYXJyYXlf ZGVzY3JfaW5mbyAoY29uc3RfdHJlZSB0eXBlLCBzdHJ1Y3QgYXJyYXlfZGVzY3JfaW5mbyAq aW5mbykKICAgICB9CiAKICAgcmFuayA9IEdGQ19UWVBFX0FSUkFZX1JBTksgKHR5cGUpOwot ICBpZiAocmFuayA+PSAoaW50KSAoc2l6ZW9mIChpbmZvLT5kaW1lbikgLyBzaXplb2YgKGlu Zm8tPmRpbWVuWzBdKSkpCisgIGlmIChyYW5rID49IChpbnQpIChBUlJBWV9TSVpFIChpbmZv LT5kaW1lbikpKQogICAgIHJldHVybiBmYWxzZTsKIAogICBldHlwZSA9IEdGQ19UWVBFX0FS UkFZX0RBVEFQVFJfVFlQRSAodHlwZSk7CmRpZmYgLS1naXQgYS9nY2MvZ2VuaG9va3MuY2Mg Yi9nY2MvZ2VuaG9va3MuY2MKaW5kZXggMjBhZDYwN2IxNTguLjZiYWU4NWQ3YjhkIDEwMDY0 NAotLS0gYS9nY2MvZ2VuaG9va3MuY2MKKysrIGIvZ2NjL2dlbmhvb2tzLmNjCkBAIC0xMjgs NyArMTI4LDcgQEAgZW1pdF9kb2N1bWVudGF0aW9uIChjb25zdCBjaGFyICppbl9mbmFtZSkK ICAgICB9CiAgIGZjbG9zZSAoZik7CiAgIC8qIEZvciBlYWNoIGhvb2sgaW4gaG9va19hcnJh eSwgaWYgaXQgaXMgYSBzdGFydCBob29rLCBzdG9yZSBpdHMgcG9zaXRpb24uICAqLwotICBm b3IgKGkgPSAwOyBpIDwgKGludCkgKHNpemVvZiBob29rX2FycmF5IC8gc2l6ZW9mIGhvb2tf YXJyYXlbMF0pOyBpKyspCisgIGZvciAoaSA9IDA7IGkgPCAoaW50KSAoQVJSQVlfU0laRSAo aG9va19hcnJheSkpOyBpKyspCiAgICAgewogICAgICAgc3RydWN0IHNfaG9vayBzaCwgKnNo cDsKICAgICAgIHZvaWQgKnA7CkBAIC0yMjMsNyArMjIzLDcgQEAgZW1pdF9kb2N1bWVudGF0 aW9uIChjb25zdCBjaGFyICppbl9mbmFtZSkKIAkgICAgICAvKiBQT0QtdmFsdWVkIGhvb2tz IHNvbWV0aW1lcyBjb21lIGluIGdyb3VwcyB3aXRoIGNvbW1vbgogCQkgZG9jdW1lbnRhdGlv bi4qLwogCSAgICAgIGZvciAoaiA9IGkgKyAxOwotCQkgICBqIDwgKGludCkgKHNpemVvZiBo b29rX2FycmF5IC8gc2l6ZW9mIGhvb2tfYXJyYXlbMF0pCisJCSAgIGogPCAoaW50KSAoQVJS QVlfU0laRSAoaG9va19hcnJheSkpCiAJCSAgICYmIGhvb2tfYXJyYXlbal0uZG9jID09IDAg JiYgaG9va19hcnJheVtqXS50eXBlOyBqKyspCiAJCXsKIAkJICBjaGFyICpuYW1leCA9IHVw c3RyZHVwIChob29rX2FycmF5W2pdLm5hbWUpOwpAQCAtMjQ2LDggKzI0Niw3IEBAIGVtaXRf ZG9jdW1lbnRhdGlvbiAoY29uc3QgY2hhciAqaW5fZm5hbWUpCiAJCSAgcHJpbnRmICgiXG5A ZW5kICVzIiwgZGVmdHlwZSk7CiAJCX0KIAkgICAgfQotCSAgaWYgKCsraSA+PSAoaW50KSAo c2l6ZW9mIGhvb2tfYXJyYXkgLyBzaXplb2YgaG9va19hcnJheVswXSkKLQkgICAgICB8fCAh aG9va19hcnJheVtpXS5kb2MpCisJICBpZiAoKytpID49IChpbnQpIChBUlJBWV9TSVpFICho b29rX2FycmF5KSkgfHwgIWhvb2tfYXJyYXlbaV0uZG9jKQogCSAgICBicmVhazsKIAkgIGZy ZWUgKG5hbWUpOwogCSAgc2gubmFtZSA9IG5hbWUgPSB1cHN0cmR1cCAoaG9va19hcnJheVtp XS5uYW1lKTsKQEAgLTI3MCw3ICsyNjksNyBAQCBlbWl0X2luaXRfbWFjcm9zIChjb25zdCBj aGFyICpkb2NuYW1lKQogCiAgIGZvciAocHJpbnRfbmVzdCA9IDA7IHByaW50X25lc3QgPD0g TUFYX05FU1Q7IHByaW50X25lc3QrKykKICAgICB7Ci0gICAgICBmb3IgKGkgPSAwOyBpIDwg KGludCkgKHNpemVvZiBob29rX2FycmF5IC8gc2l6ZW9mIGhvb2tfYXJyYXlbMF0pOyBpKysp CisgICAgICBmb3IgKGkgPSAwOyBpIDwgKGludCkgKEFSUkFZX1NJWkUgKGhvb2tfYXJyYXkp KTsgaSsrKQogCXsKIAkgIGNoYXIgKm5hbWUgPSB1cHN0cmR1cCAoaG9va19hcnJheVtpXS5u YW1lKTsKIApkaWZmIC0tZ2l0IGEvZ2NjL2dpbXBsZS1zc2Etc3ByaW50Zi5jYyBiL2djYy9n aW1wbGUtc3NhLXNwcmludGYuY2MKaW5kZXggOWE4NGZmZmVkMWEuLmViMDViZThjMGVkIDEw MDY0NAotLS0gYS9nY2MvZ2ltcGxlLXNzYS1zcHJpbnRmLmNjCisrKyBiL2djYy9naW1wbGUt c3NhLXNwcmludGYuY2MKQEAgLTE5NTMsNyArMTk1Myw3IEBAIGZvcm1hdF9mbG9hdGluZyAo Y29uc3QgZGlyZWN0aXZlICZkaXIsIHRyZWUgYXJnLCBwb2ludGVyX3F1ZXJ5ICYpCiAgICAg ICAmcmVzLnJhbmdlLm1pbiwgJnJlcy5yYW5nZS5tYXgKICAgICB9OwogCi0gICAgZm9yIChp bnQgaSA9IDA7IGkgIT0gc2l6ZW9mIG1pbm1heCAvIHNpemVvZiAqbWlubWF4OyArK2kpCisg ICAgZm9yIChpbnQgaSA9IDA7IGkgIT0gQVJSQVlfU0laRSAobWlubWF4KTsgKytpKQogICAg ICAgewogCS8qIENvbnZlcnQgdGhlIEdDQyByZWFsIHZhbHVlIHJlcHJlc2VudGF0aW9uIHdp dGggdGhlIHByZWNpc2lvbgogCSAgIG9mIHRoZSByZWFsIHR5cGUgdG8gdGhlIG1wZnJfdCBm b3JtYXQgcm91bmRpbmcgZG93biBpbiB0aGUKZGlmZiAtLWdpdCBhL2djYy9naW1wbGUtc3Nh LXdhcm4tYWNjZXNzLmNjIGIvZ2NjL2dpbXBsZS1zc2Etd2Fybi1hY2Nlc3MuY2MKaW5kZXgg MzlhYTgxODZkZTYuLmVjNDU4YjBjMGQzIDEwMDY0NAotLS0gYS9nY2MvZ2ltcGxlLXNzYS13 YXJuLWFjY2Vzcy5jYworKysgYi9nY2MvZ2ltcGxlLXNzYS13YXJuLWFjY2Vzcy5jYwpAQCAt Mjg1Myw3ICsyODUzLDcgQEAgbWVtbW9kZWxfbmFtZSAodW5zaWduZWQgSE9TVF9XSURFX0lO VCB2YWwpCiB7CiAgIHZhbCA9IG1lbW1vZGVsX2Jhc2UgKHZhbCk7CiAKLSAgZm9yICh1bnNp Z25lZCBpID0gMDsgaSAhPSBzaXplb2YgbWVtb3J5X21vZGVscyAvIHNpemVvZiAqbWVtb3J5 X21vZGVsczsgKytpKQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpICE9IEFSUkFZX1NJWkUg KG1lbW9yeV9tb2RlbHMpOyArK2kpCiAgICAgewogICAgICAgaWYgKHZhbCA9PSBtZW1vcnlf bW9kZWxzW2ldLm1vZHZhbCkKIAlyZXR1cm4gbWVtb3J5X21vZGVsc1tpXS5tb2RuYW1lOwpk aWZmIC0tZ2l0IGEvZ2NjL2dvZHVtcC5jYyBiL2djYy9nb2R1bXAuY2MKaW5kZXggNjY5MTY4 ODA2ZjMuLjJhZTBiY2M5NjcyIDEwMDY0NAotLS0gYS9nY2MvZ29kdW1wLmNjCisrKyBiL2dj Yy9nb2R1bXAuY2MKQEAgLTEzMjYsNyArMTMyNiw3IEBAIHN0YXRpYyB2b2lkCiBrZXl3b3Jk X2hhc2hfaW5pdCAoY2xhc3MgZ29kdW1wX2NvbnRhaW5lciAqY29udGFpbmVyKQogewogICBz aXplX3QgaTsKLSAgc2l6ZV90IGNvdW50ID0gc2l6ZW9mIChrZXl3b3JkcykgLyBzaXplb2Yg KGtleXdvcmRzWzBdKTsKKyAgc2l6ZV90IGNvdW50ID0gQVJSQVlfU0laRSAoa2V5d29yZHMp OwogICB2b2lkICoqc2xvdDsKIAogICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykKZGlm ZiAtLWdpdCBhL2djYy9oYXNoLXRhYmxlLmNjIGIvZ2NjL2hhc2gtdGFibGUuY2MKaW5kZXgg ZGFkMWQyMWYwOTkuLjEwMTVjMWVlNmU5IDEwMDY0NAotLS0gYS9nY2MvaGFzaC10YWJsZS5j YworKysgYi9nY2MvaGFzaC10YWJsZS5jYwpAQCAtODQsNyArODQsNyBAQCB1bnNpZ25lZCBp bnQKIGhhc2hfdGFibGVfaGlnaGVyX3ByaW1lX2luZGV4ICh1bnNpZ25lZCBsb25nIG4pCiB7 CiAgIHVuc2lnbmVkIGludCBsb3cgPSAwOwotICB1bnNpZ25lZCBpbnQgaGlnaCA9IHNpemVv ZiAocHJpbWVfdGFiKSAvIHNpemVvZiAocHJpbWVfdGFiWzBdKTsKKyAgdW5zaWduZWQgaW50 IGhpZ2ggPSBBUlJBWV9TSVpFIChwcmltZV90YWIpOwogCiAgIHdoaWxlIChsb3cgIT0gaGln aCkKICAgICB7CmRpZmYgLS1naXQgYS9nY2MvaW5wdXQuY2MgYi9nY2MvaW5wdXQuY2MKaW5k ZXggYjM5NzA2MTNkODEuLjU4YmViYTA1MDcyIDEwMDY0NAotLS0gYS9nY2MvaW5wdXQuY2MK KysrIGIvZ2NjL2lucHV0LmNjCkBAIC0zNzI0LDggKzM3MjQsNyBAQCBmb3JfZWFjaF9saW5l X3RhYmxlX2Nhc2UgKHZvaWQgKCp0ZXN0Y2FzZSkgKGNvbnN0IGxpbmVfdGFibGVfY2FzZSAm KSkKICAgICB7CiAgICAgICAvKiAuLi5hbmQgdXNlIGVhY2ggb2YgdGhlICJpbnRlcmVzdGlu ZyIgbG9jYXRpb24gdmFsdWVzIGFzCiAJIHRoZSBzdGFydGluZyBsb2NhdGlvbiB3aXRoaW4g bGluZV90YWJsZS4gICovCi0gICAgICBjb25zdCBpbnQgbnVtX2JvdW5kYXJ5X2xvY2F0aW9u cwotCT0gc2l6ZW9mIChib3VuZGFyeV9sb2NhdGlvbnMpIC8gc2l6ZW9mIChib3VuZGFyeV9s b2NhdGlvbnNbMF0pOworICAgICAgY29uc3QgaW50IG51bV9ib3VuZGFyeV9sb2NhdGlvbnMg PSBBUlJBWV9TSVpFIChib3VuZGFyeV9sb2NhdGlvbnMpOwogICAgICAgZm9yIChpbnQgbG9j X2lkeCA9IDA7IGxvY19pZHggPCBudW1fYm91bmRhcnlfbG9jYXRpb25zOyBsb2NfaWR4Kysp CiAJewogCSAgbGluZV90YWJsZV9jYXNlIGMgKGRlZmF1bHRfcmFuZ2VfYml0cywgYm91bmRh cnlfbG9jYXRpb25zW2xvY19pZHhdKTsKZGlmZiAtLWdpdCBhL2djYy9pcGEtZnJlZS1sYW5n LWRhdGEuY2MgYi9nY2MvaXBhLWZyZWUtbGFuZy1kYXRhLmNjCmluZGV4IGE3NDIxNTY4NThj Li5mOTlmN2JlMWM1OCAxMDA2NDQKLS0tIGEvZ2NjL2lwYS1mcmVlLWxhbmctZGF0YS5jYwor KysgYi9nY2MvaXBhLWZyZWUtbGFuZy1kYXRhLmNjCkBAIC0xMTA5LDkgKzExMDksNyBAQCBm cmVlX2xhbmdfZGF0YSAodm9pZCkKICAgZnJlZV9sYW5nX2RhdGFfaW5fY2dyYXBoICgmZmxk KTsKIAogICAvKiBDcmVhdGUgZ2ltcGxlIHZhcmlhbnRzIGZvciBjb21tb24gdHlwZXMuICAq LwotICBmb3IgKHVuc2lnbmVkIGkgPSAwOwotICAgICAgIGkgPCBzaXplb2YgKGJ1aWx0aW5f c3RydWN0cHRyX3R5cGVzKSAvIHNpemVvZiAoYnVpbHRpbl9zdHJ1Y3RwdHJfdHlwZSk7Ci0g ICAgICAgKytpKQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgQVJSQVlfU0laRSAoYnVp bHRpbl9zdHJ1Y3RwdHJfdHlwZXMpOyArK2kpCiAgICAgYnVpbHRpbl9zdHJ1Y3RwdHJfdHlw ZXNbaV0ubm9kZSA9IGJ1aWx0aW5fc3RydWN0cHRyX3R5cGVzW2ldLmJhc2U7CiAKICAgLyog UmVzZXQgc29tZSBsYW5naG9va3MuICBEbyBub3QgcmVzZXQgdHlwZXNfY29tcGF0aWJsZV9w LCBpdCBtYXkKZGlmZiAtLWdpdCBhL2djYy9pcGEtaW5saW5lLmNjIGIvZ2NjL2lwYS1pbmxp bmUuY2MKaW5kZXggZjhiYjA3MmM0MjIuLjIyYTAwOWI3NDM1IDEwMDY0NAotLS0gYS9nY2Mv aXBhLWlubGluZS5jYworKysgYi9nY2MvaXBhLWlubGluZS5jYwpAQCAtMjc4LDcgKzI3OCw3 IEBAIHNhbml0aXplX2F0dHJzX21hdGNoX2Zvcl9pbmxpbmVfcCAoY29uc3RfdHJlZSBjYWxs ZXIsIGNvbnN0X3RyZWUgY2FsbGVlKQogICAgICAgU0FOSVRJWkVfUE9JTlRFUl9TVUJUUkFD VAogICAgIH07CiAKLSAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemVvZiAoY29kZXMp IC8gc2l6ZW9mIChjb2Rlc1swXSk7IGkrKykKKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8 IEFSUkFZX1NJWkUgKGNvZGVzKTsgaSsrKQogICAgIGlmIChzYW5pdGl6ZV9mbGFnc19wIChj b2Rlc1tpXSwgY2FsbGVyKQogCSE9IHNhbml0aXplX2ZsYWdzX3AgKGNvZGVzW2ldLCBjYWxs ZWUpKQogICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9qaXQtYnVp bHRpbnMuY2MgYi9nY2Mvaml0L2ppdC1idWlsdGlucy5jYwppbmRleCBiOTQ5YjczNDMzMi4u ZmI4NmM3N2QwZmUgMTAwNjQ0Ci0tLSBhL2djYy9qaXQvaml0LWJ1aWx0aW5zLmNjCisrKyBi L2djYy9qaXQvaml0LWJ1aWx0aW5zLmNjCkBAIC0xMDksOSArMTA5LDcgQEAgZmluZF9idWls dGluX2J5X25hbWUgKGNvbnN0IGNoYXIgKmluX25hbWUsCiAKICAgICAgV2Ugc3RhcnQgYXQg aW5kZXggMSB0byBza2lwIHRoZSBpbml0aWFsIGVudHJ5IChCVUlMVF9JTl9OT05FKSwgd2hp Y2gKICAgICAgaGFzIGEgTlVMTCBuYW1lLiAgKi8KLSAgZm9yICh1bnNpZ25lZCBpbnQgaSA9 IDE7Ci0gICAgICAgaSA8IHNpemVvZiAoYnVpbHRpbl9kYXRhKSAvIHNpemVvZiAoYnVpbHRp bl9kYXRhWzBdKTsKLSAgICAgICBpKyspCisgIGZvciAodW5zaWduZWQgaW50IGkgPSAxOyBp IDwgQVJSQVlfU0laRSAoYnVpbHRpbl9kYXRhKTsgaSsrKQogICAgIHsKICAgICAgIGNvbnN0 IHN0cnVjdCBidWlsdGluX2RhdGEmIGJkID0gYnVpbHRpbl9kYXRhW2ldOwogICAgICAgaWYg KG1hdGNoZXNfYnVpbHRpbiAoaW5fbmFtZSwgYmQpKQpAQCAtMzIwLDcgKzMxOCw3IEBAIHN0 YXRpYyBjb25zdCBjaGFyICogY29uc3QgdHlwZV9uYW1lc1tdID0gewogc3RhdGljIGNvbnN0 IGNoYXIgKgogZ2V0X3N0cmluZ19mb3JfdHlwZV9pZCAoZW51bSBqaXRfYnVpbHRpbl90eXBl IHR5cGVfaWQpCiB7Ci0gIGdjY19hc3NlcnQgKHR5cGVfaWQgPCBzaXplb2YgKHR5cGVfbmFt ZXMpL3NpemVvZih0eXBlX25hbWVzWzBdKSk7CisgIGdjY19hc3NlcnQgKHR5cGVfaWQgPCBB UlJBWV9TSVpFICh0eXBlX25hbWVzKSk7CiAgIHJldHVybiB0eXBlX25hbWVzW3R5cGVfaWRd OwogfQogCmRpZmYgLS1naXQgYS9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuY2MgYi9nY2Mvaml0 L2ppdC1yZWNvcmRpbmcuY2MKaW5kZXggYTMxNzIwZjA0M2UuLjQzMDVhOTYxNDg5IDEwMDY0 NAotLS0gYS9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuY2MKKysrIGIvZ2NjL2ppdC9qaXQtcmVj b3JkaW5nLmNjCkBAIC01NjgsOSArNTY4LDcgQEAgcmVjb3JkaW5nOjpjb250ZXh0Ojpjb250 ZXh0IChjb250ZXh0ICpwYXJlbnRfY3R4dCkKICAgaWYgKHBhcmVudF9jdHh0KQogICAgIHsK ICAgICAgIC8qIEluaGVyaXQgb3B0aW9ucyBmcm9tIHBhcmVudC4gICovCi0gICAgICBmb3Ig KHVuc2lnbmVkIGkgPSAwOwotCSAgIGkgPCBzaXplb2YgKG1fc3RyX29wdGlvbnMpIC8gc2l6 ZW9mIChtX3N0cl9vcHRpb25zWzBdKTsKLQkgICBpKyspCisgICAgICBmb3IgKHVuc2lnbmVk IGkgPSAwOyBpIDwgQVJSQVlfU0laRSAobV9zdHJfb3B0aW9ucyk7IGkrKykKIAl7CiAJICBj b25zdCBjaGFyICpwYXJlbnRfb3B0ID0gcGFyZW50X2N0eHQtPm1fc3RyX29wdGlvbnNbaV07 CiAJICBtX3N0cl9vcHRpb25zW2ldID0gcGFyZW50X29wdCA/IHhzdHJkdXAgKHBhcmVudF9v cHQpIDogTlVMTDsKZGlmZiAtLWdpdCBhL2djYy9sdG8vbHRvLWNvbW1vbi5jYyBiL2djYy9s dG8vbHRvLWNvbW1vbi5jYwppbmRleCBjYTI4NTg2YTFlOC4uZDhkMDQwNGM1NGUgMTAwNjQ0 Ci0tLSBhL2djYy9sdG8vbHRvLWNvbW1vbi5jYworKysgYi9nY2MvbHRvL2x0by1jb21tb24u Y2MKQEAgLTIxMDQsOCArMjEwNCw3IEBAIGx0b19yZXNvbHV0aW9uX3JlYWQgKHNwbGF5X3Ry ZWUgZmlsZV9pZHMsIEZJTEUgKnJlc29sdXRpb24sIGx0b19maWxlICpmaWxlKQogICAgICAg Y2hhciByX3N0clsyN107CiAgICAgICBlbnVtIGxkX3BsdWdpbl9zeW1ib2xfcmVzb2x1dGlv biByID0gKGVudW0gbGRfcGx1Z2luX3N5bWJvbF9yZXNvbHV0aW9uKSAwOwogICAgICAgdW5z aWduZWQgaW50IGo7Ci0gICAgICB1bnNpZ25lZCBpbnQgbHRvX3Jlc29sdXRpb25fc3RyX2xl bgotCT0gc2l6ZW9mIChsdG9fcmVzb2x1dGlvbl9zdHIpIC8gc2l6ZW9mIChjaGFyICopOwor ICAgICAgdW5zaWduZWQgaW50IGx0b19yZXNvbHV0aW9uX3N0cl9sZW4gPSBBUlJBWV9TSVpF IChsdG9fcmVzb2x1dGlvbl9zdHIpOwogICAgICAgcmVzX3BhaXIgcnA7CiAKICAgICAgIHQg PSBmc2NhbmYgKHJlc29sdXRpb24sICIldSAiIEhPU1RfV0lERV9JTlRfUFJJTlRfSEVYX1BV UkUKZGlmZiAtLWdpdCBhL2djYy9sdG8vbHRvLWxhbmcuY2MgYi9nY2MvbHRvL2x0by1sYW5n LmNjCmluZGV4IDhkNThkOTI0ZGZmLi45NzJhMDMzNmY3NSAxMDA2NDQKLS0tIGEvZ2NjL2x0 by9sdG8tbGFuZy5jYworKysgYi9nY2MvbHRvL2x0by1sYW5nLmNjCkBAIC0xMzE5LDkgKzEz MTksNyBAQCBsdG9faW5pdCAodm9pZCkKICAgICAgZGlzdGluY3Rpb24gc2hvdWxkIG9ubHkg YmUgcmVsZXZhbnQgdG8gdGhlIGZyb250LWVuZCwgc28gd2UKICAgICAgYWx3YXlzIHVzZSB0 aGUgQyBkZWZpbml0aW9uIGhlcmUgaW4gbHRvMS4KICAgICAgTGlrZXdpc2UgZm9yIGNvbnN0 IHN0cnVjdCB0bSouICAqLwotICBmb3IgKHVuc2lnbmVkIGkgPSAwOwotICAgICAgIGkgPCBz aXplb2YgKGJ1aWx0aW5fc3RydWN0cHRyX3R5cGVzKSAvIHNpemVvZiAoYnVpbHRpbl9zdHJ1 Y3RwdHJfdHlwZSk7Ci0gICAgICAgKytpKQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg QVJSQVlfU0laRSAoYnVpbHRpbl9zdHJ1Y3RwdHJfdHlwZXMpOyArK2kpCiAgICAgewogICAg ICAgZ2NjX2Fzc2VydCAoYnVpbHRpbl9zdHJ1Y3RwdHJfdHlwZXNbaV0ubm9kZQogCQkgID09 IGJ1aWx0aW5fc3RydWN0cHRyX3R5cGVzW2ldLmJhc2UpOwpkaWZmIC0tZ2l0IGEvZ2NjL29w dGMtc2F2ZS1nZW4uYXdrIGIvZ2NjL29wdGMtc2F2ZS1nZW4uYXdrCmluZGV4IDk5MTFiYWI2 NjY4Li4yMzNkMWZiYjYzNyAxMDA2NDQKLS0tIGEvZ2NjL29wdGMtc2F2ZS1nZW4uYXdrCisr KyBiL2djYy9vcHRjLXNhdmUtZ2VuLmF3awpAQCAtMTEwNCw3ICsxMTA0LDcgQEAgZm9yIChp ID0gMDsgaSA8IG5fdGFyZ2V0X3ZhbDsgaSsrKSB7CiB9CiAKIGlmIChoYXNfdGFyZ2V0X2V4 cGxpY2l0X21hc2spIHsKLQlwcmludCAiICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVv ZiAocHRyMS0+ZXhwbGljaXRfbWFzaykgLyBzaXplb2YgKHB0cjEtPmV4cGxpY2l0X21hc2tb MF0pOyBpKyspIjsKKwlwcmludCAiICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IEFSUkFZX1NJ WkUgKHB0cjEtPmV4cGxpY2l0X21hc2spOyBpKyspIjsKIAlwcmludCAiICAgIGlmIChwdHIx LT5leHBsaWNpdF9tYXNrW2ldICE9IHB0cjItPmV4cGxpY2l0X21hc2tbaV0pIjsKIAlwcmlu dCAiICAgICAgcmV0dXJuIGZhbHNlOyIKIH0KQEAgLTExNTIsNyArMTE1Miw3IEBAIGZvciAo aSA9IDA7IGkgPCBuX3RhcmdldF92YWw7IGkrKykgewogCXByaW50ICIgIGhzdGF0ZS5hZGRf aHdpIChwdHItPiIgbmFtZSIpOyI7CiB9CiBpZiAoaGFzX3RhcmdldF9leHBsaWNpdF9tYXNr KSB7Ci0JcHJpbnQgIiAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YgKHB0ci0+ZXhw bGljaXRfbWFzaykgLyBzaXplb2YgKHB0ci0+ZXhwbGljaXRfbWFza1swXSk7IGkrKykiOwor CXByaW50ICIgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgQVJSQVlfU0laRSAocHRyLT5leHBs aWNpdF9tYXNrKTsgaSsrKSI7CiAJcHJpbnQgIiAgICBoc3RhdGUuYWRkX2h3aSAocHRyLT5l eHBsaWNpdF9tYXNrW2ldKTsiOwogfQogCkBAIC0xMTkyLDcgKzExOTIsNyBAQCBmb3IgKGkg PSAwOyBpIDwgbl90YXJnZXRfdmFsOyBpKyspIHsKIH0KIAogaWYgKGhhc190YXJnZXRfZXhw bGljaXRfbWFzaykgewotCXByaW50ICIgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9m IChwdHItPmV4cGxpY2l0X21hc2spIC8gc2l6ZW9mIChwdHItPmV4cGxpY2l0X21hc2tbMF0p OyBpKyspIjsKKwlwcmludCAiICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IEFSUkFZX1NJWkUg KHB0ci0+ZXhwbGljaXRfbWFzayk7IGkrKykiOwogCXByaW50ICIgICAgYnBfcGFja192YWx1 ZSAoYnAsIHB0ci0+ZXhwbGljaXRfbWFza1tpXSwgNjQpOyI7CiB9CiAKQEAgLTEyMzUsNyAr MTIzNSw3IEBAIGZvciAoaSA9IDA7IGkgPCBuX3RhcmdldF92YWw7IGkrKykgewogfQogCiBp ZiAoaGFzX3RhcmdldF9leHBsaWNpdF9tYXNrKSB7Ci0JcHJpbnQgIiAgZm9yIChzaXplX3Qg aSA9IDA7IGkgPCBzaXplb2YgKHB0ci0+ZXhwbGljaXRfbWFzaykgLyBzaXplb2YgKHB0ci0+ ZXhwbGljaXRfbWFza1swXSk7IGkrKykiOworCXByaW50ICIgIGZvciAoc2l6ZV90IGkgPSAw OyBpIDwgQVJSQVlfU0laRSAocHRyLT5leHBsaWNpdF9tYXNrKTsgaSsrKSI7CiAJcHJpbnQg IiAgICBwdHItPmV4cGxpY2l0X21hc2tbaV0gPSBicF91bnBhY2tfdmFsdWUgKGJwLCA2NCk7 IjsKIH0KIApAQCAtMTMxNyw3ICsxMzE3LDcgQEAgZm9yIChpID0gMDsgaSA8IG5fb3B0X3Zh bDsgaSsrKSB7CiAJZWxzZQogCQlwcmludCAiICBoc3RhdGUuYWRkX2h3aSAocHRyLT4iIG5h bWUiKTsiOwogfQotcHJpbnQgIiAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YgKHB0 ci0+ZXhwbGljaXRfbWFzaykgLyBzaXplb2YgKHB0ci0+ZXhwbGljaXRfbWFza1swXSk7IGkr KykiOworcHJpbnQgIiAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBBUlJBWV9TSVpFIChwdHIt PmV4cGxpY2l0X21hc2spOyBpKyspIjsKIHByaW50ICIgICAgaHN0YXRlLmFkZF9od2kgKHB0 ci0+ZXhwbGljaXRfbWFza1tpXSk7IjsKIHByaW50ICIgIHJldHVybiBoc3RhdGUuZW5kICgp OyI7CiBwcmludCAifSI7CkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBmb3IgKGkgPSAwOyBpIDwg bl9vcHRfdmFsOyBpKyspIHsKIAkJcHJpbnQgIiAgICByZXR1cm4gZmFsc2U7IjsKIAl9CiB9 Ci1wcmludCAiICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVvZiAocHRyMS0+ZXhwbGlj aXRfbWFzaykgLyBzaXplb2YgKHB0cjEtPmV4cGxpY2l0X21hc2tbMF0pOyBpKyspIjsKK3By aW50ICIgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgQVJSQVlfU0laRSAocHRyMS0+ZXhwbGlj aXRfbWFzayk7IGkrKykiOwogcHJpbnQgIiAgICBpZiAocHRyMS0+ZXhwbGljaXRfbWFza1tp XSAhPSBwdHIyLT5leHBsaWNpdF9tYXNrW2ldKSI7CiBwcmludCAiICAgICAgcmV0dXJuIGZh bHNlOyIKIHByaW50ICIgIHJldHVybiB0cnVlOyI7CkBAIC0xMzgwLDcgKzEzODAsNyBAQCBm b3IgKGkgPSAwOyBpIDwgbl9vcHRfdmFsOyBpKyspIHsKIAkJfQogCX0KIH0KLXByaW50ICIg IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mIChwdHItPmV4cGxpY2l0X21hc2spIC8g c2l6ZW9mIChwdHItPmV4cGxpY2l0X21hc2tbMF0pOyBpKyspIjsKK3ByaW50ICIgIGZvciAo c2l6ZV90IGkgPSAwOyBpIDwgQVJSQVlfU0laRSAocHRyLT5leHBsaWNpdF9tYXNrKTsgaSsr KSI7CiBwcmludCAiICAgIGJwX3BhY2tfdmFsdWUgKGJwLCBwdHItPmV4cGxpY2l0X21hc2tb aV0sIDY0KTsiOwogcHJpbnQgIn0iOwogCkBAIC0xNDEyLDcgKzE0MTIsNyBAQCBmb3IgKGkg PSAwOyBpIDwgbl9vcHRfdmFsOyBpKyspIHsKIAkJfQogCX0KIH0KLXByaW50ICIgIGZvciAo c2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mIChwdHItPmV4cGxpY2l0X21hc2spIC8gc2l6ZW9m IChwdHItPmV4cGxpY2l0X21hc2tbMF0pOyBpKyspIjsKK3ByaW50ICIgIGZvciAoc2l6ZV90 IGkgPSAwOyBpIDwgQVJSQVlfU0laRSAocHRyLT5leHBsaWNpdF9tYXNrKTsgaSsrKSI7CiBw cmludCAiICAgIHB0ci0+ZXhwbGljaXRfbWFza1tpXSA9IGJwX3VucGFja192YWx1ZSAoYnAs IDY0KTsiOwogcHJpbnQgIn0iOwogcHJpbnQgIi8qIEZyZWUgaGVhcCBtZW1vcnkgdXNlZCBi eSBvcHRpbWl6YXRpb24gb3B0aW9ucyAgKi8iOwpkaWZmIC0tZ2l0IGEvZ2NjL3NwZWxsY2hl Y2suY2MgYi9nY2Mvc3BlbGxjaGVjay5jYwppbmRleCAzZTU4MzQ0ZjUxMC4uYzdiYjAxMjI1 NDUgMTAwNjQ0Ci0tLSBhL2djYy9zcGVsbGNoZWNrLmNjCisrKyBiL2djYy9zcGVsbGNoZWNr LmNjCkBAIC00ODksNyArNDg5LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB0ZXN0 X2RhdGFbXSA9IHsKIHN0YXRpYyB2b2lkCiB0ZXN0X21ldHJpY19jb25kaXRpb25zICgpCiB7 Ci0gIGNvbnN0IGludCBudW1fdGVzdF9jYXNlcyA9IHNpemVvZiAodGVzdF9kYXRhKSAvIHNp emVvZiAodGVzdF9kYXRhWzBdKTsKKyAgY29uc3QgaW50IG51bV90ZXN0X2Nhc2VzID0gQVJS QVlfU0laRSAodGVzdF9kYXRhKTsKIAogICBmb3IgKGludCBpID0gMDsgaSA8IG51bV90ZXN0 X2Nhc2VzOyBpKyspCiAgICAgewpkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtdmVjdC1zbHAtcGF0 dGVybnMuY2MgYi9nY2MvdHJlZS12ZWN0LXNscC1wYXR0ZXJucy5jYwppbmRleCA4NzlkMTdm ZDk0Ny4uYTZiMGQxMDZkNWYgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLXZlY3Qtc2xwLXBhdHRl cm5zLmNjCisrKyBiL2djYy90cmVlLXZlY3Qtc2xwLXBhdHRlcm5zLmNjCkBAIC0xNjM3LDQg KzE2MzcsNCBAQCB2ZWN0X3BhdHRlcm5fZGVjbF90IHNscF9wYXR0ZXJuc1tdCiAjdW5kZWYg U0xQX1BBVFRFUk4KIAogLyogU2V0IHRoZSBudW1iZXIgb2YgU0xQIHBhdHRlcm4gbWF0Y2hl cnMgYXZhaWxhYmxlLiAgKi8KLXNpemVfdCBudW1fX3NscF9wYXR0ZXJucyA9IHNpemVvZihz bHBfcGF0dGVybnMpL3NpemVvZih2ZWN0X3BhdHRlcm5fZGVjbF90KTsKK3NpemVfdCBudW1f X3NscF9wYXR0ZXJucyA9IEFSUkFZX1NJWkUgKHNscF9wYXR0ZXJucyk7CmRpZmYgLS1naXQg YS9nY2MvdHJlZS5jYyBiL2djYy90cmVlLmNjCmluZGV4IDVlODg3NmQyYjM4Li5kZjQ0MWM2 YjIyMyAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUuY2MKKysrIGIvZ2NjL3RyZWUuY2MKQEAgLTk0 MDgsOSArOTQwOCw3IEBAIGJ1aWxkX2NvbW1vbl90cmVlX25vZGVzIChib29sIHNpZ25lZF9j aGFyKQogICBwdHJfdHlwZV9ub2RlID0gYnVpbGRfcG9pbnRlcl90eXBlICh2b2lkX3R5cGVf bm9kZSk7CiAgIGNvbnN0X3B0cl90eXBlX25vZGUKICAgICA9IGJ1aWxkX3BvaW50ZXJfdHlw ZSAoYnVpbGRfdHlwZV92YXJpYW50ICh2b2lkX3R5cGVfbm9kZSwgMSwgMCkpOwotICBmb3Ig KHVuc2lnbmVkIGkgPSAwOwotICAgICAgIGkgPCBzaXplb2YgKGJ1aWx0aW5fc3RydWN0cHRy X3R5cGVzKSAvIHNpemVvZiAoYnVpbHRpbl9zdHJ1Y3RwdHJfdHlwZSk7Ci0gICAgICAgKytp KQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgQVJSQVlfU0laRSAoYnVpbHRpbl9zdHJ1 Y3RwdHJfdHlwZXMpOyArK2kpCiAgICAgYnVpbHRpbl9zdHJ1Y3RwdHJfdHlwZXNbaV0ubm9k ZSA9IGJ1aWx0aW5fc3RydWN0cHRyX3R5cGVzW2ldLmJhc2U7CiAKICAgcG9pbnRlcl9zaXpl ZF9pbnRfbm9kZSA9IGJ1aWxkX25vbnN0YW5kYXJkX2ludGVnZXJfdHlwZSAoUE9JTlRFUl9T SVpFLCAxKTsKLS0gCjIuMzYuMAoK --------------G0iMsdX8V3Z0pZp1VQt1NUfX--