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.8 required=3.0 tests=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 A9414C2D0CE for ; Tue, 21 Jan 2020 17:51:36 +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 6EB28206A2 for ; Tue, 21 Jan 2020 17:51:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6EB28206A2 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.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 1itxgM-0005TB-WD; Tue, 21 Jan 2020 17:51:18 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1itxgM-0005SK-Ce for xen-devel@lists.xenproject.org; Tue, 21 Jan 2020 17:51:18 +0000 X-Inumbo-ID: 81395d80-3c76-11ea-bb21-12813bfff9fa Received: from mga04.intel.com (unknown [192.55.52.120]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 81395d80-3c76-11ea-bb21-12813bfff9fa; Tue, 21 Jan 2020 17:50:26 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Jan 2020 09:50:11 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,346,1574150400"; d="scan'208";a="228929288" Received: from tlengyel-mobl2.amr.corp.intel.com (HELO localhost.localdomain) ([10.251.23.127]) by orsmga006.jf.intel.com with ESMTP; 21 Jan 2020 09:50:11 -0800 From: Tamas K Lengyel To: xen-devel@lists.xenproject.org Date: Tue, 21 Jan 2020 09:49:51 -0800 Message-Id: <40edc0592f5573c6a47da4744d1ba51759b25472.1579628566.git.tamas.lengyel@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: References: MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v5 18/18] xen/tools: VM forking toolstack side 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: Anthony PERARD , Ian Jackson , Tamas K Lengyel , Wei Liu Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" QWRkIG5lY2Vzc2FyeSBiaXRzIHRvIGltcGxlbWVudCAieGwgZm9yay12bSIgY29tbWFuZHMuIFRo ZSBjb21tYW5kIGFsbG93cyB0aGUKdXNlciB0byBzcGVjaWZ5IGhvdyB0byBsYXVuY2ggdGhlIGRl dmljZSBtb2RlbCBhbGxvd2luZyBmb3IgYSBsYXRlLWxhdW5jaCBtb2RlbAppbiB3aGljaCB0aGUg dXNlciBjYW4gZXhlY3V0ZSB0aGUgZm9yayB3aXRob3V0IHRoZSBkZXZpY2UgbW9kZWwgYW5kIGRl Y2lkZSB0bwpvbmx5IGxhdGVyIGxhdW5jaCBpdC4KClNpZ25lZC1vZmYtYnk6IFRhbWFzIEsgTGVu Z3llbCA8dGFtYXMubGVuZ3llbEBpbnRlbC5jb20+Ci0tLQogZG9jcy9tYW4veGwuMS5wb2QuaW4g ICAgICAgICAgfCAgMzYgKysrKysrCiB0b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCB8ICAx MyArKwogdG9vbHMvbGlieGMveGNfbWVtc2hyLmMgICAgICAgfCAgMjIgKysrKwogdG9vbHMvbGli eGwvbGlieGwuaCAgICAgICAgICAgfCAgIDcgKwogdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMg ICAgfCAyMzcgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogdG9vbHMvbGlieGwv bGlieGxfZG0uYyAgICAgICAgfCAgIDIgKy0KIHRvb2xzL2xpYnhsL2xpYnhsX2RvbS5jICAgICAg IHwgIDgzICsrKysrKysrLS0tLQogdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCAgfCAgIDEg KwogdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsICAgfCAgIDEgKwogdG9vbHMveGwveGwuaCAg ICAgICAgICAgICAgICAgfCAgIDUgKwogdG9vbHMveGwveGxfY21kdGFibGUuYyAgICAgICAgfCAg MTIgKysKIHRvb2xzL3hsL3hsX3NhdmVyZXN0b3JlLmMgICAgIHwgIDk2ICsrKysrKysrKysrKysr CiB0b29scy94bC94bF92bWNvbnRyb2wuYyAgICAgICB8ICAgOCArKwogMTMgZmlsZXMgY2hhbmdl ZCwgNDE5IGluc2VydGlvbnMoKyksIDEwNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Nz L21hbi94bC4xLnBvZC5pbiBiL2RvY3MvbWFuL3hsLjEucG9kLmluCmluZGV4IGQ0YjVlOGUzNjIu LjIyY2M0MTQ5YjAgMTAwNjQ0Ci0tLSBhL2RvY3MvbWFuL3hsLjEucG9kLmluCisrKyBiL2RvY3Mv bWFuL3hsLjEucG9kLmluCkBAIC02OTQsNiArNjk0LDQyIEBAIExlYXZlIHRoZSBkb21haW4gcGF1 c2VkIGFmdGVyIGNyZWF0aW5nIHRoZSBzbmFwc2hvdC4KIAogPWJhY2sKIAorPWl0ZW0gQjxmb3Jr LXZtPiBbSTxPUFRJT05TPl0gSTxkb21haW4taWQ+CisKK0NyZWF0ZSBhIGZvcmsgb2YgYSBydW5u aW5nIFZNLiBUaGUgZG9tYWluIHdpbGwgYmUgcGF1c2VkIGFmdGVyIHRoZSBvcGVyYXRpb24KK2Fu ZCBuZWVkcyB0byByZW1haW4gcGF1c2VkIHdoaWxlIGZvcmtzIG9mIGl0IGV4aXN0LgorCitCPE9Q VElPTlM+CisKKz1vdmVyIDQKKworPWl0ZW0gQjwtcD4KKworTGVhdmUgdGhlIGZvcmsgcGF1c2Vk IGFmdGVyIGNyZWF0aW5nIGl0LgorCis9aXRlbSBCPC0tbGF1bmNoLWRtPgorCitTcGVjaWZ5IHdo ZXRoZXIgdGhlIGRldmljZSBtb2RlbCAoUUVNVSkgc2hvdWxkIGJlIGxhdW5jaGVkIGZvciB0aGUg Zm9yay4gTGF0ZQorbGF1bmNoIGFsbG93cyB0byBzdGFydCB0aGUgZGV2aWNlIG1vZGVsIGZvciBh biBhbHJlYWR5IHJ1bm5pbmcgZm9yay4KKworPWl0ZW0gQjwtQz4KKworVGhlIGNvbmZpZyBmaWxl IHRvIHVzZSB3aGVuIGxhdW5jaGluZyB0aGUgZGV2aWNlIG1vZGVsLiBDdXJyZW50bHkgcmVxdWly ZWQgd2hlbgorbGF1bmNoaW5nIHRoZSBkZXZpY2UgbW9kZWwuCisKKz1pdGVtIEI8LVE+CisKK1Ro ZSBxZW11IHNhdmUgZmlsZSB0byB1c2Ugd2hlbiBsYXVuY2hpbmcgdGhlIGRldmljZSBtb2RlbC4g IEN1cnJlbnRseSByZXF1aXJlZAord2hlbiBsYXVuY2hpbmcgdGhlIGRldmljZSBtb2RlbC4KKwor PWl0ZW0gQjwtLWZvcmstcmVzZXQ+CisKK1BlcmZvcm0gYSByZXNldCBvcGVyYXRpb24gb2YgYW4g YWxyZWFkeSBydW5uaW5nIGZvcmsuIE5vdGUgdGhhdCByZXNldHRpbmcgbWF5CitiZSBsZXNzIHBl cmZvcm1hbnQgdGhlbiBjcmVhdGluZyBhIG5ldyBmb3JrIGRlcGVuZGluZyBvbiBob3cgbXVjaCBt ZW1vcnkgdGhlCitmb3JrIGhhcyBkZWR1cGxpY2F0ZWQgZHVyaW5nIGl0cyBydW50aW1lLgorCis9 YmFjaworCiA9aXRlbSBCPHNoYXJpbmc+IFtJPGRvbWFpbi1pZD5dCiAKIERpc3BsYXkgdGhlIG51 bWJlciBvZiBzaGFyZWQgcGFnZXMgZm9yIGEgc3BlY2lmaWVkIGRvbWFpbi4gSWYgbm8gZG9tYWlu IGlzCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCBiL3Rvb2xzL2xp YnhjL2luY2x1ZGUveGVuY3RybC5oCmluZGV4IDc1ZjE5MWFlM2EuLmZmYjBiYjlhNDIgMTAwNjQ0 Ci0tLSBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCisrKyBiL3Rvb2xzL2xpYnhjL2lu Y2x1ZGUveGVuY3RybC5oCkBAIC0yMjIxLDYgKzIyMjEsMTkgQEAgaW50IHhjX21lbXNocl9yYW5n ZV9zaGFyZSh4Y19pbnRlcmZhY2UgKnhjaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDY0X3QgZmlyc3RfZ2ZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBsYXN0 X2dmbik7CiAKK2ludCB4Y19tZW1zaHJfZm9yayh4Y19pbnRlcmZhY2UgKnhjaCwKKyAgICAgICAg ICAgICAgICAgICB1aW50MzJfdCBzb3VyY2VfZG9tYWluLAorICAgICAgICAgICAgICAgICAgIHVp bnQzMl90IGNsaWVudF9kb21haW4pOworCisvKgorICogTm90ZTogdGhpcyBmdW5jdGlvbiBpcyBv bmx5IGludGVuZGVkIHRvIGJlIHVzZWQgb24gc2hvcnQtbGl2ZWQgZm9ya3MgdGhhdAorICogaGF2 ZW4ndCB5ZXQgYXF1aXJlZCBhIGxvdCBvZiBtZW1vcnkuIEluIGNhc2UgdGhlIGZvcmsgaGFzIGEg bG90IG9mIG1lbW9yeQorICogaXQgaXMgbGlrZWx5IG1vcmUgcGVyZm9ybWFudCB0byBjcmVhdGUg YSBuZXcgZm9yayB3aXRoIHhjX21lbXNocl9mb3JrLgorICoKKyAqIFdpdGggVk1zIHRoYXQgaGF2 ZSBhIGxvdCBvZiBtZW1vcnkgdGhpcyBjYWxsIG1heSBibG9jayBmb3IgYSBsb25nIHRpbWUuCisg Ki8KK2ludCB4Y19tZW1zaHJfZm9ya19yZXNldCh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3Qg Zm9ya2VkX2RvbWFpbik7CisKIC8qIERlYnVnIGNhbGxzOiByZXR1cm4gdGhlIG51bWJlciBvZiBw YWdlcyByZWZlcmVuY2luZyB0aGUgc2hhcmVkIGZyYW1lIGJhY2tpbmcKICAqIHRoZSBpbnB1dCBh cmd1bWVudC4gU2hvdWxkIGJlIG9uZSBvciBncmVhdGVyLgogICoKZGlmZiAtLWdpdCBhL3Rvb2xz L2xpYnhjL3hjX21lbXNoci5jIGIvdG9vbHMvbGlieGMveGNfbWVtc2hyLmMKaW5kZXggOTdlMmU2 YThkOS4uZDBlNGVlMjI1YiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfbWVtc2hyLmMKKysr IGIvdG9vbHMvbGlieGMveGNfbWVtc2hyLmMKQEAgLTIzOSw2ICsyMzksMjggQEAgaW50IHhjX21l bXNocl9kZWJ1Z19ncmVmKHhjX2ludGVyZmFjZSAqeGNoLAogICAgIHJldHVybiB4Y19tZW1zaHJf bWVtb3AoeGNoLCBkb21pZCwgJm1zbyk7CiB9CiAKK2ludCB4Y19tZW1zaHJfZm9yayh4Y19pbnRl cmZhY2UgKnhjaCwgdWludDMyX3QgcGRvbWlkLCB1aW50MzJfdCBkb21pZCkKK3sKKyAgICB4ZW5f bWVtX3NoYXJpbmdfb3BfdCBtc287CisKKyAgICBtZW1zZXQoJm1zbywgMCwgc2l6ZW9mKG1zbykp OworCisgICAgbXNvLm9wID0gWEVOTUVNX3NoYXJpbmdfb3BfZm9yazsKKyAgICBtc28udS5mb3Jr LnBhcmVudF9kb21haW4gPSBwZG9taWQ7CisKKyAgICByZXR1cm4geGNfbWVtc2hyX21lbW9wKHhj aCwgZG9taWQsICZtc28pOworfQorCitpbnQgeGNfbWVtc2hyX2ZvcmtfcmVzZXQoeGNfaW50ZXJm YWNlICp4Y2gsIHVpbnQzMl90IGRvbWlkKQoreworICAgIHhlbl9tZW1fc2hhcmluZ19vcF90IG1z bzsKKworICAgIG1lbXNldCgmbXNvLCAwLCBzaXplb2YobXNvKSk7CisgICAgbXNvLm9wID0gWEVO TUVNX3NoYXJpbmdfb3BfZm9ya19yZXNldDsKKworICAgIHJldHVybiB4Y19tZW1zaHJfbWVtb3Ao eGNoLCBkb21pZCwgJm1zbyk7Cit9CisKIGludCB4Y19tZW1zaHJfYXVkaXQoeGNfaW50ZXJmYWNl ICp4Y2gpCiB7CiAgICAgeGVuX21lbV9zaGFyaW5nX29wX3QgbXNvOwpkaWZmIC0tZ2l0IGEvdG9v bHMvbGlieGwvbGlieGwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsLmgKaW5kZXggNTRhYmI5ZGIxZi4u NzVjYjA3MDU4NyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGwuaAorKysgYi90b29scy9s aWJ4bC9saWJ4bC5oCkBAIC0xNTM2LDYgKzE1MzYsMTMgQEAgaW50IGxpYnhsX2RvbWFpbl9jcmVh dGVfbmV3KGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9kb21haW5fY29uZmlnICpkX2NvbmZpZywKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9hc3luY29wX2hvdyAqYW9faG93 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2FzeW5jcHJvZ3Jlc3Nf aG93ICphb3BfY29uc29sZV9ob3cpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWExf RVhURVJOQUxfQ0FMTEVSU19PTkxZOworaW50IGxpYnhsX2RvbWFpbl9mb3JrX3ZtKGxpYnhsX2N0 eCAqY3R4LCB1aW50MzJfdCBwZG9taWQsIHVpbnQzMl90ICpkb21pZCkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTElCWExfRVhURVJOQUxfQ0FMTEVSU19PTkxZOworaW50IGxpYnhsX2Rv bWFpbl9mb3JrX2xhdW5jaF9kbShsaWJ4bF9jdHggKmN0eCwgbGlieGxfZG9tYWluX2NvbmZpZyAq ZF9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRvbWlk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9hc3luY3Byb2dy ZXNzX2hvdyAqYW9wX2NvbnNvbGVfaG93KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMSUJYTF9FWFRFUk5BTF9DQUxMRVJTX09OTFk7CitpbnQgbGlieGxfZG9tYWluX2ZvcmtfcmVz ZXQobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkKTsKIGludCBsaWJ4bF9kb21haW5fY3Jl YXRlX3Jlc3RvcmUobGlieGxfY3R4ICpjdHgsIGxpYnhsX2RvbWFpbl9jb25maWcgKmRfY29uZmln LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqZG9taWQsIGludCBy ZXN0b3JlX2ZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2VuZF9iYWNr X2ZkLApkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMgYi90b29scy9saWJ4 bC9saWJ4bF9jcmVhdGUuYwppbmRleCA2OWZjZWZmMDYxLi4zNTRjMjc4MTYxIDEwMDY0NAotLS0g YS90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9jcmVh dGUuYwpAQCAtNTM2LDEyICs1MzYsMTIgQEAgb3V0OgogICAgIHJldHVybiByZXQ7CiB9CiAKLWlu dCBsaWJ4bF9fZG9tYWluX21ha2UobGlieGxfX2djICpnYywgbGlieGxfZG9tYWluX2NvbmZpZyAq ZF9jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19kb21haW5fYnVpbGRfc3Rh dGUgKnN0YXRlLAotICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqZG9taWQpCitzdGF0 aWMgaW50IGxpYnhsX19kb21haW5fbWFrZV94c19lbnRyaWVzKGxpYnhsX19nYyAqZ2MsIGxpYnhs X2RvbWFpbl9jb25maWcgKmRfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9fZG9tYWluX2J1aWxkX3N0YXRlICpzdGF0ZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZG9taWQpCiB7CiAgICAgbGli eGxfY3R4ICpjdHggPSBsaWJ4bF9fZ2Nfb3duZXIoZ2MpOwotICAgIGludCByZXQsIHJjLCBuYl92 bTsKKyAgICBpbnQgcmMsIG5iX3ZtOwogICAgIGNvbnN0IGNoYXIgKmRvbV90eXBlOwogICAgIGNo YXIgKnV1aWRfc3RyaW5nOwogICAgIGNoYXIgKmRvbV9wYXRoLCAqdm1fcGF0aCwgKmxpYnhsX3Bh dGg7CkBAIC01NTMsNyArNTUzLDYgQEAgaW50IGxpYnhsX19kb21haW5fbWFrZShsaWJ4bF9fZ2Mg KmdjLCBsaWJ4bF9kb21haW5fY29uZmlnICpkX2NvbmZpZywKIAogICAgIC8qIGNvbnZlbmllbmNl IGFsaWFzZXMgKi8KICAgICBsaWJ4bF9kb21haW5fY3JlYXRlX2luZm8gKmluZm8gPSAmZF9jb25m aWctPmNfaW5mbzsKLSAgICBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqYl9pbmZvID0gJmRfY29u ZmlnLT5iX2luZm87CiAKICAgICB1dWlkX3N0cmluZyA9IGxpYnhsX191dWlkMnN0cmluZyhnYywg aW5mby0+dXVpZCk7CiAgICAgaWYgKCF1dWlkX3N0cmluZykgewpAQCAtNTYxLDY0ICs1NjAsNyBA QCBpbnQgbGlieGxfX2RvbWFpbl9tYWtlKGxpYnhsX19nYyAqZ2MsIGxpYnhsX2RvbWFpbl9jb25m aWcgKmRfY29uZmlnLAogICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICAvKiBWYWxpZCBk b21pZCBoZXJlIG1lYW5zIHdlJ3JlIHNvZnQgcmVzZXR0aW5nLiAqLwotICAgIGlmICghbGlieGxf ZG9taWRfdmFsaWRfZ3Vlc3QoKmRvbWlkKSkgewotICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9j cmVhdGVkb21haW4gY3JlYXRlID0gewotICAgICAgICAgICAgLnNzaWRyZWYgPSBpbmZvLT5zc2lk cmVmLAotICAgICAgICAgICAgLm1heF92Y3B1cyA9IGJfaW5mby0+bWF4X3ZjcHVzLAotICAgICAg ICAgICAgLm1heF9ldnRjaG5fcG9ydCA9IGJfaW5mby0+ZXZlbnRfY2hhbm5lbHMsCi0gICAgICAg ICAgICAubWF4X2dyYW50X2ZyYW1lcyA9IGJfaW5mby0+bWF4X2dyYW50X2ZyYW1lcywKLSAgICAg ICAgICAgIC5tYXhfbWFwdHJhY2tfZnJhbWVzID0gYl9pbmZvLT5tYXhfbWFwdHJhY2tfZnJhbWVz LAotICAgICAgICB9OwotCi0gICAgICAgIGlmIChpbmZvLT50eXBlICE9IExJQlhMX0RPTUFJTl9U WVBFX1BWKSB7Ci0gICAgICAgICAgICBjcmVhdGUuZmxhZ3MgfD0gWEVOX0RPTUNUTF9DREZfaHZt OwotICAgICAgICAgICAgY3JlYXRlLmZsYWdzIHw9Ci0gICAgICAgICAgICAgICAgbGlieGxfZGVm Ym9vbF92YWwoaW5mby0+aGFwKSA/IFhFTl9ET01DVExfQ0RGX2hhcCA6IDA7Ci0gICAgICAgICAg ICBjcmVhdGUuZmxhZ3MgfD0KLSAgICAgICAgICAgICAgICBsaWJ4bF9kZWZib29sX3ZhbChpbmZv LT5vb3MpID8gMCA6IFhFTl9ET01DVExfQ0RGX29vc19vZmY7Ci0gICAgICAgIH0KLQotICAgICAg ICBhc3NlcnQoaW5mby0+cGFzc3Rocm91Z2ggIT0gTElCWExfUEFTU1RIUk9VR0hfREVGQVVMVCk7 Ci0gICAgICAgIExPRyhERVRBSUwsICJwYXNzdGhyb3VnaDogJXMiLAotICAgICAgICAgICAgbGli eGxfcGFzc3Rocm91Z2hfdG9fc3RyaW5nKGluZm8tPnBhc3N0aHJvdWdoKSk7Ci0KLSAgICAgICAg aWYgKGluZm8tPnBhc3N0aHJvdWdoICE9IExJQlhMX1BBU1NUSFJPVUdIX0RJU0FCTEVEKQotICAg ICAgICAgICAgY3JlYXRlLmZsYWdzIHw9IFhFTl9ET01DVExfQ0RGX2lvbW11OwotCi0gICAgICAg IGlmIChpbmZvLT5wYXNzdGhyb3VnaCA9PSBMSUJYTF9QQVNTVEhST1VHSF9TWU5DX1BUKQotICAg ICAgICAgICAgY3JlYXRlLmlvbW11X29wdHMgfD0gWEVOX0RPTUNUTF9JT01NVV9ub19zaGFyZXB0 OwotCi0gICAgICAgIC8qIFVsdGltYXRlbHksIGhhbmRsZSBpcyBhbiBhcnJheSBvZiAxNiB1aW50 OF90LCBzYW1lIGFzIHV1aWQgKi8KLSAgICAgICAgbGlieGxfdXVpZF9jb3B5KGN0eCwgKGxpYnhs X3V1aWQgKikmY3JlYXRlLmhhbmRsZSwgJmluZm8tPnV1aWQpOwotCi0gICAgICAgIHJldCA9IGxp YnhsX19hcmNoX2RvbWFpbl9wcmVwYXJlX2NvbmZpZyhnYywgZF9jb25maWcsICZjcmVhdGUpOwot ICAgICAgICBpZiAocmV0IDwgMCkgewotICAgICAgICAgICAgTE9HRUQoRVJST1IsICpkb21pZCwg ImZhaWwgdG8gZ2V0IGRvbWFpbiBjb25maWciKTsKLSAgICAgICAgICAgIHJjID0gRVJST1JfRkFJ TDsKLSAgICAgICAgICAgIGdvdG8gb3V0OwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0ID0geGNf ZG9tYWluX2NyZWF0ZShjdHgtPnhjaCwgZG9taWQsICZjcmVhdGUpOwotICAgICAgICBpZiAocmV0 IDwgMCkgewotICAgICAgICAgICAgTE9HRUQoRVJST1IsICpkb21pZCwgImRvbWFpbiBjcmVhdGlv biBmYWlsIik7Ci0gICAgICAgICAgICByYyA9IEVSUk9SX0ZBSUw7Ci0gICAgICAgICAgICBnb3Rv IG91dDsKLSAgICAgICAgfQotCi0gICAgICAgIHJjID0gbGlieGxfX2FyY2hfZG9tYWluX3NhdmVf Y29uZmlnKGdjLCBkX2NvbmZpZywgc3RhdGUsICZjcmVhdGUpOwotICAgICAgICBpZiAocmMgPCAw KQotICAgICAgICAgICAgZ290byBvdXQ7Ci0gICAgfQotCi0gICAgcmV0ID0geGNfY3B1cG9vbF9t b3ZlZG9tYWluKGN0eC0+eGNoLCBpbmZvLT5wb29saWQsICpkb21pZCk7Ci0gICAgaWYgKHJldCA8 IDApIHsKLSAgICAgICAgTE9HRUQoRVJST1IsICpkb21pZCwgImRvbWFpbiBtb3ZlIGZhaWwiKTsK LSAgICAgICAgcmMgPSBFUlJPUl9GQUlMOwotICAgICAgICBnb3RvIG91dDsKLSAgICB9Ci0KLSAg ICBkb21fcGF0aCA9IGxpYnhsX194c19nZXRfZG9tcGF0aChnYywgKmRvbWlkKTsKKyAgICBkb21f cGF0aCA9IGxpYnhsX194c19nZXRfZG9tcGF0aChnYywgZG9taWQpOwogICAgIGlmICghZG9tX3Bh dGgpIHsKICAgICAgICAgcmMgPSBFUlJPUl9GQUlMOwogICAgICAgICBnb3RvIG91dDsKQEAgLTYy NiwxMiArNTY4LDEyIEBAIGludCBsaWJ4bF9fZG9tYWluX21ha2UobGlieGxfX2djICpnYywgbGli eGxfZG9tYWluX2NvbmZpZyAqZF9jb25maWcsCiAKICAgICB2bV9wYXRoID0gR0NTUFJJTlRGKCIv dm0vJXMiLCB1dWlkX3N0cmluZyk7CiAgICAgaWYgKCF2bV9wYXRoKSB7Ci0gICAgICAgIExPR0Qo RVJST1IsICpkb21pZCwgImNhbm5vdCBhbGxvY2F0ZSBjcmVhdGUgcGF0aHMiKTsKKyAgICAgICAg TE9HRChFUlJPUiwgZG9taWQsICJjYW5ub3QgYWxsb2NhdGUgY3JlYXRlIHBhdGhzIik7CiAgICAg ICAgIHJjID0gRVJST1JfRkFJTDsKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQogCi0gICAgbGli eGxfcGF0aCA9IGxpYnhsX194c19saWJ4bF9wYXRoKGdjLCAqZG9taWQpOworICAgIGxpYnhsX3Bh dGggPSBsaWJ4bF9feHNfbGlieGxfcGF0aChnYywgZG9taWQpOwogICAgIGlmICghbGlieGxfcGF0 aCkgewogICAgICAgICByYyA9IEVSUk9SX0ZBSUw7CiAgICAgICAgIGdvdG8gb3V0OwpAQCAtNjQy LDEwICs1ODQsMTAgQEAgaW50IGxpYnhsX19kb21haW5fbWFrZShsaWJ4bF9fZ2MgKmdjLCBsaWJ4 bF9kb21haW5fY29uZmlnICpkX2NvbmZpZywKIAogICAgIHJvcGVybVswXS5pZCA9IDA7CiAgICAg cm9wZXJtWzBdLnBlcm1zID0gWFNfUEVSTV9OT05FOwotICAgIHJvcGVybVsxXS5pZCA9ICpkb21p ZDsKKyAgICByb3Blcm1bMV0uaWQgPSBkb21pZDsKICAgICByb3Blcm1bMV0ucGVybXMgPSBYU19Q RVJNX1JFQUQ7CiAKLSAgICByd3Blcm1bMF0uaWQgPSAqZG9taWQ7CisgICAgcndwZXJtWzBdLmlk ID0gZG9taWQ7CiAgICAgcndwZXJtWzBdLnBlcm1zID0gWFNfUEVSTV9OT05FOwogCiByZXRyeV90 cmFuc2FjdGlvbjoKQEAgLTY2Myw3ICs2MDUsNyBAQCByZXRyeV90cmFuc2FjdGlvbjoKICAgICAg ICAgICAgICAgICAgICAgbm9wZXJtLCBBUlJBWV9TSVpFKG5vcGVybSkpOwogCiAgICAgeHNfd3Jp dGUoY3R4LT54c2gsIHQsIEdDU1BSSU5URigiJXMvdm0iLCBkb21fcGF0aCksIHZtX3BhdGgsIHN0 cmxlbih2bV9wYXRoKSk7Ci0gICAgcmMgPSBsaWJ4bF9fZG9tYWluX3JlbmFtZShnYywgKmRvbWlk LCAwLCBpbmZvLT5uYW1lLCB0KTsKKyAgICByYyA9IGxpYnhsX19kb21haW5fcmVuYW1lKGdjLCBk b21pZCwgMCwgaW5mby0+bmFtZSwgdCk7CiAgICAgaWYgKHJjKQogICAgICAgICBnb3RvIG91dDsK IApAQCAtNzQwLDcgKzY4Miw3IEBAIHJldHJ5X3RyYW5zYWN0aW9uOgogCiAgICAgdm1fbGlzdCA9 IGxpYnhsX2xpc3Rfdm0oY3R4LCAmbmJfdm0pOwogICAgIGlmICghdm1fbGlzdCkgewotICAgICAg ICBMT0dEKEVSUk9SLCAqZG9taWQsICJjYW5ub3QgZ2V0IG51bWJlciBvZiBydW5uaW5nIGd1ZXN0 cyIpOworICAgICAgICBMT0dEKEVSUk9SLCBkb21pZCwgImNhbm5vdCBnZXQgbnVtYmVyIG9mIHJ1 bm5pbmcgZ3Vlc3RzIik7CiAgICAgICAgIHJjID0gRVJST1JfRkFJTDsKICAgICAgICAgZ290byBv dXQ7CiAgICAgfQpAQCAtNzY0LDcgKzcwNiw3IEBAIHJldHJ5X3RyYW5zYWN0aW9uOgogICAgICAg ICAgICAgdCA9IDA7CiAgICAgICAgICAgICBnb3RvIHJldHJ5X3RyYW5zYWN0aW9uOwogICAgICAg ICB9Ci0gICAgICAgIExPR0VEKEVSUk9SLCAqZG9taWQsICJkb21haW4gY3JlYXRpb24gIiJ4ZW5z dG9yZSB0cmFuc2FjdGlvbiBjb21taXQgZmFpbGVkIik7CisgICAgICAgIExPR0VEKEVSUk9SLCBk b21pZCwgImRvbWFpbiBjcmVhdGlvbiAiInhlbnN0b3JlIHRyYW5zYWN0aW9uIGNvbW1pdCBmYWls ZWQiKTsKICAgICAgICAgcmMgPSBFUlJPUl9GQUlMOwogICAgICAgICBnb3RvIG91dDsKICAgICB9 CkBAIC03NzYsNiArNzE4LDgwIEBAIHJldHJ5X3RyYW5zYWN0aW9uOgogICAgIHJldHVybiByYzsK IH0KIAoraW50IGxpYnhsX19kb21haW5fbWFrZShsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9kb21haW5f Y29uZmlnICpkX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2RvbWFpbl9i dWlsZF9zdGF0ZSAqc3RhdGUsCisgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpkb21p ZCkKK3sKKyAgICBsaWJ4bF9jdHggKmN0eCA9IGxpYnhsX19nY19vd25lcihnYyk7CisgICAgaW50 IHJldCwgcmM7CisKKyAgICAvKiBjb252ZW5pZW5jZSBhbGlhc2VzICovCisgICAgbGlieGxfZG9t YWluX2NyZWF0ZV9pbmZvICppbmZvID0gJmRfY29uZmlnLT5jX2luZm87CisgICAgbGlieGxfZG9t YWluX2J1aWxkX2luZm8gKmJfaW5mbyA9ICZkX2NvbmZpZy0+Yl9pbmZvOworCisgICAgLyogVmFs aWQgZG9taWQgaGVyZSBtZWFucyB3ZSdyZSBzb2Z0IHJlc2V0dGluZy4gKi8KKyAgICBpZiAoIWxp YnhsX2RvbWlkX3ZhbGlkX2d1ZXN0KCpkb21pZCkpIHsKKyAgICAgICAgc3RydWN0IHhlbl9kb21j dGxfY3JlYXRlZG9tYWluIGNyZWF0ZSA9IHsKKyAgICAgICAgICAgIC5zc2lkcmVmID0gaW5mby0+ c3NpZHJlZiwKKyAgICAgICAgICAgIC5tYXhfdmNwdXMgPSBiX2luZm8tPm1heF92Y3B1cywKKyAg ICAgICAgICAgIC5tYXhfZXZ0Y2huX3BvcnQgPSBiX2luZm8tPmV2ZW50X2NoYW5uZWxzLAorICAg ICAgICAgICAgLm1heF9ncmFudF9mcmFtZXMgPSBiX2luZm8tPm1heF9ncmFudF9mcmFtZXMsCisg ICAgICAgICAgICAubWF4X21hcHRyYWNrX2ZyYW1lcyA9IGJfaW5mby0+bWF4X21hcHRyYWNrX2Zy YW1lcywKKyAgICAgICAgfTsKKworICAgICAgICBpZiAoaW5mby0+dHlwZSAhPSBMSUJYTF9ET01B SU5fVFlQRV9QVikgeworICAgICAgICAgICAgY3JlYXRlLmZsYWdzIHw9IFhFTl9ET01DVExfQ0RG X2h2bTsKKyAgICAgICAgICAgIGNyZWF0ZS5mbGFncyB8PQorICAgICAgICAgICAgICAgIGxpYnhs X2RlZmJvb2xfdmFsKGluZm8tPmhhcCkgPyBYRU5fRE9NQ1RMX0NERl9oYXAgOiAwOworICAgICAg ICAgICAgY3JlYXRlLmZsYWdzIHw9CisgICAgICAgICAgICAgICAgbGlieGxfZGVmYm9vbF92YWwo aW5mby0+b29zKSA/IDAgOiBYRU5fRE9NQ1RMX0NERl9vb3Nfb2ZmOworICAgICAgICB9CisKKyAg ICAgICAgYXNzZXJ0KGluZm8tPnBhc3N0aHJvdWdoICE9IExJQlhMX1BBU1NUSFJPVUdIX0RFRkFV TFQpOworICAgICAgICBMT0coREVUQUlMLCAicGFzc3Rocm91Z2g6ICVzIiwKKyAgICAgICAgICAg IGxpYnhsX3Bhc3N0aHJvdWdoX3RvX3N0cmluZyhpbmZvLT5wYXNzdGhyb3VnaCkpOworCisgICAg ICAgIGlmIChpbmZvLT5wYXNzdGhyb3VnaCAhPSBMSUJYTF9QQVNTVEhST1VHSF9ESVNBQkxFRCkK KyAgICAgICAgICAgIGNyZWF0ZS5mbGFncyB8PSBYRU5fRE9NQ1RMX0NERl9pb21tdTsKKworICAg ICAgICBpZiAoaW5mby0+cGFzc3Rocm91Z2ggPT0gTElCWExfUEFTU1RIUk9VR0hfU1lOQ19QVCkK KyAgICAgICAgICAgIGNyZWF0ZS5pb21tdV9vcHRzIHw9IFhFTl9ET01DVExfSU9NTVVfbm9fc2hh cmVwdDsKKworICAgICAgICAvKiBVbHRpbWF0ZWx5LCBoYW5kbGUgaXMgYW4gYXJyYXkgb2YgMTYg dWludDhfdCwgc2FtZSBhcyB1dWlkICovCisgICAgICAgIGxpYnhsX3V1aWRfY29weShjdHgsIChs aWJ4bF91dWlkICopJmNyZWF0ZS5oYW5kbGUsICZpbmZvLT51dWlkKTsKKworICAgICAgICByZXQg PSBsaWJ4bF9fYXJjaF9kb21haW5fcHJlcGFyZV9jb25maWcoZ2MsIGRfY29uZmlnLCAmY3JlYXRl KTsKKyAgICAgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgICAgIExPR0VEKEVSUk9SLCAqZG9t aWQsICJmYWlsIHRvIGdldCBkb21haW4gY29uZmlnIik7CisgICAgICAgICAgICByYyA9IEVSUk9S X0ZBSUw7CisgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgfQorCisgICAgICAgIHJldCA9 IHhjX2RvbWFpbl9jcmVhdGUoY3R4LT54Y2gsIGRvbWlkLCAmY3JlYXRlKTsKKyAgICAgICAgaWYg KHJldCA8IDApIHsKKyAgICAgICAgICAgIExPR0VEKEVSUk9SLCAqZG9taWQsICJkb21haW4gY3Jl YXRpb24gZmFpbCIpOworICAgICAgICAgICAgcmMgPSBFUlJPUl9GQUlMOworICAgICAgICAgICAg Z290byBvdXQ7CisgICAgICAgIH0KKworICAgICAgICByYyA9IGxpYnhsX19hcmNoX2RvbWFpbl9z YXZlX2NvbmZpZyhnYywgZF9jb25maWcsIHN0YXRlLCAmY3JlYXRlKTsKKyAgICAgICAgaWYgKHJj IDwgMCkKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIHJldCA9IHhjX2NwdXBv b2xfbW92ZWRvbWFpbihjdHgtPnhjaCwgaW5mby0+cG9vbGlkLCAqZG9taWQpOworICAgIGlmIChy ZXQgPCAwKSB7CisgICAgICAgIExPR0VEKEVSUk9SLCAqZG9taWQsICJkb21haW4gbW92ZSBmYWls Iik7CisgICAgICAgIHJjID0gRVJST1JfRkFJTDsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQor CisgICAgcmMgPSBsaWJ4bF9fZG9tYWluX21ha2VfeHNfZW50cmllcyhnYywgZF9jb25maWcsIHN0 YXRlLCAqZG9taWQpOworCitvdXQ6CisgICAgcmV0dXJuIHJjOworfQorCiBzdGF0aWMgaW50IHN0 b3JlX2xpYnhsX2VudHJ5KGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqYl9pbmZvKQogewpA QCAtMTA5NywxNSArMTExMywzMSBAQCBzdGF0aWMgdm9pZCBpbml0aWF0ZV9kb21haW5fY3JlYXRl KGxpYnhsX19lZ2MgKmVnYywKICAgICByZXQgPSBsaWJ4bF9fZG9tYWluX2NvbmZpZ19zZXRkZWZh dWx0KGdjLGRfY29uZmlnLGRvbWlkKTsKICAgICBpZiAocmV0KSBnb3RvIGVycm9yX291dDsKIAot ICAgIHJldCA9IGxpYnhsX19kb21haW5fbWFrZShnYywgZF9jb25maWcsICZkY3MtPmJ1aWxkX3N0 YXRlLCAmZG9taWQpOwotICAgIGlmIChyZXQpIHsKLSAgICAgICAgTE9HRChFUlJPUiwgZG9taWQs ICJjYW5ub3QgbWFrZSBkb21haW46ICVkIiwgcmV0KTsKKyAgICBpZiAoICFkX2NvbmZpZy0+ZG1f cmVzdG9yZV9maWxlICkKKyAgICB7CisgICAgICAgIHJldCA9IGxpYnhsX19kb21haW5fbWFrZShn YywgZF9jb25maWcsICZkY3MtPmJ1aWxkX3N0YXRlLCAmZG9taWQpOwogICAgICAgICBkY3MtPmd1 ZXN0X2RvbWlkID0gZG9taWQ7CisKKyAgICAgICAgaWYgKHJldCkgeworICAgICAgICAgICAgTE9H RChFUlJPUiwgZG9taWQsICJjYW5ub3QgbWFrZSBkb21haW46ICVkIiwgcmV0KTsKKyAgICAgICAg ICAgIHJldCA9IEVSUk9SX0ZBSUw7CisgICAgICAgICAgICBnb3RvIGVycm9yX291dDsKKyAgICAg ICAgfQorICAgIH0gZWxzZSBpZiAoIGRjcy0+Z3Vlc3RfZG9taWQgIT0gSU5WQUxJRF9ET01JRCAp IHsKKyAgICAgICAgZG9taWQgPSBkY3MtPmd1ZXN0X2RvbWlkOworCisgICAgICAgIHJldCA9IGxp YnhsX19kb21haW5fbWFrZV94c19lbnRyaWVzKGdjLCBkX2NvbmZpZywgJmRjcy0+YnVpbGRfc3Rh dGUsIGRvbWlkKTsKKyAgICAgICAgaWYgKHJldCkgeworICAgICAgICAgICAgTE9HRChFUlJPUiwg ZG9taWQsICJjYW5ub3QgbWFrZSBkb21haW46ICVkIiwgcmV0KTsKKyAgICAgICAgICAgIHJldCA9 IEVSUk9SX0ZBSUw7CisgICAgICAgICAgICBnb3RvIGVycm9yX291dDsKKyAgICAgICAgfQorICAg IH0gZWxzZSB7CisgICAgICAgIExPR0QoRVJST1IsIGRvbWlkLCAiY2Fubm90IG1ha2UgZG9tYWlu Iik7CiAgICAgICAgIHJldCA9IEVSUk9SX0ZBSUw7CiAgICAgICAgIGdvdG8gZXJyb3Jfb3V0Owog ICAgIH0KIAotICAgIGRjcy0+Z3Vlc3RfZG9taWQgPSBkb21pZDsKICAgICBkY3MtPnNkc3MuZG0u Z3Vlc3RfZG9taWQgPSAwOyAvKiBtZWFucyB3ZSBoYXZlbid0IHNwYXduZWQgKi8KIAogICAgIC8q IHBvc3QtNC4xMyB0b2RvOiBtb3ZlIHRoZXNlIG5leHQgYml0cyBvZiBkZWZhdWx0aW5nIHRvCkBA IC0xMTQxLDcgKzExNzMsNyBAQCBzdGF0aWMgdm9pZCBpbml0aWF0ZV9kb21haW5fY3JlYXRlKGxp YnhsX19lZ2MgKmVnYywKICAgICBpZiAocmV0KQogICAgICAgICBnb3RvIGVycm9yX291dDsKIAot ICAgIGlmIChyZXN0b3JlX2ZkID49IDAgfHwgZGNzLT5kb21pZF9zb2Z0X3Jlc2V0ICE9IElOVkFM SURfRE9NSUQpIHsKKyAgICBpZiAocmVzdG9yZV9mZCA+PSAwIHx8IGRjcy0+ZG9taWRfc29mdF9y ZXNldCAhPSBJTlZBTElEX0RPTUlEIHx8IGRfY29uZmlnLT5kbV9yZXN0b3JlX2ZpbGUpIHsKICAg ICAgICAgTE9HRChERUJVRywgZG9taWQsICJyZXN0b3JpbmcsIG5vdCBydW5uaW5nIGJvb3Rsb2Fk ZXIiKTsKICAgICAgICAgZG9tY3JlYXRlX2Jvb3Rsb2FkZXJfZG9uZShlZ2MsICZkY3MtPmJsLCAw KTsKICAgICB9IGVsc2UgIHsKQEAgLTEyMTcsNyArMTI0OSwxNiBAQCBzdGF0aWMgdm9pZCBkb21j cmVhdGVfYm9vdGxvYWRlcl9kb25lKGxpYnhsX19lZ2MgKmVnYywKICAgICBkY3MtPnNkc3MuZG0u Y2FsbGJhY2sgPSBkb21jcmVhdGVfZGV2bW9kZWxfc3RhcnRlZDsKICAgICBkY3MtPnNkc3MuY2Fs bGJhY2sgPSBkb21jcmVhdGVfZGV2bW9kZWxfc3RhcnRlZDsKIAotICAgIGlmIChyZXN0b3JlX2Zk IDwgMCAmJiBkY3MtPmRvbWlkX3NvZnRfcmVzZXQgPT0gSU5WQUxJRF9ET01JRCkgeworICAgIGlm IChyZXN0b3JlX2ZkIDwgMCAmJiBkY3MtPmRvbWlkX3NvZnRfcmVzZXQgPT0gSU5WQUxJRF9ET01J RCAmJiAhZF9jb25maWctPmRtX3Jlc3RvcmVfZmlsZSkgeworICAgICAgICByYyA9IGxpYnhsX19k b21haW5fYnVpbGQoZ2MsIGRvbWlkLCBkY3MpOworICAgICAgICBkb21jcmVhdGVfcmVidWlsZF9k b25lKGVnYywgZGNzLCByYyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIGRf Y29uZmlnLT5kbV9yZXN0b3JlX2ZpbGUgKSB7CisgICAgICAgIGRjcy0+c3JzLmRjcyA9IGRjczsK KyAgICAgICAgZGNzLT5zcnMuYW8gPSBhbzsKKyAgICAgICAgc3RhdGUtPmZvcmtlZF92bSA9IHRy dWU7CiAgICAgICAgIHJjID0gbGlieGxfX2RvbWFpbl9idWlsZChnYywgZG9taWQsIGRjcyk7CiAg ICAgICAgIGRvbWNyZWF0ZV9yZWJ1aWxkX2RvbmUoZWdjLCBkY3MsIHJjKTsKICAgICAgICAgcmV0 dXJuOwpAQCAtMTQxNSw2ICsxNDU2LDcgQEAgc3RhdGljIHZvaWQgZG9tY3JlYXRlX3JlYnVpbGRf ZG9uZShsaWJ4bF9fZWdjICplZ2MsCiAgICAgLyogY29udmVuaWVuY2UgYWxpYXNlcyAqLwogICAg IGNvbnN0IHVpbnQzMl90IGRvbWlkID0gZGNzLT5ndWVzdF9kb21pZDsKICAgICBsaWJ4bF9kb21h aW5fY29uZmlnICpjb25zdCBkX2NvbmZpZyA9IGRjcy0+Z3Vlc3RfY29uZmlnOworICAgIGxpYnhs X19kb21haW5fYnVpbGRfc3RhdGUgKmNvbnN0IHN0YXRlID0gJmRjcy0+YnVpbGRfc3RhdGU7CiAK ICAgICBpZiAocmV0KSB7CiAgICAgICAgIExPR0QoRVJST1IsIGRvbWlkLCAiY2Fubm90IChyZS0p YnVpbGQgZG9tYWluOiAlZCIsIHJldCk7CkBAIC0xNDIyLDYgKzE0NjQsOSBAQCBzdGF0aWMgdm9p ZCBkb21jcmVhdGVfcmVidWlsZF9kb25lKGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgZ290byBl cnJvcl9vdXQ7CiAgICAgfQogCisgICAgaWYgKCBkX2NvbmZpZy0+ZG1fcmVzdG9yZV9maWxlICkK KyAgICAgICAgc3RhdGUtPnNhdmVkX3N0YXRlID0gR0NTUFJJTlRGKCIlcyIsIGRfY29uZmlnLT5k bV9yZXN0b3JlX2ZpbGUpOworCiAgICAgc3RvcmVfbGlieGxfZW50cnkoZ2MsIGRvbWlkLCAmZF9j b25maWctPmJfaW5mbyk7CiAKICAgICBsaWJ4bF9fbXVsdGlkZXZfYmVnaW4oYW8sICZkY3MtPm11 bHRpZGV2KTsKQEAgLTE4MjMsMTAgKzE4NjgsMTMgQEAgc3RhdGljIGludCBkb19kb21haW5fY3Jl YXRlKGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9kb21haW5fY29uZmlnICpkX2NvbmZpZywKICAgICBH Q05FVyhjZGNzKTsKICAgICBjZGNzLT5kY3MuYW8gPSBhbzsKICAgICBjZGNzLT5kY3MuZ3Vlc3Rf Y29uZmlnID0gZF9jb25maWc7CisgICAgY2Rjcy0+ZGNzLmd1ZXN0X2RvbWlkID0gKmRvbWlkOwor CiAgICAgbGlieGxfZG9tYWluX2NvbmZpZ19pbml0KCZjZGNzLT5kY3MuZ3Vlc3RfY29uZmlnX3Nh dmVkKTsKICAgICBsaWJ4bF9kb21haW5fY29uZmlnX2NvcHkoY3R4LCAmY2Rjcy0+ZGNzLmd1ZXN0 X2NvbmZpZ19zYXZlZCwgZF9jb25maWcpOwogICAgIGNkY3MtPmRjcy5yZXN0b3JlX2ZkID0gY2Rj cy0+ZGNzLmxpYnhjX2ZkID0gcmVzdG9yZV9mZDsKICAgICBjZGNzLT5kY3Muc2VuZF9iYWNrX2Zk ID0gc2VuZF9iYWNrX2ZkOworCiAgICAgaWYgKHJlc3RvcmVfZmQgPiAtMSkgewogICAgICAgICBj ZGNzLT5kY3MucmVzdG9yZV9wYXJhbXMgPSAqcGFyYW1zOwogICAgICAgICByYyA9IGxpYnhsX19m ZF9mbGFnc19tb2RpZnlfc2F2ZShnYywgY2Rjcy0+ZGNzLnJlc3RvcmVfZmQsCkBAIC0yMDY5LDYg KzIxMTcsNDMgQEAgaW50IGxpYnhsX2RvbWFpbl9jcmVhdGVfbmV3KGxpYnhsX2N0eCAqY3R4LCBs aWJ4bF9kb21haW5fY29uZmlnICpkX2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhb19ob3csIGFvcF9jb25zb2xlX2hvdyk7CiB9CiAKK2ludCBsaWJ4bF9kb21haW5fZm9ya192 bShsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgcGRvbWlkLCB1aW50MzJfdCAqZG9taWQpCit7Cisg ICAgaW50IHJjOworICAgIHN0cnVjdCB4ZW5fZG9tY3RsX2NyZWF0ZWRvbWFpbiBjcmVhdGUgPSB7 MH07CisgICAgY3JlYXRlLmZsYWdzIHw9IFhFTl9ET01DVExfQ0RGX2h2bTsKKyAgICBjcmVhdGUu ZmxhZ3MgfD0gWEVOX0RPTUNUTF9DREZfaGFwOworICAgIGNyZWF0ZS5mbGFncyB8PSBYRU5fRE9N Q1RMX0NERl9vb3Nfb2ZmOworICAgIGNyZWF0ZS5hcmNoLmVtdWxhdGlvbl9mbGFncyA9IChYRU5f WDg2X0VNVV9BTEwgJiB+WEVOX1g4Nl9FTVVfVlBDSSk7CisKKyAgICBjcmVhdGUuc3NpZHJlZiA9 IFNFQ0lOSVRTSURfRE9NVTsKKyAgICBjcmVhdGUubWF4X3ZjcHVzID0gMTsgLy8gcGxhY2Vob2xk ZXIsIHdpbGwgYmUgY2xvbmVkIGZyb20gcGRvbWlkCisgICAgY3JlYXRlLm1heF9ldnRjaG5fcG9y dCA9IDEwMjM7CisgICAgY3JlYXRlLm1heF9ncmFudF9mcmFtZXMgPSBMSUJYTF9NQVhfR1JBTlRf RlJBTUVTX0RFRkFVTFQ7CisgICAgY3JlYXRlLm1heF9tYXB0cmFja19mcmFtZXMgPSBMSUJYTF9N QVhfTUFQVFJBQ0tfRlJBTUVTX0RFRkFVTFQ7CisKKyAgICBpZiAoIChyYyA9IHhjX2RvbWFpbl9j cmVhdGUoY3R4LT54Y2gsIGRvbWlkLCAmY3JlYXRlKSkgKQorICAgICAgICByZXR1cm4gcmM7CisK KyAgICBpZiAoIChyYyA9IHhjX21lbXNocl9mb3JrKGN0eC0+eGNoLCBwZG9taWQsICpkb21pZCkp ICkKKyAgICAgICAgeGNfZG9tYWluX2Rlc3Ryb3koY3R4LT54Y2gsICpkb21pZCk7CisKKyAgICBy ZXR1cm4gcmM7Cit9CisKK2ludCBsaWJ4bF9kb21haW5fZm9ya19sYXVuY2hfZG0obGlieGxfY3R4 ICpjdHgsIGxpYnhsX2RvbWFpbl9jb25maWcgKmRfY29uZmlnLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgbGlieGxfYXN5bmNwcm9ncmVzc19ob3cgKmFvcF9jb25zb2xlX2hvdykKK3sK KyAgICB1bnNldF9kaXNrX2NvbG9fcmVzdG9yZShkX2NvbmZpZyk7CisgICAgcmV0dXJuIGRvX2Rv bWFpbl9jcmVhdGUoY3R4LCBkX2NvbmZpZywgJmRvbWlkLCAtMSwgLTEsIDAsIDAsIGFvcF9jb25z b2xlX2hvdyk7Cit9CisKK2ludCBsaWJ4bF9kb21haW5fZm9ya19yZXNldChsaWJ4bF9jdHggKmN0 eCwgdWludDMyX3QgZG9taWQpCit7CisgICAgcmV0dXJuIHhjX21lbXNocl9mb3JrX3Jlc2V0KGN0 eC0+eGNoLCBkb21pZCk7Cit9CisKIGludCBsaWJ4bF9kb21haW5fY3JlYXRlX3Jlc3RvcmUobGli eGxfY3R4ICpjdHgsIGxpYnhsX2RvbWFpbl9jb25maWcgKmRfY29uZmlnLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqZG9taWQsIGludCByZXN0b3JlX2ZkLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2VuZF9iYWNrX2ZkLApkaWZmIC0tZ2l0 IGEvdG9vbHMvbGlieGwvbGlieGxfZG0uYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMKaW5kZXgg M2YwOGNjYWQxYi4uMzc5MTRlM2Q4NiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfZG0u YworKysgYi90b29scy9saWJ4bC9saWJ4bF9kbS5jCkBAIC0yNzg4LDcgKzI3ODgsNyBAQCBzdGF0 aWMgdm9pZCBkZXZpY2VfbW9kZWxfc3Bhd25fb3V0Y29tZShsaWJ4bF9fZWdjICplZ2MsCiAKICAg ICBsaWJ4bF9fZG9tYWluX2J1aWxkX3N0YXRlICpzdGF0ZSA9IGRtc3MtPmJ1aWxkX3N0YXRlOwog Ci0gICAgaWYgKHN0YXRlLT5zYXZlZF9zdGF0ZSkgeworICAgIGlmIChzdGF0ZS0+c2F2ZWRfc3Rh dGUgJiYgIXN0YXRlLT5mb3JrZWRfdm0pIHsKICAgICAgICAgcmV0MiA9IHVubGluayhzdGF0ZS0+ c2F2ZWRfc3RhdGUpOwogICAgICAgICBpZiAocmV0MikgewogICAgICAgICAgICAgTE9HRUQoRVJS T1IsIGRtc3MtPmd1ZXN0X2RvbWlkLCAiJXM6IGZhaWxlZCB0byByZW1vdmUgZGV2aWNlLW1vZGVs IHN0YXRlICVzIiwKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jIGIvdG9vbHMv bGlieGwvbGlieGxfZG9tLmMKaW5kZXggZTBiNmQ0YThkMy4uODcxYjM3MTJlMyAxMDA2NDQKLS0t IGEvdG9vbHMvbGlieGwvbGlieGxfZG9tLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfZG9tLmMK QEAgLTM5NCw5ICszOTQsMTIgQEAgaW50IGxpYnhsX19idWlsZF9wcmUobGlieGxfX2djICpnYywg dWludDMyX3QgZG9taWQsCiAgICAgbGlieGxfX2RvbWFpbl9idWlsZF9zdGF0ZSAqc3RhdGUgPSAm ZGNzLT5idWlsZF9zdGF0ZTsKICAgICBsaWJ4bF9jdHggKmN0eCA9IGxpYnhsX19nY19vd25lcihn Yyk7CiAgICAgY2hhciAqeHNfZG9taWQsICpjb25fZG9taWQ7Ci0gICAgaW50IHJjOworICAgIGlu dCByYyA9IDA7CiAgICAgdWludDY0X3Qgc2l6ZTsKIAorICAgIGlmICggc3RhdGUtPmZvcmtlZF92 bSApCisgICAgICAgIGdvdG8gc2tpcF9mb3JrOworCiAgICAgaWYgKHhjX2RvbWFpbl9tYXhfdmNw dXMoY3R4LT54Y2gsIGRvbWlkLCBpbmZvLT5tYXhfdmNwdXMpICE9IDApIHsKICAgICAgICAgTE9H KEVSUk9SLCAiQ291bGRuJ3Qgc2V0IG1heCB2Y3B1IGNvdW50Iik7CiAgICAgICAgIHJldHVybiBF UlJPUl9GQUlMOwpAQCAtNTAxLDI5ICs1MDQsNiBAQCBpbnQgbGlieGxfX2J1aWxkX3ByZShsaWJ4 bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgfQogICAgIH0KIAotCi0gICAgcmMg PSBsaWJ4bF9fYXJjaF9leHRyYV9tZW1vcnkoZ2MsIGluZm8sICZzaXplKTsKLSAgICBpZiAocmMg PCAwKSB7Ci0gICAgICAgIExPR0UoRVJST1IsICJDb3VsZG4ndCBnZXQgYXJjaCBleHRyYSBjb25z dGFudCBtZW1vcnkgc2l6ZSIpOwotICAgICAgICByZXR1cm4gRVJST1JfRkFJTDsKLSAgICB9Ci0K LSAgICBpZiAoeGNfZG9tYWluX3NldG1heG1lbShjdHgtPnhjaCwgZG9taWQsIGluZm8tPnRhcmdl dF9tZW1rYiArIHNpemUpIDwgMCkgewotICAgICAgICBMT0dFKEVSUk9SLCAiQ291bGRuJ3Qgc2V0 IG1heCBtZW1vcnkiKTsKLSAgICAgICAgcmV0dXJuIEVSUk9SX0ZBSUw7Ci0gICAgfQotCi0gICAg eHNfZG9taWQgPSB4c19yZWFkKGN0eC0+eHNoLCBYQlRfTlVMTCwgIi90b29sL3hlbnN0b3JlZC9k b21pZCIsIE5VTEwpOwotICAgIHN0YXRlLT5zdG9yZV9kb21pZCA9IHhzX2RvbWlkID8gYXRvaSh4 c19kb21pZCkgOiAwOwotICAgIGZyZWUoeHNfZG9taWQpOwotCi0gICAgY29uX2RvbWlkID0geHNf cmVhZChjdHgtPnhzaCwgWEJUX05VTEwsICIvdG9vbC94ZW5jb25zb2xlZC9kb21pZCIsIE5VTEwp OwotICAgIHN0YXRlLT5jb25zb2xlX2RvbWlkID0gY29uX2RvbWlkID8gYXRvaShjb25fZG9taWQp IDogMDsKLSAgICBmcmVlKGNvbl9kb21pZCk7Ci0KLSAgICBzdGF0ZS0+c3RvcmVfcG9ydCA9IHhj X2V2dGNobl9hbGxvY191bmJvdW5kKGN0eC0+eGNoLCBkb21pZCwgc3RhdGUtPnN0b3JlX2RvbWlk KTsKLSAgICBzdGF0ZS0+Y29uc29sZV9wb3J0ID0geGNfZXZ0Y2huX2FsbG9jX3VuYm91bmQoY3R4 LT54Y2gsIGRvbWlkLCBzdGF0ZS0+Y29uc29sZV9kb21pZCk7Ci0KICAgICBpZiAoaW5mby0+dHlw ZSAhPSBMSUJYTF9ET01BSU5fVFlQRV9QVikKICAgICAgICAgaHZtX3NldF9jb25mX3BhcmFtcyhj dHgtPnhjaCwgZG9taWQsIGluZm8pOwogCkBAIC01NTgsOCArNTM4LDM0IEBAIGludCBsaWJ4bF9f YnVpbGRfcHJlKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAg ICAgICAgICAgIGluZm8tPmFsdHAybSk7CiAgICAgfQogCisgICAgcmMgPSBsaWJ4bF9fYXJjaF9l eHRyYV9tZW1vcnkoZ2MsIGluZm8sICZzaXplKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAg IExPR0UoRVJST1IsICJDb3VsZG4ndCBnZXQgYXJjaCBleHRyYSBjb25zdGFudCBtZW1vcnkgc2l6 ZSIpOworICAgICAgICByZXR1cm4gRVJST1JfRkFJTDsKKyAgICB9CisKKyAgICBpZiAoeGNfZG9t YWluX3NldG1heG1lbShjdHgtPnhjaCwgZG9taWQsIGluZm8tPnRhcmdldF9tZW1rYiArIHNpemUp IDwgMCkgeworICAgICAgICBMT0dFKEVSUk9SLCAiQ291bGRuJ3Qgc2V0IG1heCBtZW1vcnkiKTsK KyAgICAgICAgcmV0dXJuIEVSUk9SX0ZBSUw7CisgICAgfQorCiAgICAgcmMgPSBsaWJ4bF9fYXJj aF9kb21haW5fY3JlYXRlKGdjLCBkX2NvbmZpZywgZG9taWQpOworICAgIGlmICggcmMgKQorICAg ICAgICBnb3RvIG91dDsKIAorc2tpcF9mb3JrOgorICAgIHhzX2RvbWlkID0geHNfcmVhZChjdHgt PnhzaCwgWEJUX05VTEwsICIvdG9vbC94ZW5zdG9yZWQvZG9taWQiLCBOVUxMKTsKKyAgICBzdGF0 ZS0+c3RvcmVfZG9taWQgPSB4c19kb21pZCA/IGF0b2koeHNfZG9taWQpIDogMDsKKyAgICBmcmVl KHhzX2RvbWlkKTsKKworICAgIGNvbl9kb21pZCA9IHhzX3JlYWQoY3R4LT54c2gsIFhCVF9OVUxM LCAiL3Rvb2wveGVuY29uc29sZWQvZG9taWQiLCBOVUxMKTsKKyAgICBzdGF0ZS0+Y29uc29sZV9k b21pZCA9IGNvbl9kb21pZCA/IGF0b2koY29uX2RvbWlkKSA6IDA7CisgICAgZnJlZShjb25fZG9t aWQpOworCisgICAgc3RhdGUtPnN0b3JlX3BvcnQgPSB4Y19ldnRjaG5fYWxsb2NfdW5ib3VuZChj dHgtPnhjaCwgZG9taWQsIHN0YXRlLT5zdG9yZV9kb21pZCk7CisgICAgc3RhdGUtPmNvbnNvbGVf cG9ydCA9IHhjX2V2dGNobl9hbGxvY191bmJvdW5kKGN0eC0+eGNoLCBkb21pZCwgc3RhdGUtPmNv bnNvbGVfZG9taWQpOworCitvdXQ6CiAgICAgcmV0dXJuIHJjOwogfQogCkBAIC02MTcsNiArNjIz LDkgQEAgaW50IGxpYnhsX19idWlsZF9wb3N0KGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlk LAogICAgIGNoYXIgKiplbnRzOwogICAgIGludCBpLCByYzsKIAorICAgIGlmICggc3RhdGUtPmZv cmtlZF92bSApCisgICAgICAgIGdvdG8gc2tpcF9mb3JrOworCiAgICAgaWYgKGluZm8tPm51bV92 bnVtYV9ub2RlcyAmJiAhaW5mby0+bnVtX3ZjcHVfc29mdF9hZmZpbml0eSkgewogICAgICAgICBy YyA9IHNldF92bnVtYV9hZmZpbml0eShnYywgZG9taWQsIGluZm8pOwogICAgICAgICBpZiAocmMp CkBAIC02NDEsNiArNjUwLDcgQEAgaW50IGxpYnhsX19idWlsZF9wb3N0KGxpYnhsX19nYyAqZ2Ms IHVpbnQzMl90IGRvbWlkLAogICAgICAgICB9CiAgICAgfQogCitza2lwX2Zvcms6CiAgICAgZW50 cyA9IGxpYnhsX19jYWxsb2MoZ2MsIDEyICsgKGluZm8tPm1heF92Y3B1cyAqIDIpICsgMiwgc2l6 ZW9mKGNoYXIgKikpOwogICAgIGVudHNbMF0gPSAibWVtb3J5L3N0YXRpYy1tYXgiOwogICAgIGVu dHNbMV0gPSBHQ1NQUklOVEYoIiUiUFJJZDY0LCBpbmZvLT5tYXhfbWVta2IpOwpAQCAtOTAzLDE0 ICs5MTMsMTYgQEAgc3RhdGljIGludCBodm1fYnVpbGRfc2V0X3BhcmFtcyh4Y19pbnRlcmZhY2Ug KmhhbmRsZSwgdWludDMyX3QgZG9taWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICppbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgc3RvcmVfZXZ0Y2huLCB1bnNpZ25lZCBsb25nICpzdG9yZV9tZm4sCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb25zb2xlX2V2dGNobiwgdW5zaWduZWQg bG9uZyAqY29uc29sZV9tZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlk X3Qgc3RvcmVfZG9taWQsIGRvbWlkX3QgY29uc29sZV9kb21pZCkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZG9taWRfdCBzdG9yZV9kb21pZCwgZG9taWRfdCBjb25zb2xlX2RvbWlk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGZvcmtlZF92bSkKIHsKICAg ICBzdHJ1Y3QgaHZtX2luZm9fdGFibGUgKnZhX2h2bTsKICAgICB1aW50OF90ICp2YV9tYXAsIHN1 bTsKICAgICB1aW50NjRfdCBzdHJfbWZuLCBjb25zX21mbjsKICAgICBpbnQgaTsKIAotICAgIGlm IChpbmZvLT50eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX0hWTSkgeworICAgIGlmICggaW5mby0+ dHlwZSA9PSBMSUJYTF9ET01BSU5fVFlQRV9IVk0gJiYgIWZvcmtlZF92bSApCisgICAgewogICAg ICAgICB2YV9tYXAgPSB4Y19tYXBfZm9yZWlnbl9yYW5nZShoYW5kbGUsIGRvbWlkLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYQ19QQUdFX1NJWkUsIFBST1RfUkVBRCB8 IFBST1RfV1JJVEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhWTV9J TkZPX1BGTik7CkBAIC0xMjI2LDYgKzEyMzgsMjMgQEAgaW50IGxpYnhsX19idWlsZF9odm0obGli eGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICAgc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9t ID0gTlVMTDsKICAgICBib29sIGRldmljZV9tb2RlbCA9IGluZm8tPnR5cGUgPT0gTElCWExfRE9N QUlOX1RZUEVfSFZNID8gdHJ1ZSA6IGZhbHNlOwogCisgICAgaWYgKCBzdGF0ZS0+Zm9ya2VkX3Zt ICkKKyAgICB7CisgICAgICAgIHJjID0gaHZtX2J1aWxkX3NldF9wYXJhbXMoY3R4LT54Y2gsIGRv bWlkLCBpbmZvLCBzdGF0ZS0+c3RvcmVfcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmc3RhdGUtPnN0b3JlX21mbiwgc3RhdGUtPmNvbnNvbGVfcG9ydCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmc3RhdGUtPmNvbnNvbGVfbWZuLCBzdGF0ZS0+c3Rv cmVfZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPmNvbnNv bGVfZG9taWQsIHN0YXRlLT5mb3JrZWRfdm0pOworCisgICAgICAgIGlmICggcmMgKQorICAgICAg ICAgICAgcmV0dXJuIHJjOworCisgICAgICAgIHJldHVybiB4Y19kb21fZ250dGFiX3NlZWQoY3R4 LT54Y2gsIGRvbWlkLCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 YXRlLT5jb25zb2xlX21mbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0 ZS0+c3RvcmVfbWZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5j b25zb2xlX2RvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5z dG9yZV9kb21pZCk7CisgICAgfQorCiAgICAgeGNfZG9tX2xvZ2luaXQoY3R4LT54Y2gpOwogCiAg ICAgLyoKQEAgLTEzNTAsNyArMTM3OSw3IEBAIGludCBsaWJ4bF9fYnVpbGRfaHZtKGxpYnhsX19n YyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgIHJjID0gaHZtX2J1aWxkX3NldF9wYXJhbXMoY3R4 LT54Y2gsIGRvbWlkLCBpbmZvLCBzdGF0ZS0+c3RvcmVfcG9ydCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmc3RhdGUtPnN0b3JlX21mbiwgc3RhdGUtPmNvbnNvbGVfcG9ydCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3RhdGUtPmNvbnNvbGVfbWZuLCBzdGF0ZS0+ c3RvcmVfZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPmNvbnNv bGVfZG9taWQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5jb25zb2xl X2RvbWlkLCBmYWxzZSk7CiAgICAgaWYgKHJjICE9IDApIHsKICAgICAgICAgTE9HKEVSUk9SLCAi aHZtIGJ1aWxkIHNldCBwYXJhbXMgZmFpbGVkIik7CiAgICAgICAgIGdvdG8gb3V0OwpkaWZmIC0t Z2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2lu dGVybmFsLmgKaW5kZXggZDkxOWY5MTg4Mi4uNDQxMDI3MDUwOCAxMDA2NDQKLS0tIGEvdG9vbHMv bGlieGwvbGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5o CkBAIC0xMzYwLDYgKzEzNjAsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAKICAgICBjaGFyICpzYXZl ZF9zdGF0ZTsKICAgICBpbnQgZG1fbW9uaXRvcl9mZDsKKyAgICBib29sIGZvcmtlZF92bTsKIAog ICAgIGxpYnhsX19maWxlX3JlZmVyZW5jZSBwdl9rZXJuZWw7CiAgICAgbGlieGxfX2ZpbGVfcmVm ZXJlbmNlIHB2X3JhbWRpc2s7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF90eXBlcy5p ZGwgYi90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKaW5kZXggNzkyMTk1MGY2YS4uN2M0YzQw NTdhOSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCisrKyBiL3Rvb2xz L2xpYnhsL2xpYnhsX3R5cGVzLmlkbApAQCAtOTU2LDYgKzk1Niw3IEBAIGxpYnhsX2RvbWFpbl9j b25maWcgPSBTdHJ1Y3QoImRvbWFpbl9jb25maWciLCBbCiAgICAgKCJvbl93YXRjaGRvZyIsIGxp YnhsX2FjdGlvbl9vbl9zaHV0ZG93biksCiAgICAgKCJvbl9jcmFzaCIsIGxpYnhsX2FjdGlvbl9v bl9zaHV0ZG93biksCiAgICAgKCJvbl9zb2Z0X3Jlc2V0IiwgbGlieGxfYWN0aW9uX29uX3NodXRk b3duKSwKKyAgICAoImRtX3Jlc3RvcmVfZmlsZSIsIHN0cmluZywgeydjb25zdCc6IFRydWV9KSwK ICAgICBdLCBkaXI9RElSX0lOKQogCiBsaWJ4bF9kaXNraW5mbyA9IFN0cnVjdCgiZGlza2luZm8i LCBbCmRpZmYgLS1naXQgYS90b29scy94bC94bC5oIGIvdG9vbHMveGwveGwuaAppbmRleCA2MGJk YWQ4ZmZiLi45YmRhZDY1MjZlIDEwMDY0NAotLS0gYS90b29scy94bC94bC5oCisrKyBiL3Rvb2xz L3hsL3hsLmgKQEAgLTMxLDYgKzMxLDcgQEAgc3RydWN0IGNtZF9zcGVjIHsKIH07CiAKIHN0cnVj dCBkb21haW5fY3JlYXRlIHsKKyAgICB1aW50MzJfdCBkZG9taWQ7IC8qIGZvcmsgbGF1bmNoIGRt IGZvciB0aGlzIGRvbWlkICovCiAgICAgaW50IGRlYnVnOwogICAgIGludCBkYWVtb25pemU7CiAg ICAgaW50IG1vbml0b3I7IC8qIGhhbmRsZSBndWVzdCByZWJvb3RzIGV0YyAqLwpAQCAtNDUsNiAr NDYsNyBAQCBzdHJ1Y3QgZG9tYWluX2NyZWF0ZSB7CiAgICAgY29uc3QgY2hhciAqY29uZmlnX2Zp bGU7CiAgICAgY2hhciAqZXh0cmFfY29uZmlnOyAvKiBleHRyYSBjb25maWcgc3RyaW5nICovCiAg ICAgY29uc3QgY2hhciAqcmVzdG9yZV9maWxlOworICAgIGNvbnN0IGNoYXIgKmRtX3Jlc3RvcmVf ZmlsZTsKICAgICBjaGFyICpjb2xvX3Byb3h5X3NjcmlwdDsKICAgICBib29sIHVzZXJzcGFjZV9j b2xvX3Byb3h5OwogICAgIGludCBtaWdyYXRlX2ZkOyAvKiAtMSBtZWFucyBub25lICovCkBAIC0x MjcsNiArMTI5LDkgQEAgaW50IG1haW5fcGNpYXNzaWduYWJsZV9yZW1vdmUoaW50IGFyZ2MsIGNo YXIgKiphcmd2KTsKIGludCBtYWluX3BjaWFzc2lnbmFibGVfbGlzdChpbnQgYXJnYywgY2hhciAq KmFyZ3YpOwogI2lmbmRlZiBMSUJYTF9IQVZFX05PX1NVU1BFTkRfUkVTVU1FCiBpbnQgbWFpbl9y ZXN0b3JlKGludCBhcmdjLCBjaGFyICoqYXJndik7CitpbnQgbWFpbl9mb3JrX3ZtKGludCBhcmdj LCBjaGFyICoqYXJndik7CitpbnQgbWFpbl9mb3JrX2xhdW5jaF9kbShpbnQgYXJnYywgY2hhciAq KmFyZ3YpOworaW50IG1haW5fZm9ya19yZXNldChpbnQgYXJnYywgY2hhciAqKmFyZ3YpOwogaW50 IG1haW5fbWlncmF0ZV9yZWNlaXZlKGludCBhcmdjLCBjaGFyICoqYXJndik7CiBpbnQgbWFpbl9z YXZlKGludCBhcmdjLCBjaGFyICoqYXJndik7CiBpbnQgbWFpbl9taWdyYXRlKGludCBhcmdjLCBj aGFyICoqYXJndik7CmRpZmYgLS1naXQgYS90b29scy94bC94bF9jbWR0YWJsZS5jIGIvdG9vbHMv eGwveGxfY21kdGFibGUuYwppbmRleCAzYjMwMmIyZjIwLi4zYTVkMzcxMDU3IDEwMDY0NAotLS0g YS90b29scy94bC94bF9jbWR0YWJsZS5jCisrKyBiL3Rvb2xzL3hsL3hsX2NtZHRhYmxlLmMKQEAg LTE4NSw2ICsxODUsMTggQEAgc3RydWN0IGNtZF9zcGVjIGNtZF90YWJsZVtdID0gewogICAgICAg IlJlc3RvcmUgYSBkb21haW4gZnJvbSBhIHNhdmVkIHN0YXRlIiwKICAgICAgICItIGZvciBpbnRl cm5hbCB1c2Ugb25seSIsCiAgICAgfSwKKyAgICB7ICJmb3JrLXZtIiwKKyAgICAgICZtYWluX2Zv cmtfdm0sIDAsIDEsCisgICAgICAiRm9yayBhIGRvbWFpbiBmcm9tIHRoZSBydW5uaW5nIHBhcmVu dCBkb21pZCIsCisgICAgICAiW29wdGlvbnNdIDxEb21pZD4iLAorICAgICAgIi1oICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHJpbnQgdGhpcyBoZWxwLlxuIgorICAgICAgIi1DIDxjb25maWc+ ICAgICAgICAgICAgICAgICAgVXNlIGNvbmZpZyBmaWxlIGZvciBWTSBmb3JrLlxuIgorICAgICAg Ii1RIDxxZW11LXNhdmUtZmlsZT4gICAgICAgICAgVXNlIHFlbXUgc2F2ZSBmaWxlIGZvciBWTSBm b3JrLlxuIgorICAgICAgIi0tbGF1bmNoLWRtIDx5ZXN8bm98bGF0ZT4gICAgTGF1bmNoIGRldmlj ZSBtb2RlbCAoUUVNVSkgZm9yIFZNIGZvcmsuXG4iCisgICAgICAiLS1mb3JrLXJlc2V0ICAgICAg ICAgICAgICAgICBSZXNldCBWTSBmb3JrLlxuIgorICAgICAgIi1wICAgICAgICAgICAgICAgICAg ICAgICAgICAgRG8gbm90IHVucGF1c2UgZm9yayBWTSBhZnRlciBvcGVyYXRpb24uXG4iCisgICAg ICAiLWQgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmFibGUgZGVidWcgbWVzc2FnZXMuXG4i CisgICAgfSwKICNlbmRpZgogICAgIHsgImR1bXAtY29yZSIsCiAgICAgICAmbWFpbl9kdW1wX2Nv cmUsIDAsIDEsCmRpZmYgLS1naXQgYS90b29scy94bC94bF9zYXZlcmVzdG9yZS5jIGIvdG9vbHMv eGwveGxfc2F2ZXJlc3RvcmUuYwppbmRleCA5YmUwMzNmZTY1Li43MmM2MjA5NTU4IDEwMDY0NAot LS0gYS90b29scy94bC94bF9zYXZlcmVzdG9yZS5jCisrKyBiL3Rvb2xzL3hsL3hsX3NhdmVyZXN0 b3JlLmMKQEAgLTIyOSw2ICsyMjksMTAyIEBAIGludCBtYWluX3Jlc3RvcmUoaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogICAgIHJldHVybiBFWElUX1NVQ0NFU1M7CiB9CiAKK2ludCBtYWluX2Zvcmtf dm0oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworICAgIGludCByYywgZGVidWcgPSAwOworICAg IHVpbnQzMl90IGRvbWlkX2luID0gSU5WQUxJRF9ET01JRCwgZG9taWRfb3V0ID0gSU5WQUxJRF9E T01JRDsKKyAgICBpbnQgbGF1bmNoX2RtID0gMTsKKyAgICBib29sIHJlc2V0ID0gMDsKKyAgICBi b29sIHBhdXNlID0gMDsKKyAgICBjb25zdCBjaGFyICpjb25maWdfZmlsZSA9IE5VTEw7CisgICAg Y29uc3QgY2hhciAqZG1fcmVzdG9yZV9maWxlID0gTlVMTDsKKworICAgIGludCBvcHQ7CisgICAg c3RhdGljIHN0cnVjdCBvcHRpb24gb3B0c1tdID0geworICAgICAgICB7ImxhdW5jaC1kbSIsIDEs IDAsICdsJ30sCisgICAgICAgIHsiZm9yay1yZXNldCIsIDAsIDAsICdyJ30sCisgICAgICAgIENP TU1PTl9MT05HX09QVFMKKyAgICB9OworCisgICAgU1dJVENIX0ZPUkVBQ0hfT1BUKG9wdCwgInBo ZEM6UTpsOnJOOkQ6QjpWOiIsIG9wdHMsICJmb3JrLXZtIiwgMSkgeworICAgIGNhc2UgJ2QnOgor ICAgICAgICBkZWJ1ZyA9IDE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgJ3AnOgorICAgICAg ICBwYXVzZSA9IDE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgJ0MnOgorICAgICAgICBjb25m aWdfZmlsZSA9IG9wdGFyZzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAnUSc6CisgICAgICAg IGRtX3Jlc3RvcmVfZmlsZSA9IG9wdGFyZzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAnbCc6 CisgICAgICAgIHByaW50Zigib3B0YXJnOiAlc1xuIiwgb3B0YXJnKTsKKyAgICAgICAgaWYgKCAh c3RyY21wKG9wdGFyZywgIm5vIikgKQorICAgICAgICAgICAgbGF1bmNoX2RtID0gMDsKKyAgICAg ICAgaWYgKCAhc3RyY21wKG9wdGFyZywgInllcyIpICkKKyAgICAgICAgICAgIGxhdW5jaF9kbSA9 IDE7CisgICAgICAgIGlmICggIXN0cmNtcChvcHRhcmcsICJsYXRlIikgKQorICAgICAgICAgICAg bGF1bmNoX2RtID0gMjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAncic6CisgICAgICAgIHJl c2V0ID0gMTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAnTic6IC8qIGZhbGwtdGhyb3VnaCAq LworICAgIGNhc2UgJ0QnOiAvKiBmYWxsLXRocm91Z2ggKi8KKyAgICBjYXNlICdCJzogLyogZmFs bC10aHJvdWdoICovCisgICAgY2FzZSAnVic6CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5p bXBsZW1lbnRlZCBvcHRpb24ocylcbiIpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwor ICAgIH0KKworICAgIGlmIChhcmdjLW9wdGluZCA9PSAxKSB7CisgICAgICAgIGRvbWlkX2luID0g YXRvaShhcmd2W29wdGluZF0pOworICAgIH0gZWxzZSB7CisgICAgICAgIGhlbHAoImZvcmstdm0i KTsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICB9CisKKyAgICBpZiAobGF1bmNo X2RtICYmICghY29uZmlnX2ZpbGUgfHwgIWRtX3Jlc3RvcmVfZmlsZSkpIHsKKyAgICAgICAgZnBy aW50ZihzdGRlcnIsICJDdXJyZW50bHkgeW91IG11c3QgcHJvdmlkZSBib3RoIC1DIGFuZCAtUSBv cHRpb25zXG4iKTsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICB9CisKKyAgICBp ZiAocmVzZXQpIHsKKyAgICAgICAgZG9taWRfb3V0ID0gZG9taWRfaW47CisgICAgICAgIGlmIChs aWJ4bF9kb21haW5fZm9ya19yZXNldChjdHgsIGRvbWlkX2luKSA9PSBFWElUX0ZBSUxVUkUpCisg ICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0KKworICAgIGlmIChsYXVuY2hf ZG0gPT0gMiB8fCByZXNldCkgeworICAgICAgICBkb21pZF9vdXQgPSBkb21pZF9pbjsKKyAgICAg ICAgcmMgPSBFWElUX1NVQ0NFU1M7CisgICAgfSBlbHNlCisgICAgICAgIHJjID0gbGlieGxfZG9t YWluX2Zvcmtfdm0oY3R4LCBkb21pZF9pbiwgJmRvbWlkX291dCk7CisKKyAgICBpZiAocmMgPT0g RVhJVF9TVUNDRVNTICYmIGxhdW5jaF9kbSkgeworICAgICAgICBzdHJ1Y3QgZG9tYWluX2NyZWF0 ZSBkb21faW5mbzsKKyAgICAgICAgbWVtc2V0KCZkb21faW5mbywgMCwgc2l6ZW9mKGRvbV9pbmZv KSk7CisgICAgICAgIGRvbV9pbmZvLmRkb21pZCA9IGRvbWlkX291dDsKKyAgICAgICAgZG9tX2lu Zm8uZG1fcmVzdG9yZV9maWxlID0gZG1fcmVzdG9yZV9maWxlOworICAgICAgICBkb21faW5mby5k ZWJ1ZyA9IGRlYnVnOworICAgICAgICBkb21faW5mby5wYXVzZWQgPSBwYXVzZTsKKyAgICAgICAg ZG9tX2luZm8uY29uZmlnX2ZpbGUgPSBjb25maWdfZmlsZTsKKyAgICAgICAgZG9tX2luZm8ubWln cmF0ZV9mZCA9IC0xOworICAgICAgICBkb21faW5mby5zZW5kX2JhY2tfZmQgPSAtMTsKKyAgICAg ICAgcmMgPSBjcmVhdGVfZG9tYWluKCZkb21faW5mbykgPCAwID8gRVhJVF9GQUlMVVJFIDogRVhJ VF9TVUNDRVNTOworICAgIH0KKworICAgIGlmIChyYyA9PSBFWElUX1NVQ0NFU1MgJiYgIXBhdXNl KQorICAgICAgICByYyA9IGxpYnhsX2RvbWFpbl91bnBhdXNlKGN0eCwgZG9taWRfb3V0LCBOVUxM KTsKKworICAgIGlmIChyYyA9PSBFWElUX1NVQ0NFU1MpCisgICAgICAgIGZwcmludGYoc3RkZXJy LCAiZm9yay12bSBjb21tYW5kIHN1Y2Nlc3NmdWxseSByZXR1cm5lZCBkb21pZDogJXVcbiIsIGRv bWlkX291dCk7CisKKyAgICByZXR1cm4gcmM7Cit9CisKIGludCBtYWluX3NhdmUoaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQogewogICAgIHVpbnQzMl90IGRvbWlkOwpkaWZmIC0tZ2l0IGEvdG9vbHMv eGwveGxfdm1jb250cm9sLmMgYi90b29scy94bC94bF92bWNvbnRyb2wuYwppbmRleCBlNTIwYjFk YTc5Li5kOWNiMTljNTk5IDEwMDY0NAotLS0gYS90b29scy94bC94bF92bWNvbnRyb2wuYworKysg Yi90b29scy94bC94bF92bWNvbnRyb2wuYwpAQCAtNjQ1LDYgKzY0NSw3IEBAIGludCBjcmVhdGVf ZG9tYWluKHN0cnVjdCBkb21haW5fY3JlYXRlICpkb21faW5mbykKIAogICAgIGxpYnhsX2RvbWFp bl9jb25maWcgZF9jb25maWc7CiAKKyAgICB1aW50MzJfdCBkZG9taWQgPSBkb21faW5mby0+ZGRv bWlkOyAvLyBsYXVuY2ggZG0gZm9yIHRoaXMgZG9tYWluIGlmZiBzZXQKICAgICBpbnQgZGVidWcg PSBkb21faW5mby0+ZGVidWc7CiAgICAgaW50IGRhZW1vbml6ZSA9IGRvbV9pbmZvLT5kYWVtb25p emU7CiAgICAgaW50IG1vbml0b3IgPSBkb21faW5mby0+bW9uaXRvcjsKQEAgLTY1NSw2ICs2NTYs NyBAQCBpbnQgY3JlYXRlX2RvbWFpbihzdHJ1Y3QgZG9tYWluX2NyZWF0ZSAqZG9tX2luZm8pCiAg ICAgY29uc3QgY2hhciAqcmVzdG9yZV9maWxlID0gZG9tX2luZm8tPnJlc3RvcmVfZmlsZTsKICAg ICBjb25zdCBjaGFyICpjb25maWdfc291cmNlID0gTlVMTDsKICAgICBjb25zdCBjaGFyICpyZXN0 b3JlX3NvdXJjZSA9IE5VTEw7CisgICAgY29uc3QgY2hhciAqZG1fcmVzdG9yZV9maWxlID0gZG9t X2luZm8tPmRtX3Jlc3RvcmVfZmlsZTsKICAgICBpbnQgbWlncmF0ZV9mZCA9IGRvbV9pbmZvLT5t aWdyYXRlX2ZkOwogICAgIGJvb2wgY29uZmlnX2luX2pzb247CiAKQEAgLTkyMyw2ICs5MjUsMTIg QEAgc3RhcnQ6CiAgICAgICAgICAqIHJlc3RvcmUvbWlncmF0ZS1yZWNlaXZlIGl0IGFnYWluLgog ICAgICAgICAgKi8KICAgICAgICAgcmVzdG9yaW5nID0gMDsKKyAgICB9IGVsc2UgaWYgKCBkZG9t aWQgKSB7CisgICAgICAgIGRfY29uZmlnLmRtX3Jlc3RvcmVfZmlsZSA9IGRtX3Jlc3RvcmVfZmls ZTsKKyAgICAgICAgcmV0ID0gbGlieGxfZG9tYWluX2ZvcmtfbGF1bmNoX2RtKGN0eCwgJmRfY29u ZmlnLCBkZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh dXRvY29ubmVjdF9jb25zb2xlX2hvdyk7CisgICAgICAgIGRvbWlkID0gZGRvbWlkOworICAgICAg ICBkZG9taWQgPSBJTlZBTElEX0RPTUlEOwogICAgIH0gZWxzZSBpZiAoZG9taWRfc29mdF9yZXNl dCAhPSBJTlZBTElEX0RPTUlEKSB7CiAgICAgICAgIC8qIERvIHNvZnQgcmVzZXQuICovCiAgICAg ICAgIHJldCA9IGxpYnhsX2RvbWFpbl9zb2Z0X3Jlc2V0KGN0eCwgJmRfY29uZmlnLCBkb21pZF9z b2Z0X3Jlc2V0LAotLSAKMi4yMC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu cHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZv L3hlbi1kZXZlbA==