Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVEY6-0005SM-NJ for pgsql-performance@arkaria.postgresql.org; Wed, 12 Jul 2017 10:07:15 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1dVEY4-0000hX-LE for pgsql-performance@arkaria.postgresql.org; Wed, 12 Jul 2017 10:07:12 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1dVEWD-00060q-Kd for pgsql-performance@postgresql.org; Wed, 12 Jul 2017 10:05:18 +0000 Received: from mail-qk0-x236.google.com ([2607:f8b0:400d:c09::236]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1dVEW8-0000oR-IR for pgsql-performance@postgresql.org; Wed, 12 Jul 2017 10:05:16 +0000 Received: by mail-qk0-x236.google.com with SMTP id v17so9257479qka.3 for ; Wed, 12 Jul 2017 03:05:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=qu6C1v6J4Bs4usIWyRPtFCmfJPsw8O7VeSeKuwREwf0=; b=ozRlVcsuuZNBS7oJ4af+V97KZJHNJtiRTO59jCvnprUMJJDxtQlAAvo7xN5QmqD/bS AV4Y65ihWnb1M19kglZoh4W2fzqnhsTKe8+IGEJZIHEi4ZVTsV8Pr2FAp3Giglk848Os NamfhzJVmf+LHW/ZCXAeDhoIGIkvhIrkMEjJOiDOvNnV4XQ9/WI+iPmIyX1SFtGrWTAI E9M8QcWVOAuwq4oolFxIK9lWc8EMVc0SgkwaMtOOa0FrRIu2FeARixNRmD/WaAa1HFtb 9x6u5yYTj5a5ZJZu8V2buz9ejXw5agtS2sFVG/dY3gI2ZX3DA7hNk4FAELqu3hkldJUt tOJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=qu6C1v6J4Bs4usIWyRPtFCmfJPsw8O7VeSeKuwREwf0=; b=LssAqg0U09SyhkYGLd8jDxvT4SiQ6uWsUtYGD7qQVTee8PK2N6CMZmeYUV8oAex+GT p/5Gc1mL8b47ZyjuXFwScdVUK/6ZgYh5GFDTVv3JKFq8wBzBtsI3yxuGGvLZSHcgVw1A ykL/3mVJ4t7g2bdmRGrFPra3FdY0GIrCwaZVgINmtTvuAljijttbPJHv14IVSbVm8alH FvR38xGACHxmg4O0JaEF+Ss/d6z3B+fbqe/pPItVwgB1csWR8t3K62zL3AvaKbBXmPBM 6aw9zP68xm5NtArz+0BM2Wk8s6jDMG8pjilNI40GEeIRa/ej4/SK3yrE9IRS42nl2qRw 4Igw== X-Gm-Message-State: AIVw1109d4B8OYkrUBrTAUky2ruH+qo8THEYRiQnsKRvS5D1wjBQDeNr BJsMaFapdgGsgZnht5JxllbZTbWsbw== X-Received: by 10.55.188.69 with SMTP id m66mr5295477qkf.63.1499853910168; Wed, 12 Jul 2017 03:05:10 -0700 (PDT) MIME-Version: 1.0 Received: by 10.12.157.11 with HTTP; Wed, 12 Jul 2017 03:04:49 -0700 (PDT) In-Reply-To: References: From: Charles Nadeau Date: Wed, 12 Jul 2017 12:04:49 +0200 Message-ID: Subject: Re: Very poor read performance, query independent To: Jeff Janes Cc: "pgsql-performance@postgresql.org" Content-Type: multipart/alternative; boundary="94eb2c04315a87dd5a05541bf38b" List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-performance Precedence: bulk Sender: pgsql-performance-owner@postgresql.org --94eb2c04315a87dd5a05541bf38b Content-Type: text/plain; charset="UTF-8" Jeff, Here are the 2 EXPLAINs for one of my simplest query: flows=# SET track_io_timing = on; LOG: duration: 24.101 ms statement: SET track_io_timing = on; SET flows=# explain (analyze, timing off) SELECT DISTINCT flows-# srcaddr, flows-# dstaddr, flows-# dstport, flows-# COUNT(*) AS conversation, flows-# SUM(doctets) / 1024 / 1024 AS mbytes flows-# FROM flows-# flowscompact, flows-# mynetworks flows-# WHERE flows-# mynetworks.ipaddr >>= flowscompact.srcaddr flows-# AND dstaddr IN flows-# ( flows(# SELECT flows(# dstaddr flows(# FROM flows(# dstexterne flows(# ) flows-# GROUP BY flows-# srcaddr, flows-# dstaddr, flows-# dstport flows-# ORDER BY flows-# mbytes DESC LIMIT 50; LOG: temporary file: path "pg_tblspc/36238/PG_9.6_201608131/pgsql_tmp/pgsql_tmp14573.3", size 1073741824 LOG: temporary file: path "pg_tblspc/36238/PG_9.6_201608131/pgsql_tmp/pgsql_tmp14573.4", size 1073741824 LOG: temporary file: path "pg_tblspc/36238/PG_9.6_201608131/pgsql_tmp/pgsql_tmp14573.5", size 639696896 LOG: duration: 2632108.352 ms statement: explain (analyze, timing off) SELECT DISTINCT srcaddr, dstaddr, dstport, COUNT(*) AS conversation, SUM(doctets) / 1024 / 1024 AS mbytes FROM flowscompact, mynetworks WHERE mynetworks.ipaddr >>= flowscompact.srcaddr AND dstaddr IN ( SELECT dstaddr FROM dstexterne ) GROUP BY srcaddr, dstaddr, dstport ORDER BY mbytes DESC LIMIT 50; QUERY PLAN --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Limit (cost=37762321.83..37762321.98 rows=50 width=52) (actual rows=50 loops=1) -> Unique (cost=37762321.83..37769053.57 rows=2243913 width=52) (actual rows=50 loops=1) -> Sort (cost=37762321.83..37763443.79 rows=2243913 width=52) (actual rows=50 loops=1) Sort Key: (((sum(flows.doctets) / '1024'::numeric) / '1024'::numeric)) DESC, flows.srcaddr, flows.dstaddr, flows.dstport, (count(*)) Sort Method: quicksort Memory: 563150kB -> GroupAggregate (cost=37698151.34..37714980.68 rows=2243913 width=52) (actual rows=4691734 loops=1) Group Key: flows.srcaddr, flows.dstaddr, flows.dstport -> Sort (cost=37698151.34..37699273.29 rows=2243913 width=20) (actual rows=81896988 loops=1) Sort Key: flows.srcaddr, flows.dstaddr, flows.dstport Sort Method: external merge Disk: 2721856kB -> Gather (cost=19463936.00..37650810.19 rows=2243913 width=20) (actual rows=81896988 loops=1) Workers Planned: 9 Workers Launched: 9 -> Hash Semi Join (cost=19462936.00..37622883.23 rows=249324 width=20) (actual rows=8189699 loops=10) Hash Cond: (flows.dstaddr = flows_1.dstaddr) -> Nested Loop (cost=0.03..18159012.30 rows=249324 width=20) (actual rows=45499045 loops=10) -> Parallel Seq Scan on flows (cost=0.00..16039759.79 rows=62330930 width=20) (actual rows=54155970 loops=10) -> Index Only Scan using mynetworks_ipaddr_idx on mynetworks (cost=0.03..0.03 rows=1 width=8) (actual rows=1 loops=541559704) Index Cond: (ipaddr >>= (flows.srcaddr)::ip4r) Heap Fetches: 48679396 -> Hash (cost=19462896.74..19462896.74 rows=11210 width=4) (actual rows=3099798 loops=10) Buckets: 4194304 (originally 16384) Batches: 1 (originally 1) Memory Usage: 141746kB -> HashAggregate (cost=19462829.48..19462863.11 rows=11210 width=4) (actual rows=3099798 loops=10) Group Key: flows_1.dstaddr -> Nested Loop Anti Join (cost=0.12..19182620.78 rows=560417390 width=4) (actual rows=113420172 loops=10) Join Filter: (mynetworks_1.ipaddr >> (flows_1.dstaddr)::ip4r) Rows Removed by Join Filter: 453681377 -> Index Only Scan using flows_srcaddr_dstaddr_idx on flows flows_1 (cost=0.12..9091067.70 rows=560978368 width=4) (actual rows=541559704 loops=10) Heap Fetches: 91 -> Materialize (cost=0.00..1.02 rows=4 width=8) (actual rows=2 loops=5415597040) -> Seq Scan on mynetworks mynetworks_1 (cost=0.00..1.01 rows=4 width=8) (actual rows=4 loops=10) Planning time: 62.066 ms Execution time: 2631923.716 ms (33 rows) flows=# explain (analyze, buffers) SELECT DISTINCT flows-# srcaddr, flows-# dstaddr, flows-# dstport, flows-# COUNT(*) AS conversation, flows-# SUM(doctets) / 1024 / 1024 AS mbytes flows-# FROM flows-# flowscompact, flows-# mynetworks flows-# WHERE flows-# mynetworks.ipaddr >>= flowscompact.srcaddr flows-# AND dstaddr IN flows-# ( flows(# SELECT flows(# dstaddr flows(# FROM flows(# dstexterne flows(# ) flows-# GROUP BY flows-# srcaddr, flows-# dstaddr, flows-# dstport flows-# ORDER BY flows-# mbytes DESC LIMIT 50; LOG: temporary file: path "pg_tblspc/36238/PG_9.6_201608131/pgsql_tmp/pgsql_tmp14573.6", size 1073741824 LOG: temporary file: path "pg_tblspc/36238/PG_9.6_201608131/pgsql_tmp/pgsql_tmp14573.7", size 1073741824 LOG: temporary file: path "pg_tblspc/36238/PG_9.6_201608131/pgsql_tmp/pgsql_tmp14573.8", size 639696896 LOG: duration: 2765020.327 ms statement: explain (analyze, buffers) SELECT DISTINCT srcaddr, dstaddr, dstport, COUNT(*) AS conversation, SUM(doctets) / 1024 / 1024 AS mbytes FROM flowscompact, mynetworks WHERE mynetworks.ipaddr >>= flowscompact.srcaddr AND dstaddr IN ( SELECT dstaddr FROM dstexterne ) GROUP BY srcaddr, dstaddr, dstport ORDER BY mbytes DESC LIMIT 50; QUERY PLAN -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Limit (cost=37762321.83..37762321.98 rows=50 width=52) (actual time=2764548.863..2764548.891 rows=50 loops=1) Buffers: shared hit=1116590560 read=15851133, temp read=340244 written=340244 I/O Timings: read=5323746.860 -> Unique (cost=37762321.83..37769053.57 rows=2243913 width=52) (actual time=2764548.861..2764548.882 rows=50 loops=1) Buffers: shared hit=1116590560 read=15851133, temp read=340244 written=340244 I/O Timings: read=5323746.860 -> Sort (cost=37762321.83..37763443.79 rows=2243913 width=52) (actual time=2764548.859..2764548.872 rows=50 loops=1) Sort Key: (((sum(flows.doctets) / '1024'::numeric) / '1024'::numeric)) DESC, flows.srcaddr, flows.dstaddr, flows.dstport, (count(*)) Sort Method: quicksort Memory: 563150kB Buffers: shared hit=1116590560 read=15851133, temp read=340244 written=340244 I/O Timings: read=5323746.860 -> GroupAggregate (cost=37698151.34..37714980.68 rows=2243913 width=52) (actual time=2696721.610..2752109.551 rows=4691734 loops=1) Group Key: flows.srcaddr, flows.dstaddr, flows.dstport Buffers: shared hit=1116590560 read=15851133, temp read=340244 written=340244 I/O Timings: read=5323746.860 -> Sort (cost=37698151.34..37699273.29 rows=2243913 width=20) (actual time=2696711.428..2732781.705 rows=81896988 loops=1) Sort Key: flows.srcaddr, flows.dstaddr, flows.dstport Sort Method: external merge Disk: 2721856kB Buffers: shared hit=1116590560 read=15851133, temp read=340244 written=340244 I/O Timings: read=5323746.860 -> Gather (cost=19463936.00..37650810.19 rows=2243913 width=20) (actual time=1777219.713..2590530.887 rows=81896988 loops=1) Workers Planned: 9 Workers Launched: 9 Buffers: shared hit=1116590559 read=15851133 I/O Timings: read=5323746.860 -> Hash Semi Join (cost=19462936.00..37622883.23 rows=249324 width=20) (actual time=1847579.360..2602039.780 rows=8189699 loops=10) Hash Cond: (flows.dstaddr = flows_1.dstaddr) Buffers: shared hit=1116588309 read=15851133 I/O Timings: read=5323746.860 -> Nested Loop (cost=0.03..18159012.30 rows=249324 width=20) (actual time=1.562..736556.583 rows=45499045 loops=10) Buffers: shared hit=996551813 read=15851133 I/O Timings: read=5323746.860 -> Parallel Seq Scan on flows (cost=0.00..16039759.79 rows=62330930 width=20) (actual time=1.506..547485.066 rows=54155970 loops=10) Buffers: shared hit=1634 read=15851133 I/O Timings: read=5323746.860 -> Index Only Scan using mynetworks_ipaddr_idx on mynetworks (cost=0.03..0.03 rows=1 width=8) (actual time=0.002..0.002 rows=1 loops=541559704) Index Cond: (ipaddr >>= (flows.srcaddr)::ip4r) Heap Fetches: 59971474 Buffers: shared hit=996550152 -> Hash (cost=19462896.74..19462896.74 rows=11210 width=4) (actual time=1847228.894..1847228.894 rows=3099798 loops=10) Buckets: 4194304 (originally 16384) Batches: 1 (originally 1) Memory Usage: 141746kB Buffers: shared hit=120036496 -> HashAggregate (cost=19462829.48..19462863.11 rows=11210 width=4) (actual time=1230049.015..1845955.764 rows=3099798 loops=10) Group Key: flows_1.dstaddr Buffers: shared hit=120036496 -> Nested Loop Anti Join (cost=0.12..19182620.78 rows=560417390 width=4) (actual time=0.084..831832.333 rows=113420172 loops=10) Join Filter: (mynetworks_1.ipaddr >> (flows_1.dstaddr)::ip4r) Rows Removed by Join Filter: 453681377 Buffers: shared hit=120036496 -> Index Only Scan using flows_srcaddr_dstaddr_idx on flows flows_1 (cost=0.12..9091067.70 rows=560978368 width=4) (actual time=0.027..113052.437 rows=541559704 loops=10) Heap Fetches: 91 Buffers: shared hit=120036459 -> Materialize (cost=0.00..1.02 rows=4 width=8) (actual time=0.000..0.000 rows=2 loops=5415597040) Buffers: shared hit=10 -> Seq Scan on mynetworks mynetworks_1 (cost=0.00..1.01 rows=4 width=8) (actual time=0.007..0.008 rows=4 loops=10) Buffers: shared hit=10 Planning time: 6.689 ms Execution time: 2764860.853 ms (58 rows) Regarding "Also using dstat I can see that iowait time is at about 25%", I don't think the server was doing anything else. If it is important, I can repeat the benchmarks. Thanks! Charles On Wed, Jul 12, 2017 at 2:39 AM, Jeff Janes wrote: > On Tue, Jul 11, 2017 at 4:02 AM, Charles Nadeau > wrote: > >> Jeff, >> >> I used fio in a quick benchmarking script inspired by >> https://smcleod.net/benchmarking-io/: >> >> #!/bin/bash >> #Random throughput >> echo "Random throughput" >> sync >> fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 >> --name=test --filename=test --bs=4M --iodepth=256 --size=10G >> --readwrite=randread --ramp_time=4 >> #Random IOPS >> echo "Random IOPS" >> sync >> fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 >> --name=test --filename=test --bs=4k --iodepth=256 --size=4G >> --readwrite=randread --ramp_time=4 >> #Sequential throughput >> echo "Sequential throughput" >> sync >> fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 >> --name=test --filename=test --bs=4M --iodepth=256 --size=10G >> --readwrite=read --ramp_time=4 >> #Sequential IOPS >> echo "Sequential IOPS" >> sync >> fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 >> --name=test --filename=test --bs=4k --iodepth=256 --size=4G >> --readwrite=read --ramp_time=4 >> >> > I don't think any of those are directly relevant to PostgreSQL, as it > doesn't use direct IO, doesn't use libaio, and is rarely going to get > anywhere near 256 iodepth. So the best they can do is put a theoretical > ceiling on the performance. Also, random IO with a 4MB stride doesn't make > any sense from a PostgreSQL perspective. > > > >> >> Performing the test you suggested, I get 128.5MB/s. Monitoring the test, >> I find that the throughput is constant from start to finish and that the >> iowait is also constant at 5%: >> > > I would have expected it to do better than that. Maybe you increase the > kernel readahead setting. I've found the default to be much too small. > But it doesn't make much difference to you, as you appear to be doing > random IO in your queries, not sequential. > > >> Could you suggest another way to benchmark random reads? >> > > Your 1100 IOPS times 8kb block size gives about 8MB/s of throughput, which > is close to what you report. So I think I'd would instead focus on tuning > your actual queries. You say the problem is not query-dependent, but I > think that that just means all the queries you looked at are similar. If > you looked at a query that can't use indexes, like count(unindexed_column) > from biggest_table; you would find it doing much more IO than 4MB/s. > > Can you pick the simplest query you actually care about, and post both an > "explain (analyze, timing off)" and an "explain (analyze, buffers)" for it? > (Preferably turning "track_io_timing" on first). > > One other question I had, you said you had "2x Intel Xeon E5550", which > should be 8 CPU (or 16, if the hyperthreads > are reported as separate CPUs). But you also said: "Also using dstat I > can see that iowait time is at about 25%". Usually if there is only one > thing going on on the server, then IOWAIT won't be more than reciprocal of > #CPU. Is the server busy doing other stuff at the same time you are > benchmarking it? > > Cheers, > > Jeff > -- Charles Nadeau Ph.D. http://charlesnadeau.blogspot.com/ --94eb2c04315a87dd5a05541bf38b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+PGRpdj5KZWZmLDwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+SGVyZSBh cmUgdGhlIDIgRVhQTEFJTnMgZm9yIG9uZSBvZiBteSBzaW1wbGVzdCBxdWVyeTo8L2Rpdj48ZGl2 Pjxicj48L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luOjAgMCAwIDQwcHg7Ym9yZGVyOm5v bmU7cGFkZGluZzowcHgiPjxkaXY+Zmxvd3M9IyBTRVQgdHJhY2tfaW9fdGltaW5nID0gb247PC9k aXY+PGRpdj5MT0c6IMKgZHVyYXRpb246IDI0LjEwMSBtcyDCoHN0YXRlbWVudDogU0VUIHRyYWNr X2lvX3RpbWluZyA9IG9uOzwvZGl2PjxkaXY+U0VUPC9kaXY+PGRpdj5mbG93cz0jIGV4cGxhaW4g KGFuYWx5emUsIHRpbWluZyBvZmYpIFNFTEVDVCBESVNUSU5DVDwvZGl2PjxkaXY+Zmxvd3MtIyDC oCDCoHNyY2FkZHIsPC9kaXY+PGRpdj5mbG93cy0jIMKgIMKgZHN0YWRkciw8L2Rpdj48ZGl2PmZs b3dzLSMgwqAgwqBkc3Rwb3J0LDwvZGl2PjxkaXY+Zmxvd3MtIyDCoCDCoENPVU5UKCopIEFTIGNv bnZlcnNhdGlvbiw8L2Rpdj48ZGl2PmZsb3dzLSMgwqAgwqBTVU0oZG9jdGV0cykgLyAxMDI0IC8g MTAyNCBBUyBtYnl0ZXPCoDwvZGl2PjxkaXY+Zmxvd3MtIyBGUk9NPC9kaXY+PGRpdj5mbG93cy0j IMKgIMKgZmxvd3Njb21wYWN0LDwvZGl2PjxkaXY+Zmxvd3MtIyDCoCDCoG15bmV0d29ya3PCoDwv ZGl2PjxkaXY+Zmxvd3MtIyBXSEVSRTwvZGl2PjxkaXY+Zmxvd3MtIyDCoCDCoG15bmV0d29ya3Mu aXBhZGRyICZndDsmZ3Q7PSBmbG93c2NvbXBhY3Quc3JjYWRkcsKgPC9kaXY+PGRpdj5mbG93cy0j IMKgIMKgQU5EIGRzdGFkZHIgSU7CoDwvZGl2PjxkaXY+Zmxvd3MtIyDCoCDCoCg8L2Rpdj48ZGl2 PmZsb3dzKCMgwqAgwqAgwqAgU0VMRUNUPC9kaXY+PGRpdj5mbG93cygjIMKgIMKgIMKgIMKgIMKg ZHN0YWRkcsKgPC9kaXY+PGRpdj5mbG93cygjIMKgIMKgIMKgIEZST008L2Rpdj48ZGl2PmZsb3dz KCMgwqAgwqAgwqAgwqAgwqBkc3RleHRlcm5lPC9kaXY+PGRpdj5mbG93cygjIMKgIMKgKTwvZGl2 PjxkaXY+Zmxvd3MtIyBHUk9VUCBCWTwvZGl2PjxkaXY+Zmxvd3MtIyDCoCDCoHNyY2FkZHIsPC9k aXY+PGRpdj5mbG93cy0jIMKgIMKgZHN0YWRkciw8L2Rpdj48ZGl2PmZsb3dzLSMgwqAgwqBkc3Rw b3J0wqA8L2Rpdj48ZGl2PmZsb3dzLSMgT1JERVIgQlk8L2Rpdj48ZGl2PmZsb3dzLSMgwqAgwqBt Ynl0ZXMgREVTQyBMSU1JVCA1MDs8L2Rpdj48ZGl2PkxPRzogwqB0ZW1wb3JhcnkgZmlsZTogcGF0 aCAmcXVvdDtwZ190YmxzcGMvMzYyMzgvUEdfOS42XzIwMTYwODEzMS9wZ3NxbF90bXAvcGdzcWxf dG1wMTQ1NzMuMyZxdW90Oywgc2l6ZSAxMDczNzQxODI0PC9kaXY+PGRpdj5MT0c6IMKgdGVtcG9y YXJ5IGZpbGU6IHBhdGggJnF1b3Q7cGdfdGJsc3BjLzM2MjM4L1BHXzkuNl8yMDE2MDgxMzEvcGdz cWxfdG1wL3Bnc3FsX3RtcDE0NTczLjQmcXVvdDssIHNpemUgMTA3Mzc0MTgyNDwvZGl2PjxkaXY+ TE9HOiDCoHRlbXBvcmFyeSBmaWxlOiBwYXRoICZxdW90O3BnX3RibHNwYy8zNjIzOC9QR185LjZf MjAxNjA4MTMxL3Bnc3FsX3RtcC9wZ3NxbF90bXAxNDU3My41JnF1b3Q7LCBzaXplIDYzOTY5Njg5 NjwvZGl2PjxkaXY+TE9HOiDCoGR1cmF0aW9uOiAyNjMyMTA4LjM1MiBtcyDCoHN0YXRlbWVudDog ZXhwbGFpbiAoYW5hbHl6ZSwgdGltaW5nIG9mZikgU0VMRUNUIERJU1RJTkNUPC9kaXY+PGRpdj7C oCDCoHNyY2FkZHIsPC9kaXY+PGRpdj7CoCDCoGRzdGFkZHIsPC9kaXY+PGRpdj7CoCDCoGRzdHBv cnQsPC9kaXY+PGRpdj7CoCDCoENPVU5UKCopIEFTIGNvbnZlcnNhdGlvbiw8L2Rpdj48ZGl2PsKg IMKgU1VNKGRvY3RldHMpIC8gMTAyNCAvIDEwMjQgQVMgbWJ5dGVzwqA8L2Rpdj48ZGl2PkZST008 L2Rpdj48ZGl2PsKgIMKgZmxvd3Njb21wYWN0LDwvZGl2PjxkaXY+wqAgwqBteW5ldHdvcmtzwqA8 L2Rpdj48ZGl2PldIRVJFPC9kaXY+PGRpdj7CoCDCoG15bmV0d29ya3MuaXBhZGRyICZndDsmZ3Q7 PSBmbG93c2NvbXBhY3Quc3JjYWRkcsKgPC9kaXY+PGRpdj7CoCDCoEFORCBkc3RhZGRyIElOwqA8 L2Rpdj48ZGl2PsKgIMKgKDwvZGl2PjxkaXY+wqAgwqAgwqAgU0VMRUNUPC9kaXY+PGRpdj7CoCDC oCDCoCDCoCDCoGRzdGFkZHLCoDwvZGl2PjxkaXY+wqAgwqAgwqAgRlJPTTwvZGl2PjxkaXY+wqAg wqAgwqAgwqAgwqBkc3RleHRlcm5lPC9kaXY+PGRpdj7CoCDCoCk8L2Rpdj48ZGl2PkdST1VQIEJZ PC9kaXY+PGRpdj7CoCDCoHNyY2FkZHIsPC9kaXY+PGRpdj7CoCDCoGRzdGFkZHIsPC9kaXY+PGRp dj7CoCDCoGRzdHBvcnTCoDwvZGl2PjxkaXY+T1JERVIgQlk8L2Rpdj48ZGl2PsKgIMKgbWJ5dGVz IERFU0MgTElNSVQgNTA7PC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCBRVUVSWSBQTEFOIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqA8L2Rpdj48ZGl2 Pi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwvZGl2PjxkaXY+wqBMaW1pdCDC oChjb3N0PTM3NzYyMzIxLjgzLi4zNzc2MjMyMS45OCByb3dzPTUwIHdpZHRoPTUyKSAoYWN0dWFs IHJvd3M9NTAgbG9vcHM9MSk8L2Rpdj48ZGl2PsKgIMKgLSZndDsgwqBVbmlxdWUgwqAoY29zdD0z Nzc2MjMyMS44My4uMzc3NjkwNTMuNTcgcm93cz0yMjQzOTEzIHdpZHRoPTUyKSAoYWN0dWFsIHJv d3M9NTAgbG9vcHM9MSk8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgLSZndDsgwqBTb3J0IMKgKGNv c3Q9Mzc3NjIzMjEuODMuLjM3NzYzNDQzLjc5IHJvd3M9MjI0MzkxMyB3aWR0aD01MikgKGFjdHVh bCByb3dzPTUwIGxvb3BzPTEpPC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFNvcnQg S2V5OiAoKChzdW0oZmxvd3MuZG9jdGV0cykgLyAmIzM5OzEwMjQmIzM5Ozo6bnVtZXJpYykgLyAm IzM5OzEwMjQmIzM5Ozo6bnVtZXJpYykpIERFU0MsIGZsb3dzLnNyY2FkZHIsIGZsb3dzLmRzdGFk ZHIsIGZsb3dzLmRzdHBvcnQsIChjb3VudCgqKSk8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgU29ydCBNZXRob2Q6IHF1aWNrc29ydCDCoE1lbW9yeTogNTYzMTUwa0I8L2Rpdj48ZGl2 PsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgLSZndDsgwqBHcm91cEFnZ3JlZ2F0ZSDCoChjb3N0PTM3 Njk4MTUxLjM0Li4zNzcxNDk4MC42OCByb3dzPTIyNDM5MTMgd2lkdGg9NTIpIChhY3R1YWwgcm93 cz00NjkxNzM0IGxvb3BzPTEpPC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoEdyb3VwIEtleTogZmxvd3Muc3JjYWRkciwgZmxvd3MuZHN0YWRkciwgZmxvd3MuZHN0cG9y dDwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAtJmd0OyDCoFNvcnQg wqAoY29zdD0zNzY5ODE1MS4zNC4uMzc2OTkyNzMuMjkgcm93cz0yMjQzOTEzIHdpZHRoPTIwKSAo YWN0dWFsIHJvd3M9ODE4OTY5ODggbG9vcHM9MSk8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgU29ydCBLZXk6IGZsb3dzLnNyY2FkZHIsIGZsb3dzLmRz dGFkZHIsIGZsb3dzLmRzdHBvcnQ8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgU29ydCBNZXRob2Q6IGV4dGVybmFsIG1lcmdlIMKgRGlzazogMjcyMTg1 NmtCPC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoC0m Z3Q7IMKgR2F0aGVyIMKgKGNvc3Q9MTk0NjM5MzYuMDAuLjM3NjUwODEwLjE5IHJvd3M9MjI0Mzkx MyB3aWR0aD0yMCkgKGFjdHVhbCByb3dzPTgxODk2OTg4IGxvb3BzPTEpPC9kaXY+PGRpdj7CoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFdvcmtlcnMgUGxh bm5lZDogOTwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqBXb3JrZXJzIExhdW5jaGVkOiA5PC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoC0mZ3Q7IMKgSGFzaCBTZW1pIEpvaW4g wqAoY29zdD0xOTQ2MjkzNi4wMC4uMzc2MjI4ODMuMjMgcm93cz0yNDkzMjQgd2lkdGg9MjApIChh Y3R1YWwgcm93cz04MTg5Njk5IGxvb3BzPTEwKTwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBIYXNoIENvbmQ6IChmbG93 cy5kc3RhZGRyID0gZmxvd3NfMS5kc3RhZGRyKTwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAtJmd0OyDCoE5lc3RlZCBM b29wIMKgKGNvc3Q9MC4wMy4uMTgxNTkwMTIuMzAgcm93cz0yNDkzMjQgd2lkdGg9MjApIChhY3R1 YWwgcm93cz00NTQ5OTA0NSBsb29wcz0xMCk8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgLSZndDsgwqBQ YXJhbGxlbCBTZXEgU2NhbiBvbiBmbG93cyDCoChjb3N0PTAuMDAuLjE2MDM5NzU5Ljc5IHJvd3M9 NjIzMzA5MzAgd2lkdGg9MjApIChhY3R1YWwgcm93cz01NDE1NTk3MCBsb29wcz0xMCk8L2Rpdj48 ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgLSZndDsgwqBJbmRleCBPbmx5IFNjYW4gdXNpbmcgbXluZXR3b3Jrc19p cGFkZHJfaWR4IG9uIG15bmV0d29ya3MgwqAoY29zdD0wLjAzLi4wLjAzIHJvd3M9MSB3aWR0aD04 KSAoYWN0dWFsIHJvd3M9MSBsb29wcz01NDE1NTk3MDQpPC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoEluZGV4IENvbmQ6IChpcGFkZHIgJmd0OyZndDs9IChmbG93cy5zcmNhZGRyKTo6aXA0 cik8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgSGVhcCBGZXRjaGVzOiA0ODY3OTM5Njwv ZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAtJmd0OyDCoEhhc2ggwqAoY29zdD0xOTQ2Mjg5Ni43NC4uMTk0NjI4OTYuNzQg cm93cz0xMTIxMCB3aWR0aD00KSAoYWN0dWFsIHJvd3M9MzA5OTc5OCBsb29wcz0xMCk8L2Rpdj48 ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgQnVja2V0czogNDE5NDMwNCAob3JpZ2luYWxseSAxNjM4NCkgwqBCYXRj aGVzOiAxIChvcmlnaW5hbGx5IDEpIMKgTWVtb3J5IFVzYWdlOiAxNDE3NDZrQjwvZGl2PjxkaXY+ wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAtJmd0OyDCoEhhc2hBZ2dyZWdhdGUgwqAoY29zdD0xOTQ2MjgyOS40OC4uMTk0 NjI4NjMuMTEgcm93cz0xMTIxMCB3aWR0aD00KSAoYWN0dWFsIHJvd3M9MzA5OTc5OCBsb29wcz0x MCk8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgR3JvdXAgS2V5OiBmbG93c18xLmRzdGFk ZHI8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgLSZndDsgwqBOZXN0ZWQgTG9vcCBBbnRp IEpvaW4gwqAoY29zdD0wLjEyLi4xOTE4MjYyMC43OCByb3dzPTU2MDQxNzM5MCB3aWR0aD00KSAo YWN0dWFsIHJvd3M9MTEzNDIwMTcyIGxvb3BzPTEwKTwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqBKb2luIEZpbHRlcjogKG15bmV0d29ya3NfMS5pcGFkZHIgJmd0OyZndDsg KGZsb3dzXzEuZHN0YWRkcik6OmlwNHIpPC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoFJvd3MgUmVtb3ZlZCBieSBKb2luIEZpbHRlcjogNDUzNjgxMzc3PC9kaXY+PGRpdj7C oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoC0mZ3Q7IMKgSW5kZXggT25seSBTY2FuIHVzaW5n IGZsb3dzX3NyY2FkZHJfZHN0YWRkcl9pZHggb24gZmxvd3MgZmxvd3NfMSDCoChjb3N0PTAuMTIu LjkwOTEwNjcuNzAgcm93cz01NjA5NzgzNjggd2lkdGg9NCkgKGFjdHVhbCByb3dzPTU0MTU1OTcw NCBsb29wcz0xMCk8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgSGVhcCBGZXRjaGVzOiA5MTwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAtJmd0OyDCoE1hdGVyaWFsaXplIMKgKGNvc3Q9MC4wMC4uMS4wMiByb3dzPTQgd2lkdGg9OCkg KGFjdHVhbCByb3dzPTIgbG9vcHM9NTQxNTU5NzA0MCk8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgLSZndDsgwqBTZXEgU2NhbiBvbiBteW5ldHdvcmtzIG15 bmV0d29ya3NfMSDCoChjb3N0PTAuMDAuLjEuMDEgcm93cz00IHdpZHRoPTgpIChhY3R1YWwgcm93 cz00IGxvb3BzPTEwKTwvZGl2PjxkaXY+wqBQbGFubmluZyB0aW1lOiA2Mi4wNjYgbXM8L2Rpdj48 ZGl2PsKgRXhlY3V0aW9uIHRpbWU6IDI2MzE5MjMuNzE2IG1zPC9kaXY+PGRpdj4oMzMgcm93cyk8 L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PmZsb3dzPSMgZXhwbGFpbiAoYW5hbHl6ZSwgYnVmZmVy cykgU0VMRUNUIERJU1RJTkNUPC9kaXY+PGRpdj5mbG93cy0jIMKgIMKgc3JjYWRkciw8L2Rpdj48 ZGl2PmZsb3dzLSMgwqAgwqBkc3RhZGRyLDwvZGl2PjxkaXY+Zmxvd3MtIyDCoCDCoGRzdHBvcnQs PC9kaXY+PGRpdj5mbG93cy0jIMKgIMKgQ09VTlQoKikgQVMgY29udmVyc2F0aW9uLDwvZGl2Pjxk aXY+Zmxvd3MtIyDCoCDCoFNVTShkb2N0ZXRzKSAvIDEwMjQgLyAxMDI0IEFTIG1ieXRlc8KgPC9k aXY+PGRpdj5mbG93cy0jIEZST008L2Rpdj48ZGl2PmZsb3dzLSMgwqAgwqBmbG93c2NvbXBhY3Qs PC9kaXY+PGRpdj5mbG93cy0jIMKgIMKgbXluZXR3b3Jrc8KgPC9kaXY+PGRpdj5mbG93cy0jIFdI RVJFPC9kaXY+PGRpdj5mbG93cy0jIMKgIMKgbXluZXR3b3Jrcy5pcGFkZHIgJmd0OyZndDs9IGZs b3dzY29tcGFjdC5zcmNhZGRywqA8L2Rpdj48ZGl2PmZsb3dzLSMgwqAgwqBBTkQgZHN0YWRkciBJ TsKgPC9kaXY+PGRpdj5mbG93cy0jIMKgIMKgKDwvZGl2PjxkaXY+Zmxvd3MoIyDCoCDCoCDCoCBT RUxFQ1Q8L2Rpdj48ZGl2PmZsb3dzKCMgwqAgwqAgwqAgwqAgwqBkc3RhZGRywqA8L2Rpdj48ZGl2 PmZsb3dzKCMgwqAgwqAgwqAgRlJPTTwvZGl2PjxkaXY+Zmxvd3MoIyDCoCDCoCDCoCDCoCDCoGRz dGV4dGVybmU8L2Rpdj48ZGl2PmZsb3dzKCMgwqAgwqApPC9kaXY+PGRpdj5mbG93cy0jIEdST1VQ IEJZPC9kaXY+PGRpdj5mbG93cy0jIMKgIMKgc3JjYWRkciw8L2Rpdj48ZGl2PmZsb3dzLSMgwqAg wqBkc3RhZGRyLDwvZGl2PjxkaXY+Zmxvd3MtIyDCoCDCoGRzdHBvcnTCoDwvZGl2PjxkaXY+Zmxv d3MtIyBPUkRFUiBCWTwvZGl2PjxkaXY+Zmxvd3MtIyDCoCDCoG1ieXRlcyBERVNDIExJTUlUIDUw OzwvZGl2PjxkaXY+TE9HOiDCoHRlbXBvcmFyeSBmaWxlOiBwYXRoICZxdW90O3BnX3RibHNwYy8z NjIzOC9QR185LjZfMjAxNjA4MTMxL3Bnc3FsX3RtcC9wZ3NxbF90bXAxNDU3My42JnF1b3Q7LCBz aXplIDEwNzM3NDE4MjQ8L2Rpdj48ZGl2PkxPRzogwqB0ZW1wb3JhcnkgZmlsZTogcGF0aCAmcXVv dDtwZ190YmxzcGMvMzYyMzgvUEdfOS42XzIwMTYwODEzMS9wZ3NxbF90bXAvcGdzcWxfdG1wMTQ1 NzMuNyZxdW90Oywgc2l6ZSAxMDczNzQxODI0PC9kaXY+PGRpdj5MT0c6IMKgdGVtcG9yYXJ5IGZp bGU6IHBhdGggJnF1b3Q7cGdfdGJsc3BjLzM2MjM4L1BHXzkuNl8yMDE2MDgxMzEvcGdzcWxfdG1w L3Bnc3FsX3RtcDE0NTczLjgmcXVvdDssIHNpemUgNjM5Njk2ODk2PC9kaXY+PGRpdj5MT0c6IMKg ZHVyYXRpb246IDI3NjUwMjAuMzI3IG1zIMKgc3RhdGVtZW50OiBleHBsYWluIChhbmFseXplLCBi dWZmZXJzKSBTRUxFQ1QgRElTVElOQ1Q8L2Rpdj48ZGl2PsKgIMKgc3JjYWRkciw8L2Rpdj48ZGl2 PsKgIMKgZHN0YWRkciw8L2Rpdj48ZGl2PsKgIMKgZHN0cG9ydCw8L2Rpdj48ZGl2PsKgIMKgQ09V TlQoKikgQVMgY29udmVyc2F0aW9uLDwvZGl2PjxkaXY+wqAgwqBTVU0oZG9jdGV0cykgLyAxMDI0 IC8gMTAyNCBBUyBtYnl0ZXPCoDwvZGl2PjxkaXY+RlJPTTwvZGl2PjxkaXY+wqAgwqBmbG93c2Nv bXBhY3QsPC9kaXY+PGRpdj7CoCDCoG15bmV0d29ya3PCoDwvZGl2PjxkaXY+V0hFUkU8L2Rpdj48 ZGl2PsKgIMKgbXluZXR3b3Jrcy5pcGFkZHIgJmd0OyZndDs9IGZsb3dzY29tcGFjdC5zcmNhZGRy wqA8L2Rpdj48ZGl2PsKgIMKgQU5EIGRzdGFkZHIgSU7CoDwvZGl2PjxkaXY+wqAgwqAoPC9kaXY+ PGRpdj7CoCDCoCDCoCBTRUxFQ1Q8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgZHN0YWRkcsKgPC9k aXY+PGRpdj7CoCDCoCDCoCBGUk9NPC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoGRzdGV4dGVybmU8 L2Rpdj48ZGl2PsKgIMKgKTwvZGl2PjxkaXY+R1JPVVAgQlk8L2Rpdj48ZGl2PsKgIMKgc3JjYWRk ciw8L2Rpdj48ZGl2PsKgIMKgZHN0YWRkciw8L2Rpdj48ZGl2PsKgIMKgZHN0cG9ydMKgPC9kaXY+ PGRpdj5PUkRFUiBCWTwvZGl2PjxkaXY+wqAgwqBtYnl0ZXMgREVTQyBMSU1JVCA1MDs8L2Rpdj48 ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFFV RVJZIFBMQU4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqA8L2Rpdj48ZGl2Pi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tPC9kaXY+PGRpdj7CoExpbWl0IMKgKGNvc3Q9Mzc3NjIzMjEuODMuLjM3 NzYyMzIxLjk4IHJvd3M9NTAgd2lkdGg9NTIpIChhY3R1YWwgdGltZT0yNzY0NTQ4Ljg2My4uMjc2 NDU0OC44OTEgcm93cz01MCBsb29wcz0xKTwvZGl2PjxkaXY+wqAgwqBCdWZmZXJzOiBzaGFyZWQg aGl0PTExMTY1OTA1NjAgcmVhZD0xNTg1MTEzMywgdGVtcCByZWFkPTM0MDI0NCB3cml0dGVuPTM0 MDI0NDwvZGl2PjxkaXY+wqAgwqBJL08gVGltaW5nczogcmVhZD01MzIzNzQ2Ljg2MDwvZGl2Pjxk aXY+wqAgwqAtJmd0OyDCoFVuaXF1ZSDCoChjb3N0PTM3NzYyMzIxLjgzLi4zNzc2OTA1My41NyBy b3dzPTIyNDM5MTMgd2lkdGg9NTIpIChhY3R1YWwgdGltZT0yNzY0NTQ4Ljg2MS4uMjc2NDU0OC44 ODIgcm93cz01MCBsb29wcz0xKTwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqBCdWZmZXJzOiBzaGFy ZWQgaGl0PTExMTY1OTA1NjAgcmVhZD0xNTg1MTEzMywgdGVtcCByZWFkPTM0MDI0NCB3cml0dGVu PTM0MDI0NDwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqBJL08gVGltaW5nczogcmVhZD01MzIzNzQ2 Ljg2MDwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAtJmd0OyDCoFNvcnQgwqAoY29zdD0zNzc2MjMy MS44My4uMzc3NjM0NDMuNzkgcm93cz0yMjQzOTEzIHdpZHRoPTUyKSAoYWN0dWFsIHRpbWU9Mjc2 NDU0OC44NTkuLjI3NjQ1NDguODcyIHJvd3M9NTAgbG9vcHM9MSk8L2Rpdj48ZGl2PsKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgU29ydCBLZXk6ICgoKHN1bShmbG93cy5kb2N0ZXRzKSAvICYjMzk7MTAy NCYjMzk7OjpudW1lcmljKSAvICYjMzk7MTAyNCYjMzk7OjpudW1lcmljKSkgREVTQywgZmxvd3Mu c3JjYWRkciwgZmxvd3MuZHN0YWRkciwgZmxvd3MuZHN0cG9ydCwgKGNvdW50KCopKTwvZGl2Pjxk aXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBTb3J0IE1ldGhvZDogcXVpY2tzb3J0IMKgTWVtb3J5 OiA1NjMxNTBrQjwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBCdWZmZXJzOiBzaGFy ZWQgaGl0PTExMTY1OTA1NjAgcmVhZD0xNTg1MTEzMywgdGVtcCByZWFkPTM0MDI0NCB3cml0dGVu PTM0MDI0NDwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBJL08gVGltaW5nczogcmVh ZD01MzIzNzQ2Ljg2MDwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAtJmd0OyDCoEdy b3VwQWdncmVnYXRlIMKgKGNvc3Q9Mzc2OTgxNTEuMzQuLjM3NzE0OTgwLjY4IHJvd3M9MjI0Mzkx MyB3aWR0aD01MikgKGFjdHVhbCB0aW1lPTI2OTY3MjEuNjEwLi4yNzUyMTA5LjU1MSByb3dzPTQ2 OTE3MzQgbG9vcHM9MSk8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg R3JvdXAgS2V5OiBmbG93cy5zcmNhZGRyLCBmbG93cy5kc3RhZGRyLCBmbG93cy5kc3Rwb3J0PC9k aXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoEJ1ZmZlcnM6IHNoYXJlZCBo aXQ9MTExNjU5MDU2MCByZWFkPTE1ODUxMTMzLCB0ZW1wIHJlYWQ9MzQwMjQ0IHdyaXR0ZW49MzQw MjQ0PC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoEkvTyBUaW1pbmdz OiByZWFkPTUzMjM3NDYuODYwPC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoC0mZ3Q7IMKgU29ydCDCoChjb3N0PTM3Njk4MTUxLjM0Li4zNzY5OTI3My4yOSByb3dzPTIy NDM5MTMgd2lkdGg9MjApIChhY3R1YWwgdGltZT0yNjk2NzExLjQyOC4uMjczMjc4MS43MDUgcm93 cz04MTg5Njk4OCBsb29wcz0xKTwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqBTb3J0IEtleTogZmxvd3Muc3JjYWRkciwgZmxvd3MuZHN0YWRkciwgZmxv d3MuZHN0cG9ydDwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqBTb3J0IE1ldGhvZDogZXh0ZXJuYWwgbWVyZ2UgwqBEaXNrOiAyNzIxODU2a0I8L2Rpdj48 ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgQnVmZmVyczogc2hh cmVkIGhpdD0xMTE2NTkwNTYwIHJlYWQ9MTU4NTExMzMsIHRlbXAgcmVhZD0zNDAyNDQgd3JpdHRl bj0zNDAyNDQ8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgSS9PIFRpbWluZ3M6IHJlYWQ9NTMyMzc0Ni44NjA8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgLSZndDsgwqBHYXRoZXIgwqAoY29zdD0xOTQ2Mzkz Ni4wMC4uMzc2NTA4MTAuMTkgcm93cz0yMjQzOTEzIHdpZHRoPTIwKSAoYWN0dWFsIHRpbWU9MTc3 NzIxOS43MTMuLjI1OTA1MzAuODg3IHJvd3M9ODE4OTY5ODggbG9vcHM9MSk8L2Rpdj48ZGl2PsKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgV29ya2VycyBQ bGFubmVkOiA5PC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoFdvcmtlcnMgTGF1bmNoZWQ6IDk8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgQnVmZmVyczogc2hhcmVkIGhpdD0x MTE2NTkwNTU5IHJlYWQ9MTU4NTExMzM8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgSS9PIFRpbWluZ3M6IHJlYWQ9NTMyMzc0Ni44NjA8 L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgLSZndDsgwqBIYXNoIFNlbWkgSm9pbiDCoChjb3N0PTE5NDYyOTM2LjAwLi4zNzYyMjg4My4y MyByb3dzPTI0OTMyNCB3aWR0aD0yMCkgKGFjdHVhbCB0aW1lPTE4NDc1NzkuMzYwLi4yNjAyMDM5 Ljc4MCByb3dzPTgxODk2OTkgbG9vcHM9MTApPC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoEhhc2ggQ29uZDogKGZsb3dz LmRzdGFkZHIgPSBmbG93c18xLmRzdGFkZHIpPC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoEJ1ZmZlcnM6IHNoYXJlZCBo aXQ9MTExNjU4ODMwOSByZWFkPTE1ODUxMTMzPC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoEkvTyBUaW1pbmdzOiByZWFk PTUzMjM3NDYuODYwPC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoC0mZ3Q7IMKgTmVzdGVkIExvb3AgwqAoY29zdD0wLjAz Li4xODE1OTAxMi4zMCByb3dzPTI0OTMyNCB3aWR0aD0yMCkgKGFjdHVhbCB0aW1lPTEuNTYyLi43 MzY1NTYuNTgzIHJvd3M9NDU0OTkwNDUgbG9vcHM9MTApPC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoEJ1 ZmZlcnM6IHNoYXJlZCBoaXQ9OTk2NTUxODEzIHJlYWQ9MTU4NTExMzM8L2Rpdj48ZGl2PsKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgSS9PIFRpbWluZ3M6IHJlYWQ9NTMyMzc0Ni44NjA8L2Rpdj48ZGl2PsKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg LSZndDsgwqBQYXJhbGxlbCBTZXEgU2NhbiBvbiBmbG93cyDCoChjb3N0PTAuMDAuLjE2MDM5NzU5 Ljc5IHJvd3M9NjIzMzA5MzAgd2lkdGg9MjApIChhY3R1YWwgdGltZT0xLjUwNi4uNTQ3NDg1LjA2 NiByb3dzPTU0MTU1OTcwIGxvb3BzPTEwKTwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBC dWZmZXJzOiBzaGFyZWQgaGl0PTE2MzQgcmVhZD0xNTg1MTEzMzwvZGl2PjxkaXY+wqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqBJL08gVGltaW5nczogcmVhZD01MzIzNzQ2Ljg2MDwvZGl2PjxkaXY+wqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAtJmd0OyDCoEluZGV4IE9ubHkgU2NhbiB1c2luZyBteW5ldHdvcmtzX2lwYWRkcl9pZHgg b24gbXluZXR3b3JrcyDCoChjb3N0PTAuMDMuLjAuMDMgcm93cz0xIHdpZHRoPTgpIChhY3R1YWwg dGltZT0wLjAwMi4uMC4wMDIgcm93cz0xIGxvb3BzPTU0MTU1OTcwNCk8L2Rpdj48ZGl2PsKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgSW5kZXggQ29uZDogKGlwYWRkciAmZ3Q7Jmd0Oz0gKGZsb3dzLnNyY2Fk ZHIpOjppcDRyKTwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBIZWFwIEZldGNoZXM6IDU5 OTcxNDc0PC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoEJ1ZmZlcnM6IHNoYXJlZCBoaXQ9 OTk2NTUwMTUyPC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoC0mZ3Q7IMKgSGFzaCDCoChjb3N0PTE5NDYyODk2Ljc0Li4x OTQ2Mjg5Ni43NCByb3dzPTExMjEwIHdpZHRoPTQpIChhY3R1YWwgdGltZT0xODQ3MjI4Ljg5NC4u MTg0NzIyOC44OTQgcm93cz0zMDk5Nzk4IGxvb3BzPTEwKTwvZGl2PjxkaXY+wqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBC dWNrZXRzOiA0MTk0MzA0IChvcmlnaW5hbGx5IDE2Mzg0KSDCoEJhdGNoZXM6IDEgKG9yaWdpbmFs bHkgMSkgwqBNZW1vcnkgVXNhZ2U6IDE0MTc0NmtCPC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoEJ1ZmZl cnM6IHNoYXJlZCBoaXQ9MTIwMDM2NDk2PC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoC0mZ3Q7IMKgSGFz aEFnZ3JlZ2F0ZSDCoChjb3N0PTE5NDYyODI5LjQ4Li4xOTQ2Mjg2My4xMSByb3dzPTExMjEwIHdp ZHRoPTQpIChhY3R1YWwgdGltZT0xMjMwMDQ5LjAxNS4uMTg0NTk1NS43NjQgcm93cz0zMDk5Nzk4 IGxvb3BzPTEwKTwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBHcm91cCBLZXk6IGZsb3dz XzEuZHN0YWRkcjwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBCdWZmZXJzOiBzaGFyZWQg aGl0PTEyMDAzNjQ5NjwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAtJmd0OyDCoE5lc3Rl ZCBMb29wIEFudGkgSm9pbiDCoChjb3N0PTAuMTIuLjE5MTgyNjIwLjc4IHJvd3M9NTYwNDE3Mzkw IHdpZHRoPTQpIChhY3R1YWwgdGltZT0wLjA4NC4uODMxODMyLjMzMyByb3dzPTExMzQyMDE3MiBs b29wcz0xMCk8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgSm9pbiBGaWx0 ZXI6IChteW5ldHdvcmtzXzEuaXBhZGRyICZndDsmZ3Q7IChmbG93c18xLmRzdGFkZHIpOjppcDRy KTwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBSb3dzIFJlbW92ZWQgYnkg Sm9pbiBGaWx0ZXI6IDQ1MzY4MTM3NzwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqBCdWZmZXJzOiBzaGFyZWQgaGl0PTEyMDAzNjQ5NjwvZGl2PjxkaXY+wqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAtJmd0OyDCoEluZGV4IE9ubHkgU2NhbiB1c2luZyBmbG93c19zcmNh ZGRyX2RzdGFkZHJfaWR4IG9uIGZsb3dzIGZsb3dzXzEgwqAoY29zdD0wLjEyLi45MDkxMDY3Ljcw IHJvd3M9NTYwOTc4MzY4IHdpZHRoPTQpIChhY3R1YWwgdGltZT0wLjAyNy4uMTEzMDUyLjQzNyBy b3dzPTU0MTU1OTcwNCBsb29wcz0xMCk8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgSGVhcCBGZXRjaGVzOiA5MTwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBCdWZmZXJzOiBzaGFyZWQgaGl0PTEyMDAzNjQ1OTwvZGl2 PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAtJmd0OyDCoE1hdGVyaWFsaXplIMKg KGNvc3Q9MC4wMC4uMS4wMiByb3dzPTQgd2lkdGg9OCkgKGFjdHVhbCB0aW1lPTAuMDAwLi4wLjAw MCByb3dzPTIgbG9vcHM9NTQxNTU5NzA0MCk8L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgQnVmZmVyczogc2hhcmVkIGhpdD0xMDwvZGl2PjxkaXY+wqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAtJmd0OyDCoFNlcSBTY2FuIG9uIG15bmV0 d29ya3MgbXluZXR3b3Jrc18xIMKgKGNvc3Q9MC4wMC4uMS4wMSByb3dzPTQgd2lkdGg9OCkgKGFj dHVhbCB0aW1lPTAuMDA3Li4wLjAwOCByb3dzPTQgbG9vcHM9MTApPC9kaXY+PGRpdj7CoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoEJ1ZmZlcnM6IHNoYXJlZCBo aXQ9MTA8L2Rpdj48ZGl2PsKgUGxhbm5pbmcgdGltZTogNi42ODkgbXM8L2Rpdj48ZGl2PsKgRXhl Y3V0aW9uIHRpbWU6IDI3NjQ4NjAuODUzIG1zPC9kaXY+PGRpdj4oNTggcm93cyk8L2Rpdj48L2Js b2NrcXVvdGU+PGRpdj48YnI+PC9kaXY+PGRpdj5SZWdhcmRpbmcgJnF1b3Q7QWxzbyB1c2luZyBk c3RhdCBJIGNhbiBzZWUgdGhhdCBpb3dhaXQgdGltZSBpcyBhdCBhYm91dCAyNSUmcXVvdDssIEkg ZG9uJiMzOTt0IHRoaW5rIHRoZSBzZXJ2ZXIgd2FzIGRvaW5nIGFueXRoaW5nIGVsc2UuIElmIGl0 IGlzIGltcG9ydGFudCwgSSBjYW4gcmVwZWF0IHRoZSBiZW5jaG1hcmtzLjwvZGl2PjxkaXY+VGhh bmtzITwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+Q2hhcmxlczwvZGl2PjwvZGl2PjxkaXYgY2xh c3M9ImdtYWlsX2V4dHJhIj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIFdlZCwgSnVs IDEyLCAyMDE3IGF0IDI6MzkgQU0sIEplZmYgSmFuZXMgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBo cmVmPSJtYWlsdG86amVmZi5qYW5lc0BnbWFpbC5jb20iIHRhcmdldD0iX2JsYW5rIj5qZWZmLmph bmVzQGdtYWlsLmNvbTwvYT4mZ3Q7PC9zcGFuPiB3cm90ZTo8YnI+PGJsb2NrcXVvdGUgY2xhc3M9 ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7Ym9yZGVyLWxlZnQ6MXB4ICNj Y2Mgc29saWQ7cGFkZGluZy1sZWZ0OjFleCI+PGRpdiBkaXI9Imx0ciI+PGRpdiBjbGFzcz0iZ21h aWxfZXh0cmEiPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48c3BhbiBjbGFzcz0iIj5PbiBUdWUs IEp1bCAxMSwgMjAxNyBhdCA0OjAyIEFNLCBDaGFybGVzIE5hZGVhdSA8c3BhbiBkaXI9Imx0ciI+ Jmx0OzxhIGhyZWY9Im1haWx0bzpjaGFybGVzLm5hZGVhdUBnbWFpbC5jb20iIHRhcmdldD0iX2Js YW5rIj5jaGFybGVzLm5hZGVhdUBnbWFpbC5jb208L2E+Jmd0Ozwvc3Bhbj4gd3JvdGU6PGJyPjxi bG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowcHggMHB4IDBweCAw LjhleDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiKDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6 MWV4Ij48ZGl2IGRpcj0ibHRyIj48ZGl2PkplZmYsPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5J IHVzZWQgZmlvIGluIGEgcXVpY2sgYmVuY2htYXJraW5nIHNjcmlwdCBpbnNwaXJlZCBieSA8YSBo cmVmPSJodHRwczovL3NtY2xlb2QubmV0L2JlbmNobWFya2luZy1pby8iIHRhcmdldD0iX2JsYW5r Ij5odHRwczovL3NtY2xlb2QubmV0L2JlbmNobWFya2k8d2JyPm5nLWlvLzwvYT46PC9kaXY+PGJs b2NrcXVvdGUgc3R5bGU9Im1hcmdpbjowcHggMHB4IDBweCA0MHB4O2JvcmRlcjpub25lO3BhZGRp bmc6MHB4Ij48ZGl2PiMhL2Jpbi9iYXNoPC9kaXY+PGRpdj4jUmFuZG9tIHRocm91Z2hwdXQ8L2Rp dj48ZGl2PmVjaG8gJnF1b3Q7UmFuZG9tIHRocm91Z2hwdXQmcXVvdDs8L2Rpdj48ZGl2PnN5bmM8 L2Rpdj48ZGl2PmZpbyAtLXJhbmRyZXBlYXQ9MSAtLWlvZW5naW5lPWxpYmFpbyAtLWRpcmVjdD0x IC0tZ3RvZF9yZWR1Y2U9MSAtLW5hbWU9dGVzdCAtLWZpbGVuYW1lPXRlc3QgLS1icz00TSAtLWlv ZGVwdGg9MjU2IC0tc2l6ZT0xMEcgLS1yZWFkd3JpdGU9cmFuZHJlYWQgLS1yYW1wX3RpbWU9NDwv ZGl2PjxkaXY+I1JhbmRvbSBJT1BTPC9kaXY+PGRpdj5lY2hvICZxdW90O1JhbmRvbSBJT1BTJnF1 b3Q7PC9kaXY+PGRpdj5zeW5jPC9kaXY+PGRpdj5maW8gLS1yYW5kcmVwZWF0PTEgLS1pb2VuZ2lu ZT1saWJhaW8gLS1kaXJlY3Q9MSAtLWd0b2RfcmVkdWNlPTEgLS1uYW1lPXRlc3QgLS1maWxlbmFt ZT10ZXN0IC0tYnM9NGsgLS1pb2RlcHRoPTI1NiAtLXNpemU9NEcgLS1yZWFkd3JpdGU9cmFuZHJl YWQgLS1yYW1wX3RpbWU9NDwvZGl2PjxkaXY+I1NlcXVlbnRpYWwgdGhyb3VnaHB1dDwvZGl2Pjxk aXY+ZWNobyAmcXVvdDtTZXF1ZW50aWFsIHRocm91Z2hwdXQmcXVvdDs8L2Rpdj48ZGl2PnN5bmM8 L2Rpdj48ZGl2PmZpbyAtLXJhbmRyZXBlYXQ9MSAtLWlvZW5naW5lPWxpYmFpbyAtLWRpcmVjdD0x IC0tZ3RvZF9yZWR1Y2U9MSAtLW5hbWU9dGVzdCAtLWZpbGVuYW1lPXRlc3QgLS1icz00TSAtLWlv ZGVwdGg9MjU2IC0tc2l6ZT0xMEcgLS1yZWFkd3JpdGU9cmVhZCAtLXJhbXBfdGltZT00PC9kaXY+ PGRpdj4jU2VxdWVudGlhbCBJT1BTPC9kaXY+PGRpdj5lY2hvICZxdW90O1NlcXVlbnRpYWwgSU9Q UyZxdW90OzwvZGl2PjxkaXY+c3luYzwvZGl2PjxkaXY+ZmlvIC0tcmFuZHJlcGVhdD0xIC0taW9l bmdpbmU9bGliYWlvIC0tZGlyZWN0PTEgLS1ndG9kX3JlZHVjZT0xIC0tbmFtZT10ZXN0IC0tZmls ZW5hbWU9dGVzdCAtLWJzPTRrIC0taW9kZXB0aD0yNTYgLS1zaXplPTRHIC0tcmVhZHdyaXRlPXJl YWQgLS1yYW1wX3RpbWU9NDwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48L2Jsb2NrcXVvdGU+PGRp dj48YnI+PC9kaXY+PC9zcGFuPjxkaXY+SSBkb24mIzM5O3QgdGhpbmsgYW55IG9mIHRob3NlIGFy ZSBkaXJlY3RseSByZWxldmFudCB0byBQb3N0Z3JlU1FMLCBhcyBpdCBkb2VzbiYjMzk7dCB1c2Ug ZGlyZWN0IElPLCBkb2VzbiYjMzk7dCB1c2UgbGliYWlvLCBhbmQgaXMgcmFyZWx5IGdvaW5nIHRv IGdldCBhbnl3aGVyZSBuZWFyIDI1NiBpb2RlcHRoLsKgIFNvIHRoZSBiZXN0IHRoZXkgY2FuIGRv IGlzIHB1dCBhIHRoZW9yZXRpY2FsIGNlaWxpbmcgb24gdGhlIHBlcmZvcm1hbmNlLsKgIEFsc28s IHJhbmRvbSBJTyB3aXRoIGEgNE1CIHN0cmlkZSBkb2VzbiYjMzk7dCBtYWtlIGFueSBzZW5zZSBm cm9tIGEgUG9zdGdyZVNRTCBwZXJzcGVjdGl2ZS48L2Rpdj48c3BhbiBjbGFzcz0iIj48ZGl2Pjxi cj48L2Rpdj48ZGl2PsKgPC9kaXY+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHls ZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0 LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgZGlyPSJsdHIiPjxibG9ja3F1b3RlIHN0 eWxlPSJtYXJnaW46MHB4IDBweCAwcHggNDBweDtib3JkZXI6bm9uZTtwYWRkaW5nOjBweCI+PGRp dj48YnI+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+UGVyZm9ybWluZyB0aGUgdGVzdCB5b3Ugc3Vn Z2VzdGVkLCBJIGdldCAxMjguNU1CL3MuIE1vbml0b3JpbmcgdGhlIHRlc3QsIEkgZmluZCB0aGF0 IHRoZSB0aHJvdWdocHV0IGlzIGNvbnN0YW50IGZyb20gc3RhcnQgdG8gZmluaXNoIGFuZCB0aGF0 IHRoZSBpb3dhaXQgaXMgYWxzbyBjb25zdGFudCBhdCA1JTo8L2Rpdj48L2Rpdj48L2Jsb2NrcXVv dGU+PGRpdj48YnI+PC9kaXY+PC9zcGFuPjxkaXY+SSB3b3VsZCBoYXZlIGV4cGVjdGVkIGl0IHRv IGRvIGJldHRlciB0aGFuIHRoYXQuwqAgTWF5YmUgeW91IGluY3JlYXNlIHRoZSBrZXJuZWwgcmVh ZGFoZWFkIHNldHRpbmcuwqAgSSYjMzk7dmUgZm91bmQgdGhlIGRlZmF1bHQgdG8gYmUgbXVjaCB0 b28gc21hbGwuwqAgQnV0IGl0IGRvZXNuJiMzOTt0IG1ha2UgbXVjaCBkaWZmZXJlbmNlIHRvIHlv dSwgYXMgeW91IGFwcGVhciB0byBiZSBkb2luZyByYW5kb20gSU8gaW4geW91ciBxdWVyaWVzLCBu b3Qgc2VxdWVudGlhbC48L2Rpdj48c3BhbiBjbGFzcz0iIj48ZGl2Pjxicj48L2Rpdj48YmxvY2tx dW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MHB4IDBweCAwcHggMC44ZXg7 Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYigyMDQsMjA0LDIwNCk7cGFkZGluZy1sZWZ0OjFleCI+ PGRpdiBkaXI9Imx0ciI+PGRpdj48YnI+PC9kaXY+PGRpdj5Db3VsZCB5b3Ugc3VnZ2VzdCBhbm90 aGVyIHdheSB0byBiZW5jaG1hcmsgcmFuZG9tIHJlYWRzPzwvZGl2PjwvZGl2PjwvYmxvY2txdW90 ZT48ZGl2Pjxicj48L2Rpdj48L3NwYW4+PGRpdj5Zb3VyIDExMDAgSU9QUyB0aW1lcyA4a2IgYmxv Y2sgc2l6ZSBnaXZlcyBhYm91dCA4TUIvcyBvZiB0aHJvdWdocHV0LCB3aGljaCBpcyBjbG9zZSB0 byB3aGF0IHlvdSByZXBvcnQuwqAgU28gSSB0aGluayBJJiMzOTtkIHdvdWxkIGluc3RlYWQgZm9j dXMgb24gdHVuaW5nIHlvdXIgYWN0dWFsIHF1ZXJpZXMuwqAgWW91IHNheSB0aGUgcHJvYmxlbSBp cyBub3QgcXVlcnktZGVwZW5kZW50LCBidXQgSSB0aGluayB0aGF0IHRoYXQganVzdCBtZWFucyBh bGwgdGhlIHF1ZXJpZXMgeW91IGxvb2tlZCBhdCBhcmUgc2ltaWxhci7CoCBJZiB5b3UgbG9va2Vk IGF0IGEgcXVlcnkgdGhhdCBjYW4mIzM5O3QgdXNlIGluZGV4ZXMsIGxpa2UgY291bnQodW5pbmRl eGVkX2NvbHVtbikgZnJvbSBiaWdnZXN0X3RhYmxlOyB5b3Ugd291bGQgZmluZCBpdCBkb2luZyBt dWNoIG1vcmUgSU8gdGhhbiA0TUIvcy48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkNhbiB5b3Ug cGljayB0aGUgc2ltcGxlc3QgcXVlcnkgeW91IGFjdHVhbGx5IGNhcmUgYWJvdXQsIGFuZCBwb3N0 IGJvdGggYW4gJnF1b3Q7ZXhwbGFpbiAoYW5hbHl6ZSwgdGltaW5nIG9mZikmcXVvdDsgYW5kIGFu ICZxdW90O2V4cGxhaW4gKGFuYWx5emUsIGJ1ZmZlcnMpJnF1b3Q7IGZvciBpdD8gwqAoUHJlZmVy YWJseSB0dXJuaW5nICZxdW90O3RyYWNrX2lvX3RpbWluZyZxdW90OyBvbiBmaXJzdCkuPC9kaXY+ PGRpdj48YnI+PC9kaXY+PGRpdj5PbmUgb3RoZXIgcXVlc3Rpb24gSSBoYWQsIHlvdSBzYWlkIHlv dSBoYWQgJnF1b3Q7PHNwYW4gc3R5bGU9ImNvbG9yOnJnYigwLDAsMCk7Zm9udC1zaXplOjEyLjhw eCI+MnggSW50ZWwgWGVvbiBFNTU1MCZxdW90Oywgd2hpY2ggc2hvdWxkIGJlIDggQ1BVIChvciAx NiwgaWYgdGhlIGh5cGVydGhyZWFkc8KgPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImNv bG9yOnJnYigwLDAsMCk7Zm9udC1zaXplOjEyLjhweCI+YXJlIHJlcG9ydGVkIGFzIHNlcGFyYXRl IENQVXMpLsKgIEJ1dCB5b3UgYWxzbyBzYWlkOiAmcXVvdDtBPC9zcGFuPjxzcGFuIHN0eWxlPSJj b2xvcjpyZ2IoMCwwLDApO2ZvbnQtc2l6ZToxMi44cHgiPmxzbyB1c2luZyBkc3RhdCBJIGNhbiBz ZWUgdGhhdCBpb3dhaXQgdGltZSBpcyBhdCBhYm91dCAyNSUmcXVvdDsuIMKgPC9zcGFuPjxmb250 IGNvbG9yPSIjMDAwMDAwIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjhweCI+VXN1YWxseSBp ZiB0aGVyZSBpcyBvbmx5IG9uZSB0aGluZyBnb2luZyBvbiBvbiB0aGUgc2VydmVyLCB0aGVuIElP V0FJVCB3b24mIzM5O3QgYmUgbW9yZSB0aGFuIHJlY2lwcm9jYWzCoG9mICNDUFUuwqAgSXMgdGhl IHNlcnZlciBidXN5IGRvaW5nIG90aGVyIHN0dWZmIGF0IHRoZSBzYW1lIHRpbWUgeW91IGFyZSBi ZW5jaG1hcmtpbmcgaXQ/PC9zcGFuPjwvZm9udD48L2Rpdj48ZGl2Pjxmb250IGNvbG9yPSIjMDAw MDAwIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjhweCI+PGJyPjwvc3Bhbj48L2ZvbnQ+PC9k aXY+PGRpdj48Zm9udCBjb2xvcj0iIzAwMDAwMCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi44 cHgiPkNoZWVycyw8L3NwYW4+PC9mb250PjwvZGl2PjxkaXY+PGZvbnQgY29sb3I9IiMwMDAwMDAi PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuOHB4Ij48YnI+PC9zcGFuPjwvZm9udD48L2Rpdj48 ZGl2Pjxmb250IGNvbG9yPSIjMDAwMDAwIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjhweCI+ SmVmZjwvc3Bhbj48L2ZvbnQ+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+DQo8L2Jsb2NrcXVvdGU+ PC9kaXY+PGJyPjxiciBjbGVhcj0iYWxsIj48ZGl2Pjxicj48L2Rpdj4tLSA8YnI+PGRpdiBjbGFz cz0iZ21haWxfc2lnbmF0dXJlIiBkYXRhLXNtYXJ0bWFpbD0iZ21haWxfc2lnbmF0dXJlIj5DaGFy bGVzIE5hZGVhdSBQaC5ELjxicj48YSBocmVmPSJodHRwOi8vY2hhcmxlc25hZGVhdS5ibG9nc3Bv dC5jb20vIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL2NoYXJsZXNuYWRlYXUuYmxvZ3Nwb3QuY29t LzwvYT48L2Rpdj4NCjwvZGl2Pg0K --94eb2c04315a87dd5a05541bf38b--