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 1vRBMs-008iPG-0U for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Dec 2025 15:35:42 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vRBMr-003Cl9-0k for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Dec 2025 15:35:41 +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 1vRBLH-0039Nq-1o for pgsql-hackers@lists.postgresql.org; Thu, 04 Dec 2025 15:34:04 +0000 Received: from mail-qt1-x836.google.com ([2607:f8b0:4864:20::836]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vRBLE-0037gu-39 for pgsql-hackers@lists.postgresql.org; Thu, 04 Dec 2025 15:34:03 +0000 Received: by mail-qt1-x836.google.com with SMTP id d75a77b69052e-4ee0633c9afso261311cf.0 for ; Thu, 04 Dec 2025 07:34:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764862441; x=1765467241; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ohAGKZPw47DsEBD3ae6jUkk52FzGJo8tMXAPMhB16t0=; b=dB27Pyt+bOh21dvlr9Z2fA2TMMhxEHTrfqXhK1B0xqTQGbg2H6zpZh8hHf5XQem1KO CnjpCfQnOIJrSJCJBZ9Ieugjk22BzjEMSfA6+xRywSXkzOJn3PlJbL3oO8VXJ2B7vnlu 5MKVf+o0V32Bsc05InmSREI15PM2/HEtuH/WQ4kMeSipDMv+4TZaehpi6iqr9ca/paWb hZsiFP2qjmhZN+cNUk5PgY9Gva4Z1vwkt2gHo8eyih1TYHV8yjRs6gfFBdmiPmdIIOzt G2gPmwu050cQ+DIVxHbcuW9H//Aq8+ae6j1+/nyynFeg5xCoQXo/bCBpoa2N4MBfn8kt QFtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764862441; x=1765467241; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ohAGKZPw47DsEBD3ae6jUkk52FzGJo8tMXAPMhB16t0=; b=XoWBo0nFLMcvpo3X7NgVwJbERJ3WZYgf4mVSHdh6ZmbDy0B2arWXEilFC8PGdK3id8 ke8fzSD5Oqvdtwn6E3U7jRfFBAbSkZT3SdGO38rnQhAEFtktskyY2ovkHS+rkthft6AZ SPcrdwwT8tHpKgwtgTIymbCL3+NMOEn2nHY7lLE/hJrpCtKAlibFZodmR95Lo0JOLWhy r/lDufXUWzQLR7wQ6YiRmquhfU2qcbinVYcUfwfzw55VW0+pKvZqpP6q0cDIPD8wnsGU K4Zm4PBHFLR2xMJDJ2/a+G11afyAbny5J2WwL5VO96XNz1J3ZdNYVYiGou3/YI6i8QIg 6gjg== X-Forwarded-Encrypted: i=1; AJvYcCWvw5I1ijR7Q7GHalzx1+Z02zi0RABloCX/EgZ3B36EDBzAeWeBClN3Jd5/ORwRSgB1Mgn2OfaVrDH/c+cq@lists.postgresql.org X-Gm-Message-State: AOJu0YxYopmzbSD0ubNlEMKvWL74nLjfzXYTMSytKjD8RtttzMD7F5kS KaWKRHavJDTKH335Zas2ncJ+k9JC/PE0jHhUYbtJR0OsQRXSDxTTMAT6RExApQT4UODIfC2vRuE cEyL+zId6Ateyn5LOc/BXZTD8OgkGXG0= X-Gm-Gg: ASbGncvJDD/8ebmeTvb0o+zcdAzJusrKcEiIt7280ONH4Kq/wpEG75HJYZNwXCYTW6n Z58kWHNwC/3YiDtL4c4BmHJBexh7Yg57pIeiQZ3eyPZr/hd3FT1a3JNeb4HQLBcpIgroH3uqu4S 3XTtTIQ0DrvHkDVLp5g4yV/gRLUu13MEIxhAN0s289G+qz2WLOfPDUaRLl4kQcQ29f/nO17NkFb xf01CGDdjwamYeDZwcCRg/1zt7Qem0NGnuh/BGbQUlWCcXz04D/NoECclAtWJ3X8HDqdg== X-Google-Smtp-Source: AGHT+IHa8ngfcx5VaO1kKpY8MBjJ86CurNhRzgVfKIxTujF9J4lJv3DaBYAqOCXskvW77lHGe8YMjET8/jI8YwERpBQ= X-Received: by 2002:ac8:5793:0:b0:4ed:a574:64cb with SMTP id d75a77b69052e-4f01b0c0edfmr60240331cf.3.1764862440734; Thu, 04 Dec 2025 07:34:00 -0800 (PST) MIME-Version: 1.0 References: <36531c0e-292c-409d-bbc7-a252cf6e910a@iki.fi> <54aa8f65-f0e4-4464-b543-e0399c1cab1e@iki.fi> <4a9dda70-0af7-41a4-9636-b168f2fc48ef@iki.fi> <46cc45e9-fddd-44bc-bcb3-96889aafd921@iki.fi> <6c298bc4-7029-4c1d-bf16-3e094842ce32@iki.fi> <9ee6324a-44fc-42fb-bf8e-7c3b53395588@iki.fi> <2df82550-d2e0-47bc-804e-d7cf363f0db0@iki.fi> In-Reply-To: From: Maxim Orlov Date: Thu, 4 Dec 2025 18:33:47 +0300 X-Gm-Features: AWmQ_bnxa3Zc7wa2P4t3gumWAUzKivB0vh7cNtdi6w0ytP4hiqA0f_dmHg_3RaM Message-ID: Subject: Re: POC: make mxidoff 64 bits To: Heikki Linnakangas Cc: Alvaro Herrera , Alexander Korotkov , wenhui qiu , Postgres hackers , Ashutosh Bapat Content-Type: multipart/mixed; boundary="000000000000dba7010645220e8c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000dba7010645220e8c Content-Type: multipart/alternative; boundary="000000000000dba6ff0645220e8a" --000000000000dba6ff0645220e8a Content-Type: text/plain; charset="UTF-8" On Thu, 4 Dec 2025 at 13:39, Heikki Linnakangas wrote: > However, that doesn't hold for pg_upgrade. pg_upgrade will try to read > all the multixids. So we need to make the multixact reading code > tolerant of the situations that could be present after a crash. I think > the right philosophy here is that we try to read all the old multixids, > and do our best to interpret them the same way that the old server > would. Something like attached? Now previous scheme of upgrade with the bytes joggling start looking not so bad. Just a funny thought that came to my mind. Perhaps we should check that all the files exist and have the correct sizes in the pre-check stage Not sure about it. Because SLRU does not support "holes", simply checking if the first and last multixacts exist will be enough. But we'll do it anyway in a real conversion. PFA to start a conversation. -- Best regards, Maxim Orlov. --000000000000dba6ff0645220e8a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

On Thu, 4 Dec 2025 = at 13:39, Heikki Linnakangas <hlinnak= a@iki.fi> wrote:
However, that doesn't hold for pg_upgrade. pg_upgrade will try to read =
all the multixids. So we need to make the multixact reading code
tolerant of the situations that could be present after a crash. I think the right philosophy here is that we try to read all the old multixids, and do our best to interpret them the same way that the old server
would.=C2=A0=C2=A0
=C2=A0
Something like attache= d?

Now previous scheme of upgrade with the bytes j= oggling start
looking not so bad. Just a funny thought that came = to my mind.

Perhaps we should check that all the files exist and have the correc= t=C2=A0
sizes= in the pre-check stage

Not sure about it. = Because SLRU does not support "holes", simply
checking = if the first and last multixacts exist will be enough. But
we'= ;ll do it anyway in a real conversion.

PFA to star= t a conversation.

-- =
Best regards,
Maxim Orlov.
--000000000000dba6ff0645220e8a-- --000000000000dba7010645220e8c Content-Type: text/plain; charset="US-ASCII"; name="0001-rough-draft-of-skipping-bogus-offsets.patch.txt" Content-Disposition: attachment; filename="0001-rough-draft-of-skipping-bogus-offsets.patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mirickqy0 RnJvbSBjMmNjYjEwN2JlZjg5ODQyMGU2NDE3YzM3ZDU2YzZiMzA1NzhkMjhmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFRodSwgNCBEZWMgMjAyNSAxNzowMjozNSArMDMwMApTdWJqZWN0OiBbUEFUQ0hdIHJvdWdoIGRy YWZ0IG9mIHNraXBwaW5nIGJvZ3VzIG9mZnNldHMKCi0tLQogc3JjL2Jpbi9wZ191cGdyYWRlL211 bHRpeGFjdF9vbGQuYyB8IDM4ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogc3JjL2Jp bi9wZ191cGdyYWRlL211bHRpeGFjdF9vbGQuaCB8ICAyICstCiBzcmMvYmluL3BnX3VwZ3JhZGUv cGdfdXBncmFkZS5jICAgIHwgMTUgKysrKysrLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDQwIGlu c2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBn cmFkZS9tdWx0aXhhY3Rfb2xkLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUvbXVsdGl4YWN0X29sZC5j CmluZGV4IDUyOWVlZWI5M2I2Li42ODViZmFlZmY4MiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191 cGdyYWRlL211bHRpeGFjdF9vbGQuYworKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvbXVsdGl4YWN0 X29sZC5jCkBAIC0xMzYsNyArMTM2LDcgQEAgQWxsb2NPbGRNdWx0aVhhY3RSZWFkKGNoYXIgKnBn ZGF0YSwgTXVsdGlYYWN0SWQgbmV4dE11bHRpLAogICogLSBCZWNhdXNlIHRoZXJlJ3Mgbm8gY29u Y3VycmVudCBhY3Rpdml0eSwgV2UgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dAogICogICBsb2Nr aW5nIGFuZCBzb21lIGNvcm5lciBjYXNlcy4KICAqLwotdm9pZAorYm9vbAogR2V0T2xkTXVsdGlY YWN0SWRTaW5nbGVNZW1iZXIoT2xkTXVsdGlYYWN0UmVhZGVyICpzdGF0ZSwgTXVsdGlYYWN0SWQg bXVsdGksCiAJCQkJCQkJICBUcmFuc2FjdGlvbklkICpyZXN1bHQsIE11bHRpWGFjdFN0YXR1cyAq c3RhdHVzKQogewpAQCAtMTg5LDcgKzE4OSwxOCBAQCBHZXRPbGRNdWx0aVhhY3RJZFNpbmdsZU1l bWJlcihPbGRNdWx0aVhhY3RSZWFkZXIgKnN0YXRlLCBNdWx0aVhhY3RJZCBtdWx0aSwKIAlvZmZw dHIgKz0gZW50cnlubzsKIAlvZmZzZXQgPSAqb2ZmcHRyOwogCi0JQXNzZXJ0KG9mZnNldCAhPSAw KTsKKwlpZiAob2Zmc2V0ID09IDApCisJeworCQlwZ19sb2coUEdfV0FSTklORywgIm11bHRpeGFj dCAldSwgb2Zmc2V0IGlzIGVtcHR5IiwgbXVsdGkpOworCQlyZXR1cm4gZmFsc2U7CisJfQorI2lm IDAKKwlpZiAoIDxtb3JlIGNoZWNrcz4gKQorCXsKKwkJcGdfbG9nKFBHX1dBUk5JTkcsICJtdWx0 aXhhY3QgJXUsIG9mZnNldCBpcyBib2d1cyIsIG11bHRpKTsKKwkJcmV0dXJuIGZhbHNlOworCX0K KyNlbmRpZgogCiAJLyoKIAkgKiBVc2UgdGhlIHNhbWUgaW5jcmVtZW50IHJ1bGUgYXMgR2V0TmV3 TXVsdGlYYWN0SWQoKSwgdGhhdCBpcywgZG9uJ3QKQEAgLTIyNCw5ICsyMzUsMTMgQEAgR2V0T2xk TXVsdGlYYWN0SWRTaW5nbGVNZW1iZXIoT2xkTXVsdGlYYWN0UmVhZGVyICpzdGF0ZSwgTXVsdGlY YWN0SWQgbXVsdGksCiAKIAkJLyoKIAkJICogQ29ybmVyIGNhc2UgMjogbmV4dCBtdWx0aXhhY3Qg aXMgc3RpbGwgYmVpbmcgZmlsbGVkIGluLCB0aGlzIGNhbm5vdAotCQkgKiBoYXBwZW4gZHVyaW5n IHVwZ3JhZGUuCisJCSAqIGhhcHBlbiBkdXJpbmcgdXBncmFkZSwgYnV0IGlmIGl0IGRvZXMsIGNv bXBsYWluLgogCQkgKi8KLQkJQXNzZXJ0KG5leHRNWE9mZnNldCAhPSAwKTsKKwkJaWYgKG5leHRN WE9mZnNldCA9PSAwKQorCQl7CisJCQlwZ19sb2coUEdfV0FSTklORywgIm11bHRpeGFjdCBuZXh0 IHRvICV1IGlzIGVtcHR5IiwgbXVsdGkpOworCQkJcmV0dXJuIGZhbHNlOworCQl9CiAKIAkJbGVu Z3RoID0gbmV4dE1YT2Zmc2V0IC0gb2Zmc2V0OwogCX0KQEAgLTI3Miw4ICsyODcsMTEgQEAgR2V0 T2xkTXVsdGlYYWN0SWRTaW5nbGVNZW1iZXIoT2xkTXVsdGlYYWN0UmVhZGVyICpzdGF0ZSwgTXVs dGlYYWN0SWQgbXVsdGksCiAJCXsKIAkJCS8qIHNhbml0eSBjaGVjayAqLwogCQkJaWYgKHJlc3Vs dF9pc3VwZGF0ZSkKLQkJCQlwZ19mYXRhbCgibXVsdGl4YWN0ICV1IGhhcyBtb3JlIHRoYW4gb25l IHVwZGF0aW5nIG1lbWJlciIsCi0JCQkJCQkgbXVsdGkpOworCQkJeworCQkJCXBnX2xvZyhQR19X QVJOSU5HLAorCQkJCQkgICAibXVsdGl4YWN0ICV1IGhhcyBtb3JlIHRoYW4gb25lIHVwZGF0aW5n IG1lbWJlciIsIG11bHRpKTsKKwkJCQlyZXR1cm4gZmFsc2U7CisJCQl9CiAJCQlyZXN1bHRfeGlk ID0gKnhhY3RwdHI7CiAJCQlyZXN1bHRfaXN1cGRhdGUgPSB0cnVlOwogCQl9CkBAIC0yODIsMTEg KzMwMCwxNyBAQCBHZXRPbGRNdWx0aVhhY3RJZFNpbmdsZU1lbWJlcihPbGRNdWx0aVhhY3RSZWFk ZXIgKnN0YXRlLCBNdWx0aVhhY3RJZCBtdWx0aSwKIAl9CiAKIAkvKiBBIG11bHRpeGlkIHdpdGgg emVybyBtZW1iZXJzIHNob3VsZCBub3QgaGFwcGVuICovCi0JQXNzZXJ0KFRyYW5zYWN0aW9uSWRJ c1ZhbGlkKHJlc3VsdF94aWQpKTsKKwlpZiAoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHJlc3VsdF94 aWQpKQorCXsKKwkJcGdfbG9nKFBHX1dBUk5JTkcsICJtdWx0aXhhY3QgJXUgaGF2ZSB6ZXJvIG1l bWJlcnMiLCBtdWx0aSk7CisJCXJldHVybiBmYWxzZTsKKwl9CiAKIAkqcmVzdWx0ID0gcmVzdWx0 X3hpZDsKIAkqc3RhdHVzID0gcmVzdWx0X2lzdXBkYXRlID8gTXVsdGlYYWN0U3RhdHVzVXBkYXRl IDoKIAkJTXVsdGlYYWN0U3RhdHVzRm9yS2V5U2hhcmU7CisKKwlyZXR1cm4gdHJ1ZTsKIH0KIAog LyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9tdWx0aXhhY3Rfb2xkLmggYi9zcmMv YmluL3BnX3VwZ3JhZGUvbXVsdGl4YWN0X29sZC5oCmluZGV4IDRmOWUwODZhMWZiLi5iNzM1MjE1 OWQ4MyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL211bHRpeGFjdF9vbGQuaAorKysg Yi9zcmMvYmluL3BnX3VwZ3JhZGUvbXVsdGl4YWN0X29sZC5oCkBAIC0yOSw3ICsyOSw3IEBAIHR5 cGVkZWYgc3RydWN0IE9sZE11bHRpWGFjdFJlYWRlcgogZXh0ZXJuIE9sZE11bHRpWGFjdFJlYWRl ciAqQWxsb2NPbGRNdWx0aVhhY3RSZWFkKGNoYXIgKnBnZGF0YSwKIAkJCQkJCQkJCQkJCSBNdWx0 aVhhY3RJZCBuZXh0TXVsdGksCiAJCQkJCQkJCQkJCQkgT2xkTXVsdGlYYWN0T2Zmc2V0IG5leHRP ZmZzZXQpOwotZXh0ZXJuIHZvaWQgR2V0T2xkTXVsdGlYYWN0SWRTaW5nbGVNZW1iZXIoT2xkTXVs dGlYYWN0UmVhZGVyICpzdGF0ZSwKK2V4dGVybiBib29sIEdldE9sZE11bHRpWGFjdElkU2luZ2xl TWVtYmVyKE9sZE11bHRpWGFjdFJlYWRlciAqc3RhdGUsCiAJCQkJCQkJCQkJICBNdWx0aVhhY3RJ ZCBtdWx0aSwKIAkJCQkJCQkJCQkgIFRyYW5zYWN0aW9uSWQgKnJlc3VsdCwKIAkJCQkJCQkJCQkg IE11bHRpWGFjdFN0YXR1cyAqc3RhdHVzKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFk ZS9wZ191cGdyYWRlLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jCmluZGV4IGZm OTM3YjllMTA0Li5jNWRhNTZmZTc4NSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3Bn X3VwZ3JhZGUuYworKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jCkBAIC04MzIs MTQgKzgzMiwxNSBAQCBjb252ZXJ0X211bHRpeGFjdHMoTXVsdGlYYWN0SWQgZnJvbV9tdWx0aSwg TXVsdGlYYWN0SWQgdG9fbXVsdGkpCiAJCQkgKiBvbmUgdXBkYXRpbmcgb25lLCBvciBpZiB0aGVy ZSB3YXMgbm8gdXBkYXRlLCBhcmJpdHJhcmlseSB0aGUKIAkJCSAqIGZpcnN0IGxvY2tpbmcgeGlk LgogCQkJICovCi0JCQlHZXRPbGRNdWx0aVhhY3RJZFNpbmdsZU1lbWJlcihvbGRfcmVhZGVyLCBt dWx0aSwgJnhpZCwgJnN0YXR1cyk7CisJCQlpZiAoR2V0T2xkTXVsdGlYYWN0SWRTaW5nbGVNZW1i ZXIob2xkX3JlYWRlciwgbXVsdGksICZ4aWQsICZzdGF0dXMpKQorCQkJeworCQkJCS8qIFdyaXRl IGl0IG91dCBpbiBuZXcgZm9ybWF0ICovCisJCQkJbWVtYmVyLnhpZCA9IHhpZDsKKwkJCQltZW1i ZXIuc3RhdHVzID0gc3RhdHVzOworCQkJCVJlY29yZE5ld011bHRpWGFjdChuZXdfd3JpdGVyLCBu ZXh0X29mZnNldCwgbXVsdGksIDEsICZtZW1iZXIpOworCQkJCW5leHRfb2Zmc2V0ICs9IDE7CisJ CQl9CiAKLQkJCS8qIFdyaXRlIGl0IG91dCBpbiBuZXcgZm9ybWF0ICovCi0JCQltZW1iZXIueGlk ID0geGlkOwotCQkJbWVtYmVyLnN0YXR1cyA9IHN0YXR1czsKLQkJCVJlY29yZE5ld011bHRpWGFj dChuZXdfd3JpdGVyLCBuZXh0X29mZnNldCwgbXVsdGksIDEsICZtZW1iZXIpOwotCi0JCQluZXh0 X29mZnNldCArPSAxOwogCQkJbXVsdGkrKzsKIAkJCS8qIGhhbmRsZSB3cmFwYXJvdW5kICovCiAJ CQlpZiAobXVsdGkgPCBGaXJzdE11bHRpWGFjdElkKQotLSAKMi40My4wCgo= --000000000000dba7010645220e8c Content-Type: text/plain; charset="US-ASCII"; name="0002-Check-is-first-and-last-multis-exists.patch.txt" Content-Disposition: attachment; filename="0002-Check-is-first-and-last-multis-exists.patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mirlh07k1 RnJvbSAwYWM4ZWIyOTJjMjFhMDZkYTMxMjE1YWE0MWFkYjUzZWMxZjkwODcyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFRodSwgNCBEZWMgMjAyNSAxODozMTozNyArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBDaGVj ayBpcyBmaXJzdCBhbmQgbGFzdCBtdWx0aXMgZXhpc3RzCgotLS0KIHNyYy9iaW4vcGdfdXBncmFk ZS9tdWx0aXhhY3Rfb2xkLmMgfCAxMCArKysrKysrKysrCiBzcmMvYmluL3BnX3VwZ3JhZGUvbXVs dGl4YWN0X29sZC5oIHwgIDIgKysKIHNyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMgICAg fCAyMyArKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAzNSBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL211bHRpeGFjdF9vbGQuYyBi L3NyYy9iaW4vcGdfdXBncmFkZS9tdWx0aXhhY3Rfb2xkLmMKaW5kZXggNjg1YmZhZWZmODIuLmZm ZDA2YWQ5MDhmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvbXVsdGl4YWN0X29sZC5j CisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9tdWx0aXhhY3Rfb2xkLmMKQEAgLTMyNCwzICszMjQs MTMgQEAgRnJlZU9sZE11bHRpWGFjdFJlYWRlcihPbGRNdWx0aVhhY3RSZWFkZXIgKnN0YXRlKQog CiAJcGZyZWUoc3RhdGUpOwogfQorCit2b2lkCitDaGVja09sZE11bHRpWGFjdElkRXhpc3QoT2xk TXVsdGlYYWN0UmVhZGVyICpzdGF0ZSwgTXVsdGlYYWN0SWQgbXVsdGkpCit7CisJaW50NjQgcGFn ZW5vID0gTXVsdGlYYWN0SWRUb09mZnNldFBhZ2UobXVsdGkpOworCWNoYXIgKmJ1ZiA9IFNscnVS ZWFkU3dpdGNoUGFnZShzdGF0ZS0+b2Zmc2V0LCBwYWdlbm8pOworCisJaWYgKCFidWYpCisJCXBn X2ZhdGFsKCJjb3VsZCBub3QgcmVhZCBtdWx0aXhhY3QgJXUiLCBtdWx0aSk7Cit9CmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvbXVsdGl4YWN0X29sZC5oIGIvc3JjL2Jpbi9wZ191cGdy YWRlL211bHRpeGFjdF9vbGQuaAppbmRleCBiNzM1MjE1OWQ4My4uODYxNDFhYzM5MmYgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9tdWx0aXhhY3Rfb2xkLmgKKysrIGIvc3JjL2Jpbi9w Z191cGdyYWRlL211bHRpeGFjdF9vbGQuaApAQCAtMzQsNSArMzQsNyBAQCBleHRlcm4gYm9vbCBH ZXRPbGRNdWx0aVhhY3RJZFNpbmdsZU1lbWJlcihPbGRNdWx0aVhhY3RSZWFkZXIgKnN0YXRlLAog CQkJCQkJCQkJCSAgVHJhbnNhY3Rpb25JZCAqcmVzdWx0LAogCQkJCQkJCQkJCSAgTXVsdGlYYWN0 U3RhdHVzICpzdGF0dXMpOwogZXh0ZXJuIHZvaWQgRnJlZU9sZE11bHRpWGFjdFJlYWRlcihPbGRN dWx0aVhhY3RSZWFkZXIgKnJlYWRlcik7CitleHRlcm4gdm9pZCBDaGVja09sZE11bHRpWGFjdElk RXhpc3QoT2xkTXVsdGlYYWN0UmVhZGVyICpzdGF0ZSwKKwkJCQkJCQkJCSBNdWx0aVhhY3RJZCBt dWx0aSk7CiAKICNlbmRpZgkJCQkJCQkvKiBNVUxUSVhBQ1RfT0xEX0ggKi8KZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdf dXBncmFkZS5jCmluZGV4IGM1ZGE1NmZlNzg1Li42NDdlMDVmMzUwYSAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYworKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdf dXBncmFkZS5jCkBAIC03NzIsNiArNzcyLDIxIEBAIGNvcHlfc3ViZGlyX2ZpbGVzKGNvbnN0IGNo YXIgKm9sZF9zdWJkaXIsIGNvbnN0IGNoYXIgKm5ld19zdWJkaXIpCiAJY2hlY2tfb2soKTsKIH0K IAorc3RhdGljIHZvaWQKK2NoZWNrX211bHRpeGFjdHMoTXVsdGlYYWN0SWQgZnJvbV9tdWx0aSwg TXVsdGlYYWN0SWQgdG9fbXVsdGkpCit7CisJT2xkTXVsdGlYYWN0UmVhZGVyICpyZWFkZXI7CisK KwlyZWFkZXIgPSBBbGxvY09sZE11bHRpWGFjdFJlYWQob2xkX2NsdXN0ZXIucGdkYXRhLAorCQkJ CQkJCQkgICBvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfbnh0bXVsdGksCisJCQkJCQkJ CSAgIG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3BudF9ueHRteG9mZik7CisKKwlDaGVja09s ZE11bHRpWGFjdElkRXhpc3QocmVhZGVyLCBmcm9tX211bHRpKTsKKwlDaGVja09sZE11bHRpWGFj dElkRXhpc3QocmVhZGVyLCB0b19tdWx0aSk7CisKKwlGcmVlT2xkTXVsdGlYYWN0UmVhZGVyKHJl YWRlcik7Cit9CisKIC8qCiAgKiBDb252ZXJ0IHBnX211bHRpeGFjdC9vZmZzZXQgYW5kIC9tZW1i ZXJzIGZyb20gdGhlIG9sZCBmb3JtYXQgd2l0aCAzMi1iaXQKICAqIG9mZnNldHMuCkBAIC05NTgs NiArOTczLDE0IEBAIGNvcHlfeGFjdF94bG9nX3hpZCh2b2lkKQogCQlyZW1vdmVfbmV3X3N1YmRp cigicGdfbXVsdGl4YWN0L21lbWJlcnMiLCBmYWxzZSk7CiAJCXJlbW92ZV9uZXdfc3ViZGlyKCJw Z19tdWx0aXhhY3Qvb2Zmc2V0cyIsIGZhbHNlKTsKIAorCQkvKgorCQkgKiBCZWZvcmUgdGhlIGFj dHVhbCBjb252ZXJzaW9uIGRvIHNhbml0eSBjaGVjay4KKwkJICogWFhYOiBwbGFjZSBpdCBwcm9w ZXJseSwgaXQgc2hvdWxkIGJlIGJldHRlciBwbGFjZSBmb3IgdGhpcworCQkgKi8KKwkJcHJlcF9z dGF0dXMoIlNhbml0eSBjaGVjayBwZ19tdWx0aXhhY3QgZmlsZXMiKTsKKwkJY2hlY2tfbXVsdGl4 YWN0cyhvbGRzdE11bHRpLCBueHRtdWx0aSk7CisJCWNoZWNrX29rKCk7CisKIAkJLyoKIAkJICog Q3JlYXRlIG5ldyBwZ19tdWx0aXhhY3QgZmlsZXMsIGNvbnZlcnRpbmcgb2xkIG9uZXMgaWYgbmVl ZGVkLgogCQkgKi8KLS0gCjIuNDMuMAoK --000000000000dba7010645220e8c--