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 1uADlz-00CO5x-5O for pgsql-committers@arkaria.postgresql.org; Wed, 30 Apr 2025 20:11:15 +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 1uADlw-00GFgy-FR for pgsql-committers@arkaria.postgresql.org; Wed, 30 Apr 2025 20:11:13 +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 1uADlv-00GFgq-Vx for pgsql-committers@lists.postgresql.org; Wed, 30 Apr 2025 20:11:13 +0000 Received: from mail-oi1-x22b.google.com ([2607:f8b0:4864:20::22b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uADlr-000PFO-1r for pgsql-committers@lists.postgresql.org; Wed, 30 Apr 2025 20:11:11 +0000 Received: by mail-oi1-x22b.google.com with SMTP id 5614622812f47-3f8d2f8d890so244820b6e.0 for ; Wed, 30 Apr 2025 13:11:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; t=1746043867; x=1746648667; 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=9JsNiCFEjF1a142u5BHmmmi9+7utr5GdxJYJD0CXBkg=; b=D15YoKEnlzngQ4zt6NQMauLkdCD0EOEtS5gPdK7g16zcPqtizCpdl307TJJ+mCFk7f Sg5u8Z8MLmEKjJx03RMpyLZ454UKNTBZu9yEYEvsk8Zx5zMiW20twYK2VqgjCw0PxQBf YR2cTIUqCEU7bu76OLM9aZ3HhTQscYwnzk1Verrr+svtKh9KdCAD4l2lOW8Xsz5glxUp H256pNa6jJf61H7QEQ4GT3vKJmJmQEzVCSgzrSxtA/4GZQOSU5QAvNR0mHMMAVEXSpXT hUQtr1CsonxbjlFn/1SnfZNc1c4A71EuHePrWvN1ljgyyAvPFrPNnr9NBHKjpJtOKUK9 9UEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746043867; x=1746648667; 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=9JsNiCFEjF1a142u5BHmmmi9+7utr5GdxJYJD0CXBkg=; b=ve6LGsaam206rUVWEnBPN3ABhN/QP8p9irXlc1UxteJu+C+LQvwVmxQGbIuCEn3cDR 1R2obTMZxLHoP0kZcGAbsfwAQ1N/oLsmhfOavB4YOOz4EPqsT8DU1aAvcsh7cRK66/iV qil+Z0OUttzMbHanoIbN/s1TZFPx3FffZdybr4pZn+aW1l/+KlhxBmMYwoG264b3tXsY z4+D6boeQawXDcjEk6EUIXFhIJVJfXPF1i7YnCetVaXx4FCR8ivk0Bbb3flHwcAV9HX2 Q7tj0ck2M94xP7mwAjl6BPxpT8kEwMIXhku5gjOI0u4Z5tWMD1jDGDVhV76RsNV7f0W+ s78A== X-Forwarded-Encrypted: i=1; AJvYcCWUDX2kayDNVo6s8FyEEjohg/231GY16uY3N4uMWgDIBZ995Na+OGaJaxBm5U7wCEAmrbzF6OxHuZ2Uq5f9Yt4Y@lists.postgresql.org X-Gm-Message-State: AOJu0YztlHI0OQrybiNA9TYjzkuyO/IzHV2ZKKh9PiPh82jg28l1yE3r 6Vx/kkWsb/j9KVuaufwIPu2Cb0YJ3uTCNJ/gJpUcr+rMG930vWHRchtFQRWxSW60cIu6hbCScho 0t1xOjnwm3nsPeKHQ+mgeFDBN7O5yeqKLUc4b X-Gm-Gg: ASbGncvCl8c8qrAdsZ7AkeYAcyluSaFot8jQJv0QEOLFAie+6FO1SJ9NMg9dC4SPNVJ RY5nzIUr3r0DmYJbJg78aT4tjDKU4Z8m1A+Ss1slwdXkMDc+PIvSf01ICVMT754dCkXLu6jO7Fl i9c5QBpUt7tE8RsA1Q+eEc5g== X-Google-Smtp-Source: AGHT+IFQFlCr9YPsqKX47euAJqt8MKQoVY9JllHmonM6HB7AuMTZ4CyFxo6fc80tkomZtV2mc6SDgLa3Em4FT99AsUw= X-Received: by 2002:a05:6808:319b:b0:400:fa6b:f59c with SMTP id 5614622812f47-402c706aceamr2542631b6e.3.1746043866955; Wed, 30 Apr 2025 13:11:06 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Mark Dilger Date: Wed, 30 Apr 2025 13:10:55 -0700 X-Gm-Features: ATxdqUHmJLldQP9672NyMA_6mHma3bCRTJRaugV1izpFC1G6NfXFjHo8GAvN1NY Message-ID: Subject: Re: pgsql: Improve nbtree skip scan primitive scan scheduling. To: Peter Geoghegan Cc: Matthias van de Meent , pgsql-committers@lists.postgresql.org Content-Type: multipart/mixed; boundary="00000000000073f6ae06340484c9" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000073f6ae06340484c9 Content-Type: multipart/alternative; boundary="00000000000073f6ac06340484c7" --00000000000073f6ac06340484c7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Apr 28, 2025 at 9:12=E2=80=AFAM Peter Geoghegan wrote: > On Sun, Apr 27, 2025 at 1:06=E2=80=AFPM Mark Dilger > wrote: > > I can confirm that your patch fixes the problem, having spent some four > hours trying to find other test cases which still fail, finding none. > > Great. > > I pushed essentially the same patch to HEAD just now. > A similar assertion can still be reached on HEAD using the attached (rather contrived) regression test as of f60420cff66a9089a9b431f9c07f4a29aae4990a: TRAP: failed Assert("sktrig_required"), File: "nbtutils.c", Line: 1861, PID: 93648 0 postgres 0x0000000100d1b0e0 ExceptionalCondition + 108 1 postgres 0x00000001008b7658 _bt_advance_array_keys + 3828 2 postgres 0x00000001008b5dc0 _bt_check_compare + 372 3 postgres 0x00000001008b58ac _bt_checkkeys + 200 4 postgres 0x00000001008b1400 _bt_readpage + 764 5 postgres 0x00000001008b0454 _bt_readnextpage + 1260 6 postgres 0x00000001008b0ab0 _bt_next + 76 7 postgres 0x00000001008ac644 btgettuple + 136 8 postgres 0x000000010089dcdc index_getnext_tid + 68 9 postgres 0x0000000100a297a0 IndexOnlyNext + 228 10 postgres 0x0000000100a0db2c ExecScan + 228 11 postgres 0x0000000100a39088 ExecSort + 536 12 postgres 0x0000000100a03c68 standard_ExecutorRun + 312 13 postgres 0x0000000100be5fb8 PortalRunSelect + 236 14 postgres 0x0000000100be5bd4 PortalRun + 492 15 postgres 0x0000000100be4b18 exec_simple_query + 1292 16 postgres 0x0000000100be1d1c PostgresMain + 1388 17 postgres 0x0000000100bdd9a8 BackendInitialize + 0 18 postgres 0x0000000100b36dd8 postmaster_child_launch + 372 19 postgres 0x0000000100b3b03c ServerLoop + 494= 8 20 postgres 0x0000000100b39360 InitProcessGlobals + 0 21 postgres 0x0000000100a58c00 help + 0 22 dyld 0x000000018eb17154 start + 2476 =E2=80=94 Mark Dilger EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company --00000000000073f6ac06340484c7 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Mon, Apr 28,= 2025 at 9:12=E2=80=AFAM Peter Geoghegan <= pg@bowt.ie> wrote:
On Sun, Apr 27, 2025 a= t 1:06=E2=80=AFPM Mark Dilger
<mark.= dilger@enterprisedb.com> wrote:
> I can confirm that your patch fixes the problem, having spent some fou= r hours trying to find other test cases which still fail, finding none.

Great.

I pushed essentially the same patch to HEAD just now.
=
A similar assertion can still be reached on HEAD using the a= ttached (rather contrived) regression test as of=C2=A0f60420cff66a9089a9b43= 1f9c07f4a29aae4990a:

TRAP: failed Assert("skt= rig_required"), File: "nbtutils.c", Line: 1861, PID: 936480 =C2=A0 postgres =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00x0000000100d1b0e0 ExceptionalCon= dition + 108
1 =C2=A0 postgres =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00x00000001008b7658 = _bt_advance_array_keys + 3828
2 =C2=A0 postgres =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00x= 00000001008b5dc0 _bt_check_compare + 372
3 =C2=A0 postgres =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A00x00000001008b58ac _bt_checkkeys + 200
4 =C2=A0 postgres =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A00x00000001008b1400 _bt_readpage + 764
5 =C2=A0 postg= res =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A00x00000001008b0454 _bt_readnextpage + 1260
6 = =C2=A0 postgres =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00x00000001008b0ab0 _bt_next + 76
7= =C2=A0 postgres =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00x00000001008ac644 btgettuple + 13= 6
8 =C2=A0 postgres =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00x000000010089dcdc index_getne= xt_tid + 68
9 =C2=A0 postgres =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00x0000000100a297a0 I= ndexOnlyNext + 228
10 =C2=A0postgres =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00x0000000100a= 0db2c ExecScan + 228
11 =C2=A0postgres =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00x0000000= 100a39088 ExecSort + 536
12 =C2=A0postgres =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00x0000= 000100a03c68 standard_ExecutorRun + 312
13 =C2=A0postgres =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A00x0000000100be5fb8 PortalRunSelect + 236
14 =C2=A0postgres =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A00x0000000100be5bd4 PortalRun + 492
15 =C2=A0postgres= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A00x0000000100be4b18 exec_simple_query + 1292
16 = =C2=A0postgres =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00x0000000100be1d1c PostgresMain + 138= 8
17 =C2=A0postgres =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00x0000000100bdd9a8 BackendInit= ialize + 0
18 =C2=A0postgres =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00x0000000100b36dd8 p= ostmaster_child_launch + 372
19 =C2=A0postgres =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00x= 0000000100b3b03c ServerLoop + 4948
20 =C2=A0postgres =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A00x0000000100b39360 InitProcessGlobals + 0
21 =C2=A0postgres =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A00x0000000100a58c00 help + 0
22 =C2=A0dyld =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A00x000000018eb17154 start + 2476

<= /div>


=E2=80=94
Mark Dilger
EnterpriseDB:=C2=A0http://www.enterprisedb.com
The Enterprise PostgreSQL Comp= any
--00000000000073f6ac06340484c7-- --00000000000073f6ae06340484c9 Content-Type: application/octet-stream; name="_skipscan.sql" Content-Disposition: attachment; filename="_skipscan.sql" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ma4dddz30 CkNSRUFURSBUQUJMRSBza2lwX3NjYW5fdGVzdCAoYSBJTlRFR0VSLCBiIElOVEVHRVIsIGMgSU5U RUdFUik7CkNSRUFURSBJTkRFWCBhYmNfaWR4IE9OIHNraXBfc2Nhbl90ZXN0IFVTSU5HIGJ0cmVl IChhLCBiLCBjKTsKSU5TRVJUIElOVE8gc2tpcF9zY2FuX3Rlc3QgKGEsIGIsIGMpIFZBTFVFUwoJ KE5VTEwsIDE4OCwgMjUyKSwKCSg4MTEsIDg5MCwgNjE1KSwKCSgzMTYsIDg4MiwgNzYxKSwKCSgy MjksIDk3MywgTlVMTCksCgkoMzczLCA2NzIsIDQyOCksCgkoNjc5LCAyMjUsIDM4MSksCgkoMTQw LCA1MDEsIDE1KSwKCShOVUxMLCA4NTIsIDc5MiksCgkoODUyLCA4MTksIDkxNiksCgkoMzY2LCA1 MjQsIDU0KSwKCSg3OSwgNzA0LCA2MzUpLAoJKDk2NywgODkwLCA2MzYpLAoJKDMwOSwgNDcsIDgz NiksCgkoNzY1LCA5OTIsIE5VTEwpLAoJKDQ2NCwgNjEwLCA4NDEpLAoJKDU4LCAzOTgsIDQ2OCks CgkoNTg1LCAxNTQsIDY3NCksCgkoTlVMTCwgNzUyLCBOVUxMKSwKCSg5OTksIDMwNCwgMjIyKSwK CSg4MiwgTlVMTCwgNDE2KSwKCSg0MDIsIE5VTEwsIDQ2NCksCgkoOTIyLCBOVUxMLCA0NDkpLAoJ KDI3NSwgMjc1LCAyMzQpLAoJKE5VTEwsIDcyOCwgMTA1KSwKCSg1NywgMTc2LCA0NTkpLAoJKDM5 NywgNDQzLCA3OTApLAoJKDY4MSwgMTcyLCA0OCksCgkoMzY4LCA5NjUsIDIyNiksCgkoODYwLCA4 MjYsIDIyOCksCgkoNzk2LCA2MSwgNjk3KSwKCSg0OTEsIE5VTEwsIDMxMyksCgkoNDA2LCA3Nzcs IDUwNyksCgkoMjYzLCA2MDQsIDc2MiksCgkoOCwgMjg5LCA0ODEpLAoJKE5VTEwsIDE2NCwgOTQw KSwKCSg2MTIsIDYwNCwgMjg4KSwKCSg4MSwgNDc3LCBOVUxMKSwKCSgxMzYsIDg5LCBOVUxMKSwK CSg5OTAsIDUwNiwgNjY5KSwKCShOVUxMLCA2MTcsIDQ3OCksCgkoMzk4LCA4ODAsIDM2MCksCgko NDk2LCA0NjcsIDc4MyksCgkoOTA0LCA2NDMsIDE2NCksCgkoNjEsIDcyNiwgMTg1KSwKCSg5NDIs IDY5OSwgMjY2KSwKCSgxNDAsIDI3NywgMjYpLAoJKDQ2LCAxMDksIDU3OSksCgkoTlVMTCwgMTg4 LCA2NzQpLAoJKE5VTEwsIE5VTEwsIDg5NSksCgkoOTMzLCAyMSwgNzUyKSwKCSg1NzEsIDY1Mywg Mzg0KSwKCSg2ODcsIE5VTEwsIDg4MSksCgkoMTkxLCBOVUxMLCA1NzIpLAoJKDYzOSwgMTczLCBO VUxMKSwKCSg2NjgsIDM4NSwgOTMpLAoJKDk5NiwgNTg2LCA5NzIpLAoJKDE2MiwgMzMwLCBOVUxM KSwKCSg4MDMsIDM4OSwgNjApLAoJKDM5NSwgODk0LCAzMjUpLAoJKDcxLCA3ODQsIDYxMSksCgko MTIwLCAzMTksIDE3NSksCgkoTlVMTCwgTlVMTCwgODA3KSwKCSg5NDksIDYzNSwgMzYwKSwKCShO VUxMLCAzNjIsIDIwOCksCgkoODI4LCA3MDIsIDQyNiksCgkoTlVMTCwgNzQzLCA3MTEpLAoJKDcx MiwgMTkyLCA1MiksCgkoNzg3LCA5NTQsIDMxMCksCgkoODUzLCAyMzAsIDI5KSwKCSg0MzAsIDEw NCwgMTI3KSwKCSg4NjgsIDc5MywgNzUxKSwKCSgzMzgsIDk3MiwgNTM5KSwKCSg3NDQsIDMsIDYx MiksCgkoMzAsIDE4MCwgNzMpLAoJKDk4LCA3NjgsIDgwMSksCgkoOTM3LCAyODQsIDk5OSksCgko NzY4LCA1NTMsIDYyNCksCgkoNjczLCA1MTUsIDQ5MSksCgkoOTczLCAxNDksIDkzOCksCgkoNzg2 LCBOVUxMLCAzNzMpLAoJKDgzMCwgMjE5LCA2NCksCgkoTlVMTCwgODk0LCAxMzMpLAoJKDU4OCwg MTY2LCA0ODkpLAoJKDk2MywgMTQ2LCBOVUxMKSwKCSg5LCA1MTQsIDk2MCksCgkoNjEzLCA1MDks IDEzMSksCgkoNzgxLCA2MTAsIDgyNSksCgkoODEyLCAyOTEsIDg4KSwKCSgxOSwgMjA0LCAyNzAp LAoJKDUzOCwgTlVMTCwgTlVMTCksCgkoNjc1LCAxNzIsIDcwOCksCgkoOCwgNjEsIDE5NiksCgko NjM3LCBOVUxMLCA1MiksCgkoNTQsIDk4OCwgMjI4KSwKCShOVUxMLCAzMDgsIDQ4MSksCgkoOTcz LCA1ODQsIDkwMCksCgkoNjA2LCBOVUxMLCA1NjIpLAoJKDQwNSwgNjgwLCA1NjYpLAoJKDEyLCAz NDEsIDcwNyksCgkoMjM0LCA4NjAsIE5VTEwpLAoJKDU3LCA2MSwgTlVMTCksCgkoTlVMTCwgMjA5 LCA2MTIpLAoJKDI0NywgOTE4LCA2MjcpLAoJKDI4MCwgNjIzLCA0ODcpLAoJKDYzNiwgMzA2LCA0 NjQpLAoJKDY2MSwgNTI3LCA3MzkpLAoJKE5VTEwsIDE1LCA1MDYpLAoJKE5VTEwsIDQxMCwgNDU4 KSwKCSg0NTUsIDg2OSwgNTkxKSwKCSg3MSwgNDQsIDYzMiksCgkoNTg3LCAyMDksIDc2KSwKCSg3 NTQsIDc5NSwgMTc1KSwKCSg1MTksIDk0NSwgNDE4KSwKCSgzMzIsIE5VTEwsIDUxKSwKCShOVUxM LCA4NjksIE5VTEwpLAoJKE5VTEwsIDY2NiwgTlVMTCksCgkoNjE1LCAxMDUsIDk2NiksCgkoNTY2 LCAyMTQsIDM2NSksCgkoNDAsIE5VTEwsIDQyOSksCgkoNTE5LCAzMTcsIDI0NCksCgkoNzEsIDcw NywgOTg1KSwKCSg0NDAsIE5VTEwsIDYzKSwKCSg4MjUsIDY0MSwgNzQzKSwKCSg2NjgsIDYwNiwg Mjk5KSwKCSg1NTYsIDExMCwgODUpLAoJKDE2NywgTlVMTCwgNTgyKSwKCSg4MTQsIDY5MiwgMzMx KSwKCShOVUxMLCA3MTUsIDU0NSksCgkoNzE5LCA1ODAsIDk4NCksCgkoNDgwLCAxMiwgNDY3KSwK CSg1MzEsIDEwNywgODY4KSwKCSg0ODIsIDg0OSwgNjIyKSwKCSgxNDUsIDc1NywgNzE2KSwKCSg4 ODcsIDY1MSwgODkxKSwKCSg1MTMsIDc0NiwgMjIxKSwKCSg5MDgsIDcyOCwgNTIyKSwKCSg1ODYs IDcwLCBOVUxMKSwKCShOVUxMLCAzOTUsIDYyNyksCgkoNzYyLCA3NzcsIDc5NyksCgkoMjksIDUy NywgNjY0KSwKCSg1NDAsIDMwOCwgODg4KSwKCSg2NzUsIDEwNywgNDQzKSwKCSg3MzUsIDI3OSwg NDI5KSwKCSg3OCwgOTM3LCA2MyksCgkoNTQwLCAzNjAsIE5VTEwpLAoJKDY1LCAxMTYsIDc2NSks CgkoTlVMTCwgMTk1LCAyNjgpLAoJKDU4OCwgOTQsIDg5NiksCgkoNzQ5LCA1MSwgNTE2KSwKCSgy ODQsIDI2NSwgNzUyKSwKCSg1MTgsIDUyNiwgNzc1KSwKCSg0MjMsIDI0MSwgMjMzKSwKCSg0OTYs IDU3NCwgNDMyKSwKCSg5LCA3OTYsIDY5KSwKCSg2MTksIDM1NSwgNTE0KSwKCShOVUxMLCAyOTEs IDIyNSksCgkoNzQ3LCA4NzgsIDYzMCksCgkoMTIyLCA2NDIsIDM0MSksCgkoTlVMTCwgNjk4LCA3 OTgpLAoJKDU2MCwgTlVMTCwgNzc2KSwKCSgzNjYsIDgxNiwgNTg1KSwKCSg3NDUsIDcwMiwgODM1 KSwKCSg4MzEsIE5VTEwsIDM3NiksCgkoMzEzLCA0NzEsIDIzMCksCgkoNDc1LCA0MDksIDgpLAoJ KDY3OSwgMTkxLCAzNiksCgkoMTI5LCBOVUxMLCA3NTcpLAoJKDc4OCwgNzU2LCA4MzUpLAoJKDM5 NywgMzI2LCAyMTMpLAoJKDk1MSwgMjc3LCBOVUxMKSwKCSg5ODYsIDY1MiwgNDgyKSwKCSgxNTMs IDQwLCA3NjgpLAoJKE5VTEwsIDYyOSwgNTMpLAoJKDYxOCwgMTE1LCA5MzkpLAoJKDUxNCwgMzI4 LCAyMTApLAoJKDcwOSwgNTQ5LCA3MzApLAoJKDI3OSwgMzgxLCA4NTEpLAoJKDcwMywgMzkwLCA4 MzApLAoJKDQ5MCwgMTkzLCA1NTEpLAoJKDM4OCwgTlVMTCwgODQpLAoJKDY0MCwgMTcxLCA4OTIp LAoJKDY2LCA1MDIsIDg2KSwKCSg1MSwgNjM2LCA4MDEpLAoJKDM2LCA0MjksIDIzOCksCgkoNTk1 LCBOVUxMLCA1NjgpLAoJKDkwMywgOTk3LCA5NDQpLAoJKDM3NywgOTE5LCBOVUxMKSwKCSg3NTIs IDM2OCwgOTEpLAoJKDc5MywgNjkwLCA5ODEpLAoJKDg2LCAyMzQsIE5VTEwpLAoJKDY1MywgNzQ5 LCA4OTIpLAoJKDYwNywgOTI4LCBOVUxMKSwKCSgyNTAsIDIzLCBOVUxMKSwKCSgxNjYsIDEsIDI3 OCksCgkoNjcyLCAxNDQsIDYxKSwKCSg5MjYsIE5VTEwsIDY2NyksCgkoMzUxLCBOVUxMLCAyMjUp LAoJKDExNywgNzMzLCA1OCksCgkoNTkwLCA5MDksIDQ3NSksCgkoTlVMTCwgMTU5LCBOVUxMKSwK CSg0MjIsIDY3NiwgMzI5KSwKCSgxOTgsIDg2NSwgMTg5KSwKCShOVUxMLCA3NTksIDQ2NSksCgko OTcsIDMxLCAzMiksCgkoNjA1LCA2MDksIDc3MiksCgkoNjAzLCAzNDgsIDcwNSksCgkoNjc4LCAz NjMsIDUyNSksCgkoNjQ0LCA0NTcsIDUxOCksCgkoMzAyLCA2MSwgOTM3KSwKCSg2MzEsIDgzOSwg MjEyKSwKCShOVUxMLCAzNDEsIDgyNiksCgkoMTg4LCA3MDksIE5VTEwpLAoJKDQ2NiwgMzcwLCA4 MjUpLAoJKDEwOCwgOTY4LCA4NTcpLAoJKE5VTEwsIDQ0OCwgMzU3KSwKCSgxNzgsIDcxNywgMTM4 KSwKCSg0MzcsIDU2OCwgNDcpLAoJKDU2NSwgNjM3LCAzMzYpLAoJKDg4MywgODI2LCA1MDcpLAoJ KDQ4LCA3NjMsIDc4KSwKCSg5OTEsIDM5MiwgODgzKSwKCSg3OSwgMTA5LCA5MSksCgkoMzMzLCA3 OTgsIDU3OSksCgkoNTExLCA2ODksIDcwNSksCgkoNDA5LCAyODgsIDE0NiksCgkoNTkyLCA2MzYs IDc1NiksCgkoODcwLCA2MzMsIDUwMSksCgkoNDkwLCAxMzUsIDkyNSksCgkoMjcxLCBOVUxMLCBO VUxMKSwKCSgxMjUsIE5VTEwsIDkxNiksCgkoNjY4LCA2MzQsIDk1OSksCgkoODQ3LCAyMDAsIDIx NCksCgkoMjk4LCA3NzgsIDM3NyksCgkoMjk1LCA2MDMsIDIxNCksCgkoNzE5LCAxMjEsIDUxKSwK CShOVUxMLCA2OTgsIDcwMCksCgkoODM1LCA3NTAsIDczNCksCgkoNTE0LCA3NDQsIDc0OCksCgko NDE2LCA5MDEsIDU4MyksCgkoOTk5LCA2OTEsIDI0MyksCgkoMjE1LCA5MTEsIDIzNCksCgkoTlVM TCwgOTk5LCA3MSksCgkoOTEyLCA0ODMsIDE2NyksCgkoMjczLCAxMjEsIDk4OSksCgkoNTc2LCA2 MSwgNjI5KSwKCSg5MzEsIDU4NywgOTYzKSwKCShOVUxMLCAzMTcsIDApLAoJKDI2MSwgNDYsIDY1 MiksCgkoMjczLCAxNywgOTc5KSwKCSg3OTQsIDkzNiwgNzgzKSwKCSg3NjMsIE5VTEwsIDE3OCks CgkoTlVMTCwgNzcxLCA4MDgpLAoJKDI2OCwgMTk3LCA5NjUpLAoJKDkwNCwgOTc3LCAyNDcpLAoJ KDg2MSwgNjUxLCA4MyksCgkoTlVMTCwgMzkzLCA5MSksCgkoODE3LCBOVUxMLCA5NDYpLAoJKDI2 MSwgNzczLCA5NTYpLAoJKDg2NywgOTQ3LCAzNCksCgkoNjk5LCA2MTcsIDY4NiksCgkoNzU5LCA1 MDksIDg0NyksCgkoNTMwLCBOVUxMLCA5ODApLAoJKDM0MiwgMTExLCA3OTEpLAoJKDEzMiwgODc2 LCA1OTIpLAoJKDI1MiwgMjYyLCA0MTQpLAoJKDY1MCwgOTI0LCA0MDcpLAoJKDg1MCwgNDQsIDI4 NCksCgkoNjc1LCA2NTYsIDgwMSksCgkoMjEwLCA3MTIsIDQzOSksCgkoNzY2LCAxNTAsIDQ1Nyks CgkoODk0LCA4NTYsIDk1NSksCgkoMTcxLCA1NjEsIDY3KSwKCSg2LCBOVUxMLCA4NDMpLAoJKDEs IDEwMywgNjM1KSwKCSgzOTUsIDU1NCwgMiksCgkoMzk3LCAzMTQsIDQxMyksCgkoTlVMTCwgOTUz LCA1MjIpLAoJKDQ1LCA5NzksIDY0NCksCgkoNDIzLCAyOTksIDY1NyksCgkoNjE2LCA0NjMsIDc4 NSksCgkoMTAzLCA3MjIsIE5VTEwpLAoJKDU0OSwgMjM3LCBOVUxMKSwKCSg4MzgsIDQ3OSwgOTY3 KSwKCSgzODYsIDUzNCwgNDAzKSwKCSgyNSwgTlVMTCwgMTAxKSwKCSgyMzEsIDk5NywgMjA3KSwK CSg1MTMsIDU3NCwgMjYxKSwKCSg4MjQsIDEzNiwgMzk4KSwKCSg2NjAsIDM2MSwgNzA0KSwKCSg2 MjAsIE5VTEwsIDc2NCksCgkoTlVMTCwgNzE3LCA3OTIpLAoJKDczNywgODQ4LCAyNjYpLAoJKDg4 MCwgNTc1LCA0MDUpLAoJKDc2LCA2NDksIDczMSksCgkoTlVMTCwgNTc3LCBOVUxMKSwKCSg0MjUs IDkwMiwgNiksCgkoTlVMTCwgOTA3LCAzMTgpLAoJKE5VTEwsIDg1MiwgMTM1KSwKCSgyMzUsIDU0 MywgNjI5KSwKCSg4NjMsIDg0OSwgODEpLAoJKDE0MSwgNjI3LCA4MDIpLAoJKDU2MywgNzM3LCBO VUxMKSwKCSg5OTUsIDY5NSwgNTIpLAoJKDk3MCwgMzk2LCBOVUxMKSwKCSgyOTcsIDg1MywgMjAx KSwKCSg5MTQsIDUwNywgMTA5KSwKCSg1MzUsIE5VTEwsIDczNCksCgkoMTQwLCAyODgsIE5VTEwp LAoJKDY0OSwgODQ3LCBOVUxMKSwKCSgyNzQsIDQxNCwgMjcpLAoJKDUyLCA0MTEsIDYzNCksCgko NDMsIDUyOSwgTlVMTCksCgkoNTM1LCAyMzUsIDcwOCksCgkoODgxLCA4ODYsIDk2NyksCgkoMTky LCAxNTUsIDU4OSksCgkoTlVMTCwgOTIwLCA4MjYpLAoJKDI4MSwgMzY4LCA2ODMpLAoJKDE5Miwg TlVMTCwgMjIxKSwKCSg0MywgTlVMTCwgNzM5KSwKCSgyMTEsIDM5LCAyMjkpLAoJKDc2NywgMzk3 LCA4MDcpLAoJKDQxLCAxMzUsIDg5OCksCgkoNDgzLCAzNiwgMTM3KSwKCSg2ODYsIDUwLCBOVUxM KSwKCShOVUxMLCBOVUxMLCBOVUxMKSwKCSg3MzcsIDIwOSwgMjE1KSwKCSg3MDEsIDQwLCA4ODIp LAoJKDc4MSwgMTI3LCA5NjYpLAoJKDE4OSwgNzM1LCA3NzYpLAoJKDIxNywgNDc4LCA4OTApLAoJ KDMwMCwgMzQ5LCA0MDgpLAoJKDAsIDE4OSwgOTYwKTsKQU5BTFlaRSBza2lwX3NjYW5fdGVzdDsK U0VMRUNUIGEsIGIsIGMKCUZST00gc2tpcF9zY2FuX3Rlc3QKCVdIRVJFIGMgSVMgTk9UIERJU1RJ TkNUIEZST00gNjExCgkgIEFORCBjIElTIERJU1RJTkNUIEZST00gNzI0CgkgIEFORCBjIDw9IEFO WShBUlJBWVs5MDgsIE5VTEwsIDQ4OCwgMzE5LCA3NjYsIE5VTEwsIDk0NiwgNzYyLCBOVUxMLCA3 NDIsIE5VTEwsIDE4LCA1MjcsIDM2MSwgMjUyLCA5NzgsIDE3NCwgOTgxLCA4NSwgTlVMTCwgODE4 LCA5MSwgNTAyLCA2NzEsIDE3XSkKCSAgQU5EIGEgPiBBTlkoQVJSQVlbOTYsIDM4NiwgNTM5LCAy NjcsIDIwNSwgODEyLCA4MTAsIDkwMiwgMjIxLCA1MTAsIE5VTEwsIDUyNSwgNTUyLCA2ODEsIDgx NiwgTlVMTCwgOTA1LCA5MjgsIDEzNiwgODcwLCA0NTYsIDcyMiwgNzc0LCA3NDQsIDYyNywgMzU5 LCA2NzUsIDk1NCwgOTIxLCBOVUxMLCA1LCA0ODgsIE5VTEwsIDU1LCA4NCwgNDUwLCAxNiwgNTM5 LCA5MzMsIDExMywgNDY5LCAzMzcsIDcwMiwgMTMzLCA5MTAsIDkxNSwgODExLCA4ODYsIDgwMiwg ODM1LCA5MDEsIDkzNiwgNDUzLCA0NzAsIDE1NiwgMzAsIDc3OSwgMzQ2LCA4MjcsIDU2OCwgNzY4 LCA1MiwgOTIzLCA2MTcsIDI3MiwgNjk1LCBOVUxMLCA2MTYsIDIzNywgNjA3LCAzNjYsIDIzMywg MzAxLCA5ODcsIDk5NywgTlVMTCwgOTAxLCAzNzMsIDcxNCwgNjk3LCAzOTMsIDg2NCwgMTQ2LCAy NzgsIDQ3NSwgNTYyLCBOVUxMLCBOVUxMLCA0NTgsIE5VTEwsIDI2MiwgTlVMTCwgOTM0LCA4Mzks IDM5MCwgTlVMTF0pCgkgIEFORCBhIElTIERJU1RJTkNUIEZST00gMjQ4CgkgIEFORCBhICE9IEFO WShBUlJBWVs2ODQsIDM0NSwgNDUsIDU0NCwgNzQ0LCA1NTUsIDU1MCwgODg2LCA1OTgsIDE1OSwg NjA5LCA5MTcsIDk5MywgOTA2LCA2MSwgNzE4LCAzMzksIDI5NywgNDYsIDUyNiwgTlVMTCwgNjIx LCA0OTAsIDMyNSwgNjU2LCA3NywgTlVMTF0pCgkgIEFORCBhID49IDQ2CgkgIEFORCBhID4gNDQw CgkgIEFORCBhIElTIERJU1RJTkNUIEZST00gNzA1CgkgIEFORCBhICE9IEFOWShBUlJBWVsyODEs IDMzNCwgOTc1LCA2NDEsIDc5M10pCgkgIEFORCBjIElTIE5PVCBESVNUSU5DVCBGUk9NIDE5NwoJ ICBBTkQgYyAhPSBBTlkoQVJSQVlbNjgzLCA3ODEsIDIxMSwgNzQsIDkwLCBOVUxMLCA2NywgOTM3 LCA2MDIsIDk1OCwgNzE5LCAxNTIsIDI5OCwgOTIzLCA1MzYsIDI5LCA4MDAsIDcwOSwgOTY2LCBO VUxMLCAyNTEsIDUwMCwgMzUzLCAzMjAsIDkxNSwgNjE5LCA3NTcsIDc0MSwgODQwLCA1MjUsIDE2 MiwgMjE4LCAzNSwgMTIxLCA1MDQsIDI3OF0pCgkgIEFORCBiIElTIERJU1RJTkNUIEZST00gOTA1 CgkgIEFORCBiIDwgQU5ZKEFSUkFZWzg3NSwgTlVMTCwgNjk0LCA1OTIsIDU4MiwgODEyLCA0MDQs IDMxOSwgMywgNDQ3LCBOVUxMLCAyMjcsIDg2MCwgNzE3LCA5MzksIDM4MSwgNDU2LCAxMjIsIDUx OCwgNzA1LCA1ODcsIDM4MCwgMTQwLCA5NzgsIDc4NSwgMjIzLCA3MywgOTAzLCA1MzIsIDE5MSwg NTIyLCA5MTgsIDQ2MSwgOTU2LCA4ODgsIDk4LCA2OCwgMjgzLCA2NiwgNjQ5LCA5MzAsIDQ5Nywg TlVMTCwgNjA4LCAyNzYsIDc4MCwgNzE3LCAyMzUsIDgxNiwgOTc5LCAxMTcsIE5VTEwsIDY4NSwg NjI2LCA2NDQsIDI2OSwgOTg1LCA3NCwgMjE2LCA3MTgsIDM1LCA2MzQsIDQwNywgNjU2XSkKCSAg QU5EIGMgPj0gQU5ZKEFSUkFZWzI4NiwgNDQ0XSkKCU9SREVSIEJZIGMgREVTQywgYSBERVNDLCBi IERFU0MsIGIgREVTQywgYiBERVNDLCBjIERFU0MsIGIgREVTQywgYyBERVNDLCBhIERFU0MsIGMg REVTQzsK --00000000000073f6ae06340484c9--