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 1rlLCj-001lQN-92 for pgsql-hackers@arkaria.postgresql.org; Sat, 16 Mar 2024 03:59:30 +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 1rlLCg-00Dsgx-6x for pgsql-hackers@arkaria.postgresql.org; Sat, 16 Mar 2024 03:59:26 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rlLCf-00Dsgp-Lz for pgsql-hackers@lists.postgresql.org; Sat, 16 Mar 2024 03:59:26 +0000 Received: from mail-lj1-x236.google.com ([2a00:1450:4864:20::236]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rlLCX-004mn6-4D for pgsql-hackers@lists.postgresql.org; Sat, 16 Mar 2024 03:59:24 +0000 Received: by mail-lj1-x236.google.com with SMTP id 38308e7fff4ca-2d109e82bd0so32766261fa.3 for ; Fri, 15 Mar 2024 20:59:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710561555; x=1711166355; 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=OpdGHOYUGhdzsb6yFfFNJDfiQZr8VB18FsJy2z/RY/Q=; b=VppdUwOk4Jegaq9e5kNoA7EUOrCNip4hyDy/WsXtHdCeNPIRi4OQeGcosu9RsC/6qC oTLOAWE8tBjyCurnTjYDjxRxp+nTfZNPKaOHU9r/1D7prbWDp/NB218OZcsFhu94tr01 5UfpevBCLFZaNvu+3uepRPkuQl0145Q7JHJFA4cKu1lbb8vunxJwBnQBsTrYCMC5SX5Q ukqvfEYpPgZyFmjfW8VSmCN7bV811eUX205W4JO9kylLfUv2/mVOYh5Dwz/u5n37Z+B7 U/1j63jmNBo0S3IZ66BK47TtuDgRqmAaVvLsF4Mb6cQQ56uaJIJFsp1ItZOEZVIAh5eI 3Pmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710561555; x=1711166355; 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=OpdGHOYUGhdzsb6yFfFNJDfiQZr8VB18FsJy2z/RY/Q=; b=Y7WgWXtS4SB1m0pBB5MUTo7F6MCBlT877DT1lHLO4Wy66TcZntl4dxRTg2QtRniWhg eH7lo8GAa8iLi2bMXMbadEWdIvJW1NMPyIM+8p6bJqq5ULVlzMr55YTsBD+BwDPJijSs Ngk7NP2UYA+FErCrfiheGaMh1oLtEPvCQK3KTFNrY9ynHnN04IpiwN64/2SIIdjBjgpI I87UPsmN+rgVNJiZe6W9QHPamGmyp6fjvoai8CMx4t40fqBsw8r23QKWDHAj24LrWYOT AbKuYygc9sUAisxUPk5ENcvu6014thy/LYWT+weJvx41TAquVq0ntb04hJh8ZMU0e8tD 91vA== X-Forwarded-Encrypted: i=1; AJvYcCVlD7Vr4Zca+XIpYBOwXyZ/4dlWo7ovI0wtIZbnI4IgjMbqHTwxj+EEFv6gzPmR124embBhgO/2zzkOFHDb0t2avc28QZu/2pBbRj//xt88qqRx X-Gm-Message-State: AOJu0YzbBzoMKlXRclcnD4w/NxyBb2moF9GRv0bF569OmI1onGrGN2ZJ WcCKoclFqMvCxsTdcEpu9o0z8oW/VoJFRUUrJrKaGp5iRCyqvTAb333a0FnFievi6G17DZLBisZ GktbCV+emi0OJvsMs4lLvbgAk2tC8jAuT00k= X-Google-Smtp-Source: AGHT+IFZA2FtDK91rdXylXLlPIIwcJnKSVcu6pO+C1nQVHyDFjN79SzLIOC+1zEkaIqhDX0RH8snx1JdWm7xfLrGUTo= X-Received: by 2002:a2e:7c02:0:b0:2d3:4b85:5734 with SMTP id x2-20020a2e7c02000000b002d34b855734mr3979933ljc.36.1710561555004; Fri, 15 Mar 2024 20:59:15 -0700 (PDT) MIME-Version: 1.0 References: <20240301221108.GB3024365@nathanxps13> <20240303214434.GA3036597@nathanxps13> In-Reply-To: From: Bharath Rupireddy Date: Sat, 16 Mar 2024 09:29:01 +0530 Message-ID: Subject: Re: Introduce XID age and inactive timeout based replication slot invalidation To: shveta malik Cc: Amit Kapila , Nathan Bossart , "Drouvot, Bertrand" , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000da5df20613bf25c9" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000da5df20613bf25c9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Mar 15, 2024 at 12:49=E2=80=AFPM shveta malik wrote: > > patch002: > > 1) > I would like to understand the purpose of 'inactive_count'? Is it only > for users for monitoring purposes? We are not using it anywhere > internally. inactive_count metric helps detect unstable replication slots connections that have a lot of disconnections. It's not used for the inactive_timeout based slot invalidation mechanism. > I shutdown the instance 5 times and found that 'inactive_count' became > 5 for all the slots created on that instance. Is this intentional? Yes, it's incremented on shutdown (and for that matter upon every slot release) for all the slots that are tied to walsenders. > I mean we can not really use them if the instance is down. I felt it > should increment the inactive_count only if during the span of > instance, they were actually inactive i.e. no streaming or replication > happening through them. inactive_count is persisted to disk- upon clean shutdown, so, once the slots become active again, one gets to see the metric and deduce some info on disconnections. Having said that, I'm okay to hear from others on the inactive_count metric being added. > 2) > slot.c: > + case RS_INVAL_XID_AGE: > > Can we optimize this code? It has duplicate code for processing > s->data.catalog_xmin and s->data.xmin. Can we create a sub-function > for this purpose and call it twice here? Good idea. Done that way. > 2) > The msg for patch 3 says: > -------------- > a) when replication slots is lying inactive for a day or so using > last_inactive_at metric, > b) when a replication slot is becoming inactive too frequently using > last_inactive_at metric. > -------------- > I think in b, you want to refer to inactive_count instead of last_inacti= ve_at? Right. Changed. > 3) > I do not see invalidation_reason updated for 2 new reasons in system-view= s.sgml Nice catch. Added them now. I've also responded to Bertrand's comments here. On Wed, Mar 6, 2024 at 3:56=E2=80=AFPM Bertrand Drouvot wrote: > > A few comments: > > 1 =3D=3D=3D > > + The reason for the slot's invalidation. NULL i= f the > + slot is currently actively being used. > > s/currently actively being used/not invalidated/ ? (I mean it could be va= lid > and not being used). Changed. > 3 =3D=3D=3D > > res =3D executeQueryOrDie(conn, "SELECT slot_name, plugin, two_ph= ase, failover, " > - "%s as caught_up,= conflict_reason IS NOT NULL as invalid " > + "%s as caught_up,= invalidation_reason IS NOT NULL as invalid " > "FROM pg_catalog.= pg_replication_slots " > - "(CASE WHEN confl= ict_reason IS NOT NULL THEN FALSE " > + "(CASE WHEN inval= idation_reason IS NOT NULL THEN FALSE " > > Yeah that's fine because there is logical slot filtering here. Right. And, we really are looking for invalid slots there, so use of invalidation_reason is much more correct than conflicting. > 4 =3D=3D=3D > > -GetSlotInvalidationCause(const char *conflict_reason) > +GetSlotInvalidationCause(const char *invalidation_reason) > > Should we change the comment "Maps a conflict reason" above this function= ? Changed. > 5 =3D=3D=3D > > -# Check conflict_reason is NULL for physical slot > +# Check invalidation_reason is NULL for physical slot > $res =3D $node_primary->safe_psql( > 'postgres', qq[ > - SELECT conflict_reason is null FROM pg_replication_slots= where slot_name =3D '$primary_slotname';] > + SELECT invalidation_reason is null FROM pg_replication_s= lots where slot_name =3D '$primary_slotname';] > ); > > > I don't think this test is needed anymore: it does not make that much sen= se since > it's done after the primary database initialization and startup. It is now turned into a test verifying 'conflicting boolean' is null for the physical slot. Isn't that okay? > 6 =3D=3D=3D > > 'Logical slots are reported as non conflicting'); > > What about? > > " > # Verify slots are reported as valid in pg_replication_slots > 'Logical slots are reported as valid'); > " Changed. Please see the attached v11 patch set with all the above review comments addressed. -- Bharath Rupireddy PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com --000000000000da5df20613bf25c9 Content-Type: application/octet-stream; name="v11-0001-Track-invalidation_reason-in-pg_replication_slot.patch" Content-Disposition: attachment; filename="v11-0001-Track-invalidation_reason-in-pg_replication_slot.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lttk3aas0 RnJvbSA0ODM4MjRhOGIzMjQ4ZmUwOGI2YmRmMjJjNjhiYWRhNGYwNTQ5MjEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCaGFyYXRoIFJ1cGlyZWRkeSA8YmhhcmF0aC5ydXBpcmVkZHlm b3Jwb3N0Z3Jlc0BnbWFpbC5jb20+CkRhdGU6IFNhdCwgMTYgTWFyIDIwMjQgMDM6Mzk6MzUgKzAw MDAKU3ViamVjdDogW1BBVENIIHYxMSAxLzRdIFRyYWNrIGludmFsaWRhdGlvbl9yZWFzb24gaW4g cGdfcmVwbGljYXRpb25fc2xvdHMKClVwIHVudGlsIG5vdywgcmVhc29uIGZvciByZXBsaWNhdGlv biBzbG90IGludmFsaWRhdGlvbiBpcyBub3QKdHJhY2tlZCBpbiBwZ19yZXBsaWNhdGlvbl9zbG90 cy4gQSByZWNlbnQgY29tbWl0IDAwNzY5M2YyYSBhZGRlZApjb25mbGljdF9yZWFzb24gdG8gc2hv dyB0aGUgcmVhc29ucyBmb3Igc2xvdCBpbnZhbGlkYXRpb24sIGJ1dApvbmx5IGZvciBsb2dpY2Fs IHNsb3RzLgoKVGhpcyBjb21taXQgYWRkcyBhIG5ldyBjb2x1bW4gdG8gc2hvdyBpbnZhbGlkYXRp b24gcmVhc29ucyBmb3IKYm90aCBwaHlzaWNhbCBhbmQgbG9naWNhbCBzbG90cy4gQW5kLCB0aGlz IGNvbW1pdCBhbHNvIHR1cm5zCmNvbmZsaWN0X3JlYXNvbiB0ZXh0IGNvbHVtbiB0byBjb25mbGlj dGluZyBib29sZWFuIGNvbHVtbgooZWZmZWN0aXZlbHkgcmV2ZXJ0aW5nIGNvbW1pdCAwMDc2OTNm MmEpLiBPbmUgbm93IGNhbiBsb29rIGF0IHRoZQpuZXcgaW52YWxpZGF0aW9uX3JlYXNvbiBjb2x1 bW4gZm9yIGxvZ2ljYWwgc2xvdHMgY29uZmxpY3Qgd2l0aApyZWNvdmVyeS4KLS0tCiBkb2Mvc3Jj L3NnbWwvcmVmL3BndXBncmFkZS5zZ21sICAgICAgICAgICAgICAgfCAgNCArLQogZG9jL3NyYy9z Z21sL3N5c3RlbS12aWV3cy5zZ21sICAgICAgICAgICAgICAgIHwgNjMgKysrKysrKysrKystLS0t LS0tLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsICAgICAgICAgIHwgIDUg Ky0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYyAgICB8ICAyICst CiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMgICAgICAgICAgICAgICAgfCAgOCArLS0K IHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jICAgICAgICAgICB8IDI1ICsrKysr LS0tCiBzcmMvYmluL3BnX3VwZ3JhZGUvaW5mby5jICAgICAgICAgICAgICAgICAgICAgfCAgNCAr LQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgIDYgKy0K IHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCAgICAgICAgICAgICAgICB8ICAyICstCiAu Li4vdC8wMzVfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBsICAgICAgICAgfCAzOSArKysrKyst LS0tLS0KIC4uLi90LzA0MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwgICAgICB8ICA0 ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgICAgICAgICAgfCAgNyAr Ky0KIDEyIGZpbGVzIGNoYW5nZWQsIDk3IGluc2VydGlvbnMoKyksIDcyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGd1cGdyYWRlLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL3BndXBncmFkZS5zZ21sCmluZGV4IDU4YzZjMmRmOGIuLjhkZTUyYmY3NTIgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGd1cGdyYWRlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9wZ3VwZ3JhZGUuc2dtbApAQCAtNDUzLDggKzQ1Myw4IEBAIG1ha2UgcHJlZml4PS91c3Iv bG9jYWwvcGdzcWwubmV3IGluc3RhbGwKICAgICAgIDxwYXJhPgogICAgICAgIEFsbCBzbG90cyBv biB0aGUgb2xkIGNsdXN0ZXIgbXVzdCBiZSB1c2FibGUsIGkuZS4sIHRoZXJlIGFyZSBubyBzbG90 cwogICAgICAgIHdob3NlCi0gICAgICAgPGxpbmsgbGlua2VuZD0idmlldy1wZy1yZXBsaWNhdGlv bi1zbG90cyI+cGdfcmVwbGljYXRpb25fc2xvdHM8L2xpbms+LjxzdHJ1Y3RmaWVsZD5jb25mbGlj dF9yZWFzb248L3N0cnVjdGZpZWxkPgotICAgICAgIGlzIG5vdCA8bGl0ZXJhbD5OVUxMPC9saXRl cmFsPi4KKyAgICAgICA8bGluayBsaW5rZW5kPSJ2aWV3LXBnLXJlcGxpY2F0aW9uLXNsb3RzIj5w Z19yZXBsaWNhdGlvbl9zbG90czwvbGluaz4uPHN0cnVjdGZpZWxkPmNvbmZsaWN0aW5nPC9zdHJ1 Y3RmaWVsZD4KKyAgICAgICBpcyBub3QgPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4uCiAgICAgICA8 L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Mu c2dtbAppbmRleCBiZTkwZWRkMGUyLi5lNjg1OTIxODQ3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvc3lzdGVtLXZpZXdzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21s CkBAIC0yNTI1LDM0ICsyNTI1LDEzIEBAIFNFTEVDVCAqIEZST00gcGdfbG9ja3MgcGwgTEVGVCBK T0lOIHBnX3ByZXBhcmVkX3hhY3RzIHBweAogCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgot ICAgICAgIDxzdHJ1Y3RmaWVsZD5jb25mbGljdF9yZWFzb248L3N0cnVjdGZpZWxkPiA8dHlwZT50 ZXh0PC90eXBlPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jb25mbGljdGluZzwvc3RydWN0ZmllbGQ+ IDx0eXBlPmJvb2w8L3R5cGU+CiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KLSAgICAgICBU aGUgcmVhc29uIGZvciB0aGUgbG9naWNhbCBzbG90J3MgY29uZmxpY3Qgd2l0aCByZWNvdmVyeS4g SXQgaXMgYWx3YXlzCi0gICAgICAgTlVMTCBmb3IgcGh5c2ljYWwgc2xvdHMsIGFzIHdlbGwgYXMg Zm9yIGxvZ2ljYWwgc2xvdHMgd2hpY2ggYXJlIG5vdAotICAgICAgIGludmFsaWRhdGVkLiBUaGUg bm9uLU5VTEwgdmFsdWVzIGluZGljYXRlIHRoYXQgdGhlIHNsb3QgaXMgbWFya2VkCi0gICAgICAg YXMgaW52YWxpZGF0ZWQuIFBvc3NpYmxlIHZhbHVlcyBhcmU6Ci0gICAgICAgPGl0ZW1pemVkbGlz dCBzcGFjaW5nPSJjb21wYWN0Ij4KLSAgICAgICAgPGxpc3RpdGVtPgotICAgICAgICAgPHBhcmE+ Ci0gICAgICAgICAgPGxpdGVyYWw+d2FsX3JlbW92ZWQ8L2xpdGVyYWw+IG1lYW5zIHRoYXQgdGhl IHJlcXVpcmVkIFdBTCBoYXMgYmVlbgotICAgICAgICAgIHJlbW92ZWQuCi0gICAgICAgICA8L3Bh cmE+Ci0gICAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgIDxw YXJhPgotICAgICAgICAgIDxsaXRlcmFsPnJvd3NfcmVtb3ZlZDwvbGl0ZXJhbD4gbWVhbnMgdGhh dCB0aGUgcmVxdWlyZWQgcm93cyBoYXZlCi0gICAgICAgICAgYmVlbiByZW1vdmVkLgotICAgICAg ICAgPC9wYXJhPgotICAgICAgICA8L2xpc3RpdGVtPgotICAgICAgICA8bGlzdGl0ZW0+Ci0gICAg ICAgICA8cGFyYT4KLSAgICAgICAgICA8bGl0ZXJhbD53YWxfbGV2ZWxfaW5zdWZmaWNpZW50PC9s aXRlcmFsPiBtZWFucyB0aGF0IHRoZQotICAgICAgICAgIHByaW1hcnkgZG9lc24ndCBoYXZlIGEg PHhyZWYgbGlua2VuZD0iZ3VjLXdhbC1sZXZlbCIvPiBzdWZmaWNpZW50IHRvCi0gICAgICAgICAg cGVyZm9ybSBsb2dpY2FsIGRlY29kaW5nLgotICAgICAgICAgPC9wYXJhPgotICAgICAgICA8L2xp c3RpdGVtPgotICAgICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgICAgIFRydWUgaWYgdGhpcyBsb2dp Y2FsIHNsb3QgY29uZmxpY3RlZCB3aXRoIHJlY292ZXJ5IChhbmQgc28gaXMgbm93CisgICAgICAg aW52YWxpZGF0ZWQpLiBXaGVuIHRoaXMgY29sdW1uIGlzIHRydWUsIGNoZWNrCisgICAgICAgPHN0 cnVjdGZpZWxkPmludmFsaWRhdGlvbl9yZWFzb248L3N0cnVjdGZpZWxkPiBjb2x1bW4gZm9yIHRo ZSBjb25mbGljdAorICAgICAgIHJlYXNvbi4KICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8 L3Jvdz4KIApAQCAtMjU4MSw2ICsyNTYwLDM4IEBAIFNFTEVDVCAqIEZST00gcGdfbG9ja3MgcGwg TEVGVCBKT0lOIHBnX3ByZXBhcmVkX3hhY3RzIHBweAogICAgICAgPC9wYXJhPjwvZW50cnk+CiAg ICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5pbnZhbGlkYXRpb25fcmVhc29uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4K KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSByZWFzb24gZm9yIHRoZSBz bG90J3MgaW52YWxpZGF0aW9uLiBJdCBpcyBzZXQgZm9yIGJvdGggbG9naWNhbCBhbmQKKyAgICAg ICBwaHlzaWNhbCBzbG90cy4gPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4gaWYgdGhlIHNsb3QgaXMg bm90IGludmFsaWRhdGVkLgorICAgICAgIFBvc3NpYmxlIHZhbHVlcyBhcmU6CisgICAgICAgPGl0 ZW1pemVkbGlzdCBzcGFjaW5nPSJjb21wYWN0Ij4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAg ICAgPHBhcmE+CisgICAgICAgICAgPGxpdGVyYWw+d2FsX3JlbW92ZWQ8L2xpdGVyYWw+IG1lYW5z IHRoYXQgdGhlIHJlcXVpcmVkIFdBTCBoYXMgYmVlbgorICAgICAgICAgIHJlbW92ZWQuCisgICAg ICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAg ICAgICAgIDxwYXJhPgorICAgICAgICAgIDxsaXRlcmFsPnJvd3NfcmVtb3ZlZDwvbGl0ZXJhbD4g bWVhbnMgdGhhdCB0aGUgcmVxdWlyZWQgcm93cyBoYXZlCisgICAgICAgICAgYmVlbiByZW1vdmVk LgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICA8bGlzdGl0 ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICA8bGl0ZXJhbD53YWxfbGV2ZWxfaW5zdWZm aWNpZW50PC9saXRlcmFsPiBtZWFucyB0aGF0IHRoZQorICAgICAgICAgIHByaW1hcnkgZG9lc24n dCBoYXZlIGEgPHhyZWYgbGlua2VuZD0iZ3VjLXdhbC1sZXZlbCIvPiBzdWZmaWNpZW50IHRvCisg ICAgICAgICAgcGVyZm9ybSBsb2dpY2FsIGRlY29kaW5nLgorICAgICAgICAgPC9wYXJhPgorICAg ICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3Rh YmxlPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IDA0MjI3YTcyZDEuLmNk MjJkYWQ5NTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNx bAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTEwMjMsOSAr MTAyMywxMCBAQCBDUkVBVEUgVklFVyBwZ19yZXBsaWNhdGlvbl9zbG90cyBBUwogICAgICAgICAg ICAgTC53YWxfc3RhdHVzLAogICAgICAgICAgICAgTC5zYWZlX3dhbF9zaXplLAogICAgICAgICAg ICAgTC50d29fcGhhc2UsCi0gICAgICAgICAgICBMLmNvbmZsaWN0X3JlYXNvbiwKKyAgICAgICAg ICAgIEwuY29uZmxpY3RpbmcsCiAgICAgICAgICAgICBMLmZhaWxvdmVyLAotICAgICAgICAgICAg TC5zeW5jZWQKKyAgICAgICAgICAgIEwuc3luY2VkLAorICAgICAgICAgICAgTC5pbnZhbGlkYXRp b25fcmVhc29uCiAgICAgRlJPTSBwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMoKSBBUyBMCiAgICAg ICAgICAgICBMRUZUIEpPSU4gcGdfZGF0YWJhc2UgRCBPTiAoTC5kYXRvaWQgPSBELm9pZCk7CiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYwppbmRleCA1MDc0Yzg0 MDlmLi4yNjA2MzJjZmRkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL3Nsb3RzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90 c3luYy5jCkBAIC02NjgsNyArNjY4LDcgQEAgc3luY2hyb25pemVfc2xvdHMoV2FsUmVjZWl2ZXJD b25uICp3cmNvbm4pCiAJYm9vbAkJc3RhcnRlZF90eCA9IGZhbHNlOwogCWNvbnN0IGNoYXIgKnF1 ZXJ5ID0gIlNFTEVDVCBzbG90X25hbWUsIHBsdWdpbiwgY29uZmlybWVkX2ZsdXNoX2xzbiwiCiAJ CSIgcmVzdGFydF9sc24sIGNhdGFsb2dfeG1pbiwgdHdvX3BoYXNlLCBmYWlsb3ZlciwiCi0JCSIg ZGF0YWJhc2UsIGNvbmZsaWN0X3JlYXNvbiIKKwkJIiBkYXRhYmFzZSwgaW52YWxpZGF0aW9uX3Jl YXNvbiIKIAkJIiBGUk9NIHBnX2NhdGFsb2cucGdfcmVwbGljYXRpb25fc2xvdHMiCiAJCSIgV0hF UkUgZmFpbG92ZXIgYW5kIE5PVCB0ZW1wb3JhcnkiOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9zbG90LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKaW5k ZXggOTFjYTM5Nzg1Ny4uNGYxYTE3ZjZjZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vc2xvdC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwpAQCAtMjM1 NiwyMSArMjM1NiwyMSBAQCBSZXN0b3JlU2xvdEZyb21EaXNrKGNvbnN0IGNoYXIgKm5hbWUpCiB9 CiAKIC8qCi0gKiBNYXBzIGEgY29uZmxpY3QgcmVhc29uIGZvciBhIHJlcGxpY2F0aW9uIHNsb3Qg dG8KKyAqIE1hcHMgYSBpbnZhbGlkYXRpb24gcmVhc29uIGZvciBhIHJlcGxpY2F0aW9uIHNsb3Qg dG8KICAqIFJlcGxpY2F0aW9uU2xvdEludmFsaWRhdGlvbkNhdXNlLgogICovCiBSZXBsaWNhdGlv blNsb3RJbnZhbGlkYXRpb25DYXVzZQotR2V0U2xvdEludmFsaWRhdGlvbkNhdXNlKGNvbnN0IGNo YXIgKmNvbmZsaWN0X3JlYXNvbikKK0dldFNsb3RJbnZhbGlkYXRpb25DYXVzZShjb25zdCBjaGFy ICppbnZhbGlkYXRpb25fcmVhc29uKQogewogCVJlcGxpY2F0aW9uU2xvdEludmFsaWRhdGlvbkNh dXNlIGNhdXNlOwogCVJlcGxpY2F0aW9uU2xvdEludmFsaWRhdGlvbkNhdXNlIHJlc3VsdCA9IFJT X0lOVkFMX05PTkU7CiAJYm9vbAkJZm91bmQgUEdfVVNFRF9GT1JfQVNTRVJUU19PTkxZID0gZmFs c2U7CiAKLQlBc3NlcnQoY29uZmxpY3RfcmVhc29uKTsKKwlBc3NlcnQoaW52YWxpZGF0aW9uX3Jl YXNvbik7CiAKIAlmb3IgKGNhdXNlID0gUlNfSU5WQUxfTk9ORTsgY2F1c2UgPD0gUlNfSU5WQUxf TUFYX0NBVVNFUzsgY2F1c2UrKykKIAl7Ci0JCWlmIChzdHJjbXAoU2xvdEludmFsaWRhdGlvbkNh dXNlc1tjYXVzZV0sIGNvbmZsaWN0X3JlYXNvbikgPT0gMCkKKwkJaWYgKHN0cmNtcChTbG90SW52 YWxpZGF0aW9uQ2F1c2VzW2NhdXNlXSwgaW52YWxpZGF0aW9uX3JlYXNvbikgPT0gMCkKIAkJewog CQkJZm91bmQgPSB0cnVlOwogCQkJcmVzdWx0ID0gY2F1c2U7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Ns b3RmdW5jcy5jCmluZGV4IGFkNzllMWZjY2QuLmI1YTYzOGVkZWEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3Nsb3RmdW5jcy5jCkBAIC0yMzksNyArMjM5LDcgQEAgcGdfZHJvcF9yZXBsaWNhdGlvbl9z bG90KFBHX0ZVTkNUSU9OX0FSR1MpCiBEYXR1bQogcGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzKFBH X0ZVTkNUSU9OX0FSR1MpCiB7Ci0jZGVmaW5lIFBHX0dFVF9SRVBMSUNBVElPTl9TTE9UU19DT0xT IDE3CisjZGVmaW5lIFBHX0dFVF9SRVBMSUNBVElPTl9TTE9UU19DT0xTIDE4CiAJUmV0dXJuU2V0 SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNpbmZvLT5yZXN1bHRpbmZvOwogCVhM b2dSZWNQdHIJY3VycmxzbjsKIAlpbnQJCQlzbG90bm87CkBAIC0yNjMsNiArMjYzLDcgQEAgcGdf Z2V0X3JlcGxpY2F0aW9uX3Nsb3RzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCWJvb2wJCW51bGxzW1BH X0dFVF9SRVBMSUNBVElPTl9TTE9UU19DT0xTXTsKIAkJV0FMQXZhaWxhYmlsaXR5IHdhbHN0YXRl OwogCQlpbnQJCQlpOworCQlSZXBsaWNhdGlvblNsb3RJbnZhbGlkYXRpb25DYXVzZSBjYXVzZTsK IAogCQlpZiAoIXNsb3QtPmluX3VzZSkKIAkJCWNvbnRpbnVlOwpAQCAtNDA5LDIyICs0MTAsMzIg QEAgcGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkJdmFsdWVz W2krK10gPSBCb29sR2V0RGF0dW0oc2xvdF9jb250ZW50cy5kYXRhLnR3b19waGFzZSk7CiAKLQkJ aWYgKHNsb3RfY29udGVudHMuZGF0YS5kYXRhYmFzZSA9PSBJbnZhbGlkT2lkKQorCQljYXVzZSA9 IHNsb3RfY29udGVudHMuZGF0YS5pbnZhbGlkYXRlZDsKKworCQlpZiAoU2xvdElzUGh5c2ljYWwo JnNsb3RfY29udGVudHMpKQogCQkJbnVsbHNbaSsrXSA9IHRydWU7CiAJCWVsc2UKIAkJewotCQkJ UmVwbGljYXRpb25TbG90SW52YWxpZGF0aW9uQ2F1c2UgY2F1c2UgPSBzbG90X2NvbnRlbnRzLmRh dGEuaW52YWxpZGF0ZWQ7Ci0KLQkJCWlmIChjYXVzZSA9PSBSU19JTlZBTF9OT05FKQotCQkJCW51 bGxzW2krK10gPSB0cnVlOworCQkJLyoKKwkJCSAqIHJvd3NfcmVtb3ZlZCBhbmQgd2FsX2xldmVs X2luc3VmZmljaWVudCBhcmUgb25seSB0d28gcmVhc29ucworCQkJICogZm9yIHRoZSBsb2dpY2Fs IHNsb3QncyBjb25mbGljdCB3aXRoIHJlY292ZXJ5LgorCQkJICovCisJCQlpZiAoY2F1c2UgPT0g UlNfSU5WQUxfSE9SSVpPTiB8fAorCQkJCWNhdXNlID09IFJTX0lOVkFMX1dBTF9MRVZFTCkKKwkJ CQl2YWx1ZXNbaSsrXSA9IEJvb2xHZXREYXR1bSh0cnVlKTsKIAkJCWVsc2UKLQkJCQl2YWx1ZXNb aSsrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oU2xvdEludmFsaWRhdGlvbkNhdXNlc1tjYXVzZV0p OworCQkJCXZhbHVlc1tpKytdID0gQm9vbEdldERhdHVtKGZhbHNlKTsKIAkJfQogCiAJCXZhbHVl c1tpKytdID0gQm9vbEdldERhdHVtKHNsb3RfY29udGVudHMuZGF0YS5mYWlsb3Zlcik7CiAKIAkJ dmFsdWVzW2krK10gPSBCb29sR2V0RGF0dW0oc2xvdF9jb250ZW50cy5kYXRhLnN5bmNlZCk7CiAK KwkJaWYgKGNhdXNlID09IFJTX0lOVkFMX05PTkUpCisJCQludWxsc1tpKytdID0gdHJ1ZTsKKwkJ ZWxzZQorCQkJdmFsdWVzW2krK10gPSBDU3RyaW5nR2V0VGV4dERhdHVtKFNsb3RJbnZhbGlkYXRp b25DYXVzZXNbY2F1c2VdKTsKKwogCQlBc3NlcnQoaSA9PSBQR19HRVRfUkVQTElDQVRJT05fU0xP VFNfQ09MUyk7CiAKIAkJdHVwbGVzdG9yZV9wdXR2YWx1ZXMocnNpbmZvLT5zZXRSZXN1bHQsIHJz aW5mby0+c2V0RGVzYywKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9pbmZvLmMgYi9z cmMvYmluL3BnX3VwZ3JhZGUvaW5mby5jCmluZGV4IGI1YjhkMTE2MDIuLjM0YTE1N2Y3OTIgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9pbmZvLmMKKysrIGIvc3JjL2Jpbi9wZ191cGdy YWRlL2luZm8uYwpAQCAtNjc2LDEzICs2NzYsMTMgQEAgZ2V0X29sZF9jbHVzdGVyX2xvZ2ljYWxf c2xvdF9pbmZvcyhEYkluZm8gKmRiaW5mbywgYm9vbCBsaXZlX2NoZWNrKQogCSAqIHJlbW92ZWQu CiAJICovCiAJcmVzID0gZXhlY3V0ZVF1ZXJ5T3JEaWUoY29ubiwgIlNFTEVDVCBzbG90X25hbWUs IHBsdWdpbiwgdHdvX3BoYXNlLCBmYWlsb3ZlciwgIgotCQkJCQkJCSIlcyBhcyBjYXVnaHRfdXAs IGNvbmZsaWN0X3JlYXNvbiBJUyBOT1QgTlVMTCBhcyBpbnZhbGlkICIKKwkJCQkJCQkiJXMgYXMg Y2F1Z2h0X3VwLCBpbnZhbGlkYXRpb25fcmVhc29uIElTIE5PVCBOVUxMIGFzIGludmFsaWQgIgog CQkJCQkJCSJGUk9NIHBnX2NhdGFsb2cucGdfcmVwbGljYXRpb25fc2xvdHMgIgogCQkJCQkJCSJX SEVSRSBzbG90X3R5cGUgPSAnbG9naWNhbCcgQU5EICIKIAkJCQkJCQkiZGF0YWJhc2UgPSBjdXJy ZW50X2RhdGFiYXNlKCkgQU5EICIKIAkJCQkJCQkidGVtcG9yYXJ5IElTIEZBTFNFOyIsCiAJCQkJ CQkJbGl2ZV9jaGVjayA/ICJGQUxTRSIgOgotCQkJCQkJCSIoQ0FTRSBXSEVOIGNvbmZsaWN0X3Jl YXNvbiBJUyBOT1QgTlVMTCBUSEVOIEZBTFNFICIKKwkJCQkJCQkiKENBU0UgV0hFTiBjb25mbGlj dGluZyBUSEVOIEZBTFNFICIKIAkJCQkJCQkiRUxTRSAoU0VMRUNUIHBnX2NhdGFsb2cuYmluYXJ5 X3VwZ3JhZGVfbG9naWNhbF9zbG90X2hhc19jYXVnaHRfdXAoc2xvdF9uYW1lKSkgIgogCQkJCQkJ CSJFTkQpIik7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDcwMGY3ZGFmN2IuLjYzZmQw YjRjZDcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTExMjMsOSArMTExMjMsOSBAQAog ICBwcm9uYW1lID0+ICdwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMnLCBwcm9yb3dzID0+ICcxMCcs IHByb2lzc3RyaWN0ID0+ICdmJywKICAgcHJvcmV0c2V0ID0+ICd0JywgcHJvdm9sYXRpbGUgPT4g J3MnLCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLAogICBwcm9hcmd0eXBlcyA9PiAnJywKLSAgcHJv YWxsYXJndHlwZXMgPT4gJ3tuYW1lLG5hbWUsdGV4dCxvaWQsYm9vbCxib29sLGludDQseGlkLHhp ZCxwZ19sc24scGdfbHNuLHRleHQsaW50OCxib29sLHRleHQsYm9vbCxib29sfScsCi0gIHByb2Fy Z21vZGVzID0+ICd7byxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvfScsCi0gIHByb2Fy Z25hbWVzID0+ICd7c2xvdF9uYW1lLHBsdWdpbixzbG90X3R5cGUsZGF0b2lkLHRlbXBvcmFyeSxh Y3RpdmUsYWN0aXZlX3BpZCx4bWluLGNhdGFsb2dfeG1pbixyZXN0YXJ0X2xzbixjb25maXJtZWRf Zmx1c2hfbHNuLHdhbF9zdGF0dXMsc2FmZV93YWxfc2l6ZSx0d29fcGhhc2UsY29uZmxpY3RfcmVh c29uLGZhaWxvdmVyLHN5bmNlZH0nLAorICBwcm9hbGxhcmd0eXBlcyA9PiAne25hbWUsbmFtZSx0 ZXh0LG9pZCxib29sLGJvb2wsaW50NCx4aWQseGlkLHBnX2xzbixwZ19sc24sdGV4dCxpbnQ4LGJv b2wsYm9vbCxib29sLGJvb2wsdGV4dH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8sbyxv LG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7c2xvdF9uYW1l LHBsdWdpbixzbG90X3R5cGUsZGF0b2lkLHRlbXBvcmFyeSxhY3RpdmUsYWN0aXZlX3BpZCx4bWlu LGNhdGFsb2dfeG1pbixyZXN0YXJ0X2xzbixjb25maXJtZWRfZmx1c2hfbHNuLHdhbF9zdGF0dXMs c2FmZV93YWxfc2l6ZSx0d29fcGhhc2UsY29uZmxpY3RpbmcsZmFpbG92ZXIsc3luY2VkLGludmFs aWRhdGlvbl9yZWFzb259JywKICAgcHJvc3JjID0+ICdwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMn IH0sCiB7IG9pZCA9PiAnMzc4NicsIGRlc2NyID0+ICdzZXQgdXAgYSBsb2dpY2FsIHJlcGxpY2F0 aW9uIHNsb3QnLAogICBwcm9uYW1lID0+ICdwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9z bG90JywgcHJvdm9sYXRpbGUgPT4gJ3YnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vc2xvdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCmluZGV4IDQyNWVm ZmFkMjEuLjdmMjVhMDgzZWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Ns b3QuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKQEAgLTI3Myw3ICsyNzMs NyBAQCBleHRlcm4gdm9pZCBDaGVja1BvaW50UmVwbGljYXRpb25TbG90cyhib29sIGlzX3NodXRk b3duKTsKIGV4dGVybiB2b2lkIENoZWNrU2xvdFJlcXVpcmVtZW50cyh2b2lkKTsKIGV4dGVybiB2 b2lkIENoZWNrU2xvdFBlcm1pc3Npb25zKHZvaWQpOwogZXh0ZXJuIFJlcGxpY2F0aW9uU2xvdElu dmFsaWRhdGlvbkNhdXNlCi0JCQlHZXRTbG90SW52YWxpZGF0aW9uQ2F1c2UoY29uc3QgY2hhciAq Y29uZmxpY3RfcmVhc29uKTsKKwkJCUdldFNsb3RJbnZhbGlkYXRpb25DYXVzZShjb25zdCBjaGFy ICppbnZhbGlkYXRpb25fcmVhc29uKTsKIAogZXh0ZXJuIGJvb2wgU2xvdEV4aXN0c0luU3RhbmRi eVNsb3ROYW1lcyhjb25zdCBjaGFyICpzbG90X25hbWUpOwogZXh0ZXJuIGJvb2wgU3RhbmRieVNs b3RzSGF2ZUNhdWdodHVwKFhMb2dSZWNQdHIgd2FpdF9mb3JfbHNuLCBpbnQgZWxldmVsKTsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDM1X3N0YW5kYnlfbG9naWNhbF9kZWNvZGlu Zy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDM1X3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZy5w bAppbmRleCA4OGIwMzA0OGM0Li4yMjAzODQxY2ExIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWNv dmVyeS90LzAzNV9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwKKysrIGIvc3JjL3Rlc3QvcmVj b3ZlcnkvdC8wMzVfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBsCkBAIC0xNjgsNyArMTY4LDcg QEAgc3ViIGNoYW5nZV9ob3Rfc3RhbmRieV9mZWVkYmFja19hbmRfd2FpdF9mb3JfeG1pbnMKIAl9 CiB9CiAKLSMgQ2hlY2sgY29uZmxpY3RfcmVhc29uIGluIHBnX3JlcGxpY2F0aW9uX3Nsb3RzLgor IyBDaGVjayByZWFzb24gZm9yIGNvbmZsaWN0IGluIHBnX3JlcGxpY2F0aW9uX3Nsb3RzLgogc3Vi IGNoZWNrX3Nsb3RzX2NvbmZsaWN0X3JlYXNvbgogewogCW15ICgkc2xvdF9wcmVmaXgsICRyZWFz b24pID0gQF87CkBAIC0xNzgsMTUgKzE3OCwxNSBAQCBzdWIgY2hlY2tfc2xvdHNfY29uZmxpY3Rf cmVhc29uCiAKIAkkcmVzID0gJG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKAogCQkncG9zdGdyZXMn LCBxcSgKLQkJCSBzZWxlY3QgY29uZmxpY3RfcmVhc29uIGZyb20gcGdfcmVwbGljYXRpb25fc2xv dHMgd2hlcmUgc2xvdF9uYW1lID0gJyRhY3RpdmVfc2xvdCc7KSk7CisJCQkgc2VsZWN0IGludmFs aWRhdGlvbl9yZWFzb24gZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90cyB3aGVyZSBzbG90X25hbWUg PSAnJGFjdGl2ZV9zbG90JyBhbmQgY29uZmxpY3Rpbmc7KSk7CiAKLQlpcygkcmVzLCAiJHJlYXNv biIsICIkYWN0aXZlX3Nsb3QgY29uZmxpY3RfcmVhc29uIGlzICRyZWFzb24iKTsKKwlpcygkcmVz LCAiJHJlYXNvbiIsICIkYWN0aXZlX3Nsb3QgcmVhc29uIGZvciBjb25mbGljdCBpcyAkcmVhc29u Iik7CiAKIAkkcmVzID0gJG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKAogCQkncG9zdGdyZXMnLCBx cSgKLQkJCSBzZWxlY3QgY29uZmxpY3RfcmVhc29uIGZyb20gcGdfcmVwbGljYXRpb25fc2xvdHMg d2hlcmUgc2xvdF9uYW1lID0gJyRpbmFjdGl2ZV9zbG90JzspKTsKKwkJCSBzZWxlY3QgaW52YWxp ZGF0aW9uX3JlYXNvbiBmcm9tIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIHdoZXJlIHNsb3RfbmFtZSA9 ICckaW5hY3RpdmVfc2xvdCcgYW5kIGNvbmZsaWN0aW5nOykpOwogCi0JaXMoJHJlcywgIiRyZWFz b24iLCAiJGluYWN0aXZlX3Nsb3QgY29uZmxpY3RfcmVhc29uIGlzICRyZWFzb24iKTsKKwlpcygk cmVzLCAiJHJlYXNvbiIsICIkaW5hY3RpdmVfc2xvdCByZWFzb24gZm9yIGNvbmZsaWN0IGlzICRy ZWFzb24iKTsKIH0KIAogIyBEcm9wIHRoZSBzbG90cywgcmUtY3JlYXRlIHRoZW0sIGNoYW5nZSBo b3Rfc3RhbmRieV9mZWVkYmFjaywKQEAgLTI5MywxMyArMjkzLDEzIEBAICRub2RlX3ByaW1hcnkt PnNhZmVfcHNxbCgndGVzdGRiJywKIAlxcVtTRUxFQ1QgKiBGUk9NIHBnX2NyZWF0ZV9waHlzaWNh bF9yZXBsaWNhdGlvbl9zbG90KCckcHJpbWFyeV9zbG90bmFtZScpO10KICk7CiAKLSMgQ2hlY2sg Y29uZmxpY3RfcmVhc29uIGlzIE5VTEwgZm9yIHBoeXNpY2FsIHNsb3QKKyMgQ2hlY2sgY29uZmxp Y3RpbmcgaXMgTlVMTCBmb3IgcGh5c2ljYWwgc2xvdAogJHJlcyA9ICRub2RlX3ByaW1hcnktPnNh ZmVfcHNxbCgKIAkncG9zdGdyZXMnLCBxcVsKLQkJIFNFTEVDVCBjb25mbGljdF9yZWFzb24gaXMg bnVsbCBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIHdoZXJlIHNsb3RfbmFtZSA9ICckcHJpbWFy eV9zbG90bmFtZSc7XQorCQkgU0VMRUNUIGNvbmZsaWN0aW5nIGlzIG51bGwgRlJPTSBwZ19yZXBs aWNhdGlvbl9zbG90cyB3aGVyZSBzbG90X25hbWUgPSAnJHByaW1hcnlfc2xvdG5hbWUnO10KICk7 CiAKLWlzKCRyZXMsICd0JywgIlBoeXNpY2FsIHNsb3QgcmVwb3J0cyBjb25mbGljdF9yZWFzb24g YXMgTlVMTCIpOworaXMoJHJlcywgJ3QnLCAiUGh5c2ljYWwgc2xvdCByZXBvcnRzIGNvbmZsaWN0 aW5nIGFzIE5VTEwiKTsKIAogbXkgJGJhY2t1cF9uYW1lID0gJ2IxJzsKICRub2RlX3ByaW1hcnkt PmJhY2t1cCgkYmFja3VwX25hbWUpOwpAQCAtNTI0LDcgKzUyNCw3IEBAICRub2RlX3ByaW1hcnkt PndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0YW5kYnkpOwogIyBDaGVjayBpbnZhbGlk YXRpb24gaW4gdGhlIGxvZ2ZpbGUgYW5kIGluIHBnX3N0YXRfZGF0YWJhc2VfY29uZmxpY3RzCiBj aGVja19mb3JfaW52YWxpZGF0aW9uKCd2YWN1dW1fZnVsbF8nLCAxLCAnd2l0aCB2YWN1dW0gRlVM TCBvbiBwZ19jbGFzcycpOwogCi0jIFZlcmlmeSBjb25mbGljdF9yZWFzb24gaXMgJ3Jvd3NfcmVt b3ZlZCcgaW4gcGdfcmVwbGljYXRpb25fc2xvdHMKKyMgVmVyaWZ5IHJlYXNvbiBmb3IgY29uZmxp Y3QgaXMgJ3Jvd3NfcmVtb3ZlZCcgaW4gcGdfcmVwbGljYXRpb25fc2xvdHMKIGNoZWNrX3Nsb3Rz X2NvbmZsaWN0X3JlYXNvbigndmFjdXVtX2Z1bGxfJywgJ3Jvd3NfcmVtb3ZlZCcpOwogCiAjIEVu c3VyZSB0aGF0IHJlcGxpY2F0aW9uIHNsb3Qgc3RhdHMgYXJlIG5vdCByZW1vdmVkIGFmdGVyIGlu dmFsaWRhdGlvbi4KQEAgLTU1MSw3ICs1NTEsNyBAQCBjaGFuZ2VfaG90X3N0YW5kYnlfZmVlZGJh Y2tfYW5kX3dhaXRfZm9yX3htaW5zKDEsIDEpOwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICRub2RlX3N0YW5kYnktPnJlc3RhcnQ7CiAKLSMgVmVy aWZ5IGNvbmZsaWN0X3JlYXNvbiBpcyByZXRhaW5lZCBhY3Jvc3MgYSByZXN0YXJ0LgorIyBWZXJp ZnkgcmVhc29uIGZvciBjb25mbGljdCBpcyByZXRhaW5lZCBhY3Jvc3MgYSByZXN0YXJ0LgogY2hl Y2tfc2xvdHNfY29uZmxpY3RfcmVhc29uKCd2YWN1dW1fZnVsbF8nLCAncm93c19yZW1vdmVkJyk7 CiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCkBA IC01NjAsNyArNTYwLDggQEAgY2hlY2tfc2xvdHNfY29uZmxpY3RfcmVhc29uKCd2YWN1dW1fZnVs bF8nLCAncm93c19yZW1vdmVkJyk7CiAKICMgR2V0IHRoZSByZXN0YXJ0X2xzbiBmcm9tIGFuIGlu dmFsaWRhdGVkIHNsb3QKIG15ICRyZXN0YXJ0X2xzbiA9ICRub2RlX3N0YW5kYnktPnNhZmVfcHNx bCgncG9zdGdyZXMnLAotCSJTRUxFQ1QgcmVzdGFydF9sc24gZnJvbSBwZ19yZXBsaWNhdGlvbl9z bG90cyBXSEVSRSBzbG90X25hbWUgPSAndmFjdXVtX2Z1bGxfYWN0aXZlc2xvdCcgYW5kIGNvbmZs aWN0X3JlYXNvbiBpcyBub3QgbnVsbDsiCisJIlNFTEVDVCByZXN0YXJ0X2xzbiBGUk9NIHBnX3Jl cGxpY2F0aW9uX3Nsb3RzCisJCVdIRVJFIHNsb3RfbmFtZSA9ICd2YWN1dW1fZnVsbF9hY3RpdmVz bG90JyBBTkQgY29uZmxpY3Rpbmc7IgogKTsKIAogY2hvbXAoJHJlc3RhcnRfbHNuKTsKQEAgLTYx MSw3ICs2MTIsNyBAQCAkbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkbm9k ZV9zdGFuZGJ5KTsKICMgQ2hlY2sgaW52YWxpZGF0aW9uIGluIHRoZSBsb2dmaWxlIGFuZCBpbiBw Z19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cwogY2hlY2tfZm9yX2ludmFsaWRhdGlvbigncm93X3Jl bW92YWxfJywgJGxvZ3N0YXJ0LCAnd2l0aCB2YWN1dW0gb24gcGdfY2xhc3MnKTsKIAotIyBWZXJp ZnkgY29uZmxpY3RfcmVhc29uIGlzICdyb3dzX3JlbW92ZWQnIGluIHBnX3JlcGxpY2F0aW9uX3Ns b3RzCisjIFZlcmlmeSByZWFzb24gZm9yIGNvbmZsaWN0IGlzICdyb3dzX3JlbW92ZWQnIGluIHBn X3JlcGxpY2F0aW9uX3Nsb3RzCiBjaGVja19zbG90c19jb25mbGljdF9yZWFzb24oJ3Jvd19yZW1v dmFsXycsICdyb3dzX3JlbW92ZWQnKTsKIAogJGhhbmRsZSA9CkBAIC02NDcsNyArNjQ4LDcgQEAg JG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfcmVwbGF5X2NhdGNodXAoJG5vZGVfc3RhbmRieSk7CiBj aGVja19mb3JfaW52YWxpZGF0aW9uKCdzaGFyZWRfcm93X3JlbW92YWxfJywgJGxvZ3N0YXJ0LAog CSd3aXRoIHZhY3V1bSBvbiBwZ19hdXRoaWQnKTsKIAotIyBWZXJpZnkgY29uZmxpY3RfcmVhc29u IGlzICdyb3dzX3JlbW92ZWQnIGluIHBnX3JlcGxpY2F0aW9uX3Nsb3RzCisjIFZlcmlmeSByZWFz b24gZm9yIGNvbmZsaWN0IGlzICdyb3dzX3JlbW92ZWQnIGluIHBnX3JlcGxpY2F0aW9uX3Nsb3Rz CiBjaGVja19zbG90c19jb25mbGljdF9yZWFzb24oJ3NoYXJlZF9yb3dfcmVtb3ZhbF8nLCAncm93 c19yZW1vdmVkJyk7CiAKICRoYW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKCRub2RlX3N0YW5kYnks ICdzaGFyZWRfcm93X3JlbW92YWxfJywgMCwgXCRzdGRvdXQsCkBAIC02OTYsMTQgKzY5NywxNCBA QCBvayggJG5vZGVfc3RhbmRieS0+cG9sbF9xdWVyeV91bnRpbCgKIAknY29uZmxfYWN0aXZlX2xv Z2ljYWxzbG90IG5vdCB1cGRhdGVkJwogKSBvciBkaWUgIlRpbWVkIG91dCB3YWl0aW5nIGNvbmZs X2FjdGl2ZV9sb2dpY2Fsc2xvdCB0byBiZSB1cGRhdGVkIjsKIAotIyBWZXJpZnkgc2xvdHMgYXJl IHJlcG9ydGVkIGFzIG5vbiBjb25mbGljdGluZyBpbiBwZ19yZXBsaWNhdGlvbl9zbG90cworIyBW ZXJpZnkgc2xvdHMgYXJlIHJlcG9ydGVkIGFzIHZhbGlkIGluIHBnX3JlcGxpY2F0aW9uX3Nsb3Rz CiBpcyggJG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKAogCQkncG9zdGdyZXMnLAogCQlxW3NlbGVj dCBib29sX29yKGNvbmZsaWN0aW5nKSBmcm9tCi0JCSAgKHNlbGVjdCBjb25mbGljdF9yZWFzb24g aXMgbm90IE5VTEwgYXMgY29uZmxpY3RpbmcKLQkJICAgZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90 cyBXSEVSRSBzbG90X3R5cGUgPSAnbG9naWNhbCcpXSksCisJCSAgKHNlbGVjdCBjb25mbGljdGlu ZyBmcm9tIHBnX3JlcGxpY2F0aW9uX3Nsb3RzCisJCQl3aGVyZSBzbG90X3R5cGUgPSAnbG9naWNh bCcpXSksCiAJJ2YnLAotCSdMb2dpY2FsIHNsb3RzIGFyZSByZXBvcnRlZCBhcyBub24gY29uZmxp Y3RpbmcnKTsKKwknTG9naWNhbCBzbG90cyBhcmUgcmVwb3J0ZWQgYXMgdmFsaWQnKTsKIAogIyBU dXJuIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIGJhY2sgb24KIGNoYW5nZV9ob3Rfc3RhbmRieV9mZWVk YmFja19hbmRfd2FpdF9mb3JfeG1pbnMoMSwgMCk7CkBAIC03MzksNyArNzQwLDcgQEAgJG5vZGVf cHJpbWFyeS0+d2FpdF9mb3JfcmVwbGF5X2NhdGNodXAoJG5vZGVfc3RhbmRieSk7CiAjIENoZWNr IGludmFsaWRhdGlvbiBpbiB0aGUgbG9nZmlsZSBhbmQgaW4gcGdfc3RhdF9kYXRhYmFzZV9jb25m bGljdHMKIGNoZWNrX2Zvcl9pbnZhbGlkYXRpb24oJ3BydW5pbmdfJywgJGxvZ3N0YXJ0LCAnd2l0 aCBvbi1hY2Nlc3MgcHJ1bmluZycpOwogCi0jIFZlcmlmeSBjb25mbGljdF9yZWFzb24gaXMgJ3Jv d3NfcmVtb3ZlZCcgaW4gcGdfcmVwbGljYXRpb25fc2xvdHMKKyMgVmVyaWZ5IHJlYXNvbiBmb3Ig Y29uZmxpY3QgaXMgJ3Jvd3NfcmVtb3ZlZCcgaW4gcGdfcmVwbGljYXRpb25fc2xvdHMKIGNoZWNr X3Nsb3RzX2NvbmZsaWN0X3JlYXNvbigncHJ1bmluZ18nLCAncm93c19yZW1vdmVkJyk7CiAKICRo YW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKCRub2RlX3N0YW5kYnksICdwcnVuaW5nXycsIDAsIFwk c3Rkb3V0LCBcJHN0ZGVycik7CkBAIC03ODMsNyArNzg0LDcgQEAgJG5vZGVfcHJpbWFyeS0+d2Fp dF9mb3JfcmVwbGF5X2NhdGNodXAoJG5vZGVfc3RhbmRieSk7CiAjIENoZWNrIGludmFsaWRhdGlv biBpbiB0aGUgbG9nZmlsZSBhbmQgaW4gcGdfc3RhdF9kYXRhYmFzZV9jb25mbGljdHMKIGNoZWNr X2Zvcl9pbnZhbGlkYXRpb24oJ3dhbF9sZXZlbF8nLCAkbG9nc3RhcnQsICdkdWUgdG8gd2FsX2xl dmVsJyk7CiAKLSMgVmVyaWZ5IGNvbmZsaWN0X3JlYXNvbiBpcyAnd2FsX2xldmVsX2luc3VmZmlj aWVudCcgaW4gcGdfcmVwbGljYXRpb25fc2xvdHMKKyMgVmVyaWZ5IHJlYXNvbiBmb3IgY29uZmxp Y3QgaXMgJ3dhbF9sZXZlbF9pbnN1ZmZpY2llbnQnIGluIHBnX3JlcGxpY2F0aW9uX3Nsb3RzCiBj aGVja19zbG90c19jb25mbGljdF9yZWFzb24oJ3dhbF9sZXZlbF8nLCAnd2FsX2xldmVsX2luc3Vm ZmljaWVudCcpOwogCiAkaGFuZGxlID0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3Qv MDQwX3N0YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3Qv MDQwX3N0YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbAppbmRleCAwZWExZjNkMzIzLi5mNDdi ZmQ3OGViIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVyeS90LzA0MF9zdGFuZGJ5X2ZhaWxv dmVyX3Nsb3RzX3N5bmMucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNDBfc3RhbmRieV9m YWlsb3Zlcl9zbG90c19zeW5jLnBsCkBAIC0yMjgsNyArMjI4LDcgQEAgJHN0YW5kYnkxLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIkNIRUNLUE9JTlQiKTsKICMgQ2hlY2sgaWYgdGhlIHN5bmNlZCBz bG90IGlzIGludmFsaWRhdGVkCiBpcyggJHN0YW5kYnkxLT5zYWZlX3BzcWwoCiAJCSdwb3N0Z3Jl cycsCi0JCXF7U0VMRUNUIGNvbmZsaWN0X3JlYXNvbiA9ICd3YWxfcmVtb3ZlZCcgRlJPTSBwZ19y ZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xvdCc7fQorCQlxe1NF TEVDVCBpbnZhbGlkYXRpb25fcmVhc29uID0gJ3dhbF9yZW1vdmVkJyBGUk9NIHBnX3JlcGxpY2F0 aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdsc3ViMV9zbG90Jzt9CiAJKSwKIAkidCIsCiAJ J3N5bmNocm9uaXplZCBzbG90IGhhcyBiZWVuIGludmFsaWRhdGVkJyk7CkBAIC0yNzQsNyArMjc0 LDcgQEAgJHN0YW5kYnkxLT53YWl0X2Zvcl9sb2cocXIvZHJvcHBlZCByZXBsaWNhdGlvbiBzbG90 ICJsc3ViMV9zbG90IiBvZiBkYmlkIFswLTldKy8KICMgZmxhZ2dlZCBhcyAnc3luY2VkJwogaXMo ICRzdGFuZGJ5MS0+c2FmZV9wc3FsKAogCQkncG9zdGdyZXMnLAotCQlxe1NFTEVDVCBjb25mbGlj dF9yZWFzb24gSVMgTlVMTCBBTkQgc3luY2VkIEFORCBOT1QgdGVtcG9yYXJ5IEZST00gcGdfcmVw bGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1lID0gJ2xzdWIxX3Nsb3QnO30KKwkJcXtTRUxF Q1QgaW52YWxpZGF0aW9uX3JlYXNvbiBJUyBOVUxMIEFORCBzeW5jZWQgQU5EIE5PVCB0ZW1wb3Jh cnkgRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xv dCc7fQogCSksCiAJInQiLAogCSdsb2dpY2FsIHNsb3QgaXMgcmUtc3luY2VkJyk7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IDBjZDJjNjRmY2EuLjA1NWJlYzA2OGQgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0xNDczLDEwICsxNDczLDExIEBAIHBnX3Jl cGxpY2F0aW9uX3Nsb3RzfCBTRUxFQ1QgbC5zbG90X25hbWUsCiAgICAgbC53YWxfc3RhdHVzLAog ICAgIGwuc2FmZV93YWxfc2l6ZSwKICAgICBsLnR3b19waGFzZSwKLSAgICBsLmNvbmZsaWN0X3Jl YXNvbiwKKyAgICBsLmNvbmZsaWN0aW5nLAogICAgIGwuZmFpbG92ZXIsCi0gICAgbC5zeW5jZWQK LSAgIEZST00gKHBnX2dldF9yZXBsaWNhdGlvbl9zbG90cygpIGwoc2xvdF9uYW1lLCBwbHVnaW4s IHNsb3RfdHlwZSwgZGF0b2lkLCB0ZW1wb3JhcnksIGFjdGl2ZSwgYWN0aXZlX3BpZCwgeG1pbiwg Y2F0YWxvZ194bWluLCByZXN0YXJ0X2xzbiwgY29uZmlybWVkX2ZsdXNoX2xzbiwgd2FsX3N0YXR1 cywgc2FmZV93YWxfc2l6ZSwgdHdvX3BoYXNlLCBjb25mbGljdF9yZWFzb24sIGZhaWxvdmVyLCBz eW5jZWQpCisgICAgbC5zeW5jZWQsCisgICAgbC5pbnZhbGlkYXRpb25fcmVhc29uCisgICBGUk9N IChwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMoKSBsKHNsb3RfbmFtZSwgcGx1Z2luLCBzbG90X3R5 cGUsIGRhdG9pZCwgdGVtcG9yYXJ5LCBhY3RpdmUsIGFjdGl2ZV9waWQsIHhtaW4sIGNhdGFsb2df eG1pbiwgcmVzdGFydF9sc24sIGNvbmZpcm1lZF9mbHVzaF9sc24sIHdhbF9zdGF0dXMsIHNhZmVf d2FsX3NpemUsIHR3b19waGFzZSwgY29uZmxpY3RpbmcsIGZhaWxvdmVyLCBzeW5jZWQsIGludmFs aWRhdGlvbl9yZWFzb24pCiAgICAgIExFRlQgSk9JTiBwZ19kYXRhYmFzZSBkIE9OICgobC5kYXRv aWQgPSBkLm9pZCkpKTsKIHBnX3JvbGVzfCBTRUxFQ1QgcGdfYXV0aGlkLnJvbG5hbWUsCiAgICAg cGdfYXV0aGlkLnJvbHN1cGVyLAotLSAKMi4zNC4xCgo= --000000000000da5df20613bf25c9 Content-Type: application/octet-stream; name="v11-0002-Add-XID-age-based-replication-slot-invalidation.patch" Content-Disposition: attachment; filename="v11-0002-Add-XID-age-based-replication-slot-invalidation.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lttk3d6h1 RnJvbSBlYTVhY2RkODBiM2E5M2RkOGU5YWU2OTYyOGQyMzdlNzFlOWFkNTc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCaGFyYXRoIFJ1cGlyZWRkeSA8YmhhcmF0aC5ydXBpcmVkZHlm b3Jwb3N0Z3Jlc0BnbWFpbC5jb20+CkRhdGU6IFNhdCwgMTYgTWFyIDIwMjQgMDM6NDY6MjggKzAw MDAKU3ViamVjdDogW1BBVENIIHYxMSAyLzRdIEFkZCBYSUQgYWdlIGJhc2VkIHJlcGxpY2F0aW9u IHNsb3QgaW52YWxpZGF0aW9uCgpVcCB1bnRpbCBub3csIHBvc3RncmVzIGhhcyB0aGUgYWJpbGl0 eSB0byBpbnZhbGlkYXRlIGluYWN0aXZlCnJlcGxpY2F0aW9uIHNsb3RzIGJhc2VkIG9uIHRoZSBh bW91bnQgb2YgV0FMIChzZXQgdmlhCm1heF9zbG90X3dhbF9rZWVwX3NpemUgR1VDKSB0aGF0IHdp bGwgYmUgbmVlZGVkIGZvciB0aGUgc2xvdHMgaW4KY2FzZSB0aGV5IGJlY29tZSBhY3RpdmUuIEhv d2V2ZXIsIGNob29zaW5nIGEgZGVmYXVsdCB2YWx1ZSBmb3IKbWF4X3Nsb3Rfd2FsX2tlZXBfc2l6 ZSBpcyB0cmlja3kuIEJlY2F1c2UgdGhlIGFtb3VudCBvZiBXQUwgYQpjdXN0b21lciBnZW5lcmF0 ZXMsIGFuZCB0aGVpciBhbGxvY2F0ZWQgc3RvcmFnZSB3aWxsIHZhcnkgZ3JlYXRseQppbiBwcm9k dWN0aW9uLCBtYWtpbmcgaXQgZGlmZmljdWx0IHRvIHBpbiBkb3duIGEgb25lLXNpemUtZml0cy1h bGwKdmFsdWUuIEl0IGlzIG9mdGVuIGVhc3kgZm9yIGRldmVsb3BlcnMgdG8gc2V0IGFuIFhJRCBh Z2UgKGFnZSBvZgpzbG90J3MgeG1pbiBvciBjYXRhbG9nX3htaW4pIG9mIHNheSAxIG9yIDEuNSBi aWxsaW9uLCBhZnRlciB3aGljaAp0aGUgc2xvdHMgZ2V0IGludmFsaWRhdGVkLgoKVG8gYWNoaWV2 ZSB0aGUgYWJvdmUsIHBvc3RncmVzIHVzZXMgcmVwbGljYXRpb24gc2xvdCB4bWluICh0aGUKb2xk ZXN0IHRyYW5zYWN0aW9uIHRoYXQgdGhpcyBzbG90IG5lZWRzIHRoZSBkYXRhYmFzZSB0byByZXRh aW4pIG9yCmNhdGFsb2dfeG1pbiAodGhlIG9sZGVzdCB0cmFuc2FjdGlvbiBhZmZlY3RpbmcgdGhl IHN5c3RlbSBjYXRhbG9ncwp0aGF0IHRoaXMgc2xvdCBuZWVkcyB0aGUgZGF0YWJhc2UgdG8gcmV0 YWluKSwgYW5kIGEgbmV3IEdVQwptYXhfc2xvdF94aWRfYWdlLiBUaGUgY2hlY2twb2ludGVyIHRo ZW4gbG9va3MgYXQgYWxsIHJlcGxpY2F0aW9uCnNsb3RzIGludmFsaWRhdGluZyB0aGUgc2xvdHMg YmFzZWQgb24gdGhlIGFnZSBzZXQuCi0tLQogZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sICAgICAg ICAgICAgICAgICAgICAgIHwgIDIxICsrKysKIGRvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dt bCAgICAgICAgICAgICAgICB8ICAgOCArKwogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxv Zy5jICAgICAgICAgICAgIHwgIDEwICsrCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMg ICAgICAgICAgICAgICAgfCAgNDkgKysrKysrKy0KIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj X3RhYmxlcy5jICAgICAgICAgICB8ICAxMCArKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0 Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgICAxICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3Qu aCAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvdGVzdC9yZWNvdmVyeS9tZXNvbi5idWlsZCAg ICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfaW52YWxpZGF0 ZV9zbG90cy5wbCAgIHwgMTA4ICsrKysrKysrKysrKysrKysrKwogOSBmaWxlcyBjaGFuZ2VkLCAy MTAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90 ZXN0L3JlY292ZXJ5L3QvMDUwX2ludmFsaWRhdGVfc2xvdHMucGwKCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggNjVh NmU2YzQwOC4uNmRkNTRmZmNiNyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtNDU0NCw2ICs0NTQ0LDI3IEBAIHJl c3RvcmVfY29tbWFuZCA9ICdjb3B5ICJDOlxcc2VydmVyXFxhcmNoaXZlZGlyXFwlZiIgIiVwIicg ICMgV2luZG93cwogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAg ICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLW1heC1zbG90LXhpZC1hZ2UiIHhyZWZsYWJlbD0ibWF4 X3Nsb3RfeGlkX2FnZSI+CisgICAgICA8dGVybT48dmFybmFtZT5tYXhfc2xvdF94aWRfYWdlPC92 YXJuYW1lPiAoPHR5cGU+aW50ZWdlcjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAgICAg IDxwcmltYXJ5Pjx2YXJuYW1lPm1heF9zbG90X3hpZF9hZ2U8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRp b24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8L3Rlcm0+ CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEludmFsaWRhdGUgcmVw bGljYXRpb24gc2xvdHMgd2hvc2UgPGxpdGVyYWw+eG1pbjwvbGl0ZXJhbD4gKHRoZSBvbGRlc3QK KyAgICAgICAgdHJhbnNhY3Rpb24gdGhhdCB0aGlzIHNsb3QgbmVlZHMgdGhlIGRhdGFiYXNlIHRv IHJldGFpbikgb3IKKyAgICAgICAgPGxpdGVyYWw+Y2F0YWxvZ194bWluPC9saXRlcmFsPiAodGhl IG9sZGVzdCB0cmFuc2FjdGlvbiBhZmZlY3RpbmcgdGhlCisgICAgICAgIHN5c3RlbSBjYXRhbG9n cyB0aGF0IHRoaXMgc2xvdCBuZWVkcyB0aGUgZGF0YWJhc2UgdG8gcmV0YWluKSBoYXMgcmVhY2hl ZAorICAgICAgICB0aGUgYWdlIHNwZWNpZmllZCBieSB0aGlzIHNldHRpbmcuIEEgdmFsdWUgb2Yg emVybyAod2hpY2ggaXMgZGVmYXVsdCkKKyAgICAgICAgZGlzYWJsZXMgdGhpcyBmZWF0dXJlLiBV c2VycyBjYW4gc2V0IHRoaXMgdmFsdWUgYW55d2hlcmUgZnJvbSB6ZXJvIHRvCisgICAgICAgIHR3 byBiaWxsaW9uLiBUaGlzIHBhcmFtZXRlciBjYW4gb25seSBiZSBzZXQgaW4gdGhlCisgICAgICAg IDxmaWxlbmFtZT5wb3N0Z3Jlc3FsLmNvbmY8L2ZpbGVuYW1lPiBmaWxlIG9yIG9uIHRoZSBzZXJ2 ZXIgY29tbWFuZAorICAgICAgICBsaW5lLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0 ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy10 cmFjay1jb21taXQtdGltZXN0YW1wIiB4cmVmbGFiZWw9InRyYWNrX2NvbW1pdF90aW1lc3RhbXAi PgogICAgICAgPHRlcm0+PHZhcm5hbWU+dHJhY2tfY29tbWl0X3RpbWVzdGFtcDwvdmFybmFtZT4g KDx0eXBlPmJvb2xlYW48L3R5cGU+KQogICAgICAgPGluZGV4dGVybT4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Mu c2dtbAppbmRleCBlNjg1OTIxODQ3Li41NjI1MmIxMmVlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvc3lzdGVtLXZpZXdzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21s CkBAIC0yNTg4LDYgKzI1ODgsMTQgQEAgU0VMRUNUICogRlJPTSBwZ19sb2NrcyBwbCBMRUZUIEpP SU4gcGdfcHJlcGFyZWRfeGFjdHMgcHB4CiAgICAgICAgICAgcGVyZm9ybSBsb2dpY2FsIGRlY29k aW5nLgogICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICA8bGlz dGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICA8bGl0ZXJhbD54aWRfYWdlZDwvbGl0 ZXJhbD4gbWVhbnMgdGhhdCB0aGUgc2xvdCdzCisgICAgICAgICAgPGxpdGVyYWw+eG1pbjwvbGl0 ZXJhbD4gb3IgPGxpdGVyYWw+Y2F0YWxvZ194bWluPC9saXRlcmFsPgorICAgICAgICAgIGhhcyBy ZWFjaGVkIHRoZSBhZ2Ugc3BlY2lmaWVkIGJ5CisgICAgICAgICAgPHhyZWYgbGlua2VuZD0iZ3Vj LW1heC1zbG90LXhpZC1hZ2UiLz4gcGFyYW1ldGVyLgorICAgICAgICAgPC9wYXJhPgorICAgICAg ICA8L2xpc3RpdGVtPgogICAgICAgIDwvaXRlbWl6ZWRsaXN0PgogICAgICAgPC9wYXJhPjwvZW50 cnk+CiAgICAgIDwvcm93PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IDIwYTVmODYy MDkuLjM2YWUyYWM2YTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hs b2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKQEAgLTcxNDcsNiAr NzE0NywxMSBAQCBDcmVhdGVDaGVja1BvaW50KGludCBmbGFncykKIAlpZiAoUHJpb3JSZWRvUHRy ICE9IEludmFsaWRYTG9nUmVjUHRyKQogCQlVcGRhdGVDaGVja1BvaW50RGlzdGFuY2VFc3RpbWF0 ZShSZWRvUmVjUHRyIC0gUHJpb3JSZWRvUHRyKTsKIAorCS8qIEludmFsaWRhdGUgcmVwbGljYXRp b24gc2xvdHMgYmFzZWQgb24geG1pbiBvciBjYXRhbG9nX3htaW4gYWdlICovCisJaWYgKG1heF9z bG90X3hpZF9hZ2UgPiAwKQorCQlJbnZhbGlkYXRlT2Jzb2xldGVSZXBsaWNhdGlvblNsb3RzKFJT X0lOVkFMX1hJRF9BR0UsIDAsCisJCQkJCQkJCQkJICAgSW52YWxpZE9pZCwgSW52YWxpZFRyYW5z YWN0aW9uSWQpOworCiAJLyoKIAkgKiBEZWxldGUgb2xkIGxvZyBmaWxlcywgdGhvc2Ugbm8gbG9u Z2VyIG5lZWRlZCBmb3IgbGFzdCBjaGVja3BvaW50IHRvCiAJICogcHJldmVudCB0aGUgZGlzayBo b2xkaW5nIHRoZSB4bG9nIGZyb20gZ3Jvd2luZyBmdWxsLgpAQCAtNzU5Nyw2ICs3NjAyLDExIEBA IENyZWF0ZVJlc3RhcnRQb2ludChpbnQgZmxhZ3MpCiAJICovCiAJWExCeXRlVG9TZWcoUmVkb1Jl Y1B0ciwgX2xvZ1NlZ05vLCB3YWxfc2VnbWVudF9zaXplKTsKIAorCS8qIEludmFsaWRhdGUgcmVw bGljYXRpb24gc2xvdHMgYmFzZWQgb24geG1pbiBvciBjYXRhbG9nX3htaW4gYWdlICovCisJaWYg KG1heF9zbG90X3hpZF9hZ2UgPiAwKQorCQlJbnZhbGlkYXRlT2Jzb2xldGVSZXBsaWNhdGlvblNs b3RzKFJTX0lOVkFMX1hJRF9BR0UsIDAsCisJCQkJCQkJCQkJICAgSW52YWxpZE9pZCwgSW52YWxp ZFRyYW5zYWN0aW9uSWQpOworCiAJLyoKIAkgKiBSZXRyZWF0IF9sb2dTZWdObyB1c2luZyB0aGUg Y3VycmVudCBlbmQgb2YgeGxvZyByZXBsYXllZCBvciByZWNlaXZlZCwKIAkgKiB3aGljaGV2ZXIg aXMgbGF0ZXIuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKaW5kZXggNGYxYTE3ZjZjZS4uZGMzNzU4NmRj YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCisrKyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwpAQCAtMTA3LDEwICsxMDcsMTEgQEAgY29uc3QgY2hh ciAqY29uc3QgU2xvdEludmFsaWRhdGlvbkNhdXNlc1tdID0gewogCVtSU19JTlZBTF9XQUxfUkVN T1ZFRF0gPSAid2FsX3JlbW92ZWQiLAogCVtSU19JTlZBTF9IT1JJWk9OXSA9ICJyb3dzX3JlbW92 ZWQiLAogCVtSU19JTlZBTF9XQUxfTEVWRUxdID0gIndhbF9sZXZlbF9pbnN1ZmZpY2llbnQiLAor CVtSU19JTlZBTF9YSURfQUdFXSA9ICJ4aWRfYWdlZCIsCiB9OwogCiAvKiBNYXhpbXVtIG51bWJl ciBvZiBpbnZhbGlkYXRpb24gY2F1c2VzICovCi0jZGVmaW5lCVJTX0lOVkFMX01BWF9DQVVTRVMg UlNfSU5WQUxfV0FMX0xFVkVMCisjZGVmaW5lCVJTX0lOVkFMX01BWF9DQVVTRVMgUlNfSU5WQUxf WElEX0FHRQogCiBTdGF0aWNBc3NlcnREZWNsKGxlbmd0aG9mKFNsb3RJbnZhbGlkYXRpb25DYXVz ZXMpID09IChSU19JTlZBTF9NQVhfQ0FVU0VTICsgMSksCiAJCQkJICJhcnJheSBsZW5ndGggbWlz bWF0Y2giKTsKQEAgLTE0MCw2ICsxNDEsNyBAQCBSZXBsaWNhdGlvblNsb3QgKk15UmVwbGljYXRp b25TbG90ID0gTlVMTDsKIC8qIEdVQyB2YXJpYWJsZXMgKi8KIGludAkJCW1heF9yZXBsaWNhdGlv bl9zbG90cyA9IDEwOyAvKiB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwbGljYXRpb24KIAkJCQkJ CQkJCQkgKiBzbG90cyAqLworaW50CQkJbWF4X3Nsb3RfeGlkX2FnZSA9IDA7CiAKIC8qCiAgKiBU aGlzIEdVQyBsaXN0cyBzdHJlYW1pbmcgcmVwbGljYXRpb24gc3RhbmRieSBzZXJ2ZXIgc2xvdCBu YW1lcyB0aGF0CkBAIC0xNTgsNiArMTYwLDcgQEAgc3RhdGljIFhMb2dSZWNQdHIgc3Nfb2xkZXN0 X2ZsdXNoX2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOwogCiBzdGF0aWMgdm9pZCBSZXBsaWNhdGlv blNsb3RTaG1lbUV4aXQoaW50IGNvZGUsIERhdHVtIGFyZyk7CiBzdGF0aWMgdm9pZCBSZXBsaWNh dGlvblNsb3REcm9wUHRyKFJlcGxpY2F0aW9uU2xvdCAqc2xvdCk7CitzdGF0aWMgYm9vbCBJc1Ns b3RYSURBZ2VkKFRyYW5zYWN0aW9uSWQgeG1pbik7CiAKIC8qIGludGVybmFsIHBlcnNpc3RlbmN5 IGZ1bmN0aW9ucyAqLwogc3RhdGljIHZvaWQgUmVzdG9yZVNsb3RGcm9tRGlzayhjb25zdCBjaGFy ICpuYW1lKTsKQEAgLTE0ODMsNiArMTQ4Niw5IEBAIFJlcG9ydFNsb3RJbnZhbGlkYXRpb24oUmVw bGljYXRpb25TbG90SW52YWxpZGF0aW9uQ2F1c2UgY2F1c2UsCiAJCWNhc2UgUlNfSU5WQUxfV0FM X0xFVkVMOgogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmZXJyX2RldGFpbCwgXygiTG9naWNh bCBkZWNvZGluZyBvbiBzdGFuZGJ5IHJlcXVpcmVzIHdhbF9sZXZlbCA+PSBsb2dpY2FsIG9uIHRo ZSBwcmltYXJ5IHNlcnZlci4iKSk7CiAJCQlicmVhazsKKwkJY2FzZSBSU19JTlZBTF9YSURfQUdF OgorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmZXJyX2RldGFpbCwgXygiVGhlIHJlcGxpY2F0 aW9uIHNsb3QncyB4bWluIG9yIGNhdGFsb2dfeG1pbiByZWFjaGVkIHRoZSBhZ2Ugc3BlY2lmaWVk IGJ5IG1heF9zbG90X3hpZF9hZ2UuIikpOworCQkJYnJlYWs7CiAJCWNhc2UgUlNfSU5WQUxfTk9O RToKIAkJCXBnX3VucmVhY2hhYmxlKCk7CiAJfQpAQCAtMTQ5OSw2ICsxNTA1LDMxIEBAIFJlcG9y dFNsb3RJbnZhbGlkYXRpb24oUmVwbGljYXRpb25TbG90SW52YWxpZGF0aW9uQ2F1c2UgY2F1c2Us CiAJcGZyZWUoZXJyX2RldGFpbC5kYXRhKTsKIH0KIAorLyoKKyAqIFJldHVybnMgdHJ1ZSBpZiBz bG90J3MgcGFzc2VkIGluIHhtaW4vY2F0YWxvZ194bWluIGFnZSBpcyBtb3JlIHRoYW4KKyAqIG1h eF9zbG90X3hpZF9hZ2UuCisgKi8KK3N0YXRpYyBib29sCitJc1Nsb3RYSURBZ2VkKFRyYW5zYWN0 aW9uSWQgeG1pbikKK3sKKwlUcmFuc2FjdGlvbklkIHhpZF9jdXI7CisJVHJhbnNhY3Rpb25JZCB4 aWRfbGltaXQ7CisKKwlpZiAoIVRyYW5zYWN0aW9uSWRJc05vcm1hbCh4bWluKSkKKwkJcmV0dXJu IGZhbHNlOworCisJeGlkX2N1ciA9IFJlYWROZXh0VHJhbnNhY3Rpb25JZCgpOworCXhpZF9saW1p dCA9IHhtaW4gKyBtYXhfc2xvdF94aWRfYWdlOworCisJaWYgKHhpZF9saW1pdCA8IEZpcnN0Tm9y bWFsVHJhbnNhY3Rpb25JZCkKKwkJeGlkX2xpbWl0ICs9IEZpcnN0Tm9ybWFsVHJhbnNhY3Rpb25J ZDsKKworCWlmIChUcmFuc2FjdGlvbklkRm9sbG93c09yRXF1YWxzKHhpZF9jdXIsIHhpZF9saW1p dCkpCisJCXJldHVybiB0cnVlOworCisJcmV0dXJuIGZhbHNlOworfQorCiAvKgogICogSGVscGVy IGZvciBJbnZhbGlkYXRlT2Jzb2xldGVSZXBsaWNhdGlvblNsb3RzCiAgKgpAQCAtMTU5OSw2ICsx NjMwLDIxIEBAIEludmFsaWRhdGVQb3NzaWJseU9ic29sZXRlU2xvdChSZXBsaWNhdGlvblNsb3RJ bnZhbGlkYXRpb25DYXVzZSBjYXVzZSwKIAkJCQkJaWYgKFNsb3RJc0xvZ2ljYWwocykpCiAJCQkJ CQljb25mbGljdCA9IGNhdXNlOwogCQkJCQlicmVhazsKKwkJCQljYXNlIFJTX0lOVkFMX1hJRF9B R0U6CisJCQkJCXsKKwkJCQkJCWlmIChJc1Nsb3RYSURBZ2VkKHMtPmRhdGEueG1pbikpCisJCQkJ CQl7CisJCQkJCQkJY29uZmxpY3QgPSBjYXVzZTsKKwkJCQkJCQlicmVhazsKKwkJCQkJCX0KKwor CQkJCQkJaWYgKElzU2xvdFhJREFnZWQocy0+ZGF0YS5jYXRhbG9nX3htaW4pKQorCQkJCQkJewor CQkJCQkJCWNvbmZsaWN0ID0gY2F1c2U7CisJCQkJCQkJYnJlYWs7CisJCQkJCQl9CisJCQkJCX0K KwkJCQkJYnJlYWs7CiAJCQkJY2FzZSBSU19JTlZBTF9OT05FOgogCQkJCQlwZ191bnJlYWNoYWJs ZSgpOwogCQkJfQpAQCAtMTc1Miw2ICsxNzk4LDcgQEAgSW52YWxpZGF0ZVBvc3NpYmx5T2Jzb2xl dGVTbG90KFJlcGxpY2F0aW9uU2xvdEludmFsaWRhdGlvbkNhdXNlIGNhdXNlLAogICogLSBSU19J TlZBTF9IT1JJWk9OOiByZXF1aXJlcyBhIHNuYXBzaG90IDw9IHRoZSBnaXZlbiBob3Jpem9uIGlu IHRoZSBnaXZlbgogICogICBkYjsgZGJvaWQgbWF5IGJlIEludmFsaWRPaWQgZm9yIHNoYXJlZCBy ZWxhdGlvbnMKICAqIC0gUlNfSU5WQUxfV0FMX0xFVkVMOiBpcyBsb2dpY2FsCisgKiAtIFJTX0lO VkFMX1hJRF9BR0U6IHNsb3QncyB4bWluIG9yIGNhdGFsb2dfeG1pbiBoYXMgcmVhY2hlZCB0aGUg YWdlCiAgKgogICogTkIgLSB0aGlzIHJ1bnMgYXMgcGFydCBvZiBjaGVja3BvaW50LCBzbyBhdm9p ZCByYWlzaW5nIGVycm9ycyBpZiBwb3NzaWJsZS4KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190 YWJsZXMuYwppbmRleCA1N2Q5ZGU0ZGQ5Li42YjUzNzU5MDlkIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNj L2d1Y190YWJsZXMuYwpAQCAtMjk1NCw2ICsyOTU0LDE2IEBAIHN0cnVjdCBjb25maWdfaW50IENv bmZpZ3VyZU5hbWVzSW50W10gPQogCQlOVUxMLCBOVUxMLCBOVUxMCiAJfSwKIAorCXsKKwkJeyJt YXhfc2xvdF94aWRfYWdlIiwgUEdDX1NJR0hVUCwgUkVQTElDQVRJT05fU0VORElORywKKwkJCWdl dHRleHRfbm9vcCgiQWdlIG9mIHRoZSB0cmFuc2FjdGlvbiBJRCBhdCB3aGljaCBhIHJlcGxpY2F0 aW9uIHNsb3QgZ2V0cyBpbnZhbGlkYXRlZC4iKSwKKwkJCWdldHRleHRfbm9vcCgiVGhlIHRyYW5z YWN0aW9uIGlzIHRoZSBvbGRlc3QgdHJhbnNhY3Rpb24gKGluY2x1ZGluZyB0aGUgb25lIGFmZmVj dGluZyB0aGUgc3lzdGVtIGNhdGFsb2dzKSB0aGF0IGEgcmVwbGljYXRpb24gc2xvdCBuZWVkcyB0 aGUgZGF0YWJhc2UgdG8gcmV0YWluLiIpCisJCX0sCisJCSZtYXhfc2xvdF94aWRfYWdlLAorCQkw LCAwLCAyMDAwMDAwMDAwLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKKwogCXsKIAkJeyJjb21t aXRfZGVsYXkiLCBQR0NfU1VTRVQsIFdBTF9TRVRUSU5HUywKIAkJCWdldHRleHRfbm9vcCgiU2V0 cyB0aGUgZGVsYXkgaW4gbWljcm9zZWNvbmRzIGJldHdlZW4gdHJhbnNhY3Rpb24gY29tbWl0IGFu ZCAiCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5z YW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5k ZXggMjI0NGVlNTJmNy4uYjRjOTI4YjgyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv bWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2Mv cG9zdGdyZXNxbC5jb25mLnNhbXBsZQpAQCAtMzM0LDYgKzMzNCw3IEBACiAjd2FsX3NlbmRlcl90 aW1lb3V0ID0gNjBzCSMgaW4gbWlsbGlzZWNvbmRzOyAwIGRpc2FibGVzCiAjdHJhY2tfY29tbWl0 X3RpbWVzdGFtcCA9IG9mZgkjIGNvbGxlY3QgdGltZXN0YW1wIG9mIHRyYW5zYWN0aW9uIGNvbW1p dAogCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQorI21heF9zbG90X3hpZF9hZ2UgPSAw CiAKICMgLSBQcmltYXJ5IFNlcnZlciAtCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL3Nsb3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaAppbmRleCA3ZjI1 YTA4M2VlLi42MTRiYTBlMzBiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9z bG90LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCkBAIC01Myw2ICs1Myw4 IEBAIHR5cGVkZWYgZW51bSBSZXBsaWNhdGlvblNsb3RJbnZhbGlkYXRpb25DYXVzZQogCVJTX0lO VkFMX0hPUklaT04sCiAJLyogd2FsX2xldmVsIGluc3VmZmljaWVudCBmb3Igc2xvdCAqLwogCVJT X0lOVkFMX1dBTF9MRVZFTCwKKwkvKiBzbG90J3MgeG1pbiBvciBjYXRhbG9nX3htaW4gaGFzIHJl YWNoZWQgdGhlIGFnZSAqLworCVJTX0lOVkFMX1hJRF9BR0UsCiB9IFJlcGxpY2F0aW9uU2xvdElu dmFsaWRhdGlvbkNhdXNlOwogCiBleHRlcm4gUEdETExJTVBPUlQgY29uc3QgY2hhciAqY29uc3Qg U2xvdEludmFsaWRhdGlvbkNhdXNlc1tdOwpAQCAtMjI3LDYgKzIyOSw3IEBAIGV4dGVybiBQR0RM TElNUE9SVCBSZXBsaWNhdGlvblNsb3QgKk15UmVwbGljYXRpb25TbG90OwogLyogR1VDcyAqLwog ZXh0ZXJuIFBHRExMSU1QT1JUIGludCBtYXhfcmVwbGljYXRpb25fc2xvdHM7CiBleHRlcm4gUEdE TExJTVBPUlQgY2hhciAqc3RhbmRieV9zbG90X25hbWVzOworZXh0ZXJuIFBHRExMSU1QT1JUIGlu dCBtYXhfc2xvdF94aWRfYWdlOwogCiAvKiBzaG1lbSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbnMg Ki8KIGV4dGVybiBTaXplIFJlcGxpY2F0aW9uU2xvdHNTaG1lbVNpemUodm9pZCk7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWNvdmVyeS9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L3JlY292ZXJ5L21l c29uLmJ1aWxkCmluZGV4IGIxZWI3N2IxZWMuLjcwOGEyYTM3OTggMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1 aWxkCkBAIC01MSw2ICs1MSw3IEBAIHRlc3RzICs9IHsKICAgICAgICd0LzA0MF9zdGFuZGJ5X2Zh aWxvdmVyX3Nsb3RzX3N5bmMucGwnLAogICAgICAgJ3QvMDQxX2NoZWNrcG9pbnRfYXRfcHJvbW90 ZS5wbCcsCiAgICAgICAndC8wNDJfbG93X2xldmVsX2JhY2t1cC5wbCcsCisgICAgICAndC8wNTBf aW52YWxpZGF0ZV9zbG90cy5wbCcsCiAgICAgXSwKICAgfSwKIH0KZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlY292ZXJ5L3QvMDUwX2ludmFsaWRhdGVfc2xvdHMucGwgYi9zcmMvdGVzdC9yZWNvdmVy eS90LzA1MF9pbnZhbGlkYXRlX3Nsb3RzLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLjJmNDgyYjU2ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWNvdmVy eS90LzA1MF9pbnZhbGlkYXRlX3Nsb3RzLnBsCkBAIC0wLDAgKzEsMTA4IEBACisjIENvcHlyaWdo dCAoYykgMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBUZXN0 IGZvciByZXBsaWNhdGlvbiBzbG90cyBpbnZhbGlkYXRpb24KK3VzZSBzdHJpY3Q7Cit1c2Ugd2Fy bmluZ3MgRkFUQUwgPT4gJ2FsbCc7CisKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKK3Vz ZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFRlc3Q6Ok1vcmU7Cit1c2UgVGltZTo6 SGlSZXMgcXcodXNsZWVwKTsKKworIyBJbml0aWFsaXplIHByaW1hcnkgbm9kZSwgc2V0dGluZyB3 YWwtc2Vnc2l6ZSB0byAxTUIKK215ICRwcmltYXJ5ID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rl ci0+bmV3KCdwcmltYXJ5Jyk7CiskcHJpbWFyeS0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+IDEs IGV4dHJhID0+IFsnLS13YWwtc2Vnc2l6ZT0xJ10pOworJHByaW1hcnktPmFwcGVuZF9jb25mKAor CSdwb3N0Z3Jlc3FsLmNvbmYnLCBxeworY2hlY2twb2ludF90aW1lb3V0ID0gMWgKK30pOworJHBy aW1hcnktPnN0YXJ0OworJHByaW1hcnktPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcVsKKyAg ICBTRUxFQ1QgcGdfY3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3NiMV9zbG90Jyk7 CitdKTsKKworIyBUYWtlIGJhY2t1cAorbXkgJGJhY2t1cF9uYW1lID0gJ215X2JhY2t1cCc7Cisk cHJpbWFyeS0+YmFja3VwKCRiYWNrdXBfbmFtZSk7CisKKyMgQ3JlYXRlIGEgc3RhbmRieSBsaW5r aW5nIHRvIHRoZSBwcmltYXJ5IHVzaW5nIHRoZSByZXBsaWNhdGlvbiBzbG90CitteSAkc3RhbmRi eTEgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3N0YW5kYnkxJyk7Ciskc3RhbmRi eTEtPmluaXRfZnJvbV9iYWNrdXAoJHByaW1hcnksICRiYWNrdXBfbmFtZSwgaGFzX3N0cmVhbWlu ZyA9PiAxKTsKKworIyBFbmFibGUgaHNfZmVlZGJhY2suIFRoZSBzbG90IHNob3VsZCBnYWluIGFu IHhtaW4uIFdlIHNldCB0aGUgc3RhdHVzIGludGVydmFsCisjIHNvIHdlJ2xsIHNlZSB0aGUgcmVz dWx0cyBwcm9tcHRseS4KKyRzdGFuZGJ5MS0+YXBwZW5kX2NvbmYoCisJJ3Bvc3RncmVzcWwuY29u ZicsIHF7CitwcmltYXJ5X3Nsb3RfbmFtZSA9ICdzYjFfc2xvdCcKK2hvdF9zdGFuZGJ5X2ZlZWRi YWNrID0gb24KK3dhbF9yZWNlaXZlcl9zdGF0dXNfaW50ZXJ2YWwgPSAxCit9KTsKKyRzdGFuZGJ5 MS0+c3RhcnQ7CisKKyMgQ3JlYXRlIHNvbWUgY29udGVudCBvbiBwcmltYXJ5IHRvIG1vdmUgeG1p bgorJHByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGFiX2lu dCBBUyBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsMTApIEFTIGEiKTsKKworIyBXYWl0IHVudGls IHN0YW5kYnkgaGFzIHJlcGxheWVkIGVub3VnaCBkYXRhCiskcHJpbWFyeS0+d2FpdF9mb3JfY2F0 Y2h1cCgkc3RhbmRieTEpOworCiskcHJpbWFyeS0+cG9sbF9xdWVyeV91bnRpbCgKKwkncG9zdGdy ZXMnLCBxcVsKKwlTRUxFQ1QgeG1pbiBJUyBOT1QgTlVMTAorCQlGUk9NIHBnX2NhdGFsb2cucGdf cmVwbGljYXRpb25fc2xvdHMKKwkJV0hFUkUgc2xvdF9uYW1lID0gJ3NiMV9zbG90JzsKK10pIG9y IGRpZSAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHNsb3QgeG1pbiB0byBhZHZhbmNlIjsKKworJHBy aW1hcnktPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcVsKKwlBTFRFUiBTWVNURU0gU0VUIG1h eF9zbG90X3hpZF9hZ2UgPSA1MDA7CitdKTsKKyRwcmltYXJ5LT5yZWxvYWQ7CisKKyMgU3RvcCBz dGFuZGJ5IHRvIG1ha2UgdGhlIHJlcGxpY2F0aW9uIHNsb3QncyB4bWluIG9uIHByaW1hcnkgdG8g YWdlCiskc3RhbmRieTEtPnN0b3A7CisKK215ICRsb2dzdGFydCA9IC1zICRwcmltYXJ5LT5sb2dm aWxlOworCisjIERvIHNvbWUgd29yayB0byBhZHZhbmNlIHhtaW4KKyRwcmltYXJ5LT5zYWZlX3Bz cWwoCisJJ3Bvc3RncmVzJywgcXsKK2RvICQkCitiZWdpbgorICBmb3IgaSBpbiAxMDAwMC4uMTEw MDAgbG9vcAorICAgIC0tIHVzZSBhbiBleGNlcHRpb24gYmxvY2sgc28gdGhhdCBlYWNoIGl0ZXJh dGlvbiBlYXRzIGFuIFhJRAorICAgIGJlZ2luCisgICAgICBpbnNlcnQgaW50byB0YWJfaW50IHZh bHVlcyAoaSk7CisgICAgZXhjZXB0aW9uCisgICAgICB3aGVuIGRpdmlzaW9uX2J5X3plcm8gdGhl biBudWxsOworICAgIGVuZDsKKyAgZW5kIGxvb3A7CitlbmQkJDsKK30pOworCitteSAkaW52YWxp ZGF0ZWQgPSAwOworZm9yIChteSAkaSA9IDA7ICRpIDwgMTAgKiAkUG9zdGdyZVNRTDo6VGVzdDo6 VXRpbHM6OnRpbWVvdXRfZGVmYXVsdDsgJGkrKykKK3sKKwkkcHJpbWFyeS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJDSEVDS1BPSU5UIik7CisJaWYgKCRwcmltYXJ5LT5sb2dfY29udGFpbnMoCisJ CQknaW52YWxpZGF0aW5nIG9ic29sZXRlIHJlcGxpY2F0aW9uIHNsb3QgInNiMV9zbG90IicsICRs b2dzdGFydCkpCisJeworCQkkaW52YWxpZGF0ZWQgPSAxOworCQlsYXN0OworCX0KKwl1c2xlZXAo MTAwXzAwMCk7Cit9CitvaygkaW52YWxpZGF0ZWQsICdjaGVjayB0aGF0IHNsb3Qgc2IxX3Nsb3Qg aW52YWxpZGF0aW9uIGhhcyBiZWVuIGxvZ2dlZCcpOworCisjIFdhaXQgZm9yIHRoZSBpbmFjdGl2 ZSByZXBsaWNhdGlvbiBzbG90cyB0byBiZSBpbnZhbGlkYXRlZC4KKyRwcmltYXJ5LT5wb2xsX3F1 ZXJ5X3VudGlsKAorCSdwb3N0Z3JlcycsIHFxWworCVNFTEVDVCBDT1VOVChzbG90X25hbWUpID0g MSBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzCisJCVdIRVJFIHNsb3RfbmFtZSA9ICdzYjFfc2xv dCcgQU5ECisJCWludmFsaWRhdGlvbl9yZWFzb24gPSAneGlkX2FnZWQnOworXSkKKyAgb3IgZGll CisgICJUaW1lZCBvdXQgd2hpbGUgd2FpdGluZyBmb3IgcmVwbGljYXRpb24gc2xvdCBzYjFfc2xv dCB0byBiZSBpbnZhbGlkYXRlZCI7CisKK2RvbmVfdGVzdGluZygpOwotLSAKMi4zNC4xCgo= --000000000000da5df20613bf25c9 Content-Type: application/octet-stream; name="v11-0003-Track-inactive-replication-slot-information.patch" Content-Disposition: attachment; filename="v11-0003-Track-inactive-replication-slot-information.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lttk3fr02 RnJvbSAzZjA4YjhjYzYzNDZhYWJiYTUyMjZkMDYwODIzZmNkZjcxZTZiMWY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCaGFyYXRoIFJ1cGlyZWRkeSA8YmhhcmF0aC5ydXBpcmVkZHlm b3Jwb3N0Z3Jlc0BnbWFpbC5jb20+CkRhdGU6IFNhdCwgMTYgTWFyIDIwMjQgMDM6NDc6MTUgKzAw MDAKU3ViamVjdDogW1BBVENIIHYxMSAzLzRdIFRyYWNrIGluYWN0aXZlIHJlcGxpY2F0aW9uIHNs b3QgaW5mb3JtYXRpb24KClVwIHVudGlsIG5vdywgcG9zdGdyZXMgZG9lc24ndCB0cmFjayBtZXRy aWNzIGxpa2UgdGhlIHRpbWUgYXQKd2hpY2ggdGhlIHNsb3QgYmVjYW1lIGluYWN0aXZlLCBhbmQg dGhlIHRvdGFsIG51bWJlciBvZiB0aW1lcyB0aGUKc2xvdCBiZWNhbWUgaW5hY3RpdmUgaW4gaXRz IGxpZmV0aW1lLiBUaGlzIGNvbW1pdCBhZGRzIHR3byBuZXcKbWV0cmljcyBsYXN0X2luYWN0aXZl X2F0IG9mIHR5cGUgdGltZXN0YW1wdHogYW5kIGluYWN0aXZlX2NvdW50IG9mCnR5cGUgbnVtZXJp YyB0byBSZXBsaWNhdGlvblNsb3RQZXJzaXN0ZW50RGF0YS4gV2hlbmV2ZXIgYSBzbG90CmJlY29t ZXMgaW5hY3RpdmUsIHRoZSBjdXJyZW50IHRpbWVzdGFtcCBhbmQgaW5hY3RpdmUgY291bnQgYXJl CnBlcnNpc3RlZCB0byBkaXNrLgoKVGhlc2UgbWV0cmljcyBhcmUgdXNlZnVsIGluIHRoZSBmb2xs b3dpbmcgd2F5czoKLSBUbyBpbXByb3ZlIHJlcGxpY2F0aW9uIHNsb3QgbW9uaXRvcmluZyB0b29s cy4gRm9yIGluc3RhbmNlLCBvbmUKY2FuIGJ1aWxkIGEgbW9uaXRvcmluZyB0b29sIHRoYXQgc2ln bmFscyBhKSB3aGVuIHJlcGxpY2F0aW9uIHNsb3RzCmlzIGx5aW5nIGluYWN0aXZlIGZvciBhIGRh eSBvciBzbyB1c2luZyBsYXN0X2luYWN0aXZlX2F0IG1ldHJpYywKYikgd2hlbiBhIHJlcGxpY2F0 aW9uIHNsb3QgaXMgYmVjb21pbmcgaW5hY3RpdmUgdG9vIGZyZXF1ZW50bHkKdXNpbmcgaW5hY3Rp dmVfY291bnQgbWV0cmljLgoKLSBUbyBpbXBsZW1lbnQgdGltZW91dC1iYXNlZCBpbmFjdGl2ZSBy ZXBsaWNhdGlvbiBzbG90IG1hbmFnZW1lbnQKY2FwYWJpbGl0eSBpbiBwb3N0Z3Jlcy4KCkluY3Jl YXNlcyBTTE9UX1ZFUlNJT04gZHVlIHRvIHRoZSBhZGRlZCB0d28gbmV3IG1ldHJpY3MuCi0tLQog ZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sICAgICAgIHwgMjAgKysrKysrKysrKysrKwog c3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIHwgIDQgKystCiBzcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9zbG90LmMgICAgICAgfCA0MyArKysrKysrKysrKysrKysrKysrKysrLS0t LS0tCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYyAgfCAxNSArKysrKysrKyst CiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgfCAgNiArKy0tCiBzcmMvaW5j bHVkZS9yZXBsaWNhdGlvbi9zbG90LmggICAgICAgfCAgNiArKysrCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3J1bGVzLm91dCAgfCAgNiArKy0tCiA3IGZpbGVzIGNoYW5nZWQsIDg0IGluc2Vy dGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9zeXN0 ZW0tdmlld3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbAppbmRleCA1NjI1 MmIxMmVlLi4zNjVjMGZkNTJkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdz LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sCkBAIC0yNzU4LDYgKzI3 NTgsMjYgQEAgU0VMRUNUICogRlJPTSBwZ19sb2NrcyBwbCBMRUZUIEpPSU4gcGdfcHJlcGFyZWRf eGFjdHMgcHB4CiAgICAgICAgSUQgb2Ygcm9sZQogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5sYXN0X2luYWN0aXZlX2F0PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGltZXN0YW1wdHo8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIHRpbWUgYXQgd2hpY2gg dGhlIHNsb3QgYmVjYW1lIGluYWN0aXZlLgorICAgICAgICA8bGl0ZXJhbD5OVUxMPC9saXRlcmFs PiBpZiB0aGUgc2xvdCBpcyBjdXJyZW50bHkgYWN0aXZlbHkgYmVpbmcKKyAgICAgICAgdXNlZC4K KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+aW5hY3RpdmVfY291bnQ8L3N0cnVjdGZpZWxk PiA8dHlwZT5udW1lcmljPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgIFRoZSB0b3RhbCBudW1iZXIgb2YgdGltZXMgdGhlIHNsb3QgYmVjYW1lIGluYWN0aXZlIGlu IGl0cyBsaWZldGltZS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8 L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92 aWV3cy5zcWwKaW5kZXggY2QyMmRhZDk1OS4uZGU5ZjFkNTUwNiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv c3lzdGVtX3ZpZXdzLnNxbApAQCAtMTAyNiw3ICsxMDI2LDkgQEAgQ1JFQVRFIFZJRVcgcGdfcmVw bGljYXRpb25fc2xvdHMgQVMKICAgICAgICAgICAgIEwuY29uZmxpY3RpbmcsCiAgICAgICAgICAg ICBMLmZhaWxvdmVyLAogICAgICAgICAgICAgTC5zeW5jZWQsCi0gICAgICAgICAgICBMLmludmFs aWRhdGlvbl9yZWFzb24KKyAgICAgICAgICAgIEwuaW52YWxpZGF0aW9uX3JlYXNvbiwKKyAgICAg ICAgICAgIEwubGFzdF9pbmFjdGl2ZV9hdCwKKyAgICAgICAgICAgIEwuaW5hY3RpdmVfY291bnQK ICAgICBGUk9NIHBnX2dldF9yZXBsaWNhdGlvbl9zbG90cygpIEFTIEwKICAgICAgICAgICAgIExF RlQgSk9JTiBwZ19kYXRhYmFzZSBEIE9OIChMLmRhdG9pZCA9IEQub2lkKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vc2xvdC5jCmluZGV4IGRjMzc1ODZkY2MuLjZiNmU1MTQxZjcgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9z bG90LmMKQEAgLTEzMCw3ICsxMzAsNyBAQCBTdGF0aWNBc3NlcnREZWNsKGxlbmd0aG9mKFNsb3RJ bnZhbGlkYXRpb25DYXVzZXMpID09IChSU19JTlZBTF9NQVhfQ0FVU0VTICsgMSksCiAJc2l6ZW9m KFJlcGxpY2F0aW9uU2xvdE9uRGlzaykgLSBSZXBsaWNhdGlvblNsb3RPbkRpc2tDb25zdGFudFNp emUKIAogI2RlZmluZSBTTE9UX01BR0lDCQkweDEwNTFDQTEJLyogZm9ybWF0IGlkZW50aWZpZXIg Ki8KLSNkZWZpbmUgU0xPVF9WRVJTSU9OCTUJCS8qIHZlcnNpb24gZm9yIG5ldyBmaWxlcyAqLwor I2RlZmluZSBTTE9UX1ZFUlNJT04JNgkJLyogdmVyc2lvbiBmb3IgbmV3IGZpbGVzICovCiAKIC8q IENvbnRyb2wgYXJyYXkgZm9yIHJlcGxpY2F0aW9uIHNsb3QgbWFuYWdlbWVudCAqLwogUmVwbGlj YXRpb25TbG90Q3RsRGF0YSAqUmVwbGljYXRpb25TbG90Q3RsID0gTlVMTDsKQEAgLTQwMSw2ICs0 MDEsOCBAQCBSZXBsaWNhdGlvblNsb3RDcmVhdGUoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBkYl9z cGVjaWZpYywKIAlzbG90LT5kYXRhLnR3b19waGFzZV9hdCA9IEludmFsaWRYTG9nUmVjUHRyOwog CXNsb3QtPmRhdGEuZmFpbG92ZXIgPSBmYWlsb3ZlcjsKIAlzbG90LT5kYXRhLnN5bmNlZCA9IHN5 bmNlZDsKKwlzbG90LT5kYXRhLmxhc3RfaW5hY3RpdmVfYXQgPSAwOworCXNsb3QtPmRhdGEuaW5h Y3RpdmVfY291bnQgPSAwOwogCiAJLyogYW5kIHRoZW4gZGF0YSBvbmx5IHByZXNlbnQgaW4gc2hh cmVkIG1lbW9yeSAqLwogCXNsb3QtPmp1c3RfZGlydGllZCA9IGZhbHNlOwpAQCAtNjI3LDYgKzYy OSwxNyBAQCByZXRyeToKIAogCWlmIChhbV93YWxzZW5kZXIpCiAJeworCQlpZiAocy0+ZGF0YS5w ZXJzaXN0ZW5jeSA9PSBSU19QRVJTSVNURU5UKQorCQl7CisJCQlTcGluTG9ja0FjcXVpcmUoJnMt Pm11dGV4KTsKKwkJCXMtPmRhdGEubGFzdF9pbmFjdGl2ZV9hdCA9IDA7CisJCQlTcGluTG9ja1Jl bGVhc2UoJnMtPm11dGV4KTsKKworCQkJLyogV3JpdGUgdGhpcyBzbG90IHRvIGRpc2sgKi8KKwkJ CVJlcGxpY2F0aW9uU2xvdE1hcmtEaXJ0eSgpOworCQkJUmVwbGljYXRpb25TbG90U2F2ZSgpOwor CQl9CisKIAkJZXJlcG9ydChsb2dfcmVwbGljYXRpb25fY29tbWFuZHMgPyBMT0cgOiBERUJVRzEs CiAJCQkJU2xvdElzTG9naWNhbChzKQogCQkJCT8gZXJybXNnKCJhY3F1aXJlZCBsb2dpY2FsIHJl cGxpY2F0aW9uIHNsb3QgXCIlc1wiIiwKQEAgLTY5NCwxNiArNzA3LDIwIEBAIFJlcGxpY2F0aW9u U2xvdFJlbGVhc2Uodm9pZCkKIAkJQ29uZGl0aW9uVmFyaWFibGVCcm9hZGNhc3QoJnNsb3QtPmFj dGl2ZV9jdik7CiAJfQogCi0JTXlSZXBsaWNhdGlvblNsb3QgPSBOVUxMOwotCi0JLyogbWlnaHQg bm90IGhhdmUgYmVlbiBzZXQgd2hlbiB3ZSd2ZSBiZWVuIGEgcGxhaW4gc2xvdCAqLwotCUxXTG9j a0FjcXVpcmUoUHJvY0FycmF5TG9jaywgTFdfRVhDTFVTSVZFKTsKLQlNeVByb2MtPnN0YXR1c0Zs YWdzICY9IH5QUk9DX0lOX0xPR0lDQUxfREVDT0RJTkc7Ci0JUHJvY0dsb2JhbC0+c3RhdHVzRmxh Z3NbTXlQcm9jLT5wZ3hhY3RvZmZdID0gTXlQcm9jLT5zdGF0dXNGbGFnczsKLQlMV0xvY2tSZWxl YXNlKFByb2NBcnJheUxvY2spOwotCiAJaWYgKGFtX3dhbHNlbmRlcikKIAl7CisJCWlmIChzbG90 LT5kYXRhLnBlcnNpc3RlbmN5ID09IFJTX1BFUlNJU1RFTlQpCisJCXsKKwkJCVNwaW5Mb2NrQWNx dWlyZSgmc2xvdC0+bXV0ZXgpOworCQkJc2xvdC0+ZGF0YS5sYXN0X2luYWN0aXZlX2F0ID0gR2V0 Q3VycmVudFRpbWVzdGFtcCgpOworCQkJc2xvdC0+ZGF0YS5pbmFjdGl2ZV9jb3VudCsrOworCQkJ U3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisKKwkJCS8qIFdyaXRlIHRoaXMgc2xvdCB0 byBkaXNrICovCisJCQlSZXBsaWNhdGlvblNsb3RNYXJrRGlydHkoKTsKKwkJCVJlcGxpY2F0aW9u U2xvdFNhdmUoKTsKKwkJfQorCiAJCWVyZXBvcnQobG9nX3JlcGxpY2F0aW9uX2NvbW1hbmRzID8g TE9HIDogREVCVUcxLAogCQkJCWlzX2xvZ2ljYWwKIAkJCQk/IGVycm1zZygicmVsZWFzZWQgbG9n aWNhbCByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiIsCkBAIC03MTMsNiArNzMwLDE0IEBAIFJlcGxp Y2F0aW9uU2xvdFJlbGVhc2Uodm9pZCkKIAogCQlwZnJlZShzbG90bmFtZSk7CiAJfQorCisJTXlS ZXBsaWNhdGlvblNsb3QgPSBOVUxMOworCisJLyogbWlnaHQgbm90IGhhdmUgYmVlbiBzZXQgd2hl biB3ZSd2ZSBiZWVuIGEgcGxhaW4gc2xvdCAqLworCUxXTG9ja0FjcXVpcmUoUHJvY0FycmF5TG9j aywgTFdfRVhDTFVTSVZFKTsKKwlNeVByb2MtPnN0YXR1c0ZsYWdzICY9IH5QUk9DX0lOX0xPR0lD QUxfREVDT0RJTkc7CisJUHJvY0dsb2JhbC0+c3RhdHVzRmxhZ3NbTXlQcm9jLT5wZ3hhY3RvZmZd ID0gTXlQcm9jLT5zdGF0dXNGbGFnczsKKwlMV0xvY2tSZWxlYXNlKFByb2NBcnJheUxvY2spOwog fQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYwppbmRleCBiNWE2MzhlZGVhLi40 YzdhMTIwZGYxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3Mu YworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYwpAQCAtMjM5LDcgKzIz OSw3IEBAIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdChQR19GVU5DVElPTl9BUkdTKQogRGF0dW0K IHBnX2dldF9yZXBsaWNhdGlvbl9zbG90cyhQR19GVU5DVElPTl9BUkdTKQogewotI2RlZmluZSBQ R19HRVRfUkVQTElDQVRJT05fU0xPVFNfQ09MUyAxOAorI2RlZmluZSBQR19HRVRfUkVQTElDQVRJ T05fU0xPVFNfQ09MUyAyMAogCVJldHVyblNldEluZm8gKnJzaW5mbyA9IChSZXR1cm5TZXRJbmZv ICopIGZjaW5mby0+cmVzdWx0aW5mbzsKIAlYTG9nUmVjUHRyCWN1cnJsc247CiAJaW50CQkJc2xv dG5vOwpAQCAtMjY0LDYgKzI2NCw3IEBAIHBnX2dldF9yZXBsaWNhdGlvbl9zbG90cyhQR19GVU5D VElPTl9BUkdTKQogCQlXQUxBdmFpbGFiaWxpdHkgd2Fsc3RhdGU7CiAJCWludAkJCWk7CiAJCVJl cGxpY2F0aW9uU2xvdEludmFsaWRhdGlvbkNhdXNlIGNhdXNlOworCQljaGFyCQlidWZbMjU2XTsK IAogCQlpZiAoIXNsb3QtPmluX3VzZSkKIAkJCWNvbnRpbnVlOwpAQCAtNDM2LDYgKzQzNywxOCBA QCBwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMoUEdfRlVOQ1RJT05fQVJHUykKIAkJZWxzZQogCQkJ dmFsdWVzW2krK10gPSBDU3RyaW5nR2V0VGV4dERhdHVtKFNsb3RJbnZhbGlkYXRpb25DYXVzZXNb Y2F1c2VdKTsKIAorCQlpZiAoc2xvdF9jb250ZW50cy5kYXRhLmxhc3RfaW5hY3RpdmVfYXQgPiAw KQorCQkJdmFsdWVzW2krK10gPSBUaW1lc3RhbXBUekdldERhdHVtKHNsb3RfY29udGVudHMuZGF0 YS5sYXN0X2luYWN0aXZlX2F0KTsKKwkJZWxzZQorCQkJbnVsbHNbaSsrXSA9IHRydWU7CisKKwkJ LyogQ29udmVydCB0byBudW1lcmljLiAqLworCQlzbnByaW50ZihidWYsIHNpemVvZiBidWYsIFVJ TlQ2NF9GT1JNQVQsIHNsb3RfY29udGVudHMuZGF0YS5pbmFjdGl2ZV9jb3VudCk7CisJCXZhbHVl c1tpKytdID0gRGlyZWN0RnVuY3Rpb25DYWxsMyhudW1lcmljX2luLAorCQkJCQkJCQkJCSAgQ1N0 cmluZ0dldERhdHVtKGJ1ZiksCisJCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKDApLAorCQkJ CQkJCQkJCSAgSW50MzJHZXREYXR1bSgtMSkpOworCiAJCUFzc2VydChpID09IFBHX0dFVF9SRVBM SUNBVElPTl9TTE9UU19DT0xTKTsKIAogCQl0dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNl dFJlc3VsdCwgcnNpbmZvLT5zZXREZXNjLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggNjNm ZDBiNGNkNy4uYzdhYjA4OTNlYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19w cm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMTEyMyw5 ICsxMTEyMyw5IEBACiAgIHByb25hbWUgPT4gJ3BnX2dldF9yZXBsaWNhdGlvbl9zbG90cycsIHBy b3Jvd3MgPT4gJzEwJywgcHJvaXNzdHJpY3QgPT4gJ2YnLAogICBwcm9yZXRzZXQgPT4gJ3QnLCBw cm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcsCiAgIHByb2FyZ3R5cGVz ID0+ICcnLAotICBwcm9hbGxhcmd0eXBlcyA9PiAne25hbWUsbmFtZSx0ZXh0LG9pZCxib29sLGJv b2wsaW50NCx4aWQseGlkLHBnX2xzbixwZ19sc24sdGV4dCxpbnQ4LGJvb2wsYm9vbCxib29sLGJv b2wsdGV4dH0nLAotICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8s byxvLG8sbyxvfScsCi0gIHByb2FyZ25hbWVzID0+ICd7c2xvdF9uYW1lLHBsdWdpbixzbG90X3R5 cGUsZGF0b2lkLHRlbXBvcmFyeSxhY3RpdmUsYWN0aXZlX3BpZCx4bWluLGNhdGFsb2dfeG1pbixy ZXN0YXJ0X2xzbixjb25maXJtZWRfZmx1c2hfbHNuLHdhbF9zdGF0dXMsc2FmZV93YWxfc2l6ZSx0 d29fcGhhc2UsY29uZmxpY3RpbmcsZmFpbG92ZXIsc3luY2VkLGludmFsaWRhdGlvbl9yZWFzb259 JywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3tuYW1lLG5hbWUsdGV4dCxvaWQsYm9vbCxib29sLGlu dDQseGlkLHhpZCxwZ19sc24scGdfbHNuLHRleHQsaW50OCxib29sLGJvb2wsYm9vbCxib29sLHRl eHQsdGltZXN0YW1wdHosbnVtZXJpY30nLAorICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8sbyxv LG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30nLAorICBwcm9hcmduYW1lcyA9PiAne3Nsb3Rf bmFtZSxwbHVnaW4sc2xvdF90eXBlLGRhdG9pZCx0ZW1wb3JhcnksYWN0aXZlLGFjdGl2ZV9waWQs eG1pbixjYXRhbG9nX3htaW4scmVzdGFydF9sc24sY29uZmlybWVkX2ZsdXNoX2xzbix3YWxfc3Rh dHVzLHNhZmVfd2FsX3NpemUsdHdvX3BoYXNlLGNvbmZsaWN0aW5nLGZhaWxvdmVyLHN5bmNlZCxp bnZhbGlkYXRpb25fcmVhc29uLGxhc3RfaW5hY3RpdmVfYXQsaW5hY3RpdmVfY291bnR9JywKICAg cHJvc3JjID0+ICdwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMnIH0sCiB7IG9pZCA9PiAnMzc4Nics IGRlc2NyID0+ICdzZXQgdXAgYSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3QnLAogICBwcm9uYW1l ID0+ICdwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90JywgcHJvdm9sYXRpbGUgPT4g J3YnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oIGIvc3JjL2lu Y2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCmluZGV4IDYxNGJhMGUzMGIuLjc4MDc2N2E4MTkgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaAorKysgYi9zcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi9zbG90LmgKQEAgLTEyOSw2ICsxMjksMTIgQEAgdHlwZWRlZiBzdHJ1Y3Qg UmVwbGljYXRpb25TbG90UGVyc2lzdGVudERhdGEKIAkgKiBmb3IgbG9naWNhbCBzbG90cyBvbiB0 aGUgcHJpbWFyeSBzZXJ2ZXIuCiAJICovCiAJYm9vbAkJZmFpbG92ZXI7CisKKwkvKiBXaGVuIGRp ZCB0aGlzIHNsb3QgYmVjb21lIGluYWN0aXZlIGxhc3QgdGltZT8gKi8KKwlUaW1lc3RhbXBUeiBs YXN0X2luYWN0aXZlX2F0OworCisJLyogSG93IG1hbnkgdGltZXMgdGhlIHNsb3QgaGFzIGJlZW4g aW5hY3RpdmU/ICovCisJdWludDY0CQlpbmFjdGl2ZV9jb3VudDsKIH0gUmVwbGljYXRpb25TbG90 UGVyc2lzdGVudERhdGE7CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4 IDA1NWJlYzA2OGQuLmMwYmRmZTc2ZDggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0 CkBAIC0xNDc2LDggKzE0NzYsMTAgQEAgcGdfcmVwbGljYXRpb25fc2xvdHN8IFNFTEVDVCBsLnNs b3RfbmFtZSwKICAgICBsLmNvbmZsaWN0aW5nLAogICAgIGwuZmFpbG92ZXIsCiAgICAgbC5zeW5j ZWQsCi0gICAgbC5pbnZhbGlkYXRpb25fcmVhc29uCi0gICBGUk9NIChwZ19nZXRfcmVwbGljYXRp b25fc2xvdHMoKSBsKHNsb3RfbmFtZSwgcGx1Z2luLCBzbG90X3R5cGUsIGRhdG9pZCwgdGVtcG9y YXJ5LCBhY3RpdmUsIGFjdGl2ZV9waWQsIHhtaW4sIGNhdGFsb2dfeG1pbiwgcmVzdGFydF9sc24s IGNvbmZpcm1lZF9mbHVzaF9sc24sIHdhbF9zdGF0dXMsIHNhZmVfd2FsX3NpemUsIHR3b19waGFz ZSwgY29uZmxpY3RpbmcsIGZhaWxvdmVyLCBzeW5jZWQsIGludmFsaWRhdGlvbl9yZWFzb24pCisg ICAgbC5pbnZhbGlkYXRpb25fcmVhc29uLAorICAgIGwubGFzdF9pbmFjdGl2ZV9hdCwKKyAgICBs LmluYWN0aXZlX2NvdW50CisgICBGUk9NIChwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMoKSBsKHNs b3RfbmFtZSwgcGx1Z2luLCBzbG90X3R5cGUsIGRhdG9pZCwgdGVtcG9yYXJ5LCBhY3RpdmUsIGFj dGl2ZV9waWQsIHhtaW4sIGNhdGFsb2dfeG1pbiwgcmVzdGFydF9sc24sIGNvbmZpcm1lZF9mbHVz aF9sc24sIHdhbF9zdGF0dXMsIHNhZmVfd2FsX3NpemUsIHR3b19waGFzZSwgY29uZmxpY3Rpbmcs IGZhaWxvdmVyLCBzeW5jZWQsIGludmFsaWRhdGlvbl9yZWFzb24sIGxhc3RfaW5hY3RpdmVfYXQs IGluYWN0aXZlX2NvdW50KQogICAgICBMRUZUIEpPSU4gcGdfZGF0YWJhc2UgZCBPTiAoKGwuZGF0 b2lkID0gZC5vaWQpKSk7CiBwZ19yb2xlc3wgU0VMRUNUIHBnX2F1dGhpZC5yb2xuYW1lLAogICAg IHBnX2F1dGhpZC5yb2xzdXBlciwKLS0gCjIuMzQuMQoK --000000000000da5df20613bf25c9 Content-Type: application/octet-stream; name="v11-0004-Add-inactive_timeout-based-replication-slot-inva.patch" Content-Disposition: attachment; filename="v11-0004-Add-inactive_timeout-based-replication-slot-inva.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lttk3isr3 RnJvbSAyMzNmZWJmYTdkNjdiNTNjMWE1MDk0ZWM0OTRjYjY5Y2FlYWQ1MTIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCaGFyYXRoIFJ1cGlyZWRkeSA8YmhhcmF0aC5ydXBpcmVkZHlm b3Jwb3N0Z3Jlc0BnbWFpbC5jb20+CkRhdGU6IFNhdCwgMTYgTWFyIDIwMjQgMDM6NTM6MDQgKzAw MDAKU3ViamVjdDogW1BBVENIIHYxMSA0LzRdIEFkZCBpbmFjdGl2ZV90aW1lb3V0IGJhc2VkIHJl cGxpY2F0aW9uIHNsb3QKIGludmFsaWRhdGlvbgoKVXAgdW50aWwgbm93LCBwb3N0Z3JlcyBoYXMg dGhlIGFiaWxpdHkgdG8gaW52YWxpZGF0ZSBpbmFjdGl2ZQpyZXBsaWNhdGlvbiBzbG90cyBiYXNl ZCBvbiB0aGUgYW1vdW50IG9mIFdBTCAoc2V0IHZpYQptYXhfc2xvdF93YWxfa2VlcF9zaXplIEdV QykgdGhhdCB3aWxsIGJlIG5lZWRlZCBmb3IgdGhlIHNsb3RzIGluCmNhc2UgdGhleSBiZWNvbWUg YWN0aXZlLiBIb3dldmVyLCBjaG9vc2luZyBhIGRlZmF1bHQgdmFsdWUgZm9yCm1heF9zbG90X3dh bF9rZWVwX3NpemUgaXMgdHJpY2t5LiBCZWNhdXNlIHRoZSBhbW91bnQgb2YgV0FMIGEKY3VzdG9t ZXIgZ2VuZXJhdGVzLCBhbmQgdGhlaXIgYWxsb2NhdGVkIHN0b3JhZ2Ugd2lsbCB2YXJ5IGdyZWF0 bHkKaW4gcHJvZHVjdGlvbiwgbWFraW5nIGl0IGRpZmZpY3VsdCB0byBwaW4gZG93biBhIG9uZS1z aXplLWZpdHMtYWxsCnZhbHVlLiBJdCBpcyBvZnRlbiBlYXN5IGZvciBkZXZlbG9wZXJzIHRvIHNl dCBhIHRpbWVvdXQgb2Ygc2F5IDEKb3IgMiBvciAzIGRheXMsIGFmdGVyIHdoaWNoIHRoZSBpbmFj dGl2ZSBzbG90cyBnZXQgZHJvcHBlZC4KClRvIGFjaGlldmUgdGhlIGFib3ZlLCBwb3N0Z3JlcyB1 c2VzIHJlcGxpY2F0aW9uIHNsb3QgbWV0cmljCmluYWN0aXZlX2F0ICh0aGUgdGltZSBhdCB3aGlj aCB0aGUgc2xvdCBiZWNhbWUgaW5hY3RpdmUpLCBhbmQgYQpuZXcgR1VDIGluYWN0aXZlX3JlcGxp Y2F0aW9uX3Nsb3RfdGltZW91dC4gVGhlIGNoZWNrcG9pbnRlciB0aGVuCmxvb2tzIGF0IGFsbCBy ZXBsaWNhdGlvbiBzbG90cyBpbnZhbGlkYXRpbmcgdGhlIGluYWN0aXZlIHNsb3RzCmJhc2VkIG9u IHRoZSB0aW1lb3V0IHNldC4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAg ICAgICAgICAgICAgfCAxOCArKysrKwogZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sICAg ICAgICAgICAgICAgIHwgIDcgKysKIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAg ICAgICAgICAgICB8IDEwICsrKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jICAgICAg ICAgICAgICAgIHwgMjIgKysrKystCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMu YyAgICAgICAgICAgfCAxMiArKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5j b25mLnNhbXBsZSB8ICAxICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCAgICAgICAg ICAgICAgICB8ICAzICsKIHNyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX2ludmFsaWRhdGVfc2xvdHMu cGwgICB8IDc5ICsrKysrKysrKysrKysrKysrKysKIDggZmlsZXMgY2hhbmdlZCwgMTUxIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmln LnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggNmRkNTRmZmNiNy4uNGIwYjYw YTFhYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9jb25maWcuc2dtbApAQCAtNDU2NSw2ICs0NTY1LDI0IEBAIHJlc3RvcmVfY29tbWFuZCA9 ICdjb3B5ICJDOlxcc2VydmVyXFxhcmNoaXZlZGlyXFwlZiIgIiVwIicgICMgV2luZG93cwogICAg ICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRy eSBpZD0iZ3VjLWluYWN0aXZlLXJlcGxpY2F0aW9uLXNsb3QtdGltZW91dCIgeHJlZmxhYmVsPSJp bmFjdGl2ZV9yZXBsaWNhdGlvbl9zbG90X3RpbWVvdXQiPgorICAgICAgPHRlcm0+PHZhcm5hbWU+ aW5hY3RpdmVfcmVwbGljYXRpb25fc2xvdF90aW1lb3V0PC92YXJuYW1lPiAoPHR5cGU+aW50ZWdl cjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPmlu YWN0aXZlX3JlcGxpY2F0aW9uX3Nsb3RfdGltZW91dDwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBw YXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAg ICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgSW52YWxpZGF0ZSByZXBsaWNh dGlvbiBzbG90cyB0aGF0IGFyZSBpbmFjdGl2ZSBmb3IgbG9uZ2VyIHRoYW4gdGhpcworICAgICAg ICBhbW91bnQgb2YgdGltZSBhdCB0aGUgbmV4dCBjaGVja3BvaW50LiBJZiB0aGlzIHZhbHVlIGlz IHNwZWNpZmllZAorICAgICAgICB3aXRob3V0IHVuaXRzLCBpdCBpcyB0YWtlbiBhcyBzZWNvbmRz LiBBIHZhbHVlIG9mIHplcm8gKHdoaWNoIGlzCisgICAgICAgIGRlZmF1bHQpIGRpc2FibGVzIHRo ZSB0aW1lb3V0IG1lY2hhbmlzbS4gVGhpcyBwYXJhbWV0ZXIgY2FuIG9ubHkgYmUKKyAgICAgICAg c2V0IGluIHRoZSA8ZmlsZW5hbWU+cG9zdGdyZXNxbC5jb25mPC9maWxlbmFtZT4gZmlsZSBvciBv biB0aGUgc2VydmVyCisgICAgICAgIGNvbW1hbmQgbGluZS4KKyAgICAgICA8L3BhcmE+CisgICAg ICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFybGlzdGVudHJ5 IGlkPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCIgeHJlZmxhYmVsPSJ0cmFja19jb21taXRf dGltZXN0YW1wIj4KICAgICAgIDx0ZXJtPjx2YXJuYW1lPnRyYWNrX2NvbW1pdF90aW1lc3RhbXA8 L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKICAgICAgIDxpbmRleHRlcm0+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvc3lz dGVtLXZpZXdzLnNnbWwKaW5kZXggMzY1YzBmZDUyZC4uYzE4ZGM1ZmViNSAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9zeXN0ZW0t dmlld3Muc2dtbApAQCAtMjU5Niw2ICsyNTk2LDEzIEBAIFNFTEVDVCAqIEZST00gcGdfbG9ja3Mg cGwgTEVGVCBKT0lOIHBnX3ByZXBhcmVkX3hhY3RzIHBweAogICAgICAgICAgIDx4cmVmIGxpbmtl bmQ9Imd1Yy1tYXgtc2xvdC14aWQtYWdlIi8+IHBhcmFtZXRlci4KICAgICAgICAgIDwvcGFyYT4K ICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+ CisgICAgICAgICAgPGxpdGVyYWw+aW5hY3RpdmVfdGltZW91dDwvbGl0ZXJhbD4gbWVhbnMgdGhh dCB0aGUgc2xvdCBoYXMgYmVlbgorICAgICAgICAgIGluYWN0aXZlIGZvciB0aGUgZHVyYXRpb24g c3BlY2lmaWVkIGJ5CisgICAgICAgICAgPHhyZWYgbGlua2VuZD0iZ3VjLWluYWN0aXZlLXJlcGxp Y2F0aW9uLXNsb3QtdGltZW91dCIvPiBwYXJhbWV0ZXIuCisgICAgICAgICA8L3BhcmE+CisgICAg ICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC9pdGVtaXplZGxpc3Q+CiAgICAgICA8L3BhcmE+PC9l bnRyeT4KICAgICAgPC9yb3c+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKaW5kZXggMzZhZTJh YzZhNC4uMTY2YzNlZDc5NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v eGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtNzE1Miw2 ICs3MTUyLDExIEBAIENyZWF0ZUNoZWNrUG9pbnQoaW50IGZsYWdzKQogCQlJbnZhbGlkYXRlT2Jz b2xldGVSZXBsaWNhdGlvblNsb3RzKFJTX0lOVkFMX1hJRF9BR0UsIDAsCiAJCQkJCQkJCQkJICAg SW52YWxpZE9pZCwgSW52YWxpZFRyYW5zYWN0aW9uSWQpOwogCisJLyogSW52YWxpZGF0ZSBpbmFj dGl2ZSByZXBsaWNhdGlvbiBzbG90cyBiYXNlZCBvbiB0aW1lb3V0ICovCisJaWYgKGluYWN0aXZl X3JlcGxpY2F0aW9uX3Nsb3RfdGltZW91dCA+IDApCisJCUludmFsaWRhdGVPYnNvbGV0ZVJlcGxp Y2F0aW9uU2xvdHMoUlNfSU5WQUxfSU5BQ1RJVkVfVElNRU9VVCwgMCwKKwkJCQkJCQkJCQkgICBJ bnZhbGlkT2lkLCBJbnZhbGlkVHJhbnNhY3Rpb25JZCk7CisKIAkvKgogCSAqIERlbGV0ZSBvbGQg bG9nIGZpbGVzLCB0aG9zZSBubyBsb25nZXIgbmVlZGVkIGZvciBsYXN0IGNoZWNrcG9pbnQgdG8K IAkgKiBwcmV2ZW50IHRoZSBkaXNrIGhvbGRpbmcgdGhlIHhsb2cgZnJvbSBncm93aW5nIGZ1bGwu CkBAIC03NjA3LDYgKzc2MTIsMTEgQEAgQ3JlYXRlUmVzdGFydFBvaW50KGludCBmbGFncykKIAkJ SW52YWxpZGF0ZU9ic29sZXRlUmVwbGljYXRpb25TbG90cyhSU19JTlZBTF9YSURfQUdFLCAwLAog CQkJCQkJCQkJCSAgIEludmFsaWRPaWQsIEludmFsaWRUcmFuc2FjdGlvbklkKTsKIAorCS8qIElu dmFsaWRhdGUgaW5hY3RpdmUgcmVwbGljYXRpb24gc2xvdHMgYmFzZWQgb24gdGltZW91dCAqLwor CWlmIChpbmFjdGl2ZV9yZXBsaWNhdGlvbl9zbG90X3RpbWVvdXQgPiAwKQorCQlJbnZhbGlkYXRl T2Jzb2xldGVSZXBsaWNhdGlvblNsb3RzKFJTX0lOVkFMX0lOQUNUSVZFX1RJTUVPVVQsIDAsCisJ CQkJCQkJCQkJICAgSW52YWxpZE9pZCwgSW52YWxpZFRyYW5zYWN0aW9uSWQpOworCiAJLyoKIAkg KiBSZXRyZWF0IF9sb2dTZWdObyB1c2luZyB0aGUgY3VycmVudCBlbmQgb2YgeGxvZyByZXBsYXll ZCBvciByZWNlaXZlZCwKIAkgKiB3aGljaGV2ZXIgaXMgbGF0ZXIuCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90 LmMKaW5kZXggNmI2ZTUxNDFmNy4uMTBmZTk0NDYyMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vc2xvdC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwpA QCAtMTA4LDEwICsxMDgsMTEgQEAgY29uc3QgY2hhciAqY29uc3QgU2xvdEludmFsaWRhdGlvbkNh dXNlc1tdID0gewogCVtSU19JTlZBTF9IT1JJWk9OXSA9ICJyb3dzX3JlbW92ZWQiLAogCVtSU19J TlZBTF9XQUxfTEVWRUxdID0gIndhbF9sZXZlbF9pbnN1ZmZpY2llbnQiLAogCVtSU19JTlZBTF9Y SURfQUdFXSA9ICJ4aWRfYWdlZCIsCisJW1JTX0lOVkFMX0lOQUNUSVZFX1RJTUVPVVRdID0gImlu YWN0aXZlX3RpbWVvdXQiLAogfTsKIAogLyogTWF4aW11bSBudW1iZXIgb2YgaW52YWxpZGF0aW9u IGNhdXNlcyAqLwotI2RlZmluZQlSU19JTlZBTF9NQVhfQ0FVU0VTIFJTX0lOVkFMX1hJRF9BR0UK KyNkZWZpbmUJUlNfSU5WQUxfTUFYX0NBVVNFUyBSU19JTlZBTF9JTkFDVElWRV9USU1FT1VUCiAK IFN0YXRpY0Fzc2VydERlY2wobGVuZ3Rob2YoU2xvdEludmFsaWRhdGlvbkNhdXNlcykgPT0gKFJT X0lOVkFMX01BWF9DQVVTRVMgKyAxKSwKIAkJCQkgImFycmF5IGxlbmd0aCBtaXNtYXRjaCIpOwpA QCAtMTQyLDYgKzE0Myw3IEBAIFJlcGxpY2F0aW9uU2xvdCAqTXlSZXBsaWNhdGlvblNsb3QgPSBO VUxMOwogaW50CQkJbWF4X3JlcGxpY2F0aW9uX3Nsb3RzID0gMTA7IC8qIHRoZSBtYXhpbXVtIG51 bWJlciBvZiByZXBsaWNhdGlvbgogCQkJCQkJCQkJCSAqIHNsb3RzICovCiBpbnQJCQltYXhfc2xv dF94aWRfYWdlID0gMDsKK2ludAkJCWluYWN0aXZlX3JlcGxpY2F0aW9uX3Nsb3RfdGltZW91dCA9 IDA7CiAKIC8qCiAgKiBUaGlzIEdVQyBsaXN0cyBzdHJlYW1pbmcgcmVwbGljYXRpb24gc3RhbmRi eSBzZXJ2ZXIgc2xvdCBuYW1lcyB0aGF0CkBAIC0xNTE0LDYgKzE1MTYsOSBAQCBSZXBvcnRTbG90 SW52YWxpZGF0aW9uKFJlcGxpY2F0aW9uU2xvdEludmFsaWRhdGlvbkNhdXNlIGNhdXNlLAogCQlj YXNlIFJTX0lOVkFMX1hJRF9BR0U6CiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZlcnJfZGV0 YWlsLCBfKCJUaGUgcmVwbGljYXRpb24gc2xvdCdzIHhtaW4gb3IgY2F0YWxvZ194bWluIHJlYWNo ZWQgdGhlIGFnZSBzcGVjaWZpZWQgYnkgbWF4X3Nsb3RfeGlkX2FnZS4iKSk7CiAJCQlicmVhazsK KwkJY2FzZSBSU19JTlZBTF9JTkFDVElWRV9USU1FT1VUOgorCQkJYXBwZW5kU3RyaW5nSW5mb1N0 cmluZygmZXJyX2RldGFpbCwgXygiVGhlIHNsb3QgaGFzIGJlZW4gaW5hY3RpdmUgZm9yIG1vcmUg dGhhbiB0aGUgdGltZSBzcGVjaWZpZWQgYnkgaW5hY3RpdmVfcmVwbGljYXRpb25fc2xvdF90aW1l b3V0LiIpKTsKKwkJCWJyZWFrOwogCQljYXNlIFJTX0lOVkFMX05PTkU6CiAJCQlwZ191bnJlYWNo YWJsZSgpOwogCX0KQEAgLTE2NzAsNiArMTY3NSwyMCBAQCBJbnZhbGlkYXRlUG9zc2libHlPYnNv bGV0ZVNsb3QoUmVwbGljYXRpb25TbG90SW52YWxpZGF0aW9uQ2F1c2UgY2F1c2UsCiAJCQkJCQl9 CiAJCQkJCX0KIAkJCQkJYnJlYWs7CisJCQkJY2FzZSBSU19JTlZBTF9JTkFDVElWRV9USU1FT1VU OgorCQkJCQlpZiAocy0+ZGF0YS5sYXN0X2luYWN0aXZlX2F0ID4gMCkKKwkJCQkJeworCQkJCQkJ VGltZXN0YW1wVHogbm93OworCisJCQkJCQlBc3NlcnQocy0+ZGF0YS5wZXJzaXN0ZW5jeSA9PSBS U19QRVJTSVNURU5UKTsKKwkJCQkJCUFzc2VydChzLT5hY3RpdmVfcGlkID09IDApOworCisJCQkJ CQlub3cgPSBHZXRDdXJyZW50VGltZXN0YW1wKCk7CisJCQkJCQlpZiAoVGltZXN0YW1wRGlmZmVy ZW5jZUV4Y2VlZHMocy0+ZGF0YS5sYXN0X2luYWN0aXZlX2F0LCBub3csCisJCQkJCQkJCQkJCQkJ ICAgaW5hY3RpdmVfcmVwbGljYXRpb25fc2xvdF90aW1lb3V0ICogMTAwMCkpCisJCQkJCQkJY29u ZmxpY3QgPSBjYXVzZTsKKwkJCQkJfQorCQkJCQlicmVhazsKIAkJCQljYXNlIFJTX0lOVkFMX05P TkU6CiAJCQkJCXBnX3VucmVhY2hhYmxlKCk7CiAJCQl9CkBAIC0xODI0LDYgKzE4NDMsNyBAQCBJ bnZhbGlkYXRlUG9zc2libHlPYnNvbGV0ZVNsb3QoUmVwbGljYXRpb25TbG90SW52YWxpZGF0aW9u Q2F1c2UgY2F1c2UsCiAgKiAgIGRiOyBkYm9pZCBtYXkgYmUgSW52YWxpZE9pZCBmb3Igc2hhcmVk IHJlbGF0aW9ucwogICogLSBSU19JTlZBTF9XQUxfTEVWRUw6IGlzIGxvZ2ljYWwKICAqIC0gUlNf SU5WQUxfWElEX0FHRTogc2xvdCdzIHhtaW4gb3IgY2F0YWxvZ194bWluIGhhcyByZWFjaGVkIHRo ZSBhZ2UKKyAqIC0gUlNfSU5WQUxfSU5BQ1RJVkVfVElNRU9VVDogaW5hY3RpdmUgc2xvdCB0aW1l b3V0IG9jY3VycwogICoKICAqIE5CIC0gdGhpcyBydW5zIGFzIHBhcnQgb2YgY2hlY2twb2ludCwg c28gYXZvaWQgcmFpc2luZyBlcnJvcnMgaWYgcG9zc2libGUuCiAgKi8KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9ndWNfdGFibGVzLmMKaW5kZXggNmI1Mzc1OTA5ZC4uNmNhZjQwZDUxZSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTI5NjQsNiArMjk2NCwxOCBAQCBzdHJ1Y3QgY29uZmln X2ludCBDb25maWd1cmVOYW1lc0ludFtdID0KIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCiAKKwl7 CisJCXsiaW5hY3RpdmVfcmVwbGljYXRpb25fc2xvdF90aW1lb3V0IiwgUEdDX1NJR0hVUCwgUkVQ TElDQVRJT05fU0VORElORywKKwkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgYW1vdW50IG9mIHRp bWUgdG8gd2FpdCBiZWZvcmUgaW52YWxpZGF0aW5nIGFuICIKKwkJCQkJCSAiaW5hY3RpdmUgcmVw bGljYXRpb24gc2xvdC4iKSwKKwkJCU5VTEwsCisJCQlHVUNfVU5JVF9TCisJCX0sCisJCSZpbmFj dGl2ZV9yZXBsaWNhdGlvbl9zbG90X3RpbWVvdXQsCisJCTAsIDAsIElOVF9NQVgsCisJCU5VTEws IE5VTEwsIE5VTEwKKwl9LAorCiAJewogCQl7ImNvbW1pdF9kZWxheSIsIFBHQ19TVVNFVCwgV0FM X1NFVFRJTkdTLAogCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBkZWxheSBpbiBtaWNyb3NlY29u ZHMgYmV0d2VlbiB0cmFuc2FjdGlvbiBjb21taXQgYW5kICIKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCBiNGM5MjhiODI2Li43ZjJhM2U0MWYx IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1w bGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBA IC0yNjEsNiArMjYxLDcgQEAKICNyZWNvdmVyeV9wcmVmZXRjaCA9IHRyeQkjIHByZWZldGNoIHBh Z2VzIHJlZmVyZW5jZWQgaW4gdGhlIFdBTD8KICN3YWxfZGVjb2RlX2J1ZmZlcl9zaXplID0gNTEy a0IJIyBsb29rYWhlYWQgd2luZG93IHVzZWQgZm9yIHByZWZldGNoaW5nCiAJCQkJIyAoY2hhbmdl IHJlcXVpcmVzIHJlc3RhcnQpCisjaW5hY3RpdmVfcmVwbGljYXRpb25fc2xvdF90aW1lb3V0ID0g MAkjIGluIHNlY29uZHM7IDAgZGlzYWJsZXMKIAogIyAtIEFyY2hpdmluZyAtCiAKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL3Nsb3QuaAppbmRleCA3ODA3NjdhODE5Li44Mzc4ZDdjOTEzIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v c2xvdC5oCkBAIC01NSw2ICs1NSw4IEBAIHR5cGVkZWYgZW51bSBSZXBsaWNhdGlvblNsb3RJbnZh bGlkYXRpb25DYXVzZQogCVJTX0lOVkFMX1dBTF9MRVZFTCwKIAkvKiBzbG90J3MgeG1pbiBvciBj YXRhbG9nX3htaW4gaGFzIHJlYWNoZWQgdGhlIGFnZSAqLwogCVJTX0lOVkFMX1hJRF9BR0UsCisJ LyogaW5hY3RpdmUgc2xvdCB0aW1lb3V0IGhhcyBvY2N1cnJlZCAqLworCVJTX0lOVkFMX0lOQUNU SVZFX1RJTUVPVVQsCiB9IFJlcGxpY2F0aW9uU2xvdEludmFsaWRhdGlvbkNhdXNlOwogCiBleHRl cm4gUEdETExJTVBPUlQgY29uc3QgY2hhciAqY29uc3QgU2xvdEludmFsaWRhdGlvbkNhdXNlc1td OwpAQCAtMjM2LDYgKzIzOCw3IEBAIGV4dGVybiBQR0RMTElNUE9SVCBSZXBsaWNhdGlvblNsb3Qg Kk15UmVwbGljYXRpb25TbG90OwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBtYXhfcmVwbGljYXRp b25fc2xvdHM7CiBleHRlcm4gUEdETExJTVBPUlQgY2hhciAqc3RhbmRieV9zbG90X25hbWVzOwog ZXh0ZXJuIFBHRExMSU1QT1JUIGludCBtYXhfc2xvdF94aWRfYWdlOworZXh0ZXJuIFBHRExMSU1Q T1JUIGludCBpbmFjdGl2ZV9yZXBsaWNhdGlvbl9zbG90X3RpbWVvdXQ7CiAKIC8qIHNobWVtIGlu aXRpYWxpemF0aW9uIGZ1bmN0aW9ucyAqLwogZXh0ZXJuIFNpemUgUmVwbGljYXRpb25TbG90c1No bWVtU2l6ZSh2b2lkKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX2ludmFs aWRhdGVfc2xvdHMucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF9pbnZhbGlkYXRlX3Nsb3Rz LnBsCmluZGV4IDJmNDgyYjU2ZTguLjRjNjZkZDRhNGUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Y292ZXJ5L3QvMDUwX2ludmFsaWRhdGVfc2xvdHMucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3Zlcnkv dC8wNTBfaW52YWxpZGF0ZV9zbG90cy5wbApAQCAtMTA1LDQgKzEwNSw4MyBAQCAkcHJpbWFyeS0+ cG9sbF9xdWVyeV91bnRpbCgKICAgb3IgZGllCiAgICJUaW1lZCBvdXQgd2hpbGUgd2FpdGluZyBm b3IgcmVwbGljYXRpb24gc2xvdCBzYjFfc2xvdCB0byBiZSBpbnZhbGlkYXRlZCI7CiAKKyRwcmlt YXJ5LT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXFbCisgICAgU0VMRUNUIHBnX2NyZWF0ZV9w aHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCdzYjJfc2xvdCcpOworXSk7CisKKyRwcmltYXJ5LT5z YWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXFbCisgICAgQUxURVIgU1lTVEVNIFNFVCBtYXhfc2xv dF94aWRfYWdlID0gMDsKK10pOworJHByaW1hcnktPnJlbG9hZDsKKworIyBDcmVhdGUgYSBzdGFu ZGJ5IGxpbmtpbmcgdG8gdGhlIHByaW1hcnkgdXNpbmcgdGhlIHJlcGxpY2F0aW9uIHNsb3QKK215 ICRzdGFuZGJ5MiA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3RhbmRieTInKTsK KyRzdGFuZGJ5Mi0+aW5pdF9mcm9tX2JhY2t1cCgkcHJpbWFyeSwgJGJhY2t1cF9uYW1lLCBoYXNf c3RyZWFtaW5nID0+IDEpOworJHN0YW5kYnkyLT5hcHBlbmRfY29uZigKKwkncG9zdGdyZXNxbC5j b25mJywgcXsKK3ByaW1hcnlfc2xvdF9uYW1lID0gJ3NiMl9zbG90JworfSk7Ciskc3RhbmRieTIt PnN0YXJ0OworCisjIFdhaXQgdW50aWwgc3RhbmRieSBoYXMgcmVwbGF5ZWQgZW5vdWdoIGRhdGEK KyRwcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRzdGFuZGJ5Mik7CisKKyMgVGhlIGluYWN0aXZl IHJlcGxpY2F0aW9uIHNsb3QgaW5mbyBzaG91bGQgYmUgbnVsbCB3aGVuIHRoZSBzbG90IGlzIGFj dGl2ZQorbXkgJHJlc3VsdCA9ICRwcmltYXJ5LT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXFb CisJU0VMRUNUIGxhc3RfaW5hY3RpdmVfYXQgSVMgTlVMTCwgaW5hY3RpdmVfY291bnQgPSAwIEFT IE9LCisJCUZST00gcGdfcmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1lID0gJ3NiMl9z bG90JzsKK10pOworaXMoJHJlc3VsdCwgInR8dCIsCisJJ2NoZWNrIHRoZSBpbmFjdGl2ZSByZXBs aWNhdGlvbiBzbG90IGluZm8gZm9yIGFuIGFjdGl2ZSBzbG90Jyk7CisKKyMgU2V0IHRpbWVvdXQg c28gdGhhdCB0aGUgbmV4dCBjaGVja3BvaW50IHdpbGwgaW52YWxpZGF0ZSB0aGUgaW5hY3RpdmUK KyMgcmVwbGljYXRpb24gc2xvdC4KKyRwcmltYXJ5LT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywg cXFbCisgICAgQUxURVIgU1lTVEVNIFNFVCBpbmFjdGl2ZV9yZXBsaWNhdGlvbl9zbG90X3RpbWVv dXQgVE8gJzFzJzsKK10pOworJHByaW1hcnktPnJlbG9hZDsKKworJGxvZ3N0YXJ0ID0gLXMgJHBy aW1hcnktPmxvZ2ZpbGU7CisKKyMgU3RvcCBzdGFuZGJ5IHRvIG1ha2UgdGhlIHJlcGxpY2F0aW9u IHNsb3Qgb24gcHJpbWFyeSBpbmFjdGl2ZQorJHN0YW5kYnkyLT5zdG9wOworCisjIFdhaXQgZm9y IHRoZSBpbmFjdGl2ZSByZXBsaWNhdGlvbiBzbG90IGluZm8gdG8gYmUgdXBkYXRlZAorJHByaW1h cnktPnBvbGxfcXVlcnlfdW50aWwoCisJJ3Bvc3RncmVzJywgcXFbCisJU0VMRUNUIENPVU5UKHNs b3RfbmFtZSkgPSAxIEZST00gcGdfcmVwbGljYXRpb25fc2xvdHMKKwkJV0hFUkUgbGFzdF9pbmFj dGl2ZV9hdCBJUyBOT1QgTlVMTCBBTkQKKwkJaW5hY3RpdmVfY291bnQgPSAxIEFORCBzbG90X25h bWUgPSAnc2IyX3Nsb3QnOworXSkKKyAgb3IgZGllCisgICJUaW1lZCBvdXQgd2hpbGUgd2FpdGlu ZyBmb3IgaW5hY3RpdmUgcmVwbGljYXRpb24gc2xvdCBpbmZvIHRvIGJlIHVwZGF0ZWQiOworCisk aW52YWxpZGF0ZWQgPSAwOworZm9yIChteSAkaSA9IDA7ICRpIDwgMTAgKiAkUG9zdGdyZVNRTDo6 VGVzdDo6VXRpbHM6OnRpbWVvdXRfZGVmYXVsdDsgJGkrKykKK3sKKwkkcHJpbWFyeS0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICJDSEVDS1BPSU5UIik7CisJaWYgKCRwcmltYXJ5LT5sb2dfY29udGFp bnMoCisJCQknaW52YWxpZGF0aW5nIG9ic29sZXRlIHJlcGxpY2F0aW9uIHNsb3QgInNiMl9zbG90 IicsICRsb2dzdGFydCkpCisJeworCQkkaW52YWxpZGF0ZWQgPSAxOworCQlsYXN0OworCX0KKwl1 c2xlZXAoMTAwXzAwMCk7Cit9CitvaygkaW52YWxpZGF0ZWQsICdjaGVjayB0aGF0IHNsb3Qgc2Iy X3Nsb3QgaW52YWxpZGF0aW9uIGhhcyBiZWVuIGxvZ2dlZCcpOworCisjIFdhaXQgZm9yIHRoZSBp bmFjdGl2ZSByZXBsaWNhdGlvbiBzbG90cyB0byBiZSBpbnZhbGlkYXRlZC4KKyRwcmltYXJ5LT5w b2xsX3F1ZXJ5X3VudGlsKAorCSdwb3N0Z3JlcycsIHFxWworCVNFTEVDVCBDT1VOVChzbG90X25h bWUpID0gMSBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzCisJCVdIRVJFIHNsb3RfbmFtZSA9ICdz YjJfc2xvdCcgQU5ECisJCWludmFsaWRhdGlvbl9yZWFzb24gPSAnaW5hY3RpdmVfdGltZW91dCc7 CitdKQorICBvciBkaWUKKyAgIlRpbWVkIG91dCB3aGlsZSB3YWl0aW5nIGZvciBpbmFjdGl2ZSBy ZXBsaWNhdGlvbiBzbG90IHNiMl9zbG90IHRvIGJlIGludmFsaWRhdGVkIjsKKwogZG9uZV90ZXN0 aW5nKCk7Ci0tIAoyLjM0LjEKCg== --000000000000da5df20613bf25c9--