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.94.2) (envelope-from ) id 1smnDD-008H21-Cl for pgsql-hackers@arkaria.postgresql.org; Sat, 07 Sep 2024 04:38:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1smnCB-00AH6F-KK for pgsql-hackers@arkaria.postgresql.org; Sat, 07 Sep 2024 04:37:12 +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.94.2) (envelope-from ) id 1smnCA-00AH67-Ru for pgsql-hackers@lists.postgresql.org; Sat, 07 Sep 2024 04:37:11 +0000 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1smnC8-000XpU-HV for pgsql-hackers@lists.postgresql.org; Sat, 07 Sep 2024 04:37:10 +0000 Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-5c254a544bfso273539a12.1 for ; Fri, 06 Sep 2024 21:37:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725683826; x=1726288626; 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=BZUzqEA6REQVklfjJl1b9yvh/1g0A7orZiPGFLIwPTw=; b=f1VVwz2ohocysqXWj8lviG/1o4WAi39n0I/fDtFsRFmbKF8a7F1taELbTqD4hBy50j CUlMgAllXcpzqE7xPXD8pSmYTWz9jR1KGwqoLyGNzPxOdwg7DsuEHLAK8/BiKV2Oyvnu 6dP+sSJtNCGoemnj1WNqPRIjHXNZ5daa4KF5N5F9BKbJIi4tNKu1OrbwK9A5ZHtwQ24Y 5DXxweMWlezuNyJF4UoLCWpMnyPibD9274S1TElQzCvrtEdMYIxy1HPrwy5BRya2WpYo GAcDk/dBtoIcXdWL8XlR9TWg6pKVFfehYnbi5P9RJrdpjiUGD+kdpE5LZrU/tW4GtIJF U2Qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725683826; x=1726288626; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=BZUzqEA6REQVklfjJl1b9yvh/1g0A7orZiPGFLIwPTw=; b=KLthNCPaW7k6/wVJ7ReEq5PClmDaP5TVKztLy40bcjhTs9PO4KRoCGyTYfrfLkg90E Um5hCbVl5tOFNP90rR9+foOqFUOKLZZ2EDX2d1yUqfgQtA1d2pmdN2KQ3SYZ0PWV9aj1 uVaBMdygm2whhu0bg4RGRNH329m0obURyyiebU8xC+elV91/Y5pEasRQ9b9h8P9ntgeS zpO79YmFEYrYJtOQ2Mrgbj4wkqv6OVa4gnrEJX0ui8bzYvqJLwJdRHjvAGVljBxsq6BS jSoW8RYEQ6tFuEazLVJG1Wyz+SxlZgoqZ8kDYSxFIE0kFxVawl2wOr1Xsh8Nvo1HjOJx 2b9A== X-Forwarded-Encrypted: i=1; AJvYcCU/KiiWrSIhHdFHfzvdBvfeQxl/Y+bh3z/cvtf4iT4RL8bTYT3oJkDQyD32iFEXC+ocvAaxi9lgPyiyE4OQ@lists.postgresql.org X-Gm-Message-State: AOJu0YwesqUY5rG42TcVP7S5TNxQ0xxf+ekG2/M5Ugukgm/gnbfwX37W 3AkWFhek2uWLobOR/4gSRAWXhqxZexrHIgNCaOazP3o3XTJW1L3RL8VUzT03gkousUCV3cAhMWa OSkjgUk5WfEfdD+OkBpclrW/zsiw= X-Google-Smtp-Source: AGHT+IF7FueW/DsFMbSu2XV3ShLqKVxGhKFawAxcbZt0zwa+9VhFyES3cUyg9jq6eNdhwxVWdoAcXysbFmFkiqQPjAU= X-Received: by 2002:a05:6402:13d5:b0:5c3:eb29:83cc with SMTP id 4fb4d7f45d1cf-5c3eb29841emr186991a12.7.1725683824976; Fri, 06 Sep 2024 21:37:04 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Maxim Orlov Date: Sat, 7 Sep 2024 07:36:52 +0300 Message-ID: Subject: Re: POC: make mxidoff 64 bits To: Alexander Korotkov Cc: wenhui qiu , Heikki Linnakangas , Postgres hackers Content-Type: multipart/mixed; boundary="0000000000006269a006218013d3" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000006269a006218013d3 Content-Type: multipart/alternative; boundary="00000000000062699e06218013d1" --00000000000062699e06218013d1 Content-Type: text/plain; charset="UTF-8" Here is v3. I removed CATALOG_VERSION_NO change, so this should be done by the actual commiter. -- Best regards, Maxim Orlov. --00000000000062699e06218013d1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Here is v3. I removed CATALOG_VERSION_NO change, so t= his should be done by the actual commiter.

--
Best regards,
Maxim Orlov.
--00000000000062699e06218013d1-- --0000000000006269a006218013d3 Content-Type: application/octet-stream; name="v3-0002-Use-64-bit-multixact-offsets.patch" Content-Disposition: attachment; filename="v3-0002-Use-64-bit-multixact-offsets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0rnfn381 RnJvbSAyMzE4ODZjMmZhZmU5ZWIyZDg1MzVjNGI1OTBlMzg3MDg1ZDdhZWM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8bS5vcmxvdkBwb3N0Z3Jlc3Byby5ydT4K RGF0ZTogV2VkLCA2IE1hciAyMDI0IDExOjExOjMzICswMzAwClN1YmplY3Q6IFtQQVRDSCB2MyAy LzNdIFVzZSA2NC1iaXQgbXVsdGl4YWN0IG9mZnNldHMuCgpBdXRob3I6IE1heGltIE9ybG92IDxv cmxvdm1nQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhh Y3QuYyB8IDE3MiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvYmluL3BnX3Jlc2V0d2Fs L3BnX3Jlc2V0d2FsLmMgICAgICB8ICAgMiArLQogc3JjL2Jpbi9wZ19yZXNldHdhbC90LzAwMV9i YXNpYy5wbCAgICAgfCAgIDIgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9tdWx0aXhhY3QuaCAgICAg ICAgIHwgICAyICstCiBzcmMvaW5jbHVkZS9jLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAg MiArLQogNSBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxNjkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYwppbmRleCBhYjkwOTEyZWQzLi5j NTFlMDNlODMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhh Y3QuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYwpAQCAtOTYs MTQgKzk2LDYgQEAKIC8qCiAgKiBEZWZpbmVzIGZvciBNdWx0aVhhY3RPZmZzZXQgcGFnZSBzaXpl cy4gIEEgcGFnZSBpcyB0aGUgc2FtZSBCTENLU1ogYXMgaXMKICAqIHVzZWQgZXZlcnl3aGVyZSBl bHNlIGluIFBvc3RncmVzLgotICoKLSAqIE5vdGU6IGJlY2F1c2UgTXVsdGlYYWN0T2Zmc2V0cyBh cmUgMzIgYml0cyBhbmQgd3JhcCBhcm91bmQgYXQgMHhGRkZGRkZGRiwKLSAqIE11bHRpWGFjdCBw YWdlIG51bWJlcmluZyBhbHNvIHdyYXBzIGFyb3VuZCBhdAotICogMHhGRkZGRkZGRi9NVUxUSVhB Q1RfT0ZGU0VUU19QRVJfUEFHRSwgYW5kIHNlZ21lbnQgbnVtYmVyaW5nIGF0Ci0gKiAweEZGRkZG RkZGL01VTFRJWEFDVF9PRkZTRVRTX1BFUl9QQUdFL1NMUlVfUEFHRVNfUEVSX1NFR01FTlQuICBX ZSBuZWVkCi0gKiB0YWtlIG5vIGV4cGxpY2l0IG5vdGljZSBvZiB0aGF0IGZhY3QgaW4gdGhpcyBt b2R1bGUsIGV4Y2VwdCB3aGVuIGNvbXBhcmluZwotICogc2VnbWVudCBhbmQgcGFnZSBudW1iZXJz IGluIFRydW5jYXRlTXVsdGlYYWN0IChzZWUKLSAqIE11bHRpWGFjdE9mZnNldFBhZ2VQcmVjZWRl cykuCiAgKi8KIAogLyogV2UgbmVlZCBmb3VyIGJ5dGVzIHBlciBvZmZzZXQgKi8KQEAgLTI3Miw5 ICsyNjQsNiBAQCB0eXBlZGVmIHN0cnVjdCBNdWx0aVhhY3RTdGF0ZURhdGEKIAlNdWx0aVhhY3RJ ZCBtdWx0aVN0b3BMaW1pdDsKIAlNdWx0aVhhY3RJZCBtdWx0aVdyYXBMaW1pdDsKIAotCS8qIHN1 cHBvcnQgZm9yIG1lbWJlcnMgYW50aS13cmFwYXJvdW5kIG1lYXN1cmVzICovCi0JTXVsdGlYYWN0 T2Zmc2V0IG9mZnNldFN0b3BMaW1pdDsJLyoga25vd24gaWYgb2xkZXN0T2Zmc2V0S25vd24gKi8K LQogCS8qCiAJICogVGhpcyBpcyB1c2VkIHRvIHNsZWVwIHVudGlsIGEgbXVsdGl4YWN0IG9mZnNl dCBpcyB3cml0dGVuIHdoZW4gd2Ugd2FudAogCSAqIHRvIGNyZWF0ZSB0aGUgbmV4dCBvbmUuCkBA IC00MDksOCArMzk4LDYgQEAgc3RhdGljIGJvb2wgTXVsdGlYYWN0T2Zmc2V0UHJlY2VkZXMoTXVs dGlYYWN0T2Zmc2V0IG9mZnNldDEsCiAJCQkJCQkJCQlNdWx0aVhhY3RPZmZzZXQgb2Zmc2V0Mik7 CiBzdGF0aWMgdm9pZCBFeHRlbmRNdWx0aVhhY3RPZmZzZXQoTXVsdGlYYWN0SWQgbXVsdGkpOwog c3RhdGljIHZvaWQgRXh0ZW5kTXVsdGlYYWN0TWVtYmVyKE11bHRpWGFjdE9mZnNldCBvZmZzZXQs IGludCBubWVtYmVycyk7Ci1zdGF0aWMgYm9vbCBNdWx0aVhhY3RPZmZzZXRXb3VsZFdyYXAoTXVs dGlYYWN0T2Zmc2V0IGJvdW5kYXJ5LAotCQkJCQkJCQkJIE11bHRpWGFjdE9mZnNldCBzdGFydCwg dWludDMyIGRpc3RhbmNlKTsKIHN0YXRpYyBib29sIFNldE9mZnNldFZhY3V1bUxpbWl0KGJvb2wg aXNfc3RhcnR1cCk7CiBzdGF0aWMgYm9vbCBmaW5kX211bHRpeGFjdF9zdGFydChNdWx0aVhhY3RJ ZCBtdWx0aSwgTXVsdGlYYWN0T2Zmc2V0ICpyZXN1bHQpOwogc3RhdGljIHZvaWQgV3JpdGVNWmVy b1BhZ2VYbG9nUmVjKGludDY0IHBhZ2VubywgdWludDggaW5mbyk7CkBAIC0xMTY0LDc4ICsxMTUx LDYgQEAgR2V0TmV3TXVsdGlYYWN0SWQoaW50IG5tZW1iZXJzLCBNdWx0aVhhY3RPZmZzZXQgKm9m ZnNldCkKIAllbHNlCiAJCSpvZmZzZXQgPSBuZXh0T2Zmc2V0OwogCi0JLyotLS0tLS0tLS0tCi0J ICogUHJvdGVjdCBhZ2FpbnN0IG92ZXJydW4gb2YgdGhlIG1lbWJlcnMgc3BhY2UgYXMgd2VsbCwg d2l0aCB0aGUKLQkgKiBmb2xsb3dpbmcgcnVsZXM6Ci0JICoKLQkgKiBJZiB3ZSdyZSBwYXN0IG9m ZnNldFN0b3BMaW1pdCwgcmVmdXNlIHRvIGdlbmVyYXRlIG1vcmUgbXVsdGlzLgotCSAqIElmIHdl J3JlIGNsb3NlIHRvIG9mZnNldFN0b3BMaW1pdCwgZW1pdCBhIHdhcm5pbmcuCi0JICoKLQkgKiBB cmJpdHJhcmlseSwgd2Ugc3RhcnQgZW1pdHRpbmcgd2FybmluZ3Mgd2hlbiB3ZSdyZSAyMCBzZWdt ZW50cyBvciBsZXNzCi0JICogZnJvbSBvZmZzZXRTdG9wTGltaXQuCi0JICoKLQkgKiBOb3RlIHdl IGhhdmVuJ3QgdXBkYXRlZCB0aGUgc2hhcmVkIHN0YXRlIHlldCwgc28gaWYgd2UgZmFpbCBhdCB0 aGlzCi0JICogcG9pbnQsIHRoZSBtdWx0aXhhY3QgSUQgd2UgZ3JhYmJlZCBjYW4gc3RpbGwgYmUg dXNlZCBieSB0aGUgbmV4dCBndXkuCi0JICoKLQkgKiBOb3RlIHRoYXQgdGhlcmUgaXMgbm8gcG9p bnQgaW4gZm9yY2luZyBhdXRvdmFjdXVtIHJ1bnMgaGVyZTogdGhlCi0JICogbXVsdGl4YWN0IGZy ZWV6ZSBzZXR0aW5ncyB3b3VsZCBoYXZlIHRvIGJlIHJlZHVjZWQgZm9yIHRoYXQgdG8gaGF2ZSBh bnkKLQkgKiBlZmZlY3QuCi0JICotLS0tLS0tLS0tCi0JICovCi0jZGVmaW5lIE9GRlNFVF9XQVJO X1NFR01FTlRTCTIwCi0JaWYgKE11bHRpWGFjdFN0YXRlLT5vbGRlc3RPZmZzZXRLbm93biAmJgot CQlNdWx0aVhhY3RPZmZzZXRXb3VsZFdyYXAoTXVsdGlYYWN0U3RhdGUtPm9mZnNldFN0b3BMaW1p dCwgbmV4dE9mZnNldCwKLQkJCQkJCQkJIG5tZW1iZXJzKSkKLQl7Ci0JCS8qIHNlZSBjb21tZW50 IGluIHRoZSBjb3JyZXNwb25kaW5nIG9mZnNldHMgd3JhcGFyb3VuZCBjYXNlICovCi0JCVNlbmRQ b3N0bWFzdGVyU2lnbmFsKFBNU0lHTkFMX1NUQVJUX0FVVE9WQUNfTEFVTkNIRVIpOwotCi0JCWVy ZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9HUkFNX0xJTUlUX0VYQ0VFREVE KSwKLQkJCQkgZXJybXNnKCJtdWx0aXhhY3QgXCJtZW1iZXJzXCIgbGltaXQgZXhjZWVkZWQiKSwK LQkJCQkgZXJyZGV0YWlsX3BsdXJhbCgiVGhpcyBjb21tYW5kIHdvdWxkIGNyZWF0ZSBhIG11bHRp eGFjdCB3aXRoICV1IG1lbWJlcnMsIGJ1dCB0aGUgcmVtYWluaW5nIHNwYWNlIGlzIG9ubHkgZW5v dWdoIGZvciAldSBtZW1iZXIuIiwKLQkJCQkJCQkJICAiVGhpcyBjb21tYW5kIHdvdWxkIGNyZWF0 ZSBhIG11bHRpeGFjdCB3aXRoICV1IG1lbWJlcnMsIGJ1dCB0aGUgcmVtYWluaW5nIHNwYWNlIGlz IG9ubHkgZW5vdWdoIGZvciAldSBtZW1iZXJzLiIsCi0JCQkJCQkJCSAgTXVsdGlYYWN0U3RhdGUt Pm9mZnNldFN0b3BMaW1pdCAtIG5leHRPZmZzZXQgLSAxLAotCQkJCQkJCQkgIG5tZW1iZXJzLAot CQkJCQkJCQkgIE11bHRpWGFjdFN0YXRlLT5vZmZzZXRTdG9wTGltaXQgLSBuZXh0T2Zmc2V0IC0g MSksCi0JCQkJIGVycmhpbnQoIkV4ZWN1dGUgYSBkYXRhYmFzZS13aWRlIFZBQ1VVTSBpbiBkYXRh YmFzZSB3aXRoIE9JRCAldSB3aXRoIHJlZHVjZWQgXCJ2YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9t aW5fYWdlXCIgYW5kIFwidmFjdXVtX211bHRpeGFjdF9mcmVlemVfdGFibGVfYWdlXCIgc2V0dGlu Z3MuIiwKLQkJCQkJCSBNdWx0aVhhY3RTdGF0ZS0+b2xkZXN0TXVsdGlYYWN0REIpKSk7Ci0JfQot Ci0JLyoKLQkgKiBDaGVjayB3aGV0aGVyIHdlIHNob3VsZCBraWNrIGF1dG92YWN1dW0gaW50byBh Y3Rpb24sIHRvIHByZXZlbnQgbWVtYmVycwotCSAqIHdyYXBhcm91bmQuIE5CIHdlIHVzZSBhIG11 Y2ggbGFyZ2VyIHdpbmRvdyB0byB0cmlnZ2VyIGF1dG92YWN1dW0gdGhhbgotCSAqIGp1c3QgdGhl IHdhcm5pbmcgbGltaXQuIFRoZSB3YXJuaW5nIGlzIGp1c3QgYSBtZWFzdXJlIG9mIGxhc3QgcmVz b3J0IC0KLQkgKiB0aGlzIGlzIGluIGxpbmUgd2l0aCBHZXROZXdUcmFuc2FjdGlvbklkJ3MgYmVo YXZpb3VyLgotCSAqLwotCWlmICghTXVsdGlYYWN0U3RhdGUtPm9sZGVzdE9mZnNldEtub3duIHx8 Ci0JCShNdWx0aVhhY3RTdGF0ZS0+bmV4dE9mZnNldCAtIE11bHRpWGFjdFN0YXRlLT5vbGRlc3RP ZmZzZXQKLQkJID4gTVVMVElYQUNUX01FTUJFUl9TQUZFX1RIUkVTSE9MRCkpCi0JewotCQkvKgot CQkgKiBUbyBhdm9pZCBzd2FtcGluZyB0aGUgcG9zdG1hc3RlciB3aXRoIHNpZ25hbHMsIHdlIGlz c3VlIHRoZSBhdXRvdmFjCi0JCSAqIHJlcXVlc3Qgb25seSB3aGVuIGNyb3NzaW5nIGEgc2VnbWVu dCBib3VuZGFyeS4gV2l0aCBkZWZhdWx0Ci0JCSAqIGNvbXBpbGF0aW9uIHNldHRpbmdzIHRoYXQn cyByb3VnaGx5IGFmdGVyIDUwayBtZW1iZXJzLiAgVGhpcyBzdGlsbAotCQkgKiBnaXZlcyBwbGVu dHkgb2YgY2hhbmNlcyBiZWZvcmUgd2UgZ2V0IGludG8gcmVhbCB0cm91YmxlLgotCQkgKi8KLQkJ aWYgKChNWE9mZnNldFRvTWVtYmVyUGFnZShuZXh0T2Zmc2V0KSAvIFNMUlVfUEFHRVNfUEVSX1NF R01FTlQpICE9Ci0JCQkoTVhPZmZzZXRUb01lbWJlclBhZ2UobmV4dE9mZnNldCArIG5tZW1iZXJz KSAvIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQpKQotCQkJU2VuZFBvc3RtYXN0ZXJTaWduYWwoUE1T SUdOQUxfU1RBUlRfQVVUT1ZBQ19MQVVOQ0hFUik7Ci0JfQotCi0JaWYgKE11bHRpWGFjdFN0YXRl LT5vbGRlc3RPZmZzZXRLbm93biAmJgotCQlNdWx0aVhhY3RPZmZzZXRXb3VsZFdyYXAoTXVsdGlY YWN0U3RhdGUtPm9mZnNldFN0b3BMaW1pdCwKLQkJCQkJCQkJIG5leHRPZmZzZXQsCi0JCQkJCQkJ CSBubWVtYmVycyArIE1VTFRJWEFDVF9NRU1CRVJTX1BFUl9QQUdFICogU0xSVV9QQUdFU19QRVJf U0VHTUVOVCAqIE9GRlNFVF9XQVJOX1NFR01FTlRTKSkKLQkJZXJlcG9ydChXQVJOSU5HLAotCQkJ CShlcnJjb2RlKEVSUkNPREVfUFJPR1JBTV9MSU1JVF9FWENFRURFRCksCi0JCQkJIGVycm1zZ19w bHVyYWwoImRhdGFiYXNlIHdpdGggT0lEICV1IG11c3QgYmUgdmFjdXVtZWQgYmVmb3JlICVkIG1v cmUgbXVsdGl4YWN0IG1lbWJlciBpcyB1c2VkIiwKLQkJCQkJCQkgICAiZGF0YWJhc2Ugd2l0aCBP SUQgJXUgbXVzdCBiZSB2YWN1dW1lZCBiZWZvcmUgJWQgbW9yZSBtdWx0aXhhY3QgbWVtYmVycyBh cmUgdXNlZCIsCi0JCQkJCQkJICAgTXVsdGlYYWN0U3RhdGUtPm9mZnNldFN0b3BMaW1pdCAtIG5l eHRPZmZzZXQgKyBubWVtYmVycywKLQkJCQkJCQkgICBNdWx0aVhhY3RTdGF0ZS0+b2xkZXN0TXVs dGlYYWN0REIsCi0JCQkJCQkJICAgTXVsdGlYYWN0U3RhdGUtPm9mZnNldFN0b3BMaW1pdCAtIG5l eHRPZmZzZXQgKyBubWVtYmVycyksCi0JCQkJIGVycmhpbnQoIkV4ZWN1dGUgYSBkYXRhYmFzZS13 aWRlIFZBQ1VVTSBpbiB0aGF0IGRhdGFiYXNlIHdpdGggcmVkdWNlZCBcInZhY3V1bV9tdWx0aXhh Y3RfZnJlZXplX21pbl9hZ2VcIiBhbmQgXCJ2YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV90YWJsZV9h Z2VcIiBzZXR0aW5ncy4iKSkpOwotCiAJRXh0ZW5kTXVsdGlYYWN0TWVtYmVyKG5leHRPZmZzZXQs IG5tZW1iZXJzKTsKIAogCS8qCkBAIC0xOTc2LDcgKzE4OTEsNyBAQCBNdWx0aVhhY3RTaG1lbUlu aXQodm9pZCkKIAkJCQkgICJwZ19tdWx0aXhhY3Qvb2Zmc2V0cyIsIExXVFJBTkNIRV9NVUxUSVhB Q1RPRkZTRVRfQlVGRkVSLAogCQkJCSAgTFdUUkFOQ0hFX01VTFRJWEFDVE9GRlNFVF9TTFJVLAog CQkJCSAgU1lOQ19IQU5ETEVSX01VTFRJWEFDVF9PRkZTRVQsCi0JCQkJICBmYWxzZSk7CisJCQkJ ICB0cnVlKTsKIAlTbHJ1UGFnZVByZWNlZGVzVW5pdFRlc3RzKE11bHRpWGFjdE9mZnNldEN0bCwg TVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0UpOwogCVNpbXBsZUxydUluaXQoTXVsdGlYYWN0TWVt YmVyQ3RsLAogCQkJCSAgIm11bHRpeGFjdF9tZW1iZXIiLCBtdWx0aXhhY3RfbWVtYmVyX2J1ZmZl cnMsIDAsCkBAIC0yNzIxLDggKzI2MzYsNiBAQCBTZXRPZmZzZXRWYWN1dW1MaW1pdChib29sIGlz X3N0YXJ0dXApCiAJTXVsdGlYYWN0T2Zmc2V0IG5leHRPZmZzZXQ7CiAJYm9vbAkJb2xkZXN0T2Zm c2V0S25vd24gPSBmYWxzZTsKIAlib29sCQlwcmV2T2xkZXN0T2Zmc2V0S25vd247Ci0JTXVsdGlY YWN0T2Zmc2V0IG9mZnNldFN0b3BMaW1pdCA9IDA7Ci0JTXVsdGlYYWN0T2Zmc2V0IHByZXZPZmZz ZXRTdG9wTGltaXQ7CiAKIAkvKgogCSAqIE5COiBIYXZlIHRvIHByZXZlbnQgY29uY3VycmVudCB0 cnVuY2F0aW9uLCB3ZSBtaWdodCBvdGhlcndpc2UgdHJ5IHRvCkBAIC0yNzM3LDcgKzI2NTAsNiBA QCBTZXRPZmZzZXRWYWN1dW1MaW1pdChib29sIGlzX3N0YXJ0dXApCiAJbmV4dE9mZnNldCA9IE11 bHRpWGFjdFN0YXRlLT5uZXh0T2Zmc2V0OwogCXByZXZPbGRlc3RPZmZzZXRLbm93biA9IE11bHRp WGFjdFN0YXRlLT5vbGRlc3RPZmZzZXRLbm93bjsKIAlwcmV2T2xkZXN0T2Zmc2V0ID0gTXVsdGlY YWN0U3RhdGUtPm9sZGVzdE9mZnNldDsKLQlwcmV2T2Zmc2V0U3RvcExpbWl0ID0gTXVsdGlYYWN0 U3RhdGUtPm9mZnNldFN0b3BMaW1pdDsKIAlBc3NlcnQoTXVsdGlYYWN0U3RhdGUtPmZpbmlzaGVk U3RhcnR1cCk7CiAJTFdMb2NrUmVsZWFzZShNdWx0aVhhY3RHZW5Mb2NrKTsKIApAQCAtMjc2OCwx MSArMjY4MCw3IEBAIFNldE9mZnNldFZhY3V1bUxpbWl0KGJvb2wgaXNfc3RhcnR1cCkKIAkJb2xk ZXN0T2Zmc2V0S25vd24gPQogCQkJZmluZF9tdWx0aXhhY3Rfc3RhcnQob2xkZXN0TXVsdGlYYWN0 SWQsICZvbGRlc3RPZmZzZXQpOwogCi0JCWlmIChvbGRlc3RPZmZzZXRLbm93bikKLQkJCWVyZXBv cnQoREVCVUcxLAotCQkJCQkoZXJybXNnX2ludGVybmFsKCJvbGRlc3QgTXVsdGlYYWN0SWQgbWVt YmVyIGlzIGF0IG9mZnNldCAldSIsCi0JCQkJCQkJCQkgb2xkZXN0T2Zmc2V0KSkpOwotCQllbHNl CisJCWlmICghb2xkZXN0T2Zmc2V0S25vd24pCiAJCQllcmVwb3J0KExPRywKIAkJCQkJKGVycm1z ZygiTXVsdGlYYWN0IG1lbWJlciB3cmFwYXJvdW5kIHByb3RlY3Rpb25zIGFyZSBkaXNhYmxlZCBi ZWNhdXNlIG9sZGVzdCBjaGVja3BvaW50ZWQgTXVsdGlYYWN0ICV1IGRvZXMgbm90IGV4aXN0IG9u IGRpc2siLAogCQkJCQkJCW9sZGVzdE11bHRpWGFjdElkKSkpOwpAQCAtMjc4NSwyNCArMjY5Myw3 IEBAIFNldE9mZnNldFZhY3V1bUxpbWl0KGJvb2wgaXNfc3RhcnR1cCkKIAkgKiBvdmVycnVuIG9m IG9sZCBkYXRhIGluIHRoZSBtZW1iZXJzIFNMUlUgYXJlYS4gV2UgY2FuIG9ubHkgZG8gc28gaWYg dGhlCiAJICogb2xkZXN0IG9mZnNldCBpcyBrbm93biB0aG91Z2guCiAJICovCi0JaWYgKG9sZGVz dE9mZnNldEtub3duKQotCXsKLQkJLyogbW92ZSBiYWNrIHRvIHN0YXJ0IG9mIHRoZSBjb3JyZXNw b25kaW5nIHNlZ21lbnQgKi8KLQkJb2Zmc2V0U3RvcExpbWl0ID0gb2xkZXN0T2Zmc2V0IC0gKG9s ZGVzdE9mZnNldCAlCi0JCQkJCQkJCQkJICAoTVVMVElYQUNUX01FTUJFUlNfUEVSX1BBR0UgKiBT TFJVX1BBR0VTX1BFUl9TRUdNRU5UKSk7Ci0KLQkJLyogYWx3YXlzIGxlYXZlIG9uZSBzZWdtZW50 IGJlZm9yZSB0aGUgd3JhcGFyb3VuZCBwb2ludCAqLwotCQlvZmZzZXRTdG9wTGltaXQgLT0gKE1V TFRJWEFDVF9NRU1CRVJTX1BFUl9QQUdFICogU0xSVV9QQUdFU19QRVJfU0VHTUVOVCk7Ci0KLQkJ aWYgKCFwcmV2T2xkZXN0T2Zmc2V0S25vd24gJiYgIWlzX3N0YXJ0dXApCi0JCQllcmVwb3J0KExP RywKLQkJCQkJKGVycm1zZygiTXVsdGlYYWN0IG1lbWJlciB3cmFwYXJvdW5kIHByb3RlY3Rpb25z IGFyZSBub3cgZW5hYmxlZCIpKSk7Ci0KLQkJZXJlcG9ydChERUJVRzEsCi0JCQkJKGVycm1zZ19p bnRlcm5hbCgiTXVsdGlYYWN0IG1lbWJlciBzdG9wIGxpbWl0IGlzIG5vdyAldSBiYXNlZCBvbiBN dWx0aVhhY3QgJXUiLAotCQkJCQkJCQkgb2Zmc2V0U3RvcExpbWl0LCBvbGRlc3RNdWx0aVhhY3RJ ZCkpKTsKLQl9Ci0JZWxzZSBpZiAocHJldk9sZGVzdE9mZnNldEtub3duKQorCWlmIChwcmV2T2xk ZXN0T2Zmc2V0S25vd24pCiAJewogCQkvKgogCQkgKiBJZiB3ZSBmYWlsZWQgdG8gZ2V0IHRoZSBv bGRlc3Qgb2Zmc2V0IHRoaXMgdGltZSwgYnV0IHdlIGhhdmUgYQpAQCAtMjgxMiwxNCArMjcwMywx MiBAQCBTZXRPZmZzZXRWYWN1dW1MaW1pdChib29sIGlzX3N0YXJ0dXApCiAJCSAqLwogCQlvbGRl c3RPZmZzZXQgPSBwcmV2T2xkZXN0T2Zmc2V0OwogCQlvbGRlc3RPZmZzZXRLbm93biA9IHRydWU7 Ci0JCW9mZnNldFN0b3BMaW1pdCA9IHByZXZPZmZzZXRTdG9wTGltaXQ7CiAJfQogCiAJLyogSW5z dGFsbCB0aGUgY29tcHV0ZWQgdmFsdWVzICovCiAJTFdMb2NrQWNxdWlyZShNdWx0aVhhY3RHZW5M b2NrLCBMV19FWENMVVNJVkUpOwogCU11bHRpWGFjdFN0YXRlLT5vbGRlc3RPZmZzZXQgPSBvbGRl c3RPZmZzZXQ7CiAJTXVsdGlYYWN0U3RhdGUtPm9sZGVzdE9mZnNldEtub3duID0gb2xkZXN0T2Zm c2V0S25vd247Ci0JTXVsdGlYYWN0U3RhdGUtPm9mZnNldFN0b3BMaW1pdCA9IG9mZnNldFN0b3BM aW1pdDsKIAlMV0xvY2tSZWxlYXNlKE11bHRpWGFjdEdlbkxvY2spOwogCiAJLyoKQEAgLTI4Mjks NTQgKzI3MTgsNiBAQCBTZXRPZmZzZXRWYWN1dW1MaW1pdChib29sIGlzX3N0YXJ0dXApCiAJCShu ZXh0T2Zmc2V0IC0gb2xkZXN0T2Zmc2V0ID4gTVVMVElYQUNUX01FTUJFUl9TQUZFX1RIUkVTSE9M RCk7CiB9CiAKLS8qCi0gKiBSZXR1cm4gd2hldGhlciBhZGRpbmcgImRpc3RhbmNlIiB0byAic3Rh cnQiIHdvdWxkIG1vdmUgcGFzdCAiYm91bmRhcnkiLgotICoKLSAqIFdlIHVzZSB0aGlzIHRvIGRl dGVybWluZSB3aGV0aGVyIHRoZSBhZGRpdGlvbiBpcyAid3JhcHBpbmcgYXJvdW5kIiB0aGUKLSAq IGJvdW5kYXJ5IHBvaW50LCBoZW5jZSB0aGUgbmFtZS4gIFRoZSByZWFzb24gd2UgZG9uJ3Qgd2Fu dCB0byB1c2UgdGhlIHJlZ3VsYXIKLSAqIDJeMzEtbW9kdWxvIGFyaXRobWV0aWMgaGVyZSBpcyB0 aGF0IHdlIHdhbnQgdG8gYmUgYWJsZSB0byB1c2UgdGhlIHdob2xlIG9mCi0gKiB0aGUgMl4zMi0x IHNwYWNlIGhlcmUsIGFsbG93aW5nIGZvciBtb3JlIG11bHRpeGFjdHMgdGhhbiB3b3VsZCBmaXQK LSAqIG90aGVyd2lzZS4KLSAqLwotc3RhdGljIGJvb2wKLU11bHRpWGFjdE9mZnNldFdvdWxkV3Jh cChNdWx0aVhhY3RPZmZzZXQgYm91bmRhcnksIE11bHRpWGFjdE9mZnNldCBzdGFydCwKLQkJCQkJ CSB1aW50MzIgZGlzdGFuY2UpCi17Ci0JTXVsdGlYYWN0T2Zmc2V0IGZpbmlzaDsKLQotCS8qCi0J ICogTm90ZSB0aGF0IG9mZnNldCBudW1iZXIgMCBpcyBub3QgdXNlZCAoc2VlIEdldE11bHRpWGFj dElkTWVtYmVycyksIHNvCi0JICogaWYgdGhlIGFkZGl0aW9uIHdyYXBzIGFyb3VuZCB0aGUgVUlO VF9NQVggYm91bmRhcnksIHNraXAgdGhhdCB2YWx1ZS4KLQkgKi8KLQlmaW5pc2ggPSBzdGFydCAr IGRpc3RhbmNlOwotCWlmIChmaW5pc2ggPCBzdGFydCkKLQkJZmluaXNoKys7Ci0KLQkvKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0JICogV2hlbiB0aGUgYm91bmRhcnkgaXMgbnVtZXJpY2FsbHkgZ3JlYXRlciB0 aGFuIHRoZSBzdGFydGluZyBwb2ludCwgYW55Ci0JICogdmFsdWUgbnVtZXJpY2FsbHkgYmV0d2Vl biB0aGUgdHdvIGlzIG5vdCB3cmFwcGVkOgotCSAqCi0JICoJPC0tLS1TLS0tLUItLS0tPgotCSAq CVstLS0pCQkJID0gRiB3cmFwcGVkIHBhc3QgQiAoYW5kIFVJTlRfTUFYKQotCSAqCQkgWy0tLSkJ CSA9IEYgbm90IHdyYXBwZWQKLQkgKgkJCSAgWy0tLS1dID0gRiB3cmFwcGVkIHBhc3QgQgotCSAq Ci0JICogV2hlbiB0aGUgYm91bmRhcnkgaXMgbnVtZXJpY2FsbHkgbGVzcyB0aGFuIHRoZSBzdGFy dGluZyBwb2ludCAoaS5lLiB0aGUKLQkgKiBVSU5UX01BWCB3cmFwYXJvdW5kIG9jY3VycyBzb21l d2hlcmUgaW4gYmV0d2VlbikgdGhlbiBhbGwgdmFsdWVzIGluCi0JICogYmV0d2VlbiBhcmUgd3Jh cHBlZDoKLQkgKgotCSAqCTwtLS0tQi0tLS1TLS0tLT4KLQkgKglbLS0tKQkJCSA9IEYgbm90IHdy YXBwZWQgcGFzdCBCIChidXQgd3JhcHBlZCBwYXN0IFVJTlRfTUFYKQotCSAqCQkgWy0tLSkJCSA9 IEYgd3JhcHBlZCBwYXN0IEIgKGFuZCBVSU5UX01BWCkKLQkgKgkJCSAgWy0tLS1dID0gRiBub3Qg d3JhcHBlZAotCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQkgKi8KLQlpZiAoc3RhcnQgPCBib3VuZGFyeSkK LQkJcmV0dXJuIGZpbmlzaCA+PSBib3VuZGFyeSB8fCBmaW5pc2ggPCBzdGFydDsKLQllbHNlCi0J CXJldHVybiBmaW5pc2ggPj0gYm91bmRhcnkgJiYgZmluaXNoIDwgc3RhcnQ7Ci19Ci0KIC8qCiAg KiBGaW5kIHRoZSBzdGFydGluZyBvZmZzZXQgb2YgdGhlIGdpdmVuIE11bHRpWGFjdElkLgogICoK QEAgLTI5OTgsOCArMjgzOSw5IEBAIE11bHRpWGFjdE1lbWJlckZyZWV6ZVRocmVzaG9sZCh2b2lk KQogCSAqIHdlIHRyeSB0byBlbGltaW5hdGUgZnJvbSB0aGUgc3lzdGVtIGlzIGJhc2VkIG9uIGhv dyBmYXIgd2UgYXJlIHBhc3QKIAkgKiBNVUxUSVhBQ1RfTUVNQkVSX1NBRkVfVEhSRVNIT0xELgog CSAqLwotCWZyYWN0aW9uID0gKGRvdWJsZSkgKG1lbWJlcnMgLSBNVUxUSVhBQ1RfTUVNQkVSX1NB RkVfVEhSRVNIT0xEKSAvCi0JCShNVUxUSVhBQ1RfTUVNQkVSX0RBTkdFUl9USFJFU0hPTEQgLSBN VUxUSVhBQ1RfTUVNQkVSX1NBRkVfVEhSRVNIT0xEKTsKKwlmcmFjdGlvbiA9IChkb3VibGUpICht ZW1iZXJzIC0gTVVMVElYQUNUX01FTUJFUl9TQUZFX1RIUkVTSE9MRCk7CisJZnJhY3Rpb24gLz0g KGRvdWJsZSkgKE1VTFRJWEFDVF9NRU1CRVJfREFOR0VSX1RIUkVTSE9MRCAtIE1VTFRJWEFDVF9N RU1CRVJfU0FGRV9USFJFU0hPTEQpOworCiAJdmljdGltX211bHRpeGFjdHMgPSBtdWx0aXhhY3Rz ICogZnJhY3Rpb247CiAKIAkvKiBmcmFjdGlvbiBjb3VsZCBiZSA+IDEuMCwgYnV0IGxvd2VzdCBw b3NzaWJsZSBmcmVlemUgYWdlIGlzIHplcm8gKi8KQEAgLTMzNDUsNyArMzE4Nyw3IEBAIE11bHRp WGFjdElkUHJlY2VkZXNPckVxdWFscyhNdWx0aVhhY3RJZCBtdWx0aTEsIE11bHRpWGFjdElkIG11 bHRpMikKIHN0YXRpYyBib29sCiBNdWx0aVhhY3RPZmZzZXRQcmVjZWRlcyhNdWx0aVhhY3RPZmZz ZXQgb2Zmc2V0MSwgTXVsdGlYYWN0T2Zmc2V0IG9mZnNldDIpCiB7Ci0JaW50MzIJCWRpZmYgPSAo aW50MzIpIChvZmZzZXQxIC0gb2Zmc2V0Mik7CisJaW50NjQJCWRpZmYgPSAoaW50NjQpIChvZmZz ZXQxIC0gb2Zmc2V0Mik7CiAKIAlyZXR1cm4gKGRpZmYgPCAwKTsKIH0KZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYyBiL3NyYy9iaW4vcGdfcmVzZXR3YWwvcGdf cmVzZXR3YWwuYwppbmRleCA5ODVjZDA2ODAyLi4xYWYyY2U0YjkzIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX3Jlc2V0d2FsL3BnX3Jlc2V0d2FsLmMKKysrIGIvc3JjL2Jpbi9wZ19yZXNldHdhbC9w Z19yZXNldHdhbC5jCkBAIC0yNjQsNyArMjY0LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQogCiAJCQljYXNlICdPJzoKIAkJCQllcnJubyA9IDA7Ci0JCQkJc2V0X214b2ZmID0gc3Ry dG91bChvcHRhcmcsICZlbmRwdHIsIDApOworCQkJCXNldF9teG9mZiA9IHN0cnRvdTY0KG9wdGFy ZywgJmVuZHB0ciwgMCk7CiAJCQkJaWYgKGVuZHB0ciA9PSBvcHRhcmcgfHwgKmVuZHB0ciAhPSAn XDAnIHx8IGVycm5vICE9IDApCiAJCQkJewogCQkJCQlwZ19sb2dfZXJyb3IoImludmFsaWQgYXJn dW1lbnQgZm9yIG9wdGlvbiAlcyIsICItTyIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19yZXNl dHdhbC90LzAwMV9iYXNpYy5wbCBiL3NyYy9iaW4vcGdfcmVzZXR3YWwvdC8wMDFfYmFzaWMucGwK aW5kZXggOTgyOWU0ODEwNi4uZjhhOGVlZjQ0ZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19yZXNl dHdhbC90LzAwMV9iYXNpYy5wbAorKysgYi9zcmMvYmluL3BnX3Jlc2V0d2FsL3QvMDAxX2Jhc2lj LnBsCkBAIC0yMDYsNyArMjA2LDcgQEAgcHVzaCBAY21kLAogICBzcHJpbnRmKCIlZCwlZCIsIGhl eCgkZmlsZXNbMF0pID09IDAgPyAzIDogaGV4KCRmaWxlc1swXSksIGhleCgkZmlsZXNbLTFdKSk7 CiAKIEBmaWxlcyA9IGdldF9zbHJ1X2ZpbGVzKCdwZ19tdWx0aXhhY3Qvb2Zmc2V0cycpOwotJG11 bHQgPSAzMiAqICRibGNrc3ogLyA0OworJG11bHQgPSAzMiAqICRibGNrc3ogLyA4OwogIyAtbSBh cmd1bWVudCBpcyAibmV3LG9sZCIKIHB1c2ggQGNtZCwgJy1tJywKICAgc3ByaW50ZigiJWQsJWQi LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL211bHRpeGFjdC5oIGIvc3JjL2luY2x1 ZGUvYWNjZXNzL211bHRpeGFjdC5oCmluZGV4IDdmZmQyNTZjNzQuLjkwNTgzNjM0ZWMgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9tdWx0aXhhY3QuaAorKysgYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvbXVsdGl4YWN0LmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2RlZmluZSBNdWx0aVhhY3RJ ZElzVmFsaWQobXVsdGkpICgobXVsdGkpICE9IEludmFsaWRNdWx0aVhhY3RJZCkKIAotI2RlZmlu ZSBNYXhNdWx0aVhhY3RPZmZzZXQJKChNdWx0aVhhY3RPZmZzZXQpIDB4RkZGRkZGRkYpCisjZGVm aW5lIE1heE11bHRpWGFjdE9mZnNldAlVSU5UNjRDT05TVCgweEZGRkZGRkZGRkZGRkZGRkYpCiAK IC8qCiAgKiBQb3NzaWJsZSBtdWx0aXhhY3QgbG9jayBtb2RlcyAoInN0YXR1cyIpLiAgVGhlIGZp cnN0IGZvdXIgbW9kZXMgYXJlIGZvcgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYy5oIGIvc3Jj L2luY2x1ZGUvYy5oCmluZGV4IGRjMTg0MTM0NmMuLmNjZmI4MmI0NzggMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2MuaAorKysgYi9zcmMvaW5jbHVkZS9jLmgKQEAgLTY2MSw3ICs2NjEsNyBAQCB0 eXBlZGVmIHVpbnQzMiBTdWJUcmFuc2FjdGlvbklkOwogLyogTXVsdGlYYWN0SWQgbXVzdCBiZSBl cXVpdmFsZW50IHRvIFRyYW5zYWN0aW9uSWQsIHRvIGZpdCBpbiB0X3htYXggKi8KIHR5cGVkZWYg VHJhbnNhY3Rpb25JZCBNdWx0aVhhY3RJZDsKIAotdHlwZWRlZiB1aW50MzIgTXVsdGlYYWN0T2Zm c2V0OwordHlwZWRlZiB1aW50NjQgTXVsdGlYYWN0T2Zmc2V0OwogCiB0eXBlZGVmIHVpbnQzMiBD b21tYW5kSWQ7CiAKLS0gCjIuNDUuMgoK --0000000000006269a006218013d3 Content-Type: application/octet-stream; name="v3-0001-Use-64-bit-format-output-for-multixact-offsets.patch" Content-Disposition: attachment; filename="v3-0001-Use-64-bit-format-output-for-multixact-offsets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0rnfn2z0 RnJvbSBjYzU4OGYwOTFhMmMxOTcwODQ5YTZlMzQxY2ExYThhNzlmYzFhOTM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgNyBBdWcgMjAyNCAxNjozNToyMiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggdjMgMS8zXSBV c2UgNjQtYml0IGZvcm1hdCBvdXRwdXQgZm9yIG11bHRpeGFjdCBvZmZzZXRzCgpBdXRob3I6IE1h eGltIE9ybG92IDxvcmxvdm1nQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvcm1n cmRlc2MvbXhhY3RkZXNjLmMgICB8ICA5ICsrKystLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvcm1n cmRlc2MveGxvZ2Rlc2MuYyAgICB8ICA0ICsrLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L211bHRpeGFjdC5jICAgIHwgMjYgKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jIHwgIDUgKysrLS0KIHNyYy9iaW4vcGdfY29u dHJvbGRhdGEvcGdfY29udHJvbGRhdGEuYyAgIHwgIDQgKystLQogc3JjL2Jpbi9wZ19yZXNldHdh bC9wZ19yZXNldHdhbC5jICAgICAgICAgfCAgOCArKystLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDMx IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9ybWdyZGVzYy9teGFjdGRlc2MuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVz Yy9teGFjdGRlc2MuYwppbmRleCAzZThhZDRkNWVmLi4xYjQ4NmRlMzhjIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvbXhhY3RkZXNjLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL3JtZ3JkZXNjL214YWN0ZGVzYy5jCkBAIC02NSw4ICs2NSw4IEBAIG11bHRpeGFjdF9k ZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJeGxfbXVsdGl4 YWN0X2NyZWF0ZSAqeGxyZWMgPSAoeGxfbXVsdGl4YWN0X2NyZWF0ZSAqKSByZWM7CiAJCWludAkJ CWk7CiAKLQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIldSBvZmZzZXQgJXUgbm1lbWJlcnMgJWQ6 ICIsIHhscmVjLT5taWQsCi0JCQkJCQkgeGxyZWMtPm1vZmYsIHhscmVjLT5ubWVtYmVycyk7CisJ CWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiJXUgb2Zmc2V0ICVsbHUgbm1lbWJlcnMgJWQ6ICIsIHhs cmVjLT5taWQsCisJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGxyZWMtPm1vZmYsIHhscmVj LT5ubWVtYmVycyk7CiAJCWZvciAoaSA9IDA7IGkgPCB4bHJlYy0+bm1lbWJlcnM7IGkrKykKIAkJ CW91dF9tZW1iZXIoYnVmLCAmeGxyZWMtPm1lbWJlcnNbaV0pOwogCX0KQEAgLTc0LDkgKzc0LDEw IEBAIG11bHRpeGFjdF9kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29y ZCkKIAl7CiAJCXhsX211bHRpeGFjdF90cnVuY2F0ZSAqeGxyZWMgPSAoeGxfbXVsdGl4YWN0X3Ry dW5jYXRlICopIHJlYzsKIAotCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIm9mZnNldHMgWyV1LCAl dSksIG1lbWJlcnMgWyV1LCAldSkiLAorCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIm9mZnNldHMg WyV1LCAldSksIG1lbWJlcnMgWyVsbHUsICVsbHUpIiwKIAkJCQkJCSB4bHJlYy0+c3RhcnRUcnVu Y09mZiwgeGxyZWMtPmVuZFRydW5jT2ZmLAotCQkJCQkJIHhscmVjLT5zdGFydFRydW5jTWVtYiwg eGxyZWMtPmVuZFRydW5jTWVtYik7CisJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGxyZWMt PnN0YXJ0VHJ1bmNNZW1iLAorCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHhscmVjLT5lbmRU cnVuY01lbWIpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3Jk ZXNjL3hsb2dkZXNjLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MveGxvZ2Rlc2MuYwpp bmRleCAzNjMyOTRkNjIzLi5hYWExOWM4MWM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3Mvcm1ncmRlc2MveGxvZ2Rlc2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2Mv eGxvZ2Rlc2MuYwpAQCAtNjYsNyArNjYsNyBAQCB4bG9nX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhM b2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlDaGVja1BvaW50ICpjaGVja3BvaW50ID0gKENoZWNr UG9pbnQgKikgcmVjOwogCiAJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAicmVkbyAlWC8lWDsgIgot CQkJCQkJICJ0bGkgJXU7IHByZXYgdGxpICV1OyBmcHcgJXM7IHdhbF9sZXZlbCAlczsgeGlkICV1 OiV1OyBvaWQgJXU7IG11bHRpICV1OyBvZmZzZXQgJXU7ICIKKwkJCQkJCSAidGxpICV1OyBwcmV2 IHRsaSAldTsgZnB3ICVzOyB3YWxfbGV2ZWwgJXM7IHhpZCAldToldTsgb2lkICV1OyBtdWx0aSAl dTsgb2Zmc2V0ICVsbHU7ICIKIAkJCQkJCSAib2xkZXN0IHhpZCAldSBpbiBEQiAldTsgb2xkZXN0 IG11bHRpICV1IGluIERCICV1OyAiCiAJCQkJCQkgIm9sZGVzdC9uZXdlc3QgY29tbWl0IHRpbWVz dGFtcCB4aWQ6ICV1LyV1OyAiCiAJCQkJCQkgIm9sZGVzdCBydW5uaW5nIHhpZCAldTsgJXMiLApA QCAtNzksNyArNzksNyBAQCB4bG9nX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0 ZSAqcmVjb3JkKQogCQkJCQkJIFhpZEZyb21GdWxsVHJhbnNhY3Rpb25JZChjaGVja3BvaW50LT5u ZXh0WGlkKSwKIAkJCQkJCSBjaGVja3BvaW50LT5uZXh0T2lkLAogCQkJCQkJIGNoZWNrcG9pbnQt Pm5leHRNdWx0aSwKLQkJCQkJCSBjaGVja3BvaW50LT5uZXh0TXVsdGlPZmZzZXQsCisJCQkJCQkg KHVuc2lnbmVkIGxvbmcgbG9uZykgY2hlY2twb2ludC0+bmV4dE11bHRpT2Zmc2V0LAogCQkJCQkJ IGNoZWNrcG9pbnQtPm9sZGVzdFhpZCwKIAkJCQkJCSBjaGVja3BvaW50LT5vbGRlc3RYaWREQiwK IAkJCQkJCSBjaGVja3BvaW50LT5vbGRlc3RNdWx0aSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v bXVsdGl4YWN0LmMKaW5kZXggOGMzN2Q3ZWJhNy4uYWI5MDkxMmVkMyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKQEAgLTEyNjQsNyArMTI2NCw4IEBAIEdldE5ld011bHRp WGFjdElkKGludCBubWVtYmVycywgTXVsdGlYYWN0T2Zmc2V0ICpvZmZzZXQpCiAKIAlMV0xvY2tS ZWxlYXNlKE11bHRpWGFjdEdlbkxvY2spOwogCi0JZGVidWdfZWxvZzQoREVCVUcyLCAiR2V0TmV3 OiByZXR1cm5pbmcgJXUgb2Zmc2V0ICV1IiwgcmVzdWx0LCAqb2Zmc2V0KTsKKwlkZWJ1Z19lbG9n NChERUJVRzIsICJHZXROZXc6IHJldHVybmluZyAldSBvZmZzZXQgJWxsdSIsIHJlc3VsdCwKKwkJ CQkodW5zaWduZWQgbG9uZyBsb25nKSAqb2Zmc2V0KTsKIAlyZXR1cm4gcmVzdWx0OwogfQogCkBA IC0yMjkzLDggKzIyOTQsOSBAQCBNdWx0aVhhY3RHZXRDaGVja3B0TXVsdGkoYm9vbCBpc19zaHV0 ZG93biwKIAlMV0xvY2tSZWxlYXNlKE11bHRpWGFjdEdlbkxvY2spOwogCiAJZGVidWdfZWxvZzYo REVCVUcyLAotCQkJCSJNdWx0aVhhY3Q6IGNoZWNrcG9pbnQgaXMgbmV4dE11bHRpICV1LCBuZXh0 T2Zmc2V0ICV1LCBvbGRlc3RNdWx0aSAldSBpbiBEQiAldSIsCi0JCQkJKm5leHRNdWx0aSwgKm5l eHRNdWx0aU9mZnNldCwgKm9sZGVzdE11bHRpLCAqb2xkZXN0TXVsdGlEQik7CisJCQkJIk11bHRp WGFjdDogY2hlY2twb2ludCBpcyBuZXh0TXVsdGkgJXUsIG5leHRPZmZzZXQgJWxsdSwgb2xkZXN0 TXVsdGkgJXUgaW4gREIgJXUiLAorCQkJCSpuZXh0TXVsdGksICh1bnNpZ25lZCBsb25nIGxvbmcp ICpuZXh0TXVsdGlPZmZzZXQsICpvbGRlc3RNdWx0aSwKKwkJCQkqb2xkZXN0TXVsdGlEQik7CiB9 CiAKIC8qCkBAIC0yMzI4LDggKzIzMzAsOCBAQCB2b2lkCiBNdWx0aVhhY3RTZXROZXh0TVhhY3Qo TXVsdGlYYWN0SWQgbmV4dE11bHRpLAogCQkJCQkgIE11bHRpWGFjdE9mZnNldCBuZXh0TXVsdGlP ZmZzZXQpCiB7Ci0JZGVidWdfZWxvZzQoREVCVUcyLCAiTXVsdGlYYWN0OiBzZXR0aW5nIG5leHQg bXVsdGkgdG8gJXUgb2Zmc2V0ICV1IiwKLQkJCQluZXh0TXVsdGksIG5leHRNdWx0aU9mZnNldCk7 CisJZGVidWdfZWxvZzQoREVCVUcyLCAiTXVsdGlYYWN0OiBzZXR0aW5nIG5leHQgbXVsdGkgdG8g JXUgb2Zmc2V0ICVsbHUiLAorCQkJCW5leHRNdWx0aSwgKHVuc2lnbmVkIGxvbmcgbG9uZykgbmV4 dE11bHRpT2Zmc2V0KTsKIAlMV0xvY2tBY3F1aXJlKE11bHRpWGFjdEdlbkxvY2ssIExXX0VYQ0xV U0lWRSk7CiAJTXVsdGlYYWN0U3RhdGUtPm5leHRNWGFjdCA9IG5leHRNdWx0aTsKIAlNdWx0aVhh Y3RTdGF0ZS0+bmV4dE9mZnNldCA9IG5leHRNdWx0aU9mZnNldDsKQEAgLTI1MTksOCArMjUyMSw4 IEBAIE11bHRpWGFjdEFkdmFuY2VOZXh0TVhhY3QoTXVsdGlYYWN0SWQgbWluTXVsdGksCiAJfQog CWlmIChNdWx0aVhhY3RPZmZzZXRQcmVjZWRlcyhNdWx0aVhhY3RTdGF0ZS0+bmV4dE9mZnNldCwg bWluTXVsdGlPZmZzZXQpKQogCXsKLQkJZGVidWdfZWxvZzMoREVCVUcyLCAiTXVsdGlYYWN0OiBz ZXR0aW5nIG5leHQgb2Zmc2V0IHRvICV1IiwKLQkJCQkJbWluTXVsdGlPZmZzZXQpOworCQlkZWJ1 Z19lbG9nMyhERUJVRzIsICJNdWx0aVhhY3Q6IHNldHRpbmcgbmV4dCBvZmZzZXQgdG8gJWxsdSIs CisJCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpIG1pbk11bHRpT2Zmc2V0KTsKIAkJTXVsdGlYYWN0 U3RhdGUtPm5leHRPZmZzZXQgPSBtaW5NdWx0aU9mZnNldDsKIAl9CiAJTFdMb2NrUmVsZWFzZShN dWx0aVhhY3RHZW5Mb2NrKTsKQEAgLTMyMTEsMTEgKzMyMTMsMTIgQEAgVHJ1bmNhdGVNdWx0aVhh Y3QoTXVsdGlYYWN0SWQgbmV3T2xkZXN0TXVsdGksIE9pZCBuZXdPbGRlc3RNdWx0aURCKQogCiAJ ZWxvZyhERUJVRzEsICJwZXJmb3JtaW5nIG11bHRpeGFjdCB0cnVuY2F0aW9uOiAiCiAJCSAib2Zm c2V0cyBbJXUsICV1KSwgb2Zmc2V0cyBzZWdtZW50cyBbJWxseCwgJWxseCksICIKLQkJICJtZW1i ZXJzIFsldSwgJXUpLCBtZW1iZXJzIHNlZ21lbnRzIFslbGx4LCAlbGx4KSIsCisJCSAibWVtYmVy cyBbJWxsdSwgJWxsdSksIG1lbWJlcnMgc2VnbWVudHMgWyVsbHgsICVsbHgpIiwKIAkJIG9sZGVz dE11bHRpLCBuZXdPbGRlc3RNdWx0aSwKIAkJICh1bnNpZ25lZCBsb25nIGxvbmcpIE11bHRpWGFj dElkVG9PZmZzZXRTZWdtZW50KG9sZGVzdE11bHRpKSwKIAkJICh1bnNpZ25lZCBsb25nIGxvbmcp IE11bHRpWGFjdElkVG9PZmZzZXRTZWdtZW50KG5ld09sZGVzdE11bHRpKSwKLQkJIG9sZGVzdE9m ZnNldCwgbmV3T2xkZXN0T2Zmc2V0LAorCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgb2xkZXN0T2Zm c2V0LAorCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgbmV3T2xkZXN0T2Zmc2V0LAogCQkgKHVuc2ln bmVkIGxvbmcgbG9uZykgTVhPZmZzZXRUb01lbWJlclNlZ21lbnQob2xkZXN0T2Zmc2V0KSwKIAkJ ICh1bnNpZ25lZCBsb25nIGxvbmcpIE1YT2Zmc2V0VG9NZW1iZXJTZWdtZW50KG5ld09sZGVzdE9m ZnNldCkpOwogCkBAIC0zNDcxLDExICszNDc0LDEyIEBAIG11bHRpeGFjdF9yZWRvKFhMb2dSZWFk ZXJTdGF0ZSAqcmVjb3JkKQogCiAJCWVsb2coREVCVUcxLCAicmVwbGF5aW5nIG11bHRpeGFjdCB0 cnVuY2F0aW9uOiAiCiAJCQkgIm9mZnNldHMgWyV1LCAldSksIG9mZnNldHMgc2VnbWVudHMgWyVs bHgsICVsbHgpLCAiCi0JCQkgIm1lbWJlcnMgWyV1LCAldSksIG1lbWJlcnMgc2VnbWVudHMgWyVs bHgsICVsbHgpIiwKKwkJCSAibWVtYmVycyBbJWxsdSwgJWxsdSksIG1lbWJlcnMgc2VnbWVudHMg WyVsbHgsICVsbHgpIiwKIAkJCSB4bHJlYy5zdGFydFRydW5jT2ZmLCB4bHJlYy5lbmRUcnVuY09m ZiwKIAkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBNdWx0aVhhY3RJZFRvT2Zmc2V0U2VnbWVudCh4 bHJlYy5zdGFydFRydW5jT2ZmKSwKIAkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBNdWx0aVhhY3RJ ZFRvT2Zmc2V0U2VnbWVudCh4bHJlYy5lbmRUcnVuY09mZiksCi0JCQkgeGxyZWMuc3RhcnRUcnVu Y01lbWIsIHhscmVjLmVuZFRydW5jTWVtYiwKKwkJCSAodW5zaWduZWQgbG9uZyBsb25nKSB4bHJl Yy5zdGFydFRydW5jTWVtYiwKKwkJCSAodW5zaWduZWQgbG9uZyBsb25nKSB4bHJlYy5lbmRUcnVu Y01lbWIsCiAJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgTVhPZmZzZXRUb01lbWJlclNlZ21lbnQo eGxyZWMuc3RhcnRUcnVuY01lbWIpLAogCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIE1YT2Zmc2V0 VG9NZW1iZXJTZWdtZW50KHhscmVjLmVuZFRydW5jTWVtYikpOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCmluZGV4IDE3ODQ5MWY2ZjUuLjBjNTk4MGE0MzYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCkBAIC04NzcsOCArODc3 LDkgQEAgSW5pdFdhbFJlY292ZXJ5KENvbnRyb2xGaWxlRGF0YSAqQ29udHJvbEZpbGUsIGJvb2wg Kndhc1NodXRkb3duX3B0ciwKIAkJCQkJCQkgVTY0RnJvbUZ1bGxUcmFuc2FjdGlvbklkKGNoZWNr UG9pbnQubmV4dFhpZCksCiAJCQkJCQkJIGNoZWNrUG9pbnQubmV4dE9pZCkpKTsKIAllcmVwb3J0 KERFQlVHMSwKLQkJCShlcnJtc2dfaW50ZXJuYWwoIm5leHQgTXVsdGlYYWN0SWQ6ICV1OyBuZXh0 IE11bHRpWGFjdE9mZnNldDogJXUiLAotCQkJCQkJCSBjaGVja1BvaW50Lm5leHRNdWx0aSwgY2hl Y2tQb2ludC5uZXh0TXVsdGlPZmZzZXQpKSk7CisJCQkoZXJybXNnX2ludGVybmFsKCJuZXh0IE11 bHRpWGFjdElkOiAldTsgbmV4dCBNdWx0aVhhY3RPZmZzZXQ6ICVsbHUiLAorCQkJCQkJCSBjaGVj a1BvaW50Lm5leHRNdWx0aSwKKwkJCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgY2hlY2tQb2lu dC5uZXh0TXVsdGlPZmZzZXQpKSk7CiAJZXJlcG9ydChERUJVRzEsCiAJCQkoZXJybXNnX2ludGVy bmFsKCJvbGRlc3QgdW5mcm96ZW4gdHJhbnNhY3Rpb24gSUQ6ICV1LCBpbiBkYXRhYmFzZSAldSIs CiAJCQkJCQkJIGNoZWNrUG9pbnQub2xkZXN0WGlkLCBjaGVja1BvaW50Lm9sZGVzdFhpZERCKSkp OwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19jb250cm9sZGF0YS9wZ19jb250cm9sZGF0YS5jIGIv c3JjL2Jpbi9wZ19jb250cm9sZGF0YS9wZ19jb250cm9sZGF0YS5jCmluZGV4IDkzYTA1ZDgwY2Eu LjQzYjY3Mjc1NzAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfY29udHJvbGRhdGEvcGdfY29udHJv bGRhdGEuYworKysgYi9zcmMvYmluL3BnX2NvbnRyb2xkYXRhL3BnX2NvbnRyb2xkYXRhLmMKQEAg LTI1Myw4ICsyNTMsOCBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCSAgIENvbnRy b2xGaWxlLT5jaGVja1BvaW50Q29weS5uZXh0T2lkKTsKIAlwcmludGYoXygiTGF0ZXN0IGNoZWNr cG9pbnQncyBOZXh0TXVsdGlYYWN0SWQ6ICAldVxuIiksCiAJCSAgIENvbnRyb2xGaWxlLT5jaGVj a1BvaW50Q29weS5uZXh0TXVsdGkpOwotCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIE5l eHRNdWx0aU9mZnNldDogICV1XG4iKSwKLQkJICAgQ29udHJvbEZpbGUtPmNoZWNrUG9pbnRDb3B5 Lm5leHRNdWx0aU9mZnNldCk7CisJcHJpbnRmKF8oIkxhdGVzdCBjaGVja3BvaW50J3MgTmV4dE11 bHRpT2Zmc2V0OiAgJWxsdVxuIiksCisJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpIENvbnRyb2xG aWxlLT5jaGVja1BvaW50Q29weS5uZXh0TXVsdGlPZmZzZXQpOwogCXByaW50ZihfKCJMYXRlc3Qg Y2hlY2twb2ludCdzIG9sZGVzdFhJRDogICAgICAgICV1XG4iKSwKIAkJICAgQ29udHJvbEZpbGUt PmNoZWNrUG9pbnRDb3B5Lm9sZGVzdFhpZCk7CiAJcHJpbnRmKF8oIkxhdGVzdCBjaGVja3BvaW50 J3Mgb2xkZXN0WElEJ3MgREI6ICAgJXVcbiIpLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19yZXNl dHdhbC9wZ19yZXNldHdhbC5jIGIvc3JjL2Jpbi9wZ19yZXNldHdhbC9wZ19yZXNldHdhbC5jCmlu ZGV4IGU5ZGNiNWE2ZDguLjk4NWNkMDY4MDIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfcmVzZXR3 YWwvcGdfcmVzZXR3YWwuYworKysgYi9zcmMvYmluL3BnX3Jlc2V0d2FsL3BnX3Jlc2V0d2FsLmMK QEAgLTczNyw4ICs3MzcsOCBAQCBQcmludENvbnRyb2xWYWx1ZXMoYm9vbCBndWVzc2VkKQogCQkg ICBDb250cm9sRmlsZS5jaGVja1BvaW50Q29weS5uZXh0T2lkKTsKIAlwcmludGYoXygiTGF0ZXN0 IGNoZWNrcG9pbnQncyBOZXh0TXVsdGlYYWN0SWQ6ICAldVxuIiksCiAJCSAgIENvbnRyb2xGaWxl LmNoZWNrUG9pbnRDb3B5Lm5leHRNdWx0aSk7Ci0JcHJpbnRmKF8oIkxhdGVzdCBjaGVja3BvaW50 J3MgTmV4dE11bHRpT2Zmc2V0OiAgJXVcbiIpLAotCQkgICBDb250cm9sRmlsZS5jaGVja1BvaW50 Q29weS5uZXh0TXVsdGlPZmZzZXQpOworCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIE5l eHRNdWx0aU9mZnNldDogICVsbHVcbiIpLAorCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSBDb250 cm9sRmlsZS5jaGVja1BvaW50Q29weS5uZXh0TXVsdGlPZmZzZXQpOwogCXByaW50ZihfKCJMYXRl c3QgY2hlY2twb2ludCdzIG9sZGVzdFhJRDogICAgICAgICV1XG4iKSwKIAkJICAgQ29udHJvbEZp bGUuY2hlY2tQb2ludENvcHkub2xkZXN0WGlkKTsKIAlwcmludGYoXygiTGF0ZXN0IGNoZWNrcG9p bnQncyBvbGRlc3RYSUQncyBEQjogICAldVxuIiksCkBAIC04MDksOCArODA5LDggQEAgUHJpbnRO ZXdDb250cm9sVmFsdWVzKHZvaWQpCiAKIAlpZiAoc2V0X214b2ZmICE9IC0xKQogCXsKLQkJcHJp bnRmKF8oIk5leHRNdWx0aU9mZnNldDogICAgICAgICAgICAgICAgICAgICAgJXVcbiIpLAotCQkJ ICAgQ29udHJvbEZpbGUuY2hlY2tQb2ludENvcHkubmV4dE11bHRpT2Zmc2V0KTsKKwkJcHJpbnRm KF8oIk5leHRNdWx0aU9mZnNldDogICAgICAgICAgICAgICAgICAgICAgJWxsdVxuIiksCisJCQkg ICAodW5zaWduZWQgbG9uZyBsb25nKSBDb250cm9sRmlsZS5jaGVja1BvaW50Q29weS5uZXh0TXVs dGlPZmZzZXQpOwogCX0KIAogCWlmIChzZXRfb2lkICE9IDApCi0tIAoyLjQ1LjIKCg== --0000000000006269a006218013d3 Content-Type: application/octet-stream; name="v3-0003-Make-pg_upgrade-convert-multixact-offsets.patch" Content-Disposition: attachment; filename="v3-0003-Make-pg_upgrade-convert-multixact-offsets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0rnfn3h2 RnJvbSA3OGNiYTJmY2ZiZTExNDUxZWM2YjhjZDZlNGM0OGIzMTU1NzFhYjBkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8bS5vcmxvdkBwb3N0Z3Jlc3Byby5ydT4K RGF0ZTogVHVlLCAxMyBBdWcgMjAyNCAxNDo0NDo1MCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggdjMg My8zXSBNYWtlIHBnX3VwZ3JhZGUgY29udmVydCBtdWx0aXhhY3Qgb2Zmc2V0cy4KCkF1dGhvcjog TWF4aW0gT3Jsb3YgPG9ybG92bWdAZ21haWwuY29tPgotLS0KIHNyYy9iaW4vcGdfdXBncmFkZS9N YWtlZmlsZSAgICAgfCAgIDEgKwogc3JjL2Jpbi9wZ191cGdyYWRlL21lc29uLmJ1aWxkICB8ICAg MSArCiBzcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jIHwgIDI5ICsrLQogc3JjL2Jpbi9w Z191cGdyYWRlL3BnX3VwZ3JhZGUuaCB8ICAxMyArLQogc3JjL2Jpbi9wZ191cGdyYWRlL3NlZ3Jl c2l6ZS5jICB8IDM1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNSBmaWxlcyBj aGFuZ2VkLCAzOTAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvYmluL3BnX3VwZ3JhZGUvc2VncmVzaXplLmMKCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX3VwZ3JhZGUvTWFrZWZpbGUgYi9zcmMvYmluL3BnX3VwZ3JhZGUvTWFrZWZpbGUKaW5kZXgg YmRlOTFlMmJlYi4uMDMwODE2NTk2ZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL01h a2VmaWxlCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9NYWtlZmlsZQpAQCAtMjEsNiArMjEsNyBA QCBPQkpTID0gXAogCWluZm8ubyBcCiAJb3B0aW9uLm8gXAogCXBhcmFsbGVsLm8gXAorCXNlZ3Jl c2l6ZS5vIFwKIAlwZ191cGdyYWRlLm8gXAogCXJlbGZpbGVudW1iZXIubyBcCiAJc2VydmVyLm8g XApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL21lc29uLmJ1aWxkIGIvc3JjL2Jpbi9w Z191cGdyYWRlL21lc29uLmJ1aWxkCmluZGV4IDk4MjVmYTMzMDUuLjJkOWY3ZTZiNjUgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9tZXNvbi5idWlsZAorKysgYi9zcmMvYmluL3BnX3Vw Z3JhZGUvbWVzb24uYnVpbGQKQEAgLTEwLDYgKzEwLDcgQEAgcGdfdXBncmFkZV9zb3VyY2VzID0g ZmlsZXMoCiAgICdpbmZvLmMnLAogICAnb3B0aW9uLmMnLAogICAncGFyYWxsZWwuYycsCisgICdz ZWdyZXNpemUuYycsCiAgICdwZ191cGdyYWRlLmMnLAogICAncmVsZmlsZW51bWJlci5jJywKICAg J3NlcnZlci5jJywKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMg Yi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jCmluZGV4IDY2MzIzNTgxNmYuLmQ5ZDhk MGVhNzggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMKKysrIGIv c3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYwpAQCAtNzUwLDcgKzc1MCwzMCBAQCBjb3B5 X3hhY3RfeGxvZ194aWQodm9pZCkKIAlpZiAob2xkX2NsdXN0ZXIuY29udHJvbGRhdGEuY2F0X3Zl ciA+PSBNVUxUSVhBQ1RfRk9STUFUQ0hBTkdFX0NBVF9WRVIgJiYKIAkJbmV3X2NsdXN0ZXIuY29u dHJvbGRhdGEuY2F0X3ZlciA+PSBNVUxUSVhBQ1RfRk9STUFUQ0hBTkdFX0NBVF9WRVIpCiAJewot CQljb3B5X3N1YmRpcl9maWxlcygicGdfbXVsdGl4YWN0L29mZnNldHMiLCAicGdfbXVsdGl4YWN0 L29mZnNldHMiKTsKKwkJLyoKKwkJICogSWYgdGhlIG9sZCBzZXJ2ZXIgaXMgYmVmb3JlIHRoZSBN VUxUSVhBQ1RPRkZTRVRfRk9STUFUQ0hBTkdFX0NBVF9WRVIKKwkJICogaXQgbXVzdCBoYXZlIDMy LWJpdCBtdWx0aXhpZCBvZmZzZXRzLCB0aHVzIGl0IHNob3VsZCBiZSBjb252ZXJ0ZWQuCisJCSAq LworCQlpZiAob2xkX2NsdXN0ZXIuY29udHJvbGRhdGEuY2F0X3ZlciA8IE1VTFRJWEFDVE9GRlNF VF9GT1JNQVRDSEFOR0VfQ0FUX1ZFUiAmJgorCQkJbmV3X2NsdXN0ZXIuY29udHJvbGRhdGEuY2F0 X3ZlciA+PSBNVUxUSVhBQ1RPRkZTRVRfRk9STUFUQ0hBTkdFX0NBVF9WRVIpCisJCXsKKwkJCXVp bnQ2NAlvbGRlc3Rfb2Zmc2V0ID0gY29udmVydF9tdWx0aXhhY3Rfb2Zmc2V0cygpOworCisJCQlp ZiAob2xkZXN0X29mZnNldCkKKwkJCXsKKwkJCQl1aW50NjQJbmV4dF9vZmZzZXQgPSBvbGRfY2x1 c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfbnh0bXhvZmY7CisKKwkJCQkvKiBIYW5kbGUgcG9zc2li bGUgd3JhcGFyb3VuZC4gKi8KKwkJCQlpZiAobmV4dF9vZmZzZXQgPCBvbGRlc3Rfb2Zmc2V0KQor CQkJCQluZXh0X29mZnNldCArPSAoKHVpbnQ2NCkgMSA8PCAzMikgLSAxOworCisJCQkJbmV4dF9v ZmZzZXQgLT0gb2xkZXN0X29mZnNldCAtIDE7CisJCQkJb2xkX2NsdXN0ZXIuY29udHJvbGRhdGEu Y2hrcG50X254dG14b2ZmID0gbmV4dF9vZmZzZXQ7CisJCQl9CisJCX0KKwkJZWxzZQorCQkJY29w eV9zdWJkaXJfZmlsZXMoInBnX211bHRpeGFjdC9vZmZzZXRzIiwgInBnX211bHRpeGFjdC9vZmZz ZXRzIik7CisKIAkJY29weV9zdWJkaXJfZmlsZXMoInBnX211bHRpeGFjdC9tZW1iZXJzIiwgInBn X211bHRpeGFjdC9tZW1iZXJzIik7CiAKIAkJcHJlcF9zdGF0dXMoIlNldHRpbmcgbmV4dCBtdWx0 aXhhY3QgSUQgYW5kIG9mZnNldCBmb3IgbmV3IGNsdXN0ZXIiKTsKQEAgLTc2MCw5ICs3ODMsOSBA QCBjb3B5X3hhY3RfeGxvZ194aWQodm9pZCkKIAkJICogY291bnRlcnMgaGVyZSBhbmQgdGhlIG9s ZGVzdCBtdWx0aSBwcmVzZW50IG9uIHN5c3RlbS4KIAkJICovCiAJCWV4ZWNfcHJvZyhVVElMSVRZ X0xPR19GSUxFLCBOVUxMLCB0cnVlLCB0cnVlLAotCQkJCSAgIlwiJXMvcGdfcmVzZXR3YWxcIiAt TyAldSAtbSAldSwldSBcIiVzXCIiLAorCQkJCSAgIlwiJXMvcGdfcmVzZXR3YWxcIiAtTyAlbGx1 IC1tICV1LCV1IFwiJXNcIiIsCiAJCQkJICBuZXdfY2x1c3Rlci5iaW5kaXIsCi0JCQkJICBvbGRf Y2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfbnh0bXhvZmYsCisJCQkJICAodW5zaWduZWQgbG9u ZyBsb25nKSBvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfbnh0bXhvZmYsCiAJCQkJICBv bGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfbnh0bXVsdGksCiAJCQkJICBvbGRfY2x1c3Rl ci5jb250cm9sZGF0YS5jaGtwbnRfb2xkc3RNdWx0aSwKIAkJCQkgIG5ld19jbHVzdGVyLnBnZGF0 YSk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oIGIvc3JjL2Jp bi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaAppbmRleCBjZGI2ZTJiNzU5Li4xNTdlNTllMzhmIDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCisrKyBiL3NyYy9iaW4v cGdfdXBncmFkZS9wZ191cGdyYWRlLmgKQEAgLTExNCw2ICsxMTQsMTMgQEAgZXh0ZXJuIGNoYXIg Km91dHB1dF9maWxlc1tdOwogICovCiAjZGVmaW5lIE1VTFRJWEFDVF9GT1JNQVRDSEFOR0VfQ0FU X1ZFUiAyMDEzMDEyMzEKIAorLyoKKyAqIFN3aWN0aCBmcm9tIDMyLWJpdCB0byA2NC1iaXQgZm9y IG11bHRpeGlkIG9mZnNldHMuCisgKgorICogWFhYOiBzaG91bGQgYmUgY2hhbmdlZCB0byB0aGUg YWN0dWFsIENBVEFMT0dfVkVSU0lPTl9OTyBvbiBjb21taXQuCisgKi8KKyNkZWZpbmUgTVVMVElY QUNUT0ZGU0VUX0ZPUk1BVENIQU5HRV9DQVRfVkVSIDIwMjQwOTA0MQorCiAvKgogICogbGFyZ2Ug b2JqZWN0IGNodW5rIHNpemUgYWRkZWQgdG8gcGdfY29udHJvbGRhdGEsCiAgKiBjb21taXQgNWY5 M2MzNzgwNWU3NDg1NDg4NDgwOTE2YjQ1ODVlMDk4ZDNjYzg4MwpAQCAtMjMwLDcgKzIzNyw3IEBA IHR5cGVkZWYgc3RydWN0CiAJdWludDMyCQljaGtwbnRfbnh0ZXBvY2g7CiAJdWludDMyCQljaGtw bnRfbnh0b2lkOwogCXVpbnQzMgkJY2hrcG50X254dG11bHRpOwotCXVpbnQzMgkJY2hrcG50X254 dG14b2ZmOworCXVpbnQ2NAkJY2hrcG50X254dG14b2ZmOwogCXVpbnQzMgkJY2hrcG50X29sZHN0 TXVsdGk7CiAJdWludDMyCQljaGtwbnRfb2xkc3R4aWQ7CiAJdWludDMyCQlhbGlnbjsKQEAgLTQ5 NCwzICs1MDEsNyBAQCB2b2lkCQlwYXJhbGxlbF90cmFuc2Zlcl9hbGxfbmV3X2RicyhEYkluZm9B cnIgKm9sZF9kYl9hcnIsIERiSW5mb0FyciAqbmV3X2RiX2FycgogCQkJCQkJCQkJCSAgY2hhciAq b2xkX3BnZGF0YSwgY2hhciAqbmV3X3BnZGF0YSwKIAkJCQkJCQkJCQkgIGNoYXIgKm9sZF90YWJs ZXNwYWNlKTsKIGJvb2wJCXJlYXBfY2hpbGQoYm9vbCB3YWl0X2Zvcl9jaGlsZCk7CisKKy8qIHNl Z3Jlc2l6ZS5jICovCisKK3VpbnQ2NAkJY29udmVydF9tdWx0aXhhY3Rfb2Zmc2V0cyh2b2lkKTsK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9zZWdyZXNpemUuYyBiL3NyYy9iaW4vcGdf dXBncmFkZS9zZWdyZXNpemUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw Li5lNDdjMGEyNDA3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3NlZ3Jl c2l6ZS5jCkBAIC0wLDAgKzEsMzUwIEBACisvKgorICoJc2VncmVzaXplLmMKKyAqCisgKglTTFJV IHNlZ21lbnQgcmVzaXplIHV0aWxpdHkKKyAqCisgKglDb3B5cmlnaHQgKGMpIDIwMjQsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKglzcmMvYmluL3BnX3VwZ3JhZGUvc2Vn cmVzaXplLmMKKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXNfZmUuaCIKKworI2luY2x1ZGUgInBn X3VwZ3JhZGUuaCIKKyNpbmNsdWRlICJhY2Nlc3MvbXVsdGl4YWN0LmgiCisKKy8qIFNlZSBzbHJ1 LmggKi8KKyNkZWZpbmUgU0xSVV9QQUdFU19QRVJfU0VHTUVOVAkJMzIKKworLyoKKyAqIFNvbWUg a2luZCBvZiBpdGVyYXRvciBhc3NvY2lhdGVkIHdpdGggYSBwYXJ0aWN1bGFyIFNMUlUgc2VnbWVu dC4gIFRoZSBpZGVhIGlzCisgKiB0byBzcGVjaWZ5IHRoZSBzZWdtZW50IGFuZCBwYWdlIG51bWJl ciBhbmQgdGhlbiBtb3ZlIHRocm91Z2ggdGhlIHBhZ2VzLgorICovCit0eXBlZGVmIHN0cnVjdCBT bHJ1U2VnU3RhdGUKK3sKKwljaGFyCSAgICpkaXI7CisJY2hhcgkgICAqZm47CisJRklMRQkgICAq ZmlsZTsKKwlpbnQ2NAkJc2Vnbm87CisJdWludDY0CQlwYWdlbm87CisJYm9vbAkJbGVhZGluZ19n YXA7CisJYm9vbAkJbG9uZ19zZWdtZW50X25hbWVzOworfSBTbHJ1U2VnU3RhdGU7CisKKy8qCisg KiBHZXQgU0xSVSBzZWdtZW4gZmlsZSBuYW1lIGZyb20gc3RhdGUuCisgKgorICogTk9URTogdGhp cyBmdW5jdGlvbiBzaG91bGQgbWlycm9yIFNscnVGaWxlTmFtZSBjYWxsLgorICovCitzdGF0aWMg aW5saW5lIGNoYXIgKgorU2xydUZpbGVOYW1lKFNscnVTZWdTdGF0ZSAqc3RhdGUpCit7CisJaWYg KHN0YXRlLT5sb25nX3NlZ21lbnRfbmFtZXMpCisJeworCQlBc3NlcnQoc3RhdGUtPnNlZ25vID49 IDAgJiYKKwkJCSAgIHN0YXRlLT5zZWdubyA8PSBJTlQ2NENPTlNUKDB4RkZGRkZGRkZGRkZGRkZG KSk7CisJCXJldHVybiBwc3ByaW50ZigiJXMvJTAxNWxsWCIsIHN0YXRlLT5kaXIsIChsb25nIGxv bmcpIHN0YXRlLT5zZWdubyk7CisJfQorCWVsc2UKKwl7CisJCUFzc2VydChzdGF0ZS0+c2Vnbm8g Pj0gMCAmJgorCQkJICAgc3RhdGUtPnNlZ25vIDw9IElOVDY0Q09OU1QoMHhGRkZGRkYpKTsKKwkJ cmV0dXJuIHBzcHJpbnRmKCIlcy8lMDRYIiwgc3RhdGUtPmRpciwgKHVuc2lnbmVkIGludCkgc3Rh dGUtPnNlZ25vKTsKKwl9Cit9CisKKy8qCisgKiBDcmVhdGUgU0xSVSBzZWdtZW50IGZpbGUuCisg Ki8KK3N0YXRpYyB2b2lkCitjcmVhdGVfc2VnbWVudChTbHJ1U2VnU3RhdGUgKnN0YXRlKQorewor CUFzc2VydChzdGF0ZS0+Zm4gPT0gTlVMTCk7CisJQXNzZXJ0KHN0YXRlLT5maWxlID09IE5VTEwp OworCisJc3RhdGUtPmZuID0gU2xydUZpbGVOYW1lKHN0YXRlKTsKKwlzdGF0ZS0+ZmlsZSA9IGZv cGVuKHN0YXRlLT5mbiwgIndiIik7CisJaWYgKCFzdGF0ZS0+ZmlsZSkKKwkJcGdfZmF0YWwoImNv dWxkIG5vdCBjcmVhdGUgZmlsZSBcIiVzXCI6ICVtIiwgc3RhdGUtPmZuKTsKK30KKworLyoKKyAq IE9wZW4gZXhpc3RpbmcgU0xSVSBzZWdtZW50IGZpbGUuCisgKi8KK3N0YXRpYyB2b2lkCitvcGVu X3NlZ21lbnQoU2xydVNlZ1N0YXRlICpzdGF0ZSkKK3sKKwlBc3NlcnQoc3RhdGUtPmZuID09IE5V TEwpOworCUFzc2VydChzdGF0ZS0+ZmlsZSA9PSBOVUxMKTsKKworCXN0YXRlLT5mbiA9IFNscnVG aWxlTmFtZShzdGF0ZSk7CisJc3RhdGUtPmZpbGUgPSBmb3BlbihzdGF0ZS0+Zm4sICJyYiIpOwor CWlmICghc3RhdGUtPmZpbGUpCisJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNc IjogJW0iLCBzdGF0ZS0+Zm4pOworfQorCisvKgorICogQ2xvc2UgU0xSVSBzZWdtZW50IGZpbGUu CisgKi8KK3N0YXRpYyB2b2lkCitjbG9zZV9zZWdtZW50KFNscnVTZWdTdGF0ZSAqc3RhdGUpCit7 CisJaWYgKHN0YXRlLT5maWxlKQorCXsKKwkJZmNsb3NlKHN0YXRlLT5maWxlKTsKKwkJc3RhdGUt PmZpbGUgPSBOVUxMOworCX0KKworCWlmIChzdGF0ZS0+Zm4pCisJeworCQlwZnJlZShzdGF0ZS0+ Zm4pOworCQlzdGF0ZS0+Zm4gPSBOVUxMOworCX0KK30KKworLyoKKyAqIFJlYWQgbmV4dCBwYWdl IGZyb20gdGhlIG9sZCAzMi1iaXQgb2Zmc2V0IHNlZ21lbnQgZmlsZS4KKyAqLworc3RhdGljIGlu dAorcmVhZF9vbGRfc2VnbWVudF9wYWdlKFNscnVTZWdTdGF0ZSAqc3RhdGUsIHZvaWQgKmJ1Ziwg Ym9vbCAqZW1wdHkpCit7CisJaW50CQlsZW47CisKKwkvKiBPcGVuIG5leHQgc2VnbWVudCBmaWxl LCBpZiBuZWVkZWQuICovCisJaWYgKCFzdGF0ZS0+Zm4pCisJeworCQlpZiAoIXN0YXRlLT5zZWdu bykKKwkJCXN0YXRlLT5sZWFkaW5nX2dhcCA9IHRydWU7CisKKwkJb3Blbl9zZWdtZW50KHN0YXRl KTsKKworCQkvKiBTZXQgcG9zaXRpb24gdG8gdGhlIG5lZWRlZCBwYWdlLiAqLworCQlpZiAoc3Rh dGUtPnBhZ2VubyA+IDAgJiYKKwkJCWZzZWVrKHN0YXRlLT5maWxlLCBzdGF0ZS0+cGFnZW5vICog QkxDS1NaLCBTRUVLX1NFVCkpCisJCXsKKwkJCWNsb3NlX3NlZ21lbnQoc3RhdGUpOworCQl9CisJ fQorCisJaWYgKHN0YXRlLT5maWxlKQorCXsKKwkJLyogU2VnbWVudCBmaWxlIGRvIGV4aXN0cywg cmVhZCBwYWdlIGZyb20gaXQuICovCisJCXN0YXRlLT5sZWFkaW5nX2dhcCA9IGZhbHNlOworCisJ CWxlbiA9IGZyZWFkKGJ1Ziwgc2l6ZW9mKGNoYXIpLCBCTENLU1osIHN0YXRlLT5maWxlKTsKKwor CQkvKiBBcmUgd2UgZG9uZSBvciB3YXMgdGhlcmUgYW4gZXJyb3I/ICovCisJCWlmIChsZW4gPD0g MCkKKwkJeworCQkJaWYgKGZlcnJvcihzdGF0ZS0+ZmlsZSkpCisJCQkJcGdfZmF0YWwoImVycm9y IHJlYWRpbmcgZmlsZSBcIiVzXCI6ICVtIiwgc3RhdGUtPmZuKTsKKworCQkJaWYgKGZlb2Yoc3Rh dGUtPmZpbGUpKQorCQkJeworCQkJCSplbXB0eSA9IHRydWU7CisJCQkJbGVuID0gLTE7CisKKwkJ CQljbG9zZV9zZWdtZW50KHN0YXRlKTsKKwkJCX0KKwkJfQorCQllbHNlCisJCQkqZW1wdHkgPSBm YWxzZTsKKwl9CisJZWxzZSBpZiAoIXN0YXRlLT5sZWFkaW5nX2dhcCkKKwl7CisJCS8qIFdlIHJl YWNoZWQgdGhlIGxhc3Qgc2VnbWVudC4gKi8KKwkJbGVuID0gLTE7CisJCSplbXB0eSA9IHRydWU7 CisJfQorCWVsc2UKKwl7CisJCS8qIFNraXAgZmV3IGZpcnN0IHNlZ21lbnRzIGlmIHRoZXkgd2Vy ZSBmcm96ZW4gYW5kIHJlbW92ZWQuICovCisJCWxlbiA9IEJMQ0tTWjsKKwkJKmVtcHR5ID0gdHJ1 ZTsKKwl9CisKKwlpZiAoKytzdGF0ZS0+cGFnZW5vID49IFNMUlVfUEFHRVNfUEVSX1NFR01FTlQp CisJeworCQkvKiBTdGFydCBhIG5ldyBzZWdtZW50LiAqLworCQlzdGF0ZS0+c2Vnbm8rKzsKKwkJ c3RhdGUtPnBhZ2VubyA9IDA7CisKKwkJY2xvc2Vfc2VnbWVudChzdGF0ZSk7CisJfQorCisJcmV0 dXJuIGxlbjsKK30KKworLyoKKyAqIFdyaXRlIG5leHQgcGFnZSB0byB0aGUgbmV3IDY0LWJpdCBv ZmZzZXQgc2VnbWVudCBmaWxlLgorICovCitzdGF0aWMgdm9pZAord3JpdGVfbmV3X3NlZ21lbnRf cGFnZShTbHJ1U2VnU3RhdGUgKnN0YXRlLCB2b2lkICpidWYpCit7CisJLyoKKwkgKiBDcmVhdGUg YSBuZXcgc2VnbWVudCBmaWxlIGlmIHdlIHN0aWxsIGRpZG4ndC4gIENyZWF0aW9uIGlzCisJICog cG9zdHBvbmVkIHVudGlsIHRoZSBmaXJzdCBub24tZW1wdHkgcGFnZSBpcyBmb3VuZC4gIFRoaXMg aGVscHMKKwkgKiBub3QgdG8gY3JlYXRlIGNvbXBsZXRlbHkgZW1wdHkgc2VnbWVudHMuCisJICov CisJaWYgKCFzdGF0ZS0+ZmlsZSkKKwl7CisJCWNyZWF0ZV9zZWdtZW50KHN0YXRlKTsKKworCQkv KiBXcml0ZSB6ZXJvZXMgdG8gdGhlIHByZXZpb3VzbHkgc2tpcHBlZCBwcmVmaXguICovCisJCWlm IChzdGF0ZS0+cGFnZW5vID4gMCkKKwkJeworCQkJY2hhcgkJemVyb2J1ZltCTENLU1pdID0gezB9 OworCisJCQlmb3IgKGludDY0IGkgPSAwOyBpIDwgc3RhdGUtPnBhZ2VubzsgaSsrKQorCQkJewor CQkJCWlmIChmd3JpdGUoemVyb2J1Ziwgc2l6ZW9mKGNoYXIpLCBCTENLU1osIHN0YXRlLT5maWxl KSAhPSBCTENLU1opCisJCQkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgd3JpdGUgZmlsZSBcIiVzXCI6 ICVtIiwgc3RhdGUtPmZuKTsKKwkJCX0KKwkJfQorCX0KKworCS8qIFdyaXRlIHBhZ2UgdG8gdGhl IG5ldyBzZWdtZW50IChpZiBpdCB3YXMgY3JlYXRlZCkuICovCisJaWYgKHN0YXRlLT5maWxlKQor CXsKKwkJaWYgKGZ3cml0ZShidWYsIHNpemVvZihjaGFyKSwgQkxDS1NaLCBzdGF0ZS0+ZmlsZSkg IT0gQkxDS1NaKQorCQkJcGdfZmF0YWwoImNvdWxkIG5vdCB3cml0ZSBmaWxlIFwiJXNcIjogJW0i LCBzdGF0ZS0+Zm4pOworCX0KKworCXN0YXRlLT5wYWdlbm8rKzsKKworCS8qCisJICogRGlkIHdl IHJlYWNoIHRoZSBtYXhpbXVtIHBhZ2UgbnVtYmVyPyAgVGhlbiBjbG9zZSBzZWdtZW50IGZpbGUK KwkgKiBhbmQgY3JlYXRlIGEgbmV3IG9uZSBvbiB0aGUgbmV4dCBpdGVyYXRpb24uCisJICovCisJ aWYgKHN0YXRlLT5wYWdlbm8gPj0gU0xSVV9QQUdFU19QRVJfU0VHTUVOVCkKKwl7CisJCXN0YXRl LT5zZWdubysrOworCQlzdGF0ZS0+cGFnZW5vID0gMDsKKwkJY2xvc2Vfc2VnbWVudChzdGF0ZSk7 CisJfQorfQorCisvKgorICogQ29udmVydCBwZ19tdWx0aXhhY3Qvb2Zmc2V0cyBzZWdtZW50cyBh bmQgcmV0dXJuIG9sZGVzdCBtdWx0aSBvZmZzZXQuCisgKi8KK3VpbnQ2NAorY29udmVydF9tdWx0 aXhhY3Rfb2Zmc2V0cyh2b2lkKQoreworCS8qIFNlZSBtdWx0aXhhY3QuYyAqLworI2RlZmluZSBN VUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRV9PTEQJKEJMQ0tTWiAvIHNpemVvZih1aW50MzIpKQor I2RlZmluZSBNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRQkJKEJMQ0tTWiAvIHNpemVvZihNdWx0 aVhhY3RPZmZzZXQpKQorCisJU2xydVNlZ1N0YXRlCW9sZHNlZyA9IHswfSwKKwkJCQkJbmV3c2Vn ID0gezB9OworCXVpbnQzMgkJCW9sZGJ1ZltNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRV9PTERd ID0gezB9OworCU11bHRpWGFjdE9mZnNldAluZXdidWZbTVVMVElYQUNUX09GRlNFVFNfUEVSX1BB R0VdID0gezB9OworCS8qCisJICogSXQgaXMgbXVjaCBlYXNpZXIgdG8gZGVhbCB3aXRoIG11bHRp IHdyYXBhcm91bmQgaW4gNjQgYml0ZCBmb3JtYXQuICBUaHVzCisJICogd2UgdXNlIDY0IGJpdHMg Zm9yIG11bHRpLXRyYW5zYWN0aW9ucywgYWx0aG91Z2ggdGhleSByZW1haW4gMzIgYml0cy4KKwkg Ki8KKwl1aW50NjQJCQlvbGRlc3RfbXVsdGkgPSBvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtw bnRfb2xkc3RNdWx0aSwKKwkJCQkJbmV4dF9tdWx0aSA9IG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRh LmNoa3BudF9ueHRtdWx0aSwKKwkJCQkJbXVsdGksCisJCQkJCW9sZF9lbnRyeSwKKwkJCQkJbmV3 X2VudHJ5OworCWJvb2wJCQlmb3VuZCA9IGZhbHNlOworCXVpbnQ2NAkJCW9sZGVzdF9vZmZzZXQg PSAwOworCisJcHJlcF9zdGF0dXMoIkNvbnZlcnRpbmcgcGdfbXVsdGl4YWN0L29mZnNldHMgdG8g NjQtYml0Iik7CisKKwlvbGRzZWcucGFnZW5vID0gb2xkZXN0X211bHRpIC8gTVVMVElYQUNUX09G RlNFVFNfUEVSX1BBR0VfT0xEOworCW9sZHNlZy5zZWdubyA9IG9sZHNlZy5wYWdlbm8gLyBTTFJV X1BBR0VTX1BFUl9TRUdNRU5UOworCW9sZHNlZy5wYWdlbm8gJT0gU0xSVV9QQUdFU19QRVJfU0VH TUVOVDsKKwlvbGRzZWcuZGlyID0gcHNwcmludGYoIiVzL3BnX211bHRpeGFjdC9vZmZzZXRzIiwg b2xkX2NsdXN0ZXIucGdkYXRhKTsKKwlvbGRzZWcubG9uZ19zZWdtZW50X25hbWVzID0gZmFsc2U7 CQkvKiBvbGQgZm9ybWF0IFhYWFggKi8KKworCW5ld3NlZy5wYWdlbm8gPSBvbGRlc3RfbXVsdGkg LyBNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRTsKKwluZXdzZWcuc2Vnbm8gPSBuZXdzZWcucGFn ZW5vIC8gU0xSVV9QQUdFU19QRVJfU0VHTUVOVDsKKwluZXdzZWcucGFnZW5vICU9IFNMUlVfUEFH RVNfUEVSX1NFR01FTlQ7CisJbmV3c2VnLmRpciA9IHBzcHJpbnRmKCIlcy9wZ19tdWx0aXhhY3Qv b2Zmc2V0cyIsIG5ld19jbHVzdGVyLnBnZGF0YSk7CisJbmV3c2VnLmxvbmdfc2VnbWVudF9uYW1l cyA9IHRydWU7CisKKwlvbGRfZW50cnkgPSBvbGRlc3RfbXVsdGkgJSBNVUxUSVhBQ1RfT0ZGU0VU U19QRVJfUEFHRV9PTEQ7CisJbmV3X2VudHJ5ID0gb2xkZXN0X211bHRpICUgTVVMVElYQUNUX09G RlNFVFNfUEVSX1BBR0U7CisKKwlpZiAobmV4dF9tdWx0aSA8IG9sZGVzdF9tdWx0aSkKKwkJbmV4 dF9tdWx0aSArPSAodWludDY0KSAxIDw8IDMyOwkJLyogd3JhcGFyb3VuZCAqLworCisJZm9yICht dWx0aSA9IG9sZGVzdF9tdWx0aTsgbXVsdGkgPCBuZXh0X211bHRpOyBvbGRfZW50cnkgPSAwKQor CXsKKwkJaW50CQkJb2xkbGVuOworCQlib29sCQllbXB0eTsKKworCQkvKiBIYW5kbGUgcG9zc2li bGUgc2VnbWVudCB3cmFwYXJvdW5kLiAqLworCQlpZiAob2xkc2VnLnNlZ25vID4gTWF4TXVsdGlY YWN0SWQgLworCQkJCQkJCQlNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRV9PTEQgLworCQkJCQkJ CQlTTFJVX1BBR0VTX1BFUl9TRUdNRU5UKQorCQkJb2xkc2VnLnNlZ25vID0gMDsKKworCQkvKiBS ZWFkIG9sZCBvZmZzZXQgc2VnbWVudC4gKi8KKwkJb2xkbGVuID0gcmVhZF9vbGRfc2VnbWVudF9w YWdlKCZvbGRzZWcsIG9sZGJ1ZiwgJmVtcHR5KTsKKwkJaWYgKG9sZGxlbiA8PSAwIHx8IGVtcHR5 KQorCQkJcGdfZmF0YWwoImNhbm5vdCByZWFkIHBhZ2UgJWxsdSBmcm9tIGZpbGUgXCIlc1wiOiAl bSIsCisJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBvbGRzZWcucGFnZW5vLCBvbGRzZWcuZm4p OworCisJCS8qIEZpbGwgcG9zc2libGUgZ2FwLiAqLworCQlpZiAob2xkbGVuIDwgQkxDS1NaKQor CQkJbWVtc2V0KChjaGFyICopIG9sZGJ1ZiArIG9sZGxlbiwgMCwgQkxDS1NaIC0gb2xkbGVuKTsK KworCQkvKiBTYXZlIG9sZGVzdCBtdWx0aSBvZmZzZXQgKi8KKwkJaWYgKCFmb3VuZCkKKwkJewor CQkJb2xkZXN0X29mZnNldCA9IG9sZGJ1ZltvbGRfZW50cnldOworCQkJZm91bmQgPSB0cnVlOwor CQl9CisKKwkJLyogLi4uIHNraXAgd3JhcHBlZC1hcm91bmQgaW52YWxpZCBtdWx0aSAqLworCQlp ZiAobXVsdGkgPT0gKHVpbnQ2NCkgMSA8PCAzMikKKwkJeworCQkJQXNzZXJ0KG9sZHNlZy5zZWdu byA9PSAwKTsKKwkJCUFzc2VydChvbGRzZWcucGFnZW5vID09IDEpOworCQkJQXNzZXJ0KG9sZF9l bnRyeSA9PSAwKTsKKworCQkJbXVsdGkgKz0gRmlyc3RNdWx0aVhhY3RJZDsKKwkJCW9sZF9lbnRy eSA9IEZpcnN0TXVsdGlYYWN0SWQ7CisJCX0KKworCQkvKiBDb3B5IGVudHJpZXMgdG8gdGhlIG5l dyBwYWdlLiAqLworCQlmb3IgKDsgbXVsdGkgPCBuZXh0X211bHRpICYmIG9sZF9lbnRyeSA8IE1V TFRJWEFDVF9PRkZTRVRTX1BFUl9QQUdFX09MRDsKKwkJCSBtdWx0aSsrLCBvbGRfZW50cnkrKykK KwkJeworCQkJTXVsdGlYYWN0T2Zmc2V0IG9mZnNldCA9IG9sZGJ1ZltvbGRfZW50cnldOworCisJ CQkvKiBIYW5kbGUgcG9zc2libGUgb2Zmc2V0IHdyYXBhcm91bmQuICovCisJCQlpZiAob2Zmc2V0 IDwgb2xkZXN0X29mZnNldCkKKwkJCQlvZmZzZXQgKz0gKCh1aW50NjQpIDEgPDwgMzIpIC0gMTsK KworCQkJLyogU3VidHJhY3Qgb2xkZXN0X29mZnNldCwgc28gbmV3IG9mZnNldHMgd2lsbCBzdGFy dCBmcm9tIDEuICovCisJCQluZXdidWZbbmV3X2VudHJ5KytdID0gb2Zmc2V0IC0gb2xkZXN0X29m ZnNldCArIDE7CisJCQlpZiAobmV3X2VudHJ5ID49IE1VTFRJWEFDVF9PRkZTRVRTX1BFUl9QQUdF KQorCQkJeworCQkJCS8qIFdyaXRlIGEgbmV3IHBhZ2UuICovCisJCQkJd3JpdGVfbmV3X3NlZ21l bnRfcGFnZSgmbmV3c2VnLCBuZXdidWYpOworCQkJCW5ld19lbnRyeSA9IDA7CisJCQl9CisJCX0K Kwl9CisKKwkvKiBXcml0ZSB0aGUgbGFzdCBpbmNvbXBsZXRlIHBhZ2UuICovCisJaWYgKG5ld19l bnRyeSA+IDAgfHwgb2xkZXN0X211bHRpID09IG5leHRfbXVsdGkpCisJeworCQltZW1zZXQoJm5l d2J1ZltuZXdfZW50cnldLCAwLAorCQkJICAgc2l6ZW9mKG5ld2J1ZlswXSkgKiAoTVVMVElYQUNU X09GRlNFVFNfUEVSX1BBR0UgLSBuZXdfZW50cnkpKTsKKwkJd3JpdGVfbmV3X3NlZ21lbnRfcGFn ZSgmbmV3c2VnLCBuZXdidWYpOworCX0KKworCS8qIFJlbGVhc2UgcmVzb3VyY2VzLiAqLworCWNs b3NlX3NlZ21lbnQoJm9sZHNlZyk7CisJY2xvc2Vfc2VnbWVudCgmbmV3c2VnKTsKKworCXBmcmVl KG9sZHNlZy5kaXIpOworCXBmcmVlKG5ld3NlZy5kaXIpOworCisJY2hlY2tfb2soKTsKKworCXJl dHVybiBvbGRlc3Rfb2Zmc2V0OworfQotLSAKMi40NS4yCgo= --0000000000006269a006218013d3--