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 A8365C25B74 for ; Fri, 24 May 2024 17:33:06 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sAYlP-00019v-G7; Fri, 24 May 2024 13:31:31 -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 1sAYlG-00013T-9K for grub-devel@gnu.org; Fri, 24 May 2024 13:31:27 -0400 Received: from mail-lf1-x12d.google.com ([2a00:1450:4864:20::12d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sAYlA-0003OO-B7 for grub-devel@gnu.org; Fri, 24 May 2024 13:31:21 -0400 Received: by mail-lf1-x12d.google.com with SMTP id 2adb3069b0e04-5295ae273c8so1250584e87.0 for ; Fri, 24 May 2024 10:31:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716571873; x=1717176673; 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=WKsg41N0q3neUT2NrYQUpc4BX5K4abG989DRpLY6DWU=; b=NRowRXwPE6p4FsoFbQxXcBMCBxpzBGIIGUut/UmhpIeOKTLKcmruYVdjgC1tpKPytX HEIO0MfvTubdghtqfg71mLnExsGo4y9CQdlFSCNCa0R/EyJUu4fr4EH9/dCYlxlLNHkx YPKwDrYlR3bDV+ZrG8V6talXZxMebhXJzBZzMMeHg4yWi4k9wkpborgllGIkdbQ0+c0j eltF4vDJHj8kVZrG6FCJZ3ML3mmDd2ZwvBmLa7VLEbOQKhtuJmtOuurZPbQwRo9wVIXu MeH870HHBXTuNcK9kWN+Qry0wWhIF6TygWNuF5jtcXfANvg8fg5KSXTmUWblmJvgNIjN ckDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716571873; x=1717176673; 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=WKsg41N0q3neUT2NrYQUpc4BX5K4abG989DRpLY6DWU=; b=GOeZsrKJFIv5sAyWuJ5qe9p0WJLyrfajCr5eYf0JNpbh1wfF3XRc+h3midOFnfI6cj 79vnx7kVEekN9W5we6j3Ny4yfHWcSVJpe7mlcIYQOAL8G9qHu3Na6lzc6HHFe1+mUijf 0dRXDC9o9dcWxERAIyhMNR28+OIV/QJhSTt9mznt/JkyfDm66w7orqYRZkoIdqIcXXmh +29lW+L+zKyFt0sZFtAF3KnaHzAfHb3uCl71lqniVy8tOjaBdP6hQE/QunSLk4lvKefL oO2ew+SFpStgrquqnU4wBSkbs50v1JVHnlR8Kbv9QjIeSbHzeqCfOBIytJs/fNo9Jyfh 5bLQ== X-Gm-Message-State: AOJu0Yzoa52UHOFuUFQ83CrwrZxg65TUKTC+eG++CVHJRcYOdRSalBUF b9PjQ+2FXj0n8jxBP2RsI/ShbbDmNEd3lmDNYer7tQ1l8D3T6Ke2sdhTrju6qLnH3w== X-Google-Smtp-Source: AGHT+IGleOLRchE9Cr+OSGQtoU9lBng8mJK1auVa7A4vSn1W8eisEvloKsmjNKsQokBhQJwqhhla4Q== X-Received: by 2002:a2e:a7c3:0:b0:2e9:564a:db31 with SMTP id 38308e7fff4ca-2e95b070382mr25638071fa.2.1716571872080; Fri, 24 May 2024 10:31:12 -0700 (PDT) Received: from localhost ([188.170.77.95]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-2e95bdd1522sm2771941fa.73.2024.05.24.10.31.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 May 2024 10:31:11 -0700 (PDT) From: Vladimir Serbinenko To: grub-devel@gnu.org Cc: Vladimir Serbinenko Subject: [PATCH v3 3/5] Adjust import script, definitions and API users for libgcrypt 1.10 Date: Fri, 24 May 2024 20:30:04 +0300 Message-Id: <20240524173007.988-3-phcoder@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240524173007.988-1-phcoder@gmail.com> References: <20240524173007.988-1-phcoder@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::12d; envelope-from=phcoder@gmail.com; helo=mail-lf1-x12d.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 LS0tCiBhdXRvZ2VuLnNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKwog Y29uZi9NYWtlZmlsZS5jb21tb24gICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBncnVi LWNvcmUvTWFrZWZpbGUuY29yZS5kZWYgICAgICAgICAgICAgICAgfCAgMzYgKystCiBncnViLWNv cmUvY29tbWFuZHMvaGFzaHN1bS5jICAgICAgICAgICAgICAgfCAgIDIgKy0KIGdydWItY29yZS9j b21tYW5kcy9sZWdhY3ljZmcuYyAgICAgICAgICAgICB8ICAgNiArLQogZ3J1Yi1jb3JlL2NvbW1h bmRzL3BncC5jICAgICAgICAgICAgICAgICAgIHwgMTE0ICsrKy0tLS0tLQogZ3J1Yi1jb3JlL2Nv bW1hbmRzL3hudV91dWlkLmMgICAgICAgICAgICAgIHwgICAyICstCiBncnViLWNvcmUvZGlzay9j cnlwdG9kaXNrLmMgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGdydWItY29yZS9pby9nemlvLmMg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogZ3J1Yi1jb3JlL2lvL2x6b3Bpby5jICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBncnViLWNvcmUvbGliL2FkbGVyMzIuYyAgICAg ICAgICAgICAgICAgICAgfCAgMjEgKy0KIGdydWItY29yZS9saWIvY3JjNjQuYyAgICAgICAgICAg ICAgICAgICAgICB8ICAyNCArLQogZ3J1Yi1jb3JlL2xpYi9jcnlwdG8uYyAgICAgICAgICAgICAg ICAgICAgIHwgMjQ1ICsrKysrKysrKysrKysrKysrKy0KIGdydWItY29yZS9saWIvbGliZ2NyeXB0 LXBhdGNoZXMvMDFfbWQuZGlmZiB8IDE0MSArKysrKysrKysrKwogZ3J1Yi1jb3JlL2xpYi9saWJn Y3J5cHQvc3JjL2djcnlwdC1pbnQuaCAgIHwgIDUxIC0tLS0KIGdydWItY29yZS9saWIvbGliZ2Ny eXB0X3dyYXAvY2lwaGVyX3dyYXAuaCB8ICAxMiArLQogZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHRf d3JhcC9tZW0uYyAgICAgICAgIHwgIDgzICsrKysrKy0KIGdydWItY29yZS9saWIveHplbWJlZC94 el9kZWNfc3RyZWFtLmMgICAgICB8ICAxOCArLQogaW5jbHVkZS9ncnViL2NyeXB0by5oICAgICAg ICAgICAgICAgICAgICAgIHwgMjYxICsrKysrKysrKysrKysrKysrLS0tLQogaW5jbHVkZS9ncnVi L2djcnlwdC9ncGctZXJyb3IuaCAgICAgICAgICAgIHwgICA5ICsKIHV0aWwvZ3J1Yi1mc3Rlc3Qu YyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogdXRpbC9pbXBvcnRfZ2NyeS5weSAg ICAgICAgICAgICAgICAgICAgICAgIHwgMTYwICsrKysrKysrLS0tLS0KIHV0aWwvaW1wb3J0X2dj cnlwdF9pbnRoLnNlZCAgICAgICAgICAgICAgICB8ICAxNyArKwogdXRpbC9pbXBvcnRfZ2NyeXB0 aC5zZWQgICAgICAgICAgICAgICAgICAgIHwgICAyIC0KIDI0IGZpbGVzIGNoYW5nZWQsIDk0MSBp bnNlcnRpb25zKCspLCAyODAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1j b3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8wMV9tZC5kaWZmCiBjcmVhdGUgbW9kZSAxMDA2NDQg dXRpbC9pbXBvcnRfZ2NyeXB0X2ludGguc2VkCgpkaWZmIC0tZ2l0IGEvYXV0b2dlbi5zaCBiL2F1 dG9nZW4uc2gKaW5kZXggMTk1ZGFhNTQxLi44ZGQ0NjhhMjEgMTAwNzU1Ci0tLSBhL2F1dG9nZW4u c2gKKysrIGIvYXV0b2dlbi5zaApAQCAtMzUsNiArMzUsNyBAQCAke1BZVEhPTn0gdXRpbC9pbXBv cnRfdW5pY29kZS5weSB1bmljb2RlL1VuaWNvZGVEYXRhLnR4dCB1bmljb2RlL0JpZGlNaXJyb3Jp bmcudAogZWNobyAiSW1wb3J0aW5nIGxpYmdjcnlwdC4uLiIKICR7UFlUSE9OfSB1dGlsL2ltcG9y dF9nY3J5LnB5IGdydWItY29yZS9saWIvbGliZ2NyeXB0LyBncnViLWNvcmUKIHNlZCAtbiAtZiB1 dGlsL2ltcG9ydF9nY3J5cHRoLnNlZCA8IGdydWItY29yZS9saWIvbGliZ2NyeXB0L3NyYy9nY3J5 cHQuaC5pbiA+IGluY2x1ZGUvZ3J1Yi9nY3J5cHQvZ2NyeXB0LmgKK3NlZCAtbiAtZiB1dGlsL2lt cG9ydF9nY3J5cHRfaW50aC5zZWQgPCBncnViLWNvcmUvbGliL2xpYmdjcnlwdC9zcmMvZ2NyeXB0 LWludC5oID4+IGluY2x1ZGUvZ3J1Yi9nY3J5cHQvZ2NyeXB0LmgKIGlmIFsgLWYgaW5jbHVkZS9n cnViL2djcnlwdC9nMTBsaWIuaCBdOyB0aGVuCiAgICAgcm0gaW5jbHVkZS9ncnViL2djcnlwdC9n MTBsaWIuaAogZmkKQEAgLTUxLDYgKzUyLDEwIEBAIGZvciB4IGluIG1waS1hc20tZGVmcy5oIG1w aWgtYWRkMS5jIG1waWgtc3ViMS5jIG1waWgtbXVsMS5jIG1waWgtbXVsMi5jIG1waWgtbXVsCiAg ICAgY3AgZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9tcGkvZ2VuZXJpYy8iJHgiIGdydWIt Y29yZS9saWIvbGliZ2NyeXB0LWdydWIvbXBpLyIkeCIKIGRvbmUKIAorZm9yIHggaW4gZ3J1Yi1j b3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8qLmRpZmY7IGRvCisgICAgcGF0Y2ggLWkgJHggLXAx Citkb25lCisKIGVjaG8gIkdlbmVyYXRpbmcgQXV0b21ha2UgaW5wdXQuLi4iCiAKICMgQXV0b21h a2UgZG9lc24ndCBsaWtlIGluY2x1ZGluZyBmaWxlcyBmcm9tIGEgcGF0aCBvdXRzaWRlIHRoZSBw cm9qZWN0LgpkaWZmIC0tZ2l0IGEvY29uZi9NYWtlZmlsZS5jb21tb24gYi9jb25mL01ha2VmaWxl LmNvbW1vbgppbmRleCBiOGYyMTZmNmMuLjFmZDNmYzlkYSAxMDA2NDQKLS0tIGEvY29uZi9NYWtl ZmlsZS5jb21tb24KKysrIGIvY29uZi9NYWtlZmlsZS5jb21tb24KQEAgLTgxLDggKzgxLDggQEAg Q1BQRkxBR1NfR05VTElCID0gLUkkKHRvcF9idWlsZGRpcikvZ3J1Yi1jb3JlL2xpYi9nbnVsaWIg LUkkKHRvcF9zcmNkaXIpL2dydWItY28KIENGTEFHU19QT1NJWCA9IC1mbm8tYnVpbHRpbgogQ1BQ RkxBR1NfUE9TSVggPSAtSSQodG9wX3NyY2RpcikvZ3J1Yi1jb3JlL2xpYi9wb3NpeF93cmFwCiAK LUNGTEFHU19HQ1JZID0gLVduby1lcnJvciAtV25vLW1pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJz IC1Xbm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8tdW5kZWYgJChDRkxBR1NfUE9TSVgpCi1DUFBGTEFH U19HQ1JZID0gLUkkKHRvcF9zcmNkaXIpL2dydWItY29yZS9saWIvbGliZ2NyeXB0X3dyYXAgJChD UFBGTEFHU19QT1NJWCkgLURfR0NSWVBUX0lOX0xJQkdDUllQVD0xIC1JJCh0b3Bfc3JjZGlyKS9p bmNsdWRlL2dydWIvZ2NyeXB0CitDRkxBR1NfR0NSWSA9IC1Xbm8tZXJyb3I9c2lnbi1jb21wYXJl IC1Xbm8tZXJyb3I9c2hpZnQtY291bnQtb3ZlcmZsb3cgLVduby1taXNzaW5nLWZpZWxkLWluaXRp YWxpemVycyAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXVuZGVmICQoQ0ZMQUdTX1BPU0lYKQor Q1BQRkxBR1NfR0NSWSA9IC1JJCh0b3Bfc3JjZGlyKS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdF93 cmFwICQoQ1BQRkxBR1NfUE9TSVgpIC1EX0dDUllQVF9JTl9MSUJHQ1JZUFQ9MSAtRF9HQ1JZUFRf Q09ORklHX0hfSU5DTFVERUQ9MSAtREhBVkVfU1RSVE9VTD0xIC1JJCh0b3Bfc3JjZGlyKS9pbmNs dWRlL2dydWIvZ2NyeXB0CiAKIENQUEZMQUdTX0VGSUVNVSA9IC1JJCh0b3Bfc3JjZGlyKS9ncnVi LWNvcmUvZWZpZW11L3J1bnRpbWUKIApkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL01ha2VmaWxlLmNv cmUuZGVmIGIvZ3J1Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmCmluZGV4IDE1NzE0MjFkNy4uM2Q3 ZTU3Y2M5IDEwMDY0NAotLS0gYS9ncnViLWNvcmUvTWFrZWZpbGUuY29yZS5kZWYKKysrIGIvZ3J1 Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmCkBAIC05NzEsOCArOTcxLDggQEAgbW9kdWxlID0gewog bW9kdWxlID0gewogICBuYW1lID0gcGdwOwogICBjb21tb24gPSBjb21tYW5kcy9wZ3AuYzsKLSAg Y2ZsYWdzID0gJyQoQ0ZMQUdTX1BPU0lYKSc7Ci0gIGNwcGZsYWdzID0gJy1JJChzcmNkaXIpL2xp Yi9wb3NpeF93cmFwJzsKKyAgY2ZsYWdzID0gJyQoQ0ZMQUdTX0dDUlkpIC1Xbm8tcmVkdW5kYW50 LWRlY2xzIC1Xbm8tc2lnbi1jb21wYXJlJzsKKyAgY3BwZmxhZ3MgPSAnJChDUFBGTEFHU19HQ1JZ KSc7CiB9OwogCiBtb2R1bGUgPSB7CkBAIC0yMTY1LDYgKzIxNjUsMjIgQEAgbW9kdWxlID0gewog ICBjb21tb24gPSB0ZXN0cy9zZXRqbXBfdGVzdC5jOwogfTsKIAorbW9kdWxlID0geworICBuYW1l ID0gZHNhX3NleHBfdGVzdDsKKyAgY29tbW9uID0gdGVzdHMvZHNhX3NleHBfdGVzdC5jOworCisg IGNmbGFncyA9ICckKENGTEFHU19HQ1JZKSAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXNpZ24t Y29tcGFyZSc7CisgIGNwcGZsYWdzID0gJyQoQ1BQRkxBR1NfR0NSWSknOworfTsKKworbW9kdWxl ID0geworICBuYW1lID0gcnNhX3NleHBfdGVzdDsKKyAgY29tbW9uID0gdGVzdHMvcnNhX3NleHBf dGVzdC5jOworCisgIGNmbGFncyA9ICckKENGTEFHU19HQ1JZKSAtV25vLXJlZHVuZGFudC1kZWNs cyAtV25vLXNpZ24tY29tcGFyZSc7CisgIGNwcGZsYWdzID0gJyQoQ1BQRkxBR1NfR0NSWSknOwor fTsKKwogbW9kdWxlID0gewogICBuYW1lID0gc2lnbmF0dXJlX3Rlc3Q7CiAgIGNvbW1vbiA9IHRl c3RzL3NpZ25hdHVyZV90ZXN0LmM7CkBAIC0yNTE5LDcgKzI1MzUsMjMgQEAgbW9kdWxlID0gewog ICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdydWIvbXBpL21waWNvZGVyLmM7CiAgIGNvbW1vbiA9 IGxpYi9saWJnY3J5cHQtZ3J1Yi9tcGkvbXBpaC1yc2hpZnQuYzsKICAgY29tbW9uID0gbGliL2xp YmdjcnlwdC1ncnViL21waS9tcGktaW5saW5lLmM7CisgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHQt Z3J1Yi9tcGkvbXBpaC1jb25zdC10aW1lLmM7CisgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHQtZ3J1 Yi9tcGkvbXBpLXNjYW4uYzsKKyAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL3NyYy9jb25z dC10aW1lLmM7CiAgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHRfd3JhcC9tZW0uYzsKKyAgY29tbW9u ID0gbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9tZC5jOworCisgIGNmbGFncyA9ICckKENGTEFH U19HQ1JZKSAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXNpZ24tY29tcGFyZSAtV25vLXVudXNl ZC1idXQtc2V0LXZhcmlhYmxlJzsKKyAgY3BwZmxhZ3MgPSAnJChDUFBGTEFHU19HQ1JZKSc7Cit9 OworCittb2R1bGUgPSB7CisgIG5hbWUgPSBwdWJrZXk7CisgIGNvbW1vbiA9IGxpYi9saWJnY3J5 cHQtZ3J1Yi9jaXBoZXIvcHVia2V5LXV0aWwuYzsKKyAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1n cnViL2NpcGhlci9yc2EtY29tbW9uLmM7CisgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHQtZ3J1Yi9j aXBoZXIvZHNhLWNvbW1vbi5jOworICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdydWIvc3JjL3Nl eHAuYzsKKyAgY29tbW9uID0gbGliL2I2NGRlYy5jOwogCiAgIGNmbGFncyA9ICckKENGTEFHU19H Q1JZKSAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXNpZ24tY29tcGFyZSc7CiAgIGNwcGZsYWdz ID0gJyQoQ1BQRkxBR1NfR0NSWSknOwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL2hh c2hzdW0uYyBiL2dydWItY29yZS9jb21tYW5kcy9oYXNoc3VtLmMKaW5kZXggZDU2YjViMGJiLi5i NmY4ZTNkMWEgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9jb21tYW5kcy9oYXNoc3VtLmMKKysrIGIv Z3J1Yi1jb3JlL2NvbW1hbmRzL2hhc2hzdW0uYwpAQCAtNzMsNyArNzMsNyBAQCBoYXNoX2ZpbGUg KGdydWJfZmlsZV90IGZpbGUsIGNvbnN0IGdjcnlfbWRfc3BlY190ICpoYXNoLCB2b2lkICpyZXN1 bHQpCiAgIGlmICghcmVhZGJ1ZiB8fCAhY29udGV4dCkKICAgICBnb3RvIGZhaWw7CiAKLSAgaGFz aC0+aW5pdCAoY29udGV4dCk7CisgIGhhc2gtPmluaXQgKGNvbnRleHQsIDApOwogICB3aGlsZSAo MSkKICAgICB7CiAgICAgICBncnViX3NzaXplX3QgcjsKZGlmZiAtLWdpdCBhL2dydWItY29yZS9j b21tYW5kcy9sZWdhY3ljZmcuYyBiL2dydWItY29yZS9jb21tYW5kcy9sZWdhY3ljZmcuYwppbmRl eCBlOWU5ZDk0ZWYuLjA1MmJiMTEwZCAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL2xl Z2FjeWNmZy5jCisrKyBiL2dydWItY29yZS9jb21tYW5kcy9sZWdhY3ljZmcuYwpAQCAtNjI1LDcg KzYyNSw3IEBAIGNoZWNrX3Bhc3N3b3JkX21kNV9yZWFsIChjb25zdCBjaGFyICplbnRlcmVkLAog ICBpZiAoIWN0eCkKICAgICByZXR1cm4gMDsKIAotICBHUlVCX01EX01ENS0+aW5pdCAoY3R4KTsK KyAgR1JVQl9NRF9NRDUtPmluaXQgKGN0eCwgMCk7CiAgIEdSVUJfTURfTUQ1LT53cml0ZSAoY3R4 LCBlbnRlcmVkLCBlbnRlcmVkbGVuKTsKICAgR1JVQl9NRF9NRDUtPndyaXRlIChjdHgsIHB3LT5z YWx0ICsgMywgcHctPnNhbHRsZW4gLSAzKTsKICAgR1JVQl9NRF9NRDUtPndyaXRlIChjdHgsIGVu dGVyZWQsIGVudGVyZWRsZW4pOwpAQCAtNjMzLDcgKzYzMyw3IEBAIGNoZWNrX3Bhc3N3b3JkX21k NV9yZWFsIChjb25zdCBjaGFyICplbnRlcmVkLAogICBHUlVCX01EX01ENS0+ZmluYWwgKGN0eCk7 CiAgIGdydWJfbWVtY3B5IChhbHRfcmVzdWx0LCBkaWdlc3QsIE1ENV9IQVNITEVOKTsKIAotICBH UlVCX01EX01ENS0+aW5pdCAoY3R4KTsKKyAgR1JVQl9NRF9NRDUtPmluaXQgKGN0eCwgMCk7CiAg IEdSVUJfTURfTUQ1LT53cml0ZSAoY3R4LCBlbnRlcmVkLCBlbnRlcmVkbGVuKTsKICAgR1JVQl9N RF9NRDUtPndyaXRlIChjdHgsIHB3LT5zYWx0LCBwdy0+c2FsdGxlbik7IC8qIGluY2x1ZGUgdGhl ICQxJCBoZWFkZXIgKi8KICAgZm9yIChpID0gZW50ZXJlZGxlbjsgaSA+IDE2OyBpIC09IDE2KQpA QCAtNjQ5LDcgKzY0OSw3IEBAIGNoZWNrX3Bhc3N3b3JkX21kNV9yZWFsIChjb25zdCBjaGFyICpl bnRlcmVkLAogICAgIHsKICAgICAgIGdydWJfbWVtY3B5IChhbHRfcmVzdWx0LCBkaWdlc3QsIDE2 KTsKIAotICAgICAgR1JVQl9NRF9NRDUtPmluaXQgKGN0eCk7CisgICAgICBHUlVCX01EX01ENS0+ aW5pdCAoY3R4LCAwKTsKICAgICAgIGlmICgoaSAmIDEpICE9IDApCiAJR1JVQl9NRF9NRDUtPndy aXRlIChjdHgsIGVudGVyZWQsIGVudGVyZWRsZW4pOwogICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEv Z3J1Yi1jb3JlL2NvbW1hbmRzL3BncC5jIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL3BncC5jCmluZGV4 IGM2NzY2ZjA0NC4uMjJlY2E5N2ZmIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvY29tbWFuZHMvcGdw LmMKKysrIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL3BncC5jCkBAIC0xMzYsNDEgKzEzNiwyNyBAQCBz dHJ1Y3Qgc2lnbmF0dXJlX3Y0X2hlYWRlcgogICBncnViX3VpbnQxNl90IGhhc2hlZF9zdWI7CiB9 IEdSVUJfUEFDS0VEOwogCi1jb25zdCBjaGFyICpoYXNoZXNbXSA9IHsKLSAgWzB4MDFdID0gIm1k NSIsCi0gIFsweDAyXSA9ICJzaGExIiwKLSAgWzB4MDNdID0gInJpcGVtZDE2MCIsCi0gIFsweDA4 XSA9ICJzaGEyNTYiLAotICBbMHgwOV0gPSAic2hhMzg0IiwKLSAgWzB4MGFdID0gInNoYTUxMiIs Ci0gIFsweDBiXSA9ICJzaGEyMjQiCi19OwotCiBzdHJ1Y3QgZ2NyeV9wa19zcGVjICpncnViX2Ny eXB0b19wa19kc2E7CiBzdHJ1Y3QgZ2NyeV9wa19zcGVjICpncnViX2NyeXB0b19wa19lY2RzYTsK IHN0cnVjdCBnY3J5X3BrX3NwZWMgKmdydWJfY3J5cHRvX3BrX3JzYTsKIAotc3RhdGljIGludAot ZHNhX3BhZCAoZ2NyeV9tcGlfdCAqaG1waSwgZ3J1Yl91aW50OF90ICpodmFsLAotCSBjb25zdCBn Y3J5X21kX3NwZWNfdCAqaGFzaCwgc3RydWN0IGdydWJfcHVibGljX3N1YmtleSAqc2spOwotc3Rh dGljIGludAotcnNhX3BhZCAoZ2NyeV9tcGlfdCAqaG1waSwgZ3J1Yl91aW50OF90ICpodmFsLAot CSBjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgc3RydWN0IGdydWJfcHVibGljX3N1YmtleSAq c2spOwotCiBzdHJ1Y3QKIHsKICAgY29uc3QgY2hhciAqbmFtZTsKKyAgY29uc3QgY2hhciAqc2ln c2V4cDsKICAgZ3J1Yl9zaXplX3Qgbm1waXNpZzsKKyAgY29uc3QgY2hhciAqcHVic2V4cDsKICAg Z3J1Yl9zaXplX3Qgbm1waXB1YjsKICAgc3RydWN0IGdjcnlfcGtfc3BlYyAqKmFsZ287Ci0gIGlu dCAoKnBhZCkgKGdjcnlfbXBpX3QgKmhtcGksIGdydWJfdWludDhfdCAqaHZhbCwKLQkgICAgICBj b25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgc3RydWN0IGdydWJfcHVibGljX3N1YmtleSAqc2sp OworICBjb25zdCBjaGFyICpwYWRkaW5nOwogICBjb25zdCBjaGFyICptb2R1bGU7CiB9IHBrYWxn b3NbXSA9CiAgIHsKLSAgICBbMV0gPSB7ICJyc2EiLCAxLCAyLCAmZ3J1Yl9jcnlwdG9fcGtfcnNh LCByc2FfcGFkLCAiZ2NyeV9yc2EiIH0sCi0gICAgWzNdID0geyAicnNhIiwgMSwgMiwgJmdydWJf Y3J5cHRvX3BrX3JzYSwgcnNhX3BhZCwgImdjcnlfcnNhIiB9LAotICAgIFsxN10gPSB7ICJkc2Ei LCAyLCA0LCAmZ3J1Yl9jcnlwdG9fcGtfZHNhLCBkc2FfcGFkLCAiZ2NyeV9kc2EiIH0sCisgICAg WzFdID0geyAicnNhIiwgIihzaWctdmFsIChyc2EgKHMgJU0pKSkiLCAxLCAiKHB1YmxpYy1rZXkg KGRzYSAobiAlTSkgKGUgJU0pKSkiLCAyLCAmZ3J1Yl9jcnlwdG9fcGtfcnNhLCAicGtjczEiLCAi Z2NyeV9yc2EiIH0sCisgICAgWzNdID0geyAicnNhIiwgIihzaWctdmFsIChyc2EgKHMgJU0pKSki LCAxLCAiKHB1YmxpYy1rZXkgKGRzYSAobiAlTSkgKGUgJU0pKSkiLCAyLCAmZ3J1Yl9jcnlwdG9f cGtfcnNhLCAicGtjczEiLCAiZ2NyeV9yc2EiIH0sCisgICAgWzE3XSA9IHsgImRzYSIsICIoc2ln LXZhbCAoZHNhIChyICVNKSAocyAlTSkpKSIsIDIsCisJICAgICAiKHB1YmxpYy1rZXkgKGRzYSAo cCAlTSkgKHEgJU0pIChnICVNKSAoeSAlTSkpKSIsCisJICAgICA0LCAmZ3J1Yl9jcnlwdG9fcGtf ZHNhLCAicmF3IiwgImdjcnlfZHNhIiB9LAogICB9OwogCiBzdHJ1Y3QgZ3J1Yl9wdWJsaWNfa2V5 CkBAIC0xOTYsNyArMTgyLDcgQEAgZnJlZV9wayAoc3RydWN0IGdydWJfcHVibGljX2tleSAqcGsp CiAgICAgICBncnViX3NpemVfdCBpOwogICAgICAgZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUg KHNrLT5tcGlzKTsgaSsrKQogCWlmIChzay0+bXBpc1tpXSkKLQkgIGdjcnlfbXBpX3JlbGVhc2Ug KHNrLT5tcGlzW2ldKTsKKwkgIF9nY3J5X21waV9yZWxlYXNlIChzay0+bXBpc1tpXSk7CiAgICAg ICBuc2sgPSBzay0+bmV4dDsKICAgICAgIGdydWJfZnJlZSAoc2spOwogICAgIH0KQEAgLTMwMyw3 ICsyODksNyBAQCBncnViX2xvYWRfcHVibGljX2tleSAoZ3J1Yl9maWxlX3QgZikKIAlnb3RvIGZh aWw7CiAKICAgICAgIGdydWJfbWVtc2V0IChmaW5nZXJwcmludF9jb250ZXh0LCAwLCBHUlVCX01E X1NIQTEtPmNvbnRleHRzaXplKTsKLSAgICAgIEdSVUJfTURfU0hBMS0+aW5pdCAoZmluZ2VycHJp bnRfY29udGV4dCk7CisgICAgICBHUlVCX01EX1NIQTEtPmluaXQgKGZpbmdlcnByaW50X2NvbnRl eHQsIDApOwogICAgICAgR1JVQl9NRF9TSEExLT53cml0ZSAoZmluZ2VycHJpbnRfY29udGV4dCwg Ilx4OTkiLCAxKTsKICAgICAgIGxlbl9iZSA9IGdydWJfY3B1X3RvX2JlMTYgKGxlbik7CiAgICAg ICBHUlVCX01EX1NIQTEtPndyaXRlIChmaW5nZXJwcmludF9jb250ZXh0LCAmbGVuX2JlLCBzaXpl b2YgKGxlbl9iZSkpOwpAQCAtMzM2LDcgKzMyMiw3IEBAIGdydWJfbG9hZF9wdWJsaWNfa2V5IChn cnViX2ZpbGVfdCBmKQogCiAJICBHUlVCX01EX1NIQTEtPndyaXRlIChmaW5nZXJwcmludF9jb250 ZXh0LCBidWZmZXIsIGxiICsgc2l6ZW9mIChncnViX3VpbnQxNl90KSk7CiAKLQkgIGlmIChnY3J5 X21waV9zY2FuICgmc2stPm1waXNbaV0sIEdDUllNUElfRk1UX1BHUCwKKwkgIGlmIChfZ2NyeV9t cGlfc2NhbiAoJnNrLT5tcGlzW2ldLCBHQ1JZTVBJX0ZNVF9QR1AsCiAJCQkgICAgIGJ1ZmZlciwg bGIgKyBzaXplb2YgKGdydWJfdWludDE2X3QpLCAwKSkKIAkgICAgewogCSAgICAgIGdydWJfZXJy b3IgKEdSVUJfRVJSX0JBRF9TSUdOQVRVUkUsIE5fKCJiYWQgc2lnbmF0dXJlIikpOwpAQCAtMzk0 LDUxICszODAsNiBAQCBncnViX2NyeXB0b19wa19sb2NhdGVfc3Via2V5X2luX3RydXN0ZGIgKGdy dWJfdWludDY0X3Qga2V5aWQpCiAgIHJldHVybiAwOwogfQogCi0KLXN0YXRpYyBpbnQKLWRzYV9w YWQgKGdjcnlfbXBpX3QgKmhtcGksIGdydWJfdWludDhfdCAqaHZhbCwKLQkgY29uc3QgZ2NyeV9t ZF9zcGVjX3QgKmhhc2gsIHN0cnVjdCBncnViX3B1YmxpY19zdWJrZXkgKnNrKQotewotICB1bnNp Z25lZCBuYml0cyA9IGdjcnlfbXBpX2dldF9uYml0cyAoc2stPm1waXNbMV0pOwotICBncnViX2Rw cmludGYgKCJjcnlwdCIsICJtdXN0IGJlICV1IGJpdHMgZ290ICVkIGJpdHNcbiIsIG5iaXRzLAot CQkoaW50KSg4ICogaGFzaC0+bWRsZW4pKTsKLSAgcmV0dXJuIGdjcnlfbXBpX3NjYW4gKGhtcGks IEdDUllNUElfRk1UX1VTRywgaHZhbCwKLQkJCW5iaXRzIC8gOCA8ICh1bnNpZ25lZCkgaGFzaC0+ bWRsZW4gPyBuYml0cyAvIDgKLQkJCTogKHVuc2lnbmVkKSBoYXNoLT5tZGxlbiwgMCk7Ci19Ci0K LXN0YXRpYyBpbnQKLXJzYV9wYWQgKGdjcnlfbXBpX3QgKmhtcGksIGdydWJfdWludDhfdCAqaHZh bCwKLQkgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKmhhc2gsIHN0cnVjdCBncnViX3B1YmxpY19zdWJr ZXkgKnNrKQotewotICBncnViX3NpemVfdCB0bGVuLCBlbWxlbiwgZmZsZW47Ci0gIGdydWJfdWlu dDhfdCAqZW0sICplbXB0cjsKLSAgdW5zaWduZWQgbmJpdHMgPSBnY3J5X21waV9nZXRfbmJpdHMg KHNrLT5tcGlzWzBdKTsKLSAgaW50IHJldDsKLSAgdGxlbiA9IGhhc2gtPm1kbGVuICsgaGFzaC0+ YXNubGVuOwotICBlbWxlbiA9IChuYml0cyArIDcpIC8gODsKLSAgaWYgKGVtbGVuIDwgdGxlbiAr IDExKQotICAgIHJldHVybiAxOwotCi0gIGVtID0gZ3J1Yl9tYWxsb2MgKGVtbGVuKTsKLSAgaWYg KCFlbSkKLSAgICByZXR1cm4gMTsKLQotICBlbVswXSA9IDB4MDA7Ci0gIGVtWzFdID0gMHgwMTsK LSAgZmZsZW4gPSBlbWxlbiAtIHRsZW4gLSAzOwotICBmb3IgKGVtcHRyID0gZW0gKyAyOyBlbXB0 ciA8IGVtICsgMiArIGZmbGVuOyBlbXB0cisrKQotICAgICplbXB0ciA9IDB4ZmY7Ci0gICplbXB0 cisrID0gMHgwMDsKLSAgZ3J1Yl9tZW1jcHkgKGVtcHRyLCBoYXNoLT5hc25vaWQsIGhhc2gtPmFz bmxlbik7Ci0gIGVtcHRyICs9IGhhc2gtPmFzbmxlbjsKLSAgZ3J1Yl9tZW1jcHkgKGVtcHRyLCBo dmFsLCBoYXNoLT5tZGxlbik7Ci0KLSAgcmV0ID0gZ2NyeV9tcGlfc2NhbiAoaG1waSwgR0NSWU1Q SV9GTVRfVVNHLCBlbSwgZW1sZW4sIDApOwotICBncnViX2ZyZWUgKGVtKTsKLSAgcmV0dXJuIHJl dDsKLX0KLQogc3RydWN0IGdydWJfcHVia2V5X2NvbnRleHQKIHsKICAgZ3J1Yl9maWxlX3Qgc2ln OwpAQCAtNDgzLDE1ICs0MjQsMTIgQEAgZ3J1Yl92ZXJpZnlfc2lnbmF0dXJlX2luaXQgKHN0cnVj dCBncnViX3B1YmtleV9jb250ZXh0ICpjdHh0LCBncnViX2ZpbGVfdCBzaWcpCiAgIGlmICh0ICE9 IDApCiAgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9TSUdOQVRVUkUsIE5fKCJi YWQgc2lnbmF0dXJlIikpOwogCi0gIGlmIChoID49IEFSUkFZX1NJWkUgKGhhc2hlcykgfHwgaGFz aGVzW2hdID09IE5VTEwpCi0gICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9TSUdO QVRVUkUsICJ1bmtub3duIGhhc2giKTsKLQogICBpZiAocGsgPj0gQVJSQVlfU0laRSAocGthbGdv cykgfHwgcGthbGdvc1twa10ubmFtZSA9PSBOVUxMKQogICAgIHJldHVybiBncnViX2Vycm9yIChH UlVCX0VSUl9CQURfU0lHTkFUVVJFLCBOXygiYmFkIHNpZ25hdHVyZSIpKTsKIAotICBjdHh0LT5o YXNoID0gZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X25hbWUgKGhhc2hlc1toXSk7CisgIGN0eHQt Pmhhc2ggPSBncnViX2NyeXB0b19sb29rdXBfbWRfYnlfYWxnbyAoaCk7CiAgIGlmICghY3R4dC0+ aGFzaCkKLSAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX1NJR05BVFVSRSwgImhh c2ggYCVzJyBub3QgbG9hZGVkIiwgaGFzaGVzW2hdKTsKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAo R1JVQl9FUlJfQkFEX1NJR05BVFVSRSwgImhhc2ggYCVkJyBub3QgbG9hZGVkIiwgaCk7CiAKICAg Z3J1Yl9kcHJpbnRmICgiY3J5cHQiLCAiYWxpdmVcbiIpOwogCkBAIC00OTksNyArNDM3LDcgQEAg Z3J1Yl92ZXJpZnlfc2lnbmF0dXJlX2luaXQgKHN0cnVjdCBncnViX3B1YmtleV9jb250ZXh0ICpj dHh0LCBncnViX2ZpbGVfdCBzaWcpCiAgIGlmICghY3R4dC0+aGFzaF9jb250ZXh0KQogICAgIHJl dHVybiBncnViX2Vycm5vOwogCi0gIGN0eHQtPmhhc2gtPmluaXQgKGN0eHQtPmhhc2hfY29udGV4 dCk7CisgIGN0eHQtPmhhc2gtPmluaXQgKGN0eHQtPmhhc2hfY29udGV4dCwgMCk7CiAgIGN0eHQt PnNpZyA9IHNpZzsKIAogICByZXR1cm4gR1JVQl9FUlJfTk9ORTsKQEAgLTUyOCw3ICs0NjYsNiBA QCBncnViX3ZlcmlmeV9zaWduYXR1cmVfcmVhbCAoc3RydWN0IGdydWJfcHVia2V5X2NvbnRleHQg KmN0eHQsCiAgIGdydWJfdWludDE2X3QgdW5oYXNoZWRfc3ViOwogICBncnViX3NzaXplX3QgcjsK ICAgZ3J1Yl91aW50OF90IGhhc2hfc3RhcnRbMl07Ci0gIGdjcnlfbXBpX3QgaG1waTsKICAgZ3J1 Yl91aW50NjRfdCBrZXlpZCA9IDA7CiAgIHN0cnVjdCBncnViX3B1YmxpY19zdWJrZXkgKnNrOwog CkBAIC02MjAsNyArNTU3LDcgQEAgZ3J1Yl92ZXJpZnlfc2lnbmF0dXJlX3JlYWwgKHN0cnVjdCBn cnViX3B1YmtleV9jb250ZXh0ICpjdHh0LAogICAgICAgZ3J1Yl9tZW1jcHkgKHJlYWRidWYsICZs LCBzaXplb2YgKGwpKTsKICAgICAgIGdydWJfZHByaW50ZiAoImNyeXB0IiwgImFsaXZlXG4iKTsK IAotICAgICAgaWYgKGdjcnlfbXBpX3NjYW4gKCZtcGlzW2ldLCBHQ1JZTVBJX0ZNVF9QR1AsCisg ICAgICBpZiAoX2djcnlfbXBpX3NjYW4gKCZtcGlzW2ldLCBHQ1JZTVBJX0ZNVF9QR1AsCiAJCQkg cmVhZGJ1ZiwgbGIgKyBzaXplb2YgKGdydWJfdWludDE2X3QpLCAwKSkKIAlnb3RvIGZhaWw7CiAg ICAgICBncnViX2RwcmludGYgKCJjcnlwdCIsICJhbGl2ZVxuIik7CkBAIC02MzgsOCArNTc1LDYg QEAgZ3J1Yl92ZXJpZnlfc2lnbmF0dXJlX3JlYWwgKHN0cnVjdCBncnViX3B1YmtleV9jb250ZXh0 ICpjdHh0LAogICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICBpZiAocGthbGdvc1twa10ucGFk ICgmaG1waSwgaHZhbCwgY3R4dC0+aGFzaCwgc2spKQotICAgIGdvdG8gZmFpbDsKICAgaWYgKCEq cGthbGdvc1twa10uYWxnbykKICAgICB7CiAgICAgICBncnViX2RsX2xvYWQgKHBrYWxnb3NbcGtd Lm1vZHVsZSk7CkBAIC02NTIsNyArNTg3LDI0IEBAIGdydWJfdmVyaWZ5X3NpZ25hdHVyZV9yZWFs IChzdHJ1Y3QgZ3J1Yl9wdWJrZXlfY29udGV4dCAqY3R4dCwKIAkJICBwa2FsZ29zW3BrXS5tb2R1 bGUpOwogICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgaWYgKCgqcGthbGdvc1twa10uYWxnbykt PnZlcmlmeSAoMCwgaG1waSwgbXBpcywgc2stPm1waXMsIDAsIDApKQorCisgIGdjcnlfc2V4cF90 IGhzZXhwLCBwdWJrZXksIHNpZzsKKyAgZ3J1Yl9zaXplX3QgZXJyb2Y7CisKKyAgaWYoX2djcnlf c2V4cF9idWlsZCgmaHNleHAsICZlcnJvZiwgIihkYXRhIChmbGFncyAlcykgKGhhc2ggJXMgJWIp KSIsIHBrYWxnb3NbcGtdLnBhZGRpbmcsIGN0eHQtPmhhc2gtPm5hbWUsIGN0eHQtPmhhc2gtPm1k bGVuLCBodmFsKSkKKyAgICBnb3RvIGZhaWw7CisKKyAgaWYoX2djcnlfc2V4cF9idWlsZCgmcHVi a2V5LCAmZXJyb2YsIHBrYWxnb3NbcGtdLnB1YnNleHAsIHNrLT5tcGlzWzBdLCBzay0+bXBpc1sx XSwgc2stPm1waXNbMl0sIHNrLT5tcGlzWzNdKSkKKyAgICBnb3RvIGZhaWw7CisKKyAgaWYoX2dj cnlfc2V4cF9idWlsZCgmc2lnLCAmZXJyb2YsIHBrYWxnb3NbcGtdLnNpZ3NleHAsIG1waXNbMF0s IG1waXNbMV0pKQorICAgIGdvdG8gZmFpbDsKKworICBfZ2NyeV9zZXhwX2R1bXAoc2lnKTsKKyAg X2djcnlfc2V4cF9kdW1wKGhzZXhwKTsKKyAgX2djcnlfc2V4cF9kdW1wKHB1YmtleSk7CisKKyAg aWYgKCgqcGthbGdvc1twa10uYWxnbyktPnZlcmlmeSAoc2lnLCBoc2V4cCwgcHVia2V5KSkKICAg ICBnb3RvIGZhaWw7CiAKICAgZ3J1Yl9mcmVlIChyZWFkYnVmKTsKZGlmZiAtLWdpdCBhL2dydWIt Y29yZS9jb21tYW5kcy94bnVfdXVpZC5jIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL3hudV91dWlkLmMK aW5kZXggYWU0YjNhNDE1Li4xNDA2YzQzZjUgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9jb21tYW5k cy94bnVfdXVpZC5jCisrKyBiL2dydWItY29yZS9jb21tYW5kcy94bnVfdXVpZC5jCkBAIC02OCw3 ICs2OCw3IEBAIGdydWJfY21kX3hudV91dWlkIChncnViX2NvbW1hbmRfdCBjbWQgX19hdHRyaWJ1 dGVfXyAoKHVudXNlZCkpLAogICBjdHggPSBncnViX3phbGxvYyAoR1JVQl9NRF9NRDUtPmNvbnRl eHRzaXplKTsKICAgaWYgKCFjdHgpCiAgICAgcmV0dXJuIGdydWJfZXJybm87Ci0gIEdSVUJfTURf TUQ1LT5pbml0IChjdHgpOworICBHUlVCX01EX01ENS0+aW5pdCAoY3R4LCAwKTsKICAgR1JVQl9N RF9NRDUtPndyaXRlIChjdHgsIGhhc2hfcHJlZml4LCBzaXplb2YgKGhhc2hfcHJlZml4KSk7CiAg IEdSVUJfTURfTUQ1LT53cml0ZSAoY3R4LCAmc2VyaWFsLCBzaXplb2YgKHNlcmlhbCkpOwogICBH UlVCX01EX01ENS0+ZmluYWwgKGN0eCk7CmRpZmYgLS1naXQgYS9ncnViLWNvcmUvZGlzay9jcnlw dG9kaXNrLmMgYi9ncnViLWNvcmUvZGlzay9jcnlwdG9kaXNrLmMKaW5kZXggMjI0NmFmNTFiLi43 ZmYxYzUzMjIgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9kaXNrL2NyeXB0b2Rpc2suYworKysgYi9n cnViLWNvcmUvZGlzay9jcnlwdG9kaXNrLmMKQEAgLTI5Niw3ICsyOTYsNyBAQCBncnViX2NyeXB0 b2Rpc2tfZW5kZWNyeXB0IChzdHJ1Y3QgZ3J1Yl9jcnlwdG9kaXNrICpkZXYsCiAJICAgICAgcmV0 dXJuIEdQR19FUlJfT1VUX09GX01FTU9SWTsKIAogCSAgICB0bXAgPSBncnViX2NwdV90b19sZTY0 IChzZWN0b3IgPDwgbG9nX3NlY3Rvcl9zaXplKTsKLQkgICAgZGV2LT5pdl9oYXNoLT5pbml0IChj dHgpOworCSAgICBkZXYtPml2X2hhc2gtPmluaXQgKGN0eCwgMCk7CiAJICAgIGRldi0+aXZfaGFz aC0+d3JpdGUgKGN0eCwgZGV2LT5pdl9wcmVmaXgsIGRldi0+aXZfcHJlZml4X2xlbik7CiAJICAg IGRldi0+aXZfaGFzaC0+d3JpdGUgKGN0eCwgJnRtcCwgc2l6ZW9mICh0bXApKTsKIAkgICAgZGV2 LT5pdl9oYXNoLT5maW5hbCAoY3R4KTsKZGlmZiAtLWdpdCBhL2dydWItY29yZS9pby9nemlvLmMg Yi9ncnViLWNvcmUvaW8vZ3ppby5jCmluZGV4IGNhOTM1NTc1MS4uMzBjODYzZTViIDEwMDY0NAot LS0gYS9ncnViLWNvcmUvaW8vZ3ppby5jCisrKyBiL2dydWItY29yZS9pby9nemlvLmMKQEAgLTEx ODQsNyArMTE4NCw3IEBAIGluaXRpYWxpemVfdGFibGVzIChncnViX2d6aW9fdCBnemlvKQogICBn emlvLT50ZCA9IE5VTEw7CiAKICAgaWYgKGd6aW8tPmhjb250ZXh0KQotICAgIGd6aW8tPmhkZXNj LT5pbml0KGd6aW8tPmhjb250ZXh0KTsKKyAgICBnemlvLT5oZGVzYy0+aW5pdChnemlvLT5oY29u dGV4dCwgMCk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2lvL2x6b3Bpby5jIGIvZ3J1 Yi1jb3JlL2lvL2x6b3Bpby5jCmluZGV4IGE3ZDQ0MjU0My4uY2VhOTQyMzA4IDEwMDY0NAotLS0g YS9ncnViLWNvcmUvaW8vbHpvcGlvLmMKKysrIGIvZ3J1Yi1jb3JlL2lvL2x6b3Bpby5jCkBAIC0z NDUsNyArMzQ1LDcgQEAgdGVzdF9oZWFkZXIgKGdydWJfZmlsZV90IGZpbGUpCiAgICAgaWYgKCEg Y29udGV4dCkKICAgICAgIHJldHVybiAwOwogCi0gICAgaGNoZWNrLT5pbml0KGNvbnRleHQpOwor ICAgIGhjaGVjay0+aW5pdChjb250ZXh0LCAwKTsKIAogICAgIC8qIE1BR0lDIGlzIG5vdCBpbmNs dWRlZCBpbiBjaGVjayBjYWxjdWxhdGlvbi4gICovCiAgICAgaGNoZWNrLT53cml0ZShjb250ZXh0 LCAmaGVhZGVyLmx6b3BfdmVyc2lvbiwgc2l6ZW9mKGhlYWRlciktIExaT1BfTUFHSUNfU0laRSk7 CmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2FkbGVyMzIuYyBiL2dydWItY29yZS9saWIvYWRs ZXIzMi5jCmluZGV4IDQzYjY4YWY2Mi4uZjg0OWNjZWU2IDEwMDY0NAotLS0gYS9ncnViLWNvcmUv bGliL2FkbGVyMzIuYworKysgYi9ncnViLWNvcmUvbGliL2FkbGVyMzIuYwpAQCAtMjksMTAgKzI5 LDEyIEBAIHN0cnVjdCBhZGxlcjMyX2NvbnRleHQKIH07CiAKIHN0YXRpYyB2b2lkCi1hZGxlcjMy X2luaXQgKHZvaWQgKmNvbnRleHQpCithZGxlcjMyX2luaXQgKHZvaWQgKmNvbnRleHQsIHVuc2ln bmVkIGludCBmbGFncykKIHsKICAgc3RydWN0IGFkbGVyMzJfY29udGV4dCAqY3R4ID0gY29udGV4 dDsKIAorICAodm9pZCkgZmxhZ3M7CisKICAgY3R4LT5hID0gMTsKICAgY3R4LT5iID0gMDsKIH0K QEAgLTgxLDEzICs4MywyMiBAQCBhZGxlcjMyX3JlYWQgKHZvaWQgKmNvbnRleHQpCiAKIHN0YXRp YyBnY3J5X21kX3NwZWNfdCBzcGVjX2FkbGVyMzIgPQogICB7Ci0gICAgIkFETEVSMzIiLCAwLCAw LCAwLCA0LAotICAgIGFkbGVyMzJfaW5pdCwgYWRsZXIzMl93cml0ZSwgYWRsZXIzMl9maW5hbCwg YWRsZXIzMl9yZWFkLAotICAgIHNpemVvZiAoc3RydWN0IGFkbGVyMzJfY29udGV4dCksCisgICAg LmFsZ28gPSBHQ1JZX01EX0FETEVSMzIsCisgICAgLmZsYWdzID0gey5kaXNhYmxlZCA9IDAsIC5m aXBzID0gMH0sCisgICAgLm5hbWUgPSAiQURMRVIzMiIsCisgICAgLmFzbm9pZCA9IE5VTEwsCisg ICAgLmFzbmxlbiA9IDAsCisgICAgLm9pZHMgPSBOVUxMLAorICAgIC5tZGxlbiA9IDQsCisgICAg LmluaXQgPSBhZGxlcjMyX2luaXQsCisgICAgLndyaXRlID0gYWRsZXIzMl93cml0ZSwKKyAgICAu ZmluYWwgPSBhZGxlcjMyX2ZpbmFsLAorICAgIC5yZWFkID0gYWRsZXIzMl9yZWFkLAorICAgIC5j b250ZXh0c2l6ZSA9IHNpemVvZiAoc3RydWN0IGFkbGVyMzJfY29udGV4dCksCisgICAgLmJsb2Nr c2l6ZSA9IDY0LAogI2lmZGVmIEdSVUJfVVRJTAogICAgIC5tb2RuYW1lID0gImFkbGVyMzIiLAog I2VuZGlmCi0gICAgLmJsb2Nrc2l6ZSA9IDY0CiAgIH07CiAKIApkaWZmIC0tZ2l0IGEvZ3J1Yi1j b3JlL2xpYi9jcmM2NC5jIGIvZ3J1Yi1jb3JlL2xpYi9jcmM2NC5jCmluZGV4IDQ5NjBmM2Y4OS4u YzIzMWZhOTdjIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvbGliL2NyYzY0LmMKKysrIGIvZ3J1Yi1j b3JlL2xpYi9jcmM2NC5jCkBAIC02MSw4ICs2MSwxMCBAQCBpbml0X2NyYzY0X3RhYmxlICh2b2lk KQogfQogCiBzdGF0aWMgdm9pZAotY3JjNjRfaW5pdCAodm9pZCAqY29udGV4dCkKK2NyYzY0X2lu aXQgKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCBmbGFncykKIHsKKyAgKHZvaWQpIGZsYWdz OworCiAgIGlmICghIGNyYzY0X3RhYmxlWzFdKQogICAgIGluaXRfY3JjNjRfdGFibGUgKCk7CiAg ICooZ3J1Yl91aW50NjRfdCAqKSBjb250ZXh0ID0gMDsKQEAgLTk3LDEwICs5OSwyMiBAQCBjcmM2 NF9maW5hbCAodm9pZCAqY29udGV4dCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkpCiAKIGdjcnlf bWRfc3BlY190IF9nY3J5X2RpZ2VzdF9zcGVjX2NyYzY0ID0KICAgewotICAgICJDUkM2NCIsIDAs IDAsIDAsIDgsCi0gICAgY3JjNjRfaW5pdCwgY3JjNjRfd3JpdGUsIGNyYzY0X2ZpbmFsLCBjcmM2 NF9yZWFkLAotICAgIHNpemVvZiAoZ3J1Yl91aW50NjRfdCksCi0gICAgLmJsb2Nrc2l6ZSA9IDY0 CisgICAgLmFsZ28gPSBHQ1JZX01EX0NSQzY0LAorICAgIC5mbGFncyA9IHsuZGlzYWJsZWQgPSAw LCAuZmlwcyA9IDB9LAorICAgIC5uYW1lID0gIkNSQzY0IiwKKyAgICAuYXNub2lkID0gTlVMTCwK KyAgICAuYXNubGVuID0gMCwKKyAgICAub2lkcyA9IE5VTEwsCisgICAgLm1kbGVuID0gOCwKKyAg ICAuaW5pdCA9IGNyYzY0X2luaXQsCisgICAgLndyaXRlID0gY3JjNjRfd3JpdGUsCisgICAgLmZp bmFsID0gY3JjNjRfZmluYWwsCisgICAgLnJlYWQgPSBjcmM2NF9yZWFkLAorICAgIC5jb250ZXh0 c2l6ZSA9IHNpemVvZiAoZ3J1Yl91aW50NjRfdCksCisgICAgLmJsb2Nrc2l6ZSA9IDY0LAorI2lm ZGVmIEdSVUJfVVRJTAorICAgIC5tb2RuYW1lID0gImNyYzY0IiwKKyNlbmRpZgogICB9OwogCiBH UlVCX01PRF9JTklUKGNyYzY0KQpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi9jcnlwdG8uYyBi L2dydWItY29yZS9saWIvY3J5cHRvLmMKaW5kZXggMzk2Zjc2NDEwLi5kZDYwZGQ0YWMgMTAwNjQ0 Ci0tLSBhL2dydWItY29yZS9saWIvY3J5cHRvLmMKKysrIGIvZ3J1Yi1jb3JlL2xpYi9jcnlwdG8u YwpAQCAtMzcsNiArMzcsOCBAQCBzdHJ1Y3QgZ3J1Yl9jcnlwdG9faG1hY19oYW5kbGUKIHN0YXRp YyBnY3J5X2NpcGhlcl9zcGVjX3QgKmdydWJfY2lwaGVycyA9IE5VTEw7CiBzdGF0aWMgZ2NyeV9t ZF9zcGVjX3QgKmdydWJfZGlnZXN0cyA9IE5VTEw7CiAKK2ludCBfZ2NyeV9ub19maXBzX21vZGVf cmVxdWlyZWQgPSAxOworCiB2b2lkICgqZ3J1Yl9jcnlwdG9fYXV0b2xvYWRfaG9vaykgKGNvbnN0 IGNoYXIgKm5hbWUpID0gTlVMTDsKIAogLyogQmFzZWQgb24gbGliZ2NyeXB0LTEuNC40L3NyYy9t aXNjLmMuICAqLwpAQCAtNTYsNiArNTgsMTcgQEAgX2djcnlfYnVybl9zdGFjayAoaW50IHNpemUp CiAgIGdydWJfYnVybl9zdGFjayAoc2l6ZSk7CiB9CiAKK3ZvaWQKK19fZ2NyeV9idXJuX3N0YWNr ICh1bnNpZ25lZCBpbnQgc2l6ZSkKK3sKKyAgZ3J1Yl9idXJuX3N0YWNrIChzaXplKTsKK30KKwor dm9pZAorX19nY3J5X2J1cm5fc3RhY2tfZHVtbXkgKHZvaWQpCit7Cit9CisKIHZvaWQgX19hdHRy aWJ1dGVfXyAoKG5vcmV0dXJuKSkKIF9nY3J5X2Fzc2VydF9mYWlsZWQgKGNvbnN0IGNoYXIgKmV4 cHIsIGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLAogCQkgICAgIGNvbnN0IGNoYXIgKmZ1bmMp CkBAIC02NCw2ICs3NywxMiBAQCBfZ2NyeV9hc3NlcnRfZmFpbGVkIChjb25zdCBjaGFyICpleHBy LCBjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwKICAgZ3J1Yl9mYXRhbCAoImFzc2VydGlvbiAl cyBhdCAlczolZCAoJXMpIGZhaWxlZFxuIiwgZXhwciwgZmlsZSwgbGluZSwgZnVuYyk7CiB9CiAK K3ZvaWQKK19nY3J5X2J1ZyggY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIg KmZ1bmMgKQoreworICAgIGdydWJfZmF0YWwgKCIuLi4gdGhpcyBpcyBhIGJ1ZyAoJXM6JWQ6JXMp XG4iLCBmaWxlLCBsaW5lLCBmdW5jKTsKK30KKwogCiB2b2lkIF9nY3J5X2xvZ19lcnJvciAoY29u c3QgY2hhciAqZm10LCAuLi4pCiB7CkBAIC04Myw2ICsxMDIsMzYgQEAgdm9pZCBfZ2NyeV9sb2df ZXJyb3IgKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogICAgIH0KIH0KIAordm9pZCBfZ2NyeV9sb2df aW5mbyAoY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisgIHZhX2xpc3QgYXJnczsKKyAgY29uc3Qg Y2hhciAqZGVidWcgPSBncnViX2Vudl9nZXQgKCJkZWJ1ZyIpOworCisgIGlmICghIGRlYnVnKQor ICAgIHJldHVybjsKKworICBpZiAoZ3J1Yl9zdHJ3b3JkIChkZWJ1ZywgImFsbCIpIHx8IGdydWJf c3Ryd29yZCAoZGVidWcsICJnY3J5cHQiKSkKKyAgICB7CisgICAgICBncnViX3ByaW50ZiAoImdj cnlwdCBpbmZvOiAiKTsKKyAgICAgIHZhX3N0YXJ0IChhcmdzLCBmbXQpOworICAgICAgZ3J1Yl92 cHJpbnRmIChmbXQsIGFyZ3MpOworICAgICAgdmFfZW5kIChhcmdzKTsKKyAgICAgIGdydWJfcmVm cmVzaCAoKTsKKyAgICB9Cit9CisKK3ZvaWQKK19nY3J5X2Zhc3Rfd2lwZW1lbW9yeTIgKHZvaWQg KnB0ciwgaW50IHNldCwgZ3J1Yl9zaXplX3QgbGVuKQoreworICBncnViX21lbXNldChwdHIsIHNl dCwgbGVuKTsKK30KKwordm9pZAorX2djcnlfZmFzdF93aXBlbWVtb3J5ICh2b2lkICpwdHIsIGdy dWJfc2l6ZV90IGxlbikKK3sKKyAgZ3J1Yl9tZW1zZXQocHRyLCAwLCBsZW4pOworfQorCiB2b2lk CiBncnViX2NpcGhlcl9yZWdpc3RlciAoZ2NyeV9jaXBoZXJfc3BlY190ICpjaXBoZXIpCiB7CkBA IC0xMjksNyArMTc4LDcgQEAgZ3J1Yl9jcnlwdG9faGFzaCAoY29uc3QgZ2NyeV9tZF9zcGVjX3Qg Kmhhc2gsIHZvaWQgKm91dCwgY29uc3Qgdm9pZCAqaW4sCiAKICAgaWYgKGhhc2gtPmNvbnRleHRz aXplID4gc2l6ZW9mIChjdHgpKQogICAgIGdydWJfZmF0YWwgKCJUb28gbGFyZ2UgbWQgY29udGV4 dCIpOwotICBoYXNoLT5pbml0ICgmY3R4KTsKKyAgaGFzaC0+aW5pdCAoJmN0eCwgMCk7CiAgIGhh c2gtPndyaXRlICgmY3R4LCBpbiwgaW5sZW4pOwogICBoYXNoLT5maW5hbCAoJmN0eCk7CiAgIGdy dWJfbWVtY3B5IChvdXQsIGhhc2gtPnJlYWQgKCZjdHgpLCBoYXNoLT5tZGxlbik7CkBAIC0xNTMs NiArMjAyLDkxIEBAIGdydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9uYW1lIChjb25zdCBjaGFyICpu YW1lKQogICAgIH0KIH0KIAorY29uc3QgZ2NyeV9tZF9zcGVjX3QgKgorZ3J1Yl9jcnlwdG9fbG9v a3VwX21kX2J5X29pZCAoY29uc3QgY2hhciAqb2lkKQoreworICBjb25zdCBnY3J5X21kX3NwZWNf dCAqbWQ7CisKKyAgaWYgKCFvaWQpCisgICAgcmV0dXJuIE5VTEw7CisKKyAgaWYgKGdydWJfc3Ry bmNtcCAob2lkLCAib2lkLiIsIDQpID09IDAgfHwgZ3J1Yl9zdHJuY21wIChvaWQsICJPSUQuIiwg NCkgPT0gMCkKKyAgICBvaWQgKz0gNDsKKworCisgIGZvciAobWQgPSBncnViX2RpZ2VzdHM7IG1k OyBtZCA9IG1kLT5uZXh0KQorICAgIHsKKyAgICAgIGNvbnN0IGdjcnlfbWRfb2lkX3NwZWNfdCAq b2lkX3NwZWNzID0gbWQtPm9pZHM7CisgICAgICBpZiAob2lkX3NwZWNzKQorICAgICAgICB7Cisg ICAgICAgICAgZm9yIChpbnQgaiA9IDA7IG9pZF9zcGVjc1tqXS5vaWRzdHJpbmc7IGorKykKKyAg ICAgICAgICAgIGlmIChncnViX3N0cmNhc2VjbXAgKG9pZCwgb2lkX3NwZWNzW2pdLm9pZHN0cmlu ZykgPT0gMCkKKyAgICAgICAgICAgICAgcmV0dXJuIG1kOworICAgICAgICB9CisgICAgfQorCisg IHJldHVybiBOVUxMOworfQorCitzdGF0aWMgY29uc3QgY2hhciAqbWRfYWxnb3NbXSA9IHsKKyAg ICBbMV0gPSAiTUQ1IiwKKyAgICBbMl0gPSAiU0hBMSIsCisgICAgWzNdID0gIlJJUEVNRDE2MCIs CisgICAgWzZdID0gIlRJR0VSIiwKKyAgICBbOF0gPSAiU0hBMjU2IiwKKyAgICBbOV0gPSAiU0hB Mzg0IiwKKyAgICBbMTBdID0gIlNIQTUxMiIsCisgICAgWzExXSA9ICJTSEEyMjQiLAorCisgICAg WzMwMV0gPSAiTUQ0IiwKKyAgICBbMzAyXSA9ICJDUkMzMiIsCisgICAgWzMwM10gPSAiQ1JDMzJS RkMxNTEwIiwKKyAgICBbMzA0XSA9ICJDUkMyNFJGQzI0NDAiLAorICAgIFszMDVdID0gIldISVJM UE9PTCIsCisgICAgWzMwNl0gPSAiVElHRVIxIiwKKyAgICBbMzA3XSA9ICJUSUdFUjIiLAorICAg IFszMDhdID0gIkdPU1RSMzQxMV85NCIsCisgICAgWzMwOV0gPSAiU1RSSUJPRzI1NiIsCisgICAg WzMxMF0gPSAiU1RSSUJPRzUxMiIsCisgICAgWzMxMV0gPSAiR09TVFIzNDExX0NQIiwKKyAgICBb MzEyXSA9ICJTSEEzLTIyNCIsCisgICAgWzMxM10gPSAiU0hBMy0yNTYiLAorICAgIFszMTRdID0g IlNIQTMtMzg0IiwKKyAgICBbMzE1XSA9ICJTSEEzLTUxMiIsCisgICAgWzMxNl0gPSAiU0hBS0Ux MjgiLAorICAgIFszMTddID0gIlNIQUtFMjU2IiwKKyAgICBbMzE4XSA9ICJCTEFLRTJCXzUxMiIs CisgICAgWzMxOV0gPSAiQkxBS0UyQl8zODQiLAorICAgIFszMjBdID0gIkJMQUtFMkJfMjU2IiwK KyAgICBbMzIxXSA9ICJCTEFLRTJCXzE2MCIsCisgICAgWzMyMl0gPSAiQkxBS0UyU18yNTYiLAor ICAgIFszMjNdID0gIkJMQUtFMlNfMjI0IiwKKyAgICBbMzI0XSA9ICJCTEFLRTJTXzE2MCIsCisg ICAgWzMyNV0gPSAiQkxBS0UyU18xMjgiLAorICAgIFszMjZdID0gIlNNMyIsCisgICAgWzMyN10g PSAiU0hBNTEyXzI1NiIsCisgICAgWzMyOF0gPSAiU0hBNTEyXzIyNCIsCit9OworCisKK2NvbnN0 IGdjcnlfbWRfc3BlY190ICoKK2dydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9hbGdvIChpbnQgYWxn bykKK3sKKyAgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKm1kOworICBpbnQgZmlyc3QgPSAxOworICB3 aGlsZSAoMSkKKyAgICB7CisgICAgICBmb3IgKG1kID0gZ3J1Yl9kaWdlc3RzOyBtZDsgbWQgPSBt ZC0+bmV4dCkKKwlpZiAoYWxnbyA9PSBtZC0+YWxnbykKKwkgIHJldHVybiBtZDsKKyAgICAgIGlm IChncnViX2NyeXB0b19hdXRvbG9hZF9ob29rICYmIGZpcnN0ICYmIGFsZ28gPiAwICYmIGFsZ28g PCAoaW50KUFSUkFZX1NJWkUobWRfYWxnb3MpICYmIG1kX2FsZ29zW2FsZ29dKSB7CisJZ3J1Yl9j cnlwdG9fYXV0b2xvYWRfaG9vayAobWRfYWxnb3NbYWxnb10pOworICAgICAgfSBlbHNlCisJcmV0 dXJuIE5VTEw7CisgICAgICBmaXJzdCA9IDA7CisgICAgfQorfQorCiBjb25zdCBnY3J5X2NpcGhl cl9zcGVjX3QgKgogZ3J1Yl9jcnlwdG9fbG9va3VwX2NpcGhlcl9ieV9uYW1lIChjb25zdCBjaGFy ICpuYW1lKQogewpAQCAtMTk2LDcgKzMzMCw5IEBAIGdydWJfY3J5cHRvX2NpcGhlcl9zZXRfa2V5 IChncnViX2NyeXB0b19jaXBoZXJfaGFuZGxlX3QgY2lwaGVyLAogCQkJICAgIGNvbnN0IHVuc2ln bmVkIGNoYXIgKmtleSwKIAkJCSAgICB1bnNpZ25lZCBrZXlsZW4pCiB7Ci0gIHJldHVybiBjaXBo ZXItPmNpcGhlci0+c2V0a2V5IChjaXBoZXItPmN0eCwga2V5LCBrZXlsZW4pOworICAvKiBUT0RP OiBGaXggdGhpcy4gSXQncyB1Z2x5IGFzIGhlbGwuICAqLworICB2b2lkICpidWxrX29wc1sxMDBd OworICByZXR1cm4gY2lwaGVyLT5jaXBoZXItPnNldGtleSAoY2lwaGVyLT5jdHgsIGtleSwga2V5 bGVuLCAodm9pZCAqKSBidWxrX29wcyk7CiB9CiAKIGdjcnlfZXJyX2NvZGVfdApAQCAtMzQzLDcg KzQ3OSw3IEBAIGdydWJfY3J5cHRvX2htYWNfaW5pdCAoY29uc3Qgc3RydWN0IGdjcnlfbWRfc3Bl YyAqbWQsCiAgIGdydWJfZnJlZSAoaGVscGtleSk7CiAgIGhlbHBrZXkgPSBOVUxMOwogCi0gIG1k LT5pbml0IChjdHgpOworICBtZC0+aW5pdCAoY3R4LCAwKTsKIAogICBtZC0+d3JpdGUgKGN0eCwg aXBhZCwgbWQtPmJsb2Nrc2l6ZSk7IC8qIGlubmVyIHBhZCAqLwogICBncnViX21lbXNldCAoaXBh ZCwgMCwgbWQtPmJsb2Nrc2l6ZSk7CkBAIC0zOTAsNyArNTI2LDcgQEAgZ3J1Yl9jcnlwdG9faG1h Y19maW5pIChzdHJ1Y3QgZ3J1Yl9jcnlwdG9faG1hY19oYW5kbGUgKmhuZCwgdm9pZCAqb3V0KQog ICBobmQtPm1kLT5yZWFkIChobmQtPmN0eCk7CiAgIHAgPSBobmQtPm1kLT5yZWFkIChobmQtPmN0 eCk7CiAKLSAgaG5kLT5tZC0+aW5pdCAoY3R4Mik7CisgIGhuZC0+bWQtPmluaXQgKGN0eDIsIDAp OwogICBobmQtPm1kLT53cml0ZSAoY3R4MiwgaG5kLT5vcGFkLCBobmQtPm1kLT5ibG9ja3NpemUp OwogICBobmQtPm1kLT53cml0ZSAoY3R4MiwgcCwgaG5kLT5tZC0+bWRsZW4pOwogICBobmQtPm1k LT5maW5hbCAoY3R4Mik7CkBAIC00MzMsMTkgKzU2OSwxMDYgQEAgZ3J1Yl9jcnlwdG9fZ2NyeV9l cnJvciAoZ2NyeV9lcnJfY29kZV90IGluKQogICByZXR1cm4gR1JVQl9BQ0NFU1NfREVOSUVEOwog fQogCisKKy8qCisgKiBDb21wYXJlIGJ5dGUgYXJyYXlzIG9mIGxlbmd0aCBMRU4sIHJldHVybiAx IGlmIGl0J3Mgbm90IHNhbWUsCisgKiAwLCBvdGhlcndpc2UuCisgKi8KIGludAotZ3J1Yl9jcnlw dG9fbWVtY21wIChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiLCBncnViX3NpemVfdCBuKQor Z3J1Yl9jcnlwdG9fbWVtY21wIChjb25zdCB2b2lkICpiMSwgY29uc3Qgdm9pZCAqYjIsIGdydWJf c2l6ZV90IGxlbikKIHsKLSAgcmVnaXN0ZXIgZ3J1Yl9zaXplX3QgY291bnRlciA9IDA7Ci0gIGNv bnN0IGdydWJfdWludDhfdCAqcGEsICpwYjsKKyAgY29uc3QgZ3J1Yl91aW50OF90ICphID0gYjE7 CisgIGNvbnN0IGdydWJfdWludDhfdCAqYiA9IGIyOworICBpbnQgYWIsIGJhOworICBncnViX3Np emVfdCBpOwogCi0gIGZvciAocGEgPSBhLCBwYiA9IGI7IG47IHBhKyssIHBiKyssIG4tLSkKKyAg LyogQ29uc3RhbnQtdGltZSBjb21wYXJlLiAqLworICBmb3IgKGkgPSAwLCBhYiA9IDAsIGJhID0g MDsgaSA8IGxlbjsgaSsrKQogICAgIHsKLSAgICAgIGlmICgqcGEgIT0gKnBiKQotCWNvdW50ZXIr KzsKKyAgICAgIC8qIElmIGFbaV0gIT0gYltpXSwgZWl0aGVyIGFiIG9yIGJhIHdpbGwgYmUgbmVn YXRpdmUuICovCisgICAgICBhYiB8PSBhW2ldIC0gYltpXTsKKyAgICAgIGJhIHw9IGJbaV0gLSBh W2ldOwogICAgIH0KIAotICByZXR1cm4gISFjb3VudGVyOworICAvKiAnYWIgfCBiYScgaXMgbmVn YXRpdmUgd2hlbiBidWZmZXJzIGFyZSBub3QgZXF1YWwsIGV4dHJhY3Qgc2lnbiBiaXQuICAqLwor ICByZXR1cm4gKCh1bnNpZ25lZCBpbnQpKGFiIHwgYmEpID4+IChzaXplb2YodW5zaWduZWQgaW50 KSAqIDggLSAxKSkgJiAxOworfQorCisKK3ZvaWQgKgorX2djcnlfbWFsbG9jX3NlY3VyZSAoZ3J1 Yl9zaXplX3QgbikKK3sKKyAgcmV0dXJuIGdydWJfbWFsbG9jKG4pOworfQorCit2b2lkICoKK19n Y3J5X21hbGxvYyAoZ3J1Yl9zaXplX3QgbikKK3sKKyAgcmV0dXJuIGdydWJfbWFsbG9jKG4pOwor fQorCit2b2lkICoKK19nY3J5X3htYWxsb2MoZ3J1Yl9zaXplX3QgbikKK3sKKyAgdm9pZCAqcmV0 ID0gZ3J1Yl9tYWxsb2Mobik7CisgIGlmIChyZXQgPT0gTlVMTCkKKyAgICBncnViX2ZhdGFsKCJf Z2NyeV94bWFsbG9jIGZhaWxlZCIpOworICByZXR1cm4gcmV0OworfQorCit2b2lkICoKK19nY3J5 X3htYWxsb2Nfc2VjdXJlKGdydWJfc2l6ZV90IG4pCit7CisgIHZvaWQgKnJldCA9IGdydWJfbWFs bG9jKG4pOworICBpZiAocmV0ID09IE5VTEwpCisgICAgZ3J1Yl9mYXRhbCgiX2djcnlfeG1hbGxv Y19zZWN1cmUgZmFpbGVkIik7CisgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQgX2djcnlfZnJlZSAo dm9pZCAqcCkKK3sKKyAgZ3J1Yl9mcmVlIChwKTsKK30KKwordm9pZCAqCitfZ2NyeV94cmVhbGxv YyAodm9pZCAqYSwgZ3J1Yl9zaXplX3QgbikKK3sKKyAgdm9pZCAqcmV0ID0gZ3J1Yl9yZWFsbG9j KGEsIG4pOworICBpZiAocmV0ID09IE5VTEwpCisgICAgZ3J1Yl9mYXRhbCgiX2djcnlfeHJlYWxs b2MgZmFpbGVkIik7CisgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQgKgorX2djcnlfeGNhbGxvYyAo Z3J1Yl9zaXplX3QgbiwgZ3J1Yl9zaXplX3QgbSkKK3sKKyAgdm9pZCAqcmV0ID0gZ3J1Yl9jYWxs b2MobiwgbSk7CisgIGlmIChyZXQgPT0gTlVMTCkKKyAgICBncnViX2ZhdGFsKCJfZ2NyeV94Y2Fs bG9jIGZhaWxlZCIpOworICByZXR1cm4gcmV0OworfQorCit2b2lkICoKK19nY3J5X3hjYWxsb2Nf c2VjdXJlIChncnViX3NpemVfdCBuLCBncnViX3NpemVfdCBtKQoreworICB2b2lkICpyZXQgPSBn cnViX2NhbGxvYyhuLCBtKTsKKyAgaWYgKHJldCA9PSBOVUxMKQorICAgIGdydWJfZmF0YWwoIl9n Y3J5X3hjYWxsb2Nfc2VjdXJlIGZhaWxlZCIpOworICByZXR1cm4gcmV0OworfQorCisKK2ludAor X2djcnlfaXNfc2VjdXJlIChjb25zdCB2b2lkICphKQoreworICAodm9pZCkgYTsKKworICByZXR1 cm4gMDsKK30KKwordm9pZCBfZ2NyeV9kaXZpZGVfYnlfemVybyAodm9pZCkKK3sKKyAgZ3J1Yl9m YXRhbCgiZ2NyeXB0IGRpdmlzaW9uIGJ5IHplcm8iKTsKIH0KIAogI2lmbmRlZiBHUlVCX1VUSUwK ZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvbGliZ2NyeXB0LXBhdGNoZXMvMDFfbWQuZGlmZiBi L2dydWItY29yZS9saWIvbGliZ2NyeXB0LXBhdGNoZXMvMDFfbWQuZGlmZgpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjA4YTBjMmM1MQotLS0gL2Rldi9udWxsCisrKyBiL2dy dWItY29yZS9saWIvbGliZ2NyeXB0LXBhdGNoZXMvMDFfbWQuZGlmZgpAQCAtMCwwICsxLDE0MSBA QAorLS0tIGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvbWQuYwkyMDI0LTA1 LTIxIDAxOjIyOjA0LjIyMjA4NDc3MyArMDMwMAorKysrIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5 cHQtZ3J1Yi9jaXBoZXIvbWQuYwkyMDI0LTA1LTIxIDAxOjIyOjA3LjM2ODA5OTk2MSArMDMwMAor QEAgLTIwLDExICsyMCwyNSBAQAorICAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgKiBMaWNlbnNlIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtOyBpZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u CisgICovCisrI2luY2x1ZGUgPGNvbmZpZy5oPgorKyNpbmNsdWRlIDxzdGRpby5oPgorKyNpbmNs dWRlIDxzdGRsaWIuaD4KKysjaW5jbHVkZSA8c3RyaW5nLmg+CisrI2luY2x1ZGUgPGVycm5vLmg+ CisgCisgCisgI2luY2x1ZGUgImcxMGxpYi5oIgorICNpbmNsdWRlICJjaXBoZXIuaCIKKyAKKysj ZGVmaW5lIF9nY3J5X21kX3NlbGZ0ZXN0KGEsYixjKSAwCisrdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9t ZF9saXN0CisreworKyAgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKnNwZWM7CisrICBzdHJ1Y3QgZ2Ny eV9tZF9saXN0ICpuZXh0OworKyAgc2l6ZV90IGFjdHVhbF9zdHJ1Y3Rfc2l6ZTsgICAgIC8qIEFs bG9jYXRlZCBzaXplIG9mIHRoaXMgc3RydWN0dXJlLiAqLworKyAgUFJPUEVSTFlfQUxJR05FRF9U WVBFIGNvbnRleHRbMV07CisrfSBHY3J5RGlnZXN0RW50cnk7CisrCisgCisgLyogVGhpcyBpcyB0 aGUgbGlzdCBvZiB0aGUgZGlnZXN0IGltcGxlbWVudGF0aW9ucyBpbmNsdWRlZCBpbgorICAgIGxp YmdjcnlwdC4gICovCitAQCAtNTMsNyArNjcsNiBAQAorIHN0YXRpYyB2b2lkIG1kX2Nsb3NlIChn Y3J5X21kX2hkX3QgYSk7Cisgc3RhdGljIHZvaWQgbWRfd3JpdGUgKGdjcnlfbWRfaGRfdCBhLCBj b25zdCB2b2lkICppbmJ1Ziwgc2l6ZV90IGlubGVuKTsKKyBzdGF0aWMgYnl0ZSAqbWRfcmVhZCgg Z2NyeV9tZF9oZF90IGEsIGludCBhbGdvICk7Cistc3RhdGljIGludCBtZF9nZXRfYWxnbyggZ2Ny eV9tZF9oZF90IGEgKTsKKyBzdGF0aWMgaW50IG1kX2RpZ2VzdF9sZW5ndGgoIGludCBhbGdvICk7 Cisgc3RhdGljIHZvaWQgbWRfc3RhcnRfZGVidWcgKCBnY3J5X21kX2hkX3QgYSwgY29uc3QgY2hh ciAqc3VmZml4ICk7Cisgc3RhdGljIHZvaWQgbWRfc3RvcF9kZWJ1ZyAoIGdjcnlfbWRfaGRfdCBh ICk7CitAQCAtMTg2LDkgKzE5OSw2IEBACisgCisgICBpZiAoISBlcnIpCisgICAgIHsKKy0gICAg ICAvKiBIbW1tLCBzaG91bGQgd2UgcmVhbGx5IGRvIHRoYXQ/IC0geWVzIFstd2tdICovCistICAg ICAgX2djcnlfZmFzdF9yYW5kb21fcG9sbCAoKTsKKy0KKyAgICAgICBpZiAoYWxnbykKKyAJewor IAkgIGVyciA9IG1kX2VuYWJsZSAoaGQsIGFsZ28pOworQEAgLTQzNywxNCArNDQ3LDYgQEAKKyB7 CisgICBHY3J5RGlnZXN0RW50cnkgKnI7CisgCistICBpZiAoYS0+Y3R4LT5kZWJ1ZykKKy0gICAg eworLSAgICAgIGlmIChhLT5idWZwb3MgJiYgZndyaXRlIChhLT5idWYsIGEtPmJ1ZnBvcywgMSwg YS0+Y3R4LT5kZWJ1ZykgIT0gMSkKKy0JQlVHKCk7CistICAgICAgaWYgKGlubGVuICYmIGZ3cml0 ZSAoaW5idWYsIGlubGVuLCAxLCBhLT5jdHgtPmRlYnVnKSAhPSAxKQorLQlCVUcoKTsKKy0gICAg fQorLQorICAgZm9yIChyID0gYS0+Y3R4LT5saXN0OyByOyByID0gci0+bmV4dCkKKyAgICAgewor ICAgICAgIGlmIChhLT5idWZwb3MpCitAQCAtNjQzLDYgKzY0NSw3IEBACisgICAgICAgcmV0dXJu OworICAgICB9CisgCisrI2lmIDAKKyAgIGlmIChzcGVjLT5oYXNoX2J1ZmZlcnMgIT0gTlVMTCkK KyAgICAgeworICAgICAgIGdjcnlfYnVmZmVyX3QgaW92OworQEAgLTY1OSw2ICs2NjIsNyBAQAor ICAgICAgIHNwZWMtPmhhc2hfYnVmZmVycyAoZGlnZXN0LCBzcGVjLT5tZGxlbiwgJmlvdiwgMSk7 CisgICAgIH0KKyAgIGVsc2UKKysjZW5kaWYKKyAgICAgeworICAgICAgIC8qIEZvciB0aGUgb3Ro ZXJzIHdlIGRvIG5vdCBoYXZlIGEgZmFzdCBmdW5jdGlvbiwgc28gd2UgdXNlIHRoZQorICAgICAg ICAgIG5vcm1hbCBmdW5jdGlvbnMuICovCitAQCAtNjk0LDcgKzY5OCw3IEBACisgICAgRElHRVNU TEVOIG1heSBhbHNvIGJlIHRoZSBhcHByb3ByaWF0ZSBsZW5ndGggb3IsIGluIGNhc2Ugb2YgWE9G CisgICAgYWxnb3JpdGhtcywgRElHRVNUTEVOIGluZGljYXRlcyBudW1iZXIgYnl0ZXMgdG8gZXh0 cmFjdCBmcm9tIFhPRgorICAgIHRvIERJR0VTVC4gICovCistI2RlZmluZSBfZ2NyeV9tZF9oYXNo X2J1ZmZlcnMgMAorKworIAorIC8qIFNob3J0Y3V0IGZ1bmN0aW9uIHRvIGhhc2ggbXVsdGlwbGUg YnVmZmVycyB3aXRoIGEgZ2l2ZW4gYWxnby4gIEluCisgICAgY29udHJhc3QgdG8gZ2NyeV9tZF9o YXNoX2J1ZmZlciwgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGFuIGVycm9yIG9uCitAQCAtNzEwLDcg KzcxNCw2IEBACisgICAgT24gc3VjY2VzcyAwIGlzIHJldHVybmVkIGFuZCByZXN1bHRpbmcgaGFz aCBvciBITUFDIGlzIHN0b3JlZCBhdAorICAgIERJR0VTVCB3aGljaCBtdXN0IGhhdmUgYmVlbiBw cm92aWRlZCBieSB0aGUgY2FsbGVyIHdpdGggYW4KKyAgICBhcHByb3ByaWF0ZSBsZW5ndGguICAq LworLSNkZWZpbmUgX2djcnlfbWRfaGFzaF9idWZmZXJzIDAKKyAKKyAKKyAKK0BAIC04NDEsNDMg Kzg0NCwxNSBAQAorIHN0YXRpYyB2b2lkCisgbWRfc3RhcnRfZGVidWcgKCBnY3J5X21kX2hkX3Qg bWQsIGNvbnN0IGNoYXIgKnN1ZmZpeCApCisgeworLSAgc3RhdGljIGludCBpZHg9MDsKKy0gIGNo YXIgYnVmWzUwXTsKKy0KKy0gIGlmIChmaXBzX21vZGUgKCkpCistICAgIHJldHVybjsKKy0KKy0g IGlmICggbWQtPmN0eC0+ZGVidWcgKQorLSAgICB7CistICAgICAgbG9nX2RlYnVnKCJPb3BzOiBt ZCBkZWJ1ZyBhbHJlYWR5IHN0YXJ0ZWRcbiIpOworLSAgICAgIHJldHVybjsKKy0gICAgfQorLSAg aWR4Kys7CistICBzbnByaW50ZiAoYnVmLCBESU0oYnVmKS0xLCAiZGJnbWQtJTA1ZC4lLjEwcyIs IGlkeCwgc3VmZml4ICk7CistICBtZC0+Y3R4LT5kZWJ1ZyA9IGZvcGVuKGJ1ZiwgInciKTsKKy0g IGlmICggIW1kLT5jdHgtPmRlYnVnICkKKy0gICAgbG9nX2RlYnVnKCJtZCBkZWJ1ZzogY2FuJ3Qg b3BlbiAlc1xuIiwgYnVmICk7CisrICAodm9pZCkgbWQ7CisrICAodm9pZCkgc3VmZml4OworIH0K KyAKKyAKKyBzdGF0aWMgdm9pZAorIG1kX3N0b3BfZGVidWcoIGdjcnlfbWRfaGRfdCBtZCApCisg eworLSAgaWYgKCBtZC0+Y3R4LT5kZWJ1ZyApCistICAgIHsKKy0gICAgICBpZiAoIG1kLT5idWZw b3MgKQorLSAgICAgICAgbWRfd3JpdGUgKCBtZCwgTlVMTCwgMCApOworLSAgICAgIGZjbG9zZSAo bWQtPmN0eC0+ZGVidWcpOworLSAgICAgIG1kLT5jdHgtPmRlYnVnID0gTlVMTDsKKy0gICAgfQor LQorLSAgeyAgLyogYSBrbHVkZ2UgdG8gcHVsbCBpbiB0aGUgX19tdWxkaTMgZm9yIFNvbGFyaXMg Ki8KKy0gICAgdm9sYXRpbGUgdTMyIGEgPSAodTMyKSh1aW50cHRyX3QpbWQ7CistICAgIHZvbGF0 aWxlIHU2NCBiID0gNDI7CistICAgIHZvbGF0aWxlIHU2NCBjOworLSAgICBjID0gYSAqIGI7Cist ICAgICh2b2lkKWM7CistICB9CisrICAodm9pZCkgbWQ7CisgfQorIAorIApkaWZmIC0tZ2l0IGEv Z3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQvc3JjL2djcnlwdC1pbnQuaCBiL2dydWItY29yZS9saWIv bGliZ2NyeXB0L3NyYy9nY3J5cHQtaW50LmgKaW5kZXggMzA3MWI0MjFlLi4xY2E0ZjIxZmUgMTAw NjQ0Ci0tLSBhL2dydWItY29yZS9saWIvbGliZ2NyeXB0L3NyYy9nY3J5cHQtaW50LmgKKysrIGIv Z3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQvc3JjL2djcnlwdC1pbnQuaApAQCAtMjY1LDU3ICsyNjUs NiBAQCB2b2lkIF9nY3J5X3NldF9sb2dfaGFuZGxlciAoZ2NyeV9oYW5kbGVyX2xvZ190IGYsIHZv aWQgKm9wYXF1ZSk7CiB2b2lkIF9nY3J5X3NldF9nZXR0ZXh0X2hhbmRsZXIgKGNvbnN0IGNoYXIg KigqZikoY29uc3QgY2hhciopKTsKIHZvaWQgX2djcnlfc2V0X3Byb2dyZXNzX2hhbmRsZXIgKGdj cnlfaGFuZGxlcl9wcm9ncmVzc190IGNiLCB2b2lkICpjYl9kYXRhKTsKIAotDAotLyogUmV0dXJu IGEgcG9pbnRlciB0byBhIHN0cmluZyBjb250YWluaW5nIGEgZGVzY3JpcHRpb24gb2YgdGhlIGVy cm9yCi0gICBjb2RlIGluIHRoZSBlcnJvciB2YWx1ZSBFUlIuICAqLwotc3RhdGljIGlubGluZSBj b25zdCBjaGFyICoKLV9nY3J5X3N0cmVycm9yIChnY3J5X2Vycm9yX3QgZXJyKQotewotICByZXR1 cm4gZ3BnX3N0cmVycm9yIChlcnIpOwotfQotCi0vKiBSZXR1cm4gYSBwb2ludGVyIHRvIGEgc3Ry aW5nIGNvbnRhaW5pbmcgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZXJyb3IKLSAgIHNvdXJjZSBpbiB0 aGUgZXJyb3IgdmFsdWUgRVJSLiAgKi8KLXN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqCi1fZ2Ny eV9zdHJzb3VyY2UgKGdjcnlfZXJyb3JfdCBlcnIpCi17Ci0gIHJldHVybiBncGdfc3Ryc291cmNl IChlcnIpOwotfQotCi0vKiBSZXRyaWV2ZSB0aGUgZXJyb3IgY29kZSBmb3IgdGhlIHN5c3RlbSBl cnJvciBFUlIuICBUaGlzIHJldHVybnMKLSAgIEdQR19FUlJfVU5LTk9XTl9FUlJOTyBpZiB0aGUg c3lzdGVtIGVycm9yIGlzIG5vdCBtYXBwZWQgKHJlcG9ydAotICAgdGhpcykuICAqLwotc3RhdGlj IGlubGluZSBnY3J5X2Vycl9jb2RlX3QKLV9nY3J5X2Vycl9jb2RlX2Zyb21fZXJybm8gKGludCBl cnIpCi17Ci0gIHJldHVybiBncGdfZXJyX2NvZGVfZnJvbV9lcnJubyAoZXJyKTsKLX0KLQotLyog UmV0cmlldmUgdGhlIHN5c3RlbSBlcnJvciBmb3IgdGhlIGVycm9yIGNvZGUgQ09ERS4gIFRoaXMg cmV0dXJucyAwCi0gICBpZiBDT0RFIGlzIG5vdCBhIHN5c3RlbSBlcnJvciBjb2RlLiAgKi8KLXN0 YXRpYyBpbmxpbmUgaW50Ci1fZ2NyeV9lcnJfY29kZV90b19lcnJubyAoZ2NyeV9lcnJfY29kZV90 IGNvZGUpCi17Ci0gIHJldHVybiBncGdfZXJyX2NvZGVfdG9fZXJybm8gKGNvZGUpOwotfQotCi0v KiBSZXR1cm4gYW4gZXJyb3IgdmFsdWUgd2l0aCB0aGUgZXJyb3Igc291cmNlIFNPVVJDRSBhbmQg dGhlIHN5c3RlbQotICAgZXJyb3IgRVJSLiAgKi8KLXN0YXRpYyBpbmxpbmUgZ2NyeV9lcnJvcl90 Ci1fZ2NyeV9lcnJfbWFrZV9mcm9tX2Vycm5vIChncGdfZXJyX3NvdXJjZV90IHNvdXJjZSwgaW50 IGVycikKLXsKLSAgcmV0dXJuIGdwZ19lcnJfbWFrZV9mcm9tX2Vycm5vIChzb3VyY2UsIGVycik7 Ci19Ci0KLQotLyogUmV0dXJuIGFuIGVycm9yIHZhbHVlIHdpdGggdGhlIHN5c3RlbSBlcnJvciBF UlIuICAqLwotc3RhdGljIGlubGluZSBnY3J5X2Vycm9yX3QKLV9nY3J5X2Vycm9yX2Zyb21fZXJy bm8gKGludCBlcnIpCi17Ci0gIHJldHVybiBncGdfZXJyb3IgKGdwZ19lcnJfY29kZV9mcm9tX2Vy cm5vIChlcnIpKTsKLX0KLQotCiAMCiBncGdfZXJyX2NvZGVfdCBfZ2NyeV9zZXhwX25ldyAoZ2Ny eV9zZXhwX3QgKnJldHNleHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg dm9pZCAqYnVmZmVyLCBzaXplX3QgbGVuZ3RoLApkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi9s aWJnY3J5cHRfd3JhcC9jaXBoZXJfd3JhcC5oIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHRfd3Jh cC9jaXBoZXJfd3JhcC5oCmluZGV4IDQyODM1NDkzZC4uMjI1ZWI3OTE5IDEwMDY0NAotLS0gYS9n cnViLWNvcmUvbGliL2xpYmdjcnlwdF93cmFwL2NpcGhlcl93cmFwLmgKKysrIGIvZ3J1Yi1jb3Jl L2xpYi9saWJnY3J5cHRfd3JhcC9jaXBoZXJfd3JhcC5oCkBAIC0zNSw5ICszNSw3IEBACiAjdW5k ZWYgX19HTlVfTElCUkFSWV9fCiAjZGVmaW5lIF9fR05VX0xJQlJBUllfXyAxCiAKLSNkZWZpbmUg VTY0X0MoYykgKGMgIyMgVUxMKQotCi0jZGVmaW5lIFBVQktFWV9GTEFHX05PX0JMSU5ESU5HICAg ICgxIDw8IDApCisjZGVmaW5lIFVJTlQ2NF9DKGMpIChjICMjIFVMTCkKIAogI2RlZmluZSBDSVBI RVJfSU5GT19OT19XRUFLX0tFWSAgICAxCiAKQEAgLTc0LDQgKzcyLDEyIEBAIF9nY3J5X2ZpcHNf bW9kZSAodm9pZCkKIAogI2RlZmluZSBnY3J5X21waV9tb2QgX2djcnlfbXBpX21vZAogCisjZGVm aW5lIHN0cnRvbCBncnViX3N0cnRvbAorI2RlZmluZSBzdHJ0b3VsIGdydWJfc3RydG91bAorI2Rl ZmluZSBhdG9pKG5wdHIpIChzdHJ0b2woKG5wdHIpLCBOVUxMLCAxMCkpCisKKyNkZWZpbmUgc3Rw Y3B5IGdydWJfc3RwY3B5CisKKyNkZWZpbmUgc3BlY19mcm9tX2FsZ28gZ3J1Yl9jcnlwdG9fbG9v a3VwX21kX2J5X2FsZ28KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2xpYmdj cnlwdF93cmFwL21lbS5jIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHRfd3JhcC9tZW0uYwppbmRl eCA3NGM2ZWFmZTUuLmFiMGNmNGFkMyAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5 cHRfd3JhcC9tZW0uYworKysgYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdF93cmFwL21lbS5jCkBA IC00Niw2ICs0NiwxNSBAQCBnY3J5X3hjYWxsb2MgKHNpemVfdCBuLCBzaXplX3QgbSkKICAgcmV0 dXJuIHJldDsKIH0KIAordm9pZCAqCitfZ2NyeV9jYWxsb2MgKHNpemVfdCBuLCBzaXplX3QgbSkK K3sKKyAgc2l6ZV90IHN6OworICBpZiAoZ3J1Yl9tdWwgKG4sIG0sICZzeikpCisgICAgcmV0dXJu IE5VTEw7CisgIHJldHVybiBncnViX3phbGxvYyAoc3opOworfQorCiB2b2lkICoKIGdjcnlfeG1h bGxvY19zZWN1cmUgKHNpemVfdCBuKQogewpAQCAtNjksNiArNzgsMTUgQEAgZ2NyeV94Y2FsbG9j X3NlY3VyZSAoc2l6ZV90IG4sIHNpemVfdCBtKQogICByZXR1cm4gcmV0OwogfQogCit2b2lkICoK K19nY3J5X2NhbGxvY19zZWN1cmUgKHNpemVfdCBuLCBzaXplX3QgbSkKK3sKKyAgc2l6ZV90IHN6 OworICBpZiAoZ3J1Yl9tdWwgKG4sIG0sICZzeikpCisgICAgcmV0dXJuIE5VTEw7CisgIHJldHVy biBncnViX3phbGxvYyAoc3opOworfQorCiB2b2lkICoKIGdjcnlfeG1hbGxvYyAoc2l6ZV90IG4p CiB7CkBAIC04OSw2ICsxMDcsMTIgQEAgZ2NyeV94cmVhbGxvYyAodm9pZCAqYSwgc2l6ZV90IG4p CiAgIHJldHVybiByZXQ7CiB9CiAKK3ZvaWQgKgorX2djcnlfcmVhbGxvYyAodm9pZCAqYSwgc2l6 ZV90IG4pCit7CisgIHJldHVybiBncnViX3JlYWxsb2MgKGEsIG4pOworfQorCiB2b2lkCiBfZ2Ny eV9jaGVja19oZWFwIChjb25zdCB2b2lkICphIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSkKIHsK QEAgLTExMyw2ICsxMzcsMjQgQEAgdm9pZCBfZ2NyeV9sb2dfcHJpbnRmIChjb25zdCBjaGFyICpm bXQsIC4uLikKICAgICB9CiB9CiAKK3ZvaWQgX2djcnlfbG9nX2RlYnVnIChjb25zdCBjaGFyICpm bXQsIC4uLikKK3sKKyAgdmFfbGlzdCBhcmdzOworICBjb25zdCBjaGFyICpkZWJ1ZyA9IGdydWJf ZW52X2dldCAoImRlYnVnIik7CisKKyAgaWYgKCEgZGVidWcpCisgICAgcmV0dXJuOworCisgIGlm IChncnViX3N0cndvcmQgKGRlYnVnLCAiYWxsIikgfHwgZ3J1Yl9zdHJ3b3JkIChkZWJ1ZywgImdj cnlwdCIpKQorICAgIHsKKyAgICAgIGdydWJfcHJpbnRmICgiZ2NyeXB0OiAiKTsKKyAgICAgIHZh X3N0YXJ0IChhcmdzLCBmbXQpOworICAgICAgZ3J1Yl92cHJpbnRmIChmbXQsIGFyZ3MpOworICAg ICAgdmFfZW5kIChhcmdzKTsKKyAgICAgIGdydWJfcmVmcmVzaCAoKTsKKyAgICB9Cit9CisKIHZv aWQgX2djcnlfbG9nX2J1ZyAoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAgIHZhX2xpc3QgYXJn czsKQEAgLTEyNiw5ICsxNjgsOSBAQCB2b2lkIF9nY3J5X2xvZ19idWcgKGNvbnN0IGNoYXIgKmZt dCwgLi4uKQogfQogCiBnY3J5X2Vycl9jb2RlX3QKLWdwZ19lcnJvcl9mcm9tX3N5c2Vycm9yICh2 b2lkKQorZ3BnX2Vycl9jb2RlX2Zyb21fZXJybm8gKGludCBlcnIpCiB7Ci0gIHN3aXRjaCAoZ3J1 Yl9lcnJubykKKyAgc3dpdGNoIChlcnIpCiAgICAgewogICAgIGNhc2UgR1JVQl9FUlJfTk9ORToK ICAgICAgIHJldHVybiBHUEdfRVJSX05PX0VSUk9SOwpAQCAtMTM4LDMgKzE4MCw0MCBAQCBncGdf ZXJyb3JfZnJvbV9zeXNlcnJvciAodm9pZCkKICAgICAgIHJldHVybiBHUEdfRVJSX0dFTkVSQUw7 CiAgICAgfQogfQorCitnY3J5X2Vycl9jb2RlX3QKK2dwZ19lcnJvcl9mcm9tX3N5c2Vycm9yICh2 b2lkKQoreworICByZXR1cm4gZ3BnX2Vycl9jb2RlX2Zyb21fZXJybm8oZ3J1Yl9lcnJubyk7Cit9 CisKK2djcnlfZXJyX2NvZGVfdAorZ3BnX2Vycl9jb2RlX2Zyb21fc3lzZXJyb3IgKHZvaWQpCit7 CisgIHJldHVybiBncGdfZXJyb3JfZnJvbV9zeXNlcnJvciAoKTsKK30KKwordm9pZCBfZ2NyeV9m YXRhbF9lcnJvcihpbnQgcmMsIGNvbnN0IGNoYXIgKnRleHQgKQoreworICBncnViX2ZhdGFsKCJn Y3J5IGZhdGFsICVkOiAlcyIsIHJjLCB0ZXh0KTsKK30KKworCit2b2lkIF9nY3J5X3JhbmRvbWl6 ZSAodm9pZCAqYnVmZmVyIF9fYXR0cmlidXRlX18oKHVudXNlZCkpLCBzaXplX3QgbGVuZ3RoIF9f YXR0cmlidXRlX18oKHVudXNlZCkpLAorICAgICAgICAgICAgICAgICAgICAgIGVudW0gZ2NyeV9y YW5kb21fbGV2ZWwgbGV2ZWwgX19hdHRyaWJ1dGVfXygodW51c2VkKSkpCit7CisgIGdydWJfZmF0 YWwoIkF0dGVtcHQgdG8gZ2V0IHNlY3VyZSByYW5kb20gbnVtYmVycyIpOworfQorCisKK3ZvaWQg Kl9nY3J5X3JhbmRvbV9ieXRlc19zZWN1cmUgKHNpemVfdCBuYnl0ZXMgX19hdHRyaWJ1dGVfXygo dW51c2VkKSksIGVudW0gZ2NyeV9yYW5kb21fbGV2ZWwgbGV2ZWwgX19hdHRyaWJ1dGVfXygodW51 c2VkKSkpCit7CisgIGdydWJfZmF0YWwoIkF0dGVtcHQgdG8gZ2V0IHNlY3VyZSByYW5kb20gbnVt YmVycyIpOworfQorCitjb25zdCBjaGFyICpncGdfc3RyZXJyb3IgKGdwZ19lcnJvcl90IGVycikK K3sKKyAgc3RhdGljIGNoYXIgYnVmWzI1Nl07CisgIGdydWJfc25wcmludGYoYnVmLCBzaXplb2Yo YnVmKSAtIDUsICJncGcgZXJyb3IgJWRcbiIsIGVycik7CisgIHJldHVybiBidWY7Cit9CmRpZmYg LS1naXQgYS9ncnViLWNvcmUvbGliL3h6ZW1iZWQveHpfZGVjX3N0cmVhbS5jIGIvZ3J1Yi1jb3Jl L2xpYi94emVtYmVkL3h6X2RlY19zdHJlYW0uYwppbmRleCA4MzJkOGFmOWEuLmYyZGQ0MmRjMiAx MDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xpYi94emVtYmVkL3h6X2RlY19zdHJlYW0uYworKysgYi9n cnViLWNvcmUvbGliL3h6ZW1iZWQveHpfZGVjX3N0cmVhbS5jCkBAIC00MjUsOSArNDI1LDkgQEAg c3RhdGljIGVudW0geHpfcmV0IGhhc2hfdmFsaWRhdGUoc3RydWN0IHh6X2RlYyAqcywgc3RydWN0 IHh6X2J1ZiAqYiwKIAogI2lmbmRlZiBHUlVCX0VNQkVEX0RFQ09NUFJFU1NPUgogCWlmIChzLT5o YXNoKQotCQlzLT5oYXNoLT5pbml0KHMtPmhhc2hfY29udGV4dCk7CisJCXMtPmhhc2gtPmluaXQo cy0+aGFzaF9jb250ZXh0LCAwKTsKIAlpZiAocy0+Y3JjMzIpCi0JCXMtPmNyYzMyLT5pbml0KHMt PmNyYzMyX2NvbnRleHQpOworCQlzLT5jcmMzMi0+aW5pdChzLT5jcmMzMl9jb250ZXh0LCAwKTsK ICNlbmRpZgogCXMtPmhhdmVfaGFzaF92YWx1ZSA9IDA7CiAJcy0+cG9zID0gMDsKQEAgLTQ5Myw3 ICs0OTMsNyBAQCBzdGF0aWMgZW51bSB4el9yZXQgZGVjX3N0cmVhbV9oZWFkZXIoc3RydWN0IHh6 X2RlYyAqcykKIAkJcy0+Y3JjMzJfY29udGV4dCA9IGttYWxsb2Mocy0+Y3JjMzItPmNvbnRleHRz aXplLCBHRlBfS0VSTkVMKTsKIAkJaWYgKHMtPmNyYzMyX2NvbnRleHQgPT0gTlVMTCkKIAkJCXJl dHVybiBYWl9NRU1MSU1JVF9FUlJPUjsKLQkJcy0+Y3JjMzItPmluaXQocy0+Y3JjMzJfY29udGV4 dCk7CisJCXMtPmNyYzMyLT5pbml0KHMtPmNyYzMyX2NvbnRleHQsIDApOwogCX0KICNlbmRpZgog CkBAIC01MzEsOSArNTMxLDkgQEAgc3RhdGljIGVudW0geHpfcmV0IGRlY19zdHJlYW1faGVhZGVy KHN0cnVjdCB4el9kZWMgKnMpCiAJCQkJcmV0dXJuIFhaX01FTUxJTUlUX0VSUk9SOwogCQkJfQog Ci0JCQlzLT5oYXNoLT5pbml0KHMtPmhhc2hfY29udGV4dCk7Ci0JCQlzLT5oYXNoLT5pbml0KHMt PmluZGV4Lmhhc2guaGFzaF9jb250ZXh0KTsKLSAJCQlzLT5oYXNoLT5pbml0KHMtPmJsb2NrLmhh c2guaGFzaF9jb250ZXh0KTsKKwkJCXMtPmhhc2gtPmluaXQocy0+aGFzaF9jb250ZXh0LCAwKTsK KwkJCXMtPmhhc2gtPmluaXQocy0+aW5kZXguaGFzaC5oYXNoX2NvbnRleHQsIDApOworIAkJCXMt Pmhhc2gtPmluaXQocy0+YmxvY2suaGFzaC5oYXNoX2NvbnRleHQsIDApOwogCQl9CiAjZW5kaWYK IAl9CkBAIC0xMDE0LDkgKzEwMTQsOSBAQCB2b2lkIHh6X2RlY19yZXNldChzdHJ1Y3QgeHpfZGVj ICpzKQogI2lmbmRlZiBHUlVCX0VNQkVEX0RFQ09NUFJFU1NPUgogCWlmIChzLT5oYXNoKQogCXsK LQkJcy0+aGFzaC0+aW5pdChzLT5oYXNoX2NvbnRleHQpOwotCQlzLT5oYXNoLT5pbml0KHMtPmlu ZGV4Lmhhc2guaGFzaF9jb250ZXh0KTsKLQkJcy0+aGFzaC0+aW5pdChzLT5ibG9jay5oYXNoLmhh c2hfY29udGV4dCk7CisJCXMtPmhhc2gtPmluaXQocy0+aGFzaF9jb250ZXh0LCAwKTsKKwkJcy0+ aGFzaC0+aW5pdChzLT5pbmRleC5oYXNoLmhhc2hfY29udGV4dCwgMCk7CisJCXMtPmhhc2gtPmlu aXQocy0+YmxvY2suaGFzaC5oYXNoX2NvbnRleHQsIDApOwogCX0KICNlbmRpZgogCXMtPmhhdmVf aGFzaF92YWx1ZSA9IDA7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2dydWIvY3J5cHRvLmggYi9pbmNs dWRlL2dydWIvY3J5cHRvLmgKaW5kZXggMzFjODdjMzAyLi4wMWY4NmJlNzEgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvZ3J1Yi9jcnlwdG8uaAorKysgYi9pbmNsdWRlL2dydWIvY3J5cHRvLmgKQEAgLTY1 LDcgKzY1LDMxIEBAIHR5cGVkZWYgZW51bQogICAgIEdQR19FUlJfV1JPTkdfUFVCS0VZX0FMR08s CiAgICAgR1BHX0VSUl9PVVRfT0ZfTUVNT1JZLAogICAgIEdQR19FUlJfVE9PX0xBUkdFLAotICAg IEdQR19FUlJfRU5PTUVNCisgICAgR1BHX0VSUl9FTk9NRU0sCisgICAgR1BHX0VSUl9DSEVDS1NV TSwKKyAgICBHUEdfRVJSX0lOVl9MRU5HVEgsCisgICAgR1BHX0VSUl9WQUxVRV9OT1RfRk9VTkQs CisgICAgR1BHX0VSUl9FUkFOR0UsCisgICAgR1BHX0VSUl9JTlZfREFUQSwKKyAgICBHUEdfRVJS X0VOQ09ESU5HX1BST0JMRU0sCisgICAgR1BHX0VSUl9CVUZGRVJfVE9PX1NIT1JULAorICAgIEdQ R19FUlJfU1lOVEFYLAorICAgIEdQR19FUlJfU0VYUF9JTlZfTEVOX1NQRUMsCisgICAgR1BHX0VS Ul9TRVhQX1VOTUFUQ0hFRF9ESCwKKyAgICBHUEdfRVJSX1NFWFBfVU5NQVRDSEVEX1BBUkVOLAor ICAgIEdQR19FUlJfU0VYUF9aRVJPX1BSRUZJWCwKKyAgICBHUEdfRVJSX1NFWFBfTkVTVEVEX0RI LAorICAgIEdQR19FUlJfU0VYUF9VTkVYUEVDVEVEX1BVTkMsCisgICAgR1BHX0VSUl9TRVhQX0JB RF9DSEFSQUNURVIsCisgICAgR1BHX0VSUl9TRVhQX05PVF9DQU5PTklDQUwsCisgICAgR1BHX0VS Ul9TRVhQX1NUUklOR19UT09fTE9ORywKKyAgICBHUEdfRVJSX1NFWFBfQkFEX1FVT1RBVElPTiwK KyAgICBHUEdfRVJSX1NFWFBfT0REX0hFWF9OVU1CRVJTLAorICAgIEdQR19FUlJfU0VYUF9CQURf SEVYX0NIQVIsCisgICAgR1BHX0VSUl9MSU1JVF9SRUFDSEVELAorICAgIEdQR19FUlJfRU9GLAor ICAgIEdQR19FUlJfQkFEX0RBVEEsCisgICAgR1BHX0VSUl9FSU5WQUwsCiAgIH0gZ3BnX2Vycl9j b2RlX3Q7CiB0eXBlZGVmIGdwZ19lcnJfY29kZV90IGdwZ19lcnJvcl90OwogdHlwZWRlZiBncGdf ZXJyb3JfdCBnY3J5X2Vycm9yX3Q7CkBAIC04NCwzNyArMTA4LDYwIEBAIGVudW0gZ2NyeV9jaXBo ZXJfbW9kZXMKICAgfTsKICNlbmRpZgogCisvKiBFeHRyYSBhbGdvIElEcyBub3QgY29taW5nIGZy b20gZ2NyeXB0LiAgKi8KKyNkZWZpbmUgR0NSWV9NRF9BRExFUjMyIDEwMzAxCisjZGVmaW5lIEdD UllfTURfQ1JDNjQgMTAzMDIKKwogLyogRG9uJ3QgcmVseSBvbiB0aGlzLiBDaGVjayEgICovCiAj ZGVmaW5lIEdSVUJfQ1JZUFRPX01BWF9NRExFTiA2NAogI2RlZmluZSBHUlVCX0NSWVBUT19NQVhf Q0lQSEVSX0JMT0NLU0laRSAxNgogI2RlZmluZSBHUlVCX0NSWVBUT19NQVhfTURfQ09OVEVYVF9T SVpFIDI1NgogCiAvKiBUeXBlIGZvciB0aGUgY2lwaGVyX3NldGtleSBmdW5jdGlvbi4gICovCitz dHJ1Y3QgY2lwaGVyX2J1bGtfb3BzOworCiB0eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlf Y2lwaGVyX3NldGtleV90KSAodm9pZCAqYywKIAkJCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICpr ZXksCi0JCQkJCQkgdW5zaWduZWQga2V5bGVuKTsKKwkJCQkJCSB1bnNpZ25lZCBrZXlsZW4sCisJ CQkJCQkgc3RydWN0IGNpcGhlcl9idWxrX29wcyAqYnVsa19vcHMpOwogCiAvKiBUeXBlIGZvciB0 aGUgY2lwaGVyX2VuY3J5cHQgZnVuY3Rpb24uICAqLwotdHlwZWRlZiB2b2lkICgqZ2NyeV9jaXBo ZXJfZW5jcnlwdF90KSAodm9pZCAqYywKLQkJCQkgICAgICAgdW5zaWduZWQgY2hhciAqb3V0YnVm LAotCQkJCSAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbmJ1Zik7Cit0eXBlZGVmIHVuc2ln bmVkIGludCAoKmdjcnlfY2lwaGVyX2VuY3J5cHRfdCkgKHZvaWQgKmMsCisJCQkJCSAgICAgICB1 bnNpZ25lZCBjaGFyICpvdXRidWYsCisJCQkJCSAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpp bmJ1Zik7CiAKIC8qIFR5cGUgZm9yIHRoZSBjaXBoZXJfZGVjcnlwdCBmdW5jdGlvbi4gICovCi10 eXBlZGVmIHZvaWQgKCpnY3J5X2NpcGhlcl9kZWNyeXB0X3QpICh2b2lkICpjLAotCQkJCSAgICAg ICB1bnNpZ25lZCBjaGFyICpvdXRidWYsCi0JCQkJICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIg KmluYnVmKTsKK3R5cGVkZWYgdW5zaWduZWQgaW50ICgqZ2NyeV9jaXBoZXJfZGVjcnlwdF90KSAo dm9pZCAqYywKKwkJCQkJICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dGJ1ZiwKKwkJCQkJICAgICAg IGNvbnN0IHVuc2lnbmVkIGNoYXIgKmluYnVmKTsKIAogLyogVHlwZSBmb3IgdGhlIGNpcGhlcl9z dGVuY3J5cHQgZnVuY3Rpb24uICAqLwogdHlwZWRlZiB2b2lkICgqZ2NyeV9jaXBoZXJfc3RlbmNy eXB0X3QpICh2b2lkICpjLAogCQkJCQkgdW5zaWduZWQgY2hhciAqb3V0YnVmLAogCQkJCQkgY29u c3QgdW5zaWduZWQgY2hhciAqaW5idWYsCi0JCQkJCSB1bnNpZ25lZCBpbnQgbik7CisJCQkJCSBn cnViX3NpemVfdCBuKTsKIAogLyogVHlwZSBmb3IgdGhlIGNpcGhlcl9zdGRlY3J5cHQgZnVuY3Rp b24uICAqLwogdHlwZWRlZiB2b2lkICgqZ2NyeV9jaXBoZXJfc3RkZWNyeXB0X3QpICh2b2lkICpj LAogCQkJCQkgdW5zaWduZWQgY2hhciAqb3V0YnVmLAogCQkJCQkgY29uc3QgdW5zaWduZWQgY2hh ciAqaW5idWYsCi0JCQkJCSB1bnNpZ25lZCBpbnQgbik7CisJCQkJCSBncnViX3NpemVfdCBuKTsK KwordHlwZWRlZiB2b2lkICgqc2VsZnRlc3RfcmVwb3J0X2Z1bmNfdCkoY29uc3QgY2hhciAqZG9t YWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFsZ28sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp3aGF0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyZGVz Yyk7CisKKy8qIFRoZSB0eXBlIHVzZWQgdG8gY29udmV5IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24g dG8gYSBjaXBoZXIuICAqLwordHlwZWRlZiBncGdfZXJyX2NvZGVfdCAoKmdjcnlfY2lwaGVyX3Nl dF9leHRyYV9pbmZvX3QpCisgICAgICh2b2lkICpjLCBpbnQgd2hhdCwgY29uc3Qgdm9pZCAqYnVm ZmVyLCBncnViX3NpemVfdCBidWZsZW4pOworCisvKiBUaGUgdHlwZSB1c2VkIHRvIHNldCBhbiBJ ViBkaXJlY3RseSBpbiB0aGUgYWxnb3JpdGhtIG1vZHVsZS4gICovCit0eXBlZGVmIHZvaWQgKCpn Y3J5X2NpcGhlcl9zZXRpdl9mdW5jX3QpKHZvaWQgKmMsIGNvbnN0IGdydWJfdWludDhfdCAqaXYs IGdydWJfc2l6ZV90IGl2bGVuKTsKKworLyogRGVmaW5pdGlvbiBvZiB0aGUgc2VsZnRlc3QgZnVu Y3Rpb25zLiAgKi8KK3R5cGVkZWYgZ3BnX2Vycl9jb2RlX3QgKCpnY3J5X3NlbGZ0ZXN0X2Z1bmNf dCkKKyAgICAgKGludCBhbGdvLCBpbnQgZXh0ZW5kZWQsIHNlbGZ0ZXN0X3JlcG9ydF9mdW5jX3Qg cmVwb3J0KTsKIAogdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9jaXBoZXJfb2lkX3NwZWMKIHsKQEAgLTEy NSw5ICsxNzIsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9jaXBoZXJfb2lkX3NwZWMKIC8qIE1v ZHVsZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSBmb3IgY2lwaGVycy4gICovCiB0eXBlZGVmIHN0 cnVjdCBnY3J5X2NpcGhlcl9zcGVjCiB7CisgIGludCBhbGdvOworICBzdHJ1Y3QgeworICAgIHVu c2lnbmVkIGludCBkaXNhYmxlZDoxOworICAgIHVuc2lnbmVkIGludCBmaXBzOjE7CisgIH0gZmxh Z3M7CiAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgIGNvbnN0IGNoYXIgKiphbGlhc2VzOwotICBnY3J5 X2NpcGhlcl9vaWRfc3BlY190ICpvaWRzOworICBjb25zdCBnY3J5X2NpcGhlcl9vaWRfc3BlY190 ICpvaWRzOwogICBncnViX3NpemVfdCBibG9ja3NpemU7CiAgIGdydWJfc2l6ZV90IGtleWxlbjsK ICAgZ3J1Yl9zaXplX3QgY29udGV4dHNpemU7CkBAIC0xMzYsNiArMTg4LDEwIEBAIHR5cGVkZWYg c3RydWN0IGdjcnlfY2lwaGVyX3NwZWMKICAgZ2NyeV9jaXBoZXJfZGVjcnlwdF90IGRlY3J5cHQ7 CiAgIGdjcnlfY2lwaGVyX3N0ZW5jcnlwdF90IHN0ZW5jcnlwdDsKICAgZ2NyeV9jaXBoZXJfc3Rk ZWNyeXB0X3Qgc3RkZWNyeXB0OworICBnY3J5X3NlbGZ0ZXN0X2Z1bmNfdCBzZWxmdGVzdDsKKyAg Z2NyeV9jaXBoZXJfc2V0X2V4dHJhX2luZm9fdCBzZXRfZXh0cmFfaW5mbzsKKyAgZ2NyeV9jaXBo ZXJfc2V0aXZfZnVuY190IHNldGl2OworCiAjaWZkZWYgR1JVQl9VVElMCiAgIGNvbnN0IGNoYXIg Km1vZG5hbWU7CiAjZW5kaWYKQEAgLTE0Myw3ICsxOTksNyBAQCB0eXBlZGVmIHN0cnVjdCBnY3J5 X2NpcGhlcl9zcGVjCiB9IGdjcnlfY2lwaGVyX3NwZWNfdDsKIAogLyogVHlwZSBmb3IgdGhlIG1k X2luaXQgZnVuY3Rpb24uICAqLwotdHlwZWRlZiB2b2lkICgqZ2NyeV9tZF9pbml0X3QpICh2b2lk ICpjKTsKK3R5cGVkZWYgdm9pZCAoKmdjcnlfbWRfaW5pdF90KSAodm9pZCAqYywgdW5zaWduZWQg aW50IGZsYWdzKTsKIAogLyogVHlwZSBmb3IgdGhlIG1kX3dyaXRlIGZ1bmN0aW9uLiAgKi8KIHR5 cGVkZWYgdm9pZCAoKmdjcnlfbWRfd3JpdGVfdCkgKHZvaWQgKmMsIGNvbnN0IHZvaWQgKmJ1Ziwg Z3J1Yl9zaXplX3QgbmJ5dGVzKTsKQEAgLTE2MiwxNiArMjE4LDI0IEBAIHR5cGVkZWYgc3RydWN0 IGdjcnlfbWRfb2lkX3NwZWMKIC8qIE1vZHVsZSBzcGVjaWZpY2F0aW9uIHN0cnVjdHVyZSBmb3Ig bWVzc2FnZSBkaWdlc3RzLiAgKi8KIHR5cGVkZWYgc3RydWN0IGdjcnlfbWRfc3BlYwogeworICBp bnQgYWxnbzsKKyAgc3RydWN0IHsKKyAgICB1bnNpZ25lZCBpbnQgZGlzYWJsZWQ6MTsKKyAgICB1 bnNpZ25lZCBpbnQgZmlwczoxOworICB9IGZsYWdzOwogICBjb25zdCBjaGFyICpuYW1lOwotICB1 bnNpZ25lZCBjaGFyICphc25vaWQ7CisgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFzbm9pZDsKICAg aW50IGFzbmxlbjsKLSAgZ2NyeV9tZF9vaWRfc3BlY190ICpvaWRzOworICBjb25zdCBnY3J5X21k X29pZF9zcGVjX3QgKm9pZHM7CiAgIGdydWJfc2l6ZV90IG1kbGVuOwogICBnY3J5X21kX2luaXRf dCBpbml0OwogICBnY3J5X21kX3dyaXRlX3Qgd3JpdGU7CiAgIGdjcnlfbWRfZmluYWxfdCBmaW5h bDsKICAgZ2NyeV9tZF9yZWFkX3QgcmVhZDsKKyAgdm9pZCAqZXh0cmFjdDsKKyAgdm9pZCAqaGFz aF9idWZmZXJzOwogICBncnViX3NpemVfdCBjb250ZXh0c2l6ZTsgLyogYWxsb2NhdGUgdGhpcyBh bW91bnQgb2YgY29udGV4dCAqLworCiAgIC8qIEJsb2NrIHNpemUsIG5lZWRlZCBmb3IgSE1BQy4g ICovCiAgIGdydWJfc2l6ZV90IGJsb2Nrc2l6ZTsKICNpZmRlZiBHUlVCX1VUSUwKQEAgLTE4MCw1 NCArMjQ0LDEyMyBAQCB0eXBlZGVmIHN0cnVjdCBnY3J5X21kX3NwZWMKICAgc3RydWN0IGdjcnlf bWRfc3BlYyAqbmV4dDsKIH0gZ2NyeV9tZF9zcGVjX3Q7CiAKK3R5cGVkZWYgc3RydWN0IGdjcnlf bWRfaGFuZGxlKmdjcnlfbWRfaGRfdDsKKwogc3RydWN0IGdjcnlfbXBpOwogdHlwZWRlZiBzdHJ1 Y3QgZ2NyeV9tcGkgKmdjcnlfbXBpX3Q7CiAKK3N0cnVjdCBnY3J5X3NleHA7Cit0eXBlZGVmIHN0 cnVjdCBnY3J5X3NleHAgKmdjcnlfc2V4cF90OworCisKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfTk9f QkxJTkRJTkcgICAgKDEgPDwgMCkKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfUkZDNjk3OSAgICAgICAg KDEgPDwgMSkKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfRklYRURMRU4gICAgICAgKDEgPDwgMikKKyNk ZWZpbmUgUFVCS0VZX0ZMQUdfTEVHQUNZUkVTVUxUICAgKDEgPDwgMykKKyNkZWZpbmUgUFVCS0VZ X0ZMQUdfUkFXX0ZMQUcgICAgICAgKDEgPDwgNCkKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfVFJBTlNJ RU5UX0tFWSAgKDEgPDwgNSkKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfVVNFX1g5MzEgICAgICAgKDEg PDwgNikKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfVVNFX0ZJUFMxODYgICAgKDEgPDwgNykKKyNkZWZp bmUgUFVCS0VZX0ZMQUdfVVNFX0ZJUFMxODZfMiAgKDEgPDwgOCkKKyNkZWZpbmUgUFVCS0VZX0ZM QUdfUEFSQU0gICAgICAgICAgKDEgPDwgOSkKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfQ09NUCAgICAg ICAgICAgKDEgPDwgMTApCisjZGVmaW5lIFBVQktFWV9GTEFHX05PQ09NUCAgICAgICAgICgxIDw8 IDExKQorI2RlZmluZSBQVUJLRVlfRkxBR19FRERTQSAgICAgICAgICAoMSA8PCAxMikKKyNkZWZp bmUgUFVCS0VZX0ZMQUdfR09TVCAgICAgICAgICAgKDEgPDwgMTMpCisjZGVmaW5lIFBVQktFWV9G TEFHX05PX0tFWVRFU1QgICAgICgxIDw8IDE0KQorI2RlZmluZSBQVUJLRVlfRkxBR19ESkJfVFdF QUsgICAgICAoMSA8PCAxNSkKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfU00yICAgICAgICAgICAgKDEg PDwgMTYpCisjZGVmaW5lIFBVQktFWV9GTEFHX1BSRUhBU0ggICAgICAgICgxIDw8IDE3KQorCitl bnVtIHBrX29wZXJhdGlvbgorICB7CisgICAgUFVCS0VZX09QX0VOQ1JZUFQsCisgICAgUFVCS0VZ X09QX0RFQ1JZUFQsCisgICAgUFVCS0VZX09QX1NJR04sCisgICAgUFVCS0VZX09QX1ZFUklGWQor ICB9OworCitlbnVtIHBrX2VuY29kaW5nCisgIHsKKyAgICBQVUJLRVlfRU5DX1JBVywKKyAgICBQ VUJLRVlfRU5DX1BLQ1MxLAorICAgIFBVQktFWV9FTkNfUEtDUzFfUkFXLAorICAgIFBVQktFWV9F TkNfT0FFUCwKKyAgICBQVUJLRVlfRU5DX1BTUywKKyAgICBQVUJLRVlfRU5DX1VOS05PV04KKyAg fTsKKworc3RydWN0IHBrX2VuY29kaW5nX2N0eAoreworICBlbnVtIHBrX29wZXJhdGlvbiBvcDsK KyAgdW5zaWduZWQgaW50IG5iaXRzOworCisgIGVudW0gcGtfZW5jb2RpbmcgZW5jb2Rpbmc7Cisg IGludCBmbGFnczsKKworICBpbnQgaGFzaF9hbGdvOworCisgIC8qIGZvciBPQUVQICovCisgIHVu c2lnbmVkIGNoYXIgKmxhYmVsOworICBncnViX3NpemVfdCBsYWJlbGxlbjsKKworICAvKiBmb3Ig UFNTICovCisgIGdydWJfc2l6ZV90IHNhbHRsZW47CisKKyAgaW50ICgqIHZlcmlmeV9jbXApICh2 b2lkICpvcGFxdWUsIGdjcnlfbXBpX3QgdG1wKTsKKyAgdm9pZCAqdmVyaWZ5X2FyZzsKK307CisK IC8qIFR5cGUgZm9yIHRoZSBwa19nZW5lcmF0ZSBmdW5jdGlvbi4gICovCi10eXBlZGVmIGdjcnlf ZXJyX2NvZGVfdCAoKmdjcnlfcGtfZ2VuZXJhdGVfdCkgKGludCBhbGdvLAotCQkJCQkgICAgICAg dW5zaWduZWQgaW50IG5iaXRzLAotCQkJCQkgICAgICAgdW5zaWduZWQgbG9uZyB1c2VfZSwKLQkJ CQkJICAgICAgIGdjcnlfbXBpX3QgKnNrZXksCi0JCQkJCSAgICAgICBnY3J5X21waV90ICoqcmV0 ZmFjdG9ycyk7Cit0eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfZ2VuZXJhdGVfdCkg KGdjcnlfc2V4cF90IGdlbnBhcm1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnY3J5X3NleHBfdCAqcl9za2V5KTsKIAogLyogVHlwZSBmb3IgdGhlIHBr X2NoZWNrX3NlY3JldF9rZXkgZnVuY3Rpb24uICAqLwotdHlwZWRlZiBnY3J5X2Vycl9jb2RlX3Qg KCpnY3J5X3BrX2NoZWNrX3NlY3JldF9rZXlfdCkgKGludCBhbGdvLAotCQkJCQkJICAgICAgIGdj cnlfbXBpX3QgKnNrZXkpOwordHlwZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpnY3J5X3BrX2NoZWNr X3NlY3JldF9rZXlfdCkgKGdjcnlfc2V4cF90IGtleXBhcm1zKTsKIAogLyogVHlwZSBmb3IgdGhl IHBrX2VuY3J5cHQgZnVuY3Rpb24uICAqLwotdHlwZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpnY3J5 X3BrX2VuY3J5cHRfdCkgKGludCBhbGdvLAotCQkJCQkgICAgICBnY3J5X21waV90ICpyZXNhcnIs Ci0JCQkJCSAgICAgIGdjcnlfbXBpX3QgZGF0YSwKLQkJCQkJICAgICAgZ2NyeV9tcGlfdCAqcGtl eSwKLQkJCQkJICAgICAgaW50IGZsYWdzKTsKK3R5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2Ny eV9wa19lbmNyeXB0X3QpIChnY3J5X3NleHBfdCAqcl9jaXBoLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IHNfZGF0YSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY3J5X3NleHBfdCBrZXlwYXJt cyk7CiAKIC8qIFR5cGUgZm9yIHRoZSBwa19kZWNyeXB0IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYg Z2NyeV9lcnJfY29kZV90ICgqZ2NyeV9wa19kZWNyeXB0X3QpIChpbnQgYWxnbywKLQkJCQkJICAg ICAgZ2NyeV9tcGlfdCAqcmVzdWx0LAotCQkJCQkgICAgICBnY3J5X21waV90ICpkYXRhLAotCQkJ CQkgICAgICBnY3J5X21waV90ICpza2V5LAotCQkJCQkgICAgICBpbnQgZmxhZ3MpOwordHlwZWRl ZiBnY3J5X2Vycl9jb2RlX3QgKCpnY3J5X3BrX2RlY3J5cHRfdCkgKGdjcnlfc2V4cF90ICpyX3Bs YWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjcnlf c2V4cF90IHNfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnY3J5X3NleHBfdCBrZXlwYXJtcyk7CiAKIC8qIFR5cGUgZm9yIHRoZSBwa19zaWduIGZ1 bmN0aW9uLiAgKi8KLXR5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9wa19zaWduX3QpIChp bnQgYWxnbywKLQkJCQkJICAgZ2NyeV9tcGlfdCAqcmVzYXJyLAotCQkJCQkgICBnY3J5X21waV90 IGRhdGEsCi0JCQkJCSAgIGdjcnlfbXBpX3QgKnNrZXkpOwordHlwZWRlZiBnY3J5X2Vycl9jb2Rl X3QgKCpnY3J5X3BrX3NpZ25fdCkgKGdjcnlfc2V4cF90ICpyX3NpZywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY3J5X3NleHBfdCBzX2RhdGEsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3Qga2V5cGFybXMp OwogCiAvKiBUeXBlIGZvciB0aGUgcGtfdmVyaWZ5IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgZ2Ny eV9lcnJfY29kZV90ICgqZ2NyeV9wa192ZXJpZnlfdCkgKGludCBhbGdvLAotCQkJCQkgICAgIGdj cnlfbXBpX3QgaGFzaCwKLQkJCQkJICAgICBnY3J5X21waV90ICpkYXRhLAotCQkJCQkgICAgIGdj cnlfbXBpX3QgKnBrZXksCi0JCQkJCSAgICAgaW50ICgqY21wKSAodm9pZCAqLCBnY3J5X21waV90 KSwKLQkJCQkJICAgICB2b2lkICpvcGFxdWV2KTsKK3R5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgq Z2NyeV9wa192ZXJpZnlfdCkgKGdjcnlfc2V4cF90IHNfc2lnLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3Qgc19kYXRhLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3Qga2V5cGFybXMp OwogCiAvKiBUeXBlIGZvciB0aGUgcGtfZ2V0X25iaXRzIGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYg dW5zaWduZWQgKCpnY3J5X3BrX2dldF9uYml0c190KSAoaW50IGFsZ28sIGdjcnlfbXBpX3QgKnBr ZXkpOwordHlwZWRlZiB1bnNpZ25lZCAoKmdjcnlfcGtfZ2V0X25iaXRzX3QpIChnY3J5X3NleHBf dCBrZXlwYXJtcyk7CisKKy8qIFRoZSB0eXBlIHVzZWQgdG8gY29tcHV0ZSB0aGUga2V5Z3JpcC4g ICovCit0eXBlZGVmIGdwZ19lcnJfY29kZV90ICgqcGtfY29tcF9rZXlncmlwX3QpIChnY3J5X21k X2hkX3QgbWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn Y3J5X3NleHBfdCBrZXlwYXJtKTsKKworLyogVGhlIHR5cGUgdXNlZCB0byBxdWVyeSBhbiBFQ0Mg Y3VydmUgbmFtZS4gICovCit0eXBlZGVmIGNvbnN0IGNoYXIgKigqcGtfZ2V0X2N1cnZlX3QpKGdj cnlfc2V4cF90IGtleXBhcm1zLCBpbnQgaXRlcmF0b3IsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqcl9uYml0cyk7CisKKy8qIFRoZSB0eXBlIHVz ZWQgdG8gcXVlcnkgRUNDIGN1cnZlIHBhcmFtZXRlcnMgYnkgbmFtZS4gICovCit0eXBlZGVmIGdj cnlfc2V4cF90ICgqcGtfZ2V0X2N1cnZlX3BhcmFtX3QpKGNvbnN0IGNoYXIgKm5hbWUpOwogCiAv KiBNb2R1bGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUgZm9yIG1lc3NhZ2UgZGlnZXN0cy4gICov CiB0eXBlZGVmIHN0cnVjdCBnY3J5X3BrX3NwZWMKIHsKKyAgaW50IGFsZ287CisgIHN0cnVjdCB7 CisgICAgdW5zaWduZWQgaW50IGRpc2FibGVkOjE7CisgICAgdW5zaWduZWQgaW50IGZpcHM6MTsK KyAgfSBmbGFnczsKKyAgaW50IHVzZTsKICAgY29uc3QgY2hhciAqbmFtZTsKICAgY29uc3QgY2hh ciAqKmFsaWFzZXM7CiAgIGNvbnN0IGNoYXIgKmVsZW1lbnRzX3BrZXk7CkBAIC0yMzUsNyArMzY4 LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9wa19zcGVjCiAgIGNvbnN0IGNoYXIgKmVsZW1lbnRz X2VuYzsKICAgY29uc3QgY2hhciAqZWxlbWVudHNfc2lnOwogICBjb25zdCBjaGFyICplbGVtZW50 c19ncmlwOwotICBpbnQgdXNlOwogICBnY3J5X3BrX2dlbmVyYXRlX3QgZ2VuZXJhdGU7CiAgIGdj cnlfcGtfY2hlY2tfc2VjcmV0X2tleV90IGNoZWNrX3NlY3JldF9rZXk7CiAgIGdjcnlfcGtfZW5j cnlwdF90IGVuY3J5cHQ7CkBAIC0yNDMsNiArMzc1LDEwIEBAIHR5cGVkZWYgc3RydWN0IGdjcnlf cGtfc3BlYwogICBnY3J5X3BrX3NpZ25fdCBzaWduOwogICBnY3J5X3BrX3ZlcmlmeV90IHZlcmlm eTsKICAgZ2NyeV9wa19nZXRfbmJpdHNfdCBnZXRfbmJpdHM7CisgIHBrX2NvbXBfa2V5Z3JpcF90 IGNvbXBfa2V5Z3JpcDsKKyAgcGtfZ2V0X2N1cnZlX3QgZ2V0X2N1cnZlOworICBwa19nZXRfY3Vy dmVfcGFyYW1fdCBnZXRfY3VydmVfcGFyYW07CisKICNpZmRlZiBHUlVCX1VUSUwKICAgY29uc3Qg Y2hhciAqbW9kbmFtZTsKICNlbmRpZgpAQCAtMzQ1LDYgKzQ4MSwxMCBAQCBncnViX2NyeXB0b19o YXNoIChjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgdm9pZCAqb3V0LCBjb25zdCB2b2lkICpp biwKIAkJICBncnViX3NpemVfdCBpbmxlbik7CiBjb25zdCBnY3J5X21kX3NwZWNfdCAqCiBncnVi X2NyeXB0b19sb29rdXBfbWRfYnlfbmFtZSAoY29uc3QgY2hhciAqbmFtZSk7Citjb25zdCBnY3J5 X21kX3NwZWNfdCAqCitncnViX2NyeXB0b19sb29rdXBfbWRfYnlfYWxnbyAoaW50IGFsZ28pOwor Y29uc3QgZ2NyeV9tZF9zcGVjX3QgKgorZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X29pZCAoY29u c3QgY2hhciAqb2lkKTsKIAogZ3J1Yl9lcnJfdAogZ3J1Yl9jcnlwdG9fZ2NyeV9lcnJvciAoZ2Ny eV9lcnJfY29kZV90IGluKTsKQEAgLTQwOCw3ICs1NDgsMzUgQEAgdm9pZCBfZ2NyeV9hc3NlcnRf ZmFpbGVkIChjb25zdCBjaGFyICpleHByLCBjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwKIAog dm9pZCBfZ2NyeV9idXJuX3N0YWNrIChpbnQgYnl0ZXMpOwogdm9pZCBfZ2NyeV9sb2dfZXJyb3Io IGNvbnN0IGNoYXIgKmZtdCwgLi4uICkgIF9fYXR0cmlidXRlX18gKChmb3JtYXQgKF9fcHJpbnRm X18sIDEsIDIpKSk7Cit2b2lkIF9nY3J5X2xvZ19pbmZvIChjb25zdCBjaGFyICpmbXQsIC4uLik7 Cit2b2lkIF9fZ2NyeV9idXJuX3N0YWNrICh1bnNpZ25lZCBpbnQgc2l6ZSk7Cit2b2lkIF9fZ2Ny eV9idXJuX3N0YWNrX2R1bW15ICh2b2lkKTsKK3ZvaWQgX2djcnlfYnVnKCBjb25zdCBjaGFyICpm aWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciAqZnVuYyApOwordm9pZAorX2djcnlfZmFzdF93aXBl bWVtb3J5ICh2b2lkICpwdHIsIGdydWJfc2l6ZV90IGxlbik7Cit2b2lkCitfZ2NyeV9mYXN0X3dp cGVtZW1vcnkyICh2b2lkICpwdHIsIGludCBzZXQsIGdydWJfc2l6ZV90IGxlbik7Cit1bnNpZ25l ZCBpbnQKK19nY3J5X2N0X21lbWVxdWFsIChjb25zdCB2b2lkICpiMSwgY29uc3Qgdm9pZCAqYjIs IGdydWJfc2l6ZV90IGxlbik7Cit1bnNpZ25lZCBpbnQKK19nY3J5X2N0X25vdF9tZW1lcXVhbCAo Y29uc3Qgdm9pZCAqYjEsIGNvbnN0IHZvaWQgKmIyLCBncnViX3NpemVfdCBsZW4pOworCisKK3N0 YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IF9nY3J5X2dldF9od19mZWF0dXJlcyh2b2lkKQorewor ICByZXR1cm4gMDsKK30KIAordm9pZCAqX2djcnlfbWFsbG9jKGdydWJfc2l6ZV90IG4pOwordm9p ZCAqX2djcnlfbWFsbG9jX3NlY3VyZShncnViX3NpemVfdCBuKTsKK3ZvaWQgKl9nY3J5X3htYWxs b2MoZ3J1Yl9zaXplX3Qgbik7Cit2b2lkICpfZ2NyeV94bWFsbG9jX3NlY3VyZShncnViX3NpemVf dCBuKTsKK3ZvaWQgX2djcnlfZnJlZSAodm9pZCAqcCk7Cit2b2lkICpfZ2NyeV94cmVhbGxvYyAo dm9pZCAqYSwgZ3J1Yl9zaXplX3Qgbik7CitpbnQgX2djcnlfaXNfc2VjdXJlIChjb25zdCB2b2lk ICphKTsKK3ZvaWQgKl9nY3J5X3hjYWxsb2MgKGdydWJfc2l6ZV90IG4sIGdydWJfc2l6ZV90IG0p Owordm9pZCAqX2djcnlfeGNhbGxvY19zZWN1cmUgKGdydWJfc2l6ZV90IG4sIGdydWJfc2l6ZV90 IG0pOwordm9pZCBfZ2NyeV9kaXZpZGVfYnlfemVybyAodm9pZCk7CiAKICNpZmRlZiBHUlVCX1VU SUwKIHZvaWQgZ3J1Yl9nY3J5X2luaXRfYWxsICh2b2lkKTsKQEAgLTQxOSw0ICs1ODcsMTEgQEAg Z3J1Yl9nZXRfcmFuZG9tICh2b2lkICpvdXQsIGdydWJfc2l6ZV90IGxlbik7CiAKICNlbmRpZgog Cit0eXBlZGVmIHN0cnVjdCBfZ3BncnRfYjY0c3RhdGUgKmdwZ3J0X2I2NHN0YXRlX3Q7CitncGdy dF9iNjRzdGF0ZV90IGdwZ3J0X2I2NGRlY19zdGFydCAoY29uc3QgY2hhciAqdGl0bGUpOworZ3Bn X2Vycm9yX3QgICAgICBncGdydF9iNjRkZWNfcHJvYyAoZ3BncnRfYjY0c3RhdGVfdCBzdGF0ZSwK KwkJCQkgICAgdm9pZCAqYnVmZmVyLCBncnViX3NpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBncnViX3NpemVfdCAqcl9uYnl0ZXMpOworZ3BnX2Vycm9y X3QgICAgICBncGdydF9iNjRkZWNfZmluaXNoIChncGdydF9iNjRzdGF0ZV90IHN0YXRlKTsKK2Nv bnN0IGNoYXIgKmdwZ19zdHJlcnJvciAoZ3BnX2Vycm9yX3QgZXJyKTsKICNlbmRpZgpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9ncnViL2djcnlwdC9ncGctZXJyb3IuaCBiL2luY2x1ZGUvZ3J1Yi9nY3J5 cHQvZ3BnLWVycm9yLmgKaW5kZXggMWU0MjUwMjg0Li40NDRiZWYyMjEgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvZ3J1Yi9nY3J5cHQvZ3BnLWVycm9yLmgKKysrIGIvaW5jbHVkZS9ncnViL2djcnlwdC9n cGctZXJyb3IuaApAQCAtMjksNCArMjksMTMgQEAgZ3BnX2Vycl9zb3VyY2UgKGdwZ19lcnJvcl90 IGVyciBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkpCiBnY3J5X2Vycl9jb2RlX3QKIGdwZ19lcnJv cl9mcm9tX3N5c2Vycm9yICh2b2lkKTsKIAorZ2NyeV9lcnJfY29kZV90CitncGdfZXJyX2NvZGVf ZnJvbV9zeXNlcnJvciAodm9pZCk7CisKK2djcnlfZXJyX2NvZGVfdAorZ3BnX2Vycm9yX2Zyb21f ZXJybm8gKGludCBlcnIpOworCitnY3J5X2Vycl9jb2RlX3QKK2dwZ19lcnJfY29kZV9mcm9tX2Vy cm5vIChpbnQgZXJyKTsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS91dGlsL2dydWItZnN0ZXN0LmMg Yi91dGlsL2dydWItZnN0ZXN0LmMKaW5kZXggMjVhZTUyYWI2Li43ZTY3MDY5NzYgMTAwNjQ0Ci0t LSBhL3V0aWwvZ3J1Yi1mc3Rlc3QuYworKysgYi91dGlsL2dydWItZnN0ZXN0LmMKQEAgLTM2NCw3 ICszNjQsNyBAQCBzdGF0aWMgdm9pZAogY21kX2NyYyAoY2hhciAqcGF0aG5hbWUpCiB7CiAgIGdy dWJfdWludDhfdCAqY3JjMzJfY29udGV4dCA9IHhtYWxsb2MgKEdSVUJfTURfQ1JDMzItPmNvbnRl eHRzaXplKTsKLSAgR1JVQl9NRF9DUkMzMi0+aW5pdChjcmMzMl9jb250ZXh0KTsKKyAgR1JVQl9N RF9DUkMzMi0+aW5pdChjcmMzMl9jb250ZXh0LCAwKTsKIAogICByZWFkX2ZpbGUgKHBhdGhuYW1l LCBjcmNfaG9vaywgY3JjMzJfY29udGV4dCk7CiAgIEdSVUJfTURfQ1JDMzItPmZpbmFsKGNyYzMy X2NvbnRleHQpOwpkaWZmIC0tZ2l0IGEvdXRpbC9pbXBvcnRfZ2NyeS5weSBiL3V0aWwvaW1wb3J0 X2djcnkucHkKaW5kZXggMmIzMzIyZDNhLi4wMmY3MjdmY2EgMTAwNjQ0Ci0tLSBhL3V0aWwvaW1w b3J0X2djcnkucHkKKysrIGIvdXRpbC9pbXBvcnRfZ2NyeS5weQpAQCAtNjIsNiArNjIsMTIgQEAg Y29uZnV0aWwud3JpdGUgKCIgIGNmbGFncyA9ICckKENGTEFHU19HQ1JZKSc7XG4iKTsKIGNvbmZ1 dGlsLndyaXRlICgiICBjcHBmbGFncyA9ICckKENQUEZMQUdTX0dDUlkpJztcbiIpOwogY29uZnV0 aWwud3JpdGUgKCIgIGV4dHJhX2Rpc3QgPSBncnViLWNvcmUvbGliL2xpYmdjcnlwdC1ncnViL2Np cGhlci9DaGFuZ2VMb2c7XG4iKTsKIGNvbmZ1dGlsLndyaXRlICgiXG4iKTsKKworZm9yIHNyYyBp biBbJ3NyYy9jb25zdC10aW1lLmMnXToKKyAgICBjb25mdXRpbC53cml0ZSAoIiAgY29tbW9uID0g Z3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi8lcztcbiIgJSBzcmMpCisKK2NvbmZ1dGlsLndy aXRlICgiXG4iKTsKKwogY2hsb2cgPSAiIgogbW9kdWxlc19zeW1fbWQgPSBbXQogCkBAIC03OSwx MCArODUsMjMgQEAgbWRibG9ja3NpemVzID0geyJfZ2NyeV9kaWdlc3Rfc3BlY19jcmMzMiIgOiA2 NCwKICAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hhMjU2IiA6IDY0LAogICAg ICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zaGEzODQiIDogMTI4LAogICAgICAgICAg ICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zaGE1MTIiIDogMTI4LAorICAgICAgICAgICAgICAg ICJfZ2NyeV9kaWdlc3Rfc3BlY19zaGE1MTJfMjU2IjogMTI4LAorICAgICAgICAgICAgICAgICJf Z2NyeV9kaWdlc3Rfc3BlY19zaGE1MTJfMjI0IjogMTI4LAogICAgICAgICAgICAgICAgICJfZ2Ny eV9kaWdlc3Rfc3BlY190aWdlciIgOiA2NCwKICAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0 X3NwZWNfdGlnZXIxIiA6IDY0LAogICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY190 aWdlcjIiIDogNjQsCi0gICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3doaXJscG9v bCIgOiA2NH0KKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfd2hpcmxwb29sIiA6 IDY0LAorICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zaGFrZTEyOCI6IDY0LAor ICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zaGFrZTI1NiI6IDY0LAorICAgICAg ICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zbTMiOiA2NCwKKyAgICAgICAgICAgICAgICAi X2djcnlfZGlnZXN0X3NwZWNfc3RyaWJvZ18yNTYiOiA2NCwKKyAgICAgICAgICAgICAgICAiX2dj cnlfZGlnZXN0X3NwZWNfc3RyaWJvZ181MTIiOiA2NCwKKyAgICAgICAgICAgICAgICAiX2djcnlf ZGlnZXN0X3NwZWNfc2hhM18yMjQiOiAxMTUyIC8gOCwKKyAgICAgICAgICAgICAgICAiX2djcnlf ZGlnZXN0X3NwZWNfc2hhM18yNTYiOiAxMDg4IC8gOCwKKyAgICAgICAgICAgICAgICAiX2djcnlf ZGlnZXN0X3NwZWNfc2hhM18zODQiOiA4MzIgLyA4LAorICAgICAgICAgICAgICAgICJfZ2NyeV9k aWdlc3Rfc3BlY19zaGEzXzUxMiI6IDU3NiAvIDgsCisgICAgICAgICAgICAgICAgIl9nY3J5X2Rp Z2VzdF9zcGVjX2dvc3QzNDExXzk0IjogMzIsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2Vz dF9zcGVjX2dvc3QzNDExX2NwIjogMzJ9CiAKIGNyeXB0b2xpc3QgPSBjb2RlY3Mub3BlbiAob3Mu cGF0aC5qb2luIChjaXBoZXJfZGlyX291dCwgImNyeXB0by5sc3QiKSwgInciLCAidXRmLTgiKQog CkBAIC05OSwyNiArMTE4LDQ3IEBAIGNyeXB0b2xpc3Qud3JpdGUgKCJBRVMtMjU2OiBnY3J5X3Jp am5kYWVsXG4iKTsKIGNyeXB0b2xpc3Qud3JpdGUgKCJBRExFUjMyOiBhZGxlcjMyXG4iKTsKIGNy eXB0b2xpc3Qud3JpdGUgKCJDUkM2NDogY3JjNjRcbiIpOwogCitleHRyYV9maWxlcyA9IHsKKyAg ICAiZ2NyeV9jYW1lbGxpYSI6IFsiY2FtZWxsaWEuYyJdLCAjIE1haW4gZmlsZSBpcyBjYW1lbGxp YS1nbHVlLmMKKyAgICAiZ2NyeV9zaGE1MTIiICA6IFsiaGFzaC1jb21tb24uYyJdLAorfQorZXh0 cmFfZmlsZXNfbGlzdCA9IFt4IGZvciB4cyBpbiBleHRyYV9maWxlcy52YWx1ZXMoKSBmb3IgeCBp biB4c10gKyBbInB1YmtleS11dGlsLmMiLCAicnNhLWNvbW1vbi5jIiwgImRzYS1jb21tb24uYyIs ICJtZC5jIl0KKwogZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICBpbmZpbGUg PSBvcy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJfaW4sIGNpcGhlcl9maWxlKQogICAgIG91dGZpbGUg PSBvcy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJfb3V0LCBjaXBoZXJfZmlsZSkKICAgICBpZiBjaXBo ZXJfZmlsZSA9PSAiQ2hhbmdlTG9nIiBvciBjaXBoZXJfZmlsZSA9PSAiQ2hhbmdlTG9nLTIwMTEi OgogICAgICAgICBjb250aW51ZQogICAgIGNobG9nbmV3ID0gIgkqICVzIiAlIGNpcGhlcl9maWxl Ci0gICAgaWYgcmUubWF0Y2ggKCIoTWFuaWZlc3R8TWFrZWZpbGVcLmFtfGFjXC5jfGNpcGhlclwu Y3xoYXNoLWNvbW1vblwuY3xobWFjLXRlc3RzXC5jfG1kXC5jfHB1YmtleVwuYykkIiwgY2lwaGVy X2ZpbGUpIG9yIGNpcGhlcl9maWxlID09ICJrZGYuYyIgb3IgY2lwaGVyX2ZpbGUgPT0gImVsZ2Ft YWwuYyIgb3IgY2lwaGVyX2ZpbGUgPT0gInByaW1lZ2VuLmMiIG9yIGNpcGhlcl9maWxlID09ICJl Y2MuYyIgb3IgY2lwaGVyX2ZpbGUgPT0gInRlc3QtZ2V0cnVzYWdlLmMiOgorICAgICMgVW51c2Vk IGdlbmVyaWMgc3VwcG9ydCBmaWxlcworICAgIGlmIHJlLm1hdGNoIChyIihNYWtlZmlsZVwuYW18 Y2lwaGVyXC5jfGNpcGhlci0uKlwuY3xtYWMtLipcLmN8bWFjXC5jfHB1YmtleVwuYykkIiwgY2lw aGVyX2ZpbGUpOgorICAgICAgICBjaGxvZyA9ICIlcyVzOiBSZW1vdmVkXG4iICUgKGNobG9nLCBj aGxvZ25ldykKKyAgICAgICAgY29udGludWUKKyAgICAjIFRPRE86IFN1cHBvcnQgS0RGCisgICAg aWYgcmUubWF0Y2ggKHIiKGtkZlwuY3xzY3J5cHRcLmMpJCIsIGNpcGhlcl9maWxlKToKKyAgICAg ICAgY2hsb2cgPSAiJXMlczogUmVtb3ZlZFxuIiAlIChjaGxvZywgY2hsb2duZXcpCisgICAgICAg IGNvbnRpbnVlCisgICAgIyBUT0RPOiBTdXBwb3J0IGNoYWNoYTIwIGFuZCBwb2x5MTMwNQorICAg IGlmIGNpcGhlcl9maWxlIGluIFsiY2hhY2hhMjAuYyIsICJlY2MuYyIsICJlbGdhbWFsLmMiXToK KyAgICAgICAgY2hsb2cgPSAiJXMlczogUmVtb3ZlZFxuIiAlIChjaGxvZywgY2hsb2duZXcpCisg ICAgICAgIGNvbnRpbnVlICAgICAgICAKKyAgICAjIFRPRE86IFVzZSBvcHRpbWl6ZWQgdmVyc2lv bnMKKyAgICBpZiByZS5tYXRjaCAociIoLipcLltzU118LiotaW50ZWwtc2hhZXh0XC5jfC4qLXNz c2UzLWkzODZcLmN8LiotcHBjXC5jfC4qLXNzc2UzLWFtZDY0XC5jfC4qLXMzOTB4XC5jfHJpam5k YWVsLWFlc25pXC5jfGNyYy1pbnRlbC1wY2xtdWxcLmN8LiotYXJtdjgtY2VcLmN8LiotcDEwbGVc LmN8cmlqbmRhZWwtcGFkbG9jay5jfHJpam5kYWVsLXBwYzlsZS5jfHJpam5kYWVsLXZhZXMuYykk IiwgY2lwaGVyX2ZpbGUpOgogICAgICAgICBjaGxvZyA9ICIlcyVzOiBSZW1vdmVkXG4iICUgKGNo bG9nLCBjaGxvZ25ldykKICAgICAgICAgY29udGludWUKICAgICAjIEF1dG9nZW5lcmF0ZWQgZmls ZXMuIE5vdCBldmVuIHdvcnRoIG1lbnRpb25uaW5nIGluIENoYW5nZUxvZwotICAgIGlmIHJlLm1h dGNoICgiTWFrZWZpbGVcLmluJCIsIGNpcGhlcl9maWxlKToKKyAgICBpZiByZS5tYXRjaCAociJN YWtlZmlsZVwuaW4kIiwgY2lwaGVyX2ZpbGUpOgogICAgICAgICBjb250aW51ZQogICAgIG5jaCA9 IEZhbHNlCi0gICAgaWYgcmUubWF0Y2ggKCIuKlwuW2NoXSQiLCBjaXBoZXJfZmlsZSk6Ci0gICAg ICAgIGlzYyA9IHJlLm1hdGNoICgiLipcLmMkIiwgY2lwaGVyX2ZpbGUpCisgICAgaWYgcmUubWF0 Y2ggKHIiLipcLltjaF0kIiwgY2lwaGVyX2ZpbGUpOgorICAgICAgICBpc2MgPSByZS5tYXRjaCAo ciIuKlwuYyQiLCBjaXBoZXJfZmlsZSkKICAgICAgICAgZiA9IGNvZGVjcy5vcGVuIChpbmZpbGUs ICJyIiwgInV0Zi04IikKICAgICAgICAgZncgPSBjb2RlY3Mub3BlbiAob3V0ZmlsZSwgInciLCAi dXRmLTgiKQogICAgICAgICBmdy53cml0ZSAoIi8qIFRoaXMgZmlsZSB3YXMgYXV0b21hdGljYWxs eSBpbXBvcnRlZCB3aXRoIFxuIikKICAgICAgICAgZncud3JpdGUgKCIgICBpbXBvcnRfZ2NyeS5w eS4gUGxlYXNlIGRvbid0IG1vZGlmeSBpdCAqL1xuIikKLSAgICAgICAgZncud3JpdGUgKCIjaW5j bHVkZSA8Z3J1Yi9kbC5oPlxuIikKKyAgICAgICAgYWRkX2xpY2Vuc2UgPSBjaXBoZXJfZmlsZSA9 PSAicHVia2V5LXV0aWwuYyIgb3IgKGlzYyBhbmQgbm90IGNpcGhlcl9maWxlIGluIGV4dHJhX2Zp bGVzX2xpc3QpCisgICAgICAgIGlmIGFkZF9saWNlbnNlOgorICAgICAgICAgICAgZncud3JpdGUg KCIjaW5jbHVkZSA8Z3J1Yi9kbC5oPlxuIikKICAgICAgICAgaWYgY2lwaGVyX2ZpbGUgPT0gImNh bWVsbGlhLmgiOgogICAgICAgICAgICAgZncud3JpdGUgKCIjaW5jbHVkZSA8Z3J1Yi9taXNjLmg+ XG4iKQogICAgICAgICAgICAgZncud3JpdGUgKCJ2b2lkIGNhbWVsbGlhX3NldHVwMTI4KGNvbnN0 IHVuc2lnbmVkIGNoYXIgKmtleSwgZ3J1Yl91aW50MzJfdCAqc3Via2V5KTtcbiIpCkBAIC0xMzIs NyArMTcyLDcgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgICAg IGZ3LndyaXRlICgidm9pZCBjYW1lbGxpYV9kZWNyeXB0MjU2KGNvbnN0IGdydWJfdWludDMyX3Qg KnN1YmtleSwgZ3J1Yl91aW50MzJfdCAqaW8pO1xuIikgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICBmdy53cml0ZSAoIiNkZWZpbmUgbWVtY3B5IGdydWJfbWVtY3B5XG4iKQogICAg ICAgICAjIFdob2xlIGxpYmdjcnlwdCBpcyBkaXN0cmlidXRlZCB1bmRlciBHUEx2Mysgb3IgY29t cGF0aWJsZQotICAgICAgICBpZiBpc2M6CisgICAgICAgIGlmIGFkZF9saWNlbnNlOgogICAgICAg ICAgICAgZncud3JpdGUgKCJHUlVCX01PRF9MSUNFTlNFIChcIkdQTHYzK1wiKTtcbiIpCiAKICAg ICAgICAgY2lwaGVybmFtZXMgPSBbXQpAQCAtMTQ4LDE0ICsxODgsMTAgQEAgZm9yIGNpcGhlcl9m aWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgaXNjaXBoZXIgPSBGYWxzZQogICAgICAgICBp c2NyeXB0b3N0YXJ0ID0gRmFsc2UKICAgICAgICAgaXNjb21tYSA9IEZhbHNlCi0gICAgICAgIGlz Z2x1ZSA9IEZhbHNlCiAgICAgICAgIHNraXBfc3RhdGVtZW50ID0gRmFsc2UKKyAgICAgICAgc2tp cF9jb21tYSA9IEZhbHNlCiAgICAgICAgIGlmIGlzYzoKLSAgICAgICAgICAgIG1vZG5hbWUgPSBj aXBoZXJfZmlsZSBbMDpsZW4oY2lwaGVyX2ZpbGUpIC0gMl0KLSAgICAgICAgICAgIGlmIHJlLm1h dGNoICgiLiotZ2x1ZSQiLCBtb2RuYW1lKToKLSAgICAgICAgICAgICAgICBtb2RuYW1lID0gbW9k bmFtZS5yZXBsYWNlICgiLWdsdWUiLCAiIikKLSAgICAgICAgICAgICAgICBpc2dsdWUgPSBUcnVl Ci0gICAgICAgICAgICBtb2RuYW1lID0gImdjcnlfJXMiICUgbW9kbmFtZQorICAgICAgICAgICAg bW9kbmFtZSA9ICJnY3J5XyVzIiAlIGNpcGhlcl9maWxlLnJlbW92ZXN1ZmZpeCgiLmMiKS5yZW1v dmVzdWZmaXgoIi1nbHVlIikucmVwbGFjZSgiLSIsICJfIikKICAgICAgICAgZm9yIGxpbmUgaW4g ZjoKICAgICAgICAgICAgIGxpbmUgPSBsaW5lCiAgICAgICAgICAgICBpZiBza2lwX3N0YXRlbWVu dDoKQEAgLTE3MSw3ICsyMDcsNyBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgog ICAgICAgICAgICAgICAgICAgICBza2lwMiA9IEZhbHNlCiAgICAgICAgICAgICAgICAgY29udGlu dWUKICAgICAgICAgICAgIGlmIGlzY3J5cHRvc3RhcnQ6Ci0gICAgICAgICAgICAgICAgcyA9IHJl LnNlYXJjaCAoIiAqXCIoW0EtWjAtOV9hLXpdKilcIiIsIGxpbmUpCisgICAgICAgICAgICAgICAg cyA9IHJlLnNlYXJjaCAoIiAqXCIoW0EtWjAtOV9hLXotXSopXCIiLCBsaW5lKQogICAgICAgICAg ICAgICAgIGlmIG5vdCBzIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgICAgIHNnID0gcy5ncm91 cHMoKVswXQogICAgICAgICAgICAgICAgICAgICBjcnlwdG9saXN0LndyaXRlICgoIiVzOiAlc1xu IikgJSAoc2csIG1vZG5hbWUpKQpAQCAtMjAxLDcgKzIzNyw3IEBAIGZvciBjaXBoZXJfZmlsZSBp biBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICAgICAgICAgIGlzcGsgPSBGYWxzZQogICAgICAg ICAgICAgICAgIGlzY29tbWEgPSBub3QgcmUuc2VhcmNoICgiLCQiLCBsaW5lKSBpcyBOb25lCiAg ICAgICAgICAgICAjIFVzZWQgb25seSBmb3Igc2VsZnRlc3RzLgotICAgICAgICAgICAgbSA9IHJl Lm1hdGNoICgiKHN0YXRpYyBieXRlfHN0YXRpYyB1bnNpZ25lZCBjaGFyKSAod2Vha19rZXlzX2No a3N1bSlcW1swLTldKlxdID0iLCBsaW5lKQorICAgICAgICAgICAgbSA9IHJlLm1hdGNoIChyIihz dGF0aWMgYnl0ZXxzdGF0aWMgdW5zaWduZWQgY2hhcnxzdGF0aWMgY29uc3QgZ2NyeV9tZF9zcGVj X3QgXCogY29uc3QpICh3ZWFrX2tleXNfY2hrc3VtfGRpZ2VzdF9saXN0KVxbWzAtOV0qXF0gPSIs IGxpbmUpCiAgICAgICAgICAgICBpZiBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAgICAgIHNr aXAgPSAxCiAgICAgICAgICAgICAgICAgZm5hbWUgPSBtLmdyb3VwcyAoKVsxXQpAQCAtMjEyLDEx ICsyNDgsMTQgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgICAg ICAgICAgICAgY2hsb2duZXcgPSAiJXMgJXMiICUgKGNobG9nbmV3LCBjaG1zZykKICAgICAgICAg ICAgICAgICAgICAgbmNoID0gVHJ1ZQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAg ICAgICBpZiAobm90IGhvbGQpIGFuZCAocmUubWF0Y2ggKHIiWyBcdF0qKHJ1bl9zZWxmdGVzdHN8 ZG9fdHJpcGxlZGVzX3NldF9leHRyYV9pbmZvKSw/IiwgbGluZSkgaXMgbm90IE5vbmUpOgorICAg ICAgICAgICAgICAgIGlzY29tbWEgPSBUcnVlCisgICAgICAgICAgICAgICAgbGluZSA9ICIiCiAg ICAgICAgICAgICBpZiBob2xkOgogICAgICAgICAgICAgICAgIGhvbGQgPSBGYWxzZQogICAgICAg ICAgICAgICAgICMgV2UncmUgb3B0aW1pc2luZyBmb3Igc2l6ZSBhbmQgZXhjbHVkZSBhbnl0aGlu ZyBuZWVkaW5nIGdvb2QKICAgICAgICAgICAgICAgICAjIHJhbmRvbW5lc3MuCi0gICAgICAgICAg ICAgICAgaWYgbm90IHJlLm1hdGNoICgiKHJ1bl9zZWxmdGVzdHN8c2VsZnRlc3R8X2djcnlfYWVz X2MuLl8uLmN8X2djcnlfW2EtejAtOV0qX2hhc2hfYnVmZmVyfHRyaXBsZWRlc19zZXQya2V5c3xk b190cmlwbGVkZXNfc2V0X2V4dHJhX2luZm98X2djcnlfcm1kMTYwX21peGJsb2NrfHNlcnBlbnRf dGVzdHxkc2FfZ2VuZXJhdGVfZXh0fHRlc3Rfa2V5c3xnZW5fa3xzaWdufGdlbl94OTMxX3Bhcm1f eHB8Z2VuZXJhdGVfeDkzMXxnZW5lcmF0ZV9rZXl8ZHNhX2dlbmVyYXRlfGRzYV9zaWdufGVjY19z aWdufGdlbmVyYXRlfGdlbmVyYXRlX2ZpcHMxODZ8X2djcnlfcmVnaXN0ZXJfcGtfZHNhX3Byb2dy ZXNzfF9nY3J5X3JlZ2lzdGVyX3BrX2VjY19wcm9ncmVzc3xwcm9ncmVzc3xzY2FudmFsfGVjMm9z fGVjY19nZW5lcmF0ZV9leHR8ZWNjX2dlbmVyYXRlfGNvbXB1dGVfa2V5Z3JpcHxlY2NfZ2V0X3Bh cmFtfF9nY3J5X3JlZ2lzdGVyX3BrX2RzYV9wcm9ncmVzc3xnZW5feDkzMV9wYXJtX3hwfGdlbl94 OTMxX3Bhcm1feGl8cnNhX2RlY3J5cHR8cnNhX3NpZ258cnNhX2dlbmVyYXRlX2V4dHxyc2FfZ2Vu ZXJhdGV8c2VjcmV0fGNoZWNrX2V4cG9uZW50fHJzYV9ibGluZHxyc2FfdW5ibGluZHxleHRyYWN0 X2FfZnJvbV9zZXhwfGN1cnZlX2ZyZWV8Y3VydmVfY29weXxwb2ludF9zZXQpIiwgbGluZSkgaXMg Tm9uZToKKyAgICAgICAgICAgICAgICBpZiByZS5tYXRjaCAoIihfZ2NyeV9oYXNoX3NlbGZ0ZXN0 X2NoZWNrX29uZXxidWxrX3NlbGZ0ZXN0X3NldGtleXxydW5fc2VsZnRlc3RzfGRvX3RyaXBsZWRl c19zZXRfZXh0cmFfaW5mb3xzZWxmdGVzdHxzbTRfc2VsZnRlc3R8X2djcnlfW2EtejAtOV9dKl9o YXNoX2J1ZmZlcnN8X2djcnlfc2hhMV9oYXNoX2J1ZmZlcnx0cmlwbGVkZXNfc2V0MmtleXN8X2dj cnlfcm1kMTYwX21peGJsb2NrfHNlcnBlbnRfdGVzdHxkc2FfZ2VuZXJhdGVfZXh0fHRlc3Rfa2V5 c3xnZW5fa3xzaWdufGdlbl94OTMxX3Bhcm1feHB8Z2VuZXJhdGVfeDkzMXxnZW5lcmF0ZV9rZXl8 ZHNhX2dlbmVyYXRlfGRzYV9zaWdufGVjY19zaWdufGdlbmVyYXRlfGdlbmVyYXRlX2ZpcHMxODZ8 X2djcnlfcmVnaXN0ZXJfcGtfZHNhX3Byb2dyZXNzfF9nY3J5X3JlZ2lzdGVyX3BrX2VjY19wcm9n cmVzc3xwcm9ncmVzc3xzY2FudmFsfGVjMm9zfGVjY19nZW5lcmF0ZV9leHR8ZWNjX2dlbmVyYXRl fGVjY19nZXRfcGFyYW18X2djcnlfcmVnaXN0ZXJfcGtfZHNhX3Byb2dyZXNzfGdlbl94OTMxX3Bh cm1feHB8Z2VuX3g5MzFfcGFybV94aXxyc2FfZGVjcnlwdHxyc2Ffc2lnbnxyc2FfZ2VuZXJhdGVf ZXh0fHJzYV9nZW5lcmF0ZXxzZWNyZXR8Y2hlY2tfZXhwb25lbnR8cnNhX2JsaW5kfHJzYV91bmJs aW5kfGV4dHJhY3RfYV9mcm9tX3NleHB8Y3VydmVfZnJlZXxjdXJ2ZV9jb3B5fHBvaW50X3NldHxf Z2NyeV9kc2FfZ2VuX3JmYzY5Nzlfa3xiaXRzMm9jdGV0c3xpbnQyb2N0ZXRzfG1kX2V4dHJhY3R8 X2djcnlfbWRfZGVidWd8X2djcnlfbWRfc2VsZnRlc3R8X2djcnlfbWRfaXNfZW5hYmxlZHxfZ2Ny eV9tZF9pc19zZWN1cmV8X2djcnlfbWRfaW5pdHxfZ2NyeV9tZF9pbmZvfF9nY3J5X21kX2dldF9h bGdvfG1kX2dldF9hbGdvfF9nY3J5X21kX2dldHxfZ2NyeV9tZF9leHRyYWN0fF9nY3J5X21kX3Nl dGtleXxtZF9zZXRrZXl8cHJlcGFyZV9tYWNwYWRzfF9nY3J5X21kX2FsZ29fbmFtZXxzZWFyY2hf b2lkfHNwZWNfZnJvbV9vaWR8c3BlY19mcm9tX25hbWV8c3BlY19mcm9tX2FsZ298bWFwX2FsZ28p IiwgbGluZSkgaXMgbm90IE5vbmU6CiAKICAgICAgICAgICAgICAgICAgICAgc2tpcCA9IDEKICAg ICAgICAgICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgic2VsZnRlc3QiLCBsaW5lKSBpcyBO b25lIGFuZCBjaXBoZXJfZmlsZSA9PSAiaWRlYS5jIjoKQEAgLTIyNCw2ICsyNjMsMTEgQEAgZm9y IGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKIAogICAgICAgICAgICAgICAgICAgICBpZiBu b3QgcmUubWF0Y2ggKCJzZXJwZW50X3Rlc3QiLCBsaW5lKSBpcyBOb25lOgogICAgICAgICAgICAg ICAgICAgICAgICAgZncud3JpdGUgKCJzdGF0aWMgY29uc3QgY2hhciAqc2VycGVudF90ZXN0ICh2 b2lkKSB7IHJldHVybiAwOyB9XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHJlLm1h dGNoICgic200X3NlbGZ0ZXN0IiwgbGluZSkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAg ICAgIGZ3LndyaXRlICgic3RhdGljIGNvbnN0IGNoYXIgKnNtNF9zZWxmdGVzdCAodm9pZCkgeyBy ZXR1cm4gMDsgfVxuIik7CisgICAgICAgICAgICAgICAgICAgIGhhc2hfYnVmID0gcmUubWF0Y2gg KCIoX2djcnlfW2EtejAtOV9dKl9oYXNoX2J1ZmZlcnMpIiwgbGluZSkKKyAgICAgICAgICAgICAg ICAgICAgaWYgaGFzaF9idWYgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBm dy53cml0ZSAoIiNkZWZpbmUgJXMgMCIgJSAoaGFzaF9idWYuZ3JvdXAoMCkpKQogICAgICAgICAg ICAgICAgICAgICBpZiBub3QgcmUubWF0Y2ggKCJkc2FfZ2VuZXJhdGUiLCBsaW5lKSBpcyBOb25l OgogICAgICAgICAgICAgICAgICAgICAgICAgZncud3JpdGUgKCIjZGVmaW5lIGRzYV9nZW5lcmF0 ZSAwIik7CiAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCByZS5tYXRjaCAoImVjY19nZW5lcmF0 ZSIsIGxpbmUpIGlzIE5vbmU6CkBAIC0yMzgsNiArMjgyLDEwIEBAIGZvciBjaXBoZXJfZmlsZSBp biBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiNkZWZp bmUgZHNhX3NpZ24gMCIpOwogICAgICAgICAgICAgICAgICAgICBpZiBub3QgcmUubWF0Y2ggKCJl Y2Nfc2lnbiIsIGxpbmUpIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgICAgICAgICBmdy53cml0 ZSAoIiNkZWZpbmUgZWNjX3NpZ24gMCIpOworICAgICAgICAgICAgICAgICAgICBpZiBub3QgcmUu bWF0Y2ggKCJzZWFyY2hfb2lkIiwgbGluZSkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAg ICAgIGZ3LndyaXRlICgiI2RlZmluZSBzZWFyY2hfb2lkKGEsYikgZ3J1Yl9jcnlwdG9fbG9va3Vw X21kX2J5X29pZChhKSIpCisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCByZS5tYXRjaCAoInNw ZWNfZnJvbV9uYW1lIiwgbGluZSkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ3 LndyaXRlICgiI2RlZmluZSBzcGVjX2Zyb21fbmFtZSBncnViX2NyeXB0b19sb29rdXBfbWRfYnlf bmFtZSIpCiAgICAgICAgICAgICAgICAgICAgIGZuYW1lID0gcmUubWF0Y2ggKCJbYS16QS1aMC05 X10qIiwgbGluZSkuZ3JvdXAgKCkKICAgICAgICAgICAgICAgICAgICAgY2htc2cgPSAiKCVzKTog UmVtb3ZlZC4iICUgZm5hbWUKICAgICAgICAgICAgICAgICAgICAgaWYgbmNoOgpAQCAtMjU3LDQ1 ICszMDUsNDYgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgICAg ICAgICAgICAgY2hsb2duZXcgPSAiJXM6ICVzIiAlIChjaGxvZ25ldywgY2htc2cpCiAgICAgICAg ICAgICAgICAgICAgIG5jaCA9IFRydWUKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAg ICAgICAgbSA9IHJlLm1hdGNoICgiZ2NyeV9jaXBoZXJfc3BlY190IiwgbGluZSkKKyAgICAgICAg ICAgIG0gPSByZS5tYXRjaCAoIihjb25zdCApP2djcnlfY2lwaGVyX3NwZWNfdCIsIGxpbmUpCiAg ICAgICAgICAgICBpZiBpc2MgYW5kIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgYXNz ZXJ0IChub3QgaXNtZCkKICAgICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBpc3BrKQogICAgICAg ICAgICAgICAgIGFzc2VydCAobm90IGlzY2lwaGVyKQogICAgICAgICAgICAgICAgIGFzc2VydCAo bm90IGlzY3J5cHRvc3RhcnQpCi0gICAgICAgICAgICAgICAgY2lwaGVybmFtZSA9IGxpbmUgW2xl biAoImdjcnlfY2lwaGVyX3NwZWNfdCIpOl0uc3RyaXAgKCkKKyAgICAgICAgICAgICAgICBjaXBo ZXJuYW1lID0gbGluZS5yZW1vdmVwcmVmaXgoImNvbnN0ICIpLnJlbW92ZXByZWZpeCgiZ2NyeV9j aXBoZXJfc3BlY190Iikuc3RyaXAgKCkKICAgICAgICAgICAgICAgICBjaXBoZXJuYW1lID0gcmUu bWF0Y2goIlthLXpBLVowLTlfXSoiLGNpcGhlcm5hbWUpLmdyb3VwICgpCiAgICAgICAgICAgICAg ICAgY2lwaGVybmFtZXMuYXBwZW5kIChjaXBoZXJuYW1lKQogICAgICAgICAgICAgICAgIGlzY2lw aGVyID0gVHJ1ZQogICAgICAgICAgICAgICAgIGlzY3J5cHRvc3RhcnQgPSBUcnVlCiAKLSAgICAg ICAgICAgIG0gPSByZS5tYXRjaCAoImdjcnlfcGtfc3BlY190IiwgbGluZSkKKyAgICAgICAgICAg IG0gPSByZS5tYXRjaCAoIihjb25zdCApP2djcnlfcGtfc3BlY190IiwgbGluZSkKICAgICAgICAg ICAgIGlmIGlzYyBhbmQgbm90IG0gaXMgTm9uZToKICAgICAgICAgICAgICAgICBhc3NlcnQgKG5v dCBpc21kKQogICAgICAgICAgICAgICAgIGFzc2VydCAobm90IGlzcGspCiAgICAgICAgICAgICAg ICAgYXNzZXJ0IChub3QgaXNjaXBoZXIpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNj cnlwdG9zdGFydCkKLSAgICAgICAgICAgICAgICBwa25hbWUgPSBsaW5lIFtsZW4gKCJnY3J5X3Br X3NwZWNfdCIpOl0uc3RyaXAgKCkKKyAgICAgICAgICAgICAgICBwa25hbWUgPSBsaW5lLnJlbW92 ZXByZWZpeCgiY29uc3QgIikucmVtb3ZlcHJlZml4KCJnY3J5X3BrX3NwZWNfdCIpLnN0cmlwICgp CiAgICAgICAgICAgICAgICAgcGtuYW1lID0gcmUubWF0Y2goIlthLXpBLVowLTlfXSoiLHBrbmFt ZSkuZ3JvdXAgKCkKICAgICAgICAgICAgICAgICBwa25hbWVzLmFwcGVuZCAocGtuYW1lKQogICAg ICAgICAgICAgICAgIGlzcGsgPSBUcnVlCiAgICAgICAgICAgICAgICAgaXNjcnlwdG9zdGFydCA9 IFRydWUKIAotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgiZ2NyeV9tZF9zcGVjX3QiLCBsaW5l KQorICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgiKGNvbnN0ICk/Z2NyeV9tZF9zcGVjX3QiLCBs aW5lKQogICAgICAgICAgICAgaWYgaXNjIGFuZCBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAg ICAgIGFzc2VydCAobm90IGlzbWQpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNwaykK ICAgICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBpc2NpcGhlcikKICAgICAgICAgICAgICAgICBh c3NlcnQgKG5vdCBpc2NyeXB0b3N0YXJ0KQotICAgICAgICAgICAgICAgIG1kbmFtZSA9IGxpbmUg W2xlbiAoImdjcnlfbWRfc3BlY190Iik6XS5zdHJpcCAoKQorICAgICAgICAgICAgICAgIGxpbmUg PSBsaW5lLnJlbW92ZXByZWZpeCgiY29uc3QgIikKKyAgICAgICAgICAgICAgICBtZG5hbWUgPSBs aW5lLnJlbW92ZXByZWZpeCgiY29uc3QgIikucmVtb3ZlcHJlZml4KCJnY3J5X21kX3NwZWNfdCIp LnN0cmlwICgpCiAgICAgICAgICAgICAgICAgbWRuYW1lID0gcmUubWF0Y2goIlthLXpBLVowLTlf XSoiLG1kbmFtZSkuZ3JvdXAgKCkKICAgICAgICAgICAgICAgICBtZG5hbWVzLmFwcGVuZCAobWRu YW1lKQogICAgICAgICAgICAgICAgIGlzbWQgPSBUcnVlCiAgICAgICAgICAgICAgICAgbWRhcmcg PSAwCiAgICAgICAgICAgICAgICAgaXNjcnlwdG9zdGFydCA9IFRydWUKLSAgICAgICAgICAgIG0g PSByZS5tYXRjaCAoInN0YXRpYyBjb25zdCBjaGFyIFwqc2VsZnRlc3QuKjskIiwgbGluZSkKKyAg ICAgICAgICAgIG0gPSByZS5tYXRjaCAociJzdGF0aWMgY29uc3QgY2hhciBcKnNlbGZ0ZXN0Lio7 JCIsIGxpbmUpCiAgICAgICAgICAgICBpZiBub3QgbSBpcyBOb25lOgotICAgICAgICAgICAgICAg IGZuYW1lID0gbGluZVtsZW4gKCJzdGF0aWMgY29uc3QgY2hhciBcKiIpOl0KKyAgICAgICAgICAg ICAgICBmbmFtZSA9IGxpbmVbbGVuIChyInN0YXRpYyBjb25zdCBjaGFyIFwqIik6XQogICAgICAg ICAgICAgICAgIGZuYW1lID0gcmUubWF0Y2ggKCJbYS16QS1aMC05X10qIiwgZm5hbWUpLmdyb3Vw ICgpCiAgICAgICAgICAgICAgICAgY2htc2cgPSAiKCVzKTogUmVtb3ZlZCBkZWNsYXJhdGlvbi4i ICUgZm5hbWUKICAgICAgICAgICAgICAgICBpZiBuY2g6CkBAIC0zMzEsNyArMzgwLDcgQEAgZm9y IGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgICAgICAgICAgICAgY2hsb2du ZXcgPSAiJXMgJXMiICUgKGNobG9nbmV3LCBjaG1zZykKICAgICAgICAgICAgICAgICAgICAgbmNo ID0gVHJ1ZQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBtID0gcmUubWF0 Y2ggKCJzdGF0aWMgdm9pZCBcKFwqcHJvZ3Jlc3NfY2JcKS4qOyQiLCBsaW5lKQorICAgICAgICAg ICAgbSA9IHJlLm1hdGNoIChyInN0YXRpYyB2b2lkIFwoXCpwcm9ncmVzc19jYlwpLio7JCIsIGxp bmUpCiAgICAgICAgICAgICBpZiBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAgICAgIGNobXNn ID0gIihwcm9ncmVzc19jYik6IFJlbW92ZWQgZGVjbGFyYXRpb24uIgogICAgICAgICAgICAgICAg IGlmIG5jaDoKQEAgLTM0MCw3ICszODksNyBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2Zp bGVzOgogICAgICAgICAgICAgICAgICAgICBjaGxvZ25ldyA9ICIlcyAlcyIgJSAoY2hsb2duZXcs IGNobXNnKQogICAgICAgICAgICAgICAgICAgICBuY2ggPSBUcnVlCiAgICAgICAgICAgICAgICAg Y29udGludWUKLSAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoInN0YXRpYyB2b2lkIFwqcHJvZ3Jl c3NfY2JfZGF0YS4qOyQiLCBsaW5lKQorICAgICAgICAgICAgbSA9IHJlLm1hdGNoIChyInN0YXRp YyB2b2lkIFwqcHJvZ3Jlc3NfY2JfZGF0YS4qOyQiLCBsaW5lKQogICAgICAgICAgICAgaWYgbm90 IG0gaXMgTm9uZToKICAgICAgICAgICAgICAgICBjaG1zZyA9ICIocHJvZ3Jlc3NfY2IpOiBSZW1v dmVkIGRlY2xhcmF0aW9uLiIKICAgICAgICAgICAgICAgICBpZiBuY2g6CkBAIC0zNTAsMjIgKzM5 OSwyMiBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAgICAg ICAgICBuY2ggPSBUcnVlCiAgICAgICAgICAgICAgICAgY29udGludWUKIAotICAgICAgICAgICAg bSA9IHJlLm1hdGNoICgiKHN0YXRpYyBjb25zdCBjaGFyKCB8KVwqfHN0YXRpYyBncGdfZXJyX2Nv ZGVfdHx2b2lkfHN0YXRpYyBpbnR8c3RhdGljIGdjcnlfZXJyX2NvZGVfdHxzdGF0aWMgZ2NyeV9t cGlfdHxzdGF0aWMgdm9pZHx2b2lkfHN0YXRpYyBlbGxpcHRpY19jdXJ2ZV90KSAqJCIsIGxpbmUp CisgICAgICAgICAgICBtID0gcmUubWF0Y2ggKHIiKChzdGF0aWMgKT9jb25zdCBjaGFyKCB8KVwq fHN0YXRpYyBjb25zdCBnY3J5X21kX3NwZWNfdCBcKnwoc3RhdGljICk/Z3BnX2Vycl9jb2RlX3R8 Z3BnX2Vycm9yX3R8dm9pZHwoc3RhdGljICk/aW50fChzdGF0aWMgKT9nY3J5X2Vycl9jb2RlX3R8 c3RhdGljIGdjcnlfbXBpX3R8c3RhdGljIHZvaWR8dm9pZHxzdGF0aWMgZWxsaXB0aWNfY3VydmVf dCkgKiQiLCBsaW5lKQogICAgICAgICAgICAgaWYgbm90IG0gaXMgTm9uZToKICAgICAgICAgICAg ICAgICBob2xkID0gVHJ1ZQogICAgICAgICAgICAgICAgIGhvbGRsaW5lID0gbGluZQogICAgICAg ICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBtID0gcmUubWF0Y2ggKCJzdGF0aWMgaW50 IHRyaXBsZWRlc19zZXQya2V5cyBcKC4qXCk7IiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5t YXRjaCAociJzdGF0aWMgaW50IHRyaXBsZWRlc19zZXQya2V5cyBcKC4qXCk7IiwgbGluZSkKICAg ICAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgY29udGludWUKLSAg ICAgICAgICAgIG0gPSByZS5tYXRjaCAoInN0YXRpYyBpbnQgdHJpcGxlZGVzX3NldDNrZXlzIFwo LipcKTsiLCBsaW5lKQorICAgICAgICAgICAgbSA9IHJlLm1hdGNoIChyInN0YXRpYyBpbnQgdHJp cGxlZGVzX3NldDNrZXlzIFwoLipcKTsiLCBsaW5lKQogICAgICAgICAgICAgaWYgbm90IG0gaXMg Tm9uZToKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNo ICgic3RhdGljIGludCB0cmlwbGVkZXNfc2V0MmtleXMgXCgiLCBsaW5lKQorICAgICAgICAgICAg bSA9IHJlLm1hdGNoIChyInN0YXRpYyBpbnQgdHJpcGxlZGVzX3NldDJrZXlzIFwoIiwgbGluZSkK ICAgICAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgc2tpcF9zdGF0 ZW1lbnQgPSBUcnVlCiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIG0gPSBy ZS5tYXRjaCAoInN0YXRpYyBpbnQgdHJpcGxlZGVzX3NldDNrZXlzIFwoIiwgbGluZSkKKyAgICAg ICAgICAgIG0gPSByZS5tYXRjaCAociJzdGF0aWMgaW50IHRyaXBsZWRlc19zZXQza2V5cyBcKCIs IGxpbmUpCiAgICAgICAgICAgICBpZiBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAgICAgIHNr aXBfc3RhdGVtZW50ID0gVHJ1ZQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCkBAIC00MjEsMTEg KzQ3MCw5IEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICAg ICAgY29udGludWUKICAgICAgICAgICAgIGZ3LndyaXRlIChsaW5lKQogICAgICAgICBpZiBsZW4g KGNpcGhlcm5hbWVzKSA+IDAgb3IgbGVuIChtZG5hbWVzKSA+IDAgb3IgbGVuIChwa25hbWVzKSA+ IDA6Ci0gICAgICAgICAgICBpZiBpc2dsdWU6Ci0gICAgICAgICAgICAgICAgbW9kZmlsZXMgPSAi bGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci8lcyBsaWIvbGliZ2NyeXB0LWdydWIvY2lwaGVyLyVz IiBcCi0gICAgICAgICAgICAgICAgICAgICUgKGNpcGhlcl9maWxlLCBjaXBoZXJfZmlsZS5yZXBs YWNlICgiLWdsdWUuYyIsICIuYyIpKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg ICBtb2RmaWxlcyA9ICJsaWIvbGliZ2NyeXB0LWdydWIvY2lwaGVyLyVzIiAlIGNpcGhlcl9maWxl CisgICAgICAgICAgICBtb2RmaWxlcyA9IFtjaXBoZXJfZmlsZV0KKyAgICAgICAgICAgIGlmIG1v ZG5hbWUgaW4gZXh0cmFfZmlsZXMua2V5cygpOgorICAgICAgICAgICAgICAgIG1vZGZpbGVzICs9 IGV4dHJhX2ZpbGVzW21vZG5hbWVdCiAgICAgICAgICAgICBpZiBsZW4gKGNpcGhlcm5hbWVzKSA+ IDAgb3IgbGVuIChtZG5hbWVzKSA+IDA6CiAgICAgICAgICAgICAgICAgbW9kdWxlc19zeW1fbWQu YXBwZW5kIChtb2RuYW1lKQogICAgICAgICAgICAgY2htc2cgPSAiKEdSVUJfTU9EX0lOSVQoJXMp KTogTmV3IGZ1bmN0aW9uXG4iICUgbW9kbmFtZQpAQCAtNDQ3LDcgKzQ5NCw3IEBAIGZvciBjaXBo ZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICAgICAgY2hsb2duZXcgPSAiJXNc bgklcyIgJSAoY2hsb2duZXcsIGNobXNnKQogICAgICAgICAgICAgICAgIGZ3LndyaXRlICgiICBn cnViX21kX3JlZ2lzdGVyICgmJXMpO1xuIiAlIG1kbmFtZSkKICAgICAgICAgICAgIGZvciBwa25h bWUgaW4gcGtuYW1lczoKLSAgICAgICAgICAgICAgICBjaG1zZyA9ICJSZWdpc3RlciBwayAlcyIg JSBtZG5hbWUKKyAgICAgICAgICAgICAgICBjaG1zZyA9ICJSZWdpc3RlciBwayAlcyIgJSBwa25h bWUKICAgICAgICAgICAgICAgICBjaGxvZ25ldyA9ICIlc1xuCSVzIiAlIChjaGxvZ25ldywgY2ht c2cpCiAgICAgICAgICAgICAgICAgZncud3JpdGUgKCIgIGdydWJfY3J5cHRvX3BrXyVzID0gJiVz O1xuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAlIChwa25hbWUucmVwbGFjZSAoIl9nY3J5 X3B1YmtleV9zcGVjXyIsICIiKSwgcGtuYW1lKSkKQEAgLTQ2NSwxNyArNTEyLDE3IEBAIGZvciBj aXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICAgICAgY2hsb2duZXcgPSAi JXNcbgklcyIgJSAoY2hsb2duZXcsIGNobXNnKQogICAgICAgICAgICAgICAgIGZ3LndyaXRlICgi ICBncnViX21kX3VucmVnaXN0ZXIgKCYlcyk7XG4iICUgbWRuYW1lKQogICAgICAgICAgICAgZm9y IHBrbmFtZSBpbiBwa25hbWVzOgotICAgICAgICAgICAgICAgIGNobXNnID0gIlVucmVnaXN0ZXIg cGsgJXMiICUgbWRuYW1lCisgICAgICAgICAgICAgICAgY2htc2cgPSAiVW5yZWdpc3RlciBwayAl cyIgJSBwa25hbWUKICAgICAgICAgICAgICAgICBjaGxvZ25ldyA9ICIlc1xuCSVzIiAlIChjaGxv Z25ldywgY2htc2cpCiAgICAgICAgICAgICAgICAgZncud3JpdGUgKCIgIGdydWJfY3J5cHRvX3Br XyVzID0gMDtcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAocGtuYW1lLnJlcGxhY2Ug KCJfZ2NyeV9wdWJrZXlfc3BlY18iLCAiIikpKQogICAgICAgICAgICAgZncud3JpdGUgKCJ9XG4i KQogICAgICAgICAgICAgY29uZi53cml0ZSAoIm1vZHVsZSA9IHtcbiIpCiAgICAgICAgICAgICBj b25mLndyaXRlICgiICBuYW1lID0gJXM7XG4iICUgbW9kbmFtZSkKLSAgICAgICAgICAgIGZvciBz cmMgaW4gbW9kZmlsZXMuc3BsaXQoKToKLSAgICAgICAgICAgICAgICBjb25mLndyaXRlICgiICBj b21tb24gPSAlcztcbiIgJSBzcmMpCisgICAgICAgICAgICBmb3Igc3JjIGluIG1vZGZpbGVzOgor ICAgICAgICAgICAgICAgIGNvbmYud3JpdGUgKCIgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHQtZ3J1 Yi9jaXBoZXIvJXM7XG4iICUgc3JjKQogICAgICAgICAgICAgICAgIGlmIGxlbiAoY2lwaGVybmFt ZXMpID4gMCBvciBsZW4gKG1kbmFtZXMpID4gMDoKLSAgICAgICAgICAgICAgICAgICAgY29uZnV0 aWwud3JpdGUgKCIgIGNvbW1vbiA9IGdydWItY29yZS8lcztcbiIgJSBzcmMpCisgICAgICAgICAg ICAgICAgICAgIGNvbmZ1dGlsLndyaXRlICgiICBjb21tb24gPSBncnViLWNvcmUvbGliL2xpYmdj cnlwdC1ncnViL2NpcGhlci8lcztcbiIgJSBzcmMpCiAgICAgICAgICAgICBpZiBtb2RuYW1lID09 ICJnY3J5X2VjYyI6CiAgICAgICAgICAgICAgICAgY29uZi53cml0ZSAoIiAgY29tbW9uID0gbGli L2xpYmdjcnlwdC1ncnViL21waS9lYy5jO1xuIikKICAgICAgICAgICAgICAgICBjb25mLndyaXRl ICgiICBjZmxhZ3MgPSAnJChDRkxBR1NfR0NSWSkgLVduby1yZWR1bmRhbnQtZGVjbHMgLVduby1z aWduLWNvbXBhcmUnO1xuIikKQEAgLTQ5MCw3ICs1MzcsNyBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4g Y2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAgZncuY2xvc2UgKCkKICAgICAgICAgICAgIGlmIG5j aDoKICAgICAgICAgICAgICAgICBjaGxvZyA9ICIlcyVzXG4iICUgKGNobG9nLCBjaGxvZ25ldykK LSAgICAgICAgZWxpZiBpc2MgYW5kIGNpcGhlcl9maWxlICE9ICJjYW1lbGxpYS5jIjoKKyAgICAg ICAgZWxpZiBpc2MgYW5kIGNpcGhlcl9maWxlIG5vdCBpbiBleHRyYV9maWxlc19saXN0OgogICAg ICAgICAgICAgcHJpbnQgKCJXQVJOSU5HOiBDIGZpbGUgaXNuJ3QgYSBtb2R1bGU6ICVzIiAlIGNp cGhlcl9maWxlKQogICAgICAgICAgICAgZi5jbG9zZSAoKQogICAgICAgICAgICAgZncuY2xvc2Ug KCkKQEAgLTUxMiw3ICs1NTksNyBAQCBmb3Igc3JjIGluIHNvcnRlZCAob3MubGlzdGRpciAob3Mu cGF0aC5qb2luIChpbmRpciwgInNyYyIpKSk6CiAgICAgICAgICAgICBvciBzcmMgPT0gImxpYmdj cnlwdC52ZXJzIiBvciBzcmMgPT0gIk1ha2VmaWxlLmFtIiBcCiAgICAgICAgICAgICBvciBzcmMg PT0gIk1hbmlmZXN0IiBvciBzcmMgPT0gIm1pc2MuYyIgXAogICAgICAgICAgICAgb3Igc3JjID09 ICJtaXNzaW5nLXN0cmluZy5jIiBvciBzcmMgPT0gIm1vZHVsZS5jIiBcCi0gICAgICAgICAgICBv ciBzcmMgPT0gInNlY21lbS5jIiBvciBzcmMgPT0gInNleHAuYyIgXAorICAgICAgICAgICAgb3Ig c3JjID09ICJzZWNtZW0uYyIgXAogICAgICAgICAgICAgb3Igc3JjID09ICJzdGRtZW0uYyIgb3Ig c3JjID09ICJ2aXNpYmlsaXR5LmMiOgogICAgICAgICBjb250aW51ZQogICAgIG91dGZpbGUgPSBv cy5wYXRoLmpvaW4gKGJhc2VkaXIsICJzcmMiLCBzcmMpCkBAIC01MzQsOCArNTgxLDE3IEBAIGZv ciBzcmMgaW4gc29ydGVkIChvcy5saXN0ZGlyIChvcy5wYXRoLmpvaW4gKGluZGlyLCAic3JjIikp KToKICAgICAgICAgZncuY2xvc2UgKCkKICAgICAgICAgY29udGludWUKIAorICAgIGlmIHNyYyA9 PSAiY2lwaGVyLXByb3RvLmgiOgorICAgICAgICBmdy53cml0ZSgiI2luY2x1ZGUgPGdydWIvY3J5 cHRvLmg+XG4iKQorICAgICAgICBmdy53cml0ZSgidHlwZWRlZiBnY3J5X3NlbGZ0ZXN0X2Z1bmNf dCBzZWxmdGVzdF9mdW5jX3Q7IikKKyAgICAgICAgZi5jbG9zZSAoKQorICAgICAgICBmdy5jbG9z ZSAoKQorICAgICAgICBjb250aW51ZQorCiAgICAgaWYgc3JjID09ICJnMTBsaWIuaCI6Ci0gICAg ICAgIGZ3LndyaXRlIChmLnJlYWQgKCkucmVwbGFjZSAoIihwcmludGYsZixhKSIsICIoX19wcmlu dGZfXyxmLGEpIikpCisgICAgICAgIGZ3LndyaXRlKCIjaW5jbHVkZSA8Y2lwaGVyX3dyYXAuaD5c biIpCisgICAgICAgIGZ3LndyaXRlKCIjaW5jbHVkZSA8Z3J1Yi9jcnlwdG8uaD5cbiIpCisgICAg ICAgIGZ3LndyaXRlIChmLnJlYWQgKCkucmVwbGFjZSAoIihwcmludGYsZixhKSIsICIoX19wcmlu dGZfXyxmLGEpIikucmVwbGFjZSAoIiNpbmNsdWRlIFwiLi4vY29tcGF0L2xpYmNvbXBhdC5oXCIi LCAiIikucmVwbGFjZSgiI2RlZmluZSBOXyhhKSAoYSkiLCAiIikpCiAgICAgICAgIGYuY2xvc2Ug KCkKICAgICAgICAgZncuY2xvc2UgKCkKICAgICAgICAgY29udGludWUKQEAgLTU0Niw3ICs2MDIs NyBAQCBmb3Igc3JjIGluIHNvcnRlZCAob3MubGlzdGRpciAob3MucGF0aC5qb2luIChpbmRpciwg InNyYyIpKSk6CiAKIGZvciBzcmMgaW4gc29ydGVkIChvcy5saXN0ZGlyIChvcy5wYXRoLmpvaW4g KGluZGlyLCAibXBpIikpKToKICAgICBpZiBzcmMgPT0gImNvbmZpZy5saW5rcyIgb3Igc3JjID09 ICJDaGFuZ2VMb2ctMjAxMSIgXAotICAgICAgICAgICAgb3Igc3JjID09ICJtcGktc2Nhbi5jIiBv ciBzcmMgPT0gIk1hbmlmZXN0IiBcCisgICAgICAgICAgICBvciBzcmMgPT0gIk1hbmlmZXN0IiBc CiAgICAgICAgICAgICBvciBzcmMgPT0gIk1ha2VmaWxlLmFtIjoKICAgICAgICAgY29udGludWUK ICAgICBpbmZpbGUgPSBvcy5wYXRoLmpvaW4gKGluZGlyLCAibXBpIiwgc3JjKQpAQCAtNTY4LDE3 ICs2MjQsMTcgQEAgZm9yIHNyYyBpbiBzb3J0ZWQgKG9zLmxpc3RkaXIgKG9zLnBhdGguam9pbiAo aW5kaXIsICJtcGkiKSkpOgogICAgICAgICAgICAgaG9sZCA9IEZhbHNlCiAgICAgICAgICAgICAj IFdlJ3JlIG9wdGltaXNpbmcgZm9yIHNpemUgYW5kIGV4Y2x1ZGUgYW55dGhpbmcgbmVlZGluZyBn b29kCiAgICAgICAgICAgICAjIHJhbmRvbW5lc3MuCi0gICAgICAgICAgICBpZiBub3QgcmUubWF0 Y2ggKCIoX2djcnlfbXBpX2dldF9od19jb25maWd8Z2NyeV9tcGlfcmFuZG9taXplKSIsIGxpbmUp IGlzIE5vbmU6CisgICAgICAgICAgICBpZiBub3QgcmUubWF0Y2ggKCIoX2djcnlfbXBpX2dldF9o d19jb25maWd8Z2NyeV9tcGlfcmFuZG9taXplfF9nY3J5X21waV9yYW5kb21pemUpIiwgbGluZSkg aXMgTm9uZToKICAgICAgICAgICAgICAgICBza2lwID0gMQogICAgICAgICAgICAgICAgIGNvbnRp bnVlCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGZ3LndyaXRlIChob2xkbGlu ZSkKLSAgICAgICAgbSA9IHJlLm1hdGNoICgiKGNvbnN0IGNoYXIoIHwpXCp8dm9pZCkgKiQiLCBs aW5lKQorICAgICAgICBtID0gcmUubWF0Y2ggKHIiKGNvbnN0IGNoYXIoIHwpXCp8dm9pZCkgKiQi LCBsaW5lKQogICAgICAgICBpZiBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAgaG9sZCA9IFRy dWUKICAgICAgICAgICAgIGhvbGRsaW5lID0gbGluZQogICAgICAgICAgICAgY29udGludWUKLSAg ICAgICAgbSA9IHJlLm1hdGNoICgiI2luY2x1ZGUgXCJtb2Qtc291cmNlLWluZm9cLmhcIiIsIGxp bmUpCisgICAgICAgIG0gPSByZS5tYXRjaCAociIjaW5jbHVkZSBcIm1vZC1zb3VyY2UtaW5mb1wu aFwiIiwgbGluZSkKICAgICAgICAgaWYgbm90IG0gaXMgTm9uZToKICAgICAgICAgICAgIGNvbnRp bnVlCiAgICAgICAgIGZ3LndyaXRlIChsaW5lKQpAQCAtNjEyLDkgKzY2OCw2IEBAIGZ3LndyaXRl ICgiI2luY2x1ZGUgPGNpcGhlcl93cmFwLmg+XG4iKQogY2hsb2cgPSAiJXMJKiBnMTBsaWIuaDog TGlrZXdpc2UuXG4iICUgY2hsb2cKIGZ3LmNsb3NlICgpCiAKLWluZmlsZSA9IG9zLnBhdGguam9p biAoY2lwaGVyX2Rpcl9pbiwgIkNoYW5nZUxvZyIpCi1vdXRmaWxlID0gb3MucGF0aC5qb2luIChj aXBoZXJfZGlyX291dCwgIkNoYW5nZUxvZyIpCi0KIGNvbmYuY2xvc2UgKCk7CiAKIGluaXRmaWxl ID0gY29kZWNzLm9wZW4gKG9zLnBhdGguam9pbiAoY2lwaGVyX2Rpcl9vdXQsICJpbml0LmMiKSwg InciLCAidXRmLTgiKQpAQCAtNjQzLDcgKzY5Niw3IEBAIGNvbmZ1dGlsLndyaXRlICgifTtcbiIp OwogY29uZnV0aWwuY2xvc2UgKCk7CiAKIAotZj1jb2RlY3Mub3BlbiAoaW5maWxlLCAiciIsICJ1 dGYtOCIpCitvdXRmaWxlID0gb3MucGF0aC5qb2luIChjaXBoZXJfZGlyX291dCwgIkNoYW5nZUxv ZyIpCiBmdz1jb2RlY3Mub3BlbiAob3V0ZmlsZSwgInciLCAidXRmLTgiKQogZHQgPSBkYXRldGlt ZS5kYXRlLnRvZGF5ICgpCiBmdy53cml0ZSAoIiUwNGQtJTAyZC0lMDJkICBBdXRvbWF0aWMgaW1w b3J0IHRvb2xcbiIgJSBcCkBAIC02NTMsNyArNzA2LDQgQEAgZncud3JpdGUgKCIJSW1wb3J0ZWQg Y2lwaGVycyB0byBHUlVCXG4iKQogZncud3JpdGUgKCJcbiIpCiBmdy53cml0ZSAoY2hsb2cpCiBm dy53cml0ZSAoIlxuIikKLWZvciBsaW5lIGluIGY6Ci0gICAgZncud3JpdGUgKGxpbmUpCi1mLmNs b3NlICgpCiBmdy5jbG9zZSAoKQpkaWZmIC0tZ2l0IGEvdXRpbC9pbXBvcnRfZ2NyeXB0X2ludGgu c2VkIGIvdXRpbC9pbXBvcnRfZ2NyeXB0X2ludGguc2VkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMC4uZWJlOTM3MWVlCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC9pbXBvcnRf Z2NyeXB0X2ludGguc2VkCkBAIC0wLDAgKzEsMTcgQEAKKy9eI0BJTlNFUlRfU1lTX1NFTEVDVF9I QC8gZAorL15ARkFMTEJBQ0tfU09DS0xFTl9UQC8gZAorL14jICppbmNsdWRlIDxzdGRsaWJcLmg+ LyBkCisvXiMgKmluY2x1ZGUgPHN0cmluZ1wuaD4vIGQKKy9eIyAqaW5jbHVkZSA8d2luc29jazJc Lmg+LyBkCisvXiMgKmluY2x1ZGUgPHdzMnRjcGlwXC5oPi8gZAorL14jICppbmNsdWRlIDx0aW1l XC5oPi8gZAorL14jICppbmNsdWRlIDxzeXNcL3NvY2tldFwuaD4vIGQKKy9eIyAqaW5jbHVkZSA8 c3lzXC90aW1lXC5oPi8gZAorL14gIHR5cGVkZWYgbG9uZyBzc2l6ZV90Oy8gZAorL14gIHR5cGVk ZWYgaW50ICBwaWRfdDsvIGQKKy9eIyAqaW5jbHVkZSA8Z3BnLWVycm9yXC5oPi8gcywjaW5jbHVk ZSA8Z3BnLWVycm9yLmg+LCNpbmNsdWRlIDxncnViL2djcnlwdC9ncGctZXJyb3IuaD4sCisvXnR5 cGVkZWYgZ3BnX2Vycm9yX3QgZ2NyeV9lcnJvcl90Oy8gZAorL150eXBlZGVmIGdwZ19lcnJfY29k ZV90IGdjcnlfZXJyX2NvZGVfdDsvIGQKKy9edHlwZWRlZiBzdHJ1Y3QgZ2NyeV9tcGkgXCpnY3J5 X21waV90Oy8gZAorL14jZXJyb3IgIGdjcnlwdC5oIGFscmVhZHkgaW5jbHVkZWQvIGQKK3AKZGlm ZiAtLWdpdCBhL3V0aWwvaW1wb3J0X2djcnlwdGguc2VkIGIvdXRpbC9pbXBvcnRfZ2NyeXB0aC5z ZWQKaW5kZXggZmU2ZDFhMDcyLi41MDNiNGI1NDcgMTAwNjQ0Ci0tLSBhL3V0aWwvaW1wb3J0X2dj cnlwdGguc2VkCisrKyBiL3V0aWwvaW1wb3J0X2djcnlwdGguc2VkCkBAIC0xMyw2ICsxMyw0IEBA CiAvXnR5cGVkZWYgZ3BnX2Vycm9yX3QgZ2NyeV9lcnJvcl90Oy8gZAogL150eXBlZGVmIGdwZ19l cnJfY29kZV90IGdjcnlfZXJyX2NvZGVfdDsvIGQKIC9edHlwZWRlZiBzdHJ1Y3QgZ2NyeV9tcGkg XCpnY3J5X21waV90Oy8gZAotL15zdHJ1Y3QgZ2NyeV90aHJlYWRfY2JzLyBkCi1zLF9nY3J5X21w aV9pbnZtLGdjcnlfbXBpX2ludm0sZwogcApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKLS0g CjIuMzkuMgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkdydWItZGV2ZWwgbWFpbGluZyBsaXN0CkdydWItZGV2ZWxAZ251Lm9yZwpodHRwczovL2xpc3Rz LmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9ncnViLWRldmVsCg==