From nobody Fri Sep 25 17:50:05 2026 Received: from mail-pz2-f12.google.com (mail-pz2-f12.google.com [74.125.228.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E9DCB5474F for ; Thu, 10 Sep 2026 01:38:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=74.125.228.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789004298; cv=pass; b=AR52PIL/rIPrtjkweEnmUCvoJ5iLNy1NXVweOA4Im8BmBkQTBElKfEWlpkbA12y7abcTRkl75CEPoq6rL89xIdh3uVbFJyhxCWpZD1t5n0GnLy9eQ4qDnUOOHfVg/4YdZE4q3oc3eZJKsXs/rVWp4aH9o9w/iYMoZ9SJ72t4abM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789004298; c=relaxed/simple; bh=hBXhEII6YAPSs6ic+bGz4AWoPEzPNL+h7K3y+Db/l5M=; h=MIME-Version:From:Date:Message-ID:Subject:To:Cc:Content-Type; b=DnQavnpav7Q7M26vWp999dUFC2HrI/W0io1wUBMxDvoiPCYaj7arBGL/CSZgRuqSfdjpWlccf8JHbHJCTMkVm0Zd5GbAi5zH+iyuVsVgYIeBtbUIYxeTG6NI1Um5OmClfKjvEn6jM8HdUWNVCb53vCelImwPHv4Jb2RhaMjbGfs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=berkeley.edu; spf=pass smtp.mailfrom=berkeley.edu; dkim=pass (2048-bit key) header.d=berkeley.edu header.i=@berkeley.edu header.b=djASTJK3; arc=pass smtp.client-ip=74.125.228.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=berkeley.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=berkeley.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=berkeley.edu header.i=@berkeley.edu header.b="djASTJK3" Received: by mail-pz2-f12.google.com with SMTP id 41be03b00d2f7-cc1cea4ae2dso563486a12.3 for ; Wed, 09 Sep 2026 18:38:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1789004295; cv=none; d=google.com; s=arc-20260327; b=iKbc1yVcCxGkgiht3M81DDid74Wsr8VEu3HDJshSRUmBhnaP9kUXZNUqihTzGFmr0l jhd73pkfGyCW8z9/gSeLriVW6eVaph60Wd4eW8Y7SCqwHCQ7bo2XhyyiFF9wXR8NhY/J ouF+QaIVpQPDUZIWotg+latPNlkBwbBUI6XD7EUt2zcPk1QwhiHwhhQSkc1S2EHy6JRM sobvOWVQ83ujIH+3GwGVStYaZLUYR/LhcBNvqwNloHhBxMQIlQYI8voJL3jov4uyx8+Z fz+5QDdoVElGf6lSPXPfH5V6kblfBY/l/hFuuy4QtKGvvRb4icnTvFbjjherc/0Ao8wq F+uQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:mime-version:dkim-signature; bh=t4gIl5K7AAWT193MEVrcgOivAsBPpusoO3gM0ia1HHw=; fh=uZ4ymhsKFXlZA3ZAoLy7jHol0jej++UwjiaRYCmXtgY=; b=lmAcc2u+eOa+kbL6ChNrSg4mTJtptH/nraRBYg/Mwv1cw4iA/W573Ob3ezKDoiD25G WoSsm56yH4ypzBavHECWLpsHEZZRDCmmZK0gkl7YCvynXRlD7CYTiMvWchVG3tgLWWJv 48EvkhZr8RLcLbciPcD6E0hbPFt9nJyOhHzlWYJoKeRkmULAqTIb/ahvGFUgDJoOEy/A Zd+nHQ/49qjwdCjJgs8YtT7pFm0RzbV6CAGatF7LUkv4xgjjHdjYfni27ozH+ZS/cc72 zHCGXgl5n8PaqcpQxAnoSZOjrjJTsIvr2xwLaauHweVUa2F+y8jR7/GVouuQJkZo5E5+ xAHw==; darn=vger.kernel.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=berkeley.edu; s=google; t=1789004295; x=1789609095; darn=vger.kernel.org; h=content-type:cc:to:subject:message-id:date:from:mime-version:from :to:cc:subject:date:message-id:reply-to:content-type; bh=t4gIl5K7AAWT193MEVrcgOivAsBPpusoO3gM0ia1HHw=; b=djASTJK326GVH0USstXg5PXI30VHLZhSNg0Ep+r44o2DvDyWdGqpJOd6Bvgiz1t6Bf AU9mjWNizZ2yAI5zoLgEcujtBqK03WlfA5wTUPs5OR7DSww7NVu7vHh7V0EIZPNyY3wC MnW4aA7KZvsyH44rbgmmIu+oTn76ICs6sukqW/2+2fMbJqlM1uAMJG4GW0wgWi6QPvjL bd9JBKLGmjwOFeVtJg9XJCBwggF6LFFTBMjPGYgqz/QD5Z/Lw9lTulSEEMHX8POqQvjH 16Lz2kGqxIfpWMGHGzLIoNYi/n17K4mqD1b9tsN41UpPBue1UJU1i5gpzHk/bN7Vncz3 EdIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789004295; x=1789609095; h=content-type:cc:to:subject:message-id:date:from:mime-version :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to:content-type; bh=t4gIl5K7AAWT193MEVrcgOivAsBPpusoO3gM0ia1HHw=; b=mFWvJn7y7pORQCx5cc7EpHsqkGhNn5TCK9lG0g/MYYMt07w7X3c4ds5qIJfnQtG8Pg mF1/ZEeaNZBlnyGHMFMbhJzpT28SS894Hi6J0UkzJU6Gp/ZXuzlytM6ygYn/gbhcR6CL ccvm7Yn1uIqsHIWMxpIEmP8DVsAYHt7RdJ8qxe/P5eR66vOpzQIwZDmnHRMgRhrarP3A 7H5h+iDSODQpEW39gU/w2IBPzoBuW+9X7Z+B2QHwlhEgE1GvgMOWXh2h8KxagRMJPhUv JuimffU8kzYL+7DhM4dtMgnZJNpHYYBE+qzaE4RL986ZTz+5RkrBWI1d2AcjasPneFTK ISmA== X-Forwarded-Encrypted: i=1; AKwUvBxSNp9/aEqtKSiOIA0avAA2Ip5xW1oNeYFJiC4X27nzBeRP7+EJpulDX5zWF/XviQDTPa22p0Xek6vWZyQ=@vger.kernel.org X-Gm-Message-State: AFuF++lWOKktWYfARK2jf4nTw4vUsjvWvPj7ASivDI6xUm6bwOirXkHi 3cAJ/JYcTglwKkxPs0cKp5xrP9ReEb44Xu4GDrPoyJZuvbLuPOnQfVKagVUtuV+aRTL21gyVfuX inX6r3YNw0dtMOgz6Qszo5iiLqtrXN9lhPUsnTiL+ X-Gm-Gg: AYBFou0qnPjBV2GaktJ4R1V1R2VurZ1G0Z3YdMnkZgR8zFDreHUtUDXGcSMXON8c1cU nDV2KnvKV8Smpqjx7+gkV2JzCPZzoAI899KQURMUteWD0DFapDWLc5mBuzNkcE67RST8ViwF+ez dmhGkeGGwT3Gs8pxvEFmEimw6Iqx6C9lObejFqrdtYBqpgexLFA5ji8B6XF+V83G8r6K0fGoxYn qMoqEexMca3ix2P1mR1wUjjymJsQvHV6JNxgFzEQPfi4CyY8zPbvRqe7865iQhmQMqRmXrpExSj pZLBm6jFeSvL+qYhtjHdslCmjwkrCIvoyxZwBha9bXmB3d+aarQB9Ra5xubPSClSHnlNM94iUAs 8C8KJ9zcPr3YiEQIRg3fW5nGZP0qxoHpnZkBV9pQ= X-Received: by 2002:a17:90b:3fcb:b0:398:bc52:825b with SMTP id 98e67ed59e1d1-39d70b49f47mr6516716a91.21.1789004293786; Wed, 09 Sep 2026 18:38:13 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Farhad Alemi Date: Wed, 9 Sep 2026 18:38:02 -0700 X-Gm-Features: AcwNN1VoDxd0DW3_SIjQP3Z87JEixXW57uJ-lPQg9jfReob7LCseHwSiYz0HMe0 Message-ID: Subject: [BUG] KASAN: slab-out-of-bounds Write in gb_hid_raw_request To: Viresh Kumar , Johan Hovold , Alex Elder , Greg Kroah-Hartman Cc: Farhad Alemi , greybus-dev@lists.linaro.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Content-Type: multipart/mixed; boundary="0000000000006fbfab065b17056f" Content-Transfer-Encoding: quoted-printable --0000000000006fbfab065b17056f MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGVsbG8sCgpXZSBhcmUgcmVwb3J0aW5nIHRoZSBmb2xsb3dpbmcgY3Jhc2ggKHJlcHJvZHVjZXIg YW5kIGEgcHJvcG9zZWQgcGF0Y2ggYXR0YWM9CmhlZCk6CkxpbnV4IHZlcnNpb24gNy4zLjAtcmMy IDUwZDA1YzdjNzZjOTZiOTA0NjJmMjRkZWJhY2NhOTcxZDJlODY3MTMKQnVpbGQgQ29uZmlnOiBV cHN0cmVhbUFwcEFybW9yS0FTQU4gKEtBU0FOICsgVUJTQU4sIHBhbmljX29uX3dhcm49M0QxKQoK WyAgIDQ0LjAwMDc3Ml1bICBUODA0XSB1c2IgMy0xOiBuZXcgaGlnaC1zcGVlZCBVU0IgZGV2aWNl IG51bWJlciAyCnVzaW5nIGR1bW15X2hjZApbICAgNDQuMTYzNjk5XVsgIFQ4MDRdIHVzYiAzLTE6 IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0zRDE4ZDEsCmlkUHJvZHVjdD0zRDFlYWYs IGJjZERldmljZT0zRCAxLjAwClsgICA0NC4xNjk3ODZdWyAgVDgwNF0gdXNiIDMtMTogTmV3IFVT QiBkZXZpY2Ugc3RyaW5nczogTWZyPTNEMCwKUHJvZHVjdD0zRDAsIFNlcmlhbE51bWJlcj0zRDAK WyAgIDQ0LjIxMjA1NF1bICAgVDEyXSBncmV5YnVzIDEtc3ZjOiBzZXQgcG93ZXIgbW9kZSA9M0Qg MApbICAgNDQuMjEyMDY0XVsgICBUMTJdIGdyZXlidXMgMS1zdmM6IHBvd2VyIG1vZGUgY2hhbmdl IGZhaWxlZCBvbiBBUAp0byBzd2l0Y2ggbGluazogLTUKWyAgIDQ0LjIxMzc1OF1bICAgIEMxXSBn cmV5YnVzIGdyZXlidXMxOiAwLzA6MDogc2hvcnQgcmVzcG9uc2UgMHg5NApyZWNlaXZlZCAoOCA8 IDkpClsgICA0NC4yMTUxNzldWyBUOTMzN10gZ3JleWJ1cyBncmV5YnVzMTogMC8wOjA6IHN5bmNo cm9ub3VzIG9wZXJhdGlvbgppZCAweDAwMDMgb2YgdHlwZSAweDE0IGZhaWxlZDogLTkwClsgICA0 NC4yMTUyMTZdWyBUOTMzN10gZ3JleWJ1cyAxLXN2YzogZmFpbGVkIHRvIGdldCByYWlsIGNvdW50 OiAtOTAKWyAgIDQ0LjIzNDA3MV1bIFQ5MzM3XSBncmV5YnVzIDEtMi4yOiBJbnRlcmZhY2UgYWRk ZWQgKGdyZXlidXMpClsgICA0NC4yMzQwODBdWyBUOTMzN10gZ3JleWJ1cyAxLTIuMjogR01QIFZJ RD0zRDB4MDAwMDAwMDEsIFBJRD0zRDB4MDAwMDAwMDEKWyAgIDQ0LjIzNDA4N11bIFQ5MzM3XSBn cmV5YnVzIDEtMi4yOiBEREJMMSBNYW51ZmFjdHVyZXI9M0QweDAwMDAwMTI2LApQcm9kdWN0PTNE MHgwMDAwMDAwMQpbICAgNDQuMjU2MDA1XVsgVDkzMzddIGhpZC1nZW5lcmljIDAwMDA6MDAwMTow MDAyLjAwMDE6IGhpZHJhdzA6CjxVTktOT1dOPiBISUQgdjEuMTEgRGV2aWNlIFsxLTIuMi4xIDAw MDE6MDAwMl0gb24KWyAgIDQ0LjI5NTcxMF1bIFQ5NDk1XQo9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9 M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9Cj0z RD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0z RD0zRD0zRD0zRD0zRD0zRD0KPTNEPTNEPTNEPTNEPTNEPTNEPTNEPTNEPTNEPTNEPTNEPTNEPTNE PTNEPTNEPTNEClsgICA0NC4yOTU3MThdWyBUOTQ5NV0gQlVHOiBLQVNBTjogc2xhYi1vdXQtb2Yt Ym91bmRzIGluCmdiX2hpZF9yYXdfcmVxdWVzdCsweDI5Yy8weDg2MApbICAgNDQuMjk1NzQxXVsg VDk0OTVdIFdyaXRlIG9mIHNpemUgMiBhdCBhZGRyIGZmZmY4ODgxMGQ0NzFhMGEgYnkKdGFzayBy ZXByby85NDk1ClsgICA0NC4yOTU3NDddWyBUOTQ5NV0KWyAgIDQ0LjI5NTc1OF1bIFQ5NDk1XSBD UFU6IDEgVUlEOiAwIFBJRDogOTQ5NSBDb21tOiByZXBybyBOb3QgdGFpbnRlZAo3LjMuMC1yYzIt MDAwOTktZzUwZDA1YzdjNzZjOSAjMSBQUkVFTVBUKGZ1bGwpClsgICA0NC4yOTU3NjddWyBUOTQ5 NV0gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoUTM1ICsgSUNIOSwKMjAwOSksIEJJ T1MgMS4xNy4wLWRlYmlhbi0xLjE3LjAtMXVidW50dTEgMDQvMDEvMjAxNApbICAgNDQuMjk1Nzc1 XVsgVDk0OTVdIENhbGwgVHJhY2U6ClsgICA0NC4yOTU3NzldWyBUOTQ5NV0gIDxUQVNLPgpbICAg NDQuMjk1Nzg0XVsgVDk0OTVdICBkdW1wX3N0YWNrX2x2bCsweGU4LzB4MTUwClsgICA0NC4yOTU3 OTRdWyBUOTQ5NV0gIHByaW50X2FkZHJlc3NfZGVzY3JpcHRpb24rMHg1NS8weDFlMApbICAgNDQu Mjk1ODAyXVsgVDk0OTVdICA/IGdiX2hpZF9yYXdfcmVxdWVzdCsweDI5Yy8weDg2MApbICAgNDQu Mjk1ODA5XVsgVDk0OTVdICBwcmludF9yZXBvcnQrMHg1OC8weDcwClsgICA0NC4yOTU4MTVdWyBU OTQ5NV0gIGthc2FuX3JlcG9ydCsweDExNy8weDE1MApbICAgNDQuMjk1ODI2XVsgVDk0OTVdICA/ IGdiX2hpZF9yYXdfcmVxdWVzdCsweDI5Yy8weDg2MApbICAgNDQuMjk1ODM0XVsgVDk0OTVdICBr YXNhbl9jaGVja19yYW5nZSsweDI2NC8weDJjMApbICAgNDQuMjk1ODQzXVsgVDk0OTVdICA/IGdi X2hpZF9yYXdfcmVxdWVzdCsweDI5Yy8weDg2MApbICAgNDQuMjk1ODQ5XVsgVDk0OTVdICBfX2Fz YW5fbWVtY3B5KzB4NDAvMHg3MApbICAgNDQuMjk1ODU4XVsgVDk0OTVdICBnYl9oaWRfcmF3X3Jl cXVlc3QrMHgyOWMvMHg4NjAKWyAgIDQ0LjI5NTg2NV1bIFQ5NDk1XSAgPyBfX3BmeF9nYl9oaWRf cmF3X3JlcXVlc3QrMHgxMC8weDEwClsgICA0NC4yOTU4NzNdWyBUOTQ5NV0gID8gX19oaWRfaHdf cmF3X3JlcXVlc3QrMHhhNy8weDE0MApbICAgNDQuMjk1ODgzXVsgVDk0OTVdICBoaWRyYXdfc2Vu ZF9yZXBvcnQrMHgyYmYvMHg1NDAKWyAgIDQ0LjI5NTg5Ml1bIFQ5NDk1XSAgPyBicGZfbHNtX2Zp bGVfcGVybWlzc2lvbisweDkvMHgyMApbICAgNDQuMjk1OTAxXVsgVDk0OTVdICBoaWRyYXdfd3Jp dGUrMHg5MS8weGQwClsgICA0NC4yOTU5MDhdWyBUOTQ5NV0gID8gX19wZnhfaGlkcmF3X3dyaXRl KzB4MTAvMHgxMApbICAgNDQuMjk1OTE2XVsgVDk0OTVdICB2ZnNfd3JpdGUrMHgyOWEvMHhiOTAK WyAgIDQ0LjI5NTkyNF1bIFQ5NDk1XSAgPyBfX3BmeF92ZnNfd3JpdGUrMHgxMC8weDEwClsgICA0 NC4yOTU5MzFdWyBUOTQ5NV0gID8gX19mZ2V0X2ZpbGVzKzB4MmEvMHg0MjAKWyAgIDQ0LjI5NTkz OV1bIFQ5NDk1XSAgPyBfX2ZnZXRfZmlsZXMrMHgyYS8weDQyMApbICAgNDQuMjk1OTQ0XVsgVDk0 OTVdICA/IF9fZmdldF9maWxlcysweDNhMC8weDQyMApbICAgNDQuMjk1OTUwXVsgVDk0OTVdICA/ IF9fZmdldF9maWxlcysweDJhLzB4NDIwClsgICA0NC4yOTU5NThdWyBUOTQ5NV0gIGtzeXNfd3Jp dGUrMHgxNTAvMHgyNzAKWyAgIDQ0LjI5NTk2NV1bIFQ5NDk1XSAgPyBfX3BmeF9rc3lzX3dyaXRl KzB4MTAvMHgxMApbICAgNDQuMjk1OTczXVsgVDk0OTVdICBkb19zeXNjYWxsXzY0KzB4MTU1LzB4 NTEwClsgICA0NC4yOTU5ODRdWyBUOTQ5NV0gID8gdHJhY2VfaXJxX2Rpc2FibGUrMHgzYi8weDE0 MApbICAgNDQuMjk1OTkzXVsgVDk0OTVdICA/IGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFt ZSsweDc3LzB4N2YKWyAgIDQ0LjI5NjAwMF1bIFQ5NDk1XSAgPyBjbGVhcl9iaGJfbG9vcCsweDMw LzB4ODAKWyAgIDQ0LjI5NjAwN11bIFQ5NDk1XSAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2Zy YW1lKzB4NzcvMHg3ZgpbICAgNDQuMjk2MDE0XVsgVDk0OTVdIFJJUDogMDAzMzoweDQ1MjFkMgpb ICAgNDQuMjk2MDI0XVsgVDk0OTVdIENvZGU6IDA4IDBmIDg1IGUxIGRmIGZmIGZmIDQ5IDg5IGZi IDQ4IDg5IGYwIDQ4Cjg5IGQ3IDQ4IDg5IGNlIDRjIDg5IGMyIDRkIDg5IGNhIDRjIDhiIDQ0IDI0 IDA4IDRjIDhiIDRjIDI0IDEwIDRjIDg5CjVjIDI0IDA4IDBmIDA1IDxjMz4gNjYgMmUgMGYgMWYg ODQgMDAgMDAgMDAgMDAgMDAgMGYgMWYgMDAgZjMgMGYgMWUgZmEKNTUgNDggODkgZTUKWyAgIDQ0 LjI5NjAzMl1bIFQ5NDk1XSBSU1A6IDAwMmI6MDAwMDdmZmNjNTkzNzk2OCBFRkxBR1M6IDAwMDAw MjQ2Ck9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMDAxClsgICA0NC4yOTYwNDJdWyBUOTQ5NV0gUkFY OiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMDAwMDAwMQpSQ1g6IDAwMDAwMDAwMDA0 NTIxZDIKWyAgIDQ0LjI5NjA0Nl1bIFQ5NDk1XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDIgUlNJOiAw MDAwN2ZmY2M1OTM3YWY2ClJESTogMDAwMDAwMDAwMDAwMDAwNApbICAgNDQuMjk2MDUxXVsgVDk0 OTVdIFJCUDogMDAwMDdmZmNjNTkzNzk5MCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAKUjA5OiAwMDAw MDAwMDAwMDAwMDAwClsgICA0NC4yOTYwNTVdWyBUOTQ5NV0gUjEwOiAwMDAwMDAwMDAwMDAwMDAw IFIxMTogMDAwMDAwMDAwMDAwMDI0NgpSMTI6IDAwMDA3ZmZjYzU5MzdjMjgKWyAgIDQ0LjI5NjA1 OV1bIFQ5NDk1XSBSMTM6IDAwMDA3ZmZjYzU5MzdjMzggUjE0OiAwMDAwMDAwMDAwMDAwMDAyClIx NTogMDAwMDAwMDAwMDRjYmE0MApbICAgNDQuMjk2MDY2XVsgVDk0OTVdICA8L1RBU0s+ClsgICA0 NC4yOTYwNjhdWyBUOTQ5NV0KWyAgIDQ0LjI5NjA3MV1bIFQ5NDk1XSBBbGxvY2F0ZWQgYnkgdGFz ayA5NDk1OgpbICAgNDQuMjk2MDc1XVsgVDk0OTVdICBrYXNhbl9zYXZlX3RyYWNrKzB4M2UvMHg4 MApbICAgNDQuMjk2MDgyXVsgVDk0OTVdICBfX2thc2FuX2ttYWxsb2MrMHg5My8weGIwClsgICA0 NC4yOTYwOTBdWyBUOTQ5NV0gIF9fa21hbGxvY19ub3Byb2YrMHgzNmYvMHg3MjAKWyAgIDQ0LjI5 NjA5N11bIFQ5NDk1XSAgZ2Jfb3BlcmF0aW9uX21lc3NhZ2VfYWxsb2MrMHg4Yy8weDI4MApbICAg NDQuMjk2MTA0XVsgVDk0OTVdICBnYl9vcGVyYXRpb25fY3JlYXRlX2NvbW1vbisweGE5LzB4NjUw ClsgICA0NC4yOTYxMTFdWyBUOTQ5NV0gIGdiX29wZXJhdGlvbl9jcmVhdGVfZmxhZ3MrMHhhMi8w eDJkMApbICAgNDQuMjk2MTE3XVsgVDk0OTVdICBnYl9oaWRfcmF3X3JlcXVlc3QrMHgxZTYvMHg4 NjAKWyAgIDQ0LjI5NjEyM11bIFQ5NDk1XSAgaGlkcmF3X3NlbmRfcmVwb3J0KzB4MmJmLzB4NTQw ClsgICA0NC4yOTYxMzBdWyBUOTQ5NV0gIGhpZHJhd193cml0ZSsweDkxLzB4ZDAKWyAgIDQ0LjI5 NjEzN11bIFQ5NDk1XSAgdmZzX3dyaXRlKzB4MjlhLzB4YjkwClsgICA0NC4yOTYxNDJdWyBUOTQ5 NV0gIGtzeXNfd3JpdGUrMHgxNTAvMHgyNzAKWyAgIDQ0LjI5NjE0OF1bIFQ5NDk1XSAgZG9fc3lz Y2FsbF82NCsweDE1NS8weDUxMApbICAgNDQuMjk2MTU2XVsgVDk0OTVdICBlbnRyeV9TWVNDQUxM XzY0X2FmdGVyX2h3ZnJhbWUrMHg3Ny8weDdmClsgICA0NC4yOTYxNjJdWyBUOTQ5NV0KWyAgIDQ0 LjI5NjE2M11bIFQ5NDk1XSBUaGUgYnVnZ3kgYWRkcmVzcyBiZWxvbmdzIHRvIHRoZSBvYmplY3Qg YXQKZmZmZjg4ODEwZDQ3MWEwMApbICAgNDQuMjk2MTYzXVsgVDk0OTVdICB3aGljaCBiZWxvbmdz IHRvIHRoZSBjYWNoZSBrbWFsbG9jLTE2IG9mIHNpemUgMTYKWyAgIDQ0LjI5NjE3MF1bIFQ5NDk1 XSBUaGUgYnVnZ3kgYWRkcmVzcyBpcyBsb2NhdGVkIDEwIGJ5dGVzIGluc2lkZSBvZgpbICAgNDQu Mjk2MTcwXVsgVDk0OTVdICBhbGxvY2F0ZWQgMTEtYnl0ZSByZWdpb24gW2ZmZmY4ODgxMGQ0NzFh MDAsCmZmZmY4ODgxMGQ0NzFhMGIpClsgICA0NC4yOTYxNzddWyBUOTQ5NV0KWyAgIDQ0LjI5NjE3 OV1bIFQ5NDk1XSBUaGUgYnVnZ3kgYWRkcmVzcyBiZWxvbmdzIHRvIHRoZSBwaHlzaWNhbCBwYWdl OgpbICAgNDQuMjk2MTg2XVsgVDk0OTVdIHBhZ2U6IHJlZmNvdW50OjAgbWFwY291bnQ6MAptYXBw aW5nOjAwMDAwMDAwMDAwMDAwMDAgaW5kZXg6MHgwIHBmbjoweDEwZDQ3MQpbICAgNDQuMjk2MTkz XVsgVDk0OTVdIGZsYWdzOiAweDU3ZmYwMDAwMDAwMDAwMChub2RlPTNEMXx6b25lPTNEMnxsYXN0 Y3B1cGk9CmQ9M0QweDdmZikKWyAgIDQ0LjI5NjIwMl1bIFQ5NDk1XSBwYWdlX3R5cGU6IGY1KHNs YWIpClsgICA0NC4yOTYyMTJdWyBUOTQ5NV0gcmF3OiAwNTdmZjAwMDAwMDAwMDAwIGZmZmY4ODgw MWIwNDE2NDAKZGVhZDAwMDAwMDAwMDEwMCBkZWFkMDAwMDAwMDAwMTIyClsgICA0NC4yOTYyMTdd WyBUOTQ5NV0gcmF3OiAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDA4MDAwODAKMDAwMDAwMDBm NTAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwClsgICA0NC4yOTYyMjBdWyBUOTQ5NV0gcGFnZSBkdW1w ZWQgYmVjYXVzZToga2FzYW46IGJhZCBhY2Nlc3MgZGV0ZWN0ZWQKWyAgIDQ0LjI5NjIyNl1bIFQ5 NDk1XSBwYWdlX293bmVyIHRyYWNrcyB0aGUgcGFnZSBhcyBhbGxvY2F0ZWQKWyAgIDQ0LjI5NjIy OV1bIFQ5NDk1XSBwYWdlIGxhc3QgYWxsb2NhdGVkIHZpYSBvcmRlciAwLCBtaWdyYXRldHlwZQpV bm1vdmFibGUsIGdmcF9tYXNrCjB4ZDJjMDAoR0ZQX05PSU98X19HRlBfTk9XQVJOfF9fR0ZQX05P UkVUUll8X19HRlBfQ09NUHxfX0dGUF9OT01FTUFMTE9DKSwKcGlkIDEsIHRnaWQgMSAoc3dhcHBl ci8wKSwgdHMgMzY1NzA1ODk5OApbICAgNDQuMjk2MjQwXVsgVDk0OTVdICBwb3N0X2FsbG9jX2hv b2srMHgxZjkvMHgyNTAKWyAgIDQ0LjI5NjI0N11bIFQ5NDk1XSAgZ2V0X3BhZ2VfZnJvbV9mcmVl bGlzdCsweDIzNWEvMHgyM2UwClsgICA0NC4yOTYyNTVdWyBUOTQ5NV0gIF9fYWxsb2NfZnJvemVu X3BhZ2VzX25vcHJvZisweDIxNy8weDVhMApbICAgNDQuMjk2MjYyXVsgVDk0OTVdICBhbGxvY2F0 ZV9zbGFiKzB4N2QvMHg2MTAKWyAgIDQ0LjI5NjI2N11bIFQ5NDk1XSAgcmVmaWxsX29iamVjdHMr MHgyZDYvMHgzNTAKWyAgIDQ0LjI5NjI3Ml1bIFQ5NDk1XSAgX19wY3NfcmVwbGFjZV9lbXB0eV9t YWluKzB4MmM5LzB4NmMwClsgICA0NC4yOTYyODFdWyBUOTQ5NV0gIF9fa21hbGxvY19ub3Byb2Yr MHg0OGIvMHg3MjAKWyAgIDQ0LjI5NjI4OF1bIFQ5NDk1XSAgdXNiX2hjZF9zdWJtaXRfdXJiKzB4 N2EzLzB4MWI0MApbICAgNDQuMjk2MzAxXVsgVDk0OTVdICB1c2Jfc3RhcnRfd2FpdF91cmIrMHgx M2YvMHg1YjAKWyAgIDQ0LjI5NjMwOF1bIFQ5NDk1XSAgdXNiX2NvbnRyb2xfbXNnKzB4MjM0LzB4 M2UwClsgICA0NC4yOTYzMTRdWyBUOTQ5NV0gIGh1Yl9wb3dlcl9vbisweDFiNi8weDQ2MApbICAg NDQuMjk2MzIwXVsgVDk0OTVdICBodWJfYWN0aXZhdGUrMHgzNDUvMHgxYTgwClsgICA0NC4yOTYz MjddWyBUOTQ5NV0gIGh1Yl9wcm9iZSsweDI5MWUvMHgzYzEwClsgICA0NC4yOTYzMzRdWyBUOTQ5 NV0gIHVzYl9wcm9iZV9pbnRlcmZhY2UrMHg3MWYvMHhlMDAKWyAgIDQ0LjI5NjM0Ml1bIFQ5NDk1 XSAgcmVhbGx5X3Byb2JlKzB4MjY3LzB4YWYwClsgICA0NC4yOTYzNjZdWyBUOTQ5NV0gIF9fZHJp dmVyX3Byb2JlX2RldmljZSsweDFlMi8weDM1MApbICAgNDQuMjk2MzcyXVsgVDk0OTVdIHBhZ2Vf b3duZXIgZnJlZSBzdGFjayB0cmFjZSBtaXNzaW5nClsgICA0NC4yOTYzNzVdWyBUOTQ5NV0KWyAg IDQ0LjI5NjM3N11bIFQ5NDk1XSBNZW1vcnkgc3RhdGUgYXJvdW5kIHRoZSBidWdneSBhZGRyZXNz OgpbICAgNDQuMjk2MzgxXVsgVDk0OTVdICBmZmZmODg4MTBkNDcxOTAwOiAwMCAwNCBmYyBmYyAw MCAwNyBmYyBmYyAwMAowMCBmYyBmYyAwMCAwMSBmYyBmYwpbICAgNDQuMjk2Mzg1XVsgVDk0OTVd ICBmZmZmODg4MTBkNDcxOTgwOiAwMCAwMSBmYyBmYyAwMCAwMSBmYyBmYyBmYQpmYiBmYyBmYyAw MCAwMSBmYyBmYwpbICAgNDQuMjk2Mzg5XVsgVDk0OTVdID5mZmZmODg4MTBkNDcxYTAwOiAwMCAw MyBmYyBmYyBmYSBmYiBmYyBmYyBmYQpmYiBmYyBmYyAwMCAwMSBmYyBmYwpbICAgNDQuMjk2Mzkz XVsgVDk0OTVdICAgICAgICAgICAgICAgICAgICAgICBeClsgICA0NC4yOTYzOTZdWyBUOTQ5NV0g IGZmZmY4ODgxMGQ0NzFhODA6IGZhIGZiIGZjIGZjIGZhIGZiIGZjIGZjIDAwCjAwIGZjIGZjIDAw IDAxIGZjIGZjClsgICA0NC4yOTY0MDBdWyBUOTQ5NV0gIGZmZmY4ODgxMGQ0NzFiMDA6IDAwIDAx IGZjIGZjIDAwIDAxIGZjIGZjIDAwCjA1IGZjIGZjIDAwIDA1IGZjIGZjClsgICA0NC4yOTY0MDRd WyBUOTQ5NV0KPTNEPTNEPTNEPTNEPTNEPTNEPTNEPTNEPTNEPTNEPTNEPTNEPTNEPTNEPTNEPTNE PTNEPTNEPTNEPTNEPTNEPTNEPTNEPTNEPTNEPQo9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9 M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9M0Q9Cj0zRD0zRD0z RD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRApbICAgNDQuMjk3NTY5XVsg VDk0OTVdIEtlcm5lbCBwYW5pYyAtIG5vdCBzeW5jaW5nOiBLQVNBTjogcGFuaWNfb25fd2FybiBz ZXQ9CiAuLi4KWyAgIDQ0LjM1MjQ4Nl1bIFQ5NDk1XSBDUFU6IDEgVUlEOiAwIFBJRDogOTQ5NSBD b21tOiByZXBybyBOb3QgdGFpbnRlZAo3LjMuMC1yYzItMDAwOTktZzUwZDA1YzdjNzZjOSAjMSBQ UkVFTVBUKGZ1bGwpClsgICA0NC4zNTM2NTBdWyBUOTQ5NV0gSGFyZHdhcmUgbmFtZTogUUVNVSBT dGFuZGFyZCBQQyAoUTM1ICsgSUNIOSwKMjAwOSksIEJJT1MgMS4xNy4wLWRlYmlhbi0xLjE3LjAt MXVidW50dTEgMDQvMDEvMjAxNApbICAgNDQuMzU0NjA5XVsgVDk0OTVdIENhbGwgVHJhY2U6Clsg ICA0NC4zNTQ5MTldWyBUOTQ5NV0gIDxUQVNLPgpbICAgNDQuMzU1MTkyXVsgVDk0OTVdICB2cGFu aWMrMHg1NmQvMHhhNjAKWyAgIDQ0LjM1NTYzOV1bIFQ5NDk1XSAgPyBfX3BmeF92cGFuaWMrMHgx MC8weDEwClsgICA0NC4zNTYwNjFdWyBUOTQ5NV0gIHBhbmljKzB4YzUvMHhkMApbICAgNDQuMzU2 NDA3XVsgVDk0OTVdICA/IF9fcGZ4X3BhbmljKzB4MTAvMHgxMApbICAgNDQuMzU2ODMxXVsgVDk0 OTVdICA/IHByZWVtcHRfc2NoZWR1bGVfdGh1bmsrMHgxNi8weDQwClsgICA0NC4zNTczMjNdWyBU OTQ5NV0gID8gZ2JfaGlkX3Jhd19yZXF1ZXN0KzB4MjljLzB4ODYwClsgICA0NC4zNTc4MDBdWyBU OTQ5NV0gID8gcHJlZW1wdF9zY2hlZHVsZV90aHVuaysweDE2LzB4NDAKWyAgIDQ0LjM1ODI5MV1b IFQ5NDk1XSAgPyBnYl9oaWRfcmF3X3JlcXVlc3QrMHgyOWMvMHg4NjAKWyAgIDQ0LjM1ODc3MV1b IFQ5NDk1XSAgY2hlY2tfcGFuaWNfb25fd2FybisweDg5LzB4YjAKWyAgIDQ0LjM1OTIyNV1bIFQ5 NDk1XSAgPyBnYl9oaWRfcmF3X3JlcXVlc3QrMHgyOWMvMHg4NjAKWyAgIDQ0LjM1OTcwMl1bIFQ5 NDk1XSAgZW5kX3JlcG9ydCsweDczLzB4MTcwClsgICA0NC4zNjAwOTVdWyBUOTQ5NV0gID8gZ2Jf aGlkX3Jhd19yZXF1ZXN0KzB4MjljLzB4ODYwClsgICA0NC4zNjA1NjZdWyBUOTQ5NV0gIGthc2Fu X3JlcG9ydCsweDEyOC8weDE1MApbICAgNDQuMzYwOTk4XVsgVDk0OTVdICA/IGdiX2hpZF9yYXdf cmVxdWVzdCsweDI5Yy8weDg2MApbICAgNDQuMzYxNDcxXVsgVDk0OTVdICBrYXNhbl9jaGVja19y YW5nZSsweDI2NC8weDJjMApbICAgNDQuMzYxOTI5XVsgVDk0OTVdICA/IGdiX2hpZF9yYXdfcmVx dWVzdCsweDI5Yy8weDg2MApbICAgNDQuMzYyNDMwXVsgVDk0OTVdICBfX2FzYW5fbWVtY3B5KzB4 NDAvMHg3MApbICAgNDQuMzYyODYzXVsgVDk0OTVdICBnYl9oaWRfcmF3X3JlcXVlc3QrMHgyOWMv MHg4NjAKWyAgIDQ0LjM2MzM0OF1bIFQ5NDk1XSAgPyBfX3BmeF9nYl9oaWRfcmF3X3JlcXVlc3Qr MHgxMC8weDEwClsgICA0NC4zNjM4NjVdWyBUOTQ5NV0gID8gX19oaWRfaHdfcmF3X3JlcXVlc3Qr MHhhNy8weDE0MApbICAgNDQuMzY0MzQ4XVsgVDk0OTVdICBoaWRyYXdfc2VuZF9yZXBvcnQrMHgy YmYvMHg1NDAKWyAgIDQ0LjM2NDgyNV1bIFQ5NDk1XSAgPyBicGZfbHNtX2ZpbGVfcGVybWlzc2lv bisweDkvMHgyMApbICAgNDQuMzY1MzE0XVsgVDk0OTVdICBoaWRyYXdfd3JpdGUrMHg5MS8weGQw ClsgICA0NC4zNjU3ODZdWyBUOTQ5NV0gID8gX19wZnhfaGlkcmF3X3dyaXRlKzB4MTAvMHgxMApb ICAgNDQuMzY2MjQ1XVsgVDk0OTVdICB2ZnNfd3JpdGUrMHgyOWEvMHhiOTAKWyAgIDQ0LjM2NjYz Nl1bIFQ5NDk1XSAgPyBfX3BmeF92ZnNfd3JpdGUrMHgxMC8weDEwClsgICA0NC4zNjcwNzZdWyBU OTQ5NV0gID8gX19mZ2V0X2ZpbGVzKzB4MmEvMHg0MjAKWyAgIDQ0LjM2NzUwMF1bIFQ5NDk1XSAg PyBfX2ZnZXRfZmlsZXMrMHgyYS8weDQyMApbICAgNDQuMzY3OTI0XVsgVDk0OTVdICA/IF9fZmdl dF9maWxlcysweDNhMC8weDQyMApbICAgNDQuMzY4MzUyXVsgVDk0OTVdICA/IF9fZmdldF9maWxl cysweDJhLzB4NDIwClsgICA0NC4zNjg3OTFdWyBUOTQ5NV0gIGtzeXNfd3JpdGUrMHgxNTAvMHgy NzAKWyAgIDQ0LjM2OTE4OF1bIFQ5NDk1XSAgPyBfX3BmeF9rc3lzX3dyaXRlKzB4MTAvMHgxMApb ICAgNDQuMzY5NjMzXVsgVDk0OTVdICBkb19zeXNjYWxsXzY0KzB4MTU1LzB4NTEwClsgICA0NC4z NzAwNjNdWyBUOTQ5NV0gID8gdHJhY2VfaXJxX2Rpc2FibGUrMHgzYi8weDE0MApbICAgNDQuMzcw NTIzXVsgVDk0OTVdICA/IGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDc3LzB4N2YK WyAgIDQ0LjM3MTA3N11bIFQ5NDk1XSAgPyBjbGVhcl9iaGJfbG9vcCsweDMwLzB4ODAKWyAgIDQ0 LjM3MTUwOV1bIFQ5NDk1XSAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NzcvMHg3 ZgpbICAgNDQuMzcyMDQ2XVsgVDk0OTVdIFJJUDogMDAzMzoweDQ1MjFkMgpbICAgNDQuMzcyNDA3 XVsgVDk0OTVdIENvZGU6IDA4IDBmIDg1IGUxIGRmIGZmIGZmIDQ5IDg5IGZiIDQ4IDg5IGYwIDQ4 Cjg5IGQ3IDQ4IDg5IGNlIDRjIDg5IGMyIDRkIDg5IGNhIDRjIDhiIDQ0IDI0IDA4IDRjIDhiIDRj IDI0IDEwIDRjIDg5CjVjIDI0IDA4IDBmIDA1IDxjMz4gNjYgMmUgMGYgMWYgODQgMDAgMDAgMDAg MDAgMDAgMGYgMWYgMDAgZjMgMGYgMWUgZmEKNTUgNDggODkgZTUKWyAgIDQ0LjM3NDEzMV1bIFQ5 NDk1XSBSU1A6IDAwMmI6MDAwMDdmZmNjNTkzNzk2OCBFRkxBR1M6IDAwMDAwMjQ2Ck9SSUdfUkFY OiAwMDAwMDAwMDAwMDAwMDAxClsgICA0NC4zNzQ4ODddWyBUOTQ5NV0gUkFYOiBmZmZmZmZmZmZm ZmZmZmRhIFJCWDogMDAwMDAwMDAwMDAwMDAwMQpSQ1g6IDAwMDAwMDAwMDA0NTIxZDIKWyAgIDQ0 LjM3NTY3M11bIFQ5NDk1XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDIgUlNJOiAwMDAwN2ZmY2M1OTM3 YWY2ClJESTogMDAwMDAwMDAwMDAwMDAwNApbICAgNDQuMzc2MzgxXVsgVDk0OTVdIFJCUDogMDAw MDdmZmNjNTkzNzk5MCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAKUjA5OiAwMDAwMDAwMDAwMDAwMDAw ClsgICA0NC4zNzcxMDFdWyBUOTQ5NV0gUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAw MDAwMDAwMDI0NgpSMTI6IDAwMDA3ZmZjYzU5MzdjMjgKWyAgIDQ0LjM3NzgxMl1bIFQ5NDk1XSBS MTM6IDAwMDA3ZmZjYzU5MzdjMzggUjE0OiAwMDAwMDAwMDAwMDAwMDAyClIxNTogMDAwMDAwMDAw MDRjYmE0MApbICAgNDQuMzc4NTIyXVsgVDk0OTVdICA8L1RBU0s+ClsgICA0NC4zNzkxMDBdWyBU OTQ5NV0gS2VybmVsIE9mZnNldDogZGlzYWJsZWQKWyAgIDQ0LjM3OTY0NF1bIFQ5NDk1XSBSZWJv b3RpbmcgaW4gODY0MDAgc2Vjb25kcy4uCgpSZWdhcmRzLApTRUZDT00gTGFiIEAgQVNV --0000000000006fbfab065b17056f Content-Type: application/octet-stream; name="211.patch" Content-Disposition: attachment; filename="211.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mtuuxmpn0 LS0tIGEvZHJpdmVycy9zdGFnaW5nL2dyZXlidXMvaGlkLmMKKysrIGIvZHJpdmVycy9zdGFnaW5n L2dyZXlidXMvaGlkLmMKQEAgLTk3LDcgKzk3LDcgQEAgc3RhdGljIGludCBnYl9oaWRfc2V0X3Jl cG9ydChzdHJ1Y3QgZ2JfaGlkICpnaGlkLCB1OCByZXBvcnRfdHlwZSwgdTggcmVwb3J0X2lkLAog ewogCXN0cnVjdCBnYl9oaWRfc2V0X3JlcG9ydF9yZXF1ZXN0ICpyZXF1ZXN0OwogCXN0cnVjdCBn Yl9vcGVyYXRpb24gKm9wZXJhdGlvbjsKLQlpbnQgcmV0LCBzaXplID0gc2l6ZW9mKCpyZXF1ZXN0 KSArIGxlbiAtIDE7CisJaW50IHJldCwgc2l6ZSA9IHNpemVvZigqcmVxdWVzdCkgKyBsZW47CiAK IAlyZXQgPSBnYl9wbV9ydW50aW1lX2dldF9zeW5jKGdoaWQtPmJ1bmRsZSk7CiAJaWYgKHJldCkK --0000000000006fbfab065b17056f Content-Type: application/octet-stream; name="reproducer.c" Content-Disposition: attachment; filename="reproducer.c" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mtuuxmpy1 LyoKICogMjExLWthc2FuLXNsYWItb3V0LW9mLWJvdW5kcy13cml0ZS1pbi1nYi1oaWQtcmF3LXJl cXVlc3QKICovCiNkZWZpbmUgX0dOVV9TT1VSQ0UKI2luY2x1ZGUgPGRpcmVudC5oPgojaW5jbHVk ZSA8ZXJybm8uaD4KI2luY2x1ZGUgPGZjbnRsLmg+CiNpbmNsdWRlIDxwdGhyZWFkLmg+CiNpbmNs dWRlIDxzdGRpbnQuaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2lu Y2x1ZGUgPHN5cy9pb2N0bC5oPgojaW5jbHVkZSA8dGltZS5oPgojaW5jbHVkZSA8dW5pc3RkLmg+ CgojaW5jbHVkZSA8bGludXgvdXNiL2NoOS5oPgojaW5jbHVkZSA8bGludXgvdXNiL3Jhd19nYWRn ZXQuaD4KCiNkZWZpbmUgR1JFWUJVU19IRUFERVJfU0laRQkJOAojZGVmaW5lIEdSRVlCVVNfVFlQ RV9SRVNQT05TRV9GTEFHCTB4ODAKI2RlZmluZSBHUkVZQlVTX1NWQ19DUE9SVAkJMAoKI2RlZmlu ZSBHQl9TVkNfVFlQRV9QUk9UT0NPTF9WRVJTSU9OCTB4MDEKI2RlZmluZSBHQl9TVkNfVFlQRV9T VkNfSEVMTE8JCTB4MDIKI2RlZmluZSBHQl9TVkNfVFlQRV9DT05OX0NSRUFURQkJMHgwNwojZGVm aW5lIEdCX1NWQ19UWVBFX0RNRV9QRUVSX0dFVAkweDA5CiNkZWZpbmUgR0JfU1ZDX1RZUEVfRE1F X1BFRVJfU0VUCTB4MGEKI2RlZmluZSBHQl9TVkNfVFlQRV9JTlRGX1NFVF9QV1JNCTB4MTAKI2Rl ZmluZSBHQl9TVkNfVFlQRV9NT0RVTEVfSU5TRVJURUQJMHgxZgojZGVmaW5lIEdCX1NWQ19UWVBF X0lOVEZfVlNZU19FTkFCTEUJMHgyMQojZGVmaW5lIEdCX1NWQ19UWVBFX0lOVEZfUkVGQ0xLX0VO QUJMRQkweDIzCiNkZWZpbmUgR0JfU1ZDX1RZUEVfSU5URl9SRUZDTEtfRElTQUJMRQkweDI0CiNk ZWZpbmUgR0JfU1ZDX1RZUEVfSU5URl9VTklQUk9fRU5BQkxFCTB4MjUKI2RlZmluZSBHQl9TVkNf VFlQRV9JTlRGX0FDVElWQVRFCTB4MjcKI2RlZmluZSBHQl9TVkNfVFlQRV9JTlRGX1JFU1VNRQkJ MHgyOAoKI2RlZmluZSBHQl9DT05UUk9MX1RZUEVfVkVSU0lPTgkJCTB4MDEKI2RlZmluZSBHQl9D T05UUk9MX1RZUEVfR0VUX01BTklGRVNUX1NJWkUJMHgwMwojZGVmaW5lIEdCX0NPTlRST0xfVFlQ RV9HRVRfTUFOSUZFU1QJCTB4MDQKI2RlZmluZSBHQl9DT05UUk9MX1RZUEVfQlVORExFX1NVU1BF TkQJCTB4MGYKI2RlZmluZSBHQl9DT05UUk9MX1RZUEVfQlVORExFX1JFU1VNRQkJMHgxMAojZGVm aW5lIEdCX0NPTlRST0xfVFlQRV9CVU5ETEVfQUNUSVZBVEUJCTB4MTIKI2RlZmluZSBHQl9DT05U Uk9MX1RZUEVfSU5URl9TVVNQRU5EX1BSRVBBUkUJMHgxMwoKI2RlZmluZSBHQl9ISURfVFlQRV9H RVRfREVTQwkJMHgwMgojZGVmaW5lIEdCX0hJRF9UWVBFX0dFVF9SRVBPUlRfREVTQwkweDAzCgoj ZGVmaW5lIEdCX0FQQl9SRVFVRVNUX0NQT1JUX0NPVU5UCTB4MDQKI2RlZmluZSBHQl9BUEJfUkVR VUVTVF9BUlBDX1JVTgkJMHgxMgoKI2RlZmluZSBBUF9JTlRFUkZBQ0VfSUQJCQkxCiNkZWZpbmUg TU9EVUxFX0lOVEVSRkFDRV9JRAkJMgojZGVmaW5lIE1PRFVMRV9DUE9SVF9ISUQJCTEJLyogcmVt b3RlIGNwb3J0IG91ciBtYW5pZmVzdCB1c2VzICovCgovKiB0aGUgdGhyZWUgYnVsayBlbmRwb2lu dHMgZXMyX2FwX3Byb2JlKCkgaW5zaXN0cyBvbiwgaW4gZGVzY3JpcHRvciBvcmRlciAqLwojZGVm aW5lIEVQX0FERFJfQ1BPUlRfSU4JCTB4ODEKI2RlZmluZSBFUF9BRERSX0FSUENfSU4JCQkweDg2 CiNkZWZpbmUgRVBfQUREUl9DUE9SVF9PVVQJCTB4MDIKCnN0YXRpYyBpbnQgcmF3X2dhZGdldF9m ZCA9IC0xOwpzdGF0aWMgaW50IGNwb3J0X2luX2VuZHBvaW50ID0gLTEsIGFycGNfaW5fZW5kcG9p bnQgPSAtMSwgY3BvcnRfb3V0X2VuZHBvaW50ID0gLTE7CgovKiBBUC1zaWRlIGNwb3J0IHRoZSBT VkMgYm91bmQgdG8gb3VyIEhJRCBjcG9ydDsgLTEgdW50aWwgQ09OTl9DUkVBVEUgc2F5cyBzbyAq LwpzdGF0aWMgaW50IGhpZF9hcF9jcG9ydCA9IC0xOwpzdGF0aWMgdWludDE2X3QgbmV4dF9vcGVy YXRpb25faWQgPSAxOwoKc3RhdGljIHZvaWQgZGllKGNvbnN0IGNoYXIgKndoYXQpCnsKCWZwcmlu dGYoc3RkZXJyLCAiJXM6ICVzXG4iLCB3aGF0LCBzdHJlcnJvcihlcnJubykpOwoJX2V4aXQoMSk7 Cn0KCnN0YXRpYyB2b2lkIG1zbGVlcChpbnQgbWlsbGlzZWNvbmRzKQp7CglzdHJ1Y3QgdGltZXNw ZWMgZHVyYXRpb24gPSB7IG1pbGxpc2Vjb25kcyAvIDEwMDAsCgkJCQkgICAgIChsb25nKShtaWxs aXNlY29uZHMgJSAxMDAwKSAqIDEwMDAwMDBMIH07CgluYW5vc2xlZXAoJmR1cmF0aW9uLCBOVUxM KTsKfQoKLyoKICogT25lIGhlbHBlciBmb3IgYWxsIGZvdXIgcmF3LWdhZGdldCB0cmFuc2ZlcnM6 IEVQMF9XUklURSAvIEVQMF9SRUFEIGFuZAogKiBFUF9XUklURSAvIEVQX1JFQUQgc2hhcmUgdGhl IHVzYl9yYXdfZXBfaW8gbGF5b3V0IGFuZCBkaWZmZXIgb25seSBpbiB0aGUKICogZGlyZWN0aW9u IHRoZSBwYXlsb2FkIHRyYXZlbHMuCiAqLwpzdGF0aWMgaW50IHJhd19nYWRnZXRfZXBfaW8odW5z aWduZWQgbG9uZyBpb2N0bF9yZXF1ZXN0LCBpbnQgZW5kcG9pbnQsCgkJCSAgICB2b2lkICpkYXRh LCB1aW50MzJfdCBsZW5ndGgsIGludCBpc19yZWFkKQp7Cgl1aW50OF90IGJ1ZmZlcltzaXplb2Yo c3RydWN0IHVzYl9yYXdfZXBfaW8pICsgNDA5Nl07CglzdHJ1Y3QgdXNiX3Jhd19lcF9pbyAqaW8g PSAodm9pZCAqKWJ1ZmZlcjsKCWludCByZXQ7CgoJaWYgKGxlbmd0aCA+IDQwOTYpCgkJbGVuZ3Ro ID0gNDA5NjsKCWlvLT5lcCA9IGVuZHBvaW50OwoJaW8tPmZsYWdzID0gMDsKCWlvLT5sZW5ndGgg PSBsZW5ndGg7CglpZiAoIWlzX3JlYWQgJiYgbGVuZ3RoKQoJCW1lbWNweShpby0+ZGF0YSwgZGF0 YSwgbGVuZ3RoKTsKCXJldCA9IGlvY3RsKHJhd19nYWRnZXRfZmQsIGlvY3RsX3JlcXVlc3QsIGlv KTsKCWlmIChpc19yZWFkICYmIHJldCA+IDAgJiYgZGF0YSkKCQltZW1jcHkoZGF0YSwgaW8tPmRh dGEsIHJldCA8IChpbnQpbGVuZ3RoID8gcmV0IDogbGVuZ3RoKTsKCXJldHVybiByZXQ7Cn0KCiNk ZWZpbmUgZXAwX3dyaXRlKGRhdGEsIGxlbmd0aCkgXAoJcmF3X2dhZGdldF9lcF9pbyhVU0JfUkFX X0lPQ1RMX0VQMF9XUklURSwgMCwgKHZvaWQgKikoZGF0YSksIChsZW5ndGgpLCAwKQojZGVmaW5l IGVwMF9yZWFkKGRhdGEsIGxlbmd0aCkgXAoJcmF3X2dhZGdldF9lcF9pbyhVU0JfUkFXX0lPQ1RM X0VQMF9SRUFELCAwLCAoZGF0YSksIChsZW5ndGgpLCAxKQojZGVmaW5lIGVwX3dyaXRlKGVuZHBv aW50LCBkYXRhLCBsZW5ndGgpIFwKCXJhd19nYWRnZXRfZXBfaW8oVVNCX1JBV19JT0NUTF9FUF9X UklURSwgKGVuZHBvaW50KSwgKHZvaWQgKikoZGF0YSksIChsZW5ndGgpLCAwKQojZGVmaW5lIGVw X3JlYWQoZW5kcG9pbnQsIGRhdGEsIGxlbmd0aCkgXAoJcmF3X2dhZGdldF9lcF9pbyhVU0JfUkFX X0lPQ1RMX0VQX1JFQUQsIChlbmRwb2ludCksIChkYXRhKSwgKGxlbmd0aCksIDEpCgpzdGF0aWMg aW50IGVuYWJsZV9idWxrX2VuZHBvaW50KHVpbnQ4X3QgYWRkcmVzcykKewoJc3RydWN0IHVzYl9l bmRwb2ludF9kZXNjcmlwdG9yIGRlc2NyaXB0b3IgPSB7CgkJLmJMZW5ndGggPSBVU0JfRFRfRU5E UE9JTlRfU0laRSwKCQkuYkRlc2NyaXB0b3JUeXBlID0gVVNCX0RUX0VORFBPSU5ULAoJCS5iRW5k cG9pbnRBZGRyZXNzID0gYWRkcmVzcywKCQkuYm1BdHRyaWJ1dGVzID0gVVNCX0VORFBPSU5UX1hG RVJfQlVMSywKCQkud01heFBhY2tldFNpemUgPSA1MTIsCgl9OwoKCXJldHVybiBpb2N0bChyYXdf Z2FkZ2V0X2ZkLCBVU0JfUkFXX0lPQ1RMX0VQX0VOQUJMRSwgJmRlc2NyaXB0b3IpOwp9CgovKiB0 aGUgZXMyIGRyaXZlciBiaW5kcyAxOGQxOjFlYWYgKCJBUEJyaWRnZSIpICovCnN0YXRpYyBzdHJ1 Y3QgdXNiX2RldmljZV9kZXNjcmlwdG9yIGFwYnJpZGdlX2RldmljZV9kZXNjcmlwdG9yID0gewoJ LmJMZW5ndGggPSBzaXplb2Yoc3RydWN0IHVzYl9kZXZpY2VfZGVzY3JpcHRvciksCgkuYkRlc2Ny aXB0b3JUeXBlID0gVVNCX0RUX0RFVklDRSwKCS5iY2RVU0IgPSAweDAyMDAsCgkuYk1heFBhY2tl dFNpemUwID0gNjQsCgkuaWRWZW5kb3IgPSAweDE4ZDEsCgkuaWRQcm9kdWN0ID0gMHgxZWFmLAoJ LmJjZERldmljZSA9IDB4MDEwMCwKCS5iTnVtQ29uZmlndXJhdGlvbnMgPSAxLAp9OwoKc3RhdGlj IGNvbnN0IHVpbnQ4X3QgYXBicmlkZ2VfY29uZmlnX2Rlc2NyaXB0b3JbXSA9IHsKCTksIFVTQl9E VF9DT05GSUcsICg5ICsgOSArIDcgKiAzKSAmIDB4ZmYsIDAsIDEsIDEsIDAsIDB4YTAsIDB4MzIs Cgk5LCBVU0JfRFRfSU5URVJGQUNFLCAwLCAwLCAzLCAweGZmLCAweGZmLCAweGZmLCAwLAoJNywg VVNCX0RUX0VORFBPSU5ULCBFUF9BRERSX0NQT1JUX0lOLCBVU0JfRU5EUE9JTlRfWEZFUl9CVUxL LCAweDAwLCAweDAyLCAwLAoJNywgVVNCX0RUX0VORFBPSU5ULCBFUF9BRERSX0FSUENfSU4sIFVT Ql9FTkRQT0lOVF9YRkVSX0JVTEssIDB4MDAsIDB4MDIsIDAsCgk3LCBVU0JfRFRfRU5EUE9JTlQs IEVQX0FERFJfQ1BPUlRfT1VULCBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLLCAweDAwLCAweDAyLCAw LAp9OwoKLyogdGhlIG1vZHVsZS1zaWRlIG1hbmlmZXN0OiBvbmUgaW50ZXJmYWNlLCBvbmUgSElE IGJ1bmRsZSwgb25lIGNwb3J0ICovCnN0YXRpYyBjb25zdCB1aW50OF90IGhpZF9tb2R1bGVfbWFu aWZlc3RbXSA9IHsKCTI4LCAwLCAweDAwLCAweDAxLAkJCS8qIHNpemUsIHZlcnNpb24gMC4xICov Cgk4LCAwLCAweDAxIC8qIElOVEVSRkFDRSAqLywgMCwgICAwLCAwLCAwLCAwLAoJOCwgMCwgMHgw MyAvKiBCVU5ETEUgKi8sIDAsICAgICAgMSwgMHgwNSAvKiBjbGFzcyBISUQgKi8sIDAsIDAsCgk4 LCAwLCAweDA0IC8qIENQT1JUICovLCAwLCAgICAgICBNT0RVTEVfQ1BPUlRfSElELCAwLCAxLCAw eDA1LAp9OwoKLyoKICogT25lIHZlbmRvci1kZWZpbmVkIG91dHB1dCByZXBvcnQgYW5kIG5vdGhp bmcgZWxzZS4gQW4gaW5wdXQgb3IgZmVhdHVyZQogKiByZXBvcnQgd291bGQgbWFrZSBnYl9oaWRf c3RhcnQoKSBpc3N1ZSBhIEdCX0hJRF9UWVBFX0dFVF9SRVBPUlQgcGVyIHJlcG9ydAogKiBiZWZv cmUgdGhlIGhpZHJhdyBub2RlIGFwcGVhcnM7IHdpdGggbmVpdGhlciwgdGhhdCByb3VuZCB0cmlw IG5ldmVyIGhhcHBlbnMuCiAqLwpzdGF0aWMgY29uc3QgdWludDhfdCBoaWRfcmVwb3J0X2Rlc2Ny aXB0b3JbXSA9IHsKCTB4MDYsIDB4MDAsIDB4ZmYsCS8qIFVzYWdlIFBhZ2UgKFZlbmRvciBEZWZp bmVkIDB4ZmYwMCkJKi8KCTB4MDksIDB4MDEsCQkvKiBVc2FnZSAoMHgwMSkJCQkJKi8KCTB4YTEs IDB4MDEsCQkvKiBDb2xsZWN0aW9uIChBcHBsaWNhdGlvbikJCSovCgkweDA5LCAweDAyLAkJLyog ICBVc2FnZSAoMHgwMikJCQkqLwoJMHgxNSwgMHgwMCwJCS8qICAgTG9naWNhbCBNaW5pbXVtICgw KQkJKi8KCTB4MjYsIDB4ZmYsIDB4MDAsCS8qICAgTG9naWNhbCBNYXhpbXVtICgyNTUpCQkqLwoJ MHg3NSwgMHgwOCwJCS8qICAgUmVwb3J0IFNpemUgKDgpCQkJKi8KCTB4OTUsIDB4MDgsCQkvKiAg IFJlcG9ydCBDb3VudCAoOCkJCQkqLwoJMHg5MSwgMHgwMiwJCS8qICAgT3V0cHV0IChEYXRhLFZh cixBYnMpCQkqLwoJMHhjMCwJCQkvKiBFbmQgQ29sbGVjdGlvbgkJCSovCn07CgpzdGF0aWMgdm9p ZCBncmV5YnVzX3NlbmQodWludDhfdCBoZF9jcG9ydCwgdWludDhfdCB0eXBlLCB1aW50MTZfdCBv cGVyYXRpb25faWQsCgkJCSBjb25zdCB2b2lkICpwYXlsb2FkLCB1aW50MTZfdCBwYXlsb2FkX2xl bikKewoJdWludDhfdCBidWZmZXJbMjA0OF07Cgl1aW50MTZfdCBzaXplID0gR1JFWUJVU19IRUFE RVJfU0laRSArIHBheWxvYWRfbGVuOwoKCWlmIChzaXplID4gc2l6ZW9mKGJ1ZmZlcikpCgkJcmV0 dXJuOwoJYnVmZmVyWzBdID0gc2l6ZSAmIDB4ZmY7CglidWZmZXJbMV0gPSBzaXplID4+IDg7Cgli dWZmZXJbMl0gPSBvcGVyYXRpb25faWQgJiAweGZmOwoJYnVmZmVyWzNdID0gb3BlcmF0aW9uX2lk ID4+IDg7CglidWZmZXJbNF0gPSB0eXBlOwoJYnVmZmVyWzVdID0gMDsJCS8qIHJlc3VsdCAqLwoJ YnVmZmVyWzZdID0gaGRfY3BvcnQ7CS8qIGVzMiBwYWNrcyB0aGUgY3BvcnQgaWQgaW50byBwYWRb MF0gKi8KCWJ1ZmZlcls3XSA9IDA7CglpZiAocGF5bG9hZF9sZW4pCgkJbWVtY3B5KGJ1ZmZlciAr IEdSRVlCVVNfSEVBREVSX1NJWkUsIHBheWxvYWQsIHBheWxvYWRfbGVuKTsKCWVwX3dyaXRlKGNw b3J0X2luX2VuZHBvaW50LCBidWZmZXIsIHNpemUpOwp9CgpzdGF0aWMgdm9pZCBncmV5YnVzX3Nl bmRfcmVxdWVzdCh1aW50OF90IGhkX2Nwb3J0LCB1aW50OF90IHR5cGUsCgkJCQkgY29uc3Qgdm9p ZCAqcGF5bG9hZCwgdWludDE2X3QgcGF5bG9hZF9sZW4pCnsKCWdyZXlidXNfc2VuZChoZF9jcG9y dCwgdHlwZSwgbmV4dF9vcGVyYXRpb25faWQrKywgcGF5bG9hZCwgcGF5bG9hZF9sZW4pOwp9Cgpz dGF0aWMgdm9pZCBncmV5YnVzX3NlbmRfcmVzcG9uc2UodWludDhfdCBoZF9jcG9ydCwgdWludDE2 X3Qgb3BlcmF0aW9uX2lkLAoJCQkJICB1aW50OF90IHR5cGUsIGNvbnN0IHZvaWQgKnBheWxvYWQs CgkJCQkgIHVpbnQxNl90IHBheWxvYWRfbGVuKQp7CglncmV5YnVzX3NlbmQoaGRfY3BvcnQsIHR5 cGUgfCBHUkVZQlVTX1RZUEVfUkVTUE9OU0VfRkxBRywgb3BlcmF0aW9uX2lkLAoJCSAgICAgcGF5 bG9hZCwgcGF5bG9hZF9sZW4pOwp9CgpzdGF0aWMgdm9pZCBoYW5kbGVfc3ZjX3JlcXVlc3QodWlu dDE2X3Qgb3BlcmF0aW9uX2lkLCB1aW50OF90IHR5cGUsCgkJCSAgICAgICBjb25zdCB1aW50OF90 ICpwYXlsb2FkLCBpbnQgcGF5bG9hZF9sZW4pCnsKCXVpbnQ4X3QgcmVzcG9uc2VbOF0gPSB7IDAg fTsKCXVpbnQxNl90IHJlc3BvbnNlX2xlbiA9IDA7CgoJc3dpdGNoICh0eXBlKSB7CgljYXNlIEdC X1NWQ19UWVBFX0NPTk5fQ1JFQVRFOgoJCS8qIGludGYxLCBjcG9ydDEobGUxNiksIGludGYyLCBj cG9ydDIobGUxNiksIHRjLCBmbGFncyAqLwoJCWlmIChwYXlsb2FkX2xlbiA+PSA4ICYmCgkJICAg IChwYXlsb2FkWzRdIHwgKHBheWxvYWRbNV0gPDwgOCkpID09IE1PRFVMRV9DUE9SVF9ISUQpCgkJ CWhpZF9hcF9jcG9ydCA9IHBheWxvYWRbMV0gfCAocGF5bG9hZFsyXSA8PCA4KTsKCQlicmVhazsK CWNhc2UgR0JfU1ZDX1RZUEVfRE1FX1BFRVJfR0VUOiB7CgkJLyoKCQkgKiBnYl9pbnRlcmZhY2Vf cmVhZF9kbWUoKSByZWplY3RzIGFueSBEREJMMV9NQU5VRkFDVFVSRVJJRAoJCSAqIG90aGVyIHRo YW4gVE9TSElCQV9ETUlELCBzbyAweDUwMDMgbXVzdCByZWFkIGJhY2sgMHgxMjYuCgkJICogR01Q X0lOSVRfU1RBVFVTICgweDYxMDEpIG11c3QgYmUgbm9uemVybyBhbmQgaXRzIHRvcCBieXRlIGlz CgkJICogdGhlIGluaXQgc3RhdHVzOyAweDAyIHNlbGVjdHMgdGhlIEVTMy1ib290cm9tIHF1aXJr IHNldC4KCQkgKiBFdmVyeSBvdGhlciBhdHRyaWJ1dGUgdGhlIEFQIHJlYWRzIGlzIGNvc21ldGlj IGJ1dCBub256ZXJvLgoJCSAqLwoJCXVpbnQxNl90IGF0dHJpYnV0ZSA9IHBheWxvYWRfbGVuID49 IDMgPwoJCQkocGF5bG9hZFsxXSB8IChwYXlsb2FkWzJdIDw8IDgpKSA6IDA7CgkJdWludDMyX3Qg dmFsdWUgPSBhdHRyaWJ1dGUgPT0gMHg1MDAzID8gMHgwMTI2IDoKCQkJCSBhdHRyaWJ1dGUgPT0g MHg2MTAxID8gMHgwMjAwMDAwMCA6IDE7CgoJCXJlc3BvbnNlWzJdID0gdmFsdWU7CQkvKiBbMC4u MV0gaXMgcmVzdWx0X2NvZGUgPT0gMCAqLwoJCXJlc3BvbnNlWzNdID0gdmFsdWUgPj4gODsKCQly ZXNwb25zZVs0XSA9IHZhbHVlID4+IDE2OwoJCXJlc3BvbnNlWzVdID0gdmFsdWUgPj4gMjQ7CgkJ cmVzcG9uc2VfbGVuID0gNjsKCQlicmVhazsKCX0KCWNhc2UgR0JfU1ZDX1RZUEVfRE1FX1BFRVJf U0VUOgoJCXJlc3BvbnNlX2xlbiA9IDI7CQkvKiBsZTE2IHJlc3VsdF9jb2RlICovCgkJYnJlYWs7 CgljYXNlIEdCX1NWQ19UWVBFX0lOVEZfQUNUSVZBVEU6CgkJcmVzcG9uc2VbMV0gPSAweDAzOwkJ LyogR0JfU1ZDX0lOVEZfVFlQRV9HUkVZQlVTICovCgkJcmVzcG9uc2VfbGVuID0gMjsJCS8qIHN0 YXR1cywgaW50Zl90eXBlICovCgkJYnJlYWs7CgljYXNlIEdCX1NWQ19UWVBFX0lOVEZfVlNZU19F TkFCTEU6CgljYXNlIEdCX1NWQ19UWVBFX0lOVEZfUkVGQ0xLX0VOQUJMRToKCWNhc2UgR0JfU1ZD X1RZUEVfSU5URl9SRUZDTEtfRElTQUJMRToKCWNhc2UgR0JfU1ZDX1RZUEVfSU5URl9VTklQUk9f RU5BQkxFOgoJY2FzZSBHQl9TVkNfVFlQRV9JTlRGX1NFVF9QV1JNOgoJY2FzZSBHQl9TVkNfVFlQ RV9JTlRGX1JFU1VNRToKCQlyZXNwb25zZV9sZW4gPSAxOwkJLyogYmFyZSBzdGF0dXMgYnl0ZSAq LwoJCWJyZWFrOwoJZGVmYXVsdDoKCQlicmVhazsJCQkvKiBkZXZpY2UtaWQsIHJvdXRlLWNyZWF0 ZSwgcGluZywgLi4uICovCgl9CglncmV5YnVzX3NlbmRfcmVzcG9uc2UoR1JFWUJVU19TVkNfQ1BP UlQsIG9wZXJhdGlvbl9pZCwgdHlwZSwKCQkJICAgICAgcmVzcG9uc2UsIHJlc3BvbnNlX2xlbik7 Cn0KCnN0YXRpYyB2b2lkIGhhbmRsZV9jb250cm9sX3JlcXVlc3QodWludDhfdCBoZF9jcG9ydCwg dWludDE2X3Qgb3BlcmF0aW9uX2lkLAoJCQkJICAgdWludDhfdCB0eXBlKQp7Cgl1aW50OF90IHJl c3BvbnNlWzJdID0geyAwIH07Cgljb25zdCB1aW50OF90ICpwYXlsb2FkID0gcmVzcG9uc2U7Cgl1 aW50MTZfdCBwYXlsb2FkX2xlbiA9IDA7CgoJc3dpdGNoICh0eXBlKSB7CgljYXNlIEdCX0NPTlRS T0xfVFlQRV9WRVJTSU9OOgoJCXJlc3BvbnNlWzFdID0gMTsJCS8qIG1ham9yIDAsIG1pbm9yIDEg Ki8KCQlwYXlsb2FkX2xlbiA9IDI7CgkJYnJlYWs7CgljYXNlIEdCX0NPTlRST0xfVFlQRV9HRVRf TUFOSUZFU1RfU0laRToKCQlyZXNwb25zZVswXSA9IHNpemVvZihoaWRfbW9kdWxlX21hbmlmZXN0 KTsKCQlwYXlsb2FkX2xlbiA9IDI7CgkJYnJlYWs7CgljYXNlIEdCX0NPTlRST0xfVFlQRV9HRVRf TUFOSUZFU1Q6CgkJcGF5bG9hZCA9IGhpZF9tb2R1bGVfbWFuaWZlc3Q7CgkJcGF5bG9hZF9sZW4g PSBzaXplb2YoaGlkX21vZHVsZV9tYW5pZmVzdCk7CgkJYnJlYWs7CgljYXNlIEdCX0NPTlRST0xf VFlQRV9CVU5ETEVfU1VTUEVORDoKCWNhc2UgR0JfQ09OVFJPTF9UWVBFX0JVTkRMRV9SRVNVTUU6 CgljYXNlIEdCX0NPTlRST0xfVFlQRV9CVU5ETEVfQUNUSVZBVEU6CgljYXNlIEdCX0NPTlRST0xf VFlQRV9JTlRGX1NVU1BFTkRfUFJFUEFSRToKCQlwYXlsb2FkX2xlbiA9IDE7CQkvKiBiYXJlIHN0 YXR1cyBieXRlICovCgkJYnJlYWs7CglkZWZhdWx0OgoJCWJyZWFrOwkJCS8qIGNvbm5lY3RlZCwg ZGlzY29ubmVjdGVkLCAuLi4gKi8KCX0KCWdyZXlidXNfc2VuZF9yZXNwb25zZShoZF9jcG9ydCwg b3BlcmF0aW9uX2lkLCB0eXBlLCBwYXlsb2FkLCBwYXlsb2FkX2xlbik7Cn0KCnN0YXRpYyB2b2lk IGhhbmRsZV9oaWRfcmVxdWVzdCh1aW50OF90IGhkX2Nwb3J0LCB1aW50MTZfdCBvcGVyYXRpb25f aWQsCgkJCSAgICAgICB1aW50OF90IHR5cGUpCnsKCXVpbnQ4X3QgZGVzY3JpcHRvcl9yZXNwb25z ZVsxMF0gPSB7IDAgfTsKCWNvbnN0IHVpbnQ4X3QgKnBheWxvYWQgPSBkZXNjcmlwdG9yX3Jlc3Bv bnNlOwoJdWludDE2X3QgcGF5bG9hZF9sZW4gPSAwOwoKCXN3aXRjaCAodHlwZSkgewoJY2FzZSBH Ql9ISURfVFlQRV9HRVRfREVTQzoKCQlkZXNjcmlwdG9yX3Jlc3BvbnNlWzBdID0gMTA7CQkJCS8q IGJMZW5ndGggKi8KCQlkZXNjcmlwdG9yX3Jlc3BvbnNlWzFdID0gc2l6ZW9mKGhpZF9yZXBvcnRf ZGVzY3JpcHRvcik7CS8qIHdSZXBvcnREZXNjTGVuZ3RoICovCgkJZGVzY3JpcHRvcl9yZXNwb25z ZVszXSA9IDB4MTE7CQkJCS8qIGJjZEhJRCAweDAxMTEgKi8KCQlkZXNjcmlwdG9yX3Jlc3BvbnNl WzRdID0gMHgwMTsKCQlkZXNjcmlwdG9yX3Jlc3BvbnNlWzVdID0gMHgwMjsJCQkJLyogd1Byb2R1 Y3RJRCAqLwoJCWRlc2NyaXB0b3JfcmVzcG9uc2VbN10gPSAweDAxOwkJCQkvKiB3VmVuZG9ySUQg Ki8KCQlwYXlsb2FkX2xlbiA9IDEwOwoJCWJyZWFrOwoJY2FzZSBHQl9ISURfVFlQRV9HRVRfUkVQ T1JUX0RFU0M6CgkJcGF5bG9hZCA9IGhpZF9yZXBvcnRfZGVzY3JpcHRvcjsKCQlwYXlsb2FkX2xl biA9IHNpemVvZihoaWRfcmVwb3J0X2Rlc2NyaXB0b3IpOwoJCWJyZWFrOwoJZGVmYXVsdDoKCQli cmVhazsJCQkvKiBwb3dlciBvbi9vZmYsIC4uLiAqLwoJfQoJZ3JleWJ1c19zZW5kX3Jlc3BvbnNl KGhkX2Nwb3J0LCBvcGVyYXRpb25faWQsIHR5cGUsIHBheWxvYWQsIHBheWxvYWRfbGVuKTsKfQoK c3RhdGljIHZvaWQgKmNwb3J0X291dF9yZWFkZXJfdGhyZWFkKHZvaWQgKnVudXNlZCkKewoJdWlu dDhfdCBidWZmZXJbMjA0OF07Cgl1aW50OF90IHN2Y192ZXJzaW9uWzJdID0geyAweDAwLCAweDAx IH07CgoJLyoga2ljayB0aGUgU1ZDIGhhbmRzaGFrZSBvZmYgKi8KCWdyZXlidXNfc2VuZF9yZXF1 ZXN0KEdSRVlCVVNfU1ZDX0NQT1JULCBHQl9TVkNfVFlQRV9QUk9UT0NPTF9WRVJTSU9OLAoJCQkg ICAgIHN2Y192ZXJzaW9uLCAyKTsKCglmb3IgKDs7KSB7CgkJaW50IG5ieXRlcyA9IGVwX3JlYWQo Y3BvcnRfb3V0X2VuZHBvaW50LCBidWZmZXIsIHNpemVvZihidWZmZXIpKTsKCQl1aW50MTZfdCBv cGVyYXRpb25faWQ7CgkJdWludDhfdCB0eXBlLCBoZF9jcG9ydDsKCgkJaWYgKG5ieXRlcyA8IEdS RVlCVVNfSEVBREVSX1NJWkUpIHsKCQkJaWYgKG5ieXRlcyA8IDAgJiYgKGVycm5vID09IEVTSFVU RE9XTiB8fCBlcnJubyA9PSBFTk9ERVYpKQoJCQkJYnJlYWs7CgkJCWlmIChuYnl0ZXMgPCAwKQoJ CQkJbXNsZWVwKDUpOwoJCQljb250aW51ZTsKCQl9CgkJb3BlcmF0aW9uX2lkID0gYnVmZmVyWzJd IHwgKGJ1ZmZlclszXSA8PCA4KTsKCQl0eXBlID0gYnVmZmVyWzRdOwoJCWhkX2Nwb3J0ID0gYnVm ZmVyWzZdOwoKCQlpZiAodHlwZSAmIEdSRVlCVVNfVFlQRV9SRVNQT05TRV9GTEFHKSB7CgkJCS8q IHRoZSBvbmx5IHJlc3BvbnNlcyB3ZSBhY3Qgb24gY2hhaW4gdGhlIFNWQyBoYW5kc2hha2UgKi8K CQkJaWYgKGhkX2Nwb3J0ICE9IEdSRVlCVVNfU1ZDX0NQT1JUKQoJCQkJY29udGludWU7CgkJCWlm ICh0eXBlID09IChHQl9TVkNfVFlQRV9QUk9UT0NPTF9WRVJTSU9OIHwKCQkJCSAgICAgR1JFWUJV U19UWVBFX1JFU1BPTlNFX0ZMQUcpKSB7CgkJCQl1aW50OF90IGhlbGxvWzNdID0geyAweDU1LCAw eDQ3LCBBUF9JTlRFUkZBQ0VfSUQgfTsKCgkJCQlncmV5YnVzX3NlbmRfcmVxdWVzdChHUkVZQlVT X1NWQ19DUE9SVCwKCQkJCQkJICAgICBHQl9TVkNfVFlQRV9TVkNfSEVMTE8sCgkJCQkJCSAgICAg aGVsbG8sIDMpOwoJCQl9IGVsc2UgaWYgKHR5cGUgPT0gKEdCX1NWQ19UWVBFX1NWQ19IRUxMTyB8 CgkJCQkJICAgIEdSRVlCVVNfVFlQRV9SRVNQT05TRV9GTEFHKSkgewoJCQkJdWludDhfdCBtb2R1 bGVfaW5zZXJ0ZWRbNF0gPSB7CgkJCQkJTU9EVUxFX0lOVEVSRkFDRV9JRCwgMSwgMCwgMAoJCQkJ fTsKCgkJCQlncmV5YnVzX3NlbmRfcmVxdWVzdChHUkVZQlVTX1NWQ19DUE9SVCwKCQkJCQkJICAg ICBHQl9TVkNfVFlQRV9NT0RVTEVfSU5TRVJURUQsCgkJCQkJCSAgICAgbW9kdWxlX2luc2VydGVk LCA0KTsKCQkJfQoJCQljb250aW51ZTsKCQl9CgoJCWlmIChoZF9jcG9ydCA9PSBHUkVZQlVTX1NW Q19DUE9SVCkKCQkJaGFuZGxlX3N2Y19yZXF1ZXN0KG9wZXJhdGlvbl9pZCwgdHlwZSwKCQkJCQkg ICBidWZmZXIgKyBHUkVZQlVTX0hFQURFUl9TSVpFLAoJCQkJCSAgIG5ieXRlcyAtIEdSRVlCVVNf SEVBREVSX1NJWkUpOwoJCWVsc2UgaWYgKGhkX2Nwb3J0ID09IGhpZF9hcF9jcG9ydCkKCQkJaGFu ZGxlX2hpZF9yZXF1ZXN0KGhkX2Nwb3J0LCBvcGVyYXRpb25faWQsIHR5cGUpOwoJCWVsc2UKCQkJ aGFuZGxlX2NvbnRyb2xfcmVxdWVzdChoZF9jcG9ydCwgb3BlcmF0aW9uX2lkLCB0eXBlKTsKCX0K CXJldHVybiBOVUxMOwp9CgpzdGF0aWMgdm9pZCBoYW5kbGVfZXAwX2NvbnRyb2xfcmVxdWVzdChj b25zdCBzdHJ1Y3QgdXNiX2N0cmxyZXF1ZXN0ICpjdHJsKQp7Cgl1aW50OF90IGRhdGFbNDA5Nl07 Cgl1aW50MTZfdCB3TGVuZ3RoID0gY3RybC0+d0xlbmd0aDsKCWludCBsZW5ndGggPSAtMTsKCglp ZiAoKGN0cmwtPmJSZXF1ZXN0VHlwZSAmIFVTQl9UWVBFX01BU0spID09IFVTQl9UWVBFX1NUQU5E QVJEKSB7CgkJc3dpdGNoIChjdHJsLT5iUmVxdWVzdCkgewoJCWNhc2UgVVNCX1JFUV9HRVRfREVT Q1JJUFRPUjoKCQkJaWYgKChjdHJsLT53VmFsdWUgPj4gOCkgPT0gVVNCX0RUX0RFVklDRSkgewoJ CQkJbGVuZ3RoID0gc2l6ZW9mKGFwYnJpZGdlX2RldmljZV9kZXNjcmlwdG9yKTsKCQkJCW1lbWNw eShkYXRhLCAmYXBicmlkZ2VfZGV2aWNlX2Rlc2NyaXB0b3IsIGxlbmd0aCk7CgkJCX0gZWxzZSBp ZiAoKGN0cmwtPndWYWx1ZSA+PiA4KSA9PSBVU0JfRFRfQ09ORklHKSB7CgkJCQlsZW5ndGggPSBz aXplb2YoYXBicmlkZ2VfY29uZmlnX2Rlc2NyaXB0b3IpOwoJCQkJbWVtY3B5KGRhdGEsIGFwYnJp ZGdlX2NvbmZpZ19kZXNjcmlwdG9yLCBsZW5ndGgpOwoJCQl9CgkJCWJyZWFrOwoJCWNhc2UgVVNC X1JFUV9TRVRfQ09ORklHVVJBVElPTjoKCQkJaW9jdGwocmF3X2dhZGdldF9mZCwgVVNCX1JBV19J T0NUTF9DT05GSUdVUkUsIDApOwoJCQljcG9ydF9pbl9lbmRwb2ludCA9IGVuYWJsZV9idWxrX2Vu ZHBvaW50KEVQX0FERFJfQ1BPUlRfSU4pOwoJCQlhcnBjX2luX2VuZHBvaW50ID0gZW5hYmxlX2J1 bGtfZW5kcG9pbnQoRVBfQUREUl9BUlBDX0lOKTsKCQkJY3BvcnRfb3V0X2VuZHBvaW50ID0gZW5h YmxlX2J1bGtfZW5kcG9pbnQoRVBfQUREUl9DUE9SVF9PVVQpOwoJCQlsZW5ndGggPSAwOwoJCQli cmVhazsKCQl9Cgl9IGVsc2UgaWYgKChjdHJsLT5iUmVxdWVzdFR5cGUgJiBVU0JfVFlQRV9NQVNL KSA9PSBVU0JfVFlQRV9WRU5ET1IpIHsKCQlpZiAoY3RybC0+YlJlcXVlc3RUeXBlICYgVVNCX0RJ Ul9JTikgewoJCQkvKiBDUE9SVF9DT1VOVCBpcyB0aGUgb25seSB2ZW5kb3IgSU4gcmVxdWVzdCBl czIgbWFrZXMgKi8KCQkJaWYgKGN0cmwtPmJSZXF1ZXN0ID09IEdCX0FQQl9SRVFVRVNUX0NQT1JU X0NPVU5UKSB7CgkJCQlkYXRhWzBdID0gMzI7CS8qIHBsZW50eTsgbXVzdCBleGNlZWQgMTcgKi8K CQkJCWRhdGFbMV0gPSAwOwoJCQkJbGVuZ3RoID0gMjsKCQkJfQoJCX0gZWxzZSB7CgkJCW1lbXNl dChkYXRhLCAwLCBzaXplb2YoZGF0YSkpOwoJCQllcDBfcmVhZChkYXRhLCB3TGVuZ3RoKTsKCQkJ aWYgKGN0cmwtPmJSZXF1ZXN0ID09IEdCX0FQQl9SRVFVRVNUX0FSUENfUlVOICYmCgkJCSAgICB3 TGVuZ3RoID49IDUpIHsKCQkJCS8qIGVjaG8gdGhlIGxlMTYgQVJQQyBpZCBiYWNrLCB0aGVuIEFS UENfU1VDQ0VTUyAqLwoJCQkJdWludDhfdCBhcnBjX3Jlc3BvbnNlWzNdID0geyBkYXRhWzBdLCBk YXRhWzFdLCAwIH07CgoJCQkJZXBfd3JpdGUoYXJwY19pbl9lbmRwb2ludCwgYXJwY19yZXNwb25z ZSwgMyk7CgkJCX0KCQkJcmV0dXJuOwkJLyogZGF0YSBzdGFnZSBhbHJlYWR5IGNvbnN1bWVkICov CgkJfQoJfQoKCWlmIChsZW5ndGggPCAwKSB7CgkJaW9jdGwocmF3X2dhZGdldF9mZCwgVVNCX1JB V19JT0NUTF9FUDBfU1RBTEwsIDApOwoJCXJldHVybjsKCX0KCS8qCgkgKiByYXctZ2FkZ2V0IG1h cmtzIGEgdHJhbnNmZXIgd2l0aCBubyBJTiBkYXRhIHN0YWdlIGFzICJvdXQgcGVuZGluZyIsCgkg KiBzbyB0aGUgc3RhdHVzIHN0YWdlIG9mIGEgMC1sZW5ndGggcmVxdWVzdCBpcyBhY2tub3dsZWRn ZWQgd2l0aAoJICogRVAwX1JFQUQsIG5vdCBFUDBfV1JJVEUuCgkgKi8KCWlmICgoY3RybC0+YlJl cXVlc3RUeXBlICYgVVNCX0RJUl9JTikgJiYgd0xlbmd0aCkgewoJCWlmIChsZW5ndGggPiB3TGVu Z3RoKQoJCQlsZW5ndGggPSB3TGVuZ3RoOwoJCWVwMF93cml0ZShkYXRhLCBsZW5ndGgpOwoJfSBl bHNlIHsKCQllcDBfcmVhZChkYXRhLCB3TGVuZ3RoKTsKCX0KfQoKc3RhdGljIHZvaWQgKmVwMF9j b250cm9sX3RocmVhZCh2b2lkICp1bnVzZWQpCnsKCXVpbnQ4X3QgYnVmZmVyW3NpemVvZihzdHJ1 Y3QgdXNiX3Jhd19ldmVudCkgKyA0MDk2XTsKCXN0cnVjdCB1c2JfcmF3X2V2ZW50ICpldmVudCA9 ICh2b2lkICopYnVmZmVyOwoKCWZvciAoOzspIHsKCQlldmVudC0+dHlwZSA9IDA7CgkJZXZlbnQt Pmxlbmd0aCA9IDQwOTY7CgkJaWYgKGlvY3RsKHJhd19nYWRnZXRfZmQsIFVTQl9SQVdfSU9DVExf RVZFTlRfRkVUQ0gsIGV2ZW50KSA8IDApIHsKCQkJaWYgKGVycm5vID09IEVJTlRSKQoJCQkJY29u dGludWU7CgkJCWJyZWFrOwoJCX0KCQlpZiAoZXZlbnQtPnR5cGUgPT0gVVNCX1JBV19FVkVOVF9D T05UUk9MKQoJCQloYW5kbGVfZXAwX2NvbnRyb2xfcmVxdWVzdCgKCQkJCShzdHJ1Y3QgdXNiX2N0 cmxyZXF1ZXN0ICopZXZlbnQtPmRhdGEpOwoJCWVsc2UgaWYgKGV2ZW50LT50eXBlID09IFVTQl9S QVdfRVZFTlRfRElTQ09OTkVDVCkKCQkJYnJlYWs7Cgl9CglyZXR1cm4gTlVMTDsKfQoKaW50IG1h aW4odm9pZCkKewoJc3RydWN0IHVzYl9yYXdfaW5pdCBpbml0OwoJc3RydWN0IGRpcmVudCAqdWRj X2VudHJ5OwoJRElSICp1ZGNfZGlyOwoJcHRocmVhZF90IHRocmVhZDsKCXVuc2lnbmVkIGNoYXIg cmVwb3J0WzJdOwoJY2hhciAqdWRjX2luZGV4OwoJaW50IGhpZHJhd19mZCA9IC0xLCBpOwoKCS8q IGR1bW15X2hjZCBudW1iZXJzIGl0cyBVRENzLCBzbyB0aGUgbmFtZSBtdXN0IGJlIGRpc2NvdmVy ZWQ6CgkgKiBkZXZpY2UgImR1bW15X3VkYy4yIiBiZWxvbmdzIHRvIGRyaXZlciAiZHVtbXlfdWRj Ii4gKi8KCXVkY19kaXIgPSBvcGVuZGlyKCIvc3lzL2NsYXNzL3VkYyIpOwoJd2hpbGUgKHVkY19k aXIgJiYgKHVkY19lbnRyeSA9IHJlYWRkaXIodWRjX2RpcikpICYmIHVkY19lbnRyeS0+ZF9uYW1l WzBdID09ICcuJykKCQk7CglpZiAoIXVkY19kaXIgfHwgIXVkY19lbnRyeSkKCQlkaWUoIm5vIFVE QyBpbiAvc3lzL2NsYXNzL3VkYyAoZHVtbXlfaGNkIG1pc3Npbmc/KSIpOwoJbWVtc2V0KCZpbml0 LCAwLCBzaXplb2YoaW5pdCkpOwoJc25wcmludGYoKGNoYXIgKilpbml0LmRldmljZV9uYW1lLCBV RENfTkFNRV9MRU5HVEhfTUFYLCAiJXMiLCB1ZGNfZW50cnktPmRfbmFtZSk7CglzbnByaW50Zigo Y2hhciAqKWluaXQuZHJpdmVyX25hbWUsIFVEQ19OQU1FX0xFTkdUSF9NQVgsICIlcyIsIHVkY19l bnRyeS0+ZF9uYW1lKTsKCWNsb3NlZGlyKHVkY19kaXIpOwoJdWRjX2luZGV4ID0gc3RycmNocigo Y2hhciAqKWluaXQuZHJpdmVyX25hbWUsICcuJyk7CglpZiAodWRjX2luZGV4KQoJCSp1ZGNfaW5k ZXggPSAwOwoJaW5pdC5zcGVlZCA9IFVTQl9TUEVFRF9ISUdIOwoKCXJhd19nYWRnZXRfZmQgPSBv cGVuKCIvZGV2L3Jhdy1nYWRnZXQiLCBPX1JEV1IpOwoJaWYgKHJhd19nYWRnZXRfZmQgPCAwKQoJ CWRpZSgib3BlbigvZGV2L3Jhdy1nYWRnZXQpIik7CglpZiAoaW9jdGwocmF3X2dhZGdldF9mZCwg VVNCX1JBV19JT0NUTF9JTklULCAmaW5pdCkgPCAwKQoJCWRpZSgiVVNCX1JBV19JT0NUTF9JTklU Iik7CglpZiAoaW9jdGwocmF3X2dhZGdldF9mZCwgVVNCX1JBV19JT0NUTF9SVU4sIDApIDwgMCkK CQlkaWUoIlVTQl9SQVdfSU9DVExfUlVOIik7CgoJcHRocmVhZF9jcmVhdGUoJnRocmVhZCwgTlVM TCwgZXAwX2NvbnRyb2xfdGhyZWFkLCBOVUxMKTsKCWZvciAoaSA9IDA7IGkgPCA1MDAgJiYgY3Bv cnRfb3V0X2VuZHBvaW50IDwgMDsgaSsrKQoJCW1zbGVlcCgxMCk7CglpZiAoY3BvcnRfaW5fZW5k cG9pbnQgPCAwIHx8IGFycGNfaW5fZW5kcG9pbnQgPCAwIHx8IGNwb3J0X291dF9lbmRwb2ludCA8 IDApCgkJZGllKCJnYWRnZXQgbmV2ZXIgZ290IGNvbmZpZ3VyZWQiKTsKCglwdGhyZWFkX2NyZWF0 ZSgmdGhyZWFkLCBOVUxMLCBjcG9ydF9vdXRfcmVhZGVyX3RocmVhZCwgTlVMTCk7CgoJLyogd2Fp dCBmb3IgZ2ItaGlkIHRvIGVudW1lcmF0ZSB0aGUgYnVuZGxlIGFuZCByZWdpc3RlciBhIGhpZHJh dyBub2RlICovCglmb3IgKGkgPSAwOyBpIDwgMzAwICYmIGhpZHJhd19mZCA8IDA7IGkrKykgewoJ CWhpZHJhd19mZCA9IG9wZW4oIi9kZXYvaGlkcmF3MCIsIE9fUkRXUik7CgkJaWYgKGhpZHJhd19m ZCA8IDApCgkJCW1zbGVlcCgxMDApOwoJfQoJaWYgKGhpZHJhd19mZCA8IDApCgkJZGllKCJubyBo aWRyYXcgZGV2aWNlIGFwcGVhcmVkIik7CgoJLyoKCSAqIFJlcG9ydCBpZCAwLCAyIGJ5dGVzLiBn Yl9oaWRfc2V0X3JlcG9ydCgpIHNpemVzIHRoZSBncmV5YnVzIHJlcXVlc3QKCSAqIGFzIHNpemVv ZihzdHJ1Y3QgZ2JfaGlkX3NldF9yZXBvcnRfcmVxdWVzdCkgKyBsZW4gLSAxLCBidXQgdGhhdAoJ ICogc3RydWN0IGVuZHMgaW4gYSB0cnVlIGZsZXhpYmxlIGFycmF5LCBzbyB0aGUgcGF5bG9hZCBo YXMgcm9vbSBmb3IKCSAqIG9ubHkgbGVuIC0gMSByZXBvcnQgYnl0ZXMgd2hpbGUgdGhlIG1lbWNw eSBjb3BpZXMgbGVuIG9mIHRoZW0uCgkgKiBoaWRyYXdfd3JpdGUoKSByZWplY3RzIGFueXRoaW5n IHNob3J0ZXIgdGhhbiAyIGJ5dGVzLCBhbmQgYnVmWzBdCgkgKiBtdXN0IGVxdWFsIHRoZSByZXBv cnQgbnVtYmVyIGZvciBnYl9oaWRfcmF3X3JlcXVlc3QoKSB0byB0YWtlIHRoZQoJICogSElEX1JF UV9TRVRfUkVQT1JUIHBhdGguCgkgKi8KCXJlcG9ydFswXSA9IDB4MDA7CglyZXBvcnRbMV0gPSAw eDQxOwoJd3JpdGUoaGlkcmF3X2ZkLCByZXBvcnQsIHNpemVvZihyZXBvcnQpKTsKCXJldHVybiAw Owp9Cg== --0000000000006fbfab065b17056f--