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 lists.gnu.org (lists.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 A1645C36010 for ; Tue, 1 Apr 2025 13:00:39 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tzbE9-0002XP-Fx; Tue, 01 Apr 2025 09:00:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tzbDX-0002Sd-QV for grub-devel@gnu.org; Tue, 01 Apr 2025 08:59:50 -0400 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tzbDR-0007Ct-Af for grub-devel@gnu.org; Tue, 01 Apr 2025 08:59:46 -0400 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-43ce70f9afbso57441135e9.0 for ; Tue, 01 Apr 2025 05:59:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743512377; x=1744117177; darn=gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=GL7OEJe+bGXJM/ihneXRyQauMW963wzgIvovkDjyCB4=; b=W58X97wbL9MKB2tCTRA4LDz/uovyMYV4Q8qc+8MrEzZort5gonzWEGjxdTwK8Wgch/ RnvDHim6ZmY+izQ3lpRWTs2bePANMSyp4zsbQfk3u7aLFYuOjtpxT/U6438vXnx2YIwJ PsjaVcg8cUkotkKPFxU8IP2mxYcOmAEdOssBYmsgQYtOyspUaVTUAXUNL8RtnTNwTRql AdTbI7OedsB4d6lBGIxMEI4brP/e0bish3W0cZ4pEJ2HmdrDPDjuOCMiZl0RhwI2UNJv R/rdzBCkOsM08KtEEIRRue4uI4NB31LX5DTn0KNqtUDxwWhaHSNb1RN7L1zqVXO5jtV+ ufYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743512377; x=1744117177; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GL7OEJe+bGXJM/ihneXRyQauMW963wzgIvovkDjyCB4=; b=EWGRQBoBamtsuRkNUqhJuVc92gGl525vrE5/mk8LE5DfOfSsnx0QjBKydSN2flFa66 QkqkMZBKI/W6+iDp11ZGJVSub3k2/JMTkSIOepFgJosgFdVmCF24zwz2vNhhzIicAr8a G54LSIEUoN1k3zCXq8EMXN5xEWAKn0ccjRYbubJ+HQ2H0o4s3hAQgA12P4vCJaL3aBk3 OYAjqcI9lr25ofuwLkkJ/fLIbMj+4R4a29V8kl8DTqEB31Lc4Qs3GK/Qkl2G6hjvcvj4 SuqAC65cUpzUByEyGldjarX/t5cDBGS/nNKHjTRkEJtlb+ggB0Sqz2SITTjL7ct+yGBi FK0g== X-Gm-Message-State: AOJu0YwnpqPlnT1yM+KB9hFvRIV2ojchBgh8bOxL78Spe8MAZi9iMo7J ECVMKMmziGvv9J1bAEA1yQqmhkRkZ1DRs72UepE2LJ59PJegaRU3jg9SsfWZ X-Gm-Gg: ASbGncsUO5LAUIeFZ+4uxqTwKIhxNXj3bOKo8FvgyhPs9vRJ7YXl/LDHGdG7YdfA1OD pL2Fy+1uIgRbpijLhRpnSiE4mh7JZqaaML55mK8lYoqpeY/PRbiD9l5YVvNHupeLQdBI99cwJO3 pH0MZ1E06bMgqJ4uEWH7yTnihQ2KEErwBxeGLfbhrU3Jmr2QuhPPUnmzTOyb9dEVcjZ3U4NHGfy 9e/thO59pq3fHSMHvia7mbQ+A56zwicIud1lIkt93QrjpoyM1Sny6q6VtUhkJhvcVawzmIaF20X A3AA470czh5/htPDkFKCF7dgBgbIUOsYcTCMLQWMK5sUVbI= X-Google-Smtp-Source: AGHT+IFoEDiLo5FqdptdJ53+ibV6FU5hw9ydykYIoRsBM6U6krs4G6zR+ujhJwbRsZi0Etx4x8TPIQ== X-Received: by 2002:a05:600c:474a:b0:43d:7588:6688 with SMTP id 5b1f17b1804b1-43db622a023mr123440815e9.12.1743512375907; Tue, 01 Apr 2025 05:59:35 -0700 (PDT) Received: from localhost ([5.166.23.113]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43d82efe389sm197400405e9.19.2025.04.01.05.59.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Apr 2025 05:59:35 -0700 (PDT) From: Vladimir Serbinenko To: grub-devel@gnu.org Cc: Vladimir Serbinenko Subject: [PATCH 3/7] Adjust import script, definitions and API users for libgcrypt 1.10 Date: Tue, 1 Apr 2025 15:58:54 +0300 Message-ID: <20250401125921.2794962-3-phcoder@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250401125921.2794962-1-phcoder@gmail.com> References: <20250401125921.2794962-1-phcoder@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32d; envelope-from=phcoder@gmail.com; helo=mail-wm1-x32d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org U2lnbmVkLW9mZi1ieTogVmxhZGltaXIgU2VyYmluZW5rbyA8cGhjb2RlckBnbWFpbC5jb20+Ci0t LQogYXV0b2dlbi5zaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArLQog Y29uZi9NYWtlZmlsZS5jb21tb24gICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogZ3J1 Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmICAgICAgICAgICAgICAgICB8ICAzNiArKy0KIGdydWIt Y29yZS9jb21tYW5kcy9oYXNoc3VtLmMgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGdydWItY29y ZS9jb21tYW5kcy9sZWdhY3ljZmcuYyAgICAgICAgICAgICAgfCAgIDYgKy0KIGdydWItY29yZS9j b21tYW5kcy9wZ3AuYyAgICAgICAgICAgICAgICAgICAgfCAxMTQgKysrLS0tLS0tCiBncnViLWNv cmUvY29tbWFuZHMveG51X3V1aWQuYyAgICAgICAgICAgICAgIHwgICAyICstCiBncnViLWNvcmUv ZGlzay9jcnlwdG9kaXNrLmMgICAgICAgICAgICAgICAgIHwgICAyICstCiBncnViLWNvcmUvaW8v Z3ppby5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBncnViLWNvcmUvaW8vbHpv cGlvLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBncnViLWNvcmUvbGliL2FkbGVy MzIuYyAgICAgICAgICAgICAgICAgICAgIHwgIDIxICstCiBncnViLWNvcmUvbGliL2NyYzY0LmMg ICAgICAgICAgICAgICAgICAgICAgIHwgIDI0ICstCiBncnViLWNvcmUvbGliL2NyeXB0by5jICAg ICAgICAgICAgICAgICAgICAgIHwgMjQ1ICsrKysrKysrKysrKysrKysrLQogZ3J1Yi1jb3JlL2xp Yi9saWJnY3J5cHQtcGF0Y2hlcy8wMV9tZC5wYXRjaCB8IDE0MSArKysrKysrKysrKwogZ3J1Yi1j b3JlL2xpYi9saWJnY3J5cHQvc3JjL2djcnlwdC1pbnQuaCAgICB8ICA1MSAtLS0tCiBncnViLWNv cmUvbGliL2xpYmdjcnlwdF93cmFwL2NpcGhlcl93cmFwLmggIHwgIDEzICstCiBncnViLWNvcmUv bGliL2xpYmdjcnlwdF93cmFwL21lbS5jICAgICAgICAgIHwgIDgzICsrKysrKy0KIGdydWItY29y ZS9saWIvcG9zaXhfd3JhcC9zeXMvdHlwZXMuaCAgICAgICAgfCAgIDQgKwogZ3J1Yi1jb3JlL2xp Yi94emVtYmVkL3h6X2RlY19zdHJlYW0uYyAgICAgICB8ICAxOCArLQogaW5jbHVkZS9ncnViL2Ny eXB0by5oICAgICAgICAgICAgICAgICAgICAgICB8IDI2MSArKysrKysrKysrKysrKysrLS0tLQog aW5jbHVkZS9ncnViL2djcnlwdC9ncGctZXJyb3IuaCAgICAgICAgICAgICB8ICAgOSArCiB1dGls L2dydWItZnN0ZXN0LmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiB1dGlsL2lt cG9ydF9nY3J5LnB5ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTc3ICsrKysrKysrLS0tLS0K IHV0aWwvaW1wb3J0X2djcnlwdF9pbnRoLnNlZCAgICAgICAgICAgICAgICAgfCAgMTcgKysKIHV0 aWwvaW1wb3J0X2djcnlwdGguc2VkICAgICAgICAgICAgICAgICAgICAgfCAgIDIgLQogMjUgZmls ZXMgY2hhbmdlZCwgOTY1IGluc2VydGlvbnMoKyksIDI4MCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt b2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xpYmdjcnlwdC1wYXRjaGVzLzAxX21kLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgdXRpbC9pbXBvcnRfZ2NyeXB0X2ludGguc2VkCgpkaWZmIC0tZ2l0 IGEvYXV0b2dlbi5zaCBiL2F1dG9nZW4uc2gKaW5kZXggZWJkNjE0NzkyLi5mMzE5NzY3OWIgMTAw NzU1Ci0tLSBhL2F1dG9nZW4uc2gKKysrIGIvYXV0b2dlbi5zaApAQCAtMzUsNiArMzUsNyBAQCAk e1BZVEhPTn0gdXRpbC9pbXBvcnRfdW5pY29kZS5weSB1bmljb2RlL1VuaWNvZGVEYXRhLnR4dCB1 bmljb2RlL0JpZGlNaXJyb3JpbmcudAogZWNobyAiSW1wb3J0aW5nIGxpYmdjcnlwdC4uLiIKICR7 UFlUSE9OfSB1dGlsL2ltcG9ydF9nY3J5LnB5IGdydWItY29yZS9saWIvbGliZ2NyeXB0LyBncnVi LWNvcmUKIHNlZCAtbiAtZiB1dGlsL2ltcG9ydF9nY3J5cHRoLnNlZCA8IGdydWItY29yZS9saWIv bGliZ2NyeXB0L3NyYy9nY3J5cHQuaC5pbiA+IGluY2x1ZGUvZ3J1Yi9nY3J5cHQvZ2NyeXB0LmgK K3NlZCAtbiAtZiB1dGlsL2ltcG9ydF9nY3J5cHRfaW50aC5zZWQgPCBncnViLWNvcmUvbGliL2xp YmdjcnlwdC9zcmMvZ2NyeXB0LWludC5oID4+IGluY2x1ZGUvZ3J1Yi9nY3J5cHQvZ2NyeXB0LmgK IGlmIFsgLWYgaW5jbHVkZS9ncnViL2djcnlwdC9nMTBsaWIuaCBdOyB0aGVuCiAgICAgcm0gaW5j bHVkZS9ncnViL2djcnlwdC9nMTBsaWIuaAogZmkKQEAgLTUxLDYgKzUyLDEwIEBAIGZvciB4IGlu IG1waS1hc20tZGVmcy5oIG1waWgtYWRkMS5jIG1waWgtc3ViMS5jIG1waWgtbXVsMS5jIG1waWgt bXVsMi5jIG1waWgtbXVsCiAgICAgY3AgZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9tcGkv Z2VuZXJpYy8iJHgiIGdydWItY29yZS9saWIvbGliZ2NyeXB0LWdydWIvbXBpLyIkeCIKIGRvbmUK IAorZm9yIHggaW4gZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8qLnBhdGNoOyBkbwor ICAgIHBhdGNoIC1pICR4IC1wMQorZG9uZQorCiBlY2hvICJJbXBvcnRpbmcgbGlidGFzbjEuLi4i CiBpZiBbIC1kIGdydWItY29yZS9saWIvbGlidGFzbjEtZ3J1YiBdOyB0aGVuCiAgIHJtIC1yZiBn cnViLWNvcmUvbGliL2xpYnRhc24xLWdydWIKQEAgLTgxLDcgKzg2LDcgQEAgZm9yIHBhdGNoIGlu IFwKIAkwMDExLWFzbjFfdGVzdC1wcmludC10aGUtZXJyb3ItbWVzc2FnZXMtd2l0aC1ncnViX3By aW50Zi5wYXRjaCBcCiAJMDAxMi1hc24xX3Rlc3QtdXNlLXRoZS1ncnViLXNwZWNpZmljLWZ1bmN0 aW9ucy1hbmQtdHlwZXMucGF0Y2ggXAogCTAwMTMtYXNuMV90ZXN0LWVuYWJsZS10aGUtdGVzdGNh c2Utb25seS13aGVuLUdSVUJfTE9OR19NQS5wYXRjaCA7IGRvCi0gIHBhdGNoIC1wMSAtaSBncnVi LWNvcmUvbGliL2xpYnRhc24xLXBhdGNoZXMvJHBhdGNoCisgICAgcGF0Y2ggLXAxIC1pIGdydWIt Y29yZS9saWIvbGlidGFzbjEtcGF0Y2hlcy8kcGF0Y2gKIGRvbmUKIAogZWNobyAiR2VuZXJhdGlu ZyBBdXRvbWFrZSBpbnB1dC4uLiIKZGlmZiAtLWdpdCBhL2NvbmYvTWFrZWZpbGUuY29tbW9uIGIv Y29uZi9NYWtlZmlsZS5jb21tb24KaW5kZXggYzYwZjU1Mzg2Li41Y2FkYTQ1NjggMTAwNjQ0Ci0t LSBhL2NvbmYvTWFrZWZpbGUuY29tbW9uCisrKyBiL2NvbmYvTWFrZWZpbGUuY29tbW9uCkBAIC04 MSw4ICs4MSw4IEBAIENQUEZMQUdTX0dOVUxJQiA9IC1JJCh0b3BfYnVpbGRkaXIpL2dydWItY29y ZS9saWIvZ251bGliIC1JJCh0b3Bfc3JjZGlyKS9ncnViLWNvCiBDRkxBR1NfUE9TSVggPSAtZm5v LWJ1aWx0aW4KIENQUEZMQUdTX1BPU0lYID0gLUkkKHRvcF9zcmNkaXIpL2dydWItY29yZS9saWIv cG9zaXhfd3JhcAogCi1DRkxBR1NfR0NSWSA9IC1Xbm8tZXJyb3IgLVduby1taXNzaW5nLWZpZWxk LWluaXRpYWxpemVycyAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXVuZGVmICQoQ0ZMQUdTX1BP U0lYKQotQ1BQRkxBR1NfR0NSWSA9IC1JJCh0b3Bfc3JjZGlyKS9ncnViLWNvcmUvbGliL2xpYmdj cnlwdF93cmFwICQoQ1BQRkxBR1NfUE9TSVgpIC1EX0dDUllQVF9JTl9MSUJHQ1JZUFQ9MSAtSSQo dG9wX3NyY2RpcikvaW5jbHVkZS9ncnViL2djcnlwdAorQ0ZMQUdTX0dDUlkgPSAtV25vLWVycm9y PXNpZ24tY29tcGFyZSAtV25vLW1pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzIC1Xbm8tcmVkdW5k YW50LWRlY2xzIC1Xbm8tdW5kZWYgJChDRkxBR1NfUE9TSVgpCitDUFBGTEFHU19HQ1JZID0gLUkk KHRvcF9zcmNkaXIpL2dydWItY29yZS9saWIvbGliZ2NyeXB0X3dyYXAgJChDUFBGTEFHU19QT1NJ WCkgLURfR0NSWVBUX0lOX0xJQkdDUllQVD0xIC1EX0dDUllQVF9DT05GSUdfSF9JTkNMVURFRD0x IC1ESEFWRV9TVFJUT1VMPTEgLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUvZ3J1Yi9nY3J5cHQKIAog Q1BQRkxBR1NfRUZJRU1VID0gLUkkKHRvcF9zcmNkaXIpL2dydWItY29yZS9lZmllbXUvcnVudGlt ZQogCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvTWFrZWZpbGUuY29yZS5kZWYgYi9ncnViLWNvcmUv TWFrZWZpbGUuY29yZS5kZWYKaW5kZXggZjcwZTAyZTY5Li43NzBmNmUwYzUgMTAwNjQ0Ci0tLSBh L2dydWItY29yZS9NYWtlZmlsZS5jb3JlLmRlZgorKysgYi9ncnViLWNvcmUvTWFrZWZpbGUuY29y ZS5kZWYKQEAgLTk3NSw4ICs5NzUsOCBAQCBtb2R1bGUgPSB7CiBtb2R1bGUgPSB7CiAgIG5hbWUg PSBwZ3A7CiAgIGNvbW1vbiA9IGNvbW1hbmRzL3BncC5jOwotICBjZmxhZ3MgPSAnJChDRkxBR1Nf UE9TSVgpJzsKLSAgY3BwZmxhZ3MgPSAnLUkkKHNyY2RpcikvbGliL3Bvc2l4X3dyYXAnOworICBj ZmxhZ3MgPSAnJChDRkxBR1NfR0NSWSkgLVduby1yZWR1bmRhbnQtZGVjbHMgLVduby1zaWduLWNv bXBhcmUnOworICBjcHBmbGFncyA9ICckKENQUEZMQUdTX0dDUlkpJzsKIH07CiAKIG1vZHVsZSA9 IHsKQEAgLTIxODAsNiArMjE4MCwyMiBAQCBtb2R1bGUgPSB7CiAgIGNvbW1vbiA9IHRlc3RzL3Nl dGptcF90ZXN0LmM7CiB9OwogCittb2R1bGUgPSB7CisgIG5hbWUgPSBkc2Ffc2V4cF90ZXN0Owor ICBjb21tb24gPSB0ZXN0cy9kc2Ffc2V4cF90ZXN0LmM7CisKKyAgY2ZsYWdzID0gJyQoQ0ZMQUdT X0dDUlkpIC1Xbm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8tc2lnbi1jb21wYXJlJzsKKyAgY3BwZmxh Z3MgPSAnJChDUFBGTEFHU19HQ1JZKSc7Cit9OworCittb2R1bGUgPSB7CisgIG5hbWUgPSByc2Ff c2V4cF90ZXN0OworICBjb21tb24gPSB0ZXN0cy9yc2Ffc2V4cF90ZXN0LmM7CisKKyAgY2ZsYWdz ID0gJyQoQ0ZMQUdTX0dDUlkpIC1Xbm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8tc2lnbi1jb21wYXJl JzsKKyAgY3BwZmxhZ3MgPSAnJChDUFBGTEFHU19HQ1JZKSc7Cit9OworCiBtb2R1bGUgPSB7CiAg IG5hbWUgPSBzaWduYXR1cmVfdGVzdDsKICAgY29tbW9uID0gdGVzdHMvc2lnbmF0dXJlX3Rlc3Qu YzsKQEAgLTI1MzQsNyArMjU1MCwyMyBAQCBtb2R1bGUgPSB7CiAgIGNvbW1vbiA9IGxpYi9saWJn Y3J5cHQtZ3J1Yi9tcGkvbXBpY29kZXIuYzsKICAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnVi L21waS9tcGloLXJzaGlmdC5jOwogICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdydWIvbXBpL21w aS1pbmxpbmUuYzsKKyAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL21waS9tcGloLWNvbnN0 LXRpbWUuYzsKKyAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL21waS9tcGktc2Nhbi5jOwor ICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdydWIvc3JjL2NvbnN0LXRpbWUuYzsKICAgY29tbW9u ID0gbGliL2xpYmdjcnlwdF93cmFwL21lbS5jOworICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdy dWIvY2lwaGVyL21kLmM7CisKKyAgY2ZsYWdzID0gJyQoQ0ZMQUdTX0dDUlkpIC1Xbm8tcmVkdW5k YW50LWRlY2xzIC1Xbm8tc2lnbi1jb21wYXJlIC1Xbm8tdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUn OworICBjcHBmbGFncyA9ICckKENQUEZMQUdTX0dDUlkpJzsKK307CisKK21vZHVsZSA9IHsKKyAg bmFtZSA9IHB1YmtleTsKKyAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9wdWJr ZXktdXRpbC5jOworICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdydWIvY2lwaGVyL3JzYS1jb21t b24uYzsKKyAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9kc2EtY29tbW9uLmM7 CisgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHQtZ3J1Yi9zcmMvc2V4cC5jOworICBjb21tb24gPSBs aWIvYjY0ZGVjLmM7CiAKICAgY2ZsYWdzID0gJyQoQ0ZMQUdTX0dDUlkpIC1Xbm8tcmVkdW5kYW50 LWRlY2xzIC1Xbm8tc2lnbi1jb21wYXJlJzsKICAgY3BwZmxhZ3MgPSAnJChDUFBGTEFHU19HQ1JZ KSc7CmRpZmYgLS1naXQgYS9ncnViLWNvcmUvY29tbWFuZHMvaGFzaHN1bS5jIGIvZ3J1Yi1jb3Jl L2NvbW1hbmRzL2hhc2hzdW0uYwppbmRleCBkNTZiNWIwYmIuLmI2ZjhlM2QxYSAxMDA2NDQKLS0t IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL2hhc2hzdW0uYworKysgYi9ncnViLWNvcmUvY29tbWFuZHMv aGFzaHN1bS5jCkBAIC03Myw3ICs3Myw3IEBAIGhhc2hfZmlsZSAoZ3J1Yl9maWxlX3QgZmlsZSwg Y29uc3QgZ2NyeV9tZF9zcGVjX3QgKmhhc2gsIHZvaWQgKnJlc3VsdCkKICAgaWYgKCFyZWFkYnVm IHx8ICFjb250ZXh0KQogICAgIGdvdG8gZmFpbDsKIAotICBoYXNoLT5pbml0IChjb250ZXh0KTsK KyAgaGFzaC0+aW5pdCAoY29udGV4dCwgMCk7CiAgIHdoaWxlICgxKQogICAgIHsKICAgICAgIGdy dWJfc3NpemVfdCByOwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL2xlZ2FjeWNmZy5j IGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL2xlZ2FjeWNmZy5jCmluZGV4IDNiZjlmZTJlNC4uYTc2OGZh NmU4IDEwMDY0NAotLS0gYS9ncnViLWNvcmUvY29tbWFuZHMvbGVnYWN5Y2ZnLmMKKysrIGIvZ3J1 Yi1jb3JlL2NvbW1hbmRzL2xlZ2FjeWNmZy5jCkBAIC02MjQsNyArNjI0LDcgQEAgY2hlY2tfcGFz c3dvcmRfbWQ1X3JlYWwgKGNvbnN0IGNoYXIgKmVudGVyZWQsCiAgIGlmICghY3R4KQogICAgIHJl dHVybiAwOwogCi0gIEdSVUJfTURfTUQ1LT5pbml0IChjdHgpOworICBHUlVCX01EX01ENS0+aW5p dCAoY3R4LCAwKTsKICAgR1JVQl9NRF9NRDUtPndyaXRlIChjdHgsIGVudGVyZWQsIGVudGVyZWRs ZW4pOwogICBHUlVCX01EX01ENS0+d3JpdGUgKGN0eCwgcHctPnNhbHQgKyAzLCBwdy0+c2FsdGxl biAtIDMpOwogICBHUlVCX01EX01ENS0+d3JpdGUgKGN0eCwgZW50ZXJlZCwgZW50ZXJlZGxlbik7 CkBAIC02MzIsNyArNjMyLDcgQEAgY2hlY2tfcGFzc3dvcmRfbWQ1X3JlYWwgKGNvbnN0IGNoYXIg KmVudGVyZWQsCiAgIEdSVUJfTURfTUQ1LT5maW5hbCAoY3R4KTsKICAgZ3J1Yl9tZW1jcHkgKGFs dF9yZXN1bHQsIGRpZ2VzdCwgTUQ1X0hBU0hMRU4pOwogCi0gIEdSVUJfTURfTUQ1LT5pbml0IChj dHgpOworICBHUlVCX01EX01ENS0+aW5pdCAoY3R4LCAwKTsKICAgR1JVQl9NRF9NRDUtPndyaXRl IChjdHgsIGVudGVyZWQsIGVudGVyZWRsZW4pOwogICBHUlVCX01EX01ENS0+d3JpdGUgKGN0eCwg cHctPnNhbHQsIHB3LT5zYWx0bGVuKTsgLyogaW5jbHVkZSB0aGUgJDEkIGhlYWRlciAqLwogICBm b3IgKGkgPSBlbnRlcmVkbGVuOyBpID4gMTY7IGkgLT0gMTYpCkBAIC02NDgsNyArNjQ4LDcgQEAg Y2hlY2tfcGFzc3dvcmRfbWQ1X3JlYWwgKGNvbnN0IGNoYXIgKmVudGVyZWQsCiAgICAgewogICAg ICAgZ3J1Yl9tZW1jcHkgKGFsdF9yZXN1bHQsIGRpZ2VzdCwgMTYpOwogCi0gICAgICBHUlVCX01E X01ENS0+aW5pdCAoY3R4KTsKKyAgICAgIEdSVUJfTURfTUQ1LT5pbml0IChjdHgsIDApOwogICAg ICAgaWYgKChpICYgMSkgIT0gMCkKIAlHUlVCX01EX01ENS0+d3JpdGUgKGN0eCwgZW50ZXJlZCwg ZW50ZXJlZGxlbik7CiAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvY29tbWFuZHMv cGdwLmMgYi9ncnViLWNvcmUvY29tbWFuZHMvcGdwLmMKaW5kZXggNWZhZGMzM2M0Li5lNjE4ODc4 NjIgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9jb21tYW5kcy9wZ3AuYworKysgYi9ncnViLWNvcmUv Y29tbWFuZHMvcGdwLmMKQEAgLTEzNiw0MSArMTM2LDI3IEBAIHN0cnVjdCBzaWduYXR1cmVfdjRf aGVhZGVyCiAgIGdydWJfdWludDE2X3QgaGFzaGVkX3N1YjsKIH0gR1JVQl9QQUNLRUQ7CiAKLWNv bnN0IGNoYXIgKmhhc2hlc1tdID0gewotICBbMHgwMV0gPSAibWQ1IiwKLSAgWzB4MDJdID0gInNo YTEiLAotICBbMHgwM10gPSAicmlwZW1kMTYwIiwKLSAgWzB4MDhdID0gInNoYTI1NiIsCi0gIFsw eDA5XSA9ICJzaGEzODQiLAotICBbMHgwYV0gPSAic2hhNTEyIiwKLSAgWzB4MGJdID0gInNoYTIy NCIKLX07Ci0KIHN0cnVjdCBnY3J5X3BrX3NwZWMgKmdydWJfY3J5cHRvX3BrX2RzYTsKIHN0cnVj dCBnY3J5X3BrX3NwZWMgKmdydWJfY3J5cHRvX3BrX2VjZHNhOwogc3RydWN0IGdjcnlfcGtfc3Bl YyAqZ3J1Yl9jcnlwdG9fcGtfcnNhOwogCi1zdGF0aWMgaW50Ci1kc2FfcGFkIChnY3J5X21waV90 ICpobXBpLCBncnViX3VpbnQ4X3QgKmh2YWwsCi0JIGNvbnN0IGdjcnlfbWRfc3BlY190ICpoYXNo LCBzdHJ1Y3QgZ3J1Yl9wdWJsaWNfc3Via2V5ICpzayk7Ci1zdGF0aWMgaW50Ci1yc2FfcGFkIChn Y3J5X21waV90ICpobXBpLCBncnViX3VpbnQ4X3QgKmh2YWwsCi0JIGNvbnN0IGdjcnlfbWRfc3Bl Y190ICpoYXNoLCBzdHJ1Y3QgZ3J1Yl9wdWJsaWNfc3Via2V5ICpzayk7Ci0KIHN0cnVjdAogewog ICBjb25zdCBjaGFyICpuYW1lOworICBjb25zdCBjaGFyICpzaWdzZXhwOwogICBncnViX3NpemVf dCBubXBpc2lnOworICBjb25zdCBjaGFyICpwdWJzZXhwOwogICBncnViX3NpemVfdCBubXBpcHVi OwogICBzdHJ1Y3QgZ2NyeV9wa19zcGVjICoqYWxnbzsKLSAgaW50ICgqcGFkKSAoZ2NyeV9tcGlf dCAqaG1waSwgZ3J1Yl91aW50OF90ICpodmFsLAotCSAgICAgIGNvbnN0IGdjcnlfbWRfc3BlY190 ICpoYXNoLCBzdHJ1Y3QgZ3J1Yl9wdWJsaWNfc3Via2V5ICpzayk7CisgIGNvbnN0IGNoYXIgKnBh ZGRpbmc7CiAgIGNvbnN0IGNoYXIgKm1vZHVsZTsKIH0gcGthbGdvc1tdID0KICAgewotICAgIFsx XSA9IHsgInJzYSIsIDEsIDIsICZncnViX2NyeXB0b19wa19yc2EsIHJzYV9wYWQsICJnY3J5X3Jz YSIgfSwKLSAgICBbM10gPSB7ICJyc2EiLCAxLCAyLCAmZ3J1Yl9jcnlwdG9fcGtfcnNhLCByc2Ff cGFkLCAiZ2NyeV9yc2EiIH0sCi0gICAgWzE3XSA9IHsgImRzYSIsIDIsIDQsICZncnViX2NyeXB0 b19wa19kc2EsIGRzYV9wYWQsICJnY3J5X2RzYSIgfSwKKyAgICBbMV0gPSB7ICJyc2EiLCAiKHNp Zy12YWwgKHJzYSAocyAlTSkpKSIsIDEsICIocHVibGljLWtleSAoZHNhIChuICVNKSAoZSAlTSkp KSIsIDIsICZncnViX2NyeXB0b19wa19yc2EsICJwa2NzMSIsICJnY3J5X3JzYSIgfSwKKyAgICBb M10gPSB7ICJyc2EiLCAiKHNpZy12YWwgKHJzYSAocyAlTSkpKSIsIDEsICIocHVibGljLWtleSAo ZHNhIChuICVNKSAoZSAlTSkpKSIsIDIsICZncnViX2NyeXB0b19wa19yc2EsICJwa2NzMSIsICJn Y3J5X3JzYSIgfSwKKyAgICBbMTddID0geyAiZHNhIiwgIihzaWctdmFsIChkc2EgKHIgJU0pIChz ICVNKSkpIiwgMiwKKwkgICAgICIocHVibGljLWtleSAoZHNhIChwICVNKSAocSAlTSkgKGcgJU0p ICh5ICVNKSkpIiwKKwkgICAgIDQsICZncnViX2NyeXB0b19wa19kc2EsICJyYXciLCAiZ2NyeV9k c2EiIH0sCiAgIH07CiAKIHN0cnVjdCBncnViX3B1YmxpY19rZXkKQEAgLTE5Niw3ICsxODIsNyBA QCBmcmVlX3BrIChzdHJ1Y3QgZ3J1Yl9wdWJsaWNfa2V5ICpwaykKICAgICAgIGdydWJfc2l6ZV90 IGk7CiAgICAgICBmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSAoc2stPm1waXMpOyBpKyspCiAJ aWYgKHNrLT5tcGlzW2ldKQotCSAgZ2NyeV9tcGlfcmVsZWFzZSAoc2stPm1waXNbaV0pOworCSAg X2djcnlfbXBpX3JlbGVhc2UgKHNrLT5tcGlzW2ldKTsKICAgICAgIG5zayA9IHNrLT5uZXh0Owog ICAgICAgZ3J1Yl9mcmVlIChzayk7CiAgICAgfQpAQCAtMzAzLDcgKzI4OSw3IEBAIGdydWJfbG9h ZF9wdWJsaWNfa2V5IChncnViX2ZpbGVfdCBmKQogCWdvdG8gZmFpbDsKIAogICAgICAgZ3J1Yl9t ZW1zZXQgKGZpbmdlcnByaW50X2NvbnRleHQsIDAsIEdSVUJfTURfU0hBMS0+Y29udGV4dHNpemUp OwotICAgICAgR1JVQl9NRF9TSEExLT5pbml0IChmaW5nZXJwcmludF9jb250ZXh0KTsKKyAgICAg IEdSVUJfTURfU0hBMS0+aW5pdCAoZmluZ2VycHJpbnRfY29udGV4dCwgMCk7CiAgICAgICBHUlVC X01EX1NIQTEtPndyaXRlIChmaW5nZXJwcmludF9jb250ZXh0LCAiXHg5OSIsIDEpOwogICAgICAg bGVuX2JlID0gZ3J1Yl9jcHVfdG9fYmUxNiAobGVuKTsKICAgICAgIEdSVUJfTURfU0hBMS0+d3Jp dGUgKGZpbmdlcnByaW50X2NvbnRleHQsICZsZW5fYmUsIHNpemVvZiAobGVuX2JlKSk7CkBAIC0z MzYsNyArMzIyLDcgQEAgZ3J1Yl9sb2FkX3B1YmxpY19rZXkgKGdydWJfZmlsZV90IGYpCiAKIAkg IEdSVUJfTURfU0hBMS0+d3JpdGUgKGZpbmdlcnByaW50X2NvbnRleHQsIGJ1ZmZlciwgbGIgKyBz aXplb2YgKGdydWJfdWludDE2X3QpKTsKIAotCSAgaWYgKGdjcnlfbXBpX3NjYW4gKCZzay0+bXBp c1tpXSwgR0NSWU1QSV9GTVRfUEdQLAorCSAgaWYgKF9nY3J5X21waV9zY2FuICgmc2stPm1waXNb aV0sIEdDUllNUElfRk1UX1BHUCwKIAkJCSAgICAgYnVmZmVyLCBsYiArIHNpemVvZiAoZ3J1Yl91 aW50MTZfdCksIDApKQogCSAgICB7CiAJICAgICAgZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX1NJ R05BVFVSRSwgTl8oImJhZCBzaWduYXR1cmUiKSk7CkBAIC0zOTQsNTEgKzM4MCw2IEBAIGdydWJf Y3J5cHRvX3BrX2xvY2F0ZV9zdWJrZXlfaW5fdHJ1c3RkYiAoZ3J1Yl91aW50NjRfdCBrZXlpZCkK ICAgcmV0dXJuIDA7CiB9CiAKLQotc3RhdGljIGludAotZHNhX3BhZCAoZ2NyeV9tcGlfdCAqaG1w aSwgZ3J1Yl91aW50OF90ICpodmFsLAotCSBjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgc3Ry dWN0IGdydWJfcHVibGljX3N1YmtleSAqc2spCi17Ci0gIHVuc2lnbmVkIG5iaXRzID0gZ2NyeV9t cGlfZ2V0X25iaXRzIChzay0+bXBpc1sxXSk7Ci0gIGdydWJfZHByaW50ZiAoImNyeXB0IiwgIm11 c3QgYmUgJXUgYml0cyBnb3QgJWQgYml0c1xuIiwgbmJpdHMsCi0JCShpbnQpKDggKiBoYXNoLT5t ZGxlbikpOwotICByZXR1cm4gZ2NyeV9tcGlfc2NhbiAoaG1waSwgR0NSWU1QSV9GTVRfVVNHLCBo dmFsLAotCQkJbmJpdHMgLyA4IDwgKHVuc2lnbmVkKSBoYXNoLT5tZGxlbiA/IG5iaXRzIC8gOAot CQkJOiAodW5zaWduZWQpIGhhc2gtPm1kbGVuLCAwKTsKLX0KLQotc3RhdGljIGludAotcnNhX3Bh ZCAoZ2NyeV9tcGlfdCAqaG1waSwgZ3J1Yl91aW50OF90ICpodmFsLAotCSBjb25zdCBnY3J5X21k X3NwZWNfdCAqaGFzaCwgc3RydWN0IGdydWJfcHVibGljX3N1YmtleSAqc2spCi17Ci0gIGdydWJf c2l6ZV90IHRsZW4sIGVtbGVuLCBmZmxlbjsKLSAgZ3J1Yl91aW50OF90ICplbSwgKmVtcHRyOwot ICB1bnNpZ25lZCBuYml0cyA9IGdjcnlfbXBpX2dldF9uYml0cyAoc2stPm1waXNbMF0pOwotICBp bnQgcmV0OwotICB0bGVuID0gaGFzaC0+bWRsZW4gKyBoYXNoLT5hc25sZW47Ci0gIGVtbGVuID0g KG5iaXRzICsgNykgLyA4OwotICBpZiAoZW1sZW4gPCB0bGVuICsgMTEpCi0gICAgcmV0dXJuIDE7 Ci0KLSAgZW0gPSBncnViX21hbGxvYyAoZW1sZW4pOwotICBpZiAoIWVtKQotICAgIHJldHVybiAx OwotCi0gIGVtWzBdID0gMHgwMDsKLSAgZW1bMV0gPSAweDAxOwotICBmZmxlbiA9IGVtbGVuIC0g dGxlbiAtIDM7Ci0gIGZvciAoZW1wdHIgPSBlbSArIDI7IGVtcHRyIDwgZW0gKyAyICsgZmZsZW47 IGVtcHRyKyspCi0gICAgKmVtcHRyID0gMHhmZjsKLSAgKmVtcHRyKysgPSAweDAwOwotICBncnVi X21lbWNweSAoZW1wdHIsIGhhc2gtPmFzbm9pZCwgaGFzaC0+YXNubGVuKTsKLSAgZW1wdHIgKz0g aGFzaC0+YXNubGVuOwotICBncnViX21lbWNweSAoZW1wdHIsIGh2YWwsIGhhc2gtPm1kbGVuKTsK LQotICByZXQgPSBnY3J5X21waV9zY2FuIChobXBpLCBHQ1JZTVBJX0ZNVF9VU0csIGVtLCBlbWxl biwgMCk7Ci0gIGdydWJfZnJlZSAoZW0pOwotICByZXR1cm4gcmV0OwotfQotCiBzdHJ1Y3QgZ3J1 Yl9wdWJrZXlfY29udGV4dAogewogICBncnViX2ZpbGVfdCBzaWc7CkBAIC00ODMsMTUgKzQyNCwx MiBAQCBncnViX3ZlcmlmeV9zaWduYXR1cmVfaW5pdCAoc3RydWN0IGdydWJfcHVia2V5X2NvbnRl eHQgKmN0eHQsIGdydWJfZmlsZV90IHNpZykKICAgaWYgKHQgIT0gMCkKICAgICByZXR1cm4gZ3J1 Yl9lcnJvciAoR1JVQl9FUlJfQkFEX1NJR05BVFVSRSwgTl8oImJhZCBzaWduYXR1cmUiKSk7CiAK LSAgaWYgKGggPj0gQVJSQVlfU0laRSAoaGFzaGVzKSB8fCBoYXNoZXNbaF0gPT0gTlVMTCkKLSAg ICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX1NJR05BVFVSRSwgInVua25vd24gaGFz aCIpOwotCiAgIGlmIChwayA+PSBBUlJBWV9TSVpFIChwa2FsZ29zKSB8fCBwa2FsZ29zW3BrXS5u YW1lID09IE5VTEwpCiAgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9TSUdOQVRV UkUsIE5fKCJiYWQgc2lnbmF0dXJlIikpOwogCi0gIGN0eHQtPmhhc2ggPSBncnViX2NyeXB0b19s b29rdXBfbWRfYnlfbmFtZSAoaGFzaGVzW2hdKTsKKyAgY3R4dC0+aGFzaCA9IGdydWJfY3J5cHRv X2xvb2t1cF9tZF9ieV9hbGdvIChoKTsKICAgaWYgKCFjdHh0LT5oYXNoKQotICAgIHJldHVybiBn cnViX2Vycm9yIChHUlVCX0VSUl9CQURfU0lHTkFUVVJFLCAiaGFzaCBgJXMnIG5vdCBsb2FkZWQi LCBoYXNoZXNbaF0pOworICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9CQURfU0lHTkFU VVJFLCAiaGFzaCBgJWQnIG5vdCBsb2FkZWQiLCBoKTsKIAogICBncnViX2RwcmludGYgKCJjcnlw dCIsICJhbGl2ZVxuIik7CiAKQEAgLTQ5OSw3ICs0MzcsNyBAQCBncnViX3ZlcmlmeV9zaWduYXR1 cmVfaW5pdCAoc3RydWN0IGdydWJfcHVia2V5X2NvbnRleHQgKmN0eHQsIGdydWJfZmlsZV90IHNp ZykKICAgaWYgKCFjdHh0LT5oYXNoX2NvbnRleHQpCiAgICAgcmV0dXJuIGdydWJfZXJybm87CiAK LSAgY3R4dC0+aGFzaC0+aW5pdCAoY3R4dC0+aGFzaF9jb250ZXh0KTsKKyAgY3R4dC0+aGFzaC0+ aW5pdCAoY3R4dC0+aGFzaF9jb250ZXh0LCAwKTsKICAgY3R4dC0+c2lnID0gc2lnOwogCiAgIHJl dHVybiBHUlVCX0VSUl9OT05FOwpAQCAtNTI4LDcgKzQ2Niw2IEBAIGdydWJfdmVyaWZ5X3NpZ25h dHVyZV9yZWFsIChzdHJ1Y3QgZ3J1Yl9wdWJrZXlfY29udGV4dCAqY3R4dCwKICAgZ3J1Yl91aW50 MTZfdCB1bmhhc2hlZF9zdWI7CiAgIGdydWJfc3NpemVfdCByOwogICBncnViX3VpbnQ4X3QgaGFz aF9zdGFydFsyXTsKLSAgZ2NyeV9tcGlfdCBobXBpOwogICBncnViX3VpbnQ2NF90IGtleWlkID0g MDsKICAgc3RydWN0IGdydWJfcHVibGljX3N1YmtleSAqc2s7CiAKQEAgLTYyMCw3ICs1NTcsNyBA QCBncnViX3ZlcmlmeV9zaWduYXR1cmVfcmVhbCAoc3RydWN0IGdydWJfcHVia2V5X2NvbnRleHQg KmN0eHQsCiAgICAgICBncnViX21lbWNweSAocmVhZGJ1ZiwgJmwsIHNpemVvZiAobCkpOwogICAg ICAgZ3J1Yl9kcHJpbnRmICgiY3J5cHQiLCAiYWxpdmVcbiIpOwogCi0gICAgICBpZiAoZ2NyeV9t cGlfc2NhbiAoJm1waXNbaV0sIEdDUllNUElfRk1UX1BHUCwKKyAgICAgIGlmIChfZ2NyeV9tcGlf c2NhbiAoJm1waXNbaV0sIEdDUllNUElfRk1UX1BHUCwKIAkJCSByZWFkYnVmLCBsYiArIHNpemVv ZiAoZ3J1Yl91aW50MTZfdCksIDApKQogCWdvdG8gZmFpbDsKICAgICAgIGdydWJfZHByaW50ZiAo ImNyeXB0IiwgImFsaXZlXG4iKTsKQEAgLTYzOCw4ICs1NzUsNiBAQCBncnViX3ZlcmlmeV9zaWdu YXR1cmVfcmVhbCAoc3RydWN0IGdydWJfcHVia2V5X2NvbnRleHQgKmN0eHQsCiAgICAgICBnb3Rv IGZhaWw7CiAgICAgfQogCi0gIGlmIChwa2FsZ29zW3BrXS5wYWQgKCZobXBpLCBodmFsLCBjdHh0 LT5oYXNoLCBzaykpCi0gICAgZ290byBmYWlsOwogICBpZiAoISpwa2FsZ29zW3BrXS5hbGdvKQog ICAgIHsKICAgICAgIGdydWJfZGxfbG9hZCAocGthbGdvc1twa10ubW9kdWxlKTsKQEAgLTY1Miw3 ICs1ODcsMjQgQEAgZ3J1Yl92ZXJpZnlfc2lnbmF0dXJlX3JlYWwgKHN0cnVjdCBncnViX3B1Ymtl eV9jb250ZXh0ICpjdHh0LAogCQkgIHBrYWxnb3NbcGtdLm1vZHVsZSk7CiAgICAgICBnb3RvIGZh aWw7CiAgICAgfQotICBpZiAoKCpwa2FsZ29zW3BrXS5hbGdvKS0+dmVyaWZ5ICgwLCBobXBpLCBt cGlzLCBzay0+bXBpcywgMCwgMCkpCisKKyAgZ2NyeV9zZXhwX3QgaHNleHAsIHB1YmtleSwgc2ln OworICBncnViX3NpemVfdCBlcnJvZjsKKworICBpZihfZ2NyeV9zZXhwX2J1aWxkKCZoc2V4cCwg JmVycm9mLCAiKGRhdGEgKGZsYWdzICVzKSAoaGFzaCAlcyAlYikpIiwgcGthbGdvc1twa10ucGFk ZGluZywgY3R4dC0+aGFzaC0+bmFtZSwgY3R4dC0+aGFzaC0+bWRsZW4sIGh2YWwpKQorICAgIGdv dG8gZmFpbDsKKworICBpZihfZ2NyeV9zZXhwX2J1aWxkKCZwdWJrZXksICZlcnJvZiwgcGthbGdv c1twa10ucHVic2V4cCwgc2stPm1waXNbMF0sIHNrLT5tcGlzWzFdLCBzay0+bXBpc1syXSwgc2st Pm1waXNbM10pKQorICAgIGdvdG8gZmFpbDsKKworICBpZihfZ2NyeV9zZXhwX2J1aWxkKCZzaWcs ICZlcnJvZiwgcGthbGdvc1twa10uc2lnc2V4cCwgbXBpc1swXSwgbXBpc1sxXSkpCisgICAgZ290 byBmYWlsOworCisgIF9nY3J5X3NleHBfZHVtcChzaWcpOworICBfZ2NyeV9zZXhwX2R1bXAoaHNl eHApOworICBfZ2NyeV9zZXhwX2R1bXAocHVia2V5KTsKKworICBpZiAoKCpwa2FsZ29zW3BrXS5h bGdvKS0+dmVyaWZ5IChzaWcsIGhzZXhwLCBwdWJrZXkpKQogICAgIGdvdG8gZmFpbDsKIAogICBn cnViX2ZyZWUgKHJlYWRidWYpOwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL3hudV91 dWlkLmMgYi9ncnViLWNvcmUvY29tbWFuZHMveG51X3V1aWQuYwppbmRleCBhZTRiM2E0MTUuLjE0 MDZjNDNmNSAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL3hudV91dWlkLmMKKysrIGIv Z3J1Yi1jb3JlL2NvbW1hbmRzL3hudV91dWlkLmMKQEAgLTY4LDcgKzY4LDcgQEAgZ3J1Yl9jbWRf eG51X3V1aWQgKGdydWJfY29tbWFuZF90IGNtZCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSksCiAg IGN0eCA9IGdydWJfemFsbG9jIChHUlVCX01EX01ENS0+Y29udGV4dHNpemUpOwogICBpZiAoIWN0 eCkKICAgICByZXR1cm4gZ3J1Yl9lcnJubzsKLSAgR1JVQl9NRF9NRDUtPmluaXQgKGN0eCk7Cisg IEdSVUJfTURfTUQ1LT5pbml0IChjdHgsIDApOwogICBHUlVCX01EX01ENS0+d3JpdGUgKGN0eCwg aGFzaF9wcmVmaXgsIHNpemVvZiAoaGFzaF9wcmVmaXgpKTsKICAgR1JVQl9NRF9NRDUtPndyaXRl IChjdHgsICZzZXJpYWwsIHNpemVvZiAoc2VyaWFsKSk7CiAgIEdSVUJfTURfTUQ1LT5maW5hbCAo Y3R4KTsKZGlmZiAtLWdpdCBhL2dydWItY29yZS9kaXNrL2NyeXB0b2Rpc2suYyBiL2dydWItY29y ZS9kaXNrL2NyeXB0b2Rpc2suYwppbmRleCA3YTc4NWE0OWMuLjk4MzUyYTQzMiAxMDA2NDQKLS0t IGEvZ3J1Yi1jb3JlL2Rpc2svY3J5cHRvZGlzay5jCisrKyBiL2dydWItY29yZS9kaXNrL2NyeXB0 b2Rpc2suYwpAQCAtMzAyLDcgKzMwMiw3IEBAIGdydWJfY3J5cHRvZGlza19lbmRlY3J5cHQgKHN0 cnVjdCBncnViX2NyeXB0b2Rpc2sgKmRldiwKIAkgICAgICByZXR1cm4gR1BHX0VSUl9PVVRfT0Zf TUVNT1JZOwogCiAJICAgIHRtcCA9IGdydWJfY3B1X3RvX2xlNjQgKHNlY3RvciA8PCBsb2dfc2Vj dG9yX3NpemUpOwotCSAgICBkZXYtPml2X2hhc2gtPmluaXQgKGN0eCk7CisJICAgIGRldi0+aXZf aGFzaC0+aW5pdCAoY3R4LCAwKTsKIAkgICAgZGV2LT5pdl9oYXNoLT53cml0ZSAoY3R4LCBkZXYt Pml2X3ByZWZpeCwgZGV2LT5pdl9wcmVmaXhfbGVuKTsKIAkgICAgZGV2LT5pdl9oYXNoLT53cml0 ZSAoY3R4LCAmdG1wLCBzaXplb2YgKHRtcCkpOwogCSAgICBkZXYtPml2X2hhc2gtPmZpbmFsIChj dHgpOwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2lvL2d6aW8uYyBiL2dydWItY29yZS9pby9nemlv LmMKaW5kZXggY2I3ZWIxZmUzLi5mYTlkOTQyYjIgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9pby9n emlvLmMKKysrIGIvZ3J1Yi1jb3JlL2lvL2d6aW8uYwpAQCAtMTIwMSw3ICsxMjAxLDcgQEAgaW5p dGlhbGl6ZV90YWJsZXMgKGdydWJfZ3ppb190IGd6aW8pCiAgIGd6aW8tPnRkID0gTlVMTDsKIAog ICBpZiAoZ3ppby0+aGNvbnRleHQpCi0gICAgZ3ppby0+aGRlc2MtPmluaXQoZ3ppby0+aGNvbnRl eHQpOworICAgIGd6aW8tPmhkZXNjLT5pbml0KGd6aW8tPmhjb250ZXh0LCAwKTsKIH0KIAogCmRp ZmYgLS1naXQgYS9ncnViLWNvcmUvaW8vbHpvcGlvLmMgYi9ncnViLWNvcmUvaW8vbHpvcGlvLmMK aW5kZXggYTdkNDQyNTQzLi5jZWE5NDIzMDggMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9pby9sem9w aW8uYworKysgYi9ncnViLWNvcmUvaW8vbHpvcGlvLmMKQEAgLTM0NSw3ICszNDUsNyBAQCB0ZXN0 X2hlYWRlciAoZ3J1Yl9maWxlX3QgZmlsZSkKICAgICBpZiAoISBjb250ZXh0KQogICAgICAgcmV0 dXJuIDA7CiAKLSAgICBoY2hlY2stPmluaXQoY29udGV4dCk7CisgICAgaGNoZWNrLT5pbml0KGNv bnRleHQsIDApOwogCiAgICAgLyogTUFHSUMgaXMgbm90IGluY2x1ZGVkIGluIGNoZWNrIGNhbGN1 bGF0aW9uLiAgKi8KICAgICBoY2hlY2stPndyaXRlKGNvbnRleHQsICZoZWFkZXIubHpvcF92ZXJz aW9uLCBzaXplb2YoaGVhZGVyKS0gTFpPUF9NQUdJQ19TSVpFKTsKZGlmZiAtLWdpdCBhL2dydWIt Y29yZS9saWIvYWRsZXIzMi5jIGIvZ3J1Yi1jb3JlL2xpYi9hZGxlcjMyLmMKaW5kZXggNDNiNjhh ZjYyLi5mODQ5Y2NlZTYgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIvYWRsZXIzMi5jCisrKyBi L2dydWItY29yZS9saWIvYWRsZXIzMi5jCkBAIC0yOSwxMCArMjksMTIgQEAgc3RydWN0IGFkbGVy MzJfY29udGV4dAogfTsKIAogc3RhdGljIHZvaWQKLWFkbGVyMzJfaW5pdCAodm9pZCAqY29udGV4 dCkKK2FkbGVyMzJfaW5pdCAodm9pZCAqY29udGV4dCwgdW5zaWduZWQgaW50IGZsYWdzKQogewog ICBzdHJ1Y3QgYWRsZXIzMl9jb250ZXh0ICpjdHggPSBjb250ZXh0OwogCisgICh2b2lkKSBmbGFn czsKKwogICBjdHgtPmEgPSAxOwogICBjdHgtPmIgPSAwOwogfQpAQCAtODEsMTMgKzgzLDIyIEBA IGFkbGVyMzJfcmVhZCAodm9pZCAqY29udGV4dCkKIAogc3RhdGljIGdjcnlfbWRfc3BlY190IHNw ZWNfYWRsZXIzMiA9CiAgIHsKLSAgICAiQURMRVIzMiIsIDAsIDAsIDAsIDQsCi0gICAgYWRsZXIz Ml9pbml0LCBhZGxlcjMyX3dyaXRlLCBhZGxlcjMyX2ZpbmFsLCBhZGxlcjMyX3JlYWQsCi0gICAg c2l6ZW9mIChzdHJ1Y3QgYWRsZXIzMl9jb250ZXh0KSwKKyAgICAuYWxnbyA9IEdDUllfTURfQURM RVIzMiwKKyAgICAuZmxhZ3MgPSB7LmRpc2FibGVkID0gMCwgLmZpcHMgPSAwfSwKKyAgICAubmFt ZSA9ICJBRExFUjMyIiwKKyAgICAuYXNub2lkID0gTlVMTCwKKyAgICAuYXNubGVuID0gMCwKKyAg ICAub2lkcyA9IE5VTEwsCisgICAgLm1kbGVuID0gNCwKKyAgICAuaW5pdCA9IGFkbGVyMzJfaW5p dCwKKyAgICAud3JpdGUgPSBhZGxlcjMyX3dyaXRlLAorICAgIC5maW5hbCA9IGFkbGVyMzJfZmlu YWwsCisgICAgLnJlYWQgPSBhZGxlcjMyX3JlYWQsCisgICAgLmNvbnRleHRzaXplID0gc2l6ZW9m IChzdHJ1Y3QgYWRsZXIzMl9jb250ZXh0KSwKKyAgICAuYmxvY2tzaXplID0gNjQsCiAjaWZkZWYg R1JVQl9VVElMCiAgICAgLm1vZG5hbWUgPSAiYWRsZXIzMiIsCiAjZW5kaWYKLSAgICAuYmxvY2tz aXplID0gNjQKICAgfTsKIAogCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2NyYzY0LmMgYi9n cnViLWNvcmUvbGliL2NyYzY0LmMKaW5kZXggNDk2MGYzZjg5Li5jMjMxZmE5N2MgMTAwNjQ0Ci0t LSBhL2dydWItY29yZS9saWIvY3JjNjQuYworKysgYi9ncnViLWNvcmUvbGliL2NyYzY0LmMKQEAg LTYxLDggKzYxLDEwIEBAIGluaXRfY3JjNjRfdGFibGUgKHZvaWQpCiB9CiAKIHN0YXRpYyB2b2lk Ci1jcmM2NF9pbml0ICh2b2lkICpjb250ZXh0KQorY3JjNjRfaW5pdCAodm9pZCAqY29udGV4dCwg dW5zaWduZWQgaW50IGZsYWdzKQogeworICAodm9pZCkgZmxhZ3M7CisKICAgaWYgKCEgY3JjNjRf dGFibGVbMV0pCiAgICAgaW5pdF9jcmM2NF90YWJsZSAoKTsKICAgKihncnViX3VpbnQ2NF90ICop IGNvbnRleHQgPSAwOwpAQCAtOTcsMTAgKzk5LDIyIEBAIGNyYzY0X2ZpbmFsICh2b2lkICpjb250 ZXh0IF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSkKIAogZ2NyeV9tZF9zcGVjX3QgX2djcnlfZGln ZXN0X3NwZWNfY3JjNjQgPQogICB7Ci0gICAgIkNSQzY0IiwgMCwgMCwgMCwgOCwKLSAgICBjcmM2 NF9pbml0LCBjcmM2NF93cml0ZSwgY3JjNjRfZmluYWwsIGNyYzY0X3JlYWQsCi0gICAgc2l6ZW9m IChncnViX3VpbnQ2NF90KSwKLSAgICAuYmxvY2tzaXplID0gNjQKKyAgICAuYWxnbyA9IEdDUllf TURfQ1JDNjQsCisgICAgLmZsYWdzID0gey5kaXNhYmxlZCA9IDAsIC5maXBzID0gMH0sCisgICAg Lm5hbWUgPSAiQ1JDNjQiLAorICAgIC5hc25vaWQgPSBOVUxMLAorICAgIC5hc25sZW4gPSAwLAor ICAgIC5vaWRzID0gTlVMTCwKKyAgICAubWRsZW4gPSA4LAorICAgIC5pbml0ID0gY3JjNjRfaW5p dCwKKyAgICAud3JpdGUgPSBjcmM2NF93cml0ZSwKKyAgICAuZmluYWwgPSBjcmM2NF9maW5hbCwK KyAgICAucmVhZCA9IGNyYzY0X3JlYWQsCisgICAgLmNvbnRleHRzaXplID0gc2l6ZW9mIChncnVi X3VpbnQ2NF90KSwKKyAgICAuYmxvY2tzaXplID0gNjQsCisjaWZkZWYgR1JVQl9VVElMCisgICAg Lm1vZG5hbWUgPSAiY3JjNjQiLAorI2VuZGlmCiAgIH07CiAKIEdSVUJfTU9EX0lOSVQoY3JjNjQp CmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2NyeXB0by5jIGIvZ3J1Yi1jb3JlL2xpYi9jcnlw dG8uYwppbmRleCAzOTZmNzY0MTAuLmRkNjBkZDRhYyAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xp Yi9jcnlwdG8uYworKysgYi9ncnViLWNvcmUvbGliL2NyeXB0by5jCkBAIC0zNyw2ICszNyw4IEBA IHN0cnVjdCBncnViX2NyeXB0b19obWFjX2hhbmRsZQogc3RhdGljIGdjcnlfY2lwaGVyX3NwZWNf dCAqZ3J1Yl9jaXBoZXJzID0gTlVMTDsKIHN0YXRpYyBnY3J5X21kX3NwZWNfdCAqZ3J1Yl9kaWdl c3RzID0gTlVMTDsKIAoraW50IF9nY3J5X25vX2ZpcHNfbW9kZV9yZXF1aXJlZCA9IDE7CisKIHZv aWQgKCpncnViX2NyeXB0b19hdXRvbG9hZF9ob29rKSAoY29uc3QgY2hhciAqbmFtZSkgPSBOVUxM OwogCiAvKiBCYXNlZCBvbiBsaWJnY3J5cHQtMS40LjQvc3JjL21pc2MuYy4gICovCkBAIC01Niw2 ICs1OCwxNyBAQCBfZ2NyeV9idXJuX3N0YWNrIChpbnQgc2l6ZSkKICAgZ3J1Yl9idXJuX3N0YWNr IChzaXplKTsKIH0KIAordm9pZAorX19nY3J5X2J1cm5fc3RhY2sgKHVuc2lnbmVkIGludCBzaXpl KQoreworICBncnViX2J1cm5fc3RhY2sgKHNpemUpOworfQorCit2b2lkCitfX2djcnlfYnVybl9z dGFja19kdW1teSAodm9pZCkKK3sKK30KKwogdm9pZCBfX2F0dHJpYnV0ZV9fICgobm9yZXR1cm4p KQogX2djcnlfYXNzZXJ0X2ZhaWxlZCAoY29uc3QgY2hhciAqZXhwciwgY29uc3QgY2hhciAqZmls ZSwgaW50IGxpbmUsCiAJCSAgICAgY29uc3QgY2hhciAqZnVuYykKQEAgLTY0LDYgKzc3LDEyIEBA IF9nY3J5X2Fzc2VydF9mYWlsZWQgKGNvbnN0IGNoYXIgKmV4cHIsIGNvbnN0IGNoYXIgKmZpbGUs IGludCBsaW5lLAogICBncnViX2ZhdGFsICgiYXNzZXJ0aW9uICVzIGF0ICVzOiVkICglcykgZmFp bGVkXG4iLCBleHByLCBmaWxlLCBsaW5lLCBmdW5jKTsKIH0KIAordm9pZAorX2djcnlfYnVnKCBj b25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciAqZnVuYyApCit7CisgICAgZ3J1 Yl9mYXRhbCAoIi4uLiB0aGlzIGlzIGEgYnVnICglczolZDolcylcbiIsIGZpbGUsIGxpbmUsIGZ1 bmMpOworfQorCiAKIHZvaWQgX2djcnlfbG9nX2Vycm9yIChjb25zdCBjaGFyICpmbXQsIC4uLikK IHsKQEAgLTgzLDYgKzEwMiwzNiBAQCB2b2lkIF9nY3J5X2xvZ19lcnJvciAoY29uc3QgY2hhciAq Zm10LCAuLi4pCiAgICAgfQogfQogCit2b2lkIF9nY3J5X2xvZ19pbmZvIChjb25zdCBjaGFyICpm bXQsIC4uLikKK3sKKyAgdmFfbGlzdCBhcmdzOworICBjb25zdCBjaGFyICpkZWJ1ZyA9IGdydWJf ZW52X2dldCAoImRlYnVnIik7CisKKyAgaWYgKCEgZGVidWcpCisgICAgcmV0dXJuOworCisgIGlm IChncnViX3N0cndvcmQgKGRlYnVnLCAiYWxsIikgfHwgZ3J1Yl9zdHJ3b3JkIChkZWJ1ZywgImdj cnlwdCIpKQorICAgIHsKKyAgICAgIGdydWJfcHJpbnRmICgiZ2NyeXB0IGluZm86ICIpOworICAg ICAgdmFfc3RhcnQgKGFyZ3MsIGZtdCk7CisgICAgICBncnViX3ZwcmludGYgKGZtdCwgYXJncyk7 CisgICAgICB2YV9lbmQgKGFyZ3MpOworICAgICAgZ3J1Yl9yZWZyZXNoICgpOworICAgIH0KK30K Kwordm9pZAorX2djcnlfZmFzdF93aXBlbWVtb3J5MiAodm9pZCAqcHRyLCBpbnQgc2V0LCBncnVi X3NpemVfdCBsZW4pCit7CisgIGdydWJfbWVtc2V0KHB0ciwgc2V0LCBsZW4pOworfQorCit2b2lk CitfZ2NyeV9mYXN0X3dpcGVtZW1vcnkgKHZvaWQgKnB0ciwgZ3J1Yl9zaXplX3QgbGVuKQorewor ICBncnViX21lbXNldChwdHIsIDAsIGxlbik7Cit9CisKIHZvaWQKIGdydWJfY2lwaGVyX3JlZ2lz dGVyIChnY3J5X2NpcGhlcl9zcGVjX3QgKmNpcGhlcikKIHsKQEAgLTEyOSw3ICsxNzgsNyBAQCBn cnViX2NyeXB0b19oYXNoIChjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgdm9pZCAqb3V0LCBj b25zdCB2b2lkICppbiwKIAogICBpZiAoaGFzaC0+Y29udGV4dHNpemUgPiBzaXplb2YgKGN0eCkp CiAgICAgZ3J1Yl9mYXRhbCAoIlRvbyBsYXJnZSBtZCBjb250ZXh0Iik7Ci0gIGhhc2gtPmluaXQg KCZjdHgpOworICBoYXNoLT5pbml0ICgmY3R4LCAwKTsKICAgaGFzaC0+d3JpdGUgKCZjdHgsIGlu LCBpbmxlbik7CiAgIGhhc2gtPmZpbmFsICgmY3R4KTsKICAgZ3J1Yl9tZW1jcHkgKG91dCwgaGFz aC0+cmVhZCAoJmN0eCksIGhhc2gtPm1kbGVuKTsKQEAgLTE1Myw2ICsyMDIsOTEgQEAgZ3J1Yl9j cnlwdG9fbG9va3VwX21kX2J5X25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCiAgICAgfQogfQogCitj b25zdCBnY3J5X21kX3NwZWNfdCAqCitncnViX2NyeXB0b19sb29rdXBfbWRfYnlfb2lkIChjb25z dCBjaGFyICpvaWQpCit7CisgIGNvbnN0IGdjcnlfbWRfc3BlY190ICptZDsKKworICBpZiAoIW9p ZCkKKyAgICByZXR1cm4gTlVMTDsKKworICBpZiAoZ3J1Yl9zdHJuY21wIChvaWQsICJvaWQuIiwg NCkgPT0gMCB8fCBncnViX3N0cm5jbXAgKG9pZCwgIk9JRC4iLCA0KSA9PSAwKQorICAgIG9pZCAr PSA0OworCisKKyAgZm9yIChtZCA9IGdydWJfZGlnZXN0czsgbWQ7IG1kID0gbWQtPm5leHQpCisg ICAgeworICAgICAgY29uc3QgZ2NyeV9tZF9vaWRfc3BlY190ICpvaWRfc3BlY3MgPSBtZC0+b2lk czsKKyAgICAgIGlmIChvaWRfc3BlY3MpCisgICAgICAgIHsKKyAgICAgICAgICBmb3IgKGludCBq ID0gMDsgb2lkX3NwZWNzW2pdLm9pZHN0cmluZzsgaisrKQorICAgICAgICAgICAgaWYgKGdydWJf c3RyY2FzZWNtcCAob2lkLCBvaWRfc3BlY3Nbal0ub2lkc3RyaW5nKSA9PSAwKQorICAgICAgICAg ICAgICByZXR1cm4gbWQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgcmV0dXJuIE5VTEw7Cit9CisK K3N0YXRpYyBjb25zdCBjaGFyICptZF9hbGdvc1tdID0geworICAgIFsxXSA9ICJNRDUiLAorICAg IFsyXSA9ICJTSEExIiwKKyAgICBbM10gPSAiUklQRU1EMTYwIiwKKyAgICBbNl0gPSAiVElHRVIi LAorICAgIFs4XSA9ICJTSEEyNTYiLAorICAgIFs5XSA9ICJTSEEzODQiLAorICAgIFsxMF0gPSAi U0hBNTEyIiwKKyAgICBbMTFdID0gIlNIQTIyNCIsCisKKyAgICBbMzAxXSA9ICJNRDQiLAorICAg IFszMDJdID0gIkNSQzMyIiwKKyAgICBbMzAzXSA9ICJDUkMzMlJGQzE1MTAiLAorICAgIFszMDRd ID0gIkNSQzI0UkZDMjQ0MCIsCisgICAgWzMwNV0gPSAiV0hJUkxQT09MIiwKKyAgICBbMzA2XSA9 ICJUSUdFUjEiLAorICAgIFszMDddID0gIlRJR0VSMiIsCisgICAgWzMwOF0gPSAiR09TVFIzNDEx Xzk0IiwKKyAgICBbMzA5XSA9ICJTVFJJQk9HMjU2IiwKKyAgICBbMzEwXSA9ICJTVFJJQk9HNTEy IiwKKyAgICBbMzExXSA9ICJHT1NUUjM0MTFfQ1AiLAorICAgIFszMTJdID0gIlNIQTMtMjI0IiwK KyAgICBbMzEzXSA9ICJTSEEzLTI1NiIsCisgICAgWzMxNF0gPSAiU0hBMy0zODQiLAorICAgIFsz MTVdID0gIlNIQTMtNTEyIiwKKyAgICBbMzE2XSA9ICJTSEFLRTEyOCIsCisgICAgWzMxN10gPSAi U0hBS0UyNTYiLAorICAgIFszMThdID0gIkJMQUtFMkJfNTEyIiwKKyAgICBbMzE5XSA9ICJCTEFL RTJCXzM4NCIsCisgICAgWzMyMF0gPSAiQkxBS0UyQl8yNTYiLAorICAgIFszMjFdID0gIkJMQUtF MkJfMTYwIiwKKyAgICBbMzIyXSA9ICJCTEFLRTJTXzI1NiIsCisgICAgWzMyM10gPSAiQkxBS0Uy U18yMjQiLAorICAgIFszMjRdID0gIkJMQUtFMlNfMTYwIiwKKyAgICBbMzI1XSA9ICJCTEFLRTJT XzEyOCIsCisgICAgWzMyNl0gPSAiU00zIiwKKyAgICBbMzI3XSA9ICJTSEE1MTJfMjU2IiwKKyAg ICBbMzI4XSA9ICJTSEE1MTJfMjI0IiwKK307CisKKworY29uc3QgZ2NyeV9tZF9zcGVjX3QgKgor Z3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X2FsZ28gKGludCBhbGdvKQoreworICBjb25zdCBnY3J5 X21kX3NwZWNfdCAqbWQ7CisgIGludCBmaXJzdCA9IDE7CisgIHdoaWxlICgxKQorICAgIHsKKyAg ICAgIGZvciAobWQgPSBncnViX2RpZ2VzdHM7IG1kOyBtZCA9IG1kLT5uZXh0KQorCWlmIChhbGdv ID09IG1kLT5hbGdvKQorCSAgcmV0dXJuIG1kOworICAgICAgaWYgKGdydWJfY3J5cHRvX2F1dG9s b2FkX2hvb2sgJiYgZmlyc3QgJiYgYWxnbyA+IDAgJiYgYWxnbyA8IChpbnQpQVJSQVlfU0laRSht ZF9hbGdvcykgJiYgbWRfYWxnb3NbYWxnb10pIHsKKwlncnViX2NyeXB0b19hdXRvbG9hZF9ob29r IChtZF9hbGdvc1thbGdvXSk7CisgICAgICB9IGVsc2UKKwlyZXR1cm4gTlVMTDsKKyAgICAgIGZp cnN0ID0gMDsKKyAgICB9Cit9CisKIGNvbnN0IGdjcnlfY2lwaGVyX3NwZWNfdCAqCiBncnViX2Ny eXB0b19sb29rdXBfY2lwaGVyX2J5X25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCiB7CkBAIC0xOTYs NyArMzMwLDkgQEAgZ3J1Yl9jcnlwdG9fY2lwaGVyX3NldF9rZXkgKGdydWJfY3J5cHRvX2NpcGhl cl9oYW5kbGVfdCBjaXBoZXIsCiAJCQkgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAogCQkJ ICAgIHVuc2lnbmVkIGtleWxlbikKIHsKLSAgcmV0dXJuIGNpcGhlci0+Y2lwaGVyLT5zZXRrZXkg KGNpcGhlci0+Y3R4LCBrZXksIGtleWxlbik7CisgIC8qIFRPRE86IEZpeCB0aGlzLiBJdCdzIHVn bHkgYXMgaGVsbC4gICovCisgIHZvaWQgKmJ1bGtfb3BzWzEwMF07CisgIHJldHVybiBjaXBoZXIt PmNpcGhlci0+c2V0a2V5IChjaXBoZXItPmN0eCwga2V5LCBrZXlsZW4sICh2b2lkICopIGJ1bGtf b3BzKTsKIH0KIAogZ2NyeV9lcnJfY29kZV90CkBAIC0zNDMsNyArNDc5LDcgQEAgZ3J1Yl9jcnlw dG9faG1hY19pbml0IChjb25zdCBzdHJ1Y3QgZ2NyeV9tZF9zcGVjICptZCwKICAgZ3J1Yl9mcmVl IChoZWxwa2V5KTsKICAgaGVscGtleSA9IE5VTEw7CiAKLSAgbWQtPmluaXQgKGN0eCk7CisgIG1k LT5pbml0IChjdHgsIDApOwogCiAgIG1kLT53cml0ZSAoY3R4LCBpcGFkLCBtZC0+YmxvY2tzaXpl KTsgLyogaW5uZXIgcGFkICovCiAgIGdydWJfbWVtc2V0IChpcGFkLCAwLCBtZC0+YmxvY2tzaXpl KTsKQEAgLTM5MCw3ICs1MjYsNyBAQCBncnViX2NyeXB0b19obWFjX2ZpbmkgKHN0cnVjdCBncnVi X2NyeXB0b19obWFjX2hhbmRsZSAqaG5kLCB2b2lkICpvdXQpCiAgIGhuZC0+bWQtPnJlYWQgKGhu ZC0+Y3R4KTsKICAgcCA9IGhuZC0+bWQtPnJlYWQgKGhuZC0+Y3R4KTsKIAotICBobmQtPm1kLT5p bml0IChjdHgyKTsKKyAgaG5kLT5tZC0+aW5pdCAoY3R4MiwgMCk7CiAgIGhuZC0+bWQtPndyaXRl IChjdHgyLCBobmQtPm9wYWQsIGhuZC0+bWQtPmJsb2Nrc2l6ZSk7CiAgIGhuZC0+bWQtPndyaXRl IChjdHgyLCBwLCBobmQtPm1kLT5tZGxlbik7CiAgIGhuZC0+bWQtPmZpbmFsIChjdHgyKTsKQEAg LTQzMywxOSArNTY5LDEwNiBAQCBncnViX2NyeXB0b19nY3J5X2Vycm9yIChnY3J5X2Vycl9jb2Rl X3QgaW4pCiAgIHJldHVybiBHUlVCX0FDQ0VTU19ERU5JRUQ7CiB9CiAKKworLyoKKyAqIENvbXBh cmUgYnl0ZSBhcnJheXMgb2YgbGVuZ3RoIExFTiwgcmV0dXJuIDEgaWYgaXQncyBub3Qgc2FtZSwK KyAqIDAsIG90aGVyd2lzZS4KKyAqLwogaW50Ci1ncnViX2NyeXB0b19tZW1jbXAgKGNvbnN0IHZv aWQgKmEsIGNvbnN0IHZvaWQgKmIsIGdydWJfc2l6ZV90IG4pCitncnViX2NyeXB0b19tZW1jbXAg KGNvbnN0IHZvaWQgKmIxLCBjb25zdCB2b2lkICpiMiwgZ3J1Yl9zaXplX3QgbGVuKQogewotICBy ZWdpc3RlciBncnViX3NpemVfdCBjb3VudGVyID0gMDsKLSAgY29uc3QgZ3J1Yl91aW50OF90ICpw YSwgKnBiOworICBjb25zdCBncnViX3VpbnQ4X3QgKmEgPSBiMTsKKyAgY29uc3QgZ3J1Yl91aW50 OF90ICpiID0gYjI7CisgIGludCBhYiwgYmE7CisgIGdydWJfc2l6ZV90IGk7CiAKLSAgZm9yIChw YSA9IGEsIHBiID0gYjsgbjsgcGErKywgcGIrKywgbi0tKQorICAvKiBDb25zdGFudC10aW1lIGNv bXBhcmUuICovCisgIGZvciAoaSA9IDAsIGFiID0gMCwgYmEgPSAwOyBpIDwgbGVuOyBpKyspCiAg ICAgewotICAgICAgaWYgKCpwYSAhPSAqcGIpCi0JY291bnRlcisrOworICAgICAgLyogSWYgYVtp XSAhPSBiW2ldLCBlaXRoZXIgYWIgb3IgYmEgd2lsbCBiZSBuZWdhdGl2ZS4gKi8KKyAgICAgIGFi IHw9IGFbaV0gLSBiW2ldOworICAgICAgYmEgfD0gYltpXSAtIGFbaV07CiAgICAgfQogCi0gIHJl dHVybiAhIWNvdW50ZXI7CisgIC8qICdhYiB8IGJhJyBpcyBuZWdhdGl2ZSB3aGVuIGJ1ZmZlcnMg YXJlIG5vdCBlcXVhbCwgZXh0cmFjdCBzaWduIGJpdC4gICovCisgIHJldHVybiAoKHVuc2lnbmVk IGludCkoYWIgfCBiYSkgPj4gKHNpemVvZih1bnNpZ25lZCBpbnQpICogOCAtIDEpKSAmIDE7Cit9 CisKKwordm9pZCAqCitfZ2NyeV9tYWxsb2Nfc2VjdXJlIChncnViX3NpemVfdCBuKQoreworICBy ZXR1cm4gZ3J1Yl9tYWxsb2Mobik7Cit9CisKK3ZvaWQgKgorX2djcnlfbWFsbG9jIChncnViX3Np emVfdCBuKQoreworICByZXR1cm4gZ3J1Yl9tYWxsb2Mobik7Cit9CisKK3ZvaWQgKgorX2djcnlf eG1hbGxvYyhncnViX3NpemVfdCBuKQoreworICB2b2lkICpyZXQgPSBncnViX21hbGxvYyhuKTsK KyAgaWYgKHJldCA9PSBOVUxMKQorICAgIGdydWJfZmF0YWwoIl9nY3J5X3htYWxsb2MgZmFpbGVk Iik7CisgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQgKgorX2djcnlfeG1hbGxvY19zZWN1cmUoZ3J1 Yl9zaXplX3QgbikKK3sKKyAgdm9pZCAqcmV0ID0gZ3J1Yl9tYWxsb2Mobik7CisgIGlmIChyZXQg PT0gTlVMTCkKKyAgICBncnViX2ZhdGFsKCJfZ2NyeV94bWFsbG9jX3NlY3VyZSBmYWlsZWQiKTsK KyAgcmV0dXJuIHJldDsKK30KKwordm9pZCBfZ2NyeV9mcmVlICh2b2lkICpwKQoreworICBncnVi X2ZyZWUgKHApOworfQorCit2b2lkICoKK19nY3J5X3hyZWFsbG9jICh2b2lkICphLCBncnViX3Np emVfdCBuKQoreworICB2b2lkICpyZXQgPSBncnViX3JlYWxsb2MoYSwgbik7CisgIGlmIChyZXQg PT0gTlVMTCkKKyAgICBncnViX2ZhdGFsKCJfZ2NyeV94cmVhbGxvYyBmYWlsZWQiKTsKKyAgcmV0 dXJuIHJldDsKK30KKwordm9pZCAqCitfZ2NyeV94Y2FsbG9jIChncnViX3NpemVfdCBuLCBncnVi X3NpemVfdCBtKQoreworICB2b2lkICpyZXQgPSBncnViX2NhbGxvYyhuLCBtKTsKKyAgaWYgKHJl dCA9PSBOVUxMKQorICAgIGdydWJfZmF0YWwoIl9nY3J5X3hjYWxsb2MgZmFpbGVkIik7CisgIHJl dHVybiByZXQ7Cit9CisKK3ZvaWQgKgorX2djcnlfeGNhbGxvY19zZWN1cmUgKGdydWJfc2l6ZV90 IG4sIGdydWJfc2l6ZV90IG0pCit7CisgIHZvaWQgKnJldCA9IGdydWJfY2FsbG9jKG4sIG0pOwor ICBpZiAocmV0ID09IE5VTEwpCisgICAgZ3J1Yl9mYXRhbCgiX2djcnlfeGNhbGxvY19zZWN1cmUg ZmFpbGVkIik7CisgIHJldHVybiByZXQ7Cit9CisKKworaW50CitfZ2NyeV9pc19zZWN1cmUgKGNv bnN0IHZvaWQgKmEpCit7CisgICh2b2lkKSBhOworCisgIHJldHVybiAwOworfQorCit2b2lkIF9n Y3J5X2RpdmlkZV9ieV96ZXJvICh2b2lkKQoreworICBncnViX2ZhdGFsKCJnY3J5cHQgZGl2aXNp b24gYnkgemVybyIpOwogfQogCiAjaWZuZGVmIEdSVUJfVVRJTApkaWZmIC0tZ2l0IGEvZ3J1Yi1j b3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8wMV9tZC5wYXRjaCBiL2dydWItY29yZS9saWIvbGli Z2NyeXB0LXBhdGNoZXMvMDFfbWQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwLi4wOGEwYzJjNTEKLS0tIC9kZXYvbnVsbAorKysgYi9ncnViLWNvcmUvbGliL2xpYmdj cnlwdC1wYXRjaGVzLzAxX21kLnBhdGNoCkBAIC0wLDAgKzEsMTQxIEBACistLS0gYS9ncnViLWNv cmUvbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9tZC5jCTIwMjQtMDUtMjEgMDE6MjI6MDQuMjIy MDg0NzczICswMzAwCisrKysgYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9t ZC5jCTIwMjQtMDUtMjEgMDE6MjI6MDcuMzY4MDk5OTYxICswMzAwCitAQCAtMjAsMTEgKzIwLDI1 IEBACisgICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworICAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAgKi8KKysjaW5jbHVk ZSA8Y29uZmlnLmg+CisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrI2luY2x1ZGUgPHN0ZGxpYi5oPgor KyNpbmNsdWRlIDxzdHJpbmcuaD4KKysjaW5jbHVkZSA8ZXJybm8uaD4KKyAKKyAKKyAjaW5jbHVk ZSAiZzEwbGliLmgiCisgI2luY2x1ZGUgImNpcGhlci5oIgorIAorKyNkZWZpbmUgX2djcnlfbWRf c2VsZnRlc3QoYSxiLGMpIDAKKyt0eXBlZGVmIHN0cnVjdCBnY3J5X21kX2xpc3QKKyt7CisrICBj b25zdCBnY3J5X21kX3NwZWNfdCAqc3BlYzsKKysgIHN0cnVjdCBnY3J5X21kX2xpc3QgKm5leHQ7 CisrICBzaXplX3QgYWN0dWFsX3N0cnVjdF9zaXplOyAgICAgLyogQWxsb2NhdGVkIHNpemUgb2Yg dGhpcyBzdHJ1Y3R1cmUuICovCisrICBQUk9QRVJMWV9BTElHTkVEX1RZUEUgY29udGV4dFsxXTsK Kyt9IEdjcnlEaWdlc3RFbnRyeTsKKysKKyAKKyAvKiBUaGlzIGlzIHRoZSBsaXN0IG9mIHRoZSBk aWdlc3QgaW1wbGVtZW50YXRpb25zIGluY2x1ZGVkIGluCisgICAgbGliZ2NyeXB0LiAgKi8KK0BA IC01Myw3ICs2Nyw2IEBACisgc3RhdGljIHZvaWQgbWRfY2xvc2UgKGdjcnlfbWRfaGRfdCBhKTsK KyBzdGF0aWMgdm9pZCBtZF93cml0ZSAoZ2NyeV9tZF9oZF90IGEsIGNvbnN0IHZvaWQgKmluYnVm LCBzaXplX3QgaW5sZW4pOworIHN0YXRpYyBieXRlICptZF9yZWFkKCBnY3J5X21kX2hkX3QgYSwg aW50IGFsZ28gKTsKKy1zdGF0aWMgaW50IG1kX2dldF9hbGdvKCBnY3J5X21kX2hkX3QgYSApOwor IHN0YXRpYyBpbnQgbWRfZGlnZXN0X2xlbmd0aCggaW50IGFsZ28gKTsKKyBzdGF0aWMgdm9pZCBt ZF9zdGFydF9kZWJ1ZyAoIGdjcnlfbWRfaGRfdCBhLCBjb25zdCBjaGFyICpzdWZmaXggKTsKKyBz dGF0aWMgdm9pZCBtZF9zdG9wX2RlYnVnICggZ2NyeV9tZF9oZF90IGEgKTsKK0BAIC0xODYsOSAr MTk5LDYgQEAKKyAKKyAgIGlmICghIGVycikKKyAgICAgeworLSAgICAgIC8qIEhtbW0sIHNob3Vs ZCB3ZSByZWFsbHkgZG8gdGhhdD8gLSB5ZXMgWy13a10gKi8KKy0gICAgICBfZ2NyeV9mYXN0X3Jh bmRvbV9wb2xsICgpOworLQorICAgICAgIGlmIChhbGdvKQorIAl7CisgCSAgZXJyID0gbWRfZW5h YmxlIChoZCwgYWxnbyk7CitAQCAtNDM3LDE0ICs0NDcsNiBAQAorIHsKKyAgIEdjcnlEaWdlc3RF bnRyeSAqcjsKKyAKKy0gIGlmIChhLT5jdHgtPmRlYnVnKQorLSAgICB7CistICAgICAgaWYgKGEt PmJ1ZnBvcyAmJiBmd3JpdGUgKGEtPmJ1ZiwgYS0+YnVmcG9zLCAxLCBhLT5jdHgtPmRlYnVnKSAh PSAxKQorLQlCVUcoKTsKKy0gICAgICBpZiAoaW5sZW4gJiYgZndyaXRlIChpbmJ1ZiwgaW5sZW4s IDEsIGEtPmN0eC0+ZGVidWcpICE9IDEpCistCUJVRygpOworLSAgICB9CistCisgICBmb3IgKHIg PSBhLT5jdHgtPmxpc3Q7IHI7IHIgPSByLT5uZXh0KQorICAgICB7CisgICAgICAgaWYgKGEtPmJ1 ZnBvcykKK0BAIC02NDMsNiArNjQ1LDcgQEAKKyAgICAgICByZXR1cm47CisgICAgIH0KKyAKKysj aWYgMAorICAgaWYgKHNwZWMtPmhhc2hfYnVmZmVycyAhPSBOVUxMKQorICAgICB7CisgICAgICAg Z2NyeV9idWZmZXJfdCBpb3Y7CitAQCAtNjU5LDYgKzY2Miw3IEBACisgICAgICAgc3BlYy0+aGFz aF9idWZmZXJzIChkaWdlc3QsIHNwZWMtPm1kbGVuLCAmaW92LCAxKTsKKyAgICAgfQorICAgZWxz ZQorKyNlbmRpZgorICAgICB7CisgICAgICAgLyogRm9yIHRoZSBvdGhlcnMgd2UgZG8gbm90IGhh dmUgYSBmYXN0IGZ1bmN0aW9uLCBzbyB3ZSB1c2UgdGhlCisgICAgICAgICAgbm9ybWFsIGZ1bmN0 aW9ucy4gKi8KK0BAIC02OTQsNyArNjk4LDcgQEAKKyAgICBESUdFU1RMRU4gbWF5IGFsc28gYmUg dGhlIGFwcHJvcHJpYXRlIGxlbmd0aCBvciwgaW4gY2FzZSBvZiBYT0YKKyAgICBhbGdvcml0aG1z LCBESUdFU1RMRU4gaW5kaWNhdGVzIG51bWJlciBieXRlcyB0byBleHRyYWN0IGZyb20gWE9GCisg ICAgdG8gRElHRVNULiAgKi8KKy0jZGVmaW5lIF9nY3J5X21kX2hhc2hfYnVmZmVycyAwCisrCisg CisgLyogU2hvcnRjdXQgZnVuY3Rpb24gdG8gaGFzaCBtdWx0aXBsZSBidWZmZXJzIHdpdGggYSBn aXZlbiBhbGdvLiAgSW4KKyAgICBjb250cmFzdCB0byBnY3J5X21kX2hhc2hfYnVmZmVyLCB0aGlz IGZ1bmN0aW9uIHJldHVybnMgYW4gZXJyb3Igb24KK0BAIC03MTAsNyArNzE0LDYgQEAKKyAgICBP biBzdWNjZXNzIDAgaXMgcmV0dXJuZWQgYW5kIHJlc3VsdGluZyBoYXNoIG9yIEhNQUMgaXMgc3Rv cmVkIGF0CisgICAgRElHRVNUIHdoaWNoIG11c3QgaGF2ZSBiZWVuIHByb3ZpZGVkIGJ5IHRoZSBj YWxsZXIgd2l0aCBhbgorICAgIGFwcHJvcHJpYXRlIGxlbmd0aC4gICovCistI2RlZmluZSBfZ2Ny eV9tZF9oYXNoX2J1ZmZlcnMgMAorIAorIAorIAorQEAgLTg0MSw0MyArODQ0LDE1IEBACisgc3Rh dGljIHZvaWQKKyBtZF9zdGFydF9kZWJ1ZyAoIGdjcnlfbWRfaGRfdCBtZCwgY29uc3QgY2hhciAq c3VmZml4ICkKKyB7CistICBzdGF0aWMgaW50IGlkeD0wOworLSAgY2hhciBidWZbNTBdOworLQor LSAgaWYgKGZpcHNfbW9kZSAoKSkKKy0gICAgcmV0dXJuOworLQorLSAgaWYgKCBtZC0+Y3R4LT5k ZWJ1ZyApCistICAgIHsKKy0gICAgICBsb2dfZGVidWcoIk9vcHM6IG1kIGRlYnVnIGFscmVhZHkg c3RhcnRlZFxuIik7CistICAgICAgcmV0dXJuOworLSAgICB9CistICBpZHgrKzsKKy0gIHNucHJp bnRmIChidWYsIERJTShidWYpLTEsICJkYmdtZC0lMDVkLiUuMTBzIiwgaWR4LCBzdWZmaXggKTsK Ky0gIG1kLT5jdHgtPmRlYnVnID0gZm9wZW4oYnVmLCAidyIpOworLSAgaWYgKCAhbWQtPmN0eC0+ ZGVidWcgKQorLSAgICBsb2dfZGVidWcoIm1kIGRlYnVnOiBjYW4ndCBvcGVuICVzXG4iLCBidWYg KTsKKysgICh2b2lkKSBtZDsKKysgICh2b2lkKSBzdWZmaXg7CisgfQorIAorIAorIHN0YXRpYyB2 b2lkCisgbWRfc3RvcF9kZWJ1ZyggZ2NyeV9tZF9oZF90IG1kICkKKyB7CistICBpZiAoIG1kLT5j dHgtPmRlYnVnICkKKy0gICAgeworLSAgICAgIGlmICggbWQtPmJ1ZnBvcyApCistICAgICAgICBt ZF93cml0ZSAoIG1kLCBOVUxMLCAwICk7CistICAgICAgZmNsb3NlIChtZC0+Y3R4LT5kZWJ1Zyk7 CistICAgICAgbWQtPmN0eC0+ZGVidWcgPSBOVUxMOworLSAgICB9CistCistICB7ICAvKiBhIGts dWRnZSB0byBwdWxsIGluIHRoZSBfX211bGRpMyBmb3IgU29sYXJpcyAqLworLSAgICB2b2xhdGls ZSB1MzIgYSA9ICh1MzIpKHVpbnRwdHJfdCltZDsKKy0gICAgdm9sYXRpbGUgdTY0IGIgPSA0MjsK Ky0gICAgdm9sYXRpbGUgdTY0IGM7CistICAgIGMgPSBhICogYjsKKy0gICAgKHZvaWQpYzsKKy0g IH0KKysgICh2b2lkKSBtZDsKKyB9CisgCisgCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2xp YmdjcnlwdC9zcmMvZ2NyeXB0LWludC5oIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQvc3JjL2dj cnlwdC1pbnQuaAppbmRleCAzMDcxYjQyMWUuLjFjYTRmMjFmZSAxMDA2NDQKLS0tIGEvZ3J1Yi1j b3JlL2xpYi9saWJnY3J5cHQvc3JjL2djcnlwdC1pbnQuaAorKysgYi9ncnViLWNvcmUvbGliL2xp YmdjcnlwdC9zcmMvZ2NyeXB0LWludC5oCkBAIC0yNjUsNTcgKzI2NSw2IEBAIHZvaWQgX2djcnlf c2V0X2xvZ19oYW5kbGVyIChnY3J5X2hhbmRsZXJfbG9nX3QgZiwgdm9pZCAqb3BhcXVlKTsKIHZv aWQgX2djcnlfc2V0X2dldHRleHRfaGFuZGxlciAoY29uc3QgY2hhciAqKCpmKShjb25zdCBjaGFy KikpOwogdm9pZCBfZ2NyeV9zZXRfcHJvZ3Jlc3NfaGFuZGxlciAoZ2NyeV9oYW5kbGVyX3Byb2dy ZXNzX3QgY2IsIHZvaWQgKmNiX2RhdGEpOwogCi0MCi0vKiBSZXR1cm4gYSBwb2ludGVyIHRvIGEg c3RyaW5nIGNvbnRhaW5pbmcgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZXJyb3IKLSAgIGNvZGUgaW4g dGhlIGVycm9yIHZhbHVlIEVSUi4gICovCi1zdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKgotX2dj cnlfc3RyZXJyb3IgKGdjcnlfZXJyb3JfdCBlcnIpCi17Ci0gIHJldHVybiBncGdfc3RyZXJyb3Ig KGVycik7Ci19Ci0KLS8qIFJldHVybiBhIHBvaW50ZXIgdG8gYSBzdHJpbmcgY29udGFpbmluZyBh IGRlc2NyaXB0aW9uIG9mIHRoZSBlcnJvcgotICAgc291cmNlIGluIHRoZSBlcnJvciB2YWx1ZSBF UlIuICAqLwotc3RhdGljIGlubGluZSBjb25zdCBjaGFyICoKLV9nY3J5X3N0cnNvdXJjZSAoZ2Ny eV9lcnJvcl90IGVycikKLXsKLSAgcmV0dXJuIGdwZ19zdHJzb3VyY2UgKGVycik7Ci19Ci0KLS8q IFJldHJpZXZlIHRoZSBlcnJvciBjb2RlIGZvciB0aGUgc3lzdGVtIGVycm9yIEVSUi4gIFRoaXMg cmV0dXJucwotICAgR1BHX0VSUl9VTktOT1dOX0VSUk5PIGlmIHRoZSBzeXN0ZW0gZXJyb3IgaXMg bm90IG1hcHBlZCAocmVwb3J0Ci0gICB0aGlzKS4gICovCi1zdGF0aWMgaW5saW5lIGdjcnlfZXJy X2NvZGVfdAotX2djcnlfZXJyX2NvZGVfZnJvbV9lcnJubyAoaW50IGVycikKLXsKLSAgcmV0dXJu IGdwZ19lcnJfY29kZV9mcm9tX2Vycm5vIChlcnIpOwotfQotCi0vKiBSZXRyaWV2ZSB0aGUgc3lz dGVtIGVycm9yIGZvciB0aGUgZXJyb3IgY29kZSBDT0RFLiAgVGhpcyByZXR1cm5zIDAKLSAgIGlm IENPREUgaXMgbm90IGEgc3lzdGVtIGVycm9yIGNvZGUuICAqLwotc3RhdGljIGlubGluZSBpbnQK LV9nY3J5X2Vycl9jb2RlX3RvX2Vycm5vIChnY3J5X2Vycl9jb2RlX3QgY29kZSkKLXsKLSAgcmV0 dXJuIGdwZ19lcnJfY29kZV90b19lcnJubyAoY29kZSk7Ci19Ci0KLS8qIFJldHVybiBhbiBlcnJv ciB2YWx1ZSB3aXRoIHRoZSBlcnJvciBzb3VyY2UgU09VUkNFIGFuZCB0aGUgc3lzdGVtCi0gICBl cnJvciBFUlIuICAqLwotc3RhdGljIGlubGluZSBnY3J5X2Vycm9yX3QKLV9nY3J5X2Vycl9tYWtl X2Zyb21fZXJybm8gKGdwZ19lcnJfc291cmNlX3Qgc291cmNlLCBpbnQgZXJyKQotewotICByZXR1 cm4gZ3BnX2Vycl9tYWtlX2Zyb21fZXJybm8gKHNvdXJjZSwgZXJyKTsKLX0KLQotCi0vKiBSZXR1 cm4gYW4gZXJyb3IgdmFsdWUgd2l0aCB0aGUgc3lzdGVtIGVycm9yIEVSUi4gICovCi1zdGF0aWMg aW5saW5lIGdjcnlfZXJyb3JfdAotX2djcnlfZXJyb3JfZnJvbV9lcnJubyAoaW50IGVycikKLXsK LSAgcmV0dXJuIGdwZ19lcnJvciAoZ3BnX2Vycl9jb2RlX2Zyb21fZXJybm8gKGVycikpOwotfQot Ci0KIAwKIGdwZ19lcnJfY29kZV90IF9nY3J5X3NleHBfbmV3IChnY3J5X3NleHBfdCAqcmV0c2V4 cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpidWZmZXIsIHNp emVfdCBsZW5ndGgsCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdF93cmFwL2Np cGhlcl93cmFwLmggYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdF93cmFwL2NpcGhlcl93cmFwLmgK aW5kZXggNDI4MzU0OTNkLi4wOGVmYjMwYjMgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIvbGli Z2NyeXB0X3dyYXAvY2lwaGVyX3dyYXAuaAorKysgYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdF93 cmFwL2NpcGhlcl93cmFwLmgKQEAgLTE5LDYgKzE5LDggQEAKICNpZm5kZWYgR1JVQl9HQ1JZX1dS QVBfSEVBREVSCiAjZGVmaW5lIEdSVUJfR0NSWV9XUkFQX0hFQURFUiAxCiAKKyNkZWZpbmUgVVNF X1NIQTUxMiAxCisKICNpbmNsdWRlIDxncnViL3R5cGVzLmg+CiAjaW5jbHVkZSA8Z3J1Yi9tbS5o PgogI2luY2x1ZGUgPGdydWIvbWlzYy5oPgpAQCAtMzUsMTAgKzM3LDkgQEAKICN1bmRlZiBfX0dO VV9MSUJSQVJZX18KICNkZWZpbmUgX19HTlVfTElCUkFSWV9fIDEKIAorI2RlZmluZSBVSU5UNjRf QyhjKSAoYyAjIyBVTEwpCiAjZGVmaW5lIFU2NF9DKGMpIChjICMjIFVMTCkKIAotI2RlZmluZSBQ VUJLRVlfRkxBR19OT19CTElORElORyAgICAoMSA8PCAwKQotCiAjZGVmaW5lIENJUEhFUl9JTkZP X05PX1dFQUtfS0VZICAgIDEKIAogI2RlZmluZSBIQVZFX1U2NF9UWVBFREVGIDEKQEAgLTc0LDQg Kzc1LDEyIEBAIF9nY3J5X2ZpcHNfbW9kZSAodm9pZCkKIAogI2RlZmluZSBnY3J5X21waV9tb2Qg X2djcnlfbXBpX21vZAogCisjZGVmaW5lIHN0cnRvbCBncnViX3N0cnRvbAorI2RlZmluZSBzdHJ0 b3VsIGdydWJfc3RydG91bAorI2RlZmluZSBhdG9pKG5wdHIpIChzdHJ0b2woKG5wdHIpLCBOVUxM LCAxMCkpCisKKyNkZWZpbmUgc3RwY3B5IGdydWJfc3RwY3B5CisKKyNkZWZpbmUgc3BlY19mcm9t X2FsZ28gZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X2FsZ28KKwogI2VuZGlmCmRpZmYgLS1naXQg YS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdF93cmFwL21lbS5jIGIvZ3J1Yi1jb3JlL2xpYi9saWJn Y3J5cHRfd3JhcC9tZW0uYwppbmRleCA3NGM2ZWFmZTUuLmFiMGNmNGFkMyAxMDA2NDQKLS0tIGEv Z3J1Yi1jb3JlL2xpYi9saWJnY3J5cHRfd3JhcC9tZW0uYworKysgYi9ncnViLWNvcmUvbGliL2xp YmdjcnlwdF93cmFwL21lbS5jCkBAIC00Niw2ICs0NiwxNSBAQCBnY3J5X3hjYWxsb2MgKHNpemVf dCBuLCBzaXplX3QgbSkKICAgcmV0dXJuIHJldDsKIH0KIAordm9pZCAqCitfZ2NyeV9jYWxsb2Mg KHNpemVfdCBuLCBzaXplX3QgbSkKK3sKKyAgc2l6ZV90IHN6OworICBpZiAoZ3J1Yl9tdWwgKG4s IG0sICZzeikpCisgICAgcmV0dXJuIE5VTEw7CisgIHJldHVybiBncnViX3phbGxvYyAoc3opOwor fQorCiB2b2lkICoKIGdjcnlfeG1hbGxvY19zZWN1cmUgKHNpemVfdCBuKQogewpAQCAtNjksNiAr NzgsMTUgQEAgZ2NyeV94Y2FsbG9jX3NlY3VyZSAoc2l6ZV90IG4sIHNpemVfdCBtKQogICByZXR1 cm4gcmV0OwogfQogCit2b2lkICoKK19nY3J5X2NhbGxvY19zZWN1cmUgKHNpemVfdCBuLCBzaXpl X3QgbSkKK3sKKyAgc2l6ZV90IHN6OworICBpZiAoZ3J1Yl9tdWwgKG4sIG0sICZzeikpCisgICAg cmV0dXJuIE5VTEw7CisgIHJldHVybiBncnViX3phbGxvYyAoc3opOworfQorCiB2b2lkICoKIGdj cnlfeG1hbGxvYyAoc2l6ZV90IG4pCiB7CkBAIC04OSw2ICsxMDcsMTIgQEAgZ2NyeV94cmVhbGxv YyAodm9pZCAqYSwgc2l6ZV90IG4pCiAgIHJldHVybiByZXQ7CiB9CiAKK3ZvaWQgKgorX2djcnlf cmVhbGxvYyAodm9pZCAqYSwgc2l6ZV90IG4pCit7CisgIHJldHVybiBncnViX3JlYWxsb2MgKGEs IG4pOworfQorCiB2b2lkCiBfZ2NyeV9jaGVja19oZWFwIChjb25zdCB2b2lkICphIF9fYXR0cmli dXRlX18gKCh1bnVzZWQpKSkKIHsKQEAgLTExMyw2ICsxMzcsMjQgQEAgdm9pZCBfZ2NyeV9sb2df cHJpbnRmIChjb25zdCBjaGFyICpmbXQsIC4uLikKICAgICB9CiB9CiAKK3ZvaWQgX2djcnlfbG9n X2RlYnVnIChjb25zdCBjaGFyICpmbXQsIC4uLikKK3sKKyAgdmFfbGlzdCBhcmdzOworICBjb25z dCBjaGFyICpkZWJ1ZyA9IGdydWJfZW52X2dldCAoImRlYnVnIik7CisKKyAgaWYgKCEgZGVidWcp CisgICAgcmV0dXJuOworCisgIGlmIChncnViX3N0cndvcmQgKGRlYnVnLCAiYWxsIikgfHwgZ3J1 Yl9zdHJ3b3JkIChkZWJ1ZywgImdjcnlwdCIpKQorICAgIHsKKyAgICAgIGdydWJfcHJpbnRmICgi Z2NyeXB0OiAiKTsKKyAgICAgIHZhX3N0YXJ0IChhcmdzLCBmbXQpOworICAgICAgZ3J1Yl92cHJp bnRmIChmbXQsIGFyZ3MpOworICAgICAgdmFfZW5kIChhcmdzKTsKKyAgICAgIGdydWJfcmVmcmVz aCAoKTsKKyAgICB9Cit9CisKIHZvaWQgX2djcnlfbG9nX2J1ZyAoY29uc3QgY2hhciAqZm10LCAu Li4pCiB7CiAgIHZhX2xpc3QgYXJnczsKQEAgLTEyNiw5ICsxNjgsOSBAQCB2b2lkIF9nY3J5X2xv Z19idWcgKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogfQogCiBnY3J5X2Vycl9jb2RlX3QKLWdwZ19l cnJvcl9mcm9tX3N5c2Vycm9yICh2b2lkKQorZ3BnX2Vycl9jb2RlX2Zyb21fZXJybm8gKGludCBl cnIpCiB7Ci0gIHN3aXRjaCAoZ3J1Yl9lcnJubykKKyAgc3dpdGNoIChlcnIpCiAgICAgewogICAg IGNhc2UgR1JVQl9FUlJfTk9ORToKICAgICAgIHJldHVybiBHUEdfRVJSX05PX0VSUk9SOwpAQCAt MTM4LDMgKzE4MCw0MCBAQCBncGdfZXJyb3JfZnJvbV9zeXNlcnJvciAodm9pZCkKICAgICAgIHJl dHVybiBHUEdfRVJSX0dFTkVSQUw7CiAgICAgfQogfQorCitnY3J5X2Vycl9jb2RlX3QKK2dwZ19l cnJvcl9mcm9tX3N5c2Vycm9yICh2b2lkKQoreworICByZXR1cm4gZ3BnX2Vycl9jb2RlX2Zyb21f ZXJybm8oZ3J1Yl9lcnJubyk7Cit9CisKK2djcnlfZXJyX2NvZGVfdAorZ3BnX2Vycl9jb2RlX2Zy b21fc3lzZXJyb3IgKHZvaWQpCit7CisgIHJldHVybiBncGdfZXJyb3JfZnJvbV9zeXNlcnJvciAo KTsKK30KKwordm9pZCBfZ2NyeV9mYXRhbF9lcnJvcihpbnQgcmMsIGNvbnN0IGNoYXIgKnRleHQg KQoreworICBncnViX2ZhdGFsKCJnY3J5IGZhdGFsICVkOiAlcyIsIHJjLCB0ZXh0KTsKK30KKwor Cit2b2lkIF9nY3J5X3JhbmRvbWl6ZSAodm9pZCAqYnVmZmVyIF9fYXR0cmlidXRlX18oKHVudXNl ZCkpLCBzaXplX3QgbGVuZ3RoIF9fYXR0cmlidXRlX18oKHVudXNlZCkpLAorICAgICAgICAgICAg ICAgICAgICAgIGVudW0gZ2NyeV9yYW5kb21fbGV2ZWwgbGV2ZWwgX19hdHRyaWJ1dGVfXygodW51 c2VkKSkpCit7CisgIGdydWJfZmF0YWwoIkF0dGVtcHQgdG8gZ2V0IHNlY3VyZSByYW5kb20gbnVt YmVycyIpOworfQorCisKK3ZvaWQgKl9nY3J5X3JhbmRvbV9ieXRlc19zZWN1cmUgKHNpemVfdCBu Ynl0ZXMgX19hdHRyaWJ1dGVfXygodW51c2VkKSksIGVudW0gZ2NyeV9yYW5kb21fbGV2ZWwgbGV2 ZWwgX19hdHRyaWJ1dGVfXygodW51c2VkKSkpCit7CisgIGdydWJfZmF0YWwoIkF0dGVtcHQgdG8g Z2V0IHNlY3VyZSByYW5kb20gbnVtYmVycyIpOworfQorCitjb25zdCBjaGFyICpncGdfc3RyZXJy b3IgKGdwZ19lcnJvcl90IGVycikKK3sKKyAgc3RhdGljIGNoYXIgYnVmWzI1Nl07CisgIGdydWJf c25wcmludGYoYnVmLCBzaXplb2YoYnVmKSAtIDUsICJncGcgZXJyb3IgJWRcbiIsIGVycik7Cisg IHJldHVybiBidWY7Cit9CmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL3Bvc2l4X3dyYXAvc3lz L3R5cGVzLmggYi9ncnViLWNvcmUvbGliL3Bvc2l4X3dyYXAvc3lzL3R5cGVzLmgKaW5kZXggMmYz ZTg2NTQ5Li43Mzc3NWM5Y2EgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIvcG9zaXhfd3JhcC9z eXMvdHlwZXMuaAorKysgYi9ncnViLWNvcmUvbGliL3Bvc2l4X3dyYXAvc3lzL3R5cGVzLmgKQEAg LTM5LDEyICszOSwxNiBAQCB0eXBlZGVmIGdydWJfaW50MzJfdCBpbnQzMl90OwogdHlwZWRlZiBn cnViX2ludDY0X3QgaW50NjRfdDsKIAogI2RlZmluZSBIQVZFX1U2NF9UWVBFREVGIDEKKyNkZWZp bmUgSEFWRV9UWVBFX1U2NCAxCiB0eXBlZGVmIGdydWJfdWludDY0X3QgdTY0OwogI2RlZmluZSBI QVZFX1UzMl9UWVBFREVGIDEKKyNkZWZpbmUgSEFWRV9UWVBFX1UzMiAxCiB0eXBlZGVmIGdydWJf dWludDMyX3QgdTMyOwogI2RlZmluZSBIQVZFX1UxNl9UWVBFREVGIDEKKyNkZWZpbmUgSEFWRV9U WVBFX1UxNiAxCiB0eXBlZGVmIGdydWJfdWludDE2X3QgdTE2OwogI2RlZmluZSBIQVZFX0JZVEVf VFlQRURFRiAxCisjZGVmaW5lIEhBVkVfVFlQRV9CWVRFIDEKIHR5cGVkZWYgZ3J1Yl91aW50OF90 IGJ5dGU7CiAKIHR5cGVkZWYgZ3J1Yl9hZGRyX3QgdWludHB0cl90OwpkaWZmIC0tZ2l0IGEvZ3J1 Yi1jb3JlL2xpYi94emVtYmVkL3h6X2RlY19zdHJlYW0uYyBiL2dydWItY29yZS9saWIveHplbWJl ZC94el9kZWNfc3RyZWFtLmMKaW5kZXggODMyZDhhZjlhLi5mMmRkNDJkYzIgMTAwNjQ0Ci0tLSBh L2dydWItY29yZS9saWIveHplbWJlZC94el9kZWNfc3RyZWFtLmMKKysrIGIvZ3J1Yi1jb3JlL2xp Yi94emVtYmVkL3h6X2RlY19zdHJlYW0uYwpAQCAtNDI1LDkgKzQyNSw5IEBAIHN0YXRpYyBlbnVt IHh6X3JldCBoYXNoX3ZhbGlkYXRlKHN0cnVjdCB4el9kZWMgKnMsIHN0cnVjdCB4el9idWYgKmIs CiAKICNpZm5kZWYgR1JVQl9FTUJFRF9ERUNPTVBSRVNTT1IKIAlpZiAocy0+aGFzaCkKLQkJcy0+ aGFzaC0+aW5pdChzLT5oYXNoX2NvbnRleHQpOworCQlzLT5oYXNoLT5pbml0KHMtPmhhc2hfY29u dGV4dCwgMCk7CiAJaWYgKHMtPmNyYzMyKQotCQlzLT5jcmMzMi0+aW5pdChzLT5jcmMzMl9jb250 ZXh0KTsKKwkJcy0+Y3JjMzItPmluaXQocy0+Y3JjMzJfY29udGV4dCwgMCk7CiAjZW5kaWYKIAlz LT5oYXZlX2hhc2hfdmFsdWUgPSAwOwogCXMtPnBvcyA9IDA7CkBAIC00OTMsNyArNDkzLDcgQEAg c3RhdGljIGVudW0geHpfcmV0IGRlY19zdHJlYW1faGVhZGVyKHN0cnVjdCB4el9kZWMgKnMpCiAJ CXMtPmNyYzMyX2NvbnRleHQgPSBrbWFsbG9jKHMtPmNyYzMyLT5jb250ZXh0c2l6ZSwgR0ZQX0tF Uk5FTCk7CiAJCWlmIChzLT5jcmMzMl9jb250ZXh0ID09IE5VTEwpCiAJCQlyZXR1cm4gWFpfTUVN TElNSVRfRVJST1I7Ci0JCXMtPmNyYzMyLT5pbml0KHMtPmNyYzMyX2NvbnRleHQpOworCQlzLT5j cmMzMi0+aW5pdChzLT5jcmMzMl9jb250ZXh0LCAwKTsKIAl9CiAjZW5kaWYKIApAQCAtNTMxLDkg KzUzMSw5IEBAIHN0YXRpYyBlbnVtIHh6X3JldCBkZWNfc3RyZWFtX2hlYWRlcihzdHJ1Y3QgeHpf ZGVjICpzKQogCQkJCXJldHVybiBYWl9NRU1MSU1JVF9FUlJPUjsKIAkJCX0KIAotCQkJcy0+aGFz aC0+aW5pdChzLT5oYXNoX2NvbnRleHQpOwotCQkJcy0+aGFzaC0+aW5pdChzLT5pbmRleC5oYXNo Lmhhc2hfY29udGV4dCk7Ci0gCQkJcy0+aGFzaC0+aW5pdChzLT5ibG9jay5oYXNoLmhhc2hfY29u dGV4dCk7CisJCQlzLT5oYXNoLT5pbml0KHMtPmhhc2hfY29udGV4dCwgMCk7CisJCQlzLT5oYXNo LT5pbml0KHMtPmluZGV4Lmhhc2guaGFzaF9jb250ZXh0LCAwKTsKKyAJCQlzLT5oYXNoLT5pbml0 KHMtPmJsb2NrLmhhc2guaGFzaF9jb250ZXh0LCAwKTsKIAkJfQogI2VuZGlmCiAJfQpAQCAtMTAx NCw5ICsxMDE0LDkgQEAgdm9pZCB4el9kZWNfcmVzZXQoc3RydWN0IHh6X2RlYyAqcykKICNpZm5k ZWYgR1JVQl9FTUJFRF9ERUNPTVBSRVNTT1IKIAlpZiAocy0+aGFzaCkKIAl7Ci0JCXMtPmhhc2gt PmluaXQocy0+aGFzaF9jb250ZXh0KTsKLQkJcy0+aGFzaC0+aW5pdChzLT5pbmRleC5oYXNoLmhh c2hfY29udGV4dCk7Ci0JCXMtPmhhc2gtPmluaXQocy0+YmxvY2suaGFzaC5oYXNoX2NvbnRleHQp OworCQlzLT5oYXNoLT5pbml0KHMtPmhhc2hfY29udGV4dCwgMCk7CisJCXMtPmhhc2gtPmluaXQo cy0+aW5kZXguaGFzaC5oYXNoX2NvbnRleHQsIDApOworCQlzLT5oYXNoLT5pbml0KHMtPmJsb2Nr Lmhhc2guaGFzaF9jb250ZXh0LCAwKTsKIAl9CiAjZW5kaWYKIAlzLT5oYXZlX2hhc2hfdmFsdWUg PSAwOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ncnViL2NyeXB0by5oIGIvaW5jbHVkZS9ncnViL2Ny eXB0by5oCmluZGV4IDMxYzg3YzMwMi4uMDFmODZiZTcxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2dy dWIvY3J5cHRvLmgKKysrIGIvaW5jbHVkZS9ncnViL2NyeXB0by5oCkBAIC02NSw3ICs2NSwzMSBA QCB0eXBlZGVmIGVudW0KICAgICBHUEdfRVJSX1dST05HX1BVQktFWV9BTEdPLAogICAgIEdQR19F UlJfT1VUX09GX01FTU9SWSwKICAgICBHUEdfRVJSX1RPT19MQVJHRSwKLSAgICBHUEdfRVJSX0VO T01FTQorICAgIEdQR19FUlJfRU5PTUVNLAorICAgIEdQR19FUlJfQ0hFQ0tTVU0sCisgICAgR1BH X0VSUl9JTlZfTEVOR1RILAorICAgIEdQR19FUlJfVkFMVUVfTk9UX0ZPVU5ELAorICAgIEdQR19F UlJfRVJBTkdFLAorICAgIEdQR19FUlJfSU5WX0RBVEEsCisgICAgR1BHX0VSUl9FTkNPRElOR19Q Uk9CTEVNLAorICAgIEdQR19FUlJfQlVGRkVSX1RPT19TSE9SVCwKKyAgICBHUEdfRVJSX1NZTlRB WCwKKyAgICBHUEdfRVJSX1NFWFBfSU5WX0xFTl9TUEVDLAorICAgIEdQR19FUlJfU0VYUF9VTk1B VENIRURfREgsCisgICAgR1BHX0VSUl9TRVhQX1VOTUFUQ0hFRF9QQVJFTiwKKyAgICBHUEdfRVJS X1NFWFBfWkVST19QUkVGSVgsCisgICAgR1BHX0VSUl9TRVhQX05FU1RFRF9ESCwKKyAgICBHUEdf RVJSX1NFWFBfVU5FWFBFQ1RFRF9QVU5DLAorICAgIEdQR19FUlJfU0VYUF9CQURfQ0hBUkFDVEVS LAorICAgIEdQR19FUlJfU0VYUF9OT1RfQ0FOT05JQ0FMLAorICAgIEdQR19FUlJfU0VYUF9TVFJJ TkdfVE9PX0xPTkcsCisgICAgR1BHX0VSUl9TRVhQX0JBRF9RVU9UQVRJT04sCisgICAgR1BHX0VS Ul9TRVhQX09ERF9IRVhfTlVNQkVSUywKKyAgICBHUEdfRVJSX1NFWFBfQkFEX0hFWF9DSEFSLAor ICAgIEdQR19FUlJfTElNSVRfUkVBQ0hFRCwKKyAgICBHUEdfRVJSX0VPRiwKKyAgICBHUEdfRVJS X0JBRF9EQVRBLAorICAgIEdQR19FUlJfRUlOVkFMLAogICB9IGdwZ19lcnJfY29kZV90OwogdHlw ZWRlZiBncGdfZXJyX2NvZGVfdCBncGdfZXJyb3JfdDsKIHR5cGVkZWYgZ3BnX2Vycm9yX3QgZ2Ny eV9lcnJvcl90OwpAQCAtODQsMzcgKzEwOCw2MCBAQCBlbnVtIGdjcnlfY2lwaGVyX21vZGVzCiAg IH07CiAjZW5kaWYKIAorLyogRXh0cmEgYWxnbyBJRHMgbm90IGNvbWluZyBmcm9tIGdjcnlwdC4g ICovCisjZGVmaW5lIEdDUllfTURfQURMRVIzMiAxMDMwMQorI2RlZmluZSBHQ1JZX01EX0NSQzY0 IDEwMzAyCisKIC8qIERvbid0IHJlbHkgb24gdGhpcy4gQ2hlY2shICAqLwogI2RlZmluZSBHUlVC X0NSWVBUT19NQVhfTURMRU4gNjQKICNkZWZpbmUgR1JVQl9DUllQVE9fTUFYX0NJUEhFUl9CTE9D S1NJWkUgMTYKICNkZWZpbmUgR1JVQl9DUllQVE9fTUFYX01EX0NPTlRFWFRfU0laRSAyNTYKIAog LyogVHlwZSBmb3IgdGhlIGNpcGhlcl9zZXRrZXkgZnVuY3Rpb24uICAqLworc3RydWN0IGNpcGhl cl9idWxrX29wczsKKwogdHlwZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpnY3J5X2NpcGhlcl9zZXRr ZXlfdCkgKHZvaWQgKmMsCiAJCQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAotCQkJCQkJ IHVuc2lnbmVkIGtleWxlbik7CisJCQkJCQkgdW5zaWduZWQga2V5bGVuLAorCQkJCQkJIHN0cnVj dCBjaXBoZXJfYnVsa19vcHMgKmJ1bGtfb3BzKTsKIAogLyogVHlwZSBmb3IgdGhlIGNpcGhlcl9l bmNyeXB0IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgdm9pZCAoKmdjcnlfY2lwaGVyX2VuY3J5cHRf dCkgKHZvaWQgKmMsCi0JCQkJICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dGJ1ZiwKLQkJCQkgICAg ICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5idWYpOwordHlwZWRlZiB1bnNpZ25lZCBpbnQgKCpn Y3J5X2NpcGhlcl9lbmNyeXB0X3QpICh2b2lkICpjLAorCQkJCQkgICAgICAgdW5zaWduZWQgY2hh ciAqb3V0YnVmLAorCQkJCQkgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5idWYpOwogCiAv KiBUeXBlIGZvciB0aGUgY2lwaGVyX2RlY3J5cHQgZnVuY3Rpb24uICAqLwotdHlwZWRlZiB2b2lk ICgqZ2NyeV9jaXBoZXJfZGVjcnlwdF90KSAodm9pZCAqYywKLQkJCQkgICAgICAgdW5zaWduZWQg Y2hhciAqb3V0YnVmLAotCQkJCSAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbmJ1Zik7Cit0 eXBlZGVmIHVuc2lnbmVkIGludCAoKmdjcnlfY2lwaGVyX2RlY3J5cHRfdCkgKHZvaWQgKmMsCisJ CQkJCSAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRidWYsCisJCQkJCSAgICAgICBjb25zdCB1bnNp Z25lZCBjaGFyICppbmJ1Zik7CiAKIC8qIFR5cGUgZm9yIHRoZSBjaXBoZXJfc3RlbmNyeXB0IGZ1 bmN0aW9uLiAgKi8KIHR5cGVkZWYgdm9pZCAoKmdjcnlfY2lwaGVyX3N0ZW5jcnlwdF90KSAodm9p ZCAqYywKIAkJCQkJIHVuc2lnbmVkIGNoYXIgKm91dGJ1ZiwKIAkJCQkJIGNvbnN0IHVuc2lnbmVk IGNoYXIgKmluYnVmLAotCQkJCQkgdW5zaWduZWQgaW50IG4pOworCQkJCQkgZ3J1Yl9zaXplX3Qg bik7CiAKIC8qIFR5cGUgZm9yIHRoZSBjaXBoZXJfc3RkZWNyeXB0IGZ1bmN0aW9uLiAgKi8KIHR5 cGVkZWYgdm9pZCAoKmdjcnlfY2lwaGVyX3N0ZGVjcnlwdF90KSAodm9pZCAqYywKIAkJCQkJIHVu c2lnbmVkIGNoYXIgKm91dGJ1ZiwKIAkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmluYnVmLAot CQkJCQkgdW5zaWduZWQgaW50IG4pOworCQkJCQkgZ3J1Yl9zaXplX3Qgbik7CisKK3R5cGVkZWYg dm9pZCAoKnNlbGZ0ZXN0X3JlcG9ydF9mdW5jX3QpKGNvbnN0IGNoYXIgKmRvbWFpbiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBhbGdvLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqd2hhdCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycmRlc2MpOworCisvKiBU aGUgdHlwZSB1c2VkIHRvIGNvbnZleSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGEgY2lwaGVy LiAgKi8KK3R5cGVkZWYgZ3BnX2Vycl9jb2RlX3QgKCpnY3J5X2NpcGhlcl9zZXRfZXh0cmFfaW5m b190KQorICAgICAodm9pZCAqYywgaW50IHdoYXQsIGNvbnN0IHZvaWQgKmJ1ZmZlciwgZ3J1Yl9z aXplX3QgYnVmbGVuKTsKKworLyogVGhlIHR5cGUgdXNlZCB0byBzZXQgYW4gSVYgZGlyZWN0bHkg aW4gdGhlIGFsZ29yaXRobSBtb2R1bGUuICAqLwordHlwZWRlZiB2b2lkICgqZ2NyeV9jaXBoZXJf c2V0aXZfZnVuY190KSh2b2lkICpjLCBjb25zdCBncnViX3VpbnQ4X3QgKml2LCBncnViX3NpemVf dCBpdmxlbik7CisKKy8qIERlZmluaXRpb24gb2YgdGhlIHNlbGZ0ZXN0IGZ1bmN0aW9ucy4gICov Cit0eXBlZGVmIGdwZ19lcnJfY29kZV90ICgqZ2NyeV9zZWxmdGVzdF9mdW5jX3QpCisgICAgIChp bnQgYWxnbywgaW50IGV4dGVuZGVkLCBzZWxmdGVzdF9yZXBvcnRfZnVuY190IHJlcG9ydCk7CiAK IHR5cGVkZWYgc3RydWN0IGdjcnlfY2lwaGVyX29pZF9zcGVjCiB7CkBAIC0xMjUsOSArMTcyLDE0 IEBAIHR5cGVkZWYgc3RydWN0IGdjcnlfY2lwaGVyX29pZF9zcGVjCiAvKiBNb2R1bGUgc3BlY2lm aWNhdGlvbiBzdHJ1Y3R1cmUgZm9yIGNpcGhlcnMuICAqLwogdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9j aXBoZXJfc3BlYwogeworICBpbnQgYWxnbzsKKyAgc3RydWN0IHsKKyAgICB1bnNpZ25lZCBpbnQg ZGlzYWJsZWQ6MTsKKyAgICB1bnNpZ25lZCBpbnQgZmlwczoxOworICB9IGZsYWdzOwogICBjb25z dCBjaGFyICpuYW1lOwogICBjb25zdCBjaGFyICoqYWxpYXNlczsKLSAgZ2NyeV9jaXBoZXJfb2lk X3NwZWNfdCAqb2lkczsKKyAgY29uc3QgZ2NyeV9jaXBoZXJfb2lkX3NwZWNfdCAqb2lkczsKICAg Z3J1Yl9zaXplX3QgYmxvY2tzaXplOwogICBncnViX3NpemVfdCBrZXlsZW47CiAgIGdydWJfc2l6 ZV90IGNvbnRleHRzaXplOwpAQCAtMTM2LDYgKzE4OCwxMCBAQCB0eXBlZGVmIHN0cnVjdCBnY3J5 X2NpcGhlcl9zcGVjCiAgIGdjcnlfY2lwaGVyX2RlY3J5cHRfdCBkZWNyeXB0OwogICBnY3J5X2Np cGhlcl9zdGVuY3J5cHRfdCBzdGVuY3J5cHQ7CiAgIGdjcnlfY2lwaGVyX3N0ZGVjcnlwdF90IHN0 ZGVjcnlwdDsKKyAgZ2NyeV9zZWxmdGVzdF9mdW5jX3Qgc2VsZnRlc3Q7CisgIGdjcnlfY2lwaGVy X3NldF9leHRyYV9pbmZvX3Qgc2V0X2V4dHJhX2luZm87CisgIGdjcnlfY2lwaGVyX3NldGl2X2Z1 bmNfdCBzZXRpdjsKKwogI2lmZGVmIEdSVUJfVVRJTAogICBjb25zdCBjaGFyICptb2RuYW1lOwog I2VuZGlmCkBAIC0xNDMsNyArMTk5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9jaXBoZXJfc3Bl YwogfSBnY3J5X2NpcGhlcl9zcGVjX3Q7CiAKIC8qIFR5cGUgZm9yIHRoZSBtZF9pbml0IGZ1bmN0 aW9uLiAgKi8KLXR5cGVkZWYgdm9pZCAoKmdjcnlfbWRfaW5pdF90KSAodm9pZCAqYyk7Cit0eXBl ZGVmIHZvaWQgKCpnY3J5X21kX2luaXRfdCkgKHZvaWQgKmMsIHVuc2lnbmVkIGludCBmbGFncyk7 CiAKIC8qIFR5cGUgZm9yIHRoZSBtZF93cml0ZSBmdW5jdGlvbi4gICovCiB0eXBlZGVmIHZvaWQg KCpnY3J5X21kX3dyaXRlX3QpICh2b2lkICpjLCBjb25zdCB2b2lkICpidWYsIGdydWJfc2l6ZV90 IG5ieXRlcyk7CkBAIC0xNjIsMTYgKzIxOCwyNCBAQCB0eXBlZGVmIHN0cnVjdCBnY3J5X21kX29p ZF9zcGVjCiAvKiBNb2R1bGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUgZm9yIG1lc3NhZ2UgZGln ZXN0cy4gICovCiB0eXBlZGVmIHN0cnVjdCBnY3J5X21kX3NwZWMKIHsKKyAgaW50IGFsZ287Cisg IHN0cnVjdCB7CisgICAgdW5zaWduZWQgaW50IGRpc2FibGVkOjE7CisgICAgdW5zaWduZWQgaW50 IGZpcHM6MTsKKyAgfSBmbGFnczsKICAgY29uc3QgY2hhciAqbmFtZTsKLSAgdW5zaWduZWQgY2hh ciAqYXNub2lkOworICBjb25zdCB1bnNpZ25lZCBjaGFyICphc25vaWQ7CiAgIGludCBhc25sZW47 Ci0gIGdjcnlfbWRfb2lkX3NwZWNfdCAqb2lkczsKKyAgY29uc3QgZ2NyeV9tZF9vaWRfc3BlY190 ICpvaWRzOwogICBncnViX3NpemVfdCBtZGxlbjsKICAgZ2NyeV9tZF9pbml0X3QgaW5pdDsKICAg Z2NyeV9tZF93cml0ZV90IHdyaXRlOwogICBnY3J5X21kX2ZpbmFsX3QgZmluYWw7CiAgIGdjcnlf bWRfcmVhZF90IHJlYWQ7CisgIHZvaWQgKmV4dHJhY3Q7CisgIHZvaWQgKmhhc2hfYnVmZmVyczsK ICAgZ3J1Yl9zaXplX3QgY29udGV4dHNpemU7IC8qIGFsbG9jYXRlIHRoaXMgYW1vdW50IG9mIGNv bnRleHQgKi8KKwogICAvKiBCbG9jayBzaXplLCBuZWVkZWQgZm9yIEhNQUMuICAqLwogICBncnVi X3NpemVfdCBibG9ja3NpemU7CiAjaWZkZWYgR1JVQl9VVElMCkBAIC0xODAsNTQgKzI0NCwxMjMg QEAgdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9tZF9zcGVjCiAgIHN0cnVjdCBnY3J5X21kX3NwZWMgKm5l eHQ7CiB9IGdjcnlfbWRfc3BlY190OwogCit0eXBlZGVmIHN0cnVjdCBnY3J5X21kX2hhbmRsZSpn Y3J5X21kX2hkX3Q7CisKIHN0cnVjdCBnY3J5X21waTsKIHR5cGVkZWYgc3RydWN0IGdjcnlfbXBp ICpnY3J5X21waV90OwogCitzdHJ1Y3QgZ2NyeV9zZXhwOwordHlwZWRlZiBzdHJ1Y3QgZ2NyeV9z ZXhwICpnY3J5X3NleHBfdDsKKworCisjZGVmaW5lIFBVQktFWV9GTEFHX05PX0JMSU5ESU5HICAg ICgxIDw8IDApCisjZGVmaW5lIFBVQktFWV9GTEFHX1JGQzY5NzkgICAgICAgICgxIDw8IDEpCisj ZGVmaW5lIFBVQktFWV9GTEFHX0ZJWEVETEVOICAgICAgICgxIDw8IDIpCisjZGVmaW5lIFBVQktF WV9GTEFHX0xFR0FDWVJFU1VMVCAgICgxIDw8IDMpCisjZGVmaW5lIFBVQktFWV9GTEFHX1JBV19G TEFHICAgICAgICgxIDw8IDQpCisjZGVmaW5lIFBVQktFWV9GTEFHX1RSQU5TSUVOVF9LRVkgICgx IDw8IDUpCisjZGVmaW5lIFBVQktFWV9GTEFHX1VTRV9YOTMxICAgICAgICgxIDw8IDYpCisjZGVm aW5lIFBVQktFWV9GTEFHX1VTRV9GSVBTMTg2ICAgICgxIDw8IDcpCisjZGVmaW5lIFBVQktFWV9G TEFHX1VTRV9GSVBTMTg2XzIgICgxIDw8IDgpCisjZGVmaW5lIFBVQktFWV9GTEFHX1BBUkFNICAg ICAgICAgICgxIDw8IDkpCisjZGVmaW5lIFBVQktFWV9GTEFHX0NPTVAgICAgICAgICAgICgxIDw8 IDEwKQorI2RlZmluZSBQVUJLRVlfRkxBR19OT0NPTVAgICAgICAgICAoMSA8PCAxMSkKKyNkZWZp bmUgUFVCS0VZX0ZMQUdfRUREU0EgICAgICAgICAgKDEgPDwgMTIpCisjZGVmaW5lIFBVQktFWV9G TEFHX0dPU1QgICAgICAgICAgICgxIDw8IDEzKQorI2RlZmluZSBQVUJLRVlfRkxBR19OT19LRVlU RVNUICAgICAoMSA8PCAxNCkKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfREpCX1RXRUFLICAgICAgKDEg PDwgMTUpCisjZGVmaW5lIFBVQktFWV9GTEFHX1NNMiAgICAgICAgICAgICgxIDw8IDE2KQorI2Rl ZmluZSBQVUJLRVlfRkxBR19QUkVIQVNIICAgICAgICAoMSA8PCAxNykKKworZW51bSBwa19vcGVy YXRpb24KKyAgeworICAgIFBVQktFWV9PUF9FTkNSWVBULAorICAgIFBVQktFWV9PUF9ERUNSWVBU LAorICAgIFBVQktFWV9PUF9TSUdOLAorICAgIFBVQktFWV9PUF9WRVJJRlkKKyAgfTsKKworZW51 bSBwa19lbmNvZGluZworICB7CisgICAgUFVCS0VZX0VOQ19SQVcsCisgICAgUFVCS0VZX0VOQ19Q S0NTMSwKKyAgICBQVUJLRVlfRU5DX1BLQ1MxX1JBVywKKyAgICBQVUJLRVlfRU5DX09BRVAsCisg ICAgUFVCS0VZX0VOQ19QU1MsCisgICAgUFVCS0VZX0VOQ19VTktOT1dOCisgIH07CisKK3N0cnVj dCBwa19lbmNvZGluZ19jdHgKK3sKKyAgZW51bSBwa19vcGVyYXRpb24gb3A7CisgIHVuc2lnbmVk IGludCBuYml0czsKKworICBlbnVtIHBrX2VuY29kaW5nIGVuY29kaW5nOworICBpbnQgZmxhZ3M7 CisKKyAgaW50IGhhc2hfYWxnbzsKKworICAvKiBmb3IgT0FFUCAqLworICB1bnNpZ25lZCBjaGFy ICpsYWJlbDsKKyAgZ3J1Yl9zaXplX3QgbGFiZWxsZW47CisKKyAgLyogZm9yIFBTUyAqLworICBn cnViX3NpemVfdCBzYWx0bGVuOworCisgIGludCAoKiB2ZXJpZnlfY21wKSAodm9pZCAqb3BhcXVl LCBnY3J5X21waV90IHRtcCk7CisgIHZvaWQgKnZlcmlmeV9hcmc7Cit9OworCiAvKiBUeXBlIGZv ciB0aGUgcGtfZ2VuZXJhdGUgZnVuY3Rpb24uICAqLwotdHlwZWRlZiBnY3J5X2Vycl9jb2RlX3Qg KCpnY3J5X3BrX2dlbmVyYXRlX3QpIChpbnQgYWxnbywKLQkJCQkJICAgICAgIHVuc2lnbmVkIGlu dCBuYml0cywKLQkJCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgdXNlX2UsCi0JCQkJCSAgICAgICBn Y3J5X21waV90ICpza2V5LAotCQkJCQkgICAgICAgZ2NyeV9tcGlfdCAqKnJldGZhY3RvcnMpOwor dHlwZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpnY3J5X3BrX2dlbmVyYXRlX3QpIChnY3J5X3NleHBf dCBnZW5wYXJtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ2NyeV9zZXhwX3QgKnJfc2tleSk7CiAKIC8qIFR5cGUgZm9yIHRoZSBwa19jaGVja19zZWNy ZXRfa2V5IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9wa19j aGVja19zZWNyZXRfa2V5X3QpIChpbnQgYWxnbywKLQkJCQkJCSAgICAgICBnY3J5X21waV90ICpz a2V5KTsKK3R5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9wa19jaGVja19zZWNyZXRfa2V5 X3QpIChnY3J5X3NleHBfdCBrZXlwYXJtcyk7CiAKIC8qIFR5cGUgZm9yIHRoZSBwa19lbmNyeXB0 IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9wa19lbmNyeXB0 X3QpIChpbnQgYWxnbywKLQkJCQkJICAgICAgZ2NyeV9tcGlfdCAqcmVzYXJyLAotCQkJCQkgICAg ICBnY3J5X21waV90IGRhdGEsCi0JCQkJCSAgICAgIGdjcnlfbXBpX3QgKnBrZXksCi0JCQkJCSAg ICAgIGludCBmbGFncyk7Cit0eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfZW5jcnlw dF90KSAoZ2NyeV9zZXhwX3QgKnJfY2lwaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBnY3J5X3NleHBfdCBzX2RhdGEsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3Qga2V5cGFybXMpOwogCiAvKiBU eXBlIGZvciB0aGUgcGtfZGVjcnlwdCBmdW5jdGlvbi4gICovCi10eXBlZGVmIGdjcnlfZXJyX2Nv ZGVfdCAoKmdjcnlfcGtfZGVjcnlwdF90KSAoaW50IGFsZ28sCi0JCQkJCSAgICAgIGdjcnlfbXBp X3QgKnJlc3VsdCwKLQkJCQkJICAgICAgZ2NyeV9tcGlfdCAqZGF0YSwKLQkJCQkJICAgICAgZ2Ny eV9tcGlfdCAqc2tleSwKLQkJCQkJICAgICAgaW50IGZsYWdzKTsKK3R5cGVkZWYgZ2NyeV9lcnJf Y29kZV90ICgqZ2NyeV9wa19kZWNyeXB0X3QpIChnY3J5X3NleHBfdCAqcl9wbGFpbiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY3J5X3NleHBfdCBzX2Rh dGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NyeV9z ZXhwX3Qga2V5cGFybXMpOwogCiAvKiBUeXBlIGZvciB0aGUgcGtfc2lnbiBmdW5jdGlvbi4gICov Ci10eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfc2lnbl90KSAoaW50IGFsZ28sCi0J CQkJCSAgIGdjcnlfbXBpX3QgKnJlc2FyciwKLQkJCQkJICAgZ2NyeV9tcGlfdCBkYXRhLAotCQkJ CQkgICBnY3J5X21waV90ICpza2V5KTsKK3R5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9w a19zaWduX3QpIChnY3J5X3NleHBfdCAqcl9zaWcsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3Qgc19kYXRhLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IGtleXBhcm1zKTsKIAogLyogVHlw ZSBmb3IgdGhlIHBrX3ZlcmlmeSBmdW5jdGlvbi4gICovCi10eXBlZGVmIGdjcnlfZXJyX2NvZGVf dCAoKmdjcnlfcGtfdmVyaWZ5X3QpIChpbnQgYWxnbywKLQkJCQkJICAgICBnY3J5X21waV90IGhh c2gsCi0JCQkJCSAgICAgZ2NyeV9tcGlfdCAqZGF0YSwKLQkJCQkJICAgICBnY3J5X21waV90ICpw a2V5LAotCQkJCQkgICAgIGludCAoKmNtcCkgKHZvaWQgKiwgZ2NyeV9tcGlfdCksCi0JCQkJCSAg ICAgdm9pZCAqb3BhcXVldik7Cit0eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfdmVy aWZ5X3QpIChnY3J5X3NleHBfdCBzX3NpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IHNfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IGtleXBhcm1zKTsKIAogLyogVHlw ZSBmb3IgdGhlIHBrX2dldF9uYml0cyBmdW5jdGlvbi4gICovCi10eXBlZGVmIHVuc2lnbmVkICgq Z2NyeV9wa19nZXRfbmJpdHNfdCkgKGludCBhbGdvLCBnY3J5X21waV90ICpwa2V5KTsKK3R5cGVk ZWYgdW5zaWduZWQgKCpnY3J5X3BrX2dldF9uYml0c190KSAoZ2NyeV9zZXhwX3Qga2V5cGFybXMp OworCisvKiBUaGUgdHlwZSB1c2VkIHRvIGNvbXB1dGUgdGhlIGtleWdyaXAuICAqLwordHlwZWRl ZiBncGdfZXJyX2NvZGVfdCAoKnBrX2NvbXBfa2V5Z3JpcF90KSAoZ2NyeV9tZF9oZF90IG1kLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3Qg a2V5cGFybSk7CisKKy8qIFRoZSB0eXBlIHVzZWQgdG8gcXVlcnkgYW4gRUNDIGN1cnZlIG5hbWUu ICAqLwordHlwZWRlZiBjb25zdCBjaGFyICooKnBrX2dldF9jdXJ2ZV90KShnY3J5X3NleHBfdCBr ZXlwYXJtcywgaW50IGl0ZXJhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgKnJfbmJpdHMpOworCisvKiBUaGUgdHlwZSB1c2VkIHRvIHF1ZXJ5 IEVDQyBjdXJ2ZSBwYXJhbWV0ZXJzIGJ5IG5hbWUuICAqLwordHlwZWRlZiBnY3J5X3NleHBfdCAo KnBrX2dldF9jdXJ2ZV9wYXJhbV90KShjb25zdCBjaGFyICpuYW1lKTsKIAogLyogTW9kdWxlIHNw ZWNpZmljYXRpb24gc3RydWN0dXJlIGZvciBtZXNzYWdlIGRpZ2VzdHMuICAqLwogdHlwZWRlZiBz dHJ1Y3QgZ2NyeV9wa19zcGVjCiB7CisgIGludCBhbGdvOworICBzdHJ1Y3QgeworICAgIHVuc2ln bmVkIGludCBkaXNhYmxlZDoxOworICAgIHVuc2lnbmVkIGludCBmaXBzOjE7CisgIH0gZmxhZ3M7 CisgIGludCB1c2U7CiAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgIGNvbnN0IGNoYXIgKiphbGlhc2Vz OwogICBjb25zdCBjaGFyICplbGVtZW50c19wa2V5OwpAQCAtMjM1LDcgKzM2OCw2IEBAIHR5cGVk ZWYgc3RydWN0IGdjcnlfcGtfc3BlYwogICBjb25zdCBjaGFyICplbGVtZW50c19lbmM7CiAgIGNv bnN0IGNoYXIgKmVsZW1lbnRzX3NpZzsKICAgY29uc3QgY2hhciAqZWxlbWVudHNfZ3JpcDsKLSAg aW50IHVzZTsKICAgZ2NyeV9wa19nZW5lcmF0ZV90IGdlbmVyYXRlOwogICBnY3J5X3BrX2NoZWNr X3NlY3JldF9rZXlfdCBjaGVja19zZWNyZXRfa2V5OwogICBnY3J5X3BrX2VuY3J5cHRfdCBlbmNy eXB0OwpAQCAtMjQzLDYgKzM3NSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBnY3J5X3BrX3NwZWMKICAg Z2NyeV9wa19zaWduX3Qgc2lnbjsKICAgZ2NyeV9wa192ZXJpZnlfdCB2ZXJpZnk7CiAgIGdjcnlf cGtfZ2V0X25iaXRzX3QgZ2V0X25iaXRzOworICBwa19jb21wX2tleWdyaXBfdCBjb21wX2tleWdy aXA7CisgIHBrX2dldF9jdXJ2ZV90IGdldF9jdXJ2ZTsKKyAgcGtfZ2V0X2N1cnZlX3BhcmFtX3Qg Z2V0X2N1cnZlX3BhcmFtOworCiAjaWZkZWYgR1JVQl9VVElMCiAgIGNvbnN0IGNoYXIgKm1vZG5h bWU7CiAjZW5kaWYKQEAgLTM0NSw2ICs0ODEsMTAgQEAgZ3J1Yl9jcnlwdG9faGFzaCAoY29uc3Qg Z2NyeV9tZF9zcGVjX3QgKmhhc2gsIHZvaWQgKm91dCwgY29uc3Qgdm9pZCAqaW4sCiAJCSAgZ3J1 Yl9zaXplX3QgaW5sZW4pOwogY29uc3QgZ2NyeV9tZF9zcGVjX3QgKgogZ3J1Yl9jcnlwdG9fbG9v a3VwX21kX2J5X25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpOworY29uc3QgZ2NyeV9tZF9zcGVjX3Qg KgorZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X2FsZ28gKGludCBhbGdvKTsKK2NvbnN0IGdjcnlf bWRfc3BlY190ICoKK2dydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9vaWQgKGNvbnN0IGNoYXIgKm9p ZCk7CiAKIGdydWJfZXJyX3QKIGdydWJfY3J5cHRvX2djcnlfZXJyb3IgKGdjcnlfZXJyX2NvZGVf dCBpbik7CkBAIC00MDgsNyArNTQ4LDM1IEBAIHZvaWQgX2djcnlfYXNzZXJ0X2ZhaWxlZCAoY29u c3QgY2hhciAqZXhwciwgY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsCiAKIHZvaWQgX2djcnlf YnVybl9zdGFjayAoaW50IGJ5dGVzKTsKIHZvaWQgX2djcnlfbG9nX2Vycm9yKCBjb25zdCBjaGFy ICpmbXQsIC4uLiApICBfX2F0dHJpYnV0ZV9fICgoZm9ybWF0IChfX3ByaW50Zl9fLCAxLCAyKSkp Owordm9pZCBfZ2NyeV9sb2dfaW5mbyAoY29uc3QgY2hhciAqZm10LCAuLi4pOwordm9pZCBfX2dj cnlfYnVybl9zdGFjayAodW5zaWduZWQgaW50IHNpemUpOwordm9pZCBfX2djcnlfYnVybl9zdGFj a19kdW1teSAodm9pZCk7Cit2b2lkIF9nY3J5X2J1ZyggY29uc3QgY2hhciAqZmlsZSwgaW50IGxp bmUsIGNvbnN0IGNoYXIgKmZ1bmMgKTsKK3ZvaWQKK19nY3J5X2Zhc3Rfd2lwZW1lbW9yeSAodm9p ZCAqcHRyLCBncnViX3NpemVfdCBsZW4pOwordm9pZAorX2djcnlfZmFzdF93aXBlbWVtb3J5MiAo dm9pZCAqcHRyLCBpbnQgc2V0LCBncnViX3NpemVfdCBsZW4pOwordW5zaWduZWQgaW50CitfZ2Ny eV9jdF9tZW1lcXVhbCAoY29uc3Qgdm9pZCAqYjEsIGNvbnN0IHZvaWQgKmIyLCBncnViX3NpemVf dCBsZW4pOwordW5zaWduZWQgaW50CitfZ2NyeV9jdF9ub3RfbWVtZXF1YWwgKGNvbnN0IHZvaWQg KmIxLCBjb25zdCB2b2lkICpiMiwgZ3J1Yl9zaXplX3QgbGVuKTsKKworCitzdGF0aWMgaW5saW5l IHVuc2lnbmVkIGludCBfZ2NyeV9nZXRfaHdfZmVhdHVyZXModm9pZCkKK3sKKyAgcmV0dXJuIDA7 Cit9CiAKK3ZvaWQgKl9nY3J5X21hbGxvYyhncnViX3NpemVfdCBuKTsKK3ZvaWQgKl9nY3J5X21h bGxvY19zZWN1cmUoZ3J1Yl9zaXplX3Qgbik7Cit2b2lkICpfZ2NyeV94bWFsbG9jKGdydWJfc2l6 ZV90IG4pOwordm9pZCAqX2djcnlfeG1hbGxvY19zZWN1cmUoZ3J1Yl9zaXplX3Qgbik7Cit2b2lk IF9nY3J5X2ZyZWUgKHZvaWQgKnApOwordm9pZCAqX2djcnlfeHJlYWxsb2MgKHZvaWQgKmEsIGdy dWJfc2l6ZV90IG4pOworaW50IF9nY3J5X2lzX3NlY3VyZSAoY29uc3Qgdm9pZCAqYSk7Cit2b2lk ICpfZ2NyeV94Y2FsbG9jIChncnViX3NpemVfdCBuLCBncnViX3NpemVfdCBtKTsKK3ZvaWQgKl9n Y3J5X3hjYWxsb2Nfc2VjdXJlIChncnViX3NpemVfdCBuLCBncnViX3NpemVfdCBtKTsKK3ZvaWQg X2djcnlfZGl2aWRlX2J5X3plcm8gKHZvaWQpOwogCiAjaWZkZWYgR1JVQl9VVElMCiB2b2lkIGdy dWJfZ2NyeV9pbml0X2FsbCAodm9pZCk7CkBAIC00MTksNCArNTg3LDExIEBAIGdydWJfZ2V0X3Jh bmRvbSAodm9pZCAqb3V0LCBncnViX3NpemVfdCBsZW4pOwogCiAjZW5kaWYKIAordHlwZWRlZiBz dHJ1Y3QgX2dwZ3J0X2I2NHN0YXRlICpncGdydF9iNjRzdGF0ZV90OworZ3BncnRfYjY0c3RhdGVf dCBncGdydF9iNjRkZWNfc3RhcnQgKGNvbnN0IGNoYXIgKnRpdGxlKTsKK2dwZ19lcnJvcl90ICAg ICAgZ3BncnRfYjY0ZGVjX3Byb2MgKGdwZ3J0X2I2NHN0YXRlX3Qgc3RhdGUsCisJCQkJICAgIHZv aWQgKmJ1ZmZlciwgZ3J1Yl9zaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ3J1Yl9zaXplX3QgKnJfbmJ5dGVzKTsKK2dwZ19lcnJvcl90ICAgICAgZ3Bn cnRfYjY0ZGVjX2ZpbmlzaCAoZ3BncnRfYjY0c3RhdGVfdCBzdGF0ZSk7Citjb25zdCBjaGFyICpn cGdfc3RyZXJyb3IgKGdwZ19lcnJvcl90IGVycik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZ3J1Yi9nY3J5cHQvZ3BnLWVycm9yLmggYi9pbmNsdWRlL2dydWIvZ2NyeXB0L2dwZy1lcnJv ci5oCmluZGV4IDFlNDI1MDI4NC4uNDQ0YmVmMjIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2dydWIv Z2NyeXB0L2dwZy1lcnJvci5oCisrKyBiL2luY2x1ZGUvZ3J1Yi9nY3J5cHQvZ3BnLWVycm9yLmgK QEAgLTI5LDQgKzI5LDEzIEBAIGdwZ19lcnJfc291cmNlIChncGdfZXJyb3JfdCBlcnIgX19hdHRy aWJ1dGVfXyAoKHVudXNlZCkpKQogZ2NyeV9lcnJfY29kZV90CiBncGdfZXJyb3JfZnJvbV9zeXNl cnJvciAodm9pZCk7CiAKK2djcnlfZXJyX2NvZGVfdAorZ3BnX2Vycl9jb2RlX2Zyb21fc3lzZXJy b3IgKHZvaWQpOworCitnY3J5X2Vycl9jb2RlX3QKK2dwZ19lcnJvcl9mcm9tX2Vycm5vIChpbnQg ZXJyKTsKKworZ2NyeV9lcnJfY29kZV90CitncGdfZXJyX2NvZGVfZnJvbV9lcnJubyAoaW50IGVy cik7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdXRpbC9ncnViLWZzdGVzdC5jIGIvdXRpbC9ncnVi LWZzdGVzdC5jCmluZGV4IDdmZjkwMzdiOC4uMjRiMjBhYjkxIDEwMDY0NAotLS0gYS91dGlsL2dy dWItZnN0ZXN0LmMKKysrIGIvdXRpbC9ncnViLWZzdGVzdC5jCkBAIC0zNjUsNyArMzY1LDcgQEAg c3RhdGljIHZvaWQKIGNtZF9jcmMgKGNoYXIgKnBhdGhuYW1lKQogewogICBncnViX3VpbnQ4X3Qg KmNyYzMyX2NvbnRleHQgPSB4bWFsbG9jIChHUlVCX01EX0NSQzMyLT5jb250ZXh0c2l6ZSk7Ci0g IEdSVUJfTURfQ1JDMzItPmluaXQoY3JjMzJfY29udGV4dCk7CisgIEdSVUJfTURfQ1JDMzItPmlu aXQoY3JjMzJfY29udGV4dCwgMCk7CiAKICAgcmVhZF9maWxlIChwYXRobmFtZSwgY3JjX2hvb2ss IGNyYzMyX2NvbnRleHQpOwogICBHUlVCX01EX0NSQzMyLT5maW5hbChjcmMzMl9jb250ZXh0KTsK ZGlmZiAtLWdpdCBhL3V0aWwvaW1wb3J0X2djcnkucHkgYi91dGlsL2ltcG9ydF9nY3J5LnB5Cmlu ZGV4IDJiMzMyMmQzYS4uMTAyYzdkOGZmIDEwMDY0NAotLS0gYS91dGlsL2ltcG9ydF9nY3J5LnB5 CisrKyBiL3V0aWwvaW1wb3J0X2djcnkucHkKQEAgLTIyLDYgKzIyLDIzIEBAIGltcG9ydCBvcwog aW1wb3J0IGRhdGV0aW1lCiBpbXBvcnQgY29kZWNzCiAKK2RlZiByZW1vdmVzdWZmaXgoYmFzZTog c3RyLCBzdWZmaXg6IHN0cikgLT4gc3RyOgorICAgICIiIiBCYWNrcG9ydCBvZiBgcmVtb3Zlc3Vm Zml4YCBmcm9tIFBFUC02MTYgKFB5dGhvbiAzLjkrKSAiIiIKKworICAgIGlmIGJhc2UuZW5kc3dp dGgoc3VmZml4KToKKyAgICAgICAgcmV0dXJuIGJhc2VbOi1sZW4oc3VmZml4KV0KKyAgICBlbHNl OgorICAgICAgICByZXR1cm4gYmFzZQorCisKK2RlZiByZW1vdmVwcmVmaXgoYmFzZTogc3RyLCBw cmVmaXg6IHN0cikgLT4gc3RyOgorICAgICIiIiBCYWNrcG9ydCBvZiBgcmVtb3ZlcHJlZml4YCBm cm9tIFBFUC02MTYgKFB5dGhvbiAzLjkrKSAiIiIKKworICAgIGlmIGJhc2Uuc3RhcnRzd2l0aChw cmVmaXgpOgorICAgICAgICByZXR1cm4gYmFzZVtsZW4ocHJlZml4KTpdCisgICAgZWxzZToKKyAg ICAgICAgcmV0dXJuIGJhc2UKKwogaWYgbGVuIChzeXMuYXJndikgPCAzOgogICAgIHByaW50ICgi VXNhZ2U6ICVzIFNPVVJDRSBERVNUSU5BVElPTiIgJSBzeXMuYXJndlswXSkKICAgICBleGl0ICgw KQpAQCAtNjIsNiArNzksMTIgQEAgY29uZnV0aWwud3JpdGUgKCIgIGNmbGFncyA9ICckKENGTEFH U19HQ1JZKSc7XG4iKTsKIGNvbmZ1dGlsLndyaXRlICgiICBjcHBmbGFncyA9ICckKENQUEZMQUdT X0dDUlkpJztcbiIpOwogY29uZnV0aWwud3JpdGUgKCIgIGV4dHJhX2Rpc3QgPSBncnViLWNvcmUv bGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9DaGFuZ2VMb2c7XG4iKTsKIGNvbmZ1dGlsLndyaXRl ICgiXG4iKTsKKworZm9yIHNyYyBpbiBbJ3NyYy9jb25zdC10aW1lLmMnXToKKyAgICBjb25mdXRp bC53cml0ZSAoIiAgY29tbW9uID0gZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi8lcztcbiIg JSBzcmMpCisKK2NvbmZ1dGlsLndyaXRlICgiXG4iKTsKKwogY2hsb2cgPSAiIgogbW9kdWxlc19z eW1fbWQgPSBbXQogCkBAIC03OSwxMCArMTAyLDIzIEBAIG1kYmxvY2tzaXplcyA9IHsiX2djcnlf ZGlnZXN0X3NwZWNfY3JjMzIiIDogNjQsCiAgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9z cGVjX3NoYTI1NiIgOiA2NCwKICAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hh Mzg0IiA6IDEyOCwKICAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hhNTEyIiA6 IDEyOCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hhNTEyXzI1NiI6IDEy OCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hhNTEyXzIyNCI6IDEyOCwK ICAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfdGlnZXIiIDogNjQsCiAgICAgICAg ICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3RpZ2VyMSIgOiA2NCwKICAgICAgICAgICAgICAg ICAiX2djcnlfZGlnZXN0X3NwZWNfdGlnZXIyIiA6IDY0LAotICAgICAgICAgICAgICAgICJfZ2Ny eV9kaWdlc3Rfc3BlY193aGlybHBvb2wiIDogNjR9CisgICAgICAgICAgICAgICAgIl9nY3J5X2Rp Z2VzdF9zcGVjX3doaXJscG9vbCIgOiA2NCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0 X3NwZWNfc2hha2UxMjgiOiA2NCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNf c2hha2UyNTYiOiA2NCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc20zIjog NjQsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3N0cmlib2dfMjU2IjogNjQs CisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3N0cmlib2dfNTEyIjogNjQsCisg ICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTNfMjI0IjogMTE1MiAvIDgsCisg ICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTNfMjU2IjogMTA4OCAvIDgsCisg ICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTNfMzg0IjogODMyIC8gOCwKKyAg ICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hhM181MTIiOiA1NzYgLyA4LAorICAg ICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19nb3N0MzQxMV85NCI6IDMyLAorICAgICAg ICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19nb3N0MzQxMV9jcCI6IDMyfQogCiBjcnlwdG9s aXN0ID0gY29kZWNzLm9wZW4gKG9zLnBhdGguam9pbiAoY2lwaGVyX2Rpcl9vdXQsICJjcnlwdG8u bHN0IiksICJ3IiwgInV0Zi04IikKIApAQCAtOTksMjYgKzEzNSw0NyBAQCBjcnlwdG9saXN0Lndy aXRlICgiQUVTLTI1NjogZ2NyeV9yaWpuZGFlbFxuIik7CiBjcnlwdG9saXN0LndyaXRlICgiQURM RVIzMjogYWRsZXIzMlxuIik7CiBjcnlwdG9saXN0LndyaXRlICgiQ1JDNjQ6IGNyYzY0XG4iKTsK IAorZXh0cmFfZmlsZXMgPSB7CisgICAgImdjcnlfY2FtZWxsaWEiOiBbImNhbWVsbGlhLmMiXSwg IyBNYWluIGZpbGUgaXMgY2FtZWxsaWEtZ2x1ZS5jCisgICAgImdjcnlfc2hhNTEyIiAgOiBbImhh c2gtY29tbW9uLmMiXSwKK30KK2V4dHJhX2ZpbGVzX2xpc3QgPSBbeCBmb3IgeHMgaW4gZXh0cmFf ZmlsZXMudmFsdWVzKCkgZm9yIHggaW4geHNdICsgWyJwdWJrZXktdXRpbC5jIiwgInJzYS1jb21t b24uYyIsICJkc2EtY29tbW9uLmMiLCAibWQuYyJdCisKIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBo ZXJfZmlsZXM6CiAgICAgaW5maWxlID0gb3MucGF0aC5qb2luIChjaXBoZXJfZGlyX2luLCBjaXBo ZXJfZmlsZSkKICAgICBvdXRmaWxlID0gb3MucGF0aC5qb2luIChjaXBoZXJfZGlyX291dCwgY2lw aGVyX2ZpbGUpCiAgICAgaWYgY2lwaGVyX2ZpbGUgPT0gIkNoYW5nZUxvZyIgb3IgY2lwaGVyX2Zp bGUgPT0gIkNoYW5nZUxvZy0yMDExIjoKICAgICAgICAgY29udGludWUKICAgICBjaGxvZ25ldyA9 ICIJKiAlcyIgJSBjaXBoZXJfZmlsZQotICAgIGlmIHJlLm1hdGNoICgiKE1hbmlmZXN0fE1ha2Vm aWxlXC5hbXxhY1wuY3xjaXBoZXJcLmN8aGFzaC1jb21tb25cLmN8aG1hYy10ZXN0c1wuY3xtZFwu Y3xwdWJrZXlcLmMpJCIsIGNpcGhlcl9maWxlKSBvciBjaXBoZXJfZmlsZSA9PSAia2RmLmMiIG9y IGNpcGhlcl9maWxlID09ICJlbGdhbWFsLmMiIG9yIGNpcGhlcl9maWxlID09ICJwcmltZWdlbi5j IiBvciBjaXBoZXJfZmlsZSA9PSAiZWNjLmMiIG9yIGNpcGhlcl9maWxlID09ICJ0ZXN0LWdldHJ1 c2FnZS5jIjoKKyAgICAjIFVudXNlZCBnZW5lcmljIHN1cHBvcnQgZmlsZXMKKyAgICBpZiByZS5t YXRjaCAociIoTWFrZWZpbGVcLmFtfGNpcGhlclwuY3xjaXBoZXItLipcLmN8bWFjLS4qXC5jfG1h Y1wuY3xwdWJrZXlcLmMpJCIsIGNpcGhlcl9maWxlKToKKyAgICAgICAgY2hsb2cgPSAiJXMlczog UmVtb3ZlZFxuIiAlIChjaGxvZywgY2hsb2duZXcpCisgICAgICAgIGNvbnRpbnVlCisgICAgIyBU T0RPOiBTdXBwb3J0IEtERgorICAgIGlmIHJlLm1hdGNoIChyIihrZGZcLmN8c2NyeXB0XC5jKSQi LCBjaXBoZXJfZmlsZSk6CisgICAgICAgIGNobG9nID0gIiVzJXM6IFJlbW92ZWRcbiIgJSAoY2hs b2csIGNobG9nbmV3KQorICAgICAgICBjb250aW51ZQorICAgICMgVE9ETzogU3VwcG9ydCBjaGFj aGEyMCBhbmQgcG9seTEzMDUKKyAgICBpZiBjaXBoZXJfZmlsZSBpbiBbImNoYWNoYTIwLmMiLCAi ZWNjLmMiLCAiZWxnYW1hbC5jIl06CisgICAgICAgIGNobG9nID0gIiVzJXM6IFJlbW92ZWRcbiIg JSAoY2hsb2csIGNobG9nbmV3KQorICAgICAgICBjb250aW51ZSAgICAgICAgCisgICAgIyBUT0RP OiBVc2Ugb3B0aW1pemVkIHZlcnNpb25zCisgICAgaWYgcmUubWF0Y2ggKHIiKC4qXC5bc1NdfC4q LWludGVsLXNoYWV4dFwuY3wuKi1zc3NlMy1pMzg2XC5jfC4qLXBwY1wuY3wuKi1zc3NlMy1hbWQ2 NFwuY3wuKi1zMzkweFwuY3xyaWpuZGFlbC1hZXNuaVwuY3xjcmMtaW50ZWwtcGNsbXVsXC5jfC4q LWFybXY4LWNlXC5jfC4qLXAxMGxlXC5jfHJpam5kYWVsLXBhZGxvY2suY3xyaWpuZGFlbC1wcGM5 bGUuY3xyaWpuZGFlbC12YWVzLmMpJCIsIGNpcGhlcl9maWxlKToKICAgICAgICAgY2hsb2cgPSAi JXMlczogUmVtb3ZlZFxuIiAlIChjaGxvZywgY2hsb2duZXcpCiAgICAgICAgIGNvbnRpbnVlCiAg ICAgIyBBdXRvZ2VuZXJhdGVkIGZpbGVzLiBOb3QgZXZlbiB3b3J0aCBtZW50aW9ubmluZyBpbiBD aGFuZ2VMb2cKLSAgICBpZiByZS5tYXRjaCAoIk1ha2VmaWxlXC5pbiQiLCBjaXBoZXJfZmlsZSk6 CisgICAgaWYgcmUubWF0Y2ggKHIiTWFrZWZpbGVcLmluJCIsIGNpcGhlcl9maWxlKToKICAgICAg ICAgY29udGludWUKICAgICBuY2ggPSBGYWxzZQotICAgIGlmIHJlLm1hdGNoICgiLipcLltjaF0k IiwgY2lwaGVyX2ZpbGUpOgotICAgICAgICBpc2MgPSByZS5tYXRjaCAoIi4qXC5jJCIsIGNpcGhl cl9maWxlKQorICAgIGlmIHJlLm1hdGNoIChyIi4qXC5bY2hdJCIsIGNpcGhlcl9maWxlKToKKyAg ICAgICAgaXNjID0gcmUubWF0Y2ggKHIiLipcLmMkIiwgY2lwaGVyX2ZpbGUpCiAgICAgICAgIGYg PSBjb2RlY3Mub3BlbiAoaW5maWxlLCAiciIsICJ1dGYtOCIpCiAgICAgICAgIGZ3ID0gY29kZWNz Lm9wZW4gKG91dGZpbGUsICJ3IiwgInV0Zi04IikKICAgICAgICAgZncud3JpdGUgKCIvKiBUaGlz IGZpbGUgd2FzIGF1dG9tYXRpY2FsbHkgaW1wb3J0ZWQgd2l0aCBcbiIpCiAgICAgICAgIGZ3Lndy aXRlICgiICAgaW1wb3J0X2djcnkucHkuIFBsZWFzZSBkb24ndCBtb2RpZnkgaXQgKi9cbiIpCi0g ICAgICAgIGZ3LndyaXRlICgiI2luY2x1ZGUgPGdydWIvZGwuaD5cbiIpCisgICAgICAgIGFkZF9s aWNlbnNlID0gY2lwaGVyX2ZpbGUgPT0gInB1YmtleS11dGlsLmMiIG9yIChpc2MgYW5kIG5vdCBj aXBoZXJfZmlsZSBpbiBleHRyYV9maWxlc19saXN0KQorICAgICAgICBpZiBhZGRfbGljZW5zZToK KyAgICAgICAgICAgIGZ3LndyaXRlICgiI2luY2x1ZGUgPGdydWIvZGwuaD5cbiIpCiAgICAgICAg IGlmIGNpcGhlcl9maWxlID09ICJjYW1lbGxpYS5oIjoKICAgICAgICAgICAgIGZ3LndyaXRlICgi I2luY2x1ZGUgPGdydWIvbWlzYy5oPlxuIikKICAgICAgICAgICAgIGZ3LndyaXRlICgidm9pZCBj YW1lbGxpYV9zZXR1cDEyOChjb25zdCB1bnNpZ25lZCBjaGFyICprZXksIGdydWJfdWludDMyX3Qg KnN1YmtleSk7XG4iKQpAQCAtMTMyLDcgKzE4OSw3IEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBo ZXJfZmlsZXM6CiAgICAgICAgICAgICBmdy53cml0ZSAoInZvaWQgY2FtZWxsaWFfZGVjcnlwdDI1 Nihjb25zdCBncnViX3VpbnQzMl90ICpzdWJrZXksIGdydWJfdWludDMyX3QgKmlvKTtcbiIpICAg ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgZncud3JpdGUgKCIjZGVmaW5lIG1lbWNw eSBncnViX21lbWNweVxuIikKICAgICAgICAgIyBXaG9sZSBsaWJnY3J5cHQgaXMgZGlzdHJpYnV0 ZWQgdW5kZXIgR1BMdjMrIG9yIGNvbXBhdGlibGUKLSAgICAgICAgaWYgaXNjOgorICAgICAgICBp ZiBhZGRfbGljZW5zZToKICAgICAgICAgICAgIGZ3LndyaXRlICgiR1JVQl9NT0RfTElDRU5TRSAo XCJHUEx2MytcIik7XG4iKQogCiAgICAgICAgIGNpcGhlcm5hbWVzID0gW10KQEAgLTE0OCwxNCAr MjA1LDEwIEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgIGlzY2lw aGVyID0gRmFsc2UKICAgICAgICAgaXNjcnlwdG9zdGFydCA9IEZhbHNlCiAgICAgICAgIGlzY29t bWEgPSBGYWxzZQotICAgICAgICBpc2dsdWUgPSBGYWxzZQogICAgICAgICBza2lwX3N0YXRlbWVu dCA9IEZhbHNlCisgICAgICAgIHNraXBfY29tbWEgPSBGYWxzZQogICAgICAgICBpZiBpc2M6Ci0g ICAgICAgICAgICBtb2RuYW1lID0gY2lwaGVyX2ZpbGUgWzA6bGVuKGNpcGhlcl9maWxlKSAtIDJd Ci0gICAgICAgICAgICBpZiByZS5tYXRjaCAoIi4qLWdsdWUkIiwgbW9kbmFtZSk6Ci0gICAgICAg ICAgICAgICAgbW9kbmFtZSA9IG1vZG5hbWUucmVwbGFjZSAoIi1nbHVlIiwgIiIpCi0gICAgICAg ICAgICAgICAgaXNnbHVlID0gVHJ1ZQotICAgICAgICAgICAgbW9kbmFtZSA9ICJnY3J5XyVzIiAl IG1vZG5hbWUKKyAgICAgICAgICAgIG1vZG5hbWUgPSAiZ2NyeV8lcyIgJSByZW1vdmVzdWZmaXgo cmVtb3Zlc3VmZml4KGNpcGhlcl9maWxlLCAiLmMiKSwgIi1nbHVlIikucmVwbGFjZSgiLSIsICJf IikKICAgICAgICAgZm9yIGxpbmUgaW4gZjoKICAgICAgICAgICAgIGxpbmUgPSBsaW5lCiAgICAg ICAgICAgICBpZiBza2lwX3N0YXRlbWVudDoKQEAgLTE3MSw3ICsyMjQsNyBAQCBmb3IgY2lwaGVy X2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAgICAgICAgICBza2lwMiA9IEZhbHNl CiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGlmIGlzY3J5cHRvc3RhcnQ6 Ci0gICAgICAgICAgICAgICAgcyA9IHJlLnNlYXJjaCAoIiAqXCIoW0EtWjAtOV9hLXpdKilcIiIs IGxpbmUpCisgICAgICAgICAgICAgICAgcyA9IHJlLnNlYXJjaCAoIiAqXCIoW0EtWjAtOV9hLXot XSopXCIiLCBsaW5lKQogICAgICAgICAgICAgICAgIGlmIG5vdCBzIGlzIE5vbmU6CiAgICAgICAg ICAgICAgICAgICAgIHNnID0gcy5ncm91cHMoKVswXQogICAgICAgICAgICAgICAgICAgICBjcnlw dG9saXN0LndyaXRlICgoIiVzOiAlc1xuIikgJSAoc2csIG1vZG5hbWUpKQpAQCAtMjAxLDcgKzI1 NCw3IEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICAgICAg ICAgIGlzcGsgPSBGYWxzZQogICAgICAgICAgICAgICAgIGlzY29tbWEgPSBub3QgcmUuc2VhcmNo ICgiLCQiLCBsaW5lKSBpcyBOb25lCiAgICAgICAgICAgICAjIFVzZWQgb25seSBmb3Igc2VsZnRl c3RzLgotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgiKHN0YXRpYyBieXRlfHN0YXRpYyB1bnNp Z25lZCBjaGFyKSAod2Vha19rZXlzX2Noa3N1bSlcW1swLTldKlxdID0iLCBsaW5lKQorICAgICAg ICAgICAgbSA9IHJlLm1hdGNoIChyIihzdGF0aWMgYnl0ZXxzdGF0aWMgdW5zaWduZWQgY2hhcnxz dGF0aWMgY29uc3QgZ2NyeV9tZF9zcGVjX3QgXCogY29uc3QpICh3ZWFrX2tleXNfY2hrc3VtfGRp Z2VzdF9saXN0KVxbWzAtOV0qXF0gPSIsIGxpbmUpCiAgICAgICAgICAgICBpZiBub3QgbSBpcyBO b25lOgogICAgICAgICAgICAgICAgIHNraXAgPSAxCiAgICAgICAgICAgICAgICAgZm5hbWUgPSBt Lmdyb3VwcyAoKVsxXQpAQCAtMjEyLDExICsyNjUsMTQgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNp cGhlcl9maWxlczoKICAgICAgICAgICAgICAgICAgICAgY2hsb2duZXcgPSAiJXMgJXMiICUgKGNo bG9nbmV3LCBjaG1zZykKICAgICAgICAgICAgICAgICAgICAgbmNoID0gVHJ1ZQogICAgICAgICAg ICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiAobm90IGhvbGQpIGFuZCAocmUubWF0Y2gg KHIiWyBcdF0qKHJ1bl9zZWxmdGVzdHN8ZG9fdHJpcGxlZGVzX3NldF9leHRyYV9pbmZvKSw/Iiwg bGluZSkgaXMgbm90IE5vbmUpOgorICAgICAgICAgICAgICAgIGlzY29tbWEgPSBUcnVlCisgICAg ICAgICAgICAgICAgbGluZSA9ICIiCiAgICAgICAgICAgICBpZiBob2xkOgogICAgICAgICAgICAg ICAgIGhvbGQgPSBGYWxzZQogICAgICAgICAgICAgICAgICMgV2UncmUgb3B0aW1pc2luZyBmb3Ig c2l6ZSBhbmQgZXhjbHVkZSBhbnl0aGluZyBuZWVkaW5nIGdvb2QKICAgICAgICAgICAgICAgICAj IHJhbmRvbW5lc3MuCi0gICAgICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgiKHJ1bl9zZWxm dGVzdHN8c2VsZnRlc3R8X2djcnlfYWVzX2MuLl8uLmN8X2djcnlfW2EtejAtOV0qX2hhc2hfYnVm ZmVyfHRyaXBsZWRlc19zZXQya2V5c3xkb190cmlwbGVkZXNfc2V0X2V4dHJhX2luZm98X2djcnlf cm1kMTYwX21peGJsb2NrfHNlcnBlbnRfdGVzdHxkc2FfZ2VuZXJhdGVfZXh0fHRlc3Rfa2V5c3xn ZW5fa3xzaWdufGdlbl94OTMxX3Bhcm1feHB8Z2VuZXJhdGVfeDkzMXxnZW5lcmF0ZV9rZXl8ZHNh X2dlbmVyYXRlfGRzYV9zaWdufGVjY19zaWdufGdlbmVyYXRlfGdlbmVyYXRlX2ZpcHMxODZ8X2dj cnlfcmVnaXN0ZXJfcGtfZHNhX3Byb2dyZXNzfF9nY3J5X3JlZ2lzdGVyX3BrX2VjY19wcm9ncmVz c3xwcm9ncmVzc3xzY2FudmFsfGVjMm9zfGVjY19nZW5lcmF0ZV9leHR8ZWNjX2dlbmVyYXRlfGNv bXB1dGVfa2V5Z3JpcHxlY2NfZ2V0X3BhcmFtfF9nY3J5X3JlZ2lzdGVyX3BrX2RzYV9wcm9ncmVz c3xnZW5feDkzMV9wYXJtX3hwfGdlbl94OTMxX3Bhcm1feGl8cnNhX2RlY3J5cHR8cnNhX3NpZ258 cnNhX2dlbmVyYXRlX2V4dHxyc2FfZ2VuZXJhdGV8c2VjcmV0fGNoZWNrX2V4cG9uZW50fHJzYV9i bGluZHxyc2FfdW5ibGluZHxleHRyYWN0X2FfZnJvbV9zZXhwfGN1cnZlX2ZyZWV8Y3VydmVfY29w eXxwb2ludF9zZXQpIiwgbGluZSkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBpZiByZS5tYXRj aCAoIihfZ2NyeV9oYXNoX3NlbGZ0ZXN0X2NoZWNrX29uZXxidWxrX3NlbGZ0ZXN0X3NldGtleXxy dW5fc2VsZnRlc3RzfGRvX3RyaXBsZWRlc19zZXRfZXh0cmFfaW5mb3xzZWxmdGVzdHxzbTRfc2Vs ZnRlc3R8X2djcnlfW2EtejAtOV9dKl9oYXNoX2J1ZmZlcnN8X2djcnlfc2hhMV9oYXNoX2J1ZmZl cnx0cmlwbGVkZXNfc2V0MmtleXN8X2djcnlfcm1kMTYwX21peGJsb2NrfHNlcnBlbnRfdGVzdHxk c2FfZ2VuZXJhdGVfZXh0fHRlc3Rfa2V5c3xnZW5fa3xzaWdufGdlbl94OTMxX3Bhcm1feHB8Z2Vu ZXJhdGVfeDkzMXxnZW5lcmF0ZV9rZXl8ZHNhX2dlbmVyYXRlfGRzYV9zaWdufGVjY19zaWdufGdl bmVyYXRlfGdlbmVyYXRlX2ZpcHMxODZ8X2djcnlfcmVnaXN0ZXJfcGtfZHNhX3Byb2dyZXNzfF9n Y3J5X3JlZ2lzdGVyX3BrX2VjY19wcm9ncmVzc3xwcm9ncmVzc3xzY2FudmFsfGVjMm9zfGVjY19n ZW5lcmF0ZV9leHR8ZWNjX2dlbmVyYXRlfGVjY19nZXRfcGFyYW18X2djcnlfcmVnaXN0ZXJfcGtf ZHNhX3Byb2dyZXNzfGdlbl94OTMxX3Bhcm1feHB8Z2VuX3g5MzFfcGFybV94aXxyc2FfZGVjcnlw dHxyc2Ffc2lnbnxyc2FfZ2VuZXJhdGVfZXh0fHJzYV9nZW5lcmF0ZXxzZWNyZXR8Y2hlY2tfZXhw b25lbnR8cnNhX2JsaW5kfHJzYV91bmJsaW5kfGV4dHJhY3RfYV9mcm9tX3NleHB8Y3VydmVfZnJl ZXxjdXJ2ZV9jb3B5fHBvaW50X3NldHxfZ2NyeV9kc2FfZ2VuX3JmYzY5Nzlfa3xiaXRzMm9jdGV0 c3xpbnQyb2N0ZXRzfG1kX2V4dHJhY3R8X2djcnlfbWRfZGVidWd8X2djcnlfbWRfc2VsZnRlc3R8 X2djcnlfbWRfaXNfZW5hYmxlZHxfZ2NyeV9tZF9pc19zZWN1cmV8X2djcnlfbWRfaW5pdHxfZ2Ny eV9tZF9pbmZvfF9nY3J5X21kX2dldF9hbGdvfG1kX2dldF9hbGdvfF9nY3J5X21kX2dldHxfZ2Ny eV9tZF9leHRyYWN0fF9nY3J5X21kX3NldGtleXxtZF9zZXRrZXl8cHJlcGFyZV9tYWNwYWRzfF9n Y3J5X21kX2FsZ29fbmFtZXxzZWFyY2hfb2lkfHNwZWNfZnJvbV9vaWR8c3BlY19mcm9tX25hbWV8 c3BlY19mcm9tX2FsZ298bWFwX2FsZ28pIiwgbGluZSkgaXMgbm90IE5vbmU6CiAKICAgICAgICAg ICAgICAgICAgICAgc2tpcCA9IDEKICAgICAgICAgICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNo ICgic2VsZnRlc3QiLCBsaW5lKSBpcyBOb25lIGFuZCBjaXBoZXJfZmlsZSA9PSAiaWRlYS5jIjoK QEAgLTIyNCw2ICsyODAsMTEgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKIAog ICAgICAgICAgICAgICAgICAgICBpZiBub3QgcmUubWF0Y2ggKCJzZXJwZW50X3Rlc3QiLCBsaW5l KSBpcyBOb25lOgogICAgICAgICAgICAgICAgICAgICAgICAgZncud3JpdGUgKCJzdGF0aWMgY29u c3QgY2hhciAqc2VycGVudF90ZXN0ICh2b2lkKSB7IHJldHVybiAwOyB9XG4iKTsKKyAgICAgICAg ICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgic200X3NlbGZ0ZXN0IiwgbGluZSkgaXMgTm9u ZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ3LndyaXRlICgic3RhdGljIGNvbnN0IGNoYXIg KnNtNF9zZWxmdGVzdCAodm9pZCkgeyByZXR1cm4gMDsgfVxuIik7CisgICAgICAgICAgICAgICAg ICAgIGhhc2hfYnVmID0gcmUubWF0Y2ggKCIoX2djcnlfW2EtejAtOV9dKl9oYXNoX2J1ZmZlcnMp IiwgbGluZSkKKyAgICAgICAgICAgICAgICAgICAgaWYgaGFzaF9idWYgaXMgbm90IE5vbmU6Cisg ICAgICAgICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiNkZWZpbmUgJXMgMCIgJSAoaGFzaF9i dWYuZ3JvdXAoMCkpKQogICAgICAgICAgICAgICAgICAgICBpZiBub3QgcmUubWF0Y2ggKCJkc2Ff Z2VuZXJhdGUiLCBsaW5lKSBpcyBOb25lOgogICAgICAgICAgICAgICAgICAgICAgICAgZncud3Jp dGUgKCIjZGVmaW5lIGRzYV9nZW5lcmF0ZSAwIik7CiAgICAgICAgICAgICAgICAgICAgIGlmIG5v dCByZS5tYXRjaCAoImVjY19nZW5lcmF0ZSIsIGxpbmUpIGlzIE5vbmU6CkBAIC0yMzgsNiArMjk5 LDEwIEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICAgICAg ICAgICAgICBmdy53cml0ZSAoIiNkZWZpbmUgZHNhX3NpZ24gMCIpOwogICAgICAgICAgICAgICAg ICAgICBpZiBub3QgcmUubWF0Y2ggKCJlY2Nfc2lnbiIsIGxpbmUpIGlzIE5vbmU6CiAgICAgICAg ICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiNkZWZpbmUgZWNjX3NpZ24gMCIpOworICAgICAg ICAgICAgICAgICAgICBpZiBub3QgcmUubWF0Y2ggKCJzZWFyY2hfb2lkIiwgbGluZSkgaXMgTm9u ZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ3LndyaXRlICgiI2RlZmluZSBzZWFyY2hfb2lk KGEsYikgZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X29pZChhKSIpCisgICAgICAgICAgICAgICAg ICAgIGlmIG5vdCByZS5tYXRjaCAoInNwZWNfZnJvbV9uYW1lIiwgbGluZSkgaXMgTm9uZToKKyAg ICAgICAgICAgICAgICAgICAgICAgIGZ3LndyaXRlICgiI2RlZmluZSBzcGVjX2Zyb21fbmFtZSBn cnViX2NyeXB0b19sb29rdXBfbWRfYnlfbmFtZSIpCiAgICAgICAgICAgICAgICAgICAgIGZuYW1l ID0gcmUubWF0Y2ggKCJbYS16QS1aMC05X10qIiwgbGluZSkuZ3JvdXAgKCkKICAgICAgICAgICAg ICAgICAgICAgY2htc2cgPSAiKCVzKTogUmVtb3ZlZC4iICUgZm5hbWUKICAgICAgICAgICAgICAg ICAgICAgaWYgbmNoOgpAQCAtMjU3LDQ1ICszMjIsNDYgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNp cGhlcl9maWxlczoKICAgICAgICAgICAgICAgICAgICAgY2hsb2duZXcgPSAiJXM6ICVzIiAlIChj aGxvZ25ldywgY2htc2cpCiAgICAgICAgICAgICAgICAgICAgIG5jaCA9IFRydWUKICAgICAgICAg ICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgiZ2NyeV9jaXBoZXJf c3BlY190IiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoIihjb25zdCApP2djcnlf Y2lwaGVyX3NwZWNfdCIsIGxpbmUpCiAgICAgICAgICAgICBpZiBpc2MgYW5kIG5vdCBtIGlzIE5v bmU6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNtZCkKICAgICAgICAgICAgICAgICBh c3NlcnQgKG5vdCBpc3BrKQogICAgICAgICAgICAgICAgIGFzc2VydCAobm90IGlzY2lwaGVyKQog ICAgICAgICAgICAgICAgIGFzc2VydCAobm90IGlzY3J5cHRvc3RhcnQpCi0gICAgICAgICAgICAg ICAgY2lwaGVybmFtZSA9IGxpbmUgW2xlbiAoImdjcnlfY2lwaGVyX3NwZWNfdCIpOl0uc3RyaXAg KCkKKyAgICAgICAgICAgICAgICBjaXBoZXJuYW1lID0gcmVtb3ZlcHJlZml4KHJlbW92ZXByZWZp eChsaW5lLCAiY29uc3QgIiksICJnY3J5X2NpcGhlcl9zcGVjX3QiKS5zdHJpcCAoKQogICAgICAg ICAgICAgICAgIGNpcGhlcm5hbWUgPSByZS5tYXRjaCgiW2EtekEtWjAtOV9dKiIsY2lwaGVybmFt ZSkuZ3JvdXAgKCkKICAgICAgICAgICAgICAgICBjaXBoZXJuYW1lcy5hcHBlbmQgKGNpcGhlcm5h bWUpCiAgICAgICAgICAgICAgICAgaXNjaXBoZXIgPSBUcnVlCiAgICAgICAgICAgICAgICAgaXNj cnlwdG9zdGFydCA9IFRydWUKIAotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgiZ2NyeV9wa19z cGVjX3QiLCBsaW5lKQorICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgiKGNvbnN0ICk/Z2NyeV9w a19zcGVjX3QiLCBsaW5lKQogICAgICAgICAgICAgaWYgaXNjIGFuZCBub3QgbSBpcyBOb25lOgog ICAgICAgICAgICAgICAgIGFzc2VydCAobm90IGlzbWQpCiAgICAgICAgICAgICAgICAgYXNzZXJ0 IChub3QgaXNwaykKICAgICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBpc2NpcGhlcikKICAgICAg ICAgICAgICAgICBhc3NlcnQgKG5vdCBpc2NyeXB0b3N0YXJ0KQotICAgICAgICAgICAgICAgIHBr bmFtZSA9IGxpbmUgW2xlbiAoImdjcnlfcGtfc3BlY190Iik6XS5zdHJpcCAoKQorICAgICAgICAg ICAgICAgIHBrbmFtZSA9IHJlbW92ZXByZWZpeChyZW1vdmVwcmVmaXgobGluZSwgImNvbnN0ICIp LCAiZ2NyeV9wa19zcGVjX3QiKS5zdHJpcCAoKQogICAgICAgICAgICAgICAgIHBrbmFtZSA9IHJl Lm1hdGNoKCJbYS16QS1aMC05X10qIixwa25hbWUpLmdyb3VwICgpCiAgICAgICAgICAgICAgICAg cGtuYW1lcy5hcHBlbmQgKHBrbmFtZSkKICAgICAgICAgICAgICAgICBpc3BrID0gVHJ1ZQogICAg ICAgICAgICAgICAgIGlzY3J5cHRvc3RhcnQgPSBUcnVlCiAKLSAgICAgICAgICAgIG0gPSByZS5t YXRjaCAoImdjcnlfbWRfc3BlY190IiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCAo Iihjb25zdCApP2djcnlfbWRfc3BlY190IiwgbGluZSkKICAgICAgICAgICAgIGlmIGlzYyBhbmQg bm90IG0gaXMgTm9uZToKICAgICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBpc21kKQogICAgICAg ICAgICAgICAgIGFzc2VydCAobm90IGlzcGspCiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3Qg aXNjaXBoZXIpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNjcnlwdG9zdGFydCkKLSAg ICAgICAgICAgICAgICBtZG5hbWUgPSBsaW5lIFtsZW4gKCJnY3J5X21kX3NwZWNfdCIpOl0uc3Ry aXAgKCkKKyAgICAgICAgICAgICAgICBsaW5lID0gcmVtb3ZlcHJlZml4KGxpbmUsICJjb25zdCAi KQorICAgICAgICAgICAgICAgIG1kbmFtZSA9IHJlbW92ZXByZWZpeChyZW1vdmVwcmVmaXgobGlu ZSwgImNvbnN0ICIpLCAiZ2NyeV9tZF9zcGVjX3QiKS5zdHJpcCAoKQogICAgICAgICAgICAgICAg IG1kbmFtZSA9IHJlLm1hdGNoKCJbYS16QS1aMC05X10qIixtZG5hbWUpLmdyb3VwICgpCiAgICAg ICAgICAgICAgICAgbWRuYW1lcy5hcHBlbmQgKG1kbmFtZSkKICAgICAgICAgICAgICAgICBpc21k ID0gVHJ1ZQogICAgICAgICAgICAgICAgIG1kYXJnID0gMAogICAgICAgICAgICAgICAgIGlzY3J5 cHRvc3RhcnQgPSBUcnVlCi0gICAgICAgICAgICBtID0gcmUubWF0Y2ggKCJzdGF0aWMgY29uc3Qg Y2hhciBcKnNlbGZ0ZXN0Lio7JCIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0Y2ggKHIi c3RhdGljIGNvbnN0IGNoYXIgXCpzZWxmdGVzdC4qOyQiLCBsaW5lKQogICAgICAgICAgICAgaWYg bm90IG0gaXMgTm9uZToKLSAgICAgICAgICAgICAgICBmbmFtZSA9IGxpbmVbbGVuICgic3RhdGlj IGNvbnN0IGNoYXIgXCoiKTpdCisgICAgICAgICAgICAgICAgZm5hbWUgPSBsaW5lW2xlbiAociJz dGF0aWMgY29uc3QgY2hhciBcKiIpOl0KICAgICAgICAgICAgICAgICBmbmFtZSA9IHJlLm1hdGNo ICgiW2EtekEtWjAtOV9dKiIsIGZuYW1lKS5ncm91cCAoKQogICAgICAgICAgICAgICAgIGNobXNn ID0gIiglcyk6IFJlbW92ZWQgZGVjbGFyYXRpb24uIiAlIGZuYW1lCiAgICAgICAgICAgICAgICAg aWYgbmNoOgpAQCAtMzMxLDcgKzM5Nyw3IEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmls ZXM6CiAgICAgICAgICAgICAgICAgICAgIGNobG9nbmV3ID0gIiVzICVzIiAlIChjaGxvZ25ldywg Y2htc2cpCiAgICAgICAgICAgICAgICAgICAgIG5jaCA9IFRydWUKICAgICAgICAgICAgICAgICBj b250aW51ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgic3RhdGljIHZvaWQgXChcKnByb2dy ZXNzX2NiXCkuKjskIiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCAociJzdGF0aWMg dm9pZCBcKFwqcHJvZ3Jlc3NfY2JcKS4qOyQiLCBsaW5lKQogICAgICAgICAgICAgaWYgbm90IG0g aXMgTm9uZToKICAgICAgICAgICAgICAgICBjaG1zZyA9ICIocHJvZ3Jlc3NfY2IpOiBSZW1vdmVk IGRlY2xhcmF0aW9uLiIKICAgICAgICAgICAgICAgICBpZiBuY2g6CkBAIC0zNDAsNyArNDA2LDcg QEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgICAgICAgICAgICAg Y2hsb2duZXcgPSAiJXMgJXMiICUgKGNobG9nbmV3LCBjaG1zZykKICAgICAgICAgICAgICAgICAg ICAgbmNoID0gVHJ1ZQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBtID0g cmUubWF0Y2ggKCJzdGF0aWMgdm9pZCBcKnByb2dyZXNzX2NiX2RhdGEuKjskIiwgbGluZSkKKyAg ICAgICAgICAgIG0gPSByZS5tYXRjaCAociJzdGF0aWMgdm9pZCBcKnByb2dyZXNzX2NiX2RhdGEu KjskIiwgbGluZSkKICAgICAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICAg ICAgY2htc2cgPSAiKHByb2dyZXNzX2NiKTogUmVtb3ZlZCBkZWNsYXJhdGlvbi4iCiAgICAgICAg ICAgICAgICAgaWYgbmNoOgpAQCAtMzUwLDIyICs0MTYsMjIgQEAgZm9yIGNpcGhlcl9maWxlIGlu IGNpcGhlcl9maWxlczoKICAgICAgICAgICAgICAgICAgICAgbmNoID0gVHJ1ZQogICAgICAgICAg ICAgICAgIGNvbnRpbnVlCiAKLSAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoIihzdGF0aWMgY29u c3QgY2hhciggfClcKnxzdGF0aWMgZ3BnX2Vycl9jb2RlX3R8dm9pZHxzdGF0aWMgaW50fHN0YXRp YyBnY3J5X2Vycl9jb2RlX3R8c3RhdGljIGdjcnlfbXBpX3R8c3RhdGljIHZvaWR8dm9pZHxzdGF0 aWMgZWxsaXB0aWNfY3VydmVfdCkgKiQiLCBsaW5lKQorICAgICAgICAgICAgbSA9IHJlLm1hdGNo IChyIigoc3RhdGljICk/Y29uc3QgY2hhciggfClcKnxzdGF0aWMgY29uc3QgZ2NyeV9tZF9zcGVj X3QgXCp8KHN0YXRpYyApP2dwZ19lcnJfY29kZV90fGdwZ19lcnJvcl90fHZvaWR8KHN0YXRpYyAp P2ludHwoc3RhdGljICk/Z2NyeV9lcnJfY29kZV90fHN0YXRpYyBnY3J5X21waV90fHN0YXRpYyB2 b2lkfHZvaWR8c3RhdGljIGVsbGlwdGljX2N1cnZlX3QpICokIiwgbGluZSkKICAgICAgICAgICAg IGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgaG9sZCA9IFRydWUKICAgICAgICAg ICAgICAgICBob2xkbGluZSA9IGxpbmUKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAg ICAgICAgbSA9IHJlLm1hdGNoICgic3RhdGljIGludCB0cmlwbGVkZXNfc2V0MmtleXMgXCguKlwp OyIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0Y2ggKHIic3RhdGljIGludCB0cmlwbGVk ZXNfc2V0MmtleXMgXCguKlwpOyIsIGxpbmUpCiAgICAgICAgICAgICBpZiBub3QgbSBpcyBOb25l OgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBtID0gcmUubWF0Y2ggKCJz dGF0aWMgaW50IHRyaXBsZWRlc19zZXQza2V5cyBcKC4qXCk7IiwgbGluZSkKKyAgICAgICAgICAg IG0gPSByZS5tYXRjaCAociJzdGF0aWMgaW50IHRyaXBsZWRlc19zZXQza2V5cyBcKC4qXCk7Iiwg bGluZSkKICAgICAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgY29u dGludWUKLSAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoInN0YXRpYyBpbnQgdHJpcGxlZGVzX3Nl dDJrZXlzIFwoIiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCAociJzdGF0aWMgaW50 IHRyaXBsZWRlc19zZXQya2V5cyBcKCIsIGxpbmUpCiAgICAgICAgICAgICBpZiBub3QgbSBpcyBO b25lOgogICAgICAgICAgICAgICAgIHNraXBfc3RhdGVtZW50ID0gVHJ1ZQogICAgICAgICAgICAg ICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBtID0gcmUubWF0Y2ggKCJzdGF0aWMgaW50IHRyaXBs ZWRlc19zZXQza2V5cyBcKCIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0Y2ggKHIic3Rh dGljIGludCB0cmlwbGVkZXNfc2V0M2tleXMgXCgiLCBsaW5lKQogICAgICAgICAgICAgaWYgbm90 IG0gaXMgTm9uZToKICAgICAgICAgICAgICAgICBza2lwX3N0YXRlbWVudCA9IFRydWUKICAgICAg ICAgICAgICAgICBjb250aW51ZQpAQCAtNDIxLDExICs0ODcsOSBAQCBmb3IgY2lwaGVyX2ZpbGUg aW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBm dy53cml0ZSAobGluZSkKICAgICAgICAgaWYgbGVuIChjaXBoZXJuYW1lcykgPiAwIG9yIGxlbiAo bWRuYW1lcykgPiAwIG9yIGxlbiAocGtuYW1lcykgPiAwOgotICAgICAgICAgICAgaWYgaXNnbHVl OgotICAgICAgICAgICAgICAgIG1vZGZpbGVzID0gImxpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIv JXMgbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci8lcyIgXAotICAgICAgICAgICAgICAgICAgICAl IChjaXBoZXJfZmlsZSwgY2lwaGVyX2ZpbGUucmVwbGFjZSAoIi1nbHVlLmMiLCAiLmMiKSkKLSAg ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbW9kZmlsZXMgPSAibGliL2xpYmdjcnlw dC1ncnViL2NpcGhlci8lcyIgJSBjaXBoZXJfZmlsZQorICAgICAgICAgICAgbW9kZmlsZXMgPSBb Y2lwaGVyX2ZpbGVdCisgICAgICAgICAgICBpZiBtb2RuYW1lIGluIGV4dHJhX2ZpbGVzLmtleXMo KToKKyAgICAgICAgICAgICAgICBtb2RmaWxlcyArPSBleHRyYV9maWxlc1ttb2RuYW1lXQogICAg ICAgICAgICAgaWYgbGVuIChjaXBoZXJuYW1lcykgPiAwIG9yIGxlbiAobWRuYW1lcykgPiAwOgog ICAgICAgICAgICAgICAgIG1vZHVsZXNfc3ltX21kLmFwcGVuZCAobW9kbmFtZSkKICAgICAgICAg ICAgIGNobXNnID0gIihHUlVCX01PRF9JTklUKCVzKSk6IE5ldyBmdW5jdGlvblxuIiAlIG1vZG5h bWUKQEAgLTQ0Nyw3ICs1MTEsNyBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgog ICAgICAgICAgICAgICAgIGNobG9nbmV3ID0gIiVzXG4JJXMiICUgKGNobG9nbmV3LCBjaG1zZykK ICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiAgZ3J1Yl9tZF9yZWdpc3RlciAoJiVzKTtcbiIg JSBtZG5hbWUpCiAgICAgICAgICAgICBmb3IgcGtuYW1lIGluIHBrbmFtZXM6Ci0gICAgICAgICAg ICAgICAgY2htc2cgPSAiUmVnaXN0ZXIgcGsgJXMiICUgbWRuYW1lCisgICAgICAgICAgICAgICAg Y2htc2cgPSAiUmVnaXN0ZXIgcGsgJXMiICUgcGtuYW1lCiAgICAgICAgICAgICAgICAgY2hsb2du ZXcgPSAiJXNcbgklcyIgJSAoY2hsb2duZXcsIGNobXNnKQogICAgICAgICAgICAgICAgIGZ3Lndy aXRlICgiICBncnViX2NyeXB0b19wa18lcyA9ICYlcztcbiIKICAgICAgICAgICAgICAgICAgICAg ICAgICAgJSAocGtuYW1lLnJlcGxhY2UgKCJfZ2NyeV9wdWJrZXlfc3BlY18iLCAiIiksIHBrbmFt ZSkpCkBAIC00NjUsMTcgKzUyOSwxNyBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVz OgogICAgICAgICAgICAgICAgIGNobG9nbmV3ID0gIiVzXG4JJXMiICUgKGNobG9nbmV3LCBjaG1z ZykKICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiAgZ3J1Yl9tZF91bnJlZ2lzdGVyICgmJXMp O1xuIiAlIG1kbmFtZSkKICAgICAgICAgICAgIGZvciBwa25hbWUgaW4gcGtuYW1lczoKLSAgICAg ICAgICAgICAgICBjaG1zZyA9ICJVbnJlZ2lzdGVyIHBrICVzIiAlIG1kbmFtZQorICAgICAgICAg ICAgICAgIGNobXNnID0gIlVucmVnaXN0ZXIgcGsgJXMiICUgcGtuYW1lCiAgICAgICAgICAgICAg ICAgY2hsb2duZXcgPSAiJXNcbgklcyIgJSAoY2hsb2duZXcsIGNobXNnKQogICAgICAgICAgICAg ICAgIGZ3LndyaXRlICgiICBncnViX2NyeXB0b19wa18lcyA9IDA7XG4iCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICUgKHBrbmFtZS5yZXBsYWNlICgiX2djcnlfcHVia2V5X3NwZWNfIiwgIiIp KSkKICAgICAgICAgICAgIGZ3LndyaXRlICgifVxuIikKICAgICAgICAgICAgIGNvbmYud3JpdGUg KCJtb2R1bGUgPSB7XG4iKQogICAgICAgICAgICAgY29uZi53cml0ZSAoIiAgbmFtZSA9ICVzO1xu IiAlIG1vZG5hbWUpCi0gICAgICAgICAgICBmb3Igc3JjIGluIG1vZGZpbGVzLnNwbGl0KCk6Ci0g ICAgICAgICAgICAgICAgY29uZi53cml0ZSAoIiAgY29tbW9uID0gJXM7XG4iICUgc3JjKQorICAg ICAgICAgICAgZm9yIHNyYyBpbiBtb2RmaWxlczoKKyAgICAgICAgICAgICAgICBjb25mLndyaXRl ICgiICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdydWIvY2lwaGVyLyVzO1xuIiAlIHNyYykKICAg ICAgICAgICAgICAgICBpZiBsZW4gKGNpcGhlcm5hbWVzKSA+IDAgb3IgbGVuIChtZG5hbWVzKSA+ IDA6Ci0gICAgICAgICAgICAgICAgICAgIGNvbmZ1dGlsLndyaXRlICgiICBjb21tb24gPSBncnVi LWNvcmUvJXM7XG4iICUgc3JjKQorICAgICAgICAgICAgICAgICAgICBjb25mdXRpbC53cml0ZSAo IiAgY29tbW9uID0gZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvJXM7XG4iICUg c3JjKQogICAgICAgICAgICAgaWYgbW9kbmFtZSA9PSAiZ2NyeV9lY2MiOgogICAgICAgICAgICAg ICAgIGNvbmYud3JpdGUgKCIgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHQtZ3J1Yi9tcGkvZWMuYztc biIpCiAgICAgICAgICAgICAgICAgY29uZi53cml0ZSAoIiAgY2ZsYWdzID0gJyQoQ0ZMQUdTX0dD UlkpIC1Xbm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8tc2lnbi1jb21wYXJlJztcbiIpCkBAIC00OTAs NyArNTU0LDcgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgICAg IGZ3LmNsb3NlICgpCiAgICAgICAgICAgICBpZiBuY2g6CiAgICAgICAgICAgICAgICAgY2hsb2cg PSAiJXMlc1xuIiAlIChjaGxvZywgY2hsb2duZXcpCi0gICAgICAgIGVsaWYgaXNjIGFuZCBjaXBo ZXJfZmlsZSAhPSAiY2FtZWxsaWEuYyI6CisgICAgICAgIGVsaWYgaXNjIGFuZCBjaXBoZXJfZmls ZSBub3QgaW4gZXh0cmFfZmlsZXNfbGlzdDoKICAgICAgICAgICAgIHByaW50ICgiV0FSTklORzog QyBmaWxlIGlzbid0IGEgbW9kdWxlOiAlcyIgJSBjaXBoZXJfZmlsZSkKICAgICAgICAgICAgIGYu Y2xvc2UgKCkKICAgICAgICAgICAgIGZ3LmNsb3NlICgpCkBAIC01MTIsNyArNTc2LDcgQEAgZm9y IHNyYyBpbiBzb3J0ZWQgKG9zLmxpc3RkaXIgKG9zLnBhdGguam9pbiAoaW5kaXIsICJzcmMiKSkp OgogICAgICAgICAgICAgb3Igc3JjID09ICJsaWJnY3J5cHQudmVycyIgb3Igc3JjID09ICJNYWtl ZmlsZS5hbSIgXAogICAgICAgICAgICAgb3Igc3JjID09ICJNYW5pZmVzdCIgb3Igc3JjID09ICJt aXNjLmMiIFwKICAgICAgICAgICAgIG9yIHNyYyA9PSAibWlzc2luZy1zdHJpbmcuYyIgb3Igc3Jj ID09ICJtb2R1bGUuYyIgXAotICAgICAgICAgICAgb3Igc3JjID09ICJzZWNtZW0uYyIgb3Igc3Jj ID09ICJzZXhwLmMiIFwKKyAgICAgICAgICAgIG9yIHNyYyA9PSAic2VjbWVtLmMiIFwKICAgICAg ICAgICAgIG9yIHNyYyA9PSAic3RkbWVtLmMiIG9yIHNyYyA9PSAidmlzaWJpbGl0eS5jIjoKICAg ICAgICAgY29udGludWUKICAgICBvdXRmaWxlID0gb3MucGF0aC5qb2luIChiYXNlZGlyLCAic3Jj Iiwgc3JjKQpAQCAtNTM0LDggKzU5OCwxNyBAQCBmb3Igc3JjIGluIHNvcnRlZCAob3MubGlzdGRp ciAob3MucGF0aC5qb2luIChpbmRpciwgInNyYyIpKSk6CiAgICAgICAgIGZ3LmNsb3NlICgpCiAg ICAgICAgIGNvbnRpbnVlCiAKKyAgICBpZiBzcmMgPT0gImNpcGhlci1wcm90by5oIjoKKyAgICAg ICAgZncud3JpdGUoIiNpbmNsdWRlIDxncnViL2NyeXB0by5oPlxuIikKKyAgICAgICAgZncud3Jp dGUoInR5cGVkZWYgZ2NyeV9zZWxmdGVzdF9mdW5jX3Qgc2VsZnRlc3RfZnVuY190OyIpCisgICAg ICAgIGYuY2xvc2UgKCkKKyAgICAgICAgZncuY2xvc2UgKCkKKyAgICAgICAgY29udGludWUKKwog ICAgIGlmIHNyYyA9PSAiZzEwbGliLmgiOgotICAgICAgICBmdy53cml0ZSAoZi5yZWFkICgpLnJl cGxhY2UgKCIocHJpbnRmLGYsYSkiLCAiKF9fcHJpbnRmX18sZixhKSIpKQorICAgICAgICBmdy53 cml0ZSgiI2luY2x1ZGUgPGNpcGhlcl93cmFwLmg+XG4iKQorICAgICAgICBmdy53cml0ZSgiI2lu Y2x1ZGUgPGdydWIvY3J5cHRvLmg+XG4iKQorICAgICAgICBmdy53cml0ZSAoZi5yZWFkICgpLnJl cGxhY2UgKCIocHJpbnRmLGYsYSkiLCAiKF9fcHJpbnRmX18sZixhKSIpLnJlcGxhY2UgKCIjaW5j bHVkZSBcIi4uL2NvbXBhdC9saWJjb21wYXQuaFwiIiwgIiIpLnJlcGxhY2UoIiNkZWZpbmUgTl8o YSkgKGEpIiwgIiIpKQogICAgICAgICBmLmNsb3NlICgpCiAgICAgICAgIGZ3LmNsb3NlICgpCiAg ICAgICAgIGNvbnRpbnVlCkBAIC01NDYsNyArNjE5LDcgQEAgZm9yIHNyYyBpbiBzb3J0ZWQgKG9z Lmxpc3RkaXIgKG9zLnBhdGguam9pbiAoaW5kaXIsICJzcmMiKSkpOgogCiBmb3Igc3JjIGluIHNv cnRlZCAob3MubGlzdGRpciAob3MucGF0aC5qb2luIChpbmRpciwgIm1waSIpKSk6CiAgICAgaWYg c3JjID09ICJjb25maWcubGlua3MiIG9yIHNyYyA9PSAiQ2hhbmdlTG9nLTIwMTEiIFwKLSAgICAg ICAgICAgIG9yIHNyYyA9PSAibXBpLXNjYW4uYyIgb3Igc3JjID09ICJNYW5pZmVzdCIgXAorICAg ICAgICAgICAgb3Igc3JjID09ICJNYW5pZmVzdCIgXAogICAgICAgICAgICAgb3Igc3JjID09ICJN YWtlZmlsZS5hbSI6CiAgICAgICAgIGNvbnRpbnVlCiAgICAgaW5maWxlID0gb3MucGF0aC5qb2lu IChpbmRpciwgIm1waSIsIHNyYykKQEAgLTU2OCwxNyArNjQxLDE3IEBAIGZvciBzcmMgaW4gc29y dGVkIChvcy5saXN0ZGlyIChvcy5wYXRoLmpvaW4gKGluZGlyLCAibXBpIikpKToKICAgICAgICAg ICAgIGhvbGQgPSBGYWxzZQogICAgICAgICAgICAgIyBXZSdyZSBvcHRpbWlzaW5nIGZvciBzaXpl IGFuZCBleGNsdWRlIGFueXRoaW5nIG5lZWRpbmcgZ29vZAogICAgICAgICAgICAgIyByYW5kb21u ZXNzLgotICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgiKF9nY3J5X21waV9nZXRfaHdfY29u ZmlnfGdjcnlfbXBpX3JhbmRvbWl6ZSkiLCBsaW5lKSBpcyBOb25lOgorICAgICAgICAgICAgaWYg bm90IHJlLm1hdGNoICgiKF9nY3J5X21waV9nZXRfaHdfY29uZmlnfGdjcnlfbXBpX3JhbmRvbWl6 ZXxfZ2NyeV9tcGlfcmFuZG9taXplKSIsIGxpbmUpIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAg c2tpcCA9IDEKICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgZWxzZToKICAg ICAgICAgICAgICAgICBmdy53cml0ZSAoaG9sZGxpbmUpCi0gICAgICAgIG0gPSByZS5tYXRjaCAo Iihjb25zdCBjaGFyKCB8KVwqfHZvaWQpICokIiwgbGluZSkKKyAgICAgICAgbSA9IHJlLm1hdGNo IChyIihjb25zdCBjaGFyKCB8KVwqfHZvaWQpICokIiwgbGluZSkKICAgICAgICAgaWYgbm90IG0g aXMgTm9uZToKICAgICAgICAgICAgIGhvbGQgPSBUcnVlCiAgICAgICAgICAgICBob2xkbGluZSA9 IGxpbmUKICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIG0gPSByZS5tYXRjaCAoIiNpbmNs dWRlIFwibW9kLXNvdXJjZS1pbmZvXC5oXCIiLCBsaW5lKQorICAgICAgICBtID0gcmUubWF0Y2gg KHIiI2luY2x1ZGUgXCJtb2Qtc291cmNlLWluZm9cLmhcIiIsIGxpbmUpCiAgICAgICAgIGlmIG5v dCBtIGlzIE5vbmU6CiAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICBmdy53cml0ZSAobGlu ZSkKQEAgLTYxMiw5ICs2ODUsNiBAQCBmdy53cml0ZSAoIiNpbmNsdWRlIDxjaXBoZXJfd3JhcC5o PlxuIikKIGNobG9nID0gIiVzCSogZzEwbGliLmg6IExpa2V3aXNlLlxuIiAlIGNobG9nCiBmdy5j bG9zZSAoKQogCi1pbmZpbGUgPSBvcy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJfaW4sICJDaGFuZ2VM b2ciKQotb3V0ZmlsZSA9IG9zLnBhdGguam9pbiAoY2lwaGVyX2Rpcl9vdXQsICJDaGFuZ2VMb2ci KQotCiBjb25mLmNsb3NlICgpOwogCiBpbml0ZmlsZSA9IGNvZGVjcy5vcGVuIChvcy5wYXRoLmpv aW4gKGNpcGhlcl9kaXJfb3V0LCAiaW5pdC5jIiksICJ3IiwgInV0Zi04IikKQEAgLTY0Myw3ICs3 MTMsNyBAQCBjb25mdXRpbC53cml0ZSAoIn07XG4iKTsKIGNvbmZ1dGlsLmNsb3NlICgpOwogCiAK LWY9Y29kZWNzLm9wZW4gKGluZmlsZSwgInIiLCAidXRmLTgiKQorb3V0ZmlsZSA9IG9zLnBhdGgu am9pbiAoY2lwaGVyX2Rpcl9vdXQsICJDaGFuZ2VMb2ciKQogZnc9Y29kZWNzLm9wZW4gKG91dGZp bGUsICJ3IiwgInV0Zi04IikKIGR0ID0gZGF0ZXRpbWUuZGF0ZS50b2RheSAoKQogZncud3JpdGUg KCIlMDRkLSUwMmQtJTAyZCAgQXV0b21hdGljIGltcG9ydCB0b29sXG4iICUgXApAQCAtNjUzLDcg KzcyMyw0IEBAIGZ3LndyaXRlICgiCUltcG9ydGVkIGNpcGhlcnMgdG8gR1JVQlxuIikKIGZ3Lndy aXRlICgiXG4iKQogZncud3JpdGUgKGNobG9nKQogZncud3JpdGUgKCJcbiIpCi1mb3IgbGluZSBp biBmOgotICAgIGZ3LndyaXRlIChsaW5lKQotZi5jbG9zZSAoKQogZncuY2xvc2UgKCkKZGlmZiAt LWdpdCBhL3V0aWwvaW1wb3J0X2djcnlwdF9pbnRoLnNlZCBiL3V0aWwvaW1wb3J0X2djcnlwdF9p bnRoLnNlZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmViZTkzNzFlZQot LS0gL2Rldi9udWxsCisrKyBiL3V0aWwvaW1wb3J0X2djcnlwdF9pbnRoLnNlZApAQCAtMCwwICsx LDE3IEBACisvXiNASU5TRVJUX1NZU19TRUxFQ1RfSEAvIGQKKy9eQEZBTExCQUNLX1NPQ0tMRU5f VEAvIGQKKy9eIyAqaW5jbHVkZSA8c3RkbGliXC5oPi8gZAorL14jICppbmNsdWRlIDxzdHJpbmdc Lmg+LyBkCisvXiMgKmluY2x1ZGUgPHdpbnNvY2syXC5oPi8gZAorL14jICppbmNsdWRlIDx3czJ0 Y3BpcFwuaD4vIGQKKy9eIyAqaW5jbHVkZSA8dGltZVwuaD4vIGQKKy9eIyAqaW5jbHVkZSA8c3lz XC9zb2NrZXRcLmg+LyBkCisvXiMgKmluY2x1ZGUgPHN5c1wvdGltZVwuaD4vIGQKKy9eICB0eXBl ZGVmIGxvbmcgc3NpemVfdDsvIGQKKy9eICB0eXBlZGVmIGludCAgcGlkX3Q7LyBkCisvXiMgKmlu Y2x1ZGUgPGdwZy1lcnJvclwuaD4vIHMsI2luY2x1ZGUgPGdwZy1lcnJvci5oPiwjaW5jbHVkZSA8 Z3J1Yi9nY3J5cHQvZ3BnLWVycm9yLmg+LAorL150eXBlZGVmIGdwZ19lcnJvcl90IGdjcnlfZXJy b3JfdDsvIGQKKy9edHlwZWRlZiBncGdfZXJyX2NvZGVfdCBnY3J5X2Vycl9jb2RlX3Q7LyBkCisv XnR5cGVkZWYgc3RydWN0IGdjcnlfbXBpIFwqZ2NyeV9tcGlfdDsvIGQKKy9eI2Vycm9yICBnY3J5 cHQuaCBhbHJlYWR5IGluY2x1ZGVkLyBkCitwCmRpZmYgLS1naXQgYS91dGlsL2ltcG9ydF9nY3J5 cHRoLnNlZCBiL3V0aWwvaW1wb3J0X2djcnlwdGguc2VkCmluZGV4IGZlNmQxYTA3Mi4uNTAzYjRi NTQ3IDEwMDY0NAotLS0gYS91dGlsL2ltcG9ydF9nY3J5cHRoLnNlZAorKysgYi91dGlsL2ltcG9y dF9nY3J5cHRoLnNlZApAQCAtMTMsNiArMTMsNCBAQAogL150eXBlZGVmIGdwZ19lcnJvcl90IGdj cnlfZXJyb3JfdDsvIGQKIC9edHlwZWRlZiBncGdfZXJyX2NvZGVfdCBnY3J5X2Vycl9jb2RlX3Q7 LyBkCiAvXnR5cGVkZWYgc3RydWN0IGdjcnlfbXBpIFwqZ2NyeV9tcGlfdDsvIGQKLS9ec3RydWN0 IGdjcnlfdGhyZWFkX2Nicy8gZAotcyxfZ2NyeV9tcGlfaW52bSxnY3J5X21waV9pbnZtLGcKIHAK XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0tIAoyLjQ5LjAKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpHcnViLWRldmVsIG1haWxpbmcgbGlzdApH cnViLWRldmVsQGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4vbGlzdGluZm8v Z3J1Yi1kZXZlbAo=