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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) (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 0B46AC88E63 for ; Sun, 13 Sep 2026 16:00:25 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x5mcJ-0003US-TN; Sun, 13 Sep 2026 11:59:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x5mcH-0003TY-R2 for qemu-devel@nongnu.org; Sun, 13 Sep 2026 11:59:41 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x5mcE-0002dP-BR for qemu-devel@nongnu.org; Sun, 13 Sep 2026 11:59:41 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68DE09gR1434592 for ; Sun, 13 Sep 2026 15:59:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= e0pIbdTcc9Pd9I/fFMU2p2M/Y7cHqHMrg5Aca76Luio=; b=XuuR7B65IUW9sRgG nml8IhMwJdkan5WpIsJ95tFOaReHbrshoXGwbnxlRjsxUXj3KjaGJOH/JBWT2vPq anvFCJNgg1J5m6MFoSfOFhgmLcOO/0iLkoePQdGkIW3VZJs2uPsL+FLRFJFlNsB0 gJgB+FSm/MvhoHCR+UHj0tU1wEavgXBFzMvkEjsxv/zcYYZQHQp7F8WUUvWE9L9O 0Fxx9+Aq59OZLuy08T/Ma9DDxcfOgNXKjc/uznN/2jHeGUnS70WLkXAEQ8VsyKF3 9LSjtThb37AnpAupc2YG0KiGs/n094LJTuNI3t1oI0qLF696CeChTeTKi+FXkfXf lfIhlw== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gmygd3nn2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 13 Sep 2026 15:59:36 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-38e1118e4abso4521507a91.0 for ; Sun, 13 Sep 2026 08:59:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789315175; x=1789919975; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=e0pIbdTcc9Pd9I/fFMU2p2M/Y7cHqHMrg5Aca76Luio=; b=g5q1E7Nle6kkyVr1ZpYnl9bHMh3NJAsWkuo1PeRKVuPLbKbmF5j/exFRUpG5FsUk0k lvA09dLFEC2kPwVj0Ywv51oMFSoCK0/bL6bsTWRBtXrNBLkqlHkLj5U9qW1nFzLFhrWg CuYK5a4sH9zh3/Fk78apxzE4F0zVoNXw6/KUqyeK5ZladpWtF5R877Y/UjenF9FMkqFf 5ywMnNVRgh796DEprp2r/Mh6yYnbtakKmnezmNG88EkOlg+7wZm+xHA+ZSRgCqQ/NTEW aSn/KS9LLK3CJFZ0iV8Ri90i/SDj2ScGNQ7+E890XVkJ/YkcvdjZpC7SW83jRQ4pdZ47 wK6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789315175; x=1789919975; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=e0pIbdTcc9Pd9I/fFMU2p2M/Y7cHqHMrg5Aca76Luio=; b=bT/inoHPGxd0m6IY5SmFR945hytuEme2fv2NPqn3mM/P924i+P9UzSVyyKG6ik9QCK MyrXWX1bflD0mZSkld/F4oiUGyDndgWT+VXpxbCLyMBFVfAJ5Rzblr23f00WFN8JlWJQ D+LzSdUdssx8aabfV7Wpt2t5pYUZgk33LGt2rNEWWB4gNDexnRP/liW40hmSz9/Qocbe ZpRL4qmvZxDCgYU7JjfNe968d6Ku0zU6yxlpsDzaIl8k1LIbAECz2JN0TXZQurJ7dw+R jPsR/Yfw6Kmbo/LcngDPVYVodMEE/zWvttj9mJNXCk5Rk0xGrb+uovCZfmC6QPSh5LEL J5+Q== X-Gm-Message-State: AFuF++loJXISvfwNMxasIMxBSCTJCGoV7SUkiBGTMLRDH2Xnl1TBGZY6 yLXE8jFDydP43ZwywsT04dZvmNMmakRvTP9tjX2kuyaQSaSJoYhigmawr5m0ON7UurUV1vRQD+D kPb538Nu8ZCD56GJr1qhvg6CYs7lhTpc44w/BfL1Q24EX9qzmnjEJd3Ab0M0D4vhIxA== X-Gm-Gg: AYBFou1WpYtFQJNYUWru4TUvEj0EkH//INz7NICHscQcL1uCkiPuoKLJfkDBJj9oGPf W90ATeSL4bGcxeBb6ScuYYWFgZ3YQ+PI/idc/vOYoBR3yYsSGfa7UGfm84lW2jYn7ljjiBnZp00 cP59QXBbRfCq2ynBtumx3mpTp9r+efGkeR59wmLCy9ci/pSbfXUFKhLXTdRvNetDHajN3NcBpZg ZpLjMe2hSbV9kUyY0j9xOXs+AyFtPbBQ/vhiRzA/NqFkfiDv40ABsozsNA1jnoOpqYSBg9yBAqk Q/6NOzc1sCHEAnRnzblabTWWMH3BzBeJTHebniiRMLKYDEmT2saWtMy3cER2d+hasNopYknxTu+ 7Hs197p5rHj/7OR7PEIldfL2fg/HwjCQsU0CPl2A/EiQcIQjx X-Received: by 2002:a17:90b:1d51:b0:38d:b36e:9813 with SMTP id 98e67ed59e1d1-39dbc1d770emr14119909a91.11.1789315175227; Sun, 13 Sep 2026 08:59:35 -0700 (PDT) X-Received: by 2002:a17:90b:1d51:b0:38d:b36e:9813 with SMTP id 98e67ed59e1d1-39dbc1d770emr14119855a91.11.1789315174663; Sun, 13 Sep 2026 08:59:34 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-33bbeb053a5sm8076380eec.27.2026.09.13.08.59.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Sep 2026 08:59:33 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Brian Cain , marco.liebel@oss.qualcomm.com, Helge Deller , Paolo Bonzini , richard.henderson@linaro.org, Laurent Vivier Subject: [PATCH v3 3/6] tcg: split out _var forms of gvec saturating/mul/shift-immediate ops Date: Sun, 13 Sep 2026 08:59:25 -0700 Message-Id: <20260913155928.365928-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260913155928.365928-1-brian.cain@oss.qualcomm.com> References: <20260913155928.365928-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Authority-Analysis: v=2.4 cv=RY0FmFtv c=1 sm=1 tr=0 ts=6aa6c868 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=W0p6JBUHuiQy591seEcA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTEzMDIyNyBTYWx0ZWRfX0hOH7vw3EOiK HtAxAvLL/+jv7fcGRY+s2NHzowjEDivk68xCBFu4gTaC5LAXAm3J0mSufur0yfBdkFH5ZE99kXL yo3HKIbHolhvz1LmX6f1eENKOcVrb1VSxt3C6tC6vhV45FpyVBdVNUUBohdtGwYtagWgOTE77Qg EV0aWk9WPrbeRKTZ7Neqd7RlFzZHatb/D7vYKTnOEHX+DuTU6nm7J/ZYzjRdawRxjQRqKVtkfyx k4hpbvsvZX1mCfhwe3mVoiJ6w4SSlwVlUE6LaAXnK+mgz3AJ+dz2SAoIplMAWMpVMnHfBy63hwF UGT6cKYSNGK+y6o1D7wv81+/9KG2FrUIDw7niHv38J0I3/hkVRJoW0rch2NBQH7uJth1gEwg4Dm 0m205NFSVHTdObnWaFQHg09+SFTn7GvXJy9nkqK/MCjhpc1V1XutiXFRmbPnN1HhKzJjfivN1so 0yftoB5zU/Fphjm82Jg== X-Proofpoint-ORIG-GUID: _cb3BQIEP0Huo1USEYowP-pc4s0aesFn X-Proofpoint-Spam-Info: AW1haW4tMjYwOTEzMDIyNyBTYWx0ZWRfXzCftIr6Y7rsJ 0PWPWNXnuoFWzm31MRSMihYqwqlKLy0bfgy8iUZpUGQwNdOa1URUQREffWvzSahl0u3PGt/C4XA zuy/O8v6YvcqSpmOEA7g+5Xo7HM/rng= X-Proofpoint-GUID: _cb3BQIEP0Huo1USEYowP-pc4s0aesFn X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-13_05,2026-09-11_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 spamscore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 phishscore=0 malwarescore=0 bulkscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609130227 Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, OBFU_UNSUB_UL=1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org dGFyZ2V0L2hleGFnb24gaXMgYWJvdXQgdG8gYWRkcmVzcyBpdHMgSFZYIHJlZ2lzdGVyIGZpbGUg dGhyb3VnaCBhCnJ1bnRpbWUgYmFzZSBwb2ludGVyIHJhdGhlciB0aGFuIGEgY29uc3RhbnQgb2Zm c2V0IGZyb20gZW52LCBpbiBvcmRlciB0bwpzaGFyZSBvbmUgcmVnaXN0ZXIgZmlsZSBiZXR3ZWVu IHNldmVyYWwgdkNQVXMuICBTcGxpdCB0aGUgb3RoZXIKZ3ZlYyBvcCBmYW1pbGllcyBpdCBuZWVk cyBsaWtlIHRjZ19nZW5fZ3ZlY197YWRkLHN1Yixtb3YsYW5kLGV0Y30uCgpBZGQgdGNnX2dlbl9n dmVjX3tzc2FkZCxzc3N1Yix1c2FkZCx1c3N1YixtdWx9X3ZhciBhbmQKdGNnX2dlbl9ndmVjX3tz aHJpLHNhcml9X3ZhciwgcGx1cyB0aGUgdGNnX2dlbl9ndmVjXzJpX3ZhciBwbHVtYmluZyB0aGUK aW1tZWRpYXRlLXNoaWZ0IGZvcm1zIGFyZSBidWlsdCBvbi4KClJldmlld2VkLWJ5OiBNYXJjbyBM aWViZWwgPG1hcmNvLmxpZWJlbEBvc3MucXVhbGNvbW0uY29tPgpSZXZpZXdlZC1ieTogUmljaGFy ZCBIZW5kZXJzb24gPHJpY2hhcmQuaGVuZGVyc29uQGxpbmFyby5vcmc+ClNpZ25lZC1vZmYtYnk6 IEJyaWFuIENhaW4gPGJyaWFuLmNhaW5Ab3NzLnF1YWxjb21tLmNvbT4KLS0tCiBpbmNsdWRlL3Rj Zy90Y2ctb3AtZ3ZlYy1jb21tb24uaCB8ICAzMSArKysrKysKIHRjZy90Y2ctb3AtZ3ZlYy5jICAg ICAgICAgICAgICAgIHwgMTc3ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDIgZmls ZXMgY2hhbmdlZCwgMTYwIGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2luY2x1ZGUvdGNnL3RjZy1vcC1ndmVjLWNvbW1vbi5oIGIvaW5jbHVkZS90Y2cvdGNnLW9w LWd2ZWMtY29tbW9uLmgKaW5kZXggZmEyOGViZGRlMGYuLjZkM2MyYmFlNTdhIDEwMDY0NAotLS0g YS9pbmNsdWRlL3RjZy90Y2ctb3AtZ3ZlYy1jb21tb24uaAorKysgYi9pbmNsdWRlL3RjZy90Y2ct b3AtZ3ZlYy1jb21tb24uaApAQCAtMjM0LDYgKzIzNCwxMCBAQCB2b2lkIHRjZ19nZW5fZ3ZlY18y X3ZhcihUQ0d2X3B0ciBkYmFzZSwgdWludDMyX3QgZG9mcywKIC8qIFNpbWlsYXJseSwgZXhwYW5k IChlbnYrZG9mcykgPSBvcChlbnYrYW9mcykuICovCiB2b2lkIHRjZ19nZW5fZ3ZlY18yKHVpbnQz Ml90IGRvZnMsIHVpbnQzMl90IGFvZnMsCiAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG9w cnN6LCB1aW50MzJfdCBtYXhzeiwgY29uc3QgR1ZlY0dlbjIgKm9wKTsKKy8qIEV4cGFuZCAoZGJh c2UrZG9mcykgPSBvcChhYmFzZSthb2ZzLCBjKSwgY2xlYXJpbmcgQG9wcnN6Li5AbWF4c3ouICov Cit2b2lkIHRjZ19nZW5fZ3ZlY18yaV92YXIoVENHdl9wdHIgZGJhc2UsIHVpbnQzMl90IGRvZnMs CisgICAgICAgICAgICAgICAgICAgICAgICAgVENHdl9wdHIgYWJhc2UsIHVpbnQzMl90IGFvZnMs IHVpbnQzMl90IG9wcnN6LAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG1heHN6 LCBpbnQ2NF90IGMsIGNvbnN0IEdWZWNHZW4yaSAqb3ApOwogLyogU2ltaWxhcmx5LCBleHBhbmQg KGVuditkb2ZzKSA9IG9wKGVudithb2ZzLCBjKS4gKi8KIHZvaWQgdGNnX2dlbl9ndmVjXzJpKHVp bnQzMl90IGRvZnMsIHVpbnQzMl90IGFvZnMsIHVpbnQzMl90IG9wcnN6LAogICAgICAgICAgICAg ICAgICAgICAgdWludDMyX3QgbWF4c3osIGludDY0X3QgYywgY29uc3QgR1ZlY0dlbjJpICpvcCk7 CkBAIC0zMTUsNiArMzE5LDEwIEBAIHZvaWQgdGNnX2dlbl9ndmVjX3N1Yl92YXIodW5zaWduZWQg dmVjZSwgVENHdl9wdHIgZGJhc2UsIHVpbnQzMl90IGRvZnMsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRDR3ZfcHRyIGFiYXNlLCB1aW50MzJfdCBhb2ZzLAogICAgICAgICAgICAgICAgICAg ICAgICAgICBUQ0d2X3B0ciBiYmFzZSwgdWludDMyX3QgYm9mcywKICAgICAgICAgICAgICAgICAg ICAgICAgICAgdWludDMyX3Qgb3Byc3osIHVpbnQzMl90IG1heHN6KTsKK3ZvaWQgdGNnX2dlbl9n dmVjX211bF92YXIodW5zaWduZWQgdmVjZSwgVENHdl9wdHIgZGJhc2UsIHVpbnQzMl90IGRvZnMs CisgICAgICAgICAgICAgICAgICAgICAgICAgIFRDR3ZfcHRyIGFiYXNlLCB1aW50MzJfdCBhb2Zz LAorICAgICAgICAgICAgICAgICAgICAgICAgICBUQ0d2X3B0ciBiYmFzZSwgdWludDMyX3QgYm9m cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgb3Byc3osIHVpbnQzMl90IG1h eHN6KTsKIAogdm9pZCB0Y2dfZ2VuX2d2ZWNfYWRkKHVuc2lnbmVkIHZlY2UsIHVpbnQzMl90IGRv ZnMsIHVpbnQzMl90IGFvZnMsCiAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgYm9mcywg dWludDMyX3Qgb3Byc3osIHVpbnQzMl90IG1heHN6KTsKQEAgLTMzNiw2ICszNDQsMjMgQEAgdm9p ZCB0Y2dfZ2VuX2d2ZWNfbXVscyh1bnNpZ25lZCB2ZWNlLCB1aW50MzJfdCBkb2ZzLCB1aW50MzJf dCBhb2ZzLAogICAgICAgICAgICAgICAgICAgICAgICBUQ0d2X2k2NCBjLCB1aW50MzJfdCBvcHJz eiwgdWludDMyX3QgbWF4c3opOwogCiAvKiBTYXR1cmF0ZWQgYXJpdGhtZXRpYy4gICovCit2b2lk IHRjZ19nZW5fZ3ZlY19zc2FkZF92YXIodW5zaWduZWQgdmVjZSwgVENHdl9wdHIgZGJhc2UsIHVp bnQzMl90IGRvZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVENHdl9wdHIgYWJhc2Us IHVpbnQzMl90IGFvZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVENHdl9wdHIgYmJh c2UsIHVpbnQzMl90IGJvZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg b3Byc3osIHVpbnQzMl90IG1heHN6KTsKK3ZvaWQgdGNnX2dlbl9ndmVjX3Nzc3ViX3Zhcih1bnNp Z25lZCB2ZWNlLCBUQ0d2X3B0ciBkYmFzZSwgdWludDMyX3QgZG9mcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUQ0d2X3B0ciBhYmFzZSwgdWludDMyX3QgYW9mcywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBUQ0d2X3B0ciBiYmFzZSwgdWludDMyX3QgYm9mcywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBvcHJzeiwgdWludDMyX3QgbWF4c3opOwordm9p ZCB0Y2dfZ2VuX2d2ZWNfdXNhZGRfdmFyKHVuc2lnbmVkIHZlY2UsIFRDR3ZfcHRyIGRiYXNlLCB1 aW50MzJfdCBkb2ZzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRDR3ZfcHRyIGFiYXNl LCB1aW50MzJfdCBhb2ZzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRDR3ZfcHRyIGJi YXNlLCB1aW50MzJfdCBib2ZzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90 IG9wcnN6LCB1aW50MzJfdCBtYXhzeik7Cit2b2lkIHRjZ19nZW5fZ3ZlY191c3N1Yl92YXIodW5z aWduZWQgdmVjZSwgVENHdl9wdHIgZGJhc2UsIHVpbnQzMl90IGRvZnMsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVENHdl9wdHIgYWJhc2UsIHVpbnQzMl90IGFvZnMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgVENHdl9wdHIgYmJhc2UsIHVpbnQzMl90IGJvZnMsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgb3Byc3osIHVpbnQzMl90IG1heHN6KTsKKwog dm9pZCB0Y2dfZ2VuX2d2ZWNfc3NhZGQodW5zaWduZWQgdmVjZSwgdWludDMyX3QgZG9mcywgdWlu dDMyX3QgYW9mcywKICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGJvZnMsIHVpbnQz Ml90IG9wcnN6LCB1aW50MzJfdCBtYXhzeik7CiB2b2lkIHRjZ19nZW5fZ3ZlY19zc3N1Yih1bnNp Z25lZCB2ZWNlLCB1aW50MzJfdCBkb2ZzLCB1aW50MzJfdCBhb2ZzLApAQCAtNDQyLDggKzQ2Nywx NCBAQCB2b2lkIHRjZ19nZW5fZ3ZlY19kdXBfaTMyX3Zhcih1bnNpZ25lZCB2ZWNlLCBUQ0d2X3B0 ciBkYmFzZSwgdWludDMyX3QgZG9mcywKIAogdm9pZCB0Y2dfZ2VuX2d2ZWNfc2hsaSh1bnNpZ25l ZCB2ZWNlLCB1aW50MzJfdCBkb2ZzLCB1aW50MzJfdCBhb2ZzLAogICAgICAgICAgICAgICAgICAg ICAgICBpbnQ2NF90IHNoaWZ0LCB1aW50MzJfdCBvcHJzeiwgdWludDMyX3QgbWF4c3opOwordm9p ZCB0Y2dfZ2VuX2d2ZWNfc2hyaV92YXIodW5zaWduZWQgdmVjZSwgVENHdl9wdHIgZGJhc2UsIHVp bnQzMl90IGRvZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBUQ0d2X3B0ciBhYmFzZSwg dWludDMyX3QgYW9mcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDY0X3Qgc2hpZnQs IHVpbnQzMl90IG9wcnN6LCB1aW50MzJfdCBtYXhzeik7CiB2b2lkIHRjZ19nZW5fZ3ZlY19zaHJp KHVuc2lnbmVkIHZlY2UsIHVpbnQzMl90IGRvZnMsIHVpbnQzMl90IGFvZnMsCiAgICAgICAgICAg ICAgICAgICAgICAgIGludDY0X3Qgc2hpZnQsIHVpbnQzMl90IG9wcnN6LCB1aW50MzJfdCBtYXhz eik7Cit2b2lkIHRjZ19nZW5fZ3ZlY19zYXJpX3Zhcih1bnNpZ25lZCB2ZWNlLCBUQ0d2X3B0ciBk YmFzZSwgdWludDMyX3QgZG9mcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFRDR3ZfcHRy IGFiYXNlLCB1aW50MzJfdCBhb2ZzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50NjRf dCBzaGlmdCwgdWludDMyX3Qgb3Byc3osIHVpbnQzMl90IG1heHN6KTsKIHZvaWQgdGNnX2dlbl9n dmVjX3NhcmkodW5zaWduZWQgdmVjZSwgdWludDMyX3QgZG9mcywgdWludDMyX3QgYW9mcywKICAg ICAgICAgICAgICAgICAgICAgICAgaW50NjRfdCBzaGlmdCwgdWludDMyX3Qgb3Byc3osIHVpbnQz Ml90IG1heHN6KTsKIHZvaWQgdGNnX2dlbl9ndmVjX3JvdGxpKHVuc2lnbmVkIHZlY2UsIHVpbnQz Ml90IGRvZnMsIHVpbnQzMl90IGFvZnMsCmRpZmYgLS1naXQgYS90Y2cvdGNnLW9wLWd2ZWMuYyBi L3RjZy90Y2ctb3AtZ3ZlYy5jCmluZGV4IGZjMWE3MDQzNGM1Li4wZDY0OWNjMTNiMiAxMDA2NDQK LS0tIGEvdGNnL3RjZy1vcC1ndmVjLmMKKysrIGIvdGNnL3RjZy1vcC1ndmVjLmMKQEAgLTc3MSw3 ICs3NzEsOCBAQCBzdGF0aWMgdm9pZCBleHBhbmRfMl9pMzIoVENHdl9wdHIgZGJhc2UsIHVpbnQz Ml90IGRvZnMsIFRDR3ZfcHRyIGFiYXNlLAogICAgIHRjZ190ZW1wX2ZyZWVfaTMyKHQxKTsKIH0K IAotc3RhdGljIHZvaWQgZXhwYW5kXzJpX2kzMih1aW50MzJfdCBkb2ZzLCB1aW50MzJfdCBhb2Zz LCB1aW50MzJfdCBvcHJzeiwKK3N0YXRpYyB2b2lkIGV4cGFuZF8yaV9pMzIoVENHdl9wdHIgZGJh c2UsIHVpbnQzMl90IGRvZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFRDR3ZfcHRyIGFi YXNlLCB1aW50MzJfdCBhb2ZzLCB1aW50MzJfdCBvcHJzeiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50MzJfdCBjLCBib29sIGxvYWRfZGVzdCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgdm9pZCAoKmZuaSkoVENHdl9pMzIsIFRDR3ZfaTMyLCBpbnQzMl90KSkKIHsKQEAgLTc4MCwx MiArNzgxLDEyIEBAIHN0YXRpYyB2b2lkIGV4cGFuZF8yaV9pMzIodWludDMyX3QgZG9mcywgdWlu dDMyX3QgYW9mcywgdWludDMyX3Qgb3Byc3osCiAgICAgdWludDMyX3QgaTsKIAogICAgIGZvciAo aSA9IDA7IGkgPCBvcHJzejsgaSArPSA0KSB7Ci0gICAgICAgIHRjZ19nZW5fbGRfaTMyKHQwLCB0 Y2dfZW52LCBhb2ZzICsgaSk7CisgICAgICAgIHRjZ19nZW5fbGRfaTMyKHQwLCBhYmFzZSwgYW9m cyArIGkpOwogICAgICAgICBpZiAobG9hZF9kZXN0KSB7Ci0gICAgICAgICAgICB0Y2dfZ2VuX2xk X2kzMih0MSwgdGNnX2VudiwgZG9mcyArIGkpOworICAgICAgICAgICAgdGNnX2dlbl9sZF9pMzIo dDEsIGRiYXNlLCBkb2ZzICsgaSk7CiAgICAgICAgIH0KICAgICAgICAgZm5pKHQxLCB0MCwgYyk7 Ci0gICAgICAgIHRjZ19nZW5fc3RfaTMyKHQxLCB0Y2dfZW52LCBkb2ZzICsgaSk7CisgICAgICAg IHRjZ19nZW5fc3RfaTMyKHQxLCBkYmFzZSwgZG9mcyArIGkpOwogICAgIH0KICAgICB0Y2dfdGVt cF9mcmVlX2kzMih0MCk7CiAgICAgdGNnX3RlbXBfZnJlZV9pMzIodDEpOwpAQCAtOTM4LDcgKzkz OSw4IEBAIHN0YXRpYyB2b2lkIGV4cGFuZF8yX2k2NChUQ0d2X3B0ciBkYmFzZSwgdWludDMyX3Qg ZG9mcywgVENHdl9wdHIgYWJhc2UsCiAgICAgdGNnX3RlbXBfZnJlZV9pNjQodDEpOwogfQogCi1z dGF0aWMgdm9pZCBleHBhbmRfMmlfaTY0KHVpbnQzMl90IGRvZnMsIHVpbnQzMl90IGFvZnMsIHVp bnQzMl90IG9wcnN6LAorc3RhdGljIHZvaWQgZXhwYW5kXzJpX2k2NChUQ0d2X3B0ciBkYmFzZSwg dWludDMyX3QgZG9mcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVENHdl9wdHIgYWJhc2Us IHVpbnQzMl90IGFvZnMsIHVpbnQzMl90IG9wcnN6LAogICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQ2NF90IGMsIGJvb2wgbG9hZF9kZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICB2 b2lkICgqZm5pKShUQ0d2X2k2NCwgVENHdl9pNjQsIGludDY0X3QpKQogewpAQCAtOTQ3LDEyICs5 NDksMTIgQEAgc3RhdGljIHZvaWQgZXhwYW5kXzJpX2k2NCh1aW50MzJfdCBkb2ZzLCB1aW50MzJf dCBhb2ZzLCB1aW50MzJfdCBvcHJzeiwKICAgICB1aW50MzJfdCBpOwogCiAgICAgZm9yIChpID0g MDsgaSA8IG9wcnN6OyBpICs9IDgpIHsKLSAgICAgICAgdGNnX2dlbl9sZF9pNjQodDAsIHRjZ19l bnYsIGFvZnMgKyBpKTsKKyAgICAgICAgdGNnX2dlbl9sZF9pNjQodDAsIGFiYXNlLCBhb2ZzICsg aSk7CiAgICAgICAgIGlmIChsb2FkX2Rlc3QpIHsKLSAgICAgICAgICAgIHRjZ19nZW5fbGRfaTY0 KHQxLCB0Y2dfZW52LCBkb2ZzICsgaSk7CisgICAgICAgICAgICB0Y2dfZ2VuX2xkX2k2NCh0MSwg ZGJhc2UsIGRvZnMgKyBpKTsKICAgICAgICAgfQogICAgICAgICBmbmkodDEsIHQwLCBjKTsKLSAg ICAgICAgdGNnX2dlbl9zdF9pNjQodDEsIHRjZ19lbnYsIGRvZnMgKyBpKTsKKyAgICAgICAgdGNn X2dlbl9zdF9pNjQodDEsIGRiYXNlLCBkb2ZzICsgaSk7CiAgICAgfQogICAgIHRjZ190ZW1wX2Zy ZWVfaTY0KHQwKTsKICAgICB0Y2dfdGVtcF9mcmVlX2k2NCh0MSk7CkBAIC0xMTA2LDcgKzExMDgs OCBAQCBzdGF0aWMgdm9pZCBleHBhbmRfMl92ZWModW5zaWduZWQgdmVjZSwgVENHdl9wdHIgZGJh c2UsIHVpbnQzMl90IGRvZnMsCiAKIC8qIEV4cGFuZCBPUFNaIGJ5dGVzIHdvcnRoIG9mIHR3by12 ZWN0b3Igb3BlcmFuZHMgYW5kIGFuIGltbWVkaWF0ZSBvcGVyYW5kCiAgICB1c2luZyBob3N0IHZl Y3RvcnMuICAqLwotc3RhdGljIHZvaWQgZXhwYW5kXzJpX3ZlYyh1bnNpZ25lZCB2ZWNlLCB1aW50 MzJfdCBkb2ZzLCB1aW50MzJfdCBhb2ZzLAorc3RhdGljIHZvaWQgZXhwYW5kXzJpX3ZlYyh1bnNp Z25lZCB2ZWNlLCBUQ0d2X3B0ciBkYmFzZSwgdWludDMyX3QgZG9mcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgVENHdl9wdHIgYWJhc2UsIHVpbnQzMl90IGFvZnMsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQzMl90IG9wcnN6LCB1aW50MzJfdCB0eXN6LCBUQ0dUeXBlIHR5cGUs CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDY0X3QgYywgYm9vbCBsb2FkX2Rlc3QsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCpmbmkpKHVuc2lnbmVkLCBUQ0d2X3ZlYywg VENHdl92ZWMsIGludDY0X3QpKQpAQCAtMTExNSwxMiArMTExOCwxMiBAQCBzdGF0aWMgdm9pZCBl eHBhbmRfMmlfdmVjKHVuc2lnbmVkIHZlY2UsIHVpbnQzMl90IGRvZnMsIHVpbnQzMl90IGFvZnMs CiAgICAgICAgIFRDR3ZfdmVjIHQwID0gdGNnX3RlbXBfbmV3X3ZlYyh0eXBlKTsKICAgICAgICAg VENHdl92ZWMgdDEgPSB0Y2dfdGVtcF9uZXdfdmVjKHR5cGUpOwogCi0gICAgICAgIHRjZ19nZW5f bGRfdmVjKHQwLCB0Y2dfZW52LCBhb2ZzICsgaSk7CisgICAgICAgIHRjZ19nZW5fbGRfdmVjKHQw LCBhYmFzZSwgYW9mcyArIGkpOwogICAgICAgICBpZiAobG9hZF9kZXN0KSB7Ci0gICAgICAgICAg ICB0Y2dfZ2VuX2xkX3ZlYyh0MSwgdGNnX2VudiwgZG9mcyArIGkpOworICAgICAgICAgICAgdGNn X2dlbl9sZF92ZWModDEsIGRiYXNlLCBkb2ZzICsgaSk7CiAgICAgICAgIH0KICAgICAgICAgZm5p KHZlY2UsIHQxLCB0MCwgYyk7Ci0gICAgICAgIHRjZ19nZW5fc3RfdmVjKHQxLCB0Y2dfZW52LCBk b2ZzICsgaSk7CisgICAgICAgIHRjZ19nZW5fc3RfdmVjKHQxLCBkYmFzZSwgZG9mcyArIGkpOwog ICAgIH0KIH0KIApAQCAtMTMxOCw4ICsxMzIxLDkgQEAgdm9pZCB0Y2dfZ2VuX2d2ZWNfMih1aW50 MzJfdCBkb2ZzLCB1aW50MzJfdCBhb2ZzLAogfQogCiAvKiBFeHBhbmQgYSB2ZWN0b3Igb3BlcmF0 aW9uIHdpdGggdHdvIHZlY3RvcnMgYW5kIGFuIGltbWVkaWF0ZS4gICovCi12b2lkIHRjZ19nZW5f Z3ZlY18yaSh1aW50MzJfdCBkb2ZzLCB1aW50MzJfdCBhb2ZzLCB1aW50MzJfdCBvcHJzeiwKLSAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG1heHN6LCBpbnQ2NF90IGMsIGNvbnN0IEdWZWNH ZW4yaSAqZykKK3ZvaWQgdGNnX2dlbl9ndmVjXzJpX3ZhcihUQ0d2X3B0ciBkYmFzZSwgdWludDMy X3QgZG9mcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBUQ0d2X3B0ciBhYmFzZSwgdWludDMy X3QgYW9mcywgdWludDMyX3Qgb3Byc3osCisgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMy X3QgbWF4c3osIGludDY0X3QgYywgY29uc3QgR1ZlY0dlbjJpICpnKQogewogICAgIGNvbnN0IFRD R09wY29kZSAqdGhpc19saXN0ID0gZy0+b3B0X29wYyA/IDogdmVjb3BfbGlzdF9lbXB0eTsKICAg ICBjb25zdCBUQ0dPcGNvZGUgKmhvbGRfbGlzdCA9IHRjZ19zd2FwX3ZlY29wX2xpc3QodGhpc19s aXN0KTsKQEAgLTEzMjcsNyArMTMzMSw3IEBAIHZvaWQgdGNnX2dlbl9ndmVjXzJpKHVpbnQzMl90 IGRvZnMsIHVpbnQzMl90IGFvZnMsIHVpbnQzMl90IG9wcnN6LAogICAgIHVpbnQzMl90IHNvbWU7 CiAKICAgICBjaGVja19zaXplX2FsaWduKG9wcnN6LCBtYXhzeiwgZG9mcyB8IGFvZnMpOwotICAg IGNoZWNrX292ZXJsYXBfMih0Y2dfZW52LCBkb2ZzLCB0Y2dfZW52LCBhb2ZzLCBtYXhzeik7Cisg ICAgY2hlY2tfb3ZlcmxhcF8yKGRiYXNlLCBkb2ZzLCBhYmFzZSwgYW9mcywgbWF4c3opOwogCiAg ICAgdHlwZSA9IDA7CiAgICAgaWYgKGctPmZuaXYpIHsKQEAgLTEzNDAsOCArMTM0NCw4IEBAIHZv aWQgdGNnX2dlbl9ndmVjXzJpKHVpbnQzMl90IGRvZnMsIHVpbnQzMl90IGFvZnMsIHVpbnQzMl90 IG9wcnN6LAogICAgICAgICAgKiB0aGF0IGUuZy4gc2l6ZSA9PSA4MCB3b3VsZCBiZSBleHBhbmRl ZCB3aXRoIDJ4MzIgKyAxeDE2LgogICAgICAgICAgKi8KICAgICAgICAgc29tZSA9IFFFTVVfQUxJ R05fRE9XTihvcHJzeiwgMzIpOwotICAgICAgICBleHBhbmRfMmlfdmVjKGctPnZlY2UsIGRvZnMs IGFvZnMsIHNvbWUsIDMyLCBUQ0dfVFlQRV9WMjU2LAotICAgICAgICAgICAgICAgICAgICAgIGMs IGctPmxvYWRfZGVzdCwgZy0+Zm5pdik7CisgICAgICAgIGV4cGFuZF8yaV92ZWMoZy0+dmVjZSwg ZGJhc2UsIGRvZnMsIGFiYXNlLCBhb2ZzLCBzb21lLCAzMiwKKyAgICAgICAgICAgICAgICAgICAg ICBUQ0dfVFlQRV9WMjU2LCBjLCBnLT5sb2FkX2Rlc3QsIGctPmZuaXYpOwogICAgICAgICBpZiAo c29tZSA9PSBvcHJzeikgewogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTEzNTEs MjYgKzEzNTUsMjkgQEAgdm9pZCB0Y2dfZ2VuX2d2ZWNfMmkodWludDMyX3QgZG9mcywgdWludDMy X3QgYW9mcywgdWludDMyX3Qgb3Byc3osCiAgICAgICAgIG1heHN6IC09IHNvbWU7CiAgICAgICAg IC8qIGZhbGx0aHJ1ICovCiAgICAgY2FzZSBUQ0dfVFlQRV9WMTI4OgotICAgICAgICBleHBhbmRf MmlfdmVjKGctPnZlY2UsIGRvZnMsIGFvZnMsIG9wcnN6LCAxNiwgVENHX1RZUEVfVjEyOCwKLSAg ICAgICAgICAgICAgICAgICAgICBjLCBnLT5sb2FkX2Rlc3QsIGctPmZuaXYpOworICAgICAgICBl eHBhbmRfMmlfdmVjKGctPnZlY2UsIGRiYXNlLCBkb2ZzLCBhYmFzZSwgYW9mcywgb3Byc3osIDE2 LAorICAgICAgICAgICAgICAgICAgICAgIFRDR19UWVBFX1YxMjgsIGMsIGctPmxvYWRfZGVzdCwg Zy0+Zm5pdik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVENHX1RZUEVfVjY0OgotICAgICAg ICBleHBhbmRfMmlfdmVjKGctPnZlY2UsIGRvZnMsIGFvZnMsIG9wcnN6LCA4LCBUQ0dfVFlQRV9W NjQsCi0gICAgICAgICAgICAgICAgICAgICAgYywgZy0+bG9hZF9kZXN0LCBnLT5mbml2KTsKKyAg ICAgICAgZXhwYW5kXzJpX3ZlYyhnLT52ZWNlLCBkYmFzZSwgZG9mcywgYWJhc2UsIGFvZnMsIG9w cnN6LCA4LAorICAgICAgICAgICAgICAgICAgICAgIFRDR19UWVBFX1Y2NCwgYywgZy0+bG9hZF9k ZXN0LCBnLT5mbml2KTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIDA6CiAgICAgICAgIGlm IChnLT5mbmk4ICYmIGNoZWNrX3NpemVfaW1wbChvcHJzeiwgOCkpIHsKLSAgICAgICAgICAgIGV4 cGFuZF8yaV9pNjQoZG9mcywgYW9mcywgb3Byc3osIGMsIGctPmxvYWRfZGVzdCwgZy0+Zm5pOCk7 CisgICAgICAgICAgICBleHBhbmRfMmlfaTY0KGRiYXNlLCBkb2ZzLCBhYmFzZSwgYW9mcywgb3By c3osIGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGctPmxvYWRfZGVzdCwgZy0+Zm5pOCk7 CiAgICAgICAgIH0gZWxzZSBpZiAoZy0+Zm5pNCAmJiBjaGVja19zaXplX2ltcGwob3Byc3osIDQp KSB7Ci0gICAgICAgICAgICBleHBhbmRfMmlfaTMyKGRvZnMsIGFvZnMsIG9wcnN6LCBjLCBnLT5s b2FkX2Rlc3QsIGctPmZuaTQpOworICAgICAgICAgICAgZXhwYW5kXzJpX2kzMihkYmFzZSwgZG9m cywgYWJhc2UsIGFvZnMsIG9wcnN6LCBjLAorICAgICAgICAgICAgICAgICAgICAgICAgICBnLT5s b2FkX2Rlc3QsIGctPmZuaTQpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKGct PmZubykgewotICAgICAgICAgICAgICAgIHRjZ19nZW5fZ3ZlY18yX29vbChkb2ZzLCBhb2ZzLCBv cHJzeiwgbWF4c3osIGMsIGctPmZubyk7CisgICAgICAgICAgICAgICAgZXhwYW5kXzJfb29sKGRi YXNlLCBkb2ZzLCBhYmFzZSwgYW9mcywgb3Byc3osIG1heHN6LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjLCBnLT5mbm8pOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg ICAgICBUQ0d2X2k2NCB0Y2dfYyA9IHRjZ19jb25zdGFudF9pNjQoYyk7Ci0gICAgICAgICAgICAg ICAgdGNnX2dlbl9ndmVjXzJpX29vbChkb2ZzLCBhb2ZzLCB0Y2dfYywgb3Byc3osCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhzeiwgYywgZy0+Zm5vaSk7CisgICAgICAg ICAgICAgICAgZXhwYW5kXzJpX29vbChkYmFzZSwgZG9mcywgYWJhc2UsIGFvZnMsIHRjZ19jLCBv cHJzeiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heHN6LCBjLCBnLT5mbm9pKTsK ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIG9wcnN6ID0gbWF4c3o7CiAgICAgICAgIH0KQEAg LTEzODIsMTAgKzEzODksMTYgQEAgdm9pZCB0Y2dfZ2VuX2d2ZWNfMmkodWludDMyX3QgZG9mcywg dWludDMyX3QgYW9mcywgdWludDMyX3Qgb3Byc3osCiAgICAgdGNnX3N3YXBfdmVjb3BfbGlzdCho b2xkX2xpc3QpOwogCiAgICAgaWYgKG9wcnN6IDwgbWF4c3opIHsKLSAgICAgICAgZXhwYW5kX2Ns cih0Y2dfZW52LCBkb2ZzICsgb3Byc3osIG1heHN6IC0gb3Byc3opOworICAgICAgICBleHBhbmRf Y2xyKGRiYXNlLCBkb2ZzICsgb3Byc3osIG1heHN6IC0gb3Byc3opOwogICAgIH0KIH0KIAordm9p ZCB0Y2dfZ2VuX2d2ZWNfMmkodWludDMyX3QgZG9mcywgdWludDMyX3QgYW9mcywgdWludDMyX3Qg b3Byc3osCisgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBtYXhzeiwgaW50NjRfdCBjLCBj b25zdCBHVmVjR2VuMmkgKmcpCit7CisgICAgdGNnX2dlbl9ndmVjXzJpX3Zhcih0Y2dfZW52LCBk b2ZzLCB0Y2dfZW52LCBhb2ZzLCBvcHJzeiwgbWF4c3osIGMsIGcpOworfQorCiAvKgogICogRXhw YW5kIGEgdmVjdG9yIG9wZXJhdGlvbiB3aXRoIHR3byB2ZWN0b3JzIGFuZCBhIHNjYWxhciwKICAq IChkYmFzZStkb2ZzKSA9IG9wKGFiYXNlK2FvZnMsIGMpLgpAQCAtMjI3OSw4ICsyMjkyLDEwIEBA IHZvaWQgdGNnX2dlbl9ndmVjX3N1Yih1bnNpZ25lZCB2ZWNlLCB1aW50MzJfdCBkb2ZzLCB1aW50 MzJfdCBhb2ZzLAogCiBzdGF0aWMgY29uc3QgVENHT3Bjb2RlIHZlY29wX2xpc3RfbXVsW10gPSB7 IElOREVYX29wX211bF92ZWMsIDAgfTsKIAotdm9pZCB0Y2dfZ2VuX2d2ZWNfbXVsKHVuc2lnbmVk IHZlY2UsIHVpbnQzMl90IGRvZnMsIHVpbnQzMl90IGFvZnMsCi0gICAgICAgICAgICAgICAgICAg ICAgdWludDMyX3QgYm9mcywgdWludDMyX3Qgb3Byc3osIHVpbnQzMl90IG1heHN6KQordm9pZCB0 Y2dfZ2VuX2d2ZWNfbXVsX3Zhcih1bnNpZ25lZCB2ZWNlLCBUQ0d2X3B0ciBkYmFzZSwgdWludDMy X3QgZG9mcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVENHdl9wdHIgYWJhc2UsIHVpbnQz Ml90IGFvZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFRDR3ZfcHRyIGJiYXNlLCB1aW50 MzJfdCBib2ZzLAorICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBvcHJzeiwgdWlu dDMyX3QgbWF4c3opCiB7CiAgICAgc3RhdGljIGNvbnN0IEdWZWNHZW4zIGdbNF0gPSB7CiAgICAg ICAgIHsgLmZuaXYgPSB0Y2dfZ2VuX211bF92ZWMsCkBAIC0yMzA1LDcgKzIzMjAsMTUgQEAgdm9p ZCB0Y2dfZ2VuX2d2ZWNfbXVsKHVuc2lnbmVkIHZlY2UsIHVpbnQzMl90IGRvZnMsIHVpbnQzMl90 IGFvZnMsCiAgICAgfTsKIAogICAgIHRjZ19kZWJ1Z19hc3NlcnQodmVjZSA8PSBNT182NCk7Ci0g ICAgdGNnX2dlbl9ndmVjXzMoZG9mcywgYW9mcywgYm9mcywgb3Byc3osIG1heHN6LCAmZ1t2ZWNl XSk7CisgICAgdGNnX2dlbl9ndmVjXzNfdmFyKGRiYXNlLCBkb2ZzLCBhYmFzZSwgYW9mcywgYmJh c2UsIGJvZnMsCisgICAgICAgICAgICAgICAgICAgICAgIG9wcnN6LCBtYXhzeiwgJmdbdmVjZV0p OworfQorCit2b2lkIHRjZ19nZW5fZ3ZlY19tdWwodW5zaWduZWQgdmVjZSwgdWludDMyX3QgZG9m cywgdWludDMyX3QgYW9mcywKKyAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBib2ZzLCB1 aW50MzJfdCBvcHJzeiwgdWludDMyX3QgbWF4c3opCit7CisgICAgdGNnX2dlbl9ndmVjX211bF92 YXIodmVjZSwgdGNnX2VudiwgZG9mcywgdGNnX2VudiwgYW9mcywgdGNnX2VudiwgYm9mcywKKyAg ICAgICAgICAgICAgICAgICAgICAgICBvcHJzeiwgbWF4c3opOwogfQogCiB2b2lkIHRjZ19nZW5f Z3ZlY19tdWxzKHVuc2lnbmVkIHZlY2UsIHVpbnQzMl90IGRvZnMsIHVpbnQzMl90IGFvZnMsCkBA IC0yMzQ0LDggKzIzNjcsMTAgQEAgdm9pZCB0Y2dfZ2VuX2d2ZWNfbXVsaSh1bnNpZ25lZCB2ZWNl LCB1aW50MzJfdCBkb2ZzLCB1aW50MzJfdCBhb2ZzLAogICAgIHRjZ19nZW5fZ3ZlY19tdWxzKHZl Y2UsIGRvZnMsIGFvZnMsIHRtcCwgb3Byc3osIG1heHN6KTsKIH0KIAotdm9pZCB0Y2dfZ2VuX2d2 ZWNfc3NhZGQodW5zaWduZWQgdmVjZSwgdWludDMyX3QgZG9mcywgdWludDMyX3QgYW9mcywKLSAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGJvZnMsIHVpbnQzMl90IG9wcnN6LCB1aW50 MzJfdCBtYXhzeikKK3ZvaWQgdGNnX2dlbl9ndmVjX3NzYWRkX3Zhcih1bnNpZ25lZCB2ZWNlLCBU Q0d2X3B0ciBkYmFzZSwgdWludDMyX3QgZG9mcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUQ0d2X3B0ciBhYmFzZSwgdWludDMyX3QgYW9mcywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUQ0d2X3B0ciBiYmFzZSwgdWludDMyX3QgYm9mcywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50MzJfdCBvcHJzeiwgdWludDMyX3QgbWF4c3opCiB7CiAgICAgc3RhdGljIGNv bnN0IFRDR09wY29kZSB2ZWNvcF9saXN0W10gPSB7IElOREVYX29wX3NzYWRkX3ZlYywgMCB9Owog ICAgIHN0YXRpYyBjb25zdCBHVmVjR2VuMyBnWzRdID0gewpAQCAtMjM2NywxMSArMjM5MiwyMSBA QCB2b2lkIHRjZ19nZW5fZ3ZlY19zc2FkZCh1bnNpZ25lZCB2ZWNlLCB1aW50MzJfdCBkb2ZzLCB1 aW50MzJfdCBhb2ZzLAogICAgICAgICAgIC52ZWNlID0gTU9fNjQgfSwKICAgICB9OwogICAgIHRj Z19kZWJ1Z19hc3NlcnQodmVjZSA8PSBNT182NCk7Ci0gICAgdGNnX2dlbl9ndmVjXzMoZG9mcywg YW9mcywgYm9mcywgb3Byc3osIG1heHN6LCAmZ1t2ZWNlXSk7CisgICAgdGNnX2dlbl9ndmVjXzNf dmFyKGRiYXNlLCBkb2ZzLCBhYmFzZSwgYW9mcywgYmJhc2UsIGJvZnMsCisgICAgICAgICAgICAg ICAgICAgICAgIG9wcnN6LCBtYXhzeiwgJmdbdmVjZV0pOwogfQogCi12b2lkIHRjZ19nZW5fZ3Zl Y19zc3N1Yih1bnNpZ25lZCB2ZWNlLCB1aW50MzJfdCBkb2ZzLCB1aW50MzJfdCBhb2ZzLAordm9p ZCB0Y2dfZ2VuX2d2ZWNfc3NhZGQodW5zaWduZWQgdmVjZSwgdWludDMyX3QgZG9mcywgdWludDMy X3QgYW9mcywKICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGJvZnMsIHVpbnQzMl90 IG9wcnN6LCB1aW50MzJfdCBtYXhzeikKK3sKKyAgICB0Y2dfZ2VuX2d2ZWNfc3NhZGRfdmFyKHZl Y2UsIHRjZ19lbnYsIGRvZnMsIHRjZ19lbnYsIGFvZnMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgIHRjZ19lbnYsIGJvZnMsIG9wcnN6LCBtYXhzeik7Cit9CisKK3ZvaWQgdGNnX2dlbl9ndmVj X3Nzc3ViX3Zhcih1bnNpZ25lZCB2ZWNlLCBUQ0d2X3B0ciBkYmFzZSwgdWludDMyX3QgZG9mcywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQ0d2X3B0ciBhYmFzZSwgdWludDMyX3QgYW9m cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQ0d2X3B0ciBiYmFzZSwgdWludDMyX3Qg Ym9mcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBvcHJzeiwgdWludDMy X3QgbWF4c3opCiB7CiAgICAgc3RhdGljIGNvbnN0IFRDR09wY29kZSB2ZWNvcF9saXN0W10gPSB7 IElOREVYX29wX3Nzc3ViX3ZlYywgMCB9OwogICAgIHN0YXRpYyBjb25zdCBHVmVjR2VuMyBnWzRd ID0gewpAQCAtMjM5Myw3ICsyNDI4LDE1IEBAIHZvaWQgdGNnX2dlbl9ndmVjX3Nzc3ViKHVuc2ln bmVkIHZlY2UsIHVpbnQzMl90IGRvZnMsIHVpbnQzMl90IGFvZnMsCiAgICAgICAgICAgLnZlY2Ug PSBNT182NCB9LAogICAgIH07CiAgICAgdGNnX2RlYnVnX2Fzc2VydCh2ZWNlIDw9IE1PXzY0KTsK LSAgICB0Y2dfZ2VuX2d2ZWNfMyhkb2ZzLCBhb2ZzLCBib2ZzLCBvcHJzeiwgbWF4c3osICZnW3Zl Y2VdKTsKKyAgICB0Y2dfZ2VuX2d2ZWNfM192YXIoZGJhc2UsIGRvZnMsIGFiYXNlLCBhb2ZzLCBi YmFzZSwgYm9mcywKKyAgICAgICAgICAgICAgICAgICAgICAgb3Byc3osIG1heHN6LCAmZ1t2ZWNl XSk7Cit9CisKK3ZvaWQgdGNnX2dlbl9ndmVjX3Nzc3ViKHVuc2lnbmVkIHZlY2UsIHVpbnQzMl90 IGRvZnMsIHVpbnQzMl90IGFvZnMsCisgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBi b2ZzLCB1aW50MzJfdCBvcHJzeiwgdWludDMyX3QgbWF4c3opCit7CisgICAgdGNnX2dlbl9ndmVj X3Nzc3ViX3Zhcih2ZWNlLCB0Y2dfZW52LCBkb2ZzLCB0Y2dfZW52LCBhb2ZzLAorICAgICAgICAg ICAgICAgICAgICAgICAgICB0Y2dfZW52LCBib2ZzLCBvcHJzeiwgbWF4c3opOwogfQogCiBzdGF0 aWMgdm9pZCB0Y2dfZ2VuX3VzYWRkX2kzMihUQ0d2X2kzMiBkLCBUQ0d2X2kzMiBhLCBUQ0d2X2kz MiBiKQpAQCAtMjQxMCw4ICsyNDUzLDEwIEBAIHN0YXRpYyB2b2lkIHRjZ19nZW5fdXNhZGRfaTY0 KFRDR3ZfaTY0IGQsIFRDR3ZfaTY0IGEsIFRDR3ZfaTY0IGIpCiAgICAgdGNnX2dlbl9tb3Zjb25k X2k2NChUQ0dfQ09ORF9MVFUsIGQsIGQsIGEsIG1heCwgZCk7CiB9CiAKLXZvaWQgdGNnX2dlbl9n dmVjX3VzYWRkKHVuc2lnbmVkIHZlY2UsIHVpbnQzMl90IGRvZnMsIHVpbnQzMl90IGFvZnMsCi0g ICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBib2ZzLCB1aW50MzJfdCBvcHJzeiwgdWlu dDMyX3QgbWF4c3opCit2b2lkIHRjZ19nZW5fZ3ZlY191c2FkZF92YXIodW5zaWduZWQgdmVjZSwg VENHdl9wdHIgZGJhc2UsIHVpbnQzMl90IGRvZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVENHdl9wdHIgYWJhc2UsIHVpbnQzMl90IGFvZnMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVENHdl9wdHIgYmJhc2UsIHVpbnQzMl90IGJvZnMsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdWludDMyX3Qgb3Byc3osIHVpbnQzMl90IG1heHN6KQogewogICAgIHN0YXRpYyBj b25zdCBUQ0dPcGNvZGUgdmVjb3BfbGlzdFtdID0geyBJTkRFWF9vcF91c2FkZF92ZWMsIDAgfTsK ICAgICBzdGF0aWMgY29uc3QgR1ZlY0dlbjMgZ1s0XSA9IHsKQEAgLTI0MzUsMTEgKzI0ODAsMjEg QEAgdm9pZCB0Y2dfZ2VuX2d2ZWNfdXNhZGQodW5zaWduZWQgdmVjZSwgdWludDMyX3QgZG9mcywg dWludDMyX3QgYW9mcywKICAgICAgICAgICAudmVjZSA9IE1PXzY0IH0KICAgICB9OwogICAgIHRj Z19kZWJ1Z19hc3NlcnQodmVjZSA8PSBNT182NCk7Ci0gICAgdGNnX2dlbl9ndmVjXzMoZG9mcywg YW9mcywgYm9mcywgb3Byc3osIG1heHN6LCAmZ1t2ZWNlXSk7CisgICAgdGNnX2dlbl9ndmVjXzNf dmFyKGRiYXNlLCBkb2ZzLCBhYmFzZSwgYW9mcywgYmJhc2UsIGJvZnMsCisgICAgICAgICAgICAg ICAgICAgICAgIG9wcnN6LCBtYXhzeiwgJmdbdmVjZV0pOwogfQogCi12b2lkIHRjZ19nZW5fZ3Zl Y191c3N1Yih1bnNpZ25lZCB2ZWNlLCB1aW50MzJfdCBkb2ZzLCB1aW50MzJfdCBhb2ZzLAordm9p ZCB0Y2dfZ2VuX2d2ZWNfdXNhZGQodW5zaWduZWQgdmVjZSwgdWludDMyX3QgZG9mcywgdWludDMy X3QgYW9mcywKICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGJvZnMsIHVpbnQzMl90 IG9wcnN6LCB1aW50MzJfdCBtYXhzeikKK3sKKyAgICB0Y2dfZ2VuX2d2ZWNfdXNhZGRfdmFyKHZl Y2UsIHRjZ19lbnYsIGRvZnMsIHRjZ19lbnYsIGFvZnMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgIHRjZ19lbnYsIGJvZnMsIG9wcnN6LCBtYXhzeik7Cit9CisKK3ZvaWQgdGNnX2dlbl9ndmVj X3Vzc3ViX3Zhcih1bnNpZ25lZCB2ZWNlLCBUQ0d2X3B0ciBkYmFzZSwgdWludDMyX3QgZG9mcywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQ0d2X3B0ciBhYmFzZSwgdWludDMyX3QgYW9m cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQ0d2X3B0ciBiYmFzZSwgdWludDMyX3Qg Ym9mcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBvcHJzeiwgdWludDMy X3QgbWF4c3opCiB7CiAgICAgc3RhdGljIGNvbnN0IFRDR09wY29kZSB2ZWNvcF9saXN0W10gPSB7 IElOREVYX29wX3Vzc3ViX3ZlYywgMCB9OwogICAgIHN0YXRpYyBjb25zdCBHVmVjR2VuMyBnWzRd ID0gewpAQCAtMjQ2Myw3ICsyNTE4LDE1IEBAIHZvaWQgdGNnX2dlbl9ndmVjX3Vzc3ViKHVuc2ln bmVkIHZlY2UsIHVpbnQzMl90IGRvZnMsIHVpbnQzMl90IGFvZnMsCiAgICAgICAgICAgLnZlY2Ug PSBNT182NCB9CiAgICAgfTsKICAgICB0Y2dfZGVidWdfYXNzZXJ0KHZlY2UgPD0gTU9fNjQpOwot ICAgIHRjZ19nZW5fZ3ZlY18zKGRvZnMsIGFvZnMsIGJvZnMsIG9wcnN6LCBtYXhzeiwgJmdbdmVj ZV0pOworICAgIHRjZ19nZW5fZ3ZlY18zX3ZhcihkYmFzZSwgZG9mcywgYWJhc2UsIGFvZnMsIGJi YXNlLCBib2ZzLAorICAgICAgICAgICAgICAgICAgICAgICBvcHJzeiwgbWF4c3osICZnW3ZlY2Vd KTsKK30KKwordm9pZCB0Y2dfZ2VuX2d2ZWNfdXNzdWIodW5zaWduZWQgdmVjZSwgdWludDMyX3Qg ZG9mcywgdWludDMyX3QgYW9mcywKKyAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGJv ZnMsIHVpbnQzMl90IG9wcnN6LCB1aW50MzJfdCBtYXhzeikKK3sKKyAgICB0Y2dfZ2VuX2d2ZWNf dXNzdWJfdmFyKHZlY2UsIHRjZ19lbnYsIGRvZnMsIHRjZ19lbnYsIGFvZnMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgIHRjZ19lbnYsIGJvZnMsIG9wcnN6LCBtYXhzeik7CiB9CiAKIHZvaWQg dGNnX2dlbl9ndmVjX3NtaW5fdmFyKHVuc2lnbmVkIHZlY2UsIFRDR3ZfcHRyIGRiYXNlLCB1aW50 MzJfdCBkb2ZzLApAQCAtMzEzMSw4ICszMTk0LDkgQEAgdm9pZCB0Y2dfZ2VuX3ZlY19zaHIxNmlf aTMyKFRDR3ZfaTMyIGQsIFRDR3ZfaTMyIGEsIGludDMyX3QgYykKICAgICB0Y2dfZ2VuX2FuZGlf aTMyKGQsIGQsIG1hc2spOwogfQogCi12b2lkIHRjZ19nZW5fZ3ZlY19zaHJpKHVuc2lnbmVkIHZl Y2UsIHVpbnQzMl90IGRvZnMsIHVpbnQzMl90IGFvZnMsCi0gICAgICAgICAgICAgICAgICAgICAg IGludDY0X3Qgc2hpZnQsIHVpbnQzMl90IG9wcnN6LCB1aW50MzJfdCBtYXhzeikKK3ZvaWQgdGNn X2dlbl9ndmVjX3NocmlfdmFyKHVuc2lnbmVkIHZlY2UsIFRDR3ZfcHRyIGRiYXNlLCB1aW50MzJf dCBkb2ZzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVENHdl9wdHIgYWJhc2UsIHVpbnQz Ml90IGFvZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IHNoaWZ0LCB1aW50 MzJfdCBvcHJzeiwgdWludDMyX3QgbWF4c3opCiB7CiAgICAgc3RhdGljIGNvbnN0IFRDR09wY29k ZSB2ZWNvcF9saXN0W10gPSB7IElOREVYX29wX3NocmlfdmVjLCAwIH07CiAgICAgc3RhdGljIGNv bnN0IEdWZWNHZW4yaSBnWzRdID0gewpAQCAtMzE2MiwxMiArMzIyNiwyMCBAQCB2b2lkIHRjZ19n ZW5fZ3ZlY19zaHJpKHVuc2lnbmVkIHZlY2UsIHVpbnQzMl90IGRvZnMsIHVpbnQzMl90IGFvZnMs CiAgICAgdGNnX2RlYnVnX2Fzc2VydCh2ZWNlIDw9IE1PXzY0KTsKICAgICB0Y2dfZGVidWdfYXNz ZXJ0KHNoaWZ0ID49IDAgJiYgc2hpZnQgPCAoOCA8PCB2ZWNlKSk7CiAgICAgaWYgKHNoaWZ0ID09 IDApIHsKLSAgICAgICAgdGNnX2dlbl9ndmVjX21vdih2ZWNlLCBkb2ZzLCBhb2ZzLCBvcHJzeiwg bWF4c3opOworICAgICAgICB0Y2dfZ2VuX2d2ZWNfbW92X3Zhcih2ZWNlLCBkYmFzZSwgZG9mcywg YWJhc2UsIGFvZnMsIG9wcnN6LCBtYXhzeik7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgdGNnX2dl bl9ndmVjXzJpKGRvZnMsIGFvZnMsIG9wcnN6LCBtYXhzeiwgc2hpZnQsICZnW3ZlY2VdKTsKKyAg ICAgICAgdGNnX2dlbl9ndmVjXzJpX3ZhcihkYmFzZSwgZG9mcywgYWJhc2UsIGFvZnMsIG9wcnN6 LCBtYXhzeiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdCwgJmdbdmVjZV0pOwog ICAgIH0KIH0KIAordm9pZCB0Y2dfZ2VuX2d2ZWNfc2hyaSh1bnNpZ25lZCB2ZWNlLCB1aW50MzJf dCBkb2ZzLCB1aW50MzJfdCBhb2ZzLAorICAgICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IHNo aWZ0LCB1aW50MzJfdCBvcHJzeiwgdWludDMyX3QgbWF4c3opCit7CisgICAgdGNnX2dlbl9ndmVj X3NocmlfdmFyKHZlY2UsIHRjZ19lbnYsIGRvZnMsIHRjZ19lbnYsIGFvZnMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgc2hpZnQsIG9wcnN6LCBtYXhzeik7Cit9CisKIHZvaWQgdGNnX2dlbl92 ZWNfc2FyOGlfaTY0KFRDR3ZfaTY0IGQsIFRDR3ZfaTY0IGEsIGludDY0X3QgYykKIHsKICAgICB1 aW50NjRfdCBzX21hc2sgPSBkdXBfY29uc3QoTU9fOCwgMHg4MCA+PiBjKTsKQEAgLTMyMjQsOCAr MzI5Niw5IEBAIHZvaWQgdGNnX2dlbl92ZWNfc2FyMTZpX2kzMihUQ0d2X2kzMiBkLCBUQ0d2X2kz MiBhLCBpbnQzMl90IGMpCiAgICAgdGNnX3RlbXBfZnJlZV9pMzIocyk7CiB9CiAKLXZvaWQgdGNn X2dlbl9ndmVjX3NhcmkodW5zaWduZWQgdmVjZSwgdWludDMyX3QgZG9mcywgdWludDMyX3QgYW9m cywKLSAgICAgICAgICAgICAgICAgICAgICAgaW50NjRfdCBzaGlmdCwgdWludDMyX3Qgb3Byc3os IHVpbnQzMl90IG1heHN6KQordm9pZCB0Y2dfZ2VuX2d2ZWNfc2FyaV92YXIodW5zaWduZWQgdmVj ZSwgVENHdl9wdHIgZGJhc2UsIHVpbnQzMl90IGRvZnMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICBUQ0d2X3B0ciBhYmFzZSwgdWludDMyX3QgYW9mcywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIGludDY0X3Qgc2hpZnQsIHVpbnQzMl90IG9wcnN6LCB1aW50MzJfdCBtYXhzeikKIHsK ICAgICBzdGF0aWMgY29uc3QgVENHT3Bjb2RlIHZlY29wX2xpc3RbXSA9IHsgSU5ERVhfb3Bfc2Fy aV92ZWMsIDAgfTsKICAgICBzdGF0aWMgY29uc3QgR1ZlY0dlbjJpIGdbNF0gPSB7CkBAIC0zMjU1 LDEyICszMzI4LDIwIEBAIHZvaWQgdGNnX2dlbl9ndmVjX3NhcmkodW5zaWduZWQgdmVjZSwgdWlu dDMyX3QgZG9mcywgdWludDMyX3QgYW9mcywKICAgICB0Y2dfZGVidWdfYXNzZXJ0KHZlY2UgPD0g TU9fNjQpOwogICAgIHRjZ19kZWJ1Z19hc3NlcnQoc2hpZnQgPj0gMCAmJiBzaGlmdCA8ICg4IDw8 IHZlY2UpKTsKICAgICBpZiAoc2hpZnQgPT0gMCkgewotICAgICAgICB0Y2dfZ2VuX2d2ZWNfbW92 KHZlY2UsIGRvZnMsIGFvZnMsIG9wcnN6LCBtYXhzeik7CisgICAgICAgIHRjZ19nZW5fZ3ZlY19t b3ZfdmFyKHZlY2UsIGRiYXNlLCBkb2ZzLCBhYmFzZSwgYW9mcywgb3Byc3osIG1heHN6KTsKICAg ICB9IGVsc2UgewotICAgICAgICB0Y2dfZ2VuX2d2ZWNfMmkoZG9mcywgYW9mcywgb3Byc3osIG1h eHN6LCBzaGlmdCwgJmdbdmVjZV0pOworICAgICAgICB0Y2dfZ2VuX2d2ZWNfMmlfdmFyKGRiYXNl LCBkb2ZzLCBhYmFzZSwgYW9mcywgb3Byc3osIG1heHN6LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNoaWZ0LCAmZ1t2ZWNlXSk7CiAgICAgfQogfQogCit2b2lkIHRjZ19nZW5fZ3ZlY19z YXJpKHVuc2lnbmVkIHZlY2UsIHVpbnQzMl90IGRvZnMsIHVpbnQzMl90IGFvZnMsCisgICAgICAg ICAgICAgICAgICAgICAgIGludDY0X3Qgc2hpZnQsIHVpbnQzMl90IG9wcnN6LCB1aW50MzJfdCBt YXhzeikKK3sKKyAgICB0Y2dfZ2VuX2d2ZWNfc2FyaV92YXIodmVjZSwgdGNnX2VudiwgZG9mcywg dGNnX2VudiwgYW9mcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdCwgb3Byc3osIG1h eHN6KTsKK30KKwogdm9pZCB0Y2dfZ2VuX3ZlY19yb3RsOGlfaTY0KFRDR3ZfaTY0IGQsIFRDR3Zf aTY0IGEsIGludDY0X3QgYykKIHsKICAgICB1aW50NjRfdCBtYXNrID0gZHVwX2NvbnN0KE1PXzgs IDB4ZmYgPDwgYyk7Ci0tIAoyLjM0LjEKCg==