Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1x543w-007b71-2h for pgsql-hackers@arkaria.postgresql.org; Fri, 11 Sep 2026 16:25:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1x543u-00GI02-38 for pgsql-hackers@arkaria.postgresql.org; Fri, 11 Sep 2026 16:25:14 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1x543u-00GHzN-1j for pgsql-hackers@lists.postgresql.org; Fri, 11 Sep 2026 16:25:14 +0000 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1x543r-00000005AF6-0xQj for pgsql-hackers@lists.postgresql.org; Fri, 11 Sep 2026 16:25:12 +0000 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-49e625d5a2fso6658035e9.1 for ; Fri, 11 Sep 2026 09:25:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; t=1789143909; x=1789748709; darn=lists.postgresql.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:content-type:from:to:cc :subject:date:message-id:reply-to:content-type; bh=Jyw/yqK7XE6jPptY7bzw+u2Pt3b6mh8mHlEvqDD9XLM=; b=fsFNc3T3zzxHgo9iO1nOxVp/0EcyvhV0lohrEc7TsB7M5v7mbP5wjDcFbjr3x2mpHB qg+z6nhtwti8UD/OeZ3SZzMBcu5bUxOwpOkl5V8b2JlyfTIY8tIZVJs3cbZID6Rbt8qc KmjmihJ+TQqE2SkSJdBtBPeSDe87w+9kM7gt4D7wz51SExchCTQ/0O1naIZr8IcsoRcB +XubweCMM3fHk38SlT30wRJFo45Abbz1Nz0/YDK28AkxpW7mhjvAY52cHW84GxWEv64f ak5YoZDe291M7zLNfm/xQTfRJpB/IMmfiDanqwJeGvGP7ldcChMoTCAw1unI5o7Edm7Q sGQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789143909; x=1789748709; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:content-type:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Jyw/yqK7XE6jPptY7bzw+u2Pt3b6mh8mHlEvqDD9XLM=; b=k6g8m5CEYFK2Y9a77BhhinDQDZzHEdB1qVMws/k9VHyAiGqCNhI9/TgUyHF99XgPtj Hs/Hzei0fCjnaJrIUTIr6mPT2ZsxOlLwx9bVwP2pFXxRnRlf/nTZXfSyPd1K4ykEBG4Y k7gkk0nLK9uL7iItQSR4AzVwohaHIPEywtLMlz+RYA0TLd6MQsOzmJRS+OemAhBCuGKj kVBCPq66DesdWdsnoau0MICnHYudrB+ptCF27wPBpoery5+kbXyKkP7H/NFL89qDHiLV D4gNrRsFVf/HHCii//c5XuHWXZuBLxbPtjvhQPctrbh9ukdc02BdussCmsDxji3kQTzj eygQ== X-Forwarded-Encrypted: i=1; AKwUvBwcdw20HMfrT43Y6L0emZlXQGY/8hgqD+PH4IfZ3sxjlZu6KAfx2CSsQjYGuIynBPWN052DGUzzYIqimGKM@lists.postgresql.org X-Gm-Message-State: AFuF++maoD8bGnjgKx1hvtlEsAcgFfa206jUf5NhskE0Vl6pCqkDpzok 40Tbul5S4/YUPAfmZMpZP/RODnGbfAsg8ddgajubUakvG0HtzBGaiGFWFycsSQ5+G4bfkX8VPMI 3JfPvfg== X-Gm-Gg: AYBFou2s3Jme1EyPRqlctrf09XyCvnjURZXC6DnhvF08Ae7pvxM8yeB+XiHVFZyvjtL 06mTWiVKhxRmyU21MhF+pY+doL161zyhiI3R4HU+Y3Ly+5ci7oDqmPnJpmPp+rOhvmcRK8SPOr4 Lc2gRgJf0HZqMcSPGqDcrXY/lCX/FYCJ74KCuXvURa6WN6MOkXgQopPQVKNmrRLhe90yjx5q6pk OPLcI5GAWEKSD4qqbwezpgIf61ZhHRJZfGMIrUScl4XEzufWzug0HpNelPpPQr4R66lzNcwvb5b Q4hchxTXfpqXN+KN/LhtDq1xmX+8fq6WwhpWoeypA+7kAj7QqbjrZmffUAO6wL8dcx2TMSFEne7 6rlJwKhPikLOIUXqkv1idXe2k82Styv6jx6zfxYELdhQyJwUcmTAN1TfunwdAdRFviPgO21R+LY pMb1hOam3kt8mPw/gXOhvASlTRm6ZELpeOMRAVmSULp+OCd3AWClGaPfxNTA6Ra0Q6l3wbPcvSL 0LUfd7Mz1fsc0dGSu8xHtzSv0EDZ/FOFZYe2CWaaezMyGWmip+mqkjKM0BreqP0ZoWC5c5XBq/+ H1DGtfB5V/AVCVU= X-Received: by 2002:a05:600d:8644:20b0:49a:77c1:d246 with SMTP id 5b1f17b1804b1-49e61992411mr44683075e9.15.1789143908774; Fri, 11 Sep 2026 09:25:08 -0700 (PDT) Received: from [192.168.88.235] ([163.116.177.177]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49e62225628sm56863995e9.3.2026.09.11.09.25.06 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 11 Sep 2026 09:25:07 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------Kn4ijPnGks4oesgCcaboGxgi" Message-ID: <985de9f0-cbb6-4235-a6cd-32242f74e1f3@enterprisedb.com> Date: Fri, 11 Sep 2026 17:25:06 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Possible race condition in pg_basebackup To: Andrey Borodin Cc: =?UTF-8?Q?=C3=81lvaro_Herrera?= , pgsql-hackers mailing list References: <5516902D-65A5-4C61-8568-E32F111C89EF@yandex-team.ru> <99DF8255-F6B8-4B10-85A2-B6984B3DD16C@yandex-team.ru> <999caa0e-d015-42da-9b79-001087e719b8@enterprisedb.com> <0cab2102-4786-416a-ae50-b606a495d01b@enterprisedb.com> <801646A4-65A3-4DF1-84CD-7BF836E178BD@yandex-team.ru> Content-Language: en-US From: Nick Ivanov In-Reply-To: <801646A4-65A3-4DF1-84CD-7BF836E178BD@yandex-team.ru> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------Kn4ijPnGks4oesgCcaboGxgi Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hello Andrey, Thanks for your comments and for your patience -- I learn Postgres code as I go. On 10/09/2026 09:01, Andrey Borodin wrote: > I think the client-side fix is worth backpatching, even if this broader > work stays on HEAD. I agree, and I'm attaching a separate patch for that. It's only been tested against HEAD at the moment, but if it looks acceptable, I'll go ahead and test it all the way back to v15. It also makes the current documentation correct in that the slot is created _before_ the backup, and does appear to be an easier way to resolve the race condition; both of these points you raised in [1]. > One build note: my build warned about the missing declaration of > BackupCtlShmemCallbacks. xlogbackup.c needs storage/subsystems.h for it. I followed the suit of slot.c where ReplicationSlotsShmemCallbacks is also undeclared, generates a similar warning, and seems to be acceptable (for whatever reason). I'm happy to deviate from the pattern I am reusing if that's the advice. I'm not addressing your other comments here since they may become moot if the client-side patch is accepted. Cheers Nick [1] https://www.postgresql.org/message-id/99DF8255-F6B8-4B10-85A2-B6984B3DD16C@yandex-team.ru --------------Kn4ijPnGks4oesgCcaboGxgi Content-Type: text/plain; charset=UTF-8; name="v1-0002-pg_basebackup-to-create-replication-slot-early.patch" Content-Disposition: attachment; filename*0="v1-0002-pg_basebackup-to-create-replication-slot-early.patch" Content-Transfer-Encoding: base64 RnJvbSBjYzg3ZmU1ZTA1M2MwNjNjOThiOTVhYmMzZDc2YzQzMmU4NDhkNjQ5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWNrIEl2YW5vdiA8bmljay5pdmFub3ZAZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogRnJpLCAxMSBTZXAgMjAyNiAxNToxODowMyArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggdjFdIHBnX2Jhc2ViYWNrdXAgdG8gY3JlYXRlIHJlcGxpY2F0aW9uIHNs b3QgZWFybHkKClRyeSB0byBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGlmIHJlcXVl c3RlZCwgYmVmb3JlIHJlcXVlc3RpbmcgYSBjaGVja3BvaW50LiBUaGlzIGFkZHJlc3NlcyB0 aGUgV0FMIHJlY3ljbGUgcmFjZSB3aGVuIG11bHRpcGxlIGJhc2ViYWNrdXBzIGFyZSBleGVj dXRlZCBjb25jdXJyZW50bHkuCgpTdWdnZXN0ZWQtYnk6IEFuZHJleSBCb3JvZGluIDx4NG1t bUB5YW5kZXgtdGVhbS5ydT4KQmFja3BhdGNoLXRocm91Z2g6IDE1Ci0tLQogc3JjL2Jpbi9w Z19iYXNlYmFja3VwL3BnX2Jhc2ViYWNrdXAuYyB8IDgxICsrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDM2IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19iYXNlYmFja3Vw LmMgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfYmFzZWJhY2t1cC5jCmluZGV4IGMzYjg3 YTE5ZTc2Li4zNWQ4OTY5NTUwOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3Vw L3BnX2Jhc2ViYWNrdXAuYworKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfYmFzZWJh Y2t1cC5jCkBAIC02MTMsNyArNjEzLDggQEAgTG9nU3RyZWFtZXJNYWluKGxvZ3N0cmVhbWVy X3BhcmFtICpwYXJhbSkKICAqIHN0cmVhbSB0aGUgbG9nZmlsZSBpbiBwYXJhbGxlbCB3aXRo IHRoZSBiYWNrdXBzLgogICovCiBzdGF0aWMgdm9pZAotU3RhcnRMb2dTdHJlYW1lcihjaGFy ICpzdGFydHBvcywgdWludDMyIHRpbWVsaW5lLCBjaGFyICpzeXNpZGVudGlmaWVyLAorU3Rh cnRMb2dTdHJlYW1lcihQR2Nvbm4gKndhbGNvbm4sIGNoYXIgKnN0YXJ0cG9zLCB1aW50MzIg dGltZWxpbmUsCisJCQkJIGNoYXIgKnN5c2lkZW50aWZpZXIsCiAJCQkJIHBnX2NvbXByZXNz X2FsZ29yaXRobSB3YWxfY29tcHJlc3NfYWxnb3JpdGhtLAogCQkJCSBpbnQgd2FsX2NvbXBy ZXNzX2xldmVsKQogewpAQCAtNjI1LDYgKzYyNiw3IEBAIFN0YXJ0TG9nU3RyZWFtZXIoY2hh ciAqc3RhcnRwb3MsIHVpbnQzMiB0aW1lbGluZSwgY2hhciAqc3lzaWRlbnRpZmllciwKIAlw YXJhbS0+c3lzaWRlbnRpZmllciA9IHN5c2lkZW50aWZpZXI7CiAJcGFyYW0tPndhbF9jb21w cmVzc19hbGdvcml0aG0gPSB3YWxfY29tcHJlc3NfYWxnb3JpdGhtOwogCXBhcmFtLT53YWxf Y29tcHJlc3NfbGV2ZWwgPSB3YWxfY29tcHJlc3NfbGV2ZWw7CisJcGFyYW0tPmJnY29ubiA9 IHdhbGNvbm47CiAKIAkvKiBDb252ZXJ0IHRoZSBzdGFydGluZyBwb3NpdGlvbiAqLwogCWlm ICghcGdfcGFyc2VfbHNuKHN0YXJ0cG9zLCAmcGFyYW0tPnN0YXJ0cHRyKSkKQEAgLTYzOSw0 NiArNjQxLDEyIEBAIFN0YXJ0TG9nU3RyZWFtZXIoY2hhciAqc3RhcnRwb3MsIHVpbnQzMiB0 aW1lbGluZSwgY2hhciAqc3lzaWRlbnRpZmllciwKIAkJcGdfZmF0YWwoImNvdWxkIG5vdCBj cmVhdGUgcGlwZSBmb3IgYmFja2dyb3VuZCBwcm9jZXNzOiAlbSIpOwogI2VuZGlmCiAKLQkv KiBHZXQgYSBzZWNvbmQgY29ubmVjdGlvbiAqLwotCXBhcmFtLT5iZ2Nvbm4gPSBHZXRDb25u ZWN0aW9uKCk7Ci0JaWYgKCFwYXJhbS0+Ymdjb25uKQotCQkvKiBFcnJvciBtZXNzYWdlIGFs cmVhZHkgd3JpdHRlbiBpbiBHZXRDb25uZWN0aW9uKCkgKi8KLQkJZXhpdCgxKTsKLQogCS8q IEluIHBvc3QtMTAgY2x1c3RlciwgcGdfeGxvZyBoYXMgYmVlbiByZW5hbWVkIHRvIHBnX3dh bCAqLwogCXNucHJpbnRmKHBhcmFtLT54bG9nLCBzaXplb2YocGFyYW0tPnhsb2cpLCAiJXMv JXMiLAogCQkJIGJhc2VkaXIsCiAJCQkgUFFzZXJ2ZXJWZXJzaW9uKGNvbm4pIDwgTUlOSU1V TV9WRVJTSU9OX0ZPUl9QR19XQUwgPwogCQkJICJwZ194bG9nIiA6ICJwZ193YWwiKTsKIAot CS8qIFRlbXBvcmFyeSByZXBsaWNhdGlvbiBzbG90cyBhcmUgb25seSBzdXBwb3J0ZWQgaW4g MTAgYW5kIG5ld2VyICovCi0JaWYgKFBRc2VydmVyVmVyc2lvbihjb25uKSA8IE1JTklNVU1f VkVSU0lPTl9GT1JfVEVNUF9TTE9UUykKLQkJdGVtcF9yZXBsaWNhdGlvbl9zbG90ID0gZmFs c2U7Ci0KLQkvKgotCSAqIENyZWF0ZSByZXBsaWNhdGlvbiBzbG90IGlmIHJlcXVlc3RlZAot CSAqLwotCWlmICh0ZW1wX3JlcGxpY2F0aW9uX3Nsb3QgJiYgIXJlcGxpY2F0aW9uX3Nsb3Qp Ci0JCXJlcGxpY2F0aW9uX3Nsb3QgPSBwc3ByaW50ZigicGdfYmFzZWJhY2t1cF8ldSIsCi0J CQkJCQkJCQkodW5zaWduZWQgaW50KSBQUWJhY2tlbmRQSUQocGFyYW0tPmJnY29ubikpOwot CWlmICh0ZW1wX3JlcGxpY2F0aW9uX3Nsb3QgfHwgY3JlYXRlX3Nsb3QpCi0JewotCQlpZiAo IUNyZWF0ZVJlcGxpY2F0aW9uU2xvdChwYXJhbS0+Ymdjb25uLCByZXBsaWNhdGlvbl9zbG90 LCBOVUxMLAotCQkJCQkJCQkgICB0ZW1wX3JlcGxpY2F0aW9uX3Nsb3QsIHRydWUsIHRydWUs IGZhbHNlLAotCQkJCQkJCQkgICBmYWxzZSwgZmFsc2UpKQotCQkJZXhpdCgxKTsKLQotCQlp ZiAodmVyYm9zZSkKLQkJewotCQkJaWYgKHRlbXBfcmVwbGljYXRpb25fc2xvdCkKLQkJCQlw Z19sb2dfaW5mbygiY3JlYXRlZCB0ZW1wb3JhcnkgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIi LAotCQkJCQkJCXJlcGxpY2F0aW9uX3Nsb3QpOwotCQkJZWxzZQotCQkJCXBnX2xvZ19pbmZv KCJjcmVhdGVkIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIiwKLQkJCQkJCQlyZXBsaWNhdGlv bl9zbG90KTsKLQkJfQotCX0KLQogCWlmIChmb3JtYXQgPT0gJ3AnKQogCXsKIAkJLyoKQEAg LTE3NTQsNiArMTcyMiw3IEBAIEJhc2VCYWNrdXAoY2hhciAqY29tcHJlc3Npb25fYWxnb3Jp dGhtLCBjaGFyICpjb21wcmVzc2lvbl9kZXRhaWwsCiAJaW50CQkJd3JpdGluZ190b19zdGRv dXQ7CiAJYm9vbAkJdXNlX25ld19vcHRpb25fc3ludGF4ID0gZmFsc2U7CiAJUFFFeHBCdWZm ZXJEYXRhIGJ1ZjsKKwlQR2Nvbm4JICAgKndhbGNvbm4gPSBOVUxMOwogCiAJQXNzZXJ0KGNv bm4gIT0gTlVMTCk7CiAJaW5pdFBRRXhwQnVmZmVyKCZidWYpOwpAQCAtMTk3MCw2ICsxOTM5 LDQ2IEBAIEJhc2VCYWNrdXAoY2hhciAqY29tcHJlc3Npb25fYWxnb3JpdGhtLCBjaGFyICpj b21wcmVzc2lvbl9kZXRhaWwsCiAJCQkJCQkJCQkgIGNvbXByZXNzaW9uX2RldGFpbCk7CiAJ fQogCisJLyogSWYgd2Ugd2VyZSBhc2tlZCB0byBzdHJlYW0gV0FMLCBjcmVhdGUgYSBzZXBh cmF0ZSBjb25uZWN0aW9uIGZvciB0aGF0ICovCisJaWYgKGluY2x1ZGV3YWwgPT0gU1RSRUFN X1dBTCkKKwl7CisJCXdhbGNvbm4gPSBHZXRDb25uZWN0aW9uKCk7CisJCWlmICghd2FsY29u bikKKwkJCS8qIEVycm9yIG1lc3NhZ2UgYWxyZWFkeSB3cml0dGVuIGluIEdldENvbm5lY3Rp b24oKSAqLworCQkJZXhpdCgxKTsKKworCQkvKgorCQkgKiBJZiB3ZSBuZWVkIHRvIGNyZWF0 ZSBhIHNsb3QsIGRvIGl0IG5vdywgYmVmb3JlIHJlcXVlc3RpbmcgYSBjaGVja3BvaW50LAor CQkgKiB0byBlbnN1cmUgdGhlIFdBTCB3ZSB3YW50IGlzIG5vdCByZW1vdmVkIHVudGlsIHdl IGFjdHVhbGx5IHN0YXJ0CisJCSAqIHN0cmVhbWluZy4KKwkJICovCisKKwkJLyogVGVtcG9y YXJ5IHJlcGxpY2F0aW9uIHNsb3RzIGFyZSBvbmx5IHN1cHBvcnRlZCBpbiAxMCBhbmQgbmV3 ZXIgKi8KKwkJaWYgKFBRc2VydmVyVmVyc2lvbihjb25uKSA8IE1JTklNVU1fVkVSU0lPTl9G T1JfVEVNUF9TTE9UUykKKwkJCXRlbXBfcmVwbGljYXRpb25fc2xvdCA9IGZhbHNlOworCisJ CWlmICh0ZW1wX3JlcGxpY2F0aW9uX3Nsb3QgJiYgIXJlcGxpY2F0aW9uX3Nsb3QpCisJCQly ZXBsaWNhdGlvbl9zbG90ID0gcHNwcmludGYoInBnX2Jhc2ViYWNrdXBfJXUiLAorCQkJCQkJ CQkJCSh1bnNpZ25lZCBpbnQpIFBRYmFja2VuZFBJRCh3YWxjb25uKSk7CisJCWlmICh0ZW1w X3JlcGxpY2F0aW9uX3Nsb3QgfHwgY3JlYXRlX3Nsb3QpCisJCXsKKwkJCWlmICghQ3JlYXRl UmVwbGljYXRpb25TbG90KHdhbGNvbm4sIHJlcGxpY2F0aW9uX3Nsb3QsIE5VTEwsCisJCQkJ CQkJCQkgICB0ZW1wX3JlcGxpY2F0aW9uX3Nsb3QsIHRydWUsIHRydWUsIGZhbHNlLAorCQkJ CQkJCQkJICAgZmFsc2UsIGZhbHNlKSkKKwkJCQlleGl0KDEpOworCisJCQlpZiAodmVyYm9z ZSkKKwkJCXsKKwkJCQlpZiAodGVtcF9yZXBsaWNhdGlvbl9zbG90KQorCQkJCQlwZ19sb2df aW5mbygiY3JlYXRlZCB0ZW1wb3JhcnkgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIiLAorCQkJ CQkJCQlyZXBsaWNhdGlvbl9zbG90KTsKKwkJCQllbHNlCisJCQkJCXBnX2xvZ19pbmZvKCJj cmVhdGVkIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIiwKKwkJCQkJCQkJcmVwbGljYXRpb25f c2xvdCk7CisJCQl9CisJCX0KKwl9CisKIAlpZiAodmVyYm9zZSkKIAkJcGdfbG9nX2luZm8o ImluaXRpYXRpbmcgYmFzZSBiYWNrdXAsIHdhaXRpbmcgZm9yIGNoZWNrcG9pbnQgdG8gY29t cGxldGUiKTsKIApAQCAtMjEwMCw3ICsyMTA5LDcgQEAgQmFzZUJhY2t1cChjaGFyICpjb21w cmVzc2lvbl9hbGdvcml0aG0sIGNoYXIgKmNvbXByZXNzaW9uX2RldGFpbCwKIAkJCXdhbF9j b21wcmVzc19sZXZlbCA9IDA7CiAJCX0KIAotCQlTdGFydExvZ1N0cmVhbWVyKHhsb2dzdGFy dCwgc3RhcnR0bGksIHN5c2lkZW50aWZpZXIsCisJCVN0YXJ0TG9nU3RyZWFtZXIod2FsY29u biwgeGxvZ3N0YXJ0LCBzdGFydHRsaSwgc3lzaWRlbnRpZmllciwKIAkJCQkJCSB3YWxfY29t cHJlc3NfYWxnb3JpdGhtLAogCQkJCQkJIHdhbF9jb21wcmVzc19sZXZlbCk7CiAJfQotLSAK Mi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --------------Kn4ijPnGks4oesgCcaboGxgi--