Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e6ZGF-0005xr-01 for pgsql-hackers@arkaria.postgresql.org; Mon, 23 Oct 2017 09:43:07 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1e6ZGE-0001Xj-HV for pgsql-hackers@arkaria.postgresql.org; Mon, 23 Oct 2017 09:43:06 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1e6ZGC-0001Uu-4t; Mon, 23 Oct 2017 09:43:04 +0000 Received: from mail.postgrespro.ru ([93.174.131.138]) by makus.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e6ZG7-0006CC-QD; Mon, 23 Oct 2017 09:43:02 +0000 Received: from localhost (localhost [127.0.0.1]) by mail.postgrespro.ru (Postfix) with ESMTP id 2319621C1B04; Mon, 23 Oct 2017 12:42:57 +0300 (MSK) X-Virus-Scanned: Debian amavisd-new at postgrespro.ru Received: from mail.postgrespro.ru (unknown [192.168.27.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix) with ESMTPSA id DE74221C0909; Mon, 23 Oct 2017 12:42:56 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1508751776; bh=NlGM3jd+hgI5UZnKlLo8x7l8d+PWJLS0epadRQWbID0=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=m4zJxhHrFPSOqqMZlTE+RZF/PIoIZMeGhwOcFpiapofvSNtj9F3lnTpX66f5jlANA cZ6khtWS7DGxLpe9YE9bRhb9lwVfWCDoujWJ8NfP56kXxAqrRSFXyB2SF0fBHEcwy3 0GUWdUEiCfbG43Q3Ak2zzyEG2izaCuu0/p9xVhzQ= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_7ade611603a94d00910b2fdd884ffbb6" Date: Mon, 23 Oct 2017 12:42:56 +0300 From: Ivan Kartyshov To: pgsql-hackers@postgresql.org Cc: pgsql-hackers-owner@postgresql.org Subject: Re: make async slave to wait for lsn to be replayed In-Reply-To: References: <0240c26c-9f84-30ea-fca9-93ab2df5f305@postgrespro.ru> Message-ID: <5038f85c9b0e791541dfb0650b0e7e6c@postgrespro.ru> X-Sender: i.kartyshov@postgrespro.ru User-Agent: Roundcube Webmail/1.2.4 List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org --=_7ade611603a94d00910b2fdd884ffbb6 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed New little cleanup code changes -- Ivan Kartyshov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company --=_7ade611603a94d00910b2fdd884ffbb6 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=waitlsn_11dev_v7edit.patch Content-Disposition: attachment; filename=waitlsn_11dev_v7edit.patch; size=23482 Y29tbWl0IDIxN2Y4NDI3MjY1MzFlZGIxYjAwNTZhNWM1NzI3YWIwMWJhYjdm OWIKQXV0aG9yOiBpLmthcnR5c2hvdiA8aS5rYXJ0eXNob3ZAcG9zdGdyZXNw cm8uY29tPgpEYXRlOiAgIE1vbiBPY3QgMjMgMTI6MDg6NTkgMjAxNyArMDMw MAoKICAgIENoZXJyeSBwaWNrZWQgYW5kIHBvcnRlZCAxMWRldgoKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAppbmRleCAwMWFjYzJlLi42Nzky ZWIwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC0x ODEsNiArMTgxLDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBz b3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSB1cGRh dGUgICAgICAgICAgICAgU1lTVEVNICJ1cGRhdGUuc2dtbCI+CiA8IUVOVElU WSB2YWN1dW0gICAgICAgICAgICAgU1lTVEVNICJ2YWN1dW0uc2dtbCI+CiA8 IUVOVElUWSB2YWx1ZXMgICAgICAgICAgICAgU1lTVEVNICJ2YWx1ZXMuc2dt bCI+Cis8IUVOVElUWSB3YWl0bHNuICAgICAgICAgICAgU1lTVEVNICJ3YWl0 bHNuLnNnbWwiPgogCiA8IS0tIGFwcGxpY2F0aW9ucyBhbmQgdXRpbGl0aWVz IC0tPgogPCFFTlRJVFkgY2x1c3RlcmRiICAgICAgICAgIFNZU1RFTSAiY2x1 c3RlcmRiLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi93 YWl0bHNuLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3dhaXRsc24uc2dtbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjM4OWNhCi0t LSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi93YWl0bHNuLnNn bWwKQEAgLTAsMCArMSwxNDQgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYv d2FpdGxzbi5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgor Cis8cmVmZW50cnkgaWQ9IlNRTC1XQUlUTFNOIj4KKyA8aW5kZXh0ZXJtIHpv bmU9InNxbC13YWl0bHNuIj4KKyAgPHByaW1hcnk+V0FJVExTTjwvcHJpbWFy eT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0 aXRsZT5XQUlUTFNOPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8 L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0 YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZu YW1lZGl2PgorICA8cmVmbmFtZT5XQUlUTFNOPC9yZWZuYW1lPgorICA8cmVm cHVycG9zZT53YWl0IGZvciB0aGUgdGFyZ2V0IDxhY3JvbnltPkxTTjwvPiB0 byBiZSByZXBsYXllZDwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisK KyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitXQUlUTFNOICc8cmVw bGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+TFNOPC9yZXBsYWNlYWJsZT4n IFsgSU5GSU5JVEVMWSBdCitXQUlUTFNOICc8cmVwbGFjZWFibGUgY2xhc3M9 IlBBUkFNRVRFUiI+TFNOPC9yZXBsYWNlYWJsZT4nIFRJTUVPVVQgPHJlcGxh Y2VhYmxlIGNsYXNzPSJQQVJBTUVURVIiPndhaXRfdGltZTwvcmVwbGFjZWFi bGU+CitXQUlUTFNOICc8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+ TFNOPC9yZXBsYWNlYWJsZT4nIE5PV0FJVAorPC9zeW5vcHNpcz4KKyA8L3Jl ZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3Jp cHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgaW50ZXJwcm9jZXNzIGNv bW11bmljYXRpb24gbWVjaGFuaXNtIHRvIHdhaXQgZm9yIHRoZSB0YXJnZXQg bG9nIHNlcXVlbmNlCisgICBudW1iZXIgKDxhY3JvbnltPkxTTjwvPikgb24g c3RhbmRieSBpbiA8cHJvZHVjdG5hbWU+JnByb2R1Y3RuYW1lOzwvcHJvZHVj dG5hbWU+CisgICBkYXRhYmFzZXMgd2l0aCBtYXN0ZXItc3RhbmRieSBhc3lu Y2hyb25vdXMgcmVwbGljYXRpb24uIFdoZW4gcnVuIHdpdGggdGhlCisgICA8 cmVwbGFjZWFibGU+TFNOPC9yZXBsYWNlYWJsZT4gb3B0aW9uLCB0aGUgPGNv bW1hbmQ+V0FJVExTTjwvY29tbWFuZD4gY29tbWFuZAorICAgd2FpdHMgZm9y IHRoZSBzcGVjaWZpZWQgPGFjcm9ueW0+TFNOPC8+IHRvIGJlIHJlcGxheWVk LiBCeSBkZWZhdWx0LCB3YWl0CisgICB0aW1lIGlzIHVubGltaXRlZC4gV2Fp dGluZyBjYW4gYmUgaW50ZXJydXB0ZWQgdXNpbmcgPGxpdGVyYWw+Q3RybCtD PC8+LCBvcgorICAgYnkgc2h1dHRpbmcgZG93biB0aGUgPGxpdGVyYWw+cG9z dGdyZXM8Lz4gc2VydmVyLiBZb3UgY2FuIGFsc28gbGltaXQgdGhlIHdhaXQK KyAgIHRpbWUgdXNpbmcgdGhlIDxvcHRpb24+VElNRU9VVDwvPiBvcHRpb24s IG9yIGNoZWNrIHRoZSB0YXJnZXQgPGFjcm9ueW0+TFNOPC8+CisgICBzdGF0 dXMgaW1tZWRpYXRlbHkgdXNpbmcgdGhlIDxvcHRpb24+Tk9XQUlUPC8+IG9w dGlvbi4KKyAgPC9wYXJhPgorCisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0 MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJs ZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNl YWJsZSBjbGFzcz0iUEFSQU1FVEVSIj5MU048L3JlcGxhY2VhYmxlPjwvdGVy bT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorCSAgU3BlY2lmeSB0 aGUgdGFyZ2V0IGxvZyBzZXF1ZW5jZSBudW1iZXIgdG8gd2FpdCBmb3IuCisg ICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50 cnk+CisgICA8dmFybGlzdGVudHJ5PgorCTx0ZXJtPklORklOSVRFTFk8L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKwkgIFdhaXQgdW50 aWwgdGhlIHRhcmdldCA8YWNyb255bT5MU048Lz4gaXMgcmVwbGF5ZWQgb24g c3RhbmRieS4KKwkgIFRoaXMgaXMgYW4gb3B0aW9uYWwgcGFyYW1ldGVyIHJl aW5mb3JjaW5nIHRoZSBkZWZhdWx0IGJlaGF2aW9yLgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3Zh cmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgICA8dmFybGlzdGVudHJ5 PgorCTx0ZXJtPlRJTUVPVVQgPHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVU RVIiPndhaXRfdGltZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorCTxsaXN0aXRl bT4KKwkgPHBhcmE+CisJICBMaW1pdCB0aGUgdGltZSB0byB3YWl0IGZvciB0 aGUgTFNOIHRvIGJlIHJlcGxheWVkLgorCSAgVGhlIHNwZWNpZmllZCA8cmVw bGFjZWFibGU+d2FpdF90aW1lPC9yZXBsYWNlYWJsZT4gbXVzdCBiZSBhbiBp bnRlZ2VyCisJICBhbmQgaXMgbWVhc3VyZWQgaW4gbWlsbGlzZWNvbmRzLgor CSA8L3BhcmE+CisJPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5Pgor CisgICA8dmFybGlzdGVudHJ5PgorCTx0ZXJtPk5PV0FJVDwvdGVybT4KKwk8 bGlzdGl0ZW0+CisJIDxwYXJhPgorCSAgUmVwb3J0IHdoZXRoZXIgdGhlIHRh cmdldCA8YWNyb255bT5MU048Lz4gaGFzIGJlZW4gcmVwbGF5ZWQgYWxyZWFk eSwKKwkgIHdpdGhvdXQgYW55IHdhaXRpbmcuCisJIDwvcGFyYT4KKwk8L2xp c3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0 PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgor CisgIDxwYXJhPgorICAgUnVuIDxsaXRlcmFsPldBSVRMU048Lz4gZnJvbSA8 YXBwbGljYXRpb24+cHNxbDwvYXBwbGljYXRpb24+LAorICAgbGltaXRpbmcg d2FpdCB0aW1lIHRvIDEwMDAwIG1pbGxpc2Vjb25kczoKKworPHNjcmVlbj4K K1dBSVRMU04gJzAvM0YwN0E2QjEnIFRJTUVPVVQgMTAwMDA7CitOT1RJQ0U6 ICBMU04gaXMgbm90IHJlYWNoZWQuIFRyeSB0byBpbmNyZWFzZSB3YWl0IHRp bWUuCitMU04gcmVhY2hlZAorLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykK Kzwvc2NyZWVuPgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBXYWl0IHVu dGlsIHRoZSBzcGVjaWZpZWQgPGFjcm9ueW0+TFNOPC8+IGlzIHJlcGxheWVk OgorPHNjcmVlbj4KK1dBSVRMU04gJzAvM0YwN0E2MTEnOworTFNOIHJlYWNo ZWQKKy0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCis8L3NjcmVlbj4KKyAg PC9wYXJhPgorCisgIDxwYXJhPgorICAgTGltaXQgPGFjcm9ueW0+TFNOPC8+ IHdhaXQgdGltZSB0byA1MDAwMDAgbWlsbGlzZWNvbmRzLCBhbmQgdGhlbiBj YW5jZWwgdGhlIGNvbW1hbmQ6Cis8c2NyZWVuPgorV0FJVExTTiAnMC8zRjBG Rjc5MScgVElNRU9VVCA1MDAwMDA7CiteQ0NhbmNlbCByZXF1ZXN0IHNlbnQK K05PVElDRTogIExTTiBpcyBub3QgcmVhY2hlZC4gVHJ5IHRvIGluY3JlYXNl IHdhaXQgdGltZS4KK0VSUk9SOiAgY2FuY2VsaW5nIHN0YXRlbWVudCBkdWUg dG8gdXNlciByZXF1ZXN0CisgTFNOIHJlYWNoZWQKKy0tLS0tLS0tLS0tLS0K KyBmCisoMSByb3cpCis8L3NjcmVlbj4KKzwvcGFyYT4KKyA8L3JlZnNlY3Qx PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0 bGU+CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29tbWFuZD5XQUlU TFNOPC9jb21tYW5kPiBzdGF0ZW1lbnQgaW4gdGhlIFNRTAorICAgc3RhbmRh cmQuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorPC9yZWZlbnRyeT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCA5MDAwYjNhLi4wYzU5NTFh IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC0yMDksNiArMjA5 LDcgQEAKICAgICZ1cGRhdGU7CiAgICAmdmFjdXVtOwogICAgJnZhbHVlczsK KyAgICZ3YWl0bHNuOwogCiAgPC9yZWZlcmVuY2U+CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwppbmRleCBkZDAyOGExLi4xMTdj YzliIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5j CkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb250 cm9sLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKKyNpbmNsdWRlICJjb21t YW5kcy93YWl0bHNuLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5j bHVkZSAicGdzdGF0LmgiCiAjaW5jbHVkZSAicG9ydC9hdG9taWNzLmgiCkBA IC0xNDksNyArMTUwLDYgQEAgY29uc3Qgc3RydWN0IGNvbmZpZ19lbnVtX2Vu dHJ5IHN5bmNfbWV0aG9kX29wdGlvbnNbXSA9IHsKIAl7TlVMTCwgMCwgZmFs c2V9CiB9OwogCi0KIC8qCiAgKiBBbHRob3VnaCBvbmx5ICJvbiIsICJvZmYi LCBhbmQgImFsd2F5cyIgYXJlIGRvY3VtZW50ZWQsCiAgKiB3ZSBhY2NlcHQg YWxsIHRoZSBsaWtlbHkgdmFyaWFudHMgb2YgIm9uIiBhbmQgIm9mZiIuCkBA IC03MzEyLDYgKzczMTIsMTUgQEAgU3RhcnR1cFhMT0codm9pZCkKIAkJCQkJ YnJlYWs7CiAJCQkJfQogCisJCQkJLyoKKwkJCQkgKiBBZnRlciB1cGRhdGUg bGFzdFJlcGxheWVkRW5kUmVjUHRyIHNldCBMYXRjaGVzIGluIFNITUVNIGFy cmF5CisJCQkJICovCisJCQkJaWYgKFhMb2dDdGwtPmxhc3RSZXBsYXllZEVu ZFJlY1B0ciA+PSBHZXRNaW5XYWl0TFNOKCkpCisJCQkJeworCisJCQkJCVdh aXRMU05TZXRMYXRjaChYTG9nQ3RsLT5sYXN0UmVwbGF5ZWRFbmRSZWNQdHIp OworCQkJCX0KKwogCQkJCS8qIEVsc2UsIHRyeSB0byBmZXRjaCB0aGUgbmV4 dCBXQUwgcmVjb3JkICovCiAJCQkJcmVjb3JkID0gUmVhZFJlY29yZCh4bG9n cmVhZGVyLCBJbnZhbGlkWExvZ1JlY1B0ciwgTE9HLCBmYWxzZSk7CiAJCQl9 IHdoaWxlIChyZWNvcmQgIT0gTlVMTCk7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L01ha2VmaWxlCmluZGV4IDRhNmM5OWUuLjBkMTAxMTcgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBAIC0yMCw2ICsyMCw2IEBAIE9CSlMg PSBhbWNtZHMubyBhZ2dyZWdhdGVjbWRzLm8gYWx0ZXIubyBhbmFseXplLm8g YXN5bmMubyBjbHVzdGVyLm8gY29tbWVudC5vIFwKIAlwb2xpY3kubyBwb3J0 YWxjbWRzLm8gcHJlcGFyZS5vIHByb2NsYW5nLm8gcHVibGljYXRpb25jbWRz Lm8gXAogCXNjaGVtYWNtZHMubyBzZWNsYWJlbC5vIHNlcXVlbmNlLm8gc3Rh dHNjbWRzLm8gc3Vic2NyaXB0aW9uY21kcy5vIFwKIAl0YWJsZWNtZHMubyB0 YWJsZXNwYWNlLm8gdHJpZ2dlci5vIHRzZWFyY2hjbWRzLm8gdHlwZWNtZHMu byB1c2VyLm8gXAotCXZhY3V1bS5vIHZhY3V1bWxhenkubyB2YXJpYWJsZS5v IHZpZXcubworCXZhY3V1bS5vIHZhY3V1bWxhenkubyB2YXJpYWJsZS5vIHZp ZXcubyB3YWl0bHNuLm8KIAogaW5jbHVkZSAkKHRvcF9zcmNkaXIpL3NyYy9i YWNrZW5kL2NvbW1vbi5tawpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvYXN5bmMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMK aW5kZXggZjdkZTc0Mi4uY2RlZGRmYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvYXN5bmMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9hc3luYy5jCkBAIC0xNDEsNyArMTQxLDYgQEAKICNpbmNsdWRlICJ1dGls cy90aW1lc3RhbXAuaCIKICNpbmNsdWRlICJ1dGlscy90cXVhbC5oIgogCi0K IC8qCiAgKiBNYXhpbXVtIHNpemUgb2YgYSBOT1RJRlkgcGF5bG9hZCwgaW5j bHVkaW5nIHRlcm1pbmF0aW5nIE5VTEwuICBUaGlzCiAgKiBtdXN0IGJlIGtl cHQgc21hbGwgZW5vdWdoIHNvIHRoYXQgYSBub3RpZmljYXRpb24gbWVzc2Fn ZSBmaXRzIG9uIG9uZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvd2FpdGxzbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvd2FpdGxzbi5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiMmY1NDkK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy93YWl0 bHNuLmMKQEAgLTAsMCArMSwyNzMgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICoKKyAqIHdhaXRsc24uYworICoJICBXYWl0TFNOIHN0 YXRtZW50OiBXQUlUTFNOCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk2LTIwMTcsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTcsIFJlZ2VudHMg b2YgUG9zdGdyZXNQcm8KKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBz cmMvYmFja2VuZC9jb21tYW5kcy93YWl0bHNuLmMKKyAqCisgKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisvKgorICogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICogV2FpdCBmb3IgTFNOIGJlZW4gcmVw bGF5ZWQgb24gc2xhdmUKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorI2luY2x1ZGUgImZt Z3IuaCIKKyNpbmNsdWRlICJwZ3N0YXQuaCIKKyNpbmNsdWRlICJ1dGlscy9w Z19sc24uaCIKKyNpbmNsdWRlICJzdG9yYWdlL2xhdGNoLmgiCisjaW5jbHVk ZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAic3RvcmFnZS9zcGluLmgiCisj aW5jbHVkZSAic3RvcmFnZS9iYWNrZW5kaWQuaCIKKyNpbmNsdWRlICJhY2Nl c3MveGFjdC5oIgorI2luY2x1ZGUgInN0b3JhZ2Uvc2htZW0uaCIKKyNpbmNs dWRlICJzdG9yYWdlL2lwYy5oIgorI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFt cC5oIgorI2luY2x1ZGUgInN0b3JhZ2UvcG1zaWduYWwuaCIKKyNpbmNsdWRl ICJhY2Nlc3MveGxvZy5oIgorI2luY2x1ZGUgImFjY2Vzcy94bG9nZGVmcy5o IgorI2luY2x1ZGUgImNvbW1hbmRzL3dhaXRsc24uaCIKKyNpbmNsdWRlICJz dG9yYWdlL3Byb2MuaCIKKyNpbmNsdWRlICJhY2Nlc3MvdHJhbnNhbS5oIgor I2luY2x1ZGUgImZ1bmNhcGkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3R5 cGUuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorCisvKiBMYXRj aGVzIE93bi1EaXNvd25MYXRjaCBhbmQgQWJvcnRDYWxsQmFjayAqLworc3Rh dGljIHVpbnQzMiBXYWl0TFNOU2htZW1TaXplKHZvaWQpOworc3RhdGljIHZv aWQgV0xEaXNvd25MYXRjaEFib3J0KFhhY3RFdmVudCBldmVudCwgdm9pZCAq YXJnKTsKK3N0YXRpYyB2b2lkIFdMT3duTGF0Y2goWExvZ1JlY1B0ciB0cmdf bHNuKTsKK3N0YXRpYyB2b2lkIFdMRGlzb3duTGF0Y2godm9pZCk7CisKK3Zv aWQJCV9QR19pbml0KHZvaWQpOworCisvKiBTaGFyZWQgbWVtb3J5IHN0cnVj dHVyZXMgKi8KK3R5cGVkZWYgc3RydWN0Cit7CisJaW50CQkJCQlwaWQ7CisJ dm9sYXRpbGUgc2xvY2tfdAlzbG9jazsKKwlMYXRjaAkJCQlsYXRjaDsKKwlY TG9nUmVjUHRyCQkJdHJnX2xzbjsKK30gQklETGF0Y2g7CisKKwordHlwZWRl ZiBzdHJ1Y3QKK3sKKwlpbnQJCQkJYmFja2VuZF9tYXhpZDsKKwlYTG9nUmVj UHRyCQltaW5fbHNuOworCUJJRExhdGNoCQlsX2FycltGTEVYSUJMRV9BUlJB WV9NRU1CRVJdOworfSBHbG9iU3RhdGU7CisKK3N0YXRpYyB2b2xhdGlsZSBH bG9iU3RhdGUgICpzdGF0ZTsKK2Jvb2wJCQkJCQlpc19sYXRjaF9vd25lZCA9 IGZhbHNlOworCisvKiBUYWtlIExhdGNoIGZvciBjdXJyZW50IGJhY2tlbmQg YXQgdGhlIGJlZ2luaW5nIG9mIFdBSVRMU04gKi8KK3N0YXRpYyB2b2lkCitX TE93bkxhdGNoKFhMb2dSZWNQdHIgdHJnX2xzbikKK3sKKwlTcGluTG9ja0Fj cXVpcmUoJnN0YXRlLT5sX2FycltNeUJhY2tlbmRJZF0uc2xvY2spOworCU93 bkxhdGNoKCZzdGF0ZS0+bF9hcnJbTXlCYWNrZW5kSWRdLmxhdGNoKTsKKwlp c19sYXRjaF9vd25lZCA9IHRydWU7CisKKwlpZiAoc3RhdGUtPmJhY2tlbmRf bWF4aWQgPCBNeUJhY2tlbmRJZCkKKwkJc3RhdGUtPmJhY2tlbmRfbWF4aWQg PSBNeUJhY2tlbmRJZDsKKworCXN0YXRlLT5sX2FycltNeUJhY2tlbmRJZF0u cGlkID0gTXlQcm9jUGlkOworCXN0YXRlLT5sX2FycltNeUJhY2tlbmRJZF0u dHJnX2xzbiA9IHRyZ19sc247CisJU3BpbkxvY2tSZWxlYXNlKCZzdGF0ZS0+ bF9hcnJbTXlCYWNrZW5kSWRdLnNsb2NrKTsKKworCWlmICh0cmdfbHNuIDwg c3RhdGUtPm1pbl9sc24pCisJCXN0YXRlLT5taW5fbHNuID0gdHJnX2xzbjsK K30KKworLyogUmVsZWFzZSBMYXRjaCBmb3IgY3VycmVudCBiYWNrZW5kIGF0 IHRoZSBlbmQgb2YgV0FJVExTTiAqLworc3RhdGljIHZvaWQKK1dMRGlzb3du TGF0Y2godm9pZCkKK3sKKwlpbnQgaTsKKwlYTG9nUmVjUHRyIHRyZ19sc24g PSBzdGF0ZS0+bF9hcnJbTXlCYWNrZW5kSWRdLnRyZ19sc247CisKKwlTcGlu TG9ja0FjcXVpcmUoJnN0YXRlLT5sX2FycltNeUJhY2tlbmRJZF0uc2xvY2sp OworCURpc293bkxhdGNoKCZzdGF0ZS0+bF9hcnJbTXlCYWNrZW5kSWRdLmxh dGNoKTsKKwlpc19sYXRjaF9vd25lZCA9IGZhbHNlOworCXN0YXRlLT5sX2Fy cltNeUJhY2tlbmRJZF0ucGlkID0gMDsKKwlzdGF0ZS0+bF9hcnJbTXlCYWNr ZW5kSWRdLnRyZ19sc24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKKworCS8qIFVw ZGF0ZSBzdGF0ZS0+bWluX2xzbiBpZmYgaXQgaXMgbmVzc2VzYXJ5IGNob29z aW5nIG5leHQgbWluX2xzbiAqLworCWlmIChzdGF0ZS0+bWluX2xzbiA9PSB0 cmdfbHNuKQorCXsKKwkJc3RhdGUtPm1pbl9sc24gPSBQR19VSU5UNjRfTUFY OworCQlmb3IgKGkgPSAyOyBpIDw9IHN0YXRlLT5iYWNrZW5kX21heGlkOyBp KyspCisJCQlpZiAoc3RhdGUtPmxfYXJyW2ldLnRyZ19sc24gIT0gSW52YWxp ZFhMb2dSZWNQdHIgJiYKKwkJCQlzdGF0ZS0+bF9hcnJbaV0udHJnX2xzbiA8 IHN0YXRlLT5taW5fbHNuKQorCQkJCXN0YXRlLT5taW5fbHNuID0gc3RhdGUt PmxfYXJyW2ldLnRyZ19sc247CisJfQorCisJaWYgKHN0YXRlLT5iYWNrZW5k X21heGlkID09IE15QmFja2VuZElkKQorCQlmb3IgKGkgPSAoTWF4Q29ubmVj dGlvbnMrMSk7IGkgPj0yOyBpLS0pCisJCQlpZiAoc3RhdGUtPmxfYXJyW2ld LnBpZCAhPSAwKQorCQkJeworCQkJCXN0YXRlLT5iYWNrZW5kX21heGlkID0g aTsKKwkJCQlicmVhazsKKwkJCX0KKworCVNwaW5Mb2NrUmVsZWFzZSgmc3Rh dGUtPmxfYXJyW015QmFja2VuZElkXS5zbG9jayk7Cit9CisKKy8qIENhbGxC YWNrIGZ1bmN0aW9uIG9uIGFib3J0Ki8KK3N0YXRpYyB2b2lkCitXTERpc293 bkxhdGNoQWJvcnQoWGFjdEV2ZW50IGV2ZW50LCB2b2lkICphcmcpCit7CisJ aWYgKGlzX2xhdGNoX293bmVkICYmIChldmVudCA9PSBYQUNUX0VWRU5UX1BB UkFMTEVMX0FCT1JUIHx8CisJCQkJCQkgICBldmVudCA9PSBYQUNUX0VWRU5U X0FCT1JUKSkKKwl7CisJCVdMRGlzb3duTGF0Y2goKTsKKwl9Cit9CisKKy8q IE1vZHVsZSBsb2FkIGNhbGxiYWNrICovCit2b2lkCitfUEdfaW5pdCh2b2lk KQoreworCWlmICghSXNVbmRlclBvc3RtYXN0ZXIpCisJCVJlZ2lzdGVyWGFj dENhbGxiYWNrKFdMRGlzb3duTGF0Y2hBYm9ydCwgTlVMTCk7Cit9CisKKy8q IEdldCBzaXplIG9mIHNoYXJlZCBtZW1vcnkgdG8gcm9vbSBHbG9iU3RhdGUg Ki8KK3N0YXRpYyB1aW50MzIKK1dhaXRMU05TaG1lbVNpemUodm9pZCkKK3sK KwlyZXR1cm4gb2Zmc2V0b2YoR2xvYlN0YXRlLCBsX2FycikgKyBzaXplb2Yo QklETGF0Y2gpICogKE1heENvbm5lY3Rpb25zKzEpOworfQorCisvKiBJbml0 IGFycmF5IG9mIExhdGNoZXMgaW4gc2hhcmVkIG1lbW9yeSAqLwordm9pZAor V2FpdExTTlNobWVtSW5pdCh2b2lkKQoreworCWJvb2wJZm91bmQ7CisJdWlu dDMyCWk7CisKKwlzdGF0ZSA9IChHbG9iU3RhdGUgKikgU2htZW1Jbml0U3Ry dWN0KCJwZ193YWl0X2xzbiIsCisJCQkJCQkJCQkJICBXYWl0TFNOU2htZW1T aXplKCksCisJCQkJCQkJCQkJICAmZm91bmQpOworCWlmICghZm91bmQpCisJ eworCQlmb3IgKGkgPSAwOyBpIDwgKE1heENvbm5lY3Rpb25zKzEpOyBpKysp CisJCXsKKwkJCXN0YXRlLT5sX2FycltpXS5waWQgPSAwOworCQkJc3RhdGUt PmxfYXJyW2ldLnRyZ19sc24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKKwkJCVNw aW5Mb2NrSW5pdCgmc3RhdGUtPmxfYXJyW2ldLnNsb2NrKTsKKwkJCUluaXRT aGFyZWRMYXRjaCgmc3RhdGUtPmxfYXJyW2ldLmxhdGNoKTsKKwkJfQorCQlz dGF0ZS0+YmFja2VuZF9tYXhpZCA9IDA7CisJCXN0YXRlLT5taW5fbHNuID0g UEdfVUlOVDY0X01BWDsKKwl9Cit9CisKKy8qIFNldCBhbGwgTGF0Y2hlcyBp biBzaGFyZWQgbWVtb3J5IGNhdXNlIG5ldyBMU04gYmVlbiByZXBsYXllZCov Cit2b2lkCitXYWl0TFNOU2V0TGF0Y2goWExvZ1JlY1B0ciBjdXJfbHNuKQor eworCXVpbnQzMiBpOworCisJZm9yIChpID0gMjsgaSA8PSBzdGF0ZS0+YmFj a2VuZF9tYXhpZDsgaSsrKQorCXsKKwkJaWYgKHN0YXRlLT5sX2FycltpXS50 cmdfbHNuICE9IDApCisJCXsKKwkJU3BpbkxvY2tBY3F1aXJlKCZzdGF0ZS0+ bF9hcnJbaV0uc2xvY2spOworCQlpZiAoc3RhdGUtPmxfYXJyW2ldLnRyZ19s c24gPD0gY3VyX2xzbikKKwkJCVNldExhdGNoKCZzdGF0ZS0+bF9hcnJbaV0u bGF0Y2gpOworCQlTcGluTG9ja1JlbGVhc2UoJnN0YXRlLT5sX2FycltpXS5z bG9jayk7CisJCX0KKwl9Cit9CisKKy8qIEdldCBtaW5pbWFsIExTTiB0aGF0 IHdpbGwgYmUgbmV4dCAqLworWExvZ1JlY1B0cgorR2V0TWluV2FpdExTTih2 b2lkKQoreworCXJldHVybiBzdGF0ZS0+bWluX2xzbjsKK30KKworLyoKKyAq IE9uIFdBSVRMU04gb3duIGxhdGNoIGFuZCB3YWl0IHRpbGwgTFNOIGlzIHJl cGxheWVkLCBQb3N0bWFzdGVyIGRlYXRoLCBpbnRlcnJ1cHRpb24KKyAqIG9y IHRpbWVvdXQuCisgKi8KK3ZvaWQKK1dhaXRMU05VdGlsaXR5KGNvbnN0IGNo YXIgKmxzbiwgY29uc3QgaW50IGRlbGF5LCBEZXN0UmVjZWl2ZXIgKmRlc3Qp Cit7CisJWExvZ1JlY1B0cgkJdHJnX2xzbiA9IERhdHVtR2V0TFNOKERpcmVj dEZ1bmN0aW9uQ2FsbDEocGdfbHNuX2luLCBDU3RyaW5nR2V0RGF0dW0obHNu KSkpOworCVhMb2dSZWNQdHIJCWN1cl9sc247CisJaW50CQkJCWxhdGNoX2V2 ZW50czsKKwl1aW50NjQJCQl0ZGVsYXkgPSBkZWxheTsKKwlsb25nCQkJc2Vj czsKKwlpbnQJCQkJbWljcm9zZWNzOworCVRpbWVzdGFtcFR6CQl0aW1lciA9 IEdldEN1cnJlbnRUaW1lc3RhbXAoKTsKKwlUdXBPdXRwdXRTdGF0ZQkqdHN0 YXRlOworCVR1cGxlRGVzYwkJdHVwZGVzYzsKKwljaGFyCQkgICAqdmFsdWUg PSAiZiI7CisKKwlpZiAoZGVsYXkgPiAwKQorCQlsYXRjaF9ldmVudHMgPSBX TF9MQVRDSF9TRVQgfCBXTF9USU1FT1VUIHwgV0xfUE9TVE1BU1RFUl9ERUFU SDsKKwllbHNlCisJCWxhdGNoX2V2ZW50cyA9IFdMX0xBVENIX1NFVCB8IFdM X1BPU1RNQVNURVJfREVBVEg7CisKKwlXTE93bkxhdGNoKHRyZ19sc24pOwor CisJZm9yICg7OykKKwl7CisJCWN1cl9sc24gPSBHZXRYTG9nUmVwbGF5UmVj UHRyKE5VTEwpOworCisJCS8qIElmIExTTiBoYWQgYmVlbiBSZXBsYXllZCAq LworCQlpZiAodHJnX2xzbiA8PSBjdXJfbHNuKQorCQkJYnJlYWs7CisKKwkJ LyogSWYgdGhlIHBvc3RtYXN0ZXIgZGllcywgZmluaXNoIGltbWVkaWF0ZWx5 ICovCisJCWlmICghUG9zdG1hc3RlcklzQWxpdmUoKSkKKwkJCWJyZWFrOwor CisJCS8qIElmIERlbGF5IHRpbWUgaXMgb3ZlciAqLworCQlpZiAobGF0Y2hf ZXZlbnRzICYgV0xfVElNRU9VVCkKKwkJeworCQkJaWYgKFRpbWVzdGFtcERp ZmZlcmVuY2VFeGNlZWRzKHRpbWVyLEdldEN1cnJlbnRUaW1lc3RhbXAoKSxk ZWxheSkpCisJCQkJYnJlYWs7CisJCQlUaW1lc3RhbXBEaWZmZXJlbmNlKHRp bWVyLEdldEN1cnJlbnRUaW1lc3RhbXAoKSwmc2VjcywgJm1pY3Jvc2Vjcyk7 CisJCQl0ZGVsYXkgPSBkZWxheSAtIChzZWNzKjEwMDAgKyBtaWNyb3NlY3Mv MTAwMCk7CisJCX0KKworCQlNeVBnWGFjdC0+eG1pbiA9IEludmFsaWRUcmFu c2FjdGlvbklkOworCQlXYWl0TGF0Y2goJnN0YXRlLT5sX2FycltNeUJhY2tl bmRJZF0ubGF0Y2gsIGxhdGNoX2V2ZW50cywgdGRlbGF5LCBXQUlUX0VWRU5U X0NMSUVOVF9SRUFEKTsKKwkJUmVzZXRMYXRjaCgmc3RhdGUtPmxfYXJyW015 QmFja2VuZElkXS5sYXRjaCk7CisKKwkJLyogQ0hFQ0tfRk9SX0lOVEVSUlVQ VFMgaWYgdGhleSBjb21lcyB0aGVuIGRpc293biBsYXRjaCBjdXJyZW50ICov CisJCWlmIChJbnRlcnJ1cHRQZW5kaW5nKQorCQl7CisJCQlXTERpc293bkxh dGNoKCk7CisJCQlQcm9jZXNzSW50ZXJydXB0cygpOworCQl9CisKKwl9CisK KwlXTERpc293bkxhdGNoKCk7CisKKwlpZiAodHJnX2xzbiA+IGN1cl9sc24p CisJCWVsb2coTk9USUNFLCJMU04gaXMgbm90IHJlYWNoZWQuIFRyeSB0byBp bmNyZWFzZSB3YWl0IHRpbWUuIik7CisJZWxzZQorCQl2YWx1ZSA9ICJ0IjsK KworCS8qIG5lZWQgYSB0dXBsZSBkZXNjcmlwdG9yIHJlcHJlc2VudGluZyBh IHNpbmdsZSBURVhUIGNvbHVtbiAqLworCXR1cGRlc2MgPSBDcmVhdGVUZW1w bGF0ZVR1cGxlRGVzYygxLCBmYWxzZSk7CisJVHVwbGVEZXNjSW5pdEVudHJ5 KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAxLCAiTFNOIHJlYWNoZWQiLCBURVhU T0lELCAtMSwgMCk7CisJLyogcHJlcGFyZSBmb3IgcHJvamVjdGlvbiBvZiB0 dXBsZXMgKi8KKwl0c3RhdGUgPSBiZWdpbl90dXBfb3V0cHV0X3R1cGRlc2Mo ZGVzdCwgdHVwZGVzYyk7CisJLyogU2VuZCBpdCAqLworCWRvX3RleHRfb3V0 cHV0X29uZWxpbmUodHN0YXRlLCB2YWx1ZSk7CisJZW5kX3R1cF9vdXRwdXQo dHN0YXRlKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDRjODNh NjMuLmExNDliNTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjc1 LDcgKzI3NSw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1Nl bGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVy eSk7CiAJCVNlY0xhYmVsU3RtdCBTZWxlY3RTdG10IFRyYW5zYWN0aW9uU3Rt dCBUcnVuY2F0ZVN0bXQKIAkJVW5saXN0ZW5TdG10IFVwZGF0ZVN0bXQgVmFj dXVtU3RtdAogCQlWYXJpYWJsZVJlc2V0U3RtdCBWYXJpYWJsZVNldFN0bXQg VmFyaWFibGVTaG93U3RtdAotCQlWaWV3U3RtdCBDaGVja1BvaW50U3RtdCBD cmVhdGVDb252ZXJzaW9uU3RtdAorCQlWaWV3U3RtdCBXYWl0TFNOU3RtdCBD aGVja1BvaW50U3RtdCBDcmVhdGVDb252ZXJzaW9uU3RtdAogCQlEZWFsbG9j YXRlU3RtdCBQcmVwYXJlU3RtdCBFeGVjdXRlU3RtdAogCQlEcm9wT3duZWRT dG10IFJlYXNzaWduT3duZWRTdG10CiAJCUFsdGVyVFNDb25maWd1cmF0aW9u U3RtdCBBbHRlclRTRGljdGlvbmFyeVN0bXQKQEAgLTMyMiw3ICszMjIsNyBA QCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAq cmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUg PGxpc3Q+CU9wdFNjaGVtYUVsdExpc3QKIAogJXR5cGUgPGJvb2xlYW4+IFRy aWdnZXJGb3JTcGVjIFRyaWdnZXJGb3JUeXBlCi0ldHlwZSA8aXZhbD4JVHJp Z2dlckFjdGlvblRpbWUKKyV0eXBlIDxpdmFsPglUcmlnZ2VyQWN0aW9uVGlt ZSBXYWl0RGVsYXkKICV0eXBlIDxsaXN0PglUcmlnZ2VyRXZlbnRzIFRyaWdn ZXJPbmVFdmVudAogJXR5cGUgPHZhbHVlPglUcmlnZ2VyRnVuY0FyZwogJXR5 cGUgPG5vZGU+CVRyaWdnZXJXaGVuCkBAIC02MzYsNyArNjM2LDcgQEAgc3Rh dGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5h bWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlIQU5ETEVSIEhB VklORyBIRUFERVJfUCBIT0xEIEhPVVJfUAogCiAJSURFTlRJVFlfUCBJRl9Q IElMSUtFIElNTUVESUFURSBJTU1VVEFCTEUgSU1QTElDSVRfUCBJTVBPUlRf UCBJTl9QCi0JSU5DTFVESU5HIElOQ1JFTUVOVCBJTkRFWCBJTkRFWEVTIElO SEVSSVQgSU5IRVJJVFMgSU5JVElBTExZIElOTElORV9QCisJSU5DTFVESU5H IElOQ1JFTUVOVCBJTkRFWCBJTkRFWEVTIElORklOSVRFTFkgSU5IRVJJVCBJ TkhFUklUUyBJTklUSUFMTFkgSU5MSU5FX1AKIAlJTk5FUl9QIElOT1VUIElO UFVUX1AgSU5TRU5TSVRJVkUgSU5TRVJUIElOU1RFQUQgSU5UX1AgSU5URUdF UgogCUlOVEVSU0VDVCBJTlRFUlZBTCBJTlRPIElOVk9LRVIgSVMgSVNOVUxM IElTT0xBVElPTgogCkBAIC02NzUsNyArNjc1LDcgQEAgc3RhdGljIE5vZGUg Km1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3Qg KmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlTVUJTQ1JJUFRJT04gU1VCU1RS SU5HIFNZTU1FVFJJQyBTWVNJRCBTWVNURU1fUAogCiAJVEFCTEUgVEFCTEVT IFRBQkxFU0FNUExFIFRBQkxFU1BBQ0UgVEVNUCBURU1QTEFURSBURU1QT1JB UlkgVEVYVF9QIFRIRU4KLQlUSU1FIFRJTUVTVEFNUCBUTyBUUkFJTElORyBU UkFOU0FDVElPTiBUUkFOU0ZPUk0gVFJFQVQgVFJJR0dFUiBUUklNIFRSVUVf UAorCVRJTUUgVElNRU9VVCBUSU1FU1RBTVAgVE8gVFJBSUxJTkcgVFJBTlNB Q1RJT04gVFJBTlNGT1JNIFRSRUFUIFRSSUdHRVIgVFJJTSBUUlVFX1AKIAlU UlVOQ0FURSBUUlVTVEVEIFRZUEVfUCBUWVBFU19QCiAKIAlVTkJPVU5ERUQg VU5DT01NSVRURUQgVU5FTkNSWVBURUQgVU5JT04gVU5JUVVFIFVOS05PV04g VU5MSVNURU4gVU5MT0dHRUQKQEAgLTY4NCw3ICs2ODQsOCBAQCBzdGF0aWMg Tm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwg TGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCVZBQ1VVTSBWQUxJRCBW QUxJREFURSBWQUxJREFUT1IgVkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJ QURJQyBWQVJZSU5HCiAJVkVSQk9TRSBWRVJTSU9OX1AgVklFVyBWSUVXUyBW T0xBVElMRQogCi0JV0hFTiBXSEVSRSBXSElURVNQQUNFX1AgV0lORE9XIFdJ VEggV0lUSElOIFdJVEhPVVQgV09SSyBXUkFQUEVSIFdSSVRFCisJV0FJVExT TiBXSEVOIFdIRVJFIFdISVRFU1BBQ0VfUCBXSU5ET1cKKwlXSVRIIFdJVEhJ TiBXSVRIT1VUIFdPUksgV1JBUFBFUiBXUklURQogCiAJWE1MX1AgWE1MQVRU UklCVVRFUyBYTUxDT05DQVQgWE1MRUxFTUVOVCBYTUxFWElTVFMgWE1MRk9S RVNUIFhNTE5BTUVTUEFDRVMKIAlYTUxQQVJTRSBYTUxQSSBYTUxST09UIFhN TFNFUklBTElaRSBYTUxUQUJMRQpAQCAtOTM1LDYgKzkzNiw3IEBAIHN0bXQg OgogCQkJfCBWYXJpYWJsZVNldFN0bXQKIAkJCXwgVmFyaWFibGVTaG93U3Rt dAogCQkJfCBWaWV3U3RtdAorCQkJfCBXYWl0TFNOU3RtdAogCQkJfCAvKkVN UFRZKi8KIAkJCQl7ICQkID0gTlVMTDsgfQogCQk7CkBAIC0xMzgzMSw2ICsx MzgzMyw0NCBAQCBmcmFtZV9ib3VuZDoKIAkJCQl9CiAJCTsKIAorLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICoJCVFVRVJZOgor ICoJCQkJV0FJVExTTiA8TFNOPiBjYW4gYXBwZWFyIGFzIGEgcXVlcnktbGV2 ZWwgY29tbWFuZAorICoKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCisKK1dhaXRMU05TdG10OgorCQkJV0FJVExTTiBTY29uc3QK KwkJCQl7CisJCQkJCVdhaXRMU05TdG10ICpuID0gbWFrZU5vZGUoV2FpdExT TlN0bXQpOworCQkJCQluLT5sc24gPSAkMjsKKwkJCQkJbi0+ZGVsYXkgPSAw OworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CisJCQl8IFdBSVRMU04g U2NvbnN0IFRJTUVPVVQgSWNvbnN0CisJCQkJeworCQkJCQlXYWl0TFNOU3Rt dCAqbiA9IG1ha2VOb2RlKFdhaXRMU05TdG10KTsKKwkJCQkJbi0+bHNuID0g JDI7CisJCQkJCW4tPmRlbGF5ID0gJDQ7CisJCQkJCSQkID0gKE5vZGUgKilu OworCQkJCX0KKwkJCXwgV0FJVExTTiBTY29uc3QgSU5GSU5JVEVMWQorCQkJ CXsKKwkJCQkJV2FpdExTTlN0bXQgKm4gPSBtYWtlTm9kZShXYWl0TFNOU3Rt dCk7CisJCQkJCW4tPmxzbiA9ICQyOworCQkJCQluLT5kZWxheSA9IDA7CisJ CQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KKwkJCXwgV0FJVExTTiBTY29u c3QgTk9XQUlUCisJCQkJeworCQkJCQlXYWl0TFNOU3RtdCAqbiA9IG1ha2VO b2RlKFdhaXRMU05TdG10KTsKKwkJCQkJbi0+bHNuID0gJDI7CisJCQkJCW4t PmRlbGF5ID0gMTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQk7 CiAKIC8qCiAgKiBTdXBwb3J0aW5nIG5vbnRlcm1pbmFscyBmb3IgZXhwcmVz c2lvbnMuCkBAIC0xNDcwNSw2ICsxNDc0NSw3IEBAIHVucmVzZXJ2ZWRfa2V5 d29yZDoKIAkJCXwgSU5DUkVNRU5UCiAJCQl8IElOREVYCiAJCQl8IElOREVY RVMKKwkJCXwgSU5GSU5JVEVMWQogCQkJfCBJTkhFUklUCiAJCQl8IElOSEVS SVRTCiAJCQl8IElOTElORV9QCkBAIC0xNDg0Myw2ICsxNDg4NCw3IEBAIHVu cmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgVEVNUExBVEUKIAkJCXwgVEVNUE9S QVJZCiAJCQl8IFRFWFRfUAorCQkJfCBUSU1FT1VUCiAJCQl8IFRSQU5TQUNU SU9OCiAJCQl8IFRSQU5TRk9STQogCQkJfCBUUklHR0VSCkBAIC0xNDg2OCw2 ICsxNDkxMCw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgVklFVwog CQkJfCBWSUVXUwogCQkJfCBWT0xBVElMRQorCQkJfCBXQUlUTFNOCiAJCQl8 IFdISVRFU1BBQ0VfUAogCQkJfCBXSVRISU4KIAkJCXwgV0lUSE9VVApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvaXBjaS5jIGIvc3Jj L2JhY2tlbmQvc3RvcmFnZS9pcGMvaXBjaS5jCmluZGV4IDJkMWVkMTQuLjkz MjEzNmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2lw Y2kuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9pcGNpLmMKQEAg LTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJhY2Nlc3Mvc3VidHJhbnMuaCIK ICNpbmNsdWRlICJhY2Nlc3MvdHdvcGhhc2UuaCIKICNpbmNsdWRlICJjb21t YW5kcy9hc3luYy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3dhaXRsc24uaCIK ICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIK ICNpbmNsdWRlICJwb3N0bWFzdGVyL2F1dG92YWN1dW0uaCIKQEAgLTI3MSw2 ICsyNzIsMTEgQEAgQ3JlYXRlU2hhcmVkTWVtb3J5QW5kU2VtYXBob3Jlcyhi b29sIG1ha2VQcml2YXRlLCBpbnQgcG9ydCkKIAlBc3luY1NobWVtSW5pdCgp OwogCUJhY2tlbmRSYW5kb21TaG1lbUluaXQoKTsKIAorCS8qCisJICogSW5p dCBhcnJheSBvZiBMYXRjaGVzICBpbiBTSE1FTSBmb3IgV0FJVExTTgorCSAq LworCVdhaXRMU05TaG1lbUluaXQoKTsKKwogI2lmZGVmIEVYRUNfQkFDS0VO RAogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0 eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKaW5kZXggODJhNzA3 YS4uNTQ0YmFlYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGls aXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTU2 LDYgKzU2LDcgQEAKICNpbmNsdWRlICJjb21tYW5kcy91c2VyLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvdmFjdXVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv dmlldy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3dhaXRsc24uaCIKICNpbmNs dWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdXRp bGNtZC5oIgogI2luY2x1ZGUgInBvc3RtYXN0ZXIvYmd3cml0ZXIuaCIKQEAg LTkyMyw2ICs5MjQsMjAgQEAgc3RhbmRhcmRfUHJvY2Vzc1V0aWxpdHkoUGxh bm5lZFN0bXQgKnBzdG10LAogCQkJCWJyZWFrOwogCQkJfQogCisJCWNhc2Ug VF9XYWl0TFNOU3RtdDoKKwkJCXsKKwkJCQlXYWl0TFNOU3RtdCAqc3RtdCA9 IChXYWl0TFNOU3RtdCAqKSBwYXJzZXRyZWU7CisJCQkJaWYgKCFSZWNvdmVy eUluUHJvZ3Jlc3MoKSkKKwkJCQl7CisJCQkJCWVyZXBvcnQoRVJST1IsKGVy cmNvZGUoRVJSQ09ERV9SRUFEX09OTFlfU1FMX1RSQU5TQUNUSU9OKSwKKwkJ CQkJCQllcnJtc2coImNhbm5vdCBleGVjdXRlICVzIG5vdCBkdXJpbmcgcmVj b3ZlcnkiLAorCQkJCQkJCSJXYWl0TFNOIikpKTsKKwkJCQl9CisJCQkJZWxz ZQorCQkJCQlXYWl0TFNOVXRpbGl0eShzdG10LT5sc24sIHN0bXQtPmRlbGF5 LCBkZXN0KTsKKwkJCX0KKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQkv KiBBbGwgb3RoZXIgc3RhdGVtZW50IHR5cGVzIGhhdmUgZXZlbnQgdHJpZ2dl ciBzdXBwb3J0ICovCiAJCQlQcm9jZXNzVXRpbGl0eVNsb3cocHN0YXRlLCBw c3RtdCwgcXVlcnlTdHJpbmcsCkBAIC0yNDgxLDYgKzI0OTYsMTAgQEAgQ3Jl YXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl0YWcgPSAiTk9U SUZZIjsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9XYWl0TFNOU3RtdDoKKwkJ CXRhZyA9ICJXQUlUTFNOIjsKKwkJCWJyZWFrOworCiAJCWNhc2UgVF9MaXN0 ZW5TdG10OgogCQkJdGFnID0gIkxJU1RFTiI7CiAJCQlicmVhazsKQEAgLTMx MDQsNiArMzEyMywxMCBAQCBHZXRDb21tYW5kTG9nTGV2ZWwoTm9kZSAqcGFy c2V0cmVlKQogCQkJbGV2ID0gTE9HU1RNVF9BTEw7CiAJCQlicmVhazsKIAor CQljYXNlIFRfV2FpdExTTlN0bXQ6CisJCQlsZXYgPSBMT0dTVE1UX0FMTDsK KwkJCWJyZWFrOworCiAJCWNhc2UgVF9MaXN0ZW5TdG10OgogCQkJbGV2ID0g TE9HU1RNVF9BTEw7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3dhaXRsc24uaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L3dhaXRsc24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li40OWNmOWU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY29t bWFuZHMvd2FpdGxzbi5oCkBAIC0wLDAgKzEsMjIgQEAKKy8qLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHdhaXRsc24uaAorICoJICBX YWl0TFNOIG5vdGlmaWNhdGlvbjogV0FJVExTTgorICoKKyAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5Ni0yMDE2LCBQb3N0Z3JlU1FMIEdsb2JhbCBE ZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAy MDE2LCBSZWdlbnRzIG9mIFBvc3RncmVzUFJPCisgKgorICogc3JjL2luY2x1 ZGUvY29tbWFuZHMvd2FpdGxzbi5oCisgKgorICotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYgV0FJVExTTl9ICisjZGVmaW5l IFdBSVRMU05fSAorI2luY2x1ZGUgInRjb3AvZGVzdC5oIgorCitleHRlcm4g dm9pZCBXYWl0TFNOVXRpbGl0eShjb25zdCBjaGFyICpsc24sIGNvbnN0IGlu dCBkZWxheSwgRGVzdFJlY2VpdmVyICpkZXN0KTsKK2V4dGVybiB2b2lkIFdh aXRMU05TaG1lbUluaXQodm9pZCk7CitleHRlcm4gdm9pZCBXYWl0TFNOU2V0 TGF0Y2goWExvZ1JlY1B0ciBjdXJfbHNuKTsKK2V4dGVybiBYTG9nUmVjUHRy IEdldE1pbldhaXRMU04odm9pZCk7CisKKyNlbmRpZiAgIC8qIFdBSVRMU05f SCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvbm9kZXMuaCBi L3NyYy9pbmNsdWRlL25vZGVzL25vZGVzLmgKaW5kZXggZmZlZWI0OS4uMjAx Njc3YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvbm9kZXMuaAor KysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9ub2Rlcy5oCkBAIC00NzksNiArNDc5 LDcgQEAgdHlwZWRlZiBlbnVtIE5vZGVUYWcKIAlUX0Ryb3BSZXBsaWNhdGlv blNsb3RDbWQsCiAJVF9TdGFydFJlcGxpY2F0aW9uQ21kLAogCVRfVGltZUxp bmVIaXN0b3J5Q21kLAorCVRfV2FpdExTTlN0bXQsCiAJVF9TUUxDbWQsCiAK IAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDcz MmU1ZDYuLjU1ZmZkYTggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKQEAgLTM0NDYsNCArMzQ0NiwxNiBAQCB0eXBlZGVmIHN0cnVjdCBE cm9wU3Vic2NyaXB0aW9uU3RtdAogCURyb3BCZWhhdmlvciBiZWhhdmlvcjsJ CS8qIFJFU1RSSUNUIG9yIENBU0NBREUgYmVoYXZpb3IgKi8KIH0gRHJvcFN1 YnNjcmlwdGlvblN0bXQ7CiAKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqCQlXYWl0TFNOIFN0YXRlbWVudAorICogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBXYWl0TFNOU3RtdAoreworCU5v ZGVUYWcJCXR5cGU7CisJY2hhcgkgICAqbHNuOwkJCS8qIFRhcmFnZXQgTFNO IHRvIHdhaXQgZm9yICovCisJaW50CQkJZGVsYXk7CQkJLyogRGVsYXkgdG8g d2FpdCBmb3IgTFNOKi8KKwlib29sCQlub3dhaXQ7CQkJLyogTm8gd2FpdCBm b3IgTFNOIGp1c3QgcmVzdWx0Ki8KK30gV2FpdExTTlN0bXQ7CisKICNlbmRp ZgkJCQkJCQkvKiBQQVJTRU5PREVTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9r d2xpc3QuaAppbmRleCBmNTBlNDVlLi42MThjZGIyIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUv cGFyc2VyL2t3bGlzdC5oCkBAIC0xOTgsNiArMTk4LDcgQEAgUEdfS0VZV09S RCgiaW5jbHVkaW5nIiwgSU5DTFVESU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQp CiBQR19LRVlXT1JEKCJpbmNyZW1lbnQiLCBJTkNSRU1FTlQsIFVOUkVTRVJW RURfS0VZV09SRCkKIFBHX0tFWVdPUkQoImluZGV4IiwgSU5ERVgsIFVOUkVT RVJWRURfS0VZV09SRCkKIFBHX0tFWVdPUkQoImluZGV4ZXMiLCBJTkRFWEVT LCBVTlJFU0VSVkVEX0tFWVdPUkQpCitQR19LRVlXT1JEKCJpbmZpbml0ZWx5 IiwgSU5GSU5JVEVMWSwgVU5SRVNFUlZFRF9LRVlXT1JEKQogUEdfS0VZV09S RCgiaW5oZXJpdCIsIElOSEVSSVQsIFVOUkVTRVJWRURfS0VZV09SRCkKIFBH X0tFWVdPUkQoImluaGVyaXRzIiwgSU5IRVJJVFMsIFVOUkVTRVJWRURfS0VZ V09SRCkKIFBHX0tFWVdPUkQoImluaXRpYWxseSIsIElOSVRJQUxMWSwgUkVT RVJWRURfS0VZV09SRCkKQEAgLTM5NCw2ICszOTUsNyBAQCBQR19LRVlXT1JE KCJ0ZW1wb3JhcnkiLCBURU1QT1JBUlksIFVOUkVTRVJWRURfS0VZV09SRCkK IFBHX0tFWVdPUkQoInRleHQiLCBURVhUX1AsIFVOUkVTRVJWRURfS0VZV09S RCkKIFBHX0tFWVdPUkQoInRoZW4iLCBUSEVOLCBSRVNFUlZFRF9LRVlXT1JE KQogUEdfS0VZV09SRCgidGltZSIsIFRJTUUsIENPTF9OQU1FX0tFWVdPUkQp CitQR19LRVlXT1JEKCJ0aW1lb3V0IiwgVElNRU9VVCwgVU5SRVNFUlZFRF9L RVlXT1JEKQogUEdfS0VZV09SRCgidGltZXN0YW1wIiwgVElNRVNUQU1QLCBD T0xfTkFNRV9LRVlXT1JEKQogUEdfS0VZV09SRCgidG8iLCBUTywgUkVTRVJW RURfS0VZV09SRCkKIFBHX0tFWVdPUkQoInRyYWlsaW5nIiwgVFJBSUxJTkcs IFJFU0VSVkVEX0tFWVdPUkQpCkBAIC00MzMsNiArNDM1LDcgQEAgUEdfS0VZ V09SRCgidmVyc2lvbiIsIFZFUlNJT05fUCwgVU5SRVNFUlZFRF9LRVlXT1JE KQogUEdfS0VZV09SRCgidmlldyIsIFZJRVcsIFVOUkVTRVJWRURfS0VZV09S RCkKIFBHX0tFWVdPUkQoInZpZXdzIiwgVklFV1MsIFVOUkVTRVJWRURfS0VZ V09SRCkKIFBHX0tFWVdPUkQoInZvbGF0aWxlIiwgVk9MQVRJTEUsIFVOUkVT RVJWRURfS0VZV09SRCkKK1BHX0tFWVdPUkQoIndhaXRsc24iLCBXQUlUTFNO LCBVTlJFU0VSVkVEX0tFWVdPUkQpCiBQR19LRVlXT1JEKCJ3aGVuIiwgV0hF TiwgUkVTRVJWRURfS0VZV09SRCkKIFBHX0tFWVdPUkQoIndoZXJlIiwgV0hF UkUsIFJFU0VSVkVEX0tFWVdPUkQpCiBQR19LRVlXT1JEKCJ3aGl0ZXNwYWNl IiwgV0hJVEVTUEFDRV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQpCg== --=_7ade611603a94d00910b2fdd884ffbb6 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers --=_7ade611603a94d00910b2fdd884ffbb6--