Received: from magus.postgresql.org (magus.postgresql.org [87.238.57.229]) by mail.postgresql.org (Postfix) with ESMTP id CC4DA1E9AFB1 for ; Mon, 12 Dec 2011 06:33:16 -0400 (AST) Received: from mail-iy0-f174.google.com ([209.85.210.174]) by magus.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1Ra3C5-0003rP-Q7 for pgsql-hackers@postgresql.org; Mon, 12 Dec 2011 10:33:16 +0000 Received: by iaeh11 with SMTP id h11so3010413iae.19 for ; Mon, 12 Dec 2011 02:33:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type; bh=Z/juudpFgDBtrJvN4ixQjXHR8Bu7l1/QUsVVMNLiHGc=; b=oKxdsSW/Ix0/jGu/dx2gVp6OQDmbA38Mssl37t1WpQNaygXS/3chH7GnVizOn8XoN6 EtUsMYtjmx/eIQqoeVt20YwKoaoCcSUUAFFKDMQFQS6xspOjkYXj72QAxW3Z45Rv+7rN 3PEDjyXBYGq/b7eYsx+b8YLFqA7eoT/aYHtaw= Received: by 10.42.197.195 with SMTP id el3mr11407226icb.54.1323685980701; Mon, 12 Dec 2011 02:33:00 -0800 (PST) Received: from [192.168.1.99] ([61.199.203.168]) by mx.google.com with ESMTPS id e2sm72087007ibe.0.2011.12.12.02.32.58 (version=SSLv3 cipher=OTHER); Mon, 12 Dec 2011 02:32:59 -0800 (PST) Message-ID: <4EE5D862.1080809@gmail.com> Date: Mon, 12 Dec 2011 19:33:06 +0900 From: Shigeru Hanada User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20111105 Thunderbird/8.0 MIME-Version: 1.0 To: Etsuro Fujita CC: pgsql-hackers@postgresql.org Subject: Re: WIP: Collecting statistics on CSV file data References: <4E6DE18B.4010505@lab.ntt.co.jp> <4E7861C1.2000607@gmail.com> <4E8EC1D8.3080700@lab.ntt.co.jp> <4E9C6573.8050507@gmail.com> <4E9FF04B.3050504@lab.ntt.co.jp> <4EB7C07A.5030205@gmail.com> <4EC60883.2050905@lab.ntt.co.jp> <4EC648CA.5050904@gmail.com> <4EC9CBC5.3070500@lab.ntt.co.jp> <4EE1FC38.5080707@lab.ntt.co.jp> In-Reply-To: <4EE1FC38.5080707@lab.ntt.co.jp> Content-Type: multipart/mixed; boundary="------------020406060508000806010507" X-Pg-Spam-Score: -2.7 (--) X-Archive-Number: 201112/432 X-Sequence-Number: 199684 This is a multi-part message in MIME format. --------------020406060508000806010507 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit (2011/12/09 21:16), Etsuro Fujita wrote: > I updated the patch. Please find attached a patch. I've examined v5 patch, and got reasonable EXPLAIN results which reflect collected statistics! As increasing STATISTICS option, estimated rows become better. Please see attached stats_*.txt for what I tested. stats_none.txt : before ANALYZE stats_100.txt : SET STATISTICS = 100 for all columns, and ANALYZE stats_10000.txt : SET STATISTICS = 10000 for all columns, and ANALYZE I think that this patch become ready for committer after some minor corrections: Couldn't set n_distinct ======================= I couldn't set n_distinct to columns of foreign tables. With some research, I noticed that ATSimplePermissions should accept ATT_FOREIGN_TABLE too for that case. In addition, regression tests for ALTER FOREIGN TABLE should be added to detect this kind of problem. Showing stats target ==================== We can see stats target of ordinary tables with \d+, but it is not available for foreign tables. I think "Stats target" column should be added even though output of \d+ for foreign tables become wider. One possible idea is to remove useless "Storage" column instead, but views have that column even though their source could come from foreign tables. Please see attached patch for these two items. Comments of FdwRoutine ====================== Mention about optional handler is obsolete. We should clearly say AnalyzeForeignTable is optional (can be set to NULL) and rest are required. IMO separating them with comment would help FDW authors to understand requirements, e.g.: typedef struct FdwRoutine { NodeTag type; /* * These Handlers are required to execute simple scan on a foreign * table. If any of them was set to NULL, scan on a foreign table * managed by such FDW would fail. */ PlanForeignScan_function PlanForeignScan; ExplainForeignScan_function ExplainForeignScan; BeginForeignScan_function BeginForeignScan; IterateForeignScan_function IterateForeignScan; ReScanForeignScan_function ReScanForeignScan; EndForeignScan_function EndForeignScan; /* * Handlers below are optional. You can set any of them to * NULL to tell PostgreSQL that the FDW doesn't have the * capability. */ AnalyzeForeignTable_function AnalyzeForeignTable; } FdwRoutine; Code formatting =============== Some code lines go past 80 columns. Message style ============= The terms 'cannot support option "n_distinct"...' used in ATPrepSetOptions seems little unusual in PostgreSQL. Should we say 'cannot set "n_distinct_inherited" for foreign tables' for that case? Typo ==== Typo "spcify" is in document of analyze. Regards, -- Shigeru Hanada --------------020406060508000806010507 Content-Type: text/plain; name="stats_none.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="stats_none.txt" cG9zdGdyZXM9IyBleHBsYWluIHNlbGVjdCAqIGZyb20gY3N2X2FjY291bnRzIHdoZXJlIGFp ZCA9IDE7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTg0KLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KIEZvcmVpZ24gU2NhbiBvbiBjc3ZfYWNjb3VudHMgIChjb3N0 PTAuMDAuLjQ0MjYyLjg4IHJvd3M9MTg3NCB3aWR0aD0xMDApDQogICBGaWx0ZXI6IChhaWQg PSAxKQ0KICAgRm9yZWlnbiBGaWxlOiAvaG9tZS9oYW5hZGEvREItZnVqaXRhL0NTVi9wZ2Jl bmNoX2FjY291bnRzLmNzdg0KICAgRm9yZWlnbiBGaWxlIFNpemU6IDQ3OTYzMDcwDQooNCBy b3dzKQ0KDQpwb3N0Z3Jlcz0jIGV4cGxhaW4gc2VsZWN0ICogZnJvbSBjc3ZfYWNjb3VudHMg d2hlcmUgYWlkIDwgMTAwMDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogRm9yZWlnbiBTY2FuIG9uIGNzdl9h Y2NvdW50cyAgKGNvc3Q9MC4wMC4uNDQyNjIuODggcm93cz0xMjQ5MDQgd2lkdGg9MTAwKQ0K ICAgRmlsdGVyOiAoYWlkIDwgMTAwMCkNCiAgIEZvcmVpZ24gRmlsZTogL2hvbWUvaGFuYWRh L0RCLWZ1aml0YS9DU1YvcGdiZW5jaF9hY2NvdW50cy5jc3YNCiAgIEZvcmVpZ24gRmlsZSBT aXplOiA0Nzk2MzA3MA0KKDQgcm93cykNCg0KcG9zdGdyZXM9IyBleHBsYWluIHNlbGVjdCAq IGZyb20gY3N2X2FjY291bnRzIHdoZXJlIGFpZCA+IDEwMDA7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIEZv cmVpZ24gU2NhbiBvbiBjc3ZfYWNjb3VudHMgIChjb3N0PTAuMDAuLjQ0MjYyLjg4IHJvd3M9 MTI0OTA0IHdpZHRoPTEwMCkNCiAgIEZpbHRlcjogKGFpZCA+IDEwMDApDQogICBGb3JlaWdu IEZpbGU6IC9ob21lL2hhbmFkYS9EQi1mdWppdGEvQ1NWL3BnYmVuY2hfYWNjb3VudHMuY3N2 DQogICBGb3JlaWduIEZpbGUgU2l6ZTogNDc5NjMwNzANCig0IHJvd3MpDQoNCnBvc3RncmVz PSMgZXhwbGFpbiBzZWxlY3QgKiBmcm9tIGNzdl9hY2NvdW50cyB3aGVyZSBiaWQgPSAxOw0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4NCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCiBGb3JlaWduIFNjYW4gb24gY3N2X2FjY291bnRzICAoY29zdD0wLjAwLi40 NDI2Mi44OCByb3dzPTE4NzQgd2lkdGg9MTAwKQ0KICAgRmlsdGVyOiAoYmlkID0gMSkNCiAg IEZvcmVpZ24gRmlsZTogL2hvbWUvaGFuYWRhL0RCLWZ1aml0YS9DU1YvcGdiZW5jaF9hY2Nv dW50cy5jc3YNCiAgIEZvcmVpZ24gRmlsZSBTaXplOiA0Nzk2MzA3MA0KKDQgcm93cykNCg0K cG9zdGdyZXM9IyBleHBsYWluIHNlbGVjdCAqIGZyb20gY3N2X2FjY291bnRzIHdoZXJlIGJp ZCA9IDI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTg0KLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KIEZvcmVpZ24gU2NhbiBvbiBjc3ZfYWNjb3VudHMgIChjb3N0 PTAuMDAuLjQ0MjYyLjg4IHJvd3M9MTg3NCB3aWR0aD0xMDApDQogICBGaWx0ZXI6IChiaWQg PSAyKQ0KICAgRm9yZWlnbiBGaWxlOiAvaG9tZS9oYW5hZGEvREItZnVqaXRhL0NTVi9wZ2Jl bmNoX2FjY291bnRzLmNzdg0KICAgRm9yZWlnbiBGaWxlIFNpemU6IDQ3OTYzMDcwDQooNCBy b3dzKQ0KDQpwb3N0Z3Jlcz0jIGV4cGxhaW4gc2VsZWN0ICogZnJvbSBjc3ZfYWNjb3VudHMg d2hlcmUgYmlkID0gNDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiBGb3JlaWduIFNjYW4gb24gY3N2X2FjY291 bnRzICAoY29zdD0wLjAwLi41NzEwNS4wMCByb3dzPTEwMjExNyB3aWR0aD05NykNCiAgIEZp bHRlcjogKGJpZCA9IDQpDQogICBGb3JlaWduIEZpbGU6IC9ob21lL2hhbmFkYS9EQi1mdWpp dGEvQ1NWL3BnYmVuY2hfYWNjb3VudHMuY3N2DQogICBGb3JlaWduIEZpbGUgU2l6ZTogNDc5 NjMwNzANCig0IHJvd3MpDQoNCnBvc3RncmVzPSMgZXhwbGFpbiBzZWxlY3QgKiBmcm9tIGNz dl9hY2NvdW50cyB3aGVyZSBiaWQgPSA2Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFODQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiBGb3JlaWduIFNjYW4gb24gY3N2X2Fj Y291bnRzICAoY29zdD0wLjAwLi41NzEwNS4wMCByb3dzPTEgd2lkdGg9OTcpDQogICBGaWx0 ZXI6IChiaWQgPSA2KQ0KICAgRm9yZWlnbiBGaWxlOiAvaG9tZS9oYW5hZGEvREItZnVqaXRh L0NTVi9wZ2JlbmNoX2FjY291bnRzLmNzdg0KICAgRm9yZWlnbiBGaWxlIFNpemU6IDQ3OTYz MDcwDQooNCByb3dzKQ0K --------------020406060508000806010507 Content-Type: text/plain; name="stats_100.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="stats_100.txt" cG9zdGdyZXM9IyBleHBsYWluIHNlbGVjdCAqIGZyb20gY3N2X2FjY291bnRzIHdoZXJlIGFp ZCA9IDE7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4NCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KIEZvcmVpZ24gU2NhbiBvbiBjc3ZfYWNjb3VudHMgIChjb3N0PTAuMDAu LjU3MTA1LjAwIHJvd3M9MSB3aWR0aD05NykNCiAgIEZpbHRlcjogKGFpZCA9IDEpDQogICBG b3JlaWduIEZpbGU6IC9ob21lL2hhbmFkYS9EQi1mdWppdGEvQ1NWL3BnYmVuY2hfYWNjb3Vu dHMuY3N2DQogICBGb3JlaWduIEZpbGUgU2l6ZTogNDc5NjMwNzANCig0IHJvd3MpDQoNCnBv c3RncmVzPSMgZXhwbGFpbiBzZWxlY3QgKiBmcm9tIGNzdl9hY2NvdW50cyB3aGVyZSBhaWQg PCAxMDAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTg0KLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCiBGb3JlaWduIFNjYW4gb24gY3N2X2FjY291bnRzICAoY29zdD0w LjAwLi41NzEwNS4wMCByb3dzPTk0MyB3aWR0aD05NykNCiAgIEZpbHRlcjogKGFpZCA8IDEw MDApDQogICBGb3JlaWduIEZpbGU6IC9ob21lL2hhbmFkYS9EQi1mdWppdGEvQ1NWL3BnYmVu Y2hfYWNjb3VudHMuY3N2DQogICBGb3JlaWduIEZpbGUgU2l6ZTogNDc5NjMwNzANCig0IHJv d3MpDQoNCnBvc3RncmVzPSMgZXhwbGFpbiBzZWxlY3QgKiBmcm9tIGNzdl9hY2NvdW50cyB3 aGVyZSBhaWQgPiAxMDAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFODQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIEZvcmVpZ24gU2NhbiBvbiBjc3ZfYWNj b3VudHMgIChjb3N0PTAuMDAuLjU3MTA1LjAwIHJvd3M9NDk5MDU3IHdpZHRoPTk3KQ0KICAg RmlsdGVyOiAoYWlkID4gMTAwMCkNCiAgIEZvcmVpZ24gRmlsZTogL2hvbWUvaGFuYWRhL0RC LWZ1aml0YS9DU1YvcGdiZW5jaF9hY2NvdW50cy5jc3YNCiAgIEZvcmVpZ24gRmlsZSBTaXpl OiA0Nzk2MzA3MA0KKDQgcm93cykNCg0KcG9zdGdyZXM9IyBleHBsYWluIHNlbGVjdCAqIGZy b20gY3N2X2FjY291bnRzIHdoZXJlIGJpZCA9IDE7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIEZvcmVpZ24gU2Nh biBvbiBjc3ZfYWNjb3VudHMgIChjb3N0PTAuMDAuLjU3MTA1LjAwIHJvd3M9OTgzODMgd2lk dGg9OTcpDQogICBGaWx0ZXI6IChiaWQgPSAxKQ0KICAgRm9yZWlnbiBGaWxlOiAvaG9tZS9o YW5hZGEvREItZnVqaXRhL0NTVi9wZ2JlbmNoX2FjY291bnRzLmNzdg0KICAgRm9yZWlnbiBG aWxlIFNpemU6IDQ3OTYzMDcwDQooNCByb3dzKQ0KDQpwb3N0Z3Jlcz0jIGV4cGxhaW4gc2Vs ZWN0ICogZnJvbSBjc3ZfYWNjb3VudHMgd2hlcmUgYmlkID0gMjsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiBG b3JlaWduIFNjYW4gb24gY3N2X2FjY291bnRzICAoY29zdD0wLjAwLi41NzEwNS4wMCByb3dz PTEwMTIwMCB3aWR0aD05NykNCiAgIEZpbHRlcjogKGJpZCA9IDIpDQogICBGb3JlaWduIEZp bGU6IC9ob21lL2hhbmFkYS9EQi1mdWppdGEvQ1NWL3BnYmVuY2hfYWNjb3VudHMuY3N2DQog ICBGb3JlaWduIEZpbGUgU2l6ZTogNDc5NjMwNzANCig0IHJvd3MpDQoNCnBvc3RncmVzPSMg ZXhwbGFpbiBzZWxlY3QgKiBmcm9tIGNzdl9hY2NvdW50cyB3aGVyZSBiaWQgPSA0Ow0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFODQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KIEZvcmVpZ24gU2NhbiBvbiBjc3ZfYWNjb3VudHMgIChjb3N0PTAuMDAuLjU3 MTA1LjAwIHJvd3M9MTAyMTE3IHdpZHRoPTk3KQ0KICAgRmlsdGVyOiAoYmlkID0gNCkNCiAg IEZvcmVpZ24gRmlsZTogL2hvbWUvaGFuYWRhL0RCLWZ1aml0YS9DU1YvcGdiZW5jaF9hY2Nv dW50cy5jc3YNCiAgIEZvcmVpZ24gRmlsZSBTaXplOiA0Nzk2MzA3MA0KKDQgcm93cykNCg0K cG9zdGdyZXM9IyBleHBsYWluIHNlbGVjdCAqIGZyb20gY3N2X2FjY291bnRzIHdoZXJlIGJp ZCA9IDY7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4NCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KIEZvcmVpZ24gU2NhbiBvbiBjc3ZfYWNjb3VudHMgIChjb3N0PTAuMDAu LjU3MTA1LjAwIHJvd3M9MSB3aWR0aD05NykNCiAgIEZpbHRlcjogKGJpZCA9IDYpDQogICBG b3JlaWduIEZpbGU6IC9ob21lL2hhbmFkYS9EQi1mdWppdGEvQ1NWL3BnYmVuY2hfYWNjb3Vu dHMuY3N2DQogICBGb3JlaWduIEZpbGUgU2l6ZTogNDc5NjMwNzANCig0IHJvd3MpDQoNCg== --------------020406060508000806010507 Content-Type: text/plain; name="stats_100000.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="stats_100000.txt" cG9zdGdyZXM9IyBleHBsYWluIHNlbGVjdCAqIGZyb20gY3N2X2FjY291bnRzIHdoZXJlIGFp ZCA9IDE7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4NCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KIEZvcmVpZ24gU2NhbiBvbiBjc3ZfYWNjb3VudHMgIChjb3N0PTAuMDAu LjU3MTA1LjAwIHJvd3M9MSB3aWR0aD05NykNCiAgIEZpbHRlcjogKGFpZCA9IDEpDQogICBG b3JlaWduIEZpbGU6IC9ob21lL2hhbmFkYS9EQi1mdWppdGEvQ1NWL3BnYmVuY2hfYWNjb3Vu dHMuY3N2DQogICBGb3JlaWduIEZpbGUgU2l6ZTogNDc5NjMwNzANCig0IHJvd3MpDQoNCnBv c3RncmVzPSMgZXhwbGFpbiBzZWxlY3QgKiBmcm9tIGNzdl9hY2NvdW50cyB3aGVyZSBhaWQg PCAxMDAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4NCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KIEZvcmVpZ24gU2NhbiBvbiBjc3ZfYWNjb3VudHMgIChjb3N0 PTAuMDAuLjU3MTA1LjAwIHJvd3M9MTAwMCB3aWR0aD05NykNCiAgIEZpbHRlcjogKGFpZCA8 IDEwMDApDQogICBGb3JlaWduIEZpbGU6IC9ob21lL2hhbmFkYS9EQi1mdWppdGEvQ1NWL3Bn YmVuY2hfYWNjb3VudHMuY3N2DQogICBGb3JlaWduIEZpbGUgU2l6ZTogNDc5NjMwNzANCig0 IHJvd3MpDQoNCnBvc3RncmVzPSMgZXhwbGFpbiBzZWxlY3QgKiBmcm9tIGNzdl9hY2NvdW50 cyB3aGVyZSBhaWQgPiAxMDAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFODQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIEZvcmVpZ24gU2NhbiBvbiBjc3Zf YWNjb3VudHMgIChjb3N0PTAuMDAuLjU3MTA1LjAwIHJvd3M9NDk5MDAwIHdpZHRoPTk3KQ0K ICAgRmlsdGVyOiAoYWlkID4gMTAwMCkNCiAgIEZvcmVpZ24gRmlsZTogL2hvbWUvaGFuYWRh L0RCLWZ1aml0YS9DU1YvcGdiZW5jaF9hY2NvdW50cy5jc3YNCiAgIEZvcmVpZ24gRmlsZSBT aXplOiA0Nzk2MzA3MA0KKDQgcm93cykNCg0KcG9zdGdyZXM9IyBleHBsYWluIHNlbGVjdCAq IGZyb20gY3N2X2FjY291bnRzIHdoZXJlIGJpZCA9IDE7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogRm9yZWln biBTY2FuIG9uIGNzdl9hY2NvdW50cyAgKGNvc3Q9MC4wMC4uNTcxMDUuMDAgcm93cz0xMDAw MDAgd2lkdGg9OTcpDQogICBGaWx0ZXI6IChiaWQgPSAxKQ0KICAgRm9yZWlnbiBGaWxlOiAv aG9tZS9oYW5hZGEvREItZnVqaXRhL0NTVi9wZ2JlbmNoX2FjY291bnRzLmNzdg0KICAgRm9y ZWlnbiBGaWxlIFNpemU6IDQ3OTYzMDcwDQooNCByb3dzKQ0KDQpwb3N0Z3Jlcz0jIGV4cGxh aW4gc2VsZWN0ICogZnJvbSBjc3ZfYWNjb3VudHMgd2hlcmUgYmlkID0gMjsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTg0KLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCiBGb3JlaWduIFNjYW4gb24gY3N2X2FjY291bnRzICAoY29zdD0wLjAwLi41NzEwNS4w MCByb3dzPTEwMDAwMCB3aWR0aD05NykNCiAgIEZpbHRlcjogKGJpZCA9IDIpDQogICBGb3Jl aWduIEZpbGU6IC9ob21lL2hhbmFkYS9EQi1mdWppdGEvQ1NWL3BnYmVuY2hfYWNjb3VudHMu Y3N2DQogICBGb3JlaWduIEZpbGUgU2l6ZTogNDc5NjMwNzANCig0IHJvd3MpDQoNCnBvc3Rn cmVzPSMgZXhwbGFpbiBzZWxlY3QgKiBmcm9tIGNzdl9hY2NvdW50cyB3aGVyZSBiaWQgPSA0 Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFODQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KIEZvcmVpZ24gU2NhbiBvbiBjc3ZfYWNjb3VudHMgIChjb3N0PTAu MDAuLjU3MTA1LjAwIHJvd3M9MTAwMDAwIHdpZHRoPTk3KQ0KICAgRmlsdGVyOiAoYmlkID0g NCkNCiAgIEZvcmVpZ24gRmlsZTogL2hvbWUvaGFuYWRhL0RCLWZ1aml0YS9DU1YvcGdiZW5j aF9hY2NvdW50cy5jc3YNCiAgIEZvcmVpZ24gRmlsZSBTaXplOiA0Nzk2MzA3MA0KKDQgcm93 cykNCg0KcG9zdGdyZXM9IyBleHBsYWluIHNlbGVjdCAqIGZyb20gY3N2X2FjY291bnRzIHdo ZXJlIGJpZCA9IDY7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4N Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KIEZvcmVpZ24gU2NhbiBvbiBjc3ZfYWNjb3VudHMgIChjb3N0 PTAuMDAuLjU3MTA1LjAwIHJvd3M9MSB3aWR0aD05NykNCiAgIEZpbHRlcjogKGJpZCA9IDYp DQogICBGb3JlaWduIEZpbGU6IC9ob21lL2hhbmFkYS9EQi1mdWppdGEvQ1NWL3BnYmVuY2hf YWNjb3VudHMuY3N2DQogICBGb3JlaWduIEZpbGUgU2l6ZTogNDc5NjMwNzANCig0IHJvd3Mp DQoNCg== --------------020406060508000806010507 Content-Type: text/plain; name="show_stats_target.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="show_stats_target.patch" Y29tbWl0IGIwNTZjMGNjMzhhOTQ2MGMwODM3NDFiYzAyMWE5YjVlZGRlZTIyZjEKQXV0aG9y OiBTaGlnZXJ1IEhhbmFkYSA8c2hpZ2VydS5oYW5hZGFAZ21haWwuY29tPgpEYXRlOiAgIE1v biBEZWMgMTIgMTg6MTQ6MjYgMjAxMSArMDkwMAoKICAgIEZpeCBwc3FsIHRvIHNob3cgc3Rh dHMgdGFyZ2V0IGZvciBmb3JlaWduIHRhYmxlcyB0b28uCiAgICAKICAgIFJlZ3Jlc3Npb24g dGVzdHMgYXJlIGFsc28gYWRkZWQgZm9yIHRoaXMgY2hhbmdlLCBhbmQgb25lIHNpbXBsZSBi dWcKICAgIGlzIGRldGVjdGVkIGFuZCBmaXhlZC4KCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jCmluZGV4IDVkYjQ3NmIuLjZkYzczNmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jCkBAIC0yOTE3LDcgKzI5MTcsNyBAQCBBVFByZXBDbWQoTGlzdCAqKndxdWV1ZSwgUmVs YXRpb24gcmVsLCBBbHRlclRhYmxlQ21kICpjbWQsCiAJCQlicmVhazsKIAkJY2FzZSBBVF9T ZXRPcHRpb25zOgkJLyogQUxURVIgQ09MVU1OIFNFVCAoIG9wdGlvbnMgKSAqLwogCQljYXNl IEFUX1Jlc2V0T3B0aW9uczoJLyogQUxURVIgQ09MVU1OIFJFU0VUICggb3B0aW9ucyApICov Ci0JCQlBVFNpbXBsZVBlcm1pc3Npb25zKHJlbCwgQVRUX1RBQkxFIHwgQVRUX0lOREVYKTsK KwkJCUFUU2ltcGxlUGVybWlzc2lvbnMocmVsLCBBVFRfVEFCTEUgfCBBVFRfSU5ERVggfCBB VFRfRk9SRUlHTl9UQUJMRSk7CiAJCQlBVFByZXBTZXRPcHRpb25zKHJlbCwgY21kLT5uYW1l LCBjbWQtPmRlZiwgbG9ja21vZGUpOwogCQkJLyogVGhpcyBjb21tYW5kIG5ldmVyIHJlY3Vy c2VzICovCiAJCQlwYXNzID0gQVRfUEFTU19NSVNDOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBkY2FmZGQy Li44MDJhYmYyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMTA5OSw3ICsxMDk5LDcgQEAgZGVzY3JpYmVP bmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAlib29sCQlwcmludFRh YmxlSW5pdGlhbGl6ZWQgPSBmYWxzZTsKIAlpbnQJCQlpOwogCWNoYXIJICAgKnZpZXdfZGVm ID0gTlVMTDsKLQljaGFyCSAgICpoZWFkZXJzWzZdOworCWNoYXIJICAgKmhlYWRlcnNbN107 CiAJY2hhcgkgICoqc2VxX3ZhbHVlcyA9IE5VTEw7CiAJY2hhcgkgICoqbW9kaWZpZXJzID0g TlVMTDsKIAljaGFyCSAgKipwdHI7CkBAIC0xMzkwLDcgKzEzOTAsNyBAQCBkZXNjcmliZU9u ZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCWlmICh2ZXJib3NlKQog CXsKIAkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJTdG9yYWdlIik7Ci0JCWlm ICh0YWJsZWluZm8ucmVsa2luZCA9PSAncicpCisJCWlmICh0YWJsZWluZm8ucmVsa2luZCA9 PSAncicgfHwgdGFibGVpbmZvLnJlbGtpbmQgPT0gJ2YnKQogCQkJaGVhZGVyc1tjb2xzKytd ID0gZ2V0dGV4dF9ub29wKCJTdGF0cyB0YXJnZXQiKTsKIAkJLyogQ29sdW1uIGNvbW1lbnRz LCBpZiB0aGUgcmVsa2luZCBzdXBwb3J0cyB0aGlzIGZlYXR1cmUuICovCiAJCWlmICh0YWJs ZWluZm8ucmVsa2luZCA9PSAncicgfHwgdGFibGVpbmZvLnJlbGtpbmQgPT0gJ3YnIHx8CkBA IC0xNDkzLDcgKzE0OTMsNyBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFy ICpzY2hlbWFuYW1lLAogCQkJCQkJCSAgZmFsc2UsIGZhbHNlKTsKIAogCQkJLyogU3RhdGlz dGljcyB0YXJnZXQsIGlmIHRoZSByZWxraW5kIHN1cHBvcnRzIHRoaXMgZmVhdHVyZSAqLwot CQkJaWYgKHRhYmxlaW5mby5yZWxraW5kID09ICdyJykKKwkJCWlmICh0YWJsZWluZm8ucmVs a2luZCA9PSAncicgfHwgdGFibGVpbmZvLnJlbGtpbmQgPT0gJ2YnKQogCQkJewogCQkJCXBy aW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgZmlyc3R2Y29sICsg MSksCiAJCQkJCQkJCSAgZmFsc2UsIGZhbHNlKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZm9yZWlnbl9kYXRhLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvZm9yZWlnbl9kYXRhLm91dAppbmRleCAxMjJlMjg1Li40YTE2MjM4IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ZvcmVpZ25fZGF0YS5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JlaWduX2RhdGEub3V0CkBAIC02NzgsMTIg KzY3OCwxMiBAQCBDUkVBVEUgRk9SRUlHTiBUQUJMRSBmdDEgKAogQ09NTUVOVCBPTiBGT1JF SUdOIFRBQkxFIGZ0MSBJUyAnZnQxJzsKIENPTU1FTlQgT04gQ09MVU1OIGZ0MS5jMSBJUyAn ZnQxLmMxJzsKIFxkKyBmdDEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3Jl aWduIHRhYmxlICJwdWJsaWMuZnQxIgotIENvbHVtbiB8ICBUeXBlICAgfCBNb2RpZmllcnMg fCAgICAgICAgICBGRFcgT3B0aW9ucyAgICAgICAgICAgfCBTdG9yYWdlICB8IERlc2NyaXB0 aW9uIAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIGMxICAgICB8IGlu dGVnZXIgfCBub3QgbnVsbCAgfCAoInBhcmFtIDEiICd2YWwxJykgICAgICAgICAgICAgfCBw bGFpbiAgICB8IGZ0MS5jMQotIGMyICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAocGFy YW0yICd2YWwyJywgcGFyYW0zICd2YWwzJykgfCBleHRlbmRlZCB8IAotIGMzICAgICB8IGRh dGUgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBw bGFpbiAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3Jl aWduIHRhYmxlICJwdWJsaWMuZnQxIgorIENvbHVtbiB8ICBUeXBlICAgfCBNb2RpZmllcnMg fCAgICAgICAgICBGRFcgT3B0aW9ucyAgICAgICAgICAgfCBTdG9yYWdlICB8IFN0YXRzIHRh cmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLQorIGMxICAgICB8IGludGVnZXIgfCBub3QgbnVsbCAgfCAoInBh cmFtIDEiICd2YWwxJykgICAgICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgICB8 IGZ0MS5jMQorIGMyICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAocGFyYW0yICd2YWwy JywgcGFyYW0zICd2YWwzJykgfCBleHRlbmRlZCB8ICAgICAgICAgICAgICB8IAorIGMzICAg ICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgICB8IAogU2VydmVyOiBzMAogRkRXIE9wdGlv bnM6IChkZWxpbWl0ZXIgJywnLCBxdW90ZSAnIicsICJiZSBxdW90ZWQiICd2YWx1ZScpCiBI YXMgT0lEczogbm8KQEAgLTcyOSwxOSArNzI5LDI0IEBAIEVSUk9SOiAgY2Fubm90IGFsdGVy IHN5c3RlbSBjb2x1bW4gInhtaW4iCiBBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MSBBTFRFUiBD T0xVTU4gYzcgT1BUSU9OUyAoQUREIHAxICd2MScsIEFERCBwMiAndjInKSwKICAgICAgICAg ICAgICAgICAgICAgICAgIEFMVEVSIENPTFVNTiBjOCBPUFRJT05TIChBREQgcDEgJ3YxJywg QUREIHAyICd2MicpOwogQUxURVIgRk9SRUlHTiBUQUJMRSBmdDEgQUxURVIgQ09MVU1OIGM4 IE9QVElPTlMgKFNFVCBwMiAnVjInLCBEUk9QIHAxKTsKK0FMVEVSIEZPUkVJR04gVEFCTEUg ZnQxIEFMVEVSIENPTFVNTiBjMSBTRVQgU1RBVElTVElDUyAxMDAwMDsKK0FMVEVSIEZPUkVJ R04gVEFCTEUgZnQxIEFMVEVSIENPTFVNTiBjMSBTRVQgKG5fZGlzdGluY3QgPSAxMDApOwor QUxURVIgRk9SRUlHTiBUQUJMRSBmdDEgQUxURVIgQ09MVU1OIGMxIFNFVCAobl9kaXN0aW5j dF9pbmhlcml0ZWQgPSAxMDApOyAtLSBFUlJPUgorRVJST1I6ICBjYW5ub3Qgc2V0ICJuX2Rp c3RpbmN0X2luaGVyaXRlZCIgb24gZm9yZWlnbiB0YWJsZXMKK0FMVEVSIEZPUkVJR04gVEFC TEUgZnQxIEFMVEVSIENPTFVNTiBjOCBTRVQgU1RBVElTVElDUyAtMTsKIFxkKyBmdDEKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3JlaWduIHRhYmxlICJwdWJsaWMuZnQx IgotIENvbHVtbiB8ICBUeXBlICAgfCBNb2RpZmllcnMgfCAgICAgICAgICBGRFcgT3B0aW9u cyAgICAgICAgICAgfCBTdG9yYWdlICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLQotIGMxICAgICB8IGludGVnZXIgfCBub3QgbnVsbCAgfCAo InBhcmFtIDEiICd2YWwxJykgICAgICAgICAgICAgfCBwbGFpbiAgICB8IAotIGMyICAgICB8 IHRleHQgICAgfCAgICAgICAgICAgfCAocGFyYW0yICd2YWwyJywgcGFyYW0zICd2YWwzJykg fCBleHRlbmRlZCB8IAotIGMzICAgICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFpbiAgICB8IAotIGM0ICAgICB8IGludGVn ZXIgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFp biAgICB8IAotIGM2ICAgICB8IGludGVnZXIgfCBub3QgbnVsbCAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCBwbGFpbiAgICB8IAotIGM3ICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCAocDEgJ3YxJywgcDIgJ3YyJykgICAgICAgICAgICAgfCBwbGFpbiAgICB8 IAotIGM4ICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAocDIgJ1YyJykgICAgICAgICAg ICAgICAgICAgICAgfCBleHRlbmRlZCB8IAotIGM5ICAgICB8IGludGVnZXIgfCAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFpbiAgICB8IAotIGMx MCAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAocDEgJ3YxJykgICAgICAgICAgICAgICAg ICAgICAgfCBwbGFpbiAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGb3JlaWduIHRhYmxlICJwdWJsaWMuZnQxIgorIENvbHVtbiB8ICBUeXBlICAgfCBN b2RpZmllcnMgfCAgICAgICAgICBGRFcgT3B0aW9ucyAgICAgICAgICAgfCBTdG9yYWdlICB8 IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGMxICAgICB8IGludGVnZXIgfCBub3QgbnVs bCAgfCAoInBhcmFtIDEiICd2YWwxJykgICAgICAgICAgICAgfCBwbGFpbiAgICB8IDEwMDAw ICAgICAgICB8IAorIGMyICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAocGFyYW0yICd2 YWwyJywgcGFyYW0zICd2YWwzJykgfCBleHRlbmRlZCB8ICAgICAgICAgICAgICB8IAorIGMz ICAgICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgICB8IAorIGM0ICAgICB8IGludGVnZXIg fCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFpbiAg ICB8ICAgICAgICAgICAgICB8IAorIGM2ICAgICB8IGludGVnZXIgfCBub3QgbnVsbCAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAg ICB8IAorIGM3ICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAocDEgJ3YxJywgcDIgJ3Yy JykgICAgICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgICB8IAorIGM4ICAgICB8 IHRleHQgICAgfCAgICAgICAgICAgfCAocDIgJ1YyJykgICAgICAgICAgICAgICAgICAgICAg fCBleHRlbmRlZCB8ICAgICAgICAgICAgICB8IAorIGM5ICAgICB8IGludGVnZXIgfCAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFpbiAgICB8ICAg ICAgICAgICAgICB8IAorIGMxMCAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAocDEgJ3Yx JykgICAgICAgICAgICAgICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgICB8IAog U2VydmVyOiBzMAogRkRXIE9wdGlvbnM6IChkZWxpbWl0ZXIgJywnLCBxdW90ZSAnIicsICJi ZSBxdW90ZWQiICd2YWx1ZScpCiBIYXMgT0lEczogbm8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2ZvcmVpZ25fZGF0YS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9m b3JlaWduX2RhdGEuc3FsCmluZGV4IGU5OWU3MDcuLjU5MDhmZjMgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2ZvcmVpZ25fZGF0YS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvZm9yZWlnbl9kYXRhLnNxbApAQCAtMzA2LDYgKzMwNiwxMCBAQCBBTFRFUiBG T1JFSUdOIFRBQkxFIGZ0MSBBTFRFUiBDT0xVTU4geG1pbiBPUFRJT05TIChBREQgcDEgJ3Yx Jyk7IC0tIEVSUk9SCiBBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MSBBTFRFUiBDT0xVTU4gYzcg T1BUSU9OUyAoQUREIHAxICd2MScsIEFERCBwMiAndjInKSwKICAgICAgICAgICAgICAgICAg ICAgICAgIEFMVEVSIENPTFVNTiBjOCBPUFRJT05TIChBREQgcDEgJ3YxJywgQUREIHAyICd2 MicpOwogQUxURVIgRk9SRUlHTiBUQUJMRSBmdDEgQUxURVIgQ09MVU1OIGM4IE9QVElPTlMg KFNFVCBwMiAnVjInLCBEUk9QIHAxKTsKK0FMVEVSIEZPUkVJR04gVEFCTEUgZnQxIEFMVEVS IENPTFVNTiBjMSBTRVQgU1RBVElTVElDUyAxMDAwMDsKK0FMVEVSIEZPUkVJR04gVEFCTEUg ZnQxIEFMVEVSIENPTFVNTiBjMSBTRVQgKG5fZGlzdGluY3QgPSAxMDApOworQUxURVIgRk9S RUlHTiBUQUJMRSBmdDEgQUxURVIgQ09MVU1OIGMxIFNFVCAobl9kaXN0aW5jdF9pbmhlcml0 ZWQgPSAxMDApOyAtLSBFUlJPUgorQUxURVIgRk9SRUlHTiBUQUJMRSBmdDEgQUxURVIgQ09M VU1OIGM4IFNFVCBTVEFUSVNUSUNTIC0xOwogXGQrIGZ0MQogLS0gY2FuJ3QgY2hhbmdlIHRo ZSBjb2x1bW4gdHlwZSBpZiBpdCdzIHVzZWQgZWxzZXdoZXJlCiBDUkVBVEUgVEFCTEUgdXNl X2Z0MV9jb2x1bW5fdHlwZSAoeCBmdDEpOwo= --------------020406060508000806010507--