Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e6c81-0000qC-5w for pgsql-hackers@arkaria.postgresql.org; Mon, 23 Oct 2017 12:46:49 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1e6c80-0002Eu-EN for pgsql-hackers@arkaria.postgresql.org; Mon, 23 Oct 2017 12:46:48 +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 1e6c6L-0007rW-Gl; Mon, 23 Oct 2017 12:45:06 +0000 Received: from mail.postgrespro.ru ([93.174.131.138]) by makus.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e6c6H-0001Un-1G; Mon, 23 Oct 2017 12:45:04 +0000 Received: from localhost (localhost [127.0.0.1]) by mail.postgrespro.ru (Postfix) with ESMTP id A567821C1B04; Mon, 23 Oct 2017 15:44:58 +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 5818521C05E6; Mon, 23 Oct 2017 15:44:58 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1508762698; bh=v1O9M4FWreUUP8OBdUGnot+X4VegUd6JUAF0LaW885M=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=VrDITNhx3EHlGZllOlJnJ5eJOl5cd6ir5feZyhmJPI6h4K58c17bnEuOJufMYplQz L+5+X7tg7g8EjKJhMIJb9vox+vbtGFFzcNJZ0JEWFelnOqXpqpAiH8pPY1V6CQm0et g1rzq5+Xw+Lxeg8mSrXIIDis/udUrPMBdXLQ7ocM= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_bd7e705e17028d54bbae8946c7b69820" Date: Mon, 23 Oct 2017 15:44:58 +0300 From: Ivan Kartyshov To: Alexander Korotkov Cc: pgsql-hackers , 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> <5038f85c9b0e791541dfb0650b0e7e6c@postgrespro.ru> Message-ID: 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 --=_bd7e705e17028d54bbae8946c7b69820 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8; format=flowed Alexander Korotkov писал 2017-10-23 13:19: > Despite code cleanup, you still have some random empty lines removals > in your patch. I reconfigured my IDE to avoid this in the future. -- Ivan Kartyshov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company --=_bd7e705e17028d54bbae8946c7b69820 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=waitlsn_11dev_v8.patch Content-Disposition: attachment; filename=waitlsn_11dev_v8.patch; size=22681 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAppbmRleCAwMWFjYzJl Li42NzkyZWIwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZp bGVzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21s CkBAIC0xODEsNiArMTgxLDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUg c2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElU WSB1cGRhdGUgICAgICAgICAgICAgU1lTVEVNICJ1cGRhdGUuc2dtbCI+CiA8 IUVOVElUWSB2YWN1dW0gICAgICAgICAgICAgU1lTVEVNICJ2YWN1dW0uc2dt bCI+CiA8IUVOVElUWSB2YWx1ZXMgICAgICAgICAgICAgU1lTVEVNICJ2YWx1 ZXMuc2dtbCI+Cis8IUVOVElUWSB3YWl0bHNuICAgICAgICAgICAgU1lTVEVN ICJ3YWl0bHNuLnNnbWwiPgogCiA8IS0tIGFwcGxpY2F0aW9ucyBhbmQgdXRp bGl0aWVzIC0tPgogPCFFTlRJVFkgY2x1c3RlcmRiICAgICAgICAgIFNZU1RF TSAiY2x1c3RlcmRiLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi93YWl0bHNuLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3dhaXRsc24u c2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjM4 OWNhCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi93YWl0 bHNuLnNnbWwKQEAgLTAsMCArMSwxNDQgQEAKKzwhLS0KK2RvYy9zcmMvc2dt bC9yZWYvd2FpdGxzbi5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24K Ky0tPgorCis8cmVmZW50cnkgaWQ9IlNRTC1XQUlUTFNOIj4KKyA8aW5kZXh0 ZXJtIHpvbmU9InNxbC13YWl0bHNuIj4KKyAgPHByaW1hcnk+V0FJVExTTjwv cHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVm ZW50cnl0aXRsZT5XQUlUTFNOPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9s bnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1 YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKwor IDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5XQUlUTFNOPC9yZWZuYW1lPgor ICA8cmVmcHVycG9zZT53YWl0IGZvciB0aGUgdGFyZ2V0IDxhY3JvbnltPkxT TjwvPiB0byBiZSByZXBsYXllZDwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVk aXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitXQUlUTFNO ICc8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+TFNOPC9yZXBsYWNl YWJsZT4nIFsgSU5GSU5JVEVMWSBdCitXQUlUTFNOICc8cmVwbGFjZWFibGUg Y2xhc3M9IlBBUkFNRVRFUiI+TFNOPC9yZXBsYWNlYWJsZT4nIFRJTUVPVVQg PHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVURVIiPndhaXRfdGltZTwvcmVw bGFjZWFibGU+CitXQUlUTFNOICc8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFN RVRFUiI+TFNOPC9yZXBsYWNlYWJsZT4nIE5PV0FJVAorPC9zeW5vcHNpcz4K KyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+ RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgaW50ZXJwcm9j ZXNzIGNvbW11bmljYXRpb24gbWVjaGFuaXNtIHRvIHdhaXQgZm9yIHRoZSB0 YXJnZXQgbG9nIHNlcXVlbmNlCisgICBudW1iZXIgKDxhY3JvbnltPkxTTjwv Pikgb24gc3RhbmRieSBpbiA8cHJvZHVjdG5hbWU+JnByb2R1Y3RuYW1lOzwv cHJvZHVjdG5hbWU+CisgICBkYXRhYmFzZXMgd2l0aCBtYXN0ZXItc3RhbmRi eSBhc3luY2hyb25vdXMgcmVwbGljYXRpb24uIFdoZW4gcnVuIHdpdGggdGhl CisgICA8cmVwbGFjZWFibGU+TFNOPC9yZXBsYWNlYWJsZT4gb3B0aW9uLCB0 aGUgPGNvbW1hbmQ+V0FJVExTTjwvY29tbWFuZD4gY29tbWFuZAorICAgd2Fp dHMgZm9yIHRoZSBzcGVjaWZpZWQgPGFjcm9ueW0+TFNOPC8+IHRvIGJlIHJl cGxheWVkLiBCeSBkZWZhdWx0LCB3YWl0CisgICB0aW1lIGlzIHVubGltaXRl ZC4gV2FpdGluZyBjYW4gYmUgaW50ZXJydXB0ZWQgdXNpbmcgPGxpdGVyYWw+ Q3RybCtDPC8+LCBvcgorICAgYnkgc2h1dHRpbmcgZG93biB0aGUgPGxpdGVy YWw+cG9zdGdyZXM8Lz4gc2VydmVyLiBZb3UgY2FuIGFsc28gbGltaXQgdGhl IHdhaXQKKyAgIHRpbWUgdXNpbmcgdGhlIDxvcHRpb24+VElNRU9VVDwvPiBv cHRpb24sIG9yIGNoZWNrIHRoZSB0YXJnZXQgPGFjcm9ueW0+TFNOPC8+Cisg ICBzdGF0dXMgaW1tZWRpYXRlbHkgdXNpbmcgdGhlIDxvcHRpb24+Tk9XQUlU PC8+IG9wdGlvbi4KKyAgPC9wYXJhPgorCisgPC9yZWZzZWN0MT4KKworIDxy ZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2 YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxy ZXBsYWNlYWJsZSBjbGFzcz0iUEFSQU1FVEVSIj5MU048L3JlcGxhY2VhYmxl PjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorCSAgU3Bl Y2lmeSB0aGUgdGFyZ2V0IGxvZyBzZXF1ZW5jZSBudW1iZXIgdG8gd2FpdCBm b3IuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisgICA8dmFybGlzdGVudHJ5PgorCTx0ZXJtPklORklOSVRF TFk8L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKwkgIFdh aXQgdW50aWwgdGhlIHRhcmdldCA8YWNyb255bT5MU048Lz4gaXMgcmVwbGF5 ZWQgb24gc3RhbmRieS4KKwkgIFRoaXMgaXMgYW4gb3B0aW9uYWwgcGFyYW1l dGVyIHJlaW5mb3JjaW5nIHRoZSBkZWZhdWx0IGJlaGF2aW9yLgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5Pgor ICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgICA8dmFybGlz dGVudHJ5PgorCTx0ZXJtPlRJTUVPVVQgPHJlcGxhY2VhYmxlIGNsYXNzPSJQ QVJBTUVURVIiPndhaXRfdGltZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorCTxs aXN0aXRlbT4KKwkgPHBhcmE+CisJICBMaW1pdCB0aGUgdGltZSB0byB3YWl0 IGZvciB0aGUgTFNOIHRvIGJlIHJlcGxheWVkLgorCSAgVGhlIHNwZWNpZmll ZCA8cmVwbGFjZWFibGU+d2FpdF90aW1lPC9yZXBsYWNlYWJsZT4gbXVzdCBi ZSBhbiBpbnRlZ2VyCisJICBhbmQgaXMgbWVhc3VyZWQgaW4gbWlsbGlzZWNv bmRzLgorCSA8L3BhcmE+CisJPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorCTx0ZXJtPk5PV0FJVDwvdGVy bT4KKwk8bGlzdGl0ZW0+CisJIDxwYXJhPgorCSAgUmVwb3J0IHdoZXRoZXIg dGhlIHRhcmdldCA8YWNyb255bT5MU048Lz4gaGFzIGJlZW4gcmVwbGF5ZWQg YWxyZWFkeSwKKwkgIHdpdGhvdXQgYW55IHdhaXRpbmcuCisJIDwvcGFyYT4K Kwk8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFyaWFi bGVsaXN0PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3Rp dGxlPgorCisgIDxwYXJhPgorICAgUnVuIDxsaXRlcmFsPldBSVRMU048Lz4g ZnJvbSA8YXBwbGljYXRpb24+cHNxbDwvYXBwbGljYXRpb24+LAorICAgbGlt aXRpbmcgd2FpdCB0aW1lIHRvIDEwMDAwIG1pbGxpc2Vjb25kczoKKworPHNj cmVlbj4KK1dBSVRMU04gJzAvM0YwN0E2QjEnIFRJTUVPVVQgMTAwMDA7CitO T1RJQ0U6ICBMU04gaXMgbm90IHJlYWNoZWQuIFRyeSB0byBpbmNyZWFzZSB3 YWl0IHRpbWUuCitMU04gcmVhY2hlZAorLS0tLS0tLS0tLS0tLQorIGYKKygx IHJvdykKKzwvc2NyZWVuPgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBX YWl0IHVudGlsIHRoZSBzcGVjaWZpZWQgPGFjcm9ueW0+TFNOPC8+IGlzIHJl cGxheWVkOgorPHNjcmVlbj4KK1dBSVRMU04gJzAvM0YwN0E2MTEnOworTFNO IHJlYWNoZWQKKy0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCis8L3NjcmVl bj4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgTGltaXQgPGFjcm9ueW0+ TFNOPC8+IHdhaXQgdGltZSB0byA1MDAwMDAgbWlsbGlzZWNvbmRzLCBhbmQg dGhlbiBjYW5jZWwgdGhlIGNvbW1hbmQ6Cis8c2NyZWVuPgorV0FJVExTTiAn MC8zRjBGRjc5MScgVElNRU9VVCA1MDAwMDA7CiteQ0NhbmNlbCByZXF1ZXN0 IHNlbnQKK05PVElDRTogIExTTiBpcyBub3QgcmVhY2hlZC4gVHJ5IHRvIGlu Y3JlYXNlIHdhaXQgdGltZS4KK0VSUk9SOiAgY2FuY2VsaW5nIHN0YXRlbWVu dCBkdWUgdG8gdXNlciByZXF1ZXN0CisgTFNOIHJlYWNoZWQKKy0tLS0tLS0t LS0tLS0KKyBmCisoMSByb3cpCis8L3NjcmVlbj4KKzwvcGFyYT4KKyA8L3Jl ZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0 eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29tbWFu ZD5XQUlUTFNOPC9jb21tYW5kPiBzdGF0ZW1lbnQgaW4gdGhlIFNRTAorICAg c3RhbmRhcmQuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorPC9yZWZlbnRy eT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCA5MDAwYjNhLi4w YzU5NTFhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC0yMDks NiArMjA5LDcgQEAKICAgICZ1cGRhdGU7CiAgICAmdmFjdXVtOwogICAgJnZh bHVlczsKKyAgICZ3YWl0bHNuOwogCiAgPC9yZWZlcmVuY2U+CiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwppbmRleCBkZDAyOGEx Li4xMTdjYzliIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v eGxvZy5jCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19jb250cm9sLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5o IgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKKyNpbmNsdWRl ICJjb21tYW5kcy93YWl0bHNuLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgi CiAjaW5jbHVkZSAicGdzdGF0LmgiCiAjaW5jbHVkZSAicG9ydC9hdG9taWNz LmgiCkBAIC03MzEyLDYgKzczMTIsMTUgQEAgU3RhcnR1cFhMT0codm9pZCkK IAkJCQkJYnJlYWs7CiAJCQkJfQogCisJCQkJLyoKKwkJCQkgKiBBZnRlciB1 cGRhdGUgbGFzdFJlcGxheWVkRW5kUmVjUHRyIHNldCBMYXRjaGVzIGluIFNI TUVNIGFycmF5CisJCQkJICovCisJCQkJaWYgKFhMb2dDdGwtPmxhc3RSZXBs YXllZEVuZFJlY1B0ciA+PSBHZXRNaW5XYWl0TFNOKCkpCisJCQkJeworCisJ CQkJCVdhaXRMU05TZXRMYXRjaChYTG9nQ3RsLT5sYXN0UmVwbGF5ZWRFbmRS ZWNQdHIpOworCQkJCX0KKwogCQkJCS8qIEVsc2UsIHRyeSB0byBmZXRjaCB0 aGUgbmV4dCBXQUwgcmVjb3JkICovCiAJCQkJcmVjb3JkID0gUmVhZFJlY29y ZCh4bG9ncmVhZGVyLCBJbnZhbGlkWExvZ1JlY1B0ciwgTE9HLCBmYWxzZSk7 CiAJCQl9IHdoaWxlIChyZWNvcmQgIT0gTlVMTCk7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL01ha2VmaWxlCmluZGV4IDRhNmM5OWUuLjBkMTAxMTcgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCisrKyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBAIC0yMCw2ICsyMCw2IEBA IE9CSlMgPSBhbWNtZHMubyBhZ2dyZWdhdGVjbWRzLm8gYWx0ZXIubyBhbmFs eXplLm8gYXN5bmMubyBjbHVzdGVyLm8gY29tbWVudC5vIFwKIAlwb2xpY3ku byBwb3J0YWxjbWRzLm8gcHJlcGFyZS5vIHByb2NsYW5nLm8gcHVibGljYXRp b25jbWRzLm8gXAogCXNjaGVtYWNtZHMubyBzZWNsYWJlbC5vIHNlcXVlbmNl Lm8gc3RhdHNjbWRzLm8gc3Vic2NyaXB0aW9uY21kcy5vIFwKIAl0YWJsZWNt ZHMubyB0YWJsZXNwYWNlLm8gdHJpZ2dlci5vIHRzZWFyY2hjbWRzLm8gdHlw ZWNtZHMubyB1c2VyLm8gXAotCXZhY3V1bS5vIHZhY3V1bWxhenkubyB2YXJp YWJsZS5vIHZpZXcubworCXZhY3V1bS5vIHZhY3V1bWxhenkubyB2YXJpYWJs ZS5vIHZpZXcubyB3YWl0bHNuLm8KIAogaW5jbHVkZSAkKHRvcF9zcmNkaXIp L3NyYy9iYWNrZW5kL2NvbW1vbi5tawpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvd2FpdGxzbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv d2FpdGxzbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmRiMmY1NDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy93YWl0bHNuLmMKQEAgLTAsMCArMSwyNzMgQEAKKy8qLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHdhaXRsc24uYworICoJICBX YWl0TFNOIHN0YXRtZW50OiBXQUlUTFNOCisgKgorICogUG9ydGlvbnMgQ29w eXJpZ2h0IChjKSAxOTk2LTIwMTcsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTcs IFJlZ2VudHMgb2YgUG9zdGdyZXNQcm8KKyAqCisgKiBJREVOVElGSUNBVElP TgorICoJICBzcmMvYmFja2VuZC9jb21tYW5kcy93YWl0bHNuLmMKKyAqCisg Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisvKgorICog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogV2FpdCBmb3IgTFNO IGJlZW4gcmVwbGF5ZWQgb24gc2xhdmUKKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorI2lu Y2x1ZGUgImZtZ3IuaCIKKyNpbmNsdWRlICJwZ3N0YXQuaCIKKyNpbmNsdWRl ICJ1dGlscy9wZ19sc24uaCIKKyNpbmNsdWRlICJzdG9yYWdlL2xhdGNoLmgi CisjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAic3RvcmFnZS9z cGluLmgiCisjaW5jbHVkZSAic3RvcmFnZS9iYWNrZW5kaWQuaCIKKyNpbmNs dWRlICJhY2Nlc3MveGFjdC5oIgorI2luY2x1ZGUgInN0b3JhZ2Uvc2htZW0u aCIKKyNpbmNsdWRlICJzdG9yYWdlL2lwYy5oIgorI2luY2x1ZGUgInV0aWxz L3RpbWVzdGFtcC5oIgorI2luY2x1ZGUgInN0b3JhZ2UvcG1zaWduYWwuaCIK KyNpbmNsdWRlICJhY2Nlc3MveGxvZy5oIgorI2luY2x1ZGUgImFjY2Vzcy94 bG9nZGVmcy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3dhaXRsc24uaCIKKyNp bmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKKyNpbmNsdWRlICJhY2Nlc3MvdHJh bnNhbS5oIgorI2luY2x1ZGUgImZ1bmNhcGkuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgor CisvKiBMYXRjaGVzIE93bi1EaXNvd25MYXRjaCBhbmQgQWJvcnRDYWxsQmFj ayAqLworc3RhdGljIHVpbnQzMiBXYWl0TFNOU2htZW1TaXplKHZvaWQpOwor c3RhdGljIHZvaWQgV0xEaXNvd25MYXRjaEFib3J0KFhhY3RFdmVudCBldmVu dCwgdm9pZCAqYXJnKTsKK3N0YXRpYyB2b2lkIFdMT3duTGF0Y2goWExvZ1Jl Y1B0ciB0cmdfbHNuKTsKK3N0YXRpYyB2b2lkIFdMRGlzb3duTGF0Y2godm9p ZCk7CisKK3ZvaWQJCV9QR19pbml0KHZvaWQpOworCisvKiBTaGFyZWQgbWVt b3J5IHN0cnVjdHVyZXMgKi8KK3R5cGVkZWYgc3RydWN0Cit7CisJaW50CQkJ CQlwaWQ7CisJdm9sYXRpbGUgc2xvY2tfdAlzbG9jazsKKwlMYXRjaAkJCQls YXRjaDsKKwlYTG9nUmVjUHRyCQkJdHJnX2xzbjsKK30gQklETGF0Y2g7CisK KwordHlwZWRlZiBzdHJ1Y3QKK3sKKwlpbnQJCQkJYmFja2VuZF9tYXhpZDsK KwlYTG9nUmVjUHRyCQltaW5fbHNuOworCUJJRExhdGNoCQlsX2FycltGTEVY SUJMRV9BUlJBWV9NRU1CRVJdOworfSBHbG9iU3RhdGU7CisKK3N0YXRpYyB2 b2xhdGlsZSBHbG9iU3RhdGUgICpzdGF0ZTsKK2Jvb2wJCQkJCQlpc19sYXRj aF9vd25lZCA9IGZhbHNlOworCisvKiBUYWtlIExhdGNoIGZvciBjdXJyZW50 IGJhY2tlbmQgYXQgdGhlIGJlZ2luaW5nIG9mIFdBSVRMU04gKi8KK3N0YXRp YyB2b2lkCitXTE93bkxhdGNoKFhMb2dSZWNQdHIgdHJnX2xzbikKK3sKKwlT cGluTG9ja0FjcXVpcmUoJnN0YXRlLT5sX2FycltNeUJhY2tlbmRJZF0uc2xv Y2spOworCU93bkxhdGNoKCZzdGF0ZS0+bF9hcnJbTXlCYWNrZW5kSWRdLmxh dGNoKTsKKwlpc19sYXRjaF9vd25lZCA9IHRydWU7CisKKwlpZiAoc3RhdGUt PmJhY2tlbmRfbWF4aWQgPCBNeUJhY2tlbmRJZCkKKwkJc3RhdGUtPmJhY2tl bmRfbWF4aWQgPSBNeUJhY2tlbmRJZDsKKworCXN0YXRlLT5sX2FycltNeUJh Y2tlbmRJZF0ucGlkID0gTXlQcm9jUGlkOworCXN0YXRlLT5sX2FycltNeUJh Y2tlbmRJZF0udHJnX2xzbiA9IHRyZ19sc247CisJU3BpbkxvY2tSZWxlYXNl KCZzdGF0ZS0+bF9hcnJbTXlCYWNrZW5kSWRdLnNsb2NrKTsKKworCWlmICh0 cmdfbHNuIDwgc3RhdGUtPm1pbl9sc24pCisJCXN0YXRlLT5taW5fbHNuID0g dHJnX2xzbjsKK30KKworLyogUmVsZWFzZSBMYXRjaCBmb3IgY3VycmVudCBi YWNrZW5kIGF0IHRoZSBlbmQgb2YgV0FJVExTTiAqLworc3RhdGljIHZvaWQK K1dMRGlzb3duTGF0Y2godm9pZCkKK3sKKwlpbnQgaTsKKwlYTG9nUmVjUHRy IHRyZ19sc24gPSBzdGF0ZS0+bF9hcnJbTXlCYWNrZW5kSWRdLnRyZ19sc247 CisKKwlTcGluTG9ja0FjcXVpcmUoJnN0YXRlLT5sX2FycltNeUJhY2tlbmRJ ZF0uc2xvY2spOworCURpc293bkxhdGNoKCZzdGF0ZS0+bF9hcnJbTXlCYWNr ZW5kSWRdLmxhdGNoKTsKKwlpc19sYXRjaF9vd25lZCA9IGZhbHNlOworCXN0 YXRlLT5sX2FycltNeUJhY2tlbmRJZF0ucGlkID0gMDsKKwlzdGF0ZS0+bF9h cnJbTXlCYWNrZW5kSWRdLnRyZ19sc24gPSBJbnZhbGlkWExvZ1JlY1B0cjsK KworCS8qIFVwZGF0ZSBzdGF0ZS0+bWluX2xzbiBpZmYgaXQgaXMgbmVzc2Vz YXJ5IGNob29zaW5nIG5leHQgbWluX2xzbiAqLworCWlmIChzdGF0ZS0+bWlu X2xzbiA9PSB0cmdfbHNuKQorCXsKKwkJc3RhdGUtPm1pbl9sc24gPSBQR19V SU5UNjRfTUFYOworCQlmb3IgKGkgPSAyOyBpIDw9IHN0YXRlLT5iYWNrZW5k X21heGlkOyBpKyspCisJCQlpZiAoc3RhdGUtPmxfYXJyW2ldLnRyZ19sc24g IT0gSW52YWxpZFhMb2dSZWNQdHIgJiYKKwkJCQlzdGF0ZS0+bF9hcnJbaV0u dHJnX2xzbiA8IHN0YXRlLT5taW5fbHNuKQorCQkJCXN0YXRlLT5taW5fbHNu ID0gc3RhdGUtPmxfYXJyW2ldLnRyZ19sc247CisJfQorCisJaWYgKHN0YXRl LT5iYWNrZW5kX21heGlkID09IE15QmFja2VuZElkKQorCQlmb3IgKGkgPSAo TWF4Q29ubmVjdGlvbnMrMSk7IGkgPj0yOyBpLS0pCisJCQlpZiAoc3RhdGUt PmxfYXJyW2ldLnBpZCAhPSAwKQorCQkJeworCQkJCXN0YXRlLT5iYWNrZW5k X21heGlkID0gaTsKKwkJCQlicmVhazsKKwkJCX0KKworCVNwaW5Mb2NrUmVs ZWFzZSgmc3RhdGUtPmxfYXJyW015QmFja2VuZElkXS5zbG9jayk7Cit9CisK Ky8qIENhbGxCYWNrIGZ1bmN0aW9uIG9uIGFib3J0Ki8KK3N0YXRpYyB2b2lk CitXTERpc293bkxhdGNoQWJvcnQoWGFjdEV2ZW50IGV2ZW50LCB2b2lkICph cmcpCit7CisJaWYgKGlzX2xhdGNoX293bmVkICYmIChldmVudCA9PSBYQUNU X0VWRU5UX1BBUkFMTEVMX0FCT1JUIHx8CisJCQkJCQkgICBldmVudCA9PSBY QUNUX0VWRU5UX0FCT1JUKSkKKwl7CisJCVdMRGlzb3duTGF0Y2goKTsKKwl9 Cit9CisKKy8qIE1vZHVsZSBsb2FkIGNhbGxiYWNrICovCit2b2lkCitfUEdf aW5pdCh2b2lkKQoreworCWlmICghSXNVbmRlclBvc3RtYXN0ZXIpCisJCVJl Z2lzdGVyWGFjdENhbGxiYWNrKFdMRGlzb3duTGF0Y2hBYm9ydCwgTlVMTCk7 Cit9CisKKy8qIEdldCBzaXplIG9mIHNoYXJlZCBtZW1vcnkgdG8gcm9vbSBH bG9iU3RhdGUgKi8KK3N0YXRpYyB1aW50MzIKK1dhaXRMU05TaG1lbVNpemUo dm9pZCkKK3sKKwlyZXR1cm4gb2Zmc2V0b2YoR2xvYlN0YXRlLCBsX2Fycikg KyBzaXplb2YoQklETGF0Y2gpICogKE1heENvbm5lY3Rpb25zKzEpOworfQor CisvKiBJbml0IGFycmF5IG9mIExhdGNoZXMgaW4gc2hhcmVkIG1lbW9yeSAq Lwordm9pZAorV2FpdExTTlNobWVtSW5pdCh2b2lkKQoreworCWJvb2wJZm91 bmQ7CisJdWludDMyCWk7CisKKwlzdGF0ZSA9IChHbG9iU3RhdGUgKikgU2ht ZW1Jbml0U3RydWN0KCJwZ193YWl0X2xzbiIsCisJCQkJCQkJCQkJICBXYWl0 TFNOU2htZW1TaXplKCksCisJCQkJCQkJCQkJICAmZm91bmQpOworCWlmICgh Zm91bmQpCisJeworCQlmb3IgKGkgPSAwOyBpIDwgKE1heENvbm5lY3Rpb25z KzEpOyBpKyspCisJCXsKKwkJCXN0YXRlLT5sX2FycltpXS5waWQgPSAwOwor CQkJc3RhdGUtPmxfYXJyW2ldLnRyZ19sc24gPSBJbnZhbGlkWExvZ1JlY1B0 cjsKKwkJCVNwaW5Mb2NrSW5pdCgmc3RhdGUtPmxfYXJyW2ldLnNsb2NrKTsK KwkJCUluaXRTaGFyZWRMYXRjaCgmc3RhdGUtPmxfYXJyW2ldLmxhdGNoKTsK KwkJfQorCQlzdGF0ZS0+YmFja2VuZF9tYXhpZCA9IDA7CisJCXN0YXRlLT5t aW5fbHNuID0gUEdfVUlOVDY0X01BWDsKKwl9Cit9CisKKy8qIFNldCBhbGwg TGF0Y2hlcyBpbiBzaGFyZWQgbWVtb3J5IGNhdXNlIG5ldyBMU04gYmVlbiBy ZXBsYXllZCovCit2b2lkCitXYWl0TFNOU2V0TGF0Y2goWExvZ1JlY1B0ciBj dXJfbHNuKQoreworCXVpbnQzMiBpOworCisJZm9yIChpID0gMjsgaSA8PSBz dGF0ZS0+YmFja2VuZF9tYXhpZDsgaSsrKQorCXsKKwkJaWYgKHN0YXRlLT5s X2FycltpXS50cmdfbHNuICE9IDApCisJCXsKKwkJU3BpbkxvY2tBY3F1aXJl KCZzdGF0ZS0+bF9hcnJbaV0uc2xvY2spOworCQlpZiAoc3RhdGUtPmxfYXJy W2ldLnRyZ19sc24gPD0gY3VyX2xzbikKKwkJCVNldExhdGNoKCZzdGF0ZS0+ bF9hcnJbaV0ubGF0Y2gpOworCQlTcGluTG9ja1JlbGVhc2UoJnN0YXRlLT5s X2FycltpXS5zbG9jayk7CisJCX0KKwl9Cit9CisKKy8qIEdldCBtaW5pbWFs IExTTiB0aGF0IHdpbGwgYmUgbmV4dCAqLworWExvZ1JlY1B0cgorR2V0TWlu V2FpdExTTih2b2lkKQoreworCXJldHVybiBzdGF0ZS0+bWluX2xzbjsKK30K KworLyoKKyAqIE9uIFdBSVRMU04gb3duIGxhdGNoIGFuZCB3YWl0IHRpbGwg TFNOIGlzIHJlcGxheWVkLCBQb3N0bWFzdGVyIGRlYXRoLCBpbnRlcnJ1cHRp b24KKyAqIG9yIHRpbWVvdXQuCisgKi8KK3ZvaWQKK1dhaXRMU05VdGlsaXR5 KGNvbnN0IGNoYXIgKmxzbiwgY29uc3QgaW50IGRlbGF5LCBEZXN0UmVjZWl2 ZXIgKmRlc3QpCit7CisJWExvZ1JlY1B0cgkJdHJnX2xzbiA9IERhdHVtR2V0 TFNOKERpcmVjdEZ1bmN0aW9uQ2FsbDEocGdfbHNuX2luLCBDU3RyaW5nR2V0 RGF0dW0obHNuKSkpOworCVhMb2dSZWNQdHIJCWN1cl9sc247CisJaW50CQkJ CWxhdGNoX2V2ZW50czsKKwl1aW50NjQJCQl0ZGVsYXkgPSBkZWxheTsKKwls b25nCQkJc2VjczsKKwlpbnQJCQkJbWljcm9zZWNzOworCVRpbWVzdGFtcFR6 CQl0aW1lciA9IEdldEN1cnJlbnRUaW1lc3RhbXAoKTsKKwlUdXBPdXRwdXRT dGF0ZQkqdHN0YXRlOworCVR1cGxlRGVzYwkJdHVwZGVzYzsKKwljaGFyCQkg ICAqdmFsdWUgPSAiZiI7CisKKwlpZiAoZGVsYXkgPiAwKQorCQlsYXRjaF9l dmVudHMgPSBXTF9MQVRDSF9TRVQgfCBXTF9USU1FT1VUIHwgV0xfUE9TVE1B U1RFUl9ERUFUSDsKKwllbHNlCisJCWxhdGNoX2V2ZW50cyA9IFdMX0xBVENI X1NFVCB8IFdMX1BPU1RNQVNURVJfREVBVEg7CisKKwlXTE93bkxhdGNoKHRy Z19sc24pOworCisJZm9yICg7OykKKwl7CisJCWN1cl9sc24gPSBHZXRYTG9n UmVwbGF5UmVjUHRyKE5VTEwpOworCisJCS8qIElmIExTTiBoYWQgYmVlbiBS ZXBsYXllZCAqLworCQlpZiAodHJnX2xzbiA8PSBjdXJfbHNuKQorCQkJYnJl YWs7CisKKwkJLyogSWYgdGhlIHBvc3RtYXN0ZXIgZGllcywgZmluaXNoIGlt bWVkaWF0ZWx5ICovCisJCWlmICghUG9zdG1hc3RlcklzQWxpdmUoKSkKKwkJ CWJyZWFrOworCisJCS8qIElmIERlbGF5IHRpbWUgaXMgb3ZlciAqLworCQlp ZiAobGF0Y2hfZXZlbnRzICYgV0xfVElNRU9VVCkKKwkJeworCQkJaWYgKFRp bWVzdGFtcERpZmZlcmVuY2VFeGNlZWRzKHRpbWVyLEdldEN1cnJlbnRUaW1l c3RhbXAoKSxkZWxheSkpCisJCQkJYnJlYWs7CisJCQlUaW1lc3RhbXBEaWZm ZXJlbmNlKHRpbWVyLEdldEN1cnJlbnRUaW1lc3RhbXAoKSwmc2VjcywgJm1p Y3Jvc2Vjcyk7CisJCQl0ZGVsYXkgPSBkZWxheSAtIChzZWNzKjEwMDAgKyBt aWNyb3NlY3MvMTAwMCk7CisJCX0KKworCQlNeVBnWGFjdC0+eG1pbiA9IElu dmFsaWRUcmFuc2FjdGlvbklkOworCQlXYWl0TGF0Y2goJnN0YXRlLT5sX2Fy cltNeUJhY2tlbmRJZF0ubGF0Y2gsIGxhdGNoX2V2ZW50cywgdGRlbGF5LCBX QUlUX0VWRU5UX0NMSUVOVF9SRUFEKTsKKwkJUmVzZXRMYXRjaCgmc3RhdGUt PmxfYXJyW015QmFja2VuZElkXS5sYXRjaCk7CisKKwkJLyogQ0hFQ0tfRk9S X0lOVEVSUlVQVFMgaWYgdGhleSBjb21lcyB0aGVuIGRpc293biBsYXRjaCBj dXJyZW50ICovCisJCWlmIChJbnRlcnJ1cHRQZW5kaW5nKQorCQl7CisJCQlX TERpc293bkxhdGNoKCk7CisJCQlQcm9jZXNzSW50ZXJydXB0cygpOworCQl9 CisKKwl9CisKKwlXTERpc293bkxhdGNoKCk7CisKKwlpZiAodHJnX2xzbiA+ IGN1cl9sc24pCisJCWVsb2coTk9USUNFLCJMU04gaXMgbm90IHJlYWNoZWQu IFRyeSB0byBpbmNyZWFzZSB3YWl0IHRpbWUuIik7CisJZWxzZQorCQl2YWx1 ZSA9ICJ0IjsKKworCS8qIG5lZWQgYSB0dXBsZSBkZXNjcmlwdG9yIHJlcHJl c2VudGluZyBhIHNpbmdsZSBURVhUIGNvbHVtbiAqLworCXR1cGRlc2MgPSBD cmVhdGVUZW1wbGF0ZVR1cGxlRGVzYygxLCBmYWxzZSk7CisJVHVwbGVEZXNj SW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAxLCAiTFNOIHJlYWNo ZWQiLCBURVhUT0lELCAtMSwgMCk7CisJLyogcHJlcGFyZSBmb3IgcHJvamVj dGlvbiBvZiB0dXBsZXMgKi8KKwl0c3RhdGUgPSBiZWdpbl90dXBfb3V0cHV0 X3R1cGRlc2MoZGVzdCwgdHVwZGVzYyk7CisJLyogU2VuZCBpdCAqLworCWRv X3RleHRfb3V0cHV0X29uZWxpbmUodHN0YXRlLCB2YWx1ZSk7CisJZW5kX3R1 cF9vdXRwdXQodHN0YXRlKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55Cmlu ZGV4IDRjODNhNjMuLmExNDliNTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQpAQCAtMjc1LDcgKzI3NSw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJz aXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBO b2RlICpxdWVyeSk7CiAJCVNlY0xhYmVsU3RtdCBTZWxlY3RTdG10IFRyYW5z YWN0aW9uU3RtdCBUcnVuY2F0ZVN0bXQKIAkJVW5saXN0ZW5TdG10IFVwZGF0 ZVN0bXQgVmFjdXVtU3RtdAogCQlWYXJpYWJsZVJlc2V0U3RtdCBWYXJpYWJs ZVNldFN0bXQgVmFyaWFibGVTaG93U3RtdAotCQlWaWV3U3RtdCBDaGVja1Bv aW50U3RtdCBDcmVhdGVDb252ZXJzaW9uU3RtdAorCQlWaWV3U3RtdCBXYWl0 TFNOU3RtdCBDaGVja1BvaW50U3RtdCBDcmVhdGVDb252ZXJzaW9uU3RtdAog CQlEZWFsbG9jYXRlU3RtdCBQcmVwYXJlU3RtdCBFeGVjdXRlU3RtdAogCQlE cm9wT3duZWRTdG10IFJlYXNzaWduT3duZWRTdG10CiAJCUFsdGVyVFNDb25m aWd1cmF0aW9uU3RtdCBBbHRlclRTRGljdGlvbmFyeVN0bXQKQEAgLTMyMiw3 ICszMjIsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxl Y3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkp OwogJXR5cGUgPGxpc3Q+CU9wdFNjaGVtYUVsdExpc3QKIAogJXR5cGUgPGJv b2xlYW4+IFRyaWdnZXJGb3JTcGVjIFRyaWdnZXJGb3JUeXBlCi0ldHlwZSA8 aXZhbD4JVHJpZ2dlckFjdGlvblRpbWUKKyV0eXBlIDxpdmFsPglUcmlnZ2Vy QWN0aW9uVGltZSBXYWl0RGVsYXkKICV0eXBlIDxsaXN0PglUcmlnZ2VyRXZl bnRzIFRyaWdnZXJPbmVFdmVudAogJXR5cGUgPHZhbHVlPglUcmlnZ2VyRnVu Y0FyZwogJXR5cGUgPG5vZGU+CVRyaWdnZXJXaGVuCkBAIC02MzYsNyArNjM2 LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlI QU5ETEVSIEhBVklORyBIRUFERVJfUCBIT0xEIEhPVVJfUAogCiAJSURFTlRJ VFlfUCBJRl9QIElMSUtFIElNTUVESUFURSBJTU1VVEFCTEUgSU1QTElDSVRf UCBJTVBPUlRfUCBJTl9QCi0JSU5DTFVESU5HIElOQ1JFTUVOVCBJTkRFWCBJ TkRFWEVTIElOSEVSSVQgSU5IRVJJVFMgSU5JVElBTExZIElOTElORV9QCisJ SU5DTFVESU5HIElOQ1JFTUVOVCBJTkRFWCBJTkRFWEVTIElORklOSVRFTFkg SU5IRVJJVCBJTkhFUklUUyBJTklUSUFMTFkgSU5MSU5FX1AKIAlJTk5FUl9Q IElOT1VUIElOUFVUX1AgSU5TRU5TSVRJVkUgSU5TRVJUIElOU1RFQUQgSU5U X1AgSU5URUdFUgogCUlOVEVSU0VDVCBJTlRFUlZBTCBJTlRPIElOVk9LRVIg SVMgSVNOVUxMIElTT0xBVElPTgogCkBAIC02NzUsNyArNjc1LDcgQEAgc3Rh dGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5h bWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlTVUJTQ1JJUFRJ T04gU1VCU1RSSU5HIFNZTU1FVFJJQyBTWVNJRCBTWVNURU1fUAogCiAJVEFC TEUgVEFCTEVTIFRBQkxFU0FNUExFIFRBQkxFU1BBQ0UgVEVNUCBURU1QTEFU RSBURU1QT1JBUlkgVEVYVF9QIFRIRU4KLQlUSU1FIFRJTUVTVEFNUCBUTyBU UkFJTElORyBUUkFOU0FDVElPTiBUUkFOU0ZPUk0gVFJFQVQgVFJJR0dFUiBU UklNIFRSVUVfUAorCVRJTUUgVElNRU9VVCBUSU1FU1RBTVAgVE8gVFJBSUxJ TkcgVFJBTlNBQ1RJT04gVFJBTlNGT1JNIFRSRUFUIFRSSUdHRVIgVFJJTSBU UlVFX1AKIAlUUlVOQ0FURSBUUlVTVEVEIFRZUEVfUCBUWVBFU19QCiAKIAlV TkJPVU5ERUQgVU5DT01NSVRURUQgVU5FTkNSWVBURUQgVU5JT04gVU5JUVVF IFVOS05PV04gVU5MSVNURU4gVU5MT0dHRUQKQEAgLTY4NCw3ICs2ODQsOCBA QCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAq cmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCVZBQ1VV TSBWQUxJRCBWQUxJREFURSBWQUxJREFUT1IgVkFMVUVfUCBWQUxVRVMgVkFS Q0hBUiBWQVJJQURJQyBWQVJZSU5HCiAJVkVSQk9TRSBWRVJTSU9OX1AgVklF VyBWSUVXUyBWT0xBVElMRQogCi0JV0hFTiBXSEVSRSBXSElURVNQQUNFX1Ag V0lORE9XIFdJVEggV0lUSElOIFdJVEhPVVQgV09SSyBXUkFQUEVSIFdSSVRF CisJV0FJVExTTiBXSEVOIFdIRVJFIFdISVRFU1BBQ0VfUCBXSU5ET1cKKwlX SVRIIFdJVEhJTiBXSVRIT1VUIFdPUksgV1JBUFBFUiBXUklURQogCiAJWE1M X1AgWE1MQVRUUklCVVRFUyBYTUxDT05DQVQgWE1MRUxFTUVOVCBYTUxFWElT VFMgWE1MRk9SRVNUIFhNTE5BTUVTUEFDRVMKIAlYTUxQQVJTRSBYTUxQSSBY TUxST09UIFhNTFNFUklBTElaRSBYTUxUQUJMRQpAQCAtOTM1LDYgKzkzNiw3 IEBAIHN0bXQgOgogCQkJfCBWYXJpYWJsZVNldFN0bXQKIAkJCXwgVmFyaWFi bGVTaG93U3RtdAogCQkJfCBWaWV3U3RtdAorCQkJfCBXYWl0TFNOU3RtdAog CQkJfCAvKkVNUFRZKi8KIAkJCQl7ICQkID0gTlVMTDsgfQogCQk7CkBAIC0x MzgzMSw2ICsxMzgzMyw0NCBAQCBmcmFtZV9ib3VuZDoKIAkJCQl9CiAJCTsK IAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICoJ CVFVRVJZOgorICoJCQkJV0FJVExTTiA8TFNOPiBjYW4gYXBwZWFyIGFzIGEg cXVlcnktbGV2ZWwgY29tbWFuZAorICoKKyAqCisgKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCisKK1dhaXRMU05TdG10OgorCQkJV0FJVExT TiBTY29uc3QKKwkJCQl7CisJCQkJCVdhaXRMU05TdG10ICpuID0gbWFrZU5v ZGUoV2FpdExTTlN0bXQpOworCQkJCQluLT5sc24gPSAkMjsKKwkJCQkJbi0+ ZGVsYXkgPSAwOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CisJCQl8 IFdBSVRMU04gU2NvbnN0IFRJTUVPVVQgSWNvbnN0CisJCQkJeworCQkJCQlX YWl0TFNOU3RtdCAqbiA9IG1ha2VOb2RlKFdhaXRMU05TdG10KTsKKwkJCQkJ bi0+bHNuID0gJDI7CisJCQkJCW4tPmRlbGF5ID0gJDQ7CisJCQkJCSQkID0g KE5vZGUgKiluOworCQkJCX0KKwkJCXwgV0FJVExTTiBTY29uc3QgSU5GSU5J VEVMWQorCQkJCXsKKwkJCQkJV2FpdExTTlN0bXQgKm4gPSBtYWtlTm9kZShX YWl0TFNOU3RtdCk7CisJCQkJCW4tPmxzbiA9ICQyOworCQkJCQluLT5kZWxh eSA9IDA7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KKwkJCXwgV0FJ VExTTiBTY29uc3QgTk9XQUlUCisJCQkJeworCQkJCQlXYWl0TFNOU3RtdCAq biA9IG1ha2VOb2RlKFdhaXRMU05TdG10KTsKKwkJCQkJbi0+bHNuID0gJDI7 CisJCQkJCW4tPmRlbGF5ID0gMTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJ CQkJfQorCQk7CiAKIC8qCiAgKiBTdXBwb3J0aW5nIG5vbnRlcm1pbmFscyBm b3IgZXhwcmVzc2lvbnMuCkBAIC0xNDcwNSw2ICsxNDc0NSw3IEBAIHVucmVz ZXJ2ZWRfa2V5d29yZDoKIAkJCXwgSU5DUkVNRU5UCiAJCQl8IElOREVYCiAJ CQl8IElOREVYRVMKKwkJCXwgSU5GSU5JVEVMWQogCQkJfCBJTkhFUklUCiAJ CQl8IElOSEVSSVRTCiAJCQl8IElOTElORV9QCkBAIC0xNDg0Myw2ICsxNDg4 NCw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgVEVNUExBVEUKIAkJ CXwgVEVNUE9SQVJZCiAJCQl8IFRFWFRfUAorCQkJfCBUSU1FT1VUCiAJCQl8 IFRSQU5TQUNUSU9OCiAJCQl8IFRSQU5TRk9STQogCQkJfCBUUklHR0VSCkBA IC0xNDg2OCw2ICsxNDkxMCw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJ CXwgVklFVwogCQkJfCBWSUVXUwogCQkJfCBWT0xBVElMRQorCQkJfCBXQUlU TFNOCiAJCQl8IFdISVRFU1BBQ0VfUAogCQkJfCBXSVRISU4KIAkJCXwgV0lU SE9VVApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvaXBj aS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvaXBjaS5jCmluZGV4IDJk MWVkMTQuLjkzMjEzNmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvaXBjL2lwY2kuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9p cGNpLmMKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJhY2Nlc3Mvc3Vi dHJhbnMuaCIKICNpbmNsdWRlICJhY2Nlc3MvdHdvcGhhc2UuaCIKICNpbmNs dWRlICJjb21tYW5kcy9hc3luYy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3dh aXRsc24uaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJw Z3N0YXQuaCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL2F1dG92YWN1dW0uaCIK QEAgLTI3MSw2ICsyNzIsMTEgQEAgQ3JlYXRlU2hhcmVkTWVtb3J5QW5kU2Vt YXBob3Jlcyhib29sIG1ha2VQcml2YXRlLCBpbnQgcG9ydCkKIAlBc3luY1No bWVtSW5pdCgpOwogCUJhY2tlbmRSYW5kb21TaG1lbUluaXQoKTsKIAorCS8q CisJICogSW5pdCBhcnJheSBvZiBMYXRjaGVzICBpbiBTSE1FTSBmb3IgV0FJ VExTTgorCSAqLworCVdhaXRMU05TaG1lbUluaXQoKTsKKwogI2lmZGVmIEVY RUNfQkFDS0VORAogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rj b3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKaW5k ZXggODJhNzA3YS4uNTQ0YmFlYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5 LmMKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJjb21tYW5kcy91c2Vy LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdmFjdXVtLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvdmlldy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3dhaXRsc24u aCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwYXJzZXIv cGFyc2VfdXRpbGNtZC5oIgogI2luY2x1ZGUgInBvc3RtYXN0ZXIvYmd3cml0 ZXIuaCIKQEAgLTkyMyw2ICs5MjQsMjAgQEAgc3RhbmRhcmRfUHJvY2Vzc1V0 aWxpdHkoUGxhbm5lZFN0bXQgKnBzdG10LAogCQkJCWJyZWFrOwogCQkJfQog CisJCWNhc2UgVF9XYWl0TFNOU3RtdDoKKwkJCXsKKwkJCQlXYWl0TFNOU3Rt dCAqc3RtdCA9IChXYWl0TFNOU3RtdCAqKSBwYXJzZXRyZWU7CisJCQkJaWYg KCFSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKKwkJCQl7CisJCQkJCWVyZXBvcnQo RVJST1IsKGVycmNvZGUoRVJSQ09ERV9SRUFEX09OTFlfU1FMX1RSQU5TQUNU SU9OKSwKKwkJCQkJCQllcnJtc2coImNhbm5vdCBleGVjdXRlICVzIG5vdCBk dXJpbmcgcmVjb3ZlcnkiLAorCQkJCQkJCSJXYWl0TFNOIikpKTsKKwkJCQl9 CisJCQkJZWxzZQorCQkJCQlXYWl0TFNOVXRpbGl0eShzdG10LT5sc24sIHN0 bXQtPmRlbGF5LCBkZXN0KTsKKwkJCX0KKwkJCWJyZWFrOworCiAJCWRlZmF1 bHQ6CiAJCQkvKiBBbGwgb3RoZXIgc3RhdGVtZW50IHR5cGVzIGhhdmUgZXZl bnQgdHJpZ2dlciBzdXBwb3J0ICovCiAJCQlQcm9jZXNzVXRpbGl0eVNsb3co cHN0YXRlLCBwc3RtdCwgcXVlcnlTdHJpbmcsCkBAIC0yNDgxLDYgKzI0OTYs MTAgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl0 YWcgPSAiTk9USUZZIjsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9XYWl0TFNO U3RtdDoKKwkJCXRhZyA9ICJXQUlUTFNOIjsKKwkJCWJyZWFrOworCiAJCWNh c2UgVF9MaXN0ZW5TdG10OgogCQkJdGFnID0gIkxJU1RFTiI7CiAJCQlicmVh azsKQEAgLTMxMDQsNiArMzEyMywxMCBAQCBHZXRDb21tYW5kTG9nTGV2ZWwo Tm9kZSAqcGFyc2V0cmVlKQogCQkJbGV2ID0gTE9HU1RNVF9BTEw7CiAJCQli cmVhazsKIAorCQljYXNlIFRfV2FpdExTTlN0bXQ6CisJCQlsZXYgPSBMT0dT VE1UX0FMTDsKKwkJCWJyZWFrOworCiAJCWNhc2UgVF9MaXN0ZW5TdG10Ogog CQkJbGV2ID0gTE9HU1RNVF9BTEw7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NvbW1hbmRzL3dhaXRsc24uaCBiL3NyYy9pbmNsdWRl L2NvbW1hbmRzL3dhaXRsc24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi40OWNmOWU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvd2FpdGxzbi5oCkBAIC0wLDAgKzEsMjIgQEAKKy8q LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHdhaXRsc24u aAorICoJICBXYWl0TFNOIG5vdGlmaWNhdGlvbjogV0FJVExTTgorICoKKyAq IFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDE2LCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAyMDE2LCBSZWdlbnRzIG9mIFBvc3RncmVzUFJPCisgKgorICog c3JjL2luY2x1ZGUvY29tbWFuZHMvd2FpdGxzbi5oCisgKgorICotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYgV0FJVExTTl9I CisjZGVmaW5lIFdBSVRMU05fSAorI2luY2x1ZGUgInRjb3AvZGVzdC5oIgor CitleHRlcm4gdm9pZCBXYWl0TFNOVXRpbGl0eShjb25zdCBjaGFyICpsc24s IGNvbnN0IGludCBkZWxheSwgRGVzdFJlY2VpdmVyICpkZXN0KTsKK2V4dGVy biB2b2lkIFdhaXRMU05TaG1lbUluaXQodm9pZCk7CitleHRlcm4gdm9pZCBX YWl0TFNOU2V0TGF0Y2goWExvZ1JlY1B0ciBjdXJfbHNuKTsKK2V4dGVybiBY TG9nUmVjUHRyIEdldE1pbldhaXRMU04odm9pZCk7CisKKyNlbmRpZiAgIC8q IFdBSVRMU05fSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMv bm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL25vZGVzLmgKaW5kZXggZmZl ZWI0OS4uMjAxNjc3YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMv bm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9ub2Rlcy5oCkBAIC00 NzksNiArNDc5LDcgQEAgdHlwZWRlZiBlbnVtIE5vZGVUYWcKIAlUX0Ryb3BS ZXBsaWNhdGlvblNsb3RDbWQsCiAJVF9TdGFydFJlcGxpY2F0aW9uQ21kLAog CVRfVGltZUxpbmVIaXN0b3J5Q21kLAorCVRfV2FpdExTTlN0bXQsCiAJVF9T UUxDbWQsCiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CmluZGV4IDczMmU1ZDYuLjU1ZmZkYTggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmgKQEAgLTM0NDYsNCArMzQ0NiwxNiBAQCB0eXBlZGVm IHN0cnVjdCBEcm9wU3Vic2NyaXB0aW9uU3RtdAogCURyb3BCZWhhdmlvciBi ZWhhdmlvcjsJCS8qIFJFU1RSSUNUIG9yIENBU0NBREUgYmVoYXZpb3IgKi8K IH0gRHJvcFN1YnNjcmlwdGlvblN0bXQ7CiAKKy8qIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAqCQlXYWl0TFNOIFN0YXRlbWVudAorICogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBXYWl0TFNOU3Rt dAoreworCU5vZGVUYWcJCXR5cGU7CisJY2hhcgkgICAqbHNuOwkJCS8qIFRh cmFnZXQgTFNOIHRvIHdhaXQgZm9yICovCisJaW50CQkJZGVsYXk7CQkJLyog RGVsYXkgdG8gd2FpdCBmb3IgTFNOKi8KKwlib29sCQlub3dhaXQ7CQkJLyog Tm8gd2FpdCBmb3IgTFNOIGp1c3QgcmVzdWx0Ki8KK30gV2FpdExTTlN0bXQ7 CisKICNlbmRpZgkJCQkJCQkvKiBQQVJTRU5PREVTX0ggKi8KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaAppbmRleCBmNTBlNDVlLi42MThjZGIyIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC0xOTgsNiArMTk4LDcgQEAg UEdfS0VZV09SRCgiaW5jbHVkaW5nIiwgSU5DTFVESU5HLCBVTlJFU0VSVkVE X0tFWVdPUkQpCiBQR19LRVlXT1JEKCJpbmNyZW1lbnQiLCBJTkNSRU1FTlQs IFVOUkVTRVJWRURfS0VZV09SRCkKIFBHX0tFWVdPUkQoImluZGV4IiwgSU5E RVgsIFVOUkVTRVJWRURfS0VZV09SRCkKIFBHX0tFWVdPUkQoImluZGV4ZXMi LCBJTkRFWEVTLCBVTlJFU0VSVkVEX0tFWVdPUkQpCitQR19LRVlXT1JEKCJp bmZpbml0ZWx5IiwgSU5GSU5JVEVMWSwgVU5SRVNFUlZFRF9LRVlXT1JEKQog UEdfS0VZV09SRCgiaW5oZXJpdCIsIElOSEVSSVQsIFVOUkVTRVJWRURfS0VZ V09SRCkKIFBHX0tFWVdPUkQoImluaGVyaXRzIiwgSU5IRVJJVFMsIFVOUkVT RVJWRURfS0VZV09SRCkKIFBHX0tFWVdPUkQoImluaXRpYWxseSIsIElOSVRJ QUxMWSwgUkVTRVJWRURfS0VZV09SRCkKQEAgLTM5NCw2ICszOTUsNyBAQCBQ R19LRVlXT1JEKCJ0ZW1wb3JhcnkiLCBURU1QT1JBUlksIFVOUkVTRVJWRURf S0VZV09SRCkKIFBHX0tFWVdPUkQoInRleHQiLCBURVhUX1AsIFVOUkVTRVJW RURfS0VZV09SRCkKIFBHX0tFWVdPUkQoInRoZW4iLCBUSEVOLCBSRVNFUlZF RF9LRVlXT1JEKQogUEdfS0VZV09SRCgidGltZSIsIFRJTUUsIENPTF9OQU1F X0tFWVdPUkQpCitQR19LRVlXT1JEKCJ0aW1lb3V0IiwgVElNRU9VVCwgVU5S RVNFUlZFRF9LRVlXT1JEKQogUEdfS0VZV09SRCgidGltZXN0YW1wIiwgVElN RVNUQU1QLCBDT0xfTkFNRV9LRVlXT1JEKQogUEdfS0VZV09SRCgidG8iLCBU TywgUkVTRVJWRURfS0VZV09SRCkKIFBHX0tFWVdPUkQoInRyYWlsaW5nIiwg VFJBSUxJTkcsIFJFU0VSVkVEX0tFWVdPUkQpCkBAIC00MzMsNiArNDM1LDcg QEAgUEdfS0VZV09SRCgidmVyc2lvbiIsIFZFUlNJT05fUCwgVU5SRVNFUlZF RF9LRVlXT1JEKQogUEdfS0VZV09SRCgidmlldyIsIFZJRVcsIFVOUkVTRVJW RURfS0VZV09SRCkKIFBHX0tFWVdPUkQoInZpZXdzIiwgVklFV1MsIFVOUkVT RVJWRURfS0VZV09SRCkKIFBHX0tFWVdPUkQoInZvbGF0aWxlIiwgVk9MQVRJ TEUsIFVOUkVTRVJWRURfS0VZV09SRCkKK1BHX0tFWVdPUkQoIndhaXRsc24i LCBXQUlUTFNOLCBVTlJFU0VSVkVEX0tFWVdPUkQpCiBQR19LRVlXT1JEKCJ3 aGVuIiwgV0hFTiwgUkVTRVJWRURfS0VZV09SRCkKIFBHX0tFWVdPUkQoIndo ZXJlIiwgV0hFUkUsIFJFU0VSVkVEX0tFWVdPUkQpCiBQR19LRVlXT1JEKCJ3 aGl0ZXNwYWNlIiwgV0hJVEVTUEFDRV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQp Cg== --=_bd7e705e17028d54bbae8946c7b69820 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 --=_bd7e705e17028d54bbae8946c7b69820--