From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 64FE0C3DA79 for ; Mon, 15 Jan 2024 14:38:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=di6wffK16zLqphCnAmQFcb5klZ14NLkP/RdUJm3Mbyk=; b=e8hF9zCjEI2vMZ P7topEBv351Y5uV6d20d3NQ00caeJqUbwJNsLGZiqz2w5YOzv68y12Mrli3ObZM2uWZX6dUPP8x5k s9qJPLoQ5bNhCf6tr+ng8h2QKyy1+lv+3TJWTQnSja3KBrwXtdNqvLoDNsDHpjyi/KvpnkOemhUvE Byo2FgxuombmEBL8PVkVnw36b/mrRPv3WgRCMaZ50DQZTBc3xFcX040LzCyhYqfuOoAEXfU1MeM3Z kJD1dFIqlww9tJkZEM1AKokR/k3x374OjHTHyxAMf7MQ1x9LnO3YDETiny4UXurjAiHeSGM5w5dsy aHBuYcIab2gerxXbDmBQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rPO5k-009F9O-1T; Mon, 15 Jan 2024 14:37:32 +0000 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rPO5f-009F81-0r for linux-arm-kernel@lists.infradead.org; Mon, 15 Jan 2024 14:37:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1705329446; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0P/Ry/bifyODG3jc/xwN6z3VN2lZfa5MZ71QVlNDmM8=; b=XwGmrLGjtMdtm6iCBx3gWn5/VFWLejBa6sRLy0HoiharliiDNApE9Rv5sCsE9ZYLo2O2k9 z+4gM3o0bLAzcIPd6NAOp9d37+XemQBr1x1Q2Dv6MBKCIAFwL4nQqBEvMn06Ntu/OAgtRv OsxKG0cr559Ss/EkreXdRk1BWPPWJrg= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-492-eAvGRORQNFWakz87wXyFsw-1; Mon, 15 Jan 2024 09:37:24 -0500 X-MC-Unique: eAvGRORQNFWakz87wXyFsw-1 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-40e478693bcso36723415e9.1 for ; Mon, 15 Jan 2024 06:37:24 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705329443; x=1705934243; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=0P/Ry/bifyODG3jc/xwN6z3VN2lZfa5MZ71QVlNDmM8=; b=ZQYCfzfmOlm4Bw4Dm68NxJ7tHWD6Dcvp7UC8hSSNReAlRKMPybS/NPErHa8XsWf+gm bEzMlzUyguOZi9lubPdyYg9OOh8pNi5IeVk689YzbRIAmDHtnTMChA59cHkqTUo1LMAs 5nBwuOKkMr5NtTiJ6OV5LzSpa4IhSALm5LwSa7ZnXLTAZoeemmhbrCMNz46eWA0aj2U7 Ks5zEKMthS0NnfttrRKwje1qAORQOgouMZ159G/KSkF2qCbJeCRDabW9u6SfCKHn4bKX tRanYWOHhqwAMKPT8RF3CyRhRPcm6nVSpUoVjMhZf7g6nUjxAk24xUlRqGCLBFmQEkB5 qgBA== X-Gm-Message-State: AOJu0YyM4JnsW1pujweKGjZZrOuBLeVa6CqNizoTnNluTPG4Qtg0+FYy g7oSsxVbL5VSU1GoA2hVa5NX1UQUkIAMttwxbsFKS9xGMfC7VFJ/e4BqHv48rZLkImfDKK5sGwW Da5bNkL37siFE/q/BRKBwV+Bklh+LQyhx+AwBvnq7Y8A= X-Received: by 2002:a05:600c:4446:b0:40e:7852:9947 with SMTP id v6-20020a05600c444600b0040e78529947mr847850wmn.165.1705329443290; Mon, 15 Jan 2024 06:37:23 -0800 (PST) X-Google-Smtp-Source: AGHT+IFUzdT5xU1sVf6BlLsAbm0wMLME7RDvKcEkYs4WH7QaXA5cIHhvh7BgfvcwqcTW3CkeFNoBnA== X-Received: by 2002:a05:600c:4446:b0:40e:7852:9947 with SMTP id v6-20020a05600c444600b0040e78529947mr847837wmn.165.1705329442768; Mon, 15 Jan 2024 06:37:22 -0800 (PST) Received: from toolbox ([2001:9e8:8996:a800:5fa3:a411:5e47:8fe5]) by smtp.gmail.com with ESMTPSA id f18-20020a05600c155200b0040d87100733sm16221215wmg.39.2024.01.15.06.37.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jan 2024 06:37:22 -0800 (PST) Date: Mon, 15 Jan 2024 15:37:20 +0100 From: Sebastian Wick To: Maxime Ripard Cc: Maarten Lankhorst , Thomas Zimmermann , David Airlie , Daniel Vetter , Emma Anholt , Jonathan Corbet , Sandy Huang , Heiko =?iso-8859-1?Q?St=FCbner?= , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Hans Verkuil , linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Subject: Re: [PATCH v5 08/44] drm/connector: hdmi: Add Broadcast RGB property Message-ID: <20240115143720.GA160656@toolbox> References: <20231207-kms-hdmi-connector-state-v5-0-6538e19d634d@kernel.org> <20231207-kms-hdmi-connector-state-v5-8-6538e19d634d@kernel.org> <20240115143308.GA159345@toolbox> MIME-Version: 1.0 In-Reply-To: <20240115143308.GA159345@toolbox> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240115_063727_519513_DCB6A322 X-CRM114-Status: GOOD ( 48.78 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gTW9uLCBKYW4gMTUsIDIwMjQgYXQgMDM6MzM6MDhQTSArMDEwMCwgU2ViYXN0aWFuIFdpY2sg d3JvdGU6Cj4gT24gVGh1LCBEZWMgMDcsIDIwMjMgYXQgMDQ6NDk6MzFQTSArMDEwMCwgTWF4aW1l IFJpcGFyZCB3cm90ZToKPiA+IFRoZSBpOTE1IGRyaXZlciBoYXMgYSBwcm9wZXJ0eSB0byBmb3Jj ZSB0aGUgUkdCIHJhbmdlIG9mIGFuIEhETUkgb3V0cHV0Lgo+ID4gVGhlIHZjNCBkcml2ZXIgdGhl biBpbXBsZW1lbnRlZCB0aGUgc2FtZSBwcm9wZXJ0eSB3aXRoIHRoZSBzYW1lCj4gPiBzZW1hbnRp Y3MuIEtXaW4gaGFzIHN1cHBvcnQgZm9yIGl0LCBhbmQgYSBQUiBmb3IgbXV0dGVyIGlzIGFsc28g dGhlcmUgdG8KPiA+IHN1cHBvcnQgaXQuCj4gPiAKPiA+IEJvdGggZHJpdmVycyBpbXBsZW1lbnRp bmcgdGhlIHNhbWUgcHJvcGVydHkgd2l0aCB0aGUgc2FtZSBzZW1hbnRpY3MsCj4gPiBwbHVzIHRo ZSB1c2Vyc3BhY2UgaGF2aW5nIHN1cHBvcnQgZm9yIGl0LCBpcyBwcm9vZiBlbm91Z2ggdGhhdCBp dCdzCj4gPiBwcmV0dHkgbXVjaCBhIGRlLWZhY3RvIHN0YW5kYXJkIG5vdyBhbmQgd2UgY2FuIHBy b3ZpZGUgaGVscGVycyBmb3IgaXQuCj4gPiAKPiA+IExldCdzIHBsdW1iIGl0IGludG8gdGhlIG5l d2x5IGNyZWF0ZWQgSERNSSBjb25uZWN0b3IuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IE1heGlt ZSBSaXBhcmQgPG1yaXBhcmRAa2VybmVsLm9yZz4KPiA+IC0tLQo+ID4gIERvY3VtZW50YXRpb24v Z3B1L2ttcy1wcm9wZXJ0aWVzLmNzdiAgICAgICAgICAgICAgIHwgICAxIC0KPiA+ICBkcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArCj4gPiAg ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmMgICAgICAgICAgfCAgMTcg Kwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYyAgICAgICAgICAgICAgICAg IHwgICA0ICsKPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jICAgICAgICAgICAg ICAgICAgICB8ICA3NiArKysrKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS90ZXN0cy9NYWtlZmlsZSAg ICAgICAgICAgICAgICAgICAgIHwgICAxICsKPiA+ICAuLi4vZ3B1L2RybS90ZXN0cy9kcm1fYXRv bWljX3N0YXRlX2hlbHBlcl90ZXN0LmMgICB8IDM3NiArKysrKysrKysrKysrKysrKysrKysKPiA+ ICBkcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2Nvbm5lY3Rvcl90ZXN0LmMgICAgICAgICB8IDEx NyArKysrKystCj4gPiAgZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9rdW5pdF9lZGlkLmggICAg ICAgICAgICAgfCAxMDYgKysrKysrCj4gPiAgaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oICAg ICAgICAgICAgICAgICAgICAgICAgfCAgMzYgKysKPiA+ICAxMCBmaWxlcyBjaGFuZ2VkLCA3Mzcg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL0RvY3Vt ZW50YXRpb24vZ3B1L2ttcy1wcm9wZXJ0aWVzLmNzdiBiL0RvY3VtZW50YXRpb24vZ3B1L2ttcy1w cm9wZXJ0aWVzLmNzdgo+ID4gaW5kZXggMGY5NTkwODM0ODI5Li5jYWVmMTRjNTMyZDQgMTAwNjQ0 Cj4gPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2dwdS9rbXMtcHJvcGVydGllcy5jc3YKPiA+ICsrKyBi L0RvY3VtZW50YXRpb24vZ3B1L2ttcy1wcm9wZXJ0aWVzLmNzdgo+ID4gQEAgLTE3LDcgKzE3LDYg QEAgT3duZXIgTW9kdWxlL0RyaXZlcnMsR3JvdXAsUHJvcGVydHkgTmFtZSxUeXBlLFByb3BlcnR5 IFZhbHVlcyxPYmplY3QgYXR0YWNoZWQsRGUKPiA+ICAsVmlydHVhbCBHUFUs4oCcc3VnZ2VzdGVk IFjigJ0sUkFOR0UsIk1pbj0wLCBNYXg9MHhmZmZmZmZmZiIsQ29ubmVjdG9yLHByb3BlcnR5IHRv IHN1Z2dlc3QgYW4gWCBvZmZzZXQgZm9yIGEgY29ubmVjdG9yCj4gPiAgLCzigJxzdWdnZXN0ZWQg WeKAnSxSQU5HRSwiTWluPTAsIE1heD0weGZmZmZmZmZmIixDb25uZWN0b3IscHJvcGVydHkgdG8g c3VnZ2VzdCBhbiBZIG9mZnNldCBmb3IgYSBjb25uZWN0b3IKPiA+ICAsT3B0aW9uYWwsIiIiYXNw ZWN0IHJhdGlvIiIiLEVOVU0sInsgIiJOb25lIiIsICIiNDozIiIsICIiMTY6OSIiIH0iLENvbm5l Y3RvcixUREIKPiA+IC1pOTE1LEdlbmVyaWMsIiIiQnJvYWRjYXN0IFJHQiIiIixFTlVNLCJ7ICIi QXV0b21hdGljIiIsICIiRnVsbCIiLCAiIkxpbWl0ZWQgMTY6MjM1IiIgfSIsQ29ubmVjdG9yLCJX aGVuIHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvIExpbWl0ZWQgMTY6MjM1IGFuZCBDVE0gaXMgc2V0 LCB0aGUgaGFyZHdhcmUgd2lsbCBiZSBwcm9ncmFtbWVkIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUg bXVsdGlwbGljYXRpb24gb2YgQ1RNIGJ5IHRoZSBsaW1pdGVkIHJhbmdlIG1hdHJpeCB0byBlbnN1 cmUgdGhlIHBpeGVscyBub3JtYWxseSBpbiB0aGUgcmFuZ2UgMC4uMS4wIGFyZSByZW1hcHBlZCB0 byB0aGUgcmFuZ2UgMTYvMjU1Li4yMzUvMjU1LiIKPiA+ICAsLOKAnGF1ZGlv4oCdLEVOVU0sInsg IiJmb3JjZS1kdmkiIiwgIiJvZmYiIiwgIiJhdXRvIiIsICIib24iIiB9IixDb25uZWN0b3IsVEJE Cj4gPiAgLFNEVk8tVFYs4oCcbW9kZeKAnSxFTlVNLCJ7ICIiTlRTQ19NIiIsICIiTlRTQ19KIiIs ICIiTlRTQ180NDMiIiwgIiJQQUxfQiIiIH0gZXRjLiIsQ29ubmVjdG9yLFRCRAo+ID4gICwsIiIi bGVmdF9tYXJnaW4iIiIsUkFOR0UsIk1pbj0wLCBNYXg9IFNEVk8gZGVwZW5kZW50IixDb25uZWN0 b3IsVEJECj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiA+IGluZGV4IGMzMWZjMGI0OGMzMS4uMTQ2NWE3 ZjA5YTBiIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ID4gQEAgLTExNDIsNiArMTE0Miwx MSBAQCBzdGF0aWMgdm9pZCBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9wcmludF9zdGF0ZShzdHJ1Y3Qg ZHJtX3ByaW50ZXIgKnAsCj4gPiAgCWRybV9wcmludGYocCwgIlx0bWF4X3JlcXVlc3RlZF9icGM9 JWRcbiIsIHN0YXRlLT5tYXhfcmVxdWVzdGVkX2JwYyk7Cj4gPiAgCWRybV9wcmludGYocCwgIlx0 Y29sb3JzcGFjZT0lc1xuIiwgZHJtX2dldF9jb2xvcnNwYWNlX25hbWUoc3RhdGUtPmNvbG9yc3Bh Y2UpKTsKPiA+ICAKPiA+ICsJaWYgKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01P REVfQ09OTkVDVE9SX0hETUlBIHx8Cj4gPiArCSAgICBjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBl ID09IERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQikKPiA+ICsJCWRybV9wcmludGYocCwgIlx0YnJv YWRjYXN0X3JnYj0lc1xuIiwKPiA+ICsJCQkgICBkcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2Fk Y2FzdF9yZ2JfbmFtZShzdGF0ZS0+aGRtaS5icm9hZGNhc3RfcmdiKSk7Cj4gPiArCj4gPiAgCWlm IChjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9XUklURUJB Q0spCj4gPiAgCQlpZiAoc3RhdGUtPndyaXRlYmFja19qb2IgJiYgc3RhdGUtPndyaXRlYmFja19q b2ItPmZiKQo+ID4gIAkJCWRybV9wcmludGYocCwgIlx0ZmI9JWRcbiIsIHN0YXRlLT53cml0ZWJh Y2tfam9iLT5mYi0+YmFzZS5pZCk7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWNfc3RhdGVfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19zdGF0 ZV9oZWxwZXIuYwo+ID4gaW5kZXggZTY5YzBjYzFjNmRhLi4xMGQ5ODYyMGEzNTggMTAwNjQ0Cj4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIuYwo+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmMKPiA+IEBAIC01ODMs NiArNTgzLDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfdHZf cmVzZXQpOwo+ID4gIHZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfaGRtaV9yZXNl dChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gIAkJCQkJICAgICAgc3RydWN0 IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19zdGF0ZSkKPiA+ICB7Cj4gPiArCW5ld19zdGF0ZS0+ aGRtaS5icm9hZGNhc3RfcmdiID0gRFJNX0hETUlfQlJPQURDQVNUX1JHQl9BVVRPOwo+ID4gIH0K PiA+ICBFWFBPUlRfU1lNQk9MKF9fZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2hkbWlfcmVz ZXQpOwo+ID4gIAo+ID4gQEAgLTY1MCw2ICs2NTEsMjIgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRv bWljX2hlbHBlcl9jb25uZWN0b3JfdHZfY2hlY2spOwo+ID4gIGludCBkcm1fYXRvbWljX2hlbHBl cl9jb25uZWN0b3JfaGRtaV9jaGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ ID4gIAkJCQkJICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gIHsKPiA+ICsJ c3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9zdGF0ZSA9Cj4gPiArCQlkcm1fYXRvbWlj X2dldF9vbGRfY29ubmVjdG9yX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IpOwo+ID4gKwlzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X3N0YXRlID0KPiA+ICsJCWRybV9hdG9taWNfZ2V0X25l d19jb25uZWN0b3Jfc3RhdGUoc3RhdGUsIGNvbm5lY3Rvcik7Cj4gPiArCj4gPiArCWlmIChvbGRf c3RhdGUtPmhkbWkuYnJvYWRjYXN0X3JnYiAhPSBuZXdfc3RhdGUtPmhkbWkuYnJvYWRjYXN0X3Jn Yikgewo+ID4gKwkJc3RydWN0IGRybV9jcnRjICpjcnRjID0gbmV3X3N0YXRlLT5jcnRjOwo+ID4g KwkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ID4gKwo+ID4gKwkJY3J0Y19z dGF0ZSA9IGRybV9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+ID4gKwkJaWYg KElTX0VSUihjcnRjX3N0YXRlKSkKPiA+ICsJCQlyZXR1cm4gUFRSX0VSUihjcnRjX3N0YXRlKTsK PiA+ICsKPiA+ICsJCWNydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9IHRydWU7Cj4gPiArCX0KPiA+ ICsKPiA+ICAJcmV0dXJuIDA7Cj4gPiAgfQo+ID4gIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19o ZWxwZXJfY29ubmVjdG9yX2hkbWlfY2hlY2spOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljX3VhcGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGku Ywo+ID4gaW5kZXggYWVlNGE2NWQ0OTU5Li4zZWI0ZjRiYzhiNzEgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX3VhcGkuYwo+ID4gQEAgLTgxOCw2ICs4MTgsOCBAQCBzdGF0aWMgaW50IGRy bV9hdG9taWNfY29ubmVjdG9yX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLAo+ID4gIAkJc3RhdGUtPm1heF9yZXF1ZXN0ZWRfYnBjID0gdmFsOwo+ID4gIAl9IGVs c2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+cHJpdmFjeV9zY3JlZW5fc3dfc3RhdGVfcHJv cGVydHkpIHsKPiA+ICAJCXN0YXRlLT5wcml2YWN5X3NjcmVlbl9zd19zdGF0ZSA9IHZhbDsKPiA+ ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPmJyb2FkY2FzdF9yZ2JfcHJvcGVy dHkpIHsKPiA+ICsJCXN0YXRlLT5oZG1pLmJyb2FkY2FzdF9yZ2IgPSB2YWw7Cj4gPiAgCX0gZWxz ZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eSkgewo+ID4gIAkJcmV0 dXJuIGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkoY29ubmVjdG9yLAo+ID4g IAkJCQlzdGF0ZSwgcHJvcGVydHksIHZhbCk7Cj4gPiBAQCAtOTAxLDYgKzkwMyw4IEBAIGRybV9h dG9taWNfY29ubmVjdG9yX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAo+ID4gIAkJKnZhbCA9IHN0YXRlLT5tYXhfcmVxdWVzdGVkX2JwYzsKPiA+ICAJfSBlbHNl IGlmIChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPnByaXZhY3lfc2NyZWVuX3N3X3N0YXRlX3Byb3Bl cnR5KSB7Cj4gPiAgCQkqdmFsID0gc3RhdGUtPnByaXZhY3lfc2NyZWVuX3N3X3N0YXRlOwo+ID4g Kwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+YnJvYWRjYXN0X3JnYl9wcm9wZXJ0 eSkgewo+ID4gKwkJKnZhbCA9IHN0YXRlLT5oZG1pLmJyb2FkY2FzdF9yZ2I7Cj4gPiAgCX0gZWxz ZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+YXRvbWljX2dldF9wcm9wZXJ0eSkgewo+ID4gIAkJcmV0 dXJuIGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21pY19nZXRfcHJvcGVydHkoY29ubmVjdG9yLAo+ID4g IAkJCQlzdGF0ZSwgcHJvcGVydHksIHZhbCk7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9jb25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiA+ IGluZGV4IGQ5OTYxY2NlODI0NS4uOTI5YjBhOTExZjYyIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9j b25uZWN0b3IuYwo+ID4gQEAgLTExODMsNiArMTE4MywyOSBAQCBzdGF0aWMgY29uc3QgdTMyIGRw X2NvbG9yc3BhY2VzID0KPiA+ICAJQklUKERSTV9NT0RFX0NPTE9SSU1FVFJZX0JUMjAyMF9DWUND KSB8Cj4gPiAgCUJJVChEUk1fTU9ERV9DT0xPUklNRVRSWV9CVDIwMjBfWUNDKTsKPiA+ICAKPiA+ ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wcm9wX2VudW1fbGlzdCBicm9hZGNhc3RfcmdiX25h bWVzW10gPSB7Cj4gPiArCXsgRFJNX0hETUlfQlJPQURDQVNUX1JHQl9BVVRPLCAiQXV0b21hdGlj IiB9LAo+ID4gKwl7IERSTV9IRE1JX0JST0FEQ0FTVF9SR0JfRlVMTCwgIkZ1bGwiIH0sCj4gPiAr CXsgRFJNX0hETUlfQlJPQURDQVNUX1JHQl9MSU1JVEVELCAiTGltaXRlZCAxNjoyMzUiIH0sCj4g PiArfTsKPiA+ICsKPiA+ICsvKgo+ID4gKyAqIGRybV9oZG1pX2Nvbm5lY3Rvcl9nZXRfYnJvYWRj YXN0X3JnYl9uYW1lIC0gUmV0dXJuIGEgc3RyaW5nIGZvciBIRE1JIGNvbm5lY3RvciBSR0IgYnJv YWRjYXN0IHNlbGVjdGlvbgo+ID4gKyAqIEBicm9hZGNhc3RfcmdiOiBCcm9hZGNhc3QgUkdCIHNl bGVjdGlvbiB0byBjb21wdXRlIG5hbWUgb2YKPiA+ICsgKgo+ID4gKyAqIFJldHVybnM6IHRoZSBu YW1lIG9mIHRoZSBCcm9hZGNhc3QgUkdCIHNlbGVjdGlvbiwgb3IgTlVMTCBpZiB0aGUgdHlwZQo+ ID4gKyAqIGlzIG5vdCB2YWxpZC4KPiA+ICsgKi8KPiA+ICtjb25zdCBjaGFyICoKPiA+ICtkcm1f aGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZShlbnVtIGRybV9oZG1pX2Jyb2Fk Y2FzdF9yZ2IgYnJvYWRjYXN0X3JnYikKPiA+ICt7Cj4gPiArCWlmIChicm9hZGNhc3RfcmdiID4g RFJNX0hETUlfQlJPQURDQVNUX1JHQl9MSU1JVEVEKQo+ID4gKwkJcmV0dXJuIE5VTEw7Cj4gPiAr Cj4gPiArCXJldHVybiBicm9hZGNhc3RfcmdiX25hbWVzW2Jyb2FkY2FzdF9yZ2JdLm5hbWU7Cj4g PiArfQo+ID4gK0VYUE9SVF9TWU1CT0woZHJtX2hkbWlfY29ubmVjdG9yX2dldF9icm9hZGNhc3Rf cmdiX25hbWUpOwo+ID4gKwo+ID4gIC8qKgo+ID4gICAqIERPQzogc3RhbmRhcmQgY29ubmVjdG9y IHByb3BlcnRpZXMKPiA+ICAgKgo+ID4gQEAgLTE2NTUsNiArMTY3OCwyNiBAQCBFWFBPUlRfU1lN Qk9MKGRybV9jb25uZWN0b3JfYXR0YWNoX2RwX3N1YmNvbm5lY3Rvcl9wcm9wZXJ0eSk7Cj4gPiAg LyoqCj4gPiAgICogRE9DOiBIRE1JIGNvbm5lY3RvciBwcm9wZXJ0aWVzCj4gPiAgICoKPiA+ICsg KiBCcm9hZGNhc3QgUkdCCj4gPiArICogICAgICBJbmRpY2F0ZXMgdGhlIFJHQiBRdWFudGl6YXRp b24gUmFuZ2UgKEZ1bGwgdnMgTGltaXRlZCkgdXNlZC4KPiA+ICsgKiAgICAgIEluZm9mcmFtZXMg d2lsbCBiZSBnZW5lcmF0ZWQgYWNjb3JkaW5nIHRvIHRoYXQgdmFsdWUuCj4gPiArICoKPiA+ICsg KiAgICAgIFRoZSB2YWx1ZSBvZiB0aGlzIHByb3BlcnR5IGNhbiBiZSBvbmUgb2YgdGhlIGZvbGxv d2luZzoKPiA+ICsgKgo+ID4gKyAqICAgICAgQXV0b21hdGljOgo+ID4gKyAqICAgICAgICAgICAg ICBSR0IgUmFuZ2UgaXMgc2VsZWN0ZWQgYXV0b21hdGljYWxseSBiYXNlZCBvbiB0aGUgbW9kZQo+ ID4gKyAqICAgICAgICAgICAgICBhY2NvcmRpbmcgdG8gdGhlIEhETUkgc3BlY2lmaWNhdGlvbnMu Cj4gPiArICoKPiA+ICsgKiAgICAgIEZ1bGw6Cj4gPiArICogICAgICAgICAgICAgIEZ1bGwgUkdC IFJhbmdlIGlzIGZvcmNlZC4KPiA+ICsgKgo+ID4gKyAqICAgICAgTGltaXRlZCAxNjoyMzU6Cj4g PiArICogICAgICAgICAgICAgIExpbWl0ZWQgUkdCIFJhbmdlIGlzIGZvcmNlZC4gVW5saWtlIHRo ZSBuYW1lIHN1Z2dlc3RzLAo+ID4gKyAqICAgICAgICAgICAgICB0aGlzIHdvcmtzIGZvciBhbnkg bnVtYmVyIG9mIGJpdHMtcGVyLWNvbXBvbmVudC4KPiA+ICsgKgo+ID4gKyAqICAgICAgRHJpdmVy cyBjYW4gc2V0IHVwIHRoaXMgcHJvcGVydHkgYnkgY2FsbGluZwo+ID4gKyAqICAgICAgZHJtX2Nv bm5lY3Rvcl9hdHRhY2hfYnJvYWRjYXN0X3JnYl9wcm9wZXJ0eSgpLgo+ID4gKyAqCj4gCj4gVGhp cyBpcyBhIGdvb2QgdGltZSB0byBkb2N1bWVudCB0aGlzIGluIG1vcmUgZGV0YWlsLiBUaGVyZSBt aWdodCBiZSB0d28KPiBkaWZmZXJlbnQgdGhpbmdzIGJlaW5nIGFmZmVjdGVkOgo+IAo+IDEuIFRo ZSBzaWduYWxsaW5nIChJbmZvRnJhbWUvU0RQLy4uLikKPiAyLiBUaGUgY29sb3IgcGlwZWxpbmUg cHJvY2Vzc2luZwo+IAo+IEFsbCB2YWx1ZXMgb2YgQnJvYWRjYXN0IFJHQiBhbHdheXMgYWZmZWN0 IHRoZSBjb2xvciBwaXBlbGluZSBwcm9jZXNzaW5nCj4gc3VjaCB0aGF0IGEgZnVsbC1yYW5nZSBp bnB1dCB0byB0aGUgQ1JUQyBpcyBjb252ZXJ0ZWQgdG8gZWl0aGVyIGZ1bGwtIG9yCj4gbGltaXRl ZC1yYW5nZSwgZGVwZW5kaW5nIG9uIHdoYXQgdGhlIG1vbml0b3IgaXMgc3VwcG9zZWQgdG8gYWNj ZXB0Lgo+IAo+IFdoZW4gYXV0b21hdGljIGlzIHNlbGVjdGVkLCBkb2VzIHRoYXQgbWVhbiB0aGF0 IHRoZXJlIGlzIG5vIHNpZ25hbGxpbmcsCj4gb3IgdGhhdCB0aGUgc2lnbmFsbGluZyBtYXRjaGVz IHdoYXQgdGhlIG1vbml0b3IgaXMgc3VwcG9zZWQgdG8gYWNjZXB0Cj4gYWNjb3JkaW5nIHRvIHRo ZSBzcGVjPyBBbHNvLCBpcyB0aGlzIHJlYWxseSBIRE1JIHNwZWNpZmljPwo+IAo+IFdoZW4gZnVs bCBvciBsaW1pdGVkIGlzIHNlbGVjdGVkIGFuZCB0aGUgbW9uaXRvciBkb2Vzbid0IHN1cHBvcnQg dGhlCj4gc2lnbmFsbGluZywgd2hhdCBoYXBwZW5zPwoKRm9yZ290IHRvIG1lbnRpb246IHVzZXIt c3BhY2Ugc3RpbGwgaGFzIG5vIGNvbnRyb2wgb3ZlciBSR0IgdnMgWUNiQ3Igb24KdGhlIGNhYmxl LCBzbyBpcyB0aGlzIG9ubHkgYWZmZWN0aW5nIFJHQj8gSWYgbm90LCBob3cgZG9lcyBpdCBhZmZl Y3QKWUNiQ3I/Cgo+IAo+ID4gICAqIGNvbnRlbnQgdHlwZSAoSERNSSBzcGVjaWZpYyk6Cj4gPiAg ICoJSW5kaWNhdGVzIGNvbnRlbnQgdHlwZSBzZXR0aW5nIHRvIGJlIHVzZWQgaW4gSERNSSBpbmZv ZnJhbWVzIHRvIGluZGljYXRlCj4gPiAgICoJY29udGVudCB0eXBlIGZvciB0aGUgZXh0ZXJuYWwg ZGV2aWNlLCBzbyB0aGF0IGl0IGFkanVzdHMgaXRzIGRpc3BsYXkKPiA+IEBAIC0yNTE3LDYgKzI1 NjAsMzkgQEAgaW50IGRybV9jb25uZWN0b3JfYXR0YWNoX2hkcl9vdXRwdXRfbWV0YWRhdGFfcHJv cGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm4KPiA+ICB9Cj4gPiAgRVhQT1JUX1NZTUJP TChkcm1fY29ubmVjdG9yX2F0dGFjaF9oZHJfb3V0cHV0X21ldGFkYXRhX3Byb3BlcnR5KTsKPiA+ ICAKPiA+ICsvKioKPiA+ICsgKiBkcm1fY29ubmVjdG9yX2F0dGFjaF9icm9hZGNhc3RfcmdiX3By b3BlcnR5IC0gYXR0YWNoICJCcm9hZGNhc3QgUkdCIiBwcm9wZXJ0eQo+ID4gKyAqIEBjb25uZWN0 b3I6IGNvbm5lY3RvciB0byBhdHRhY2ggdGhlIHByb3BlcnR5IG9uLgo+ID4gKyAqCj4gPiArICog VGhpcyBpcyB1c2VkIHRvIGFkZCBzdXBwb3J0IGZvciBmb3JjaW5nIHRoZSBSR0IgcmFuZ2Ugb24g YSBjb25uZWN0b3IKPiA+ICsgKgo+ID4gKyAqIFJldHVybnM6Cj4gPiArICogWmVybyBvbiBzdWNj ZXNzLCBuZWdhdGl2ZSBlcnJubyBvbiBmYWlsdXJlLgo+ID4gKyAqLwo+ID4gK2ludCBkcm1fY29u bmVjdG9yX2F0dGFjaF9icm9hZGNhc3RfcmdiX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVj dG9yLT5kZXY7Cj4gPiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3A7Cj4gPiArCj4gPiArCXBy b3AgPSBjb25uZWN0b3ItPmJyb2FkY2FzdF9yZ2JfcHJvcGVydHk7Cj4gPiArCWlmICghcHJvcCkg ewo+ID4gKwkJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfZW51bShkZXYsIERSTV9NT0RFX1BS T1BfRU5VTSwKPiA+ICsJCQkJCQkiQnJvYWRjYXN0IFJHQiIsCj4gPiArCQkJCQkJYnJvYWRjYXN0 X3JnYl9uYW1lcywKPiA+ICsJCQkJCQlBUlJBWV9TSVpFKGJyb2FkY2FzdF9yZ2JfbmFtZXMpKTsK PiA+ICsJCWlmICghcHJvcCkKPiA+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsKPiA+ICsJCWNv bm5lY3Rvci0+YnJvYWRjYXN0X3JnYl9wcm9wZXJ0eSA9IHByb3A7Cj4gPiArCX0KPiA+ICsKPiA+ ICsJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwgcHJvcCwKPiA+ ICsJCQkJICAgRFJNX0hETUlfQlJPQURDQVNUX1JHQl9BVVRPKTsKPiA+ICsKPiA+ICsJcmV0dXJu IDA7Cj4gPiArfQo+ID4gK0VYUE9SVF9TWU1CT0woZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfYnJvYWRj YXN0X3JnYl9wcm9wZXJ0eSk7Cj4gPiArCj4gPiAgLyoqCj4gPiAgICogZHJtX2Nvbm5lY3Rvcl9h dHRhY2hfY29sb3JzcGFjZV9wcm9wZXJ0eSAtIGF0dGFjaCAiQ29sb3JzcGFjZSIgcHJvcGVydHkK PiA+ICAgKiBAY29ubmVjdG9yOiBjb25uZWN0b3IgdG8gYXR0YWNoIHRoZSBwcm9wZXJ0eSBvbi4K PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVzdHMvTWFrZWZpbGUgYi9kcml2ZXJz L2dwdS9kcm0vdGVzdHMvTWFrZWZpbGUKPiA+IGluZGV4IGQ2MTgzYjNkNzY4OC4uYjI5ZGRmZDkw NTk2IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rlc3RzL01ha2VmaWxlCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vdGVzdHMvTWFrZWZpbGUKPiA+IEBAIC00LDYgKzQsNyBAQCBv YmotJChDT05GSUdfRFJNX0tVTklUX1RFU1RfSEVMUEVSUykgKz0gXAo+ID4gIAlkcm1fa3VuaXRf aGVscGVycy5vCj4gPiAgCj4gPiAgb2JqLSQoQ09ORklHX0RSTV9LVU5JVF9URVNUKSArPSBcCj4g PiArCWRybV9hdG9taWNfc3RhdGVfaGVscGVyX3Rlc3QubyBcCj4gPiAgCWRybV9idWRkeV90ZXN0 Lm8gXAo+ID4gIAlkcm1fY21kbGluZV9wYXJzZXJfdGVzdC5vIFwKPiA+ICAJZHJtX2Nvbm5lY3Rv cl90ZXN0Lm8gXAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fYXRv bWljX3N0YXRlX2hlbHBlcl90ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2F0b21p Y19zdGF0ZV9oZWxwZXJfdGVzdC5jCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXgg MDAwMDAwMDAwMDAwLi4yMWU2Zjc5NmVlMTMKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fYXRvbWljX3N0YXRlX2hlbHBlcl90ZXN0LmMKPiA+IEBA IC0wLDAgKzEsMzc2IEBACj4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAK PiA+ICsKPiA+ICsvKgo+ID4gKyAqIEt1bml0IHRlc3QgZm9yIGRybV9hdG9taWNfc3RhdGVfaGVs cGVyIGZ1bmN0aW9ucwo+ID4gKyAqLwo+ID4gKwo+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21p Yy5oPgo+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIuaD4KPiA+ICsj aW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfdWFwaS5oPgo+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX2Ry di5oPgo+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KPiA+ICsjaW5jbHVkZSA8ZHJtL2Ry bV9jb25uZWN0b3IuaD4KPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KPiA+ICsjaW5j bHVkZSA8ZHJtL2RybV9rdW5pdF9oZWxwZXJzLmg+Cj4gPiArI2luY2x1ZGUgPGRybS9kcm1fbWFu YWdlZC5oPgo+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaD4K PiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KPiA+ICsKPiA+ICsjaW5jbHVk ZSA8ZHJtL2RybV9wcmludC5oPgo+ID4gKyNpbmNsdWRlICIuLi9kcm1fY3J0Y19pbnRlcm5hbC5o Igo+ID4gKwo+ID4gKyNpbmNsdWRlIDxrdW5pdC90ZXN0Lmg+Cj4gPiArCj4gPiArI2luY2x1ZGUg ImRybV9rdW5pdF9lZGlkLmgiCj4gPiArCj4gPiArc3RydWN0IGRybV9hdG9taWNfaGVscGVyX2Nv bm5lY3Rvcl9oZG1pX3ByaXYgewo+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSBkcm07Cj4gPiArCXN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ID4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gPiAr CXN0cnVjdCBkcm1fZW5jb2RlciBlbmNvZGVyOwo+ID4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBj b25uZWN0b3I7Cj4gPiArCj4gPiArCWNvbnN0IGNoYXIgKmN1cnJlbnRfZWRpZDsKPiA+ICsJc2l6 ZV90IGN1cnJlbnRfZWRpZF9sZW47Cj4gPiArfTsKPiA+ICsKPiA+ICsjZGVmaW5lIGNvbm5lY3Rv cl90b19wcml2KGMpIFwKPiA+ICsJY29udGFpbmVyX29mX2NvbnN0KGMsIHN0cnVjdCBkcm1fYXRv bWljX2hlbHBlcl9jb25uZWN0b3JfaGRtaV9wcml2LCBjb25uZWN0b3IpCj4gPiArCj4gPiArc3Rh dGljIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpmaW5kX3ByZWZlcnJlZF9tb2RlKHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAq ZHJtID0gY29ubmVjdG9yLT5kZXY7Cj4gPiArCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl LCAqcHJlZmVycmVkOwo+ID4gKwo+ID4gKwltdXRleF9sb2NrKCZkcm0tPm1vZGVfY29uZmlnLm11 dGV4KTsKPiA+ICsJcHJlZmVycmVkID0gbGlzdF9maXJzdF9lbnRyeSgmY29ubmVjdG9yLT5tb2Rl cywgc3RydWN0IGRybV9kaXNwbGF5X21vZGUsIGhlYWQpOwo+ID4gKwlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KG1vZGUsICZjb25uZWN0b3ItPm1vZGVzLCBoZWFkKQo+ID4gKwkJaWYgKG1vZGUtPnR5cGUg JiBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRCkKPiA+ICsJCQlwcmVmZXJyZWQgPSBtb2RlOwo+ID4g KwltdXRleF91bmxvY2soJmRybS0+bW9kZV9jb25maWcubXV0ZXgpOwo+ID4gKwo+ID4gKwlyZXR1 cm4gcHJlZmVycmVkOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgaW50IGxpZ2h0X3VwX2Nvbm5l Y3RvcihzdHJ1Y3Qga3VuaXQgKnRlc3QsCj4gPiArCQkJICAgICAgc3RydWN0IGRybV9kZXZpY2Ug KmRybSwKPiA+ICsJCQkgICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiArCQkJICAgICAg c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ICsJCQkgICAgICBzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiA+ICsJCQkgICAgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNx dWlyZV9jdHggKmN0eCkKPiA+ICt7Cj4gPiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZTsKPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGU7Cj4gPiArCXN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiA+ICsJaW50IHJldDsKPiA+ICsKPiA+ ICsJc3RhdGUgPSBkcm1fa3VuaXRfaGVscGVyX2F0b21pY19zdGF0ZV9hbGxvYyh0ZXN0LCBkcm0s IGN0eCk7Cj4gPiArCUtVTklUX0FTU0VSVF9OT1RfRVJSX09SX05VTEwodGVzdCwgc3RhdGUpOwo+ ID4gKwo+ID4gKwljb25uX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY29ubmVjdG9yX3N0YXRlKHN0 YXRlLCBjb25uZWN0b3IpOwo+ID4gKwlLVU5JVF9BU1NFUlRfTk9UX0VSUl9PUl9OVUxMKHRlc3Qs IGNvbm5fc3RhdGUpOwo+ID4gKwo+ID4gKwlyZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9j b25uZWN0b3IoY29ubl9zdGF0ZSwgY3J0Yyk7Cj4gPiArCUtVTklUX0VYUEVDVF9FUSh0ZXN0LCBy ZXQsIDApOwo+ID4gKwo+ID4gKwljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0 ZShzdGF0ZSwgY3J0Yyk7Cj4gPiArCUtVTklUX0FTU0VSVF9OT1RfRVJSX09SX05VTEwodGVzdCwg Y3J0Y19zdGF0ZSk7Cj4gPiArCj4gPiArCXJldCA9IGRybV9hdG9taWNfc2V0X21vZGVfZm9yX2Ny dGMoY3J0Y19zdGF0ZSwgbW9kZSk7Cj4gPiArCUtVTklUX0VYUEVDVF9FUSh0ZXN0LCByZXQsIDAp Owo+ID4gKwo+ID4gKwljcnRjX3N0YXRlLT5lbmFibGUgPSB0cnVlOwo+ID4gKwljcnRjX3N0YXRl LT5hY3RpdmUgPSB0cnVlOwo+ID4gKwo+ID4gKwlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0 ZSk7Cj4gPiArCUtVTklUX0FTU0VSVF9FUSh0ZXN0LCByZXQsIDApOwo+ID4gKwo+ID4gKwlyZXR1 cm4gMDsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGludCBzZXRfY29ubmVjdG9yX2VkaWQoc3Ry dWN0IGt1bml0ICp0ZXN0LCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gKwkJ CSAgICAgIGNvbnN0IGNoYXIgKmVkaWQsIHNpemVfdCBlZGlkX2xlbikKPiA+ICt7Cj4gPiArCXN0 cnVjdCBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfaGRtaV9wcml2ICpwcml2ID0KPiA+ICsJ CWNvbm5lY3Rvcl90b19wcml2KGNvbm5lY3Rvcik7Cj4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpk cm0gPSBjb25uZWN0b3ItPmRldjsKPiA+ICsJaW50IHJldDsKPiA+ICsKPiA+ICsJcHJpdi0+Y3Vy cmVudF9lZGlkID0gZWRpZDsKPiA+ICsJcHJpdi0+Y3VycmVudF9lZGlkX2xlbiA9IGVkaWRfbGVu Owo+ID4gKwo+ID4gKwltdXRleF9sb2NrKCZkcm0tPm1vZGVfY29uZmlnLm11dGV4KTsKPiA+ICsJ cmV0ID0gY29ubmVjdG9yLT5mdW5jcy0+ZmlsbF9tb2Rlcyhjb25uZWN0b3IsIDQwOTYsIDQwOTYp Owo+ID4gKwltdXRleF91bmxvY2soJmRybS0+bW9kZV9jb25maWcubXV0ZXgpOwo+ID4gKwlLVU5J VF9BU1NFUlRfR1QodGVzdCwgcmV0LCAwKTsKPiA+ICsKPiA+ICsJcmV0dXJuIDA7Cj4gPiArfQo+ ID4gKwo+ID4gK3N0YXRpYyBpbnQgZHVtbXlfY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gK3sKPiA+ICsJc3RydWN0IGRybV9hdG9taWNfaGVs cGVyX2Nvbm5lY3Rvcl9oZG1pX3ByaXYgKnByaXYgPQo+ID4gKwkJY29ubmVjdG9yX3RvX3ByaXYo Y29ubmVjdG9yKTsKPiA+ICsJY29uc3Qgc3RydWN0IGRybV9lZGlkICplZGlkOwo+ID4gKwl1bnNp Z25lZCBpbnQgbnVtX21vZGVzOwo+ID4gKwo+ID4gKwllZGlkID0gZHJtX2VkaWRfYWxsb2MocHJp di0+Y3VycmVudF9lZGlkLCBwcml2LT5jdXJyZW50X2VkaWRfbGVuKTsKPiA+ICsJaWYgKCFlZGlk KQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gPiArCj4gPiArCWRybV9lZGlkX2Nvbm5lY3Rvcl91 cGRhdGUoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICsJbnVtX21vZGVzID0gZHJtX2VkaWRfY29ubmVj dG9yX2FkZF9tb2Rlcyhjb25uZWN0b3IpOwo+ID4gKwo+ID4gKwlkcm1fZWRpZF9mcmVlKGVkaWQp Owo+ID4gKwo+ID4gKwlyZXR1cm4gbnVtX21vZGVzOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzIGR1bW15X2Nvbm5lY3Rvcl9o ZWxwZXJfZnVuY3MgPSB7Cj4gPiArCS5hdG9taWNfY2hlY2sJPSBkcm1fYXRvbWljX2hlbHBlcl9j b25uZWN0b3JfaGRtaV9jaGVjaywKPiA+ICsJLmdldF9tb2Rlcwk9IGR1bW15X2Nvbm5lY3Rvcl9n ZXRfbW9kZXMsCj4gPiArfTsKPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBkdW1teV9oZG1pX2Nvbm5l Y3Rvcl9yZXNldChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gK3sKPiA+ICsJ ZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX3Jlc2V0KGNvbm5lY3Rvcik7Cj4gPiArCV9fZHJt X2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2hkbWlfcmVzZXQoY29ubmVjdG9yLCBjb25uZWN0b3It PnN0YXRlKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX2Z1bmNzIGR1bW15X2Nvbm5lY3Rvcl9mdW5jcyA9IHsKPiA+ICsJLmF0b21pY19kZXN0cm95 X3N0YXRlCT0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUsCj4gPiAr CS5hdG9taWNfZHVwbGljYXRlX3N0YXRlCT0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1 cGxpY2F0ZV9zdGF0ZSwKPiA+ICsJLmZpbGxfbW9kZXMJCT0gZHJtX2hlbHBlcl9wcm9iZV9zaW5n bGVfY29ubmVjdG9yX21vZGVzLAo+ID4gKwkucmVzZXQJCQk9IGR1bW15X2hkbWlfY29ubmVjdG9y X3Jlc2V0LAo+ID4gK307Cj4gPiArCj4gPiArc3RhdGljCj4gPiArc3RydWN0IGRybV9hdG9taWNf aGVscGVyX2Nvbm5lY3Rvcl9oZG1pX3ByaXYgKgo+ID4gK2RybV9hdG9taWNfaGVscGVyX2Nvbm5l Y3Rvcl9oZG1pX2luaXQoc3RydWN0IGt1bml0ICp0ZXN0KQo+ID4gK3sKPiA+ICsJc3RydWN0IGRy bV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9oZG1pX3ByaXYgKnByaXY7Cj4gPiArCXN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uOwo+ID4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuYzsKPiA+ICsJ c3RydWN0IGRybV9kZXZpY2UgKmRybTsKPiA+ICsJc3RydWN0IGRldmljZSAqZGV2Owo+ID4gKwlp bnQgcmV0Owo+ID4gKwo+ID4gKwlkZXYgPSBkcm1fa3VuaXRfaGVscGVyX2FsbG9jX2RldmljZSh0 ZXN0KTsKPiA+ICsJS1VOSVRfQVNTRVJUX05PVF9FUlJfT1JfTlVMTCh0ZXN0LCBkZXYpOwo+ID4g Kwo+ID4gKwlwcml2ID0gZHJtX2t1bml0X2hlbHBlcl9hbGxvY19kcm1fZGV2aWNlKHRlc3QsIGRl diwKPiA+ICsJCQkJCQkgc3RydWN0IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9oZG1pX3By aXYsIGRybSwKPiA+ICsJCQkJCQkgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfQVRPTUlDKTsKPiA+ ICsJS1VOSVRfQVNTRVJUX05PVF9FUlJfT1JfTlVMTCh0ZXN0LCBwcml2KTsKPiA+ICsJdGVzdC0+ cHJpdiA9IHByaXY7Cj4gPiArCj4gPiArCWRybSA9ICZwcml2LT5kcm07Cj4gPiArCXByaXYtPnBs YW5lID0gZHJtX2t1bml0X2hlbHBlcl9jcmVhdGVfcHJpbWFyeV9wbGFuZSh0ZXN0LCBkcm0sCj4g PiArCQkJCQkJCSAgICBOVUxMLAo+ID4gKwkJCQkJCQkgICAgTlVMTCwKPiA+ICsJCQkJCQkJICAg IE5VTEwsIDAsCj4gPiArCQkJCQkJCSAgICBOVUxMKTsKPiA+ICsJS1VOSVRfQVNTRVJUX05PVF9F UlJfT1JfTlVMTCh0ZXN0LCBwcml2LT5wbGFuZSk7Cj4gPiArCj4gPiArCXByaXYtPmNydGMgPSBk cm1fa3VuaXRfaGVscGVyX2NyZWF0ZV9jcnRjKHRlc3QsIGRybSwKPiA+ICsJCQkJCQkgIHByaXYt PnBsYW5lLCBOVUxMLAo+ID4gKwkJCQkJCSAgTlVMTCwKPiA+ICsJCQkJCQkgIE5VTEwpOwo+ID4g KwlLVU5JVF9BU1NFUlRfTk9UX0VSUl9PUl9OVUxMKHRlc3QsIHByaXYtPmNydGMpOwo+ID4gKwo+ ID4gKwllbmMgPSAmcHJpdi0+ZW5jb2RlcjsKPiA+ICsJcmV0ID0gZHJtbV9lbmNvZGVyX2luaXQo ZHJtLCBlbmMsIE5VTEwsIERSTV9NT0RFX0VOQ09ERVJfVE1EUywgTlVMTCk7Cj4gPiArCUtVTklU X0FTU0VSVF9FUSh0ZXN0LCByZXQsIDApOwo+ID4gKwo+ID4gKwllbmMtPnBvc3NpYmxlX2NydGNz ID0gZHJtX2NydGNfbWFzayhwcml2LT5jcnRjKTsKPiA+ICsKPiA+ICsJY29ubiA9ICZwcml2LT5j b25uZWN0b3I7Cj4gPiArCXJldCA9IGRybW1fY29ubmVjdG9yX2hkbWlfaW5pdChkcm0sIGNvbm4s Cj4gPiArCQkJCSAgICAgICAmZHVtbXlfY29ubmVjdG9yX2Z1bmNzLAo+ID4gKwkJCQkgICAgICAg RFJNX01PREVfQ09OTkVDVE9SX0hETUlBLAo+ID4gKwkJCQkgICAgICAgTlVMTCk7Cj4gPiArCUtV TklUX0FTU0VSVF9FUSh0ZXN0LCByZXQsIDApOwo+ID4gKwo+ID4gKwlkcm1fY29ubmVjdG9yX2hl bHBlcl9hZGQoY29ubiwgJmR1bW15X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwo+ID4gKwlkcm1f Y29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKGNvbm4sIGVuYyk7Cj4gPiArCj4gPiArCWRybV9tb2Rl X2NvbmZpZ19yZXNldChkcm0pOwo+ID4gKwo+ID4gKwlyZXQgPSBzZXRfY29ubmVjdG9yX2VkaWQo dGVzdCwgY29ubiwKPiA+ICsJCQkJIHRlc3RfZWRpZF9oZG1pXzEwODBwX3JnYl9tYXhfMjAwbWh6 LAo+ID4gKwkJCQkgQVJSQVlfU0laRSh0ZXN0X2VkaWRfaGRtaV8xMDgwcF9yZ2JfbWF4XzIwMG1o eikpOwo+ID4gKwlLVU5JVF9BU1NFUlRfRVEodGVzdCwgcmV0LCAwKTsKPiA+ICsKPiA+ICsJcmV0 dXJuIHByaXY7Cj4gPiArfQo+ID4gKwo+ID4gKy8qCj4gPiArICogVGVzdCB0aGF0IGlmIHdlIGNo YW5nZSB0aGUgUkdCIHF1YW50aXphdGlvbiBwcm9wZXJ0eSB0byBhIGRpZmZlcmVudAo+ID4gKyAq IHZhbHVlLCB3ZSB0cmlnZ2VyIGEgbW9kZSBjaGFuZ2Ugb24gdGhlIGNvbm5lY3RvcidzIENSVEMs IHdoaWNoIHdpbGwKPiA+ICsgKiBpbiB0dXJuIGRpc2FibGUvZW5hYmxlIHRoZSBjb25uZWN0b3Iu Cj4gPiArICovCj4gPiArc3RhdGljIHZvaWQgZHJtX3Rlc3RfY2hlY2tfYnJvYWRjYXN0X3JnYl9j cnRjX21vZGVfY2hhbmdlZChzdHJ1Y3Qga3VuaXQgKnRlc3QpCj4gPiArewo+ID4gKwlzdHJ1Y3Qg ZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2hkbWlfcHJpdiAqcHJpdjsKPiA+ICsJc3RydWN0 IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHg7Cj4gPiArCXN0cnVjdCBkcm1fY29ubmVjdG9y X3N0YXRlICpvbGRfY29ubl9zdGF0ZTsKPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUg Km5ld19jb25uX3N0YXRlOwo+ID4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7 Cj4gPiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPiA+ICsJc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKnByZWZlcnJlZDsKPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm47 Cj4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkcm07Cj4gPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0 YzsKPiA+ICsJaW50IHJldDsKPiA+ICsKPiA+ICsJcHJpdiA9IGRybV9hdG9taWNfaGVscGVyX2Nv bm5lY3Rvcl9oZG1pX2luaXQodGVzdCk7Cj4gPiArCUtVTklUX0FTU0VSVF9OT1RfTlVMTCh0ZXN0 LCBwcml2KTsKPiA+ICsKPiA+ICsJY3R4ID0gZHJtX2t1bml0X2hlbHBlcl9hY3F1aXJlX2N0eF9h bGxvYyh0ZXN0KTsKPiA+ICsJS1VOSVRfQVNTRVJUX05PVF9FUlJfT1JfTlVMTCh0ZXN0LCBjdHgp Owo+ID4gKwo+ID4gKwljb25uID0gJnByaXYtPmNvbm5lY3RvcjsKPiA+ICsJcHJlZmVycmVkID0g ZmluZF9wcmVmZXJyZWRfbW9kZShjb25uKTsKPiA+ICsJS1VOSVRfQVNTRVJUX05PVF9OVUxMKHRl c3QsIHByZWZlcnJlZCk7Cj4gPiArCj4gPiArCWRybSA9ICZwcml2LT5kcm07Cj4gPiArCWNydGMg PSBwcml2LT5jcnRjOwo+ID4gKwlyZXQgPSBsaWdodF91cF9jb25uZWN0b3IodGVzdCwgZHJtLCBj cnRjLCBjb25uLCBwcmVmZXJyZWQsIGN0eCk7Cj4gPiArCUtVTklUX0FTU0VSVF9FUSh0ZXN0LCBy ZXQsIDApOwo+ID4gKwo+ID4gKwlzdGF0ZSA9IGRybV9rdW5pdF9oZWxwZXJfYXRvbWljX3N0YXRl X2FsbG9jKHRlc3QsIGRybSwgY3R4KTsKPiA+ICsJS1VOSVRfQVNTRVJUX05PVF9FUlJfT1JfTlVM TCh0ZXN0LCBzdGF0ZSk7Cj4gPiArCj4gPiArCW5ld19jb25uX3N0YXRlID0gZHJtX2F0b21pY19n ZXRfY29ubmVjdG9yX3N0YXRlKHN0YXRlLCBjb25uKTsKPiA+ICsJS1VOSVRfQVNTRVJUX05PVF9F UlJfT1JfTlVMTCh0ZXN0LCBuZXdfY29ubl9zdGF0ZSk7Cj4gPiArCj4gPiArCW9sZF9jb25uX3N0 YXRlID0gZHJtX2F0b21pY19nZXRfb2xkX2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwgY29ubik7Cj4g PiArCUtVTklUX0FTU0VSVF9OT1RfRVJSX09SX05VTEwodGVzdCwgb2xkX2Nvbm5fc3RhdGUpOwo+ ID4gKwo+ID4gKwluZXdfY29ubl9zdGF0ZS0+aGRtaS5icm9hZGNhc3RfcmdiID0gRFJNX0hETUlf QlJPQURDQVNUX1JHQl9GVUxMOwo+ID4gKwo+ID4gKwlLVU5JVF9BU1NFUlRfTkUodGVzdCwKPiA+ ICsJCQlvbGRfY29ubl9zdGF0ZS0+aGRtaS5icm9hZGNhc3RfcmdiLAo+ID4gKwkJCW5ld19jb25u X3N0YXRlLT5oZG1pLmJyb2FkY2FzdF9yZ2IpOwo+ID4gKwo+ID4gKwlyZXQgPSBkcm1fYXRvbWlj X2NoZWNrX29ubHkoc3RhdGUpOwo+ID4gKwlLVU5JVF9BU1NFUlRfRVEodGVzdCwgcmV0LCAwKTsK PiA+ICsKPiA+ICsJbmV3X2Nvbm5fc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfY29ubmVjdG9y X3N0YXRlKHN0YXRlLCBjb25uKTsKPiA+ICsJS1VOSVRfQVNTRVJUX05PVF9FUlJfT1JfTlVMTCh0 ZXN0LCBuZXdfY29ubl9zdGF0ZSk7Cj4gPiArCUtVTklUX0VYUEVDVF9FUSh0ZXN0LCBuZXdfY29u bl9zdGF0ZS0+aGRtaS5icm9hZGNhc3RfcmdiLCBEUk1fSERNSV9CUk9BRENBU1RfUkdCX0ZVTEwp Owo+ID4gKwo+ID4gKwljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUo c3RhdGUsIGNydGMpOwo+ID4gKwlLVU5JVF9BU1NFUlRfTk9UX0VSUl9PUl9OVUxMKHRlc3QsIGNy dGNfc3RhdGUpOwo+ID4gKwlLVU5JVF9FWFBFQ1RfVFJVRSh0ZXN0LCBjcnRjX3N0YXRlLT5tb2Rl X2NoYW5nZWQpOwo+ID4gK30KPiA+ICsKPiA+ICsvKgo+ID4gKyAqIFRlc3QgdGhhdCBpZiB3ZSBz ZXQgdGhlIFJHQiBxdWFudGl6YXRpb24gcHJvcGVydHkgdG8gdGhlIHNhbWUgdmFsdWUsCj4gPiAr ICogd2UgZG9uJ3QgdHJpZ2dlciBhIG1vZGUgY2hhbmdlIG9uIHRoZSBjb25uZWN0b3IncyBDUlRD IGFuZCBsZWF2ZSB0aGUKPiA+ICsgKiBjb25uZWN0b3IgdW5hZmZlY3RlZC4KPiA+ICsgKi8KPiA+ ICtzdGF0aWMgdm9pZCBkcm1fdGVzdF9jaGVja19icm9hZGNhc3RfcmdiX2NydGNfbW9kZV9ub3Rf Y2hhbmdlZChzdHJ1Y3Qga3VuaXQgKnRlc3QpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2F0b21p Y19oZWxwZXJfY29ubmVjdG9yX2hkbWlfcHJpdiAqcHJpdjsKPiA+ICsJc3RydWN0IGRybV9tb2Rl c2V0X2FjcXVpcmVfY3R4ICpjdHg7Cj4gPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpv bGRfY29ubl9zdGF0ZTsKPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19jb25u X3N0YXRlOwo+ID4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gPiArCXN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPiA+ICsJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKnByZWZlcnJlZDsKPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm47Cj4gPiArCXN0 cnVjdCBkcm1fZGV2aWNlICpkcm07Cj4gPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiA+ICsJ aW50IHJldDsKPiA+ICsKPiA+ICsJcHJpdiA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9o ZG1pX2luaXQodGVzdCk7Cj4gPiArCUtVTklUX0FTU0VSVF9OT1RfTlVMTCh0ZXN0LCBwcml2KTsK PiA+ICsKPiA+ICsJY3R4ID0gZHJtX2t1bml0X2hlbHBlcl9hY3F1aXJlX2N0eF9hbGxvYyh0ZXN0 KTsKPiA+ICsJS1VOSVRfQVNTRVJUX05PVF9FUlJfT1JfTlVMTCh0ZXN0LCBjdHgpOwo+ID4gKwo+ ID4gKwljb25uID0gJnByaXYtPmNvbm5lY3RvcjsKPiA+ICsJcHJlZmVycmVkID0gZmluZF9wcmVm ZXJyZWRfbW9kZShjb25uKTsKPiA+ICsJS1VOSVRfQVNTRVJUX05PVF9OVUxMKHRlc3QsIHByZWZl cnJlZCk7Cj4gPiArCj4gPiArCWRybSA9ICZwcml2LT5kcm07Cj4gPiArCWNydGMgPSBwcml2LT5j cnRjOwo+ID4gKwlyZXQgPSBsaWdodF91cF9jb25uZWN0b3IodGVzdCwgZHJtLCBjcnRjLCBjb25u LCBwcmVmZXJyZWQsIGN0eCk7Cj4gPiArCUtVTklUX0FTU0VSVF9FUSh0ZXN0LCByZXQsIDApOwo+ ID4gKwo+ID4gKwlzdGF0ZSA9IGRybV9rdW5pdF9oZWxwZXJfYXRvbWljX3N0YXRlX2FsbG9jKHRl c3QsIGRybSwgY3R4KTsKPiA+ICsJS1VOSVRfQVNTRVJUX05PVF9FUlJfT1JfTlVMTCh0ZXN0LCBz dGF0ZSk7Cj4gPiArCj4gPiArCW5ld19jb25uX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY29ubmVj dG9yX3N0YXRlKHN0YXRlLCBjb25uKTsKPiA+ICsJS1VOSVRfQVNTRVJUX05PVF9FUlJfT1JfTlVM TCh0ZXN0LCBuZXdfY29ubl9zdGF0ZSk7Cj4gPiArCj4gPiArCW9sZF9jb25uX3N0YXRlID0gZHJt X2F0b21pY19nZXRfb2xkX2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwgY29ubik7Cj4gPiArCUtVTklU X0FTU0VSVF9OT1RfRVJSX09SX05VTEwodGVzdCwgb2xkX2Nvbm5fc3RhdGUpOwo+ID4gKwo+ID4g KwluZXdfY29ubl9zdGF0ZS0+aGRtaS5icm9hZGNhc3RfcmdiID0gb2xkX2Nvbm5fc3RhdGUtPmhk bWkuYnJvYWRjYXN0X3JnYjsKPiA+ICsKPiA+ICsJcmV0ID0gZHJtX2F0b21pY19jaGVja19vbmx5 KHN0YXRlKTsKPiA+ICsJS1VOSVRfQVNTRVJUX0VRKHRlc3QsIHJldCwgMCk7Cj4gPiArCj4gPiAr CW9sZF9jb25uX3N0YXRlID0gZHJtX2F0b21pY19nZXRfb2xkX2Nvbm5lY3Rvcl9zdGF0ZShzdGF0 ZSwgY29ubik7Cj4gPiArCUtVTklUX0FTU0VSVF9OT1RfRVJSX09SX05VTEwodGVzdCwgb2xkX2Nv bm5fc3RhdGUpOwo+ID4gKwo+ID4gKwluZXdfY29ubl9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25l d19jb25uZWN0b3Jfc3RhdGUoc3RhdGUsIGNvbm4pOwo+ID4gKwlLVU5JVF9BU1NFUlRfTk9UX0VS Ul9PUl9OVUxMKHRlc3QsIG5ld19jb25uX3N0YXRlKTsKPiA+ICsKPiA+ICsJS1VOSVRfRVhQRUNU X0VRKHRlc3QsCj4gPiArCQkJb2xkX2Nvbm5fc3RhdGUtPmhkbWkuYnJvYWRjYXN0X3JnYiwKPiA+ ICsJCQluZXdfY29ubl9zdGF0ZS0+aGRtaS5icm9hZGNhc3RfcmdiKTsKPiA+ICsKPiA+ICsJY3J0 Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPiA+ ICsJS1VOSVRfQVNTRVJUX05PVF9FUlJfT1JfTlVMTCh0ZXN0LCBjcnRjX3N0YXRlKTsKPiA+ICsJ S1VOSVRfRVhQRUNUX0ZBTFNFKHRlc3QsIGNydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCk7Cj4gPiAr fQo+ID4gKwo+ID4gK3N0YXRpYyBzdHJ1Y3Qga3VuaXRfY2FzZSBkcm1fYXRvbWljX2hlbHBlcl9j b25uZWN0b3JfaGRtaV9jaGVja190ZXN0c1tdID0gewo+ID4gKwlLVU5JVF9DQVNFKGRybV90ZXN0 X2NoZWNrX2Jyb2FkY2FzdF9yZ2JfY3J0Y19tb2RlX2NoYW5nZWQpLAo+ID4gKwlLVU5JVF9DQVNF KGRybV90ZXN0X2NoZWNrX2Jyb2FkY2FzdF9yZ2JfY3J0Y19tb2RlX25vdF9jaGFuZ2VkKSwKPiA+ ICsJeyB9Cj4gPiArfTsKPiA+ICsKPiA+ICtzdGF0aWMgc3RydWN0IGt1bml0X3N1aXRlIGRybV9h dG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9oZG1pX2NoZWNrX3Rlc3Rfc3VpdGUgPSB7Cj4gPiArCS5u YW1lCQk9ICJkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfaGRtaV9jaGVjayIsCj4gPiArCS50 ZXN0X2Nhc2VzCT0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2hkbWlfY2hlY2tfdGVzdHMs Cj4gPiArfTsKPiA+ICsKPiA+ICsvKgo+ID4gKyAqIFRlc3QgdGhhdCB0aGUgdmFsdWUgb2YgdGhl IEJyb2FkY2FzdCBSR0IgcHJvcGVydHkgb3V0IG9mIHJlc2V0IGlzIHNldAo+ID4gKyAqIHRvIGF1 dG8uCj4gPiArICovCj4gPiArc3RhdGljIHZvaWQgZHJtX3Rlc3RfY2hlY2tfYnJvYWRjYXN0X3Jn Yl92YWx1ZShzdHJ1Y3Qga3VuaXQgKnRlc3QpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2F0b21p Y19oZWxwZXJfY29ubmVjdG9yX2hkbWlfcHJpdiAqcHJpdjsKPiA+ICsJc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGU7Cj4gPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u Owo+ID4gKwo+ID4gKwlwcml2ID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2hkbWlfaW5p dCh0ZXN0KTsKPiA+ICsJS1VOSVRfQVNTRVJUX05PVF9OVUxMKHRlc3QsIHByaXYpOwo+ID4gKwo+ ID4gKwljb25uID0gJnByaXYtPmNvbm5lY3RvcjsKPiA+ICsJY29ubl9zdGF0ZSA9IGNvbm4tPnN0 YXRlOwo+ID4gKwlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgY29ubl9zdGF0ZS0+aGRtaS5icm9hZGNh c3RfcmdiLCBEUk1fSERNSV9CUk9BRENBU1RfUkdCX0FVVE8pOwo+ID4gK30KPiA+ICsKPiA+ICtz dGF0aWMgc3RydWN0IGt1bml0X2Nhc2UgZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2hkbWlf cmVzZXRfdGVzdHNbXSA9IHsKPiA+ICsJS1VOSVRfQ0FTRShkcm1fdGVzdF9jaGVja19icm9hZGNh c3RfcmdiX3ZhbHVlKSwKPiA+ICsJeyB9Cj4gPiArfTsKPiA+ICsKPiA+ICtzdGF0aWMgc3RydWN0 IGt1bml0X3N1aXRlIGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9oZG1pX3Jlc2V0X3Rlc3Rf c3VpdGUgPSB7Cj4gPiArCS5uYW1lCQk9ICJkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfaGRt aV9yZXNldCIsCj4gPiArCS50ZXN0X2Nhc2VzIAk9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rv cl9oZG1pX3Jlc2V0X3Rlc3RzLAo+ID4gK307Cj4gPiArCj4gPiAra3VuaXRfdGVzdF9zdWl0ZXMo Cj4gPiArCSZkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfaGRtaV9jaGVja190ZXN0X3N1aXRl LAo+ID4gKwkmZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2hkbWlfcmVzZXRfdGVzdF9zdWl0 ZSwKPiA+ICspOwo+ID4gKwo+ID4gK01PRFVMRV9BVVRIT1IoIk1heGltZSBSaXBhcmQgPG1yaXBh cmRAa2VybmVsLm9yZz4iKTsKPiA+ICtNT0RVTEVfTElDRU5TRSgiR1BMIik7Cj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jb25uZWN0b3JfdGVzdC5jIGIvZHJpdmVy cy9ncHUvZHJtL3Rlc3RzL2RybV9jb25uZWN0b3JfdGVzdC5jCj4gPiBpbmRleCA4ZjA3MGNhY2Fi M2IuLjQxZDMzZGVhMzBhZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90ZXN0cy9k cm1fY29ubmVjdG9yX3Rlc3QuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9j b25uZWN0b3JfdGVzdC5jCj4gPiBAQCAtMTIsNiArMTIsOCBAQAo+ID4gIAo+ID4gICNpbmNsdWRl IDxrdW5pdC90ZXN0Lmg+Cj4gPiAgCj4gPiArI2luY2x1ZGUgIi4uL2RybV9jcnRjX2ludGVybmFs LmgiCj4gPiArCj4gPiAgc3RydWN0IGRybV9jb25uZWN0b3JfaW5pdF9wcml2IHsKPiA+ICAJc3Ry dWN0IGRybV9kZXZpY2UgZHJtOwo+ID4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBjb25uZWN0b3I7 Cj4gPiBAQCAtMzU3LDEwICszNTksMTIzIEBAIHN0YXRpYyBzdHJ1Y3Qga3VuaXRfc3VpdGUgZHJt X2dldF90dl9tb2RlX2Zyb21fbmFtZV90ZXN0X3N1aXRlID0gewo+ID4gIAkudGVzdF9jYXNlcyA9 IGRybV9nZXRfdHZfbW9kZV9mcm9tX25hbWVfdGVzdHMsCj4gPiAgfTsKPiA+ICAKPiA+ICtzdHJ1 Y3QgZHJtX2hkbWlfY29ubmVjdG9yX2dldF9icm9hZGNhc3RfcmdiX25hbWVfdGVzdCB7Cj4gPiAr CXVuc2lnbmVkIGludCBraW5kOwo+ID4gKwljb25zdCBjaGFyICpleHBlY3RlZF9uYW1lOwo+ID4g K307Cj4gPiArCj4gPiArI2RlZmluZSBCUk9BRENBU1RfUkdCX1RFU1QoX2tpbmQsIF9uYW1lKQlc Cj4gPiArCXsJCQkJCVwKPiA+ICsJCS5raW5kID0gX2tpbmQsCQkJXAo+ID4gKwkJLmV4cGVjdGVk X25hbWUgPSBfbmFtZSwJCVwKPiA+ICsJfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIGRybV90ZXN0 X2RybV9oZG1pX2Nvbm5lY3Rvcl9nZXRfYnJvYWRjYXN0X3JnYl9uYW1lKHN0cnVjdCBrdW5pdCAq dGVzdCkKPiA+ICt7Cj4gPiArCWNvbnN0IHN0cnVjdCBkcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jy b2FkY2FzdF9yZ2JfbmFtZV90ZXN0ICpwYXJhbXMgPQo+ID4gKwkJdGVzdC0+cGFyYW1fdmFsdWU7 Cj4gPiArCj4gPiArCUtVTklUX0VYUEVDVF9TVFJFUSh0ZXN0LAo+ID4gKwkJCSAgIGRybV9oZG1p X2Nvbm5lY3Rvcl9nZXRfYnJvYWRjYXN0X3JnYl9uYW1lKHBhcmFtcy0+a2luZCksCj4gPiArCQkJ ICAgcGFyYW1zLT5leHBlY3RlZF9uYW1lKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGNvbnN0 Cj4gPiArc3RydWN0IGRybV9oZG1pX2Nvbm5lY3Rvcl9nZXRfYnJvYWRjYXN0X3JnYl9uYW1lX3Rl c3QKPiA+ICtkcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZV92YWxpZF90 ZXN0c1tdID0gewo+ID4gKwlCUk9BRENBU1RfUkdCX1RFU1QoRFJNX0hETUlfQlJPQURDQVNUX1JH Ql9BVVRPLCAiQXV0b21hdGljIiksCj4gPiArCUJST0FEQ0FTVF9SR0JfVEVTVChEUk1fSERNSV9C Uk9BRENBU1RfUkdCX0ZVTEwsICJGdWxsIiksCj4gPiArCUJST0FEQ0FTVF9SR0JfVEVTVChEUk1f SERNSV9CUk9BRENBU1RfUkdCX0xJTUlURUQsICJMaW1pdGVkIDE2OjIzNSIpLAo+ID4gK307Cj4g PiArCj4gPiArc3RhdGljIHZvaWQKPiA+ICtkcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2FkY2Fz dF9yZ2JfbmFtZV92YWxpZF9kZXNjKGNvbnN0IHN0cnVjdCBkcm1faGRtaV9jb25uZWN0b3JfZ2V0 X2Jyb2FkY2FzdF9yZ2JfbmFtZV90ZXN0ICp0LAo+ID4gKwkJCQkJCSAgICAgY2hhciAqZGVzYykK PiA+ICt7Cj4gPiArCXNwcmludGYoZGVzYywgIiVzIiwgdC0+ZXhwZWN0ZWRfbmFtZSk7Cj4gPiAr fQo+ID4gKwo+ID4gK0tVTklUX0FSUkFZX1BBUkFNKGRybV9oZG1pX2Nvbm5lY3Rvcl9nZXRfYnJv YWRjYXN0X3JnYl9uYW1lX3ZhbGlkLAo+ID4gKwkJICBkcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jy b2FkY2FzdF9yZ2JfbmFtZV92YWxpZF90ZXN0cywKPiA+ICsJCSAgZHJtX2hkbWlfY29ubmVjdG9y X2dldF9icm9hZGNhc3RfcmdiX25hbWVfdmFsaWRfZGVzYyk7Cj4gPiArCj4gPiArc3RhdGljIHZv aWQgZHJtX3Rlc3RfZHJtX2hkbWlfY29ubmVjdG9yX2dldF9icm9hZGNhc3RfcmdiX25hbWVfaW52 YWxpZChzdHJ1Y3Qga3VuaXQgKnRlc3QpCj4gPiArewo+ID4gKwlLVU5JVF9FWFBFQ1RfTlVMTCh0 ZXN0LCBkcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZSgzKSk7Cj4gPiAr fTsKPiA+ICsKPiA+ICtzdGF0aWMgc3RydWN0IGt1bml0X2Nhc2UgZHJtX2hkbWlfY29ubmVjdG9y X2dldF9icm9hZGNhc3RfcmdiX25hbWVfdGVzdHNbXSA9IHsKPiA+ICsJS1VOSVRfQ0FTRV9QQVJB TShkcm1fdGVzdF9kcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZSwKPiA+ ICsJCQkgZHJtX2hkbWlfY29ubmVjdG9yX2dldF9icm9hZGNhc3RfcmdiX25hbWVfdmFsaWRfZ2Vu X3BhcmFtcyksCj4gPiArCUtVTklUX0NBU0UoZHJtX3Rlc3RfZHJtX2hkbWlfY29ubmVjdG9yX2dl dF9icm9hZGNhc3RfcmdiX25hbWVfaW52YWxpZCksCj4gPiArCXsgfQo+ID4gK307Cj4gPiArCj4g PiArc3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBkcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2Fk Y2FzdF9yZ2JfbmFtZV90ZXN0X3N1aXRlID0gewo+ID4gKwkubmFtZSA9ICJkcm1faGRtaV9jb25u ZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZSIsCj4gPiArCS50ZXN0X2Nhc2VzID0gZHJtX2hk bWlfY29ubmVjdG9yX2dldF9icm9hZGNhc3RfcmdiX25hbWVfdGVzdHMsCj4gPiArfTsKPiA+ICsK PiA+ICtzdGF0aWMgdm9pZCBkcm1fdGVzdF9kcm1fY29ubmVjdG9yX2F0dGFjaF9icm9hZGNhc3Rf cmdiX3Byb3BlcnR5KHN0cnVjdCBrdW5pdCAqdGVzdCkKPiA+ICt7Cj4gPiArCXN0cnVjdCBkcm1f Y29ubmVjdG9yX2luaXRfcHJpdiAqcHJpdiA9IHRlc3QtPnByaXY7Cj4gPiArCXN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IgPSAmcHJpdi0+Y29ubmVjdG9yOwo+ID4gKwlzdHJ1Y3QgZHJt X3Byb3BlcnR5ICpwcm9wOwo+ID4gKwlpbnQgcmV0Owo+ID4gKwo+ID4gKwlyZXQgPSBkcm1tX2Nv bm5lY3Rvcl9pbml0KCZwcml2LT5kcm0sIGNvbm5lY3RvciwKPiA+ICsJCQkJICAmZHVtbXlfZnVu Y3MsCj4gPiArCQkJCSAgRFJNX01PREVfQ09OTkVDVE9SX0hETUlBLAo+ID4gKwkJCQkgICZwcml2 LT5kZGMpOwo+ID4gKwlLVU5JVF9BU1NFUlRfRVEodGVzdCwgcmV0LCAwKTsKPiA+ICsKPiA+ICsJ cmV0ID0gZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfYnJvYWRjYXN0X3JnYl9wcm9wZXJ0eShjb25uZWN0 b3IpOwo+ID4gKwlLVU5JVF9BU1NFUlRfRVEodGVzdCwgcmV0LCAwKTsKPiA+ICsKPiA+ICsJcHJv cCA9IGNvbm5lY3Rvci0+YnJvYWRjYXN0X3JnYl9wcm9wZXJ0eTsKPiA+ICsJS1VOSVRfQVNTRVJU X05PVF9OVUxMKHRlc3QsIHByb3ApOwo+ID4gKwlLVU5JVF9FWFBFQ1RfTk9UX05VTEwodGVzdCwg ZHJtX21vZGVfb2JqX2ZpbmRfcHJvcF9pZCgmY29ubmVjdG9yLT5iYXNlLCBwcm9wLT5iYXNlLmlk KSk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIGRybV90ZXN0X2RybV9jb25uZWN0b3Jf YXR0YWNoX2Jyb2FkY2FzdF9yZ2JfcHJvcGVydHlfaGRtaV9jb25uZWN0b3Ioc3RydWN0IGt1bml0 ICp0ZXN0KQo+ID4gK3sKPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3JfaW5pdF9wcml2ICpwcml2 ID0gdGVzdC0+cHJpdjsKPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZw cml2LT5jb25uZWN0b3I7Cj4gPiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3A7Cj4gPiArCWlu dCByZXQ7Cj4gPiArCj4gPiArCXJldCA9IGRybW1fY29ubmVjdG9yX2hkbWlfaW5pdCgmcHJpdi0+ ZHJtLCBjb25uZWN0b3IsCj4gPiArCQkJCSAgICAgICAmZHVtbXlfZnVuY3MsCj4gPiArCQkJCSAg ICAgICBEUk1fTU9ERV9DT05ORUNUT1JfSERNSUEsCj4gPiArCQkJCSAgICAgICAmcHJpdi0+ZGRj KTsKPiA+ICsJS1VOSVRfRVhQRUNUX0VRKHRlc3QsIHJldCwgMCk7Cj4gPiArCj4gPiArCXJldCA9 IGRybV9jb25uZWN0b3JfYXR0YWNoX2Jyb2FkY2FzdF9yZ2JfcHJvcGVydHkoY29ubmVjdG9yKTsK PiA+ICsJS1VOSVRfQVNTRVJUX0VRKHRlc3QsIHJldCwgMCk7Cj4gPiArCj4gPiArCXByb3AgPSBj b25uZWN0b3ItPmJyb2FkY2FzdF9yZ2JfcHJvcGVydHk7Cj4gPiArCUtVTklUX0FTU0VSVF9OT1Rf TlVMTCh0ZXN0LCBwcm9wKTsKPiA+ICsJS1VOSVRfRVhQRUNUX05PVF9OVUxMKHRlc3QsIGRybV9t b2RlX29ial9maW5kX3Byb3BfaWQoJmNvbm5lY3Rvci0+YmFzZSwgcHJvcC0+YmFzZS5pZCkpOwo+ ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgc3RydWN0IGt1bml0X2Nhc2UgZHJtX2Nvbm5lY3Rvcl9h dHRhY2hfYnJvYWRjYXN0X3JnYl9wcm9wZXJ0eV90ZXN0c1tdID0gewo+ID4gKwlLVU5JVF9DQVNF KGRybV90ZXN0X2RybV9jb25uZWN0b3JfYXR0YWNoX2Jyb2FkY2FzdF9yZ2JfcHJvcGVydHkpLAo+ ID4gKwlLVU5JVF9DQVNFKGRybV90ZXN0X2RybV9jb25uZWN0b3JfYXR0YWNoX2Jyb2FkY2FzdF9y Z2JfcHJvcGVydHlfaGRtaV9jb25uZWN0b3IpLAo+ID4gKwl7IH0KPiA+ICt9Owo+ID4gKwo+ID4g K3N0YXRpYyBzdHJ1Y3Qga3VuaXRfc3VpdGUgZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfYnJvYWRjYXN0 X3JnYl9wcm9wZXJ0eV90ZXN0X3N1aXRlID0gewo+ID4gKwkubmFtZSA9ICJkcm1fY29ubmVjdG9y X2F0dGFjaF9icm9hZGNhc3RfcmdiX3Byb3BlcnR5IiwKPiA+ICsJLmluaXQgPSBkcm1fdGVzdF9j b25uZWN0b3JfaW5pdCwKPiA+ICsJLnRlc3RfY2FzZXMgPSBkcm1fY29ubmVjdG9yX2F0dGFjaF9i cm9hZGNhc3RfcmdiX3Byb3BlcnR5X3Rlc3RzLAo+ID4gK307Cj4gPiArCj4gPiAga3VuaXRfdGVz dF9zdWl0ZXMoCj4gPiAgCSZkcm1tX2Nvbm5lY3Rvcl9oZG1pX2luaXRfdGVzdF9zdWl0ZSwKPiA+ ICAJJmRybW1fY29ubmVjdG9yX2luaXRfdGVzdF9zdWl0ZSwKPiA+IC0JJmRybV9nZXRfdHZfbW9k ZV9mcm9tX25hbWVfdGVzdF9zdWl0ZQo+ID4gKwkmZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfYnJvYWRj YXN0X3JnYl9wcm9wZXJ0eV90ZXN0X3N1aXRlLAo+ID4gKwkmZHJtX2dldF90dl9tb2RlX2Zyb21f bmFtZV90ZXN0X3N1aXRlLAo+ID4gKwkmZHJtX2hkbWlfY29ubmVjdG9yX2dldF9icm9hZGNhc3Rf cmdiX25hbWVfdGVzdF9zdWl0ZQo+ID4gICk7Cj4gPiAgCj4gPiAgTU9EVUxFX0FVVEhPUigiTWF4 aW1lIFJpcGFyZCA8bWF4aW1lQGNlcm5vLnRlY2g+Iik7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3Rlc3RzL2RybV9rdW5pdF9lZGlkLmggYi9kcml2ZXJzL2dwdS9kcm0vdGVzdHMv ZHJtX2t1bml0X2VkaWQuaAo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+IGluZGV4IDAwMDAw MDAwMDAwMC4uMmJiYTMxNmRlMDY0Cj4gPiAtLS0gL2Rldi9udWxsCj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vdGVzdHMvZHJtX2t1bml0X2VkaWQuaAo+ID4gQEAgLTAsMCArMSwxMDYgQEAKPiA+ ICsjaWZuZGVmIERSTV9LVU5JVF9FRElEX0hfCj4gPiArI2RlZmluZSBEUk1fS1VOSVRfRURJRF9I Xwo+ID4gKwo+ID4gKy8qCj4gPiArICogZWRpZC1kZWNvZGUgKGhleCk6Cj4gPiArICoKPiA+ICsg KiAwMCBmZiBmZiBmZiBmZiBmZiBmZiAwMCAzMSBkOCAyYSAwMCAwMCAwMCAwMCAwMAo+ID4gKyAq IDAwIDIxIDAxIDAzIDgxIGEwIDVhIDc4IDAyIDAwIDAwIDAwIDAwIDAwIDAwIDAwCj4gPiArICog MDAgMDAgMDAgMjAgMDAgMDAgMDEgMDEgMDEgMDEgMDEgMDEgMDEgMDEgMDEgMDEKPiA+ICsgKiAw MSAwMSAwMSAwMSAwMSAwMSAwMiAzYSA4MCAxOCA3MSAzOCAyZCA0MCA1OCAyYwo+ID4gKyAqIDQ1 IDAwIDQwIDg0IDYzIDAwIDAwIDFlIDAwIDAwIDAwIGZjIDAwIDU0IDY1IDczCj4gPiArICogNzQg MjAgNDUgNDQgNDkgNDQgMGEgMjAgMjAgMjAgMDAgMDAgMDAgZmQgMDAgMzIKPiA+ICsgKiA0NiAx ZSA0NiAwZiAwMCAwYSAyMCAyMCAyMCAyMCAyMCAyMCAwMCAwMCAwMCAxMAo+ID4gKyAqIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAxIDkyCj4gPiArICoKPiA+ICsg KiAwMiAwMyAxYiA4MSBlMyAwNSAwMCAyMCA0MSAxMCBlMiAwMCA0YSA2ZCAwMyAwYwo+ID4gKyAq IDAwIDEyIDM0IDAwIDI4IDIwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwCj4gPiArICog MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAKPiA+ICsgKiAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMAo+ID4gKyAqIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwCj4gPiArICogMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAKPiA+ICsgKiAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMAo+ID4gKyAqIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIGQwCj4gPiArICoKPiA+ICsg KiAtLS0tLS0tLS0tLS0tLS0tCj4gPiArICoKPiA+ICsgKiBCbG9jayAwLCBCYXNlIEVESUQ6Cj4g PiArICogICBFRElEIFN0cnVjdHVyZSBWZXJzaW9uICYgUmV2aXNpb246IDEuMwo+ID4gKyAqICAg VmVuZG9yICYgUHJvZHVjdCBJZGVudGlmaWNhdGlvbjoKPiA+ICsgKiAgICAgTWFudWZhY3R1cmVy OiBMTlgKPiA+ICsgKiAgICAgTW9kZWw6IDQyCj4gPiArICogICAgIE1hZGUgaW46IDIwMjMKPiA+ ICsgKiAgIEJhc2ljIERpc3BsYXkgUGFyYW1ldGVycyAmIEZlYXR1cmVzOgo+ID4gKyAqICAgICBE aWdpdGFsIGRpc3BsYXkKPiA+ICsgKiAgICAgREZQIDEueCBjb21wYXRpYmxlIFRNRFMKPiA+ICsg KiAgICAgTWF4aW11bSBpbWFnZSBzaXplOiAxNjAgY20geCA5MCBjbQo+ID4gKyAqICAgICBHYW1t YTogMi4yMAo+ID4gKyAqICAgICBNb25vY2hyb21lIG9yIGdyYXlzY2FsZSBkaXNwbGF5Cj4gPiAr ICogICAgIEZpcnN0IGRldGFpbGVkIHRpbWluZyBpcyB0aGUgcHJlZmVycmVkIHRpbWluZwo+ID4g KyAqICAgQ29sb3IgQ2hhcmFjdGVyaXN0aWNzOgo+ID4gKyAqICAgICBSZWQgIDogMC4wMDAwLCAw LjAwMDAKPiA+ICsgKiAgICAgR3JlZW46IDAuMDAwMCwgMC4wMDAwCj4gPiArICogICAgIEJsdWUg OiAwLjAwMDAsIDAuMDAwMAo+ID4gKyAqICAgICBXaGl0ZTogMC4wMDAwLCAwLjAwMDAKPiA+ICsg KiAgIEVzdGFibGlzaGVkIFRpbWluZ3MgSSAmIElJOgo+ID4gKyAqICAgICBETVQgMHgwNDogICA2 NDB4NDgwICAgIDU5Ljk0MDQ3NiBIeiAgIDQ6MyAgICAgMzEuNDY5IGtIeiAgICAgMjUuMTc1MDAw IE1Iego+ID4gKyAqICAgU3RhbmRhcmQgVGltaW5nczogbm9uZQo+ID4gKyAqICAgRGV0YWlsZWQg VGltaW5nIERlc2NyaXB0b3JzOgo+ID4gKyAqICAgICBEVEQgMTogIDE5MjB4MTA4MCAgIDYwLjAw MDAwMCBIeiAgMTY6OSAgICAgNjcuNTAwIGtIeiAgICAxNDguNTAwMDAwIE1IeiAoMTYwMCBtbSB4 IDkwMCBtbSkKPiA+ICsgKiAgICAgICAgICAgICAgICAgIEhmcm9udCAgIDg4IEhzeW5jICA0NCBI YmFjayAgMTQ4IEhwb2wgUAo+ID4gKyAqICAgICAgICAgICAgICAgICAgVmZyb250ICAgIDQgVnN5 bmMgICA1IFZiYWNrICAgMzYgVnBvbCBQCj4gPiArICogICAgIERpc3BsYXkgUHJvZHVjdCBOYW1l OiAnVGVzdCBFRElEJwo+ID4gKyAqICAgICBEaXNwbGF5IFJhbmdlIExpbWl0czoKPiA+ICsgKiAg ICAgICBNb25pdG9yIHJhbmdlcyAoR1RGKTogNTAtNzAgSHogViwgMzAtNzAga0h6IEgsIG1heCBk b3RjbG9jayAxNTAgTUh6Cj4gPiArICogICAgIER1bW15IERlc2NyaXB0b3I6Cj4gPiArICogICBF eHRlbnNpb24gYmxvY2tzOiAxCj4gPiArICogQ2hlY2tzdW06IDB4OTIKPiA+ICsgKgo+ID4gKyAq IC0tLS0tLS0tLS0tLS0tLS0KPiA+ICsgKgo+ID4gKyAqIEJsb2NrIDEsIENUQS04NjEgRXh0ZW5z aW9uIEJsb2NrOgo+ID4gKyAqICAgUmV2aXNpb246IDMKPiA+ICsgKiAgIFVuZGVyc2NhbnMgSVQg VmlkZW8gRm9ybWF0cyBieSBkZWZhdWx0Cj4gPiArICogICBOYXRpdmUgZGV0YWlsZWQgbW9kZXM6 IDEKPiA+ICsgKiAgIENvbG9yaW1ldHJ5IERhdGEgQmxvY2s6Cj4gPiArICogICAgIHNSR0IKPiA+ ICsgKiAgIFZpZGVvIERhdGEgQmxvY2s6Cj4gPiArICogICAgIFZJQyAgMTY6ICAxOTIweDEwODAg ICA2MC4wMDAwMDAgSHogIDE2OjkgICAgIDY3LjUwMCBrSHogICAgMTQ4LjUwMDAwMCBNSHoKPiA+ ICsgKiAgIFZpZGVvIENhcGFiaWxpdHkgRGF0YSBCbG9jazoKPiA+ICsgKiAgICAgWUNiQ3IgcXVh bnRpemF0aW9uOiBObyBEYXRhCj4gPiArICogICAgIFJHQiBxdWFudGl6YXRpb246IFNlbGVjdGFi bGUgKHZpYSBBVkkgUSkKPiA+ICsgKiAgICAgUFQgc2NhbiBiZWhhdmlvcjogTm8gRGF0YQo+ID4g KyAqICAgICBJVCBzY2FuIGJlaGF2aW9yOiBBbHdheXMgVW5kZXJzY2FubmVkCj4gPiArICogICAg IENFIHNjYW4gYmVoYXZpb3I6IEFsd2F5cyBVbmRlcnNjYW5uZWQKPiA+ICsgKiAgIFZlbmRvci1T cGVjaWZpYyBEYXRhIEJsb2NrIChIRE1JKSwgT1VJIDAwLTBDLTAzOgo+ID4gKyAqICAgICBTb3Vy Y2UgcGh5c2ljYWwgYWRkcmVzczogMS4yLjMuNAo+ID4gKyAqICAgICBNYXhpbXVtIFRNRFMgY2xv Y2s6IDIwMCBNSHoKPiA+ICsgKiAgICAgRXh0ZW5kZWQgSERNSSB2aWRlbyBkZXRhaWxzOgo+ID4g KyAqIENoZWNrc3VtOiAweGQwICBVbnVzZWQgc3BhY2UgaW4gRXh0ZW5zaW9uIEJsb2NrOiAxMDAg Ynl0ZXMKPiA+ICsgKi8KPiA+ICtjb25zdCB1bnNpZ25lZCBjaGFyIHRlc3RfZWRpZF9oZG1pXzEw ODBwX3JnYl9tYXhfMjAwbWh6W10gPSB7Cj4gPiArICAweDAwLCAweGZmLCAweGZmLCAweGZmLCAw eGZmLCAweGZmLCAweGZmLCAweDAwLCAweDMxLCAweGQ4LCAweDJhLCAweDAwLAo+ID4gKyAgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMSwgMHgwMSwgMHgwMywgMHg4MSwgMHhhMCwg MHg1YSwgMHg3OCwKPiA+ICsgIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjAsCj4gPiArICAweDAwLCAweDAwLCAweDAx LCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLAo+ ID4gKyAgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMiwgMHgzYSwgMHg4 MCwgMHgxOCwgMHg3MSwgMHgzOCwKPiA+ICsgIDB4MmQsIDB4NDAsIDB4NTgsIDB4MmMsIDB4NDUs IDB4MDAsIDB4NDAsIDB4ODQsIDB4NjMsIDB4MDAsIDB4MDAsIDB4MWUsCj4gPiArICAweDAwLCAw eDAwLCAweDAwLCAweGZjLCAweDAwLCAweDU0LCAweDY1LCAweDczLCAweDc0LCAweDIwLCAweDQ1 LCAweDQ0LAo+ID4gKyAgMHg0OSwgMHg0NCwgMHgwYSwgMHgyMCwgMHgyMCwgMHgyMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHhmZCwgMHgwMCwgMHgzMiwKPiA+ICsgIDB4NDYsIDB4MDAsIDB4MDAsIDB4 YzQsIDB4MDAsIDB4MGEsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsCj4gPiAr ICAweDAwLCAweDAwLCAweDAwLCAweDEwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLAo+ID4gKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMSwgMHg0MSwgMHgwMiwgMHgwMywgMHgxYiwgMHg4MSwKPiA+ICsgIDB4ZTMsIDB4MDUs IDB4MDAsIDB4MjAsIDB4NDEsIDB4MTAsIDB4ZTIsIDB4MDAsIDB4NGEsIDB4NmQsIDB4MDMsIDB4 MGMsCj4gPiArICAweDAwLCAweDEyLCAweDM0LCAweDAwLCAweDI4LCAweDIwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLAo+ID4gKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKPiA+ICsgIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsCj4gPiArICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAo+ID4gKyAgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwK PiA+ICsgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsCj4gPiArICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAo+ID4gKyAgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwKPiA+ICsgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCj4gPiArICAweDAwLCAweDAwLCAweDAwLCAw eGQwCj4gPiArfTsKPiA+ICsKPiA+ICsjZW5kaWYgLy8gRFJNX0tVTklUX0VESURfSF8KPiA+IGRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggYi9pbmNsdWRlL2RybS9kcm1f Y29ubmVjdG9yLmgKPiA+IGluZGV4IDAwMGEyYTE1NjYxOS4uMzg2N2E0YzAxYjc4IDEwMDY0NAo+ ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gPiArKysgYi9pbmNsdWRlL2Ry bS9kcm1fY29ubmVjdG9yLmgKPiA+IEBAIC0zNjgsNiArMzY4LDMwIEBAIGVudW0gZHJtX3BhbmVs X29yaWVudGF0aW9uIHsKPiA+ICAJRFJNX01PREVfUEFORUxfT1JJRU5UQVRJT05fUklHSFRfVVAs Cj4gPiAgfTsKPiA+ICAKPiA+ICsvKioKPiA+ICsgKiBlbnVtIGRybV9oZG1pX2Jyb2FkY2FzdF9y Z2IgLSBCcm9hZGNhc3QgUkdCIFNlbGVjdGlvbiBmb3IgYW4gSERNSSBAZHJtX2Nvbm5lY3Rvcgo+ ID4gKyAqLwo+ID4gK2VudW0gZHJtX2hkbWlfYnJvYWRjYXN0X3JnYiB7Cj4gPiArCS8qKgo+ID4g KwkgKiBARFJNX0hETUlfQlJPQURDQVNUX1JHQl9BVVRPOiBUaGUgUkdCIHJhbmdlIGlzIHNlbGVj dGVkCj4gPiArCSAqIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlIG1vZGUuCj4gPiArCSAqLwo+ ID4gKwlEUk1fSERNSV9CUk9BRENBU1RfUkdCX0FVVE8sCj4gPiArCj4gPiArCS8qKgo+ID4gKwkg KiBARFJNX0hETUlfQlJPQURDQVNUX1JHQl9GVUxMOiBGdWxsIHJhbmdlIFJHQiBpcyBmb3JjZWQu Cj4gPiArCSAqLwo+ID4gKwlEUk1fSERNSV9CUk9BRENBU1RfUkdCX0ZVTEwsCj4gPiArCj4gPiAr CS8qKgo+ID4gKwkgKiBARFJNX0hETUlfQlJPQURDQVNUX1JHQl9MSU1JVEVEOiBMaW1pdGVkIHJh bmdlIFJHQiBpcyBmb3JjZWQuCj4gPiArCSAqLwo+ID4gKwlEUk1fSERNSV9CUk9BRENBU1RfUkdC X0xJTUlURUQsCj4gPiArfTsKPiA+ICsKPiA+ICtjb25zdCBjaGFyICoKPiA+ICtkcm1faGRtaV9j b25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZShlbnVtIGRybV9oZG1pX2Jyb2FkY2FzdF9y Z2IgYnJvYWRjYXN0X3JnYik7Cj4gPiArCj4gPiAgLyoqCj4gPiAgICogc3RydWN0IGRybV9tb25p dG9yX3JhbmdlX2luZm8gLSBQYW5lbCdzIE1vbml0b3IgcmFuZ2UgaW4gRURJRCBmb3IKPiA+ICAg KiAmZHJtX2Rpc3BsYXlfaW5mbwo+ID4gQEAgLTEwMzcsNiArMTA2MSwxMSBAQCBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSB7Cj4gPiAgCSAqIEBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3Jf aGRtaV9jaGVjaygpLgo+ID4gIAkgKi8KPiA+ICAJc3RydWN0IHsKPiA+ICsJCS8qKgo+ID4gKwkJ ICogQGJyb2FkY2FzdF9yZ2I6IENvbm5lY3RvciBwcm9wZXJ0eSB0byBwYXNzIHRoZQo+ID4gKwkJ ICogQnJvYWRjYXN0IFJHQiBzZWxlY3Rpb24gdmFsdWUuCj4gPiArCQkgKi8KPiA+ICsJCWVudW0g ZHJtX2hkbWlfYnJvYWRjYXN0X3JnYiBicm9hZGNhc3RfcmdiOwo+ID4gIAl9IGhkbWk7Cj4gPiAg fTsKPiA+ICAKPiA+IEBAIC0xNzA2LDYgKzE3MzUsMTIgQEAgc3RydWN0IGRybV9jb25uZWN0b3Ig ewo+ID4gIAkgKi8KPiA+ICAJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJpdmFjeV9zY3JlZW5faHdf c3RhdGVfcHJvcGVydHk7Cj4gPiAgCj4gPiArCS8qKgo+ID4gKwkgKiBAYnJvYWRjYXN0X3JnYl9w cm9wZXJ0eTogQ29ubmVjdG9yIHByb3BlcnR5IHRvIHNldCB0aGUKPiA+ICsJICogQnJvYWRjYXN0 IFJHQiBzZWxlY3Rpb24gdG8gb3V0cHV0IHdpdGguCj4gPiArCSAqLwo+ID4gKwlzdHJ1Y3QgZHJt X3Byb3BlcnR5ICpicm9hZGNhc3RfcmdiX3Byb3BlcnR5Owo+ID4gKwo+ID4gICNkZWZpbmUgRFJN X0NPTk5FQ1RPUl9QT0xMX0hQRCAoMSA8PCAwKQo+ID4gICNkZWZpbmUgRFJNX0NPTk5FQ1RPUl9Q T0xMX0NPTk5FQ1QgKDEgPDwgMSkKPiA+ICAjZGVmaW5lIERSTV9DT05ORUNUT1JfUE9MTF9ESVND T05ORUNUICgxIDw8IDIpCj4gPiBAQCAtMjAyNiw2ICsyMDYxLDcgQEAgaW50IGRybV9jb25uZWN0 b3JfYXR0YWNoX3NjYWxpbmdfbW9kZV9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLAo+ID4gIAkJCQkJICAgICAgIHUzMiBzY2FsaW5nX21vZGVfbWFzayk7Cj4gPiAgaW50 IGRybV9jb25uZWN0b3JfYXR0YWNoX3Zycl9jYXBhYmxlX3Byb3BlcnR5KAo+ID4gIAkJc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4gPiAraW50IGRybV9jb25uZWN0b3JfYXR0YWNo X2Jyb2FkY2FzdF9yZ2JfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7 Cj4gPiAgaW50IGRybV9jb25uZWN0b3JfYXR0YWNoX2NvbG9yc3BhY2VfcHJvcGVydHkoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4gPiAgaW50IGRybV9jb25uZWN0b3JfYXR0YWNo X2hkcl9vdXRwdXRfbWV0YWRhdGFfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3Rvcik7Cj4gPiAgYm9vbCBkcm1fY29ubmVjdG9yX2F0b21pY19oZHJfbWV0YWRhdGFfZXF1YWwo c3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9zdGF0ZSwKPiA+IAo+ID4gLS0gCj4gPiAy LjQzLjAKPiA+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMu aW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LWFybS1rZXJuZWwK