X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [64.117.225.181]) by svr1.postgresql.org (Postfix) with ESMTP id 52FADD1C941 for ; Tue, 22 Jul 2003 17:07:06 +0000 (GMT) Received: from svr1.postgresql.org ([64.117.224.193]) by localhost (svr5.postgresql.org [64.117.225.181]) (amavisd-new, port 10024) with ESMTP id 88357-01 for ; Tue, 22 Jul 2003 17:06:53 +0000 (GMT) Received: from fluor.cenes.de (pD9E75221.dip.t-dialin.net [217.231.82.33]) by svr1.postgresql.org (Postfix) with ESMTP id 4E5C5D1C7EF for ; Tue, 22 Jul 2003 14:06:50 -0300 (ADT) Received: by fluor.cenes.de (Postfix, from userid 1000) id EBC7A676A9; Tue, 22 Jul 2003 19:07:03 +0200 (CEST) Subject: slow query From: Markus Bertheau To: postgres sql list Cc: Horst Schwarz Content-Type: multipart/mixed; boundary="=-NL5Uz/kBu2rRLkVxTUTa" Message-Id: <1058893618.1857.94.camel@fluor> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.3 Date: 22 Jul 2003 19:07:02 +0200 X-Virus-Scanned: by amavisd-new at postgresql.org X-Archive-Number: 200307/322 X-Sequence-Number: 14436 --=-NL5Uz/kBu2rRLkVxTUTa Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi, we have this large query about which we want to know if it can be made faster. The query is: select * from ( select ressourcen.*, gebaeude.bezeichnung as "gebaeude.bezeichnung", gebaeude.gebaeude_id as "gebaeude.gebaeude_id", gebaeude.kurzbezeichnung as "gebaeude.kurzbezeichnung", gebaeude.nummer as "gebaeude.nummer", raeume.bemerkung as "raeume.bemerkung", raeume.flaeche as "raeume.flaeche", raeume.nummer as "raeume.nummer", raeume.raum_id as "raeume.raum_id", raumtypen.bezeichnung as "raumtypen.bezeichnung", raumtypen.raumtyp_id as "raumtypen.raumtyp_id", standorte.kurzbezeichnung as "standorte.kurzbezeichnung", standorte.standort_id as "standorte.standort_id", exists ( select * from auftragsressourcen where auftrag_id =3D '46' and ressource_id =3D ressourcen.ressource_id ) as schon_in_auftrag_verwendet, case when (ressourcen.menge =3D 1) then ( case when exists( select * from ( -- does a row in belegungen exist for the given time intervals select bGetNumOfBookedSingleRes(ressourcen.ressource_id, tu= rnus.von, turnus.bis) as da from ( select timestamp '2003-07-22 08:00' AS von, timestamp = '2003-07-22 20:00' AS bis union select timestamp '2003-07-28 08:00' AS von, time= stamp '2003-07-28 20:00' AS bis union select timestamp '2003-07-29 08:00' AS von, time= stamp '2003-07-29 20:00' AS bis ) as turnus ) as belegte where da ) then 0 else 1 end ) else ressourcen.menge - ( select max(anzahl) from ( -- sum(auftragsressourcen.menge) for all rows in belegungen that inter= sect the given time interval -- i.e. the number of used items of a ressource in the given time inte= rval select iGetNumOfBookedRes(ressourcen.ressource_id, turnus.von, = turnus.bis) as anzahl from ( select timestamp '2003-07-22 08:00' AS von, timestamp '2003= -07-22 20:00' AS bis union select timestamp '2003-07-28 08:00' AS von, timestamp= '2003-07-28 20:00' AS bis union select timestamp '2003-07-29 08:00' AS von, timestam= p '2003-07-29 20:00' AS bis ) as turnus ) as belegte ) end as verfuegbar from ressourcen join raeume using (ressource_id) join gebaeude using (gebaeude_id) join standorte using (standort_id) join raumtypen using (raumtyp_id) ) as verfuegbare_ressourcen where verfuegbare_ressourcen.verfuegbar > 0; CREATE FUNCTION iGetNumOfBookedRes(integer, timestamp, timestamp) RETURNS n= umeric AS ' SELECT=20 CASE WHEN (MAX(kumulierte) IS NULL) THEN 0 ELSE MAX(kumulierte) END FROM (SELECT=20 (SELECT=20 SUM(dynmenge)=20 FROM (SELECT -- Ressource wird ausgeliehen von, menge AS dynmenge FROM auftragsressourcen JOIN belegungen USING (auftragsress= ource_id) WHERE ressource_id =3D $1 AND von > $2 AND von < $3 UNION SELECT -- Ressource wird zur=C3=BCckgegeben bis AS von, -menge AS dynmenge FROM auftragsressourcen JOIN belegungen USING (auftragsress= ource_id) WHERE ressource_id =3D $1 AND bis > $2 AND bis < $3 UNION SELECT -- Anfangsstand $2, SUM(auftragsressourcen.menge) AS dynmenge FROM auftragsressourcen JOIN belegungen USING (auftragsress= ource_id) WHERE ressource_id =3D $1 AND von <=3D $2 and bis > $2 ) AS bel1=20 WHERE bel1.von <=3D bel2.von ) AS kumulierte FROM (SELECT -- Ressource wird ausgeliehen von, menge AS dynmenge FROM auftragsressourcen JOIN belegungen USING (auftragsressourc= e_id) WHERE ressource_id =3D $1 AND von > $2 AND von < $3 UNION SELECT -- Ressource wird zur=C3=BCckgegeben bis AS von, -menge AS dynmenge FROM auftragsressourcen JOIN belegungen USING (auftragsressourc= e_id) WHERE ressource_id =3D $1 AND bis > $2 AND bis < $3 UNION SELECT -- Anfangsstand $2, SUM(auftragsressourcen.menge) AS dynmenge FROM auftragsressourcen JOIN belegungen USING (auftragsressourc= e_id) WHERE ressource_id =3D $1 AND von <=3D $2 and bis > $2 ) AS bel2 ) AS belegte ' LANGUAGE SQL; CREATE FUNCTION bGetNumOfBookedSingleRes(integer, timestamp, timestamp) RET= URNS boolean AS ' select exists (select * from auftragsressourcen JOIN belegungen USING=20 (auftragsressource_id) WHERE ressource_id =3D $1 AND bis > $2 and von < $3) ' LANGUAGE SQL; -- explain analyze of the above query = QUERY PLAN=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 ---------------------------------------------------------------------------= ---------------------------------------------------------------------------= ---------------------------------------------------------------------------= -- Subquery Scan verfuegbare_ressourcen (cost=3D56.37..69.97 rows=3D88 width= =3D142) (actual time=3D346.60..677.44 rows=3D265 loops=3D1) -> Hash Join (cost=3D56.37..69.97 rows=3D88 width=3D142) (actual time= =3D346.52..668.46 rows=3D265 loops=3D1) Hash Cond: ("outer".raumtyp_id =3D "inner".raumtyp_id) -> Hash Join (cost=3D55.05..66.88 rows=3D88 width=3D125) (actual= time=3D318.00..346.16 rows=3D265 loops=3D1) Hash Cond: ("outer".standort_id =3D "inner".standort_id) -> Hash Join (cost=3D53.96..64.25 rows=3D88 width=3D115) (= actual time=3D317.80..336.77 rows=3D265 loops=3D1) Hash Cond: ("outer".gebaeude_id =3D "inner".gebaeude_i= d) -> Hash Join (cost=3D52.66..61.40 rows=3D88 width=3D= 68) (actual time=3D317.41..328.62 rows=3D265 loops=3D1) Hash Cond: ("outer".ressource_id =3D "inner".res= source_id) -> Seq Scan on raeume (cost=3D0.00..5.65 rows= =3D265 width=3D56) (actual time=3D0.03..5.01 rows=3D265 loops=3D1) -> Hash (cost=3D52.42..52.42 rows=3D95 width= =3D12) (actual time=3D317.28..317.28 rows=3D0 loops=3D1) -> Seq Scan on ressourcen (cost=3D0.00..= 52.42 rows=3D95 width=3D12) (actual time=3D2.88..315.62 rows=3D284 loops=3D= 1) Filter: (CASE WHEN (menge =3D 1) THE= N (CASE WHEN (subplan) THEN 0 ELSE 1 END)::numeric ELSE ((menge)::numeric -= (subplan)) END > 0::numeric) SubPlan -> Subquery Scan turnus (cost=3D= 0.05..0.08 rows=3D1 width=3D0) (actual time=3D0.96..0.96 rows=3D0 loops=3D2= 82) -> Unique (cost=3D0.05..0.= 08 rows=3D1 width=3D0) (actual time=3D0.96..0.96 rows=3D0 loops=3D282) -> Sort (cost=3D0.05= ..0.06 rows=3D3 width=3D0) (actual time=3D0.95..0.95 rows=3D0 loops=3D282) Sort Key: von, b= is -> Append (cos= t=3D0.00..0.03 rows=3D3 width=3D0) (actual time=3D0.80..0.80 rows=3D0 loops= =3D282) -> Subque= ry Scan "*SELECT* 1" (cost=3D0.00..0.01 rows=3D1 width=3D0) (actual time= =3D0.28..0.28 rows=3D0 loops=3D282) -> = Result (cost=3D0.00..0.01 rows=3D1 width=3D0) (actual time=3D0.28..0.28 ro= ws=3D0 loops=3D282) = One-Time Filter: bgetnumofbookedsingleres($0, '2003-07-22 08:00:00'::time= stamp without time zone, '2003-07-22 20:00:00'::timestamp without time zone) -> Subque= ry Scan "*SELECT* 2" (cost=3D0.00..0.01 rows=3D1 width=3D0) (actual time= =3D0.25..0.25 rows=3D0 loops=3D282) -> = Result (cost=3D0.00..0.01 rows=3D1 width=3D0) (actual time=3D0.24..0.24 ro= ws=3D0 loops=3D282) = One-Time Filter: bgetnumofbookedsingleres($0, '2003-07-28 08:00:00'::time= stamp without time zone, '2003-07-28 20:00:00'::timestamp without time zone) -> Subque= ry Scan "*SELECT* 3" (cost=3D0.00..0.01 rows=3D1 width=3D0) (actual time= =3D0.25..0.25 rows=3D0 loops=3D282) -> = Result (cost=3D0.00..0.01 rows=3D1 width=3D0) (actual time=3D0.24..0.24 ro= ws=3D0 loops=3D282) = One-Time Filter: bgetnumofbookedsingleres($0, '2003-07-29 08:00:00'::time= stamp without time zone, '2003-07-29 20:00:00'::timestamp without time zone) -> Aggregate (cost=3D0.08..0.08 = rows=3D1 width=3D0) (actual time=3D15.06..15.07 rows=3D1 loops=3D2) -> Subquery Scan turnus (c= ost=3D0.05..0.08 rows=3D1 width=3D0) (actual time=3D0.14..0.20 rows=3D3 loo= ps=3D2) -> Unique (cost=3D0.= 05..0.08 rows=3D1 width=3D0) (actual time=3D0.13..0.16 rows=3D3 loops=3D2) -> Sort (cost= =3D0.05..0.06 rows=3D3 width=3D0) (actual time=3D0.13..0.14 rows=3D3 loops= =3D2) Sort Key: = von, bis -> Append= (cost=3D0.00..0.03 rows=3D3 width=3D0) (actual time=3D0.03..0.08 rows=3D3= loops=3D1) -> = Subquery Scan "*SELECT* 1" (cost=3D0.00..0.01 rows=3D1 width=3D0) (actual = time=3D0.02..0.03 rows=3D1 loops=3D1) = -> Result (cost=3D0.00..0.01 rows=3D1 width=3D0) (actual time=3D0.01..0= .01 rows=3D1 loops=3D1) -> = Subquery Scan "*SELECT* 2" (cost=3D0.00..0.01 rows=3D1 width=3D0) (actual = time=3D0.02..0.02 rows=3D1 loops=3D1) = -> Result (cost=3D0.00..0.01 rows=3D1 width=3D0) (actual time=3D0.01..0= .01 rows=3D1 loops=3D1) -> = Subquery Scan "*SELECT* 3" (cost=3D0.00..0.01 rows=3D1 width=3D0) (actual = time=3D0.02..0.02 rows=3D1 loops=3D1) = -> Result (cost=3D0.00..0.01 rows=3D1 width=3D0) (actual time=3D0.01..0= .01 rows=3D1 loops=3D1) -> Hash (cost=3D1.24..1.24 rows=3D24 width=3D47) (ac= tual time=3D0.32..0.32 rows=3D0 loops=3D1) -> Seq Scan on gebaeude (cost=3D0.00..1.24 row= s=3D24 width=3D47) (actual time=3D0.02..0.21 rows=3D24 loops=3D1) -> Hash (cost=3D1.07..1.07 rows=3D7 width=3D10) (actual ti= me=3D0.09..0.09 rows=3D0 loops=3D1) -> Seq Scan on standorte (cost=3D0.00..1.07 rows=3D7= width=3D10) (actual time=3D0.02..0.06 rows=3D7 loops=3D1) -> Hash (cost=3D1.26..1.26 rows=3D26 width=3D17) (actual time=3D= 0.28..0.28 rows=3D0 loops=3D1) -> Seq Scan on raumtypen (cost=3D0.00..1.26 rows=3D26 widt= h=3D17) (actual time=3D0.04..0.19 rows=3D26 loops=3D1) SubPlan -> Seq Scan on auftragsressourcen (cost=3D0.00..1.17 rows=3D1 = width=3D20) (actual time=3D0.04..0.04 rows=3D0 loops=3D265) Filter: ((auftrag_id =3D 46) AND (ressource_id =3D $0)) -> Subquery Scan turnus (cost=3D0.05..0.08 rows=3D1 width=3D0)= (actual time=3D0.96..0.96 rows=3D0 loops=3D263) -> Unique (cost=3D0.05..0.08 rows=3D1 width=3D0) (actual= time=3D0.95..0.95 rows=3D0 loops=3D263) -> Sort (cost=3D0.05..0.06 rows=3D3 width=3D0) (ac= tual time=3D0.95..0.95 rows=3D0 loops=3D263) Sort Key: von, bis -> Append (cost=3D0.00..0.03 rows=3D3 width= =3D0) (actual time=3D0.79..0.79 rows=3D0 loops=3D263) -> Subquery Scan "*SELECT* 1" (cost=3D= 0.00..0.01 rows=3D1 width=3D0) (actual time=3D0.26..0.26 rows=3D0 loops=3D2= 63) -> Result (cost=3D0.00..0.01 row= s=3D1 width=3D0) (actual time=3D0.26..0.26 rows=3D0 loops=3D263) One-Time Filter: bgetnumofbo= okedsingleres($0, '2003-07-22 08:00:00'::timestamp without time zone, '2003= -07-22 20:00:00'::timestamp without time zone) -> Subquery Scan "*SELECT* 2" (cost=3D= 0.00..0.01 rows=3D1 width=3D0) (actual time=3D0.26..0.26 rows=3D0 loops=3D2= 63) -> Result (cost=3D0.00..0.01 row= s=3D1 width=3D0) (actual time=3D0.25..0.25 rows=3D0 loops=3D263) One-Time Filter: bgetnumofbo= okedsingleres($0, '2003-07-28 08:00:00'::timestamp without time zone, '2003= -07-28 20:00:00'::timestamp without time zone) -> Subquery Scan "*SELECT* 3" (cost=3D= 0.00..0.01 rows=3D1 width=3D0) (actual time=3D0.25..0.25 rows=3D0 loops=3D2= 63) -> Result (cost=3D0.00..0.01 row= s=3D1 width=3D0) (actual time=3D0.25..0.25 rows=3D0 loops=3D263) One-Time Filter: bgetnumofbo= okedsingleres($0, '2003-07-29 08:00:00'::timestamp without time zone, '2003= -07-29 20:00:00'::timestamp without time zone) -> Aggregate (cost=3D0.08..0.08 rows=3D1 width=3D0) (actual ti= me=3D18.43..18.43 rows=3D1 loops=3D2) -> Subquery Scan turnus (cost=3D0.05..0.08 rows=3D1 widt= h=3D0) (actual time=3D0.14..0.20 rows=3D3 loops=3D2) -> Unique (cost=3D0.05..0.08 rows=3D1 width=3D0) (= actual time=3D0.13..0.16 rows=3D3 loops=3D2) -> Sort (cost=3D0.05..0.06 rows=3D3 width=3D= 0) (actual time=3D0.13..0.14 rows=3D3 loops=3D2) Sort Key: von, bis -> Append (cost=3D0.00..0.03 rows=3D3 = width=3D0) (actual time=3D0.03..0.08 rows=3D3 loops=3D1) -> Subquery Scan "*SELECT* 1" (c= ost=3D0.00..0.01 rows=3D1 width=3D0) (actual time=3D0.02..0.03 rows=3D1 loo= ps=3D1) -> Result (cost=3D0.00..0.= 01 rows=3D1 width=3D0) (actual time=3D0.01..0.01 rows=3D1 loops=3D1) -> Subquery Scan "*SELECT* 2" (c= ost=3D0.00..0.01 rows=3D1 width=3D0) (actual time=3D0.02..0.02 rows=3D1 loo= ps=3D1) -> Result (cost=3D0.00..0.= 01 rows=3D1 width=3D0) (actual time=3D0.01..0.01 rows=3D1 loops=3D1) -> Subquery Scan "*SELECT* 3" (c= ost=3D0.00..0.01 rows=3D1 width=3D0) (actual time=3D0.01..0.02 rows=3D1 loo= ps=3D1) -> Result (cost=3D0.00..0.= 01 rows=3D1 width=3D0) (actual time=3D0.01..0.01 rows=3D1 loops=3D1) Total runtime: 680.23 msec (rows: 76) At the moment we have ~300 rows in ressourcen, there are going to be 1000-10000 rows in it in production. The turnus union also normally has around 100 rows. With 300 rows in ressourcen and ~50 turnus rows the query takes 15 seconds here. With 3000 rows in ressourcen I expect around 150 seconds which is too long. iGetNumOfBookedRes is pretty expensive, and because almost all rows in ressource have menge =3D 1 we wrote an less expensive function for that case that only checks for the existance of a row in belegungen for the given time. Attached are the table schemas, function definitions and the same query with a larger turnus union. The large query takes ~13 seconds here. Test data can be downloaded from http://www.bab24.de/media/testdata.sql If it helps to explain what this query actually does, I'll gladly follow up with that. We're using PostgreSQL 7.3.3. I hope I didn't forget anyting important. Thanks -- Markus Bertheau Cenes Data GmbH --=-NL5Uz/kBu2rRLkVxTUTa Content-Disposition: attachment; filename=schema.sql Content-Type: text/x-sql; name=schema.sql; charset=UTF-8 Content-Transfer-Encoding: base64 XGMgdGVtcGxhdGUxDQpkcm9wIGRhdGFiYXNlICJpYmgyIjsNCmNyZWF0ZSBk YXRhYmFzZSAiaWJoMiIgd2l0aCBlbmNvZGluZz0ndW5pY29kZSc7DQpcYyBp YmgyDQoNCmNyZWF0ZSB0YWJsZSBhdWZ0cmFnc2FydGVuICgNCiAgICBhdWZ0 cmFnc2FydF9pZCBzZXJpYWwgcHJpbWFyeSBrZXksDQogICAgbmFtZSB0ZXh0 IG5vdCBudWxsLA0KICAgIHRhYmVsbGVubmFtZSB0ZXh0IG5vdCBudWxsLA0K ICAgIHRhYmVsbGVuX2lkX25hbWUgdGV4dCBub3QgbnVsbA0KKTsNCg0KY3Jl YXRlIHRhYmxlIGF1ZnRyYWVnZSAoDQogICAgYXVmdHJhZ19pZCBzZXJpYWwg cHJpbWFyeSBrZXksDQogICAgYXVmdHJhZ3NhcnRfaWQgaW50IHJlZmVyZW5j ZXMgYXVmdHJhZ3NhcnRlbiBvbiBkZWxldGUgcmVzdHJpY3Qgb24gdXBkYXRl IGNhc2NhZGUgbm90IG51bGwsDQoJYmV6ZWljaG51bmcgdGV4dCBub3QgbnVs bA0KKTsNCg0KY3JlYXRlIHRhYmxlIHNlbWVzdGVyICgNCiAgICBzZW1lc3Rl cl9pZCBzZXJpYWwgcHJpbWFyeSBrZXksDQogICAgbmFtZSB0ZXh0IG5vdCBu dWxsDQopOw0KDQpjcmVhdGUgdGFibGUgZmFjaGJlcmVpY2hlICgNCiAgICBm YWNoYmVyZWljaF9pZCBzZXJpYWwgcHJpbWFyeSBrZXksDQogICAgbmFtZSB0 ZXh0IG5vdCBudWxsDQopOw0KDQpjcmVhdGUgdGFibGUgc3R1ZGllbmdhZW5n ZSAoDQogICAgc3R1ZGllbmdhbmdfaWQgc2VyaWFsIHByaW1hcnkga2V5LA0K ICAgIGZhY2hiZXJlaWNoX2lkIGludCByZWZlcmVuY2VzIGZhY2hiZXJlaWNo ZSBvbiBkZWxldGUgY2FzY2FkZSBvbiB1cGRhdGUgY2FzY2FkZSBub3QgbnVs bCwNCiAgICBuYW1lIHRleHQgbm90IG51bGwsDQogICAga3VlcnplbCB0ZXh0 IG5vdCBudWxsDQopOw0KDQpjcmVhdGUgdGFibGUgcmVzc291cmNlbmFydGVu ICgNCiAgICByZXNzb3VyY2VuYXJ0X2lkIHNlcmlhbCBwcmltYXJ5IGtleSwN CiAgICBuYW1lIHRleHQgbm90IG51bGwsDQogICAgdGFiZWxsZW5uYW1lIHRl eHQgbm90IG51bGwsDQogICAgdGFiZWxsZW5faWRfbmFtZSB0ZXh0IG5vdCBu dWxsLA0KICAgIGJlemVpY2hudW5nc2F1c2RydWNrIHRleHQgbm90IG51bGwN Cik7DQoNCmNyZWF0ZSB0YWJsZSByZXNzb3VyY2VuICgNCiAgICByZXNzb3Vy Y2VfaWQgc2VyaWFsIHByaW1hcnkga2V5LA0KICAgIHJlc3NvdXJjZW5hcnRf aWQgaW50ZWdlciBub3QgbnVsbCByZWZlcmVuY2VzIHJlc3NvdXJjZW5hcnRl biBvbiBkZWxldGUgcmVzdHJpY3Qgb24gdXBkYXRlIGNhc2NhZGUsDQogICAg bWVuZ2UgaW50ZWdlciBub3QgbnVsbCwNCiAgICBjb25zdHJhaW50IG1lbmdl X2dyb2Vzc2VyZ2xlaWNoX251bGwgY2hlY2sgKG1lbmdlID49IDApDQopOw0K DQoNCmNyZWF0ZSB0YWJsZSByYXVtdHlwZW4gKA0KICAgIHJhdW10eXBfaWQg c2VyaWFsIHByaW1hcnkga2V5LA0KICAgIGJlemVpY2hudW5nIHRleHQgbm90 IG51bGwNCik7DQoNCmNyZWF0ZSB0YWJsZSBzdGFuZG9ydGUgKA0KICAgIHN0 YW5kb3J0X2lkIHNlcmlhbCBwcmltYXJ5IGtleSwNCiAgICBrdXJ6YmV6ZWlj aG51bmcgdGV4dCBub3QgbnVsbCwNCiAgICBiZXplaWNobnVuZyB0ZXh0IG5v dCBudWxsDQopOw0KDQpjcmVhdGUgdGFibGUgZ2ViYWV1ZGUgKA0KICAgIGdl YmFldWRlX2lkIHNlcmlhbCBwcmltYXJ5IGtleSwNCiAgICBzdGFuZG9ydF9p ZCBpbnQgbm90IG51bGwgcmVmZXJlbmNlcyBzdGFuZG9ydGUgb24gZGVsZXRl IGNhc2NhZGUgb24gdXBkYXRlIGNhc2NhZGUsDQogICAga3VyemJlemVpY2hu dW5nIHRleHQgbm90IG51bGwsDQogICAgYmV6ZWljaG51bmcgdGV4dCBub3Qg bnVsbCwNCiAgICBudW1tZXIgdGV4dCBub3QgbnVsbA0KKTsNCg0KY3JlYXRl IHRhYmxlIHJhZXVtZSAoDQogICAgcmF1bV9pZCBzZXJpYWwgcHJpbWFyeSBr ZXksDQogICAgcmVzc291cmNlX2lkIGludGVnZXIgbm90IG51bGwgdW5pcXVl IHJlZmVyZW5jZXMgcmVzc291cmNlbiBvbiBkZWxldGUgY2FzY2FkZSBvbiB1 cGRhdGUgY2FzY2FkZSwNCiAgICBnZWJhZXVkZV9pZCBpbnQgbm90IG51bGwg cmVmZXJlbmNlcyBnZWJhZXVkZSBvbiBkZWxldGUgY2FzY2FkZSBvbiB1cGRh dGUgY2FzY2FkZSwNCglyYXVtdHlwX2lkIGludCBub3QgbnVsbCByZWZlcmVu Y2VzIHJhdW10eXBlbiBvbiBkZWxldGUgY2FzY2FkZSBvbiB1cGRhdGUgY2Fz Y2FkZSwNCgludW1tZXIgdGV4dCwNCglmbGFlY2hlIG51bWVyaWMoOCwyKSwN CgliZW1lcmt1bmcgdGV4dA0KKTsNCg0KY3JlYXRlIHRhYmxlIGF1ZnRyYWdz cmVzc291cmNlbiAoDQoJYXVmdHJhZ3NyZXNzb3VyY2VfaWQgc2VyaWFsIHBy aW1hcnkga2V5LA0KCXJlc3NvdXJjZV9pZCBpbnRlZ2VyIG5vdCBudWxsIHJl ZmVyZW5jZXMgcmVzc291cmNlbiBvbiBkZWxldGUgcmVzdHJpY3Qgb24gdXBk YXRlIGNhc2NhZGUsDQoJYXVmdHJhZ19pZCBpbnRlZ2VyIG5vdCBudWxsIHJl ZmVyZW5jZXMgYXVmdHJhZWdlIG9uIHVwZGF0ZSBjYXNjYWRlIG9uIGRlbGV0 ZSBjYXNjYWRlLA0KCW1lbmdlIGludGVnZXIgbm90IG51bGwsDQoJc3RhdHVz IGludGVnZXIgZGVmYXVsdCAwLA0KICAgIHVuaXF1ZShyZXNzb3VyY2VfaWQs IGF1ZnRyYWdfaWQpLA0KICAgIGNvbnN0cmFpbnQgZ3VlbHRpZ2VyX3N0YXR1 cyBjaGVjayAoc3RhdHVzIGJldHdlZW4gMCBhbmQgMikNCik7DQoNCmNyZWF0 ZSB0YWJsZSBiZWxlZ3VuZ2VuICgNCgliZWxlZ3VuZ19pZCBzZXJpYWwgcHJp bWFyeSBrZXksDQoJYXVmdHJhZ3NyZXNzb3VyY2VfaWQgaW50ZWdlciBub3Qg bnVsbCByZWZlcmVuY2VzIGF1ZnRyYWdzcmVzc291cmNlbiBvbiB1cGRhdGUg Y2FzY2FkZSBvbiBkZWxldGUgY2FzY2FkZSwNCgl2b24gdGltZXN0YW1wIG5v dCBudWxsLA0KCWJpcyB0aW1lc3RhbXAgbm90IG51bGwsDQogICAgY29uc3Ry YWludCB2b25fa2xlaW5lcl9iaXMgY2hlY2sgKHZvbiA8IGJpcykNCik7DQoN CkNSRUFURSBGVU5DVElPTiBpR2V0TnVtT2ZCb29rZWRSZXMoaW50ZWdlciwg dGltZXN0YW1wLCB0aW1lc3RhbXApIFJFVFVSTlMgbnVtZXJpYyBBUyAnDQpT RUxFQ1QgDQogICAgQ0FTRSBXSEVOIChNQVgoa3VtdWxpZXJ0ZSkgSVMgTlVM TCkgVEhFTiAwIEVMU0UgTUFYKGt1bXVsaWVydGUpIEVORA0KICAgIEZST00N CiAgICAoU0VMRUNUIA0KICAgICAgICAoU0VMRUNUIA0KICAgICAgICAgICAg U1VNKGR5bm1lbmdlKSANCiAgICAgICAgICAgIEZST00NCiAgICAgICAgICAg IChTRUxFQ1QNCiAgICAgICAgICAgICAgICAtLSBSZXNzb3VyY2Ugd2lyZCBh dXNnZWxpZWhlbg0KICAgICAgICAgICAgICAgIHZvbiwgbWVuZ2UgQVMgZHlu bWVuZ2UNCiAgICAgICAgICAgICAgICBGUk9NIGF1ZnRyYWdzcmVzc291cmNl biBKT0lOIGJlbGVndW5nZW4gVVNJTkcgKGF1ZnRyYWdzcmVzc291cmNlX2lk KQ0KICAgICAgICAgICAgICAgIFdIRVJFIHJlc3NvdXJjZV9pZCA9ICQxIEFO RCB2b24gPiAkMiBBTkQgdm9uIDwgJDMNCiAgICAgICAgICAgIFVOSU9OIFNF TEVDVA0KICAgICAgICAgICAgICAgIC0tIFJlc3NvdXJjZSB3aXJkIHp1csO8 Y2tnZWdlYmVuDQogICAgICAgICAgICAgICAgYmlzIEFTIHZvbiwgLW1lbmdl IEFTIGR5bm1lbmdlDQogICAgICAgICAgICAgICAgRlJPTSBhdWZ0cmFnc3Jl c3NvdXJjZW4gSk9JTiBiZWxlZ3VuZ2VuIFVTSU5HIChhdWZ0cmFnc3Jlc3Nv dXJjZV9pZCkNCiAgICAgICAgICAgICAgICBXSEVSRSByZXNzb3VyY2VfaWQg PSAkMSBBTkQgYmlzID4gJDIgQU5EIGJpcyA8ICQzDQogICAgICAgICAgICBV TklPTiBTRUxFQ1QNCiAgICAgICAgICAgICAgICAtLSBBbmZhbmdzc3RhbmQN CiAgICAgICAgICAgICAgICAkMiwgU1VNKGF1ZnRyYWdzcmVzc291cmNlbi5t ZW5nZSkgQVMgZHlubWVuZ2UNCiAgICAgICAgICAgICAgICBGUk9NIGF1ZnRy YWdzcmVzc291cmNlbiBKT0lOIGJlbGVndW5nZW4gVVNJTkcgKGF1ZnRyYWdz cmVzc291cmNlX2lkKQ0KICAgICAgICAgICAgICAgIFdIRVJFIHJlc3NvdXJj ZV9pZCA9ICQxIEFORCB2b24gPD0gJDIgYW5kIGJpcyA+ICQyDQogICAgICAg ICAgICApIEFTIGJlbDEgDQogICAgICAgICAgICBXSEVSRSBiZWwxLnZvbiA8 PSBiZWwyLnZvbg0KICAgICAgICApIEFTIGt1bXVsaWVydGUNCiAgICAgICAg RlJPTQ0KICAgICAgICAoU0VMRUNUDQogICAgICAgICAgICAtLSBSZXNzb3Vy Y2Ugd2lyZCBhdXNnZWxpZWhlbg0KICAgICAgICAgICAgdm9uLCBtZW5nZSBB UyBkeW5tZW5nZQ0KICAgICAgICAgICAgRlJPTSBhdWZ0cmFnc3Jlc3NvdXJj ZW4gSk9JTiBiZWxlZ3VuZ2VuIFVTSU5HIChhdWZ0cmFnc3Jlc3NvdXJjZV9p ZCkNCiAgICAgICAgICAgIFdIRVJFIHJlc3NvdXJjZV9pZCA9ICQxIEFORCB2 b24gPiAkMiBBTkQgdm9uIDwgJDMNCiAgICAgICAgVU5JT04gU0VMRUNUDQog ICAgICAgICAgICAtLSBSZXNzb3VyY2Ugd2lyZCB6dXLDvGNrZ2VnZWJlbg0K ICAgICAgICAgICAgYmlzIEFTIHZvbiwgLW1lbmdlIEFTIGR5bm1lbmdlDQog ICAgICAgICAgICBGUk9NIGF1ZnRyYWdzcmVzc291cmNlbiBKT0lOIGJlbGVn dW5nZW4gVVNJTkcgKGF1ZnRyYWdzcmVzc291cmNlX2lkKQ0KICAgICAgICAg ICAgV0hFUkUgcmVzc291cmNlX2lkID0gJDEgQU5EIGJpcyA+ICQyIEFORCBi aXMgPCAkMw0KICAgICAgICBVTklPTiBTRUxFQ1QNCiAgICAgICAgICAgIC0t IEFuZmFuZ3NzdGFuZA0KICAgICAgICAgICAgJDIsIFNVTShhdWZ0cmFnc3Jl c3NvdXJjZW4ubWVuZ2UpIEFTIGR5bm1lbmdlDQogICAgICAgICAgICBGUk9N IGF1ZnRyYWdzcmVzc291cmNlbiBKT0lOIGJlbGVndW5nZW4gVVNJTkcgKGF1 ZnRyYWdzcmVzc291cmNlX2lkKQ0KICAgICAgICAgICAgV0hFUkUgcmVzc291 cmNlX2lkID0gJDEgQU5EIHZvbiA8PSAkMiBhbmQgYmlzID4gJDINCiAgICAg ICAgKSBBUyBiZWwyDQogICAgKSBBUyBiZWxlZ3RlDQonIExBTkdVQUdFIFNR TDsNCg0KQ1JFQVRFIEZVTkNUSU9OIGJHZXROdW1PZkJvb2tlZFNpbmdsZVJl cyhpbnRlZ2VyLCB0aW1lc3RhbXAsIHRpbWVzdGFtcCkgUkVUVVJOUyBib29s ZWFuIEFTICcNCnNlbGVjdCBleGlzdHMgKHNlbGVjdCAqIGZyb20gYXVmdHJh Z3NyZXNzb3VyY2VuIEpPSU4gYmVsZWd1bmdlbiBVU0lORyAoYXVmdHJhZ3Ny ZXNzb3VyY2VfaWQpIFdIRVJFIHJlc3NvdXJjZV9pZCA9ICQxIEFORCBiaXMg PiAkMiAgICBhbmQgdm9uIDwgJDMpDQonIExBTkdVQUdFIFNRTDsNCg0K --=-NL5Uz/kBu2rRLkVxTUTa Content-Disposition: attachment; filename=largequery.sql Content-Type: text/x-sql; name=largequery.sql; charset=UTF-8 Content-Transfer-Encoding: base64 LS0gZXhhbXBsZSBxdWVyeSB3aXRoIH44MCByb3dzIGluIHRoZSB0dXJudXMg c3Vic2VsZWN0DQpzZWxlY3QgKiBmcm9tIChzZWxlY3QgcmVzc291cmNlbi4q LCBnZWJhZXVkZS5iZXplaWNobnVuZyBhcyAiZ2ViYWV1ZGUuYmV6ZWljaG51 bmciLCBnZWJhZXVkZS5nZWJhZXVkZV9pZCBhcyAiZ2ViYWV1ZGUuZ2ViYWV1 ZGVfaWQiLCBnZWJhZXVkZS5rdXJ6YmV6ZWljaG51bmcgYXMgImdlYmFldWRl Lmt1cnpiZXplaWNobnVuZyIsIGdlYmFldWRlLm51bW1lciBhcyAiZ2ViYWV1 ZGUubnVtbWVyIiwgcmFldW1lLmJlbWVya3VuZyBhcyAicmFldW1lLmJlbWVy a3VuZyIsIHJhZXVtZS5mbGFlY2hlIGFzICJyYWV1bWUuZmxhZWNoZSIsIHJh ZXVtZS5udW1tZXIgYXMgInJhZXVtZS5udW1tZXIiLCByYWV1bWUucmF1bV9p ZCBhcyAicmFldW1lLnJhdW1faWQiLCByYXVtdHlwZW4uYmV6ZWljaG51bmcg YXMgInJhdW10eXBlbi5iZXplaWNobnVuZyIsIHJhdW10eXBlbi5yYXVtdHlw X2lkIGFzICJyYXVtdHlwZW4ucmF1bXR5cF9pZCIsIHN0YW5kb3J0ZS5rdXJ6 YmV6ZWljaG51bmcgYXMgInN0YW5kb3J0ZS5rdXJ6YmV6ZWljaG51bmciLCBz dGFuZG9ydGUuc3RhbmRvcnRfaWQgYXMgInN0YW5kb3J0ZS5zdGFuZG9ydF9p ZCIsIGV4aXN0cyAoc2VsZWN0ICogZnJvbSBhdWZ0cmFnc3Jlc3NvdXJjZW4g d2hlcmUgYXVmdHJhZ19pZCA9ICc0NicgYW5kIHJlc3NvdXJjZV9pZCA9IHJl c3NvdXJjZW4ucmVzc291cmNlX2lkKSBhcyBzY2hvbl9pbl9hdWZ0cmFnX3Zl cndlbmRldCwgY2FzZSB3aGVuIChyZXNzb3VyY2VuLm1lbmdlID0gMSkgdGhl biAoY2FzZSB3aGVuIGV4aXN0cyggc2VsZWN0ICogZnJvbSAoIHNlbGVjdCBi R2V0TnVtT2ZCb29rZWRTaW5nbGVSZXMocmVzc291cmNlbi5yZXNzb3VyY2Vf aWQsIHR1cm51cy52b24sIHR1cm51cy5iaXMpIGFzIGRhIGZyb20gKHNlbGVj dCB0aW1lc3RhbXAgJzIwMDItMTAtMTYgMDg6MDA6MDAnICBBUyB2b24sIHRp bWVzdGFtcCAnMjAwMi0xMC0xNiAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNl bGVjdCB0aW1lc3RhbXAgJzIwMDItMTAtMTYgMDg6NDU6MDAnICBBUyB2b24s IHRpbWVzdGFtcCAnMjAwMi0xMC0xNiAwOTozMDowMCcgQVMgYmlzIHVuaW9u IHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTAtMjEgMDg6MDA6MDAnICBBUyB2 b24sIHRpbWVzdGFtcCAnMjAwMi0xMC0yMSAwODo0NTowMCcgQVMgYmlzIHVu aW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTAtMjEgMDg6NDU6MDAnICBB UyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMC0yMSAwOTozMDowMCcgQVMgYmlz IHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTAtMjMgMDg6MDA6MDAn ICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMC0yMyAwODo0NTowMCcgQVMg YmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTAtMjMgMDg6NDU6 MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMC0yMyAwOTozMDowMCcg QVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTAtMjggMDg6 MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMC0yOCAwODo0NTow MCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTAtMjgg MDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMC0yOCAwOToz MDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTAt MzAgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMC0zMCAw ODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDIt MTAtMzAgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMC0z MCAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIw MDItMTEtMDQgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0x MS0wNCAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAg JzIwMDItMTEtMDQgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAw Mi0xMS0wNCAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3Rh bXAgJzIwMDItMTEtMDYgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAn MjAwMi0xMS0wNiAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1l c3RhbXAgJzIwMDItMTEtMDYgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFt cCAnMjAwMi0xMS0wNiAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0 aW1lc3RhbXAgJzIwMDItMTEtMTEgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVz dGFtcCAnMjAwMi0xMS0xMSAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVj dCB0aW1lc3RhbXAgJzIwMDItMTEtMTEgMDg6NDU6MDAnICBBUyB2b24sIHRp bWVzdGFtcCAnMjAwMi0xMS0xMSAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNl bGVjdCB0aW1lc3RhbXAgJzIwMDItMTEtMTMgMDg6MDA6MDAnICBBUyB2b24s IHRpbWVzdGFtcCAnMjAwMi0xMS0xMyAwODo0NTowMCcgQVMgYmlzIHVuaW9u IHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTEtMTMgMDg6NDU6MDAnICBBUyB2 b24sIHRpbWVzdGFtcCAnMjAwMi0xMS0xMyAwOTozMDowMCcgQVMgYmlzIHVu aW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTEtMTggMDg6MDA6MDAnICBB UyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMS0xOCAwODo0NTowMCcgQVMgYmlz IHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTEtMTggMDg6NDU6MDAn ICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMS0xOCAwOTozMDowMCcgQVMg YmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTEtMjAgMDg6MDA6 MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMS0yMCAwODo0NTowMCcg QVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTEtMjAgMDg6 NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMS0yMCAwOTozMDow MCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTEtMjUg MDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMS0yNSAwODo0 NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTEt MjUgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMS0yNSAw OTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDIt MTEtMjcgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMS0y NyAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIw MDItMTEtMjcgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0x MS0yNyAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAg JzIwMDItMTItMDIgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAw Mi0xMi0wMiAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3Rh bXAgJzIwMDItMTItMDIgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAn MjAwMi0xMi0wMiAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1l c3RhbXAgJzIwMDItMTItMDQgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFt cCAnMjAwMi0xMi0wNCAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0 aW1lc3RhbXAgJzIwMDItMTItMDQgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVz dGFtcCAnMjAwMi0xMi0wNCAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVj dCB0aW1lc3RhbXAgJzIwMDItMTItMDkgMDg6MDA6MDAnICBBUyB2b24sIHRp bWVzdGFtcCAnMjAwMi0xMi0wOSAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNl bGVjdCB0aW1lc3RhbXAgJzIwMDItMTItMDkgMDg6NDU6MDAnICBBUyB2b24s IHRpbWVzdGFtcCAnMjAwMi0xMi0wOSAwOTozMDowMCcgQVMgYmlzIHVuaW9u IHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTItMTEgMDg6MDA6MDAnICBBUyB2 b24sIHRpbWVzdGFtcCAnMjAwMi0xMi0xMSAwODo0NTowMCcgQVMgYmlzIHVu aW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTItMTEgMDg6NDU6MDAnICBB UyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMi0xMSAwOTozMDowMCcgQVMgYmlz IHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTItMTYgMDg6MDA6MDAn ICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMi0xNiAwODo0NTowMCcgQVMg YmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTItMTYgMDg6NDU6 MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMi0xNiAwOTozMDowMCcg QVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTItMTggMDg6 MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMi0xOCAwODo0NTow MCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTItMTgg MDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMi0xOCAwOToz MDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTIt MjMgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMi0yMyAw ODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDIt MTItMjMgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMi0y MyAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIw MDItMTItMjUgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0x Mi0yNSAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAg JzIwMDItMTItMjUgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAw Mi0xMi0yNSAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3Rh bXAgJzIwMDItMTItMzAgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAn MjAwMi0xMi0zMCAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1l c3RhbXAgJzIwMDItMTItMzAgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFt cCAnMjAwMi0xMi0zMCAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0 aW1lc3RhbXAgJzIwMDMtMDEtMDEgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVz dGFtcCAnMjAwMy0wMS0wMSAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVj dCB0aW1lc3RhbXAgJzIwMDMtMDEtMDEgMDg6NDU6MDAnICBBUyB2b24sIHRp bWVzdGFtcCAnMjAwMy0wMS0wMSAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNl bGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEtMDYgMDg6MDA6MDAnICBBUyB2b24s IHRpbWVzdGFtcCAnMjAwMy0wMS0wNiAwODo0NTowMCcgQVMgYmlzIHVuaW9u IHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEtMDYgMDg6NDU6MDAnICBBUyB2 b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0wNiAwOTozMDowMCcgQVMgYmlzIHVu aW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEtMDggMDg6MDA6MDAnICBB UyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0wOCAwODo0NTowMCcgQVMgYmlz IHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEtMDggMDg6NDU6MDAn ICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0wOCAwOTozMDowMCcgQVMg YmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEtMTMgMDg6MDA6 MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0xMyAwODo0NTowMCcg QVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEtMTMgMDg6 NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0xMyAwOTozMDow MCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEtMTUg MDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0xNSAwODo0 NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEt MTUgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0xNSAw OTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMt MDEtMjAgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0y MCAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIw MDMtMDEtMjAgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0w MS0yMCAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAg JzIwMDMtMDEtMjIgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAw My0wMS0yMiAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3Rh bXAgJzIwMDMtMDEtMjIgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAn MjAwMy0wMS0yMiAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1l c3RhbXAgJzIwMDMtMDEtMjcgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFt cCAnMjAwMy0wMS0yNyAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0 aW1lc3RhbXAgJzIwMDMtMDEtMjcgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVz dGFtcCAnMjAwMy0wMS0yNyAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVj dCB0aW1lc3RhbXAgJzIwMDMtMDEtMjkgMDg6MDA6MDAnICBBUyB2b24sIHRp bWVzdGFtcCAnMjAwMy0wMS0yOSAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNl bGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEtMjkgMDg6NDU6MDAnICBBUyB2b24s IHRpbWVzdGFtcCAnMjAwMy0wMS0yOSAwOTozMDowMCcgQVMgYmlzIHVuaW9u IHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDItMDMgMDg6MDA6MDAnICBBUyB2 b24sIHRpbWVzdGFtcCAnMjAwMy0wMi0wMyAwODo0NTowMCcgQVMgYmlzIHVu aW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDItMDMgMDg6NDU6MDAnICBB UyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMi0wMyAwOTozMDowMCcgQVMgYmlz IHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDItMDUgMDg6MDA6MDAn ICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMi0wNSAwODo0NTowMCcgQVMg YmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDItMDUgMDg6NDU6 MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMi0wNSAwOTozMDowMCcg QVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDItMTAgMDg6 MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMi0xMCAwODo0NTow MCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDItMTAg MDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMi0xMCAwOToz MDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDIt MTIgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMi0xMiAw ODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMt MDItMTIgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMi0x MiAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIw MDMtMDItMTcgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0w Mi0xNyAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAg JzIwMDMtMDItMTcgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAw My0wMi0xNyAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3Rh bXAgJzIwMDMtMDItMTkgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAn MjAwMy0wMi0xOSAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1l c3RhbXAgJzIwMDMtMDItMTkgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFt cCAnMjAwMy0wMi0xOSAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0 aW1lc3RhbXAgJzIwMDMtMDItMjQgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVz dGFtcCAnMjAwMy0wMi0yNCAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVj dCB0aW1lc3RhbXAgJzIwMDMtMDItMjQgMDg6NDU6MDAnICBBUyB2b24sIHRp bWVzdGFtcCAnMjAwMy0wMi0yNCAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNl bGVjdCB0aW1lc3RhbXAgJzIwMDMtMDItMjYgMDg6MDA6MDAnICBBUyB2b24s IHRpbWVzdGFtcCAnMjAwMy0wMi0yNiAwODo0NTowMCcgQVMgYmlzIHVuaW9u IHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDItMjYgMDg6NDU6MDAnICBBUyB2 b24sIHRpbWVzdGFtcCAnMjAwMy0wMi0yNiAwOTozMDowMCcgQVMgYmlzKSBh cyB0dXJudXMpIGFzIGJlbGVndGUgd2hlcmUgZGEpdGhlbiAwIGVsc2UgMSBl bmQpIGVsc2UgcmVzc291cmNlbi5tZW5nZSAtIChzZWxlY3QgbWF4KGFuemFo bCkgZnJvbSAoc2VsZWN0IGlHZXROdW1PZkJvb2tlZFJlcyhyZXNzb3VyY2Vu LnJlc3NvdXJjZV9pZCwgdHVybnVzLnZvbiwgdHVybnVzLmJpcykgYXMgYW56 YWhsIGZyb20gKHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTAtMTYgMDg6MDA6 MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMC0xNiAwODo0NTowMCcg QVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTAtMTYgMDg6 NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMC0xNiAwOTozMDow MCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTAtMjEg MDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMC0yMSAwODo0 NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTAt MjEgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMC0yMSAw OTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDIt MTAtMjMgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMC0y MyAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIw MDItMTAtMjMgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0x MC0yMyAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAg JzIwMDItMTAtMjggMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAw Mi0xMC0yOCAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3Rh bXAgJzIwMDItMTAtMjggMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAn MjAwMi0xMC0yOCAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1l c3RhbXAgJzIwMDItMTAtMzAgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFt cCAnMjAwMi0xMC0zMCAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0 aW1lc3RhbXAgJzIwMDItMTAtMzAgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVz dGFtcCAnMjAwMi0xMC0zMCAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVj dCB0aW1lc3RhbXAgJzIwMDItMTEtMDQgMDg6MDA6MDAnICBBUyB2b24sIHRp bWVzdGFtcCAnMjAwMi0xMS0wNCAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNl bGVjdCB0aW1lc3RhbXAgJzIwMDItMTEtMDQgMDg6NDU6MDAnICBBUyB2b24s IHRpbWVzdGFtcCAnMjAwMi0xMS0wNCAwOTozMDowMCcgQVMgYmlzIHVuaW9u IHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTEtMDYgMDg6MDA6MDAnICBBUyB2 b24sIHRpbWVzdGFtcCAnMjAwMi0xMS0wNiAwODo0NTowMCcgQVMgYmlzIHVu aW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTEtMDYgMDg6NDU6MDAnICBB UyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMS0wNiAwOTozMDowMCcgQVMgYmlz IHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTEtMTEgMDg6MDA6MDAn ICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMS0xMSAwODo0NTowMCcgQVMg YmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTEtMTEgMDg6NDU6 MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMS0xMSAwOTozMDowMCcg QVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTEtMTMgMDg6 MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMS0xMyAwODo0NTow MCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTEtMTMg MDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMS0xMyAwOToz MDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTEt MTggMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMS0xOCAw ODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDIt MTEtMTggMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMS0x OCAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIw MDItMTEtMjAgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0x MS0yMCAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAg JzIwMDItMTEtMjAgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAw Mi0xMS0yMCAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3Rh bXAgJzIwMDItMTEtMjUgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAn MjAwMi0xMS0yNSAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1l c3RhbXAgJzIwMDItMTEtMjUgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFt cCAnMjAwMi0xMS0yNSAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0 aW1lc3RhbXAgJzIwMDItMTEtMjcgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVz dGFtcCAnMjAwMi0xMS0yNyAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVj dCB0aW1lc3RhbXAgJzIwMDItMTEtMjcgMDg6NDU6MDAnICBBUyB2b24sIHRp bWVzdGFtcCAnMjAwMi0xMS0yNyAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNl bGVjdCB0aW1lc3RhbXAgJzIwMDItMTItMDIgMDg6MDA6MDAnICBBUyB2b24s IHRpbWVzdGFtcCAnMjAwMi0xMi0wMiAwODo0NTowMCcgQVMgYmlzIHVuaW9u IHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTItMDIgMDg6NDU6MDAnICBBUyB2 b24sIHRpbWVzdGFtcCAnMjAwMi0xMi0wMiAwOTozMDowMCcgQVMgYmlzIHVu aW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTItMDQgMDg6MDA6MDAnICBB UyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMi0wNCAwODo0NTowMCcgQVMgYmlz IHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTItMDQgMDg6NDU6MDAn ICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMi0wNCAwOTozMDowMCcgQVMg YmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTItMDkgMDg6MDA6 MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMi0wOSAwODo0NTowMCcg QVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTItMDkgMDg6 NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMi0wOSAwOTozMDow MCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTItMTEg MDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMi0xMSAwODo0 NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTIt MTEgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMi0xMSAw OTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDIt MTItMTYgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMi0x NiAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIw MDItMTItMTYgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMi0x Mi0xNiAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAg JzIwMDItMTItMTggMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAw Mi0xMi0xOCAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3Rh bXAgJzIwMDItMTItMTggMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAn MjAwMi0xMi0xOCAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1l c3RhbXAgJzIwMDItMTItMjMgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFt cCAnMjAwMi0xMi0yMyAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0 aW1lc3RhbXAgJzIwMDItMTItMjMgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVz dGFtcCAnMjAwMi0xMi0yMyAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVj dCB0aW1lc3RhbXAgJzIwMDItMTItMjUgMDg6MDA6MDAnICBBUyB2b24sIHRp bWVzdGFtcCAnMjAwMi0xMi0yNSAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNl bGVjdCB0aW1lc3RhbXAgJzIwMDItMTItMjUgMDg6NDU6MDAnICBBUyB2b24s IHRpbWVzdGFtcCAnMjAwMi0xMi0yNSAwOTozMDowMCcgQVMgYmlzIHVuaW9u IHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTItMzAgMDg6MDA6MDAnICBBUyB2 b24sIHRpbWVzdGFtcCAnMjAwMi0xMi0zMCAwODo0NTowMCcgQVMgYmlzIHVu aW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDItMTItMzAgMDg6NDU6MDAnICBB UyB2b24sIHRpbWVzdGFtcCAnMjAwMi0xMi0zMCAwOTozMDowMCcgQVMgYmlz IHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEtMDEgMDg6MDA6MDAn ICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0wMSAwODo0NTowMCcgQVMg YmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEtMDEgMDg6NDU6 MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0wMSAwOTozMDowMCcg QVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEtMDYgMDg6 MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0wNiAwODo0NTow MCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEtMDYg MDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0wNiAwOToz MDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEt MDggMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0wOCAw ODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMt MDEtMDggMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0w OCAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIw MDMtMDEtMTMgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0w MS0xMyAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAg JzIwMDMtMDEtMTMgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAw My0wMS0xMyAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3Rh bXAgJzIwMDMtMDEtMTUgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAn MjAwMy0wMS0xNSAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1l c3RhbXAgJzIwMDMtMDEtMTUgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFt cCAnMjAwMy0wMS0xNSAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0 aW1lc3RhbXAgJzIwMDMtMDEtMjAgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVz dGFtcCAnMjAwMy0wMS0yMCAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVj dCB0aW1lc3RhbXAgJzIwMDMtMDEtMjAgMDg6NDU6MDAnICBBUyB2b24sIHRp bWVzdGFtcCAnMjAwMy0wMS0yMCAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNl bGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEtMjIgMDg6MDA6MDAnICBBUyB2b24s IHRpbWVzdGFtcCAnMjAwMy0wMS0yMiAwODo0NTowMCcgQVMgYmlzIHVuaW9u IHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEtMjIgMDg6NDU6MDAnICBBUyB2 b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0yMiAwOTozMDowMCcgQVMgYmlzIHVu aW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEtMjcgMDg6MDA6MDAnICBB UyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0yNyAwODo0NTowMCcgQVMgYmlz IHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEtMjcgMDg6NDU6MDAn ICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0yNyAwOTozMDowMCcgQVMg YmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEtMjkgMDg6MDA6 MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0yOSAwODo0NTowMCcg QVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDEtMjkgMDg6 NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMS0yOSAwOTozMDow MCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDItMDMg MDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMi0wMyAwODo0 NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDIt MDMgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMi0wMyAw OTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMt MDItMDUgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMi0w NSAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIw MDMtMDItMDUgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0w Mi0wNSAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAg JzIwMDMtMDItMTAgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAw My0wMi0xMCAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3Rh bXAgJzIwMDMtMDItMTAgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAn MjAwMy0wMi0xMCAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1l c3RhbXAgJzIwMDMtMDItMTIgMDg6MDA6MDAnICBBUyB2b24sIHRpbWVzdGFt cCAnMjAwMy0wMi0xMiAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0 aW1lc3RhbXAgJzIwMDMtMDItMTIgMDg6NDU6MDAnICBBUyB2b24sIHRpbWVz dGFtcCAnMjAwMy0wMi0xMiAwOTozMDowMCcgQVMgYmlzIHVuaW9uIHNlbGVj dCB0aW1lc3RhbXAgJzIwMDMtMDItMTcgMDg6MDA6MDAnICBBUyB2b24sIHRp bWVzdGFtcCAnMjAwMy0wMi0xNyAwODo0NTowMCcgQVMgYmlzIHVuaW9uIHNl bGVjdCB0aW1lc3RhbXAgJzIwMDMtMDItMTcgMDg6NDU6MDAnICBBUyB2b24s IHRpbWVzdGFtcCAnMjAwMy0wMi0xNyAwOTozMDowMCcgQVMgYmlzIHVuaW9u IHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDItMTkgMDg6MDA6MDAnICBBUyB2 b24sIHRpbWVzdGFtcCAnMjAwMy0wMi0xOSAwODo0NTowMCcgQVMgYmlzIHVu aW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDItMTkgMDg6NDU6MDAnICBB UyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMi0xOSAwOTozMDowMCcgQVMgYmlz IHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDItMjQgMDg6MDA6MDAn ICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMi0yNCAwODo0NTowMCcgQVMg YmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDItMjQgMDg6NDU6 MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMi0yNCAwOTozMDowMCcg QVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDItMjYgMDg6 MDA6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMi0yNiAwODo0NTow MCcgQVMgYmlzIHVuaW9uIHNlbGVjdCB0aW1lc3RhbXAgJzIwMDMtMDItMjYg MDg6NDU6MDAnICBBUyB2b24sIHRpbWVzdGFtcCAnMjAwMy0wMi0yNiAwOToz MDowMCcgQVMgYmlzKSBhcyB0dXJudXMpIGFzIGJlbGVndGUpIGVuZCBhcyB2 ZXJmdWVnYmFyIGZyb20gcmVzc291cmNlbiBqb2luIHJhZXVtZSB1c2luZyAo cmVzc291cmNlX2lkKSBqb2luIGdlYmFldWRlIHVzaW5nIChnZWJhZXVkZV9p ZCkgam9pbiBzdGFuZG9ydGUgdXNpbmcgKHN0YW5kb3J0X2lkKSBqb2luIHJh dW10eXBlbiB1c2luZyAocmF1bXR5cF9pZCkpIGFzIHZlcmZ1ZWdiYXJlX3Jl c3NvdXJjZW4gd2hlcmUgdmVyZnVlZ2JhcmVfcmVzc291cmNlbi52ZXJmdWVn YmFyID4gMDsNCg0K --=-NL5Uz/kBu2rRLkVxTUTa--