Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1j54Jl-0000HP-4i for pgsql-hackers@arkaria.postgresql.org; Fri, 21 Feb 2020 09:09:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1j54Jj-00011I-Sb for pgsql-hackers@arkaria.postgresql.org; Fri, 21 Feb 2020 09:09:51 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1j54Ji-00011B-J6 for pgsql-hackers@lists.postgresql.org; Fri, 21 Feb 2020 09:09:51 +0000 Received: from wout3-smtp.messagingengine.com ([64.147.123.19]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1j54Jd-0006Pa-OX for pgsql-hackers@postgresql.org; Fri, 21 Feb 2020 09:09:50 +0000 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id 468055FA for ; Fri, 21 Feb 2020 04:09:42 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Fri, 21 Feb 2020 04:09:42 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=xgUgrg C0Pp98NK2Bm9qgMsgg47oy/12AF+tfmVxYNR8=; b=aeJzn+OQiQxgJNnNtnMhu5 VvM8nhwJ6HLGYCcy/0CqTVLk0YMoaogOsvfpcVtSWMKUbMvfgxpcM4I0ilR1JKbg ACUbQ7DpMhS1gpRq6CsLK8O6u3jSO4yCXyGQqdL19fwLozyLqr1PZVLaeG6Db3Qp J2oqRWncT2faWN2yph+dnxW7Yuo3PVC78NYl6KPVkz7UBHTClAlOGnCPFTRWBR8d sozNmhOlktKoUiDiycorAyQTb9rNXQIKZuR9B5KlUz5w12fsSb7dnZgYufc2kJI3 v4REAcBQfrEC1aDyoHYByLk7NWAzLvHToQxCTu9FlxfjAPdPmwxRT7qX28cPHxIg == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedugedrkeefgddufedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefuhffvfhhokffffgggjggtsehmtd erredtfeejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghr rdgvihhsvghnthhrrghuthesvdhnughquhgrughrrghnthdrtghomheqnecuffhomhgrih hnpedvnhguqhhurggurhgrnhhtrdgtohhmnecukfhppeelfedrvdegfedrudehiedrudel udenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvg htvghrrdgvihhsvghnthhrrghuthesvdhnughquhgrughrrghnthdrtghomh X-ME-Proxy: Received: from april.pezone.net (p5df39cbf.dip0.t-ipconnect.de [93.243.156.191]) by mail.messagingengine.com (Postfix) with ESMTPA id 50B223280063 for ; Fri, 21 Feb 2020 04:09:40 -0500 (EST) Subject: Re: backend type in log_line_prefix? From: Peter Eisentraut To: pgsql-hackers References: Organization: 2ndQuadrant Message-ID: <6453e044-041a-bf64-c76a-e1b7e3d5b0e7@2ndquadrant.com> Date: Fri, 21 Feb 2020 10:09:38 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------2A6EF31CB4155A58556EB615" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------2A6EF31CB4155A58556EB615 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 2020-02-13 09:56, Peter Eisentraut wrote: > Attached is a demo patch that adds a placeholder %b for log_line_prefix > (not in the default setting) that contains the backend type, the same > that you see in pg_stat_activity and in the ps status. I would have > found this occasionally useful when analyzing logs, especially if you > have a lot of background workers active. Thoughts? After positive initial feedback, here is a more ambitious patch set. In particular, I wanted to avoid having to specify the backend type (at least) twice, once for the ps display and once for this new facility. I have added a new global variable MyBackendType that uses the existing BackendType enum that was previously only used by the stats collector. Then the ps display, the stats collector, the log_line_prefix, and other places can just refer to this to know "who am I". (There are more places like that, for example in the autovacuum system, so patch 0004 in particular could be expanded in analogous ways.) -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------2A6EF31CB4155A58556EB615 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v2-0001-Refactor-ps_status.c-API.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v2-0001-Refactor-ps_status.c-API.patch" RnJvbSAyOWY5YzkyYzVjZGM3ZWRkYjYwZjY5YmI5ODRhNTdlNDVhNjAwOTM4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCAyMCBGZWIgMjAyMCAxODowNzozNyArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjIgMS80XSBSZWZhY3RvciBwc19zdGF0dXMuYyBBUEkKClRoZSBpbml0X3Bz X2Rpc3BsYXkoKSBhcmd1bWVudHMgd2VyZSBtb3N0bHkgbGllcyBieSBub3csIHNvIHRvIG1h dGNoCnR5cGljYWwgdXNhZ2UsIGp1c3QgdXNlIG9uZSBhcmd1bWVudCBhbmQgbGV0IHRoZSBj YWxsZXIgYXNzZW1ibGUgaXQKZnJvbSBtdWx0aXBsZSBzb3VyY2VzIGlmIG5lY2Vzc2FyeS4g IFRoZSBvbmx5IHVzZXIgb2YgdGhlIGFkZGl0aW9uYWwKYXJndW1lbnRzIGlzIEJhY2tlbmRJ bml0aWFsaXplKCksIHdoaWNoIHdhcyBhbHJlYWR5IGRvaW5nIHN0cmluZwphc3NlbWJseSBv biB0aGUgY2FsbGVyIHNpZGUgYW55d2F5LgoKUmVtb3ZlIHRoZSBzZWNvbmQgYXJndW1lbnQg b2Ygc2V0X3BzX2Rpc3BsYXkoKSAoImZvcmNlIikgYW5kIGp1c3QKaGFuZGxlIHRoYXQgaW4g aW5pdF9wc19kaXNwbGF5KCkgaW50ZXJuYWxseS4KCkJhY2tlbmRJbml0aWFsaXplKCkgYWxz byB1c2VkIHRvIHNldCB0aGUgaW5pdGlhbCBzdGF0dXMgYXMKImF1dGhlbnRpY2F0aW9uIiwg YnV0IHRoYXQgd2FzIHZlcnkgZmFyIGZyb20gd2hlcmUgYXV0aGVudGljYXRpb24KYWN0dWFs bHkgaGFwcGVuZWQuICBTbyBub3cgaXQncyBzZXQgdG8gImluaXRpYWxpemluZyIgYW5kIHRo ZW4KImF1dGhlbnRpY2F0aW9uIiBqdXN0IGJlZm9yZSB0aGUgYWN0dWFsIGNhbGwgdG8KQ2xp ZW50QXV0aGVudGljYXRpb24oKS4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 bG9nLmMgICAgIHwgIDQgKystLQogc3JjL2JhY2tlbmQvYm9vdHN0cmFwL2Jvb3RzdHJhcC5j ICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hc3luYy5jICAgICAgICAgIHwg IDQgKystLQogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMgICB8ICA2ICsr LS0tCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL2Jnd29ya2VyLmMgICAgIHwgIDIgKy0KIHNy Yy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcGdhcmNoLmMgICAgICAgfCAgOCArKystLS0tCiBzcmMv YmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jICAgfCAzMiArKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0KIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvc3lzbG9nZ2VyLmMgICAgfCAgMiArLQog c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vYmFzZWJhY2t1cC5jICB8ICAyICstCiBzcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9zeW5jcmVwLmMgICAgIHwgIDQgKystLQogc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYyB8ICA3ICsrKy0tLQogc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vd2Fsc2VuZGVyLmMgICB8ICAyICstCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lw Yy9zdGFuZGJ5LmMgICAgIHwgIDQgKystLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2xv Y2suYyAgICAgICB8ICA2ICsrLS0tCiBzcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgICAg ICAgICAgIHwgMTYgKysrKysrKy0tLS0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2luaXQvcG9z dGluaXQuYyAgICAgfCAgMyArKy0KIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcHNfc3RhdHVz LmMgICAgfCAzMSArKysrKysrKysrKysrKystLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvdXRp bHMvcHNfc3RhdHVzLmggICAgICAgICB8ICA1ICsrLS0tCiAxOSBmaWxlcyBjaGFuZ2VkLCA3 MSBpbnNlcnRpb25zKCspLCA3MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS94bG9nLmMKaW5kZXggMzgxM2VhZGZiNC4uYjQ0NTU3OTljNCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy90cmFuc2FtL3hsb2cuYwpAQCAtMzYzOSw3ICszNjM5LDcgQEAgWExvZ0ZpbGVSZWFkKFhM b2dTZWdObyBzZWdubywgaW50IGVtb2RlLCBUaW1lTGluZUlEIHRsaSwKIAkJCS8qIFJlcG9y dCByZWNvdmVyeSBwcm9ncmVzcyBpbiBQUyBkaXNwbGF5ICovCiAJCQlzbnByaW50ZihhY3Rp dml0eW1zZywgc2l6ZW9mKGFjdGl2aXR5bXNnKSwgIndhaXRpbmcgZm9yICVzIiwKIAkJCQkJ IHhsb2dmbmFtZSk7Ci0JCQlzZXRfcHNfZGlzcGxheShhY3Rpdml0eW1zZywgZmFsc2UpOwor CQkJc2V0X3BzX2Rpc3BsYXkoYWN0aXZpdHltc2cpOwogCiAJCQlyZXN0b3JlZEZyb21BcmNo aXZlID0gUmVzdG9yZUFyY2hpdmVkRmlsZShwYXRoLCB4bG9nZm5hbWUsCiAJCQkJCQkJCQkJ CQkJICAiUkVDT1ZFUllYTE9HIiwKQEAgLTM2ODIsNyArMzY4Miw3IEBAIFhMb2dGaWxlUmVh ZChYTG9nU2VnTm8gc2Vnbm8sIGludCBlbW9kZSwgVGltZUxpbmVJRCB0bGksCiAJCS8qIFJl cG9ydCByZWNvdmVyeSBwcm9ncmVzcyBpbiBQUyBkaXNwbGF5ICovCiAJCXNucHJpbnRmKGFj dGl2aXR5bXNnLCBzaXplb2YoYWN0aXZpdHltc2cpLCAicmVjb3ZlcmluZyAlcyIsCiAJCQkJ IHhsb2dmbmFtZSk7Ci0JCXNldF9wc19kaXNwbGF5KGFjdGl2aXR5bXNnLCBmYWxzZSk7CisJ CXNldF9wc19kaXNwbGF5KGFjdGl2aXR5bXNnKTsKIAogCQkvKiBUcmFjayBzb3VyY2Ugb2Yg ZGF0YSBpbiBhc3NvcnRlZCBzdGF0ZSB2YXJpYWJsZXMgKi8KIAkJcmVhZFNvdXJjZSA9IHNv dXJjZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290c3RyYXAuYyBi L3NyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290c3RyYXAuYwppbmRleCBiZmM2MjljNzUzLi40 MjEyMzMzNzM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ib290c3RyYXAvYm9vdHN0cmFw LmMKKysrIGIvc3JjL2JhY2tlbmQvYm9vdHN0cmFwL2Jvb3RzdHJhcC5jCkBAIC0zNDIsNyAr MzQyLDcgQEAgQXV4aWxpYXJ5UHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK IAkJCQlzdGF0bXNnID0gIj8/PyBwcm9jZXNzIjsKIAkJCQlicmVhazsKIAkJfQotCQlpbml0 X3BzX2Rpc3BsYXkoc3RhdG1zZywgIiIsICIiLCAiIik7CisJCWluaXRfcHNfZGlzcGxheShz dGF0bXNnKTsKIAl9CiAKIAkvKiBBY3F1aXJlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycywg dW5sZXNzIGluaGVyaXRlZCBmcm9tIHBvc3RtYXN0ZXIgKi8KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hc3luYy5j CmluZGV4IDlhYTJiNjE2MDAuLjUwMjc1Zjk0ZmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2FzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYwpA QCAtMjIyNSw3ICsyMjI1LDcgQEAgUHJvY2Vzc0luY29taW5nTm90aWZ5KHZvaWQpCiAJaWYg KFRyYWNlX25vdGlmeSkKIAkJZWxvZyhERUJVRzEsICJQcm9jZXNzSW5jb21pbmdOb3RpZnki KTsKIAotCXNldF9wc19kaXNwbGF5KCJub3RpZnkgaW50ZXJydXB0IiwgZmFsc2UpOworCXNl dF9wc19kaXNwbGF5KCJub3RpZnkgaW50ZXJydXB0Iik7CiAKIAkvKgogCSAqIFdlIG11c3Qg cnVuIGFzeW5jUXVldWVSZWFkQWxsTm90aWZpY2F0aW9ucyBpbnNpZGUgYSB0cmFuc2FjdGlv biwgZWxzZQpAQCAtMjI0Miw3ICsyMjQyLDcgQEAgUHJvY2Vzc0luY29taW5nTm90aWZ5KHZv aWQpCiAJICovCiAJcHFfZmx1c2goKTsKIAotCXNldF9wc19kaXNwbGF5KCJpZGxlIiwgZmFs c2UpOworCXNldF9wc19kaXNwbGF5KCJpZGxlIik7CiAKIAlpZiAoVHJhY2Vfbm90aWZ5KQog CQllbG9nKERFQlVHMSwgIlByb2Nlc3NJbmNvbWluZ05vdGlmeTogZG9uZSIpOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMgYi9zcmMvYmFja2Vu ZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYwppbmRleCA2ZDFmMjhjMzI3Li5jNDYxYWYxMWIy IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYworKysg Yi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYwpAQCAtNDM0LDcgKzQzNCw3 IEBAIEF1dG9WYWNMYXVuY2hlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAlhbV9h dXRvdmFjdXVtX2xhdW5jaGVyID0gdHJ1ZTsKIAogCS8qIElkZW50aWZ5IG15c2VsZiB2aWEg cHMgKi8KLQlpbml0X3BzX2Rpc3BsYXkocGdzdGF0X2dldF9iYWNrZW5kX2Rlc2MoQl9BVVRP VkFDX0xBVU5DSEVSKSwgIiIsICIiLCAiIik7CisJaW5pdF9wc19kaXNwbGF5KHBnc3RhdF9n ZXRfYmFja2VuZF9kZXNjKEJfQVVUT1ZBQ19MQVVOQ0hFUikpOwogCiAJZXJlcG9ydChERUJV RzEsCiAJCQkoZXJybXNnKCJhdXRvdmFjdXVtIGxhdW5jaGVyIHN0YXJ0ZWQiKSkpOwpAQCAt MTUwNyw3ICsxNTA3LDcgQEAgQXV0b1ZhY1dvcmtlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFy Z3ZbXSkKIAlhbV9hdXRvdmFjdXVtX3dvcmtlciA9IHRydWU7CiAKIAkvKiBJZGVudGlmeSBt eXNlbGYgdmlhIHBzICovCi0JaW5pdF9wc19kaXNwbGF5KHBnc3RhdF9nZXRfYmFja2VuZF9k ZXNjKEJfQVVUT1ZBQ19XT1JLRVIpLCAiIiwgIiIsICIiKTsKKwlpbml0X3BzX2Rpc3BsYXko cGdzdGF0X2dldF9iYWNrZW5kX2Rlc2MoQl9BVVRPVkFDX1dPUktFUikpOwogCiAJU2V0UHJv Y2Vzc2luZ01vZGUoSW5pdFByb2Nlc3NpbmcpOwogCkBAIC0xNjgwLDcgKzE2ODAsNyBAQCBB dXRvVmFjV29ya2VyTWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkgKi8KIAkJSW5p dFBvc3RncmVzKE5VTEwsIGRiaWQsIE5VTEwsIEludmFsaWRPaWQsIGRibmFtZSwgZmFsc2Up OwogCQlTZXRQcm9jZXNzaW5nTW9kZShOb3JtYWxQcm9jZXNzaW5nKTsKLQkJc2V0X3BzX2Rp c3BsYXkoZGJuYW1lLCBmYWxzZSk7CisJCXNldF9wc19kaXNwbGF5KGRibmFtZSk7CiAJCWVy ZXBvcnQoREVCVUcxLAogCQkJCShlcnJtc2coImF1dG92YWN1dW06IHByb2Nlc3NpbmcgZGF0 YWJhc2UgXCIlc1wiIiwgZGJuYW1lKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w b3N0bWFzdGVyL2Jnd29ya2VyLmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2Jnd29ya2Vy LmMKaW5kZXggNzVmYzBkNWQzMy4uNjg0MjUwOTg0ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIv Ymd3b3JrZXIuYwpAQCAtNjg5LDcgKzY4OSw3IEBAIFN0YXJ0QmFja2dyb3VuZFdvcmtlcih2 b2lkKQogCUlzQmFja2dyb3VuZFdvcmtlciA9IHRydWU7CiAKIAkvKiBJZGVudGlmeSBteXNl bGYgdmlhIHBzICovCi0JaW5pdF9wc19kaXNwbGF5KHdvcmtlci0+Ymd3X25hbWUsICIiLCAi IiwgIiIpOworCWluaXRfcHNfZGlzcGxheSh3b3JrZXItPmJnd19uYW1lKTsKIAogCS8qCiAJ ICogSWYgd2UncmUgbm90IHN1cHBvc2VkIHRvIGhhdmUgc2hhcmVkIG1lbW9yeSBhY2Nlc3Ms IHRoZW4gZGV0YWNoIGZyb20KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIv cGdhcmNoLmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3BnYXJjaC5jCmluZGV4IDNjYTMw YmFkYjIuLjU4ZjU0NTQ0ZjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIv cGdhcmNoLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ2FyY2guYwpAQCAtMjQx LDcgKzI0MSw3IEBAIFBnQXJjaGl2ZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJ LyoKIAkgKiBJZGVudGlmeSBteXNlbGYgdmlhIHBzCiAJICovCi0JaW5pdF9wc19kaXNwbGF5 KCJhcmNoaXZlciIsICIiLCAiIiwgIiIpOworCWluaXRfcHNfZGlzcGxheSgiYXJjaGl2ZXIi KTsKIAogCXBnYXJjaF9NYWluTG9vcCgpOwogCkBAIC01ODQsNyArNTg0LDcgQEAgcGdhcmNo X2FyY2hpdmVYbG9nKGNoYXIgKnhsb2cpCiAKIAkvKiBSZXBvcnQgYXJjaGl2ZSBhY3Rpdml0 eSBpbiBQUyBkaXNwbGF5ICovCiAJc25wcmludGYoYWN0aXZpdHltc2csIHNpemVvZihhY3Rp dml0eW1zZyksICJhcmNoaXZpbmcgJXMiLCB4bG9nKTsKLQlzZXRfcHNfZGlzcGxheShhY3Rp dml0eW1zZywgZmFsc2UpOworCXNldF9wc19kaXNwbGF5KGFjdGl2aXR5bXNnKTsKIAogCXJj ID0gc3lzdGVtKHhsb2dhcmNoY21kKTsKIAlpZiAocmMgIT0gMCkKQEAgLTYzNCwxNCArNjM0 LDE0IEBAIHBnYXJjaF9hcmNoaXZlWGxvZyhjaGFyICp4bG9nKQogCQl9CiAKIAkJc25wcmlu dGYoYWN0aXZpdHltc2csIHNpemVvZihhY3Rpdml0eW1zZyksICJmYWlsZWQgb24gJXMiLCB4 bG9nKTsKLQkJc2V0X3BzX2Rpc3BsYXkoYWN0aXZpdHltc2csIGZhbHNlKTsKKwkJc2V0X3Bz X2Rpc3BsYXkoYWN0aXZpdHltc2cpOwogCiAJCXJldHVybiBmYWxzZTsKIAl9CiAJZWxvZyhE RUJVRzEsICJhcmNoaXZlZCB3cml0ZS1haGVhZCBsb2cgZmlsZSBcIiVzXCIiLCB4bG9nKTsK IAogCXNucHJpbnRmKGFjdGl2aXR5bXNnLCBzaXplb2YoYWN0aXZpdHltc2cpLCAibGFzdCB3 YXMgJXMiLCB4bG9nKTsKLQlzZXRfcHNfZGlzcGxheShhY3Rpdml0eW1zZywgZmFsc2UpOwor CXNldF9wc19kaXNwbGF5KGFjdGl2aXR5bXNnKTsKIAogCXJldHVybiB0cnVlOwogfQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ3N0YXQuYyBiL3NyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvcGdzdGF0LmMKaW5kZXggNTlkYzRmMzFhYi4uMzkzNGQwMzM5NiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ3N0YXQuYworKysgYi9zcmMvYmFj a2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jCkBAIC00NDQ3LDcgKzQ0NDcsNyBAQCBQZ3N0YXRD b2xsZWN0b3JNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJLyoKIAkgKiBJZGVudGlm eSBteXNlbGYgdmlhIHBzCiAJICovCi0JaW5pdF9wc19kaXNwbGF5KCJzdGF0cyBjb2xsZWN0 b3IiLCAiIiwgIiIsICIiKTsKKwlpbml0X3BzX2Rpc3BsYXkoInN0YXRzIGNvbGxlY3RvciIp OwogCiAJLyoKIAkgKiBSZWFkIGluIGV4aXN0aW5nIHN0YXRzIGZpbGVzIG9yIGluaXRpYWxp emUgdGhlIHN0YXRzIHRvIHplcm8uCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFz dGVyL3Bvc3RtYXN0ZXIuYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5j CmluZGV4IGIzOTg2YmVlNzUuLjM4NmZjNTRlNmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIv cG9zdG1hc3Rlci5jCkBAIC00Mjc0LDcgKzQyNzQsNyBAQCBCYWNrZW5kSW5pdGlhbGl6ZShQ b3J0ICpwb3J0KQogCWludAkJCXJldDsKIAljaGFyCQlyZW1vdGVfaG9zdFtOSV9NQVhIT1NU XTsKIAljaGFyCQlyZW1vdGVfcG9ydFtOSV9NQVhTRVJWXTsKLQljaGFyCQlyZW1vdGVfcHNf ZGF0YVtOSV9NQVhIT1NUXTsKKwlTdHJpbmdJbmZvRGF0YSBwc19kYXRhOwogCiAJLyogU2F2 ZSBwb3J0IGV0Yy4gZm9yIHBzIHN0YXR1cyAqLwogCU15UHJvY1BvcnQgPSBwb3J0OwpAQCAt NDMzNSwxMCArNDMzNSw2IEBAIEJhY2tlbmRJbml0aWFsaXplKFBvcnQgKnBvcnQpCiAJCWVy ZXBvcnQoV0FSTklORywKIAkJCQkoZXJybXNnX2ludGVybmFsKCJwZ19nZXRuYW1laW5mb19h bGwoKSBmYWlsZWQ6ICVzIiwKIAkJCQkJCQkJIGdhaV9zdHJlcnJvcihyZXQpKSkpOwotCWlm IChyZW1vdGVfcG9ydFswXSA9PSAnXDAnKQotCQlzbnByaW50ZihyZW1vdGVfcHNfZGF0YSwg c2l6ZW9mKHJlbW90ZV9wc19kYXRhKSwgIiVzIiwgcmVtb3RlX2hvc3QpOwotCWVsc2UKLQkJ c25wcmludGYocmVtb3RlX3BzX2RhdGEsIHNpemVvZihyZW1vdGVfcHNfZGF0YSksICIlcygl cykiLCByZW1vdGVfaG9zdCwgcmVtb3RlX3BvcnQpOwogCiAJLyoKIAkgKiBTYXZlIHJlbW90 ZV9ob3N0IGFuZCByZW1vdGVfcG9ydCBpbiBwb3J0IHN0cnVjdHVyZSAoYWZ0ZXIgdGhpcywg dGhleQpAQCAtNDQxMiwyMSArNDQwOCwyMSBAQCBCYWNrZW5kSW5pdGlhbGl6ZShQb3J0ICpw b3J0KQogCS8qCiAJICogTm93IHRoYXQgd2UgaGF2ZSB0aGUgdXNlciBhbmQgZGF0YWJhc2Ug bmFtZSwgd2UgY2FuIHNldCB0aGUgcHJvY2VzcwogCSAqIHRpdGxlIGZvciBwcy4gIEl0J3Mg Z29vZCB0byBkbyB0aGlzIGFzIGVhcmx5IGFzIHBvc3NpYmxlIGluIHN0YXJ0dXAuCi0JICoK LQkgKiBGb3IgYSB3YWxzZW5kZXIsIHRoZSBwcyBkaXNwbGF5IGlzIHNldCBpbiB0aGUgZm9s bG93aW5nIGZvcm06Ci0JICoKLQkgKiBwb3N0Z3Jlczogd2Fsc2VuZGVyIDx1c2VyPiA8aG9z dD4gPGFjdGl2aXR5PgotCSAqCi0JICogVG8gYWNoaWV2ZSB0aGF0LCB3ZSBwYXNzICJ3YWxz ZW5kZXIiIGFzIHVzZXJuYW1lIGFuZCB1c2VybmFtZSBhcyBkYm5hbWUKLQkgKiB0byBpbml0 X3BzX2Rpc3BsYXkoKS4gWFhYOiBzaG91bGQgYWRkIGEgbmV3IHZhcmlhbnQgb2YKLQkgKiBp bml0X3BzX2Rpc3BsYXkoKSB0byBhdm9pZCBhYnVzaW5nIHRoZSBwYXJhbWV0ZXJzIGxpa2Ug dGhpcy4KIAkgKi8KKwlpbml0U3RyaW5nSW5mbygmcHNfZGF0YSk7CiAJaWYgKGFtX3dhbHNl bmRlcikKLQkJaW5pdF9wc19kaXNwbGF5KHBnc3RhdF9nZXRfYmFja2VuZF9kZXNjKEJfV0FM X1NFTkRFUiksIHBvcnQtPnVzZXJfbmFtZSwgcmVtb3RlX3BzX2RhdGEsCi0JCQkJCQl1cGRh dGVfcHJvY2Vzc190aXRsZSA/ICJhdXRoZW50aWNhdGlvbiIgOiAiIik7Ci0JZWxzZQotCQlp bml0X3BzX2Rpc3BsYXkocG9ydC0+dXNlcl9uYW1lLCBwb3J0LT5kYXRhYmFzZV9uYW1lLCBy ZW1vdGVfcHNfZGF0YSwKLQkJCQkJCXVwZGF0ZV9wcm9jZXNzX3RpdGxlID8gImF1dGhlbnRp Y2F0aW9uIiA6ICIiKTsKKwkJYXBwZW5kU3RyaW5nSW5mbygmcHNfZGF0YSwgIiVzICIsIHBn c3RhdF9nZXRfYmFja2VuZF9kZXNjKEJfV0FMX1NFTkRFUikpOworCWFwcGVuZFN0cmluZ0lu Zm8oJnBzX2RhdGEsICIlcyAiLCBwb3J0LT51c2VyX25hbWUpOworCWlmICghYW1fd2Fsc2Vu ZGVyKQorCQlhcHBlbmRTdHJpbmdJbmZvKCZwc19kYXRhLCAiJXMgIiwgcG9ydC0+ZGF0YWJh c2VfbmFtZSk7CisJYXBwZW5kU3RyaW5nSW5mbygmcHNfZGF0YSwgIiVzIiwgcG9ydC0+cmVt b3RlX2hvc3QpOworCWlmIChwb3J0LT5yZW1vdGVfcG9ydFswXSAhPSAnXDAnKQorCQlhcHBl bmRTdHJpbmdJbmZvKCZwc19kYXRhLCAiKCVzKSIsIHBvcnQtPnJlbW90ZV9wb3J0KTsKKwor CWluaXRfcHNfZGlzcGxheShwc19kYXRhLmRhdGEpOworCXBmcmVlKHBzX2RhdGEuZGF0YSk7 CisKKwlzZXRfcHNfZGlzcGxheSgiaW5pdGlhbGl6aW5nIik7CiAKIAkvKgogCSAqIERpc2Fi bGUgdGhlIHRpbWVvdXQsIGFuZCBwcmV2ZW50IFNJR1RFUk0vU0lHUVVJVCBhZ2Fpbi4KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvc3lzbG9nZ2VyLmMgYi9zcmMvYmFj a2VuZC9wb3N0bWFzdGVyL3N5c2xvZ2dlci5jCmluZGV4IGIyYjY5YTcyMDcuLmIwYWI1ZDMw NzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvc3lzbG9nZ2VyLmMKKysr IGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9zeXNsb2dnZXIuYwpAQCAtMTc5LDcgKzE3OSw3 IEBAIFN5c0xvZ2dlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAogCWFtX3N5c2xv Z2dlciA9IHRydWU7CiAKLQlpbml0X3BzX2Rpc3BsYXkoImxvZ2dlciIsICIiLCAiIiwgIiIp OworCWluaXRfcHNfZGlzcGxheSgibG9nZ2VyIik7CiAKIAkvKgogCSAqIElmIHdlIHJlc3Rh cnRlZCwgb3VyIHN0ZGVyciBpcyBhbHJlYWR5IHJlZGlyZWN0ZWQgaW50byBvdXIgb3duIGlu cHV0CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9iYXNlYmFja3VwLmMg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9iYXNlYmFja3VwLmMKaW5kZXggZGVhOGFhYjQ1 ZS4uZGJkZTNkMzU5YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vYmFz ZWJhY2t1cC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2Jhc2ViYWNrdXAuYwpA QCAtNzU4LDcgKzc1OCw3IEBAIFNlbmRCYXNlQmFja3VwKEJhc2VCYWNrdXBDbWQgKmNtZCkK IAogCQlzbnByaW50ZihhY3Rpdml0eW1zZywgc2l6ZW9mKGFjdGl2aXR5bXNnKSwgInNlbmRp bmcgYmFja3VwIFwiJXNcIiIsCiAJCQkJIG9wdC5sYWJlbCk7Ci0JCXNldF9wc19kaXNwbGF5 KGFjdGl2aXR5bXNnLCBmYWxzZSk7CisJCXNldF9wc19kaXNwbGF5KGFjdGl2aXR5bXNnKTsK IAl9CiAKIAlwZXJmb3JtX2Jhc2VfYmFja3VwKCZvcHQpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vc3luY3JlcC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v c3luY3JlcC5jCmluZGV4IGMyODQxMDNiNTQuLmZmZDViMzFlYjIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3N5bmNyZXAuYworKysgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9zeW5jcmVwLmMKQEAgLTIwOSw3ICsyMDksNyBAQCBTeW5jUmVwV2FpdEZvckxT TihYTG9nUmVjUHRyIGxzbiwgYm9vbCBjb21taXQpCiAJCW1lbWNweShuZXdfc3RhdHVzLCBv bGRfc3RhdHVzLCBsZW4pOwogCQlzcHJpbnRmKG5ld19zdGF0dXMgKyBsZW4sICIgd2FpdGlu ZyBmb3IgJVgvJVgiLAogCQkJCSh1aW50MzIpIChsc24gPj4gMzIpLCAodWludDMyKSBsc24p OwotCQlzZXRfcHNfZGlzcGxheShuZXdfc3RhdHVzLCBmYWxzZSk7CisJCXNldF9wc19kaXNw bGF5KG5ld19zdGF0dXMpOwogCQluZXdfc3RhdHVzW2xlbl0gPSAnXDAnOyAvKiB0cnVuY2F0 ZSBvZmYgIiB3YWl0aW5nIC4uLiIgKi8KIAl9CiAKQEAgLTMxMSw3ICszMTEsNyBAQCBTeW5j UmVwV2FpdEZvckxTTihYTG9nUmVjUHRyIGxzbiwgYm9vbCBjb21taXQpCiAJaWYgKG5ld19z dGF0dXMpCiAJewogCQkvKiBSZXNldCBwcyBkaXNwbGF5ICovCi0JCXNldF9wc19kaXNwbGF5 KG5ld19zdGF0dXMsIGZhbHNlKTsKKwkJc2V0X3BzX2Rpc3BsYXkobmV3X3N0YXR1cyk7CiAJ CXBmcmVlKG5ld19zdGF0dXMpOwogCX0KIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxy ZWNlaXZlci5jCmluZGV4IDJhYjE1YzNjYmIuLjkzMGNjMDNlMGYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMKKysrIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYwpAQCAtNjY1LDggKzY2NSw3IEBAIFdhbFJjdldh aXRGb3JTdGFydFBvc2l0aW9uKFhMb2dSZWNQdHIgKnN0YXJ0cG9pbnQsIFRpbWVMaW5lSUQg KnN0YXJ0cG9pbnRUTEkpCiAJd2FscmN2LT5yZWNlaXZlU3RhcnRUTEkgPSAwOwogCVNwaW5M b2NrUmVsZWFzZSgmd2FscmN2LT5tdXRleCk7CiAKLQlpZiAodXBkYXRlX3Byb2Nlc3NfdGl0 bGUpCi0JCXNldF9wc19kaXNwbGF5KCJpZGxlIiwgZmFsc2UpOworCXNldF9wc19kaXNwbGF5 KCJpZGxlIik7CiAKIAkvKgogCSAqIG51ZGdlIHN0YXJ0dXAgcHJvY2VzcyB0byBub3RpY2Ug dGhhdCB3ZSd2ZSBzdG9wcGVkIHN0cmVhbWluZyBhbmQgYXJlCkBAIC03MTQsNyArNzEzLDcg QEAgV2FsUmN2V2FpdEZvclN0YXJ0UG9zaXRpb24oWExvZ1JlY1B0ciAqc3RhcnRwb2ludCwg VGltZUxpbmVJRCAqc3RhcnRwb2ludFRMSSkKIAkJc25wcmludGYoYWN0aXZpdHltc2csIHNp emVvZihhY3Rpdml0eW1zZyksICJyZXN0YXJ0aW5nIGF0ICVYLyVYIiwKIAkJCQkgKHVpbnQz MikgKCpzdGFydHBvaW50ID4+IDMyKSwKIAkJCQkgKHVpbnQzMikgKnN0YXJ0cG9pbnQpOwot CQlzZXRfcHNfZGlzcGxheShhY3Rpdml0eW1zZywgZmFsc2UpOworCQlzZXRfcHNfZGlzcGxh eShhY3Rpdml0eW1zZyk7CiAJfQogfQogCkBAIC0xMDI3LDcgKzEwMjYsNyBAQCBYTG9nV2Fs UmN2Rmx1c2goYm9vbCBkeWluZykKIAkJCXNucHJpbnRmKGFjdGl2aXR5bXNnLCBzaXplb2Yo YWN0aXZpdHltc2cpLCAic3RyZWFtaW5nICVYLyVYIiwKIAkJCQkJICh1aW50MzIpIChMb2dz dHJlYW1SZXN1bHQuV3JpdGUgPj4gMzIpLAogCQkJCQkgKHVpbnQzMikgTG9nc3RyZWFtUmVz dWx0LldyaXRlKTsKLQkJCXNldF9wc19kaXNwbGF5KGFjdGl2aXR5bXNnLCBmYWxzZSk7CisJ CQlzZXRfcHNfZGlzcGxheShhY3Rpdml0eW1zZyk7CiAJCX0KIAogCQkvKiBBbHNvIGxldCB0 aGUgbWFzdGVyIGtub3cgdGhhdCB3ZSBtYWRlIHNvbWUgcHJvZ3Jlc3MgKi8KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKaW5kZXggYWJiNTMzYjlkMC4uZjA0YzliOTQ5NiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKKysrIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKQEAgLTI3NjEsNyArMjc2MSw3 IEBAIFhMb2dTZW5kUGh5c2ljYWwodm9pZCkKIAogCQlzbnByaW50ZihhY3Rpdml0eW1zZywg c2l6ZW9mKGFjdGl2aXR5bXNnKSwgInN0cmVhbWluZyAlWC8lWCIsCiAJCQkJICh1aW50MzIp IChzZW50UHRyID4+IDMyKSwgKHVpbnQzMikgc2VudFB0cik7Ci0JCXNldF9wc19kaXNwbGF5 KGFjdGl2aXR5bXNnLCBmYWxzZSk7CisJCXNldF9wc19kaXNwbGF5KGFjdGl2aXR5bXNnKTsK IAl9CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnku YyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYwppbmRleCAzMDkwZTU3ZmE0 Li4wYTUzMjMwNzE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFu ZGJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jCkBAIC0yNTQs NyArMjU0LDcgQEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoVmlydHVhbFhJRHMoVmly dHVhbFRyYW5zYWN0aW9uSWQgKndhaXRsaXN0LAogCQkJCW5ld19zdGF0dXMgPSAoY2hhciAq KSBwYWxsb2MobGVuICsgOCArIDEpOwogCQkJCW1lbWNweShuZXdfc3RhdHVzLCBvbGRfc3Rh dHVzLCBsZW4pOwogCQkJCXN0cmNweShuZXdfc3RhdHVzICsgbGVuLCAiIHdhaXRpbmciKTsK LQkJCQlzZXRfcHNfZGlzcGxheShuZXdfc3RhdHVzLCBmYWxzZSk7CisJCQkJc2V0X3BzX2Rp c3BsYXkobmV3X3N0YXR1cyk7CiAJCQkJbmV3X3N0YXR1c1tsZW5dID0gJ1wwJzsgLyogdHJ1 bmNhdGUgb2ZmICIgd2FpdGluZyIgKi8KIAkJCX0KIApAQCAtMjg1LDcgKzI4NSw3IEBAIFJl c29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFZpcnR1YWxYSURzKFZpcnR1YWxUcmFuc2FjdGlv bklkICp3YWl0bGlzdCwKIAkvKiBSZXNldCBwcyBkaXNwbGF5IGlmIHdlIGNoYW5nZWQgaXQg Ki8KIAlpZiAobmV3X3N0YXR1cykKIAl7Ci0JCXNldF9wc19kaXNwbGF5KG5ld19zdGF0dXMs IGZhbHNlKTsKKwkJc2V0X3BzX2Rpc3BsYXkobmV3X3N0YXR1cyk7CiAJCXBmcmVlKG5ld19z dGF0dXMpOwogCX0KIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9s b2NrLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvbG9jay5jCmluZGV4IDU2ZGJhMDky OTkuLjFkZjdiOGUyYWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9s b2NrLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYwpAQCAtMTczNyw3 ICsxNzM3LDcgQEAgV2FpdE9uTG9jayhMT0NBTExPQ0sgKmxvY2FsbG9jaywgUmVzb3VyY2VP d25lciBvd25lcikKIAkJbmV3X3N0YXR1cyA9IChjaGFyICopIHBhbGxvYyhsZW4gKyA4ICsg MSk7CiAJCW1lbWNweShuZXdfc3RhdHVzLCBvbGRfc3RhdHVzLCBsZW4pOwogCQlzdHJjcHko bmV3X3N0YXR1cyArIGxlbiwgIiB3YWl0aW5nIik7Ci0JCXNldF9wc19kaXNwbGF5KG5ld19z dGF0dXMsIGZhbHNlKTsKKwkJc2V0X3BzX2Rpc3BsYXkobmV3X3N0YXR1cyk7CiAJCW5ld19z dGF0dXNbbGVuXSA9ICdcMCc7IC8qIHRydW5jYXRlIG9mZiAiIHdhaXRpbmciICovCiAJfQog CkBAIC0xNzg5LDcgKzE3ODksNyBAQCBXYWl0T25Mb2NrKExPQ0FMTE9DSyAqbG9jYWxsb2Nr LCBSZXNvdXJjZU93bmVyIG93bmVyKQogCQkvKiBSZXBvcnQgY2hhbmdlIHRvIG5vbi13YWl0 aW5nIHN0YXR1cyAqLwogCQlpZiAodXBkYXRlX3Byb2Nlc3NfdGl0bGUpCiAJCXsKLQkJCXNl dF9wc19kaXNwbGF5KG5ld19zdGF0dXMsIGZhbHNlKTsKKwkJCXNldF9wc19kaXNwbGF5KG5l d19zdGF0dXMpOwogCQkJcGZyZWUobmV3X3N0YXR1cyk7CiAJCX0KIApAQCAtMTgwMyw3ICsx ODAzLDcgQEAgV2FpdE9uTG9jayhMT0NBTExPQ0sgKmxvY2FsbG9jaywgUmVzb3VyY2VPd25l ciBvd25lcikKIAkvKiBSZXBvcnQgY2hhbmdlIHRvIG5vbi13YWl0aW5nIHN0YXR1cyAqLwog CWlmICh1cGRhdGVfcHJvY2Vzc190aXRsZSkKIAl7Ci0JCXNldF9wc19kaXNwbGF5KG5ld19z dGF0dXMsIGZhbHNlKTsKKwkJc2V0X3BzX2Rpc3BsYXkobmV3X3N0YXR1cyk7CiAJCXBmcmVl KG5ld19zdGF0dXMpOwogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0 Z3Jlcy5jIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCmluZGV4IDBhNmY4MDk2M2Iu LmI2YThmZmJmZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwor KysgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKQEAgLTEwODEsNyArMTA4MSw3IEBA IGV4ZWNfc2ltcGxlX3F1ZXJ5KGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZykKIAkJICovCiAJ CWNvbW1hbmRUYWcgPSBDcmVhdGVDb21tYW5kVGFnKHBhcnNldHJlZS0+c3RtdCk7CiAKLQkJ c2V0X3BzX2Rpc3BsYXkoY29tbWFuZFRhZywgZmFsc2UpOworCQlzZXRfcHNfZGlzcGxheShj b21tYW5kVGFnKTsKIAogCQlCZWdpbkNvbW1hbmQoY29tbWFuZFRhZywgZGVzdCk7CiAKQEAg LTEzNTcsNyArMTM1Nyw3IEBAIGV4ZWNfcGFyc2VfbWVzc2FnZShjb25zdCBjaGFyICpxdWVy eV9zdHJpbmcsCS8qIHN0cmluZyB0byBleGVjdXRlICovCiAKIAlwZ3N0YXRfcmVwb3J0X2Fj dGl2aXR5KFNUQVRFX1JVTk5JTkcsIHF1ZXJ5X3N0cmluZyk7CiAKLQlzZXRfcHNfZGlzcGxh eSgiUEFSU0UiLCBmYWxzZSk7CisJc2V0X3BzX2Rpc3BsYXkoIlBBUlNFIik7CiAKIAlpZiAo c2F2ZV9sb2dfc3RhdGVtZW50X3N0YXRzKQogCQlSZXNldFVzYWdlKCk7CkBAIC0xNjUyLDcg KzE2NTIsNyBAQCBleGVjX2JpbmRfbWVzc2FnZShTdHJpbmdJbmZvIGlucHV0X21lc3NhZ2Up CiAKIAlwZ3N0YXRfcmVwb3J0X2FjdGl2aXR5KFNUQVRFX1JVTk5JTkcsIHBzcmMtPnF1ZXJ5 X3N0cmluZyk7CiAKLQlzZXRfcHNfZGlzcGxheSgiQklORCIsIGZhbHNlKTsKKwlzZXRfcHNf ZGlzcGxheSgiQklORCIpOwogCiAJaWYgKHNhdmVfbG9nX3N0YXRlbWVudF9zdGF0cykKIAkJ UmVzZXRVc2FnZSgpOwpAQCAtMjA5NSw3ICsyMDk1LDcgQEAgZXhlY19leGVjdXRlX21lc3Nh Z2UoY29uc3QgY2hhciAqcG9ydGFsX25hbWUsIGxvbmcgbWF4X3Jvd3MpCiAKIAlwZ3N0YXRf cmVwb3J0X2FjdGl2aXR5KFNUQVRFX1JVTk5JTkcsIHNvdXJjZVRleHQpOwogCi0Jc2V0X3Bz X2Rpc3BsYXkocG9ydGFsLT5jb21tYW5kVGFnLCBmYWxzZSk7CisJc2V0X3BzX2Rpc3BsYXko cG9ydGFsLT5jb21tYW5kVGFnKTsKIAogCWlmIChzYXZlX2xvZ19zdGF0ZW1lbnRfc3RhdHMp CiAJCVJlc2V0VXNhZ2UoKTsKQEAgLTQxNzEsNyArNDE3MSw3IEBAIFBvc3RncmVzTWFpbihp bnQgYXJnYywgY2hhciAqYXJndltdLAogCQl7CiAJCQlpZiAoSXNBYm9ydGVkVHJhbnNhY3Rp b25CbG9ja1N0YXRlKCkpCiAJCQl7Ci0JCQkJc2V0X3BzX2Rpc3BsYXkoImlkbGUgaW4gdHJh bnNhY3Rpb24gKGFib3J0ZWQpIiwgZmFsc2UpOworCQkJCXNldF9wc19kaXNwbGF5KCJpZGxl IGluIHRyYW5zYWN0aW9uIChhYm9ydGVkKSIpOwogCQkJCXBnc3RhdF9yZXBvcnRfYWN0aXZp dHkoU1RBVEVfSURMRUlOVFJBTlNBQ1RJT05fQUJPUlRFRCwgTlVMTCk7CiAKIAkJCQkvKiBT dGFydCB0aGUgaWRsZS1pbi10cmFuc2FjdGlvbiB0aW1lciAqLwpAQCAtNDE4NCw3ICs0MTg0 LDcgQEAgUG9zdGdyZXNNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10sCiAJCQl9CiAJCQll bHNlIGlmIChJc1RyYW5zYWN0aW9uT3JUcmFuc2FjdGlvbkJsb2NrKCkpCiAJCQl7Ci0JCQkJ c2V0X3BzX2Rpc3BsYXkoImlkbGUgaW4gdHJhbnNhY3Rpb24iLCBmYWxzZSk7CisJCQkJc2V0 X3BzX2Rpc3BsYXkoImlkbGUgaW4gdHJhbnNhY3Rpb24iKTsKIAkJCQlwZ3N0YXRfcmVwb3J0 X2FjdGl2aXR5KFNUQVRFX0lETEVJTlRSQU5TQUNUSU9OLCBOVUxMKTsKIAogCQkJCS8qIFN0 YXJ0IHRoZSBpZGxlLWluLXRyYW5zYWN0aW9uIHRpbWVyICovCkBAIC00MjExLDcgKzQyMTEs NyBAQCBQb3N0Z3Jlc01haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwKIAogCQkJCXBnc3Rh dF9yZXBvcnRfc3RhdChmYWxzZSk7CiAKLQkJCQlzZXRfcHNfZGlzcGxheSgiaWRsZSIsIGZh bHNlKTsKKwkJCQlzZXRfcHNfZGlzcGxheSgiaWRsZSIpOwogCQkJCXBnc3RhdF9yZXBvcnRf YWN0aXZpdHkoU1RBVEVfSURMRSwgTlVMTCk7CiAJCQl9CiAKQEAgLTQzNjEsNyArNDM2MSw3 IEBAIFBvc3RncmVzTWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdLAogCiAJCQkJLyogUmVw b3J0IHF1ZXJ5IHRvIHZhcmlvdXMgbW9uaXRvcmluZyBmYWNpbGl0aWVzLiAqLwogCQkJCXBn c3RhdF9yZXBvcnRfYWN0aXZpdHkoU1RBVEVfRkFTVFBBVEgsIE5VTEwpOwotCQkJCXNldF9w c19kaXNwbGF5KCI8RkFTVFBBVEg+IiwgZmFsc2UpOworCQkJCXNldF9wc19kaXNwbGF5KCI8 RkFTVFBBVEg+Iik7CiAKIAkJCQkvKiBzdGFydCBhbiB4YWN0IGZvciB0aGlzIGZ1bmN0aW9u IGludm9jYXRpb24gKi8KIAkJCQlzdGFydF94YWN0X2NvbW1hbmQoKTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvcG9zdGluaXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2luaXQvcG9zdGluaXQuYwppbmRleCA4YTQ3ZGNkY2IxLi5mNDI0N2VhNzBkIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9pbml0L3Bvc3Rpbml0LmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5jCkBAIC0yMzYsNiArMjM2LDcgQEAgUGVyZm9ybUF1 dGhlbnRpY2F0aW9uKFBvcnQgKnBvcnQpCiAJLyoKIAkgKiBOb3cgcGVyZm9ybSBhdXRoZW50 aWNhdGlvbiBleGNoYW5nZS4KIAkgKi8KKwlzZXRfcHNfZGlzcGxheSgiYXV0aGVudGljYXRp b24iKTsKIAlDbGllbnRBdXRoZW50aWNhdGlvbihwb3J0KTsgLyogbWlnaHQgbm90IHJldHVy biwgaWYgZmFpbHVyZSAqLwogCiAJLyoKQEAgLTMwMyw3ICszMDQsNyBAQCBQZXJmb3JtQXV0 aGVudGljYXRpb24oUG9ydCAqcG9ydCkKIAkJfQogCX0KIAotCXNldF9wc19kaXNwbGF5KCJz dGFydHVwIiwgZmFsc2UpOworCXNldF9wc19kaXNwbGF5KCJzdGFydHVwIik7CiAKIAlDbGll bnRBdXRoSW5Qcm9ncmVzcyA9IGZhbHNlOwkvKiBjbGllbnRfbWluX21lc3NhZ2VzIGlzIGFj dGl2ZSBub3cgKi8KIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcHNf c3RhdHVzLmMgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3BzX3N0YXR1cy5jCmluZGV4IGVk MjNjODQwZTkuLjhiMTYwYzBiNDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21p c2MvcHNfc3RhdHVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wc19zdGF0dXMu YwpAQCAtMjUwLDEyICsyNTAsMTEgQEAgc2F2ZV9wc19kaXNwbGF5X2FyZ3MoaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQogICogdmFsdWVzLiAgQXQgdGhpcyBwb2ludCwgdGhlIG9yaWdpbmFs IGFyZ3ZbXSBhcnJheSBtYXkgYmUgb3ZlcndyaXR0ZW4uCiAgKi8KIHZvaWQKLWluaXRfcHNf ZGlzcGxheShjb25zdCBjaGFyICp1c2VybmFtZSwgY29uc3QgY2hhciAqZGJuYW1lLAotCQkJ CWNvbnN0IGNoYXIgKmhvc3RfaW5mbywgY29uc3QgY2hhciAqaW5pdGlhbF9zdHIpCitpbml0 X3BzX2Rpc3BsYXkoY29uc3QgY2hhciAqZml4ZWRfcGFydCkKIHsKLQlBc3NlcnQodXNlcm5h bWUpOwotCUFzc2VydChkYm5hbWUpOwotCUFzc2VydChob3N0X2luZm8pOworCWJvb2wJCXNh dmVfdXBkYXRlX3Byb2Nlc3NfdGl0bGU7CisKKwlBc3NlcnQoZml4ZWRfcGFydCk7CiAKICNp Zm5kZWYgUFNfVVNFX05PTkUKIAkvKiBubyBwcyBkaXNwbGF5IGZvciBzdGFuZC1hbG9uZSBi YWNrZW5kICovCkBAIC0zMDksMTkgKzMwOCwyNSBAQCBpbml0X3BzX2Rpc3BsYXkoY29uc3Qg Y2hhciAqdXNlcm5hbWUsIGNvbnN0IGNoYXIgKmRibmFtZSwKIAlpZiAoKmNsdXN0ZXJfbmFt ZSA9PSAnXDAnKQogCXsKIAkJc25wcmludGYocHNfYnVmZmVyLCBwc19idWZmZXJfc2l6ZSwK LQkJCQkgUFJPR1JBTV9OQU1FX1BSRUZJWCAiJXMgJXMgJXMgIiwKLQkJCQkgdXNlcm5hbWUs IGRibmFtZSwgaG9zdF9pbmZvKTsKKwkJCQkgUFJPR1JBTV9OQU1FX1BSRUZJWCAiJXMgIiwK KwkJCQkgZml4ZWRfcGFydCk7CiAJfQogCWVsc2UKIAl7CiAJCXNucHJpbnRmKHBzX2J1ZmZl ciwgcHNfYnVmZmVyX3NpemUsCi0JCQkJIFBST0dSQU1fTkFNRV9QUkVGSVggIiVzOiAlcyAl cyAlcyAiLAotCQkJCSBjbHVzdGVyX25hbWUsIHVzZXJuYW1lLCBkYm5hbWUsIGhvc3RfaW5m byk7CisJCQkJIFBST0dSQU1fTkFNRV9QUkVGSVggIiVzOiAlcyAiLAorCQkJCSBjbHVzdGVy X25hbWUsIGZpeGVkX3BhcnQpOwogCX0KIAogCXBzX2J1ZmZlcl9jdXJfbGVuID0gcHNfYnVm ZmVyX2ZpeGVkX3NpemUgPSBzdHJsZW4ocHNfYnVmZmVyKTsKIAotCXNldF9wc19kaXNwbGF5 KGluaXRpYWxfc3RyLCB0cnVlKTsKKwkvKgorCSAqIE9uIHRoZSBmaXJzdCBydW4sIGZvcmNl IHRoZSB1cGRhdGUuCisJICovCisJc2F2ZV91cGRhdGVfcHJvY2Vzc190aXRsZSA9IHVwZGF0 ZV9wcm9jZXNzX3RpdGxlOworCXVwZGF0ZV9wcm9jZXNzX3RpdGxlID0gdHJ1ZTsKKwlzZXRf cHNfZGlzcGxheSgiIik7CisJdXBkYXRlX3Byb2Nlc3NfdGl0bGUgPSBzYXZlX3VwZGF0ZV9w cm9jZXNzX3RpdGxlOwogI2VuZGlmCQkJCQkJCS8qIG5vdCBQU19VU0VfTk9ORSAqLwogfQog CkBAIC0zMzIsMTEgKzMzNywxMSBAQCBpbml0X3BzX2Rpc3BsYXkoY29uc3QgY2hhciAqdXNl cm5hbWUsIGNvbnN0IGNoYXIgKmRibmFtZSwKICAqIGluZGljYXRpb24gb2Ygd2hhdCB5b3Un cmUgY3VycmVudGx5IGRvaW5nIHBhc3NlZCBpbiB0aGUgYXJndW1lbnQuCiAgKi8KIHZvaWQK LXNldF9wc19kaXNwbGF5KGNvbnN0IGNoYXIgKmFjdGl2aXR5LCBib29sIGZvcmNlKQorc2V0 X3BzX2Rpc3BsYXkoY29uc3QgY2hhciAqYWN0aXZpdHkpCiB7CiAjaWZuZGVmIFBTX1VTRV9O T05FCi0JLyogdXBkYXRlX3Byb2Nlc3NfdGl0bGU9b2ZmIGRpc2FibGVzIHVwZGF0ZXMsIHVu bGVzcyBmb3JjZSA9IHRydWUgKi8KLQlpZiAoIWZvcmNlICYmICF1cGRhdGVfcHJvY2Vzc190 aXRsZSkKKwkvKiB1cGRhdGVfcHJvY2Vzc190aXRsZT1vZmYgZGlzYWJsZXMgdXBkYXRlcyAq LworCWlmICghdXBkYXRlX3Byb2Nlc3NfdGl0bGUpCiAJCXJldHVybjsKIAogCS8qIG5vIHBz IGRpc3BsYXkgZm9yIHN0YW5kLWFsb25lIGJhY2tlbmQgKi8KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3V0aWxzL3BzX3N0YXR1cy5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcHNfc3RhdHVz LmgKaW5kZXggMjNmMWU1OWZmYy4uOWY0M2UxZmRmMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvdXRpbHMvcHNfc3RhdHVzLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcHNfc3RhdHVz LmgKQEAgLTE2LDEwICsxNiw5IEBAIGV4dGVybiBib29sIHVwZGF0ZV9wcm9jZXNzX3RpdGxl OwogCiBleHRlcm4gY2hhciAqKnNhdmVfcHNfZGlzcGxheV9hcmdzKGludCBhcmdjLCBjaGFy ICoqYXJndik7CiAKLWV4dGVybiB2b2lkIGluaXRfcHNfZGlzcGxheShjb25zdCBjaGFyICp1 c2VybmFtZSwgY29uc3QgY2hhciAqZGJuYW1lLAotCQkJCQkJCWNvbnN0IGNoYXIgKmhvc3Rf aW5mbywgY29uc3QgY2hhciAqaW5pdGlhbF9zdHIpOworZXh0ZXJuIHZvaWQgaW5pdF9wc19k aXNwbGF5KGNvbnN0IGNoYXIgKmZpeGVkX3BhcnQpOwogCi1leHRlcm4gdm9pZCBzZXRfcHNf ZGlzcGxheShjb25zdCBjaGFyICphY3Rpdml0eSwgYm9vbCBmb3JjZSk7CitleHRlcm4gdm9p ZCBzZXRfcHNfZGlzcGxheShjb25zdCBjaGFyICphY3Rpdml0eSk7CiAKIGV4dGVybiBjb25z dCBjaGFyICpnZXRfcHNfZGlzcGxheShpbnQgKmRpc3BsZW4pOwogCi0tIAoyLjI1LjAKCg== --------------2A6EF31CB4155A58556EB615 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v2-0002-Unify-several-ways-to-tracking-backend-type.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v2-0002-Unify-several-ways-to-tracking-backend-type.patch" RnJvbSA2YTdmOTJjMzYxMTliMzQ1ZDhlYzViMzg5ZTM1YWY2MzhjZWRmOTM0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCAyMCBGZWIgMjAyMCAxODoxNDozMyArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjIgMi80XSBVbmlmeSBzZXZlcmFsIHdheXMgdG8gdHJhY2tpbmcgYmFja2Vu ZCB0eXBlCgpBZGQgYSBuZXcgZ2xvYmFsIHZhcmlhYmxlIE15QmFja2VuZFR5cGUgdGhhdCB1 c2VzIHRoZSBzYW1lIEJhY2tlbmRUeXBlCmVudW0gdGhhdCB3YXMgcHJldmlvdXNseSBvbmx5 IHVzZWQgYnkgdGhlIHN0YXRzIGNvbGxlY3Rvci4gIFRoYXQgd2F5CnNldmVyYWwgZHVwbGlj YXRlIHdheXMgb2YgY2hlY2tpbmcgd2hhdCB0eXBlIGEgcGFydGljdWxhciBwcm9jZXNzIGlz CmNhbiBiZSBzaW1wbGlmaWVkLgotLS0KIHNyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290c3Ry YXAuYyAgIHwgNDggKysrKysrKystLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVy L2F1dG92YWN1dW0uYyB8ICA4ICstLQogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtl ci5jICAgfCAgMiArLQogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ2FyY2guYyAgICAgfCAg NiArLS0KIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcGdzdGF0LmMgICAgIHwgNzUgKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1h c3Rlci5jIHwgIDUgKysKIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvc3lzbG9nZ2VyLmMgIHwg IDMgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jICAgIHwgIDIgKwogc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9wc19zdGF0dXMuYyAgfCAxMSArKysrLQogc3JjL2luY2x1 ZGUvbWlzY2FkbWluLmggICAgICAgICAgICAgfCAyMCArKysrKysrKwogc3JjL2luY2x1ZGUv cGdzdGF0LmggICAgICAgICAgICAgICAgfCAyMCArLS0tLS0tLQogMTEgZmlsZXMgY2hhbmdl ZCwgODEgaW5zZXJ0aW9ucygrKSwgMTE5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290c3RyYXAuYyBiL3NyYy9iYWNrZW5kL2Jvb3RzdHJh cC9ib290c3RyYXAuYwppbmRleCA0MjEyMzMzNzM3Li5kMDkwZTY4NjA3IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9ib290c3RyYXAvYm9vdHN0cmFwLmMKKysrIGIvc3JjL2JhY2tlbmQv Ym9vdHN0cmFwL2Jvb3RzdHJhcC5jCkBAIC0zMTQsMzYgKzMxNCwyOCBAQCBBdXhpbGlhcnlQ cm9jZXNzTWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQlwcm9jX2V4aXQoMSk7CiAJ fQogCi0JLyoKLQkgKiBJZGVudGlmeSBteXNlbGYgdmlhIHBzCi0JICovCi0JaWYgKElzVW5k ZXJQb3N0bWFzdGVyKQorCXN3aXRjaCAoTXlBdXhQcm9jVHlwZSkKIAl7Ci0JCWNvbnN0IGNo YXIgKnN0YXRtc2c7Ci0KLQkJc3dpdGNoIChNeUF1eFByb2NUeXBlKQotCQl7Ci0JCQljYXNl IFN0YXJ0dXBQcm9jZXNzOgotCQkJCXN0YXRtc2cgPSBwZ3N0YXRfZ2V0X2JhY2tlbmRfZGVz YyhCX1NUQVJUVVApOwotCQkJCWJyZWFrOwotCQkJY2FzZSBCZ1dyaXRlclByb2Nlc3M6Ci0J CQkJc3RhdG1zZyA9IHBnc3RhdF9nZXRfYmFja2VuZF9kZXNjKEJfQkdfV1JJVEVSKTsKLQkJ CQlicmVhazsKLQkJCWNhc2UgQ2hlY2twb2ludGVyUHJvY2VzczoKLQkJCQlzdGF0bXNnID0g cGdzdGF0X2dldF9iYWNrZW5kX2Rlc2MoQl9DSEVDS1BPSU5URVIpOwotCQkJCWJyZWFrOwot CQkJY2FzZSBXYWxXcml0ZXJQcm9jZXNzOgotCQkJCXN0YXRtc2cgPSBwZ3N0YXRfZ2V0X2Jh Y2tlbmRfZGVzYyhCX1dBTF9XUklURVIpOwotCQkJCWJyZWFrOwotCQkJY2FzZSBXYWxSZWNl aXZlclByb2Nlc3M6Ci0JCQkJc3RhdG1zZyA9IHBnc3RhdF9nZXRfYmFja2VuZF9kZXNjKEJf V0FMX1JFQ0VJVkVSKTsKLQkJCQlicmVhazsKLQkJCWRlZmF1bHQ6Ci0JCQkJc3RhdG1zZyA9 ICI/Pz8gcHJvY2VzcyI7Ci0JCQkJYnJlYWs7Ci0JCX0KLQkJaW5pdF9wc19kaXNwbGF5KHN0 YXRtc2cpOworCQljYXNlIFN0YXJ0dXBQcm9jZXNzOgorCQkJTXlCYWNrZW5kVHlwZSA9IEJf U1RBUlRVUDsKKwkJCWJyZWFrOworCQljYXNlIEJnV3JpdGVyUHJvY2VzczoKKwkJCU15QmFj a2VuZFR5cGUgPSBCX0JHX1dSSVRFUjsKKwkJCWJyZWFrOworCQljYXNlIENoZWNrcG9pbnRl clByb2Nlc3M6CisJCQlNeUJhY2tlbmRUeXBlID0gQl9DSEVDS1BPSU5URVI7CisJCQlicmVh azsKKwkJY2FzZSBXYWxXcml0ZXJQcm9jZXNzOgorCQkJTXlCYWNrZW5kVHlwZSA9IEJfV0FM X1dSSVRFUjsKKwkJCWJyZWFrOworCQljYXNlIFdhbFJlY2VpdmVyUHJvY2VzczoKKwkJCU15 QmFja2VuZFR5cGUgPSBCX1dBTF9SRUNFSVZFUjsKKwkJCWJyZWFrOworCQlkZWZhdWx0Ogor CQkJTXlCYWNrZW5kVHlwZSA9IEJfSU5WQUxJRDsKIAl9CisJaWYgKElzVW5kZXJQb3N0bWFz dGVyKQorCQlpbml0X3BzX2Rpc3BsYXkoTlVMTCk7CiAKIAkvKiBBY3F1aXJlIGNvbmZpZ3Vy YXRpb24gcGFyYW1ldGVycywgdW5sZXNzIGluaGVyaXRlZCBmcm9tIHBvc3RtYXN0ZXIgKi8K IAlpZiAoIUlzVW5kZXJQb3N0bWFzdGVyKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9z dG1hc3Rlci9hdXRvdmFjdXVtLmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1 dW0uYwppbmRleCBjNDYxYWYxMWIyLi5jMTUyYjViODNhIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFz dGVyL2F1dG92YWN1dW0uYwpAQCAtNDMzLDggKzQzMyw4IEBAIEF1dG9WYWNMYXVuY2hlck1h aW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAogCWFtX2F1dG92YWN1dW1fbGF1bmNoZXIg PSB0cnVlOwogCi0JLyogSWRlbnRpZnkgbXlzZWxmIHZpYSBwcyAqLwotCWluaXRfcHNfZGlz cGxheShwZ3N0YXRfZ2V0X2JhY2tlbmRfZGVzYyhCX0FVVE9WQUNfTEFVTkNIRVIpKTsKKwlN eUJhY2tlbmRUeXBlID0gQl9BVVRPVkFDX0xBVU5DSEVSOworCWluaXRfcHNfZGlzcGxheShO VUxMKTsKIAogCWVyZXBvcnQoREVCVUcxLAogCQkJKGVycm1zZygiYXV0b3ZhY3V1bSBsYXVu Y2hlciBzdGFydGVkIikpKTsKQEAgLTE1MDYsOCArMTUwNiw4IEBAIEF1dG9WYWNXb3JrZXJN YWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAKIAlhbV9hdXRvdmFjdXVtX3dvcmtlciA9 IHRydWU7CiAKLQkvKiBJZGVudGlmeSBteXNlbGYgdmlhIHBzICovCi0JaW5pdF9wc19kaXNw bGF5KHBnc3RhdF9nZXRfYmFja2VuZF9kZXNjKEJfQVVUT1ZBQ19XT1JLRVIpKTsKKwlNeUJh Y2tlbmRUeXBlID0gQl9BVVRPVkFDX1dPUktFUjsKKwlpbml0X3BzX2Rpc3BsYXkoTlVMTCk7 CiAKIAlTZXRQcm9jZXNzaW5nTW9kZShJbml0UHJvY2Vzc2luZyk7CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYyBiL3NyYy9iYWNrZW5kL3Bvc3Rt YXN0ZXIvYmd3b3JrZXIuYwppbmRleCA2ODQyNTA5ODRkLi42YzY4NGI1ZTEyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2Jnd29ya2VyLmMKKysrIGIvc3JjL2JhY2tl bmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jCkBAIC02ODgsNyArNjg4LDcgQEAgU3RhcnRCYWNr Z3JvdW5kV29ya2VyKHZvaWQpCiAKIAlJc0JhY2tncm91bmRXb3JrZXIgPSB0cnVlOwogCi0J LyogSWRlbnRpZnkgbXlzZWxmIHZpYSBwcyAqLworCU15QmFja2VuZFR5cGUgPSBCX0JHX1dP UktFUjsKIAlpbml0X3BzX2Rpc3BsYXkod29ya2VyLT5iZ3dfbmFtZSk7CiAKIAkvKgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ2FyY2guYyBiL3NyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvcGdhcmNoLmMKaW5kZXggNThmNTQ1NDRmNi4uMDFmZmQ2NTEzYyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ2FyY2guYworKysgYi9zcmMvYmFj a2VuZC9wb3N0bWFzdGVyL3BnYXJjaC5jCkBAIC0yMzgsMTAgKzIzOCw4IEBAIFBnQXJjaGl2 ZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJcHFzaWduYWwoU0lHQ0hMRCwgU0lH X0RGTCk7CiAJUEdfU0VUTUFTSygmVW5CbG9ja1NpZyk7CiAKLQkvKgotCSAqIElkZW50aWZ5 IG15c2VsZiB2aWEgcHMKLQkgKi8KLQlpbml0X3BzX2Rpc3BsYXkoImFyY2hpdmVyIik7CisJ TXlCYWNrZW5kVHlwZSA9IEJfQVJDSElWRVI7CisJaW5pdF9wc19kaXNwbGF5KE5VTEwpOwog CiAJcGdhcmNoX01haW5Mb29wKCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3Rt YXN0ZXIvcGdzdGF0LmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jCmluZGV4 IDM5MzRkMDMzOTYuLjk0ZjA5NTNmZDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3Rt YXN0ZXIvcGdzdGF0LmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ3N0YXQuYwpA QCAtMjg4OSw2MiArMjg4OSw3IEBAIHBnc3RhdF9iZXN0YXJ0KHZvaWQpCiAJICogb3V0LW9m LWxpbmUgZGF0YS4gIFRob3NlIGhhdmUgdG8gYmUgaGFuZGxlZCBzZXBhcmF0ZWx5LCBiZWxv dy4KIAkgKi8KIAlsYmVlbnRyeS5zdF9wcm9jcGlkID0gTXlQcm9jUGlkOwotCi0JaWYgKE15 QmFja2VuZElkICE9IEludmFsaWRCYWNrZW5kSWQpCi0JewotCQlpZiAoSXNBdXRvVmFjdXVt TGF1bmNoZXJQcm9jZXNzKCkpCi0JCXsKLQkJCS8qIEF1dG92YWN1dW0gTGF1bmNoZXIgKi8K LQkJCWxiZWVudHJ5LnN0X2JhY2tlbmRUeXBlID0gQl9BVVRPVkFDX0xBVU5DSEVSOwotCQl9 Ci0JCWVsc2UgaWYgKElzQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSkKLQkJewotCQkJLyog QXV0b3ZhY3V1bSBXb3JrZXIgKi8KLQkJCWxiZWVudHJ5LnN0X2JhY2tlbmRUeXBlID0gQl9B VVRPVkFDX1dPUktFUjsKLQkJfQotCQllbHNlIGlmIChhbV93YWxzZW5kZXIpCi0JCXsKLQkJ CS8qIFdhbCBzZW5kZXIgKi8KLQkJCWxiZWVudHJ5LnN0X2JhY2tlbmRUeXBlID0gQl9XQUxf U0VOREVSOwotCQl9Ci0JCWVsc2UgaWYgKElzQmFja2dyb3VuZFdvcmtlcikKLQkJewotCQkJ LyogYmd3b3JrZXIgKi8KLQkJCWxiZWVudHJ5LnN0X2JhY2tlbmRUeXBlID0gQl9CR19XT1JL RVI7Ci0JCX0KLQkJZWxzZQotCQl7Ci0JCQkvKiBjbGllbnQtYmFja2VuZCAqLwotCQkJbGJl ZW50cnkuc3RfYmFja2VuZFR5cGUgPSBCX0JBQ0tFTkQ7Ci0JCX0KLQl9Ci0JZWxzZQotCXsK LQkJLyogTXVzdCBiZSBhbiBhdXhpbGlhcnkgcHJvY2VzcyAqLwotCQlBc3NlcnQoTXlBdXhQ cm9jVHlwZSAhPSBOb3RBbkF1eFByb2Nlc3MpOwotCQlzd2l0Y2ggKE15QXV4UHJvY1R5cGUp Ci0JCXsKLQkJCWNhc2UgU3RhcnR1cFByb2Nlc3M6Ci0JCQkJbGJlZW50cnkuc3RfYmFja2Vu ZFR5cGUgPSBCX1NUQVJUVVA7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIEJnV3JpdGVyUHJvY2Vz czoKLQkJCQlsYmVlbnRyeS5zdF9iYWNrZW5kVHlwZSA9IEJfQkdfV1JJVEVSOwotCQkJCWJy ZWFrOwotCQkJY2FzZSBDaGVja3BvaW50ZXJQcm9jZXNzOgotCQkJCWxiZWVudHJ5LnN0X2Jh Y2tlbmRUeXBlID0gQl9DSEVDS1BPSU5URVI7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIFdhbFdy aXRlclByb2Nlc3M6Ci0JCQkJbGJlZW50cnkuc3RfYmFja2VuZFR5cGUgPSBCX1dBTF9XUklU RVI7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIFdhbFJlY2VpdmVyUHJvY2VzczoKLQkJCQlsYmVl bnRyeS5zdF9iYWNrZW5kVHlwZSA9IEJfV0FMX1JFQ0VJVkVSOwotCQkJCWJyZWFrOwotCQkJ ZGVmYXVsdDoKLQkJCQllbG9nKEZBVEFMLCAidW5yZWNvZ25pemVkIHByb2Nlc3MgdHlwZTog JWQiLAotCQkJCQkgKGludCkgTXlBdXhQcm9jVHlwZSk7Ci0JCX0KLQl9Ci0KKwlsYmVlbnRy eS5zdF9iYWNrZW5kVHlwZSA9IE15QmFja2VuZFR5cGU7CiAJbGJlZW50cnkuc3RfcHJvY19z dGFydF90aW1lc3RhbXAgPSBNeVN0YXJ0VGltZXN0YW1wOwogCWxiZWVudHJ5LnN0X2FjdGl2 aXR5X3N0YXJ0X3RpbWVzdGFtcCA9IDA7CiAJbGJlZW50cnkuc3Rfc3RhdGVfc3RhcnRfdGlt ZXN0YW1wID0gMDsKQEAgLTQyNzMsNiArNDIxOCw5IEBAIHBnc3RhdF9nZXRfYmFja2VuZF9k ZXNjKEJhY2tlbmRUeXBlIGJhY2tlbmRUeXBlKQogCiAJc3dpdGNoIChiYWNrZW5kVHlwZSkK IAl7CisJCWNhc2UgQl9JTlZBTElEOgorCQkJYmFja2VuZERlc2MgPSAibm90IGluaXRpYWxp emVkIjsKKwkJCWJyZWFrOwogCQljYXNlIEJfQVVUT1ZBQ19MQVVOQ0hFUjoKIAkJCWJhY2tl bmREZXNjID0gImF1dG92YWN1dW0gbGF1bmNoZXIiOwogCQkJYnJlYWs7CkBAIC00MzAzLDYg KzQyNTEsMTUgQEAgcGdzdGF0X2dldF9iYWNrZW5kX2Rlc2MoQmFja2VuZFR5cGUgYmFja2Vu ZFR5cGUpCiAJCWNhc2UgQl9XQUxfV1JJVEVSOgogCQkJYmFja2VuZERlc2MgPSAid2Fsd3Jp dGVyIjsKIAkJCWJyZWFrOworCQljYXNlIEJfQVJDSElWRVI6CisJCQliYWNrZW5kRGVzYyA9 ICJhcmNoaXZlciI7CisJCQlicmVhazsKKwkJY2FzZSBCX1NUQVRTX0NPTExFQ1RPUjoKKwkJ CWJhY2tlbmREZXNjID0gInN0YXRzIGNvbGxlY3RvciI7CisJCQlicmVhazsKKwkJY2FzZSBC X0xPR0dFUjoKKwkJCWJhY2tlbmREZXNjID0gImxvZ2dlciI7CisJCQlicmVhazsKIAl9CiAK IAlyZXR1cm4gYmFja2VuZERlc2M7CkBAIC00NDQ0LDEwICs0NDAxLDggQEAgUGdzdGF0Q29s bGVjdG9yTWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCXBxc2lnbmFsKFNJR0NITEQs IFNJR19ERkwpOwogCVBHX1NFVE1BU0soJlVuQmxvY2tTaWcpOwogCi0JLyoKLQkgKiBJZGVu dGlmeSBteXNlbGYgdmlhIHBzCi0JICovCi0JaW5pdF9wc19kaXNwbGF5KCJzdGF0cyBjb2xs ZWN0b3IiKTsKKwlNeUJhY2tlbmRUeXBlID0gQl9TVEFUU19DT0xMRUNUT1I7CisJaW5pdF9w c19kaXNwbGF5KE5VTEwpOwogCiAJLyoKIAkgKiBSZWFkIGluIGV4aXN0aW5nIHN0YXRzIGZp bGVzIG9yIGluaXRpYWxpemUgdGhlIHN0YXRzIHRvIHplcm8uCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0 ZXIvcG9zdG1hc3Rlci5jCmluZGV4IDM4NmZjNTRlNmYuLmZmNTFkMzNiNzQgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCisrKyBiL3NyYy9iYWNr ZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCkBAIC0yMjU5LDYgKzIyNTksMTEgQEAgUHJv Y2Vzc1N0YXJ0dXBQYWNrZXQoUG9ydCAqcG9ydCwgYm9vbCBzZWN1cmVfZG9uZSkKIAlpZiAo c3RybGVuKHBvcnQtPnVzZXJfbmFtZSkgPj0gTkFNRURBVEFMRU4pCiAJCXBvcnQtPnVzZXJf bmFtZVtOQU1FREFUQUxFTiAtIDFdID0gJ1wwJzsKIAorCWlmIChhbV93YWxzZW5kZXIpCisJ CU15QmFja2VuZFR5cGUgPSBCX1dBTF9TRU5ERVI7CisJZWxzZQorCQlNeUJhY2tlbmRUeXBl ID0gQl9CQUNLRU5EOworCiAJLyoKIAkgKiBOb3JtYWwgd2Fsc2VuZGVyIGJhY2tlbmRzLCBl LmcuIGZvciBzdHJlYW1pbmcgcmVwbGljYXRpb24sIGFyZSBub3QKIAkgKiBjb25uZWN0ZWQg dG8gYSBwYXJ0aWN1bGFyIGRhdGFiYXNlLiBCdXQgd2Fsc2VuZGVycyB1c2VkIGZvciBsb2dp Y2FsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3N5c2xvZ2dlci5jIGIv c3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9zeXNsb2dnZXIuYwppbmRleCBiMGFiNWQzMDc2Li4y MGM1OWU5YjZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3N5c2xvZ2dl ci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvc3lzbG9nZ2VyLmMKQEAgLTE3OSw3 ICsxNzksOCBAQCBTeXNMb2dnZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAKIAlh bV9zeXNsb2dnZXIgPSB0cnVlOwogCi0JaW5pdF9wc19kaXNwbGF5KCJsb2dnZXIiKTsKKwlN eUJhY2tlbmRUeXBlID0gQl9MT0dHRVI7CisJaW5pdF9wc19kaXNwbGF5KE5VTEwpOwogCiAJ LyoKIAkgKiBJZiB3ZSByZXN0YXJ0ZWQsIG91ciBzdGRlcnIgaXMgYWxyZWFkeSByZWRpcmVj dGVkIGludG8gb3VyIG93biBpbnB1dApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv aW5pdC9nbG9iYWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYwppbmRl eCBlYjE5NjQ0NDE5Li5lNzVhMjlkZWY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9pbml0L2dsb2JhbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMu YwpAQCAtNzgsNiArNzgsOCBAQCBjaGFyCQlwb3N0Z3Jlc19leGVjX3BhdGhbTUFYUEdQQVRI XTsJLyogZnVsbCBwYXRoIHRvIGJhY2tlbmQgKi8KIC8qIG5vdGU6IGN1cnJlbnRseSB0aGlz IGlzIG5vdCB2YWxpZCBpbiBiYWNrZW5kIHByb2Nlc3NlcyAqLwogI2VuZGlmCiAKK0JhY2tl bmRUeXBlCU15QmFja2VuZFR5cGU7CisKIEJhY2tlbmRJZAlNeUJhY2tlbmRJZCA9IEludmFs aWRCYWNrZW5kSWQ7CiAKIEJhY2tlbmRJZAlQYXJhbGxlbE1hc3RlckJhY2tlbmRJZCA9IElu dmFsaWRCYWNrZW5kSWQ7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bz X3N0YXR1cy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wc19zdGF0dXMuYwppbmRleCA4 YjE2MGMwYjQwLi4wNjg1YTAyYTMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9t aXNjL3BzX3N0YXR1cy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcHNfc3RhdHVz LmMKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgImxpYnBxL2xpYnBxLmgiCiAjaW5j bHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAicGdzdGF0LmgiCiAjaW5jbHVkZSAidXRp bHMvZ3VjLmgiCiAjaW5jbHVkZSAidXRpbHMvcHNfc3RhdHVzLmgiCiAKQEAgLTI0NywxNCAr MjQ4LDIwIEBAIHNhdmVfcHNfZGlzcGxheV9hcmdzKGludCBhcmdjLCBjaGFyICoqYXJndikK IAogLyoKICAqIENhbGwgdGhpcyBvbmNlIGR1cmluZyBzdWJwcm9jZXNzIHN0YXJ0dXAgdG8g c2V0IHRoZSBpZGVudGlmaWNhdGlvbgotICogdmFsdWVzLiAgQXQgdGhpcyBwb2ludCwgdGhl IG9yaWdpbmFsIGFyZ3ZbXSBhcnJheSBtYXkgYmUgb3ZlcndyaXR0ZW4uCisgKiB2YWx1ZXMu CisgKgorICogSWYgZml4ZWRfcGFydCBpcyBOVUxMLCBhIGRlZmF1bHQgd2lsbCBiZSBvYnRh aW5lZCBmcm9tIEJhY2tlbmRUeXBlLgorICoKKyAqIEF0IHRoaXMgcG9pbnQsIHRoZSBvcmln aW5hbCBhcmd2W10gYXJyYXkgbWF5IGJlIG92ZXJ3cml0dGVuLgogICovCiB2b2lkCiBpbml0 X3BzX2Rpc3BsYXkoY29uc3QgY2hhciAqZml4ZWRfcGFydCkKIHsKIAlib29sCQlzYXZlX3Vw ZGF0ZV9wcm9jZXNzX3RpdGxlOwogCi0JQXNzZXJ0KGZpeGVkX3BhcnQpOworCUFzc2VydChm aXhlZF9wYXJ0IHx8IE15QmFja2VuZFR5cGUpOworCWlmICghZml4ZWRfcGFydCkKKwkJZml4 ZWRfcGFydCA9IHBnc3RhdF9nZXRfYmFja2VuZF9kZXNjKE15QmFja2VuZFR5cGUpOwogCiAj aWZuZGVmIFBTX1VTRV9OT05FCiAJLyogbm8gcHMgZGlzcGxheSBmb3Igc3RhbmQtYWxvbmUg YmFja2VuZCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmggYi9zcmMv aW5jbHVkZS9taXNjYWRtaW4uaAppbmRleCBmOTg1NDUzZWMzLi5hNDFiNjMzMWRhIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaAorKysgYi9zcmMvaW5jbHVkZS9taXNj YWRtaW4uaApAQCAtMTc4LDYgKzE3OCwyNiBAQCBleHRlcm4gY2hhciBwa2dsaWJfcGF0aFtd OwogZXh0ZXJuIGNoYXIgcG9zdGdyZXNfZXhlY19wYXRoW107CiAjZW5kaWYKIAordHlwZWRl ZiBlbnVtIEJhY2tlbmRUeXBlCit7CisJQl9JTlZBTElEID0gMCwKKwlCX0FVVE9WQUNfTEFV TkNIRVIsCisJQl9BVVRPVkFDX1dPUktFUiwKKwlCX0JBQ0tFTkQsCisJQl9CR19XT1JLRVIs CisJQl9CR19XUklURVIsCisJQl9DSEVDS1BPSU5URVIsCisJQl9TVEFSVFVQLAorCUJfV0FM X1JFQ0VJVkVSLAorCUJfV0FMX1NFTkRFUiwKKwlCX1dBTF9XUklURVIsCisJQl9BUkNISVZF UiwKKwlCX1NUQVRTX0NPTExFQ1RPUiwKKwlCX0xPR0dFUiwKK30gQmFja2VuZFR5cGU7CisK K2V4dGVybiBCYWNrZW5kVHlwZSBNeUJhY2tlbmRUeXBlOworCiAvKgogICogZG9uZSBpbiBz dG9yYWdlL2JhY2tlbmRpZC5oIGZvciBub3cuCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvcGdzdGF0LmggYi9zcmMvaW5jbHVkZS9wZ3N0YXQuaAppbmRleCAzYTY1YTUxNjk2Li4w ZmFjZjcyNTFiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaAorKysgYi9zcmMv aW5jbHVkZS9wZ3N0YXQuaApAQCAtMTMsNiArMTMsNyBAQAogCiAjaW5jbHVkZSAiZGF0YXR5 cGUvdGltZXN0YW1wLmgiCiAjaW5jbHVkZSAibGlicHEvcHFjb21tLmgiCisjaW5jbHVkZSAi bWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicG9ydC9hdG9taWNzLmgiCiAjaW5jbHVkZSAicG9y dGFiaWxpdHkvaW5zdHJfdGltZS5oIgogI2luY2x1ZGUgInBvc3RtYXN0ZXIvcGdhcmNoLmgi CkBAIC03MTIsMjUgKzcxMyw2IEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9HbG9iYWxTdGF0 cwogfSBQZ1N0YXRfR2xvYmFsU3RhdHM7CiAKIAotLyogLS0tLS0tLS0tLQotICogQmFja2Vu ZCB0eXBlcwotICogLS0tLS0tLS0tLQotICovCi10eXBlZGVmIGVudW0gQmFja2VuZFR5cGUK LXsKLQlCX0FVVE9WQUNfTEFVTkNIRVIsCi0JQl9BVVRPVkFDX1dPUktFUiwKLQlCX0JBQ0tF TkQsCi0JQl9CR19XT1JLRVIsCi0JQl9CR19XUklURVIsCi0JQl9DSEVDS1BPSU5URVIsCi0J Ql9TVEFSVFVQLAotCUJfV0FMX1JFQ0VJVkVSLAotCUJfV0FMX1NFTkRFUiwKLQlCX1dBTF9X UklURVIKLX0gQmFja2VuZFR5cGU7Ci0KLQogLyogLS0tLS0tLS0tLQogICogQmFja2VuZCBz dGF0ZXMKICAqIC0tLS0tLS0tLS0KLS0gCjIuMjUuMAoK --------------2A6EF31CB4155A58556EB615 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v2-0003-Add-backend-type-to-csvlog-and-optionally-log_lin.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v2-0003-Add-backend-type-to-csvlog-and-optionally-log_lin.pa"; filename*1="tch" RnJvbSA3NWFjOGVkMGM0NzgwMTcxMmViMmFhMzAwZDljYjI5NzY3ZDJlMTIxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCAyMCBGZWIgMjAyMCAxODoxNjozOSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjIgMy80XSBBZGQgYmFja2VuZCB0eXBlIHRvIGNzdmxvZyBhbmQgb3B0aW9u YWxseQogbG9nX2xpbmVfcHJlZml4CgotLS0KIGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbCAg ICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKystCiBzcmMvYmFja2VuZC91dGlscy9lcnJv ci9lbG9nLmMgICAgICAgICAgICAgICAgfCAyOSArKysrKysrKysrKysrKysrKysrCiBzcmMv YmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgfCAgMSArCiBzcmMv dGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3MuYyAgICAgICAgICAgICAgICAgfCAgMiArLQogNCBm aWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcu c2dtbAppbmRleCBjMTEyOGY4OWVjLi4yMDY3NzhiMWMzIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvY29uZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC02 NDcwLDYgKzY0NzAsMTEgQEAgPHRpdGxlPldoYXQgdG8gTG9nPC90aXRsZT4KICAgICAgICAg ICAgICA8ZW50cnk+QXBwbGljYXRpb24gbmFtZTwvZW50cnk+CiAgICAgICAgICAgICAgPGVu dHJ5PnllczwvZW50cnk+CiAgICAgICAgICAgICA8L3Jvdz4KKyAgICAgICAgICAgIDxyb3c+ CisgICAgICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPiViPC9saXRlcmFsPjwvZW50cnk+Cisg ICAgICAgICAgICAgPGVudHJ5PkJhY2tlbmQgcHJvY2VzcyB0eXBlPC9lbnRyeT4KKyAgICAg ICAgICAgICA8ZW50cnk+eWVzPC9lbnRyeT4KKyAgICAgICAgICAgIDwvcm93PgogICAgICAg ICAgICAgPHJvdz4KICAgICAgICAgICAgICA8ZW50cnk+PGxpdGVyYWw+JXU8L2xpdGVyYWw+ PC9lbnRyeT4KICAgICAgICAgICAgICA8ZW50cnk+VXNlciBuYW1lPC9lbnRyeT4KQEAgLTY3 ODUsNyArNjc5MCw3IEBAIDx0aXRsZT5Vc2luZyBDU1YtRm9ybWF0IExvZyBPdXRwdXQ8L3Rp dGxlPgogICAgICAgICBjaGFyYWN0ZXIgY291bnQgb2YgdGhlIGVycm9yIHBvc2l0aW9uIHRo ZXJlaW4sCiAgICAgICAgIGxvY2F0aW9uIG9mIHRoZSBlcnJvciBpbiB0aGUgUG9zdGdyZVNR TCBzb3VyY2UgY29kZQogICAgICAgICAoaWYgPHZhcm5hbWU+bG9nX2Vycm9yX3ZlcmJvc2l0 eTwvdmFybmFtZT4gaXMgc2V0IHRvIDxsaXRlcmFsPnZlcmJvc2U8L2xpdGVyYWw+KSwKLSAg ICAgICAgYW5kIGFwcGxpY2F0aW9uIG5hbWUuCisgICAgICAgIGFwcGxpY2F0aW9uIG5hbWUs IGFuZCBiYWNrZW5kIHR5cGUuCiAgICAgICAgIEhlcmUgaXMgYSBzYW1wbGUgdGFibGUgZGVm aW5pdGlvbiBmb3Igc3RvcmluZyBDU1YtZm9ybWF0IGxvZyBvdXRwdXQ6CiAKIDxwcm9ncmFt bGlzdGluZz4KQEAgLTY4MTQsNiArNjgxOSw3IEBAIDx0aXRsZT5Vc2luZyBDU1YtRm9ybWF0 IExvZyBPdXRwdXQ8L3RpdGxlPgogICBxdWVyeV9wb3MgaW50ZWdlciwKICAgbG9jYXRpb24g dGV4dCwKICAgYXBwbGljYXRpb25fbmFtZSB0ZXh0LAorICBiYWNrZW5kX3R5cGUgdGV4dCwK ICAgUFJJTUFSWSBLRVkgKHNlc3Npb25faWQsIHNlc3Npb25fbGluZV9udW0pCiApOwogPC9w cm9ncmFtbGlzdGluZz4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vs b2cuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYwppbmRleCBmNWIwMjExZjY2 Li5iYjY1ZWI0MWNhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9lcnJvci9lbG9n LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jCkBAIC03Miw2ICs3Miw4 IEBACiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKICNpbmNsdWRlICJtYi9wZ193Y2hh ci5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgInBnc3RhdC5oIgorI2lu Y2x1ZGUgInBvc3RtYXN0ZXIvYmd3b3JrZXIuaCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL3Bv c3RtYXN0ZXIuaCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL3N5c2xvZ2dlci5oIgogI2luY2x1 ZGUgInN0b3JhZ2UvaXBjLmgiCkBAIC0yNDkyLDYgKzI0OTQsMjMgQEAgbG9nX2xpbmVfcHJl Zml4KFN0cmluZ0luZm8gYnVmLCBFcnJvckRhdGEgKmVkYXRhKQogCQkJCQkJCQkJCSAgIHBh ZGRpbmcgPiAwID8gcGFkZGluZyA6IC1wYWRkaW5nKTsKIAogCQkJCWJyZWFrOworCQkJY2Fz ZSAnYic6CisJCQkJeworCQkJCQljb25zdCBjaGFyICpiYWNrZW5kX3R5cGVfc3RyOworCisJ CQkJCWlmIChNeVByb2NQaWQgPT0gUG9zdG1hc3RlclBpZCkKKwkJCQkJCWJhY2tlbmRfdHlw ZV9zdHIgPSAicG9zdG1hc3RlciI7CisJCQkJCWVsc2UgaWYgKE15QmFja2VuZFR5cGUgPT0g Ql9CR19XT1JLRVIpCisJCQkJCQliYWNrZW5kX3R5cGVfc3RyID0gTXlCZ3dvcmtlckVudHJ5 LT5iZ3dfdHlwZTsKKwkJCQkJZWxzZQorCQkJCQkJYmFja2VuZF90eXBlX3N0ciA9IHBnc3Rh dF9nZXRfYmFja2VuZF9kZXNjKE15QmFja2VuZFR5cGUpOworCisJCQkJCWlmIChwYWRkaW5n ICE9IDApCisJCQkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiUqcyIsIHBhZGRpbmcsIGJh Y2tlbmRfdHlwZV9zdHIpOworCQkJCQllbHNlCisJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3Ry aW5nKGJ1ZiwgYmFja2VuZF90eXBlX3N0cik7CisJCQkJCWJyZWFrOworCQkJCX0KIAkJCWNh c2UgJ3UnOgogCQkJCWlmIChNeVByb2NQb3J0KQogCQkJCXsKQEAgLTI5MjAsNiArMjkzOSwx NiBAQCB3cml0ZV9jc3Zsb2coRXJyb3JEYXRhICplZGF0YSkKIAlpZiAoYXBwbGljYXRpb25f bmFtZSkKIAkJYXBwZW5kQ1NWTGl0ZXJhbCgmYnVmLCBhcHBsaWNhdGlvbl9uYW1lKTsKIAor CWFwcGVuZFN0cmluZ0luZm9DaGFyKCZidWYsICcsJyk7CisKKwkvKiBiYWNrZW5kIHR5cGUg Ki8KKwlpZiAoTXlQcm9jUGlkID09IFBvc3RtYXN0ZXJQaWQpCisJCWFwcGVuZENTVkxpdGVy YWwoJmJ1ZiwgInBvc3RtYXN0ZXIiKTsKKwllbHNlIGlmIChNeUJhY2tlbmRUeXBlID09IEJf QkdfV09SS0VSKQorCQlhcHBlbmRDU1ZMaXRlcmFsKCZidWYsIE15Qmd3b3JrZXJFbnRyeS0+ Ymd3X3R5cGUpOworCWVsc2UKKwkJYXBwZW5kQ1NWTGl0ZXJhbCgmYnVmLCBwZ3N0YXRfZ2V0 X2JhY2tlbmRfZGVzYyhNeUJhY2tlbmRUeXBlKSk7CisKIAlhcHBlbmRTdHJpbmdJbmZvQ2hh cigmYnVmLCAnXG4nKTsKIAogCS8qIElmIGluIHRoZSBzeXNsb2dnZXIgcHJvY2VzcywgdHJ5 IHRvIHdyaXRlIG1lc3NhZ2VzIGRpcmVjdCB0byBmaWxlICovCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2Vu ZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggZTEwNDhjMDA0Ny4u MzIzZjEyMGVkZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jl c3FsLmNvbmYuc2FtcGxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNx bC5jb25mLnNhbXBsZQpAQCAtNTI0LDYgKzUyNCw3IEBACiAjbG9nX2hvc3RuYW1lID0gb2Zm CiAjbG9nX2xpbmVfcHJlZml4ID0gJyVtIFslcF0gJwkJIyBzcGVjaWFsIHZhbHVlczoKIAkJ CQkJIyAgICVhID0gYXBwbGljYXRpb24gbmFtZQorCQkJCQkjICAgJWIgPSBiYWNrZW5kIHR5 cGUKIAkJCQkJIyAgICV1ID0gdXNlciBuYW1lCiAJCQkJCSMgICAlZCA9IGRhdGFiYXNlIG5h bWUKIAkJCQkJIyAgICVyID0gcmVtb3RlIGhvc3QgYW5kIHBvcnQKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzcy5jIGIvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdy ZXNzLmMKaW5kZXggOWE0ZTUyYmM3Yi4uMzdmY2RhYWJlMiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9wZ19yZWdyZXNzLmMKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdy ZXNzLmMKQEAgLTIzMzMsNyArMjMzMyw3IEBAIHJlZ3Jlc3Npb25fbWFpbihpbnQgYXJnYywg Y2hhciAqYXJndltdLCBpbml0X2Z1bmN0aW9uIGlmdW5jLCB0ZXN0X2Z1bmN0aW9uIHRmdW5j CiAJCWZwdXRzKCJcbiMgQ29uZmlndXJhdGlvbiBhZGRlZCBieSBwZ19yZWdyZXNzXG5cbiIs IHBnX2NvbmYpOwogCQlmcHV0cygibG9nX2F1dG92YWN1dW1fbWluX2R1cmF0aW9uID0gMFxu IiwgcGdfY29uZik7CiAJCWZwdXRzKCJsb2dfY2hlY2twb2ludHMgPSBvblxuIiwgcGdfY29u Zik7Ci0JCWZwdXRzKCJsb2dfbGluZV9wcmVmaXggPSAnJW0gWyVwXSAlcSVhICdcbiIsIHBn X2NvbmYpOworCQlmcHV0cygibG9nX2xpbmVfcHJlZml4ID0gJyVtICViWyVwXSAlcSVhICdc biIsIHBnX2NvbmYpOwogCQlmcHV0cygibG9nX2xvY2tfd2FpdHMgPSBvblxuIiwgcGdfY29u Zik7CiAJCWZwdXRzKCJsb2dfdGVtcF9maWxlcyA9IDEyOGtCXG4iLCBwZ19jb25mKTsKIAkJ ZnB1dHMoIm1heF9wcmVwYXJlZF90cmFuc2FjdGlvbnMgPSAyXG4iLCBwZ19jb25mKTsKLS0g CjIuMjUuMAoK --------------2A6EF31CB4155A58556EB615 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v2-0004-Remove-am_syslogger-global-variable.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v2-0004-Remove-am_syslogger-global-variable.patch" RnJvbSAyZmZlZTY4MWYzYzE3YTY3NGYzY2FiMWY1MTJkZmJiZDc5ZTQzMzU3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCAyMCBGZWIgMjAyMCAxODoxNzoyOCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjIgNC80XSBSZW1vdmUgYW1fc3lzbG9nZ2VyIGdsb2JhbCB2YXJpYWJsZQoK VXNlIE15QmFja2VuZFR5cGUgaW5zdGVhZC4KLS0tCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVy L3N5c2xvZ2dlci5jIHwgOSArLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vs b2cuYyAgICAgfCA4ICsrKystLS0tCiBzcmMvaW5jbHVkZS9wb3N0bWFzdGVyL3N5c2xvZ2dl ci5oIHwgMiAtLQogMyBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDE0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvc3lzbG9nZ2Vy LmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3N5c2xvZ2dlci5jCmluZGV4IDIwYzU5ZTli NmEuLmNmYjE4OTU1MGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvc3lz bG9nZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9zeXNsb2dnZXIuYwpAQCAt NzQsMTEgKzc0LDYgQEAgY2hhcgkgICAqTG9nX2ZpbGVuYW1lID0gTlVMTDsKIGJvb2wJCUxv Z190cnVuY2F0ZV9vbl9yb3RhdGlvbiA9IGZhbHNlOwogaW50CQkJTG9nX2ZpbGVfbW9kZSA9 IFNfSVJVU1IgfCBTX0lXVVNSOwogCi0vKgotICogR2xvYmFsbHkgdmlzaWJsZSBzdGF0ZSAo dXNlZCBieSBlbG9nLmMpCi0gKi8KLWJvb2wJCWFtX3N5c2xvZ2dlciA9IGZhbHNlOwotCiBl eHRlcm4gYm9vbCByZWRpcmVjdGlvbl9kb25lOwogCiAvKgpAQCAtMTc3LDggKzE3Miw2IEBA IFN5c0xvZ2dlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAlzeXNsb2dnZXJfcGFy c2VBcmdzKGFyZ2MsIGFyZ3YpOwogI2VuZGlmCQkJCQkJCS8qIEVYRUNfQkFDS0VORCAqLwog Ci0JYW1fc3lzbG9nZ2VyID0gdHJ1ZTsKLQogCU15QmFja2VuZFR5cGUgPSBCX0xPR0dFUjsK IAlpbml0X3BzX2Rpc3BsYXkoTlVMTCk7CiAKQEAgLTEwNzMsNyArMTA2Niw3IEBAIGZsdXNo X3BpcGVfaW5wdXQoY2hhciAqbG9nYnVmZmVyLCBpbnQgKmJ5dGVzX2luX2xvZ2J1ZmZlcikK IC8qCiAgKiBXcml0ZSB0ZXh0IHRvIHRoZSBjdXJyZW50bHkgb3BlbiBsb2dmaWxlCiAgKgot ICogVGhpcyBpcyBleHBvcnRlZCBzbyB0aGF0IGVsb2cuYyBjYW4gY2FsbCBpdCB3aGVuIGFt X3N5c2xvZ2dlciBpcyB0cnVlLgorICogVGhpcyBpcyBleHBvcnRlZCBzbyB0aGF0IGVsb2cu YyBjYW4gY2FsbCBpdCB3aGVuIEJhY2tlbmRUeXBlIGlzIEJfTE9HR0VSLgogICogVGhpcyBh bGxvd3MgdGhlIHN5c2xvZ2dlciBwcm9jZXNzIHRvIHJlY29yZCBlbG9nIG1lc3NhZ2VzIG9m IGl0cyBvd24sCiAgKiBldmVuIHRob3VnaCBpdHMgc3RkZXJyIGRvZXMgbm90IHBvaW50IGF0 IHRoZSBzeXNsb2cgcGlwZS4KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv ZXJyb3IvZWxvZy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jCmluZGV4IGJi NjVlYjQxY2EuLjNhNmY3Zjk0NTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Vy cm9yL2Vsb2cuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9lcnJvci9lbG9nLmMKQEAgLTI5 NTIsNyArMjk1Miw3IEBAIHdyaXRlX2NzdmxvZyhFcnJvckRhdGEgKmVkYXRhKQogCWFwcGVu ZFN0cmluZ0luZm9DaGFyKCZidWYsICdcbicpOwogCiAJLyogSWYgaW4gdGhlIHN5c2xvZ2dl ciBwcm9jZXNzLCB0cnkgdG8gd3JpdGUgbWVzc2FnZXMgZGlyZWN0IHRvIGZpbGUgKi8KLQlp ZiAoYW1fc3lzbG9nZ2VyKQorCWlmIChNeUJhY2tlbmRUeXBlID09IEJfTE9HR0VSKQogCQl3 cml0ZV9zeXNsb2dnZXJfZmlsZShidWYuZGF0YSwgYnVmLmxlbiwgTE9HX0RFU1RJTkFUSU9O X0NTVkxPRyk7CiAJZWxzZQogCQl3cml0ZV9waXBlX2NodW5rcyhidWYuZGF0YSwgYnVmLmxl biwgTE9HX0RFU1RJTkFUSU9OX0NTVkxPRyk7CkBAIC0zMTQ2LDcgKzMxNDYsNyBAQCBzZW5k X21lc3NhZ2VfdG9fc2VydmVyX2xvZyhFcnJvckRhdGEgKmVkYXRhKQogCQkgKiBjYXRjaGlu ZyBzdGRlcnIgb3V0cHV0LCBhbmQgd2UgYXJlIG5vdCBvdXJzZWx2ZXMgdGhlIHN5c2xvZ2dl ci4KIAkJICogT3RoZXJ3aXNlLCBqdXN0IGRvIGEgdmFuaWxsYSB3cml0ZSB0byBzdGRlcnIu CiAJCSAqLwotCQlpZiAocmVkaXJlY3Rpb25fZG9uZSAmJiAhYW1fc3lzbG9nZ2VyKQorCQlp ZiAocmVkaXJlY3Rpb25fZG9uZSAmJiBNeUJhY2tlbmRUeXBlICE9IEJfTE9HR0VSKQogCQkJ d3JpdGVfcGlwZV9jaHVua3MoYnVmLmRhdGEsIGJ1Zi5sZW4sIExPR19ERVNUSU5BVElPTl9T VERFUlIpOwogI2lmZGVmIFdJTjMyCiAKQEAgLTMxNjUsMTMgKzMxNjUsMTMgQEAgc2VuZF9t ZXNzYWdlX3RvX3NlcnZlcl9sb2coRXJyb3JEYXRhICplZGF0YSkKIAl9CiAKIAkvKiBJZiBp biB0aGUgc3lzbG9nZ2VyIHByb2Nlc3MsIHRyeSB0byB3cml0ZSBtZXNzYWdlcyBkaXJlY3Qg dG8gZmlsZSAqLwotCWlmIChhbV9zeXNsb2dnZXIpCisJaWYgKE15QmFja2VuZFR5cGUgPT0g Ql9MT0dHRVIpCiAJCXdyaXRlX3N5c2xvZ2dlcl9maWxlKGJ1Zi5kYXRhLCBidWYubGVuLCBM T0dfREVTVElOQVRJT05fU1RERVJSKTsKIAogCS8qIFdyaXRlIHRvIENTViBsb2cgaWYgZW5h YmxlZCAqLwogCWlmIChMb2dfZGVzdGluYXRpb24gJiBMT0dfREVTVElOQVRJT05fQ1NWTE9H KQogCXsKLQkJaWYgKHJlZGlyZWN0aW9uX2RvbmUgfHwgYW1fc3lzbG9nZ2VyKQorCQlpZiAo cmVkaXJlY3Rpb25fZG9uZSB8fCBNeUJhY2tlbmRUeXBlID09IEJfTE9HR0VSKQogCQl7CiAJ CQkvKgogCQkJICogc2VuZCBDU1YgZGF0YSBpZiBpdCdzIHNhZmUgdG8gZG8gc28gKHN5c2xv Z2dlciBkb2Vzbid0IG5lZWQgdGhlCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3N0bWFz dGVyL3N5c2xvZ2dlci5oIGIvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9zeXNsb2dnZXIuaApp bmRleCA5YjdhMzg2ZGJkLi5mNjExYmQxNDExIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9w b3N0bWFzdGVyL3N5c2xvZ2dlci5oCisrKyBiL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvc3lz bG9nZ2VyLmgKQEAgLTcwLDggKzcwLDYgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIGNoYXIgKkxv Z19maWxlbmFtZTsKIGV4dGVybiBib29sIExvZ190cnVuY2F0ZV9vbl9yb3RhdGlvbjsKIGV4 dGVybiBpbnQJTG9nX2ZpbGVfbW9kZTsKIAotZXh0ZXJuIGJvb2wgYW1fc3lzbG9nZ2VyOwot CiAjaWZuZGVmIFdJTjMyCiBleHRlcm4gaW50CXN5c2xvZ1BpcGVbMl07CiAjZWxzZQotLSAK Mi4yNS4wCgo= --------------2A6EF31CB4155A58556EB615--