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 X-Spam-Level: X-Spam-Status: No, score=-9.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5D4A9ECE58E for ; Mon, 7 Oct 2019 15:15:25 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 23AC12070B for ; Mon, 7 Oct 2019 15:15:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Xwj2x5B+" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 23AC12070B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iHUj5-0007tP-VQ; Mon, 07 Oct 2019 15:15:07 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iHUj4-0007sJ-Q9 for xen-devel@lists.xenproject.org; Mon, 07 Oct 2019 15:15:06 +0000 X-Inumbo-ID: 0c9fa8d0-e915-11e9-9bee-bc764e2007e4 Received: from mail-qk1-x741.google.com (unknown [2607:f8b0:4864:20::741]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 0c9fa8d0-e915-11e9-9bee-bc764e2007e4; Mon, 07 Oct 2019 15:13:42 +0000 (UTC) Received: by mail-qk1-x741.google.com with SMTP id h126so12881434qke.10 for ; Mon, 07 Oct 2019 08:13:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3NK2iVPX52TZ2Khs2H1T1nbwaCHGNOhE5c2CNQ/BWI0=; b=Xwj2x5B+naqLB2RKBf+gCGb9mlc+WInY34tbhmmatjTJO0zhWn+DAncF0vqzRpHpad Qn8JCG5coasPVk0AQS1lll2hV5loeRI/7L+W0erfYJfdu8Ku8fSJ4pA1uENl+oQpckzA 2BxTJkO4P6pyPJAXyEdhZ78rfLCUqAwBVbAEagac+WrO1t30iAvSLwHwg6oZoBNp11Le dLH58YNy4oP8fKOmxmk7FsrpkDROapXCuLqU8oiNYsgshqQ7BN5HvT+rB0LSBuS75wbO aX3jLDoheY+SjbsDdxNC/6uWigtEtp5QE6FLTTBDuxrAwPnLB+sYSRpDuDoxWKtmecuu tBcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3NK2iVPX52TZ2Khs2H1T1nbwaCHGNOhE5c2CNQ/BWI0=; b=qh48to/TG+f/AHtw4qxFlFJoJE7WgCsbdKVMQbc76TxNXmGBrAHl757GNuNOP9g6rt bBN6YHOZjl56dYCXoyBIeTwCs3Ki2OaCxJq3ArXLarKAPN58CKwdU+qSBHkIHHxIX2tk gAOc4WdkD0noLwy9cIXT+ZvGjLn2nmNH4TE7MnBKvkcX4p4KZIbJkbK+TdQW7m7VY3Qx B9PjxZNOXD56p1adhkcWkwcJgxLt0Irql+Ci9FhRi0Fg3y2+mc06m0T6H7GojblNn6gA 2Nj4hsY1fCiMHdhzLKeFlpwFQJhXdsaUq75fykOTHVW/lImL5TECkRtnqiHM9/eaeLaU 9r2Q== X-Gm-Message-State: APjAAAX2EoWRtExdOI4bPC7pbJUnp2oMeXIDuffnKmmjxBKonjq61T63 KH2a+3s6EIpqxpHQ7pFmxXCnEkYx X-Google-Smtp-Source: APXvYqyAJE9UBDD+dY61D1pjaJBDh5WNZMksJLdv9TnnA5YgGTfUSeV03794OafqA2Yg31RxkQt/cQ== X-Received: by 2002:a37:4e48:: with SMTP id c69mr23557837qkb.182.1570461221941; Mon, 07 Oct 2019 08:13:41 -0700 (PDT) Received: from five.crux.rad.ainfosec.com (209-217-208-226.northland.net. [209.217.208.226]) by smtp.googlemail.com with ESMTPSA id c185sm8354313qkg.74.2019.10.07.08.13.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Oct 2019 08:13:41 -0700 (PDT) From: Nick Rosbrook To: xen-devel@lists.xenproject.org Date: Mon, 7 Oct 2019 11:13:09 -0400 Message-Id: <8e98996ecacbd56d7802df346a0f500475bf79cc.1570456846.git.rosbrookn@ainfosec.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: References: MIME-Version: 1.0 Subject: [Xen-devel] [PATCH 22/24] golang/xenlight: revise use of Context type X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Nick Rosbrook , Ian Jackson , kerriganb@ainfosec.com, George Dunlap , Wei Liu Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" RnJvbTogTmljayBSb3Nicm9vayA8cm9zYnJvb2tuQGFpbmZvc2VjLmNvbT4KClJlbW92ZSB0aGUg ZXhwb3J0ZWQgZ2xvYmFsIGNvbnRleHQgdmFyaWFibGUsICdDdHguJyBHZW5lcmFsbHksIGl0IGlz CmJldHRlciB0byBub3QgZXhwb3J0IGdsb2JhbCB2YXJpYWJsZXMgZm9yIHVzZSB0aHJvdWdoIGEg R28gcGFja2FnZS4KSG93ZXZlciwgdGhlcmUgYXJlIHNvbWUgZXhjZXB0aW9ucyB0aGF0IGNhbiBi ZSBmb3VuZCBpbiB0aGUgc3RhbmRhcmQKbGlicmFyeS4KCkFkZCBhIE5ld0NvbnRleHQgZnVuY3Rp b24gaW5zdGVhZCwgYW5kIHJlbW92ZSB0aGUgT3BlbiwgSXNPcGVuLCBhbmQKQ2hlY2tPcGVuIGZ1 bmN0aW9ucyBhcyBhIHJlc3VsdC4KCkFsc28sIGNvbW1lbnQtb3V0IGFuIGluZWZmZWN0dWFsIGFz c2lnbm1lbnQgdG8gJ2VycicgaW5zaWRlIHRoZSBmdW5jdGlvbgpDb250ZXh0LkNwdXBvb2xJbmZv IHNvIHRoYXQgY29tcGlsYXRpb24gZG9lcyBub3QgZmFpbC4KClNpZ25lZC1vZmYtYnk6IE5pY2sg Um9zYnJvb2sgPHJvc2Jyb29rbkBhaW5mb3NlYy5jb20+Ci0tLQpDYzogR2VvcmdlIER1bmxhcCA8 Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPgpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1 LmNpdHJpeC5jb20+CkNjOiBXZWkgTGl1IDx3bEB4ZW4ub3JnPgoKIHRvb2xzL2dvbGFuZy94ZW5s aWdodC94ZW5saWdodC5nbyB8IDIxOSArKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAxODUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3hlbmxpZ2h0LmdvIGIvdG9vbHMvZ29sYW5nL3hl bmxpZ2h0L3hlbmxpZ2h0LmdvCmluZGV4IGE4ZjkzM2M3NWYuLmU1NDBiNTQxM2QgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2dvbGFuZy94ZW5saWdodC94ZW5saWdodC5nbworKysgYi90b29scy9nb2xhbmcv eGVubGlnaHQveGVubGlnaHQuZ28KQEAgLTc0LDYgKzc0LDM5IEBAIGZ1bmMgKGUgRXJyb3IpIEVy cm9yKCkgc3RyaW5nIHsKIAlyZXR1cm4gZm10LlNwcmludGYoImxpYnhsIGVycm9yOiAlZCIsIC1l KQogfQogCisvLyBDb250ZXh0IHJlcHJlc2VudHMgYSBsaWJ4bF9jdHguCit0eXBlIENvbnRleHQg c3RydWN0IHsKKwljdHggICAgKkMubGlieGxfY3R4CisJbG9nZ2VyICpDLnhlbnRvb2xsb2dfbG9n Z2VyX3N0ZGlvc3RyZWFtCit9CisKKy8vIE5ld0NvbnRleHQgcmV0dXJucyBhIG5ldyBDb250ZXh0 LgorZnVuYyBOZXdDb250ZXh0KCkgKCpDb250ZXh0LCBlcnJvcikgeworCXZhciBjdHggQ29udGV4 dAorCisJY3R4LmxvZ2dlciA9IEMueHRsX2NyZWF0ZWxvZ2dlcl9zdGRpb3N0cmVhbShDLnN0ZGVy ciwgQy5YVExfRVJST1IsIDApCisKKwlyZXQgOj0gQy5saWJ4bF9jdHhfYWxsb2MoJmN0eC5jdHgs IEMuTElCWExfVkVSU0lPTiwgMCwgKCpDLnhlbnRvb2xsb2dfbG9nZ2VyKSh1bnNhZmUuUG9pbnRl cihjdHgubG9nZ2VyKSkpCisJaWYgcmV0ICE9IDAgeworCQlyZXR1cm4gbmlsLCBFcnJvcihyZXQp CisJfQorCisJcmV0dXJuICZjdHgsIG5pbAorfQorCisvLyBDbG9zZSBjbG9zZXMgdGhlIENvbnRl eHQuCitmdW5jIChjdHggKkNvbnRleHQpIENsb3NlKCkgZXJyb3IgeworCXJldCA6PSBDLmxpYnhs X2N0eF9mcmVlKGN0eC5jdHgpCisJY3R4LmN0eCA9IG5pbAorCUMueHRsX2xvZ2dlcl9kZXN0cm95 KCgqQy54ZW50b29sbG9nX2xvZ2dlcikodW5zYWZlLlBvaW50ZXIoY3R4LmxvZ2dlcikpKQorCisJ aWYgcmV0ICE9IDAgeworCQlyZXR1cm4gRXJyb3IocmV0KQorCX0KKworCXJldHVybiBuaWwKK30K KwogLyoKICAqIFR5cGVzOiBCdWlsdGlucwogICovCkBAIC0yOTksMTEgKzMzMiw2IEBAIGZ1bmMg KGNwbCAqQ3B1aWRQb2xpY3lMaXN0KSB0b0MoKSAoQy5saWJ4bF9jcHVpZF9wb2xpY3lfbGlzdCwg ZXJyb3IpIHsKIAlyZXR1cm4gKmNjcGwsIG5pbAogfQogCi10eXBlIENvbnRleHQgc3RydWN0IHsK LQljdHggICAgKkMubGlieGxfY3R4Ci0JbG9nZ2VyICpDLnhlbnRvb2xsb2dfbG9nZ2VyX3N0ZGlv c3RyZWFtCi19Ci0KIC8vIEh3Y2FwIHJlcHJlc2VudHMgYSBsaWJ4bF9od2NhcC4KIHR5cGUgSHdj YXAgWzhddWludDMyCiAKQEAgLTQ4MCwxMSArNTA4LDYgQEAgZnVuYyBTY2hlZHVsZXJGcm9tU3Ry aW5nKG5hbWUgc3RyaW5nKSAocyBTY2hlZHVsZXIsIGVyciBlcnJvcikgewogLy8gbGlieGxfY3B1 cG9vbGluZm8gKiBsaWJ4bF9saXN0X2NwdXBvb2wobGlieGxfY3R4KiwgaW50ICpuYl9wb29sX291 dCk7CiAvLyB2b2lkIGxpYnhsX2NwdXBvb2xpbmZvX2xpc3RfZnJlZShsaWJ4bF9jcHVwb29saW5m byAqbGlzdCwgaW50IG5iX3Bvb2wpOwogZnVuYyAoQ3R4ICpDb250ZXh0KSBMaXN0Q3B1cG9vbCgp IChsaXN0IFtdQ3B1cG9vbGluZm8pIHsKLQllcnIgOj0gQ3R4LkNoZWNrT3BlbigpCi0JaWYgZXJy ICE9IG5pbCB7Ci0JCXJldHVybgotCX0KLQogCXZhciBuYlBvb2wgQy5pbnQKIAogCWNfY3B1cG9v bF9saXN0IDo9IEMubGlieGxfbGlzdF9jcHVwb29sKEN0eC5jdHgsICZuYlBvb2wpCkBAIC01MDgs MTYgKzUzMSwxMSBAQCBmdW5jIChDdHggKkNvbnRleHQpIExpc3RDcHVwb29sKCkgKGxpc3QgW11D cHVwb29saW5mbykgewogCiAvLyBpbnQgbGlieGxfY3B1cG9vbF9pbmZvKGxpYnhsX2N0eCAqY3R4 LCBsaWJ4bF9jcHVwb29saW5mbyAqaW5mbywgdWludDMyX3QgcG9vbGlkKTsKIGZ1bmMgKEN0eCAq Q29udGV4dCkgQ3B1cG9vbEluZm8oUG9vbGlkIHVpbnQzMikgKHBvb2wgQ3B1cG9vbGluZm8pIHsK LQllcnIgOj0gQ3R4LkNoZWNrT3BlbigpCi0JaWYgZXJyICE9IG5pbCB7Ci0JCXJldHVybgotCX0K LQogCXZhciBjX2NwdXBvb2wgQy5saWJ4bF9jcHVwb29saW5mbwogCiAJcmV0IDo9IEMubGlieGxf Y3B1cG9vbF9pbmZvKEN0eC5jdHgsICZjX2NwdXBvb2wsIEMudWludDMyX3QoUG9vbGlkKSkKIAlp ZiByZXQgIT0gMCB7Ci0JCWVyciA9IEVycm9yKC1yZXQpCisJCS8vZXJyID0gRXJyb3IoLXJldCkK IAkJcmV0dXJuCiAJfQogCWRlZmVyIEMubGlieGxfY3B1cG9vbGluZm9fZGlzcG9zZSgmY19jcHVw b29sKQpAQCAtNTM0LDExICs1NTIsNiBAQCBmdW5jIChDdHggKkNvbnRleHQpIENwdXBvb2xJbmZv KFBvb2xpZCB1aW50MzIpIChwb29sIENwdXBvb2xpbmZvKSB7CiAvLyBGSVhNRTogdXVpZAogLy8g RklYTUU6IFNldHRpbmcgcG9vbGlkCiBmdW5jIChDdHggKkNvbnRleHQpIENwdXBvb2xDcmVhdGUo TmFtZSBzdHJpbmcsIFNjaGVkdWxlciBTY2hlZHVsZXIsIENwdW1hcCBCaXRtYXApIChlcnIgZXJy b3IsIFBvb2xpZCB1aW50MzIpIHsKLQllcnIgPSBDdHguQ2hlY2tPcGVuKCkKLQlpZiBlcnIgIT0g bmlsIHsKLQkJcmV0dXJuCi0JfQotCiAJcG9vbGlkIDo9IEMudWludDMyX3QoQy5MSUJYTF9DUFVQ T09MX1BPT0xJRF9BTlkpCiAJbmFtZSA6PSBDLkNTdHJpbmcoTmFtZSkKIAlkZWZlciBDLmZyZWUo dW5zYWZlLlBvaW50ZXIobmFtZSkpCkBAIC01NjcsMTEgKzU4MCw2IEBAIGZ1bmMgKEN0eCAqQ29u dGV4dCkgQ3B1cG9vbENyZWF0ZShOYW1lIHN0cmluZywgU2NoZWR1bGVyIFNjaGVkdWxlciwgQ3B1 bWFwIEJpdG1hCiAKIC8vIGludCBsaWJ4bF9jcHVwb29sX2Rlc3Ryb3kobGlieGxfY3R4ICpjdHgs IHVpbnQzMl90IHBvb2xpZCk7CiBmdW5jIChDdHggKkNvbnRleHQpIENwdXBvb2xEZXN0cm95KFBv b2xpZCB1aW50MzIpIChlcnIgZXJyb3IpIHsKLQllcnIgPSBDdHguQ2hlY2tPcGVuKCkKLQlpZiBl cnIgIT0gbmlsIHsKLQkJcmV0dXJuCi0JfQotCiAJcmV0IDo9IEMubGlieGxfY3B1cG9vbF9kZXN0 cm95KEN0eC5jdHgsIEMudWludDMyX3QoUG9vbGlkKSkKIAlpZiByZXQgIT0gMCB7CiAJCWVyciA9 IEVycm9yKC1yZXQpCkBAIC01ODMsMTEgKzU5MSw2IEBAIGZ1bmMgKEN0eCAqQ29udGV4dCkgQ3B1 cG9vbERlc3Ryb3koUG9vbGlkIHVpbnQzMikgKGVyciBlcnJvcikgewogCiAvLyBpbnQgbGlieGxf Y3B1cG9vbF9jcHVhZGQobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IHBvb2xpZCwgaW50IGNwdSk7 CiBmdW5jIChDdHggKkNvbnRleHQpIENwdXBvb2xDcHVhZGQoUG9vbGlkIHVpbnQzMiwgQ3B1IGlu dCkgKGVyciBlcnJvcikgewotCWVyciA9IEN0eC5DaGVja09wZW4oKQotCWlmIGVyciAhPSBuaWwg ewotCQlyZXR1cm4KLQl9Ci0KIAlyZXQgOj0gQy5saWJ4bF9jcHVwb29sX2NwdWFkZChDdHguY3R4 LCBDLnVpbnQzMl90KFBvb2xpZCksIEMuaW50KENwdSkpCiAJaWYgcmV0ICE9IDAgewogCQllcnIg PSBFcnJvcigtcmV0KQpAQCAtNjAwLDExICs2MDMsNiBAQCBmdW5jIChDdHggKkNvbnRleHQpIENw dXBvb2xDcHVhZGQoUG9vbGlkIHVpbnQzMiwgQ3B1IGludCkgKGVyciBlcnJvcikgewogLy8gaW50 IGxpYnhsX2NwdXBvb2xfY3B1YWRkX2NwdW1hcChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgcG9v bGlkLAogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9iaXRt YXAgKmNwdW1hcCk7CiBmdW5jIChDdHggKkNvbnRleHQpIENwdXBvb2xDcHVhZGRDcHVtYXAoUG9v bGlkIHVpbnQzMiwgQ3B1bWFwIEJpdG1hcCkgKGVyciBlcnJvcikgewotCWVyciA9IEN0eC5DaGVj a09wZW4oKQotCWlmIGVyciAhPSBuaWwgewotCQlyZXR1cm4KLQl9Ci0KIAljYm0sIGVyciA6PSBD cHVtYXAudG9DKCkKIAlpZiBlcnIgIT0gbmlsIHsKIAkJcmV0dXJuCkBAIC02MjIsMTEgKzYyMCw2 IEBAIGZ1bmMgKEN0eCAqQ29udGV4dCkgQ3B1cG9vbENwdWFkZENwdW1hcChQb29saWQgdWludDMy LCBDcHVtYXAgQml0bWFwKSAoZXJyIGVycm9yCiAKIC8vIGludCBsaWJ4bF9jcHVwb29sX2NwdXJl bW92ZShsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgcG9vbGlkLCBpbnQgY3B1KTsKIGZ1bmMgKEN0 eCAqQ29udGV4dCkgQ3B1cG9vbENwdXJlbW92ZShQb29saWQgdWludDMyLCBDcHUgaW50KSAoZXJy IGVycm9yKSB7Ci0JZXJyID0gQ3R4LkNoZWNrT3BlbigpCi0JaWYgZXJyICE9IG5pbCB7Ci0JCXJl dHVybgotCX0KLQogCXJldCA6PSBDLmxpYnhsX2NwdXBvb2xfY3B1cmVtb3ZlKEN0eC5jdHgsIEMu dWludDMyX3QoUG9vbGlkKSwgQy5pbnQoQ3B1KSkKIAlpZiByZXQgIT0gMCB7CiAJCWVyciA9IEVy cm9yKC1yZXQpCkBAIC02MzksMTEgKzYzMiw2IEBAIGZ1bmMgKEN0eCAqQ29udGV4dCkgQ3B1cG9v bENwdXJlbW92ZShQb29saWQgdWludDMyLCBDcHUgaW50KSAoZXJyIGVycm9yKSB7CiAvLyBpbnQg bGlieGxfY3B1cG9vbF9jcHVyZW1vdmVfY3B1bWFwKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBw b29saWQsCiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhs X2JpdG1hcCAqY3B1bWFwKTsKIGZ1bmMgKEN0eCAqQ29udGV4dCkgQ3B1cG9vbENwdXJlbW92ZUNw dW1hcChQb29saWQgdWludDMyLCBDcHVtYXAgQml0bWFwKSAoZXJyIGVycm9yKSB7Ci0JZXJyID0g Q3R4LkNoZWNrT3BlbigpCi0JaWYgZXJyICE9IG5pbCB7Ci0JCXJldHVybgotCX0KLQogCWNibSwg ZXJyIDo9IENwdW1hcC50b0MoKQogCWlmIGVyciAhPSBuaWwgewogCQlyZXR1cm4KQEAgLTY2MSwx MSArNjQ5LDYgQEAgZnVuYyAoQ3R4ICpDb250ZXh0KSBDcHVwb29sQ3B1cmVtb3ZlQ3B1bWFwKFBv b2xpZCB1aW50MzIsIENwdW1hcCBCaXRtYXApIChlcnIgZXIKIAogLy8gaW50IGxpYnhsX2NwdXBv b2xfcmVuYW1lKGxpYnhsX2N0eCAqY3R4LCBjb25zdCBjaGFyICpuYW1lLCB1aW50MzJfdCBwb29s aWQpOwogZnVuYyAoQ3R4ICpDb250ZXh0KSBDcHVwb29sUmVuYW1lKE5hbWUgc3RyaW5nLCBQb29s aWQgdWludDMyKSAoZXJyIGVycm9yKSB7Ci0JZXJyID0gQ3R4LkNoZWNrT3BlbigpCi0JaWYgZXJy ICE9IG5pbCB7Ci0JCXJldHVybgotCX0KLQogCW5hbWUgOj0gQy5DU3RyaW5nKE5hbWUpCiAJZGVm ZXIgQy5mcmVlKHVuc2FmZS5Qb2ludGVyKG5hbWUpKQogCkBAIC02ODAsMTEgKzY2Myw2IEBAIGZ1 bmMgKEN0eCAqQ29udGV4dCkgQ3B1cG9vbFJlbmFtZShOYW1lIHN0cmluZywgUG9vbGlkIHVpbnQz MikgKGVyciBlcnJvcikgewogCiAvLyBpbnQgbGlieGxfY3B1cG9vbF9jcHVhZGRfbm9kZShsaWJ4 bF9jdHggKmN0eCwgdWludDMyX3QgcG9vbGlkLCBpbnQgbm9kZSwgaW50ICpjcHVzKTsKIGZ1bmMg KEN0eCAqQ29udGV4dCkgQ3B1cG9vbENwdWFkZE5vZGUoUG9vbGlkIHVpbnQzMiwgTm9kZSBpbnQp IChDcHVzIGludCwgZXJyIGVycm9yKSB7Ci0JZXJyID0gQ3R4LkNoZWNrT3BlbigpCi0JaWYgZXJy ICE9IG5pbCB7Ci0JCXJldHVybgotCX0KLQogCWNjcHVzIDo9IEMuaW50KDApCiAKIAlyZXQgOj0g Qy5saWJ4bF9jcHVwb29sX2NwdWFkZF9ub2RlKEN0eC5jdHgsIEMudWludDMyX3QoUG9vbGlkKSwg Qy5pbnQoTm9kZSksICZjY3B1cykKQEAgLTcwMCwxMSArNjc4LDYgQEAgZnVuYyAoQ3R4ICpDb250 ZXh0KSBDcHVwb29sQ3B1YWRkTm9kZShQb29saWQgdWludDMyLCBOb2RlIGludCkgKENwdXMgaW50 LCBlcnIgZXIKIAogLy8gaW50IGxpYnhsX2NwdXBvb2xfY3B1cmVtb3ZlX25vZGUobGlieGxfY3R4 ICpjdHgsIHVpbnQzMl90IHBvb2xpZCwgaW50IG5vZGUsIGludCAqY3B1cyk7CiBmdW5jIChDdHgg KkNvbnRleHQpIENwdXBvb2xDcHVyZW1vdmVOb2RlKFBvb2xpZCB1aW50MzIsIE5vZGUgaW50KSAo Q3B1cyBpbnQsIGVyciBlcnJvcikgewotCWVyciA9IEN0eC5DaGVja09wZW4oKQotCWlmIGVyciAh PSBuaWwgewotCQlyZXR1cm4KLQl9Ci0KIAljY3B1cyA6PSBDLmludCgwKQogCiAJcmV0IDo9IEMu bGlieGxfY3B1cG9vbF9jcHVyZW1vdmVfbm9kZShDdHguY3R4LCBDLnVpbnQzMl90KFBvb2xpZCks IEMuaW50KE5vZGUpLCAmY2NwdXMpCkBAIC03MjAsMTEgKzY5Myw2IEBAIGZ1bmMgKEN0eCAqQ29u dGV4dCkgQ3B1cG9vbENwdXJlbW92ZU5vZGUoUG9vbGlkIHVpbnQzMiwgTm9kZSBpbnQpIChDcHVz IGludCwgZXJyCiAKIC8vIGludCBsaWJ4bF9jcHVwb29sX21vdmVkb21haW4obGlieGxfY3R4ICpj dHgsIHVpbnQzMl90IHBvb2xpZCwgdWludDMyX3QgZG9taWQpOwogZnVuYyAoQ3R4ICpDb250ZXh0 KSBDcHVwb29sTW92ZWRvbWFpbihQb29saWQgdWludDMyLCBJZCBEb21pZCkgKGVyciBlcnJvcikg ewotCWVyciA9IEN0eC5DaGVja09wZW4oKQotCWlmIGVyciAhPSBuaWwgewotCQlyZXR1cm4KLQl9 Ci0KIAlyZXQgOj0gQy5saWJ4bF9jcHVwb29sX21vdmVkb21haW4oQ3R4LmN0eCwgQy51aW50MzJf dChQb29saWQpLCBDLnVpbnQzMl90KElkKSkKIAlpZiByZXQgIT0gMCB7CiAJCWVyciA9IEVycm9y KC1yZXQpCkBAIC04ODQsNjAgKzg1Miw4IEBAIGZ1bmMgKGJtIEJpdG1hcCkgU3RyaW5nKCkgKHMg c3RyaW5nKSB7CiAJcmV0dXJuCiB9CiAKLS8qCi0gKiBDb250ZXh0Ci0gKi8KLXZhciBDdHggQ29u dGV4dAotCi1mdW5jIChDdHggKkNvbnRleHQpIElzT3BlbigpIGJvb2wgewotCXJldHVybiBDdHgu Y3R4ICE9IG5pbAotfQotCi1mdW5jIChDdHggKkNvbnRleHQpIE9wZW4oKSAoZXJyIGVycm9yKSB7 Ci0JaWYgQ3R4LmN0eCAhPSBuaWwgewotCQlyZXR1cm4KLQl9Ci0KLQlDdHgubG9nZ2VyID0gQy54 dGxfY3JlYXRlbG9nZ2VyX3N0ZGlvc3RyZWFtKEMuc3RkZXJyLCBDLlhUTF9FUlJPUiwgMCkKLQlp ZiBDdHgubG9nZ2VyID09IG5pbCB7Ci0JCWVyciA9IGZtdC5FcnJvcmYoIkNhbm5vdCBvcGVuIHN0 ZGlvc3RyZWFtIikKLQkJcmV0dXJuCi0JfQotCi0JcmV0IDo9IEMubGlieGxfY3R4X2FsbG9jKCZD dHguY3R4LCBDLkxJQlhMX1ZFUlNJT04sCi0JCTAsICgqQy54ZW50b29sbG9nX2xvZ2dlcikodW5z YWZlLlBvaW50ZXIoQ3R4LmxvZ2dlcikpKQotCi0JaWYgcmV0ICE9IDAgewotCQllcnIgPSBFcnJv cigtcmV0KQotCX0KLQlyZXR1cm4KLX0KLQotZnVuYyAoQ3R4ICpDb250ZXh0KSBDbG9zZSgpIChl cnIgZXJyb3IpIHsKLQlyZXQgOj0gQy5saWJ4bF9jdHhfZnJlZShDdHguY3R4KQotCUN0eC5jdHgg PSBuaWwKLQotCWlmIHJldCAhPSAwIHsKLQkJZXJyID0gRXJyb3IoLXJldCkKLQl9Ci0JQy54dGxf bG9nZ2VyX2Rlc3Ryb3koKCpDLnhlbnRvb2xsb2dfbG9nZ2VyKSh1bnNhZmUuUG9pbnRlcihDdHgu bG9nZ2VyKSkpCi0JcmV0dXJuCi19Ci0KLWZ1bmMgKEN0eCAqQ29udGV4dCkgQ2hlY2tPcGVuKCkg KGVyciBlcnJvcikgewotCWlmIEN0eC5jdHggPT0gbmlsIHsKLQkJZXJyID0gZm10LkVycm9yZigi Q29udGV4dCBub3Qgb3BlbmVkIikKLQl9Ci0JcmV0dXJuCi19Ci0KIC8vaW50IGxpYnhsX2dldF9t YXhfY3B1cyhsaWJ4bF9jdHggKmN0eCk7CiBmdW5jIChDdHggKkNvbnRleHQpIEdldE1heENwdXMo KSAobWF4Q3B1cyBpbnQsIGVyciBlcnJvcikgewotCWVyciA9IEN0eC5DaGVja09wZW4oKQotCWlm IGVyciAhPSBuaWwgewotCQlyZXR1cm4KLQl9Ci0KIAlyZXQgOj0gQy5saWJ4bF9nZXRfbWF4X2Nw dXMoQ3R4LmN0eCkKIAlpZiByZXQgPCAwIHsKIAkJZXJyID0gRXJyb3IoLXJldCkKQEAgLTk0OSwx MSArODY1LDYgQEAgZnVuYyAoQ3R4ICpDb250ZXh0KSBHZXRNYXhDcHVzKCkgKG1heENwdXMgaW50 LCBlcnIgZXJyb3IpIHsKIAogLy9pbnQgbGlieGxfZ2V0X29ubGluZV9jcHVzKGxpYnhsX2N0eCAq Y3R4KTsKIGZ1bmMgKEN0eCAqQ29udGV4dCkgR2V0T25saW5lQ3B1cygpIChvbkNwdXMgaW50LCBl cnIgZXJyb3IpIHsKLQllcnIgPSBDdHguQ2hlY2tPcGVuKCkKLQlpZiBlcnIgIT0gbmlsIHsKLQkJ cmV0dXJuCi0JfQotCiAJcmV0IDo9IEMubGlieGxfZ2V0X29ubGluZV9jcHVzKEN0eC5jdHgpCiAJ aWYgcmV0IDwgMCB7CiAJCWVyciA9IEVycm9yKC1yZXQpCkBAIC05NjUsMTAgKzg3Niw2IEBAIGZ1 bmMgKEN0eCAqQ29udGV4dCkgR2V0T25saW5lQ3B1cygpIChvbkNwdXMgaW50LCBlcnIgZXJyb3Ip IHsKIAogLy9pbnQgbGlieGxfZ2V0X21heF9ub2RlcyhsaWJ4bF9jdHggKmN0eCk7CiBmdW5jIChD dHggKkNvbnRleHQpIEdldE1heE5vZGVzKCkgKG1heE5vZGVzIGludCwgZXJyIGVycm9yKSB7Ci0J ZXJyID0gQ3R4LkNoZWNrT3BlbigpCi0JaWYgZXJyICE9IG5pbCB7Ci0JCXJldHVybgotCX0KIAly ZXQgOj0gQy5saWJ4bF9nZXRfbWF4X25vZGVzKEN0eC5jdHgpCiAJaWYgcmV0IDwgMCB7CiAJCWVy ciA9IEVycm9yKC1yZXQpCkBAIC05ODAsMTAgKzg4Nyw2IEBAIGZ1bmMgKEN0eCAqQ29udGV4dCkg R2V0TWF4Tm9kZXMoKSAobWF4Tm9kZXMgaW50LCBlcnIgZXJyb3IpIHsKIAogLy9pbnQgbGlieGxf Z2V0X2ZyZWVfbWVtb3J5KGxpYnhsX2N0eCAqY3R4LCB1aW50NjRfdCAqbWVta2IpOwogZnVuYyAo Q3R4ICpDb250ZXh0KSBHZXRGcmVlTWVtb3J5KCkgKG1lbWtiIHVpbnQ2NCwgZXJyIGVycm9yKSB7 Ci0JZXJyID0gQ3R4LkNoZWNrT3BlbigpCi0JaWYgZXJyICE9IG5pbCB7Ci0JCXJldHVybgotCX0K IAl2YXIgY21lbSBDLnVpbnQ2NF90CiAJcmV0IDo9IEMubGlieGxfZ2V0X2ZyZWVfbWVtb3J5KEN0 eC5jdHgsICZjbWVtKQogCkBAIC05OTksMTAgKzkwMiw2IEBAIGZ1bmMgKEN0eCAqQ29udGV4dCkg R2V0RnJlZU1lbW9yeSgpIChtZW1rYiB1aW50NjQsIGVyciBlcnJvcikgewogCiAvL2ludCBsaWJ4 bF9nZXRfcGh5c2luZm8obGlieGxfY3R4ICpjdHgsIGxpYnhsX3BoeXNpbmZvICpwaHlzaW5mbykK IGZ1bmMgKEN0eCAqQ29udGV4dCkgR2V0UGh5c2luZm8oKSAocGh5c2luZm8gKlBoeXNpbmZvLCBl cnIgZXJyb3IpIHsKLQllcnIgPSBDdHguQ2hlY2tPcGVuKCkKLQlpZiBlcnIgIT0gbmlsIHsKLQkJ cmV0dXJuCi0JfQogCXZhciBjcGh5cyBDLmxpYnhsX3BoeXNpbmZvCiAJQy5saWJ4bF9waHlzaW5m b19pbml0KCZjcGh5cykKIAlkZWZlciBDLmxpYnhsX3BoeXNpbmZvX2Rpc3Bvc2UoJmNwaHlzKQpA QCAtMTAyMCwxMSArOTE5LDYgQEAgZnVuYyAoQ3R4ICpDb250ZXh0KSBHZXRQaHlzaW5mbygpIChw aHlzaW5mbyAqUGh5c2luZm8sIGVyciBlcnJvcikgewogCiAvL2NvbnN0IGxpYnhsX3ZlcnNpb25f aW5mbyogbGlieGxfZ2V0X3ZlcnNpb25faW5mbyhsaWJ4bF9jdHggKmN0eCk7CiBmdW5jIChDdHgg KkNvbnRleHQpIEdldFZlcnNpb25JbmZvKCkgKGluZm8gKlZlcnNpb25JbmZvLCBlcnIgZXJyb3Ip IHsKLQllcnIgPSBDdHguQ2hlY2tPcGVuKCkKLQlpZiBlcnIgIT0gbmlsIHsKLQkJcmV0dXJuCi0J fQotCiAJdmFyIGNpbmZvICpDLmxpYnhsX3ZlcnNpb25faW5mbwogCiAJY2luZm8gPSBDLmxpYnhs X2dldF92ZXJzaW9uX2luZm8oQ3R4LmN0eCkKQEAgLTEwMzUsMTEgKzkyOSw2IEBAIGZ1bmMgKEN0 eCAqQ29udGV4dCkgR2V0VmVyc2lvbkluZm8oKSAoaW5mbyAqVmVyc2lvbkluZm8sIGVyciBlcnJv cikgewogfQogCiBmdW5jIChDdHggKkNvbnRleHQpIERvbWFpbkluZm8oSWQgRG9taWQpIChkaSAq RG9taW5mbywgZXJyIGVycm9yKSB7Ci0JZXJyID0gQ3R4LkNoZWNrT3BlbigpCi0JaWYgZXJyICE9 IG5pbCB7Ci0JCXJldHVybgotCX0KLQogCXZhciBjZGkgQy5saWJ4bF9kb21pbmZvCiAJQy5saWJ4 bF9kb21pbmZvX2luaXQoJmNkaSkKIAlkZWZlciBDLmxpYnhsX2RvbWluZm9fZGlzcG9zZSgmY2Rp KQpAQCAtMTA1NywxMSArOTQ2LDYgQEAgZnVuYyAoQ3R4ICpDb250ZXh0KSBEb21haW5JbmZvKElk IERvbWlkKSAoZGkgKkRvbWluZm8sIGVyciBlcnJvcikgewogfQogCiBmdW5jIChDdHggKkNvbnRl eHQpIERvbWFpblVucGF1c2UoSWQgRG9taWQpIChlcnIgZXJyb3IpIHsKLQllcnIgPSBDdHguQ2hl Y2tPcGVuKCkKLQlpZiBlcnIgIT0gbmlsIHsKLQkJcmV0dXJuCi0JfQotCiAJcmV0IDo9IEMubGli eGxfZG9tYWluX3VucGF1c2UoQ3R4LmN0eCwgQy51aW50MzJfdChJZCksIG5pbCkKIAogCWlmIHJl dCAhPSAwIHsKQEAgLTEwNzIsMTEgKzk1Niw2IEBAIGZ1bmMgKEN0eCAqQ29udGV4dCkgRG9tYWlu VW5wYXVzZShJZCBEb21pZCkgKGVyciBlcnJvcikgewogCiAvL2ludCBsaWJ4bF9kb21haW5fcGF1 c2UobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWFpbik7CiBmdW5jIChDdHggKkNvbnRleHQp IERvbWFpblBhdXNlKGlkIERvbWlkKSAoZXJyIGVycm9yKSB7Ci0JZXJyID0gQ3R4LkNoZWNrT3Bl bigpCi0JaWYgZXJyICE9IG5pbCB7Ci0JCXJldHVybgotCX0KLQogCXJldCA6PSBDLmxpYnhsX2Rv bWFpbl9wYXVzZShDdHguY3R4LCBDLnVpbnQzMl90KGlkKSwgbmlsKQogCiAJaWYgcmV0ICE9IDAg ewpAQCAtMTA4NywxMSArOTY2LDYgQEAgZnVuYyAoQ3R4ICpDb250ZXh0KSBEb21haW5QYXVzZShp ZCBEb21pZCkgKGVyciBlcnJvcikgewogCiAvL2ludCBsaWJ4bF9kb21haW5fc2h1dGRvd24obGli eGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkKTsKIGZ1bmMgKEN0eCAqQ29udGV4dCkgRG9tYWlu U2h1dGRvd24oaWQgRG9taWQpIChlcnIgZXJyb3IpIHsKLQllcnIgPSBDdHguQ2hlY2tPcGVuKCkK LQlpZiBlcnIgIT0gbmlsIHsKLQkJcmV0dXJuCi0JfQotCiAJcmV0IDo9IEMubGlieGxfZG9tYWlu X3NodXRkb3duKEN0eC5jdHgsIEMudWludDMyX3QoaWQpKQogCiAJaWYgcmV0ICE9IDAgewpAQCAt MTEwMiwxMSArOTc2LDYgQEAgZnVuYyAoQ3R4ICpDb250ZXh0KSBEb21haW5TaHV0ZG93bihpZCBE b21pZCkgKGVyciBlcnJvcikgewogCiAvL2ludCBsaWJ4bF9kb21haW5fcmVib290KGxpYnhsX2N0 eCAqY3R4LCB1aW50MzJfdCBkb21pZCk7CiBmdW5jIChDdHggKkNvbnRleHQpIERvbWFpblJlYm9v dChpZCBEb21pZCkgKGVyciBlcnJvcikgewotCWVyciA9IEN0eC5DaGVja09wZW4oKQotCWlmIGVy ciAhPSBuaWwgewotCQlyZXR1cm4KLQl9Ci0KIAlyZXQgOj0gQy5saWJ4bF9kb21haW5fcmVib290 KEN0eC5jdHgsIEMudWludDMyX3QoaWQpKQogCiAJaWYgcmV0ICE9IDAgewpAQCAtMTExOCwxMSAr OTg3LDYgQEAgZnVuYyAoQ3R4ICpDb250ZXh0KSBEb21haW5SZWJvb3QoaWQgRG9taWQpIChlcnIg ZXJyb3IpIHsKIC8vbGlieGxfZG9taW5mbyAqIGxpYnhsX2xpc3RfZG9tYWluKGxpYnhsX2N0eCos IGludCAqbmJfZG9tYWluX291dCk7CiAvL3ZvaWQgbGlieGxfZG9taW5mb19saXN0X2ZyZWUobGli eGxfZG9taW5mbyAqbGlzdCwgaW50IG5iX2RvbWFpbik7CiBmdW5jIChDdHggKkNvbnRleHQpIExp c3REb21haW4oKSAoZ2xpc3QgW11Eb21pbmZvKSB7Ci0JZXJyIDo9IEN0eC5DaGVja09wZW4oKQot CWlmIGVyciAhPSBuaWwgewotCQlyZXR1cm4KLQl9Ci0KIAl2YXIgbmJEb21haW4gQy5pbnQKIAlj bGlzdCA6PSBDLmxpYnhsX2xpc3RfZG9tYWluKEN0eC5jdHgsICZuYkRvbWFpbikKIAlkZWZlciBD LmxpYnhsX2RvbWluZm9fbGlzdF9mcmVlKGNsaXN0LCBuYkRvbWFpbikKQEAgLTExNDUsMTEgKzEw MDksNiBAQCBmdW5jIChDdHggKkNvbnRleHQpIExpc3REb21haW4oKSAoZ2xpc3QgW11Eb21pbmZv KSB7CiAvLwkJCQlpbnQgKm5iX3ZjcHUsIGludCAqbnJfY3B1c19vdXQpOwogLy92b2lkIGxpYnhs X3ZjcHVpbmZvX2xpc3RfZnJlZShsaWJ4bF92Y3B1aW5mbyAqLCBpbnQgbnJfdmNwdXMpOwogZnVu YyAoQ3R4ICpDb250ZXh0KSBMaXN0VmNwdShpZCBEb21pZCkgKGdsaXN0IFtdVmNwdWluZm8pIHsK LQllcnIgOj0gQ3R4LkNoZWNrT3BlbigpCi0JaWYgZXJyICE9IG5pbCB7Ci0JCXJldHVybgotCX0K LQogCXZhciBuYlZjcHUgQy5pbnQKIAl2YXIgbnJDcHUgQy5pbnQKIApAQCAtMTE4MCwxMSArMTAz OSw2IEBAIGZ1bmMgKGN0IENvbnNvbGVUeXBlKSBTdHJpbmcoKSAoc3RyIHN0cmluZykgewogLy9p bnQgbGlieGxfY29uc29sZV9nZXRfdHR5KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwg aW50IGNvbnNfbnVtLAogLy9saWJ4bF9jb25zb2xlX3R5cGUgdHlwZSwgY2hhciAqKnBhdGgpOwog ZnVuYyAoQ3R4ICpDb250ZXh0KSBDb25zb2xlR2V0VHR5KGlkIERvbWlkLCBjb25zTnVtIGludCwg Y29uVHlwZSBDb25zb2xlVHlwZSkgKHBhdGggc3RyaW5nLCBlcnIgZXJyb3IpIHsKLQllcnIgPSBD dHguQ2hlY2tPcGVuKCkKLQlpZiBlcnIgIT0gbmlsIHsKLQkJcmV0dXJuCi0JfQotCiAJdmFyIGNw YXRoICpDLmNoYXIKIAlyZXQgOj0gQy5saWJ4bF9jb25zb2xlX2dldF90dHkoQ3R4LmN0eCwgQy51 aW50MzJfdChpZCksIEMuaW50KGNvbnNOdW0pLCBDLmxpYnhsX2NvbnNvbGVfdHlwZShjb25UeXBl KSwgJmNwYXRoKQogCWlmIHJldCAhPSAwIHsKQEAgLTEyMDAsMTEgKzEwNTQsNiBAQCBmdW5jIChD dHggKkNvbnRleHQpIENvbnNvbGVHZXRUdHkoaWQgRG9taWQsIGNvbnNOdW0gaW50LCBjb25UeXBl IENvbnNvbGVUeXBlKSAocAogLy9pbnQgbGlieGxfcHJpbWFyeV9jb25zb2xlX2dldF90dHkobGli eGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkX3ZtLAogLy8JCQkJCWNoYXIgKipwYXRoKTsKIGZ1 bmMgKEN0eCAqQ29udGV4dCkgUHJpbWFyeUNvbnNvbGVHZXRUdHkoZG9taWQgdWludDMyKSAocGF0 aCBzdHJpbmcsIGVyciBlcnJvcikgewotCWVyciA9IEN0eC5DaGVja09wZW4oKQotCWlmIGVyciAh PSBuaWwgewotCQlyZXR1cm4KLQl9Ci0KIAl2YXIgY3BhdGggKkMuY2hhcgogCXJldCA6PSBDLmxp YnhsX3ByaW1hcnlfY29uc29sZV9nZXRfdHR5KEN0eC5jdHgsIEMudWludDMyX3QoZG9taWQpLCAm Y3BhdGgpCiAJaWYgcmV0ICE9IDAgewotLSAKMi4xOS4xCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWls bWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==